From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753600AbdJNLvQ (ORCPT ); Sat, 14 Oct 2017 07:51:16 -0400 Received: from mga01.intel.com ([192.55.52.88]:35678 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752024AbdJNLvN (ORCPT ); Sat, 14 Oct 2017 07:51:13 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.43,376,1503385200"; d="gz'50?scan'50,208,50";a="323215658" Date: Sat, 14 Oct 2017 19:50:59 +0800 From: kbuild test robot To: Bhumika Goyal Cc: kbuild-all@01.org, julia.lawall@lip6.fr, mfasheh@versity.com, jlbec@evilplan.org, ocfs2-devel@oss.oracle.com, linux-kernel@vger.kernel.org, Bhumika Goyal Subject: Re: [PATCH] ocfs2/cluster: make config_item_type const Message-ID: <201710141952.eTx63Xw9%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="huq684BweRXVnRxX" Content-Disposition: inline In-Reply-To: <1507798192-20528-1-git-send-email-bhumirks@gmail.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: fengguang.wu@intel.com X-SA-Exim-Scanned: No (on bee); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --huq684BweRXVnRxX Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Bhumika, [auto build test WARNING on linus/master] [also build test WARNING on v4.14-rc4 next-20171013] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Bhumika-Goyal/ocfs2-cluster-make-config_item_type-const/20171014-185701 config: i386-randconfig-x008-201741 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 All warnings (new ones prefixed by >>): fs/ocfs2//cluster/heartbeat.c: In function 'o2hb_heartbeat_group_make_item': >> fs/ocfs2//cluster/heartbeat.c:2143:50: warning: passing argument 3 of 'config_item_init_type_name' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] config_item_init_type_name(®->hr_item, name, &o2hb_region_type); ^ In file included from fs/ocfs2//cluster/heartbeat.c:32:0: include/linux/configfs.h:73:13: note: expected 'struct config_item_type *' but argument is of type 'const struct config_item_type *' extern void config_item_init_type_name(struct config_item *item, ^~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ocfs2//cluster/heartbeat.c: In function 'o2hb_alloc_hb_set': >> fs/ocfs2//cluster/heartbeat.c:2331:9: warning: passing argument 3 of 'config_group_init_type_name' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] &o2hb_heartbeat_group_type); ^ In file included from fs/ocfs2//cluster/heartbeat.c:32:0: include/linux/configfs.h:102:13: note: expected 'struct config_item_type *' but argument is of type 'const struct config_item_type *' extern void config_group_init_type_name(struct config_group *group, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/linkage.h:4:0, from include/linux/kernel.h:6, from fs/ocfs2//cluster/heartbeat.c:22: fs/ocfs2//cluster/heartbeat.c: At top level: include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'strcpy' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:421:2: note: in expansion of macro 'if' if (p_size == (size_t)-1 && q_size == (size_t)-1) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'kmemdup' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:411:2: note: in expansion of macro 'if' if (p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'kmemdup' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:409:2: note: in expansion of macro 'if' if (__builtin_constant_p(size) && p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memchr_inv' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:400:2: note: in expansion of macro 'if' if (p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memchr_inv' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:398:2: note: in expansion of macro 'if' if (__builtin_constant_p(size) && p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memchr' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:389:2: note: in expansion of macro 'if' if (p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memchr' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:387:2: note: in expansion of macro 'if' if (__builtin_constant_p(size) && p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memcmp' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:379:2: note: in expansion of macro 'if' if (p_size < size || q_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memcmp' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:376:3: note: in expansion of macro 'if' if (q_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memcmp' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:374:3: note: in expansion of macro 'if' if (p_size < size) ^~ -- fs/ocfs2//cluster/nodemanager.c: In function 'o2nm_node_group_make_item': >> fs/ocfs2//cluster/nodemanager.c:573:51: warning: passing argument 3 of 'config_item_init_type_name' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] config_item_init_type_name(&node->nd_item, name, &o2nm_node_type); ^ In file included from fs/ocfs2//cluster/nodemanager.c:25:0: include/linux/configfs.h:73:13: note: expected 'struct config_item_type *' but argument is of type 'const struct config_item_type *' extern void config_item_init_type_name(struct config_item *item, ^~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ocfs2//cluster/nodemanager.c: In function 'o2nm_cluster_group_make_group': >> fs/ocfs2//cluster/nodemanager.c:681:9: warning: passing argument 3 of 'config_group_init_type_name' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] &o2nm_cluster_type); ^ In file included from fs/ocfs2//cluster/nodemanager.c:25:0: include/linux/configfs.h:102:13: note: expected 'struct config_item_type *' but argument is of type 'const struct config_item_type *' extern void config_group_init_type_name(struct config_group *group, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ocfs2//cluster/nodemanager.c:685:9: warning: passing argument 3 of 'config_group_init_type_name' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] &o2nm_node_group_type); ^ In file included from fs/ocfs2//cluster/nodemanager.c:25:0: include/linux/configfs.h:102:13: note: expected 'struct config_item_type *' but argument is of type 'const struct config_item_type *' extern void config_group_init_type_name(struct config_group *group, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ocfs2//cluster/nodemanager.c: In function 'o2nm_depend_item': >> fs/ocfs2//cluster/nodemanager.c:743:30: warning: passing argument 1 of 'configfs_depend_item' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] return configfs_depend_item(&o2nm_cluster_group.cs_subsys, item); ^ In file included from fs/ocfs2//cluster/nodemanager.c:25:0: include/linux/configfs.h:269:5: note: expected 'struct configfs_subsystem *' but argument is of type 'const struct configfs_subsystem *' int configfs_depend_item(struct configfs_subsystem *subsys, ^~~~~~~~~~~~~~~~~~~~ fs/ocfs2//cluster/nodemanager.c: In function 'exit_o2nm': >> fs/ocfs2//cluster/nodemanager.c:785:32: warning: passing argument 1 of 'configfs_unregister_subsystem' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] configfs_unregister_subsystem(&o2nm_cluster_group.cs_subsys); ^ In file included from fs/ocfs2//cluster/nodemanager.c:25:0: include/linux/configfs.h:253:6: note: expected 'struct configfs_subsystem *' but argument is of type 'const struct configfs_subsystem *' void configfs_unregister_subsystem(struct configfs_subsystem *subsys); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ocfs2//cluster/nodemanager.c: In function 'init_o2nm': >> fs/ocfs2//cluster/nodemanager.c:808:20: warning: passing argument 1 of 'config_group_init' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] config_group_init(&o2nm_cluster_group.cs_subsys.su_group); ^ In file included from fs/ocfs2//cluster/nodemanager.c:25:0: include/linux/configfs.h:101:13: note: expected 'struct config_group *' but argument is of type 'const struct config_group *' extern void config_group_init(struct config_group *group); ^~~~~~~~~~~~~~~~~ In file included from include/linux/notifier.h:13:0, from include/linux/memory_hotplug.h:6, from include/linux/mmzone.h:779, from include/linux/gfp.h:5, from include/linux/slab.h:14, from fs/ocfs2//cluster/nodemanager.c:22: >> include/linux/mutex.h:113:15: warning: passing argument 1 of '__mutex_init' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] __mutex_init((mutex), #mutex, &__key); \ ^ >> fs/ocfs2//cluster/nodemanager.c:809:2: note: in expansion of macro 'mutex_init' mutex_init(&o2nm_cluster_group.cs_subsys.su_mutex); ^~~~~~~~~~ include/linux/mutex.h:133:13: note: expected 'struct mutex *' but argument is of type 'const struct mutex *' extern void __mutex_init(struct mutex *lock, const char *name, ^~~~~~~~~~~~ >> fs/ocfs2//cluster/nodemanager.c:810:36: warning: passing argument 1 of 'configfs_register_subsystem' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] ret = configfs_register_subsystem(&o2nm_cluster_group.cs_subsys); ^ In file included from fs/ocfs2//cluster/nodemanager.c:25:0: include/linux/configfs.h:252:5: note: expected 'struct configfs_subsystem *' but argument is of type 'const struct configfs_subsystem *' int configfs_register_subsystem(struct configfs_subsystem *subsys); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ocfs2//cluster/nodemanager.c:820:32: warning: passing argument 1 of 'configfs_unregister_subsystem' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] configfs_unregister_subsystem(&o2nm_cluster_group.cs_subsys); ^ In file included from fs/ocfs2//cluster/nodemanager.c:25:0: include/linux/configfs.h:253:6: note: expected 'struct configfs_subsystem *' but argument is of type 'const struct configfs_subsystem *' void configfs_unregister_subsystem(struct configfs_subsystem *subsys); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/asm-generic/bug.h:4:0, from arch/x86/include/asm/bug.h:81, from include/linux/bug.h:4, from include/linux/mmdebug.h:4, from include/linux/gfp.h:4, from include/linux/slab.h:14, from fs/ocfs2//cluster/nodemanager.c:22: fs/ocfs2//cluster/nodemanager.c: At top level: include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'strcpy' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:421:2: note: in expansion of macro 'if' if (p_size == (size_t)-1 && q_size == (size_t)-1) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'kmemdup' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:411:2: note: in expansion of macro 'if' if (p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'kmemdup' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:409:2: note: in expansion of macro 'if' if (__builtin_constant_p(size) && p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memchr_inv' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:400:2: note: in expansion of macro 'if' if (p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memchr_inv' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:398:2: note: in expansion of macro 'if' if (__builtin_constant_p(size) && p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memchr' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:389:2: note: in expansion of macro 'if' if (p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memchr' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:387:2: note: in expansion of macro 'if' if (__builtin_constant_p(size) && p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memcmp' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:379:2: note: in expansion of macro 'if' if (p_size < size || q_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memcmp' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:376:3: note: in expansion of macro 'if' -- fs/ocfs2/cluster/nodemanager.c: In function 'o2nm_node_group_make_item': fs/ocfs2/cluster/nodemanager.c:573:51: warning: passing argument 3 of 'config_item_init_type_name' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] config_item_init_type_name(&node->nd_item, name, &o2nm_node_type); ^ In file included from fs/ocfs2/cluster/nodemanager.c:25:0: include/linux/configfs.h:73:13: note: expected 'struct config_item_type *' but argument is of type 'const struct config_item_type *' extern void config_item_init_type_name(struct config_item *item, ^~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ocfs2/cluster/nodemanager.c: In function 'o2nm_cluster_group_make_group': fs/ocfs2/cluster/nodemanager.c:681:9: warning: passing argument 3 of 'config_group_init_type_name' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] &o2nm_cluster_type); ^ In file included from fs/ocfs2/cluster/nodemanager.c:25:0: include/linux/configfs.h:102:13: note: expected 'struct config_item_type *' but argument is of type 'const struct config_item_type *' extern void config_group_init_type_name(struct config_group *group, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ocfs2/cluster/nodemanager.c:685:9: warning: passing argument 3 of 'config_group_init_type_name' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] &o2nm_node_group_type); ^ In file included from fs/ocfs2/cluster/nodemanager.c:25:0: include/linux/configfs.h:102:13: note: expected 'struct config_item_type *' but argument is of type 'const struct config_item_type *' extern void config_group_init_type_name(struct config_group *group, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ocfs2/cluster/nodemanager.c: In function 'o2nm_depend_item': fs/ocfs2/cluster/nodemanager.c:743:30: warning: passing argument 1 of 'configfs_depend_item' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] return configfs_depend_item(&o2nm_cluster_group.cs_subsys, item); ^ In file included from fs/ocfs2/cluster/nodemanager.c:25:0: include/linux/configfs.h:269:5: note: expected 'struct configfs_subsystem *' but argument is of type 'const struct configfs_subsystem *' int configfs_depend_item(struct configfs_subsystem *subsys, ^~~~~~~~~~~~~~~~~~~~ fs/ocfs2/cluster/nodemanager.c: In function 'exit_o2nm': fs/ocfs2/cluster/nodemanager.c:785:32: warning: passing argument 1 of 'configfs_unregister_subsystem' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] configfs_unregister_subsystem(&o2nm_cluster_group.cs_subsys); ^ In file included from fs/ocfs2/cluster/nodemanager.c:25:0: include/linux/configfs.h:253:6: note: expected 'struct configfs_subsystem *' but argument is of type 'const struct configfs_subsystem *' void configfs_unregister_subsystem(struct configfs_subsystem *subsys); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ocfs2/cluster/nodemanager.c: In function 'init_o2nm': fs/ocfs2/cluster/nodemanager.c:808:20: warning: passing argument 1 of 'config_group_init' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] config_group_init(&o2nm_cluster_group.cs_subsys.su_group); ^ In file included from fs/ocfs2/cluster/nodemanager.c:25:0: include/linux/configfs.h:101:13: note: expected 'struct config_group *' but argument is of type 'const struct config_group *' extern void config_group_init(struct config_group *group); ^~~~~~~~~~~~~~~~~ In file included from include/linux/notifier.h:13:0, from include/linux/memory_hotplug.h:6, from include/linux/mmzone.h:779, from include/linux/gfp.h:5, from include/linux/slab.h:14, from fs/ocfs2/cluster/nodemanager.c:22: >> include/linux/mutex.h:113:15: warning: passing argument 1 of '__mutex_init' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] __mutex_init((mutex), #mutex, &__key); \ ^ fs/ocfs2/cluster/nodemanager.c:809:2: note: in expansion of macro 'mutex_init' mutex_init(&o2nm_cluster_group.cs_subsys.su_mutex); ^~~~~~~~~~ include/linux/mutex.h:133:13: note: expected 'struct mutex *' but argument is of type 'const struct mutex *' extern void __mutex_init(struct mutex *lock, const char *name, ^~~~~~~~~~~~ fs/ocfs2/cluster/nodemanager.c:810:36: warning: passing argument 1 of 'configfs_register_subsystem' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] ret = configfs_register_subsystem(&o2nm_cluster_group.cs_subsys); ^ In file included from fs/ocfs2/cluster/nodemanager.c:25:0: include/linux/configfs.h:252:5: note: expected 'struct configfs_subsystem *' but argument is of type 'const struct configfs_subsystem *' int configfs_register_subsystem(struct configfs_subsystem *subsys); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ocfs2/cluster/nodemanager.c:820:32: warning: passing argument 1 of 'configfs_unregister_subsystem' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] configfs_unregister_subsystem(&o2nm_cluster_group.cs_subsys); ^ In file included from fs/ocfs2/cluster/nodemanager.c:25:0: include/linux/configfs.h:253:6: note: expected 'struct configfs_subsystem *' but argument is of type 'const struct configfs_subsystem *' void configfs_unregister_subsystem(struct configfs_subsystem *subsys); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/asm-generic/bug.h:4:0, from arch/x86/include/asm/bug.h:81, from include/linux/bug.h:4, from include/linux/mmdebug.h:4, from include/linux/gfp.h:4, from include/linux/slab.h:14, from fs/ocfs2/cluster/nodemanager.c:22: fs/ocfs2/cluster/nodemanager.c: At top level: include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'strcpy' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:421:2: note: in expansion of macro 'if' if (p_size == (size_t)-1 && q_size == (size_t)-1) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'kmemdup' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:411:2: note: in expansion of macro 'if' if (p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'kmemdup' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:409:2: note: in expansion of macro 'if' if (__builtin_constant_p(size) && p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memchr_inv' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:400:2: note: in expansion of macro 'if' if (p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memchr_inv' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:398:2: note: in expansion of macro 'if' if (__builtin_constant_p(size) && p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memchr' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:389:2: note: in expansion of macro 'if' if (p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memchr' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:387:2: note: in expansion of macro 'if' if (__builtin_constant_p(size) && p_size < size) ^~ include/linux/compiler.h:162:4: warning: '______f' is static but declared in inline function 'memcmp' which is not static ______f = { \ ^ include/linux/compiler.h:154:23: note: in expansion of macro '__trace_if' #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) ) ^~~~~~~~~~ include/linux/string.h:379:2: note: in expansion of macro 'if' vim +2143 fs/ocfs2//cluster/heartbeat.c 1f28530537 Sunil Mushran 2010-10-06 2112 f89ab8619e Joel Becker 2008-07-17 2113 static struct config_item *o2hb_heartbeat_group_make_item(struct config_group *group, f89ab8619e Joel Becker 2008-07-17 2114 const char *name) a7f6a5fb4b Mark Fasheh 2005-12-15 2115 { a7f6a5fb4b Mark Fasheh 2005-12-15 2116 struct o2hb_region *reg = NULL; 1f28530537 Sunil Mushran 2010-10-06 2117 int ret; a7f6a5fb4b Mark Fasheh 2005-12-15 2118 cd86128088 Robert P. J. Day 2006-12-13 2119 reg = kzalloc(sizeof(struct o2hb_region), GFP_KERNEL); f89ab8619e Joel Becker 2008-07-17 2120 if (reg == NULL) a6795e9ebb Joel Becker 2008-07-17 2121 return ERR_PTR(-ENOMEM); a7f6a5fb4b Mark Fasheh 2005-12-15 2122 1cf257f511 Jiri Slaby 2010-11-06 2123 if (strlen(name) > O2HB_MAX_REGION_NAME_LEN) { 1cf257f511 Jiri Slaby 2010-11-06 2124 ret = -ENAMETOOLONG; 1cf257f511 Jiri Slaby 2010-11-06 2125 goto free; 1cf257f511 Jiri Slaby 2010-11-06 2126 } b3c85c4cdf Sunil Mushran 2010-10-07 2127 a7f6a5fb4b Mark Fasheh 2005-12-15 2128 spin_lock(&o2hb_live_lock); 536f0741f3 Sunil Mushran 2010-10-07 2129 reg->hr_region_num = 0; 536f0741f3 Sunil Mushran 2010-10-07 2130 if (o2hb_global_heartbeat_active()) { 536f0741f3 Sunil Mushran 2010-10-07 2131 reg->hr_region_num = find_first_zero_bit(o2hb_region_bitmap, 536f0741f3 Sunil Mushran 2010-10-07 2132 O2NM_MAX_REGIONS); 536f0741f3 Sunil Mushran 2010-10-07 2133 if (reg->hr_region_num >= O2NM_MAX_REGIONS) { 536f0741f3 Sunil Mushran 2010-10-07 2134 spin_unlock(&o2hb_live_lock); 1cf257f511 Jiri Slaby 2010-11-06 2135 ret = -EFBIG; 1cf257f511 Jiri Slaby 2010-11-06 2136 goto free; 536f0741f3 Sunil Mushran 2010-10-07 2137 } 536f0741f3 Sunil Mushran 2010-10-07 2138 set_bit(reg->hr_region_num, o2hb_region_bitmap); 536f0741f3 Sunil Mushran 2010-10-07 2139 } a7f6a5fb4b Mark Fasheh 2005-12-15 2140 list_add_tail(®->hr_all_item, &o2hb_all_regions); a7f6a5fb4b Mark Fasheh 2005-12-15 2141 spin_unlock(&o2hb_live_lock); a7f6a5fb4b Mark Fasheh 2005-12-15 2142 536f0741f3 Sunil Mushran 2010-10-07 @2143 config_item_init_type_name(®->hr_item, name, &o2hb_region_type); 536f0741f3 Sunil Mushran 2010-10-07 2144 34069b886f Junxiao Bi 2016-05-27 2145 /* this is the same way to generate msg key as dlm, for local heartbeat, 34069b886f Junxiao Bi 2016-05-27 2146 * name is also the same, so make initial crc value different to avoid 34069b886f Junxiao Bi 2016-05-27 2147 * message key conflict. 34069b886f Junxiao Bi 2016-05-27 2148 */ 34069b886f Junxiao Bi 2016-05-27 2149 reg->hr_key = crc32_le(reg->hr_region_num + O2NM_MAX_REGIONS, 34069b886f Junxiao Bi 2016-05-27 2150 name, strlen(name)); 34069b886f Junxiao Bi 2016-05-27 2151 INIT_LIST_HEAD(®->hr_handler_list); 34069b886f Junxiao Bi 2016-05-27 2152 ret = o2net_register_handler(O2HB_NEGO_TIMEOUT_MSG, reg->hr_key, 34069b886f Junxiao Bi 2016-05-27 2153 sizeof(struct o2hb_nego_msg), 34069b886f Junxiao Bi 2016-05-27 2154 o2hb_nego_timeout_handler, 34069b886f Junxiao Bi 2016-05-27 2155 reg, NULL, ®->hr_handler_list); 34069b886f Junxiao Bi 2016-05-27 2156 if (ret) 34069b886f Junxiao Bi 2016-05-27 2157 goto free; 34069b886f Junxiao Bi 2016-05-27 2158 e76f8237a2 Junxiao Bi 2016-05-27 2159 ret = o2net_register_handler(O2HB_NEGO_APPROVE_MSG, reg->hr_key, e76f8237a2 Junxiao Bi 2016-05-27 2160 sizeof(struct o2hb_nego_msg), e76f8237a2 Junxiao Bi 2016-05-27 2161 o2hb_nego_approve_handler, e76f8237a2 Junxiao Bi 2016-05-27 2162 reg, NULL, ®->hr_handler_list); e76f8237a2 Junxiao Bi 2016-05-27 2163 if (ret) e76f8237a2 Junxiao Bi 2016-05-27 2164 goto unregister_handler; e76f8237a2 Junxiao Bi 2016-05-27 2165 1f28530537 Sunil Mushran 2010-10-06 2166 ret = o2hb_debug_region_init(reg, o2hb_debug_dir); 1f28530537 Sunil Mushran 2010-10-06 2167 if (ret) { 1f28530537 Sunil Mushran 2010-10-06 2168 config_item_put(®->hr_item); 34069b886f Junxiao Bi 2016-05-27 2169 goto unregister_handler; 1f28530537 Sunil Mushran 2010-10-06 2170 } 1f28530537 Sunil Mushran 2010-10-06 2171 a6795e9ebb Joel Becker 2008-07-17 2172 return ®->hr_item; 34069b886f Junxiao Bi 2016-05-27 2173 34069b886f Junxiao Bi 2016-05-27 2174 unregister_handler: 34069b886f Junxiao Bi 2016-05-27 2175 o2net_unregister_handler_list(®->hr_handler_list); 1cf257f511 Jiri Slaby 2010-11-06 2176 free: 1cf257f511 Jiri Slaby 2010-11-06 2177 kfree(reg); 1cf257f511 Jiri Slaby 2010-11-06 2178 return ERR_PTR(ret); a7f6a5fb4b Mark Fasheh 2005-12-15 2179 } a7f6a5fb4b Mark Fasheh 2005-12-15 2180 a7f6a5fb4b Mark Fasheh 2005-12-15 2181 static void o2hb_heartbeat_group_drop_item(struct config_group *group, a7f6a5fb4b Mark Fasheh 2005-12-15 2182 struct config_item *item) a7f6a5fb4b Mark Fasheh 2005-12-15 2183 { e6c352dbc0 Joel Becker 2007-02-03 2184 struct task_struct *hb_task; a7f6a5fb4b Mark Fasheh 2005-12-15 2185 struct o2hb_region *reg = to_o2hb_region(item); 58a3158a5d Sunil Mushran 2010-12-14 2186 int quorum_region = 0; a7f6a5fb4b Mark Fasheh 2005-12-15 2187 a7f6a5fb4b Mark Fasheh 2005-12-15 2188 /* stop the thread when the user removes the region dir */ e6c352dbc0 Joel Becker 2007-02-03 2189 spin_lock(&o2hb_live_lock); e6c352dbc0 Joel Becker 2007-02-03 2190 hb_task = reg->hr_task; a7f6a5fb4b Mark Fasheh 2005-12-15 2191 reg->hr_task = NULL; 58a3158a5d Sunil Mushran 2010-12-14 2192 reg->hr_item_dropped = 1; e6c352dbc0 Joel Becker 2007-02-03 2193 spin_unlock(&o2hb_live_lock); e6c352dbc0 Joel Becker 2007-02-03 2194 e6c352dbc0 Joel Becker 2007-02-03 2195 if (hb_task) e6c352dbc0 Joel Becker 2007-02-03 2196 kthread_stop(hb_task); a7f6a5fb4b Mark Fasheh 2005-12-15 2197 d2eece3766 Sunil Mushran 2011-07-24 2198 if (o2hb_global_heartbeat_active()) { d2eece3766 Sunil Mushran 2011-07-24 2199 spin_lock(&o2hb_live_lock); d2eece3766 Sunil Mushran 2011-07-24 2200 clear_bit(reg->hr_region_num, o2hb_region_bitmap); d2eece3766 Sunil Mushran 2011-07-24 2201 clear_bit(reg->hr_region_num, o2hb_live_region_bitmap); d2eece3766 Sunil Mushran 2011-07-24 2202 if (test_bit(reg->hr_region_num, o2hb_quorum_region_bitmap)) d2eece3766 Sunil Mushran 2011-07-24 2203 quorum_region = 1; d2eece3766 Sunil Mushran 2011-07-24 2204 clear_bit(reg->hr_region_num, o2hb_quorum_region_bitmap); d2eece3766 Sunil Mushran 2011-07-24 2205 spin_unlock(&o2hb_live_lock); d2eece3766 Sunil Mushran 2011-07-24 2206 printk(KERN_NOTICE "o2hb: Heartbeat %s on region %s (%s)\n", d2eece3766 Sunil Mushran 2011-07-24 2207 ((atomic_read(®->hr_steady_iterations) == 0) ? d2eece3766 Sunil Mushran 2011-07-24 2208 "stopped" : "start aborted"), config_item_name(item), d2eece3766 Sunil Mushran 2011-07-24 2209 reg->hr_dev_name); d2eece3766 Sunil Mushran 2011-07-24 2210 } d2eece3766 Sunil Mushran 2011-07-24 2211 e6df3a663a Joel Becker 2007-02-06 2212 /* e6df3a663a Joel Becker 2007-02-06 2213 * If we're racing a dev_write(), we need to wake them. They will e6df3a663a Joel Becker 2007-02-06 2214 * check reg->hr_task e6df3a663a Joel Becker 2007-02-06 2215 */ e6df3a663a Joel Becker 2007-02-06 2216 if (atomic_read(®->hr_steady_iterations) != 0) { d2eece3766 Sunil Mushran 2011-07-24 2217 reg->hr_aborted_start = 1; e6df3a663a Joel Becker 2007-02-06 2218 atomic_set(®->hr_steady_iterations, 0); e6df3a663a Joel Becker 2007-02-06 2219 wake_up(&o2hb_steady_queue); e6df3a663a Joel Becker 2007-02-06 2220 } e6df3a663a Joel Becker 2007-02-06 2221 a7f6a5fb4b Mark Fasheh 2005-12-15 2222 config_item_put(item); 58a3158a5d Sunil Mushran 2010-12-14 2223 58a3158a5d Sunil Mushran 2010-12-14 2224 if (!o2hb_global_heartbeat_active() || !quorum_region) 58a3158a5d Sunil Mushran 2010-12-14 2225 return; 58a3158a5d Sunil Mushran 2010-12-14 2226 58a3158a5d Sunil Mushran 2010-12-14 2227 /* 58a3158a5d Sunil Mushran 2010-12-14 2228 * If global heartbeat active and there are dependent users, 58a3158a5d Sunil Mushran 2010-12-14 2229 * pin all regions if quorum region count <= CUT_OFF 58a3158a5d Sunil Mushran 2010-12-14 2230 */ 58a3158a5d Sunil Mushran 2010-12-14 2231 spin_lock(&o2hb_live_lock); 58a3158a5d Sunil Mushran 2010-12-14 2232 58a3158a5d Sunil Mushran 2010-12-14 2233 if (!o2hb_dependent_users) 58a3158a5d Sunil Mushran 2010-12-14 2234 goto unlock; 58a3158a5d Sunil Mushran 2010-12-14 2235 a8f70de37b Akinobu Mita 2013-11-12 2236 if (bitmap_weight(o2hb_quorum_region_bitmap, 58a3158a5d Sunil Mushran 2010-12-14 2237 O2NM_MAX_REGIONS) <= O2HB_PIN_CUT_OFF) 58a3158a5d Sunil Mushran 2010-12-14 2238 o2hb_region_pin(NULL); 58a3158a5d Sunil Mushran 2010-12-14 2239 58a3158a5d Sunil Mushran 2010-12-14 2240 unlock: 58a3158a5d Sunil Mushran 2010-12-14 2241 spin_unlock(&o2hb_live_lock); a7f6a5fb4b Mark Fasheh 2005-12-15 2242 } a7f6a5fb4b Mark Fasheh 2005-12-15 2243 33496c3c3d Junxiao Bi 2017-05-03 2244 static ssize_t o2hb_heartbeat_group_dead_threshold_show(struct config_item *item, a7f6a5fb4b Mark Fasheh 2005-12-15 2245 char *page) a7f6a5fb4b Mark Fasheh 2005-12-15 2246 { a7f6a5fb4b Mark Fasheh 2005-12-15 2247 return sprintf(page, "%u\n", o2hb_dead_threshold); a7f6a5fb4b Mark Fasheh 2005-12-15 2248 } a7f6a5fb4b Mark Fasheh 2005-12-15 2249 33496c3c3d Junxiao Bi 2017-05-03 2250 static ssize_t o2hb_heartbeat_group_dead_threshold_store(struct config_item *item, 45b997737a Christoph Hellwig 2015-10-03 2251 const char *page, size_t count) a7f6a5fb4b Mark Fasheh 2005-12-15 2252 { a7f6a5fb4b Mark Fasheh 2005-12-15 2253 unsigned long tmp; a7f6a5fb4b Mark Fasheh 2005-12-15 2254 char *p = (char *)page; a7f6a5fb4b Mark Fasheh 2005-12-15 2255 a7f6a5fb4b Mark Fasheh 2005-12-15 2256 tmp = simple_strtoul(p, &p, 10); a7f6a5fb4b Mark Fasheh 2005-12-15 2257 if (!p || (*p && (*p != '\n'))) a7f6a5fb4b Mark Fasheh 2005-12-15 2258 return -EINVAL; a7f6a5fb4b Mark Fasheh 2005-12-15 2259 a7f6a5fb4b Mark Fasheh 2005-12-15 2260 /* this will validate ranges for us. */ a7f6a5fb4b Mark Fasheh 2005-12-15 2261 o2hb_dead_threshold_set((unsigned int) tmp); a7f6a5fb4b Mark Fasheh 2005-12-15 2262 a7f6a5fb4b Mark Fasheh 2005-12-15 2263 return count; a7f6a5fb4b Mark Fasheh 2005-12-15 2264 } a7f6a5fb4b Mark Fasheh 2005-12-15 2265 45b997737a Christoph Hellwig 2015-10-03 2266 static ssize_t o2hb_heartbeat_group_mode_show(struct config_item *item, 54b5187b5a Sunil Mushran 2010-10-07 2267 char *page) 54b5187b5a Sunil Mushran 2010-10-07 2268 { 54b5187b5a Sunil Mushran 2010-10-07 2269 return sprintf(page, "%s\n", 54b5187b5a Sunil Mushran 2010-10-07 2270 o2hb_heartbeat_mode_desc[o2hb_heartbeat_mode]); 54b5187b5a Sunil Mushran 2010-10-07 2271 } 54b5187b5a Sunil Mushran 2010-10-07 2272 45b997737a Christoph Hellwig 2015-10-03 2273 static ssize_t o2hb_heartbeat_group_mode_store(struct config_item *item, 54b5187b5a Sunil Mushran 2010-10-07 2274 const char *page, size_t count) 54b5187b5a Sunil Mushran 2010-10-07 2275 { 54b5187b5a Sunil Mushran 2010-10-07 2276 unsigned int i; 54b5187b5a Sunil Mushran 2010-10-07 2277 int ret; 54b5187b5a Sunil Mushran 2010-10-07 2278 size_t len; 54b5187b5a Sunil Mushran 2010-10-07 2279 54b5187b5a Sunil Mushran 2010-10-07 2280 len = (page[count - 1] == '\n') ? count - 1 : count; 54b5187b5a Sunil Mushran 2010-10-07 2281 if (!len) 54b5187b5a Sunil Mushran 2010-10-07 2282 return -EINVAL; 54b5187b5a Sunil Mushran 2010-10-07 2283 54b5187b5a Sunil Mushran 2010-10-07 2284 for (i = 0; i < O2HB_HEARTBEAT_NUM_MODES; ++i) { 2bd63329cb Rasmus Villemoes 2014-10-13 2285 if (strncasecmp(page, o2hb_heartbeat_mode_desc[i], len)) 54b5187b5a Sunil Mushran 2010-10-07 2286 continue; 54b5187b5a Sunil Mushran 2010-10-07 2287 70f651edb7 Jie Liu 2013-07-03 2288 ret = o2hb_global_heartbeat_mode_set(i); 54b5187b5a Sunil Mushran 2010-10-07 2289 if (!ret) 18c50cb0d3 Sunil Mushran 2010-10-06 2290 printk(KERN_NOTICE "o2hb: Heartbeat mode set to %s\n", 54b5187b5a Sunil Mushran 2010-10-07 2291 o2hb_heartbeat_mode_desc[i]); 54b5187b5a Sunil Mushran 2010-10-07 2292 return count; 54b5187b5a Sunil Mushran 2010-10-07 2293 } 54b5187b5a Sunil Mushran 2010-10-07 2294 54b5187b5a Sunil Mushran 2010-10-07 2295 return -EINVAL; 54b5187b5a Sunil Mushran 2010-10-07 2296 54b5187b5a Sunil Mushran 2010-10-07 2297 } 54b5187b5a Sunil Mushran 2010-10-07 2298 33496c3c3d Junxiao Bi 2017-05-03 2299 CONFIGFS_ATTR(o2hb_heartbeat_group_, dead_threshold); 45b997737a Christoph Hellwig 2015-10-03 2300 CONFIGFS_ATTR(o2hb_heartbeat_group_, mode); 54b5187b5a Sunil Mushran 2010-10-07 2301 a7f6a5fb4b Mark Fasheh 2005-12-15 2302 static struct configfs_attribute *o2hb_heartbeat_group_attrs[] = { 33496c3c3d Junxiao Bi 2017-05-03 2303 &o2hb_heartbeat_group_attr_dead_threshold, 45b997737a Christoph Hellwig 2015-10-03 2304 &o2hb_heartbeat_group_attr_mode, a7f6a5fb4b Mark Fasheh 2005-12-15 2305 NULL, a7f6a5fb4b Mark Fasheh 2005-12-15 2306 }; a7f6a5fb4b Mark Fasheh 2005-12-15 2307 a7f6a5fb4b Mark Fasheh 2005-12-15 2308 static struct configfs_group_operations o2hb_heartbeat_group_group_ops = { a7f6a5fb4b Mark Fasheh 2005-12-15 2309 .make_item = o2hb_heartbeat_group_make_item, a7f6a5fb4b Mark Fasheh 2005-12-15 2310 .drop_item = o2hb_heartbeat_group_drop_item, a7f6a5fb4b Mark Fasheh 2005-12-15 2311 }; a7f6a5fb4b Mark Fasheh 2005-12-15 2312 6c56d97a81 Bhumika Goyal 2017-10-12 2313 static const struct config_item_type o2hb_heartbeat_group_type = { a7f6a5fb4b Mark Fasheh 2005-12-15 2314 .ct_group_ops = &o2hb_heartbeat_group_group_ops, a7f6a5fb4b Mark Fasheh 2005-12-15 2315 .ct_attrs = o2hb_heartbeat_group_attrs, a7f6a5fb4b Mark Fasheh 2005-12-15 2316 .ct_owner = THIS_MODULE, a7f6a5fb4b Mark Fasheh 2005-12-15 2317 }; a7f6a5fb4b Mark Fasheh 2005-12-15 2318 a7f6a5fb4b Mark Fasheh 2005-12-15 2319 /* this is just here to avoid touching group in heartbeat.h which the a7f6a5fb4b Mark Fasheh 2005-12-15 2320 * entire damn world #includes */ a7f6a5fb4b Mark Fasheh 2005-12-15 2321 struct config_group *o2hb_alloc_hb_set(void) a7f6a5fb4b Mark Fasheh 2005-12-15 2322 { a7f6a5fb4b Mark Fasheh 2005-12-15 2323 struct o2hb_heartbeat_group *hs = NULL; a7f6a5fb4b Mark Fasheh 2005-12-15 2324 struct config_group *ret = NULL; a7f6a5fb4b Mark Fasheh 2005-12-15 2325 cd86128088 Robert P. J. Day 2006-12-13 2326 hs = kzalloc(sizeof(struct o2hb_heartbeat_group), GFP_KERNEL); a7f6a5fb4b Mark Fasheh 2005-12-15 2327 if (hs == NULL) a7f6a5fb4b Mark Fasheh 2005-12-15 2328 goto out; a7f6a5fb4b Mark Fasheh 2005-12-15 2329 a7f6a5fb4b Mark Fasheh 2005-12-15 2330 config_group_init_type_name(&hs->hs_group, "heartbeat", a7f6a5fb4b Mark Fasheh 2005-12-15 @2331 &o2hb_heartbeat_group_type); a7f6a5fb4b Mark Fasheh 2005-12-15 2332 a7f6a5fb4b Mark Fasheh 2005-12-15 2333 ret = &hs->hs_group; a7f6a5fb4b Mark Fasheh 2005-12-15 2334 out: a7f6a5fb4b Mark Fasheh 2005-12-15 2335 if (ret == NULL) a7f6a5fb4b Mark Fasheh 2005-12-15 2336 kfree(hs); a7f6a5fb4b Mark Fasheh 2005-12-15 2337 return ret; a7f6a5fb4b Mark Fasheh 2005-12-15 2338 } a7f6a5fb4b Mark Fasheh 2005-12-15 2339 :::::: The code at line 2143 was first introduced by commit :::::: 536f0741f324f116d8b059295999945a2dac56bc ocfs2/cluster: Track number of global heartbeat regions :::::: TO: Sunil Mushran :::::: CC: Sunil Mushran --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --huq684BweRXVnRxX Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 H4sICOv34VkAAy5jb25maWcAlDzbctw2su/5iinnPOw+JNYtilOn9IABwRlkSIIGwJmRXliK NE5UK0teSd5N/v50A7wAYHOckyrHJrpx73s35vvvvl+wr2/Pn2/fHu5uHx//Wvx+eDq83L4d 7hefHh4P/7vI1KJSdiEyaX8E5OLh6euf7x/OP1wuLn48vfjx5IeXu/PF5vDydHhc8OenTw+/ f4XuD89P330P6FxVuVy1lxdLaRcPr4un57fF6+Htu659/+GyPT+7+iv4Hj9kZaxuuJWqajPB VSb0CFSNrRvb5kqXzF69Ozx+Oj/7AZf1rsdgmq+hX+4/r97dvtz98f7PD5fv79wqX90m2vvD J/899CsU32Sibk1T10rbcUpjGd9YzbiYwsqyGT/czGXJ6lZXWQs7N20pq6sPx+Bsf3V6SSNw VdbMfnOcCC0arhIia7OStYgKu7BiXKuDmZUDF6Ja2fUIW4lKaMlbaRjCp4Bls5o2rndCrtY2 PQ523a7ZVrQ1b/OMj1C9M6Js93y9YlnWsmKltLTrcjouZ4Vcalg8XGrBrpPx18y0vG5aDbA9 BWN8LdpCVnB58iY4ALcoI2xTt7XQbgymBUtOqAeJcglfudTGtnzdVJsZvJqtBI3mVySXQlfM kXatjJHLQiQopjG1gGudAe9YZdt1A7PUJVzgGtZMYbjDY4XDtMVyMocjY9Oq2soSjiUDpoMz ktVqDjMTcOlue6wATknOUVZWFK3d24ilgcVbU9aTtoLdXLcrMzdVU2u1FAE4l/tWMF1cw3db ioBG6pVlcEZAwVtRmKuzvn1gf7h5A2Li/ePDb+8/P99/fTy8vv+fpmKlQIoRzIj3PyZyAP7y 8kfpYA1Sf2x3SgcXumxkkcHxiVbs/SpMJBrsGsgJDzZX8L/WMoOdnXRcOVn7iBLx6xdoGQSf tK2otnAeuPBS2qvzYUtcA0E4ZpdAFO/ejUK2a2utMJSshdtixVZoA0SH/YjmljVWJVe6AUKF O13dyJqGLAFyRoOKm1BqhJD9zVyPmfmLmwsADHsNVhVuNYW7tRFnEa8v7bW/OTYmLPE4+IKY EAiRNQVwrDIWqe7q3T+enp8O/xyuwexYHS7FXJutrDk5E4gE4ITyYyMaQSJ4GgEOUfq6ZRb0 1ppYU75mVRYKlsYIELHhKliTkXrb3YzjVocBiwUiKnqyBh5ZvH797fWv17fD55GsB3UCLORY m9A0ADJrtaMhIs8FmAM4dZ6DRjGbKR7KTBBfiE8PUsqVdoKXBvN1SOfYkqmSySpuM7KkkECu g7SFY7meDl4aSS+qA5DzdMM6oRtDwPDhIK69cInktamZNqKba7jJcI9uuNwQ98rR+DGqgbFB f1i+zlSqCUKUjNmAv0PIFpR1hrq6YKgCr3lB3LYTmtuReFKFj+OBQK+sOQpsl1qxjMNEx9HA dmpZ9mtD4pUKFU7mbSNHxfbh8+HllSLk9Q3qeakyycMjrhRCJLAUyZQOTELWYC+BGjLuQHR0 L96Irpv39vb1X4s3WNLi9ul+8fp2+/a6uL27e/769Pbw9Pu4Niv5xhsxnKumsp40hqnw+t2x j2BySUuTIY9yAXIEUC2JhKoMzcnpijVvFmZ6cFYL0Lc8MJXhA9QmnGZoZ0cYrk/ShPNOx4Gl FAVqwTJkboR4I1es+NKZAREsZxX4EoGCHRvBnGB5YEe7oRRf4vkm+h/M7uossIbkpnM7Ji3u WMfmQuEIOUg9mdur05/DdrxGsORD+LDKWoOttWkNy0U6xnkkpRuwYrxVAgZw5hmCshSXyO6A 0FToJYCt2OZFYwJvgK+0auqAFZ2N66godMxA6/BV8tlrt0kbWDm4tiw4zWLTzTS2eZuTgvjv dgcug1iycGMdxG06sCCZ1G0MGZVmDpIENOJOZpZSl9q25JjdTLXMTDScb9bgONE62sNzIO8b oSlZXIM+ttGYSDo4UQejOvlRM7GVXBDLgY4pOyfbEDqf7G1Z58RY7lqIkYzimwHHa4ix61rw Ta2AdlHggWk9IyvBRAI9BuKHGt/RKZqqPTWEVlOOPkqtBQdRnlHXGDuPSFVwWs7m1sGtum9W wmheowUWs84SaxgaEiMYWmLbFxpCk9fBVfIdGbicD04Z6np3LxjrqLigLi/Bjl1c1LA2ULAg 3CrYoMpC58oLC5mdXqYdQUBzUTtf1UU/kj41N/UGFlgwiysMjrYOKCkV8slMJRjHEmg6ECQG PFa08dqJgeBveWwOrx/X20GO2M5TRdsb8dDPXJfBufQtbTLX2L40qmjA1IENAnsdGRTEi3H+ JkMjNhCkTpan321VylDLBEJVFDkIXh0xeHINxDLc7HkTnmQO694nnyBggplqFZ28XFWsyAM+ cScZNjhjK2wAMiDvag1qgFglkyryQLKthGV3AxjyTpFunHuVUwxfc9l+bKTeBJcKUy+Z1jKk NxfayULJ7skbxm4HKzQ47tOTi4nd08VB68PLp+eXz7dPd4eF+M/hCWw1BlYbR2sNbMrRIJoZ vAuyIBD21m5LF2sh9rYtfe9eDUejmKJZToV0DO5UsWMoVdGKqosr6s3MMGxJCWkYPV6MotEY LkKvRO8iB8SGMNSPaLS1GlSzKuMhQ/ia6QyM+Wx+rz4up61ktGiAU7CidCqr3YJ9n0vuHEWK prTKZRG5XU40Os0W0BnXzKx7Vu2lgdgLPmFf5YekhLsjwx4+jtO3oJzwbDjCfm3KGlyvpYhZ Dmx18HU24hqkJ8iQmUDRGHcbPRRcggvigxgEGYD6l6NzMLdccNUll0iZTRX3SGxPpG+0oMET AacjMhN9RBHOCQ1SWJNNQJs0PuhbtbAkABQk3cG3Avm3OaXfIjE8Bj4c6lqpTQLEQDp8W7lq VEM4rgZuBn3EznVPjgND1SC+rcyve8NjigCmXxfcIQx5MH+uwXxC99opTxfCTNaoxQr0VpX5 lEZ3MS2r043ygtod4KURCQdb70BICObNuwRWyj1QwAg2bg2p9QFyHNptoyvws+AMIvmcSmPi YlAGoH/jjFMrMHSbGLTjIMT8vcDV3blkTZmSozvmiLuicwUH0TtbKJYmN+eJyftsvKwx55EO 37GKvzXnYaVX4vv5sO0MLFPNTMJA1rz14aE+EExszwiOMr8F4WInF7ACU7MumpWsQtqOGseY 09CMESCnSAqxl/aakBoBLlgwKDjgj1b1NTVLdz7gnm++AW6X11rkqe1Go8KRLJWhJHCAj2po 4ClqwBHhGza7vzLuaQ3Fm6PXxAeIgbTlH+MA51Ti6ChI+k3BNK3tJ9iwGVVRfp5dY0ANKAaM 2ZSVPMlJh+KZKdfo06XSfRqOmpG1FYY1RZfzIviiVFlHvbXgqLoDY09lTQECHlUNWs465NtB qDqIszGm6cFpwjZBQKqmBXrc60N8+UDefXrIFlOF26+NikZgTnbZJEKbF3D3LQZCdiAJg0Wq IkPbvcspnk8AjHcR8ZEOaox1BXo8z2nje1zptksvc9pQdDjK+ZGs6LMlerf/fyH3ViLlOAzq 0YKetUGnwKScB6XdPdV0OMO6NCYUGzyOJnYwfT6Pq+0Pv92+Hu4X//KewJeX508Pj1GEFpG6 FRCzO2hv2cVh8SkkkD8A87UQLjDitR95siHqeUvlqkKMi/bnVAF0doy3c9YCmTIIZMDBoRMZ crrzOw36MFcn4zo6riTm7/nVRX4LsLDCiN+yi18O4xTLjOWUt1uA8cONhCv72Igw6tuHfJZm RTb6HFjSjpntlQbdNQXdANNFkcQeAKytrC0kKT1dOLPMXEWCU8k6HWK3pMjcD47+YW7SHgZM B1WzKWHWty9vD1iUs7B/fTmEDij6Qy60A442KqpoIwy8lGrEIb31/QiP/BmT0x3HwUuQO8cH t0zLaPieQhinZy1Npsw35i2y8hsYZiW/gQESSIc7p4dpZs4uiCEBkx09ApGTB4DZ4csPFCQg qRSEFFJ+xHjIpG0rARvjLj5/qxbm7o8DVkmEwQqpfOS1UipMkXatGWgxnDm8jh7G849HcuJU zx6Gcx3p2k1w9e7+cHsPYvYQlEPAttK1kZcQ4G2ul2Qovocv8yinCp9dSqBDoGjYVKdB1LNy 9TUgDmswjJqKSMYM5S/MKvTidBlkw51s9Z2BZdWuCu1zX0k1A8SZ5mCDI+4qCjKH5nK5I8o8 JO2sd3TXSXuX+eiJrn55vju8vj6/LN5ARLks56fD7dvXFyeuhjNHYdsmOZWeKdISo1ww8CWF zyaEF+eAmJjuMTASQqkiRCxrJ57joZdgTIXTrcCQymWYLvOlUDpLSqHEHpybDCvFxnh5tK5+ pJnV+GHj3M7YXtSGttIQhZXjrF2GiKb1vC2XMuFj1zab8sHhdcbPz0738XbPz9AfQauwyliY X0HgQOpdpUrOZNGEoTLodrY/PU33CoNKLemNekYFzrHe42hduIHk6vU1OGhbacDHWcUWAlw4 Q5EYBXy7tiMR1QFlYBMqGbAth+lGRbAtB6V+fOgjyfsUNUn1gjW/VMr6urlR+l18uKTF4k9H ANbQlUkIK0vapC8v5wYEn8TKppTyG+Dj8PIo9IKGbmaWtPl5pv0D3c51Y9SMfnE+lJgxAcqd rLDmiM8spAOf03HtUhSMMhvKlQAfYLWPWMc3tsXM9fBrMGlmD3krGT9vz+aBMweGce6ZXqjg ZoVV52YckYIaE5hdXa+vfLgIUYrTeVgNbhTI/oonUt2F30r0dsPcJEKA4OOGUlaybErnJ+dg yhbX8RSOm7ktShMo2q6iBoMqohBhWBaHMWhIoBhP/XAEuNsByUcXCjgUkO9kT9gPa2YqDByG C6+UwjJfiz8ZoSk5PfO6FjZNPbg2UTYYxQN3MKqQykpJjGJ2UkW1yVKVZdOuRVGHA1eustpg pU4i7U1JOUoeVgb31rdggjVKMtZgipS1daEzMtvjwVtVgNRlLuye9j3SzcnqmHpc9BZjNwlV SdU3RsygBViZ1qf2l1ptROVEOYbPZq2WqYkATVgpVIgV41QItsOZ0mAPAAKbNy4qHyYqSaOi HwGDXWYNFk7CTG7WXyOOcFy3FuAgFe22D416SzHIrn5+fnp4e36JAixhjsCbRU0Vp+CmGJrV xTE4759NjPce4DjLSu0EHVJ1F+4Ovd2WMzowBXTNVoH0WgZ1JPLDJj4iLZAScrmPSrPAcQBR A/Ixkv99o98TLZQHnOSyJ3CMHDoxnDOC1AwlbxACLCwjMVUpLH+kawE6yEVUwtg1Xl7QRti2 NHUB1t/5t8AYXjyKcnZ8hLPJCAnCaRBecrVyKs+NsFcnf16c+P+SfRLhQGhtQU/p6zp9UJOD gPVQRjwecS7LPNhpn97sLuE6A+KXBRJr0RvOWMrbiKthrUf79osqWdWwOPc8rMjDiHPrOsej tU7L+36BvzUO55PaaTZAlMvY+o2au0EnyeY+trkKI47+HZk0HPyXcOA4At6Z1v6ZBw5PaSRH FrV1S3C6bDAZuuNcYqFHFLPxDb4IgyehHqItrG4fRdX6GmRUlunWzr7EW4KSCs0h72wozDGM jRsT3E4fg3EZDl9bnemri5Nf4mds805eYMWGEEoM0vmfsRCZgIMxt2PXlHoksUtfaBRFP8eU ul3Xrl71b4zmWN1ZnpEpVQjQkNhKypRcK5gmmWDsTIY7bmqlIha7WTa0fr45z0FaU0OYsn/F NRJL95QKbrWmHcy+l2O9IATSMY97odXXbcwFt4B4hNZxptvVXAZyCIskXDuWWmyi1KB37beT jKkvwWsnRemR8qgtfQlOPWF9aruUCp9Yad3UM3FZr3qN0FtMUeyuLkdOtjpaEn63hsHWJF3n 6xwSlor3xggDd4GmC0srlR2Cz1XOjGeioxd5FM3BmLKxzZI8hC75Tx/eTXt6ckLp6Zv27KeT SCbetOcxajIKPcwVDJNa92uNbxqoSAoWUkVM5qqtsGqDssZBCEq0uoE4NCrh01gHa4FGuY21 5ZAQdkms2PJyjwpcr7Amvp/FuZIwy1ms6JXFMoHuAcEYSAblgWGbMkSgTsjHiEKkaP++Um+b GfqFWp8bgOlmrD+VYeFRkVmqhjakPm9W9JK7W9BgoD//9/CyAAP99vfD58PTmwvmMl7LxfMX TEIFOYUuIx0o9u7Z6xgdDvIpHmQ2EqTxdUWHoIKntRQVgMFQCBEwR98Sh4+hFfOoPe4oYErQ CBsxF9yrywR5LmAKIF9cNSDvPnoXIki5H8l18zDtj1+9h+EI2EzSpr4WAd9ldwl77FKH77Bd S1cC6RfiXB4zfevuMN3GVlEWIWxu41puP3h6mH4R4E/kZuo+hThabFu1BYUhM0E9iEYcwft3 bZMpGE0pDrZkFoxcyh324Mba0L5yjVtYhprMkrOZPKc7F0WKMAdzISQt4P6j6sj+cHzAiCfv 9hOwzCYHMgCTdlmXKe3EYomega1WGkgsUbgOqXPT53fPG2MVMIPJjhZu+MGcYGlqsGOzdEvH YElFol89R6pTSVQBeC+JWflFggnGZDVp7w9Hqjhe42l6mV5ZqquD/ZfCrhVtonliW2naI+2Y IGvwyScWOe7A3mxVVVB0O/I3q8WkdLVvj6snQ/SEdxB3tSYLNUYEIatf6a4CfwJhPmWS1TY/ EjrxnL0Hj2km44IZUlUDYc5UEHQXC/+O5YLJqUikC2QBeaA+Dg6nLqOPFjQ7WLddpeigwMZF o9xXnYqkt1X7wHH6VjQcQIK3yMAjLFj06xGomMD43rVdoXn/QHSRvxz+/fXwdPfX4vXuNq44 6gVMHG52ImeltvhAHAPSdgacPqgcgJ35H4WLHaD3DLH3TA3kNzohQRig17/fBS/DvRj7+11U lYGLUlGOEYkPMDT4+8c7xwd3tmtjJWVBRccbHNDMBQynMQMftj4D7/c5e7/RtiiUYTMhwX1K CW5x//LwH18xEp6NP5q5X//x4dV6El51gprzfoA5Zu30Z0fdcUQ6gMHf1OsTNwmebgUMtUlS PiPg51lAYojF0A+TFZVZxzmiMuAPbulSaJf+2jvJAgZ5OgiIG5GBleYTO1pWamaIEVHy9fwo hszJuJ1c+BSyX0QA6A+1cj9CEP98E1ie1Uo3VTohNq+BO2Y9bzHSeaQLHDW9/nH7crifug/x VpIfr4iB7oeBsBaJ1d7Ln0yCRC3vHw+x4Iwtq77FsUXBsug3qSJgKarIx3NWDvqMZsTjqqkL smzIs0U3t1vd8utrv//FP8CwWRze7n78Z5D14JHyRtNnpTCQQStOBy5L/0k5KA4hk1rEle6+ nVUU4SJs6BG2uV+xMHEjr5ZnJ4XwT/OSGQQ6HMuG9LCga2lkPNbkJzSi5R4p2OBoVvlgVufR otc3My3GTAJzysY/54EYzCabRPYphPu9HmxLVybVdnZdtab40kGYkVkyT/rUqzdakVBSOs8O rw+/P+2AoxYI5s/wD/P1y5fnl7eInESb7aJpsMH9gs20FeuKBvcfBv3j+fVtcff89Pby/Ph4 eAlUw4Ainu6/PD88xXPCNWT9+6HoOPr2wZqbORxR566aK1zM638f3u7+oJcT3u8OU9GWr60I f8nBF9rHDd0zqKgxCrHBN5mSxnhQEOxw32s9+CPDAKqY+e0fVki6fqMS9qefTk4pcxLUTrUM 74xHpVg1L7lk6TfQLgNpKcPXjNDNH0V3tD/c3b7cL357ebj/PSwqvsaKg3A3rqFVVAmBB2nJ 1Xraw1Is0IGGzOhIJtnlz2e/UML0w9nJL1FlA7ScX/5ERfN56OJ1J5H8WJE/PywWSHNPGmgi k2rS4NJH7pLdT42cpOBO9uh9a/etC5ATQwDJiWqV1MkO0Jk40zhDU2IMk1gtaEOwDqfNJS6k 5ZnY9hf+f4xdWXPbuLL+K3qcqTpzI1GL5Vs1DxBIShxzG4KS6LyoHFtz4jqO7bKVM5l/f7sB kMTScO5DFn3dBEAQSwPo/tDcvT4+oHOw6k+Eudc/24psedV9UB5ei1PXUW+Cj67WP3l0m5SR X+KmkxIjvEWaALci3fSvkPw433+/3H15Okt6y4l0JLi8Tz5Nkm/fn+4c82KTlWnRYmiQsZme p27sLv6W287DCgCDiXYJi2mSAZ2s4E1Wu4GSDFvIP44mCRaZ6ZOEZbDjFfVusEmvqXJQfsVZ ZZ0RKJ+lg2xmlelKIAUAOsc5ZTIMseX58vfL239wBeAZaLAsuUksz0r8Df2BGXs1+zLr7F+9 gjm6YdwyOfJBl6C3TQBHqj480yhYQ+2/YbJ1CwZhzoTI0lvr/eSz9e5Wdlzo6kVtnUGBxhAh aWapwCGegh7FW+rkRrRmoEuTxfYp5yFn5Wk9jWa0Mz1Xn2TcWpHISXoOUTureW7SEOXcaCdZ 3Vk/tL+dsQ3RMjM0GBsOq8GU1fBQhrwNTGMc2hj9Mes4po5vumhpJczIBV29q5xayJIkwTpb 0g6gWEMh1/2YG5NmXGLIsqiQKtFMfwOfksnoGcoTBKlwEnM0PxRy6+4A8wollWEYPxd4ezLw GnlW3njdpqgDlBn43iXpZL4zHRYbcyRoUskFZvp7dKZcU/7IPuU42Bki1dWo+patFdmuxO3J ph3Z/GkZt5JRpAXDvdCRU4HEUtwnU/yZ9lA1uZzfNW2a4cVRNAxmEWq/xpwe4QdMOEcb2PDC BrbHYauElWBx//fx/jyJif0R0D3wwMmBFHac9PBFmci9kqnZ2gA4yznGniI5kE0Fh1JYfJI0 gPgGjUrcsMJ3p49Kyl2pKeNXV1OnYAi5dvMooHhsLLUszfBfkvIF5YX/2WqM8sYVi0lPIyvy D4anwSRIFbEX/bSQSSG0ERkopVLIyHLaVrn5AoHX4jZ+c2C4Q+3r550PtgL+njk1UKV2RLYB nrgwW/hewHCM5DZ/3d2fvRaObyk1QtUkYpSTzs3YFOXT5Mt5uKwMhVpZrHGOcspgtha+YdRj 6sBdBcuQppxplyFJThI3FtKkOFYT0KltLT9ifLpMqKkPJLssrh3lHT2wb5C1kE4EO7tVkJ4D xkmZoAdVO1BP38+Xl5cLWP5qPPNW0fBw7zxsvBV3Xr+15TuebVrrOxqg9/QgIJMRsT3vKHzP Audq+jFeRNM5tVrR8tRpGAqO23z2UartnIpe0MJ8n9iL8OHVWON+D8APO04thUFYNAe7HhA4 CWsVCihrd/MbCzkif5FlrP1sSj1mSJVtnlHzdIu2lRVlUuYSkpswheMHOXYt/SD2rCSvkDUd 7CLkHSeno16bJ8iMo2mZTlW5txkXe7UmgR9JniPJBXSdMuALZunL7WGMkcrISImxvGqBVxO1 QPkfDDJlQbMcM4vJUWh4ySZmhtOFn9Qx6ejmnGcbqUH79jDuCR0RnuhJvgnJOio5BKfjxy9M Xn35U4+OknR9pLZo0pvMNN7U7370Gdf7Cs7Kek+dDWnxtjYbMhp119ZAqBBtHwct3eswWSVn mc1tCb8/2DGWYkgS2m0gMXtKKlNu/QALfZu1JnMPgqU5G2vgpEcCA93ZW/wIiV2cc2+kLs93 b5P08fyEnHPfvn1/fryXWxuTX+CZX/XwbYzbmFKRZLjYtXO0eK4RwEY5m07dYqTkmk0+UC4X CycNhDA/D57PCcirUA1nkVO1MjbBpmCxYJ2lVXA5WoZMk1HBmUDMGmr9r6cwv4BlV2tlKwsN o34ok3l6bMqlk4sCdTajmS4Y0iwF+0KW0rL82O7LMhAWEiOJd9B7GRZ3crwNLzWhu+BsQ449 tzJ6XGv0NqW3YhrvS3i81/Ckcneb9ooM0Y0cs2D0td0ZbK6QcVvU9qjdY6cCQ7fInRqMZ84V 01Jf8Y3KJs0atciXxNCjPD3KLXWzYINqVnqMMDDIN2zQMAo8pKMcUIaXHUpPKpxSlucbRnqh SWowtI/9TUTla0LLHNSoPWkzN9kh4NUzGNUNaVMrMdoPOhHce6xsnwtxK4z4bbpV9tTu9f4D A97UwrM/Z68fZmtr21P9tru2xo4zDyoK6zBAP2ueGuLOqry8JUYG79RsHCiSMaoD6+5wDjwO 4GOFZNjr0beNPjeFf8reXX5osHjs6ZGPFi25GdYab1yl5v9xx7ZtrQB6ADF4p7VY8ABUsQGG aDzwSnveQiJzEGJwiWV7jpi9mAXcqmH47crl0aujo/f2nCKh02nOSO9Qx6FWEevZjrIhAJQp DDp7WpECsAYTN2R1lPobDJ7WNhCv38tZt15fXVMRiL3GLFob03hd2l7RpTawYIoVgm0Tf/FY v71cXu5fnkw+GcFUOmMq6K/gJCxjMWRTpc98y9r2wdHkS9YaSvMxlXuwKOEHvWrTSim9Yw/1 kAUWM/2TuAUjBJgZbVbPo44+pv3cMHq7qE8lZvx6RUdO9Cp7J1rSU+AwZqst4g/VcodcR828 zSaePDy+4xnZw+TL+f7u+/t50n+Al7eJPG5Rjzyd7y/nB3MYGqp6Q1djLxcdTaTQy0O1xOOm giXqTcvjQ+hohclue0psFv/xGEXtpf+sHTSio7YEykOROIS+wzuDyDDRUDFlG5hchItyB2hZ s7WPLQzY+0yESiBFwHNF1iS/UfH4fu8b/+iMVjUCb8ia54dpZDIYxstoCcu8urIKZ8ABoxVM guLWHmOzTXFiZvxgvQOzozIApN3KKm4MM7DYLzymZAledR21koW6vp5HYjE15mKYQvNKIMsP ujmiGWAs3cVyOV+einRrHsSa6Eg1BS9z5WhI9zjNwC0aMwgVpvncGMtZHYtrWGOz3HIkyaPr 6XRuvpzCIrr/91+qBaXlkooP6jU2u5m14d7jshzXU2Mhvyv4ar60nCNiMVutac4OfXylo1JJ F5wdfFjTTwr36pRbDYwf7HqxNosF3dxoEKabj21P8MjbDZEINDRIgjWnaGbXhzrsT2DYKibv rm+TwmGkiIy2pkEVRmPmpAUF61brK8pnRCtcz3m38tLL4va0vt7ViTAqnW+uZlOvYSs0uFEx SqEfCbC5cRNs2IRvzz/u3ifZ8/vl7fs3yTivfSYvb3fP7/j+E+RHw5H9/vEV/2veGXQyK9sc ELSlK7NgT5fz290krbds8tfj27e/0YPs4eXv56eXu4eJulXPnAsYnoMzXCvVlBe0cnF01uQD CH8Ch/29QttR+9zGAWtf7uz5cn6aoGWJtrNaO/YrSsGzlIAPMOL66JjQDt3bQkKOTlFENkH9 l9eB+0xc7i7nSTGGzv3CK1H86i6EsXxDcn2D4zv7zLXLZdQiPY+CkKX7foEVOo1HtTyjtisV fa8ZhaN+KGPv6XwHRsP7GVbwL/eyPcr9p0+PD2f88z+XHxd0vZl8PT+9fnp8/utl8vI8QftK HimYNmKcnDpYFkmiASuvkzrRFDYIs7/llod8R32PdqZrlAnnehrEth9bLqDCA0cvvQWX5DcZ NTiaSZCEoVLQ81CfkqapaP+hUR1el7BEQGAbxbK+kA4e5lfz3ETG0ynTbugt8BXuvz6+Qn79 yPnpy/d///X4w15wyqrySZp8q/ijM9LBYC3i1YKa0Iw3stYKBi6X0Gn6u+HwabzDuz/8m2na u3EKwYkIqZWrJibPQfrnqzTdVOoQx3uh/0/NIL3xKgqcIfVW6OdArLRTAR6pp3TJSfgq6jpC kGezZTenCs6K+GpBWr6DRptlHfEp5DckMmubLM2TjsoMzaiArWOqzD+qAGWKEcVBfOXju7qd r1ZUaf6QO8UfdVzBZ5b/7tDGs4x48axdz64iEo9mZOVLyUd1X4r11WJGvG0d82gK3/pkcSt5 0jI5+lJxON54VMJSkGUFLOY/qpAMank2J9LM+fU0WRH13zYFWLhUdoeMrSPefdj4Wr5e8ak0 72Vvry5fz2+h/q7OQl4u5/8F6wQm7Je/JqAOE9Pd0/vLBMOXHsGCeX893z/ePfWM3V9eIOfX u7e7b2f7rp6+CAs5Zwq6Vy2o7ha3PIqu1tQ779rVcjWlJthe4894taQS3RdQFWTzkiNCX0FI gd2f13sjoeTHdmKMGpbFMiSQvnrNDL2Qj1sXg0tEO6M5aDHExzkCZ/6RBdYlVVSwv4DN+p9/ TS53r+d/TXj8G5jVv/qfRZg+PbtGYfaSQaOVEAF3gD4p8gi4T3NL5GMHWMnXGpad9FIOVbj0 IA8dT0uVvNpuaRYWKUanHVgN3Jbcqr62t/nfnW8tMCwXv63zDVJOwpn8m5IIDNcO4GAwwj9e hahH6LAILcbYEs3D4Dzb1H6bdGvqKA+iQ+n3cs+xSrXinQecmphxrySASy6gUDYgT2zOQQWy fM+8xCoRS9KbjNGXezjWKW5tqagDSaYb3P6yDEg62T5wcSwPgp/rKg5coIXiuvC3C/kQVPM+ +fvx8hWkz7+BOTZ5Bov/v+fRKcxoiTL/nWmxDBBxjaCEeXJgDvRn1WR/eq8A1clnYPWE34LJ 6A3meNTYOiLLI9phWEpT6sKBgph4bUbOIg5czjDKkZ+FNc5DOCTTVpIWBjw+tPDDRxfLAPFs rO5kxNPSkIIczanDkY3Hf6WQ4OaGFusRUwxkDv7aivKb15ud9q5sy4tT5pDAIYbXZ5incojV 9ryGe6Z4VDruy/brA9lr/d1asak1SpQu3dsXLanfOBR7mLmN26sx4WHSO2eb/D6L1o5ELe7G k2CFEpOIWuolSTKZza8Xk19SsISO8OdX30hIsyZB1y8rYY2dKtoxbZBDzUTkg2Ul6GiOgvGs xOguvTcRdCoIn+mWB4uGpzwQPDyWtGlq0vUCRPUmH5wSsufX75egMSU9mYy2gj8dn0uF4d31 SWF70ikJer1bHtwKVmSHN9ZBtJIUDO+h0BJZxv37+e0J+ZZob1z9WLUXiePC5Kj8Ud3SPk5K nBycM7YedqrZqDfPpcN68ia57RfTGu+REzNpigy0xsVjSLJeByXXlKS92VB5/9nOplfWasUQ RbMVtTIdNGIdk9Gs1ksi7fxG5eknjV5vHyWMctlYEqrMLWerhUlgbUrWi9mazFM1JbJFjCUu 1vNo/nOd+fyj0sPwdTVfXtOl4FSHHsV1M4tm5JOwtG3JxfugUdWJ5AEWRM0IVoi96eo+1rW+ j2H0lPCebasjO7JbsliQ6k3gLNRIoKipVfZYcujgC+p7FtGprfZ8BwiZe9f+NHPeVOKUUMPf qMLq2cxcgw4S5Z1NjS7BkQMGFoGEfmNqPXJiJYOpihLMYwqNMwLl1aZhBL5NIyrPbWPe5G3B p4KU7JEgtzAJggaZdPJlNmHCIBSwMD9mZRxwihr02iKmvsaYiWTdILNQoqA/o6sXkaTug9YR b0g2HYYGCe4K5bkdHjS+J1LRVM1PiiC1NjTD4KiEkSYJVYL2mMXwg5B83iXlzl5rDbJ4Q4WH j5+WFQk3TbUxuz2sqLYNSzuqHYrldDYjBDiH7slG1NUsJkuIghO5vLBVKLtCsqMZzVL9lgew UNfcztEUZnWb0M4Qhta25dScZGjsWHlk1pXIo+xmAz9ISZ1smTD5FbRMJE3GcmiEvCoW/iAj hz3BmyShxnw9EFkR0gpj8dVs0fnpKTzgzqBV2gKZ4Fkt8/aT2BTMOYV2raN5N9WMguEyw+R4 tbqeQ23WFreAFvPZ/Go9P9XHxqUm1AoFTPHLqffaNbO8SxW6rSPmY+gckySWB60harO8HW0P 5w2lRpwgQTx5j5ZUOmbyStHTpi29NszanIle4n6iNpOeoG1CDVuDGQkjS6n13NRvuvaPaxLU b+QeM2qr/Ij8hn5ytwmzNzoVzIvZ9Novvrp1FW9UVZ/2g4aCdyCPnzj4sm0tVstotrZag1tp XR1NO+hldAfXCR3z1XQxPR0ymDuD2e3JFU7N8gI+WbBB1jxdTldzaLLFnpCtl1dE766PhW6D wdKgiiwv2UqbCu/pwE3YKvYbcsyup8vlqSodu2mUruZK+kGlHcHQnXWnD74Pi7t8bh6JWbDr uK+EmQwI3QfT5AWbT+0ADEvgjmBu8nHCcP4QOfxvE7gDWFdDc4hW0HRUa6XMckNvtez1iPqU ClcfJNQU2cLZvpGQ7WaNiCg2DpJO5z4iZ4/KwaNYu7a4+ubkrZHIReZWlWuMuj1ViZYLN4Hl sl+i7+7eHqTvTPapmri79Ha5CS9jR0P+PGXr6SJyQfjbdj9WMG/XEb+aWe+jJDVrQssFrcCz WlCDrxLn2QbEbn5WsLyCtGcQoQxQoY6InKyhJk5O3q5GvfmocGrNbOa4d6oSzT+7wnrkVIrl ck3g+YIAk2I/m97MCElarMejS/717u3u/oJsVK5LphMafKC2FZEm5RqG/vbW6nKaBhrhQFWA UWUcIlitWrJLYEmp869bnrPYcp68/YwrHqM7FVXHlIdWblashEXB9B2jfVluS+6FoGqMZHDv hWCKWtt71eeK5DDMhB1qdXJj5QbB1vRLldEWmjbFRYVT3mFzoG3pqSJODiFnbRDdODJ1gnd+ w+NoL7hafzsZQmGtUrRg7VDwGzDkVTewAmjl/cDSbzDcOOQDjoO/KUrxA1NhRKYSQKLKk2B5 CjpewSoCubNsZSLISkDqRQzop4VlI8P5jLtXTGmD1yoWyUcq/Q2egbxZeTtQeNH1V+2bQB8z 1ZBppfQGwkEqiS1Ph0Bkoqm6qTijy5p0DFneZyu+NOcrU2W336xCZZBxS+gX/ZMCqPMu2xvc qnObYMOqK0HHI1rJk2exZvpttF53dN65xblufcgs9IVhNPMkGFU0nlxqx5Pn3/ABKJbs0NKh YTw1cN8Fv2SeteS9QUrDNpAM0OhttvAPc1zTmOC87KjOrQR9Wh9Vu+CzVSauSEcdrQKdaJM0 MSOHAD39/9GybZCawVb9mRq6nX/cFTqkO4B1kDi5DAukAlUNTslMf/8RC34LlMHYo4aGmSNs 6sh7ALBxsJpHjhR6BjReO0bcEwULA7+g82PUZ7bNeJWbNnFQJZgajrefZ6YTnhbgia3FnWng vG1ynDZdx36AkD6qbKkpRgqsa61rv1R1bZ2h7Q5cHyWOmI4B8h7FuxFwHyvOrUUjojUrMx0u aS1xRplANmb6kFFqqQPL8dI8ymRBPfMoWgEiSx3oyFq+i83NclUQ3KqoUkN7d9SX2JiFHkBF PJpVIRtlVPSuDPQ0mOkAMcLy0llKcDCdcEzYNhPLgxUkErcm8Vwzv14ZMxdy0EFbtd5VVOVt 7ZPg6qDJe8II96zRE7loRTcSpH5bOMxRPbqwiF6byNwIKI7MiWeWTLDewd8gr/n6ar76EVYo BQ8dG8ICzOsA6EIg8eQgfo+Ww5VteHur8VXwLtfCvievh3xvPug3W3V/lkdn23L4U5O+G0nO 3Qv1oFABAwkG6fx2Y9O+9JiMvyTrZtCoUq8d4HaJf5Qfufd8ADLcM2H0OUDlQRje+meNChHX /JtUJ0ch3uJhnfQDWOy73ngovj9dHl+fzj/QuxWKyL8+vlLGAz7Gmo1a3UKieZ6UpMeuTr8n VLESUDj8TY9dWiNv+WI+pb2Fep2as+vlgozMszR+eC+O26M+WOQdr/PYLbCmNAhwdaOGKAyi YqxA9vTvl7fHy9dv79ZnBgMDWdJbO2sEa55SIDMTHXZyMFbI8Tuu+QQKAXiYCttKPJtZbuwD uJoToO27L+EivlpSAdxauJ6Zu1wIZuupiyg/VgspnKpBV/eFDfFdezpyt0D6coDQ90HH8Wvn fQFczacedr3qbMyaOTRQN1X/ZeRNY2QtC15k5vd7/+f9cv42+YKUCkp/8gt6ij/9Mzl/+3J+ eDg/TD5prd/AnEcf81/tJDmOKzZLEcJxIrJtKUPRbLPdEfrujo6CyK2LP9zHTSdKR7Zht23D stxWSLbR1PmkSZEcIvfzBeYSFN0kRW1GGcix0XGskE2Fs8D71R3zAP9dmpt55xZLZEWbBDa4 QayMeG+QT37ADP8MazDQ+aR65d3D3esl1BvjrEKu3b05DUg8N2mnZcFdigcDPOW4ceu+QVNt qjbdf/58qsCsC75Jy9At40BNmVKclbc2MZLqBzW6/qptPTM+Ynhto6nbr4wfSzFdmo1b+Yac FDOQac5Ia4VxJ3+isUpIB8O6VaGCWbHlBKtBx7vC0PsTFYf1ZDSs6oCbb03uGe5M4xt+WNO7 2r0XmTGaDxGZEn56xMhbi1UW3fx3gXOWuiZ4Mtoa0nm5/487nyTPkrW83t1iQCZ6+P0fY1fS 3DiOrP+Kj9MRPa+5iIsOc6BISmKbWxHU4rooPLarW/FclqNcNdP97x8S4IIEEqx3qEX5JUCs iQSQyLS5qL77fruDp5e86/kwf77Cy0s+9kWuH/+j+Obu24sbxPHwjL1VhT9MfxlOZSA0W03K CY0DvzIcEsFJT7ovkKcg6CIiPfhmZxpteDqnUYXRmDPrRy9fb9/+vvv6+P7OZbQQVsawFung MZvmh0eWXBwsqCNSkquMjOktQbhLXWsZZaek3Rj5bHv4x7HYXqv1XH4gKTk7izQWaKH326V8 qM9GEA3Zinn92fUiW1YVHwdq1EjZR33inbGPx7HvUvLyU6DHcxwEWk5SOo9d2PLB/c+hA+Em bKETt5ErT/BwCYo+tlZFe5Iz0nyXfF8n4BNzw3QVqwqCKNPLX+98ummOm+WAkJam1vGS1Xpj ymHsUFTvTFPxwam8xgIl2tf5ByrJD/fsZgP2bZF6sWt6Tqi2mVl3o+aeXo+kKz43tTmrNtk6 iNzqRBscy72LeMZpa0l5Ya/PPLQaC9KkmuDMy5bvnundjWwfYcNg+3iXBn0Q++ZwsphtDmYy 1AHo0OrSbMNensEew84gbQ+WccIhBlypLHervlGQ3dfHZ2NwlpeiMacYX0RsLSK8bkGYDjc0 knVZ6ntLFWJNlhzB8NKoExg7LtYJKUUDcELi7OReNEkmcnb/+d/rsLerHj++awKAJ+JjBiI9 gOV0Q5d9ZsqYt1pT1uKYJfa0gk2Ye6J0wZljWF3VkrPXx/+86IWWCpkI2WorsmRh2qGgjkNx nUArrgJRYhFx4DfQODG1k0Ucnq/25gzEC0Xy6XdSmIcyXcccse0DEfkcAHGo3m8w4FrqkzvI PkqGZk6OpC80gUFYetXn3EzUNDAdgf/26EJB5Sj71FsHHg0uppSKglkJFZ1OrqnzyxzisWqm eUMyEhvCVx/atnwwPyvp1qdobZZIRiSkBl0tydKFiNGDRRg8HVO1qIFsZCqFtDXytXCAaSQa vs417z5erwLKWm9kmcabkVgOOHIyIBbq9GZkKPNdwzeoPpU/25AH5nt4ItfhmMljks0nLzrj iFAaZLHN1bn2mRrndvgk1x9c1Sh2qqVGH60lh1ZXqLBNkpkZ9O0hLy+75ICj9Yyf4FqcGzm0 cxPM4pnlEwhfGM0ajWaVJlKwFnJTyzJCPLt47dAPeEYe0JXwDsFgsV5CzN+pkx05qKev9Kkf Bi7RU8JYoBFldVdhEJoso4k0VUM+ClZuQC/GiIdci1UOL4jMTwMQ+YHly0G8pnW2aeRXG3+1 3LZCOXTI0o2DQgw1KY9XrjlmRpsks/RdzyWGokXvTyiIkPgJwe3V6knicFLDN/WGllTLd96E udLgci6LVi6yLlHoMUWvXMdzbUBgA0IbgEyxEeRTFxUKx9pDd3gT0Edn1wKs7IBLl4NDoc2s UeGJltz9SQ6qaVgahVRj3sd9rvlZGBHXAWjha9ukcoO9LiRnF4NtmbMqJWvLNi7pzWhmALMm ItP+3BK1yFjoOdSHwIWht9S7WV6WfDpWZGKx2VxIXAT3fKe0McsD5xROsKUyFUcY3pb05DGx BH4UMDPb8dGHfAhrZs3SfUX5bB4ZdmXgxoysK4c8h9E7gYmH67U2c72JY3kIy1McS/CokWlf 7EOX9PU0NfymSnKyHhxpc9oeaWDgBRjlnZk6CBaHJRxR2+aL5RBqhH9PsWG2pPK507meR8gK 4QBilxOAkPfEHBfAmsqqT/laSEwbADyXzmrleUR5BWD5+MoLyTkoIVrLnEY2X+RDh4zEilhc UogLiIwVqnKsI2JGJecw9NcWgOoxAQREKwtAfIMqn+9G5Fo+T+3WJ1e7Pg2DFZlpXm89d1Ol cjgvNm9ZhbSyNzNE1H5XgQOya6uI1mIUhqVuKauYHjJ8R7ScjBqCVUz0cFmRU6JaU6O7Wvsk NfB8sg8ERJo5YA6y8aQpz9KgAI6VR1Sq7lN5clMw6cnfyLxOez4jljsdeCLSk63CwXeOREsB sHYIbU6cMK+RitNWdCSCKcmpgiXBzIvte0o4cbJH6lAc8P9a+BDHU2KGGSYI0/pf5W7kE82f 84V45RBDhQOeix05K1B48pxlMcgqlq6iamlAjSw4jjVGN/56eVpyRSEI+R55wTf8xNr3LAp+ VuwqXJTdXGFxvTiLaT2fuQ7VzxyIYo9KwZsypmRlUSfoXk6l4yMFBfG9RQWxTyNimPf7KqUW gb5qXWq+CDoxYAQ9pkrGkRUZxV1loOfBsUggjMlPtHfOFcZhQmbQu3SAsJkh9nyiA04x109d Qm8HYG0FPBtAtJigk/JUIiBKwKR4ofScsYziQH+ZoYIh7Wpv5gm9aE/q9xLL99QB5sQjDgKJ uomDwH8tmi9NkwCsEW1br/7ecdUNqFgr1GBjAwFMfrpdXsNDseHcFXZEycOlYv9y5sqN7Iam oeFqPJiRduoK8ZIf/L+q0fJGfPSrv2vAT2PewrNw7OefYNwmRSffnZCCiUoiYiAJbxP/7yTD GXtZNqnFMd+YCpfJrORPKwcMm6Teib9+8qG5JvSHtGIr5z/tYWkowKv0Am+MhG+9kYUolngi 7SmZzhY5wj+7KEpaJqQkgojy7T0ccFetWS6ZAWvSS9ZzQd2wrW5Bhxjm9PPk4Rz+yjmDAcy3 r+gpnVpMYKGqqFcl3S80hHoxQLTGaKZPCQXwfdEwVmzKyW86u71dnz7u2PX1+nR7u9s8Pv3v ++vjG/Kqz8gYtpsUnEDP2Slk/Ev62BRerknuCafIvNE18uA/3uRn2zJh6H5Y5d9VSXpJK0t4 GpXRdtQsmfQ7nNl2+suPtycR8tAWq7baZtrAEhTNmzTQxqsWjcr8CJ/pjVSPujZpKzFKRqsJ nCjpvThy7JZwgkl4HwFP2lx7Iz4w8+zLFB8UAcTbK1g75JMtAY8WGlolxX0IRcM28qLppLGg /uHRhtDml0A0DMgTi4EG5CFO5DzLBdDEoHWblFEEzTdo6A5I0JBpCVDgDO58PpNEsy32RciV NFG3GeDbkEubsCJFGwWg8vRtSZ3gQV5SDH06JN39ZJk7Z1q2KbYAAwLT3dOMErOl46thBjDo PmkVkhzDa0nUNzMidJPFSgguzec+oL8n9WcuDpqMtHIDDtOwB6hx3FYxeXI3owGZKHTso03c PAWWE46BIYpCz/ZdCcehNlaIW6uJHq+oc48BjtdORKSK116wVMR4vaYOJmc01grYh756ViZo 42ETJlMmNUAHvzWYolxTzjN+9AiTkI7OJhgPdJG/NBPSG6Pr2Vl/Lq4xBA5p2DGlRqbUgmoa fQnyfUwatgisDvrQ1VqV5SmxzLBiFYVnIwKQgKrAclog0PuHmA9OaoWRiRkSwMnmHDjmwqKm ACO2Sf/oq+vTt5uI6/Zt0EWEkVsxOhNV3HfOGgmwLAjn2YBUJY5GIQqtL/ge3/cDrpaxNDHX sLL11yv6bEvCcUQaYw55l5U+OIXZn6IStyx0nQCNL3kfa7HjlWBkFyWSIaasmWZ4bSgEg4Wg XQIBQ0zfCY6VFSaPRsYSCMhTG+XLMVmiOPxJTdc2X9Mzg7GK60xcnlvstPpTuXJ862genViZ s+1Uul7kE0BZ+SjmtGwiynBTIKkfxOuFJqisy5dmDS3UqMlW1iTqrqGkZrqKNKfkahWrAB1A jTTX0WmwLOh5CyptjzrAK+sqqx9qzDRTLZoOOgwaVWNRKtLF0uhJTU0xu1ezWXbNHNviDM4z mrJHV20zAzxCPshH8OygvWWduWBDLvbjEx/ZhHMC2EnE5NzDPHi3oWBZ4KvLtoLU/J+WRMZ9 ioloyv2MqLsBqoFtF+SYJfTsyUNqNUYsHvZQpWHUKaXSv0nNd3HqjJsxrFUoTvmEym5HjoFv KVDByrXvLLcH5wm9yCV7lUuh0Cf7ARa8iCyTQDwaiSPPktuwJJAI3VqlFHp0xYURV0S/CJ65 QJ0OyCUQ8cThak2VQEChpekH7fineSPDVQ2K/IW815Q+gXg0VV/H1LNsDUM3bAo2bCo1f3gI j2I6Ww7FazpXrt3TYgAQz9YGYk+w2ASTEkUkH1X55Qy2h8+5q76JUbBjHDuhHYrt0JqGThVF nrV9E5q0eqKCzKvahLyuwTyMbnoWVHEURhTENaHA5R1Df3fUVBc/DEyeT7ee1Dw9ssajVmvH 6LYVmOuTw0/RK83FFu5t6Hqa71xIFuz4rEutG548KxJhAC7f7M7HhV9fnq+Pd0+3by+UlwWZ Lk0qEc9UJrdmL72YX/qj8iEtJ3Cp04OXpCOVm8bcJfBo5mdfZVmnfA+XO0+tUFP3HXi+Rb5x sry5IOcUknRclR7PaCNinanvPmdYpyXZ0YzlIiGpg1VFDXMsqXdkJA/J2h9qrIKJkogDZnCE fUn5/6ypN4ctnNJrJQPqsRJ3JSbiabJ3pld51aiXWTMyZzbvV3oR0VgGITYOqcWAM0+lRbeI mMl4lCZvj6+3P+76o3jwZHiMlA3VHjuOGr0wkPXXthgU3VRsU7On9hnnsXYOT3wscIQbCbD+ 3nVDZzA2sKC4er89X/+4fn98NaspmE4v/356/PoroP94RAl+0di1GuSVF59NtwDs9uW7DGL8 8uX69vJ89+3x+XqjG1g6SufqvuJzXjo9T++7KfgoJN1nVXHH59zoYuDDlCQwLpYmPszY8Vnw YhgcmPVLjLKaUqDx+lVV+huDQ1alaKih0rPnr9Td3DABj9MD/rGED22XMwbxfETA5UmYimH9 +PZ0fX19/Pb37Fbj+483/u+vvFRvHzf4z9V74r/er7/effl2e/v+8vb88Ys+D0DYdEfh54Xl ZZ7Os+EHdNTzy9PtWeQ6BVD+EC/jv17/IipXsdZfqXrGUGcW+KWvOkKXdL6wRNHktLfL2PS9 KQrz9fnlplLxCE8SvvGanjtLZijdIyo80QVBvHJwspc3/OX08SuE4paNqU+T7evjx586UeZz /cpb6j8ysrQImDnCokF/k0xPN87FWxNuzxATH213oh8xubp+PL28wj3lDdzdvLy+6xxMdvrd jw8+CHmuH7eny5OswrMWxVp2/CjxTSJ4AGnVS0sV67Mk9lTlxABVrUYDXY66VnQdq1aGKlj1 fBdtyfYMcVdjGxYgz2EYW1mxKl2tWCysikTj9rfb6wf4fOA9/vJ6e797e/nvPKfGLth9e3z/ Ew50DWdXyQ7ZNfOf4GOIkPcC6ZV1XxBUr28DAblk4yRx+YNJNR/sRaJ/lxXUMi4Q8HTBcB7I DRAQ8u22SHPsgh6unXY90sGOuwR8ZpECFTB2Kvp0n3cNdZqXqb5s+A+uwbTFJVPdhgA14w1x OJtuvgQmHtPgtwcq/cJl3RZe/9Gfv9xXbPCAhfMF+nYzQyjzrVDbJmMPS9Zlk2QXPtYyVbAr eN9rtd/l1UWYB1jKY8OOk5tUOA4exNvdEBFeER+oDtLZVORYnJCNLKwo3ZA6NxwZwM0pTOm1 6hUWQK5q59gQZqaK0762p4/4gI0P/F17MFbfJG3v/iHXq/TWjuvULxA488v1jx/fHsFKYZ6N kFPdHI55olxWDIRBlQ5I8uSPz8fFGpngVapwSGRvu7VLXyiKDtuRr8FlX55227Pev0Djoy5V p6MYMVUSqKJtoIU4psFA5btX6twZ0ENW4kwS1mszc5fsPDPbtOi4xnv5xOeCtbZdmnSX7HQR uhz9/U9n7fubJt0zrRWkm1E+LDC9HYKxiAGSXT/eXx//vmv5Avr6gUeCYLyUx4zptZCIXAwt JZQsRV03JTjec6L1Z9UT9Mzye1Zcyt6JnCp38Jo08/C/E9aAm9Pj8ew6W8df1WbbDqWSwdQu LMz9fULdVZK8cZKQnwbbuvZSfnIdt3PZWfVaZzAxZ+X3bpnrTJuuyHY5lXBCUGfMF56bb9fn P160fpF7/OLM/3OOkHMMIcgP1UasJFoAYSFheV+OYUmsw68CJ/77ogUz7Kw9w2ngLr9s4sA5 +pct5e9azHQu1tq+9leh0Ywgwi4ti0PP0wvEpSUEeo9pewbJUawd76wnhBidxSaR12JRSJ0S Crbi0m9b9C5ylMNJdowCbEOFIPLgUDR/l7a7g55uz7eh/K9NRV1Ei2Y9a/OTE7Ybo15F/ZB1 NmEn4ytoq2K2NVqncz3q6FjUL9Ybg0sqTOCKkC5JEqPjkmOyo+3FREGLzeBS11iSthDc/u7f P7584Sttpu90cYuMeoDQCogKcYUjrSDQpTK5OK1u+mL7gEiZGsaT/xaOG445S8zDKciU/9kW ZdnJXR8G0qZ94GVKDKCAyHSbskD63oB1XP9pi3Negvn/ZfNAulrnfOyB0V8GgPwyALYv820z 7OsuEKCY/zzUVdK2Odz05vSbSqh30+XFruZiguvIlKo2lhKdRUET59u863ju6hUXMHNhJL25 qZ+pEjC5Is/doHtGfQHlBAkGhQ5/ui9KUX2I2DcKUzTO/hx9pRpnXtA/Yk1GGbaVp//m3bJt LlkBliN1nhqd/LDJO77g0zYInIGLDbquCReCvKX1DIuK9bS6tBXy3aUutaCTYVSjwg8ENX2+ pe2VYPKsyPtN0O13ejZTUFNbZszNxH0SneG0D9NJ+PJ+JhunuTNEapgzV1cc8YeAoN/7j2Tb Hf6I06OziFaO3oeae7MZKfPYCaIYy5Ck4zMfYhbV2IQScrJ4QBczCTxA4YkiSHx3CB6Zi0NF ghDR8dMhp7AdRdT7ZMwnOaoH3NBGxkZmIlrtb2aO5a3CzLfQSUn/4Hq4bSUJ9RyanGQkeRjA vsbJfFhLLMxiUcTCT5CMthvIEGalxEDB9A8W7OKTG5ERdAMtCV+vrbM7b/haUVgqcP/QNVpe PlcvaOZj02RN4+rf7rkyR5vJgaDm+m5eW+Zo0t1rmbUVpYTJqVLpq/5A4/pHUl3yI34LgcD0 wHrSjJ3nokUMGCmX8kwQdzRRbxMwjDzYmhFtJWGmb/jm89yv0D4VMjc8q4ieFqZCeF7mEOCy qbSZveH9cj5TNHEjsMt0UTiitG0lLNJdk2Rsn+dYDiaH5nLvrp0zSXVIqtFitq0lYIyvKU6E p00VqVHzpml+KdPM1PCAKK7thqgYGDG9Rs/ZaammIs8cw5sccgIoxRK2fz9hQuvBT3jbE+1G Y+YQrlGIFlXyqOL1yr2cUGD3GWYJ3+UmdK2tV+XK93WnnQiK49AORSREWXejFg59h/ZQhnjW lvRtHJAmDkrZNOM2ZRAgMy8l0yNvgahsKWyThS42tVe+1KXntKaUca4Ish5FhxUXObSmDAdK 6gfKxuLZmjWHGu23pJdpvgczDvD3aqQq/mN2w9Z3eb3rkSLD8S6hThAORjazI2Z5ifP+8gRx rKAMhg4P/Mmqz9WXKIKWpocxXDIid4ezVixJ1IJfYwZ9/phoQV1UCxTFmBaUA9+ClVrL5eV9 UesF2+R90y4VDG4LOjoAoIQL/otSbwTadCwpOv2jqbjzsaVpPVeVtoImr2QxkXf2rqk77fXp TKVjjUPKHG4Ttnqp4BaWXLcl2Bj8n21BdOUIqzZFRx0rCHSrrgBA2TdlnyMNRVKW+mbXh7Fv GxW8cEYwb0F/sI+zQwpHf9SCDOgpKZEhrijCQze+sFWoRZqgwEhA6nO9JP2pqPfkIYAsf834 hluL/AxImdr8SgoUB++WpLo5UjdeAuQ1Nif3SIUfrVLniY7HD5C7Q7Up8zbJPHrkAc9uvXKI pCeu5pTMPmCFUl01B6Y1apU8jG9RVWoBDxObba+RG4jOlT9o1EPZF4QYq9XbUEnoip3eslzx IeNlAtYmNTwbLhv1KZVCJKYg3/DzWpIavIT7BBzA44K1EMItzUiiduKnIktbepXPmjUfaJpE 4rod2JzVRaoDXVElWrE7UKT1WdI1aZr0epG5DLU383DLgPOByGBqLvB7SZII33QQD8zO0cMQ 5YsmeagmOA51W+orUVdpw2jX5XmdMPVgZiIRI0KE1v29eYCcrWXriyOtaQiwaRmvnKXQ/Z7L GE0U9/uOb+Gk72m1PCrdPlcPoIRcWry1l+JTW14wWhRV09tF87ngU8OKfs67Rm8iFX7IuAai S2npWwPioJJ0uY8dfmn6RdlOEaiEXRiluwkTssIQxi151j4wS4OCOQgVla+IkqUqdJC22fNd JpzRlvlwtoxxY5cGRN18TxjCQVjyfcIu+xR/ArMhrwAiXV1zyZXmlzo/DVu4qYmwFRE02O0d rsaRFQBkMnrqAMW6II0kBNdDncBbZmFgig50REv01LnVgFxOey5KyoJpLQHQphQSkfV4RPwf Z0+23DiO5K8o5qknYmtHJEWK2ol+4CWJJV4mqMP1wnDZLJeibcsryzvt+fpFAgSFI+nqmIeK sjITB3EkEok8AA2sDrQrKwi1SgG66S/Q4GFUALM3Rm/PRj8MlnolA2Ik/gFbbJB0LLomHYt1 gZ3V4c0P02k/iUoTB1gpFD7S2aRHqx1m0BpedejYtI3x8QzfNDD5hErMn1ZuLB3RpKwbUKf0 sLWt6br6pNsQGdnyDmbPAeF4tolY0jmntZqIEh2Bcuik3v3yV93ffj7iJPMty2xwANNPKDGU fMgCtPYDz3MXc7Oq/fWLlI6t94HeLxUfseAS2E1FoFkk8z5E+7BC+bvjJHq6e3vDIrQwfhFh Vw3GWvREsOwTYmNYG/UxmEcspkfI/0zYGDVlDW+oD90r2MqBaSKJSDr5/n6ZhNmG5akl8eT5 7kOY0d09vZ0m37vJS9c9dA//nECeJbmmdff0OvlxOk+ewZXg+PLjpG65nk6bKg4c3lYQFFxV +dWnR/YAZhtb5SP1BU2wDEIcuaQCRVSOlExJrFnOyFj6d4C/DchUJI7r6eIvkbm43ZFM9nWb V2RdjrF7QRZkwTYO8I8qi0ST4WXsJqjzkYLC2JkOZxSODUpS0IEJPdvF3gnYDg8UcSB9vns8 vjziluZ5HPmynpbB4MairAEKTSvNV4HDdhh7usL7LNQ+giyorBNJCao5CqL/aB8OBbYxrmXl aON0Uo9Cxh1i9EmWHeB7NU6KgLG+jNbKKFZBvEpGBQOgiMG5ty6vkZeqp7sL3bbPk9XTuwhy IAzn1alh5Q3+zqDl8mqdrPcKs4JiZ/A6pcJeoq08AVUiqykILYqKgvtkWq5Enw4jyyHgmQmE YOGyPPYjDHtLyNzG39/ZXmHpv9FaVfFvpPokT72xgaQ4OQY8Oz7ibbM9aHs62ZFEY7J1Wrr6 boP0Fo0aZo+B9WNT8Ibodh7JkYU4joUE02SNWOgolE9bNnHaJtlIiGz2NaDfjOnMZAGmSmQf lxJwx1lpqynT+tzAcwaVvsNad6JnHSz3QU2HBDdPY+Vx22QupkFOF3bgL9NDs9VYE11YoE1Y 7vVGbyklpupndX5jA3Sw1apAyKT/2651MJjymlDRn/7huCPZLmSimTfFrIXZyEH2bzre4AOQ GCwQzLtLoik4hxVd/fx4O97fPU2yuw8s0SgTY9aSpqkoKy58R0m6U7+VJ7IKZcVBE6x3pXrn GkA8Wlt4a+boHqRd2UCStcB4pv6BHPoLTi4TgeUUqvwwCQnWAfaRoJ/e/24jWHHYFtu8DbfL Jbyt2FJveg7D4jGUI8nCqu58fP3ZnenMXC9I6rQsYemY8o+4DWxR6wPWzRqQejkhdI/JsodA 8Uthp+Our0iDOfoFoEAEAAalxdllQ6sDOqJtpJBS8sbUoxA9/oDYvNfnses6ntFjKnDZ9txG gW2si1sM4Rujvio3uKE24w2Qzvjz5TZknZQP5G2e35p3oCwNIWt7SdJGG9El3EV0EGX7mSZd ixWoQxM4CYzyCOmyLcPkoMMKs/HEBFVrEHGNVrYhMaF1EadEB+p7cmnqkJb41Yv/qZcXUPRL B6QxsgPGHIoBZYzIgDEGRsagozEQiEFRmfxQHPWAUEiGGcBryMF0QVwVf1HVkq6tlowNqDlX EkpTKGrY7W6Me0lE10keq6aJTMNixl5P/2JWxU9w3H0wh8fm47X7EpknYHNbJRLHYD/bbST7 UsEvkWVY6Qn4fYOybZQzbLMq1bNCC/Re3rV7puNQAaAMUSGpNfOncvwwOSZeta9JckNFUARI Yn8uuw4KsHFRoIXbEDIxIz0Gp116gVQc+Cl5L5Nw/Snz7eXuvePaP6W1Mfs9wJFYGYIBZIRv pIg6jco1/IVOxrWoHh8SIamyZolGN6UU+5DEetNNusxBRYOXkAy2tLZ4lyP8uQRIonCOGo4C bsfiLeRqjiOG2Ia4nSAgt2RtFNjSr049ehEdKyTUPIqcxz68976o9FnKG0lDkCc5adIIgQzK JimdNrkc7//AYhL0RbYFCZagi4JYV1KVpKpLvnSV7yPmcjYa+6WeemiczXROkC/5yjQjReuo KaIHfE0lHnyeB4rrKCPzAI8V6jsmU/UzQzQM1mrPzQwT1nDxKeCquN7DxaFYsTd4NiKUArvy soIBcTwtz6NKEEa556DOJle062vdYdZviqh1BWMGnwLLc+OohXgAobFCPCu1rbXfQ/VgtoBC QCzw4wwBunq9WeW6Q4ILBCdH+LoCHQTomVX7rmolKcC+h6s8rl86kpFwIPAc7PLL0H0sPTAx 2+rLzYx9w2scsURkyCFyzuiCiW0emUr7zsZxF/hlmq9Tblw4VqsRtYo/l0UBhBrSoVnkLizZ UpZXYQTUGtas+6cGLBtb1ujw8mYwWwbfNLHtLfTpToljLTPHWujd6BHcklfbvkz1//3p+PLH bxaPSVKvQoanw/IO2akxM7rJb9dXdikGBp8NUEHkWhfMjLoMDB7KY+NfpNHcD5UuN+fj46PC bOUnTGJUL942mzQfb0cQUTkY1PWjlVBBGxN0FJp1QiWeMJHvsAoecQJR8JHsd6tgeh4z0rX+ gRlJCX58vdx9f+reJhc+dtdpLbrLj+PTBVzXmWP35DcY4svd+bG76HM6DGQdFCRNivFR4iGn xjedoKuCArVIA+8GiPJPr8CNpGlK4iBqKQ+AB3IS1fJLNkMZhgCJ5snKqLgrJI8qhLTNaLQn Ld5wHs+9gwZM5kp09R7mqm6nDJr6tj93scQSAr2Yu3pVqaP4Nfcw7Y2LQxPHslEhjqEPjq9X 486wauaj0fyHr0CTgDFs7due2V8X+QbXQhvHxdC6iVruBygBIKmV51u+iRESzlA5ANcRFT1v sQkHLMU05TpS6+mBwmj/b+fL/fRvaq2jMVsprtjlyRAuggImR+GcLbEuIKRX1qUe5GqAUxk1 QsDcmEbpi4C32zRhETNG+gWhieQbGBjjQPcQSU6QB2HofksIGhBxIDn4SlTWHh4T1eVCheu5 fDVsRJnMtr7Vv1RQzGfoQpVIvDkuQguS9W3uuyPJBgUNZEpcjK7LnkIPdq+g8GicVwo9FmeP qYkbOUq01B6RkozudR9rj6PQVB6C5EAJXLNSlgpPiawoI5T0EwrGc7B+MBSaFXH47pnVKHEw FXi7jxsTF9449gbphxYQfRhAIzxmjyD0urCYBljHl7mDJ3MdKqXr3EL6TeGub6FwJf2zgCe5 M7WRjVFDFFB0TIlrqq5IlWqbV+YIEJGgAAvQVGx2oAfdlrnpjc1DL0c2vvMAM5pcS1oBtmWj m6Le0U9fqG/Lqg7/065FeYlMNt3tNttFGB9wLTw2u0zifrZagZf4kK0tT7MxfkQJfsmPfNyy RCKZ2z4ak1mimPnuSBfm/md94N8AJwpcp8bOwp6MHUiMDh3r+Wxkcdgz9FlyIBApb8yio/G1 xfpvNta8CXyMZ/gNPveAcT4bTyBwF0iVJPfsGcJ8w5uZds8clnXlRnhQ3Z4Alj3COfRQ9DLc Regx9zWB+3Zb3KjZy9jGOr18obeKz7fVsqF/oazNSCI0zEixQ1aHnpFlGJ85f74dXMJ4fL3P eyUZLcMF7lprnAdXU1wDZjr8S7gdboBKKcywIhTYJsVKcRkG2BBqfx0URZKpnRCqfwlSKvaw oLerA7rIVjFqgrgkGRWJc+WE4kHhUgpFo4RBwjflbRIyQqiQm6iEcDPQnXyVNxhC6vQeCutZ YHqoMrA9oZbJZhjS6OnYvVykIQ3IbRG1zaHVPpD+1E00RCXhdinZVff0rBp4uJcrIXsGR5lg sD2MG6JAzDvFTKbqo13JPyEmEbtiTjVwXbKOuNfGOIJrTNucXmfHot5sR1LF7ZZoXg5YeG0f M/XaOx6y6/ch+ub5ArE6TYm+D+2lzZWKDCEksBr6lsHToto2BjTPVZ2EBBYhdoTNvKlSh7Q9 b6cfl8n647U7f9lNHt+7twsWy3p9WyX1Dh0ojoLkOxX+QEmaYJXKbjRpzYwt+fXnHAcQiPVy uj89qckW6wz1YEtr0NMqW5PW126zRtV5XKs3li4rEAXROmnpZbVpMxJURoVLwNS4PRMjwNlY +vLjfHfuHr5wizc9jyAXA9N6NMMgnb/mtiXMtZPvv9PL41NnOmvEZbFSN19C0h6KKnWaFML/ mMWaZAPBFUZLNmWaM5nTLJoxl4diM16Yxei7luyhq7QO0wypMAcfVXuK1DeQlJnwuP2Min6u PZ1m4x2j5VdkWyB92JA4+PYtSz4pSxbu4lqShy36ZE6Z/VQtWxiTdAXsNoNIWXLbBQGeiulJ 92kRlkXcFximhr/nKUCSR7BJIr3uIEv1uq9sIyMGcuAogV5THpERYro1k1g6e/lvXaE3QLnK FMKqk/Rb0m7C3+3pzP+EjF7XZUop63BPnKckapGY1ipVSgKTife4KsqU6AAS2J7hYA8FO1MM 7FuK9CojsMBQMt5HC+bO3MY1MT1JkFcZHZO0pBsCvvzXtFVkO95fJvUcnVQlpAeSYpYug7Gx iINoimlQBjS9IeXmBFH41IeeoFUSCw//eiXwR0KASVXgWSOvBN4M/6DG9tGbiYRHVhwDmyuO gV0cPB9p3cYeCgU+p9xdfi3p4cvMlYMFiFmncgX9Z9mtj+LStC5by9wQKbMBsaebyEBF3gFS W5QGIq8ij205Y+nFN5aNPbr3+IKSNG1gKxlaVZzZGkPkSDcEwvJiDJcFIWRTlWO3XfdmYBah 0DgYYQI5ngzuit+q0p4YKPA0v8Eu7z0BcW0PbTD9Na+krUapzC71WqKQ7y/NMAbbnZHJbgvA 3bRzSDg5igXmNRvB8/GPsJ4VcB6UYwY7PdHNNmBhB2g71aefwExAR0chbhaUtX+6JmkFnmYM cK063n6yRzl+qQQrVlBMnjBwu3zjK1Hme7hvuyZfoUCTqwCwRZb2hv+vPP7IM23ufxLESA/F /H26sUYKNkpKtoaucdYul8LpPnq79L5SqvAd3N93T9359NxdZCjPlAIB8ftsIvenF1pMT8UR xHNPjSQuFxdlvx+/PBzPHc8lPlZRM3css6bo7vXunlbyQgXJv9IbC3UdYwiJe9Pf85k3XClY 3+h/vG7y8XL52b0dh8EQiMcPej+8P73S2wfPxSAIiu7yr9P5D/bZH//uzv81SZ9fuwfW6Wik p+5CtRHiFgXHx58XqfbrpYRk9p/zP82BpmP6f92ke+nOjx8TNocwx2kkKTjiZO7LC7wH9MH8 +INg93Z6AtOLsSHmSRJ6W4fJF1hMLw90jl86JQQpyeeuGhntsLpq+1+7uz/eX6Fi2hodxNeu u/8paVD4xZjnaZCux0zTxB7aiRQfpc+NhIPLnavYuAioPbeNxD6ryLblbPWC1vdlgy+R/aTm futaNP4e2yxyy1JO6L6X4CuCv/2JPkwd1FJy6Lgnv05xKLPZmYnRDV4ezqfjg6IyQJ9ExDCL 1NMDOb3CJHv6D/EwE/fU3hS0DbaxzG3iVSGxrBW9DVWrAEITa7w9L4s2yjbtISsO8Mf+W437 ROdjfnUbMp+iA7Wqk1vu2jPQ9qA2Idg5JLDQTSUrj0AoVvsCqFnKDOByhbWclWUF9jXopwgi I8SQQYHHGhNYzAVt+DgWlz0GFymDdfwnduZtE8l+0gNMtp/lQO79YwRK34Xlga1e5IMOvifl YdK16UGUQJ46xW4aYOsYDzZDr/dJwYJu73PcYBqimdFTtWpKzA4mTrIMioIYL610AVWCCzIo yUtfudgxaB02clTZ7de0Idu+VWXz9ZgmCDPU7Rbe+sq2Xm7STIkI2kSWRYXFPZpjYV3psVkp BPZ4pgY5q/qRFduPpNcu9rBqyF1gdh78fYJsfCxZUCC9QgBWKS8rbSnwq62CGGkFbPs2gNJN 4EWF7GGGbtw4kEN6s2k2vxkq0dcTTGyYl1jAHRgSjbpKqCiOjzuEAmqC2vhm1mivpVI+rVdc hU0/w+iCFVRr+n1ooxytTCVrMcor5ZGEH6nRuoG/HGeJ6wz7J56imU6ndrsDc79P6Figup0W FFej2dHN8FlT6GdxXJXrjz8QYLZupKUtsmDog54fcn3qeJ1lsGnqIMVOOlHXjfwCyZyH21Wu Rl3kddWoNy/HsdBSkRluvdoZJodarfDVaYUZJZJtvYSk2VVdOm24bbTodX3xbZE2IxXkGT2C qwyLEwutgmAlnXPi4NePWAGv0grTDEdrerQmQxPyhZVhSnr8gSuXonCGmHJtEom8T1i1PUWm LmsJTIVI7KMFBR21pjSKbkIWa+3TgG1UagGrNnqyb7ZyhMJglzDRpqqTKpCX6VXsEZJadHp+ pveg6Ol0/wcP7w+Xh+tJKwlKw2P8taMUuiYxZvYrlZPMuDD5i6Su445o4CQaTdsmYeZTFBPF UTKfeqO4he3iOAIZB+hyxNvTc/8CsNln3lQNVC8VKQ4VuqskEm6m9fkY8ETHaOnDqDJ4IEkj Z0QBIkh2kTQe6z2p0qJ3AOILha0Qcno/Y68otAJSMxtY11HGJtk1CDSkW11AryJQkwObSHGm Tfc1M1On58cvCPJmi19vBopmJFFUkvcEpMEO0pyy57BUdsAgIuZrvMoqQq24eyOHUM4x0Fcv LFCHe1Oeb9XsvBykpZNdwbX7eD9hyEl199gxw3bT55uXTks5d0O55GBJXqTHBJf/9MuvINTP S96pHebrJ1NcbfHRittlVlbVbbsfXqHr7vl06SAfKGqHm0D8QDDcMu4U9evz2yNapspJb9mx Yi+kFGCaD9IafyMfb5fueVJSBvnz+Pp30BLcH3/QUY41vdXz0+mRgskp0lVa4fl093B/esZw x//ODxj85v3uiRbRy1wX8rY4pC2pA2ywacfbRpUN2Q1mWSc3CHlyAGlADHby5+WeHgd9KC/D d48Tt0EctV8D2QlRIA6V7fsGWHfO6MGDTOfMFtj7mkIGAuI+Mqqmh4vjyMrRK1xzLeoRZnb7 HlE3/mLuYG9lPQHJXXdqGxWKaB5IlRQViWMeVy3Q1VtjJjepfM9LwfKExcZQtt0AbSPsvQXw G5Zfh1KplfVOJiBdiGolLP9TNrmXyhik4DlK7zkV837hJLbaSSIiQ450kuKvleNq4J46zANL Vj2FeWS5U/1WKUPVJCFxYMvF48DRcpVRphdPsaXIMQuD2MLfJSXTPN4NB1ctbQ4kxs1eN4fo 68aaWrgBfk5Pc9QUO8+D+UzeDj1Az8oDYG/EyZHi/JmLSQsUs3BdS7v79FAdIG29nGW/dRWA pzxpkGZDhUtbBYSBq6UT/0tad3uBWzRT1GKBu20C35oegK9hhzVjaoBU5K/IomKiNVImDhaw BleVVirOClsvcuUaxS6hpx8YhTX0djYSr2l9mI+YbGdNZM/mmCjNML403gywUJ6kKce0HNTK mGIWnrpT8qhyZqgvRZ4U7TfLHK8i2M591HaAc+RhrHpoA0/J0dS3lFoAmlOGb8zVVYe99Kzp OJZeDWumbNZJ+nP89Yme73Je7p/dM4v5RIZ3kEFczQKID2KECo4iopgMpMGNumF23/zFQWfl 4jYoFEe6sxk3DT4+CNNgeEXjl7drlyS2w7mz6jOtoVGOnpOhB9KTDCGVaFdvk3HwRiuE4/pR 6O+d7y/yc4541rpARnW21ZX9PWxhd+opbxoU4vg4H6Oo2Qxj5hThLmzwNpUjyzOoI88j7b2e 77MqG4Bh696zHdUrhG4b18JCRAHCl/3W6W6azW3F9J8vY62p4fn04f35+eOaaZ0buZ27/33v Xu4/hjfDf8PzWByTf1RZNqxndo1jl4W7y+n8j/j4djkfv7/3OYu5r8nPu7fuS0YJu4dJdjq9 Tn6jNfx98mNo4U1q4a88TA6fFeYrC3WSlNbm6rYuWzksVl5tnan8lNcD9EOtX268fHBAU4+n zap3EuUbqrt7uvyUNreAni+T+u7STfLTy/Gi7vtlMptNJW0EiKBTS0nuziH20Mr78/HhePmQ RkRUltuObDAUrxuZdaxjOGUO6BZeb/M0VpyA1w2x5WXFf6tbck0vxxIJSef8YL7eLSjENuNE pnTBXMDL/bm7e3s/d8/dy2XyTsdGEc9SS8k4xH6r7W/ygyfzxmIHs+mx2VRkXhmB8JSM5F5M DmNwmXmNvmMzdXSQ4RYoQfyVDrWD5m0MMrrVVSe5oIrJwhkxU2PIBbruw7WlvFLDbzVi2v83 9mTNkds4v++vcOVpt2qT9GWP/ZAHtUR1c1qXddhtv6g8ns6MK2N7yseX2X//ASQlESTYk6qk PA1AvImDBIE4Xy7m5+wBWW4eok2/l/YzRfh9RicXIWfsYdumWkQVTHw0m5HnGCNfb7LFxWx+ zvaPErGRSxRqTnmcrSVnoSD+hqCq6cHLxyaaL1ifnrqqZyQqyNA6HQrF1oHqUztoIuxa2Nj2 Pi6rFqbUIqmg0sWMwho5n6+oKrtc2if1bdwsV/bxpQLYr1eHFqJjxan9nFQBzilgdbokkR5P 5+cLi1lexUVmejEJE5FnZ7MP7J1+dqZNKv3q4O7L0+FN213sjtmBjcw9sVEIaxCi3eziguTx 0kZZHm0KFkg3OUBg51ljaK0EpBZtmQvMR7F040ctTxcrrp+GPaiqlGzwOMfQChc93uTl8en5 ahlE2Cwnf//29vD92+EHfT6A+lU3RuyQT/ffHp7Cg22ra0WcyWLs8/Gtoo3tvi7bIUfRP3GY wcZta3M+ymmGKnxc3VUtj27xjgJ9DCw0lczq1aRBevJl0B6+P7+BZHmYTP9J90IfX9Y8Ae2J 7Im2ymzp6xYNvX+jUZny6mLuZBnWitDL4RWFHbsV1tXsbJZzIQ7WebWgxxT429VWCHMTDcv/ qpltRVfZ3NYV9G9n41TZck5zl+bN6VnAYETU8gOLMpvCa9lkiZ2u2NnYgiV9ZrXotopASJ15 AE9CP6GvmOPLVr08/3h4RM0JvUE+P7xq3ztPjcpkghfcshX9lc1X63RGrIVmf3HK+okj5eig 2B4ev6N6TGfen7ZW5PbNbra/mJ1Rj6s2r2Yz3rldoTjroIWNYssX9dvm8EW7Jj96aQcEQEAl i01VFsQNCOFtWXL3y+oTUae0EBXLxk15cpWLQAhGfT01/XDDdiBI3/BssxhDzrr0xgCmQHzt mbYOZVY1jQ+hgfMmqH+jDCgVoss+EFEthjmxrzvqS4ytbgm1Ou83mIEm2vdFPUXUl1UU73oS y1kfMbTKrd7iBCaYsazKuLWjp8IuEy2eprZ1mWWUd2pc1G4/BB7IK/xa1CAhjhDIfM/vdI3G HF7y8hhBFc/P9/zxmabIRVMea0ElmzaCEeUdNzRNU8borneMos2XgcglGo93I0fwrTTBto7Q 4FPxY0WITR316yrn3ItSOxoZ/OjTaCd0TBoLCGLwStJsygi+rpGFCbzP4gO+IRHjiqCZ5fbm pHn/9KrurCaGZZJ+0sjk6zjvd2URqXjrBjXdF21v8E65X5wXuYqpzt9s2lRYDMcUgCaGvVbR cJfKyzCOrK1l/FaiytoUOU3NAT/dx7kEl1X+WUl1eMGgGUpoPGpL3n+sWdProHbbFQkeEmb+ e+vJr3VgCUVSl7ZvpgH0a4mFoLtLEDd4Ff7y6QEDjv3369/mH//39Fn/65dwqf1ysZaENTM0 jchS9934pE9F3KOGITTTaMwQpwP4qSNtcyIUcE3Z1aB6xjpYu/ulwY5B4HhbciJMQQTFx9zB Wj6Ds8tB9PFYI/2pTxtyUQo/e5PoznUw8yl0ujDybcNnUlVPgKpM7KcbLstAYMKzdni8vflw sSBHDAgONAtR5rW57uzDy+Pfdy/cDW5iLVb40ZepJfdTWefKTRUWQU7fXRsH0o6pPYmTtR1k SGLKpV6uU0wZUVC37us+Tjd+hDnLiavcZGJsiDeNIpUn/xY/QJN/fUD3hrGncggh9h/f5QE+ 6q8i+z0pQkRDAuIZmskHjEeMDgyJbIx7xHSBA6R1V6ARBauEDWgHFCgQpgG2EKhXDMgplY9d 6DVwyMp544R49BvPygj3vVEiAnUD0206GF9NTKsfcJedrHf49KpGZ6itW1coV4gqoqK6C8LQ Q60C9QUDRDSM5dcevrzcnfw5zKNzqP2AbzOURLMjj+j4ANeYTlUHRLR6sm8XJJS6AfT7qG1p 4wwCswPAhovZMTM0jYi7mkZc3LdLXY9d4DJYoEc1FMnXunL7sCIl+yirhXZVq14UcX1TtTKg 8SiaULC+j+uEXGng7yAxhsNfq5mxFVsJc47h5WnYwQEMxIEXCSOJCsokizSkNo4V6BnmeuHV //Gns/Tx+Awh2oujo77BQxeMQc3ZSKDcNnRxDpC+XFBtZ0RggTyr1CQ69wrIpF1WcrNiU9FB WLd63NjCC5npBnATvRgG1AZgQ50aDKE/MZRCLYIjVam7StAEnAo1G5bFRxGbcy5LGAfUm9Ae QjvX3cwapkOe9yXrDo6RbXrEkxgqOahi+AjmxsXb7eO35YgvylamFrtJXIDUABUimBQdaQRT 6mVXtnbMI/yJOVqUD5w63kvJKKuUEYYMhHHhdEIjQtxAY9taWAVepnnbX81dwMJpU9wSwwgT IqbNKrBAOkx5b/tyk3Th5RXYxdGNsy4nKPCPRNawgECc8yvUokXFeu/Jr/ju/qsdFittBh5o TbcWWOG9PFBsgXeUG96xb6Dx+M6AKNe4FfqMz6GraFQyJ/vbCXokJ5RFxDZQj0PyK1itvydX iZLak9CelPamvDg7m/ET2SVOBhT4XWRjgsWkbH5Po/b3onVKH5d9Sz7PG/jCmfYrTcQNbdSO el1cJgKjJf2xWn6YzsMcjqcATuQUBauvhxZXr4f3z8+g2DCtVTKNNk6Bdq7Xh43EYwv7iYkC YksxCbFsbRcUhYq3MktqYd237ERd2L0YjuimM+luA+xgHZAJBtsHYknpP85AwbIB5ZlOjWx0 cDKMIizsdxhljSHBnBKixBPfBgSDzV+3pmG5JhTXDWG33ocTAhONk4ZNME6mrN1+KICzZNbe aLldjWGrsS1qQEFvtmQ2DURLHY8JUbTmekfKhabia7i+kW4MJpdCmbe8Lc9R4lEzRlw8+kFI lRsJbnV4A//L7Ja7n7TQJTNi+1sGeNu0CQNeqSzCa/X25FYwBCJfg2EtuG/TOtrkAoSqkQdY wHKguto7qyGXBawqoi7mDsm2cgCXxX7lLSIAnoW3RG1K5fiO9x7KGME4/Oq1ZODmypDBaI9U TCkwV2whLl3sJ/+jBOjQz5TvHyBRPOwtwgyvnHHrQuMCShMYnzueixVx5ZQDEGQSUbzDA2q5 QU2KK1WRyRK4PKc0anQD1v2Rrwv8nzYGrQtQ5QumSU0eZRkIynBxGfMVmIw1+1qpsIN9wo8x W+UvD6/P5+enF7/OrSjxSDAI234VuIckRB/+EdEHPs4vITpnI3M4JMT0dXBc4FyH5AMdiwlz NgsXfMY55zgki2DByyMFc2zRITk98jl/i+kQ8TdUhOhiyblkUhLbIcr5ONT3i9VFaFQ+rNxu gSKKq7HnvZnI13M+/bdLM3eriJpYcm/I7Oq9jwYEd5Vi45e0qwM42M/whhgoQnMy4D+Eig7P +NhLzkuAEKz47ti+DgjflfK8rxlYR2EYcRdkWlS4bVYxewWoIJz/7kQAhnBXl36ZcV1GrQwU e1PLLDta8CYSQOAXuwETeeeDZYy5oxMGUXSyDfQ40Lq2q3ey2QYa17Xp6PqwO7w8Hb6dfL27 /+vh6YsVcAMFKd6Ip1m0ady3h99fHp7e/tI+Go+H1y9+VFd1lLBz4lQbsY4BSzJxJbJRXIx2 lwkO7FOsrGOssmyH8hPhRDCeri9uigiT4/CBYePnx+9gp/369vB4OAFz/v6vV9Wbew1/sTpk XYjgkZp7MDko8gXeDahTEyAEBSeOWkFuQgxF3jWtfwpqaEBdzHUhJPYmqACyAg6DPha24lGL KFGFAoqoMUXXiASJ1yXrZ6m4WHld2DcCfk7nrcA7A3Nc5xI2+hAOjbs8amMrWZ6L0YNSFtmN V1mJt37XItqp52Qk2VMeoecF6Fr1JQsczXc9rn/MfsytmzOLLhhPSLcBTWT1mOxfU2LDk+Tw 6f3LF7Ih1JCBIiSKxjl71OUgHoNFcxxBfVuVEiOYUBWPYvqi7BvY1OwJtEN6K+rSHU9FUovU b11dJhGezvFXOZpGnyY1/scG8ZPbZUKaAo/7B2TK+5C3BCghKt8/a3hfx51as+6wDHhthwIX 6mj2Y0pl9unAeEannybr1vpAz9ohGHjBrKNc5BmsZH/4BsyRbqKfDOauDMVF11TsU+uohh22 jZqBRsfidzs3gZ0y9YNU4GoyvDDM3sQbzsYteCs3W+JAYA2J6hUep6ZZee1XTdDcEQyWpLqH I8gzoa1U7EGfGOKmPcFXLO/fNTff3j19sZ0GwcTqqvGxncWxyrQNItH5xkE6znMMhd1blFdV hFG9LcIqkO4tTNxfRVkHfI4r2OrAzwt2if2CdS/6LcagaaOGX7nXl8DYgb0n7C2ULhmkQFna i4aATcVzikSeUHZWWoEGpj7xD8E1OHhPqNDe+Tv5Vu86USS8hMOG7ISoNMvWfqv4lmoUDif/ fv3+8ITvq17/e/L4/nb4cYB/HN7uf/vtNythoOHALYj+VuyFt4WswBt0a/Lk19caAwypvMZ7 dpdAXV8pUUTOh6+YiysEgLZiD6v6GseNGTZDrjw3GwxpRd7TjdgS82KjCuC1faqPgIc8hpnw cabNGBBjFEANrbSHDQcar3ACaUwDZT6bUFS7tRgBrgjn6lFpLzCcmDtZiATWTQ1qepkzjF6L kCAfhf+v0M/MHjTTSdm0fnnQY/dqx2Wh/PWNRqprQXlcvsY19KgAI4eqiTqcRtyxipBaSoC0 hpOO/3TQCAIZWWVI70A8P3eIQZEDEwIjP7CExZyWHXYXQ6y4PHbFZTbTpVFCayXijlDqW2FQ APEwmL1ug+ZugcdmWrS1YvDMIQaamZNe1LV65mHustkrKve2e0TIrMmiNYVo5c/Z9gqRo4dR LS47Z3YUUj3kUKPLX1MiTYq7KIAmbRxtCJY4gzEp4hs+SB/ealvbz89fWqiHJhhz0dE10q7Q lR/Hbuqo2vI0g6mYOjufQfbXst06mcB0PRqdK+USCOKyThwSvM5TqxkpQZEvPE0yha1Y3zjA 2JSmi3Z4WK18yJx266bEVKbUKuqqE/1DhcxT9EQs4MLFld5Ab2N/0Kyi1IK7BkLbtc0rb/BI dgsyhP5kuzMRnGNg4aDOpBPcUQ80nFMur2E5Mp+ZeTRzxQY61OPeFKAN6/TIPGJUm/3BEf0a ZAiMrM6V5NiEBCdg4Rc8jxsIoqLAl18Y3EV9KViLfyCGBTiQMZUGx0vrSu7w46UYuvv5Djsd VLgWeoHZd6JV6sF4ytCm/Pl+HBeL6XPtritvl3qz30YglCpPbE3nC7ksw8IHXSbGHNyhFaQY QL8GjrjNo5rfqAQ9yTaLINRSstgE6NlovA0Jwpzdp0d+CGmkRf/7kzoZaw+vb0T4Z7uEOohj xUpLAbOiZpsgDI6stonPg24WVA/W6E3khkdD2x07xOC0Hnm2sjU+2tKt2Ccd+4xDt7NVg6sD bFtLSiF3gG3t+G0Kqg4iUwe4lq3jTa3AXSe5p5wKV4MNv21dB2Pd6Ig9ykVFTCaiL7exnC8v Viq3HhryRJPEDHyVDHptqQoG52uvZu2BEvqsU6ev1umcyOl8qGMV0Arw6Am2Gr4ldc7OVDnk iII35jC/DcvXrEOCTUIcBPD3sfOSbt1EhT5uwyRGEQ1srMiuI9wYmrAo+6LLuLFQeHL86pXM dkqTRZncFLkTuZZQYLXWGp/Oe/DlRi8bLYNt9wOMZW0sDWX3d2QpiqjObswBOlOpCoTd4i5x wj5NCFJaKvtq0/aBbWXUbPKUPyk7WOZKdwx+gU5JWUed0U3EwTb0eBaXwsiZfaUCo7vgglUx wvvZ/nw2nTG4OBjNOY8zi37BY1FYTw4eI05VRnoyIgQfKGyk6MJXHCONqyKMI2n0c7uJU5+N XaNuU/BgiLohVWFPzxK2cY4rWxaguxBNT5fpqLHGHM0lY4njojJWQ0WCTOrowcjRjxhx+r5E iVIQhl1xrZ5CMU3egPHTjASDmGsO9+8v+NjYu77aiRtbQwFhACIOdWVAoIiwXbi0Xy+oX/Qj +NUnWxgsUUfDYcjE0IynOfBn0ahnhiB54sADKcYr3UMGbC7zbGrPbTS1X9TTwgIajwZYXFY3 2oR0Q/p7ZJzBCrsNHZT1Yy7SW/SRj9W3eZkILV6PLNhpdCI7mJ+D/eOX8bmcmoFRe4lf/vf9 7fnk/vnlcPL8cvL18O27emBCiKGfGxJklYAXPpxcLFhAnxS04lhWW1vxdDH+RyjkWaBPWhNb bYSxhOM9htf0YEuiUOt3VeVTA9AvAY8AmeaQ3EUalvidFjEDzKMi2jBtMnC/MuMmz1IPT7l6 5zDRUG3S+eI87zIPQSWxBaQJxDS8Un+5gyKNxyuty050witR/UmYInONCZcZde1W2NlQBjga am7aGINrZO4v7E3WCfMBsuhhZ0Xvb18xpMb93dvh84l4usedhmmV/n54+3oSvb4+3z8oVHL3 duftuDjO/YoYWLyN4L/FrCqzm/nSDiM5NFlcyitmfAR8BgLJfym9VkHQHp8/2377Q21rf7xi +nBshLIRu4e6114xmXIOd5cFU9+eWYUgP/D13zD027vXr6Ee5JFf5NZJTT3UBNWHO3GlPxqi qID151dWx8sFM2IKrOUNj+ShmEyT22qAbOezRKb+imE5pbVWvF2TcJ5wI5L9RMJKAsGZs1dp AzvLE+ATPpcDsB0UbQIvTs+YugCxXASyXZrlvo3YaGAjVhfsgWnKyBG89IDtpp5f+LTXlS5B C9WH719pBPhBBPpLF2A6IrUPPj33m4rwQgbWTlR0a9kw4waG0JF5XYNJhLkhGBGsEV6wzGHh gUaZZdKXVDGmoB4/8ngDYDkXUQvtdzxhxi5Vf31usI1uGQWkibIGOCXTIIPBAT/SLMNpue+F OCJoQLhWovCbaeB904gFO9et8Ee2vS7ZqTLw8KAPBE4fRw8vjOb0YMcuHcc9xcsIpsTslr9N NujzFZtTYfh2xZa42jKh6u+ePj8/nhTvj58OL0N0Tq6pUdHgK2tO5UvqtYq+2/GYLScVNIZj oAqj5Z6P8IAfZQsWF9p5YAuwupfJYOAOx4AKHWq5ZE1IGR0puKEZkUZrd1uxDbwjam7yXKAl pqw3NJf9dYVhMf9UGtDryZ8YXuThy5MOHaX8CPVx6WT6qMcCwHVUVpdmNCBD9tjuihyvmkMx eRsFbgnXsojqm+kU0oTX+vRy9/K/k5fn97eHJ1tjWMu2Fpg0lSz+6RBtwnPnsaoRtnPRcLED 1msRg+2Y1mXuaN42SSaKALYQbd+10n5OMKAwogSeUOpjVR+PeXNlSWIrDKggmDlOw3yuQ+AO SddbDJorrHcCIlmVgcJXVqCetuvpV0vHUEAF6KhXnSHJZCzWN7z3OiEJ5B7XJFF9DVyP3XSI J6MLoBX5RRzCM7nWCl+oOi4i6H5vGM+037oEz3hwCnQitmGK2MWHThfWeE2tU2+TZDHwdBs6 cfqh5fSBkgXVT9Zc+IqlXrHU+H6MRexvEWz3XEPQtGJH0KBV2CQ2f5YhkNHZyq0Go5YxVQG0 3XY5dyRuKJoKZsIrbR1/9GB0+Kce95tbWbGINSAWLCa7tRMKWwj7iR6hLwPwlb/T7bOsYR0J 9Pwqs5IofzYUT/TOAyio0EKRuyjriyiRe30/pRhKWZPQK1HTlLEEXqqYbh2RC398Dub4UyII T7J7wszUFUBO4gXhXU+BATmd2AWEACVKILiBDsuAz9UidMmxtn/VYbwJDB2k7oEJBgwYu13J pS0fsnJNfzHbt8hMoJahzOwWExERTglDyHKFJKHOAGgH2hHFKpoVG36kduzELm4W5tLPrq5B p7yM9YhtMJhZyd3HNDiAkbQWlRqrRFS2k0DjXw2aS0dODvw/NyNk+NzLAQA= --huq684BweRXVnRxX--