From fa1c8eee1fdd2452f9e3595b2b3957ea8c0ea46a Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 19 Mar 2003 19:28:05 +0000 Subject: Fix module names --- source/configure.in | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/configure.in b/source/configure.in index ee6a88ee6d8..4d607fbc8fd 100644 --- a/source/configure.in +++ b/source/configure.in @@ -3375,10 +3375,11 @@ fi ]) SMB_MODULE($MODULE_pdb_xml, pdb_xml, modules/xml.o, bin/xml.so PDB) SMB_MODULE($MODULE_pdb_mysql, pdb_mysql, modules/mysql.o, bin/mysql.so, PDB) -SMB_MODULE($MODULE_pdb_ldap, pdb_ldap, passdb/pdb_ldap.o, bin/pdb_ldap.so, PDB) +SMB_MODULE($MODULE_pdb_ldap, pdb_ldap, passdb/pdb_ldap.o, bin/ldapsam.so, PDB) SMB_MODULE($MODULE_pdb_smbpasswd, pdb_smbpasswd, passdb/pdb_smbpasswd.o, bin/smbpasswd.so, PDB) -SMB_MODULE($MODULE_pdb_tdb, pdb_tdbsam, passdb/pdb_tdb.o, bin/tdb.so, PDB) -SMB_MODULE($MODULE_pdb_nisplussam, pdb_nisplussam, passdb/pdb_nisplus.o, bin/nisplus.so, PDB) +SMB_MODULE($MODULE_pdb_tdb, pdb_tdbsam, passdb/pdb_tdb.o, bin/tdbsam.so, PDB) +SMB_MODULE($MODULE_pdb_nisplus, pdb_nisplussam, passdb/pdb_nisplus.o, bin/nisplussam.so, PDB) +SMB_MODULE($MODULE_pdb_unix, pdb_unixsam, passdb/pdb_unix.o, bin/unixsam.so, PDB) SMB_MODULE(STATIC, pdb_guest, passdb/pdb_guest.o, bin/pdb_guest.so, PDB) SMB_SUBSYSTEM(PDB) -- cgit From c6eb950b6879d7566ded33dd6a3853cf2d5310db Mon Sep 17 00:00:00 2001 From: Jim McDonough Date: Wed, 19 Mar 2003 19:32:51 +0000 Subject: replace pstrcpy --- source/nmbd/nmbd_elections.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/nmbd/nmbd_elections.c b/source/nmbd/nmbd_elections.c index 976abbed257..f09c37eedcb 100644 --- a/source/nmbd/nmbd_elections.c +++ b/source/nmbd/nmbd_elections.c @@ -47,7 +47,7 @@ static void send_election_dgram(struct subnet_record *subrec, const char *workgr SIVAL(p,1,criterion); SIVAL(p,5,timeup*1000); /* ms - Despite what the spec says. */ p += 13; - pstrcpy(p,server_name); + safe_strcpy(p, server_name, sizeof(outbuf) - 1 - (p-outbuf)); strupper(p); p = skip_string(p,1); -- cgit From f0f454129a5a57e50391397f45d7cf4d58648d45 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 19 Mar 2003 20:08:30 +0000 Subject: Add documentation on new modules system --- docs/docbook/devdoc/dev-doc.sgml | 2 + docs/docbook/devdoc/modules.sgml | 147 ++++++++++++++++++++++++++++++++++++ docs/docbook/devdoc/rpc_plugin.sgml | 13 +++- 3 files changed, 159 insertions(+), 3 deletions(-) create mode 100644 docs/docbook/devdoc/modules.sgml diff --git a/docs/docbook/devdoc/dev-doc.sgml b/docs/docbook/devdoc/dev-doc.sgml index b5c934b1c88..f10fe724148 100644 --- a/docs/docbook/devdoc/dev-doc.sgml +++ b/docs/docbook/devdoc/dev-doc.sgml @@ -13,6 +13,7 @@ + ]> @@ -67,6 +68,7 @@ url="http://www.fsf.org/licenses/gpl.txt">http://www.fsf.org/licenses/gpl.txt diff --git a/docs/docbook/devdoc/modules.sgml b/docs/docbook/devdoc/modules.sgml new file mode 100644 index 00000000000..098044ddfe2 --- /dev/null +++ b/docs/docbook/devdoc/modules.sgml @@ -0,0 +1,147 @@ + + + + JelmerVernooij + + Samba Team +
jelmer@samba.org
+
+
+ 19 March 2003 +
+ +Modules + + +Advantages + + +The new modules system has the following advantages: + + + +Transparent loading of static and shared modules (no need +for a subsystem to know about modules) +Simple selection between shared and static modules at configure time +"preload modules" option for increasing performance for stable modules +No nasty #define stuff anymore +All backends are available as plugin now (including pdb_ldap and pdb_tdb) + + + + +Loading modules + + +Some subsystems in samba use different backends. These backends can be +either statically linked in to samba or available as a plugin. A subsystem +should have a function that allows a module to register itself. For example, +the passdb subsystem has: + + + +BOOL smb_register_passdb(const char *name, pdb_init_function init, int version); + + + +This function will be called by the initialisation function of the module to +register itself. + + + +Static modules + + +The modules system compiles a list of initialisation functions for the +static modules of each subsystem. This is a define. For example, +it is here currently (from include/config.h): + + + +/* Static init functions */ +#define static_init_pdb { pdb_mysql_init(); pdb_ldap_init(); pdb_smbpasswd_init(); pdb_tdbsam_init(); pdb_guest_init();} + + + +These functions should be called before the subsystem is used. That can be +done either from the executable that will be using the subsystem ( +static_init_rpc is called from the main() function of smbd), or +from the subsystem itself when it's first used (like passdb's +lazy_initialise_passdb does). + + + + + +Shared modules + + +If a subsystem needs a certain backend, it should check if it has +already been registered. If the backend hasn't been registered already, +the subsystem should call smb_probe_module(char *subsystem, char *backend). +This function tries to load the correct module from a certain path +($LIBDIR/subsystem/backend.so). If the first character in 'backend' +is a slash, smb_probe_module() tries to load the module from the +absolute path specified in 'backend'. + + +After smb_probe_module() has been executed, the subsystem +should check again if the module has been registered. + + + + + + +Writing modules + + +Each module has an initialisation function. For modules that are +included with samba this name is 'subsystem_backend_init'. For external modules (that will never be built-in, but only available as a module) this name is always 'module_init'. +The prototype for this function is: + + + +int module_init(void); + + +This function should call one or more +registration The function should return non-zero on success and zero on +failure. + +For example, pdb_ldap_init() contains: + + +int pdb_ldap_init(void) +{ + smb_register_passdb("ldapsam", pdb_init_ldapsam, PASSDB_INTERFACE_VERSION); + smb_register_passdb("ldapsam_nua", pdb_init_ldapsam_nua, PASSDB_INTERFACE_VERSION); + return TRUE; +} + + + +Static/Shared selection in configure.in + + +Some macros in configure.in generate the various defines and substs that +are necessary for the system to work correct. All modules that should +be built by default have to be added to the variable 'default_modules'. +For example, if ldap is found, pdb_ldap is added to this variable. + + + +On the bottom of configure.in, SMB_MODULE() should be called +for each module and SMB_SUBSYSTEM() for each subsystem. + + +Syntax: + + +SMB_MODULE($MODULE_subsystem_backend, subsystem_backend, object files, plugin name, subsystem name) +SMB_SUBSYSTEM(subsystem) + + + + +
diff --git a/docs/docbook/devdoc/rpc_plugin.sgml b/docs/docbook/devdoc/rpc_plugin.sgml index 21582a011d2..c83742a2476 100644 --- a/docs/docbook/devdoc/rpc_plugin.sgml +++ b/docs/docbook/devdoc/rpc_plugin.sgml @@ -7,6 +7,13 @@
aliguor@us.ibm.com
+ + JelmerVernooij + + Samba Team +
jelmer@samba.org
+
+
January 2003 @@ -33,12 +40,12 @@ When an RPC call is sent to smbd, smbd tries to load a shared library by the name librpc_<pipename>.so to handle the call if it doesn't know how to handle the call internally. For instance, LSA calls are handled by librpc_lsass.so.. -These shared libraries should be located in the <sambaroot>/lib/rpc. smbd then attempts to call the rpc_pipe_init function within -the shared library. +These shared libraries should be located in the <sambaroot>/lib/rpc. smbd then attempts to call the init_module function within +the shared library. Check the chapter on modules for more information. -In the rpc_pipe_init function, the library should call +In the init_module function, the library should call rpc_pipe_register_commands(). This function takes the following arguments: -- cgit From 25412880251839de3dd17882fab30c873c886454 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 19 Mar 2003 20:12:34 +0000 Subject: Fix build errors and move pdb_guest.so -> guest.so --- source/configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/configure.in b/source/configure.in index 4d607fbc8fd..cffa75f1632 100644 --- a/source/configure.in +++ b/source/configure.in @@ -3380,7 +3380,7 @@ SMB_MODULE($MODULE_pdb_smbpasswd, pdb_smbpasswd, passdb/pdb_smbpasswd.o, bin/smb SMB_MODULE($MODULE_pdb_tdb, pdb_tdbsam, passdb/pdb_tdb.o, bin/tdbsam.so, PDB) SMB_MODULE($MODULE_pdb_nisplus, pdb_nisplussam, passdb/pdb_nisplus.o, bin/nisplussam.so, PDB) SMB_MODULE($MODULE_pdb_unix, pdb_unixsam, passdb/pdb_unix.o, bin/unixsam.so, PDB) -SMB_MODULE(STATIC, pdb_guest, passdb/pdb_guest.o, bin/pdb_guest.so, PDB) +SMB_MODULE(STATIC, pdb_guest, passdb/pdb_guest.o, bin/guest.so, PDB) SMB_SUBSYSTEM(PDB) SMB_MODULE($MODULE_rpc_lsa, rpc_lsa, \$(RPC_LSA_OBJ), bin/librpc_lsa.so, RPC) -- cgit From a14b7fcd493b89e6ea6bcc889a2d2f24fc72a5fc Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 19 Mar 2003 20:16:43 +0000 Subject: Fix uncompleted sentence --- docs/docbook/devdoc/modules.sgml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docbook/devdoc/modules.sgml b/docs/docbook/devdoc/modules.sgml index 098044ddfe2..de438134106 100644 --- a/docs/docbook/devdoc/modules.sgml +++ b/docs/docbook/devdoc/modules.sgml @@ -97,8 +97,8 @@ should check again if the module has been registered. Each module has an initialisation function. For modules that are -included with samba this name is 'subsystem_backend_init'. For external modules (that will never be built-in, but only available as a module) this name is always 'module_init'. -The prototype for this function is: +included with samba this name is 'subsystem_backend_init'. For external modules (that will never be built-in, but only available as a module) this name is always 'module_init'. (In the case of modules included with samba, the configure system will add a #define subsystem_backend_init() module_init()). +The prototype for these functions is: @@ -106,7 +106,7 @@ int module_init(void); This function should call one or more -registration The function should return non-zero on success and zero on +registration functions. The function should return non-zero on success and zero on failure. For example, pdb_ldap_init() contains: -- cgit From dd03aec26dc39a4e56f18d547132768204a500db Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 19 Mar 2003 20:18:00 +0000 Subject: Fix pdb_unix usage - noticed by jmcd --- source/configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/configure.in b/source/configure.in index cffa75f1632..fa8e99c3a45 100644 --- a/source/configure.in +++ b/source/configure.in @@ -3379,7 +3379,7 @@ SMB_MODULE($MODULE_pdb_ldap, pdb_ldap, passdb/pdb_ldap.o, bin/ldapsam.so, PDB) SMB_MODULE($MODULE_pdb_smbpasswd, pdb_smbpasswd, passdb/pdb_smbpasswd.o, bin/smbpasswd.so, PDB) SMB_MODULE($MODULE_pdb_tdb, pdb_tdbsam, passdb/pdb_tdb.o, bin/tdbsam.so, PDB) SMB_MODULE($MODULE_pdb_nisplus, pdb_nisplussam, passdb/pdb_nisplus.o, bin/nisplussam.so, PDB) -SMB_MODULE($MODULE_pdb_unix, pdb_unixsam, passdb/pdb_unix.o, bin/unixsam.so, PDB) +SMB_MODULE($MODULE_pdb_unix, pdb_unix, passdb/pdb_unix.o, bin/unixsam.so, PDB) SMB_MODULE(STATIC, pdb_guest, passdb/pdb_guest.o, bin/guest.so, PDB) SMB_SUBSYSTEM(PDB) -- cgit From 730e2a093152c406923bd9e28339781564b0afac Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 19 Mar 2003 20:19:47 +0000 Subject: It's init_module(), not module_init() as metze pointed out. I really thought I check this well enough :-/ --- docs/docbook/devdoc/modules.sgml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/docbook/devdoc/modules.sgml b/docs/docbook/devdoc/modules.sgml index de438134106..99cba605bd1 100644 --- a/docs/docbook/devdoc/modules.sgml +++ b/docs/docbook/devdoc/modules.sgml @@ -97,12 +97,12 @@ should check again if the module has been registered. Each module has an initialisation function. For modules that are -included with samba this name is 'subsystem_backend_init'. For external modules (that will never be built-in, but only available as a module) this name is always 'module_init'. (In the case of modules included with samba, the configure system will add a #define subsystem_backend_init() module_init()). +included with samba this name is 'subsystem_backend_init'. For external modules (that will never be built-in, but only available as a module) this name is always 'init_module'. (In the case of modules included with samba, the configure system will add a #define subsystem_backend_init() init_module()). The prototype for these functions is: -int module_init(void); +int init_module(void); This function should call one or more -- cgit From 4ce0e931ab098768e5a33c0062267176104485b2 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 19 Mar 2003 20:47:35 +0000 Subject: Don't generate a Samba-Developers-Guide.{ps,txt} with the contents of the Samba HOWTO collection --- docs/docbook/Makefile.in | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/docbook/Makefile.in b/docs/docbook/Makefile.in index ae24606caf7..d52bcac8f94 100644 --- a/docs/docbook/Makefile.in +++ b/docs/docbook/Makefile.in @@ -83,9 +83,9 @@ $(TXTDIR)/Samba-HOWTO-Collection.txt: $(PROJDOC)/samba-doc.sgml $(DOCBOOK2TXT) -o . $< mv ./samba-doc.txt $@ -$(TXTDIR)/Samba-Developers-Guide.txt: $(PROJDOC)/samba-doc.sgml +$(TXTDIR)/Samba-Developers-Guide.txt: $(DEVDOC)/dev-doc.sgml $(DOCBOOK2TXT) -o . $< - mv ./samba-doc.txt $@ + mv ./dev-doc.txt $@ # PostScript @@ -93,9 +93,9 @@ $(PSDIR)/Samba-HOWTO-Collection.ps: $(PROJDOC)/samba-doc.sgml $(DOCBOOK2PS) -o . $< mv ./samba-doc.ps $@ -$(PSDIR)/Samba-Developers-Guide.ps: $(PROJDOC)/samba-doc.sgml +$(PSDIR)/Samba-Developers-Guide.ps: $(DEVDOC)/dev-doc.sgml $(DOCBOOK2PS) -o . $< - mv ./samba-doc.ps $@ + mv ./dev-doc.ps $@ # Adobe PDF files -- cgit From 1960a650c1546323708ed6bea615dc7215a97b4f Mon Sep 17 00:00:00 2001 From: Jim McDonough Date: Wed, 19 Mar 2003 20:50:43 +0000 Subject: use strnlen to prevent coredumps --- source/lib/util_str.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/lib/util_str.c b/source/lib/util_str.c index 5157de0d910..d1e57ed5cfe 100644 --- a/source/lib/util_str.c +++ b/source/lib/util_str.c @@ -495,7 +495,7 @@ char *safe_strcpy_fn(const char *fn, int line, char *dest,const char *src, size_ return dest; } - len = strlen(src); + len = strnlen(src, maxlength+1); if (len > maxlength) { DEBUG(0,("ERROR: string overflow by %u (%u - %u) in safe_strcpy [%.50s]\n", @@ -524,8 +524,8 @@ char *safe_strcat_fn(const char *fn, int line, char *dest, const char *src, size if (!src) return dest; - src_len = strlen(src); - dest_len = strlen(dest); + src_len = strnlen(src, maxlength + 1); + dest_len = strnlen(dest, maxlength + 1); clobber_region(fn, line, dest + dest_len, maxlength + 1 - dest_len); -- cgit From 6acbb37e4e32de635ace8420a5182b04b6527e34 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 19 Mar 2003 21:09:18 +0000 Subject: Fix corrupt memory reading in smb_register_passdb --- source/passdb/pdb_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/passdb/pdb_interface.c b/source/passdb/pdb_interface.c index 9819df75ec1..42310b41b06 100644 --- a/source/passdb/pdb_interface.c +++ b/source/passdb/pdb_interface.c @@ -53,7 +53,7 @@ BOOL smb_register_passdb(const char *name, pdb_init_function init, int version) } entry = smb_xmalloc(sizeof(struct pdb_init_function_entry)); - entry->name = name; + entry->name = smb_xstrdup(name); entry->init = init; DLIST_ADD(backends, entry); -- cgit From ea85f8ff21bfad378eb8464a94bb182cb3e4f988 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 19 Mar 2003 22:16:38 +0000 Subject: Add make rules for passdb/*.so --- source/Makefile.in | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/source/Makefile.in b/source/Makefile.in index 47c05191a3b..27ca9c6f30c 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -944,6 +944,31 @@ bin/mysql.@SHLIBEXT@: $(MYSQL_OBJ) @$(SHLD) $(LDSHFLAGS) -o $@ $(MYSQL_OBJ) @MYSQL_LIBS@ \ @SONAMEFLAG@`basename $@` +bin/ldapsam.@SHLIBEXT@: passdb/pdb_ldap.o + @echo "Building plugin $@" + @$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_ldap.o \ + @SONAMEFLAG@`basename $@` + +bin/tdbsam.@SHLIBEXT@: passdb/pdb_tdb.o + @echo "Building plugin $@" + @$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_tdb.o \ + @SONAMEFLAG@`basename $@` + +bin/smbpasswd.@SHLIBEXT@: passdb/pdb_smbpasswd.o + @echo "Building plugin $@" + @$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_smbpasswd.o \ + @SONAMEFLAG@`basename $@` + +bin/unixsam.@SHLIBEXT@: passdb/pdb_unix.o + @echo "Building plugin $@" + @$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_unix.o \ + @SONAMEFLAG@`basename $@` + +bin/nisplussam.@SHLIBEXT@: passdb/pdb_nisplus.o + @echo "Building plugin $@" + @$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_nisplus.o \ + @SONAMEFLAG@`basename $@` + bin/developer.@SHLIBEXT@: $(DEVEL_HELP_OBJ) @echo "Building plugin $@" @$(SHLD) $(LDSHFLAGS) -o $@ $(DEVEL_HELP_OBJ) \ -- cgit From 45929d126932e5cac5a23fe76d28a4fa05b54b77 Mon Sep 17 00:00:00 2001 From: Tim Potter Date: Thu, 20 Mar 2003 00:32:44 +0000 Subject: Cleanup bogus initialisation in SID_NAME_USE enum. Added new sid type = 9 for "computer" from MSDN. --- source/include/smb.h | 16 ++++++++-------- source/lib/util_sid.c | 3 ++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/source/include/smb.h b/source/include/smb.h index bf2d5631a73..0506c410f3b 100644 --- a/source/include/smb.h +++ b/source/include/smb.h @@ -236,15 +236,15 @@ typedef struct nttime_info /* SID Types */ enum SID_NAME_USE { - SID_NAME_USE_NONE = 0,/* NOTUSED */ SID_NAME_USER = 1, /* user */ - SID_NAME_DOM_GRP = 2, /* domain group */ - SID_NAME_DOMAIN = 3, /* domain: don't know what this is */ - SID_NAME_ALIAS = 4, /* local group */ - SID_NAME_WKN_GRP = 5, /* well-known group */ - SID_NAME_DELETED = 6, /* deleted account: needed for c2 rating */ - SID_NAME_INVALID = 7, /* invalid account */ - SID_NAME_UNKNOWN = 8 /* oops. */ + SID_NAME_DOM_GRP, /* domain group */ + SID_NAME_DOMAIN, /* domain sid */ + SID_NAME_ALIAS, /* local group */ + SID_NAME_WKN_GRP, /* well-known group */ + SID_NAME_DELETED, /* deleted account: needed for c2 rating */ + SID_NAME_INVALID, /* invalid account */ + SID_NAME_UNKNOWN, /* unknown sid type */ + SID_NAME_COMPUTER, /* sid for a computer */ }; /** diff --git a/source/lib/util_sid.c b/source/lib/util_sid.c index 81d17ae3f2d..dfd3b312e06 100644 --- a/source/lib/util_sid.c +++ b/source/lib/util_sid.c @@ -91,8 +91,9 @@ static const struct { {SID_NAME_DELETED, "Deleted Account"}, {SID_NAME_INVALID, "Invalid Account"}, {SID_NAME_UNKNOWN, "UNKNOWN"}, + {SID_NAME_COMPUTER, "Computer"}, - {SID_NAME_USE_NONE, NULL} + {0, NULL} }; const char *sid_type_lookup(uint32 sid_type) -- cgit From dee1326a1d8a0bf8977df22a0fe014dd5d8dc769 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 20 Mar 2003 00:51:41 +0000 Subject: lib/messages.c: Check return from chainlock before modifying message queue. Apply the job returned limit across all requests for job queues. Jeremy. --- source/lib/messages.c | 4 +++- source/printing/printing.c | 5 +++++ source/rpc_server/srv_spoolss_nt.c | 6 ------ 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/source/lib/messages.c b/source/lib/messages.c index 5ff0e45c61f..c078472880d 100644 --- a/source/lib/messages.c +++ b/source/lib/messages.c @@ -315,7 +315,9 @@ static BOOL retrieve_all_messages(char **msgs_buf, size_t *total_len) kbuf = message_key_pid(sys_getpid()); - tdb_chainlock(tdb, kbuf); + if (tdb_chainlock(tdb, kbuf) == -1) + return False; + dbuf = tdb_fetch(tdb, kbuf); /* * Replace with an empty record to keep the allocated diff --git a/source/printing/printing.c b/source/printing/printing.c index 26ea52e35a3..99578975ca3 100644 --- a/source/printing/printing.c +++ b/source/printing/printing.c @@ -1959,6 +1959,7 @@ int print_queue_status(int snum, TDB_DATA data, key; const char *printername; struct tdb_print_db *pdb; + int max_reported_jobs = lp_max_reported_jobs(snum); /* make sure the database is up to date */ @@ -2033,6 +2034,10 @@ int print_queue_status(int snum, QSORT_CAST(printjob_comp)); *queue = tstruct.queue; + + if (max_reported_jobs && tstruct.qcount > max_reported_jobs) + tstruct.qcount = max_reported_jobs; + return tstruct.qcount; } diff --git a/source/rpc_server/srv_spoolss_nt.c b/source/rpc_server/srv_spoolss_nt.c index 8073e3cf28c..36ff92e46f0 100644 --- a/source/rpc_server/srv_spoolss_nt.c +++ b/source/rpc_server/srv_spoolss_nt.c @@ -6353,7 +6353,6 @@ WERROR _spoolss_enumjobs( pipes_struct *p, SPOOL_Q_ENUMJOBS *q_u, SPOOL_R_ENUMJO int snum; print_status_struct prt_status; print_queue_struct *queue=NULL; - int max_rep_jobs; /* that's an [in out] buffer */ spoolss_move_buffer(q_u->buffer, &r_u->buffer); @@ -6367,8 +6366,6 @@ WERROR _spoolss_enumjobs( pipes_struct *p, SPOOL_Q_ENUMJOBS *q_u, SPOOL_R_ENUMJO if (!get_printer_snum(p, handle, &snum)) return WERR_BADFID; - max_rep_jobs = lp_max_reported_jobs(snum); - *returned = print_queue_status(snum, &queue, &prt_status); DEBUGADD(4,("count:[%d], status:[%d], [%s]\n", *returned, prt_status.status, prt_status.message)); @@ -6377,9 +6374,6 @@ WERROR _spoolss_enumjobs( pipes_struct *p, SPOOL_Q_ENUMJOBS *q_u, SPOOL_R_ENUMJO return WERR_OK; } - if (max_rep_jobs && (*returned > max_rep_jobs)) - *returned = max_rep_jobs; - switch (level) { case 1: return enumjobs_level1(queue, snum, buffer, offered, needed, returned); -- cgit From aee2ad9c3444d59dd6f53dda5379a6c391e00002 Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Thu, 20 Mar 2003 05:54:03 +0000 Subject: If CFLAGS is set when running configure, then just use that. Otherwise add -O. (We used to always set -O, which is sometimes annoying when debugging and anyhow clashes with normal autoconf behaviour.) --- source/configure.in | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/source/configure.in b/source/configure.in index fa8e99c3a45..e6189aa06f7 100644 --- a/source/configure.in +++ b/source/configure.in @@ -159,9 +159,6 @@ AC_SUBST(EXTRA_BIN_PROGS) AC_SUBST(EXTRA_SBIN_PROGS) AC_SUBST(EXTRA_ALL_TARGETS) -# compile with optimization and without debugging by default -CFLAGS="-O ${CFLAGS}" - AC_ARG_ENABLE(debug, [ --enable-debug Turn on compiler debugging information (default=no)], [if eval "test x$enable_debug = xyes"; then @@ -194,6 +191,13 @@ AC_PROG_INSTALL AC_PROG_AWK AC_PATH_PROG(PERL, perl) +# compile with optimization and without debugging by default, but +# allow people to set their own preference. +if test "x$CFLAGS" = x +then + CFLAGS="-O ${CFLAGS}" +fi + dnl Check if we use GNU ld LD=ld AC_PROG_LD_GNU -- cgit From e8725913f9f174c03683a35bbce16ee33ab4c707 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Thu, 20 Mar 2003 10:04:13 +0000 Subject: Merge Herb's change. Volker --- source/passdb/pdb_ldap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/passdb/pdb_ldap.c b/source/passdb/pdb_ldap.c index 98ddc72ed14..3373b6c8385 100644 --- a/source/passdb/pdb_ldap.c +++ b/source/passdb/pdb_ldap.c @@ -2439,7 +2439,7 @@ static NTSTATUS ldapsam_setsamgrent(struct pdb_methods *my_methods, static void ldapsam_endsamgrent(struct pdb_methods *my_methods) { - return ldapsam_endsampwent(my_methods); + ldapsam_endsampwent(my_methods); } static NTSTATUS ldapsam_getsamgrent(struct pdb_methods *my_methods, -- cgit From c057c6594e8c44993c01d6bb3a8d0916a2adcd24 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 20 Mar 2003 10:52:12 +0000 Subject: Update wbinfo.1 for 3.0 --- docs/docbook/manpages/wbinfo.1.sgml | 26 +++++++++++++++++++++++++- docs/docs-status | 3 --- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/docs/docbook/manpages/wbinfo.1.sgml b/docs/docbook/manpages/wbinfo.1.sgml index 5003c847a4d..3c7ae11e2c6 100644 --- a/docs/docbook/manpages/wbinfo.1.sgml +++ b/docs/docbook/manpages/wbinfo.1.sgml @@ -17,8 +17,8 @@ wbinfo -u -g - -i ip -N netbios-name + -I ip -n name -s sid -U uid @@ -27,9 +27,11 @@ -Y sid -t -m + --sequence -r user -a user%password -A user%password + --get-auth-user -p @@ -176,6 +178,11 @@ + + --sequence + Show sequence numbers of + all known domains + -r username @@ -203,6 +210,23 @@ Windows 2000 servers only). + + + --get-auth-user + Print username and password used by winbindd + during session setup to a domain controller. Username + and password can be set using '-A'. Only available for + root. + + + + -p + Check whether winbindd is still alive. + Prints out either 'succeeded' or 'failed'. + + + + diff --git a/docs/docs-status b/docs/docs-status index 30e9d40796e..f20c5a9156d 100644 --- a/docs/docs-status +++ b/docs/docs-status @@ -1,8 +1,6 @@ If you'd like to work on any of these, please contact jerry@samba.org or jelmer@samba.org. Outdated docs: -docs/OID/allocated-arcs.txt - does this file really belong here? -docs/OID/samba-oid.mail - does this file really belong here? docs/announce - out of date (announces 2.2.0) - should it go away? docs/history - needs updating (is current up to 1998 - merge with 10year.html ?) docs/docbook/devdoc/* - most of these docs are outdated and need updates... @@ -45,7 +43,6 @@ docs/docbook/manpages/smbumount.8.sgml docs/docbook/manpages/swat.8.sgml docs/docbook/manpages/testparm.1.sgml docs/docbook/manpages/testprns.1.sgml -docs/docbook/manpages/wbinfo.1.sgml Stuff that needs to be documented: Windows NT 4.0 Style Trust Relationship -- cgit From 06c7a16b2d2040c0932eb663076cecb6d2cd3cdf Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 20 Mar 2003 11:09:36 +0000 Subject: Update swat docs for 3.0 --- docs/docbook/manpages/swat.8.sgml | 35 ++++++++++++++++++++++++----------- docs/docs-status | 1 - 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/docs/docbook/manpages/swat.8.sgml b/docs/docbook/manpages/swat.8.sgml index 9c4daad6d07..a13ba9ff6ca 100644 --- a/docs/docbook/manpages/swat.8.sgml +++ b/docs/docbook/manpages/swat.8.sgml @@ -66,6 +66,11 @@ WARNING: Do NOT enable this option on a production server. + + + -V + Print version number of samba suite + @@ -74,6 +79,12 @@ INSTALLATION + Swat is included as binary package with most distributions. The + package manager in this case takes care of the installation and + configuration. This section is only for those who have compiled + swat from scratch. + + After you compile SWAT you need to run make install to install the swat binary and the various help files and images. A default install would put @@ -97,7 +108,7 @@ swat 901/tcp - Note for NIS/YP users - you may need to rebuild the + Note for NIS/YP and LDAP users - you may need to rebuild the NIS service maps rather than alter your local /etc/services file. @@ -121,17 +132,19 @@ - - Launching - To launch SWAT just run your favorite web browser and - point it at "http://localhost:901/". + - Note that you can attach to SWAT from any IP connected - machine but connecting from a remote machine leaves your - connection open to password sniffing as passwords will be sent - in the clear over the wire. - + + LAUNCHING + + To launch SWAT just run your favorite web browser and + point it at "http://localhost:901/". + + Note that you can attach to SWAT from any IP connected + machine but connecting from a remote machine leaves your + connection open to password sniffing as passwords will be sent + in the clear over the wire. @@ -180,7 +193,7 @@ VERSION - This man page is correct for version 2.2 of the Samba suite. + This man page is correct for version 3.0 of the Samba suite. diff --git a/docs/docs-status b/docs/docs-status index f20c5a9156d..173dc6e1b70 100644 --- a/docs/docs-status +++ b/docs/docs-status @@ -40,7 +40,6 @@ docs/docbook/manpages/smbspool.8.sgml docs/docbook/manpages/smbstatus.1.sgml docs/docbook/manpages/smbtar.1.sgml docs/docbook/manpages/smbumount.8.sgml -docs/docbook/manpages/swat.8.sgml docs/docbook/manpages/testparm.1.sgml docs/docbook/manpages/testprns.1.sgml -- cgit From 3cd1650d389850c2a36997a1a404d37bb28130e4 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 20 Mar 2003 11:11:32 +0000 Subject: Make swat use popt --- source/Makefile.in | 7 ++++--- source/web/swat.c | 27 +++++++++++++++------------ 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index 27ca9c6f30c..dc3e6d6fa2c 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -363,7 +363,8 @@ SWAT_OBJ1 = web/cgi.o web/diagnose.o web/startstop.o web/statuspage.o \ SWAT_OBJ = $(SWAT_OBJ1) $(PRINTING_OBJ) $(LIBSMB_OBJ) $(LOCKING_OBJ) \ $(PARAM_OBJ) $(PASSDB_OBJ) $(SECRETS_OBJ) $(KRBCLIENT_OBJ) \ - $(UBIQX_OBJ) $(LIB_OBJ) $(GROUPDB_OBJ) $(PLAINTEXT_AUTH_OBJ) + $(UBIQX_OBJ) $(LIB_OBJ) $(GROUPDB_OBJ) $(PLAINTEXT_AUTH_OBJ) \ + $(POPT_LIB_OBJ) SMBSH_OBJ = smbwrapper/smbsh.o smbwrapper/shared.o \ $(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) @@ -707,10 +708,10 @@ bin/wrepld@EXEEXT@: $(WREPL_OBJ) bin/.dummy @echo Linking $@ @$(CC) $(FLAGS) -o $@ $(WREPL_OBJ) $(LDFLAGS) $(LIBS) -bin/swat@EXEEXT@: $(SWAT_OBJ) bin/.dummy +bin/swat@EXEEXT@: $(SWAT_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ @$(CC) $(FLAGS) -o $@ $(SWAT_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINTLIBS) \ - $(AUTHLIBS) $(LIBS) + $(AUTHLIBS) $(LIBS) @BUILD_POPT@ bin/rpcclient@EXEEXT@: $(RPCCLIENT_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ diff --git a/source/web/swat.c b/source/web/swat.c index d6693b4e750..bece4e71e2d 100644 --- a/source/web/swat.c +++ b/source/web/swat.c @@ -1261,10 +1261,16 @@ static void printers_page(void) **/ int main(int argc, char *argv[]) { - extern char *optarg; - extern int optind; int opt; char *page; + poptContext pc; + struct poptOption long_options[] = { + POPT_AUTOHELP + { "disable-authentication", 'a', POPT_ARG_VAL, &demo_mode, TRUE, "Disable authentication (demo mode)" }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version}, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile}, + { 0, 0, 0, 0 } + }; fault_setup(NULL); umask(S_IWGRP | S_IWOTH); @@ -1288,16 +1294,13 @@ static void printers_page(void) close(2); open("/dev/null", O_WRONLY); - while ((opt = getopt(argc, argv,"s:a")) != EOF) { - switch (opt) { - case 's': - pstrcpy(dyn_CONFIGFILE,optarg); - break; - case 'a': - demo_mode = True; - break; - } - } + pc = poptGetContext("swat", argc, (const char **) argv, long_options, 0); + + /* Parse command line options */ + + while((opt = poptGetNextOpt(pc)) != -1) { } + + poptFreeContext(pc); setup_logging(argv[0],False); load_config(True); -- cgit From 45e5374e89730e7ad497edf9e344fbd1b8992589 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 20 Mar 2003 12:07:52 +0000 Subject: Convert smbcacls to popt --- source/Makefile.in | 6 +-- source/utils/smbcacls.c | 134 ++++++++++++++++++------------------------------ 2 files changed, 53 insertions(+), 87 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index dc3e6d6fa2c..8a405250840 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -502,7 +502,7 @@ LOCKTEST2_OBJ = torture/locktest2.o $(LOCKING_OBJ) $(LIBSMB_OBJ) \ SMBCACLS_OBJ = utils/smbcacls.o $(LOCKING_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \ $(PARAM_OBJ) \ $(UBIQX_OBJ) $(LIB_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_GET_SET_OBJ) \ - $(LIBMSRPC_OBJ) $(SECRETS_OBJ) + $(LIBMSRPC_OBJ) $(SECRETS_OBJ) $(POPT_LIB_OBJ) TALLOCTORT_OBJ = lib/talloctort.o $(LIB_OBJ) $(PARAM_OBJ) $(UBIQX_OBJ) @@ -805,9 +805,9 @@ bin/msgtest@EXEEXT@: $(MSGTEST_OBJ) bin/.dummy @echo Linking $@ @$(CC) $(FLAGS) -o $@ $(MSGTEST_OBJ) $(LDFLAGS) $(LIBS) -bin/smbcacls@EXEEXT@: $(SMBCACLS_OBJ) bin/.dummy +bin/smbcacls@EXEEXT@: $(SMBCACLS_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(SMBCACLS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) + @$(CC) $(FLAGS) -o $@ $(SMBCACLS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @BUILD_POPT@ bin/locktest@EXEEXT@: $(LOCKTEST_OBJ) bin/.dummy @echo Linking $@ diff --git a/source/utils/smbcacls.c b/source/utils/smbcacls.c index bce64df9604..9337eef106f 100644 --- a/source/utils/smbcacls.c +++ b/source/utils/smbcacls.c @@ -28,7 +28,7 @@ static pstring username; static pstring owner_username; static fstring server; static int got_pass; -static int test_args; +static int test_args = FALSE; static TALLOC_CTX *ctx; #define CREATE_ACCESS_READ READ_CONTROL_ACCESS @@ -36,7 +36,7 @@ static TALLOC_CTX *ctx; /* numeric is set when the user wants numeric SIDs and ACEs rather than going via LSA calls to resolve them */ -static int numeric; +static BOOL numeric = FALSE; enum acl_mode {SMB_ACL_SET, SMB_ACL_DELETE, SMB_ACL_MODIFY, SMB_ACL_ADD }; enum chown_mode {REQUEST_NONE, REQUEST_CHOWN, REQUEST_CHGRP}; @@ -735,45 +735,37 @@ static struct cli_state *connect_one(const char *share) } } - -static void usage(void) -{ - printf( -"Usage: smbcacls //server1/share1 filename [options]\n\ -\n\ -\t-D delete an acl\n\ -\t-M modify an acl\n\ -\t-A add an acl\n\ -\t-S set acls\n\ -\t-C username change ownership of a file\n\ -\t-G username change group ownership of a file\n\ -\t-n don't resolve sids or masks to names\n\ -\t-h print help\n\ -\t-d debuglevel set debug output level\n\ -\t-U username user to autheticate as\n\ -\n\ -The username can be of the form username%%password or\n\ -workgroup\\username%%password.\n\n\ -An acl is of the form ACL::type/flags/mask\n\ -You can string acls together with spaces, commas or newlines\n\ -"); -} - /**************************************************************************** main program ****************************************************************************/ - int main(int argc,char *argv[]) + int main(int argc, const char *argv[]) { char *share; - pstring filename; - extern char *optarg; - extern int optind; int opt; char *p; enum acl_mode mode = SMB_ACL_SET; - char *the_acl = NULL; + static const char *the_acl = NULL; enum chown_mode change_mode = REQUEST_NONE; int result; + fstring path; + fstring filename; + poptContext pc; + struct poptOption long_options[] = { + POPT_AUTOHELP + { "delete", 'D', POPT_ARG_STRING, NULL, 'D', "Delete an acl", "ACL" }, + { "modify", 'M', POPT_ARG_STRING, NULL, 'M', "Modify an acl", "ACL" }, + { "add", 'A', POPT_ARG_STRING, NULL, 'A', "Add an acl", "ACL" }, + { "set", 'S', POPT_ARG_STRING, NULL, 'S', "Set acls", "ACLS" }, + { "chown", 'C', POPT_ARG_STRING, NULL, 'C', "Change ownership of a file", "USERNAME" }, + { "chgrp", 'G', POPT_ARG_STRING, NULL, 'G', "Change group ownership of a file", "GROUPNAME" }, + { "numeric", 'n', POPT_ARG_VAL, &numeric, TRUE, "Don't resolve sids or masks to names" }, + { "test-args", 't', POPT_ARG_VAL, &test_args, TRUE, "Test arguments"}, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, + {"username", 'U', POPT_ARG_STRING, NULL, 'U', "User to authenticate as", "user%password" }, + { NULL } + }; struct cli_state *cli; @@ -783,21 +775,8 @@ You can string acls together with spaces, commas or newlines\n\ dbf = x_stderr; - if (argc < 3 || argv[1][0] == '-') { - usage(); - talloc_destroy(ctx); - exit(EXIT_PARSE_ERROR); - } - setup_logging(argv[0],True); - share = argv[1]; - pstrcpy(filename, argv[2]); - all_string_sub(share,"/","\\",0); - - argc -= 2; - argv += 2; - lp_load(dyn_CONFIGFILE,True,False,False); load_interfaces(); @@ -812,11 +791,14 @@ You can string acls together with spaces, commas or newlines\n\ strlen(password)); } } + pc = poptGetContext("smbcacls", argc, argv, long_options, 0); + + poptSetOtherOptionHelp(pc, "//server1/share1 filename [options]"); - while ((opt = getopt(argc, argv, "U:nhS:D:A:M:C:G:td:")) != EOF) { + while ((opt = poptGetNextOpt(pc)) != -1) { switch (opt) { case 'U': - pstrcpy(username,optarg); + pstrcpy(username,poptGetOptArg(pc)); p = strchr_m(username,'%'); if (p) { *p = 0; @@ -826,75 +808,60 @@ You can string acls together with spaces, commas or newlines\n\ break; case 'S': - the_acl = optarg; + the_acl = poptGetOptArg(pc); mode = SMB_ACL_SET; break; case 'D': - the_acl = optarg; + the_acl = poptGetOptArg(pc); mode = SMB_ACL_DELETE; break; case 'M': - the_acl = optarg; + the_acl = poptGetOptArg(pc); mode = SMB_ACL_MODIFY; break; case 'A': - the_acl = optarg; + the_acl = poptGetOptArg(pc); mode = SMB_ACL_ADD; break; case 'C': - pstrcpy(owner_username,optarg); + pstrcpy(owner_username,poptGetOptArg(pc)); change_mode = REQUEST_CHOWN; break; case 'G': - pstrcpy(owner_username,optarg); + pstrcpy(owner_username,poptGetOptArg(pc)); change_mode = REQUEST_CHGRP; break; - - case 'n': - numeric = 1; - break; - - case 't': - test_args = 1; - break; - - case 'h': - usage(); - talloc_destroy(ctx); - exit(EXIT_PARSE_ERROR); - - case 'd': - DEBUGLEVEL = atoi(optarg); - break; - - default: - printf("Unknown option %c (%d)\n", (char)opt, opt); - talloc_destroy(ctx); - exit(EXIT_PARSE_ERROR); } } - argc -= optind; - argv += optind; - - if (argc > 0) { - usage(); - talloc_destroy(ctx); - exit(EXIT_PARSE_ERROR); + /* Make connection to server */ + if(!poptPeekArg(pc)) { + poptPrintUsage(pc, stderr, 0); + return -1; } + + fstrcpy(path, poptGetArg(pc)); + + if(!poptPeekArg(pc)) { + poptPrintUsage(pc, stderr, 0); + return -1; + } + + fstrcpy(filename, poptGetArg(pc)); - /* Make connection to server */ + all_string_sub(path,"/","\\",0); - fstrcpy(server,share+2); + fstrcpy(server,path+2); share = strchr_m(server,'\\'); if (!share) { share = strchr_m(server,'/'); if (!share) { + printf("Invalid argument: %s\n", share); return -1; } } @@ -934,4 +901,3 @@ You can string acls together with spaces, commas or newlines\n\ return result; } - -- cgit From 0ab40fac3a45b1f72b8bd53a48fc39dd46c69086 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 20 Mar 2003 12:08:42 +0000 Subject: Update smbcacls.1 for 3.0 --- docs/docbook/manpages/smbcacls.1.sgml | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/docs/docbook/manpages/smbcacls.1.sgml b/docs/docbook/manpages/smbcacls.1.sgml index 5e0e6c80e9c..44820196698 100644 --- a/docs/docbook/manpages/smbcacls.1.sgml +++ b/docs/docbook/manpages/smbcacls.1.sgml @@ -17,15 +17,17 @@ smbcacls //server/share filename - -U username - -A acls - -M acls -D acls + -M acls + -A acls -S acls -C name -G name -n + -t + -U username -h + -d @@ -34,7 +36,7 @@ This tool is part of the Samba 7 suite. - + The smbcacls program manipulates NT Access Control Lists (ACLs) on SMB file shares. @@ -131,8 +133,14 @@ and masks to a readable string format. - - + + -t + + Don't actually do anything, only validate the correctness of + the arguments. + + + -h Print usage information on the smbcacls @@ -232,7 +240,7 @@ ACL:<sid or name>:<type>/<flags>/<mask> VERSION - This man page is correct for version 2.2 of the Samba suite. + This man page is correct for version 3.0 of the Samba suite. -- cgit From e1c275a66aa8a0fe29c61f4742fed5953671cb43 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Thu, 20 Mar 2003 12:48:56 +0000 Subject: I like debug level 10, but these messages always get into my way when debugging pdc stuff... Volker --- source/passdb/pdb_get_set.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/passdb/pdb_get_set.c b/source/passdb/pdb_get_set.c index ed850b9f25d..12e280578d0 100644 --- a/source/passdb/pdb_get_set.c +++ b/source/passdb/pdb_get_set.c @@ -186,17 +186,17 @@ enum pdb_value_state pdb_get_init_flags (const SAM_ACCOUNT *sampass, enum pdb_el return ret; if (bitmap_query(sampass->private.set_flags, element)) { - DEBUG(10, ("element %d: SET\n", element)); + DEBUG(11, ("element %d: SET\n", element)); ret = PDB_SET; } if (bitmap_query(sampass->private.change_flags, element)) { - DEBUG(10, ("element %d: CHANGED\n", element)); + DEBUG(11, ("element %d: CHANGED\n", element)); ret = PDB_CHANGED; } if (ret == PDB_DEFAULT) { - DEBUG(10, ("element %d: DEFAULT\n", element)); + DEBUG(11, ("element %d: DEFAULT\n", element)); } return ret; @@ -479,7 +479,7 @@ BOOL pdb_set_init_flags (SAM_ACCOUNT *sampass, enum pdb_elements element, enum p DEBUG(0,("Can't set flag: %d in set_falgs.\n",element)); return False; } - DEBUG(10, ("element %d -> now CHANGED\n", element)); + DEBUG(11, ("element %d -> now CHANGED\n", element)); break; case PDB_SET: if (!bitmap_clear(sampass->private.change_flags, element)) { @@ -502,7 +502,7 @@ BOOL pdb_set_init_flags (SAM_ACCOUNT *sampass, enum pdb_elements element, enum p DEBUG(0,("Can't set flag: %d in set_falgs.\n",element)); return False; } - DEBUG(10, ("element %d -> now DEFAULT\n", element)); + DEBUG(11, ("element %d -> now DEFAULT\n", element)); break; } -- cgit From 5c6f5bef30db62f351d83ecdd6aa6990a567d842 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Thu, 20 Mar 2003 12:50:29 +0000 Subject: Fix typo --- source/passdb/pdb_get_set.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/passdb/pdb_get_set.c b/source/passdb/pdb_get_set.c index 12e280578d0..2efe7204745 100644 --- a/source/passdb/pdb_get_set.c +++ b/source/passdb/pdb_get_set.c @@ -476,7 +476,7 @@ BOOL pdb_set_init_flags (SAM_ACCOUNT *sampass, enum pdb_elements element, enum p return False; } if (!bitmap_set(sampass->private.set_flags, element)) { - DEBUG(0,("Can't set flag: %d in set_falgs.\n",element)); + DEBUG(0,("Can't set flag: %d in set_flags.\n",element)); return False; } DEBUG(11, ("element %d -> now CHANGED\n", element)); @@ -487,7 +487,7 @@ BOOL pdb_set_init_flags (SAM_ACCOUNT *sampass, enum pdb_elements element, enum p return False; } if (!bitmap_set(sampass->private.set_flags, element)) { - DEBUG(0,("Can't set flag: %d in set_falgs.\n",element)); + DEBUG(0,("Can't set flag: %d in set_flags.\n",element)); return False; } DEBUG(10, ("element %d -> now SET\n", element)); @@ -499,7 +499,7 @@ BOOL pdb_set_init_flags (SAM_ACCOUNT *sampass, enum pdb_elements element, enum p return False; } if (!bitmap_clear(sampass->private.set_flags, element)) { - DEBUG(0,("Can't set flag: %d in set_falgs.\n",element)); + DEBUG(0,("Can't set flag: %d in set_flags.\n",element)); return False; } DEBUG(11, ("element %d -> now DEFAULT\n", element)); -- cgit From 44e9bf88cc2bbb2aa34711354258c3abb319cb9b Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 20 Mar 2003 13:21:23 +0000 Subject: Use True, not TRUE and False, not FALSE --- source/passdb/pdb_interface.c | 2 +- source/passdb/pdb_ldap.c | 2 +- source/passdb/pdb_smbpasswd.c | 2 +- source/utils/smbcacls.c | 8 ++++---- source/web/swat.c | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/source/passdb/pdb_interface.c b/source/passdb/pdb_interface.c index 42310b41b06..b146951561a 100644 --- a/source/passdb/pdb_interface.c +++ b/source/passdb/pdb_interface.c @@ -31,7 +31,7 @@ static void lazy_initialize_passdb(void) static BOOL initialized = FALSE; if(initialized)return; static_init_pdb; - initialized = TRUE; + initialized = True; } BOOL smb_register_passdb(const char *name, pdb_init_function init, int version) diff --git a/source/passdb/pdb_ldap.c b/source/passdb/pdb_ldap.c index 3373b6c8385..375fbeacc51 100644 --- a/source/passdb/pdb_ldap.c +++ b/source/passdb/pdb_ldap.c @@ -2614,5 +2614,5 @@ int pdb_ldap_init(void) { smb_register_passdb("ldapsam", pdb_init_ldapsam, PASSDB_INTERFACE_VERSION); smb_register_passdb("ldapsam_nua", pdb_init_ldapsam_nua, PASSDB_INTERFACE_VERSION); - return TRUE; + return True; } diff --git a/source/passdb/pdb_smbpasswd.c b/source/passdb/pdb_smbpasswd.c index bcbeb748082..7f74196633f 100644 --- a/source/passdb/pdb_smbpasswd.c +++ b/source/passdb/pdb_smbpasswd.c @@ -1584,5 +1584,5 @@ int pdb_smbpasswd_init(void) { smb_register_passdb("smbpasswd", pdb_init_smbpasswd, PASSDB_INTERFACE_VERSION); smb_register_passdb("smbpasswd_nua", pdb_init_smbpasswd_nua, PASSDB_INTERFACE_VERSION); - return TRUE; + return True; } diff --git a/source/utils/smbcacls.c b/source/utils/smbcacls.c index 9337eef106f..4588389f75b 100644 --- a/source/utils/smbcacls.c +++ b/source/utils/smbcacls.c @@ -28,7 +28,7 @@ static pstring username; static pstring owner_username; static fstring server; static int got_pass; -static int test_args = FALSE; +static int test_args = False; static TALLOC_CTX *ctx; #define CREATE_ACCESS_READ READ_CONTROL_ACCESS @@ -36,7 +36,7 @@ static TALLOC_CTX *ctx; /* numeric is set when the user wants numeric SIDs and ACEs rather than going via LSA calls to resolve them */ -static BOOL numeric = FALSE; +static BOOL numeric = False; enum acl_mode {SMB_ACL_SET, SMB_ACL_DELETE, SMB_ACL_MODIFY, SMB_ACL_ADD }; enum chown_mode {REQUEST_NONE, REQUEST_CHOWN, REQUEST_CHGRP}; @@ -758,8 +758,8 @@ static struct cli_state *connect_one(const char *share) { "set", 'S', POPT_ARG_STRING, NULL, 'S', "Set acls", "ACLS" }, { "chown", 'C', POPT_ARG_STRING, NULL, 'C', "Change ownership of a file", "USERNAME" }, { "chgrp", 'G', POPT_ARG_STRING, NULL, 'G', "Change group ownership of a file", "GROUPNAME" }, - { "numeric", 'n', POPT_ARG_VAL, &numeric, TRUE, "Don't resolve sids or masks to names" }, - { "test-args", 't', POPT_ARG_VAL, &test_args, TRUE, "Test arguments"}, + { "numeric", 'n', POPT_ARG_VAL, &numeric, True, "Don't resolve sids or masks to names" }, + { "test-args", 't', POPT_ARG_VAL, &test_args, True, "Test arguments"}, { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version }, { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, diff --git a/source/web/swat.c b/source/web/swat.c index bece4e71e2d..92dece6ecd9 100644 --- a/source/web/swat.c +++ b/source/web/swat.c @@ -1266,7 +1266,7 @@ static void printers_page(void) poptContext pc; struct poptOption long_options[] = { POPT_AUTOHELP - { "disable-authentication", 'a', POPT_ARG_VAL, &demo_mode, TRUE, "Disable authentication (demo mode)" }, + { "disable-authentication", 'a', POPT_ARG_VAL, &demo_mode, True, "Disable authentication (demo mode)" }, { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version}, { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile}, { 0, 0, 0, 0 } -- cgit From 1d33afdef9ea11e17c633109170d35ed66c4e2b8 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 20 Mar 2003 13:59:58 +0000 Subject: Build samr as well --- source/configure.in | 1 + 1 file changed, 1 insertion(+) diff --git a/source/configure.in b/source/configure.in index e6189aa06f7..958771368e5 100644 --- a/source/configure.in +++ b/source/configure.in @@ -3394,6 +3394,7 @@ SMB_MODULE($MODULE_rpc_netlog, rpc_net, \$(RPC_NETLOG_OBJ), bin/librpc_netlog.so SMB_MODULE($MODULE_rpc_dfs, rpc_dfs, \$(RPC_DFS_OBJ), bin/librpc_dfs.so, RPC) SMB_MODULE($MODULE_rpc_srv, rpc_srv, \$(RPC_SVC_OBJ), bin/librpc_srvsvc.so, RPC) SMB_MODULE($MODULE_rpc_spoolss, rpc_spoolss, \$(RPC_SPOOLSS_OBJ), bin/librpc_spoolss.so, RPC) +SMB_MODULE($MODULE_rpc_samr, rpc_samr, \$(RPC_SAMR_OBJ), bin/librpc_samr.so, RPC) SMB_SUBSYSTEM(RPC) ################################################# -- cgit From 9387caf3cebecd50de2b295560355b779135d8c3 Mon Sep 17 00:00:00 2001 From: Jim McDonough Date: Thu, 20 Mar 2003 14:39:46 +0000 Subject: use pstrcpy_base() --- source/nmbd/nmbd_elections.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/nmbd/nmbd_elections.c b/source/nmbd/nmbd_elections.c index f09c37eedcb..339a27d2078 100644 --- a/source/nmbd/nmbd_elections.c +++ b/source/nmbd/nmbd_elections.c @@ -47,7 +47,7 @@ static void send_election_dgram(struct subnet_record *subrec, const char *workgr SIVAL(p,1,criterion); SIVAL(p,5,timeup*1000); /* ms - Despite what the spec says. */ p += 13; - safe_strcpy(p, server_name, sizeof(outbuf) - 1 - (p-outbuf)); + pstrcpy_base(p, server_name, outbuf); strupper(p); p = skip_string(p,1); -- cgit From 3bad73ca870bb43324bdb5dfc6bb02e0fa1fb1e0 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 20 Mar 2003 14:49:37 +0000 Subject: Fix compile errors - don't use pstrcpy() on a fstring --- source/utils/smbcacls.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/source/utils/smbcacls.c b/source/utils/smbcacls.c index 4588389f75b..b523ac94235 100644 --- a/source/utils/smbcacls.c +++ b/source/utils/smbcacls.c @@ -5,6 +5,7 @@ Copyright (C) Andrew Tridgell 2000 Copyright (C) Tim Potter 2000 Copyright (C) Jeremy Allison 2000 + Copyright (C) Jelmer Vernooij 2003 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 @@ -744,11 +745,11 @@ static struct cli_state *connect_one(const char *share) int opt; char *p; enum acl_mode mode = SMB_ACL_SET; - static const char *the_acl = NULL; + static char *the_acl = NULL; enum chown_mode change_mode = REQUEST_NONE; int result; fstring path; - fstring filename; + pstring filename; poptContext pc; struct poptOption long_options[] = { POPT_AUTOHELP @@ -808,22 +809,22 @@ static struct cli_state *connect_one(const char *share) break; case 'S': - the_acl = poptGetOptArg(pc); + the_acl = smb_xstrdup(poptGetOptArg(pc)); mode = SMB_ACL_SET; break; case 'D': - the_acl = poptGetOptArg(pc); + the_acl = smb_xstrdup(poptGetOptArg(pc)); mode = SMB_ACL_DELETE; break; case 'M': - the_acl = poptGetOptArg(pc); + the_acl = smb_xstrdup(poptGetOptArg(pc)); mode = SMB_ACL_MODIFY; break; case 'A': - the_acl = poptGetOptArg(pc); + the_acl = smb_xstrdup(poptGetOptArg(pc)); mode = SMB_ACL_ADD; break; @@ -852,7 +853,7 @@ static struct cli_state *connect_one(const char *share) return -1; } - fstrcpy(filename, poptGetArg(pc)); + pstrcpy(filename, poptGetArg(pc)); all_string_sub(path,"/","\\",0); -- cgit From 05b1681b03688c0d4e57e8dfb881b111f947e6c6 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 20 Mar 2003 15:45:27 +0000 Subject: Fix setOtherHelp() - pointed out by metze --- source/utils/smbcacls.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/utils/smbcacls.c b/source/utils/smbcacls.c index b523ac94235..af5bf09e48c 100644 --- a/source/utils/smbcacls.c +++ b/source/utils/smbcacls.c @@ -794,7 +794,7 @@ static struct cli_state *connect_one(const char *share) } pc = poptGetContext("smbcacls", argc, argv, long_options, 0); - poptSetOtherOptionHelp(pc, "//server1/share1 filename [options]"); + poptSetOtherOptionHelp(pc, "//server1/share1 filename"); while ((opt = poptGetNextOpt(pc)) != -1) { switch (opt) { -- cgit From ca066502a2a3dbdd8943d515c9c6d21e62d757b6 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 20 Mar 2003 16:42:39 +0000 Subject: Patch from Samuel Thibault to convert messages from unix to dos charset. Works on 2000. sending messages to 9x needs to be fixed, but that didn't work anyway --- source/lib/charcnv.c | 2 +- source/libsmb/climessage.c | 17 ++++++++++++++--- source/smbd/message.c | 27 ++++++++++++++++++--------- 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/source/lib/charcnv.c b/source/lib/charcnv.c index fa646573d89..42cba334839 100644 --- a/source/lib/charcnv.c +++ b/source/lib/charcnv.c @@ -186,7 +186,7 @@ size_t convert_string(charset_t from, charset_t to, * @returns Size in bytes of the converted string; or -1 in case of error. **/ -static size_t convert_string_allocate(charset_t from, charset_t to, +size_t convert_string_allocate(charset_t from, charset_t to, void const *src, size_t srclen, void **dest) { size_t i_len, o_len, destlen; diff --git a/source/libsmb/climessage.c b/source/libsmb/climessage.c index 1587e6f4cd7..5f6ce361339 100644 --- a/source/libsmb/climessage.c +++ b/source/libsmb/climessage.c @@ -65,6 +65,8 @@ send a message ****************************************************************************/ BOOL cli_message_text(struct cli_state *cli, char *msg, int len, int grp) { + char *msgdos; + int lendos; char *p; memset(cli->outbuf,'\0',smb_size); @@ -77,9 +79,18 @@ BOOL cli_message_text(struct cli_state *cli, char *msg, int len, int grp) p = smb_buf(cli->outbuf); *p++ = 1; - SSVAL(p,0,len); p += 2; - memcpy(p,msg,len); - p += len; + + if ((lendos = convert_string_allocate(CH_UNIX, CH_DOS, msg,len, (void **) &msgdos)) < 0 || !msgdos) { + DEBUG(3,("Conversion failed, sending message in UNIX charset\n")); + SSVAL(p, 0, len); p += 2; + memcpy(p, msg, len); + p += len; + } else { + SSVAL(p, 0, lendos); p += 2; + memcpy(p, msgdos, lendos); + p += lendos; + SAFE_FREE(msgdos); + } cli_setup_bcc(cli, p); cli_send_smb(cli); diff --git a/source/smbd/message.c b/source/smbd/message.c index ba646f12aa0..233848d2d61 100644 --- a/source/smbd/message.c +++ b/source/smbd/message.c @@ -41,6 +41,8 @@ static void msg_deliver(void) pstring name; int i; int fd; + char *msg; + int len; if (! (*lp_msg_command())) { @@ -61,16 +63,23 @@ static void msg_deliver(void) /* * Incoming message is in DOS codepage format. Convert to UNIX. */ - - if(msgpos > 0) { - msgbuf[msgpos] = '\0'; /* Ensure null terminated. */ - } - - for (i=0;i Date: Thu, 20 Mar 2003 16:53:07 +0000 Subject: NT4 as well as W2k respond with IPC regardless of what service type the client requested in the TCONX when connecting to IPC$. It is very well possible that this also applies to the DISK and PRINTER share types, not only IPC. Found this while trying to join a HEAD domain from NT4SP6. Volker --- source/smbd/reply.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/smbd/reply.c b/source/smbd/reply.c index 138870453d4..715bace152d 100644 --- a/source/smbd/reply.c +++ b/source/smbd/reply.c @@ -276,7 +276,7 @@ int reply_tcon_and_X(connection_struct *conn, char *inbuf,char *outbuf,int lengt set_message(outbuf,3,0,True); p = smb_buf(outbuf); - p += srvstr_push(outbuf, p, devicename, -1, + p += srvstr_push(outbuf, p, IS_IPC(conn) ? "IPC" : devicename, -1, STR_TERMINATE|STR_ASCII); p += srvstr_push(outbuf, p, fsname, -1, STR_TERMINATE); -- cgit From 228110e83fce91c811c82f6f836d313b6b79ff87 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 20 Mar 2003 17:45:23 +0000 Subject: Only build pdb_ldap if both ldap libs and headers are found --- source/configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/configure.in b/source/configure.in index 958771368e5..b6fabe60859 100644 --- a/source/configure.in +++ b/source/configure.in @@ -472,7 +472,7 @@ AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/i AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h) AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h) AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h) -AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h ldap.h lber.h dlfcn.h) +AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h dlfcn.h) AC_CHECK_HEADERS(sys/syslog.h syslog.h) # In valgrind 1.0.x, it's just valgrind.h. In 1.9.x+ there's a @@ -2247,7 +2247,7 @@ if test x"$with_ldap_support" = x"yes"; then if test x$have_ldap != xyes; then AC_CHECK_LIB(ldap, ldap_domain2hostlist, [LIBS="$LIBS -lldap"; AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])]) - default_modules="$default_modules pdb_ldap" + AC_CHECK_HEADERS([ldap.h lber.h], [default_modules="$default_modules pdb_ldap"]) ######################################################## # If we have LDAP, does it's rebind procedure take 2 or 3 arguments? -- cgit From 929213ff2a5829ba8435ba1be0de317bca1e0da0 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 21 Mar 2003 13:28:06 +0000 Subject: Give volker a hand, and let domain joins with existing user accounts work a bit better. This just sets the minimum possible attributes - if we are 'upgrading' an LDAP based user account, the attributes will be there anyway. This matches NT pretty well to. This also fixes some use of unitialised values in the desired_access checking. (found by valgrind). Andrew Bartlett --- source/rpc_server/srv_samr_nt.c | 50 +++++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/source/rpc_server/srv_samr_nt.c b/source/rpc_server/srv_samr_nt.c index d766e9c19ef..7448dc6401c 100644 --- a/source/rpc_server/srv_samr_nt.c +++ b/source/rpc_server/srv_samr_nt.c @@ -81,6 +81,7 @@ NTSTATUS access_check_samr_object(SEC_DESC *psd, NT_USER_TOKEN *nt_user_token, u NTSTATUS status = NT_STATUS_ACCESS_DENIED; if (!se_access_check(psd, nt_user_token, des_access, acc_granted, &status)) { + *acc_granted = des_access; if (geteuid() == sec_initial_uid()) { DEBUG(4,("%s: ACCESS should be DENIED (requested: %#010x)\n", debug, des_access)); @@ -2199,7 +2200,7 @@ NTSTATUS _api_samr_create_user(pipes_struct *p, SAMR_Q_CREATE_USER *q_u, SAMR_R_ uint32 acc_granted; SEC_DESC *psd; size_t sd_size; - uint32 des_access; + uint32 des_access = GENERIC_RIGHTS_USER_ALL_ACCESS; /* Get the domain SID stored in the domain policy */ if (!get_lsa_policy_samr_sid(p, &dom_pol, &sid, &acc_granted)) @@ -2284,25 +2285,50 @@ NTSTATUS _api_samr_create_user(pipes_struct *p, SAMR_Q_CREATE_USER *q_u, SAMR_R_ DEBUG(3,("_api_samr_create_user: Running the command `%s' gave %d\n", add_script, add_ret)); } + if (!NT_STATUS_IS_OK(nt_status = pdb_init_sam(&sam_pass))) { + return nt_status; + } + pw = getpwnam_alloc(account); if (pw) { - if (!NT_STATUS_IS_OK(nt_status = pdb_init_sam_pw(&sam_pass, pw))) { - passwd_free(&pw); - return nt_status; + DOM_SID user_sid; + DOM_SID group_sid; + if (!uid_to_sid(&user_sid, pw->pw_uid)) { + passwd_free(&pw); /* done with this now */ + pdb_free_sam(&sam_pass); + DEBUG(1, ("_api_samr_create_user: uid_to_sid failed, cannot add user.\n")); + return NT_STATUS_ACCESS_DENIED; } - passwd_free(&pw); /* done with this now */ - } else { - DEBUG(3,("attempting to create non-unix account %s\n", account)); - - if (!NT_STATUS_IS_OK(nt_status = pdb_init_sam(&sam_pass))) { - return nt_status; + + if (!pdb_set_user_sid(sam_pass, &user_sid, PDB_CHANGED)) { + passwd_free(&pw); /* done with this now */ + pdb_free_sam(&sam_pass); + return NT_STATUS_NO_MEMORY; } - - if (!pdb_set_username(sam_pass, account, PDB_CHANGED)) { + + if (!gid_to_sid(&group_sid, pw->pw_gid)) { + passwd_free(&pw); /* done with this now */ + pdb_free_sam(&sam_pass); + DEBUG(1, ("_api_samr_create_user: gid_to_sid failed, cannot add user.\n")); + return NT_STATUS_ACCESS_DENIED; + } + + if (!pdb_set_group_sid(sam_pass, &group_sid, PDB_CHANGED)) { + passwd_free(&pw); /* done with this now */ pdb_free_sam(&sam_pass); return NT_STATUS_NO_MEMORY; } + + passwd_free(&pw); /* done with this now */ + } else { + DEBUG(3,("attempting to create non-unix account %s\n", account)); + + } + + if (!pdb_set_username(sam_pass, account, PDB_CHANGED)) { + pdb_free_sam(&sam_pass); + return NT_STATUS_NO_MEMORY; } pdb_set_acct_ctrl(sam_pass, acb_info, PDB_CHANGED); -- cgit From 72bb5615f3eef1c5b27716dfcabe4c8288729458 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 21 Mar 2003 21:43:54 +0000 Subject: Add more mappings to the nterr->errno mapping table. It should be fairly complete now. --- source/libsmb/clierror.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 3 deletions(-) diff --git a/source/libsmb/clierror.c b/source/libsmb/clierror.c index 12a7b5dba18..38899760704 100644 --- a/source/libsmb/clierror.c +++ b/source/libsmb/clierror.c @@ -2,6 +2,7 @@ Unix SMB/CIFS implementation. client error handling routines Copyright (C) Andrew Tridgell 1994-1998 + Copyright (C) Jelmer Vernooij 2003 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 @@ -220,16 +221,87 @@ static struct { int error; } nt_errno_map[] = { {NT_STATUS_ACCESS_VIOLATION, EACCES}, - {NT_STATUS_NO_SUCH_FILE, ENOENT}, - {NT_STATUS_NO_SUCH_DEVICE, ENODEV}, {NT_STATUS_INVALID_HANDLE, EBADF}, - {NT_STATUS_NO_MEMORY, ENOMEM}, {NT_STATUS_ACCESS_DENIED, EACCES}, {NT_STATUS_OBJECT_NAME_NOT_FOUND, ENOENT}, {NT_STATUS_SHARING_VIOLATION, EBUSY}, {NT_STATUS_OBJECT_PATH_INVALID, ENOTDIR}, {NT_STATUS_OBJECT_NAME_COLLISION, EEXIST}, {NT_STATUS_PATH_NOT_COVERED, ENOENT}, + {NT_STATUS_UNSUCCESSFUL, EINVAL}, + {NT_STATUS_NOT_IMPLEMENTED, ENOSYS}, + {NT_STATUS_IN_PAGE_ERROR, EFAULT}, + {NT_STATUS_PAGEFILE_QUOTA, EDQUOT}, + {NT_STATUS_TIMER_NOT_CANCELED, ETIME}, + {NT_STATUS_INVALID_PARAMETER, EINVAL}, + {NT_STATUS_NO_SUCH_DEVICE, ENODEV}, + {NT_STATUS_NO_SUCH_FILE, ENOENT}, + {NT_STATUS_END_OF_FILE, ENODATA}, + {NT_STATUS_NO_MEDIA_IN_DEVICE, ENOMEDIUM}, + {NT_STATUS_NONEXISTENT_SECTOR, ESPIPE}, + {NT_STATUS_NO_MEMORY, ENOMEM}, + {NT_STATUS_CONFLICTING_ADDRESSES, EADDRINUSE}, + {NT_STATUS_NOT_MAPPED_VIEW, EINVAL}, + {NT_STATUS_UNABLE_TO_FREE_VM, EADDRINUSE}, + {NT_STATUS_ACCESS_DENIED, EACCES}, + {NT_STATUS_BUFFER_TOO_SMALL, ENOBUFS}, + {NT_STATUS_QUOTA_EXCEEDED, EDQUOT}, + {NT_STATUS_WRONG_PASSWORD, EACCES}, + {NT_STATUS_LOGON_FAILURE, EACCES}, + {NT_STATUS_INVALID_WORKSTATION, EACCES}, + {NT_STATUS_INVALID_LOGON_HOURS, EACCES}, + {NT_STATUS_PASSWORD_EXPIRED, EACCES}, + {NT_STATUS_ACCOUNT_DISABLED, EACCES}, + {NT_STATUS_DISK_FULL, ENOSPC}, + {NT_STATUS_INVALID_PIPE_STATE, EPIPE}, + {NT_STATUS_PIPE_BUSY, EPIPE}, + {NT_STATUS_PIPE_DISCONNECTED, EPIPE}, + {NT_STATUS_PIPE_NOT_AVAILABLE, ENOSYS}, + {NT_STATUS_FILE_IS_A_DIRECTORY, EISDIR}, + {NT_STATUS_NOT_SUPPORTED, ENOSYS}, + {NT_STATUS_NOT_A_DIRECTORY, ENOTDIR}, + {NT_STATUS_DIRECTORY_NOT_EMPTY, ENOTEMPTY}, + {NT_STATUS_NETWORK_UNREACHABLE, ENETUNREACH}, + {NT_STATUS_HOST_UNREACHABLE, EHOSTUNREACH}, + {NT_STATUS_CONNECTION_ABORTED, ECONNABORTED}, + {NT_STATUS_CONNECTION_REFUSED, ECONNREFUSED}, + {NT_STATUS_REGISTRY_QUOTA_LIMIT, EDQUOT}, + {NT_STATUS_LICENSE_QUOTA_EXCEEDED, EDQUOT}, + {NT_STATUS_TOO_MANY_LINKS, EMLINK}, + {NT_STATUS_NETWORK_BUSY, EBUSY}, + {NT_STATUS_DEVICE_DOES_NOT_EXIST, ENODEV}, + {NT_STATUS_DLL_NOT_FOUND, ELIBACC}, + {NT_STATUS_PIPE_BROKEN, EPIPE}, + {NT_STATUS_REMOTE_NOT_LISTENING, ECONNREFUSED}, + {NT_STATUS_NETWORK_ACCESS_DENIED, EACCES}, + {NT_STATUS_TOO_MANY_OPENED_FILES, EMFILE}, + {NT_STATUS_DEVICE_PROTOCOL_ERROR, EPROTO}, + {NT_STATUS_NO_MEDIA, ENOMEDIUM}, + {NT_STATUS_FLOAT_OVERFLOW, ERANGE}, + {NT_STATUS_FLOAT_UNDERFLOW, ERANGE}, + {NT_STATUS_INTEGER_OVERFLOW, ERANGE}, + {NT_STATUS_MEDIA_WRITE_PROTECTED, EROFS}, + {NT_STATUS_PIPE_CONNECTED, EISCONN}, + {NT_STATUS_MEMORY_NOT_ALLOCATED, EFAULT}, + {NT_STATUS_FLOAT_INEXACT_RESULT, ERANGE}, + {NT_STATUS_ILL_FORMED_PASSWORD, EACCES}, + {NT_STATUS_PASSWORD_RESTRICTION, EACCES}, + {NT_STATUS_ACCOUNT_RESTRICTION, EACCES}, + {NT_STATUS_PORT_CONNECTION_REFUSED, ECONNREFUSED}, + {NT_STATUS_NAME_TOO_LONG, ENAMETOOLONG}, + {NT_STATUS_REMOTE_DISCONNECT, ESHUTDOWN}, + {NT_STATUS_CONNECTION_DISCONNECTED, ECONNABORTED}, + {NT_STATUS_CONNECTION_RESET, ENETRESET}, + {NT_STATUS_IP_ADDRESS_CONFLICT1, ENOTUNIQ}, + {NT_STATUS_IP_ADDRESS_CONFLICT2, ENOTUNIQ}, + {NT_STATUS_PORT_MESSAGE_TOO_LONG, EMSGSIZE}, + {NT_STATUS_PROTOCOL_UNREACHABLE, ENOPROTOOPT}, + {NT_STATUS_ADDRESS_ALREADY_EXISTS, EADDRINUSE}, + {NT_STATUS_PORT_UNREACHABLE, EHOSTUNREACH}, + {NT_STATUS_IO_TIMEOUT, ETIMEDOUT}, + {NT_STATUS_RETRY, EAGAIN}, + {NT_STATUS_NET_WRITE_FAULT, ECOMM}, + {NT_STATUS(0), 0} }; -- cgit From 301f17df51961b645b63d1520fc9c2e5627c1a0a Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 21 Mar 2003 22:00:19 +0000 Subject: Merge of new appliance-head scalable printing fixes. Jeremy. --- source/printing/printing.c | 429 ++++++++++++++++++++++++++++++--------------- 1 file changed, 287 insertions(+), 142 deletions(-) diff --git a/source/printing/printing.c b/source/printing/printing.c index 99578975ca3..da29eab9f2d 100644 --- a/source/printing/printing.c +++ b/source/printing/printing.c @@ -246,20 +246,22 @@ int unpack_pjob( char* buf, int buflen, struct printjob *pjob ) { int len = 0; int used; - + uint32 pjpid, pjsysjob, pjfd, pjstarttime, pjstatus; + uint32 pjsize, pjpage_count, pjspooled, pjsmbjob; + if ( !buf || !pjob ) return -1; len += tdb_unpack(buf+len, buflen-len, "dddddddddffff", - &pjob->pid, - &pjob->sysjob, - &pjob->fd, - &pjob->starttime, - &pjob->status, - &pjob->size, - &pjob->page_count, - &pjob->spooled, - &pjob->smbjob, + &pjpid, + &pjsysjob, + &pjfd, + &pjstarttime, + &pjstatus, + &pjsize, + &pjpage_count, + &pjspooled, + &pjsmbjob, pjob->filename, pjob->jobname, pjob->user, @@ -272,6 +274,16 @@ int unpack_pjob( char* buf, int buflen, struct printjob *pjob ) return -1; len += used; + + pjob->pid = pjpid; + pjob->sysjob = pjsysjob; + pjob->fd = pjfd; + pjob->starttime = pjstarttime; + pjob->status = pjstatus; + pjob->size = pjsize; + pjob->page_count = pjpage_count; + pjob->spooled = pjspooled; + pjob->smbjob = pjsmbjob; return len; @@ -464,15 +476,15 @@ static BOOL pjob_store(int snum, uint32 jobid, struct printjob *pjob) len = 0; buflen = newlen; len += tdb_pack(buf+len, buflen-len, "dddddddddffff", - pjob->pid, - pjob->sysjob, - pjob->fd, - pjob->starttime, - pjob->status, - pjob->size, - pjob->page_count, - pjob->spooled, - pjob->smbjob, + (uint32)pjob->pid, + (uint32)pjob->sysjob, + (uint32)pjob->fd, + (uint32)pjob->starttime, + (uint32)pjob->status, + (uint32)pjob->size, + (uint32)pjob->page_count, + (uint32)pjob->spooled, + (uint32)pjob->smbjob, pjob->filename, pjob->jobname, pjob->user, @@ -782,6 +794,84 @@ static void set_updating_pid(const fstring printer_name, BOOL delete) release_print_db(pdb); } +/**************************************************************************** + Sort print jobs by submittal time. +****************************************************************************/ + +static int printjob_comp(print_queue_struct *j1, print_queue_struct *j2) +{ + /* Silly cases */ + + if (!j1 && !j2) + return 0; + if (!j1) + return -1; + if (!j2) + return 1; + + /* Sort on job start time */ + + if (j1->time == j2->time) + return 0; + return (j1->time > j2->time) ? 1 : -1; +} + +/**************************************************************************** + Store the sorted queue representation for later portmon retrieval. +****************************************************************************/ + +static void store_queue_struct(struct tdb_print_db *pdb, struct traverse_struct *pts) +{ + TDB_DATA data, key; + int max_reported_jobs = lp_max_reported_jobs(pts->snum); + print_queue_struct *queue = pts->queue; + size_t len; + size_t i; + uint qcount; + + if (max_reported_jobs < pts->qcount) + pts->qcount = max_reported_jobs; + qcount = pts->qcount; + + /* Work out the size. */ + data.dsize = 0; + data.dsize += tdb_pack(NULL, 0, NULL, "d", qcount); + + for (i = 0; i < pts->qcount; i++) { + data.dsize += tdb_pack(NULL, 0, NULL, "ddddddff", + (uint32)queue[i].job, + (uint32)queue[i].size, + (uint32)queue[i].page_count, + (uint32)queue[i].status, + (uint32)queue[i].priority, + (uint32)queue[i].time, + queue[i].fs_user, + queue[i].fs_file); + } + + if ((data.dptr = malloc(data.dsize)) == NULL) + return; + + len = 0; + len += tdb_pack(data.dptr + len, data.dsize - len, NULL, "d", qcount); + for (i = 0; i < pts->qcount; i++) { + len += tdb_pack(data.dptr + len, data.dsize - len, NULL, "ddddddff", + (uint32)queue[i].job, + (uint32)queue[i].size, + (uint32)queue[i].page_count, + (uint32)queue[i].status, + (uint32)queue[i].priority, + (uint32)queue[i].time, + queue[i].fs_user, + queue[i].fs_file); + } + + key.dptr = "INFO/linear_queue_array"; + key.dsize = strlen(key.dptr); + tdb_store(pdb->tdb, key, data, TDB_REPLACE); + return; +} + /**************************************************************************** Update the internal database from the system print queue for a queue. ****************************************************************************/ @@ -869,6 +959,12 @@ static void print_queue_update(int snum) DEBUG(3, ("%d job%s in queue for %s\n", qcount, (qcount != 1) ? "s" : "", printer_name)); + /* Sort the queue by submission time otherwise they are displayed + in hash order. */ + + qsort(queue, qcount, sizeof(print_queue_struct), + QSORT_CAST(printjob_comp)); + /* any job in the internal database that is marked as spooled and doesn't exist in the system queue is considered finished @@ -914,6 +1010,9 @@ static void print_queue_update(int snum) tdb_traverse(pdb->tdb, traverse_fn_delete, (void *)&tstruct); + /* Store the linearised queue, max jobs only. */ + store_queue_struct(pdb, &tstruct); + SAFE_FREE(tstruct.queue); DEBUG(10,("print_queue_update: printer %s INFO/total_jobs = %d\n", @@ -1216,6 +1315,58 @@ BOOL print_job_set_name(int snum, uint32 jobid, char *name) return pjob_store(snum, jobid, pjob); } +/*************************************************************************** + Remove a jobid from the 'jobs changed' list. +***************************************************************************/ + +static BOOL remove_from_jobs_changed(int snum, uint32 jobid) +{ + const char *printername = lp_const_servicename(snum); + struct tdb_print_db *pdb = get_print_db_byname(printername); + TDB_DATA data, key; + size_t job_count, i; + BOOL ret = False; + BOOL gotlock = False; + + key.dptr = "INFO/jobs_changed"; + key.dsize = strlen(key.dptr); + ZERO_STRUCT(data); + + if (tdb_chainlock_with_timeout(pdb->tdb, key, 5) == -1) + goto out; + + gotlock = True; + + data = tdb_fetch(pdb->tdb, key); + + if (data.dptr == NULL || data.dsize == 0 || (data.dsize % 4 != 0)) + goto out; + + job_count = data.dsize / 4; + for (i = 0; i < job_count; i++) { + uint32 ch_jobid; + + memcpy(&ch_jobid, data.dptr + (i*4), 4); + if (ch_jobid == jobid) { + if (i < job_count -1 ) + memmove(data.dptr + (i*4), data.dptr + (i*4) + 4, (job_count - i - 1)*4 ); + data.dsize -= 4; + if (tdb_store(pdb->tdb, key, data, TDB_REPLACE) == -1) + goto out; + break; + } + } + + ret = True; + out: + + if (gotlock) + tdb_chainunlock(pdb->tdb, key); + SAFE_FREE(data.dptr); + release_print_db(pdb); + return ret; +} + /**************************************************************************** Delete a print job - don't update queue. ****************************************************************************/ @@ -1249,6 +1400,8 @@ static BOOL print_job_delete1(int snum, uint32 jobid) if (pjob->spooled && pjob->sysjob != -1) result = (*(current_printif->job_delete))(snum, pjob); + else + remove_from_jobs_changed(snum, jobid); /* Delete the tdb entry if the delete suceeded or the job hasn't been spooled. */ @@ -1624,6 +1777,22 @@ static BOOL allocate_print_jobid(struct tdb_print_db *pdb, int snum, const char return True; } +/*************************************************************************** + Append a jobid to the 'jobs changed' list. +***************************************************************************/ + +static BOOL add_to_jobs_changed(struct tdb_print_db *pdb, uint32 jobid) +{ + TDB_DATA data, key; + + key.dptr = "INFO/jobs_changed"; + key.dsize = strlen(key.dptr); + data.dptr = (char *)&jobid; + data.dsize = 4; + + return (tdb_append(pdb->tdb, key, data) == 0); +} + /*************************************************************************** Start spooling a job - return the jobid. ***************************************************************************/ @@ -1736,6 +1905,9 @@ to open spool file %s.\n", pjob.filename)); pjob_store(snum, jobid, &pjob); + /* Update the 'jobs changed' entry used by print_queue_status. */ + add_to_jobs_changed(pdb, jobid); + /* Ensure we keep a rough count of the number of total jobs... */ tdb_change_int32_atomic(pdb->tdb, "INFO/total_jobs", &njobs, 1); @@ -1826,6 +1998,7 @@ BOOL print_job_end(int snum, uint32 jobid, BOOL normal_close) pjob->spooled = True; pjob->status = LPQ_QUEUED; pjob_store(snum, jobid, pjob); + remove_from_jobs_changed(snum, jobid); /* make sure the database is up to date */ if (print_cache_expired(snum)) @@ -1839,109 +2012,116 @@ fail: /* Still need to add proper error return propagation! 010122:JRR */ unlink(pjob->filename); pjob_delete(snum, jobid); + remove_from_jobs_changed(snum, jobid); return False; } /**************************************************************************** - Utility fn to enumerate the print queue. + Get a snapshot of jobs in the system without traversing. ****************************************************************************/ -static int traverse_fn_queue(TDB_CONTEXT *t, TDB_DATA key, TDB_DATA data, void *state) +static BOOL get_stored_queue_info(struct tdb_print_db *pdb, int snum, int *pcount, print_queue_struct **ppqueue) { - struct traverse_struct *ts = (struct traverse_struct *)state; - struct printjob pjob; - int i; - uint32 jobid; - - /* sanity checks */ - - if ( key.dsize != sizeof(jobid) ) - return 0; - - memcpy(&jobid, key.dptr, sizeof(jobid)); - - if ( unpack_pjob( data.dptr, data.dsize, &pjob ) == -1 ) - return 0; - free_nt_devicemode( &pjob.nt_devmode ); - - /* maybe it isn't for this queue */ - if (ts->snum != lp_servicenumber(pjob.queuename)) - return 0; + TDB_DATA data, key, cgdata; + print_queue_struct *queue = NULL; + uint32 qcount = 0; + uint32 extra_count = 0; + int total_count = 0; + uint32 i; + int max_reported_jobs = lp_max_reported_jobs(snum); + BOOL ret = False; - if (ts->qcount >= ts->maxcount) - return 0; + *pcount = 0; + *ppqueue = NULL; - i = ts->qcount; + ZERO_STRUCT(data); + ZERO_STRUCT(cgdata); + key.dptr = "INFO/linear_queue_array"; + key.dsize = strlen(key.dptr); - ts->queue[i].job = jobid; - ts->queue[i].size = pjob.size; - ts->queue[i].page_count = pjob.page_count; - ts->queue[i].status = pjob.status; - ts->queue[i].priority = 1; - ts->queue[i].time = pjob.starttime; - fstrcpy(ts->queue[i].fs_user, pjob.user); - fstrcpy(ts->queue[i].fs_file, pjob.jobname); + /* Get the stored queue data. */ + data = tdb_fetch(pdb->tdb, key); - ts->qcount++; + if (data.dptr == NULL || data.dsize < 4) + qcount = 0; + else + memcpy(&qcount, data.dptr, 4); - return 0; -} + /* Get the changed jobs list. */ + key.dptr = "INFO/jobs_changed"; + key.dsize = strlen(key.dptr); -struct traverse_count_struct { - int snum, count; -}; + cgdata = tdb_fetch(pdb->tdb, key); + if (cgdata.dptr != NULL && (cgdata.dsize % 4 == 0)) + extra_count = cgdata.dsize/4; -/**************************************************************************** - Utility fn to count the number of entries in the print queue. -****************************************************************************/ + /* Allocate the queue size. */ + if (qcount == 0 && extra_count == 0) + goto out; + + if ((queue = (print_queue_struct *)malloc(sizeof(print_queue_struct)*(qcount + extra_count))) == NULL) + goto out; + + /* Retrieve the linearised queue data. */ + for( i = 0; i < qcount; i++) { + size_t len = 0; + uint32 qjob, qsize, qpage_count, qstatus, qpriority, qtime; + len += tdb_unpack(data.dptr + 4 + len, data.dsize - len, NULL, "ddddddff", + &qjob, + &qsize, + &qpage_count, + &qstatus, + &qpriority, + &qtime, + queue[i].fs_user, + queue[i].fs_file); + queue[i].job = qjob; + queue[i].size = qsize; + queue[i].page_count = qpage_count; + queue[i].status = qstatus; + queue[i].priority = qpriority; + queue[i].time = qtime; + } + + total_count = qcount; + + /* Add in the changed jobids. */ + for( i = 0; i < extra_count; i++) { + uint32 jobid; + struct printjob *pjob; + + memcpy(&jobid, &cgdata.dptr[i*4], 4); + pjob = print_job_find(snum, jobid); + if (!pjob) + continue; -static int traverse_count_fn_queue(TDB_CONTEXT *t, TDB_DATA key, TDB_DATA data, void *state) -{ - struct traverse_count_struct *ts = (struct traverse_count_struct *)state; - struct printjob pjob; - uint32 jobid; + queue[total_count].job = jobid; + queue[total_count].size = pjob->size; + queue[total_count].page_count = pjob->page_count; + queue[total_count].status = pjob->status; + queue[total_count].priority = 1; + fstrcpy(queue[total_count].fs_user, pjob->user); + fstrcpy(queue[total_count].fs_file, pjob->jobname); + } - /* sanity checks */ - - if ( key.dsize != sizeof(jobid) ) - return 0; - - memcpy(&jobid, key.dptr, sizeof(jobid)); - - if ( unpack_pjob( data.dptr, data.dsize, &pjob ) == -1 ) - return 0; - - free_nt_devicemode( &pjob.nt_devmode ); + /* Sort the queue by submission time otherwise they are displayed + in hash order. */ - /* maybe it isn't for this queue - this cannot happen with the tdb/printer code. JRA */ - if (ts->snum != lp_servicenumber(pjob.queuename)) - return 0; + qsort(queue, total_count, sizeof(print_queue_struct), QSORT_CAST(printjob_comp)); - ts->count++; + if (max_reported_jobs && total_count > max_reported_jobs) + total_count = max_reported_jobs; - return 0; -} + *ppqueue = queue; + *pcount = total_count; -/**************************************************************************** - Sort print jobs by submittal time. -****************************************************************************/ - -static int printjob_comp(print_queue_struct *j1, print_queue_struct *j2) -{ - /* Silly cases */ - - if (!j1 && !j2) - return 0; - if (!j1) - return -1; - if (!j2) - return 1; + ret = True; - /* Sort on job start time */ + out: - if (j1->time == j2->time) - return 0; - return (j1->time > j2->time) ? 1 : -1; + SAFE_FREE(data.dptr); + SAFE_FREE(cgdata.dptr); + return ret; } /**************************************************************************** @@ -1950,16 +2130,14 @@ static int printjob_comp(print_queue_struct *j1, print_queue_struct *j2) ****************************************************************************/ int print_queue_status(int snum, - print_queue_struct **queue, + print_queue_struct **ppqueue, print_status_struct *status) { - struct traverse_struct tstruct; - struct traverse_count_struct tsc; fstring keystr; TDB_DATA data, key; const char *printername; struct tdb_print_db *pdb; - int max_reported_jobs = lp_max_reported_jobs(snum); + int count = 0; /* make sure the database is up to date */ @@ -1967,11 +2145,10 @@ int print_queue_status(int snum, print_queue_update(snum); /* return if we are done */ - - if ( !queue || !status ) + if ( !ppqueue || !status ) return 0; - *queue = NULL; + *ppqueue = NULL; printername = lp_const_servicename(snum); pdb = get_print_db_byname(printername); @@ -1982,6 +2159,7 @@ int print_queue_status(int snum, * Fetch the queue status. We must do this first, as there may * be no jobs in the queue. */ + ZERO_STRUCTP(status); slprintf(keystr, sizeof(keystr)-1, "STATUS/%s", printername); key.dptr = keystr; @@ -1998,47 +2176,14 @@ int print_queue_status(int snum, * Now, fetch the print queue information. We first count the number * of entries, and then only retrieve the queue if necessary. */ - tsc.count = 0; - tsc.snum = snum; - - tdb_traverse(pdb->tdb, traverse_count_fn_queue, (void *)&tsc); - if (tsc.count == 0) { + if (!get_stored_queue_info(pdb, snum, &count, ppqueue)) { release_print_db(pdb); return 0; } - /* Allocate the queue size. */ - if ((tstruct.queue = (print_queue_struct *) - malloc(sizeof(print_queue_struct)*tsc.count)) == NULL) { - release_print_db(pdb); - return 0; - } - - /* - * Fill in the queue. - * We need maxcount as the queue size may have changed between - * the two calls to tdb_traverse. - */ - tstruct.qcount = 0; - tstruct.maxcount = tsc.count; - tstruct.snum = snum; - - tdb_traverse(pdb->tdb, traverse_fn_queue, (void *)&tstruct); release_print_db(pdb); - - /* Sort the queue by submission time otherwise they are displayed - in hash order. */ - - qsort(tstruct.queue, tstruct.qcount, sizeof(print_queue_struct), - QSORT_CAST(printjob_comp)); - - *queue = tstruct.queue; - - if (max_reported_jobs && tstruct.qcount > max_reported_jobs) - tstruct.qcount = max_reported_jobs; - - return tstruct.qcount; + return count; } /**************************************************************************** -- cgit From 23c7342bc40daffbcd70ef04727cae2c2b2c366b Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 21 Mar 2003 22:31:25 +0000 Subject: Patch from colo (on IRC) to get libsmbclient building due to pstring/fstring issues. Also pick up these link failures at compile time (rather than runtime). Andrew Bartlett --- source/configure.in | 2 +- source/libsmb/libsmbclient.c | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/source/configure.in b/source/configure.in index b6fabe60859..5d7a65f6202 100644 --- a/source/configure.in +++ b/source/configure.in @@ -914,7 +914,7 @@ if test "$enable_shared" = "yes"; then case "$host_os" in *linux*) AC_DEFINE(LINUX,1,[Whether the host os is linux]) BLDSHARED="true" - LDSHFLAGS="-shared" + LDSHFLAGS="-shared -Wl,-no-undefined" DYNEXP="-Wl,--export-dynamic" PICFLAG="-fPIC" SONAMEFLAG="-Wl,-soname=" diff --git a/source/libsmb/libsmbclient.c b/source/libsmb/libsmbclient.c index 5ceb36795a1..440527cd9d4 100644 --- a/source/libsmb/libsmbclient.c +++ b/source/libsmb/libsmbclient.c @@ -492,9 +492,9 @@ static SMBCFILE *smbc_open_ctx(SMBCCTX *context, const char *fname, int flags, m smbc_parse_path(context, fname, server, share, path, user, password); /* FIXME, check errors */ - if (user[0] == (char)0) pstrcpy(user, context->user); + if (user[0] == (char)0) fstrcpy(user, context->user); - pstrcpy(workgroup, context->workgroup); + fstrcpy(workgroup, context->workgroup); srv = smbc_server(context, server, share, workgroup, user, password); @@ -821,9 +821,9 @@ static int smbc_unlink_ctx(SMBCCTX *context, const char *fname) smbc_parse_path(context, fname, server, share, path, user, password); /* FIXME, check errors */ - if (user[0] == (char)0) pstrcpy(user, context->user); + if (user[0] == (char)0) fstrcpy(user, context->user); - pstrcpy(workgroup, context->workgroup); + fstrcpy(workgroup, context->workgroup); srv = smbc_server(context, server, share, workgroup, user, password); @@ -920,11 +920,11 @@ static int smbc_rename_ctx(SMBCCTX *ocontext, const char *oname, smbc_parse_path(ocontext, oname, server1, share1, path1, user1, password1); - if (user1[0] == (char)0) pstrcpy(user1, ocontext->user); + if (user1[0] == (char)0) fstrcpy(user1, ocontext->user); smbc_parse_path(ncontext, nname, server2, share2, path2, user2, password2); - if (user2[0] == (char)0) pstrcpy(user2, ncontext->user); + if (user2[0] == (char)0) fstrcpy(user2, ncontext->user); if (strcmp(server1, server2) || strcmp(share1, share2) || strcmp(user1, user2)) { @@ -936,7 +936,7 @@ static int smbc_rename_ctx(SMBCCTX *ocontext, const char *oname, } - pstrcpy(workgroup, ocontext->workgroup); + fstrcpy(workgroup, ocontext->workgroup); /* HELP !!! Which workgroup should I use ? Or are they always the same -- Tom */ srv = smbc_server(ocontext, server1, share1, workgroup, user1, password1); if (!srv) { @@ -1119,9 +1119,9 @@ static int smbc_stat_ctx(SMBCCTX *context, const char *fname, struct stat *st) smbc_parse_path(context, fname, server, share, path, user, password); /*FIXME, errors*/ - if (user[0] == (char)0) pstrcpy(user, context->user); + if (user[0] == (char)0) fstrcpy(user, context->user); - pstrcpy(workgroup, context->workgroup); + fstrcpy(workgroup, context->workgroup); srv = smbc_server(context, server, share, workgroup, user, password); @@ -1422,9 +1422,9 @@ static SMBCFILE *smbc_opendir_ctx(SMBCCTX *context, const char *fname) } - if (user[0] == (char)0) pstrcpy(user, context->user); + if (user[0] == (char)0) fstrcpy(user, context->user); - pstrcpy(workgroup, context->workgroup); + fstrcpy(workgroup, context->workgroup); dir = malloc(sizeof(*dir)); @@ -1893,9 +1893,9 @@ static int smbc_mkdir_ctx(SMBCCTX *context, const char *fname, mode_t mode) smbc_parse_path(context, fname, server, share, path, user, password); /*FIXME, errors*/ - if (user[0] == (char)0) pstrcpy(user, context->user); + if (user[0] == (char)0) fstrcpy(user, context->user); - pstrcpy(workgroup, context->workgroup); + fstrcpy(workgroup, context->workgroup); srv = smbc_server(context, server, share, workgroup, user, password); @@ -1980,9 +1980,9 @@ static int smbc_rmdir_ctx(SMBCCTX *context, const char *fname) smbc_parse_path(context, fname, server, share, path, user, password); /*FIXME, errors*/ - if (user[0] == (char)0) pstrcpy(user, context->user); + if (user[0] == (char)0) fstrcpy(user, context->user); - pstrcpy(workgroup, context->workgroup); + fstrcpy(workgroup, context->workgroup); srv = smbc_server(context, server, share, workgroup, user, password); @@ -2327,9 +2327,9 @@ static int smbc_list_print_jobs_ctx(SMBCCTX *context, const char *fname, smbc_li smbc_parse_path(context, fname, server, share, path, user, password); /*FIXME, errors*/ - if (user[0] == (char)0) pstrcpy(user, context->user); + if (user[0] == (char)0) fstrcpy(user, context->user); - pstrcpy(workgroup, context->workgroup); + fstrcpy(workgroup, context->workgroup); srv = smbc_server(context, server, share, workgroup, user, password); @@ -2380,9 +2380,9 @@ static int smbc_unlink_print_job_ctx(SMBCCTX *context, const char *fname, int id smbc_parse_path(context, fname, server, share, path, user, password); /*FIXME, errors*/ - if (user[0] == (char)0) pstrcpy(user, context->user); + if (user[0] == (char)0) fstrcpy(user, context->user); - pstrcpy(workgroup, context->workgroup); + fstrcpy(workgroup, context->workgroup); srv = smbc_server(context, server, share, workgroup, user, password); -- cgit From 191b0ab4d7c35c83d2bb2052b2e37d01fbf37b45 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 21 Mar 2003 22:37:14 +0000 Subject: Clobber our SMB buffers between packets. I hope this will help find bugs where we assume the buffer is zero, when it might not be (ie due to, previous packets). Andrew Bartlett --- source/smbd/process.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/source/smbd/process.c b/source/smbd/process.c index 57bc236eef5..c3fbc22e944 100644 --- a/source/smbd/process.c +++ b/source/smbd/process.c @@ -1249,12 +1249,16 @@ void smbd_process(void) extern int smb_echo_count; time_t last_timeout_processing_time = time(NULL); unsigned int num_smbs = 0; + const size_t total_buffer_size = BUFFER_SIZE + LARGE_WRITEX_HDR_SIZE + SAFETY_MARGIN; - InBuffer = (char *)malloc(BUFFER_SIZE + LARGE_WRITEX_HDR_SIZE + SAFETY_MARGIN); - OutBuffer = (char *)malloc(BUFFER_SIZE + LARGE_WRITEX_HDR_SIZE + SAFETY_MARGIN); + InBuffer = (char *)malloc(total_buffer_size); + OutBuffer = (char *)malloc(total_buffer_size); if ((InBuffer == NULL) || (OutBuffer == NULL)) return; + clobber_region(__FUNCTION__, __LINE__, InBuffer, total_buffer_size); + clobber_region(__FUNCTION__, __LINE__, OutBuffer, total_buffer_size); + max_recv = MIN(lp_maxxmit(),BUFFER_SIZE); while (True) { @@ -1278,6 +1282,8 @@ void smbd_process(void) num_smbs = 0; /* Reset smb counter. */ } + clobber_region(__FUNCTION__, __LINE__, InBuffer, total_buffer_size); + while (!receive_message_or_smb(InBuffer,BUFFER_SIZE+LARGE_WRITEX_HDR_SIZE,select_timeout)) { if(!timeout_processing( deadtime, &select_timeout, &last_timeout_processing_time)) return; @@ -1295,6 +1301,8 @@ void smbd_process(void) */ num_echos = smb_echo_count; + clobber_region(__FUNCTION__, __LINE__, OutBuffer, total_buffer_size); + process_smb(InBuffer, OutBuffer); if (smb_echo_count != num_echos) { -- cgit From 05a63bd17e4c35979b3864b0969b2bfd945335d9 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 21 Mar 2003 22:38:04 +0000 Subject: Clobber the 'SAFETY_MARGIN' in libsmb. Andrew Bartlett --- source/libsmb/clientgen.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/source/libsmb/clientgen.c b/source/libsmb/clientgen.c index d9691930894..e067e92f8db 100644 --- a/source/libsmb/clientgen.c +++ b/source/libsmb/clientgen.c @@ -259,9 +259,6 @@ struct cli_state *cli_initialise(struct cli_state *cli) if (getenv("CLI_FORCE_DOSERR")) cli->force_dos_errors = True; - /* initialise signing */ - cli_null_set_signing(cli); - if (lp_client_signing()) cli->sign_info.allow_smb_signing = True; @@ -274,6 +271,13 @@ struct cli_state *cli_initialise(struct cli_state *cli) memset(cli->outbuf, 0, cli->bufsize); memset(cli->inbuf, 0, cli->bufsize); + /* just becouse we over-allocate, doesn't mean it's right to use it */ + clobber_region(__FUNCTION__, __LINE__, cli->outbuf+cli->bufsize, SAFETY_MARGIN); + clobber_region(__FUNCTION__, __LINE__, cli->inbuf+cli->bufsize, SAFETY_MARGIN); + + /* initialise signing */ + cli_null_set_signing(cli); + cli->nt_pipe_fnum = 0; cli->initialised = 1; -- cgit From 1002b0bbff295548b74580dbb0dc0c76474af23b Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 22 Mar 2003 00:27:18 +0000 Subject: FALSE -> False (reported by Paul Green) --- source/passdb/pdb_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/passdb/pdb_interface.c b/source/passdb/pdb_interface.c index b146951561a..4d9ec7beea6 100644 --- a/source/passdb/pdb_interface.c +++ b/source/passdb/pdb_interface.c @@ -28,7 +28,7 @@ static struct pdb_init_function_entry *backends = NULL; static void lazy_initialize_passdb(void) { - static BOOL initialized = FALSE; + static BOOL initialized = False; if(initialized)return; static_init_pdb; initialized = True; -- cgit From 552198b9e149c41f8cb2f976421ef030eac6fba6 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sat, 22 Mar 2003 08:07:53 +0000 Subject: Patch from Jianliang Lu to set the 'minimum password age' when setting the password. Andrew Bartlett --- source/passdb/pdb_get_set.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/source/passdb/pdb_get_set.c b/source/passdb/pdb_get_set.c index 2efe7204745..a86d9362630 100644 --- a/source/passdb/pdb_get_set.c +++ b/source/passdb/pdb_get_set.c @@ -1064,6 +1064,7 @@ BOOL pdb_set_hours (SAM_ACCOUNT *sampass, const uint8 *hours, enum pdb_value_sta BOOL pdb_set_pass_changed_now (SAM_ACCOUNT *sampass) { uint32 expire; + uint32 min_age; if (!sampass) return False; @@ -1082,6 +1083,16 @@ BOOL pdb_set_pass_changed_now (SAM_ACCOUNT *sampass) return False; } + if (!account_policy_get(AP_MIN_PASSWORD_AGE, &min_age) + || (min_age==(uint32)-1)) { + if (!pdb_set_pass_can_change_time (sampass, 0, PDB_CHANGED)) + return False; + } else { + if (!pdb_set_pass_can_change_time (sampass, + pdb_get_pass_last_set_time(sampass) + + min_age, PDB_CHANGED)) + return False; + } return True; } -- cgit From b1b4370955d50fd4997c7171a99fe03f97190aca Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sat, 22 Mar 2003 10:44:07 +0000 Subject: It seems that this causes some problems on some linux platforms - it's a pity becouse otherwise you need to link a program with it to get the fstring/pstring bugs. Andrew Bartlett --- source/configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/configure.in b/source/configure.in index 5d7a65f6202..b6fabe60859 100644 --- a/source/configure.in +++ b/source/configure.in @@ -914,7 +914,7 @@ if test "$enable_shared" = "yes"; then case "$host_os" in *linux*) AC_DEFINE(LINUX,1,[Whether the host os is linux]) BLDSHARED="true" - LDSHFLAGS="-shared -Wl,-no-undefined" + LDSHFLAGS="-shared" DYNEXP="-Wl,--export-dynamic" PICFLAG="-fPIC" SONAMEFLAG="-Wl,-soname=" -- cgit From e8b4b136669e7e415557956d698c66c254b28ec1 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sat, 22 Mar 2003 10:54:03 +0000 Subject: Fix compile on IA64 by noting that this should be the integer, not a pointer to the integer for SIVAL(). --- source/libsmb/ntlmssp_sign.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libsmb/ntlmssp_sign.c b/source/libsmb/ntlmssp_sign.c index f51d5323198..8f6bd0c6914 100644 --- a/source/libsmb/ntlmssp_sign.c +++ b/source/libsmb/ntlmssp_sign.c @@ -100,7 +100,7 @@ static NTSTATUS ntlmssp_make_packet_signiture(NTLMSSP_CLIENT_STATE *ntlmssp_stat HMACMD5Context ctx; char seq_num[4]; uchar digest[16]; - SIVAL(seq_num, 0, &ntlmssp_state->ntlmssp_seq_num); + SIVAL(seq_num, 0, ntlmssp_state->ntlmssp_seq_num); hmac_md5_init_limK_to_64(ntlmssp_state->cli_sign_const, 16, &ctx); hmac_md5_update(seq_num, 4, &ctx); -- cgit From a7eba37aadeb0b04cb1bd89deddb58be8aba825c Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sat, 22 Mar 2003 13:06:52 +0000 Subject: Small clenaup patches: - safe_string.h - don't assume that __FUNCTION__ is available - process.c - use new workaround from safe_string.h for the same - util.c - Show how many bytes we smb_panic()ed trying to smb_xmalloc() - gencache.c - Keep valgrind quiet by always null terminating. - clistr.c - Add copyright - srvstr.h - move srvstr_push into a .c file again, as a real function. - srvstr.c - revive, with 'safe' checked srvstr_push - loadparm.c - set a default for the display charset. Andrew Bartlett --- source/Makefile.in | 2 +- source/include/safe_string.h | 50 ++++++++++++++++++++++---------------------- source/include/srvstr.h | 3 --- source/lib/gencache.c | 12 +++++------ source/lib/util.c | 4 +++- source/libsmb/clistr.c | 3 ++- source/param/loadparm.c | 3 +++ source/smbd/connection.c | 23 +++++++++----------- source/smbd/process.c | 8 +++---- source/smbd/srvstr.c | 44 ++++++++++++++++++++++++++++++++++++++ 10 files changed, 98 insertions(+), 54 deletions(-) create mode 100644 source/smbd/srvstr.c diff --git a/source/Makefile.in b/source/Makefile.in index 8a405250840..c4bdbe3b111 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -306,7 +306,7 @@ SMBD_OBJ_SRV = smbd/files.o smbd/chgpasswd.o smbd/connection.o \ smbd/message.o smbd/nttrans.o smbd/pipes.o \ smbd/reply.o smbd/sesssetup.o smbd/trans2.o smbd/uid.o \ smbd/dosmode.o smbd/filename.o smbd/open.o smbd/close.o \ - smbd/blocking.o smbd/sec_ctx.o \ + smbd/blocking.o smbd/sec_ctx.o smbd/srvstr.o \ smbd/vfs.o smbd/vfs-wrap.o smbd/statcache.o \ smbd/posix_acls.o lib/sysacls.o lib/server_mutex.o \ smbd/process.o smbd/service.o smbd/error.o \ diff --git a/source/include/safe_string.h b/source/include/safe_string.h index 61ef4bdf966..f26a5785cbd 100644 --- a/source/include/safe_string.h +++ b/source/include/safe_string.h @@ -2,6 +2,7 @@ Unix SMB/CIFS implementation. Safe string handling routines. Copyright (C) Andrew Tridgell 1994-1998 + Copyright (C) Andrew Bartlett 2003 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 @@ -48,6 +49,14 @@ #endif /* !_SPLINT_ */ +#ifdef DEVELOPER +#define SAFE_STRING_FUNCTION_NAME FUNCTION_MACRO +#define SAFE_STRING_LINE __LINE__ +#else +#define SAFE_STRING_FUNCTION_NAME ("") +#define SAFE_STRING_LINE (0) +#endif + /* We need a number of different prototypes for our non-existant fuctions */ char * __unsafe_string_function_usage_here__(void); @@ -141,32 +150,17 @@ size_t __unsafe_string_function_usage_here_char__(void); * long. This is not a good situation, because we can't do the normal * sanity checks. Don't use in new code! */ -#ifdef DEVELOPER -#define overmalloc_safe_strcpy(dest,src,maxlength) safe_strcpy_fn(__FUNCTION__,__LINE__,dest,src,maxlength) -#define safe_strcpy(dest,src,maxlength) safe_strcpy_fn2(__FUNCTION__,__LINE__,dest,src,maxlength) -#define safe_strcat(dest,src,maxlength) safe_strcat_fn2(__FUNCTION__,__LINE__,dest,src,maxlength) -#define push_string(base_ptr, dest, src, dest_len, flags) push_string_fn2(__FUNCTION__, __LINE__, base_ptr, dest, src, dest_len, flags) -#define pull_string(base_ptr, dest, src, dest_len, src_len, flags) pull_string_fn2(__FUNCTION__, __LINE__, base_ptr, dest, src, dest_len, src_len, flags) -#define clistr_push(cli, dest, src, dest_len, flags) clistr_push_fn2(__FUNCTION__, __LINE__, cli, dest, src, dest_len, flags) -#define clistr_pull(cli, dest, src, dest_len, src_len, flags) clistr_pull_fn2(__FUNCTION__, __LINE__, cli, dest, src, dest_len, src_len, flags) - -#define alpha_strcpy(dest,src,other_safe_chars,maxlength) alpha_strcpy_fn(__FUNCTION__,__LINE__,dest,src,other_safe_chars,maxlength) -#define StrnCpy(dest,src,n) StrnCpy_fn(__FUNCTION__,__LINE__,dest,src,n) - -#else - -#define overmalloc_safe_strcpy(dest,src,maxlength) safe_strcpy_fn(NULL,0,dest,src,maxlength) -#define safe_strcpy(dest,src,maxlength) safe_strcpy_fn2(NULL,0,dest,src,maxlength) -#define safe_strcat(dest,src,maxlength) safe_strcat_fn2(NULL,0,dest,src,maxlength) -#define push_string(base_ptr, dest, src, dest_len, flags) push_string_fn2(NULL, 0, base_ptr, dest, src, dest_len, flags) -#define pull_string(base_ptr, dest, src, dest_len, src_len, flags) pull_string_fn2(NULL, 0, base_ptr, dest, src, dest_len, src_len, flags) -#define clistr_push(cli, dest, src, dest_len, flags) clistr_push_fn2(NULL, 0, cli, dest, src, dest_len, flags) -#define clistr_pull(cli, dest, src, dest_len, src_len, flags) clistr_pull_fn2(NULL, 0, cli, dest, src, dest_len, src_len, flags) - -#define alpha_strcpy(dest,src,other_safe_chars,maxlength) alpha_strcpy_fn(NULL,0,dest,src,other_safe_chars,maxlength) -#define StrnCpy(dest,src,n) StrnCpy_fn(NULL,0,dest,src,n) -#endif /* DEVELOPER */ +#define overmalloc_safe_strcpy(dest,src,maxlength) safe_strcpy_fn(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE,dest,src,maxlength) +#define safe_strcpy(dest,src,maxlength) safe_strcpy_fn2(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE,dest,src,maxlength) +#define safe_strcat(dest,src,maxlength) safe_strcat_fn2(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE,dest,src,maxlength) +#define push_string(base_ptr, dest, src, dest_len, flags) push_string_fn2(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, base_ptr, dest, src, dest_len, flags) +#define pull_string(base_ptr, dest, src, dest_len, src_len, flags) pull_string_fn2(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, base_ptr, dest, src, dest_len, src_len, flags) +#define clistr_push(cli, dest, src, dest_len, flags) clistr_push_fn2(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, cli, dest, src, dest_len, flags) +#define clistr_pull(cli, dest, src, dest_len, src_len, flags) clistr_pull_fn2(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, cli, dest, src, dest_len, src_len, flags) +#define srvstr_push(base_ptr, dest, src, dest_len, flags) srvstr_push_fn2(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, base_ptr, dest, src, dest_len, flags) +#define alpha_strcpy(dest,src,other_safe_chars,maxlength) alpha_strcpy_fn(SAFE_STRING_FUNCTION_NAME,SAFE_STRING_LINE,dest,src,other_safe_chars,maxlength) +#define StrnCpy(dest,src,n) StrnCpy_fn(SAFE_STRING_FUNCTION_NAME,SAFE_STRING_LINE,dest,src,n) #ifdef HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS @@ -204,6 +198,11 @@ size_t __unsafe_string_function_usage_here_char__(void); ? __unsafe_string_function_usage_here_size_t__() \ : clistr_pull_fn(fn_name, fn_line, cli, dest, src, dest_len, srclen, flags)) +#define srvstr_push_fn2(fn_name, fn_line, base_ptr, dest, src, dest_len, flags) \ + (CHECK_STRING_SIZE(dest, dest_len) \ + ? __unsafe_string_function_usage_here_size_t__() \ + : srvstr_push_fn(fn_name, fn_line, base_ptr, dest, src, dest_len, flags)) + #else #define safe_strcpy_fn2 safe_strcpy_fn @@ -212,6 +211,7 @@ size_t __unsafe_string_function_usage_here_char__(void); #define pull_string_fn2 pull_string_fn #define clistr_push_fn2 clistr_push_fn #define clistr_pull_fn2 clistr_pull_fn +#define srvstr_push_fn2 srvstr_push_fn #endif diff --git a/source/include/srvstr.h b/source/include/srvstr.h index a433e0e3f9b..04db59cf012 100644 --- a/source/include/srvstr.h +++ b/source/include/srvstr.h @@ -20,9 +20,6 @@ #include "includes.h" -#define srvstr_push(base_ptr, dest, src, dest_len, flags) \ - push_string(base_ptr, dest, src, dest_len, flags) - #define srvstr_pull(base_ptr, dest, src, dest_len, src_len, flags) \ pull_string(base_ptr, dest, src, dest_len, src_len, flags) diff --git a/source/lib/gencache.c b/source/lib/gencache.c index 5c8ad1339b2..eb0e0cd808f 100644 --- a/source/lib/gencache.c +++ b/source/lib/gencache.c @@ -115,9 +115,9 @@ BOOL gencache_set(const char *keystr, const char *value, time_t timeout) asprintf(&valstr, CACHE_DATA_FMT, (int)timeout, value); keybuf.dptr = strdup(keystr); - keybuf.dsize = strlen(keystr); + keybuf.dsize = strlen(keystr)+1; databuf.dptr = strdup(valstr); - databuf.dsize = strlen(valstr); + databuf.dsize = strlen(valstr)+1; DEBUG(10, ("Adding cache entry with key = %s; value = %s and timeout \ = %s (%d seconds %s)\n", keybuf.dptr, value, ctime(&timeout), (int)(timeout - time(NULL)), timeout > time(NULL) ? "ahead" : "in the past")); @@ -167,9 +167,9 @@ BOOL gencache_set_only(const char *keystr, const char *valstr, time_t timeout) asprintf(&datastr, CACHE_DATA_FMT, (int)timeout, valstr); keybuf.dptr = strdup(keystr); - keybuf.dsize = strlen(keystr); + keybuf.dsize = strlen(keystr)+1; databuf.dptr = strdup(datastr); - databuf.dsize = strlen(datastr); + databuf.dsize = strlen(datastr)+1; DEBUGADD(10, ("New value = %s, new timeout = %s (%d seconds %s)", valstr, ctime(&timeout), (int)(timeout - time(NULL)), timeout > time(NULL) ? "ahead" : "in the past")); @@ -206,7 +206,7 @@ BOOL gencache_del(const char *keystr) if (!gencache_init()) return False; keybuf.dptr = strdup(keystr); - keybuf.dsize = strlen(keystr); + keybuf.dsize = strlen(keystr)+1; DEBUG(10, ("Deleting cache entry (key = %s)\n", keystr)); ret = tdb_delete(cache, keybuf); @@ -239,7 +239,7 @@ BOOL gencache_get(const char *keystr, char **valstr, time_t *timeout) return False; keybuf.dptr = strdup(keystr); - keybuf.dsize = strlen(keystr); + keybuf.dsize = strlen(keystr)+1; databuf = tdb_fetch(cache, keybuf); if (databuf.dptr && databuf.dsize > TIMEOUT_LEN) { diff --git a/source/lib/util.c b/source/lib/util.c index 42163103359..4f564b332a0 100644 --- a/source/lib/util.c +++ b/source/lib/util.c @@ -2089,8 +2089,10 @@ void *smb_xmalloc(size_t size) void *p; if (size == 0) smb_panic("smb_xmalloc: called with zero size.\n"); - if ((p = malloc(size)) == NULL) + if ((p = malloc(size)) == NULL) { + DEBUG(0, ("smb_xmalloc() failed to allocate %lu bytes\n", (unsigned long)size)); smb_panic("smb_xmalloc: malloc fail.\n"); + } return p; } diff --git a/source/libsmb/clistr.c b/source/libsmb/clistr.c index 97a3fa6cc99..c61445c0735 100644 --- a/source/libsmb/clistr.c +++ b/source/libsmb/clistr.c @@ -2,7 +2,8 @@ Unix SMB/CIFS implementation. client string routines Copyright (C) Andrew Tridgell 2001 - + Copyright (C) Andrew Bartlett 2003 + 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 diff --git a/source/param/loadparm.c b/source/param/loadparm.c index 6baaafbd9c7..f8a19905137 100644 --- a/source/param/loadparm.c +++ b/source/param/loadparm.c @@ -1285,6 +1285,9 @@ static void init_globals(void) /* using UTF8 by default allows us to support all chars */ string_set(&Globals.unix_charset, "UTF8"); + /* using UTF8 by default allows us to support all chars */ + string_set(&Globals.display_charset, "ASCII"); + /* Use codepage 850 as a default for the dos character set */ string_set(&Globals.dos_charset, "CP850"); diff --git a/source/smbd/connection.c b/source/smbd/connection.c index a7636e889e3..ff6974cade1 100644 --- a/source/smbd/connection.c +++ b/source/smbd/connection.c @@ -35,15 +35,12 @@ TDB_CONTEXT *conn_tdb_ctx(void) return tdb; } -static void make_conn_key(connection_struct *conn, const char *name, TDB_DATA *pkbuf, struct connections_key *pkey) +static void make_conn_key(connection_struct *conn, const char *name, TDB_DATA *pkbuf, fstring tdb_key) { - ZERO_STRUCTP(pkey); - pkey->pid = sys_getpid(); - pkey->cnum = conn?conn->cnum:-1; - fstrcpy(pkey->name, name); + snprintf(tdb_key, sizeof(fstring), "CONN/%lu/%ld", sys_getpid(), conn?conn->cnum:-1); - pkbuf->dptr = (char *)pkey; - pkbuf->dsize = sizeof(*pkey); + pkbuf->dptr = tdb_key; + pkbuf->dsize = strlen(tdb_key)+1; } /**************************************************************************** @@ -52,7 +49,7 @@ static void make_conn_key(connection_struct *conn, const char *name, TDB_DATA *p BOOL yield_connection(connection_struct *conn, const char *name) { - struct connections_key key; + fstring tdb_key; TDB_DATA kbuf; if (!tdb) @@ -60,7 +57,7 @@ BOOL yield_connection(connection_struct *conn, const char *name) DEBUG(3,("Yielding connection to %s\n",name)); - make_conn_key(conn, name, &kbuf, &key); + make_conn_key(conn, name, &kbuf, tdb_key); if (tdb_delete(tdb, kbuf) != 0) { int dbg_lvl = (!conn && (tdb_error(tdb) == TDB_ERR_NOEXIST)) ? 3 : 0; @@ -171,14 +168,14 @@ BOOL claim_connection(connection_struct *conn, const char *name,int max_connecti if (conn) { crec.uid = conn->uid; crec.gid = conn->gid; - StrnCpy(crec.name, - lp_servicename(SNUM(conn)),sizeof(crec.name)-1); + safe_strcpy(crec.name, + lp_servicename(SNUM(conn)),sizeof(crec.name)-1); } crec.start = time(NULL); crec.bcast_msg_flags = msg_flags; - StrnCpy(crec.machine,get_remote_machine_name(),sizeof(crec.machine)-1); - StrnCpy(crec.addr,conn?conn->client_address:client_addr(),sizeof(crec.addr)-1); + safe_strcpy(crec.machine,get_remote_machine_name(),sizeof(crec.machine)-1); + safe_strcpy(crec.addr,conn?conn->client_address:client_addr(),sizeof(crec.addr)-1); dbuf.dptr = (char *)&crec; dbuf.dsize = sizeof(crec); diff --git a/source/smbd/process.c b/source/smbd/process.c index c3fbc22e944..16ef30c46c8 100644 --- a/source/smbd/process.c +++ b/source/smbd/process.c @@ -1256,8 +1256,8 @@ void smbd_process(void) if ((InBuffer == NULL) || (OutBuffer == NULL)) return; - clobber_region(__FUNCTION__, __LINE__, InBuffer, total_buffer_size); - clobber_region(__FUNCTION__, __LINE__, OutBuffer, total_buffer_size); + clobber_region(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, InBuffer, total_buffer_size); + clobber_region(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, OutBuffer, total_buffer_size); max_recv = MIN(lp_maxxmit(),BUFFER_SIZE); @@ -1282,7 +1282,7 @@ void smbd_process(void) num_smbs = 0; /* Reset smb counter. */ } - clobber_region(__FUNCTION__, __LINE__, InBuffer, total_buffer_size); + clobber_region(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, InBuffer, total_buffer_size); while (!receive_message_or_smb(InBuffer,BUFFER_SIZE+LARGE_WRITEX_HDR_SIZE,select_timeout)) { if(!timeout_processing( deadtime, &select_timeout, &last_timeout_processing_time)) @@ -1301,7 +1301,7 @@ void smbd_process(void) */ num_echos = smb_echo_count; - clobber_region(__FUNCTION__, __LINE__, OutBuffer, total_buffer_size); + clobber_region(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, OutBuffer, total_buffer_size); process_smb(InBuffer, OutBuffer); diff --git a/source/smbd/srvstr.c b/source/smbd/srvstr.c new file mode 100644 index 00000000000..409fd30a679 --- /dev/null +++ b/source/smbd/srvstr.c @@ -0,0 +1,44 @@ +/* + Unix SMB/CIFS implementation. + server specific string routines + Copyright (C) Andrew Tridgell 2001 + Copyright (C) Andrew Bartlett 2003 + + 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. +*/ + +#include "includes.h" +extern int max_send; + +/* Make sure we can't write a string past the end of the buffer */ + +size_t srvstr_push_fn(const char *function, unsigned int line, + const char *base_ptr, void *dest, + const char *src, int dest_len, int flags) +{ + size_t buf_used = PTR_DIFF(dest, base_ptr); + if (dest_len == -1) { + if (((ptrdiff_t)dest < (ptrdiff_t)base_ptr) || (buf_used > (size_t)max_send)) { +#if 0 + DEBUG(0, ("Pushing string of 'unlimited' length into non-SMB buffer!\n")); +#endif + return push_string_fn(function, line, base_ptr, dest, src, -1, flags); + } + return push_string_fn(function, line, base_ptr, dest, src, max_send - buf_used, flags); + } + + /* 'normal' push into size-specified buffer */ + return push_string_fn(function, line, base_ptr, dest, src, dest_len, flags); +} -- cgit From 3cddfe211da812a533611eecba5d5da55fd3cf2d Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sat, 22 Mar 2003 13:41:16 +0000 Subject: Revert bogus part of previous patch. --- source/smbd/connection.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/source/smbd/connection.c b/source/smbd/connection.c index ff6974cade1..5547309a818 100644 --- a/source/smbd/connection.c +++ b/source/smbd/connection.c @@ -35,12 +35,15 @@ TDB_CONTEXT *conn_tdb_ctx(void) return tdb; } -static void make_conn_key(connection_struct *conn, const char *name, TDB_DATA *pkbuf, fstring tdb_key) +static void make_conn_key(connection_struct *conn, const char *name, TDB_DATA *pkbuf, struct connections_key *pkey) { - snprintf(tdb_key, sizeof(fstring), "CONN/%lu/%ld", sys_getpid(), conn?conn->cnum:-1); + ZERO_STRUCTP(pkey); + pkey->pid = sys_getpid(); + pkey->cnum = conn?conn->cnum:-1; + fstrcpy(pkey->name, name); - pkbuf->dptr = tdb_key; - pkbuf->dsize = strlen(tdb_key)+1; + pkbuf->dptr = (char *)pkey; + pkbuf->dsize = sizeof(*pkey); } /**************************************************************************** @@ -49,7 +52,7 @@ static void make_conn_key(connection_struct *conn, const char *name, TDB_DATA *p BOOL yield_connection(connection_struct *conn, const char *name) { - fstring tdb_key; + struct connections_key key; TDB_DATA kbuf; if (!tdb) @@ -57,7 +60,7 @@ BOOL yield_connection(connection_struct *conn, const char *name) DEBUG(3,("Yielding connection to %s\n",name)); - make_conn_key(conn, name, &kbuf, tdb_key); + make_conn_key(conn, name, &kbuf, &key); if (tdb_delete(tdb, kbuf) != 0) { int dbg_lvl = (!conn && (tdb_error(tdb) == TDB_ERR_NOEXIST)) ? 3 : 0; -- cgit From f7149cf500d2b10ee72163c018a39fdd192d7632 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sat, 22 Mar 2003 19:15:50 +0000 Subject: This changes the way we do LDAP updates. We don't use LDAP_MOD_MODIFY anymore, but instead look at what is currently stored in the database. Then we explicitly delete the existing attribute and add the new value if it is not NULL or "". This way we can handle appearing and disappearing attributes quite nicely. This currently breaks pdbedit -o, as this does not set the CHANGED flag on the SAM_ACCOUNT. Jelmer suggested that we set all the fields on CHANGED in context_add_sam_account. This sounds not too unreasonable. Volker --- source/passdb/pdb_ldap.c | 296 ++++++++++++++++++++++++++++------------------- 1 file changed, 175 insertions(+), 121 deletions(-) diff --git a/source/passdb/pdb_ldap.c b/source/passdb/pdb_ldap.c index 375fbeacc51..7cb092a9bc7 100644 --- a/source/passdb/pdb_ldap.c +++ b/source/passdb/pdb_ldap.c @@ -1158,8 +1158,10 @@ static BOOL init_sam_from_ldap (struct ldapsam_privates *ldap_state, * that fits your needs; using cn then displayName rather than 'userFullName' */ - if (!get_single_attribute(ldap_state->ldap_struct, entry, "cn", fullname)) { - if (!get_single_attribute(ldap_state->ldap_struct, entry, "displayName", fullname)) { + if (!get_single_attribute(ldap_state->ldap_struct, entry, + "displayName", fullname)) { + if (!get_single_attribute(ldap_state->ldap_struct, entry, + "cn", fullname)) { /* leave as default */ } else { pdb_set_fullname(sampass, fullname, PDB_SET); @@ -1279,14 +1281,68 @@ static BOOL need_ldap_mod(BOOL pdb_add, const SAM_ACCOUNT * sampass, enum pdb_el } } +/********************************************************************** + Set attribute to newval in LDAP, regardless of what value the + attribute had in LDAP before. +*********************************************************************/ +static void make_ldap_mod(LDAP *ldap_struct, LDAPMessage *existing, + LDAPMod ***mods, + const SAM_ACCOUNT *sampass, + enum pdb_elements element, + const char *attribute, const char *newval) +{ + char **values = NULL; + + if (!IS_SAM_CHANGED(sampass, element)) { + return; + } + + if (existing != NULL) { + values = ldap_get_values(ldap_struct, existing, attribute); + } + + if ((values != NULL) && (values[0] != NULL) && + strcmp(values[0], newval) == 0) { + + /* Believe it or not, but LDAP will deny a delete and + an add at the same time if the values are the + same... */ + + ldap_value_free(values); + return; + } + + /* Regardless of the real operation (add or modify) + we add the new value here. We rely on deleting + the old value, should it exist. */ + + if ((newval != NULL) && (strlen(newval) > 0)) { + make_a_mod(mods, LDAP_MOD_ADD, attribute, newval); + } + + if (values == NULL) { + /* There has been no value before, so don't delete it. + Here's a possible race: We might end up with + duplicate attributes */ + return; + } + + /* By deleting exactly the value we found in the entry this + should be race-free in the sense that the LDAP-Server will + deny the complete operation if somebody changed the + attribute behind our back. */ + + make_a_mod(mods, LDAP_MOD_DELETE, attribute, values[0]); + ldap_value_free(values); +} + /********************************************************************** Initialize SAM_ACCOUNT from an LDAP query (Based on init_buffer_from_sam in pdb_tdb.c) *********************************************************************/ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, - LDAPMod *** mods, int ldap_op, - BOOL pdb_add, - const SAM_ACCOUNT * sampass) + LDAPMessage *existing, + LDAPMod *** mods, const SAM_ACCOUNT * sampass) { pstring temp; uint32 rid; @@ -1302,139 +1358,136 @@ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, * took out adding "objectclass: sambaAccount" * do this on a per-mod basis */ - if (need_ldap_mod(pdb_add, sampass, PDB_USERNAME)) { - make_a_mod(mods, ldap_op, "uid", pdb_get_username(sampass)); - DEBUG(2, ("Setting entry for user: %s\n", pdb_get_username(sampass))); - } - - if ((rid = pdb_get_user_rid(sampass))!=0 ) { - if (need_ldap_mod(pdb_add, sampass, PDB_USERSID)) { - slprintf(temp, sizeof(temp) - 1, "%i", rid); - make_a_mod(mods, ldap_op, "rid", temp); - } - } else if (!IS_SAM_DEFAULT(sampass, PDB_UID)) { + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_USERNAME, "uid", pdb_get_username(sampass)); + DEBUG(2, ("Setting entry for user: %s\n", pdb_get_username(sampass))); + + rid = pdb_get_user_rid(sampass); + + if ( (rid==0) && (!IS_SAM_DEFAULT(sampass, PDB_UID)) ) { rid = fallback_pdb_uid_to_user_rid(pdb_get_uid(sampass)); - slprintf(temp, sizeof(temp) - 1, "%i", rid); - make_a_mod(mods, ldap_op, "rid", temp); } else if (ldap_state->permit_non_unix_accounts) { rid = ldapsam_get_next_available_nua_rid(ldap_state); if (rid == 0) { - DEBUG(0, ("NO user RID specified on account %s, and findining next available NUA RID failed, cannot store!\n", pdb_get_username(sampass))); + DEBUG(0, ("NO user RID specified on account %s, and " + "findining next available NUA RID failed, " + "cannot store!\n", + pdb_get_username(sampass))); + ldap_mods_free(*mods, 1); return False; } - slprintf(temp, sizeof(temp) - 1, "%i", rid); - make_a_mod(mods, ldap_op, "rid", temp); } else { - DEBUG(0, ("NO user RID specified on account %s, cannot store!\n", pdb_get_username(sampass))); + DEBUG(0, ("NO user RID specified on account %s, " + "cannot store!\n", pdb_get_username(sampass))); + ldap_mods_free(*mods, 1); return False; } + slprintf(temp, sizeof(temp) - 1, "%i", rid); + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_USERSID, "rid", temp); - if ((rid = pdb_get_group_rid(sampass))!=0 ) { - if (need_ldap_mod(pdb_add, sampass, PDB_GROUPSID)) { - slprintf(temp, sizeof(temp) - 1, "%i", rid); - make_a_mod(mods, ldap_op, "primaryGroupID", temp); - } - } else if (!IS_SAM_DEFAULT(sampass, PDB_GID)) { + rid = pdb_get_group_rid(sampass); + + if ( (rid==0) && (!IS_SAM_DEFAULT(sampass, PDB_GID)) ) { rid = pdb_gid_to_group_rid(pdb_get_gid(sampass)); - slprintf(temp, sizeof(temp) - 1, "%i", rid); - make_a_mod(mods, ldap_op, "primaryGroupID", temp); } else if (ldap_state->permit_non_unix_accounts) { rid = DOMAIN_GROUP_RID_USERS; - slprintf(temp, sizeof(temp) - 1, "%i", rid); - make_a_mod(mods, ldap_op, "primaryGroupID", temp); } else { - DEBUG(0, ("NO group RID specified on account %s, cannot store!\n", pdb_get_username(sampass))); + DEBUG(0, ("NO group RID specified on account %s, " + "cannot store!\n", pdb_get_username(sampass))); + ldap_mods_free(*mods, 1); return False; } + slprintf(temp, sizeof(temp) - 1, "%i", rid); + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_GROUPSID, "primaryGroupID", temp); /* displayName, cn, and gecos should all be the same * most easily accomplished by giving them the same OID * gecos isn't set here b/c it should be handled by the * add-user script - */ - if (need_ldap_mod(pdb_add, sampass, PDB_FULLNAME)) { - make_a_mod(mods, ldap_op, "displayName", pdb_get_fullname(sampass)); - make_a_mod(mods, ldap_op, "cn", pdb_get_fullname(sampass)); - } - if (need_ldap_mod(pdb_add, sampass, PDB_ACCTDESC)) { - make_a_mod(mods, ldap_op, "description", pdb_get_acct_desc(sampass)); - } - if (need_ldap_mod(pdb_add, sampass, PDB_WORKSTATIONS)) { - make_a_mod(mods, ldap_op, "userWorkstations", pdb_get_workstations(sampass)); - } - /* - * Only updates fields which have been set (not defaults from smb.conf) + * We change displayName only and fall back to cn if + * it does not exist. */ - if (need_ldap_mod(pdb_add, sampass, PDB_SMBHOME)) { - make_a_mod(mods, ldap_op, "smbHome", pdb_get_homedir(sampass)); - } + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_FULLNAME, "displayName", + pdb_get_fullname(sampass)); + + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_ACCTDESC, "description", + pdb_get_acct_desc(sampass)); + + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_WORKSTATIONS, "userWorkstations", + pdb_get_workstations(sampass)); + + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_SMBHOME, "smbHome", + pdb_get_homedir(sampass)); - if (need_ldap_mod(pdb_add, sampass, PDB_DRIVE)) { - make_a_mod(mods, ldap_op, "homeDrive", pdb_get_dir_drive(sampass)); - } - - if (need_ldap_mod(pdb_add, sampass, PDB_LOGONSCRIPT)) { - make_a_mod(mods, ldap_op, "scriptPath", pdb_get_logon_script(sampass)); - } - - if (need_ldap_mod(pdb_add, sampass, PDB_PROFILE)) - make_a_mod(mods, ldap_op, "profilePath", pdb_get_profile_path(sampass)); + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_DRIVE, "homeDrive", + pdb_get_dir_drive(sampass)); - if (need_ldap_mod(pdb_add, sampass, PDB_LOGONTIME)) { - slprintf(temp, sizeof(temp) - 1, "%li", pdb_get_logon_time(sampass)); - make_a_mod(mods, ldap_op, "logonTime", temp); - } + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_LOGONSCRIPT, "scriptPath", + pdb_get_logon_script(sampass)); - if (need_ldap_mod(pdb_add, sampass, PDB_LOGOFFTIME)) { - slprintf(temp, sizeof(temp) - 1, "%li", pdb_get_logoff_time(sampass)); - make_a_mod(mods, ldap_op, "logoffTime", temp); - } + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_PROFILE, "profilePath", + pdb_get_profile_path(sampass)); - if (need_ldap_mod(pdb_add, sampass, PDB_KICKOFFTIME)) { - slprintf (temp, sizeof (temp) - 1, "%li", pdb_get_kickoff_time(sampass)); - make_a_mod(mods, ldap_op, "kickoffTime", temp); - } + slprintf(temp, sizeof(temp) - 1, "%li", pdb_get_logon_time(sampass)); + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_LOGONTIME, "logonTime", temp); + slprintf(temp, sizeof(temp) - 1, "%li", pdb_get_logoff_time(sampass)); + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_LOGOFFTIME, "logoffTime", temp); - if (need_ldap_mod(pdb_add, sampass, PDB_CANCHANGETIME)) { - slprintf (temp, sizeof (temp) - 1, "%li", pdb_get_pass_can_change_time(sampass)); - make_a_mod(mods, ldap_op, "pwdCanChange", temp); - } + slprintf (temp, sizeof (temp) - 1, "%li", + pdb_get_kickoff_time(sampass)); + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_KICKOFFTIME, "kickoffTime", temp); - if (need_ldap_mod(pdb_add, sampass, PDB_MUSTCHANGETIME)) { - slprintf (temp, sizeof (temp) - 1, "%li", pdb_get_pass_must_change_time(sampass)); - make_a_mod(mods, ldap_op, "pwdMustChange", temp); - } + slprintf (temp, sizeof (temp) - 1, "%li", + pdb_get_pass_can_change_time(sampass)); + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_CANCHANGETIME, "pwdCanChange", temp); + + slprintf (temp, sizeof (temp) - 1, "%li", + pdb_get_pass_must_change_time(sampass)); + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_MUSTCHANGETIME, "pwdMustChange", temp); if ((pdb_get_acct_ctrl(sampass)&(ACB_WSTRUST|ACB_SVRTRUST|ACB_DOMTRUST))|| - (lp_ldap_passwd_sync()!=LDAP_PASSWD_SYNC_ONLY)) { + (lp_ldap_passwd_sync()!=LDAP_PASSWD_SYNC_ONLY)) { - if (need_ldap_mod(pdb_add, sampass, PDB_LMPASSWD)) { - pdb_sethexpwd (temp, pdb_get_lanman_passwd(sampass), pdb_get_acct_ctrl(sampass)); - make_a_mod (mods, ldap_op, "lmPassword", temp); - } - - if (need_ldap_mod(pdb_add, sampass, PDB_NTPASSWD)) { - pdb_sethexpwd (temp, pdb_get_nt_passwd(sampass), pdb_get_acct_ctrl(sampass)); - make_a_mod (mods, ldap_op, "ntPassword", temp); - } - - if (need_ldap_mod(pdb_add, sampass, PDB_PASSLASTSET)) { - slprintf (temp, sizeof (temp) - 1, "%li", pdb_get_pass_last_set_time(sampass)); - make_a_mod(mods, ldap_op, "pwdLastSet", temp); - } + pdb_sethexpwd (temp, pdb_get_lanman_passwd(sampass), + pdb_get_acct_ctrl(sampass)); + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_LMPASSWD, "lmPassword", temp); + + pdb_sethexpwd (temp, pdb_get_nt_passwd(sampass), + pdb_get_acct_ctrl(sampass)); + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_NTPASSWD, "ntPassword", temp); + + slprintf (temp, sizeof (temp) - 1, "%li", + pdb_get_pass_last_set_time(sampass)); + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_PASSLASTSET, "pwdLastSet", temp); } /* FIXME: Hours stuff goes in LDAP */ - if (need_ldap_mod(pdb_add, sampass, PDB_ACCTCTRL)) { - make_a_mod (mods, ldap_op, "acctFlags", pdb_encode_acct_ctrl (pdb_get_acct_ctrl(sampass), - NEW_PW_FORMAT_SPACE_PADDED_LEN)); - } - + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + PDB_ACCTCTRL, "acctFlags", + pdb_encode_acct_ctrl (pdb_get_acct_ctrl(sampass), + NEW_PW_FORMAT_SPACE_PADDED_LEN)); return True; } @@ -1890,46 +1943,46 @@ static NTSTATUS ldapsam_update_sam_account(struct pdb_methods *my_methods, SAM_A LDAPMessage *entry; LDAPMod **mods; - if (!init_ldap_from_sam(ldap_state, &mods, LDAP_MOD_REPLACE, False, newpwd)) { - DEBUG(0, ("ldapsam_update_sam_account: init_ldap_from_sam failed!\n")); - return NT_STATUS_UNSUCCESSFUL; - } - - if (mods == NULL) { - DEBUG(4,("mods is empty: nothing to update for user: %s\n",pdb_get_username(newpwd))); - return NT_STATUS_OK; - } - rc = ldapsam_search_one_user_by_name(ldap_state, pdb_get_username(newpwd), &result); if (rc != LDAP_SUCCESS) { - ldap_mods_free(mods, 1); return NT_STATUS_UNSUCCESSFUL; } if (ldap_count_entries(ldap_state->ldap_struct, result) == 0) { DEBUG(0, ("No user to modify!\n")); ldap_msgfree(result); - ldap_mods_free(mods, 1); return NT_STATUS_UNSUCCESSFUL; } entry = ldap_first_entry(ldap_state->ldap_struct, result); dn = ldap_get_dn(ldap_state->ldap_struct, entry); + + if (!init_ldap_from_sam(ldap_state, entry, &mods, newpwd)) { + DEBUG(0, ("ldapsam_update_sam_account: init_ldap_from_sam failed!\n")); + ldap_msgfree(result); + return NT_STATUS_UNSUCCESSFUL; + } + ldap_msgfree(result); + if (mods == NULL) { + DEBUG(4,("mods is empty: nothing to update for user: %s\n", + pdb_get_username(newpwd))); + ldap_mods_free(mods, 1); + return NT_STATUS_OK; + } + ret = ldapsam_modify_entry(my_methods,newpwd,dn,mods,LDAP_MOD_REPLACE, False); + ldap_mods_free(mods,1); + if (NT_STATUS_IS_ERR(ret)) { DEBUG(0,("failed to modify user with uid = %s\n", pdb_get_username(newpwd))); - ldap_mods_free(mods,1); return ret; } - - DEBUG(2, - ("successfully modified uid = %s in the LDAP database\n", - pdb_get_username(newpwd))); - ldap_mods_free(mods, 1); + DEBUG(2, ("successfully modified uid = %s in the LDAP database\n", + pdb_get_username(newpwd))); return NT_STATUS_OK; } @@ -1943,6 +1996,7 @@ static NTSTATUS ldapsam_add_sam_account(struct pdb_methods *my_methods, SAM_ACCO int rc; pstring filter; LDAPMessage *result = NULL; + LDAPMessage *entry = NULL; pstring dn; LDAPMod **mods = NULL; int ldap_op; @@ -1984,7 +2038,6 @@ static NTSTATUS ldapsam_add_sam_account(struct pdb_methods *my_methods, SAM_ACCO /* Check if we need to update an existing entry */ if (num_result == 1) { char *tmp; - LDAPMessage *entry; DEBUG(3,("User exists without samba properties: adding them\n")); ldap_op = LDAP_MOD_REPLACE; @@ -2003,14 +2056,15 @@ static NTSTATUS ldapsam_add_sam_account(struct pdb_methods *my_methods, SAM_ACCO } } - ldap_msgfree(result); - - if (!init_ldap_from_sam(ldap_state, &mods, ldap_op, True, newpwd)) { + if (!init_ldap_from_sam(ldap_state, entry, &mods, newpwd)) { DEBUG(0, ("ldapsam_add_sam_account: init_ldap_from_sam failed!\n")); + ldap_msgfree(result); ldap_mods_free(mods, 1); return NT_STATUS_UNSUCCESSFUL; } + ldap_msgfree(result); + if (mods == NULL) { DEBUG(0,("mods is empty: nothing to add for user: %s\n",pdb_get_username(newpwd))); return NT_STATUS_UNSUCCESSFUL; -- cgit From b757a4374832d76500a889e4785622320881018d Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 22 Mar 2003 19:39:31 +0000 Subject: Don't use errno's when they're not available --- source/libsmb/clierror.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/source/libsmb/clierror.c b/source/libsmb/clierror.c index 38899760704..4f80f274d98 100644 --- a/source/libsmb/clierror.c +++ b/source/libsmb/clierror.c @@ -232,12 +232,19 @@ static struct { {NT_STATUS_NOT_IMPLEMENTED, ENOSYS}, {NT_STATUS_IN_PAGE_ERROR, EFAULT}, {NT_STATUS_PAGEFILE_QUOTA, EDQUOT}, +#ifdef ETIME {NT_STATUS_TIMER_NOT_CANCELED, ETIME}, +#endif {NT_STATUS_INVALID_PARAMETER, EINVAL}, {NT_STATUS_NO_SUCH_DEVICE, ENODEV}, {NT_STATUS_NO_SUCH_FILE, ENOENT}, +#ifdef ENODATA {NT_STATUS_END_OF_FILE, ENODATA}, +#endif +#ifdef ENOMEDIUM {NT_STATUS_NO_MEDIA_IN_DEVICE, ENOMEDIUM}, + {NT_STATUS_NO_MEDIA, ENOMEDIUM}, +#endif {NT_STATUS_NONEXISTENT_SECTOR, ESPIPE}, {NT_STATUS_NO_MEMORY, ENOMEM}, {NT_STATUS_CONFLICTING_ADDRESSES, EADDRINUSE}, @@ -270,13 +277,16 @@ static struct { {NT_STATUS_TOO_MANY_LINKS, EMLINK}, {NT_STATUS_NETWORK_BUSY, EBUSY}, {NT_STATUS_DEVICE_DOES_NOT_EXIST, ENODEV}, +#ifdef ELIBACC {NT_STATUS_DLL_NOT_FOUND, ELIBACC}, +#endif {NT_STATUS_PIPE_BROKEN, EPIPE}, {NT_STATUS_REMOTE_NOT_LISTENING, ECONNREFUSED}, {NT_STATUS_NETWORK_ACCESS_DENIED, EACCES}, {NT_STATUS_TOO_MANY_OPENED_FILES, EMFILE}, +#ifdef EPROTO {NT_STATUS_DEVICE_PROTOCOL_ERROR, EPROTO}, - {NT_STATUS_NO_MEDIA, ENOMEDIUM}, +#endif {NT_STATUS_FLOAT_OVERFLOW, ERANGE}, {NT_STATUS_FLOAT_UNDERFLOW, ERANGE}, {NT_STATUS_INTEGER_OVERFLOW, ERANGE}, @@ -292,15 +302,19 @@ static struct { {NT_STATUS_REMOTE_DISCONNECT, ESHUTDOWN}, {NT_STATUS_CONNECTION_DISCONNECTED, ECONNABORTED}, {NT_STATUS_CONNECTION_RESET, ENETRESET}, +#ifdef ENOTUNIQ {NT_STATUS_IP_ADDRESS_CONFLICT1, ENOTUNIQ}, {NT_STATUS_IP_ADDRESS_CONFLICT2, ENOTUNIQ}, +#endif {NT_STATUS_PORT_MESSAGE_TOO_LONG, EMSGSIZE}, {NT_STATUS_PROTOCOL_UNREACHABLE, ENOPROTOOPT}, {NT_STATUS_ADDRESS_ALREADY_EXISTS, EADDRINUSE}, {NT_STATUS_PORT_UNREACHABLE, EHOSTUNREACH}, {NT_STATUS_IO_TIMEOUT, ETIMEDOUT}, {NT_STATUS_RETRY, EAGAIN}, +#ifdef ECOMM {NT_STATUS_NET_WRITE_FAULT, ECOMM}, +#endif {NT_STATUS(0), 0} }; -- cgit From 582a34efbe3c1570b852c93318ff6002954ddf6a Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sat, 22 Mar 2003 20:48:47 +0000 Subject: Never touch complicated if/else/elsif structures :-) This repairs domain join with fully existing wks-account which I broke with my last patch... Volker --- source/passdb/pdb_ldap.c | 50 ++++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/source/passdb/pdb_ldap.c b/source/passdb/pdb_ldap.c index 7cb092a9bc7..9eab2863daf 100644 --- a/source/passdb/pdb_ldap.c +++ b/source/passdb/pdb_ldap.c @@ -1364,23 +1364,25 @@ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, rid = pdb_get_user_rid(sampass); - if ( (rid==0) && (!IS_SAM_DEFAULT(sampass, PDB_UID)) ) { - rid = fallback_pdb_uid_to_user_rid(pdb_get_uid(sampass)); - } else if (ldap_state->permit_non_unix_accounts) { - rid = ldapsam_get_next_available_nua_rid(ldap_state); - if (rid == 0) { - DEBUG(0, ("NO user RID specified on account %s, and " - "findining next available NUA RID failed, " - "cannot store!\n", - pdb_get_username(sampass))); + if (rid == 0) { + if (!IS_SAM_DEFAULT(sampass, PDB_UID)) { + rid = fallback_pdb_uid_to_user_rid(pdb_get_uid(sampass)); + } else if (ldap_state->permit_non_unix_accounts) { + rid = ldapsam_get_next_available_nua_rid(ldap_state); + if (rid == 0) { + DEBUG(0, ("NO user RID specified on account %s, and " + "findining next available NUA RID failed, " + "cannot store!\n", + pdb_get_username(sampass))); + ldap_mods_free(*mods, 1); + return False; + } + } else { + DEBUG(0, ("NO user RID specified on account %s, " + "cannot store!\n", pdb_get_username(sampass))); ldap_mods_free(*mods, 1); return False; } - } else { - DEBUG(0, ("NO user RID specified on account %s, " - "cannot store!\n", pdb_get_username(sampass))); - ldap_mods_free(*mods, 1); - return False; } slprintf(temp, sizeof(temp) - 1, "%i", rid); @@ -1390,15 +1392,17 @@ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, rid = pdb_get_group_rid(sampass); - if ( (rid==0) && (!IS_SAM_DEFAULT(sampass, PDB_GID)) ) { - rid = pdb_gid_to_group_rid(pdb_get_gid(sampass)); - } else if (ldap_state->permit_non_unix_accounts) { - rid = DOMAIN_GROUP_RID_USERS; - } else { - DEBUG(0, ("NO group RID specified on account %s, " - "cannot store!\n", pdb_get_username(sampass))); - ldap_mods_free(*mods, 1); - return False; + if (rid == 0) { + if (!IS_SAM_DEFAULT(sampass, PDB_GID)) { + rid = pdb_gid_to_group_rid(pdb_get_gid(sampass)); + } else if (ldap_state->permit_non_unix_accounts) { + rid = DOMAIN_GROUP_RID_USERS; + } else { + DEBUG(0, ("NO group RID specified on account %s, " + "cannot store!\n", pdb_get_username(sampass))); + ldap_mods_free(*mods, 1); + return False; + } } slprintf(temp, sizeof(temp) - 1, "%i", rid); -- cgit From 6df38e250af1a8e7213ad66342c71c52ce118a12 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 22 Mar 2003 20:49:55 +0000 Subject: Use FUNCTION_MACRO, not __FUNCTION__ --- source/libsmb/clientgen.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/libsmb/clientgen.c b/source/libsmb/clientgen.c index e067e92f8db..0da9a8932fc 100644 --- a/source/libsmb/clientgen.c +++ b/source/libsmb/clientgen.c @@ -272,8 +272,8 @@ struct cli_state *cli_initialise(struct cli_state *cli) memset(cli->inbuf, 0, cli->bufsize); /* just becouse we over-allocate, doesn't mean it's right to use it */ - clobber_region(__FUNCTION__, __LINE__, cli->outbuf+cli->bufsize, SAFETY_MARGIN); - clobber_region(__FUNCTION__, __LINE__, cli->inbuf+cli->bufsize, SAFETY_MARGIN); + clobber_region(FUNCTION_MACRO, __LINE__, cli->outbuf+cli->bufsize, SAFETY_MARGIN); + clobber_region(FUNCTION_MACRO, __LINE__, cli->inbuf+cli->bufsize, SAFETY_MARGIN); /* initialise signing */ cli_null_set_signing(cli); -- cgit From 0efa773bac4b9fe2f79265413c32fecce55cc369 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 22 Mar 2003 21:59:17 +0000 Subject: Return value in non-void function --- source/passdb/pdb_tdb.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/passdb/pdb_tdb.c b/source/passdb/pdb_tdb.c index da6fcf70fc1..7e2f4b832f4 100644 --- a/source/passdb/pdb_tdb.c +++ b/source/passdb/pdb_tdb.c @@ -990,5 +990,6 @@ int pdb_tdbsam_init(void) { smb_register_passdb("tdbsam", pdb_init_tdbsam, PASSDB_INTERFACE_VERSION); smb_register_passdb("tdbsam_nua", pdb_init_tdbsam_nua, PASSDB_INTERFACE_VERSION); + return True; } -- cgit From 9c3b8533fc6d2a68e013668d0927d479f4ab58dd Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 22 Mar 2003 22:00:19 +0000 Subject: Detect missing -lroken properly on systems without krb5-config --- source/configure.in | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/configure.in b/source/configure.in index b6fabe60859..053577adf6b 100644 --- a/source/configure.in +++ b/source/configure.in @@ -2145,9 +2145,10 @@ fi AC_CHECK_LIB(k5crypto, krb5_encrypt_data, [LIBS="$LIBS -lk5crypto"]) # Heimdal checks. AC_CHECK_LIB(crypto, des_set_key, [LIBS="$LIBS -lcrypto"]) - AC_CHECK_LIB(asn1, copy_Authenticator, [LIBS="$LIBS -lasn1 -lroken"]) + AC_CHECK_LIB(asn1, copy_Authenticator, [LIBS="$LIBS -lasn1"]) + AC_CHECK_LIB(roken, roken_getaddrinfo_hostspec, [LIBS="$LIBS -lroken"]) # Heimdal checks. On static Heimdal gssapi must be linked before krb5. - AC_CHECK_LIB(gssapi, gss_display_status, [LIBS="$LIBS -lgssapi -lkrb5 -lasn1"; + AC_CHECK_LIB(gssapi, gss_display_status, [LIBS="$LIBS -lgssapi -lkrb5"; AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available])]) AC_CHECK_LIB(krb5, krb5_set_real_time, [AC_DEFINE(HAVE_KRB5_SET_REAL_TIME,1,[Whether krb5_set_real_time is available])]) -- cgit From 2e1e5719f188a933e6b691fbd48037a0d29497e4 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 22 Mar 2003 22:04:58 +0000 Subject: Don't use EDQUOT on systems where it's not available --- source/libsmb/clierror.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/libsmb/clierror.c b/source/libsmb/clierror.c index 4f80f274d98..b66a6bcba8e 100644 --- a/source/libsmb/clierror.c +++ b/source/libsmb/clierror.c @@ -231,7 +231,12 @@ static struct { {NT_STATUS_UNSUCCESSFUL, EINVAL}, {NT_STATUS_NOT_IMPLEMENTED, ENOSYS}, {NT_STATUS_IN_PAGE_ERROR, EFAULT}, +#ifdef EDQUOT {NT_STATUS_PAGEFILE_QUOTA, EDQUOT}, + {NT_STATUS_QUOTA_EXCEEDED, EDQUOT}, + {NT_STATUS_REGISTRY_QUOTA_LIMIT, EDQUOT}, + {NT_STATUS_LICENSE_QUOTA_EXCEEDED, EDQUOT}, +#endif #ifdef ETIME {NT_STATUS_TIMER_NOT_CANCELED, ETIME}, #endif @@ -252,7 +257,6 @@ static struct { {NT_STATUS_UNABLE_TO_FREE_VM, EADDRINUSE}, {NT_STATUS_ACCESS_DENIED, EACCES}, {NT_STATUS_BUFFER_TOO_SMALL, ENOBUFS}, - {NT_STATUS_QUOTA_EXCEEDED, EDQUOT}, {NT_STATUS_WRONG_PASSWORD, EACCES}, {NT_STATUS_LOGON_FAILURE, EACCES}, {NT_STATUS_INVALID_WORKSTATION, EACCES}, @@ -272,8 +276,6 @@ static struct { {NT_STATUS_HOST_UNREACHABLE, EHOSTUNREACH}, {NT_STATUS_CONNECTION_ABORTED, ECONNABORTED}, {NT_STATUS_CONNECTION_REFUSED, ECONNREFUSED}, - {NT_STATUS_REGISTRY_QUOTA_LIMIT, EDQUOT}, - {NT_STATUS_LICENSE_QUOTA_EXCEEDED, EDQUOT}, {NT_STATUS_TOO_MANY_LINKS, EMLINK}, {NT_STATUS_NETWORK_BUSY, EBUSY}, {NT_STATUS_DEVICE_DOES_NOT_EXIST, ENODEV}, -- cgit From fb680f610ceb9a0f350c99456cf7ab1a507543fe Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sat, 22 Mar 2003 23:25:09 +0000 Subject: Valgrind found a few memory leaks! Andrew Bartlett --- source/lib/gencache.c | 4 ++++ source/libsmb/namecache.c | 12 ++++++++++-- source/param/loadparm.c | 1 + 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/source/lib/gencache.c b/source/lib/gencache.c index eb0e0cd808f..40b4d1390dc 100644 --- a/source/lib/gencache.c +++ b/source/lib/gencache.c @@ -114,6 +114,9 @@ BOOL gencache_set(const char *keystr, const char *value, time_t timeout) if (!gencache_init()) return False; asprintf(&valstr, CACHE_DATA_FMT, (int)timeout, value); + if (!valstr) + return False; + keybuf.dptr = strdup(keystr); keybuf.dsize = strlen(keystr)+1; databuf.dptr = strdup(valstr); @@ -241,6 +244,7 @@ BOOL gencache_get(const char *keystr, char **valstr, time_t *timeout) keybuf.dptr = strdup(keystr); keybuf.dsize = strlen(keystr)+1; databuf = tdb_fetch(cache, keybuf); + SAFE_FREE(keybuf.dptr); if (databuf.dptr && databuf.dsize > TIMEOUT_LEN) { char* entry_buf = strndup(databuf.dptr, databuf.dsize); diff --git a/source/libsmb/namecache.c b/source/libsmb/namecache.c index 40777011a1d..d3541b7719d 100644 --- a/source/libsmb/namecache.c +++ b/source/libsmb/namecache.c @@ -118,6 +118,7 @@ BOOL namecache_store(const char *name, int name_type, time_t expiry; char *key, *value_string; int i; + BOOL ret; /* * we use gecache call to avoid annoying debug messages about @@ -152,10 +153,17 @@ BOOL namecache_store(const char *name, int name_type, * First, store the number of ip addresses and then * place each single ip */ - ipstr_list_make(&value_string, ip_list, num_names); + if (!ipstr_list_make(&value_string, ip_list, num_names)) { + SAFE_FREE(key); + SAFE_FREE(value_string); + return False; + } /* set the entry */ - return (gencache_set(key, value_string, expiry)); + ret = gencache_set(key, value_string, expiry); + SAFE_FREE(key); + SAFE_FREE(value_string); + return ret; } diff --git a/source/param/loadparm.c b/source/param/loadparm.c index f8a19905137..0aa5f08be77 100644 --- a/source/param/loadparm.c +++ b/source/param/loadparm.c @@ -3183,6 +3183,7 @@ BOOL lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue break; case P_LIST: + str_list_free(parm_ptr); *(char ***)parm_ptr = str_list_make(pszParmValue, NULL); break; -- cgit From e149e70717f38e082ce35d55f9b4d84ba8419af7 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 22 Mar 2003 23:25:44 +0000 Subject: - Use FUNCTION_MACRO, not __FUNCTION__. - Add some const --- source/lib/getsmbpass.c | 2 +- source/lib/util.c | 2 +- source/sam/gumm_tdb.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/lib/getsmbpass.c b/source/lib/getsmbpass.c index c271d554047..b6ae09b3181 100644 --- a/source/lib/getsmbpass.c +++ b/source/lib/getsmbpass.c @@ -83,7 +83,7 @@ static int tcsetattr(int fd, int flags, struct sgttyb *t) static struct termios t; #endif /* SYSV_TERMIO */ -char *getsmbpass(char *prompt) +char *getsmbpass(const char *prompt) { FILE *in, *out; int echo_off; diff --git a/source/lib/util.c b/source/lib/util.c index 4f564b332a0..b67896c648a 100644 --- a/source/lib/util.c +++ b/source/lib/util.c @@ -1040,7 +1040,7 @@ BOOL get_mydomname(fstring my_domname) Interpret a protocol description string, with a default. ****************************************************************************/ -int interpret_protocol(char *str,int def) +int interpret_protocol(const char *str,int def) { if (strequal(str,"NT1")) return(PROTOCOL_NT1); diff --git a/source/sam/gumm_tdb.c b/source/sam/gumm_tdb.c index 53ea872a11a..5e390490cf0 100644 --- a/source/sam/gumm_tdb.c +++ b/source/sam/gumm_tdb.c @@ -38,8 +38,8 @@ static int tdbgumm_debug_level = DBGC_ALL; #define TDB_FORMAT_STRING "ddB" -#define TALLOC_CHECK(ptr, err, label) do { if ((ptr) == NULL) { DEBUG(0, ("%s: Out of memory!\n", __FUNCTION__)); err = NT_STATUS_NO_MEMORY; goto label; } } while(0) -#define SET_OR_FAIL(func, label) do { if (NT_STATUS_IS_ERR(func)) { DEBUG(0, ("%s: Setting gums object data failed!\n", __FUNCTION__)); goto label; } } while(0) +#define TALLOC_CHECK(ptr, err, label) do { if ((ptr) == NULL) { DEBUG(0, ("%s: Out of memory!\n", FUNCTION_MACRO)); err = NT_STATUS_NO_MEMORY; goto label; } } while(0) +#define SET_OR_FAIL(func, label) do { if (NT_STATUS_IS_ERR(func)) { DEBUG(0, ("%s: Setting gums object data failed!\n", FUNCTION_MACRO)); goto label; } } while(0) struct tdbsam2_enum_objs { uint32 type; -- cgit From 5a88d78f67fd7853d6f7d5042807afa56091d52c Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 22 Mar 2003 23:48:02 +0000 Subject: Add -U, -N, -i, -A, -W to popt. --- source/include/popt_common.h | 47 +++++++++ source/include/smb.h | 9 +- source/lib/popt_common.c | 240 +++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 279 insertions(+), 17 deletions(-) create mode 100644 source/include/popt_common.h diff --git a/source/include/popt_common.h b/source/include/popt_common.h new file mode 100644 index 00000000000..9354e8734d7 --- /dev/null +++ b/source/include/popt_common.h @@ -0,0 +1,47 @@ +/* + Unix SMB/CIFS implementation. + Common popt arguments + Copyright (C) Jelmer Vernooij 2003 + + 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. +*/ + +#ifndef _POPT_COMMON_H +#define _POPT_COMMON_H + +/* Common popt structures */ +extern struct poptOption popt_common_debug[]; +extern struct poptOption popt_common_configfile[]; +extern struct poptOption popt_common_socket_options[]; +extern struct poptOption popt_common_version[]; +extern struct poptOption popt_common_netbios_name[]; +extern struct poptOption popt_common_log_base[]; +extern struct poptOption popt_common_credentials[]; +extern struct poptOption popt_common_scope[]; + +#define POPT_COMMON_SAMBA { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version, 0, "Common samba options:", NULL }, +#define POPT_CREDENTIALS { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_credentials, 0, "Authentication options:", NULL }, + +struct user_auth_info { + pstring username; + pstring password; + pstring workgroup; + BOOL got_pass; + BOOL use_kerberos; +}; + +extern struct user_auth_info cmdline_auth_info; + +#endif /* _POPT_COMMON_H */ diff --git a/source/include/smb.h b/source/include/smb.h index 0506c410f3b..4f37c38413c 100644 --- a/source/include/smb.h +++ b/source/include/smb.h @@ -1711,14 +1711,7 @@ typedef struct { #define DEFAULT_TRUST_ACCOUNT_PASSWORD_LENGTH 14 -/* Common popt structures */ - -extern struct poptOption popt_common_debug[]; -extern struct poptOption popt_common_configfile[]; -extern struct poptOption popt_common_socket_options[]; -extern struct poptOption popt_common_version[]; -extern struct poptOption popt_common_netbios_name[]; -extern struct poptOption popt_common_log_base[]; +#include "popt_common.h" /* Module support */ typedef int (init_module_function) (void); diff --git a/source/lib/popt_common.c b/source/lib/popt_common.c index 77c44f127a0..03e39f5953e 100644 --- a/source/lib/popt_common.c +++ b/source/lib/popt_common.c @@ -3,7 +3,7 @@ Common popt routines Copyright (C) Tim Potter 2001,2002 - Copyright (C) Jelmer Vernooij 2002 + Copyright (C) Jelmer Vernooij 2002,2003 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 @@ -23,17 +23,20 @@ #include "includes.h" /* Handle command line options: - * d,--debuglevel - * s,--configfile - * O,--socket-options - * V,--version - * l,--log-base - * n,--netbios-name + * -d,--debuglevel + * -s,--configfile + * -O,--socket-options + * -V,--version + * -l,--log-base + * -n,--netbios-name + * -i,--scope */ extern pstring user_socket_options; extern BOOL AllowDebugChange; +struct user_auth_info cmdline_auth_info; + static void popt_common_callback(poptContext con, enum poptCallbackReason reason, const struct poptOption *opt, @@ -93,13 +96,24 @@ static void popt_common_callback(poptContext con, lp_set_logfile(logfile); } break; + + case 'i': + if (arg) { + set_global_scope(arg); + } + break; } } struct poptOption popt_common_debug[] = { { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback }, - { "debuglevel", 'd', POPT_ARG_STRING, NULL, 'd', "Set debug level", - "DEBUGLEVEL" }, + { "debuglevel", 'd', POPT_ARG_STRING, NULL, 'd', "Set debug level", "DEBUGLEVEL" }, + { 0 } +}; + +struct poptOption popt_common_scope[] = { + { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback }, + { "scope", 'i', POPT_ARG_STRING, NULL, 'i', "Use this Netbios scope", "SCOPE" }, { 0 } }; @@ -132,3 +146,211 @@ struct poptOption popt_common_log_base[] = { { "log-basename", 'l', POPT_ARG_STRING, NULL, 'l', "Basename for log/debug files"}, { 0 } }; + +/**************************************************************************** + * get a password from a a file or file descriptor + * exit on failure + * ****************************************************************************/ +static void get_password_file(struct user_auth_info *a) +{ + int fd = -1; + char *p; + BOOL close_it = False; + pstring spec; + char pass[128]; + + if ((p = getenv("PASSWD_FD")) != NULL) { + pstrcpy(spec, "descriptor "); + pstrcat(spec, p); + sscanf(p, "%d", &fd); + close_it = False; + } else if ((p = getenv("PASSWD_FILE")) != NULL) { + fd = sys_open(p, O_RDONLY, 0); + pstrcpy(spec, p); + if (fd < 0) { + fprintf(stderr, "Error opening PASSWD_FILE %s: %s\n", + spec, strerror(errno)); + exit(1); + } + close_it = True; + } + + for(p = pass, *p = '\0'; /* ensure that pass is null-terminated */ + p && p - pass < sizeof(pass);) { + switch (read(fd, p, 1)) { + case 1: + if (*p != '\n' && *p != '\0') { + *++p = '\0'; /* advance p, and null-terminate pass */ + break; + } + case 0: + if (p - pass) { + *p = '\0'; /* null-terminate it, just in case... */ + p = NULL; /* then force the loop condition to become false */ + break; + } else { + fprintf(stderr, "Error reading password from file %s: %s\n", + spec, "empty password\n"); + exit(1); + } + + default: + fprintf(stderr, "Error reading password from file %s: %s\n", + spec, strerror(errno)); + exit(1); + } + } + pstrcpy(a->password, pass); + if (close_it) + close(fd); +} + +static void get_credentials_file(const char *file, struct user_auth_info *info) +{ + XFILE *auth; + fstring buf; + uint16 len = 0; + char *ptr, *val, *param; + + if ((auth=x_fopen(file, O_RDONLY, 0)) == NULL) + { + /* fail if we can't open the credentials file */ + d_printf("ERROR: Unable to open credentials file!\n"); + exit(-1); + } + + while (!x_feof(auth)) + { + /* get a line from the file */ + if (!x_fgets(buf, sizeof(buf), auth)) + continue; + len = strlen(buf); + + if ((len) && (buf[len-1]=='\n')) + { + buf[len-1] = '\0'; + len--; + } + if (len == 0) + continue; + + /* break up the line into parameter & value. + * will need to eat a little whitespace possibly */ + param = buf; + if (!(ptr = strchr_m (buf, '='))) + continue; + + val = ptr+1; + *ptr = '\0'; + + /* eat leading white space */ + while ((*val!='\0') && ((*val==' ') || (*val=='\t'))) + val++; + + if (strwicmp("password", param) == 0) + { + pstrcpy(info->password, val); + info->got_pass = True; + } + else if (strwicmp("username", param) == 0) + pstrcpy(info->username, val); + else if (strwicmp("domain", param) == 0) + pstrcpy(info->workgroup,val); + memset(buf, 0, sizeof(buf)); + } + x_fclose(auth); +} + +/* Handle command line options: + * -U,--user + * -W,--workgroup + * -A,--authentication-file + * -k,--use-kerberos + * -N,--no-pass + */ + + +static void popt_common_credentials_callback(poptContext con, + enum poptCallbackReason reason, + const struct poptOption *opt, + const char *arg, const void *data) +{ + char *p; + + if (reason == POPT_CALLBACK_REASON_PRE) { + cmdline_auth_info.use_kerberos = False; + cmdline_auth_info.got_pass = False; + pstrcpy(cmdline_auth_info.username, "GUEST"); + + if (getenv("LOGNAME"))pstrcpy(cmdline_auth_info.username,getenv("LOGNAME")); + + if (getenv("USER")) { + pstrcpy(cmdline_auth_info.username,getenv("USER")); + + if ((p = strchr_m(cmdline_auth_info.username,'%'))) { + *p = 0; + pstrcpy(cmdline_auth_info.password,p+1); + cmdline_auth_info.got_pass = True; + memset(strchr_m(getenv("USER"),'%')+1,'X',strlen(cmdline_auth_info.password)); + } + } + + if (getenv("PASSWD")) { + pstrcpy(cmdline_auth_info.password,getenv("PASSWD")); + cmdline_auth_info.got_pass = True; + } + + if (getenv("PASSWD_FD") || getenv("PASSWD_FILE")) { + get_password_file(&cmdline_auth_info); + cmdline_auth_info.got_pass = True; + } + + return; + } + + switch(opt->val) { + case 'U': + { + char *lp; + + pstrcpy(cmdline_auth_info.username,arg); + if ((lp=strchr_m(cmdline_auth_info.username,'%'))) { + *lp = 0; + pstrcpy(cmdline_auth_info.password,lp+1); + cmdline_auth_info.got_pass = True; + memset(strchr_m(arg,'%')+1,'X',strlen(cmdline_auth_info.password)); + } + } + break; + + case 'A': + get_credentials_file(arg, &cmdline_auth_info); + break; + + case 'W': + pstrcpy(cmdline_auth_info.workgroup,arg); + break; + + case 'k': +#ifndef HAVE_KRB5 + d_printf("No kerberos support compiled in\n"); + exit(1); +#else + cmdline_auth_info.got_pass = True; +#endif + + break; + } + } + + + + struct poptOption popt_common_credentials[] = { + { NULL, 0, POPT_ARG_CALLBACK|POPT_CBFLAG_PRE, popt_common_credentials_callback }, + { "user", 'U', POPT_ARG_STRING, NULL, 'U', "Set the network username", "USERNAME" }, + { "no-pass", 'N', POPT_ARG_VAL, &cmdline_auth_info.got_pass, TRUE, "Don't ask for a password" }, + { "kerberos", 'k', POPT_ARG_VAL, &cmdline_auth_info.use_kerberos, TRUE, "Use kerberos (active directory) authentication" }, + { "authentication-file", 'A', POPT_ARG_STRING, NULL, 'A', "Get the credentials from a file", "FILE" }, + { "workgroup", 'W', POPT_ARG_STRING, NULL, 'W', "Set the workgroup name", "WORKGROUP" }, + { 0 } + }; -- cgit From e56ab71f1237a71c6ad4f321ce1db4e9397efd73 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 22 Mar 2003 23:50:11 +0000 Subject: Add nicer --help headers --- source/nmbd/nmbd.c | 10 +++------- source/smbd/server.c | 2 +- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/source/nmbd/nmbd.c b/source/nmbd/nmbd.c index fc08645f1dd..a34593557e5 100644 --- a/source/nmbd/nmbd.c +++ b/source/nmbd/nmbd.c @@ -3,7 +3,7 @@ NBT netbios routines and daemon - version 2 Copyright (C) Andrew Tridgell 1994-1998 Copyright (C) Jeremy Allison 1997-2002 - Copyright (C) Jelmer Vernooij 2002 (Conversion to popt) + Copyright (C) Jelmer Vernooij 2002,2003 (Conversion to popt) 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 @@ -600,15 +600,14 @@ static BOOL open_sockets(BOOL isdaemon, int port) {"log-stdout", 'S', POPT_ARG_VAL, &log_stdout, True, "Log to stdout" }, {"hosts", 'H', POPT_ARG_STRING, dyn_LMHOSTSFILE, 'H', "Load a netbios hosts file"}, {"port", 'p', POPT_ARG_INT, &global_nmb_port, NMB_PORT, "Listen on the specified port" }, + POPT_COMMON_SAMBA {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_socket_options }, - {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version }, {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_netbios_name }, {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_log_base }, { NULL } }; - int opt; pstring logfile; global_nmb_port = NMB_PORT; @@ -624,7 +623,7 @@ static BOOL open_sockets(BOOL isdaemon, int port) fault_setup((void (*)(void *))fault_continue ); /* POSIX demands that signals are inherited. If the invoking process has - * these signals masked, we will have problems, as we won't recieve them. */ + * these signals masked, we will have problems, as we won't receive them. */ BlockSignals(False, SIGHUP); BlockSignals(False, SIGUSR1); BlockSignals(False, SIGTERM); @@ -643,9 +642,6 @@ static BOOL open_sockets(BOOL isdaemon, int port) #endif pc = poptGetContext("nmbd", argc, argv, long_options, 0); - while((opt = poptGetNextOpt(pc)) != -1) - { } - poptFreeContext(pc); if ( opt_interactive ) { diff --git a/source/smbd/server.c b/source/smbd/server.c index 96d936d3a8a..627fad15726 100644 --- a/source/smbd/server.c +++ b/source/smbd/server.c @@ -669,11 +669,11 @@ static BOOL init_structs(void ) {"log-stdout", 'S', POPT_ARG_VAL, &log_stdout, True, "Log to stdout" }, {"build-options", 'b', POPT_ARG_NONE, NULL, 'b', "Print build options" }, {"port", 'p', POPT_ARG_STRING, &ports, 0, "Listen on the specified ports"}, + POPT_COMMON_SAMBA {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug}, {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile}, {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_socket_options}, {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_log_base}, - {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version}, { NULL } }; -- cgit From 8f285878b30bad7388f69075538c628a7e18ac8a Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 22 Mar 2003 23:51:46 +0000 Subject: Convert to popt --- source/Makefile.in | 6 +-- source/utils/smbtree.c | 121 ++++++++++--------------------------------------- 2 files changed, 26 insertions(+), 101 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index c4bdbe3b111..8fe7bff1ee2 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -378,7 +378,7 @@ SMBCONTROL_OBJ = utils/smbcontrol.o $(LOCKING_OBJ) $(PARAM_OBJ) \ SMBTREE_OBJ = utils/smbtree.o $(LOCKING_OBJ) $(PARAM_OBJ) \ $(UBIQX_OBJ) $(PROFILE_OBJ) $(LIB_OBJ) $(LIBSMB_OBJ) \ - $(KRBCLIENT_OBJ) + $(KRBCLIENT_OBJ) $(POPT_LIB_OBJ) TESTPARM_OBJ = utils/testparm.o \ $(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) $(POPT_LIB_OBJ) @@ -765,9 +765,9 @@ bin/smbcontrol@EXEEXT@: $(SMBCONTROL_OBJ) bin/.dummy @echo Linking $@ @$(CC) -DUSING_SMBCONTROL $(FLAGS) -o $@ $(SMBCONTROL_OBJ) $(LDFLAGS) $(LIBS) -bin/smbtree@EXEEXT@: $(SMBTREE_OBJ) bin/.dummy +bin/smbtree@EXEEXT@: $(SMBTREE_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(SMBTREE_OBJ) $(LDFLAGS) $(LIBS) + @$(CC) $(FLAGS) -o $@ $(SMBTREE_OBJ) $(LDFLAGS) $(LIBS) @BUILD_POPT@ bin/smbpasswd@EXEEXT@: $(SMBPASSWD_OBJ) bin/.dummy @echo Linking $@ diff --git a/source/utils/smbtree.c b/source/utils/smbtree.c index 940120d644f..a55dd4dd009 100644 --- a/source/utils/smbtree.c +++ b/source/utils/smbtree.c @@ -3,6 +3,7 @@ Network neighbourhood browser. Copyright (C) Tim Potter 2000 + Copyright (C) Jelmer Vernooij 2003 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 @@ -23,34 +24,11 @@ static BOOL use_bcast; -struct user_auth_info { - pstring username; - pstring password; - pstring workgroup; -}; - /* How low can we go? */ enum tree_level {LEV_WORKGROUP, LEV_SERVER, LEV_SHARE}; static enum tree_level level = LEV_SHARE; -static void usage(void) -{ - printf( -"Usage: smbtree [options]\n\ -\n\ -\t-d debuglevel set debug output level\n\ -\t-U username user to autheticate as\n\ -\t-W workgroup workgroup of user to authenticate as\n\ -\t-D list only domains (workgroups) of tree\n\ -\t-S list domains and servers of tree\n\ -\t-b use bcast instead of using the master browser\n\ -\n\ -The username can be of the form username%%password or\n\ -workgroup\\username%%password.\n\n\ -"); -} - /* Holds a list of workgroups or servers */ struct name_list { @@ -267,13 +245,19 @@ static BOOL print_tree(struct user_auth_info *user_info) ****************************************************************************/ int main(int argc,char *argv[]) { - extern char *optarg; - extern int optind; - int opt; - char *p; - struct user_auth_info user_info; - BOOL got_pass = False; - + struct poptOption long_options[] = { + POPT_AUTOHELP + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_credentials }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, + { "broadcast", 'b', POPT_ARG_VAL, &use_bcast, True, "Use broadcast instead of using the master browser" }, + { "domains", 'D', POPT_ARG_VAL, &level, LEV_WORKGROUP, "List only domains (workgroups) of tree" }, + { "servers", 'S', POPT_ARG_VAL, &level, LEV_SERVER, "List domains(workgroups) and servers of tree" }, + { 0 } + }; + poptContext pc; + /* Initialise samba stuff */ setlinebuf(stdout); @@ -282,86 +266,27 @@ static BOOL print_tree(struct user_auth_info *user_info) setup_logging(argv[0],True); + pc = poptGetContext("smbtree", argc, (const char **)argv, long_options, + POPT_CONTEXT_KEEP_FIRST); + while(poptGetNextOpt(pc) != -1); + poptFreeContext(pc); + lp_load(dyn_CONFIGFILE,True,False,False); load_interfaces(); - if (getenv("USER")) { - pstrcpy(user_info.username, getenv("USER")); - - if ((p=strchr(user_info.username, '%'))) { - *p = 0; - pstrcpy(user_info.password, p+1); - got_pass = True; - memset(strchr(getenv("USER"), '%') + 1, 'X', - strlen(user_info.password)); - } - } - - pstrcpy(user_info.workgroup, lp_workgroup()); - /* Parse command line args */ - while ((opt = getopt(argc, argv, "U:hd:W:DSb")) != EOF) { - switch (opt) { - case 'U': - pstrcpy(user_info.username,optarg); - p = strchr(user_info.username,'%'); - if (p) { - *p = 0; - pstrcpy(user_info.password, p+1); - got_pass = 1; - } - break; - - case 'b': - use_bcast = True; - break; - - case 'h': - usage(); - exit(1); - - case 'd': - DEBUGLEVEL = atoi(optarg); - break; - - case 'W': - pstrcpy(user_info.workgroup, optarg); - break; - - case 'D': - level = LEV_WORKGROUP; - break; - - case 'S': - level = LEV_SERVER; - break; - - default: - printf("Unknown option %c (%d)\n", (char)opt, opt); - exit(1); - } - } - - argc -= optind; - argv += optind; - - if (argc > 0) { - usage(); - exit(1); - } - - if (!got_pass) { + if (!cmdline_auth_info.got_pass) { char *pass = getpass("Password: "); if (pass) { - pstrcpy(user_info.password, pass); + pstrcpy(cmdline_auth_info.password, pass); } - got_pass = True; + cmdline_auth_info.got_pass = True; } /* Now do our stuff */ - if (!print_tree(&user_info)) + if (!print_tree(&cmdline_auth_info)) return 1; return 0; -- cgit From 10c2fe08b6fdc2a9985a154b93555197bf5815fa Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 22 Mar 2003 23:55:33 +0000 Subject: Convert to popt. --- source/client/client.c | 446 ++++++++++--------------------------------------- 1 file changed, 85 insertions(+), 361 deletions(-) diff --git a/source/client/client.c b/source/client/client.c index 1248c256591..b917201985c 100644 --- a/source/client/client.c +++ b/source/client/client.c @@ -3,6 +3,7 @@ SMB client Copyright (C) Andrew Tridgell 1994-1998 Copyright (C) Simo Sorce 2001-2002 + Copyright (C) Jelmer Vernooij 2003 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 @@ -27,28 +28,24 @@ #define REGISTER 0 #endif -const char prog_name[] = "smbclient"; - struct cli_state *cli; extern BOOL in_client; -extern BOOL AllowDebugChange; static int port = 0; pstring cur_dir = "\\"; static pstring cd_path = ""; static pstring service; static pstring desthost; -static pstring password; static pstring username; +static pstring password; static pstring workgroup; -static char *cmdstr; -static BOOL got_user; +static BOOL use_kerberos; static BOOL got_pass; +static char *cmdstr = NULL; + static int io_bufsize = 64512; -static BOOL use_kerberos; static int name_type = 0x20; static int max_protocol = PROTOCOL_NT1; -extern pstring user_socket_options; static int process_tok(fstring tok); static int cmd_help(void); @@ -1060,7 +1057,7 @@ static int do_put(char *rname, char *lname, BOOL reput) { int fnum; XFILE *f; - int start = 0; + size_t start = 0; off_t nread = 0; char *buf = NULL; int maxwrite = io_bufsize; @@ -2472,102 +2469,6 @@ static int process(char *base_directory) return rc; } -/**************************************************************************** -usage on the program -****************************************************************************/ -static void usage(char *pname) -{ - d_printf("Usage: %s service [options]", pname); - - d_printf("\nVersion %s\n",VERSION); - d_printf("\t-s smb.conf pathname to smb.conf file\n"); - d_printf("\t-O socket_options socket options to use\n"); - d_printf("\t-R name resolve order use these name resolution services only\n"); - d_printf("\t-M host send a winpopup message to the host\n"); - d_printf("\t-i scope use this NetBIOS scope\n"); - d_printf("\t-N don't ask for a password\n"); - d_printf("\t-n netbios name. Use this name as my netbios name\n"); - d_printf("\t-d debuglevel set the debuglevel\n"); - d_printf("\t-p port connect to the specified port\n"); - d_printf("\t-l log basename. Basename for log/debug files\n"); - d_printf("\t-h Print this help message.\n"); - d_printf("\t-I dest IP use this IP to connect to\n"); - d_printf("\t-E write messages to stderr instead of stdout\n"); - d_printf("\t-k use kerberos (active directory) authentication\n"); - d_printf("\t-U username set the network username\n"); - d_printf("\t-L host get a list of shares available on a host\n"); - d_printf("\t-t terminal code terminal i/o code {sjis|euc|jis7|jis8|junet|hex}\n"); - d_printf("\t-m max protocol set the max protocol level\n"); - d_printf("\t-A filename get the credentials from a file\n"); - d_printf("\t-W workgroup set the workgroup name\n"); - d_printf("\t-TIXFqgbNan command line tar\n"); - d_printf("\t-D directory start from directory\n"); - d_printf("\t-c command string execute semicolon separated commands\n"); - d_printf("\t-b xmit/send buffer changes the transmit/send buffer (default: 65520)\n"); - d_printf("\n"); -} - - -/**************************************************************************** -get a password from a a file or file descriptor -exit on failure -****************************************************************************/ -static void get_password_file(void) -{ - int fd = -1; - char *p; - BOOL close_it = False; - pstring spec; - char pass[128]; - - if ((p = getenv("PASSWD_FD")) != NULL) { - pstrcpy(spec, "descriptor "); - pstrcat(spec, p); - sscanf(p, "%d", &fd); - close_it = False; - } else if ((p = getenv("PASSWD_FILE")) != NULL) { - fd = sys_open(p, O_RDONLY, 0); - pstrcpy(spec, p); - if (fd < 0) { - fprintf(stderr, "Error opening PASSWD_FILE %s: %s\n", - spec, strerror(errno)); - exit(1); - } - close_it = True; - } - - for(p = pass, *p = '\0'; /* ensure that pass is null-terminated */ - p && p - pass < sizeof(pass);) { - switch (read(fd, p, 1)) { - case 1: - if (*p != '\n' && *p != '\0') { - *++p = '\0'; /* advance p, and null-terminate pass */ - break; - } - case 0: - if (p - pass) { - *p = '\0'; /* null-terminate it, just in case... */ - p = NULL; /* then force the loop condition to become false */ - break; - } else { - fprintf(stderr, "Error reading password from file %s: %s\n", - spec, "empty password\n"); - exit(1); - } - - default: - fprintf(stderr, "Error reading password from file %s: %s\n", - spec, strerror(errno)); - exit(1); - } - } - pstrcpy(password, pass); - if (close_it) - close(fd); -} - - - /**************************************************************************** handle a -L query ****************************************************************************/ @@ -2677,17 +2578,13 @@ static void remember_query_host(const char *arg, int main(int argc,char *argv[]) { fstring base_directory; - char *pname = argv[0]; int opt; - extern char *optarg; - extern int optind; - int old_debug; pstring query_host; BOOL message = False; extern char tar_type; pstring term_code; - pstring new_name_resolve_order; - pstring logfile; + const char *new_name_resolve_order = NULL; + poptContext pc; char *p; int rc = 0; @@ -2700,306 +2597,133 @@ static void remember_query_host(const char *arg, *query_host = 0; *base_directory = 0; - *new_name_resolve_order = 0; - - DEBUGLEVEL = 2; - AllowDebugChange = False; - - setup_logging(pname,True); - - /* - * If the -E option is given, be careful not to clobber stdout - * before processing the options. 28.Feb.99, richard@hacom.nl. - * Also pre-parse the -s option to get the service file name. - */ - - for (opt = 1; opt < argc; opt++) { - if (strcmp(argv[opt], "-E") == 0) - dbf = x_stderr; - else if(strncmp(argv[opt], "-s", 2) == 0) { - if(argv[opt][2] != '\0') - pstrcpy(dyn_CONFIGFILE, &argv[opt][2]); - else if(argv[opt+1] != NULL) { - /* - * At least one more arg left. - */ - pstrcpy(dyn_CONFIGFILE, argv[opt+1]); - } else { - usage(pname); - exit(1); - } - } - } + setup_logging(argv[0],True); + + struct poptOption long_options[] = { + POPT_AUTOHELP + POPT_COMMON_SAMBA + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_socket_options }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_log_base }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_netbios_name }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_scope }, + POPT_CREDENTIALS + { "name-resolve", 'R', POPT_ARG_STRING, &new_name_resolve_order, 'R', "Use these name resolution services only", "NAME-RESOLVE-ORDER" }, + { "message", 'M', POPT_ARG_STRING, NULL, 'M', "Send message", "HOST" }, + { "ip-address", 'I', POPT_ARG_STRING, NULL, 'I', "Use this IP to connect to", "IP" }, + { "stderr", 'E', POPT_ARG_NONE, NULL, 'E', "Write messages to stderr instead of stdout" }, + { "list", 'L', POPT_ARG_STRING, NULL, 'L', "Get a list of shares available on a host", "HOST" }, + { "terminal", 't', POPT_ARG_STRING, NULL, 't', "Terminal I/O code {sjis|euc|jis7|jis8|junet|hex}", "CODE" }, + { "max-protocol", 'm', POPT_ARG_STRING, NULL, 'm', "Set the max protocol level", "LEVEL" }, + { "tar", 'T', POPT_ARG_STRING, NULL, 'T', "Command line tar", "IXFqgbNan" }, + { "directory", 'D', POPT_ARG_STRING, NULL, 'D', "Start from directory", "DIR" }, + { "command", 'c', POPT_ARG_STRING, &cmdstr, 'c', "Execute semicolon separated commands" }, + { "send-buffer", 'b', POPT_ARG_INT, NULL, 'b', "Changes the transmit/send buffer", "BYTES" }, + { "port", 'p', POPT_ARG_INT, &port, 'p', "Port to connect to", "PORT" }, + { 0, 0, 0, 0 } + }; + + pc = poptGetContext("smbclient", argc, (const char **) argv, long_options, + POPT_CONTEXT_KEEP_FIRST); + poptSetOtherOptionHelp(pc, "service "); in_client = True; /* Make sure that we tell lp_load we are */ - old_debug = DEBUGLEVEL; - if (!lp_load(dyn_CONFIGFILE,True,False,False)) { - fprintf(stderr, "%s: Can't load %s - run testparm to debug it\n", - prog_name, dyn_CONFIGFILE); - } - DEBUGLEVEL = old_debug; - - pstrcpy(workgroup,lp_workgroup()); - - load_interfaces(); - - if (getenv("USER")) { - pstrcpy(username,getenv("USER")); - - /* modification to support userid%passwd syntax in the USER var - 25.Aug.97, jdblair@uab.edu */ - - if ((p=strchr_m(username,'%'))) { - *p = 0; - pstrcpy(password,p+1); - got_pass = True; - memset(strchr_m(getenv("USER"),'%')+1,'X',strlen(password)); - } - } - - /* modification to support PASSWD environmental var - 25.Aug.97, jdblair@uab.edu */ - if (getenv("PASSWD")) { - pstrcpy(password,getenv("PASSWD")); - got_pass = True; - } - - if (getenv("PASSWD_FD") || getenv("PASSWD_FILE")) { - get_password_file(); - got_pass = True; - } - - if (*username == 0 && getenv("LOGNAME")) { - pstrcpy(username,getenv("LOGNAME")); - } - - if (*username == 0) { - pstrcpy(username,"GUEST"); - } - - if (argc < 2) { - usage(pname); - exit(1); - } - - /* FIXME: At the moment, if the user should happen to give the - * options ahead of the service name (in standard Unix - * fashion) then smbclient just spits out the usage message - * with no explanation of what in particular was wrong. Is - * there any reason we can't just parse out the service name - * and password after running getopt?? -- mbp */ - if (*argv[1] != '-') { - pstrcpy(service,argv[1]); - /* Convert any '/' characters in the service name to '\' characters */ - string_replace( service, '/','\\'); - argc--; - argv++; - - if (count_chars(service,'\\') < 3) { - usage(pname); - d_printf("\n%s: Not enough '\\' characters in service\n",service); - exit(1); - } - - if (argc > 1 && (*argv[1] != '-')) { - got_pass = True; - pstrcpy(password,argv[1]); - memset(argv[1],'X',strlen(argv[1])); - argc--; - argv++; - } - } - - while ((opt = - getopt(argc, argv,"s:O:R:M:i:Nn:d:Pp:l:hI:EU:L:t:m:W:T:D:c:b:A:k")) != EOF) { + while ((opt = poptGetNextOpt(pc)) != -1) { switch (opt) { - case 's': - pstrcpy(dyn_CONFIGFILE, optarg); - break; - case 'O': - pstrcpy(user_socket_options,optarg); - break; - case 'R': - pstrcpy(new_name_resolve_order, optarg); - break; case 'M': /* Messages are sent to NetBIOS name type 0x3 * (Messenger Service). Make sure we default * to port 139 instead of port 445. srl,crh */ name_type = 0x03; - pstrcpy(desthost,optarg); - if( 0 == port ) - port = 139; + pstrcpy(desthost,poptGetOptArg(pc)); + if( 0 == port ) port = 139; message = True; break; - case 'i': - set_global_scope(optarg); - break; - case 'N': - got_pass = True; - break; - case 'n': - set_global_myname(optarg); - break; - case 'd': - if (*optarg == 'A') - DEBUGLEVEL = 10000; - else - DEBUGLEVEL = atoi(optarg); - break; - case 'P': - /* not needed anymore */ - break; - case 'p': - port = atoi(optarg); - break; - case 'l': - slprintf(logfile,sizeof(logfile)-1, "%s.client",optarg); - lp_set_logfile(logfile); - break; - case 'h': - usage(pname); - exit(0); - break; case 'I': { - dest_ip = *interpret_addr2(optarg); + dest_ip = *interpret_addr2(poptGetOptArg(pc)); if (is_zero_ip(dest_ip)) exit(1); have_ip = True; } break; case 'E': - display_set_stderr(); dbf = x_stderr; - break; - case 'U': - { - char *lp; - - got_user = True; - pstrcpy(username,optarg); - if ((lp=strchr_m(username,'%'))) { - *lp = 0; - pstrcpy(password,lp+1); - got_pass = True; - memset(strchr_m(optarg,'%')+1,'X',strlen(password)); - } - } - break; - - case 'A': - { - XFILE *auth; - fstring buf; - uint16 len = 0; - char *ptr, *val, *param; - - if ((auth=x_fopen(optarg, O_RDONLY, 0)) == NULL) - { - /* fail if we can't open the credentials file */ - d_printf("ERROR: Unable to open credentials file!\n"); - exit (-1); - } - - while (!x_feof(auth)) - { - /* get a line from the file */ - if (!x_fgets(buf, sizeof(buf), auth)) - continue; - len = strlen(buf); - - if ((len) && (buf[len-1]=='\n')) - { - buf[len-1] = '\0'; - len--; - } - if (len == 0) - continue; - - /* break up the line into parameter & value. - will need to eat a little whitespace possibly */ - param = buf; - if (!(ptr = strchr_m (buf, '='))) - continue; - val = ptr+1; - *ptr = '\0'; - - /* eat leading white space */ - while ((*val!='\0') && ((*val==' ') || (*val=='\t'))) - val++; - - if (strwicmp("password", param) == 0) - { - pstrcpy(password, val); - got_pass = True; - } - else if (strwicmp("username", param) == 0) - pstrcpy(username, val); - else if (strwicmp("domain", param) == 0) - pstrcpy(workgroup,val); - memset(buf, 0, sizeof(buf)); - } - x_fclose(auth); - } + display_set_stderr(); break; case 'L': - remember_query_host(optarg, query_host); + remember_query_host(poptGetOptArg(pc), query_host); break; case 't': - pstrcpy(term_code, optarg); + pstrcpy(term_code, poptGetOptArg(pc)); break; case 'm': - max_protocol = interpret_protocol(optarg, max_protocol); - break; - case 'W': - pstrcpy(workgroup,optarg); + max_protocol = interpret_protocol(poptGetOptArg(pc), max_protocol); break; case 'T': - if (!tar_parseargs(argc, argv, optarg, optind)) { - usage(pname); + if (!tar_parseargs(argc, argv, poptGetOptArg(pc), optind)) { + poptPrintUsage(pc, stderr, 0); exit(1); } break; case 'D': - fstrcpy(base_directory,optarg); - break; - case 'c': - cmdstr = optarg; + fstrcpy(base_directory,poptGetOptArg(pc)); break; case 'b': - io_bufsize = MAX(1, atoi(optarg)); + io_bufsize = MAX(1, atoi(poptGetOptArg(pc))); break; - case 'k': -#ifdef HAVE_KRB5 - use_kerberos = True; -#else - d_printf("No kerberos support compiled in\n"); - exit(1); -#endif - break; - default: - usage(pname); + } + } + + if (!lp_load(dyn_CONFIGFILE,True,False,False)) { + fprintf(stderr, "%s: Can't load %s - run testparm to debug it\n", + argv[0], dyn_CONFIGFILE); + } + + poptGetArg(pc); + + load_interfaces(); + + if(poptPeekArg(pc)) { + pstrcpy(service,poptGetArg(pc)); + /* Convert any '/' characters in the service name to '\' characters */ + string_replace(service, '/','\\'); + + if (count_chars(service,'\\') < 3) { + d_printf("\n%s: Not enough '\\' characters in service\n",service); + poptPrintUsage(pc, stderr, 0); exit(1); } } - if (use_kerberos && !got_user) - got_pass = True; + if (poptPeekArg(pc)) { + cmdline_auth_info.got_pass = True; + pstrcpy(cmdline_auth_info.password,poptGetArg(pc)); + } init_names(); - if(*new_name_resolve_order) + if(new_name_resolve_order) lp_set_name_resolve_order(new_name_resolve_order); if (!tar_type && !*query_host && !*service && !message) { - usage(pname); + poptPrintUsage(pc, stderr, 0); exit(1); } + poptFreeContext(pc); + + pstrcpy(username, cmdline_auth_info.username); + pstrcpy(password, cmdline_auth_info.password); + pstrcpy(workgroup, cmdline_auth_info.workgroup); + use_kerberos = cmdline_auth_info.use_kerberos; + got_pass = cmdline_auth_info.got_pass; + DEBUG( 3, ( "Client started (version %s).\n", VERSION ) ); if (tar_type) { -- cgit From b18d02891be1ea3728239eee15a4aed3c3be2fea Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 00:10:35 +0000 Subject: Don't crash when initialising tdb fails --- source/lib/account_pol.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/lib/account_pol.c b/source/lib/account_pol.c index 2e619c0c6b3..e8b382c7ab9 100644 --- a/source/lib/account_pol.c +++ b/source/lib/account_pol.c @@ -118,7 +118,7 @@ BOOL account_policy_get(int field, uint32 *value) { fstring name; - init_account_policy(); + if(!init_account_policy())return False; *value = 0; @@ -142,7 +142,7 @@ BOOL account_policy_set(int field, uint32 value) { fstring name; - init_account_policy(); + if(!init_account_policy())return False; fstrcpy(name, decode_account_policy_name(field)); if (!*name) { -- cgit From 33097cc6610380c373c121380e51d5656955971b Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 00:12:37 +0000 Subject: Also move -V to -C in docs --- docs/docbook/manpages/pdbedit.8.sgml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docbook/manpages/pdbedit.8.sgml b/docs/docbook/manpages/pdbedit.8.sgml index e6231bfa8c8..973b772374c 100644 --- a/docs/docbook/manpages/pdbedit.8.sgml +++ b/docs/docbook/manpages/pdbedit.8.sgml @@ -35,7 +35,7 @@ -d debuglevel -s configfile -P account-policy - -V value + -C value @@ -287,13 +287,13 @@ account policy value for bad lockout attempt is 0 - -V account-policy-value + -C account-policy-value Sets an account policy to a specified value. This option may only be used in conjunction with the -P option. - Example: pdbedit -P "bad lockout attempt" -V 3 + Example: pdbedit -P "bad lockout attempt" -C 3 account policy value for bad lockout attempt was 0 account policy value for bad lockout attempt is now 3 -- cgit From 99de90adc98b8d5354c769dcd25cc1f34d3769e9 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 00:12:54 +0000 Subject: Move -V to -C to prevent conflict with -V for version --- source/utils/pdbedit.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/utils/pdbedit.c b/source/utils/pdbedit.c index affcc75d67b..17e184ea872 100644 --- a/source/utils/pdbedit.c +++ b/source/utils/pdbedit.c @@ -508,8 +508,9 @@ int main (int argc, char **argv) {"import", 'i', POPT_ARG_STRING, &backend_in, 0, "import user accounts from this backend", NULL}, {"export", 'e', POPT_ARG_STRING, &backend_out, 0, "export user accounts to this backend", NULL}, {"account-policy", 'P', POPT_ARG_STRING, &account_policy, 0,"value of an account policy (like maximum password age)",NULL}, - {"value", 'V', POPT_ARG_LONG, &account_policy_value, 'V',"set the account policy to this value", NULL}, + {"value", 'C', POPT_ARG_LONG, &account_policy_value, 'C',"set the account policy to this value", NULL}, {"account-control", 'c', POPT_ARG_STRING, &account_control, 0, "Values of account control", NULL}, + POPT_COMMON_SAMBA { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, {0,0,0,0} -- cgit From 633b3eb7812dc0a58785536a1e7d28329d488b43 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 00:18:44 +0000 Subject: Convert to popt. --- source/Makefile.in | 5 ++- source/utils/profiles.c | 110 ++++++++++++++++++++++++------------------------ 2 files changed, 59 insertions(+), 56 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index 8fe7bff1ee2..79e8272fec7 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -281,6 +281,7 @@ SAMTEST_OBJ = torture/samtest.o torture/cmd_sam.o $(SAM_OBJ) $(LIB_OBJ) $(PARAM_ GROUPDB_OBJ = groupdb/mapping.o PROFILE_OBJ = profile/profile.o +PROFILES_OBJ = utils/profiles.o OPLOCK_OBJ = smbd/oplock.o smbd/oplock_irix.o smbd/oplock_linux.o @@ -725,9 +726,9 @@ bin/net@EXEEXT@: $(NET_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ @$(CC) $(FLAGS) -o $@ $(NET_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @BUILD_POPT@ -bin/profiles@EXEEXT@: utils/profiles.o bin/.dummy +bin/profiles@EXEEXT@: $(PROFILES_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ utils/profiles.o $(LDFLAGS) $(LIBS) + @$(CC) $(FLAGS) -o $@ $(PROFILES_OBJ) $(LDFLAGS) $(LIBS) @BUILD_POPT@ bin/editreg@EXEEXT@: utils/editreg.o bin/.dummy @echo Linking $@ diff --git a/source/utils/profiles.c b/source/utils/profiles.c index 4f40b93810e..b2b351b2fc8 100644 --- a/source/utils/profiles.c +++ b/source/utils/profiles.c @@ -1,6 +1,7 @@ /* Samba Unix/Linux SMB client utility profiles.c Copyright (C) 2002 Richard Sharpe, rsharpe@richardsharpe.com + Copyright (C) 2003 Jelmer Vernooij 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 @@ -514,21 +515,8 @@ static void process_acl(ACL *acl, const char *prefix) } } -static void usage(void) -{ - fprintf(stderr, "usage: profiles [-c -n ] \n"); - fprintf(stderr, "Version: %s\n", VERSION); - fprintf(stderr, "\n\t-v\t sets verbose mode"); - fprintf(stderr, "\n\t-c S-1-5-21-z-y-x-oldrid - provides SID to change"); - fprintf(stderr, "\n\t-n S-1-5-21-a-b-c-newrid - provides SID to change to"); - fprintf(stderr, "\n\t\tBoth must be present if the other is."); - fprintf(stderr, "\n\t\tIf neither present, just report the SIDs found\n"); -} - int main(int argc, char *argv[]) { - extern char *optarg; - extern int optind; int opt; int fd, start = 0; char *base; @@ -540,63 +528,75 @@ int main(int argc, char *argv[]) DWORD first_sk_off, sk_off; MY_SEC_DESC *sec_desc; int *ptr; + struct poptOption long_options[] = { + POPT_AUTOHELP + { "verbose", 'v', POPT_ARG_NONE, NULL, 'v', "Sets verbose mode" }, + { "change-sid", 'c', POPT_ARG_STRING, NULL, 'c', "Provides SID to change" }, + { "new-sid", 'n', POPT_ARG_STRING, NULL, 'n', "Provides SID to change to" }, + { 0, 0, 0, 0 } + }; - if (argc < 2) { - usage(); - exit(1); - } + poptContext pc; + + pc = poptGetContext("profiles", argc, (const char **)argv, long_options, + POPT_CONTEXT_KEEP_FIRST); + + poptSetOtherOptionHelp(pc, ""); /* * Now, process the arguments */ - while ((opt = getopt(argc, argv, "c:n:v")) != EOF) { + while ((opt = poptGetNextOpt(pc)) != -1) { switch (opt) { - case 'c': - change = 1; - if (!get_sid(&old_sid, optarg)) { - fprintf(stderr, "Argument to -c should be a SID in form of S-1-5-...\n"); - usage(); - exit(254); - } - break; - - case 'n': - new = 1; - if (!get_sid(&new_sid, optarg)) { - fprintf(stderr, "Argument to -n should be a SID in form of S-1-5-...\n"); - usage(); - exit(253); - } - - break; - - case 'v': - verbose++; - break; + case 'c': + change = 1; + if (!get_sid(&old_sid, poptGetOptArg(pc))) { + fprintf(stderr, "Argument to -c should be a SID in form of S-1-5-...\n"); + poptPrintUsage(pc, stderr, 0); + exit(254); + } + break; + + case 'n': + new = 1; + if (!get_sid(&new_sid, poptGetOptArg(pc))) { + fprintf(stderr, "Argument to -n should be a SID in form of S-1-5-...\n"); + poptPrintUsage(pc, stderr, 0); + exit(253); + } + + break; + + case 'v': + verbose++; + break; + } + } - default: - usage(); - exit(255); - } + if (!poptPeekArg(pc)) { + poptPrintUsage(pc, stderr, 0); + exit(1); } if ((!change & new) || (change & !new)) { - fprintf(stderr, "You must specify both -c and -n if one or the other is set!\n"); - usage(); - exit(252); + fprintf(stderr, "You must specify both -c and -n if one or the other is set!\n"); + poptPrintUsage(pc, stderr, 0); + exit(252); } - fd = open(argv[optind], O_RDWR, 0000); + poptGetArg(pc); /* To get argv[0] */ + + fd = open(poptPeekArg(pc), O_RDWR, 0000); if (fd < 0) { - fprintf(stderr, "Could not open %s: %s\n", argv[optind], + fprintf(stderr, "Could not open %s: %s\n", poptPeekArg(pc), strerror(errno)); exit(2); } if (fstat(fd, &sbuf) < 0) { - fprintf(stderr, "Could not stat file %s, %s\n", argv[optind], + fprintf(stderr, "Could not stat file %s, %s\n", poptPeekArg(pc), strerror(errno)); exit(3); } @@ -609,7 +609,7 @@ int main(int argc, char *argv[]) base = mmap(&start, sbuf.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); if ((int)base == -1) { - fprintf(stderr, "Could not mmap file: %s, %s\n", argv[optind], + fprintf(stderr, "Could not mmap file: %s, %s\n", poptPeekArg(pc), strerror(errno)); exit(4); } @@ -640,7 +640,7 @@ int main(int argc, char *argv[]) if (verbose) fprintf(stdout, "Registry file size: %u\n", (unsigned int)sbuf.st_size); if (IVAL(®f_hdr->REGF_ID, 0) != REG_REGF_ID) { - fprintf(stderr, "Incorrect Registry file (doesn't have header ID): %s\n", argv[optind]); + fprintf(stderr, "Incorrect Registry file (doesn't have header ID): %s\n", poptPeekArg(pc)); exit(5); } @@ -655,7 +655,7 @@ int main(int argc, char *argv[]) */ if (IVAL(&hbin_hdr->HBIN_ID, 0) != REG_HBIN_ID) { - fprintf(stderr, "Incorrect hbin hdr: %s\n", argv[optind]); + fprintf(stderr, "Incorrect hbin hdr: %s\n", poptPeekArg(pc)); exit(6); } @@ -666,7 +666,7 @@ int main(int argc, char *argv[]) nk_hdr = (NK_HDR *)(base + 0x1000 + IVAL(®f_hdr->first_key, 0) + 4); if (SVAL(&nk_hdr->NK_ID, 0) != REG_NK_ID) { - fprintf(stderr, "Incorrect NK Header: %s\n", argv[optind]); + fprintf(stderr, "Incorrect NK Header: %s\n", poptPeekArg(pc)); exit(7); } @@ -724,6 +724,8 @@ int main(int argc, char *argv[]) munmap(base, sbuf.st_size); + poptFreeContext(pc); + close(fd); return 0; } -- cgit From 8597b8cb952713239aa510ef84e295a8bc8271c6 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 00:26:09 +0000 Subject: Add minimum man page --- docs/docbook/manpages/profiles.1.sgml | 88 +++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 docs/docbook/manpages/profiles.1.sgml diff --git a/docs/docbook/manpages/profiles.1.sgml b/docs/docbook/manpages/profiles.1.sgml new file mode 100644 index 00000000000..0d18c42c82e --- /dev/null +++ b/docs/docbook/manpages/profiles.1.sgml @@ -0,0 +1,88 @@ + %globalentities; +]> + + + + profiles + 1 + + + + + profiles + A utility to report and change SIDs in registry files + + + + + + profiles + -v + -c SID + -n SID + file + + + + + DESCRIPTION + + This tool is part of the Samba + 7 suite. + + profiles is a utility that + reports and changes SIDs in windows registry files. It currently only + supports NT. + + + + + + OPTIONS + + + + file + Registry file to view or edit. + + + + + -v,--verbose + Increases verbosity of messages. + + + + + + + -c SID1 -n SID2 + Change all occurences of SID1 in file by SID2. + + + + &stdarg.help; + + + + + + VERSION + + This man page is correct for version 3.0 of the Samba + suite. + + + + AUTHOR + + The original Samba software and related utilities + were created by Andrew Tridgell. Samba is now developed + by the Samba Team as an Open Source project similar + to the way the Linux kernel is developed. + + The profiles man page was written by Jelmer Vernooij. + + + -- cgit From e7ed8bfc24d94b0b6e70a03eaae927fe1daa7d56 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 00:26:41 +0000 Subject: Fix typo in comment --- source/utils/profiles.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/utils/profiles.c b/source/utils/profiles.c index b2b351b2fc8..7c2d820c810 100644 --- a/source/utils/profiles.c +++ b/source/utils/profiles.c @@ -1,7 +1,7 @@ /* Samba Unix/Linux SMB client utility profiles.c Copyright (C) 2002 Richard Sharpe, rsharpe@richardsharpe.com - Copyright (C) 2003 Jelmer Vernooij + Copyright (C) 2003 Jelmer Vernooij (conversion to popt) 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 @@ -35,7 +35,7 @@ times... the "regf"-Block ================ -"regf" is obviosly the abbreviation for "Registry file". "regf" is the +"regf" is obviously the abbreviation for "Registry file". "regf" is the signature of the header-block which is always 4kb in size, although only the first 64 bytes seem to be used and a checksum is calculated over the first 0x200 bytes only! -- cgit From eeeeb37fc6de60928f7efdeb05bb2c6516f24441 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 00:30:17 +0000 Subject: Use True, not TRUE --- source/lib/popt_common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/lib/popt_common.c b/source/lib/popt_common.c index 03e39f5953e..3c9a87b361c 100644 --- a/source/lib/popt_common.c +++ b/source/lib/popt_common.c @@ -348,8 +348,8 @@ static void popt_common_credentials_callback(poptContext con, struct poptOption popt_common_credentials[] = { { NULL, 0, POPT_ARG_CALLBACK|POPT_CBFLAG_PRE, popt_common_credentials_callback }, { "user", 'U', POPT_ARG_STRING, NULL, 'U', "Set the network username", "USERNAME" }, - { "no-pass", 'N', POPT_ARG_VAL, &cmdline_auth_info.got_pass, TRUE, "Don't ask for a password" }, - { "kerberos", 'k', POPT_ARG_VAL, &cmdline_auth_info.use_kerberos, TRUE, "Use kerberos (active directory) authentication" }, + { "no-pass", 'N', POPT_ARG_VAL, &cmdline_auth_info.got_pass, True, "Don't ask for a password" }, + { "kerberos", 'k', POPT_ARG_VAL, &cmdline_auth_info.use_kerberos, True, "Use kerberos (active directory) authentication" }, { "authentication-file", 'A', POPT_ARG_STRING, NULL, 'A', "Get the credentials from a file", "FILE" }, { "workgroup", 'W', POPT_ARG_STRING, NULL, 'W', "Set the workgroup name", "WORKGROUP" }, { 0 } -- cgit From 5f12b246b03aef93165059f632012b6fc4706c70 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 00:44:56 +0000 Subject: Convert to popt. --- source/Makefile.in | 6 +- source/utils/nmblookup.c | 222 +++++++++++++++++++---------------------------- 2 files changed, 91 insertions(+), 137 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index 79e8272fec7..1f8c0cf52c1 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -468,7 +468,7 @@ MNT_OBJ = client/smbmnt.o UMOUNT_OBJ = client/smbumount.o NMBLOOKUP_OBJ = utils/nmblookup.o $(PARAM_OBJ) $(UBIQX_OBJ) $(LIBNMB_OBJ) \ - $(LIB_OBJ) + $(LIB_OBJ) $(POPT_LIB_OBJ) SMBTORTURE_OBJ1 = torture/torture.o torture/nbio.o torture/scanner.o torture/utable.o \ torture/denytest.o torture/mangle_test.o @@ -786,9 +786,9 @@ bin/smbgroupedit@EXEEXT@: $(SMBGROUPEDIT_OBJ) bin/.dummy @echo Linking $@ @$(CC) $(FLAGS) -o $@ $(SMBGROUPEDIT_OBJ) $(LDFLAGS) $(LIBS) -bin/nmblookup@EXEEXT@: $(NMBLOOKUP_OBJ) bin/.dummy +bin/nmblookup@EXEEXT@: $(NMBLOOKUP_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(LIBS) + @$(CC) $(FLAGS) -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(LIBS) @BUILD_POPT@ bin/smbtorture@EXEEXT@: $(SMBTORTURE_OBJ) bin/.dummy @echo Linking $@ diff --git a/source/utils/nmblookup.c b/source/utils/nmblookup.c index 7e0ed4a2030..3ff7f6c6097 100644 --- a/source/utils/nmblookup.c +++ b/source/utils/nmblookup.c @@ -2,6 +2,7 @@ Unix SMB/CIFS implementation. NBT client - used to lookup netbios names Copyright (C) Andrew Tridgell 1994-1998 + Copyright (C) Jelmer Vernooij 2003 (Conversion to popt) 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 @@ -54,31 +55,6 @@ static BOOL open_sockets(void) return True; } - -/**************************************************************************** -usage on the program -****************************************************************************/ -static void usage(void) -{ - d_printf("Usage: nmblookup [options] name\n"); - d_printf("Version %s\n",VERSION); - d_printf("\t-d debuglevel set the debuglevel\n"); - d_printf("\t-B broadcast address the address to use for broadcasts\n"); - d_printf("\t-f list the NMB flags returned\n"); - d_printf("\t-U unicast address the address to use for unicast\n"); - d_printf("\t-M searches for a master browser\n"); - d_printf("\t-R set recursion desired in packet\n"); - d_printf("\t-S lookup node status as well\n"); - d_printf("\t-T translate IP addresses into names\n"); - d_printf("\t-r Use root port 137 (Win95 only replies to this)\n"); - d_printf("\t-A Do a node status on as an IP Address\n"); - d_printf("\t-i NetBIOS scope Use the given NetBIOS scope for name queries\n"); - d_printf("\t-s smb.conf file Use the given path to the smb.conf file\n"); - d_printf("\t-h Print this help message.\n"); - d_printf("\n If you specify -M and name is \"-\", nmblookup looks up __MSBROWSE__<01>\n"); - d_printf("\n"); -} - /**************************************************************************** turn a node status flags field into a string ****************************************************************************/ @@ -211,130 +187,108 @@ int main(int argc,char *argv[]) int opt; unsigned int lookup_type = 0x0; fstring lookup; - extern int optind; - extern char *optarg; BOOL find_master=False; - int i; BOOL lookup_by_ip = False; - int commandline_debuglevel = -2; - - DEBUGLEVEL = 1; - /* Prevent smb.conf setting from overridding */ - AllowDebugChange = False; - + poptContext pc; + + struct poptOption long_options[] = { + POPT_AUTOHELP + { "broadcast", 'b', POPT_ARG_STRING, NULL, 'B', "Specify address to use for broadcasts", "BROADCAST-ADDRESS" }, + { "flags", 'f', POPT_ARG_VAL, &give_flags, True, "List the NMB flags returned" }, + { "unicast", 'U', POPT_ARG_NONE, NULL, 'U', "Specify address to use for unicast" }, + { "master-browser", 'M', POPT_ARG_VAL, &find_master, True, "Search for a master browser" }, + { "recursion", 'R', POPT_ARG_VAL, &recursion_desired, True, "Set recursion desired in package" }, + { "status", 'S', POPT_ARG_VAL, &find_status, True, "Lookup node status as well" }, + { "translate", 'T', POPT_ARG_NONE, NULL, 'T', "Translate IP addresses into names" }, + { "root-port", 'r', POPT_ARG_VAL, &RootPort, True, "Use root port 137 (Win95 only replies to this)" }, + { "lookup-by-ip", 'A', POPT_ARG_VAL, &lookup_by_ip, True, "Do a node status on as an IP Address" }, + POPT_COMMON_SAMBA + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_scope }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, + { 0, 0, 0, 0 } + }; + *lookup = 0; setup_logging(argv[0],True); - while ((opt = getopt(argc, argv, "d:fB:U:i:s:SMrhART")) != EOF) - switch (opt) - { - case 'B': - bcast_addr = *interpret_addr2(optarg); - got_bcast = True; - use_bcast = True; - break; - case 'f': - give_flags = True; - break; - case 'U': - bcast_addr = *interpret_addr2(optarg); - got_bcast = True; - use_bcast = False; - break; - case 'T': - translate_addresses = !translate_addresses; - break; - case 'i': - set_global_scope(optarg); - break; - case 'M': - find_master = True; - break; - case 'S': - find_status = True; - break; - case 'R': - recursion_desired = True; - break; - case 'd': - commandline_debuglevel = DEBUGLEVEL = atoi(optarg); - break; - case 's': - pstrcpy(dyn_CONFIGFILE, optarg); - break; - case 'r': - RootPort = True; - break; - case 'h': - usage(); - exit(0); - break; - case 'A': - lookup_by_ip = True; - break; - default: - usage(); - exit(1); - } - - if (argc < 2) { - usage(); - exit(1); + pc = poptGetContext("nmblookup", argc, (const char **)argv, long_options, + POPT_CONTEXT_KEEP_FIRST); + + poptSetOtherOptionHelp(pc, " ..."); + + while ((opt = poptGetNextOpt(pc)) != -1) + switch (opt) + { + case 'B': + bcast_addr = *interpret_addr2(optarg); + got_bcast = True; + use_bcast = True; + break; + case 'U': + bcast_addr = *interpret_addr2(optarg); + got_bcast = True; + use_bcast = False; + break; + case 'T': + translate_addresses = !translate_addresses; + break; + } + + poptGetArg(pc); /* Remove argv[0] */ + + if(!poptPeekArg(pc)) { + poptPrintUsage(pc, stderr, 0); + exit(1); } if (!lp_load(dyn_CONFIGFILE,True,False,False)) { - fprintf(stderr, "Can't load %s - run testparm to debug it\n", dyn_CONFIGFILE); + fprintf(stderr, "Can't load %s - run testparm to debug it\n", dyn_CONFIGFILE); } - /* - * Ensure we reset DEBUGLEVEL if someone specified it - * on the command line. - */ - - if(commandline_debuglevel != -2) - DEBUGLEVEL = commandline_debuglevel; - load_interfaces(); if (!open_sockets()) return(1); - for (i=optind;i Date: Sun, 23 Mar 2003 00:47:35 +0000 Subject: We don't need optarg when we have popt --- source/utils/nmblookup.c | 4 ++-- source/utils/testparm.c | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/source/utils/nmblookup.c b/source/utils/nmblookup.c index 3ff7f6c6097..97cea3a7bbf 100644 --- a/source/utils/nmblookup.c +++ b/source/utils/nmblookup.c @@ -222,12 +222,12 @@ int main(int argc,char *argv[]) switch (opt) { case 'B': - bcast_addr = *interpret_addr2(optarg); + bcast_addr = *interpret_addr2(poptGetOptArg(pc)); got_bcast = True; use_bcast = True; break; case 'U': - bcast_addr = *interpret_addr2(optarg); + bcast_addr = *interpret_addr2(poptGetOptArg(pc)); got_bcast = True; use_bcast = False; break; diff --git a/source/utils/testparm.c b/source/utils/testparm.c index 60243b671be..22964214be4 100644 --- a/source/utils/testparm.c +++ b/source/utils/testparm.c @@ -188,8 +188,6 @@ via the %%o substitution. With encrypted passwords this is not possible.\n", lp_ int main(int argc, const char *argv[]) { - extern char *optarg; - extern int optind; const char *config_file = dyn_CONFIGFILE; int s; static BOOL silent_mode = False; -- cgit From 818bc35da7b66aa8c4156406b7ab3304d4c94a72 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 01:09:43 +0000 Subject: Don't declare variables after instructions --- source/client/client.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/source/client/client.c b/source/client/client.c index b917201985c..9fb843cfbae 100644 --- a/source/client/client.c +++ b/source/client/client.c @@ -2587,18 +2587,6 @@ static void remember_query_host(const char *arg, poptContext pc; char *p; int rc = 0; - -#ifdef KANJI - pstrcpy(term_code, KANJI); -#else /* KANJI */ - *term_code = 0; -#endif /* KANJI */ - - *query_host = 0; - *base_directory = 0; - - setup_logging(argv[0],True); - struct poptOption long_options[] = { POPT_AUTOHELP POPT_COMMON_SAMBA @@ -2625,6 +2613,18 @@ static void remember_query_host(const char *arg, { 0, 0, 0, 0 } }; + +#ifdef KANJI + pstrcpy(term_code, KANJI); +#else /* KANJI */ + *term_code = 0; +#endif /* KANJI */ + + *query_host = 0; + *base_directory = 0; + + setup_logging(argv[0],True); + pc = poptGetContext("smbclient", argc, (const char **) argv, long_options, POPT_CONTEXT_KEEP_FIRST); poptSetOtherOptionHelp(pc, "service "); -- cgit From 6509397f91a4c218552a48a96df06e595b630898 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sun, 23 Mar 2003 01:33:13 +0000 Subject: Patch from waider to update our samsync (net rpc vampire) code: - Decode all the database names, even if we don't decode their contents - Update the 'set' code to match rpc_server/srv_samr_nt.c in only recording the difference between the old and new. Andrew Bartlett --- source/utils/net_rpc_samsync.c | 190 +++++++++++++++++++++++++++++++++-------- 1 file changed, 155 insertions(+), 35 deletions(-) diff --git a/source/utils/net_rpc_samsync.c b/source/utils/net_rpc_samsync.c index 7d5c8681adf..74607676729 100644 --- a/source/utils/net_rpc_samsync.c +++ b/source/utils/net_rpc_samsync.c @@ -111,6 +111,37 @@ static void display_sam_entry(SAM_DELTA_HDR *hdr_delta, SAM_DELTA_CTR *delta) case SAM_DELTA_GROUP_INFO: display_group_info(hdr_delta->target_rid, &delta->group_info); break; + /* The following types are recognised but not handled */ + case SAM_DELTA_RENAME_GROUP: + d_printf("SAM_DELTA_RENAME_GROUP not handled\n"); + break; + case SAM_DELTA_RENAME_USER: + d_printf("SAM_DELTA_RENAME_USER not handled\n"); + break; + case SAM_DELTA_RENAME_ALIAS: + d_printf("SAM_DELTA_RENAME_ALIAS not handled\n"); + break; + case SAM_DELTA_POLICY_INFO: + d_printf("SAM_DELTA_POLICY_INFO not handled\n"); + break; + case SAM_DELTA_TRUST_DOMS: + d_printf("SAM_DELTA_TRUST_DOMS not handled\n"); + break; + case SAM_DELTA_PRIVS_INFO: + d_printf("SAM_DELTA_PRIVS_INFO not handled\n"); + break; + case SAM_DELTA_SECRET_INFO: + d_printf("SAM_DELTA_SECRET_INFO not handled\n"); + break; + case SAM_DELTA_DELETE_GROUP: + d_printf("SAM_DELTA_DELETE_GROUP not handled\n"); + break; + case SAM_DELTA_DELETE_USER: + d_printf("SAM_DELTA_DELETE_USER not handled\n"); + break; + case SAM_DELTA_MODIFIED_COUNT: + d_printf("SAM_DELTA_MODIFIED_COUNT not handled\n"); + break; default: d_printf("Unknown delta record type %d\n", hdr_delta->type); break; @@ -132,7 +163,20 @@ static void dump_database(struct cli_state *cli, unsigned db_type, DOM_CRED *ret return; } - d_printf("Dumping database %u\n", db_type); + switch( db_type ) { + case SAM_DATABASE_DOMAIN: + d_printf("Dumping DOMAIN database\n"); + break; + case SAM_DATABASE_BUILTIN: + d_printf("Dumping BUILTIN database\n"); + break; + case SAM_DATABASE_PRIVS: + d_printf("Dumping PRIVS databases\n"); + break; + default: + d_printf("Dumping unknown database type %u\n", db_type ); + break; + } do { result = cli_netlogon_sam_sync(cli, mem_ctx, ret_creds, db_type, @@ -197,70 +241,143 @@ fail: } /* Convert a SAM_ACCOUNT_DELTA to a SAM_ACCOUNT. */ +#define STRING_CHANGED (old_string && !new_string) ||\ + (!old_string && new_string) ||\ + (old_string && new_string && (strcmp(old_string, new_string) != 0)) static NTSTATUS sam_account_from_delta(SAM_ACCOUNT *account, SAM_ACCOUNT_INFO *delta) { - fstring s; + const char *old_string, *new_string; + time_t unix_time, stored_time; uchar lm_passwd[16], nt_passwd[16]; static uchar zero_buf[16]; /* Username, fullname, home dir, dir drive, logon script, acct desc, workstations, profile. */ - unistr2_to_ascii(s, &delta->uni_acct_name, sizeof(s) - 1); - pdb_set_nt_username(account, s, PDB_CHANGED); + if (delta->hdr_acct_name.buffer) { + old_string = pdb_get_nt_username(account); + new_string = unistr2_static(&delta->uni_acct_name); + + if (STRING_CHANGED) { + pdb_set_nt_username(account, new_string, PDB_CHANGED); + + } + + /* Unix username is the same - for sanity */ + old_string = pdb_get_username( account ); + if (STRING_CHANGED) { + pdb_set_username(account, new_string, PDB_CHANGED); + } + } + + if (delta->hdr_full_name.buffer) { + old_string = pdb_get_fullname(account); + new_string = unistr2_static(&delta->uni_full_name); + + if (STRING_CHANGED) + pdb_set_fullname(account, new_string, PDB_CHANGED); + } - /* Unix username is the same - for sainity */ - pdb_set_username(account, s, PDB_CHANGED); + if (delta->hdr_home_dir.buffer) { + old_string = pdb_get_homedir(account); + new_string = unistr2_static(&delta->uni_home_dir); + + if (STRING_CHANGED) + pdb_set_homedir(account, new_string, PDB_CHANGED); + } - unistr2_to_ascii(s, &delta->uni_full_name, sizeof(s) - 1); - pdb_set_fullname(account, s, PDB_CHANGED); + if (delta->hdr_dir_drive.buffer) { + old_string = pdb_get_dir_drive(account); + new_string = unistr2_static(&delta->uni_dir_drive); - unistr2_to_ascii(s, &delta->uni_home_dir, sizeof(s) - 1); - pdb_set_homedir(account, s, PDB_CHANGED); + if (STRING_CHANGED) + pdb_set_dir_drive(account, new_string, PDB_CHANGED); + } - unistr2_to_ascii(s, &delta->uni_dir_drive, sizeof(s) - 1); - pdb_set_dir_drive(account, s, PDB_CHANGED); + if (delta->hdr_logon_script.buffer) { + old_string = pdb_get_logon_script(account); + new_string = unistr2_static(&delta->uni_logon_script); - unistr2_to_ascii(s, &delta->uni_logon_script, sizeof(s) - 1); - pdb_set_logon_script(account, s, PDB_CHANGED); + if (STRING_CHANGED) + pdb_set_logon_script(account, new_string, PDB_CHANGED); + } - unistr2_to_ascii(s, &delta->uni_acct_desc, sizeof(s) - 1); - pdb_set_acct_desc(account, s, PDB_CHANGED); + if (delta->hdr_acct_desc.buffer) { + old_string = pdb_get_acct_desc(account); + new_string = unistr2_static(&delta->uni_acct_desc); - unistr2_to_ascii(s, &delta->uni_workstations, sizeof(s) - 1); - pdb_set_workstations(account, s, PDB_CHANGED); + if (STRING_CHANGED) + pdb_set_acct_desc(account, new_string, PDB_CHANGED); + } - unistr2_to_ascii(s, &delta->uni_profile, sizeof(s) - 1); - pdb_set_profile_path(account, s, PDB_CHANGED); + if (delta->hdr_workstations.buffer) { + old_string = pdb_get_workstations(account); + new_string = unistr2_static(&delta->uni_workstations); - /* User and group sid */ + if (STRING_CHANGED) + pdb_set_workstations(account, new_string, PDB_CHANGED); + } - pdb_set_user_sid_from_rid(account, delta->user_rid, PDB_CHANGED); - pdb_set_group_sid_from_rid(account, delta->group_rid, PDB_CHANGED); + if (delta->hdr_profile.buffer) { + old_string = pdb_get_profile_path(account); + new_string = unistr2_static(&delta->uni_profile); + + if (STRING_CHANGED) + pdb_set_profile_path(account, new_string, PDB_CHANGED); + } + + /* User and group sid */ + if (pdb_get_user_rid(account) != delta->user_rid) + pdb_set_user_sid_from_rid(account, delta->user_rid, PDB_CHANGED); + if (pdb_get_group_rid(account) != delta->group_rid) + pdb_set_group_sid_from_rid(account, delta->group_rid, PDB_CHANGED); /* Logon and password information */ + if (!nt_time_is_zero(&delta->logon_time)) { + unix_time = nt_time_to_unix(&delta->logon_time); + stored_time = pdb_get_logon_time(account); + if (stored_time != unix_time) + pdb_set_logon_time(account, unix_time, PDB_CHANGED); + } - pdb_set_logon_time(account, nt_time_to_unix(&delta->logon_time), PDB_CHANGED); - pdb_set_logoff_time(account, nt_time_to_unix(&delta->logoff_time), - PDB_CHANGED); - pdb_set_logon_divs(account, delta->logon_divs, PDB_CHANGED); + if (!nt_time_is_zero(&delta->logoff_time)) { + unix_time = nt_time_to_unix(&delta->logoff_time); + stored_time = pdb_get_logoff_time(account); + if (stored_time != unix_time) + pdb_set_logoff_time(account, unix_time,PDB_CHANGED); + } + + if (pdb_get_logon_divs(account) != delta->logon_divs) + pdb_set_logon_divs(account, delta->logon_divs, PDB_CHANGED); /* TODO: logon hours */ /* TODO: bad password count */ /* TODO: logon count */ - pdb_set_pass_last_set_time( - account, nt_time_to_unix(&delta->pwd_last_set_time), PDB_CHANGED); + if (!nt_time_is_zero(&delta->pwd_last_set_time)) { + unix_time = nt_time_to_unix(&delta->pwd_last_set_time); + stored_time = pdb_get_pass_last_set_time(account); + if (stored_time != unix_time) + pdb_set_pass_last_set_time(account, unix_time, PDB_CHANGED); + } - pdb_set_kickoff_time(account, get_time_t_max(), PDB_CHANGED); +#if 0 +/* No kickoff time in the delta? */ + if (!nt_time_is_zero(&delta->kickoff_time)) { + unix_time = nt_time_to_unix(&delta->kickoff_time); + stored_time = pdb_get_kickoff_time(account); + if (stored_time != unix_time) + pdb_set_kickoff_time(account, unix_time, PDB_CHANGED); + } +#endif /* Decode hashes from password hash Note that win2000 may send us all zeros for the hashes if it doesn't think this channel is secure enough - don't set the passwords at all in that case - */ + */ if (memcmp(delta->pass.buf_lm_pwd, zero_buf, 16) != 0) { sam_pwd_hash(delta->user_rid, delta->pass.buf_lm_pwd, lm_passwd, 0); pdb_set_lanman_passwd(account, lm_passwd, PDB_CHANGED); @@ -273,7 +390,9 @@ sam_account_from_delta(SAM_ACCOUNT *account, SAM_ACCOUNT_INFO *delta) /* TODO: account expiry time */ - pdb_set_acct_ctrl(account, delta->acb_info, PDB_CHANGED); + if (pdb_get_acct_ctrl(account) != delta->acb_info) + pdb_set_acct_ctrl(account, delta->acb_info, PDB_CHANGED); + return NT_STATUS_OK; } @@ -300,7 +419,8 @@ fetch_account_info(uint32 rid, SAM_ACCOUNT_INFO *delta) if (delta->acb_info & ACB_NORMAL) { pstrcpy(add_script, lp_adduser_script()); } else if ( (delta->acb_info & ACB_WSTRUST) || - (delta->acb_info & ACB_SVRTRUST) ) { + (delta->acb_info & ACB_SVRTRUST) || + (delta->acb_info & ACB_DOMTRUST) ) { pstrcpy(add_script, lp_addmachine_script()); } else { DEBUG(1, ("Unknown user type: %s\n", @@ -386,7 +506,7 @@ fetch_group_info(uint32 rid, SAM_GROUP_INFO *delta) /* No group found from mapping, find it from its name. */ if ((grp = getgrnam(name)) == NULL) { - /* No appropriate group found, create one */ + /* No appropriate group found, create one */ d_printf("Creating unix group: '%s'\n", name); if (smb_create_group(name, &gid) != 0) return NT_STATUS_ACCESS_DENIED; @@ -565,7 +685,7 @@ static NTSTATUS fetch_alias_info(uint32 rid, SAM_ALIAS_INFO *delta, /* No group found from mapping, find it from its name. */ if ((grp = getgrnam(name)) == NULL) { - /* No appropriate group found, create one */ + /* No appropriate group found, create one */ d_printf("Creating unix group: '%s'\n", name); if (smb_create_group(name, &gid) != 0) return NT_STATUS_ACCESS_DENIED; -- cgit From 3a7d1e72e208b9609da4ff65d9fff9179799ecac Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 23 Mar 2003 08:40:28 +0000 Subject: Metzes change: > Hi Volker, > > if 'displayName' is not available we should fallback to 'cn' for map->nt_name > 'cn' is used as unix group name by nss_ldap. > > and if nt_name is not available we should fail (so does this patch) Volker --- source/passdb/pdb_ldap.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/source/passdb/pdb_ldap.c b/source/passdb/pdb_ldap.c index 9eab2863daf..f137d27cffa 100644 --- a/source/passdb/pdb_ldap.c +++ b/source/passdb/pdb_ldap.c @@ -2109,7 +2109,7 @@ static void free_private_data(void **vp) /* No need to free any further, as it is talloc()ed */ } -static const char *group_attr[] = {"gid", "ntSid", "ntGroupType", +static const char *group_attr[] = {"cn", "ntSid", "ntGroupType", "gidNumber", "displayName", "description", NULL }; @@ -2155,7 +2155,7 @@ static BOOL init_group_from_ldap(struct ldapsam_privates *ldap_state, } DEBUG(2, ("Entry found for group: %s\n", temp)); - map->gid = (uint32)atol(temp); + map->gid = (gid_t)atol(temp); if (!get_single_attribute(ldap_state->ldap_struct, entry, "ntSid", temp)) { @@ -2188,6 +2188,12 @@ static BOOL init_group_from_ldap(struct ldapsam_privates *ldap_state, temp)) { DEBUG(3, ("Attribute description not found\n")); temp[0] = '\0'; + if (!get_single_attribute(ldap_state->ldap_struct, entry, "cn", + temp)) { + DEBUG(0, ("Attributes cn not found either " + "for gidNumber(%i)\n",map->gid)); + return False; + } } fstrcpy(map->comment, temp); @@ -2300,8 +2306,8 @@ static NTSTATUS ldapsam_getgrnam(struct pdb_methods *methods, GROUP_MAP *map, /* TODO: Escaping of name? */ snprintf(filter, sizeof(filter)-1, - "(&(objectClass=sambaGroupMapping)(displayName=%s))", - name); + "(&(objectClass=sambaGroupMapping)(|(displayName=%s)(cn=%s)))", + name, name); return ldapsam_getgroup(methods, filter, map); } -- cgit From 353309e2a3bc27e918bd0a6cf22833d57895fbc8 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 23 Mar 2003 09:04:25 +0000 Subject: This adds 'ldap delete dn' as the recommended parameter for the 'ldap del only sam attr' functionality. So we are compatiple to the current SuSE patches as well as to TNG... ;-) Volker --- docs/docbook/manpages/smb.conf.5.sgml | 18 ++++++++++++++---- source/param/loadparm.c | 9 +++++---- source/passdb/pdb_ldap.c | 4 ++-- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/docs/docbook/manpages/smb.conf.5.sgml b/docs/docbook/manpages/smb.conf.5.sgml index 7aaa1895787..0f5e751a64f 100644 --- a/docs/docbook/manpages/smb.conf.5.sgml +++ b/docs/docbook/manpages/smb.conf.5.sgml @@ -656,6 +656,7 @@ alias|alias|alias|alias... large readwrite ldap admin dn + ldap delete dn ldap del only sam attr ldap filter ldap port @@ -3437,13 +3438,22 @@ df $1 | tail -1 | awk '{print $2" "$4}' - ldap del only sam attr (G) + ldap del only sam attr (G) This parameter specifies whether a delete - operation in the ldapsam deletes only the Samba-specific - attributes or the complete LDAP entry. + operation in the ldapsam deletes the complete entry or only the attributes + specific to Samba. - Default : ldap del only sam attr = yes + Default : ldap delete dn = no + + + + + + ldap del only sam attr (G) + Inverted synonym for + ldap delete dn. + diff --git a/source/param/loadparm.c b/source/param/loadparm.c index 0aa5f08be77..d17db163811 100644 --- a/source/param/loadparm.c +++ b/source/param/loadparm.c @@ -230,7 +230,7 @@ typedef struct BOOL ldap_trust_ids; char *szAclCompat; int ldap_passwd_sync; - BOOL ldap_del_only_sam; + BOOL ldap_delete_dn; BOOL bMsAddPrinterWizard; BOOL bDNSproxy; BOOL bWINSsupport; @@ -1043,7 +1043,8 @@ static struct parm_struct parm_table[] = { {"ldap ssl", P_ENUM, P_GLOBAL, &Globals.ldap_ssl, NULL, enum_ldap_ssl, FLAG_ADVANCED | FLAG_DEVELOPER}, {"ldap passwd sync", P_ENUM, P_GLOBAL, &Globals.ldap_passwd_sync, NULL, enum_ldap_passwd_sync, FLAG_ADVANCED | FLAG_DEVELOPER}, {"ldap trust ids", P_BOOL, P_GLOBAL, &Globals.ldap_trust_ids, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER}, - {"ldap del only sam attr", P_BOOL, P_GLOBAL, &Globals.ldap_del_only_sam, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER}, + {"ldap delete dn", P_BOOL, P_GLOBAL, &Globals.ldap_delete_dn, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER}, + {"ldap del only sam attr", P_BOOLREV, P_GLOBAL, &Globals.ldap_delete_dn, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER}, {"Miscellaneous Options", P_SEP, P_SEPARATOR}, {"add share command", P_STRING, P_GLOBAL, &Globals.szAddShareCommand, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER}, @@ -1428,7 +1429,7 @@ static void init_globals(void) string_set(&Globals.szLdapAdminDn, ""); Globals.ldap_ssl = LDAP_SSL_ON; Globals.ldap_passwd_sync = LDAP_PASSWD_SYNC_OFF; - Globals.ldap_del_only_sam = True; + Globals.ldap_delete_dn = False; /* these parameters are set to defaults that are more appropriate for the increasing samba install base: @@ -1660,7 +1661,7 @@ FN_GLOBAL_STRING(lp_ldap_admin_dn, &Globals.szLdapAdminDn) FN_GLOBAL_INTEGER(lp_ldap_ssl, &Globals.ldap_ssl) FN_GLOBAL_INTEGER(lp_ldap_passwd_sync, &Globals.ldap_passwd_sync) FN_GLOBAL_BOOL(lp_ldap_trust_ids, &Globals.ldap_trust_ids) -FN_GLOBAL_BOOL(lp_ldap_del_only_sam, &Globals.ldap_del_only_sam) +FN_GLOBAL_BOOL(lp_ldap_delete_dn, &Globals.ldap_delete_dn) FN_GLOBAL_STRING(lp_add_share_cmd, &Globals.szAddShareCommand) FN_GLOBAL_STRING(lp_change_share_cmd, &Globals.szChangeShareCommand) FN_GLOBAL_STRING(lp_delete_share_cmd, &Globals.szDeleteShareCommand) diff --git a/source/passdb/pdb_ldap.c b/source/passdb/pdb_ldap.c index f137d27cffa..f4d04561c11 100644 --- a/source/passdb/pdb_ldap.c +++ b/source/passdb/pdb_ldap.c @@ -848,7 +848,7 @@ static void make_a_mod (LDAPMod *** modlist, int modop, const char *attribute, c /******************************************************************* Delete complete object or objectclass and attrs from - object found in search_result depending on lp_ldap_del_only_sam + object found in search_result depending on lp_ldap_delete_dn ******************************************************************/ static NTSTATUS ldapsam_delete_entry(struct ldapsam_privates *ldap_state, LDAPMessage *result, @@ -871,7 +871,7 @@ static NTSTATUS ldapsam_delete_entry(struct ldapsam_privates *ldap_state, entry = ldap_first_entry(ldap_state->ldap_struct, result); dn = ldap_get_dn(ldap_state->ldap_struct, entry); - if (!lp_ldap_del_only_sam()) { + if (lp_ldap_delete_dn()) { NTSTATUS ret = NT_STATUS_OK; rc = ldapsam_delete(ldap_state, dn); -- cgit From a91af4bea8e761a812f5c70fdc7c7cd15366b412 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 23 Mar 2003 11:44:14 +0000 Subject: The group mapping functions are not called directly anymore, but instead through the passdb interface. So we can make them static. Volker --- source/groupdb/mapping.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/groupdb/mapping.c b/source/groupdb/mapping.c index 02fc23418f9..61c0dfb4b8e 100644 --- a/source/groupdb/mapping.c +++ b/source/groupdb/mapping.c @@ -249,7 +249,7 @@ static BOOL init_group_mapping(void) /**************************************************************************** ****************************************************************************/ -BOOL add_mapping_entry(GROUP_MAP *map, int flag) +static BOOL add_mapping_entry(GROUP_MAP *map, int flag) { TDB_DATA kbuf, dbuf; pstring key, buf; @@ -505,7 +505,7 @@ BOOL remove_privilege(PRIVILEGE_SET *priv_set, LUID_ATTR set) Return the sid and the type of the unix group. ****************************************************************************/ -BOOL get_group_map_from_sid(DOM_SID sid, GROUP_MAP *map, BOOL with_priv) +static BOOL get_group_map_from_sid(DOM_SID sid, GROUP_MAP *map, BOOL with_priv) { TDB_DATA kbuf, dbuf; pstring key; @@ -569,7 +569,7 @@ BOOL get_group_map_from_sid(DOM_SID sid, GROUP_MAP *map, BOOL with_priv) Return the sid and the type of the unix group. ****************************************************************************/ -BOOL get_group_map_from_gid(gid_t gid, GROUP_MAP *map, BOOL with_priv) +static BOOL get_group_map_from_gid(gid_t gid, GROUP_MAP *map, BOOL with_priv) { TDB_DATA kbuf, dbuf, newkey; fstring string_sid; @@ -634,7 +634,7 @@ BOOL get_group_map_from_gid(gid_t gid, GROUP_MAP *map, BOOL with_priv) Return the sid and the type of the unix group. ****************************************************************************/ -BOOL get_group_map_from_ntname(char *name, GROUP_MAP *map, BOOL with_priv) +static BOOL get_group_map_from_ntname(char *name, GROUP_MAP *map, BOOL with_priv) { TDB_DATA kbuf, dbuf, newkey; fstring string_sid; @@ -701,7 +701,7 @@ BOOL get_group_map_from_ntname(char *name, GROUP_MAP *map, BOOL with_priv) Remove a group mapping entry. ****************************************************************************/ -BOOL group_map_remove(DOM_SID sid) +static BOOL group_map_remove(DOM_SID sid) { TDB_DATA kbuf, dbuf; pstring key; @@ -736,7 +736,7 @@ BOOL group_map_remove(DOM_SID sid) Enumerate the group mapping. ****************************************************************************/ -BOOL enum_group_mapping(enum SID_NAME_USE sid_name_use, GROUP_MAP **rmap, +static BOOL enum_group_mapping(enum SID_NAME_USE sid_name_use, GROUP_MAP **rmap, int *num_entries, BOOL unix_only, BOOL with_priv) { TDB_DATA kbuf, dbuf, newkey; -- cgit From 6d3faeaef6c77e389d39b6d4660ffea13e7f25f2 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 23 Mar 2003 11:49:24 +0000 Subject: This does two things: * pdbedit -i -e sets all SAM_ACCOUNT elements to CHANGED to satisfy the new pdb_ldap.c handling * pdbedit -g transfers group mappings. I made this separate from the user database, as current installations have to live with a split backend. So, if you are running 3_0 alphas with LDAP as a backend and upgrade to the next 3_0 alpha, you should call pdbedit -i tdbsam -e ldapsam -g to transfer your group mapping database to LDAP. You certainly have to have all your groups as posixGroup objects in LDAP and adapt the LDAP schema before this call. Volker --- docs/docbook/manpages/pdbedit.8.sgml | 26 ++++++++++++++++++++++++ source/utils/pdbedit.c | 38 +++++++++++++++++++++++++++++++++++- 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/docs/docbook/manpages/pdbedit.8.sgml b/docs/docbook/manpages/pdbedit.8.sgml index 973b772374c..113f23f9c4a 100644 --- a/docs/docbook/manpages/pdbedit.8.sgml +++ b/docs/docbook/manpages/pdbedit.8.sgml @@ -31,7 +31,9 @@ -x -i passdb-backend -e passdb-backend + -g -b passdb-backend + -g -d debuglevel -s configfile -P account-policy @@ -263,6 +265,30 @@ retype new password + + -g + If you specify -g, + then -i in-backend -e out-backend + applies to the group mapping instead of the user database. + + This option will ease migration from one passdb backend to + another and will ease backing up. + + + + + + -g + If you specify -g, + then -i in-backend -e out-backend + applies to the group mapping instead of the user database. + + This option will ease migration from one passdb backend to + another and will ease backing up. + + + + -b passdb-backend Use a different default passdb backend. diff --git a/source/utils/pdbedit.c b/source/utils/pdbedit.c index 17e184ea872..3dfc6206b4a 100644 --- a/source/utils/pdbedit.c +++ b/source/utils/pdbedit.c @@ -69,6 +69,12 @@ static int export_database (struct pdb_context *in, struct pdb_context *out) { } while (NT_STATUS_IS_OK(in->pdb_getsampwent(in, user))) { + int i; + + for (i=0; ipdb_add_sam_account(out, user); if (!NT_STATUS_IS_OK(pdb_reset_sam(user))){ fprintf(stderr, "Can't reset SAM_ACCOUNT!\n"); @@ -81,6 +87,30 @@ static int export_database (struct pdb_context *in, struct pdb_context *out) { return 0; } +/********************************************************* + Add all currently available group mappings to another db + ********************************************************/ + +static int export_groups (struct pdb_context *in, struct pdb_context *out) { + GROUP_MAP *maps = NULL; + int i, entries = 0; + + if (NT_STATUS_IS_ERR(in->pdb_enum_group_mapping(in, SID_NAME_UNKNOWN, + &maps, &entries, + False, False))) { + fprintf(stderr, "Can't get group mappings!\n"); + return 1; + } + + for (i=0; ipdb_add_group_mapping_entry(out, &(maps[i])); + } + + SAFE_FREE(maps); + + return 0; +} + /********************************************************* Print info from sam structure **********************************************************/ @@ -478,6 +508,7 @@ int main (int argc, char **argv) static char *backend = NULL; static char *backend_in = NULL; static char *backend_out = NULL; + static BOOL transfer_groups = False; static char *logon_script = NULL; static char *profile_path = NULL; static char *account_control = NULL; @@ -507,6 +538,7 @@ int main (int argc, char **argv) {"backend", 'b', POPT_ARG_STRING, &backend, 0, "use different passdb backend as default backend", NULL}, {"import", 'i', POPT_ARG_STRING, &backend_in, 0, "import user accounts from this backend", NULL}, {"export", 'e', POPT_ARG_STRING, &backend_out, 0, "export user accounts to this backend", NULL}, + {"group", 'g', POPT_ARG_NONE, &transfer_groups, 0, "use -i and -e for groups", NULL}, {"account-policy", 'P', POPT_ARG_STRING, &account_policy, 0,"value of an account policy (like maximum password age)",NULL}, {"value", 'C', POPT_ARG_LONG, &account_policy_value, 'C',"set the account policy to this value", NULL}, {"account-control", 'c', POPT_ARG_STRING, &account_control, 0, "Values of account control", NULL}, @@ -624,7 +656,11 @@ int main (int argc, char **argv) } else { bout = bdef; } - return export_database(bin, bout); + if (transfer_groups) { + return export_groups(bin, bout); + } else { + return export_database(bin, bout); + } } /* if BIT_USER is defined but nothing else then threat it as -l -u for compatibility */ -- cgit From 78e135cdb17dcf70d8a1259897fd44ecd7a4b3c6 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 12:29:19 +0000 Subject: Don't duplicate the default group mapping functions - use the ones from passdb --- source/modules/mysql.c | 60 -------------------------------------------------- 1 file changed, 60 deletions(-) diff --git a/source/modules/mysql.c b/source/modules/mysql.c index 47883ca7f7d..40694d6e7d4 100644 --- a/source/modules/mysql.c +++ b/source/modules/mysql.c @@ -893,59 +893,6 @@ static NTSTATUS mysqlsam_update_sam_account(struct pdb_methods *methods, return mysqlsam_replace_sam_account(methods, newpwd, 1); } -static NTSTATUS mysqlsam_getgrsid(struct pdb_methods *methods, GROUP_MAP *map, - DOM_SID sid, BOOL with_priv) -{ - return get_group_map_from_sid(sid, map, with_priv) ? - NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL; -} - -static NTSTATUS mysqlsam_getgrgid(struct pdb_methods *methods, GROUP_MAP *map, - gid_t gid, BOOL with_priv) -{ - return get_group_map_from_gid(gid, map, with_priv) ? - NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL; -} - -static NTSTATUS mysqlsam_getgrnam(struct pdb_methods *methods, GROUP_MAP *map, - char *name, BOOL with_priv) -{ - return get_group_map_from_ntname(name, map, with_priv) ? - NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL; -} - -static NTSTATUS mysqlsam_add_group_mapping_entry(struct pdb_methods *methods, - GROUP_MAP *map) -{ - return add_mapping_entry(map, TDB_INSERT) ? - NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL; -} - -static NTSTATUS mysqlsam_update_group_mapping_entry(struct pdb_methods *methods, - GROUP_MAP *map) -{ - return add_mapping_entry(map, TDB_REPLACE) ? - NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL; -} - -static NTSTATUS mysqlsam_delete_group_mapping_entry(struct pdb_methods *methods, - DOM_SID sid) -{ - return group_map_remove(sid) ? - NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL; -} - -static NTSTATUS mysqlsam_enum_group_mapping(struct pdb_methods *methods, - enum SID_NAME_USE sid_name_use, - GROUP_MAP **rmap, int *num_entries, - BOOL unix_only, BOOL with_priv) -{ - return enum_group_mapping(sid_name_use, rmap, num_entries, unix_only, - with_priv) ? - NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL; -} - - static NTSTATUS mysqlsam_init(struct pdb_context * pdb_context, struct pdb_methods ** pdb_method, const char *location) { @@ -979,13 +926,6 @@ static NTSTATUS mysqlsam_init(struct pdb_context * pdb_context, struct pdb_metho (*pdb_method)->add_sam_account = mysqlsam_add_sam_account; (*pdb_method)->update_sam_account = mysqlsam_update_sam_account; (*pdb_method)->delete_sam_account = mysqlsam_delete_sam_account; - (*pdb_method)->getgrsid = mysqlsam_getgrsid; - (*pdb_method)->getgrgid = mysqlsam_getgrgid; - (*pdb_method)->getgrnam = mysqlsam_getgrnam; - (*pdb_method)->add_group_mapping_entry = mysqlsam_add_group_mapping_entry; - (*pdb_method)->update_group_mapping_entry = mysqlsam_update_group_mapping_entry; - (*pdb_method)->delete_group_mapping_entry = mysqlsam_delete_group_mapping_entry; - (*pdb_method)->enum_group_mapping = mysqlsam_enum_group_mapping; data = talloc(pdb_context->mem_ctx, sizeof(struct pdb_mysql_data)); (*pdb_method)->private_data = data; -- cgit From a1576694a6f23e1c70d7d81ac4feedd4f29c5400 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 12:40:48 +0000 Subject: Use popt_common for -s, -d and -V --- source/utils/net.c | 19 +++++-------------- source/utils/net_help.c | 5 +++-- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/source/utils/net.c b/source/utils/net.c index f6b3c5c84ce..33c125901b9 100644 --- a/source/utils/net.c +++ b/source/utils/net.c @@ -78,8 +78,6 @@ static int opt_machine_pass = 0; BOOL opt_have_ip = False; struct in_addr opt_dest_ip; -extern BOOL AllowDebugChange; - /* run a function from a function table. If not found then call the specified usage function @@ -513,8 +511,6 @@ static struct functable net_func[] = { int argc_new = 0; const char ** argv_new; poptContext pc; - static char *servicesf = dyn_CONFIGFILE; - static char *debuglevel = NULL; struct poptOption long_options[] = { {"help", 'h', POPT_ARG_NONE, 0, 'h'}, @@ -524,7 +520,6 @@ static struct functable net_func[] = { {"ipaddress", 'I', POPT_ARG_STRING, 0,'I'}, {"port", 'p', POPT_ARG_INT, &opt_port}, {"myname", 'n', POPT_ARG_STRING, &opt_requester_name}, - {"conf", 's', POPT_ARG_STRING, &servicesf}, {"server", 'S', POPT_ARG_STRING, &opt_host}, {"container", 'c', POPT_ARG_STRING, &opt_container}, {"comment", 'C', POPT_ARG_STRING, &opt_comment}, @@ -536,8 +531,9 @@ static struct functable net_func[] = { {"force", 'f', POPT_ARG_NONE, &opt_force}, {"timeout", 't', POPT_ARG_INT, &opt_timeout}, {"machine-pass",'P', POPT_ARG_NONE, &opt_machine_pass}, - {"debuglevel", 'd', POPT_ARG_STRING, &debuglevel}, - {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version}, + POPT_COMMON_SAMBA + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, { 0, 0, 0, 0} }; @@ -577,13 +573,8 @@ static struct functable net_func[] = { exit(1); } } - - if (debuglevel) { - debug_parse_levels(debuglevel); - AllowDebugChange = False; - } - - lp_load(servicesf,True,False,False); + + lp_load(dyn_CONFIGFILE,True,False,False); argv_new = (const char **)poptGetArgs(pc); diff --git a/source/utils/net_help.c b/source/utils/net_help.c index 4000a248ff6..07409aec228 100644 --- a/source/utils/net_help.c +++ b/source/utils/net_help.c @@ -42,11 +42,12 @@ int net_common_flags_usage(int argc, const char **argv) d_printf("Valid miscellaneous options are:\n"); /* misc options */ d_printf("\t-p or --port=\t\tconnection port on target\n"); d_printf("\t-W or --myworkgroup=\tclient workgroup\n"); - d_printf("\t-d or --debug=\t\tdebug level (0-10)\n"); + d_printf("\t-d or --debuglevel=\t\tdebug level (0-10)\n"); d_printf("\t-n or --myname=\t\tclient name\n"); d_printf("\t-U or --user=\t\tuser name\n"); - d_printf("\t-s or --conf=\t\tpathname of smb.conf file\n"); + d_printf("\t-s or --configfile=\t\tpathname of smb.conf file\n"); d_printf("\t-l or --long\t\t\tDisplay full information\n"); + d_printf("\t-V or --version\t\tPrint samba version information\n"); d_printf("\t-P or --machine-pass\t\tAuthenticate as machine account\n"); return -1; } -- cgit From 83c7f1e1661da14ee46d4ca7a698728fb1beb23b Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 13:02:15 +0000 Subject: Convert to popt. --- source/Makefile.in | 6 +-- source/wrepld/server.c | 110 +++++++++++-------------------------------------- 2 files changed, 28 insertions(+), 88 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index 1f8c0cf52c1..d23a517a5fc 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -357,7 +357,7 @@ WREPL_OBJ1 = wrepld/server.o wrepld/process.o wrepld/parser.o wrepld/socket.o \ wrepld/partners.o WREPL_OBJ = $(WREPL_OBJ1) $(PARAM_OBJ) $(UBIQX_OBJ) \ - $(PROFILE_OBJ) $(LIB_OBJ) + $(PROFILE_OBJ) $(LIB_OBJ) $(POPT_LIB_OBJ) SWAT_OBJ1 = web/cgi.o web/diagnose.o web/startstop.o web/statuspage.o \ web/swat.o web/neg_lang.o @@ -705,9 +705,9 @@ bin/nmbd@EXEEXT@: $(NMBD_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ @$(CC) $(FLAGS) -o $@ $(NMBD_OBJ) $(LDFLAGS) $(LIBS) @BUILD_POPT@ -bin/wrepld@EXEEXT@: $(WREPL_OBJ) bin/.dummy +bin/wrepld@EXEEXT@: $(WREPL_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(WREPL_OBJ) $(LDFLAGS) $(LIBS) + @$(CC) $(FLAGS) -o $@ $(WREPL_OBJ) $(LDFLAGS) $(LIBS) @BUILD_POPT@ bin/swat@EXEEXT@: $(SWAT_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ diff --git a/source/wrepld/server.c b/source/wrepld/server.c index 31f260e94c0..5203d337457 100644 --- a/source/wrepld/server.c +++ b/source/wrepld/server.c @@ -166,23 +166,6 @@ void exit_server(const char *reason) static void usage(char *pname) { - d_printf("Usage: %s [-DFSaioPh?V] [-d debuglevel] [-l log basename] [-p port]\n", pname); - d_printf(" [-O socket options] [-s services file]\n"); - d_printf("\t-D Become a daemon (default)\n"); - d_printf("\t-F Run daemon in foreground (for daemontools, etc)\n"); - d_printf("\t-S Log to stdout\n"); - d_printf("\t-a Append to log file (default)\n"); - d_printf("\t-i Run interactive (not a daemon)\n" ); - d_printf("\t-o Overwrite log file, don't append\n"); - d_printf("\t-h Print usage\n"); - d_printf("\t-? Print usage\n"); - d_printf("\t-V Print version\n"); - d_printf("\t-d debuglevel Set the debuglevel\n"); - d_printf("\t-l log basename. Basename for log/debug files\n"); - d_printf("\t-p port Listen on the specified port\n"); - d_printf("\t-O socket options Socket options\n"); - d_printf("\t-s services file. Filename of services file\n"); - d_printf("\n"); } /**************************************************************************** @@ -520,84 +503,47 @@ static void process(void) ****************************************************************************/ int main(int argc,char *argv[]) { - extern char *optarg; /* shall I run as a daemon */ - BOOL is_daemon = False; - BOOL interactive = False; - BOOL specified_logfile = False; - BOOL Fork = True; - BOOL log_stdout = False; + static BOOL is_daemon = False; + static BOOL interactive = False; + static BOOL Fork = True; + static BOOL log_stdout = False; + struct poptOption long_options[] = { + POPT_AUTOHELP + POPT_COMMON_SAMBA + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_socket_options }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_log_base }, + { "daemon", 'D', POPT_ARG_VAL, &is_daemon, True, "Become a daemon (default)" }, + { "foreground", 'F', POPT_ARG_VAL, &Fork, False, "Run daemon in foreground (for daemontools, etc)" }, + { "stdout", 'S', POPT_ARG_VAL, &log_stdout, True, "Log to stdout" }, + { "interactive", 'i', POPT_ARG_NONE, NULL, 'i', "Run interactive (not a daemon)" }, + { "port", 'p', POPT_ARG_INT, &wins_port, 'p', "Listen on the specified port" }, + { 0, 0, 0, 0 } + }; int opt; - pstring logfile; + poptContext pc; #ifdef HAVE_SET_AUTH_PARAMETERS set_auth_parameters(argc,argv); #endif - /* this is for people who can't start the program correctly */ - while (argc > 1 && (*argv[1] != '-')) { - argv++; - argc--; - } + pc = poptGetContext("wrepld", argc, (const char **)argv, long_options, + POPT_CONTEXT_KEEP_FIRST); - while ( EOF != (opt = getopt(argc, argv, "FSO:l:s:d:Dp:h?Vaiof:")) ) + while ((opt = poptGetNextOpt(pc)) != -1) { switch (opt) { - case 'F': - Fork = False; - break; - case 'S': - log_stdout = True; - break; - case 'O': - pstrcpy(user_socket_options,optarg); - break; - - case 's': - pstrcpy(dyn_CONFIGFILE,optarg); - break; - - case 'l': - specified_logfile = True; - slprintf(logfile, sizeof(logfile)-1, "%s/log.wrepld", optarg); - lp_set_logfile(logfile); - break; - case 'i': interactive = True; Fork = False; log_stdout = True; break; + } + } - case 'D': - is_daemon = True; - break; - - case 'd': - if (*optarg == 'A') - DEBUGLEVEL = 10000; - else - DEBUGLEVEL = atoi(optarg); - break; - - case 'p': - wins_port = atoi(optarg); - break; - - case 'h': - case '?': - usage(argv[0]); - exit(0); - break; + poptFreeContext(pc); - case 'V': - d_printf("Version %s\n",VERSION); - exit(0); - break; - default: - DEBUG(0,("Incorrect program usage - are you sure the command line is correct?\n")); - usage(argv[0]); - exit(1); - } if (log_stdout && Fork) { d_printf("Can't log to stdout (-S) unless daemon is in foreground (-F) or interactive (-i)\n"); usage(argv[0]); @@ -613,12 +559,6 @@ static void process(void) load_case_tables(); - if(!specified_logfile) { - slprintf(logfile, sizeof(logfile)-1, "%s/log.wrepld", - dyn_LOGFILEBASE); - lp_set_logfile(logfile); - } - set_remote_machine_name("wrepld", False); setup_logging(argv[0],log_stdout); -- cgit From dcdc75ebd89f504a0f6e3a3bc5b43298858d276b Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sun, 23 Mar 2003 13:03:25 +0000 Subject: NTLM Authentication: - Add a 'privileged' mode to Winbindd. This is achieved by means of a directory under lockdir, that the admin can change the group access for. - This mode is now required to access with 'CRAP' authentication feature. - This *will* break the current SQUID helper, so I've fixed up our ntlm_auth replacement: - Update our NTLMSSP code to cope with 'datagram' mode, where we don't get a challenge. - Use this to make our ntlm_auth utility suitable for use in current Squid 2.5 servers. - Tested - works for Win2k clients, but not Win9X at present. NTLMSSP updates are needed. - Now uses fgets(), not x_fgets() to cope with Squid environment (I think somthing to do with non-blocking stdin). - Add much more robust connection code to wb_common.c - it will not connect to a server of a different protocol version, and it will automatically try and reconnect to the 'privileged' pipe if possible. - This could help with 'privileged' idmap operations etc in future. - Add a generic HEX encode routine to util_str.c, - fix a small line of dodgy C in StrnCpy_fn() - Correctly pull our 'session key' out of the info3 from th the DC. This is used in both the auth code, and in for export over the winbind pipe to ntlm_auth. - Given the user's challenge/response and access to the privileged pipe, allow external access to the 'session key'. To be used for MSCHAPv2 integration. Andrew Bartlett --- source/auth/auth_domain.c | 7 -- source/auth/auth_util.c | 3 + source/include/rpc_netlogon.h | 2 +- source/lib/util_str.c | 24 +++++- source/libsmb/ntlmssp.c | 50 +++++++----- source/nsswitch/wb_common.c | 73 ++++++++++++----- source/nsswitch/winbindd.c | 30 +++++-- source/nsswitch/winbindd.h | 2 + source/nsswitch/winbindd_misc.c | 17 ++++ source/nsswitch/winbindd_nss.h | 5 +- source/nsswitch/winbindd_pam.c | 13 ++-- source/nsswitch/winbindd_util.c | 24 ++++++ source/rpc_client/cli_netlogon.c | 13 +++- source/utils/ntlm_auth.c | 164 +++++++++++++++++++-------------------- 14 files changed, 283 insertions(+), 144 deletions(-) diff --git a/source/auth/auth_domain.c b/source/auth/auth_domain.c index 079bb49a21d..7cf7ed11999 100644 --- a/source/auth/auth_domain.c +++ b/source/auth/auth_domain.c @@ -350,13 +350,6 @@ static NTSTATUS domain_client_validate(TALLOC_CTX *mem_ctx, } else { nt_status = make_server_info_info3(mem_ctx, user_info->internal_username.str, user_info->smb_name.str, domain, server_info, &info3); -#if 0 - /* The stuff doesn't work right yet */ - SMB_ASSERT(sizeof((*server_info)->session_key) == sizeof(info3.user_sess_key)); - memcpy((*server_info)->session_key, info3.user_sess_key, sizeof((*server_info)->session_key)/* 16 */); - SamOEMhash((*server_info)->session_key, trust_passwd, sizeof((*server_info)->session_key)); -#endif - uni_group_cache_store_netlogon(mem_ctx, &info3); } diff --git a/source/auth/auth_util.c b/source/auth/auth_util.c index f4c43d2d4bb..70accec4067 100644 --- a/source/auth/auth_util.c +++ b/source/auth/auth_util.c @@ -1066,6 +1066,9 @@ NTSTATUS make_server_info_info3(TALLOC_CTX *mem_ctx, SAFE_FREE(all_group_SIDs); + memcpy((*server_info)->session_key, info3.user_sess_key, sizeof((*server_info)->session_key)/* 16 */); + memcpy((*server_info)->first_8_lm_hash, info3.padding, 8); + return NT_STATUS_OK; } diff --git a/source/include/rpc_netlogon.h b/source/include/rpc_netlogon.h index fb849f82380..74e3a50ee4a 100644 --- a/source/include/rpc_netlogon.h +++ b/source/include/rpc_netlogon.h @@ -156,7 +156,7 @@ typedef struct net_user_info_3 uint32 buffer_groups; /* undocumented buffer pointer to groups. */ uint32 user_flgs; /* user flags */ - uint8 user_sess_key[16]; /* unused user session key */ + uint8 user_sess_key[16]; /* user session key */ UNIHDR hdr_logon_srv; /* logon server unicode string header */ UNIHDR hdr_logon_dom; /* logon domain unicode string header */ diff --git a/source/lib/util_str.c b/source/lib/util_str.c index d1e57ed5cfe..4d955c59a70 100644 --- a/source/lib/util_str.c +++ b/source/lib/util_str.c @@ -603,8 +603,12 @@ char *StrnCpy_fn(const char *fn, int line,char *dest,const char *src,size_t n) *dest = 0; return(dest); } - while (n-- && (*d++ = *src++)) - ; + + while (n-- && (*d = *src)) { + d++; + src++; + } + *d = 0; return(dest); } @@ -681,6 +685,22 @@ size_t strhex_to_str(char *p, size_t len, const char *strhex) return num_chars; } +/** + * Routine to print a buffer as HEX digits, into an allocated string. + */ + +void hex_encode(const unsigned char *buff_in, size_t len, char **out_hex_buffer) +{ + int i; + char *hex_buffer; + + *out_hex_buffer = smb_xmalloc((len*2)+1); + hex_buffer = *out_hex_buffer; + + for (i = 0; i < len; i++) + slprintf(&hex_buffer[i*2], 3, "%02X", buff_in[i]); +} + /** Check if a string is part of a list. **/ diff --git a/source/libsmb/ntlmssp.c b/source/libsmb/ntlmssp.c index 5722b8efcda..0cd1ac33ec2 100644 --- a/source/libsmb/ntlmssp.c +++ b/source/libsmb/ntlmssp.c @@ -121,7 +121,8 @@ static NTSTATUS ntlmssp_server_negotiate(struct ntlmssp_state *ntlmssp_state, { DATA_BLOB struct_blob; fstring dnsname, dnsdomname; - uint32 ntlmssp_command, neg_flags, chal_flags; + uint32 neg_flags = 0; + uint32 ntlmssp_command, chal_flags; char *cliname=NULL, *domname=NULL; const uint8 *cryptkey; const char *target_name; @@ -131,20 +132,24 @@ static NTSTATUS ntlmssp_server_negotiate(struct ntlmssp_state *ntlmssp_state, file_save("ntlmssp_negotiate.dat", request.data, request.length); #endif - if (!msrpc_parse(&request, "CddAA", - "NTLMSSP", - &ntlmssp_command, - &neg_flags, - &cliname, - &domname)) { - return NT_STATUS_INVALID_PARAMETER; + if (request.length) { + if (!msrpc_parse(&request, "CddAA", + "NTLMSSP", + &ntlmssp_command, + &neg_flags, + &cliname, + &domname)) { + DEBUG(1, ("ntlmssp_server_negotiate: failed to parse NTLMSSP:\n")); + dump_data(2, request.data, request.length); + return NT_STATUS_INVALID_PARAMETER; + } + + SAFE_FREE(cliname); + SAFE_FREE(domname); + + debug_ntlmssp_flags(neg_flags); } - - SAFE_FREE(cliname); - SAFE_FREE(domname); - - debug_ntlmssp_flags(neg_flags); - + cryptkey = ntlmssp_state->get_challenge(ntlmssp_state); data_blob_free(&ntlmssp_state->chal); @@ -268,6 +273,8 @@ static NTSTATUS ntlmssp_server_auth(struct ntlmssp_state *ntlmssp_state, &ntlmssp_state->workstation, &sess_key, &neg_flags)) { + DEBUG(1, ("ntlmssp_server_auth: failed to parse NTLMSSP:\n")); + dump_data(2, request.data, request.length); return NT_STATUS_INVALID_PARAMETER; } @@ -357,13 +364,19 @@ NTSTATUS ntlmssp_server_update(NTLMSSP_STATE *ntlmssp_state, uint32 ntlmssp_command; *reply = data_blob(NULL, 0); - if (!msrpc_parse(&request, "Cd", - "NTLMSSP", - &ntlmssp_command)) { - return NT_STATUS_INVALID_PARAMETER; + if (request.length) { + if (!msrpc_parse(&request, "Cd", + "NTLMSSP", + &ntlmssp_command)) { + return NT_STATUS_INVALID_PARAMETER; + } + } else { + /* 'datagram' mode - no neg packet */ + ntlmssp_command = NTLMSSP_NEGOTIATE; } if (ntlmssp_command != ntlmssp_state->expected_state) { + DEBUG(1, ("got NTLMSSP command %u, expected %u\n", ntlmssp_command, ntlmssp_state->expected_state)); return NT_STATUS_INVALID_PARAMETER; } @@ -372,6 +385,7 @@ NTSTATUS ntlmssp_server_update(NTLMSSP_STATE *ntlmssp_state, } else if (ntlmssp_command == NTLMSSP_AUTH) { return ntlmssp_server_auth(ntlmssp_state, request, reply); } else { + DEBUG(1, ("unknown NTLMSSP command %u\n", ntlmssp_command, ntlmssp_state->expected_state)); return NT_STATUS_INVALID_PARAMETER; } } diff --git a/source/nsswitch/wb_common.c b/source/nsswitch/wb_common.c index 89c751a4efb..ac1ccb217ed 100644 --- a/source/nsswitch/wb_common.c +++ b/source/nsswitch/wb_common.c @@ -131,27 +131,16 @@ static int make_safe_fd(int fd) /* Connect to winbindd socket */ -int winbind_open_pipe_sock(void) +static int winbind_named_pipe_sock(const char *dir) { -#ifdef HAVE_UNIXSOCKET struct sockaddr_un sunaddr; - static pid_t our_pid; struct stat st; pstring path; int fd; - if (our_pid != getpid()) { - close_sock(); - our_pid = getpid(); - } - - if (winbindd_fd != -1) { - return winbindd_fd; - } - /* Check permissions on unix socket directory */ - if (lstat(WINBINDD_SOCKET_DIR, &st) == -1) { + if (lstat(dir, &st) == -1) { return -1; } @@ -162,13 +151,13 @@ int winbind_open_pipe_sock(void) /* Connect to socket */ - strncpy(path, WINBINDD_SOCKET_DIR, sizeof(path) - 1); + strncpy(path, dir, sizeof(path) - 1); path[sizeof(path) - 1] = '\0'; - strncat(path, "/", sizeof(path) - 1); + strncat(path, "/", sizeof(path) - 1 - strlen(path)); path[sizeof(path) - 1] = '\0'; - strncat(path, WINBINDD_SOCKET_NAME, sizeof(path) - 1); + strncat(path, WINBINDD_SOCKET_NAME, sizeof(path) - 1 - strlen(path)); path[sizeof(path) - 1] = '\0'; ZERO_STRUCT(sunaddr); @@ -196,16 +185,60 @@ int winbind_open_pipe_sock(void) return -1; } - if ((winbindd_fd = make_safe_fd( fd)) == -1) { - return winbindd_fd; + if ((fd = make_safe_fd( fd)) == -1) { + return fd; } - if (connect(winbindd_fd, (struct sockaddr *)&sunaddr, + if (connect(fd, (struct sockaddr *)&sunaddr, sizeof(sunaddr)) == -1) { - close_sock(); + close(fd); return -1; } + return fd; +} + +/* Connect to winbindd socket */ + +int winbind_open_pipe_sock(void) +{ +#ifdef HAVE_UNIXSOCKET + static pid_t our_pid; + struct winbindd_request request; + struct winbindd_response response; + ZERO_STRUCT(request); + ZERO_STRUCT(response); + + if (our_pid != getpid()) { + close_sock(); + our_pid = getpid(); + } + + if (winbindd_fd != -1) { + return winbindd_fd; + } + + if ((winbindd_fd = winbind_named_pipe_sock(WINBINDD_SOCKET_DIR)) == -1) { + return -1; + } + + /* version-check the socket */ + + if ((winbindd_request(WINBINDD_INTERFACE_VERSION, &request, &response) != NSS_STATUS_SUCCESS) || (response.data.interface_version != WINBIND_INTERFACE_VERSION)) { + close_sock(); + return -1; + } + + /* try and get priv pipe */ + + if (winbindd_request(WINBINDD_PRIV_PIPE_DIR, &request, &response) == NSS_STATUS_SUCCESS) { + int fd; + if ((fd = winbind_named_pipe_sock(response.extra_data)) != -1) { + close(winbindd_fd); + winbindd_fd = fd; + } + } + return winbindd_fd; #else return -1; diff --git a/source/nsswitch/winbindd.c b/source/nsswitch/winbindd.c index 921f7d28642..4033952a6ed 100644 --- a/source/nsswitch/winbindd.c +++ b/source/nsswitch/winbindd.c @@ -259,6 +259,7 @@ static struct dispatch_table dispatch_table[] = { { WINBINDD_INTERFACE_VERSION, winbindd_interface_version, "INTERFACE_VERSION" }, { WINBINDD_DOMAIN_NAME, winbindd_domain_name, "DOMAIN_NAME" }, { WINBINDD_NETBIOS_NAME, winbindd_netbios_name, "NETBIOS_NAME" }, + { WINBINDD_PRIV_PIPE_DIR, winbindd_priv_pipe_dir, "WINBINDD_PRIV_PIPE_DIR" }, /* WINS functions */ @@ -305,7 +306,7 @@ static void process_request(struct winbindd_cli_state *state) /* Process a new connection by adding it to the client connection list */ -static void new_connection(int listen_sock) +static void new_connection(int listen_sock, BOOL privilaged) { struct sockaddr_un sunaddr; struct winbindd_cli_state *state; @@ -336,6 +337,8 @@ static void new_connection(int listen_sock) state->last_access = time(NULL); + state->privilaged = privilaged; + /* Add to connection list */ winbindd_add_client(state); @@ -547,7 +550,7 @@ static void process_loop(void) while (1) { struct winbindd_cli_state *state; fd_set r_fds, w_fds; - int maxfd, listen_sock, selret; + int maxfd, listen_sock, listen_priv_sock, selret; struct timeval timeout; /* Handle messages */ @@ -566,17 +569,19 @@ static void process_loop(void) /* Initialise fd lists for select() */ listen_sock = open_winbindd_socket(); + listen_priv_sock = open_winbindd_priv_socket(); - if (listen_sock == -1) { + if (listen_sock == -1 || listen_priv_sock == -1) { perror("open_winbind_socket"); exit(1); } - maxfd = listen_sock; + maxfd = MAX(listen_sock, listen_priv_sock); FD_ZERO(&r_fds); FD_ZERO(&w_fds); FD_SET(listen_sock, &r_fds); + FD_SET(listen_priv_sock, &r_fds); timeout.tv_sec = WINBINDD_ESTABLISH_LOOP; timeout.tv_usec = 0; @@ -653,7 +658,22 @@ static void process_loop(void) break; } } - new_connection(listen_sock); + /* new, non-privilaged connection */ + new_connection(listen_sock, False); + } + + if (FD_ISSET(listen_priv_sock, &r_fds)) { + while (winbindd_num_clients() > WINBINDD_MAX_SIMULTANEOUS_CLIENTS - 1) { + DEBUG(5,("winbindd: Exceeding %d client connections, removing idle connection.\n", + WINBINDD_MAX_SIMULTANEOUS_CLIENTS)); + if (!remove_idle_client()) { + DEBUG(0,("winbindd: Exceeding %d client connections, no idle connection found\n", + WINBINDD_MAX_SIMULTANEOUS_CLIENTS)); + break; + } + } + /* new, privilaged connection */ + new_connection(listen_priv_sock, True); } /* Process activity on client connections */ diff --git a/source/nsswitch/winbindd.h b/source/nsswitch/winbindd.h index 42ef209fafa..d98ac28ab14 100644 --- a/source/nsswitch/winbindd.h +++ b/source/nsswitch/winbindd.h @@ -43,6 +43,8 @@ struct winbindd_cli_state { BOOL finished; /* Can delete from list */ BOOL write_extra_data; /* Write extra_data field */ time_t last_access; /* Time of last access (read or write) */ + BOOL privilaged; /* Is the client 'privilaged' */ + struct winbindd_request request; /* Request from client */ struct winbindd_response response; /* Respose to client */ struct getent_state *getpwent_state; /* State for getpwent() */ diff --git a/source/nsswitch/winbindd_misc.c b/source/nsswitch/winbindd_misc.c index 0b283812b21..3b44d029c00 100644 --- a/source/nsswitch/winbindd_misc.c +++ b/source/nsswitch/winbindd_misc.c @@ -233,3 +233,20 @@ enum winbindd_result winbindd_netbios_name(struct winbindd_cli_state *state) return WINBINDD_OK; } + +/* What's my name again? */ + +enum winbindd_result winbindd_priv_pipe_dir(struct winbindd_cli_state *state) +{ + + DEBUG(3, ("[%5d]: request location of privilaged pipe\n", state->pid)); + + state->response.extra_data = strdup(get_winbind_priv_pipe_dir()); + if (!state->response.extra_data) + return WINBINDD_ERROR; + + /* must add one to length to copy the 0 for string termination */ + state->response.length += strlen((char *)state->response.extra_data) + 1; + + return WINBINDD_OK; +} diff --git a/source/nsswitch/winbindd_nss.h b/source/nsswitch/winbindd_nss.h index 2c87a771009..88f4a11f875 100644 --- a/source/nsswitch/winbindd_nss.h +++ b/source/nsswitch/winbindd_nss.h @@ -30,7 +30,7 @@ #define WINBINDD_SOCKET_NAME "pipe" /* Name of PF_UNIX socket */ #define WINBINDD_SOCKET_DIR "/tmp/.winbindd" /* Name of PF_UNIX dir */ - +#define WINBINDD_PRIV_SOCKET_SUBDIR "winbindd_privilaged" /* name of subdirectory of lp_lockdir() to hold the 'privilaged' pipe */ #define WINBINDD_DOMAIN_ENV "WINBINDD_DOMAIN" /* Environment variables */ #define WINBINDD_DONT_ENV "_NO_WINBINDD" @@ -105,6 +105,9 @@ enum winbindd_cmd { WINBINDD_NETBIOS_NAME, /* The netbios name of the server */ /* Placeholder for end of cmd list */ + /* find the location of our privilaged pipe */ + WINBINDD_PRIV_PIPE_DIR, + WINBINDD_NUM_CMDS }; diff --git a/source/nsswitch/winbindd_pam.c b/source/nsswitch/winbindd_pam.c index e24afbabd60..d408a8b3ae4 100644 --- a/source/nsswitch/winbindd_pam.c +++ b/source/nsswitch/winbindd_pam.c @@ -174,6 +174,12 @@ enum winbindd_result winbindd_pam_auth_crap(struct winbindd_cli_state *state) DATA_BLOB lm_resp, nt_resp; + if (!state->privilaged) { + DEBUG(2, ("winbindd_pam_auth_crap: non-privilaged access denied!\n")); + result = NT_STATUS_ACCESS_DENIED; + goto done; + } + /* Ensure null termination */ state->request.data.auth_crap.user[sizeof(state->request.data.auth_crap.user)-1]='\0'; @@ -272,19 +278,12 @@ enum winbindd_result winbindd_pam_auth_crap(struct winbindd_cli_state *state) result = append_info3_as_ndr(mem_ctx, state, &info3); } -#if 0 - /* we don't currently do this stuff right */ - /* Doing an assert in a daemon is going to be a pretty bad - idea. - tpot */ if (state->request.data.auth_crap.flags & WINBIND_PAM_NTKEY) { - SMB_ASSERT(sizeof(state->response.data.auth.nt_session_key) == sizeof(info3.user_sess_key)); memcpy(state->response.data.auth.nt_session_key, info3.user_sess_key, sizeof(state->response.data.auth.nt_session_key) /* 16 */); } if (state->request.data.auth_crap.flags & WINBIND_PAM_LMKEY) { - SMB_ASSERT(sizeof(state->response.data.auth.nt_session_key) <= sizeof(info3.user_sess_key)); memcpy(state->response.data.auth.first_8_lm_hash, info3.padding, sizeof(state->response.data.auth.nt_session_key) /* 16 */); } -#endif } done: diff --git a/source/nsswitch/winbindd_util.c b/source/nsswitch/winbindd_util.c index fdbfd92b5a7..b033380206a 100644 --- a/source/nsswitch/winbindd_util.c +++ b/source/nsswitch/winbindd_util.c @@ -453,9 +453,15 @@ void fill_domain_username(fstring name, const char *domain, const char *user) * Winbindd socket accessor functions */ +char *get_winbind_priv_pipe_dir(void) +{ + return lock_path(WINBINDD_PRIV_SOCKET_SUBDIR); +} + /* Open the winbindd socket */ static int _winbindd_socket = -1; +static int _winbindd_priv_socket = -1; int open_winbindd_socket(void) { @@ -469,6 +475,18 @@ int open_winbindd_socket(void) return _winbindd_socket; } +int open_winbindd_priv_socket(void) +{ + if (_winbindd_priv_socket == -1) { + _winbindd_priv_socket = create_pipe_sock( + get_winbind_priv_pipe_dir(), WINBINDD_SOCKET_NAME, 0750); + DEBUG(10, ("open_winbindd_priv_socket: opened socket fd %d\n", + _winbindd_priv_socket)); + } + + return _winbindd_priv_socket; +} + /* Close the winbindd socket */ void close_winbindd_socket(void) @@ -479,6 +497,12 @@ void close_winbindd_socket(void) close(_winbindd_socket); _winbindd_socket = -1; } + if (_winbindd_priv_socket != -1) { + DEBUG(10, ("close_winbindd_socket: closing socket fd %d\n", + _winbindd_priv_socket)); + close(_winbindd_priv_socket); + _winbindd_priv_socket = -1; + } } /* diff --git a/source/rpc_client/cli_netlogon.c b/source/rpc_client/cli_netlogon.c index cbb09803af6..f83571af034 100644 --- a/source/rpc_client/cli_netlogon.c +++ b/source/rpc_client/cli_netlogon.c @@ -597,7 +597,7 @@ NTSTATUS cli_netlogon_sam_logon(struct cli_state *cli, TALLOC_CTX *mem_ctx, NTSTATUS cli_netlogon_sam_network_logon(struct cli_state *cli, TALLOC_CTX *mem_ctx, const char *username, const char *domain, const char *workstation, - const uint8 chal[8], + const uint8 chal[8], DATA_BLOB lm_response, DATA_BLOB nt_response, NET_USER_INFO_3 *info3) @@ -610,6 +610,8 @@ NTSTATUS cli_netlogon_sam_network_logon(struct cli_state *cli, TALLOC_CTX *mem_c NET_ID_INFO_CTR ctr; int validation_level = 3; char *workstation_name_slash; + uint8 netlogon_sess_key[16]; + static uint8 zeros[16]; ZERO_STRUCT(q); ZERO_STRUCT(r); @@ -662,6 +664,15 @@ NTSTATUS cli_netlogon_sam_network_logon(struct cli_state *cli, TALLOC_CTX *mem_c goto done; } + ZERO_STRUCT(netlogon_sess_key); + memcpy(netlogon_sess_key, cli->sess_key, 8); + + if (memcmp(zeros, info3->user_sess_key, 16) != 0) + SamOEMhash(info3->user_sess_key, netlogon_sess_key, 16); + + if (memcmp(zeros, info3->padding, 16) != 0) + SamOEMhash(info3->padding, netlogon_sess_key, 16); + /* Return results */ result = r.status; diff --git a/source/utils/ntlm_auth.c b/source/utils/ntlm_auth.c index b76308c55fb..ac456769f22 100644 --- a/source/utils/ntlm_auth.c +++ b/source/utils/ntlm_auth.c @@ -51,6 +51,8 @@ static unsigned char *lm_response; static size_t lm_response_len; static unsigned char *nt_response; static size_t nt_response_len; +static int request_lm_key; +static int request_nt_key; static char *password; @@ -197,7 +199,7 @@ static NTSTATUS winbind_pw_check(struct ntlmssp_state *ntlmssp_state) memcpy(request.data.auth_crap.lm_resp, ntlmssp_state->lm_resp.data, MIN(ntlmssp_state->lm_resp.length, sizeof(request.data.auth_crap.lm_resp))); - memcpy(request.data.auth_crap.nt_resp, ntlmssp_state->lm_resp.data, + memcpy(request.data.auth_crap.nt_resp, ntlmssp_state->nt_resp.data, MIN(ntlmssp_state->nt_resp.length, sizeof(request.data.auth_crap.nt_resp))); request.data.auth_crap.lm_resp_len = ntlmssp_state->lm_resp.length; @@ -217,10 +219,28 @@ static NTSTATUS winbind_pw_check(struct ntlmssp_state *ntlmssp_state) static void manage_squid_ntlmssp_request(enum squid_mode squid_mode, char *buf, int length) { - static NTLMSSP_STATE *ntlmssp_state; + static NTLMSSP_STATE *ntlmssp_state = NULL; DATA_BLOB request, reply; NTSTATUS nt_status; + if (strlen(buf) < 2) { + DEBUG(1, ("NTLMSSP query [%s] invalid", buf)); + x_fprintf(x_stdout, "BH\n"); + return; + } + + if (strlen(buf) > 3) { + request = base64_decode_data_blob(buf + 3); + } else if (strcmp(buf, "YR") == 0) { + request = data_blob(NULL, 0); + if (ntlmssp_state) + ntlmssp_server_end(&ntlmssp_state); + } else { + DEBUG(1, ("NTLMSSP query [%s] invalid", buf)); + x_fprintf(x_stdout, "BH\n"); + return; + } + if (!ntlmssp_state) { ntlmssp_server_start(&ntlmssp_state); ntlmssp_state->check_password = winbind_pw_check; @@ -228,15 +248,8 @@ static void manage_squid_ntlmssp_request(enum squid_mode squid_mode, ntlmssp_state->get_global_myname = get_winbind_netbios_name; } - if (strlen(buf) < 3) { - x_fprintf(x_stdout, "BH\n"); - return; - } - - request = base64_decode_data_blob(buf + 3); - - DEBUG(0, ("got NTLMSSP packet:\n")); - dump_data(0, request.data, request.length); + DEBUG(10, ("got NTLMSSP packet:\n")); + dump_data(10, request.data, request.length); nt_status = ntlmssp_server_update(ntlmssp_state, request, &reply); @@ -245,10 +258,13 @@ static void manage_squid_ntlmssp_request(enum squid_mode squid_mode, x_fprintf(x_stdout, "TT %s\n", reply_base64); SAFE_FREE(reply_base64); data_blob_free(&reply); + DEBUG(10, ("NTLMSSP challenge\n")); } else if (!NT_STATUS_IS_OK(nt_status)) { x_fprintf(x_stdout, "NA %s\n", nt_errstr(nt_status)); + DEBUG(10, ("NTLMSSP %s\n", nt_errstr(nt_status))); } else { x_fprintf(x_stdout, "AF %s\\%s\n", ntlmssp_state->domain, ntlmssp_state->user); + DEBUG(10, ("NTLMSSP OK!\n")); } data_blob_free(&request); @@ -287,10 +303,11 @@ static void manage_squid_request(enum squid_mode squid_mode) int length; char *c; static BOOL err; - - if (x_fgets(buf, sizeof(buf)-1, x_stdin) == NULL) { - DEBUG(1, ("fgets() failed! dying..... errno=%d (%s)\n", errno, - strerror(errno))); + + /* this is not a typo - x_fgets doesn't work too well under squid */ + if (fgets(buf, sizeof(buf)-1, stdin) == NULL) { + DEBUG(1, ("fgets() failed! dying..... errno=%d (%s)\n", ferror(stdin), + strerror(ferror(stdin)))); exit(1); /* BIIG buffer */ } @@ -341,12 +358,22 @@ static BOOL check_auth_crap(void) { struct winbindd_request request; struct winbindd_response response; + char *lm_key; + char *nt_key; + static uint8 zeros[16]; + NSS_STATUS result; /* Send off request */ ZERO_STRUCT(request); ZERO_STRUCT(response); + if (request_lm_key) + request.data.auth_crap.flags |= WINBIND_PAM_LMKEY; + + if (request_nt_key) + request.data.auth_crap.flags |= WINBIND_PAM_NTKEY; + fstrcpy(request.data.auth_crap.user, username); fstrcpy(request.data.auth_crap.domain, domain); @@ -373,6 +400,27 @@ static BOOL check_auth_crap(void) response.data.auth.nt_status_string, response.data.auth.nt_status); + if (response.data.auth.nt_status == 0) { + if (request_lm_key + && (memcmp(zeros, response.data.auth.first_8_lm_hash, + sizeof(response.data.auth.first_8_lm_hash)) != 0)) { + hex_encode(response.data.auth.first_8_lm_hash, + sizeof(response.data.auth.first_8_lm_hash), + &lm_key); + d_printf("LM_KEY: %s\n", lm_key); + SAFE_FREE(lm_key); + } + if (request_nt_key + && (memcmp(zeros, response.data.auth.nt_session_key, + sizeof(response.data.auth.nt_session_key)) != 0)) { + hex_encode(response.data.auth.nt_session_key, + sizeof(response.data.auth.nt_session_key), + &nt_key); + d_printf("NT_KEY: %s\n", nt_key); + SAFE_FREE(nt_key); + } + } + return result == NSS_STATUS_SUCCESS; } @@ -386,68 +434,11 @@ enum { OPT_RESPONSE, OPT_LM, OPT_NT, - OPT_PASSWORD + OPT_PASSWORD, + OPT_LM_KEY, + OPT_NT_KEY }; -/************************************************************* - Routine to set hex password characters into an allocated array. -**************************************************************/ - -static void hex_encode(const unsigned char *buff_in, size_t len, char **out_hex_buffer) -{ - int i; - char *hex_buffer; - - *out_hex_buffer = smb_xmalloc((len*2)+1); - hex_buffer = *out_hex_buffer; - - for (i = 0; i < len; i++) - slprintf(&hex_buffer[i*2], 3, "%02X", buff_in[i]); -} - -/************************************************************* - Routine to get the 32 hex characters and turn them - into a 16 byte array. -**************************************************************/ - -static BOOL hex_decode(const char *hex_buf_in, unsigned char **out_buffer, size_t *size) -{ - int i; - size_t hex_buf_in_len = strlen(hex_buf_in); - unsigned char partial_byte_hex; - unsigned char partial_byte; - const char *hexchars = "0123456789ABCDEF"; - char *p; - BOOL high = True; - - if (!hex_buf_in) - return (False); - - *size = (hex_buf_in_len + 1) / 2; - - *out_buffer = smb_xmalloc(*size); - - for (i = 0; i < hex_buf_in_len; i++) { - partial_byte_hex = toupper(hex_buf_in[i]); - - p = strchr(hexchars, partial_byte_hex); - - if (!p) - return (False); - - partial_byte = PTR_DIFF(p, hexchars); - - if (high) { - (*out_buffer)[i / 2] = (partial_byte << 4); - } else { - (*out_buffer)[i / 2] |= partial_byte; - } - high = !high; - } - return (True); -} - - int main(int argc, const char **argv) { int opt; @@ -464,6 +455,8 @@ int main(int argc, const char **argv) { "lm-response", 0, POPT_ARG_STRING, &hex_lm_response, OPT_LM, "LM Response to the challenge (HEX encoded)"}, { "nt-response", 0, POPT_ARG_STRING, &hex_nt_response, OPT_NT, "NT or NTLMv2 Response to the challenge (HEX encoded)"}, { "password", 0, POPT_ARG_STRING, &password, OPT_PASSWORD, "User's plaintext password"}, + { "request-lm-key", 0, POPT_ARG_NONE, &request_lm_key, OPT_LM_KEY, "Retreive LM session key"}, + { "request-nt-key", 0, POPT_ARG_NONE, &request_nt_key, OPT_NT_KEY, "Retreive NT session key"}, { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version}, @@ -491,20 +484,27 @@ int main(int argc, const char **argv) while((opt = poptGetNextOpt(pc)) != -1) { switch (opt) { case OPT_CHALLENGE: - if (!hex_decode(hex_challenge, &challenge, &challenge_len)) { - fprintf(stderr, "hex decode of %s failed!\n", hex_challenge); + challenge_len = strlen(hex_challenge); + challenge = smb_xmalloc((challenge_len+1)/2); + if ((challenge_len = strhex_to_str(challenge, challenge_len, hex_challenge)) != 8) { + fprintf(stderr, "hex decode of %s failed (only got %u bytes)!\n", + hex_challenge, challenge_len); exit(1); } break; case OPT_LM: - if (!hex_decode(hex_lm_response, &lm_response, &lm_response_len)) { - fprintf(stderr, "hex decode of %s failed!\n", lm_response); + lm_response_len = strlen(hex_lm_response); + lm_response = smb_xmalloc((lm_response_len+1)/2); + if ((lm_response_len = strhex_to_str(lm_response, lm_response_len, hex_lm_response)) != 24) { + fprintf(stderr, "hex decode of %s failed!\n", hex_lm_response); exit(1); } break; - case OPT_NT: - if (!hex_decode(hex_lm_response, &lm_response, &lm_response_len)) { - fprintf(stderr, "hex decode of %s failed!\n", lm_response); + case OPT_NT: + nt_response_len = strlen(hex_nt_response); + nt_response = smb_xmalloc((nt_response_len+1)/2); + if ((nt_response_len = strhex_to_str(nt_response, nt_response_len, hex_nt_response)) < 24) { + fprintf(stderr, "hex decode of %s failed!\n", hex_nt_response); exit(1); } break; -- cgit From 691c63ad6b522ae7984017ebadffb5c7c13f6992 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 13:12:04 +0000 Subject: Convert to popt. --- source/Makefile.in | 4 +-- source/utils/editreg.c | 71 +++++++++++++++++++++----------------------------- 2 files changed, 31 insertions(+), 44 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index d23a517a5fc..81af32abae5 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -730,9 +730,9 @@ bin/profiles@EXEEXT@: $(PROFILES_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ @$(CC) $(FLAGS) -o $@ $(PROFILES_OBJ) $(LDFLAGS) $(LIBS) @BUILD_POPT@ -bin/editreg@EXEEXT@: utils/editreg.o bin/.dummy +bin/editreg@EXEEXT@: utils/editreg.o @BUILD_POP@ bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ utils/editreg.o $(LDFLAGS) $(LIBS) + @$(CC) $(FLAGS) -o $@ utils/editreg.o $(LDFLAGS) $(LIBS) @BUILD_POPT@ bin/smbspool@EXEEXT@: $(CUPS_OBJ) bin/.dummy @echo Linking $@ diff --git a/source/utils/editreg.c b/source/utils/editreg.c index 2cf8e2c9df9..6b3b4516bb6 100644 --- a/source/utils/editreg.c +++ b/source/utils/editreg.c @@ -1,6 +1,7 @@ /* Samba Unix/Linux SMB client utility editreg.c Copyright (C) 2002 Richard Sharpe, rsharpe@richardsharpe.com + Copyright (C) 2003 Jelmer Vernooij (conversion to popt) 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 @@ -307,6 +308,7 @@ Hope this helps.... (Although it was "fun" for me to uncover this things, #include #include #include +#include "popt.h" static int verbose = 0; @@ -1993,69 +1995,53 @@ int print_val(const char *path, char *val_name, int val_type, int data_len, return 1; } -void usage(void) -{ - fprintf(stderr, "Usage: editreg [-v] [-k] [-c ] \n"); - fprintf(stderr, "Version: 0.1\n\n"); - fprintf(stderr, "\n\t-v\t sets verbose mode"); - fprintf(stderr, "\n\t-c \t specifies a command file"); - fprintf(stderr, "\n"); -} - int main(int argc, char *argv[]) { REGF *regf; - extern char *optarg; - extern int optind; int opt; - int commands = 0; - char *cmd_file = NULL; + static char *cmd_file = NULL; + poptContext pc; + struct poptOption long_options[] = { + POPT_AUTOHELP + { "verbose", 'v', POPT_ARG_NONE, NULL, 'v', "Sets verbose mode" }, + { "command-file", 'c', POPT_ARG_STRING, &cmd_file, 'c', "Specifies a command file" }, + { 0, 0, 0, 0 } + }; - if (argc < 2) { - usage(); - exit(1); - } - - /* - * Now, process the arguments - */ + pc = poptGetContext("editreg", argc, (const char **)argv, long_options, + POPT_CONTEXT_KEEP_FIRST); - while ((opt = getopt(argc, argv, "vkc:")) != EOF) { - switch (opt) { - case 'c': - commands = 1; - cmd_file = optarg; - break; + poptSetOtherOptionHelp(pc, ""); - case 'v': - verbose++; - break; + while((opt = poptGetNextOpt(pc)) != -1) + switch(opt) { + case 'v': + verbose++; + break; + } - case 'k': - break; + poptGetArg(pc); /* For argv[0] */ - default: - usage(); - exit(1); - break; - } + if (!poptPeekArg(pc)) { + poptPrintUsage(pc, stderr, 0); + exit(1); } if ((regf = nt_create_regf()) == NULL) { - fprintf(stderr, "Could not create registry object: %s\n", strerror(errno)); - exit(2); + fprintf(stderr, "Could not create registry object: %s\n", strerror(errno)); + exit(2); } - if (!nt_set_regf_input_file(regf, argv[optind])) { + if (!nt_set_regf_input_file(regf, poptPeekArg(pc))) { fprintf(stderr, "Could not set name of registry file: %s, %s\n", - argv[1], strerror(errno)); + poptPeekArg(pc), strerror(errno)); exit(3); } /* Now, open it, and bring it into memory :-) */ if (nt_load_registry(regf) < 0) { - fprintf(stderr, "Could not load registry: %s\n", argv[1]); + fprintf(stderr, "Could not load registry: %s\n", poptPeekArg(pc)); exit(4); } @@ -2065,5 +2051,6 @@ int main(int argc, char *argv[]) */ nt_key_iterator(regf, regf->root, 0, "", print_key, print_sec, print_val); + poptFreeContext(pc); return 0; } -- cgit From 6fbee12a8170e0bce4e94806105786b38160ada5 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sun, 23 Mar 2003 13:18:05 +0000 Subject: Fix compile. --- source/auth/auth_util.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/auth/auth_util.c b/source/auth/auth_util.c index 70accec4067..a3ca0b226f2 100644 --- a/source/auth/auth_util.c +++ b/source/auth/auth_util.c @@ -1066,8 +1066,8 @@ NTSTATUS make_server_info_info3(TALLOC_CTX *mem_ctx, SAFE_FREE(all_group_SIDs); - memcpy((*server_info)->session_key, info3.user_sess_key, sizeof((*server_info)->session_key)/* 16 */); - memcpy((*server_info)->first_8_lm_hash, info3.padding, 8); + memcpy((*server_info)->session_key, info3->user_sess_key, sizeof((*server_info)->session_key)/* 16 */); + memcpy((*server_info)->first_8_lm_hash, info3->padding, 8); return NT_STATUS_OK; } -- cgit From 18d52ce914715d188966be95f9e4466666a04f74 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 13:42:38 +0000 Subject: Convert to popt. --- source/Makefile.in | 8 ++--- source/nsswitch/winbindd.c | 84 ++++++++++++++-------------------------------- 2 files changed, 30 insertions(+), 62 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index 81af32abae5..6cfa9be4d42 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -574,7 +574,7 @@ WINBINDD_OBJ = \ $(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \ $(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) \ $(PROFILE_OBJ) $(UNIGRP_OBJ) \ - $(SECRETS_OBJ) $(LIBADS_OBJ) $(KRBCLIENT_OBJ) + $(SECRETS_OBJ) $(LIBADS_OBJ) $(KRBCLIENT_OBJ) $(POPT_LIB_OBJ) WBINFO_OBJ = nsswitch/wbinfo.o libsmb/smbencrypt.o libsmb/smbdes.o $(POPT_LIB_OBJ) @@ -730,7 +730,7 @@ bin/profiles@EXEEXT@: $(PROFILES_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ @$(CC) $(FLAGS) -o $@ $(PROFILES_OBJ) $(LDFLAGS) $(LIBS) @BUILD_POPT@ -bin/editreg@EXEEXT@: utils/editreg.o @BUILD_POP@ bin/.dummy +bin/editreg@EXEEXT@: utils/editreg.o @BUILD_POPT@ bin/.dummy @echo Linking $@ @$(CC) $(FLAGS) -o $@ utils/editreg.o $(LDFLAGS) $(LIBS) @BUILD_POPT@ @@ -922,9 +922,9 @@ nsswitch/libnss_wins.@SHLIBEXT@: $(NSS_OBJ) @$(SHLD) $(LDSHFLAGS) -o $@ $(NSS_OBJ) -lc \ @SONAMEFLAG@`basename $@` -bin/winbindd@EXEEXT@: $(WINBINDD_OBJ) bin/.dummy +bin/winbindd@EXEEXT@: $(WINBINDD_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ - @$(LINK) -o $@ $(WINBINDD_OBJ) $(DYNEXP) $(LIBS) + @$(LINK) -o $@ $(WINBINDD_OBJ) $(DYNEXP) $(LIBS) @BUILD_POPT@ nsswitch/libns_winbind.@SHLIBEXT@: $(WINBIND_NSS_PICOBJS) @echo "Linking $@" diff --git a/source/nsswitch/winbindd.c b/source/nsswitch/winbindd.c index 4033952a6ed..c9d68083168 100644 --- a/source/nsswitch/winbindd.c +++ b/source/nsswitch/winbindd.c @@ -5,6 +5,7 @@ Copyright (C) by Tim Potter 2000-2002 Copyright (C) Andrew Tridgell 2002 + Copyright (C) Jelmer Vernooij 2003 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 @@ -31,7 +32,6 @@ BOOL opt_dual_daemon = False; static BOOL reload_services_file(BOOL test) { BOOL ret; - pstring logfile; if (lp_loaded()) { pstring fname; @@ -806,27 +806,26 @@ BOOL winbind_setup_common(void) struct winbindd_state server_state; /* Server state information */ - -static void usage(void) -{ - printf("Usage: winbindd [options]\n"); - printf("\t-F daemon in foreground mode\n"); - printf("\t-S log to stdout\n"); - printf("\t-i interactive mode\n"); - printf("\t-B dual daemon mode\n"); - printf("\t-n disable cacheing\n"); - printf("\t-d level set debug level\n"); - printf("\t-s configfile choose smb.conf location\n"); - printf("\t-h show this help message\n"); -} - - int main(int argc, char **argv) +int main(int argc, char **argv) { - extern BOOL AllowDebugChange; pstring logfile; - BOOL interactive = False; - BOOL Fork = True; - BOOL log_stdout = False; + static BOOL interactive = False; + static BOOL Fork = True; + static BOOL log_stdout = False; + struct poptOption long_options[] = { + POPT_AUTOHELP + POPT_COMMON_SAMBA + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, + { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, + { "stdout", 'S', POPT_ARG_VAL, &log_stdout, True, "Log to stdout" }, + { "foreground", 'F', POPT_ARG_VAL, &Fork, False, "Daemon in foreground mode" }, + { "interactive", 'i', POPT_ARG_NONE, NULL, 'i', "Interactive mode" }, + { "dual-daemon", 'B', POPT_ARG_VAL, &opt_dual_daemon, True, "Dual daemon mode" }, + { "no-caching", 'n', POPT_ARG_VAL, &opt_nocache, False, "Disable caching" }, + + { 0, 0, 0, 0 } + }; + poptContext pc; int opt; /* glibc (?) likes to print "User defined signal 1" and exit if a @@ -850,56 +849,24 @@ static void usage(void) /* Initialise samba/rpc client stuff */ - while ((opt = getopt(argc, argv, "FSid:s:nhB")) != EOF) { - switch (opt) { + pc = poptGetContext("winbindd", argc, (const char **)argv, long_options, + POPT_CONTEXT_KEEP_FIRST); - case 'F': - Fork = False; - break; - case 'S': - log_stdout = True; - break; + while ((opt = poptGetNextOpt(pc)) != -1) { + switch (opt) { /* Don't become a daemon */ case 'i': interactive = True; log_stdout = True; Fork = False; break; - - /* dual daemon system */ - case 'B': - opt_dual_daemon = True; - break; - - /* disable cacheing */ - case 'n': - opt_nocache = True; - break; - - /* Run with specified debug level */ - case 'd': - DEBUGLEVEL = atoi(optarg); - AllowDebugChange = False; - break; - - /* Load a different smb.conf file */ - case 's': - pstrcpy(dyn_CONFIGFILE,optarg); - break; - - case 'h': - usage(); - exit(0); - - default: - printf("Unknown option %c\n", (char)opt); - exit(1); } } + if (log_stdout && Fork) { printf("Can't log to stdout (-S) unless daemon is in foreground +(-F) or interactive (-i)\n"); - usage(); + poptPrintUsage(pc, stderr, 0); exit(1); } @@ -950,6 +917,7 @@ static void usage(void) DEBUG(0, ("unable to initialise messaging system\n")); exit(1); } + poptFreeContext(pc); register_msg_pool_usage(); message_register(MSG_REQ_TALLOC_USAGE, return_all_talloc_info); -- cgit From 80d2578108da14f60133df3a308b867beb27e920 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 23 Mar 2003 14:19:13 +0000 Subject: Implement abartlet's suggestion to add attribs to ldap if they are 'SET' when adding the account. I really don't like passing flags down to inner routines and complicated if/else conditions, but this time he might be right. ;-) Volker --- source/passdb/pdb_ldap.c | 54 +++++++++++++++++++++++++++--------------------- source/utils/pdbedit.c | 6 ------ 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/source/passdb/pdb_ldap.c b/source/passdb/pdb_ldap.c index f4d04561c11..a7a168fe64b 100644 --- a/source/passdb/pdb_ldap.c +++ b/source/passdb/pdb_ldap.c @@ -1273,6 +1273,11 @@ static BOOL init_sam_from_ldap (struct ldapsam_privates *ldap_state, return True; } +/********************************************************************** + An LDAP modification is needed in two cases: + * If we are updating the record AND the attribute is CHANGED. + * If we are adding the record AND it is SET or CHANGED (ie not default) +*********************************************************************/ static BOOL need_ldap_mod(BOOL pdb_add, const SAM_ACCOUNT * sampass, enum pdb_elements element) { if (pdb_add) { return (!IS_SAM_DEFAULT(sampass, element)); @@ -1287,13 +1292,13 @@ static BOOL need_ldap_mod(BOOL pdb_add, const SAM_ACCOUNT * sampass, enum pdb_el *********************************************************************/ static void make_ldap_mod(LDAP *ldap_struct, LDAPMessage *existing, LDAPMod ***mods, - const SAM_ACCOUNT *sampass, + const SAM_ACCOUNT *sampass, BOOL pdb_add, enum pdb_elements element, const char *attribute, const char *newval) { char **values = NULL; - if (!IS_SAM_CHANGED(sampass, element)) { + if (!need_ldap_mod(pdb_add, sampass, element)) { return; } @@ -1342,7 +1347,8 @@ Initialize SAM_ACCOUNT from an LDAP query *********************************************************************/ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, LDAPMessage *existing, - LDAPMod *** mods, const SAM_ACCOUNT * sampass) + LDAPMod *** mods, const SAM_ACCOUNT * sampass, + BOOL pdb_add) { pstring temp; uint32 rid; @@ -1358,7 +1364,7 @@ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, * took out adding "objectclass: sambaAccount" * do this on a per-mod basis */ - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_USERNAME, "uid", pdb_get_username(sampass)); DEBUG(2, ("Setting entry for user: %s\n", pdb_get_username(sampass))); @@ -1386,7 +1392,7 @@ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, } slprintf(temp, sizeof(temp) - 1, "%i", rid); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_USERSID, "rid", temp); @@ -1406,7 +1412,7 @@ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, } slprintf(temp, sizeof(temp) - 1, "%i", rid); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_GROUPSID, "primaryGroupID", temp); /* displayName, cn, and gecos should all be the same @@ -1417,55 +1423,55 @@ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, * it does not exist. */ - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_FULLNAME, "displayName", pdb_get_fullname(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_ACCTDESC, "description", pdb_get_acct_desc(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_WORKSTATIONS, "userWorkstations", pdb_get_workstations(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_SMBHOME, "smbHome", pdb_get_homedir(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_DRIVE, "homeDrive", pdb_get_dir_drive(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_LOGONSCRIPT, "scriptPath", pdb_get_logon_script(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_PROFILE, "profilePath", pdb_get_profile_path(sampass)); slprintf(temp, sizeof(temp) - 1, "%li", pdb_get_logon_time(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_LOGONTIME, "logonTime", temp); slprintf(temp, sizeof(temp) - 1, "%li", pdb_get_logoff_time(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_LOGOFFTIME, "logoffTime", temp); slprintf (temp, sizeof (temp) - 1, "%li", pdb_get_kickoff_time(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_KICKOFFTIME, "kickoffTime", temp); slprintf (temp, sizeof (temp) - 1, "%li", pdb_get_pass_can_change_time(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_CANCHANGETIME, "pwdCanChange", temp); slprintf (temp, sizeof (temp) - 1, "%li", pdb_get_pass_must_change_time(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_MUSTCHANGETIME, "pwdMustChange", temp); if ((pdb_get_acct_ctrl(sampass)&(ACB_WSTRUST|ACB_SVRTRUST|ACB_DOMTRUST))|| @@ -1473,22 +1479,22 @@ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, pdb_sethexpwd (temp, pdb_get_lanman_passwd(sampass), pdb_get_acct_ctrl(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_LMPASSWD, "lmPassword", temp); pdb_sethexpwd (temp, pdb_get_nt_passwd(sampass), pdb_get_acct_ctrl(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_NTPASSWD, "ntPassword", temp); slprintf (temp, sizeof (temp) - 1, "%li", pdb_get_pass_last_set_time(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_PASSLASTSET, "pwdLastSet", temp); } /* FIXME: Hours stuff goes in LDAP */ - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, PDB_ACCTCTRL, "acctFlags", pdb_encode_acct_ctrl (pdb_get_acct_ctrl(sampass), NEW_PW_FORMAT_SPACE_PADDED_LEN)); @@ -1961,7 +1967,7 @@ static NTSTATUS ldapsam_update_sam_account(struct pdb_methods *my_methods, SAM_A entry = ldap_first_entry(ldap_state->ldap_struct, result); dn = ldap_get_dn(ldap_state->ldap_struct, entry); - if (!init_ldap_from_sam(ldap_state, entry, &mods, newpwd)) { + if (!init_ldap_from_sam(ldap_state, entry, &mods, newpwd, False)) { DEBUG(0, ("ldapsam_update_sam_account: init_ldap_from_sam failed!\n")); ldap_msgfree(result); return NT_STATUS_UNSUCCESSFUL; @@ -2060,7 +2066,7 @@ static NTSTATUS ldapsam_add_sam_account(struct pdb_methods *my_methods, SAM_ACCO } } - if (!init_ldap_from_sam(ldap_state, entry, &mods, newpwd)) { + if (!init_ldap_from_sam(ldap_state, entry, &mods, newpwd, True)) { DEBUG(0, ("ldapsam_add_sam_account: init_ldap_from_sam failed!\n")); ldap_msgfree(result); ldap_mods_free(mods, 1); diff --git a/source/utils/pdbedit.c b/source/utils/pdbedit.c index 3dfc6206b4a..f373adcb0a9 100644 --- a/source/utils/pdbedit.c +++ b/source/utils/pdbedit.c @@ -69,12 +69,6 @@ static int export_database (struct pdb_context *in, struct pdb_context *out) { } while (NT_STATUS_IS_OK(in->pdb_getsampwent(in, user))) { - int i; - - for (i=0; ipdb_add_sam_account(out, user); if (!NT_STATUS_IS_OK(pdb_reset_sam(user))){ fprintf(stderr, "Can't reset SAM_ACCOUNT!\n"); -- cgit From aa528bf0f2c3286a6f78c1a36e48c6ff15a85457 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 16:26:53 +0000 Subject: Document Tim's smbtree program --- docs/docbook/manpages/smbtree.1.sgml | 91 ++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 docs/docbook/manpages/smbtree.1.sgml diff --git a/docs/docbook/manpages/smbtree.1.sgml b/docs/docbook/manpages/smbtree.1.sgml new file mode 100644 index 00000000000..ce664908bcc --- /dev/null +++ b/docs/docbook/manpages/smbtree.1.sgml @@ -0,0 +1,91 @@ + %globalentities; +]> + + + + smbtree + 1 + + + + + smbtree + A text based smb network browser + + + + + + smbtree + -b + -D + -S + + + + + DESCRIPTION + + This tool is part of the Samba + 7 suite. + + smbtree is a smb browser program + in text mode. It is similar to the "Network Neighborhood" found + on Windows computers. It prints a tree with all + the known domains, the servers in those domains and + the shares on the servers. + + + + + + OPTIONS + + + + -b + Query network nodes by sending requests + as broadcasts instead of querying the (domain) master browser. + + + + + -D + Only print a list of all + the domains known on broadcast or by the + master browser + + + + -S + Only print a list of + all the domains and servers responding on broadcast or + known by the master browser. + + + + &stdarg.help; + + + + + + VERSION + + This man page is correct for version 3.0 of the Samba + suite. + + + + AUTHOR + + The original Samba software and related utilities + were created by Andrew Tridgell. Samba is now developed + by the Samba Team as an Open Source project similar + to the way the Linux kernel is developed. + + The smbtree man page was written by Jelmer Vernooij. + + + -- cgit From 5bf945d86927e09cbb665e6fb59111b6bdc60fd4 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 23 Mar 2003 16:27:31 +0000 Subject: Build the profiles.1 and smbtree.1 manpages --- docs/docbook/Makefile.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/docbook/Makefile.in b/docs/docbook/Makefile.in index d52bcac8f94..66266196d5e 100644 --- a/docs/docbook/Makefile.in +++ b/docs/docbook/Makefile.in @@ -21,7 +21,8 @@ MANPAGES_NAMES=findsmb.1 smbclient.1 \ smbpasswd.8 testprns.1 \ smb.conf.5 wbinfo.1 pdbedit.8 \ smbcacls.1 smbsh.1 winbindd.8 \ - smbgroupedit.8 vfstest.1 + smbgroupedit.8 vfstest.1 \ + profiles.1 smbtree.1 ## This part contains only rules. You shouldn't need to change it ## if you are adding docs -- cgit From 55a341a367a7d1b18ae7ef04678479eb74b68ea3 Mon Sep 17 00:00:00 2001 From: Tim Potter Date: Mon, 24 Mar 2003 06:31:49 +0000 Subject: Started working on python routines to add and delete domain users. Unfortunately users get created with the ACB mask set to disabled and must change password. The set_user_info2 call required to fix this doesn't quite work yet... --- source/python/py_samr.c | 471 +++++++++++++++++++++++++++++-------------- source/python/py_samr.h | 5 + source/python/py_samr_conv.c | 73 +++++++ source/python/setup.py | 1 + 4 files changed, 404 insertions(+), 146 deletions(-) diff --git a/source/python/py_samr.c b/source/python/py_samr.c index 182671d0478..57acd74bedb 100644 --- a/source/python/py_samr.c +++ b/source/python/py_samr.c @@ -31,6 +31,272 @@ PyObject *samr_ntstatus; /* This exception is raised when a RPC call returns a status code other than NT_STATUS_OK */ +/* SAMR group handle object */ + +static void py_samr_group_hnd_dealloc(PyObject* self) +{ + PyObject_Del(self); +} + +static PyMethodDef samr_group_methods[] = { + { NULL } +}; + +static PyObject *py_samr_group_hnd_getattr(PyObject *self, char *attrname) +{ + return Py_FindMethod(samr_group_methods, self, attrname); +} + +PyTypeObject samr_group_hnd_type = { + PyObject_HEAD_INIT(NULL) + 0, + "SAMR Group Handle", + sizeof(samr_group_hnd_object), + 0, + py_samr_group_hnd_dealloc, /*tp_dealloc*/ + 0, /*tp_print*/ + py_samr_group_hnd_getattr, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash */ +}; + +PyObject *new_samr_group_hnd_object(struct cli_state *cli, TALLOC_CTX *mem_ctx, + POLICY_HND *pol) +{ + samr_group_hnd_object *o; + + o = PyObject_New(samr_group_hnd_object, &samr_group_hnd_type); + + o->cli = cli; + o->mem_ctx = mem_ctx; + memcpy(&o->group_pol, pol, sizeof(POLICY_HND)); + + return (PyObject*)o; +} + +/* Alias handle object */ + +static void py_samr_alias_hnd_dealloc(PyObject* self) +{ + PyObject_Del(self); +} + +static PyMethodDef samr_alias_methods[] = { + { NULL } +}; + +static PyObject *py_samr_alias_hnd_getattr(PyObject *self, char *attrname) +{ + return Py_FindMethod(samr_alias_methods, self, attrname); +} + +PyTypeObject samr_alias_hnd_type = { + PyObject_HEAD_INIT(NULL) + 0, + "SAMR Alias Handle", + sizeof(samr_alias_hnd_object), + 0, + py_samr_alias_hnd_dealloc, /*tp_dealloc*/ + 0, /*tp_print*/ + py_samr_alias_hnd_getattr, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash */ +}; + +PyObject *new_samr_alias_hnd_object(struct cli_state *cli, TALLOC_CTX *mem_ctx, + POLICY_HND *pol) +{ + samr_alias_hnd_object *o; + + o = PyObject_New(samr_alias_hnd_object, &samr_alias_hnd_type); + + o->cli = cli; + o->mem_ctx = mem_ctx; + memcpy(&o->alias_pol, pol, sizeof(POLICY_HND)); + + return (PyObject*)o; +} + +/* SAMR user handle object */ + +static void py_samr_user_hnd_dealloc(PyObject* self) +{ + PyObject_Del(self); +} + +static PyObject *samr_set_user_info2(PyObject *self, PyObject *args, + PyObject *kw) +{ + samr_user_hnd_object *user_hnd = (samr_user_hnd_object *)self; + static char *kwlist[] = { "dict", NULL }; + PyObject *info, *result = NULL; + SAM_USERINFO_CTR ctr; + TALLOC_CTX *mem_ctx; + uchar sess_key[16]; + NTSTATUS ntstatus; + int level; + union { + SAM_USER_INFO_10 id10; + SAM_USER_INFO_21 id21; + } pinfo; + + if (!PyArg_ParseTupleAndKeywords( + args, kw, "O!", kwlist, &PyDict_Type, &info)) + return NULL; + + if (!get_level_value(info, &level)) { + PyErr_SetString(samr_error, "invalid info level"); + return NULL; + } + + ZERO_STRUCT(ctr); + + ctr.switch_value = level; + + switch(level) { + case 0x10: + ctr.info.id10 = &pinfo.id10; + + if (!py_to_SAM_USER_INFO_10(ctr.info.id10, info)) { + PyErr_SetString( + samr_error, "error converting user info"); + goto done; + } + + break; + case 21: + ctr.info.id21 = &pinfo.id21; + + if (!py_to_SAM_USER_INFO_21(ctr.info.id21, info)) { + PyErr_SetString( + samr_error, "error converting user info"); + goto done; + } + + break; + default: + PyErr_SetString(samr_error, "unsupported info level"); + goto done; + } + + /* Call RPC function */ + + if (!(mem_ctx = talloc_init("samr_set_user_info2"))) { + PyErr_SetString( + samr_error, "unable to init talloc context\n"); + goto done; + } + + ntstatus = cli_samr_set_userinfo2( + user_hnd->cli, mem_ctx, &user_hnd->user_pol, level, + sess_key, &ctr); + + talloc_destroy(mem_ctx); + + if (!NT_STATUS_IS_OK(ntstatus)) { + PyErr_SetObject(samr_ntstatus, py_ntstatus_tuple(ntstatus)); + goto done; + } + + Py_INCREF(Py_None); + result = Py_None; + +done: + return result; +} + +static PyObject *samr_delete_dom_user(PyObject *self, PyObject *args, + PyObject *kw) +{ + samr_user_hnd_object *user_hnd = (samr_user_hnd_object *)self; + static char *kwlist[] = { NULL }; + NTSTATUS ntstatus; + TALLOC_CTX *mem_ctx; + PyObject *result = NULL; + + if (!PyArg_ParseTupleAndKeywords( + args, kw, "", kwlist)) + return NULL; + + if (!(mem_ctx = talloc_init("samr_delete_dom_user"))) { + PyErr_SetString(samr_error, "unable to init talloc context"); + return NULL; + } + + ntstatus = cli_samr_delete_dom_user( + user_hnd->cli, mem_ctx, &user_hnd->user_pol); + + if (!NT_STATUS_IS_OK(ntstatus)) { + PyErr_SetObject(samr_ntstatus, py_ntstatus_tuple(ntstatus)); + goto done; + } + + Py_INCREF(Py_None); + result = Py_None; + +done: + talloc_destroy(mem_ctx); + + return result; +} + +static PyMethodDef samr_user_methods[] = { + { "delete_domain_user", (PyCFunction)samr_delete_dom_user, + METH_VARARGS | METH_KEYWORDS, + "Delete domain user." }, + { "set_user_info2", (PyCFunction)samr_set_user_info2, + METH_VARARGS | METH_KEYWORDS, + "Set user info 2" }, + { NULL } +}; + +static PyObject *py_samr_user_hnd_getattr(PyObject *self, char *attrname) +{ + return Py_FindMethod(samr_user_methods, self, attrname); +} + +PyTypeObject samr_user_hnd_type = { + PyObject_HEAD_INIT(NULL) + 0, + "SAMR User Handle", + sizeof(samr_user_hnd_object), + 0, + py_samr_user_hnd_dealloc, /*tp_dealloc*/ + 0, /*tp_print*/ + py_samr_user_hnd_getattr, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash */ +}; + +PyObject *new_samr_user_hnd_object(struct cli_state *cli, TALLOC_CTX *mem_ctx, + POLICY_HND *pol) +{ + samr_user_hnd_object *o; + + o = PyObject_New(samr_user_hnd_object, &samr_user_hnd_type); + + o->cli = cli; + o->mem_ctx = mem_ctx; + memcpy(&o->user_pol, pol, sizeof(POLICY_HND)); + + return (PyObject*)o; +} + /* SAMR connect handle object */ static void py_samr_connect_hnd_dealloc(PyObject* self) @@ -163,8 +429,7 @@ static PyObject *samr_enum_dom_groups(PyObject *self, PyObject *args, NTSTATUS result; PyObject *py_result = NULL; - if (!PyArg_ParseTupleAndKeywords( - args, kw, "", kwlist)) + if (!PyArg_ParseTupleAndKeywords(args, kw, "", kwlist)) return NULL; if (!(mem_ctx = talloc_init("samr_enum_dom_groups"))) { @@ -191,9 +456,52 @@ static PyObject *samr_enum_dom_groups(PyObject *self, PyObject *args, return py_result; } +static PyObject *samr_create_dom_user(PyObject *self, PyObject *args, + PyObject *kw) +{ + samr_domain_hnd_object *domain_hnd = (samr_domain_hnd_object *)self; + static char *kwlist[] = { "account_name", "acb_info", NULL }; + char *account_name; + NTSTATUS ntstatus; + uint32 unknown = 0xe005000b; /* Access mask? */ + uint32 user_rid; + PyObject *result = NULL; + TALLOC_CTX *mem_ctx; + uint16 acb_info = ACB_NORMAL; + POLICY_HND user_pol; + + if (!PyArg_ParseTupleAndKeywords( + args, kw, "s|i", kwlist, &account_name, &acb_info)) + return NULL; + + if (!(mem_ctx = talloc_init("samr_create_dom_user"))) { + PyErr_SetString(samr_error, "unable to init talloc context"); + return NULL; + } + + ntstatus = cli_samr_create_dom_user( + domain_hnd->cli, mem_ctx, &domain_hnd->domain_pol, + account_name, acb_info, unknown, &user_pol, &user_rid); + + if (!NT_STATUS_IS_OK(ntstatus)) { + PyErr_SetObject(samr_ntstatus, py_ntstatus_tuple(ntstatus)); + talloc_destroy(mem_ctx); + goto done; + } + + result = new_samr_user_hnd_object( + domain_hnd->cli, mem_ctx, &user_pol); + +done: + + return result; +} + static PyMethodDef samr_domain_methods[] = { { "enum_domain_groups", (PyCFunction)samr_enum_dom_groups, METH_VARARGS | METH_KEYWORDS, "Enumerate domain groups" }, + { "create_domain_user", (PyCFunction)samr_create_dom_user, + METH_VARARGS | METH_KEYWORDS, "Create domain user" }, { NULL } }; @@ -220,150 +528,6 @@ PyTypeObject samr_domain_hnd_type = { 0, /*tp_hash */ }; -/* SAMR user handle object */ - -static void py_samr_user_hnd_dealloc(PyObject* self) -{ - PyObject_Del(self); -} - -static PyMethodDef samr_user_methods[] = { - { NULL } -}; - -static PyObject *py_samr_user_hnd_getattr(PyObject *self, char *attrname) -{ - return Py_FindMethod(samr_user_methods, self, attrname); -} - -PyTypeObject samr_user_hnd_type = { - PyObject_HEAD_INIT(NULL) - 0, - "SAMR User Handle", - sizeof(samr_user_hnd_object), - 0, - py_samr_user_hnd_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - py_samr_user_hnd_getattr, /*tp_getattr*/ - 0, /*tp_setattr*/ - 0, /*tp_compare*/ - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash */ -}; - -PyObject *new_samr_user_hnd_object(struct cli_state *cli, TALLOC_CTX *mem_ctx, - POLICY_HND *pol) -{ - samr_user_hnd_object *o; - - o = PyObject_New(samr_user_hnd_object, &samr_user_hnd_type); - - o->cli = cli; - o->mem_ctx = mem_ctx; - memcpy(&o->user_pol, pol, sizeof(POLICY_HND)); - - return (PyObject*)o; -} - -/* SAMR group handle object */ - -static void py_samr_group_hnd_dealloc(PyObject* self) -{ - PyObject_Del(self); -} - -static PyMethodDef samr_group_methods[] = { - { NULL } -}; - -static PyObject *py_samr_group_hnd_getattr(PyObject *self, char *attrname) -{ - return Py_FindMethod(samr_group_methods, self, attrname); -} - -PyTypeObject samr_group_hnd_type = { - PyObject_HEAD_INIT(NULL) - 0, - "SAMR Group Handle", - sizeof(samr_group_hnd_object), - 0, - py_samr_group_hnd_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - py_samr_group_hnd_getattr, /*tp_getattr*/ - 0, /*tp_setattr*/ - 0, /*tp_compare*/ - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash */ -}; - -PyObject *new_samr_group_hnd_object(struct cli_state *cli, TALLOC_CTX *mem_ctx, - POLICY_HND *pol) -{ - samr_group_hnd_object *o; - - o = PyObject_New(samr_group_hnd_object, &samr_group_hnd_type); - - o->cli = cli; - o->mem_ctx = mem_ctx; - memcpy(&o->group_pol, pol, sizeof(POLICY_HND)); - - return (PyObject*)o; -} - -/* Alias handle object */ - -static void py_samr_alias_hnd_dealloc(PyObject* self) -{ - PyObject_Del(self); -} - -static PyMethodDef samr_alias_methods[] = { - { NULL } -}; - -static PyObject *py_samr_alias_hnd_getattr(PyObject *self, char *attrname) -{ - return Py_FindMethod(samr_alias_methods, self, attrname); -} - -PyTypeObject samr_alias_hnd_type = { - PyObject_HEAD_INIT(NULL) - 0, - "SAMR Alias Handle", - sizeof(samr_alias_hnd_object), - 0, - py_samr_alias_hnd_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - py_samr_alias_hnd_getattr, /*tp_getattr*/ - 0, /*tp_setattr*/ - 0, /*tp_compare*/ - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash */ -}; - -PyObject *new_samr_alias_hnd_object(struct cli_state *cli, TALLOC_CTX *mem_ctx, - POLICY_HND *pol) -{ - samr_alias_hnd_object *o; - - o = PyObject_New(samr_alias_hnd_object, &samr_alias_hnd_type); - - o->cli = cli; - o->mem_ctx = mem_ctx; - memcpy(&o->alias_pol, pol, sizeof(POLICY_HND)); - - return (PyObject*)o; -} - static PyObject *samr_connect(PyObject *self, PyObject *args, PyObject *kw) { static char *kwlist[] = { "server", "creds", "access", NULL }; @@ -446,6 +610,21 @@ static struct const_vals { char *name; uint32 value; } module_const_vals[] = { + + /* Account control bits */ + + { "ACB_DISABLED", 0x0001 }, + { "ACB_HOMDIRREQ", 0x0002 }, + { "ACB_PWNOTREQ", 0x0004 }, + { "ACB_TEMPDUP", 0x0008 }, + { "ACB_NORMAL", 0x0010 }, + { "ACB_MNS", 0x0020 }, + { "ACB_DOMTRUST", 0x0040 }, + { "ACB_WSTRUST", 0x0080 }, + { "ACB_SVRTRUST", 0x0100 }, + { "ACB_PWNOEXP", 0x0200 }, + { "ACB_AUTOLOCK", 0x0400 }, + { NULL } }; diff --git a/source/python/py_samr.h b/source/python/py_samr.h index 3292eb97ec6..4d2b0675b47 100644 --- a/source/python/py_samr.h +++ b/source/python/py_samr.h @@ -78,4 +78,9 @@ extern PyObject *samr_error; /* The following definitions are from py_samr_conv.c */ BOOL py_from_acct_info(PyObject **array, struct acct_info *info, int num_accts); +BOOL py_from_SAM_USER_INFO_10(PyObject **dict, SAM_USER_INFO_10 *info); +BOOL py_to_SAM_USER_INFO_10(SAM_USER_INFO_10 *info, PyObject *dict); +BOOL py_from_SAM_USER_INFO_21(PyObject **dict, SAM_USER_INFO_21 *info); +BOOL py_to_SAM_USER_INFO_21(SAM_USER_INFO_21 *info, PyObject *dict); + #endif /* _PY_SAMR_H */ diff --git a/source/python/py_samr_conv.c b/source/python/py_samr_conv.c index fdf71641e07..7523ee7dfcb 100644 --- a/source/python/py_samr_conv.c +++ b/source/python/py_samr_conv.c @@ -21,6 +21,79 @@ #include "python/py_samr.h" #include "python/py_conv.h" +/* + * Convert between SAM_USER_INFO_10 and Python + */ + +struct pyconv py_SAM_USER_INFO_10[] = { + { "acb_info", PY_UINT32, offsetof(SAM_USER_INFO_10, acb_info) }, + { NULL } +}; + +BOOL py_from_SAM_USER_INFO_10(PyObject **dict, SAM_USER_INFO_10 *info) +{ + *dict = from_struct(info, py_SAM_USER_INFO_10); + PyDict_SetItemString(*dict, "level", PyInt_FromLong(0x10)); + return True; +} + +BOOL py_to_SAM_USER_INFO_10(SAM_USER_INFO_10 *info, PyObject *dict) +{ + PyObject *obj, *dict_copy = PyDict_Copy(dict); + BOOL result = False; + + if (!(obj = PyDict_GetItemString(dict_copy, "level")) || + !PyInt_Check(obj)) + goto done; + + PyDict_DelItemString(dict_copy, "level"); + + if (!to_struct(info, dict_copy, py_SAM_USER_INFO_10)) + goto done; + + result = True; + +done: + Py_DECREF(dict_copy); + return result; +} + +/* + * Convert between SAM_USER_INFO_21 and Python + */ + +struct pyconv py_SAM_USER_INFO_21[] = { + { NULL } +}; + +BOOL py_from_SAM_USER_INFO_21(PyObject **dict, SAM_USER_INFO_21 *info) +{ + *dict = from_struct(info, py_SAM_USER_INFO_21); + PyDict_SetItemString(*dict, "level", PyInt_FromLong(21)); + return True; +} + +BOOL py_to_SAM_USER_INFO_21(SAM_USER_INFO_21 *info, PyObject *dict) +{ + PyObject *obj, *dict_copy = PyDict_Copy(dict); + BOOL result = False; + + if (!(obj = PyDict_GetItemString(dict_copy, "level")) || + !PyInt_Check(obj)) + goto done; + + PyDict_DelItemString(dict_copy, "level"); + + if (!to_struct(info, dict_copy, py_SAM_USER_INFO_21)) + goto done; + + result = True; + +done: + Py_DECREF(dict_copy); + return result; +} + /* * Convert between acct_info and Python */ diff --git a/source/python/setup.py b/source/python/setup.py index 8bc8868a70c..65693310318 100755 --- a/source/python/setup.py +++ b/source/python/setup.py @@ -116,6 +116,7 @@ setup( Extension(name = "samr", sources = [samba_srcdir + "python/py_samr.c", + samba_srcdir + "python/py_conv.c", samba_srcdir + "python/py_samr_conv.c", samba_srcdir + "python/py_common.c"], libraries = lib_list, -- cgit From 2ddfed298d7f0b6e690275725a39c3ef107077ae Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 11:25:34 +0000 Subject: Patch from metze to generalise POPT_COMMON_SAMBA, with some minor changes --- source/client/client.c | 16 ++--- source/include/popt_common.h | 11 +-- source/lib/popt_common.c | 95 ++++++++++---------------- source/nmbd/nmbd.c | 5 -- source/nsswitch/wbinfo.c | 4 +- source/nsswitch/winbindd.c | 7 +- source/rpcclient/rpcclient.c | 156 +++---------------------------------------- source/smbd/server.c | 4 -- source/torture/samtest.c | 14 ++-- source/torture/vfstest.c | 44 +++--------- source/utils/net.c | 3 - source/utils/nmblookup.c | 3 - source/utils/ntlm_auth.c | 10 ++- source/utils/pdbedit.c | 4 +- source/utils/smbcacls.c | 45 +++---------- source/utils/smbtree.c | 8 +-- source/utils/status.c | 6 +- source/utils/testparm.c | 4 +- source/web/swat.c | 5 +- source/wrepld/server.c | 8 +-- 20 files changed, 95 insertions(+), 357 deletions(-) diff --git a/source/client/client.c b/source/client/client.c index 9fb843cfbae..8d6730cdc66 100644 --- a/source/client/client.c +++ b/source/client/client.c @@ -2589,15 +2589,7 @@ static void remember_query_host(const char *arg, int rc = 0; struct poptOption long_options[] = { POPT_AUTOHELP - POPT_COMMON_SAMBA - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_socket_options }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_log_base }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_netbios_name }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_scope }, - POPT_CREDENTIALS + { "name-resolve", 'R', POPT_ARG_STRING, &new_name_resolve_order, 'R', "Use these name resolution services only", "NAME-RESOLVE-ORDER" }, { "message", 'M', POPT_ARG_STRING, NULL, 'M', "Send message", "HOST" }, { "ip-address", 'I', POPT_ARG_STRING, NULL, 'I', "Use this IP to connect to", "IP" }, @@ -2610,7 +2602,9 @@ static void remember_query_host(const char *arg, { "command", 'c', POPT_ARG_STRING, &cmdstr, 'c', "Execute semicolon separated commands" }, { "send-buffer", 'b', POPT_ARG_INT, NULL, 'b', "Changes the transmit/send buffer", "BYTES" }, { "port", 'p', POPT_ARG_INT, &port, 'p', "Port to connect to", "PORT" }, - { 0, 0, 0, 0 } + POPT_COMMON_SAMBA + POPT_CREDENTIALS + POPT_TABLEEND }; @@ -2720,7 +2714,7 @@ static void remember_query_host(const char *arg, pstrcpy(username, cmdline_auth_info.username); pstrcpy(password, cmdline_auth_info.password); - pstrcpy(workgroup, cmdline_auth_info.workgroup); + pstrcpy(workgroup, lp_workgroup()); use_kerberos = cmdline_auth_info.use_kerberos; got_pass = cmdline_auth_info.got_pass; diff --git a/source/include/popt_common.h b/source/include/popt_common.h index 9354e8734d7..7cdbc988623 100644 --- a/source/include/popt_common.h +++ b/source/include/popt_common.h @@ -22,22 +22,15 @@ #define _POPT_COMMON_H /* Common popt structures */ -extern struct poptOption popt_common_debug[]; -extern struct poptOption popt_common_configfile[]; -extern struct poptOption popt_common_socket_options[]; -extern struct poptOption popt_common_version[]; -extern struct poptOption popt_common_netbios_name[]; -extern struct poptOption popt_common_log_base[]; +extern struct poptOption popt_common_samba[]; extern struct poptOption popt_common_credentials[]; -extern struct poptOption popt_common_scope[]; -#define POPT_COMMON_SAMBA { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version, 0, "Common samba options:", NULL }, +#define POPT_COMMON_SAMBA { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_samba, 0, "Common samba options:", NULL }, #define POPT_CREDENTIALS { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_credentials, 0, "Authentication options:", NULL }, struct user_auth_info { pstring username; pstring password; - pstring workgroup; BOOL got_pass; BOOL use_kerberos; }; diff --git a/source/lib/popt_common.c b/source/lib/popt_common.c index 3c9a87b361c..06ba4fc898e 100644 --- a/source/lib/popt_common.c +++ b/source/lib/popt_common.c @@ -29,6 +29,7 @@ * -V,--version * -l,--log-base * -n,--netbios-name + * -W,--workgroup * -i,--scope */ @@ -102,49 +103,29 @@ static void popt_common_callback(poptContext con, set_global_scope(arg); } break; + + case 'W': + if (arg) { + set_global_myworkgroup(arg); + } + break; } } -struct poptOption popt_common_debug[] = { +struct poptOption popt_common_samba[] = { { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback }, { "debuglevel", 'd', POPT_ARG_STRING, NULL, 'd', "Set debug level", "DEBUGLEVEL" }, - { 0 } -}; - -struct poptOption popt_common_scope[] = { - { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback }, - { "scope", 'i', POPT_ARG_STRING, NULL, 'i', "Use this Netbios scope", "SCOPE" }, - { 0 } -}; - -struct poptOption popt_common_configfile[] = { - { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback }, - { "configfile", 's', POPT_ARG_STRING, NULL, 's', "Use alternative configuration file" }, - { 0 } -}; - -struct poptOption popt_common_socket_options[] = { - { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback }, - {"socket-options", 'O', POPT_ARG_STRING, NULL, 'O', "socket options to use" }, - { 0 } -}; - -struct poptOption popt_common_version[] = { - { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback }, - {"version", 'V', POPT_ARG_NONE, NULL, 'V', "Print version" }, - { 0 } -}; - -struct poptOption popt_common_netbios_name[] = { - { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback }, - {"netbiosname", 'n', POPT_ARG_STRING, NULL, 'n', "Primary netbios name"}, - { 0 } -}; - -struct poptOption popt_common_log_base[] = { - { NULL, 0, POPT_ARG_CALLBACK|POPT_CBFLAG_PRE, popt_common_callback }, - { "log-basename", 'l', POPT_ARG_STRING, NULL, 'l', "Basename for log/debug files"}, - { 0 } + { "configfile", 's', POPT_ARG_STRING, NULL, 's', "Use alternative configuration file", + "CONFIGFILE" }, + { "socket-options", 'O', POPT_ARG_STRING, NULL, 'O', "socket options to use", + "SOCKETOPTIONS" }, + { "version", 'V', POPT_ARG_NONE, NULL, 'V', "Print version" }, + { "log-basename", 'l', POPT_ARG_STRING, NULL, 'l', "Basename for log/debug files", + "LOGFILEBASE" }, + { "netbiosname", 'n', POPT_ARG_STRING, NULL, 'n', "Primary netbios name", "NETBIOSNAME" }, + { "workgroup", 'W', POPT_ARG_STRING, NULL, 'W', "Set the workgroup name", "WORKGROUP" }, + { "scope", 'i', POPT_ARG_STRING, NULL, 'i', "Use this Netbios scope", "SCOPE" }, + POPT_TABLEEND }; /**************************************************************************** @@ -255,7 +236,7 @@ static void get_credentials_file(const char *file, struct user_auth_info *info) else if (strwicmp("username", param) == 0) pstrcpy(info->username, val); else if (strwicmp("domain", param) == 0) - pstrcpy(info->workgroup,val); + set_global_myworkgroup(val); memset(buf, 0, sizeof(buf)); } x_fclose(auth); @@ -263,7 +244,6 @@ static void get_credentials_file(const char *file, struct user_auth_info *info) /* Handle command line options: * -U,--user - * -W,--workgroup * -A,--authentication-file * -k,--use-kerberos * -N,--no-pass @@ -327,30 +307,25 @@ static void popt_common_credentials_callback(poptContext con, get_credentials_file(arg, &cmdline_auth_info); break; - case 'W': - pstrcpy(cmdline_auth_info.workgroup,arg); - break; - - case 'k': + case 'k': #ifndef HAVE_KRB5 - d_printf("No kerberos support compiled in\n"); - exit(1); + d_printf("No kerberos support compiled in\n"); + exit(1); #else - cmdline_auth_info.got_pass = True; + cmdline_auth_info.use_kerberos = True; + cmdline_auth_info.got_pass = True; #endif - - break; - } + break; } +} - struct poptOption popt_common_credentials[] = { - { NULL, 0, POPT_ARG_CALLBACK|POPT_CBFLAG_PRE, popt_common_credentials_callback }, - { "user", 'U', POPT_ARG_STRING, NULL, 'U', "Set the network username", "USERNAME" }, - { "no-pass", 'N', POPT_ARG_VAL, &cmdline_auth_info.got_pass, True, "Don't ask for a password" }, - { "kerberos", 'k', POPT_ARG_VAL, &cmdline_auth_info.use_kerberos, True, "Use kerberos (active directory) authentication" }, - { "authentication-file", 'A', POPT_ARG_STRING, NULL, 'A', "Get the credentials from a file", "FILE" }, - { "workgroup", 'W', POPT_ARG_STRING, NULL, 'W', "Set the workgroup name", "WORKGROUP" }, - { 0 } - }; +struct poptOption popt_common_credentials[] = { + { NULL, 0, POPT_ARG_CALLBACK|POPT_CBFLAG_PRE, popt_common_credentials_callback }, + { "user", 'U', POPT_ARG_STRING, NULL, 'U', "Set the network username", "USERNAME" }, + { "no-pass", 'N', POPT_ARG_NONE, &cmdline_auth_info.got_pass, True, "Don't ask for a password" }, + { "kerberos", 'k', POPT_ARG_NONE, &cmdline_auth_info.use_kerberos, True, "Use kerberos (active directory) authentication" }, + { "authentication-file", 'A', POPT_ARG_STRING, NULL, 'A', "Get the credentials from a file", "FILE" }, + POPT_TABLEEND +}; diff --git a/source/nmbd/nmbd.c b/source/nmbd/nmbd.c index a34593557e5..d013b79d3e6 100644 --- a/source/nmbd/nmbd.c +++ b/source/nmbd/nmbd.c @@ -601,11 +601,6 @@ static BOOL open_sockets(BOOL isdaemon, int port) {"hosts", 'H', POPT_ARG_STRING, dyn_LMHOSTSFILE, 'H', "Load a netbios hosts file"}, {"port", 'p', POPT_ARG_INT, &global_nmb_port, NMB_PORT, "Listen on the specified port" }, POPT_COMMON_SAMBA - {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, - {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, - {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_socket_options }, - {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_netbios_name }, - {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_log_base }, { NULL } }; pstring logfile; diff --git a/source/nsswitch/wbinfo.c b/source/nsswitch/wbinfo.c index 4f621e7008a..fe11cd65285 100644 --- a/source/nsswitch/wbinfo.c +++ b/source/nsswitch/wbinfo.c @@ -711,8 +711,8 @@ int main(int argc, char **argv) { "set-auth-user", 'A', POPT_ARG_STRING, &string_arg, OPT_SET_AUTH_USER, "Store user and password used by winbindd (root only)", "user%password" }, { "get-auth-user", 0, POPT_ARG_NONE, NULL, OPT_GET_AUTH_USER, "Retrieve user and password used by winbindd (root only)", NULL }, { "ping", 'p', POPT_ARG_NONE, 0, 'p', "Ping winbindd to see if it is alive" }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version}, - { 0, 0, 0, 0 } + POPT_COMMON_SAMBA + POPT_TABLEEND }; /* Samba client initialisation */ diff --git a/source/nsswitch/winbindd.c b/source/nsswitch/winbindd.c index c9d68083168..cd72a4f5721 100644 --- a/source/nsswitch/winbindd.c +++ b/source/nsswitch/winbindd.c @@ -814,16 +814,13 @@ int main(int argc, char **argv) static BOOL log_stdout = False; struct poptOption long_options[] = { POPT_AUTOHELP - POPT_COMMON_SAMBA - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, { "stdout", 'S', POPT_ARG_VAL, &log_stdout, True, "Log to stdout" }, { "foreground", 'F', POPT_ARG_VAL, &Fork, False, "Daemon in foreground mode" }, { "interactive", 'i', POPT_ARG_NONE, NULL, 'i', "Interactive mode" }, { "dual-daemon", 'B', POPT_ARG_VAL, &opt_dual_daemon, True, "Dual daemon mode" }, { "no-caching", 'n', POPT_ARG_VAL, &opt_nocache, False, "Disable caching" }, - - { 0, 0, 0, 0 } + POPT_COMMON_SAMBA + POPT_TABLEEND }; poptContext pc; int opt; diff --git a/source/rpcclient/rpcclient.c b/source/rpcclient/rpcclient.c index 2338d72f192..97a944dbf9d 100644 --- a/source/rpcclient/rpcclient.c +++ b/source/rpcclient/rpcclient.c @@ -97,70 +97,6 @@ static char **completion_fn(char *text, int start, int end) return matches; } -/*********************************************************************** - * read in username/password credentials from a file - */ -static void read_authfile ( - char *filename, - char* username, - char* password, - char* domain -) -{ - FILE *auth; - fstring buf; - uint16 len = 0; - char *ptr, *val, *param; - - if ((auth=sys_fopen(filename, "r")) == NULL) - { - printf ("ERROR: Unable to open credentials file!\n"); - return; - } - - while (!feof(auth)) - { - /* get a line from the file */ - if (!fgets (buf, sizeof(buf), auth)) - continue; - - len = strlen(buf); - - /* skip empty lines */ - if ((len) && (buf[len-1]=='\n')) - { - buf[len-1] = '\0'; - len--; - } - if (len == 0) - continue; - - /* break up the line into parameter & value. - will need to eat a little whitespace possibly */ - param = buf; - if (!(ptr = strchr_m(buf, '='))) - continue; - val = ptr+1; - *ptr = '\0'; - - /* eat leading white space */ - while ((*val!='\0') && ((*val==' ') || (*val=='\t'))) - val++; - - if (strwicmp("password", param) == 0) - fstrcpy (password, val); - else if (strwicmp("username", param) == 0) - fstrcpy (username, val); - else if (strwicmp("domain", param) == 0) - fstrcpy (domain, val); - - memset(buf, 0, sizeof(buf)); - } - fclose(auth); - - return; -} - static char* next_command (char** cmdstr) { static pstring command; @@ -181,28 +117,6 @@ static char* next_command (char** cmdstr) return command; } - -/** - * Find default username from environment variables. - * - * @param username fstring to receive username; not touched if none is - * known. - **/ -static void get_username (char *username) -{ - if (getenv("USER")) - fstrcpy(username,getenv("USER")); - - if (*username == 0 && getenv("LOGNAME")) - fstrcpy(username,getenv("LOGNAME")); - - if (*username == 0) { - fstrcpy(username,"GUEST"); - } - - return; -} - /* Fetch the SID for this computer */ static void fetch_machine_sid(struct cli_state *cli) @@ -575,21 +489,12 @@ out_free: int main(int argc, char *argv[]) { - static int got_pass = 0; BOOL interactive = True; int opt; - static char *cmdstr = ""; + static char *cmdstr = NULL; const char *server; struct cli_state *cli; - fstring password="", - username="", - domain=""; - static char *opt_authfile=NULL, - *opt_username=NULL, - *opt_domain=NULL, - *opt_logfile=NULL, - *opt_ipaddr=NULL; - pstring logfile; + static char *opt_ipaddr=NULL; struct cmd_set **cmd_set; struct in_addr server_ip; NTSTATUS nt_status; @@ -599,17 +504,11 @@ out_free: poptContext pc; struct poptOption long_options[] = { POPT_AUTOHELP - {"authfile", 'A', POPT_ARG_STRING, &opt_authfile, 'A', "File containing user credentials", "AUTHFILE"}, - {"nopass", 'N', POPT_ARG_NONE, &got_pass, 'N', "Don't ask for a password"}, - {"user", 'U', POPT_ARG_STRING, &opt_username, 'U', "Set the network username", "USER"}, - {"workgroup", 'W', POPT_ARG_STRING, &opt_domain, 'W', "Set the domain name for user account", "DOMAIN"}, {"command", 'c', POPT_ARG_STRING, &cmdstr, 'c', "Execute semicolon separated cmds", "COMMANDS"}, - {"logfile", 'l', POPT_ARG_STRING, &opt_logfile, 'l', "Logfile to use instead of stdout", "LOGFILE" }, {"dest-ip", 'I', POPT_ARG_STRING, &opt_ipaddr, 'I', "Specify destination IP address", "IP"}, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version}, - { NULL } + POPT_COMMON_SAMBA + POPT_CREDENTIALS + POPT_TABLEEND }; ZERO_STRUCT(server_ip); @@ -628,43 +527,13 @@ out_free: while((opt = poptGetNextOpt(pc)) != -1) { switch (opt) { - case 'A': - /* only get the username, password, and domain from the file */ - read_authfile (opt_authfile, username, password, domain); - if (strlen (password)) - got_pass = 1; - break; - - case 'l': - slprintf(logfile, sizeof(logfile) - 1, "%s.client", - opt_logfile); - lp_set_logfile(logfile); - interactive = False; - break; - - case 'U': { - char *lp; - fstrcpy(username,opt_username); - - if ((lp=strchr_m(username,'%'))) { - *lp = 0; - fstrcpy(password,lp+1); - got_pass = 1; - memset(strchr_m(opt_username,'%') + 1, 'X', - strlen(password)); - } - break; - } case 'I': if ( (server_ip.s_addr=inet_addr(opt_ipaddr)) == INADDR_NONE ) { fprintf(stderr, "%s not a valid IP address\n", opt_ipaddr); return 1; } - case 'W': - fstrcpy(domain, opt_domain); - break; } } @@ -701,28 +570,25 @@ out_free: * from stdin if necessary */ - if (!got_pass) { + if (!cmdline_auth_info.got_pass) { char *pass = getpass("Password:"); if (pass) { - fstrcpy(password, pass); + pstrcpy(cmdline_auth_info.password, pass); } } - if (!strlen(username) && !got_pass) - get_username(username); - nt_status = cli_full_connection(&cli, global_myname(), server, opt_ipaddr ? &server_ip : NULL, 0, "IPC$", "IPC", - username, domain, - password, 0, NULL); + cmdline_auth_info.username, lp_workgroup(), + cmdline_auth_info.password, 0, NULL); if (!NT_STATUS_IS_OK(nt_status)) { DEBUG(0,("Cannot connect to server. Error was %s\n", nt_errstr(nt_status))); return 1; } - memset(password,'X',sizeof(password)); + memset(cmdline_auth_info.password,'X',sizeof(cmdline_auth_info.password)); /* Load command lists */ @@ -737,7 +603,7 @@ out_free: fetch_machine_sid(cli); /* Do anything specified with -c */ - if (cmdstr[0]) { + if (cmdstr && cmdstr[0]) { char *cmd; char *p = cmdstr; diff --git a/source/smbd/server.c b/source/smbd/server.c index 627fad15726..715e9162631 100644 --- a/source/smbd/server.c +++ b/source/smbd/server.c @@ -670,10 +670,6 @@ static BOOL init_structs(void ) {"build-options", 'b', POPT_ARG_NONE, NULL, 'b', "Print build options" }, {"port", 'p', POPT_ARG_STRING, &ports, 0, "Listen on the specified ports"}, POPT_COMMON_SAMBA - {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug}, - {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile}, - {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_socket_options}, - {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_log_base}, { NULL } }; diff --git a/source/torture/samtest.c b/source/torture/samtest.c index 0de2e5d2889..fd5f75a664b 100644 --- a/source/torture/samtest.c +++ b/source/torture/samtest.c @@ -353,10 +353,7 @@ int main(int argc, char *argv[]) { BOOL interactive = True; int opt; - static char *cmdstr = ""; - static char *opt_logfile=NULL; - static char *config_file = dyn_CONFIGFILE; - pstring logfile; + static char *cmdstr = NULL; struct cmd_set **cmd_set; struct samtest_state st; @@ -365,12 +362,9 @@ int main(int argc, char *argv[]) poptContext pc; struct poptOption long_options[] = { POPT_AUTOHELP - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, {"command", 'e', POPT_ARG_STRING, &cmdstr, 'e', "Execute semicolon seperated cmds"}, - {"logfile", 'l', POPT_ARG_STRING, &opt_logfile, 'l', "Logfile to use instead of stdout"}, - {"configfile", 'c', POPT_ARG_STRING, &config_file, 0,"use different configuration file",NULL}, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version}, - { 0, 0, 0, 0} + POPT_COMMON_SAMBA + POPT_TABLEEND }; ZERO_STRUCT(st); @@ -419,7 +413,7 @@ int main(int argc, char *argv[]) } /* Do anything specified with -c */ - if (cmdstr[0]) { + if (cmdstr && cmdstr[0]) { char *cmd; char *p = cmdstr; diff --git a/source/torture/vfstest.c b/source/torture/vfstest.c index 04f31656d3d..3b28a3c496b 100644 --- a/source/torture/vfstest.c +++ b/source/torture/vfstest.c @@ -4,7 +4,7 @@ Copyright (C) Simo Sorce 2002 Copyright (C) Eric Lorimer 2002 - Copyright (C) Jelmer Vernooij 2002 + Copyright (C) Jelmer Vernooij 2002,2003 Most of this code was ripped off of rpcclient. Copyright (C) Tim Potter 2000-2001 @@ -474,17 +474,11 @@ BOOL reload_services(BOOL test) int main(int argc, char *argv[]) { - BOOL interactive = True; - int opt; - static char *cmdstr = ""; - static char *opt_logfile=NULL; - static int opt_debuglevel; - pstring logfile; + static char *cmdstr = NULL; struct cmd_set **cmd_set; - extern BOOL AllowDebugChange; static struct vfs_state vfs; int i; - static const char *filename = ""; + static const char *filename = NULL; /* make sure the vars that get altered (4th field) are in a fixed location or certain compilers complain */ @@ -493,35 +487,17 @@ int main(int argc, char *argv[]) POPT_AUTOHELP {"file", 'f', POPT_ARG_STRING, &filename, 0, }, {"command", 'c', POPT_ARG_STRING, &cmdstr, 0, "Execute specified list of commands" }, - {"logfile", 'l', POPT_ARG_STRING, &opt_logfile, 'l', "Write output to specified logfile" }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version}, - { 0, 0, 0, 0} + POPT_COMMON_SAMBA + POPT_TABLEEND }; setlinebuf(stdout); - DEBUGLEVEL = 1; - AllowDebugChange = False; - pc = poptGetContext("vfstest", argc, (const char **) argv, long_options, 0); - while((opt = poptGetNextOpt(pc)) != -1) { - switch (opt) { - case 'l': - slprintf(logfile, sizeof(logfile) - 1, "%s.client", - opt_logfile); - lp_set_logfile(logfile); - interactive = False; - break; - - case 'd': - DEBUGLEVEL = opt_debuglevel; - break; - } - } + while(poptGetNextOpt(pc) != -1); poptFreeContext(pc); @@ -531,9 +507,7 @@ int main(int argc, char *argv[]) /* the following functions are part of the Samba debugging facilities. See lib/debug.c */ - setup_logging("vfstest", interactive); - if (!interactive) - reopen_logs(); + setup_logging("vfstest", True); /* Load command lists */ @@ -556,13 +530,13 @@ int main(int argc, char *argv[]) smbd_vfs_init(vfs.conn); /* Do we have a file input? */ - if (filename[0]) { + if (filename && filename[0]) { process_file(&vfs, filename); return 0; } /* Do anything specified with -c */ - if (cmdstr[0]) { + if (cmdstr && cmdstr[0]) { char *cmd; char *p = cmdstr; diff --git a/source/utils/net.c b/source/utils/net.c index 33c125901b9..d6945ceefbd 100644 --- a/source/utils/net.c +++ b/source/utils/net.c @@ -515,7 +515,6 @@ static struct functable net_func[] = { struct poptOption long_options[] = { {"help", 'h', POPT_ARG_NONE, 0, 'h'}, {"workgroup", 'w', POPT_ARG_STRING, &opt_target_workgroup}, - {"myworkgroup", 'W', POPT_ARG_STRING, &opt_workgroup}, {"user", 'U', POPT_ARG_STRING, &opt_user_name, 'U'}, {"ipaddress", 'I', POPT_ARG_STRING, 0,'I'}, {"port", 'p', POPT_ARG_INT, &opt_port}, @@ -532,8 +531,6 @@ static struct functable net_func[] = { {"timeout", 't', POPT_ARG_INT, &opt_timeout}, {"machine-pass",'P', POPT_ARG_NONE, &opt_machine_pass}, POPT_COMMON_SAMBA - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, { 0, 0, 0, 0} }; diff --git a/source/utils/nmblookup.c b/source/utils/nmblookup.c index 97cea3a7bbf..88038fb566a 100644 --- a/source/utils/nmblookup.c +++ b/source/utils/nmblookup.c @@ -203,9 +203,6 @@ int main(int argc,char *argv[]) { "root-port", 'r', POPT_ARG_VAL, &RootPort, True, "Use root port 137 (Win95 only replies to this)" }, { "lookup-by-ip", 'A', POPT_ARG_VAL, &lookup_by_ip, True, "Do a node status on as an IP Address" }, POPT_COMMON_SAMBA - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_scope }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, { 0, 0, 0, 0 } }; diff --git a/source/utils/ntlm_auth.c b/source/utils/ntlm_auth.c index ac456769f22..a28bbf93648 100644 --- a/source/utils/ntlm_auth.c +++ b/source/utils/ntlm_auth.c @@ -439,14 +439,13 @@ enum { OPT_NT_KEY }; -int main(int argc, const char **argv) + int main(int argc, const char **argv) { int opt; poptContext pc; struct poptOption long_options[] = { POPT_AUTOHELP - { "helper-protocol", 0, POPT_ARG_STRING, &helper_protocol, OPT_DOMAIN, "operate as a stdio-based helper", "helper protocol to use"}, { "username", 0, POPT_ARG_STRING, &username, OPT_USERNAME, "username"}, { "domain", 0, POPT_ARG_STRING, &domain, OPT_DOMAIN, "domain name"}, @@ -457,10 +456,9 @@ int main(int argc, const char **argv) { "password", 0, POPT_ARG_STRING, &password, OPT_PASSWORD, "User's plaintext password"}, { "request-lm-key", 0, POPT_ARG_NONE, &request_lm_key, OPT_LM_KEY, "Retreive LM session key"}, { "request-nt-key", 0, POPT_ARG_NONE, &request_nt_key, OPT_NT_KEY, "Retreive NT session key"}, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version}, - { 0, 0, 0, 0 } + POPT_COMMON_SAMBA + POPT_CREDENTIALS + POPT_TABLEEND }; /* Samba client initialisation */ diff --git a/source/utils/pdbedit.c b/source/utils/pdbedit.c index f373adcb0a9..03be2571e54 100644 --- a/source/utils/pdbedit.c +++ b/source/utils/pdbedit.c @@ -537,9 +537,7 @@ int main (int argc, char **argv) {"value", 'C', POPT_ARG_LONG, &account_policy_value, 'C',"set the account policy to this value", NULL}, {"account-control", 'c', POPT_ARG_STRING, &account_control, 0, "Values of account control", NULL}, POPT_COMMON_SAMBA - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, - {0,0,0,0} + POPT_TABLEEND }; setup_logging("pdbedit", True); diff --git a/source/utils/smbcacls.c b/source/utils/smbcacls.c index af5bf09e48c..ac15cf1aa03 100644 --- a/source/utils/smbcacls.c +++ b/source/utils/smbcacls.c @@ -24,11 +24,8 @@ #include "includes.h" -static fstring password; -static pstring username; static pstring owner_username; static fstring server; -static int got_pass; static int test_args = False; static TALLOC_CTX *ctx; @@ -716,19 +713,19 @@ static struct cli_state *connect_one(const char *share) NTSTATUS nt_status; zero_ip(&ip); - if (!got_pass) { + if (!cmdline_auth_info.got_pass) { char *pass = getpass("Password: "); if (pass) { - fstrcpy(password, pass); - got_pass = True; + pstrcpy(cmdline_auth_info.password, pass); + cmdline_auth_info.got_pass = True; } } if (NT_STATUS_IS_OK(nt_status = cli_full_connection(&c, global_myname(), server, &ip, 0, share, "?????", - username, lp_workgroup(), - password, 0, NULL))) { + cmdline_auth_info.username, lp_workgroup(), + cmdline_auth_info.password, 0, NULL))) { return c; } else { DEBUG(0,("cli_full_connection failed! (%s)\n", nt_errstr(nt_status))); @@ -743,7 +740,6 @@ static struct cli_state *connect_one(const char *share) { char *share; int opt; - char *p; enum acl_mode mode = SMB_ACL_SET; static char *the_acl = NULL; enum chown_mode change_mode = REQUEST_NONE; @@ -759,12 +755,10 @@ static struct cli_state *connect_one(const char *share) { "set", 'S', POPT_ARG_STRING, NULL, 'S', "Set acls", "ACLS" }, { "chown", 'C', POPT_ARG_STRING, NULL, 'C', "Change ownership of a file", "USERNAME" }, { "chgrp", 'G', POPT_ARG_STRING, NULL, 'G', "Change group ownership of a file", "GROUPNAME" }, - { "numeric", 'n', POPT_ARG_VAL, &numeric, True, "Don't resolve sids or masks to names" }, - { "test-args", 't', POPT_ARG_VAL, &test_args, True, "Test arguments"}, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, - {"username", 'U', POPT_ARG_STRING, NULL, 'U', "User to authenticate as", "user%password" }, + { "numeric", 0, POPT_ARG_NONE, &numeric, True, "Don't resolve sids or masks to names" }, + { "test-args", 't', POPT_ARG_NONE, &test_args, True, "Test arguments"}, + POPT_COMMON_SAMBA + POPT_CREDENTIALS { NULL } }; @@ -781,33 +775,12 @@ static struct cli_state *connect_one(const char *share) lp_load(dyn_CONFIGFILE,True,False,False); load_interfaces(); - if (getenv("USER")) { - pstrcpy(username,getenv("USER")); - - if ((p=strchr_m(username,'%'))) { - *p = 0; - fstrcpy(password,p+1); - got_pass = True; - memset(strchr_m(getenv("USER"), '%') + 1, 'X', - strlen(password)); - } - } pc = poptGetContext("smbcacls", argc, argv, long_options, 0); poptSetOtherOptionHelp(pc, "//server1/share1 filename"); while ((opt = poptGetNextOpt(pc)) != -1) { switch (opt) { - case 'U': - pstrcpy(username,poptGetOptArg(pc)); - p = strchr_m(username,'%'); - if (p) { - *p = 0; - fstrcpy(password, p+1); - got_pass = 1; - } - break; - case 'S': the_acl = smb_xstrdup(poptGetOptArg(pc)); mode = SMB_ACL_SET; diff --git a/source/utils/smbtree.c b/source/utils/smbtree.c index a55dd4dd009..32506c41019 100644 --- a/source/utils/smbtree.c +++ b/source/utils/smbtree.c @@ -247,14 +247,12 @@ static BOOL print_tree(struct user_auth_info *user_info) { struct poptOption long_options[] = { POPT_AUTOHELP - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_credentials }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, { "broadcast", 'b', POPT_ARG_VAL, &use_bcast, True, "Use broadcast instead of using the master browser" }, { "domains", 'D', POPT_ARG_VAL, &level, LEV_WORKGROUP, "List only domains (workgroups) of tree" }, { "servers", 'S', POPT_ARG_VAL, &level, LEV_SERVER, "List domains(workgroups) and servers of tree" }, - { 0 } + POPT_COMMON_SAMBA + POPT_CREDENTIALS + POPT_TABLEEND }; poptContext pc; diff --git a/source/utils/status.c b/source/utils/status.c index 8014b133d9e..7e87701752a 100644 --- a/source/utils/status.c +++ b/source/utils/status.c @@ -559,10 +559,8 @@ static int traverse_sessionid(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf, vo {"profile", 'P', POPT_ARG_NONE, &profile_only, 'P', "Do profiling" }, #endif /* WITH_PROFILE */ {"byterange", 'B', POPT_ARG_NONE, &show_brl, 'B', "Include byte range locks"}, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version}, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, - { 0, 0, 0, 0} + POPT_COMMON_SAMBA + POPT_TABLEEND }; setup_logging(argv[0],True); diff --git a/source/utils/testparm.c b/source/utils/testparm.c index 22964214be4..c0e4f7606e0 100644 --- a/source/utils/testparm.c +++ b/source/utils/testparm.c @@ -186,7 +186,7 @@ via the %%o substitution. With encrypted passwords this is not possible.\n", lp_ return ret; } -int main(int argc, const char *argv[]) + int main(int argc, const char *argv[]) { const char *config_file = dyn_CONFIGFILE; int s; @@ -206,7 +206,7 @@ int main(int argc, const char *argv[]) {"verbose", 'v', POPT_ARG_NONE, &show_defaults, 1, "Show default options too"}, {"server", 'L',POPT_ARG_STRING, &new_local_machine, 0, "Set %%L macro to servername\n"}, {"encoding", 't', POPT_ARG_STRING, &term_code, 0, "Print parameters with encoding"}, - {NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version}, + POPT_COMMON_SAMBA {0,0,0,0} }; diff --git a/source/web/swat.c b/source/web/swat.c index 92dece6ecd9..9a133e1330d 100644 --- a/source/web/swat.c +++ b/source/web/swat.c @@ -1267,9 +1267,8 @@ static void printers_page(void) struct poptOption long_options[] = { POPT_AUTOHELP { "disable-authentication", 'a', POPT_ARG_VAL, &demo_mode, True, "Disable authentication (demo mode)" }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version}, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile}, - { 0, 0, 0, 0 } + POPT_COMMON_SAMBA + POPT_TABLEEND }; fault_setup(NULL); diff --git a/source/wrepld/server.c b/source/wrepld/server.c index 5203d337457..be9d86952d2 100644 --- a/source/wrepld/server.c +++ b/source/wrepld/server.c @@ -510,17 +510,13 @@ static void process(void) static BOOL log_stdout = False; struct poptOption long_options[] = { POPT_AUTOHELP - POPT_COMMON_SAMBA - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_socket_options }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debug }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_configfile }, - { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_log_base }, { "daemon", 'D', POPT_ARG_VAL, &is_daemon, True, "Become a daemon (default)" }, { "foreground", 'F', POPT_ARG_VAL, &Fork, False, "Run daemon in foreground (for daemontools, etc)" }, { "stdout", 'S', POPT_ARG_VAL, &log_stdout, True, "Log to stdout" }, { "interactive", 'i', POPT_ARG_NONE, NULL, 'i', "Run interactive (not a daemon)" }, { "port", 'p', POPT_ARG_INT, &wins_port, 'p', "Listen on the specified port" }, - { 0, 0, 0, 0 } + POPT_COMMON_SAMBA + POPT_TABLEEND }; int opt; poptContext pc; -- cgit From 27f3fbac724847f2d0926d2231808871508a7dd9 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 11:31:01 +0000 Subject: Fix init function name and return value --- source/modules/developer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/modules/developer.c b/source/modules/developer.c index a697abcd22f..7ffc3ff50d2 100644 --- a/source/modules/developer.c +++ b/source/modules/developer.c @@ -125,8 +125,8 @@ static size_t weird_push(void *cd, char **inbuf, size_t *inbytesleft, struct charset_functions weird_functions = {"WEIRD", weird_pull, weird_push}; -int init_module(void) +int charset_weird_init(void) { smb_register_charset(&weird_functions); - return 1; + return True; } -- cgit From de4bdf42d8f27b54260f58ff37d438c67623f446 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 12:18:56 +0000 Subject: Define POPT_TABLEEND if current popt.h doesn't contain it already --- source/include/popt_common.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/include/popt_common.h b/source/include/popt_common.h index 7cdbc988623..380df4860e5 100644 --- a/source/include/popt_common.h +++ b/source/include/popt_common.h @@ -25,6 +25,10 @@ extern struct poptOption popt_common_samba[]; extern struct poptOption popt_common_credentials[]; +#ifndef POPT_TABLEEND +#define POPT_TABLEEND { NULL, '\0', 0, 0, 0, NULL, NULL } +#endif + #define POPT_COMMON_SAMBA { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_samba, 0, "Common samba options:", NULL }, #define POPT_CREDENTIALS { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_credentials, 0, "Authentication options:", NULL }, -- cgit From cf3d31b9801d7ccb30334a92d4dc8a0ced2ecd31 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 12:47:21 +0000 Subject: Add modules support to charset --- source/Makefile.in | 36 +++++++++++++---------- source/configure.in | 3 ++ source/lib/iconv.c | 84 +++++++++++++++++++++++++++++++++++------------------ 3 files changed, 78 insertions(+), 45 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index 6cfa9be4d42..3c2a43dd0fe 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -54,6 +54,7 @@ LIBDIR = @libdir@ VFSLIBDIR = $(LIBDIR)/vfs PDBLIBDIR = $(LIBDIR)/pdb RPCLIBDIR = $(LIBDIR)/rpc +CHARSETLIBDIR = $(LIBDIR)/charset CONFIGDIR = @configdir@ VARDIR = @localstatedir@ MANDIR = @mandir@ @@ -138,7 +139,8 @@ VFS_MODULES = bin/vfs_audit.@SHLIBEXT@ bin/vfs_extd_audit.@SHLIBEXT@ bin/vfs_rec bin/vfs_netatalk.@SHLIBEXT@ bin/vfs_fake_perms.@SHLIBEXT@ PDB_MODULES = @PDB_MODULES@ RPC_MODULES = @RPC_MODULES@ -MODULES = $(VFS_MODULES) $(PDB_MODULES) $(RPC_MODULES) +CHARSET_MODULES = @CHARSET_MODULES@ +MODULES = $(VFS_MODULES) $(PDB_MODULES) $(RPC_MODULES) $(CHARSET_MODULES) ###################################################################### # object file lists @@ -166,7 +168,7 @@ LIB_OBJ = lib/charcnv.o lib/debug.o lib/fault.o \ lib/pam_errors.o intl/lang_tdb.o lib/account_pol.o \ lib/adt_tree.o lib/gencache.o $(TDB_OBJ) \ lib/module.o lib/genparser.o lib/genparser_samba.o \ - lib/ldap_escape.o + lib/ldap_escape.o @CHARSET_STATIC@ LIB_SMBD_OBJ = lib/system_smbd.o lib/util_smbd.o @@ -703,11 +705,11 @@ bin/smbd@EXEEXT@: $(SMBD_OBJ) @BUILD_POPT@ bin/.dummy bin/nmbd@EXEEXT@: $(NMBD_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(NMBD_OBJ) $(LDFLAGS) $(LIBS) @BUILD_POPT@ + @$(CC) $(FLAGS) -o $@ $(NMBD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @BUILD_POPT@ bin/wrepld@EXEEXT@: $(WREPL_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(WREPL_OBJ) $(LDFLAGS) $(LIBS) @BUILD_POPT@ + @$(CC) $(FLAGS) -o $@ $(WREPL_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @BUILD_POPT@ bin/swat@EXEEXT@: $(SWAT_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ @@ -720,7 +722,7 @@ bin/rpcclient@EXEEXT@: $(RPCCLIENT_OBJ) @BUILD_POPT@ bin/.dummy bin/smbclient@EXEEXT@: $(CLIENT_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(CLIENT_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) @BUILD_POPT@ + @$(CC) $(FLAGS) -o $@ $(CLIENT_OBJ) $(LDFLAGS) $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) @BUILD_POPT@ bin/net@EXEEXT@: $(NET_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ @@ -752,23 +754,23 @@ bin/smbumount@EXEEXT@: $(UMOUNT_OBJ) bin/.dummy bin/testparm@EXEEXT@: $(TESTPARM_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(TESTPARM_OBJ) $(LDFLAGS) $(LIBS) @BUILD_POPT@ + @$(CC) $(FLAGS) -o $@ $(TESTPARM_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @BUILD_POPT@ bin/testprns@EXEEXT@: $(TESTPRNS_OBJ) bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(TESTPRNS_OBJ) $(LDFLAGS) $(PRINTLIBS) $(LIBS) + @$(CC) $(FLAGS) -o $@ $(TESTPRNS_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINTLIBS) $(LIBS) bin/smbstatus@EXEEXT@: $(STATUS_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(STATUS_OBJ) $(LDFLAGS) $(LIBS) @BUILD_POPT@ + @$(CC) $(FLAGS) -o $@ $(STATUS_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @BUILD_POPT@ bin/smbcontrol@EXEEXT@: $(SMBCONTROL_OBJ) bin/.dummy @echo Linking $@ - @$(CC) -DUSING_SMBCONTROL $(FLAGS) -o $@ $(SMBCONTROL_OBJ) $(LDFLAGS) $(LIBS) + @$(CC) -DUSING_SMBCONTROL $(FLAGS) -o $@ $(SMBCONTROL_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) bin/smbtree@EXEEXT@: $(SMBTREE_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(SMBTREE_OBJ) $(LDFLAGS) $(LIBS) @BUILD_POPT@ + @$(CC) $(FLAGS) -o $@ $(SMBTREE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @BUILD_POPT@ bin/smbpasswd@EXEEXT@: $(SMBPASSWD_OBJ) bin/.dummy @echo Linking $@ @@ -780,19 +782,19 @@ bin/pdbedit@EXEEXT@: $(PDBEDIT_OBJ) @BUILD_POPT@ bin/.dummy bin/samtest@EXEEXT@: $(SAMTEST_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(SAMTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(LIBS) @BUILD_POPT@ + @$(CC) $(FLAGS) -o $@ $(SAMTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(LIBS) @BUILD_POPT@ bin/smbgroupedit@EXEEXT@: $(SMBGROUPEDIT_OBJ) bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(SMBGROUPEDIT_OBJ) $(LDFLAGS) $(LIBS) + @$(CC) $(FLAGS) -o $@ $(SMBGROUPEDIT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) bin/nmblookup@EXEEXT@: $(NMBLOOKUP_OBJ) @BUILD_POPT@ bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(LIBS) @BUILD_POPT@ + @$(CC) $(FLAGS) -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @BUILD_POPT@ bin/smbtorture@EXEEXT@: $(SMBTORTURE_OBJ) bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(SMBTORTURE_OBJ) $(LDFLAGS) $(LIBS) + @$(CC) $(FLAGS) -o $@ $(SMBTORTURE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) bin/talloctort@EXEEXT@: $(TALLOCTORT_OBJ) bin/.dummy @echo Linking $@ @@ -844,7 +846,7 @@ bin/smbw_sample@EXEEXT@: $(SMBW_OBJ) utils/smbw_sample.o bin/.dummy bin/smbsh@EXEEXT@: $(SMBSH_OBJ) bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) -o $@ $(SMBSH_OBJ) $(LDFLAGS) $(LIBS) + @$(CC) $(FLAGS) -o $@ $(SMBSH_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) bin/smbwrapper.@SHLIBEXT@: $(PICOBJS) bin/.dummy @echo Linking shared library $@ @@ -971,7 +973,7 @@ bin/nisplussam.@SHLIBEXT@: passdb/pdb_nisplus.o @$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_nisplus.o \ @SONAMEFLAG@`basename $@` -bin/developer.@SHLIBEXT@: $(DEVEL_HELP_OBJ) +bin/weird.@SHLIBEXT@: $(DEVEL_HELP_OBJ) @echo "Building plugin $@" @$(SHLD) $(LDSHFLAGS) -o $@ $(DEVEL_HELP_OBJ) \ @SONAMEFLAG@`basename $@` @@ -1060,6 +1062,7 @@ installmodules: all installdirs @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(VFSLIBDIR) $(VFS_MODULES) @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(PDBLIBDIR) $(PDB_MODULES) @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(RPCLIBDIR) $(RPC_MODULES) + @$(SHEEL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(CHARSETLIBDIR) $(CHARSET_MODULES) installscripts: installdirs @$(SHELL) $(srcdir)/script/installscripts.sh $(INSTALLPERMS) $(DESTDIR)$(BINDIR) $(SCRIPTS) @@ -1134,6 +1137,7 @@ uninstallmodules: @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(VFSLIBDIR) $(DESTDIR)$(VFS_MODULES) @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(PDBLIBDIR) $(DESTDIR)$(PDB_MODULES) @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(RPCLIBDIR) $(DESTDIR)$(RPC_MODULES) + @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(CHARSETLIBDIR) $(DESTDIR)$(CHARSET_MODULES) uninstallscripts: @$(SHELL) $(srcdir)/script/uninstallscripts.sh $(INSTALLPERMS) $(DESTDIR)$(BINDIR) $(SCRIPTS) diff --git a/source/configure.in b/source/configure.in index 053577adf6b..9ccbe08fa32 100644 --- a/source/configure.in +++ b/source/configure.in @@ -3398,6 +3398,9 @@ SMB_MODULE($MODULE_rpc_spoolss, rpc_spoolss, \$(RPC_SPOOLSS_OBJ), bin/librpc_spo SMB_MODULE($MODULE_rpc_samr, rpc_samr, \$(RPC_SAMR_OBJ), bin/librpc_samr.so, RPC) SMB_SUBSYSTEM(RPC) +SMB_MODULE($MODULE_charset_weird, charset_weird, modules/developer.o, bin/developer.so, CHARSET) +SMB_SUBSYSTEM(CHARSET) + ################################################# # do extra things if we are running insure diff --git a/source/lib/iconv.c b/source/lib/iconv.c index 8b360a14c62..6a397f2d9e4 100644 --- a/source/lib/iconv.c +++ b/source/lib/iconv.c @@ -2,7 +2,7 @@ Unix SMB/CIFS implementation. minimal iconv implementation Copyright (C) Andrew Tridgell 2001 - Copyright (C) Jelmer Vernooij 2002 + Copyright (C) Jelmer Vernooij 2002,2003,2003,2003,2003 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 @@ -63,6 +63,17 @@ static struct charset_functions builtin_functions[] = { static struct charset_functions *charsets = NULL; +static struct charset_functions *find_charset_functions(const char *name) +{ + struct charset_functions *c = charsets; + while(c) { + if (strcasecmp(name, c->name) == 0)return c; + c = c->next; + } + + return NULL; +} + BOOL smb_register_charset(struct charset_functions *funcs) { struct charset_functions *c = charsets; @@ -93,6 +104,8 @@ void lazy_initialize_iconv(void) for(i = 0; builtin_functions[i].name; i++) smb_register_charset(&builtin_functions[i]); } + + static_init_charset; } /* if there was an error then reset the internal state, @@ -178,49 +191,70 @@ smb_iconv_t smb_iconv_open(const char *tocode, const char *fromcode) ret->to_name = strdup(tocode); /* check for the simplest null conversion */ - if (strcmp(fromcode, tocode) == 0) { + if (strcasecmp(fromcode, tocode) == 0) { ret->direct = iconv_copy; return ret; } - while (from) { - if (strcasecmp(from->name, fromcode) == 0) break; - from = from->next; - } - - while (to) { - if (strcasecmp(to->name, tocode) == 0) break; - to = to->next; - } + /* check if we have a builtin function for this conversion */ + from = find_charset_functions(fromcode); + if(from)ret->pull = from->pull; + + to = find_charset_functions(tocode); + if(to)ret->push = to->push; + /* check if we can use iconv for this conversion */ #ifdef HAVE_NATIVE_ICONV - if (!from) { - ret->pull = sys_iconv; + if (!ret->pull) { ret->cd_pull = iconv_open("UCS-2LE", fromcode); - if (ret->cd_pull == (iconv_t)-1) goto failed; + if (ret->cd_pull != (iconv_t)-1) + ret->pull = sys_iconv; } - if (!to) { - ret->push = sys_iconv; + if (!ret->push) { ret->cd_push = iconv_open(tocode, "UCS-2LE"); - if (ret->cd_push == (iconv_t)-1) goto failed; - } -#else - if (!from || !to) { - goto failed; + if (ret->cd_push != (iconv_t)-1) + ret->push = sys_iconv; } #endif + + /* check if there is a module available that can do this conversion */ + if (!ret->pull && smb_probe_module("charset", fromcode)) { + if(!(from = find_charset_functions(fromcode))) + DEBUG(0, ("Module %s doesn't provide charset %s!\n", fromcode, fromcode)); + else + ret->pull = from->pull; + } + + if (!ret->push && smb_probe_module("charset", tocode)) { + if(!(to = find_charset_functions(tocode))) + DEBUG(0, ("Module %s doesn't provide charset %s!\n", tocode, tocode)); + else + ret->push = to->push; + } + + if (!ret->push || !ret->pull) { + SAFE_FREE(ret->from_name); + SAFE_FREE(ret->to_name); + SAFE_FREE(ret); + errno = EINVAL; + return (smb_iconv_t)-1; + } /* check for conversion to/from ucs2 */ if (strcasecmp(fromcode, "UCS-2LE") == 0 && to) { ret->direct = to->push; + ret->push = ret->pull = NULL; return ret; } + if (strcasecmp(tocode, "UCS-2LE") == 0 && from) { ret->direct = from->pull; + ret->push = ret->pull = NULL; return ret; } + /* Check if we can do the conversion direct */ #ifdef HAVE_NATIVE_ICONV if (strcasecmp(fromcode, "UCS-2LE") == 0) { ret->direct = sys_iconv; @@ -236,15 +270,7 @@ smb_iconv_t smb_iconv_open(const char *tocode, const char *fromcode) } #endif - /* the general case has to go via a buffer */ - if (!ret->pull) ret->pull = from->pull; - if (!ret->push) ret->push = to->push; return ret; - -failed: - SAFE_FREE(ret); - errno = EINVAL; - return (smb_iconv_t)-1; } /* -- cgit From adafcbb9af4a22db0fefb70966564d8591b5baed Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 14:14:10 +0000 Subject: Document common arguments with entities --- docs/docbook/global.ent | 164 ++++++++++++++++++++++++++++++-- docs/docbook/manpages/nmbd.8.sgml | 98 ++----------------- docs/docbook/manpages/nmblookup.1.sgml | 54 ++--------- docs/docbook/manpages/pdbedit.8.sgml | 3 +- docs/docbook/manpages/profiles.1.sgml | 1 + docs/docbook/manpages/rpcclient.1.sgml | 87 +---------------- docs/docbook/manpages/smbcacls.1.sgml | 7 +- docs/docbook/manpages/smbclient.1.sgml | 167 ++------------------------------- docs/docbook/manpages/smbd.8.sgml | 64 +------------ docs/docbook/manpages/smbstatus.1.sgml | 26 ++--- docs/docbook/manpages/smbtree.1.sgml | 2 + docs/docbook/manpages/swat.8.sgml | 11 ++- docs/docbook/manpages/testparm.1.sgml | 14 ++- docs/docbook/manpages/vfstest.1.sgml | 3 +- docs/docbook/manpages/wbinfo.1.sgml | 6 +- docs/docbook/manpages/winbindd.8.sgml | 20 ++-- 16 files changed, 220 insertions(+), 507 deletions(-) diff --git a/docs/docbook/global.ent b/docs/docbook/global.ent index 46745c27738..a3022ecfaa9 100644 --- a/docs/docbook/global.ent +++ b/docs/docbook/global.ent @@ -31,7 +31,7 @@ - -d|--debug=debuglevel @@ -59,13 +59,6 @@ level parameter in the '> - --h|--help -Print a summary of command line options. - -'> - -s <configuration file> @@ -82,7 +75,160 @@ compile time. --v +-V Prints the version number for smbd. '> + + +-l|--logfile=logbasename +File name for log/debug files. The extension +".client" will be appended. The log file is +never removed by the client. + +'> + + + + +-n <primary NetBIOS name> +This option allows you to override +the NetBIOS name that Samba uses for itself. This is identical +to setting the NetBIOS +name parameter in the smb.conf +5 file. However, a command +line setting will take precedence over settings in +smb.conf +5. +'> + + + + +-i <scope> +This specifies a NetBIOS scope that +nmblookup will use to communicate with when +generating NetBIOS names. For details on the use of NetBIOS +scopes, see rfc1001.txt and rfc1002.txt. NetBIOS scopes are +very rarely used, only set this parameter +if you are the system administrator in charge of all the +NetBIOS systems you communicate with. +'> + + +-W|--workgroup=domain +Set the SMB domain of the username. This +overrides the default domain which is the domain defined in +smb.conf. If the domain specified is the same as the servers +NetBIOS name, it causes the client to log on using the servers local +SAM (as opposed to the Domain SAM). +'> + + +-O socket options +TCP socket options to set on the client +socket. See the socket options parameter in +the smb.conf +5 manual page for the list of valid +options. + +'> + + + + +-N +If specified, this parameter suppresses the normal +password prompt from the client to the user. This is useful when +accessing a service that does not require a password. + +Unless a password is specified on the command line or +this parameter is specified, the client will request a +password. +'> + + +-U|--user=username[&%;password] +Sets the SMB username or username and password. + +If &%;password is not specified, the user will be prompted. The +client will first check the USER environment variable, then the +LOGNAME variable and if either exists, the +string is uppercased. If these environmental variables are not +found, the username GUEST is used. + +A third option is to use a credentials file which +contains the plaintext of the username and password. This +option is mainly provided for scripts where the admin does not +wish to pass the credentials on the command line or via environment +variables. If this method is used, make certain that the permissions +on the file restrict access from unwanted users. See the +-A for more details. + +Be cautious about including passwords in scripts. Also, on +many systems the command line of a running process may be seen +via the ps command. To be safe always allow +rpcclient to prompt for a password and type +it in directly. + +'> + + +-A|--authfile=filename +This option allows +you to specify a file from which to read the username and +password used in the connection. The format of the file is + + + +username = <value> +password = <value> +domain = <value> + + +Make certain that the permissions on the file restrict +access from unwanted users. +'> + + +-k + +Try to authenticate with kerberos. Only useful in +an Active Directory environment. + + +'> + + + +-h|--help +Print a summary of command line options. + +'> + + diff --git a/docs/docbook/manpages/nmbd.8.sgml b/docs/docbook/manpages/nmbd.8.sgml index 6c7ecce4e9d..5f359ff099b 100644 --- a/docs/docbook/manpages/nmbd.8.sgml +++ b/docs/docbook/manpages/nmbd.8.sgml @@ -1,4 +1,6 @@ - + %globalentities; +]> @@ -111,13 +113,6 @@ than a file. - - -a - If this parameter is specified, each new - connection will append log messages to the log file. - This is the default. - - -i If this parameter is specified it causes the @@ -129,19 +124,7 @@ given. - - -o - If this parameter is specified, the - log files will be overwritten when opened. By default, - smbd will append entries to the log - files. - - - - -h - Prints the help information (usage) - for nmbd. - + &stdarg.help; -H <filename> @@ -165,66 +148,9 @@ 5 man page for details on the contents of this file. - - -V - Prints the version number for - nmbd. - + &popt.common.samba; + &popt.common.connection; - - -d <debug level> - debuglevel is an integer - from 0 to 10. The default value if this parameter is - not specified is zero. - - The higher this value, the more detail will - be logged to the log files about the activities of the - server. At level 0, only critical errors and serious - warnings will be logged. Level 1 is a reasonable level for - day to day running - it generates a small amount of - information about operations carried out. - - Levels above 1 will generate considerable amounts - of log data, and should only be used when investigating - a problem. Levels above 3 are designed for use only by developers - and generate HUGE amounts of log data, most of which is extremely - cryptic. - - Note that specifying this parameter here will override - the log level - parameter in the smb.conf - 5 file. - - - - -l <log directory> - The -l parameter specifies a directory - into which the "log.nmbd" log file will be created - for operational data from the running nmbd - server. The default log directory is compiled into Samba - as part of the build process. Common defaults are - /usr/local/samba/var/log.nmb, - /usr/samba/var/log.nmb or - /var/log/log.nmb. Beware: - If the directory specified does not exist, nmbd - will log to the default debug log location defined at compile time. - - - - - - -n <primary NetBIOS name> - This option allows you to override - the NetBIOS name that Samba uses for itself. This is identical - to setting the NetBIOS - name parameter in the smb.conf - 5 file. However, a command - line setting will take precedence over settings in - smb.conf - 5. - - - -p <UDP port number> UDP port number is a positive integer value. @@ -234,18 +160,6 @@ won't need help! - - -s <configuration file> - The default configuration file name - is set at build time, typically as - /usr/local/samba/lib/smb.conf, but - this may be changed when Samba is autoconfigured. - - The file specified contains the configuration details - required by the server. See smb.conf - 5 for more information. - - diff --git a/docs/docbook/manpages/nmblookup.1.sgml b/docs/docbook/manpages/nmblookup.1.sgml index 7dd7f105d75..176050b9c8a 100644 --- a/docs/docbook/manpages/nmblookup.1.sgml +++ b/docs/docbook/manpages/nmblookup.1.sgml @@ -1,4 +1,6 @@ - + %globalentities; +]> @@ -101,12 +103,8 @@ - - -h - Print a help (usage) message. - - - + &popt.common.connection; + &stdarg.help; -B <broadcast address> @@ -131,48 +129,8 @@ - - -d <debuglevel> - debuglevel is an integer from 0 to 10. + &popt.common.samba; - The default value if this parameter is not specified - is zero. - - The higher this value, the more detail will be logged - about the activities of nmblookup. At level - 0, only critical errors and serious warnings will be logged. - - Levels above 1 will generate considerable amounts of - log data, and should only be used when investigating a problem. - Levels above 3 are designed for use only by developers and - generate HUGE amounts of data, most of which is extremely cryptic. - - Note that specifying this parameter here will override - the - log level parameter in the - smb.conf(5) file. - - - - -s <smb.conf> - This parameter specifies the pathname to - the Samba configuration file, - smb.conf(5). This file controls all aspects of - the Samba setup on the machine. - - - - -i <scope> - This specifies a NetBIOS scope that - nmblookup will use to communicate with when - generating NetBIOS names. For details on the use of NetBIOS - scopes, see rfc1001.txt and rfc1002.txt. NetBIOS scopes are - very rarely used, only set this parameter - if you are the system administrator in charge of all the - NetBIOS systems you communicate with. - - - -T This causes any IP addresses found in the diff --git a/docs/docbook/manpages/pdbedit.8.sgml b/docs/docbook/manpages/pdbedit.8.sgml index 113f23f9c4a..fc9a212c192 100644 --- a/docs/docbook/manpages/pdbedit.8.sgml +++ b/docs/docbook/manpages/pdbedit.8.sgml @@ -327,9 +327,8 @@ account policy value for bad lockout attempt is now 3 - &stdarg.debuglevel; &stdarg.help; - &stdarg.configfile; + &popt.common.samba; diff --git a/docs/docbook/manpages/profiles.1.sgml b/docs/docbook/manpages/profiles.1.sgml index 0d18c42c82e..6ec8055c288 100644 --- a/docs/docbook/manpages/profiles.1.sgml +++ b/docs/docbook/manpages/profiles.1.sgml @@ -54,6 +54,7 @@ + &stdarg.help; diff --git a/docs/docbook/manpages/rpcclient.1.sgml b/docs/docbook/manpages/rpcclient.1.sgml index 933938d438d..225bb064ff5 100644 --- a/docs/docbook/manpages/rpcclient.1.sgml +++ b/docs/docbook/manpages/rpcclient.1.sgml @@ -61,33 +61,12 @@ - - -A|--authfile=filename - This option allows - you to specify a file from which to read the username and - password used in the connection. The format of the file is - - - -username = <value> -password = <value> -domain = <value> - - - Make certain that the permissions on the file restrict - access from unwanted users. - - - - -c|--command='command string' execute semicolon separated commands (listed below)) - &stdarg.help; - &stdarg.debuglevel; -I IP-address @@ -107,68 +86,10 @@ domain = <value> above. - - - -l|--logfile=logbasename - File name for log/debug files. The extension - '.client' will be appended. The log file is - never removed by the client. - - - - - - - -N|--nopass - instruct rpcclient not to ask - for a password. By default, rpcclient will - prompt for a password. See also the -U - option. - - - - - -s|--conf=smb.conf - Specifies the location of the all-important - smb.conf file. - - - - - - -U|--user=username[%password] - Sets the SMB username or username and password. - - If %password is not specified, the user will be prompted. The - client will first check the USER environment variable, then the - LOGNAME variable and if either exists, the - string is uppercased. If these environmental variables are not - found, the username GUEST is used. - - A third option is to use a credentials file which - contains the plaintext of the username and password. This - option is mainly provided for scripts where the admin does not - wish to pass the credentials on the command line or via environment - variables. If this method is used, make certain that the permissions - on the file restrict access from unwanted users. See the - -A for more details. - - Be cautious about including passwords in scripts. Also, on - many systems the command line of a running process may be seen - via the ps command. To be safe always allow - rpcclient to prompt for a password and type - it in directly. - - - - -W|--workgroup=domain - Set the SMB domain of the username. This - overrides the default domain which is the domain defined in - smb.conf. If the domain specified is the same as the server's NetBIOS name, - it causes the client to log on using the server's local SAM (as - opposed to the Domain SAM). - - + &popt.common.samba; + &popt.common.credentials; + &popt.common.connection; + &stdarg.help; diff --git a/docs/docbook/manpages/smbcacls.1.sgml b/docs/docbook/manpages/smbcacls.1.sgml index 44820196698..03fcbd6fd85 100644 --- a/docs/docbook/manpages/smbcacls.1.sgml +++ b/docs/docbook/manpages/smbcacls.1.sgml @@ -141,11 +141,8 @@ - - -h - Print usage information on the smbcacls - program. - + &stdarg.help; + &popt.common.samba.small; diff --git a/docs/docbook/manpages/smbclient.1.sgml b/docs/docbook/manpages/smbclient.1.sgml index a08f6999e45..cd513398b98 100644 --- a/docs/docbook/manpages/smbclient.1.sgml +++ b/docs/docbook/manpages/smbclient.1.sgml @@ -1,4 +1,6 @@ - + %globalentities; +]> @@ -115,23 +117,6 @@ - - -s smb.conf - Specifies the location of the all - important smb.conf - 5 file. - - - - -O socket options - TCP socket options to set on the client - socket. See the socket options parameter in - the smb.conf - 5 manual page for the list of valid - options. - - - -R <name resolve order> This option is used by the programs in the Samba @@ -224,70 +209,6 @@ messages. - - -i scope - This specifies a NetBIOS scope that smbclient will - use to communicate with when generating NetBIOS names. For details - on the use of NetBIOS scopes, see rfc1001.txt - and rfc1002.txt. - NetBIOS scopes are very rarely used, only set - this parameter if you are the system administrator in charge of all - the NetBIOS systems you communicate with. - - - - - -N - If specified, this parameter suppresses the normal - password prompt from the client to the user. This is useful when - accessing a service that does not require a password. - - Unless a password is specified on the command line or - this parameter is specified, the client will request a - password. - - - - - - -n NetBIOS name - By default, the client will use the local - machine's hostname (in uppercase) as its NetBIOS name. This parameter - allows you to override the host name and use whatever NetBIOS - name you wish. - - - - - -d debuglevel - debuglevel is an integer from 0 to 10, or - the letter 'A'. - - The default value if this parameter is not specified - is zero. - - The higher this value, the more detail will be logged to - the log files about the activities of the - client. At level 0, only critical errors and serious warnings will - be logged. Level 1 is a reasonable level for day to day running - - it generates a small amount of information about operations - carried out. - - Levels above 1 will generate considerable amounts of log - data, and should only be used when investigating a problem. - Levels above 3 are designed for use only by developers and - generate HUGE amounts of log data, most of which is extremely - cryptic. If debuglevel is set to the letter 'A', then all - debug messages will be printed. This setting - is for developers only (and people who really want - to know how the code works internally). - - Note that specifying this parameter here will override - the log level parameter in the smb.conf (5) - file. - - - -p port This number is the TCP port number that will be used @@ -314,13 +235,7 @@ - - - -h - Print the usage message for the client. - - - + &stdarg.help; -I IP-address @@ -353,59 +268,6 @@ - - -U username[%pass] - Sets the SMB username or username and password. - If %pass is not specified, The user will be prompted. The client - will first check the USER environment variable, then the - LOGNAME variable and if either exists, the - string is uppercased. Anything in these variables following a '%' - sign will be treated as the password. If these environment - variables are not found, the username GUEST - is used. - - If the password is not included in these environment - variables (using the %pass syntax), smbclient will look for - a PASSWD environment variable from which - to read the password. - - A third option is to use a credentials file which - contains the plaintext of the domain name, username and password. This - option is mainly provided for scripts where the admin doesn't - wish to pass the credentials on the command line or via environment - variables. If this method is used, make certain that the permissions - on the file restrict access from unwanted users. See the - -A for more details. - - Be cautious about including passwords in scripts or in - the PASSWD environment variable. Also, on - many systems the command line of a running process may be seen - via the ps command to be safe always allow - smbclient to prompt for a password and type - it in directly. - - - - - -A filenameThis option allows - you to specify a file from which to read the username, domain name, and - password used in the connection. The format of the file is - - - -username = <value> -password = <value> -domain = <value> - - - - If the domain parameter is missing the current workgroup name - is used instead. Make certain that the permissions on the file restrict - access from unwanted users. - - - - -L This option allows you to look at what services @@ -443,16 +305,9 @@ domain = <value> - - - - -W WORKGROUP - Override the default workgroup (domain) specified - in the workgroup parameter of the smb.conf - 5 file for this connection. This may be - needed to connect to some servers. - - + &popt.common.samba; + &popt.common.credentials; + &popt.common.connection; -T tar options @@ -588,14 +443,6 @@ domain = <value> This is particularly useful in scripts and for printing stdin to the server, e.g. -c 'print -'. - - - -k - - Try to authenticate with kerberos. Only useful in - an Active Directory environment. - - diff --git a/docs/docbook/manpages/smbd.8.sgml b/docs/docbook/manpages/smbd.8.sgml index 32837ba903d..b31d919a124 100644 --- a/docs/docbook/manpages/smbd.8.sgml +++ b/docs/docbook/manpages/smbd.8.sgml @@ -1,4 +1,6 @@ - + %globalentities; +]> @@ -122,17 +124,8 @@ - - -h - Prints the help information (usage) - for smbd. - - - - -V - Prints the version number for - smbd. - + &popt.common.samba; + &stdarg.help; -b @@ -140,32 +133,6 @@ Samba was built. - - -d <debug level> - debuglevel is an integer - from 0 to 10. The default value if this parameter is - not specified is zero. - - The higher this value, the more detail will be - logged to the log files about the activities of the - server. At level 0, only critical errors and serious - warnings will be logged. Level 1 is a reasonable level for - day to day running - it generates a small amount of - information about operations carried out. - - Levels above 1 will generate considerable - amounts of log data, and should only be used when - investigating a problem. Levels above 3 are designed for - use only by developers and generate HUGE amounts of log - data, most of which is extremely cryptic. - - Note that specifying this parameter here will - override the log - level parameter in the smb.conf - 5 file. - - - -l <log directory> If specified, @@ -186,14 +153,6 @@ compile time. - - -O <socket options> - See the socket options - parameter in the smb.conf - 5 file for details. - - -p <port number> port number is a positive integer @@ -218,19 +177,6 @@ This parameter is not normally specified except in the above situation. - - - -s <configuration file> - The file specified contains the - configuration details required by the server. The - information in this file includes server-specific - information such as what printcap file to use, as well - as descriptions of all the services that the server is - to provide. See smb.conf - 5 for more information. - The default configuration file name is determined at - compile time. - diff --git a/docs/docbook/manpages/smbstatus.1.sgml b/docs/docbook/manpages/smbstatus.1.sgml index 67d39f25860..98f7e864f6c 100644 --- a/docs/docbook/manpages/smbstatus.1.sgml +++ b/docs/docbook/manpages/smbstatus.1.sgml @@ -1,4 +1,7 @@ - + %globalentities; +]> + @@ -54,13 +57,7 @@ gives brief output. - - - -d|--debug=<debuglevel> - sets debugging to specified level - - - + &popt.common.samba; -v|--verbose @@ -96,18 +93,7 @@ - - - - -s|--conf=<configuration file> - The default configuration file name is - determined at compile time. The file specified contains the - configuration details required by the server. See - smb.conf5 - for more information. - - - + &stdarg.help; -u|--user=<username> diff --git a/docs/docbook/manpages/smbtree.1.sgml b/docs/docbook/manpages/smbtree.1.sgml index ce664908bcc..3677695d5a1 100644 --- a/docs/docbook/manpages/smbtree.1.sgml +++ b/docs/docbook/manpages/smbtree.1.sgml @@ -65,6 +65,8 @@ + &popt.common.samba; + &popt.common.credentials; &stdarg.help; diff --git a/docs/docbook/manpages/swat.8.sgml b/docs/docbook/manpages/swat.8.sgml index a13ba9ff6ca..72b3cd65c8f 100644 --- a/docs/docbook/manpages/swat.8.sgml +++ b/docs/docbook/manpages/swat.8.sgml @@ -1,4 +1,6 @@ - + %globalentities; +]> @@ -67,10 +69,9 @@ server. - - -V - Print version number of samba suite - + &popt.common.samba; + &stdarg.help; + diff --git a/docs/docbook/manpages/testparm.1.sgml b/docs/docbook/manpages/testparm.1.sgml index ec8092a9264..31a95494165 100644 --- a/docs/docbook/manpages/testparm.1.sgml +++ b/docs/docbook/manpages/testparm.1.sgml @@ -1,4 +1,6 @@ - + %globalentities; +]> @@ -65,13 +67,9 @@ will prompt for a carriage return after printing the service names and before dumping the service definitions. - - - - -h - Print usage message - - + + &stdarg.help; + &stdarg.version; -L servername diff --git a/docs/docbook/manpages/vfstest.1.sgml b/docs/docbook/manpages/vfstest.1.sgml index c89035d814c..8be9271679d 100644 --- a/docs/docbook/manpages/vfstest.1.sgml +++ b/docs/docbook/manpages/vfstest.1.sgml @@ -50,7 +50,6 @@ - &stdarg.debuglevel; &stdarg.help; @@ -61,6 +60,8 @@ + &popt.common.samba; + diff --git a/docs/docbook/manpages/wbinfo.1.sgml b/docs/docbook/manpages/wbinfo.1.sgml index 3c7ae11e2c6..2e9a811bcb5 100644 --- a/docs/docbook/manpages/wbinfo.1.sgml +++ b/docs/docbook/manpages/wbinfo.1.sgml @@ -1,4 +1,6 @@ - + %globalentities; +]> @@ -226,6 +228,8 @@ + &stdarg.version; + &stdarg.help; diff --git a/docs/docbook/manpages/winbindd.8.sgml b/docs/docbook/manpages/winbindd.8.sgml index a44e195d8ca..cae8eb4105c 100644 --- a/docs/docbook/manpages/winbindd.8.sgml +++ b/docs/docbook/manpages/winbindd.8.sgml @@ -1,4 +1,6 @@ - + %globalentities; +]> @@ -128,13 +130,9 @@ group: files winbind than a file. - - -d debuglevel - Sets the debuglevel to an integer between - 0 and 100. 0 is for no debugging and 100 is for reams and - reams. To submit a bug report to the Samba Team, use debug - level 100 (see BUGS.txt). - + &popt.common.samba; + &popt.common.connection; + &stdarg.help; -i @@ -168,12 +166,6 @@ group: files winbind - - -s|--conf=smb.conf - Specifies the location of the all-important - smb.conf - 5 file. - -- cgit From d5f9b0275c91512e1926504f22aaeec2d104430d Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 14:15:14 +0000 Subject: Revoke some of the popt patch from metze I applied earlier today. It added some double options and broke some parameters. --- source/client/client.c | 3 ++- source/include/popt_common.h | 6 +++++- source/lib/popt_common.c | 25 ++++++++++++++++++------- source/nmbd/nmbd.c | 1 + source/nsswitch/wbinfo.c | 2 +- source/nsswitch/winbindd.c | 1 + source/rpcclient/rpcclient.c | 3 ++- source/smbd/server.c | 1 + source/utils/net.c | 1 + source/utils/nmblookup.c | 1 + source/utils/ntlm_auth.c | 3 ++- source/utils/pdbedit.c | 2 +- source/utils/smbcacls.c | 2 +- source/utils/smbtree.c | 2 +- source/utils/testparm.c | 4 ++-- source/wrepld/server.c | 1 + 16 files changed, 41 insertions(+), 17 deletions(-) diff --git a/source/client/client.c b/source/client/client.c index 8d6730cdc66..da4f0257555 100644 --- a/source/client/client.c +++ b/source/client/client.c @@ -2603,7 +2603,8 @@ static void remember_query_host(const char *arg, { "send-buffer", 'b', POPT_ARG_INT, NULL, 'b', "Changes the transmit/send buffer", "BYTES" }, { "port", 'p', POPT_ARG_INT, &port, 'p', "Port to connect to", "PORT" }, POPT_COMMON_SAMBA - POPT_CREDENTIALS + POPT_COMMON_CONNECTION + POPT_COMMON_CREDENTIALS POPT_TABLEEND }; diff --git a/source/include/popt_common.h b/source/include/popt_common.h index 380df4860e5..57850bf6826 100644 --- a/source/include/popt_common.h +++ b/source/include/popt_common.h @@ -23,6 +23,8 @@ /* Common popt structures */ extern struct poptOption popt_common_samba[]; +extern struct poptOption popt_common_connection[]; +extern struct poptOption popt_common_version[]; extern struct poptOption popt_common_credentials[]; #ifndef POPT_TABLEEND @@ -30,7 +32,9 @@ extern struct poptOption popt_common_credentials[]; #endif #define POPT_COMMON_SAMBA { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_samba, 0, "Common samba options:", NULL }, -#define POPT_CREDENTIALS { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_credentials, 0, "Authentication options:", NULL }, +#define POPT_COMMON_CONNECTION { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_connection, 0, "Connection options:", NULL }, +#define POPT_COMMON_VERSION { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_version, 0, "Common samba options:", NULL }, +#define POPT_COMMON_CREDENTIALS { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_credentials, 0, "Authentication options:", NULL }, struct user_auth_info { pstring username; diff --git a/source/lib/popt_common.c b/source/lib/popt_common.c index 06ba4fc898e..edd54c13d59 100644 --- a/source/lib/popt_common.c +++ b/source/lib/popt_common.c @@ -112,22 +112,33 @@ static void popt_common_callback(poptContext con, } } -struct poptOption popt_common_samba[] = { +struct poptOption popt_common_connection[] = { { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback }, - { "debuglevel", 'd', POPT_ARG_STRING, NULL, 'd', "Set debug level", "DEBUGLEVEL" }, - { "configfile", 's', POPT_ARG_STRING, NULL, 's', "Use alternative configuration file", - "CONFIGFILE" }, { "socket-options", 'O', POPT_ARG_STRING, NULL, 'O', "socket options to use", "SOCKETOPTIONS" }, - { "version", 'V', POPT_ARG_NONE, NULL, 'V', "Print version" }, - { "log-basename", 'l', POPT_ARG_STRING, NULL, 'l', "Basename for log/debug files", - "LOGFILEBASE" }, { "netbiosname", 'n', POPT_ARG_STRING, NULL, 'n', "Primary netbios name", "NETBIOSNAME" }, { "workgroup", 'W', POPT_ARG_STRING, NULL, 'W', "Set the workgroup name", "WORKGROUP" }, { "scope", 'i', POPT_ARG_STRING, NULL, 'i', "Use this Netbios scope", "SCOPE" }, POPT_TABLEEND }; +struct poptOption popt_common_samba[] = { + { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback }, + { "debuglevel", 'd', POPT_ARG_STRING, NULL, 'd', "Set debug level", "DEBUGLEVEL" }, + { "configfile", 's', POPT_ARG_STRING, NULL, 's', "Use alternative configuration file", "CONFIGFILE" }, + { "log-basename", 'l', POPT_ARG_STRING, NULL, 'l', "Basename for log/debug files", "LOGFILEBASE" }, + { "version", 'V', POPT_ARG_NONE, NULL, 'V', "Print version" }, + POPT_TABLEEND +}; + +struct poptOption popt_common_version[] = { + { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback }, + { "version", 'V', POPT_ARG_NONE, NULL, 'V', "Print version" }, + POPT_TABLEEND +}; + + + /**************************************************************************** * get a password from a a file or file descriptor * exit on failure diff --git a/source/nmbd/nmbd.c b/source/nmbd/nmbd.c index d013b79d3e6..184a86e2cfc 100644 --- a/source/nmbd/nmbd.c +++ b/source/nmbd/nmbd.c @@ -601,6 +601,7 @@ static BOOL open_sockets(BOOL isdaemon, int port) {"hosts", 'H', POPT_ARG_STRING, dyn_LMHOSTSFILE, 'H', "Load a netbios hosts file"}, {"port", 'p', POPT_ARG_INT, &global_nmb_port, NMB_PORT, "Listen on the specified port" }, POPT_COMMON_SAMBA + POPT_COMMON_CONNECTION { NULL } }; pstring logfile; diff --git a/source/nsswitch/wbinfo.c b/source/nsswitch/wbinfo.c index fe11cd65285..5ec8e534aa9 100644 --- a/source/nsswitch/wbinfo.c +++ b/source/nsswitch/wbinfo.c @@ -711,7 +711,7 @@ int main(int argc, char **argv) { "set-auth-user", 'A', POPT_ARG_STRING, &string_arg, OPT_SET_AUTH_USER, "Store user and password used by winbindd (root only)", "user%password" }, { "get-auth-user", 0, POPT_ARG_NONE, NULL, OPT_GET_AUTH_USER, "Retrieve user and password used by winbindd (root only)", NULL }, { "ping", 'p', POPT_ARG_NONE, 0, 'p', "Ping winbindd to see if it is alive" }, - POPT_COMMON_SAMBA + POPT_COMMON_VERSION POPT_TABLEEND }; diff --git a/source/nsswitch/winbindd.c b/source/nsswitch/winbindd.c index cd72a4f5721..0f34924e9da 100644 --- a/source/nsswitch/winbindd.c +++ b/source/nsswitch/winbindd.c @@ -820,6 +820,7 @@ int main(int argc, char **argv) { "dual-daemon", 'B', POPT_ARG_VAL, &opt_dual_daemon, True, "Dual daemon mode" }, { "no-caching", 'n', POPT_ARG_VAL, &opt_nocache, False, "Disable caching" }, POPT_COMMON_SAMBA + POPT_COMMON_CONNECTION POPT_TABLEEND }; poptContext pc; diff --git a/source/rpcclient/rpcclient.c b/source/rpcclient/rpcclient.c index 97a944dbf9d..6c1d05b3e93 100644 --- a/source/rpcclient/rpcclient.c +++ b/source/rpcclient/rpcclient.c @@ -507,7 +507,8 @@ out_free: {"command", 'c', POPT_ARG_STRING, &cmdstr, 'c', "Execute semicolon separated cmds", "COMMANDS"}, {"dest-ip", 'I', POPT_ARG_STRING, &opt_ipaddr, 'I', "Specify destination IP address", "IP"}, POPT_COMMON_SAMBA - POPT_CREDENTIALS + POPT_COMMON_CONNECTION + POPT_COMMON_CREDENTIALS POPT_TABLEEND }; diff --git a/source/smbd/server.c b/source/smbd/server.c index 715e9162631..a166027acb2 100644 --- a/source/smbd/server.c +++ b/source/smbd/server.c @@ -670,6 +670,7 @@ static BOOL init_structs(void ) {"build-options", 'b', POPT_ARG_NONE, NULL, 'b', "Print build options" }, {"port", 'p', POPT_ARG_STRING, &ports, 0, "Listen on the specified ports"}, POPT_COMMON_SAMBA + POPT_COMMON_CONNECTION { NULL } }; diff --git a/source/utils/net.c b/source/utils/net.c index d6945ceefbd..3ab34e7aa9a 100644 --- a/source/utils/net.c +++ b/source/utils/net.c @@ -530,6 +530,7 @@ static struct functable net_func[] = { {"force", 'f', POPT_ARG_NONE, &opt_force}, {"timeout", 't', POPT_ARG_INT, &opt_timeout}, {"machine-pass",'P', POPT_ARG_NONE, &opt_machine_pass}, + {"myworkgroup", 'W', POPT_ARG_STRING, &opt_workgroup}, POPT_COMMON_SAMBA { 0, 0, 0, 0} }; diff --git a/source/utils/nmblookup.c b/source/utils/nmblookup.c index 88038fb566a..85f092c8b07 100644 --- a/source/utils/nmblookup.c +++ b/source/utils/nmblookup.c @@ -203,6 +203,7 @@ int main(int argc,char *argv[]) { "root-port", 'r', POPT_ARG_VAL, &RootPort, True, "Use root port 137 (Win95 only replies to this)" }, { "lookup-by-ip", 'A', POPT_ARG_VAL, &lookup_by_ip, True, "Do a node status on as an IP Address" }, POPT_COMMON_SAMBA + POPT_COMMON_CONNECTION { 0, 0, 0, 0 } }; diff --git a/source/utils/ntlm_auth.c b/source/utils/ntlm_auth.c index a28bbf93648..f02bd5f5b3a 100644 --- a/source/utils/ntlm_auth.c +++ b/source/utils/ntlm_auth.c @@ -457,7 +457,8 @@ enum { { "request-lm-key", 0, POPT_ARG_NONE, &request_lm_key, OPT_LM_KEY, "Retreive LM session key"}, { "request-nt-key", 0, POPT_ARG_NONE, &request_nt_key, OPT_NT_KEY, "Retreive NT session key"}, POPT_COMMON_SAMBA - POPT_CREDENTIALS + POPT_COMMON_CONNECTION + POPT_COMMON_CREDENTIALS POPT_TABLEEND }; diff --git a/source/utils/pdbedit.c b/source/utils/pdbedit.c index 03be2571e54..f33dbd9f1c9 100644 --- a/source/utils/pdbedit.c +++ b/source/utils/pdbedit.c @@ -516,7 +516,7 @@ int main (int argc, char **argv) poptContext pc; struct poptOption long_options[] = { POPT_AUTOHELP - {"list", 'l', POPT_ARG_NONE, &list_users, 0, "list all users", NULL}, + {"list", 'L', POPT_ARG_NONE, &list_users, 0, "list all users", NULL}, {"verbose", 'v', POPT_ARG_NONE, &verbose, 0, "be verbose", NULL }, {"smbpasswd-style", 'w',POPT_ARG_NONE, &spstyle, 0, "give output in smbpasswd style", NULL}, {"user", 'u', POPT_ARG_STRING, &user_name, 0, "use username", "USER" }, diff --git a/source/utils/smbcacls.c b/source/utils/smbcacls.c index ac15cf1aa03..562fd9943f9 100644 --- a/source/utils/smbcacls.c +++ b/source/utils/smbcacls.c @@ -758,7 +758,7 @@ static struct cli_state *connect_one(const char *share) { "numeric", 0, POPT_ARG_NONE, &numeric, True, "Don't resolve sids or masks to names" }, { "test-args", 't', POPT_ARG_NONE, &test_args, True, "Test arguments"}, POPT_COMMON_SAMBA - POPT_CREDENTIALS + POPT_COMMON_CREDENTIALS { NULL } }; diff --git a/source/utils/smbtree.c b/source/utils/smbtree.c index 32506c41019..52de5ab467a 100644 --- a/source/utils/smbtree.c +++ b/source/utils/smbtree.c @@ -251,7 +251,7 @@ static BOOL print_tree(struct user_auth_info *user_info) { "domains", 'D', POPT_ARG_VAL, &level, LEV_WORKGROUP, "List only domains (workgroups) of tree" }, { "servers", 'S', POPT_ARG_VAL, &level, LEV_SERVER, "List domains(workgroups) and servers of tree" }, POPT_COMMON_SAMBA - POPT_CREDENTIALS + POPT_COMMON_CREDENTIALS POPT_TABLEEND }; poptContext pc; diff --git a/source/utils/testparm.c b/source/utils/testparm.c index c0e4f7606e0..4c8a2ccf639 100644 --- a/source/utils/testparm.c +++ b/source/utils/testparm.c @@ -206,8 +206,8 @@ via the %%o substitution. With encrypted passwords this is not possible.\n", lp_ {"verbose", 'v', POPT_ARG_NONE, &show_defaults, 1, "Show default options too"}, {"server", 'L',POPT_ARG_STRING, &new_local_machine, 0, "Set %%L macro to servername\n"}, {"encoding", 't', POPT_ARG_STRING, &term_code, 0, "Print parameters with encoding"}, - POPT_COMMON_SAMBA - {0,0,0,0} + POPT_COMMON_VERSION + POPT_TABLEEND }; pc = poptGetContext(NULL, argc, argv, long_options, diff --git a/source/wrepld/server.c b/source/wrepld/server.c index be9d86952d2..196ea0d1d10 100644 --- a/source/wrepld/server.c +++ b/source/wrepld/server.c @@ -516,6 +516,7 @@ static void process(void) { "interactive", 'i', POPT_ARG_NONE, NULL, 'i', "Run interactive (not a daemon)" }, { "port", 'p', POPT_ARG_INT, &wins_port, 'p', "Listen on the specified port" }, POPT_COMMON_SAMBA + POPT_COMMON_CONNECTION POPT_TABLEEND }; int opt; -- cgit From bd197baa8657d7708804e67e37d10be6acf75af6 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 14:20:28 +0000 Subject: editreg, wrepld and ntlm_aut aren't documented yet.. --- docs/docs-status | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/docs-status b/docs/docs-status index 173dc6e1b70..510e0cf4378 100644 --- a/docs/docs-status +++ b/docs/docs-status @@ -43,6 +43,11 @@ docs/docbook/manpages/smbumount.8.sgml docs/docbook/manpages/testparm.1.sgml docs/docbook/manpages/testprns.1.sgml +These need documentation: +ntlm_auth +wrepld +editreg + Stuff that needs to be documented: Windows NT 4.0 Style Trust Relationship One Time Migration script from a Windows NT 4.0 PDC to a Samba PDC -- cgit From 8df30059ef100a4d5e21501d7746427b4d312589 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 14:32:11 +0000 Subject: Don't use old usage() function, but the one from popt. Remove some useless arguments --- source/nmbd/nmbd.c | 1 - source/nsswitch/winbindd.c | 1 - source/smbd/server.c | 1 - source/wrepld/server.c | 14 ++------------ 4 files changed, 2 insertions(+), 15 deletions(-) diff --git a/source/nmbd/nmbd.c b/source/nmbd/nmbd.c index 184a86e2cfc..d013b79d3e6 100644 --- a/source/nmbd/nmbd.c +++ b/source/nmbd/nmbd.c @@ -601,7 +601,6 @@ static BOOL open_sockets(BOOL isdaemon, int port) {"hosts", 'H', POPT_ARG_STRING, dyn_LMHOSTSFILE, 'H', "Load a netbios hosts file"}, {"port", 'p', POPT_ARG_INT, &global_nmb_port, NMB_PORT, "Listen on the specified port" }, POPT_COMMON_SAMBA - POPT_COMMON_CONNECTION { NULL } }; pstring logfile; diff --git a/source/nsswitch/winbindd.c b/source/nsswitch/winbindd.c index 0f34924e9da..cd72a4f5721 100644 --- a/source/nsswitch/winbindd.c +++ b/source/nsswitch/winbindd.c @@ -820,7 +820,6 @@ int main(int argc, char **argv) { "dual-daemon", 'B', POPT_ARG_VAL, &opt_dual_daemon, True, "Dual daemon mode" }, { "no-caching", 'n', POPT_ARG_VAL, &opt_nocache, False, "Disable caching" }, POPT_COMMON_SAMBA - POPT_COMMON_CONNECTION POPT_TABLEEND }; poptContext pc; diff --git a/source/smbd/server.c b/source/smbd/server.c index a166027acb2..715e9162631 100644 --- a/source/smbd/server.c +++ b/source/smbd/server.c @@ -670,7 +670,6 @@ static BOOL init_structs(void ) {"build-options", 'b', POPT_ARG_NONE, NULL, 'b', "Print build options" }, {"port", 'p', POPT_ARG_STRING, &ports, 0, "Listen on the specified ports"}, POPT_COMMON_SAMBA - POPT_COMMON_CONNECTION { NULL } }; diff --git a/source/wrepld/server.c b/source/wrepld/server.c index 196ea0d1d10..504818b8d52 100644 --- a/source/wrepld/server.c +++ b/source/wrepld/server.c @@ -159,15 +159,6 @@ void exit_server(const char *reason) exit(0); } -/**************************************************************************** - Usage of the program. -****************************************************************************/ - -static void usage(char *pname) -{ - -} - /**************************************************************************** Create an fd_set containing all the sockets in the subnet structures, plus the broadcast sockets. @@ -516,7 +507,6 @@ static void process(void) { "interactive", 'i', POPT_ARG_NONE, NULL, 'i', "Run interactive (not a daemon)" }, { "port", 'p', POPT_ARG_INT, &wins_port, 'p', "Listen on the specified port" }, POPT_COMMON_SAMBA - POPT_COMMON_CONNECTION POPT_TABLEEND }; int opt; @@ -539,11 +529,10 @@ static void process(void) } } - poptFreeContext(pc); if (log_stdout && Fork) { d_printf("Can't log to stdout (-S) unless daemon is in foreground (-F) or interactive (-i)\n"); - usage(argv[0]); + poptPrintUsage(pc, stderr, 0); exit(1); } @@ -671,6 +660,7 @@ static void process(void) process(); + poptFreeContext(pc); exit_server("normal exit"); return(0); } -- cgit From 2cb23016385a286006a08170188b4e7ca62429d9 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 14:32:55 +0000 Subject: Remove documentation for removed options --- docs/docbook/manpages/nmbd.8.sgml | 1 - docs/docbook/manpages/winbindd.8.sgml | 1 - 2 files changed, 2 deletions(-) diff --git a/docs/docbook/manpages/nmbd.8.sgml b/docs/docbook/manpages/nmbd.8.sgml index 5f359ff099b..f2b4ac5a05a 100644 --- a/docs/docbook/manpages/nmbd.8.sgml +++ b/docs/docbook/manpages/nmbd.8.sgml @@ -149,7 +149,6 @@ &popt.common.samba; - &popt.common.connection; -p <UDP port number> diff --git a/docs/docbook/manpages/winbindd.8.sgml b/docs/docbook/manpages/winbindd.8.sgml index cae8eb4105c..9923c64ee98 100644 --- a/docs/docbook/manpages/winbindd.8.sgml +++ b/docs/docbook/manpages/winbindd.8.sgml @@ -131,7 +131,6 @@ group: files winbind &popt.common.samba; - &popt.common.connection; &stdarg.help; -- cgit From 1481cd9ecf1658312424c193d8cd3632766eb058 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 16:15:10 +0000 Subject: Add mapping for Bad Network Path --- source/libsmb/clierror.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/libsmb/clierror.c b/source/libsmb/clierror.c index b66a6bcba8e..cea736ef180 100644 --- a/source/libsmb/clierror.c +++ b/source/libsmb/clierror.c @@ -231,6 +231,7 @@ static struct { {NT_STATUS_UNSUCCESSFUL, EINVAL}, {NT_STATUS_NOT_IMPLEMENTED, ENOSYS}, {NT_STATUS_IN_PAGE_ERROR, EFAULT}, + {NT_STATUS_BAD_NETWORK_NAME, ENOENT}, #ifdef EDQUOT {NT_STATUS_PAGEFILE_QUOTA, EDQUOT}, {NT_STATUS_QUOTA_EXCEEDED, EDQUOT}, -- cgit From 269c93ca269e5badd5475d9ad53d06f9cb111d2c Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 16:16:13 +0000 Subject: Add static to satisfy exotic compilers --- source/client/client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/client/client.c b/source/client/client.c index da4f0257555..b6c4b704a9b 100644 --- a/source/client/client.c +++ b/source/client/client.c @@ -2583,7 +2583,7 @@ static void remember_query_host(const char *arg, BOOL message = False; extern char tar_type; pstring term_code; - const char *new_name_resolve_order = NULL; + static const char *new_name_resolve_order = NULL; poptContext pc; char *p; int rc = 0; -- cgit From f622bdc691fabed218598fb0546b9e933aed63ed Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 18:25:31 +0000 Subject: Simplify modules interface and make it easier to build complete subsystems as modules (--with-shared-modules=rpc,pdb_xml,pdb_ldap works now, for example) --- source/aclocal.m4 | 26 +++++++++++++++--------- source/configure.in | 58 ++++++++++++++++++++--------------------------------- 2 files changed, 39 insertions(+), 45 deletions(-) diff --git a/source/aclocal.m4 b/source/aclocal.m4 index 15508206c39..4814a86a960 100644 --- a/source/aclocal.m4 +++ b/source/aclocal.m4 @@ -37,18 +37,26 @@ fi ]) dnl Mark specified module as shared -dnl SMB_MODULE(type,name,static_files,shared_files,subsystem) +dnl SMB_MODULE(name,static_files,shared_files,subsystem) AC_DEFUN(SMB_MODULE, [ - AC_MSG_CHECKING([how to build $2]) - if test x"$1" = xSHARED; then - AC_DEFINE([$2][_init], [init_module], [Whether to build $2 as shared module]) - $5_MODULES="$$5_MODULES $4" + AC_MSG_CHECKING([how to build $1]) + if test "$[MODULE_][$1]"; then + DEST=$[MODULE_][$1] + elif test "$[MODULE_]translit([$4], [A-Z], [a-z])"; then + DEST=$[MODULE_]translit([$4], [A-Z], [a-z]) + else + DEST=$[MODULE_DEFAULT_][$1] + fi + + if test x"$DEST" = xSHARED; then + AC_DEFINE([$1][_init], [init_module], [Whether to build $1 as shared module]) + $5_MODULES="$$4_MODULES $3" AC_MSG_RESULT([shared]) - elif test x"$1" = xSTATIC; then - [init_static_modules_]translit([$5], [A-Z], [a-z])="$[init_static_modules_]translit([$5], [A-Z], [a-z]) $2_init();" - $5_STATIC="$$5_STATIC $3" - AC_SUBST($5_STATIC) + elif test x"$DEST" = xSTATIC; then + [init_static_modules_]translit([$4], [A-Z], [a-z])="$[init_static_modules_]translit([$4], [A-Z], [a-z]) $1_init();" + $5_STATIC="$$4_STATIC $2" + AC_SUBST($4_STATIC) AC_MSG_RESULT([static]) else AC_MSG_RESULT([not]) diff --git a/source/configure.in b/source/configure.in index 9ccbe08fa32..cbd1eec710d 100644 --- a/source/configure.in +++ b/source/configure.in @@ -239,7 +239,7 @@ AC_VALIDATE_CACHE_SYSTEM_TYPE DYNEXP= dnl Add modules that have to be built by default here -default_modules="pdb_smbpasswd pdb_tdb pdb_unix rpc_lsa rpc_samr rpc_reg rpc_wks rpc_netlog rpc_dfs rpc_srv rpc_spoolss" +default_modules="pdb_smbpasswd pdb_tdbsam pdb_unix rpc_lsa rpc_samr rpc_reg rpc_wks rpc_net rpc_dfs rpc_srv rpc_spoolss" # # Config CPPFLAG settings for strange OS's that must be set @@ -2449,23 +2449,6 @@ AC_ARG_WITH(tdbsam, AC_MSG_RESULT(no) ) -################################################# -# check for a NISPLUS password database -AC_MSG_CHECKING(whether to use NISPLUS SAM database) -AC_ARG_WITH(nisplussam, -[ --with-nisplussam Include NISPLUS SAM support (default=no)], -[ case "$withval" in - yes) - AC_MSG_RESULT(yes) - AC_DEFINE(WITH_NISPLUS_SAM,1,[Whether to include nisplus SAM support]) - ;; - *) - AC_MSG_RESULT(no) - ;; - esac ], - AC_MSG_RESULT(no) -) - ######################################################################################## ## ## END OF TESTS FOR SAM BACKENDS. @@ -3357,7 +3340,7 @@ AC_SUBST(PYTHON) for i in `echo $default_modules | sed -e's/,/ /g'` do dnl Set to shared instead of static when dlopen() is available? - eval MODULE_$i=STATIC + eval MODULE_DEFAULT_$i=STATIC done AC_ARG_WITH(static-modules, @@ -3378,27 +3361,30 @@ AC_ARG_WITH(shared-modules, done fi ]) -SMB_MODULE($MODULE_pdb_xml, pdb_xml, modules/xml.o, bin/xml.so PDB) -SMB_MODULE($MODULE_pdb_mysql, pdb_mysql, modules/mysql.o, bin/mysql.so, PDB) -SMB_MODULE($MODULE_pdb_ldap, pdb_ldap, passdb/pdb_ldap.o, bin/ldapsam.so, PDB) -SMB_MODULE($MODULE_pdb_smbpasswd, pdb_smbpasswd, passdb/pdb_smbpasswd.o, bin/smbpasswd.so, PDB) -SMB_MODULE($MODULE_pdb_tdb, pdb_tdbsam, passdb/pdb_tdb.o, bin/tdbsam.so, PDB) -SMB_MODULE($MODULE_pdb_nisplus, pdb_nisplussam, passdb/pdb_nisplus.o, bin/nisplussam.so, PDB) -SMB_MODULE($MODULE_pdb_unix, pdb_unix, passdb/pdb_unix.o, bin/unixsam.so, PDB) -SMB_MODULE(STATIC, pdb_guest, passdb/pdb_guest.o, bin/guest.so, PDB) +# Always built these modules static +MODULE_pdb_guest=STATIC + +SMB_MODULE(pdb_xml, modules/xml.o, bin/xml.so, PDB) +SMB_MODULE(pdb_mysql, modules/mysql.o, bin/mysql.so, PDB) +SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o, bin/ldapsam.so, PDB) +SMB_MODULE(pdb_smbpasswd, passdb/pdb_smbpasswd.o, bin/smbpasswd.so, PDB) +SMB_MODULE(pdb_tdbsam, passdb/pdb_tdb.o, bin/tdbsam.so, PDB) +SMB_MODULE(pdb_nisplussam, passdb/pdb_nisplus.o, bin/nisplussam.so, PDB) +SMB_MODULE(pdb_unix, passdb/pdb_unix.o, bin/unixsam.so, PDB) +SMB_MODULE(pdb_guest, passdb/pdb_guest.o, bin/guest.so, PDB) SMB_SUBSYSTEM(PDB) -SMB_MODULE($MODULE_rpc_lsa, rpc_lsa, \$(RPC_LSA_OBJ), bin/librpc_lsa.so, RPC) -SMB_MODULE($MODULE_rpc_reg, rpc_reg, \$(RPC_REG_OBJ), bin/librpc_reg.so, RPC) -SMB_MODULE($MODULE_rpc_wks, rpc_wks, \$(RPC_WKS_OBJ), bin/librpc_wks.so, RPC) -SMB_MODULE($MODULE_rpc_netlog, rpc_net, \$(RPC_NETLOG_OBJ), bin/librpc_netlog.so, RPC) -SMB_MODULE($MODULE_rpc_dfs, rpc_dfs, \$(RPC_DFS_OBJ), bin/librpc_dfs.so, RPC) -SMB_MODULE($MODULE_rpc_srv, rpc_srv, \$(RPC_SVC_OBJ), bin/librpc_srvsvc.so, RPC) -SMB_MODULE($MODULE_rpc_spoolss, rpc_spoolss, \$(RPC_SPOOLSS_OBJ), bin/librpc_spoolss.so, RPC) -SMB_MODULE($MODULE_rpc_samr, rpc_samr, \$(RPC_SAMR_OBJ), bin/librpc_samr.so, RPC) +SMB_MODULE(rpc_lsa, \$(RPC_LSA_OBJ), bin/librpc_lsarpc.so, RPC) +SMB_MODULE(rpc_reg, \$(RPC_REG_OBJ), bin/librpc_reg.so, RPC) +SMB_MODULE(rpc_wks, \$(RPC_WKS_OBJ), bin/librpc_wks.so, RPC) +SMB_MODULE(rpc_net, \$(RPC_NETLOG_OBJ), bin/librpc_netlog.so, RPC) +SMB_MODULE(rpc_dfs, \$(RPC_DFS_OBJ), bin/librpc_dfs.so, RPC) +SMB_MODULE(rpc_srv, \$(RPC_SVC_OBJ), bin/librpc_srvsvc.so, RPC) +SMB_MODULE(rpc_spoolss, \$(RPC_SPOOLSS_OBJ), bin/librpc_spoolss.so, RPC) +SMB_MODULE(rpc_samr, \$(RPC_SAMR_OBJ), bin/librpc_samr.so, RPC) SMB_SUBSYSTEM(RPC) -SMB_MODULE($MODULE_charset_weird, charset_weird, modules/developer.o, bin/developer.so, CHARSET) +SMB_MODULE(charset_weird, modules/developer.o, bin/developer.so, CHARSET) SMB_SUBSYSTEM(CHARSET) ################################################# -- cgit From 4dd16790436d18f5ac5868538309128e3f8ad1cc Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 18:38:59 +0000 Subject: Give error message when module doesn't seem to contain pipe functions --- source/rpc_server/srv_pipe.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/rpc_server/srv_pipe.c b/source/rpc_server/srv_pipe.c index d6b774c5663..2ab554f1223 100644 --- a/source/rpc_server/srv_pipe.c +++ b/source/rpc_server/srv_pipe.c @@ -810,6 +810,11 @@ BOOL api_pipe_bind_req(pipes_struct *p, prs_struct *rpc_in_p) break; } } + + if (i == rpc_lookup_size) { + DEBUG(0, ("module %s doesn't provide functions for pipe %s!\m", p->name, p->name)); + return False; + } } /* decode the bind request */ -- cgit From 9bec6889047814dc00eea102d6c3368d3942db94 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 18:47:18 +0000 Subject: Add notes for packagers --- docs/docbook/devdoc/dev-doc.sgml | 2 ++ docs/docbook/devdoc/packagers.sgml | 40 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 docs/docbook/devdoc/packagers.sgml diff --git a/docs/docbook/devdoc/dev-doc.sgml b/docs/docbook/devdoc/dev-doc.sgml index f10fe724148..5e1af3d3a03 100644 --- a/docs/docbook/devdoc/dev-doc.sgml +++ b/docs/docbook/devdoc/dev-doc.sgml @@ -14,6 +14,7 @@ + ]> @@ -70,5 +71,6 @@ url="http://www.fsf.org/licenses/gpl.txt">http://www.fsf.org/licenses/gpl.txt diff --git a/docs/docbook/devdoc/packagers.sgml b/docs/docbook/devdoc/packagers.sgml new file mode 100644 index 00000000000..5042070d687 --- /dev/null +++ b/docs/docbook/devdoc/packagers.sgml @@ -0,0 +1,40 @@ + + + + JelmerVernooij + + + +Notes to packagers + + +Versioning + +Please, please update the version number in +source/include/version.h to include the versioning of your package. This makes it easier to distinguish standard samba builds +from custom-build samba builds (distributions often patch packages). For +example, a good version would be: + + + + + + + + +Modules + +Samba now has support for building parts of samba as plugins. This +makes it possible to, for example, put ldap or mysql support in a seperate +package, thus making it possible to have a normal samba package not +depending on ldap or mysql. To build as much parts of samba +as a plugin, run: + + +./configure --with-shared-modules=rpc,vfs,auth,pdb,charset + + + + + + -- cgit From bb943a68af20f87a4b2d6b257585615d1792dd33 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 19:18:24 +0000 Subject: When using --with-static-modules=subsystem, don't build modules that can't be build --- source/aclocal.m4 | 2 +- source/configure.in | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/source/aclocal.m4 b/source/aclocal.m4 index 4814a86a960..79fbc8628ed 100644 --- a/source/aclocal.m4 +++ b/source/aclocal.m4 @@ -43,7 +43,7 @@ AC_DEFUN(SMB_MODULE, AC_MSG_CHECKING([how to build $1]) if test "$[MODULE_][$1]"; then DEST=$[MODULE_][$1] - elif test "$[MODULE_]translit([$4], [A-Z], [a-z])"; then + elif test "$[MODULE_]translit([$4], [A-Z], [a-z])" -a "$[MODULE_DEFAULT_][$1]"; then DEST=$[MODULE_]translit([$4], [A-Z], [a-z]) else DEST=$[MODULE_DEFAULT_][$1] diff --git a/source/configure.in b/source/configure.in index cbd1eec710d..15ff11eaa87 100644 --- a/source/configure.in +++ b/source/configure.in @@ -3343,6 +3343,11 @@ do eval MODULE_DEFAULT_$i=STATIC done +# Always built these modules static +MODULE_pdb_guest=STATIC +MODULE_rpc_spools=STATIC +MODULE_rpc_srv=STATIC + AC_ARG_WITH(static-modules, [ --with-static-modules=MODULES Comma-seperated list of names of modules to statically link in], [ if test $withval; then @@ -3361,9 +3366,6 @@ AC_ARG_WITH(shared-modules, done fi ]) -# Always built these modules static -MODULE_pdb_guest=STATIC - SMB_MODULE(pdb_xml, modules/xml.o, bin/xml.so, PDB) SMB_MODULE(pdb_mysql, modules/mysql.o, bin/mysql.so, PDB) SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o, bin/ldapsam.so, PDB) -- cgit From 898a246c1650326cbd9b8ca49fb93963e589ea1f Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 19:53:02 +0000 Subject: Fix two typos --- source/configure.in | 2 +- source/rpc_server/srv_pipe.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/configure.in b/source/configure.in index 15ff11eaa87..0c8301d1dae 100644 --- a/source/configure.in +++ b/source/configure.in @@ -3345,7 +3345,7 @@ done # Always built these modules static MODULE_pdb_guest=STATIC -MODULE_rpc_spools=STATIC +MODULE_rpc_spoolss=STATIC MODULE_rpc_srv=STATIC AC_ARG_WITH(static-modules, diff --git a/source/rpc_server/srv_pipe.c b/source/rpc_server/srv_pipe.c index 2ab554f1223..5d8b7d39e91 100644 --- a/source/rpc_server/srv_pipe.c +++ b/source/rpc_server/srv_pipe.c @@ -812,7 +812,7 @@ BOOL api_pipe_bind_req(pipes_struct *p, prs_struct *rpc_in_p) } if (i == rpc_lookup_size) { - DEBUG(0, ("module %s doesn't provide functions for pipe %s!\m", p->name, p->name)); + DEBUG(0, ("module %s doesn't provide functions for pipe %s!\n", p->name, p->name)); return False; } } -- cgit From 3defbd5e0633acfa4631531b49601c7706072d86 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 24 Mar 2003 23:03:46 +0000 Subject: - Add support to auth/ for the new modules system - Quite some small fixes (also fixes the build) --- source/Makefile.in | 8 +++- source/aclocal.m4 | 4 +- source/auth/auth.c | 94 +++++++++++++++++++++++++++++----------------- source/auth/auth_builtin.c | 54 ++++---------------------- source/auth/auth_domain.c | 7 ++++ source/auth/auth_rhosts.c | 7 ++++ source/auth/auth_sam.c | 8 ++++ source/auth/auth_server.c | 5 +++ source/auth/auth_unix.c | 4 ++ source/auth/auth_winbind.c | 5 +++ source/configure.in | 19 +++++++--- source/include/auth.h | 4 ++ 12 files changed, 129 insertions(+), 90 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index 3c2a43dd0fe..daf495c25ec 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -55,6 +55,7 @@ VFSLIBDIR = $(LIBDIR)/vfs PDBLIBDIR = $(LIBDIR)/pdb RPCLIBDIR = $(LIBDIR)/rpc CHARSETLIBDIR = $(LIBDIR)/charset +AUTHLIBDIR = $(LIBDIR)/auth CONFIGDIR = @configdir@ VARDIR = @localstatedir@ MANDIR = @mandir@ @@ -140,7 +141,8 @@ VFS_MODULES = bin/vfs_audit.@SHLIBEXT@ bin/vfs_extd_audit.@SHLIBEXT@ bin/vfs_rec PDB_MODULES = @PDB_MODULES@ RPC_MODULES = @RPC_MODULES@ CHARSET_MODULES = @CHARSET_MODULES@ -MODULES = $(VFS_MODULES) $(PDB_MODULES) $(RPC_MODULES) $(CHARSET_MODULES) +AUTH_MODULES = @AUTH_MODULES@ +MODULES = $(VFS_MODULES) $(PDB_MODULES) $(RPC_MODULES) $(CHARSET_MODULES) $(AUTH_MODULES) ###################################################################### # object file lists @@ -1058,11 +1060,12 @@ installbin: all installdirs @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(VARDIR) $(BIN_PROGS) -installmodules: all installdirs +installmodules: all modules installdirs @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(VFSLIBDIR) $(VFS_MODULES) @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(PDBLIBDIR) $(PDB_MODULES) @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(RPCLIBDIR) $(RPC_MODULES) @$(SHEEL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(CHARSETLIBDIR) $(CHARSET_MODULES) + @$(SHEEL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(AUTHLIBDIR) $(AUTH_MODULES) installscripts: installdirs @$(SHELL) $(srcdir)/script/installscripts.sh $(INSTALLPERMS) $(DESTDIR)$(BINDIR) $(SCRIPTS) @@ -1138,6 +1141,7 @@ uninstallmodules: @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(PDBLIBDIR) $(DESTDIR)$(PDB_MODULES) @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(RPCLIBDIR) $(DESTDIR)$(RPC_MODULES) @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(CHARSETLIBDIR) $(DESTDIR)$(CHARSET_MODULES) + @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(AUTHLIBDIR) $(DESTDIR)$(AUTH_MODULES) uninstallscripts: @$(SHELL) $(srcdir)/script/uninstallscripts.sh $(INSTALLPERMS) $(DESTDIR)$(BINDIR) $(SCRIPTS) diff --git a/source/aclocal.m4 b/source/aclocal.m4 index 79fbc8628ed..5d9070fcd99 100644 --- a/source/aclocal.m4 +++ b/source/aclocal.m4 @@ -51,11 +51,11 @@ AC_DEFUN(SMB_MODULE, if test x"$DEST" = xSHARED; then AC_DEFINE([$1][_init], [init_module], [Whether to build $1 as shared module]) - $5_MODULES="$$4_MODULES $3" + $4_MODULES="$$4_MODULES $3" AC_MSG_RESULT([shared]) elif test x"$DEST" = xSTATIC; then [init_static_modules_]translit([$4], [A-Z], [a-z])="$[init_static_modules_]translit([$4], [A-Z], [a-z]) $1_init();" - $5_STATIC="$$4_STATIC $2" + $4_STATIC="$$4_STATIC $2" AC_SUBST($4_STATIC) AC_MSG_RESULT([static]) else diff --git a/source/auth/auth.c b/source/auth/auth.c index 8b33010e915..4416f93fba0 100644 --- a/source/auth/auth.c +++ b/source/auth/auth.c @@ -23,27 +23,45 @@ #undef DBGC_CLASS #define DBGC_CLASS DBGC_AUTH -/** List of various built-in authentication modules */ - -static const struct auth_init_function_entry builtin_auth_init_functions[] = { - { "guest", auth_init_guest }, - { "rhosts", auth_init_rhosts }, - { "hostsequiv", auth_init_hostsequiv }, - { "sam", auth_init_sam }, - { "samstrict", auth_init_samstrict }, - { "samstrict_dc", auth_init_samstrict_dc }, - { "unix", auth_init_unix }, - { "smbserver", auth_init_smbserver }, - { "ntdomain", auth_init_ntdomain }, - { "trustdomain", auth_init_trustdomain }, - { "winbind", auth_init_winbind }, -#ifdef DEVELOPER - { "name_to_ntstatus", auth_init_name_to_ntstatus }, - { "fixed_challenge", auth_init_fixed_challenge }, -#endif - { "plugin", auth_init_plugin }, - { NULL, NULL} -}; +static struct auth_init_function_entry *backends = NULL; + +BOOL smb_register_auth(const char *name, auth_init_function init, int version) +{ + struct auth_init_function_entry *entry = backends; + + if(version != AUTH_INTERFACE_VERSION) + return False; + + DEBUG(5,("Attempting to register auth backend %s\n", name)); + + while(entry) { + if (strequal(name, entry->name)) { + DEBUG(0,("There already is an auth backend registered with the name %s!\n", name)); + return False; + } + entry = entry->next; + } + + entry = smb_xmalloc(sizeof(struct auth_init_function_entry)); + entry->name = smb_xstrdup(name); + entry->init = init; + + DLIST_ADD(backends, entry); + DEBUG(5,("Successfully added auth backend '%s'\n", name)); + return True; +} + +static struct auth_init_function_entry *auth_find_backend_entry(const char *name) +{ + struct auth_init_function_entry *entry = backends; + + while(entry) { + if (strequal(entry->name, name)) return entry; + entry = entry->next; + } + + return NULL; +} /**************************************************************************** Try to get a challenge out of the various authentication modules. @@ -325,8 +343,8 @@ static NTSTATUS make_auth_context_text_list(struct auth_context **auth_context, auth_methods *list = NULL; auth_methods *t = NULL; auth_methods *tmp; - int i; NTSTATUS nt_status; + static BOOL initialised_static_modules = False; if (!text_list) { DEBUG(2,("make_auth_context_text_list: No auth method list!?\n")); @@ -335,11 +353,17 @@ static NTSTATUS make_auth_context_text_list(struct auth_context **auth_context, if (!NT_STATUS_IS_OK(nt_status = make_auth_context(auth_context))) return nt_status; + + /* Initialise static modules if not done so yet */ + if(!initialised_static_modules) { + static_init_auth; + initialised_static_modules = True; + } for (;*text_list; text_list++) { DEBUG(5,("make_auth_context_text_list: Attempting to find an auth method to match %s\n", *text_list)); - for (i = 0; builtin_auth_init_functions[i].name; i++) { + struct auth_init_function_entry *entry; char *module_name = smb_xstrdup(*text_list); char *module_params = NULL; char *p; @@ -353,20 +377,20 @@ static NTSTATUS make_auth_context_text_list(struct auth_context **auth_context, trim_string(module_name, " ", " "); - if (strequal(builtin_auth_init_functions[i].name, module_name)) { - DEBUG(5,("make_auth_context_text_list: Found auth method %s (at pos %d)\n", *text_list, i)); - if (NT_STATUS_IS_OK(builtin_auth_init_functions[i].init(*auth_context, module_params, &t))) { - DEBUG(5,("make_auth_context_text_list: auth method %s has a valid init\n", - *text_list)); - DLIST_ADD_END(list, t, tmp); - } else { - DEBUG(0,("make_auth_context_text_list: auth method %s did not correctly init\n", - *text_list)); - } - break; + entry = auth_find_backend_entry(module_name); + + if(!(entry = auth_find_backend_entry(module_name)) && !smb_probe_module("auth", module_name) && + !(entry = auth_find_backend_entry(module_name))) { + DEBUG(0,("make_auth_context_text_list: can't find auth method %s!\n", module_name)); + } else if (!NT_STATUS_IS_OK(entry->init(*auth_context, module_params, &t))) { + DEBUG(0,("make_auth_context_text_list: auth method %s did not correctly init\n", + *text_list)); + } else { + DEBUG(5,("make_auth_context_text_list: auth method %s has a valid init\n", + *text_list)); + DLIST_ADD_END(list, t, tmp); } SAFE_FREE(module_name); - } } (*auth_context)->auth_method_list = list; diff --git a/source/auth/auth_builtin.c b/source/auth/auth_builtin.c index 3b0b84b5256..509a4afba9b 100644 --- a/source/auth/auth_builtin.c +++ b/source/auth/auth_builtin.c @@ -1,6 +1,6 @@ /* Unix SMB/CIFS implementation. - Generic authenticaion types + Generic authentication types Copyright (C) Andrew Bartlett 2001-2002 Copyright (C) Jelmer Vernooij 2002 @@ -161,50 +161,12 @@ NTSTATUS auth_init_fixed_challenge(struct auth_context *auth_context, const char return NT_STATUS_OK; } -/** - * Outsorce an auth module to an external loadable .so - * - * Only works on systems with dlopen() etc. - **/ - -/* Plugin modules initialisation */ - -NTSTATUS auth_init_plugin(struct auth_context *auth_context, const char *param, auth_methods **auth_method) +int auth_builtin_init(void) { - void * dl_handle; - char *plugin_param, *plugin_name, *p; - auth_init_function plugin_init; - - if (param == NULL) { - DEBUG(0, ("auth_init_plugin: The plugin module needs an argument!\n")); - return NT_STATUS_UNSUCCESSFUL; - } - - plugin_name = smb_xstrdup(param); - p = strchr(plugin_name, ':'); - if (p) { - *p = 0; - plugin_param = p+1; - trim_string(plugin_param, " ", " "); - } else plugin_param = NULL; - - trim_string(plugin_name, " ", " "); - - DEBUG(5, ("auth_init_plugin: Trying to load auth plugin %s\n", plugin_name)); - dl_handle = sys_dlopen(plugin_name, RTLD_NOW ); - if (!dl_handle) { - DEBUG(0, ("auth_init_plugin: Failed to load auth plugin %s using sys_dlopen (%s)\n", - plugin_name, sys_dlerror())); - return NT_STATUS_UNSUCCESSFUL; - } - - plugin_init = sys_dlsym(dl_handle, "auth_init"); - if (!plugin_init){ - DEBUG(0, ("Failed to find function 'auth_init' using sys_dlsym in sam plugin %s (%s)\n", - plugin_name, sys_dlerror())); - return NT_STATUS_UNSUCCESSFUL; - } - - DEBUG(5, ("Starting sam plugin %s with paramater %s\n", plugin_name, plugin_param?plugin_param:"(null)")); - return plugin_init(auth_context, plugin_param, auth_method); + smb_register_auth("guest", auth_init_guest, AUTH_INTERFACE_VERSION); +#ifdef DEVELOPER + smb_register_auth("fixed_challenge", auth_init_fixed_challenge, AUTH_INTERFACE_VERSION); + smb_register_auth("name_to_ntstatus", auth_init_name_to_ntstatus, AUTH_INTERFACE_VERSION); +#endif + return True; } diff --git a/source/auth/auth_domain.c b/source/auth/auth_domain.c index 7cf7ed11999..9ca2f4e1905 100644 --- a/source/auth/auth_domain.c +++ b/source/auth/auth_domain.c @@ -545,3 +545,10 @@ NTSTATUS auth_init_trustdomain(struct auth_context *auth_context, const char* pa (*auth_method)->auth = check_trustdomain_security; return NT_STATUS_OK; } + +int auth_domain_init(void) +{ + smb_register_auth("trustdomain", auth_init_trustdomain, AUTH_INTERFACE_VERSION); + smb_register_auth("ntdomain", auth_init_ntdomain, AUTH_INTERFACE_VERSION); + return True; +} diff --git a/source/auth/auth_rhosts.c b/source/auth/auth_rhosts.c index 5451f7d9309..db371935799 100644 --- a/source/auth/auth_rhosts.c +++ b/source/auth/auth_rhosts.c @@ -242,3 +242,10 @@ NTSTATUS auth_init_rhosts(struct auth_context *auth_context, const char *param, (*auth_method)->name = "rhosts"; return NT_STATUS_OK; } + +int auth_rhosts_init(void) +{ + smb_register_auth("rhosts", auth_init_rhosts, AUTH_INTERFACE_VERSION); + smb_register_auth("hostsequiv", auth_init_hostsequiv, AUTH_INTERFACE_VERSION); + return True; +} diff --git a/source/auth/auth_sam.c b/source/auth/auth_sam.c index 48fabba0a22..aa399f33e2e 100644 --- a/source/auth/auth_sam.c +++ b/source/auth/auth_sam.c @@ -562,3 +562,11 @@ NTSTATUS auth_init_samstrict_dc(struct auth_context *auth_context, const char *p (*auth_method)->name = "samstrict_dc"; return NT_STATUS_OK; } + +int auth_sam_init(void) +{ + smb_register_auth("samstrict_dc", auth_init_samstrict_dc, AUTH_INTERFACE_VERSION); + smb_register_auth("samstrict", auth_init_samstrict, AUTH_INTERFACE_VERSION); + smb_register_auth("sam", auth_init_sam, AUTH_INTERFACE_VERSION); + return True; +} diff --git a/source/auth/auth_server.c b/source/auth/auth_server.c index 5144852d3b4..a311f01dc3f 100644 --- a/source/auth/auth_server.c +++ b/source/auth/auth_server.c @@ -400,3 +400,8 @@ NTSTATUS auth_init_smbserver(struct auth_context *auth_context, const char* para (*auth_method)->free_private_data = free_server_private_data; return NT_STATUS_OK; } + +int auth_server_init(void) +{ + return smb_register_auth("smbserver", auth_init_smbserver, AUTH_INTERFACE_VERSION); +} diff --git a/source/auth/auth_unix.c b/source/auth/auth_unix.c index 4f44767a81a..efab2046c36 100644 --- a/source/auth/auth_unix.c +++ b/source/auth/auth_unix.c @@ -130,3 +130,7 @@ NTSTATUS auth_init_unix(struct auth_context *auth_context, const char* param, au return NT_STATUS_OK; } +int auth_unix_init(void) +{ + return smb_register_auth("unix", auth_init_unix, AUTH_INTERFACE_VERSION); +} diff --git a/source/auth/auth_winbind.c b/source/auth/auth_winbind.c index 5e1567d3c19..e2a292dd015 100644 --- a/source/auth/auth_winbind.c +++ b/source/auth/auth_winbind.c @@ -134,3 +134,8 @@ NTSTATUS auth_init_winbind(struct auth_context *auth_context, const char *param, (*auth_method)->auth = check_winbind_security; return NT_STATUS_OK; } + +int auth_winbind_init(void) +{ + return smb_register_auth("winbind", auth_init_winbind, AUTH_INTERFACE_VERSION); +} diff --git a/source/configure.in b/source/configure.in index 0c8301d1dae..4a1ed3ab4b6 100644 --- a/source/configure.in +++ b/source/configure.in @@ -239,7 +239,7 @@ AC_VALIDATE_CACHE_SYSTEM_TYPE DYNEXP= dnl Add modules that have to be built by default here -default_modules="pdb_smbpasswd pdb_tdbsam pdb_unix rpc_lsa rpc_samr rpc_reg rpc_wks rpc_net rpc_dfs rpc_srv rpc_spoolss" +default_modules="pdb_smbpasswd pdb_tdbsam pdb_unix rpc_lsa rpc_samr rpc_reg rpc_wks rpc_net rpc_dfs rpc_srv rpc_spoolss auth_rhosts auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin" # # Config CPPFLAG settings for strange OS's that must be set @@ -3377,10 +3377,10 @@ SMB_MODULE(pdb_guest, passdb/pdb_guest.o, bin/guest.so, PDB) SMB_SUBSYSTEM(PDB) SMB_MODULE(rpc_lsa, \$(RPC_LSA_OBJ), bin/librpc_lsarpc.so, RPC) -SMB_MODULE(rpc_reg, \$(RPC_REG_OBJ), bin/librpc_reg.so, RPC) -SMB_MODULE(rpc_wks, \$(RPC_WKS_OBJ), bin/librpc_wks.so, RPC) -SMB_MODULE(rpc_net, \$(RPC_NETLOG_OBJ), bin/librpc_netlog.so, RPC) -SMB_MODULE(rpc_dfs, \$(RPC_DFS_OBJ), bin/librpc_dfs.so, RPC) +SMB_MODULE(rpc_reg, \$(RPC_REG_OBJ), bin/librpc_winreg.so, RPC) +SMB_MODULE(rpc_wks, \$(RPC_WKS_OBJ), bin/librpc_wkssvc.so, RPC) +SMB_MODULE(rpc_net, \$(RPC_NETLOG_OBJ), bin/librpc_NETLOGON.so, RPC) +SMB_MODULE(rpc_dfs, \$(RPC_DFS_OBJ), bin/librpc_netdfs.so, RPC) SMB_MODULE(rpc_srv, \$(RPC_SVC_OBJ), bin/librpc_srvsvc.so, RPC) SMB_MODULE(rpc_spoolss, \$(RPC_SPOOLSS_OBJ), bin/librpc_spoolss.so, RPC) SMB_MODULE(rpc_samr, \$(RPC_SAMR_OBJ), bin/librpc_samr.so, RPC) @@ -3389,6 +3389,15 @@ SMB_SUBSYSTEM(RPC) SMB_MODULE(charset_weird, modules/developer.o, bin/developer.so, CHARSET) SMB_SUBSYSTEM(CHARSET) +SMB_MODULE(auth_rhosts, auth/auth_rhosts.o, bin/rhosts.so, AUTH) +SMB_MODULE(auth_sam, auth/auth_sam.o, bin/sam.so, AUTH) +SMB_MODULE(auth_unix, auth/auth_unix.o, bin/unix.so, AUTH) +SMB_MODULE(auth_winbind, auth/auth_winbind.o, bin/winbind.so, AUTH) +SMB_MODULE(auth_server, auth/auth_server.o, bin/server.so, AUTH) +SMB_MODULE(auth_domain, auth/auth_domain.o, bin/domain.so, AUTH) +SMB_MODULE(auth_builtin, auth/auth_builtin.o, bin/builtin.so, AUTH) +SMB_SUBSYSTEM(AUTH) + ################################################# # do extra things if we are running insure diff --git a/source/include/auth.h b/source/include/auth.h index e37f181082e..626b9f3ba04 100644 --- a/source/include/auth.h +++ b/source/include/auth.h @@ -148,6 +148,8 @@ struct auth_init_function_entry { /* Function to create a member of the authmethods list */ auth_init_function init; + + struct auth_init_function_entry *prev, *next; }; typedef struct auth_ntlmssp_state @@ -158,4 +160,6 @@ typedef struct auth_ntlmssp_state struct ntlmssp_state *ntlmssp_state; } AUTH_NTLMSSP_STATE; +#define AUTH_INTERFACE_VERSION 1 + #endif /* _SMBAUTH_H_ */ -- cgit From c458179d21465165705e6c035776698cb824baf5 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Tue, 25 Mar 2003 04:19:04 +0000 Subject: win9x was suffered a case of the blues during a domain logon. For some reason, explicitly setting the service type during the tcon&X fixes this. --- source/smbd/reply.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/source/smbd/reply.c b/source/smbd/reply.c index 715bace152d..1a1c84efed5 100644 --- a/source/smbd/reply.c +++ b/source/smbd/reply.c @@ -272,9 +272,22 @@ int reply_tcon_and_X(connection_struct *conn, char *inbuf,char *outbuf,int lengt } else { /* NT sets the fstype of IPC$ to the null string */ const char *fsname = IS_IPC(conn) ? "" : lp_fstype(SNUM(conn)); + const char *devicetype; set_message(outbuf,3,0,True); - + + if ( IS_IPC(conn) ) + devicetype = "IPC"; + else if ( IS_PRINT(conn) ) + devicetype = "LPT:"; + else + devicetype = "A:"; + + p = smb_buf(outbuf); + p += srvstr_push(outbuf, p, IS_IPC(conn) ? "IPC" : devicetype, -1, + STR_TERMINATE|STR_ASCII); + p += srvstr_push(outbuf, p, fsname, -1, + STR_TERMINATE); p = smb_buf(outbuf); p += srvstr_push(outbuf, p, IS_IPC(conn) ? "IPC" : devicename, -1, STR_TERMINATE|STR_ASCII); -- cgit From 12fabd07148c21f5481cb750f1cfdab2e8112e4b Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Tue, 25 Mar 2003 07:54:34 +0000 Subject: Apply metze's change correctly this time. Playing 'patch' by hand can be somewhat error-prone.. Volker --- source/passdb/pdb_ldap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/passdb/pdb_ldap.c b/source/passdb/pdb_ldap.c index a7a168fe64b..c54095b2506 100644 --- a/source/passdb/pdb_ldap.c +++ b/source/passdb/pdb_ldap.c @@ -2187,6 +2187,12 @@ static BOOL init_group_from_ldap(struct ldapsam_privates *ldap_state, temp)) { DEBUG(3, ("Attribute displayName not found\n")); temp[0] = '\0'; + if (!get_single_attribute(ldap_state->ldap_struct, entry, "cn", + temp)) { + DEBUG(0, ("Attributes cn not found either " + "for gidNumber(%i)\n",map->gid)); + return False; + } } fstrcpy(map->nt_name, temp); @@ -2194,12 +2200,6 @@ static BOOL init_group_from_ldap(struct ldapsam_privates *ldap_state, temp)) { DEBUG(3, ("Attribute description not found\n")); temp[0] = '\0'; - if (!get_single_attribute(ldap_state->ldap_struct, entry, "cn", - temp)) { - DEBUG(0, ("Attributes cn not found either " - "for gidNumber(%i)\n",map->gid)); - return False; - } } fstrcpy(map->comment, temp); -- cgit From 34934d2edf0d575fae7d729fe4d8d3ab034a544f Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 25 Mar 2003 07:55:10 +0000 Subject: Make these functions static, keep them out of proto. --- source/modules/vfs_recycle.c | 2 +- source/modules/xml.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/modules/vfs_recycle.c b/source/modules/vfs_recycle.c index a99a593caf6..ba453bad2cb 100644 --- a/source/modules/vfs_recycle.c +++ b/source/modules/vfs_recycle.c @@ -610,7 +610,7 @@ static int recycle_unlink(connection_struct *conn, const char *file_name) final_name = NULL; asprintf(&final_name, "%s/%s", temp_name, base); ALLOC_CHECK(final_name, done); - DEBUG(10, ("recycle.bin: recycled file name%s\n", temp_name)); /* new filename with path */ + DEBUG(10, ("recycle.bin: recycled file name: %s\n", temp_name)); /* new filename with path */ /* check if we should delete file from recycle bin */ if (recycle_file_exist(conn, final_name)) { diff --git a/source/modules/xml.c b/source/modules/xml.c index 85b9e81b7f1..1a4aeeeac05 100644 --- a/source/modules/xml.c +++ b/source/modules/xml.c @@ -47,7 +47,7 @@ static char * iota(int a) { return tmp; } -BOOL parsePass(xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur, SAM_ACCOUNT * u) +static BOOL parsePass(xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur, SAM_ACCOUNT * u) { pstring temp; @@ -76,7 +76,7 @@ BOOL parsePass(xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur, SAM_ACCOUNT * u) return True; } -BOOL parseUser(xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur, SAM_ACCOUNT * u) +static BOOL parseUser(xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur, SAM_ACCOUNT * u) { char *tmp; DOM_SID sid; @@ -245,7 +245,7 @@ typedef struct pdb_xml { xmlNsPtr ns; } pdb_xml; -xmlNodePtr parseSambaXMLFile(struct pdb_xml *data) +static xmlNodePtr parseSambaXMLFile(struct pdb_xml *data) { xmlNodePtr cur; -- cgit From 44d9062f91d13b43b1e78c30931a017031f17116 Mon Sep 17 00:00:00 2001 From: Alexander Bokovoy Date: Tue, 25 Mar 2003 09:46:57 +0000 Subject: Fix missing tag pairs --- docs/docbook/faq/errors.sgml | 4 ++-- docs/docbook/faq/printing.sgml | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/docbook/faq/errors.sgml b/docs/docbook/faq/errors.sgml index 905e7c92c22..97619ce704c 100644 --- a/docs/docbook/faq/errors.sgml +++ b/docs/docbook/faq/errors.sgml @@ -49,7 +49,7 @@ the samba HOWTO Collection Windows NT in the chapter "Portability" of the samba HOWTO collection - + @@ -62,7 +62,7 @@ the program always prompts for the password if the server is a Samba server. It also ignores the "-N" argument when querying some (but not all) of our NT servers. - + No, it does not ignore -N, it is just that your server rejected the null password in the connection, so smbclient prompts for a password diff --git a/docs/docbook/faq/printing.sgml b/docs/docbook/faq/printing.sgml index cc01a5d3b01..4a58c385bb2 100644 --- a/docs/docbook/faq/printing.sgml +++ b/docs/docbook/faq/printing.sgml @@ -20,6 +20,7 @@ setdriver expects the following setup: Use adddriver (with appropriate parameters) to create the driver. note, this will not just update samba's notion of drivers, it will also move the files from the w32x86 and win40 directories to an appropriate subdirectory (based on driver version, I think, but not important enough for me to find out) Use setdriver to associate the driver with a printer + The setdriver call will fail if the printer doesn't already exist in -- cgit From 8e3f300f21e23b7e6b68ddcc45d581a962cd8aa4 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Tue, 25 Mar 2003 09:47:52 +0000 Subject: Make auth.c compile again. I'm not sure what this does though... Volker --- source/auth/auth.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/auth/auth.c b/source/auth/auth.c index 4416f93fba0..f9df255595d 100644 --- a/source/auth/auth.c +++ b/source/auth/auth.c @@ -361,13 +361,14 @@ static NTSTATUS make_auth_context_text_list(struct auth_context **auth_context, } for (;*text_list; text_list++) { - DEBUG(5,("make_auth_context_text_list: Attempting to find an auth method to match %s\n", - *text_list)); struct auth_init_function_entry *entry; char *module_name = smb_xstrdup(*text_list); char *module_params = NULL; char *p; + DEBUG(5,("make_auth_context_text_list: Attempting to find an auth method to match %s\n", + *text_list)); + p = strchr(module_name, ':'); if (p) { *p = 0; -- cgit From 5562f1865c90e3f52a3178d9d9ded60909bbe5f0 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 25 Mar 2003 10:29:22 +0000 Subject: Fix debug (thanks metze) Andrew Bartlett --- source/libsmb/ntlmssp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libsmb/ntlmssp.c b/source/libsmb/ntlmssp.c index 0cd1ac33ec2..d54655d17f7 100644 --- a/source/libsmb/ntlmssp.c +++ b/source/libsmb/ntlmssp.c @@ -385,7 +385,7 @@ NTSTATUS ntlmssp_server_update(NTLMSSP_STATE *ntlmssp_state, } else if (ntlmssp_command == NTLMSSP_AUTH) { return ntlmssp_server_auth(ntlmssp_state, request, reply); } else { - DEBUG(1, ("unknown NTLMSSP command %u\n", ntlmssp_command, ntlmssp_state->expected_state)); + DEBUG(1, ("unknown NTLMSSP command %u, expected %u\n", ntlmssp_command, ntlmssp_state->expected_state)); return NT_STATUS_INVALID_PARAMETER; } } -- cgit From 37ee8aecf4ae570c3d08e9fa94724bc9c917108f Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 10:37:58 +0000 Subject: We need to 'preprocess' in popt_common_samba as well --- source/lib/popt_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/lib/popt_common.c b/source/lib/popt_common.c index edd54c13d59..6920ef4d5f0 100644 --- a/source/lib/popt_common.c +++ b/source/lib/popt_common.c @@ -123,7 +123,7 @@ struct poptOption popt_common_connection[] = { }; struct poptOption popt_common_samba[] = { - { NULL, 0, POPT_ARG_CALLBACK, popt_common_callback }, + { NULL, 0, POPT_ARG_CALLBACK|POPT_CBFLAG_PRE, popt_common_callback }, { "debuglevel", 'd', POPT_ARG_STRING, NULL, 'd', "Set debug level", "DEBUGLEVEL" }, { "configfile", 's', POPT_ARG_STRING, NULL, 's', "Use alternative configuration file", "CONFIGFILE" }, { "log-basename", 'l', POPT_ARG_STRING, NULL, 'l', "Basename for log/debug files", "LOGFILEBASE" }, -- cgit From 0f724be38439af9284e51b7b9b8605e8956e51ba Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 12:05:23 +0000 Subject: Remove obsolete defines (because of new modules system). We need a way to track which modules have been builtin --- source/smbd/build_options.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/source/smbd/build_options.c b/source/smbd/build_options.c index da5accebab6..bedfb5ef73d 100644 --- a/source/smbd/build_options.c +++ b/source/smbd/build_options.c @@ -104,15 +104,6 @@ void build_options(BOOL screen) #ifdef WITH_PAM output(screen," WITH_PAM\n"); #endif -#ifdef WITH_TDB_SAM - output(screen," WITH_TDB_SAM\n"); -#endif -#ifdef WITH_SMBPASSWD_SAM - output(screen," WITH_SMBPASSWD_SAM\n"); -#endif -#ifdef WITH_NISPLUS_SAM - output(screen," WITH_NISPLUS_SAM\n"); -#endif #ifdef WITH_NISPLUS_HOME output(screen," WITH_NISPLUS_HOME\n"); #endif -- cgit From 3a2ed0da40c9709cdae061927f44a38f58e44df0 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 12:27:09 +0000 Subject: Print list of builtin modules in 'smbd -b' --- source/aclocal.m4 | 1 + source/configure.in | 2 ++ source/smbd/build_options.c | 3 +++ 3 files changed, 6 insertions(+) diff --git a/source/aclocal.m4 b/source/aclocal.m4 index 5d9070fcd99..744acf6a1b6 100644 --- a/source/aclocal.m4 +++ b/source/aclocal.m4 @@ -55,6 +55,7 @@ AC_DEFUN(SMB_MODULE, AC_MSG_RESULT([shared]) elif test x"$DEST" = xSTATIC; then [init_static_modules_]translit([$4], [A-Z], [a-z])="$[init_static_modules_]translit([$4], [A-Z], [a-z]) $1_init();" + string_static_modules="$string_static_modules $1" $4_STATIC="$$4_STATIC $2" AC_SUBST($4_STATIC) AC_MSG_RESULT([static]) diff --git a/source/configure.in b/source/configure.in index 4a1ed3ab4b6..a6d078c8ce4 100644 --- a/source/configure.in +++ b/source/configure.in @@ -3398,6 +3398,8 @@ SMB_MODULE(auth_domain, auth/auth_domain.o, bin/domain.so, AUTH) SMB_MODULE(auth_builtin, auth/auth_builtin.o, bin/builtin.so, AUTH) SMB_SUBSYSTEM(AUTH) +AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules]) + ################################################# # do extra things if we are running insure diff --git a/source/smbd/build_options.c b/source/smbd/build_options.c index bedfb5ef73d..43335666a63 100644 --- a/source/smbd/build_options.c +++ b/source/smbd/build_options.c @@ -523,6 +523,9 @@ void build_options(BOOL screen) output(screen," sizeof(uint32): %d\n",sizeof(uint32)); output(screen," sizeof(short): %d\n",sizeof(short)); output(screen," sizeof(void*): %d\n",sizeof(void*)); + + output(screen,"\nBuiltin modules:\n"); + output(screen,"%s\n", STRING_STATIC_MODULES); } -- cgit From ec6b9e62fbfe417865e8e3b2ba7cc7473709c20e Mon Sep 17 00:00:00 2001 From: Alexander Bokovoy Date: Tue, 25 Mar 2003 13:37:36 +0000 Subject: Fixed opened-but-not-closed listitem/varlistentry for LDAPADMINDN --- docs/docbook/manpages/smb.conf.5.sgml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/docbook/manpages/smb.conf.5.sgml b/docs/docbook/manpages/smb.conf.5.sgml index 0f5e751a64f..24612d787cb 100644 --- a/docs/docbook/manpages/smb.conf.5.sgml +++ b/docs/docbook/manpages/smb.conf.5.sgml @@ -3436,6 +3436,8 @@ df $1 | tail -1 | awk '{print $2" "$4}' 8 man page for more information on how to accmplish this. + + ldap del only sam attr (G) -- cgit From 094eed2c6222fe167ee9f596f4b849a4dea234bf Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 13:40:34 +0000 Subject: Make variables static to satisfy exotic compilers --- source/utils/nmblookup.c | 4 ++-- source/utils/testparm.c | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/source/utils/nmblookup.c b/source/utils/nmblookup.c index 85f092c8b07..31c7967a076 100644 --- a/source/utils/nmblookup.c +++ b/source/utils/nmblookup.c @@ -187,8 +187,8 @@ int main(int argc,char *argv[]) int opt; unsigned int lookup_type = 0x0; fstring lookup; - BOOL find_master=False; - BOOL lookup_by_ip = False; + static BOOL find_master=False; + static BOOL lookup_by_ip = False; poptContext pc; struct poptOption long_options[] = { diff --git a/source/utils/testparm.c b/source/utils/testparm.c index 4c8a2ccf639..e8dd3c15b22 100644 --- a/source/utils/testparm.c +++ b/source/utils/testparm.c @@ -192,7 +192,6 @@ via the %%o substitution. With encrypted passwords this is not possible.\n", lp_ int s; static BOOL silent_mode = False; int ret = 0; - int opt; poptContext pc; static const char *term_code = ""; static char *new_local_machine = NULL; -- cgit From 6ab41e50fd0a36ebd9969064aa46235dc687dfba Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 13:59:55 +0000 Subject: Don't use 'opt' --- source/utils/testparm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/utils/testparm.c b/source/utils/testparm.c index e8dd3c15b22..e3d6ce02748 100644 --- a/source/utils/testparm.c +++ b/source/utils/testparm.c @@ -213,7 +213,7 @@ via the %%o substitution. With encrypted passwords this is not possible.\n", lp_ POPT_CONTEXT_KEEP_FIRST); poptSetOtherOptionHelp(pc, "[OPTION...] [host-name] [host-ip]"); - while((opt = poptGetNextOpt(pc)) != -1); + while(poptGetNextOpt(pc) != -1); setup_logging(poptGetArg(pc), True); -- cgit From 71b05cd14ae6df8340730e7bad1c783dc278c5d3 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 14:46:11 +0000 Subject: - Support building all auth modules as .so's - Change 2 variable names to avoid conflicts (patch by Stephan Kulow ) --- source/Makefile.in | 41 +++++++++++++++++++++++-- source/auth/auth_domain.c | 2 +- source/configure.in | 14 ++++----- source/libads/ldap.c | 66 ++++++++++++++++++++-------------------- source/libads/ldap_utils.c | 10 +++---- source/rpc_parse/parse_misc.c | 70 +++++++++++++++++++++---------------------- source/smbd/process.c | 2 +- 7 files changed, 120 insertions(+), 85 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index daf495c25ec..95a4cee98f3 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -295,9 +295,16 @@ PLAINTEXT_AUTH_OBJ = auth/pampass.o auth/pass_check.o UNIGRP_OBJ = libsmb/netlogon_unigrp.o -AUTH_OBJ = auth/auth.o auth/auth_sam.o auth/auth_server.o auth/auth_domain.o \ - auth/auth_rhosts.o auth/auth_unix.o auth/auth_util.o auth/auth_winbind.o \ - auth/auth_builtin.o auth/auth_compat.o auth/auth_ntlmssp.o \ +AUTH_BUILTIN_OBJ = auth/auth_builtin.o +AUTH_DOMAIN_OBJ = auth/auth_domain.o +AUTH_SAM_OBJ = auth/auth_sam.o +AUTH_RHOSTS_OBJ = auth/auth_rhosts.o +AUTH_SERVER_OBJ = auth/auth_server.o +AUTH_UNIX_OBJ = auth/auth_unix.o +AUTH_WINBIND_OBJ = auth/auth_winbind.o + +AUTH_OBJ = auth/auth.o @AUTH_STATIC@ auth/auth_util.o auth/auth_compat.o \ + auth/auth_ntlmssp.o \ $(PLAINTEXT_AUTH_OBJ) $(UNIGRP_OBJ) MANGLE_OBJ = smbd/mangle.o smbd/mangle_hash.o smbd/mangle_map.o smbd/mangle_hash2.o @@ -945,6 +952,34 @@ nsswitch/pam_winbind.@SHLIBEXT@: $(PAM_WINBIND_OBJ) bin/.dummy @$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_WINBIND_OBJ) \ @SONAMEFLAG@`basename $@` -lpam +bin/rhosts.@SHLIBEXT@: $(AUTH_RHOSTS_OBJ) + @echo "Building plugin $@" + @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_RHOSTS_OBJ) @SONAMEFLAG@`basename $@` + +bin/builtin.@SHLIBEXT@: $(AUTH_BUILTIN_OBJ) + @echo "Building plugin $@" + @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_BUILTIN_OBJ) @SONAMEFLAG@`basename $@` + +bin/domain.@SHLIBEXT@: $(AUTH_DOMAIN_OBJ) + @echo "Building plugin $@" + @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_DOMAIN_OBJ) @SONAMEFLAG@`basename $@` + +bin/server.@SHLIBEXT@: $(AUTH_SERVER_OBJ) + @echo "Building plugin $@" + @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_SERVER_OBJ) @SONAMEFLAG@`basename $@` + +bin/winbind.@SHLIBEXT@: $(AUTH_WINBIND_OBJ) + @echo "Building plugin $@" + @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_WINBIND_OBJ) @SONAMEFLAG@`basename $@` + +bin/unix.@SHLIBEXT@: $(AUTH_UNIX_OBJ) + @echo "Building plugin $@" + @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_UNIX_OBJ) @SONAMEFLAG@`basename $@` + +bin/sam.@SHLIBEXT@: $(AUTH_SAM_OBJ) + @echo "Building plugin $@" + @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_SAM_OBJ) @SONAMEFLAG@`basename $@` + bin/mysql.@SHLIBEXT@: $(MYSQL_OBJ) @echo "Building plugin $@" @$(SHLD) $(LDSHFLAGS) -o $@ $(MYSQL_OBJ) @MYSQL_LIBS@ \ diff --git a/source/auth/auth_domain.c b/source/auth/auth_domain.c index 9ca2f4e1905..256c4532edc 100644 --- a/source/auth/auth_domain.c +++ b/source/auth/auth_domain.c @@ -24,7 +24,7 @@ #undef DBGC_CLASS #define DBGC_CLASS DBGC_AUTH -BOOL global_machine_password_needs_changing = False; +extern BOOL global_machine_password_needs_changing; extern userdom_struct current_user_info; diff --git a/source/configure.in b/source/configure.in index a6d078c8ce4..3b940f08d94 100644 --- a/source/configure.in +++ b/source/configure.in @@ -3389,13 +3389,13 @@ SMB_SUBSYSTEM(RPC) SMB_MODULE(charset_weird, modules/developer.o, bin/developer.so, CHARSET) SMB_SUBSYSTEM(CHARSET) -SMB_MODULE(auth_rhosts, auth/auth_rhosts.o, bin/rhosts.so, AUTH) -SMB_MODULE(auth_sam, auth/auth_sam.o, bin/sam.so, AUTH) -SMB_MODULE(auth_unix, auth/auth_unix.o, bin/unix.so, AUTH) -SMB_MODULE(auth_winbind, auth/auth_winbind.o, bin/winbind.so, AUTH) -SMB_MODULE(auth_server, auth/auth_server.o, bin/server.so, AUTH) -SMB_MODULE(auth_domain, auth/auth_domain.o, bin/domain.so, AUTH) -SMB_MODULE(auth_builtin, auth/auth_builtin.o, bin/builtin.so, AUTH) +SMB_MODULE(auth_rhosts, \$(AUTH_RHOSTS_OBJ), bin/rhosts.so, AUTH) +SMB_MODULE(auth_sam, \$(AUTH_SAM_OBJ), bin/sam.so, AUTH) +SMB_MODULE(auth_unix, \$(AUTH_UNIX_OBJ), bin/unix.so, AUTH) +SMB_MODULE(auth_winbind, \$(AUTH_WINBIND_OBJ), bin/winbind.so, AUTH) +SMB_MODULE(auth_server, \$(AUTH_SERVER_OBJ), bin/server.so, AUTH) +SMB_MODULE(auth_domain, \$(AUTH_DOMAIN_OBJ), bin/domain.so, AUTH) +SMB_MODULE(auth_builtin, \$(AUTH_BUILTIN_OBJ), bin/builtin.so, AUTH) SMB_SUBSYSTEM(AUTH) AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules]) diff --git a/source/libads/ldap.c b/source/libads/ldap.c index 67827d27f3a..baedfb28dbb 100644 --- a/source/libads/ldap.c +++ b/source/libads/ldap.c @@ -401,7 +401,7 @@ static char **ads_pull_strvals(TALLOC_CTX *ctx, const char **in_vals) * @param ads connection to ads server * @param bind_path Base dn for the search * @param scope Scope of search (LDAP_BASE | LDAP_ONE | LDAP_SUBTREE) - * @param exp Search expression - specified in local charset + * @param expr Search expression - specified in local charset * @param attrs Attributes to retrieve - specified in utf8 or ascii * @param res ** which will contain results - free res* with ads_msgfree() * @param count Number of entries retrieved on this page @@ -409,12 +409,12 @@ static char **ads_pull_strvals(TALLOC_CTX *ctx, const char **in_vals) * @return status of search **/ ADS_STATUS ads_do_paged_search(ADS_STRUCT *ads, const char *bind_path, - int scope, const char *exp, + int scope, const char *expr, const char **attrs, void **res, int *count, void **cookie) { int rc, i, version; - char *utf8_exp, *utf8_path, **search_attrs; + char *utf8_expr, *utf8_path, **search_attrs; LDAPControl PagedResults, NoReferrals, *controls[3], **rcontrols; BerElement *cookie_be = NULL; struct berval *cookie_bv= NULL; @@ -428,7 +428,7 @@ ADS_STATUS ads_do_paged_search(ADS_STRUCT *ads, const char *bind_path, /* 0 means the conversion worked but the result was empty so we only fail if it's -1. In any case, it always at least nulls out the dest */ - if ((push_utf8_talloc(ctx, &utf8_exp, exp) == (size_t)-1) || + if ((push_utf8_talloc(ctx, &utf8_expr, expr) == (size_t)-1) || (push_utf8_talloc(ctx, &utf8_path, bind_path) == (size_t)-1)) { rc = LDAP_NO_MEMORY; goto done; @@ -489,7 +489,7 @@ ADS_STATUS ads_do_paged_search(ADS_STRUCT *ads, const char *bind_path, */ ldap_set_option(ads->ld, LDAP_OPT_REFERRALS, LDAP_OPT_OFF); - rc = ldap_search_ext_s(ads->ld, utf8_path, scope, utf8_exp, + rc = ldap_search_ext_s(ads->ld, utf8_path, scope, utf8_expr, search_attrs, 0, controls, NULL, NULL, LDAP_NO_LIMIT, (LDAPMessage **)res); @@ -497,7 +497,7 @@ ADS_STATUS ads_do_paged_search(ADS_STRUCT *ads, const char *bind_path, ber_bvfree(cookie_bv); if (rc) { - DEBUG(3,("ldap_search_ext_s(%s) -> %s\n", exp, ldap_err2string(rc))); + DEBUG(3,("ldap_search_ext_s(%s) -> %s\n", expr, ldap_err2string(rc))); goto done; } @@ -541,20 +541,20 @@ done: * @param ads connection to ads server * @param bind_path Base dn for the search * @param scope Scope of search (LDAP_BASE | LDAP_ONE | LDAP_SUBTREE) - * @param exp Search expression + * @param expr Search expression * @param attrs Attributes to retrieve * @param res ** which will contain results - free res* with ads_msgfree() * @return status of search **/ ADS_STATUS ads_do_search_all(ADS_STRUCT *ads, const char *bind_path, - int scope, const char *exp, + int scope, const char *expr, const char **attrs, void **res) { void *cookie = NULL; int count = 0; ADS_STATUS status; - status = ads_do_paged_search(ads, bind_path, scope, exp, attrs, res, + status = ads_do_paged_search(ads, bind_path, scope, expr, attrs, res, &count, &cookie); if (!ADS_ERR_OK(status)) return status; @@ -564,7 +564,7 @@ ADS_STATUS ads_do_search_all(ADS_STRUCT *ads, const char *bind_path, ADS_STATUS status2; LDAPMessage *msg, *next; - status2 = ads_do_paged_search(ads, bind_path, scope, exp, + status2 = ads_do_paged_search(ads, bind_path, scope, expr, attrs, &res2, &count, &cookie); if (!ADS_ERR_OK(status2)) break; @@ -588,14 +588,14 @@ ADS_STATUS ads_do_search_all(ADS_STRUCT *ads, const char *bind_path, * @param ads connection to ads server * @param bind_path Base dn for the search * @param scope Scope of search (LDAP_BASE | LDAP_ONE | LDAP_SUBTREE) - * @param exp Search expression - specified in local charset + * @param expr Search expression - specified in local charset * @param attrs Attributes to retrieve - specified in UTF-8 or ascii * @param fn Function which takes attr name, values list, and data_area * @param data_area Pointer which is passed to function on each call * @return status of search **/ ADS_STATUS ads_do_search_all_fn(ADS_STRUCT *ads, const char *bind_path, - int scope, const char *exp, const char **attrs, + int scope, const char *expr, const char **attrs, BOOL(*fn)(char *, void **, void *), void *data_area) { @@ -604,7 +604,7 @@ ADS_STATUS ads_do_search_all_fn(ADS_STRUCT *ads, const char *bind_path, ADS_STATUS status; void *res; - status = ads_do_paged_search(ads, bind_path, scope, exp, attrs, &res, + status = ads_do_paged_search(ads, bind_path, scope, expr, attrs, &res, &count, &cookie); if (!ADS_ERR_OK(status)) return status; @@ -613,7 +613,7 @@ ADS_STATUS ads_do_search_all_fn(ADS_STRUCT *ads, const char *bind_path, ads_msgfree(ads, res); while (cookie) { - status = ads_do_paged_search(ads, bind_path, scope, exp, attrs, + status = ads_do_paged_search(ads, bind_path, scope, expr, attrs, &res, &count, &cookie); if (!ADS_ERR_OK(status)) break; @@ -630,18 +630,18 @@ ADS_STATUS ads_do_search_all_fn(ADS_STRUCT *ads, const char *bind_path, * @param ads connection to ads server * @param bind_path Base dn for the search * @param scope Scope of search (LDAP_BASE | LDAP_ONE | LDAP_SUBTREE) - * @param exp Search expression + * @param expr Search expression * @param attrs Attributes to retrieve * @param res ** which will contain results - free res* with ads_msgfree() * @return status of search **/ ADS_STATUS ads_do_search(ADS_STRUCT *ads, const char *bind_path, int scope, - const char *exp, + const char *expr, const char **attrs, void **res) { struct timeval timeout; int rc; - char *utf8_exp, *utf8_path, **search_attrs = NULL; + char *utf8_expr, *utf8_path, **search_attrs = NULL; TALLOC_CTX *ctx; if (!(ctx = talloc_init("ads_do_search"))) { @@ -652,7 +652,7 @@ ADS_STATUS ads_do_search(ADS_STRUCT *ads, const char *bind_path, int scope, /* 0 means the conversion worked but the result was empty so we only fail if it's negative. In any case, it always at least nulls out the dest */ - if ((push_utf8_talloc(ctx, &utf8_exp, exp) == (size_t)-1) || + if ((push_utf8_talloc(ctx, &utf8_expr, expr) == (size_t)-1) || (push_utf8_talloc(ctx, &utf8_path, bind_path) == (size_t)-1)) { DEBUG(1,("ads_do_search: push_utf8_talloc() failed!")); rc = LDAP_NO_MEMORY; @@ -679,7 +679,7 @@ ADS_STATUS ads_do_search(ADS_STRUCT *ads, const char *bind_path, int scope, /* see the note in ads_do_paged_search - we *must* disable referrals */ ldap_set_option(ads->ld, LDAP_OPT_REFERRALS, LDAP_OPT_OFF); - rc = ldap_search_ext_s(ads->ld, utf8_path, scope, utf8_exp, + rc = ldap_search_ext_s(ads->ld, utf8_path, scope, utf8_expr, search_attrs, 0, NULL, NULL, &timeout, LDAP_NO_LIMIT, (LDAPMessage **)res); @@ -698,16 +698,16 @@ ADS_STATUS ads_do_search(ADS_STRUCT *ads, const char *bind_path, int scope, * Do a general ADS search * @param ads connection to ads server * @param res ** which will contain results - free res* with ads_msgfree() - * @param exp Search expression + * @param expr Search expression * @param attrs Attributes to retrieve * @return status of search **/ ADS_STATUS ads_search(ADS_STRUCT *ads, void **res, - const char *exp, + const char *expr, const char **attrs) { return ads_do_search(ads, ads->config.bind_path, LDAP_SCOPE_SUBTREE, - exp, attrs, res); + expr, attrs, res); } /** @@ -772,18 +772,18 @@ char *ads_get_dn(ADS_STRUCT *ads, void *res) ADS_STATUS ads_find_machine_acct(ADS_STRUCT *ads, void **res, const char *host) { ADS_STATUS status; - char *exp; + char *expr; const char *attrs[] = {"*", "nTSecurityDescriptor", NULL}; /* the easiest way to find a machine account anywhere in the tree is to look for hostname$ */ - if (asprintf(&exp, "(samAccountName=%s$)", host) == -1) { + if (asprintf(&expr, "(samAccountName=%s$)", host) == -1) { DEBUG(1, ("asprintf failed!\n")); return ADS_ERROR_NT(NT_STATUS_NO_MEMORY); } - status = ads_search(ads, res, exp, attrs); - free(exp); + status = ads_search(ads, res, expr, attrs); + free(expr); return status; } @@ -1424,7 +1424,7 @@ ADS_STATUS ads_leave_realm(ADS_STRUCT *ads, const char *hostname) ADS_STATUS ads_set_machine_sd(ADS_STRUCT *ads, const char *hostname, char *dn) { const char *attrs[] = {"nTSecurityDescriptor", "objectSid", 0}; - char *exp = 0; + char *expr = 0; size_t sd_size = 0; struct berval bval = {0, NULL}; prs_struct ps_wire; @@ -1452,7 +1452,7 @@ ADS_STATUS ads_set_machine_sd(ADS_STRUCT *ads, const char *hostname, char *dn) return ADS_ERROR_NT(NT_STATUS_NO_MEMORY); } - if (asprintf(&exp, "(samAccountName=%s$)", escaped_hostname) == -1) { + if (asprintf(&expr, "(samAccountName=%s$)", escaped_hostname) == -1) { DEBUG(1, ("ads_set_machine_sd: asprintf failed!\n")); SAFE_FREE(escaped_hostname); return ADS_ERROR_NT(NT_STATUS_NO_MEMORY); @@ -1460,7 +1460,7 @@ ADS_STATUS ads_set_machine_sd(ADS_STRUCT *ads, const char *hostname, char *dn) SAFE_FREE(escaped_hostname); - ret = ads_search(ads, (void *) &res, exp, attrs); + ret = ads_search(ads, (void *) &res, expr, attrs); if (!ADS_ERR_OK(ret)) return ret; @@ -2036,7 +2036,7 @@ but you need to force the bind path to match the configurationNamingContext from */ ADS_STATUS ads_workgroup_name(ADS_STRUCT *ads, TALLOC_CTX *mem_ctx, char **workgroup) { - char *exp; + char *expr; ADS_STATUS rc; char **principles; char *prefix; @@ -2047,10 +2047,10 @@ ADS_STATUS ads_workgroup_name(ADS_STRUCT *ads, TALLOC_CTX *mem_ctx, char **workg (*workgroup) = NULL; - asprintf(&exp, "(&(objectclass=computer)(dnshostname=%s.%s))", + asprintf(&expr, "(&(objectclass=computer)(dnshostname=%s.%s))", ads->config.ldap_server_name, ads->config.realm); - rc = ads_search(ads, &res, exp, attrs); - free(exp); + rc = ads_search(ads, &res, expr, attrs); + free(expr); if (!ADS_ERR_OK(rc)) { return rc; diff --git a/source/libads/ldap_utils.c b/source/libads/ldap_utils.c index 907f7c8aff5..68556002880 100644 --- a/source/libads/ldap_utils.c +++ b/source/libads/ldap_utils.c @@ -28,7 +28,7 @@ this is supposed to catch dropped connections and auto-reconnect */ ADS_STATUS ads_do_search_retry(ADS_STRUCT *ads, const char *bind_path, int scope, - const char *exp, + const char *expr, const char **attrs, void **res) { ADS_STATUS status; @@ -46,10 +46,10 @@ ADS_STATUS ads_do_search_retry(ADS_STRUCT *ads, const char *bind_path, int scope return ADS_ERROR_NT(NT_STATUS_NO_MEMORY); while (count--) { - status = ads_do_search_all(ads, bp, scope, exp, attrs, res); + status = ads_do_search_all(ads, bp, scope, expr, attrs, res); if (ADS_ERR_OK(status)) { DEBUG(5,("Search for %s gave %d replies\n", - exp, ads_count_replies(ads, *res))); + expr, ads_count_replies(ads, *res))); free(bp); return status; } @@ -79,11 +79,11 @@ ADS_STATUS ads_do_search_retry(ADS_STRUCT *ads, const char *bind_path, int scope ADS_STATUS ads_search_retry(ADS_STRUCT *ads, void **res, - const char *exp, + const char *expr, const char **attrs) { return ads_do_search_retry(ads, ads->config.bind_path, LDAP_SCOPE_SUBTREE, - exp, attrs, res); + expr, attrs, res); } ADS_STATUS ads_search_retry_dn(ADS_STRUCT *ads, void **res, diff --git a/source/rpc_parse/parse_misc.c b/source/rpc_parse/parse_misc.c index b7b0e9346b5..a39e3391bbe 100644 --- a/source/rpc_parse/parse_misc.c +++ b/source/rpc_parse/parse_misc.c @@ -1289,22 +1289,22 @@ void init_dom_rid4(DOM_RID4 *rid4, uint16 unknown, uint16 attr, uint32 rid) Inits a DOM_CLNT_SRV structure. ********************************************************************/ -static void init_clnt_srv(DOM_CLNT_SRV *log, const char *logon_srv, const char *comp_name) +static void init_clnt_srv(DOM_CLNT_SRV *dlog, const char *logon_srv, const char *comp_name) { DEBUG(5,("init_clnt_srv: %d\n", __LINE__)); if (logon_srv != NULL) { - log->undoc_buffer = 1; - init_unistr2(&log->uni_logon_srv, logon_srv, strlen(logon_srv)+1); + dlog->undoc_buffer = 1; + init_unistr2(&dlog->uni_logon_srv, logon_srv, strlen(logon_srv)+1); } else { - log->undoc_buffer = 0; + dlog->undoc_buffer = 0; } if (comp_name != NULL) { - log->undoc_buffer2 = 1; - init_unistr2(&log->uni_comp_name, comp_name, strlen(comp_name)+1); + dlog->undoc_buffer2 = 1; + init_unistr2(&dlog->uni_comp_name, comp_name, strlen(comp_name)+1); } else { - log->undoc_buffer2 = 0; + dlog->undoc_buffer2 = 0; } } @@ -1312,9 +1312,9 @@ static void init_clnt_srv(DOM_CLNT_SRV *log, const char *logon_srv, const char * Inits or writes a DOM_CLNT_SRV structure. ********************************************************************/ -static BOOL smb_io_clnt_srv(const char *desc, DOM_CLNT_SRV *log, prs_struct *ps, int depth) +static BOOL smb_io_clnt_srv(const char *desc, DOM_CLNT_SRV *dlog, prs_struct *ps, int depth) { - if (log == NULL) + if (dlog == NULL) return False; prs_debug(ps, depth, desc, "smb_io_clnt_srv"); @@ -1323,22 +1323,22 @@ static BOOL smb_io_clnt_srv(const char *desc, DOM_CLNT_SRV *log, prs_struct *ps, if(!prs_align(ps)) return False; - if(!prs_uint32("undoc_buffer ", ps, depth, &log->undoc_buffer)) + if(!prs_uint32("undoc_buffer ", ps, depth, &dlog->undoc_buffer)) return False; - if (log->undoc_buffer != 0) { - if(!smb_io_unistr2("unistr2", &log->uni_logon_srv, log->undoc_buffer, ps, depth)) + if (dlog->undoc_buffer != 0) { + if(!smb_io_unistr2("unistr2", &dlog->uni_logon_srv, dlog->undoc_buffer, ps, depth)) return False; } if(!prs_align(ps)) return False; - if(!prs_uint32("undoc_buffer2", ps, depth, &log->undoc_buffer2)) + if(!prs_uint32("undoc_buffer2", ps, depth, &dlog->undoc_buffer2)) return False; - if (log->undoc_buffer2 != 0) { - if(!smb_io_unistr2("unistr2", &log->uni_comp_name, log->undoc_buffer2, ps, depth)) + if (dlog->undoc_buffer2 != 0) { + if(!smb_io_unistr2("unistr2", &dlog->uni_comp_name, dlog->undoc_buffer2, ps, depth)) return False; } @@ -1349,28 +1349,28 @@ static BOOL smb_io_clnt_srv(const char *desc, DOM_CLNT_SRV *log, prs_struct *ps, Inits a DOM_LOG_INFO structure. ********************************************************************/ -void init_log_info(DOM_LOG_INFO *log, const char *logon_srv, const char *acct_name, +void init_log_info(DOM_LOG_INFO *dlog, const char *logon_srv, const char *acct_name, uint16 sec_chan, const char *comp_name) { DEBUG(5,("make_log_info %d\n", __LINE__)); - log->undoc_buffer = 1; + dlog->undoc_buffer = 1; - init_unistr2(&log->uni_logon_srv, logon_srv, strlen(logon_srv)+1); - init_unistr2(&log->uni_acct_name, acct_name, strlen(acct_name)+1); + init_unistr2(&dlog->uni_logon_srv, logon_srv, strlen(logon_srv)+1); + init_unistr2(&dlog->uni_acct_name, acct_name, strlen(acct_name)+1); - log->sec_chan = sec_chan; + dlog->sec_chan = sec_chan; - init_unistr2(&log->uni_comp_name, comp_name, strlen(comp_name)+1); + init_unistr2(&dlog->uni_comp_name, comp_name, strlen(comp_name)+1); } /******************************************************************* Reads or writes a DOM_LOG_INFO structure. ********************************************************************/ -BOOL smb_io_log_info(const char *desc, DOM_LOG_INFO *log, prs_struct *ps, int depth) +BOOL smb_io_log_info(const char *desc, DOM_LOG_INFO *dlog, prs_struct *ps, int depth) { - if (log == NULL) + if (dlog == NULL) return False; prs_debug(ps, depth, desc, "smb_io_log_info"); @@ -1379,18 +1379,18 @@ BOOL smb_io_log_info(const char *desc, DOM_LOG_INFO *log, prs_struct *ps, int de if(!prs_align(ps)) return False; - if(!prs_uint32("undoc_buffer", ps, depth, &log->undoc_buffer)) + if(!prs_uint32("undoc_buffer", ps, depth, &dlog->undoc_buffer)) return False; - if(!smb_io_unistr2("unistr2", &log->uni_logon_srv, True, ps, depth)) + if(!smb_io_unistr2("unistr2", &dlog->uni_logon_srv, True, ps, depth)) return False; - if(!smb_io_unistr2("unistr2", &log->uni_acct_name, True, ps, depth)) + if(!smb_io_unistr2("unistr2", &dlog->uni_acct_name, True, ps, depth)) return False; - if(!prs_uint16("sec_chan", ps, depth, &log->sec_chan)) + if(!prs_uint16("sec_chan", ps, depth, &dlog->sec_chan)) return False; - if(!smb_io_unistr2("unistr2", &log->uni_comp_name, True, ps, depth)) + if(!smb_io_unistr2("unistr2", &dlog->uni_comp_name, True, ps, depth)) return False; return True; @@ -1529,21 +1529,21 @@ BOOL smb_io_clnt_info(const char *desc, DOM_CLNT_INFO *clnt, prs_struct *ps, in Inits a DOM_LOGON_ID structure. ********************************************************************/ -void init_logon_id(DOM_LOGON_ID *log, uint32 log_id_low, uint32 log_id_high) +void init_logon_id(DOM_LOGON_ID *dlog, uint32 log_id_low, uint32 log_id_high) { DEBUG(5,("make_logon_id: %d\n", __LINE__)); - log->low = log_id_low; - log->high = log_id_high; + dlog->low = log_id_low; + dlog->high = log_id_high; } /******************************************************************* Reads or writes a DOM_LOGON_ID structure. ********************************************************************/ -BOOL smb_io_logon_id(const char *desc, DOM_LOGON_ID *log, prs_struct *ps, int depth) +BOOL smb_io_logon_id(const char *desc, DOM_LOGON_ID *dlog, prs_struct *ps, int depth) { - if (log == NULL) + if (dlog == NULL) return False; prs_debug(ps, depth, desc, "smb_io_logon_id"); @@ -1552,9 +1552,9 @@ BOOL smb_io_logon_id(const char *desc, DOM_LOGON_ID *log, prs_struct *ps, int de if(!prs_align(ps)) return False; - if(!prs_uint32("low ", ps, depth, &log->low )) + if(!prs_uint32("low ", ps, depth, &dlog->low )) return False; - if(!prs_uint32("high", ps, depth, &log->high)) + if(!prs_uint32("high", ps, depth, &dlog->high)) return False; return True; diff --git a/source/smbd/process.c b/source/smbd/process.c index 16ef30c46c8..de1bea493fa 100644 --- a/source/smbd/process.c +++ b/source/smbd/process.c @@ -44,7 +44,7 @@ extern userdom_struct current_user_info; extern int smb_read_error; SIG_ATOMIC_T reload_after_sighup = 0; SIG_ATOMIC_T got_sig_term = 0; -extern BOOL global_machine_password_needs_changing; +BOOL global_machine_password_needs_changing = False; extern int max_send; /**************************************************************************** -- cgit From 1c53686f3a2b2ff220836b76755a184fac0b238e Mon Sep 17 00:00:00 2001 From: Alexander Bokovoy Date: Tue, 25 Mar 2003 17:42:46 +0000 Subject: Fix another opened-but-not-closed tag --- docs/docbook/manpages/smb.conf.5.sgml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/docbook/manpages/smb.conf.5.sgml b/docs/docbook/manpages/smb.conf.5.sgml index 24612d787cb..39989323655 100644 --- a/docs/docbook/manpages/smb.conf.5.sgml +++ b/docs/docbook/manpages/smb.conf.5.sgml @@ -3434,8 +3434,7 @@ df $1 | tail -1 | awk '{print $2" "$4}' stored in the private/secrets.tdb file. See the smbpasswd 8 man page for more information on how - to accmplish this. - + to accmplish this. @@ -3455,7 +3454,6 @@ df $1 | tail -1 | awk '{print $2" "$4}' ldap del only sam attr (G) Inverted synonym for ldap delete dn. - -- cgit From 760fd4e5c48276696182febcae3b0a997999b1e2 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 18:10:55 +0000 Subject: Remove old check for TDB SAM (we now have --with-{static,shared}-modules=pdb_tdbsam) --- source/configure.in | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/source/configure.in b/source/configure.in index 3b940f08d94..1c046e81a9e 100644 --- a/source/configure.in +++ b/source/configure.in @@ -239,7 +239,7 @@ AC_VALIDATE_CACHE_SYSTEM_TYPE DYNEXP= dnl Add modules that have to be built by default here -default_modules="pdb_smbpasswd pdb_tdbsam pdb_unix rpc_lsa rpc_samr rpc_reg rpc_wks rpc_net rpc_dfs rpc_srv rpc_spoolss auth_rhosts auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin" +default_modules="pdb_smbpasswd pdb_tdbsam pdb_unix rpc_lsa rpc_samr rpc_reg rpc_wks rpc_net rpc_dfs rpc_srv rpc_spoolss auth_rhosts auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin vfs_recycle vfs_audit vfs_extd_audit vfs_fake_perms vfs_netatalk" # # Config CPPFLAG settings for strange OS's that must be set @@ -2432,23 +2432,6 @@ AC_ARG_WITH(ldapsam, AC_MSG_RESULT(no) ) -################################################# -# check for a TDB password database -AC_MSG_CHECKING(whether to use TDB SAM database) -AC_ARG_WITH(tdbsam, -[ --with-tdbsam Include experimental TDB SAM support (default=no)], -[ case "$withval" in - yes) - AC_MSG_RESULT(yes) - AC_DEFINE(WITH_TDB_SAM,1,[Whether to include experimental TDB SAM support]) - ;; - *) - AC_MSG_RESULT(no) - ;; - esac ], - AC_MSG_RESULT(no) -) - ######################################################################################## ## ## END OF TESTS FOR SAM BACKENDS. @@ -3398,6 +3381,13 @@ SMB_MODULE(auth_domain, \$(AUTH_DOMAIN_OBJ), bin/domain.so, AUTH) SMB_MODULE(auth_builtin, \$(AUTH_BUILTIN_OBJ), bin/builtin.so, AUTH) SMB_SUBSYSTEM(AUTH) +SMB_MODULE(vfs_recycle, \$(VFS_RECYCLE_OBJ), bin/recycle.so, VFS) +SMB_MODULE(vfs_audit, \$(VFS_AUDIT_OBJ), bin/audit.so, VFS) +SMB_MODULE(vfs_extd_audit, \$(VFS_EXTD_AUDIT_OBJ), bin/extd_audit.so, VFS) +SMB_MODULE(vfs_fake_perms, \$(VFS_FAKE_PERMS_OBJ), bin/fake_perms.so, VFS) +SMB_MODULE(vfs_netatalk, \$(VFS_NETATALK), bin/netatalk.so, VFS) +SMB_SUBSYSTEM(VFS) + AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules]) ################################################# -- cgit From 2018b331a17a4ac485ac03e175ab24d9457a5b77 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 20:14:41 +0000 Subject: Add info about dual daemon mode --- docs/docbook/projdoc/winbind.sgml | 50 +++++++++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/docs/docbook/projdoc/winbind.sgml b/docs/docbook/projdoc/winbind.sgml index 06579617f5c..2d38ea44d46 100644 --- a/docs/docbook/projdoc/winbind.sgml +++ b/docs/docbook/projdoc/winbind.sgml @@ -351,15 +351,6 @@ to control access and authenticate users on your Linux box using the winbind services which come with SAMBA 2.2.2. - -There is also some Solaris specific information in -docs/textdocs/Solaris-Winbind-HOWTO.txt. -Future revisions of this document will incorporate that -information. - - - - Introduction @@ -627,6 +618,19 @@ command as root: root# /usr/local/samba/bin/winbindd + +Winbindd can now also run in 'dual daemon mode'. This will make it +run as 2 processes. The first will answer all requests from the cache, +thus making responses to clients faster. The other will +update the cache for the query that the first has just responded. +Advantage of this is that responses stay accurate and are faster. +You can enable dual daemon mode by adding '-B' to the commandline: + + + +root# /usr/local/samba/bin/winbindd -B + + I'm always paranoid and like to make sure the daemon is really running... @@ -756,9 +760,22 @@ start() { } +If you would like to run winbindd in dual daemon mode, replace +the line + + daemon /usr/local/samba/bin/winbindd + + +in the example above with: + + + daemon /usr/local/samba/bin/winbindd -B +. + + The 'stop' function has a corresponding entry to shut down the -services and look s like this: +services and looks like this: @@ -842,6 +859,19 @@ echo Starting Winbind Daemon ;; esac + +Again, if you would like to run samba in dual daemon mode, replace + + /usr/local/samba/bin/winbindd + + +in the script above with: + + + /usr/local/samba/bin/winbindd -B + + + -- cgit From cdfb0161adb37f70247b047eb93b92cfcf11783b Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 20:49:13 +0000 Subject: Add documentation on unicode --- docs/docbook/projdoc/samba-doc.sgml | 2 + docs/docbook/projdoc/unicode.sgml | 93 +++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 docs/docbook/projdoc/unicode.sgml diff --git a/docs/docbook/projdoc/samba-doc.sgml b/docs/docbook/projdoc/samba-doc.sgml index efb14d4b6c2..c1662ee3bf0 100644 --- a/docs/docbook/projdoc/samba-doc.sgml +++ b/docs/docbook/projdoc/samba-doc.sgml @@ -24,6 +24,7 @@ + ]> @@ -116,6 +117,7 @@ part each cover one specific feature. &SPEED; &GroupProfiles; &SecuringSamba; +&unicode; diff --git a/docs/docbook/projdoc/unicode.sgml b/docs/docbook/projdoc/unicode.sgml new file mode 100644 index 00000000000..a467a0d4e7b --- /dev/null +++ b/docs/docbook/projdoc/unicode.sgml @@ -0,0 +1,93 @@ + + + + JelmerVernooij + + Samba Team +
jelmer@samba.org
+
+
+ 25 March 2003 +
+ +Unicode/Charsets + + +What are charsets and unicode? + + +Computers communicate in numbers. In texts, each number will be +translated to a corresponding letter. The meaning that will be assigned +to a certain number depends on the character set(charset) + that is used. +A charset can be seen as a table that is used to translate numbers to +letters. Not all computers use the same charset (there are charsets +with German umlauts, Japanese characters, etc). Usually a charset contains +256 characters, which means that storing a character with it takes +exactly one byte. + + +There are also charsets that support even more characters, +but those need twice(or even more) as much storage space. These +charsets can contain 256 * 256 = 65536 characters, which +is more then all possible characters one could think of. They are called +multibyte charsets (because they use more then one byte to +store one character). + + + +A standardised multibyte charset is unicode, info available at +www.unicode.org. +Big advantage of using a multibyte charset is that you only need one; no +need to make sure two computers use the same charset when they are +communicating. + + +Old windows clients used to use single-byte charsets, named +'codepages' by microsoft. However, there is no support for +negotiating the charset to be used in the smb protocol. Thus, you +have to make sure you are using the same charset when talking to an old client. +Newer clients (Windows NT, 2K, XP) talk unicode over the wire. + + + + +Samba and charsets + + +As of samba 3.0, samba can (and will) talk unicode over the wire. Internally, +samba knows of three kinds of character sets: + + + + + unix charset + + This is the charset used internally by your operating system. + The default is ASCII, which is fine for most + systems. + + + + + display charset + This is the charset samba will use to print messages + on your screen. It should generally be the same as the unix charset. + + + + + dos charset + This is the charset samba uses when communicating with + DOS and Windows 9x clients. It will talk unicode to all newer clients. + The default depends on the charsets you have installed on your system. + Run testparm -v | grep "dos charset" to see + what the default is on your system. + + + + + + + +
-- cgit From 0558cae208067aa1e10060f22f12b2b8c09c53b1 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 22:15:57 +0000 Subject: Add example version identifier --- docs/docbook/devdoc/packagers.sgml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docbook/devdoc/packagers.sgml b/docs/docbook/devdoc/packagers.sgml index 5042070d687..fb47c7305c3 100644 --- a/docs/docbook/devdoc/packagers.sgml +++ b/docs/docbook/devdoc/packagers.sgml @@ -16,7 +16,7 @@ from custom-build samba builds (distributions often patch packages). For example, a good version would be: - +Version 2.999+3.0.alpha21-5 for Debian -- cgit From e193b47259d11b0eaef4071acb406d6433426733 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 22:37:43 +0000 Subject: Always rebuild modules after running ./configure (to prevent undefined symbol errors) --- source/Makefile.in | 11 ++++++++--- source/aclocal.m4 | 5 ++++- source/configure.in | 25 ++++++++++++++++--------- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index 95a4cee98f3..71172819004 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -672,11 +672,11 @@ MAKEDIR = || exec false; \ # but since we also require "make install prefix=/opt/samba" *not* to # rebuild it's a bit hard. -dynconfig.o: dynconfig.c Makefile +dynconfig.o: dynconfig.c Makefile modules_clean @echo Compiling $*.c @$(CC) $(FLAGS) $(PATH_FLAGS) -c $< -o $@ -dynconfig.po: dynconfig.c Makefile +dynconfig.po: dynconfig.c Makefile modules_clean @if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \ dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi @echo Compiling $*.c with @PICFLAG@ @@ -987,7 +987,7 @@ bin/mysql.@SHLIBEXT@: $(MYSQL_OBJ) bin/ldapsam.@SHLIBEXT@: passdb/pdb_ldap.o @echo "Building plugin $@" - @$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_ldap.o \ + @$(SHLD) $(LDSHFLAGS) -o $@ @LDAP_LIBS@ passdb/pdb_ldap.o \ @SONAMEFLAG@`basename $@` bin/tdbsam.@SHLIBEXT@: passdb/pdb_tdb.o @@ -1188,6 +1188,11 @@ clean: delheaders python_clean -rm -f core */*~ *~ */*.o */*.po */*.po32 */*.@SHLIBEXT@ \ $(TOPFILES) $(BIN_PROGS) $(SBIN_PROGS) $(MODULES) $(TORTURE_PROGS) $(LIBSMBCLIENT) .headers.stamp +# This is quite ugly actually.. But we need to make +# sure the changes to include/config.h are used. +modules_clean: + @-rm -f @MODULES_CLEAN@ auth/auth.o passdb/pdb_interface.o rpc_server/srv_pipe_hnd.o lib/iconv.o + # Making this target will just make sure that the prototype files # exist, not necessarily that they are up to date. Since they're # removed by "make clean" this will always be run when you do anything diff --git a/source/aclocal.m4 b/source/aclocal.m4 index 744acf6a1b6..f470e2e8b0e 100644 --- a/source/aclocal.m4 +++ b/source/aclocal.m4 @@ -37,7 +37,7 @@ fi ]) dnl Mark specified module as shared -dnl SMB_MODULE(name,static_files,shared_files,subsystem) +dnl SMB_MODULE(name,static_files,shared_files,subsystem,whatif-static,whatif-shared) AC_DEFUN(SMB_MODULE, [ AC_MSG_CHECKING([how to build $1]) @@ -53,15 +53,18 @@ AC_DEFUN(SMB_MODULE, AC_DEFINE([$1][_init], [init_module], [Whether to build $1 as shared module]) $4_MODULES="$$4_MODULES $3" AC_MSG_RESULT([shared]) + [$6] elif test x"$DEST" = xSTATIC; then [init_static_modules_]translit([$4], [A-Z], [a-z])="$[init_static_modules_]translit([$4], [A-Z], [a-z]) $1_init();" string_static_modules="$string_static_modules $1" $4_STATIC="$$4_STATIC $2" AC_SUBST($4_STATIC) + [$5] AC_MSG_RESULT([static]) else AC_MSG_RESULT([not]) fi + MODULES_CLEAN="$MODULES_CLEAN $2 $3" ]) AC_DEFUN(SMB_SUBSYSTEM, diff --git a/source/configure.in b/source/configure.in index 1c046e81a9e..733037b9774 100644 --- a/source/configure.in +++ b/source/configure.in @@ -2241,12 +2241,12 @@ if test x"$with_ldap_support" = x"yes"; then ################################################################## # we might need the lber lib on some systems. To avoid link errors # this test must be before the libldap test - AC_CHECK_LIB(lber, ber_scanf, [LIBS="$LIBS -llber"]) + AC_CHECK_LIB(lber, ber_scanf, [LDAP_LIBS="$LIBS -llber"]) ######################################################## # now see if we can find the ldap libs in standard paths if test x$have_ldap != xyes; then - AC_CHECK_LIB(ldap, ldap_domain2hostlist, [LIBS="$LIBS -lldap"; + AC_CHECK_LIB(ldap, ldap_domain2hostlist, [LDAP_LIBS="$LIBS -lldap"; AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])]) AC_CHECK_HEADERS([ldap.h lber.h], [default_modules="$default_modules pdb_ldap"]) @@ -2260,19 +2260,21 @@ if test x"$with_ldap_support" = x"yes"; then #include ], [ldap_set_rebind_proc(0, 0, 0);], [pam_ldap_cv_ldap_set_rebind_proc=3], [pam_ldap_cv_ldap_set_rebind_proc=2]) ]) AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $pam_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc]) fi + + if test x"$with_ads_support" = x"yes"; then + LIBS="$LIBS $LDAP_LIBS" + fi fi +AC_SUBST(LDAP_LIBS) + ######################################################## # Compile with MySQL support? AM_PATH_MYSQL([0.11.0],[default_modules="$default_modules pdb_mysql"],[]) -CFLAGS="$CFLAGS $MYSQL_CFLAGS" -LIBS="$LIBS $MYSQL_LIBS" ######################################################## # Compile with XML support? AM_PATH_XML2([2.0.0],[default_modules="$default_modules pdb_xml"],[]) -CFLAGS="$CFLAGS $XML_CFLAGS" -LIBS="$LIBS $XML_LIBS" ################################################# # check for automount support @@ -3349,9 +3351,12 @@ AC_ARG_WITH(shared-modules, done fi ]) -SMB_MODULE(pdb_xml, modules/xml.o, bin/xml.so, PDB) -SMB_MODULE(pdb_mysql, modules/mysql.o, bin/mysql.so, PDB) -SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o, bin/ldapsam.so, PDB) +SMB_MODULE(pdb_xml, modules/xml.o, bin/xml.so, PDB, + [ CFLAGS="$CFLAGS $XML_CFLAGS"; LIBS="$LIBS $XML_LIBS" ] ) +SMB_MODULE(pdb_mysql, modules/mysql.o, bin/mysql.so, PDB, + [ CFLAGS="$CFLAGS $MYSQL_CFLAGS"; LIBS="$LIBS $MYSQL_LIBS" ] ) +SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o, bin/ldapsam.so, PDB, + [ LIBS="$LIBS $LDAP_LIBS" ] ) SMB_MODULE(pdb_smbpasswd, passdb/pdb_smbpasswd.o, bin/smbpasswd.so, PDB) SMB_MODULE(pdb_tdbsam, passdb/pdb_tdb.o, bin/tdbsam.so, PDB) SMB_MODULE(pdb_nisplussam, passdb/pdb_nisplus.o, bin/nisplussam.so, PDB) @@ -3390,6 +3395,8 @@ SMB_SUBSYSTEM(VFS) AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules]) +AC_SUBST(MODULES_CLEAN) + ################################################# # do extra things if we are running insure -- cgit From 0ab6e96c9b32526936878da62b3cc00edd0ac27c Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 22:51:38 +0000 Subject: Add notes about the rebuilding of files --- docs/docbook/devdoc/modules.sgml | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/docs/docbook/devdoc/modules.sgml b/docs/docbook/devdoc/modules.sgml index 99cba605bd1..0bcdadc66ce 100644 --- a/docs/docbook/devdoc/modules.sgml +++ b/docs/docbook/devdoc/modules.sgml @@ -63,11 +63,8 @@ it is here currently (from include/config.h): -These functions should be called before the subsystem is used. That can be -done either from the executable that will be using the subsystem ( -static_init_rpc is called from the main() function of smbd), or -from the subsystem itself when it's first used (like passdb's -lazy_initialise_passdb does). +These functions should be called before the subsystem is used. That +should be done when the subsystem is initialised or first used.
@@ -138,10 +135,22 @@ for each module and SMB_SUBSYSTEM() for each subsystem. Syntax: -SMB_MODULE($MODULE_subsystem_backend, subsystem_backend, object files, plugin name, subsystem name) +SMB_MODULE(subsystem_backend, object files, plugin name, subsystem name, static_action, shared_action) SMB_SUBSYSTEM(subsystem) +Also, make sure to add the correct directives to +Makefile.in. @SUBSYSTEM_STATIC@ +will be replaced with a list of objects files of the modules that need to +be linked in statically. @SUBSYSTEM_MODULES@ will +be replaced with the names of the plugins to build. + + +You must make sure all .c files that contain defines that can +be changed by ./configure are rebuilded in the 'modules_clean' make target. +Practically, this means all c files that contain static_init_subsystem; calls need to be rebuilded. + + -- cgit From 02d202034dad56365a15c4e9fdcb7c420a77e1ed Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 22:57:29 +0000 Subject: Do $(MAKE) modules_clean when compiling dynconfig.o. It's not the most elegant solution, but it works. --- source/Makefile.in | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index 71172819004..97f89ab686c 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -672,11 +672,13 @@ MAKEDIR = || exec false; \ # but since we also require "make install prefix=/opt/samba" *not* to # rebuild it's a bit hard. -dynconfig.o: dynconfig.c Makefile modules_clean +dynconfig.o: dynconfig.c Makefile + @$(MAKE) modules_clean @echo Compiling $*.c @$(CC) $(FLAGS) $(PATH_FLAGS) -c $< -o $@ -dynconfig.po: dynconfig.c Makefile modules_clean +dynconfig.po: dynconfig.c Makefile + @$(MAKE) modules_clean @if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \ dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi @echo Compiling $*.c with @PICFLAG@ -- cgit From c682d5abf310e445f1629e9b48a15d10b176ed39 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 23:03:03 +0000 Subject: Fix two typos --- docs/docbook/manpages/smb.conf.5.sgml | 2 +- docs/docbook/manpages/winbindd.8.sgml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/docbook/manpages/smb.conf.5.sgml b/docs/docbook/manpages/smb.conf.5.sgml index 39989323655..0968faa584b 100644 --- a/docs/docbook/manpages/smb.conf.5.sgml +++ b/docs/docbook/manpages/smb.conf.5.sgml @@ -2374,7 +2374,7 @@ df $1 | tail -1 | awk '{print $2" "$4}' charset Samba should talk to DOS clients. - The default depends on which charsets you have instaled. + The default depends on which charsets you have installed. Samba tries to use charset 850 but falls back to ASCII in case it is not available. Run testparm 1 to check the default on your system. diff --git a/docs/docbook/manpages/winbindd.8.sgml b/docs/docbook/manpages/winbindd.8.sgml index 9923c64ee98..177265caf1f 100644 --- a/docs/docbook/manpages/winbindd.8.sgml +++ b/docs/docbook/manpages/winbindd.8.sgml @@ -161,7 +161,7 @@ group: files winbind as 2 threads. The first will answer all requests from the cache, thus making responses to clients faster. The other will update the cache for the query that the first has just responded. - Advantage of this is that responses are accurate and fast. + Advantage of this is that responses stay accurate and are faster. -- cgit From cf73797d110d271fc7a30c11e023c4d1ba2b5c9b Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 23:26:39 +0000 Subject: Give PARAMS_OBJ more priority --- source/Makefile.in | 53 ++++++++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index 97f89ab686c..a4109e5da74 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -181,7 +181,7 @@ POPT_LIB_OBJ = lib/popt_common.o UBIQX_OBJ = ubiqx/ubi_BinTree.o ubiqx/ubi_Cache.o ubiqx/ubi_SplayTree.o \ ubiqx/ubi_dLinkList.o ubiqx/ubi_sLinkList.o -PARAM_OBJ = param/loadparm.o param/params.o dynconfig.o +PARAM_OBJ = dynconfig.o param/loadparm.o param/params.o KRBCLIENT_OBJ = libads/kerberos.o @@ -280,7 +280,7 @@ SAM_STATIC_MODULES = sam/sam_plugin.o sam/sam_skel.o sam/sam_ads.o SAM_OBJ = sam/account.o sam/get_set_account.o sam/get_set_group.o \ sam/get_set_domain.o sam/interface.o $(SAM_STATIC_MODULES) -SAMTEST_OBJ = torture/samtest.o torture/cmd_sam.o $(SAM_OBJ) $(LIB_OBJ) $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(READLINE_OBJ) lib/util_seaccess.o $(LIBADS_OBJ) $(KRBCLIENT_OBJ) $(PASSDB_OBJ) $(SECRETS_OBJ) $(GROUPDB_OBJ) +SAMTEST_OBJ = torture/samtest.o torture/cmd_sam.o $(PARAM_OBJ) $(SAM_OBJ) $(LIB_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(READLINE_OBJ) lib/util_seaccess.o $(LIBADS_OBJ) $(KRBCLIENT_OBJ) $(PASSDB_OBJ) $(SECRETS_OBJ) $(GROUPDB_OBJ) GROUPDB_OBJ = groupdb/mapping.o @@ -373,8 +373,8 @@ WREPL_OBJ = $(WREPL_OBJ1) $(PARAM_OBJ) $(UBIQX_OBJ) \ SWAT_OBJ1 = web/cgi.o web/diagnose.o web/startstop.o web/statuspage.o \ web/swat.o web/neg_lang.o -SWAT_OBJ = $(SWAT_OBJ1) $(PRINTING_OBJ) $(LIBSMB_OBJ) $(LOCKING_OBJ) \ - $(PARAM_OBJ) $(PASSDB_OBJ) $(SECRETS_OBJ) $(KRBCLIENT_OBJ) \ +SWAT_OBJ = $(SWAT_OBJ1) $(PARAM_OBJ) $(PRINTING_OBJ) $(LIBSMB_OBJ) \ + $(LOCKING_OBJ) $(PASSDB_OBJ) $(SECRETS_OBJ) $(KRBCLIENT_OBJ) \ $(UBIQX_OBJ) $(LIB_OBJ) $(GROUPDB_OBJ) $(PLAINTEXT_AUTH_OBJ) \ $(POPT_LIB_OBJ) @@ -436,8 +436,8 @@ SMBWRAPPER_OBJ1 = smbwrapper/wrapped.o SMBWRAPPER_OBJ = $(SMBW_OBJ) $(SMBWRAPPER_OBJ1) LIBSMBCLIENT_OBJ = libsmb/libsmbclient.o libsmb/libsmb_compat.o \ - libsmb/libsmb_cache.o $(LIB_OBJ) \ - $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(PARAM_OBJ) $(UBIQX_OBJ) + libsmb/libsmb_cache.o $(PARAM_OBJ) $(LIB_OBJ) \ + $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(UBIQX_OBJ) # This shared library is intended for linking with unit test programs # to test Samba internals. It's called libbigballofmud.so to @@ -445,7 +445,7 @@ LIBSMBCLIENT_OBJ = libsmb/libsmbclient.o libsmb/libsmb_compat.o \ LIBBIGBALLOFMUD_MAJOR = 0 -LIBBIGBALLOFMUD_OBJ = $(LIB_OBJ) $(UBIQX_OBJ) $(PARAM_OBJ) $(SECRETS_OBJ) \ +LIBBIGBALLOFMUD_OBJ = $(PARAM_OBJ) $(LIB_OBJ) $(UBIQX_OBJ) $(SECRETS_OBJ) \ $(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_OBJ) \ $(GROUPDB_OBJ) $(KRBCLIENT_OBJ) @@ -462,9 +462,9 @@ NET_OBJ1 = utils/net.o utils/net_ads.o utils/net_ads_cldap.o utils/net_help.o \ utils/net_rpc_join.o utils/net_time.o utils/net_lookup.o \ utils/net_cache.o -NET_OBJ = $(NET_OBJ1) $(SECRETS_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \ +NET_OBJ = $(NET_OBJ1) $(PARAM_OBJ) $(SECRETS_OBJ) $(LIBSMB_OBJ) \ $(RPC_PARSE_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \ - $(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \ + $(KRBCLIENT_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \ $(LIBMSRPC_OBJ) $(LIBMSRPC_SERVER_OBJ) \ $(LIBADS_OBJ) $(LIBADS_SERVER_OBJ) $(POPT_LIB_OBJ) @@ -484,19 +484,19 @@ NMBLOOKUP_OBJ = utils/nmblookup.o $(PARAM_OBJ) $(UBIQX_OBJ) $(LIBNMB_OBJ) \ SMBTORTURE_OBJ1 = torture/torture.o torture/nbio.o torture/scanner.o torture/utable.o \ torture/denytest.o torture/mangle_test.o -SMBTORTURE_OBJ = $(SMBTORTURE_OBJ1) \ - $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) +SMBTORTURE_OBJ = $(SMBTORTURE_OBJ1) $(PARAM_OBJ) \ + $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) -MASKTEST_OBJ = torture/masktest.o $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(PARAM_OBJ) \ +MASKTEST_OBJ = torture/masktest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \ $(UBIQX_OBJ) $(LIB_OBJ) -MSGTEST_OBJ = torture/msgtest.o $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(PARAM_OBJ) \ +MSGTEST_OBJ = torture/msgtest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \ $(UBIQX_OBJ) $(LIB_OBJ) -LOCKTEST_OBJ = torture/locktest.o $(LOCKING_OBJ) $(KRBCLIENT_OBJ) $(LIBSMB_OBJ) $(PARAM_OBJ) \ - $(UBIQX_OBJ) $(LIB_OBJ) +LOCKTEST_OBJ = torture/locktest.o $(PARAM_OBJ) $(LOCKING_OBJ) $(KRBCLIENT_OBJ) \ + $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) -NSSTEST_OBJ = torture/nsstest.o $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(PARAM_OBJ) \ +NSSTEST_OBJ = torture/nsstest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \ $(UBIQX_OBJ) $(LIB_OBJ) VFSTEST_OBJ = torture/cmd_vfs.o torture/vfstest.o $(SMBD_OBJ_BASE) $(READLINE_OBJ) @@ -507,16 +507,15 @@ VFS_RECYCLE_OBJ = modules/vfs_recycle.o VFS_NETATALK_OBJ = modules/vfs_netatalk.o VFS_FAKE_PERMS_OBJ = modules/vfs_fake_perms.o -LOCKTEST2_OBJ = torture/locktest2.o $(LOCKING_OBJ) $(LIBSMB_OBJ) \ - $(KRBCLIENT_OBJ) $(PARAM_OBJ) \ - $(UBIQX_OBJ) $(LIB_OBJ) +LOCKTEST2_OBJ = torture/locktest2.o $(PARAM_OBJ) $(LOCKING_OBJ) $(LIBSMB_OBJ) \ + $(KRBCLIENT_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) -SMBCACLS_OBJ = utils/smbcacls.o $(LOCKING_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \ - $(PARAM_OBJ) \ - $(UBIQX_OBJ) $(LIB_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_GET_SET_OBJ) \ - $(LIBMSRPC_OBJ) $(SECRETS_OBJ) $(POPT_LIB_OBJ) +SMBCACLS_OBJ = utils/smbcacls.o $(PARAM_OBJ) $(LOCKING_OBJ) $(LIBSMB_OBJ) \ + $(KRBCLIENT_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) $(RPC_PARSE_OBJ) \ + $(PASSDB_GET_SET_OBJ) $(LIBMSRPC_OBJ) $(SECRETS_OBJ) \ + $(POPT_LIB_OBJ) -TALLOCTORT_OBJ = lib/talloctort.o $(LIB_OBJ) $(PARAM_OBJ) $(UBIQX_OBJ) +TALLOCTORT_OBJ = lib/talloctort.o $(PARAM_OBJ) $(LIB_OBJ) $(UBIQX_OBJ) RPCTORTURE_OBJ = torture/rpctorture.o \ rpcclient/display.o \ @@ -530,7 +529,7 @@ RPCTORTURE_OBJ = torture/rpctorture.o \ DEBUG2HTML_OBJ = utils/debug2html.o ubiqx/debugparse.o -SMBFILTER_OBJ = utils/smbfilter.o $(LIBSMB_OBJ) $(PARAM_OBJ) \ +SMBFILTER_OBJ = utils/smbfilter.o $(PARAM_OBJ) $(LIBSMB_OBJ) \ $(UBIQX_OBJ) $(LIB_OBJ) $(KRBCLIENT_OBJ) PROTO_OBJ = $(SMBD_OBJ_MAIN) \ @@ -1121,8 +1120,8 @@ installclientlib: # Python extensions -PYTHON_OBJS = $(LIB_OBJ) $(LIBSMB_OBJ) $(RPC_PARSE_OBJ) $(UBIQX_OBJ) \ - $(PARAM_OBJ) $(LIBMSRPC_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \ +PYTHON_OBJS = $(PARAM_OBJ) $(LIB_OBJ) $(LIBSMB_OBJ) $(RPC_PARSE_OBJ) \ + $(UBIQX_OBJ) $(LIBMSRPC_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \ $(SECRETS_OBJ) $(KRBCLIENT_OBJ) python_ext: $(PYTHON_OBJS) -- cgit From 1e1544ecc12d1e7c00080894786f500cd774a6b3 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Mar 2003 23:53:34 +0000 Subject: Don't do $(MAKE) modules_clean twice in a row - it breaks the build... --- source/Makefile.in | 1 - 1 file changed, 1 deletion(-) diff --git a/source/Makefile.in b/source/Makefile.in index a4109e5da74..53f4fad9d2c 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -677,7 +677,6 @@ dynconfig.o: dynconfig.c Makefile @$(CC) $(FLAGS) $(PATH_FLAGS) -c $< -o $@ dynconfig.po: dynconfig.c Makefile - @$(MAKE) modules_clean @if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \ dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi @echo Compiling $*.c with @PICFLAG@ -- cgit From adbb714ade8ab6f4e9b5d80f0f85041746c0edf1 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 26 Mar 2003 11:09:12 +0000 Subject: - Patch from John to update PDC-HOWTO, add ServerType and CUPS (not finished yet) - Regenerate docs - Update docs-status --- docs/Samba-Developers-Guide.pdf | 3897 +++++----- docs/Samba-HOWTO-Collection.pdf | 10648 ++++++++++++++-------------- docs/docbook/projdoc/CUPS-printing.sgml | 1184 ++++ docs/docbook/projdoc/Samba-PDC-HOWTO.sgml | 162 +- docs/docbook/projdoc/ServerType.sgml | 140 + docs/docbook/projdoc/passdb.sgml | 77 +- docs/docbook/projdoc/samba-doc.sgml | 2 + docs/docbook/projdoc/security_level.sgml | 2 +- docs/docbook/projdoc/unicode.sgml | 10 +- docs/docs-status | 16 +- docs/htmldocs/Samba-Developers-Guide.html | 367 +- docs/htmldocs/Samba-HOWTO-Collection.html | 3202 +++++---- docs/manpages/findsmb.1 | 2 +- docs/manpages/lmhosts.5 | 2 +- docs/manpages/net.8 | 2 +- docs/manpages/nmbd.8 | 101 +- docs/manpages/nmblookup.1 | 99 +- docs/manpages/pdbedit.8 | 41 +- docs/manpages/rpcclient.1 | 168 +- docs/manpages/samba.7 | 2 +- docs/manpages/smb.conf.5 | 14 +- docs/manpages/smbcacls.1 | 12 +- docs/manpages/smbclient.1 | 242 +- docs/manpages/smbcontrol.1 | 2 +- docs/manpages/smbd.8 | 50 +- docs/manpages/smbgroupedit.8 | 2 +- docs/manpages/smbmnt.8 | 2 +- docs/manpages/smbmount.8 | 2 +- docs/manpages/smbpasswd.5 | 2 +- docs/manpages/smbpasswd.8 | 2 +- docs/manpages/smbsh.1 | 2 +- docs/manpages/smbspool.8 | 2 +- docs/manpages/smbstatus.1 | 50 +- docs/manpages/smbtar.1 | 2 +- docs/manpages/smbumount.8 | 2 +- docs/manpages/swat.8 | 57 +- docs/manpages/testparm.1 | 10 +- docs/manpages/testprns.1 | 2 +- docs/manpages/vfstest.1 | 31 +- docs/manpages/wbinfo.1 | 25 +- docs/manpages/winbindd.8 | 84 +- 41 files changed, 11781 insertions(+), 8940 deletions(-) create mode 100644 docs/docbook/projdoc/CUPS-printing.sgml create mode 100644 docs/docbook/projdoc/ServerType.sgml diff --git a/docs/Samba-Developers-Guide.pdf b/docs/Samba-Developers-Guide.pdf index 166a77ac303..a65e7c44ea0 100644 --- a/docs/Samba-Developers-Guide.pdf +++ b/docs/Samba-Developers-Guide.pdf @@ -1,6 +1,6 @@ %PDF-1.3 %âãÏÓ -1 0 obj<>endobj +1 0 obj<>endobj 2 0 obj<>endobj 3 0 obj<>endobj 4 0 obj<>endobj @@ -12,48 +12,48 @@ 10 0 obj<>endobj 11 0 obj<>endobj 12 0 obj<>endobj -13 0 obj<>endobj -14 0 obj<>endobj -15 0 obj<>endobj -16 0 obj<>endobj -17 0 obj<>endobj -18 0 obj<>endobj -19 0 obj<>endobj -20 0 obj<>endobj -21 0 obj<>endobj -22 0 obj<>endobj -23 0 obj<>endobj -24 0 obj<>endobj -25 0 obj<>endobj -26 0 obj<>endobj -27 0 obj<>endobj -28 0 obj<>endobj -29 0 obj<>endobj -30 0 obj<>endobj -31 0 obj<>endobj -32 0 obj<>endobj -33 0 obj<>endobj -34 0 obj<>endobj -35 0 obj<>endobj -36 0 obj<>endobj -37 0 obj<>endobj -38 0 obj<>endobj -39 0 obj<>endobj -40 0 obj<>endobj -41 0 obj<>endobj -42 0 obj<>endobj -43 0 obj<>endobj -44 0 obj<>endobj -45 0 obj<>endobj -46 0 obj<>endobj -47 0 obj<>endobj -48 0 obj<>endobj -49 0 obj<>endobj -50 0 obj<>endobj -51 0 obj<>endobj -52 0 obj<>endobj -53 0 obj<>endobj -54 0 obj<>endobj +13 0 obj<>endobj +14 0 obj<>endobj +15 0 obj<>endobj +16 0 obj<>endobj +17 0 obj<>endobj +18 0 obj<>endobj +19 0 obj<>endobj +20 0 obj<>endobj +21 0 obj<>endobj +22 0 obj<>endobj +23 0 obj<>endobj +24 0 obj<>endobj +25 0 obj<>endobj +26 0 obj<>endobj +27 0 obj<>endobj +28 0 obj<>endobj +29 0 obj<>endobj +30 0 obj<>endobj +31 0 obj<>endobj +32 0 obj<>endobj +33 0 obj<>endobj +34 0 obj<>endobj +35 0 obj<>endobj +36 0 obj<>endobj +37 0 obj<>endobj +38 0 obj<>endobj +39 0 obj<>endobj +40 0 obj<>endobj +41 0 obj<>endobj +42 0 obj<>endobj +43 0 obj<>endobj +44 0 obj<>endobj +45 0 obj<>endobj +46 0 obj<>endobj +47 0 obj<>endobj +48 0 obj<>endobj +49 0 obj<>endobj +50 0 obj<>endobj +51 0 obj<>endobj +52 0 obj<>endobj +53 0 obj<>endobj +54 0 obj<>endobj 55 0 obj[13 0 R 14 0 R 15 0 R @@ -96,50 +96,50 @@ 52 0 R 53 0 R 54 0 R]endobj -56 0 obj<>endobj -57 0 obj<>endobj -58 0 obj<>endobj -59 0 obj<>endobj -60 0 obj<>endobj -61 0 obj<>endobj -62 0 obj<>endobj -63 0 obj<>endobj -64 0 obj<>endobj -65 0 obj<>endobj -66 0 obj<>endobj -67 0 obj<>endobj -68 0 obj<>endobj -69 0 obj<>endobj -70 0 obj<>endobj -71 0 obj<>endobj -72 0 obj<>endobj -73 0 obj<>endobj -74 0 obj<>endobj -75 0 obj<>endobj -76 0 obj<>endobj -77 0 obj<>endobj -78 0 obj<>endobj -79 0 obj<>endobj -80 0 obj<>endobj -81 0 obj<>endobj -82 0 obj<>endobj -83 0 obj<>endobj -84 0 obj<>endobj -85 0 obj<>endobj -86 0 obj<>endobj -87 0 obj<>endobj -88 0 obj<>endobj -89 0 obj<>endobj -90 0 obj<>endobj -91 0 obj<>endobj -92 0 obj<>endobj -93 0 obj<>endobj -94 0 obj<>endobj -95 0 obj<>endobj -96 0 obj<>endobj -97 0 obj<>endobj -98 0 obj<>endobj -99 0 obj<>endobj +56 0 obj<>endobj +57 0 obj<>endobj +58 0 obj<>endobj +59 0 obj<>endobj +60 0 obj<>endobj +61 0 obj<>endobj +62 0 obj<>endobj +63 0 obj<>endobj +64 0 obj<>endobj +65 0 obj<>endobj +66 0 obj<>endobj +67 0 obj<>endobj +68 0 obj<>endobj +69 0 obj<>endobj +70 0 obj<>endobj +71 0 obj<>endobj +72 0 obj<>endobj +73 0 obj<>endobj +74 0 obj<>endobj +75 0 obj<>endobj +76 0 obj<>endobj +77 0 obj<>endobj +78 0 obj<>endobj +79 0 obj<>endobj +80 0 obj<>endobj +81 0 obj<>endobj +82 0 obj<>endobj +83 0 obj<>endobj +84 0 obj<>endobj +85 0 obj<>endobj +86 0 obj<>endobj +87 0 obj<>endobj +88 0 obj<>endobj +89 0 obj<>endobj +90 0 obj<>endobj +91 0 obj<>endobj +92 0 obj<>endobj +93 0 obj<>endobj +94 0 obj<>endobj +95 0 obj<>endobj +96 0 obj<>endobj +97 0 obj<>endobj +98 0 obj<>endobj +99 0 obj<>endobj 100 0 obj[56 0 R 57 0 R 58 0 R @@ -184,50 +184,50 @@ 97 0 R 98 0 R 99 0 R]endobj -101 0 obj<>endobj -102 0 obj<>endobj -103 0 obj<>endobj -104 0 obj<>endobj -105 0 obj<>endobj -106 0 obj<>endobj -107 0 obj<>endobj -108 0 obj<>endobj -109 0 obj<>endobj -110 0 obj<>endobj -111 0 obj<>endobj -112 0 obj<>endobj -113 0 obj<>endobj -114 0 obj<>endobj -115 0 obj<>endobj -116 0 obj<>endobj -117 0 obj<>endobj -118 0 obj<>endobj -119 0 obj<>endobj -120 0 obj<>endobj -121 0 obj<>endobj -122 0 obj<>endobj -123 0 obj<>endobj -124 0 obj<>endobj -125 0 obj<>endobj -126 0 obj<>endobj -127 0 obj<>endobj -128 0 obj<>endobj -129 0 obj<>endobj -130 0 obj<>endobj -131 0 obj<>endobj -132 0 obj<>endobj -133 0 obj<>endobj -134 0 obj<>endobj -135 0 obj<>endobj -136 0 obj<>endobj -137 0 obj<>endobj -138 0 obj<>endobj -139 0 obj<>endobj -140 0 obj<>endobj -141 0 obj<>endobj -142 0 obj<>endobj -143 0 obj<>endobj -144 0 obj<>endobj +101 0 obj<>endobj +102 0 obj<>endobj +103 0 obj<>endobj +104 0 obj<>endobj +105 0 obj<>endobj +106 0 obj<>endobj +107 0 obj<>endobj +108 0 obj<>endobj +109 0 obj<>endobj +110 0 obj<>endobj +111 0 obj<>endobj +112 0 obj<>endobj +113 0 obj<>endobj +114 0 obj<>endobj +115 0 obj<>endobj +116 0 obj<>endobj +117 0 obj<>endobj +118 0 obj<>endobj +119 0 obj<>endobj +120 0 obj<>endobj +121 0 obj<>endobj +122 0 obj<>endobj +123 0 obj<>endobj +124 0 obj<>endobj +125 0 obj<>endobj +126 0 obj<>endobj +127 0 obj<>endobj +128 0 obj<>endobj +129 0 obj<>endobj +130 0 obj<>endobj +131 0 obj<>endobj +132 0 obj<>endobj +133 0 obj<>endobj +134 0 obj<>endobj +135 0 obj<>endobj +136 0 obj<>endobj +137 0 obj<>endobj +138 0 obj<>endobj +139 0 obj<>endobj +140 0 obj<>endobj +141 0 obj<>endobj +142 0 obj<>endobj +143 0 obj<>endobj +144 0 obj<>endobj 145 0 obj[101 0 R 102 0 R 103 0 R @@ -272,70 +272,80 @@ 142 0 R 143 0 R 144 0 R]endobj -146 0 obj<>endobj -147 0 obj<>endobj -148 0 obj<>endobj -149 0 obj<>endobj -150 0 obj<>endobj -151 0 obj[146 0 R +146 0 obj<>endobj +147 0 obj<>endobj +148 0 obj<>endobj +149 0 obj<>endobj +150 0 obj<>endobj +151 0 obj<>endobj +152 0 obj<>endobj +153 0 obj<>endobj +154 0 obj<>endobj +155 0 obj<>endobj +156 0 obj<>endobj +157 0 obj<>endobj +158 0 obj<>endobj +159 0 obj<>endobj +160 0 obj<>endobj +161 0 obj[146 0 R 147 0 R 148 0 R 149 0 R -150 0 R]endobj -152 0 obj<>endobj -153 0 obj<>endobj -154 0 obj<>endobj -155 0 obj<>endobj -156 0 obj<>endobj -157 0 obj<>endobj -158 0 obj<>endobj -159 0 obj<>endobj -160 0 obj<>endobj -161 0 obj<>endobj -162 0 obj<>endobj -163 0 obj<>endobj -164 0 obj<>endobj -165 0 obj<>endobj -166 0 obj<>endobj -167 0 obj<>endobj -168 0 obj<>endobj -169 0 obj<>endobj -170 0 obj<>endobj -171 0 obj<>endobj -172 0 obj<>endobj -173 0 obj<>endobj -174 0 obj<>endobj -175 0 obj<>endobj -176 0 obj<>endobj -177 0 obj<>endobj -178 0 obj<>endobj -179 0 obj<>endobj -180 0 obj<>endobj -181 0 obj<>endobj -182 0 obj<>endobj -183 0 obj<>endobj -184 0 obj<>endobj -185 0 obj<>endobj -186 0 obj<>endobj -187 0 obj<>endobj -188 0 obj<>endobj -189 0 obj<>endobj -190 0 obj<>endobj -191 0 obj<>endobj -192 0 obj<>endobj -193 0 obj<>endobj -194 0 obj[153 0 R +150 0 R +151 0 R +152 0 R +153 0 R +154 0 R 155 0 R +156 0 R 157 0 R 158 0 R 159 0 R -160 0 R -161 0 R -162 0 R -163 0 R -164 0 R +160 0 R]endobj +162 0 obj<>endobj +163 0 obj<>endobj +164 0 obj<>endobj +165 0 obj<>endobj +166 0 obj<>endobj +167 0 obj<>endobj +168 0 obj<>endobj +169 0 obj<>endobj +170 0 obj<>endobj +171 0 obj<>endobj +172 0 obj<>endobj +173 0 obj<>endobj +174 0 obj<>endobj +175 0 obj<>endobj +176 0 obj<>endobj +177 0 obj<>endobj +178 0 obj<>endobj +179 0 obj<>endobj +180 0 obj<>endobj +181 0 obj<>endobj +182 0 obj<>endobj +183 0 obj<>endobj +184 0 obj<>endobj +185 0 obj<>endobj +186 0 obj<>endobj +187 0 obj<>endobj +188 0 obj<>endobj +189 0 obj<>endobj +190 0 obj<>endobj +191 0 obj<>endobj +192 0 obj<>endobj +193 0 obj<>endobj +194 0 obj<>endobj +195 0 obj<>endobj +196 0 obj<>endobj +197 0 obj<>endobj +198 0 obj<>endobj +199 0 obj<>endobj +200 0 obj<>endobj +201 0 obj<>endobj +202 0 obj<>endobj +203 0 obj<>endobj +204 0 obj[163 0 R 165 0 R -166 0 R 167 0 R 168 0 R 169 0 R @@ -362,59 +372,9 @@ 190 0 R 191 0 R 192 0 R -193 0 R]endobj -195 0 obj<>endobj -196 0 obj<>endobj -197 0 obj<>endobj -198 0 obj<>endobj -199 0 obj<>endobj -200 0 obj<>endobj -201 0 obj<>endobj -202 0 obj<>endobj -203 0 obj<>endobj -204 0 obj<>endobj -205 0 obj<>endobj -206 0 obj<>endobj -207 0 obj<>endobj -208 0 obj<>endobj -209 0 obj<>endobj -210 0 obj<>endobj -211 0 obj<>endobj -212 0 obj<>endobj -213 0 obj<>endobj -214 0 obj<>endobj -215 0 obj<>endobj -216 0 obj<>endobj -217 0 obj<>endobj -218 0 obj<>endobj -219 0 obj<>endobj -220 0 obj<>endobj -221 0 obj<>endobj -222 0 obj<>endobj -223 0 obj<>endobj -224 0 obj<>endobj -225 0 obj<>endobj -226 0 obj<>endobj -227 0 obj<>endobj -228 0 obj<>endobj -229 0 obj<>endobj -230 0 obj<>endobj -231 0 obj<>endobj -232 0 obj<>endobj -233 0 obj<>endobj -234 0 obj<>endobj -235 0 obj<>endobj -236 0 obj<>endobj -237 0 obj<>endobj -238 0 obj<>endobj -239 0 obj<>endobj -240 0 obj<>endobj -241 0 obj<>endobj -242 0 obj<>endobj -243 0 obj<>endobj -244 0 obj<>endobj -245 0 obj<>endobj -246 0 obj[195 0 R +193 0 R +194 0 R +195 0 R 196 0 R 197 0 R 198 0 R @@ -422,9 +382,59 @@ 200 0 R 201 0 R 202 0 R -203 0 R -204 0 R -205 0 R +203 0 R]endobj +205 0 obj<>endobj +206 0 obj<>endobj +207 0 obj<>endobj +208 0 obj<>endobj +209 0 obj<>endobj +210 0 obj<>endobj +211 0 obj<>endobj +212 0 obj<>endobj +213 0 obj<>endobj +214 0 obj<>endobj +215 0 obj<>endobj +216 0 obj<>endobj +217 0 obj<>endobj +218 0 obj<>endobj +219 0 obj<>endobj +220 0 obj<>endobj +221 0 obj<>endobj +222 0 obj<>endobj +223 0 obj<>endobj +224 0 obj<>endobj +225 0 obj<>endobj +226 0 obj<>endobj +227 0 obj<>endobj +228 0 obj<>endobj +229 0 obj<>endobj +230 0 obj<>endobj +231 0 obj<>endobj +232 0 obj<>endobj +233 0 obj<>endobj +234 0 obj<>endobj +235 0 obj<>endobj +236 0 obj<>endobj +237 0 obj<>endobj +238 0 obj<>endobj +239 0 obj<>endobj +240 0 obj<>endobj +241 0 obj<>endobj +242 0 obj<>endobj +243 0 obj<>endobj +244 0 obj<>endobj +245 0 obj<>endobj +246 0 obj<>endobj +247 0 obj<>endobj +248 0 obj<>endobj +249 0 obj<>endobj +250 0 obj<>endobj +251 0 obj<>endobj +252 0 obj<>endobj +253 0 obj<>endobj +254 0 obj<>endobj +255 0 obj<>endobj +256 0 obj[205 0 R 206 0 R 207 0 R 208 0 R @@ -464,50 +474,9 @@ 242 0 R 243 0 R 244 0 R -245 0 R]endobj -247 0 obj<>endobj -248 0 obj<>endobj -249 0 obj<>endobj -250 0 obj<>endobj -251 0 obj<>endobj -252 0 obj<>endobj -253 0 obj<>endobj -254 0 obj<>endobj -255 0 obj<>endobj -256 0 obj<>endobj -257 0 obj<>endobj -258 0 obj<>endobj -259 0 obj<>endobj -260 0 obj<>endobj -261 0 obj<>endobj -262 0 obj<>endobj -263 0 obj<>endobj -264 0 obj<>endobj -265 0 obj<>endobj -266 0 obj<>endobj -267 0 obj<>endobj -268 0 obj<>endobj -269 0 obj<>endobj -270 0 obj<>endobj -271 0 obj<>endobj -272 0 obj<>endobj -273 0 obj<>endobj -274 0 obj<>endobj -275 0 obj<>endobj -276 0 obj<>endobj -277 0 obj<>endobj -278 0 obj<>endobj -279 0 obj<>endobj -280 0 obj<>endobj -281 0 obj<>endobj -282 0 obj<>endobj -283 0 obj<>endobj -284 0 obj<>endobj -285 0 obj<>endobj -286 0 obj<>endobj -287 0 obj<>endobj -288 0 obj<>endobj -289 0 obj[247 0 R +245 0 R +246 0 R +247 0 R 248 0 R 249 0 R 250 0 R @@ -515,9 +484,59 @@ 252 0 R 253 0 R 254 0 R -255 0 R -256 0 R -257 0 R +255 0 R]endobj +257 0 obj<>endobj +258 0 obj<>endobj +259 0 obj<>endobj +260 0 obj<>endobj +261 0 obj<>endobj +262 0 obj<>endobj +263 0 obj<>endobj +264 0 obj<>endobj +265 0 obj<>endobj +266 0 obj<>endobj +267 0 obj<>endobj +268 0 obj<>endobj +269 0 obj<>endobj +270 0 obj<>endobj +271 0 obj<>endobj +272 0 obj<>endobj +273 0 obj<>endobj +274 0 obj<>endobj +275 0 obj<>endobj +276 0 obj<>endobj +277 0 obj<>endobj +278 0 obj<>endobj +279 0 obj<>endobj +280 0 obj<>endobj +281 0 obj<>endobj +282 0 obj<>endobj +283 0 obj<>endobj +284 0 obj<>endobj +285 0 obj<>endobj +286 0 obj<>endobj +287 0 obj<>endobj +288 0 obj<>endobj +289 0 obj<>endobj +290 0 obj<>endobj +291 0 obj<>endobj +292 0 obj<>endobj +293 0 obj<>endobj +294 0 obj<>endobj +295 0 obj<>endobj +296 0 obj<>endobj +297 0 obj<>endobj +298 0 obj<>endobj +299 0 obj<>endobj +300 0 obj<>endobj +301 0 obj<>endobj +302 0 obj<>endobj +303 0 obj<>endobj +304 0 obj<>endobj +305 0 obj<>endobj +306 0 obj<>endobj +307 0 obj<>endobj +308 0 obj[257 0 R 258 0 R 259 0 R 260 0 R @@ -548,391 +567,427 @@ 285 0 R 286 0 R 287 0 R -288 0 R]endobj -290 0 obj<>endobj -291 0 obj<>endobj -292 0 obj<>endobj -293 0 obj<>endobj -294 0 obj[291 0 R -293 0 R]endobj -295 0 obj<>endobj -296 0 obj<>endobj -297 0 obj<>endobj -298 0 obj<>endobj -299 0 obj<>endobj -300 0 obj<>endobj -301 0 obj<>endobj -302 0 obj<>endobj -303 0 obj<>endobj -304 0 obj<>endobj -305 0 obj<>endobj -306 0 obj<>endobj -307 0 obj[296 0 R +288 0 R +289 0 R +290 0 R +291 0 R +292 0 R +293 0 R +294 0 R +295 0 R +296 0 R +297 0 R 298 0 R +299 0 R 300 0 R +301 0 R 302 0 R +303 0 R 304 0 R -306 0 R]endobj -308 0 obj<>endobj -309 0 obj<>endobj -310 0 obj<>endobj -311 0 obj<>endobj -312 0 obj<>endobj -313 0 obj<>endobj -314 0 obj<>endobj -315 0 obj<>endobj -316 0 obj<>endobj -317 0 obj<>endobj -318 0 obj<>endobj -319 0 obj<>endobj -320 0 obj<>endobj -321 0 obj<>endobj -322 0 obj<>endobj -323 0 obj<>endobj -324 0 obj<>endobj -325 0 obj<>endobj -326 0 obj<>endobj -327 0 obj<>endobj -328 0 obj<>endobj -329 0 obj<>endobj -330 0 obj<>endobj -331 0 obj<>endobj -332 0 obj<>endobj -333 0 obj<>endobj -334 0 obj<>endobj -335 0 obj<>endobj -336 0 obj<>endobj -337 0 obj<>endobj -338 0 obj<>endobj -339 0 obj<>endobj -340 0 obj<>endobj -341 0 obj<>endobj -342 0 obj<>endobj -343 0 obj<>endobj -344 0 obj<>endobj -345 0 obj<>endobj -346 0 obj<>endobj -347 0 obj<>endobj -348 0 obj<>endobj -349 0 obj<>endobj -350 0 obj<>endobj -351 0 obj<>endobj -352 0 obj<>endobj -353 0 obj<>endobj -354 0 obj<>endobj -355 0 obj<>endobj -356 0 obj<>endobj -357 0 obj<>endobj -358 0 obj<>endobj -359 0 obj<>endobj -360 0 obj<>endobj -361 0 obj<>endobj -362 0 obj<>endobj -363 0 obj<>endobj -364 0 obj<>endobj -365 0 obj<>endobj -366 0 obj<>endobj -367 0 obj<>endobj -368 0 obj<>endobj -369 0 obj<>endobj -370 0 obj<>endobj -371 0 obj<>endobj -372 0 obj<>endobj -373 0 obj<>endobj -374 0 obj<>endobj -375 0 obj<>endobj -376 0 obj<>endobj -377 0 obj<>endobj -378 0 obj<>endobj -379 0 obj<>endobj -380 0 obj<>endobj -381 0 obj<>endobj -382 0 obj<>endobj -383 0 obj<>endobj -384 0 obj<>endobj -385 0 obj<>endobj -386 0 obj<>endobj -387 0 obj<>endobj -388 0 obj<>endobj -389 0 obj<>endobj -390 0 obj<>endobj -391 0 obj<>endobj -392 0 obj<>endobj -393 0 obj<>endobj -394 0 obj<>endobj -395 0 obj<>endobj -396 0 obj<>endobj -397 0 obj<>endobj -398 0 obj<>endobj -399 0 obj<>endobj -400 0 obj<>endobj -401 0 obj<>endobj -402 0 obj<>endobj -403 0 obj<>endobj -404 0 obj<>endobj -405 0 obj<>endobj -406 0 obj<>endobj -407 0 obj<>endobj -408 0 obj<>endobj -409 0 obj<>endobj -410 0 obj<>endobj -411 0 obj<>endobj -412 0 obj<>endobj -413 0 obj<>endobj -414 0 obj<>endobj -415 0 obj<>endobj -416 0 obj<>endobj -417 0 obj<>endobj -418 0 obj<>endobj -419 0 obj<>endobj -420 0 obj<>endobj -421 0 obj<>endobj -422 0 obj<>endobj -423 0 obj<>endobj -424 0 obj<>endobj -425 0 obj<>endobj -426 0 obj<>endobj -427 0 obj<>endobj -428 0 obj<>endobj -429 0 obj<>endobj -430 0 obj<>endobj -431 0 obj<>endobj -432 0 obj<>endobj -433 0 obj<>endobj -434 0 obj<>endobj -435 0 obj<>endobj -436 0 obj<>endobj -437 0 obj<>endobj -438 0 obj<>endobj -439 0 obj<>endobj -440 0 obj<>endobj -441 0 obj<>endobj -442 0 obj<>endobj -443 0 obj<>endobj -444 0 obj<>endobj -445 0 obj<>endobj -446 0 obj<>endobj -447 0 obj<>endobj -448 0 obj<>endobj -449 0 obj<>endobj -450 0 obj<>endobj -451 0 obj<>endobj -452 0 obj<>endobj -453 0 obj<>endobj -454 0 obj<>endobj -455 0 obj<>endobj -456 0 obj<>endobj -457 0 obj<>endobj -458 0 obj<>endobj -459 0 obj<>endobj -460 0 obj<>endobj -461 0 obj<>endobj -462 0 obj<>endobj -463 0 obj<>endobj -464 0 obj<>endobj -465 0 obj<>endobj -466 0 obj<>endobj -467 0 obj<>endobj -468 0 obj<>endobj -469 0 obj<>endobj -470 0 obj<>endobj -471 0 obj<>endobj -472 0 obj<>endobj -473 0 obj<>endobj -474 0 obj<>endobj -475 0 obj<>endobj -476 0 obj<>endobj -477 0 obj<>endobj -478 0 obj<>endobj -479 0 obj<>endobj -480 0 obj<>endobj -481 0 obj<>endobj -482 0 obj<>endobj -483 0 obj<>endobj -484 0 obj<>endobj -485 0 obj<>endobj -486 0 obj<>endobj -487 0 obj<>endobj -488 0 obj<>endobj -489 0 obj<>endobj -490 0 obj<>endobj -491 0 obj<>endobj -492 0 obj<>endobj -493 0 obj<>endobj -494 0 obj<>endobj -495 0 obj<>endobj -496 0 obj<>endobj -497 0 obj<>endobj -498 0 obj<>endobj -499 0 obj<>endobj -500 0 obj<>endobj -501 0 obj<>endobj -502 0 obj<>endobj -503 0 obj<>endobj -504 0 obj<>endobj -505 0 obj<>endobj -506 0 obj<>endobj -507 0 obj<>endobj -508 0 obj<>endobj -509 0 obj<>endobj -510 0 obj<>endobj -511 0 obj<>endobj -512 0 obj<>endobj -513 0 obj<>endobj -514 0 obj<>endobj -515 0 obj<>endobj -516 0 obj<>endobj -517 0 obj<>endobj -518 0 obj<>endobj -519 0 obj<>endobj -520 0 obj<>endobj -521 0 obj<>endobj -522 0 obj<>endobj +310 0 obj[309 0 R]endobj +311 0 obj<>endobj +312 0 obj<>endobj +313 0 obj<>endobj +314 0 obj<>endobj +315 0 obj[312 0 R +314 0 R]endobj +316 0 obj<>endobj +317 0 obj<>endobj +318 0 obj<>endobj +319 0 obj<>endobj +320 0 obj<>endobj +321 0 obj<>endobj +322 0 obj<>endobj +323 0 obj<>endobj +324 0 obj<>endobj +325 0 obj<>endobj +326 0 obj<>endobj +327 0 obj<>endobj +328 0 obj[317 0 R +319 0 R +321 0 R +323 0 R +325 0 R +327 0 R]endobj +329 0 obj<>endobj +330 0 obj<>endobj +331 0 obj<>endobj +332 0 obj<>endobj +333 0 obj<>endobj +334 0 obj<>endobj +335 0 obj<>endobj +336 0 obj<>endobj +337 0 obj<>endobj +338 0 obj<>endobj +339 0 obj<>endobj +340 0 obj<>endobj +341 0 obj<>endobj +342 0 obj<>endobj +343 0 obj<>endobj +344 0 obj<>endobj +345 0 obj<>endobj +346 0 obj<>endobj +347 0 obj<>endobj +348 0 obj<>endobj +349 0 obj<>endobj +350 0 obj<>endobj +351 0 obj<>endobj +352 0 obj<>endobj +353 0 obj<>endobj +354 0 obj<>endobj +355 0 obj<>endobj +356 0 obj<>endobj +357 0 obj<>endobj +358 0 obj<>endobj +359 0 obj<>endobj +360 0 obj<>endobj +361 0 obj<>endobj +362 0 obj<>endobj +363 0 obj<>endobj +364 0 obj<>endobj +365 0 obj<>endobj +366 0 obj<>endobj +367 0 obj<>endobj +368 0 obj<>endobj +369 0 obj<>endobj +370 0 obj<>endobj +371 0 obj<>endobj +372 0 obj<>endobj +373 0 obj<>endobj +374 0 obj<>endobj +375 0 obj<>endobj +376 0 obj<>endobj +377 0 obj<>endobj +378 0 obj<>endobj +379 0 obj<>endobj +380 0 obj<>endobj +381 0 obj<>endobj +382 0 obj<>endobj +383 0 obj<>endobj +384 0 obj<>endobj +385 0 obj<>endobj +386 0 obj<>endobj +387 0 obj<>endobj +388 0 obj<>endobj +389 0 obj<>endobj +390 0 obj<>endobj +391 0 obj<>endobj +392 0 obj<>endobj +393 0 obj<>endobj +394 0 obj<>endobj +395 0 obj<>endobj +396 0 obj<>endobj +397 0 obj<>endobj +398 0 obj<>endobj +399 0 obj<>endobj +400 0 obj<>endobj +401 0 obj<>endobj +402 0 obj<>endobj +403 0 obj<>endobj +404 0 obj<>endobj +405 0 obj<>endobj +406 0 obj<>endobj +407 0 obj<>endobj +408 0 obj<>endobj +409 0 obj<>endobj +410 0 obj<>endobj +411 0 obj<>endobj +412 0 obj<>endobj +413 0 obj<>endobj +414 0 obj<>endobj +415 0 obj<>endobj +416 0 obj<>endobj +417 0 obj<>endobj +418 0 obj<>endobj +419 0 obj<>endobj +420 0 obj<>endobj +421 0 obj<>endobj +422 0 obj<>endobj +423 0 obj<>endobj +424 0 obj<>endobj +425 0 obj<>endobj +426 0 obj<>endobj +427 0 obj<>endobj +428 0 obj<>endobj +429 0 obj<>endobj +430 0 obj<>endobj +431 0 obj<>endobj +432 0 obj<>endobj +433 0 obj<>endobj +434 0 obj<>endobj +435 0 obj<>endobj +436 0 obj<>endobj +437 0 obj<>endobj +438 0 obj<>endobj +439 0 obj<>endobj +440 0 obj<>endobj +441 0 obj<>endobj +442 0 obj<>endobj +443 0 obj<>endobj +444 0 obj<>endobj +445 0 obj<>endobj +446 0 obj<>endobj +447 0 obj<>endobj +448 0 obj<>endobj +449 0 obj<>endobj +450 0 obj<>endobj +451 0 obj<>endobj +452 0 obj<>endobj +453 0 obj<>endobj +454 0 obj<>endobj +455 0 obj<>endobj +456 0 obj<>endobj +457 0 obj<>endobj +458 0 obj<>endobj +459 0 obj<>endobj +460 0 obj<>endobj +461 0 obj<>endobj +462 0 obj<>endobj +463 0 obj<>endobj +464 0 obj<>endobj +465 0 obj<>endobj +466 0 obj<>endobj +467 0 obj<>endobj +468 0 obj<>endobj +469 0 obj<>endobj +470 0 obj<>endobj +471 0 obj<>endobj +472 0 obj<>endobj +473 0 obj<>endobj +474 0 obj<>endobj +475 0 obj<>endobj +476 0 obj<>endobj +477 0 obj<>endobj +478 0 obj<>endobj +479 0 obj<>endobj +480 0 obj<>endobj +481 0 obj<>endobj +482 0 obj<>endobj +483 0 obj<>endobj +484 0 obj<>endobj +485 0 obj<>endobj +486 0 obj<>endobj +487 0 obj<>endobj +488 0 obj<>endobj +489 0 obj<>endobj +490 0 obj<>endobj +491 0 obj<>endobj +492 0 obj<>endobj +493 0 obj<>endobj +494 0 obj<>endobj +495 0 obj<>endobj +496 0 obj<>endobj +497 0 obj<>endobj +498 0 obj<>endobj +499 0 obj<>endobj +500 0 obj<>endobj +501 0 obj<>endobj +502 0 obj<>endobj +503 0 obj<>endobj +504 0 obj<>endobj +505 0 obj<>endobj +506 0 obj<>endobj +507 0 obj<>endobj +508 0 obj<>endobj +509 0 obj<>endobj +510 0 obj<>endobj +511 0 obj<>endobj +512 0 obj<>endobj +513 0 obj<>endobj +514 0 obj<>endobj +515 0 obj<>endobj +516 0 obj<>endobj +517 0 obj<>endobj +518 0 obj<>endobj +519 0 obj<>endobj +520 0 obj<>endobj +521 0 obj<>endobj +522 0 obj<>endobj +523 0 obj<>endobj +524 0 obj<>endobj +525 0 obj<>endobj +526 0 obj<>endobj +527 0 obj<>endobj +528 0 obj<>endobj +529 0 obj<>endobj +530 0 obj<>endobj +531 0 obj<>endobj +532 0 obj<>endobj +533 0 obj<>endobj +534 0 obj<>endobj +535 0 obj<>endobj +536 0 obj<>endobj +537 0 obj<>endobj +538 0 obj<>endobj +539 0 obj<>endobj +540 0 obj<>endobj +541 0 obj<>endobj +542 0 obj<>endobj +543 0 obj<>endobj +544 0 obj<>endobj +545 0 obj<>endobj +546 0 obj<>endobj +547 0 obj<>endobj +548 0 obj<>endobj +549 0 obj<>endobj +550 0 obj<>endobj +551 0 obj<>endobj +552 0 obj<>endobj +553 0 obj<>endobj -523 0 obj<>/XObject<<>>>>>>endobj -524 0 obj<>stream +554 0 obj<>/XObject<<>>>>>>endobj +555 0 obj<>stream x+ä2T0BCs#c3…ä\.§.}7K#…4CCK=ccS=3…= D²F°£¯“£‚KjYjN~AjQ±‚{ifJªfH—kW SÙ?endstream endobj -525 0 obj<>/XObject<<>>>>/Annots 55 0 R>>endobj -526 0 obj<>stream +556 0 obj<>/XObject<<>>>>/Annots 55 0 R>>endobj +557 0 obj<>stream xÕ[moGþî_±S Úììû~ôK’ Ð$=K×O ÙZÛ:XRN–zÍ¿ïCrfÈ]%HÃyÝHõèYÎÉ™Uþsæ’ ÿ¹¤É“¢Nn7gYšá›ø×õ;ú&©Ëo’¢K“ù™›¤+ÓÒpn—WigÈ¢¦A‹*m1hS¥ÎÔ@f9 ò“D²2Y‡™6I™Å PU[=]"Àëà&©2L§œ°¡ÃÊUœƒºJZ ¶j ”a ‹‘²o’<ÏÒÂÈZ V–5+’ƒy-[4ƒ‘ÙïUMÊÀ9Ë€œd ùÝa¥•ÁªNë(È@=çrG.Œ¤Å¶®0‚²2lI&}è°žkK’‹œ4oÉÈHRŒT®1À@Ás²ò‘3p“´UšûAHÎ@ÌW6db#°êTj„çbVD’Ë.S§ ˆ‚#'‰’ClÃβƒmrŒ¯²2iCÑê]^2ÐI=ç2Š;%-&§“ƒ••aën Ã2Ða=燉¤Å4,­eY¶r¼˜¡%Ös-m!å Ä ŽÔR’¤Ì)¢8£9hL¸.@˜A™Bäù"i9’!Î@Ì—•ä¹HZ ¶¬á{à šc1£¬8©G—‹:Às ¥Ô2r’By'’“B!‘å)‹®Õ¥§ "«DI Ù 1(ç4%-‹Uk¨L‰]FE†—¹` SzN¦ŒœdG‰õRA‹Á¢®Ô†•)±nq× tJÏÉ‘3¦¤4©‚Ó”\£¬LYµºß :¥çxñ”3ƒæ9 ª‚%œV”HÓ’[ðŠ($Aöy$+,h4„3?É@=GK‡)")‚N:d ‚ž£ÔS%E$i˜¼£`óûNÉñ¾ ï;å Dbn°ÆÊH«QÂ|%y¾ºfe:Ÿçd‚Èè A9D^žÄ|EFóE’×7¯¤á(@ˆ6£%OðƒÄHFPH))ƒBý§9Ôs˜Êˆ ©Â*g YÁ.ƒÊ„¹)õ9Ðs-m|å äFª2Ú1!| uP -ÄÜIÀñ$€&4 ÃO²6,ˆ2#8g ‚žsXR¨IŽ`‡Ø¡tÃSˆ‚£Ü"'Ó“qFù2ò*ÈT¥åI¬¥ÔËŒ TÐsÔ\`ÆHŠªø’ò¿2PAÏ9´\%¢‡žÔ )È"È@=燢€žTA$ uôœloJ+Ö9éTe ‚žs URI¶çÊ èìr:JÔ¬‹"¸TAT³•ºÈ &F ÑnŠÏTKeãÇøsòŒ« è)ª¤6±ŽBž‘%‹ a+“/Xˆ?G!Ï8äôôQ,„(:‚?G!ϸ–ÎD‘ºXœ½~ œ%‹;ÄÒr•ÔM™,V|ŽÃ×·¯Ë›Ç>ÙÝ%—»í¡ßž~XüRZ#’šy±YNb¯æç.Îé ä„&§#"¾L®úßûÇÝç~ÏÂPµnõî¸^õ$cŸw­¤Sÿqb$6…Ù¶0”*òÈDçjoâ¢_nØŒ:mÛò…˜ÜèÍÑ5Ëòd†$ÊKv~ótØ/o¼jmÚT/Lù`Äèÿ9é;+XáhËåÃòó¡ß³)hÇ΀.¥¯°˜!ïÖÛõa½ÛÒ׸ h3yty2í\áŸþØ.Þšó£UZåÿþçýî°»Ý=26„Âr»¢¯Ðú”mÆXn8ÊQöQKý—×ýÓîñÔ@ikë0ƇݪçÍ‚Ö©(ÿ‡mQ‘*¯ßÆHÎQO±Ä1š]ê}S£>Šw>¾YD{ëlÒ ‰6Ø‘Ë«ןί.Ïç rî*Šè]»¢EZL·_ŇÜ7´¥Ûòñâ# Â!k›°P&0ó¥G¾m”g‡µ„œfd -¹p¾µIý†M:_nn–4nð\‚ó|û°>ô·‡ãž7ºÉ3V3ÚcÎeºÁ°0ãÅ|¿=ìw«ãmÜù/+å²93œZÍöÂQolŇããa}xØ÷ËÕz{Ï{L«Gâ“ CGRør˜èŠâð6ãs‡§XG=«MƒÈ²cûÖ4ôÆ]ÈÍO›Ið8úTþÜFŒç£p8´©üË6m_žM-…ÔìĦjlÓöf#ËÓC,ãWýÓú~ËÙ—/Ãc·M‚Ù.Û@£ÑønnôÑrãâAzfœŸb5xŠù%Mñæâ_ïÈtR{.yúòtè¹_EA‰ôYÝÑ‘R¦1q%Üzl¢ÆËü±ÿ/IäEZ¹Ð¬}:>¥qµ6Ï¿lË?xñÑÞà<Ã}ͳZ7œŒmÉ]®±ñ$¥úeÅ­W[…‚wE øë«_àE4ièÃòv¿ F¶S–—‘3çÐÛ5üJJå°=µïüê*˜ˆºÓ´!ÕFÑ!ÕÉÖñÙ ‹Ö mûJjý†m?ýòS°šÐ2TCk[Vù=Œ›ÿ7ŠÆ ‹!¶Ø_Ù}o[naøœ‚»á¼x!iÖÉÙ°n]5Y%YoHBϘ¬nîý‡°BxŸ1åN2 þm#$mŒŒxXíƒ tõòBŒHƒôVËd¾Ê·[Öˆ»Ý~³<ü¶êoŽ÷¿Ù5™¦z‹æ¶Nãê‘Ú«ïc|f¥úrÚcÜŽwñB`~¼¿ïŸèÀÛ7°“Ÿß\!ioÃé4ú=;}Žvjsok8êôûíòQr.h_B`ºñ¥^j˜ð iÂéUŽ¬tE&7KHuUÎàÿÀAçÑŸ<ÊnêC¸7n6Ç)ýkÍÆÖ7Yè+›Pƒïi§ÂzŠ:l2#>z#»N“JH)fÕ¸Âräá -¡‰×nk>àµvÉ7_ýn¿ê÷éí¼,êª)Òñʬ4dái»üåýÅÍñîÇÏ»'éúanª‡>{.tö¤üiáúù4³¶`Í®ÿñ÷壸¯ &©¿Þñíõ ›áí(ïýîÇK±Ê¿?U^z½ £囫'š•ØçPÌ×_uý|¼céä4™ö!pè%÷(ršõÉù'êã­ü„úGߟ¤ËöDýùÜÙ´“œ]‚çQ´¨µ ×8ݩꃸWÕ[~{0EôDõË¡î.cåée—‹„ý®q£Ús{få¿ÆÇnG[@ûx ú0äê“$ú¨ü(`œ”W«ùõ Ø}s€Ÿ0LµWƒêY;®Pˆü±Û¯áî•Ÿ0OFåÑKŽ]/vèúï5hèG«Ï¾Awh8V]ÊëPõçUõé¶êë·øa“ü?‘ÃeYÝÐùï1ÌL’øƒ’"ÿÀá¬É:zrMöfqöϳ?æšñ'endstream -endobj -527 0 obj<>/XObject<<>>>>/Annots 100 0 R>>endobj -528 0 obj<>stream -xÍ[Ms9½ûWôm³)Ýìï£ãLf\å8N¤ÔžeY™h#©½úÈLþý>$nyÖ»[É3U‰žž@€ìο.²$ÅÿYR»$¯’ùú"§ø&þñéWú&©Š®“¼g¬’É…ë¤L{œë¤)ÇÎȸN²<7†Ì+š0/ñ%uãÒšÐÀuR×ãÖpbЬ׆´,Æ),k0ØÚõ. Rȹq…ꆔe@ -(–`ØHŠ`Úb® È@=—eéI‹i؆ˆ,/PÙVXR¿@âÊ•‰rbP—õH‹Á%–OE)ʪe—°ÓÐŒúPŽc ÈÕVÎ@Ì—UX%-¦È1³²²eÅá(èx®ihÊÈH ÐÒD’U¹:K@tVà2øºò/‰´˜t-ú¬Á`¡‚••I±È•K%Ôs~’HZ'UV& ²e=Î83x¸¬¦uˆ²¢¾¤ý.*1P•<—¥ÅH$-†JU†MdXƒÁ¶œ§¬x4%7‡f@“Šƒ=‡ÌHPŽ¶fѦº5De—a÷„_i1Ô))6U”½¨ -ö -Ç·4Ї»rîA®-¡”rb¾´î‘ƒÍÈHµlÁº²vl‰Á`ëÞTY^Øæ‘7y%¤¤RK*ñ/ÙNÊÂE^«G¨ ç²´@ÞWRftäß0#ô²l‘‘3Ú8Ú‡JÊ œ%à tPÏI‘dÁ¼¥<àDÁÀµ®Ê‰¢-®[Î@åÿ -7ÍývÀÅKZ†ÜÓ¦b;12b›½jg>åç¬%Mì–†®´á¸sø›ºb·ÆM=ýLJ›Úên}?žw›/4NTÎ…µù²” KƒÜÿú”Fçr©,BL:tz5>GK,ÖªÏo.ç³É¡`Ô¹OÉ%RØÝ’·&î@Ë°@Ã)O‹ÅÀî+l(“YÇéå·ÙæaµÜüÎ^C»³dÇŽDÃÝf¹÷ð?¾.÷‹ÝãlÎÎGƒÐ´'Žgo]·=vœxþÓn–‰h\¬G{© .7‡Ù~ÙqþBwZ4¾Šü\;qκ0çØ´â¿Ò#¹48òãa¹ý&A‹'OU?פ0ºË(ÔÐKô‹¶àpÓM~lö³?yÏyÅÃ/âoo·¿±’Ç›ìò¾;ìÙx!öG*ì»ñœ¿Ç±âÄ[©¿†Î‘½ÂÐpè=WjñZÈõ·‹ý›ë 5 t!Q.yQ6Aó( 7…èäÃz|Þ,ÙÙÔÙUUH9ÝvõÀ+„ƒ¯óßöUÿÉÈå²2±Zd¸V6Õ¢>®hn·ÝÃaóÆY];X±g„£Hψ£Ý÷yG úzÁimùK²a<öV NâÖÃ#¤ay:\öÅúðÇÍô×å#)–ž6ÿ Üa · ×ö¶¶¡æ ͺ›ívtÛq çѳv•Æþè -ZÚQÕ/ÒØ5CCnºù7ß{P÷${~8Ú±7çLe¾Öæðíbóƒ Fª,ë¸Þã”ÀþA}À#¯—cš+Ù9x -×2ŸÈÕ¬évöøÐu|ÀÇ)¡jBŽÿ|ý–-C¢N«³ CÂ[u´wšaÈÝu[®Ät#.›ÃúÞ°q•Q„ðxš“¼UÛlŒÚvûnÞñùfÒXv¯ºõã -g—=(î‹pb=¹%2¡ØÓë3Ÿk2¼C"2çáÈb­ÝÅ«&<ñ W -ÉîÇn¿XSÐãê»ÌüMC‚ãœÜ>Q$œ~:T·Ï›ïýÌ¿’1x¢¡~~Û­gÒbõÜÿéîêo’„Ð=ýèíüåƒvRx0oR+.‡ý²;)¶g„]50âø0éÛ¹¯/àDöbÎ÷ #¼öbϘä…ã³ôÕvñ°” az€ôrJµ7¢6 WÈÃ8ºípqÁ5o7…ôžàêÃï¤*§’É~‹Æý°õ}/Š•ç=|zq/{2ð8ÆÔÆs“þ²žxýåâºgÂq”ý‚B¼Øò} {KBó¼½m.÷ 5F=õ/b±Ã}üy•÷Ý›ÐXŽKï'(\&Ñå~‡'Ýwy®‚wz\®zQ€7;\wÓ¯Qp*.–nq`”ãº-µwËG¾\ÃK1 6êI–¤×LýÓT‹CâñÖyÚtR[Ý3§ }M#âáHlYŸüÕåüýŽ6Qu’Kè¾ñÞnz¹or®·¼ÞL.I[ëñ‡¿ÌûÿÓF›&m¾+/©RÎüÖBoù6ž¶><.6dtï"à®[-çr?€µÀûk{lÃS€Þö“ƒÿs¶}<,¶l½†Ÿ]o¾tl1ÎPñê£oqyòn¤ðrgž­r|ÎÖІÈc®t\¤Á&¥Âá±u|AÎ_\,ðjÒÏ-rÁB¼•5Ü‹rV|ÎÂ'#u²˜or9ræH•ƒU6ŒÔ,åKÚ“§¶áÕªÛÉÃ<,Ox -}’-öô$…˜ƒû³^,âagÈg¬¹éºo¾«ÆË™úÂÁäúíDrÍÏ µ§M*åè8|ƒ…»+éGžsÒ_˜E $o#~¬v’NÑZ(v½~‡·Aù}$ü€ÿ‚‹ßkÆÛ“Ë÷o.“·‹ï‹U÷ˆ Ãä×ÃR^Éñ> -©Q¶ôâÒrIÎùezññâßûˆ)endstream -endobj -529 0 obj<>/XObject<<>>>>/Annots 145 0 R>>endobj -530 0 obj<>stream +ÄÜIÀñ$€&4 ÃO²6,ˆ2#8g ‚žsXR¨IŽ`‡Ø¡tÃSˆ‚£Ü"'Ó“qFù2ò*ÈT¥åI¬¥ÔËŒ TÐsÔ\`ÆHŠªø’ò¿2PAÏ9´\%¢‡žÔ )È"È@=燢€žTA$ uôœloJ+Ö9éTe ‚žs URI¶çÊ èìr:JÔ¬‹"¸TAT³•ºÈ &F ÑnŠÏTKeãÇøsòŒ« è)ª¤6±ŽBž‘%‹ a+“/Xˆ?G!Ï8äôôQ,„(:‚?G!ϸ–ÎD‘ºXœ½~ œ%‹;ÄÒr•ÔM™,V|ŽÃ×·¯Ë›Ç>ÙÝ%—»í¡ßž~XüRZ#’šy±YNb¯æç.Îé ä„&§#"¾L®úßûÇÝç~ÏÂPµnõî¸^õ$cŸw­¤Sÿqb$6…Ù¶0”*òÈDçjoâ¢_nØŒ:mÛò…˜ÜèÍÑ5Ëòd†$ÊKv~ótØ/o¼jmÚT/Lù`Äèÿ9é;+XáhËåÃòó¡ß³)hÇ΀.¥¯°˜!ïÖÛõa½ÛÒ׸ h3yty2í\áŸþØ.Þšó£UZåÿþçýî°»Ý=26„Âr»¢¯Ðú”mÆXn8ÊQöQKý—×ýÓîñÔ@ikë0ƇݪçÍ‚Ö©(ÿ‡mQ“*¯ßÆHÎQO±Ä1š]ê}S£>Šw>¾YD{ëlÒ ‰6Ø‘Ë«ןί.Ïç rî*Šè]»¢EZL·_ŇÜ7´¥Ûòñâ# Â!k›°P&0ó¥G¾m”g‡„œfd +¹p¾µIý†M:_nn–4nð\‚ó|û°>ô·‡ãž7ºÉ3V;ÚcÎeºÁ°0ãÅ|¿=ìw«ãmÜù/+å²93œZÍöÂQolŇããa}xØ÷ËÕz{Ï{L«Gâ“ CGRør˜èŠâð6ãs‡§XG=«MƒÈ²cûÖ4ôÆ]ÈÍO›Ið8úTþÜFŒç£p8´©üË6m_žM…ÔìĦjlÓöf#ËÓC,ãWýÓú~ËÙ—/Ãc·M‚Ù.Û@£ÑønnôÑrãâAzfœŸb5xŠù%Mñæâ_ïÈtR{.yúòtè¹_EA‰ôÝá2ÒÉô%®„B‹3Ôx•?öÿ%‰¼H+zµOÇÃç£ô­Öäù—íaù¯=ºg¸­yFã†S‰©3¹É5&ž$T¿¨¸ój«Pî®hù~}õ뼄& }XÞîwÁÆvÊâøt1s½±]¯$TÚSûί®‚‰¨:Mm´ýQQM‘jœ2èžk`ÛWë7lûé—Ÿ‚mÔ‚–¡ZÛ²Êïëaàü¿Q4nX +±ÃþÊæ{{ÜrçÜ çÅ I²® m1«›AOMVIRÁû‘Ð1&«›ûCÿÇ!¬ÞfL¹“Ì‚ÛI##Vû`]¼¼#Ò`½Ó2™¯òÍ–5ân·ß,¿­ú›ãýovM¦©Ý¢¹­Ò¸x¤æê{‡ŸB¡¾Ü…æwã]¼˜ïïû'êÿyûàþuòÓ›+yÛ ó¾ùž>G;µµ·‡5túývù(9׳/!0ÝøJ¯4Lx†4áô"Vº “{%¤º* 'ðà˜óèO?He7õ\Œ7ÈÎã”þµfcë{,t•M¨Áwƒ43a=E6™½‘]§I%¤³j\a9òpÐÄK·5Ÿ +ðÆZ{ä›/‡~·_õûôö^uÕ” éøeÖ š²ð´€]þrŽþâæx÷ãçÝ“t‰ ý, ÷ÔCŸ= +º{ +Rþ´pýü÷Q^šY[°æ×ÿøûòQÜP“Ô_ïx‡özÍðn”÷þ@÷¿ã¥ÎXåߟ*/½Þ„Qc&WO4+±Ï¡˜¯¿êúùxÇÒÉi2íCàÐ+îQä4'ê“óOÔÇ;ù õ¾?I—í‰úó¹ ³i'9»Ï£hQkn?(pºSÕq¯ª·üî`Šè‰ê—CÝ]ÆÊÓ«. û]ãFµç÷ÌÊ;ŒŸ!ŽÝŽ¶€öñ@õaÈÕ'IôQùQÀ8)¯VóëA°ûæ?`˜j¯Õ³v\¡ùc·_ÂÝ+?ažŒÊ£—»^ +ìÐõßkÐÐOVŸ}‚îÐp¬º”סêÏ«êÓmÕ×oñ³&ù!~ ‡Ë²º¡Ÿñ‡ßb˜Ÿ—$ñç$E†!€;ÃY“uôäšìÍâìŸgDªðäendstream +endobj +558 0 obj<>/XObject<<>>>>/Annots 100 0 R>>endobj +559 0 obj<>stream +xÍ[Ûr9}÷WôÛf¤éfßg.®r'RjŸeY™h#©½ºd&¿I [Îxv«"y¦*ÑÑH€ÝùÏE–¤ø?Kj—äU2__¤ãßÄ?>üJß$UÑâÏu’·ã̃U2¹0p”i3p4åØ9×I–§ãÆyEæ%¾Ä n\z@¸NêzÜÎ@ šµãÚƒÅ8…e [»ÞÀeA +97® Pݲ H!Å IL[̨ ç²,#}"i1 Û‘å*Û +KêH@\ ÀA¹2QÎ@ ê²i1Ø¢Äò©(Å@YµìvºšÑ@Êq ¹:ƒÂʈù² +  ¤Å´9fVV ¬Ø!%]Ï5 M9iZZ€H²³Ê"Wg ˆÎ +\ÿBWþ%‘“®EŸ5,T°²2)6¹’c©d “zÎOI‹ã¤ÊʤA¶¬Çy¢g¯—Õ´QVT—´ßE%ª’ç²4£‰¤ÅP©Ê°‰ k0ض€ó”¦äæÒ hRq°ç9 ÊÑÖ,ÚT·¦€¨là2ìžðK"-†:%ŦŠR¸UÁ^áø@‚úpWŽÃ=ȵ%”RÎ@Ì—Ö=Òb°©¢ƒ-XWÖŽ-1l]À›*Ë [À<ò&¯¤’4TjI%þ%ÛIY¸Èkõˆô\–ÈûJÊŒŽüfd ‚žC–-’"rBGûPI”³d”ê9 Â"’,˜·”¼ €(¸–ÂU9‘C´Åu˨œçjªˆÊ+ FcH‰/FyÎ@õçvå ¤¥q4h”AËF×;g ƒz®Îñå $M)Ø•”AQ¨rqœä tPϵTŸ•3ƒ5 iWå¨Ë±‘@cò® +o#å \'ØêXn„ä ¤•¡ QÒb°X†0?‰Z ¶¡r¨²¤«ƒ5Ĭœ€¨kàX9å \'U]•3ó¥’JZ ¶Hʲ;b+ºC©ÃÞ œìbCR~t•´ +œÌ ˜8÷¿äQY°ÌÙYòK*è¹,ËI0’¢*–,Ƹc ªz®a#g ¼L¥Yå ¤µ©hm¢ ×+ç¤M¨¦ž£$‹%¤BýØ9*蹬 8PRSS´ô\†¹‘äµÉ)­ì7qmÇÉH9ÉS´U•´,”k-k0؆BÈÈLteÙÎ y‚\É++ Ú¸,£`VÒbrX”•a+S³3:¬ç$´”A$•è0Ê0E¢‚žC¼@ȉZ¢ØdQ“挜ç²Ô!–•´vÀ›X¼(j1ØÜѤÊ mfOÖ`°8º”FVFƒ[0êÎS£°çh×ÂÛ‘´˜&¥.ðƒEvË,k0ŵ±*+*ai,0е÷œ_³HZŒI]C ++k0)L‡6eyRî}üñç8¥gd†Hˆá…2QN!ÍFQ9…àj£"ÇŠ BÄÀãÏQÏÈÌ‘2&s0M9…4ÕDåÂ9եȱ"($1’ùsTÄ32s¤ Äd¼âÊ)$%ùxOÃÓAˆ)Áá6?ˆñ€hW)†xþLS) +FJôR’K”ãÔ8´Dy9ž ÖQçáùsœÌ32z¤ „"<ºr +Á!¢²Òð4äëéÅO¿ *¥Éô/cŠ[‹ºH¦|—‚¯ç¯¦³ûÕ"é>%WÝf¿ØìwÿœþRØøIhõ!6r$öêêóìq¿ØÒoPê2äáURŽé+ˆœÌÖ÷3þQ9Æ¡Ý{ ¶›ÙÊO,SàÇaÔ5Gƒ¡½“Ñ*ĘŒwsyK£¹rœ—á»·³ÍìwQ…V·(ŽæF}lÿöòîš5l0B+ßOú_ÖÐü#Ê…õÀØŒÍÅ‘„Ø{7ÛÎÖ ¬/Ú·ÀœTåádÞ„º„_zÞrG|XìÛ G€õÂ×Ùê°`O¢¯K›søÁ•µâº2è™äÃYðª{½Ëq[‡(Ÿ†›æ~;àâ%-C îiS±±Í^µ3Ÿò³KI»¥¡+m8îþbSWìÖ¸©§ŸƒIiSû@Ý­ïÇónó‰fÀ‰Ê¹°6Ÿ–²tiû_ŸÒèá\.“EˆI‡N¯Æçh‰ÅZõùÍâÏå|¶"9Œ:÷i#¹D +û¶[òÖÄhh8åi±8Â}… e2ë8½ü6Û<¬–›ßÙkh7b–ìØ‘h¸Û,÷þ×çå~±{œÍÙùhšöÄñì-£ëÖ¡ÇŽÏÿbÚÍr#‹õh/•Áåæ0Û/;Î_èN‹ÆW‘ëÑ`'ÎC曶Bü-Ý1’Kƒ#ß–Û/´x²ÑøTõcM +£;G¡†^¢_ü°‡›nòm³ŸýÉ{Î+Æx{C¸ý%Ì8Þd—÷ÝaφÀ ¡°?Raßçü=Ž'ÞJý5t9©Ñ+ ‡Þs…¡¯…\»Ø¿¾~7¡ÁPJå’7e4ÒØpSˆN>¬ÇÇÍ’M]U…”ÓmW¼B8ø:ÿm_õŒ\!+«E†keS-êãjævÛ=æ1oœÕµƒõ{F8ŠôŒ8Ú}wÔ ¯œ&Ж¿$Æcoâ$n=ŸàÁLËîU·~\áì²çÅýaN¬'·D&{z}RøsM†÷b@Dæ<Y¬µ»xÕ„'>áJ!Ù}Ûík +z\}—™¿iHpœ“Û'Š„ÓïOçï€êöy󽿃ù·S2O4ÔÏoºõLZ¬žû?Ü]ýC’º§³½sù ̛ԊKÄa`¿èNJìaW Œ8>LºÃvîëÁ ¸‘½˜ó=ȯ½Ø3&yáø,}µ]<,åB˜ ½œRí¨M‚Äò0Žn;\\pÆÛM!½'¸úð;©Êéd²ß¢q?l}ß‹‡båyŸÞ@ÜËÄ„ <Ž1µñǤïÖ¯¿\\÷L8Ž²ŸQˆ[¾oaoIhž··Íå¾¢¡Æ¨§þñEÌ v¸?¯ò~£{kÀÑaéíå‚Ë$Z Üïð¤û*ÏUðNkÃU/ +ðf‡ënú5 +NåÂÅÒ-Œr\·¥önùÈ—kx)¦ÁF=É’áš©šjqH<Þ:O›Njk£{æ”çíÁ“WÛ¶“9ÇÛè·ÅìÁ?˜{Q¹ºÈ)`Fxèf6Z5ÎÖöFs:[r/‹77Ï{-öDV+j6oÜôòZë#3ü~ÂK_ñiÐë¥ÔX«C¢ñp$¶¬Oþêrþ…~G›¨:É%tßxo7½Ü7Œ@9×[ÞNo&—¤-ŽõxÃ_æýÿi£ÍN“6 +ß•—ƒT)g~k¡·|O[ï2ºwp×­–s¹ÀZ„àýµ= +¶á)@oûÉÁÿ9ÛÞ[¶‚^ÃŽÏ¿®7Ÿ:¶g¨xõÑ·¸É{zoîÏz±ˆ‡!œ!Ÿ±æ¦ë¾ø®/gê “ë7É5?6Ô¾c’‡o°pw%ýÈsNúŽYÔ@ò6âÇj'é­…¥5oƒòûHøþ¿×Œ·#&—o__&o_«î†É¯‡¥¼ ’ã|(R£:méť咜óóôâýÅó)endstream +endobj +560 0 obj<>/XObject<<>>>>/Annots 145 0 R>>endobj +561 0 obj<>stream xÍ[ÛrÇ}×Wì›Â{¿ä%E‘²Ì EËlçÁU©Jˆ,‚Véïsú2=½ )±ƒ’\%áà`fú6==½ëÿ>Ë’ÿeI“'EÌ×ÏÒIŠoì¯7/雤.;ü½NŠn’)X%Óg®“*q®“ºq®“,m'¹›Ôc°e:é[Ô$NQMZˆSå“J‰ã f­É¿$Òc°EFÓFÖa°Íxb×Iž6£™=›w“ÒÍ\•$pžOjÜ´[Éä MóIáHÁÂЕçauÛ6£‰eÑ”$ ‹2ˆ‹*§‹é1¦­3rMd&¶#‘ŒåE«®Æ]T€-8Y$’cÚ¢˜4‰c ›X‡ÁvDŠcE¤¶ààekW ¢HÊ©FzŒióчz ¶Ná¸ÈÊ¢0…¨,Ê .ªœ.b¤Ç¶hdEˆ0¶ÎaçÊXÞUUs˜ñF@‹:H&jðGR|VeCE@”V¹ Ž¿$Òc’¶¤iù·Ì: ¶d¯+&*R* â¢ÊeiE¶5ÒcL ­[ÇŠ²†Ý-Z3 i\']Kªç Mʲé1ئ »GÖa°ÆŠžiáBAÔS98¥D¥ç &Í+ZÒHÁb Ïò’e—Æ|#À– ¯9iIJT‘ôlÙ`—9Öa°ÈîµcÙ)eC jÆ`N \–ñ¢üK"=Æ´8lŠ$õlE™Ê±›HqfQeÊSŠ¢8Öcäó¦Äެط&£ëî.Dû*GGLšDRB.:H9-” â@åTo#e`A> d*—áèŒËóF –g@y;”ÊÁgœƒØ*©oœƒ°kN§h$EÒ,‹¹¤d%UŽœÛé1¹‹öAdyÚ›ÔL.À¦ œLIiZòsd©°)šŒÍÊ•ŒšÕAX®B4 ºeåØeÅ£›.¶èB„•^÷77†-‡#vq—…ˆž.Ø»JœNCôÐúÉüU¡D­¸çAÙŸ‹Íéñ+ŽWlÛ6ìÅóáÝ°¡oÑOlÛRüù4úøU‚nH¬ûºUsâº]]}Ê•â¸wÚ‘ãDµ,¦ÑßðçÕñÙùôüÇÙo¿]¼ ¿bbÍJAo¹ƒ}®*‘‡èžÐw3áO·‹íG54®Fš®>˜P8Um«ÓúçrÍ£ÓàÓ«~ÈÐ.Í£÷r'Ü>¹mÐ_¬q6ò)øéõÊV5;«ë¼25«âÂkúæ—é/l´—*ÝìÉŸ<ŽQêáYËSj^5‘8XÇû¨žÜ É MӨˊ éô}¿•R÷+G^lnדõM£§Th/$T?tF½•;1y¯v÷žc/ï±ÃÙæj`ñ5× -eO–CêU_Ž¶_³±'Û×»áݶ¿~¿äB’:M湛奸3”M¨uÎøè£Ç#[Ë_\Bíåï¨LsEÎRÎÅ'ꊿvƒ«ö9ïŒ\§èw\}º¸Zn–;ˆÃu9^"@ðÿµâüg« - =]v Mîhðz;ì†ù°"ã–òUˆO*WÇ šU{*Ü­O†õ:\ÆÊ'­úò -Om¤‘ôíþšžràøê°ßp]‹ð‹ÉñMøúµ×-þTßשxQµ§äÝ}òëbµ:ú}3|ØÐ4²òp4  —©uïS)`ë¨&ÔØÝÓäî~yXøhJÚ¡ü…òö¤æ ²oH C’w Ó'[h7’è¾é×o{ú¼²2ܪ_o—¸enÞA œ‹Éú!ÛM¿âhÆ{ºfä'øPs-ÿÝ÷Ö¡·|pBMÍpõ?~{³Ûj»‡Í×¼½¡D£#l˜ÐBã2háÝ-ò4܇Ù-Wý\:pX˜8‰‹4lÅ_úír¸e¢ÿ¯ÏûùïØH>Uˆ„ÅæR2€0ñ!Ï<5B†½f°#°˜¥ X\~nYy¼Ý`íƒÙésé£Ñ!Ķ7ûS~Ú¡½ªÚ8 -¢K…ÕÙ)ï½&öwî;/NVKœˆl §brÒÏßëîÅY ®{Ê2)í¼ gh½2*O·ëžJš¾BÚîþ²+V-7¥ epÂÙÚh¶øu¹¹>H²ñýŸ‹Ùwù?I.tÒb‰ù.bQþ9®ÚÃnynÌmsÐSI4v;G;œtÿlÆ–DöÙŒýëÙÅ”5Ì'©5–ÆÙ þ Ý’k.ò|Â.Ü•Éi/[›2臙»¾ï—«!4 ñȧ;l6zdnªÅgðè£+¹Ý9vö^.Rx2füùz>¬u+Ó›WÖã ÜVlÏN?Þì|ÆansЗhè¥UèlÁ*ßð—8Û/Ð#Ý©GðæОö;¤ó~5lX1xÖ -©äj;H+ç›uM~¾8û—*Ö`ïò~8}.ƒ÷e -Þ¤+÷t[-¤À@›ÈZ÷`oP´HGjö¸é‘1BÚ›acàUlÃÃ*vÇFÙ;ÖÏû‹­Ø„‹ÕÃKö°#ïeTz¢¿¯ˆl]zÛ9”…Ç××+z -˃§°õ½r‡/U~¼+?ª)r<(•ÍçåQâÃŒ‹h¼¢ñ…NKQ¨‘g…ãF$ÞZ,u·}N›WÃå­nBÜŽ¾ -]è…€qhí•{÷yÅéákÙàõ/ô¯z§IGG*,΄#ß\/æË^únà-£‹^§¤>zøÓ¯ÿ}çž—o‰B…\­LƒU#zûhoÿ„ç1^+’²—›á×ÓMTZÄf|8½Z¬yNFÛ"º£ßôïÔ_d³ã]ÈÐózƒ/òl^Ò™· -j†wÂ-/R_Ù‘ÒdJwçÁ PªŒ¥œp•ñy¿yÕox«` -ëzh=‘ãÉCnŒ÷¼e3z‹j{Jñb3§Gñ ÌA\Ýìw­Ð¾¥Ãb¿DÆ´EŸ›„_üŒ5È2G¸4Ç/µŒ·ÚƒTè¾½´ÜËÜö hÉ›¯Ô…=—à­ßÿAGë扠évçCðÞwä—±p»*Küošü8Þűõü89]ü±X ×(ò’—·úP¬À;©Å|“vôÖÖr¹$¥^Ìžýôì¾érendstream -endobj -531 0 obj<>/XObject<<>>>>/Annots 151 0 R>>endobj -532 0 obj<>stream -xÅTË’Ú0¼û+t$´²–uIKv¹„„ìú ˆ]R~^[ùûÌŒmY¤*¹UP=­ñL÷Œü+I™€oʬd*c›:\@$ü¼,0Â2íà·fÊñ´{M"X3cxq¬™s\E\k–¦Žçc`•½e# lnnÙ×Lê”ÛèÉ*C) -S Ý<”ÁšåeÒAä"Ø5d"0°Fs±džp\óŒæõ\çVà"ݤØià"ˆÝ.#2ÆÀZ…¾‡T2À¸ Rz: ¸<‡¼‘ëòrE;@Nc^Ï9Ü‘‹ 4CÓÉÇ"yxvL -VìÀ7X0°ÑjVliÿ ¼™åºò¬Ý±yÛœ}s>}*~B–¥Á¬iŸ6•˜6™¿—‡³?âÜLx>/XObject<<>>>>>>endobj -534 0 obj<>stream +C^Ì"Ýç~u:¬û冾FÛ,~ýæõÉ7º$vŠ,‰ÖîXšîù˜ÛD¦§£Ex1;ÿñå4Ú0u^(±½žóÒ8»F¿›mûÍM?ßéâñÇýzqIßbkWY«?½¼^Зضe¡âOõ§Êi©£ W\Ùkœ±Î8z› ôùô˜å*&•™õÍâ¿·‹V ‰:ërUŽZ­›w¬I k4‡ÖdÏBU!Šá Î÷4Ë¥Ùñíî=âq9ïw¬’MW«vl4(UkÀí­}htËʱˊG)6]lÿÐ-„ *½îon> [Gìâ. =]°w3”8†è¡õ“ù«R=ˆZqσ²?›ÓãW¯Ø¶mØ‹çûaCߢŸØ¶¥øóiôñ«ÝX÷u«çÄt»ºú +”«Äq9î´#ljjYL£¿áÏ«ã³óéù³ß~»xAÅÄš•ƒÞrû\Õ"5Ñ=¡ïfŸnÛjh\4+\ |0¡pªÛV§'ô;ÎåšG¦Á§'Vý¡]šGïåN¸}rÛ ¿XãläSðÓë”­vV×yejVÅ…×ôÍ/Ó_Øþh/UºÙ“?y£Ôó–§Ô¼j%"q°Ž÷Q=¹’š¦Q—AÓéû~+¥îÿVŽ¼ØÜ®9&ë šFO©Ð^H¨~è Œ6z+wbò^íî=Ç^Þc‡³ÍÕÀãj®Êž,‡†U§¾m¿f?bO¶¯wûmý~É…$ušÌs7ËKqg:)›PëœñÑGG¶–¿¸„Ú)ËßQ™æŠœ¥œ‹5N$ÔíWís<Þ¹OÑï¸útqµÜ,w‡ër¼D€àÿkÅù3ÎVzºì(›ÜÑàõvØ óaEÇ-å«ŸT®SŽA4«öT¸[7ž ëu¸Œ•OZõ=äžÚH#éÛý-4=;åÀñÕa¿áºá“ã›ð;ô9j=®Zü©¾¯3ñ¢jOÉ»ûä×Åjuôûfø°¡1hdåái@/SëÞ§RÀÖQM¨±»§ÉÝýò°&ðÑ”´C+ø åm\íIß@†$ï@¦O¶$Ðn¤‘¾é×o{ú¼²2ܪ_o—¸enÞA œ‹Éú!ÛM¿âhÆ{ºfä'øPs-ÿÝ÷Ö¡·|pBMÍpõ?~{³Ûj»‡Í×¼½¡D£#l˜ÐBã2háÝ-ò4܇Ù-Wý\:pX˜8‰‹4lÅ_úír¸e¢ÿ¯Ïûùïäptv‹*DÂbs)™ @˜øgž!ÃÞ3Ø@‚‘ XÌÒ,.?·¬<Þn°öÁìô¹ôÑè‚bÛ›ý)?íÐƒÞ UmÑ¥B‹êì”÷^û;÷'«%ND¶†S19éçïu÷â¬×=e‡”v^Ð3´^•§ÛuO%M_!mwÙ«–›RŽ†²?8álm4[üºÜ\$ÙøþÏÅì»üŸ$:i±Ä|H±(ÿ× í‹a·¼ +7æ¶9è©$»Œ£Nº6cK"ûlÆþõìbÊæ“ÔKãlÿ…nÉ y>aîÊä´—­MôÃÌ]ß÷ËÕš„xäÓ6=27Õâ³xôQŽ•Üî;{/)<3þ|=Öº•éÍ+ëq‡†n+¶g§ov ¾Fã0·9©Èÿû³†ËDïc47bÇã .=BÉ”LóÛír'ûÏ')y 2:±Ðô¦Ø†­¢²ßlèK4ôÒ*t¶`•oøKŽí胋ŽîÔ#xshOûÒy¿6¬—A„û2oR•ûº­R` Md­‚ûN°7(Z¤ÀÀ#5{ÜôÈ!€aÍÍ°1ð*¶áá Œ‚»c£ìëçýÇÅVlÂÅêá%{Ø‘÷2ª=ÑßWD¶.½íÊÂãëë=…ŠåÁSØú^¹Ã—*?Þ•Õ9”Êæóò‡(ñaÆE4^ÑøB§¥(Ô´ßÆH¼µXênûœ6¯†Ë[Ý„¸}ºÐ ãÐÚ+÷îóŠÓÃײÁë_è_õN“ŽŽ8TXœ G¾¹^Ì—½ôÝÀ[F½þNN=ü¿é×ÿ¾ÆsÏË·D¡B.ŠƒV¦Á€ª½}´·Âó¯IÙËÍðëé&ª +­¿?âN3>œ^-Öƒ<'£mÝÑoúw ê/²Ùñ.dèy=á¿Áy6 +/éÌ[5Ã;á–Ç©¯ìHiøY¹»óà¨GUÆRN¸Êø¼ß¼ê7¼U0…u=´žÈñä¡ 7Æ{Þ²½E€ µ=¥x±™Ó£x†æ ®nö»VhߌÒa±_"ã@Ú"‹ÏMÂ/~ÆšaD™#\šc‰—ZÆ[í‡A*t_È^ZîáEn{´äM‡WêžKðÖÇïÿ ‡£uóD Ðt»ó!xï;òËX¸]•%þ7M~ïbáØz~œœ.þX¬†kyÉË[}(VàÔŽb¾I;zkk¹\’R/fÏ~zö?1yendstream +endobj +562 0 obj<>/XObject<<>>>>/Annots 161 0 R>>endobj +563 0 obj<>stream +xÅXMsÛ6½ëWàèD$A€—Î8NâKœº±¦=Ó-+•HW¦é¿ïÛ¬”ºãK¢dÆÉÃÓxû ùï™V9þje UÖj¹›åYŽ•øãË­¨ºjðs§Ê&ÓlÕíLÀ2&«'àN5MV +NÀҺɜ %[ÚCV`°Î²ïTQéÌŠËš¤”d‚ëºHŠ€;å*’É$N@!#Hºà„Áš*kËÎË›¬ŠÎcœ8ï­È ç9R9Vaš:+&D§uÃDzCWr$Y¯a ×XÜ7qzù’„Þ\™šBÈ~+~› q-H‰Éo‡¬ßÖÔH©i[iÛÀiMî7‘”˜¶µØ!±ÞUÉñð.`\¸Æ¬È H.8$ý]Ëœ‚\fé®Ó•¡€DRblëXIb‹,pÒV`d:÷¶”v&/9(\¤Ð 5›8N»ÉÎé¸ +I\@j“¡Ä`m‰rO,{½jr&{݃èõ‰sv‰óv–²1ÔkÅ Ùá©UâÄe¸ $’\SÚ™Ñ5ǾHœ€œ87a×Tt|Ø…i' Ý¥FwH†^ w´I ƒ$0pÕ#"é :w2d ‡N[¨*rï³ó*rµ¸Gq ©£uÙJ-VÜó±¼<[´wÛN ÷êrèÇ®Ÿ~Y|…•A“Õ<˜Í 2;»|hÇnOŸ¡ÌÂ~Ødu† ÉhM“7üʧ¶¿n{ZDYÙ¼ Ëm¿¢µ"Ï*W„µÏ ¶E‡.š°tÓ>=}öüÙÊf¥ÉE}è—ûÇÍÀ[Ÿ¬â=1³lƒû–p>‰ýŠé˜_Ÿ¹`¦ƒžvwtŸdÐ)âI÷›-š0.ùôìlMw>zŽQó¢F¡ü_Hªã\«çmÇ®òÌ5!T'õßGZç¥Æ˜Ö9Ò)Ecš%ň^¬^Ú~l×^f +ür²@kòjæÖG+¦%ࡈOC»Úôk’Ž’ªôT)»-4ãìÉ¥ENÄ“œÑŒ˜ŠÿvlÇÍ’‹ ï¹Ü…â•’ µ:aYeA ^;‡)†$ú^ÎC»ï¸C”è.Mˆ„:’cBäŽá'à F‡¡9j€î7ã”i˜L±Ó è ± ÿ„{¿v„m(wæG™V¾šiç·1Bµ5ôÔm»å4,ð2pfÊÐMO'h•1;—C¿Y?ï»Ì“xèa”þ˜ªóEW/0{ÞÔÕ g§´_n.¹ÐLVFu7Ûçõš;1ŒEœ¿×©« Ö'ê*.§{Éá]V™•uh¾kõwÃóHV¢Í¼–=§X÷’æ~¥‘eŽ»ýU×wûvËJÐzê){éö/›î _*ËSO²)Fé!Hùò†gG}œ Ÿ‡ÑèP=Í‚q ©(À&N¼Çvù†ùÞ¿P0 êT}oL§éŠ2Mu.F_}œ£àêx˜†‹²;u ¥N/fnõÁ¼Ã¯8\ñI%ûƒŽ]ntÊÿOqáÕoé/8øM¿…o/®ß]¨÷ÝK· uõ¼Yq,óýßlÞЫyóB±ý°˜ý>û©ô]endstream +endobj +564 0 obj<>/XObject<<>>>>>>endobj +565 0 obj<>stream x}Ž»Â0 E÷|Åa ØiHÃØŠÇÄ€ð 6•Š¨€"ø~\Ú‰Y–,ßã#? ƒ´¹CPu†,!d+ëác®³Óîš1pdÝoPŠYîÖpiÔò©¡ÒM5;‡²À&½ÓõvOýûW[§¹\¾WìÇ«EÆj–zÂ%»‰`žàƒÜ”>’ÑëŠñ`ØŠ9šÒ°7~endstream endobj -535 0 obj<>/XObject<<>>>>/Annots 194 0 R>>endobj -536 0 obj<>stream +566 0 obj<>/XObject<<>>>>/Annots 204 0 R>>endobj +567 0 obj<>stream xWÛnÛF}÷WÌ[ ¦ER¼ÈOõ%q ØŽk)y PÒJbJrUriÇß3³¹’Ò¤0`ûèÌœ¹ììúçħ~|J cZ”'#o„Oú_Ï·'qâE¥—RI~â{I‡ @@ -942,8 +997,8 @@ v Í9ÒµêõõÕ[5+iS·9_o Ï|ï®Lâ\^ë<êÙ“ŠÜ¯5fSÍÚ{—k7—¾G7j•Wùî"<*su÷qJOÝDÉcV*zV.Z±{ÐK%šø’p6HAìñýŒÝjÁòèêùãåÍõåtF]Œ#£þWS—?s#@d*ݽ¬›Üàö¶µœÍ¾Ò¸«L­—­\os†=°ËΣ‡¶08±ZeK¾‡\¤HäxÈiÖ›5å|yd1v-ªYDUór‰N7ùZ6Ã^Y³/¥Ý¼¿útKÍÖHÉ¡ÜÒB;¬^éck¶¸÷Ó·ÊdßÂÚ^WQúrŠ±~ȵ>2ëŠÙåÍÍO,¥BEbyÿùþ'–¨”óûÐVÒú£ ½ˆkXÎ×F}7,t”žªb°YÖ;Þ==V@æXÈef¾.Õ¼]uµÎðÕµ?j$~­å€§ízÕŒk(99〔íPafTÍô°í’òõ&ã§vÉŸ\ÙõAæ’7¯É X¹ Ø †Üå8xu`¥¥k,(osTNûúó%ú=oW¿ousÔ-nºõôK#DîIýþ’?”C˦Çrî pP4íîØê ÐØJMò?ÔJ¬Ö¯ÌR¨íeöŸ%L`¹—Ý`y_[­ê}0>(ßA­îÿ±Å©<ïek›}þï“ò‚#sLì¾vßÆ)^ýÒ1Þ”°Èåæýì䯓…˜V¸endstream endobj -537 0 obj<>/XObject<<>>>>/Annots 246 0 R>>endobj -538 0 obj<>stream +568 0 obj<>/XObject<<>>>>/Annots 256 0 R>>endobj +569 0 obj<>stream xuXÛrÓH}ÏWÌÛBÝ/&\6U¹Íò‹"+‰6¶ä•e ¿çôXš¶Š*¨Ãé{÷ôŒüßY`|ü Lš(5ÕúÌ÷|üÏô××Ïgz¡IóÔóÍÚYìÅ{´2ó‘ÍB/'[d^aRAŠM /–6RAd“ÐKL§0¸6YB»È)³A>IŠY…Á&œT5fÀNl‘"Ò4Š BUB4lÉù“ †$H¼*LUIfbm2>­#‰W€$ã ÍÆ h"5ç^¦Øq&E$õ 3TÁZUpmÒjŽSpmÐ:­'‘&¹/eÏ3˜¶€6d¤Š$I©N’f¶tqàÆ"’¬NóŠUxmB?A™k '¬ + †)Ã#k 9Vaèb:±c†Û(a!&Öº9P æ#HÜ*LÃ[± @@ -961,102 +1016,117 @@ ik Zö²ikDÜM»+‡¦k²¦ :x"f¾ìšþI¢y{ÌŸÛ¡ü}\` &4»ëvƒÙ°Ì[¯’bt¦†ež¹®‡÷7sÓ´¦4ßÚæ·ùÞõ«å±=\“ž¹h‡¾[îªBÇ£Á3߶uߢ¡ÇÝÄS×3ŸPtsó«E³›ÍQæxÒs¶Û_]¿.ξœýì¤ó§endstream endobj -539 0 obj<>/XObject<<>>>>/Annots 289 0 R>>endobj -540 0 obj<>stream -x}X]SÛF}÷¯Ø·¤(ú–܇vøH(S0;I2Ó¶ j,É•í0üûžs×Ö^a¦É p8÷ûÞ½»æßQ`|üLš(5ózä{>~Ó¹¿S/7ižz¾©Md=Z™éHc°q)++¬Â`³ÈK›„„Yƒ ó±—íU­×dì¥$ÃŒv‰]…­×T³ðzÀ`ÓÌ‹k Ç©‹aß›T5ì0T“€Éö¬ 8Š¼ªãˆœ‰×A(F #èIј‰;Va°ã¡9ÖÆ¢%Œ7ˆéUÄ«0ؘ¡)Va°YÀ z]kØgw{”á‹À°c†n³ˆŽUlž°þ=+ELP=ÛXæeÑ¡þ ÕØG¡«0XéŽbfPùвµ N¨,k ƒš)V*•ä¾™8Çw‹¤ñ,`‚!ãP‘xäÈ$¶Í‹Ô)DÒV9±YŠ‚$È)ˆQ½žSÀ™8RÂÁùò& ƒD«ÂPÍÆŒ§gmš˜(9VTR=°9‡4q,§?ñJmä¼X@Mkƒa€K$§ SÉ1)ŽLXË8çWÔÀ*Z.ãi—!˜X9Ù&éHÁbfBÍ* ¾sÍ*Œ) ¸ÎœeÁFÜ0Žµ§<‚¨BDN€TÁA8EQá´'5‹BQzÖš•‘‰©NM,ˆv5r«0XôÙ8]…Ábæ¬Âö4iËG !Ó"€Š -BQn»¸'1w¹‰ÐŽrö÷€Š -Â(§Í -ŠQaÔOPGj §F›•X#9ô8nì®4« Íæè˜#5f&¬«bgC]…Áb)#‰nmH¸:ePß#A$…¡Šª bÇ* 6 ºÖpbß;²K"’+7…P R–°'5‹“:`›ðE£t‹\‘Ž³¬0X\žË -cvå…ætm:xɦô©)@ÊäKêáþ•èŽ Å"KûTâ÷H°¡Ãˆ ×+JìXkÙ·o¥ÀÊ -Rº'µèY‰8Ûú`IPSA8ÅYʈÓw's "6Ë"qª0Øì«0@„ƒ¬t­åtÿjÁ»*1¡ Z¶'ö}  - § œ¢Ë©q¤UD\œat™ -°á27l8t/nÇ)ˆ Àãá8YŸ„õÖ¡Ã`s6ű6T+)mÀ«$$ñðrª\nŠc9,¡„U¬ÝX‘ƒÅf‹4«0XT=U¬Däö¹‚ob&§B5E=©1X¼ÇàT±HoeöšàЬ‚¨-ï(Ç)£¸[ÇŠ´±ÊW(²²W¼xÿ”áìÈÉnµ˜dOòL°‰|$I³ðSWšåèl6úð ¥ -ÌlÉOviž™ÙB>Õùf6?öb/ñÌõôÔLOoÌuûØ.—¿Ìþà3à ŠBRùŽ7§W×ÓëÛÙ÷ï“ü2»¾½¼Pþµxà™Ï»²{1˶3wçbÓš ½Þió†Ïôý×é×s3ëŠfSÌ·fRÔåÂÜUëòØgêÁç¤ÜšéSÜ?6»úØ)Þú{¡²ûYvæòWͲ}Ã}æ™óîe½m»býTÍͦZ”¦]šÉÌ\´uQ5æt·}*›m5/¶U+) Ë€KÌ3å²j* -lèePwÏÜuí¶·«7Ø1´u ¢ûª)9 -tu±1E³0÷ø†àöÌ·rµ:ùѴψ¹É„‚©)…N0/ýà€›iQ?·BÊÍ#ê¶-»¦Xù…,Üž>l¶š&¦TÖ`%imeYÌK³mÍ×¢«ÚÝÆœó¦l6ë¡2j"!p¾v¥™]œ½±¡TŒÊ=Ícyu!õ9_U¨¢9/æOŒm#¶¿«ûÍ`î¿UÍ¢}Þ íÂ?{-kÜLÚmµ|‘uåäo«õíj2ýŸJá ”ùTT«#yl Õš=•æËzÞÖŒuú²Ù–2ß·¸!Ḝïºjûb0¡˜Oó®)Ÿ©ôŽ¦uz¸ñ!½Åø«¶ÁºèÚÚ|™\ýuÔ²ÐCÕÿ€àªÜ¶98ØÛ?6&\/ew|Â(wÿž˜Žñ<µäNBKÏN±\–«v3—;ìg©då"{’ùc^_zÅøÛMžÇøK'ˆ˜âg£Ï£ÿzT²endstream -endobj -541 0 obj<>/XObject<<>>>>>>endobj -542 0 obj<>stream -x•WÛRÛH}ç+ú¤Ê–-c°!O@`ËU,8±©¤*Ù‡±4²'Hef„ãýú==º ´Ùl¥r[ӷӧϴ¾…4ÆŸf:9£(;ø8›šÎgø}‚FRrtµ>ÝžÓdLë&g³9­cÂñ1¾‰Þ\ïDᤡ0 ÷2Q¹rJ示—îjñ°¢¥ÑNG:%‘Ço×ߎÆ4œLáâͽÈ$}”V§¥·ùSÇÒò ΪpÓ)RÂé0@„û›5û¬M) ëC“Ypæ]Ö1M™[ÒÏHËíPƒNS½Wù–œy¡³´¾^ŽËw>Í›ÇgG‹åçÑjù9 •È6‚tž¨´Ò¶µ°Ëº†ð¤Ê«òЭ6K'TŠÈ¹[=jWÒZÆf%ͳŠdûý{áÄÖˆ¬y0ð¹Ôðõ¢1fv@VJ2IŽÇaà~8oP}žðç ¶šœÒ€…kT–±oC'+©h:¤²"•™Ìð q;×ŒÝ q¬%§i#‘IîH—®—g‹ýñ^yL2ÛÈ8–1í•Û©œîî®É·hêKv¹v Ý÷68º“9àç¾5\òn+X{›P!©×Z™H#6)°~XsÂ*·½„Løh$r.E_ö®{–¬^¯.èÊhG¸üô,! nèôÐÿâ}÷÷.¿;„Á$ «—ï¯/W놥œæèö'صHŒX[¦ïQÕS†©¦ŠÃ]NAL!—6)S€ÖТ¶ -0UýÕkÓ4T¨R8ð¨ê/CYM[隬ÛQéˆ7œì™xØ¿‡W™ŠŒ¶:q´e›í(–Y]˜Ñõâv5b{žÞ»À+Ìz#ñ£WòîýS¤;å£P{æË3÷¸×ö»Ë{æÑ'ü¹ý5ö$ùF5d°l±TAß!PÜ°-TˆèI:<5:«W\¯:–“ÙÿÍ}ŠáÉù¿Ù¤ ;½Gu¬o¸Wü2Ön-©ïÄ3hGÁ­¤—Lzã[Íw“·3^Âú* dç§THù]2©zMNÁ4–"eŒxm씉Å(ITЗnNÍÚ@=TÜzøòþÓÛMüUŠªE -Iˆ„פæ‰!jXHcÔ½­Xq]nw ,þíe -t2•£KÀs g^˜F·óÎëʼz]ù­w'òý³÷¥é|ÌçS¼œá=é”K½Y}8ú3llendstream -endobj -543 0 obj<>/XObject<<>>>>>>endobj -544 0 obj<>stream +570 0 obj<>/XObject<<>>>>/Annots 308 0 R>>endobj +571 0 obj<>stream +x}Y]SÛH}çWô[fPô-yvŠ@ÂP „‰=É<¤jKØmÐÄ’¼²Š¿çܶÕW6;IprºïçéÛmò߳Ȅø™"6InæÍY„ø—áË—ë³I”&/ó 4‰¢b@+3=Ólc•[+¬Â`‹$țńE ƒ ËIPì·:¯Ù$ÈIÆí +» +;¯¹fáõ€ÁæE(ÖNó Ãa01¹ gØclÍ"&;°.à$ bl$äH¼bc’1‚Ô˜M˜¸g;‰šg]¼1ZÂx£”^I¼ +ƒMšb[D jØë ‡ìî`X2|`Qö¬ÂØ›§,¢g[f¬ÿÀJ3TÏ5–y9t¨ÿck¢PŠU¬tG± +3¨rlYáÆÄ'V–5 ¡Š•Jeeè$“–øî4žÌ 2Š"JÄ« Of©k^š¡N™ ’®ȉ (r$@NAHMö œ‚ðGÌÄ“·”7Ëœ ZÆÖbÂxÖ¥ EÉÉpK©­¶¤H3ÏRýYÈP#çÅîT°1\ÊBr +2•JñdÆZ¦%¿¢p£ã +žp‚ISa’žÔ,4kVa°ð]jVa¨$â8ó–5›pÂxÖœó¢ + 9RáE…ÓÔ,4„¢ ¬3+’ Uç&D»ƒ)Å* ýF6~¯Â`¡¹«°;MÚ2OÓƒM#´Õ[Ö,T§cv a~Êq‚P"“ +r yŒ d‚*Va°8„…Þ«0CNG¬Æ`“”!{¿”wórÛËÛÆ$ò>pÐ Ä& É)ˆ€puÂè@ºLCJ ŠµàF±Qn»t ¡»Ò$襄œÃ=àFa”js Ũ‡0f(€'5‹S£ÍJ¬‰z7vךUfKtÌ“3ÖU± +ƒM‹ñ^…Áb(#‰n]H¸:E(Qˆï‰ ’‘ÂØŠª bÏ* 6G{á̽wd–$$WN±1ÊYÂÔ,NêˆUlÆÚ«0XäŠt¼e…ÁâòYVÚ•šßëÒÁ“H&eȤL¡¤ï_Yð‡îR,²tO%~O {Œ˜p½¢Äžu–C÷VŠÜZAjïÅÉD-V"Ž'îŃ~GÜ© œâ,•ŠŒÄiŒ»“¹F ›å8UlqÄ*Ìà «½Îr¾µà]•™X-»€3÷>ÅÄÈ)§èrn<é6".j]D¦\¸Ì „3'£€‡âåÀ à91x<<§ 등>âÁ9ôlɦxÖ…Šc%¥x•Ä‚$^ÎR•Ë-Bq ‡!t€°Š±›*Rc°˜l‰f‹ªçŠ•ˆ¢Ò=Wð­@ÌâÔClDMÂ@j ï18U,Rã[™=‡pø<Å1£¥4#AžLÕ“$@NTà ã¡@=éd%îm%!Í +âV±W>+(V„E|“:Ë1#r{ùÌØ‚W†g]qˆú$S°‡4K½ñ†ˆYqŠÏ)ò‘¯ýÄ—ò–Í‘ËÀ)èæTª8Œ­=ž“ ¯p%z™ù™Þ<‚ÖÞÀx„øñÒ™xJòÎÝõ)*—ŸiN<ËYK÷æÏR¶lÏDxÐàãÁÚ_ÇRE0¼q÷uòJŠÂÀx„èB*Oñ,a^JmC^ÃćÙÙûOì ™-ù‰=/ 3[ȧõÐÌæ¿L‚4Ès;½0Ó‹;sÛ=uËå?fã³ý9⌱«°æ;þÜ]ÜÜNo?Ͼ¿ÿÈ/³ÛÏןï¹þxy˜ßw¶5Ë®7W—b3›ŒƒÁiû†Ïô—¯Ó¯—fÖWí¦šoÍ}ÕØ…y¨×öÔ't˜{»5Ó窷æc»kNBÜûE¶ÿi{sõ7í²{Ã}˜Ëþu½ížújý\Ïͦ^XÓ-ÍýÌ\uMU·æb·}¶í¶žWÛº“ÆeÀã$0WvY·5lèeTŒñÀ<ôݶ›w«7Ø1tM²÷¨)% +tsµ1U»0_ð ŒÀË*0ßìjuþ£í^ZY~â¦djLM¹èz$€Ám¦UóX!Ü)·O¨ÛÖömµ:ñ‹µp{ñ¸Ùöhš˜RYƒ•¤µ•e5·fÛ™¯U_w»ùPÍÛ.\Öãͨ‰„@}í¬™]}x'ËÆ«RTî¹jŸìÍ•ÔçrU£Šæ²š?3v´QŒ@lß ›î¿Õí¢{Ù íï㻜qsßmë嫤¨+!W­o7÷Ó¿©>œÀ×|ªêUIžÚBµfÏÖü±žw cçA¾n¶Vô=r‹ëŽí|××ÛW…BŸæ]k_¸éMëôð’Ãê-äS­ºÖšeß5æû›?OZ¨úoX¸²{¹¡a›ƒƒ½ýSóhÂmõjûS…`ŠFÖë•:=ãàR ÉŠÐ(‘·< 0ä®[ìœD~TôðhÅÉVmmçuµÚú§ÙTÍÖÕf³x<õŠk#Õ^¡G1¹îlÓaúÝUmõdy€O­`ÀÌì†Gé4jdu[µØ-âÅÄy@(/]¿À\›s*½1o0­‘ŠÕ£óà +]SŒs´±{1‹ŽÝÛXüñëqdxQü·_Ì¿¨»MóÈ:¼,̲^I Fc¿{ÐÅUÂõxñ³j·¨ÂÉ)•ßvÕ‚ªn|l8QoqBçzչΌ¦(fŽþÅhÕ‘1öÇß{”Bâ`Àãû½É]Y©)E?ïÚeý´ëmP»‹k4)¡·/—æaµ{zªWöÿ–'“#ðØíNÄ!»¶­í¡ÈϘ +?kûrªè ­Äè\cd¢Èoœ5¹¿‚föb{ÿ 3yð÷ïù¿‹-å¦ÇAùp+ë§]ukl1×;Üzâ9ÂC‰+Ï‹pÂGžï)~ÓY–)þ_DÊågg¿Ÿý/ nüendstream +endobj +572 0 obj<>/XObject<<>>>>/Annots 310 0 R>>endobj +573 0 obj<>stream +x==Â0 …÷œâ04$¡8îØ +èÄäЦ¨h)çÇAY¶üó=Ë~* #fá–„榌6Òù‡C­V¬ ˆIâ kú=Ž‰yÒ9{ÉøÑ©*¨Å–`-B—6{„ö»Ø 43+ݽú8ÎÃUhþÑ6wšŠΉbv,wU‰u|ÇþþˆÃˆzº´1)2ëå3oŠ„–çñ5œšWæl4s.¿É`•:› öêq7endstream +endobj +574 0 obj<>/XObject<<>>>>>>endobj +575 0 obj<>stream +x•WÛRÛH}ç+ú¤Ê–-ã`Cž€À–«8±©¤*Ù‡±4²'Hef„ã|ýž]Úl¶R¹€­éÛéÓgZßBãOH³ œR”|œM‚ Mç3ü>Á?#)9º\nÎh2¦u“ÓÙœÖ1áøßD¯®v¢pÒPÐ;™¨\9¥sÒ ÝIw¹¸_ÑÒh§#’Èã×ëoGcN¦pñêNd’>J«ÓÒÛ¼×±´|‚Ã…³*ÜðdŠ”p: áîzÍ>«CS +ÃúÐdœz—uLSæ–ôÒr;Ô ÓTïU¾%gD^hãì9­¯–£Åò­OóúaÁÙÑbùy´Z~h%² §*­´m-ì²®!<©òªüt£ ÅÒ •"rîãVZã•´–±YIó¤"Ù~ÿN8±5"k |.5|½hŒ™•’L…ãq¸ÎTŸ'ü9¨­&§A…4`á•%AFìÛÐ ÂJ*š©¬He&s'|CÜNÀ5c÷Œ@\'kÉiÚHd’;Ò¥ëåÙb¼WF“Ì62ŽeL{åv*§ÛÛ+òÁ-šúœ]®H÷½„ Žîdø¹o —¼Û +Ö^À¦TˆF*ǵF&ÒˆM +¬ïל°Ê­CAÏ!>‰œKOZ!Å>x5)©åŠç‘ü¯2V–+² + â– +ßPüE„; Š‘–,‘ÇîP@´Ú _Å7PK¥Â`°röÂø ˜fˆ¿X’ˆcl{5q§ß7äG9/¡…ð€“Ê>ˆ¦;C±ç ïË´ FÂ~ž*šÅŠÙÆÅ×mì‡-1Úc ´ž.\ î‘oL%0øwîë[¬‰ÂL{vÊõÊ­êk'¶?CU<‡¡¹žÆ`‡/±&o¥šÍ H®ŠÂ<ëÝ¢r†Öd@§—‡-•óÚï}ó5‚©³åQÞ¢à[‰”.ŒŒ¼Ì©€JÄòÅ׿§÷JâNÔw‹×/}¼XtÏûƒÎ_6“©Z ¯h,ºéÑÅ¥ŸÈAáÿ>=Be1ŸÏ{×ËHV¯Wçti´ˆ#\ ~z–7tzèñ¾û{—ßÂ`ÐåÇû‹wW«uÃRNstó‹ ìÊ$F¬-Ó÷¨ê)ÃT SÅá.§ ¦K›”)@khQÛ˜ªþêµi +*T)xTõ—¡‡¬ HŽ¦­tMÖí¨tÄNöLŽs<ìßÉ+‚LEF[¸Ú2ŠÍvKŒ¬.Ìèjq³±=Ïï]àf½‘øÑ y÷þ)R‰òQ¨=sŽå™{ÜkûíÅóè~€Üþ{”|£2X¶Xª ï +( nØ*Dô(žÕ+®WKáÉl€ÿæ>ÅðäìßlR„Þ£:Ö7Ü+~k7‡€‰¿Ôwâ ´#ÈàVÒs¦¿¼ñ­æ»ÉÛ/a}•‚²³7THù]2©zMNÁ4–"eŒxm씉Å(ITЗnNÍÚ@=TÜzøòþÓÛMüUŠªE +Iˆ„פæ‰!jXH?1êÞÖ,ȸ.·;P–aßö2:™ÊÑ%ๅ3/L£›yçue^½®üÑ»ùþÕûÒt>æó)^ÎðžtÊ¥^¯>ý3vmendstream +endobj +576 0 obj<>/XObject<<>>>>>>endobj +577 0 obj<>stream x…V]oÛ6}ϯ¸{J8²åx¶³ ’nݬndhŠŠ¸H¢FRvýïw.)9ŽÚa(âÔ‘x?Î9÷\þs–ÒÿRZLézN²:›$š/æÉ”fËþ?ÅU”‡ÓÉ÷ø:xp·9˜QšÒ&G¬ùrA›Œg2¡¼p{á åÈä´µFdR8OÞŠ<×ò»¿’ËÍß8~C)Nññ«ëY2C€‹4¹Nhu·ZÓJù»ûOëøæk¢«é"™ó›6—éd’&þ‹§L9iõV¹‰ÊÔÏÈeÞ’/4¾ð[‘®šRUªöÂkS“¨3jB…8Dç]:Z‰JÑZÙ–ê<Ô‰êÒk ƒœ«Íøv¹²ŽÎt™½£ûÚ+[+ÿö,í - ÒŽò¶,ÔÕ;ž’4¨D‹ÚhÛz*„ÃOFÞ/Š>Ié%5@#!CÙ{í ’Êz¡ë#ªQ´#üÁØŒ»6T!iÏ"}B¹±¤¾aÄO2%JG!ÐdµêY;ÐR‚ßRù¨w]>Q–œ3ÓŒp¥½8¸„î¡´¤Ñp·Jd`¥À_?ji3¹§‡ûU ÷¤[ ü¦Ê†r]¢).›D½h¹t—=)Óy”ÌA#‘à‘c’‹Qdë!ÀRŸ¨Lí}éÕ2ôì3(Ø™²åÖÑLäçk„š–YN ªãþnðUïq„W¹v‹¬Ä<+¼b8äp®TG4 È £ƒi-ý~»©vnW#–ŽŠÑ]ÎÜ¡°yÿy|ÿù¤ŽFȤ÷P¨š³@};DzƒëóâYjpÌŠAŸ[¼¿Ezt! & Hp§èãQr7ÔÖ)ÖËÊxÄ)°¬1&¾0ʨφ£,!¶ì(\rLÙiâ®Àf;í4*Nh3¨óIŠú)BàØä‘´k5$(² Ñf= /¶%>^´®ç‡ §dkµ? ²BûÎÔKªôsÁ3‚A‰°9ÍÃÚ´Þ³|Ü™©x®SkÊ’mú^ÿ2{úFaŽbɃ¬]áÑ^˜`W˜¶Ì¨6œ b° g BZèTQ¥*… û^/cAf·2ðÕFXøÖÙÇ QÙC¥%#5à†kh¬Ù´b@$:Ï[ÇþÌYKÄyÄ” ¶Åž#_˜ [9^dì0Rê(øΣ}ó9Z}ÚÔ´fDj‡ÐÁ™p…ïôpÜ œ0Ak¢{Ë` Ýr>ÕJeîéÛI;_Ú*)xT¿Qo7„QùaÆã yuO¯%„µ·(̳7Â÷Ý„BÐ$K¡«èÓ0”èÄVS^x°ë×Vµk%švqO…“h9ì”Q”ŠÒC :šÜÕÀäúT+Þ,r¸ÝQ*Gl/¯`ñ"Èž-ðT3t‰Ü7 dWE‚}2Îìó8_¥iìøýý‡õ˜Ïóöá;À¡ËõÇ»°7Æ…ÅB÷¿c|Âus~õñ’ôÂÂAóCyDÇ%x, M„UÆÄš›>줽°Ypü#˜Œà²”[SQçÁ<±ŽÒëÅËPbz}ÓÏA­ø#\+ÇbD…Ù£M‹-{Îp1àIáb©öYuk=›WA0ÈP!¶LØmx;Ü2”çqÇe¬jT6˜ƒíáÈ ¤'£ïãD}ûâvÒ: ¢#VºÖ•†–y:jÅ*‚ òÈqdíî€=½vÃPöF°N«'2Ž¸rž³Ç‚Ž·Š“¿1-|-ëó×{ÑWL³ÂãÕ0ÎÛ9ü"^:¡G4“ x¤7‰¯†'Pá |.üíî -´òÉ ÿ¿5An_MˆÎÆ–Ý;],“ùÍ Ínº«éúöãÝ-ýçƒEúk WåCWý»W‹ÉÍÞ±gËI²\ÎpÇ=wÎç~Ùœýqö/M5øþendstream -endobj -545 0 obj<>/XObject<<>>>>>>endobj -546 0 obj<>stream -x…W]oÛ8|ϯطK€Duçë^Š¶¸yhÑC|ÈK€‚–(‹‰TIʪï×ß %ÙŽÓáHaÅ"wwfvvóãäRføw)·s¹º‘¼9™e3YÜßgw²¸»Åç9~¼–2}q5»þõ×÷<öúÀÇåÉ»Ï÷2ŸÉ²DŒ›Û;Y‚ûgøM~ú©RmÔäQ5+%|^™¨óØy}¶ü;¾¼_\-²9ŽŸÎ³ËLlô®èòhœÞ\Èååøæü6»á›ËÊ)\Þ5ÚFY›¢d­­öª·Ñ~ct/®”Êõc -½ó/AŒE^VÕõ6“e¥Çï–Z5R© Ñ]Ht’»&%:“‹Ë«!½®•ÞÄ -WèZúÊä• ‘ˆ{V:Di]fUkžn½kLà±×ÚŠ®õZÙ\Ÿã-ÕÊÔ&nÏ%è¼óø$Ê"nu3w6D¯5Rop?²[mSD¹•F‡°•Ç/ÓùOŸ£Ë]=¤?¿ÉÄì!ŠªƒK%"g‡¡G•)VQzý£¤5ò /ˆ…§@&‚„Ūð;o…šö׆ÃT‰*(ÖwÖ»gå/k~¾OPÿÜþ#m­bé|ó^ž*…„V®‹)²wøy0Y›5Ø4!tú=ƒ]€}ˆª8…8øŒÇ%ß¼ñ@Ž8±ˆ¦«#8òZŒo¬l”7® Ò* ñJä«‹¡Òã‹Ÿª­XdT©áA㸊šàæ€\PƒX༮îѹ<=|}LP“Œ›àãlNÛdÆGl"Üc"¡Õ¹)Mub¨úaŽ¡k¶{ŸY×n¥ê糄'Ë4܆ˤQ„% ãå•ý|ªadq ªáÕh|°Ð½+ofò„6S0«¦Ñ=’ T˜ -cË[vÿ8ûŽJê 죓àÁš„µl (2°¾ bÖu^º& «Úåì•L¾:{1= æ¼Ù¨ s“W ‡yh0›£ÄÈ®Ú(“Z‚¦øê_zå C+a÷'P;v?7ÚJ‘9b0%j9,ƒIಣx½JÞŠ•°Qk&FBBÅÀôïO¾bé)ar#̃ˆ¤”îU!ž•Þ "ìY°Ë1Wà “í0§ddÀ¶Õ0`H;^®î‡UtêÜJ®çX ±¨PÑ ÿ·È=h˜Á…át ãvSËÊþc‡°eQS£±–¥TÓhLûÒØ<9¨Lñn †Õø0íïšsü{Z[8²ÆTÁÆ·°¡Ϲ%²ô]!S,ö[Ð$0ÂØ¢ǎM(K¡CîM!€Ú4œ0)S&ÜáßÀ9O¿JVº–¾ ²ÒÛÒvÍ -—ºòˆïQ o»~›Ø‚ÓW:`”û$fzGMêzlÔ?aR¥”9ÖÜçS¨5)i,ñ>/XObject<<>>>>>>endobj -548 0 obj<>stream +´òÉ ÿ¿5An_MˆÎÆ–Ý;],“ùÍ Ínº«éúöãÝ-ýçƒEúk WåCWý»W‹ÉÍÞ±gËI²\ÎpÇ=wÁç~Ùœýqö/M?øÿendstream +endobj +578 0 obj<>/XObject<<>>>>>>endobj +579 0 obj<>stream +x…WÑnÛ8|ÏWì[ qÇIœ{)Úâ +ä¡Eñ!/ +J¢-^$R%)+¾¯ï %ÙŽÓáHaÅ"wwfvvóóäR¦øw)·3¹º‘¼>™N¦2¿»›,d¾¸Åç~¼–Uúâjzýû/®ïxìõOË“÷_îd6•å +1nn²,÷Oñ›üôs©š¨=ȃª3%}^š¨óØz}¶ü'¾¼í_\Í'3?M.'ro£wE›Gãlÿæ\./‡7g·“¾¹,MÂåm­m”µÙè JÖÚj¯*qí7FwâVRºnH¡sþ9ˆ±È˪ªÚNdYêụVµ”*HôFä®N‰NåâòªO¯m¤3±D Úº’®4y)H$âžL‡( Ád•æéÆ»Ú~;­­èJ¯•Íõ9ÞòQe¦2q{.Aç­Ç'QqË㘹³!z…¬‘zû‘]¶MQäVjÂV¾~Jç?ßyŽ.wÕ„è!ýÙÍdNÌ*¸T"rv8:pP)‘b+¯¶€´B>á±ðÈDТXþà­PÓþÚ0`˜*Ñ@ÅúÖZc×â¬üm͡õËö_i*WÎ×ä±TH(smL‘½sÀσÉʬÁ¦ ¡ÕììCTÅ)ÄÁg<î(ùîˆrĉEÔmÁ‘ת`|ce£¼qmFy`ˆW’ _] •_üXnÅ"£Rm4ÇUÔ7ä‚Ä*çupUKˆÎåñþÛÃyJ'ó® HàuW}6N¯ý‹ÙµPý‰ŸÙy|}?KÛåûþËo:á»v G£@lB”¶Ek !§kç(2$–Ä’ÑýIGÖäšhAÆ“%bà} ÎÍÊäP'†ªïçºf»÷™uå2U=%ô8YÆá~0\F",Y./¨ì§S ë$‹kP ¯Fã#€…þ«]©xs"h3³ªk]Ð# J‰©0´¼e÷³ï¨¤ÎÀ>º7  ©1AXË–€" [à[#fUét¯kšU.g¯L䛳ã“`Λª€Q?7yU˜‡z³9JŒìª2©%h +‰¯î¹S¾2´v!qµc÷sƒý ¡™#æS¢–Ã2˜.;Š×©ä­X kµ6`b $” LÿNñä–žLn€€y‘4€Ò½ *Äs¢ÒD„= v9æ +\ôâ`²攌 Ø6  iÇËÕ]¿ŠC[Éõ 4*俋܃ú\N:nk0µ¬ì1t[5ÕkYJ5Æ´ €Í“ƒÊï׸ _Óþ¡9ǤU°#kLl|»‹ŠðœKP"Kß2vÀ|¿#Œ ,zèØ„²:äÞ4¨LÍ “2eâÀþ œóô«d¡mè› +½ m[g¸Ô­Žø”ð&±ë·‰!ˆ1}õ ¹b¦§qÔ¤ ÇFý“ZÉ*Çšût +µ&% %ž' o—JÚ?oÆõm1üA’Ö·þ9Òÿ÷Ožùb:Y,æý.»`í.Oþ:ù3l)endstream +endobj +580 0 obj<>/XObject<<>>>>>>endobj +581 0 obj<>stream xuWÛnÛF}÷W ú°XÉql¹/…’ôâ"MRXAú` X’#i#r—Ù]ZÑß÷Ì,©D‹ ²MîÎåÌ™3£¯g šãß‚n¯èå UíÙ¼˜Óõü•|.oñy…ÿi£/ËëâfúâõúìÇ_ïhqKë lÝ,´® væsZWçWÅuAë]`S[·%×–õÅú ®\Ó'åÊìêf×õùzg#|ßÔT2ÙšMsIeŸhË)RìÝžÊ#u>$SÚƦ#BûÚÛÀ-» ±+ÖnŠk±¶ruà¥`¹¦äélb2”8&JQ¤Æ–Á„#m|ÐØðÂ$ê#®x×ɸhgo¨ò.¦ÐWãñ¼’Iäô¥íp@óßÅËâJü6Þmñæñ¢ OvSïLbØŠ¾eúðÀ‘jÞ0Ü$ÉDl•Äìp[®LÓÈ#S#‘qOƒ3¨GÜá?pr}ã€Ã)¦ª Œw‘Œ>ŽÉT{¤`ºf\BT«û¿©öjÜF Z«Ðš=¬ÐãL†¼aØBž`›x·mçc´eÃ=xI!öÜ%DK¾§°ºÆ$@Ó¢Ü;¦V›á¦c\Ì©#¢OÎ~vÞëµ0õ ‚|xÈõÍžE"Ä%¥˜0c%ï²0¤Ú±é²Kƒ84 $AŸ;-Z«ö¢1Ü‘>½ý8`•}›ìÇ‚~7OR Aæ~3ê;}àv”íüíòQš§¶Á´ÀŽHtÝ«nü'´¾GŸâê꣕…ÒÅ%j»†¿M\guGÅ!àT:0gœb*è3êk„xAÔ\²5ÕŽF)åÈÉ .[n=ÀˆGˆ@«Ãéùœœ½¼ÎcêªxU+ÛšÞj»I`ÿ9?»µJ ÍΣMÇÔIJTomÛCZeÌá—dgY»'¼“IyI‡EäÒ6*0:FìšãßÖ@”…0¢­R}ï6y Ö\ö[Ä%í‹9Yл÷Žív—€†0º óªáÕ©¡¯=÷zGÁQ–L¼î™;(K’d¬ŒÑÖ$Xÿ»¶«(³#Ôÿyx’! -9vHú€!¡¸A#e*€‰ç±áÕ7²Yå–´Î&k‡8d¶€–ÏìòŠ°X®U3LØöº› Ã‡Æîæ¼G±¾L×èžÆw\ëPآ׺À ¤oìQFª¾ ƒvÊšÇ#í€5‡™5Äa3øÈ3dÆ€?•FfXFtÚ |-_í¥}]³ô˜Ö_gP±ÀˆYßpø‰äˆyÝ·%à—†½C8†Mn’¦Úpm•…òÒbq=ø®JL™|Ä»²p&jåÐÄï×/"í98Ɔ(E'ZÀ÷ìo6\M×­‚ê,h0ubÊÐéÓ5sôcÉ”E-SY¶ØL½<²¼À˜¼À×é„©‰ AHIå€-µ {ybÈÙJ» ”ÆK| _Î PÈÞ‡*z:Ñg²ÇdÁÝÜ#b^veßPmñ¬a¦2K‡gÿä¿~Qçà$x*vÝ$€àzƒ0Û¨s'›†îVøá 1<“ô”¦Ce¬c”"3YâU9²\À%"ܤ$ómVÔ}âXÔZžc…ÂÁ2øƒ®ÜRèÏ÷ïƵrÕåðMbq»,nîîè¶aý>ñ°úóõ ²šÛ ôü­G<âk6žÝÎïdiÿŸ¯)×Ëy±\^ãK -Î,åæ/볿Îþ­lQendstream -endobj -549 0 obj<>/XObject<<>>>>>>endobj -550 0 obj<>stream -xVmoã6 þž_ÁoNÄ÷ 7àÚKoz9 ç4E!ÛJ¢Í–š-Ó°â’— Uõ¶*‘D),721BIøÿ¶ÜœåSnò‰¨HrÁaŽØ\(tôÊÌ!>DÅãy¬·L‹„eÙ®…¹â%{?c¦LjÌÀö ŽƒvXìã…6ËYÊaSPH'\ië²Í‹Ã!mbƒ“ðc;躮Ÿ2äøä1w„Ç`ͽ&S e»ÁR¢­æêÜRL¤“Ä;`ä­[{«¹ª>Õ©FˆS9‰9Î [aœöš²1¹àßÕ-—I¦4F†š±GþàFÛð«>¨Ý“æHƒ­½\Zú¸ÚXŸƒ ëÆ8‘",U–©­ã§†D6Ïœa£æBZˆ"HT¦¤ów"XÛ$»{2A¾Qhk®ñ©‹)Q8««Æ¤ ßðnëÃ'^piçæÀž °Då¦_¶ì§}»Xï9ÛAŒc@hM3eцԱo>ª1bœ%øü\ÏËçgTRR*Ò7õ2Þ•ÊÀFŠœV¤|y‘Ù¾ái Rœ)ÂTã„TÛqÚÝ´î`¿}ê"Xµ!ô‘hðR*!W¸3‰ÝNJ?%“Õ#r/HÛ&=§ÆvØ?tÞϼäŠ]á¤â¯8Ïp¿)»(ÿe©<ãñ躃?]ÂI¿? û-ž@æqê'“EsÐ/®j;.]°_snb¡2T¦æ%RD ³ÀûÁ¸»•eÅš–+†ap‚s§Š])VkeZâ‚J‘®8Î ®×Æ?Ãwü¿y÷ ×;KQ¹~8è^ˆ~&…,?H9«LÅ,#áb.´©Èáõý›õ6W§ÍÂJÌ,V/ÂI¯' -ÅEˆ&Me_nR¨D] ª<µ#3Xº˜'l£ þ\°u=³ÓžF@Ü}ß>Ï`&SÔv -btR·¤ŠkéЛ¢P% rÇ]PÓ[Í\ÛVr×÷£Ã›U/to7ÿé®7Âzn®ÉÁ4jüÒøgæ"Òendstream -endobj -551 0 obj<>/XObject<<>>>>>>endobj -552 0 obj<>stream -x¥V]oã6|÷¯X(âEr¤O .¹½´(êë=Ô} $ÊæYu"Ÿÿ}g)Ég'uCóØ"¹;;;;â×^D!~#š érLIÑ ƒF“`D£é‡ø¯%e½Ûyïâ~FÑ„æNŒ§ÍSÂî0¤y2¸ †ÍW’ÞßÝ~ú°,NéQ$µ>Á¹EØÎç·“`Œ“ƒOF’ÎÈ)ø)C®LV¢\Ê4Ø hÅZ²M•¨E!­¬M“4Sµ±|ŽÃÒ±””Ë'™Ÿñ#Ô@rj#]¦ÝöX§[F"(CV«tI‰Ès²º'c·Œ|AÝzÐÆŽAâÍWžBÐÌU.Ÿ¯ÿ"k‰uQ’ü&Š*—´Y©dE…ØÒJæRÇÊôÑV;Úh—§´©•õÀ/îCšu䚌U­J›-ÔŸ¯P5þýdºÊƒÅ¢ìŸQ?eè}Zœþü² ¾(ÑH0Á¬ig+g¹jcS|ñÄ•oÔvÂ3z3ªÆ0}M”©\tƒ.µ*u]ˆœ:^ ¾ŒŸX‹v4‰¨ œ®×Ï{ó›¶õ ¨§ô<ˆX?É]£8¥¯­ã¶Q3n¤g+ 豚`ÛåD¾[Óêrvú»F±Ä¶g¤š 8,Ï’a•¤k’_jkõ¸ÌuŒoO"w-´wÝ}lÛµÃû\òVXYÈÒIUëñ1\/„¼ÓAËë!2cIFcúVÌm®Öòº‘×K™~þŽf³éE8¹¸„ÍŒ¯Ãðú*:£ðŸ¦‡Éu7T‹A4œ.N;Üa0åÑâ_éDÞ´¿¥ËÃ?4/ë;áêfø»%µ <*¥Ü`ðD*kzçJæúÝþ €ŸÔ%2¥xëWµ|RÚaÂ[_ØÅìжƒª”Jm‰gj£ì -©N0‹'ý¾›®Cs¯+Á½@¦Z»%ŸÙ“nì² (¿ÀÞ,wf…Í°¶zû,»U…lŠËU)9²,íJØ$û(Ü…s·±ê‘•Ý"¼,÷|k\©L½¨<[ªdsÀ‚Q0°ç™EU¡ä—z -‚ fOiüôCóôÅÁªýš»t‰!~°´ ×Tå"F™‡÷ÃŽgZaK,A•nì‘ßVa¸`Ó©¹³ÎvÌÆ”º"†5t.Üj|­Ð.ÿ™ýpR9. êwöUu·߃ÃK$Ê«¥uu ¤ì¾ÏñhOÖŠý›wûwËå·ñ½­ö絓ý£ñdnv/º½4Ô±ØĸØv<ÈA>ÿùžï?&í3DŠ¼°Õ¶új”ƒ%îëb…»‚ÝÕ»cÈ¢(äh¬%×zí-•y•ù·ûÊðj|„Ýýê&j¿ÉsÔ¿Pãÿ =ŽŽ”pÌ?û†2剥ÂÁ18í]É¿;Xû1„ã«û,Ü/ÎeÑž¶7·h2 Ƴ¯Znþ¼y¼½¡÷|ÇÒ.bôÁ©ÔWyÞí=Ÿ„¸¸¤¯Þ G“Q0Oq3ÄÆ(d–îæ½?zÿ ƒ!;endstream -endobj -553 0 obj<>/XObject<<>>>>>>endobj -554 0 obj<>stream -x•VkãFý?Ÿb8`+’åøG -I“9ÚR÷ ÔŬ¤•¬FÚõ­¤8¦ô»÷Íʲåœîì&ØزôföÍ{3óåÂ#ÿM†ä)Ì/\Ç¥ÑôÆá}‚ÏC¼Œ¤Øþp3uÆo¯ßÏ/®š‘7¡y ¨ñÔ£yD€q]š‡=ßñš¯$=<ÞÿþáîáaÑ[\Ñ'}5ÿŽÈÃüè`8ü<ê}T$¢(-S­¨ÔTâé笊¹¥BgUûz`ô³T”¥JÒÚè “9E²MȈD _dŸp„´ Aa&…Ú£ØÌ8 ÷|gÈÁòÌ9ORòEJ¤’F”’aVRDÒ8ô±¤Mše$Ök©"ܸ¡R¾–MÖaeŒT%2 -ª„rY"‘4Eiü&.Ÿ2Ö&%U# –ùºÜÖü[UŠWÒ±å£#KÜÎ…È% þ ¤öÝLü›˜öxN]—fMF¨>˜ üÙ8‹¹}Zô.ç+ÙʼnSS”–xg±P—„ª.®~h¸Îô¾¥¡q\?†i(W©9üÒp,+™_ŒŽªPß;ËŸÞl6½v'×>?¾uÝÛ¯Oî_§™tÂÛ¸R!kkÑ»ñ†®ZG!(¹“ŽcßÛ>çÉ›['¯Ïs°×À·¥ñQËUOŸŸÎpÕÏ°ÈN;§o¹:èÉ‚Ô’ß4 -Ú ÕåAVÐ9œ[&²„‚"Ð*qèG­Š®^jëÐ2•|ù:ƒÀÎIåA´,€#”Òàœ¹ÿvÝv ø}èZf:Ù2E)ͲÈa³[*·kIï^ÙG¤Øï -B)ª@!Y|á6Ú<'FWk\`åö;ëÁâ' ا$Ó‡Ü2fŸáŒ ïkØe}‘Qïù}iÁW;7tˆ•+qÜÈv¢ÒdñLà4ÒEU‘ª¤ñ J `•¶óûlôXg™Þ§)$ŸML'Yl[k¸7À!tÕEø%.êð†¶oõ‡¯1 -°ºÏë,¸•@»X-¼ŽrÝQ‘æi&Lš7I%‚lK* ¡v´~£E¸²}Q£dò`¨Æ˜uŸ­›Gí/#Ëʨ‚æ¦Âd²=½‘án5Ó"øÈ<Ãøà®®"–_*‘5c¦Ög­Œ§ÇÏOô"²Š•ª¿£Š4†,ý6Mòkš4öU'ú§ãZ$<éÎÕS×`hAü/À:O?'@ÎÖMοÌW‡½9ôþØ0t3rì¬]g=6¢@ÂÐÎ~ Çõ<ÆÃXc¿(Ʀ!¢ á®Ì[4R„+™K[t¬sƒÖ“hÜ׸e- —#ŒV±æþËù°†ac‹zžCü_÷;Ѻ¢Âè4!V èˤð"ë8n¦JQŠð™º[Š,~ Ù‘4)Ö9pЀø|œÀðë0Þ1Üm7´ø8‡E7ö L@½déª\äœ-Bc¹(kNyÒ k]Àén5õn|g<›ÑØŸÕ êowŸîïè©ÁgA*L¾šÅ vdÜ;˜¸Ø§¢Sûïh2r&ãéŽy!ç¿^üK¯mÕendstream -endobj -555 0 obj<>/XObject<<>>>>>>endobj -556 0 obj<>stream -x…UËnÛ0¼û+ö˜ kÙŽåäÑi¢j{ P"e3•IW¤âúï;KÊy(i ò,’;»3³«_£ŒÆød”Oh:§j=‹1äS\g‹× ¾­¦:.Ìæ™X¼·0=‹ùpá¼}¸:¥,§¢È|‘Q¡ã1ÕÁTœú¬·tÕÙ*gýañNÌÒ‰ã)G-TÜš Rå2èßáîàî0mQ†˜üxuP¬Œ§ºG›ÖØàIé²[ÒZ{/—š8Ga¥û•Ú4šî¤U´qÞ›²Ùñ¿ó[ÞÒ£‘qwíÚµ Tvu­[AÅJsÀΦbÂèOÀמ$=ÊÖÈÁe»ìÖÚjŒôÐáÒ˜Ÿ:%Xs=äZºà<3þƒ“±›. -Šuh…HKö Pç]rbƒ,}¤¸ûœŽˆëÃnKé=¢!Vªè>t¿§VÐMM;×@ÓÅåù·ëÛï·1G~¸5Mƒ„\‰Âvä©*Ú‘«ãýžø”ï EyÒ;¸MzO¢Þ+ÕþOnÄZî ň´mMˆ¼¥¥bí>Æ_hk[¸  -þ+û¬ñnP-ÎÁM fR¡¯üÁºqd½Þ„ȧJ‚8pú¢—=¼ê*øÄ‚µ.@vA_5G×T¹5[ÇCýA/"šÖÅ[»È+·Ä<±yMÄ8l:67'^µJ”µ² Ê´º -Í^ˆ‡aEå.Ù!zÝÍqvq-ûO1§â}¯¥Cï·1”äƒ ¦z×ØÔ´¢Š©ù€¢“þ‰·ÔÞLs÷ž á¹…l0 ™0 VÛÊu6è–3°zÛ«ýàÞá¨ýªV²•¶±Ö5N¨£„?d>õfÜô6?O€§ŠŸúvßö‹’5‡ôr[^e©b‹Ã -–sŲԠB/µ<1ЖZV+˜ÁGÇ c™¾„/aÒÖw‰í>fOù‹BeŒÊ˜™fÍcu»2«--ÒÜôcuPxŠ„Á— ±èçz–/Äüô”¦³<½¾ž}:?à|ÔÛ°>×Q±ŠãýÞã||ºŸ!o_/³|&òùo Œ™lÂp—ÅèËè‘;6Iendstream -endobj -557 0 obj<>/XObject<<>>>>/Annots 294 0 R>>endobj -558 0 obj<>stream -x…W]oã6|ϯX´õ‰'i>îí.MÚ<´¹ÆnÑZ¢,6©#)ûÜ_ßYR’m¥hq¸Àú wwvf–ú|4£Sü›ÑÕ_R^f§¸3üyúïÐÅåþÖtv~wWšæéÙùUv‰g³›¿¯øÙÇÅÑôþ†ÎNiQ"ÆåÕ5-Š¸5îä“ÛJ4A:ºÈèÖʬhÞ®VÒe·ø ‹/h6K‹Oή³3,ŸÌ-mmKaK¢((·…äßsQ/eYÆ‹Oéäì2»à%F’-)T’ -ÑšÀ¡‚ð¯žJ‘ó… ÆÙ•utD²nÒK–6N™"”Öu!”§ÖÒù LL[w1gç)͵pʶžWr„ÜšµDdTF­—-·ÈÇzIµõDÔZ’21I$ó—ÌCF‹JâýµéÒ½l §¤!äD•Ô ¢¨{ac©¡K›[ÄRi¶Ç„ÒOBmˆã•Çù¶‡‹‘å4Ppaó¶F ´QZbwq†×•rÓïS[¤d86¶è@i׈r¤ jô+A‘ZºÈ(ô›­"É/ ðCýH(¯„YIòZ­ª QÙš@ˆã”D[øµ•³íàL=i)œÁbiÛ@véóÖ{Ëéð‹à"ö˜m,ÒœÜýOœýôz‹´žxfìÔÛÖårª Ô`„öÞO/öüŸp®‡kÁïžk»—W lï¿mÄ„PÐ „£8W¡A;P»Ž™¥’¶à)sR õs›4ÊÍíà÷a«#lwK ”7f&Æ–ö tÛX0>©Œ¡G&Nú¨ø½¢B>øvÉJ8”¹l¢à½`åàÙUÔFk¤[s¯ù¦ä.sÏ™ZÜh±ô䥬9ÐRBç²”Îáuh-‘+¡ßÞcúPF›a6ž ä´BÂ^ÊÇåS@ÏmN>·–_î‹ö„]Þw¼í=© -¡y?ê/.ÓÊ´_2c{|ß)-6dz dÎÿû›Í&+}™Y·š¢¼f]I¸Â¿›gU¨{¹ö±?‚Ñèê`È[Ø£Âþ…VmtV.ºfK…*ÛxÔ9¦§MeS3 ‚àÔ²Eù= }Ð{«µÝD·¦ÞB㇚‰xûʶº`‹Ä¦ìe`)d`%ÈsçòÝ+Øo”0È+ÙE;xú⦬—ÑõDÃÿi炬vªàîANL’.ƒ²5ð*kàžW‰n»W¼_7bpÑ |–&æJ°ÌÚdÇoRƒê°•Þ>ÜϧóŸ>²;jdlÂà plÈÿµ žÙÖ@¬TX$7.ÑwÙ*]౦·\´œhÄo·«EP.´ŽÒ#­–ŽëîëK[s©2kûšhß—ÒEåfdôA#æŽI6 ãÒÚ×a0¡esÿÚó»Qd` ÛÒÛ±~ìŠü· j=‘¥8… 'ÖAñnšP¢ð QD&¤;|")”/à‰ò × à¼ïI±„!ƒ öŠ))øä„ñÉÉ5Fc+V½±ôÊá­¸¢L©þÞ,‹³ w’›¸¿{¹º»ÛÏ®tR©Àk[¨Í`'¦E+5ú>G™°˜œíÂô‘ k¾ ‘ÙË¿¥K‡²½-PÿŸwO/óÅÓ¯·‹è{ןàYÜÝ!æô§ÇùÃï}u1æùÅôÁåÍ6,xžpW¼(åË·$AëµÀíàŸß qx¨­­ÂLÚ¯zÙ²wƈkÓ w¨g`Ήá}[÷Jbà„mÍê8ÑàrP,ì¨#Fßý½sÉA¡ß½ ‚“’V¹âƒÌ!º_À€Z•PG´•F¸šá=1 ±w -¶}¦s|ÃP¦á“’ÁVÏæ÷&Åñ÷†zœ|ó -²Äœè"æê’ôu!KO]±MªÚçàå.ÿ~ªÄ!Ñ''h-^4,—=; -¼@Î}e8}‹/nˆÀÒƒã -ô’ûÉžðÛ‡—ÛÇOÇY¢´9faÒu‹tPš28mÖ¿;;ìaÝLÁ 0¿ûá7Rå((ìD D/a8úÚ¯vpœßà òä8LBÒ±(V{…¬1úÜ÷¸6á° “…ZǧÆøQ"×»P‡ôÜã2¹n1ûxVWˆ |K¥áãàÌm÷ó$=í®ºaщkãgQ7¤Ðz…eGûºH>«†²âØNß.¼hŸ57»Ü{ä’¥ìåÃÃÑ{hˆ4ˆMð<ƒ‰®¤á£=z‡ï¶¯jñÊ'IìWÈ ÅßYµs€Qâo²»Ì¾Û9ëiJpzÝ}œÌnðüäâ,5õ¿“/®.²«Ëëä ³s~·8úåèñ4ëendstream -endobj -559 0 obj<>/XObject<<>>>>>>endobj -560 0 obj<>stream +ÎÜÉÍ_Ögý ·lRendstream +endobj +582 0 obj<>/XObject<<>>>>>>endobj +583 0 obj<>stream +xVmoã6 þž_ÁoNĵ÷ 7àÚKoz9 ç4E!ÛJ¢Í–À_õI¡×Wð7Ý  …ÎwcnZsw}“UWà-—Ò«oþl®Þ¹líeïÞƒxþe^ǃ»Ù¯³;ð<¸ßáÑÔƒûÛï‹›xþuñ€àm4™/ðÁòÂ{Ùz=É"óz/ ÷”²Žg¿Å.ÇÔKÞëd€¼2Ц"²‘ûtÃ*–bÑ5ðç4ßftn°ø’ïúhà7í.W„#k'’œ?ñœPé¨àZ³5‡e›IXÄ5*KHû¬bŸ¾Ë‹s`˦ Ó1¬(ÏM,»µkÉ +Þø´ÊYUª€ÝF¤ëËjãÍŽiXsÉ+†ªz[—ŠH¢V[™¡$üH[îÎò)·E‚DÔ$¹à0Gl.:zeæŸ ¢æñ<Ök¦EÊò|ßÁ\ñ’½‰Ÿ1S&5f`ûÇA7ª öñ6+XÆa[RH'\i벋͋Ã!kcƒ“ðc7ì¹®Ÿ1äøä1÷Á†#zLf@Êvƒ¥>D[ÍKÔ5¸¥˜H'3HöÀÈ[·ñV+òUskR§v’pœ+vÂ894ecrÁ¿©[.Ó\iŒ 5›`üÁ¶á×}и'Í‘;¹t,ôËjc}Ž‚lãDŠ°Ry®vŽŸÙœLÆ—þô Œ¦ƒÁ4t |Y$™ŸN—íá`²¼h \º`¿Ü$B!e¨LÍ+¤ ˆ6f¡?ñÃIw+ËË -V½†á Î*÷•Xo |”Y… >®D¶æ8g0¸~ÿŒÞðÿvä½\ï,C6úÑ°÷Nôs)Œ`¹øAÊYç*a9 s¡ME/o_­·…28=hÖbf‰z:Nz=Q(.B,0i*ør“A-êzpPå©™ÁÒ%¾Yõ#÷vóŸ^áú£¾?Žë¹‡YÜú¥õŠ "þendstream +endobj +584 0 obj<>/XObject<<>>>>>>endobj +585 0 obj<>stream +x¥V]oã6|÷¯X(âEr¤O .¹½´(êë=Ô} ¤•Í³$êD2>ÿû)Ég'uCóØ"¹;;;;â×^D!~#š érLIÑ ƒF“`D£é‡ø¯™²Þí¼wq?£hBó 'ÆÓˆæ)awÒ<\Àæ+¦÷w·Ÿ>,‹SzI­Nç_pnD¶»sçÃI0ÆÉÁ'ͤ22G +w„¤&[&+Q.9 ö±fMf£¨µ(Øp­›¤™¬µqç\¸‚µK¦œŸ8?s¤ŽÒ¥Öœ¨2í¶Ç*Ý:$‚2d5R•”ˆ<'£pÛeä êÖƒ6Þp šo¾æD‚fVËrù|ý®ë¢$þ&Š*gÚ¬d²¢BliÅy…Ô±4=d´U–6Êæ)mji<ð‹ûfy£&cUËÒd‹õç+T?A?é®ò`±(ûgÔOô>-N~Ùß”¨L8Ö”5•5®jmR|ñÄ•oÔvÂ3z3ªæ`úš(“9tƒ.µ*U]ˆœ:^ ¾Ì=1í Ö‰¨ œª×Ï{ó›2ŒúÔSzD¬žx×(—Ò×ÖqÛ¨Ê1®Ù³ôØM0írH"߈­nu9;ýÝ +-Ķg$› 8¬ ž#¤ƒU’ª‰¿ZÔÖêq™«ßžDn[hïþºûضk‡÷¹ä0\p釤ªU‚ø®BÞé åõF™1“V˜¾•ã6—k¾näõR¦„Ÿ¿£ÙlzN..a3ãë0¼¾ŠÎ(ü§éarÝ Õb §‹ÓwLÝh¹_éDÞ´¿¥ËÃ?4/ë;áêfø»%5ƒ7*%o0x"åšÞÙÒqýnÀOjN)ÞúÇUÍORYLxë »˜ÚÖXR™R© ¹™ÚH³BªÌâI@¿ï¦ëPĮוp½@¦ZÙ¥;³'ÝØfP6~½Ynõ +›amõöYv# nŠËeÉ.2—‰²%lÒù(ÜÅån#bÕ#-*³Ex.÷|k®RN½¨<[²tæ€-a`Ï3‹ªBÉ/õAì<¥ñGÐÍÓ «ôknÓ%†øÁÐF€¾¤* 0r",Þ;ži…-1%ƒ*ÕØ£{‰ipëNÍݘu¶Û`fSj‹Öйp«ñµD»üg'臓‚ŒÈñpIP¿5¯ª»EØøÌ^Â(¯fcëHûv>çÞ@{²–οÝnÿn9¢ü6¾·Õþ¼¶Ü?s½{Ñí¥¡ŽÅ&ƽÀ¶ãAòù÷È÷|ÿ1iŸ!rPä…Õ¨¶ÕW£,¹¾.P¸-£»zw …µäJ­½¥ ¢Ô¯2ÿv_^°û¢_ÝDíñ÷#yŽújü¡ÇÑ‘Žyàgú<1TXø!§½+ùcçk?†0ãoîjå|îç\´§íÍ-šLƒñlFã«–›?oooè½»c© +1ú`eê«<ïöžOB\\ÒWÉ(˜Œ§¸bc9–îæ½?zÿ !>/XObject<<>>>>>>endobj +587 0 obj<>stream +x•VkãFý?Ÿb8`+²åŸ)$MzähK݃R³’V²ji×·’â˜ÒïÞ7+Ë–sº³›`cËÒ›Ù7ïÍÌ—«>¹øïÓd@Þ˜‚ìÊu\NGÎï|àe$Eö‡ÑÔ¿½þ0¿ºýiFý Í#@§}š‡×¥yÐñÏ¡ùJÒãÓÃïîÅ }Ñ7ó¿ñèúx‚í &€Ÿ‡ŠD&E¢š +<½NË0–;ÊuZ6¯ûF¯¥¢4Q’6Fû©Ì(”y`_†$|ý"» €#$9 +R)ÔÅfÆi xßsü$ÏŒó$%_¤¡X*iD!f%E(C Ú&iJb³‘*Ä[*äkQg”ÆHU #¿Œ)“y.bI@S”Doâò)#m2Q_F"a™mŠ]Å_¾S…x%Y>Z²Ä팑‹L’àÏ@jÞÍÄ¿‰içTupiV—aˆêƒ Ÿ³èÛ¥Eçz¾B}œ(1ya‰w uM¨êâæ‡:€ëLO lá[PrhÇõc˜f€b•˜ã/ͧ¢±’ùÅè° dþ½³üٟͦ·îäÖƒâÇw®{7êwÉý‹¢$•Np•*`m-:£þàÈUã(%·2ÐrìÓ{›ç<{sãäÕyŽöêy¶4ž3l¸êùóó®úÙëaï”â-VG=YJòÛZA{ º\#È +:‡³`ËXp‚Ÿ@ZÅý¨UžÀÀKl¦’¯"Û¤¸Ñ©Ì—9p„Rœ3÷ß®Û>¯ ýñCËT"]f"/¤YÖlvGÅn#éÝ+ûˆûà]Nè!yé+$‹/üÃV›ult¹ÁVn·µ,~²€]ŠSísÈcvÎÈ ÷¾‚]Vµ÷žß—|q³wC‹X¹§l/*M@k§¡Þ**óDŵQ«4ße£G:Mõ6?O!ylb:ËbÓj\ÃŽ¡k¨6¯ÑpQ‡7´}«?|yR0€µÐ}9XkÁ­šÅjൔëžò$KRaºèÌм‰Ká§;RIµ£õ-‚•í‹%“GCÕƬúlÕ<*Y”Få47%&“íéµ ÷s¨ž)ÆEÊà)ÆwuE±üRŠ´3•>+e>/XObject<<>>>>>>endobj +589 0 obj<>stream +x…U]oÓ0}ﯸ›´™¦éšîqÓ`LHˆ/“;­!µKì¬ôßs®î# ªiÛ÷Ü{ι7¿&Mñɨ˜Q¾ z3™Š)9®óeë ßNSæ‹L,_[ÈϦb1^¸,'oÞSVPÙd±Ì¨T€é”Êú(g‚>ê½ëmŒ³þ¸ü‘NÌÓ‰Óœ£–*nÍ©jôïpwtwœ¶Î)CL~:Š:*×ÆS3Ä£mglð¤tÕ¯h£½—+M‚£°ÖÃJcZMwGÒ*Ú:ïMÕîyƒßûÖ­îŽéÞȸ»qÝFªú¦Ñ r­9 `g¹˜1úpïµ'I÷²3²BpÙ­ú¶ZãýèqiÍOl¸r]qžÿ‹ÁÉØmÅ:´Â¤%‡¨÷Æ®8±Q÷¾RÜCN'Äõa·¥­ôÑ+Uô=ôý@­ ›†ö®€¦«·—_®o¿ÞÆùáδ-r +Û#l¤ªrjO®‰÷âS¾O4ID8äAïLà6é=‹z¯U÷?¹Aky( Ò®3!jð\üµ–Šµ{¡¬m]à‚jø¬üEì‹Ö»Qµ871˜I…>óëÆ‘õfö Ÿj âÀ9ŠJ\ðª¯á ÖúÙ}Ö]Sí6lõG <‰hÚ8clã"¯Ü‹ÄæM4ã°éØÜœtxÖ*QÖ +hÈ,(Óé:´{x!†Uûd‡èvS4ÇÅÕU´ì?ÅÌÅë^K‡^oc(ÉLý(®±©iESóE'ýo©½™æî5"Âc Ù`Z2aD¬¶µëmÐg`õ®5V úƽÃQ‡'T¯e'klc­œP' 5~È. |êŸl6~œ?ôí¡í%k8$;èåv½Ê RŇ ,æŠe©A…^kyb -µ¬×0ƒŽQÇ2} _Âþ¤­ïÛCÌò'…Ê•112͆ÇênmV·ZZ¤¹Æê¨ð ƒ/b9Ìõ¬XŠÅù9åó"½>_|¸¼À ¼×­Û²>×½Q±ŠÓÃÞÓbz~˜!/_/ób.ŠÅo Œ™,g¸·åäÓä‘E6Jendstream +endobj +590 0 obj<>/XObject<<>>>>/Annots 315 0 R>>endobj +591 0 obj<>stream +x…W]sã6|÷¯˜Ê=œ6eS–­øcßv}vΉ÷,]*¹r• "A1pPZåק )‰N]jk]â03=Ý=àדãߌ®/èòŠòúä<;ÇáÏó|‡æWsü­éâò&»ì®4-Ò³Ëëì +Ïf·3~3^ñ³ÏË“éÃ-]œÓ²DŒ«ëZqkÜÉ'w•h‚t4ÏèÎʬiÑ®×Òeÿ°ü‹ç4›¥Åg7Ù–O–v¶¥­0‚%Q”ÛBòï…¨W‚²,ãÅçtvq•ÍyÉ“‘dK +•¤B´&p¨ ü›§Rä|!¨qvíD]#‚¬›ô’¥­SA¦¥u]å©5…t>ÇÖ]ÌÙeJs#œ²­ç•!·f#•QëeA«ò±^Rm} ‘µ‘¤LLÉü.óѲ’xãpíVº´DïF[éi9Q%uƒ(ªÆ^ØX*dèÒæÖ±RZ…Ý)¡€ô“Pâxå±C¾ëábd9 \ؼ­Qm•Ö£Ød܃á5A¥ÜöûÔi#Ž-:PÇu粃D ¡)¨ýJP¤–2 +ýn+Hò[üP?Ê+aÖ’¼Vë*hT¶a â4%Ñ~míì–„G;8SOZ +g°ƒXÙ6]ù¼uãÇr:ü"x „ˆ=f[‹4'w¿Åg?}€Þ"­'ž;õ¶u¹œ*5¡}†÷Ó‹=ÿ'œëñZð»çÚÑ.Âå(›äûW1!ôá(ÎUhÐÔ®cæc逤-x +äœÔ‚AýÚ&rs;ø}ØéÀÝQeÄ™‰±¥=@Ý6ŒO*c葉“>*þ ¨P¾]±Ne.›(x/X9xöH•µÑé6Ük¾)¹ËÜs¦7Z¬–Ñf˜M±/(9-‚°W£òqù§Ðs[†³¯­å—û¢=a—o{OªBh>N§ú›Ë´2í·ÌØžÿê”2½‹²`€ÿz‹ív›•¾Ì¬[OQ^3®$\á_ƒÍ³*Ô½\ûØŸÁhôu0dÇ-ìQaÿB«Š6:+] ³£B•Àm<êÓÓ¶²©PApjÕ¢üÐ>èƒÕÚn£ÛSo¡ñcÍD¼}e[]°EbSö2°2°ä¹wùŒì7Jä•ì¢<}qSÖ«èz"Œáÿ²wAV;U p÷('&I—AÙx•5p Ï+ŒD·ÝÞ¯1¸è>KHs%Xfm2€Ów©AuXŽJïÓÅOŸÙ526ap86dŠÿÚÏlk ?V*,’—è»j•.ðØÓˆ[.ZN4â7ŠÛÕ"(ZGé‘V+Çu÷õ¥­¹@ˆT™}K´ïKé¢r32ú¤sÏ$ž1)cæÊ(ö×–éž?¨yÊÅS®ª>ª ÷ Xß6l²§É23PØV*¯¨ŒtB¶’??~Š8Ž".e^…Ré™E¹&ée‚AÇ‹`ïˆëè'•;ë¡ZØ[ÿÒ^¸ÝË¿NŸqeíÛ0˜Ð²íåÃ(2 °„méÝXÿîŠü· j=‘¥8… 'ÖAñ +nšP¢ð QD&¤;|")”/à‰ò× à¼I±‚!ƒ ö Š))øä„ñÉÉ5Fc+Ö½±ôÊá­¸¢3L©þÞ,‹³ wŽ’[|z¸}x¾¿?Ì®tR©Àk[¨Í`'¦E+5ú>G™°˜\ìÃô‘ kþ"³WH—8e{ Z þÿÝ??½.–Ïÿ½[F78¸þÏâî¹0§¿<-í«‹1/ÿ_L\ÞìâÎø©Á‚— wÅ‹R¾~O´ÞÜþåLJÚÆ*̤êW-{g<€¸6p‡ºqæœÞ÷u¯%NxÕÖ¬O# .ÅÂŽ:bôÝ?8—úÃû 8)i•+>Á¢û x¡U uD[i„«©Þ³Ã{§`Ûg:Çç0 e>)lõ2a~oaRÿ`¨ÇùÀ'0¯ K̉.b. .Iÿ(d©â©k+vIU‡¼ÚçßO•8$úämÄ«†å²GcGá€(¹¯ §oñ%ÀÍXzp\^r?Ù~ùôz÷ôå·— Z™3ʾÇ7z-æ×àǧCà8K@”6çÃ,Lºn‘JS§-ÀúGg§‚=¬›)øba÷?þBªå(è% G_ûõŽË[|€A>0ƒ‡IH:Åj¯5æCŸû7Ð&6a²PëøÔ¸?JäfꘞüQ&×-fÏê +1o©4|œ¹ë~ž¥§ÝU7ì#:qmü,ê†R °ìàh_ÉgÕPVÛéÛ…²ævŸ{\²”ƒÜax8z ñ€ñ¡ žg0ѵ4|´GïðÝö]-Þø$iƒý¹ ¡ø;«ö0Jü]vWÙ{g=O NnºÏ‚³Ù-žŸÍ/RSÿö;y~=Ï®¯n’ƒÎæü~yòŸ“?ñ‰4ìendstream +endobj +592 0 obj<>/XObject<<>>>>>>endobj +593 0 obj<>stream xmWasÚ8ýž_±ß.MÁJ ¹o„¤Î5moBç¾d&#luÈ’O’!¾_oelÇt2MŒ¬Ý}ûÞÛ埋! ðoHÓ}šPZ\ ’ƃdBãÛ)ÿŽ'iuq¿¸¸þ<¦á+>;¹Ò"#œ h‘^V^’4™†¼XI*D꬧]. U¦éF™5=?Ý{z¹ôRÒ²ÒºLº$'a2R&Hg„öIfÓ—ˆ*¼5¿“±áÃâï‹õ‡Ÿ’b^Ê­tµ5’ÓÓW¼§ùD8In¨=4&ÄOãÃþh’ŒùÕï6HúeTj3Iª(µJEPÖx²+Jsá¼ ”#ÍÙ6‰ž$–Ð3²/+­_¯bâeåóæד'ktÝÝÎyŠ¥ÝÊÕhUv ˆŽ i[¸š‚%±µ*²œ±2׶ T ' @@ -1068,10 +1138,10 @@ T oWú ŽÂsâÉüŽlåâ¸ðXi˜ßZWAf = ̾Âf•†ó7þ“‹-$CšÆœ6U±DpX¾5«fõVuú8¯sóºŒÏÁòn”·°°Ú+b4ا¥ ãµ1v§%/Í|•FOK%yb"ÅfAòV TÇÍá} „Ëž`š¡áa[sï®ãÛÚd°ä`²#0V% âªèI[ȧcOý†=ÓÞaqï·%/`cc ËQÜÌã -·8Ïȃ?¨}8Ò£%X„H@³ñzvÔBÔ”K]2{̪´µNÖ+sJb'1Œ7,|8¿!#w{884(•2ã°gåèÇØ9 ŠozÚ_Ì ÁN‰ |UrÏÛ¢§Ÿðiÿ=‰—T´NŸ_¾ÝÓNo“ FÓøfÚXÞóìé~Fp, ËÃ0úRaûã—úíÙþtpÇ,™ç¢­šÛ˜ûó3~c<'ÓÉ-¾ò·‚1?z\\üyñxD‰Âendstream +·8Ïȃ?¨}8Ò£%X„H@³ñzvÔBÔ”K]2{̪´µNÖ+sJb'1Œ7,|8¿!#w{884(•2ã°gåèÇØ9 ŠozÚ_Ì ÁN‰ |UrÏÛ¢§Ÿðiÿ=‰—T´NŸ_¾ÝÓNo“ FÓøfÚXÞóìé~Fp, ËÃ0úRaûã—úíÙþtpÇ,™ç¢­šÛ˜ûó3~c<'ÓÉ-¾ò·‚~ô¸¸øóâ?xN‰Ãendstream endobj -561 0 obj<>/XObject<<>>>>>>endobj -562 0 obj<>stream +594 0 obj<>/XObject<<>>>>>>endobj +595 0 obj<>stream x}X]OÜ8}çW\ñD+&00t߶´h‘º­vVBBNâL¼$v; óï÷Üë$3 lUª’Äö½÷œs?ÜŸGS:ÇŸ)-g4¿¤¬>:OÎébþ)YÐâj‰ßgøÛj*Ž>¯ŽÎn>ÑìœV¶\.¯h•–ŸãMvr]ª&è–.ºSuªèÖâѪÊXý+;§Ë¸s2_$3ì=¹H¦ a_«2Þù‡²yeì:®_ÐtÚ¯Ÿ-“K^¿*'¯³`œ¥\û¬5©ö”'x¨ìO!c£#§¤<™º©t­áR>~ 9BÃjR©{Ölõœ&³KD[·–B©©Q>ôñ”*§gÝnIå“ÒeÿcÑg*  eëºuéº ge.×´Á²]­ñ ®«*âËÓyDeSš¬¤ÌYcwÕ“u•jɇøx î¬h]M_~Üaa®µÖ>¡;ܺ‘ @@ -1079,23 +1149,23 @@ e WUnÃ*„b(Ýè·0ײϺ٠Ù÷ûoß<é—L7Ø'$Zm¬âÈ9²Éô<™_-PžÂª6¾óKM5-'©á“ëÛ‘3"7º89%ïz^ؼʆþgÀ¸u½PDz$s<›‘lèÃ"“!]¤ ³¬væYUx;<ÒV{6 …7d¦oÉܔصuu åaWsÿ F;¡'ئh¬²ka%èZ³²U¿å ºÙ¯ÑUŒ(âÌ\Û¢bW[*]…RÛ'ŽTü¾DÁaàYÆAp亹!/#À Bóhr2»ØU˨_—÷Sº_ÝL®XÌœ'¨û¨íµƒ„ö2NyƒwìY/Y·°ªï¯ïf𻃻¬½7¬Š¶‚› 8E>ôRµJûŽ´éUÂýòUiHÁé\ºàHZÌG gÖÈ”•ššvEÙé1‚€!‘@è„,¥i0°`öå ½H {{=æUüœHµ´ †œ ýë”àó#=øöª×âKÔÛà: ë B„3‡V›Î—c1îû•¬ ´ìÝE/]NIt(8‰€<œìH}øR¬M‚ù^¬+¸ÿÚ²—çiÐܹÅÞÎÈF!>æ;â.f‘K&lÕ\šbÐ,¹Cc#%`²³¹n¹– `K6E·E­²µƒÛ¹—Š2Ù‹f‡TPèNŠRÎòÆ–AMÚ•wœEì&L¶ z?îþüŒFŸ=aZf„QnÜî…&ï]»’¢Y©³'9¬¨&’Âh˜”ò ‡Ó.8h‹«J@®c½FÉžô ±óÂ…’½gW1µ2Dĵ1«Å6ÖŠ¬t¨•„$Â;”/@ŒÇag)7ð!<+9`Øõ„þqÝA¬5Æ$Ì­Ž#‹\ό繳ã.a\ýýxÿýöúÇ—¯œywxüýîúöVÎÅ8vƒ—ì PAGÎϘáK•Iñ錃X›Vqí³)W(âQôáÛgù]hcLÅQÑÙ¡ìxzâÏ&q<nkÆÂ@‹0»Æ#À›œÇ§÷ŒŠ4{¨„"Œ›]0hÛ‰P€ŸµE7u{æí\É2ûœdÑ›×á½æÎChU²†ð<æ…s{ð~Æ -HÇc{8yøÀÞÈh¶À¤Êa±«/Ó‹«x Y!YS³ÆpÏ™*ºs¸ŒÕZ"<¤¤>wꇞ9Q £™Üã@Ê,2ðCsÚÕÎwP‰½™‘æ¼ÔÊza.S–Û¡òjéAºAl¡ªÂÃã2)³- ý(z„ä u`O`]HU)Õs?4ÈågŒƒ³šUÆe3Eá"µæ’‹×¢žrÖçóüz8ñZc$\W[Bî}‡6•ŠÙÙžÅS².åœX0ô¾zä&T³²}¬™¾„n)$üÈÍÐcÔŠjó¦pK€Ê ÔBßð`Œ ´kd–ƸUò°»Á5´öèG@Ûo2EÉwꇞ9Q £™Üã@Ê,2ðCsÚÕÎwP‰½™‘æ¼ÔÊza.S–Û¡òjéAºAl¡ªÂÃã2)³- ý(z„ä u`O`]HU)Õs?4ÈågŒƒ³šUÆe3Eá"µæ’‹×¢žrÖçóüz8ñZc$\W[Bî}‡6•ŠÙÙžÅS².åœX0ô¾zä&T³²}¬™¾„n)$üÈÍÐcÔŠjó¦pK€Ê ÔBßð`Œ ´kd–ƸUò°»Á5´öèG@Ûo2EÉ>/XObject<<>>>>>>endobj -564 0 obj<>stream +596 0 obj<>/XObject<<>>>>>>endobj +597 0 obj<>stream xµUMsÚ0½ó+vr)™‰Ë6þ8’¦i;ÓL?p{â"ì5V 2•dþ}WÐ qHHé0ÆöH»ûÞÛ'ïïŸ~’ŠyÏg>ÄÏ҄žº4Bµ^ð9½v, ¢€Å] Qu§Š‚K»"ÂÁAöDD&,êJÅ“¬.ün¸qðíEÞ;¿Š€sÈ+'Rœ&—@Bù>äE_Ìf°¬ T­*¬l”+~!´JÞ‚±Zª©apÙ¨7ŠF-Q[¸©QÁBC‹`°5ÎOóŸ=ŠPβŸ0pïçWpªV À #âI«2¸…n H“•ÅF—¨Y½ºëSXBD)$¯¥ƒw¡DSh9ABZ#Ì׉J¬¤Âr'!ƒ¼F³Ý$È -­¡]xkQ¹ÄÙÊE¸<#1Ÿ€Êòt¤²ES"Û2!ðñóBþ—gðöÇðÓ¸?i«³EcƧ\*¶ÕN\*僰ÐT•A 7ÒÖN‹¶ªP»BQŒœ:^E-´(,©´OÀàËÁx–bÖ"¡Ù¥…0ö®Á«…sÄŠT§Ï¡(sFUžT‡d8@²Ü2ýï—#"¯—ÃõjËÚÔ YÜç1L¤ŸÂLZ;CU)©QQžk+ƒávïŽÙHòÉàÄvvoæhåœl®‘LA Þ䊓¿å'û™|<ó0pŒ_Éw¯[ãu{F‡Ÿ­]]6ž^_ áij4 ÔÞ·²Dgï~§—ø™ÛºÄEIÄ’8]ÏJ» ïòÞ×ÞÑ.’ëendstream +­¡]xkQ¹ÄÙÊE¸<#1Ÿ€Êòt¤²ES"Û2!ðñóBþ—gðöÇðÓ¸?i«³EcƧ\*¶ÕN\*僰ÐT•A 7ÒÖN‹¶ªP»BQŒœ:^E-´(,©´OÀàËÁx–bÖ"¡Ù¥…0ö®Á«…sÄŠT§Ï¡(sFUžT‡d8@²Ü2ýï—#"¯—ÃõjËÚÔ YÜç1L¤ŸÂLZ;CU)©QQžk+ƒávïŽÙHòÉàÄvvoæhåœl®‘LA Þ䊓¿å'û™|<ó0pŒ_Éw¯[ãu{F‡Ÿ­]]6ž^_ áij4 ÔÞ·²Dgï~§—ø™ÛºÄEIÄ’8]ÏJž¸ ïòÞ×ÞÑ8’ìendstream endobj -565 0 obj<>/XObject<<>>>>>>endobj -566 0 obj<>stream +598 0 obj<>/XObject<<>>>>>>endobj +599 0 obj<>stream xµVÛr›H}×WtåIvƒä}’“Í®«âÄkió¤ªÔƒ4»0h‡!Žÿ>g°îÎuå’ Ó}út÷éùoà“‡?Ÿâ¥åÀs=ŠÂÈQ8Žq=ÂWqÊíÂ%.Œ&nxl!Œ}8b*˜œØ„'vøÿÐÇõ|ðòÍ„üæ9‰Æ¸ÈAxÍÓ᥸¾çÒlöaúv¶&M~±®ê‹O¬XœÍÿÁæ|¿ÝìŒblÖ\פWœêU¥4-†~D‰Ð‹3ªÅRòŒ ¡uÁ.3Á$ ©ù’+bšª<Çf‚zz%$Á_Ž5ü#]Y£ðÜp¯ۺß`wXÐ>@ßüèc02˜¿êò'°Ž\º7?ñ{’[Åu£dKoËDfÀu#;rHOÄò;©þ ³ÐfÚŽæ_Ž14ŒîPúm%û¿qjÊw·t=rü2‚UEŽÆÀ;¬¦Ïþ|?ñ•4\šwòð3!þp"³z%0zâaß“HÉÛé;ºe’™vŸ±2a4½»9¢"ndX™¯DM5Oµ¨$e¼N•Hx[úy#íãš$oy+Ù¿œØŽ‡û»W”²¢pÉZ2¯TɬµË(á\ß[y¨Í„Q¨ä‘øgV )äÒ¶W‹6­28‘H:n;#ò…²*mJ.µõâÒ6ØÉJÃáž»´BÓf6óØ#/1* -Á’‚wÉ÷hÒkkG¤‰è#[‹ÅÂIk•J}a4”²Íe¹õ¸ìž÷¾= KÝ']1Eçk¦XyAíMÆ4ë¯ÏÕÎÒ¹2‹‹³ß“¶IYŸBú2ž[B!åi!¥›ZZš™„øÏn¯I+&kÖ¦`D&/+ ¶×â¹>]èüAÏ5Wõ!,;‘æH—þD ó}–WEQ=ÔWff·3ŠÚRµä]Ù˦LP«ÐØäQ1.¶ì$|‰¸j•±á`bhfC@2÷¸}êp›„“6 ©(ãÖ0ö­µùmÍ•ì³(›’ž‡ú°éª/Æ„ƒ]3Gx¶ƒÂ~ài ø3žlßä*°ïÃ2z…”¯+sPý¤ßbeЇLC÷­(GŒY„§ÌD‡fÚºß3´ØÆú Pª˜6 -þ}Ïp[0¦8q[Þ¶¤ ð-íÙô5JeS£¡9:¡Jºg¡šJt„z|*µ~xÄ-ø—oÆÝAÌ¿ Üh2¡(îz}6½½žÒkþ‰Õ@è²cü;~<¶ï:±¡éŽNÏ÷Â8tãhÜzlŒü>ü5øIMOendstream +Á’‚wÉ÷hÒkkG¤‰è#[‹ÅÂIk•J}a4”²Íe¹õ¸ìž÷¾= KÝ']1Eçk¦XyAíMÆ4ë¯ÏÕÎÒ¹2‹‹³ß“¶IYŸBú2ž[B!åi!¥›ZZš™„øÏn¯I+&kÖ¦`D&/+ ¶×â¹>]èüAÏ5Wõ!,;‘æH—þD ó}–WEQ=ÔWff·3ŠÚRµä]Ù˦LP«ÐØäQ1.¶ì$|‰¸j•±á`bhfC@2÷¸}êp›„“6 ©(ãÖ0ö­µùmÍ•ì³(›’ž‡ú°éª/Æ„ƒ]3Gx¶ƒÂ~ài ø3žlßä*°ïÃ2z…”¯+sPý¤ßbeЇLC÷­(GŒY„§ÌD‡fÚºß3´ØÆú Pª˜6 -þ}Ïp[0¦8q[Þ¶¤ ð-íÙô5JeS£¡9:¡Jºg¡šJt„z|*µ~xÄ-ø—oÆÝAÌ¿ Üh2¡(îz}6½½žÒkþ‰Õ@è²cü;~<¶ï:±¡éŽNÏ÷Â8tãhÜúØù}>økðIšMPendstream endobj -567 0 obj<>/XObject<<>>>>>>endobj -568 0 obj<>stream +600 0 obj<>/XObject<<>>>>>>endobj +601 0 obj<>stream x•W]oÛF|÷¯Xø¥6`1’,KrÞ”¶) $AZ -Z0ŽäѺ„¼Sy¤Uå×wö>(ŠVŒJºÝÙ™Ùåßgãß„SºžSV“1Í&ÓdJ³åÏSüÕ’ ÷ÃÍøå÷ïÖgoÞÏh2¡uÁgÌ— Zç„sÆcZgu.ñ–mÒ¬©1½»Ê6´SeI©$+þÙ­ä‡f#qyÓÖZæÄç$´ÆW™(Kd ÷ô(¶êáâáòrýålL£É5b\çUkÊ%–šL4g)K•¬L½Oxéǵ˄ÜWÓ]ß&sÞ‹¬$Ü9Š­¨E%¾%òÞ´dÚ§ ØJ_‘Òn©©sö©šÄv+±Yg2.è΢±}}ËW¸ÑtžÌø敦V[õÄIO攪;ù„SWŸïH·U*ë„þDvcÚ2÷¸q~Ï¢l%àl6tÿûêã’Ð冴iè«6»L»ô)"Y²uIçÒfµJeþ¬‰ ðõ#^Ýÿxw÷Ù¦Vú ¸»Ýü8@/T•)Z5Êh @@ -1106,61 +1176,61 @@ zVv ‘sr}î{ÆŽã~íõ×Ó-Cä_УÙ̃{5²,}L¢2-¾ >à0;ØèGÔ¼Â|D‘ü‘Ñ݇A¤ä ꉑÓ;a›œ£1˜C²'ØFÔM4ˆã N²'g#¼cô †!nAïAÝÑêÙ ašÂ&7ÄݦMF‚•Em*^‹né8Á‰öŒ™” ì\%kk˜G]°[`”81X·ëä¢×˜n¦ÉÒ'à'ؤø“,%³+Rgƒ=?‰˜a(qº¥åyÏZ•–l‚ó”ÔÄ~”5˜¿Tny¸ØÛvwô}¡åYÊŒ0×¹s ¿Ý^áù!l€uh”ýáC¹–j±“³Í—M2å2ÈY8ò[Ý€ÁñÀQ3)A‡#ñAXÏÂó|=÷Ã÷ˆ«ñÃ幫›L"Ùf¬„ÐóƒÉP…¶ÏAŸ9>eʧIJÄÁ3Æ«PéÚà¹ó…B“ÄÔ4Hl ™X–¾ÇÒ·;+‰ù9màÂ(Èàù‰Í…rh¾[ÑO<9š-¿·ýÒªÜÏlqåh1¾eGûNóž-fÉb¾D›ÇšÉ’ƒøy}öëÙ¿U^æjendstream +Róg/»üÚd‡—ân¦è7ï—áÝs²X&óÛ[šÏœMݯ>¾[ÑO<9š-¿·ýÒªÜÏlqåh1¾eGûNóž-fÉb¾D›ÇšÉ-ñóúì׳Uhækendstream endobj -569 0 obj<>/XObject<<>>>>>>endobj -570 0 obj<>stream +602 0 obj<>/XObject<<>>>>>>endobj +603 0 obj<>stream x•TMoÛ0 ½ûWð˜¬ÚŽã]‚$]‡Y¡véE¶éXƒ#e’ܬýõ£œ ­klXaÄò½Gò1¿¼zBH#˜'Pí½€g1‹èÒ9¢Fh¼uá]ßæ¦P4”’d!5Px@QÍlÁ`£j„ªåšW5X^vxUü¤ÄBŠw‰~”²„RgÔ– 5·ŒÕ}e{8ÑÕh*-J¬¡|†=ri@5°zØÜݽ¸X!w*%éø–Ø0(Z48@Ùv@Äᜪ"âwÁŸœB*Þ»ßû|@ⶰ¶Ce-¸„^±“¤KH‹;Ô.קҨõ,dàît½pÝV¥zi~Ó—oê<¶¢j¡Q]§Ž#˜h -sC0êõ‡%ͧXkÂ*{œ…mA¬P’wgøû@S0T"7`5kðÐz¨ÅNXóx5’O)^FrUÓ´`}{ÿ}»òÆ^Hn‰ã4Ëùè}»¿àI%ýô† ç¬4ÂJ¦X%Ð_% î;wâ4¨7 ’h8(çÚEëCÆvž¸Ê¾iP/—Ë‘ÐlŠ±…åŽD;âæ5¬Àÿ`åS¬d¿/I¹ð‚%d£ôž»é¢A»u½KØâìêà„w}›—8\ä,ÌsˆÂa_V_×+¸Á'ìÔµ/½¨‡¥óÃ4c Eúi» ùç¿DœÆ,M²3kîúó¹ð¾yd`endstream -endobj -571 0 obj<>/XObject<<>>>>>>endobj -572 0 obj<>stream -xVËnã6Ýç+.Ð…m RüªL1‹™ AÈ¢E Ì¢ÚÐ2m³‘HH%ñ|}Ͻ”,?’™&ÈÃyçžsÈoW#â{Dó1Mf”—WÃtH“»i:¦éíÿñSiZË‹ñdxùâóâêæáŽÆCZ¬k6¿¥ÅŠgˆ'yÿ~«vAW4Ki±ÕäËeš;»¦µ)ô`ñ¯ìÍãÞd‰«þ,¥ô¨_M® -údU±÷ÆÇÕSšÕãy:ãÕŸ•ç…ÅþšRpd2žv•Ëµ÷zEÎ’¢ÂXMË}ó[¼T„æ7èêŠÂ~§=¹µ¬ñ¦‚¼¬tî6Ö|G(@.eHÉhË-šJWúÍfýªTéÓ<|àÅ7ÏÒ©”[(ûÔ¤Hèey$AkìÅ{zÙš ýNå:åí zš«>`áÏøxH~ïÊRÛpp©7ÆJ¼¶¤ñ u)òº4Iî -@âøóÎÕvEÞl,ŠîýÖ㧽_zÙà4ïø2ïß:a¶Z­šáõÔös–^!ÛN[òßj{Y©üIÎøÏEªÉeª?LÍ,úI–=9é3ßbGŽ )r,À‰•^«ºˆ ɘÓlpì4fMÆ¿vƒâkSù@áÅ ¶Ê® -°@¿æEíͳƨ"#èœ×<Ã|K@ÖU@u•Q… -Ü -ÇNFÖ.èˆU>WÖ"ÙÚUüæ˜B µè[#ÊøEê¼ÜðÆl7<«¢>KÑŒè,¥„N#‰ƒ{Ò:T"ÂàD"Œ8K'ÄÉúþÁã’Õ’ž—J€œb <‚3ŒVæÙ¬£Ê•HŠld¦Òið­v ÞÇžpšÍj!²Y%“QÔ$´õÏWD¸¦¯ rΛ‡ãa-v ØmÀ0(`Eʬˆ ô°Ï3÷Àr‘vÖÏ´®mÔQÖ÷ZSÎlÈú“ûl€—à™ÞfÀ®cõ‹ðçŠõ”eŠ«mߣ8á+ã´Ô¹ª1'¸Ù`Ö&r“4`†óñð8ª@uL9Ã9lj)*ѱHú"Ø&ÇéL£ŸºÊnÖòš§ÞQEHK¥Ú·FIÆBC°Ûã¼)}òu[Ÿaïçý@™),wåÚä#ì„9bô8;bX5·v$˜ÖÓ¿œ”²w}™-O<Ög]-U0¥Ô)ˆÅy³«±\U•Q …º²gÌ?”çãØ+ŒýZ¨‡­ÑzØj+]ºg½ºèáÈeÛaäÌ}†>TʈŽÐDÙM´(·8”Nž‡rR5†Ú©MÜâXo€ñXo`Ýã4¶*N~Cv5úÓÃç”-Ì_/lYjP?€Ú,̼rq ˜¦WÁ'X ó—8—|¡üö=°#ÖYƧ–ÝBȶbžlô{qmZÊIÏÅiÝ!-@†-ð_Ù)œ4Yß:›t¨CˇIw|>köÊà0?9'¹E‡–ärdßô‘×æ`|1Ð0cKÞÄ+çw6WÁY€¢Ü&XÜy]Uíµã½30¥”¦_U Àåtó0¤»öú6ÞKÍ—T¥úñ¨•¨*æf–µ“¦|Ïì·›¥.éÉ@éSÉñ«« 6CZ±esÐ÷Jû?eq?¬à¶»µN›;îýO.ÆÓù4Ïnã½o<ä_\ýuõ¤õ¨endstream -endobj -573 0 obj<>/XObject<<>>>>>>endobj -574 0 obj<>stream +sC0êõ‡%ͧXkÂ*{œ…mA¬P’wgøû@S0T"7`5kðÐz¨ÅNXóx5’O)^FrUÓ´`}{ÿ}»òÆ^Hn‰ã4Ëùè}»¿àI%ýô† ç¬4ÂJ¦X%Ð_% î;wâ4¨7 ’h8(çÚEëCÆvž¸Ê¾iP/—Ë‘ÐlŠ±…åŽD;âæ5¬Àÿ`åS¬d¿/I¹ð‚%d£ôž»é¢A»u½KØâìêà„w}›—8\ä,ÌsˆÂa_V_×+¸Á'ìÔµ/½¨‡¥óÃ4c Eúi» ùç¿DœÆ,M²k¸þ|.¼oÞcÂ`endstream +endobj +604 0 obj<>/XObject<<>>>>>>endobj +605 0 obj<>stream +xVËnã6Ýç+.Ð…m VüªL1‹™ AÈ¢E Ì¢ÚÐm³‘HH'ñ|}Ͻ”,ÙNfš Kä}œ{Î!¿]i„ï1-&4SV^’MïfÉ„f· ü?ÁO¥i-/&ÓÑå‹ÏË«›‡;šŒh¹F¬ùâ––9!ÎO²þýVí‚®hžÐr«É—«$svMkSèÁò_Ù;^ĽÃ)'^æýy2NèQ¿šLôɪâà«g4׫'‹dΫ?+Ï ‹Ã5¤àÈd<í*—iïuNÎ’¢ÂXM«Cý[¼T„æ7èö…ÃN{rkYãLyYéÌm¬ùŽP€\ʈ†ãi,·¨+U\éw4›öwªR¥O²tðÜádžÌ¤ÜBÙ§:ÅQ–'@”±ÆnPlq —­ ÚïT¦Þ>DÏ@3ïþŒÇä÷®,µ gWzc¬Ä{1aK¿P—"¯K3Ì\HÞ¹½ÍÉ›Eѽßzü´÷K/œæ\æý[gÁ ÌV«¡^OM?gé²í´%ÿmÏ`¯*•=éÀÿ¹H5½Lõ'ƒ©™E?Ér '}f[ìÈ°!AŽ%8‘ëµÚ$s’N€Å¬Ãɯí xãÚT>PxqB„­²yè׬Ø{ó¬1ªÈ:çÀ5Ï0ÛuA]e”@¡·Â1…“‘uÀ… ê°ÊgÊZ$[»Šßt)4¤} `D?¢ÈZ/7¼1Ûî†gUìÏRÔ#:ËG)¡ÓHâàž´…•ˆ08Q§#ÎÒ qÒ~ð¸dµ$ç¥ §Xà £Ü<›œ1ª\‰¤(ÀF`* ß +a÷ê}ì §Ù¬Æ"›Õp:ŽšdöþàùŠ×ôõ(AÎyópb<¬Åv» ä¤<ÁŠèÈ@û"ÀN˜#F³#6q„õXsc÷Á4žþ夜à˜½íCxÌlyâ±>ëj¥‚)¥NA,Λ]ˆeªªŒÚh(ì+{Æücy>Ž½Âد…zØ­‡­¶Ò¥{ÖùE—mzx„‘3÷úP)#Bè ‰²ëhQnq(­<9䤪 µU›¸EWo€±«·G°Žîq»*N~Cv5úÓÃç”-Ì_/lYiP?€Ú,̬rq ˜¦WÁ'X5óW8—|¡üö=°#Öiʧ–ÝBȦbžlô{qmZÉIÏÅií!-@† ð_jÙ)œ4iß:;lQ‡–“nù|Ö>ì”Áa~rNr5ŠŽ-ÉåȾé#¯õÁøb `Æ–¼‰W*Îïl¦‚³*E¹M°¸³}U5׎÷ÎÀ„Pš~U%—{ÐÍÈîšëÛ,z/Õ_R}”êÇN+Q3>TÌÍ4m&3JøžÙo6K]<Ò“Ò§’ãW·/Ø AhÅ–ÍAß+íÿ”ÅUü°‚ÛöÖ:«ï¸÷?¹Ï³d1¿÷¾É˜Kü}yõ×Õ¤ÿ¨ endstream +endobj +606 0 obj<>/XObject<<>>>>>>endobj +607 0 obj<>stream xµV]oâF}çWÜ7“¼ØPC¶›H¤MV•²Y­–Vª–< önìê±Ãf«þ÷ž;c‹š>”(‰±ïǹçÞsÇvà' qHÈâ¼3ð…CD£É×!~ IKû |}ñàzÖys;¢  Ù±¢É˜f !Î`@³¸{¯KIåZ”ø#Ip´ôI’ÙˆXZê,ÓÛT­ø9mu‘gÊ7¼2o i¤*›çZÕŽ´åVJÕ“PðœããÍþè ¨ ýPº©²¡K½¡,U²G›¬2öÖRW!C,eÒdp¶i¹ö¨ö42ÖÎÎ>Í»¿KÓ£_¼œb]í¥*NQ¦Zùó³BH@¸ƒ+ÌÙº²&¯E!âRÆ2’®”.dBZÑ"êÑ&Ã#¤uÌ‘Ä¥^"Hž#ñi¶–ÏÖ÷\«ìùüEÑ(J¯Tú 1¹T‚*œ¹Aò\"»Ëã³ó›Û €–›ØxäþÐ'‹ÿ§}üŸª´x4Îo×ü~ÈÍozŽF·Í•_E¾Éä[ç1 ‹:Q8r‰¨þXd¤€Ž.ióId:oç‚æó¦Ø?á|ìûÝ›\º-ñ€üºÜ}؇£”§I’Iç“:Wº?cï~=†5ö[UkÒ°iò…N,!YHm°Ý¦:=NDïØúª©ÿ¿½¼$ú‹ÞÕå\Ñßtóñö¨žÝóÆÙ:6·É ÐG²…·{Ok½ -ï‹G÷Ó7„Q;öyÖù8ûK~›ÞýzC÷wÇZ¯…Ic‘eÏ<Þ`+—Bñù)JvÀkC¿9æDËhMPµaÆ¿ÉB¶LŽ®? |´!X#(bãL1ƒPÌVÒ£’[›e~fAox£HºOœ_Û#~Úæ{¹TêÚì’;¤ÈfÄ9n&õkNðÃÐ..(nÈ>O?\Oégù$3½áCý}³S?O¬m<À¡—t_q¤ŽÆ#M\¹aÀanfO±Ý™endstream -endobj -575 0 obj<>/XObject<<>>>>>>endobj -576 0 obj<>stream -x}SÁŽÚ0¼ós[X7 !CAe{Ù]©jº§\Œã€Û`³±CËß÷Ùí–JU)ØïÍ›™7¼bDôÄÈÌ3ˆÃ(b²yÆ2¤Ëœ¾z;‰&\,²ý¼¹X—£‡ÇqŒ²ñ Ù2GYƒ€¢¥°R8e4ö’ײƒ²PµÔN5JÖØžÁ5ÌQj¥wØv\ü”ŽŽj8Ù”æn(r{ Ñû¡Š¡ÜËIùcaÏYBcÇRû"jy)ž7ïs,|ÿ…ó=3"|mš3ø#:™%K=N#ïøA ´JKϺV'"^CigÀ‡ ž(Çkñô}èà¾Qu÷o=oaÕŽÄé0=ÀXéq´7¼=½@¹éÌ!”À ŸžÁß–phù+ Š= -ϵ¿<áîªJßU“”¦ƒÒ‡ÇbÒÙàfiJû&ÑKXÌPlMïý– Oô}Áduâ÷;&ë}I؇icat£vhTìâØ*‡^÷Ö;¡œMNaêý~ÈÂVþžâÌ…˜R¥5z -éÃÚ¸½¿S‚Ú¸æíÙª[»ª±\ûÈT“–+”]cºÃ›°F’ÁðÊÛ^ÚÀ 5”Ä'ÅACÚ-…ŽÌ%FtN *d//¹Žó%ËVdÚü’³oÅóºÀgy’-e·³øÒS6|ÓìZ;Ë£Õ]Mó”åÙ’þ€äg’øæM9ú:úqendstream -endobj -577 0 obj<>/XObject<<>>>>>>endobj -578 0 obj<>stream -xW]oÛ6}ϯ¸00Ì\%vÒ8¶kѶ¥[\ôÅ/´DYl$Q#);þ÷;÷Š´]µ†¦@"‘÷ãœs?ôÏÅœ®ðoNË]ßRÞ\\eWôæöMvG7wKü¾À§©”sy4zñvuqyÿ-®hUÂÖíòŽVÁΞäÓw•ê‚v´ÌèOÞ><>‘iIÑÇÖ¼Ð'ëêâÕê³X˜/ ¯¯o²lL—Ù<£‡68[ôy0¶NÞÐ|O.–Ù-Ÿ\UÆ~ùʺ@…ÍûF·B¥ð—ö¹3íÉÛF“-ñXã¸ïñHNä¶-ÅyEO¼%ÓtµæûŠ½~zD;#ÕJ°Wôz~=„XÙ==©f£(·¬íM¨Øz“ѪÒjÔ*]wÔi ›´¯,)àY[ûlÚ-!:6ýóë_?¼. -fœÚ˜Ú„CÆùÂÙâ6»á,í|8‚n)ØÁ´í9n\ó”¤Câ€:…W)¾OÈ·Õ€t—¼0ƒçø‹¿e¶Èè£×®Uöÿ¾Ô:gƒÍmM‚´m}@TÈÓkê£ ö›ë.dô^9¼g¬Ó-Oë©ïóŠpùÝãßï¿6?þðûǧõ+¸ØijíW–PU×p°BZ­X|''ymÀ+â+B ›.€Î\K–gü®§rÁä}-wN8:;X˜sæ 4ÎÚ©ÚÐ “{ -Ì°æ€ÃN»1¯R -^ç=ˆ=°Œ7Êë:±}[m\vÊû½u…§Œ~éÐƾ°êûº ’=4™ÒÝ×¢”’n}¿ñAµPê'BO™H™x.$ÔJJȶ㸡pFvƒZ¡ÆúFÕšR{l‚×u =²RqeóçAÍÄWR -z§ë ^Åü®ž¡¢ùj¡KÕ×a”Ÿc±ð UƒåI «êoX”=Äq ÒºÅŠ¢5pQÄŠà_Ùà@T2ï¡ÿ‘wq;¤4oƒ4Éi†´ Kžx-²ê8it o‚öc4¾‹#m­k$…-Rå Ž¥Û|nâµ÷Ü´¼}79*FH´°¸•Œ’ñ}×q¹¢ òÜ6bdý&ÁI/KÀI›òøÓÁÛ^ðì=ß’(‚Óˆyè2gAŒü¢Ÿ’ø6’Ë—þ’²¢ôh¶+¨ÇZB î¹éw)îò Ùæ#§…)Kí˜ÄôKð3ˆSíY‹ÉÑZ 2‘Ýz°[ Nþd…$€Ì²ëXÓÜïÏØ7’#q|Ŷì*¦ÃI,T*šÔv»ÅCÄg'rÉ®§kM£ÍÓ'ÓvïYË¢Â1´) -4z”ãPfííˆÆ=ºSÉ89CŒž¥Ð5%ì³^ÄDÇÅ`a†W`,¶Iɹu“rä<ÙãP0BeôK7Hp…àXíùÎ+HMZ*È£w9USÙÙbˆ4a:æ¬ÊXé;…iÓ¨ÏV¦âÎ15†Ã£h£\ÌëMó}£:ˆ‹ˆM®àWäØ|°îÈ 0¶ Ëåhc P¦ìÈëin‹²Ð 9îTÃv ëWs I5¯§Ã!†Y@‚€v‹Õó ¦®¨ûï¬1×Ýl_û[Re:õòþ›‹$k°id}ApÅhGI{G”ŠWÒ('ÛþöGî°ˆ KÈFç -÷‰ß–ßØýСKD2IÒ8«R,ŠXjfLo©ò0ãõåÀûÃÏ×ØÆ@Ús"槚„˜6XR¶žúŽ7!¬¼NÖØÅŒÄhf:£Þ –{ª_/¼<µÐÛ%Ûñö&>Y©Ãô–Ê’-Xðç·#Îá -6ÞQµÂf c‡Ã.hÃÆ -"3æP<ì â Nµ9KÅkžXòÜkî|c=}KØ°ô×Â=ç¡Óèõ[ZÎ``Ÿ‚YE„áXR§.$3Ü)¸+ÎY >P•X)O¯àk”þ(÷Ýãbã´Â†îã÷‚ŒbŽi 6í`Ò¸Øy,àÆ`±BŒÃK{¹î‰–ÊÔÒ4I>ôeÉjÕ¤À6…}ËvòyTT÷méB[§OµyÆ&Ѩg=`ç‚Q€tä]–g$=g¶Un.ïïNŸj×WÃÓÿû¼YÞdËÛ;|Oâ»gqÍîÞ¯.þºøuªìÀendstream -endobj -579 0 obj<>/XObject<<>>>>>>endobj -580 0 obj<>stream -x}WÛnÛ8}ÏW ò²i‘(¶ãµ“Ç^ÒE€&éÖîòBI”Å–"U’²ë¿ïRr¼Ú`8H$r.gÎœÿ<™Ò?SZÎèjAEs2É&´X\á÷üz‰ß3|œ¤*¾˜Ïn²ùK/n&ÙlüüíúäòÃœ¦SZWð±¸^Òº$ØŸLh]œ­k »/·Ò M­õ^å¬î‚²ÆS°jå©u/šsR¦Ð]©Ì†:/¤F´-œ“0%UÖüVoe¡*U¼Z?™ÐÅô -®Ë³Ã5œ¤V¸ ŠN G¾F(>ãÓ—nhŠ`9ê‹«92ƽe6Ïè“ð~g]éÓ±çä.fËlÁÇî…ÙÓêþ-ZIpPz÷øùöÓÇ/«s”cäÍæ[e;ÏVL™?}ï|ˆJ!s·'gQE#9b¥QÎ\£ff€;[$p¿õë&E„ yÔVf´.U,:0šú%ËtêØßV†܃3cW+Ñä÷ø¶TØVÒN…a–|Oÿ…Î3<Œäéà4¨ªOɶLOÔH5l!OÉ0–íÖrŒYU¡zå!Ëä²kÅA†DWœ0]“ý­RvŠ±‘þœÀW÷RT©¨CX#Ç)H¡µÝ V)°s+´BÅ8™­è SoDQ£rôtö­*pyŽúªÌìe=½zXZËŒÛ6i -·O˜52Զ䖜ÎQ«dô`ƒÄE…os•Â`d”Ö‘Iû^Îz[22 Cpé´e”Á:Ì×Ç|¼ûüíÓúîñ! H¯aÝ)%ÜëÿÕº?3úh F‘ƒ8–ñƒÒ­ Å ml§Y6ƒLÄ?HL8ʨ“9žvRëb/‹H>θ `¢,ǼZ#¯á23Ñ“Ø"üˆDgJtŠ ÷«K°³dŠK³UΆ!jNÓ¡Gu6ð˜?:èÏàwGñ@Ï|4…V?dê÷§WTÔÖ&¥°‘²\>”¡ޅ úé ÇrŒÐž…îßÙ„±º‚Pu>7ÇpÔe‚ᥳ[Å P®Âô ¤hÚF|çÑ–&&+}dci}´å£öåQ"]ÍØ -Rê ´#KDêXo2Ššìí¸…sç+Ur—ƒƒÀ’çC¾6©:==¢Ó1öKÊ*Tw¬XqÀT ëíÏ¡{ªœmŠ¿ÜõZ2,q¼.üPZGN$L@m,FX?ýÞ”vŒ1RGõ õ\±ÿ4$v -%°ÆFW ä>‚IÓ1:èƒE*”þŽÅEôh»}Ñ(GmÒªù£‘¹Ý¯‚ h¨ª´ÌÁ…Ù[¨ˆÔÜŠNq#0Sb²h˜ØÔèý˜o<Þ°‡‡~3 - -ø°«>èCèÁ_lri†ò6 P Ìü6®%\Ë^X÷°û¨Š´Ãe[Ê{ÌÜK°¦ïEçdŒK½>˜N+Kœ½¢^~¸î¿·L—×Ùâ憓k^ïWoîß¾¡÷¼bmtžþê°­s<ÃÉ‹åäæå/ óå<[.®ñ­–fs¾u»>ùûä7BP…endstream -endobj -581 0 obj<>/XObject<<>>>>>>endobj -582 0 obj<>stream +ï‹G÷Ó7„Q;öyÖù8ûK~›ÞýzC÷wÇZ¯…Ic‘eÏ<Þ`+—Bñù)JvÀkC¿9æDËhMPµaÆ¿ÉB¶LŽ®? |´!X#(bãL1ƒPÌVÒ£’[›e~fAox£HºOœ_Û#~Úæ{¹TêÚì’;¤ÈfÄ9n&õkNðÃÐ..(nÈ>O?\Oégù$3½áCý}³S?O¬m<À¡—t_q¤ŽÆ#M\¹aÈanfO»Ýšendstream +endobj +608 0 obj<>/XObject<<>>>>>>endobj +609 0 obj<>stream +x}SMÚ0¼çWÌmaÞ|‘À¡‡ ²½ì®T5Ýã8à6ØlìÐòïûl@»¥RE +ö{ófæ oQ‚˜žeŠ¬€ØG1‹Qd+ÏKúNéí%Úp1+fôóæbYG9’uëAŠy‰ºÅ1j1ª`¥pÊhì$ode¡©j•l°9k˜ƒÔJo±é¹ø)5p²ß+ÍݹÈí$Dgì‡*†z'Çõ(Æ4ÉXJcGRû"jy©žWïs,|ÿ…ó=S"|mÊüLÓ‚å§Â÷|/‰:¥¥gݨ#o ´3àç ž(Çkõô}èà¾U½u÷oï`Õ–Äé0=ÀXéq´7¼=½@¹íÍ>”À ŸžÁß–phù+ Š +Ïu=zyÂ'Ü­×ún=þGi~Vúð¸@B:[<Ã4Ïiß$º`)KªÜY¿eÂ}_0YúýŽÈz_öaÚÀXݪ-ZÕ»86ÊaЃõN¨'3€S˜¿²°“¿'8q!&Tiž@:Á°4nçï” 6®yw²êÖ®õÈ +®}dÖã–+}kúý97a$ƒá•wƒ´Ag(‰ ŽŠƒ†t +™KŒèœöT~–=¿ä:)ç¬XiÙ%gߪçe…Ïò(;Ênoñe lø¦éµvZÆ‹ÿºš—9+‹9ýÉÏ4óÍ«:úýq&endstream +endobj +610 0 obj<>/XObject<<>>>>>>endobj +611 0 obj<>stream +xW]oÛ6}ϯ¸00,\%vÒ8¶kѶ¥[\ô%/´DYl$Q#);ú÷;÷Š´]µ†¦@"‘÷ãœs?ôÏÙ‚.ñoA«%]ÝPÞœ]f—ôææMvK×·+ü¾Ä§©” y4yñv}vq÷-/i]ÂÖÍê–ÖÁÎ%žäçï*Õíh•ÑŸ:¼½x$Ó’¢­y¡OÖÕÅ«õg±°X^_]gKØ8_e‹ŒîÛàlÑçÁØvœ A·ìhÚö7®yÊÒ!q@«”_‚'äÛj@ºK^˜ÁSüÅß*[fôÑkתFûÿ_ j³Á润 +AÚ¶òôšúhƒýæº ½WïëtËÓÓ¹ïóŠpùÝÃßï¿6?þðûÇǧWp±ÓÔÚ¯,3 ª®á`„ ´Z±øŽNòÚ€WÄW2„ +@6] ¹–,Oø}:ï” &ïk ¸sÂÑÉyÄÂœ3¥q>ÐNÕ¦€n˜Ücx`†5vÚMy•Rð:ïAìÀ2Þ(¯ èÄömq°qÑ)ï÷Ö`ž2úM¤Cûªïë€HöÐdJtP\;D)%Ýú~ãƒj¡Ô+N„ž2‘2ñ\H¨•”m§qCáŒìµBõŒ6ª5¥öدëzd¥â Ë<æÏ)‚š™¯¤ôN×3¼Šù7¶Ð\=cEóÕB—ª¯Ã$>ÇbáªË-’@:3VÕß° +({ˆc ÒºÅŠ¢5pQÄŠà_ÙàHT2ï¡ÿ‰wq;¤4oƒ4ÉiŽ´ Kžx-²ê8i47Aû)š÷ßE„Š‘¶Ö5’©r‡Ò‚m>7óÚ{nZ^‡¾›”?§ $ZX\‚J&Éø¾ë¸\Qyn›1²~“ग¥à¤Mù|‹éàm/xöžoIÁiÄP•X)¯àk’þ$÷ÝÃbã´Â†îã÷‚ŒbŽi$6í`Ò¸Øy,àÆ`±BŒÃK{ž¸î‰–ÊÔÒ4I>ôeÉjÕ¤À6…}ËvòyTT÷méB[§OµyÆ&Ѩg= `ç‚Q€tâ]–g$=g¶Un.înŸjW—ãÓÿû¼^]g«›[|Oâ»gyÍîÞ¯Ïþ:ûu´ìÁendstream +endobj +612 0 obj<>/XObject<<>>>>>>endobj +613 0 obj<>stream +x}WÛnÛ8}ÏW ò²i‘(¶ãÚÉc/é"@“tkw‹y¡$ÊbK‘*IÙõßïRr¼Ú`8H$r.gÎœÿ:™Ò?SZÎèjAEs2É&´X\á÷üz‰ß3|œ¤*¾˜Ïn²ùK/n&ÙlüüÝúäò㜦SZWð±¸^Òº$ØŸLh]œ­k »/·Ò M­õ^å¬î‚²ÆS°jå©u/šsR¦Ð]©Ì†:/¤F´-œ“0%UÖüVoe¡*U¼Zÿ8™ÐÅô +®Ë³Ã5œ¤V¸ ŠN G¾F(>ãÓ—ohŠ`9ê‹«92ƽe6Ïè³ð~g]éÓ±çä.fËlÁÇî…ÙÓêþZIpPzÿøåö󧯫s”cäÍæ[e;ÏVL™?ýè|ˆJ!s·'gQE#9b¥QÎ\£ff€;[$p¿õû&E„ yÔVf´.U,:0šú-ËtêØßV†܃3cW+Ñä÷ø¶TØVÒN…a–|Oÿ…Î3<Œäéà4¨ªOɶLOÔH5l!OÉ0–íÖrŒYU¡zå!Ëä²kÅA†DWœ0]“ý­RvŠ±‘þœÀW÷RT©¨CX#Ç)H¡µÝ V)°s+´BÅ8™­è SoDQ£rôtö­*pyŽú¦Ììe=½zXZËŒÛ6i +·O˜52Զ䖜ÎQ«dô`ƒÄE…os•Â`d”Ö‘Iû^Îz[22 Cré´e”Á:Ì×Ç|¼ÿòýóúîñ! H¯aÝ)%ÜëÿÕº7}²£ÈAËøAéVbÐ6¶Ó,›A&âŸ$&?eÔÉ O;©u±—E$gÜ0Q–c^­‘×p™™èIl~D¢3%:EЇÇÕ%ØY2Å¥Ù*g Ã5§éУ:øÌŸ€ôgð; Š# +ˆx g>šB«Ÿ2õûÓ+*jk“RØHY®ƒJáPïÂýt†c9FhÏB÷ïlÂX]A(Œ:Ÿ›c8 ê2ÁðÒÙ­â(WazÒG4m#~ðhK“•>²±´>ÚòQûò(‘‚®fl)uÚ‘%"u¬7EM¼÷Àƒ<éä(ï"¾#’&+ç´Q[æw=p3n–AÅÐTºòøévö<-‘lo c/5H‚t‡X¢•( #ßLpXà ¬5˜ž(~4gÖ–XÀ êÀЀJ­ZX,= :ÇÑã“\*ƒpR*qN`ïp¶u +yÄ`}­*žÎ‰Û£à¼”M¬` €ÁƒoÈmœöh‡;ƒ«.°|@_=K2–‰…íT(QÞ=e >! ãù5:}nc–ÜNí-äBÆá]K9ĺÛðúr iI¥ ïa>/XObject<<>>>>>>endobj +615 0 obj<>stream x}W]O;}çWŒòR*AJ MàåJ|^U*ЖTèJ•®œ]oÖe×ÞÚ^Bþý=3Þ„°ÀUÕ*õÚž™3gÎŒÿìŒèF4=¤£ eõÎÁð€>Mñïø˜ÿ=Ä_¯©ビ·?ŒÆo|8›í|º:¡Ñ”fŒLŽG4Ë h–íN‡“!]h»¢k—ëðqöÛÇ4Â.Þ¾ˆ 8°{_jKŠî®Ï(«Œ¶‘\£mÀRa*M&’  ç±Ô(MÖVÊÓ ç»kÜ= èh®©©T¦sr–b‰pzH³R-»ÄØ Ùî¯Ý‹Ë›þ½¹½¹Ü#ùùãòô¢ûyÿãËl½|úõk·zu~FÊæi÷Åíݯ™bEËREqˀʢq$”®­rvPU•[ÂÃù @@ -1170,10 +1240,10 @@ x}W]O;} ¥‘òc±4Šõ§o÷0TÛyé8°U¸0ŠÂXS4¥=¬^ANÃó šœRl§²XMmLŸ3Ä»¡Sq…BÍ:¡Ûdˆ{aˆ*¶ArY£À‡G®ô•!EÆtÙ#påä³”‹°æhˆÿTUÏ5¨Qãøœ{Žðµ‰ ¥‘Tîó5 ^FáOêy Ý% ¨ÚŽ& èžá¥ó˜åæ:.5(P« êÌs71ôLšVÔŸd”5–÷hÞrgë´ÖÄ/•Xd “·é4*-±2NtvŠcBþnïàKk»ÊÕàZŸÔ7duHÅÕ_ .ž^²‡— —fÝ­A ÆeiÐZ`nËáD¹¤$À™µÀ•0&tyÑÌ—ª÷ÐÍHû JÐ]o+¸à)Ó>/XObject<<>>>>>>endobj -584 0 obj<>stream +616 0 obj<>/XObject<<>>>>>>endobj +617 0 obj<>stream xmUÁnã6½û+¾4lÅvÛ9&»I`½íÂÚC.”4ŠØH¤JR6¼_ß7”ìÍj‹ ‰M9oÞ¼yüw4§~æ´^Ð튲z4Kf´œ/’-7k|^à×1£ÇýèæyIó9í YmÖ´Ï á³í³«ªSE¡T|[ì<ÎÖXÑžgÓŠë ÙP²#Ïî ¾ÍJRžþÒæëžrk~“ÃMc] FĉÊi´5d‹~)SUu½ÿg4£éü0÷ù•29é@%®RUm} Œ]PÚT'J™ )*Yå*+Qˆu´ÝQŽû+ÛŠ`/IŽêRæ’o·}$Ɇ)K9æ=(])T–ô‹U²@{TÉr€TjÛ@«;ÛP%YÇ$ycUž´ÁåS¤`3[ÑëH3ož*ý·À“ DG§¿^'´³5å.óŒ[³ªÍ™ÊÖäŽs/Õø6­É„M¸+8…‘¶l ÄͳŸ#'ŠÏÖÿé´ ßòeö+‡{«ŸL[ ¼‡ª’¬À (Ôᥣ ‹M‡ rš)CY©ÌGŽê$ÿOt´î=¡­2ø.‡sûõ—r‹¤hµAgëN+‘f?ÆUhÛ‡ë}pmZÇ}G s.íOǺá¼F!÷2AU”¢…‹_“Kã>¶õÂnB/!´Èpƽ¥B¹×ëžéfןZ“ÐÓ’ÁþÃH (ÌÝP{þ¬uŽM@æK%m#µFиü˳;_Œe6£ì&t,5æã*1Ö0¶ƒ Qz’!½¿pÄá½MîúÒfïÏ#ß©96£3Õ¨TW:hF @@ -1181,27 +1251,26 @@ xmU ¸~ˆI&®"õÂ?|B{qž’«&Žx-2’ÂtÝÀŠÀÍÅWþo käÅ|hvCº÷qÔ‘IUè¯:[u(c>q‘X\Ö<†9@ßüÑ Õ²;‰"|ýbjí»DA1ÑH`tΪšDS(`B±ÄÌJýµ Š Ê\á[ö˜bV˜ IagèZ½iaaØt欷EÀ,dt  Uó°áRJ8 ‡>½<ï ïO¶®aÔ/&0&)гÆ\îN>0 !"-Õ¢jÓJûÍC#;f }át¿Ä9Qø ft–†÷2¶OÏVn³VzêÏ4ööëƒÆüÂû}dí]Ü´`Í —J¯À -xdWpN¸·¼(£8”ÐÈl¨ŽƒJ¦HJÅÄ' ±ìH.BTÑÍó¦NçëM²º¿§Åf%ÏÇîaûø@Ÿ>/XObject<<>>>>>>endobj -586 0 obj<>stream +618 0 obj<>/XObject<<>>>>>>endobj +619 0 obj<>stream xWkoÛ6ýž_qç 8®íºNZ`Öu M·xø %Q6‰ÔH*ŽÿýÎ%)?”ÖHä}sϽúçbJüÒõŒ^/(¯/>¬.^}zK³ ­J¼Y\ßЪ Éx2Á“|øëV4^ZºÓÊŠ\é 9Qg‚ÜÞyYS.ªÊ½\}‡‘9M§ÑÈÕìf<ƒ™áj«•ª’TH—[•IG[³#o¨0tf„<ÌK2šî‚}Ù{O¦õ´Û OÊ;\âvÖè âaãø§§ÒXbBWÓ×ѵßJ*…ÒžLI[)¬Q[ª¤½iIXIVŠ‚íy6„óúð¦±&Yµç°i…—ãd~¶Ï9³_rß"õ}‹#Ž2QðöÌÿEf$ÕâI+OδºÑ÷Öyä¡/=ÉÇFæ>œE– ‚CÒ™¤i÷ÔXéýžÞ]­_ö\ßÞ``§ÃéÖ)-Ó­FñÊ`,SŃÐ^làO[­b¡dž Š÷¤QdT(7µ¤òÛ0ý’„Z¯*…È‚ Ü3;ê†Øk£•76X;åG:‹œÌÆŠšACYPú#ˆòÑ[YK„Âm~h!³v³áwB£Î•3€µjØä¼Ý(ÏX³GÑk xq >b•xD:ÖLƒ9žµNö2NI05Ù‡ù(4,;%BÕU ¯À\Óð×çÊ d8±$©+!bâþ‘ª,¥•`kˆ é“gñr™>+Ýž`‰¦H&\h Îw×ê)ßµúöŽæ¬éx½Iò=ìÒíëú¢Èþà¨Ì·¡+mu£`ØѱíÆņ`"T3è:ëBÑ"=ÏçÛgõB°QÌ î?f# ìXiT¢#ƒ\ž¡ŸÔ­WæN}¢"s±ÙjÙV~LßXt!leÂÌk¤†RjDÔ];4ÿÓ€Gµ‘ž*ƒ€Ž±÷¼§Ìƒn•*8’<,°´3°’@Ñ–å!Ž·2qháœÛbŠ:³hO”Oú%ÛhcûBFÜzØê Ã"ls¥?=1§ì8r¾Â¨‰˜!>ž}µðØ BÚ34z– dü.^ÐÛn˜Ç)»³ÊËõp:¢´¾2뵌h^yòçgZD+÷° Ì<ªƒ D¤›Âv˜®L©¶aÙ6 EºÏZž¸k ¾ÄÞPŠ#PØ8,“îÒÊðAm; 3CK@©!åZ­Ù·«3È››<û˜íÄž–ä%¸^$Û¬A&Iee0!/¦¦zOT<‹¿þÊ'ØO\¤œ´èhI¶·ÎCE’%]ô˜ºÛª|Ë´GG:Z~Œç•âñÿ]äÛU² ‰´1.!Öϰડ¯Ëç 9Ðh-†Œ†HnAã^T uHÊ+ÛíMÎc¼ÙŽI¡êI肃¸€²cLcb¡k¨Î5÷ÂåeÔSôœçn Ãxd&¾vŠ˜ ›P¾* ¿¾Á–ýþE‚~ M;Ïÿä‚ë6¯ÿïéÄÍÞ¿˜>ëí‹ñqE\•ƒ´µW±0ߎ#ì0BÂÂïFiý:ÝûÂð {xè-æ^ÞZ^gzuLèÆMœ§a¾UUƒÜ6@è“i•Öú D&<~:¬!Å:Ï3PÇšw -º Œ·QɺÉû~Â~ÐóI¾¿benŽ,oÒËþÜ™_ÏÇ׋|1Aaf×lð·ÕÅïÿ¥­\Œendstream +º Œ·QɺÉû~Â~ÐóI¾¿benŽ,oÒËþÜ™_ÏÇ׋|1Aaf7lð·ÕÅïÿ¥·\endstream endobj -587 0 obj<>/XObject<<>>>>>>endobj -588 0 obj<>stream -xTÑnÛ8|÷W,òä±l«†­8’4)´—61P—ÑV1/©’T|þûÎRVšú¥…aX¹³³³³ûm4§>sZåôfIe3še3Z,O³‚Å -Ï9¾ž©¯GÓ«Íç´®²,V´®×g3Z—ã[2í\G -·UŒªÜp•^Ä [*•¥ÊÑv£"?³'Ir–pJ¥Ñl#Uz[ª.hûH­w†›@ÊöH[mÌñú¿ÑŒ&ó7YŽüãRµ±“ŒÆ$¨° ‘¤3&ô€¡y¨¨QO²}l¾Ì{çhã¶BKxkÙ·ž…£äЙþ¤÷lÙmG×XùrƒsïºGùer]l»Hµó¢ë}Ökz²ÀƤÚÄ·¢Š 쫤\³!£+`ñÿªi Ÿ®‘W58}I¢ë `ã†ZöA;›„TTk]ÓÖu¦¸‚ØA⤲\ dUè;Ñ{…îëÅsOèdÚyÔl+á`´…–tfè{BÕå“43:È¡O×&*y+¥×mDu¶kØ÷}=ª1n{”¬1ˆ X0Œƒ }UÚìMS¸:læ9ïHÇ ˜H;“òP« É›°ÕQ«¨Ÿ9£µ£G<ô¦µ¤+VäêžÇ`dÑ@j–þ¢X¨Ö…µšE¸Z ðJ¤s€ÁöŽ¨éf- ÐxZñóÔv½¡ ÖX2@YtÑ£‹[¯#+´ü¼4´•Ù@çZX-ö† ZAqį;Õ<¨·CÚÓ~l'ù¢7ÿß­®(/òeñOÒù~|ôBéè„nþ½}÷åöþ˜ˆþÀ´ÑåÙÅÅåÝ?½¸Ž*¶š«ûã!ï KcõKä/·7}ø -ìßBþ¡ Æ>_J†u?6%‡ŒçwƒÚ‡ØÛf¨ûWr{VÕ$É,F·|üwÖì2:‡Á“ºðŠØªaeÃϸ¯6Ñ‹zýaSŽái°´¥óžËøzj“…§WÅÞóU‘-OO)Ï‹ý~:ûx~Fï°/ &óò¾ƒI~2ܬfhl5¾ÀöÀú¢TaB‘#Hûéõ>”ÈÅj‘­–8¢òB^]®GŸGßýQçœendstream +620 0 obj<>/XObject<<>>>>>>endobj +621 0 obj<>stream +xTaoÛ6ýî_qÈ'ˆe[5l¹ÀP$iRØ–51P KQ0Ò)fC‘IÅó¿ß;ÊJ3é`–EÞ»wïÞÝߣ9Íð™Ó*§wK*›Ñ,›Ñb¹Î +Z+<çøz¦zt±M¯4ŸÓ¦FȲXѦ"\ŸÍhSŽomÉ´w)ÜV1ªrËUz·l©T–*G»­Šüžt$ÈYÂ)•F³xTém©º íµÞ=n)Û#í´1§›ï£Mæï²ùÇ¥jc'IPa"7HgLèCóXQ£ž9d‡Ø|™-$öÞÑÖí„–ðÖ6²o= FÉ¡31| OlÙmO7Xùr‹sïº'ùer]l»Hµó¢ëCÖz¶ÀƤÚGÄw¢Š ª¤­\³!£k`ñ?ªi Ÿ‘®‘W58}I¢ë `ã–ZöA;›„TTkÝÐÎu¦¸‚ØQ⤲\ dUè;Ñ{…êÅsÏèdÚyÔl+á`´…–tnè{BÕå³43:È¡O×&*Gy+¥×mDu¶kÙ÷}=©1nw’¬1ˆ X0Œƒ }UÚLS¸:næïHÇ-˜H;“òP« É›°ÕQ«¨_8££'<ô¦µ¤+VäêžÇ`dÑ@j–þ¢X¨ÖG…µšE¸Z ðF¤s€ÁŽ¨é5f- ÐxZñËÔv½¡ ÖX2@YtÑ£‹;¯#+´ü ¼4´•Ù@çZX-ö† ZAqį{Õ<ª÷CÚu?¶“|Ñ›ÿ¯VW”ù²øšt~Ÿ¼R:9£Ûow¿Ü=œÑ/˜6º:¿¼¼º§‡ñ¯®£Š­æêátÈ;ÃÒÀXýùËÝíï¿þ ìÿ…üCŒ}¾” ›~lJ!Ïï)´±·ÍP÷Ïäö¬ªI’YŒn1øøï¬Ùgtƒ'uá±UÃʆÿâ¾ÙD¯êõ7†M9†§ÁÒ–Î{.ãÛ©Mž^KÌWE¶\¯)Ï‹Ã~:ÿíâœ>b_LæåS“ +üd¸;YÍÐØj|‰íõE¨Â„"GöÓÛ}(‘‹Õ"[- ,pDåkyuµ}ý ý[çendstream endobj -589 0 obj<>/XObject<<>>>>/Annots 307 0 R>>endobj -590 0 obj<>stream +622 0 obj<>/XObject<<>>>>/Annots 328 0 R>>endobj +623 0 obj<>stream xWmOGþίåK@Âw>l„*B€¢âbWi*KÕÞÝÚÞr·{ÙÝ3øK{ŸÙ;;`Ò´ ^öm^ž™yfüu/¡.¾ö¨? ¬ÜëF]ìlÝ_ï%ÇGQ—Ý~—¸•DƒvUЄïSÿ8‰z|6Eývµ=ëE'8K†'x×+>K†½hH½ÑIt„Ó^··+>}¾ÆéÑ1n5w7r{xÏöô†Gü2¬¶g¸?:Ù:~= >{?Ý‹¯FPFÓ9¼ Ohšg±“í_,E奥QDwSú`J¡4Ý/Þºƒé_áe2l^vúGpxšï¢$¢í­ÉëÌ+£››G”$íÍÞÊqsºTŽr“Õ¥Ôž2£=¤;Rznl)ø)yC•5+•KšMx4öÁùæðQù%f“œ´+•IwH¼ijO~)IK™„á-Ñ¥NÒoŒ„$~"-Lõ3øº[”aϱf3§¥÷Õ»8†ÏÅÒ8eie¦Œÿ.²"ÎÔÜiŸH"ÿäƒÖ”¦kº­dÔªí ,x ]Ö¸ ©2Ω´ì¤“…Ì< À ^Šœ­Áç…5uE³}øʦ¾Dâ­£éÅ8¾CŽ÷J/Üì>ç;N‹9‡’Ÿ›´P á]“•©10Þ¯+ è¡®2Z”ò*áÏ_Ùáäê ˆ»y]k^MX ÿv5W••™žÃ¸¦9â’Šì€óÚÔ–äS%­’òBa$b‚ȳ‚Cv%¼øœ*ØÉŒ…@N×œæ¹ «Å€6ˆÚdÙn@¦£‚%Ò#¥Ë¬J½¥´’2$¢$…Sð/‡}+Î&kJ„!X„K01)ÎSpk‹Î“Fbv°cÐô¥Ñ‘|’}15¼-Š&Oa*áy–ƒÍ}ì O¨‰l „dn )9dˆÇÕlP)Ö;Js™TPHœËéí§ëOw‡T8a«, çìÊ­2šZ¡@Vª’.¢—õɵú¤à¤©:s,“¥ ‘¬!T®2:ÏË«…¢-@¥½xyã*°Z:vš‘·"“¡pµH¤åãReË€áŽòB=È* ÂÄåd™VŒ„ÿ0)Î gBLX`m2\•U!SÁó– où´0 -["ÙdÛ&¥Øq?³ëÊ›…ìÞ±¸Ös¹‡ MIÔøG{•ªûN,Ä @@ -1210,56 +1279,51 @@ O ÉÍœ(SpQ8Aù!c¸bpdÉ¡`Q–»•tŽ@WkFà¥eïZu lIUû´^ ¢_#›E(ˆLÄ“‹û›ñt>.¿üé¼w¦t>vONo϶×O?ŸŽÏz£þñ÷ÿ[3ôÑÒ—ÅÎ3ØÝ Õ±o@ä×ô†Ë•®Ý¡ÐRiM˜‚ xÿo¯®‘±‹8[¨Nªt\Î]ÜMâê8†ñh(êEÜí’ïÙûM)¸‰n´ë%§4èåõ­£æ1@÷dæþÖrÛ¾XJõûZ¡Y=ç£-¸¡f©‘‡,† ¥U¼i´ÏuÐ]K>m:s®dK%™WÑ0ÛÞ*`Ž6jYæýåõŸ“?Ц -5¼¦¹fºOÉ<|…üŠ¯0°mÇ‹¶ÙþüËíÇÙlòe2½Äß‹Cû LèÑéqÔ ³¨ ÌèÙl,,Z¨¼p¯åÞè¶û @¸ ‘äÞSÛêÝšÊ$Lê±KvV‡v?Gí24·ÀЃ öÆuµ‘½ãËä|•€¨XÒ›[%RU Ìß½!‘šU3ÄWÏg¯œ÷RXî%j ˆ£»H˜·¡Z<µT{ç6=j)ÀÌçÆ*ž¸xTÐt>¾ÝE㌕È"Œ LhôøiiØ›wÐWB®-ÏlRc´¡îšvžË9â© †± €Ø°ð†Z‘2²pò‘UíRÑ«¾…äÒ†J‰ö–bÇ Âc!Hîð8 ¬è£Â@†8‚,›ÉÑ(ê¥(Ù t$øT*îJÞ„ÔÃG„ΆÛ>Šª‚`4§û›°?]˜¦\;5ð˜ÚႳƒ`x‰‹Y;ßÇØÌ0a¹S?ÿé7Ldtó!Ð ÂõØì^‡‘0l¿ÔkÅW'mòvzÇÔéó¨ùñH„ÏÃÁIcQoÄ]N÷~ÝûÊ5³endstream +5¼¦¹fºOÉ<|…üŠ¯0°mÇ‹¶ÙþüËíÇÙlòe2½Äß‹Cû LèÑéqÔ ³¨ ÌèÙl,,Z¨¼p¯åÞè¶û @¸ ‘äÞSÛêÝšÊ$Lê±KvV‡v?Gí24·ÀЃ öÆuµ‘½ãËä|•€¨XÒ›[%RU Ìß½!‘šU3ÄWÏg¯œ÷RXî%j ˆ£»H˜·¡Z<µT{ç6=j)ÀÌçÆ*ž¸xTÐt>¾ÝE㌕È"Œ LhôøiiØ›wÐWB®-ÏlRc´¡îšvžË9â© †± €Ø°ð†Z‘2²pò‘UíRÑ«¾…äÒ†J‰ö–bÇ Âc!Hîð8 ¬è£Â@†8‚,›ÉÑ(ê¥(Ù t$øT*îJÞ„ÔÃG„ΆÛ>Šª‚`4§û›°?]˜¦\;5ð˜ÚႳƒ`x‰‹Y;ßÇØÌ0a¹S?ÿé7Ldtó!Ð ÂõØì^‡‘0l¿ÔkÅW'mòvzÇÔéó¨ùñH„ÏÃÁIcQ¿Ë]N÷~Ýûɶ5«endstream endobj -591 0 obj<>/XObject<<>>>>>>endobj -592 0 obj<>stream +624 0 obj<>/XObject<<>>>>>>endobj +625 0 obj<>stream xWMsÛF½ëWtù²r•“àwr²£8å*IV–Lía•Ãh’df ™ùõy=ÀðKÞ¶T&Mp¦?^¿~ÝüójHü i–ÑhJyu5H4YÌð:žËk†–i¾G“ï}1šŽÓÅåŸVW>i8¤ÕF¬Oç3Zƒ­òëÕŽ‰¿©ÜSÅÊh³ýPðFíum¨ÞЋ²ºnUj«sÊkã¼2ÞQm‰M[±UrÒ¥ïW\%ð£Åõ(%ùŒÉp”fòHüXnÊ=±µ¸œ×“2µŽÅß)úÕëŽ )z­í3<†hÖœ×;<­¸Z³•kŠŠºRÚˆ»ÁÑÛÓµ¯iÍT°Ë­^sA¥òlŸÞ§ôY鲘8`Ù·ÖÀµvg®uY"ßgœAЧ Úú.VíI»õ‰_UZVÅþ,D1Òy)›¦ce|Äi´H§òHNçvßøzkU³æN©€Ó{»dûÂöQ9‡ÐŠ%{`YU€ò†^q~‡ˆÛ² U–õëe0ƒ|§Ì–I£¤Mo2¥• ?"M)R!ˆmÙHÅ;dÊÚl Z‘cç„/ϼOé¿_jj<[—ô…WË0ø`?„.TxfnBÄ  jK†} ç÷7(N:?|^аn(É&”Lfé\]¤CüѲnmΡ`Ç~¦ãQ†ãóðŽÃù3à\Y…“´±u%€W5ºŒ}ºäuÎô¨òg´«„¬Öõ ?½NÓÁt"^Û’>º&rê®™îXoåÉ¿Ð<¨²¥w+º ì}‚ä]^B¦ƒ•ÏKù]fúH(×7Mý7ÿÆåÿ8 eñü D}ê£,‚§,¥Ÿ, ƒXÿœQž>Á¨¬Uœ6¡\ôªýN`£û·©5[‘òê‹ÄU Œ×y×Ûnï%£³lŽ:…ïDëôGY«öÒÑça¸è) ^zn»ƒ˜_¸c Ч m‹MŒdˆ¡ *Hæ¡«Ù›•s8˜tªàï‡ §bwÈêÜKw óN½Hÿ¢•1ŠÂ{0vß+¡_¨ÏEÐc:•®çR K›Ö?Œ;¡ ˜„zŸ2çû¼é;>º¿p…¡ç¶Ôé2Žx™T–!‹q±©eŸŽ ÌÉ1Ñã°…ŽÜ\8ìî¡4kü*8)u/;HSDðˆz§’½Á0+嶋ÎÓ¯jQ -©—ʶÀ^µÎlj?Á’'“û°(Ïû߃ÃÉ(.4ÍFéhΠ>}¤ÛnÓIý¥ÅïI*Îæát2,âÆx¾Ygãt6÷?rëçÕÕ¯Wëö¹Ûendstream +©—ʶÀ^µÎlj?Á’'“û°(Ïû߃ÃÉ(.4ÍFéhΠ>}¤ÛnÓIý¥ÅïI*Îæát2,âÆx¾Ygãt6÷?‡rëçÕÕ¯Wì¹Üendstream endobj -593 0 obj<>/XObject<<>>>>>>endobj -594 0 obj<>stream +626 0 obj<>/XObject<<>>>>>>endobj +627 0 obj<>stream x”ooÓ0Æß÷SÜK˜;Áqx×n+L¢c´·(sÜÖ¬ù3ÇAƒOÏ%nYË"wŠ*Uò=?ßÝs¾Ç …? ƒˆƒ,'! ‹”Ä‹ÿ3üëá ï‰;`!'|ì€2:®à=ü¿+fÙäÝ<C¶Æ¬8¨Í -ÀœÂ2ù&% ?¸®ºR™Üêºjßf?ˆ:QÀ”ì#)Åjyw ŸT^(öw£œ úOÀ±X”Ⱥ,óª„ßc¬®Àn”­i$4¹|P¶ÆøKÂp×¥zìTk?œ^„Ý hDXSø†§àøø€i¬Où9ì,g¦«ÂϘ½Š1•~̥àCg‡’˜p½uÆ¡uÎŽ;×N]­k'±#뛯òJW¨×½-Žá.ß´ [誢–8•UÅiú!lïè\›ÖÎM¾ñ'NO'^|Î_Cð¹p[Ûü|±'‡¥’KÕÃ…‡q[/ºÕÍN=y›A}ƒ‰¥ÌksS¨²ñBØȺ63‰õBb?ä[§ýí{ýaŸ ¶Fôy#+k:i;£|k$"¸F¾¹¹‚ ×à‘amõ…CÚG]ôã1¸×¶%Npxýh=Üä67ç°}LOÇP±g4„§)p¬mØ.«éb6…+õKíêF™>b«†µbƒ$LŸ·ä‹}'1I¸ÀŒË*žÇu6ù:ù ‡µendstream -endobj -595 0 obj<>/XObject<<>>>>>>endobj -596 0 obj<>stream -x­UÁr›0½û+ö˜t‚Š È-§­q¦5éÅÉd0ˆX#\$Òäﻂ›ì6ÓaìÑj÷½§·«_# -6>|\I>²‰ Ìe„øøîà¯äÕ ã€’ oÁ\pL’žTŽÍˆÓ·@é@ Ï}_û<}þ¥eȃ>D) Û†(9 -‰C\|à:š^^Gí½F[#ÆÕ« ¸,…V' d*’X yZä¿Añ¤©%dÂÁ¦±¤¡oH‹¤Ê¹Ô<5a‰È#úIÃÍnÑ¢à’1lâ{~Rÿ6XÔEþXܵoŽImKÄr‚ZÃÀ#0‹öRh– æÕþü ’1ÉÕåÝ|:A~i‘ÇHÙ|(]V‰®J~sÜpa=2Og‘ëtOM÷ª„¬r(2PÕÒŠ+½*J¡WFÔm¡nrkwû5¦†³”%Êœ–ZòòãÉþÔ»FË`ù¬‘|V”;ìÁ‚iŠV™à%œ½ˆôübŸVòwªP¶w(«QUí)º•ùí!ô(Õ6ϬÐüôŠïâDî´_+þ{ÅK~ÈçŒÀ<úa:G—Ø{­—zZ¶f|C²ŠËÅ-œâ«¬ÖkKó226Ùä3îŠU"D' Aòqx̦ß&U%ER¤¼Í¶âqÊËd«>¶v+q$eǼæò^¯ ªnæµÛiq(e?ÁÓîkMWÉ푾Q­v\wd­nÎp°YW -–U–¡—7…À ºWÌú†ÅìJÍáìQòçÕtòi_º-Û7 ›Mí°îáÖÜ‹va4ËbO{›º-b: cëàe -SÏ!, ½æ^™Ÿ]žŸÁ„?òu±Á6€¯•H¹afQ?¨c-ßÍÕ\A0o'¼2QžïŸxçš+¬êÑèûèÓW>?endstream -endobj -597 0 obj<>/XObject<<>>>>>>endobj -598 0 obj<>stream +ÀœÂ2ù&% ?¸®ºR™Üêºjßf?ˆ:QÀ”ì#)Åjyw ŸT^(öw£œ úOÀ±X”Ⱥ,óª„ßc¬®Àn”­i$4¹|P¶ÆøKÂp×¥zìTk?œ^„Ý hDXSø†§àøø€i¬Où9ì,g¦«ÂϘ½Š1•~̥àCg‡’˜p½uÆ¡uÎŽ;×N]­k'±#뛯òJW¨×½-Žá.ß´ [誢–8•UÅiú!lïè\›ÖÎM¾ñ'NO'^|Î_Cð¹p[Ûü|±'‡¥’KÕÃ…‡q[/ºÕÍN=y›A}ƒ‰¥ÌksS¨²ñBØȺ63‰õBb?ä[§ýí{ýaŸ ¶Fôy#+k:i;£|k$"¸F¾¹¹‚ ×à‘amõ…CÚG]ôã1¸×¶%Npxýh=Üä67ç°}LOÇP±g4„§)p¬mØ.«éb6…+õKíêF™>b«†µbƒ$LŸ·ä‹}'1I¸ÀŒË*†û:›|ü‡¶endstream +endobj +628 0 obj<>/XObject<<>>>>>>endobj +629 0 obj<>stream +x­UÁr›0½û+ö˜t‚Š È-§­q¦5éÅÉd0ˆX#\$Òäﻂ›ì6Óað€µì¾÷ö­ôkDÁÆ‹‚ï€Ë ÉG6±¹Œ0ðŸ¼KY½0( úÜÁÇ$éIåØŒ8} ”ÔðÜ÷µÏ£Ñç/!P +Q†gæÑ39ºÄÙk½Ô3²Ý0ãû’U\.náeµ^[š—¹±Ì&ŸqW¬!êÐ8Áu’›ÇlúmbPUR$EÊÛl+§¼lA¶êãh·ÒGR6Üä5—÷zePu3÷¨Ýî‡Ræñ|0í¾ÑôÐy•Ü¶ôjµãº[VÐêæ ›u¥`YezySÜA÷ŠYwaXÌ®„Ð4g’?¯¦“OûÒmÙ¾Ù|ÔnÖ=ÜÚ{cÑ.¬ƒfYìÏaS·EÌtl¼ìÂÔs C`c¯9Wæg—çg0á|]lp àk%Rn˜YÔêXË·Cs@5GÌÛ^™(Ï÷ˆÏ@endstream +endobj +630 0 obj<>/XObject<<>>>>>>endobj +631 0 obj<>stream x­VÛrÚ0}ç+ö‘tjÕ·Ú憴¡ ÅN_’NÆ‘(c,"Ëiøû®°I€“K‡a±òÙݳgw}×rÀÆ¡ ^tѲ‰ cü(Äß.~‡éÚà{ ^2¸‡ N=¢—´¾|ë€ã@2EïABÂ=Û6$´Ý!.ñÆ£îð®ÚÏgzn‰œ šjΠÌ•ŒC¡•ÈgW''É-"ˆ–1ÛƒQ⹕ٯ͘§åx˜ Ú+dÓ=È]@kûé—ƒæe–Yš«…È×ÑVQn;¡óT¥¯¤‚Ù±öäFUð5‹Ñ N&.R‘fb–¿•¨)ÚeÊ’ZÂŒë=À·nVšÃÆí_¡ç ç†ùTi“’9ÄÃÌyʸªÓÙTâqMµX¤ðÎz4ÁÚ`aRLÒrÁsÏ‘Ò6A½3ºfµl«c-ê'q׆K`ÜûqÝM’ ŠCÞÜrª!ÕØ7¥æÅ:Ã~p"d®Nùª-r0J@H9ÍÊJ3XüúÆTðŒ5•ÿ÷xÐÿt¸iL™””˜P˜„T+Lh)–Lí§±#«WàÖ¼äé‚¿ôØÜ0Ñ>ÑŒ Û ûh¸§¥zŒT‰¥RýǸáïJlktƒ]\pu/(?.8ÀÏñùõÙ¨Ç]XÊLÐÌÓœe|?s¤i3‰ª/]»alî Ä'ЯãAßÌE&)JOf)”T—Š6ÇÏRáÄDk½6¢ ƒ_ ð†ç™¿N“Ö¯Ö?+CO-endstream -endobj -599 0 obj<>/XObject<<>>>>>>endobj -600 0 obj<>stream -xÕV]OÛ0}ﯸ“€‰„& I»=ñ1P¥R´6ã©2ÎMã-µKì4ðïw„Ò"¨˜x@ªH{ÝsÏ=çØî}ǃ.ýyùÐ /:]· a/tCú=ûô*ÒºônðZÁnÿµBºþËÏOãÎÑEžqJÍÃ~qÔ¸Û…˜ï•Áo`2¤¶B®dš nàM…(m J)¸J´)„œC†,Á˜L^« -£1Oi0 -ªLðÌ>”éßAü»ÓÇëÑ8Ù2œ™5pŽrn2—P‰K%ò$"5QĆ„Ñ*_aⶠ~HòÈz˜ÏÁ<.i’WBª -À¶XæxHŒå‚éï4h…yîü‘ª’0/T¹4¼íLÍÅËJCݵZ`eª] Öb:~¿¡0p}·çzÇ.œ__ÝNˆÆl?Q &$Ø7$[ÉMYàìÀrßôÃyšâ×p÷ü¦´($k©ŽÁÙ¤L£º”$ÇêZÔƒÏö5"L3UœôËNÎ&Ö{z•òY‚mÒÿõ¬Â@(1dH-'9‹ JŠ"v§V6)™#9¶ktÓéɦšî £BF×—·ÃñÅ59E -®° tp®Ji炬—mMør5WlaÍ -c3l(ý•‚½ÙlxÆ -Æ ´ÑhïPÌÊå’ìãL7á¢AŸòз”LZo7cÓ¬åX7K µ¨K£é Lð¾Dmà,c¹ÝOûšƒ/@$-Rs’OШBZµ6¶äÛŒn®‡ç_m_ èf`à®LÉX*A[¨Øeýx8';r¿%íö9ôØ-aßK›Ô ßÖ@#¿%“%å•ËB˜Gkº”˜×ÓGoÙ¾`<òåÁÜÀï -~äÂÙhßN'7ÁßÈ’þÜÔÿOûL®­c»bÐo//ðÝp0€Ð¯¯ÜéÉÕé œã -sEg†ËR$h“ãxQ¿^éDݽX›[ ¦O·W}°QàFaŸ~JЊ^`¿ø#îüìüm‡×endstream -endobj -601 0 obj<>/XObject<<>>>>>>endobj -602 0 obj<>stream -xÝVQoÚ0~çWÜc»Aš„,„½Líh;¤[I»‡vB®cÀk§¶SÄ¿ß9 ª&¨/Ó4P$ˆÏßÝw÷ÝÙO-lü:Ðs¡ëMZ¶eƒïØ– ^ÐÃß.>’Á¼Xðê\¿‹v¯vœ…­“‹>8„stâ=#@¶ !=ê[®ÕµœÀ‚¯×çƒ)ÜQÉ"–jNbAó„Ò$ÉîÃ߈å¿`u\ßòíˆ.‰¼ ~•ë^µŽL:N)ƒ-æ>Hg×ê&ŽÎëA¶¡”6R†”¡T|úÈçjΆ㋉‹¤“ÏL¶Æ¹!!™SKöòf'¢c¡ÙgX-YÊô’«-,cD*à),×SΔnÃZääJƒ& ¨ÈÖ æ¸™Uát(‰iÍ"؉ð´·9”Œ2þÌ¢6<0JrÅ ÂV<Žñ þŒc•?(ãIn¡€.}TVá3“LåIa­ME -ÈB HO5>@ÒW®IŽ®Ð”!VÌN'©‰C[Õž&ŠôO¯oËZ½)Š²$ ,¤$aªÜ°QÙ¾@†ã0¸kÐÙü@F¢ˆ§‹6Ì…¯ó°Ö˜ö˜/ÒÄdeÅõ¦£3X21Y„½õž»ÛÉpð¡>þL`¾Œ -ÄFVÛŒ«&Ü¢ÓêqKÖˆ[²Ò°i‡¤¡\{§vú€P*òÕùß6üsq5¹,æQ}åc±Àn¬jƒÝ<¥í›Íð7UäX0ÁÏT7£f.¶£¯ fD@ŒS1§a€j)-g<šð™ÓÀýf<ü6¸®Od$Ì0+æ ä)§"bU¿7âtéºõ ‘$Áñj)â8¾WSVy8h‚8Àµ-ßËîäJÈÇ…yöNÜâìwü†¡L$õàj“Ÿð(…ž¢îû€Au›pzå÷ûà÷<+0WŠééèìFq"cxê^æ<*bgcÛéÙ}cZÞ `º9ô‹#ÆC žà•-ºŸL@çaëGë´Î¾Cendstream -endobj -603 0 obj<>/XObject<<>>>>>>endobj -604 0 obj<>stream +í‡> ƒ_ ð†ç›¿N“Ö¯Ö?+MO.endstream +endobj +632 0 obj<>/XObject<<>>>>>>endobj +633 0 obj<>stream +xÕVÑNâ@}ç+îÃ&âÆVZ°…Ý'”Õ f¥ë §:»e;Sª¿wÚª@¸ñÁl ±p‡sÏ=çÌ  ZôçAèC;¾l´ÜíÀ  Ó éÙ§W†0/ nÏíì+øžÛÝW×ßýüÂxËö%㉻s(ø¡ £q4›ÜÞm#KúsSÿ?eì3¹ÖŽŠA·¾D¼Žï½~yåNú×ç}àSEg†«\Äh“ãxa·\é„­ž½X«[ &Ï·Wy°vÂŽ]ú)A+Úgö‹?¢ÆÏÆ_w‡Øendstream +endobj +634 0 obj<>/XObject<<>>>>>>endobj +635 0 obj<>stream +xÝVQoÚ0~çWÜc»Aš„(„½Líh;¤[I»‡nB®cŠ×$Nm§ˆ¿s¨š ¾LÓ@‘ >wßÝwg?u°ñëÀÀ…¾4éØ– ¾c[.xÁ»øHËbÁkZpý>Ú½ÚqvN.†à8.щ ŒØ6„ôhh¹Vßr ¾\ŸæðóˆJ±Ts+øš' ”&Iöóø8üXþ VÏõ-ÑŽèŠÈ»àW¹îUëȤçô‘‚1¨1÷Az»V7áxrÞ R‡RÚlInP†Rñ"Ÿ«i¸O/f.’RL>3Ùs䆄dNu.ÙË›[ˆN…fŸ`½b)C8Ð+®j, YƈTÀS X®§œ)Ý…È!É•M.P‘m@,q3«ÂéQÓ<&šE°‡ai×9”Œ2þÌ¢.Ü3JrÅ ÂÖ<Žñ þŒc•ß+ãIÖP@WŒ>*«ð™I¦ò¤°Ö¦Î"d¡$„§ é+×$GWhJ‹+f'ˆ“‰ÔÄ! ­jÏVEúç×·e­ÞEY ’FP–R’0Unتl_ ãiܵèì3~ #QÄÓ‡.,…¯w¿Ñ˜ö˜?¤‰ÉÊšëÌ'g°b$b²»õž»ÛÙxô¡9þL`¾Œ +ÄVVuÆUnÑi͸¥FD-YiØ´C ÒÒ®½Ó;}@(yŠêüoþ¹Ž¸š]ó¨¹ò±xÀn¬jƒÝ¼¥í›Íð7UäX0Á/T7£f)êÑ×3" Æ©ƒÓ2@µ”– - øÂiá~3]7'2f˜óò”S±ªßÛ@qºôÝfÐŒH’àøNµñßkÆ)«<µAà‡Ú–ïewr-äãƒyöNÜâìwü–¡L$õàj³ð(…ž¢îû€Au›på‡à<+0WŠùéäìFFq"cxê^æ<*bokÛØCcZÞ `¾=ô‹#ÆC à•-ú¾ è<ì|ïü´Ø¾Dendstream +endobj +636 0 obj<>/XObject<<>>>>>>endobj +637 0 obj<>stream x­VßoÚ0~篸·µÓHó«I覶” i…­M·—JÈ$xKlf'íдÿ}g'ÙÊ AÝ "ßÝçï>ßùÖsÀÆ·¡ ^Iѳ-Ž!>ýH?]üH @@ -1270,34 +1334,34 @@ A T À/–­q‘”Æò'’¥>˜%QüE©‰àöí©Î)ÅmD±’¢`m5ö–ÞùûIlòì8ø$gH³ÖT3–aH…‰àBýÓ²)ÂFu}šŽ‡/kû¶ÚZ ÆË:ÏÇÒÎ;ªöüêb¸ö1ô-¸@Ý»PoÆ“Ø vãšj€œÞѼ#ç}(êž•ÉîH^ÑƆnf£œë×Í«ñÆr4a3Vž>oÛŠt·Þ Qœ »ÅúcǺŽM=ÌÅÒ™.õ™ózGÈÏšyÛMºò ‘¦“< ÞŽ‡ØD )ªUÛ9ý¢Eó:Š±Å©·Ý>Éö@˜‘CJ]óª¤ É Ž-‡Ë)Ì×zdz–„§ø}ì´\Û ëÃÙœ¾Ãéåìêb„`Íœ”4£’ò„šÖhQZÂZ§fBìiŠ§"© -l5M¯ÊšvÙWÂ]:òªÀ)ÔPL¡&­ÞtÈúžïŠçãì¹Ø¾ùH~Ž2ˆ Pɨ꠽¯ |Ä|ºx[¾þÛm KJR*kÊQs 9¾kƒa ÛoŸ³Sê#VT*x[áøÕ!}'ŒŒg?´qX´W\·w‘ÑÂ}+ "üïž™dqïcïß~LIendstream +l5M¯ÊšvÙWÂ]:òªÀ)ÔPL¡&­ÞtÈúžïŠçãì¹Ø¾ùH~Ž2ˆ Pɨ꠽¯ |Ä|ºx[¾þÛm KJR*kÊQs 9¾kƒa ÛoŸ³Sê#VT*x[áøÕ!}'ŒŒg?´qX´W\·w‘ÑÂ}+ "üï^¨/âÞÇÞ/߈LJendstream endobj -605 0 obj<>/XObject<<>>>>>>endobj -606 0 obj<>stream +638 0 obj<>/XObject<<>>>>>>endobj +639 0 obj<>stream xÅVMoÚ@½ó+æVÕ®mÛô%"i9@Ô`z U´ñ®a‹½Kw×Aù÷$Á-ª*d Éã÷Þ̼ÙÙ_ü¹zÐ É;Ží@à:¶~âÅ ­^ô¢žm¿¸Ž;Ÿnp]ˆSÄ ¢b ˆã8'Ýéxøupï=ˆ"T,}¤2×–ûã,þ‰ŸùÍgÈm¹=$iƒ˜b"a0–p…à‰¤ ´Q\ÌaÁeJׯÄÖ&rNâûý ® 9Û?:¸=N†ƒV"”~܈î7iW¢½Èö˼û¶gc .l(™†ãÛ;˜u¥\¤ò#dì™ez@… سÀ²`³³ÙY[»–ÔÈÓá8Žh½¼¼„¡´¬®‘0g|ëéÅ0 Ÿ‹œ knØ¢ È&£ë¦mÖv× ŽkCÓÛŒ‰9òœƒ÷p¿ß çûå‚ʤ(‹ñnÍÊBö§"EçÂJrŒPôÿzçÕþGÓÔSÐrפmŽÁ¬Ûž²m;µÛŒÂþR5ȨºŽ9døÀ†éäæþÕñ…Æfr.”®ßÖ±aë±4ì3p´¦,2 O ðœÀ‘°r ë1Õ|¸T^®5Óš#ö’½×Je—7aãx8ºÙŸ[­ÍðœÕ1;O ñ i '¢,y²”§Ã¬ˆÖk©(dDÐ8ý'êzLˆ€dAÄÛrZÁÞ ó5‡Y¯žý, ±cq°U;í0ð4W‘eðOjêDñ•ÙÚ`§«_)™òŒáFÀ“¸}*œ¾¸s)W,1R½‚š%éúžôû„^>pQN®F×W0(—¡\áE¾œVÃh¹aTÅZ¡Óß©01ªHL¡Xµýзà » -‚õ²7qç[ç7 y*endstream -endobj -607 0 obj<>/XObject<<>>>>>>endobj -608 0 obj<>stream -x­–ßoÚ0Çßù+îmÝ$²Pž¦VÙX¤–j%쥚PˆðìÌ?Øøïw&©ÖVÅxŠ8üõÝ×çûÝ ÀÇ_ц!›ÞMÖûø%„ €¬ÄÂ8‚Œ€ïù¾Yq5Ÿ¦_“‡÷ÙOŒµQ¸° ½^­Å†a’ZÈɶ g… ”–Œ¯`MsBeÃxÚ©ÿ2O§YÞ¤+Á¡†ë3(Ëœ@+õGHrl88,i®¨„4éã"L¤0õyn6°²åÐñý>M>>ˆáDfC¹¦–¦,ñ\µ`ø)A‹ï9ø¶x®s›©²ÊW.‘Å:—AøáÓbUŠ¡~ÑKQ‡g;!o‹È“½zœˆMÎøÉðSjÕœ¢Ýˆ¡µ›¢9ò²OòÈw$yä£äg~¨sBì ^î4U”FIþ­snëðɱY—-|èúw!ôšÊ…bD¹h‰™Îoo‘÷Rûï÷€6U³4QN?OÓYöà¸úÖÐ<Ƕ÷Ò:®\ƒ|§0¿UF·f/$«õ×R”¬¢ØPõú‚ØWÏÉå2ü -üÖ;å*`G;ªOÒäÑ:¾éØŽ[¸ÆKá’Ôå)G—;ûfs`“û»^¼&"nçˆ Š½p<Æ™c?JÌ®ïn®!¡[Z‰šJõKúO‘ýÈÛ©cì ¼¡3-Ma[ÒþiE#/ -cb0bÛ…Ÿ³Þ·Þ?áFglendstream -endobj -609 0 obj<>/XObject<<>>>>>>endobj -610 0 obj<>stream -x­UßS›@~Ï_±Ú)W>´£FÛ<˜h‚}ÑN†Âa®Ê…ÃjÿúîИ¤Ž“aÈp»ßî~ûÝîï< lâl`\' >8¾‡ÿ-| -i}à˜¡«lêïùÁa8øt⥦Ýõ=À¦ a¼“È,âf£ánø MÝÖÔ@[ƒÚÄBëáätŽ—¢Êæ%OÊmöÉTª+`‰Z~ilƒ.®åGãÄ"Â#0û6O&s:? §pµ“K.+JPnÙ»EzÊE„$p‘J(UÁÅuyµÛOÚÃrè±TlJÆ æiYD¹EԽ±âRì}„<ºf@MÒ/…ǶÅ#>¾1ERY`hNçê!×áGŠ•Á—7µ?Æ¥.1Ý=íA×xœaÚ -Î+V±—ŽÖÇ!»ãñ -ûu£³#Èy¾Âͼ÷uÿñ1‘l%søÉ59 -ë[{µÛ+wÁ“„éclCKÛ“Z^ðö}2~èsÛUTM¨`JDÚvënãGÐ_ûíÉñb4mkxÝ-ê—LÛ¬ñšP‰DÆUÆP`Éó:º9nSBÁ²¨¸éWËLƒ·Ðë„ïw…?«…ÿ&±_ŒG轉‘%Ý•à±LX{éÙ†õ­‚<ò2Æö¼š—ƒéñãL8 -§ýnw.z3b)Î1=¸Z`›±gå~_F¿M"ÒJ9n@¦,Jú8ÿ%GtX¥)+4Híú8¥V&ÿù=ÒŸÔ…Æ_VÈ^¯,‰M„n—Qo\v|Ö윆E†Ízxœ$åš~-Cà¥yCˆvù4üv¯QÇ"n€ëí‘Àª·Ûìàôðpr³[™ë]öµâI=× êùµµá™ÁrÂLU¬ª‚Õé;îs×G5àV±ï8œþv£8{endstream -endobj -611 0 obj<>/XObject<<>>>>>>endobj -612 0 obj<>stream +‚õ¢²7qç[ç7 ‹y+endstream +endobj +640 0 obj<>/XObject<<>>>>>>endobj +641 0 obj<>stream +x­–ßoÚ0Çßù+îmÝ$²¢ž¦VÙX¤–j%쥚PˆðìÌ?Øøïw&©ÖVÅxŠ8üõÝ×çûÝ ÀÇ_ñ†›ÞMÖûø%‚ €¬Ä¢Q ßó}²âj>M¿&ﳟ¶Q¸° ½^­Å†a’ZÈɶ g… ”–Œ¯`MsBeÃxÚ©ÿ2O§YÞ¤+Á¡†ë3(Ëœ@+õGHrl88,i®¨„4éã"L¤0õyn6°²åÐñý>M>>ˆáDfC¹¦–¦,ñ\µ`ø)A‹ï9ø¶x®s›©²ÊW.‘Å:—AôáÓbUŠ¡~ÑKQ‡g;!o‹È“½zœˆMÎøÉðSjÕœ¢Ýˆ¡µ›¢9ò²Orè;’ú(ù™êœ{ƒ—;M•¥ÑFR ëœÛ:|rlÖe ú€þ]½¦r¡Q.ZGb¦óÛ[ä½ÔþßÄû= MÕ,M”ÓÏÓt–=8®¾54Ï±í½´Ž+Ç ß)ÌoUÁ…Ñ­Ù Éj}Aŵ%«(6T½¾ öÕsr¹ ¿¿õN¹ +ØÑãŽjÄ“4y´Žo:¶ãî€ñR¸$uyÊÑåÎǾÙßØäþn¯‰µsD¼h<Æ™c?JÌ®ïn®!¡[Z‰šJõKúO‘ýØÛ©cì ¼¡3-Ma[Òþi ãЋ£11Û…Ÿ³Þ·Þ?áPgmendstream +endobj +642 0 obj<>/XObject<<>>>>>>endobj +643 0 obj<>stream +x­UMSÛ0½çWì:µ*9ÆÚm$˜^ “qm™¨`ɵe +ýõ]9†Ø’”a2g¬Ý·»oŸv÷Pü1ðlè»g=J(¸N@|p|ÿÛøÒúÀ¡a«úÌ!ÞóƒÃ°÷éÄÆ L ºë{&€(…0ÞIT Óá`7ü…¦ncj¡­ÅúÄFëÁøt†—²Êf¥HÊ Ûì“©Òs^Àµü²° Ú¸¶Oƒ›`ÀôÛl8:ÏØì,œÀÕN®„Ô¼(A+¸åwüé)ç’ dª Ô…×åÕn7i +–í. GJó}(9‡X¤eå6Ñ÷?ÄZ(¹÷ò蚣¤[ +#NßFøøÆ)¤ªÀЂÍôCnÂ'"Ž4/!‚(ojŒË\BÝ=ãÁÖxœaÚÎ+^ñ—ŽöÇ¿ñ +Ÿþë>†gG‹|…½÷Mÿñ¡H¶V9ü†õ-‹½Úí”;IÂÍ1¶¡¡íI-/xû>>t¹m+ª&Tr-£ŒƒM»M·ñ#˜¯ÝÎväx1…}{xÝ- ê—J›¬ñšYPÉDÅUÆQ`Éó:Ú9nSBÁ³¨¸éV«Ì€7Ðë„ï·…?­…ÿ&±_Œ†è½‰‘%Ý•±JxséÙ†õ­‚<ò2Æö¼†—ƒÉñãL8 +'Ýn·.úb*ÄJjœc8zþ=Ç6c +ÁËý®ŒZ~›Dd”r¼™ð(éâü— Òa•¦¼0 µëã”Z™üç÷Hÿ}R—JZy¡:¼²$6º]FEpÙòY³s,rlÖÃã$)×ôk/ÍB4ËgÁoöslâ¸Þ ìz»MN'7¿U¹Ùe_+‘ÔsÍbž_[[ –‹¦º¨b]¼NßñpŸ»>ª·ŠCM¼ã°wÞûvT8sendstream +endobj +644 0 obj<>/XObject<<>>>>>>endobj +645 0 obj<>stream x¥V[¢H~÷WœÇÙdd‰â¾âÆ´€ ÕmO6‚P¶µƒ”Sc÷¿ŸÃ­íNf×Ú]D±8_}—:UßFèø6`fÂd Ùi¤k:L ]3Á²gøÝÄ p¹dôëj †ä€Líp¸®É>=¬bÿñç/ä/fõðäؘ`-’:§yÎÊgž©„ºdÏ)TR4w­ñþURH ö\Ò.Lñ¯THàG @@ -1308,191 +1372,185 @@ x $;ÑŠ×ÃÝͲ6È×æôÓt8«ímQ »‰½;Õ1m»ø¯¾Õ´V±d¹v6rE8ë 7¬«œá~Q!ø§}aèO^°~RE´ñ‰–ì¥7Ia-ä–1è zOÔKîV»[5щ7+mv¬Ìù7WéÉíé£&: µ‘F‰[Ór¡Îf/ h|âFáaopkäzã&©„,-›nÐîN{±Ñª·×YÜ=lÁ]ßšÝ{,¥Õä;1Á]_'¦¡üw`ÿjh -â E¯­¡tßé¨Äm.ÐÂÍ:&Il¾tv -2f¶6ÏñˆØžƒbÇwXRlwüLE¿×,oûÃx9žéóë‘ b)êLÖ‚¶-ךYÚljã™U–Þ`ydt?úÌRçendstream +2f¶6ÏñˆØžƒbÇwXRlwüLE¿×,oûÃx9žéóë‘ b)êLÖ‚¶-ךYÚljã™UV{zòÈè~ôÌ\çendstream endobj -613 0 obj<>/XObject<<>>>>>>endobj -614 0 obj<>stream +646 0 obj<>/XObject<<>>>>>>endobj +647 0 obj<>stream x­VÛRÛH}ç+ºò[X‘lÇ—G°qU ›Ô¦Ö[ÔXÁ$òŒ¢دßÓ3òu¹U톊 ¤q÷éÓ}Nϯ½„bü$ÔoS§Gé|/Žbê ‡øìúølã%)/:ühçÅñdïýY—’„&9é ú4Éâ˜&é~üÐÅoüNu=—•p’Œ.IjW)ii.ªŸ2£w…IEñî`ò{MÀ"¶’NÔFÌýñ·›É÷ËÓ›“/çG£‹›Ó‹ëópz#ýêpü0i7󞘹PÚF4¹“TڿDzZÈŠ„Îø¯ð–JQ‰¹t²´Ú:šIº¸þü9zY»uÙõèbÒi?æªoQY—›j~£²'b-«üöetòÛó¡J£4°‘3¤ó…@¯‚¤¹øa*Výbu9–ÒÿK,÷XJš®ºEÍ”£\É"›¼òíÌ¥f>Çø½ëúb4ž\½ÐR»Hâä†[€Òk­R“I²˜h}K&'&ëµ½žå†Ó4x_ÊÔyjJ—“Å1øó¯PõSš)E–1~ÌÖ­t»Uu[³GhWêVC¯÷ÊÝ¡`Q9®×APãócº“"“UƒbH Ì '¯âN7heu":_]~$Ãâ›TB[‘:º—]ª²ê%BH§Ýz¬³3 X&P……‡¬’>┪Üö"÷Ðtx ×–×ê$k4Éç¶Ûôø䜚# V–R£³:u€ëKÚ×¾‚Áq?‹” aa¶Þ(÷§ÓËÑåétºm?¢ï¦¶“« æcf¨V“ ¤Ç*à〴ìh® Iw°¯BÒì5kß@ÁxL)õw§dP~^Ÿb«…]¤;€†EòAÌËBp)ªE<ïPJY±·ÁK×\zgõ&šŠªz$S»æ@ZË{À÷p£ 1ÑaJ‚B¼ð„#„ÍZ50WKg'írI¨ b‰â¸Ý㌠Ny—‚phéÐ'~'[oÇÐñZXôÉÏ ËÖ¡ µ’‡y'kmjµ¹¾Ínñtð3.@ðà -U€Í…üWÓpî„YDJ‡uãG è.Gô†Ì[BiJœî³CpÜéŠõY¶ÚNÐ!§æcŸ¼ëîT‘›¢0÷€e,O2€Pø¡€Oì¢çY iC ÓÇ^Ù\4ümg!ŠšÙ–¡nàÁü¯r1\8>º]âÂø\I[mqabeøQ—³ð”xºÀ“U~ KQek%®ÎAÞ¸™÷iîÂ;Ï÷%üÉÆ» nä»­m‰®‚kw' Dßj–EÖ¢ -ùÈÁØ:*¤€Ãµ·×Êt¿¬ÌLÌpA gzÀýBå­yƒiLq(³¬°?|ƒÇÎÞ,QX¯ +ÌXªÍ¦23¿Ÿ³&EØi|#`œXkŒsµí V`c©p¥Ó¢{_ÛÜ’µº{îúšñðEïë‡Ü?Ïíû³A³$’þ ê ‡ÔûÐo.ÀGçÇGt"²€¹ã~ú{v3¸Öòl«y]½qËvûݨß`#â;Ý„CNö¾îý©,—»endstream +U€Í…üWÓpî„YDJ‡uãG è.Gô†Ì[BiJœî³CpÜéŠõY¶ÚNÐ!§æcŸ¼ëîT‘›¢0÷€e,O2€Pø¡€Oì¢çY iC ÓÇ^Ù\4ümg!ŠšÙ–¡nàÁü¯r1\8>º]âÂø\I[mqabeøQ—³ð”xºÀ“U~ KQek%®ÎAÞ¸™÷iîÂ;Ï÷%üÉÆ» nä»­m‰®‚kw' Dßj–EÖ¢ -ùÈÁØ:*¤€Ãµ·×Êt¿¬ÌLÌpA gzÀýBå­yƒiLq(³¬°?|ƒÇÎÞ,QX¯ +ÌXªÍ¦23¿Ÿ³&EØi|#`œXkŒsµí V`c©p¥Ó¢{_ÛÜ’µº{îúšñðEïë‡Ü?Ïíû³A³$’þ ê ‡ÔûÐo.ÀGçÇGt"²€¹ã~ú{v3¸Öòl«y]½qËvûݨß`#â;]Ý9ì}Ýû©6—¼endstream endobj -615 0 obj<>/XObject<<>>>>>>endobj -616 0 obj<>stream +648 0 obj<>/XObject<<>>>>>>endobj +649 0 obj<>stream xÅVÛŽÛ6}÷WLƒ>8@¤ÕÍ·ÍÓîfØ8n­ê>еfV&’¶×ŸC]Ò…³N AmX–EÎÌ™3g†þÜ )À;¤QDñ²m/ðÄc?¢d<Â}„æTô®ÓÞÅ4¡0¤´€Ép<¢4'lJ³þThc_“´|m3%ÿ$\$ϬP’„¡-Ë9YEvÃi¶¸ù•Ì†iîSŠßOvnwÆÒš7ÛwFÈ{â2ÓÇÊòüeú©Æ@—æýŠsP:7¯H*KYÉ™ö,´µSÙQ˜À8•¨šØn-¹¥9ÛòœxNï˜ÌKNKË,?‰ÙÁ3\ºl Ë56"Û|õê"iÎò£K–e¯,]-fÈq»…_ãÓ3¶<:x¹#++•áÎÊùôÛxÑÐO\Ž©rdhnT¹çùåÉjù•A(Õ~2rP(VU Áņ=Bž WVÒúh¹iA;ä®,A˜Þ ‰LsZ­³ÅíjE\P¡à»~_Ü4tPñ‘•;¸3œK2Š DEA©ÆùZóRj¼Ó€&h¼(iÒ¢ö%$°hhʤùg8µ—݆:úú(xŒ†T1Ͷ¦c# ü±ãª³y±Â«Édµ* ÓUö¢[ûç;xàm¿ÆòÇ%p·Iâž^wÙ~ϹÑ{³Þù(v‡µÇ[ܵóÁ‹×Î/¦ -Qd×M^Œ¶ÊûÒöéäõð´ã¼Èu\ÿ/ÓöTSbÍZXË¡ãB•àÜuŒæÐ* ò€ÂÓ›Ì\sZ&M!x™ÿ}¢¥™„@½³G;ñKÕ¶ <{@QsfœWØ­²ºµÙ…˜˜SŒ$V–”xNnµÈ£æÖõjÇjÛÂxµ‹ùÛ–ˆÁ´ÚÉü—t)„h,ÓuNœ¡ß›Sç<½[^ÕQæ·é݇·æµzóZ²2¼ÒÐAØM+ÆÁ×æuM¦ŠI¶ë݈ë#Ÿ¦ÏX|dZ°5f„=VüÃ?fótüc[Çæ7¶òjÍoÙ'ôßžkƒÞ=ëëòð¬ÅÏC7È…üÈ£ÿyÔ"‡¬+%1Œk¹Û³HαŸµøy¬ÇÀ¾jNß©f÷´Ö;ä€8Õק[Y½<‹î\>ÉY‹çÿ‹B>ÛÁ#fI;L¼ï žÛ¸íæp4ö‡“ þ–Í ³¼z}EoøçP….¢·;‘ק¹×íõFÎ¥g¦n2JüÑpŒ¹ŒÕ¤Nä6íýÖûv•Ýendstream +Qd×M^Œ¶ÊûÒöéäõð´ã¼Èu\ÿ/ÓöTSbÍZXË¡ãB•àÜuŒæÐ* ò€ÂÓ›Ì\sZ&M!x™ÿ}¢¥™„@½³G;ñKÕ¶ <{@QsfœWØ­²ºµÙ…˜˜SŒ$V–”xNnµÈ£æÖõjÇjÛÂxµ‹ùÛ–ˆÁ´ÚÉü—t)„h,ÓuNœ¡ß›Sç<½[^ÕQæ·é݇·æµzóZ²2¼ÒÐAØM+ÆÁ×æuM¦ŠI¶ë݈ë#Ÿ¦ÏX|dZ°5f„=VüÃ?fótüc[Çæ7¶òjÍoÙ'ôßžkƒÞ=ëëòð¬ÅÏC7È…üÈ£ÿyÔ"‡¬+%1Œk¹Û³HαŸµøy¬ÇÀ¾jNß©f÷´Ö;ä€8Õק[Y½<‹î\>ÉY‹çÿ‹B>ÛÁ#fI;L¼ï žÛ¸íæp4ö‡“ þ–Í ³¼z}EoøçP….¢·;‘ק¹×íõFÎ¥g¦n2JüÑpŒ¹ŒÕ¤®êmÚû­÷v•Þendstream endobj -617 0 obj<>/XObject<<>>>>>>endobj -618 0 obj<>stream +650 0 obj<>/XObject<<>>>>>>endobj +651 0 obj<>stream xµUËŽœ0¼ó-åÂƆðØœf7ÏC¢\žlO,St¶ßÙúHžšliuá|û‘²A?ºÃø Ï0Û€û5Yxh¿RIƒ?Ì?®:i9Zñ.N«ŽH™ÙN´:J.Kl¡Tƒ4'“Nˆåù9—´”ÈûV ¾¤ ^уÆþ«ç40ôp; 6´¤örèhY#“ -k!QŸ>@Gœu…Çòß™µEÞ›cloý¢p «EõŸáú6×”æ‡/eÓƦKò’(g‘Ýl>oÞ]màÞa«öØkx=PYÐêwí* r[š³5‹¼w[§1K“Œþ5­Ækûêeá}ô~"Êð\endstream -endobj -619 0 obj<>/XObject<<>>>>>>endobj -620 0 obj<>stream -xVMoã6½ûW öÒ¤ˆUR¢õq*ìÄisH±M¼è¡) -Z¢lmôá%'î¯ï )fãfm§‹À#g8o޼ᗆ"‚ÒjÄ<"ˆ½DáÚÇ_« 7Hhûí†?oOÌ£Ÿ®à9 ã`Æ`‘ž%^àù÷àîãåßeú¨:È›£}é•î.p¡7M­Õ,‹:‰?»Hëæ©TÙJUªîΟ1Nøg쇞ÀHgŸn~[Ä°U­.šº’Ÿ­¡ 1Ý1Çe«6å´¬Hí.gì™MÎ÷Œ_ÜQÔß‚½#D·Û¨ÃΛZA“C·Vp{Op.ÐTÝWúäåóR®«ÿ 3åšam.‘ -Ì¿w¶z'S -|Äyƒ%Æ -Ê t8»#ÕA*1ÆOÈCÈ[¹*U½êÖ‡#€ÖÆÁ™ÉN‚V)ÝÐ}»¿A×ÊZÃÆ°öÄ[öÝúklö•xÄD"•eYd‡ïEûPdU‘ªõšÊ[y„:ã"™$â(Þ?‚îú%|ºŸÃbk;íp, U•Ä²ªÖ¥l…LmTõ - 2ü@¼ü`¹N7 âǶm“ûÜÔjs™ª—<Òo”¡qÝKî wHƒDB>/U«2ºt‡rqk¹Uõ–HÕP5hÔ­%V -âå0ôZeîƦÉ7¶GMí®Û­Þ¦6‰Uª±/ìíåRc¡ÓÎH˜¾¸¾Œ ÙùUÀÈÑZD“isŸÖq<çá|vml 9Y`KCEg^Ljc¸“#¸$0ñ4Ž'WLÐ Î/~9Ÿ §ãyœO!1g¾ûN~}Wp‡:!g¼[Ä+«7ñ»?l‚5r¹ëÔŸ<üë0+Äd¤‰¶ û.ߨ"²zPÞÃN÷J¼çÖeõ . ›ê )¸Üœvý‡A‡˜,s¤£¡ðZI"z‘d†'$—q]XŽ»1ÖòÂÙéuÓ—8’Œ.Sy‡aBg§éã>>¯®E=pVò¹ÓÅ?GT-Šª¯¬ÖT…¦1fdŒ¦ÐYà ï@t‡“ðD@lýT[ø(—ßË.µnÒÕ193…ì°+WmÓoPL&§Ó@÷È>UšÁdj³,M‰°ÎÞÂå:ÇuÃêbqÒ•ç¹;–ÄëÙåì_´mhîÓ ÅtM½Ãø¬Þ³Ç|ÖHVY>ÉF"¢òŸÎIV¸Ë2ž;\ø^˜$ø -hz?½MáJmUÙlð¿ô8aˆµcáûmÇCĔ—üj:…,D$¼(ŒñQ‡»BЧùbôûè_Q#ÜFendstream -endobj -621 0 obj<>/XObject<<>>>>>>endobj -622 0 obj<>stream -x½VÁNÛ@½ç+戸vHçÐiiËDÁ¨‡RU{¸µ½fwƒ¾¾ob’‚ BÊÎΛy3ófï{¹øx4ЉOQÞs—|Ïu4 Æø€?-)ÙŒ¼‘¼và'/¦aïß< ~0¦0&¸.…ÑÁíùeüüuþÙ°6C}ïèa|0ìÏÖV’ÈÒy‘ËÂR)â8-æÇ$æ"-Œ¥›‹)-¤ˆ¥®¼4`ým7G$fÆjÙ>noÎèúêÓïóDD²»Xæ$Š˜¤6©„pWj¾CQ–r0©¡¥A4È€-L"õÛ [HÔBi”¤D¦ŸÔämÒÎÙ›8 Ñ9›lOãXKcèúÇn¸.õ~eÏåð|Êd1·‹vbªsfÄ.$WPr¢lÉ¥¡b™e¦ò´Vu—¥TºªGå¥s IÌÔƒ1õ™$îã]T3Cù^jüŠški¦)*ÝPÓtâ5ŒúJU€}¡Ì¸D‚<7,T-ÈQU–e¶F¯F¥ÝÇv.VÖ¤hD(üû¥4ÿ9Üéóº€p©ßÒåÉðFEó4n¯Ð£Ôj7×ÐŽÈÈH1æW?M`Ý“íN™L¾Á[µ&ßP,M¤ÓÊ,…Æt5Ù{iÌm˜#Øefë¹lZi[8)ØÍÐ:˜¡ÚœîÜ•ëÝvpøž©@ªÈÚ‹SW»ô‘DÉÒîÍ`ãYUtyæógÏ…B0›ŸL)£4IeÜ sDêšuaÅê©áöH>W¦¹IõÕD«¼ê­ñëÐÛq#*÷—Рý¢’c‘a}5zZ©ÆKiaÉ—ØEkRæ›ïW5aK·¸ex|³LE ¬ vÎ9w&c—3Š…,j¬±uG¿º`u-Ñr+W@l„í)lŠ×Ö”Æø‰ ««ªw–·FS%¦¨=!UJ]ÔÃÆæ:=C¥8m~!„W[úÔûÕŽ?™?ⵃ{sz1=¥Ï¨LÆ€†¾.‘ GÕolûcwò¼ŽéÛÓke'c?ÀÈŸ:#¾tö¾÷þo°¬Äendstream -endobj -623 0 obj<>/XObject<<>>>>>>endobj -624 0 obj<>stream +k!QŸ>@Gœu…Çòß™µEÞ›cloý¢p «EõŸáú6×”æ‡/eÓƦKò’(g‘Ýl>oÞ]màÞa«öØkx=PYÐêwí* r[š³5‹¼w[§1K“Œþ5­Æã¼½,¼Þ/"Ôð]endstream +endobj +652 0 obj<>/XObject<<>>>>>>endobj +653 0 obj<>stream +xVMoã6½ûW öÒ¤ˆUR’%êT؉Óæb›xÑCS´DÙÚèÃ+JNÜ_ßRÌÆÍÚNFÎpÞ¼yÃ/# ÿ8Ä>¤Õˆy Â@x„"Ƶ¿VAn6‚0¡í·þ$|{b¶ýtç°È1H$bXd€ƒEz–xç{܃»—”é£ê oZŒö¥Wº»À…Þ4µV°,ê $þì"}¬›§Re+U©º;_|Æ8ÑKœ±y!F:ûtóÛBÀVµºhêJ~¶†á`ˆéŽ9Þ€,[µ)w e¥@jwx8cÏlòp¾`üúà~ˆ¢þ®ì!ºÝFvÞÔ +šºµ‚Û{‚sæ ê¾Ò'/Ÿ—r5XýOh˜)× ksˆT`þ½³Õ;™Rà#Î,1VPvX ÃÙ©R‰1~@AÞÊU©êU·>‰´6ÎLv´Jé†îÛýí ºVÖ6†µ' ÆزïÖ_c³¯Ä#þ ©,Ë";|/Ú‡"C¨Š¼P­‡ÔTÞÊ#Ô“IÅûGÐ]¿„O÷sXlm§ŽE´ª’XVÕº”m¢©ª³¢^¢A†ˆ—¬3×é¦A|a{Ð6¹ïÁMÝ©6—©zÉ#ýFÙ×½ä¾p‡4H!äóRµ*ó¨Kw(7°–[UÿÐa‰T UƒFÝZb¥°!^C¯Uænlš|S`{ÔÔîºÝêmj`X¥û¡½½\j,tÚ)g^_ +Cv~ð(f´ãÉ4ܧµsÍg×ÆÆ“¶4Ttæ RÃÁ%S!&W,¤œ_&ür>N‹¹HŒ§ˆ…‚3ß}'¿¾+¸C3Þ-â•ÕƒøÝ6Áƒ¹ÜuêOýu˜Hb2ÒD[†}—oTY=(ïa§{%Þsë²ú—B›ê )¸Üœvý‡A‡˜,s¤£¡ðZI"z‘d†'$—q]XŽ»1ÖòÂÙéuÓ—8’Œ.Sy‡aBg§éã>>¯®E=pVò¹ÓÅ?GT-Šª¯¬ÖT…¦1fdŒ¦ÐYà ï@t‡“ðD@lýT[ø(—ßË.µnÒÕ193…ì°+WmÓoPL&§Ó@÷È>UšÁdj³,M‰°ÎÞÂå:ÇuÃêbqÒ•ç¹;–ÄëÙåì_´mhîÓ º¦Þá |VïÎÇÙc>k$«,ŸäN#QùÏç$+Üe)†ç}/J|… 4½ŸÞΦp¥¶ªl6øF‚_zœ0ÄÚ1ñý‡¶ã˜¡"fÃK ~5Bazq$ðQ‡»á„>Í£ßGÿQ-ÜGendstream +endobj +654 0 obj<>/XObject<<>>>>>>endobj +655 0 obj<>stream +x½VÁNÛ@½ç+戸vçÐiiËDÁ¨‡RU{¸µ½fwƒ¾¾ob’‚ BÊÎΛy3ófï{¹øx4ÐЧ(﹎K¾ç:cü?ÀŸ–”lN¼'xíÀ †/¦aïß< ~0¦0&¸.…ÑÁíùeüüuþÙ¨6C}oô0>õgk+Idé¼Èea©qœócs‘ÆÒÍÅ”RÄRW^°þ¶›#3cµˆl +·7gt}õé÷y""ÙŽ],sELR‡TB¸+5ß¡(K9˜ÔÐÒ šNdÀ&‘úm­$j¡4JR" SOjò6igÄìMÐèœ8›lOãXKcèúÇn¸.õ~eÏåð|Êd1·‹vbªsfÄ.$WPr¢lÉ¥¡b™e¦ò´Vu—¥TºªGå¥s IÌÔƒ1õ™$îã]T3Cù^jüŠški¦)*ÝPÓtâ5ŒúJU€}¡Ì¸D‚<7,T-ÈQU–e¶F¯F¥ÝÇv.VÖ¤hD(üû¥4ÿ9Üéóº€p©ßÒåpx£¢y·WèQjµ›ëNhGdd¤Šó«Ÿ&°îÉv§L&ßàÆ­Z“o(–&Òé e–Bcºšì½4fƒƒ6Ìì2³õ\6­´­FœìfhÌPmNwîÊõî;8|ÏT UdíũΫÀ]úH"Šdi÷f°ñ,Œ*º<óù³çB!˜ÍO¦”Qš¤2î„9¢Fuͺ°bõÔp{$Ÿ+Óܤúj¢U^õÖøuèí¸•ûKhÐ~QɱȰ¾=­T㥴°äKì¢5)„ óÍ÷«š°¥[Ü2<¾Y¦¢VP;çœ;‹F‡±ËÅ +5Öغ£_]° ƒº–h ¹•« 6Âö6E‰kkJcüÄ…ÕUÕ;Ë[£©SÔž*¥®@êaã óN:=C¥8m~!„W[úÔûÕŽ?™?ᵃ{sz1=¥Ï¨LÆ€†¾.‘ GÕolûcwò¼ŽéÛÓke'c?ÀÈŸ:>_: {ß{ÿoº¬Åendstream +endobj +656 0 obj<>/XObject<<>>>>>>endobj +657 0 obj<>stream xµVÛrÛ6}×Wì¸/r§b¨K))}èØ­›x&Q\›™ö3ˆ-ÔI d÷ë{ ÑvT硺Œ(r±—³gpßRˆ÷¦#G”nzaR4‚MfS\ðÕ’r÷àÇpD/=OgÏWœÇ½7¿Mh8¤8gïÑlJqFˆ†§}A•H拉LV²Èda©,È®$Uª’Tˆ¤¤_ér)–ëG÷@Vê\¤29%Qdî^YQQo–R'§§ñß9oBs0šDíσq0 f]_ýò×µ4‹Roèú¿"jV„°¼ýçËE<‘X¯Ët…°Þð šÁÙówdÔ?’ÊÜecl½¤LXAª å£•¦Â%Õ.å È*-MZ¢´‡£aØ «ScOŠqS¹’X†L4쾖ƶ€´å=‹=£T©\§e}¼Bo† °û‡ðÎ9_½•Ù1ì9º.TàC–©âöbß“øóÍÅÛ+GŸcÞ™LZn„½tÛ"-«õ£_ª€99dÆÃ/T µîúfz0…û1Ü‚±ìPŠtÕ:^ÄnÎ/ñ‡Oï>-‰3ÇgÃ+ í”]½íxÀºÀ½ºQ™Å-aš Ì¯®g­¾îEK[k¦P&½ÑWa˜¸y¡sàGoüÏYz×õ¼G“åL (†›c]¦ÒÆGS¦ Ü-nO¡Ÿò¤/ƒ[J’«Ë«‹$Y¡«ÃÍ0‘ «EarôÎ<‚ù'Lré²FØéKVC×)Šƒ> ¬$µ®Jý*5e%·+eŸº¸+Ê]tq<èÅ¢´ò­sÒH†Cáæã9Åœ”Hm;gìŽ'Ógmw%ÕP ¶ÐX­1—.ãsÊ•6–×`ŠÂQôgpP g$æ;cþ—«µ¤ô?¾w2ÃÀ¸gȧ„zþy˜”©ÊÂHWÙÖ³‘,†6âÁ²ŽýÀWÚ) ¬kÛ­ÂEÓR'16Î óí"±ä¸¬Qæ“bZ÷Í ä=#é±8„ÖÛRÛrßñƒ#q›­r¿Ü·}®M0ôF;)…BøÜ®¾îVÂõˆE·Þo[ÒÒ±úI…,q -Ô[Jl~GBQŽÜ¾Ä¨*&Þ^©32%åB£4§=R…²J¬ißÕFÉÅxiû9D°-ò‰ÀtÄá$ÁËO[’½5Ûô„KêlÕûÑêXƦ±~qS阣eúµ®1øæõž½Lü?¾wwæ õ·@Òî ¯Mý‰ý¬9§ '8‡Íç8Q¹ÈÍÙÇó3úUnåZ€a~WƒlÜÔÁ3¶LÃù—c½—"[L¦“`Ípľ6‰øÖEÜû½÷/áfêRendstream +Ô[Jl~GBQŽÜ¾Ä¨*&Þ^©32%åB£4§=R…²J¬ißÕFÉÅxiû9D°-ò‰ÀtÄá$ÁËO[’½5Ûô„KêlÕûÑêXƦ±~qS阣eúµ®1øæõž½Lü?¾wwæ õ·@Òî ¯Mý‰ý¬9§ '8‡Íç8Q¹ÈÍÙÇó3úUnåZ€a~WƒlÜÔÁ3¶LÃù—c½—"[L¦“`Ípľ6™ò­‹¸÷{ï_ápêSendstream endobj -625 0 obj<>/XObject<<>>>>>>endobj -626 0 obj<>stream +658 0 obj<>/XObject<<>>>>>>endobj +659 0 obj<>stream xUïoÚ0ýÎ_qªö¡•ŠIBH ß -[¥µ£%“ö¡Òd’ d;µü÷;ÂÒ‚4röó»»wÏ/ z»zÐ ^4æ@Çí±øÝ~{ô)Rp]—¹: ß?DÖ0×…(¥3‚nQ„ï8ÅçRãD3„§Ñõïç¨!-ù4G1Õ3Xàb‚%d&’þjZ8ÈDOøR¡ÒÀé·}ÐçB¾æ˜L(4,* ÆRhž‰‹èOæÛf}n0Öè2µˆ´!£ìˆ$\óK:.Ϋ$SÞa6Cž`É bkèo²jzó öšÖ•Yà2¿íAÓ Y—¾Mp“¡ 7 ¥€9A§ŽÑf“Š nFUH¡ð¡U ÝöÀ%²)¿bØöj†=ÖfÑ÷q¢’ Åc | Œ²ó6Ý<7íS¦!"F šÒ¦Œ¸‚æs U1SPðò“ n•æ“c0Ö’N4‚I³aFjËñû§ª¥²³ì’JBâä0&EoKß,Pºš %8o~ÛqAÇv·Ó K~$ó,^ÒZåï’[GVÈi_\[~{+× Í–K¸©„ýcÔ% ŽÙ‡¤:Ôë\ªÊe¿këŠõêo0Í*He¹ÍgbF6]Öe§ŠýZ[»~³™Ìwe´c´ar½?8o^¼zm[ÍÝð‡å: -ç„'ànEµÀÒè!*É·HÈ7rAÆ¥ŽÃZ§Ø&{ÀÒªfŒq‰ú(Pšžà÷]ÊyUÀøîæ8£tmŸÖm d¦áҩܬ†Žfå8«¬6ngšØ&…Ç2F°÷³µ_²ÏÚÛöŽ*V#¸òˆIæ²4±$£»b)+ȳùJñ­aw}=¸a—½~‡u\{Œû÷ƒ>Üà_Ìe¥‚¯IÚ߬W7C§W3=eÉ~è³0èÒõJ©ùVm·Qã±ñŽ 4žendstream +ç„'ànEµÀÒè!*É·HÈ7rAÆ¥ŽÃZ§Ø&{ÀÒªfŒq‰ú(Pšžà÷]ÊyUÀøîæ8£tmŸÖm d¦áҩܬ†Žfå8«¬6ngšØ&…Ç2F°÷³µ_²ÏÚÛöŽ*V#¸òˆIæ²4±$£»b)+ȳùJñ­aw}=¸a—½~‡u\{Œû÷ƒ>Üà_Ìe¥‚¯IÚ߬W7C§W3=eÉ~è³0èÒõJ©ù]ƒs5ÿŽ4Ÿendstream endobj -627 0 obj<>/XObject<<>>>>>>endobj -628 0 obj<>stream +660 0 obj<>/XObject<<>>>>>>endobj +661 0 obj<>stream x­T[oÚ0~çWœ·ÒixqœÐ—‰Švcj¡wOH•IÌH µ^4í¿ï8÷uÒ@(Æçä\¾ó}ç±AÁÃ/…ȇ€A2oxăv;"!„q„gJ¤2„,À¿» ^HØ.C@=âï2PÊvºû”7>w€Rà,—Åð°TÏž4;$ ŒP7ò±”Úóôgoþ-ŸaLž6¿û½ÎÖVìºE,Íãr2‘ E–©Ö£´Vïý[~ã拉zÂH¹˜KhA™gI‘JÐFeù|eìá93S0ÏFGú@¾áé·û.ç7ûã™SŒK#E»ëxp xŠ%§RgJ¦ ’Dê:Ør~ì uØû{½(r-×Ûðà ü«áÅý×Ao·]Ä~–%¯0y:Ûµ6%M©òý±0/dyš%±]®·d˜@¯bŽÞ¶°%\—R½B?ŸpUU³Ý‘¥_sPy|*1ú&3¡5Q-˜—ÚÀX‚Am™ 4ž…±NöN9¶‰®ElÛè=¼þ¯ÐZzP¶Ú•nGM1Óˆõ±}¯·´E˜ˆ¼‡0Qk™§ERÎ%j5…÷K÷_º[Nm¥åjÀÕ–דó óÆ'?t²Ð¨íd £æŸW*8^\‰±%P"´„àÄbµyÛÞ¼ý¹áÕ^Þ÷çCH‹¹Àšlš0“Or¦!”´1»ÀÕ½¤_]ïJª_uPŸâòÆ‚œ¨?è„!Ê]ÜÇN:±“ÎYŽóP(9à ÉséUåm,|Õ¯$dUo|¹š­[½¸óä‹QRa„#W\/pÅ„u:Às°Þv/O»Ð³P ©4|)³´Ú%­¥o+òpd®tæJ.d¾¢÷0 -IÄbÝÂئ<ãëÆo>“âendstream +IÄbÝÂŽMyÆ×ß>â‘endstream endobj -629 0 obj<>/XObject<<>>>>>>endobj -630 0 obj<>stream -xåTMoÛ0 ½çW=¥«’íÚò1mº k»Å»4IA=8R*ÙC¶_?Ú²·´u³Ým¡øH¾÷ÈûŠy Ir3£„ÂéiNRHyŽ¿cü: ë>æ1ɦñs–§Óœ’ø1ÒY9;yScP®±«ŒçP*ÀŽ(…RÎ ’NbŸ´ßZãõqù ²ß Qœaߥš~U&q§CÇ‹X‚E1N!mÚv¢©¬iM£wÍC¼h?ãeˆ«´Gº„z%TãZß@eÖÖmúà9Ý´ÎvÇ;)eÇ>2zt­@Ù¨Œ?ßJ©½GÔ@*ª€L®¡'!aÖN€‚Àåj×[m`¥%•ÿÈÅl½ZaZ÷­öóQ T` Bî%ñŒï×þWâ·FY‰ú£ì¯•ê¿ƒê-1ŠÌtGÏ{%éà1´ÔøÞ ‡ü…>Øw£Á^çµ×{ÒXøî±³&ÎÀÍõå—wWËçWckëJþ€;aT­¡±ðUƒìJ¦k‡‘÷œˆõ_bÅ¿6@=Ò*ÂÃfn碮á§vÖßwLÒŽÙ•Q• Þa‹Ã¸|8{,ç$+ -Èï¶rµøp¶€¥þ®k»ÕÎÃÛ¶ -;/£œãó ÇÅp+5”ÝaÂÓ± §£«•â‰Ï3ŽñÓ¢û뢜}œý8-Ëendstream +662 0 obj<>/XObject<<>>>>>>endobj +663 0 obj<>stream +xåTMoÛ0 ½çW=¥k’íØò1mº k»Å»4IA=8R*ÙC¶_?Ú²·´s³Ým¡øH¾÷ÈûŠy Ir;£„Âb‘“Ržãï¿Næ¤yL²©@üT€åét§$~ŒtVÎ^½.€1(7ØUÆs(`G”B)çI'1Úï¬ñú´üŠ Ù¯„(ΰïRÍ?½»*“8„Ó!ŒãE,Á¢§6íV;ÑTÖ€´¦Ñûæ!^t˜ñ<ÄÆUÚ#]B½ªq­o 2ë¶}‹GðœnZgŽ »ç”2cŸ =ºV ìVTÆŸ€o¥ÔÞ#j U@&7Г°@k'@Aàr½„ë6°Ö‹‡Ê¿e‹âN¶^­‚°N­ûVûáÙ¨*0Š… !÷N€øŒÖþWâ·FY‰ú£ì/•ê¿ƒê-1ŠÌtOÏ{%éà1´ÔøÞ Çü…>8t£Á^çµ×{ÒXøî±³&ÎÀÍõåç·W«§WcgëJ~‡;aT­¡±ðEƒìJ¦k‡‘œˆõŸcÅ¿6@=Ò*ÂÃfn碮á‡vÖßžvLÒŽÙ•Q• Þa‹Ã¸|8{,ç$+ +Èï¶r½|¶„•þ¦k»ÓÎÛ¶ +;/£œãó ÇÅp+5”ÝaÂÓ± +§£«•â‰Ï3Žñ´û뢜}˜ý7ÞÃendstream endobj -631 0 obj<>/XObject<<>>>>>>endobj -632 0 obj<>stream +664 0 obj<>/XObject<<>>>>>>endobj +665 0 obj<>stream xÕ•Ýn›@…ïýséT…²kº@ï9i-9vÓÞ$‘…a¬ÐKXˆä·ï`Ö?$&­Õ´ReYBÚÝÃ93³=ý8´g™[˜lסgNÿaµY°»8óL÷Ø &˜i?]8÷{ï.=`6ø+z»pé!z³eö=s`2fÂd>„‰”?ªæãÑüÌÿNÇ0Ö3¸CÇúSYâȪtYYĨ ÎȱÊe¦ÒJ•°DPAŠ¨çû*T¥Ùh“¥¶K¶I]{!7׸ÙúÜ…hv~žMŸ¦£fÝÖJTSƒ ¨˜$UÇÉe‡k¸²(Á¶”q¸÷ëxêx·ÖAÜT¾ÍÆ£7Ý"UÉ°J©lA$Ó€ G…†eµZaA^cZ)^W?«ûpÚ nÂÞA—iíVA)ë~'Ä ¥ªrÝÚc Í®”·­¿¯C—Ô–ÀVÃÂû ¸aâ®»Ú¡LóKLÖí LÀr]¢zÂàF·)ä5… Øí®X`paêúâ²Û‡X õ³wßJ[²•îᶟĪ&*XÊG¼={Aö>›™¿äUÃÂ[´ü²Ê„—¢Š¬ ™nÈ[h×G÷ý(Uš¥H“Q`YÍ[ƒ&d‡Aª -CTª ²ÉÆ ÛÛùGÜÌâ)}ÂúÀÖtÍß¿ÆÜü?‡ñ ½|¥Of?ÊŽN\WßQÌæ¦ð<} ÷çëó!Œð™c¡àcG›»Ê`Ž»Ùi8–·ƒãøEm;¶é—h#ˆÞ[u¢ ¿÷¥÷ŽçNendstream -endobj -633 0 obj<>/XObject<<>>>>>>endobj -634 0 obj<>stream -xµ–ooÚHÆßó)FU_$§xëµMßœÐj \pÛ“šª2ö8¸5»Î®–o³‹IpKH«ÓE <ûÛÙgž™å¶ç€M/B¼ÒuÏf6ŽÍ\ð£>»ô/róÀ‹<ýøà<î½x€ã@œ+ˆBˆ3 ŽmCœž¼¿œŒþ8¿PßÑN–ãÑqvÒðL¤Íydbx²FX6yŽ*QÐ#¹ìv±ö ³Átü‘7ëÏĪOo¦Á -jK„Rˆ¯´eS±#ìt•ÈG€ì—›šèäI©°Ü@-®ÊDl1ªe“ÖÄ?·ö[5Ìa܈ùZŽ>ó˜ã2—ÁªJp…Ýìl°Ü`:ºœ~¾¿~ü´­šIGä)R!;b¾›ÌbÏ}œ¹§3\Ÿ”…Ò§K–â¯O»™v°¿c‚_.üÿ”«Ñu2úEKµ"S ’K±¦ÊÝ6¨ê3èÊsÌgÿõ([µÆH.ãÔŠ<+Rr Õ¤)*µ­YšTw«åù;ãù fãøâòÍå d•B¬í›¤5̨k2˜UëÅ]k/†,жWJ[ÛLä@Ë -2/ÔÉWä 8Ô«BAEH$¾ÒY8Ì÷\Cˆèu²$ÁV@*8GCнZ{2>E͈$òbz^SÈ?ק …@›ÊM¥X%J}2SFkÊÏ ˜¼ÔtJ#áp5šƒÀ·¢^²™5Ï®éo>™õûN„g µ uyQ"¬ž•ø3»à7?‘œ:¸/ üe4 ¨(úpöwß³mƒ´ºùê€aYÐPƒá*)Kä7HiêÅb°3Yç™ÉvòŽææÃ-v]¦žJÄRŠªoqÓ‚I!Í4$Ž»‡h…Ðßï­ÉݬËôÅ{”E¾¹O]"Uã!í…¼ƒù­ -ƒaò¾ËÚ„Èø)ì` -â†óöwÓm¹yþ·#° Sv]»-ðO–a^pjÎ\HZÐvÈUDÜùŠúJntãhaöïÚû»à #L›¾uíï¶ß…uƵƵ™·-¥Kv<ÜÕè8¦½|^õ&¯û’çxÛt¢ö–u|—ý>!]±‘§GÂb0=Àï°JoR^/³œ02ÑVh÷uh{-›î¸ Me¦¢§~è³0ˆh˜RàKG¯ǽ¿{ÿí\¨kendstream -endobj -635 0 obj<>/XObject<<>>>>>>endobj -636 0 obj<>stream -x¥VßÚ8~ç¯éÊž MBB߶ímµ»{W¸¾”SåuâÛ`ÓØÙ”ÿþf‡Â6ÝV:!Áóã›™o>óeAˆ¯æ1ÌRà»Q„ÎÒ …$›ã÷ßµ€Â$Ù« :˜Í²a8I‚xÈ# -r¼Y^^¥E°.VšÍaB -CXóñru —-!~}±þMoŠÐ§Ñ ­óqø5,ºÓ>Ðôô˜b,õV+x«•­uõ|(Ñ…Z@”&jøADPÄâK#Œ…·%«*¡¶Þ­GÂ4¦RÆ·ÚŠ×P¹üFÔ¢ÅvŒeµ5ÐJ,ζ^l6/€—¬fÜŠÚS9HÍ~œ. -›vXNóJ -eÉÞ–vŒ—R‰ (mÝ &v's©¤•¬‚%S7L±-æÛ3cZ]çP2SN€m™TXk[JŽhÑvUSNiL#òÉ“ô®L¹Ÿ”´FTlÆ•n}Y›‹€""áZYUp/8Fîc¢%õzÕõíÏÕJØÍ…Gã¼NãH3Ša¤pÑ©¶O `.ƒø]üЭƒnÀj`UËr½èÆ‚…šÕ±›± (€åÍo  ÷Õ·»«T8k¬íIV VJ¿¾¼BjyºOãì”XH-O«Îð”L~êï®ßýÞ­B£rÍ›’Aäpß SK|tˆ¾­ÚÙ†ü}{½ZˆöŒ¾’\çÄàÚ·÷ÿ…õäýå°´$Ÿ²~ŒÖ‰ØÄ VI¨½¤QÙ¨æêIçLsoh:¨Ü ï8?[‰ÕžñaÍózÓUô3½XÞ½ÿ|}{u×lH2|×¥}Aì"Rºóé)v¦gÛy=‹æø—`±€tã¼ûV—7o.áx•ÆkÌÀûÓPØio;‡‹_¹Y“yÌÓ ·ã¾rìÿc=úkôxf•4endstream -endobj -637 0 obj<>/XObject<<>>>>>>endobj -638 0 obj<>stream -x­VÛrâF}ç+úW,Y, y·ÔVÙN²(Oë”kzé[mY +V[„JCôa§ÞÅeùrÑ&BLFÔ‚8aB/øŠº‘Bãq…IÖžäs¦¾>!C£Z¡:¤öÿ‚«Ù’˜ÕvGA%Huß-jãïð]ÛªÐX%H¶T¢¨8ѤA[ÎQëJVÕ–Û2eÅBȵè -%†ˆ”Ò…’.wü¤!>ç¯_ž~kOœ2¿Ž´ÊiÙ•põ®¢J”òø’#‡õ¦ò‰§ÍOV’Û%!ƶ{­ÁüW»ýz7=ñ£Ô­ü¼XÈã— °¦A¦HÞ~¦iHZ/¾ ?lL¿cßzÇŽ2và[]µžñ§AçO“'x”3éå²ßh®û®D¾W¯$,åÖD®Üº([½º‡Â[-9ÆεæLÏý|ùH(¥òâîì—ôYÈ%9D§¹Q·dbÚÓÙxLÿhýéäéfw¸ÂZ6HTýjI7U°= £ñ~#yÇìÕàWã`8‡Ùˆš’^§.Á}Þû£÷/®Ì„endstream -endobj -639 0 obj<>/XObject<<>>>>>>endobj -640 0 obj<>stream +CTª ²ÉÆ ÛÛùGÜÌâ)}ÂúÀÖtÍß¿ÆÜü?‡ñ ½|¥Of?ÊŽN\WßQÌæ¦ð<} ÷çëó!Œð™c¡àcG›»Ê`Ž»Ùi8–·ƒãøEm;¶é—h#ˆÞ³:Ñ…ßûÒû ŽñN endstream +endobj +666 0 obj<>/XObject<<>>>>>>endobj +667 0 obj<>stream +xµ–_oÓHÅßó)®íªüÛáe•&hÒlc`%Šc_7gƱ ùö{gâ´1¤)hµ­ªTõõoÎœ{îLo{Øôí@è‚@ºîÙ̆À±™ ~Òï.ýH„Ü<ð"E?>8{/^à8çÄ +¢â ˆcÛ§'ï/'£?Nã/Tä·E´’åx´Dœ4<i³F^c™X'ž¬–Mž£„JôHn»U¬}Âl0äÍú31dêÓã‹i°‚ZÀ¡â+-ÙTì;]%òã`GýrSÝ‚<)–¨eÂU™è-&#PµlÒº‘øçvÁ~ë†ÙŒ1_ÛÑgs\æ2¸BU ®°«ÎË ¶¥£Ëéç«ñëÇwÛº)‘|Dž"õñ²cæ»É,öÜÇ™{>ÃõIY(½»d)îðú´«´ƒýürãÿ'­Æ×Éè#ÕšL VdH.Åš:wÛ ªÏ kϱœý×­l3ÔC"¥ŒÓ(ZPð¬H) +T“¦¨Ô¶G=R=­–çï‚ç3˜ã‹Ë7—3U +±Žo’Ö0£©É`^Tmwc¬³²@Ç6^!(½m3‘½VPx¡N¾"Á¡^ +*B@"ñ•Vá0ßs !¢ObÔÉ’ [A©à AÏjMìÉ|ø #’É‹éyM%ÿ\Ÿ2h-*7•b•(õMÈL¯IŸ0;x©é$#áp5šÀ·¢^²9kž]Ó×|2ëÏ Ï,jA+jyQ"¬ž•ø3»à7?‘œ&¸o üetPSôæìï¾gÛiuõê‚aYСÃUR–ÈoiêÅb° Yç™Q»@yGçæÃ;ÚìºL}*K)ê¼ÅM &‡4{Ð9î¢5Bÿ}ÿÏšÜU]¦/Þ£,òͽt‰ÔÙ yóÚÃä¡|§Ú”Püv0… qC›yû»r[nž?Áí,(”ÝÔnüSäG˜œ†3’^h'ä ŠŒºN&îrEs%7zp´1ûwíý]p0fÌߺöwÛïÂ:ǵƵ™·#¥[v<Üõè8¦½|^õF×}KŽs¼­œ¨½eßeA¿AHWläé#a1˜ž`„wXŠ +¥‚7 9¯_³œ02ÕVh÷ui{-›é¸ šÊœŠæ8õCŸ…AD‡)¾4òÇqïïÞ¿íf¨lendstream +endobj +668 0 obj<>/XObject<<>>>>>>endobj +669 0 obj<>stream +x¥VQoÚH~çWŒt%'pmãÓ·´½T‘HrW¸¾”SµY¯ñ^Ì.õ®ãòïof½¦ºi¥SDxö›of¾ù–/£Bü‹`Ã,¾…Aé, RH²9¾ñU (܃${dCf³løDœ$A>/XObject<<>>>>>>endobj +671 0 obj<>stream +x­VMsâF½ó+úˆ+–, , 9á¯ÔVÙN²(§uÊ5µ@AÌhç¿OÏH€°ÁÙCŠ¢ +ÄtO¿×¯_ó½CD¯F Rà«^F&ƒpÃñˆ>'ôV…ÿá:JÂôÔƒäútD2ˆ)Á‰Tñ =j4“÷7Yïêaq YáêLÇ#Èr Z£2ÞçU‰ÂœUÜVÌ`\aNJVé‹ìoŠNÛè€Âƒx@wdyÿÏ/ÏÙøÛ_͉Nþýšåy)æ`$ ƒ·­A`U9°)Í´aÊ€,`öt d9ªð?.$çï8-*6×}–T¼CÒ>/XObject<<>>>>>>endobj +673 0 obj<>stream xÝUMo›@½ûWÌѩ–/cÜ*ç«”:jŒ{Š„,ÉVx×YÀMZõ¿w†…[D=U•jd ¼ÃÌ›·oÞ>Ž°ñr`ê‚@ºÙ̆À X~8Å{¿šCÞ,x®Ç¡wâ2whÁ ýá…Àcþá 'ÑèíÅ ¢Qᢠ‘mC”ŽgÌÇËapÃk^VGÑ7Œ^â-7ÀœQ6^Î?Ç—‹‹kà·ØŸåxˆ#Êd‹ ÊJ×iUkn"»Ò…º¡IfªºTµÜ(Y¶±e¿^_ž½y½f-3•Ök.+žÁ]ç\ÃF |Ôû4å;¤§7çgËד–\o1Oªy†‰ER” Úÿ*±æØa²Þ@²ÙðD—P)¸ã î¥Âxf²Ú0#ºMÏH0Ñ#r¸o“BdqÙn(ÔFúlÜ~\ÿyð ígu¹ˆœÀ>/XObject<<>>>>>>endobj -642 0 obj<>stream +674 0 obj<>/XObject<<>>>>>>endobj +675 0 obj<>stream xÕUQoÚ0~çWÜc+A›„iš+« ¬ÅöÒ-|` JhM„T‹°èÿz<=?~G…=T¡ñ„Ý€õ:Ò|µÂœ]˜_`{m7žG¡äóË:ÜšÓÿPX'ô Tyf†ã‰¼Ï’'’YίœG‡W\ 93¸Nr{–|ÿiŒr2Ÿ•‡¿—?q¨åv»à¶©åëé?íû=¸â;ž -Ô•„ëm›Ñ×"žoö¶<»[Þ)'î^Çs,ÏõñæE׎®Ó€5n?„X8bendstream +Ô•„ëm›Ñ×"žoö¶<»[Þ)'î^Çs,ÏõñæE×3µ¬qÓø „b8cendstream endobj -643 0 obj<>/XObject<<>>>>>>endobj -644 0 obj<>stream +676 0 obj<>/XObject<<>>>>>>endobj +677 0 obj<>stream xÅUïo›0ýž¿â¾µ“ -Cø±/Q«nS¤6Òö©&œ„•Ø)6Ͷ¿~g 4Þ˜TiKé*_Þ½{çw~¹ààŸ !/€t3rlƱgûàG!Æ¿%ƒe}@¼1þûÛÁU2zû!ׇd‰XA„Aˆã8¤ç±=¶‰ ‹Ë[¸+Áß$ß0?×mò-bþùL(ö64]眧9ÇÊr+¸ÄX¶d)ËX?@íœÝߟAº¦%M+¥­°H€Ü;ÀYòŒg¹àps;K”xduHœ:4jPìS­H]œJŒV^åÏŒë<}T²§ŠIu¼V%YÙ1o² ö²ÚЇÉ5¨:^+Ú)5-5Rº6ÌJÙöþy:KÜ 9ö[¥q¼–ëÙDkã|w—€uj*ÖaòX« ¤¢âʤdâ̦‹d~šÔáì_ÓM¡£—Gwç64/d!z{B¡=rº'ZbÇpêx¡ÒAÀ2Œ8,¦× 󟬧?íŠ;™g_uÞ—Óô^/@,µù:L±ÆP/N5g‰T£»ä ~`K³,ç+Pü Xh‘¯8ìrµ©h©té½Öµ³zŠö‰Ýy½G™¡ËÜ-‰Wa´Û¥ÁÀÕX¹Vƽ8o7œYï` 1®½ì¡—÷HZîÛÖœá?ö#R܉òG®pƒ*+©þÆ4Û;¬_ SC³Ùoý»µà #;ˆcÂv}ãô®.áš=³Blñù‚UžÕÝYû\+tb½É½®~èÛaá[Œ ãúxŸŒ>~«{Vendstream -endobj -645 0 obj<>/XObject<<>>>>>>endobj -646 0 obj<>stream +3†ðc_¢VݦHm¤%ìS;M.8‰W‚SlšmýÎ@hؘTiKé*_Þ½{çw~9@ðÏ€‚ëC²›À8rm¼0À˜â·à°¬¨;Æ;¸ŠGo?Dàx/Ë1Hq89ì±MmX\ÞÂ\ÉüMü ó}pœ:ߢæŸÏ¤æï`Ã’µÈ9älÃAäXYme®0V°-xÂSžÂÃÐ; g÷÷g¬YÁÍ e`õ‘{ 8‹ŸñLÈünng±–¼ +)©ÂN †}ê5eŠ3…±ÄÊ+ñÌs“gŽ +þTr¥×*/Zæuv‡½*7ì!CòL¯m +ë–j)æ5?¥lzÿ<ÅŽ_{Ò8^Ëqmj´!ß q(X§¦b&5š@"Ë\w)uqfÓE±[¯÷(3t™Û%ñ*Œf»Ô¸+#WÒŽ•q/Λ ×­w°Ç†W^vÑË{$#÷‰mÛá?ö#RÜÉâG®qƒ.J¥ÿÆ4›;l^Œ®†Ýf¼õ?îNØ\ 'm?ŠÀšõÓ»º„kþÌ3¹Åç >–"­º³ö¹V@"³É½®^àÙâ[Œ ãÀ¨ò>}ý«…Wendstream +endobj +678 0 obj<>/XObject<<>>>>>>endobj +679 0 obj<>stream xÕUMsÚ0½ó+öH:ŵc›\:ù.3 iÁÉ¥t2Š½µXr%9 ýõ]ÙÐØBÒca` +=í¾÷võ£çKo"†!¤EÏu\£Ðñ!ˆ#zöé£ò:pÄ»A8t‚];|ÏuÂ]¡ÿ눓¤÷î"σ$·é„qI”’ëB’ö?^ù®‘ßQ$ßhå<Šç0 ¥ƒa@ $Yä„̦·³ÛSHš¥&¬À >ñ›Û3\øåGûÎ0ç5äRYr %­~ ,ï°‰)ÄÖï‰Ï]™µ °l÷'Òà躀>à ˜È@ÿä&]Â[U\Ô\(Ô¥-PÒ¯ª`÷«uÓÄ80MÏ’üÙ@ôiãØLÛ„Õ'¦<׊•¾c ÌûSÃ¥€Ãùl ÷2‡/¸!)™Ö\&R„%*¬kCÔÖ±Øq»rª}ŠõÙ]Â[IÜ^ÏÞ>/XObject<<>>>>>>endobj -648 0 obj<>stream -x•VQ›8~ϯ˜‡>¸@X •úÀ&Ù*ÚmÚ&´÷PV+×8nÁ¦²ÊýúÉ]Ú,«S‰àñ7Ÿ¿ùfœŸ#lü8¸0ñ#›Øà{>qÁ |vñ[qض WW /-x¶Gü‹ áïï¯ãÑÛ›)8Ä[Lî‡ø&¶mˆ™1%˜ÀŠ×°áÕžWð—b+Çñ_¸ÓÇévZn€;•¬ù;Èùžç)¨w-8ìiÞp  -2Ѿ¬øφ«št0HàM¡ÏìXw‘¿çó»À¯«å&^»Ýº×¡~–3AáIuÄÒ8±þõu¹Š'C(ÏYÍvÝÉÎI·0îm”lÍU)…ú%¥ –{äý¿Å>ãýíÓrþǡ/e&j,[-a³X[¬–«›OŽí hq1r@Ú ý‰!E~š¦<…l ½ìíZYWÚ B -ëo^Éd¬“wºõjT¼n*´Ð!iÆhͨ†1®ÔInt˜6©5ñŽ ̪CYËÇŠ–»ŒÊRr «沠趨AŠZCfRœ°zÃ[›¢õ[@Ðms¾ÍD¦#û´GÑuåZ‡Giš‘cFnwŒ·7—”Y¢ê9ü8ÔȦJy…š 2-°¦ÇdUµI3ñ^øŒ‘mƒÐª¢‘T¤õ®<29+ÿ"1nÍù“ùb‹Ù5pÁ´Rx2M ìR¦´¦0‡FiA÷î‰àvÀy!Ÿ·‰1”óŽ -(ð»£j7€$êW‘°Ž¯€|þ³Ëp© -Eê%FAÙ.ü¡¤Ji‰“1¼íR®hÚ%¼éce¬[.ŸõÂió|›­3hžÚ]q3`§M#2&S~ÚžŒõg@‰h=C¦·æÝ“97ïâËgÒ¡¿³¯"–5çâ±ÞÁ] -8®vЖR—ûøþi€Ãþ{AˆH 3OÆ÷/çWÍ…w‚îa[É¢5‚Ba‚l-¦E‚²›-ÝöØÑÓSɘ̰]^õµvþ÷€À îÍö‡Mˆ¯›ËÃdQ6z†P`ˆ¦Jg–kH÷¾IYƒ+j¨qÃИ9ë'È%cöíÇòLcé.ïÇ%Û¡tXDd¾fæZ½;vê…ÐÓ¹úDaù9žKüéÿ:àõ­gÛ&úxáhÃKY–¼Rð¡Á1©Ù[N€ -0Ö -ìé¿×îK¾x$ðCœÁˆzj„E<ú2úra¡endstream -endobj -649 0 obj<>/XObject<<>>>>>>endobj -650 0 obj<>stream -x­VMsÚH½ûWôiC¡Æ`\µ©rH¼›Jb{A®BãÑ`)–4òÌ(,ÿ~_$,c’Óå²=ýñúõëy8ÒŸ!MGtÑÿ,—Ê}ÖwºXŠÜÿo¹rs€-ÃIP8O˜kôp8ñ‚ðŒS°jhÕZµõ<ö÷QFözS³zõr§-)-æÒ4—hŒ" ^ž9ÔÀCĪնVà*¶;£L¹I‹µ^õÐF´ÄJ“–.¸ùø>X~|oåŒ\‡ï{zæCtüïáðû‘êî£þ1Ä0ökè8¤¹ÎspÉSþÍEW)§R®Scݯô²»g¤®²˜nU»„ð y*¶ºP”AÒ”\  0Xv 嘲L]¼¶õ4<Í…LRl[F ÌDÂ|_èMA?EV©n°u2ï¯=­4êVkÐœÅÕk¹—\VÑnÂNïU…4[Èüeäèó¤ªh#¶´® -ɃeI¯w9aä’”gk—§z¨R¤Æ˜†t^l‰yC?ÍdÛ‹y«Öç¶.õV)^Mr…­‚- ¯+JÄO*5‡b“ú··ã®ÖèGeì>Àu6» »RskyáÝGE'„_2¸ŠŒ&õn¹d„€ »3ÊU¦ê¾dæþN›žŒ•F¯ÓŒAƒòñòä W¢,•0¯XðÀ"9%¹‰·û;© /^—k[ÔŒŠæ×ØÏJÞÛ*ßO4B‚è–Y]”2/A)³ ™ÞèE|èhs1°ØÓÌÃ…/µsëцu„QhÅpDGÿý³ûˆþendstream -endobj -651 0 obj<>/XObject<<>>>>>>endobj -652 0 obj<>stream +cÊ„fúalaΓÞçÞo1¨!žendstream +endobj +680 0 obj<>/XObject<<>>>>>>endobj +681 0 obj<>stream +x•VQ›8~ϯ˜‡>¸@XH*õM²U´Û´MhV®qnÁ¦²ÊýúÉ]Ú,«S‰àñ7Ÿ¿ùfœŸ#lü8¸0ñ#›Øà{>qÁ›øìâ·â°k®®2½´àÙñ/.LÞÞÌÀñ ÚarŠ `bÛ†ˆ3‚Ù ¬y [^íyðq%vrý…;}pœn§å¸ÓXËš¿ƒœïy™‚:å hÁaOó†U‰öeÅ6\Õ¤ƒA'˜)ÑúÌMù{>¿ üº^m£Û­{=êg9‘TG\ së¿Q_Wëh2„òœÕ,íNvNº…qÏh£d®J)Ô/)m°Ü#ïÿð(öïoŸV‹?^>|)3QcÙj ÛåæÛró°Zß|zplg@‹‹‘Òfèˆ )òÐ$á d;èeo×ʺÒnRXóJÆc¼Ó­W£âuS t …I2Fk®@5Œq¥Nr£Ã´I­‰wôH@`^ÊZ>V´L3*K8Ȭ#XÈ‚¢ÛÂM(j ™IqÂê oMllŠÖoA·-ø.™ŽìÓEוk&Il„ŽºÝ1ÞÞ\Rf…ªçðãP#›*áj‚Ê´Àš“UÕ$ÉÄ#x]à3F¶ B«Š„P‘@Ø»òÈä¬üËظ5CLË-,ç×ÀÓJáÉ4i—2¡5…4JÓºwOü·îÈ ù¼‹¡œwT@ß”ªtIÔ¯"a_ùüg—áRŠÄ‹‚²4ü¡¤Ji‰ã1¼íR®hÒ%¼éce¬[.ŸõÂió|­3hžÚ]q3`§M#2&~Úõg@‰p3G¦·æÝ“¹0ïâËgÒ¡¿³¯"–5çâ±Ná.W)´¥Ôå>¾à°ÿ^"bÃÌãñýËùUóCဠ{ØU²hM£ Ð#F˜ [‹i‘ ìfAËD·=v4ÆôTò&sl—W}­ÿ= $0ƒ{³ýaâßëfÀò0Y”ž!¢é@‡RFYåÒ½oRÖ`çŠjÜ0tfÎû rɘ}û±<ÓXºËûqÉR”‹ˆÌ7ÌܨwÇN½z:WŸhÚ_~Žç6ÿx}ëÙ¶ ?^‡8ÚðR–%¯|hpLjö–àŸŒµ{öïµûÒ…ï ü)Î`D½ši„e4ú2ú|a¢endstream +endobj +682 0 obj<>/XObject<<>>>>>>endobj +683 0 obj<>stream +x­VMSÛH½ó+ú´1‰,lcl jSEœ°›J¬-*‡8‡a4F +’FÌŒâõ¿ß×#Éãä´å¢ìžþxýúõ< i€Ï¦#:žÌá€F““ð”ƧS~ÆŸQ´:x]žÑpLÑ +G&§xˆ æƒE²wNÃQH7F;-uvý€ù€ÎjëþèÖ½Yÿí‚æêq–ˆ,˜I6P8@4üºè¿ÑÌ6ߎØoFЂ¤ÎËÊ)²ÊÚTô 6ôÉÒŸôaÙ»ùúí, ‡'߃úe†“ïÁE/{3Ììò?ÏžÓ\âôÌ(X}²HekÑ&ãS½¨\¢ +—JáT0‘/ÜpOn, a­2nÙãÝãE_ò¼-yûüÉ tørjpÇ4¶èN«ë‚~è´H‹{BÚë\¤…”YŠ2hféÒB‘eΩ¼tä4ÉD÷ŠRg©DkmbEÜu$uáŒÎ2e(›¶wÇáˆcµª¬bOU-x¢X•ªˆ9´Ì¨ûÔ:³AÃw6¤(Im“Ȭ&-eeh­Ô§¶rʬ…‰mXWÛ¡Ò8¬©qÞþ(ÍÕ²ÇÈÏå«n;æòMô‹Æ.”ù©ÌMSéB9t÷UÉ@9fJ|¦ÁLÊr½^-{h€…Í Ž÷¢™³]ZùÞ _.:ýå”; nræj"æV[\ w;*L½çÅZ»/lƒè·,ÛÉ¢u¶/uÏyxü oÁþsºEc]òÄ¥¼ÛDYfH¦ï™—ºK®e/-dƒ¥"#H­d‚1 PñÁ:Á¤õŒ¬iÝâÑÐOç)¸×é>Óÿ,WÊ}Ö÷ºXˆÜÿo¹r»‡-ÃIP8O˜ôp8ñ‚ð‚S°jhÕZµõ<õ÷IFvzS³zy¸Õˆ–”séšK4F/.¾ìkà>bÕj[+ðVÛ‡-Q ¦Ü¤ÅJ/{h#Zb¥IKÜ~|,>¾·r{F®Ã÷=ó!:þwpøýHu÷Qÿbû5tÒLç9¸ä)tÙUÊi£”«ÔX÷+½ìî©«,¦;Õ.!3]Â/ýUañ¡~kÛŸpÿ­Eiçn<žŽÃéäiü>ð±ÑÁ?ÿ³¬ˆöendstream +endobj +684 0 obj<>/XObject<<>>>>>>endobj +685 0 obj<>stream xUQo›0~ϯ¸ÇDª= ÈÞh³UÕZª5L}Aš8 +Ø©Á¡ù÷;CI›µ"IáàówßÝww~ž0°ðËÀ·Áñ «&µÀó=jƒø¸¶ñ§8¬ºsæQöÙ†í8Ôùã"ž|ùîc¯Ð‰øç€, âlÞ_ºÉôG}Våø”í*™%3h‹f ÍšCÍÕ–+ÈdµÑM!û—i…\´ÈšB ÐõðOÃ6-5¯¡å2¼¥³ø/2˜Cdžq\ê"‡éœ–׋R‘Ã=.zÓ7²Äö©gL¬ ÅT´¼,!—™®¸hx¼¬y»æŠwþЋíõ^Bã 㢖<Óªhv€/“iÍ9,în“ºQ:k´âÉŒB¼æ»Î\u¬¤ª¾zŒºŽè> ð‰Ôß5æDYê?¡nÖlXØá´ãEªgyçG­—èÝg84ó¥0åî¬Ï;Æ33±³."@~Ä”˜U2‰|²ÖpÏË´)¶3ScjŒ˜‰½z(Y¯úÔCØÔôF¤½ùk¹a¢ÞŒÑü—@ªNËNÀ½}îõ‹4 -ЇµmB˜ƒýaŠƒ0b«7È{‹©Ê|!Fnd––ãö(À¥âi#ܵÛéX4ÎIXWJêÍ Xl$°C^˾ÛÓ³O€ìé éŒ@&ÓL‹âYwå™ÌƵpûmœ9]vµ`ïëÖ¦f˜!rR Æ0´ÍnÜóùH‹gãæÈy2¦VÄ›Vª§ccê\¤M¶>0¦Å5Ž[•âèßòc0¯2|Ú’¦.Šì(„×ûø"Rì*©ëù(E2MŸRfZ”æ?^]µ™ËC­¯ÅÀü€zó9^¯eN7?ÂÛ‹|ËK¹ÁáWºÈ;fd0&¾5æØÇ+Ëõ]ê{Þm8¼nŽ|‹'?'ÿÏÚ Aendstream +ЇµmB˜ƒýaŠƒ0b«7È{‹©Ê|!Fnd––ãö(À¥âi#ܵÛéX4ÎIXWJêÍ Xl$°C^˾ÛÓ³O€ìé éŒ@&ÓL‹âYwå™ÌƵpûmœ9]vµ`ïëÖ¦f˜!rR Æ0´ÍnÜóùH‹gãæÈy2¦VÄ›Vª§ccê\¤M¶>0¦Å5Ž[•âèßòc0¯2|Ú’¦.Šì(„×ûø"Rì*©ëù(E2MŸRfZ”æ?^]µ™ËC­¯ÅÀü€zó9^¯eN7?ÂÛ‹|ËK¹ÁáWºÈ;fd0&¾5æØÇ+Ëõ]ê{Þm8¼NÀoñäçäÏä Bendstream endobj -653 0 obj<>/XObject<<>>>>>>endobj -654 0 obj<>stream -x½U]o¢@}÷WÜGš8³ òå¾l0¨!©¶+˜ÝML‹cË;€µÿ~g€º¶*í¦M1õÎ=÷Üsî ÷ªø°4虯;*VÁÐu¬n[â»&nNaUtKÃæ©€fØ~/#`%ÑMÛ‚` ¢‚ªB+>"È@ÖEðG¬3›uH,D¤'êKåš³Ýc?ÀÙ‡k»À§|Kù%»aÙB‰î"X²u”d³¬à,M)‡(ŽY™‹‹÷ÔY(U ðÜüu ýD¿ZH/”iËP™%÷%}¨º#·âÊ$-è¿–¡j^™£î4µFìÑ¥•?=‚Å¥ÒÇ6Ö0ü iŠî2öÁÌsýçBª€4é»âÈ $9D—¿QT·Œ'Å#l£´¤]ˆrØD¼¶š·Òð=· Œƒ ,þ8Ê©Œ9+7.ïîsdܽš„cÏ•DÙ§)Ê ^ÆEÉEgîg¡7]…Ž£—¾¾3ÚRNó ËrÚ(+t¨æY¶eª@^êeNy^‹ad™uVÕC­é×çz)² Ç›†IÑcè¸oz相Ž ÔØcs'j Ôã2ÒÏy;Ùñ|ègq>¬Q9ëÇÑ\Âœšw2ž]ͯý#ÍœŸ÷úÔZ<|Õ’tå$} -[rÖøÿ`[MЧÐÕjºv³9‰ec³ßS<«ãM\º¥)Ûˆ½ ã2YR™„žÖ"Kí·Ÿ„º¥cË´Å[Vœf¥Ð0è|ïüN)ÞYendstream +686 0 obj<>/XObject<<>>>>>>endobj +687 0 obj<>stream +x½U]o¢@}÷WÜGš8³ òå¾l0¨!©¶+˜ÝML‹cË;€µÿ~g€º¶*í¦M1õÎ=çÜ{î ÷ªø°4虯;*VÁÐu¬n[â»&nNaUtKÃæ©€fØ~/#`%ÑMÛ‚` ‚AU!ˆd ë"ø#Ö™Í:$"ÒüÁR¹æl÷XÇpöáÀnð)ßR~ÉnX¶P¢»–l%Ä,+8KSÊ!ŠcVfÅââ=< ¥âÏÍ_2ÐOô«EôB™± •Yr_Ò·ª;b Œq+î LÒ‰úë6´IÍ+sÔ¦Öˆ} ºô±ò§G°ø±TúØƆ4MÑ]Æ2˜y®ÿ¼‘* Mú®82Iäåo•Å-ãIñÛ(-i¢6/€­€&Å­´|Ïíã $‹ Žr*ãcÎÊ„Ë»ûw¯&áØs¥Aû4EyÁ˸(¹àhpæþpzÓÑUHà8zé;à;¨-å4ß°,§MgEªy–eÙ‡] /ûeNy^7Ã8È2묪†,ZÓ¯Ïû¥È*oV"E¡ãN¼éYœoâ:‚Pwb5Îà¨Ç)d¤Ÿ%y»Øñ|ègq>P¬Q“œõãh.áFNÍ; Ï®æ×áÞ‘fÎO´÷êÔZ<|Õ’rå$}ŠZrÖøÿP[MЧÈÕj¹v³9‰ec³ßS<«ãM\º¥)Ûˆ½ ã2YR™„žÖ"Kí·Ÿ„º¥cË´Å[VœfE9 :ß;N3ÞZendstream endobj -655 0 obj<>/XObject<<>>>>>>endobj -656 0 obj<>stream +688 0 obj<>/XObject<<>>>>>>endobj +689 0 obj<>stream x½•;oà …wÿŠ;ºƒ)p—ŠÄndµŽ]ƒu²¢„HiGõñóKíÐÈC$ Ã=‡+|üîÀvàz f+# LD(„Pp»§ví ,¼ön" ôÂJ'H€žƒ` zæGH Šz&¦i‚·õæk eôYN÷f£_­AÿÏ  Ì¢çþh·ùØ®§+sw* Ï%>Äy&Óq-ŸR©jkUË8KǪÕéÞŽ ümùp«ÆÚ^J(m\[©¤tBKZ¯wí¨J”v‚K»À-òIRÖÎZÜë‚Y‡y5Öu^8ésسzQ:É\!÷»@.ÊÔ]“YÄ9|¬ -WMæ'dqZÂbQd##ÝW2HˆÍ§i6[³ÛÃèc97Qð[pÂûúÿ"ÿø¸C"΄ýUØ2vüäí={?+ËÂendstream -endobj -657 0 obj<>/XObject<<>>>>>>endobj -658 0 obj<>stream -xuAKÃ0†ïùﱓ´&©Éì…ÍiðXdÍ@íÚY™úóýÂ&† ð<ïòÎ$m £ilvLp­2ž#·†fEg -ز™g—wW~KŠ¶¾áBÀo’Å4öÃó.\_øW"ó™ \¯\uߺe嚶®Ê¶ž?,«[ç×õý M•¦bß%7´Î‚Ä7u‰Š>W”²GÁžÞ#åº(`rncSãV3‡2|†~܇é‹ÃK¢“þ¢©ED n¹âx -}Ÿ¾ ãתl"šSšÑ–¾…0Å«¹gìiUSæendstream -endobj -659 0 obj<>/XObject<<>>>>>>endobj -660 0 obj<>stream -x­WMoÛ8½çW z©[4Šíxíd÷Ôô›CÛtëîöÀ (Êb+‰ -IÅ1öÏï’r'Ø]´mPÀ¶¤™7oÞ¼¡®&4Æß„S:ž“lÆÙ˜~9fSš,ðyŠÿVQ.?rálypôö”¦cZ–ˆ5_œÐ² Äã9zU‰Î+K“qFŸD“ º°ºõº]Óy‹ ­¨Ý³å×c²ˆ1g°,Fxh’ÑËÜy+¤·Íh2I·MÙœo[VŠºÞvÆ)2%ùJ;*ŒìÕzÂgo¨³æZŠœiéÖéu…K-®POîH°Ê¾•^Ó~K¢- ‚pþ1NŽ#¸B9iu®qU#P•t @*ë…n©TÂ÷V…ßþÒma6Žd­Õ-{¬öYª}ší‘U -‰t†þV›ÞÑ™ßHµEbðj"å½A^äu`h(‘:ƒ¢• 9u­€9Uï2bZ‡¯L 7~Ûq ¢P¥nU -¹üX„H¥êÊ ¨C?{ÉÔ Ž¬/Š·CŽ¡¿£EÕý8£Àäz8g*«¼Õ@:! *j} ]D$tÕ«>”)üá";aõC>—Óù‚îçwî Á¦ E@šèGˆ[üŒ…ª•ç _MN¥5MÀûS -1c§Xf öû 0ò”åq»>o4Ç瘞ÐïlÝáô$›œÞjíUo-äUo9(ÌÃ`Zþºa—I’§Á$Ýtµbl)°¥87$,h­Zeµ„“xöað•ÆÒÆØol™í+r¦$lAŸßŸ¹Í‰¢ÝÖyÕ$7ø¥‹!ý«ÏŸÈuJê˜nÁ\Ž‚»ÂTCѪeKÁô²ë* -OÕ:·ð'ņ ª·OÒ4®Ã ÞñQ¯uù,á}Ѓ_Ü™ÐSŠ[bèË,í¬Šãd—ô‘Ç–¯Ïžþ—1¦µ÷÷¦@©RÈŠ™{­í}×ûÛzRwW\ܾxZƒ'Ñ!|‡5[%ºÌÖ †8ÔcÅòJ‚K•zÝÛàȽSø¥À“òk¶ö¨/×®±<™Û˜¬ðµVŽ-VG®É (£® ËȪ«^³¡>ØWêFIŒ„4Ý–«C!ýn6ðMû"„R W÷&†ñFW-´ëj± Ò2C£SòB7ºÕ®RÛé C]‡&ãçÁ¸—¨«Ö.¹Ó`™£pÏc/AAË%–¦ÇRÆu#8ºÅp‡@¾ÈWaWEŽYI›ÆÑåh”SÉpãªR",¡a„3I%½Œfϸm Z+:(`7!{)n£ýºV~k•o[Õ8“0 –¹ '_a^Bc ƒIj 8-ÔŒ.¶{‰Þ½ü²ºøãüýrõúìÓêÃÅ›÷l¥àK•P§gì,/xvElÜõ`ˆNY +WMæ'dqZÂbQd##ÝW2HˆÍ§i6[³ÛÃèc97Qð[pÂûúÿ"ÿø¸C"΄ýUØ2vü|í={?+Í‹Ãendstream +endobj +690 0 obj<>/XObject<<>>>>>>endobj +691 0 obj<>stream +xuAKÃ0†ïùﱓ,&é.’Ù9 +›Ó6ౌ5µkgeêÏ÷+›x&>Âó¼oÈ;“´%¬ÂÄ`»g‚ 5áÚYš!bÇf]ßß@J„)ÆY„„ °MC>/XObject<<>>>>>>endobj +693 0 obj<>stream +x­WMoÛ8½çW z©[4Ší¸v²{júÍaÛtëîöÀ (Êb+‰ +IÅ1öÏï’r'Ø]´mPÀ¶¤™7oÞ¼¡®&4Æß„S:ž“lÆÙ˜^žN³)ÍNø<Å«¨ Ž¹p¶<8zwJÓ1-KÄš/NhYâŒñ‹½®Dç•¥É8£O¢É]XÝzÝ®é¼Å…VÔîÙòkˆ1YćÇ3X#<4ÉèUî¼ÒÇÛf4™¤Û¦‹lη-+E]o;ã™’|¥Föj=á³7ÔYs­ EÎ4ŠtëôºÂ¥W¨§w$XeßJ¯ €i¿%шA8ÿ˜'Ç\¡œ´:Wȇ¸ª¨J: •õB·T*á{«Âoé¶0G²ÖŒjÈ–=Vû,Õ>ÍöÈ*…D:C +«MïèLÈo¤Ú"1ø5‘òÞ„ /ò:04”HAÑÊŠœºVÀœªw1­ÃW&пí8Q¨R·ª…\~,B¤ÎŒRu僆 Ô¡Ÿ½djGÖˆÅÛ!ÇÐßÑŽ¢ê~œQà r=œÎ³@•UÞj µ>."ºêUŸ@Êþp‘°ú!ŸËé|A÷s„‹»Nw†àÓ†ƒ" Mô#Ä-~ÆBÕÊsЯ&§Òš&àý)…ǘ±Ó?,3Pû}yÊòƒ¸]Ÿ7šãsHÌ Oèw¶îpz’MNoµöº·òª·æa0-Ý°Ë$ÉÓ`’nºZ± ¶ØRœ›´V­²ZÂI<{È0xŽJcicì7¶Ìö9S¶ ÏïÏ¿ÜæDÑnë¼j’|ÒÅþõç‹Oä:%u L·`.GÁ]aª¡hÕ²¥`zÙu…§j[øŒbÃÕF +[„'išN×aïø¨×º|–Œð>èÁ/îLè)Å-1ôe–vVÅq²KúÈãNË7gOÿËÓZ€ûƒ{S T)dÅL‡=‚Öö¾ëýí@=©»+®n_< ­Á“è¾Ãš­]fëCê±by%Á¥J½împdˆÞ)üRàÉù5[{ÔÈk×XžÌmˆFLVøZ+Ç«#×ä”QׄedÕU¯ÙPì+u£$FBšnËÕ¡Œ~3ø¦}B +)H†«{Ãx£«ÚuµØ†i™¡Ñ)y¡ÝjW©‚íôN‹¡®C“ñó`ÜKÔUkÜi°L‡Q¸g‹±—  åKÓc)ヺœÝb¸C _ä«0ˆ«"Ǭ¤Mãèr´Ê©ä +¸qU)–Ð0™$ˆ’^E³gܶ­wCÒ°›½·Ñ~Y+¿ƒµÊ·­€êGœ‚I ËÜ…ƒ¯0/¡±…Á$µj F +Û½D¿¿ú²ºøãüýrõæìÓêÃÅÛ÷l¥àK•P§gì,/xvElÜõ`ˆNY \ÝTØtál& &q-tZ>œÚxúé¼±íyÿ¶orÄ‚¸Ö`â©uêF*UàœbÁZC8þE,¸Dî0·wôü5¹X%£c/óñlm,Œ± óØàäŧ/îJMê -€‚#<¢Ádãìà±uÌܦҲÂóà ‚I’2Ã×X,PhqT N‘H‘:ª-€B2¸)­#Ծ׵ݮ´w>ŒùÃ\á´Šód`.nÈ`7¼N¨À¤KÞE s»Ë …å+¬û„U%Ò‰)VÀ±;-¿¡²¾£|‹éR²bàÀ÷Œ/™õ˜N‡“ø,žÄŽžŠ¬ûQÂ!d7=?ªgüŽ0Š³gÿ{ï:¥.V81ëâ7BüÈ Œ[²ÖçUøÍŽžY†( ˆ°‘(„ášâº„1ÔÝå³pVH -þ× eÄÁ3uÎï<;Շ߱ƒâb £·'w^ZNâKËÿ}1š-fÙb~ªósôfyðñàho@ôendstream +€‚#<¢Ádãìà±uÌܦҲÂóà ‚I’2Ã×X,PhqT N‘H‘:ª-€B2¸)­#Ծ׵ݮ´w>ŒùÃ\á´Šód`.nÈ`7¼N¨À¤KÞE s»Ë …å+¬û„U%Ò‰)VÀ±;-¿¡²¾£|‹éR²bàÀ÷Œ/™õ˜N‡“ø,žÄŽžŠ¬ûQÂ!d7=?ªgüŽ0Š³gÿ{ï:¥.V81ëâWBüÈ Œ[²ÖçUøÍŽžY†( ˆ°‘(„ášâº„1ÔÝå³pVH +þ× eÄÁ3uÎï<;Շ߱ƒâb £w'w^ZNâKËÿ}1š-fÙb~ªó—ÌÑÛåÁǃhy@õendstream endobj -661 0 obj<>/XObject<<>>>>>>endobj -662 0 obj<>stream +694 0 obj<>/XObject<<>>>>>>endobj +695 0 obj<>stream xWÛnÛF}÷W òÙ°dIq$')ZøZ¨õ%•&„¹²Ø» —´âù÷ž™Ý•d9¶¡½$Ïœ™9sá×­µñÓ¡~—^õ()¶Ž†[{gmzCà nôðKJíV»Ý¦aÒ ð¯Ê =ªÈUª¬ø÷w´·Có©6TM5ýcÇþ–NÉͬÍ3sK;{ÛöÚÔì´[]`eF€ªÚ @@ -1503,11 +1561,11 @@ x "Cž}èéP|ù}Ô‘h'3fáGMlKí¡V¥}% wÖÍÏ?WÙEƒ´<ô®q~uü§Ì¼½3¤WúACüÓåˆÛäšW-L0`vYÚ*–2ñ1ºF¶%9M@Å°uZb'‹@œ[Ž¸u¥¿œ€RB]±`¸e²50‡Ö²´E!~\.Ò]$Z£ì’ÎÔ¢²|a«@Úè.mG:× 1îy£ac7€9UÌÝËè9% A¥ÜW>ÇÔWQ?h 0ík>¤'¼Iw™¢]æÖ¾ÇZ¬3¦}¯—¸È@µduúÁ®òßçn}:ÇV½K ì êPŠð_²²><"F¼®`ñ±ìÛcÅí0CvX-Hm" ž[û¥žIþJpÓ \Lm¢Qí܃±nXD?A3ÄkÅãíIœ‘üY¬Ú q‰†âu¥ØxÖÄ%Ôä÷€¾?q_Ηۀ¯\‘ùë™ïwý>|¢sÍ -1÷œ[ì~J—çºT¨-á<\xÆþ¨z+B“]–§´¡PKÁÍ¥5vfQýÇ0+aòu¼RäêË€Ðì¾^ö¨K ?e@vÑœ¹]ñ¶#7.ý ¿ñÀbËAƒÓ3 ,ihQØœTã±Ø‰bzBt ij¨ô8H†€y¸ï…ΰ…>³°èb•–Nˆqiýž)#ÞXÓLõDÕyµÆèDó~zbw6áÒ<«¦â–ODÑ"¦AeòŽY¦ijLáÅXض3“ä5otŠ¼…5³b0$þj¦Í{¿Ÿ~ã¡‹& HõØiÌESa|ºz\dÓSÒ4y~<ð±ÏJZLñn®e¬!7k¦ÃÔkZ˜.ˆÒóÔJ¦ã*i+´\ÇÞŒ<\~³°èb•–Nˆqiýž)#ÞXÓLõDÕyµÆèDó~zbw6áÒ<«¦â–ODÑ"¦AeòŽY¦ijLáÅXض3“ä5otŠ¼…5³b0$þj¦Í{¿Ÿ~ã¡‹& HõØiÌESa|ºz\dÓSÒ4y~<ð±ÏJZLñn®e¬!7k¦ÃÔkZ˜.ˆÒóÔJ¦ã*i+´\ÇÞŒ<\~>/XObject<<>>>>>>endobj -664 0 obj<>stream +696 0 obj<>/XObject<<>>>>>>endobj +697 0 obj<>stream x¥WïoGýî¿b¾™¤æ Ø5•b"· ¸ø¤¨*U´Ü-°ÉrKvï î_ß7»{)r~)â|3oÞ¼y3|=iS ¿ÛÔëÐE—²ÕI+iQ·{/û=üÛÁ_+i´Úß?x›žœ/©Ý¦tŽXÝ~Òœ§Õ¢4kŒ }O…)š¹œ‹J—ôNnT&éƒÉ% „v¥±2§­*—´¶ª(é³™9R•K?ùZÉJRúîmBc|j·ÊÉ3ÿiQ³}‘t¼ác+GfV U øÜšÕC8iñä³ÌJÚ.eH“i%‘Y9WIG‚ÞËò3›6´ÜHM¯_Sgú<‡+Îv>¼¢6*å’›—É%çm·’Ë„KQ,äÍ;ENƒx ²¥*dætË5ÂM17v%JeŠðÃf§—t9à?©¡ØWZ£ @@ -1519,28 +1577,29 @@ fP :Ü"^ µtA<¬¾VW‹€ë³x]­Þz„ê¡âëéáøbr”éOÃÐÚGÆ´wbCîà½zzK`L®qÁ9rUæ]+Öoˆý³Mô`’8N” Õ‰–団Ä! ùZ8€TÛ—sYfËÐô ^Œ ãÍß-àÆÜØ([™ µwÈòOœûñj÷úI÷ê ß³bwo>¼}Ãߪ¤†ü¬£÷•ÊýÝÕ¬¶ÙkÁ -Ÿ÷ýä²w™ôºýp{u» ê:=ùëä´Ãbendstream +Ÿ÷ýä²w™ôºýp{u{ ê:=ùëä´Íbendstream endobj -665 0 obj<>/XObject<<>>>>>>endobj -666 0 obj<>stream +698 0 obj<>/XObject<<>>>>>>endobj +699 0 obj<>stream x¥X]O9}çWømƒT†$¥Iè„Í© ,DZU›UäÌ8‰Û{j{ Ù_¿çÚžÌ$J…ö2“ûqî½çÜË÷£ëâ ûìý€¥ÅÑåôètÒeçlºÄƒÁ?d¬›t»]6M;™ÿ7] f…y†QæRXö$ÝšqŸ1|Ãîno?Ïon§×“/óë›Éíüêbzq<ýzÔe'½n2‚ÙN°Å˜u¦J]e`eÖIµr\*‘1 cÏ 5oÏŽ“h°ßKdpû^2‡Ó5W+Á”vr)Sî¤V e¹`Ò2¢Ï·p¶ØÐW˜"CåØ£äˆh2¾ß íï•°îw¡°BeoÜ’Í8×VÜ©œ0³Îìø€éh‡-xú9âî–ÒX—0öI?ùXyí”iÊOÚ&',ÙÒè¢m)ë¥Uڬĭ¹ó¯•F=üñP ""Ï¡ÈÒ‚ž2QÓ‘A1!.°)ÓõŠÛÄf ?íiK€8µ?!A{劉‚ÐIr¼)¯,jåX©­•CJF„|hDj0*ò/ªÜÉ/„¬-¦Ú4ÆQ´A‰Ú“Â)‡ü+ëöR%È ÛŽz¨q'VÚŠ mÈ/5¼Gñ1Ån¼+àY6±Ä²ìŒ•fÏ»v‹ìÓýݘñ²‘Q¶†`9Õb­q#ìåõ¶ê®Q×Z-j‚šÂJ¨gÝ+;È ŸRàX U* Åû½G4[i§Ðbî%ÄY{øÕÄO@› _Ùˆ (@0a1¢WBKbò<³RC«Ð‡í–öl…¯d¯ãRJ=bžë'öÈó*ö»W?*î’/(YÎ!.÷“›vö{ëÃÛây¶ÖX¿8R줢²øeíW|îk€ß5O'<ŠQçù"¬×zÔ©#²éÁ~yA¿žŽˆc—9_a¥€”±ƒ¦3±ô++=¶k/2DU³P‰·–2î¢Gâ<€¥ªbA-´d˜/?º˜*zð j¿y‡µü-€NÃvüSH·K~³Ìt¶ñÅéy/ 3·)‰ó D\û|”coîÃÎØìOñÚ£~%½ÝýƒbðR¡ÀzVÓƒâõN¨:ž…6s¿êVŠ®&•PUVú…˜¾Àª»¨œ?M^OB¥óɶ•ÿmýlo° .q£§Ì©§+UïøøäõÌ:K¹–™—%š®÷ØÔ4”È4…£xñüûdÅ'“$ŒX–j (›qSiìÑë¸4_¶îI×”x3bä¢n9œNâ4Ì'wk‰½¯x™Øó%-²+z[EÁ©7ñ0¥ÚR•°¸Ð‡;Û \ °°ï¯+£C1ÊŒ? -Œàߘ r}TP›(+€@ˆ…Îp3#Gh#®3 ù>/XObject<<>>>>>>endobj -668 0 obj<>stream -x5K‚0…÷üŠ³ÄDk‹ØâRQ'.æ•avlŠt‚Å)ÕÄùõsñ‘¦7M{î×sÏo Ài ¨3‰òpÆ!åŒjœ(ªm§Q«,˜nc¬´2QÈ*žsde˜5½ùÓ0=´ñvÈÃ"Žè½3ö€VÛƒo`,¾ßvéûzƒºsÇ~LúýSYì¯^÷èê;D—ggüu”ý1c9+Ý—Îœ|çÆ Z–á7rUø—¢=ëž ]Ómù`¢X"ðDä‘T¸ ’‡@Ì9›ó¢Û_Ë×Õk}ÑmwÒ®ÇËÙTz蘕0¹X`¢HMvg1CÚö wk¶BÚm=Ò¢l†hœŠÃSB;K o:;Àb3%rO ™ W›,ø þúwFendstream +700 0 obj<>/XObject<<>>>>>>endobj +701 0 obj<>stream +x5K‚0…÷üŠ³ÄDj‹Ha©¨óÊ0;6E:ÁâÐjâüú¹øHÓ›¦=÷ë¹ç×à´dˆyŒêèqÆÇsªQ"©†´…Æ[åÞlAäͨ‰¼é9G^ùy«`õŸ‚¶PÚµj@á—Åt„uƒ6tÊ\ mðý¶ËÞ×4ýðx´SÒïŸúÈ`uÊ¢oîUí®“üÇãÄœ…äÀ¯•­}rý0Ñ +¿"¿‘ëÒ•¸”ÝYY6vͶÕc€@²Dà‰(ÂXâ.H±àlÁS„·?¾–¯«%Öꢺþ¤‹—³®ÕØ™°8MHR“ÁYĵ¥9¨Ý¥©‘uZ‡¬¬Ú1çƒâp”ÐÎPÇÒéÞŒ°HFLÆ ¹'PœŽW›ÜûôþwGendstream endobj -669 0 obj<>/XObject<<>>>>>>endobj -670 0 obj<>stream +702 0 obj<>/XObject<<>>>>>>endobj +703 0 obj<>stream xV[o"7~çWå¥Ù6;B!Y‰ÒÝTHmÒ&lûT‘™1àvÆžØH¤þø~Çž )UÔ\ÄŒ±}Îù.Ç~êô¨‹ßút6¤´èt¼~?L†48á¹+iѹœuN¯.¨ß¥ÙK†£sše„é]Œ¤Ç?¬D饥^/¡;QÌý>½¾£©Æ ¹û0û3¬ïâúgƒ¤Ž±KÂä+¡r³–6Î`¯zn„|0w¶’”VÖJíë ©Éä\8I¥qNòyž$J1W¹ò/ä Uø~iMU:2‹ÊI‹@¦8H÷xà/f7·õÐãOÓ»ýѤßM˜ wlx´QÚQäèÀê:h“Ýëç˜&Ÿ?ßÞšM~<˜'¼Îo=ŒI•"Ë,ýM‹§ìö½¼±skÑöqL@^éåÁ„p¶KøiHˆùðà¾;¸8àðl/ø§WmåÝNÈ©¢Ì%Ég>!CAk‘«ŒZèƒïQÓèã~™›¹ÈÝÞlL½‹~ÒžÃ_ýÖóWý/INu°Ž\³»‚/´!†_9ÊäBi™‘ÒÁ¢Q!ÞÙn9lpB®˜g$œSKèIðQå>lz¾=JhÂo êµÁ°= š±QƒIk)¯ŠèÍlÇwÑÞ,%bÛ„¾–°ŸóÂúª>†¤ êå,Êâ%ÖÇ‚ ~ñª€*M™„¼MîVÍÙ ç¹Ù°GÑ–T.,N(j‘cíƒvn8œ9ýÜš•-vÑ]«ýÊ榃üm}^—Ö,qº7}ª¤} é%å.S,Ý–÷¨‚¶ó=8%L‹0‚oÊ«5Ï,²3æ^„†ã>—P Oô°7ZXSz ’Ù ÉÄÇ 3™í…Ör‰;ÀZÂ|0<³®±$vxLhÊ=Ÿ¹SdRÜc€#æE`])SµPi»~Ö_Rb~ñêÐêa…°~¤—™ ta¨´±‡/* ©c‚o²“ÏÛýbxG9Eãy‘z™%tÃ0Å{UsD)²“šÙÐrC›Ùz¶à}v -à[Ô›ÛÓéVú…{O›Ò* -ö¢÷ºT(]yéêþu¾½.ö†£Ø”ßs)ŒÉhxŽ+-nKà óeÖùµó[eendstream +à[Ô›ÛÓéVú…{O›Ò* -ö¢÷ºT(]yéêþu¾½.ö†£Ø”ßs)ŒÉhxŽ+-nK£.‡ù2ëüÚù[0dþendstream endobj -671 0 obj<>/XObject<<>>>>>>endobj -672 0 obj<>stream +704 0 obj<>/XObject<<>>>>>>endobj +705 0 obj<>stream xWßO"I~÷¯¨·Aƒèê˜Ûœ‡¹³÷`Bš™zé»{`ùïï«îAÉìær1A`ºëÇW_}U¼Œhˆ¿ÝŒéòšòêä·ùÉÅÃi¾Â“ë›Ï4/h8ñMÞ»Û¨:°£Ñx@ó ÓsÛJ›5Ínÿ¤ÙÞ®Nçߣ‰ÑM2q~y5ÃHwFšqÞ8ö¤ XÈ ïäv–î]ÑhÔÞß ®åÞ“a²«xx©×köjg—%Wžv:l¨VÞKÒžtÈðRÕxÆ&¨ ­‘«™ofºÍsöžrk‚³¥\ÂE™rL{ÛHC:]¦˜µTˆÎ++F3Z*¯}Ÿ”)à6Ê“±b/ç:ˆ·éœnï½d<•ú•©,TíU…ãKª((«ÔZçÙ¹Î(ßpþêmXãëÁ•@òaľ",Ä¿e·'ÏNÛÆ—{ÚmØÐŽÉå´³î5E+p Ú>¸& Æ킽^9'PFƒ¨ jZôiål,ç bcílƒä›z@•o(We)IÉ3á@¢ÃbþôÇdzéé9.y«Lx9ÅwH;UBp\ 4À ÕóĈ„]§(ùVˆ3¯•Sƒ‰}².V\ç: {ßÔu©ql¹ñØåwÎ-YHš5Ú„Ëqÿ¢E¬µŠ(Gg…­”6ýŽÕE:!qõcD·wwOÏpøûíôþqBgâM¢9Mù7alÁ9*ÛFX à¤éóã#½ôbxj< ^—¥ÝI=¬ üCþI%<‡ hj µ-oÈ3a‘4ã!ƒ¶—´ôºjÊ  GŠ§0AÊC;Hx 0ÄÀè¬j|8“0}͹^šZWÁGâvЊtÜ6±q!L¾gýÔ @@ -1549,10 +1608,10 @@ u Üc¡d ú¼Ûè|Óɪu}hënpG5Œ‚,¨Á#0âƒÐˆðU¶hJN“ѱò ¦H<œ©¥Ýr³@O³[©<Ê02K Õ -Ë7à4ÕçÈWª‘®¢&‘ ¯Àø0-4ª‘vi–‰”XkÕ0ŒQuBŠñˆ^È„xk˜ÂÁ˜™|î`à&ÜÄ$)c¥½t»B½0It§,‡\b“œ0„Ö¬¢qv˜÷øú0aÀQaJŽP1Ÿu‹Xi[àu3ä]å  žËU,Î_ ½Z±´vg7…¡“l¥€u„FǃÕ¼½ŸõeK”0„_êBi>kÎg³Gƒá#IÒ’qXrÈSárÚv'tN—PsÇo †¢ìžÎ¥“ '-Yº8ŽéÚ–:ß‹¦¶µOô‹‹cÐ(›Qh©(zÒý·ï’IÙ†KtO&í›s…@”}mmq˜Œ"–¤¶VÂì?m%/½‡ÆIž•u˜4ûÒ{ÆTíQËå€Ñ>6sÝxÙ9@‘-£¢rþ£p€Àð…MKÌy7 œ¨lXQF#8í8xK¬2"GâFäŠ - ›cWøiŒÄe&)ÀNÃ?ˆ5úXšÕ¨ò}m\•ÐºÈde€¢¤Ù—üdŸ,.>X=ñî AarÐÉ"ÃHžÌf‹ûÉôëä>v¥YÖÇV!íÂ8…½·m+r-]Ä=-æ×ò«]¥½m”ôwþtܦé˜&âû¾ž‹Pì[A}ò(ÝùqÖ®UQ O¡i±Ù!{%.´—‰ß€)m€×ëŸÁt΢ \<|þXÿ?}J‹ÑÿüÉqus5¸¹þŒß,X¦n†âm2?ùëä_áà9uendstream + ›cWøiŒÄe&)ÀNÃ?ˆ5úXšÕ¨ò}m\•ÐºÈde€¢¤Ù—üdŸ,.>X=ñî AarÐÉ"ÃHžÌf‹ûÉôëä>v¥YÖÇV!íÂ8…½·m+r-]Ä=-æ×ò«]¥½m”ôwþtܦé˜&âû¾ž‹Pì[A}ò(ÝùqÖ®UQ O¡i±Ù!{%.´—‰ß€)m€×ëŸÁt΢ \<|þXÿ?}J‹ÑÿüÉqus5¸¹þŒß,X¦nFâm2?ùëä_áê9vendstream endobj -673 0 obj<>/XObject<<>>>>>>endobj -674 0 obj<>stream +706 0 obj<>/XObject<<>>>>>>endobj +707 0 obj<>stream xVÑnÛ8|ÏWì›’ÀVlÇ°“¾¥Ms íÝÕ>ô”DÙ¬)RGRqü÷7KÊNêÅ¡-Ú†Ôrwvfvÿ=Ó¿Æ4ŸÐåŒÊæd”h6åš^Íñï þ8Iu<˜Î®ñß7Æ8˜¾u0›þéýòäânJã1-k<>»šÓ²"<<Ѳ<ý¶–†v¶£ÌË‘0d‹ï² ôpZ ­•Y‘Íc×V"ÈGQ–¶3ááŒÂZ’2A:#4U2¥= ä.VB꼬rú(Ê5•kaVˆp¶ü~2¢áøi.«ÓµðTH¼ßˆ l Ú?8«µX­d5 o ÷qKLfsâ@/9žç×iÅÊ~èzzß¿£\Û¤/Hx™¸¤‡S`Û ï«‚g$—Ìd¼À®«ë‡³]» „uT€ö¸§J•:h½È*ivX6ÑRÞàz\¸_)ÜmmË KÁáš«üÑ@øý¾ó -’ýZ3œ\åãkNûE»Í4§Ob½'ðpkZZ€Fi›‰—Æð·¶…"ãjõ#ÐX–&¼KŸÆž³ë‚K`VSð²*ˆ‹ê˜³<Çâdù ˆ§Œ»%7 v7›¶*$öYò*@˜K¶B¶ìÈtàaL„—Y‘æ Ö<^¤Ø·3ßÂa{c·Ø$V2c׉B²…ä-A›(¸‹»«ž^ãùU>»¾¦Ùe\\ñÈûºEþš5áé·ãˆ3îoç£kÆá×+ãt>Íç³+옸:s„Ë“¿Nþëñ-endstream +’ýZ3œ\åãkNûE»Í4§Ob½'ðpkZZ€Fi›‰—Æð·¶…"ãjõ#ÐX–&¼KŸÆž³ë‚K`VSð²*ˆ‹ê˜³<Çâdù ˆ§Œ»%7 v7›¶*$öYò*@˜K¶B¶ìÈtàaL„—Y‘æ Ö<^¤Ø·3ßÂa{c·Ø$V2c׉B²…ä-A›(¸‹»«ž^ãùU>»¾¦Ùe\\ñÈûºEþš5áé·ãˆ3îoç£kÆá×+ãt>Íç³+옸:Ÿp„Ë“¿Nþëû-‘endstream endobj -675 0 obj<>/XObject<<>>>>>>endobj -676 0 obj<>stream +708 0 obj<>/XObject<<>>>>>>endobj +709 0 obj<>stream x}W]oÛ8|ϯØ7'…­ú+vronÓ;hp=Ô@_ ´DÙ¬%RGRv|¿þfIú£jîдIj‘»;;;;úûfDCüÑ|L“åõÍ0ÒýlŽ§üï­¤2|0½¿ÏÞú`2™gÓ·>=>þzâÃòæýï4šÒ²DôÙ~(‘‡CZæ·£q6ÍÆ}]¼Ð³öÒ–"—wË84¥Ñ(Œç8t»Ü*G•ÜËŠzæ ]üVÒ^XeZG[¡‹J’ó¶Í}k¥ë‡7Ò¿wÒ“5­WZ:2ÿoÜõ“„£ÔX³WàK›v]©œóÒ`4ÉÆ_òËh‰gDÓàán¬ÄQZªÅ‘”V^‰Jýƒ¨—œyõÈÔÐ× çdÁ¿ˆªÂ£©Þsr}’2TÈR´•ïw2p²*§Né ¥tP¸\ËYÉ‚Sd´ÄÑ!±Ré"†¤­i¬^ÒZä;‰ÊkS´@®46Ôî…Ûõ’NpoÐÙK{Ö¶ m¢«[uQž˜·Öâd(‰ 18b<œïÐì›ÒãÄÐrc¹\VÏØN`Q°†3¤®^gXž%zQIHOŒt­+`†ö-†û0¸ë¼?&J«»Nô?©C±1ÀέiMX1aUcJ19§dHô-ì%@  §Åƒ‘b\­³áÏçQh<8ÎÆï'°s Raf´«B4‰hP<Æu1œW]ý_ušeô"knç‹Ðb¶àdµÆ=-<á=ø¸6ÓðÞ$YB}|œY$žK«ÑLåÙÜD¦Â³%ÅqBƒ?¯\àS‡4:Ð×礂õ8‡°9,4Á?`“½[ÝâÓàXð=u•YàÑn“CÆ`Óú 4£T@CjãȨ"ºxõâƒ+ ¯èˆÃUh2[“v £IåÊUËK>T¶:øm‡å‡%h/¾`©A[(OUu§›öÓËùd*£¯Ç°¨œ' -ÕÄ÷&–S]|û 7vP@8¨ /@ªË/@Ы/ôî]Rž‡ôÒ7š?d³ÇGšÍãËd䞢Ž°²ÿÑb´9×ÁéÙÁ|ø˜ìÑÛï”Óù4›Ï`º`¢æc>üiyó×Ϳæî­endstream +ÕÄ÷&–S]|û 7vP@8¨ /@ªË/@Ы/ôî]Rž‡ôÒ7š?d³ÇGšÍãËd䞢Ž°²ÿÑb´9×ÁéÙÁ|ø˜ìÑÛï”Óù4›Ï`º`¢æ>üiyó×Ϳðî®endstream endobj -677 0 obj<>/XObject<<>>>>>>endobj -678 0 obj<>stream +710 0 obj<>/XObject<<>>>>>>endobj +711 0 obj<>stream xVÑNëF}ç+æ¡RB”˜$ä&‡JBË-µ1Ò}ˆmì1l±½éî:¿ïÛbÚ !ÐÊ»;söÌ93üu4 >~4Ò阢ì¨ôi4îCM'Xñk™’rcr*»¿_„G'×# (LjÝÉ©\š‡G¿ý Åàþ¡endstream -endobj -679 0 obj<>/XObject<<>>>>>>endobj -680 0 obj<>stream -x•W]o7|÷¯Xø% Ë–#ä©h>Ühœ´Vð uGéß‘’gÅÿ¾³KÞI:» -Û€|"¹³³³³¼3:ÅÏŒ.ÏèÕÍÁéô”Î_½žÎi~u‰ÏgøóšVo'ׯéì”+l¹¸¼¢EIX~Š'ÅÑÛJµQ{š½šÒÊ~T–”-éfAŸUçKzo ÿØFãìËÅw9lv™;~5Ÿžá¸#ìžMéƒÞ•]±]:§Ù,/=»œ^ðÒ¯&V+M¥~еkm#¹U®ÖÀ¾[ºM` …kZͲÖÔö˜ô€‰VÎÓ­j–jB&’ d݆žÒ1` <Å{££U›REM]@˜ÂY«l cIÿTE¬[P¦z$HíBC¬d8åAûiŽvvö‘ᢈҤVêPx³Ô*·‘Ão?¾y6U¯; ö{ ›JqN¡Ã~†Š*ü©ÄN‚Eå\0võš—Ñ£ë€Ì"k$ f¦ô7ž…Êuu e¨’Ù*pÚª«ëÇ éÐêÂ(|­ò‘ÔÒu‘‚.:à„ÓGä~þëÓ­|÷öÓÍí!/g+¬¼]±?\•)ý6J‡´ƒóý%‰ëÅ$YŠ2vÊŽƒk´Lcjå9Ù/7¾=Çî”Ð\*3Âu]È*ˆÊX7ÊKQ¥B¥KVM§Y¢Jtó" çó¡ÀߌF¬]‚=uÏ•QÃò¢þ‡0ßš9JÕLœ0#Z@)£ïlýó™ŽfsĈ€%¶ª,Ç7Ü^%MË2¼+§¼` dqÇ£ó Zš8 -þîý-ÝëG¬p”YGþ/µ6Å Òf]E‰Žœp6ŒEÑ ÇaŽµ©LQ1C!:Ÿ ÚâiÒEm`ð" í2¹‰ý¥¦{ô5ÌIú€smzC87áN—î‹exðú£ýPu£‹JYÅÙ`‚Pr—N²ôñÝ\´@ñé‹5…+Ç]P=Ëd·òÙ¯rTµâ‘"Àž*N&'SÃÃÄ챇CâT˜×“ì*ÍPYtw´m‘ÉàOì‹_ÑX¿y×µaûüõ9kgËÏÝKÚ]Jݸ¦¡Fb{¥Ò›`ØÍ–¢’ëÂK‚ë|¡ï^Š¯ŒÀ²"wÙÖfÅ$¬^»hÐ,©`#ºÂÕ` NÇÔ¥¤FØzrón Ä %¢ÃîPa¶Žþ×a9ªO¯ÏÂñ@åíÖ;s׋à÷%8¥ë½Ö…zMp$9H™‡¢«1dà`¬8g1ð,-†‰óæYcq˲1ZêIÞC}Ûdê'´62Á0†úÔ“ ÇEc=ïu›¨Ö»)âI2èžÏ7p"žy¥¦ÎõòO1¦¬¿pÞÉiå]#…âu'׸‚Ëýö(4KE2ÃO®û[ÌQºcï4XÖÚaWñôF°7"†o‹†ÏáF¨åa’ìS,–(jÑHºÀ hF“j·Çpºþ¥²Ã±'iboÝ(ôPJ›[0Ò¸j$0†Eö‰Òß´EñÉG³¤ï­NWäÂy&îKiê0]ûÕÊœs–# CËZ‡Ëȯ›Ì:«:­ñŒ¯AEöw+L]ÜÄDYR¹‹ÀKþB <•lŒµEç&ÒÖlOÏß÷tà†‘·'lË/Áä’'’Mu)j[9ß#ÿ¥é{‡á»ÃÓV6ÿÁéy¢—©ˆü†ð+ßO„¯Ú6fÕb×{® -Òø$èGQ#&khLä 2&J2M«q÷ô÷Ä£Å0x¡ÓJšµ¯œˆéäújçò"½Ï½ý¿/­óËùôòâ -ï¿x?»œ3¾÷‹ƒ?þo£endstream -endobj -681 0 obj<>/XObject<<>>>>>>endobj -682 0 obj<>stream +Ø ‹f—·´QP­!²’º ÝRQÒ-ꮓ=úäµÑÞ*»¯oWªJŒmh%7/¢äu0Ù‹ZâŒÚ0%Æ“ëi]ÖÁdŒÏÎh<üV50@¼˜Ñï8C;ú¥@’½ÃÙÞ¤âö§.<šŒ‚ÉxŠ>ÝÉH.ÍãßþÅêþ¢endstream +endobj +712 0 obj<>/XObject<<>>>>>>endobj +713 0 obj<>stream +x•W]o7|÷¯Xø% Ë–c[ÎSÑ|¸ Ð8i­ )àêŽÒ1¾#/$ÏŠÿ}g—¼“tv ¶ùDrggggy?ftŠŸÍÏèÕ%ÍÁéô”.^½žžÓùÕŸÏðç5­Þ,N®_ÓÙ)-VØr9¿¢EIX~Š'ÅÑÛJµQ{š½šÒÊ~T–”-éfAŸUçKzo ÿØFãìËÅw9l6O‡¿:Ÿžá¸#ìžMéƒÞ•]±]zN³Y^z6Ÿ^òÒ¯&V+M¥~еkm#¹U®ÖÀ¾[ºM` …kZͲÖÔö˜ô€‰VÎÓ­j–jB&’ d݆žÒ1` <Å{££U›REM]@˜ÂY«l cIÿTE¬[P¦z$HíBC¬d8åAûiŽvv ö‘ᢈҤVêPx³Ô*·‘Ão?¾y6U¯; ö{ ›JqN¡Ã~†Š*ü©ÄN‚Eå\0võš—Ñ£ë€Ì"k$ f¦ô7ž…Êuu e¨’Ù*pÚª«ëÇ éÐêÂ(|­ò‘ÔÒu‘‚.:à„ÓGä~þëÓ­|÷öÓÍí!/g+¬¼]±?\•)ý6J‡´ƒóý%‰ëÅ$YŠ2vÊŽƒk´Lcjå9Ù/7¾=Çî”Ð\*3Âu]È*ˆÊX7ÊKQ¥B¥KVM§Y¢Jtó" çó¡ÀߌF¬]‚=uÏ•QÃò¢þ‡0ßš9JÕLœ0#Z@)£ïlýó™ŽfçˆJlUYŽo¸½,Jš–e„yWNxÁ@ÉâŽG—´4qüÝû[º×Xá(³Žü_4jmŠ¤ÍºŠ!9á.l‹¢ŽÂkS™¢b†Bt>´-ÄÓ¤‹ÚÀàEÚerûKM÷èk˜“ôæÚô†p8nÂ.Ý Ê +ðàõGú¡êF•²&4(Š³Á¡å.$déã»sÑ9ħ/Ö®w| @õ,“ÝÊg¿ÊePupÔŠGŠ{ª8™œhL ³Ç‰Sa^O²«4CIdÑÝѶE&ƒ?±/~Ecýæ]׆íó׬-?w/ic t)uã:˜†‰Aì•Jo4‚a7[ŠJ® / ®ó…¾{)¼2>D<üËŠÜe[›“°zí¢A³¤B‚è +Wƒ58S—’!`ëÉÍ»17𼑠^·lZÿ@/9²|“pç}kmµ—¸|˜j[mK6Yº½NÈã¹kF“üŽÓÙ[c^0Ö½jŃ”'D¼š‡‡Ãç}ýBsu­íZ&gþÅÇÆÒ¬Vp~œÄ%eM<ö•ßr;VÈb`’Y&,>jÔ³W¡¤Špy`£¥{²&²Ð½â.;þß +#ıòZgS¡ÞF0_|Ý1‚XÐŽ»0q ¹(OÝå,ù_úbyŸaè²E?ƒà¼¬ŸÏY6<† ðäp÷»ö(ÁÊ<Õ|Ká™–F Ô´Æ„Ó%úåÔù”ˆr »C…Ù:ø_‡Mä¨>½< Ç•·[ïÌ]/‚ß—à”®÷Z{~è5Á‘ä 5fŠ®Æƒ±âœÅÀ³´t&"Ì›gMÄ-ËzÄh©'yôm“©ŸÐÚ<ÈÃêSO2õ¼×m¢j4Zï¦\ˆ'ÉL {>ßÀ‰xzä!”š:gÔË?5Ƙ²þÂyw$w¦•wŠ×\ã +.÷Û£Ð,eÉ ?¹îo1GéŽq¼ÓT`Y{h‡]AÄÓÁÞˆ¾->‡¡<”‡I²O±X¢x¨E#éWHh$ MªÝÃéú—ÊkhTÄž¤‰½u£ÐC)q4nn=ÀlHãª}ÀÙ[$JÓÅ'Í’¾·:]‘ ç=šl¸/¥©ÃtíW+svÌYŽ€-k.#K¼jl2ëx¬:è´Æ3¾ÚÜ­0uqeIiä.ÿ-ù 1ðT²1:Ôr›H[³==ß{Ð ƒFÞž°-;¼“KžH6Õ¥¨5nå|ü—f<¦ï†ïO#XÙü§ç‰^¦"ò¯|?¾hÛ˜ýU‹]ï¹*Hã“ E˜¬¡1‘/Ș(É4­ÆÝÓßVÃà…N+iÖ¾r"¦“ë«wÈËô>÷öÿ¾´žÏϧóË+¼ÿâýl~ÁøÞ/þ<øo­endstream +endobj +714 0 obj<>/XObject<<>>>>>>endobj +715 0 obj<>stream xµWÛnÛF}÷W ‚–‰’|‘,£ 4uaÀIÚZi\ÄyX“+ik’Ëì.¥èÇ÷Ì.EI´ 'µa@Ö^æÌ™3—ýz0¤~‡4>¦“ÅÙÁ Ðè|ÒéùŸñg$ÍÞÌú—Ži6Ç‘Ñè,:§YB80Ð,î O¢“èhöÏA‡^Ï–’lv_k× ÍU*y¡yJÃa8ß;G#œï\å¤M" ͵¡‘Ý rš aœŠU!œ$•“Ã}â^¯$F;ë””£¬´Žîy%•|(ÕúÊÂïŽè¾ÂᥰK™ÐJ¤¥´ b@= =fÓ µ’9 *-Ìç"“}ÌÕ9ì¦U—„õ—}|u HpPÃ]¤,‰Ôj×¹¤µ¨¼)š—yì”Î鮣pPª¶Y•ÚZUƒ6Ò%áû§ŽËoŽôÜÁÐíÖv€Ì[=&öŽ·*ww´d%ˆcΰîwÜŽuî„ÊU¾€ ¸±¡ÊsÔú ÑLS†­™²žz`Î,­•[2:|çÖ«š¶e»´Îñåºt-ÂÔVyÜõ®y‚, @/‹N_º¸ïïKöÓ!‘'þXëD£²ö~Ô”N¥ÊUÝ°~¶±DÙCs4²ËÖé.‡R[©âqš—w\È\zšÁøžÊint£?ècõ©Ç#äÄ æ3ï§ Uº4 …l†Åîyœë4ÕkŽS¬³ ì^ì_´姰2¬¹›D'g¨À G;!£[¬Òkê—ÖôS‹´o9¹û…Q+(´ßø.ßT†ž¿½aájNp’J)s¯Yäh¯¬“xdéýÕM—?ý¸UÁnÑýÌ–5¦ï”ËnaDÆ œëª¯ë_¨!%%ÊÈØiSEô¦¢DÎE™ºW ±¾î>.?Ç jÜú|Ä4j;b¿¤×ÈM ÛHçÙ«÷uÐÙºHv©Ë4áJo¥ãBo´†³›ŠPHƒúdQt-j1_³“ª(ÀŽÎбî:Á`–x™é„xé9ˆ-„wG휽VrRùt r‹jâs¯Î']dîàkå|ÆÇ'‚Ú¦h0zÞG^jTò¢SP4Å IR7¥æìFa “w¥ @@ -1607,161 +1666,196 @@ a ùåâú—YïçTX׋—"_ÈžS™|}q­Q[Ì>øïda[ ƒçiÅÂ;EÓ£6îìßЩ{ÙÎ>Õn—¶¼ÀÅmÛ}nÙõ¹µù ÿ¿“sHÌÖajÓÓº‰í§&ÌT¨ôV-r5W±ÅœäüÏvD¸Wc<êœZ˜¹ú—£†Ê¿®fÓëë¿Ûvy3Ž ùV‚À’ïä˜o 5"vÒ°¦Ýše-~ê9¼Ø[®Qæ­/½/|t+eö,ÔtvCUšÒ\¨” F1•ð'òʧˆB‹óM¹vÈ2LŒù@kÙÝnÂ@ÇÙ¬ 稡×ïÛµÈ1 l‡:1ëz&19¢qp_ {?©<Ñk4ßYËâ Œ¡·ëã§eMàÞÈÈ7ÆFÂ]Ä$°êmð°ÙÇe‚9«l/ç£´Û [ü¨›( ™‰q,->2µÀÀv#òë7×2±¥Ý'0Ñ’FH{Ž""l¬TËöR~‰ŒU&RÔü…rsЛtiÚ»Dá¨`,cƒz]…Á—Õýs¢.½›Y£ºÂÈŽµø°ýÔØð׆Kn¥µ›îõ”ïÌòw–† ‡2ÇÌ ™ ²ŠëI’§Ç• -xSÉ$,³À0Óo•×bdó„¨õOÞÒ¿lÙWï?ÐïÓ››Oþ|û*¬m†Äèó¤ ¯³¯¥vÒÖݸy^çüp|&¼fý<}3}÷fJoñÒJ5Ú¥ßÐ#|ÅímvöÆ4”$¼dŸ{ÄžŽO£ñè< Àã3öëìàƒÿ£©»÷endstream -endobj -683 0 obj<>/XObject<<>>>>>>endobj -684 0 obj<>stream -xm•[oÛH …ßý+ÎÛ*€­ÈŽ+;Z éeQ`Ûf7.vº#‰²ÔŒf²ɪþ}É‘/‰ Í„<üxÈü?š"âÏ‹®b¤Õ( -#Ì_ÅaŒùrÁ¿gü­ ùèv=ºü0ÇtŠuÎ/XgàëQ„u|°5觪5ÑX¤šT¦ <*ç:[gÈùJë¨Fb“1ŠÒÁU‰?å³RÈ4uζ:ƒ¶öº| ¬.Ö?8u„ë!ód6çœ;Àþáp«i­>ÁÝÍýý¿_þy÷ßKÏ꥗Oß­¾}=ľ¯þz»žpuþYÝÚ䇼ÕFU´ºä¬…Ýÿpi=È<š\ÅáRt~ÌÑÛŠ1*­mWš­çà„ñ”N(R[UÊdr訑ò†í̤ûx•bVÊð ‹m¹#Éa2½ -g’UH; Ï&ð YPWôþ\%–ûêR2ª.-øä…–ÜÕ”SÍÕôã3fÒ˜T5$×±72ÊU«›c Â],Ãøú³ù”—9/„û›O·7xG;ÒöQvßm™ù›îN/Ù,àrâpÚK’CòÎóp/ùß\Äòêýzô÷èæX÷ëendstream -endobj -685 0 obj<>/XObject<<>>>>>>endobj -686 0 obj<>stream -x•Uao"7üίxßJN°BXÒžNºF½ªRO½Ô~‰„¼^úñÚ[ÛJ}Çön`s¹S›„àyÞ¼™ñÛ¿FsšáNù‚nVÄëÑ,›Ñíê6[Órãó/+h?ú~;ºþpG‹m÷8²Ê×´- å3|ÃÇ÷k¼°4_fôÛ§{ú¤ÚÃJÐGS¶J¸«íŸ`ž'€éÍ2[bŒóŒÞ¦õ©fIóyW³È³U¨ÙVÒQix[ í©Ž[YG•9’7T³GA­ä+AZ_g@{Á|kqÌìiÃê‚ÑM6Ë(€‡Î3šÎo'fy%½à¡œŽÌ+KQ†VRs+XתfR{¼X!•ô§3.SÊ¥>$"²AOœ-€eì#€Œ~ÑЉ†Yæ…:ÑÞš:Ðéþ÷ –i^¢€iÈN*EL9ƒ74ÅIiË)ÐÀçIèÒØؼh¹o5÷Òh©ƒ^’ÄWÖ´‡Š8•ÚeÉ”;º4nÙ·ÈèG¡…eŠ~yöIŠc*ÅÃ?*¡‰é( W‚¥.؉֮.ÊI|'oeRKV#W1 Å”„ -öDÅ)™Ìj‘:!½}Zz÷BmÃwo¯Qø.sfHkšVL—ÈgÈLâ³'‰páô7ž5ÄìòõY¥FÔ!œ:eôÁØ€}ˆæa˜˜ÐÏ›÷ùAŽJFRw„•cÎ}Î5‹Î#r)‚J®2­  e8ÒS"žaž!üµ·.ÄÞãß]£é5dz!LÖ¹Íò^Ôù‰ -©‚²AØÔP«%‚›ižb~@a±Êbj~JE¯ÃL¢½×Ýx±õs½é ÿŽ›º†ƒîaüp•.ñ™ÇBí¤ÄÅü{Ó_Lfq™¸o{±îú³LDqµÏþҕøLñ¤7\i?¡Ëoœ}šäÐ|†mŠ%F_ÿK§·-÷Ĺë>¾áué&pÖ““ÿˆ‡«ïãÕ9ø‹¸$‰¡›XéÏ+-xw¯d¸páN„]¾ -ŸK -†Q§—g1Ì×7¸ûXþÿ8Œöed†[‰Áô,Gp•ylü&.cK¬_Eº­ ‘6Ýs$Cn:ô^«áTPóËÍ£8õ%–~ºmý¹ÏøF¤{â¢,×o‡e믌™þ°Ó¿í 뮫QüÍê» £w+(=Ý°2»ËÑ­åõEnoSpÿÓ£x™/³|µÆ“ÉÌó ÃÛѯ£È€endstream -endobj -687 0 obj<>endobj -688 0 obj<>endobj -689 0 obj<>endobj -690 0 obj<>endobj -691 0 obj<>endobj -692 0 obj<>endobj -693 0 obj<>endobj -694 0 obj<>endobj -695 0 obj<>endobj -696 0 obj<>endobj -697 0 obj<>endobj -698 0 obj<>endobj -699 0 obj<>endobj -700 0 obj<>endobj -701 0 obj<>endobj -702 0 obj<>endobj -703 0 obj<>endobj -704 0 obj<>endobj -705 0 obj<>endobj -706 0 obj<>endobj -707 0 obj<>endobj -708 0 obj<>endobj -709 0 obj<>endobj -710 0 obj<>endobj -711 0 obj<>endobj -712 0 obj<>endobj -713 0 obj<>endobj -714 0 obj<>endobj -715 0 obj<>endobj -716 0 obj<>endobj -717 0 obj<>endobj -718 0 obj<>endobj -719 0 obj<>endobj -720 0 obj<>endobj -721 0 obj<>endobj -722 0 obj<>endobj -723 0 obj<>endobj -724 0 obj<>endobj -725 0 obj<>endobj -726 0 obj<>endobj -727 0 obj<>endobj -728 0 obj<>endobj -729 0 obj<>endobj -730 0 obj<>endobj -731 0 obj<>endobj -732 0 obj<>endobj -733 0 obj<>endobj -734 0 obj<>endobj -735 0 obj<>endobj -736 0 obj<>endobj -737 0 obj<>endobj -738 0 obj<>endobj -739 0 obj<>endobj -740 0 obj<>endobj -741 0 obj<>endobj -742 0 obj<>endobj -743 0 obj<>endobj -744 0 obj<>endobj -745 0 obj<>endobj -746 0 obj<>endobj -747 0 obj<>endobj -748 0 obj<>endobj -749 0 obj<>endobj -750 0 obj<>endobj -751 0 obj<>endobj -752 0 obj<>endobj -753 0 obj<>endobj -754 0 obj<>endobj -755 0 obj<>endobj -756 0 obj<>endobj -757 0 obj<>endobj -758 0 obj<>endobj -759 0 obj<>endobj -760 0 obj<>endobj -761 0 obj<>endobj -762 0 obj<>endobj -763 0 obj<>endobj -764 0 obj<>endobj -765 0 obj<>endobj -766 0 obj<>endobj -767 0 obj<>endobj -768 0 obj<>endobj -769 0 obj<>endobj -770 0 obj<>endobj -771 0 obj<>endobj -772 0 obj<>endobj -773 0 obj<>endobj -774 0 obj<>endobj -775 0 obj<>endobj -776 0 obj<>endobj -777 0 obj<>endobj -778 0 obj<>endobj -779 0 obj<>endobj -780 0 obj<>endobj -781 0 obj<>endobj -782 0 obj<>endobj -783 0 obj<>endobj -784 0 obj<>endobj -785 0 obj<>endobj -786 0 obj<>endobj -787 0 obj<>endobj -788 0 obj<>endobj -789 0 obj<>endobj -790 0 obj<>endobj -791 0 obj<>endobj -792 0 obj<>endobj -793 0 obj<>endobj -794 0 obj<>endobj -795 0 obj<>endobj -796 0 obj<>endobj -797 0 obj<>endobj -798 0 obj<>endobj -799 0 obj<>endobj -800 0 obj<>endobj -801 0 obj<>endobj -802 0 obj<>endobj -803 0 obj<>endobj -804 0 obj<>endobj -805 0 obj<>endobj -806 0 obj<>endobj -807 0 obj<>endobj -808 0 obj<>endobj -809 0 obj<>endobj -810 0 obj<>endobj -811 0 obj<>endobj -812 0 obj<>endobj -813 0 obj<>endobj -814 0 obj<>endobj -815 0 obj<>endobj -816 0 obj<>endobj -817 0 obj<The smbpasswd file)/Dest[681 0 R/XYZ 0 771 0]/Prev 816 0 R>>endobj -818 0 obj<>endobj -819 0 obj<>endobj -820 0 obj<>endobj -821 0 obj<>1<>5<>6<>9<>11<>13<>17<>19<>24<>27<>31<>33<>68<>73<>74<>78<>81<>]>>>>endobj +xSÉ$,³À0Óo•×bdó„¨õOÞÒ¿lÙWï?ÐïÓ››Oþ|û*¬m†Äèó¤ ¯³¯¥vÒÖݸy^çüp|&¼fý<}3}÷fJoñÒJ5Ú¥ßÐ#|ÅímvöÆ4”$¼dŸ{ÄžŽO£ñè< ÀãûuvðÇÁ£³»øendstream +endobj +716 0 obj<>/XObject<<>>>>>>endobj +717 0 obj<>stream +xm•[oÛF…ßõ+Î[i@¢)Y!e-`7I ¹´VÐQ–äPd½Üu¹¤þûÌ,uqS p×3g¾93þ2GÄŸ9’nbdõ$ +#,_ÅaŒå*áß þ6„br¿™\¿]b>Ǧà?‰W 69øza“omú¦ê'MS´™&Õ - OʹÞ69 +¾Ò9jÚtŠ²rpuêOù¬Ò2m3 ·Î¡­}„® ë«Íœ:Âí˜y¶X†KÎàðp¸õ<ŠÖ>âÓÝÃÃ?ÿ~ýïKÏú¥—Ïß­¿|>ƾ®ÿü}3ãêü³¾·é/E§5Œªi}ÍYK{øáJÒz”y&4»‰Ã•è|W`°cTZÛ¾2;ÏÁ 'â)Qd¶®•ÉåÐQ+‡UÛ›H7õñjŬ”á»jO’?Âl~.$«vxÆ•©ÚŠ pVÂÈ-ŒmQª=‹°ÂŸ»£ðÔо²;eD_’AV*³ñ|uTe¨¿Èzjö6È I5drÊ·W!Þ°8‡XA˜p$„ã±8èñÕÁfÁÙ!?Ò X£Ý5ªFݹ)“MÙ@.³ÆPÖ^È¿<¿Œ›+ª­5ªýÚWmÉ N8B¼1c>QPyî¹°ÛueN–=–Á]YÄ£gèÉáW ä~”ðìò¨_vÚ¦Je;dmÅâl!¨„MÈåãðlÏõåàÏUj¹¯.#£šÊ‚O^hɧ† +j¸šazÁL“©–¤Qãà:öFN…êt{ªA˜§Ä¶€PšŠµ¤±?9ëÌ‹ ðÙŸ{j±úø´XN¨>XÎ}þãTØr¿-\é÷ž½Ð2ÊÁd>/XObject<<>>>>>>endobj +719 0 obj<>stream +xuV]oã6|ϯX\ ÄbÙ²Ûé=%mH{hãG%Q6IÔ‰T|FÑÿÞYŠò‡b#QäîìîÌP߯Bá'¤ù˜&3Šó«Q0¢»0 îiº˜ãÿ1~+I©{1™O‚ðÜ‹ñx~þÅ|Lº—Wç{h™"ùl¾ eBH<ÂJÜûu#J++ +§ý¡“:“¦¿üÇ çÍ‘ÁdŒq¨‡=a@ɇ(¬X·§†~#pÍxãr#©[Ê›€dvÆÊœ6ÂÅ«Tg™ÞªbMbëÎÓɘ³À_T‰Â”¢’…¥L‹„Ï蔌VÅ$Š„Ìo“}¦U¯ÐH•TW$ÈÔ‘On5½zK"Òµm÷¯úœvDƒpŒfwœòUåe&ÉÈLÆVé‚"i·Rm&—´Éß–',źHÕºÆì¬Ê姠_ÊJ2þ6ïÒ¥ Î(UWR®­”VrQÄÜ¥Š Æ'â°ƒ°¢XaìŽ~Jdª +À¶uš¢1»\WŸakàwg£=¤Œ‹û´ÇHÏ_Dn^ò‡Œ‘$¹4%G±fþ€&ŒËãl#t‘†ß Ÿ‡¯4þÒœ;^øø›Î§Á|¶€+Ã=æ ðûò꯫ÿ@¦r7endstream +endobj +720 0 obj<>/XObject<<>>>>>>endobj +721 0 obj<>stream +x•VïOãFýÎ_1º~ÀHÁ$´_.Ü… +©WlZÉZÛ›dg7çµ´êÿÞ·?lz-”س3ofÞ¼o{#âwD“c:9£l½7 ‡4>95ÿÏ'øŒ¿’Ó¾OÂóþ‹Ëxïèê‚FŠðuv>¢8'ø)΂Ñ8< é÷RTB.i­òºàú þŠCcÁÖ:<ž„g8ÌX¶òF´bš˜$!q”B³J(I‹ZfæCHWªlüQµb12+êœçô$ªi¶N^ +M’­ñÖFF¼ÑIxlâí;$Ì# tê­®øzaôìR–=p™÷­ Ö}‡Œ?W¼”¬h!Î òIIþÈKJ9¥µ(ªC!øT‘’Å–Ø#K N&|~`Bu€ws"V<±­¦}>q%Šyp-‘;§ŒiNjÑ"y¥Fg¨äB,k”ÑEX–Û<;Áýó…°kê•øŠ$Ã<˜ؾy0æûü ¤`6¥ªTµÝ€Sèà[ÓSýèj:¤‹†ãplZ%dµëóQ‰|~ðÓn —,“bÓôÆ1镪‹•@> +¸-ugÉ—BWå.µ´CÚ?\òª.%I%ÿू¤Ÿe\÷IÅdNÅÍDACß¾ã3—Œá.fëMÁ´ÉÓ¤ÈÙæ¥v™’òß‹Ñ;æÊÑÐdˆAEÑþì}'üèuš¸¼y™l˜Öy:Þ—wŽe’4 ÏÓ(úx™\ŠgwWÓ³ä·Ù]t}ûÉWß0ÃÇû®ÿDÖì•æñÿcbùžÄw÷3K„”¿1 L ™£LNF!EºžE+ÈFNšÜê +8F(¿›ƒPHçeGªŒ—HANÖ,+H»{‚–\rPŠÛ™zd¥Pµ&70FÑ SSi¼ö¢%¹a+·ÍL4óW)zRåCÓD/Z™*K€ i +6{EuÎ<Ía¡tkⲺ¨ ¦¤Œè` ‘1>q0ø¬Úì{K?³ÚéX/tËY± C ,0×2a±yÔ‰€oMˆþÜ:yJUU©µ¨nÝÝ\&7·ï™Y=yÉÍL10úÁ;÷*ÛCk>/XObject<<>>>>>>endobj +723 0 obj<>stream +x•Vaâ6üίxßÊž ¶=tE½ªRO½Ô~Y 9Ž!î:vj;Ké¯ïØNnÛ[µ»E‰3oÞ¼ñ˜¿SšàJËœf âõ`’Mènq—­h¾Zâ:ÇÇ +ÚÇùlšÍ¯|¿Ü~¸§|BÛ=°ËmKÎwøp]±Æ KÓ»Œ~û´¦Oª=X¡}4e«„»Ùþ¦Ë0žÍ³C¼1Íè}aZŸÖÌi:íÖäËlÖl+é¨4¼­…öT +Ç­,„£Êɪ٣ Ö ò• -Ž/3 ½`¾µxÍìiÃê‚Ñ,›dÀCå §³Ä‰Y^I/xXNG戕¥(C)©¹¬+U3©=>¬JúÓ3.SÊ¥>$"²AM¼[ËØG}UЉ†Yæ…:ÑÞš:6Ðiýû† +Ë4¯QÀtÉN*EL9ƒ/śҖc Ï“Ð¥±±6¸*¹o5÷Òh©ƒ^’ÄWÖ´‡Š p,µËÒPîé|pónpyF? +-,SôË“°ORÓòføG%41%áàJ© ãDiWå(~“·2©¥ +‰‘«˜…bJB{¢â”†Ìj‘*ÁÖ½[úé…µ ß½m ¼ÆÂw™3—´†¡hÅt Ï$>{’0—NãéQCÌÎ__¬Ô°:„S§Œ>°ÏÌÑ<&Fôóæ}„†ࣄR†.©;ÂÊ1ç¾äšÅÉÃrR•\eZ@AÊp¸§„=C?—ðgÔÞº`{kŒw‹¢·éJ˜¬›B–÷¢n|ôOT(H%µô»:îiê-DG ÛÅÒ—$OÑ=gÖ•àIò.0Œ¦„æho,®¡”Ô¸¬Ypg/IH‚ŸR•—XŒ"no”N›È;¸!˜agÅA:ÌnÇM]cüîaøp“à¹4AÏIÆ3î{Óïjf1‰Ü·½Ò÷}`ÍMä½V•˜„8¼Mo¸Ò~Dçwœ}äP|‚ŒFßôú_zÛyÛrO¬‘»îò ¯K7‚ žœüG<Ü|—/žwM6¸´ŠÏy¿V2ìÖ°¡BÐ…[Ấ ì%êøü]4ó:ðÁ“ã‡Ö¾ŽÌLŸåSeÇESÈØÙ­H·u!RL~vtðM‡ÞkuÙÔüzñ(ND½&€A…#mÕ¾ƒˆÜ;|#D´Ž‹²ÜB¾`ÛŒ#;Ëì´Ç³°u•uÈUñ7«Zïò+ÈÛnst™¾:3Á>/XObject<<>>>>>>endobj +725 0 obj<>stream +x…TK›0¾ó+æ˜UÁBB¨ÔK¹µjUÔÓ^ 6Á]°½~d»ÿ¾ƒ!iµª¢ÉÌ|ó=ÆyŽ2Hñ“A™Ãfí¥$…ív‹Ïb_â3ǯáÐEïëh}¨ O¡î°eWî¡f€å)ž´«=ÕŽÈv¾(Ç-8š¶OôÈ}¨†î¬œ»“MArì_ayFà–%…<Î…dÙR˜—d7~8µ<~ÁkF×s8ÍÍ ýØ !aAYde•7-_ ÙžñõROúÛY«‰ðRs‹¤@uSm +I¶™i¿"äYºFú„¢…ä)¢1a¶{a{°ŽJF KdžBãÅÀ,tFÐzëÔ˜„£›×wCW wh–EVŽKdáÚþÌÅ>>8(üѪ(•b“^”4üíÙ£êìsAŠÉç% +̽ªª7’:èžæY²…?òFP9wWp•ç’fNà³b~àKæ‰ò{p@ªè©ëµVÆð`Ád¸¦ÆM;°Lþ(¤½7[+kE3à&¨8@\„kïîüÕ€ÆWû<\æâ¾P°\s3-Ô²±1n€™Nl0Ô«9ÈúıG*3RÄ j–><¼ŸÊZ²°En( 5/ ÀчïuÓEy Æ˦FÖ­’8z¼ªIò"\ŸØžÎ’qãÑm|êlL½ëcÍš¸Å÷–¶ëÃþÏ…+¶›)Êÿßç¢,H¹Ûã–ï³ÉìOuô-ú ®þY”endstream +endobj +726 0 obj<>endobj +727 0 obj<>endobj +728 0 obj<>endobj +729 0 obj<>endobj +730 0 obj<>endobj +731 0 obj<>endobj +732 0 obj<>endobj +733 0 obj<>endobj +734 0 obj<>endobj +735 0 obj<>endobj +736 0 obj<>endobj +737 0 obj<>endobj +738 0 obj<>endobj +739 0 obj<>endobj +740 0 obj<>endobj +741 0 obj<>endobj +742 0 obj<>endobj +743 0 obj<>endobj +744 0 obj<>endobj +745 0 obj<>endobj +746 0 obj<>endobj +747 0 obj<>endobj +748 0 obj<>endobj +749 0 obj<>endobj +750 0 obj<>endobj +751 0 obj<>endobj +752 0 obj<>endobj +753 0 obj<>endobj +754 0 obj<>endobj +755 0 obj<>endobj +756 0 obj<>endobj +757 0 obj<>endobj +758 0 obj<>endobj +759 0 obj<>endobj +760 0 obj<>endobj +761 0 obj<>endobj +762 0 obj<>endobj +763 0 obj<>endobj +764 0 obj<>endobj +765 0 obj<>endobj +766 0 obj<>endobj +767 0 obj<>endobj +768 0 obj<>endobj +769 0 obj<>endobj +770 0 obj<>endobj +771 0 obj<>endobj +772 0 obj<>endobj +773 0 obj<>endobj +774 0 obj<>endobj +775 0 obj<>endobj +776 0 obj<>endobj +777 0 obj<>endobj +778 0 obj<>endobj +779 0 obj<>endobj +780 0 obj<>endobj +781 0 obj<>endobj +782 0 obj<>endobj +783 0 obj<>endobj +784 0 obj<>endobj +785 0 obj<>endobj +786 0 obj<>endobj +787 0 obj<>endobj +788 0 obj<>endobj +789 0 obj<>endobj +790 0 obj<>endobj +791 0 obj<>endobj +792 0 obj<>endobj +793 0 obj<>endobj +794 0 obj<>endobj +795 0 obj<>endobj +796 0 obj<>endobj +797 0 obj<>endobj +798 0 obj<>endobj +799 0 obj<>endobj +800 0 obj<>endobj +801 0 obj<>endobj +802 0 obj<>endobj +803 0 obj<>endobj +804 0 obj<>endobj +805 0 obj<>endobj +806 0 obj<>endobj +807 0 obj<>endobj +808 0 obj<>endobj +809 0 obj<>endobj +810 0 obj<>endobj +811 0 obj<>endobj +812 0 obj<>endobj +813 0 obj<>endobj +814 0 obj<>endobj +815 0 obj<>endobj +816 0 obj<>endobj +817 0 obj<>endobj +818 0 obj<>endobj +819 0 obj<>endobj +820 0 obj<>endobj +821 0 obj<>endobj +822 0 obj<>endobj +823 0 obj<>endobj +824 0 obj<>endobj +825 0 obj<>endobj +826 0 obj<>endobj +827 0 obj<>endobj +828 0 obj<>endobj +829 0 obj<>endobj +830 0 obj<>endobj +831 0 obj<>endobj +832 0 obj<>endobj +833 0 obj<>endobj +834 0 obj<>endobj +835 0 obj<>endobj +836 0 obj<>endobj +837 0 obj<>endobj +838 0 obj<>endobj +839 0 obj<>endobj +840 0 obj<>endobj +841 0 obj<>endobj +842 0 obj<>endobj +843 0 obj<>endobj +844 0 obj<>endobj +845 0 obj<>endobj +846 0 obj<>endobj +847 0 obj<>endobj +848 0 obj<>endobj +849 0 obj<>endobj +850 0 obj<>endobj +851 0 obj<>endobj +852 0 obj<>endobj +853 0 obj<>endobj +854 0 obj<>endobj +855 0 obj<>endobj +856 0 obj<The smbpasswd file)/Dest[714 0 R/XYZ 0 771 0]/Prev 855 0 R>>endobj +857 0 obj<>endobj +858 0 obj<>endobj +859 0 obj<>endobj +860 0 obj<>endobj +861 0 obj<>endobj +862 0 obj<>endobj +863 0 obj<>endobj +864 0 obj<>endobj +865 0 obj<>endobj +866 0 obj<>endobj +867 0 obj<>endobj +868 0 obj<>endobj +869 0 obj<>endobj +870 0 obj<>1<>5<>6<>10<>12<>14<>18<>20<>25<>28<>32<>34<>69<>74<>75<>79<>82<>84<>85<>]>>>>endobj xref -0 822 +0 871 0000000000 65535 f 0000000015 00000 n 0000000242 00000 n @@ -1914,678 +2008,727 @@ xref 0000017163 00000 n 0000017266 00000 n 0000017369 00000 n -0000017426 00000 n -0000017481 00000 n -0000017568 00000 n -0000017623 00000 n -0000017710 00000 n -0000017777 00000 n -0000017863 00000 n -0000017965 00000 n -0000018068 00000 n -0000018171 00000 n -0000018274 00000 n -0000018376 00000 n -0000018479 00000 n -0000018582 00000 n -0000018685 00000 n -0000018788 00000 n -0000018891 00000 n -0000018993 00000 n -0000019096 00000 n -0000019199 00000 n -0000019302 00000 n -0000019405 00000 n -0000019508 00000 n -0000019611 00000 n -0000019714 00000 n -0000019817 00000 n -0000019919 00000 n -0000020021 00000 n -0000020124 00000 n -0000020227 00000 n -0000020330 00000 n -0000020433 00000 n -0000020536 00000 n -0000020639 00000 n -0000020742 00000 n -0000020845 00000 n -0000020948 00000 n -0000021051 00000 n -0000021154 00000 n -0000021257 00000 n -0000021359 00000 n -0000021460 00000 n -0000021561 00000 n -0000021890 00000 n -0000021993 00000 n -0000022096 00000 n -0000022199 00000 n -0000022302 00000 n -0000022405 00000 n -0000022508 00000 n -0000022611 00000 n -0000022713 00000 n -0000022816 00000 n -0000022919 00000 n -0000023022 00000 n -0000023125 00000 n -0000023228 00000 n -0000023331 00000 n -0000023433 00000 n -0000023536 00000 n -0000023639 00000 n -0000023742 00000 n -0000023845 00000 n -0000023948 00000 n -0000024051 00000 n -0000024154 00000 n -0000024257 00000 n -0000024360 00000 n -0000024462 00000 n -0000024564 00000 n -0000024667 00000 n -0000024770 00000 n -0000024873 00000 n -0000024976 00000 n -0000025079 00000 n -0000025182 00000 n -0000025285 00000 n -0000025388 00000 n -0000025491 00000 n -0000025594 00000 n -0000025697 00000 n -0000025800 00000 n -0000025903 00000 n -0000026006 00000 n -0000026109 00000 n -0000026212 00000 n -0000026315 00000 n -0000026418 00000 n -0000026521 00000 n -0000026624 00000 n -0000026727 00000 n -0000026830 00000 n -0000026932 00000 n -0000027033 00000 n -0000027134 00000 n -0000027559 00000 n -0000027662 00000 n -0000027765 00000 n -0000027868 00000 n -0000027971 00000 n -0000028074 00000 n -0000028177 00000 n -0000028280 00000 n -0000028383 00000 n -0000028486 00000 n -0000028589 00000 n -0000028692 00000 n -0000028795 00000 n -0000028898 00000 n -0000029001 00000 n -0000029103 00000 n -0000029206 00000 n -0000029309 00000 n -0000029412 00000 n -0000029515 00000 n -0000029618 00000 n -0000029720 00000 n -0000029823 00000 n -0000029925 00000 n -0000030028 00000 n -0000030131 00000 n -0000030234 00000 n -0000030337 00000 n -0000030440 00000 n -0000030543 00000 n -0000030646 00000 n -0000030749 00000 n -0000030852 00000 n -0000030955 00000 n -0000031058 00000 n -0000031161 00000 n -0000031263 00000 n -0000031366 00000 n -0000031469 00000 n -0000031572 00000 n -0000031674 00000 n -0000031777 00000 n -0000031880 00000 n -0000032233 00000 n -0000032317 00000 n -0000032403 00000 n -0000032477 00000 n -0000032563 00000 n -0000032596 00000 n -0000032674 00000 n -0000032761 00000 n -0000032867 00000 n -0000032953 00000 n -0000033025 00000 n -0000033111 00000 n -0000033170 00000 n -0000033257 00000 n -0000033348 00000 n -0000033434 00000 n -0000033505 00000 n -0000033591 00000 n -0000033656 00000 n -0000033690 00000 n -0000033724 00000 n -0000037122 00000 n -0000037165 00000 n -0000037208 00000 n -0000037251 00000 n -0000037294 00000 n -0000037337 00000 n -0000037380 00000 n -0000037423 00000 n -0000037466 00000 n -0000037509 00000 n -0000037552 00000 n -0000037595 00000 n -0000037638 00000 n -0000037681 00000 n -0000037724 00000 n -0000037767 00000 n -0000037810 00000 n -0000037853 00000 n -0000037896 00000 n -0000037939 00000 n -0000037982 00000 n -0000038025 00000 n -0000038068 00000 n -0000038111 00000 n -0000038154 00000 n -0000038197 00000 n -0000038240 00000 n -0000038283 00000 n -0000038326 00000 n -0000038369 00000 n -0000038412 00000 n -0000038455 00000 n -0000038498 00000 n -0000038541 00000 n -0000038584 00000 n -0000038627 00000 n -0000038670 00000 n -0000038713 00000 n -0000038756 00000 n -0000038799 00000 n -0000038842 00000 n -0000038885 00000 n -0000038928 00000 n -0000038971 00000 n -0000039014 00000 n -0000039057 00000 n -0000039100 00000 n -0000039143 00000 n -0000039186 00000 n -0000039229 00000 n -0000039272 00000 n -0000039315 00000 n -0000039358 00000 n -0000039401 00000 n -0000039444 00000 n -0000039487 00000 n -0000039530 00000 n -0000039573 00000 n -0000039616 00000 n -0000039659 00000 n -0000039702 00000 n -0000039745 00000 n -0000039788 00000 n -0000039831 00000 n -0000039874 00000 n -0000039917 00000 n -0000039960 00000 n -0000040003 00000 n -0000040046 00000 n -0000040089 00000 n -0000040132 00000 n -0000040175 00000 n -0000040218 00000 n -0000040261 00000 n -0000040304 00000 n -0000040347 00000 n -0000040390 00000 n -0000040433 00000 n -0000040476 00000 n -0000040519 00000 n -0000040562 00000 n -0000040605 00000 n -0000040648 00000 n -0000040691 00000 n -0000040734 00000 n -0000040777 00000 n -0000040820 00000 n -0000040863 00000 n -0000040906 00000 n -0000040949 00000 n -0000040992 00000 n -0000041035 00000 n -0000041078 00000 n -0000041121 00000 n -0000041164 00000 n -0000041207 00000 n -0000041250 00000 n -0000041293 00000 n -0000041336 00000 n -0000041379 00000 n -0000041422 00000 n -0000041465 00000 n -0000041508 00000 n -0000041551 00000 n -0000041594 00000 n -0000041637 00000 n -0000041680 00000 n -0000041723 00000 n -0000041766 00000 n -0000041809 00000 n -0000041852 00000 n -0000041895 00000 n -0000041938 00000 n -0000041981 00000 n -0000042024 00000 n -0000042067 00000 n -0000042110 00000 n -0000042153 00000 n -0000042196 00000 n -0000042239 00000 n -0000042282 00000 n -0000042325 00000 n -0000042368 00000 n -0000042411 00000 n -0000042454 00000 n -0000042497 00000 n -0000042540 00000 n -0000042583 00000 n -0000042626 00000 n -0000042669 00000 n -0000042712 00000 n -0000042755 00000 n -0000042798 00000 n -0000042841 00000 n -0000042884 00000 n -0000042927 00000 n -0000042970 00000 n -0000043013 00000 n -0000043056 00000 n -0000043099 00000 n -0000043142 00000 n -0000043185 00000 n -0000043228 00000 n -0000043271 00000 n -0000043314 00000 n -0000043357 00000 n -0000043400 00000 n -0000043443 00000 n -0000043486 00000 n -0000043529 00000 n -0000043572 00000 n -0000043615 00000 n -0000043658 00000 n -0000043701 00000 n -0000043744 00000 n -0000043787 00000 n -0000043830 00000 n -0000043873 00000 n -0000043916 00000 n -0000043959 00000 n -0000044002 00000 n -0000044045 00000 n -0000044088 00000 n -0000044131 00000 n -0000044174 00000 n -0000044217 00000 n -0000044260 00000 n -0000044303 00000 n -0000044346 00000 n -0000044389 00000 n -0000044432 00000 n -0000044475 00000 n -0000044518 00000 n -0000044561 00000 n -0000044604 00000 n -0000044647 00000 n -0000044690 00000 n -0000044733 00000 n -0000044776 00000 n -0000044819 00000 n -0000044862 00000 n -0000044905 00000 n -0000044948 00000 n -0000044991 00000 n -0000045034 00000 n -0000045077 00000 n -0000045120 00000 n -0000045163 00000 n -0000045206 00000 n -0000045249 00000 n -0000045292 00000 n -0000045335 00000 n -0000045378 00000 n -0000045421 00000 n -0000045464 00000 n -0000045507 00000 n -0000045550 00000 n -0000045593 00000 n -0000045636 00000 n -0000045679 00000 n -0000045722 00000 n -0000045765 00000 n -0000045808 00000 n -0000045851 00000 n -0000045894 00000 n -0000045937 00000 n -0000045980 00000 n -0000046023 00000 n -0000046066 00000 n -0000046109 00000 n -0000046152 00000 n -0000046195 00000 n -0000046898 00000 n -0000047055 00000 n -0000047222 00000 n -0000047411 00000 n -0000050013 00000 n -0000050203 00000 n -0000053308 00000 n -0000053498 00000 n -0000057038 00000 n -0000057228 00000 n -0000057900 00000 n -0000058057 00000 n -0000058286 00000 n -0000058485 00000 n -0000060294 00000 n -0000060465 00000 n -0000062548 00000 n -0000062719 00000 n -0000064739 00000 n -0000064905 00000 n -0000066550 00000 n -0000066716 00000 n -0000068258 00000 n -0000068424 00000 n -0000070158 00000 n -0000070324 00000 n -0000072060 00000 n -0000072235 00000 n -0000073500 00000 n -0000073675 00000 n -0000074886 00000 n -0000075061 00000 n -0000076309 00000 n -0000076475 00000 n -0000077385 00000 n -0000077575 00000 n -0000079536 00000 n -0000079692 00000 n -0000081469 00000 n -0000081635 00000 n -0000083617 00000 n -0000083783 00000 n -0000084519 00000 n -0000084694 00000 n -0000085736 00000 n -0000085902 00000 n -0000087537 00000 n -0000087703 00000 n -0000088327 00000 n -0000088502 00000 n -0000089832 00000 n -0000090007 00000 n -0000091081 00000 n -0000091247 00000 n -0000091848 00000 n -0000092014 00000 n -0000093800 00000 n -0000093966 00000 n -0000095683 00000 n -0000095849 00000 n -0000097698 00000 n -0000097854 00000 n -0000098969 00000 n -0000099153 00000 n -0000100760 00000 n -0000100925 00000 n -0000101814 00000 n -0000102013 00000 n -0000103738 00000 n -0000103913 00000 n -0000105738 00000 n -0000105913 00000 n -0000106524 00000 n -0000106699 00000 n -0000107474 00000 n -0000107649 00000 n -0000108406 00000 n -0000108581 00000 n -0000109420 00000 n -0000109595 00000 n -0000110431 00000 n -0000110615 00000 n -0000111455 00000 n -0000111630 00000 n -0000112390 00000 n -0000112555 00000 n -0000113180 00000 n -0000113364 00000 n -0000114132 00000 n -0000114307 00000 n -0000115269 00000 n -0000115453 00000 n -0000116788 00000 n -0000116972 00000 n -0000117990 00000 n -0000118155 00000 n -0000118735 00000 n -0000118919 00000 n -0000119978 00000 n -0000120153 00000 n -0000121031 00000 n -0000121206 00000 n -0000122300 00000 n -0000122484 00000 n -0000123370 00000 n -0000123554 00000 n -0000124331 00000 n -0000124506 00000 n -0000125107 00000 n -0000125282 00000 n -0000125944 00000 n -0000126128 00000 n -0000127105 00000 n -0000127280 00000 n -0000128287 00000 n -0000128462 00000 n -0000129456 00000 n -0000129640 00000 n -0000130472 00000 n -0000130647 00000 n -0000131380 00000 n -0000131555 00000 n -0000132237 00000 n -0000132412 00000 n -0000133241 00000 n -0000133416 00000 n -0000134404 00000 n -0000134579 00000 n -0000135963 00000 n -0000136147 00000 n -0000136942 00000 n -0000137126 00000 n -0000137788 00000 n -0000137963 00000 n -0000138370 00000 n -0000138535 00000 n -0000138841 00000 n -0000139036 00000 n -0000140567 00000 n -0000140742 00000 n -0000142458 00000 n -0000142643 00000 n -0000144224 00000 n -0000144409 00000 n -0000146175 00000 n -0000146341 00000 n -0000146720 00000 n -0000146895 00000 n -0000148192 00000 n -0000148367 00000 n -0000150070 00000 n -0000150246 00000 n -0000151998 00000 n -0000152164 00000 n -0000154058 00000 n -0000154242 00000 n -0000155512 00000 n -0000155687 00000 n -0000157415 00000 n -0000157627 00000 n -0000159250 00000 n -0000159433 00000 n -0000160345 00000 n -0000160529 00000 n -0000161529 00000 n -0000161585 00000 n -0000161684 00000 n -0000161837 00000 n -0000161916 00000 n -0000162019 00000 n -0000162217 00000 n -0000162311 00000 n -0000162428 00000 n -0000162527 00000 n -0000162687 00000 n -0000162786 00000 n -0000162910 00000 n -0000163024 00000 n -0000163138 00000 n -0000163236 00000 n -0000163400 00000 n -0000163504 00000 n -0000163623 00000 n -0000163745 00000 n -0000163867 00000 n -0000164003 00000 n -0000164103 00000 n -0000164215 00000 n -0000164325 00000 n -0000164449 00000 n -0000164606 00000 n -0000164711 00000 n -0000164828 00000 n -0000164986 00000 n -0000165090 00000 n -0000165207 00000 n -0000165329 00000 n -0000165446 00000 n -0000165563 00000 n -0000165681 00000 n -0000165799 00000 n -0000165921 00000 n -0000166043 00000 n -0000166167 00000 n -0000166291 00000 n -0000166410 00000 n -0000166529 00000 n -0000166653 00000 n -0000166764 00000 n -0000166921 00000 n -0000167020 00000 n -0000167121 00000 n -0000167228 00000 n -0000167387 00000 n -0000167526 00000 n -0000167637 00000 n -0000167768 00000 n -0000167881 00000 n -0000168010 00000 n -0000168100 00000 n -0000168265 00000 n -0000168364 00000 n -0000168473 00000 n -0000168587 00000 n -0000168696 00000 n -0000168803 00000 n -0000168913 00000 n -0000169026 00000 n -0000169138 00000 n -0000169244 00000 n -0000169376 00000 n -0000169533 00000 n -0000169668 00000 n -0000169764 00000 n -0000169860 00000 n -0000170016 00000 n -0000170110 00000 n -0000170224 00000 n -0000170323 00000 n -0000170490 00000 n -0000170590 00000 n -0000170698 00000 n -0000170804 00000 n -0000170925 00000 n -0000171052 00000 n -0000171169 00000 n -0000171292 00000 n -0000171423 00000 n -0000171540 00000 n -0000171652 00000 n -0000171770 00000 n -0000171876 00000 n -0000172044 00000 n -0000172154 00000 n -0000172274 00000 n -0000172399 00000 n -0000172514 00000 n -0000172617 00000 n -0000172779 00000 n -0000172881 00000 n -0000172979 00000 n -0000173141 00000 n -0000173244 00000 n -0000173352 00000 n -0000173534 00000 n -0000173634 00000 n -0000173744 00000 n -0000173841 00000 n -0000173977 00000 n -0000174081 00000 n -0000174185 00000 n -0000174352 00000 n -0000174448 00000 n -0000174588 00000 n -0000174706 00000 n -0000174857 00000 n -0000174980 00000 n -0000175143 00000 n -0000175231 00000 n -0000175397 00000 n -0000175510 00000 n -0000175631 00000 n -0000175764 00000 n -0000175907 00000 n -0000176008 00000 n -0000176124 00000 n -0000176225 00000 n -0000176373 00000 n -0000176489 00000 n -0000176586 00000 n -0000176704 00000 n -0000176799 00000 n -0000176975 00000 n -0000177075 00000 n -0000177193 00000 n -0000177300 00000 n -0000177451 00000 n -0000177544 00000 n -0000177648 00000 n +0000017472 00000 n +0000017575 00000 n +0000017678 00000 n +0000017781 00000 n +0000017883 00000 n +0000017986 00000 n +0000018089 00000 n +0000018191 00000 n +0000018294 00000 n +0000018397 00000 n +0000018534 00000 n +0000018589 00000 n +0000018676 00000 n +0000018731 00000 n +0000018818 00000 n +0000018885 00000 n +0000018971 00000 n +0000019073 00000 n +0000019176 00000 n +0000019279 00000 n +0000019382 00000 n +0000019484 00000 n +0000019587 00000 n +0000019690 00000 n +0000019793 00000 n +0000019896 00000 n +0000019999 00000 n +0000020101 00000 n +0000020204 00000 n +0000020307 00000 n +0000020410 00000 n +0000020513 00000 n +0000020616 00000 n +0000020719 00000 n +0000020822 00000 n +0000020925 00000 n +0000021027 00000 n +0000021129 00000 n +0000021232 00000 n +0000021335 00000 n +0000021438 00000 n +0000021541 00000 n +0000021644 00000 n +0000021747 00000 n +0000021850 00000 n +0000021953 00000 n +0000022056 00000 n +0000022159 00000 n +0000022262 00000 n +0000022365 00000 n +0000022467 00000 n +0000022568 00000 n +0000022669 00000 n +0000022998 00000 n +0000023101 00000 n +0000023204 00000 n +0000023307 00000 n +0000023410 00000 n +0000023513 00000 n +0000023616 00000 n +0000023719 00000 n +0000023821 00000 n +0000023924 00000 n +0000024027 00000 n +0000024130 00000 n +0000024233 00000 n +0000024336 00000 n +0000024439 00000 n +0000024541 00000 n +0000024644 00000 n +0000024747 00000 n +0000024850 00000 n +0000024953 00000 n +0000025056 00000 n +0000025159 00000 n +0000025262 00000 n +0000025365 00000 n +0000025468 00000 n +0000025570 00000 n +0000025672 00000 n +0000025775 00000 n +0000025878 00000 n +0000025981 00000 n +0000026084 00000 n +0000026187 00000 n +0000026290 00000 n +0000026393 00000 n +0000026496 00000 n +0000026599 00000 n +0000026702 00000 n +0000026805 00000 n +0000026908 00000 n +0000027011 00000 n +0000027114 00000 n +0000027217 00000 n +0000027320 00000 n +0000027423 00000 n +0000027526 00000 n +0000027629 00000 n +0000027732 00000 n +0000027835 00000 n +0000027938 00000 n +0000028040 00000 n +0000028141 00000 n +0000028242 00000 n +0000028667 00000 n +0000028770 00000 n +0000028873 00000 n +0000028976 00000 n +0000029079 00000 n +0000029182 00000 n +0000029285 00000 n +0000029388 00000 n +0000029491 00000 n +0000029594 00000 n +0000029697 00000 n +0000029800 00000 n +0000029903 00000 n +0000030006 00000 n +0000030109 00000 n +0000030211 00000 n +0000030314 00000 n +0000030417 00000 n +0000030520 00000 n +0000030623 00000 n +0000030726 00000 n +0000030828 00000 n +0000030931 00000 n +0000031033 00000 n +0000031136 00000 n +0000031239 00000 n +0000031342 00000 n +0000031445 00000 n +0000031548 00000 n +0000031651 00000 n +0000031754 00000 n +0000031857 00000 n +0000031960 00000 n +0000032063 00000 n +0000032166 00000 n +0000032269 00000 n +0000032371 00000 n +0000032474 00000 n +0000032577 00000 n +0000032680 00000 n +0000032782 00000 n +0000032885 00000 n +0000032988 00000 n +0000033091 00000 n +0000033194 00000 n +0000033297 00000 n +0000033400 00000 n +0000033502 00000 n +0000033605 00000 n +0000033707 00000 n +0000033807 00000 n +0000033908 00000 n +0000034333 00000 n +0000034436 00000 n +0000034461 00000 n +0000034545 00000 n +0000034631 00000 n +0000034705 00000 n +0000034791 00000 n +0000034824 00000 n +0000034902 00000 n +0000034989 00000 n +0000035095 00000 n +0000035181 00000 n +0000035253 00000 n +0000035339 00000 n +0000035398 00000 n +0000035485 00000 n +0000035576 00000 n +0000035662 00000 n +0000035733 00000 n +0000035819 00000 n +0000035884 00000 n +0000035918 00000 n +0000035952 00000 n +0000039512 00000 n +0000039555 00000 n +0000039598 00000 n +0000039641 00000 n +0000039684 00000 n +0000039727 00000 n +0000039770 00000 n +0000039813 00000 n +0000039856 00000 n +0000039899 00000 n +0000039942 00000 n +0000039985 00000 n +0000040028 00000 n +0000040071 00000 n +0000040114 00000 n +0000040157 00000 n +0000040200 00000 n +0000040243 00000 n +0000040286 00000 n +0000040329 00000 n +0000040372 00000 n +0000040415 00000 n +0000040458 00000 n +0000040501 00000 n +0000040544 00000 n +0000040587 00000 n +0000040630 00000 n +0000040673 00000 n +0000040716 00000 n +0000040759 00000 n +0000040802 00000 n +0000040845 00000 n +0000040888 00000 n +0000040931 00000 n +0000040974 00000 n +0000041017 00000 n +0000041060 00000 n +0000041103 00000 n +0000041146 00000 n +0000041189 00000 n +0000041232 00000 n +0000041275 00000 n +0000041318 00000 n +0000041361 00000 n +0000041404 00000 n +0000041447 00000 n +0000041490 00000 n +0000041533 00000 n +0000041576 00000 n +0000041619 00000 n +0000041662 00000 n +0000041705 00000 n +0000041748 00000 n +0000041791 00000 n +0000041834 00000 n +0000041877 00000 n +0000041920 00000 n +0000041963 00000 n +0000042006 00000 n +0000042049 00000 n +0000042092 00000 n +0000042135 00000 n +0000042178 00000 n +0000042221 00000 n +0000042264 00000 n +0000042307 00000 n +0000042350 00000 n +0000042393 00000 n +0000042436 00000 n +0000042479 00000 n +0000042522 00000 n +0000042565 00000 n +0000042608 00000 n +0000042651 00000 n +0000042694 00000 n +0000042737 00000 n +0000042780 00000 n +0000042823 00000 n +0000042866 00000 n +0000042909 00000 n +0000042952 00000 n +0000042995 00000 n +0000043038 00000 n +0000043081 00000 n +0000043124 00000 n +0000043167 00000 n +0000043210 00000 n +0000043253 00000 n +0000043296 00000 n +0000043339 00000 n +0000043382 00000 n +0000043425 00000 n +0000043468 00000 n +0000043511 00000 n +0000043554 00000 n +0000043597 00000 n +0000043640 00000 n +0000043683 00000 n +0000043726 00000 n +0000043769 00000 n +0000043812 00000 n +0000043855 00000 n +0000043898 00000 n +0000043941 00000 n +0000043984 00000 n +0000044027 00000 n +0000044070 00000 n +0000044113 00000 n +0000044156 00000 n +0000044199 00000 n +0000044242 00000 n +0000044285 00000 n +0000044328 00000 n +0000044371 00000 n +0000044414 00000 n +0000044457 00000 n +0000044500 00000 n +0000044543 00000 n +0000044586 00000 n +0000044629 00000 n +0000044672 00000 n +0000044715 00000 n +0000044758 00000 n +0000044801 00000 n +0000044844 00000 n +0000044887 00000 n +0000044930 00000 n +0000044973 00000 n +0000045016 00000 n +0000045059 00000 n +0000045102 00000 n +0000045145 00000 n +0000045188 00000 n +0000045231 00000 n +0000045274 00000 n +0000045317 00000 n +0000045360 00000 n +0000045403 00000 n +0000045446 00000 n +0000045489 00000 n +0000045532 00000 n +0000045575 00000 n +0000045618 00000 n +0000045661 00000 n +0000045704 00000 n +0000045747 00000 n +0000045790 00000 n +0000045833 00000 n +0000045876 00000 n +0000045919 00000 n +0000045962 00000 n +0000046005 00000 n +0000046048 00000 n +0000046091 00000 n +0000046134 00000 n +0000046177 00000 n +0000046220 00000 n +0000046263 00000 n +0000046306 00000 n +0000046349 00000 n +0000046392 00000 n +0000046435 00000 n +0000046478 00000 n +0000046521 00000 n +0000046564 00000 n +0000046607 00000 n +0000046650 00000 n +0000046693 00000 n +0000046736 00000 n +0000046779 00000 n +0000046822 00000 n +0000046865 00000 n +0000046908 00000 n +0000046951 00000 n +0000046994 00000 n +0000047037 00000 n +0000047080 00000 n +0000047123 00000 n +0000047166 00000 n +0000047209 00000 n +0000047252 00000 n +0000047295 00000 n +0000047338 00000 n +0000047381 00000 n +0000047424 00000 n +0000047467 00000 n +0000047510 00000 n +0000047553 00000 n +0000047596 00000 n +0000047639 00000 n +0000047682 00000 n +0000047725 00000 n +0000047768 00000 n +0000047811 00000 n +0000047854 00000 n +0000047897 00000 n +0000047940 00000 n +0000047983 00000 n +0000048026 00000 n +0000048069 00000 n +0000048112 00000 n +0000048155 00000 n +0000048198 00000 n +0000048241 00000 n +0000048284 00000 n +0000048327 00000 n +0000048370 00000 n +0000048413 00000 n +0000048456 00000 n +0000048499 00000 n +0000048542 00000 n +0000048585 00000 n +0000048628 00000 n +0000048671 00000 n +0000048714 00000 n +0000048757 00000 n +0000048800 00000 n +0000048843 00000 n +0000048886 00000 n +0000048929 00000 n +0000048972 00000 n +0000049015 00000 n +0000049750 00000 n +0000049907 00000 n +0000050074 00000 n +0000050263 00000 n +0000052866 00000 n +0000053056 00000 n +0000056162 00000 n +0000056352 00000 n +0000059894 00000 n +0000060084 00000 n +0000061357 00000 n +0000061514 00000 n +0000061743 00000 n +0000061942 00000 n +0000063751 00000 n +0000063922 00000 n +0000066005 00000 n +0000066176 00000 n +0000068463 00000 n +0000068634 00000 n +0000068890 00000 n +0000069056 00000 n +0000070701 00000 n +0000070867 00000 n +0000072409 00000 n +0000072575 00000 n +0000074309 00000 n +0000074475 00000 n +0000076211 00000 n +0000076386 00000 n +0000077652 00000 n +0000077827 00000 n +0000079038 00000 n +0000079213 00000 n +0000080460 00000 n +0000080626 00000 n +0000081536 00000 n +0000081726 00000 n +0000083690 00000 n +0000083846 00000 n +0000085623 00000 n +0000085789 00000 n +0000087771 00000 n +0000087937 00000 n +0000088673 00000 n +0000088848 00000 n +0000089890 00000 n +0000090056 00000 n +0000091692 00000 n +0000091858 00000 n +0000092482 00000 n +0000092657 00000 n +0000093987 00000 n +0000094162 00000 n +0000095236 00000 n +0000095402 00000 n +0000096003 00000 n +0000096169 00000 n +0000097955 00000 n +0000098121 00000 n +0000099838 00000 n +0000100004 00000 n +0000101853 00000 n +0000102009 00000 n +0000103124 00000 n +0000103308 00000 n +0000104915 00000 n +0000105080 00000 n +0000105969 00000 n +0000106168 00000 n +0000107893 00000 n +0000108068 00000 n +0000109893 00000 n +0000110068 00000 n +0000110679 00000 n +0000110854 00000 n +0000111629 00000 n +0000111804 00000 n +0000112561 00000 n +0000112736 00000 n +0000113574 00000 n +0000113749 00000 n +0000114585 00000 n +0000114769 00000 n +0000115609 00000 n +0000115784 00000 n +0000116544 00000 n +0000116709 00000 n +0000117334 00000 n +0000117518 00000 n +0000118286 00000 n +0000118461 00000 n +0000119423 00000 n +0000119607 00000 n +0000120942 00000 n +0000121126 00000 n +0000122144 00000 n +0000122309 00000 n +0000122888 00000 n +0000123072 00000 n +0000124132 00000 n +0000124307 00000 n +0000125185 00000 n +0000125360 00000 n +0000126454 00000 n +0000126638 00000 n +0000127525 00000 n +0000127709 00000 n +0000128486 00000 n +0000128661 00000 n +0000129262 00000 n +0000129437 00000 n +0000130099 00000 n +0000130283 00000 n +0000131259 00000 n +0000131434 00000 n +0000132442 00000 n +0000132617 00000 n +0000133611 00000 n +0000133795 00000 n +0000134627 00000 n +0000134802 00000 n +0000135534 00000 n +0000135709 00000 n +0000136391 00000 n +0000136566 00000 n +0000137395 00000 n +0000137570 00000 n +0000138558 00000 n +0000138733 00000 n +0000140117 00000 n +0000140301 00000 n +0000141095 00000 n +0000141279 00000 n +0000141941 00000 n +0000142116 00000 n +0000142523 00000 n +0000142688 00000 n +0000142994 00000 n +0000143189 00000 n +0000144721 00000 n +0000144896 00000 n +0000146611 00000 n +0000146796 00000 n +0000148377 00000 n +0000148562 00000 n +0000150328 00000 n +0000150494 00000 n +0000150873 00000 n +0000151048 00000 n +0000152345 00000 n +0000152520 00000 n +0000154223 00000 n +0000154399 00000 n +0000156151 00000 n +0000156317 00000 n +0000158211 00000 n +0000158395 00000 n +0000159665 00000 n +0000159840 00000 n +0000161568 00000 n +0000161780 00000 n +0000163402 00000 n +0000163585 00000 n +0000164497 00000 n +0000164672 00000 n +0000165960 00000 n +0000166154 00000 n +0000167493 00000 n +0000167677 00000 n +0000168711 00000 n +0000168886 00000 n +0000169535 00000 n +0000169591 00000 n +0000169690 00000 n +0000169843 00000 n +0000169922 00000 n +0000170025 00000 n +0000170223 00000 n +0000170317 00000 n +0000170434 00000 n +0000170533 00000 n +0000170693 00000 n +0000170792 00000 n +0000170916 00000 n +0000171030 00000 n +0000171144 00000 n +0000171242 00000 n +0000171406 00000 n +0000171510 00000 n +0000171629 00000 n +0000171751 00000 n +0000171873 00000 n +0000172009 00000 n +0000172109 00000 n +0000172221 00000 n +0000172331 00000 n +0000172455 00000 n +0000172612 00000 n +0000172717 00000 n +0000172834 00000 n +0000172992 00000 n +0000173096 00000 n +0000173213 00000 n +0000173335 00000 n +0000173452 00000 n +0000173569 00000 n +0000173687 00000 n +0000173805 00000 n +0000173927 00000 n +0000174049 00000 n +0000174173 00000 n +0000174297 00000 n +0000174416 00000 n +0000174535 00000 n +0000174659 00000 n +0000174770 00000 n +0000174927 00000 n +0000175026 00000 n +0000175127 00000 n +0000175234 00000 n +0000175393 00000 n +0000175532 00000 n +0000175643 00000 n +0000175774 00000 n +0000175887 00000 n +0000176016 00000 n +0000176106 00000 n +0000176271 00000 n +0000176370 00000 n +0000176479 00000 n +0000176593 00000 n +0000176702 00000 n +0000176809 00000 n +0000176919 00000 n +0000177032 00000 n +0000177144 00000 n +0000177250 00000 n +0000177382 00000 n +0000177539 00000 n +0000177674 00000 n +0000177770 00000 n +0000177866 00000 n +0000178022 00000 n +0000178116 00000 n +0000178230 00000 n +0000178329 00000 n +0000178496 00000 n +0000178596 00000 n +0000178704 00000 n +0000178810 00000 n +0000178931 00000 n +0000179058 00000 n +0000179175 00000 n +0000179298 00000 n +0000179429 00000 n +0000179546 00000 n +0000179658 00000 n +0000179776 00000 n +0000179882 00000 n +0000180050 00000 n +0000180160 00000 n +0000180280 00000 n +0000180405 00000 n +0000180520 00000 n +0000180623 00000 n +0000180785 00000 n +0000180887 00000 n +0000180985 00000 n +0000181147 00000 n +0000181250 00000 n +0000181358 00000 n +0000181540 00000 n +0000181640 00000 n +0000181750 00000 n +0000181847 00000 n +0000181983 00000 n +0000182087 00000 n +0000182191 00000 n +0000182358 00000 n +0000182454 00000 n +0000182594 00000 n +0000182712 00000 n +0000182863 00000 n +0000182986 00000 n +0000183149 00000 n +0000183237 00000 n +0000183403 00000 n +0000183516 00000 n +0000183637 00000 n +0000183770 00000 n +0000183913 00000 n +0000184014 00000 n +0000184130 00000 n +0000184231 00000 n +0000184379 00000 n +0000184495 00000 n +0000184592 00000 n +0000184710 00000 n +0000184805 00000 n +0000184981 00000 n +0000185081 00000 n +0000185199 00000 n +0000185306 00000 n +0000185456 00000 n +0000185554 00000 n +0000185706 00000 n +0000185810 00000 n +0000185914 00000 n +0000186053 00000 n +0000186169 00000 n +0000186333 00000 n +0000186426 00000 n +0000186530 00000 n +0000186678 00000 n +0000186776 00000 n +0000186871 00000 n trailer -<<4109506ff23eff872a95decb81258ca1>]>> +<<006a374f74bbb42ca5a141f2cec42653>]>> startxref -178148 +187413 %%EOF diff --git a/docs/Samba-HOWTO-Collection.pdf b/docs/Samba-HOWTO-Collection.pdf index b9114a70d5a..758afbb82a0 100644 --- a/docs/Samba-HOWTO-Collection.pdf +++ b/docs/Samba-HOWTO-Collection.pdf @@ -1,6 +1,6 @@ %PDF-1.3 %âãÏÓ -1 0 obj<>endobj +1 0 obj<>endobj 2 0 obj<>endobj 3 0 obj<>endobj 4 0 obj<>endobj @@ -20,48 +20,48 @@ endobj 16 0 obj<]/Interpolate true/Filter/FlateDecode/Width 24/Height 24/BitsPerComponent 8/Length 223 >>stream xUQ‡‚0 5âÀâ8@‹´öÿÍÚ4¥¦wo%w•R+©8¸çóCŒ+N"]ׂ*³ÏW ,D¶1Ž|áŠØi"%õ~öÄ0íÈ)ûÜ1ªlN!3€Ž1ˆìTÆ4HÔ†ÞË<ê <~õZ>ynõ¯.ŒHãê«>LÜê…K·ùbØŽ¼ÑŸ'4¦øËûŽžY}Íü-?f&tïA¿Â{2é“»7L}On4žïàKùIÿˆ" Ÿä õP†B‡hïG]áz˜$>—ÐÔ³å.mcoendstream endobj -17 0 obj<>endobj -18 0 obj<>endobj -19 0 obj<>endobj -20 0 obj<>endobj -21 0 obj<>endobj -22 0 obj<>endobj -23 0 obj<>endobj -24 0 obj<>endobj -25 0 obj<>endobj -26 0 obj<>endobj -27 0 obj<>endobj -28 0 obj<>endobj -29 0 obj<>endobj -30 0 obj<>endobj -31 0 obj<>endobj -32 0 obj<>endobj -33 0 obj<>endobj -34 0 obj<>endobj -35 0 obj<>endobj -36 0 obj<>endobj -37 0 obj<>endobj -38 0 obj<>endobj -39 0 obj<>endobj -40 0 obj<>endobj -41 0 obj<>endobj -42 0 obj<>endobj -43 0 obj<>endobj -44 0 obj<>endobj -45 0 obj<>endobj -46 0 obj<>endobj -47 0 obj<>endobj -48 0 obj<>endobj -49 0 obj<>endobj -50 0 obj<>endobj -51 0 obj<>endobj -52 0 obj<>endobj -53 0 obj<>endobj -54 0 obj<>endobj -55 0 obj<>endobj -56 0 obj<>endobj -57 0 obj<>endobj -58 0 obj<>endobj +17 0 obj<>endobj +18 0 obj<>endobj +19 0 obj<>endobj +20 0 obj<>endobj +21 0 obj<>endobj +22 0 obj<>endobj +23 0 obj<>endobj +24 0 obj<>endobj +25 0 obj<>endobj +26 0 obj<>endobj +27 0 obj<>endobj +28 0 obj<>endobj +29 0 obj<>endobj +30 0 obj<>endobj +31 0 obj<>endobj +32 0 obj<>endobj +33 0 obj<>endobj +34 0 obj<>endobj +35 0 obj<>endobj +36 0 obj<>endobj +37 0 obj<>endobj +38 0 obj<>endobj +39 0 obj<>endobj +40 0 obj<>endobj +41 0 obj<>endobj +42 0 obj<>endobj +43 0 obj<>endobj +44 0 obj<>endobj +45 0 obj<>endobj +46 0 obj<>endobj +47 0 obj<>endobj +48 0 obj<>endobj +49 0 obj<>endobj +50 0 obj<>endobj +51 0 obj<>endobj +52 0 obj<>endobj +53 0 obj<>endobj +54 0 obj<>endobj +55 0 obj<>endobj +56 0 obj<>endobj +57 0 obj<>endobj +58 0 obj<>endobj 59 0 obj[17 0 R 18 0 R 19 0 R @@ -104,48 +104,48 @@ endobj 56 0 R 57 0 R 58 0 R]endobj -60 0 obj<>endobj -61 0 obj<>endobj -62 0 obj<>endobj -63 0 obj<>endobj -64 0 obj<>endobj -65 0 obj<>endobj -66 0 obj<>endobj -67 0 obj<>endobj -68 0 obj<>endobj -69 0 obj<>endobj -70 0 obj<>endobj -71 0 obj<>endobj -72 0 obj<>endobj -73 0 obj<>endobj -74 0 obj<>endobj -75 0 obj<>endobj -76 0 obj<>endobj -77 0 obj<>endobj -78 0 obj<>endobj -79 0 obj<>endobj -80 0 obj<>endobj -81 0 obj<>endobj -82 0 obj<>endobj -83 0 obj<>endobj -84 0 obj<>endobj -85 0 obj<>endobj -86 0 obj<>endobj -87 0 obj<>endobj -88 0 obj<>endobj -89 0 obj<>endobj -90 0 obj<>endobj -91 0 obj<>endobj -92 0 obj<>endobj -93 0 obj<>endobj -94 0 obj<>endobj -95 0 obj<>endobj -96 0 obj<>endobj -97 0 obj<>endobj -98 0 obj<>endobj -99 0 obj<>endobj -100 0 obj<>endobj -101 0 obj<>endobj +60 0 obj<>endobj +61 0 obj<>endobj +62 0 obj<>endobj +63 0 obj<>endobj +64 0 obj<>endobj +65 0 obj<>endobj +66 0 obj<>endobj +67 0 obj<>endobj +68 0 obj<>endobj +69 0 obj<>endobj +70 0 obj<>endobj +71 0 obj<>endobj +72 0 obj<>endobj +73 0 obj<>endobj +74 0 obj<>endobj +75 0 obj<>endobj +76 0 obj<>endobj +77 0 obj<>endobj +78 0 obj<>endobj +79 0 obj<>endobj +80 0 obj<>endobj +81 0 obj<>endobj +82 0 obj<>endobj +83 0 obj<>endobj +84 0 obj<>endobj +85 0 obj<>endobj +86 0 obj<>endobj +87 0 obj<>endobj +88 0 obj<>endobj +89 0 obj<>endobj +90 0 obj<>endobj +91 0 obj<>endobj +92 0 obj<>endobj +93 0 obj<>endobj +94 0 obj<>endobj +95 0 obj<>endobj +96 0 obj<>endobj +97 0 obj<>endobj +98 0 obj<>endobj +99 0 obj<>endobj +100 0 obj<>endobj +101 0 obj<>endobj 102 0 obj[60 0 R 61 0 R 62 0 R @@ -188,48 +188,50 @@ endobj 99 0 R 100 0 R 101 0 R]endobj -103 0 obj<>endobj -104 0 obj<>endobj -105 0 obj<>endobj -106 0 obj<>endobj -107 0 obj<>endobj -108 0 obj<>endobj -109 0 obj<>endobj -110 0 obj<>endobj -111 0 obj<>endobj -112 0 obj<>endobj -113 0 obj<>endobj -114 0 obj<>endobj -115 0 obj<>endobj -116 0 obj<>endobj -117 0 obj<>endobj -118 0 obj<>endobj -119 0 obj<>endobj -120 0 obj<>endobj -121 0 obj<>endobj -122 0 obj<>endobj -123 0 obj<>endobj -124 0 obj<>endobj -125 0 obj<>endobj -126 0 obj<>endobj -127 0 obj<>endobj -128 0 obj<>endobj -129 0 obj<>endobj -130 0 obj<>endobj -131 0 obj<>endobj -132 0 obj<>endobj -133 0 obj<>endobj -134 0 obj<>endobj -135 0 obj<>endobj -136 0 obj<>endobj -137 0 obj<>endobj -138 0 obj<>endobj -139 0 obj<>endobj -140 0 obj<>endobj -141 0 obj<>endobj -142 0 obj<>endobj -143 0 obj<>endobj -144 0 obj[103 0 R +103 0 obj<>endobj +104 0 obj<>endobj +105 0 obj<>endobj +106 0 obj<>endobj +107 0 obj<>endobj +108 0 obj<>endobj +109 0 obj<>endobj +110 0 obj<>endobj +111 0 obj<>endobj +112 0 obj<>endobj +113 0 obj<>endobj +114 0 obj<>endobj +115 0 obj<>endobj +116 0 obj<>endobj +117 0 obj<>endobj +118 0 obj<>endobj +119 0 obj<>endobj +120 0 obj<>endobj +121 0 obj<>endobj +122 0 obj<>endobj +123 0 obj<>endobj +124 0 obj<>endobj +125 0 obj<>endobj +126 0 obj<>endobj +127 0 obj<>endobj +128 0 obj<>endobj +129 0 obj<>endobj +130 0 obj<>endobj +131 0 obj<>endobj +132 0 obj<>endobj +133 0 obj<>endobj +134 0 obj<>endobj +135 0 obj<>endobj +136 0 obj<>endobj +137 0 obj<>endobj +138 0 obj<>endobj +139 0 obj<>endobj +140 0 obj<>endobj +141 0 obj<>endobj +142 0 obj<>endobj +143 0 obj<>endobj +144 0 obj<>endobj +145 0 obj<>endobj +146 0 obj[103 0 R 104 0 R 105 0 R 106 0 R @@ -269,55 +271,54 @@ endobj 140 0 R 141 0 R 142 0 R -143 0 R]endobj -145 0 obj<>endobj -146 0 obj<>endobj -147 0 obj<>endobj -148 0 obj<>endobj -149 0 obj<>endobj -150 0 obj<>endobj -151 0 obj<>endobj -152 0 obj<>endobj -153 0 obj<>endobj -154 0 obj<>endobj -155 0 obj<>endobj -156 0 obj<>endobj -157 0 obj<>endobj -158 0 obj<>endobj -159 0 obj<>endobj -160 0 obj<>endobj -161 0 obj<>endobj -162 0 obj<>endobj -163 0 obj<>endobj -164 0 obj<>endobj -165 0 obj<>endobj -166 0 obj<>endobj -167 0 obj<>endobj -168 0 obj<>endobj -169 0 obj<>endobj -170 0 obj<>endobj -171 0 obj<>endobj -172 0 obj<>endobj -173 0 obj<>endobj -174 0 obj<>endobj -175 0 obj<>endobj -176 0 obj<>endobj -177 0 obj<>endobj -178 0 obj<>endobj -179 0 obj<>endobj -180 0 obj<>endobj -181 0 obj<>endobj -182 0 obj<>endobj -183 0 obj<>endobj -184 0 obj<>endobj -185 0 obj<>endobj -186 0 obj<>endobj -187 0 obj<>endobj -188 0 obj<>endobj -189 0 obj<>endobj -190 0 obj[145 0 R -146 0 R -147 0 R +143 0 R +144 0 R +145 0 R]endobj +147 0 obj<>endobj +148 0 obj<>endobj +149 0 obj<>endobj +150 0 obj<>endobj +151 0 obj<>endobj +152 0 obj<>endobj +153 0 obj<>endobj +154 0 obj<>endobj +155 0 obj<>endobj +156 0 obj<>endobj +157 0 obj<>endobj +158 0 obj<>endobj +159 0 obj<>endobj +160 0 obj<>endobj +161 0 obj<>endobj +162 0 obj<>endobj +163 0 obj<>endobj +164 0 obj<>endobj +165 0 obj<>endobj +166 0 obj<>endobj +167 0 obj<>endobj +168 0 obj<>endobj +169 0 obj<>endobj +170 0 obj<>endobj +171 0 obj<>endobj +172 0 obj<>endobj +173 0 obj<>endobj +174 0 obj<>endobj +175 0 obj<>endobj +176 0 obj<>endobj +177 0 obj<>endobj +178 0 obj<>endobj +179 0 obj<>endobj +180 0 obj<>endobj +181 0 obj<>endobj +182 0 obj<>endobj +183 0 obj<>endobj +184 0 obj<>endobj +185 0 obj<>endobj +186 0 obj<>endobj +187 0 obj<>endobj +188 0 obj<>endobj +189 0 obj<>endobj +190 0 obj<>endobj +191 0 obj[147 0 R 148 0 R 149 0 R 150 0 R @@ -359,52 +360,51 @@ endobj 186 0 R 187 0 R 188 0 R -189 0 R]endobj -191 0 obj<>endobj -192 0 obj<>endobj -193 0 obj<>endobj -194 0 obj<>endobj -195 0 obj<>endobj -196 0 obj<>endobj -197 0 obj<>endobj -198 0 obj<>endobj -199 0 obj<>endobj -200 0 obj<>endobj -201 0 obj<>endobj -202 0 obj<>endobj -203 0 obj<>endobj -204 0 obj<>endobj -205 0 obj<>endobj -206 0 obj<>endobj -207 0 obj<>endobj -208 0 obj<>endobj -209 0 obj<>endobj -210 0 obj<>endobj -211 0 obj<>endobj -212 0 obj<>endobj -213 0 obj<>endobj -214 0 obj<>endobj -215 0 obj<>endobj -216 0 obj<>endobj -217 0 obj<>endobj -218 0 obj<>endobj -219 0 obj<>endobj -220 0 obj<>endobj -221 0 obj<>endobj -222 0 obj<>endobj -223 0 obj<>endobj -224 0 obj<>endobj -225 0 obj<>endobj -226 0 obj<>endobj -227 0 obj<>endobj -228 0 obj<>endobj -229 0 obj<>endobj -230 0 obj<>endobj -231 0 obj<>endobj -232 0 obj<>endobj -233 0 obj<>endobj -234 0 obj[191 0 R -192 0 R +189 0 R +190 0 R]endobj +192 0 obj<>endobj +193 0 obj<>endobj +194 0 obj<>endobj +195 0 obj<>endobj +196 0 obj<>endobj +197 0 obj<>endobj +198 0 obj<>endobj +199 0 obj<>endobj +200 0 obj<>endobj +201 0 obj<>endobj +202 0 obj<>endobj +203 0 obj<>endobj +204 0 obj<>endobj +205 0 obj<>endobj +206 0 obj<>endobj +207 0 obj<>endobj +208 0 obj<>endobj +209 0 obj<>endobj +210 0 obj<>endobj +211 0 obj<>endobj +212 0 obj<>endobj +213 0 obj<>endobj +214 0 obj<>endobj +215 0 obj<>endobj +216 0 obj<>endobj +217 0 obj<>endobj +218 0 obj<>endobj +219 0 obj<>endobj +220 0 obj<>endobj +221 0 obj<>endobj +222 0 obj<>endobj +223 0 obj<>endobj +224 0 obj<>endobj +225 0 obj<>endobj +226 0 obj<>endobj +227 0 obj<>endobj +228 0 obj<>endobj +229 0 obj<>endobj +230 0 obj<>endobj +231 0 obj<>endobj +232 0 obj<>endobj +233 0 obj<>endobj +234 0 obj[192 0 R 193 0 R 194 0 R 195 0 R @@ -446,50 +446,48 @@ endobj 231 0 R 232 0 R 233 0 R]endobj -235 0 obj<>endobj -236 0 obj<>endobj -237 0 obj<>endobj -238 0 obj<>endobj -239 0 obj<>endobj -240 0 obj<>endobj -241 0 obj<>endobj -242 0 obj<>endobj -243 0 obj<>endobj -244 0 obj<>endobj -245 0 obj<>endobj -246 0 obj<>endobj -247 0 obj<>endobj -248 0 obj<>endobj -249 0 obj<>endobj -250 0 obj<>endobj -251 0 obj<>endobj -252 0 obj<>endobj -253 0 obj<>endobj -254 0 obj<>endobj -255 0 obj<>endobj -256 0 obj<>endobj -257 0 obj<>endobj -258 0 obj<>endobj -259 0 obj<>endobj -260 0 obj<>endobj -261 0 obj<>endobj -262 0 obj<>endobj -263 0 obj<>endobj -264 0 obj<>endobj -265 0 obj<>endobj -266 0 obj<>endobj -267 0 obj<>endobj -268 0 obj<>endobj -269 0 obj<>endobj -270 0 obj<>endobj -271 0 obj<>endobj -272 0 obj<>endobj -273 0 obj<>endobj -274 0 obj<>endobj -275 0 obj<>endobj -276 0 obj<>endobj -277 0 obj<>endobj -278 0 obj[235 0 R +235 0 obj<>endobj +236 0 obj<>endobj +237 0 obj<>endobj +238 0 obj<>endobj +239 0 obj<>endobj +240 0 obj<>endobj +241 0 obj<>endobj +242 0 obj<>endobj +243 0 obj<>endobj +244 0 obj<>endobj +245 0 obj<>endobj +246 0 obj<>endobj +247 0 obj<>endobj +248 0 obj<>endobj +249 0 obj<>endobj +250 0 obj<>endobj +251 0 obj<>endobj +252 0 obj<>endobj +253 0 obj<>endobj +254 0 obj<>endobj +255 0 obj<>endobj +256 0 obj<>endobj +257 0 obj<>endobj +258 0 obj<>endobj +259 0 obj<>endobj +260 0 obj<>endobj +261 0 obj<>endobj +262 0 obj<>endobj +263 0 obj<>endobj +264 0 obj<>endobj +265 0 obj<>endobj +266 0 obj<>endobj +267 0 obj<>endobj +268 0 obj<>endobj +269 0 obj<>endobj +270 0 obj<>endobj +271 0 obj<>endobj +272 0 obj<>endobj +273 0 obj<>endobj +274 0 obj<>endobj +275 0 obj<>endobj +276 0 obj[235 0 R 236 0 R 237 0 R 238 0 R @@ -529,33 +527,42 @@ endobj 272 0 R 273 0 R 274 0 R -275 0 R -276 0 R -277 0 R]endobj -279 0 obj<>endobj -280 0 obj<>endobj -281 0 obj<>endobj -282 0 obj<>endobj -283 0 obj<>endobj -284 0 obj<>endobj -285 0 obj<>endobj -286 0 obj<>endobj -287 0 obj<>endobj -288 0 obj<>endobj -289 0 obj<>endobj -290 0 obj<>endobj -291 0 obj<>endobj -292 0 obj<>endobj -293 0 obj<>endobj -294 0 obj<>endobj -295 0 obj<>endobj -296 0 obj<>endobj -297 0 obj<>endobj -298 0 obj<>endobj -299 0 obj<>endobj -300 0 obj<>endobj -301 0 obj<>endobj -302 0 obj[279 0 R +275 0 R]endobj +277 0 obj<>endobj +278 0 obj<>endobj +279 0 obj<>endobj +280 0 obj<>endobj +281 0 obj<>endobj +282 0 obj<>endobj +283 0 obj<>endobj +284 0 obj<>endobj +285 0 obj<>endobj +286 0 obj<>endobj +287 0 obj<>endobj +288 0 obj<>endobj +289 0 obj<>endobj +290 0 obj<>endobj +291 0 obj<>endobj +292 0 obj<>endobj +293 0 obj<>endobj +294 0 obj<>endobj +295 0 obj<>endobj +296 0 obj<>endobj +297 0 obj<>endobj +298 0 obj<>endobj +299 0 obj<>endobj +300 0 obj<>endobj +301 0 obj<>endobj +302 0 obj<>endobj +303 0 obj<>endobj +304 0 obj<>endobj +305 0 obj<>endobj +306 0 obj<>endobj +307 0 obj<>endobj +308 0 obj<>endobj +309 0 obj[277 0 R +278 0 R +279 0 R 280 0 R 281 0 R 282 0 R @@ -577,59 +584,59 @@ endobj 298 0 R 299 0 R 300 0 R -301 0 R]endobj -303 0 obj<>endobj -304 0 obj<>endobj -305 0 obj<>endobj -306 0 obj<>endobj -307 0 obj<>endobj -308 0 obj<>endobj -309 0 obj<>endobj -310 0 obj<>endobj -311 0 obj<>endobj -312 0 obj<>endobj -313 0 obj<>endobj -314 0 obj<>endobj -315 0 obj<>endobj -316 0 obj<>endobj -317 0 obj<>endobj -318 0 obj<>endobj -319 0 obj<>endobj -320 0 obj<>endobj -321 0 obj<>endobj -322 0 obj<>endobj -323 0 obj<>endobj -324 0 obj<>endobj -325 0 obj<>endobj -326 0 obj<>endobj -327 0 obj<>endobj -328 0 obj<>endobj -329 0 obj<>endobj -330 0 obj<>endobj -331 0 obj<>endobj -332 0 obj<>endobj -333 0 obj<>endobj -334 0 obj<>endobj -335 0 obj<>endobj -336 0 obj<>endobj -337 0 obj<>endobj -338 0 obj<>endobj -339 0 obj<>endobj -340 0 obj<>endobj -341 0 obj<>endobj -342 0 obj<>endobj -343 0 obj<>endobj -344 0 obj<>endobj -345 0 obj[304 0 R +301 0 R +302 0 R +303 0 R +304 0 R +305 0 R 306 0 R -308 0 R -310 0 R -311 0 R -312 0 R +307 0 R +308 0 R]endobj +310 0 obj<>endobj +311 0 obj<>endobj +312 0 obj<>endobj +313 0 obj<>endobj +314 0 obj<>endobj +315 0 obj<>endobj +316 0 obj<>endobj +317 0 obj<>endobj +318 0 obj<>endobj +319 0 obj<>endobj +320 0 obj<>endobj +321 0 obj<>endobj +322 0 obj<>endobj +323 0 obj<>endobj +324 0 obj<>endobj +325 0 obj<>endobj +326 0 obj<>endobj +327 0 obj<>endobj +328 0 obj<>endobj +329 0 obj<>endobj +330 0 obj<>endobj +331 0 obj<>endobj +332 0 obj<>endobj +333 0 obj<>endobj +334 0 obj<>endobj +335 0 obj<>endobj +336 0 obj<>endobj +337 0 obj<>endobj +338 0 obj<>endobj +339 0 obj<>endobj +340 0 obj<>endobj +341 0 obj<>endobj +342 0 obj<>endobj +343 0 obj<>endobj +344 0 obj<>endobj +345 0 obj<>endobj +346 0 obj<>endobj +347 0 obj<>endobj +348 0 obj<>endobj +349 0 obj<>endobj +350 0 obj<>endobj +351 0 obj<>endobj +352 0 obj[311 0 R 313 0 R -314 0 R 315 0 R -316 0 R 317 0 R 318 0 R 319 0 R @@ -657,66 +664,66 @@ endobj 341 0 R 342 0 R 343 0 R -344 0 R]endobj -346 0 obj<>endobj -347 0 obj<>endobj -348 0 obj<>endobj -349 0 obj<>endobj -350 0 obj<>endobj -351 0 obj<>endobj -352 0 obj<>endobj -353 0 obj<>endobj -354 0 obj<>endobj -355 0 obj<>endobj -356 0 obj<>endobj -357 0 obj<>endobj -358 0 obj<>endobj -359 0 obj<>endobj -360 0 obj<>endobj -361 0 obj<>endobj -362 0 obj<>endobj -363 0 obj<>endobj -364 0 obj<>endobj -365 0 obj<>endobj -366 0 obj<>endobj -367 0 obj<>endobj -368 0 obj<>endobj -369 0 obj<>endobj -370 0 obj<>endobj -371 0 obj<>endobj -372 0 obj<>endobj -373 0 obj<>endobj -374 0 obj<>endobj -375 0 obj<>endobj -376 0 obj<>endobj -377 0 obj<>endobj -378 0 obj<>endobj -379 0 obj<>endobj -380 0 obj<>endobj -381 0 obj<>endobj -382 0 obj<>endobj -383 0 obj<>endobj -384 0 obj<>endobj -385 0 obj<>endobj -386 0 obj<>endobj -387 0 obj<>endobj -388 0 obj<>endobj -389 0 obj<>endobj -390 0 obj<>endobj -391 0 obj<>endobj -392 0 obj<>endobj -393 0 obj<>endobj -394 0 obj<>endobj -395 0 obj<>endobj -396 0 obj<>endobj -397 0 obj[346 0 R +344 0 R +345 0 R +346 0 R 347 0 R 348 0 R 349 0 R 350 0 R -351 0 R -352 0 R -353 0 R +351 0 R]endobj +353 0 obj<>endobj +354 0 obj<>endobj +355 0 obj<>endobj +356 0 obj<>endobj +357 0 obj<>endobj +358 0 obj<>endobj +359 0 obj<>endobj +360 0 obj<>endobj +361 0 obj<>endobj +362 0 obj<>endobj +363 0 obj<>endobj +364 0 obj<>endobj +365 0 obj<>endobj +366 0 obj<>endobj +367 0 obj<>endobj +368 0 obj<>endobj +369 0 obj<>endobj +370 0 obj<>endobj +371 0 obj<>endobj +372 0 obj<>endobj +373 0 obj<>endobj +374 0 obj<>endobj +375 0 obj<>endobj +376 0 obj<>endobj +377 0 obj<>endobj +378 0 obj<>endobj +379 0 obj<>endobj +380 0 obj<>endobj +381 0 obj<>endobj +382 0 obj<>endobj +383 0 obj<>endobj +384 0 obj<>endobj +385 0 obj<>endobj +386 0 obj<>endobj +387 0 obj<>endobj +388 0 obj<>endobj +389 0 obj<>endobj +390 0 obj<>endobj +391 0 obj<>endobj +392 0 obj<>endobj +393 0 obj<>endobj +394 0 obj<>endobj +395 0 obj<>endobj +396 0 obj<>endobj +397 0 obj<>endobj +398 0 obj<>endobj +399 0 obj<>endobj +400 0 obj<>endobj +401 0 obj<>endobj +402 0 obj<>endobj +403 0 obj<>endobj +404 0 obj[353 0 R 354 0 R 355 0 R 356 0 R @@ -759,66 +766,66 @@ endobj 393 0 R 394 0 R 395 0 R -396 0 R]endobj -398 0 obj<>endobj -399 0 obj<>endobj -400 0 obj<>endobj -401 0 obj<>endobj -402 0 obj<>endobj -403 0 obj<>endobj -404 0 obj<>endobj -405 0 obj<>endobj -406 0 obj<>endobj -407 0 obj<>endobj -408 0 obj<>endobj -409 0 obj<>endobj -410 0 obj<>endobj -411 0 obj<>endobj -412 0 obj<>endobj -413 0 obj<>endobj -414 0 obj<>endobj -415 0 obj<>endobj -416 0 obj<>endobj -417 0 obj<>endobj -418 0 obj<>endobj -419 0 obj<>endobj -420 0 obj<>endobj -421 0 obj<>endobj -422 0 obj<>endobj -423 0 obj<>endobj -424 0 obj<>endobj -425 0 obj<>endobj -426 0 obj<>endobj -427 0 obj<>endobj -428 0 obj<>endobj -429 0 obj<>endobj -430 0 obj<>endobj -431 0 obj<>endobj -432 0 obj<>endobj -433 0 obj<>endobj -434 0 obj<>endobj -435 0 obj<>endobj -436 0 obj<>endobj -437 0 obj<>endobj -438 0 obj<>endobj -439 0 obj<>endobj -440 0 obj<>endobj -441 0 obj<>endobj -442 0 obj<>endobj -443 0 obj<>endobj -444 0 obj<>endobj -445 0 obj<>endobj -446 0 obj<>endobj -447 0 obj<>endobj -448 0 obj<>endobj -449 0 obj[398 0 R +396 0 R +397 0 R +398 0 R 399 0 R 400 0 R 401 0 R 402 0 R -403 0 R -404 0 R -405 0 R +403 0 R]endobj +405 0 obj<>endobj +406 0 obj<>endobj +407 0 obj<>endobj +408 0 obj<>endobj +409 0 obj<>endobj +410 0 obj<>endobj +411 0 obj<>endobj +412 0 obj<>endobj +413 0 obj<>endobj +414 0 obj<>endobj +415 0 obj<>endobj +416 0 obj<>endobj +417 0 obj<>endobj +418 0 obj<>endobj +419 0 obj<>endobj +420 0 obj<>endobj +421 0 obj<>endobj +422 0 obj<>endobj +423 0 obj<>endobj +424 0 obj<>endobj +425 0 obj<>endobj +426 0 obj<>endobj +427 0 obj<>endobj +428 0 obj<>endobj +429 0 obj<>endobj +430 0 obj<>endobj +431 0 obj<>endobj +432 0 obj<>endobj +433 0 obj<>endobj +434 0 obj<>endobj +435 0 obj<>endobj +436 0 obj<>endobj +437 0 obj<>endobj +438 0 obj<>endobj +439 0 obj<>endobj +440 0 obj<>endobj +441 0 obj<>endobj +442 0 obj<>endobj +443 0 obj<>endobj +444 0 obj<>endobj +445 0 obj<>endobj +446 0 obj<>endobj +447 0 obj<>endobj +448 0 obj<>endobj +449 0 obj<>endobj +450 0 obj<>endobj +451 0 obj<>endobj +452 0 obj<>endobj +453 0 obj<>endobj +454 0 obj<>endobj +455 0 obj<>endobj +456 0 obj[405 0 R 406 0 R 407 0 R 408 0 R @@ -861,39 +868,46 @@ endobj 445 0 R 446 0 R 447 0 R -448 0 R]endobj -450 0 obj<>endobj -451 0 obj<>endobj -452 0 obj<>endobj -453 0 obj<>endobj -454 0 obj<>endobj -455 0 obj<>endobj -456 0 obj<>endobj -457 0 obj<>endobj -458 0 obj<>endobj -459 0 obj<>endobj -460 0 obj<>endobj -461 0 obj<>endobj -462 0 obj<>endobj -463 0 obj<>endobj -464 0 obj<>endobj -465 0 obj<>endobj -466 0 obj<>endobj -467 0 obj<>endobj -468 0 obj<>endobj -469 0 obj<>endobj -470 0 obj<>endobj -471 0 obj<>endobj -472 0 obj<>endobj -473 0 obj<>endobj -474 0 obj[450 0 R +448 0 R +449 0 R +450 0 R 451 0 R 452 0 R 453 0 R 454 0 R -455 0 R -456 0 R -457 0 R +455 0 R]endobj +457 0 obj<>endobj +458 0 obj<>endobj +459 0 obj<>endobj +460 0 obj<>endobj +461 0 obj<>endobj +462 0 obj<>endobj +463 0 obj<>endobj +464 0 obj<>endobj +465 0 obj<>endobj +466 0 obj<>endobj +467 0 obj<>endobj +468 0 obj<>endobj +469 0 obj<>endobj +470 0 obj<>endobj +471 0 obj<>endobj +472 0 obj<>endobj +473 0 obj<>endobj +474 0 obj<>endobj +475 0 obj<>endobj +476 0 obj<>endobj +477 0 obj<>endobj +478 0 obj<>endobj +479 0 obj<>endobj +480 0 obj<>endobj +481 0 obj<>endobj +482 0 obj<>endobj +483 0 obj<>endobj +484 0 obj<>endobj +485 0 obj<>endobj +486 0 obj<>endobj +487 0 obj<>endobj +488 0 obj[457 0 R 458 0 R 459 0 R 460 0 R @@ -909,52 +923,9 @@ endobj 470 0 R 471 0 R 472 0 R -473 0 R]endobj -475 0 obj<>endobj -476 0 obj<>endobj -477 0 obj<>endobj -478 0 obj<>endobj -479 0 obj<>endobj -480 0 obj<>endobj -481 0 obj<>endobj -482 0 obj<>endobj -483 0 obj<>endobj -484 0 obj<>endobj -485 0 obj<>endobj -486 0 obj<>endobj -487 0 obj<>endobj -488 0 obj<>endobj -489 0 obj<>endobj -490 0 obj<>endobj -491 0 obj<>endobj -492 0 obj<>endobj -493 0 obj<>endobj -494 0 obj<>endobj -495 0 obj<>endobj -496 0 obj<>endobj -497 0 obj<>endobj -498 0 obj<>endobj -499 0 obj<>endobj -500 0 obj<>endobj -501 0 obj<>endobj -502 0 obj<>endobj -503 0 obj<>endobj -504 0 obj<>endobj -505 0 obj<>endobj -506 0 obj<>endobj -507 0 obj<>endobj -508 0 obj<>endobj -509 0 obj<>endobj -510 0 obj<>endobj -511 0 obj<>endobj -512 0 obj<>endobj -513 0 obj<>endobj -514 0 obj<>endobj -515 0 obj<>endobj -516 0 obj<>endobj -517 0 obj<>endobj -518 0 obj<>endobj -519 0 obj[475 0 R +473 0 R +474 0 R +475 0 R 476 0 R 477 0 R 478 0 R @@ -966,9 +937,52 @@ endobj 484 0 R 485 0 R 486 0 R -487 0 R -488 0 R -489 0 R +487 0 R]endobj +489 0 obj<>endobj +490 0 obj<>endobj +491 0 obj<>endobj +492 0 obj<>endobj +493 0 obj<>endobj +494 0 obj<>endobj +495 0 obj<>endobj +496 0 obj<>endobj +497 0 obj<>endobj +498 0 obj<>endobj +499 0 obj<>endobj +500 0 obj<>endobj +501 0 obj<>endobj +502 0 obj<>endobj +503 0 obj<>endobj +504 0 obj<>endobj +505 0 obj<>endobj +506 0 obj<>endobj +507 0 obj<>endobj +508 0 obj<>endobj +509 0 obj<>endobj +510 0 obj<>endobj +511 0 obj<>endobj +512 0 obj<>endobj +513 0 obj<>endobj +514 0 obj<>endobj +515 0 obj<>endobj +516 0 obj<>endobj +517 0 obj<>endobj +518 0 obj<>endobj +519 0 obj<>endobj +520 0 obj<>endobj +521 0 obj<>endobj +522 0 obj<>endobj +523 0 obj<>endobj +524 0 obj<>endobj +525 0 obj<>endobj +526 0 obj<>endobj +527 0 obj<>endobj +528 0 obj<>endobj +529 0 obj<>endobj +530 0 obj<>endobj +531 0 obj<>endobj +532 0 obj<>endobj +533 0 obj[489 0 R 490 0 R 491 0 R 492 0 R @@ -997,123 +1011,128 @@ endobj 515 0 R 516 0 R 517 0 R -518 0 R]endobj -520 0 obj<>endobj -521 0 obj[520 0 R]endobj -522 0 obj<>endobj -523 0 obj<>endobj -524 0 obj[523 0 R]endobj -525 0 obj<>endobj -526 0 obj<>endobj -527 0 obj<>endobj -528 0 obj<>endobj -529 0 obj<>endobj -530 0 obj<>endobj -531 0 obj<>endobj -532 0 obj<>endobj -533 0 obj<>endobj -534 0 obj<>endobj -535 0 obj<>endobj -536 0 obj<>endobj -537 0 obj[526 0 R +518 0 R +519 0 R +520 0 R +521 0 R +522 0 R +523 0 R +524 0 R +525 0 R +526 0 R +527 0 R 528 0 R +529 0 R 530 0 R -532 0 R -534 0 R -536 0 R]endobj -538 0 obj<>endobj -539 0 obj<>endobj -540 0 obj<>endobj -541 0 obj<>endobj -542 0 obj<>endobj -543 0 obj<>endobj -544 0 obj[539 0 R -541 0 R -543 0 R]endobj -545 0 obj<>endobj -546 0 obj<>endobj -547 0 obj[546 0 R]endobj -548 0 obj<>endobj -549 0 obj<>endobj -550 0 obj<>endobj -551 0 obj<>endobj -552 0 obj<>endobj -553 0 obj<>endobj -554 0 obj<>endobj -555 0 obj<>endobj -556 0 obj<>endobj -557 0 obj<>endobj -558 0 obj<>endobj -559 0 obj<>endobj -560 0 obj<>endobj -561 0 obj<>endobj -562 0 obj[549 0 R -551 0 R -553 0 R -555 0 R +531 0 R +532 0 R]endobj +534 0 obj<>endobj +535 0 obj[534 0 R]endobj +536 0 obj<>endobj +537 0 obj<>endobj +538 0 obj[537 0 R]endobj +539 0 obj<>endobj +540 0 obj<>endobj +541 0 obj<>endobj +542 0 obj<>endobj +543 0 obj<>endobj +544 0 obj<>endobj +545 0 obj<>endobj +546 0 obj<>endobj +547 0 obj<>endobj +548 0 obj<>endobj +549 0 obj<>endobj +550 0 obj<>endobj +551 0 obj<>endobj +552 0 obj<>endobj +553 0 obj[540 0 R +542 0 R +544 0 R +546 0 R +548 0 R +550 0 R +552 0 R]endobj +554 0 obj<>endobj +555 0 obj<>endobj +556 0 obj<>endobj +557 0 obj<>endobj +558 0 obj<>endobj +559 0 obj<>endobj +560 0 obj[555 0 R 557 0 R -559 0 R -561 0 R]endobj -563 0 obj<>endobj -564 0 obj<>endobj -565 0 obj[564 0 R]endobj -566 0 obj<>endobj -567 0 obj<>endobj -568 0 obj[567 0 R]endobj -569 0 obj<>endobj -570 0 obj<>endobj -571 0 obj<>endobj -572 0 obj<>endobj -573 0 obj<>endobj -574 0 obj<>endobj -575 0 obj<>endobj -576 0 obj<>endobj -577 0 obj<>endobj -578 0 obj<>endobj -579 0 obj<>endobj -580 0 obj<>endobj -581 0 obj<>endobj -582 0 obj<>endobj -583 0 obj<>endobj -584 0 obj<>endobj -585 0 obj<>endobj -586 0 obj<>endobj -587 0 obj<>endobj -588 0 obj<>endobj -589 0 obj<>endobj -590 0 obj<>endobj -591 0 obj<>endobj -592 0 obj<>endobj -593 0 obj<>endobj -594 0 obj<>endobj -595 0 obj<>endobj -596 0 obj<>endobj -597 0 obj<>endobj -598 0 obj<>endobj -599 0 obj<>endobj -600 0 obj<>endobj -601 0 obj<>endobj -602 0 obj<>endobj -603 0 obj<>endobj -604 0 obj<>endobj -605 0 obj<>endobj -606 0 obj<>endobj -607 0 obj<>endobj -608 0 obj<>endobj -609 0 obj[569 0 R +559 0 R]endobj +561 0 obj<>endobj +562 0 obj<>endobj +563 0 obj<>endobj +564 0 obj<>endobj +565 0 obj<>endobj +566 0 obj<>endobj +567 0 obj<>endobj +568 0 obj<>endobj +569 0 obj<>endobj +570 0 obj<>endobj +571 0 obj<>endobj +572 0 obj<>endobj +573 0 obj<>endobj +574 0 obj<>endobj +575 0 obj[562 0 R +564 0 R +566 0 R +568 0 R 570 0 R -571 0 R 572 0 R -573 0 R -574 0 R -575 0 R -576 0 R -577 0 R -578 0 R -579 0 R -580 0 R -581 0 R -582 0 R +574 0 R]endobj +576 0 obj<>endobj +577 0 obj<>endobj +578 0 obj[577 0 R]endobj +579 0 obj<>endobj +580 0 obj<>endobj +581 0 obj[580 0 R]endobj +582 0 obj<>endobj +583 0 obj<>endobj +584 0 obj<>endobj +585 0 obj<>endobj +586 0 obj<>endobj +587 0 obj<>endobj +588 0 obj<>endobj +589 0 obj<>endobj +590 0 obj<>endobj +591 0 obj<>endobj +592 0 obj<>endobj +593 0 obj<>endobj +594 0 obj<>endobj +595 0 obj<>endobj +596 0 obj<>endobj +597 0 obj<>endobj +598 0 obj<>endobj +599 0 obj<>endobj +600 0 obj<>endobj +601 0 obj<>endobj +602 0 obj<>endobj +603 0 obj<>endobj +604 0 obj<>endobj +605 0 obj<>endobj +606 0 obj<>endobj +607 0 obj<>endobj +608 0 obj<>endobj +609 0 obj<>endobj +610 0 obj<>endobj +611 0 obj<>endobj +612 0 obj<>endobj +613 0 obj<>endobj +614 0 obj<>endobj +615 0 obj<>endobj +616 0 obj<>endobj +617 0 obj<>endobj +618 0 obj<>endobj +619 0 obj<>endobj +620 0 obj<>endobj +621 0 obj<>endobj +622 0 obj<>endobj +623 0 obj<>endobj +624 0 obj<>endobj +625 0 obj<>endobj +626 0 obj[582 0 R 583 0 R 584 0 R 585 0 R @@ -1139,230 +1158,224 @@ endobj 605 0 R 606 0 R 607 0 R -608 0 R]endobj -610 0 obj<>endobj -611 0 obj<>endobj -612 0 obj<>endobj -613 0 obj<>endobj -614 0 obj<>endobj -615 0 obj<>endobj -616 0 obj<>endobj -617 0 obj<>endobj -618 0 obj[611 0 R +608 0 R +609 0 R +610 0 R +611 0 R +612 0 R 613 0 R +614 0 R 615 0 R -617 0 R]endobj -619 0 obj<>endobj -620 0 obj<>endobj -621 0 obj<>endobj -622 0 obj<>endobj -623 0 obj<>endobj -624 0 obj<>endobj -625 0 obj<>endobj -626 0 obj<>endobj -627 0 obj<>endobj -628 0 obj<>endobj -629 0 obj<>endobj -630 0 obj<>endobj -631 0 obj<>endobj -632 0 obj<>endobj -633 0 obj<>endobj -634 0 obj<>endobj -635 0 obj<>endobj -636 0 obj<>endobj -637 0 obj<>endobj -638 0 obj<>endobj -639 0 obj<>endobj -640 0 obj<>endobj -641 0 obj<>endobj -642 0 obj<>endobj -643 0 obj<>endobj -644 0 obj<>endobj -645 0 obj<>endobj -646 0 obj<>endobj -647 0 obj<>endobj -648 0 obj<>endobj -649 0 obj<>endobj -650 0 obj<>endobj -651 0 obj<>endobj -652 0 obj<>endobj -653 0 obj<>endobj -654 0 obj<>endobj -655 0 obj<>endobj -656 0 obj<>endobj -657 0 obj<>endobj -658 0 obj<>endobj -659 0 obj<>endobj -660 0 obj<>endobj -661 0 obj<>endobj -662 0 obj<>endobj -663 0 obj<>endobj -664 0 obj<>endobj -665 0 obj[620 0 R +616 0 R +617 0 R +618 0 R +619 0 R +620 0 R +621 0 R 622 0 R +623 0 R 624 0 R -626 0 R -628 0 R -630 0 R -632 0 R -634 0 R -636 0 R -638 0 R -640 0 R -642 0 R -644 0 R -646 0 R -648 0 R -650 0 R -652 0 R -654 0 R -656 0 R -658 0 R -660 0 R -662 0 R -664 0 R]endobj -666 0 obj<>endobj -667 0 obj<>endobj -668 0 obj<>endobj -669 0 obj<>endobj -670 0 obj[667 0 R -669 0 R]endobj -671 0 obj<>endobj -672 0 obj<>endobj -673 0 obj<>endobj -674 0 obj<>endobj -675 0 obj[672 0 R -674 0 R]endobj -676 0 obj<>endobj -677 0 obj<>endobj -678 0 obj<>endobj -679 0 obj<>endobj -680 0 obj<>endobj -681 0 obj<>endobj -682 0 obj[677 0 R -679 0 R -681 0 R]endobj -683 0 obj<>endobj -684 0 obj<>endobj -685 0 obj<>endobj -686 0 obj<>endobj -687 0 obj[684 0 R -686 0 R]endobj -688 0 obj<>endobj -689 0 obj<>endobj -690 0 obj<>endobj -691 0 obj<>endobj -692 0 obj<>endobj -693 0 obj<>endobj -694 0 obj<>endobj -695 0 obj<>endobj -696 0 obj<>endobj -697 0 obj<>endobj -698 0 obj<>endobj -699 0 obj<>endobj -700 0 obj<>endobj -701 0 obj<>endobj -702 0 obj<>endobj -703 0 obj<>endobj -704 0 obj[689 0 R +625 0 R]endobj +627 0 obj<>endobj +628 0 obj[627 0 R]endobj +629 0 obj<>endobj +630 0 obj<>endobj +631 0 obj[630 0 R]endobj +632 0 obj<>endobj +633 0 obj<>endobj +634 0 obj<>endobj +635 0 obj<>endobj +636 0 obj<>endobj +637 0 obj<>endobj +638 0 obj<>endobj +639 0 obj<>endobj +640 0 obj<>endobj +641 0 obj<>endobj +642 0 obj<>endobj +643 0 obj<>endobj +644 0 obj<>endobj +645 0 obj<>endobj +646 0 obj<>endobj +647 0 obj<>endobj +648 0 obj<>endobj +649 0 obj<>endobj +650 0 obj<>endobj +651 0 obj<>endobj +652 0 obj<>endobj +653 0 obj<>endobj +654 0 obj<>endobj +655 0 obj<>endobj +656 0 obj<>endobj +657 0 obj<>endobj +658 0 obj<>endobj +659 0 obj<>endobj +660 0 obj<>endobj +661 0 obj<>endobj +662 0 obj<>endobj +663 0 obj<>endobj +664 0 obj<>endobj +665 0 obj<>endobj +666 0 obj<>endobj +667 0 obj<>endobj +668 0 obj<>endobj +669 0 obj<>endobj +670 0 obj<>endobj +671 0 obj<>endobj +672 0 obj<>endobj +673 0 obj<>endobj +674 0 obj<>endobj +675 0 obj<>endobj +676 0 obj[633 0 R +635 0 R +637 0 R +639 0 R +641 0 R +643 0 R +645 0 R +647 0 R +649 0 R +651 0 R +653 0 R +655 0 R +657 0 R +659 0 R +661 0 R +663 0 R +665 0 R +667 0 R +669 0 R +671 0 R +673 0 R +675 0 R]endobj +677 0 obj<>endobj +678 0 obj<>endobj +679 0 obj[678 0 R]endobj +680 0 obj<>endobj +681 0 obj<>endobj +682 0 obj[681 0 R]endobj +683 0 obj<>endobj +684 0 obj<>endobj +685 0 obj[684 0 R]endobj +686 0 obj<>endobj +687 0 obj<>endobj +688 0 obj<>endobj +689 0 obj<>endobj +690 0 obj<>endobj +691 0 obj<>endobj +692 0 obj<>endobj +693 0 obj<>endobj +694 0 obj[687 0 R +689 0 R 691 0 R -693 0 R -695 0 R -697 0 R -699 0 R -701 0 R -703 0 R]endobj -705 0 obj<>endobj -706 0 obj<>endobj -707 0 obj<>endobj -708 0 obj<>endobj -709 0 obj[706 0 R -708 0 R]endobj -710 0 obj<>endobj -711 0 obj<>endobj -712 0 obj[711 0 R]endobj -713 0 obj<>endobj -714 0 obj<>endobj -715 0 obj<>endobj -716 0 obj<>endobj -717 0 obj<>endobj -718 0 obj<>endobj -719 0 obj<>endobj -720 0 obj<>endobj -721 0 obj<>endobj -722 0 obj<>endobj -723 0 obj[714 0 R -716 0 R -718 0 R -720 0 R -722 0 R]endobj -724 0 obj<>endobj -725 0 obj<>endobj -726 0 obj<>endobj -727 0 obj<>endobj -728 0 obj<>endobj -729 0 obj<>endobj -730 0 obj[725 0 R +693 0 R]endobj +695 0 obj<>endobj +696 0 obj<>endobj +697 0 obj<>endobj +698 0 obj<>endobj +699 0 obj<>endobj +700 0 obj<>endobj +701 0 obj<>endobj +702 0 obj<>endobj +703 0 obj<>endobj +704 0 obj<>endobj +705 0 obj<>endobj +706 0 obj<>endobj +707 0 obj<>endobj +708 0 obj<>endobj +709 0 obj<>endobj +710 0 obj<>endobj +711 0 obj[696 0 R +698 0 R +700 0 R +702 0 R +704 0 R +706 0 R +708 0 R +710 0 R]endobj +712 0 obj<>endobj +713 0 obj<>endobj +714 0 obj<>endobj +715 0 obj<>endobj +716 0 obj[713 0 R +715 0 R]endobj +717 0 obj<>endobj +718 0 obj<>endobj +719 0 obj[718 0 R]endobj +720 0 obj<>endobj +721 0 obj<>endobj +722 0 obj<>endobj +723 0 obj<>endobj +724 0 obj<>endobj +725 0 obj<>endobj +726 0 obj<>endobj +727 0 obj<>endobj +728 0 obj<>endobj +729 0 obj<>endobj +730 0 obj[721 0 R +723 0 R +725 0 R 727 0 R 729 0 R]endobj -731 0 obj<>endobj -732 0 obj<>endobj -733 0 obj<>endobj -734 0 obj<>endobj -735 0 obj[732 0 R -734 0 R]endobj -736 0 obj<>endobj -737 0 obj<>endobj -738 0 obj<>endobj -739 0 obj<>endobj -740 0 obj<>endobj -741 0 obj<>endobj -742 0 obj<>endobj -743 0 obj<>endobj -744 0 obj<>endobj -745 0 obj<>endobj -746 0 obj<>endobj -747 0 obj<>endobj -748 0 obj<>endobj -749 0 obj<>endobj -750 0 obj<>endobj -751 0 obj<>endobj -752 0 obj<>endobj -753 0 obj<>endobj -754 0 obj<>endobj -755 0 obj<>endobj -756 0 obj<>endobj -757 0 obj<>endobj -758 0 obj<>endobj -759 0 obj<>endobj -760 0 obj<>endobj -761 0 obj<>endobj -762 0 obj<>endobj -763 0 obj<>endobj -764 0 obj<>endobj -765 0 obj<>endobj -766 0 obj<>endobj -767 0 obj<>endobj -768 0 obj<>endobj -769 0 obj<>endobj -770 0 obj<>endobj -771 0 obj<>endobj -772 0 obj<>endobj -773 0 obj<>endobj -774 0 obj<>endobj -775 0 obj<>endobj -776 0 obj<>endobj -777 0 obj<>endobj -778 0 obj<>endobj -779 0 obj<>endobj -780 0 obj[736 0 R -737 0 R -738 0 R -739 0 R -740 0 R -741 0 R -742 0 R -743 0 R +731 0 obj<>endobj +732 0 obj<>endobj +733 0 obj<>endobj +734 0 obj<>endobj +735 0 obj<>endobj +736 0 obj<>endobj +737 0 obj[732 0 R +734 0 R +736 0 R]endobj +738 0 obj<>endobj +739 0 obj<>endobj +740 0 obj<>endobj +741 0 obj<>endobj +742 0 obj[739 0 R +741 0 R]endobj +743 0 obj<>endobj +744 0 obj<>endobj +745 0 obj<>endobj +746 0 obj<>endobj +747 0 obj<>endobj +748 0 obj<>endobj +749 0 obj<>endobj +750 0 obj<>endobj +751 0 obj<>endobj +752 0 obj<>endobj +753 0 obj<>endobj +754 0 obj<>endobj +755 0 obj<>endobj +756 0 obj<>endobj +757 0 obj<>endobj +758 0 obj<>endobj +759 0 obj<>endobj +760 0 obj<>endobj +761 0 obj<>endobj +762 0 obj<>endobj +763 0 obj<>endobj +764 0 obj<>endobj +765 0 obj<>endobj +766 0 obj<>endobj +767 0 obj<>endobj +768 0 obj<>endobj +769 0 obj<>endobj +770 0 obj<>endobj +771 0 obj<>endobj +772 0 obj<>endobj +773 0 obj<>endobj +774 0 obj<>endobj +775 0 obj<>endobj +776 0 obj<>endobj +777 0 obj<>endobj +778 0 obj<>endobj +779 0 obj<>endobj +780 0 obj<>endobj +781 0 obj<>endobj +782 0 obj<>endobj +783 0 obj<>endobj +784 0 obj<>endobj +785 0 obj<>endobj +786 0 obj<>endobj +787 0 obj[743 0 R 744 0 R 745 0 R 746 0 R @@ -1398,66 +1411,66 @@ endobj 776 0 R 777 0 R 778 0 R -779 0 R]endobj -781 0 obj<>endobj -782 0 obj<>endobj -783 0 obj<>endobj -784 0 obj<>endobj -785 0 obj<>endobj -786 0 obj<>endobj -787 0 obj<>endobj -788 0 obj<>endobj -789 0 obj<>endobj -790 0 obj<>endobj -791 0 obj<>endobj -792 0 obj<>endobj -793 0 obj<>endobj -794 0 obj<>endobj -795 0 obj<>endobj -796 0 obj<>endobj -797 0 obj<>endobj -798 0 obj<>endobj -799 0 obj<>endobj -800 0 obj<>endobj -801 0 obj<>endobj -802 0 obj<>endobj -803 0 obj<>endobj -804 0 obj<>endobj -805 0 obj<>endobj -806 0 obj<>endobj -807 0 obj<>endobj -808 0 obj<>endobj -809 0 obj<>endobj -810 0 obj<>endobj -811 0 obj<>endobj -812 0 obj<>endobj -813 0 obj<>endobj -814 0 obj<>endobj -815 0 obj<>endobj -816 0 obj<>endobj -817 0 obj<>endobj -818 0 obj<>endobj -819 0 obj<>endobj -820 0 obj<>endobj -821 0 obj<>endobj -822 0 obj<>endobj -823 0 obj<>endobj -824 0 obj<>endobj -825 0 obj<>endobj -826 0 obj<>endobj -827 0 obj<>endobj -828 0 obj<>endobj -829 0 obj<>endobj -830 0 obj<>endobj -831 0 obj<>endobj -832 0 obj[781 0 R +779 0 R +780 0 R +781 0 R 782 0 R 783 0 R 784 0 R 785 0 R -786 0 R -787 0 R -788 0 R +786 0 R]endobj +788 0 obj<>endobj +789 0 obj<>endobj +790 0 obj<>endobj +791 0 obj<>endobj +792 0 obj<>endobj +793 0 obj<>endobj +794 0 obj<>endobj +795 0 obj<>endobj +796 0 obj<>endobj +797 0 obj<>endobj +798 0 obj<>endobj +799 0 obj<>endobj +800 0 obj<>endobj +801 0 obj<>endobj +802 0 obj<>endobj +803 0 obj<>endobj +804 0 obj<>endobj +805 0 obj<>endobj +806 0 obj<>endobj +807 0 obj<>endobj +808 0 obj<>endobj +809 0 obj<>endobj +810 0 obj<>endobj +811 0 obj<>endobj +812 0 obj<>endobj +813 0 obj<>endobj +814 0 obj<>endobj +815 0 obj<>endobj +816 0 obj<>endobj +817 0 obj<>endobj +818 0 obj<>endobj +819 0 obj<>endobj +820 0 obj<>endobj +821 0 obj<>endobj +822 0 obj<>endobj +823 0 obj<>endobj +824 0 obj<>endobj +825 0 obj<>endobj +826 0 obj<>endobj +827 0 obj<>endobj +828 0 obj<>endobj +829 0 obj<>endobj +830 0 obj<>endobj +831 0 obj<>endobj +832 0 obj<>endobj +833 0 obj<>endobj +834 0 obj<>endobj +835 0 obj<>endobj +836 0 obj<>endobj +837 0 obj<>endobj +838 0 obj<>endobj +839 0 obj[788 0 R 789 0 R 790 0 R 791 0 R @@ -1500,46 +1513,49 @@ endobj 828 0 R 829 0 R 830 0 R -831 0 R]endobj -833 0 obj<>endobj -834 0 obj<>endobj -835 0 obj<>endobj -836 0 obj<>endobj -837 0 obj<>endobj -838 0 obj<>endobj -839 0 obj<>endobj -840 0 obj<>endobj -841 0 obj<>endobj -842 0 obj<>endobj -843 0 obj<>endobj -844 0 obj<>endobj -845 0 obj<>endobj -846 0 obj<>endobj -847 0 obj<>endobj -848 0 obj<>endobj -849 0 obj<>endobj -850 0 obj<>endobj -851 0 obj<>endobj -852 0 obj<>endobj -853 0 obj<>endobj -854 0 obj<>endobj -855 0 obj<>endobj -856 0 obj<>endobj -857 0 obj<>endobj -858 0 obj<>endobj -859 0 obj<>endobj -860 0 obj<>endobj -861 0 obj<>endobj -862 0 obj<>endobj -863 0 obj<>endobj -864 0 obj[833 0 R +831 0 R +832 0 R +833 0 R 834 0 R 835 0 R 836 0 R 837 0 R -838 0 R -839 0 R -840 0 R +838 0 R]endobj +840 0 obj<>endobj +841 0 obj<>endobj +842 0 obj<>endobj +843 0 obj<>endobj +844 0 obj<>endobj +845 0 obj<>endobj +846 0 obj<>endobj +847 0 obj<>endobj +848 0 obj<>endobj +849 0 obj<>endobj +850 0 obj<>endobj +851 0 obj<>endobj +852 0 obj<>endobj +853 0 obj<>endobj +854 0 obj<>endobj +855 0 obj<>endobj +856 0 obj<>endobj +857 0 obj<>endobj +858 0 obj<>endobj +859 0 obj<>endobj +860 0 obj<>endobj +861 0 obj<>endobj +862 0 obj<>endobj +863 0 obj<>endobj +864 0 obj<>endobj +865 0 obj<>endobj +866 0 obj<>endobj +867 0 obj<>endobj +868 0 obj<>endobj +869 0 obj<>endobj +870 0 obj<>endobj +871 0 obj<>endobj +872 0 obj<>endobj +873 0 obj<>endobj +874 0 obj[840 0 R 841 0 R 842 0 R 843 0 R @@ -1562,206 +1578,206 @@ endobj 860 0 R 861 0 R 862 0 R -863 0 R]endobj -865 0 obj<>endobj -866 0 obj<>endobj -867 0 obj<>endobj -868 0 obj<>endobj -869 0 obj<>endobj -870 0 obj<>endobj -871 0 obj[866 0 R +863 0 R +864 0 R +865 0 R +866 0 R +867 0 R 868 0 R -870 0 R]endobj -872 0 obj<>endobj -873 0 obj<>endobj -874 0 obj<>endobj -875 0 obj<>endobj -876 0 obj[873 0 R -875 0 R]endobj -877 0 obj<>endobj -878 0 obj<>endobj -879 0 obj<>endobj -880 0 obj<>endobj -881 0 obj[878 0 R +869 0 R +870 0 R +871 0 R +872 0 R +873 0 R]endobj +875 0 obj<>endobj +876 0 obj<>endobj +877 0 obj<>endobj +878 0 obj<>endobj +879 0 obj<>endobj +880 0 obj<>endobj +881 0 obj[876 0 R +878 0 R 880 0 R]endobj -882 0 obj<>endobj -883 0 obj<>endobj -884 0 obj<>endobj -885 0 obj<>endobj -886 0 obj<>endobj -887 0 obj<>endobj -888 0 obj<>endobj -889 0 obj<>endobj -890 0 obj[883 0 R -885 0 R -887 0 R -889 0 R]endobj -891 0 obj<>endobj -892 0 obj<>endobj -893 0 obj[892 0 R]endobj -894 0 obj<>endobj -895 0 obj<>endobj -896 0 obj<>endobj -897 0 obj<>endobj -898 0 obj[895 0 R -897 0 R]endobj -899 0 obj<>endobj -900 0 obj<>endobj -901 0 obj<>endobj -902 0 obj<>endobj -903 0 obj<>endobj -904 0 obj<>endobj -905 0 obj[900 0 R -902 0 R -904 0 R]endobj -906 0 obj<>endobj -907 0 obj<>endobj -908 0 obj<>endobj -909 0 obj<>endobj -910 0 obj<>endobj -911 0 obj<>endobj -912 0 obj[907 0 R -909 0 R -911 0 R]endobj -913 0 obj<>endobj -914 0 obj<>endobj -915 0 obj<>endobj -916 0 obj<>endobj -917 0 obj<>endobj -918 0 obj<>endobj -919 0 obj<>endobj -920 0 obj<>endobj -921 0 obj<>endobj -922 0 obj<>endobj -923 0 obj[914 0 R -916 0 R -918 0 R -920 0 R -922 0 R]endobj -924 0 obj<>endobj -925 0 obj<>endobj -926 0 obj[925 0 R]endobj -927 0 obj<>endobj -928 0 obj<>endobj -929 0 obj<>endobj -930 0 obj<>endobj -931 0 obj<>endobj -932 0 obj<>endobj -933 0 obj<>endobj -934 0 obj<>endobj -935 0 obj<>endobj -936 0 obj<>endobj -937 0 obj[928 0 R +882 0 obj<>endobj +883 0 obj<>endobj +884 0 obj<>endobj +885 0 obj<>endobj +886 0 obj[883 0 R +885 0 R]endobj +887 0 obj<>endobj +888 0 obj<>endobj +889 0 obj<>endobj +890 0 obj<>endobj +891 0 obj[888 0 R +890 0 R]endobj +892 0 obj<>endobj +893 0 obj<>endobj +894 0 obj<>endobj +895 0 obj<>endobj +896 0 obj<>endobj +897 0 obj<>endobj +898 0 obj<>endobj +899 0 obj<>endobj +900 0 obj[893 0 R +895 0 R +897 0 R +899 0 R]endobj +901 0 obj<>endobj +902 0 obj<>endobj +903 0 obj[902 0 R]endobj +904 0 obj<>endobj +905 0 obj<>endobj +906 0 obj<>endobj +907 0 obj<>endobj +908 0 obj[905 0 R +907 0 R]endobj +909 0 obj<>endobj +910 0 obj<>endobj +911 0 obj<>endobj +912 0 obj<>endobj +913 0 obj<>endobj +914 0 obj<>endobj +915 0 obj[910 0 R +912 0 R +914 0 R]endobj +916 0 obj<>endobj +917 0 obj<>endobj +918 0 obj<>endobj +919 0 obj<>endobj +920 0 obj<>endobj +921 0 obj<>endobj +922 0 obj[917 0 R +919 0 R +921 0 R]endobj +923 0 obj<>endobj +924 0 obj<>endobj +925 0 obj<>endobj +926 0 obj<>endobj +927 0 obj<>endobj +928 0 obj<>endobj +929 0 obj<>endobj +930 0 obj<>endobj +931 0 obj<>endobj +932 0 obj<>endobj +933 0 obj[924 0 R +926 0 R +928 0 R 930 0 R -932 0 R -934 0 R -936 0 R]endobj -938 0 obj<>endobj -939 0 obj<>endobj -940 0 obj<>endobj -941 0 obj<>endobj -942 0 obj[939 0 R -941 0 R]endobj -943 0 obj<>endobj -944 0 obj<>endobj -945 0 obj[944 0 R]endobj -946 0 obj<>endobj -947 0 obj<>endobj -948 0 obj[947 0 R]endobj -949 0 obj<>endobj -950 0 obj<>endobj -951 0 obj[950 0 R]endobj -952 0 obj<>endobj -953 0 obj<>endobj -954 0 obj<>endobj -955 0 obj<>endobj -956 0 obj<>endobj -957 0 obj<>endobj -958 0 obj<>endobj -959 0 obj<>endobj -960 0 obj<>endobj -961 0 obj<>endobj -962 0 obj<>endobj -963 0 obj<>endobj -964 0 obj<>endobj -965 0 obj<>endobj -966 0 obj[953 0 R -955 0 R -957 0 R -959 0 R -961 0 R -963 0 R -965 0 R]endobj -967 0 obj<>endobj -968 0 obj<>endobj -969 0 obj<>endobj -970 0 obj<>endobj -971 0 obj[968 0 R -970 0 R]endobj -972 0 obj<>endobj -973 0 obj<>endobj -974 0 obj[973 0 R]endobj -975 0 obj<>endobj -976 0 obj<>endobj -977 0 obj<>endobj -978 0 obj<>endobj -979 0 obj<>endobj -980 0 obj<>endobj -981 0 obj<>endobj -982 0 obj<>endobj -983 0 obj<>endobj -984 0 obj<>endobj -985 0 obj<>endobj -986 0 obj<>endobj -987 0 obj<>endobj -988 0 obj<>endobj -989 0 obj<>endobj -990 0 obj<>endobj -991 0 obj<>endobj -992 0 obj<>endobj -993 0 obj<>endobj -994 0 obj<>endobj -995 0 obj<>endobj -996 0 obj<>endobj -997 0 obj<>endobj -998 0 obj<>endobj -999 0 obj<>endobj -1000 0 obj<>endobj -1001 0 obj<>endobj -1002 0 obj<>endobj -1003 0 obj<>endobj -1004 0 obj<>endobj -1005 0 obj<>endobj -1006 0 obj<>endobj -1007 0 obj<>endobj -1008 0 obj<>endobj -1009 0 obj<>endobj -1010 0 obj<>endobj -1011 0 obj<>endobj -1012 0 obj<>endobj -1013 0 obj<>endobj -1014 0 obj<>endobj -1015 0 obj<>endobj -1016 0 obj<>endobj -1017 0 obj<>endobj -1018 0 obj<>endobj -1019 0 obj<>endobj -1020 0 obj<>endobj -1021 0 obj<>endobj -1022 0 obj[975 0 R -976 0 R -977 0 R -978 0 R -979 0 R -980 0 R -981 0 R -982 0 R -983 0 R -984 0 R -985 0 R -986 0 R -987 0 R -988 0 R +932 0 R]endobj +934 0 obj<>endobj +935 0 obj<>endobj +936 0 obj[935 0 R]endobj +937 0 obj<>endobj +938 0 obj<>endobj +939 0 obj<>endobj +940 0 obj<>endobj +941 0 obj<>endobj +942 0 obj<>endobj +943 0 obj<>endobj +944 0 obj<>endobj +945 0 obj<>endobj +946 0 obj<>endobj +947 0 obj[938 0 R +940 0 R +942 0 R +944 0 R +946 0 R]endobj +948 0 obj<>endobj +949 0 obj<>endobj +950 0 obj<>endobj +951 0 obj<>endobj +952 0 obj[949 0 R +951 0 R]endobj +953 0 obj<>endobj +954 0 obj<>endobj +955 0 obj[954 0 R]endobj +956 0 obj<>endobj +957 0 obj<>endobj +958 0 obj[957 0 R]endobj +959 0 obj<>endobj +960 0 obj<>endobj +961 0 obj<>endobj +962 0 obj<>endobj +963 0 obj<>endobj +964 0 obj<>endobj +965 0 obj[960 0 R +962 0 R +964 0 R]endobj +966 0 obj<>endobj +967 0 obj<>endobj +968 0 obj<>endobj +969 0 obj<>endobj +970 0 obj<>endobj +971 0 obj<>endobj +972 0 obj<>endobj +973 0 obj<>endobj +974 0 obj<>endobj +975 0 obj<>endobj +976 0 obj[967 0 R +969 0 R +971 0 R +973 0 R +975 0 R]endobj +977 0 obj<>endobj +978 0 obj<>endobj +979 0 obj<>endobj +980 0 obj<>endobj +981 0 obj[978 0 R +980 0 R]endobj +982 0 obj<>endobj +983 0 obj<>endobj +984 0 obj[983 0 R]endobj +985 0 obj<>endobj +986 0 obj<>endobj +987 0 obj[986 0 R]endobj +988 0 obj<>endobj +989 0 obj<>endobj +990 0 obj<>endobj +991 0 obj<>endobj +992 0 obj<>endobj +993 0 obj<>endobj +994 0 obj<>endobj +995 0 obj<>endobj +996 0 obj<>endobj +997 0 obj<>endobj +998 0 obj<>endobj +999 0 obj<>endobj +1000 0 obj<>endobj +1001 0 obj<>endobj +1002 0 obj<>endobj +1003 0 obj<>endobj +1004 0 obj<>endobj +1005 0 obj<>endobj +1006 0 obj<>endobj +1007 0 obj<>endobj +1008 0 obj<>endobj +1009 0 obj<>endobj +1010 0 obj<>endobj +1011 0 obj<>endobj +1012 0 obj<>endobj +1013 0 obj<>endobj +1014 0 obj<>endobj +1015 0 obj<>endobj +1016 0 obj<>endobj +1017 0 obj<>endobj +1018 0 obj<>endobj +1019 0 obj<>endobj +1020 0 obj<>endobj +1021 0 obj<>endobj +1022 0 obj<>endobj +1023 0 obj<>endobj +1024 0 obj<>endobj +1025 0 obj<>endobj +1026 0 obj<>endobj +1027 0 obj<>endobj +1028 0 obj<>endobj +1029 0 obj<>endobj +1030 0 obj<>endobj +1031 0 obj<>endobj +1032 0 obj<>endobj +1033 0 obj<>endobj +1034 0 obj<>endobj +1035 0 obj[988 0 R 989 0 R 990 0 R 991 0 R @@ -1794,773 +1810,774 @@ endobj 1018 0 R 1019 0 R 1020 0 R -1021 0 R]endobj -1023 0 obj<>endobj -1024 0 obj<>endobj -1025 0 obj<>endobj -1026 0 obj<>endobj -1027 0 obj<>endobj -1028 0 obj<>endobj -1029 0 obj<>endobj -1030 0 obj[1023 0 R +1021 0 R +1022 0 R +1023 0 R 1024 0 R 1025 0 R 1026 0 R 1027 0 R 1028 0 R -1029 0 R]endobj -1031 0 obj<>endobj -1032 0 obj<>endobj -1033 0 obj<>endobj -1034 0 obj<>endobj -1035 0 obj<>endobj -1036 0 obj<>endobj -1037 0 obj<>endobj -1038 0 obj<>endobj -1039 0 obj<>endobj -1040 0 obj<>endobj -1041 0 obj[1032 0 R -1034 0 R -1036 0 R +1029 0 R +1030 0 R +1031 0 R +1032 0 R +1033 0 R +1034 0 R]endobj +1036 0 obj<>endobj +1037 0 obj<>endobj +1038 0 obj<>endobj +1039 0 obj<>endobj +1040 0 obj<>endobj +1041 0 obj<>endobj +1042 0 obj<>endobj +1043 0 obj[1036 0 R +1037 0 R 1038 0 R -1040 0 R]endobj -1042 0 obj<>endobj -1043 0 obj<>endobj -1044 0 obj<>endobj -1045 0 obj<>endobj -1046 0 obj<>endobj -1047 0 obj<>endobj -1048 0 obj<>endobj -1049 0 obj<>endobj -1050 0 obj[1043 0 R -1045 0 R +1039 0 R +1040 0 R +1041 0 R +1042 0 R]endobj +1044 0 obj<>endobj +1045 0 obj<>endobj +1046 0 obj<>endobj +1047 0 obj<>endobj +1048 0 obj<>endobj +1049 0 obj<>endobj +1050 0 obj<>endobj +1051 0 obj<>endobj +1052 0 obj<>endobj +1053 0 obj<>endobj +1054 0 obj[1045 0 R 1047 0 R -1049 0 R]endobj -1051 0 obj<>endobj -1052 0 obj<>endobj -1053 0 obj[1052 0 R]endobj -1054 0 obj<>endobj -1055 0 obj<>endobj -1056 0 obj[1055 0 R]endobj -1057 0 obj<>endobj -1058 0 obj<>endobj -1059 0 obj<>endobj -1060 0 obj<>endobj -1061 0 obj<>endobj -1062 0 obj<>endobj -1063 0 obj<>endobj -1064 0 obj<>endobj -1065 0 obj[1058 0 R +1049 0 R +1051 0 R +1053 0 R]endobj +1055 0 obj<>endobj +1056 0 obj<>endobj +1057 0 obj<>endobj +1058 0 obj<>endobj +1059 0 obj<>endobj +1060 0 obj<>endobj +1061 0 obj<>endobj +1062 0 obj<>endobj +1063 0 obj[1056 0 R +1058 0 R 1060 0 R -1062 0 R -1064 0 R]endobj -1066 0 obj<>endobj -1067 0 obj<>endobj -1068 0 obj<>endobj -1069 0 obj<>endobj -1070 0 obj[1067 0 R -1069 0 R]endobj -1071 0 obj<>endobj -1072 0 obj<>endobj -1073 0 obj<>endobj -1074 0 obj<>endobj -1075 0 obj<>endobj -1076 0 obj<>endobj -1077 0 obj<>endobj -1078 0 obj<>endobj -1079 0 obj[1072 0 R -1074 0 R -1076 0 R -1078 0 R]endobj -1080 0 obj<>endobj -1081 0 obj<>endobj -1082 0 obj<>endobj -1083 0 obj<>endobj -1084 0 obj[1081 0 R -1083 0 R]endobj -1085 0 obj<>endobj -1086 0 obj<>endobj -1087 0 obj<>endobj -1088 0 obj<>endobj -1089 0 obj<>endobj -1090 0 obj<>endobj -1091 0 obj<>endobj -1092 0 obj<>endobj -1093 0 obj<>endobj -1094 0 obj<>endobj -1095 0 obj<>endobj -1096 0 obj<>endobj -1097 0 obj<>endobj -1098 0 obj<>endobj -1099 0 obj<>endobj -1100 0 obj<>endobj -1101 0 obj<>endobj -1102 0 obj<>endobj -1103 0 obj<>endobj -1104 0 obj<>endobj -1105 0 obj<>endobj -1106 0 obj<>endobj -1107 0 obj<>endobj -1108 0 obj<>endobj -1109 0 obj<>endobj -1110 0 obj<>endobj -1111 0 obj<>endobj -1112 0 obj<>endobj -1113 0 obj<>endobj -1114 0 obj<>endobj -1115 0 obj<>endobj -1116 0 obj<>endobj -1117 0 obj<>endobj -1118 0 obj<>endobj -1119 0 obj<>endobj -1120 0 obj<>endobj -1121 0 obj<>endobj -1122 0 obj<>endobj -1123 0 obj<>endobj -1124 0 obj<>endobj -1125 0 obj<>endobj -1126 0 obj<>endobj -1127 0 obj<>endobj -1128 0 obj<>endobj -1129 0 obj<>endobj -1130 0 obj<>endobj -1131 0 obj<>endobj -1132 0 obj<>endobj -1133 0 obj<>endobj -1134 0 obj<>endobj -1135 0 obj<>endobj -1136 0 obj<>endobj -1137 0 obj<>endobj -1138 0 obj<>endobj -1139 0 obj<>endobj -1140 0 obj<>endobj -1141 0 obj<>endobj -1142 0 obj<>endobj -1143 0 obj<>endobj -1144 0 obj<>endobj -1145 0 obj<>endobj -1146 0 obj<>endobj -1147 0 obj<>endobj -1148 0 obj<>endobj -1149 0 obj<>endobj -1150 0 obj<>endobj -1151 0 obj<>endobj -1152 0 obj<>endobj -1153 0 obj<>endobj -1154 0 obj<>endobj -1155 0 obj<>endobj -1156 0 obj<>endobj -1157 0 obj<>endobj -1158 0 obj<>endobj -1159 0 obj<>endobj -1160 0 obj<>endobj -1161 0 obj<>endobj -1162 0 obj<>endobj -1163 0 obj<>endobj -1164 0 obj<>endobj -1165 0 obj<>endobj -1166 0 obj<>endobj -1167 0 obj<>endobj -1168 0 obj<>endobj -1169 0 obj<>endobj -1170 0 obj<>endobj -1171 0 obj<>endobj -1172 0 obj<>endobj -1173 0 obj<>endobj -1174 0 obj<>endobj -1175 0 obj<>endobj -1176 0 obj<>endobj -1177 0 obj<>endobj -1178 0 obj<>endobj -1179 0 obj<>endobj -1180 0 obj<>endobj -1181 0 obj<>endobj -1182 0 obj<>endobj -1183 0 obj<>endobj -1184 0 obj<>endobj -1185 0 obj<>endobj -1186 0 obj<>endobj -1187 0 obj<>endobj -1188 0 obj<>endobj -1189 0 obj<>endobj -1190 0 obj<>endobj -1191 0 obj<>endobj -1192 0 obj<>endobj -1193 0 obj<>endobj -1194 0 obj<>endobj -1195 0 obj<>endobj -1196 0 obj<>endobj -1197 0 obj<>endobj -1198 0 obj<>endobj -1199 0 obj<>endobj -1200 0 obj<>endobj -1201 0 obj<>endobj -1202 0 obj<>endobj -1203 0 obj<>endobj -1204 0 obj<>endobj -1205 0 obj<>endobj -1206 0 obj<>endobj -1207 0 obj<>endobj -1208 0 obj<>endobj -1209 0 obj<>endobj -1210 0 obj<>endobj -1211 0 obj<>endobj -1212 0 obj<>endobj -1213 0 obj<>endobj -1214 0 obj<>endobj -1215 0 obj<>endobj -1216 0 obj<>endobj -1217 0 obj<>endobj -1218 0 obj<>endobj -1219 0 obj<>endobj -1220 0 obj<>endobj -1221 0 obj<>endobj -1222 0 obj<>endobj -1223 0 obj<>endobj -1224 0 obj<>endobj -1225 0 obj<>endobj -1226 0 obj<>endobj -1227 0 obj<>endobj -1228 0 obj<>endobj -1229 0 obj<>endobj -1230 0 obj<>endobj -1231 0 obj<>endobj -1232 0 obj<>endobj -1233 0 obj<>endobj -1234 0 obj<>endobj -1235 0 obj<>endobj -1236 0 obj<>endobj -1237 0 obj<>endobj -1238 0 obj<>endobj -1239 0 obj<>endobj -1240 0 obj<>endobj -1241 0 obj<>endobj -1242 0 obj<>endobj -1243 0 obj<>endobj -1244 0 obj<>endobj -1245 0 obj<>endobj -1246 0 obj<>endobj -1247 0 obj<>endobj -1248 0 obj<>endobj -1249 0 obj<>endobj -1250 0 obj<>endobj -1251 0 obj<>endobj -1252 0 obj<>endobj -1253 0 obj<>endobj -1254 0 obj<>endobj -1255 0 obj<>endobj -1256 0 obj<>endobj -1257 0 obj<>endobj -1258 0 obj<>endobj -1259 0 obj<>endobj -1260 0 obj<>endobj -1261 0 obj<>endobj -1262 0 obj<>endobj -1263 0 obj<>endobj -1264 0 obj<>endobj -1265 0 obj<>endobj -1266 0 obj<>endobj -1267 0 obj<>endobj -1268 0 obj<>endobj -1269 0 obj<>endobj -1270 0 obj<>endobj -1271 0 obj<>endobj -1272 0 obj<>endobj -1273 0 obj<>endobj -1274 0 obj<>endobj -1275 0 obj<>endobj -1276 0 obj<>endobj -1277 0 obj<>endobj -1278 0 obj<>endobj -1279 0 obj<>endobj -1280 0 obj<>endobj -1281 0 obj<>endobj -1282 0 obj<>endobj -1283 0 obj<>endobj -1284 0 obj<>endobj -1285 0 obj<>endobj -1286 0 obj<>endobj -1287 0 obj<>endobj -1288 0 obj<>endobj -1289 0 obj<>endobj -1290 0 obj<>endobj -1291 0 obj<>endobj -1292 0 obj<>endobj -1293 0 obj<>endobj -1294 0 obj<>endobj -1295 0 obj<>endobj -1296 0 obj<>endobj -1297 0 obj<>endobj -1298 0 obj<>endobj -1299 0 obj<>endobj -1300 0 obj<>endobj -1301 0 obj<>endobj -1302 0 obj<>endobj -1303 0 obj<>endobj -1304 0 obj<>endobj -1305 0 obj<>endobj -1306 0 obj<>endobj -1307 0 obj<>endobj -1308 0 obj<>endobj -1309 0 obj<>endobj -1310 0 obj<>endobj -1311 0 obj<>endobj -1312 0 obj<>endobj -1313 0 obj<>endobj -1314 0 obj<>endobj -1315 0 obj<>endobj -1316 0 obj<>endobj -1317 0 obj<>endobj -1318 0 obj<>endobj -1319 0 obj<>endobj -1320 0 obj<>endobj -1321 0 obj<>endobj -1322 0 obj<>endobj -1323 0 obj<>endobj -1324 0 obj<>endobj -1325 0 obj<>endobj -1326 0 obj<>endobj -1327 0 obj<>endobj -1328 0 obj<>endobj -1329 0 obj<>endobj -1330 0 obj<>endobj -1331 0 obj<>endobj -1332 0 obj<>endobj -1333 0 obj<>endobj -1334 0 obj<>endobj -1335 0 obj<>endobj -1336 0 obj<>endobj -1337 0 obj<>endobj -1338 0 obj<>endobj -1339 0 obj<>endobj -1340 0 obj<>endobj -1341 0 obj<>endobj -1342 0 obj<>endobj -1343 0 obj<>endobj -1344 0 obj<>endobj -1345 0 obj<>endobj -1346 0 obj<>endobj -1347 0 obj<>endobj -1348 0 obj<>endobj -1349 0 obj<>endobj -1350 0 obj<>endobj -1351 0 obj<>endobj -1352 0 obj<>endobj -1353 0 obj<>endobj -1354 0 obj<>endobj -1355 0 obj<>endobj -1356 0 obj<>endobj -1357 0 obj<>endobj -1358 0 obj<>endobj -1359 0 obj<>endobj -1360 0 obj<>endobj -1361 0 obj<>endobj -1362 0 obj<>endobj -1363 0 obj<>endobj -1364 0 obj<>endobj -1365 0 obj<>endobj -1366 0 obj<>endobj -1367 0 obj<>endobj -1368 0 obj<>endobj -1369 0 obj<>endobj -1370 0 obj<>endobj -1371 0 obj<>endobj -1372 0 obj<>endobj -1373 0 obj<>endobj -1374 0 obj<>endobj -1375 0 obj<>endobj -1376 0 obj<>endobj -1377 0 obj<>endobj -1378 0 obj<>endobj -1379 0 obj<>endobj -1380 0 obj<>endobj -1381 0 obj<>endobj -1382 0 obj<>endobj -1383 0 obj<>endobj -1384 0 obj<>endobj -1385 0 obj<>endobj -1386 0 obj<>endobj -1387 0 obj<>endobj -1388 0 obj<>endobj -1389 0 obj<>endobj -1390 0 obj<>endobj -1391 0 obj<>endobj -1392 0 obj<>endobj -1393 0 obj<>endobj -1394 0 obj<>endobj -1395 0 obj<>endobj -1396 0 obj<>endobj -1397 0 obj<>endobj +1065 0 obj<>endobj +1066 0 obj[1065 0 R]endobj +1067 0 obj<>endobj +1068 0 obj<>endobj +1069 0 obj[1068 0 R]endobj +1070 0 obj<>endobj +1071 0 obj<>endobj +1072 0 obj<>endobj +1073 0 obj<>endobj +1074 0 obj<>endobj +1075 0 obj<>endobj +1076 0 obj<>endobj +1077 0 obj<>endobj +1078 0 obj[1071 0 R +1073 0 R +1075 0 R +1077 0 R]endobj +1079 0 obj<>endobj +1080 0 obj<>endobj +1081 0 obj<>endobj +1082 0 obj<>endobj +1083 0 obj[1080 0 R +1082 0 R]endobj +1084 0 obj<>endobj +1085 0 obj<>endobj +1086 0 obj<>endobj +1087 0 obj<>endobj +1088 0 obj<>endobj +1089 0 obj<>endobj +1090 0 obj<>endobj +1091 0 obj<>endobj +1092 0 obj[1085 0 R +1087 0 R +1089 0 R +1091 0 R]endobj +1093 0 obj<>endobj +1094 0 obj<>endobj +1095 0 obj<>endobj +1096 0 obj<>endobj +1097 0 obj[1094 0 R +1096 0 R]endobj +1098 0 obj<>endobj +1099 0 obj<>endobj +1100 0 obj<>endobj +1101 0 obj<>endobj +1102 0 obj<>endobj +1103 0 obj<>endobj +1104 0 obj<>endobj +1105 0 obj<>endobj +1106 0 obj<>endobj +1107 0 obj<>endobj +1108 0 obj<>endobj +1109 0 obj<>endobj +1110 0 obj<>endobj +1111 0 obj<>endobj +1112 0 obj<>endobj +1113 0 obj<>endobj +1114 0 obj<>endobj +1115 0 obj<>endobj +1116 0 obj<>endobj +1117 0 obj<>endobj +1118 0 obj<>endobj +1119 0 obj<>endobj +1120 0 obj<>endobj +1121 0 obj<>endobj +1122 0 obj<>endobj +1123 0 obj<>endobj +1124 0 obj<>endobj +1125 0 obj<>endobj +1126 0 obj<>endobj +1127 0 obj<>endobj +1128 0 obj<>endobj +1129 0 obj<>endobj +1130 0 obj<>endobj +1131 0 obj<>endobj +1132 0 obj<>endobj +1133 0 obj<>endobj +1134 0 obj<>endobj +1135 0 obj<>endobj +1136 0 obj<>endobj +1137 0 obj<>endobj +1138 0 obj<>endobj +1139 0 obj<>endobj +1140 0 obj<>endobj +1141 0 obj<>endobj +1142 0 obj<>endobj +1143 0 obj<>endobj +1144 0 obj<>endobj +1145 0 obj<>endobj +1146 0 obj<>endobj +1147 0 obj<>endobj +1148 0 obj<>endobj +1149 0 obj<>endobj +1150 0 obj<>endobj +1151 0 obj<>endobj +1152 0 obj<>endobj +1153 0 obj<>endobj +1154 0 obj<>endobj +1155 0 obj<>endobj +1156 0 obj<>endobj +1157 0 obj<>endobj +1158 0 obj<>endobj +1159 0 obj<>endobj +1160 0 obj<>endobj +1161 0 obj<>endobj +1162 0 obj<>endobj +1163 0 obj<>endobj +1164 0 obj<>endobj +1165 0 obj<>endobj +1166 0 obj<>endobj +1167 0 obj<>endobj +1168 0 obj<>endobj +1169 0 obj<>endobj +1170 0 obj<>endobj +1171 0 obj<>endobj +1172 0 obj<>endobj +1173 0 obj<>endobj +1174 0 obj<>endobj +1175 0 obj<>endobj +1176 0 obj<>endobj +1177 0 obj<>endobj +1178 0 obj<>endobj +1179 0 obj<>endobj +1180 0 obj<>endobj +1181 0 obj<>endobj +1182 0 obj<>endobj +1183 0 obj<>endobj +1184 0 obj<>endobj +1185 0 obj<>endobj +1186 0 obj<>endobj +1187 0 obj<>endobj +1188 0 obj<>endobj +1189 0 obj<>endobj +1190 0 obj<>endobj +1191 0 obj<>endobj +1192 0 obj<>endobj +1193 0 obj<>endobj +1194 0 obj<>endobj +1195 0 obj<>endobj +1196 0 obj<>endobj +1197 0 obj<>endobj +1198 0 obj<>endobj +1199 0 obj<>endobj +1200 0 obj<>endobj +1201 0 obj<>endobj +1202 0 obj<>endobj +1203 0 obj<>endobj +1204 0 obj<>endobj +1205 0 obj<>endobj +1206 0 obj<>endobj +1207 0 obj<>endobj +1208 0 obj<>endobj +1209 0 obj<>endobj +1210 0 obj<>endobj +1211 0 obj<>endobj +1212 0 obj<>endobj +1213 0 obj<>endobj +1214 0 obj<>endobj +1215 0 obj<>endobj +1216 0 obj<>endobj +1217 0 obj<>endobj +1218 0 obj<>endobj +1219 0 obj<>endobj +1220 0 obj<>endobj +1221 0 obj<>endobj +1222 0 obj<>endobj +1223 0 obj<>endobj +1224 0 obj<>endobj +1225 0 obj<>endobj +1226 0 obj<>endobj +1227 0 obj<>endobj +1228 0 obj<>endobj +1229 0 obj<>endobj +1230 0 obj<>endobj +1231 0 obj<>endobj +1232 0 obj<>endobj +1233 0 obj<>endobj +1234 0 obj<>endobj +1235 0 obj<>endobj +1236 0 obj<>endobj +1237 0 obj<>endobj +1238 0 obj<>endobj +1239 0 obj<>endobj +1240 0 obj<>endobj +1241 0 obj<>endobj +1242 0 obj<>endobj +1243 0 obj<>endobj +1244 0 obj<>endobj +1245 0 obj<>endobj +1246 0 obj<>endobj +1247 0 obj<>endobj +1248 0 obj<>endobj +1249 0 obj<>endobj +1250 0 obj<>endobj +1251 0 obj<>endobj +1252 0 obj<>endobj +1253 0 obj<>endobj +1254 0 obj<>endobj +1255 0 obj<>endobj +1256 0 obj<>endobj +1257 0 obj<>endobj +1258 0 obj<>endobj +1259 0 obj<>endobj +1260 0 obj<>endobj +1261 0 obj<>endobj +1262 0 obj<>endobj +1263 0 obj<>endobj +1264 0 obj<>endobj +1265 0 obj<>endobj +1266 0 obj<>endobj +1267 0 obj<>endobj +1268 0 obj<>endobj +1269 0 obj<>endobj +1270 0 obj<>endobj +1271 0 obj<>endobj +1272 0 obj<>endobj +1273 0 obj<>endobj +1274 0 obj<>endobj +1275 0 obj<>endobj +1276 0 obj<>endobj +1277 0 obj<>endobj +1278 0 obj<>endobj +1279 0 obj<>endobj +1280 0 obj<>endobj +1281 0 obj<>endobj +1282 0 obj<>endobj +1283 0 obj<>endobj +1284 0 obj<>endobj +1285 0 obj<>endobj +1286 0 obj<>endobj +1287 0 obj<>endobj +1288 0 obj<>endobj +1289 0 obj<>endobj +1290 0 obj<>endobj +1291 0 obj<>endobj +1292 0 obj<>endobj +1293 0 obj<>endobj +1294 0 obj<>endobj +1295 0 obj<>endobj +1296 0 obj<>endobj +1297 0 obj<>endobj +1298 0 obj<>endobj +1299 0 obj<>endobj +1300 0 obj<>endobj +1301 0 obj<>endobj +1302 0 obj<>endobj +1303 0 obj<>endobj +1304 0 obj<>endobj +1305 0 obj<>endobj +1306 0 obj<>endobj +1307 0 obj<>endobj +1308 0 obj<>endobj +1309 0 obj<>endobj +1310 0 obj<>endobj +1311 0 obj<>endobj +1312 0 obj<>endobj +1313 0 obj<>endobj +1314 0 obj<>endobj +1315 0 obj<>endobj +1316 0 obj<>endobj +1317 0 obj<>endobj +1318 0 obj<>endobj +1319 0 obj<>endobj +1320 0 obj<>endobj +1321 0 obj<>endobj +1322 0 obj<>endobj +1323 0 obj<>endobj +1324 0 obj<>endobj +1325 0 obj<>endobj +1326 0 obj<>endobj +1327 0 obj<>endobj +1328 0 obj<>endobj +1329 0 obj<>endobj +1330 0 obj<>endobj +1331 0 obj<>endobj +1332 0 obj<>endobj +1333 0 obj<>endobj +1334 0 obj<>endobj +1335 0 obj<>endobj +1336 0 obj<>endobj +1337 0 obj<>endobj +1338 0 obj<>endobj +1339 0 obj<>endobj +1340 0 obj<>endobj +1341 0 obj<>endobj +1342 0 obj<>endobj +1343 0 obj<>endobj +1344 0 obj<>endobj +1345 0 obj<>endobj +1346 0 obj<>endobj +1347 0 obj<>endobj +1348 0 obj<>endobj +1349 0 obj<>endobj +1350 0 obj<>endobj +1351 0 obj<>endobj +1352 0 obj<>endobj +1353 0 obj<>endobj +1354 0 obj<>endobj +1355 0 obj<>endobj +1356 0 obj<>endobj +1357 0 obj<>endobj +1358 0 obj<>endobj +1359 0 obj<>endobj +1360 0 obj<>endobj +1361 0 obj<>endobj +1362 0 obj<>endobj +1363 0 obj<>endobj +1364 0 obj<>endobj +1365 0 obj<>endobj +1366 0 obj<>endobj +1367 0 obj<>endobj +1368 0 obj<>endobj +1369 0 obj<>endobj +1370 0 obj<>endobj +1371 0 obj<>endobj +1372 0 obj<>endobj +1373 0 obj<>endobj +1374 0 obj<>endobj +1375 0 obj<>endobj +1376 0 obj<>endobj +1377 0 obj<>endobj +1378 0 obj<>endobj +1379 0 obj<>endobj +1380 0 obj<>endobj +1381 0 obj<>endobj +1382 0 obj<>endobj +1383 0 obj<>endobj +1384 0 obj<>endobj +1385 0 obj<>endobj +1386 0 obj<>endobj +1387 0 obj<>endobj +1388 0 obj<>endobj +1389 0 obj<>endobj +1390 0 obj<>endobj +1391 0 obj<>endobj +1392 0 obj<>endobj +1393 0 obj<>endobj +1394 0 obj<>endobj +1395 0 obj<>endobj +1396 0 obj<>endobj +1397 0 obj<>endobj +1398 0 obj<>endobj +1399 0 obj<>endobj +1400 0 obj<>endobj +1401 0 obj<>endobj +1402 0 obj<>endobj +1403 0 obj<>endobj +1404 0 obj<>endobj +1405 0 obj<>endobj +1406 0 obj<>endobj +1407 0 obj<>endobj +1408 0 obj<>endobj +1409 0 obj<>endobj +1410 0 obj<>endobj +1411 0 obj<>endobj +1412 0 obj<>endobj +1413 0 obj<>endobj +1414 0 obj<>endobj +1415 0 obj<>endobj +1416 0 obj<>endobj +1417 0 obj<>endobj +1418 0 obj<>endobj -1398 0 obj<>/XObject<<>>>>>>endobj -1399 0 obj<>stream +1419 0 obj<>/XObject<<>>>>>>endobj +1420 0 obj<>stream x+ä2T0BCs#c3…ä\.§.}7K#…4K=3cS’¢` g`NÖvôurT(ÊÏJM.QpÉO.ÍMÍ+I,ÉÌÏÓ Éâr á ä«endstream endobj -1400 0 obj<>/XObject<<>>>>/Annots 59 0 R>>endobj -1401 0 obj<>stream -xÕ[ÛrG}÷WLåeª==WòiK¶ì¬ª|'·ô’—EYŒIŽ–_þ>@7á7Š-ÉÚ¤*¥Ã3Ý  Ñ3ùï#—¤ø×%u–äU2]>J)~Ñÿ¼ÿ~Iªb„ÿ.“|4¨=X$ãG.“ºêp.WºAiV4i^†˜´.ΚÔ@ L³ÁÈ,L:W¤D1 qD•Ãœå¬õožQÕR#Ê@ZŒFG’g,«A…ÅÊ+èby:ÈÄ(.)£ˆa©â „ÞM©ã \&à -¦‰œÓ`ÌHZ f:­Å`+²§a ^&YZrÃæ´M¥#kB•ŒVeÀªD¸LF#§`¦ã~Æ’JZL9Ø×°ƒeØêÈŠ@Ø&òˆAÈsnÑ•´Ób ’²e‡‹QÊ;]1»šÖ@ t9FÒbš–vÛ°ƒ­sаƒÅêvf©®ÙÓEQ$Ï9—Á£ %ÙDEU°k²‰¨‰W;–äI#„4©Ã‘´,ö²²¬Á`q¦`@ØbÑ3·,ô˜wBÇZ 6«ÈF‘5,ÎÈŠ!xÔy ÑžC(g ÄÍ22´˜T-hKu¨Å`«”v&²ƒåPeXƒ¡Œ£ØYQ&'ËzÇ/De<'Ò+g *£¤WÆtEE;Yƒ1¶dϬÁ¤ ûKd &exß”µ˜ö-ë¬k1ØQwf‹‘àð5Ùb°eIç:²ƒ•SYƒ)¹Pì3cf…$Š}ƒ¸ž«)üGÎ@DuŠ‹‘3P6ÇNJ›0X$`;Ôb1?FˆO‘#Ë!Ípc à9*ã+œz’e¥¬œAbu\q ç´0ŽqBNs‘´lY“åt¨Å`Gtë,§HªSi+9ó - E Ä@¨àŠ¶bM, ßâ< µ,RJ‡5ž™‘uâX -2Q$Ïy”´XEŠ¬ˆèÇfŽBXœØb:,t #+ûÍ©ÕGrÉ«$ç(° %¥È2ŠW‘´˜lD©$²¼¤š«¬]2pˆ#Ô³ô [(B„8Š5‘“9qSï£;ÞDZ¡F ãDNÆáDêy§ã)~ ã<‡ æLä¢zѤҦ9©¬åQ[@ %Ù\.wBvCêóùI¶ ¯˜ÉJ2ˆ=çàª5¶„ž$Òbȃ DÖ`°#ªu"+Ò"c’YeQqQÏ9Ü+r ô$/j°Ö‹,Œ°,Ú !†ÃâZ™±Ó KÉØ:³Å`q),,k0º˜±SQHg7²l -dR&ü·Â3´k9åßJBOäèÔp’ ()Äq’Žª ‚|£žÇ« žqz”2‹¡\ª“ÈEÍ¡á"„ PÎp,”Ð+ÿ­‚xF. JˆÅpü†Iä"ÄbØwôizš’ãK£wDþ[óŒã»ºR’Ö䜑‹®¶è¨‘WÒ”’ j”3î”f kêiá¿UHÏ8ø,z6ô/a2r,d‡CCÇEH -PjŒ\„Á’ʉaýœ¢$Ý+½,3sµá¿IJÉÂÀXÈyô71O'ž¼@¹“&“K„”Êh/×E2¹àæ5~ž>ž4ç‹YÒ^&ÏÚÕv¶Ún~üQ%ªQuä‡e4ìñøøÕÓcz™¾Î¨/Ž“·ëöÙtË¿£‰QŒüï'ít·ÄœÍvÞ®ˆ¥ê'rðsþq¢BWE~ -s8óž~œ^ɬYÒ8ê£ ‹Ÿ*ßj^£¸ai–ARÞ¯ãóÍvÝø­Áµ¤|`Â÷Õá_2²öQΫ.§v¡Ašÿúm¶š­›ýŒ~~•û­Iæ«Í¶Y,Ôípøó¼~`ªW¬#^ÝÄÝ:]m×íÅnŽK9|`2ïoWÍ:@LݤgWÍõv¶¦ß"Ž„Ç›‡C'ðßígz½¸à’ɶ¥_p9"’SÙGž µq~oV<:ÃÌÏ8™m8¡!'Ðp÷¸×“;"ùž¼ˆa¦Â5gгƒTˆ>b’7çÛf¾š¯>ÐPt•Õ0^[t {žÆMY³i–ç ›]Ë`Êý»3ÌŠ#i1¦¢ë¸¯+rÍåüÃníåÇ;‰Rµ•_SÌÉ{ƒ‰E%¼xèn º"¬–õáçó­× î£~o·W3ÚTÞè­øß6ËóÁvàíFYKr9_„§Õ*7óvñû‡×Üšiÿd­ªã³ã ‰Ž†ÊJ*.%™ŽPgdÓ–ï{àdý•wĪÅ|£»‡†v‚ÕÁÝ»jÖ3®•èr2Ró©™/¨¢â]Ž<”Rÿ ÌÐcýµÝq˜ì¬ÍlýI¢'šäié%¸­ÕY¼‘p!³›\ÜÄDpØ*½pnq‘u>G%ŸçÛ+Òúäiøñév«ù—ÞƒÓÅ…"ÿŒ~›7§J|GxCPÏ¡ë.åÚârÝJÁX Ð4ðžƒ2Þ ë'oÆÿd©í-Iàìòìÿ†ðQäÁÏæ«Ñý¹?¿žÈÏ6Õâçìcÿé7ã'ÿŠëA,mgÛ)ŒËR )“w5ÛQê°ÇßÜoÈwÂα«öíxvÕ„M.ë°Ø)Ç@ÜSýir“ã…ШîtÒ®þÆס8k×ÿE Q]ú9¿)é­Žëï#j‡vób½ØÕÔ8ãi{Í¡§;úÁé kŠŸW÷.ÿ!ƒxÐHÜW©Ÿ^¶Ó!å=˜[°·X\óH—p/úV™ê+•pðÞíæÓìZhêh©ùlÝnxÇ:»8Þ¯fìœ8»µ&§ëöóÆ-Ýáä Í‹®:÷áiÉ»?¬ÛÝ5?n\$ùæÌvó ñ2ødö7ï.§…LéšÃ³mt uŠ™µNæ›én³ñ—|¼„@ü[T:ÂÙÒš&T4F‰ÿl¤êÂk’2(ÖJd²w’Cí—÷³e»•œG)C5p¼Zµ»Õtö ïª"äÅëfÝ,gþ¢„wx‹ àÐqüáß\AeüÖÛØ WÝ ØKÙ4è`á[ŸèÆ_WS6 ÎP–Ë,u`~Ø{‹à›¬®o÷ª šäìôõ˜ŒŒäZç>Aï­ù3 ×³®­ë÷ª›¹zÛÛÉë7VMrݳ?!x›î•É²]K¨±n¯šÆ×(zßiWr¾lÅýûc÷û¯ô$uá4ù_¯Ûm;mD ‰ëѯØèt5ֻʟ „\Œw -±°l¦(*¤f/²ÁÐ}Ç.¹’¦=Ê6ºnÓ+t^ãxÓ³TƇò)y?Û´‹vwо@WÕßþ×¾îG+<¤„û÷Ç])›8Ñ5¾Iâô¡$$Nœ¹Ü øÑËÑ|uÙ®—±+7Œê0à¢Ù6ç8v§ÈB -qÜÎ2©¾ -¶ûœ÷»6½–ÝOû›n" -áÅ·©Êq×Ù¯ÊO—×ízÛÈý ­§xgy´ÆG q-žÃãóv'•ÛG¹n6›ÏíúBb*jØ;¹Ÿ{õ2|°ÐÑ®W¤L|3Íjh¦±”,<>|)4°Å‚H J fcnsÆ×Gåý¾̤·îükÙðÊœöEYG±éÕlÉO -zZÚz—õ~&oj7Wó~“Cß -Æ&à¡øûÏ8lâ³îPQgyÊõœ•êºÝÌ¿O§¸•sDÅÿF¥µN×o†¼I2|Š³3$ÚÅÿ×K¯qxi‡f¼2l©ÇÀÍB½åfÒ~ßS™opöÊ|¾Ù;ŽÞ¶áö•B qh㣶–83u@ÂÆ!]£8£ïFhKña©Þm”ÍrZèÈ Íûò꺧^§Æµ7ÓCêñ‹Lëlø4¦¼·¢8(…nÜ~öô ->…—y1Øl®gÓy³ êâív=?ßù›ASé%<²eç:oíÀ“ÕøŸønù~çµÍP‡wƨ§êó/ÍòÚ¿ŸÃ·UÚÜxyrú‚CüMÕyŽ2æþ5>¿Ô®Ç!5{¯w¬Þ43>¸õ€ìºzkL/®kº›¯¾Žß½¤g½ïö4}O”ɸ¯òä¾åϲOS|(Vá¾øÙYøÌ,é}V–£W—×鈾⚓¢Ï'Þ=úšñàìendstream -endobj -1402 0 obj<>/XObject<<>>>>/Annots 102 0 R>>endobj -1403 0 obj<>stream -xÕ\Ùr[G}÷WÜš‡)çA2ïÆe^¦¼Ä‰§¼hl¥<©š¢(ÊbÂE¡¨8þû9ºsIÊ–¼(™¤ÊÖáa÷Ðh4€¾òo÷Ê¢‡ÿËbPu¿˜,îõ{øÄÿxýƒ|Rô›þ\õè°L`^¼¹GpQ´½GpQ šÃ!#¸(ʺîŒÁ†Ýi§n1Óe¤‡ V*¸“­¬ªÃ¾TW–£Ã¦è;ÉX¤m1±„EÚþaE¬=´'fiÄC'ÓÖEßIØŽd¶4ЀÌ\ÙÀA2†<ºnÄ;@b /Š -´Ä2ÛŠb,c°£ÑáˆXSgX«é2µ -BÄ•e#u’±˜Wf –°¨#KL,aˆTaÌ`ƒ­¬±„EÙaGªº/êÔ ÛJ8¢ÁE1? Ž Ä-UÈlS‹5 ¶ýpßVAX0qæ÷AÚ@Ìæ.Ø*ˆ‰+±ÞÐÊIÙ>m9ÀŸ"+¼Ó€Œ#ˆ˜0Aõ‹Â\p7èïAÌÙk±³ƒ”ç5£ž*ØŠû9•ê7º4æ4 -ôq‘ ¦œ† ÌiÌ Žà¢Éæ Ž ĬÄуd ¶¿Å;x,añÈ4Š™ƒmúð+b ƒ…X*Æ`†:c ƒ6©c9+ñ±x®Ú‹*ñÖl¯ lŸ83¶su@Qç° 2„íeêàŠ‹ÈF ’±¬ÌH$õiƒm*Ñ2XÂ`—ATa áౌÁÂ;;,aب¬:2k¬h*Y.8¨Ä -òT‚¢¬ZB¿©"uT`gmZlDÙÖ6‚˜6q¶­'u`=’`˜ð™³A2†<ØÈt•–0ØV‚±„Áâ\+™% ó6M‡5á3ˆTÓZAœ¸Q-ãœ#ˆGj<’1Ø~€X¨'‹,c°UÝËX|eˆ¢±„ÁŽªîXÂð¤^ ?‹±ŒÅÏ$¶K,žÓ#VOzPê6ÖØ€‘ LQJT’1XœúIçÑU',ftYÂbÆ¡ø„e  Ôa ƒŒÄÛ|¬©=™…ûE¨“¸Îû;ÉÃY l°„Á"Á†Áe ˬPÄ–••|"XS§i㌮„:‰“Vr’1®%'–0X SÄ ÛBÙ˜™0Ø¡Db CYì}ÙÇÚŽ­+ É;V¨c8qšßÖÎÄ#›žØÈIƦ T Êd,âJƬ „ !DA”8¨…îALjÎIÆ"®®L°„E žlVgM $@rªšI„@‰ƒßC-çbRÄ%hé$cWƒl°„E\ ²Á‹Óv–0X¸³ªŒ„2?á ¸2™Cr7Иg• ˆ;€¦1±ˆ+³K,Ö©e–°xg{&Æêf“€â ±WCaædI+ =Ƙ¶'&†2 y,c°x5‘úTíU -B¤Ä%œdì"9›DJc-ÂÆÄŒE`‰ŸÄ;*eébfÂrI.,c9ŠÔ>ÖÜ¥µZP}¿Rî’¸r §cŒÅ ¥1Àl`ŒSö‰‹²=¬>±„Ábf˜"Æ6eyfQ6c°Øe,3c1…„ ˜YrëJómp²Ó ˆ%"BH\Ž ¶VàÝ:‰º‹£yÎa&8‚°ŸæÖA2‹j[ʧe ŸóÄŒÁj Dc úˆ*°®Ï̬&ŠÄ«å0±„mݲ=Åi—é“dÝ$/±ŒÁ"½f3FÛ“xcƒ…÷0kŽ“ÚSóJA8xâ,ã’1̨°6-$ñSµRÓ&Îõ u ÄH?ý øÀÌééAq)z‚d,1€ÛKØ¢e‘1– ÖÈH—0XšIYÂ`µ[Ïe :—ô\ ³ÒCòÞ¡™{|ˆ˜b\Ù«°‹‚d,ÊʹM,a°hg6Ì« KXL!gJ°ŒÅÒ!–0XÄ–™±x¿T81ÖL2Çh©(6µ - ’1X´vðPÊXL! 9b ƒEb ub,a°šlkNŒ-á›Jö‡ÌzˆD<”ÀALŠØ'öŒÁ"æa]ƒ% që,a°ýª;–0ÖFs…Ë,ŽZÑgf ÂÊK,ôc©ƒ…w±FŒÅ'¤‚Œ™ÍÄX#0²€•æ>fâÄ¡›Ô×Å5Ž Ú9r²Æ8‚àäÔ . _jÓ ‹ñ5b¸8ŒÁb‹Á“‚%,K£Û5XÂ`µ÷cmcT²Sã½T1"q)&8ÉÓ–j£` ƒÕì$&f,KÝO,a°Ë𖘙0VªÃ[œe V›öÁš²ºÃ³² -BÙÄ¡;Gé$c°p28„e E4vk°„Á¶êÁ‹.¢{°„¡*?WR­¡uË4µÒŸEÏ@)ÏrFÓ¬4ÊÆ˘@©éc´}™ÆXFåAQ\vfpÁ!«IÂÊÚZ4N·lŸzyú³ŒÒ ›ÝwΣpÖâ:M&ÐG‡)pæ\@ph‘·Äeóø8‚àÐ#ÀíYžSŇOzb¢?»ø‰Q ”Åw*Ý Ø|&~p*~šÑÄNÅOœÉëA_ŽçTüÆzjjoýÙÅOŒö! ñ5qpJ§«¬§¥ÓéÏ>]bÐI@‘›]0ú…(Ã2EZq¨x2÷èøÞƒ§¨zÅñþ†Õ4Åñ©ÞýâãÉýãñÉ|Z¬ÎŠÇ«åfºÜ\~wü F!U+eÔAvPÉ°ûÏÇ›éZ¾#; -óa’ÓûE}(aˆÁŸ.í;H]õ(}8[ž­Ö‹ñf¶ZÊ—‘ŒyÀéx3>_NíáØÑöp½aÙBQÏAÄ<,õQ2s~ø£«Ùüt¶|—¤ÊŸþÙÿU­Ht€žà– -ÕŽ -×SÆT:£n’Ñ6çjœ+å¨JŸ±±pñ1ÂÒ¨ÙïTߤœú-íÌxàZg³wWë¤ ®0«´vw*r÷aU_WgXvÝ«ÙY›Ÿ.“ܸˆêUÙ›/æã6Ì™›;kT\Œ//֧߯º‘óµƒ~Z·•îÄÍQY§¦ËÉúvԩ΂E®2“§IÓ㯳ÈÕ@Õ– -"wvV»£úÓMöJ¼¹7V±\-&«ùÕb)sa#7möWñMùPRWül½Zè‡8Ê?êÙsõw ï7ßÆ­³Iû¡êŽm–ƒÊ–ñôD¤–\«7L öŸÏUÄ!ßó«w35Î÷ì]g»;”ÔCk¼»¼h›í,ï_6pšnNä;*üt9~g3tÿ¼;cäI¶|"…ņÓzGÙ³gæqxåÂëøÃ…é7rÔ8‡ëDÙòr3žÏã(E7°I§ÃGDºCªŠÐrW¨J/7ëÕéÕ$r€¯Ô¾‘fÕHµh‡¡Áu O€ÆK ó¸¨h†ù,s>^ëšSè(.§–›òtd½2GŸùô÷é\>Åé‘ôçûH¬ôSÌœd`¿O×z!ã¬s0EìÖ M8Ë,x‰‹åT¢Ð Ž —Ãáéjóîçï\¤/:ÀëžÌsP[’àîqqí`rã¾/NT>œIe“%«®hÿ¶~Fo+ñò¸Q3¡éßI‡2^*ð“éílYý*_D3Á¶£õl1^Û’ bÊf~¢vÉVñY%™^¯æsKƒQÐâé‹]½®ä9žzz\ÉÞʹ1la…ΰõt=ýíjv9Û¨¡¤©F9®¼žŽ=iÆB÷Râñ¶Ò§¦5ÝÊ’NeH»­Ñ£ñä×wëÕ•í¤ö‹œðS"Ý’OàÖ´³(©2ŠEÙM†Ã÷eûáí¸õœ#ü½”HEº~‡wÉ|ÜR›}½®Å!*Ü1q²×¶×íÚúæÅxr>[ªwJíÅâñúêRŠç(N&X{«Qq•ÎœB+¢Z”NÿZÍ–¹*ä@ñx>Ëu.R»y›•hƒ(ò¾õ Ë£öê¥@p#{é—jAúšOÇSÒÕl\9½/¯Æñ%ˆg/ÌœVGwÊÅÕn²ð– ˜Žž›ë÷Ño&åqÇÁ +¹£ùß^-`þƒ§ó“u‘ÛE÷þ;Ò÷mêP|T«Oµõ*ôa··Én­|×îsEód±Ž¼#é'áíµ]ÿë.ô>“ÔVqã?î ‹äÚè÷äs©8Z¯P.¬¬nh“îÛû߯×+K~Ð ó6Õ>¡¾ÅgYQ9÷;[¼¿ß|¸ÜLµ6îä2G«ùl2›Zö†²Á‹}ºÂ0g³yú2]Îc¾…f×ÌY[Á†÷TxeÛÚ¾=[LÇb{s`϶ì¯g{„;ŸÎ/Ô±Ñðm?/5D#wõ”ø™‡ÃÆ[*鍊êH¼M1ºut¾FÁ[}\§âéc7AÛi2ÐY²ç-$ì÷s²™Ò|¼ŠæC²zºzŸwEt–Fù*ßûLòÞ]›†‡x¹hw—f…oúwkÝÀíúH ³{¸¾=Ÿª\rççÛLÏ}¼ çà¾Õ=zò8EÜÐt9žNOUÜ¥zéSÙ¿è{Iq¹bï8ÄnûÄ_éû²Exå¾Ð‰¶Rd-}Ñw<„ÎØØSîÛï)?®ÜlEÊÐùù{Žp,„åè¸:Ì­Ôϵdöü2qw[í–û÷”x‡…‚ârj'0.YÜø»ùØŽ•÷¯Ï£¬9N¸ö.«“ìkÈ™;¾–ÛÆœ†|¦¡ÖÓ ”­cë5KüöËì}›ñrq¢wÜ»y€T³êHzFeêW®{\7®M劼ä¶eÝ óxÏþÛñ“SëRŽ¾9O mIïÎàânÛåÞÏ6ç˜ð›ž?òðÈ–¨GÝy³ -å¶òψ}òµåuW4©ÖϹm8?ç~7È[>y“B´W:tÑ=E±˜.N¬qW«reqÝr­ÏÛí;yÙš(¿ D¯H9‹UÏÕ÷®öm ½²YÛ+!H„›^¾+¼@NÛn=ëðúF¯Ÿ¯¾öõžLOfæµ’”·ßhÁ¬f\Œ¢÷ƒ_#ÜÎøþ#¼žžþh-§?Å;iïãÕâÁM<\â£Ç„Ø.x_4È_Ëe?sž´®C\~ãxÔ×ïP…o/+vâ6¢šÿ°º²–gª¦›Éƒ_×'í!òH½§ÀÛó^ƒ~¦”Ÿ=¬Õvƃ§x]ß5Äû5þi¼q¨/:¾yøâÑCé9ÿ2lPnL®¸4ò¬Z ß?Àíñ6Çl&kúýñ½ßûû 5endstream -endobj -1404 0 obj<>/XObject<<>>>>/Annots 144 0 R>>endobj -1405 0 obj<>stream -xÍ[ËvÇÝë+fé,aÞ3‹œ=¢X9íXtœ-‚",ÃàaÙï[ÕÝUw@Ð’%‘rrŽÅ;wúQÕÕUÕÕƒÿ?ʳ)þŸgm‘•M6_=šN¦xbÿùá_ò$kªÿ]ee?É#¸ÎÞ<"¸Êêéˆ#¸ÊºzRP;‚«¬o'qWY>mlt1Ør:jÊl#s3׶„WY‘Û–:PY£CˆRLê¬Q - B”Jz5Ž Lw*rÉlUM*f ƒíò[ë8E1i0¡¶AÈ„¢aÞÉ F2–AôàlsÚc¬$§—3rm%½GP— f`–,A X4“–HÆ`¡Kfu:uß`¬8l:‰ëºI™9XD(˜BF'Ë ¦çl²+Õ uik>däºé¤Ïœ“}P£/Y5ü¤Á¸œÓ}Ú©á;G0îçt¤vÁîd,*ïE~›L‡1ØJTN,a°m+šô¶„e—Ô0gƒ­[Yk4[•n[µ×läºVækAL{¨#’1X5voÊ,¦‚éZÇŒEÔNá,aUöŸ³ŒÁ­ƒµ ¢Âÿ¸Ý*pQ#–Ø8‚"j)¢Él¥Óu–°SÂGQ[Â"Œ¸3gÃtó–l^O7r­ØwmAx>ÙØÎQÔP¬!c°e)Fæ,a°puЭ³„Áö…¬‹³„!èTWÍXÆ`ቹgÙÂU/ÎBFÅ?èžqˆ-Ü£™sÑþ­ RûlÄY¦v -¤O¥J oÑcT -„R`ôΩÇH\ØéN2–ÉÔØÄÛ"° ÊXlD|¨³ŒÁV9V›XÂ`a±j_UQ©fÕ§`ö•¸®‡Õ:Úé΃$êV -¼]ä™#1Ë\–Ë2‹= 9K,”=jKX(vKm C ð Ü3c°u- -´q5ž—½è<ÆóDTç‰SÙœ#ˆ %b™“¡S8IÎB/ -¼ÓÈ…^Œ#(’ðQ:msµÛЩï4r¡ãJ§¹ÌÔÈÐiÝ©…„Nx§‘ ½G69ÔW©æSVâz¢ù ª5%.ô¢/ -GPt*©…7d,rˆ'–°LH×Ã:f ¶—ŽÚ†ä’Û9ËX̧…ÅKÞOElÐnYq)píFö‡1#(¢¢#ƒÅRŽX˜.ü0w&”‡SCXn>¡È…GCb [È*½HCÆ2!9p8†Dw†TàCF.Gp„$F2F·ˆM±Úm cyxÖmâ$z×™“ŒÑ-ì†ÙÐmòpm¡À»\Ž4»Ã•7U „¥[ ØÎêŽ(ʧ–º#§‘Ý9‚è´˜BAN2‹ø6e–0ØNÖŒÚ3©F=3–!.ÓÛ2‹ü‡gŬF$jKl/>‚XÂØMè¹ –±Dn /Þ–ñ -¾“uU‹’ƒ­Åa9–§¦³G¡À—'rØ\9|€¼(A¨öË$c°h‹°¦Œeyä$I,a¨iÚŠš¬-c°8fð¸ŒÁÂÀGm ƒEtÁâyÏ„ÅubRÆ2‹É1ÛêÒz[ÂX$DX¨š¢Š$ žs!ªú-'‹š$êK¬›‰%,Š7ë,c°8‡BM6aÆ¢&©sKŠ€ûX[Æ¢¦rÔ–1XØ/”èm¥(’cÍô¸ ZSàJŒLcG -–ÝìÁ `hߊ‚‹jD_†d JJï*K,ì‹ã=‹Y@ýΆ‚ÕÓ9Ë,v.,­Œ U’WRä‚iGÒúSn$c°È1¤±aÈ"‡vàWtH>däÂÆ´!ŒCÆ–r¨ƒî%Œ¶p™XTg ‹þ$N9«^=Gª$î õ˜˜™.At‹x ;2’±hAÝ¢±Ú-NˆµýÛ:ŒÔv‹Ì(‚è4wNÕª>'jUÿ6¥F&LÏ(‚è’™sÁ¡¬”çœ&9ÞÎ!´‰eï½N² U]zýÛ&™|ÚaŒ"(‘øçœCpšp8ç¶POíb’8sâÖD¦%S!1“9‡àJ0çÞÚ#NGÀ3›×¿MðÈI"˜wNOíTRç&ÁSÁc» ©qeå¤~ìœC\+ï"Ž*Ì!‡” ˆÈ=={ôø’Živv‰Ô‡{ܵµUvv¡÷Žx<ÿælv~½È†ËìÙ°Þ-Ö»íßÎ~F+‘\ZÄf'…4ûæÙÕìf·ØÈ;’N ?trñMÖNäšøf¶:ŸéKØ&Uzi¦}£S}|Q_ÂÚ§Wž<#ÍPÞlÓ£‹a5[®µ3¼8-cËÕbu&òøJœ,**}W`ÖRMÄÄ4„™Iæöl³˜íÚ’†&>Ý]é#9ïõE|6V7û(-.‹¾Äl>öëöQMê:Š=y¸ÿÕ¥ ~¯1–5WiY}ßÛíK¬“E®Žu zXl6ÃFWÅÕ®ˆŠx8F#%yò)ËÓ®ÝÙb«ZGøhl™~öj¸–íódÛÅæ—`ðâMáwûQ…¨7ñªŠÑL -ÔUXAbFkw’۫ȼ\¿ÕõCtLfü~¹»RAPIœvqM·«óùõ»X$l¦¤‡’ŠÇ1 uÓ–ì—õtØ-’%Fù¸£¿ÀßAr‹ ÉÞ:Å(çg;ÅÓ3µ\H¸ãÔäáæÛÅÅÿi¹.Þ©™À'¥‡ôžR,mîGéu-³!÷\ ™t“à¬àr“Mÿ{X®ÝÔ)p¬¥£‘°§gú ÛòÏ9P¸?ºQ<@!%7O‚ öŠ¢Esïþ0hç$Ç=65©¥8ÜÇ';[_èd‘"± \ ïu+!`¹7Dñ@%ãÀÔÞÅ™¾y V72çý>`$ty(ôOW¿É«˜±[øRg‹zÔ´K¡xwB –hœ/v1l#´µ¶wW35¤QôØ.æûÍr§ƒ!ͪ۔ü]†GÍƶR)ÿÇH3šü~6MrvASäqÍ»ËyùòeP¢‡éâ»›ÝrXÏ®e†X~Ü×DÏ0Ö—Ë·ûÍLxaå¡." ø•þ­;™2–n½Û ûyšnãÛWšâ‡†­{³ü`Hèê¥ð)÷[Y–ß‘¸ûž}ýFzÅéÈ’c8xÛÝø@$íØl½Ø½6ïÂVFkîÀ\G÷&xú¥5Û2ivùR¥¦ŽCCP{ý'oë‹tZHù͇tþ|êÕ›±$·õél¥y6RÎižr²Ûázo¦Œò‡¥àáXƒï<ƒS= ”ekx³ß„>1ºy²×Ë_¿Z®÷¿Šº¥œaN–p­g`9 -ÝK†5’ã¦ãP%ñ"ÕZúñb7|5lÃÁÖðWYá(CƒòFö =«…"t°YÆ_&âJEç¡Ù½(÷ãL»)e'(Oqö€õ˜„Pz0}Y›|ÃÇtoÅÉ£r úê˜ê×Û-<ÙüÊæ/Åæû¾ sœ»|4Öü­æ¨;P;2w€bQÚY,à -ÜRÚývö2mÅ«Ç‚î5R¢šÅxÁy NcÀHQE½ò 8Š&œh ¸£ñŽÂ!%,+UuÎb½×Ãu\Êìt±{úò; {|vÍŽêñÙlºó}÷pÖÐè¡æ5~ÏÙqQ™œÆD|õúÛïÞœ©ˆ#¯}¹ T,ü ÞÕÄÔæù±}6­:Èà+FE'C=?Õ%áãÑ«axJEryòpöu‡xQ\):Pàä©ÿô2ˆƒ*µo.’÷[ý×(Jƒ_°­…u¡zÀ·Ã{YÃÑð|ƒnô\#/q¹_ëa+MF̱“òUìš ‰»AšŽÒ±‹ÅÍõΆ\(Øî¤j®sÃm‰¹ëc¡IoãëÈ!»*ÕfîeŸD…É7˜%îðx}wXŸhÂ9ª’ò:+õVýûOĉ;Ïƃž4UÓ¸iåBÍíšÄGj:QU«R¼˜¦2¼É-§n«Õ\Æ -Àvdß.«ëÅ6X>ªµÈ²Lç¬püÅ=R™ßñ¢&KùÈç@•·ãØ[0Ži>ÚŸÐð‘2Ö‘4 ”-Fõ¯Ù7ëÝrîgzÜú&¬ü ý¥.(Z-"á*áî@31g&Ÿúzö.ì.Á_Ë[‡¿Ü)ñÅ‚{M½±A-ÀdGTóyê¿Óæ©’ŠOní¿;üvzUWâ“ÒCÕÝ°¸ŠÓzMØ øÎ ùý©ÅH/o28¾~ÙŠ‹]Í!m;¬@îù5œß°V’ÔI‡_õß6wOõ8¹¾Ç&øÐ%ª•U¼ÞñãéËÿÉ£Qxþ~±Y-qSrC÷tO—áì,ßLX¶C ¾lªÒ!?ãtŸëCÑÉà³ »w}2ŸG?‰/>ÝÕbPyÓ"NêØ^-ãù]~ äO9÷¶‡¥!It-/ƒš¢sMnÿ¿ËÅûçñ1–DŽÙ9*»oÓ˨â›$]ãsÍX½1]G3óœ;;zÝqÝwûŽåìzx«£Aßeõñµö µiºŠî6éêX¢t$›ù*Õ¤…‹ê–·ó]Ê’ûD(òc«ôÈ«ã>j{5‹…,|œxoˆ¨®"ÇØHaÑÉ&…Ýe\G•1¼_/6Û«¥^ãÄ^Õñ:ùÁRO¾Y‹4Ÿ&^¸Jä¨z±Ü,æ»a£™/~«bŸIn$›_6RSi[Š‰àWæ£%…«k…Mç³ìE:G#³ÊˆûÖ´ßÍ›î~Ÿ%að›Î.áÿp̼%ÏóÑBpV|[(ü–â“ó§Ë›dA>=6Çx&Mæøz¸X^þ–ü3–&¥Ùñýö‰ßýOFŸ.à±–m(såý8z…d¦H"ËÍÎfæ7XX^;Ðص ºq,Äà˜‰£ãFÏT¸§÷;…ã.vn_6ÉÄ4]‘®f[ý,@.Útót3Ûà²s [Ñ÷³´•¢M!|ÏòUõrÔÈf»ÝfyŽÏ»4ãdg5»¹I¶ -¥7qIÙÂG=kµ°öø>A_©áW UŽ)GðÚ›'¯Ÿ>É¾ß ?Ãçfχù~…“ëpRÔ=Â;íåõår)SþçÙ£ÿ<úÙjz•endstream -endobj -1406 0 obj<>/XObject<<>>>>/Annots 190 0 R>>endobj -1407 0 obj<>stream -xÍ[ßsÇ ~÷_q}pg*úö~ßSG±ãDÚ£Zò¸3>P$-1!y -EÊÍßÀ.wGÅÑ(”ÓÎdôÝÇÝ°‹;ÿòÂ%)þï’:Kò*™­_¤“Oô?~ 'IU´øï:ÉÛ‰ó`•\¼0p”å¤2œëĹrÒÒb°EÞj1Ø*v¬Áë$ÃÌV$‹Áæyo]‹ÁÖêFêX ]³¾T“%ŠIf¤Ê+š*'5a -ž—Íkà:iÓIíHœP5m'¹!-‹ [ÃÊ’YÛ…%Ä%=ç\JÓ*I²V€}••i!I¡Ó2ˆÓz®)h×”3¶”=EI‹uK#+[êçÍRÞ4eÉË&(€äa {\ä „ÕK„­!Y=‡yâ@‹Á–{jXƒáB)/²ƒÍšÞX‹ÁV%¶ÁŒ5lSõ¤²î—¦0~k1Xv=Ã’s–US€niàœËà†,h`Y±‹aƒ!.h ¬$•ä=ËÉÍ(T¡%ƒ¸gž“MRÎ@ìY=)Í8±^Þ :¶t5; Ç›€¨¡ç(ó@F, ›†=ÎQÉ ôœC€@œH’i -„/EÛB 4¢fÂ6’ƒ­ŒÙ’§­kŽ>™‡AœÖsÎ54PI‹1m™Ó¢‘5˜m¡‹a Ÿ¶cɧ[PŠcEàŠ|#ØAØs.£@*”´˜¬Ä"6bR‡æ7c Ë»`XƒIÚ¸ÈZ Žd¥uãt܉ýDu<ç2òñBI‹!Ž4,YƒÁ6iŸ5˜Ô©àÛf¬Á‘ûë̃-kR'²ƒ­)ãÖ`Ê)¼.²bŠœ& ¦`Má9ç*II‹¡’QeYƒÁV Òœk0™‚ÎàÈr˜(=òHõƒãC"þ!qbR¿%-‹HÁ’:T¬àœ HÑ -ž£S¦WÒbL wÁ¢‘5,R¿Ë‹æ-E¸7½]4p’L"i1éRCà ¶¡¢Î°S`ÐQY©¡ƒ3ˆÄ Šä9—È°¹’cÑbÀ ¶¦£?Ž•EkJaQqQÏùE”´˜ìPaûòÈLv 3 ²ìd9ÜIL-ÊN8ZÒò/™¤Ü#?RåĹC@”Ös® wŠ¤¨ ƒÇífzNJÀ\I‹¡bDÖ`JŽ6TYYÔIa/Ò2ˆ‹zN9WÒb,ZÔÛ°“Häö†5˜ØÁoÙˆÁ¢hƒÀº®œJ‰-3ˆ{NŽÂ\I‹1mîH¤È ¶¦úÜ°ƒEˆ`ãâXƒÉ”š#k1Ø¢"oѱ¬NÖJùÎêPuç—ó$’C¤¬ÄYbXƒIÙ»cXƒEYgX©–Ò_DbEòœAI‹U¤ÈŠHa,\ ÅQD«ÐÄä"c,ÎîÖ°"RUÅÐÈD‘<çRòÃHZŒiQYBSj1Xl£eeQšë2qQÏ‘/U8té—¬‹Á˜–+îÈÊ´ØÍfƒ8­ç¼ìJZLºP6‹CÙ|.Ç3_kg hV̽<ÇÅuä D­“ñtœX«ìHZ YÒèP‹)$è ‹¬Å`‘j{¬Á`¡gmÇ ¶¡ë™Ù`Øe¾•Êb°eÛ›™3~†+å_NñÈ„ÂL”`#Çã&?á -Ðq“[G$e va ƒ8ÐsÂÊŸŠÄË#¬CZ ¹Õ–bMï+ü´§jâHÖÚ#"-ËN‡Š&ÈùÚ- A"[,â¹&#q”34!ï¤Å`á©¥aE“ÜÜ8ƒ¨‰çÈQ1­’cZ¨ÇLŽ[t¬Å`‹”´QVDÂGÝn$'pHæc‘”´˜D¢«Jj1E†ƒÀ:Öb©ÏŠH¢É†²HÃiJDòœCèæh‚ÒbˆÄ?à ÛhÇò¢èŒ©ñߺ1ž¡¬™&Jˆ[JY‘‹P¬^DŽkLaÎëbžÑ•2‹e”I#!8Ôʹá"‡œW.B‰Â¾‰ ‰:L+;þ[…ôŒä¥ $A -8…rpˆM9ü7MÈáæªÑÐÓ¢ŸEz7<Ê¡+Õ.B,†Ì~VÇÒ£XUâ¿UzÏH9«¤êü·òŒ+l´Rß]¾xõš\~†Ê¨J¡s]$—sîFãñìååôjµHºÏÉën³[lvw½ü £1ŽFøa' {ùúfz»[lé7t b>L2‰Oèî¬á ¦û¼¼Þo—›kb#Ñ‚ô¿>?}GϲzR·µö¹ãY1C|6_Þí¶Ë«ýn1§ßõΧ¼"LR„5g;]­~%w Lg_O7Ók™×…2kýªÓý³énÙmhÊ‹º²Z“ßú_]ÓÏ_½EöKåðæ£S6IÄ(Y滘®¯¦4×…ª O§Vgz•ûu“` \ò±]_—å·ä|:'šž´mO¹Œw\•{3Ø+ܻ¶œŽ\=¿RuC¦?q8e ™Ý¦¼¯I0>|¹ Þ¼9ºI1)jzÑCÞ¿dÏÁ†çiãÝ­¯&3„­‰6UÞ<Û6Ö­ø¥F0µþkh̉ø·bXvÔÄðÝÝÎÇ/¢í¯;1ÒoØàwËÙ¶»ë>sD"•U`†^›jì½]®$*r{4åůw»Åš#'çe˜g·]ÈoqÈéä°¨)òÊûSC Wa€&jhg81É„Û¨»úNs¶AªÚÏ(‹p-£ÿ?~ý?~„ht‚b¿çû¤†(Bב`ì÷ÝnÁJdß LÒ½q·æã÷÷¸µ„·qësJÁ¯é€Þ³¿½í¶âÅ°GíO‰‡D:þó&8¢KÑo²Ž˜q·íæâ‰48„Ðñ…ýê -¢ÍI]›@ÂaÙ¤q¦ÅO¼g~u…#ÿÀ+€;M/ŠH‡q½Þ.pZHõƒ3'îÿ¹%ÿûËiwpÙQ÷;²ð¦÷ú Œ:²o‹M ‹]Ð_h‘”¼Ù.ï[Nx Q硶 -ê­:äçïÿ‡2áБÂ1fAë8œ¼¤~꣦ ËŸ¸Ö üPEOå˜ð"&–|â5€l«éöZ(Ô¨jÍ~}å‹e{˜u\ \h]¨ˆÙ%‚ú(\ñéÈ«¾¦ à¢9H&xY5Ú÷Óù<ìû‰Ô<ï_h4JŠžÁ&¶Z Ý/ÙbÈÁNë^Þ4AïÙ§åfÞ}aWBùÍóþ’ŠË¸Zìôü¯J}öDÇðVAKyàåÈ$±Ìøj%O±î}Àþö猜±($›£îöÐ,ME†ÃÅW­þQ2(„/ý¡·N‘älÍ®*[„&©Vs—]·º[ðÙ‰ìP¹oY:4|5;áb͆*ü@šþt3e¡QÇ4µdýp¿×<¤ŠÿŒçÌs7š÷ØØ+ç?§P8Km{ðò±JÚô®£’Íù1º@!oŸOg?ã-ÛŽÃÁù:”Ä;æ‘’ã4ý(G½[lq\‘‚ø:BoÇÞµÞüA;¼…à8ýT· ô9ô6jnÉëÕ ÖÍ Ðé­Lt£k`/Šf¦_0½Þtwix‹‡TtÄï±7Ò,(ñÞr¨Å¸Ò;CשWró-ëÛjãÀ[ø¡üãÂîÍâj}íÏx|åË_–ø$‘jw»íÐ5\K:@z¦‹Rí œ\øâf¨Ö8+Ìì^#–¼×a˜w¤%.øÁ“3z€^¶–7Óû§4Xqz>£¿¶Ü@ïʶsœ0ªÓ÷·C Ù³)?§oÿ´]z¨'É?¦¨ä ;žH6sâtÄc?Ø`P¶£?*ÏþÑ]±ªx±hÝìþæÅϲйیv½Ûïn¥µŒ]¾ðØôñÄß·Üë8q8emù‚W@OPý©éF.)¸uÆ¢Ý(ŒÖ÷ó–¢(ñiK d¿æÆ%j¤é‡©\8ð9ˆFä9”³íò–Ï;¼¬Sù tn­£¾Ñ7OÜ™ß=¼åÎ ãîE›‘n§óûéfæßOàY:­ç¦U…tU¤Ï™u¢²A›‘C¶#U>,¦+3»Os{Â`›´¬ŽK<ß_¢LïnÜ8O¾Ú —\k:‰7ËÏKÙ¶^àŸÝµïcÓ¢O^-v_‹ ™™›ø~º½ö¢ªBvò×^›Æ|f¦žyÕäãû³Óœ¨ûãEmçt¼ekœYé -wl–o™‘KY¦´9µo½ðê¼W#áSDv -­ôN¯(õÌäjHUá#—<²gˆF'xAiK -xD_‹Q‘÷çÑÃkÐë«â‚Ú—ÿ`5ÇSwàë$oMr¾íî—s¹íÙ?GÞ‰Ñô^±ÑU—”—á—Ôƒ/37×wþ]F6I|iÉ?zÐ='£.>z@ýÝú±“ÃÁ¤=Æ6ëS·ýYê/„x•1Zù¨rƒ¬¤Üx·úï ÑT=?,ÖxÅ ÉS{ˆpJœû-38Câ!ùWa¶¾/ÿ£š‡íTÄwØýdÒ…m½<¬á)ÞÞ‹†ðJ½U½Yn³]· Ÿ/´iøFà=‹åÌ$õ}Çõ°”OzÚúÞp¯Ì¦-_°ÞO׬ú(©ö€½¨¼}ömÀÅ—ånvÃÑu.|ãûI¢>jpЋ>:îÝøu¾Â˜¾Œ!Mw"9ð-.ƒê»ïÐXù6>:j88ãøJ„4(=/Û¯?tÍûaÛÉE±WMœ½!CЫvퟮV]ülížcz¥nuë›×ôÑñpÇ·£‹»ýJŽ““×ÓÙMx¥¯˜Âîé"ÏøGЇ>éíë#{¨U}`ðPËïÐ>zúÌÇCÐZ CÝƨÀútÑZy‘0è¢QËaÜEû°øe¾ßÐáß ~£öAp_‘þÕ[|ÏÌ_¨ÑG® þÍ2ÿ+|tqúî»S*ö~±“¼éf{^›Ê9½¡¤«Ó–>sZÞSøþòÅ¿^üsI%æendstream -endobj -1408 0 obj<>/XObject<<>>>>/Annots 234 0 R>>endobj -1409 0 obj<>stream -xÕ[[w¹ ~÷¯˜·n¬ˆsŸ§ž\êlN×ñ6vš¾Ž¥q¢¤quqvûëû AŒ¤Íå$‘ÒÝsló I$@œüçÌ%cüï’*M²2™,ÎÆ£1žèWÏéIRæ ~.’¬9æÉõ™‹¤(F¥á \$M6J gà"qÙx@Z ¶r£Ü4µx‘¤®´µlVYƒÁå¨2=[ ¶®F…e †\1Êb°E3è¹ÈÉ„Y1ªaÂ:'™ „²)‹ÁÙ(3M-&C¥dm ]1hJ17µÔ@4tŽ4å7yR¹á¸‚¡!ƒØÐsÎGMR*I²u†Ÿ~¡à>iÝŽWFä „0ãVŠ¤ÅdÑ°ƒ-Ó!k0؆ClËö)ʆ'… "@Õ ‰áùM"-F·ŽÌeXƒI`Z ‘•A±ðtR -qPϹq†I‰¤Å莗YÖ`tŒþM[ƒÁÖäP‘‘ò,NwÁ Šä¹†ÖPä D§9O›6”NÙ±ý*ÄN=çõRÒbÒ3£ÕYƒÁbJ`#eÙÍ -Wñd¿@ƒˆ†ãšLÀoi1 êȸ‘5,G à ¶®i­Ä¶SèXJéaˆAÈs² æJZL6¢m/²”d˜*Zbœ3 - ^ ÄŒQ -9Ñ'DE’ʽPC‹Á¦F4¬Á`±SØŽYͬ¦í—‰ê—WMàò<—DÒbtËÛ‘a ‹EU›¶2(ÒY؃8¨çš†UÎ@’vþHòž—Afš0ÞäP§¢!–&ßä)'ÍrJcCC±¡çâÔPRFÌRžL‚Alè9—’ª™’¢¿“ƒ„X™KC¹E湚’<Üi„P†7‰´,œ&7M-ÆbG¾ŠÉŒƒ² °jZž1ˆšxŽŒ^$‘d¤¤ÖlÚ0pÎQ¬ˆ$ùAŠ¦~ €Ú±Ž~ä Ä\‘,‘3VmT‘´, [–¥Á¸¤¾ Ï Jã9^9q°Ó€ÊˆñÄNJZLÒd$²¼<ÒÔ¤ÆH^-“IiˆÜDÏ+)ƒØÐs®Â" ‰3Òp̤t:¦“©)ƒØ©ç EŽ0J/g :Eú“’;uÞvh§cˆœÒi ëQ/ÔP:åtËK*¹WìÔsm•‘3:¥ÅIé´4éšc;õë9µSm(æ&mr b§žC`††ÊHRÔŽ¤tš™ôÅ1ˆzNDSÎ@tŠ´:ƒ÷P/ÔP:åPlÊ vê9éE9©Sª/H€ŠŽÍfïÇ›½@.–8èI/‡bI€è;.ÔW’|˜tÞ…ùoNÜžaU&" Õ Ô*âP¢”àP¦±™àšÜvÉ–,eçg/æ¿IÀˆÐË•z(ÁaÿA]#pÜ!TP⿵CÏHJˆQd¡Ã3ºàÁ"$ŽSŽX.;6Çyþ›ZEDÒSÐRÊ@êâCä"‡,‰ý`ùify|¿!óß:˜g -<™¼ÆÒGˆ‘3 ¤’ -Ä=¹9{tÑ þ$7wœŽQæ©òäfÊ><žütÓÞλ¤¿KžöËM·Ü¬ÿzóZ!P8juNé#š§Ô짧ïÚûM·¢w·áŠ¨â1ÜqDÏ°àÓ×ËÙݬ›ò›(¤Õ•ó—þm¿äA0‘MúÇ·ÝæC×-éuØ›‚þf¶œöøýÞTR¹’|yÃã!kHëí’GÃlæÚíë—/þÍ"`—*‚hÛõlù–ž"E¬]hŽ‘n1=t‘õÓµ€¢(’cdh -û³¶Tw}ÞtëïRéãwx(Úâ(=®½ôWÛ ‹H˜{ ŒŽú_SÑøP*'Y­r%«–†yùe¶˜mÚÍÌÏY¬ÏëvTy†åÇZTˆÚC%ª¡XÚ“9f½çõõ#ê`I*©ƒDèã.W°’Æå^,îWýƒøÎ_® “x»‚ ùÕ /ryXž36Ê¿ Ü[kÝ.n[2+Òö2óOšÿÛ>DФQëQä±ÓŠƒØpZ¯ºÕìû@íH­4ó:ôwôˆÔráÑÀ8O”ÇÓlh'¯ç9ÒãwÅ(êöÄNY1*4Ê­·÷÷ýŠÃ‡ 4:“1ÈèLb?ȃ!†Â|G¤zæÙ@O _~]õØ<…HeTÍU·îç[Š;LÁ>°¯Ðï(óGºFÂE‚œSâ568?æ̵“U¿–½®;Üz{»ìdÛ¥ô3;Å~ Ú¹|0Y¸÷`åìN÷sχ4»‡w¸iß±b¸BŠ.§êâd•éæ+ê’-Q Ï«°ŸüçB]úÕ{z{ÐÉßè Î?~?ýȼ}!…‹žæ>³3Ínuá^wÝð3?·÷Ô²Í8š¢|§Özóâå5½«Æ¤dX&‰UŠOæÓ¥/ÿk^Çe«NµÙaØÝI >_ó? b¢Õ¾•®^ýãù««×¿’T¸ÚÔdók”<Ü ¬zŠ<~gÖw2‰#éþìêòñ‹—$ÎÀê;‡…ÿ&OQ§’ÉÇyo8ùõ0º]ô«IÈs‘¿«ÿêf3XÔ›žzÅFw¥ÛŽáH«þ°y'Ï°…«Û/Úu8g¸Qåsôo¢êG;Á—Ø÷);+¡â²}ÿv8 á´_´âvè­ç˜ÊüÕ¤*:ÑŽÒÈEÉ8(…”ñe¿áÙÄÿö¶— ^Œsˆ˜ÞN'˜Hê—ƒÍ8$¤ítŠ ~-›˜q«_­Ë':ÀÕˆŸ_Ü :V鎪—Ûùfv?gusTÂLÚŒµy×NTþ2„?1üw¡½Nö‘׬Ý'ÙÍâzÓNÞSE€§ õB=·ÿë‚÷,”/b.ºè§Û¹7Ršã¹©±#.dHV{n@ -O´*CÇ}±Ü¬ ÷$ä–¸d¡Èרâ¤áiÒ/ïfo·+>ÓX( TGLÓ¼†\‰±K{Õ®f8åNýùÏQÌH -íç›ív:ã‚¥‡ètRÉ÷×Ý9>ÉÚ™›3¯ºÉq*Êñ -Â4àf}WƒýúŽ(í¦s*~‚äÔ>ü‰ê:9ã9.›Vé«saKIBäÂÙD«Æ#Ùã±³}hgsé(/ý §›¯»ﺕF\OÇAI‡Šôž–û¾ò stÛ®;‰Õ¼4Oê/Aü}O‡/sð²^ò°ž´KšÓÔ[=Lõé~ã^Hv—XÿÜòœœÌÞú|ÕËá+f%¶÷÷¡4—p7íÜÏWon®hlÜ»»âØEܹ°s9ì韮DÊÁ¨z­ED¯iÓ=’¦~µh—ö"\yá˜íÕ­×[_C@f†‘ºnkdšµî©‡›¾™î¶OûÅ}»š­}e—œ?JXg]ÎkúÜ-æA¨g å¿î'ï;©#¢Ò«¯þ^‹ýX§zn; bd?=çu=Ph§”øªkåhPnšý—eta!žT—0xЩ,:í/Ûßiaêj¿ãF†âC˜ž‡^Oú÷ª4vTÚ)œá¥Ç5VæÝC7ç§æxqR]Âà¢ÓNIìàÒ[µ\(ýñVÞáiÚ©t½YÍüAñ¸ ··Q§¦ðW+ÁR§ü­³$ç^½«Å‡k;Aoî«×ˆX¦¼É$Oç³pñK¯¬>ÕÕÐŽqCÄîTáSÊa$ß)E]R -n6ó÷ìÿ:íWšdZ8*àãͼ“Ív -o¦~¾c»ãB?S¶ƒ“Ƨó&™G“7=]u¨2ÈÇ ô5½úÝáÜ—góÙä2>¦Ð:qr1óUìø§'ÇË¥pKÂØb ýë»zq/=tIû…j„á¢2ùKÃ[¾¿Õ"Ôqguo4¯Ýnf…u?O#ÿÍ ->úP%¹‰‹þp0Ýóˆ‚z¸kÙ™±Ce™ëÙ”+,1M“Û–? ŠŽ[Œ×ìÅH¡ƒQ­0>œ#)ΛáõÍÞþQô…Àvӯطè[~*øÄâ.¸ -÷G*Ñ%ä·WåÑ>’”¯´pcZâŸ2b«àoF®_>yœ <üÖM6ɳ~²]`‡Óf†˜rW%çÕ¸¡ošÈ0¿9ûçÙÿ7üÝendstream -endobj -1410 0 obj<>/XObject<<>>>>/Annots 278 0 R>>endobj -1411 0 obj<>stream -xÍ[ÛrÇ}×WìCª,W… öìn^RÙ¬ŠbF¤,?èe,DØ–@Éþûœî™é9 €¢¬ˆ¤’*™gÏÎ¥/ÓÓÓ³øýIš ñÿ4)³$'“å“á`ˆ'öÏ«äI2.jü»Lòzz°H.ž\&£Ñ`LÁeR׃š8‚Ë$ÍóAE$c°åp1Kl]ô:2Ù|„—IUHK2Y‚hX”2¨‘®a–A„ÐPAlè¹t˜ÉˆF2F·Y>(ˆÍÇ2Ÿa‡PPe@º%ˆ†®[}SHÆ2ÛBfk¬˜dTåø×›Äi¨& œÚ r½I"§& íRè%õ#h§"Æh\«ZuÞ˜KSm¨oƆ£±ªÕ5Tz®*eãŠn*™‘ŒÁb®5³„ÁBK9±jQ!Vòq NÈsn -„#ˆN³J:5’1ØRBdݹ¸qRAÒsn ãÂZÅ LFÆ ¤2 ‘nÀT4TôœÁ8‚a@ãÜ€¾]š©ÉÓ)Ô["KX´3cë&;”&« NÖséPVìÈHÆ2èp0"V&X”¥š>€ôJp‰¸½º…Óf£T5§+©P ALTL9‚˜ -–iJ¤JXä2{/¡&aàê¡ÌE_ÔEEVĵã@lç¹*“ñGP&3Æꈤ›LšFÿ/ÄN=WUð×Èi»¼–‡^¬]àà(¶ yQ8‚˜ŒFÇH2‹!GÔÔ Y‰ñ -âž«†XyädÈËTõ­AßiGbãÁ\õM!ƒE¸ª˜% Æ ÖV'/FªVõ¤[‚Þq"§ŽÚ¡K ¨H;‚fÁm$c‘D¶gb ƒ{3IjQ»õìÔžgdi2%à¹çdbJF2F·ˆŽèÖX×mêÒׂحçœ5#ˆNSÕ³‘ºkçCÚîN©='[L­HHÆè6÷YÂ`!ìÛ‹ S2Kx™dW)±ŒÁ"dɬgÆ`±‹rÏŒÁVô©-a$° Âzf 6/z³b ¶ÈzÚ` :ç93;Nnh\Â`+‰ŒÄ^&ÅPö¸È2‹Yñ¸jú¬¦„Í3}àœ©#É8˜žX5½µUSK8˜žX5}hëLYÆÁôĪ+XÛ\B!³£íHV±„¡d¨±"–1XÍb[Æ`‘æÜ–0رdZÔ–0XHß—0Xl9·%,¦—óAì™±˜¾ìiÙ¾tIµ.óLA4½çR¬>¨ÑHÆbzÙ¤ˆ% Y ¦ÛÓK|$–0 4”`YÆ`3U”õÌXŒ›÷Û‹Ü’%b %§ªdë™1Xd0nd ƒ…’a È c‰ƒÕ †Ú‹d€5é̇W$•pæSÍç9¿Rd,æ“´'‹,ag\(ŠX]A¡gœ§Jf ‹qe¿¤¶„Ÿ²ÝD–±˜/“µiã2[KâE,a(JƒvdƒEì¬gÆb‚ª'‘n·âK–<9 JÖÝ7pî IÆPEªjÓ~¤)c§(x…±Î²È=ìô)ˆ–õ\ŠÛÉÝ"FõXÂ`u ÿØ–0XhSŠ,aè¹?th,c°Ø¬à3Æ:q°!XM SÅñœœzáNF2q$C –0X¬,¸DlK,’yL8²„1a}YÆ"Ž‰"ëÄIÝÑ×­;QϹódf$c™°äÅÄÆ šðD–1X¬3ˆc=») ÝÑØMIAœ’çüÒ7’1¦„mjŒ¡¥iʬ3kd cJH)álÆê”R= -ûèä€M)pÎg#Ƀ‹j˜OÒ0aÑ¡œNˆ% G™”Y˜0ÂöˆX]éiIhdT]és+;’ŒeÂ#뺅 ‰ó»~Än=ç»1’1ºÅf‡n#KìX¼‘X¢Ù÷‰% ¶–8Y9ˆ²«@ÙP ™/A‹œžÀB;60kGY‰‘#ˆ¹ )­!c°¥Ì*²Nµ™«28Õ*ˆªõb|È8‚èTÏû‘d Å2hÀš2– Éz!–0X§ØØ–°¬ulcÝzÑÚLX/ -D]Ñ®Nƒn ÙûRI嘎,Ђ«þmÍ<ãºQ¥G1Iä"‡MiL\„éY95NOVÔ¿Íž‘BÊ01Š Cê‘¡›·ÓÍ2ô‰ŠGIí"”IJeÛÆ#î6".Bp#‰g±]„à°U§‚#o°’Žþm‚{å<1&"ˆ†mo)‚"¶æCH‡ÂR³lDÿ¶¡<GCSÞ&"J¦QÁá°T¡LÃÕ•}—ÁÁ=©Oudø¨å.ú·LDÝØ3²h*ÔÅðPÑ¡:#!¸ZR1ãt0œ7ÌùõoÌ3²‰`—×t°Ñ!NØJ‹ÐI†$È8·³ºÑÒZ"Cä"ŸËáƇ¹ÓxÏ.Ÿ¿@V?L.gÐ2¤ð„²H.§zy„Ç“§—Í»E›t³ä´[mÛÕvóýå¯h…žJ«#ßì(“fOO¯šëm»–w$^£?t2} -Í äY:†*Ü“ÓuÛlç«÷ò EV—žøaÝÝ\kù F¯îõóu·˜OþÔçãA> -ݼ˜/Z?%Ä%?% “V)æ&§0 Ñdtrrm—݇öfÓ®í­tŒ”¢ôÜà1þ‡è/Ó8ª³©{Sÿ¡ÝÊ«HìÇyPÑÅÙsÿ G9§¶Ç"ŽäAæ³5œ-²Ì÷Í|5í>ªá -ušûçHè†Ç¿œ‹T¸Èsï"q„‡üËKîꨆþ“΋5Ltþ‹vr³ŽÎŸ+/ñE³|×È˸ÿV*/t‹’ªÌåø…-­ºŽv„X© -fv<[m×Ýôf²w+iVéCšéàX^£²ìM?ëOÿõÆ›$C$Ìjo’«n£kM’¥`‘ä]³i§"¢dº®×ݶ5éQŒ¯Úeƒ )G,³5[í¬¹ÃÂÎã׳f¢ñ›E–ÏÜ“-+ü2=¨ñûyhâáôÝ—Î…HóÄÃÒéÊ*)dÎæëöc³XèŠC"ñÐæ: ¥ "R¾„£ÏqÖ= ÏÎOÿ¦~ŠD#ì -ÉæªY«…3Ô‚ýV‘LÛ•n¯È{‡ØHuÛ=0¿û{„S¦Ì>Kûw¼#øõûu3 Á·+¶ü,xbýÖ£‡÷Ξj¼4¼]HɈ¶‹³ŸU0”{ëÒë;9¹¾nWÓù.§Áù¯,}êuþ ÞÕZ¸Ä=]ÈèS˜0v -çÚÞ^‡3N?d<ÿÏ™š›õ·ãa»R üÙ÷¯-íU;ý±ÑLçðxú÷|uã¬ÃIË«vùnݬ¦Û£³31JrUÿaàûý/ªg20·ð±¾`;;Ù‰7Ž? Üï´þbïØ‹TŠlL¹_ü´Ö“‹ö÷œçf°fŠsœ;¼¾j—,b9qrr埢ðƒCún¸^(Þšêágc\¨ n®|ihán§ÑeØ*h Û^¹ª@/_>={q¡¯â.ÕŽ@“Å<” ™"ÿ¢á¾àu|9$“¡ŸŽwÂ%.+û‘åe3AÊÜm®¤eÏæ^Œ -!…³‘O¤¿`b_¡‰—íH?ïáÕûýt¡,0žJOÕ$ÞRæÖ_aZÿoA,Ôcw…r†âúc÷QEÀÖf5“I³’g¨£ ÓpÒq3z^2éV³ùû—2KbÜú§‹c§-ήß4k­_ÁÕ¥ -åË]Ýj…£¡zî -ƒW'ÖÊPUÏï´îP u£%”^g{ç—ªÌÏBÔÌOÅà2œty;Æãbσöó -Ÿìêß¹Õ7£]Ú¤ª·OW;Ö#LYú§Xéí÷Éßð U¹õM)0# ûÆ&Ø8èžM/Ýi€*8mX4ðbè(Ç•R/ÿ‘5½_íé·eõù+Aý³/²;ϼ¦pÜQíùû~öP¼™vê¨ÐwÙ‹6ï}i5l[×(†²:Žç¶B§ë9t%]Šþ-‚¡˜ºZt.çÀýE w»õoþäŒò|ŒB‡œï ½z».çʽ ¼óÀM9²P›—¦¿ÝV >4É7è½\¨_ÈÕÒ#”.‚\)ÖV? â»Q•Ãàë®8¼[Y.¸h¶­¯2¢"cáèòôüøLËßH°ÊqØK6Ûfò›×âlÝ-õ!ïo/ç“u·éfêä§áBå€y¾øQ_®7w -ä{ -xÞ.Ú­ê@ò»_×5q¶Þ,Üìà:¶•ÐÌü:€ßÄ}øºÙlàÛz—I“«fõÞ…Ü­¸‡Z -~¹"Z?:(ü~ÆC¹¾Ö3x3{£æã¬áV¹ ÖtWr:¾·«‚ Ÿ|Ø¿ôàN{Æ=Ea|Ï y¶RT±¯›É«½|%H¬ë_/–s22)Bö¤tçÕ»Öð-‹õÀN4mgÍÍB—$~¼·=)±w“N—j…vùùÅ ó®†&56SÈ;•‡Ûòwõèø»ºRsãû‚Ç/žyp¾cÄ’ÃmÉ…£÷^Û /Úõ‡¹»‘(lYÒyÂoõ4Óý¥ì]ø -|šûKºx%.°Ýy-é¢å 1c1é·.aáóɤ[^#6‹žzIÄÅÉËg'òT>Hï!ÔÞ¡,|¢)£óù}çš(lǶǜL&íFC bÜNb]OÛz6ÝÍÚûí[“nꎠ–€}˜ë¹ ª9ÜéÏêZHÖñ#Ýû¾^ñÊ8’ó8'ìç${·º€î{ŽŸ²g˜?Ž–»ÓßÏ(‚j¹h}‹iÍŸcuc#wîƒní>EÁ–ü`×AH| Mñ7äL;^n¼$ºø3)ŽoâR=7Siä)ö«˜`:ßužÎA죮7®&êª||óU½Þ¡p¶ÕBn°ð½è×vi|&“8Ât?šã·Àýó›ùÂ.‘^X¢|H?Ïæ«f=w‡V>Z~Êï‡ Êçø½í*äUæÛf¾•’fgßCn–ïÜyÖ³Yo^|è[|§–•ŸôŽ´—QÞ*üÁÏ|Õn§©ØÉ8ü>èj”lçJJLº·N8̬ð܇ö2]I>­‚S^4º~Íá -QsMñù~¸ÏI¤˜{e¿iÓ.ÝG9’ÄÜß挟p‹$Ç/ðU·û?ª*ÒßÊO$ð1ž¦ ¾çû•¶äy7¹Y¢Þ%øéÉq@N‘å°–×?Ì¥¿]>ùï“ÿSöðæendstream -endobj -1412 0 obj<>/XObject<<>>>>/Annots 302 0 R>>endobj -1413 0 obj<>stream -xÕYÉrÛF½ó+æ¨a6 æ”’ìÈ•Cª‹?@QI‡‹‚úþt÷ô,ìP' ²«d?<ôC¿éÆ,п3)jø+…SB7bµ›ÕU WÒo_ðŠhŒ‡Ÿ;¡}%lÅí¬€;amÕ\wBÖMRÁÀ«ÕˆÕt³¶U ´-r0²€(-æ“Ȩ$ ä@æ<嚸¢(=>‘A´ö•I¢²(s¾ÆdW@m+[$j}S©(@¤V‹ÌD•†¤2D[ lßÈ¢ÌÉÚ@ª™,qUM¡8ʇ‡Žb!‰ˆm°]ŠØ é·n|.´%fÎÌ qô ƒæ¹%- £– [2sÔ’‘sMåDæ -ˆ#Ÿ€¢%ÖêQhp¡ë¢–² æB»ÚD†@éŠzÈÌa÷(ak]ŒÈ\k°™Ch 1ñýN1À¸‚ÅÚV¾ KŒÃ3µ$ëÕ#èȲ̱L"Kœdd|VÌ–@–eŽeYâ$›Ø k%zÈ–@–eŽeYâ$›Ø «Õ$ÈȲ̱L"Kœdd•)JF Ë2Ç2‰,q’Ml•²(,ËË$²ÄI6±$«=v+—,€$¹ “ÉGÙÌÙ§Â(K Ë2Ç2‰,q’Mlu2” g!M€d3Ä@¨L–XeÁofƒ,,Tô–‘,ËË$²ÄI6±ôÒkƒs1Ïî ,ÜT‹È9\¤3WÀàl’ -â##R÷{½˜]Þx¡j±xö°†9#÷´E€Ë«‹ÅònۉÃøtØÝ~8þ¶øQ £æ6Wvñi½|ºïÁ™ô@äþB@câ5Xzã•oÝã¡6ûïxÝÖ•‘šï½>}§‡àêתp±z¿?ÒÈ`ÙDË^ƒ‹¹ÔÐà ¬I2§8Wñç~è÷§Õ°9ìÉ{~?üd¶2wn”¾§ÿ¥Ûwýr‹™Ã4e›X±Íþá€ìƒÚ‰XJŽ|åÆ5ÑcSŸ»»µîE]í¶ížºmh6Ø1BçS·¾w~m*¼Ee£uýžKÕT>ÚêúþÐ[°õSp%ÂÞ™Ãä¬Æ…²ãB] ÃrµæyÁ4•Ô\1P÷Á„¦ë–ë·DMW5éžþ´ßs,̧ÞáùçŸÇþ°êŽ4$pš0–çš7¨t4ŽóäØx36þu9¬Ö]Lºy½Gˆm?Ì‚øÊ©¬ÿ›ùC}‹™±îhZë¸>Çå©uQ^Õ?ÛÍqÀûŒkGÌé ÿ•Fc—7iÀÍ~YO8©Žë9áU€¼ŒWx-Çé_§Ý#.aÔ’Öaµ'Ñ’\‹9l|Fs¾­žÍù‹î¶+°DO%ù²g£Õ¾4š ’qùE7üÞ4>n5hkLË3b)ÿ.ÿž¬/¶X™Ð^g Ñ*1-CG}þÂPh¶³†è]û†Âæâ¬!Ži²?¯PXy΢èa(ìÎjp8>„!GkÎYCnz†hŒ_N -íë µÆ!?=CÔ4/+Ÿ~1W8Ä-øùÊZãmRUvk«4Á«Ÿ­«pzÚ*LÎOÛŽü<;àÞ›-}ˆPpXðñÔ·^>Å3ü*(í…à£Ë ¾UÇñ0ª2|~û}ëò¦åOF0ì­Öð+8üÕ–n¯þº¾_ûÃn5ˆÏ‡ÕiŸÖ–ñƒ‘†_2Y¸îj·?m6èéÅìïÙîg™]endstream -endobj -1414 0 obj<>/XObject<<>>>>>>endobj -1415 0 obj<>stream +1421 0 obj<>/XObject<<>>>>/Annots 59 0 R>>endobj +1422 0 obj<>stream +xÍ[ÛrG}÷WLåeª==WòiK¶l¯ª|'·ô’—EYŒIŽ–_þ~€n4†Co[’•T¥tx¦»4@c&ÿ}ä’ÿº¤Î’¼J¦ËGé Å/úŸ/é—¤*Føï2ÉGƒÚƒE2~dà2©«gà2q¥”v`E“æå`ˆIërà< I ÄÀ4Œ ɤ£AqEJGT9ÌYÎZÿæaP )å1¢ ¤Åht$yƲTX¬a±’.–§ƒLŒâ’’Q0J€–* Î@è]Д:ÎÀe2¬`šÈ1ÝÆŒ¤Å`a(¡ÓZ ¶"{Öàe’¥å 7lNÛT:²&TÉhU¬J„Ëd4¢qÊf:Îág,©¤Å$ƒ} k0ØQ†­Ž¬„m"¿D<çà]I‹1-ö")[x¸¥¼Óõ³  i Ä@—c`$-¦ii· k0Ø:‡ k0X¬ng‘êš=]d`Eòœs<ºP’MTT»&›H€š(pµ#aùAž4BH“:,I‹Áb/+Ë g +Ô‰-=sËBï€Éy't¬Å`³ŠlYƒÁòጬG·` á91„rBÜ,ƒ!ã@‹IÕ‚¶T‡Z ¶Jig"k0XU†5Ê8Š-‘er²¬wü‚ATÆs"½rª2JzeüHWT´‘5cKöüÈLÊ°¿DÖ`R†÷MY‹i߲κƒug¶ù_Ó™-[–t®#k0X9U‘5˜’ Å>3–aVH2 ØW0ˆ๚Âä DT§¸9es줴9ƒE¶C-óã`Dø9²Ò Ç3|Î#ÄÀtHç\I‹I$Šü‘嘔†ÄO+@§ œsôL$)#åpEr^Nhœ>[FŽ³eªü$4Î@ +°¯@¤Å`ÂúÌ vTÀýÌXƒá~)ÃÈZ 6A'à vÈVP©,†Pý”f¬Å`+:nqf>ÿy9Œî'€ôá 8ªa0-?I¤ ,Jvy’A蹚2m®œð[6‘rÂ~°TÒb²½#="k°ØÞ.J{0ì‡g+ªä} ÌDU<'²+g`PE9QÅó¢+i±ªYQ%ŒÅ1ƒEÖ`r£šŒ¤¬Å`q°àdÊŠ¢¨ò4så ¢¢žÍ”30(ªœ(êÇ9G%wœTDñ§Ù%gô\5DF‹œ¨)èDÎ@Øú뤃Åú8F‘5,|¹3Ö`°(| Jk0XÔV`‹awXÜŽµ˜Ü¯$×Õ™-‹*ÄJe1Ž/ßJâX‹Á"wZ©ØüDå‹…}jþÀ!èYÎ@2"´8Ðb°¨=rÃRDΪŠ‡`´¢>"GŽ#r‡ ËÐOBã $i¨F-‹Ãá +€UÔá3Ñž£2¾Ây¡'YVÊÊ$VÇzI ãg ¤á4I‹Á–5YN‡Z vD·ÞÈrŠ¤:•¶’3¯ZÔ@ „ +®h+ÖÄb°ð=,ÊóÐP‹Á"¥tXƒá™Y'Ž‘pqÑb cEòœAI‹U¤ÈŠˆ~læ(„ʼn-¦ÃBÇ0²²ßœZ}$—¼J"qŽ RRŠœ(£xI‹ÉF”J"ËKº¡¹Ê +Ð%‡ø1B=K²…"Dˆ£X9™×8õ>ºã y«!jÔ0NädN¤žw:žâ2ÎsÚhÎDŽ!ªÝI*m +‘“Ê:Pµ”P’]Àår'd7 .8?ŸdËðŠ™Ü¡d ƒ8Ðs®ZcKèI"-†<Ù0@d ;¢Z'²"-2&™UeõœÃ½"GBOò¢‹`½ÈÂ(Ë¢±"`8,î¡•k1°”Œ­3[ —²ÓQ ûk0…tv#˦@&Õh«!Ê°ø¥ò÷­æ5Š–fÉ$åý:>ßl×ß\KÊ&|_þ%#kå,°êr:`¤Y𯗳ÕlÝ,ègôó«ÜoM2_m¶Íb¡n‡ÃŸçõS½bñê&îÖéj»n/vÓp\Êá“y»jÖbê&=»j®·³5ýŽáp$D8Þ<:ÿn¿Ð#èÅ—L¶-ý‚+ðÈù‘œÊ>òd¨Óð{³ºàÑé f~ÆÉlà Á8†+¸Ç½žÜÉ÷äE 3Þ¨™8ƒž¤Bô“¼=ß6óÕ|õ‘†¢«¬†ñÚ¢[Øóðð4nÊjœM³”Oɇ٦]ì´»ƒöºªþö¿¾ðu?Zá!%Ü¿Ç8îJÙĉ®ñM§%!qâÔÈåÅ^Žæ«Ëv½Œ]¹á`T‡Ͷ9oÄÁ°;Eþ Rˆãv–I}ôU°Ýç¼ßµéµì~ÜßuQè/¾MUŽ»Î~U~º¼n×ÛFî_h=Å;ˤ5>JˆkñŸ·;©tØ>âÁãÙ -_«Ñ¹E²¹ÃŒ¶¯²×”^Ÿí©Ú/Â/>CÕæ£(†Þp5 ^x ß_?åsŒwÅZ>_M×ß®Ã9.àÇáïËu›Ø 9ø8ú eOÉ~Yþ÷”\µ«£™(5ãÖ*.rÃÌ—óÉu³Ù|i×SQÃÞÉýÜ«—ჅŽv½"eâ›i¶PC3¥dáñáK¡åY»\ú*ÊozûÅîz›ó—s…ÃW´ÕzÅÆ»ZÀÞÝâMa;ûʧÍv€ÿrÍûzÀIÇŸ_tTëÕ“9Gñ6|_Þt¯ BH÷xõrû«“ãw´IÔù{Há^õšP-ÚÙ”C-‰^ãèrÿgD…ç?¼Ìz]ɬ×Qy˜âgÒ†Þ_BY§‹¾»¦Ô+Añ)Dêd¸Pj0s{˜ã0¾>*ï÷ý`æ;]þµlxeNû"¬£Øôj¶äŽ'=-í½Ëú0“7µ›«y¿É¡ocðÐ üËg6ñYw¨¨³<åzÎJuÝnæ_§SÜÊ9¢â£ÒZ§ë€7CÞ$>ÅÙíâÿï¥×8¼´C3^™¶Ôƒcàf¡Þr3iì©°í½²ŸoöŽ£·m¸}e£PCÚø—ÔÖg¦HØ8¤kgôÝm)>,uû²YN ¹¡yB^]÷ÔëÔ¸öfzH=~‘i ŸÆ”÷V¥ÐÛOÞ^Á§ð2/›Íõl:o²AC¼Ý®çç;3(`*½äã‚G¶ì\ç­x²ÿß-ßﲂ·0CÞI£žªÏ¿6Ëkÿ~ßVisãÕÉé šÝÎøŽö9>Șû×|øüR»‡Ôì½Þ±zÓÌøàÖv& ‰ ½µN¦×5ÝÍ×ßÆï_‘ˆÞw{š~$Êd¾í€ïEù³,ÄÓŠUø†/~v>3KzŸ•åhãäåu:¢¯¸æ¤èóÉ£÷þn“àéendstream +endobj +1423 0 obj<>/XObject<<>>>>/Annots 102 0 R>>endobj +1424 0 obj<>stream +xÕ[]s[Ç }÷¯¸“‡Žó ú~“ìKÇVâÔ¨–2îCf:EYLH^‡¤âøßç» œKR©eYvÚÎ8<<ܽ `±W¿>(²ÿ/²a™Um6]>È9¾±^ÿ ßdm=ƿˬŠÙé‚ˬÉ{Áe6¬#Gp™UÕ#ƒŽúÓÖ"NÕ`¦ÉH"A ,Up#X–ƒÖ*ð‘+Šñ ÎZ#‹´ f –°HÛJbÃCs™0I«À9™¶ÊZ#u`3–ÙâÀl`âŠ|8ÉòèºKìx]ˆ%¼ÌJÓËl#vð±ŒÁŽÇƒ1±AQ¥N¤ËÔ(pu"Wµ<ÔHÆb^™X¢Ž,1±„!R1‚1e ¶ª±FÄeG=©ªVÔŽÕ ›R8¢Áe6?uŽ Ä-TÈl]‰ lZwßF[0rÁï 1›¹`£ÀF®ÀzC+#eû4ÅÿŠ¬ðÎdAÄ„¡ª?Žà2ƒ»AãbμÁÎvRžWsU°÷ @æTª­u3hÌ©èã$"Cs‚¶±“Œ!LUÀ@ÄÛÊî$–0XlÓ$ƒŠ$ÞQ7…ZNÝ!áÂ;r™U(A±ŽšÀHÆ`k×XuȦ—¨ž¡À9Øw˜… +G“V}’1ض„ý}hxdY‡õ’=P+ðGF.<Ã8‚òÈ‘Èc¤:k ÷2g @&Õ°‘¸¢hÅCô—B2Yë>K,⤵±â]¶¦%¸dZu¶Ä©;9G0&8ç4Á¥qcqçB–R¨“ŒE–0ØÑÆ£±„%ÞåX/gƒ­[Ø€XÂ`a/–Š1X$¹ÞXÂ`GuO*Æ¥D0®ÚÑU’r0¶·}䂱#¨AŠ‡•Lp™!£ˆ#û%ö­d Öµiƒ­¥ô –°¬L%Kîc ÃBXsËXl¿Ã†ÅXfÝ…UÝè†Ñ€ DÒ:ÁIÆ¢ÎPŒ¦ó¨í%„U•ìøOði#’†“ATP²™‚ +|`äâ@#C˜ò8Kl#)‡XÂ`5Kæ­k1 ÍF*²ÈY)p#7®dœqñH­œd ¶•8O,a”ë^³‰‹¯¨'9K,<¬¦™ƒ—½ç2†'å•ø·ÍÌXüL27±„Áâ¹ð«a[¦·Ú:1¢†íÄ…ä|'˺ʖ#–°˜qØg ‹Gð Ë,¨Ç;ÃÛ|lP_Z’_Ô™«¹ÎTëð@2†ÀˆDPÖ†2‹X”3KX–jÕÇ2«å±„ee¥Zu6¨ÓÒY¢TàêDN*PXÉHÆåÔq–0X”lX;g ƒJ5D,a°#‰>Ć²Øû0²Í¬;¶lÂYBCL¶c§§'çâ‘u.6ÒYd ã  TuÊ$,âŠ38Bö²R*p"µZ¬¬üP8‚˜T#œ“ŒE\]ÊXÊ1¥ i¦A¸TàE® µŒ#ˆI— ¥‘ŒE\©y‰%,âJ%–0XdoØÁg& ®ÁlPž)›1,·W&rZX–Æq‡"‘ŒE\‰\Ä‹u‚«øXÂâ¹ìcÃfË¥öŠ÷RˆBaäd áôF2Æ´¹ncƒ…€<–1X<›ÍƪH¢…äd•!)qA''‘œ "¥±!«ÖX”G­Z2W×/ cæqØAc K*’ZÀYÆ’ŠÄÄJå"}ÛŒ˜»$®Jvt’±x¡ÔYÌ:†ÀÈÂé)21c°ˆ-5e 3Ã*¡Ž%”å™EÙ„ÁbÏ°ÌŒÅRvùÌR[Ka'‘ê(‡Ħ’¸îA=׌‰Ã¹&AÔÝ-ŒìãÂ~¹®ƒ=1XT± e ZòÄŒÁêÈËÖEMëÚsƒÕB‘XÂ`µÙB,á°nÉžiÝ–u+ÍÚj`Â`!›˜1š$Ø©,3c°ð&f5Ji¥yòT ‰ ¾“ŒaFˆ„}£ó¨Àº^%5- +>mäB¡îdGO1>‡ùÀÈivqŽ 8„TN2‡ŠÛë<2-ãàp&gá cÙ™’±ŒÁîÌ̬öÂ|fÆ`Q±¨ö\ ³h-X ¬Ÿå™s#Sä%¶QEO9†8çºä5qÁ!×µÄ9ýeImN‚¢½x‘sÁ!˜œÅÙå@cãTñõlô³)™`(£BtÇ™sEqéê:çÎ!%qÅ(’ðlœºi+?^ªŸEHÝ4‘Ñ~²1Ž0Ë03Š 8„3ÜCÈä2!Apf¸M0Î!8´ÔxœCØ_ G²çØç$N—>Î!8(D²§!YÊzKÉjsª)q4³#¾~6SFM!ÜȯÔ ¡'#éÑG`$ð;cHL\0EPL,Þ†‡}‚®ƒ ˜_¶›sÁiÓÀ8uqô\¥¨ÐݬŸU1YúÈ„ÍlALˆ†e~|Ä 8-'|œCRŽéÎ9‡*MPH s:ÄzBq4—Gô"YT¹2ôàT9ýlÊE7:(9åWÂ8‚šs"®ƒSDFθ¨Ss­miŒsUŠyãB5„&zÞ“³ž¢<ϳ³K=¢æMÖëììBï8ñõôáÙä|1˺Ëì¸[mg«íæÛ³Ÿ1 +I£QGr²Å°£R†=<¾š¼ÛÎÖò)¢@`’‹‡Y5¯0$À7á7©Ãj¿œ¯.»õr²w+ù1¢Õx˜\L¶“óÉfŽò1<K:*ðpd±Ržgú(™9=üÉõ|q1_½R¥ï_ûe+¡;±£B¹§Âñzäâ©êh´í•ÚÛ§—ñ;6–Ü7aiÔì_Tߨœ¸ôŽvÁxàZ—ó·×ë¨ ®êʸv_Täþ⣢ï^õÞÚü¸‰r—Ø eòæw‹Éæ÷­¬1MÒ({7ÙlÞwë ÝHHUÍ°ëÖé¾A(Uüj¶š®?`G]è,Xä21iš8=îÆ?Ï"—CuJ)æ rog5{ªÿ0Û&¯”û€´áVÝêhÚ-®—+™ ¹n’¿ŠoÊ—R.›â—ën©_"rý©g#,Ôß1¼­ïÇ­“Iû‘êŽm–t<Á2^œ‹Ô’JòQ\°ÿ¼x®š Ù~|·¸~;WS '˜ü ïl_EõФë//ð{Ëû— œ#±ñ^àD¹§Â›ÉÛà1¸JýúAÅ×¹T8‘⨄ §0RÙ³gÁãðj9×Ù‡wA¸áh˜¢Æ¥£5æ«Ív²Xx*E_¢ŽÙÁ%øšŸÊ±® tM±*®ôj»î.®§^|ž vOªV¹jÑŒ\ƒ› + 6¬zÙ-Ú±B×k]QôRªÏPlí­èélý[,«ÐêÎS¦‡Ð<"o¨}¹4_•"㣧VŠIHù‘<ø¯GÌÓíd¥y ]…‘ùôãE· +N=¦²†ôÅM üå4;ä+AÛ#qמŽ!ÞPVø®["í‹iP®{x1[ž‡åCñ–)Y¸–R:ÜO:;¤ÎÎwI;¬d3¦bºĪݗðõäh°î‹¨": _}ÅU¥{¯ìê´Ÿç>V-?ØÆ_®b(Þ1ë=Á 'Ü,s½)…òÍBÐÁ3XÚ¡8&ŽR9½š„ EÕK¶™MQ¯o?ˆ‘{>½˜ý6[È·(ð½˜ûé!Îvú-fNõ.j!~¡soñoÕiÑŒ¶‘—ÓaSI–K§™LëHäüT‘]èÞûé[éN龪ež£*œS,CÝdÜ6f똔O'Ës•eqQ' 'ª+zß&,ðZgÕ&³¼<ÓGc7úÏâÑ/YX}üf¾*Ñò³òúd=_NÖaUJ·´;¸¬•=¼¿o垱NjOöÝJÏ´”JܾRPÁf7/œ¬gëÙ¯×óÍ|«‰í—rœª›×³‰ݱÖù]åûdÅt`Ðî¨(èl€Ãê®FO&Ó_Þ®»ëîš;ùáÝÞ5À-roQö"ýþ‘ÜñPÏÁ—Åvòq¿ë¥Ã¾ßáÝ:Û"{ò~†/ªx¢ÅyÐxÞ]·»,/&Ó«y(Sä(o-«³õõFcz¬žO§XûÐ)ÃÕ¾;sŒ®lÞÀùW7_¥ÞÇŠãÅu(ö*}¯ÅZøk˜=§~õâñ³—ÿ=~õòìõ«çƒm¸¨Ñ7kR’ɪR³ê&7~y&ë÷2|ƒßrÓüM'àªÎ+j¼;’ãïíM!3R›  +îù?O²1¦›×vïe".÷,sû>~<Õ‰Ë>/Žve*:²ËA)8 Σ"ݹíþ츊7­ÿˆöÀ Z­ =K=mØÍÜ«¾SGK–xÓÙ·½ ‡n¹-ßsÒF#+kô yC¦Kjjþ‚ƒzýC0Þ–ÛÝ`áCpÔ ÆKt»*¬~ÅQg~ËžÞ±F>x‰=•6¹ÊÄéíR?:†Š’#è¡Šz’‹x×y”†ò?E–h›Rþ‚‰¤Xg¿qêÁÁê¹ì¢ EþBÜwÙžiÞ 9â’Ê.z°%Ìl—(4æ WhÙvÎÓ05 ð(ë¶Óíó4íÝu0Ðh€7´öwiRøcÿÛÔ"ÓÑîùH ³Ÿ\ß\ÍVªúú–ßæš÷ñ +ŽçÁC«{òݱÅIÛK«Ùìbv¡úà;U|¬ìwú]T|点nw»‡Â¯üû²yxå¾Ð¹6úd-mÑ÷<„r7n¿§,]™Ù²X¡óó¤p,D¨ÑñCjZª%“÷à>¢¿­ö–‡÷”x‡…½Åf20®zmÏì×c{V>¼>O’æÈpÍ—<$_CÍÜ >ÈÍêm\†|¢¡Ö³w8¶NB¯Yâ·½Rsh3n–çú¦Í~ §Yu=ãâž®€šx\‘ +w ²tí¿=?¹ýCªÑ·W10¡-i¯ìºÜûùöJþ2Ä®oŸ÷ø$„%,Ño>rw«Ÿ‹^ߟ=ø÷ƒ?'{ÍVendstream +endobj +1425 0 obj<>/XObject<<>>>>/Annots 146 0 R>>endobj +1426 0 obj<>stream +xÍ[ËvGÝû+z™YHf¿»sæø1žhŽãdbe2[Š¢-Æ"[á#Nþ~.PUÀm’²Èt’œ“èöíz…B¨æÏòl‚ó¬-²²ÉfËG“ó žØ¾ÿ—<ÉšªÇ—YÙŸçÜf¯\fõdÄ\f]}^P;‚ˬoÏ;â.³|ÒØè2 c°ådÔ”1ØFæf®m /³"·-u ²F‡¥8¯³F´$ˆé62¦q1d^ÊF2‹~*f ƒíëÑ Œeºù¨gÆ`«ú¼¡žƒ0E‡I.LäÂì#hÂ…‰-£0Îa„q–° cl&¶-ªVÔdlfÒãaF ¹¾4Ž „)deÔNkÈ[¤N°N×MÎËÌ9‚ètR¢½“ŒÁ6"‡³aÈN,$ÊQ+ð!#×UxÅ9‚2äD†´†ŒÁV• é,a°]>bk»BL¾íð¿ZLˆ æ j$c´9ä¬åa’S˹¶’^#¨N!'N!A X4ç-‘ŒÁ™ Ó©J7ŸZO'r]'+m f¹Þ2ÉX†ldzƆ!áœÜ¸ø‘ƒ5õYmœxÚ6%ë¡®5iFJOëÁèiSO›úT×êAÈ žÖIÆ¢ò^ä×¹Étƒ­TåÎÛ¶¢Ig ‹/¨Å(e ¶neQŒUÍV½,F´­L³‰ëZ¼âAU\¿“ŒÁª±K,–ºâ¶„EÔ¶Gm ·ÇmÅí% ¶ha Þ6ˆ +]™Û«¸¨‘Ó%vŽ ˆ*Öä$c°•N׺e,”8¨-aFLgÃtÙÒieøt#׊c¨Œ#ã•íAE ÅIÆ`KqÅÄ WÝÚ ŒÁör.K‚Nt•¬-c°8ë¹gÙÂU)Œ*’*Ð=ã꥙qÑþ ²©}ª­¤v +¤O¡J¬¸Åf¥#qµŒíA ‡Þj"ƒ…wê˜% ¶3jKXLºÄzú°ŒÁâœGÔ©³— 3ÛØùΪ}•m®š­;‘[´$ˆ“C´á\h‡7Ôch;Þ.rphgAQ‚lC'ƒÅ6‚Š¬)c°ê!ˆ%, +”-H,a±®bÔ3c°M. +´qõ©dP}S…%,Šo$–0Xœ#–0&<‘(ÐÛ†)aÁÌ4 >¥ÈÅ)Ƀb hCúÑ –)‰ët6 Z‡(>èA¹¼_UÉÝÂ=—ĆnñÐŒ·PàÝF.G~ƒU3’1ºÅž`6t‹óDÌ7ÌVw¹Ë ÝÉXTTŒØ°+ìjl¢Û@tvEäàÄÑ«qÑ©¦dN2‹l–mMƒÕèœXÂb(¢GgƒÅÂ`½­gÆ`±`£¶„Áê©Dm cÏ °Äž±žƒEOØçΖx_Žb /³ª\ÍYÆ`q¤ŒzV#ÐLƒ._žÈiðUGP–'Ã7’1XD,XYg ƒí+±ng C‰y!j2–1زË,œå¨-a°È °xÞ3a¨áLÊXÆ`±¥X"Æ`5U£¶„±¥ÄˆÎê¶Ëõ ˆÛ.Ûv‰ žÈIƲrüK,ê -³„Á"®Ê™%, $‡õLXHLgƒ…G,˜% EÁÝóœƒ*:˜c“¼¢SO«)@L V)É,*ÖYÂ`µøD,aV6<±„!R$k=3Uȱ@,a°°ÕžY¢(qCÔ–0X¨|Ô3a±FU£ÍŠ1ØvKöžƒ’›­*p{‹\Cm`9ò¦Œ¡($9%³„ÁÂ=`ÂÞ–0ØN4b CXÌ°"–1XLKo=ëñ"‘‚/˜ÿJ\8¥œ”tHü”¥CH;Ý݉ÓüÇ9‚Ø®¨V;Qõ9„•Z’‘ŒE}%{SÆ¢ )’K*@…‡e º±„E}â}¼gÆ°•B|¢³ŒÁ"`à9Õ#Ð’íªGG®ÀU¹^ÂRçBÔ\ª6N25II•XÂ`µ¸C,aQ„¸gƒm¥nO,aQ“¤ZĆ"Pÿ‚0a‹šäì&–0X$mP¢·•óGžå ú·©02Xÿ<¼¥vf)¬VÖÆQÐlã”(6Bp(EÄa¥C‚à  nç,¾¤>‚Ãà=q¡O mšÁÁÓxjUj¥Ñ¨ôoSHdÔ†Œq„ih±É(‚àचÌ8 +9’–¡$ôÑ¿m¨ÈhçÆ8JC†Š­$7¦ ¢\2n-d`Õ¾CÑ”dxÆ©·†Ï/¥ÎZÿ–VŽÐ¡æMF™ÅÓ§Â5Ù«[‡‘‘š-ÊJòšÎÐ!:ÔèÀ8U¢Rü(»]Z…hRÌPs¹D‘dçª)ˆ´Œsg$¢NãBzº÷ôòÑã f—o4àή­²Ëk½¿ÄãÙW—Ó«Ûy6¼Éž «í|µÝüíò'´‚“È¥Õ™„±hvVH³¯žÝLï¶óµ¼#ÇtrýUÖË#4 ðõty5Õ—bU饩ö ¦.úø¢¾‹H¯¿ZLƒÖàŸêödê 9CÉJ(þJø~~ýõt«Šü3”Pî+áÙ°¼[Üê’ÃhÛ¾]ˆÔqYOlÉë>®k×ñ²Vû½žoww¢`\ÍtfÖ¿ ;µH$c}ž6ìãùvöøÝúª>Ÿ «7ÒÁà$y‚Mçsóu+38S?Ú¾õ¾ˆÏÖóéV×LRØ´¿ŽíÜ–w½#¶9Ò—¸§³Ù°[C¬Îë:ºÉÏ-Óú3q÷d ΊÝíwÃf³À‘ »î~?¸±ùz=¬ÕùÈZQó”T’'Ÿ°y6ûkw9ߨ֥Pcö¨unæë_Âq"÷¸E2ÚÙ7N$|¤ª8¥`÷ö]wÁ`Å˳Ìí1™ãYƒp׎Ñ÷‹íô€=éçÏfy5»]àÔgŠ)éÞiœ0 5 5~¢¾¶á„%þ5¼å¾Z‚,Fu0Td ¢ú°”¢^]VºÒ¨å%÷šÅ…œ2mè«â¼ˆ ±N?%ÚªSä±/õqÝËl(¸*¹š ÜÜ7õ‹•›:š+é!™ ûêR¡`bÒs,=þ:ºQü„FÖfžA˜öŠ®9¹? Ú9“*65©å Ö:>ÙéJCJ\x5l×ÃûQ¢NgªAV%ãƒ!¨+¼‹OóE±F§q¦wÀ#¡b«o~“µÀŒ}Ñ:[”j']:Š·7ñ!Ô`ñ×Õ|m8”ÖŽííMˆ G§Çf>Û­[ i™GÜ—á;ÄÚi+…#åò׺M~ZO4E¹ »œ‹‹‹°ypz˜.¾½Û.†ÕôVf(iIž²2 Ðowë©ð¢€0é£\ÜämÞ2!n,Ýj»®w³4Ýú eƒP–¦T0Ë °]y bJö.¥¿•• é$*¾m¿y­/£ˆ‘Þ†· Ž°´i³Õ|û~X¿ »Ù§yó~|x¸CÁÓÏ«Üf?¡.äÚ‚¶º\´¨Š”?y;_]§êBŠoþàRœ Yè Ÿåí‰ü´‰ñjºÔ ñæ$Oïç›ávgvŒ‚™Åß¡‚/‘<|S% ¾i«w·[‡>Qf77öÃjñëã—‹ÕîW±©„™€ Üê©€âSß$¼ê(P«;ÐGXØ2Ûš Þ ›P‚By鯱¶QÔƒæVt4ÿµ,à/žââë´~ÿƒÜÄ,W.tÇ{ +Y€îªÑäEù6õ:žàtdœ:b- uà +ðâá´W› ÜÖìƦ.— ’Ö“Æ¥t<ÖxÐ÷‡·¿Zm\<¥-ÅÚiNÞ~· EÂQ•Eüw¬–¢–”¢Ò,ž ôðÑÀ±_<Òù29oË;†&$¯jÉ{›1zXPµÐPi¸ŒUQÜ §bXöj¾}zñ­žoœ§fG½è³é,t!¹|÷¥,¡Ñôs¹bc£Eiø“d|ùÍ×ß¾¾TG^úM¬"õ7ߺw¤ç6Fáøp_²èEhõL‰Ží¤!,^92ÒzÔæáW æý ôü•. çB/‡á]¨{"wþ³\MÒUæˆÇ ÅLùõ„„AùFÙ6‰ƒ‹ÎþKm˜$ÿ? +#Ÿ-ŒM-¬‹¹Ï¯‡÷²„£tïj\6ú­‘“x³[inÂ]*seÇ’â›Ø5× ·ƒFÖ|]Ïïn‡rMw=±zŠk8/6=H$_‡Û誔;Þ+Ê. ˆb’ï. Ðáðún\ŠhCÂT!Æd§LÃôù;ˆ{3àAóIU2*\Ž9¬<|¢’S&ªQ-2ƒÞnÃLdÉ­­"sì*l3Ÿ/oç›°ø¸Û5³_¤T*$¹øF½Ìï9ê¢Kùkl—ôÀ¹ÿ°ÑùÂ]ú`¿CÁGjUGŽÿP›¹¦;\K¬¶‹™'î¸C·;AªqÃ5ž[ˆVK¸Æ—#ûŠ9<õ¾™¾ ù —YŽ¯äAnã¾%ƲìfЫ$¤Ev¬`Sëfåòßô¯ÅSµŒ{ÝÚ‘¿£æÊü 1Â1`R¸×’LØøxȬøõ©¹L-Ÿn0HR?gQÅÌF +øì–ÂŽ¹%ˆ=»…ÏV*Oúˆ:¿ô£¶#£z~üû õœà,¨žóë‹ÿIO£ù»ùz¹À=\pLÝÃ=]„üX¾°³è*ž.øŽ­JY|Æñ=—~¢wÁw:v9ðd6‹þ?Ãp 壮¦åAdã~–½\Ä_ çøœä\Šµûu‰lÝòý¢Ïó÷éhÇÕ¹U<Ž«3Ômߦ—Q£7HºÆÏâ½æé:š˜ÙÙñÓöØÝïŸ}¿×XLo‡·:ô]VŸ^IZ;“&¬«½ÊÒ±ØèHó T*–7Š¡,Nç›’{% ö‰3ÈóTé‘KRÇÝÓæf+UøÒùd•†¨®.–½ ¢8õ¯æeî3®£ÊÞ¯æëÍÍâN$EŠ^Õ±~õ¥=ʹ2”Â¥:Ìö°+ÿ>ñ·D|ž^ãs¤ÙvXk°‹.ÛGû[‰ïç<$Ž+´5­†>8Â9‡{ŸƒCóEJœˆY)Ä}kÚïæMŽxʧIüšn>‰<‡áÓóÑBp4|(TY~)ÆšI² ›ã~ª1\/Þü–ü3–&EÙñýöƒÄ'õ“q64žòÃQ«•­Ç/ðýxø ?’ës|ÊŠÏ2õ²ÿõ“ož>ɾ[?aeχÙn‰ÝtdçuwÞâ:|?¸X,dSÿóòÑý*‚á×endstream +endobj +1427 0 obj<>/XObject<<>>>>/Annots 191 0 R>>endobj +1428 0 obj<>stream +xÍ[ÛrG}÷WÌÃ>x«VÌÜ/O[Š‹·b—ÖRÊ[µµ#Š’™ˆ-IÉ›¿ß À éرB%I•‹gÎt7€FèîÑŸeIŠÿ³¤É“¢Næ«gé,Åýçíwô$©Ëÿ®’¢›eÜ&çÏ\%U5«çà*iëYå8WIVf³Ü‘ƒ­ó1ë0Ø6Ÿ5¾­Ã«$ϻѰƒ-›1ë0Ø6›•®ga‡<µŽõlYd.j2aQ¡ ÌÔ* :uÒ–å7‰ôl‘’²Æ: ƒvžu˜ 5a†²YGs§={L†jǬÃ`›rÌ:L†b¯ÐžÅyŽ&Ñ Ì ª+鱚ÂX1El+ªë°šÂX1EhTWÖc([44{Æ:L¦¨iúŒu¦Èš>ei]Uy +8ZWt]EŽ’qB—ŒœÊHÁ–ììX‡ÁÖ)¤u¬ÃÐ={‘<&;£q=&;[Ï“KŒ¥ò˜,QÂ"Ö–¦j tF€:Lä:ZÆ9UÓnV8Òc°ðÎα2dÝÙr­Ø˲”ºU’0d,¬û*+ÝVµ¹~ÅÀº \K Ê8iJÙS´¡Ç:¥ÆÊ”†~ó”'MYv@,s@æ€SÎÁUÒU4ÓÊ9HV/Èw¬Ã`±D0qÖÖa²0…fc=‹Ý]ëXQÅ‘9S'pâ2¬¤¤Ç ;×ʳ“²ÍŽµuX”Í+"åRú‹K00‘DPÒcÉX)¶… ÀKum‘»aCeE¤¬pKƒ‰¸,e?TÒct‹Êšë0XL£geP”Øër6hàÈwjTô&‘£[ÞSËÝf­”ál^ÚmäDv#=&](šKæ¤uF +Ó›@½:ˆ|IyX^$ÎAÔÚ40ÎAŒÇ» #=‹L ix|6ô$¨>2Öc°µ#Öa°Ð³ñm ;Vžuv@™ï¥òlÕzæˆOŒÒ-‡xl&Š©‘Cµ›—GV¸]‡k8Ùu)¢ Ö]UÃ)ûŒ8x æL9ay,«Ö‘ƒEl…+hSq>, 7äU-)¾8’fWÒcr +XƲ&8 Ñs2þ­ Ž;³DC¤-m¥­Œc ø¸3”£ü›†bùCÞY&J9(6ñL yj µµƒàÊò+Ç‚ ×jtàß*H`dd¥$AhObœA Ëãt.î+$AF #iBäß*H`2D=œ$ÐkD9AøÀÜ8ƒà0O®†ÂEý‡ë`¡ˆ}1½ÆƒD‡Ÿ(gPL\Z; §'Ztóo,0â†J9ˆÁBª© Ä 8ÔÅȨʇø…®œAÉÇéÊ}}ñì«o‘¬Òäâ}¢JÅœ6erqÅ7x<~Ñ_Þ.’á:y1¬w‹õnû׋ŸÐ +‘+£V'¡ÙINÍž¿xßßíz‡B7úC'WÏñòŒžaŸŸüøæÕ¿ø5l:ªøðl±Y-·Ûå°& +6¬»<ôðõR†¦xÐ6áa¿¾¢¡UÙÆß-×WÃKSÓÍ ‰ðæ‚%@Ì»ðèt>_lùM³viì4Ý ·,Ê¥¬¯ÿ°ÜFõšEýK·ÍkØƦ5ëšÇî^Án›~¾‹ZAXêÃr÷ž5€§¦mg÷~Á¢Ö³LÕßî k¿au±˜Ó,¾|Þ¯.{e»¾>ß,ú÷‚c‰4öZõÛŸy84Ñ0wý¦_- #[¢B¤¨EÙý×´4ÂIÞ‫Ù¥ùãír½¼Û" é¼ö»Ýfyy/ö‚Û³êïî–ëRˆŒ^‡)ý"»P£6¥®Üê)xEœðÚþµå“O—|ôzys¿ Ò¡zÁ©sðŸ³Ó×<ɸéâÌ_¼(1œ=»‚?‹âìVXnösP¨~ê2®Î9–ÿ¦¿½ý…í¢A{_õëþf!Ή”§ ¬¿‡/¯wËy½e‡PÁKòWÍØfb*]i‚œ÷'dä±?^ !D"E7‰B=‰h÷iY~UÐG“¢éI׹łSŠ±r/'s…â´œîùQ øËjsš¯“ ë’Y8D`kT qCRŠ~Mu´yÏýÝÝ°/FçM(ÃT†'ÿÑÖGÌR1úè…³ÞqôB1·®Ä©q\BO.ûþ€¢ÍIÓ¸è‹$=–?Ò¢n ž¹ßåÓ> +`S;ZE¤Ãþ*zA®Õf–Üÿ}Gþ÷—ÿÐìàôBÝïiu¡Ñ‚>ØM*¦wλ¨íF4¼Ü,BmŽ‹§¦ˆ›—XÑ¡Þjb|þæ(¥^“±úÄÌ{£´Rÿg]6ñCÉ#•- àÚÊN€¸ùÑ‚í¶ßÜH‚BªX߯.Ã^Ó'³«ìÃ:­ðÙ%¢úð'|…wÄÈÛvä{'üÍÜ8˜à~’—£7ÂéÕUœ1ö,y³ø@àp©Ò­Þdm÷°d‹!Û†ñÐ&Òoq§¯æ [c¿':={Çãc¥a£øH_ VÁ-ÂÄ/ª=“X™á÷´+yZëÁü»gÈ3’cQHÆ£G*ð™Í;Þãá\[­ñìO +á‹°ÍÇydÌ"É«»*‹N;N­æ.†áv»à܉èP?n‹þ™š|쵎·f'ü=‹ú¨„éwï{e„…©%ë‡Cã*þwò:\©Eع~Lˆc=Êeˆ“,„D¹ç©ÍBa­’6¸H¶ƒ‰æü×1nŸõ󟱖iGrÈŽ¼‰JⳂ=%÷ÃôorÔíbƒtűßÆÚïX³u°ß¨®Ë§ p?üT» œsèn´²ÝFòâv‰ Ö¯eñlä Çxu£mà(ŽŠfzèørÙ߬‡­¬4:ý“Ôxb“N pÖ8 ‘±Þö r¯äæ]Öó÷gÌ[P^Lga?F¼\\ÞßÜ„Ïשּׁ eI©–qw›‡î+ ˆCO´Qê +’™ YMÕÚ +#{Ј%0\ Ô7É£#&¯è®8´ +yß?,8üã~Ùó˜Úd†»RÇnuª÷~ÀøX~7Õ1ïù9}î©Ç¥‡*~™z ’/Îx"ÑT̉]ÐÓ~´Á¤l/gûåÙ?†KVÕ_¥lÿÄÏóxµ°Þ›õá~w'G˘åè “é86ìø¬ã$C–õå n›öòûç«Šó©~-›ì:­hw +ãèûiKÑYÔr4ÖT®b|”}Ûˆ_éŠ<Ãåù|³¼ã|‡«[•?‘…Î'þ¨oô¢ïØSûïøä:ñéÅX·voO¯úõ<ÜOàæ´Ô‹wT…pU¦Ou¢.³YÔfÏ!»=UÞ.z¾˜ÄÇÜ6OW>Ã`š´¬¶!žî—(ãî¸øÛgÄÕOž$J¤q'‰?®—×K™¶ÑùÀÃÍ°Ž9Æ|òr±û°X¬) +!’ã›1I!‰ßö~âF8DæÑ…òÁ›êûmHè9¾AÉÜH—¸~f pñXúË”®¡¶_}«Gãî»G5ÞÙ)´Ò;½¤Ð3ç%Š,ó§ªóàu¢Ñ .(}jE…1Öb¯Èûóè4«VÓ[­ƒÕOÝ·“r¶s¶–W²Ûó?O·Fe¤ ØÞV—”Û?p½ 38ñ2·sýqî2òYzäMë§ÍÓ…£Çé)>>¥{Û÷ƒ$;l7ôŒñ#“õnØü,¡ªü!ÛÙ ·*7¹`%åögk|gˆƒAÕóíb… ( +3Èxv†§D†¼ß0ƒbIò¶Âlü1Îïuxx.£ŠøCŒq°ˆ×¾`ù¸†§¸'| ᕺ«z¹Ü,æ»a?_°~Îqf±Ä§@l:w×–òQO»p6<*³i +÷7XoðUID_ðèp•%õ·çø’hΟ¡kÊð)È£DýM£^H‡“t…X^|~îÎn±#¦ËHw:‘ø–›AõÝ׸z» Çdø“У.ǨÑgÜß! Ê™—?¯?´Íûn3ÈFæpǾ/ÉtÕ®'Á§··ƒ}6C ~D¯ S¥áû$| +Ÿ·áð.> +¤?ÀJ积¿>M+~ÂRJ^óû6~zPVЭ Í“vôúòôúæâÙ?Ÿý¯Oendstream +endobj +1429 0 obj<>/XObject<<>>>>/Annots 234 0 R>>endobj +1430 0 obj<>stream +xÕ[[wÛ¸~÷¯àcú`…àE$Ÿzri²>ÝÄ[ÛiúJKt¢$zuqvûëû͘RÞÆÉi¬t÷œµ>~03À îo'.Iñ¯Kª,ɧÉlu’NR<‘ÿ\¼¦'É´hðßU’7À2¹<1p•”ådj8WI“O2øJ\žH‹ÁVnR˜¦¯’ÌÕƒ¶ƒÍ§CÖ`°åtR™ž-[W“ҲîHe1زô\d¼œÔ0a]L È„BYt û +i1Xô‘„…6è6Ë`vX¿@ÝHݦ“<¼I$aÈZº¬ž4–5m1W°?¿Ë³.iƒ‡QªKà\Á'$¡lhFBC¤aä\QÃJú†uÎ ÍU2Іs-U%-&ëå0‚a [‘•eÛ–Ó†§Œé›€L9ç&EIßKK&¥d  G“ÐÀièM"Yvv…àf%¢ØÍ< n¦»Yä\Z@`%-& ðˆÒ­Å`§É£¬Á`yâ”õjºŠ'ÅÛ‡ª8³)¤ÅèÖÑ6¬Á$0ù‘²~Ð47“Â@ œÃ_LŠ£[Ø+AYƒiДV‚²ƒ­iU+Ë" 5 >船†r¢Ó‚¦MIßiU±±q Úià¼^JZLz’¥ k0X,îÒ°ìfÅ”¢SðOhPöºÈ¹´†`JZLƒ:×°ƒÅr¯,k0Øš<ß´5˜¢¹#uXBÊbŠæ$7¬Á`Ñʶõ..ß‚Z8pƒS(g ÄMKRFZ ÖQ¼1¬Á`1åWÛ ¶â™Ö‹›WÐ!®2*nà¼|Â(â +Ä -ƒ@ÊŒ¶X,ÊLâ¦4oÊ Û¬Œ°^™¬0.Ã@• œ—^8E!ƒ2¡ePFY¯Ld½ðÊ,Ê(ë• m)Á€ªÂze°Ðvè]•*¸¦$ÿÎ@ ™Qj ¤Å`a9 )M-‹ð„e¦¬Á`§Sš7e ‹(dYV&ÇC +¬Œ¢LäXzå D§¬Œ’ƒ-2ØÁ°ƒE\«-k0r Ëzqk2ì +iTɸ"šUXkʈ!E%-Ë;a &h+ëBÂJnê%` Îo‚¹“hÛS–2ƒ¼ „3dP¯œDŽSå DŸ)>÷B -›U4¢²ƒÅN5…õjæ™Y& ¨_¿jçÓ×\H‹Ñ-oG†5,æEÚúA?†øQè kRT8iHÚù•ä=/G—ÄÜê”÷¼È9,=L¿É#Rœ5>õæ7=†‘sˆuxSV&}ÎhÃÀ¹Œ–‘’¬÷ßô€;¥Ü"r5%yÊýÑi|“Z K¶0M-ÆbG¾ê ˶ËD“÷y0PMGF/±?Ó›,-ÛÅèm8ç(V(I~a?ð€Ú¡d /|å „ , ¿Èã)¤ÕA•6´,,95,IãJäXìH9^9q,N1 rb<6°’“49¤Q–—‡OBèö€Äao‰œ_Jú†S“À:Ú0p®Â¡‰3ÒpÌWÒwZ˜Ö1ÐN- +Ä;z‘8Ñ)Rð̾ÓÜ'¨^'ÚiàxÉ;á ôÂäBúNÙ-¢Ýh§«h«ôþBœÔ)%}§©I×í4p^_á ”N…äN“5ñoé20ØëDEÔm”Bqw|˜ zóoé.0,‘0ŠÐNty"w75™ÿ–î㈺ãb u@¸;¸Šììü›ÞVƒÒŽ–ô1ŠÐ4œ+#õüêäé+DÅ4¹ºá==E¥*’«9—ºðxö䪽^vI“¼è×»n½ÛþåêW´Â¤;juJ©šfÔìÉ‹íí®ÛÐ;{@ “ùt>¡gÐ&>y·^Ü,º9¿‰’R]…7î?ôkÊ6u_w»Ï]·¦×Q@Að Ïß/Öóþ3¿_ÀTS*ÜÑ€o¯x<ìY|µ]óh¨†Òí»·gÿbqÊ(Ú~»X §Øîk›c¤k FÏŸ¾‚wzõ³)Îue;Wbdª€M¦¬-Õ bŸÝv¿ÜÅ¡¦Ó æ‹vö1 FöÊ ÿ|òèÿ¸4%áN)Bh«ŽŸº,ÎÄÙz»k—Ëv·èy:J$ÔɦH þÛ®ägÊìJg«ÛMç·%7V­ßO®7ØeÂâÄF㊸:k2 * v@ÿî¶]]·ô§4‰ƒ*ïwû…Ò9jv'Úœí´Bðá´žßu›»E÷™Ú‘ZYtèo¢Z.>˜§©é±6« ç)2KS¦‡º=·SVNJI¶ûÛÛ~ã7cgd&5ÆÈLâ†ønó7îXô,òž>rŠkþ²é‘¢­x +qú57ݶ_îã6†2E{o#˜àJˆd<¥¤lड़¹v¶é·~+€‡K¸Ý_¯;Ÿ™Ò &?Âv Ú¹b0Y¸æaål2øSχd\2¾dÞw¬n›¸ÒQÉ\òS¯.Ù¥ÿ¢Š)ïÀ?q –Øõ¹ß|¢·ü•žà˜¶ÓñÚûvŒòOsŸMó(“¼ìv²ßç&~îo©$Ô’p4EµR’Ê÷go/é%XUóö-b™?{d¨gåáDñíš|uKIYu*EÃî(%x¸æÄî‰V‡V:¿øûë‹ów¿T¸É•óØWköŨa²êYÊé²f©8” û‘tyþæÙÙ[’ eñ/êñí/à¨î'‡ÿáä×C¼ê7³˜æâˆ+þ+›Í`Qïzêù…îJ×?Â)_üa÷Ñ?Ã.n¿j·ñ(Ž3@8Æ~»~m‰ +ˆ·®Fþß ñ¦ýôv¸GÃy¿j½àã ½å¨ÿPñ¿í=Q7”#¥‘‹’=PKˆ)ãÛ~dz5ˆÿíuï4xQç1½Ï0‘ÔîB›4&¤í|Ž ~ë7 0i̾M‡·B… Ì/.G† «t¤ê=·KV·@Ô¤ÍX›7íLäŸÆZÑÃ%ùß½t²G|mCÚ}ñᣛ9B\îÚÙ'*šñ”¡<*¥­¾â=+Õœ$i+”–ÁHiÏMñœãC =7 …ÒŽ9t܃ ÞPt_ hvPBDzÄ4-hÈÅJ»d‘ˆŽ5Ã)wζÎhæ e¤Õ¿#fÒd›þÜŽZñÀI¡Ã|³ÝÏA°ôŽ*ùáº;ÅØxRëZ›nöÇÌ;åø?†qðÍXƒÃòŽ(-*§œŠ!95†?ñ% ‡r܇ 6-$LC·ˆ‘ g©r@d×cg{×.–ÿ²IkÝÝrÛ}þØm|`Ä…Ìã!*épíq å¡¯¼Ä]·ÛÎÇj^šGõ—(þ¡§Ã—y–ìÉòn;k×¼«Ç©>Þ_TiH »·>´<çg³·¾Þôþpˆ+i³ÛÛÛXš+&øŒ!Ô°~:uλ0>.»(à2vØÓ¿œFøÔبz)ED/iÓ-’¦~³j×3ö"\¥à˜Ô]l·ûPC@f†/×uÝ¢tè§Y®Æ õpsB=uV^ô«Ûv³Ø† ?\¢ÿ aÝërZÓ×}šá š¡ü—ýìSç눨ôÊÁ«¿¥¢Ws°NåÜv<ÄÈazNëz Ð(Î_t­¿#”›ÿæÅF·zq!U—8xÔ —‰v’FÅÄ7íïm]íwÜÈðC|÷ÓóØëQÿâ‚žä:©4*œáŽœ¥ÇM¶T–Ý]·ä§æxqT]âà¢Ó¨$vïÒÛ´\(ýWÞ½Ó4ªt½ß,ÂAñ¸‰8¨NM®V¢¥ŽùWfitIŽïÑFAoª×ˆñ?y±\Ä g\zåõ±®†FÄXìNøxppLj&£RÔå}JÁÍ!Œÿ_ètXiòÓÂQߪÆàìöëXx3õó‘톙zú +_¡ñ—5ø:>­ñgÁGpƒ{ùìÍóg nº~íf»äe?ÛÓòIIŽ¯• W%§UÚÐëw¤òß®Nþqò³‹†®endstream +endobj +1431 0 obj<>/XObject<<>>>>/Annots 276 0 R>>endobj +1432 0 obj<>stream +xÍ[ÛrÇ}×WìCª,W… ö‚½<¥d*²YÙŒHE~Ð €"lK dÿ}NwÏôœ¡KŒT%ñìÙ¹ôôezz–¿=ɳ1þæYSdeÍnžŒGc<ñ^}/O²ºêðïMVv£<€ëìü Á›l2ÕļɺnÔGð&ËËrÔÉl3ÌÛUƒŽËZ&[NÐ!&Ô:ÉDÃq! õM!ƒÍ[‘ÅYë¶(ð0v« u¸Ð“ŒÑm1•YXÂÂê ÎN*™þ¸U´­dÈ E–Zfë$cé¶DÄ;Éeñ½­:éjŒ5àƒF.Çâ”Y"£Û&Ç”kݶ¥‘N~¢ u¸¼j0ŸDZúS…ZC©aàl¥'N2Ž‹XUèd"ëj@ºU;‰\èFß’1º­*™­³â*“R 6¸Ši¨®9õÄ ®’8u•ØN9#h§bÑeµy+Hb.ϵ¡“&ÿX/ʯ 5 \+}Oœ#éÇ­ÌÆIÆ`1׎YÂ`¡o˜·Õ UÝ8)Ä€O(r:ƒÄD§ð 2K$c°¨ÄÚM£þ¥‹W)HCÎÆpŽ ´Uš,µ#(+ NH°O‹^)HÎFpŽ`Ð90´“ø2ÎR§Œ1J¬…X²:c(3±6YD û¶: +Òd—Åc+'Ë ãÑ„X`Q©šÕ%*Ò+AŒ¨ºrŽ ô™KŸNÚTóœ© M5pˆЇsÑéx,b8ÉlÙ˜‰% vÒ :f|“èëî=ëtË®Mf`À§9xCƒW^Ž L·ƒ©'’1XDÑ ±2!Y¼‘ é•à ²Q_N›U]WÕN©@(‚AY‰Se´‰æY"Mú² éH§jfeàL\ç¬]niˆ½¨ µ \[ÀŽKçÊdj¨1‘Öé˜Ò…RAê4p­(!qÚ®è(0àí"÷¬²ÄÄdt#N$c°rBMmÈƲ•¿P† \+9q’E5mè¤î§‘“´ sÕ7…dŒé`È–YÂ`¡, êmÅp +˜ˆØ›ZŠé–`0œÄ©áÄvèj'ÒŽ ƃ3D2‹Fq|“$a°˜%wÌX$édÙ}X[ö‚…BôkZœ„=LÉIÆè¶*¥[g­Û\V‘Œ£ê‰UÕ{[U5±„£ê‰UÕǶ¦êÄ2Žª'VMÁÛb³ ŠE ‚0ÚNÄ»‰%ŒEÆ2¶Ä2«¹zjË,½·% ¶–ü–Ú é㋠䶄EõrZN=3ÕËÞžXS}c©¼ºy® ©>p9¼ d,ª—-ŽXÂ`‘+bJ©-aQ½lçĆ‚ƬËl¡ å=3å–ö„Á"£g‰c‘s]dï™1X¤Pnb ƒÅ"CA‰% &Æ1« µ% ù¯¤©¯¶ƒ©OAR_à‚§:ÉXÔ'iOžX¦\,±êQ±gœbf ‹re¿¤¶„E¹’<%–±¨¯ßôqƒí$e'–0JƒvbƒE삼gÆ¢‚v ‘n·’ûvk@YwñÈÙñ>‘Œ±( aµiÊØ +Vá¬i›‹oǹ‚¤ÙÀåˆQГŒÑ-bÔ€% QëŸÚ‹Å”KëÜkè,c°Ø¬ ¬³&NaB3TIœÀI­æä$cG2b ƒ…gÁ$R[Â`‘Ìc‰%Œ kv•XÆ"ŽDkâèÙ5î˜ +’8³S¼jUézª7,–¼˜XÂTžÄ2 ?ƒ8>¬N ;Ô¤tõgŸP`Ìï"ˆÙ`‡ª¥&QëFIœê3q b&È$óÔN'‚ Ê ú³O$0f¦NÄ`H »,q Ê’ÉA4q ‚k¥N•¸1IDèIâÔ§áç^LÑŸe’êÑ1vŠ LRâžsÚ!Ž ^ðП½ÃÀXND‡ØË)]XžB\-É~â©eKO\‚à:qpç¾»xrüBrÊìâR½e<Éê¦Ê.æZ´ÇãÙÓ‹é»ëEÖ_f'ýj»Xm7ß^ü‚V°þ\Z‰“¡ÙQ!Ížž\Mo·‹µ¼-å ÐÉü)†ɳ¼ÆÔìÉÉz1Ý.Wïå1L·èš@|¿îïnµƒrÔ¡W{ýlÝ_/gèózTNb7/–× ¶(TdííÑþ@2™ãˆ0q%êQƒ•Àª¡!s®REâÍr5ï?êt!r——áù7ÝïÒBݤ Ëp >7Dî1q(Qñuýx¡at!+y‚Ã`Téç†h.Š'%ª]ùLg’ËG;_Î2y˜X9nƒÎÞMÕÊaÑ›îý6#jÙUhþвìéé·Ì÷¨“HÀöˆÌZõÇÒ½œ®æÓm¿Vß’ÂkE¼]÷—ѽPo¯Ú`Ç{F|°GQ”\zW˜òž07ý‡ÅÝf±-~W•a_B+ !6ÅÏu§ß;z¨îMýûÅV}÷veŒzç§ÏÃ3œQ 1ʃ­îÁ¦eºøb¨C b|üó™H…b~Y>j¸ Òðn†Òš¦¥ŠÏíg%h?;_ÌîÖi?Kâ|zón*òÂ…ÆÞq¹Ð¶Õu¤Ç|wË:]m×ýün¶]ö+i7^·ˆÇú!rÔ4ƒéïìO¯7A%²”"¤ÙU¿Q_“Ü?j${7Ý,æ"¢ä]Ò· —7í¡M6 +Š eóÑŽÏív‰´m}9i<ÄeWQP|ÊVT!#9 R]<Ý8¢àÀ !Ò#Ê~éÔ³paæ!ór¹^|œ^_«Ç¡\whuíYº(b'%³3q"þ¯$<=;ù‹Ú)ÜqWÈ6WÓµ%)($†­"›/Vº«#q#I=ü6ˆã®Ì2óþ‡êúŽà·ï×Óy ž(Í»ûyð„ÿv“Ã[ç@›AÞ.¤Þð5Û……%Ú.^¯–³~¾8Æi½YØ© +Çô¶{Ìle4‚¢Da´=ÈIœ­•Á¡òÞ\M-˜âl×DË Æó6^6#QQtOPT>“r7¾³õù›Hê&­B„%8ÊkdËCÉw67N”kdxvRÝ'Í@t\ÿáŒ}xgŒ«å:NgøªN)Ïé¿T¿¨wwMTݳÛÛÅj¾üÝN7øB©ixÔŽÿšÿqѬŸ|•cÚJŽyÖ¯·ÓwËëå6ˆÛ'Yl|µãŸ”w¢C÷üáìõÏÒ„Ž|ÜáãþÄ9BeàjH‡RœŸü$B hççê !TË&ØÝêXhz\qlô(jƒ+¾Q +õüÇSU ÎÇúûV-J"ðоvÒ²W‹ù¶ ä™êrÿX®îL;œx¿Zܼ[#@nNOEŸ¨[¶1…Ù7‰?ÿY^Ö20Ê–È„‡‚ídcÏ‚r¡èñE±qï¡RˆÛ^nDvœŸ|=;_üv‡²írª1´™ûNõj1µÉx®Ëž]…§¸™À Ã÷© §WÝ8íKŸ,-›AROû2$–á²°/£*ë…¬¬ß^Y±zpæ;9}q®Ñ—É^ï›]/cõ+ãeÍ/ªê~_ Êd8%ÛÍL‡‘ååt†c_¿¹’–14¯’;ŠÉÁòª} d;’k«7âB`(ÑO皘J°'ª’ )7ë}ãøY ßpˆ¡LQì ?ôU(ѳßÙt%ϧj¬ÌdyÙ¬_].ßßÙ±OîÆ1ýéüØV‹Oˆo¦k½V©§Ô—:+”7d0Ü׸Ug½·ñÅ‘×￾ÓJºÃ]ZØÔ²©Þxà+»ÔÙ½c»Ù¥.æç!ê2L7#~¶P÷6ÆãêžÇÕ/[|§¸»þfVÿ7ë¯É*-ÕÛ§«ÞNSSž~-½ýö¯²@R„Bà·ÓÆ^­ rë›ønÕ•€j‘4¦0¹GÇÅH÷lzé‹ +h£ÑFÃm­ tTâó€Aþ#æo/ÿ3³_™jës•­˜;U:µbÆà˜˜8ïaËÍæ.\Äpöññj¡n…ân²¦½ øöi ñ&ÝL~X¬7(ƒ¾ýVäà 6•)–fáø‚Òˉ¸…°Í¿ä>ôõž ö¢GU|±nã ŽÏøîÙ»mŽ¼àûâͼWÛ(EafW÷¢Íûp=½{ç- +Þñ¶%&÷Ðùz‰µ’.¥ìê÷I¸û\]÷–sà“¯î>öë_Cõg…öß^} vµò?¬øú•È6<›Â×ÃèS—·û&ù½—{lµ ¹o„ò[”+‡o Ã`<$²Y¼Þ¨ÇáÝÖsÁë)î3-¡ªèáèâäìøT¯pp¥ÑÔ±H°ÙNg¿ªÒÙ/×ý>äýíår¶î7ý¥ö+—¹ŽòòñëîÜßž/®[]Éïb|Ý~ÔÄÙËÐ~#ŠË*ú\?@ÀHûðít³mk|ã€zÐê½…” z€Z +~UFVýh¯ð÷£0vÊ%ð¹¢ÛÀ›Ë7ª>Î>)Äš_'OÎë»Þ‹òÉo6ì=˜“z.[÷ .wîY!ÏV.Fbìë/åÕA¾%VÆGyÍaNF.%BÈ=)í¼ÊRîóáO8ëžh¾¸œÞ]«Kâ·7Ò¶'W`ý¬W7@½Û¿É‰þŸþ¿KÍ”²©Õ=ñSù›nrüM§‡&l?|Å,‹å‘_„Æ¡’ç$’Kó`½¾AŸ/Ö–v©'Qس¤³„9Þêiª«WwÆïÕÉ”_àƒFû> +߀W9>‘Ã5nÖÏŸ½üîY†Ïº~Áù#{ÞÏînp¾Æ'avÏ\ŠûIÔnƼþa)½ýýâÉ?Ÿü¥Kðùendstream +endobj +1433 0 obj<>/XObject<<>>>>/Annots 309 0 R>>endobj +1434 0 obj<>stream +xÕZKsÛ6¾ûWð˜Ä$ÁG/;iÒ:ÓÆšÞe‰Ž•êáJ”;ý÷ýv,–zÄ™øQ;™qòñ#ûÂbúï3“døk’:OŠ*™.ϲ4Ãùñé#=Iª²ÅÏeR´©ñ`‘\ž)¸L¬M+Å)¸Lš,-§à2ió´Pœ‚ËÄ&­©1غLsÅ©ZØ´ª¶@ª*ˆ)MÚú‰SBó’ì`)Dj ÖVäÈ*L +µÃ± +ƒmI35Váe’›v ”-Iÿ<‡@ø e@:)±¥!ç +éf-† â@Ï™¬¡BjLb9.‘U¬-ÈÒÈ* [2v°°ÛVˆ–Œ¤&p&£FRcL +sÍ*ìTŒ…Jƒmd’’¬0)\Âù‘Õ,²ÐjVa°6CJ¨± +ƒ­ì€u®hHµà +Ñžk[, +œ‚0ÆXRHHÉlŒ°nʪËÂ2ˆSzùX%‘S¦4IÁ”JŠU˜ª)2©Æ`‘ÍZ2ç¯Åº’Äw@ò7p&g•øM"5†Ø’S)² +ƒm99„u“–E\4–AœÔs5®Rcˆ­-E-² +;K‘¿‘åuì0©D¥E± +S†”¿2Vc°¨z^ªÙÖ×}Ív€¬áš8.Ò‘Sú¸µÈRؽ +ƒ-r™ƒÅ²·¡¤Ô^Ë€8·Ä=G¹ +3…äì,ÛŒÃÍo: Çé9¡¡é#é„Ö5‡Ó e…zóš¤NAÚ Ô‘tB+*Å~é– ¢PÏA5(#œ‚šSŽEÒ µ†Cå4e…zΠDAU!5&]-‰¬ÂnÒÁX(0ØŠÒEU,Ôoë.êè’ATØsmI Çs ˆÐ®Ä9X2 a +±T„"§à2©+¬È)Hˆ3PÁb3ÐCÙŠ¢mb,+çÒ5’n`CöIP0ˆ=GÙƒ¦JH7°¦’2ˆ=‡¢%Eä"3¤ h×abf±‡ERcråmd¹à%eïˆb=çÅ0"Rc+¬‹Ú@kÄ©Ç Šõœ#¤Æ"VX'y݉eÅz΋Rc+¬ ¿QLœXQ¬ç¼!5±Â²Ø¬„Ì8'&’±‘ubÑRJÈrQ¬ç¼!5±Â:±•kÎØ 9ƒ(Ös^Œ‹XaXîÁ¼osQ¬ç¼!5±Â:±¨2ú'gÀb#¤Tk"©1ØÜ"E#ëÄæ¾é`9 ¢XÏy1Bj,b…åEŸ×Vpuw€Ä*ˆÊF«È)è,™,…Ò”ƒ…ê­b/Ægo?àA–Œ¯AbÉؤªËd<ãcOߌ'W‹.Y_'ïÖ«¾[õÛÆ_0ÊÂi4jä‡röæÝÍä¶ï6ôUjȃÙ4¾)=ÃÖžü²þ‡žàU‡GýšßÁyÀ~Üt½¼/:/¯”ç—ç¿]œÓS43iÝÛéóýÁ‰‡fû¡?`÷²pG\Å0Ø°ÉyîM9ŸN»-{¯(Ò6 /'Ë« Û‡І§Ûõn3uf#5+ñÆŒŸaK¶¦ñïæ<®52üÝŸ—$Mo£:‡à }ã12ôÚssB‘¥yˆò¯«~³ží¦ý|½"%ÑWî uüšè CÙ9Œ`Î1Ôê×¢Ã*ƒI'B+ù\d!X[ŠvºÞ|&ËË:-Z/ãkú= +Œ4ÕÐFgá^–ÎWAÁ6ä^é7H3¶†s7K¼ár×eºEúÕ™KÔÍößÕ”S¾¯Ã\“ÕŒž¡+ªŠÒ§ùuËÏà÷°vÅ/,Ä” å9±¡Šá*¾Øͳà“æÝŠQ…;柋ùj²™wθShë'_‹'| äNsh`94ð²Ÿlzo •´Æë|ÔÀíòŠ#…M,¾x,z«ð"ɧ®GÚ¦,9²kxßîÃÚtÒøëÍzIr°]IÉùªëgét½º& +wuýŒ;Q´ ™µoÚaÝ:_`_^Múù]÷#©‹ÃRò1Ùê c͆¥<ïéÕ&m*YšœÌè*âÍÛO­–êlÒ-]mÇÝ纘ÔSÍ5ipÒñëÝHÅ9¯º‘OÝíZÒ—r±Ó¸Ø}f“é,ÞøíY'Ø3ÿWUÎfic…\úK<ünžÅû£:kéõ»ùœlúy|öÇÙ!%”Ðendstream +endobj +1435 0 obj<>/XObject<<>>>>>>endobj +1436 0 obj<>stream x…ŽA‚0 …ïûï¨g;æ˜Gˆz3Ѹ?@ÆH$"ÁÿoN^LÓ¤é{ïk_ŠARŒÜ sˆ"MpÙA[XŸËl¤Ç„f ió+”Aí/GBh„årPC8$›¸yײÀmÚ'œ†øîR?UÓsè·¡ýFÙ.Ñ]Æ‚õš ©ê‹ójqÖéùÀ?®õ¤½·òxyÆœƒº«•ã;Òendstream endobj -1416 0 obj<>/XObject<<>>>>/Annots 345 0 R>>endobj -1417 0 obj<>stream -x}YÉrÉÝû+2Ø<eÕ ©7ïÙ¸¡ÝalƒD¸lJ¥”\PƒºŒÿ¾Ï¹)U^˼"¬8:yoÞ93Åß'¡á_h¦‘‰'&+OFÁß >8 Ã8˜˜ñ|ŒLi¢pÌö¨0 ®7ãY„ïJ3ɚ͂xàÂiB9Y9ÈÅ”.M8¹R9ªI&‰pÉ8ˆö€”‚¥™Ï‚Ps —ŽGbË„f: *=„sÊÉBr -–6yRc°Ñ|؃¢ÓüP² -ƒMƒ¹bž±Iâ)‚ 2“$Š¦â1-ö¬Â`çs̳ -#a«Ö춈@ñ„·‚d[…Á"¡0q`h" GB -Q…ÁÆÆß³ -ƒÇÜÖ³ -ƒ%ÜÖ³ -ßH²>°ƒMBzëY…Á¢¨´UƒK0Yq7F‘IŠ{ywv<…ÉŠU¡ÂÐ_¢Id‹mÍ* £Ðo¡b5¦» *Îkv&#^lG—¡X2ùÀ:=«0sr[Ï*LvÎmë1MžÐÝÕ˜&ÏPñŠU,Ä3Y…K‡3d×Ëj v1 þƒ±±«pi’QŒ˜yVc°qøLÖ…yºÖ Y®± ³ÂUÓdÏ* v°ÎDÏ*<˜ìYgòAÖ™èY…™>†Œ-73ÜWc°Éˆ&{Va°ðXçÐhìh$ RXç€g†C˜Øv`Eq4¤ ÂQ‚]rŠ=†(’™f¦â -NÉG{ VºN± -ƒ³ç«°‹ãX±Œãƒ•ãÍËj v2¬(Ì(óðS² -ƒÅµ@{¤1Z(a̼¬Æž“g‘ta–c îbÞc[Af…Á¢‘Ï*ÌP±ë=+CŒ£€g.œ'€z„ æh¨H¹)KË‹:{q>H¹T -¢^GbJ.bȳ qrÀÔ+»zVa:Ñ&Ï*ŒøËE̳nÛˆþCtÄ j$H¶U˜ÛŽèŽg†bôfb [¹¦á”€M‚D±ÂPó„ñ¬í¯åÒð‘ !N!*A‚(½ì'qÎHqeœ£Iˆ< £ÅUdOAb‘°(a «0Ø)]U,‡Eè*ªh¨WAœàcô˜[HNAyF$š5JGâH‘t°4¸ÏÖS†¢àä@j ÷]-ª1ä•OÉ* V:F± -ŠÌ³®è‹HM•fÁŽçÏlÖ,^T±–U±ÇõXk–>#÷Ã1‚jÀà+ˆ òpöœ‚HŒX;È)ÈóÑã5+G§b;á P¬ÂptÄ+¨g5fYÅŠU,ìGb“¥ŸØÛÒ¨:‚¤ð†Q¸+¡bVDçú™&€‚Ba¶KCÉÈ8èÜCúÉ5žóœœIžó^ Z¡—Sò"6ȉ)è -y"aÀ%Ú®WB±žó¦0>žóÐ…{ê9FÁ¡^çŠóQZÎCÔ*ñj?9CøZlQ^H¡â<‡ bÏIXÆûg˜<H†Fž“íðÒu³7Dq í¢B%†.ßÝX(œ‡4E~Ú8±¦™Ò)Ûáž"Ó\^;D¥‡P)½á9iŠœ•TâL 8<Ípœ‡äè¹â3qâ"r»Xžœ½™å?rM¦3³\Ëo[ø&;=_µ]“fÝëå7¬Cc†nÝ[(ˆ°òô:m;óe·N;ëÖ ïeÍ©ùÍÜÛµù3­0ÊÉÌ[9œ!µ|È[³ªëÉꢰY—ו©7æÛûå-¾^¯!ÞÕf‘–«Ô¬ë¬/mÕ¥nÙÛ˜îÁš'›6m`®L×tÝî·³³ÇÇÇ ¥§AÝlÏ°«XôêR»ýÊìÒ­ Ì]aÓÖšÖBC/±‡ýõцßlÓ<ýoPijød‹Ò6þ»àWi9ê¬sÔ@Žh!°yø7_Ì[Ù&-Ì]¿*òÌ\çˆìúzúáîúëë! Q`Αãݳ‹¤ -QÃVy•=Óþ˜w—ü¶î›ÌzKæA'“2ij®Þ9–JÅ¢â™WQÞ´‰ñ~ßöl»+‚îçAâP£ï,úACiòÙ{ÞCýóJÊJNW…¥_ïêªCHÚŸuÊÁ‚«`ˆW^µŠS"LÍøUy04 Ìõ#KùÊ­2)²¼´¨³ÅùÇ‹ó—ë!q»bIæÕVïÕJúâó. ¹›|Û7ÿQŒ -GOÈ>±ÙÚ4:óGšÎïÊn–ò}cngÑc»,¥ü¹Q“ÀÜs<\mа©5—uõŸÎÜ×Í÷ÿŠ:ˆÕ§>Ͼ›wMݶfѯ*Û™‹¦~léÏÙþ{ -o›ºßyjÛçk©õçê®Ë¼Íú–Ãâ8d¸Uæ zÈuŠyõÙ–ugÍyUa^d– I1³^F; -±_ˆŠ©Ö,žªìHZ¥ -ïÚAøþêfq”<¾aumnn—¦‡ueíf¬›Ž_OCtû®©»“œ£ëã‚ùY#F˜—‚lÇa 7ðÄ|¶m]ô2ÕoL—pn5›º)ÝXÂy“®0¹X‡/OU×Ôë^”#GðÞ_îê¦K1²oÛÖœ¯j ‹“!ï¤ÕUdð!ª‘Å_®viÛ>®Ñ;e‰¦CŸ­D ï -4¢éì0NíŸõ çòâ…AˆÃõåùÝ‹ï§ùø´øtý‚˜a²^™¿>^›]ÑosWGøÿ©aŒ\aÜ,ŸvRHÿ6n\Ú™ ¶7zÙÅÁö‡-0Ìõ}ƒ·¦ª;丮y~}}8éFvʃýf™ðÜA-DßÍ]“—)&Ê¥ˆÊÀlxðKÆuq¥ƒ‹mìß}Þæ(ÿÏ6]£ÛŽBs‘fÒx.*¸k>sœ`ζ_ZðLay×XÔZü£«`LÃCø<ËЉ¼ÃXþ³vS÷Ì1Â2'þ—¡ApX;h»¦Æ¹Q:-¿7MÝ7žAåSÛÙÒÜÕ8«rN^ì ÑM^¼h(\å÷s­†£y°ÅNîWfk;™kgïñ “ì-K7|9Âô/á5r–à&ˆ³-¢¿/O>ü¬µÐMendstream -endobj -1418 0 obj<>/XObject<<>>>>/Annots 397 0 R>>endobj -1419 0 obj<>stream -xš[o#Ç…ßõ+ú)p–Ë!‡·A Ýµc{Ë®ç- È‘v¼$G­Õ¿ÏWÕœî3’aä=:¬êºwÍP¿^aÌEXLÂt6û‹ñhÌoÒOÿ¼X.G³0_ÎGã°Åd>ZœÑ.|¾P ;ŸYÁ°‹Õhª²‚÷a2™ XÅ°³rTŠl4j1-1j2¶ÿÏ™QŠ]&6cSìÇfYÁ°sw>³‚÷a:ö`$V1léÁȬ`ØÙŒ€f›Ã.È$[–æÂl5šãî|aÞ:0oî!-„¸«¹%2É $7 s©¶XXn2+v6Ê -†]Év¯Á¸[^“fÅ–œÂÂYÁ–êTYÁ°«ÉL€'å@³bØÅl`³â}(‹éÀæX‹åœ_ân9#IsGî®`Ø¥g=±Qt:å´(Š?ŽL4’s²(-{Ž\¯`Xª‰¼gV0,mH3+˜@ ³8±Š-c«¶Ì -¶ ­R »[³¬à˜µ*ºKKYK[ýa”#wW0léM›YÁ1(Î,Áèq Fe6Î(Ç°«Uú¬Ÿ+‡¦‹UŠÍ]³=kV »ZZŠÒ¹Š FQŒVÂ*¶P eÃΖÖI³r¶šb*ÖźÉv2ÃdaÃN'¦°‚aËÅ K3®TV°±6ƒE³`BEEª¬bK„@fYŸ3JËÚo17Iæ­À}X®è Ì d6ڼ͜@Œ¥€çB*†YãgQÅ°«r sÃÈö†§Õu乌hi- ¬`S<&é -¶M-I³bX4‰Ì -†]ÚhÌl4™û×ÇP4Ñ‘˜Ü³ÑÄÌ -N&g6š|–=›˜XÅÉäÌF“{YÆ*î&6šÌÕ⣄æÁ[Gn²`ŒšÛõ”Ù(:±>‡,f -G.*vº´eV0³” 8±Q1SÛo‰‰Ÿê(Ú”±)^X]dV0ìÒ.EaslaKVfã±4”œOÑ™#?V°;±@eV0ì|bÇfV°µ°~lÉϸ4Ú,Š(z›1¢ÜSeÃz‘dÙ¨xQÆÔsudŠ}”dÔ’ç½qÏ£ s> -z9ïýÌ Ä¢[†L*†%`ce𥲂ÍO+&Ñ,˜¬NmÓÌlŒB¹<“m‡¥£ÞŒÍ(K‚°‚a陬`3jbîfÍ‚­ÔJqfòäàn’U Ë­KæšÚÚűÞ¥£è•oÄ°¾2 -+v9¥ˆ…̱c»*3«Öw›ÌF£x.‰ ˜“Ò‘Udl&Ûu'¬`Ø© \aÃ2ˆ²‚aiœÏç -Ædæ‹Z¥6æ:É*†]ØŠhvH„lj²3QŽÌ[˜T,ͤDzÛMW&q~ʈÀý)£ç -6çUȤbÔÎDZXÁ‹¡°‚-V"™U ˉžë‰.­¸QÌ£¤#³8’¾˜«¶PLŬg ;·¶V0ìÂ:OXÁ°l‹Sec1“ÙÉí§«–W*+–q¦6G‡XSb»ŽÄ¡žeŸÇ¨Ì -6‡¬¥… KBF–ŒQS{ŽÉ¬bXvGJ²Ša)yRŸYÁ¬¿,ÿznt—_úåïë¯}déqŒëpĘLY#šYÁ浂°‚1Š&(„Ulîzþ’fÅ° ʬ`XJqÀ -ŽO -s‘µ'…ÃfµY1,«éMç*湖ň%V1,7CŽï&øð$¾’(X (9GFÆÐ;Þ`cÛΦŽ¼äe69eV0,]Á©™L¤èzò—XÅ°e1Ь–ë—üeYÁ°ÌF -2³‚-vdV1,o)Ô#Å°ÌõH1QÛ<Ïš[lýÈl ó8¿>@±# 3q\zëXÛ3z&gàÉËS3¥Ša©Í©²‚a™P3eEºo.¬bXê­·ÐŒRlù)šÃÒ‹z®bbì7ž±w=acRz~µÀVƱŽ¼›»V -†å’È -6‡l™Ê²Šay‡Éé\ŘÌ㻞«8:D’¬9ØŸË5¯šÃ"Õ{oþ*¦¤½&cc¨ØÎâóÏÂ;òPñÞ¯Ç#æ/³‚-……*³‚ay‘JedV0¡ŠÁH¬bX–ð•È*¶$Ø\ΚÃòB­R KCªtn ïc,Ö‰#©›ž¥Ýp(³‚­n¼áóX_xA:Å=eV°ÅÑË5³‚ñ‡IKr«8Æ‚l&6E ûžÀ5@(¹Q‚-¹Þº™ »(lddV0Çúsmf›Q¶Ed6å»6ŠýeêÄQ4ÊvΈ-ö–ZXÁ°þ ¬`ŽåÅ30iV ‹{ÔTfÃR5z®bÚ‡’¬bXnrXw·à™ÓÛÏÝ(»›XwOXÁ½»Âº»½lt/³Š{w…uw“,Û+*Úl4«&‚ÍÝeV1,;ÜRXjÈV÷Ûˆ#rw™=Æ¡©í9 -†õ— -†õ‡xaã.‰Én…;$Ø‚‘­pV0,Kn©²‚-»¶_fÍ1»tC|ʵ‡땸âǯÒ"6‡liV0¬wTf£bÒ[×V|kÑxû<‰÷8z‹Å‰¢<ÂÅuÙÝqä)ð÷EÏ"•YÁd»…̱ŒŒH²1óžC^ÇXãÆÛ©yž´Ïœ@ RA_fR±d£LXÁ18ãHÖÏÙÎdV0²´š¥–rD8Ë -¶Zb¡ô ,D‘£äSÜ_ZMøbÄFºGÉž0"ÄW¾—ÅÞDºVÿÆ Îo^&çû ç›…’/ $Ššw¿­•Œ²Gõ34öö&sÂ1 ù¶Å”$•ìPÑ; Œ£Ü9NÂ7›þoc22Ïìí{¢š¾÷ÉÉï_E¥@˽½­L:Âù;“ÌeÇ´fÿîÏÇ.lý‰ËœóÖ\8Ï ófúnjÀ<u}ñòJ«×·ö¥ü|¹×[ÿB~®7ßÑb£ð¦Ù¯ëCxݺ¶Ù…Û¦ ?ׇmóp «o/ß}ÿ×ë_.^ŒÃ OÙõ¡BÞ]^½ÿßëï¯?}x;ê¾uáoIìýõS¥ Ÿ×û›µ«â/’®ù(üØ<„® —›.¬a^­7_O÷Oìª6`ã:|<µÕî1jëMÞUÛóÇMÿP}1 -Ûª­~=ÕǺ«Â§j½­wöAqi>šŒü໶9¶O=fdÂÏ_Ö]øõ´ÞÕ·ue†ãf6‡Ð}©Â¡êšöë?žRŽÂëõálüMõGÎ>I ?¾yíŠ4\ò1nÛ&\…cÕ¶>ë}Õ h £3ë!¾|ó9lcÖ÷Õþ¦jŸÆm1"nW‡c·Þ툖{å1l õ= Zß«”7ÕM½>< ›èŸ”ÿTm\wO"Åü&RÍþ¾ÞUÑîg ”Ÿ«·›S^VÝæå×öf6Ú4‡Ûg&Z¯ÛjMú-=Ÿ:ÒµÞlȶ®ÑeÂuuì¢îcÕþƇ‰òéþ™fâjŸ´=ÔÝ—pÜßlvuõ{Jé´÷MWMÇ Í „7G,ÿ÷×eˆ8ùúÇIb‰…5õÁNÅr.I7%êdR<1šG‡tàa›zv2æ/u¢¼›(ÝÁ>jåÿê#äÇMÕYüº/œz¬6§¶îÃßù§E*V+Ã&5ùÕÕÕ(|¸ïêæ°ÞþÃm}wj׆Í6“åêÐUwÆâÕ»ÏɾsScœÓ4 -Ë»ê°õA#0F‰þzoýlv';:Γ{æIøéP{ù¶>œ¾wçý?Æ—n³4t:Ò k&ÓsK±ßS=PDÙÚ¼»i™®æàíé°1c˜'äâK…Ûê~×<ºï†ú7‚ߘW“èÉ<Ém -ËàPÊ_ÌK k<#ƒ“ûÜœ»Î;üXUû]u<¯sbbÚGÐ1Ü›FáŒû­™á$üôþê¿ácÕîë£}(¼ª»xvÙ0ì.7; U~½­+{¢‹4ÿ§®,€ uxgÀ¸OGX†ì×Öô(OŽoëõ®¹{ZåØH‘œo£ßPnmü$)LîGìñ˺­ž„qª¤7ËE›‡CÕ¿Ô>6tÂðY -aøÙ6lë¶ÚtMûÄ…ç§X6›m}ûh®Åsþ´,i²öj×^t±•,:”åÕnσh‡å~}üÊ´oédbV%ëxÁøû3úÜÊu×µõ ƒ7ì×÷÷ÿ¼JÈ+©÷é`Î}¼|縥 ¢è6  l˜¯-7Ó#šÜDÛ°>áÅ¡«7¿;Tx'…æóŒ¥^Ðû4¬<5±ÓÈ9—Ï4ªç¼`¯À¼Þ\?×& -@ºƒSžw—W¼*Öá]½i›csÛ ýÁï»ÇcWíC×V•-©¥=ÀkšxÁ¶§8?žÓ,léY‹äçÓý}ÓúM7P3jh¶mÔãjÔSÖôœ”Ýá'8éš"ºÚßÛyÇpÝ4;®Ë§1æ¸Åx}whŽõïÌX1ËÕ6¼mîl&rÏþb1^ÙçUgÉ-—%ñ -1µS¾¿¾ø÷Åÿ$ž¼uendstream -endobj -1420 0 obj<>/XObject<<>>>>/Annots 449 0 R>>endobj -1421 0 obj<>stream -x}Y]sÛÆ}÷¯ÀCgÚû`†ßŽS'ž&¶ëº¯”DÇl$Q—¤l÷þú{\ÐR;Irtg,X©ÿ= ÈÇe!E)-7'¾çã“éÛÏ'Eìù”æ)þÜP^> 5Ý dâC! )ĤÅ`Ów¬Á -ýÀ+Œ­îš^ÊÂAæ%” -aƒÙ§ « k0Ø<÷bêpœâC± aƒÁ¦©—QêXƒáq$©˜XŽ"/á”Ãäò$ùá]…Äd\pNýT’ì)`0! #‰e"-fÙbfj1Ø<ð‚¹°OIi‚!\ Hò`0LAéZa  k+yHr_¬B‚ŒðÈf‰‘®Ö`ö8…s†5érÄãXÝ6Í4ýQ̦‚t[‡Y8D:VM®sê± ãñÈfWâXƒ¹ˆSöibU8ö‡Û‘q°‚D8tÛÆ|<†5˜Ùbnk0Ø,ÃÁ[ƒÙ©œ£öU§°¹Ü,uBqjdÕ ÇŒm¥'$Ž5l!á9Ö`v*Áv¶ƒÍøâ9V]b-)H"‚ŒË#«.:ÖàÉeǪˣ­ºèXƒ'—'vpy° Ñq~«.£©I7ˆB¾@‚´¦†SiÄÑ:Ö`°¸8>ÇÌÉ-p¬ÁìrÌ©šX‹ÁFÙLY\Ž! ×€ ]‘ºì0»Ì½Ï°³Ë¬aXƒ±mÍl-‹Þ˜Û¢`˜ÅÊXX½ÃØm N9Ö`°8ÌÔ²ó¶|ÎV·ETrI"qBæÂaç ›N¬tó8æN½¡‚œ¶4†˜bˆFVŠ¬Á (ÇêéD‰”ŒáX˜ Ó,`aÇÌÇÎ=ß±*rK„©Å‚4TÞP1 ópr¬š¢¿Èô$‚4‡9œ÷#v¬Á` Ö0¬Á|8Ü,+ŽK>Œ5¼]ð®Bq$†´lʷÙª,fœüÉŸ"ËŸ*„!zʈ$RƒÁÊHp¦’¤(-†ƒKØT›*‰£–ä‡g$Ht fw}ìX5‡§WP°® 15¦˜i0X5 ÇÇUÊi¤¦«©oX5 †ç®rA‘ 5u˜M3öibÕÔHê  ãðÈâÆáT'VLÂÐ ùȉ©Á`¥á;VM1P´F¹]òxÉIwu¦I8cÕÝXß ²T1Yé5áÄJÿñ¡¼2‘[ì*Hv»Ê;رR†Ü›yrÜ°¥œ‡ˆee¥Ê:ÌÁäœ%Ç 6çÎéX 5Ÿ@ aˆŒ˜…CöibÕ49ºT1Ù$B©…Ž5Âh¡‰aEXÛ6HVä„'&Z<³’à ׃$MsBaÀPV -Éàþ)c[ºª"G"Z…œAβ¯¥„Ó1tã)3¬Á`ñ)±¬Áhwøb`YÍô;–l#ˆ}â"À¶#‹–V HXƒ!„3V…ñ5F_‚"$È,þFžk0âI%ý«Âx kõ‹° #<²*äXƒ!Œ¯r!%+‰­Á`åØ k0¢•w¯cÕ)¼;õû¿ªA"Œ3b>~P–/V¡ßSý7ÛI¡¡øäh|þš$€)Ù/Õ!„üÅ@ÀDáIz们qÄAø^Æïà!zQ”Î -£ Í•Û䤈Mt†sÛ ŠÑa¦]€ -ç ×]Ì÷oä>ÞŸ|¸H‘|ºâßÒ<£û•ü6àÓýò6íY6_•ðŽ]_®×%ïH%DÏ›íSý}ßÊ'‡>¤}­7u/ô±3%–ë}7ÄpŠŸB\¼åfÇ«-Ú浫·ß©ÞRWn%o÷nuàÑõKÕ¾ÔÕ+5O“É{ÇP‡}õºýn×´ýL×FŽg¤ÇÙ[¬« µU׬÷Ç2ŽÇ…-—mÓuÔíÛª?H&ÞÝU}ÏñìwTÒãåÕup½j½EÍâÉq$†×·¿}¾½~¸94CrÿÑìÓõ·³Ë+¶™ÕBâå]4í’“,SßТ¢þ¹¢MÙõÇÜ+<úVþ0X»j6%üû'Œ!ºjúŠÊE³ïù ÊÕòT®VHqw¤Lñ†Åñ~Û¯ûz·®pZðå©\+g…ÀùêËåGF\ÜÑ×d­+ß-„¤½FRÔË+êToJv…¢4³<âçÙ©|)ëµøS­»êõ¹j+IþÌØç¶A=lÊÝŽóùåúñþúýÁâ„î¸þi‡4í¦Ü.‘Ž®Û ï&¾a›]ÙÖ]³=(D¼S Ö,T=5;.ë#KÊmU®¨«ÿ'NÛËéÀ§ÿFo¸æ‡ž¢Ì¿6ßi]½TëƒbÃÃxPnË×C[dã±­Q#GYÎÂMë|]WÛÆßԆؿ>— S¿ß"Ûâßì< qÞVh^8 -=´u½ü›.êc儧%|F³E§¢Ÿ‹·ƒˆ12Ü‚«{ŠßGŸšÜ‚Ð÷ýÊÅžµE¼Qp±—û–ý’R`ë9V¼+ìwa]]ŠÙœ@n«ÕLá¯õvÿ°Y´˜›ýéå%oòá"†<¾Dûy„A/ãûîìÛÇ3ž9á4èS³ÜoPäÓ= ðë*/?Íü‚ÇýÙ¢ëÛr)0Ƽyã-€ûõþä÷“ÿT¶…Iendstream -endobj -1422 0 obj<>/XObject<<>>>>/Annots 474 0 R>>endobj -1423 0 obj<>stream -xmWËrÛF¼ó+æfç À.^§”$GŽ®Ø&+Î!  Ê•¿OÏ,Š.U¡ÔêíÙ™žÝôï&¢?e1™”ªn!þ²>¾}Ü6)ÍS<;Š"'ÔÒvc‹ §4‹ñì({Ì)a™"5gç¬Â`¤Z«0Ø< "ź|“Ö1¥‚8'Yž±NjS”2J8'A"U˜'Q¬“Þ ¤É8%A"Uls`Ï*ÜQŠ¥+ëÇh‰,H^Ø”‹NWÖIÃTšsÊI’.lq#=«02.2>žUÇÒÚ•Õ˜Ù‚OÌÊʉI -îhG™‰pN -â4Y,ñœ‚H(Ža´'5fƒ ìYñ!A¯¥­qʤ ñAa'µšE¨³ÑŠD«0*Å •Vc°&â”×}5‹#(Ö¥œfî8ÙS$Û*Ì)§0X± -ƒÍsNÙkææX´Ý³ƒÅ>:²Æ`)¯‘5‹qYᎠ¦A¤´®Ü„' R6ÒyAR®Â\nÈ=«0ØBR^Yuð|ŠŒœA.°Ç`­8åY…Áf–}ô¬Â¼-ŸgÅ*Ì.KÊ«Ö]Œ8¾EÊ. -àœDXÜ,œO²AIÄ™€LøÊ:$J!a¬›@<’AK© f)O ÏŠK'CìÇ…ˆÈ!‘*ÌR~xÖIa†7Ø -ZvÉaHS~?xÖI1hdP›>XANê1ïÊ*Vaf ÎØk K3Í*ŒÞ`ІŠuIIë!ÅMÉ -⤤qÖ$b1†-„˜SÂ0äjVRc°–¦gÝžib¿´Õ -⸎ sg0 ­¤)gaijÊ!OÊ[{âÔ$d1©1gÄ“F± -ƒÅ˜ÓÚÛÝæú>EHÚ=ò—Cšg´ÛËWCH»ê=NmÐͧ~ÛýØ\á»â -_ 1–¼GU´-»‡’Ê~OÃü\t÷é~KUÛÔý<±àÍú( ÏeÕôó0=/Ë~çuáYXþkÓŤM@ß›~?üœèqéû0¾<Ãñ ;^‡²~í»"¹~Wä—ñPß/ñÅ´­ÇצªéKY½PÌëÏëÆþ?i¨ºCÓÖ´½ù|{à Ïê5꽩ªzšNFMÃqDàjØ×ôÚ”t÷÷VÂëœáî¢jú'‚­4‰ËN<‰pœþë+ñýq>¼­ïá€nM»_Ü6}96õ¥A&€AÛ¹çeéÔ=ì%p_.kÇòoõapëoO—]¶\õ§~‡ý±š›¡¿¨Ðr…ë¾Ë–šþqx[€å>ÔÇ'jë׺•M´Gš²G=öQã0þb ŸÛy.«g©m ’Æcß38Œwårß4@×çêùdÕY;n·6Kª—¶™fŽñfÙ/ê×Écâ ±i:v¶ç" |‹b§zr7è\)ÝjÚ–žËW© -çþ¡­'¹D×÷ùécˆ„¹!ó0ÁU•óI_ÆáG]Íôa¨Žnh¹v'‹ŸWYXðú›‡iËJŠ³øÊÉs‹ÿ,@$\î»Í×Íÿ«Ëaendstream -endobj -1424 0 obj<>/XObject<<>>>>>>endobj -1425 0 obj<>stream +1437 0 obj<>/XObject<<>>>>/Annots 352 0 R>>endobj +1438 0 obj<>stream +x}YÉrÛH½ë+2|9‚°réËŒdÝêÐf“ÍÁ,R°°°±XÖßÏË,•"=Žüø*³r¯*êï“€|ü hR4¡¬<ñ=ŸŒ?¾~> ‚È›P2Ÿx>•So¶G-x=%³Ÿ•4xñ05›yÑÈÓ˜ådå(±tIAðJA̱šx '^¸L)XÒ|æš‹yiâ‹-6ÓQé 윳œ,dNAØ°MŽÔl8÷`QÙ~(Y…ÁΦÞ\±OBq4EpAF “‚D±Â¬8a‹«0ØùœæX…‘0„Uk¶Û†1D ŠxÂ[A²­Â`‘P˜8²V4¾‚DTa°Ñ„ãïX…Á&oëX…ÁÎbÞÖ± +ßP²>²ƒöÖ± +ƒEQi«4;—`Œ²ân„"“÷,rîŽl2…ÉŠU¡ÂÐ_¢Id‹mcÍ* £Ðob5fwcTœÓlMF¼¸m†"AÊäµ&:VaÎAÀÛ:Vafç¼­bf“'ìîÈjÌ&ÏPñŠU,ÄY…KŠ‚²ëd5›„œ„q_Á豫pI±!fŽÕl¼‘µaž¶u.×H„Ya„*ŒØdÇ* 6™p0«0‡9ò¦šU˜Ãœ°É£,J‘KfÒØÓˆ$€mRjý€ÕŽ¤Æ`# ŠU,JW+Ö˜ æ9¥dfƒ#Ô¸¯Æ`'<ö«0gžÇj 6âYêX›9+Ø¡9“‚8–ŒÂ}[s¼"A¶G†h0çH9VaVÌ3[± +ƒÅðD>œ¬Âð6ä¹ïXÁb-â8ÊZ“Qü¶­ÅDAÊäµ&:VáÑdÇZ“Yk¢cæôqȸåfÄûj 6öÙdÇ*  #kòÛ@¾8$H94°ÖÇ* ‡0=°íÈŠâpJ~Œ]-²Š†(’™ffÅœ’÷¬tb;çžW¬Â6Ž‰b9Ž+Ç›“Õìd6Z!9P˜£Ì‡Ÿ’U,®Ú#ÑB1ÇÌÉjÌÃsò&’6ÌrŒÁ]Ì{l+H¬0Xô1’àX…9TÜõŽ•!Æ£€Ï\8NëU‚˜£"5æM¹´œ¨µçƒ4M¥ ÖkIL‰á"†< gÐ!f½²«cfgB¶É± +#þrs¬Ý6dÿ!êó5$Û*ÌÛúìŽc†bôf­b [¹¦á”€M‚D±ÂPñ ãX+êï¯åÒð¡ 1N*A‚(½l‘#qÎHqeœ£I9F‹«Èž‚Ä"…aQÌP¬Â`§ìªbyè°»Šƒ*ÜÖ« Nð=f2§ <#b͉HÛk7 Ÿ‰¾xøÃœó¢X…Á¢Â`“U,î0id%ô¬ÐF—§E#´Ô€!Š.™jVa°2µ¬UŒz²™ánäj³™ PS†(z ;Va°s–r¬(žï¢G€Í)«¸)Ÿ“#'-ŽÉÄ)“––ÿ³”C%á±4¡‘qf ¾£‡‡„SÜ”oÒ£JÙ5nCÇ98ôíÈÙ6¥7ur +‚KæÚNÁáy)9QÆxi(.D†«™sÌl-:„pñgd‚k¸Ù†ŽRœôé(¦ 8¼'•JÁA$R:„k¨ž©ãäpq%Œû)ÏžÀqR\Éþ!1|Á@ŠËA˜‚+&¾8ÛOjëø• ÀbBátuï^ƒFǧå&\›Žs»Ù“œŠœƒp×5LÚSêgïÀ].OÎ?áÈôi¹Á×/“錖kùÖŸd§«¶kÒ¬{¿üuh¹À®;ƒ‚+OoÒ¶£o»uÚ»óKÖœÒôhÖôWZ¡˜óéLŽ H-Ÿò–VuýLøRV…ɺ¼®¨ÞП÷Ë{|¼^C¼«i‘–«”ÖuÖ—¦êR»ì§i¨{2ôjÒ¦õ蚺æ•›ªí*í(-Šý¾ræ`ßTÖ7 ô| UßQ[—¦ËKÓŠ21¦H›-”ÿ¨W¬U†v¦ia\X¦9ŒÈ+–ؾ¬á~c2($˜Ôî]èàßÁÖƒý¢dehS÷Õš`åS×íþ8?yyñZöÔ«›í9v‹Þ]i·ßÑ.Ý +“¶†Z ½Äö×þ0Móú¯Q%ÕðÉ¥iÜgÞïÒ2j¬sÔ@Žh!°yøÏwß賩L“ôЯŠ<£›q€]ßO??Ü|?$ôè9Þ½rv‘´C!*bØ*¯²¢ç´¿äÝ“À&¿­û&3΄yÔÉIãYWgEŽ„¥R±¨¸!ó*Ê›v#1ÞïÛžow…×ý$†ýødÐâÈ&ŸÂñ4Ö?Oi®ätUöëc]u¨Iû›N,¸öÆxåUÛ¡8%¬ßwŽ†ýY¿p)_ÛU”"ËKƒ:[\Ü^^¯‡ÄýŠK2¯¶²x¯ž¡¤ÿ Þ˜)›»É·}ó¿E¨pôTìó"n¶ö „Îü™æ…õ»¢W¤•Ø úyŸ3óÀ‹­Ž¬®*îo¨ÛWù/ÊŠ1;²/9Û4u‰Aqu¿ø@›Ç-~æÕü—üº[ʯðùÝ/ÎÃdºÌó<¥ü­Qy<\oа©¥«ºúGGuóüOñAç±úÒçÙ3}l궥E¿ªLG—MýÒ²?çûÏYxÛÔýÎQÛ>_K­¿U‡t]åmÖ·<,C†¯œ<ú†²Bレ²î ]TæEfx4)fÖq´Cû¨˜jhñZeÒ*UxqÂ×w‹ƒ”àY«kº»_RëÊÚÎX;¿Ÿèö]Sw5&9®Ûçga^f²9‡¡‡4ÜÁújÚºèeªß7˜.G°n5›º)íXÂy“®0y±/ÞD8 ª®©×½(Žà¾ÜÕM—bdß!¶-]¬j ƒ“!ï¤ÕUdðíª‘‹¿\íÒ¶}Y£wÊM)†¾Y‰>hDêÌ8N†öÇNÐsuydâpsuñpôùÔ£Û×Å—›#b†]`ÈzEÿ¹½¡]Ños[GøËÉ8F®1n–¯;)¤ÿ7n`òÎ@ÌÝ´ãƒu·fiÉšŽoÌñ] vkº(ød´‹Cw × Ÿ•tkÊÎ ·P… _ëx€6|8®D…ÝÈp[ð ÂÀ±É¢Âü4N”Æ~ +µTÕŠãb-|BDÜ+)fYEw˘GløLM^¦{{ãߥ#ç òИÆüÝçmŽýjÒ5FÂÑfÅešÉt°E£€·ÔÛYÌcÖ÷[ Î?áE*gÐg’SH_Ób¼æf³—9O![óïåÉ—“ÿ>ZtÛendstream +endobj +1439 0 obj<>/XObject<<>>>>/Annots 404 0 R>>endobj +1440 0 obj<>stream +xš[o×…ßõ+ÎSÑ>˜æex+P²4*bYµ”¦oňIS“e8Œ­ßoïCž³† +‚ €›¥5ûìû>é—‹Qò¿Q˜ÃdVÛ‹á`ÈOÒ?Ÿÿq±X ¦a¶˜ †aF“á 8¢M¸½P ; fÊ +†]Îû¬àmÃÁ\dÃN—ƒ¥²‚a—Ó¾¬àm˜Œ—=½ŠaÑ«++†Î#Ñ«=ac¨æãÁÂC5"d3G1T[¨¦¦6³‚-TSS›YÁ¸;žÆÂFµDdfjÇ#ÔϹZÁ°3r«¬`3ji gYÁ¨Íz+GµÅŒ‚@tTX™8rµ‚a 2e“YÁfÔؼͬ`ØÅÐÔfV°± a3ÆäᢜØhòd‚—ˆŽgV5Žb¤26£&}V0,‘!óYV°%hÜcÃN F’F-1f±UÏÌ‘¥ØXO°Û®6³‚agÞÈ™L)ÝùÄ*¶&ñ`dV°5ÉÔŠ*³‚aÉaNlQX¡Îšd67o˜··R‰¸ Ë™U[â’‚„9‰T ;š[n2+v:éË +†]Ž’í^1‚ p,ê´²bKÎÈÂYÁ–ïËÌ +†]Ž{V)&À㢷²bXË)Þf³âm(F«Å¤×kqºœÄQRLùÿˆÜ]ÁcaYÏl¥9}ð)¤#$éõÆóÙ0uäë +¶ØìV0,mX(+˜@ mʲŠ-6I„l)° &¬`X\™++8¦@­ŠîÒç¾gRåÈÝŒC…5­°‚c0X8ËŒŽÁÀ¨ÌúŒŠv¹Lߺ^Á84±Ý8Ë*6w­?… »\XŠ’^Åc4bèfV±…ª/«vºèE#’Æòudm0uë&cÜOÍäÌ +†Œ©=aÃV™Â +†¥q(¯,ØX›ÁÊfL¨¨H•UlI°/Ëúlœ²½ÛN>Ÿ™¤óVà6,–V«‰Èl´y›9Ë&ëIP1ìÔ6saÃ.‹žlÌ ½ë Ïv†¨#Ï`D oÌ +¶…‡–ôÌ +¶M,‰U ËJD"³‚a63M&%>†¢‰ŽÄäM̬àdrf£ÉGÙ£‰‰UœLÎl4ù$ËXÅÝĺÉÿú(¡y¦!"7Y0FÍ̱ÌFÑyql;#Ž\t”1¢“¹V0s(aá$FÛéÀ é(ÚäVœXÆL¡¬`Ô.lSYÁ¨Ù!+³Qm±ˆçS´päj›?c Tf[ Æ¦6³‚ͨEj'¶BŽmo,Eo3†eÛÃâÌ +†õ"Él\˜³¢§–Ó5¢ŽlaçW›|Þû'ð8 +2ç£à$罟9XCtÉŒkpO𡲂a ØBYÁæ§S^Y0YØI3ëõ(ØM*“#ŠáÍØŒ²6V0,ûQOV°5Æ]‘l¥V0ˆ3«– ÄBYÁ°ìºa£C S‡Z®_å(:”1,{ +FeV0ìbB +µÄµIV1¬Ÿm2ò­Š…G¶¡NÅÔgl&Ûv'¬`؉ \aÃr¨ëÉ +†¥ì¡Á6H×+“Ù•Ô*Å°1×IV1ìÜ.(²²C¶/k-ÎL3NL«@L-̤D2‹±3˜8˜{Ô›#·W°‰Z +Ø"aHXÁØ;´óqf[$¬E„ Ëý\õ²-³”?r Öh"2“#Él‰Åè=àÈýaÚ°Ò‰å¹PdV0 Çâˬ`XnBÄ-³‚±˜îŸÄ*†ÙAGXÁ°L†“Ù¡áé +ï8‡N,Å‚Q™lÙÁ[XÁ¨%A#É*†e“ÜÌ +†åÞC™lY! ++˜0›’êõü铸GÌQ‘»ËÝõ„qÈ·a›CîfV1¬ok +†e3š«¬`Xo‘ Ë䪬`»+ØûZ–U ËV¡6+†e«[¨¬`n¶œîN±±X)†å¯z)uŒd_mogöˆRÉÙ”÷ŠÛMá3g˜`rÀžƒVÿÖ3$غĎû +¶Ø%$³Š-öä!¬`XæìLYÁ°s{YÁÄ‘\Çd³bX²©zÃ8õHq|] ie{m8aËAѳ*–:û–*žGXØ‘§ÏsÍáÑa˜O 'ṳ̂bË]5„ Ë€À×´°b¢Èõ“'V1,Gq¢˜YÁ–ŸQoeÅ°T¯bËgZ9ƉG œËPëÈ N°¹ëéɬ`XFkOV°9dÇ©¼²bXžã09­¬“yP"{‰U" ™ÅÁ“&X6z]Y1,=J§fYÁVpvºÊl •Ÿvp7NKG*Á°1_™l´ýmœYÁ°<¥R™L¨b0«–S½™YÁ–{-V0,SL­R 'mZÙƒ ƒÉ^'åºI¬_v…Œ,å:æ_9&檬 GŽdáʬ`‹£•«È +Æß’3«8Æb*²Ñ(~å·6ŽpüšË‘%µ<:arfÃò󉲂Që/YV±µdãÌl4Šå½uý9Õ”Çs©]gnŒ³LpÔfV0FùéKXÁ¨åé«YÅ°¬I”ÓÊŠa©Õ«˜öc‚ãP’U ËÉ$6ºËaÁwÕ螣˜w÷ÄF÷2+8¹›ÙèîQöè^b'w3Ý?Éò¨±äf6šUcÁæ®ó2«–­‘ºI²Ô2pr|¡ë‰£#wW0ùÏ… ëÏ +†õk¼°‚q—‚Ää¤W±£o•bX!YÁ–]{1ÊlÌ.÷§xµ°+‹Ý¦Šx,ò+KÄæ=j +6vT’ {·›¨ÝFŽbÙd½¥Ò뢜ªâiÙîI\Яg'Ž 4.C‹¯m‹Y.Cô± /3ççøaõͯ¹&v2‰u”²Vè‰ÉÈœ³SN¢š¶Ãg.Ãèö4s1Çþ)Ų.C8ºJLÇÛ[!rZôlqS¨?~ŸfÀ¢ìá”a5Áyœ‡qûoc2Â7ªƒ·úåëñŽà£ÚwV&å_{B¹øÚaó8/ßÝ]¼ýž9 +wö ³Å<Ü­ý†ánõgð¾­Ê®Þ=†åê©ÞUá®=ì»p¹Z5‡]·ånþÙÔ;ûäý¦®ìg]º§*|h¶e½ûËÝÿ.Þ ÃߘåYuʪÍvÛìÂMÛÜoªm\延mÚ½}Þûz6·/û®Ú†›fS¯ê*~èC½©^?„ŸŸÊ.4˜Ð†§jóVå.\…Ǫûû«Õƒ£™˜´ëÚfš6ü\ïÖÍ×}X~{ûñ»×,úôñòêú¿ï?]ß}þôã ûÖ…¿&±ë»óEÿnËí}éKñw")ûCóÕv¹êB‰ká]¹úrx>[`ƒ+õöæÐV›—¸ÚÉäMµ–X÷— rÕV¿ê}ÝUásU®IÕY¸ \ñcKV×çӘǠþr(7õƒçà7,$£–÷]Õ}mÚ/çÁæ›Ä“ +E¸¯~ÏY"—òæÃ{_HKˆK{ŒÛº!¯ûª ¬<®ûî$  ÍQ«‡øòÃmX{q†mµ½¯Zs¸ÿ9q»Úí»r³±Â6¯<†-¡~&Aå#eh•ò¡º¯ËW5ÎñîÊ®Ö?”ÝY:8@x‹^/J +®›.6ì 6Ý$¹¹¾+BìÀñ—ßO³lFO,–8q¢)qMþáÌh¦dRÈì:µúxÈßmEùó™Â|¶ò 5£í‰î«Îâ×=¡u_­mݽ„¿ñŸ©X­ŒÓÔäWWWƒð鹫›]¹ –¡úñÐ2U/w ꮫ¶¡{› Ö«¶Ù7]Oé÷¾íÅ3_×VU æRS÷z`bÙ>ÝâyL*즥i-’·‡çç¦õݶ· ¿ºô ¶Í:®ã˨§¼ä夤è¾ýžëªŸž¹“ ö—¬~Ľ½üøîÒ·ÿ£’ÙTV‡-iIboì—|öù›ùpiGâË{< MmÁßE-T 1±Ÿ|wwñ¯‹ÿ1Ñëendstream +endobj +1441 0 obj<>/XObject<<>>>>/Annots 456 0 R>>endobj +1442 0 obj<>stream +x}YMsÛH½ûWà°U;{0ÃïÓVâ¬3®ØÙXYÏ•¢h›IÔ’”™_¿É-ÍTªœz~ ôk ´äÿ]äã_@YHQJÕîÂ÷|üfþñõÓE{>¥yŠŸ; +‚È G´¥û ‹Á&‘YÖ`°yîņUÇYèåì8˜ÄŽã¿N“ÂKA扗Œ€9aúX£+E‘Á¬¨`·âGXƒwúá±Å`ƒÜËŒ­Å`£œã2{¶lš.öµl-m ÞQ-YSÌq HÒ!ˆ¤$,B&“€£&È‘ˆ¤NþOåç(`bS^eXƒ!ؼ°º«Ÿjê‚Œ£(HÌš2Îc «51³â8A88íAÌŽ‰cƒÁ"Ä™e æôp(œ­:Î} "ÂWP"hŽS’fD%1)•˜$öÁ ö0N‚P±!-æà S‹Áæ[•û`8†\AƒašøÐmXƒÁ"–ÖV‡œêHq<±Y‚Ûœ8Ö`VœÂ‡a FøqwpžÙV· ⹆a*H·ÙÕÄæ!BíX5EJ…«bAFñÄfœßıs§¬ifÅqŒÔÛ‘á°ŠÄ1¤O‡Ew +,k0³Å¼Vl ›eH¼ñl0‹âý«¢²X¯"Q«"k°æŽ+\1ØBŽçXƒY7\gk1ØŒ/žcUrhI©dAFòĪDÇÃÌ’¥âœ­ÁØÞÚZ ½…1ÛÃ/,‡<·iꋶDzVXƒÁ"™©e æm%³­n‹›#/‡HDÒX8 Çx, }3+Ý<*)Vü‘¶4†˜b¾!-æÓð86¦<"t.)(Êô¨œ™Í‚y­°sÚyö9[I{”cÚ9ýŠô¨CnsfX5…PINÀqˆ‰©Á|œ…jXƒÁiÃÌÉáfáXp¬Ï:Œ5À»·È' gÒb°)ßǪÛp|r #âÖA¢§XÒb°2œ©)W86L±_%ýñqÊ9I f¹ü fVLÃb|zü +U$¦Ã3-5¬š¢ÉJuCL$-7'5uXM}ê):”Lw\å/QFjê0›f¬ifÕ—R*X +2‚'7.¤pfÕþdB‡œrî^¡îj0v•†ïX5 õqÈ£!¤»rûT Ó$œ³jŒO$5dL'Rs´6þ)¦Ü!´åÀ/Ê(‘˜ VÞÁº–Y)à ׇLÁ3O¸uÝFìVVª[‡ù09âcXƒÁæÜ9+G Ð'ô ”±cAâ¡ž0;YÓ̪)¼KÐ¥‚ŒéÄʧ5Vækæ †c mfÕq<>TÔ± ãxb1a"¤ž×2«1Ä«Tc(€9±'J†Žä:á*q]V‘X +‰—‹V¡DP’ÙL,¤ dŽ5»âC(NêXƒÑîðɲ‡ÂN@nÓ‰C?+ÈqÂgZN\"frÿE¸çrâ˜ˆç §‹c>sâ2Õ©§sZ€s9qâÃqÂ%>¹á³?;;ÁI;ÎAœNž¸3'RP¥’C̼õˆK9 ünž9íÿÓä£Ò…ØL<†ãœ“ϳôpÜ'UÊ-oªoy7î·Žs\Á&Žs‡ƒ +ô¨Éç‡ÕÅ»kÜ¿€Vü¥Jšg´ÚÈ*>­ªŸð'òhõ\ÓÍîÐ5û¡§UÛnûzøÇê· Ÿ.åû•Õ†Æ}lʧ}Û7=³—ø†Æñ‰GßöÍcSoè—ö©Ý÷´®‡×ºÞÓC³ß´¯=Ý®¨ÜoèÛíͯtì›ý3kìì¯À£÷ë~èÊêD.”G7û¡k7ÇjhÚý[¥xDyôð\“úÒµ/ͦVÕöP¯ýܾÎ+Úî»,[®ÂánöýPn·%ï(ç¸j÷ÍÓ±“ßœjH=ú¥Ù5ƒÐçvÎ<‚‹j‹Pè–ñ„=§¤}A@×âÇköÔ—»uy1|’ôèî¥î^šú•ÚÇÙä­°”£÷aòׇ¶~íÉ1Û=ŽÞz[飼ûv{<q¼VŒÓ²êÚ¾§þ¸Þ×ÃI0ñ`÷è¾>Ïñ@%=ÜÜÞSéuwªa0‹gá ï¾þûÓ×»o_NÍÜ?5ûx÷ùýÍ-Û\.Ïš{tÝv “(ÓТˆiÀíØ•ýpN^áÑçò»±ÀÚM»+¡ïÏL0õé¶j*×íqàD•› +î©ÜlâþL™"»HïçãvhÛÙ‚–DzW.®|(«ï%RFÿ½¾§®ÉVW¾Y—öIQWUÔh·l‚’Ý (ãEñAÞ³;SùR6[ÑS£±¼>×]-Á_ÈAì?u-êaWÏŸïVwo‹pßsýÓh»]¹¯Ž¾?ž9 ú ß°Ý¡ìšýèÔNsßVßëÚ—õ™%8Ê׺ÜPßü!¢mÁà ÍÙÿA?pÍO½£ÌÑi[¿Ô[9ïÒ…-ž»òõÔY|èÔÈY±ºß¢i]m›ûÔœÃÄ °sîT\‚jLÃqh‹>›L-ºêj4/¤Bƒ6°mªßéº9SNXhOþïÅ·'Æ„{Z€Q¿‘ܶÇYú¾ÿîW¹Ø‹¶ˆÇ;.vuĨzÒR`7 åøfeYØo7³³Júés‹{·.{”3ZíPŸ›'ØÂtý|óþr9ÊB——ôØtõ+ÆÆ©ž—¢¡¤›/W£þ¹ìÐ;êýï¼ÖÞ(@±|;>/XObject<<>>>>/Annots 488 0 R>>endobj +1444 0 obj<>stream +xm—ÉrÛH †ïz +Ü’9˜æÒÜNS^Ɖ«&O¤$s¥(Úb,‘’rœ·Ï´È†$—«\þù5нøÿY@>~JCŠ*·3ßóñeúõåÃ,7žOI–à÷–‚0ñÒƒÚÐ|¦5¨‰½\S¥A³Ø3šF^@Iz'‰—û59¾&qŽ0ô}/<(†6"“À›nD9E° R/¦D”„«4¨ 8™‰Z¿!²¿!G+Êùõ‰6ˆ|†¢Ä¯Òðg¯£Jo) Ç4Q™5Î#›j¡‚V±c©Cœñl[Ê8"+˜)‰9}ÎÅA­AÃô˜*ÍñòäÊViP,[ ¨7Im :%…PšMyᵦ17`sL¢ÄTiP´N¤¨55þ¡ü)‡$JL#§a‡ìØQ¥Q~Ÿ[ËQëõN³ŽD)Ç#M¸ã‰ZÓÀÈâÖT”2ið¬Ž*ˆó%QTinYÚÉVk¦9wÌDmÇ ¸ÿÓˆ‹(‚cRÝd8™‰)‰€Ân‚Zss.ðD¥&ËÔ a•ÔANŒ‰ÂÔ¢Js‚cª42EƒøÊVkЈSvžµEKÇŠÚScÛ ­’’%!+ÍÙ&(°¢Jƒ"m$äl•æÅáÕóhÏZƒbS!äɳ֠8<+½¥k([›.zÎ69¯¼e;ÕiN—÷˜¢Jó +IÈ“­ul¸€we; *ßUy¢ŽÎViž–O(E•æ*KÈ“­lŲò„«(‚cRn±³°ƒ|2ô¾œO1oY«ÄR Ÿá#,‘* ¨1ÕQƒÊ‰ã¨T)Êc[~lˆ€¬S¥Ù”/G­©õvV\Ô¢ÆYG šðýà¨5Å™%7a”£‘(kê4ÏÊTTi¦9Gìl•EISM•ÆÚàvõµAa I‰±gŠDqP²p‘9¼r6Á ³sâE€l&¨5¨ÜëŽÚ9qNJ÷˲F¢Ø¯…Áá1…C E9è >»"Q ±!ìmÆ·ºU È£æˆøºTTi®`0eÛëÅìò.ÁI‹G~™%YJ‹•¼Ê|Z”ïùpöh^l—ÍŠÊuÑõÕÐÿ±ø1»Àø <"BX¼¿ÿæÑÕnW5«úµŒGÞDÃÈ£‡¶Še½©‡_l}‚>>|ýOüúG†<ÿÍgúÚÔ¯L!üÞþs/fÇÀxô¥Z},ú»nö¯Ûe‡ †‹ûû7&‰½usqܸäÛa]uts7§rSW-ÃÉx$ò©(ëfhûõ8ìÏÓÀ Wõó<¤ñsŽ‘×÷ºYµ?{zl;úÞvÏO]»ßÙÂëTq–¹±ïòøò]žûC~£¿Ðdz{^u/uYÑCQ>S(9Êã?¶?ih©l·»zSÑüêÓõ<‡|¯Ê²êûC¡úvßÁqÙ®*z© ºù6÷:f—£UÝ<ÊJ½´˜5îÅ°ë5¥4Ýã°;Í/6®÷õf5:¸®›¢«më]OÆ‹8Ý0í·Ë•8nðÇyî ·ÎÝÊã¯÷OçÝŒSÕ£ûfèÚÕ¾ê¶9Ë0á ?TMÕª›Çö4„¸­–û'ÚT/ÕF&Ñaã”9ª®‹ªëÚî1Ü·ÃP”kÉ­¥‚º}Ó°Øu-¯Êù¼Hï¡Êõ¡TGË™z´˜CÊçMÝìãdØùëàq!°¾ßow\ž³(RÎ~Qõv[ÊjÕ› ­‹É +}¿ÜT½l¢Ë»ìpXáŠó³ˆLññ#ÝI]û£*ºmËýû³˜Ö&À ‡‡_¤~Î㯖ýÐ¥¤fð¯C–üs +s²-fÿÎ~ådLsendstream +endobj +1445 0 obj<>/XObject<<>>>>>>endobj +1446 0 obj<>stream x+ä2T0BCs#c3…ä\.§.}7K#…4 Œ™¹…BHŠ‚žP$YÃSOÁ=5/µ(1G!3¯¸$1''±$3?O3$ ¨ÍBÁТM¢Ÿr =  !)f \C¸¹˜T&lendstream endobj -1426 0 obj<>/XObject<<>>>>/Annots 519 0 R>>endobj -1427 0 obj<>stream +1447 0 obj<>/XObject<<>>>>/Annots 533 0 R>>endobj +1448 0 obj<>stream x…YÛrÛÈ}×WtíK¼U+˜¸ ŸR’e;ª’¯dJy؈„$ÄÀ mý}Îégš¤³©­’÷è /Ó·i@ÿ¹ˆe‚ÿbÉIg²®/&Ñ¿ñ?¾¾¿˜G‰L³h"µ¤q4ÁV–Ö’¥Ql8kÉ3ˆ;%”3°–Eê 3°–8΢ÔZ vG ÃN“h*Óy¡vANª jôÕ“ƒ¥QfYƒÁ.²#ÅÎèlÍ`4ž,xPE´j1ØlB=‹ "šÓ¬D0á°"5˜¢szXƒÁ.& S`‘´Qs2ÉdYä'¡Ù$§ÇŠhÖ'E€ÌÕ_ä „àdBï=i1ØXÕÖ`°ð¬Á` ý ¬Áµ$“)ãäY‹Á&ó#¯,;ÕôxYwؘi8VA8ìÈÅIL‡=i1“2üÕh: FQN5ì<æak0;?Ò잤Zl. ‚Ã#7:èI‹éð”Fk0ÖãÖ`:¬µXƒápœÀ· Ùb°ÙŒuée-‹~Dfk0GÏŒ)ð¬Å`305ì,gUÖ`°‹)[À³ä -ĶÌY©h¬ežÃßÀˆ0%"3y”[Ö`°ùîYmØ,Ïdž’TDâ$`*Îàv`èŒÁ™rteŠ(ÊÉžMÙÆBŽBs€”µÌ¦tV$g Æìœö Š²yêå¦mþ6È}Û}û;}9öi„hÝîJ¹½Ñ8цÞµëoФAćmŸgP_öÕú›¼éÚ¾—åþ¡)¹îÚ=ƒñzü=-?uí~¨§}µÑtYg4¹7U¿Þ÷ýØkƼEòÏ^+–™ÿíkY·C)WMÓî›uù[¦¨Ëá,Q¸–)©Ž–²|iÖ%Œ,fïo?.O²‰‰!ÀòñÓJöp®nµ‹_ÊŸ¯â?—]×íºÝr|X2µDHêbü”s›BŒ­H>â$òµìÛížsG>uw®£*vçêtÄtu¡OnŠ¡x(ú³è⯠‘œÎ2_¬Íàë]Û E3ÈGĶ—«‡v&/×û®^N«‡"Pzµù‰â Ïcš,?\ËÛfݽìóÄÌK4msY:‰rƒ,öý¶Û¸¸ØúÀ"ŠÎqM¯Om02ê³è$)øsáãG†òçib÷€š›ë3!„ýîæêóù)µGþ2t¸¶ÿOpñ‰>Ûï_œ’†WŽ•Ó¦ÃIÿ—ëç²vÄ×r«¹íŸ«¯–ÿ×wop×NrÙµ}õój½FœŸ@ŽçêRoS‡³¥gÆâµabÌ¿gç²Zd¸>Ÿgt7‡»c¨ŒŽøÿíÓÜZú]¹®Š-ì CW=ìYq-Æ-<8ñ‹4-pü,ꮯ»›Ûw(7ˆ²Å‘4…O:¾~xY~¹;O3>>/XObject<<>>>>/Annots 521 0 R>>endobj -1429 0 obj<>stream +1449 0 obj<>/XObject<<>>>>/Annots 535 0 R>>endobj +1450 0 obj<>stream x=ÏnÂ0 ÆïyŠïÈõ’´sÜc« ÄaÙ P¦Uk+Jyœ &Ë–ÿü>[>«æ>/XObject<<>>>>/Annots 524 0 R>>endobj -1431 0 obj<>stream +1451 0 obj<>/XObject<<>>>>/Annots 538 0 R>>endobj +1452 0 obj<>stream x•V]OãF}ϯ¸Ú— œ8 I¨Ô‡Á6j‚Z´TÕØ;ÓØwÆ&äß÷Ü;„¶*+±$s¿Ï¹gæï^HCü i6¢ñ”â¢7 †øf÷ëîKïlœÒt8 †TP8< fí§œî{ûŸq:îlÝéÞgœÎçoN‘…N§§Áœ&óþæ FRÊ5Ðd6 &ï„ãQ0:<8_öWg4Ò2E?ÓÙœ–‰kßÄý‹•¨ji( èG½¡ZÓ¢´µÈseBKikºÿ|}þùhù—‹Î|œ“ñ¹–I? àzÕB•ªÌœ—òø£E$¼ï„°õÍ‚)ûž«R˜-U"^‹LZÒ©w fUçM"üA"/4*å–~VeóBÚÐC©^(Q¶6*jj¥Ë€–+ Gv¹Õdu!9÷N±¯v—J< •‹(‡iMõJ¶‰Wp©PKë6šbÒ(t‘ÒV7TJ”ƒź¨\]w”] WcbyLñJÆkPT•Ñ•Q¢FŽª’e‚zc?îà½qºLa0 èB—©Êóß¼çù~gQ‘÷<R–l­Ÿk®ˆ6¡e£<4ÝØ0oÁ+« cöUô¨þ@ÖñÀõ8°moÑAÙo}öF=h¬ä:y#WÑGqzÄxcQ’T¨×LÂF¸b¾±2O÷DÎËÃÑ¥dÒÀ…ËØK^0U2#ª•BÀLçÖ·íØÑL¶‰W$øLÒFF'‘°nl؉TÄ€x#êv`(fÇÉ Êôð¿B üxÃNÆ¡' C‰Ý¸D+\ë¿px;K8Ž°[I¹#1F_¡ù·Øò<XO¾8ÀÝD‰22ê[F’ßîÆ6–¬vL6R€É+YÌ-ÆxÒ†iýaÊ3&VJZ±8 ¨®˜a–2¡f_ÎW×*–ÝØ ;ƒh3Ö“=o73n¸]¯%ì­âfQ^c¹‚wº¦nò„"ØbKA 5WkN§ì÷Ï:™x¨ýùšå:ù]ÃCˆ+¦Ýãÿ6ëÌ覢èúñËÝíÃ/­ñ(ôzµgü••Â~#l³†ûÑkÄ+õÇyaéàÐ%ÆÞ™®º%cFM}±°yÕŽ#$àF Ô$Ñ–’W±óq¬›%xBXiž¥9nw§Ý4À¢ å:Š¥(€°[idí4ó“kõS·%H;〞ú7çeÑÊ®ôŠú:Owꤊ¥©%¥ž*çw·¿Ý/n¾õKݨÕj&N"q±äöé¨C¢eÌ.)?¸:í$ ´!Ú ÈŸusìc, a©ëîœÄ¡â}$s¼t^£vW CßP¢N›I}Í•Ø—ïQÕ´×̾w›ŠE—Tå¬7lk+«TíäÛ÷±“e̶÷ÔçKd*š=BÓ4pÕk¶Ûƒ“ÇŠ²ß‘û÷û ÉÓÑa›WWà®A@D.ü$"~­Œq‡ÕÐY³BÌaÌE¶ÛCvÅrŒ½‡êb Rˆ Švmè¸)dyȉ‡›ÅïÞ_^<Ü-–Ì™WùÝ=.æûò vF©Õ¥¸©±  £SÁ7×)Ó¢Æå eÒ¦X$Gd†ˆ]Ï"Wø-_C.ÇXßbT»ˆÜnW„TãÚ*“c÷¥iJ{€âíOœW}íiã!ä ʵàGS»¥Örœo 3õŒ÷.Zc9i-DúÔWî">g'äã¡ÜÅw cý²ºtÏ©Hd`jtŒ×Poš¿>ÿ&s/§ÿçí9™C°çܯí3Æå²÷kïäpŒ­endstream endobj -1432 0 obj<>/XObject<<>>>>>>endobj -1433 0 obj<>stream +1453 0 obj<>/XObject<<>>>>>>endobj +1454 0 obj<>stream xVkoÛ6ýž_qWl˜ IJe»~äÀl]€}mñ ó>Ðm±‘H•¤âúßï\Rrl'†%Hk‹Ò}œ{ιúz‘Ò¿)ÍF4žRV] “!MgÓdD“ù ŸGø³’6á`²Xàë3ãqšLž;H§ãd~~ðóòbp3¡4¥åÙ§ó-sBæá–YïºÜ‰½#ÛhòÒùZØŠÄV(M»BjÚ›†²Bè­¤×Ë/ˆ„úC¤ž«ÖIfô&^îô¾‹ß”NbÂ~¨v™÷Òd„_º½»^ž>3¤þˆ‹êñ)G‚vrÝ_ 'sRÚK»™$_O…,k«Bnµm—ÕZÄÀT©máIOkIâA¨R¬K‰(x¼½““#e:ìHZ‹ì^ =šµT—ÂoŒ­.iÝx~P“µ´ÂKjïMès)Qf%òx‡Ú*¡ë6RfªZ•Jo/ÁyQòç³ÄBçÄr8%Ç16ÖTäLc3™´÷¦˜6 ]*E£³"@H_çÃØ0"Kñ`¬B‰@ŽÖÖ윴ÄjIyBðW…÷õÕ`PšL”…qþj1L¯ú]¢ëLƱˆnÂt¸/t3>o§|Т„›ð™›o0µ0&\:tȃb Õæå3A¹Úl¤•(»‹t†FÙ«íôªH¾þ Ñ{伉à˜…ÞÓ»Ï<-3®U¸Eiß^å²ãÍvÅaÛ›ÎJd ¦í*4jjTŠ¤µpnglNN£9*Üᢣ*K&¬ã¦[®fiÉ<G¦îNÙȈÁ ´¹°˜ûãIäFšŒZÚ=•ÊyØ^|¨é ‚ŽâàÂÆ¡vz"L¦L´ïãIÚò`‘Œß  ù¬T\cÿ}¼g}à @@ -2595,8 +2612,8 @@ x ÿ*½øþû¸¼äx¼"†qßàltIŸn£K’>K’äD%QŽ¶ Ϩ2ë)Wîž!·/7üËÕju÷îãÛOw·«ÕO±Ÿn%ÍÓdÑî$ϤüŠVø‰rg„ã秪ŠÏÖ—Uãý‹Ë:*hÞÚ`:Å{ù|LÓé".ÇÛë?_Ógk¾€EôÖdM……(˜P\c¿{ ?.xgž½õNf“d6Ç}šù‘_—¿]üá¾°`endstream endobj -1434 0 obj<>/XObject<<>>>>>>endobj -1435 0 obj<>stream +1455 0 obj<>/XObject<<>>>>>>endobj +1456 0 obj<>stream xW]oÛ6}ϯ¸ËKS Vbdz“Ý4 `]ÚÆ›1À(@ITÌZ"U‘ªê¿sIÊq”n芮%ÞsÏ9—þz0¦SüÓ|Bg3ʪƒÓä”f“³dJÓó9>Oð#©ð¦ç“dò£góç'®'7>¦E$³ó9-rB‚ÓSZdGo^­VËÛ?¯ï–÷«Õo/_ðö8¾}>N.~Å™E~¤¥£ÖJ*k7~E+ügeóM6ZTŸkcJþBe2„èŽBŒÑd†Êç'ÓÕÒŽ UJNBNcUÏBÊR¦pò˜LCVêœ*I‚Òö˜Õ¦q¿„4Fï ÂèlÊ'³„–ká趠ÅZéK×F¿p´4Íæ÷§‰qn2OfÜÆb-5mMK•zX;¤9¹5„ŠéÝÝrqGÙZÔN6t­Äƒ6VY¨Œ_º¹ü˜p>>/0UëTYâï6ÛðsM®ÙòÎŽœã3L9+¡JH¥²Ž;Õ²³ikZ•ÆlHá$Âz{yýþ-x%—‡ìêeB÷¢J­…¥T"…m³LZ[´e¹ÅAëDYÊœ„$ukÓZnÉd•“–:Ó”y§ràm Ub›¢SI£%I°À'Y+Çý5T7&-eå›çì¤Éð6)—Ð?@ 3m™²Š‘™nÜÏr¹ô™É²™Ð” ¥¬mQ ªâw,w7ÊÕƒ´.‰ÁzÊ-ûYê»9–įÜÌ"«Ž¨.¥°®>q{ÔÖ9H¶K™›¬­¤vÂ)£1æÎ$:Êåê%—Ë„ @@ -2607,12 +2624,12 @@ R z?1"Ç»Ëß¼—Æ0ÒNrÇ^AÁ³ Â6¾vÃq-ÓÖå[¦Ø>ŠË@Ù·7²¸¹”9®aÅ&ÏÓåÛW+3ËÄê@¾kpµ ZƒÑ$ð ¼ëZè—!ï”[sïƒ~PО´yƒD üU{–ésà¦äo?Ö5¸yë,á²rLɳԯXQVƯ[„fûÒ’¯jõ ¿é÷î„QïÁ;Y 6¨Þå•z òJlÀ°O|“;ȶG€?2¤ŠÝûj˜ü*q§*¡g /NN»Ûc1¯7rù½.U¦üÈì&Tì·ShçWw á/È°±´ébÞ»_Ó6ìZ÷+×q˜?k‚®éG£RÊ_LAB?\YÁ®íwP>ê±µœã°ò¾{]¾ˆÝŽW ÌäĶc<»pçþ×Gôµ] oxà7;º\á¿!(˱Âüÿ–-Ù2\c£$ ?/XéÚFû»)o²>2ã{rs/Áã~lžŸÑlîåÜ_¾¿º¤ùÂKãzÿÂËçFýë£ùéß7â×Ôt>Mæ³óð£r<æ0oþØMÞ°endstream endobj -1436 0 obj<>/XObject<<>>>>>>endobj -1437 0 obj<>stream +1457 0 obj<>/XObject<<>>>>>>endobj +1458 0 obj<>stream x]R]o›0}çWõe´PH°§‰,DªÖ%[‹íirÌe¸16ÃÎ"þý.Œ½TÉÆ÷ø|ñ;ˆñ#[c“BvAFHã(\#É3^¯ùM°­‚‡}‚8FÕ0$Í3T5x<ŠPÉ{)´vðž´†ÔŠŒç}+<è £o•ùåpü¾¯^ƒ«u&|Ç}ÕIkjÆ ç`h+/ Àóñ]MfDgkrw!à‚e9ò8¢ïµ’Â+kpkÉ@yØžŒƒ@£4±´…6Þ°9¦­ÉÓÐ)C<Ï*ýØÓL-¤$áZ{Õ5ÎL¤µ½Q §º«ö½:=â¦|Ë,ŒašÅb`Aî‚ÆowåáÇÏÃñP~À¼|.‹Ý²<=?V%ìðï xzš]²ÃÉ¥ÐÎÂõ$•àhm׳ͳÒÊ/‘¼¡™ª`¹3Åþó–ÓY6»ãËœýÃ>_zŒSî8ß Ï§D^Š¯ÛßûJÒcgåµãçL'ŠÕÿéU}œæã0 qšÂ{l¸îË1ʼó8ÙáòiÂ$YfiÎ?Ì4¿ž>•Uð=ø ³.¿Vendstream endobj -1438 0 obj<>/XObject<<>>>>>>endobj -1439 0 obj<>stream +1459 0 obj<>/XObject<<>>>>>>endobj +1460 0 obj<>stream x•WMoÛ8½çW zi 4Nì¸qvo›vئéÚ‹\z¡%ÚbC‘Z’Šë¿oHêÃJ/‹ @"‘óñæ͛ѿgsºÄÏœV ºº¦¢>»œ]ÒÇ«³ZÞ¬ð÷¿NÒ.½˜Ï–Óç·›³‹»ßhqI›L]¯nhSÌ\âIñîS%š ìзVÏôÉYïiÝn tëìÁ+³§‹ôüýæÇÙ%/–°ñîɺ罳m3Û·ª”|èânIóyry¾¸™-ø¦RžJ[´µ4|e[]ÒV"~Q’2TXó£5EPÖÐA…j°+LIµ8òá ž¥!á)TH[ø@Á Ä]S°9ÄùUò©êFKöÇYl»tD³ô1KOlþ‚¬£üüÐeæéû;<.m-”ñßßÏèéþaMHƒ½o%{·VÓκ‰_'½ÕmLÅîèA†Ûû¯k2¢–¸kéþ‘DYJï¥l>|݆«_dÄ#†+I+¸©£æäÏB6¶G:ˆãÄ)<±vëÁµ¦ÁµY>¹¸CPŠäïôeMOÊ”¨1ø>0Z0 alTd§ö­C<°iéð6ÕæákŸ•}ÁͧNjûÇ­E½çW“ÈËB{K¾mëÃ,k[JBìÉ>ª£eÖÎW™BWË÷b6ŸÑgå‹Ö{d/§T[Í®9¿;å|ÐÇ$´§ RsqH8Þ ÌÀ¶õ—[Tz-gò¸‰½¤[m‹çïïó)OJ>=I¯Ù±´§ì·±ƒ: @@ -2624,8 +2641,8 @@ $ ¤ Œ‘‹¶;NÓø5Úu“*%âd£!#±x2HV<ˆ¤ÛV?w<³*Pn+‘NaëZ… Ë´…°ƒj>(­'Y)Kfch1F»1ÇëTÊ«}ÈØù=¥w…Å431ÍÎ#ô£ˆ;žKax¤ŠÀ­eÀÓÇ6´DG„+&1«„cÕ ÷±Ê€ ›rDt¶rR}t#'«´Êbñ* ðJ¼ÈH‰ÛH lf¯ûÄGaãhM)Lqä AdõÀ x7EãgV°f¡J]#Œ¹1ñʺc=Õ¸³~1ÐEÌK!o>cŠòPˆP§&B_h…ýðºöи,B§e ‚ª[`~*qˆŠä3ÖMüÙÝL $Ë+CmÃŒ¯_Œ¤î"(-¼¢2¹ó®ÌyŒÓÐK®ú©ýÌ/ð TBw0Æ@ }ÄÐ̤Ÿ.,ž`9JÓ`Mh1Í¢éñšõUXE¡oÕ.®kR#ïPÚ¿%_H#œ²X½s-»fù #?NCˆ;”«1j )è,àNkÌ`nHº5Nj%xÚàìÉvTbEùºKb×EìaB"e0û_°Æ²5F¢¶8‹†æ©VÛC\T=t$4i¿_(¨´¥ã‘(_!ÌQ䑸€íd✿~E%–½3þ )X’X3vDl ÝÍtÁˆh^ÜÝ i׋ôÁôÿ>é©ûT>ÖúÀåj9[]ßà«ù<~ü¹9ûvöí(ñ„endstream endobj -1440 0 obj<>/XObject<<>>>>>>endobj -1441 0 obj<>stream +1461 0 obj<>/XObject<<>>>>>>endobj +1462 0 obj<>stream xWïOÛHýÎ_1ê—©Yì$$)Ò}]{BW ×¤B§ã„6ö&Þb僚6iþû¾YÛÁŠÔ+E öîüxóæÍäÛAL~bši4¡¤8ˆDD£ÙHŒi<›âó¿NÑ*¼F'ø³÷â|qpüáÅSZ¬`k2‹i‘ìD-’á úâÙ•™¢7ŸUaKEgÆØÊ$ê m¤“…*•;Z|…©1Å°À¦é˜ÀØá‚ï¹úž|~Mûb)kV”HCKE•W)•–VÖ%z™ïH_!‘2“%É<±\©òüâzNþ=YC’C€ãx$†ìبrkÝ=­.5ŽƒY PBÍ A£ß™R~ßgúJÄÚŸÖÙFô®Mv Ðá“š½Ûô;IEJÿ*±k‘ýGBˆç Èûߎo®?ÿõççë/Ÿö¾½æu›)§šÌ&:NêÔÚ¤I©Éáiøàà{íIi0Æ…R}¼<§ÛÃ6‘9]J¶Ð¹³[¯Üí]|"™¦Ny±>¾tV¦‰GÕÚç5ûzUcïrkuºw÷`Jün(âÉLÄ"ŽÞ¶Æ[›‰­ò”ɶÖ @@ -2637,8 +2654,8 @@ h ½gíßÒ«ml§Öà˜rQf_`]i±d0w·z$Ãûr·Qô ó ãaà yßa¹†‚ñ ?p:a>÷œ3åƒÔ9k° µ>e"¿Bª‘I‰„øUFƒßÛC®V$ú8‡šAæÞ¾h­ñ, Àå*cX½Ø`.M!\#a€·‘%–4´|p›ËíaÛä…¼ÇÛLB²‚Dmœ6À}fÜþ¡ù{éÂóˆzÉuªaoch¼=Épˆi[gØØiÛî #±­##€8°NB“á7>¡±É¤®©¡\™u™ÕK!n ét„À;D=ö Vw”?òé^¼¨<%N%À')ƪÞúkÊqfváÎBøá"îxKÂߦ ÇÎü®ùÄ0®‡Fßw|2î} â ée$º1y *z{¨M’Wi‹÷#Ú€ÎÒ±Ë ç{üaÖì‹ñß;f#šL"1cÅ™Ÿ]žŸÑ'g¿‚ô‡M°1aÏæË|sÐ^L#ìÒé¯~ãOÇb:™áûîÆc6ù~qð÷Á3ä#Wendstream endobj -1442 0 obj<>/XObject<<>>>>>>endobj -1443 0 obj<>stream +1463 0 obj<>/XObject<<>>>>>>endobj +1464 0 obj<>stream xXïSÜFýÎ_Ñç/!U X~ó! ¶sTÌ{§â”k$vÇHš½™›ýïï½–´€Bª®®l0¬fº_¿î~Ýòvfrˆ?39?’ã3)šÃìPŽO/³9¹8ÇÏGø VªëùÎÁÇ™Íd^áÊÙŹÌKÁñÃC™»¿ÜÜ=HaZ‰Éã|ZÚhe“KL‘lÖ46Š‰|¶‘…M°»pl™É•µ³mÂS“dmÚ„ƒ^j¿ßâ\’Ö¦µßÏ¿íÊþì8;„]:5ñQO(ŠhÃüU>ˆ‘ÄWbêz@ –æɾð¯—ïlúÙ/=Œ--É<¢¯™NeCLÚ:ÀikÖ1`°Ö9ɾì²1¾ÀUk³Si KØg¸°E¬p¾š ê­0~ °_`X€ MZiñ,ôCÀ‡%Ï+(4g&v.mhÁ¶Ç«[{R:"žx]­oqØ ÂÓÂâ“;ËQiƒM ï’ArFÓýà*]ÁÈTHD±ì¦‹`°‰ ‚{Ì.;ÍÄ^¦a•w•ïKpØ¥wBH¨å•5ظ¾öŒùV_$ V¦ÀJ É&~J6I4:Æè/ÿصGÚÙÃècP7÷ŸÇ:D¢ø‰.CíØ–Ô”=,½:–æ” âÙF:r^jrß¼ŽdF`O˜ŒK³ZÙ6î &4ͼ”ñ‰Îqôî$^•¢×èx¼'‰å̈X£6ñ—–Fr·¤ö!ò£„éÔx{(µ˜hÈ/Ñ €óå~%mÎ7—tòFìBýPáGÉÛºèQ–yM~eÕµ:l†E·Çª|µÃú•ÖÄÊwŸ!ÛJÞ¨d}•sJkɾ9#¶qœîÉ忸!Ü"FLâ—›ã¶hw}sx¿8Žvîæ'{r„—Æ=ù ÅG©á—ãI”TÎAFÇ$€¢¹¾Sª_6šò¥pÎÀú½2«7{’ëz#q黺dö¡4~×êÖ߉_âRLŸï‹í|Ùñ]Ю·×:”lÄ̧O,ÑýF÷ ›8·º$•®Â^½@Uéÿ4YÆ7Xp’ÉOäï]{¨ ÜÓ•Z_dKÉæ ×Æ <Oè±ð]ndj<€@-»Š¹Ï¹ÓöKÌ$`xÞÞ맃â0;Ãûÿűœáÿ0Ý®n¯¯ä>øo¨EÇ^WMÝïŸ^òüÿ?wG½Ru99?ÉÎÏ.0ÑasvJWæ;ÿØù/.¨†Æendstream endobj -1444 0 obj<>/XObject<<>>>>>>endobj -1445 0 obj<>stream +1465 0 obj<>/XObject<<>>>>>>endobj +1466 0 obj<>stream xUmOÛ0þÞ_qãS‘hš¤!)HûhH@Ù4MBBnâ4ŽÝÙ¥ÿ~wN e”MZÛ¤ií{îžç^ü«Aˆï²F)M/ BH³4ˆ!gøãe8T~!> ƒìÏ…Ó¼7dLÖƒõ^Ô}Ã÷3‰‰"1˜k4k-0ųÖAgN œ`ò w8^1µ+*·dŠ²C䜅tRë‡vîPÒÍö¨E ³ðo$q†U•(ºêÚ#Á6,ÖEµÉ‰¦Šßƒ3¸µ&^(ñÜpæ ær7Ã;»Âx¢eª$úœÛ8>ÃóŽÖ­¯[ï%˜Uoa)0¹²ñ‰‚UÐ3…½= ±oÅ{mÿÿºës)Õ…Êw}½£×»ýwüR³–¼b­t¨Ôß¾Ö)Ÿ5ÅŽ®wúŽ§–¤<ì‘ÕbUÜÐxàþzn ?D¨í°V~éV‰'°+ëxC¥$š…äÔb~qNSǺيrp×ïxnÍšªU…%ŽYÊ:–~‰3ªÐÊœ¼»MºéÝî´·U¯yõ`×neíR¸¢ÞeAÿÚf+Pï«+â]¶¾Õ†çãõÁ¥xG$Ypûù?=¹:=£rê3]´$’Ÿ£äçbg2ÈB¬ßI–Y:Æ·F)!œå½¯½ß‰¿/9endstream endobj -1446 0 obj<>/XObject<>>>>>endobj -1447 0 obj<>stream -xWÛnÛF}÷W úiÝ"9E‘K ˆR`MVäRÜŠÜ¥w—Vø÷=³KÊ£ E`DX.çræÌ™áÓÅ„Æø7¡å”f J«‹q2¦ùtœ,h~³Äï)þ¬¤üâ‰&Ëd¯óIrƒ¾‚·®ï& úhèËÅûõÅõí[šŽiãòbyCëŒ`uŒ“ôòC!j/-Íúêð¿Ò¹±•ðÊhÊ„áäëõ?ÁÆdm\Íæð·Î.gÉ$¡;í­Éš”_‰7ç4™t7§KŽ›ŸËŒöJgfï(-•ÔÞ‘“:£ºJ“—ß=Õ¹½±™#óŒH|!ñŠ• ­Dµ” -Mi!Ó?qòèú¦¥Ô¶µWzËŒéj2‹âfEnRSÕÂâ¿\‘7Á|!\AÎ+3$Ž­¾SÃHôÙ'Íé"™s*r§g“‘:Äk/¹|»tæ*e‰ÓOBWÈ‚zX{—îÛëÓtGˆÄy)²A*&?‹UBkओód÷ª,É貟 ‹c°2G¦ Æ ׇdFÔèR:ÇH)‹÷·ÊyÛ’ÂÉ^ŠÌ†`!¸“R¡ˆ¯€î|[J:kBïe*8R`à á©5 Ó–BüE`èQÙGzÂfÑðI5G}6Pˆç˜;×?Ôþ\yÈ™Jî ‰+²tr˜ßÊTžã–ö@ýL£cDé8;E+æ?sÐx$EZDú…D¬6þˆ¢bPšé:"™lB#í7e(W4Z‰–J³EoçÖT£uiÒØî1ËB¹k¤Kµ5¹BABìöiŸß`±5­ôVÉg$Ä´êró°t"'ãþô ó)ÛÐF¤;HÀ/ }0Uè*ž…*Ån»‡°h‡ÕýôñÝ£ãfà8Gtß®¾| -håê²q ÝÑŠ«{¤j#=–;3iS¡`1{±1 J¹t}û¦Ó°ËÐÊÙf€{ýÊç×·½âñm+* E H±ò«fhT³ª j¯==àÞ÷+™6VùöÔ*˜Ýë(7{¨9½ºšžs¬Û^¦…VO Ì"׊œª€ª…"„‚»Ææ"…®®¹BÝC8E©GT˜= -iGƒ|£˜ì˜ªRÖQtb×B’+àÙÖŠE.*k¼„ßɺ–žùI`œf>n™JLjžâFdÑ#'Üõçé¢oÍ ‹L¾O\¿(lïyƒZ+O™aŒzxÆÝ´^FÎèY”Œ(üfÊí:ô]èçâcÑþvÐ*0‰Î[£û.àq7ð*ŸWà%ãÏ(t¬™´Š‹ €ñôʽ”ž{™ ¡9/üÂ@4 Fn ni¯Ba ºx1 º¡ŠTê¥ð,Žf´-Ë’HÓ ö¬o𠘻´÷ÁºåX‘ ´Ü)Ä7’\ 6{L½-t[Cò QæPðAºœðž¥À†èh-m.SÒÚ8§  W·¾hPh+1øí Q¢À!pJø@ˆS•á™1pͳÓ¹Ú„ù–Q”‘2õˆªÖ=•Í‚)ešmÁlAž¬Ö<³à÷Gš9èP²/ª ºÃ¦Ã/¢n@Õ`f£,;YCãe -ã‰Íñí2ÆÈ1åy‰¢€5蘲íÕ¸_Mî2J½Çæ *ÕŽ¹Öð¾cö…˜ÑRÁñPFà~v‹¢Æ!¨iÏþA&_ykôô¨ZTþ8º^PÆiÁ¢ãìq{øGþÜüa?ó\êxjBdÜï®Å6T9TêQé‡õP˜óÇíˆðèížOß^L¦Ód:žÙ¼™…U•U3¸ÖPl`s,Ë+ðZ¥¼N"¢6L¡·]…3™‹¦ôa0ƒ“•Šd$Ñ :´Uœ›(0܃›æ‰ -fÙõíâ0]‚x±‰ã!‚u h³ª1â¼Æ/gÊ&læhÐ䮈8qÀ3-áàüÌ6AŽåà­#»ÙÕ6‡å¬¼’:t÷!«›ža üj0^ÙèÃ:ñX”xÃÉ$z¨ :ŠYÃR“Åd†dþŒ€,Ý«Ôgrà`Tƒ,=%"ƒþÊï…Ú„$x^@kž|)–M&CßM’9˜Àƒ´cÄýŠ>~^ÑC7‹:é›— >~TŠ>‰Ó -_ P»Ó†±[ñJßðHÆ‹7üuÐ#:Ìœ1ÐÔ-ÞKþÓÎ ýåäß?õ3Åw?¼¾Å×_ø꺚ΒÅlNWóI2™ã(ûßyóå>/XObject<<>>>>>>endobj -1449 0 obj<>stream -x¥WMoÛ8½çWÌa¦@¬Xþöb±@Úm€ší6ö’ %Q6k‰TI*®ÿ}ß’ì¸Åv±‹"h’3oÞ¼ùð—«”Æø—ÒrBÓåõÕ8Ób¶HÖ4[-ñû?VRæS>þÁÁl2Mf—o6W·÷ JSÚ”4™$“qJ‹Õ<™/V´)¦ÆcÚä×ÆKúõõæ3®Ïºë×wUEyk­Ôþ+)œ$SÒ•[ãLééñÛ۷ïï)¯.9rmÓëI´~‡?¨\xe4=+Aøßgc¥Ód×ow¢ª¤ÞÊÛOÒ5FÃC-óÐÊÕTH—[•É‚vÒÊ„Þi‘UJoáN -K^~ýÎSa¤#m<»ù)”Ã[PˆLUÊ9±“7Ô ȪàBi’:·ÇÆÃýËp’HÓšÒ³:êhM'Éj¢BpIšÐ]ñ,´[@‚/‚Ipò’ê4™áåh² -ÿƒ—¦@"l„sc G"@lÀé£â4¸ƒ–Wö =šZ-©uÌ“ î€œVe)-åB³…Ï­ã”æ0{‘“·­a ¥Ë9iŸ¥ ÑjÉx1ç$þ­ôƘzýÊS¥öàYTûî¹èÂŽð¤Â9‘]÷V½¬P½Ù§×]rœ„Ÿ–˜AÒØûyïàüÃÊ AQü²HM,ÎQÔtôI™Ú¢q‰ê”®eè}ºæ§&1¢puäUÐ[S× àerÀîd™,¸ÐXB§Û­} ‚ÔpªV7ÇP·ÑÒ¼oèQÆö¯É„oïO÷ŽMDôÉ5ó¿µ¢v¡zj´(ŸØ‚Ѐ=,;úËj§T²BãÆÖ•T‘Q&ò=Híèê!pÐ Œ3=| †;^°&º>êÊŸë™ÆÌ å¹6½È1œØierNPg3ăf‡Wû+÷u®`!“W%g œï Z©­MË'Z–|eÄb.MU¡_ý‡˜Ø(ãÌEÓ©ΞHT’&4Ý>7†íèé:4Ðd"9 !ÍÔMC+¿´=Q@о ›úhU-жþ0œ]R{‹`P¶è°}Ú¸ -нð¦»{ÁàÓë¾7ô‰Ü²­>0bÅ„ƒH ¿ŽcÉ›aÁZ6—39üev'ëd:Çöô½Nú§£pcPÓŸUj¶ç²Ûyzsi:KÖÁ߃ϢjeXB_ý²²Ò·VwƒJ; m×à¨34,:½¿ß#üÝY`ò}ìæýO‘i<È.l¾{â?ÉFbôþÌÁ"MÒ>t+G!úÁG„ݯ†è÷áò@ëû8Odõ‹Õ£ÃMw«ddÏb‰‰èX7L._åf2¸v<"yk‰¦xà2š3=‡þÃ/O­…W¦¸EðÓ %Š=6š3Ú\ég³–ŒÇ5  Ãs I"Óa E…]ÕÀpvªLî¬ hØ4=Š:C/¹¬xä:€7ÕÀ æ†F‡@q&°F1l$F£B„ݶ5ªs¨‘¹*y«8aÑ(‡|ôÍ/¡^ýÃnºCƒ”¬¢!qG -iCÀùNæû¢Óýíýª+Ìt¯.«)-–ëd½Zs…>Þ}xs‡c>cWBÛÈC<á+†¨â“ÑrîÿË5z¶œ%K|Ÿ ] ]±©w›«¿®¾ýE7endstream -endobj -1450 0 obj<>/XObject<<>>>>/Annots 537 0 R>>endobj -1451 0 obj<>stream -xWMoÛF½ûW |‰X”H}èÁ‰’Ô@»±‚äàËŠ\Š“\v—´¢ß7»¢L©rІ Ñ»œ7oÞŒþºiˆŸf¦Ã`HÓpD4žÏð9¯‘”ºƒIósãñ4˜ž9€ñ`¸ÿóåÃÅbL(Z̃1…£`±Êéþ"œ„ü<ŸÀwA£prxâÓñ¢Éþ šs|þÏ:…#Náùp2 -B -‘{1\Lr>ga0£p¶€qŽhŒöO|ʆÂÉ™ÌBD3§p8Çxœ‡ìÂ=9£gØøói÷§£ùñiç§Ó!‡{°üfu1x?¦0¤UŠ²Mç3Z%â!­â^%¬Ýj“ГÈyEuÖXy®·ªÜѺ¦Z“•5µ7-¥ÚPc¥±´Í4eâ µÖf£ëZ–0 •y¾¼^ý@ˆh@?š¢”«¤g‹µ3™ømˆ=R–iÕ¦” ûFt¤œa²¢´;eBk¸…Ê•0|ïëç›ï° Çrì¾çû‡KmŽï ©¦Eæ®:e¬‹QX— î·i½8…ýY •[Ò%¢˜ÇzôbþF¦Òe„ð >óYg*Îh«òå–óç‰LU©j…*¸7eË=ê Ó—½?{ÔGÁ8 »\0 òg}Œ=§1·ömž ˆ'YéI¤ŒýZÀEm”|Bi˜¨ *_ˆ—(5ºp5¥úéQ‹µ@%¸^x«¬pkGV£ŽÑ;Ü;h§Jæ ÖšJU.ɉ¾rê d\4ƒ1Dξõçú–»-Å š]å²R– uBL”ë\&WTjâ™°¶FÉ5÷ίП´Z¾yö{rŒ¢‹Ü¢ïجǔÑöÞpF—0rI½•QOJä´Üýð: ¯Ì6¼„°Ö"~”€>ÑÒ–¯jTï¯FÁ¢(w'Y‰$‡t [±.SµiŒ«*Âí‚M#™ú°Š|Y J¹ lÄÝ^Ýõ÷qy}÷+T¦ñ X `±êC—GÁ4º)k£“&æ@Ï@ȼuÑ&:naÍ:µ––2½e‘`U¸ìŒ àKƒ¡fÜ|¹EëV:$?A­6¢…YíIÐjU˵‡Þäá51“‘¬A_­E|P· „á6Rp»‰œ?ì ©¸ƒâYS  Ð-ŽN§'¸LP±XV5^B­ýˬšüÂs’ Úùàc_2™t¬N¢,[mI:ä&ÎT ØPÙÝr¢’öŠª\r·)XªÛibñ¦×Kì Á¼­dé²èSV×ÕoƒÁv» 4þ›'¢ -0X¾Öñ^ú³`Î;ªýMgûFoç‡;<¨·‚Ô•^m”;º÷0œ©ÊÝpËÆ¢’Ø=8 ö_<÷£y.žû¬kî]”øöÕ áÞÑ]³Î•Í¸0 A[#@-hӨ׵ç&7ÖýÎÖ² ë¤€¾[P ôâæâ9à‹Ì¡cJžPÂH_¨D6%) “³AÓš+Š†Ãȵ"ªÚάÕVSG|  Àº11Êì]»•Ñ3³'“y•6˜FÆ ÙnIW ´3Ò¿[¾ísqûÜ~[Ýbš©S‘'ûzG7›RÄJÓ[ÝTR4{ø?ef‡ŸWT¨W-â¶ç†pƒäfùîúãw_ -DK Âݧyºòlån÷lÞÄÂÛ†m€²8AÖçäȺԜ BgIÊs4Ö±lž#N»RtXÛj]ËñøYð¢'x] ºB­0ÇÚP˜g—ûYvn–~§´—œ¥Kè•=•«hƒÒiÍóòØsvå'û^Oê -ˆGкë%ö¶+úøi€"†,8œ9ÑhWÐ8%ªQ«‚ÿÍâÒ*pš‹ 4œ7͵”Nû;¢t¬»ùöpXœ ûÃV+|F<â$EüZ,)3‡|ò$@Ö LqãTThbp{:5ÃBVg¼&í(fã:¡YÙk¦ºÐsì¡çF -Ø·Ÿu¦‹T-&7wÚF©‚ø³X8!ÁŒ¥\ëǦ²T48@VÒ 'ÓSû@¾ è6BÞšýˆÙçç2ø©°±IhB½Õ'lÃ(–Gñ\o P=]º5RUòÊ—ÃååÙVb"ðǶ掅œ1ñ‚„'óèÁ?îï3=oInÑ ñ½f¾Ñtêv€ûëOo®éÎèpFËýˆw+î‡S|÷œ¨?.x6œÙtdzq0›ÎýìüÚ»ÕÅŸJ~xLendstream -endobj -1452 0 obj<>/XObject<<>>>>/Annots 544 0 R>>endobj -1453 0 obj<>stream -x•X]oÛ¸}ϯâ±üYÛÙ§ë›n°I77v·¸€_(‰²ÙH¢–¤âøßß3¤ìØNÛE›:¨drfxæÌ™aÿ9ëQ?=÷i0¢¤8ëF]¼ÙÿzütÖïõ£ †ýhB º“èªyÊiÎëiлÂwÃÉÿîãc$egýQÛúƒ^4âm“éŸxÛ°;ÄûÝ·ÃÉ^¿e£ý~ï­Ñßg›!õz´È8àÑdL‹ÔÇÛ¥EÒJz–¤ UF•NšåûKrke UÒdÚ¢L$ÅÚ¹\–2y"¼£\¹"«œ´}] Ç;J)S™ú½%©2•/2}¿øvÖîR»7ˆúpÝUe´HÖdküÞSmyWI©p"&y×Á¦ÅZ’•‰.Sªã\ìı[‘ªTÖá´±´YkJ¥U²U®á$Nc‹¸ÖnRÊT.ùÛByX)I—ò4й(bl’æYÚH¬ÌeæxÂ%ù´J‘ãYçvw¶Ñ¹ùÐàÝ"c·e²lõ–ïÃ7»L´H”™ÃÅÖ®´”6Fã Im..U{­Å J61ªr¼ÎMÒDÑG“õGÑá_öGc:Æß\_X0Æ™ÂÉò-SÀº.é n=œÒ%pVH’€ˆkd0¾B,Kg¶@Lð†Ò'ðV"ôñÐGGÀSc¶áÐol­¼½ãÜôUWŒ„†¢r÷Ò² ´^•;3Pb¤à+´ÞXêw1ÀL¯˜³Ò6}¯©­ãV‚Áá'}d×ç¢â¬rPé’Nh¿dz§¼»#3°Í<€ ¤€•#©8.x¤ì% tóø<Ÿûx˜ÞC’Ó:ç¹åîÓÃÓÚ¢²¼.#oºj®b#€*Kž÷¢c' ¶h“ŒäÃtvGs¹ ÓjÙZ;WýÖél6›¨i!¢ËÝz-7¡§¦&06 pq«UÍíà„>ˆkò$VðÎæc¹åˆ™b´6pD™Õ+ê¡Ûg˜TÛ˜ }ãD£hÑ<ˆ+¢÷°ÌýxcÙó뜈]}[ sà¯o‰†‚¨^°i&KÈݾGy€Ñ¿Yôè_•,½žt›qŠÕ+ÉÑ%ÝÉ™÷`‡â cêa·OŽ¤"ɬ&Ô6OA>KgQÉ K¯'ó!O4Ÿýùš†¿iím‚¦OS‚ùŠ–‰³F7 œÍ‘Ç,h ž|¨¸^WÀ “@r©/^ L-Ø—©VÌÿ~²C.s¦†ŒO°ƒÍ¶†{Þ¬ hå‡ôUÂ%ðïS,ÚÍ‹ÿø§HÚ”¾!ºí뻟d‚Àh!üÖ0H¡4Öªb7œÍÇ›kÜ;ºcH§U/Ó /? Oè~¤½‘®0mà©h&6øòã8ŽvL-ØÅuË__ZòE º¥í0:á˜ÁÄq-ȃžÀ<öË›xIÇß0Q&9:(w¶¦Å’¸7xqíÜtéª)Ÿþ0”ÏáŽe‹z¨¥^ôŸ!>ãÞè†üÐçéýGº8tvAó/€¯¢ùâñËõâËãôn—ýn$‰ÿÌ>ίé"`ÖÄyñ½u÷_æ è Õ*¥s2øn|ÞC{÷Óÿ¯KJ,Ë‹¾úðä|N¥;x¨6é°n./Ó+].x¾9ÿžk'ùUY–Ñ“Jžôþ Ö®Ey+Õ -6÷|÷Ïhw“‹•ý©ýTY4Œíg.þsxþà[À¹¿ Ìü…oý]çA`¨€£™Cáé'ãbè·ñ­áÜÏA_!"˜bx´BL| .@ÌOF×Õí /R]@ëðé Ž5Òß—öÜŠÙ¼ÇÐwYO î¯Ûd‹µ]o¸§ kq™,¤àVíoŠt†ðúË3˜›Ë•¿ƒ²H ð|_Õ£¹î3ÜK›ó%˜M7a¢ž±Ç_8üh¶QšÍwÊÃHvn&MùõFøïŠÉ€Fãæ*9ŸÞÿ>¥£¹–hv8wñÎönC{ÜE5¥­í@Ãñ0&èZXÝﲑ‹³ÿžý‚ƒc¼endstream -endobj -1454 0 obj<>/XObject<<>>>>/Annots 547 0 R>>endobj -1455 0 obj<>stream -xW]oÛF|ׯX –™ú°#Éouœºu‘º©¥}Py'ù’ÇÜ-ëßwöHÊ-!hì؈dÞîìììÜê{oL#|i6¡Ë)%YoðÎþ×ão½ñõu4¡é|(£Él]Õ¯RZðóô~<‹æt5ŸáÿüXEëÞ‡eoxwEã1-×H1Ïh)Cä-“¾+ãL{òOŠ2#õZ+I.yR™ µN G‚ -á“'ò†¾*kw¿8‘Å"2vs¾üÚÑÅd -(KÙÿ£tžp0—Å…pn+«0ÚQ¦DÎ1œ7¦óµ±™ðÚä´}ÒïÊ¢HU¦rÏ)K§ì™#Î0¼3~¨|2¬âVi -ëÎÙÝ€œ©A/Á@!sÀØo’Ä”¹'U‰ˆP: íS‡g¿<Üÿ¨´ÐFtC€&ˆC˜ ¤É¾X>~¹]~y¼ùÔÅ[aHRЄ$à'sÌAR?kYŠ4ÝáE&µncwýn¶êYÙ¿:~¿!R®Ré:4¬ú*ÚDTj¹:¯ 7x<mµGsѳÂ8ýÒ”ÕÆgJŸê<€¢Ç»ÛÉåhÑò •ã_¼#©œÞäQ²‘Ã}NÆJe_›ŽZNòJ«~à]ä’Ü,àì–=`š2W‰rN؇†R}§ÞƒqÌSÅ)‘Sb²XçAŽ-n!b z€Úyþmb/jL•>;I«Þj†žµ ;(ÂJº¥TÇ–+H@ŠCñ¡=å‹m.²Uu> å#i´:¯Éæ b5‹0¯Ü3hÀ¢«”…IL¡«'ñè¡Oo>ÓÃb±O¬s ISt•éY—yÂèó È°¬³2 Mf!:T³î$mÍeâsé™i§cxÇ~عï¾#Åô3¸Å¥¯‰Î@s šíä<âá~Áºæ´r®üÖØo,oÁšnj&8[ @`…ó¶L|iUPððîšÆð3vË‹Ëqem—Ñ4zÑ­É×zSZf©*( ‡b”áhm´6Ú~upÑ_…ÊCʤŽÄVj\¬å¥KXBž¤¥Ä\ÃŒõìDtÄÊÀ!ÜcŸcoµ 0 sNL™9>,QÛö¹uð >ÀKûÈ5W5· [cü»ª°÷qSRT®Ùd NnÀI*E1¬RO²ñ ^<†¿&„\=Údï‡q¯cFé×Pþæ×qu¬z°~„e<̪„¦¶‘÷VC²ªkµÕu&Š“T<7@lÛת«rœÁŽÏ^±Z¥Z7NÛ)1;çêD<Âoûz&µ+R±{™:çH„kfS(ëL~"%¯}@mðN¾ƒ;¬î”äZ·a¬ áj@;Åý¨{µ]׃9¹ªóÝ;êHé ­,Ëq4åIÄ“-…³åÂç>™z«¾—¸`eu£­E™úÕySÁ›oµéõ«“>ìNÃVè:B F®”Džç¶Ê~:UGLøÿ„{ªß?ªÛÉÃà–1ïx (ç­‚ôšv¦¤­àw«eŒíŽeY/èì AÕÀQhl·-G{’k×’r W„/ŽÙÞ“±Ôr¿ïþÛ0 æ®…ë—ñîï(g2V¼ÔXJÓ^W#®‹]!Ü8¯Ž1@åßøP¨rmÒÔlq§4…Õ««zVbìx`¥€hà&0ta¡1ìÓw§{kTa«Ä#«~½ùð}¼;\ð—Nº°!ýf ’`‰ßª4ÅæQñ2¢7sG÷uÅ×PѬՇƴgj;á³IçI°§^êµ¼Z‰‰Ô÷ú¡Öä4Waÿ‹U •ï·¥£a¯¯sJ…Un°ÚŒÛB}Á² ‹bk±*c ãÀûy}‘§øp5¿¤élV}¼XÜüùá†>[>Q|4IÉêÞßíÍ‹Ù6ûÀ‰«ÙU4›Î±àÈdÌ~]öþîý2àoÊendstream -endobj -1456 0 obj<>/XObject<<>>>>/Annots 562 0 R>>endobj -1457 0 obj<>stream -x¥WßsÛ6 ~÷_‹o³sË–ÈòƒÜ¥i{×f]â=Í{ $ÊVK‘*)Õõ?€”d'Õzë’\S €ÀþÒóa‚¿>,§0 Î{oÁd†Ïy¸Äçÿ4‡”¸µ}<¼éÍ”-üЛC‹¹·ª{Ë‚•7»9½É›¶zvqÖ«eáÜ `ÑʬÞ|EˆjnÑê5²LŸeËV!â<ËœÍeè…­M»8Û¬eá Ãœ·2§,`ƒÅ.Îzµl¹ò|˜·2§·˜žs6·‹³^-[.È_+ó}Êï|J)ÏÁ_údÕ®H“Š6³ŸÖìÕ¶7¾›À -¶)V9ñCbk8m<Ìd¿Î8ÿð/×ÛO½ Œ¦>†¶M†ý>T2VyÎe åY -'UCZ˜RéLî¡P&û¶‰cUá.&“Úˆ?Á¼:#vÇ­ªВθL’AH2Íc´sfàÈ…øNÙ­²ä¾Ê#®-ÚèÙ‡Û¶ÿoÛbyà_­åœ<þYçÈmß­À÷]NGSàÌ <$¿)™fûÊ&å‘å£`Æwó … ‹9Ùbè©Bm™f9/¹66¯ì+Ë‹&[‚É#/F» ¤8Á1+Î(«a4¢·#‘°Â°ü©Ë!1¯™ŒE•ðĪÖ³ÈúmR=ÆAL±G/qŒ^)™cl]Æwqíu´ôBš¨¶›KxêÕ -G~m×Yàú+×nÛÿ6Â’3’Èš1Ušfß^h$Íì…F -¥ËŸ1„óüÕ¹8H#lIêÅ„›XgÖ¸n¬†7»ábw 9“P°=î• …D¤*!â8à ÎJÔÐÜi¶µ+™4O¢tÇ¡&õÀC2KÕçÉìC^Ë#Ãñß ¬ê[G ŒŽõx`î,b‰4/‹#…ÜžPÃ…býS@]î[èÅA3:‡Üùál¯L"KH„û.µ¹²‰nFÆ|e¢j‹ü,-ñÉ=77¨ˆ‰h亄cBšíŒÑNÈçYxâ ‰r˵§ðIì;}£ªuÁ¶ÓM¯-ÃéƒÒû«îʃ)xœ¥'‹í*W؃2¥%änˆü`•( ¤æ!Ñîº+ySñ±‹<‹ÂCÝnÏÜ{||ª(3%áHäÃIâ±ÝÅ¿.ß}Ø *M7È‹’i¼Kƒ œ%(­ãØ]ÿ¼ˆ¼Õï}Ñ04\)/4žj¶Ôy4†"i½ÚìxèQlÝø™ðDJ^ý¥õº†Y¸êxYÖˆˆü¬¯ NÊø`3{y=ê‚åJj3¢ÜÏ2lÏ%×Là­ÂÇ$7žj(<ãh6¨Ï]êaVoC»á¯»!^ÕÖ¿TXÊ¡Š>!KbsÖQ¾¾$R™-íÇwa}¡ðü¾Î À˲»l>¼ÚÀG­Èܪ¸¢K(#”Q£0ZNèb;t—°ï¯`îd¢Â“Ú|9÷–Aèn.Ó)½z½íýÑû>{—…endstream -endobj -1458 0 obj<>/XObject<<>>>>/Annots 565 0 R>>endobj -1459 0 obj<>stream -x•WÛnÛ8}ÏW Ò‡u¶â[m§@Ü{‰“­  䅖蘩$ª$e׿gHÉVÔËvı-j82þY§dŒ´m&¢r 6ÒvrFJÒÓõ›ùå"“¶±|ÙÄEhmt®Ë«PÅn_©Pù£–ü^›‡ócô*ÍEç[î¤.R¿ìç·øŠGô0hmë|£JP‡4´X.=›îæ7ž &AMÓÝwJ[Š4=%”¹.¾HQD‚ê8¡Î•Êûçí~ÌiÉ´‚ŒR)¬¤QÔïú`þH î’=X'3R–ÖX˜¸Sh«¾U‡hµÅµLŠtÚ -WÎÄ—6ª¥…¸œ´á1nr:¢wÚP®÷>@й¦Åªçù’«2:é ˜<¤z £-TSãûP¨ -‡¦ž{£A`5 yÑRÆ¥Qîà¡o*Ãþ@ë-¨Fn¯Ie…6N€z…Vl ªdkih¿•9ÈiãÒZ”Ò£`ëí€Js7}µC‰[gJ” hsðe½x7©œnÙ«Uº`!=Mºƒ\8êÉ¢ivÙkƒšswüt”>íDZ" P„Ê\æ±94ðz‚ø,̤J#®ÒèM£{8¼â~8™RÈ¢NÒ_<ºÒÓ»õuÏ{Þ´*›–;%÷ÿ/÷ßJ­væÞp .O¢¸FQ£´_øbÇP!'¿9’_KœP0\‚Äjí­ þä)‹×¹puÖ¿·[]:x¯Q»Š ­k£Tê6¶‚yc± "Éà€ ÇF›,(MeM¤ -ÖF]ß\,Víü»`ü‘sÃòÖ®o¯?ýs·úx» x+PhSëÕÛEïÃíçÕmïµNS°®<šLͺUà{rð©l”Ó9®¬-ep™s¶+²6='›­ƒoÂÀžyËDnD™Öò¾,±š¨ÉWñ®•ü}'0íEÅÃN½ ]ÁµÂµºÔûç U-ÃjC¨Ö8>ðJòr…—:“Vr= -‡2EDŸYÔ!2¼-dÎÂh%ÆóJ¸;{ÜϪu -Jhf·G«þ¿t¸Õõ2H “y¾[ȪuW¶{;å—}ôGlt|‰¦4cØv˜ئÀ!íû;ú ,Ùó…OˆÝüX²_BºÙ|‡©—[ƒ íi®ÀÔô‰Ra´Ó±N‡D°2h#a§Ûˆœ¨j¼x7¢#ßqšZxó^u)0h¬0\¥)o¾S TlËÂWúñ¹ébDÃH¬áÆÞ™Q÷XgY™+$ÉcÓZº½DÉãT±â[³þC¡¿›šVÈ 1µ_QõöÒÇ ¾Øñàr´¾j^ƒcû¹6Fg´àžñÚÚö×[91GÞVݺò¨Dç¸f÷²Ö{þ4}ÍõåÅ`ìçÖŽME‘x­† G-½¬^Öóí84ÕgÏ(x9'4=ÉÏy¨Aûè†Lð ?w¬§$ÓÓDÖǘÎÓ«_Ìqw²W§æÕ=u®úäÕ=Ä?ë%ùÕyœ_…gÎcpÃZñóam à茭`rqüÅÖÁYò1‹ªÞXÈX ñ±Zb²5Û¼çϧŠ'ëš#Ëœ„ƒ°)„aêT¹ÓfÇ¢„ê5gƒxíB™Î7óʼn[ƒIo}€Ž¹ÿÕ“·À¹¸E¸#tcXÇÔ­ZцD]Œêñc‹Ç’ˆdhi¡ý°5×O+Á¡æ_êNó´ê' ;/ýÚ}êCTOÿ?520ýz¾™U2ŒfÑìrD“©ZZÎo^ÍéÎh~n£7:.ù‰ÐÃÄQ{ƒ žhg#êMûPO Ðo=PŽ§ãh:™…9k8â`oWgŸý _€ÛHendstream -endobj -1460 0 obj<>/XObject<<>>>>/Annots 568 0 R>>endobj -1461 0 obj<>stream -xÅXïoÛ6ýž¿â``˜ -Īe»¶ Ò8i´ëÖxh‡ih‰¶ÕH¢'RuóßïIÉŽãnÉ~t-8Å»{w÷î‘¿EÔÃÿˆÆ}Œ()Žzaß´¿Þ¿æohÂ!õ†áØÿ•Ó}õ£pBÃÉëúø©$-Ž^ÍŽž_)Šh¶àG“1ÍR»qfI M••ËðÙìÖÁ»®GÝhö±0XoÒ7B›iÜ’f«à”f+IYiäRVd²‚ÿ -U¦štV&’¢“q6+Y’ÁÚû6‚¼øQh½QUº·3‰2Ý_\šÃ‹w<¡Ìk#5m$bÏá6ü1>¶ÄÇÖ‡“ˆšðâþh¼gË>ïögÄ/’Ä\æb©÷œ<%‡©oœ¬D%#+„^W•ªËT¦4¿#ý{-àÌOo¥ÑôëoÈ˺’Z–ÀöÇbC‹ÆÆNDºNV$4ýLqPkYÅÏŽéC²[m„ÉTÉß|ŒƒRÑÚcIòË:«Ú‡ å4ÒL‹y.ÓøÙ?C#WKUÎëh\ûBø,òZR `~Gu Ï}†ï§å—_Å¿I[\,¾©ÉÛ,¹ýÖ6Ñfç¢<_‰rùí°…Ñ·µ6ßØêJrZeŸÆ©×2ɘé"å5”Kƒ®"£À#Ú -±¶ ~þáeoVÔ¼gÎnŸU21ªº³Õ¾ÓQLY÷ö-?ÍåÎ 1¶¾PUA§æ/4ðGÊœ[Þ!´ýÖIçTHïåÂúÊÝÑÝ1Ë+;¶wœõü®D!92oOóÔ¹ˆƒñ3„XbÉÒºA…‚ý¬dl_lᆯ¾ÚPƒ“pħ“*[ƒMÍêA3:ÛÇ´®ÔZVv//r>³Ò÷š\hîÕc -ÏßNñûâãÅ1©Š­ì@¾:›Ñ"Ëehç‡'Ññ" eçî{kˆW2G̨@Ì(–Òxc \ìÑ nzˆ=ÃÿâÀ‘>ùZájÙÇéõ¯2&Ãs«ÃJX´ü:&$$"'1×*Ç|½Yq6°®i›Ãà1ðO/Ï=kÿ^±ó+Ðo¿U1^zÜkôÇ+¿@iC Üá¶jj[t{A*ÍëY³–šÈ «VvÓ¸Ë/ÇnykS¯Tƒ¦¤Ë[Üå §þrBª¥á©ßæŽU·ƒe©ÿÃg„Xs[ÄqåÁÊÙ ”»Î×ÑášàŸ^IY #}•²^ô¡gAYœ¡[Ñó ZñÕh²Ã"ä o>N…TÙ¾H=µø7ò·•t– ›ìø&n9,KYôaÀUtﯧ_Qcsi]e…¨î^Ck®¯§0áêøË~Zò6Í—¶#ÜŽ.ÙšÃ@·? £jE3’B|RU†éáJUËíÌÓ„"%U²<„8t'„QÌYÈh+Œñ‰~œžóû‚RULÊ8¨üˆeø÷êØîÐÅ+Ý«wfïlƒ§Òˆ,×0†NÜðá!›-k8à,B_ÃŽ“¦Î̹*M¥òœ%÷!jXà™Ú°— UƒS·'60 ùÁ¡eÐ'œ Íáy±2¨î(s=l‹ÕARª²›Ê…¨sãÈ^ŸrŒ8¶µÐB'\µŒø¸ì¸M#¨·þ)¾¿‡ÁÛyöwÜhiô)^¨3ÔÕH—Œü"Šu.1rµ®1Qfg7W³‹×ïh…R*Qds‰o[f)Ÿà\%óa̬„?I¿ðÒÀË'F„^³ùwoðS;dš h#ì!tGL¡V²U†ÎÈp¶t/4‡ø ‘”ûû8õõå‚°¢Z4¥Î\&·wçÄ®S\®óŽ›~{~)ø½oÂÏÎlßaNlas´Á.Ž­í0`m·¸*ߦÇÚL#D¯–m±Ñ0:u–¾´Û«úåZ*NRš¼´ÇTµìp­’Â柮ÔFb|»–dj:ăãH©ŒsÀÂPîf‡ÝÄqTçÀx L;šÔ¹Òdr‹êÖ1Ô&Ã|¶l¹¡B -ÃÞÖAgÙ%kϱV'w‚qo JŠ 1…=Y AZòî Å —¡ÍÔÛw¯~ñYjÇÖ E¸#YàÞª;ˆÜuÉ …'!]¸¡7ÓëKºÛñ¡Ž—¸G„©¦Â±MŸ/§‚\ØR,§ƒXý°£vÖTqÉ”×÷ ÍäZ+}iXVÍ?á˜àÈÑ(ßoxûCçoZž×Ͳ–Úô¡w+YÈÊOÊVŠ§A·çTÉöJê”&ãÉtÒ‹†£Þè|zÖ?ÇgÃáÅåY4x1¸<ï½zïà}Jýh8N£¡]÷ürâ;,á*o2À7ysööÕ†•âÀ0¬ðOén‚ØB·y¡;î!Ð4xz6àH8MR¼Þò®³£ŸŽþ%š9—endstream -endobj -1462 0 obj<>/XObject<<>>>>>>endobj -1463 0 obj<>stream -x¥VÛnÛF}×WÌCÀâ]$%ÔºbÉ ESKr%­Mré½Àf‹þ{gIJ–h71P 6dîìì™3gÎòqà‚ƒ"üÒbàXxß - ˆ#ó…m³à†®¿µú¯ŸÏ7{íÀ6[<"ŒñK˜Þq`“+Á -"ê‚ëêj9×sÜ›û#×Ád›l˜·DÊ'.²)ŒÇÞÄñ߯–«Éj=›-ýyàçc7p‚Õª·µzÊ>©î¨ÂÌ~¢‰ë½ œïx¹a‚Ó[âÉ=MÕ"Çó§ I‘Yšr]ª^œfˆm§©T^oå¥|»mÓ{n±Q/Š¤©Zçd‡§üþõ~þè…¤?Í% wâ8ao7’± åbOÊÝ¡T{€ë¶y¡a{³Ç.ó<çO¬Ü“@Jø´¼Z-•¨qI€–f)áj -£OyÁè *.ÙsG´¦†B*§Ò‰F^€ -ÃS³r -Hâå.%BQq\_V”W9½ÈÒË*'¬¼çÍw.v½º~пŒIÜ[ßÓÜT<ƒEsB?ÇÿÐØÏ|&£Svz(ÎâNiíŽS.ZRñ2:§¢®Ô?óêÚ£÷ñ—‡¿PL½¼­ŒÛ¼^ºÑEBÅPZý9I±}?¤—ïXy·§y>;a¥¹ïð.qïXv€á¾Bñ¾Y{Ã<¿_Ðqˆú {^Ð%è -\ÔXŒùßVX¢;nwòíUöÆàØ®^k©sùŸQª—^ÆQ¼Œ7p±œy“0ŠfA€vèúc½hìÅ^OÀºÙö›)ó­È‚ëúîó'ƒ° ÀçÆ–G¾c5ãoB\ æšåNywj˜M‚Cb"šù¯rݽ¡Ë6|ÜyÊ -ò@Áô»Ê’?‹Z>æ–lD÷bƒ[ÁÍ‹ ,yªQઃptØ0Šó¢6<· |}±¢0FÃÀ%olv¬6ƒÏƒýéò¼endstream -endobj -1464 0 obj<>/XObject<>>>>>endobj -1465 0 obj<>stream -xX]oÚJ}ϯ˜û‘Šù ÐHWWis£‹ÔV­BuJuµø¶Ø^ww„Ϭíb‚M¢’‡ ³sfæÌ™™…ŸCàoH³§ä'?i8óFÅS~3ôæ4^yþ°¿NéVÑ—‹wË‹þÝ[NháðtŽ7 ¼Á`@K¿;öfÞØ£÷*ä&×2Ý\.ÀbBÃaaÑÍ`Ñ]n¥¡,Î72¥Xø;CF%!m” -(P~ž„©Vªô ­sKÛP‡ wÈl•¶$ÓH]3ú€z£)âêM » )Rq¬៬âEWe]Ê„1ÁšÖp¦Áq]zZŠu —)íU®©8Â\]“¬=9>³sáôïô¶ÊuRÄuìþ¤o -1é^A€ù^2qÝ•ï²î[ÕÏ‚õÉÞüŒ=£®eBd$CýÜö8GFA0¢?ù"¥uH"Ý“±\΋b¹ ß0+<ÁiÁ~hÒŽ% €¥Ý:Jh†TD.ƒ2p<мÇJQ|,ScEê‡Îâ-"çßd¡/£=%yle¾GŒ"d¬%LQ„Î1ƒ7Î\Ä8•†¡«_Í7Jž›EÐM -­ü"ÂüQÆY“Œd‰˜TÆo •\mäC˜"s»ô«šS$ a°Ì¾mbµñw2¡ÏÆ^QS"¸v5¥­2–š^½â£T$(MFÜVq‡Å³]§âz€&×'àÌÖ£Ò¿xi;–tS Ô;ölD²/z „k⟿~ -ã&oz£Çƒi;Åj}õèhf5s1‹Ãèk+dÊ-Âô˜¢¢Õ¼Ñ`ˆ‰3ó&c'ô{ };ûŠu í•v$óì²J‡«™É©3æZ”ˆ]W?V¥Xv—Ó EàòSi¼/看„%CË®r¹q‹œZ8ÁšÅˆ¶{LX4 Õ㘧D$ŸpÀ¨RϽZÒó"i¦Íõ4LjI‘'ðå2ƒÇ㪻è<`à Šd÷¬,$|0*“Þ -Ž¤6vuÙ:Fk:ÕFH‰ê•àõ"÷‹]uß®.+ÞN;€"¾â5;éïÚ!^ƒÀŠÁúÃ$0¡= åÕ<°ü­H7ÐÍQ:¯FHrÄÐñ8«¦JF ¶) õª;ººZ]âAžÊ''T¶j¯P 4b3j#î§%¶—³©z."ÊíiÞ§*Àr8~CìðQ´GåqÜÂHäN“;ŽAÄàíÀ[¾$R7“Ò€ý•©f+6ʄݶcó‰@cé5‚×±]o¥ÆÎSz_18­ºáæš:ÿ\w^j½”Œ¯eæî­{*óNX[,^,B 6Bóû±äÝÎóŒ·XÕèh\'7ø¬=ÉL+7;]´'“£ÁõgN u) Û‘…ïãòÿEúʤ7÷ï *EE¼AÛ=`£ïp*/)n螧íߺk žåèT(öÔ§¯>¸…%âø\Íòt—ªGT­¸=>£®¸cƒö¬’s —~‰Ø3Td×üW;V.íš3ÕÛÃ,¬k ÇÉâLÀò\ö›ßÞh•gÀ†ñ9lTÜ}3•Zî·íTÎÛ`hjas5i ¹½õªb…©¯÷™Ek¦ç¯¦èé|.dCä¥é㙋oóNisЀî løTDu>t7ø©Uƒ˜ôW.žZ¾j¢q£8ŽË£íŠ(ú>| ä[ÕîÿÖ™ÃUã΂qÛ‚êT/¼=ƒRåuõ2Ê‹yUXøã4­ãˆjXý»yùm~8yƒù˜¦³©7Ÿ^ñªû›ïnè³V?°âðÃGí÷æ·W™ôf|ÕZ~ö˜Ì&Þl:ÇÏ$82rßRþ^^|¹øaD?\endstream -endobj -1466 0 obj<>/XObject<<>>>>>>endobj -1467 0 obj<>stream -x¥VÛnÛ8}÷WÌ›À’oŠooI·YHzA\ì.  %ÊbC‘ -/qü÷;Cɵ-»E""‰äÌ™3ç óÒÁF0Ãd -iÙÆC˜&‹xÉ|†Ïcü5ò°,øzaa2ÅÉ¥…q29?q»ê î`•cöé|« 0óp«´÷þ•+ç™”»>ì´‡”)¨¼©–ZÁSoùt,wÜ€+8(VrÐ9p–´Å—ªÛBà›-´—ØŠ§"ß…Ýõp|•1ǯVß;CˆF“xŒ(zÛ‚«zE¨M8àØZòþk0iõ€J»‚ö­9þÉöñcDÏ*|À$ r£Ëð– Ž€¶BJÀíäkÞ€ÊbZÜ-`”Ô$EbNâYœÄðÕRÞJ2¡sP1k·Úd´®R³«Ï~|®Ã8ÆÄyïXg´ÚÈd¦Ú¶á§·Ó úPè-åæÐÚŒõ–˦žñ´Æú! ܆&HñŒ»vÜ|1¬åº"Ãæ dÉ,%S%µ+kÚÚ†,ïQuåûõŸ˜­ûñëý}5³ÅàBq/^;nID­p×iFŒq,2zn$”jåþF'­Ô* =E©µØ!>Îfû@|Pºãz/üe‘1¬ -aAØB -ñœyé~­¶ëþæÎQJ«¨©þTÖÁ$”àØØ{‘9L•¶V “H{EÛj´4Ú ¯¬B)Ù3å´íÝE²­cÊuÛ,Þ‘ÞßXYI~d[J¹—2Œ‰|—@±î®›9ÔƒwŸ>¾»Y=õîmïw¡Ûô&¼<]××èüz¡ÍøŒˆ@à{y^LKýiäG^Ûña÷øå2úý¢BŽ•—‡3eãɸ$ãSgEŸÓ&É~~ÌcøŒžÊÖðïÃ=ZÑo„ª›a<­ÇÍ<Åpë…Ì°ç@à -+u汿†¿xa¸)Öo¥SÑ8ØõOJ^¶#¬p™¢C•­¿á>¯Îšƒbà°jÐ슭>ÅÒà Á.&O6;¨7àõ.šžÅñ–òAëØ©óI;Ç4i‘ÚÓC„¾©'6­ÓýÓ b7h˜ W&6…ÃNm™ÉЉµZiã‚êû4 Ï*Å0<¢öÕTwj9ðÖ Ûeåšñ±Ì…ä$ÛS°=~§K¼Y'„í™FkÔ)ºhÃd [K¨Zô§ÝåïV uýf,Ro ª;BÚ%üCÐG„²¿ª/–ƒ%Îê«ø0¢hœEߊ, Õ`ÞÈd4Å{渞6æ~¼y¸½ÏFGYÁ_Ç$@Ñþ@4.þì‚NfI<›ÎÑ­x5gýýªó¥ó?z€ü×endstream -endobj -1468 0 obj<>/XObject<<>>>>>>endobj -1469 0 obj<>stream -x+ä2T0BCs#c3…ä\.§.}7K#…4 Œ™¹…BHŠ‚žP$YÃÓSO!¤² U!?M!3¯¸$1''±$3?O3$ ¨ÏBÁТO¢¯zs=s3  -!)F #\C¸¹ù&èendstream -endobj -1470 0 obj<>/XObject<<>>>>/Annots 609 0 R>>endobj -1471 0 obj<>stream -xZ]oÛF}÷¯ôa‘>˜¿D©Àb‘8ÉÖEâxc/òR`AK´­$:×ÿ~ϹCÎYIQ,Ú¦=>sgî÷Ü¡ûõ$uü•º*sùÔ-6'“d‚Ÿ„?>ýód–d®œO“‰Û¸FN |‹yXƒ-9ÆDQÅðžu‰È*f\Jz ˜©,2[ÏU 3×+쌇ì,ÞE—VƒEk/DÖ§aÅáæÚ¬˜²4 ÖfÅÈzÑ’íÁ‹BcCõ$f5Ö«õÖÜ9D!âT } êFV0XŒSe3L·(«˜`ÿV0X4q¸8œ«Ø@µ²æ”£Òx™¥èzH7CæDÁ`í‚V0XT 6Ž²‚qì„Ý"²ŠiPEsƒ¬b”Ê -[Min”ŒœÉ¬ÒëÍŽ`“$~4äÍ¡"B‘Lsy+¬M -†Ê(/8#ììƒåS XÂEˆm'Ö/©,Òˆ¬`°vÍ -+ì”OCaCá ‹,²ŠÁzÓùŠÁNyyˆ¬`°pÌ\YÁ`çÏd3¶³5œkn¤‹Y01ù™#DS#t~!9ö ΄C¾ŒæÓÁ|ð+,^)²‚é~ºAdƒ…©°–ÄYÅ^ÉcY³ù$Ž˜Ç²W +,¾*Ê -‹WùÁ΂Áâþ/UV0s‚Ý ž«˜Qç.²Þ Ö„p­!<†Ì Á8^…#+lÎ6#¬`°¸Š¦Ê -‹»ã@V0XäTŽç -†AÖ#Ë‘!C>²ËØ—hŽÀáCNäìCÎ(‡AÚ&”ˆ fkŠœ@hŠ„€ëƒ bú€¾Èú¢Á½kc:o¬ÌÄ“v„LÙ‰"©˜ÛÌ• ª,vBzGV0œ‡‘IU Öž–‘õ -ãÙÂ*÷ˆ -Ü ` …#ë e½‚‘ì ð ›aÖ€±õ -ÃF{£òÍõ™µ%$Ñ¡’}hŠ¤œøÏC¨vdƒZ*‚“Œ¡ ¤b°ÈYdc`m[>œ˜œx¯föŠš™>¹-kد䙊ÁbÀ¨” ßsa­Âù°Y-çáÙÆ‚©/ÇÚÈz}íûíp;ú·æn衵îräpä±)Âmm;R0Xœ¡¬?²ðŸf|¦()‚˜2af s[Edý¶Öáy¶ißžm[Æ•:†¤¬cŒœµˆÈ >ýFÎ:Æ(gßz#'ЇÛá<Ž¡wbHÿéwÜ5ÅeçDV0ê9·ÖÛ—“ƒ?,6`öGH·r¤b°œTT1ÎÖ ²‚Áb€O•ÌÂf¢¬b°˜˜² ²™cßi‡:²ÿ6cXUã¿¿J ´Aâ”~!ÅRSÞ¾Q.BêÉçAàL< í½BÆþ›;VAEŽ'‰Gá`)àðÄ1àß™ÈEÍDÌ †7¨"¾ôT‘cóÃ=Œ¯8¨;ÜÎø§kÜíÉëë“—ïÐe'îú¿—šV3w½´_Gá'‹çÛ¾k—ûE¿j·?_ÿk‘©_{Š»:ÃêWõæ¦v‹zëÚ‡¦«ûÆ­¶î[Ý­ÚýÎ]}xí¶MÿØv_v‰»¾_íÜCÝõnÑnûzµÝaímÛmjžàð7~~»ºÛw«íÛÙÆ ÇݨÂÄZÛÇÁÍöÛªk·›fÛï¯Ê$¨ÇüŪëúfݸöÖáH.õ+QnãÊq¿"qÿÞ5«·Kwu_ÃA»fUú'·n¾5k÷û *ƒ%ßšnç¶mOKk·l70å÷ŸŸ©W&λ¦ÞaÑÅuá üyµÍ¾¸Ënµ©»'÷Æ$M³®]¯›Ž[à÷‚ÁD|ïN°ºéš¯ûÕnß~jê%œstV–¸×õâË]×î·Ë#6OxHðlß º}Wñq™À+g]ƒ!"êÅýjÛ¸ën¿ëݫŇõ°û­]m¹äl½¢“]ß:žâ÷?6 ¿H°Ýv_¯‡íÿÛœpd -&q?}ÜžâŒÓw맟þ¿Mà–Qo*ëu?Výô0$ìY»Ù@áË®Erm¼Þv]ÛYvøoŠ4xÚõÍÆ]¶ëÕbÕøÕ½]­›ãõUâ>ß×½k¡Qçî›õƒÕÖ¹»kú9b–l­×k÷¸êïÝû7¯.½~øŸ3BF9Jõæjtæ¦ÙÜ7ìŠá`1a[¦=•²æÝ5KÜ|‹/õÂÄ}Óܬj»UOŘ•ÿ¢ü§fùkÝ?k˜¬X™›Xïõ>Z€È¡<áå§vß¹—M¿xù¥»)$ÇíÑb¶:6ïÝ6Þ÷¼!}ççr ¦0+Žv·[ñÒmBG<È ®Ü ¦‚¿OûýÑp?WÒ•$xa7 W:­ð¢í}G=8„„ðà" -ãû±´69Þ>…‡bªø=ñK‡gJ[wDý½Süd(ðç¿æeí=ùÒCNÞ ÂÍý=N 3È߇ÉÃrôå; Ø6À˜©ø¤d³Øó­ÀäZMgí0 esjúöúä_'ÿG>@pendstream -endobj -1472 0 obj<>/XObject<<>>>>>>endobj -1473 0 obj<>stream -x•XMoÛF½ûW t‰ ز-»¶[ ‡¦©’¢°Š €/+r%mLî2Ü¥ýû¾™]~håŠ$(’óñæÍ›Y~?¹¦+ü¹¦ûÝÜQQŸ|\ž\>þL‹+Z®qçîþ–%]ͯ®ðKqúûV5A·t;§¿=þW¶¤ç­j5y]t­ {ªô›®èåtíڳ巓+ºXÜÂÆ)Ó­'ëKŠJW+c_Îø©ËÇ[º¾Ž>/ó¿ñ=þÃü]UžÂVSQm©@>¨6t í¶¸˜F0#?žÚÎZc7sZn5ÂäPÃΑk‚qÖã-‰^‚ž¥x¯o¢NnÖqšñöœ¾nM±%·æ8|44‰¨Õ…6oÚ“Z¯ub´;µŸFÇ-…Öà©àHu|L¡‚Îœ›àuµžÓSPxša+ \„jŸd¶a÷´i5Ð?Œ½œ‰¿ÞﳪWªQ,õ8Á6½Z·ÃãÀÉø,Ze7úœV€ ´FD\¸ ÛIF—©>ªiZ§":(Œ[)ØÐîáÁn¸Æš`l)Ì)œ ­«*\®ö™û×sy–¯“«BYr00'&¡DÀ‹zS¦R« -åF w[—™«¤ -®:¢ªÊít9O^ws!éÓX,µ/Z³Ò4Ö~¤÷Ú´> $ä<¼©›J·’í{OY7˜ö)æª÷‰×àoλÂÕ5>)7÷ÛÆÁ®"«7Ž‘„¦62b0ÑOHMⶪŽé7ÊûkKé€ „ÞeeŠB7\K­þ²Á+˜Å©±ÁËÞ¼Õ+c“ÿ/. øAü6¡37üÓP³-³ŽL©•”)ó»0G ܱ¡C©Pêÿ'i%*wNæ ­·#ÜÍb—1úx‚º'þ9ÉqÚ_Ø=;¿z”$?tU‚ò•§×sâk\^ôúÀ/Õ ¼±){þ!©“¤fÖ¯[WXZDK‹ŸFÿO")}ubQ?Ž¢â4!!£+ý£‰jãœÚ©Úu,’‡ˆíËiç9ű@”û$f¡Õˆ:â -6Í Üâ]ïaج÷òõ¥I|JÑAlÙCmÍf‹¶®s0’Cæñ8£èÇ@ /œYÖG]*Ê®*0 qh$îtŒ0?¡ü¥Óê® - š¹¿wÚÏ’žÐLâÒjß8[r{ÓFÔeôÓÁ”3æ%râdYbFIçGHhï·QìÉdŽe'"w1õ‘gž3ëÜóP}Ñeé;Vý—Ó¯Æ~ú$*g1K-Ž®i*ž6×N&¿ç0Oë$…¾ž£cwýdHØ8èEóÞ»1åæ$^Ì°8Ó`¡Q-†Úš«¦yjˆ¡¾Î=71û¦ªÙ3âíÀdDòò‡AŒLºàåL8;ŒQ ¤Q3{‚F‚«k4"Nb;mò؇„ò{WÄa7†*ag-uƒÉÀkM\.DŒ’°×ZAÕ…@^†9k)\@Ô_‰ÛTÖŸ!è‰2`Z¬ {Ú) ’—ùÅ;‚ ÄÊòœY¦È°–²8§g‡‘ÂÃI·È«šlg„Šˆ¸¾,yÈFÍÆà‰dnû:úq @‚p9/n’=ßâ"Pˆî$ê¬ù‘wž/¶ºÎ;»@´6¯ÇŠQæ{cë’ûRšvÅaÎzºöó™Õ663ywÒ42jwhø÷RyØÃ{[ËL6ßTeÊ Ó¡ü¼­aÐö£jÂ,ŽØ-¸†_E•ñB»Ù ¥ý}?›ècL,s ‚ب!€'Ÿ$Œ³ˆ´*Ù³‹ÎÅK6”D÷˜=~}gÒ£™к«X-2ÿ[¦dÜ“/Õ^¼9q!8 /ÉMæ -ÿH¿ÎÈ׫9Äsû=°D8=bL I ü)^Ó»]k3ÏjÃË–´´ÿ}ì0Õ$= 5`t‰\FÓœ~R}Ü8 [œ™içÊöˆ•‹·!ÌG9ÅsI&É“[ÃvK±w†9׸VDAî¥hDeb{€ŒV–öaOÌ/MDöhÁå¤ú­º„à·8Âai^æAõ;:óÊîŸèFn ž¿¨}ºnbf•Û a×(mÂ@…Ñ›áÐ!mÊê1)'+˜Ì|µQ‡æh¨Â.+ÞEh*78î'¬Qã„f:÷š–•[H—¹h“ôOZ3noŒ)3ŠO7bñ°è@PÂk\…Çãuæ˜ js„XÎÇ\ár]ØyƒÝéA@þâ1]9®Îg2>ˆsýÿãx/CmÀ)ÒNˆ™…jìù 3Gß ´xÇwM亶E»—ƒ¿”·ÒúÚŸ1cî©!d0)ÂQŸ+2×3±öª÷É%R^‘4a3ê5®úB -RPèY='q«ÞŸoêÆ`[‹µfçìóòñaü:rs=ço2ÿóSLÂ9~GÙŸ~~¹½¿ßß=Ä“ÎÍûücyò×É¿[:,[endstream -endobj -1474 0 obj<>/XObject<<>>>>>>endobj -1475 0 obj<>stream -x…TËnÛ0¼û+>9@¢H¶k¹‡’¶zHÑÂ*zÉ…–(‹©D*|ÄÕßw(Û-b¤( ¹»3;;ëçI†”¿ ù‹Ên’&)Þåi²Âró{Îc%êÉ]1¹¾_"ËPÔLY­sž¦(ʙԥz¯Œ†ÔbÛÊ -ÞÀ…¾7ÖÃ7Ê¡–Â+/!t…Á4âEƨN(íy àd/¬ð®Ûö¹}…Zµ{ålî.Š§IŠ«l‘Ì ?s~àã›cŠ±•KðÙƒ˜#)³³¢oT)Úv€êzãœ"Ãí­Ð®€µ5‚V¿ðªhlˆqÿfÛj}c®a·’’ g:VÊØ™ Ðb';©=\ÙðÃa;`Ozc"üÞ 4¡­°•ø){Ö2erƒ.“ãõ|•,£S'Ë`•pCí‹´St’Í‘ð؈n+8È8 ^¢U¤p|U£V6h­ôD˜Ö@g*9Å6xˆÒ‡Q½(0›º>£ÅWˆÀε§Ð£¬|Òà„6Q•W…4Ñ1XY–´AU©XA´¨ô1ó4Û3àCÜLö†^;$«²Æ­¿°Ôåß(É„#81|ÛØ?Áø¡teö_Šã.£-f¡)Ì‹¤JÑÇ¡Žo˜÷´5㈯ï×ÇËVÜÇõÙ<çvrä›Û‡»[|µæI–M¢«Fí#Ï«SÂUž¾ñÑGËßãxãnšÑ¦'ï´’ôð8«ÙÒA'N.ZB 2qQ/bñe¾LòÕš,¼ÈâÕ§bòmò(o(endstream -endobj -1476 0 obj<>/XObject<>>>/Annots 618 0 R>>endobj -1477 0 obj<>stream -x¥WÙnÛF}×W\ä¥6`Ejï›—¸5š8‹•¦ŠÑp$NLr˜!iEßsgHmn€4EY9w=çÜ˯½ˆúøÑ$¦Á˜TÞë‹>~Ù~|ü­7DL£ñPL)§h4Àßp•ÑC/D"ÚÞ§ñáݽëœÑDÌöΠF#|§|Æøï4-{_ OÆ!2þÁèp6Æ7xqèÆÒ‡^<ŽÄˆ†ý >a}ÇCœ?¹±¹4]Û¢v6Ë´ã»ì'š?çƒ!*€'G"0¡þÚ˜ÊÔš>j™˜bN )ŠÚñIãÄ•^ZTvcR°oŠF£Òþ ÁgšŠTûŒÊLËJS.Ÿ4U ŽÕ©¬ýY‰ esتå"Ó´6uÊ—fÕ8ø§…¬Œj³Š!Ú¥ÉtE•vÏFá ÜUùBð)’EB©]SmIÞ"ÿ"“ܦ▲ªÖÖ%¸­Ü¦¬-Ø€/« yª+X¬×J£ª#Ï!ÜgÔ) Yj -à}…NºHOF§‡Õ;AŠR®´²N5½ÞÅÐÖŠì2Ôî÷wŸçïÐ:´Mq"Ø:ìïòHÄ‚®¤zZ9ÛIxnÜÆÇ"îGÄLô¾Õ—MZ÷KE÷¶Ö¿G8ç¾%V5¹.jÂwÉíY˜BúJ!ºùlø+ -[ÀÊ«H¸¡÷7×äÃ~ÅV®_Ü‚ö¹û9ˆæQy{ùáâ¶èwçÞ‡ª)µ«t‚/6¡¶Ð>ÿóm:1 éü‰gQžŠ B)+§ì8¶T&¨¾[!‘Œ”,åÂd¦6ÜkKRÕQ Rb×(Íœ†`~Ë©6⣤v¬¢Ç¤þx*@Ed³-ˆèŸÑÍFN%Z“xW([S(p—FƒtK Ÿ@¦òžÿóªÞdúÈmª—Ù'½t6?:åÁÕŠû^•4³btsC]m˜f›:3@5ÊŠ - :UPæÈï>'C†^ƒ¸ ;”Ýi”4•ÏÈœÀ´'fq8ÁŒe -v 29„Æp°väv‰b1ò$ºµ§¥W o½°\´,³k e—D›—çç§û»¿þ¾»˜_¾y#Ò:Ͼ#EGN!jÎË ‚ekån”u|Ì6´ú‡Æ*­Y)]"¢GVÖ&_+h´CT¸U(¯ ,P¢U@õSæ(BȉKrÌYà¦Ý캈¶ªÀc' ÀÀ"¨sÄâá';ÄðüÃYùYfS‹¾ÝÐòKÀ¡\º Ã¬ÿà`m•Í|…»±º ¥¥T Ðv€zyç1Tkˆzb–KìvØ|¼ž`Á>BËáa†VŠ,´.¶fZß`'UÙe1ùVì;¨Üí¿}È*L¿÷ÊÌOÄ…Ë“²Óâ“„™í+²?À†íîÌEÙ39ǒꛊmŸ¯q¹Õôkßc*—*Åb@žÂØ–:Àæ‹Å ص‹,ûU9p€•Ô_Ç£aNB?QžD×ÒdXç•2žýðèäôìXÏH×JA¿c샯g^-:xuKˆÉºW¡Ž¹U©•ÁÎå·°]YØeÞº†©·¥“5ê½7D Ë…Æ{AØg°(]† -gÖ&Ë€Îx~³Áêš-¸cKüÅŠ pq;Ý{¯‰É`ÄÓ÷Ç_ö^* G0œ Åd< ÄüÓëyïC>/XObject<<>>>>/Annots 665 0 R>>endobj -1479 0 obj<>stream -x•WÉrÛF½ë+ú’ -­2A,@ÆåJÉ‹l")/)ˇ!0ac30­|}^÷¸Ä©P%=½ïƒïg¹øó(ò))ÎÏ\Ç¥p6w¦4Exöñ_kZ1¤»¯O΂yà\PèOA’ÓÔ;Q et6„½oˆÀÀFSg6ÀŠž‹³œ|þ `±¾ç„tÌ``N³?èq~Šœ"×ñéB€n:¿ÀaN!«³@›ME¦çÎàÏT "tî1£=.ôÅP1f*@ \j -°ÃsV”“ç ±P /z…=.Ä‹ˆIv8αCd<üX ÇEóžÏ Ç¡åãˆúìpÞÜ:8eµèq3.6Úž=.òz}ž=ηÎ[™ô8/²|œAO€ç²­ž;’ˉŸ3·<3F\Aà%ÒЃˆ1À¨7‹³ÉÕœ¼ˆ+4Aˆ(Ïh‘H‘»´ˆGNàÐÛ²X¥›:-ɬ5Ý«|©è]™«´`¤©Ë,Óõ‹ÅWH›Â^+m,•·HF ð¬Òº1Ô]˜âZ+ÃâmËú?Y¡wïÞRÚ)iS$,ªHDg¥j•kƒ#*t¬›FÕÏ,©É—N ûº¦mšel„Kc”GFEiH£óÊ°ÐZõ*c»Ù‘еF‹+h^ëgRxÎK|™µ¢¿o”ÑÙ3ÅåèVÌürÊUq ¸RÚ¡«²Oñ¤‹T±~y¤U=iZj]P–ß x›šµ©ØlTÖkHt×ieÒ²pZU>×|üȦ#hª ýCåU¦É¦SMR1êì´Ç]†F´‚yP$‰?!ú¿u¬ó.‰< åócV.Uö¥U.ÓÇ„Ï+z£š4¦F×~ ‹l˜RfÕ¸#.´Y¦%2ˆT2vD¯[S‰¾ÑÝí‡ÛC :n®”ǺÜT§Yo.?Ý\_î1­zùÞÙºEÞÖå&KØõ6å”ØbæjËÊÏjµ¦e]náKÝw^dúIK½±á”i¸òxXCYUë•®¹X¬¨Îèg-P¶ºÿ‹lh×°“~6:FËšç]>èa”oЄ8„ÃûZà‡Ç.v$2æãç“ÚPÞõseàn¥š©JPPÜRè¹ï›´Ö¹.Œ-8.³cm­€ž½SÛì¤ÖfSUemºôeåcYœ¨»6Â=š3ö3¹[á1 «êr•fºùýØv Ëͺ3úŸ_n:&@ÆôÂjãM¿6´.sM ¢C?æÊÒµ•›6¨!Û†K[›‚³ Ì¿Ú™ÔéÓ®ý>JÃ$Y_Ø€¡/ Ûöþ©'M¥ãtƒéQºÆL°âìì²éÏ2ñò° ¬f0H$jaE`<žŸ¿»½??—ðò çÁû“D$A/£ÌØÔýþêí‘3'Î>8ÈÄ«ÁZ‘bl[8áƒ7VoDZÃr˜lšz" ž[ôµÆÊh¤ Ž§haT’§²’&W®­Gþö^r‘óØ+ó«>w•, `?Ö{žb¿¢#'X9“´L²Ž<,Ê -¹ ˜Uó­‹‚ºîUß {„‘%ì¯"ë!Ïå…Ýô2šb,lËrEU™Fî¸*¬±ÍþÆJµK^-±ôy‹Ë5Ùn`¼,Œ»üþÄô“Y‹ŽÔ…Zf:±—¹U$Ú¨4kd4ú–k:á²N›—–X8é>/XObject<<>>>>/Annots 670 0 R>>endobj -1481 0 obj<>stream -xWÛrÛ6}÷W츉ܱ¨‹eIî›í4m:¹5V§u§‘Å„´¢~}Ï⢠#'Nlj½œ={vñéd@}üÐdHcÊë“~ÖÇ7Ûï> ‡ÙÆýq6¥šF—Ó¬?UtÇïÓåÕE6Ƴá$»ŒøÑÞÇš./³«½gþØô&GÓ L ñÏHZx{ƒ«É—nf'½# h¶àXÇÓ Í -jŸfyg¶”d¥y”†êÆ:²Íj¥£B×¢TTé­, U ³ÙCÞÞXçO%þWx¼tÈ.…‘áË<¾ÝElŒÚ¬èÜÇ“h+ñ»ƒ †Ú1Í%9„Cª…uˆvnô‚Ô¦À/ mèRøšòª”Ê‘ÓH .œi -¤Ã±õiëðùmFï*)¬š ØÂAöø(L©Ko¤[kó‘nØg©JÞÔð \©BÈ«¦­K·ÄÁÒRQZgÊyãŸ#²–ÃB:QV6;†Ñpœž€©;œfƒ+ê^QhuméNÔs “´¤´#½àåº^UÉ—üÿ.\½ £›ÕbµâlæHOJµEïÍ,¼àëÞŠüwU~NOï;>W¤k¤¨ª }jJ¸ó~K†½` åçUÅTÂ_f0¹ìJäòþìœ6ºá¯šª8>”ºåZ5l„Ðm=Ïr­´FÔH2Ô¿TÀºUAš9ârœáéó@çk6aOɺM%Iä¹n”Ke¸¢zc’v/F¡—Ù(£ÛdåµÈ—¥’43Ü)×ñ´oŽ_u©ØÑ­'žEÞ1øa?Xb:… BÍóá ?öÕDA‚çÄðøŠXçô•[ -Çß76`,ØW΃ΕôOæî;Fà9h½\œ2÷g»SßqŒO¡U2z¹# v ¿9‡ÿJ¯a‘<½Ý.D&;MDBÏ`~%¬E+ )Τó¹ƒA`ˆ÷½’P(”Òùǯ $$«Å sÆÆÛ‡x¯½oµrFW•4͸;=¢ÞPé6´IØ$¸º2ò‘…05ŠAÕ¦ü§@·~,HDzpóòí)þ°0ºnöC$'Å‹…ôÝÀ\A1¥eª¤‡\—^àw,´Íö›’û4¡¾¾ü-—)ÐDí9A‰¶–®>o š#£_¤Êå9*’tûc¥ - -ŒJªe=Ç'½hy)‹¹Ì2¡’‡H”¤•¶–s}¢äðŒÔÜR»Dá•nÕ} ûQ]€¤ò¶w½ÍçÝó[4½6ˆG¢É¶=À‰%Šk•@x/XÆ7]Ǿ€™sZê5r ¶pø†ù5H&ŒCIè¤ÄDù‘M`6w“ô'w‘ÑS‘âóäóƒ¹;Lz%Ôkno ß6]"ëûÚÆ€ÛÕ†½íÆø^Ÿ@Tý±"¼‘$ªsÆ}“´!E±¦°Í.‚%­0ÁvG]’'÷¹Fìv¥UÁãgзYAxüø{”Sìô¤Ë{GSËÌ‹Æ·¿‘~°“ª"”e\Ø\w(%ƒìúù"Û{ÑÓÞø›RÚìþ,Dx¸}4ù/®Â¬@9 Xز› ­ÅÆëHŒç¸|Á2°¥U’Zet£ýú²-4Êú4ðÞypXÐ|ƒÆUÅÑ2ÿ·ïô­ê‚9ÝEµ9Ý iG»£Iy%o†;Ï>æÀ^Da”aPÂ.ýW@WB±ñuš”9ëPUþ>gÖÊ4*vƒß1’‡T¼ùaYêuåFi9û -†µØ`ûÚ‰³— -×¾DÕæ(°©=öú+ vÇ”$.Š|#À¢È{Ì £Xñ[¿Ð@:0„_Ýi;“¸!ßüb¾( _œ\±¥cÉxª=¥­ž¡‡ïÇ|ÑÜ-“âÀ_l{yºÕâ¤Ï¡ˆ¸ÐXÛ^݃Ët‡¡Çrµ>̶ƒû¡ ©ÏDá•Í<óûFRaóR¼g2á |¼æ¶BŽ¨äú@­0ÏÁ¨û,e¼‰(¬È‚Wt¿ßzUªæ3Íq)Ö1ßÀÂ`´vßµ3ë5Öôì¼TøEΤû@lÝ‚z…|ì©:×Íùù‘ÓÔiØ®>òjã÷¸Þ‹f]K=¶»•×¼Ýñxúo>Ù -éûð9UiWã Á¦nÕŽðÛ.ö™]¼UôÃÍÝs²p·Æüõw—/øáUáY¾dçÏ÷· -+bD~1Œq÷ž^Ðx¯ wׯo®éÑdî°æï]9ön:Ðô¯R;þÏk…ow‘MFÙd< ë‹{ûivòÛÉ¿k41endstream -endobj -1482 0 obj<>/XObject<>>>/Annots 675 0 R>>endobj -1483 0 obj<>stream -xWkÚFý¾¿âv“*¤Z –WÚJ»I·MÕMš,QTu«j°˜Äž!{Yúë{îŒ ÙDU…@x÷yî¹×ŸNbêâÓ¨Gý!%ùI7êbe÷óög^¡Á¤ (§á0ÖÝœ|¢xõ¼þGcêOb…¤ÎËxH/ ½qz“IÔ§Áxi=| I‹“þ`Œ¿ñdM ¼ï¤û'–Þ|Æ.®Žê³n·ñœÓ @Æþ.=žà‘ÆËÙIç -*cš-`÷p<¢YêüíÒ,iÆ”žÎ>àÐy}¨EÉj-¬¥¶ S¿5[¹HVJË¿µÈåÑ­ÇÓï¦q7Æ·;vñyoŠ¶¥2úPJ—ÚqÁ›¥­¯È›vRy×ÑU–M;v®tG›Ì,•®Mì\j÷†ˆ?„ÍV’¼¦ào«#ˤÃÎlR¿®µHê²ØÒFeeÊ–Tâvm±{Ø*W„<>%±^KÊôŒ6F?)i%î$¶œ`Sð2‹áUÖÒðO;@v%ñ+tJÚÐÊ@xª -™”¦ØFte -’÷"_g,³iBJOR³^oŸ@m•¥µZýŸlâ½ÍÔG G•†8M<,Ú½¡Ó÷xz?=ïžã×¹ƒû|©äãÝz·™2ÎØBd¶†Iˆ;Lê 9Yss'ϼ"À+xÿ·>.™BÓaÒ[J¥M -µ.Ráòµ@9‰I¦àí©HFgt)¬ÌñüÜä몔Et¨²¢Ï±¸×+æÖd¸žm)¯ØÀª^Éòòåë¯ß,ê©4|èƒAµ¤üÀÇS“ ¥#šá?ÊE†«Án}E <¾ù\xüiS‚e³ÔêŸf¶©²`ÓE’˜J—..>ñ¯Ì6 -_‰) -i×F§J/éV÷á0há˜Ô”R”\ì™–÷%ÙR®IY¶Ûoº-o`­•¤#ùºO%F—ëäÕ Š¦ýQ›&,–JdtàÊ®9²Ð_ƒ$5ZReki>íãi·ùÜÄmk|ûÔÛ'>1yÎu ¯íŠ-YÉBîª'°êŽ‚¤ÓfÔvîUì(5øÔàÔ ¾‘ž ëõ7¨–‡›-—Ä°õ{€UÁ·/_P Z-7áè.ÓˆäRjYp–Ys#f‹Âä.Eïö"¾Œ™ºäBì{½¨×Á“hì¹àWT‰Wãà \Hå¹L¬È¶‡ÙaƒÐNÏAMiëZèJd¨O=NúžKÑ ÿrY®Lb%?UêNd Ë^Αó¡¥ …ï•NͱžÑï/žïÁG§7²¸“ÁJ±”Å)X?„°ThÂñ@»âÍJ%+”P:Œl_sÜÕýÁ:zÌ9(B$ßóë;ÉJè¥tËGîì›ØÖTE¸ewUÆÙŸ£-!! ^…ŽY¥ð‚5p„›|TE#êÜ?t±Q–{k“Ó"ºpÑRš1®KäÐ…–Ó“ÏeaHî¸~k9¦d*pëiF/ÅþËe!qbLÀl¥Á>¹HØ#[!À>f6¢?Låû«#·(ÀÛß°ØÎÆ,Ì ¶Fn¿ûn~9Q/¢Ó׺ ßÚWÙö”žs’0ô°Þk?/ÑÌQï…§^ëņZå*ç¡ÌÍ/ü º¹m1é0™ü¥ØàòAZ³U&Ed-˯˺O¸}ÆÀM¾Î™ê´”ÐI ƒº„èZå0‡Ý(H’p½Öú ¥ðõ†6È|™;ÎP¾J¹¿‹ªD-UÂ¥^« ³ä®`e= vWÖ³ƒ­ÖkÌé3–w6 ê µ¬@vuæXˆHS?iÁ´¼ªzž Sf£jAõ‹:Ìp«nL{ºñ­ÚùŠÆ"ÁϾÒyÊ5Ê9yÜÚ/%ƒÞ¢†Ã é‚Ioeú ZþÃøoJW÷d·hâyMØõXÇø¬§Ã?—™™‹ì¯ ¸‹×—ˆÑ÷Q’¦`- -”:F.‹?¿rݨSÙÂÏú\¯¼ßNi÷@í%áå‚Ú–:»é’Ú×ômUOÄãzŽŒ‡xé÷iØG“Ø™xsq} š)ÌŒÝxIK* -]¶Ù²v¸Òu];ùÿ…= ¢ÑpŒw-D¦ÎÒš¼9ù"¢têendstream -endobj -1484 0 obj<>/XObject<<>>>>>>endobj -1485 0 obj<>stream -x­WÛnÛF}÷WLV -‹Ö]r -´°åP€¦)¬"( —¹’6&w•]ÒŠþ¾gv¹²ÄØE Ä7Èär.gÎœ~=ëRß]÷¨?¢´8ë$ê‡É„“1>÷ðk%­ÎnçgW÷×ÔÐ|…GF|ÈÇ;š§­a2Hú }0J+½¦r#iš+©K*ÿïÎBé·ó/03 n7˜i÷Æ0ÓšãøÖšTf;3–¾Ô†¥'f2o†ž„UÒÑN•oýIZ§Œ&³¢ÏJgfç’àjT»BvíÞ(á [õ ê!ö6R{Ó•“–d.ÓÒq.˜¿þ— Õeô͹[œçL„&‘¦¦Bg´ÎíŒÍØq‡ÚÝ~Òã˜Ê(I9<©žT.×2;q$tC¢X -Y ]iE©žäÁÁ¢¥™\’ˆÇjÇÞúF¸†SkLùìÑäÂH¨.ÞRQ¹’–’PLi×ñÍVrxl§òœVBå¤Vœ1TZØ=1z ¯ d»Fð:!_þY¹ÁÍxÎmL•g“žNÀ[­VˆF8Ü"ú¦3çLªD‰¸ùÎÕ=Øî¹×º’ezå÷µxfe‹3µûK‰“ieU¹Ggt ê¹Ä¡;é<ùåž ø á+UL% O©Ýo=„ü4óI–u 5r9äZ;)DºQZRi¹B5\Ío…*ÇÉ0"F·l{•#YÓ,SµÍü!TÁzŽg²=Éo`]l®´Æ²=N&]êö=“½Ñ¸Æ:6Ÿ¿Ýî†ë±ÿ>ÎCI¢´p_ÉàÅ -¡+‘û {gʧV* Ìœ‚kHE!u(üKjUÑ¢—´¬J44iôFº‘é£/èÒ|£ó©Ç Ý5E{W躩¬Ö„;¯NÉ9Í8p8¿§¥‡‘«ür‚xs*‡“AOkE¨)éø¯°Á*ìµúÿ ôXã~lõ ht·W]/?2dšii „Ü@‘^,ïqoª d®Únóý³Bž)»bFUŽ´ãaD]f‹·õliп;ÁÔ„”5æ%æÛ -r1Iº×°;¬å~˜ fQíüdÍ2—ëAFï­5ÖëôÕ}l?»ÆɈÏ@)ÍÔT:Í« ÒOo.ð>D†0ëckuÖ ]ôÏ.Zå~‹ŽAAðCWþ¡l;39D%¶[©3™%to¥¼}¸k”rÑâ” *j wÉí] ~C ;£/бáüöÓþ/žR–¹e8ÛƒÊ#ÕhÔ»nPÔpmEqè®BceÁ: -% -Kn€àì¨xî]) -ÄHÓw‹ÅçÙÇóÅâ×pè™ô0çI÷3]5®#÷•·-ºïtþ{,½õ (d±e¡?ÂwéÚšj{”ÃÍýáXŒ¼"a[à P|¹Œ _|ßX´–"#•Iù¦ßl=­yžXõÄZB»ýZáí2HÞð†š8SHŒ -sÌÿ†K4yf°‘°Š¢ä5b‡¸/±b.±c{Gi˜Zb7¦—gM\¥^ïÉá$t휡ðºÊ“Ã;ÍÍÚ§š,ZSLÉN÷úS _¡h§ý÷»“¡6©u¬ÛÇÀ»îÓhT»z¸ùýö†ÇÙt9Ý™´ÂÒUú5Œí¶»#¼QNúÔw®ÙæÿxgŒÉx4Á‹'žëØÜûùÙŸgÿU ¥endstream -endobj -1486 0 obj<>/XObject<<>>>>>>endobj -1487 0 obj<>stream -xWkO9ýί¸ªZ5•ÂäAš„~YÑRº¨*°„VBª<3Nâ23Nm!ÿ~ϵ=d°*UEÈŒïóœs¯ï ¨š é`LY¹×Oðg¿Ÿ i4àóÿ¤ùÞçÙ^ïdDƒÍæüîx:¡YNx¿ß§YÖ9¥_ZU2'·””ëR¨ŠleÒÚy]JkGbzµ0"WÕ‚œ&A•\ãË{i¬Òé¹·p%ÊTP¦sI§´Ž¿ü0ûµ×§ýÁ¢›å¦ÅBvéÍ .íÆ:YR&*ª´£B/h£k‚ÅÛÎÄØ~¾ýÐ¥‹B -+É™ \/8Jm৲uáø„‰–vœ‰¼T•²Î§ÍZ/eEÂÁãÊÅDàQW ÛGÃq2â gKeIgYml8Ô*ÏÕé1Y˜CÑŸì ú¾Â•Q÷ÂÉÞÍùå÷o—ç× ^ï4]èlgKQ-džÐ ò¢\²»<ÂÈRß#o”j® -I¢ÊƒµG²e¿ÛzµC/Ê÷031ÙÐ4ÔV&tn|@b×bµâj¤"»c4×Æ-w‚I¥[KT/6Ü2Ä’I—fgßüŽðï¯GÇ”QeË€Û7ÕÈL—¥¬r™ß~HˆÛ®+„µ@iÇO¦ Þ÷À¡•Ñit ^€œ‘¾ê¾Ú¨…ªDÑ@–{‚B¶ª±œJVŽæF—/`1¾Ä9ÉDð@èŒcq[°å¨K‘-A °¶`E–éšmñc¼ ËUÍL‘ -Õ0ˆ 5çÈ@ãÃKü7N‚ -¹EMãZ¼a¨žzÀ#wŽÍ'#~$E:65þQh;…ÿÿ@ß$t³î=è`tµø+~—V»2Q[ð#EƒQ·‹ã/>兩gœ (Œré¿\Ñ„Nç謭'j‘Þ‰xÞ‘çoP€Ì¨•ãȶ’×AÜRCßt¤AÓ7`ŠKì;·ÖuÁlÎAÇlŽ”£¥ýZksÇ\ý -¹apŽ°^4¢Ö‰å&„ çÓÈÁ·ºÕà£P©ÀÑ{ .¨mÆž­¾N`°Q€R)ªÚó9.7ˆâÀK™›ç9€è9TlŸM˜?Äør@Š,0Þ7‰½@*"ý¨_iëTg%¬]C-X— ر,­ª„i€îo;šCøͦ (–Oµ"™+ˆ*A©™;h2ö¾å­vªPnÓE5îžµa›ZÛE%Jé5¤Eá3é>Ÿž_‘¶_Ê÷oߤР㸅X'¥­¼¢ÿäÓo)ŠQ².¤¬Ò±œ(Tªa¼']Ö‹õbµáðžV0¡+0WRcìÂË7ÉÈtÙ—áYñôƒ®°¼Ù:­0lKaï,ü¥f¡ dûQ¦ÏfeÑÛ \„nâi Ðn`³˜gG+FŒÏ5Úæ4ƒã(rY¤îþ$™hp8åA{;Oâ mD×?Þa_ˆB§6÷#›Õ—ßqØ[¼È :›z7ÃïžwÖ`ºêÆmD<Ê¥H5›r³“v#œ©däåʲJå;*ýlQxQø]ýÀX) (PÂzÁ¬ ñž„PÿÀ‚Dx oð³æ3jlv‚³¬-ºäAÃrœÕÕv”]¢#ØZ*TÀ ”eʲè»oÙ8C"J•ZX*tQè5’Ýñ%áyUÅÝ -+F‚²"ÆpžÊ%J²Oøô3Ví¶3Oo?pÞŸèúìûÙùÍ}½¼<¿ô3ò|ÚqóŽ…û]ü²&G˜©Ê&É(¹„òƒSàCÑ'ääe½“'+Q$Û¾¤­ÖX袨¾Ȧôªšc1ò+X[ØýÆÈ:´•™=7ÚÚD}Ê+iÎÒ¥=ôÀ¬Lu8yDHhp¿ËÌ™«Ekœlg[§qÒj–ƒŸqF4/£)Eµ)“¼gy!ßµ6I€Î7ßú¦ð{È—Q£°Sü‰Ì¿kÅ{oüáÞ¯¤)•K¬ß㶆•ƒqâ)‡ùZ@¨Pìh¼¾ó²¹†‡ äTêe_ð!ûõò;ýlÃ~Ýi§ ÍÆŠ"ŠN«$+.vðšÑuž>Ë£ã÷U(ß”Y¡AXà&Œkž˜¯¬+õðÜ b ‡+)ýÞÞŠ’±ÒeboaÏÁ2æK B`3f¹r麸Ÿ/Šìp4ÞÙCà8G§ÉàõC¯?&cŒ °´\èBe¼q°†_ÍöíS1J&‰·þ£ÆºïªÂà‹T¨B°¸ê…)¾ààà^ôq©ýbx ^?úcñ‰Ï®[UŠ -†Ä¹0€ ºÃŸ1y=ºŠË -èßQ¸öytƒUO¯-„’F¸)ƒ ý žÛ¥Wܘâ¥jÇÖ`Œ‹õô€Æ“x‘½:úñùˆÃýÅ÷•cÕœŸÏÞoìOú VÞù£ -&£d2ž‚…8q0aC_g{ÿìýÊéendstream -endobj -1488 0 obj<>/XObject<<>>>>/Annots 682 0 R>>endobj -1489 0 obj<>stream -x¥XÛrÛF}çWô™”¼Ó/[¾H‰j-ÙkÒqv‹/C`HNÌ @ÿ~OÏk³IÅ.QæÒ=§OŸîáï½FøÒbL“9EioŒð¦ùøòSo¾–4_΃¥NÆÁ¤zJhÝk?ct¾ºm=ct¹Víµ­ç”ÆãY0k¶Ÿ1:™7^°Ýö3F—a°h¯m=ctµ -Âöhë9¥I8 æíÑpŒ)œNa/¥é|‰sû'wÞÙïÃÑ s0:™4O< -Üh5 ¦4ÅÑF4ÆO.iß{·é o§†´ÙîùrA›Ø¡<¢M4(Ž’NGUHÊD&sºK³D¦RJèsnö*‘–„Žé³IT¤ð 4}S:6'KšÂx*»ör“Ò½Šrc;~ØüÖÑõx¿6ñàg —~¬IñG«B-Šeìž?¼WÞ‚ÍÒoGQØ™²hw>é™ü~õËY›ÅCQ.ir’˜L~*Ðu° t½W‡ 3Éå.:›’ÒÒTZI ½–ùÀº0åÎê= {±­@>Ëîž@<:’²üø¸°¥£¤ŒeL'U[vveáw¨‘6OøfòG[†±c# Í‘áVˆÞ¥£d4^=l?lL@s°_Ç[ªÂÇ 9ø@‰®L*À¸ñ·eÈò+Iq4åáè¬é³šu<‹„¦Cëœ0–ÎqÝ9öÐÇâŠÏqRIâ9–DÄÁw'#Q1—e‹üLò Ÿ„;ýu˪£©,hÇÃÈÞJäˆdúÙœ$Hpå†}š8ö_RĹ”—šŽ"ËTr&© ²–II@ÿß´Äi=˜ G[tº¢È¤©ÑˆÓä.U;+OJë╹ݹ؃ûOR+$=†2p‚ÏPœ ïÓòïGÞƒüQôŽ•èÍvë,m·Jï»nÕŒ‡Ø0+ÙÀNi8„ci¢a ¥RCt,œIs¼ÉOÊÊZLêdy0Èg‘Xƒ5Ð÷«\F‚3SºTq,u¿^X«Ð¶k"…ªÈrªÂ>§ ïy™Šì.óLE’>‹è‘&´°(2òíÎõ—=;¸A"ºy.ryh=„¥mêE4¬·’ÁˆÉásI=;n¿Ê·—ÕÅÔfsϯ,u^V ÷8Æ\8™`mî_@òWt!a¬„µ&RÀUÆT¼Ù‹™… ¾;IÒCƒÉÂÒI&IEÌ®[.0™±Vq©UQƒtb+&[íähe‘Yõi¿GèV —dµ@eg2ûöBOš.5ÏÞBAAì^NL䗹ℚmÿGæ†ÞÆ©Ò,+~üŸ¤Vi„µÃ¯ÕÉámT•Žkt=!…«%×Ìíx¾¨R­V7|=C4˜ñ¢ îALcÓ(ñÿ.†wÚÉ©;ø!7eVãvDô”ãýž(ÐsZ3¡ó}ä„…ˆñÙyò’Þ@Òx²ÖšÕÒŽí¶0&±Ûm.í£*¶[’Ïpm·•°uxTŽ^šöÕËû%N´vg^Û2› ¹ÆpôÈ}Ì¥W·!¬ßëìZìSX¤\ߘ.%#G•V‘•(¯ûêølY ÕqåÒù€¾jÀ[”¹bP¹ôBìYì8b£aDW–s…TDG…×NáP¿¬FÇ#?‡ÿª¡Zðîöð±™>Ê%WI6˜Ë NY²åá -þ@Š¸£[f±Käí-TüÆ­¨ÈàÇeÇêx„¹&qõìD¦ò!A~pær±Û!q]ÍÊ"ºíœïߥBÈï%î®Á4'N‚;>õ¿Bëè^hqyß´Ï"ÞzÉ¿tÇ,5fk‰³_©m Ü£±7p«n˜©Ðg\3Ë>/XObject<<>>>>/Annots 687 0 R>>endobj -1491 0 obj<>stream -x¥XÛrÛF}×WôKŠrŠ¯"¥¼lÉ–UŲ³!w]©âË°€3­ÚÝßÓ= AɃkËeJÄ¥¯çœîÑSšàß”V3š/)..&ÑWN¿ý|1[­¢ͯgø,ðs~ú–Óúb~5‹®ðîM4ÃÝÅr-›o|÷íæbüaAÓ)mRøY^¯h“ˆù mâË]e.3ûèÍæ+\6"’Ñl 7›äòËAyR•&g MI¦öÆ:ŸÅŽ¼µ¹£{Š•¡Úi|§Dïê=ù´…Ê åvo ••µs¤LBǃ†1~çžÒÌ$ìyB£éñÃÞ-þ¢9‡} -æ³ÑdSq°ÓÎwÂi¢Im‚Ø#+ö»Ëuá(s´VÅNQæÎÓˆ~·õ9n„;JÈ–>³¦ÛÛY Wì‰ßð/HÕ•:ÎÒgäƒú Bâ¹~Òù€páxÈâ?VÕ&¢µFuà¥@Ö¥ÚkG( -[²»Q'}±ÎeÂÝ(¶&%Ž °(Yfðk¡8H~]<þsÏÀMm 6ñ¡ä‡(+ÂJ‘ð)ÀØqî/kß6I:Wwʳ¿.õ8¯ƒzÒfàÉ¡#Šiž?“;Ø -—˜÷YslÍŒYÛ!H;í–ÝnfÐ'éFWžf{½<ýsÉÁ ¨ jC©3Ë$C³A)£U𙩵‘ão™¸f}†3 ÇÀ8(NÊ \ÇFogW -÷[†6·O2ŽjŹ@kô‘Æãíw™ud‚„88]=éê¿ßçd4[D7ËÕyXÜZ?¼%md>!Xt¢Ž˜q™ÔEÉ0WO*Ëù ‚ïËŸÆããñÉCed«ý8¢÷'•s³DÒ8¶ö²VªøÐp&KSОYýO“}8~ÉÌ|F G7é™|¹U ‚ î8‡N¾*‡Ê}Qý»¾Rq€*>e`àzÈâÊ:›z‚;Xw”!}!+ô`Mæñ.þ¨"BÑ k€ÓUøS~ŸíÞñ ߪ“ÕwwdÄÞÏ>1Ò¸À´ zü$:²Æ×A˜G½"v:‚ƒY(;d% ;@Êo‹@»0ƒÐD®B(¼;QM™gBÎ2Tj¨‰CÎYHÑiZ™·EÔ\ )dEW©Šy¢ò†Pd.®mí€úDcÀÉ=dºý:aÖί+"Ö@0$~˜“fpô|ëmeÕÅæRAÄ‹Fšs«œç‹3ó«™Jb(ò©÷òH¯ ®ÞÁrDo!{GÞÒ¤ž-–àUØ\ŽUqnêèb—àR e'ìÐ}]Oe弄ëØóyE”Fó›%ßÿ;æib±Ðµp|z‰ÈOhòûržÄCñª›oœ{o÷ë -Ü}À´Iâd”Û U¨ö5Š âu Þ³Þx]6Rjyþ³®S¸‰—zÕEè"ýku<š/n†Í^ʾàõLœ×äÀk2N_=Ówó²*x-€°]0€êˆÀî”в +U¸ÏŒîEÓ,$¼ë„-³@¬J_C _E ­èl÷X²Û£LÛ>a\ÀpÖ?ém‡ýaQZ‡C‚HK‡Ül¥eG×—ÍÂÒ°\v$~¾c¿¦>|dÍæ+üÅC¶ÒÓºnZ>_G×7sZ,áëÛ‡··85Ù¯ÌÑ;×äEcÚt¹Š&×s­&7ló*ZE$9Ÿre¨Þó¡MfÕbµˆVËë°ÏoØÌûÍÅ?.þ¢¢³endstream -endobj -1492 0 obj<>/XObject<<>>>>/Annots 704 0 R>>endobj -1493 0 obj<>stream -x­XÛrÛF}×WtR”S"x)ùeK—ØQíÊvLf]©å> €!10Ã`¢¹ûí9ÝCPg“•KU’€™éËéîÓ=øõh@}ü h:¤Ñ„²ê¨ŸôñfÿëãÛ£ÁdœÒé`œŒ©¢áh’ vO%ÍŽ¦Ã¤Ocl™ðâtŒÅøÄ‹ƒþ4™Òxtš eµŸŒvO¼:ôy÷%T4êOx¯<ÉÙÉ9ÔŽûgɯBmû$gû§xŸŠÞÑù’⓬žM q4Ƴ“>þÆ'YNàʨ?«F§²*O¼z9?ê½Ó`@ó%Ã29›Ò<Hú4ώߺàhT¨K3‚±+¯œ µ+郲ºÄó;6®¾“Mõ½É4oºÈóWó_  Û)èI4B æùñbxÚ§¸Þ°[îØXl™éRgB¡©Ój¸uÖWÓÅJÛÐ!esÊJ“Ý‘³Ôyÿ÷Nò2•W"‹±@ÖÜ*~âò µÜX¯)‹ÿdlî6žÞÍéôAÍc¤‰±x*Kºº¦M¡-­kW­ƒÎÿ¢òîpœœO¦´‡õÛPæÖ[Ñ¿4%‚µ„èèía®ïu íôíìçÙüûÛïßÏ¿],f[t5.V‡ÊÙÅâ»ä; -Žï?Hÿ3‡vÐ>v˜éu µ®+ã=0ð¤¬öa;ÿ,"ÚPqD!Gj{%SgêÂmÀqòêúÀ­Åñb! ÆÁ¹ÒïÑ~•Ð¼Ðµ&`¨ÖØß=*]rx - bô„ò.ײgï2rÉ,®Í–±À²Š / ä °É„Ÿ èŸçŒ"ö¬ÀuÂèì!‚e÷QnÀ„«,݆Oˆ#%‚Ã&º\/›’~úøø‡dpÀ²¦ÒØ;ÿšcïƒòƒƒïnI3U¥JâNEë×½žç7‰«W }ÒT(Ä\QeêIbµ’L¡oXÞÿOKð" -˜ìx혮õ½.ݺB¤ãRKiÇ€/kø}›tÑæh’‡iHHâu®zIcdvZê*¡›%ywBFD>B±=£˜ T¤‘< k€‡iƒÂ _à‹–eÿ€ˆÛ"˜i`‰l˜e.ºÕuÍæMÕ”È<ÎÇËë+J5ð6ZZ¼ Îf³IüY¯· R´‡Ø6Ÿ{¾J»\R„ª|¹­e(\³*=¶‰¨²rȲBå@ÃS®¶L-Š>\_Ð5lÎéRY °„8î´^KE ØÅ1}œÇkÔ4@d̺Ô8ú½N¢§7‰jb6ÒÊq¶3M¡Z -®Ø­þ -A¹5>‹õÁUzuóf†â{(àÂèefé{/Ë|4©kW)Ô¸¸ó“5Ÿ[ð¶,€r’¥ƒ$sUï¿å]VölÈñÿË´¾™ˆ5κ2-Ìn/ɯuæ_ÓRê¿“Êdµón  sWu/¯W=FçOYÑ “étJƒ1q2¦ uFûÛrŸ&gô»)Øñ -yC+´/¦±®gP8öLrþoQJË {Œð:×­"ÛT)Ü“[­¹Ärz"*¡· e×b¿'½“‡YH¨„O{©ÆÇé»ãCfY¬ÝŠžîYm֬׮~ÆhÿûœÐòïZþƒãÃnûþµÉÒÿEãW#mÎß½E9=r](…Õuƒ]1ï÷è†+݃àY­Eð¦|Þ÷rg;:˜ôªÔ5!jì²F¨NK%´ªvæH\}mCO”‰Þ£½[° g¥i±(9HëR+w©‡èx莫Æä¼Ñ‚iž5À‹r£¶îUZÒåK}àÞ• má„Ń÷dÖÁcÒÛr‹ÎˆACó¨Ë¬U+>˦£'åMÆù¹Æ]Àdà} Z…†“6<}L…9ìÂbÀÄ;Xq'Edi…øúk{œ“l +8Ü•«õAÛ‘þ iÎc]î0j{ë†[%ÜäÑ’ËKŠF"Ŧ5ž³²Ïa ŃW^¦^é-^àÔXR;=O™3X©JË­DY¢ŠDÖ÷nSH…¢û­ìR¦´†’sBzú!Bn" ÿµ*¡¢ü7„3øË%_“ЧÈÇŠ}9x7róÜÈT²KÿvHb‚»4  PZ±4Îö³ §yÎó¹Ü]¸"J8vèTVèì2 æ£æ+4ÅyG+u‡6Ë·‚¶¬Ár<ÿñbZ½<ÁÜÌW%þÚ˜ÓY®æÚöˆJÏ<¼={ªÑPmQ¡å œƒFØy6§oÐ)÷Ô“ i›¹ÒwŒàiq¼C2Ã$çã]7s%Œ>D ¬¸Ä]ð?˜ÿa5 \¼ú -aŽ¡äëÏž0Ê5Ë°¥ÎM§â±µp¥ÁÐä;pàBÊ¥£@E'pÏtû°â7+¬†Ð²~ƒ.÷´©ñ©çSù_S#â<x¡_Üø£“9殬৥Ð\<˜Ú˜ûñ—Ãí¤þ \0µišT&Mâ0&í¹¤ɤ+ÃN[’Î -k2U&t«@‡kí#¤À¸—X6&¶ߤ>«MÊl{€³!v"G8Db6ÛÊÓ­Ûˆ*›Îâ@kèTmÓÙ ëf‘.Æ%îý2h{è‹Ç}Š…ËøË’ú«â¨ËUºŠƒ)¾!„¹V%ÞòÕ)¦p]Ÿˆ¤ßgKÏ{oG.þF%Õb¸¹Îv³È`„/cç#|ã/düièâöò‚>ÔëÝKnâÜ`2Múg#êNûç¼ÿ4™"˜-ã½Ræ4®;Ûd4ã{Þtr¿Nû,æûùÑG¿dòendstream -endobj -1494 0 obj<>/XObject<>>>/Annots 709 0 R>>endobj -1495 0 obj<>stream -x¥X]oÛÊ}ׯ˜·*…E‹²>o‹ö½Ij v|#i¿¬È•¸1Éev—Vôï{fw)ÓD¢(’8¦ÈÝ9sΙ¡~ŒRšâOJ«Ý,)«FÓdŠO.?¾~-§ÉšsþYQºX\®JÚŽf7ó䆳U²ÄÝÙb™LãßÅ>4_­“Í×+ü>Ã?#é0úAé -Ÿú³ù—›ÎÓM2ç®ïÓý¦é÷ÑÝntýiNiJ»‡¸\¯h—ûð¦´ËÆmNÂä¤éšpEgÝ&vßG“)MÒì¼ËÇÿÒ-UêX8RuV¶¹ä®?-ã¾cj„qJ”áãî¸1•úHUJK'£œ“5 G‚r¹oTÊWY’•Žœ&a©j³‚ÿŸMz*¥°’r]ÿÁñ¦½X¬¬sr…$Y;(øŒ}ëp©ÛcÁ{Õ«ôOdºvò'2;„Æ ¿JZ+ŽÒú$¯?e1‡Iš&Ó›êR~ž-¦ô>ŸøÄd¶Ê@åyü¤­UûòüüîŒg ÊtÕ”ÒIª¥«¬3"“ô<¦ƒÑ•F7²Võ±‹­Q bÖ½8Ÿ?ðéý*ðþ™¨YDàɯ·O`Æí$ËòÿO*"ï -U¿à4#mYži/Á dæœÈpëÈUÔY[¡¾|5ÉJ¨2¡_umU. (a?È¥2Åõ°”Ì Jż÷:?wxÄ*%´Ãr+ª½ ÞŸ7,•Åª#°m¨h@¹­ö8un¤ðWn@„q&Q–¨ˆÌ}…@5d«}² Ç«LL”r0,sÚœÿ¨0dË… -oléD1™Í“ÍrE“› ” ºüMŸÝÓ”ׇÀÉwIÅC:ý€ôÝþ;˜å£­EÅVú™xB‰ÿÑU„ˆñ€’š’9È$:Ū@K ù{æôdöÙã[8×ür}í!O|mŽW”•*{aÇIðÄ:X„W˜ô¬/Oì·Ø¶M£gÛ9鿬ëKaëZ  Þë0'ô\”¦…r$Òxûê¡Ûwj4gM¢“$½xBk¨¡Ãÿ*ª@¬ï-žñwÒ„i-ö(Ô€"Ϙ…#´5ìÑ‚upÆÆèŒ/`:ÖƒŒV£p'qN’$øAÏ°VÉ:¥Í,zÑ T ©oÐØí'³u’n`â Ñš ˆ¾“ +­šeêŒ.½ãSu®O–6?¯>¾‡o6KfÓ[m`Ž¾°º,õ‰±°P‡ Øi±m4ñè·Ú¨£ªEI¿}y¸½L¬˜»ò”¯J·¾ûIN'åŠH¾È =p_ˆ[V¨·A£!ei‘3OŒçtÏJôKȤ“㘶ÌxéÇ\qÌWôË)øSÞg=¾âë>ßögúª²‚;å?ZäÔ"Às ‰{€™Ì‚NÚ¼n‚BHþ™CÒI²Ë½éHSYNý‚×ÐÞ "¸ 0WpJÖÐ/÷\°r0Ô(4B±¢Åè™ðåÉ>憊ÕÂZ X7Œ¹7rŽøÊsmCSIDæéè}6–ÐmiµÇ§g]|ÐHX‚Ê0iîVPÄÑÀûƒ Z+ ,ߛߙlë-¦382ü°ðD›G©±úUšAêÏãÇ]¼ã=D#wxúÙ: P/4y{ÈÿÊ^qëÌ5Fˆ§A»ÇÏTëÓó‡Î/^ lîØÝØGXŽFŽÖÁ )Ö¿À¶È^þë\¨‚¯†ƒÆBôÙĦÓ-´…nKpÈ4Æy!N+–ŸªÑ¡ üžÐã€Bthk¯RQ*ç{^‘ã:†¢*ø›ÖøI®W`~·‘M‰ºoºûúåÛöþñ3ë:¡{G1r¼Ö(÷U jÇdÏ\íЂƒq×jf±´¡(C´ï­mQœÎ꣧²4J9 +;ÍT:Ç@ÉBƒ²Ö²=ø†ŽÈ£Q%±¸‘\yæþ€P~[0£Û8˜Õ8& À`³_‡é–çæ‡-uFÊ—=\ùùÞÝÍ?£Íöð \ WÀe K´ÀÈå>`ÊòÎÀd½¤î(ù bg¶õhÉòí(uR¶†¨1ì£*"ϘíFþÀ+G-ºbxfó9(ƒÇtÍóé(#T3›’¤ïzÐyÕà98Sá&A 84 -Û5«MŽZ+âÐÒE^)|„ySf;8‘M’¹gA»æœ‡k~ ðê²®mTŽ¡gFâ¸Üÿ}´¾„}gkÁað'øî$åÁ}À•È„÷ÀDɶs†Àð6s~+{4$ˆ,GLNùÔ±¤²²|e·a\ðy¦è6t®`Œ»fžcàCò« Ì’C°ô£UHõÍŒýlȨd¥Æ±Üm_5NÎm`¨¸Ð*úÅà¡X?å°›WâÅÏ&ÚŸeÄÕÁ÷4ŒÍA)¯Jx„CIj -K;¢›üÔv/Èï'„ÚvŒ²ïÉŠÂÈR— 1?†“1SĉúäÒ¾8¦‹çÀÃ]^k{cß]x§)ü16âx¿ ¨c ¬ƒ»öÖ[(×/Á*[Ô -â•Zó\ˆöá«rq?NE˜™beà b¿ð}|{ð6ïCM±¿\”ÊÓbŒïþ©'àn–Œ#’m÷€)†©j¨@pKø»ïŸQì`ÈcÞ,ýë å5w÷_¶äß6Â÷ç4û ·ÉþíRœ¥ FÎ - ¶GÞ5ஂñž}yÇN“8²®ã«A:Ç÷ëZ.ñmÈrÁCëööáî–žŒþaz 0ü$Å£¼d²šnþ§!w¾š'«åß à”yÊ›}Ü~ýš°¿lendstream -endobj -1496 0 obj<>/XObject<>>>>>endobj -1497 0 obj<>stream -xXkoÛÈýî_qᶨÈ´$Ëz( -?·ÖŽ7Vš- /#rhMLrEÿ¾çÞáЭ"ØM@âã>Ï9÷Ž¾ ¨¿š é|Lq~Ôú4š ¢¦|â_©)=úFƒI4ôó‡A4¥óÑ9þÇ[g÷ƒ1ÝXúMÞ¿8&ÝׯæGgw# hž²«ñtBó„à®ß§y|b*¸‰µù®]6+¯(¶E¥Lá¨ZizÔÕÕýÇg*T®É¦r-³/¶ §ËﺤÊRí4™Bn¥¶ÌUÅ.ðçùöÓn?Eæ_út:8Gøóäd³qftQñ+û+t\ÁŸÅ¼í-÷~ÁÓâ$±Ú‘*èùáÊiçtU¯_|À•ä ÝqxÿtýWr+…z.NjgŠ—ÆV×°#ž¢D!ÂaDlWN‡c´ä@Ð>".Ï—WW©ÏˆùW)K©¿ÕÚU¡˜¥®J£Q])ÏnQµò´E'`—f]½ ëüçaí×RÚçÃòésÁœVe¼B@è‚2\Ø„LJ€¾¤¶ÆW¾£àK x¨¤× Ï…Äü³ú‡ŽëJ'´ÜJ¢¾¿]¦c^z;×)1®4-m.÷PËXße?úyöN Òá®pC~ÑÕ}‘Z„*-ñøÒ-¼·„øo²²@º”«éáûÜñ$€g›RJ!×¥MM¦]DϦˆµ,µ[Ûä`K3…%P*lˆGy¯:Ns ð2\K_L1û½¡—£‡ÏÏs$éLÒ2” ä˜0¿²å¶-uûÅ[©ÏgÑøþÛö5¹½‹K ÔÁZ~2ðávU]Bnl]uq¶µµÀЭulR­ž¸çÒ1ácw­ªUDw@¸þ¡òu¦{"HÈšµX¤¥N‹¨ ã>åzŸîˆ׺-,+‡ðB@¼%þnØjÓÉ»ú^¿ƒ x—ZOªˆ6íIä!Zwð’Yûê~ýññîþ—èé㯞k›™Ø0ý׈îYÒAçÀü^#Ìz/ ò :9ñyžÝÍh•L!—t:yÈ\DÓhѵ-RóR—ª2ÐòûÂUeóg÷&êÆ–¯$¼wœÃÛ°B3†<«d^äHP4Õ¥fz-ñ¢ÆìPôts-q*ô»q4ûáEµ!:Ój'$ÊC†}a¶úþ¤œC( Á|¹]K¬x”iÉòª$¯ÿëF@pv7£ötMyÈ#þÅp<‘yò–›Ülâ[àg·-w+Þ×óÎ9ÊU¼2D ¬]E*Ž¡Ó•ûC^O‡hÈì-g âRc -€ŠžU¾ôÕܘ,#•9 /ðÄäz‹p¯´÷‹&çá0öyf΢éPTÃa*”¦ÚRn¡@LÌ\9žËÒe§åBÀiÔ¿˜5}ϘkŠR½Asæ›ì ¹zECÇüRˆËš‹7ÀÑåY‘äH+d±d¼°´R¢—ªÂ6)èІYoœ«eÕÙ¬4¾—aøñh_YͤtS6)Ò”ïUi³ o³{€Æ±Evº¯5˜´üØ eS;ùŒÝÉ_ -ËÛ‰$ƒ}(Ûî[mÖ6i*ŒJK³ŽW…‰U+Î1Ñ;®žÿ}ùé¶ãKÆ×vã ¹Ö·ÁÞ||¸¼ìšàvw]ÉBØ}PÀŒs€ˆ5C–_éô]•Æ‹ô Ì@Ê°Tem!‰¬ͺvW5Û`̓AßS|XÇðûÀŒŒqîzÀDjîµÝó"çP° É£¾ÏÉœËÎØhp-RaUîÅKiL˜-È®5ë / L«›ëˆ¾¬ Ã ®\!¢Ð.DoÌ}³Äí=È©ŽO?ÔØ¢ct/N”,]H¿çyæÞ„¸lœpbA}yCDq—A`+Jk\a^|¡Õuýb-VÇD+ŽÐÙˆþ‹íV¶Î41×ù’ÙÉ;=J-u,õ |Ê\ìüe°Ü;j0Ö¨Ã.Ñ@¶#S³R¶Í M~ãqÈlÌüö.Qáf.„'aõy¿ÔÆ­Úq‚W¸¸»>›ñ"Æ®üN!˜ò„ -Õ–licü²÷&üšGÛñáßÀLÓÂ×G»¡¥ŠE[ø•Vƒ‚%iá›%TùAB.sAÇ-þ)49– ߨ{7+ L£¤Á‡'ƒØE¯Yù˜l º ‚È‚Ö*îw•™„ëÌ[ áCøfÝöhwü2 )åÙâO{,ÙÞ_˜q0ÂU(ší`qÂߎ×aDûŽq|-xàËr¬–Ø},R ¼ÒñëûÀYG4›ý-œf+“cJK}¡.*¹5Šwj· -žÑ2‹<½:N÷´Ío`Ç­(cO-q°f.…ÁáV„›óß9s?ÎCT‹9®³¿]¼ªŒW·­Œ¼ô¨4/«ê_‹M ‚ó° ´xØÅÜÒþ’Õ¬A˜H ƒOþšÂxèú‚;î^a¯S9B!qͤöÛ¯ýŠ¨l£¶;`´ŒQ©ZÑõ¡5ËÉ´™¨¬¥ÓéÆøí¤?•íäùòáê’žJûÈÅÏ(qÍû…Œ©ê`Œ_b¦çt:éËBò§ÚÑdMÆS¿ -Ž†løv~ôÛÑÿâçÇendstream -endobj -1498 0 obj<>/XObject<>>>>>endobj -1499 0 obj<>stream -x¥WkÛ6ü~¿bà `ë,ÙçG€~È¥I{@êæá -â  %ÊfO‘Šsÿ¾³¤(ûì4 ÒÈ6ÉÝ™¥>Å4À_L“„†cJ˳OO¢ÄËq4¥ñhøÇË›xL?kz}6ˆt5˜DCM'xNð¿–”uÿð*‰®ÚýWûýÃáðt?f§?\/Î._Ì(Ñ"Gzã)2ÂòÁ€éÅU4’ˆžé*Wë¦VéŠn*cë&ågó„ÞJkUµ¦fKo´(ùñ‘5½ªu® -i/þFˆ1Å1‡H’(ÄÔO¦Ñh˜ ÖÅü÷Åó~Ѩ]tÑ´m!Ól·º¶¤ e*Ïe-+K¹®éUÍþ$Qeü4_D|R?Dçq³‹k‰Å{MÚÃInôŽ¬¦´-MRÝfböH¹x‘ySðZ#¥Ûv“ÒB!Wé€úñ FHUn Yržv# º(…mji\ŠX—ŒÑ~¬ó§µg J4—–QüEÚ›*× Á§Fœ¤ù0,ª?b|ZKwSµL­®ï¾å|ÚqåÛ§¿½ÔkP÷Í«gËí6*Ý0¬PH±կʠõUZ4Ç?Á•ÌÈUÂ- €“Îó å€Ñ1šIV}½`š˜E³È+5ŽX™Þ÷dË9_¾;àßÄnÕ…½{üWÊûu¡W¢ø@è¹DS®"–¾óÌuQ趼à’äÁü_>~âhæ-¦ŸŒ|Æ…ëÈVØ ýDKü (8rï?2—ºO¼|¹<·\–Ðs»ƒ¿üJy Ë­Éd.šÂÛ…eJê­ó19 ä@)—ÁJcTzu÷ÝŽ$˜%`¼»‰»u ÇaÊ-ÿÅQÅ섶W}±Ÿßÿ[ÓÖ[ã1^h¦C¼aÄÑ0ž² p+»~Êï cà&mø¶ì®­œb?léO¸;„+Î}$àed4E“ño;8s4äPÏg¯Ïþ'?gÐendstream -endobj -1500 0 obj<>/XObject<>>>>>endobj -1501 0 obj<>stream -xXkoÛÆýî_1PÈ$Ú’%?I} mmdô^TA±"WÒÆä.³»´, ?¾gv¹”J'Eцe“Ü™9sæÌ¡¿œLèÿ't5¥‹KÊ«“/4¹Ê¦ñ·üa’]Óå|žÍøâÙÝdN·†~>9ÏÎér6Ï.hv}…ÏS|YIë“7‹“³Îé†kryáîósZ䧥ÙMµð[zEKüûî§å²¶f­JéðÓý‹ÅgºyœCSp–²½ -ùìÀÈ:Bl³·¯ß—`M!Qž«hg•Çù9¢;Žè·à0? -‚¾tcñ^‡¬»˜¶|«´ÑÏúZSÒ¡eIà»s;`‰êd â†#î‘\šE« ÉW{E0H\å ´ä§kDÅt;‚"ÃiœÿûG´j<”„~‡ÜüÎP›]ˆ™›ªnÐSNÔÊ•1>8†h¥)œdÄ à7ÿ¾fŒ+J~@õß—* ±ôVåÖ8³öÔ^vôGI -8° ¢Aß̆G)Co Ót„@@ ×@^<+)õÁªJØ=á<‚&ôƒ=OÇ Œº‚#¼ÂÌÿ# “vN#†ãéœÆó)öÔí^ó˜x3:ô^ ˆ³.(Ðã ÏŠé¦"¬‘g—!´=ÞUNï°,0o øaPíÈä´ÃÂD@ËXÜr«jß©h?5Œ¦M'~dY²iì‡Úùýf¦4L8„>}5¤á}P‚†§¡£q¯hA+…ý¸a‰‰Œ€àäÕüefâÚ‘ŠB#ÜvEª"ur1Иž5öÁfÏ©ÃŒƒ4®ÌSXCAâ~cýÁ4D¡ÉLÞOÐPç¥(8§Ïë|ï±Oàú¾–,¼Üu'ª !ãÝŒGRÀå)Æ,ˆ3n´éÒÒÓ#Ÿ”óQVRXØ‚rT#'ßq@48R{•óV?ÂãÑfÀãÒq©O…¸À:Œi¼¿º%^¨ -˵®±Ù°küòÅ(lˆX Çà´x_´ ö›öÝ8…ô·pJ+ #ãš íë¦,÷ô(JUD{ˆ&.ÞtZËV¼vª°‰BâÃn²>¯Ýh%ñ$¼ç n¹pF˵´Ô»AŸ -:HßÚE@C,úá7+<Ê;2 y‡!jjäß:ž"ZªQÈK¼) 6Fb¿A•O¼Eb{+‘W¯¸ä¸öäj™«µB¥-#[‡ÊÞx„ºÇÒتּm[¡>6{ç ¿a“ሦ:´¸µœ}¸Ð4x¦ä?“ªäXÚ¨ ˆ ÁëYG£9hê@‘hÂSŸ¢6ë5-OÛ~²È顇"}ÌðT…5+Š±Ñ² -fCÓËñòE0ƒ‘fe ÒR,VÒX ÞhLxðbc6c,ã-ž1õ^ÓBµÁ‡ò’Yë:}4¦cº‹‘i¦;˽Ç*äš:оfªGžXË„$§:x4…\2[¼~ ï¢J‡uÂ0‡bÒAgÁ§¹#œÛf e»ï¢©Ä"ÜÀGJk Ìm·mw7ó|­³cvD}â¤ùS9ƒ²ð¦C®jH†étÜQ|7ÇÊÊÀ]¶ègôF8è(„¨Û?\Y/6Ëx›¡•¬†`k$!Ñ´ÿFñ]2„¹×ê)¾ˆÕÒVÊÅ·Nú¿U5YµÙ"Ù¡6£^ää'*ŒÒÇþ]“p0¦j_Ù¦Ùlã¶Üˆ\h@ÃŽ>Md="תnÁ”¨A,±•„‘M“Ù/ªÁ°‡ 8L“–OÝûjèý¾Ûdƒ„ˆql@fx/´»{Ãz6€p‡|â+/[¿AxöÃuû–=¹ÄŸ ®/èòjžMçìí>¾~ûæ5û¹ÏlîoMÞTX–‚ßÞÜqzd|uÎUhßÊùUa­6 7ÒLmòðÊ÷’_Î}®¦_Z«Ï Aø½$˜½ÙÕ,»º¼Æ_+pælÆ¡þ»8ùùäOß·¥Ïendstream -endobj -1502 0 obj<>/XObject<>>>>>endobj -1503 0 obj<>stream -x•W]oÛF|÷¯X(ê­oÉî“'­QÛMµFƉ<‰‘<厔¢ßÙ;’¢èö¡ âØ2y»;3;»÷íb@}üÐlH£)…éE?èÓh4Â×ñ|†¯Cü3’Ößh0 †þqþfÌi8æ¯xëê~0¡;M/~^\\½Ó`@‹59ÏhŽí÷i^ªÌæRD¤×”èÍFeRY$ 層υ•¦K;aíA›¨K‘N…ʾP¤^ÀoŒ´–¤ ÅNo_/zˆ…££ËA@ü3~ì FÈ™"s§¹‘‘Êù]â½1"í’È"ä ·Hà†_ìSo8 ÆüÞ¯¿½ûûåá÷··/·o½z·\>«,Ò»\¾-Œ‘Yþ—4Vél¹ü`ôZ%òAÙ¼uÌQtPIBk¼‹x„×̱KkmHŠ0&_,°(Ïø ò8 'K—v¨³¯XF+•¥­<Òò2Q[™)×´’d^UÞ,—‡*S”Ê™!g”‰T.ßtùäŒ"™È2 -Úˆï²c*ŒüV(##—¥ƒºÐçwßU^a‹ÊÍ‘am¾Ô¤\=˜CÏËÕûi) ÇPLêçÛ?žîŸ~á:N¹¤jLÒ'Ê2á”ÎÁ/‘_ˆ GJR…–ø¹f9ËKÐkãöÿ`vËg§¤˜ `‹½©GRéN›\d9xÚd‘rÑ.eP‚ÝæzG`]e¥D*¾pž°¹09¥2+‚&3ÿ]îy©Ø2B‚V"Ü;ÎórªAïrR­°ÈfRF2Z¾ñ„5¸]°Ôœn]‰ ¨\¯4Ÿhdª÷‰EE´tOge¬¢ò²GБºÐË7^@w·‹’eZÙ”:=щæDƒÿ9¾Ô)‘ìt©“É<Ö:âoOèu\Swp·¸í@Ë œÅÖšœ]{c¼¢’©•Â %¹79"wÌ–‚ϵõB4-×ÎVZktÜYèø²É`<\pmTãSðJ°6€ë„äÑÐõ„ÂD¡ÿÏßž¼~;ŒeèÄùªA*dw0ðd¥¤bAšüI‡¥µ‚ZÅJï=°-6Üq˜;íXë5šÆýêñöÉÃÑ®Kÿ"ÉÊOêrªâ§¾¢ÞpB½Ñµ·…{HôËÄBÀB%¶ ¼Cè ?[‘®¸‰äªØð¡Dîñ¤wÄü !À‘S ïmþŠ{‡@ÝáV¹ŒëYÐ’£- ^¸‹ŠÔõ-Ô–êŒçGcnpÅÜgÒ>^² x©5š …ððf†<¼`ܘO ´{žvÐ[ÍñQNè`£EÊB+ù³®W2qb(x¯«Ïq¸6èy[øÓYÁ]ÆA~ç³ý„áïwÐrËQ÷ -Þ)B6u_:kè gþ-à"›ÀlD•Äã^wöI² ´ìÉó𻄯Þ_—cA›û‘1 æÁ0€ÒË¡Ë9'Û0¡A_›ëF¢n| D’Wì:ŠZâkŒžWÕrë”G™±'/R6DŸcÝ>þ|Ë—§¯¼ìßé*Ïs»r¾½AùJoÖ¿æçý˜¦·:[«Maü¼Ç ßÎtì }*Gvš?ÊæOvv©ï%ãÙ8˜Mçþ?žp¨w‹‹ÿOqgÞendstream -endobj -1504 0 obj<>/XObject<>>>>>endobj -1505 0 obj<>stream -x}WÛnÛF}÷W M‹–dÝ Nœ¢jÕ‰UAU+re±¢¸Ìî2²þ¾gfIŠa$p"‹Ë¹œ9sföëÙø;¤Ùˆ.§ïϾÒp·üaÍi:à^Ü'tcèãÙ ÐørÍh<Ÿáó?VÓF\NÆѤûà%׃QtUžÃ/›³õÿ¹¿œF㮓w˳‹ßÆ4Òrƒ¦ó-B°ƒ-ãW ã·iþDª(´²Ž¼¡µ&çÕ ¥9ù­¦èþæ’Ôê_ÏIåxä¥-ŒÓ”:ŠKkuî³#•ù.7‡•6Ä”:Wâ´rtÔ¾¦Ò¹„ßEUí´ë¦ôÈ\Þ=†tÙ9G+…à\øm¯¼ç€…ìV;“}ÓÉ?u^5gœ£Nµá— “ôI;ðAW˜<ÑyÌyÂו6¦Ì“Ð* -E`x$U»×øZêQ±Ûu2C—àîB®º°†¿Íþ2Ï´sÔs—ú#½·=éÍb±ÇÂS¡œ;›8<>j׫šÑt| -w?,Þúr¿¼ýsùg¿zÍEk;W¹¨M×íø–Ò"RI4\„‹Ð!v±lÞ±]—@)‰èC*Р!ñ?¤Á¡Wi–¡g™qxÀuF'êB â˜à‡ßÉB阻\/8Ã>¨&)úG=¡ -6ÀµNÁÓa˜Ò‹9)šŽeF:Md÷Âg«¿–Á„ÖÇnH…¦qAí{ýܪÃ(6©;vÝQö,bëÌ$µæè€BÍ™7*÷‹£Pkåcà¶{Œäk®l'°Ç}éü# ›ÁzKŠŒ=u-ºý¤7•åóúD*äqñÛU5Wú]ÕZ4‰æÑ(šFô9Í!+Ò«"ÝN{$53b‰.‘å†á2¢?1‰ -V[r…ŽÓÍQ”)?¢x~‹!kü0Kw˜´ˆ›‘àÙ! -d¸˜î×0S|à$z/v‰M™%µ§`½ íi0bB|?ŽDáâ -­þp÷®j ³Ì ˆšÄ‹g·¡IÈ•Ea,ÊþEEšNxó`‡ÁpžEô°U2ÒîÃÐt(°?hÓ竉ÈBGÿÇÑ TbR±]ÃÑ”çæ½ñÜÂ}ólÊi^LM[øܬ¢eßÕv8“+6v‹ôYŽ›)_›§í·¹·ê›æqE‰Î4ûI}½ú”ÆÈ+‘ì -½zÍ!ŸØÖL>”/nT™ñâu€ ‚)³ÂŸ_øù+âjOÀ 2˜{h%¸[tPÙf×éªÇÆDnú¡f« ]óŽÔ£tÓæ*Re66Ñ€?±Ð’wËŽã¿à…î‚‚u9Œ×€d®÷Kh Çí ŸÕ¾ÈÛϯVU‡÷¡Š-éüN?É¥1)°@_·(#WCô»•·D[BÆ1ªtëÁ{`|9T.Åq AXQì^YOw:/é‚n´Û±N°Œ3Ý¥·_ƥתÇÛÊ?®n“O¾ß±„Ì[–÷áĪÃZÅ;^A+2AºÉmÑÕ1OCXºrí#ý¬Ï;ÎD¼—€²‡Û2³Ÿi¿Y­iž{PVgl| MYênó;#mÖßRS:ÙÈO€ëç[ ËWÇ=TújÒ79ÎoóÿT«á¤ªŠ4ªøs¼£aŠ±û·`ß@ô¡€…Âb6"ÙtùæК6<œ]¸eHY+&v‚k¢4:Õtµ¨5S€+ÌÙ1e« †U/¥½ìbT´¦ë9Œ5® -BÒD6úö.!<óé^_°$bF¡Ë0[Ò b²ú¡"²r³>Hê(I®ùâR•Ž†´Û{,˜Ü¹ø¸¬ jì0˜ Ë:®Jihz>nLmk–'ZT4A$€Û¨·ŠÍ: e:n±­ó,öô˜í°R[•» ¿¨hfê©þõV0¯Êp<ŽæóM§ƒhŒk2†ÀÃõÝ»kº·æ_¾nݘ¸äMGÆ5ÐNquž_R6¡¦_[·„ÛÜy[Ʋ)¾¡í=o`â'îV"—p"üb»ãÙ8šMç¸ÿ"†ñ”¿ú°<ûxöÐ*.endstream -endobj -1506 0 obj<>/XObject<>>>>>endobj -1507 0 obj<>stream -xWkoÛFüî_±ÆdZ[Rü¡€_iÝÆ–cÓ0 -(NäѼ˜ä1w¤eö×wöŽ’iÆE‹"€#ñq»;3;»ú¾3¢!þh6¦É”¢|ç;fÁØ_å£`NÓñapÀ7÷/FS:Óôuç$ÜÙÿü ÏR˜àáé|DaLÃ`8RíŸ:[\_\ýyº¸ -o_‚ê¹¢#ºWE¬×–®B” UЩ.*£³á·!í‡Æ»?Ñ­ÈW‚¯î>¤ÎOh<ÆÃíMFÁpŒÐñV­²†u‹JÆt‰¿F wÞþçƒöÍ==šÃÃOüV˜*K¢,e«gZ KÚ¨Uˆ '‰ºJµÁI«†~ÓiA¿R(Mi+#H'T¥Ò§†«"'QÄ„ÃTeuŒ—Rid[Êhü-цJm9­ª |EÓM^›’Ƴ`>q_-Âs:òmÒߥaqBNï^ÖIóÎ%¤­$#3‡B¥IUø–HCø¬ I¶”‘JTD¹Ä³1×¥ʢR‘¨”.ziW©¨(ÕE, SÐíå ÅŽ6ÐûŠ>äa©4 -µ"^‡å[ižÄ$ÑØÕ™ƒöIàáÚö‚F:/E¡$è°+a©.øà'ÔEò¹’…E®–£0_Ž¯@y!cŒ¥Ñ•ŽttsP¬°¸ŽdÜ w©"£­Nª½-:kÑ@ Å -Œ«U]©âÁEª-B¼FŒ 9ÁIt+e+x'tæ\>‹¼ÌPŠNzaS½n5Äø–€Urè¼É_^ж/PØT°8ÿ!²Q*sŽ pL/,-\)]zŽ/$¹õ¦¾õºw=yœåŠ“³Z„£[’Š# 2ã.NT&g ª¨X1ëËÝûÅÍï¿Ü,î®i­Í#Þg¥¡Æ^jþùåG®‡‹ÍN„€¸ÓzÊCï4v¾’f@×FåÂ4›ç"o0PèqODôX—?>¹ü¸–³"GÝP›©%1©‹Ûý1Ý S‚q.q@gpÀB×¢J]‡?Y•«Lô‹…F!ÆÊh²ÖÖ©ŠR×kRߨTdb\ùŽºûô…šrQ4TJ õ1ßð¶ë"€G’Ôº )“Õ.°á–Š2)ÐÁh,¡LÿäsÔÛt"“màj9xÍmKØL—F>p35v a{™ ‚† )ô)÷>³ÞH,m„vtõUÁâÕ_^Mª3¹ÿÌ1ª,(á¬å.W#¿×p ﻶ&d#A–Nd¦.²Ð^èEï´„,ž”ÑEŽ£¼D¶eˆ h¾Y àGJ8YkµÀ=©ÖhdPϦä Æ^Ô¸)DŽ7x*eZÄb>3µ2°Î%θJeT—ºèÍ(¢jÀ·þc¼èQíÛ°d¦«Ô[Æôä¿å¢¡BÂñcÃÿèwiÑ ÓGµgþì5Ò—RØͽc+ÎLcy×gwÏE„Œ$Ïez99¼s¨=fßÏKN©5%îµË[:þvz´\Þ_\]…ËåÏŒøË–° ×7ôþÖÉúFëêýré¿LÆË%·zh9Ú˜%Ò‘ñXs>/XObject<<>>>>>>endobj -1509 0 obj<>stream -xmUÛnÚ@|ç+ÎS›HÅ\B€ô\*Ej m\U•"UëõÛÚ^wwÊßwÎÚâTIL°÷\fÎœñŸÞˆ†øÑlLS’yo ir1¦4™ÏðÿVѺw÷Ÿ&4Q¼FÈt>£8%)–gw/Êîé».R³s´ŒÉíW9=ŸíŒýí¼ðÚ$íT–ñ§S!Ïç´Ó¸±/Š´wdvêm´óvæ{ -çÝyü«7¤þè"£þ™ß -O¥°^K] -Ýš\àãIÉÊj¿'i -oMSCP*¼H„SbýVíÉm0"Fš>/XObject<<>>>>/Annots 712 0 R>>endobj -1511 0 obj<>stream -xW]oÚJ}çWŒÔ—TR©ªòÑÜö¡InAÊ•’<,ö{c{ï:”Ïì®Á8éUUµª÷kfÎœ93¼tÔÇŸM†t2¦8ëô£>Vvÿüü«38™F#:L£>e4FÓð•ÒŒÏÓéx i4àÿCü-%-ÝÆàlßÛ˜ðHëÂżs|}FÃ>Í—ði<™Òº\‹ÂÊ’Æ}Ó²šÎcK  ?W]éL¨üãüßNŸzÃn]êÜ–:MqOå8yW•2ÝÒLd A»Í¤q•]L¼ ½“âÂ3ãhÑ])KùR)£¬¤ŸR$*_±±ãë áÆp‚€qãB.5`ØêŠbø òJw‡=±ke(öu©H¥0’2ñ,ÉÀCl ëî -|Ä:Ã[V,RIe×üàR­ªöI„p'ÞSÙÝÕ%#“H—j!oRú¸{Øí}»½ŸßFÞýÀnãh9XW¥®òä·aÞ³£E÷˜–_è{ØÊD¼VyˆŠs$ÈŸÈ͉IõJç祒ÆZ–:£.ŸVé̵ܸ¼Wy¢7†næÁpD÷k™ËW¼'¨2þY¾Êv¨qü~ÿr8Òý#›ËNð­–IÏ®F€ð?Ê젅 +1467 0 obj<>/XObject<>>>>>endobj +1468 0 obj<>stream +xWÛnÛ8}ÏW úÒpßj§‹E/lÆiÙúBK”ŵD*$W¿gHɱU/°(Š9—3gÎŒž.&4Æ¿ -§4[PZ]Œ“1ͧãdAó›%~OñßJÊ/žh²L¦ñ8ÿ˜$7xÂGpëúódAŸ }»ø°¾¸¾}GÓ1­s^,oh¬Žñ$½üXˆÚKK³„¾;üU:7¶^M™ðb#œ|³þ'ؘ,£«ÙþÖÙå,™$ôY{k²&å+ñäœ&“îät‰Àqò¾Ìh¯tföŽÒRIí9©3ªK¡4yùÓS-œÛ›92ψÄW¬LèATA©Ð”2Ýñ'ŽoZJm[{¥·À˜®&³ NV$à&5U-,ð劼 æ á +rÞX™!ñð¨Ñê'5ŒDŸ}ÒÙœ.’9§²’{¼=›ŒÔ!X{ÉåÇ¥3W©(K<ý"t…,8 ÕšØ»t?Þœ¦;B$ÎK‘ R1ùY¬Z'˜œ? »WeIF—mÄø\Xƒ•92e0¥¸>$3¢F—Ò9FJYÜß*çmK +OöRìd6 Á” +E|íi#Q"{€÷tçÛRÒ™Xú SÁ‘_O­i˜°â/CÊî<Ò6‹†Oª9 +è³B<Çܹþ¡öçÊCÎTr_H‘¥“ÃüVL\d (SyŽSÚõ3IŒŒ¥àì­˜ÿÌ5Bã‘ié°Úø#ŠŠAi~¥ëˆd²M´ Ü”¡\Ñh%Z*ͽ[SBÖ¥Ic»Ç, 宑.ÕÖä +A±C`ا}þ}ƒÅÖ´Ò[%Ÿ‘ÓªËÍÃÒ‰œ4ŽûOÐ+æS¶¡Hw€W }4Uè*ž…*Ån»—°h‡Õýòéý×Ñq3pœ#ºk¾} håê²q ÝÑŠ«{¤j#=–;3iS¡`1{±1 J¹t}û¶Ó°ËÐÊÙf€{ýÆϯo{ÅãÓVTŠbå=VÍ Ð&¨fUÔ^{ZàÞ÷2m¬òí©U0»×QnöPsúáîÃAhzαn{™Z=50‹\+rªªŠ +ººæ +u/á¥Qaö(¤ òb²cªJYGщ] I®€g[+¹¨8¬ñÿKÖµôÌOã4óqËÄP:F4ðŒ7"‹9á®·8O}k8HXdzð}âúEa{ÏÔZyÊ cÔ ÀÀ3&è¦õ2êtFÏ¢dDá7Snס‡èB?‡‹ö÷ƒVItÞÝw»WùÔ(¸/ÑG¡c ȤU,XLŒ§×î¥ôÜËü Íyá¢i0rkpK{ +ÑÅÅ0è†*R¨—»8šYж,K"MƒÚ³¾Á'`îÒÞë–cE2Ðr§_hÜH>pvÚì1õ¶Ðm É/D™CÁér>Â{–¢¢µ´¹LYHk㜂D$\Üú¢A¡­Ä àÛA;£DCà”ð§*Ã3càšg¦sµ ó-£(#e&êU­{*1šSÊ4Û‚Ù‚ýx0™N“éxdófVUVYÎàlXC±Í±,?€×*åuÍ°a +½í*œÉ\4¥ƒœ¬T$#‰Ñ¡­º¹‰qΆ0OTè0Ë®o‡éÄ‹¯¬c@›U™—à5~9S6a3Gƒö wEÄ–ƒ·Ž ìfWGØ–;سòJêÐÝg²Â~êÀY?^Ùèjx,J¼ád=TŬáh³˜ÌÌ÷ÈÒJ­q&(F5ÈÒS"Ò8è¯üY¨MH‚ç´æYÁ—ÒiÙd2ôÝOÑn…–è}àë0FB×Þ=rG8açjjžÐ”7hèÌT¬‡èÑ0žC7šÔ”˜¢ìá¶Ô-X(ÐþaEŒV¤~VÖh^=ºç•–£¹çuý(Œ¿¾ÒŸX=ãˆZݯÉuu±„5ÎÐ&É$ç¡#;Ì|º U7f;UŸí¡îpˆ™êT + ˆƒ@òƒ˜am䯕>‡E2^¼åŸžè´ƒ™3šŠÌ+בë[|›†o«é,YÌæt5Ã_|Ofÿû t¾œ'ËÅ ¾aqi²äðþX_|»ø% endstream +endobj +1469 0 obj<>/XObject<<>>>>>>endobj +1470 0 obj<>stream +xW]Sã6}çWÜ·ÍΓ/’Ð7BËLùXœÝíN·Š-'ZdË•d ÿ¾çÊv:0Ä–t?Ï9Wùû`Hü i6¢ñ”’ü` h<G#šÌgø<Ÿ•”……ÑdðöÂp<Ž¦ÝŸ–Gi™ÑÆšÎ'Ñp|LË”ài0 eÒû¦ŠÔ<::™ÓŸNþõqùó`@ýá4LyãnýJ¾»ôÇ-ýfò°ÞF“ñˆú£Y4Çœ_n¿ÑÚ<ªbMÒ:e +G&£«˜ZçY¥õ–\U–ÆzJM.TAN&•U~K¥5Þ$F»ˆCxå¡5r½¤qtüôn˜XŸD^î¿™áˆ+rkM&Ç(ô»–°ó‰bi‘ÍÑiú ŠD¦Íó»gP¤®í£‹iÓŸ×e»6^Ò/lmßÅÞ©Ö„šXYxÀBKád(¤J¬q&ó_}::»¼ˆ)Ñ +›Ü®¤¢ò¼P‰ðH” ¼àýmÀ :´ël#´–ÅZÝIW¢S’r™lD¡\N©t‰U+$»‘VF´(ÄJs[ÄbÉË'OO©‘Ž +ƒ¦*‡Í’Ýv\Š•ÒÜf@‚cªC'o¨«R Àƒ,»-=¼¿ôPŽŽ¦Ñ„Sx†«¶ Š+'˜g{K¥pîÑX˜Ô¦àŒdA(•š1Rj79¶¼•}ÉUé!L[S­7Á…(ÚÒ*ŽÝʵrÞn‰ë¸–¼Q¾eŸ”£ëÅ×Å]jÑr£\§Z¹ ßÏ5 Ù f_¿TH|î)1E!n6@°1•Ni%°”Ñ,¢’?z+kîeñã#™„½Ž¿P5Þ¸+ö¶¡PØ•W9â±Ò™Ê&ü’¯E–!Ü9Ó·$DÑeè9» œl@ص°Q«»Xv‘pIdÇ|]&”ÙÓ­G_âÝ\tR]\ŸÝ}¿].Îéö4Ž¿ÝÜÇtS¼¼»¹þõ÷ïtzþõ2^œ7ÆNh¸eÀÝ( †ÔZÍCÑ0¢ ^¬Á`\a„Ñv½gv«ió žÀðí;è Tâê3 ˜õuÞM×#ŠÑa™*Ç´ÜÃÁ +-°VÁdüY9VÈïÖ¾m­£µaMS9úºŸ-Ý^Œh+7©øàI«{°Lèûæ´Øá€1_…þ¥‘…¯;geVA@úÈŸ^¡³˜ª¥£}Qµ3Ìœ·¤åƒÔˆ¢'¹IÁôÖ‰*È ôó˜ÉK¢”ÂÉ̾LÖV&êÆñøh *!*ÏÈvñPx&ú[âroa’© ­®)†gG[Sq7P6NÐySÂŽáÏœ7—¼:óºì ˜€„]xmY¡á<ÓÛrH~ €vÅ-µ@â ë¹zt±CtÇ—€u]˜Ú×jrCЫÿ‹ì{Y†V@£îQ<€Q_ß,Eä–æ27vûº_xæ® …2…#À>ôÐRU¨§€E•ðÎ +mš6keW™/wdØ]`•É[[`|…Ã?zíq/5ÈמGUëþCÑ–·Hl‚$ 8vH@)om@—w‰áÇ(PXµKZ©5±h5 M›j›v¼W¡q ;—¯BIR:3yŽT_ŠÎ.Íem¿»òõ`$µNåJó°b_[:n®1½ºôû=2¶»o[Ö½Œç­Y[‘»ÀO¾züÕ‡¹F¸R®¶¾;¢žõ[êªç"¿NW´ \stцúì¾°K¸ Ò`M4—’~#0¬ |K6•gö{‘à²ÅJ¡M" 5ù*å +Õ?,°ž|p{l¾R +‰ëWVÏ}Ú²067¯2ã-}m}¡ny;oÊ?œâ;Ã|LÓÙI4žáâŸöâÓ«O§|ñüÉó÷Ü$UŽI.œ-îùõ‘þlpÂûÿãäšÌ&Ñl:Ç—œÎÙÔbyðùàí’ïendstream +endobj +1471 0 obj<>/XObject<<>>>>>>endobj +1472 0 obj<>stream +x…V]oÛF|÷¯X¢-Z²dE¤n€ã6 +Ò¿œÈ“y1u§Ü­ðßwv¤%ÅI`ØHÀÛÝÙÙÙ/'9Mð“Ó✦s*6'“lBÓég— ü=ǯ״–ç³Y6îC>¿ÊfÇ^/OÎÞ\PžÓr óË-KB€É„–Å(lV[®|¹üŒ‡³îáˆ*(Vš +µU+S›ØRtTTÊÞkçË@ÎÒ'cK· t³¤ ý£öîF±2ü±niçüC ]¥-ûã0çÓì8F^itˆ„ÇAÛÈ!8(\Ýz³Q¾¥k·QÆÒŸÎFïêZ{2kj]C +„cïIY¶éÞ6€ñ" ï^f]Ôó9øAÔ¥#ßXr'äªÈ:¿Q5±5}n*¶[M¿%bPžŽÁqïå×ô%ï¾\eÓ  ÷ƒßCÓ±¼Ìß×%}x÷z€ÙêÝåù,»êþ.H UÝhª4r“óT™aÄÆ[¦ÔáÃÙXGxÎñÇ£ò¾v¢CQúÄnôNݲ0PåŸ"³0dG>‡Ø½çõV«H? 0ϳ¼OÝë±d?ÄH°{¡ŽóôxÿVhàì;²J§™H‹*iºñžÕ–Ø Ñy]ÒtÆ +èX§L.+1î ¡•øßàJ«¢b4{zv\‚S¶µÅ¥©k1]uªÕå±*ÜØG÷,«– êåI¢ÒâDšJÕµÛ @ùöÔ™ÒvÐ4ìv–>¨ÍJ (ž‰È}€hœªwÈLÜ gø¦´ÀÙFã,:DùûfþN)luaÖ-w {c«6Ð`å‚fñÓ‹O:xgêÑ•Œn\á\™ RXOˆ†rn½Ûl£” µ**]<ˆN÷{E‚J½¹: údàâ(‚ŽQAÜr:<¹†á#¦¯ó÷.ÆTY㟠­ûCvãûP´#žw¥æޢ؈Í3ÅüAøïÊB«6¿ +rtôñæíÂr‚€l’œ÷3~”€}3Ð?|·GP»Š¾1)ÜfáX7o@øMƒ¢2µl&€Ì㧠{œ¿×k(±l˜±Vv•A‡ŠÊU½SmàüùE©×ÆšhP±Ô¶ÐëW”c£ñjOgi¼O³YF·5¯¨¿ÆÃØxw¾ÀþÄœ~_—Á ºFk÷h Toô#J#‚6•ÇðÀ#ZCt‚¨±ækú\ª¨V +•àzÁÊÆÚj)8ôÌ°ÇöÚè›spµ6µ¦²ß2£3‹3Asö] ¡ÏZ}g£gô‰§ÒÐ àзÒÒPãÄÒµªuyÊ‹„”æ$Úùýˆý‹Œ–×ÒùOÅíi&(ºªúŽÝ&Nyó¦høF¿ÀÉ/8%–Þ<ŒëŽhìsúÈjƒúh¥Š êy0ؼ¿4•m²Re É+œ]›ûÆKUwß|zÍÒ‡×n/ð06D$.©ýJ·ïïëW·?bež?I%ƒjq‰$ÕN’§Ù<Ë3zËwNÙ 4½íWP(ç £-]!C˜çHáÍ +K®â•àX•<®9•`¢Á­ 4¦šyKq«¢p VážÈX‹^õ´±ª“úYÕkíntq÷’XÉÈ@Î9ÜÀ‡éÆóœ{ØkÅí¦jþG+÷¥Bñ‚)¨ÑìZì»{ôáÉ+ô6bp£Ö|œ*™šlð”$„vbt%ê¥adí%ÊÇk_’½þT¾ÀYÚR9ÜuÇ¢Ñᔶµæn?˜`k\¦i›X¦yyöæ²» ó9nøË)Íç“4 >¼z÷ú.\÷Qpµ¦JŠ²8uÜ4É`¼˜\qÁŸh³Å,[Ì/ÓÁ™_±Ù_Ë“Nþ.!×,endstream +endobj +1473 0 obj<>/XObject<<>>>>/Annots 553 0 R>>endobj +1474 0 obj<>stream +xXËnÛÈÝû+ +ÞŒ H”¨·¸ M<“1à$º±psڴȦÔc’Ít7­èïçT7)Ór2@‰ Sý¨×9§ŠúzÓÿbZŒi2§¤¸E#|rþõùýÕí"šÑ|9FTÐ8žD·ÍSNWñ,æçÅ8ZbuÏÎO¼:EsšOçÑ‹ËQ4nx­óXP<ÉÎâlÅ4Ã>ßÎàAxò6q´ Ù|ûØ£Y4ižx•/šM§X›.ø{Œ#)»ŠáÍ’¦¸lΗ.c˜OþÒÎ3.ßb×Ëj÷«“åëÕÎ3Vç#¸Û9á >äüMFKÎ?´ÎNØË _Û\ ÿ˜RÓ&ãÂÌ— Ú¤¾.#Ú$½O•,îVkÐÁ¹ê×áðxQ!Téð#SÚè~_ŠDiz§ëJŠÚ{õïÊÌ?n¨P{d AMŒªœ¥Ìè‚îï~_=ü?”ÞÒÈu!J±—T[‰ÌŠ2¥½/¤pA,‹‹ÌúÄøxèNs,p½tFç9•è2Sû:8ðÝXZPvP{K1°’!u; ûœ±3‰æÑ8¢{¾=­Ž‰}y!ê=fõ6F´…ËO}ÀC–gW\ײLÌ©rT k¸ÔÒè$í5GéúÅ6‚xz’öl± ÊìµÉe*—}Ÿ-I¢ëÒ]$H•nÑ”ÀgÐúí¥(pðáÃEjý` ¤í¿|D‰j8UðÇ\ŽÆ +e¹Ø[øvRúTtoA Ôñ8à 8ÝÅ[L·½Ùöæ{Eø +! @ª¬HŸÀº€waEƒéi•cn(w œ9Q.ÌÞ3¡ãYY;†X0¶íù´½x뺶ÕnoeÞfêM/ßö>ßß5ÒpÙÿ!Qm;iQ¹bF¡¡×¹O’ÅóÌd¢Ð”—[*cÀ,ëJ!Eée‹“Æ$fù¢Nàž6èáÈcJGL#)bÊ1µ¥¾¨Ò1#VëûfpQ´¸“`²ðÊníÄ3X¡KÈ“ƒ¦¡,p‰­(ÒÊ HgÊ°íUF>+@,?]Ì+6{–!Ì1gVá<Ü ýÅ£“YMÜ£ÎMäÝÿÉ)Y–Ñ…›‘hŒž<é“,Æ8$ÅÖU¥ ²xa>xºÉ“N·=í¸‹3énžs±=°¬••p>y³ß¥»·Û·7È××Dĺ¨Ðª}'mlËÒ¢æKx#‡òèg>H†*“¼æIôàI;üãù¸+j§yh ]q/èhl{¾[«qc©ƒ +ÁÙ#Ò~™2îã¾ï‡6Ô€î P¦ ãñ™g¾8FŠ\9/((þû~Œˆ^€ +7°9£“®Û‘µRd ”G@Ö|K¯­o]]¡ÓUE屉á¼> Éu8xíç÷³ƒ~Ìâ¶Ýä³c3ÕI]€÷~\º,Ïæ¥eS&Ti€Þóo̱ӵ©Ðý~ºT©öR‡™ó<^;ü2Û@ú¢2]&6c–§×«004×6ú•oé4«]1 +枥%Tù•rûá%ÿ‚v®–_]F´Â¤żk•Ý–û^íóŽøÊ+®*;5”.†&üSW·ÊÛÒ ulçÌ‹Ĩä¡[àï‚ d4ÀÍCçãã£çÀzõ’œÖ9Fzx¿~`XóÀåu5ÓUsµ3YeÉóVô®yÙò™\¯îèQgîÈ“î¶×yÛ®Dšû_–»?õ‘§àÐSS‰+06 ©2¹ùé¹€‡wâš<ùq™¯ßÉÏ@XÁ»Ú_ð +2MV—Æø +d´Äw ó8¼¹?®>ü¶¢µÑa¶ÄëV‡+l}Ð,F·ÿðÆ4]L£Å|¾.øèÿ^ý ýoNendstream +endobj +1475 0 obj<>/XObject<<>>>>/Annots 560 0 R>>endobj +1476 0 obj<>stream +x…WÛrÛ6}÷WìL3cyƦu³d÷©Ž•‹ÛÄI-yÚÎè$! 1I°hEß³)SŒÆ‘lJÀîÙÅÙ³‹ÔÇÏ€¦CM(ÉúQŸìßî?†ƒhJ“Á$SNãñ¿ÃSFs^O“þ(â»)/ ÍWW#|6¾œbÙ/#iu4¸ºÂúÑïÍi8½Ä’ðÔlÂçewÛÛÅÑùû+Œi±èÉ%þH=Ö>-’Þ(šD£ˆæUYjãdJŸf×_i.Í“4ödñ ›Ç4„ÍgÃ)6÷–Y‘§1%:•¤ + F#ZöD‘R&œ4ËÚK±”¥òIfº„þÚI˾*«Š59˜ûRÊÂ{æp­÷Î @ŸÎœ)8N2% G™Š0JÚˆ +PÈÂnt•¥pH"Î$9M[mi«Ü†î¤³‰(å±¥™22qÚìê8=¤Úö|öGÔñúQoÞœRZy›™HI¯|ŒßjZ |8pP¯XW¤f$‰ÎK0Òm¬wWëÝ|€\h‡ÅÇa¼••úÑíŠvºòæáPÀ[Èô”ÊL +Ø'[Á5œ®´ÙòN‘eT +—l¤å‘¦XœÕüæŸ"mÖ/¤ù°îžWø|´9t6€{8&Ïä‹\øÐî%N^éÂnTÉNùlïßßÐpÔŸR©­ú~$ÈŽ{…ZsI#€#¬R†…L¤µ'fƒ¯§$ vQœž²=ù]äÈ=gr‡ ƒ‰C½î¡×ÄŠE—tü ¤I2a-)KkõVó‰ÿÚ¸¼jŠd²ÓÞ±ìÑu6ˆ.ðã5L.P/ø¡»ëÏïèØc«Óüá+ÒWÒ|qÿp³x¸¿þÄ^¸ú(q¤žøßìÝü†ŽCΚ­/­ûü0_ 0©R)½!ƒ÷åÉ‹ë®ÿ!^—X–å_+ +ˆ÷®õPnÓOº¹t¼L¯u±P(Á7/™ô8ɯZ­Â2zTÉ£Þ?ÁÚ(n6¢XÃáñseÝþY$‰{Ÿ‰µý©ýTÙ2»;–‚7dóø£ömðkfpVüibT‰8 pc4s(<ý8è·ÓØUAšþ‚¤XXî ©Äü`tUÞÎðAªs".OBŽõsÒèg›ŠäÙ¼—JÐ:Žõ±Kð w_ng1Ö½…P¼ó5h°"¡¤!öJ6ÌÜL®EƵ É€ ÙŽÊ*ΔÝÈt/3Έ²ˆ{ÓuÑ…=ÈAz(©4›7:Ôd²l[ŹrÞF®SµRØÚ®`ÀA£PGwj[Cî`üï`aë¸dr"E,ˆ*—¢`ºÎÝ($‘Om»QÜ¢Áe2Gû`—|ŽÈ!{8¿‹sé’ó`7|Ót¾aŸÙBê;³Çòu¨B¤½k¿öáîöo€@m–Â6Úˆ®ƒP7Æà@ÂlõÃCuxfZï@­¸]8JnœŸ.Sõ¤Ò +=b‡,mÚbDû–‡àNæšåâà ³ÔO- ËžŒÖë z~H¸ÆòL”)œ£¶úàÓ•ó½Œq Wp«`¢#rü¹Q‚j]4ÝÐᶠH“4χÎýŽö¥¼BÕ|Þyøð…œÝ°O9MpùÜlpx0ÈÉ黯ÞæˆØækÁ¡Á f€X^2Z¹‰¹€Ú:~×±cáà\~vœ†~ä =)áwA•Š”;ÿM="ípêYf¼?žµtå¶ù²·<9%é"ŒÑò¤N6W³YøzíøâRf¹¯Ä ¼Ú(+ö³ÛÝ|¾w¬ + É2PÓ³ªŠ„Ç—mxüÊvµ_&¢åBÕ«ŽÓvçâ‘sé8ÓVÕÓ](v>÷€ï…‚âô3¸SŠ+W'šõÙ§š3ÚñùŠ‰»Û9óZÃÑÒùÁdñB©šØ@`È'4JS%³ÙÏ程ˆnt±RëÊp–B@~reSŒÒ`‡“8`>/XObject<<>>>>/Annots 575 0 R>>endobj +1478 0 obj<>stream +x¥VMoÛ8½ûW ‹IJ%;–|èÁýH`7í&ÞÓz± $ÚaK‰Š(Õñ¿ßGŠúˆ›»I‚¦‡óf8óÞ#Ÿføõ) h¾¤$ͼÍý™Ð" +ñ9À_Éig ØÚý»»Í—Æ\zKÊèrá­ÜBÒýh°Ìh¹òæ[ãçÞ¢ó³‹ÞÏÙ¢ ƒÎfýüÕ +¹¹xÍ¢ókmÑ%¶ô¶Á2£U„<{[ƒ™“´˜vÑc:[4Gº~gküÂÀ‹:?»èýœ-\y>ù­ñ»\õ5óí¢÷s¶ðÒÄël¾oêëÏçöð~èT»2žï7£éÕŒV´Ù¡›ËRÛ«m’ñÙMy•LUÁs™²bª%+R/Qùî|óm4£Ià#ŸMjvêägŒvBrMÛq¢Jî¹ï„kQò”â#¥|ÇjYmÏH‘'²N9 ~NÂÛÓôÏi䜧³S%i–Ål$ªÎ«W‡Ò"oÏñJ TªÜ¼Ô*w%y%”=ÑsˆAê-7ŠøŸ=¯pòâ³l;~A§°é@¨E‰Âw¨­¢ÍXpŒ+Ò6fÅ¡é/aw˜ƒL‡Dçº#9Ãu£!54û—íè«7è$S +´ÔQ&Å J€sl[uRг³¦¤¨Àmż´év‰ö‡o¶íÿÛ¶$œºoÐ)ZÆMÄ?]š Ó+LøN[v–ν¥‡ËÌ£Öb_Û¢Ü6›Ãœˆ±aÝ3¡S ¬d¯0´ÈÔ•ý`B²XZ]é,¶—æDõЀ2—Ř&óíÄ\ ÒócL#Sk;ìSëN…ÀÀ:U©ÍØê Œ&SKZË7qQ'¡™W ´ –!=jß©¿Aàå^¾„¥h“æo„Ñõn'žÞ‚» {#ˆ¹þÄ$ˆ<Õ74‚$ gR®ÌdŒV'¬–7Ûñ%å`Ù{1Gµ0ÆsUQÌ1Ú +Î*x>p<#è³:p´ê‚˜™ÈÛ&A¨2ÕØ{ä6¹Á3ËnÅs"J†3Ç®ÍúþóæÓõ——éûÞ^:ïèv}w{³nN9ÉøK¼Ô£9-ð¹ï׿¿_Ó×R™›Ž>ª¤6ï V e >i&áÌ<Ç͘ùyÈ4µ7…7á —Q£Í 0_}ÚŒþý HJj‡endstream +endobj +1479 0 obj<>/XObject<<>>>>/Annots 578 0 R>>endobj +1480 0 obj<>stream +x•WÛnÛ8}ÏW RìÆbùº¶³@ÒKÚ.šËÖŠüBK´ÍT"U’Š›¿ß3¤|‰àmƒ&¶)ÎÎœs8þvÒ£.~z4îÓ`DiqÒMº4ìN’ 'c¼îã¿•´ ýÞ$éY@Œ¤[ÿúü><:bcA£ËdLáuNÓ“ý»‚zÝa2Ù/½žtnºtI³%Æœh–…¸]š¥-â¯(ÏD <¹ð2£RXQH/­;Ÿ=žt©Ýï÷,Û>œÉ¥Ò’üZÒÛ;ò†*'i³–šJgJ¯ø3^Í”•©7ö™œ´Oûx½. îãÍðh)œÛ›ÑÒXìUŽCã·6žB–ÒäŠE’½Lˆ> d°¤|±³¨œ§…DbüyB†u†ý!QFí ñÆΈµi9™ZéËMü´®XëŒòóŽ§âˆåÚ +ùÜ1–K|¶ ¥Ê%à~\†•ÓPh‘x2Ó§ô$òJnËÜ8Bºz%ÝE,Ç®@•ç¤% +h8¡•8cr Ú‹\tE§©¾šŠb!èVh±’öÂTW¥4e./²ôÊñ¿0vuZÇktž\)Sµ|gùôöú¡n왣µq^ƒ64o¢Ê½c€¹I/Íψ0røÄZ,’€"„ãÞî¹7~"Szet$ˆ¡A·cü;–ûž™åòì¼ðÂzò¹ÃðïÌè³ý9æç?ïr ßí?ú@0¥áDQ25[ê::Ç'yY½̃…u$“ Œ>ý ÊõŠ“ËãÛº`"7tí¤°é:TöPÖÇ`Ò¹j¹Tß™r¿Ë°•ÔÒŠ<«™í)‚`AÁšØÌ×cj3«„yëÏy«RÙÕZÙ2‹G°$Í¡ÚHùë45•Cççö›Kê £a¶=6ªA2ÂÕO::£÷ÖT¥£"H©:QçfH=la³m÷Ǽ÷Ú±?ZlŠyðÆ·AÃk[5Þ× èã=›ŠÜÚTyF…ÉX}ü‰ü®s}[‚A0öV°¬X„áɃ3)rÚ(¿¦‰„÷V-*/ÝÖAú£gÏZ·‚.;D +VǦqö#;p®¾ÊÆñú`6·ÁÌÆQ•#@|@ü©ßÃ@@7wËr)-ÊNÞJIf6-± ¹R¤òïÃÚ¡ DLÎØEv½2J?š`…ì€;´Šæ¦ó–‡cþxKèxBÿ ¤|}©U +à–î¦ÓÀ¦‡ëÛ@Ë÷'ØƺŠu€*ÅK¥#}Úau…¶qbŸù–™Ÿ7{øQÓ4ø=nvɲ$]¾Nd<ÒwÉ=;/ Vë?#XQi4ŸÐŒïäB + :­…¯âk³ª•ÃÕÂýà>/XObject<<>>>>/Annots 581 0 R>>endobj +1482 0 obj<>stream +xÅX[oÛF~÷¯8pV)$Z’IàÅŽ‰ãU$@µ#r(1!gØ™¡ýûýÎ )ɔݦÝ"kÃÖ…ÃsùÎwnüýh@}üh<¤ÓÅÅQ?êÓËÁY4¤³Éï‡ø3’R¾€£ÛñGOù|AƒþY4&ÿ!§û£×³£“ë3 h–Büh2¦YâoîÓ,î°L+̓4]Êe–Jmm¶È%9M•ÅËJn_ï0nöîžÞ]MïH~sR%2!]J#\¦eÊŸ/sKÒ©?wÑz1ûrÔ§ÞàÞÌ’ŽÌ ÖP,¬ìÒFW$à˜uF«e¾¡$³±®ŒXB6¬ÀGá ZÁ<+ãÊdnCóË<¹~YûÖÉQ’µ9]@s.6Žwæ/¢Ú„á(:cnµcç„ó³C÷Tít¬sÆ!‘¥‘±p°^¥âAöˆáàç´E㈈ÞêµdT[ŽóíJ©<€y¶0Âlàx–ç¬ü!K$\¬ÊRG)4òy'Àªn¥uZC –뢨T#û…tk)Åy&•³-ÅB%u m‰tVíOÔèzß«SËAÀKJ«žHŠLe?xvK©Ñ­¨w`\)¬]k“à;»‚W|½e;—d@Ùi³‰hÆñ{B‰V,˜ñ©Tç¹^ó§éå;ŽK:¹Fºx^wl.Ê$‚ í¸¿jžþ÷†g!ü?ýD‚ezñÇž;Þ-JÔ1‰8–ÖviQ9ð@mˆC¹a“dneãE?š0‘ÂaÆH8gìE^ÜÕ®w•kÞ¶î!þY€éêâ8V÷¢Xš2¬]]]”R—¹ì&ñ)S_´¯Íò˜Öà~Û€FØÏñäúœ`9g|ï%ÓhM¢¸¶”q&rë Îà$‡d³lÆ4FîÕüÙ¯½!WŽŽ'ËÞ9Ò‹/`œÃgNp„‹BÈ•]ä l”=T»^“•;ðBචü*dÞôöýôvÇ­Á¨·Ø ™cH#m XÀ/ŠÁD;äá<¶ nȘ%š`ÔÅh%¿!ïâ¬9× °ÌgÈÉu\Ó«7Ž&jj×|8·øç¯o}xõ†àÃílg¿·»qâ»í§=‹[¾üö—ëä°î^ºƒpô3åäÀº¬àué@ÙÊŠþà|ܧõ +uˆó6ئé³Ñ%.O­ÃÏÁ¸×Fv”¢µD ìqÿ[üÐî:K_B…/ ËÔs·ãŠm ’†{!’Úþ^q;Cm¿Jgé·ÿìHÈ% ò9Ã(mtìyd«xÅ þý Ý×Ì_téÓ¼ƒBúÕó7Ÿç…’ÜTXù­ÌBæ‹ åÕ¼Swͤî|›Í¹^j5C¬ÈpSáAä•$4ƒ,Cû®,OÂñÇ)„‘#é<›?M‚±Æ4ý¡*¿fñ×­iv)ÔåJ¨åÃJßWÖý`­+]È+ƒYá€C¾¥—‹„ÏP.n4Ôõ*C:àMÑŽüz{ Ú;Ôzna¸Ï'œ¿#XÇ^FqÉz$·€ÿÞ\=3}ŸI¥ÁŽb6¿`Ö,o®0aý ¸!P-…–,¦ùÒgDøÇ#[ƒFo8‰ç»ÅÓ³_´6Zm+0v2t4­x<äíÐoaíENaSóƒ1onwW—l”À#€Ë/`3u‹å‚ßâ±—ÐÃ-½·>Í>øO¤–[<Yñ~¯±“ª4[V0 hôâ]“®‚šK­ðø)ÏyäÞ–†“ëI½Fx79¥ÑØïü÷Ó÷¯§tg4ï¾WE³a²…½æxoÜǃ‡¿¹}Ÿñ$o4Á Ã3üfvôï£ÿ¶ë(^endstream +endobj +1483 0 obj<>/XObject<<>>>>>>endobj +1484 0 obj<>stream +xµVïoê6ýÎ_qUiO*! ! HýÀ϶Rû^·2mÓº&1à6ØÌvJÙ´ÿ}×6)mÚ¾×îi ¤Û×çž{î±ÿlàã7€$„N Ùºá{>týÈ‹!J|ñ'),ÃY£= `¶À%qšÀ,œîû0Ëš QbËø¢”@´–l^jª€àrÁ‹(-$ÍaËô +ôŠ‚"ë9d™(¹ʵÜ[Ø‘{R”û•\ðVN¤,4¸×ýO³Û‚m…±!†¦ZÏÏÄšš×íi¶GØJ¼Ô$‡ã7aœ€­ðÛÁVÐñB “l£¯ˆ^ý÷…X +þ}!V˜ÄX²ûeÒ +S/èȘ­¨¢ÿ'ýL…4<ùðH } ëMA(U®)Ì×g³ÉéX\laN)‡Lð[–FøšÀÕx„çXq¢ñÝ}ñš`éÃœÀ ~~¸À_ù¼ŠMØUƒ‚Zaw`˜Vû²£Â­lT<£gÁ +êÁ/+DI TT'kŒr4§ÙÝîÈÁQ …•g.Ö„ñcóì‘*þÜõ-6v«¦$÷Âà&ÑŠ»›»·ç®'ö*?”èS˜"fjºÉ6PŒ£’å'6̱(O6T˜"åÙ‰í<ó äòÈäÁ”k.„gÒÏ=8[zOå±kI|ýØÑ ìM.°g K¯mlÙnaÑ¿Ÿ¦ ‘È¼Æ +ì¡T•Ü$Ã]Ó@) +g*[É4µº]±jÀr&i†>´« ‹úˆwT¨8¤ %ð½ÄAâè­<è¦I½¥g+uùeøÛ¾J7Ÿ<—bô$c­Nàì©ãÅ^σ‰ë¸ŸOa‚nÇÅ…@«|f„.LåS&4>Ûœ!ȃŚrÀVÈ;Ô|4UƳ¢TLð=ó°Š=T.+æ·˜~V`ŸZmO}èíñ†‘Ûó>Ý,Ñ‚ux Ï”ƒU`üVX¡x*v}/5(9š¨R,ïCš¤ãÔ¢ØGãAØ‹“dE“é èt;ÓQR[ºÙæ—¥Ò#ä{IûQ¥8z1O²5‘»S)ÊÍù¸AèµPÅú€¢Û {~èw‚ád<éáîƒqguºÃnùÑdR[Š(.ˆÒ×Tcd¿I/£Ú$ëM3¶F˜~mÈñ;²ü¾(«1Ì=QÈoÁµw,»‹… ÿ& $Ëô´ KÕ‡ßþªÏµ`é7cIƒ%èù~\[dŒ¯*bS}zÀó÷uer'Iw¢…£Q§sì(ÛlÏÎ}s¼%Qú‘fD¢Y|H¥_©_Î*|÷-¨§T’"‡‘Ý¡ÆÍ÷hìÛ +~&£§ìÔP<›÷”ÖÚ¼wÊÅ|‡Öù;“»þg¸¹ émúÓÝ_(¦Z\'cW‚—CŸËõœÊ> ´ê}’¡Ç|•^±düzE‹¢í9ãí9Qörö¤‡Þ%î%Ë+Á ïëµW>/XObject<>>>>>endobj +1486 0 obj<>stream +xWÛnã6}ÏWLq€H–lù’ }È^è.v».Ðb³((‰²¹‘DG¤6ñß÷ )9¶ã´AÄÈá\Ïœ¡îObŠðÓlDã)eÕIF4ÍÃ)%óžGøk$nc’ðÒ‘$¹x¾qOñ,yü‡sŠ'ø†áM<¥wš>Ÿ¼Yœ ¯#º EÙé9Á(¢E6¨í'ãnòKšÏæïæQœL£éÛwW£‹élv•$ﯯâñd|ývv¶øU0ëuãºãp҇͗Ͽm°ÎÆ‚q„@;‘8¤7­*sU/½\BqÜÉ 1,4¥,Av%i]¶KUŸSÓÖ^|Ò‰¨w’RU×yúwµ1÷ehô¾Î©Ú©ñË(350ºm29<ÎU#3«› é‚Œ¨RA¹2¶Qik•®C–G8£iè"þ(í9ez½¡]Èjõ†J >FÝÒƒ¨mH7mº^–T;ÓU%ë.+Ê !eÙáŸ?ýþþúæÏa©RÒMg4£¶Èΰ5 ï ](Æ6×±wŽË1 +ém#áTs2saE*ŒÜ›#r‰ÿ ~JÁ†2Q“‘–Ú5{ß~@EZJD–“YËL§³P¥ªE% ¾MÝŒD}d©¨ÐÎtÙV®0ÚGäÎÞž!TjôŽÊB´¥õ&CZÀ÷BÁ¸w|[Fù(ªu) #`èà¿Ã¼­ÖûAP§Ú +äºs¤áRäö¾•òqdœ7ïL#ï[xä˜þè¼är:.½©d2)hýzÚ£Ñ5ì¡x°:\ic +vAm5®»¦åó;íë|LÇ/]ãÞ«áZØÕÐêP¯Èé hmº.Ô²mþ¥¹WÊtMM¥Èî ]IZjS®³a]לƒ,‹’p ™•n¸A +í2¾Ó‰WyNÂÃQ—œ¼æ…Ã\sÆò”R˜FïùÝžôC4Ê¡]èpﶀ3UGÅÁ¹[v F‰oÂ}kô+}ÕÜ^g5ó­ËÄå°ç +®Ã¶…@g—*GBš¬9<»ïƒK†cOôÊÎ!nä”»vÃÔÃya6*Õ<'aÀQXÁO®¥©O-ú\”Kz¸”>i3Ì‹.‚Îq,ò“ßvœVgè%œx +ˆn +g¿' +M®ÐÁ;"F"vmˆ"œîgðôÜ%¤j)]ývpþaÉUQ75°²Ížù‰óµÅì,JÒk~0Žô«¥ú!yj4­ ¿¯¹g nž|]–:å7d¶ ;óu‹€'.A÷6û~‹{öœrO€ŽRO%Ÿ;íbˆ#LwÌ‚gÊùà%9f¢c>P°oÙ͘ÿ´ÚÓÍ3ÿKÛš›üØg_ÛxM_N‡ŸUÇ´¸µ€>"ÍŒM´c7غùÀ-Âé1ûý5…£(æI&c7ˆ¿(àÛï³¾s¾Ò.ÉÌ]¸Q`ztÈÙƒ“‡3x­Å u÷ç|êÅú»éï¦ FSîXJ׸Hô|ÈY³+aùª£|{áÉ ð‹à ÐÂ~Æ,(ÚnÀ°h~ °U–Ì…z„€ÑÝU'Ø zîƒæ´¹žf“~šC?w Œ¸¤ßnN€pòª¼ÙÍš§* üt¨ z% \¨ÆØÛ³itç¥^âFeª×)ß-r_ìíàâö¬ÏÛó`  +\Åk4Ü©ìîe¯ÑÀˆÁøð%ëЕWk`rÏV¢^‡{á¼ZCÕ‡c*^£!Çtu¬*Á4…êæv0šLp¿ ¨­Õ£*Ÿz¹B¹®pQ;®õ¨Þ L/w¦ï¹µ‰ènNã}È]ûã)Þ«æc¼ü$a40ƒ~¹úðæŠ>5ú;x/J;ö/賈_˜^r’YΦs¼â`käèèýâäóÉ?,Ž2£endstream +endobj +1487 0 obj<>/XObject<<>>>>>>endobj +1488 0 obj<>stream +x¥WmOã8þÞ_1ßR¤6ô¶ðåËö®°¬ZtwR¥“IœÖKgm‡Ò3Niê”Õ5%žgfžyõÏVzøۇɆc¶­žßƒátê`4àóÿ‡È¾ 'þÈõâòÒŸÖÿ³lÏzp ËUŒ§øÂ÷z° Ú"䉑àê*1i®¶åÈ8Û&PùéÂ+SÁ†©U{pq±:ƒ.<,ßΖ?Z=èö{¨VQ£,Žr†§Á—‘oÞH´3Êa+ší0÷)o@R$”2³iƦ¡¯."±-·BñÀHµ/„Vm¾¾ï+ouÖ¬)–k™€”Hͱ'/n˜ 6‰˜ƒ‘ ²P>ˆ†4FvžÂ®E²ÆwͪS%-Œµö(àÕäÆ¥lFfA` ä:8öÈšÅòzñe>/“ +BfX³†T/Ú0#d¢•8lÿ³*@i³4!{Èãª-<<ÝÝA„,ŽOÅ,K^¹Ã¨Eרs(?höj›%kbR³¸Žêæí·f¬L„Œ² » ³j_Úôµ…a9™ß"(yÊûõ^+™¥ˆÂ§°­˜ÅnËÌ-óÛf*råM°nÔ\æjÌ’-¦PÊ´#]ý‡'Ú§\ÅD›-ÇšnÀ§@:,ÿÐQˆîN §1¸Ð­€áo¹U§M·= ‰QÒ‘ÌùW žOJ¾,¢¡39‹£Í¼æ]7¯®Ð¡ç•â8Qb™) 1¶ÛZ °Uö«(¥_Ÿ£|êW‰…+Äѧ|©øUÁ:Ÿ ßÏ÷ƒî`Lüë+Γ ûà¾{™Ùf™fcË\µ¯°u°È`#5þ>²9Ãá”ëîà$øM#Mq:åˆöötaöÝ,Å>ÏË@ qÝAåv‚Ù7Ô^ Þ°ç˜ûðwa ‹µ|L¤ÙйgŽa‰6vé»;ÊÓ0HÉ­ý†Û´´jHSSþÌ £BŸÞœÏ.¡?*¸öqíB‡>î_>>/XObject<<>>>>>>endobj +1490 0 obj<>stream +xS]o›0}çWœG*ƒ ’·FÛÞ&mÓ^*M›ÄàÔØjûïw5éúP!$K÷Ü{>®ýqdôqT9V%º1ÊX†’¯Y¢®èœÓoúhÛDé×5x¦§–²¦ƒÁ³ M¯XÍ8ÃÖëAêiwÓ<¼ç'x’W›½ž1éES½¶jÆ ÛçqÈá Z=ÍN ƒ’,ÌÈä% TqCå0Ùþ¡†[X?mNDŸ¢£ø«Ðê)]Pl6×Zbb€Û+H"/8(†£Øx6Þv*}Óv”s™@²â'aÁzÎðk;uÝÔ/¾|¨Ãôgý (V9÷‚ÙY¡w{×û$¬d ¯êù`¬ƒNÜR¯úÏ)TR;$GR¢â+–‡ ƒßéi“úÙ¦”m:‹±ylz=¨IŒoÄƸŸö*,{©…!©€ ÂÃ9Ô¦ÞR$}”èýMp~½-=~ÔƇ5“]tÞZ5¹„¸Î;Æï``‘rÎã];dÁ*!_=ôÖŒ“¼œ~6J)ëi¹õrMxIÏ£^×kV†ØÞ}ÛÞá»5t­ðÙt~$‘Âi3Aɹ!©²uÀ¿óbŠª`UYÓó¢z^‡¶/Mô#ú–}endstream +endobj +1491 0 obj<>/XObject<<>>>>>>endobj +1492 0 obj<>stream +x+ä2T0BCs#c3…ä\.§.}7K#…4 Œ™¹…BHŠ‚žP$YÃÓSO!¤² U!?M!3¯¸$1''±$3?O3$ ¨ÏBÁТO¢¯zs=s3  -!)F– #\C¸¹ù&éendstream +endobj +1493 0 obj<>/XObject<<>>>>/Annots 626 0 R>>endobj +1494 0 obj<>stream +x™[oG…ßõ+yX$¢‡/yYø’l¼ˆe­¥…_,FäÈâšä(ÑýûýNõ°»(%A°Ø`¡ãÓU]]·®iþz6ÿ‡ù$”³°Ú£‚Iÿ÷ág‹Ñ$TËÙ¨»0/Gå¶áêÌÁ]XLG3Ç9¸ ãñl4v¤Ç°Óé¨rl5\LF ¶\ÚÒ€¶tÁb1š;Òc©-dzjgKÌÜ…e!IRë ‚e!ké1ìl¬ƒ&6ª­f£iRk «¸q¹-C•É¬¦%FjÏ©HC’ôobQfÞ…Éx"‹kã ŠX9Á®Ê€Ô:¸ •$qšÛ '‡ÛkÆsí—=†Žekf†'y »4/dY‡uα‚–Xa'e²QGõ¶+²¬Ã°sK‡ÄšÉY% YD` H­ƒx°T¦&ÎÁ]˜Í•}‰sï.Nt:ˆŠñ‰Ra‰ çHj=†›‡2ë0§,,ë1lµTÜóº(­\ƈrC–ž³ít)×'ÖD§Ô”JB¢EˆH¢‘œË;‰4tÔËâ#;©X‘±#[Íñ¢c†¥e=ë0‡V¸1ËF£fS,¥7L1|j@»:ˆÚ²Â™ôÖzƒc–ÿ§äof=†%9NÚÖãY¢uÄ°K…ÉÉ:L`_¯ÙcuÕk–õ–}pT² +/.´*¬4Æe)# Y|ÆssUf†]ÌdTf–32*±Ëj‡ŽuXÎPne6š\ªg)B•D ™É#ZÌ•«‰õv¼/2ë°ŒR‰8ÖaØEEU;ÖaÅ`q"Mž(1™’GÔPôrÆ°SÝŽuvn&gY‡afrf–3*Å:±ÃriãªÄÆ +¢C«¬—•8VAê8êB™ô¯Ÿ$ê1ìRú3k›–Ë…•-]„´©ƒbgáHaíêÌ¢ÃrùyÅqSn`Ýø³ +¥mê ‚ÔÝÔ‘Ë$5¨,ê±L’~Ç: Ë]ÍÄ–¶õv>ÁÙs¤Á§4`¡ÑÅ¡Lš'$Òc™¤é/‹z Kýž°“-” +®ÈÛª”•þQºäÙ¶#:1÷ÛZ±Ã2OxYa)$žd­®Jz¿Ý=qCnÛ¶I¬Ç(¶Ž5™QË(ÝLŽu˜bk¤Í¬Ç° ‚dTÚ×cXBKÒ$6†–¡{k<3¯ŠÊ–iœÉ¬Ã˜Ì½Q‰õ–ǨÌ: kÓ“cÆdz*)–d=–348ÖaXòÜËj.+I%U7 Ã:ÈÌVÊK‰s¹¬ÐQç }ß`LâðÐ2³i€Ìœƒø–‰ø¸Ò<ï0l¥„Ë¢ã½Ø%Ò¦+.•á²æx ">éZ#<†ì@³-^Å™u¶´6“Y‡a¹šHãÌ: Ëœˆ«2ë0,©‡É™u˜ÅœX šMÓSN:Ž=å9{»ÉœƒŒ šB2ç ¬Ö”9±”„˜:Òcù@}YÔŠFSšéº±"©|Ò!‚ÄA[Ã’±ÔNÉÇ: ‹¦¥gÆyh®ë1¬}ZfÍÑ`{УZÍBÙà N¤ÇÉàÌFƒ²ÑÀÌ:œ Nì`ð ;aÖà°‰OãÓYÃQ ˜Áb’=4e2 +ZÁÒÏôò¢+)ÞÌ"Xè)6“Ãr5’I4ª%I”œ|¯Â=J­j8“Ãò9€EIÔcØ…>Û2k>f(·Y­TeDd©ä°ìÕX›Y³×žÃ†ËÑþ–œåâÀ°AßÐ̯ ¡¾9Ï”ƒp(wœmÅŒ­Áo![íosLB1/–™rP +UIÌΆ—ÍVö·)dÖ¦a‹ˆO½‘‰O»ú[LFCsH2Öm8ž·÷£LFvµñ^zdpØ€¢‹ô«À°‘\4@8îo½ó¹ )oãGÎNËp¦3×ëÍ„¿í´ É}úpL”ƒp ÷NÌA8û #ËeÇ\®œa;U­JõÄ9ÇÄãÚQÎ@+×a¥`ÛT'_Tå †PÚÌrR!1e¤Ý§‰ËPFʉIîÕõÙ‹&Šp}ËOe³ù"\¯í2þeõíÛ}ßµë‡U¿i÷ß]ÿ—µÔé8®=GÉ„Õß^Õ»›:¬ê}hه/u·iáêÝ«°oú¯m÷ù0 +×w›C¸¯»>¬Ú}_oöÖ޶ݮÖÿø÷Ûͧ‡n³ÿ¦ú¨M&áÜ.{6nö_6]»ß5ûþ0ŠæÑ(’yšÏXu]ßl›ÐÞ†×l©¥q%}ì¸ò¨o: +-ÚVÛºèLæªé¾4]¸~¼oLŽŸÓö¼ÒŽÂU_ï×áå¶Ý7!.–úsg%cÄ(¼iwœ6¼kv7¨Ë OÖ•iLíÚí¶é¤ítS>þg]6ñœ_;“Õ(üûÀŽ2òê®æP‡f…wûÇ°m¾4ÛðË·ò/K8æ!ìÛ^Á«ÃÚìýå;mïlœq` J}@e¸¸ž¤?nö“Ïá²ÛìêîñxÔ?>3æˆÕM×üú°9lÈ—M½&àÏ6Ãq¯êÕçO]û°_?cq›¤lé78ûÔ‚“Sé×]CÒ‘eïêÕ݆è]w‡>¼\­Ø¬×ñÖáŸíf¯%¯·%NèÛ ]¢þ§‘!Ýt°wõþ¡Þê•Ó·°Ã³óX¢|ó~Îç?n¿ùÿ”à–£Ý26ÚþÜôsŸUÜbræn‡Á—]KÁì¢~躶³Ì?ñŸòàñÐ7»pÙn7«MW#z»ÙÆJ9Y?…wuZ,êÂ]³½·~ñ6|jú¿?sÄâi~å(Y¶n¿Âò·ï~xî|úr·ØNÞî}›×áûp»Pø¹ýÔföçòWMoùòp>´õNya¥åýÄ©KòþÝË·ÿyýþâúÃûŸGýo}ø>åâúIµ„¿ÅÖñNtáÀŸÚ¯ŠâËUT}VØò,Ùc_ÒÀ¶CA¤JXÿAîÎÿbI2[þIIrÅ qþ•ØÜZZüŽ$™2s¸,þ>¥†Xê¼ëV™>êöècPoIƒ°¡c‹²‹$¶Ê§‰$=˜ûñ®Ù®myùæ5Û6ëfm‹Ÿ¸X]®›ÈMóg>&Öÿ¤1ªrùÎÍ|4?¼¥·ö8ÕƒÞWƒÀé‰ùÙΉtÍ=U¥›TFv7÷õáðuT\ÏOÉÄ ‹Oà¬õv¾nú»ðó›——Ñ>+P`¹‡—o®ŽÎÜÙýô´¸¬´TL¨UÚË(kÞ]³æ6_}®?&Õè›æfSÛ¤ào@+­¿$ÿ¡YÿT÷O¿ñ©2w÷œ>Úýl‘£<ñòcûÐ…M¿zñ¹»©F+î‡g‹ÕêÔü£wW(~èuEÆÎÿüð›ËöpØhhRG<É>von3!^¨ŠýÃý3(f­”+-Hxe7ŒVž:ŽH]´}ì¨'ûÑZ\O.â¡0~?–<$çû!¦ðÐAÌ”¨“žÍuÚú;öbæòb(ða¬âsËÆ*3–7QÁžŽ‘Ó9/dz'óYi{ýp}ö¯³ÿ`‡wendstream +endobj +1495 0 obj<>/XObject<<>>>>/Annots 628 0 R>>endobj +1496 0 obj<>stream +xUQËNÃ0¼û+æX5~$¶s@¨q@j‰sI]5I„ë õïYC©\Y²v<;³ëÝ/&!èHXmÐöLpA/çëí‘ÕŠ×0Îp¶âî>±bìá*Þ\{H¡Ï.YXbbµ¼–˜Øºâª0.1±¼h©Ä=”PÔ÷_÷¹n‰‰Õ–Û‚¥ÃXCÕ*g)ÎÚ°eKÏ® ¤„ßæAgá7¿sðí¬ášã}wDw@ÚÑõR +‘âõ€Ch§Ø¥#n(Œß!Þ^ù=ù¹“_þ­pJ‘çlµx^.ðÇ}hîÆvêÃÖ©‡,›KCQöÜŠ&ç? )Ž›©ýO¨h'Ö8Ú*‘Zfͽg¯ìEqendstream +endobj +1497 0 obj<>/XObject<<>>>>>>endobj +1498 0 obj<>stream +x¥W]o9}ﯸê˶|Ò´H J-]ÄK^œ'ñ2cgmOBþýžk{ÒdÚ"í®€–ÄžûuÎ=÷Îß'=êâOF}\R^t³.½îŽðsxÅ?ûøg%-ÂA0È®Úï§'Ûkêwiº€­ËÑM ‚.¾ÉÏ>¬ÄÚKKÃŒîM%u^ +_âYÐDÚ N¦»µtçÓ¿`fH½^4sÑ¿Êú0t6.*¥·Âëø©;•[ãÌ“–~kìOþÖK0°æ ù•„ƒ¹Tz‰ÿ[)©P œIíÉÃ[qÁ·{Ã~‘ùEÿ2²»‰º qi´LñÅÈòÙÅ(»â¢áê¬9¢ã¸ÃáEoC¿1•Pšîd5G`1ÛÿmíƒÑÞš²”¶úƒU•°;Jn/vn÷ôzYw0hrxÝmåŽ÷Y¼ùÏzý߬^ úÙh4¢ÁuvùBÉèÞ5]\† ãTŒ»JÀÓveH9ZˆJ•JXÚ*¿bœ$«rĨñ¥­rø–YP©%HƒsCÆR›QÍn”%—®Kû·‚™aè§6[Xøp`º’B‡ÀR$#9P¿|ἦÞ(Ñv0Œ<f½Œ^"Ó!ÍG±2ÓUÌ$¼Ll;#ø(#gãÆÄqxH8Eˆ²¤µ5UH*M.J5²Ò^åÂ+ƒTP1‘çÒ9âlÀ)Z PâIu¬t¦¶¸ô–ØUŠy a°¦"å3ú¬i)µ´päW€ê8,<ÃuGS¢„1 b©^Ì…“áùÊXÙBÆË|¥1Œ2̯àêÐòchHÙQ%ò•Bëg$ø¬ªð4€Lg“Oão©2EÛ1*[ß'¿…S`¹¿*·?AÁóÚ*¿#.Laò"çeAµ.8AåòÚ9ÜA –ÂP¥V’§{ÈiFLWÍ3à²`pjYƒËŒÚZXQI#¡Ñ@wd‚CyCfß2ýí)þ¢ë·äVxì4P½±ÄÐ4Ð×"tÕ¼¬¡±ˆ‰y¥óH%*•÷`JHÖ2÷¬±¡“@ñ ‹9Iáï\æ‚»F[ÁµÛphîÔH#Åd†ßÊ Ûc¼"¹ÁDP‹ÈOŽ×…<ÐÞä úä8Õæ9Ïñr´Å1ÞÂE…™ ´}_vÆ¡„ƒêMWÖÔË UA‚ðìÃøŽfge½\†·å)êRºÙy ™vR—¯ð'¡}HQåøN¤ÅÕ§µ‹-Ë(´ªÈÅF, A žµ©lý@똺,¸¾@·D/¬ŒèÀÔ×ƱÉj±j ßcH ¤ºr$ ø„åw­~u¾(]ÿ"·s^V ; +`l±Š–³ÙYGú¼®¬óá#˜\˜íìüU  +ûhD]•î.øšpwÏL˜­¢S;Û |ëÄ»¥šwÖVm0`Ÿc‡¡É SãËÍøæ „þ ‡—% X‚(=WOúRèˆË‡Ï·“Îäî}(*ôa~7‚úY3¶ŸÙAš ÂlÝ!p5èqC"ƒN‰Ò£ôÆ”›0švjä6îZQe×&-ôš¦‰Z¹2ßQ!ýAYÂXcî±€µx·Ÿ(/ka Ê!¾˜Ae²"Û‚wL]–dUaúLŸ°:4s,®É¦ûé 3„¢í z%iA˜U¦4ËÝ켕hd| °¨_i:{Ëã(G7ÊB˜ 6¹Ô(³³ñÍ]nk­y§EßÞM˜8 ¹ÃâE´+ÁEÛ¨w³‚¾CkXñnÖ{Íun›Åâ@¢¾òˆ©-š¡¹UÓýy)±gí׊VÝNã'Ë`!ŠF„A£ü¼»©yÍ£°h2j•EXLk”-¼¤dƒGÐÐÕëµ±ü41añN’’£¯ N¡µfgÁß×µÔü95à¤Ö`´<”o(ú¢åö^ú<¬ = o˜>OýtØéÕàA•_3€Pœ€€ä“Ù²P¦iÝl›‚Çß‹›yÐxÞºžY}”ÆA[o¿9Ð +*»±’wÛýj ©±Ì†M®!fš[©Àˆh+ÑQø[‘Wï]ƒQ\`ÿÅ{Ûp4ÌF—WñbÐg“§'žü%-¤endstream +endobj +1499 0 obj<>/XObject<<>>>>>>endobj +1500 0 obj<>stream +xV]oã6|÷¯XäÉΊ¿Îvúæ\ @“»Â.ú  $Êf,‘:’²£ßYJJ]IìØ"wgg‡³ü9˜Ð?ZNi¶ ¤Œ£1-3¼ÎWK¼Nñg%eáÁ×å+çF‚BI'I±:Ù“Ò¨]à“’À:*yú(;Ò2è Å™“ïëR¬ÉKÍ$¬ìqxÐæ¤{á„5ÜM^¹›¼Ãm9ú[±e6¥ÑtÞÁä« +aëO-÷\ø"/¾2ç7"9TåÿX¸¾Ý¼¿jÔe_F+ @Ìí>Ôzu·hE;¤O½ª{HÆÒÛoTæ¢vÜ@U”Æz¡=A< \ßoè¥Ssrô°a]Š÷y‹¯Çs+ˆË ]“|.±:"”09)Ó¦Õo%M©ð"®ßàÇ¡ RXϺatˆqH•ó¶~¼ À•ïª¥ƒ¬›(ÓÕ¢5Z¹æh·AºãY!¢fMóÁèUÜáéd>]4’z€†¡ë ;ÁÖKjµ+b•+_óÓÊIV>d1’ 5SÁ?@ËÞämù°xdÈ•q2âS‡ +¹Î×yŸ‰Íúž‡™T–³¬“ÄTèè½Ðb'-xèc•µµvDîñ²iE0²>N ’¸ŸÑ¡u*S°¨£›+âç1k*B_P„GË/JáÜ V†ŠQðEèÉQä*%ÓºŽÒI^¥¿hÛ½>ª×…<%¾%t°Ì+Çÿâ}‡ÖVZ=·ëϤßV×ýBMÔ€§‹Õ!âš÷âȺøWWâ‚\•eê¹íÄ)a‘ð @ ýä]ihºõù. +Oè˜'ºiédlê€Ý„éÁtŸTžóX@`Y‚0>š&ë%æ$W*]=Cǘ‰¦çWZsT)Ò +ª@2 w‡hŽR™aAqÖpyæ|ÝƶÏÔÁl3vÚÞþê9ŸYÛïl97¯–aç5Ž?aO×ÒƒŽ‰7“çg%w¡y=8(ꊬ!,´;ÖÜì¨nv²Ý„ÞðÀzIãä®ÀùnžðP#fÄMA‚^Ê®9aèåê 1!‚¦ ùý-‚W‡ Û[”]Áo×¢1˜­HÞKÜÖê ® •«qŽ÷j·G©"ås»蛓Ê( ߀,É5ÉÎÆÀDÎ×–ËôŠí†åûaÞó„·•V•©\  QÑ9ÜDÂ5¬¤ò Ð÷½rÍÙ°+$oÔOß·Ða.U0)‘xÖ·'xðùÄûp^žI/zœ|e"¯îVí¤œ,pY\ÍpG××aBãܬ1@ͦF\R±2^|³¼Ù2ZŽ¯?¿tÍqí\.V¸¡aHÏfœù÷íà¯Á3¬eendstream +endobj +1501 0 obj<>/XObject<<>>>>>>endobj +1502 0 obj<>stream +x•XMoÛF½ûW t‰ ز-;¶[ ‡¦©’¢°Š €/+r%mLî2Ü¥ýû¼™]~håŠ$(’óñæÍ›Y~?¹¦+ü¹¦ûÝÜQQŸ|Xž\>þB‹+Z®qçîþ–%]ͯ®ðKqúÇV5A·ô~Nÿxü¯lIO[ÕjòºèZöTéW]ÑóéÚµgËo'Wt±¸…S<þª[OÖ2–•®VÆ>ŸñS—·t}}^,æ ~ãwzúü†ù= +ºª<…­¦¢2ÚR|PmèÚmq1;Œ`F~<µµÆnæ´Üj„É¡†#×ã¬Ç[½=Kñ^ßDÿœÜ¬ã4ãí9}ÝšbKnÍqøhhQ« m^µ'µ^ë"Ähwj?[ +­ÁSÁ‘êø:˜B97Áëj=§O@ái†­4pª}rÙ†ÝÓ¦Õ@@ÿ0ö|&þz¿Oª^©D±ÔãÛôbÝ'ã³|h•ÝèsZu2Ðqáv&l']¦ú¨¦iŠè l0n¥|`C»‡»ájk‚A²¥0§p6´®ªp¹ÚgîG\ÏåY¾N® +eÉYÀÀœ˜„y/êU™J­*”%Üm5^f®’*¸êˆª*·Óåx–ô„f—VûÆÙ’Û›6¢æ(Ë Ÿ@˜¦œ1/‘'Ë3J:78ú@B{»bO&s,k<¹‹©<óœY瞇ê‹.Kß±ê?Ÿ~5öãGQ9‹¡ X¢xhqtMSñ´‘иv2øÕ8‡yZ')üë廓è'CÀÆA/š÷Ö)7'ñb†Å™ j1ÐÖ\5ÍSC õuÙ7UÍžo&Ë ’—8 bdÒÏgÂÙaŒ‚¼Áð zœÜ4z\]£qÛi“ÇF8ì&„ß»"»1T ëÊ¡(žK2IžÜî°[Š½3̹Ƶ" +r/E#*ÛÜ`´²´{ò`~ h"²G .'ÕoÕ%¿ÅKó2*¨—ØÑ™Wäpÿ”@'0rkðüEíCÐu3«Üió¸Fi*ŒÞ ‡iSVoŒI9YÁdæ¨"84?@C€ÖpYñ&(BS¹Áq?a'4Óé¸×´°¬ÜBºÌõ°@›¤o|zКq{cL™Q|º‹‡E€^ã*<¯3Ç<`P›#Är>þë:—ë*ÀÎÛìNšøðé²€ÈqÍøs>“ñAœëÿÇ{jN‘vBÌ,TcÏ9úF¡Å;¾k"×µ-Ú½ü¥D¸•ÖÖäøˆsO !ƒIŽÂø\‘¹ž‰µ½‡L.‘ÊðŠ¤ ›Q¯qÕRx¢€²@Ïê91ˆ[õ +8ø|S7ÛZ¬5;gŸ—ãב›ë9“ùŸŸbÎñ;‚ÈþôóËíýíüþî!žtnnÙçŸË“¿O~m¥,aendstream +endobj +1503 0 obj<>/XObject<<>>>>>>endobj +1504 0 obj<>stream +x…TËnÛ0¼û+>%@¢H¶c¹‡’¶zHÑÂ*zÉ…–(‹©D*|ÄÕßw(Û)b¤( ¹»3;;ëçI†”¿ ù ó%Ên’&)®ó4Yb±Êù=ã±õ䮘\Ý/e(j¦,W9Š + OSå™Ô¥z¯Œ†ÔbÓÊ +ÞÀ…¾7ÖÃ7Ê¡–Â+/ t…Á4âEƨN(íy àd/¬ð®Ûô¹]…Zµ;å¬î΋§IŠËlžÌæüÀÇ6!Çc+—à‹1GRfkEߨR´íÕõÆ9E†Ú[¡]kk:­~ãMÑØãþÍ(¶ÕúÆ„mÃn%%<Ît¬,”%°#2A;¡ÅVvR{¸²á‡ÃfÀŽôÆDøAiB[a#ñKöþ¤eÊä]&‡ëÙ2YD%¦N–Á*?à†"Úi§è$›#á±ÝFpq¼"D«HáðªF­lÐZé-ˆ0 ¬ÎTrŠMð¥£zQ`26u}B‹¯kO¡GXù¤Ûà m¢*o +ïi&(¢9b°²,-hƒªR±‚h9P+:écæq¶'Àû*¸™îí ½4vH*ø>¶±¯Áø©tev_‹Ã.¢-f¡)Ì‹¤JÑÇ¡Žï˜÷¸5㈯îW‡Ë–ÜÇÕÙ,çvräëÛ‡»[|³æI–ŸL¢«Fí#ÏËcÂež~ˆñÑG× ~ÄñÆ5\7£MÞi%éáñ¬fK{8¹h ÊÄE}<Åù"É—+þ°ðü:^}.&ß'¬o-endstream +endobj +1505 0 obj<>/XObject<<>>>>/Annots 631 0 R>>endobj +1506 0 obj<>stream +x¥VËrã6¼ë+樭²h½%çæG6ÙJÙ묕J¾@ (aM\”VŸ€ÔËÞªxS.Ë%Ì zzºç[g@}ü h6¤Ñ”dÑé'}<Ù¿|ù­3$CšLÇÉœ +LFøßåôÄ_§Éd‚×ñ|†×!~­¢,|0ãäÙó›Eçòã û´Èy:›Ó" ñDvo×¢òÊÒ4¡'Q, G¢¤‡Å˜Œ¥¿u9|¡G« aw_;}ê Çн3…Ð%ÝšÒ[“çÊò§œh0‹‰z#.ßœ&ƒ!”Ußjí´WôE‰T—«xbLƒAsb8K¦|âFewÚ™š$âë²V¸c8CÈé×Ú‘Œu_P•+áâE‘«q̯…gÞHS –Ë\ÑVû5Ìôª¶ÈOKá´ln5Åj3+GNÙ–øé\±Lø`Iim¶ä ©2Dä'"-t©cX ç¶Æ¦øXÚ]åµ)9@À5¡ÅZ9Dô[ƒ•–î,s,wœÒxKE!Ð% Ôm+yîNž?œ¢×e%V*‰ÏOû:6M† Ýù²²¦.ÓÓóÜ×ýÃ+¬×˜™Úçºä²×€×«ÊQ©ŒÈžày =ÞÝ&ôÉB¾àÖb£HPzi€Ì-öñ/0Âf£SÈÙrwäO×÷P÷ + A1ƒL£_¹£ç®NTrÂé Ç{Z?,Î|ÚCRXØ +ãD+¢?Éßk(Oš¿O +Yy£Ú¶Ø?”]*kâdòqˆá¶JzcwoWó#îŸwä1Ú`ià¯Á[[ý Z÷»)J(k>/XObject<<>>>>/Annots 676 0 R>>endobj +1508 0 obj<>stream +x•WYoÛF~÷¯˜—¢ŠQQ<$Jn>â$µÝX@QÄyX‘+‹)e¹²âþú~3KŠ”¬¤¨ ˜ÎÎõ͵úz¿€¦!E1%ʼnïùx³û÷ñÝI8Ž½ ÅÑ™RAazÓ†Êéþ¤Où±ô¸}ÜpêÍúÜ î$ð¢7 ¼˜&q ‘‚f±7n±*¼IìùàM}x6¢ã…¤ ŠÇŸÑñ‚Ptþ ò¡:¦ŠÒ³€…ØñÆxɈ3Žèx“™(ƒc!:^ÈÞžc¡vÌèlÜtDÇ‹9ND8Á#¢ã….!³â‘/˜‰A''ÄŽâå.Gt¼È?Žp$¢ã!,'h‡Bt¼Àïì…BìxA<9Ñ鈎‡¤10¢3¢ã9h€ÍñBt¼ˆÓZЫ„`^Äõ;X‚pq!˜u1?]ŸQ0¥ùÏš§Rç>Í“AìE]Vå2{ܘ¬|$»Òt¯Š…¢«ªPYÉLkª<×æÕü t‘M§kˆ*Ž¡m0‡Ì23µ¥Úê5A(1ZYV§h[™¿ù›SzwuIYM¶¢M™jˆ¨2›keT¡-^Q©]×Ê<³¦ºXx üóè½6š]ðiˆr +ÙðV“²VkËõ·uÎs=uv¥,)£)©ž "e­|¤ÕL…*qþQ{v)Shgƒì,Øú›*Ö¹&Ò" ZûÈ hYR‰ò„¨mEÏZðƨXùô˜W •nŒ£†füšðyMªÎªµçxXVYóI™Ãöp©í"«€ dî€Þ4®*{ƒ»Ûw·‡´Òœ¡GSmÖÇEoÎ?Þ|8ß:óòç+’Q¯ªMžrè¤d€œº"â,çU¢r€1´0Õa±ÖýPE®ŸtÞúùç¼fmôRΣSÕ|ÖLïdcû¿Žõý:Pv4ÎZ'hû¼Ë= Š Šƒ€ð²á¾úá«Ü±=Òc9þ~Ôš.ó¼¶w­ê©JQP¨KEFÝdFº´®à¸Ì^Zktâ­Ù°£VëÍz]Û¦/¯«òHÝ5wl.¼éÝ®¸§Ð«µ­ðE[›j™åºþí¥ï¢žÛUëô>?Ý<<´B 6Ì;…³Æ,–~®iU¨I –Àþ3:;%w¨©ÜÌÒBSQmJF\Ùïú”šìi×j凉{•çüfc}¿™v­üC¯ëµN²%œ£G]jƒþwêêÄdt2[ò\":¬x74ì +!KÔFçÃOšNO¯nïOOJ†Ÿ[ó¦†hþŒ¾EI}~g· D$¼¤H þº7ºE¥8Û †xoôÀêüxéA?õ£MmFÒ¬£šÔ(Ï£6íéÄúI©*óçÖí—Óa‹Ö”gµmÏðstÝNÌÒª´ÈJ÷Òwcô Ê^;à$J.h^s{%ÍÂ=¯>µU+Ã~(ìEŠM†îa½ŒJÛèzaYœŒbVõßÌáÖôcß?8Õ5ÃÞÁ©;Ø­û6ôváó’1”`q`3VKZWYie·c#¯°¹þÁút»V-°{±€Ý=5Y•²mqõ¶ëöí‘I's©KµÈuêÑ56kÁ£#ÕVey$£©·\Ó)—uVÿ‚Áˆ7m¤ÍeáíÍåÇ¿îæno¼•-r±?ºNš]>Ä =À•Ê],ÂxÚlÐö¾#ü³s¾@¸µ,>˜2_Ôá¥a¿Þ;„]º…«Z:ø®O­Ó‡>·Þ +vk°]¼œìàÄóäϬL±)É3Þ&“û íÁòM˜XèêÑ«Kîr­j½Ã\$ž”ɪMM7ÚòÝ‚.xÙss¤U²á}%’|“bÎn3»’Üa4×Öd‹ {ÆÁhÃíá1k’Dø-r†ßR1_õÙýùïçtgª/˜ø¸Ñö̳ê!_ËýYDé{Rú¿¯ÃãéØ›Æ3\¬!MYçÛùÉ'ÿ0 þ÷endstream +endobj +1509 0 obj<>/XObject<<>>>>>>endobj +1510 0 obj<>stream +x­XÛ’9}ï¯ÈðŽ€âÖ ´ßpÛ3öLï {™˜ÞØPU ]HŒ¤jšýú=)• +¨¥c.»á¶Ý€*/'OžLñË͘Fø3¦ù„¦3*v7£lD³é,›ÑíbŽß'øk%­oÞ¯n†·4ÓjÍgg‹9­JÂùшVE¯”^¨ÊeoW_nø|0™e·8ÑûQìrASØ1ëµ´Žf·¯¤—¤øÿÔ^xe4ÐÆšzO;±ß+½¡\úƒ”šþ®tiŽ¾[Å0¢Kú«V/ìnDƒñ4›°³ð¸£§žß*Gø±RTÕ‘~©Ü¿ª^–ä É—}%”&ür[c=¹½(äÓÛÅðáŽÆHr „ÓÛ˜ ’ÊèV=Ç÷Y[¥%­lí<-‹ÂÔÚÇàþl”æ#÷•B~þšP'£hÉo%}0;Àœ°…³Éø#›%€ˆ|p ¢ÎKPÄ5½å·Âóûµ‹¹‰öµÉ2â!ŠÖÜSÏ +|n qòxÊ>½=Řàä£x–6£oOÅðÒî”6•Ùû0ñþªÍ9À7÷(sS ˜ìM‚ ¡Æ +æ÷¹ƒ±%_´^æ+ +â¼Û +‹,¬ô´6–­AQwWkN˜©tP~Ο >£É½ÑÞšªâŒVMä RþHk”—M‚#{+Ÿ#øFµfPUÿ†ÿT˜Ö;IßIÿþÛï$Í/ÖÖì:ôüÒ‚)Cí‘7 sÅ”Ž©’>äº cK4…vÙY3ôi2½ôéôhÍÏ"uQuœÆÚj´a_àëú”×¾µ{÷BCú,ñì~cI²PÒÆgôÔ…ì£\©/ù‘Ž×+˜ŸpZ<‰$íä.Ç«PùŽ\Y“òÀ@â¼ñ´7Î1.¯Ð£ßñÌÒà·µ£-(£M‡1mÁ‡Å‰ +$\Ë6½Ç÷ä¼±ˆG¢!¯£È2ÂuM˜ü 7Êy{Ìh{h0%6$*gBh­"¤nƒ `r½ã5˜¾‹ÔŽrAy%)Å×DÊ¥ð 0GÉûCãÂ)‚âöƒs˜¯+¯ ºÌ’:*6³.ªº-ßñÙáÃì¤ý­¶»]Žþ=”ñDš=$¢º +W(Ek…XCteÔ¨ü,-dÉÁÄuL„tÓ”áÔg­65ô +G:Q›}èu+!ï\FÂð“Òõ ¹£órÇ=Å¢òúø·?üDhg{ĈPòå@±ˆp§…^äM :ÞRb¤épÖ£-ŽñDJ¿ׇt¯JÚ츼ÄÀ%BÀ6¤qqå^ëð{³=ñf‰›bw{£y» +SšŸÐ¦ãC–¯Ì§Qr™â¹`tRËÌC®NVV=åÀ:ìG˜îøüÿð­B`Èé’{;¿Íæ³¾²€Ù邽}\Ýüåæ?«ú§1endstream +endobj +1511 0 obj<>/XObject<>>>/Annots 679 0 R>>endobj +1512 0 obj<>stream +xWkoÛ6ýž_q—°[D²å8¶ãoI³ Övm\ ´DÛl$Ò¡¤8ޯ߹¤$Ën’uCâÀ‘x_çžûàýQD}üD4Ðéˆâì¨öit: +G4œŒñ}€•´à8Úüùü«;:õÃ!e4b ÿOJ7G÷Ã×Í_¢pBÑ(ÂQ˜è½‹Fteè“7vžÚºœõ®‡E4[°_£É˜f‰³Þ§YÜ}/t)RŠ­…2:¤KS¬¨XIºÙ\Ð ÅÆZ™¯N”^Ò­Iı)uA9Y™Ð|K+_ϾÁf\Ù Æá„¡™%ÝÛÁhLþmí‘{D§ Ž?ꦃEº=n¹4k¼ÉD¼RZRaËÆ+'TN¢,L†b‘¦Û¶GU‡Ä¦ûÔX+TMЧJ"¨ùf =¡Â¸ç T*@rÛ½6–r—VÛ¼ÃQü²¬•±É2©ˆe²X™$¼}MðøÀØ fbKóŒû¡ÀpæR”nŸv0ö±=§ &atNÁ@æ#8F!U[eœÌ<¬3ë…‡5ßÏ€0uºˆÊÿ¼kRºq°J8"ðì™LÛ: *O>ßqìÀ&Ùº¢jÍ‘ºÛ“EÜ[‹<ß$û.wC$yŠ…f€æ”98ìÕ +èA­7¢àQ ÒRG$ Ĥí 2ø~¬„£‹66s„ÃkfÍ˾0HËÍ^Ñäì04ij6\QpÊG‘­S~nßïJ—4¬ØsQuP;ØmòU•V ·ÛNÙA}í¥‹[ñÅÜ<È//šÚ}Z-Ü­Û¡Ð[Jd[µ.RáòÅ͇“èGâ ©P†'t‰6„W¼5Ùº,¤­&Qm²Qc»)ü]1ÏM +q èŒÇ7Z2›ú ‹Ëwo¼} £yžÃ8ôôPžA”iŪ™šlõ(Á"ö ÖñO›ÂÍô¥Vû4“@{nX½·y88ñU þ`6p³ÁÅðÝDk–TÎ¥Ôõ¢Â} õLÅnaÚÓ±Úbª}I:ˆ¸…Ylt­…ç +?Ý h‚;m6“Z +»^•£ƒ%ª®Ãçf&kóL«çf+íy6wòÉmwrûÚÛ%¾›ˆ:_±'«²©?Å[(>9È ÜQƒÌ›hZjSkàÔæ[Š7l×KÖÔí¾ Ù­w¼ +°N¾ÇU?Å?¿»â ÊçoSkk2Ѿ”“·n9ia¶°&sr_v*žß«’«± ÂA?óÎÃÉ`Ľà7¬®N]µÍîí°¤°£& +^¤Ûýì°C“°†æ“T—zf +=C|¿FÁâó[o•¼/ÕƒHyŸ,þZÁzØj+ø§9h4 ~U:1`=£?®Þ6–Pí7nâV,¥=Fׯ!t«¼p} hYÙ¬Tì/3Íöˆm_·®9¸œèî`…÷¿àûK€¿áz³”îñA8uñœÐÖ”›&_’‡2åìϱ×!!Øò&f™`­d Œp[À-§€`‡:ÏÏ[Lµœgk»§…táÐRš9® äÐu*NO6—6¯IÚ +Çõ;·U’)q›b;môRa—²ri¥dqÞ á?ºß´+D”—Øc†µöOSúùêšÛFX\¦~bµ½k\Zݶ ‡ád2 Ñ`'Ž¹7ï/á½5ß0Íq›Kž5ÍÎD#Üž'§ŒûŽ¥ÿç3ÃñhâçìÓ/³£OGÿ»‹Òendstream +endobj +1513 0 obj<>/XObject<<>>>>/Annots 682 0 R>>endobj +1514 0 obj<>stream +x­WkoGýί¸r[™HÞ…ÌCéC¶·®š>bª|¨ûaØÌ$»;dfטßsç ¡VUE–°3÷yι—ŒúøËh2 á˜òªÓOûøf÷òöÇÎp4Mû4îÓU85NÇáSI·ýÏx:¤“ý§{Ÿ+e£t¶÷nh4;çWœëÓÿFÒ’ƒ l4†Ãƒ—óNïz†g4_"îño +nŸæywœŽÒAJ'¿ÕI³’Éu¹=¡+#E£tMzIoD¾Rµ¤¹imCy®Ûº±/æïauDYæ­&ƒ ¬vç+IVæº.è®+ðjð¡ªd]ÈâîmÄ–MæÎ|}OU°Ý8Û"Ø&eɪj]n©Ñ$ÊRo¡Ñ­¨æ̓4ì¿OIƆ_œsF%¬HXª¥„OÚ¬dí.祒uæßk¤S°i6ZèJ¨: ö¨Û»Uu.I"¼àõh¤Èîc«Œ´$(×oÖÈ\!±?kõH!Ÿ3<­d³Ò-µ!Ñ6pÙ¨‰mÒ؆#Û·Áq·¶å+dÛõÉ/?¾ÞÅ€ª/Õ}kvc#¢(pQ²¹Që†ôÚõUÕ¾€Ll`,¥­)›òb‡»)ÍÙ[HïjÝDßÅ­ôF¢-/Ÿ©.£ý¢´š2´«8(@%j—äa?.%ƒ^EMòQ€<“ÞÊâ'ÑãþU·d·¶‘•3лîÓ,âsä;û×}©¢ü;:î§Sn8}Eߦij$ã¡@ÅÔµ0KcñäûϯV÷;êµÖôìBÕx# ?O +êò¡W·eIÉ=eЊÄRÏ,Q IÉú¦%_ï'ž&Ct¦pô¦ô3@ËÀâž^y(¿rö·c·àá‰k£sY´,¨£Ÿ ±Ÿ˜ñ< að¼QÍÊùBOm‚w(‹ÞØPÙq@0‰¬ 'hÐï÷?(Pë]d¤ƒ¥,eÞX&#æ\>Å%;Ï(ZF.Õç]ïëÈ0 ¢@¯¬Ýhsˆ¨ft8k£T)ï=ówÎýé"ð\êcfÑèã% b¦R™2“½Åïõ•pr¸'GFƒ;– ¤Ü¸}ƒV,¨ tIĵÂ+“Z‚¥ÀŽ#êF5K¡JRK?Tµ0[GêÈ ‚1(d{àk¦¬ÜÕÅÕÌ)F÷8ÉFç~ +F–ü:÷-‰rìÕõæ™1ŸmfÁK12ðè½)Ð>µÄàrȼ.î!î­‡ð”U©¡¢g´hÚ Ž|%ó®Ö ýH'nßÛè +ônÁ†¸gPÐ/ré Ýp,x.,,~KWFîòñFá&dÇ ÿìN>·<[6X…€ý[ÿ¿PõXã¾PÙ 8`#?ôË Yx2-4„ áÅò¾SÄ­n½¹µóý(EÙ£0.Q‚ÜzæEÄ0[àŸMýŒÞ#Æ$öÍ%äbšf3Ø=8NÏSFQÐþnô¢”ëAA¯Ñ&¬­‘>nvM°šcÎÞR5ï4Øüʶ`0ž~}ÊøÃöÖT†q1RkYtºÐݽë6Ûµ_õ øž•ÿE(„ˆû™ì£ëµ[©Sº6R^Þ¾:h¥ß½5:jOÃNdà\קM\–…ß Ý´ßå‹[ÊÐ^®Ÿ¶c8óÛëÆ4ÈU6D§fCóo ,Ño./¸ ï1ãé•Î[hEãÔÃá!ãÌtHɤ-ͯ:ÿï—Èh2J'ã)~ÝÀÌÈí¯ç?:ÿ,Bendstream +endobj +1515 0 obj<>/XObject<<>>>>>>endobj +1516 0 obj<>stream +xXmOÛHþί˜C=‘ž‚ó%w¢PîPÕÀA*tR¤ÓÚÞ$.¶×·»&Í¿¿gv×à¸pºV*©½™—gæyf–öF4ÄßMÆttBI±÷q¾7¸:¦ÑˆæK~t2Ð<¥a4ižôækI•Vq. Ê ©2ßRV’õWZT™’UTˆGé^ÈÒêmg‰‡©ìSfi£ô£¡Jê¥Ll¾è^Q¢¥°’Äûù·½Ã!ŽŽ¢1¼÷`QÓ&³kU[gñà݉2eW|vpõ!DÜ£§¬ÚøgM=F¦ðÉQ†`Dšfåª1Ñn¼ó¡ÍZåá¨óûlµT¶¤­ª)Ï‘ËÕÔZºg‹ÕeöO-é+}I?ù¨NB¤-K×´’Nå)íÿ“"é–Öâ‰í$ª,Q¦³r_ªBde„?û¤4í_ˆ²T–¾)T"uïúîðL‘o&rÃÎ[.M]Uy†:Áø2ÏÔðS’ß3c#-Û߬eé¡á‡™&ë¬Daum,‰$Qui£]Äáh|séæktÉZT•, ÈÐ œISí×MÒR«ÂeÑx̬‘ùÒÕ}!vÞn—`‹žŒV< €”R=ÉÅ{v.ȬʵèÀëÛ‹wxÌ£ø÷¢ˆÝ^^D4Ç—*ÏÕ†“OTQp×m²<ïà©e¡¸XyN¥´ÜÛÞY«xæ̃º9rµ@º8[,®g³ùbñ«?ôÒÏ0ÇmN¿Ð õïš¾n¸ª5"× Ör2ƒD°²ˆÑ +(:®´ª«|EXf3goD!©ä„ઓ/w>ÃÇ-ÇÐ,z±H)K¥Žü’1òmÍ PHcÄJFt±åÊ«ƒäü{o¨‰Q…´h®ÉÜÈ~Ç%ø›*iˆ;½Ö²$ î>i+…Ÿ\n-±brx¬’öá$šŽhtüÁ Êb|2!¢á£;p8ú0múPl…Ì%`;ÍÕÊ¥†6Yô. ‡ÃÑéÇÅ{¦¡7õJa®B¬‡€Ö#I¦N౬shg EKN¦® ž^”¸=K¹ÁÃ'© c ¾5•J +¢±vØbv€ºOûs®æÿJ¡O·¹h21~¬+à‘©sËIë`©S‘¨¿±ZX¥ƒVpiŠÊIj +Д/3tGT’ÔÚxiÁs­40ІG¶áL¯ƒ1"7wŸ¿»ùzáø.ú=îäÄõYÑòßEQå?4·ià-»_f|ô·öB@SÄâõHÔ2k³„ß!cª¡hPôùv­Â1ˆ7u,’GפK¶vŒ¡J +nh £IŸæ³ß}c#Â?>_R¬E™¬QôÀ¢Ç}©% “,S™¢f¹±¼,³?‰Ò8ïGakŽ£RZ:Ô]Ÿ)­²RäMËrMd ­ÐË †HiŸµºã,bbjÉRñ:+Ü›“ k¹¡›a°3~ ÑqsÝUQÕÌ&‰q†ÏŠáÆç€C 8˜ay›¼<ú®)€›®­>}&`£nžqM€a2þwh¼8°·Ýè‚wÊhU®~ _ÞáT«¤‰ÀØH)F7Œ3—7v +îEŒ¿:³é¿ŽhD×~½á® VØãàJ¼ °fAÃ6ÅC +*‘謲þ\#‡=„ÕÍí„ÍÌ÷kƒ0Þ˜Jž,¦ŽyU+„Áµ¦QsN×W䀴?KùlNA:]ÏÕNé-¡#êô ,ó% ·b`t¹Ûœ¦wüºðžNyESxÇ£‘_—‚†ÉÎë3Æ:pÅò»t×?Íæǃ‡ñgɳ ˜*ûacÁ Â/ƒ$b¾ÎÛNÚpÆ’ ˜f†U*í¨ôËī‡-þü FOEÖ+f¯Ç8â‹a‰¦t/ Hô§p‚ß0ñîg¶XmTÁƒ†å +}V—/£Äß)øV aáöEÀÈß0‚T¹¡Õº`t|I­y^•aÿÂö3âNc´rÁŸ¢ä Ÿþ¨-zã“)Vpä}F_gŸg73útwwsçä„ï¢îÒbÒÏ,Ü?³ïÁÕîº<9ýa[žíM£éé}˜„{Þýù—çt«Õ7Þ..URc#ñ•gÓ‡£“I4œÑádxÊM‡¯eÚ¿)óáU¾Ý§ ¾þ‡m÷K¸fÎÝ5ó<Ì 6u<9Ž&'SüÚfŽGüèÓ|ïϽD\endstream +endobj +1517 0 obj<>/XObject<<>>>>/Annots 685 0 R>>endobj +1518 0 obj<>stream +x•X]sÛ¶}÷¯Ø—ŽÔ;6m}Xy¹ã4É­§MšÖêdîÎÜHPBM,@FÖ¿ïY€”!:É´¶åpwqöìÙ¥þ¼˜Ð ~'´œÒlAYuq“ÜÐíì6YÑ|µÄû)^VRÁ Øzú÷Û.KÞu»L¦TÑd6MfÝUIñ5VëóÕè«ð´Žï®+šNo“Ûh5¾ÆêlqŠ‚ýÆ×X]M’e|otÕõ:™Ä«ÑuE³Ém²ˆV_o.®ßÍi2¡MÁ`-VKÚä’Úd㻆 +e]C[IR»¨5ïĶĻ½¤ÖI+²Ì´ºqtPÍþûÍ0yÛ™“«¶µpîÓ•¤ïxûwaKïu| CÊþ´±•(Ë#åFËKÞvuCW“’±ÉLJ½Ôt4-eVŠF’ÐÔyNx+vNÉœwÞk26—–c=ûHÂ"À<ø©­Að) € —”]¨?Û^†àÄ)þÎÅ f¾§±¦¤¢;˜ +Ë 2 +úZ6Ùu-ª$¿v¢ÚŠ¡BHá¨0eiîUohÍ á#ÍѨûéÂ}ÿl••yÿ9\ü¿–¶RMâ̹Xñ|b` +àA膱±²€a+²Çƒ°9UÕ¢Q[UªæÈ|È\.ÉgšúèÂ1ÇßpŠ¬ªfäH”!œ’Ú8§<ÌWòí‹sŒÚì%(ðr¦’´mwàM8Sc}Ä_‰²Õêé¥AÄnÖRæ|¶(Jæäå9íÙ6s¾2(+3 ?Kë”ߊÀ.Χ§ãõ»5MPL£W—ÇE²Hèáè0ð£)U¦$@7?ZÃ÷º¹›.Q±ÈÝû6Û7„+¸Tö¬ˆs"_U5¸Í}ÉÇoæ³Ò;úExòÇu è¡çf„@n<;P—|hPÁµÙ h‚±trÅ&±àø= +GCVØê'¥sš>lhÉ ú/jØíM[æ@Q¼^Òa+T 0šîû#±Ÿ¥Yœ \‰ÏB•^¤ +k*z¯2kœ)š¡RüxÆ'‘çŠ1%å²…¾Ï +y™O „Øš¶‰ûœé- ûï—Éìjcz’›‡¥¥› JImÊs+c_ÂU ö„¾Ò‚ŠR½{¯ ±ÃûJäS's' fÄA/åéq@é¬lsÈ K;ç±ó³m›UÌâÝð†OÐ[×xjâîË„çh,p3¨ÃŽÐ ¼‹(ת&ä ù&J ÃxXÛ×Ö‹Þµdµ—P¦Üí=»{ú¬o‘eè2[VˆÒ8a ,}àzpìë€ `+KŒoC=ˆÈC(ü­ÌDŸD+wʱŠ=J(ÈÅ¡ÇýÏËžD+æeTÁ[‰ú@;t ýh$à~Šá†Å„<ûùò9u>$ÛjÚ‹ºVh¶R{8¾E唄ze…r4¢7Ѫ2:y5€Ü—jø¬ïãƒÒºùÂÞ„î}îÁýÏR+Ö1t¡œà34ßÙ¢øþÅ6º£B^²Wiê=¥)sVÏxPŸE€l•fõ•Æö¥0Yá ý[Å€ï +x=™‹àž@#?y¿Zì¤ù„Žºªÿ#~~"g ì1{@0òý˜3Ôa'jï ½6‡KÚÇŽµ3群¨äF~`ŽÏ ¾wUüªS„É ¬g´˜óW8èÃÝû×w<Ÿÿ~GoLÖòcÈi¼šà›•›ÕŒ®–7x¶ÍÇëAh¾œ'ËÅ +¸c>åßn.~½ø f#mÚendstream +endobj +1519 0 obj<>/XObject<<>>>>/Annots 694 0 R>>endobj +1520 0 obj<>stream +x¥WÛrÛ6}×W웜‰ºP7÷¥“Äv›;i#¥igü‘ …˜T´ìiûï= ’­´3½ŒÇ´yÁb÷ìÙ³‹_{ãgBË)Å JÊÞ8ãÉñòñ»ÞtGSš¯ÆÑŒJš-VѸ¹+hÝ›ÌWÑŠæ³1®xÇÇ;~ C4'¸ÎVK\§øµ’²Þt¹„¹ÉŒ—¯âã/‹çÓhN“x-–3ü­ïøí›MotƒÅÚdìõbµ¤MœÓ&¹è¯¥}”–´ýo_m¾ô†cNØe“^Ü©Äg2O©rÞªmå¥#AXä”Ñd2ò;é$yc +G‰( +™’–O•£ÌXRÚy<>|¬é³Ò©98ºœ“{v^–.â-±c€;nv­1'=Ö'E•JÇÁÿ£_/ýæ·£›¤‰s8ŠqŒdÁÜýt>¦ú}‹Cóú¸ã'wB 8}eJÇÿŸÕëG©=ý¤äAÚgi8E—‹å ’·…Jh'Aoø鈔'a“zä™*@¿ÿf4Â5*Û¼E‰)Gk$°PÛÑÝúöæÝíõzôþúçOëèúçkö¬“n¿MÑû ÍÀÁ—™¦þß¡Õ'¡S:'„“Bb[Èf·6Õ™5%ö¨G@áñ?eýñ§Í‡·ÇhF7—4Ë32aâYMäE´ŒèóNx2ÀÍÍbºjzG¹ô÷§JaD–(¤šŽ~K¡ŸÉ™Ê&¨ð^i¼¬™}ŒOC^ø"JçT zÜ€>Þ¼í£|Tj’ªCÂúˆü8øÀÁF%”ßËN”[qªF®«ÄÀ6Fªž)7&%ù´/PÒ\uÁ×\jiáî (´W0íªdG"¼S}[‹ê„á*G7Ð’V:Ž¥@d@û•*‘kã<›¬5à]€µ +š@©ÜVyð; EE…ÉáñÞ X#qÄ®S‘AÎp@¶Ê¿HO£O´l4ˆ¶Ò±Jµî4Þ°'rNö KGÊÑ:©¼“EÑ/¦:ù*¦döŒß™;lo +‘+·iȤæP—n/•=ÓsÖ¯/ä£,POðÆg¶Ò­%J»€S´‡ò"I:Xðv,ÀmëLì‡ZÖYP¨Òÿ.±üeí¸ ¬j2 Z¡s(—Þä,¶û ö)•™¨ +ÿŠ½Œéþb‚>w†£pî`lêî_µúÝvŒ×úT`YUP)ýŒD-œú° ^ïYµjFWL;…Ý §æ]Pž$4Ì맭„_PVˆœ„©ƒ*Š¶QœETg¡ TSŸ[¥…UÜÊ-”9Ð3¯„÷™ÊÓ-ß1 ȘfßBÆG2Ò8¢wç*—¯ !Ña}Ë|ÆÏ ²ÀñM’¹6€Œ[°Švî¼b‹¥x´9 ¬Ð2áõý`QVìlâm1…¦² +†8sÃo¸´¡5E¹5O\®Ê2•(î[÷àl!…ó¦f“–/kG½‚0p_`:¸\[¬ÉS«oNý['®uUnl…®Ÿ6¶(j¥È¼´ƒóÏÂäžÌ2Ç9CmÊ {Màƒ¼´Àp ÄØrì/±oŠ «ÊšwÂó~ÝÒã¸vm¼ï‰gy TAØ‹G\÷*SqŬ̀;ÀVúƒ„ƒûn6@3èSÈFí®H|ÅöÎâôÏ{öfà€…<Ô¥68³L25–rVYý•®d(Äîì¶f}†sÖ5†Šƒâ¤(°ÃÐL•ƒ{:ÿ†ÝèŽXôü^XQÒïÄzÃïÿû´’"PkxK£ÑoZú­2Ž´€“Ì`h_ü»M¾š”^ëÐâ¤æi#}1»$û´*÷LóS³*¸óaj:‘çö‘±ù(¢ë@'Qp²‚¤å)4Ú½H@ §U–¡ì¹ª?iõèˆA*žÒÍŸ*¶ÃOl,ÁÍ¡“ ¯(xb;ÕØõV$5Uq  :ãÓinÐ{²BwF+µ`úƒˆ0—ûÒhðô +Yߧ±ìŠ{êÍ­¾½ê#"Þý´'ZZ8I4?½½jKYã¶_÷£3;ÓeíÌByÜNíYØAR^º>Pp…xw,5Îsh*8£X‡˜UTEG¶05 JF#€Y‘6 wTžJå’ÊàSšT¢Áñpv¢R-sÐí¯f½áøº"b4£n0€ž“ÁÞƒðíîH+«.& /š®S¦¸?°8sc4iE>æ>|r¨«¶°ÑÈÞ§´€gËåz8<°ÅƒUçwPÃ,;ÀG‰úXÖ)÷e´šàð9Å!4œªp>áO#bø`_†©ù{ôÓÔ`¶néÐÿ’‘}î*( Ä÷ùÔÿˆ›â‘T—O{3ûwaŸæhwtbÕL “§ä˘ËàæúõÝ›×è‰æ  ¥«îÈò4YऽŠi¸_rXÿà0[΢åbU.g1›¹Þô~ìý –>§endstream +endobj +1521 0 obj<>/XObject<<>>>>/Annots 711 0 R>>endobj +1522 0 obj<>stream +xÝXMsÛF½ëWôRRR"HIù²%‰‘£ZËöšÈºRÅ  ‰‰ ŒˆÒeû¾n|¢R‰7Þ=ì–],3Óßïu¾œø4Â?ŸæcšÌ(ÊNFÞoºŸOoOü™ï]Ðx>ó”Ñx2óüæ)¥ÕÉ|ìh<žâ‹ó)/Ê/ú£¹7'ÿrîÍduäMš'^û#ìöSoŠÕÉhÆ{åIÎÎ.¡ÖŸûÞ˜W¡¶}’³£ ~¾XˆÞ 4@’<Éêb†S>öÈÙÙ¦×O²:žAãìBŒš\ð¢<ðÚup2¼’ïS°åˆÌs +b Ȉ‚èì.·.LSï(W.39á˜Óû€ö¦|À¢ÓxSª/•.•¥"S©"³%ëTa= +E[“¦fÏRÂ’ŸJÒàïƒ_OF4ð'0>ˆÏÞ×jþ#|ÓËsÚ':J 7ƒü½v Ýë¨4Öl}Öylö–ÍY©òQ•„cçlã«=ÇjúÜsÇjK‹ÒDÊZ²‰©Ò˜6Š¬Ît–bµq t@e¯ácÏ€!Õ¦{ô‹©Ž´íuš"€ +!‚ åµ/ &òt³D¼c9rdpo‹×è“L#ˆw¹vy{¦gS!h­vgÚÀÓ)¬åÒ½Áfd$0&E¡ëj§rwÊQdC»Ø"@†bƒ—Ú²>”Ë UøÖ@ôÊ…¥£RármñçÉ]iRúæ*Ås«”7•¡ÆË«8fyÃÛ¨)Äï{£ÉH…/ëñňêõ¶P›å®fV*U‘kÿØ-ö0JuôÀž~øÛ©ïÏ+¿Y,¨‹XÙΣ”ƒBp9!½š;}—WÔË>Q9¡³Â©øßÔ;™]Îæ<^±Rm©0:¯õ7ÝêÙkp¢ž´u°¡I(Våì»Õ/«àÇûO>߭׫gpB6¯×¹ |½þÁûáejÏPe{Ãïzœ`«M z‰P¦:ke!Ø@¥éù±Ê",*»^ îx$w!ØGB™+{X>ÓòÝ»S+çóÌTêÚÌ#kŠ0zPŽâ*+Î/µ¢Îç(,\2|eÁk”’)cJ–‚¸šEZómýçXou‰À µIi‘ÀÖ zÁlñÞ |‹:©ËªG‡ ;ƒ|Äæÿ ¤7ý?á»—sîlÿ5¿7{4ØâY +¡vWÿ3¼¿Ϩæ#À|Í¡¦ÙôæDZ­Pe¦-w\´'+¥+•) 0^QêÐÕ_‰Þí”ôã^ ãLç`«£Ë£¢Rïg;êСŸe•7ð?†mph¢ 2F;Z¾|-„‘V‹ùIZmÈ –º·„Ž“7Ë#·ÖgëµX,œ)”бç÷2²` =‡˜Á°¾ƒ–)5â×ãÒÈ(.á2F¡î&ähzËQ=Ò,œ¢s kY=äa‚:Alš!ÀC{]3¡L†Ì MtšHˆ‰eŸ°ìa:GRi%[JTZl«”~þô®žKêé Ãèƒ}ÃÆöié'Œ‡<­ÂlJÞ)q®x3Z~ã™rçÑgEIˆœ‡”é²ÄÌ“+ v<"ý…åýù^Ôfm㣥zT©)2dº^j‡—3„/ªø}[tµÍµI¦¡ ‰×yÆ”2FeoR•yt‡©Úœ“‘=NoÏ S¸$¬Ût\€V(C7 '2µ“4¼v·Ágäj¾•B,Q «È8G÷ª,yÈĬ\¥¨<®Çëå ÆgÄ[#Ðá±ÅMröû½gtQ<{èµCä¶zÚl3€lg¼Äeé·Ûz•:Ló»„pwÃ+‰„ifÐ7“0F4,Åá3SKH—7ç´„Í1]‡yŽ`Éðü T!ÜXKÀ.Îi¿Ž ` ²®º6˜B•‡p {ÊSqå…U]´Ã0µ“ihI±Ïê?”{m#|0JoînWàì€1ŒôÖ¿­òÑ–&“Š¯u?çú© Þ¦ ¢ìEßÃõmøÏô!J‡¹‹ñ÷·i½ >Ög&åjuM¶P‘}C[Á=~½¬½)Šþå0.wCŽÎWY1˜Œ½ùWõ)_¯åB‚ù¸¶¿…ûÜ[ø™qyŸñŽŸ päíо˜Æ\ÏAáÜ3ÉÙ¿ÖRZf [xPÀë|Y)¯² ìÈ­T ±˜^ˆòè-nf¦}Gz燻ŽP 3ž²‚Æ~ù6|È-í"ïÕâËC=ÎÓª* +S¾b´?>'´ü›–¿ŒÁÙq·½E†¿T0Yú¿HàøÁÕš6ƒ÷o§žëB)¬nàòóþîélÏøS¤!~”¯û^lòS L½áÆT®Ö8`P8q +r|ç@ëÍs$¯Ç>€¶¹ÉˆLô¾rìË0¹4-% ŸNB‹w!Ñq莻JǼ1ÓHì1¸T ó‘\»Å— É?Yx‹Ë ]àÃÖ”‹tuu}EKó+ß—MO’.Í)ø³¹7ZLh0]ò~|®BåîR÷a©ëGÊ\JyŠïaóÙ¢¾·O§,æÇàäï'ÿ¤xÍ.endstream +endobj +1523 0 obj<>/XObject<>>>/Annots 716 0 R>>endobj +1524 0 obj<>stream +x­XÛrãÆ}çWtžÄM‘ï’ò’Ò^£iå%“­T”‡0$gÌpgâÒ_ŸÓ=€L1‘Ë.§lË$0—îÓ§Owó{oL#ü3¦‹ MTÔ½Q6“ç?_>õ£ì’¦ãE6£šÆóùó·Š–½Ét–Mi:šf¼ÌÙ¨ýÆoqžM±cvyÁŸñŸ×´î}§ñvÈÝüaŒ%ã«9^Äó›ñœÞ;ú©÷vÕ;ÿ8£ñ˜Vk6qqyA«RÌѪè_W{u8²Öu®=Å­Šø£©ÔOºr;í)\øäªÆF¯~}‡ÖEÚ)S’²ezj±Ë¿Y}ëh8fVeÓ(¯x/EG;ïʦФ°ÑGS4•ò´Ö*6¸W¿xM­3º¶âOT«“5g¹‘6áŒo]ǶÀ°­±ª×/8ÿX´ Çãl4Ò„£ë&ó¥%LíŠáô*[ð’£ZÛhœ¥=C7qk +ªÎ\#˜4/f#d#¨"? +‡uM&íÆZ<:Á©±¥öý…­kª’ÁÊU^à9Üå¨x]é'€IAlL`pµ§PçYáìšÖ¦Ò†²Ò*í:EÈíÒVcé_› +WTÿÆá þzcéþý; +Ínç|üãàÝXRei9ÄŸh±ÛÉåQ!´%-É'£èÝ?–Ôá-lTQPmç +Ž:Uluñˆ3L$×¼fwGÉ_ zÇ‹•ÇÅZ=ê„ðwÐMÜ(€¬——¹7z= Ê!¨Dåìf@ˆgK„1Ý–@‘R•ÆÓ“°çz –¦ôáL+\½ãu»×ª¤?!‘íÍ!šÛXW¤máJœ^ƒþjƒ”xè·HÊ‚±phqŠ’C²9¦ùY ùÀ‡7ÿ‡0§P‚Ùä¬f0âÖMÖ¬ãÎnÎj<§­«L ½9Ã[$@ø%¤ì¹‚ àå©r‚Ülðrã8Ë…°‡lÕÊ@6’(áo~Gðâ…w!î}uþ‘‰‹M±%„É"C)9!m ˜Å¬ P;Éÿ­Úí´…hš RVr$OcÒíË!ZIL†6–®NqJ £.¶ÖªÊèVAwÚ#¤ OÛŠ1lG@âæ¡ð&gµ=AÕ+Á‘˜Í¶25•µîPeÓ9å kº£Ž#p'-}^GmO} ®Ö|øÞT•€ žà«8ê'dé^$væ:F„°ÔªÂSàb ×~ 'ø|Ù+ŸRÝ‚Ïžóó• Ï'¨‹¿.ó y–ÝÚl¶‘Œ-ª¦Ô|éùÇE[6ú©^©*=îJE9¿É—½#0«X©ótä" +/Õ ¸£MFݳ>£Îv”8*aA V™ bÆwäàž¶®Ùl™cŽ;G õh'6xÏaj…áL~G"<ôï‘5èá ݤß*Ü­žuŠ¬Ž5SÐ+Ôõ‡>­=¸ËÆ öq™ëlÛ™“òÈ·7§üA )‰X‹ÀŸ³w×÷0ã¶×UõÇj‘2â6¯×Mµm…XŨ +éEW4\†RZ“f™Éèê®A­%Pà ;ÛUæ®r—@©ÖïÜ•‡6J­°=5/dŒ6À +rBÛf!m¤?CœSò`ÜÉ]05 ‰g5R™#´“Ë^ö¨úXhPÀÄQ*Á°":øk¢öoh”º¤NfÙÕâ‚ž;¥¿¹=̢ѷNœ|áT{I—? ýsÁu$Ìk-‹šR÷O„Pê@4h!büE®vsI´o£Æ¹‚ô?Mj +ŽÒì“à»q÷—ósQÏLÂ9Ïe¼2$_:HÁè{m$Ã’˜!Ù»U »ù³Z,Sÿ”wÞöEÒaíkûŽûØ¥4C ZnCŽ +ÜÉ©ÐbpQ{Ôè?äÂ)òu„î±Ú¤JÕ‰D—’©‘g anñ$@YÑ¿5€@Þ¬¡4©^0ø*G Øª#tÑõ1nN[ñi1ÑÒüe °dä’A¨üY–%=8êÕ/²Ë1]MºNTK®_aøáf8¹ÌÆW5@"‘yü/C¿´,§iô®’ñÕØÒí]ý8¿ýð¾É$›ŒÆ8ê +s ,+x´vUåöœÜm§-J‹c[oõÖy³1VUôþóíõÍ]!ÅÜ€£u×OÆ5ºÒÖ ¨m' IQÔ¹.´GÖˆ·78=FŽ +Q2¥—NI‰{LžtéاåN¼õCj¸ôw™Fä–—^÷üý˜où¾ µáºÄß]œ†Ïð  žk¤¸ÌI PÇýãÆ»f'ãþ¦N?§dÄXt´¯¥KF½à=”{D', †Ö}_ËuV‰M1s 'FHŒW@¨TxÌ»U8pÞH?ÁB΄ (w—(ª°JBGÑÙÖ0LœUp‚Ï;ûPÜÓD~ içj…ŒØȈ+mixhFGûèÇdy*1G6à ÓIš…„',‚#Øýß3ôCÿnÕ¾ ‘æ¨)hòË¢v~ƒ Í'Jgéxvî¦Â$.«»Oh¢÷mÿ¤œËÛ·¬n¬£0 X¡#Š\Úøoq,¼×?Àº˜¢ 9ο ðÀ}Œ¥â ç9¾vÛñ–ÜI;|„3/ ¬þGXq|E£‡ÜÀçŒîN(DëÆÊ<¬*ƒq™”LdûÀŽ¡ˆ +þ-k¤“;º˜Wâ5¼©—¤Mo¿|þº¼¹ûÄyÑ æ¦4˜#àèOuÉ¿…ÓŽÉÂ\Q‚aƒÇ„x"YÚC5~¯‘_eÆ ü°s9¥Å|–ÍsîV—×·o¯éÞ»o<ʽo»q^Ò¶Û2¼]ñúß,{³‹Yv±¸ÄÏFØ5›óaV½Ÿzÿ¹Åã«endstream +endobj +1525 0 obj<>/XObject<>>>>>endobj +1526 0 obj<>stream +xXÛnÛF}÷WÌCº€EK²,ÉiQÀNâV@¸±ÒäÁ/+rimLrîÒŽþ¾gf—²D;HÑA$^vfÎœ3}=ÑG4ÓÉ”Òò`˜ i|z’Ìi2Ÿñgük4å_i4KÆáqþ0Â#£áŸðÖñb4¥7–þ>¸X_Nh4¢eŽ‡§ó-3©Ã!-ÓÃ…s­v8±P^gä-ùµ&gª»B +{g+ª´´Í=•6Ó)ÏŒK[çð¼©ð¼qätê­ºQåJ‘këÚ6ÞQfKeª_–_†4À¹ev(Ǻ£íÁÁŒKS{\VUF­Ó ÕÍMïrÛÐÕ }2UfÃWöè®±míäù»gŸ¯Þö,¦…ÑÜy\›tM¦(h¥%ÒÜ"²ù~ñõñ4™°ÃŸÖº‚º¹º p®bt8Ï­á%° ‘O«Æª,UÎÙ¯¶9Ÿ@tºIh ¬sÓà1[ÁÛs»Ñu±¡;·9+_ì* ó  +“!_Ž nÕÊ9ÀÁ !mˆwp:•:]«Ê¸R^‰QYipÉ7Êõr=‹¦r^…ÎZxBbkëœYšnW­'œ»!çÛÚd·¿pÄi£an‹µAØ[I!¼T+å4UYOn þdß?jÝçE@ 0‰NøŒ°Mç9³ëA‹mÚÁ8†ÙÏðŸ7:^).Œb\p=5µò ËNÂwÓ<Ó¥Eðo¯í#©ÇU8ïCàkkjfàOƒ;”7¶$F%-,Ìn`ãÁÂzFøud‡Kzdúع +Tr€×60¸±-¥`X©î5i"Ï#nò £ašÈž£vR€ø5¼Ú½iÁÏ^nWʃü¬(p„€c£ì;¥³¡´ª‰£åºÑuª‘ŸL»{okQøÒxp­jû^hP^S¡Ú*]‡D;©­rs×kA–ao¥~pî…vȳ_C­ðµ°öo+²²­gß óS/ÒZ70]‚±W|åtÐ z ~F!o•ê@ñèßâzGÀ*Ë¡X#PÛ`Šnš +*PôNû¿¤TF±‚2=¿³&ÚÀ;‹÷7T©RÓ›÷Wç‹w¿Òß q"1|¤Ü.Ô¦+ÑátmÁ¶PBí€{5¸«{Ö€d£S áÖPù¼G=/w&Ä©€ 6Wü@)ö"5\¢pÞâÏÍÛÿ¼ý ) ·tÀŽb/pepr–L¹xî`À*‚ô,õÒ£VEkGl(WHCfYÁRo©Ó¨7ŸhÐò…#úq/®_ÿ + Ž +51œåaçlîúÑøÉé.Ž¾ÓÁ#Îʧ{0þ#ÚËxp£}cP}»Èr9üÙ€{‰ +ï™['?vkKaMpKêlЧVMÊí‰ûôj†Ñä‘Á¹mñ•/qùASD=ÏŽz¢öu…gõ7¶]?xb!´<” Ûú>Ϻ.èjƦ÷ní˜0y}1wÑã× ]‚áú›*ëBI‘ +©¿½Í1sÜÞ&[79ã=ØIë-°<âŠ.„Äa1|*ºHÿ ¿éñ{Q/$—ƒAš:±<õŠž¬{|áþúý»ËÅÉõû¿‚k[`bù£—b¨‹ƒ.# ý–U/)|)ήNÎBœÇ—g4Â\œ£ŸžÒ`2 u~šÌ”ÿ×{½}±ÓÛ_±Py€# Fšãîj2ój"ý‚—†í yÅyy¿~óZüT;sÀ~×x»ÃWbå¯Ýປ™u•6›º›ðX–ÜÃ!•Lôõ]3B‚ãË4.VƒY2çÕ þߎ§3i‚O±ÉÍíúÓ­1» oJ2 ó¼ÍÓF©xfBhZl*MQ§}˜%ÿ«ÕÁ 9Ûz0Ä¡²`‰ˆ{£)Û*œ…Xbq=y¸mŒù4Æ<'ã!ýø,™¥Õc lã7²*JšJ¬@(@²!Æ^ÊE€ódxzóݱöæâG”Ç’õ&s‚ŒÅ ¶î/XR ŠKMŽ È)…{,T8{ (ƒYƒK+¦UL¾š,&éžlXõ†`žj0ã{’ˆ  {ÏÖ:J雀ôFV[æ»o,V¦†¥=PãøÄçµ–/_bÓ—½üð#æ©p©[ÕÃvh+ì{§ÆQNÒÆ|EeˆaÁÊWac)Àbå0òÚÒ3uóçùÙŸøy( ëûÙYíT¿u6L«=w%Ý}S2$öäßžB’Ù+熾ÓéA5&,˜yã–V`¨*¶oE&âo„4ŸizŠŸ?æBÅ›ó«‹sºnì4=ü’¶L&9WâMñcÊü„³¡°ïU¯Él’̦ó ûÉ”~»<øûà_¯$Ápendstream +endobj +1527 0 obj<>/XObject<>>>>>endobj +1528 0 obj<>stream +xWioÛFýî_1uaT$Z¤eIP>âÖ@íVQ¬È¥¸1ÉU¸K+ú÷}³KJ2“¢EØѱ;Ç›7o†_Bâ_H“ˆNÇÃ`H£ÉYpJ£é¯#üV’Òƒ/N‚Èça0¥Q4 B¾urŽéZÓw?šLññÿ¸F§päïŸíî‡ÃGñÜÿåìàäfDaH³”¢(ˆ†!§gÁÙxJ³„÷pH³¸wÛZäù¦O6S†”1µÄ_¹ÑçÚÈ|CVÉ„¬ÆI‰\+I—´Î$>¨HWTjK¢X*jci!ýQ]UR!Œ•ÕñìóÁá)À˜%½E¥×—SÜVÖÐZWËJ×+6[’^ÉJXU.I º¾ +è}¦r„faÉ8+UÌ‘³·•6F-ð5‚Œu™ªe*ˆŽOø{‚KX4uœÑ¼'R†Tó>¹xœ¿2¡Äžë¥.á¦ìZS¢ "Š-\&*Me%KKiOŽÍû c0º®—Z'¤)8B£ú[×d2]ç øRÈb@l&¬îúÊãXÉ%|ºo$]¿º»¸½ÿ9\н´—·¯¨… h†ºq¢ƒ=t׊PmP¼Å†Þ«2æ(ªBà8 )×1×’:„;'írñy/ke2`m×õÁ•®O-€3vwÐ *ë8UIatÙ¢ƒ +lh­L§V|Í3ˆíøð¯a¦)a4FL›{½¦…ˆ[6z¾êt[uWÂ%$‰üÁ B' -¼8˜K:42®+e7ô+Ÿ¨ºMqÎÅÐáM¦Ái@ºe–kgµf“w—Ô° Y#Ð^W ;Óô$r•0Î쇔ÒQ…ÿRKc ÷0U¶ã—ÛR3)À £QMï¯q¦J×… \‰ª Àh~w¸Æà}Ò„t8?¦Ç’K_h®­f·¥Üc¯gÐùù^¶kU!™ðQ´¸ˆ¶a›­tžË* ®Ô> +¾£ÑÀesº“¬+P[‡nEáV¢™¹Z…1¸xMrçúk+YN۶ظ¶>ÑŽ‰LU©X:š^3mPqó{pX%l ‰ã†oèÓf§""_‹ÍG]ɶ QFSmE×'ízìäæœB´XJƒfZ N£`zêÄzLƒ( «FY!̈ú¶4¶ª½ø½ i\CÀßjQ0$ï˜î¯+B·BÜŒŸ¤A4 FÞÅý«ÙËŸ8ëÝÔêm-­#ÐíÕJW®÷$à êç9ýÁ«û™Ki—†o„A˜ô.}á hq‰ 3Ðà îÍШšè[Ÿ­n¡yÓ:ç³FJw­ã³ÖNéT±Ê!ðè!HQ*…Åp2]eóÖZq6R*XéÅߥ½-SÝ +FKûFqÒ’{-Ê +ó‹¡6v/ð(V@资ôºÆêDˆ`V`íZú镉'I•ÖECa#¹ý `ߦTÉ<écà5aAÆZe2ŒN? ¨£”› ãÝç½5ÌÃÙJÅÖ/ Éu‚ltÍ'ª‚êjó(ÑýßBùpq÷'tzûúªÅ²}âÀ°XV ‘¢Üø¬ Ë÷y°²7 ¸”™N&Ÿ›¨Üu +ò [Fs‡oA€ ü7½]ǺõÒÍÄ÷b[jf9€xÖ¶ó®Åøf3Yg vÓ]¸»ÃApÐXæz!òÂ/¤hŠEÀ­ƒÏ<S¨¿^3`ó§$¿ +æÿüø…w<¤sÖö;ò»% òn3Lâ9~Zܲ¶{Ë\Ú¾ããóùÑ»ùœGZsƒ?üNz Ë ¥àŠ:ÇÆÆZÊ»®^9Ã+v{tï 6Æúny©ù;ë­ï¶ùœKÊgŒSdwîþˆmŒêIÅnAÚ›ªðcâ0«Em±aÚvõó{Æ0¼î¶ÛGXß¹#j§Uà Û±}$M"»¦ôãàÏÇOjâѯy®%ɬd¬@c¬¤¾¶{Eð‹¹àIÃFÚaMÚað!ŒsŠÆ¢^ži@k¨!닪†Äp~LeX(x™Gø-Û–Œ±vð£wƒAíJ-Cu¢ß"ÃàÛ-a£e=þϹ%3…­5Óó¥s)»øx,9Þ=k0];mçFtÞæìÛ +#°ÍÃæGÚ +× |±\˜ˆÊ5Ø¡¯Ó`oß še–×,qÈ«bª¾"<¡¹­âû_2Ø<ñ†øïQ¼Y Vü¬Ãkº²ZcË‘x@3x"üK  iP8Æ£îô”Æã(ñ? ÒzyÁÃþ3ĦqÍ#Ï- +|wÐ^L†€V§žcøÅh2 +&x¢Å£lÒMØÕËÙÁ›ƒ2€6endstream +endobj +1529 0 obj<>/XObject<>>>>>endobj +1530 0 obj<>stream +x¥WaoÓHýÞ_1é7qÓ$EâC¡W 8Rq'‚ÐÆ^'KloØ]7DâÇß›];n]N:Ý*JìÝ™yóޛɷ“1ðwL³˜Î¦”'£hDç“i4¥É|†ßcüIÙÉ7Ï¢8¼Î¿Œ£9Mâ^Ä©ÓWãsºÒôÞŸŸŒGÑy÷ü‹ÅÉéõ„ÆcZd¸e:ŸÑ"%„h‘C‹ôÉ‹ÊÑ^(÷ -6”%Abëc&¢Dn2¢W™ÿ¿•Îßé<×{Ž]û´ÎõJäŸÉ"ŽBÚ0d‹U”è2#ÎíG?½ÑE@bO¢ §q¯êç´ÄŸ__ãçv¹ŒšªÂÉÄa<僀¬äÌL B’+Y:K{•ç”VNeUž)Î[j^@Þ‚lµ:"sÌØcß~œˆ<—i¶cZ´D +•¥Blë´Qi*ËåÓëxŠ¼ÑŽt‰lÜF¸­S¿ ø”ƒöCÖ"·šöÚlñŠLžrj‚2)\Å-*C­hŠ! +}‡ž‹ò@mÎÖUYÖIYg™o,S¾¹Ö©¸9Iĵþ-ÐèNÿÀn˜„;m¸Å(#3 åÀ[½µ”«­ävtbÛLT¦ÀÚ¶·”iC½¶ñ=×éõÅQ'Ãx€›Fó(ŽÎ¢ºÇœ"(³ — –ZWFp>?aH8þÄÃD¶ÕŽSo…¬´Û<º·!Éê>ù÷´û){PŠwÂmz­‚mD×&¿‹b÷¿eÀòÁ‚Žºá`Ôꦑ +è!(qÅ£1 ãY49óúEq'©5“L¶hÑž»Ú“jf¦l€¬úž%÷˜ƒ W`c§‘Ã&êÙY4áé“ÐЉohª÷–`_ï‚}ÑéªÝôQp£¡\09 ÅX&ÞÚ[’)êÛž¹l9þÕèêrÁÖ–€áðÎOL†¥ÒXê}pÄx#˪7èt²w%íÖé]o@=丆'Û^hüt­Ó+AB¦•$,:8Ž.]ëI+I…4kÆY¡k̨\Ãc:Q¡8 NX¸6^†è“gË%,—+\.Û3%æw~få· +ÑUBšîhLThÀ…9À3£ ’"ÙDyt‚{ó,%ÂbÈ°ÿp–G‡×;V@Ûa±7@\xç9¤eì&ˆìñÀšÛÊÒ*§pøy'x©{\­6è Ç/„*~e§œÈ)‡"¹iøȇJ*ø=þÃXÓß®£[--ƒë‡ßF¹ëV+6B^á›áJò¸|‚ÍÇ›3^4Í£m jyý®l½ ¯¤0È¢ å^œü‘¢Â•¥S Oõ{øBau,—#—º”Qˆ ¬½LÃûÐ5ñÂ\¯˜5nùtà'D(cpZ>/XObject<<>>>>>>endobj +1532 0 obj<>stream +x•W]oI|ϯhù%A²;NÂË)„p‡. ˜CˆEh¼;kÞÝ13³qüï¯z>ÖŽtïLwWWWõþ<ÓÆtqB§ÊëƒÑpD—'Ã:»¼ÀÇü3’ʃWÓƒã7g4ӴĉÉåM ÂÓ£Mó£JÏç² ÝÐL–ÚÈCMAÂ.-mtKªô?ÖÊ.Èi²âQ’[Hj­4‡–VF–ÒÈ&—ö7ú(+™;:ÜH{8|1ýq0¢ÁÉdx†xGïðˆ?øY5…^[º:§¼R²q”ëZZjW´VApy!íÒéU߇¶ ÝV²#1«p‡&ù$jÕ„ërÝ8\bI—|4FŸD-”AFÚlÈ®d®J…JUãcôP8Š^ ·èqõ׊z&•=JãaÀOUnðpáÐëY¯O½NG÷²i{ý½°½÷FϨmÏßÒ{n¡uÑ£RW…4– ãLʆr#…“Å>\Ó…´h^||­ªŠÈE¾@•ÎEUmRÖƾÕ® +¾ŽÖ ÜÍ%qŸp`Ε”Å~rÍ¡£Zû˜áT æˆb ™qù¸ìå {1¤/ „ϦD.¸± ª±T¶ÿgº´!´Ñ¸AÞ:ÛçøPH}=-͵>ÆùÒò©QO ZIS+k•n¬O]ƨ,ÔŠŒš/x£ck÷"o¨ÐOv§ú¿š„‹!0µ 3É ðÃã¶Üˆ\4€íöÙG ÈEÕ +Sê¡UÖ¬«•^§ÀI™>‡U>žPßèF>¹0«ªñ½ß„¾cò”Ú€²£¥sNzÖƒpû|JeÀV§jÙóá «Æ:L åÎѶ ù³_9‘>ÑÚµ6EŸ +] Õ|£B À7¨Û’´¹XIûž)ŽÆCâvà×AªÏ´¡[FÂ]”Ê'Ï%VÅ T•ÖKäþ2ö1ùÄÞ~ù~÷îæúîûýõÍon³,ZF–Ý´^ãþ/@“,{¦üNY·wM73^§Ð33›>Ù„ Å‹xÇ{øÀ˜òÌþD¢`+èÒRn ž•ZJh"Æfæ©?€Ã¥Šó—Y¶æ–e‰4YÆQËìEç.£ð¥;ñ}vaö~¶p®Âs#1'!ôõö #›£r˜#¬Í·®)W'ÁtOB_ŽßL¢ýû·îÚçëo~gä¶ Â P/pa$š„ð9 ø²sÖ +9 Õh«»ådGnèðw·ÿ–®·fáÁÏM°OÖU³È,AN-`@.A)”I‹¡ëª‰IýÂMxÂz¯áâÃPð¯ú¿[îóë`‚f"_b…A†œWt!ŸÔ^XÝFJ¸ü”¿c¥ÞN/¯õÞ6¸É²,y©Â¬È©Ar²£­Q/TQÀ-ìí¨=Ù‹@ ××ÓØeö²‰<ݶÓëÖZb߀Upü¨ÅŸ&n3ø¸E/n:¸/.>Ñé:N^\…•ìt«‰¦V +M"ƃÕrøþó]§F^}¸v¿ +D®íLܳàwqÈ <â$TgÛà‰6€v˜8¾ÛÝôùéóŸÞÙþ€$dyÁ„rX)éÙÊ @s£f`«˜éG/lÔ;êÀ8 ¹wÚwmWküW÷׎]àú0Y¿½ìRÒÈ ']9©øI¨hprNƒÓ« Ø[°]’¬xª‚ñ©†;üî­½)䬳P%ñdPD·æöÔ»÷xdþ˜gÍ@ —ù’}Ó¼ +D¢ìÑѶà/_m½â³`[­ößàŠ»]ƒÁ*`}u;ô»€‰o(>MxÁÃ4îøQ‘ƒk²§c‚æ—‹yZ|Â.â«@&¨˜×“¸‰t÷¤È Ö{±ÄÛʳ‚±Àyv^\øó +kí.*ü>…ï6Û.@(9´Ž;Àp…‚L„÷0¿t‹1wþQTüžö ¿OøøÍe²… Þ/Oi2öÆðñúþÕ5ÓVž×:o¡N8xn˜¦øøàbtÅF2^a57º)Õ¼5þAz‹uô9²/ñj輕ààO wr?Ë÷ž]œ /&—a¥8»âÿºüuðÜIæ*endstream +endobj +1533 0 obj<>/XObject<>>>>>endobj +1534 0 obj<>stream +xWïOÛHýÎ_1ŠtºVJÜ$@œú–V‡T8ZrªªRE‹½ILl¯»»&Íofm'*]+Ú{çÇ›7ofŒhˆ¿#šŽépBq~ð“FÓh¾å£è„&£Ã舾¹Ó…¡Ï/¾v8œD§O_F0~4ŽŽéèdŠÏcüXM‹~0E‡ÝïßÍÞ|<¥Ñˆf 19™Ò,!¼=Ò,~5‰N"X‹èkZ$fãèzF_];¯|j +:Š†¯g0qÔšŒ'~–¼úºÒ)ªœ¶´H­ó”™¥£´ oðýËûäWšJki¦áOGç3JÅV+¯“ˆf»WØûlÌ>3‡ÀbUн¦ÂlÈ•:N©N`Úšj¹=ƒJåW=ükU®=\±½ñ8G4O£“C1û=[džªZžNi@)yËö>-–!fXâÌîðÇ©ü^ ú£¶ww+“kwwW'Õ'U$”¤.6xªö8ØKÁ¯”‡Aä»PiæE¬€»Wñz‰ p¶bíå*-<~œ„›¢Ð±0ßÅ÷Jn¥@ŠÍ*W”íh^?§83ðƒ2\¤{í7”ú,8‰hk*Z©G͉òÿÃÏsÿãÓ^⛑ÇÇÆ @ßÔ–Öäû‘“ÄúCê2x^0aLíjˆã@ßqñÕ#@T÷àÒÂXvG›uoÇÜÕTHlú¨{Ì.œu+Se S5æl{«³^'[TÅ– ±$§Cmwgá/a,Q˜‡ª•ÿœ{¡7k®R—… DÓIÈ’táíV’ೈ­×ö‰0OR‹ê»#uH¸‡B·àý•ÎJbÆ×yS“èa.ðR d}¼“&ÏœiK$ (Šn.nIÿòºp°Üp9ûL,à Ê€3K¤ß§¼B÷ o66õèomóÔñ9†6ôµT}QeYÇ}¯t*ݽâæa&K{‹æÓpî^Óóž]HëÔýUSŽC0 ±È:¾[H¤uê»Ra?l°*WE¥²,TH+4V³MN:ËÈÅ6-}$pö!"¥Õ®ÊuŸî«OÇ=WÑkÍcYY@
)bEÐSï-Z Ùp±•F`êoNû”TÒ¹Œ.€Ètßm;î•÷:/…ý=ñ&1‚ +)"-bÍx +¬­ ~^šTû«©óÓ¯Ckï‘ýœ@|MÙÛô™ô!èžá©&þtŠ!uéÛzçe™¥õ0¸P^õDv¥WÊèhÃQ®“sïB»µ7e¯O½kíWÆ$üñÖ+ëéJU°Óƒz,13œèÅ.ÚÔ;-X|14èýY&b¶§ø׈Š;E•¥VùÑÖÃ!ôÞÂÛΨ¬lɪ qe-p«b í+?Œ|ƒxó\dd›·[,§÷Òb2ºQ…΄ئ܂³ypd®†fåù›•#Úd.þ 3-K‹uSÛfñÁhX^4cû G a¬D†E }«›ƒ‡§Ó"]V6lNÐå +o£C¶˜|5•‚þtQUkì”æÌåõ<¤ËÎ9Z‰(äÂo9Ë ²CMö¨“gjT|Ün^jÁ‡ “t qDø ŽƒÈ$¬>ÈX|¡X•‚d+á‘TmÞ +j]à® + KX{¡©\ ´q?ïu û«"ã¬ç4:/õ[z+nk@,v ñ,•sc‡Ç[ízuÓ ššÂÝ×ï¿|»™]þsù_S EÛw¯vјnzKi©$XÕÌ"B‡ØëY{Æv]%lÓ0¢M˜‚S†µ`“²@fÌ8®#êŒ<ÚÍŸ"–”>‘…Ê1w?_s†û«-úG-áªÆ¸6)@’y’ÌA6'åCÓ±ÌÈ’‚…Ææ2_­þYaQÁj¶í†Qè`gÔÇ–²óô;Š7˽ÌŒ- ‡ÛS¬±&¤î9: Ðps¡ro5D#óÀm7ä®l'°9Ïì9 ›Áúž¬P¬oûzS[æÈØD©Çîò¶ÛŽO›kK¸½MžÜÞnEº9œ/m3PA”†Ëˆ:c”•²ù‡›ÔV” ‹¯ r‘5¾dé:,ÙŒJ+â`ìþlaŶ¢Wq°ƒL,{wí ðÕ[O-/äa0bq{:ŽDáv ùíÕ»º1DÌ2ƒd jbÏ:nC“«ÊÒX”ýŠŠä¾ùxRßtG\°Oirˆ[ø!_>oϯÞó½âçØ…‰±ÛávÆÝÄÞ͉ÁtxÊï‡òðüÝ“ßËÂy[ÉUW“Ûú‚‰ùÅ„¡õ/Bm//l÷hzM''¸½Ãæ±ÜÇ?Ì>ü¡ßbÚendstream +endobj +1535 0 obj<>/XObject<>>>>>endobj +1536 0 obj<>stream +x}WkSãÊýίè¢* [……%ãTå{½7!¹<.˜âCœÚK#<iF;3Â8¿>§G²0‚»û*¯‘¦»Ï9}ºçÇALCüŽišÐhBiyðƒâi”4ßò‡8šÑd<Š†üÓËxBsC¿úØé(‰âö±qóØïf“è”NgS|Nð×JÊ?}4ä€ïÂ|]œüzFqL‹9MfSZd„S‡CZ¤G“h%Ñ4¢ûµ°J?Ñ­5¹*¤£•ô)5=žI茮ôhì³óÂ+£é4~Yü³ÇíÙI%ØÉY4K8ÈÑ­ñR{%ŠbK¦ö™ð2#cIéÔX+SO%¾²x€rSfãšO»lñ,ŽÏø°Kòk¥Ÿù_GøƒSiežjwL«ÚÓZ¼HÒÆS& Éq”hyt§RÔ•…ê*¹üÂ]¦Óh6JøðÅZâÅ\Ô…§Â<¡¼Jø5‡Yâ×_®ñ÷!ê#°QHAx/ËÊ“7”Z‰rHP¦¸8c·mHƒxRås¢\‰“öEÚå²Æ-JÝÎïIå´55¹J¦*ߢT¹Ÿpô“i£2¿s½è~@ºZŒÆókãüû”,ãqËJhÔÐÄNzª+j½ ØîÁž+Ž“•°ÜQÜ$ÑübÑÚP÷ßƧ”~£µUb/¹®°ÕÇîo8IÆ '>Za½8­(çjø!C*)à3¡Ó2³Ñ…›¦ÉÙÚèp$|Z‰U#ÒÌp:ƒw ÁªJy–HpÔ²rHØä¦Fñ~-<Îìj%ZÂ2€Xë£MÙ›=K9Ü´W;ûA®,Xã€Í±Ê3é©TÓôüLaRØðþim5d‚Wyj´·‚5´AËôÂn„ô=3Ò}'<«]ŽôOÚ:°ÞøoD†ÆGŽIÒN”ÑxçÓ“è,¢ùÍÕÅåõ÷_n®w7¿EþÕÓ9A€ Ä1 sS +dø ghŠ6±dØxÃ_éž ˜¿ý8ºFq4L&l!·Æ9ÅÞìæÖU;ªš7w#*ÐÚͨÏ&QURgêÖƒ6²êIé0EíÑÉ@|µ¥™µ¦ÒBÚÊÖ“R÷¢ RH§Eá%Ƴ‡1;t…fÃõÛ í“_'íèì°Kºw}³øFçïÓ?âaW±%¾‡­ö0$¤„ò ÔFHÅø•`ÞhÈ7L+•R)ñ,|N\*Oþ4¬ +½´ƒ²S¡a,™´€ﯾRh½ïèCZQ¨ñöX¾”FØ—6Ü®èÌí ÖW/hjÊJh…6æUf%já)oÕ ê æâ°Ö„6g*~»¸ÞML¬\1ËÕ›ÔÑ~Š–Õ©Ìzá®Tj3¹tèlÄrÈÑN`\aeaßàHÜâ=Ä-.8I¬eR¶‚Bß›Ê|Z/ìÚlZ 1¾pOP °ÉÀÃ4/^í†ò†6¶¼a@bÞ¼£®K„\º–%à3Hù£Ç —²OÏÅUìÿ´!³\qr°À¢%è‰-†¡ªà.fœ*Lr`Å&¸F7Öð¿qaSK )ÐÁЈP¶ò7Ô»ÝO³¢€€ýy:6ye°¡'n¦m§ÒÛîk†‚¦Ð§ÜûÌz¯e2éR´c¨BT|]Qÿk®8Jƒ\QøºÃ1ªœ‚JqÖòˆ«‘?j8HŒ÷ƒ†íÏ…,a$Ð\¯aŒ,´ŒzÑßÐFŽ/Ê]â¨^¢šŸÖÂû ® UU´V Üs¿áÍ¥À°L^¥zQ³-®xƒïe¼Á`Sá­zea-Jœ+p•<Ê0±Žè ˆÔóÞ ÿ<¯ªí…nÖN¥x‚ìl„Kh KŘ½¿¸úzÁWÎ?ø687iÍõwSc°{a0†K`s[åÑž«§Ë!Ss û°Ð=Û÷9ÚÇkE÷Ý” a?€´î^ËXœNO£éd†ë0rÇüÕ·ÅÁïÿ)n(endstream +endobj +1537 0 obj<>/XObject<<>>>>>>endobj +1538 0 obj<>stream +xWÁnÛ8½û+æ²ØpœÄIœ4‡’4r¨ÛMTt¡$*f#Š*IÙÕßïR²UmEÇ’(ÎÌ›÷'?ggtŠŸ3ºZÒùŠr=;]àòüŸ×Wø\â×J*gwÉìäãQRâ•Õõ%aùé)%ù‘ÜJÛùª_Èo„'Q÷WZtTKY7ôZ›ÿUµ—VäžvÊo°^"„ódÊðÝuÎK½x—ü˜Òñrµ¸@¤£$¬zQÎÛŽJUIG¹¨)“T™\x05G¥oª.ÌÎÑ:!-rd$)ëÈ4²æäåFkQÔX£N©u žÝpÄ“¨¿¯qûþ&M¿=®×Išþ @Q¡,ýõR~2Æÿ•¦ñâ|™¦¹©KõòF!²Þ*kj-kO[a•È*ùÛ.¸[µr¨Ðd^ Ž‚ ùã\§™Ê|c~‹ñF^è‰ÚJj„õnh‡•=衯ikG;ÔÑJà_ +­*%lì¦[¸£C‹ªJ7TÈR´•ŸSlî¼}v¾Xrs)ýoâ¹Ð¡%Næ­U¾›ÒàM¦ÂhàA#çôIåÖð>cô Ño 2±.Ô¦rÕ€2à!ˆ×T +üQ`OÏ¿çÛO“ô˜#Ï÷_Ÿ“ï}aÎô<¯*0ê°=3Û2}ð¢`ªüt«ŽT®#$¿×€˜%IÐtZ'ÓýÍ’"€¤A mî[ ^ôQ °‘6…¬bŠNtî¬hö;FzRª“v«rˆK·P¤hQHÈhá«v²Úâa&KûÜŽF‚R#­VÎ1–%ÔP8d$jñ"-“¦0´ƒILBcÿÀÚ@­Â¼ÊHÞ_‘,‹L8@\¡'ðàë@°%nEþ.(Ù5æöÐéáQè Å0Ij±íßn’ܾŒØ¾RI;§Ñh³²2÷Ævsz±¦mHKiÕ¸9ˆï^½iØmXóHn³š÷À:&oßéôhgì«ó‘£µIp¹UÒ¦ïP,nš)–íŽY=Ô<‚ë9¬ŸTÍ ŒDñ!êë¹×à@ðò ïƶmX÷ >»+Ú $ÛgÇÝ^N&xr–¼Z™YT¶(cÈü$ª.‹WŸãý¾ $¦¦bCè+œ"› ©¿s<€áL¡á<¥GûjosðßѧÈW໯—}¯‚ A \Ø2©m¤–¨e᥃¦zÓ Çá1S$ž¼ž©…\°ldí v¤Œó•‰Ê€V§Ñáá5d†–9`ú³ÅùŠ¤™ÿ¬QÏ#«ªîõŽÍ£Ú‚³/Ò¥ïÞÂôYèL—°ìÀ>P´9vFl#Áã´â\ùœ.ZÝ„¤Ç„î¨ÝÓY#œÛTµð7(mZÖÃúþéû—äñózá,€_ÕøÄòc=Ú…ûtÒ´Ù N“Lœ4» àô²˜FÀU˜[L_+k±všà¬ –Ñ[G)òXUäøJ¬ +åÕÆóI(…SpøÀ”¥tSÉpÆ3ÃÆ' ÆèQãnŠîWÉ\Æ7î¿¿ŒF2\cÖùŸ$z1ô'ú“R{½ï=®wžÐ<–Êp¾…d“ ÈgjX(IÉ`ÙD€øˆ*NüÛJô ŒÃIyð±Ïëúb•pÄ>¹û! ­~ùpJÒ£gFÃb• TȃOÓñŽ“Zãqì©B³p`:¼ù+lû­8w!N¿ÃxEÁɱ ¸\ýgsÅÁJ†ù!d; Yt’ô¾°ÉJò—`P’˜cpß%…UaaU–ZpòñºŸoÏV˜ï¯ÏérÕaØàî°›hàÈ[æn§s<¼p|uúž‡¶Õâz±\ƒ!·µQ‡uK IwCöž§n¤ùd0&âk0b ó!ï{qu±¸Z]ã +ìy¹ä[ÉìßÙê:zendstream +endobj +1539 0 obj<>/XObject<<>>>>/Annots 719 0 R>>endobj +1540 0 obj<>stream +xW]oÚJ}çWŒÔ—TR©ªòÑÜö¡InAÊ•’<,ö{c{ï:”Ïì®Á8éUUµª÷kfÎœ93¼tÔÇŸM†t2¦8ëô£>Vvÿüü«38™F#:L£>e4FÓð•ÒŒÏÓéx i4àÿCü-%-ÝÆàlßÛ˜ðHëÂżs|}FÃ>Í—ði<™Òº\‹ÂÊ’&}Ó²šÎcK  ?W]éL¨üãüßNŸzÃn]êÜ–:MqOå8yW•2ÝÒLd A»Í¤q•]L¼ ½“âÂ3“hÑ])KùR)£¬¤ŸR$*_±±ãë áÆp‚€qãB.5`ØêŠbø òJw‡=±ke(öu©H¥0’2ñ,ÉÀCl ëî +|Ä:Ã[V,RIe×üàR­ªöI„p'ÞSÙÝÕ%#“H—j!oRú¸{Øí}»½ŸßFÞýÀn“h9XW¥®òä·aÞ³£E÷˜–_è{ØÊD¼VyˆŠs$ÈŸÈ͉IõJç祒ÆZ–:£.ŸVé̵ܸ¼Wy¢7†næÁpD÷k™ËW¼'¨2þY¾Êv¨qü~ÿr8Òý#›ËNð­–IÏ®F€ð?Ê젅 ¯%^+Ý“l?™t' a l$»²Û§„9 Ë#šÃ•×ݱ´FEª¤ñ,Î’^"FÐ#sXZ]Ù¥.a‡ä/‘anµHEŒá¨ÿfO ¥^*œP¦³± qâqòG—Uš’‹ –>^Žè«ŽÓMgž ¦²ÅÇ)`3ï6º ”¨c*·|vþÔ‹y BU$8ÎEa7šžAüM+v˜qõÀ†)ç}¢s”²ÊD¹}{±ÿãjåñ£Ë£ƒfÆe} 8 Jz<ºà>Ÿ\†\ýP%P `e°„źز߼Ԉ²|Çä°OkÔ2 ½ÈW­™T¤’uÍÁê÷™ŽHi`CÌ4sW뇒„Ó @@ -2990,1286 +3063,1246 @@ a l$ Qâ6Ê =?ý°JõB¤O=eäØC©˜lqïFgÆHû‰_=¾îÓY݃G^-XÙ¹ôÙûV›ïcø€š„BQ~¦­ÜQäð„ã¢Á+áÄaÇwý~Æ­G¤¤7ôfC©BCô°FœæÉ÷ zÈ¥u>‘Y3ÑDj4”aË@"|k4v×éñ‰Ñ/qFš Ôu ¡éCàÖM‘f{””L6N¢óÉ„Dn 8jÖb §ëéINtŒüæöÿæ‚®4ý—J¤jÉÝèÞ_WBå$|ñzgLú ¶¾5 ¼æ!iŽkµž•r¥œ°2D7Ò^|¿‘Ï<3³…–»úa{ˆùÊý÷› /á v °HG©EuA“õʘjô) 1íÞå¯vÁGË`•+Ì6;Ç\÷ N,Þu¿íÎñ¬@ ¯lhó\ö¥tÎ&5(-{‡¼F‡*&a–d; -HÀ4åBJt˜)ò­_Ô ‘ÅÌ‚9h¯º¨Å.-€ñCÅ¥6zi[Ö¯¼)ž9˜L~0q“3ünjG(¼à`(耵áñ©æ·?¤‰;;¾žî¸/ÿðçA£[óXò'? F“Q4Oñ›¢1:c¾Î;wþrèB’endstream +HÀ4åBJt˜)ò­_Ô ‘ÅÌ‚9h¯º¨Å.-€ñCÅ¥6zi[Ö¯¼)ž9˜L~0q“3ünjG(¼à`(耵áñ©æ·?¤‰;;¾žî¸/ÿðçA£[óXò'? F“Q4Oñ›¢qzÂ.|wþîü™ôB’endstream endobj -1512 0 obj<>/XObject<<>>>>>>endobj -1513 0 obj<>stream -xWËnÛH¼û+ØCÀ¢õ²$çø‘ >¬“…µðeDŽ$ÆäŒÂYÖ~ýVÍ2MÛ»À"0"i†ý¨®®nþ:Hÿ2Êh"iyÔOúr:ë'CϦø<Ä_¥eÆg§ÉøµƒáÙøåó£“/g2Ë| '“>dý¾ÌÓ÷“d” ùjw’YíDÉ[Ý;¯|n,s“IîÎJ•I­ñ•- +1541 0 obj<>/XObject<<>>>>>>endobj +1542 0 obj<>stream +xWËnÛH¼û+ØCÀ¢õ²$çø‘ >¬“…µðeDŽ$ÆäŒÂYÖ~ýVÍ2MÛ»À"0"i†ý¨®®nþ:Hÿ2Êh"iyÔOúr:ë'CϦø<Ä_¥eÆg§ÉøµƒáÙøåó£“/g2Ë| '“>dý¾ÌÓ÷Ód” ùjw’YíDÉ[Ý;¯|n,s“IîÎJ•I­ñ•- ]}ú0ÿ Ãc ¢áÞp ÃïÏåf.»– <å׺1p{þûÅ9~P^vÊÀ°’¦ª­Ó•x+ -j‹ŒÏSåu&kåø{ˆäɽ÷¥7!ax}ŠK–¶’à%‘ksòëÜÉb/¹YÁãö×ßnŨR˯­®öá)Z_Uv»‰ÁÈoƒ”v:î”sÛ`…<´J×b—!ËŸsƒ“ÜËJ#½…JïeYÙ2ÓWÎSæýRQ;Uÿ»Ð(ìÊšŽçJÆó.‘¹c½Ø6âtº­r¿—µ-`~aý:øk×Æ™¡Ó…N ìÝûù·«oCéÏ®.%][§Í݇ŽßW‚mUI"0Q%r¾ô,%KL›í`9‹žXîwNÒJg,µ*âa™X“ŽoF¾ä°”Ý} h÷EDÇ¢Ü= L¨Í¦²ªHh«ÍÿÞh€æeHüa"?@5Öƒ&¿#£Qö»y[? = 9ŒˆÒµ2+-Ì  õ6ñµæ/xY£MU» %<оù@7÷6zu¾ÁÞš® Âvˆà¿¦¤°=þbª¥r¬Rj7ûÚ5“avêÇ6S)h]§p©VnýVÅþYç6ó^ƒGƒ0!O•nP™z£qS™q"—èƒ[U.TP¹@¡1¯¢ ]dˆlÀÍ›yÅ°mÎ×j˜LXú9úUt”¸a2 $Të½—Þïol@£=¾¤ÜL^m‡†­Üfu¿ F³dv6’É$¬Áam”ï•ý sدR¼Ø`É£eÆÕLðþ9IoÚ?kÖæÿý¾8žŽ“éd†e¸Ÿöéàóü裃}¾Ìendstream +Z”¶Øæá1̸çí gÈh8-ÑÆnWë—ï8«o‡ÀTšbœ„÷’ðÚp("ßPXÌ ÿÌr ßVÍ®ñœ2§ÃdÆmàMÊL²@¾D9,2mÄ3HÐA ÊE]î'Jý{y;É> $Të½—Þïol@£=¾¤ÜL^m‡†­Üfu¿ F³dv6’É$¬Áam”ï•ý sدR¼Ø`É£eÆÕLðþ9IoÚ?kÖæÿý¾8žŽ“éd†e¸ŸŽéàóü裮¯¾Õendstream endobj -1514 0 obj<>/XObject<<>>>>>>endobj -1515 0 obj<>stream -x•V]oã6|÷¯X Éb¥8¶óp(ò‰hÓ´6PMQPeñN"’Šëûõ7KINâó(‚ Nø±³³3Ó{ô-×GT›½j^.·k¯nÏAJ›Re%·$¨Õê©•»&| ·2pŸÁÜøƒUµ°[ºî~e´·¦ªÀV7ÎsŠ!Þ Ó¸ÓÎ,:‹âˆ~2‘î^Ü.Ü9… +1543 0 obj<>/XObject<<>>>>>>endobj +1544 0 obj<>stream +x•V]oã6|÷¯X Éb¥8¶óp(ò‰hÓ´6PMQPeñN"’Šëûõ7KINâó(‚ Nø±³³3Ó{ô-×GT›½j^.·k¯nÏAJ›Re%·$¨Õê©•»&| ·2pŸÁÜøƒUµ°[ºî~e´·¦ªÀV7ÎsŠ!Þ Ó¸ÓÎ<:‹âˆ~2‘î^Ü.Ü9… UÉ»[½³(8ŽïÿVÅÂA¦ÙIí”WÏ ìο²B°ÿÎç«C”pC #˜½¹ =¼Ê†¨`K-(8r˜üllÞÇ ÷z}Û ˜ï``½Î¨å¾"†`ƒCŽ)¼Ô\]KŒÜaì!8.:î!‚i<<ŠF*¶ª—ÿú—žäS«žE%µw'œuuë¤Îì¶áÌ5—ÌÝFÙo8c±¦§7‚ƒ‘ƒ…/`v=ÂÓßIoîGA|(ÓzU)7szFÝNã=Yóvçz={+´kŒõQø›òNVÅá=&”Y&Oï9-Þ÷7‡£EŸæ¦õ,رÃLXŒÎo¹‡@ìýo7$]ÁäwìÏïB¼{;~¾¾xøž˜Y§ê¦’P—ÛNþy³ŒhɉÌÍÓª\4”™{Û† p”*ôèwpq¥>èN‚Z7 - Dåö5YÀÞ°®• Äb=l¶’/ 4Uûª`é„ÇTK™‡r(£jmrUð“Ífòp*^¤ÂÁ­Ç÷ÆÖg„;ê!­Ð†tB®ç,àe‰š,k-žØâñ]Oü¢QãþOYœÒ4 }H>d˜ù„G–µ5ÄPñ(ÇÃöñ|‚0?þßÑ5O£ùl§§Ïb¾ôf5úmôÔ òGendstream + Dåö5YÀÞ°®• Äb=l¶’/ 4Uûª`é„ÇTK™‡r(£jmrUð“Ífòp*^¤ÂÁ­Ç÷ÆÖg„;ê!­Ð†tB®ç,àe‰š,k-žØâñ]Oü¢QãþOYœÒ4 }H>d˜ù„G–µ5ÄPñ(ÇÃöñ|‚0?þßÑ5O£ùl§§ÏÎøÒ›Õè·ÑWÜ òNendstream endobj -1516 0 obj<>/XObject<<>>>>>>endobj -1517 0 obj<>stream -x•U]OãF}ϯ¸R¤fˆ'•ö!¬Á–mH[­„Tã±==“õ)ÿ¾çŽm4¬Z -±ïÜsÎ=ómàÑ?…>Mf´-c1¦©ï‰ -æ!þ÷ñW*JÜ‹À ÄìÔ 2ÁÛ—›ÁùÇ òÇ´IPdÎi +1545 0 obj<>/XObject<<>>>>>>endobj +1546 0 obj<>stream +x•U]OãF}ϯ¸R¤fˆ'1•ö!¬Á–mH[­„Tã±==“õ)ÿ¾çŽm4¬Z +±ïÜsÎ=ómàÑ?Í}šÌh[ ÆbLSß„süïã¯T”¸ˆÙ©þ$ÁÛ—›ÁùÇ òÇ´IPd6i Œñd;¼Êä¾V%…‚îeI’IZ,ï)¶…Ô† -UDª<Ûü…4y^›fäÏ…DÃM¦+¯¤Ò6iFi£cEµ¥JÕµ6)5û.ñ3tÑN•Èhq¦©3ej½•µ¶†dŠzUThÛCås7Ë+ÁÕÇ4òg5¿hµU=Ù†ŒR1E*±@‡¿G*ÕægŽ÷D0ñq&s|âÔsZ`¼•*UéRÛ›‰ñlÊq•ƒ»µ%e:ͺ¨WAhœ>_oŽ³ÄêQåv_`ÊuTÊR£Å‡¡ÂÄ€—“yNIi âÃ2²Š*Û”< -*5Ò^nw2Ug‚6ˆÊ”.b™ó<®ÉI ú±ÀA#©±5l¹ëq:ΕîöÊÜ._èd‹î Ä ™ÙQÛdÚà -OÐuÛ>óÉ)Kõ­Ñ%ïÚ­ÐREZš+%„Zëé"ŽÄA&=0œ6±yn\¤Ï{šIŒ¿+£éuÊ8Nì^ËN±ß›Ëÿs­UüIÖß›«4X„BIÓj³Êl“Ç”I-¡ -%«úô@®if"q«ð0d@wÚèúáìôŒõÅq¹6MÝv½îÈG|¤¶’¥ÆË"±4[[ì5¤­4[A¶Iz-Wv ãX»Ás†ŽM,Ëø•º”yÔ¥5¼ ½&ûÝýÅÖ°‡ xà4K=°~Ÿó°Ph'ŽŸ5\Ç…|jWÕSård“„®–þ%c]'A롘ºrƒªÖŒÞ%ó:á:€¾÷¨ãªq§ Ú5£çvsÛ¹Æ1XŒÖ.Ù”ChkM¢Ó§íž‘ëéìvy4bS±>,¯×oñZ$ìÎÌVÙ°Õç*äàsV¦6Û¼‰Õy 2Ò52ª”5ìOköVV -¾ægY¬NçÇtÑ»z‡Ø±JJŸ¿¯þ¼Y_NÉëÛ ¾@†¯"œ½¸ˆ×w„Û{@Šfb«*ó£cì屎ý¨æòâ…ƒBÞŽ<–ûãcA·ÖnàÜ™,µ@÷­vÛö˜=9%úotóä s×n‰NzWz¾›ª‘¹ ¯à¡hpG9·îvÚ±|ô®IÇ3®ECU nñ]¤ š‘yAèëÝokq³Z_®Öw÷b½ZÜ~ne:qëú"`£ŽÿϽ„gs\þ87õ9éj3øuð(r•¯endstream -endobj -1518 0 obj<>/XObject<<>>>>>>endobj -1519 0 obj<>stream -x…Vmo"7þž_1âK¹SØ°¼ßI•J.œ]óÒÀ©:5ý`v 8ìÚ{¶7Uýï}Æ»B¸–ˆhYÛ3ó<3󌿟ÅÔÆ_LÃu”ägí¨Mý~õ¨7⹃¯•´ n?O,ÄÃîé…Ñ(긜]|nÓš-à{0ÂCJðÛnÓ,i9™”Vù-ýLã«é»ÙÓY›Zq;a–¥Nì¶ðTç6Ʀû¶Òñ¾‹Ï=ŠãÊn«3àýךá$9‘ÏõOžjY“)=mMiIÀ†“öYZ*ÒËê­•"ËI‹\žãµ$¿’•~í£ypðµ÷&™Â+£Iéj`¹|%F/ŽN~ܨéiuzÈE~&#ðh-í\Zã¢*úצ@ZEÁ7SRjè½6þ=i)Sï¿dd(tJ&KÁ@’)©½£Ê2šK%€k¯áù¤#µ ÆAŠR“ ¥çìœóTÙ_™r¹"åic˜u„ ô–VÂæÁÈ2³q „¼ÁëgI™IDÆd[Gˆô1ë8É."º&ùW!—‚ÿ!¸¹yY9ðlå÷RYÄZå F’¬„^¢ ²² ÚHZJ„ÞµH¼B)&ÞØ-\{¹´‚³U¼~ xX—V·ÎÉ0êE4•¾,ª’¹>¹XÛyÿDf9Ã(Ôä ‘çJ«`¹¸ƒ'ZKûó¤Ü«áPîÏëûî úv÷õ!ú2y¸œ<ÜM£‡Éø×tÈß'v>ë4áþùA51­¦ÿ©˜xÓd3éêVªàÐ|‹¤q' j¬ÔÓ×éäáv|3ù%Ô ¬-Éq3†”rû¾|¤%‘ên|]\0ÏÙÿ]é«Æ—«O!GLñ ê–Û»Ùä#1ÑUç%"D5—E!- Âñn‘9Ca§Ô¯‚bÝõ kP ˆÁÕíÕjÖÈ< +UDª<Ûü…4y^›fä‡ÂG¢á&ÓáWRi›4£´Ñ±¢ÚR¥êZ›”š}—x‚ºÎh§Jd´8ÓÔ™2µÞÊZ[C2E½ªFª?´‰í¡ò¹Ç›å•àêcù3Œ‡š_´ÚªŠžlCF©˜"•X Ãß#•jó3Ç{"˜ø83!>qê9-°@ÞJ•ªt©GÈíÍÄx6å¸ÊÁÀÝÚ’2f]Ô« 4NŸ¯7ÇYbõ¨r»/0å:*e©ÑâÃPabÀ˃É<§¤´ñaÙGE•mJ•š +i/·;™ª‡3ADeJ±Ìy×ä¤ýXà ‘ÔØš¶Üõ8gáJw{en—‹/t²Ew†âÍ™ÙQÛdÚà +OÐuÛ>óÉ)Kõ­Ñ%ïÚ­ÐREZš+eµ×;ÓE‰ƒLz`8mbóܸHŸ÷4“WFÓê”qœØ½–b¿7—ÿçZ«ø“¬¿7Wh°…’¦Õf•Ù&)“ ZBJVõé\ÓÌ DâVáaÈ€î´ÑõÃÙéë‹ãrmšºíz/Ü‘øHm%K—Ebi¶¶Øk$H[i¶‚l“ôZ8®ì@Ʊv-‚;æ ›X–ñ+u)ó¨KkxzMö»û‹­aðÀi–ça# ÐN?j¸Ž ùÔ®<ª§Êå(È& ]-ý7JƺN‚Ö/B1tåU­½KæuÂu}ïQÇUãN´kFÏíæ¶s/Œc°­]²)‡ÐÖšD§ NÛ=#×ÓÙíòhĦ8b |X^¯ßâµHØ™­²1`«ÏUÈÀç¬Lm¶y«ó6@d¤kdT)kØ žÖì­¬|Í5βXÏ?Žé¢wõ±b• ”>-~_ýy³¾œ’×·=| _E8{q¯ï·÷€ÍÄVUæGÇØË1b;úQÍ1 äÄ …¼!y,÷ÇÇ‚n­Ý1ÝÀ¹…3Yjî[í¶ ì1{r"Jôßèæ-Èæ®Ý(ô®ô|%6U#sA_ÁCÑàŽrnÝí´cùè]“Žg\‹†ª"Üâ»H4#ó‚>Ð×»ßÖâfµ¾\­ïîÅzµ¸ýÜÊ4|qëú"`£ŽÿϽÌ1Ÿ…¸üqn:㤫Íà×Á?>»•¸endstream +endobj +1547 0 obj<>/XObject<<>>>>>>endobj +1548 0 obj<>stream +x…Vmo"7þž_1âK¹SØ°¼ßI•J.œ]óÒÀ©:5ý`v 8ìÚ{¶7Uýï}Æ»B¸–ˆhYÛ3ó<3󌿟ÅÔÆ_LÃu”ägí¨Mý~õ¨7⹃¯•´ n?O,ÄÃîé…Ñ(긜]|nÓš-à{0ÂCJðÛnÓ,i9™”Vù-ýLã«é»ÙÓY›Zq;a–¥Nì¶ðTç6Ʀû¶Òñ¾‹Ï=ŠãÊn«3àýךá$9‘ÏõOžjY“)=mMiIÀ†“öYZ*ÒËê­•"ËI‹\žãµ$¿’•~í£ypðµ÷&™Â+£Iéj`¹|%F/ŽN~ܨéiuzÈE~&#ðh-í\Zã¢*úצ@ZEÁ7SRjè½6þ=i)Sï¿dd(tJ&KÁ@’)©½£Ê2šK%€k¯áù¤#µ ÆAŠR“ ¥çìœóTÙ_™r¹"åic˜u„ ô–VÂæÁÈ2³q „¼ÁëgI™IDÆd[Gˆô1ë8É."º&ùW!—‚ÿ!¸¹yY9ðlå÷RYÄZå F’¬„^¢ ²² ÚHZJ„ÞµH¼B)&ÞØ-\{¹´‚³U¼~ xX—V·ÎÉ(êE4•¾,ª’¹>¹XÛyÿDf9Ã(Ôä ‘çJ«`¹¸ƒ'ZKûó¤Ü«áPîÏëûî úv÷õ!ú2y¸œ<ÜM£‡Éø×tÈß'v>ë4áþùA51­¦ÿ©˜xÓd3éêVªàÐ|‹¤q' j¬ÔÓ×éäáv|3ù%Ô ¬-Éq3†”rû¾|¤%‘ên|]\0ÏÙÿ]é«Æ—«O!GLñ ê–Û»Ùä#1ÑUç%"D5—E!- Âñn‘9Ca§Ô¯‚bÝõ kP ˆÁÕíÕjÖÈ< Šƒ¹¾‡¤V:GfQ•ÇEc=;XJŽ€Ô… ¤;õÑ\ŽÛ¢ŠFÁåðÙ‘–~® æØ¿ƒ'zl*…_+ã|XÝà ©n #ßÂ{‘¬dúøŽPuHƒDÛJ«QŒÏ2Ûžô¸0Ü·h¯: ßc6gˆI -§¸.6Ù2í@)·;÷_1hµ\¡ËR‡j Äñ;ðèCQp‘0ÊÓÃø2…Ó‡,A9BFÀ Ñ‘{XÖA…‚âñ"Š¶R"i­±J/8pPžPÚ! “Øá ÒVY:ÀÛé4J½(Œ ®¤–-UpÜZä¼8s^ÔG7~î2aF#=¬åozòÌ¡nØõ¿¬/p ¦¡÷¥çJ§éé[?¢O@é«ÒKL^”•\&¦Ôžy=sk…£uƒŽ¤z…±±ÁH—„îË•s<ë¾™†Á\XõÌ^^ø±YºDnÉãQ¤¶Ôµ¾ `d9 aÎH Tã’/­.ßb09‡Q?Š#º7ð;ÏP˜œÕú¾0x̨{ÚlàʱOÏ ÆŒ™b"4^ãÅ…i?î*;•Á©eç›VæSµÔG wðp -xcmþ± 9ĦL†6ÌàÏyàç æeÂþ[¬Éµîó›©9‡Á•âx†¤Öä.Á£k bÚ£. b\¸Òæt|s9¦{kžx´^™¤ÌÑzañ÷@lo Û|Sÿ7ôzÃ^4ŒlïwÙÊdvöÛÙ¿îb:pendstream -endobj -1520 0 obj<>/XObject<<>>>>>>endobj -1521 0 obj<>stream -x}”_oÚ0Åßùçml¤OU[:ií6‘iš4 ™Ä!.ÁÎü§Œo¿ë: ÓˆPÅ÷ÞsÏïÚ¿ÆtEH'˜&(¶ƒ1#‰6Aœ¥ô<¡¿¨º³8¢×|ˆ§W,¾üp›>|¼B”"¯¨H’EÈKPñy1LY ë°×ÞÀ -ó,ÂÍùömþD¡1"Š¡£ -¦àágŽïR•zg1 ‰ŠF -åà̾š‚†PÂÁ[wøI¿>=ÝknÄyþ!Ãíakí›+F¯×¢„TØIWc#ÌJm»7í]ˆ&MÑ”L"MJˆRª5œÆFé l¹µ;mJ†O\--*.KBÁxu©tÓHrÁÉb#œ}¥m.ËàÖÔ?¬B¥MHwpís-,䥴š? p¡ -ÝkÜ·ºÂü~1º»½=Ìg¸î+þ5šÆ“:KYÚ -íuVØíª7ü\å9¡ç‚oWü•è{ÈWò”:†¾uêæu”·¡îKIj¤|aÁ‚€ßôÉJKä=oÞcål+ -Y‘òk´nÔŒ¢Öšâ^ørVt%NøÄ—ŒáQ;qëĆ0P[OT‹š«5A(·ReÃõzp‡FpZ¦UA‹*G;`~G“goH>yUÁèĹ®Ý9ÌNA¨›ôÈv“ Jšõ†úb{‘ayì•-}ÙvŽ.›’·léŠ6 < JQqß8‹ùã¢ß‘ |O[£’¿»qaÀ(©ƒ–{¨ì°£„ΑlŠÉ,cY«ÅÍÃí ¾ý$ -G“[ø-¹ÞyÒŽŽ£t|ÕáŠ8YšdtLPîYRÜ烯ƒ?vüy>endstream -endobj -1522 0 obj<>/XObject<<>>>>/Annots 723 0 R>>endobj -1523 0 obj<>stream -x­WmoÛ6þî_qÀ0ÀÕ²å·û—fÈ€¦[í­–} %ÚV+‰.IÅõ¿ßs$+rŠeÀР)EÞñ¹»çžc¿ôbàOLÓ!&”–½A4À—§¿>üÜ‹ãy4£ñh%TR<â·_´èÍ^ÆÃhÀ›£q4 -+Þl¯±›$ìÈåÝi)I&Þt8ŽæaåL[kï8i'pˆÝÙ<ŠÃÊÙ¶Ö% ݵþ¬Û¶N£!ÛN¶u+·ÛZcw>¦íÝÖžìãh{µì½¹ã3-×Èêd:£eæ’‰/iÿz+vVjšE´åJ0$è~™Òô1¯†Ÿ)S¥È«³å§Þ€.† Ìû¥,WRó'öO½ï‹Q‚«±=‹âˆ~Qy•WÜÑsBûÜnÃE£hà$ÇÁ"ž°ƒKcêRÒAÕ´ˆ<8Ø‘ú€' •öêîý‚*ójMÞ%Øã\öo?ü?¿¦D -éÓáS°÷K>@ã‘ÅGO©( -™uÝß¼×q~Nûmžn›óøëÍõ+Âwœ9¤v¯h%ÒÏõ.T‚RUY­€G›X—”vJÌ ˆ¯n®_L‰¿ü)u@„“Ã.¤(\9œ ÇPªÛ\[Î]±ÊÚX’Yny¥»w›rûú¡?~8ëú]ç…$«ÈÊ”wT„³Uu‘Q¥öTÙ$ÀÈ´Ö¹=t±€ÌÕFÒCåYöpæ`ø›DC È[ÓO] E^IÊ+²[Im -µÅß|Üæªbr¹ š(¬–"ûÑ{·XRs¼¨ÕCon¾÷ÑbÏmû-lÀU·}>“;YeÜTÀ“¯N¦XnšŽÕuåšî˜Ñ77¹z¥|O‹ÔZš‡õXœäð^~µ”úD"à1y{¥?o´ÿ[öþ5Y-ÇtÒV,>/XObject<<>>>>/Annots 730 0 R>>endobj -1525 0 obj<>stream +§¸.6Ù2í@)·;÷_1hµ\¡ËR‡j Äñ;ðèCQp‘0ÊÓÃø2…Ó‡,A9BFÀ Ñ‘{XÖA…‚âñ"Š¶R"i­±J/8pPžPÚ! “Øá ÒVY:ÀÛé4J½(Œ ®¤–-UpÜZä¼8s^ÔG7~î2aF#=¬åozòÌ¡nØõ¿¬/p ¦¡÷¥çJ§éé[?¢O@é«ÒKL^”•\&¦Ôžy=sk…£uƒŽ¤z…±±ÁH—„îË•s<ë¾™†Á\XõÌ^^ø±YºDnÉãQ¤¶Ôµ¾ `d9 aÎH Tã’/­.ßb09GQ?Š#º7ð;ÏP˜œÕú¾0x̨{ÚlàʱOÏ ÆŒ™b"4^ãÅ…i?î*;•Á©eç›VæSµÔG wðp +xcmþ± 9ĦL†6ÌàÏyàç æeÂþ[¬Éµîó›©9‡Á•âx†¤Öä.Á£k bÚ£. b\¸Òæt|s9¦{kžx´^™¤ÌÑzañ÷@lo Û|Sÿ7ôzÃ^4ŒlïÙÊdvöÛÙ¿ùË:xendstream +endobj +1549 0 obj<>/XObject<<>>>>>>endobj +1550 0 obj<>stream +x}”_oÚ0Åßùçml¤OU[:ií6‘iš4 ™Ä!.ÁÎü§Œo¿ë: ÓˆPÅ÷ÞsÏïÚ¿ÆtEH'˜&(¶ƒ1#‰6Aœ¥ô<¡¿¨º³8¢×|ˆ§W,¾üp›>|¼B”"¯¨H’EÈKPñy1ÌX ë°×ÞÀ +ó,ÂÍùömþD¡1"Š¡£IÊ +~Vàø.U©w“¨h¤PÎìû Ù!h%¼x‡ŸôëÓÓ½æFœç2üж־)±hôz-JH…t56¬„Ѷ{ÓÞ…hÒMÉ$Ò¤„(¥ZÃil”Þ‘À–[»Ó¦døTÁÕҢⲱô(ŒW—J7$œ,6ÂÙWÚæ² aMýðÃ*TÚ„t×®1×ÂB^J«ù³WªÐ½Æ}+ +ÌۻÑÃ|†ë¾â_P£iL0©³Œ¥=¡Ð^g…Ý®zÃÏUžêp.øvÅP‰N°‡|%Oé¡cØá;P§n^Gyê¾”¤FÊ,8ð@Ÿ¬´DÞóæ=VÞÁ¶¢) ¿FèÖIÝÉ(j­)î…/÷qàaEWât€O|ɵ°NlµõDµ¨¹Z„r+Q6ÜQ¯Çwh§eZ´¨r´æw4yÖñ†ä“W…܉N¼‘ëÚÃ섺Il7Ù ¤YPo¨o!¶–Ç^ÙÒ—mçè²)yË–®hÃÀ“Ò ÷³˜?.úÉðÀ÷´5*ù»ÛöŒ’:hy±±‡Ê;1Jèɦ˜Ì2–…±ZÜ<ÜÞà‹ÑO¢p4¹…ß’ëç!íè0JÇWýþ÷ ˆÓ˜¥IFÇåže!Å}>ø:ø€yFendstream +endobj +1551 0 obj<>/XObject<<>>>>/Annots 730 0 R>>endobj +1552 0 obj<>stream +x­WaoÛ6ýî_qÀ0ÀÕ²e;°iÓ Ðt«½ò´DÛl%Ñ%©¸þ÷{GR±"·X šRäßݽ{Ç~¤4Ÿ”æcšÌ(¯£d„/½ûy¦‹ä’¦“Ë$£ŠÒſê¤å`‘ñ2'#ÞœL“I\ñfwÝ,cGþ,ïÎÓdJY6 ¦ãi²ˆ+oÚYÇYww +ˆ@<ƒCì^.’4®¼mg]ÑØ_ÎúÝ4cÛñ<³í,c[¿ò»5vódÞÝí¬áyÄ>N¶/Wƒ7 |¦ÕYÍ/iUødâK>|µ{' -ZŠj-HXt·ÊHz¯êñG*t%Týlõa0¢‹qóa%«µ4ü‰}§óàûb’ájl#ò„~ѪVõ–D wtíÐA¹]¼h’Œ‚ƒŒÒ4:@Ä3vpemSI:ê†vâAQ²Ò<°÷¤Ò½¼}»¤Zà¼ÞPp öx—Ãåëw¤O¯QAÂHúpBøìÝŠO#Ðtb ÑS.ÊR}÷×oßôœ?§ÃNå;Àæ<þzýêÂ÷œy¤î i-òÍ>V‚r];£ÇØXŸ”nJ쿼~õÅ”„ËSD89îCJâ•ãz ¥ºQƺòøÜ«j¬#Y(Ç+Ó¿ÛVëØ7÷Ãéý³¾ß*%9MN– ¼§"ÜØnÊ‚j} ÆÊ6VæQîØÇ2×[I÷C”SÅý3#Ü$ZJ€@Áš~êc(U-IÕäv’þÚ–z-Ê¿ù¸Sºfrù Ú(¬‘¢ø1x™vXSsº¨ÓC/nZ¾ÑbOm‡lÀW·{¾{YÜTÀ£6'SLÙ¶cMSû¦»fô͵2@¯Í‘ïéÚH»ç°ʳÞÉÏŽòHä!<%ï ÍÇ­Ñ ãËÞ¿&«ã˜ÎÚŠ…'&}åv?\¦¶ïùß±UЋSw÷9ò'4ÅÓT”VuaÛ½0P(a?`Yçæ¸w8`-0žÅJÇTvÝs”gÕ±`éÚ€žžJ ´AšD µS¹pܽj1>H(*ÝæFÕÐ%4Øh_éBmŽ`¾èÒÐ +èÿ\¿3÷\E&gБ4þîéI§°«D‡så|=Œª„9züªúE8(H†pNV¨²Éú(rÇÞËp/½¾ +íøó¾.îø‘‚Žö. óŒÞŸx„rR%Žtµ‡a0Æ‹‘'k© ‹­Aïz\d÷,$¤Ø¢Ö6°ð”{¢Òhûv@ŸW%8\ î~æD‚¡yX®"’ ØÉêPÁ¤¯Xøøj¡ÆqÝ™4lÉ òöx +7äÂ7·ª—U˜¯%}],ÏùóC`p+—O¨¯èÖ.@ý²Ô©AÊϨ?‚ã,¿ *É’¦l…OÂq7ZÚ„VŒ/x"‰· ºsmï\X×®èZ$€ÇúûÛ»%‰µ@FÚºr†6 +o‹ó*Å´Ÿz\lñ¤²®_½Û.cs×ø +ñ3ÅGüv&-Ôˆ ×U…WMÌn+BŒ­Ýw!ŸiTxϧxb†×0ËŲíÚ‹ßÃéu;6¯ +46óäû¶ZOKt|vµú©wÂà‹Âû5b`Uôʼné»rõt2VhÀÀPÔŽ_VLôIžKËúÉ(lûdc»èdyõæ±PE¤*¨Wþl¶}KˆÃvð”z‹²øñÃïÉ6!_êš‘êÊpz2ÆZ2~V¹½Qxÿàí±–Ljýp8…“Ð-«¢Àm|ø›¦ -Î"h¥ª—‹ŠoÙÊÈŽËÎC% ÏíoþOZ¥}øgó,™Ï.¦ .ÁëÕà·Á?5¢…endstream +endobj +1553 0 obj<>/XObject<<>>>>/Annots 737 0 R>>endobj +1554 0 obj<>stream xWÛn7}÷WLŸìöêjI.P¹¹HQ§®­6-àj—²˜ì.7$׊þ¾g†\Y^;EÄÐ^È9sæÌáì×£ ñoDó1Mf”WGÃlˆ;û?7¿¦³lN³ó‹lFæçû«’nù}šÎÎùïbŽ¿cüwšÖò`2ŸaQïÁx8ÉÆ4^L³öO‡Ø/^ñ~‡×üô¢÷ôñOçÙä`-.G4ž0³iºâ¯ñt:ÏΞ¾Y .AĈ–k2[ÌiYCZæ'¿ZSë‚ -[)Sӻ߯²WËÏX1M+NÈ:Š·ºMº5Ç·ïoþS°àE•_ýsóþõoWÇO·ÒÙxÄËâ!v¶u´«L­JÚšº°ÛŒnµ¦°ÑTëpw²¸{E•ª©Q÷àñ+ â ”)½à;Ør¹1žgsí=}F6^6òÚ=h²|•²Ûš°±m z0õ=?Ë<ÄÈ•Ê7 ‚‚k} •ç¶­ÙZv»~÷–sBØ—™¬4€éª‹å¶BÝ[Íxœmï7²S¦ Ð(ï·Ö”c/¤‹L‚ÍmyÊo×´u&ÈLÍ–îNvµÕÝ«œïnËô¦èVU+E‰S#yEkSjBM˜y¯*plœÎƒu;¾»Ý˜|C¨ƒ¯V³½È[Û–­°ÖAIgT[W©²ÜÑQnŠ6h½”6WåqWjÐ8ó€J ¼FI‚ÏB±Š‹;,–ŠGè>U°Ì‚ì–¥¼Ú‘³%Ää]ã'ª\¨rÅ3UïÈ"aG-ÈÈèCà·˜/z—ô’Úá¬Ôºìå „-Š²aŠ˜ýÎ]J@E:‚H À€Q9½n™\ ÍCÝ©òœJ_D—ÜåîÐ}P.Ķ‰5,”®,d.úÒ1»'/®²±(È=JØzz’‡ü‡Èì/zÂÙdÛs‘ÑŠ"Þü“4§§ñÎùNÂ?¯ÊFˆ†¸bbmÐŒÓÈõ ªáô½r…´‹,p»Ùu rŒV¦d2¸Aš&7 ¿èê¥ðM]F¬Ø"j(f]ç(>]éj…:'Í#joÏÄ‹m´S!"le¾5š¦Æ-dQÙb_œ.êR2Ñ ‡´œiÓ ¶L:„E—S)Í!{‚{pù"å“Œ>mÐp,BüYéwÄon¼Nk?¥$~þ.ýo[çP{–L¯ÜœŲ>´vp[H?lõÜ ¥/éÏÚ|“99Ý@‰ÀÒëî#P‚8¨øjì ±àŒ¤_+­Ä™ÚmÝAä•ýÃGÐÝOS=IØ mì†^ž=T1åX{1S!µÖEêh¡—'ÓRð懹®€‡lB -÷kìù”›‘®88pòìțʔª;‚È–’íP%au=¯ò)¬Wn|9,» ì’^¶ª¼ýÕâÌrúk ãàl5ÿqÙµBÊƳåoU²¥N¯ç,ÿýÕ"-êT];vÇûu©•×ˆ¾fËÑË­à#ho´™˜¦©q(U(°ÂÅ@l`3œFtKoîkúóㇿ©5¨œ8ÿ¶§ƒ‹£Q%éÊ -ÖøT«œg³xÀ0!Ž2 -öyÛT¬ïNØ|™Ùš [àg§½ +Ì[S–|úU0‚¤žHÂ~omÝ'ŠDª<
¨åxà< -B`Ë–ÇpÊ; .Ï÷£÷3ÿ/t3Ñ A·pšÈz xbÝyƒHø‹Ö n涮1ÝqR8ò iÐ>ê#Á‰‰“¶Å^¥Å-Þ“‘â•Êc^‹&Ï%(H0‘ñ:θ«€äÊäÎz»½àûâJ§ç -Ö …1P×4Úñ}ç>€OÿÍ_¬B¿SÚØ-s(Ä‹Ê醭+‘F¨æà -/&Á3ö;èZðŒÏ…Ú°Þ)Ÿ|¢Äq41c¶aÂzd>/XObject<<>>>>/Annots 735 0 R>>endobj -1527 0 obj<>stream -x]RËnÛ0¼ë+æè1­W(¥7§NŠ›Ô|¦%Êf ’®MÚ¯ï®-B €Ð>fgvÈßA„¾YŒD¢´A(BÊ\_߃DJB&‰ˆa‘ƉˆÆ¨Á†û!c>-âLÜŽ—&!á‘Mj“Ð"Äݤ6 -¢(rR¼/‚ÅcJi5)—y†¢: Q”³¥«P§šæï TÙ·‡qè²V9§[¨Êa] ÓíŽêp½)Õ Ñ{(¼¬¾Ájå:B«ž!GÕöð5OûR¼!æ›RT³)Þ;´úÈü̺Qv§.4{Ýó4xa*¦¬O¤2®ö­%ôß å¯½›§Õy^c:Öð‰Ÿ6Ù·~8N;Ýx·§„¿îKÁˆÅ£¼:7¥HYûúgñðõ\½ø:Ã3 8¯Š^Œk›•/KºñNòjÓ’šã°#U]]œÞê½WÿŒÓøaÜð±õmS]"MÙ|¶påù®xáõÓfA œeç£ìHf"Ìä9+ß,Ÿï—xiý›.{¬Fe'yŸù¥{ž…wÜŸ‹XŒ¢èl«ü{‡8¤'¿òV×1.ÍR‘Éœ^an3N=Ákðþ™è™endstream -endobj -1528 0 obj<>/XObject<<>>>>>>endobj -1529 0 obj<>stream -x+ä2T0BCs#c3…ä\.§.}7K#…4 Œ™¹…BHŠ‚žP$YÃÓÓSOÁ¿ $3?/1G!9?/-3½´(Ä× ÉjµP04„hÕ…è%¤ÅÄÜDÏÜÌhWHŠ†©È×®@.0s)§endstream -endobj -1530 0 obj<>/XObject<<>>>>/Annots 780 0 R>>endobj -1531 0 obj<>stream -xZKÛȼϯèCÎÁ²(>$mï:kÀžõîŒãA´Ä1–H…¤<žŸª¯Åî¢f²0P*~ïG7iÿç*qsüIÜráÒÂmWóÙ¿„¿~ÿÛÕj¶pùº˜ÍÝÁóY~{ws%ðà–ËÙZ8—,È{-T ¶H'jƒ]åÁ“|p‹dj6_PÕj1[ÁÝÕŠ. ¤çŠõ¬ 7'g€œ@˜Lç³¥ŠÁf DƒÍç³TYÁ`—)ƒ‰²‚Ì"ŸeÂ*›§—×k†šâ"ˆñx2£5HÎóYârC‘D¬i²N¨ÖP$“Â2¸HVŒÆIŸÂy*)4@ΧðÌ%  ¤bØÌæPŸGV0cI™þÈ -¦¿ÓYÁ쇄) ¬b¦0c–"+øàÒy1±‹¦_¹l=÷ FægÄhÁp*gúg vU ‹Â -¦ËKT'²Þ,懥;›1$fG¶XÒ©È -¦Ù”Ö+.˜>)'%3dŠƒÍÖô8°^­Ì±Jlñ̉ -‹Ž„Oõ¢éÒZ&A‡/\fÈ‹F Q,d1°ÖmÙ"³,M­J -„`²Fåü“¦V0Õr+,öÒ+æèp„"«˜¥c? +lVLYÁ`—9R"²‚Á¢«ÕgÅèÔŒÓeƒ]sA +øà2Œ´ÚU 6O&š} 0TlF¬-”dz,%Hi4ŠÁ¢`4²‚Y‚œå‹¬`¤ÛK5+»(X¾ «,z)SV0X”iŒ²‚‘ÆdjW1X,LH1ØeÂòÍŠ‘äE:ñÊF$]¯&Y@±G¾—#›r|… ³ž(+ì:E¸"+اy%,ÓIóD`vn¤!s™çUŠdrÙ ¸” 'ðà°a2p¡…D,T 6å]SXÁ`‘xeƒÅý3w#RmªY1³Äã6jV Lu°‹ŒâDæBðU6@«¬V ƒÍ×t8²‚Á¢O‘áÈ -†K¸-ÂáÀ*»œ³Ù"+؇£šÞˆ9–Š «˜ÀkiÔ¬˜À戬ON4»î'ôصŠI´ÒN “h›.ŠÁÂQôDdƒõGV0SlË-²‚Á $1²‚‘DÜHP¼À*‹ABšë•ÍUà[Ä@ì˜3ÇsáR1\B›"¿5µ øÅq5µµ#çÕDR1ÔÚ!-¬`]è°‚}reÑ>xzIj^àêàR ÖžÖËœ6°Ù^2YÁ°‹E -ëS´Û©…W…¹aåLT°w -ŠíÙÑ©ƒMs*Ž¬`ºÌÝ(¬`8…u…pƒ¬w*õ¯´~. y§ø»Ç4Ë›°‚Á"vd9Ê -‹óNEV0+Ä>Ž¬b°pVí*‹ - -šcÜqÉR¯|¸hžxzð¾—k`Ꭼ/²‚C¸‘õᎲ>¼È -áöîYv‘ò£CôJ1ÃåK»°‚.^¤Ð'A3F³Ó±XF,®@L&ç>rª]B#©l‘0ÿA­b°h>¸YÁLÄÔ%Å`ñÖŽž ²Š*ßØ"ë+;÷Ÿ$ðÊ ÎC—pg@~©¬Ÿ¥ÀšZ¾~ÛÐ&|½ôÈæC°5Ö‹âûŒ}-b,üxSX«a‚xË…T ÖÎÜ(ªIšóã‹°¬8_ƒÙàö*æÝŽ½.\„0‰õ©˜ñrEƒµ - +Fÿè’b°1uJ1XÜn4‹Ídƒ…õÊ;‰©´%&JmE-ΓÎ#À¿ -Áe, „k/BVVË¡òÄáá ¿§bjø«pæÁüü¡Âî‰!K>I»g ^QÌž*¸m˜«vë6`\„³×ËÈ™\AÅ ‚#lÀÇ 8Üž×ÂEHÜÛQ.Bä‹$œ@pø^˜D.1_ð5ÌæÛ_ç¼/šŸG.BúÉ7ÈE{˜5|—åÒOî ÈEŽ£œ÷3;¿ñ¤öŽÀû |? Œ\„àÖö±.pÒOÆä‚C£ñsÁY§@pØ üÐ0r‚ÃñÁO#!ö ìñ›Ê™óñáeÓ8´4V/@Æ—¡ß"!8\ä±?ƒ\„ŒÏ.#÷æöêÕ;®Sw{‡(–+w»µïÿøeóâ}3tíö´ê¶ùëí¿ñ,&8ñϾ„ž~qS¾–nWö®¯¾W]¹wwU9œºªwîÜc{r‡ú~7¸‡²\ÛQÓžZwê«™»ÝUn³+CÕõ®n ]÷îXvƒ«ÊÍÎmZh§s÷ÒNØn›ÊõÇjSßÕ›ÑìÌ{ºOyEÀÓ·å×}åÚ;÷¶m†ªzÿ$vÖÓ¨w=sˆ½ºïÊ¡nîÝÇ÷¥n¶íCïšjxh»o½{¨‡³Ø©ÿzœBçÍÜëûªÙ–îâÎ:s×å¡r¿W}»?1¯Œ´tGäË}nê¯>ÔÍ釃ýö©b\´fÎ{µf^¿xU ›W»¶ÿÃp°0ŸD™Úý÷Ù¦mî¼Þg³+Üóâ´ûçÂÙóÂMß#‹›Ý3 -^N -ë–6óÖ§ ý†®ÙZ§%Báž&›Û7Úu5¼yÿëWûýUñai-ìæŒMùáã/¿ÞÜÞ¸»zoO½¼x ÞM¸àþO×7îCÛ~;Ÿ1“ÏÜ—÷“.‡‚_Ú÷µC²ïNÍdïÊfëv 0CÛê¸o]?X—“À/lB6}=™‚зOᇤ±¯6§®]{dŸNl±]ê{ö¬Ÿþ;Lu_U‡}ÕstÏ“ã—Æ´’8vfîs_©¥ë[‡j–˜ƒÓ°Ã\ÖŒ&£¯ºóÈO3Žoð´ü6Z/Ý¡:|­:Ž6´H ÐÂض‡²¶5v4ʇ…0‰çÏÜ™ÆT˜‚͹EžXàIýpô¹Ï×ïÿá>UÝ¡îù{S>¡ã^§¯7¦Ë©k÷îC}i5]Èßßëê}À"cc6÷fâLp<ø32ê&i¨Ë}{o^J 9e“¡“¾C½5{L\.ϵîwew9,GG·8'®}h°Çwµ5¼ÖÏ¢Ÿ§Ïvn[wÕfh»G'!\ί‰"þw4³ùL081tAçų—åaã·Ûúîц˼ÿ.‚AõyVt¥¤?˜t "†¯ÛžÓ¶ép*VîPößx¨áà9w± àòÿSg9.‡¡«¿žLíñçŸö²567ƒûôú£ã°nÑ\^të Àm0v8º÷p°)ï±W§³ø¤ ûÐ?»z/CÁ…˜%ˆv^O¦ûéãè º7ºëwV{øNˆiå¬e{;¢K÷±ÞtmßÞ £Ö*7ýPÜÐUèËÆ»ý$";[ß7ð×_x¬6“Ùãˆúº*#_â¿M„SW÷©ÃîcšoNÇcÛ OlØñƒn™Üªt íÌ™dàæé[ömýóH«ù×eB© - º©{짮Æ2í­ú?ÿ@Y¬(úLRñœÃÀèïËî¾rÍi\³fóbº_o·T=b9¡áïuiËH7Þ§/Ïyq”Îò.ºOȧeýÕ;¼µÙÕÇò v¹»Ìj†×e±Â­7¿|M;?ß^ývõ_-Pendstream -endobj -1532 0 obj<>/XObject<<>>>>/Annots 832 0 R>>endobj -1533 0 obj<>stream +[)Sӻ߯²WËÏX1M+NÈ:Š·ºMº5Ç·ïoþS°àE•_ýsóþõoWÇO·ÒÙxÄËâ!v¶u´«L­JÚšº°ÛŒnµ¦°ÑTëpw²¸{E•ª©Q÷àñ+ â ”)½à;Ør¹1žgsí=}F6^6òÚ=h²|•²Ûš°±m z0õ=?Ë<ÄÈ•Ê7 ‚‚k} •ç¶­ÙZv»~÷–sBØ—™¬4€éª‹å¶BÝ[Íxœmï7²S¦ Ð(ï·Ö”c/¤‹L‚ÍmyÊo×´u&ÈLÍ–îNvµÕÝ«œïnËô¦èVU+E‰S#yEkSjBM˜y¯*plœÎƒu;¾»Ý˜|C¨ƒ¯V³½È[Û–­°ÖAIgT[W©²ÜÑQnŠ6h½”6WåqWjÐ8ó€J ¼FI‚ÏB±Š‹;,–ŠGè>U°Ì‚ì–¥¼Ú‘³%Ää]ã'ª\¨rÅ3UïÈ"aG-ÈÈèCà·˜/z—ô’Úá¬Ôºìå „-Š²aŠ˜ýÎ]J@E:‚H À€Q9½n™\ ÍCÝ©òœJ_D—ÜåîÐ}P.Ķ‰5,”®,d.úÒ1»'/®²±(È=JØzz’‡ü‡Èì/zÂÙdÛó"£E(¼ù'iNOã!œó8„^•9Œ qÅÄ6Ú6  ¦‘ëTÃé{å +i7Yàv³ëä9¬LÉdqƒ4Mn~ÐÕKá;šº.ŒX'°EÔP*̺ÎQ|&ºÒÕ +uNšGÔÞž‰Ûh§CDØÊ|j4M[È¢²Å¾8]Ô¥d¢i9Ó¦Am™t‹>.§RšCö÷àòEÊ'}Ú áX„ø³ÒîˆßÜxÖ~JIüü]ú߶Ρö,™^¹9«$˜Q}híà¶.~Øê¹J_ÒŸµù&-"rrº€;¥×ÜG "qPñÕØbÁI¿VZ‰3+´ÛºƒÈ+û‡ Ž »; ,ž¦z’°ÚØ ½<{¨bʱöb¦8Bj­‹ÔÐB/O¦¥àÍs\ Ù"„î×Øó)7#]qp8àäÙ‘7•)Uw‘- $Û¡JÂêz^åSX¯Üør4Xv @Ø$½lU x5úªÅ™åô×ÆÁÙÞÚºO;ˆ*TxÄSQËñÀy„xB‚Ы0£G~a k`pȈj{¨6ÂK7×oeô¨uÉF¡¿Á=ÙÌØâ:yÀ‹ø8…³uŠš,,™ð¤¿;yóìÕoŠZμ'Ÿ:8Ž\N—¢ ¿1pÖïaÙcðÈóÉtv*f–¡*ŠØ5½œ£ ð®Ò°2L¡9æ8ö²JäÌâ´øáVJdâ—¸¥‚ºŸ.Æl(Ò­{1» /ÅÀk}|À†;-á”w\žïGïgþ_èf¢‚ná4‘õ8ðĺó68‘ð­ÜÌm]cºã¤päAÒ }ÔF‚1'm‹½J‹[¼' "Å+•Ç¼MžKP8þ`"âuœqWÉ•ÉõvzÁ÷Å•NϬ +c ®h´âûÎ} Ÿþ›¿X…§´±[æPˆ•Ó [)V"PÍÁ^L‚gìvеàŸ# +µa½=R?5øD‰ã"hbÆlÄõÈx̎ѵ#1ôáHåA…5÷ø|/Éøq4¸\$føp]Lh6â“CÚíë«7¯éÚÙÏœ2oÙפí8úY·àl>¼à÷ÿç@8O³ùlÏK¬™ y«÷Ë£?Žþ`‘öËendstream +endobj +1555 0 obj<>/XObject<<>>>>/Annots 742 0 R>>endobj +1556 0 obj<>stream +x]RËnÛ0¼ë+æè1­W)¹7§NŠ›Ö|¦%Êf ’®MÚ¯ï®-B €Ð>fgvÈßA„¾YŒD¢´A(BÊÜŽ_ß‚DJB&‰ˆa‘ƉˆÆ¨Á–û!c>-âL|.MBÂ%"›Ô&¡E‰å¤6 -¢(rR¼/‚ÅcJi5)—y†¢: Q”³•«P§šæïTÙw€qè²V9§[¨ÊaS ÓíŽêp½)ÕÑ{(¼¬¿Âjå:B«ž!'Õöð5OûT¼!æ›RT³)Þ;´úÄü̺Uv¯®4Ýó4xa*¦¬Ï¤2®ö­%ôß å‘o½Û§õe^c:ÖðŸ69´~8M{Ýxw „¿ƒîKÁˆÅ£¼97¥HYûæGñðåR½ú:Ã3 ¸¬Š^¿k›•/KºñFòjÓ’šÓ°'UG]]Þé=}PÿŒÓønÜð¾ómS]"MÙ|´píù®xáÍÓvA eç£ìHf"Ìä9+ß®žïWxiý«.{¬GegyŸùµ{ž…Kî_ŠXŒ¢è쌫ü[‡8¤'¿öV×1.ÍR‘Éœ^adÄ©‡"øüþ§è•endstream +endobj +1557 0 obj<>/XObject<<>>>>>>endobj +1558 0 obj<>stream +x+ä2T0BCs#c3…ä\.§.}7K#…4 Œ™¹…BHŠ‚žP$YÃÓÓSOÁ¿ $3?/1G!9?/-3½´(Ä× ÉjµP04„hÕ…è%¤ÅÄÜDÏÜÌhWHŠ†™È×®@.0B)¢endstream +endobj +1559 0 obj<>/XObject<<>>>>/Annots 787 0 R>>endobj +1560 0 obj<>stream +xZKsÛȼëWÌ!ç`šx$~¬³®²µÊJ§*•DB"b`вþ}º¿0 Š»ÙÚ*¹Zïý˜´ÿ½ŠÜÿEn»$s›ÃÕ|6ÇoÆ¿þí*Jf+·Xg³¹;¸Œÿx°w·Wn•ÌRá\g³…ŠÁfë‰ZÅ`×óÙRe\OÍ.VTµŠáôÁ­Sºd€îzÆ2p«Œœra2Éf±ŠÁ¦K3Š*»X0a v¹b0Œ`’ùl-¬b°‹õÄåh¾`¬ BÍшPϦ "l4GÔ CÂÂË­—ÔlHØ(³,2ňÈYŸÆy"i4@Χ±ç¢ÄGR1Œ¦Ù,q‹À +‹¡L‡×,A`3ØŒiYÅ`3-¬àƒK¢xjwNœ¢ç,Éq»Y¢Ógö¢°‚és„4 ++^Å1ò)¬·»\Zù"oÇØØeL¯+vWkäYX¯9K}éLjÈ4 †ì"¥Ïõ²‹¹5F³ÕSCÞ«€™ ËU`½l²´¾‰ÐlK—òv¦,›:°ÖriÌqÆäš^”A¸„r¤bª]1 vEׄŒÍ9¹UÌò±©„ vOYÁ`A¤²‚ÑóùÄgÅ`±`W1XÌ5cŒWñÁ~¯vùÜ€Áb¯¨f_‚(²~\.X,@¤1ZÑèH* µ0XÁ`1(_`#QXbªY1Ø$bùFYÅ`Ó;AXÁ,Á’ÁYÁH#Š©vƒÅa¡)‹©DËš³«‰W‘ÍH²æL"Ø ŠHäç+`° w °‚ÁâÔË”Ì<¯¯È +fž#øXÅ`1bê•b°¨Xª²‚™IÖ(hîã]qË0^p‰!oÀ`3‹>°‚Á.¹¡EV0¼ÂðÂî(«˜ñ®QaƒÅ)6‘ vÁcWdƒÅ ¹ +v#ègäydƒÅ5C½R ÷+õªÏ$.¼ÜD)/9‰!ˤ`°èØ ¬`°ð½XÁˆÈgrdƒ]¦ô9°‚á3.,ÈÆÈÚJIðÓŽÖÈHCæ2[’rsNðäö—¼ÀÁ[ôA/E)#5dJ#RTXÁ`—sXÁ̯˜Â +F0#ªY1Xtî„ w(tÔh×g)á ‚`¹”ŒG \µéIÅ`q{TQÅ`W+f8È +†K¸7Âá‘U £¦vûpT3Ã0[ÂR1jVÌà©ì*‹cgÐÄdøDáôá.±[Ab€œ@$ÑJ7r™DÞa‚ b°p=1Š*ëXÁLqÂÙ¬`°ðI ¬`$G³z¥¬]'‚¬O†«À·ˆÐ1=áåጤb¸„¶D~GÖÔÆð‹ãjj=ÕœWHÅP‹wÁ›‘z(ª˜FyïV°ÏÃBY;/ã%e¨9ÆÍ#¯9`°ö”°^ÖÞaÁbÛ®0™œ=“ »sî‘ÀúT ívlÍ)Ä"¬¼¨`ïNl² âÀ +¦ËÜ +†SXWw”õNá`'ÀœÿƆ,Á4Ë^XÁ`íWXÁ`ñ>§‚fÁ¬û8°ŠÁÂYµ«,îJhÔ¬ãŽ7Ô~d}¸h&;=|x†$ÜõáVðn`}¸ƒ¬/°‚ÇpG¶·—ñ2µFJè#½RÌpyV0ÂÅ¥}2ÊÚw˜?ÙéX,H£êˆÉäÜN Bµ{h ƒÅò?ªU Íw+˜‰˜º¤¬½ YÅ u=±ë+‹÷;ñø^`¨öñÇC¸„ª#¿#©¬Ÿ¥‘5µŽZܽÖèe"kÁ>ÖTX/ºì?yð-?2@IûÐå!S&)ŠÁÚ,¬`$iÑ¥Q12½BMü—\+“ШÀ¾¡âþAã„I¬ïHHÅtˆïAT1X«°°‚á.ziðfƒÅˆ©SŠÁâvƒZl&+,ì¨WÞIL¥-y¤™0DQñ’ásï"k9´QBž8<‘r15œ6á̃yÿ­Âî‘!$i÷LäÇ"‚7¸m˜«)oÿŒ rvçœFøaï}hÜÌ0¹Y6Ià¤N¾î.@ä‹$ œ@p{$È™/öå:±oññ×ïËÁ¡Ù#᤟Œ=È{˜5|nt +¤ŸÜA _ 9_ù´ãÁ[8ßà‘8ïçá äø†>p‚Ã'~¸é§}8àpñ½¾—#ÌÏ# 8üJ1pbžúâ/(ýë«ŽÀÇ7BÆ—¢ß 8\ä±?G¹Ÿ]>îÝÝÕ›\§îîÈ–+w·µ?à7›WŸª®©·§MWÖÕ_ïþƒg1Á‘ö5 ÄxúÕm~¸ÏÝ.o][|/š|;5Eëº]Þ¹çúäåã®sOyÕ¹ºéQU÷¿éjwj‹™»Ûn³Ë]Ñ´®¬ ]¶î˜7+òÍÎmjh§s÷ÚN$Ø®«ÂµÇbS>”›ÁìÌ{ºOyãé»ü~_¸úÁ½¯«®¨ºÖ?‰5Ä4èE·:_<6yWVîË­ûZVÛú©uUÑ=ÕÍ·Ö=•ÝÎYðTƒ¿¥Œ^A:š¹·EµÍÏÏÜu~(ܯE[ïOL-ƒÍÝ)s¿Uå7ŸËêôÃÁÊ~{A5.[3ç=Çj3Ï_½)ºÍ›]ÝþqH¸Û_–D­êý÷Ù¦®¼âË)ÁEî²<-ÿ éô²tÕ¶ÈåfwAÃ보¾åÎö¹Cß¡{¶Väñe¥P¿ YÄ +÷w]tï>ýrëõ¾G£|Zz %Ã!âþüåç_nïnÝC¹¿øü›>ðú\rðáúÖ}®ëo§ã%K‹™ûúiòÄy âçúÉÝ7hG6çé² m]^mÝ&j[÷õ³k;ëyø ’#0ŠžLÁØÄSgá‰d³-6§¦ìž]}dÏNŒ±qÊGö¯_ò¶(û¢å$÷säwÈYEq ÍÜom¡¦®ïªšc(NÝsZn0…“¶húp–V|€¯ù·Á~îÅá¾h8ëP#Q@õȶ>ä¥íµó¸QF¬ˆIHÿÏ¡³°2Ó°Ù#ÁÈë<­"ƒ¾þôOwS4‡²åCî]Ùù¤›¾¾Ýl˜B޻Ïe?ákøSÂÌý£,žØ ¬4–hõH`&Ž£ N +¤ºI"Ê|_?š—š Üh|§¡¾C½u}H\Îûz·»¼y1¸½·80®~ª°Úw¥õý¤„ø€|þlã¶eSlººyv‹Q¦(âÿH!›‚Á‰Ùuž={^6½-žmÂÌû?ðè,TŸ§G“Û\ú“‚IÇ4b›mŸ¶Mƒƒ²p‡¼ýÆs‡¾ó¥€ËÑŸSg9λ®)ïO¦öx„ó/{iº›Áݼýâ8°[4—Ý:(pLNóý3¬òG¬Øé8¾¨„L~° ¡÷<;€>ˆ·“ù8:ˆî îú5€-ßîÇÓbZ9n`œF ,w_ÊMS·õC‡º‡à¬UnŸÛ®8¸®)ЗÕïœãvH|ª êï@V›Éìñ tßuÝF¾ÆÿVîhê›ûÞÜžŽÇºé^dͺÝ2¹héZßN2pA‡åþ=û‰¶þu¤Õ¿üû<¡T…êß=ö¡)±O[«þO?!kŠ^hCÊ"¹}Hî>o W†Ek6G‰x»ÝRý5öˆå„†¿—¹-#Ýx7_/yq”Îò.ºäÓ²þæ#^äì&dù·¿)á¾wžÕo$Ël…‹.È,¡Ÿî®þ~õ?î‘ +>endstream +endobj +1561 0 obj<>/XObject<<>>>>/Annots 839 0 R>>endobj +1562 0 obj<>stream x}YÛrÛÈ}×WÌcRaqù”’­ØQ²ºD¢ã¼‚$$aMZ”jÿ>çtƒ˜Iom•ä³gº§ïÓ¤~¿ˆ\ˆÿ"WÄ.ÉÝj{!þÏøãñëE6 B—Ïrüܺ¢âlÜÓ…[EEÒb°Y¤– cª*â`½Q<[ 6™Q³œÖ`°³: «š³ySsš‘ˉ¬Á`‹NÖà­‹£0( k1Ø,›Êê½i?¡9Ž‚Ìå‚Ô#Áæ k0ØyD¼¬jNÄhÔ,Èh>°EÆ|yÖ`ئ´yd5¹1NÅaÆ Åzm˜kŠržÊy6›'æ, æN‘°CóŒucXƒaTNeåÞldi(Rw=†æ<ƒu†5lÁ"0¬Á´ŠEmXƒ™|Ò°jUNO ›0ù™ ±Ê`°ékXƒyïk0SÄ’ô²3V1JÒ°ƒ…=“{Õæ,Õü"³È‘ ¤Ç´™bXƒÁfÅTÖ`z4£U^³Þ›†Z9z¯ sïÕ{sÆCU#T>ú!äIID ‚†( £Ä6ñ¤ÅŒR†B4¬$5EÛë8HÑxŠ¨8J<†, Dâä¬7)fè`_‚T€˜ä!M¢Ož´˜jù¤VMÂü'5e¦‚Ä$ƒ!‹G×zÖ`&N’>²3qìv#+÷&sNDh–{ù{Glè k04£P3ÃZ 6‘#«÷¢ åÁE±.$÷ «ä]0¬Á`QlÐìeUs>×äf!~'‚D³Á° kÏÌ°k¬RÃFª9Óu*Š¹,$‚D³ÁŒ$#jXƒÁbùŠ,k0=bYƒaæ)²àïU«ÒaCö!+H#é1ïõˆ¬4_ÛV$× Qƒ!ª)ñ¬Á4™«šDVŠ†}JÖDaÃa'B:a² ÏÆóa±I -„Y‘°Ó¡4¬Á`åqö¬¸ÃN„÷gîQ±’ù°))Ho…{1j‡Õ*-¤`,FŽ5så¤ ƒ¢unXƒÁ¢FàÌ(«Á_™RPs0§8eXƒÁʃïYU,#¤*dØ„ûNìYƒ©8D•Ö`°èIø3Ê굈ìð @RoÅ«p€ÄöRÙç2£Ä^EÞÞ‘ÅðNe&äNXƒ¡XÊc*ÃÎa3ˆYÄŠDÖ`ÅÉiXƒ©9²£g±yGFÖbvô|r¯Å`¡)·²ƒEŒ­ÍªB×Ì–HŒ=„ÁøÀ“FÒb°(L+j1CÑY/k0CÁÇѳj’üÄë/6ð& Ü`ÂHZ µ¨-¨õ¬Á`±3À`ÏL–Û—e=füùúxV”p¥–:½¼Á78’{V >Ȫž5x4Ø°bð Ë7ÈÝȪÁ‰îPó鎈ÁB-vbx:’ƒEo#ž5˜î°› k0 æÇ|ÃŒcc¶šÕàˆ‹8JB:V€ì! ––I‹Á♃ZÏ *ZóÃ$Œ”ÄÈbÔ¢)8lñ!zÐ$¡£jGÒb°H#ºÕ³3ÿ‘•KçºKFx3'€wHGçÈ›çøÁËë_Ž$úoJy$Ëi謪‚:|¨K=%ÙÀ#ì7pb…,äK0¾EàAá<„J™Î#'*eÅE~¹‰É¿)å„ð]?¨ÁQˆÉŽ]mXÜäã›ÏaÅ’/;>áÈ}Z\üòAÜâ™_…å³Â-ÖòMXè«¿p–nñZ¹›í[[ïúÎ-šfÓUý_¿]@à'bˆèÉ(pß_ËÞÕÝxþï•Ãð­y¯×ZÃG7áÛ”fÙ¾T½ûÖé‘i9J¦ÿÙ|Ìuß›öÇiYòTÝÖ«¶éšçÛ6}Å»Þ}[¹Ï¨|‘›´åP«^î -%ý^¡ÚjÕ7í¨²ö½^v %Q´wå¶:œqOu¿z=Î!O"A´C‰pWûþµW¯´oÑH›ó R–VR÷µmPé7×îj³iTôÜM¨ØǪÛozx¼zJê8¦Ð{c‡Ûæs³{®_ö­u¦*°*üyߧ=ÞþûÑÛÂÓî㎭ª“Î]оÎÝÍwTðä×z[÷bÐUh6ؼڠœuM½¤ÓÍ;šbÙ¢XôõÎuåvYžø'ÞÝc~¾×Õ‡kžG‘ã‹ŸúºýÛ[Óbƽv(ˆ»(BÎ=×V]³ÙŸ™øÎ=p£Ò’Eܹn¿ÜUÃIdx©`S¬›ªsöôh¶û@Ÿ8GÒŒ¥û~s÷4ŒËSg‘sx4þBðþñß_ï¿=œŠ!7?»¾¿½º¹;•Á<üÒ´+¦IräúcÌ¡Wܶìð(žŠ`4Þ–?Œή›m ó~&‚uÍÝq4”KÌ}Æ«\¯ Þ•ë5tBÓ$â w‹žªßоò@?—ÃL˜ÃÕóÍfŸÿ÷Ë“Ûú枤Ÿã¦Ý$=¾:îAkpŠ à×(éŸ+Æz¸r¿®ezk€Œ¶?V›Šáüå 7[î;øâ%œñOw²À<]Ý~ºâôü cÐ]7«=ûy —þÈÀã—E8çÂsü"ð{Ù"ŸáïŠ óWýcqñŸ‹ÿ«vendstream -endobj -1534 0 obj<>/XObject<<>>>>/Annots 864 0 R>>endobj -1535 0 obj<>stream -x}WÉrÜ6½ÏWô!UI¢î<ÚR¤¨*¶Ï8Εš$Ú\&$G‹¿>¯Y’R•T¯û¡74©š~4e!E)­›… -žÌ¿>_/´ -ƒÒ< 5¤cĪi¹HrkCJŠ åð! _ËÆ)ž‚ ¥‚„ø (BN Å §&€96„„qæÌy¢aD©E4ä“ Ê§DÔA8ªdô1Çﱶ¸*•ârÁ +ˆu…LŠHjs,`΃l GZÇœûˆ,#üIˆ£ƒlÈŽ3iÓLJ‡§%ÄÑAë¨<Ò:&±”'Ë‚‚ìèAvÔÎLZGŒO— U€ uâ´â†&3iÃ̇»œGùÄcéH먹81dN€8:Gî‘Öñó\YGÎqâ4ôrJf2к8ç{ÔÚ©'ÀŽĉè£òHº8cµ5Cª°£MÆ¢b(Ñ8È¢|»éc°qÆGή’dœj)+7 º‚X×Ƕ>ˆhf­kœKa'SAžë«3ÌVìXsÄ ̱rÝ㈻Êl„ñ²H”=Ìù„œØ -ëa°iZz¬UF…dó%¢,H|= ß‚/@ìXë«réŽNù -Æ‚l¾\õ¨à¦qÌ -1[dcv˜cVتŽ•BF˜0ÙnÒ‹¬0÷df‘^4!ayMEÈ’+%#bsÄÄðzó8Î(™Þ:aAâ($N’;Êó `“÷‘ÒGl3éc°ï[õ0Ø<ÞcmBû°§p‡NojÔv&} Ù,Ýc­,n¶Ü~ ^€“8tš9r&Rõ™´¢² ä.¢"œèÄY•™ó DCÞ,ÎÑÇ`å6x¬‡9Kž`ÇJ@!VÆïVEqDÚÃ,¬1|ŽeŸ«+CªÎ½¡ûÅûÕâü*ÅV¤Õ=M¤yF«|I(Z­A5P•€Z3–cYÿuõmq†OŽ3l±–lú¯«%5ÝfW›Ê§²ªË»Ú©óühzÃ^GN: KhÞ•ƒ¹Z²…:P zÖe+g"6wfÐußí¶Ô”ÛmÕ>Ð®>jä-Ë殤­é﻾)Ûµ¡jvf8 -#ÐE×l˾ºV üxr”–Ýú»©ÛŽÕIâ³)74T?$å}8 å ½4ÕxiÐÝÕæÉÔÇl: ÷åó1‰b|í«ÑÐI–‹PwÏtQW¦OäUL8¾:•·V(Œ8Ó¸kQlŽ` qÑ›räNؾÜö]]­_éªÂD°Ã^÷ñE‰˜«vÓ=ôsñr˜ã?®(>¡€w:¯6†îÊž>v£=ç̯9ë@éCÙnʱë_iÛw÷o¢yM÷dvƒéó"ý;C ¯1Ë›ËSE€Â[R¡RêüïÛ#+¼1hiÖ»žK%Ãy˜,ØM;ö¸Nk4¶ð‚…rú2°Âc7ŒÈ0Nm4ÿaÀ¬}ÕŽ¸ -%®Áÿ™#Kk^Ò}Õ›ç²>IÄ€}3º¹½ø‰†Ç ecÚ×ãx1¾_¶}¹ÙËúü*ŸöŽŽt r¼†uÎ+eùîÃûw„ú†„è²[ïŒ.ÆËÖâLãë•ÍÏ2U°ýa±ø»'Ksüƒ2ÕÏo«ÅŸ‹ÚøËendstream -endobj -1536 0 obj<>/XObject<<>>>>>>endobj -1537 0 obj<>stream -x­VMÛ6½ï¯˜£IJ%ký±7w› šmÚ¸Èe/´D[l$R©Ýõ¿ÏRÒÊvŠ¶h³`IäãÌ{3oøçMLsüÅ´Jh±¤¬º™GsJç›hMéz…ß þ7’þC²Ž¯?ü°»™½ßP2§ÝXËÕšv9gŽ7Ùä¾µ“ m"ú <6Â)}¤Ÿé‹Ò¹y¶¤¥{6ÍWKÏÊovÜÌiš¤™|Õ^ð> ^…¦‹4Jøë&Š#ڥλ5)Åq·&YEK^³3¤r©:œÈ’¾ÊZ9e´(©’Y!´²•%søNL©3$µØ—Òä².Í©$ïDÈñ"„%, í1å‹C€Œ#t>3 ȬK‘]Pð°›%Ì—C<Ú”æxŠz"–‘§â‹=eIòETJË;þ ŦI÷ýATØÖ”-çFJ#Šº…t¿kõ2ûYéö…v÷Ÿf>!'ÕÍI0̬Aª|:ùC2—°H®µ2÷Ráˆk‘Øfrù“y¦}噄^ ¦s*ð |’É:O;ÀÖ™U¶¶``Hcq}ä(N+³¶QîD¦f¢ÎÎÍŒ>¨#“æQ齬”U)­£]õ}–az}Ü}‡ƒR‡}°W²m9IOEi´ÄYÍ“lú&Ë•oŸWÿqËcø}Š8²ÿˆÄÑü8ÚZønVüc,81éëYGñ†¦‹88Ô&JØCZq·hrÉÜ™\\\D(R6M´‚S•Êzs…SmóŒYèÆ& áq6"yômÄ>/XObject<<>>>>>>endobj -1539 0 obj<>stream -xWÛnÛ8}ÏW Ú‡uZ¾Ä°îSÚlÛn¶u±/y¡%Êb#‘.IÅñßïR’eÅÅn/h*‘s;gÎŒ~^ÍhŠß3ZÍézIiu5M¦´˜Í“9-Ö+ü<Ç_+)/æ«E²¼ôb6_¿|ñ~s5ù¸ ÙŒ69œ,×+ÚdÓ)mÒ‘€Ya·Ê {$c)S.µÒ+£ùÒ¤…¯­LèÖ“/$UÆyÚ -§R*å“,I”%iéÆ>RjªªÖ*|ß‘ÒѾ©¤Ú)½{³ùq5¥ñì‰m²ÑçÛ$²ÌJÇ/ú¦4NöžâvU³?I»ÒláêH°ÿ³–oIèŒvRKžZY —¹z–åHDèãÀÝ^X¯ÒºyyisÄõ6$%ÀNWR{29nÒ§û60ªBNj‡ú[S‘èÒ­„;®í¥u{™zõ$“ÛÏ%ö¬-û–S¯ãëYÔþ›HÒ ;kÞG¡‹º›°RFðOÆxÎÆ蔵—eGÑ0Rm­€ -¸wl«Ï¸;̪pºBÃó©ÒAÑRX½kd7môx¼JÖ¼V!’‡ùrÕ$ÑF^v{Hëìaä .ðÈuÌ‚GŽÀ¸ÂÔ%†Ú²öx=Ä€YPƒ“þÇšžçÒnM¿Lçeíú&C^-ætëù…ùõMÚ'¬/1ÓJCšî1 -–­Š`¼˜ ­Hy+´‹ŠN3õþ"Rhi7Æî:»¡ñ‚w[€ÆÜ»¾Ì=.]yíq#óºIÜ;Ô¦1ªÝíP•Däg-P=†î’GÁTëà\,OžcÙ“YBŸÂb1r©U"ƒU‚E ¯Íj›ÃØ ó®›a¯°ç°{eÁÔã¸gxå¼­SÞØ1öCW±.ß4=_ÄƦæWt––·[¥;ŽN“5cЫêÒ+LÔÈʶ”\ïʉEºÓÎ,¨Ë©aÚM3¡ûR -,ÑVæ¼’±äás‚¶ÇMlø_^[œÀ‰ÄÐ*]˜;¿”©Åeªhç Òiq ]NBu‡@yY(p܉ú{`ƒÔ€÷²¦ó1Ú·?@â¯ôûI$†«nŽuÔþª×‘‹/B³\¯#NëF gK|A®¯i¹jVúo·Ÿßßò>¼3iÍkP˜²|sÜ^¯¦ NlEŒa/ðÙ>EWËuÔÙå5?úcsõ÷Õ¿ãj¸endstream -endobj -1540 0 obj<>/XObject<<>>>>>>endobj -1541 0 obj<>stream -xWïS7ýÎ_±ã|(LÁ¿ 6ɤ4¤Lc ±3ùÂLG¾“m…³tH:Œÿû¾•N¶¹ÆmSûNÚ}ûv÷­ôxУ.~{4ìÓ進åA·Ý¥Ó^·Ý§³ó!>÷ñg%Í.'«.½¦É ;çøVw»4É©þyE7b)i,í“Êð¥|¶ Ì虚WVxe4ÍT!ÛG“¯]:§sÚ÷{íÁîóR8·Êß$7°¸,…ßg„. -/­†»'IR{«¤£™±Ì›“¨ü/T! +ßì5öÒwô‚p¤•£"%­”ž*ï±á"7«ÿˆ~nMUn×¾ µÉËÂ8ïv3·V®Ý4¯öÒÃÖHs­t¦¨Bºþ‘›—þ£wxÄ€œiC*§|ZDZ¡k:-ýÊ؇MPLñÆnQ“‰dÚÍ -ÞÞ= ”Öx“™"mÙøسޖÙÇÿnßÅòOæ_âé\Q¯Û褪üvv*ëä1I~13BDNÒRf tK‡Œã7מÜÂTENSIÚx™GÇ•FÁ Õy -¸¤ó%‹9 W¨!ìqh¯cš¼»ë\ߥÅØ05ª}UX4àÔ«ÑbËJ×½‰=ÎU°ŸVgª3äJ)”ž“ÑÅšVhg¸É…]7£{a=¯…-è ÅÂBÔo³º9±œ -ZG•®žÉUei¬z!Ÿ½Ô¼´›@z莚[rQÞ”žYá¼­2_YÙˆÉñ>d¬ƳB!vEÁ,‰i!Ù´™z¡ônÛ!Âј¾@TÌÊÑô—×·ãÐœ H½ÈsÔƒ“®MÓð:gk~Á½SéŒûX <Ö4Áj)ó`XÏ70rS¥=©Í«ÉKÅQçT] %W¯ÐëÝ¢XB+Ìt ?l‹$=çZ=&`ax3òÈ…˜ÞªoÜTŒ‹8Ì!Ž~µPФ©Aç°ìÄ~IVjZ¿ K²ßЊ«×ÔÖšwz%æuû´ »ÓÆQåêj˜m Ô‰ëwãæZ~ÀÊKŠq¦èãÙa»7ésÈ´[™³ºÀ˜š*ªihì ¾)4¬œã¡¹<ñ9,ÀÿmVšž„U¦rSÔûCf2ÍPêѽ?ŠäKjq·U¡Î›Ö1µ’3¶Îß·q‡õ£©2.k2R·…ÍAP ¶1,–RÄD"YФµ–>N |ÎdF;4†n­×¹Î°JYë×VúŽã ¢m¹`ð°‹Ü,Y€WlYØ -ýØŠëðcÁJ4÷š¾òüKöÏ>ƒ„ÇšdW‰@dƒÂd<óÈÅKÑdòYð¤κ ô|\Ž›iîkoà Ÿ›Å\>¨VÌwv‚!‰ï¡^Á‘ƒÎ@Ñ1¸%1”ŸDQ1ûh:Èx¨8—æ2<>ÉÏq,]ÖçâH^Ãõnµ-†0çâB#ÒÍpHT0i ôX ûÌmZÇ2Òóë2‚l8†œ/žk †¹ŽÓ«·Í;Á‚™) -I…ÚÀ+,#èbƒq…Í|5n#®x/pá¾sÇ8é×B‘NýŸµz¡‰‘˜‹›¾q‘H{Fï~»¾ys1zÿ¶Ûý…~wý¸¾¢pB+­3Ž;ËÊ7 Ÿ²áRK«2Õ²Ìø0&\Žþþè;¬öÜBÐŽ ¨SÒþ/ê/·Ÿ~ÿðéöóÝÛÞ”1ÿu„ã ¬_Zœ5¤­16OÙøb;¥ê¼½½®Šç§4žGu_Œ./èΚ¯˜¾p’…ƒD(s6~’6œ »|<ü¾Q°#çlílxÖÎq+…¥Á?z?9øãà/Àendstream -endobj -1542 0 obj<>/XObject<<>>>>>>endobj -1543 0 obj<>stream -x•X]sÛ8|÷¯˜ò“³É’å•­½­²gWuþ:K©ÜC^ “€’õï¯%™®Êí&¶¬¢ÌLOOÏ@?ŽÆ4Âÿ1]œÑdJY}4Žèlr×óK~=ï•T„&“áyÿùõâèôóˆ>ТÀIÓK¼É §ŒF´ÈN¨÷ïëÃÓ¿ÿ|zøòøûhòý‹þ”ZZ•Ñ½¨%쬔óÒÊœ–[UEµ¬—Ò:2ív¾[|?Ñ`<^ÂÔO,Œ3¶ðÉÔBiúh´·¦ªø´Sº—¾2+£i.íþþ™9Ÿyk2QÑ`géÚšûGgH>c¦±YKC’ÎT'§ŸÏi<Ž€ΦåÌ“+M[IÚx@äKáHæzö0§Zd¥ÒÒípÄ©,™& | G <ÆcK³–CZ”ÊÿhZ#œ‡ÉðŒ­f “7´øøx:{ÄBç‘á•ÑŽ6%²EX“+~€¶át·45‰¼V)µÂK…Œæaã©d“ìÈ©ôÙiiœG–mÏ~Zòé~N¹ðb)œ„I„ÂmáœÉ”`@6Ê—$ÁO‘çV:7L'žMÁ\DôÃEkaØRc”öL­¬V* Aõq~¼äc˜æ1-'{§ã]¾N¨PœÒœI츕™±¹£ÜpÞ¨±f­rÙ ”wiäØÈoF¨0¶Ž^…lßÍé«Ò9øŸ•ÔÀ,—„5P9ªÀKÍ8-€ØÀ̵Êø™èg·ÛÀ&)s™éJ“|uÿ±Ï'b¸KÑÀJH·FpôÆÚvfï‚@¼\w½8cѱOÒ ¤.N´Õ9Úa·Ï!»#B »H´õ¬à4¥ô -ë*cžÛ†¾¬• ѳßa¼´Fä˜ýía+IÝÖ,‡ƒ5–ž®šò¥X¿Ò'†xŸ¨_~‡ÖA‡¨ôlZù£•¨!TviÖ©SC†x‘•¾…0ä]t¾áI…ZbÿöØH7¤¯¥ç% íYN!d‹}V6àLrœq˜"’ŒG´O(ó¦v]ÌÇcŸWÖ´Í1j–Žcªa!@†@¥ Eëøh¼J”o’m¡@‘S+JW˜¢ÈªgF`ÖZåÑ",ÏË €%ÒÊCnB]ÙSV9d‡=O‡DÞÔ{ØXU »EžÏO‡‚2ke®9›Á/ð2µ‘Ò¼ð_”'Gª£nö-Œe»êŽn¡@¹È«Z¢™žð&éxúû 1+îžsׂ݇ìO¥j ƒÚ2Ôvxö½ úÑ@?QŽzyÖÜ(Ð"æ]=ÝÐÝç›Ý‰ßÞ…jÈ4RæÛNþYq_Å›ÐéÓû暚ʦ4Ì îÆíâ]Â)èЖL*%pF›7_„Ú¡B¬aé—ùÍSð¿‡ñŸ×Ù8H%«}Ë5ø£U–£Hà ~ccɳB èƒçv»¢Â~«9ÉTU`¡Á”ÓµÂ]–º‚í3äU¯B¾­¬Ñú;iêE‡ïÄ -´EJáWd=êÛ› HÃ}( -úNÄ»y`ºK{®Ñ9žÁùÝ51J0ó7&96Åj{–ïÓ²3öí¸ôèZ8Lw3Ý´žZÏæa6`Fuû’`H‰Æµ˜-v¶no?«[³‚ ô+æVéçn¬ƒÓ;ãÎMÐD(|ì†(¨¶ò![ {,Ø›/3zíõÍ‹‡Lʼí&B˜Þ -‘É~¢r†Õ϶è$dhõqr7í1(ìƣȞ1ûݼd¥Ð+œ²÷’µÜö ßã<ÐN~…HD@Lèí ¦A­ÃÃÑ?äzÑ3 &2J‹8 ñ[8C|ÑÜOÈ¿«lD…ºÉ 3êÚm1@—BE‚LÕ†þ[KÆD¹­m:Çû ŠQUÕÇb’ñ(&À`r ÖÔÙ‘òY p®¾Ÿ~þ@cŒˆ|‰LÆqZü0œ DZº˜ïy:ûˆÙ ÁëIý‚'Ì+¤è ôwÑK„mв4Ó÷ƒÎ²l‹Ùñ:Lʈ„ûOg2ªåì±——4墇ub!AZ‹A¼ î÷ËðÒÉK Š! u«¹»v¸…l†¾Çÿx4ÿJ˜©ZÏ3Ƭ?<ÂU„ IœyåNc–3ǸŸP¢g;TXS‡èxV­@^ ÉÞ–ØG ­ `ºX•AþÞê Oj…žŸÿŒ< ªnòŸñÙ!€2æ!¸ÌqGÂÃèã´”<²•Ð-ŒÝ<×è¨)aa)øF†%ò¥Qp¨Ÿ$­¨ZWÂÕ]äáðPI*áqUŠN&9`O“2‡KÍ«ì… …qíò;FàÞ3êU-†=–•Ø"yj(‡¿!…®qòŠ%Þ ™æèØŽÛ,Ã-á=ËTÚu Öžžq¾ãÄñWŠp»LúTXÌ\ˆP?&+ÔWñA82¦ÚP -+2s.ÚÄ!ð1Iv_cpä Ò …,t9¾%ñ…Fa~Ks=ŸvXU‰~ @j‹Çzéq¿õDZèç¢^ö'&ž Ö¢bÆÿ˜?ûëeî8©Êeº2Ž§ø6årBÓéyüÞb~uw}EÖ„$~2n ¦á*C:è6 .Fü•ÊÉÿÕ¢ó‹óáÅôú…ÕÓ_ù›ÅÑŽþe’Ýendstream -endobj -1544 0 obj<>/XObject<<>>>>>>endobj -1545 0 obj<>stream -xXkoÛÊýî_1¿8€­HŽáGpQ@¶åV€­¸oƒ (VäRÚkr—w—´¬þúžÙ%-Ùí&½M;"—ó8sÎÌPŒi„¿cº8¥/ç”U×ÉÁç»+ŸQRàÎù%þ“Óh8(ÉŽ®†_†§CJÖ’îþöm‘,¨P¥ü”üŽÇÎh<œ^à±£d­œ¿OøݺV”å–J“‰Fæ¤4=,è»Ò¹Ù8š't6‘±tÊ®p3ØDpÞæÑÍ×4ý>›Ï“4]ü¶H¦_NÓôöiöéÓ"M§ÉÍûŽHèœ/èdŒ˜9œÌèF(í¨Aø³Gšä¹•ÎñI©ÙZiIZT’#¨D“­i-”u!éAu|tÍP-mal…Ôds=û¶ðf?DÔŽCtqT¢®•^%5 v§Oχ\…£YCͶVY£yvTªgùµêªÿ,œ§îÏ!ݘzkÕjÝPz”¥Ÿh|uuI*³Æ™¢Ám[÷ÎÆ£á%;{{¸ùãuUÅ?ANT52ÞgÊ ä–[ìÎÊíè¦äüJ‡LÔƒy‘–’›ÇϳGí‘=0íIsu{2v=ÄìËóŽ òŽL±W ¦fffªºm¤eb¸¨í·|«?9$š‚R„dí–ÜÚ´% ‘ô,놌ïÀ²\½¨Ê@)µŒÁ+n*;cu)² &fu¦6ˆ·l+ ¨ÊÒlÞÊ <3:¨ bûö“ ¤ïùÙë„OthDmît²Ö+l •R D¹¡³ä± ž‡ÊÖ8žÁ~Ô68·’ZZ¯Ï3”)—Ú4ÒÓ D±ðP€™µ -\s2Ü”¯àWFÇ ¹”€-ý-F4°wýŽQZBÕ¬÷äv?™ÓƒÐbvŸ_;†SY­kâa1mC³2E!mhc¡Æ\7ùÚHí81߸ï}”l4p/öÃǧéONÜ~{øúKn*tÑ¿üäèl~sÿëí”~á°Y?{àzú×ÙüŸ“ûdú4Ÿ$?‹d:¿ý_ϦéèUk´môIm•n<Í{š‘këÚØ&ýË(vî¼ÀØšÐÛNæ˜Aˆ}ÝùÓ§ æ(Q–” °7j ­ôFÛ¨-x)r/v\áÛ~Reè1rH×[h mÙûÇ“ÅÆÍC.;“Ç´l>Žag¹sQ- -Èò-ܨ,8C£@saýP!Téþ¼HöAëòóúà|‡û  1¬RÂ9“)tN;ŠX@ëÍZ *ÚŒÌT¡BìÙËý†g””5ŽÖfóCËK‹%Xp ,Í -ÙãÓ‹Ê€ñR®Å‹ß¤BN/ÊÍ}‡·Ó£ ›3gé„ßRÍCß`HNǤ¸Z¯˜) (~ä9‰¨}fe?~ÊøiÒ#áGx¹[× -¤DÙ`\­ÖìÑSl‰Ú7Ñî7š6kØ¿ã%[QSèÏ3eá ·e} ÿ³Ÿt"ÂB€)¹=Ýݼ-[Æ×I\ÒÄ{φù\0ž½Sv]Ë—Ü‹‚±Øx -Šü´xÅ-‡{­QØ,A¿ÎoN–‚uÆHnLßG¢ gLnQªá¡nR„Õ  Ü’y¹Å]Þ,<=¥bNØ%Óäþûä7l¦û„ª­ÁF"a£ßGyåb|÷ö W\‰Ëâ€ZÐlùÑÀ¼¾‚òzãU ⣠zž©¹²Ð¤zùÁ64CŠyî»æÐËÑ<êvYªlÀ«;_•¯a-õ㜼nF#¿£yâ/o* æmY. 9´½ûrÞ‰±9’dt²°Ñv/¼6F Á;P±R„wõtmÆò.àrÛaõ,·\­VÃ_ÔpšvîÓÔm]#«4ÍZ,vºáUךÒÉ·º¶•¦¥Ð•Ð¡RiÊ;Z%Ñî]šj¸v![l|%é¶r¤,Â](¼ `p ½•£«¿³0H‚«cãÕf˜ ¨‡aMðª<|·`­ÞnP4uV -^6Š_KzâEíb_\Ü®¹*(ÐÊš¶†’³’ë&˜ï…¹]}À¥¬ló¸ vCÞÒ›eÞÄÿÓï”æ¥÷˜þû*ã°QhN@VK™‡M¡W1Õ6Š@xmp  ׇ hÿÅ•uóGk€o˜Ç|_C¶ÝQ6üùî²{WŸ_ G—_ðå¾3È“‡ë =Zó;dM·&kkoˆŸ;éŸ\Œð›ÿè;†³‹³áÅù%¾˜À¹ós~|šüýàß„„äØendstream -endobj -1546 0 obj<>/XObject<<>>>>>>endobj -1547 0 obj<>stream -x•WÛnÛ8}ÏW ’‡MD¾ÖN -ìC.î®ÄÍÆê,h‰ŽÙH¤*Jvò÷{†”|C¼›&H`SäpæÌ™3£ŸGjã·CÃ.õgGí Mý^;èRÿbˆÏ]ü’æîA¯×}ûAç² öO\‡G­Ïmº¤pŽ;øì·ÛƧTÿœPµ_´&mJQ*£©4ds«ù+ ZÈZŠ´‚ ¦Àwmôy^(]*ýDñB".e|µé¼Ó.pËÆø¡u -l1MÍŠ É‘å©$•¦•- QJK"MÉÌ©\H+±¡”ÚÂ;ûéÉCëÔiwƒý]]ÐÅBiÓÄO'#:¹ýrÿIËreŠgvˆNð…ž -Så¿Yº½y‡q\Ã6Ežk‘Ir¸vúÇ닶>œ8€EJØLVKY¼ç†nmä&¯RQl™ó1ì,XS±üÛ‡Mjb‘Úb¹eËá³õ¡‘‰L!R:N«D -àÐ:\þOþ¹º G“«ptxãxrs÷õvD£¨ñ0Šòj–ª+ÙÂØÒ¾ï¸Ëý/œMnÿßÃWQM@HÌÌ’9ìH~æ–š×)¢ØèR( ÞûêéA«ë²ô¤JKÌ·ÚlMŽc:¡ã¬õ-¼W³Ey!S#ß3g‚Ý?v íØ ek‘P`‚5pƒb¡i&©²29è:´%EutÒäTP,5J>M_) LÖI¥¹bYp2°ÎAûöÕ–2cï*-–B¥b–Ê_W§‰)%Ò$J—«ÕÂÀ \ˆ°f½SA“eÁ´SŠxA©1ÏU~vØICÏRæ|–áÕU6"к¸±˜eJ«¬ÊhU$•å“(—„8:>‹k!± È•Œ¤D²T–ÑpúsÀ[${@s&.öí`ìrâ ë Œƒ¸õù’:}ßnÎ{n—A¿ôç—i8uÙbësŸ:xÌmé¼;ä}á¢6äRg+Gfoé ¦û)}S:1+K“úhŠèF]ne(omÔÙ<½ùEßÆ“IEÓïÓptßëFÑíãøïÑã4ŠF¡ó§Ìó&Ðú+ÜY#çgü@WIRH‹ÂAØõkŽÓy8‰2^ÀÑ\¨Â4Þ©š½ú4sS€“VÜf÷nTz^´¾*.+Î›Þ -ùŒ™q& 8¶0+g0¼yhÁ7©—ª0š)ÈàÁõ¹z‚$¶P…I‰>óºwñJx÷äÏJ¡Ñ³ßué«V/­;¥«—}„[²Œ[kÑ݆òг¡ÐídJw®F|æÞfC,r1S©*_wÃbl8uøV–UΊ&šu_#᧚¹ˆ1¤g̸äs Á0<8MÝJdúg%QuìŒ\pžý€`Æ -#Š.soµPPe}Ö#ª±X«ÉD–×ã/Ó½‹'&AH¯9ìa¦Ê$käN6Q¶]Ñf.jS&Z$—j³4+ Þ1¨DÑ)£ ¯·{w­·D\4 méd»ZÇk'pc´Õ쇌302‘½Æñq—¹©PubOxßÞÍ1äQº 8ës´»@3'Îj™à"»»÷’¼bÊ”ñ3Ó‰C¶Y¿6(\¸¾§!—oã -ïÁ¼æ%¼eÂ{±#ˆÆ”¦nã%3ã^Ëu¬3/©OÏ7×R_Ë´iqsHqg|K(7Åñ1ðNügu\ù=Ñi£ˆc ¶h 3áÌøÏ•Ê–sè |«¾‹yÜi·;-üën5óÉõdŸœÑi“Ó˜3?Á’-Ñr>/XObject<<>>>>>>endobj -1549 0 obj<>stream -xX]OÛH}çW\í•‚“@`¥}€¥U‘¶«°ê /c{O±gRMÈ¿ßsïŒc¢­´ (Ê|ܯsνӟ'sšá{N—çt±¤¬:™%3Z.æÉ‚W—øû?µ¦µ,\ó'£ÏoN¦gtMkÜ´¼Â9á–ÙŒ²SŠ_;c=ùv»uuCÐ÷îáÇÉŒÎæ³ä -Fûtý¬kl{yyI?|fúqAóy0vv¾ä³»B×:¬©¸vúßGOÉxj -M÷ßHåy­½'·–O¾ßY‘’pç5Í/£½‹ò‹×É"¡OnGiívÞØ ­[›5Æ!Hes*°Ô8Êõ¶t{òJKÍ 1èóY¸ëÚæ²Ø_ÔÊu+U¥êm¸—‰|ƒT6ªÑ9©Ô=ë }^ÑwcsøB•Ê -cµGÑ6Æ7H#â45}ÑÍíý×YUaññÔ$:ù]"Ž'd…Ö®&+¢§ó‹äœ愘LS³ßj2–ÜV׊ã}|Gβ7(k»Mè¦ônBjì çZ¿¨¬¡J7…Ë)ÝÓ®0YP -v*:®™oԜޖ -.`{®W…(ã=¸qÂsë i¬4Ú6ÓPQ*àYªµ¥yÆoEƒrlF\Làç«ûÿúüéëêaE¥sOí–ÝÑ–K˜Oس¦;ˆÓ8Ì8‚ó®l9c¯Nè&” çËŠ{+!dÊk6 îqt·uCI•åÛÌ€žvKøWòÅç¸$wVsîÿ¹û6 -T9Œ6 =pI üÄúÚôî×\ÍÒeª£S«› µ¶du¹ÁùÖ£:Ø[„½§÷cÛ1ÕÚ'„è} XxÓ´0OÂÚÖîÙäðGB -< H“g¾DÚ†¨+µG¥¹™IËý(ZcèŒ dlŒGˆ°Ø]HBÅ*×è!µéÎÕO O )§á·¸MYë ú7Úªh@ßKû] -ù -tŒNÕä8nigPIlàŠ!ˆ+ÄiíÙ½3 “H‘ÑÙíØ»âŒnUö¤O™²œ˜Úµ" P«¦h}8D±†D:KÞ马v¨t<Sâ;‹ˆïÚšU‘ýmQPÀŒ1óºDò™ -“;reµìÿ° -ñ‚Û¡:B/Fpî˜ »*±=WW¿ Š }…%HÙˆ±~|C'zâÒ!.ÄB ="w•‚ä½ö$°d„ª¸³×rVx =F*ÐFµ N^gÈP³ÇgryælS»’ñxU„ÃQË#›"lÁQ\ »|¤–­JüG3ùxº`E@•â½"…ЭuíªŽÉ÷CÛêà¤_²BÙ Ÿ²†ÍBjAb¨ÑÆ÷£Ì…¢cÅ‚áe¹'—6œ_¿«m æHX–£hûîÖ -Õ‡¢EŒ²Ä„>ˆÉùülþžÐ"ò×ß -]Š4õm$¶¢!&Fv¶2ÆÀí>WMË®„ ¢Gw† -ëÚ¨Á&"k ³)4(ÝnS¡“#ÿ04²^9ìðÚ¬‚FË\IˆÓƒCrI:{hY¬¹Ä»Þ ñ(¢ÆäýSZ&ºˆñtc™F.@[V& ieéœPÚ2+½ ?nºú¨geJ•š’A/­kˆÀ(Ð#ÂÃ&Ñ<·¬ÏÃmzèñ–N|nìž9°6›6LHÐ’B*žÞŠð=E^{Ò¢#@»¼É8ÜF¡ì{´æÑ!S2œÂü‚Õ‘ÿ…‚‹`úI€ä Û¹`5è(ͦËöÄ{:äJóˆõFJCû‹£3·¿5’á(›Û ø½Í -g—ÖÉygj7<z»®·Å;øòA{ã1‹ã«4álÓÚ”:r_²Ôunõ H²ÿ˜ÒN÷ý·kº¡sÚàY:‚pèÞK‡‰v"/‰óQî'2þ¬…qdV̹þገ" ZˆÖ1+ E ™¡P!—GÀDÈÉøŠ³ãζèÃάËê33û„ØK~ʆçåéÃù´€ôú°Ð½;Oñ¾A– qΊtN?}"¾O†Ãcßñ”~ôNìĪÓýî}¨Ïo ¯u%6ÔIoo¤éÇ«èî|‰·ùÕ-ßËquóùö†¾ÕŽç\ºsY[!›" ÍY·ýìrÆöÿý¢å7î¯Þ°‹ËEr¹¼ÂÿÀÐòŠíx8ùûä_³ê‡endstream -endobj -1550 0 obj<>/XObject<<>>>>/Annots 871 0 R>>endobj -1551 0 obj<>stream +„Y‘°Ó¡4¬Á`åqö¬¸ÃN„÷gîQ±’ù°))Ho…{1j‡Õ*-¤`,FŽ5så¤ ƒ¢unXƒÁ¢FàÌ(«Á_™RPs0§8eXƒÁʃïYU,#¤*dØ„ûNìYƒ©8D•Ö`°èIø3Ê굈ìð @RoÅ«p€ÄöRÙç2£Ä^EÞÞ‘ÅðNe&äNXƒ¡XÊc*ÃÎa3ˆYÄŠDÖ`ÅÉiXƒ©9²£g±yGFÖbvô|r¯Å`¡)·²ƒEŒ­ÍªB×Ì–HŒ=„ÁøÀ“FÒb°(L+j1CÑY/k0CÁÇѳj’üÄë/6ð& Ü`ÂHZ µ¨-¨õ¬Á`±3À`ÏL–Û—e=füùúxV”p¥–:½¼Á78’{V >Ȫž5x4Ø°bð Ë7ÈÝȪÁ‰îPó鎈ÁB-vbx:’ƒEo#ž5˜î°› k0 æÇ|ÃŒcc¶šÕàˆ‹8JB:V€ì! ––I‹Á♃ZÏ *ZóÃ$Œ”ÄÈbÔ¢)8lñ!zÐ$¡£jGÒb°H#ºÕ³3ÿ‘•KçºKFx3'€wHGçÈ›çøÁËë_Ž$úoJy$Ëi謪‚:|¨K=%ÙÀ#ì7pb…,äK0¾EàAá<„J™Î#'*eÅE~¹‰É¿)å„ð]?¨ÁQˆÉŽ]mXÜäã›ÏaÅ’/;>áÈ}Z\üòAÜâ™_…å³Â-ÖòMXè«¿ aI௕»Ù¾µõ®ïÜ¢i6]ÕÿuñÛ.1íbˆèÉ(pß_ËÞÕÝxþï£òEnÒ~”ƒC^î +%ý^¡ÚjÕ7í¨²ö½^v %áé]¹­gÜÓGݯ^sÈ“pâaƒv(Ñîjß¿¢öê•vâ-isþæ…,©ûÚ6¨ô›kwµÙ4*zî&TìcÕí7=<^½%uS轱Àmó¹Ù=×/ûVŒ:SRÖ÷øôÅX>V¿ï½-<<é>áت:éÜíëÜýÐ|GÅO~­·u/Q…fƒÍ« ÊY‡ÐÔKˆsL7ïhŠe‹`Ñ×;וÛeyâöêÀÝc~¾×Õ‡kžG‘ãc +ܧƒ¾nÿöÖ´˜ñF¯ +9ÝErêšÍþÜÈÄÇ[£´dw®Û/w•Æp†±lŠuSuΞÍv觳óHÉ7£³tßoqyê,¢h~Ã_Þ?þûëãý·‡S1äæ§b×÷·W7w§2˜‡_švÅ4IŽ\ß`Œ9ôŠÛ–ÅSŒÆÛò‡‘ÀÙu³-aÞÏD°®¹;Ž†r‰¹Ïx•ëÔ»r½F‚ChšD|ƒánÑSõÚWèçr˜ Ó¢£ß=ßlöù¿<¹­oîIð½ÍtŽJ¯Ž{КÏïAÁ¯QÒ?WŒõ:på~]Ëô>Öm¬6ÃùËn¶ÜwðÅK8ãŸîdyººýtÅÂý cÐ]7«=ûy —þÈÀã—E8çÂs<ø½l‘ÏðwEyÊ«þ±¸øÏÅÿû!vKendstream +endobj +1563 0 obj<>/XObject<<>>>>/Annots 874 0 R>>endobj +1564 0 obj<>stream +x}WÉrÛF½ó+úª$AØ—SÊ–#ÇUñ“Žr…È‘›Ô’¯Ï{= 0$•”ªÄz|Ýoz›ø÷"d¡D©¬ë…ïùøfú÷ùí"ðC/”4O=_j bß‹G´•å"Éñuš…^2+¼läÇ ð‡t1Ø” +V‡®.®%ô /qYRRx)CÂ'BR¤¾–S| 6B6’*R6âAQ„œj‰¦¦€œkAÂ8sâÑ0÷"‡ T4äIåÁ©!ýäˆt1cX[\?Õâ²`ÐUD]%“"Òä,äÈ`cØ̤uÌÙGdá#Q Ž3d°!'Ò:¦™–ßF’(PÇZGß!­cky²Ì+$Q@GÒ1`8i1rœ.ª‚9Ô‘ |64™Hëf¶8ìr¢@gÈŒåLZÇ€}À‰!9ê8C8éi?çÊ:*˜G.€^.ÉD¦Zç¼Gµ Áèè@œˆ>ú©CgT«Q3¤jˆh2Šª¡F3CŠòvϤ‹ÁÆœ\5É8 ´¬ltQ×Ŷ>ˆhb­kœkaGSEŽë 2ÌV<³fÄ 6³zÝãˆ]%a¼,Re3Ÿù¨­²›¨¥ÃZeTH7_¢ÊŠÔ×Áð-x♵¾~®Ý R^ÁX‘Í—U +61ûˆÙ"󌳭:³ZȦÛM{`‘fO&éE#R–k*B–¬”Žˆäˆ‰ázs8g”ŒO€ ¡Š"uT'éå¼D +Èaò‰ }Ä6‘.qß:¬ƒÁæñk‹Ú€=EÁ|èÈqS£¶ébÈfékeq³õökð +fÙ‘CçP ‰s 3ѪO¤Õ¥wQ0‹ŽœU™8B4äf™] VoƒÃ:˜Yr‚gV +1°:Öx¶úb# +LáÃç°œ Uc³`1zZY¬3Î4úUšç !Š¡ÒÅ<’ë~vu1Ø”a;¬ƒù¢Àý9³6¤Ä>ê0RQÀÈ +æ2‘.fH|ôά†€0q¥uöXÞÎÈÝâõjqyâÙ «;¾S¥y&«¾Où²Zÿ„E†Ùð¤1C9”Ûï?¯¾-.ðâu]Â’ ÿ¼^JÝnö[ÓKùPVÛòvkÄl{óxo:C¯3§À“7м-{s½¤…¢zòЯËFÏDló™¹'o»v¿“ºÜíªæ«üöñfõñT£ðdYÖ·¥ìLw×vuÙ¬T}¿7ýY@xÕó䪭weWõm£n<Ø@Pk×ßÍ ín¨^4A!>›r#}õ¦|,{ò¾|’§ºÎ#M<ù½ý*[ó`¶çl: +wåã9™yrÓUƒ‘Y”j¹måj[™fx!/V‰8¾z)ïÀGaÔY†}ƒb3‚£ÀÃ@®:Sì„í˧®ÝVëg¹®0tp»{û¦j6íc/?O'9G±ü‡•Ä/(àÍW#·e'ÚÁžsáÔ\u ô¾l6åÐvϲëÚ»CD§†h^Ý>˜}o:Ïãûe÷µ+7GYÏsjªu»1—WêÕ£¹ÑžßÜ—ƒð¬õh&h¯`2éûËéáxkAÅu ÐìàC³Ëë|Ü{Ax~Ž—¡„¯ßXjËWï_¿ ñ7”TÞ´ë}˃·Ý¸ð+‚™_Ðþ´]|ÿÌÒ?TA¦ Oûuµøcñ/™:Q®endstream +endobj +1565 0 obj<>/XObject<<>>>>>>endobj +1566 0 obj<>stream +x­VÁrÛ6½û+öèÌD”HÑ”ì›ê&ÓÌ4nÚ¨“‹/ ‰hH€%@Ûúû¼Hš’Òi;m<™Iàa÷½Ý·øó*¦þbZ%´Ì(¯¯Ñ‚ÒÅm´¦t½Âïÿ[I{ÿ!YÇ—~Ø^ÍßßR² íXÙjMÛ‚€³À›üú¾“-Å‹ˆ>h'­pJèãgú¢taž-iéžMûÕÒ³rå›íW š%)P®?‹z'ø Ÿ¯Â ³e%üqD›ƒÔE¿(¥8î%«(ãE[CªÚ©ý‘\)é«<Ò¾Ó¹SF‹Šj™—B+[[2ûïÅ¡:CR‹]%=@!›Êk@òŽ1BÄ/C\Â’°ÐS¾8È8BsӂΦùÛyÂŒ9Ä£MeÇh`"‹<_$ø©*’/¢VZÞñgh6KúÀ¶¦ê87RQ4Äû]«—ùÏJw/´½ÿ4ÿð é<©ÖhN‚af` bшøc2ç°H®³²ðZáˆK‘Ø fr‰ù“y¦] 附A ¦ *ñ |’É:O;ÀÖ™U·v`”`Lcyyä$N+ó®UîH¦a¢NÎÍÞ«“æQi½¬”u%­£}ù}’azyÜ}ƒZ‡C°²m8I]ÌDe´ÄYí“lú"Z®Ó ‹èO¯Fm6'ü?li½ÌStì˜baj•jYïØ^êÝeЀzU#ê'»"S'üp‘¦kMU Ø“ó€?[fQgt“À9Pa7áõk?Ï’šÁj†ŽF¹ø’ûío*ŽQLÔüý÷º¾ïôAÏ Ã^AGÊ (FƒW*Ëdy•DšjþŽèmdÚ^séòyi¬³áм_3[EëžÒÇ$[ùþyEðG½<†oѧˆ#ûHÍÿ£­…óæå?Æ‚Ã’öðžußÒl‹‚!'lÉ!¯¸_u}N݉^\\F(S¶M4ƒS9UÊz{…WmŠ”YÇ6 ár6"yðÄD߆Ÿ† ¨ÿc` +Eqÿ\™\TL¿"ÿ+ôÇ̾u:¢Ü"£ iö8;uØ™—P…l«ÃÊðžÐ@JØKÓTÃ8Ba”c%ÛBX5ÔÛ_2uM¨SôcÓš'L3ðÄvÂp¦Fä_¥CŒVAÛðD+ù©Ø”G«ÀÊ0Ìɵ˜iA·8b˜ª;%Núž”89—vŸE“9Š›B‰Áåyv”vmòœÝ¸÷ž!ò·«þ¸¹žqÛ8©D Ûotu¤eB;…d`•Ô‡ñÖ1NpTçèŽ '… j{A#àÞt-=^§o0–rUsÚ;ì =@Ø°;B¯*<^#ÄF¶Êo| “/-.±(îÅÆ9§òZú²´‡Éë¤Eܧ±â‚1—+*ÔA9*qw8 ø¬$¬œDã¢C³áNx·–w q'wËôî&; ÷ +á8ŠÏ“²Ý·"—Twè¸R`žð0™ê³±ÖäÊSÄ?4ùÌEjq¤:£Ñø±8)Ú`ÁIéÒÖoB¯<ü‚樼ëÛR5ÀpÏRb¾éÉŽ@ÝôÔ·èߊl—#kÕÁßzÃ_ŸÜ-ý0û·wÛ×ÛbºJ£U¶Ó=ód¾Û^ýzõ f}endstream +endobj +1567 0 obj<>/XObject<<>>>>>>endobj +1568 0 obj<>stream +xWÛnÛ8}ÏW Ú‡uX¾Ä°ÝîSÚlÛn¶u±/y¡%Êb#‘.IÅñßïR’eÅÅn/h*‘s;gÎŒ~^ÍhŠß3ZÍéfIiu5M¦´˜Í“9-Ö+ü<Ç_+)/æ«E²¼ôb6_¿|ñ~s5ù¸ ÙŒ69œ,×+ÚdÓ)mÒ‘€Ya·Ê {$c)S.µÒ+£ùÒ¤…¯­LèÖ“/$UÆyÚ +§R*å“,I”%iéÆ>RjªªÖ*|ß‘ÒѾ©¤Ú)½{³ùq5¥ñì‰m²ÑçÛ$²ÌJÇ/ú¦4NöžâvU³?I»ÒláêH°ÿ³–×$tF;©¥ O­¬„‚Ë\=ËŒr$"ôqàn/¬Wi] +‹¼¼´9âºI °Ó•ÔžLŽ›ôé¾ Œª„“Ú¡þÖT$ºt+¡ÅN†k{iÝ^¦^=Édàö³A‰}«F˾åYtŽ¨a£Ÿ|Bá|SŸ®ŒÁÞªŠÑ9EÉi(7p¬€N·‚§ƒ\p +ˆk«áó¡Û¯÷x¶/môóe²`Œþ)¤FʵCp\U87)£ƒÐLt ó¾@ý LZT.-Rˆ!oRS’ªöe(Y࡬`×0ò*_{ÕÚТ’¯8€W0þ â®)Ÿ9Ç ‰ „ ÁD€Ôq:5Ú[S–8¿=r\ƒŠm>ÜOPTËÕ®¶1Äæ¨UJ—ÐañÄw'Ѷ¡³FéÓ ’9µÜˆ3ò®N‹pób‰9ÛžLC~’Iç:ítâ,ÂCà’IиB³L,qŠŽÀ@:ùʸÂ?àã ÒU¯òP‰>óZïЄDáÚfÀœóh=tÀ¸ÍK_…:Dyo#бAáZ œn­Y*¢± +þX%}a£„H}¿»§‡ÑwæÜðbgEE­á‡7Œ5ú‘s¶ZSŒ>ˆÝEÊ¿€oiP›®}Ü…Þ ÒÊÍ6f¿¹~-úÒˆ[Ï8‹&ú€ãªBa™‡{ƒ¤pò¹¢]gw +uРumʺÆзm›çïÎÿD +†f¥½HPÔ%Íð \· +}ÏL†Jó½˜Ð8ÑåK] (Kôñ©´Cön+;ý_­¤ÈM­³@kàÑ€÷]«çÉŸJ×ÏÔô!Ý’pDbÄñðuUWQËšœisØA-øæ9ô–½ž`™A«éP(ÔV–’5Çb§ô¯<·òÇpqÆ,…,÷A3¹Ò0ÖÕžXÃäg“ÀD‹ÝÅ#C>«0Ñ€CýÂÌ£F{cK]0±•˜Òœë“P¥Ø–q^M>¾¥ŸW„ñÍ,jÿlš`IxgͨtQx–ʈþiÅÏyÅÒö²,ã,æSª­÷Ž`÷·s‡iN·JhxÀ3W:,Ú +C K£wî¦ WÉš÷*Dò0_®š$Ú(ÃËni=Œä¹YðÈqW˜ºÄÔ@_Ö/°H€™Gè°i 8ðœôöˆE†ƒlæšûg-J•+™ ˆÒͱ@P rp±¦ç¹´kÓ/ÓyY»¾ÉW :ÝÅz~a‚}“ö ûKÌ´Ǧ{ŒÊ†­L«"/FH«RÞ +íb§¢ÕÌc½¿Ç…ZÞ±¼ÎÞÒxÁË-@ 仹L>®]zí u#õºYÜ;Ô"æ1ÊÝmQ•DègMT=Æî¢GÁTì ]¬OžcÝ“YBŸÂj1s©U#ƒe‚e ¯Ír»ÃØ ¯“›a³°ç°}eÁôã¸gˆå¼­SÞÙ1øC[±2¿mZ{¾ˆ­Mͯè2¬-×[¥;’N“5ƒÐ«êÒ+ÌÔH˶”\ï€ʉUÊÓN-èË©cÚ]3¡ûR +¬ÑVæ¼”±èგ¶ÇFMlø_^[œÀ7‰ÄØ*]˜<¿ªÅe®hç Ôiq +_NRu†‡@y_ˆp\‹ú«`ô€W³¦÷1Ý·?Àâ(@ûU$†ÛnŽÔþ«×‘Œ/Bh–3¼^G ÖΖøˆ\ßÐrÕlõßn?¿¿å•*xgÒš7¡0hù渽0^MÁœ¦1 †ÝÀ‡ø]-×Qj—+~ôÇæêï«/¹Aendstream +endobj +1569 0 obj<>/XObject<<>>>>>>endobj +1570 0 obj<>stream +xW]o7|÷¯X(uP[_v%%H Øiœl7RuGIŒOä…äYÖ¿ï,y”äkÔ6µaXº#wggwgɯG=êâ·GÃ> ([uÛ]:ëuÛ}: ñ¹?+i~t9=ê\uéMçØ1áCNXÝíÒ4;¦úç݈•¤‰´*ÃÿµòÙ’2£çjQYá•Ñ4W…l¿œ~9êÒ)<`h·¿~ÞïµûÏKáÜ:ÜÀâªþº(¼´î%Ií­’ŽæÆR0clN¢òK¼PY„$¬|}ÐØsßÑs‘VŽŠ\”´Vz¦t~À†[ŠÜ¬ÿ#ú…5U¹[û<Ô&/Kã¼Û[ÌÜFX¹vм8H[#Í ´Ò™¢ +éúGnžûÞá9r~¤% ©œòYÇ–®Cè´ôkc¶A1Å[»uDM$’i·;(x{0PZãMfŠ´eëãÀz[f{ÿ»}Ë?™Ž§suN½^l£Ó~¨òÛ9Ø©¬“'$úÅÌ 9I+™-Э2òµRH ÞϯI”ˆ£´Jxô§ÈT¡<×¹Ðy¥ž0òëÖÊÌ›àm—Sæ©!ûƒö9¿¹öä–¦*ršIÒÆË<:®4 + N¨ÎSÀ%ï¬ðX,¹B aC{Ðôí]çú.-Æ>€q¨Qíۨ¢§^[UºîMìq®‚uøD°:S¥(˜!WJñ ô‚Œ.6´F;ÃMÆ(ì¦ÍÄ ëy-ôhI(¢~›Õ͉ÕLÐR8ú tõD®*Kc}Ð ùä¥æµ ÝÒCwÔÜ’‹ò¦ôÜ +çm•ùÊÊFLŽ÷!cE0ž +±;à( +fIÌ +ɦÍÌ ¥÷ÛŽ'ô¢bÖŽn¤¿¼¾„æ X@êEž£œtmšš†×[óKîJgÜÇ屡IVK™+@Àz†„ä‘šýšvÞmûJ<„õ+”Ý«¨™«ŸvõÜ« +,ÕÐlÖÿN¡føü'DÒµ]€ºk‚ãû—ÀrF,U’„åILˆZ×Ìv{Q0Ô›$Ž™gRì¦cv¥;¦-“ycŒ–<µS sÁBõ03PB;jDžsÙÇÄ·¢Ôµ8‘Œ%TCôY'EÝææjâaUBås#7¥QÚ“Úαš¼T¥qNÕRrõ +½Ù/Š´‚ÁÌ6°ñîHÒs®ÕB†7#\ˆé­Ú*ðÖ-@ŸXÃâè×KMštËNì—d¥¦õ›°$û ­Ø¹zE½a­ygçQb0ûÏÚñ¼°?nU®.G Ùõ@¹~7î®õ´<燊þ0v{“1‰Ì»•9Ë Üˆ™©¢œ†Îò›bÃÊNšëŸÃüÐf­éQXe*÷7I½?fJ S å PÝû—‘}I-n·*’Ó:¡VrÆÖùû.®à°~4S&àï“ñeMFj·°9(*Á6¦ÅJŠ˜Id ƒ¼ÖÚÇ”O™,Ãl‡È°Ãõ:ÙvC + «¢`Ûi_ÃqœT´«Lv‘›+ãŠÝaµ¶ [¡![q¾`.X‰îÞÐ SbÅþÙBÃgÐðX”ì*ˆÌ`R˜Œça¹x®šìC> ƒÔÃaw‰¦Ï€Ëq7c$-ü2bí ü²ás»˜ËÕŠÏN0%ñ=Ô+8rH:÷$¦ò£(*f]çÒ`†ÇGYà9Î¥«ú`Ék¸Þ¢¶Å\\¨cDº‰ +&+aŸ¹Mëã\ãSFšb~SF Ç0€Æ£b„Ä0×q|uBø¶9d§X07Ea ©x…e]lñ1®°™ïÁmÄ/.Á÷.§ýZ)Ò±ÿ“V_Ahbäæâ¦oÜ$ÒžñÅÛß®oÞÝ\Œß½év¡ŸÃåJ?©ï(œÐJkÆŒ3ÁÞòDGãŠòMÃglø½ÔÒªŒÆµ.3>ÌÉ—£¿ùVûî¡ÇhG† Ô)iÿõçÛ¿¿ÿxûéîMoƘ:ÆùÖ/-ÒÖ›Çì÷|3 ‚R5ªgoo€»âèŒÃQTçÉÅøò‚î¬ù‚ñ 'Y8I„2gã§iÃé°ËÉãïœ{zÎæ·çíá`„{)L FüèÝô裿$ÅTendstream +endobj +1571 0 obj<>/XObject<<>>>>>>endobj +1572 0 obj<>stream +x•XÛrÛ8}÷WtùÉ™ŠdÉòÊÎÔìTÙ‰3«ZßÆR*ûˆEÄ$Á dýýžÆE’éªÌLbË* +@wŸ>}º¡Gcáÿ˜.Îh2¥¬> Gt6¹Àëù%¿žá×H*ü“Éð¼ÿüzqtúyDhQà¤é%Þä„SF#Zd'Ôû÷õáé¿<=|yüm4ùþMÈF•Ñ½¨%쬔uÒÈœ–[UEµ¬—ÒXÒív¾[|?Ñ`<^ÂÔO,Œ3¶ðI×B5ôQ7ÎèªâÓNé^ºJ¯tCsiÖxô÷ÏÌùÌ[‰Šî;K×Foì?:Cò³›éBèOÒê*yrúùœÆãèàlÊQÎÙRw‘Ôhˆ\)œ Á\ÏæT‹¬T´;±D*CzÓP|- K-<ÆcK½–CZ”Êÿ4´F8 ‡ÉðŒ­f “Ó´øøx:{ÄBëá”n,mJd‹°&Wülýév hjy­¤Ô§ m2šK„§’M²#§Òe§¥¶Y6=ûqɧû9剥°&v ¶…µ:S‚Ù(W’?Ežií0žx6sÑ aC­Vcje•0ªP™ªó{ï%Ã4i9Ù;>Hù:¡BUpªáôHbÇÌ´É-åšóF­Ñk•Ë^ ¼8¥‘c#·m¡B›:xå³}7§¯ªÉÁ7ø¬dÌrÙJX•‘£ +¼tØŒÓüˆ Ì\«ŒŸ‰~vk±õl’2—ù®’/¢ná?ö¹H w)ZXñén½ñƒ6‚Ù» /×]/ÎPtì“4C© „l%Gvû²;Â⹋ôGA[ÇJN3PªYa]¥õs×Ò·“µ$zöÆK£EžÙßÞ¶’lºZ‚¥à°·ÆÒ“ªÉ#_Šõ+}bˆ÷‰úå7h „qˆJϦ‘?:‰B•aWƒ@À: ÕcªÏ/2Òu†<Hò O*Ôû·ÇFÚ!}-8/iÏr  ì3²g¢àŒ%Àdä8¢}z@™7µ³H1o´y^ݵǨY:©>†/•‚xå£ñâ(Q¾H¶…EDV­_z¼B½@_•8Ãó0@³Î(‡a xNf,’VrêÊž²Ê¡ ;tèy<Ü#ò¦6ØÃÖ¨Z˜-ò|x~<”Y+£›š³éý/=Q[)ÍÀéÿEyr„ :êfßÂX¶{¡îè& +”«…¼ª%j‘é o¢Ž§Ðß{Yq÷ô˜ÛH²?•ª jKSØáÙ÷$èD ýF9êå¹áF1ÿÏÕÓ Ý=|ºÙøí¡†L#e®KòÏŠû*ÞˆN"Lï›kl*›R37¸¶‹ßw « C[Ò­¯Ï™FAÐø¼€ ÔVÛbõK¿Ìož¼ÿ=Œ÷ø¼ÎÆA*Yí;®Á2EOðJžJ@·Û%û­æ@$PñT…SNj…»,¥‚ í3äzU¯|¾¬Ñú“4õ¢Cƒ·bÚ"¥ð+°õít¤á>}'âÝÜK0ÝÅ=×èÏàÀüîŠ$‹ù‡“›B5ƒŒ=Ë÷qÙûv‚G\zt-,¦»YÓvŽ:Çæ~6`F¥}Q0d“‰Öv˜-v¶no?«[½‚ ô+æV5Ïi¬ƒÓ;ãÎ×D(|è†(¨®r>[ =ìÆÍ— ½öúæÅA&eÞ‹ö ÁOo…Èd?QYÍêg:tH2´ú89M{ +»ñ(²gÌ~7/Y)šNÙû +ôÉZn{†ïqè'¿B$‚ Fôvã –ð°ôϹ^ôLƒ‰ŒÒ" Cü–N_0÷òï*Q¡n2ÍŒzvÌÐ%ßF‘ ]u¾ÿÖ’1Q¶Fk›ûαÁ>¨bÐcUõq˜d>/XObject<<>>>>>>endobj +1574 0 obj<>stream +xXkoÛÊýî_1¿8€­HŽáGpQ@¶åV€­¸oƒ (VäRÚkr—w—´¬þúžÙ%-Ùí&½M;"—ó8sÎÌPŒi„¿cº8¥/ç”U×ÉÁç»+ŸQRàÎù%þ“Óh8(ÉŽÆ£á—áé’µ¤û‡¿}[$ *T)?%¿ã¹3Ãs'§xî(Y+çï~·®e¹¥Òd¢‘9)M ú®tn6Žæ Gd,²/Ü 6·ytó5M¿Ïæó$M¿-’é×Ó4½}šýcú´HÓiró>†#:çK#:#f'3ºJ;jþì‘&yn¥s|Ò_ªD¶VZ’•ä*ÑdkDZ e]HúCP]3$TK[[!5Ù\Ͼ-¼Ù5†ã]•¨k¥WAI ˆ†ÝéÓó!—áhÖP³­UÖÁhž•êY~탺êÁ? ç©ûsH7¦ÞZµZ7”eé'_]]҃ʬq¦hpÛÖ½3”ø’½=܇üñ:H€ªâŸ 'ªï3årË­vç åvtSr~¥C&êÁ¼HKÉÍãçÙ#‚vÈž ˜ö¤¹ºŒ=»böåyG†yG¦Ø+ˆS 333UÝ6Ò21\Ôö[>ˆÕŸMA)B²vKnmÚHz–uCFƒw`Y®^Te ”ZF‹à·G•±ºYP³ºSÄ[¶•Tei6oeˆž Ô±€}ûÉÒ÷üìuÂ':4¢6w:Y ë6ˆ†J)¢Î\ÐYòXOƒÃekÏ`?jœ[I-­×çÊ”Kméé¢Xx(ÀL„Z®9nÊ× ð+£ã…\JÀ–~Š#Ø»~Ç(‰F-!ŒjÖ{r»ŸÌéAh±»O‡¯é¬ÖÆ5ñ°˜¶¡Y™¢6´±Pc®›|m¤vœ˜oÜ÷>J6¸ûáãÓô''n¿=|ý%7ºè_~rt6¿¹ÿõvJ¿pØ,‡Ÿ=p=ýëlþÏÉ}2}šO’ŸE2ßþ¯gÓtôª5Ú6ú¤¶J7žæ=Íȵuml“~Še»Nw^`lMèm'sÌ Ä¾îüéÓŽ ó”(KÊصΆÖz£mÔ¼¹;®ðm?©2ô9¤ë-4Pˆ¶lŽýcŠÉbãæ!—ÉcZ¶ Ç°³Ü¹Æ¨dHùnTœ¡Q ¹°~¨ªt^$û uùy}p>ƒÃ}† ÐV)áœÉº§E, õf-mFfªP¡öìå~ó JÊGk³ù¡å¥Å’,¸–f…ìñéEeÀx)×âÅï aR!§eæ¾Ã[ƒéQŽ†Í™³ôÂo©æ¡o0$§cR \-á× ÌÐ@”?òœDÔ>3Ž²?eü4é‘ð#¼Üˆ­ëR¢l0®Vköè© +¶D탛h÷M›µ ìßñ’­¿(‰)ô癲ð…Û²¾‡ÿÙO:a!ÀáÜžînÞ–- ãë$.iâ½gÃ|. ÏÞÀŽ)»®åKîEÁXl<…Eþ@Z¼â–ýÖÇ(ìF– _ç7'KÁ:c¤Ž7&Žï#Q3&·(Õ¿ðP7)ÂjPnɼÜâ.ožžÒF1'ì’ˆirÿ}ò6Ó}BÕÖ`#‘°Ñr1¾{û†+®Dƒeq@-h¶üh`^_ÁNy½ñªñѽÏÔ\YhR½ü`š!Å<÷]ˆsèåhu»,U6àÕ¯Ê×°–úqNÞ€ +7£‘ß Ñ¼ñ—Š7•‚ó¶,ÐÚÞ‚}9ïÄØI2:YØh»^£‚à¨X)‹ǻzº6cyp¹í°z–[®V«á/j8M;÷i궮‘Ušf-;ÝðªkMédƒ[]ÛJÓRèJèP©4å­’h÷.M5\»­G6¾’tH[¹Rá.Þ08ÐÞÊÑÕ߃Y$ÁÕ±ñêF3LPÔð&xU¾[°Vo7( š:« /ů%=ñ¢v±/.n×\heM[CIYIŽuHÌwÂÜ®>àRV¶y\»!ï éͲ oâÿéˆwJóÒ{Lÿ}•qØ(4' «¥ÌæЫƒjE ¼68Ð…ëÈ´ÿâʺù£5@Š7Ìc¾¯!Ûî(þ|wÙ½«Ï/†£Ë/øö_äG‹ÉÃõ„­ù²¦[“µŒµ7ÄÏôÇO.FxƒÍø%ÃÙÅÙðâü_MààňŸŸ&?ø7Nå#endstream +endobj +1575 0 obj<>/XObject<<>>>>>>endobj +1576 0 obj<>stream +x•WÛnÛ8}ÏW ’‡MÄ÷ÚI}ÈÅÝ5¸ÙXÝ¢€€-Ñ1‰TEÉNþ~Ï’oˆvÓ lŠÎœ9sfôó¨KüviÔ£þ¢ô¨ÓêРßiõhp1ÂçþrI ÷ ßï½ý {9h O\GíϺ¤`;†øìw:D§TýœPv^´&m +Q(£©0d3©Å+ ZÊZ‰¤„ &Çwmôy–+](ýDÑRä"*dÞúü8êÐy·ÓºÀ-[ãMë,Ùb’˜5’/"ÍI*IJ[䢖D’YP±”VbC!µ…wöS“ɦuêvz­ƒ º¹ ó¥Ò¦ŽŸNÇtrûåþ“–ÅÚäÏìà =å¦Ì~³t{ó㸆m‹,Ó"•äpíŽ7í|8q‹„°™¬ÌW2Ï ½>ÛÈLV&"ß1çcØ[°¦Ì#ù ¶»›ÄD"±ùjÇ–Ãgç;C#c;B ;¤t””±l + iN®ÇL¦ÿ\ÝãÇéU0nÞ8™ÞÜ}½Ñ0¬= ìœ'*ÂJº4¶°ï;îrÿ gÇÓÛÿ÷°ñê ª ‰¹Y1‡ÉÏÜRM“ã*E]¥Á{_}"i´º);@Oª°Ä|«ÌVä8&¡c:®ÁÚÜÂ;qEÞ˜-Êr™üž9ìþ±mÏ)[‰„¬ MsI¥•q£ëЖÕÓISA‘Ô(ù$y¥00Y%•ŠeÁÉÀN8öí«-dÊÞ•Z¬„JÄ<‘¿®NSSH¤I.Wë¥ÞK™ÈaÅz§‚&M‚%h§Ñ’cžËì¬ÙICÏRf|–áÕe:"к¨¶˜¥J«´Li U$•f9“(“9„8:j‹Å5—Øä +ÆÒN"^)Ëh8}‡9à-â 9 + ûÖ‚»œ8Ã:ã n¾¤îÀ·›ó~—B¿ôç—Y0s;Ùdûó€ºxÎ}é¼7âÁ²²ärgKǦoá°¦û}S:6kKÓ€èŠhG=îe¨o}ÔÙ<½ù†ß&Ói†³ï³`|ßï…áíãäïñã, ÇSó­§Lô:Ò>,ÜÙT#'hò@WqœK‹ÊAÜÕ‹Žz8Š"ZÂÑL¨Ü¶h²W 4õyæ®+&)¹Ïܨô"è}eT”œ8½òÅ2äÌliÖÎ`póІoR¯Tn4sÁƒë õq DØA&%ÍëÁÅkáÝ“?K…NÏV|Û¥¯Z½´ï”._nË"joTwÊ&2´À‹ŠƒÝNgtçªÄ§îm:D"s•¨âu?.‡“PÅoeQf¬i¢~P5ò ~®YˆÈC~k!FBà ÈSÕ|A¨–uÇÎøÑçÙHf¤0¤háRôÖKPÖ§M0¤‹•žLeq=ù2;¸xjb„ôšÁ¦ªT²Jۢ+ÚîÃEJ¥@Ó€èRe–æ9ô;—(<…däôõöáà®Í–ðƒ‹¬-œp×Rëˆí.pŒ¶œÿ‘£†@f²W9>Îò²0%J£JLí ï;¸9‚@J—g}‰vhæÄY¥\ew÷^3WÌ™2zf>#qÈ6+Ø… ×ù4óm\Áâ0˜Ø¼äƒ·Ìx/wÕ˜ÑÌÍc¼dæÜ`¹ŠuîEuëéYíæFì+ý€8m0®O)îoIåNu|ly/þ³<®üžð´Öĉ]4 ™rj|GKåËIô%¾Sáù"êv:Ý6þõvúùôzzÈÎð´NêÞ LHšbÉè:ž1œ|/˜Ð(tÖO÷UÀIÍå“B³†N±@ŠZÞù’(§k~Ø«ø¥°˜7¤¦'µÂ˜M$³Þh¹—È­|;è¹å =àÙH@é\pÖ1ÃÀfBC·}WÙV'ÏÁˆÕŸˆy$ÆgÞÌ1ð«WÕl:o±*ûåZëN];t¯3;¯iç½÷­ž¸ñ~„Q«Ì2“ô;}—nÐÝJ® ÇuÐ7ƒaaxW4n*¤j´¯ê¸v|×Ó‹*ªî¯§}?ú–9»º¿¾¢‡Ü8¸5QÉÉI/~^8uøM´a4Œ­Ñð†-£.ŸGý Á?r°endstream +endobj +1577 0 obj<>/XObject<<>>>>>>endobj +1578 0 obj<>stream +xXËnÛ8Ýç+.f•Žl'®0‹dÒ ¦=è&J¢-6©ŠTÿýœKR²¢S`$ ÌÇ}sîežÍi†ï9­.éjIYu6Kf´\Ì“-®Wøû?¤­_øÀŸŒ>¿ÝœMïgô6[Ü´¼Æ9á–ÙŒ6Ù9ů½Ò–l[צqô}1ï6?Îft1Ÿ%×80Ú'›gÙ`ÛËËK2øá3ÓûÍçÁØÅå’Ïî ÙÈ°&âÚù='eÉ’¾‘ÈóFZKfë?ùþðeMÖ;„;?Ð|í]-X„׋„>™=¥Ù[¥w´muæ”A”BçT`ÉÊe]šY'ÒRòBŒúçù¬KûÅþ¢Ö_·U*ÞÆ»J|Ä7È¥Næ$Ró,'ôyMß•Îá U"+”–UÛ)ëGªú"ÝíÃ×5iQaññ\%2ù݇OøÚš†$®ˆžÎ¯’Kö”3¢2IîPKRšL-Áñ>¾#£ÙÔµ­º)­™;ÈÉ–/"sTIW˜œÒí •ðµ`§¢ÃáÚ‘y'žàt] +¸€í¹D\¢Œ÷àJÄ Ïµq>¤A>²RIí¦¡¤TÀ³TJM;õŒß‚õÙŒÀ˜ÀÏW÷ÿõùÓ×õfM¥1OmÍîHÍ%Ì'ìÚÒÄifÁYS¶œ±W'¤Ë<Ì@…ËeŃö!dÂJ6 òqt>nm†þ’(Ë·™-í%–ð¯ÏkpŸã’ÜhɹÿçîÛ(\Pä0êÚpIüÄúÚôî×\ÍÒd¢¥S-Ý„Z]2‰ºÜà|kQì-ÂÞÓÀŽ‡±í˜jiBô¶,¬r­˜%Ϫó¬rø#!ž $É2_"oCÔ•8 Ò\ˆL¥åa­Ò?dÆR:Æã ˆ°Ø]h@Å*ãäZˆtoš''”Óð[Ü&´6ùÕ¢šÐÇwãÒ~÷…|:F§jr·´W¨$6pÅeÅâ´öìÞ+Ç$’Cdtv;ö®9£µÈž¤³” ͉iLëjåŠÖ†ã@kH¤ã°ä¾‘ȃJÇã1%¶³Øø®mXÙ/¯ + +˜1F`^–H>SÁGÇäŽÜF`Y#;ä?¬B¼àv¨Ž§#87 L]”Øž«+_PÅ„¾Â¤ìHÄX?¾¡=ïÒá] +ˆ=†šDn*É{íI`ÉUqg¯å¬6ðzŒT ŒjA¬Ì!wÀgþòÌhט’ñxE„ÃIË#›^Ø‚£¸@2vù2H-[õñŸÌäãù€õ*ìïõRÝÚ6¦ê˜ y?¶­Nò%+„Þñ™!kØ,¤$ö²%úøa”¹Pt¬h0¼,dRÇùð»ªK0çH²EÛw7WTŠ1Ê"úèMÎçó÷„¿†øVÈÒKSßFb+bbda+c Ü‚qáZv%Œ=º3TX6J ~4Y[¨]!Aé¶vªB'Gþahd½2Øa¥VXœÉLIˆÓ‚Cþ0’töвX50syïz€Æ“ˆ“÷Oß2ÑE”í ë<È4rÚ²2ù°‘V–Î ¥-³ÒúáÃMWñ,T)RU2è=F›"0 +ô„ð°I4Ïšãy8±M]#ÞÒ‰Ï>0¶j׆iiZRHÅÓ[q¾§ÈkOZth—U'€Û(”ýÀ6<:d‚C†S˜_°:ò¿pL¯‘Hžg;¬}³é2€=ñž¹¾yaÄz#¥¡ýÅÙ™ÛßÉp ŠÍmìAg…ÑÊúÖÉygOj7<ñõv]o‹wðåƒöÆc ÇViÂÙ¦­*eä¾ÏR×¹YÔƒ"ùý§Ôh”Fpºï¿]Óå±75ògË|Ä¢nú°£r» ˜Ä¤Êwôï.ß,™ABFÆ­äÎå„áÛ\ã% ÇéØxl„°‡>¦(J1¿åo:)€Æ2;2yro ’ñ ÓB° Aè%¸ÓûÍ™ÿE}ú‰i«‘a—cæè‚Õ>¡sZáY:‚ç&*Ð=˜ŽíÄ¿|ü˜r;ñãoÀZGf½Cs¦8#^P-Ä ë˜Ð"†ÌP¨Ë“`"䎤lÅYŠqç'[ôqgÖeõ +™}Bì%¿eÃûò|Šá|Z@zmXèžçxß K8£½tNïO¿ß'Ãé±oùR?z(vjÕ ÷@ ÜçÇ„•²ò#6äIéýuôw¾ÄëüúŠ–ïýq}óùö†¾5†]º3Y[!^8œ‹nûÅjÆOöÿÿ¦åWî¯^±‹Õ"Y-¯ñ°´ºd>nÎþ>û4߇òendstream +endobj +1579 0 obj<>/XObject<<>>>>/Annots 881 0 R>>endobj +1580 0 obj<>stream xXQsÛ6~ׯØé“2cÑ’,KòÍô!¾Ä×ÎÄIï¬N®3~HÈBM,ZÖýúûvAB ã»vš:& ì.öûöÛEþÍhŠÿf´šÓÕ’òj4ͦx“~üë£ÙtžMéz¾Ê–TÑl±Ìnº§’FçÏøz³Æª¸–¿Â͗ײs=KéÓõ"[ÃèŠWÌå¡ÿ´Xe Z¬W¼ÿ7šv£ÛÍèònA³mvˆz¹^Ѧ`§´ÉÇ÷ôÕØÂ<å¥Ñ6xªÔ‘Z¯IÛ¼9ÖAT+ï®)<)‡&Û‘¢|¯ÊR[ý¤/íkg±Iµa+&WÁ8K•+tùnóûhJ“ÙU6‡ïñãXeÏ™ÊèóæÓýËìñ¹†T鬾àßòR«†‚~ äCc쓧^{SÕ¥N¡ÐVyDö­»Œ~Ʀ½kË‚¶çW¥ù.þÃ^:˜°'„J÷·T7.¸Ü•ò¢?,>«g/îE#",¶: Ϥ±¯Œ¥ºTø)Ñ"È”² Ú¶¬ ß[·¼Ƽª¾ËW£ÿhuðY·m¾ HÙWäôd<%xc`…D¤—°óíÔVË® ,ØÅ)#nfŒ£98:¨£ÿ»¥'½ß÷–î?,ØØž!ç¨ýüóß¿|øØ?¦lE¬2Úìaž­;Xæ oú¼r¬Ë»¼cãd•­¹–˜óåŠØû‰«ò1‘f+ÉÌçÎ&gpÔÖ5N•ƒ¤,^qºjUŒkZÐ1.-‰ }hŒšãå=°ÌZ¶!d¹ŽùàŸýô‰ÙߨÉ ðéëÒd­$£×KÚâÕ‡ô¬ðàú¬“bO“³šø¡RO&ÿÖâ„^TÙj‘IìÛ2  h{º”Â¥OÊÞ+û¿3Û£øFr'óu6»¡ÉõZ‚üÿæÚ¾p½c¶;î—®òéc®iª ì öO_¾n¾hA.EÏåZ90³ÐA™Ò6q¼ÆZÝ rÌåÄ5Þ½îC>“¥›kÔ§ž€·/&gäÏ4» ³`¸à›§«ìUàè^Ð:øÝö+ ZeI$/Ö5«ãœ7”™÷eyr‰…gÁHõí wàCCSlÖTîé»xð×ATÏ´¤÷Œ">"; EáÌi/Ý{õI#˜xˆ«h\]3wzáªÀi‘ÔN$°\TÂÐVÆm6¥ÊØ–i†§nï¸pQ#TÄD… «}ƒ ÇåìuS4Pª¶cÆ·Ò$ÑéâB¶Ä#€îíƒÚ–Æ#y²°é3k­ç£¡©|o¹«CYêCïy%¡ß›¼qÞíSxˆ`ôY>Î,Ø€çëz¤8Sì•ý#Í× ¼AÐ=”âTZ¦’ˆËïmô“á»ASâ‚ÄõÁ9ÉŠER$åÂÌSÛéíCu‡Ý†QPÐ' Ãu›’xUéH#èÆFC€LÍ„M©Ú¡ÉÄ£6ºrøômQ NÍå (ˆ„6˜2—:dÊs/Åg‰Sè ho¬ º<ŠEOÎd ­ø@LIÉÀñ ‡ä!9G«óm¾ï'!96€"V.ãš°PYÌ`·´TãÚØj«oE/úIêæµsqêLl‘ËÅß!­¹}ô(ÂÈ…*j@“ÊQ~p-%*2Ï+]rÉXgCÓ·°È/ï¦tç¿É|G -v(C•ú%Îhcú±ëÁ*.0݉fŸÛ˜Mc×èô—MœæPŒÜwn“ºÑƒª¶*’ ÚÙõs)ä¦ËMGUN)’R:÷ÜÖia?]½ŠgD®–Òåj(÷þè¡[¤ò8bâ¢[+xâçß'¨Xo^x uÃ.ôÅâÞ¡±YØMq¦i@ƒ9yy§º9gœÌ ¸š2šzÆ'Þq 4ðàYh¸Æ02$íOˆ•vqbº­œ!ž:¾ Ø]©ç¤•ye½ä줸ß*C‹P –;YÎ&…»J÷‡ëJ'Ó ê íXû'„}3©:ÞÈØYLUëª×2‰±´VêÕTmE¶­¶ðîT’´Eïjè°7ù>B¶L¥ÜቂÊÀœæmÜcX EÑñN(wçþòÀ4\Ý…‰œ’ù°ŸVžÜ¹Çï$ÈïKÿ/c>à:Q¹èALw5ëúsoPnwžï »ÆU Vº'M¸ªy–_KÙzœðׂ¼ñÔ«™/ϪƄ!%‹Á½jƒ\™©ñ]?tvÓ¹ŒôèŽ"ƒ¸&òLÄ¡nÑ”0uäžëœçüÇ1ö» /wÕÖØÎ7´ÇwÃjÚ€2[ äje™¾~gëø=vœÔO¸.Þhh ®\\´M—ìF ™èñE=ÌʾÑ2ÛìÌSÛÄ»sí¼7[ƒk…ANÙW?~ Oo¸•ÛÛåݺ£ðl‰X_ÑòºSë‡÷÷·ïé—ÆýŽiŒ>¸¼­ lâ‹£™ô&«)šE1¾ÉA^hÛàŸXmw­• ?Þxö<á:´éºtGÜÕe>a¬ð÷&yL[cÕ +ØÙbµÈVËu¼ü-oøÕÇÍ蟣ÿ5¬°Lendstream -endobj -1552 0 obj<>/XObject<<>>>>/Annots 876 0 R>>endobj -1553 0 obj<>stream -xÅWÛnÛF}÷W üä­›%¹@|IZ±•V2‚Œ¹”h“\ew)Yß3»KI¤ýP(šÄdîÎåÌ™3Ã'=êâoÆ}Œ(.NºQ—†ц“1>÷ñ£%¥üG÷ÿýùÛÉpÐñ^„# Çýh¾å4s†z½~4ág>è¾ìuì©éãz~rþå’zCš§k4Á‡Ä9íÒ<>»Œ.¢^DFÒýŒ¾ge¢¶†æ$ ‰’DeW²´Y,l¦J2Ro¤þeþ ›ìÝÛìôÇ°y6_e† -iW*¡¬Ü¨|# á:‰$Éøº!•º_¤*ÏÕ6+—´ZàŠÔWÜ3S,¢X•)¥Y.õ®ºtY{"kø¢ðG–±Þ­-ì³U:1ô‰þ’†¯u©Ó몣ÓFÆ•Î쇙¼s®¶Náø郴×wÓÙS‰pŸTúôíöæô-#ƒDu~ìVÑVì\ÞYÂ8¦;Îz»JR“ÒT*K‚*„Öy²Ï2û†6"Ï’p:¢i)ù‚öNtõÙµ–ë|$S¥ _±µV¸N¸žÛÖ%h¶Æˆ¥«ˆV1¾|tÅP.Lçì¹2ˆáI­w¬ï`«+ʵ}ÊŽGü…‹š-+íã¦F*b‹ÂBÜ¡>Z -Ã|™‰b!h›å9žÁ7®´2n—JÐB-+ÓD´þåþ0ç‘y.jY(+ëJ§"Ë™B>KšÃÚ§åùm©:ÿrºDž¹Ï>”¿n$àኺ'}+@2Br°×!·œç*~!U¡")|áF,µh¡²*Ì,ôRáº7;XX+‹µeôQ‡¬–¦Ê-÷ч·Õ2Éu¯Ñ8ýp -Í\Võ=mY:õdß1Np -|hæ‹eÆj &ƒÑ±kqI”‚I‘€¾‰#ž{ _¢ ®Û Tl°èaÞn‡;ÔQ'ðÂÂå˜FŒ2tβ×/?k¨”ó ŸŒ³ãæÄm1+¢9÷C¶fAã]„PsOãF$öŒN­ÂÓ÷l¿§2¬öÅÌ u4@)–È,l…ˆ:·Ù©-(ós‰ÃZÐG“õBÐ÷GcjÁ=ßGý _íGBspD_³²z%³3Ð*’¯˜ -¶^.‚ù3¢à(’PGÆñÓÃÕýgê<ÓíôþêîÁ}õ›!aíIÎÞ‰§ÓŸD½ËŽÿµÞ1==ƒ¬jÁŠe&[2y+ûeì ^—b…â/$šƒ´C¡€Œ]˜gõ&w{xTßöJÚrøóºêÝ‚J†L¯xÍ0ÒZæ¤k []ÌJb„{Öûš`A®·Çš#çÒÆ群þL½až4AïÚxÕœ´h,û~¼»u­VÃÀkcê9>´&ú ó+†¡9quu¸…Ôûï&“[ŠWbÍ£×ÆýߧßçS¨”'æe7´Ãaón œAD7aÚOŸ\¸ÃzuDÞÔY`àò˜Çn^` c~†þâ|Þh²†'°qÃÙØ]~h|ÑÖŸ-—eFy-è -¤Ðs¦ }#7èö F;­7·£ª ,âmÁö|œß·» '”6qžg÷×ä§ýqgJ1 ”ëð6àUÈIÁìêþúŠ¾iå¾[»ä3¢Sx ñûÂϼ1 ÇÃh<šà FÆ]¶ýy~òÇÉ?› ƒVendstream -endobj -1554 0 obj<>/XObject<<>>>>>>endobj -1555 0 obj<>stream -xVÛnÛF|÷WØ}HIE—´)àÄIûKnÍ (â¢X‘+“ ¹«p—’õ÷½P–d;mcö`rÏeÎÌœýzÓß1JG”7'ƒp@ÃiNh8ãs‚Ÿ–ÓÒ>H‡ãÇ$é0L;1ž><ð:;‰Þ )Ž)["ùh2¦¬ $ (ËŸee¥¨áº”Ub-ë5WÄŠ¢Ò•$—¤KÔ#ëZn*qK+Ö2¼Í[EZÚgªY„¹KZV5ùcöé4uÙ‚d‘ïÙÙ­jÎG{KÞö‡¯Y³`tuñ†~›Ìæ”—l…àT3ó»dâ (ˆh̅ѦàñÜ–¸”-5 \³ªVG'>ÝÖrÁê¿ŽþMþ‹‹¼Ý®4úRj#ÛBÑ+ú“éßV<ïÚJoñR§xûDÌB6 ¥×òVŠoÇû‰˜ ù5Õ|ÍkvšRߺly.›†‹‚O¤’ÊŸ}…£þ$G«O³·Ùûù¯óÙS½¯˜.ÑI¤dÃ7%kyT‰ÈL1R[¥yóDΖ³‚¤¨ -[Õ>Á‚Äf€C4ó±3ó$môbôATwäRËsÙ M‚sÌï,8åȤya#p–—óçÄmx]›¿&¶yÒWšBèüòš>V¢E³,J Ó¼U Rv@g¥Û.×ØcáþÚU-/B.z7Ýi&H&ŽÅÓðE˜†qH0}K’£ÎÝkç¶Ò]OºdliÕÊuUp´^r*,ײݒ*eW{=×ù¾Ý+C -&ŠI}× éíªÊ™¥’Ñ-æ¼0í¤,žFÄ ÇÛ·úP¯=ãÏl+ð -E dÁTIAA‘é!:5:¨ŠS -ê?÷Óðš½eEVüÛ{Do…Qÿ•—äKúyµùÅíÉ}þããìûCÛ°È ; é€Nté˜D玱O³LƒÝ™©´ÜË©fSrAÎø@:àW*3ò¶/Õ­±·6¤?xe¯ œWb¤=Òžû6ø“]²›Ñ|‰;õºù[ÀõOon~è3>5Ûàÿœ9!ÐA6“ÊŽ Ël® µ›dŽBz#E^w -+êüÇÎÿÄ^sàeÍïªEͱîŒ&#W¼…Åÿ0´€a+ÿz_kÈ,`µœ@ó5HÐL’Zñ¼‚ʘÛ@˜¢±-ÌQBtÆí 0Dwþuà*¤½ =˜~|.…h6Ïvn!¸¶†i÷‰­£Ê¹zn»0jööbý ]³©œçúª]D“.0ËÔçCóàPsO=—aÑil^,Ø|þpÍú½¿ ìéÁØ”Ü0ÔÒ˜ZGÍí2Ý(ÍÌöŽ\ž¬¹wÜ÷ž˜RLÚèð&í=àÞkíóàEâ.çâH¢ix q“Ú­k/­†7 ÈÊë0îBßÈÔ#†L¬†7 ¿ÄÒXé^g³ŒúÜî¢öjþ/i'8„“iJ£ØožëóË×çtÕÊÏXt!ó÷‡¡k<Âõq’R0àêÕ›—Ñɲº5 À©Á zè0¡±)ì ÊÍÀ„Ž‡áx4Øb›½ÍN~?ùb‡$•endstream -endobj -1556 0 obj<>/XObject<<>>>>>>endobj -1557 0 obj<>stream -x•W]OÛH}çW\ñ”J’vß(‚ÝJtKÚî/{‚gkϸ3Ùüû=÷Î8NœPi…@!ßÏsÏ=óódL#üŒi6¡Ë+ʪ“ÑpDïG×à M¯gø<Á¯×´”—ÓÑðªÿàÃüäâþ7šŒh¾„­«Ù5Ís‚¾É·…ªíi<ÒׇÓgí+‚q–>˜&²9}76wë@ówóNFt>™ÂÈà&Ëttëlã]IŸLh`ãYôw~9E°8 ã!}3zmì‹XÍ -e_øñ[oýZþº)ôŽÇÑP|­¼i6”Uº—äoJãqò7™¡ð÷ ×d¬yRÕBq©`ÂëR« Éy¤¦dkKçw²¤¬4Ú"ùÆ!Í''«óªiAÐMƒ8%Ôd|ÑÂý˯¿"aɶr¹YnÄéÊæÚ—›c©Û_Åt\ÃîUƒ?¹ 3åõrU’uxæ(sUí:'ÑvAº¥¸”.4‹~e-‡àì™S–É}›‹[è ¼–¥YšRS×'X(5—Ñ©dW啱ÀW *š)‹HIª -é&@1ÒŸn½-•øØ– l-‡ Gtéö=rGÀ M1±gÄ8*õ9þÍ~ÐÚ4…äáÍKÑP帵‹UÓÀ ;²€gˆÀsãu† 6 ¡6¼`÷J”{E ,`Šðêׇ[ªUS é{¡#þ*mWT»:œ¯ê3Ž ÁÀ!Pó¹JèÐgïPßÆè®8"Á‚vº¢Ô[6ßâ¦mܜѲð OZÕ’µu¾ReLPI~Ò1\ϸ±J»#À[T(dªÈÑZ.Ni¯"«©RþG,ÕÅ}—ÞSÞý6†tÛÕq‹qÐÎÆ­ͨöøÛÎ -×±GÏøÁÑ›Unxnûçxúf×VûP˜ºwø°Ü­|ÃM 8É+S A \;@¯öª@ªêEÓ ÈêçJ`Žj  ØÄ·¨|¡Ëœ‘O"Ú1B婺ÖÊ“‰WøߎÔJ7»ÓzÆèU-Ö…É ->n€yðUÎ -"À¨"нåIÞŸ •Ê,I`œ€ÒH¨*B°¸üNx#3c’÷¼ I0ØUò°ç˕ͬ*Õ'.™õvp…:âìà½ÆTŒ½8[n˜â™I#¶Îº¹|¿Ë›˜ÞÅ}K=ƒ½>rC°–ÈÀa“Èb‰óÜòiÛý‘²jåÑq,Ö~m,G†½°ªkç›#Åêà‹O  E–ª<Œ EŠkº›°-VC>µ\Fêºß&»S¸Ó;fã¬îtÐÏck h®~hz<>݇\†G9ŠŒŽªOf×Ul0.9áÎú Ë%=D$†0R»d-å&Ô¥‘µË€ €f© îWIˆ¸8h³Ü’9<˔͓"cEÈd¹ìøT2¬PàC,Öä‚™UxÜ^Øæ^®íNVíV%@ ‘Ñ[q,eœwܪWeJµ`ÑÇ‹ †{Ó©ïÜÄ8ñ!Ý@†³rIÕ”`“ ”ÕÎ7&6ª «:êt¾ôé–b¯;‘µãTÓj‰£œj‹µÜ¯­¸—r‰1°IòF>“Ž¥õwèF êÑðŠ/¢ïÅìIM‡³«k\ûq!žMØßÝü䯓ÿåA"–endstream -endobj -1558 0 obj<>/XObject<<>>>>>>endobj -1559 0 obj<>stream -x•X]SÛF}çWÜñ ÎŒq0¸6ô¥„tè$7é/ki…¶HZuw…p}ÏÝ•lI&I;26»ºçž{îÌèÿf´<¡ÓEùÁñô˜ËÅô„ægK|>Á‘”øƒùüdºxí`v~>.WoßÏi6£U'‹³%­b‚ƒãcZEãߤ‘ù†.²LY]NÈ¥’îE¾´’"Ÿx*ë îÎýq.TÑÜI\IV99}³ú ŽÎiûìèètŽ`VñxvK3Zãp¾aËGÊ!¶†Ølû§SƒÑ5*¼Ñ…0j¼åy—û{.`~ô¾‚ß+]8£³Ñn€®…€l¯b•$àlá|eŒgƒõî[éPÒNÈjº9„§PoäÉ•­ªÉt| j) §»ÎK”±n'aЭ a³Ž„ͦôžmÞí4¦_-.:‹«W+ë@\fl©þöÑèª| º€D`d [­jDÚiK]ÄLΑ‘"MhT(+/2ªðñ; ‹@‰å¢,¡'ëM#Òª 1R’ÌdX Eº¸ú@µ -ÚF‡æpB‡5þã¨_i­œmmyÀvc?p˜ì tÎç’îœuÃlMÓc¦×"ãÀüã :8Ët2g`¦9îמãæ -T6ÔÆÇÖ‰53c°¢Ó=S=¡µDàûa;¶kTaø°‹WŸÈt¶Þwã{LþA¦ -†'¤Í÷Æ«9êÔ »ƒ£´e¨È»öëó Ø„«;[mÂÓÅ¡cž@;Á³Hç9²CYñ-”-J¡;CXɇ%Ü»¥¢xÜ—!ÝŒšV»0ûÎ k ìågà%ède+/û Á.%‹†‚Y™¨—™Xç÷³¸G%°3ÐEIk÷ä²™&£ÏÉ!¼—•£š×”ãO…¡á5,± -Ý q{š3‡a´8U™híçš/#/Z¡õP¨ Ú~€Ð/tƒ¥ÏÄØ$X"Ø.úÞF|ÂDb¸0gs mVȵk Æ¼È´ˆÛñ²WÇ•xjÇ-Ï'›ªr5Ö%á hØö$Vœ:UàPD.EáÇyáéøðÆe$O´ ó/¤¤­ŸÌ }@›Šçv!ØïÝÑí^lE¦= æU Qª-€€ÎDº2#H£ž$áf¦õJŽ/‚þ‘FO¨ Ÿ¿ ¢é°pJ5«‹tX¾mXUùk¤xQF9R…Jøõµåë#ô€OPÂL²“)½Û®ßw?gí]Ì[ÄKÚûý}˜±vcÌGd^k½ÜAúòtÖ[>Š³ò Ö‘[nNfƒ¿v›vüo€¯•Y2 0 mGïæz»QóxßúÄ,`×"æ<¬€{œýüuPýN`èhë6™lxðŒ(Â8wýqLòED¼Ùp~–c^Y|£ó2ú–—ÉvãÁY£ýÂØî­PMv­ý¡ê¬Ø·„FÆ-4;h;TlûYd[ö6¦ýèèÞ jÃ*†ÄœÒ¯”tiUàý»N<|Ü“=ÿFÆcÈëb +/0>Ÿ{ûVYë -kVcw˜yó³ñ4PLχö:jÕ͉UåÆ6e¤«Œ”*ô““‹8@‚Er¨w!|*dÝO`»¦¡¹|GÛ”—¸ò‘h즣Ϛõ¶À_ÎNùo¼pÞ_|¼¼ ;£ÿÂZ@ïtTñ†'¤‚¡>j¯-Ïùþÿ|%Ÿ/çÓåâ /õxvyÊ&¯W¿ü -0@³endstream -endobj -1560 0 obj<>/XObject<<>>>>/Annots 881 0 R>>endobj -1561 0 obj<>stream +v(C•ú%Îhcú±ëÁ*.0݉fŸÛ˜Mc×èô—MœæPŒÜwn“ºÑƒª¶*’ ÚÙõs)ä¦ËMGUN)’R:÷ÜÖia?]½ŠgD®–Òåj(÷þè¡[¤ò8bâ¢[+xâçß'¨Xo^x uÃ.ôÅâÞ¡±YØMq¦i@ƒ9yy§º9gœÌ ¸š2šzÆ'Þq 4ðàYh¸Æ02$íOˆ•vqbº­œ!ž:¾ Ø]©ç¤•ye½ä줸ß*C‹P –;YÎ&…»J÷‡ëJ'Ó ê íXû'„}3©:ÞÈØYLUëª×2‰±´VêÕTmE¶­¶ðîT’´Eïjè°7ù>B¶L¥ÜቂÊÀœæmÜcX EÑñN(wçþòÀ4\Ý…‰œ’ù°ŸVžÜ¹Çï$ÈïKÿ/c>à:Q¹èALw5ëúsoPnwžï »ÆU Vº'M¸ªy–_KÙzœðׂ¼ñÔ«™/ϪƄ!%‹Á½jƒ\™©ñ]?tvÓ¹ŒôèŽ"ƒ¸&òLÄ¡nÑ”0uäžëœçüÇ1ö» /wÕÖØÎ7´ÇwÃjÚ€2[ äje™¾~gëø=vœÔO¸.Þhh ®\\´M—ìF ™èñE=ÌʾÑ2ÛìÌSÛÄ»sí¼7[ƒk…ANÙW?~ Oo¸•ÛÛåݺ£ðl‰X_ÑòºSë‡÷÷·ïé—ÆýŽiŒ>¸¼­ lâ‹£™ô&«)šE1†Ê/2‚¾Ð¶Á¿°ÜîZ+#~¼òìyÄuèÓu鎸¬Ë€Â`á .Nò˜¶Æ²Z°·Åj‘­–ëxû[]ñ«›Ñ?GÿÒ°oendstream +endobj +1581 0 obj<>/XObject<<>>>>/Annots 886 0 R>>endobj +1582 0 obj<>stream +xÅWMoÛF½ûW |rƒŠ%YR +ä`ÇIk ¶ÒJFP €±"—’«ì.%ëß÷ÍîRiŠE“8ÌÝùxóæÍðûYL}üi2 á˜’ò¬õituh4àó?ZRÆpôðߟ¿ž†1ŽÅƒ1Ž”4š ¢qøVÐÜŠãA4ågC>è¾õ‡ì©íãfqvùù=Å#Zdk<ŇÔ9íÓ"¹ˆûÑUGôh$ÝÏék^¥jgèaA¨HÔv-+›'Âæª"#õVêŸÏ0Êî½ÑÞ`£‹un¨”v­RÊ«­*¶Ò®“HÓœ¯R™ûE¦ŠBíòjE¡®HmpÅ=3å2JT•Q–òïªOïO#¤ _þÈ*Ñû…cvJ§†>Ð_Òðµ>õÝôô´‘I­s»Ç¡c&oœk¬…S8~þ íÍÝlþT!Ü'•=}¹ýxþ‡±ÇA¢¼?v§h'ö.ïZ +Ã|™‹r)h—žÁ7®t2î–JÐR­jÓF´ùåá0ç‘{.jY*+›Jg"/™Bƒ>KšÃÚ§ãùu©:ÿ +ºBž[yÈ>”¿i$àáŠz§}+@29Br°7!wœ*ùFªFE2øÂDj+ÐBU].™Yè¤Âuow°°V–Ëè£Y-M]Xî?xÔĦaÙt«û‰pý{RÓŽñT•Z~¯s&¿ËP.]Fx Òc•¿HUW¾èLvÌŒƒéð¨“oXagÉÁ!)XÝh¹EG!Ü3e¹'OV©:•²¤ÈqÌgsª„='µè'ƒˆîÅ7' c ŒmkÆISUqôߊ¡BȨƒäoËàÿ ‚ÇÞPAèé·•Võ†õÏ©âþ’S¿7n5„m:ê½{ Q£“\øówçÍU]rUQàóŽ¥sÏÖDðㄧ@^aù¸Xg¬² 2( õû™D%˜5P à›8âÉþ¥ +òºËÁÅÝ~¸Cu +/¬\ŽºaöÁ(Cç,{óÆ*)1 ðøYÁ8;nܳ"ZpCä‡iDÞE9÷ô1nFbÓè52<{ËökpjÃrÏQÌÝTGTb…|ÀRÀVŠ uÛ­Úò4?Ðåç$ì½I4)Aÿ=O¨M÷üõƒ|±?šƒ#ú=¯ê2{±"ù‚±`›]à*˜¿ l +Ž")õ4a?=\ߢÞ3ÝÎî¯ïÜWﱟôâxzƒi¿?âø_ ÓÓ3Ȫ¬Øfò“·æ¹_%žàM)Ö(þRò¬9j;DÈØ…Ö¬r·šÛ^J;\X½[PÉ©“5ïFZËÜ‚tbt»‹YKÌpÏz_¬ÈÍúØpäRÚäÒ—ÔŸiVÌ ‚&è}·¯Û£åqcßw·®ÕxÂ`cL=gƒÂ‡ÖDŸa `Ç°24'®.±wšaÞærGÉZlxöºÓ¸ÿÛìëbõò$¼í†v8îÞí‰3Œèc؈cçWî°`°wõT–¹<è±]ɘ ¡Áx +_¶ºl‰ñ pÜx6v_;_thǵDQßcº +-ôy'ƒAßÉm +ºMƒáΚÁm©ªÂ +‹x;¸‡MçsÁm/È µMçùý ùyÚÇZLçâ1ÞæC¼ 9-˜_ßß\Ó­ÜÊw«7ƒÜjÆAôšã½Iï!acø‘—¦ÑdMÆS¼‡ÁÊdÄÆ?-Îþ8û¤Dƒúendstream +endobj +1583 0 obj<>/XObject<<>>>>>>endobj +1584 0 obj<>stream +xV[SÛF~çWœ>ЙH²%ãKÚt†„$}6-Êd:¡ÓYKk¤DÚu´+ÿû~{‘± î%0€iÏí»œývÒ§¾û4Š)RVŸô &I8¦Áx„Ï1~N û Œž'ƒ0~îÄhòôÀëô$z7 ~ŸÒ’Ç#JsBâ^Òì<-JE5×…Ì©+Y­¸"–ç¥.¥ ¹ ] YUr]Š{Z²†ámÞ(ÒÒ>Sõ<̤XТ¬øËÓ/H×£‰Ëăp€|çgg´¬8Sí-xÓ¾eõœÑÍÕúuö)QV°%‚SÅÌïR‰×£ ßCc.Œ6g(ˆg¶Ä…l¨–ZÎ5++upâó}%ç¬úóàß俸ȚÍR£/¥Ö²É½¢?øaîmų¶)õ/µŠ7Gbæ²f(½’÷Rüs¼Ÿˆ šÝRÅW¼2ÃNêÚA— Ïd]s‘óüH*©üÙW8ê߉ûáÐÌêóômúaö~6=Öû’éDJÖ|]°†G¥ˆ Š‘Ú(Íë#9Îr’¢2SظQí,ˆmv ㈋™'hƒA%FEù@.±,“­Ð$8xgÎ)C&Ís³¬°3ALÑšW•ùkb›']¥ dίoéS)r¹V4M£Ø0½Æ[¥à!¥{tVºi3Ý‚=vÜßÚ²áyhÂEï&[Íñر4¼“°ÒGÀoYrк{ïÒ–ºmJL£‚ -¹*sŽÞ ÌœrdË´l6¤ +ÙVùNÓ‡…~(E»–aù–¥¾m Hz³,3f¹d„‹„ÏMfTv FÅ`¸ïõ©`;ÊŸÙV`(Šæ`Èœ©‚‚œ"ÓCtj„Pæ§ÔÔ}îàð¢} eU–ÿÛ{Do…‘ÿ×äKúy¹þÅíØýäãìûCàmhäÑŽCÚ#];.Ñ¥ãìq€k0<KõœnÖ䬴ÃsCfFÞ8঺1ׄôû· à–sK`ÚÚS`׿ګP°Á6ç«H´PÙ©WÎ_¾zw÷C—ñ¸Áÿ9³‡aÐ^6“Êâ‚•evWØ]\†!½‘"«Z…-õ #gnÆ^uf‹Š?”óŠcã1x3|F.y—ah'†Å ët|«!´€URpÑW e@SIjɳ:cn Fã\RBvÆð 1Dw¶ç*¤ Ý4=~.…h:K·~!¸¶žiWŠ­£Ì¸za»0zöc-]»«œíúª]D“.0ûÔçCó QýÈ=—aÞj,_ì8};rÍZ¾¿ìÂX% c¨¤±´Ž94·sÈt£43 >/XObject<<>>>>>>endobj +1586 0 obj<>stream +x•WMoÛ8½çW rrÄu7Îî- ’ÝEÚmÜv¹Ðq+‘*)Çë¿o†”%ËNEÀ±¨ù|óæñçÉMðsAó)]^QVLÆz7¹Oiv=Çç)~½¦•<¸œMÆWÃï'oï£é„+غš_Ó"'Ø™à›lt[¨ºÑž..ÆôõáÃßôYûÊ„`œ¥÷¦ ¤lNßÍÝ&ÐÃâÍ⟓ Og02ºÉ2Ý:ÛxWÒGšÀØßÅ<ú;¿œ!X†¸øfôÆØg±šÊ>ó?â·Þù ´üuSèžÇÉX|­½i¶”Uºçäo†ø“¿é5€¿½!cÅÈ£ª–ŠK^—ZM&È#µ4%[[9ßË’²Òh‹ä‡X4Ÿ4ž¬jÌ‹¦]A7 â”P“‹Ë˜h Œ–î_~ý K¶•ËÍj+N×6×¾ÜK}Üø*¦ûàv¯üAÈm¸ø˜)¯Wë’¬Ã3G™«jïÐ9‰¶ Ò­Ä¥”¸p¡¡X ðkk9gÏ$ÀИ²LîÛ\ÜRoáµ,ÅÈÊ”šº>ÁB©¹ŒˆN%»*¯Œ¼jPÑLYDÒHRCPH7Šé˜þt›]©ÄÇ®Äak9H8¢ëH·ï‘;²^h†‘ˆý;#ÆQ©Ïñoöƒ6¦)$ož‹†*Ç­]®›^Ø‘ 8Cž¯3d°eµàÛè|P¢Ü3(J`S„W¿>ÜR­šbLß ñWi»¦ÚÕá|]Ÿqlª˜ÏUBïˆ>{‡ú6Fp="ÀÑ´CÐ¥Þ²ù7m㌖¥gxÒº–¬­ó•*cŠ€Jò“æˆázÆňUêOŒolP¡©" D7j X¸8¥ƒŠ4®¦Jù±Toï»ôÓðî·q4¦Û®&ˆ[Œƒv¶npà8hFµÇßØ®pvP¸Ž=ÆŽÞ¬sÃs;<ÇC04ûicµ…©‡Ë}ÐÊWÜ´€“¼2ÅÔÀ%°ôjï  +¤ªž5Ý€¬~®uæ¨Ê€M|‹úðȺÌiù$¢#ÄQö˜HÕµVžL¤¸Âçøv¤VºéOë£WµxØ&+ø¸æÁW9O(ˆ£Š@÷^”'ùp.T*³$qJ#¡ªÁATàòg8á9ŒÌŒIÞó2&ÁtbWÉÞ¯Ö6k°ªÔ¸dÖÛÁꈳƒ÷Si0^ôâl¹eŠg&Ø:ëæòÝn.obzoï[êíõ‘‚µä‘"Ì¥*Q ÄŒšÂm€oGK^%Úþ’/»©é8y#§µ'“iýX"§;DŸ Ý&Ô‘Æ ²ÊtY²Y™É‘ÛØXÁgП•–r‡Àžâ g«*'I'ÖÂÆ­è÷D[hÎ#-¾ÓÇ»/ßî¾<= lŸF™kØÎÓ›Aä½—À¸íŽP»ÞECÃl¬/tóþçG±ÜFÉmzÑ>±GgÃyÅ–D*©ö—®|»)†³¹«÷Up´ÚyÚËù—¹™7uÔ% Ó=™(„ÒàÏœaª_d s…-–·Êè»ÛOl»Ç+ÃÔÒO¡V!lœÏ)W f¨§§7{”¸¯íâtîBúò``€|Ã&‘Åç¹åÓ¶û"eÕÊ£ãX¬ÃÚX(Ž {a]×Î7GŠÕÁ3Ÿ@A‹:­TyŠ×t7a;¬†}j¹ŒÔu¿M¶W¸Ó;fë¬t4ÌckŒh¡~hút|º¹&2 "rUŸÌ¯«Ø>`\rÂ!œõA—+z‰þH a¤v½d-å&Ô¥‘µË€ €f© îWIˆ¸8h³îÈžeÊI‘±"d²\Jz~• +ÔøP‹€5¹`Dfw¶¹—k»S U»U Cä@´ÃdK`çž[õ¢L©–,úxÄpco:Õâ;€'>¦ÈpV.©šl”²ÚùÆÄFÄaUGΗž#ÝRìµYÛ8N5­–8Ê©¶XËÃÚŠ{i —›$oä3éXZG‰þáaTЙ  ¯øò'ú^̘ÄÓvÙ dëîmí®ƒü2g-$vÒéö¯h‘yyê¸ò¿‚8)°f€ .ÐúÒeP¸‹ûG~ØB;A&×ó®UIÏÇóÀZ¬“èù$6¸";„ ðotÆô$¶¥YÆo;ÎCûww<ö +~ƒë+$Ä[<}Ø ÍŸ¾‹·¾ÿy)§×.â³ùl<¿ºÆµâùû»[œüuò"Ÿendstream +endobj +1587 0 obj<>/XObject<<>>>>>>endobj +1588 0 obj<>stream +xXMSÛH½ó+º|Á©2&^ö²¶ØJ¼É¸Œ¥šEÒhgFï¯ß×3’-Éä£R¤lfÔ¯_¿nñïÁŒŽñoFËz· (?8žÓb¹˜žÐüt‰Ï'ø1’0ŸŸL¯ÌÎΦóáÁÅêàíõœf3Z%p²8]Ò*&88>¦U4þC™oè<Ë”Õé„\*é^äkA+)ò ‰g¡2±ÎàÞèÜçBÍÄ•d•“Ó7«àèŒf°ÏŽŽÞÍÌ*ÏfÓù”¾(Y«â‘CÚP¬ŒŒœ6*¥É•µJ6ØØ{t²D¦°±BL.U&¦uåâT– ÷i’ÓèngkÔ76nžœÒe¦¢'f`ÓÒÚà›¥ª$°D¦i­_p&ÙT׸¡]ÚúCf³w( ¢êDN¢ˆùýõéæoÒu!M‹å^ÆSât¸•-3±‘1T6‘h“Ó¯ýÜàõdðÝ_}þrõùᡲpò0þ ‘K!rùðfs硯)êLŠ-\ÁЧ-}’îâæöÞ[nS ´€Ûgi&CkÎ7lùH9ÄÖGÉÿ¶N5?ÔAÀøâzª€~E<ôÔËù.ci#£J§ž%YÇ&Ë©dßç¿p‹,Û÷ +ElŠðûÕåíý ²DÉ,î¥P +kk ZƉµ°¨o„ò7¡£Ja¿k!Ú¡p$¢ŒlU–Ú¸W²±Ò‘ÓN ¾‘ljÈlSж_ÆœUC!ßež…µÊ2Z0¹  ý´òÙ›mÿtj0ºB…7ºF·<ïrÏÌ®+ø½Ô…3: AáèZÈöš!VIÎÎWÆx6Xユ%턬¦›Cx +õFž\ÙZ š AÇÇ –rºë¼DëvÝ +éÚJØlJ×lón§1ýjqÑY\½ZYâ +0cKõ·FWå[Ð$#KØjU#ÒÆH[ê"frŽŒñhB£Ú@Yùƒ|‘Q…ßI(XBH,e =Yo‘V$‘’d&sÀJ(ÒùåªUÐ6:4‡:¬ñGuørHkålkË›¶ûÃdñ s>ÿtç¬fkš3½æ¡ú&;[röáOÐÁY¦ë9ó3Íq¿ö7W ²¡6>¶N¬A˜ƒmÎè™êq­% +ß{Üi´]£ªÇ]¼úD¦#À°õ¾ßcò2U0,áÞ­(Åã¾ éfÔ´Ú…ÙŸ@pYe/?/A'+[yÙgv)Y4DÌÒÈD½ìÈÄ:¿ŸÅ=*ΣHZ»'—Í4ØxNὨÕ¼n¤Ü¸* ¯a)ˆUè^ˆˆÛÓœ9,£Å©¨ÊDCh?×|yÑ +­‡¢@]Ðö„~£,}&Æ&ÁÁviÔ÷6â Ã…9›kh³0@®]5æE¦EÜŽ—½:®ÄÓP;ny>ÙT•{¨±. Eö'±âÔ©‡ r) +?Î OLJ7>(#y|¢™!Õ mýdéÚT<· Á~ïŽn÷bƒ(2íY00¯jXˆRmt&Ò•±AÝð$ 73­ŸPr|ôŸ4zBmøümM‡…Sú¨Y]¤ÃòmêÊ_#Å‹2Ê‘*T¯¯-_¡|‚þ`’Léývý¾ûá8kïbÞr ^²ÐÞ×÷aÆÚu2g‘y­AôfpuèËoÐY?nùx(ÎÊ7XGn¹9™ þnØmÚñ¿¾VfÉ$À€b´½›ëíFÍã}ë²€]‹tšó°îqöó×Aõ;¡£­Ûd²áÁw2¢ãÜõÇ1ÉñfÃùY^ŒyeñÎËèO,/“íƃ!²Fû…±Ý[¡šìZûCÕY±o Œ[hvÐv¨Øö²È¶ìmLûÑѽÔ†U ‰9¤_)éÒªÀû vxø¸'{þŒÇ×ÅV^`|8>÷ö­²ÖÖ¬Æî0óæ=fãi ˜žíuÔª›«,ÊmÊHW/>(Uè&'q€‹äPïBøTȺŸÀvMCsùŽ¶)/q!ä#ÑØMGŸ6ëÿl¿ +œ¾ã¿ðÂyþñâœîŒþk½×QÅžp +†ú¨½~´<>Ûî³?ÿJ>_ΧËÅ)^êák¹d“W«ƒ?þLÙ@»endstream +endobj +1589 0 obj<>/XObject<<>>>>/Annots 891 0 R>>endobj +1590 0 obj<>stream x•WÁrÛ6½û+vt‰2cÓ’-KroJÝ´™4vk«Ó|HPBL @šÖß÷-Jé:kX¼Ý}ûvñãlJü›Ò⊮ççg“hBóåm4£Ùrç+üI©ûpu³ˆ–ï|€h~=›M—Ñ5ÍØTN³›ÛèÊÿ'£'of+9]ͱ ?KâŸÖg—Ÿoiº u -Hóù >¬gyBëx¬gyBëxHzÇVâEˆ/ˆc]UV€3Õ—Ô!)…¹FqUãŒl]–ÚTþk›î1'ÏÊŠÏ÷_@qG„q <Ì‘c>¨€O{vBæ¥ÛÇÛ­Œk£ªbQ£²ŒR¡2Ò혩içÁƒ(u‡YT†žWè¤MN»ûP™UœØyom°x;ÈXÌÃìíèÂ×áâ;Í“Ez²w):2Ći Óµo[<†'%å§æÁxÓ££¹l.ß(40Ýß$ôxž`Âã/6På.D.¹–ëµn•¾ypÙx%=MÖøÛ”6cÇèÔˆh…ÁÛu%Ï+f‘»k¹Â×¼àaÑ•«¦Óþxž;ÚÛ¿É«3tÈVïØr.Ó9.µËk\q§þJö´úöiEý]‹ît\çhîZÅ;/Ú ‹É-Éÿ¾…γh1_âJ‹Ý‹ýe}öçÙ¿8à)endstream -endobj -1562 0 obj<>/XObject<<>>>>/Annots 890 0 R>>endobj -1563 0 obj<>stream -xÅWMsÛ6½ëWìÍÊŒC“²¾Ü™œiÜÉ!¶Ö1ˆ-$$¡eõ×÷-Àˆfí¤™NÇ3ò€À.vßî¾]|$ã/¡ÕŒ®—”–“8Šñ¥ûùó×ÉlDsZÎð‘JºNøïWÝOÂ5vçóè:ÜßD Z,WÑŒeW+Èú•“ Ö%Í“õÙn¸Æî|ÝibYoÕ|Í2Я£ò+§9X³U3È»Áš­ºŽ’`—ýœÍæNïj-›«}·™\ÝÍ)Ih“¶åzE›Ì¡Ó&îe]*c”®LôfóyÓÛÙØm²é{cde•(ŠÓ%ý%kM[e ©ŠìNòÙ«;Ñè’‘é¡VöD¥0_üf{éÔ}Ãω¶’l-…• CR–tîõB)Œ¬I/¿ì”WÚUÂ*}„«yV'׈¬Nw¢z—$ªŒt%½nQãâ6üÛÝB½òRC>ä„«•òi_¨TÙâÊÐ^Ô¢”Ö™ëXít|¥GQ${8Têü…©× eûZ?ªÌáz§Ë½°j« -Æú¨ìŽîE¹4‹bDí¸“ÎS6° lãå"mÄ`™ªl­³C*³ˆ6ÚC€¸<ôԙÊO|¨Ãïê¡Ö‡ýÕQ×EÜe€9Ôäª@8º°àX¼B 5AkSí7ùdGÒL¿8ä»ÏÕçºnô“xª2|Ee¾o<;!•JØÓæ¨öÀ†…Ñ%P…ˆn+¤,ç¼Ý KGÆÖ' -òŽ¿¤º®¥Ùk¤s'Ïš.’ oÊYªp:Süy¶È¡8«ºNå¿tkäéëõ'ì%gP5¨(}U=ôAî -jÇ]ÅÉøÀIººzø_T•p[[ÏÂâð£µ%ƒtÿŸJË~¥ Ùgk•Z¦oú97q¹Åñ0›ï¤oP©§ßžî_-¨q¤ò^ìA Ž°]Áú:‚_ðÁ× -*J×™¬‡öÞ¹šÏT-S«ëSCG:ËÁ”Ò©tÔ«ñÉx 3iÒZm¹Ýlõ£+¾–=äS*÷„ljÝðt@´ =ïÍèéd¤å13I”¼$æÚÖPÀc=vï³<sØþ“)ßÅa,Frg̲D:Di{B`rq(÷Ž,˜G^mžýUccFw#@Á£@ápdù\ƒlþë¬Í6SU?8uqi&toš^ã©ÁõÁ@Ðì´Íù|¨½)=Y9W|—3:rR`ÈJU)ð”@ñRŠ/Ü#]ñ£‹Ù¸ó¨Â¸9/±\ånPã:åñ·jj&Nšà~×.y(rít4Ldt¡“>À© -„v6ö g †´»Ö4—æ’j› -¦«¾+Ž÷ðYÕny k3YI·K™–¦º°~<Àùwn«ÒC!êfq •±ã¦zÉú=”|®yfˆº”9ŸÔñ`j^Ý cÊm‡òOÓŧ7ó~š:»;Vö˜˜½LU®R`å:ýä…Ú®ïÚ”9ã8úÙÍ|ƒ¬á>88ÕÂtâKûÆK*ÇDPZ­òÞÉÀÞÛ U\²ÛáPíâÛŽûæ¯Ûñ£!¿@¿w¶Ýï -}Ý%Ác3^ãº\Gk~ÄÜß~|wK¿×ú3 ¦_tz(ñs}zÛ -¼]Å7|>‰£EDݘÎIÀó7z)õXôUâ^WóÕ>/XObject<<>>>>>>endobj -1565 0 obj<>stream -x•ÍnÛ:…÷~ŠAV+’íZî²?7@Q´iQ÷.²¡):b#‘¾$Ãoß3¤äÚN7-‚¶5œ9óÍêÿIA9þ -*ç´X‘ì&y–Ój¾È–´\—ø<Ç¿S´ëy¶º|ð¶šÜÞ * -ª¶ÈµZ—TÕ„2hkh¯C³ù L-\MßD·´Õ­"‚Ó›>Dq¬?Oi:±ÛióøRr Nè/¥@”'o;5 -~ÿíWJÚèàéaê{Ùðtåbk¦=\=\£Õ`£¬ïŸ?üG;å:í=ôzΕÔeT5Úd‹E6çʈ0“ÂÐM´fÛjð-ì•2‰Þ1gRâU g- %{§Ã\Ek d~wæ¢6gØbà9=X òŠs9±Á½Q´|Bû¨Ö7vOýŽðUmR8ÆR )•÷ÅZvo”#0ʶ¥1Å9Qð¼Ë:Žü\.ø‰Í^JÝgôÝ VèªÔ` 4&‚É¢›ÐˆÀ¸ƒ€WÓ£åEy”²–‡Å/éü˹Žhx°Ì%V.›:—0*U;5 - $Ú@ÚyÕ>#æ”_ïaa~x!ÍŸÿ†$¼óv{÷jØÏ)]ݼ⓿vvJ(ùÈ&ò‰?³Æ#ãã.A©Ø loFk™?¨‚­e -²ÓDn¸¨¡ÏÕà¨aqÀ§pF‰ df±tØDX&Ñõ´OìOnlrˆþ‚_1·—ØRý‡ë´–4."f(¶¸nÛø© -Þ«H÷x™ü1߬ƒ'¶¿@ƒèÛnÀ²yjtDw6ËwÂHÕ¾˜§è“·LÄõ9;òûñ+ã{\=‘#„8Ý)ð+¼NöY9§ëZ™è÷Û»õà¨b…÷ÎzA‹âÕp‰¾ùôö }qö^$ôÞʾSX,¾µ¹¿Ùx`Væ¯ùêûÛ»}¼8é²\fåjW–+þéŸjòuò!BÅendstream -endobj -1566 0 obj<>/XObject<<>>>>>>endobj -1567 0 obj<>stream -x•WÛnÜ6}÷W à]ŽöbÇ›èC’&O àÂÛ7.Wâ®ØH䆯7_ß3¤´ÒÊJë*€Sœ™3‡gf¨ogsšáßœ– ºº¡¼>û°:›~~K‹­6xs³|C«‚fÙl†•|ò±;/-Íç}4z£¶Á*½¥Û÷_hc,Êy«ÖÁË‚ðóbõ÷ÙŒ^-®ád’Kí­¨ªÕB‹-vˆàK,ª\xe4oæØóeŠýêê:[°!‚!ܨׂ„.8XÚ{ ÍÞÅ2»á½ïI‡z „fCjõDî༬ÝOäöÝMw¦V¹û‹KŽö²ªø7Оw¿ÑFÔ -09ÖïJ‡§KÒfOÁ«J}—¼³Ék~•ÞVa»ëJÒû“Œè‹)B%980ß_Àqþ@ÞÐΚGUH#"€ nŒUß#/‡•Î›#眚Šœ´*—.£[«pðÏ )~[„œéeF€Ω¹r¼„mÁ‚ -«F¼G$˜Œs´Îí-9‹µ€ñý$dc2•>ŸF«h3ýÜÓ ìM¨ -²ò[P6R™xˆh°ÃEA1;`jkÎЗÂys2‡öüa€«câ.ä%’ÍKfšÀJ?š -)FòGƒ"ydžǠ½K ¾n¤ÊlU#×cn—ÃM£ <ÛtûQW(›V^à3k²\Üd±–¸Þ9äX˼Z¹:Q„*„0´Ì}Ô5©%«Kkc ï–t!mu@˜<­Îé©&•ÞXZ‡¶‚•)G{Š[*x‡Kk¶$£%mJ$ñ4TK±iz×rÚ£à~Ò«Zè{} Y(Ï­GéB¡‚¨¢ÿF%êª  (ýàC…y^ ©*³¡Àµ&ù$êÝ¿$RLÇôq¤&Õ4S‘Ѫg­¿R #BîfÇåêh-eTF† sS×h™œ•ãÃ\£íО< -9v ´2åÉy‘uÜh˜©J.ѤcËI Aéhn*ì⤚F1PË$æÄÙ £OÎqçŽíœA÷‚äàh-y0 ̆Q3‡ðU“ içrç£sxÀ¹™SiôòÞ‰úa·/Ö™kö´™Ä›~žÑÛv\§ -9ÿ’|5Ïfm.³ŒGÙä¤Ë(×V«ÝÄŽÃÉþ³ý¥m«Cƒ¿¹2¨÷4Ý­h—},@éý¡I“k½Ä\›ˆè¹ñyœm$j;ëIìÇvÿm›„‡:jÆ] U=·| äæ¼ÈAטžuñz@ ç¹ Ú7á"mNyÙ ïU-GŸØ'Ý“KkñòàkŸ±£·<‡ú¶cdUèˆ8§ç€ÏS4 ›[”l¥Xã8Eo¿^ k'ñ ÀXïf0¸XÄ‹7l”Ù»xÀìµrW‰<6‘:Ý[¸A¾£%/XäàÝé&WjÌKÿ4"–-ÆX {®pÛ<‚ɨ+Û&#kŒ7_»¤Ø‹ç&z\ñRHݽg å\à²h™áµ¦P›¥/;iÁ\cÅý–ÄfKª·{9ö’Ö¢Ó|2ŠX¾–¦Æ|¶1Ú–ÔË; Wâ~<Õ„%àúÞ%9âEêÇî=Ç­ -Ñ?¢˜Qm|ÑíñbE¡B:òR¯¹ÒŽF¼ÆXXŸ‰¿/ûRJn”1¥Î¢Õa—ÑCºbëˆ\Æmœr-»{auëµ]‹XšfÔ¸©ožrÝÍ¥½cð7¸ã4ç‹uSùøNáWüA€nÀÿe„<[›‹=§ÕkŽ]Ð ¥†AûRáê ÑU2Ó}¤]ݤ´ÿùI/ùr¼^^gË›7øfÅ_.9ö§ÕÙgÿè“Yendstream -endobj -1568 0 obj<>/XObject<<>>>>/Annots 893 0 R>>endobj -1569 0 obj<>stream -xÕXïoÛ6ýž¿â€a¨ IJ8±[`Rd -,E·xß -l´DYl%Q%);Þ_¿w¤dËr\xl-Z$u¼ïî½ó—‹ ñwB³+º¾¥¸¸Gøuò*šÒt>ÃÏWøg$¥üGwÿýúÓÅô6šÐÍ -šÜŒ£ëðKNo£·S¢E -û·ó-ÿö˜ñÀn­“UÂÚ6 %‰¥°’>^.>áUö_Œ¤‹Gþ\ž´F—ôÜQ›‰DoÎ:º2º®z'?¾¤r¹LR¡“:—‡—Œi8¹Ž®Ì Åï¶X²o‘Õ=;´ÉTœQm¥õ¶E±û0ÃÓX—N¨2œxP±ÑV§Žî§$ËØl+'“]Žø‚Îí™°™´-2e÷vñ³uÚà5U’D Òe©¶f”ëXä#ËN*£ÖÂÉQËæ(Ï'3àkŒœ|™´a_m„ªú7£äôÅ”ÈJ–‰*W¤Ë}{™PE•ËB"•NáXŠ ·º6ô[©žF?«²~¢7N–ì{òõ*ÒZ½V »ÜR(æZ‹ {Þ\EWh -ø#§&¢wŽbQÒRR¬‹JåÁ‚­d¬Ò-G†…äÜ´§á18ì¸Nì OºâX-P&K2uY²%ïÖ ζ Ô à–ªUmšûöÖllTå"z ·  C‹Ï&ó‡V»àïûrvIVJ_³DÇõ¾<ÀÂ.âg|´¨\,Ñð»Þê›O”‘10¾%î1AáEJ”uF-kNOÔúü* ¡áÕS ûÝ÷hÌ8Aãhî?÷Á3Ô*¤ªÊæqÏé\¯TùᙵŠ}.»&z&EaÒùcä—$íG@1D¨Ô‰ÌŶo$Žu]ºöŒão0‚IÄpýgFv»1s¾']6^Ýrº¹SçzÃèEqz¿’}YhœŠë\:nìD¦¢ÎÑn#Þ¾-Z&:ßÕ&YÏî 7~Ü}nr<ÊÕrde\嶾Mš¨¬‘ÉÏ-‚(𠉹8 §3m{+­éžµ®Î´ö<È;Ð:ÓNb‘Ü„"· íö.ÆcòI0Y„±„ ìLŠñŒ9Zˆ4“¶?±ã´=¿Ê5Î1Ã@¬¨˜|IÛ|4²€;d¤b?;"z¬¡@ýíuhå€I»¥€Šb~wà;B¥µ4 e2¯Ò~ìåp32_Ñ -o¶ÃëFTN&PþtßêOŒÝ»&ÕïrÔ,ÚÉ a]íd7ÈÐF!FŠ\ý ¡dt—Û\2t±P,UÙ¨ôôo-6—Á›ýÊ [ÉÑîÇ$tx¶ÓÆnËø0®6xþ™sÕëÑÈŸˆ>/XObject<<>>>>/Annots 898 0 R>>endobj -1571 0 obj<>stream -x•TMs›0¼ûW¼[™š˜€ÝNNÓö”NZ3“K.2£THTqýﻜ§—ŽÇ‹÷±ûö­ø= i‰OHYDqJE3[KJ³4ˆ(Yeøák8U>€Ô矟ßfa ¥Q‚”†B¤§ãIÒv6=7-×A<‰Nψ¦Ë`=¦iÑU’+tŽ—p†“ï<=#zœEçWÑÉÑ,{ÕÙç&«èíð×ùìòkBaHy½ÒUFyÙ«±¤¼˜o¹y§‡ùæfûpAB‘ÕT1CÌB½²+œÐŠtEQrb†3RÜ´ùE¬s5WN¬Ïq†U•(‚‹ük -ä!qªy9à ènsKŸµªÄ¾3C¡ÇlvA‡Cí ÝEäWƒÚ¼æØ¥°Ä@¦íñ&eT0)yIzÇԲ̭3¢çnB1UZJ}jï›TF7ò¤ÕB -Å©æ²EŠÁCa= Ðc¨ è¸íý&ÿ8F£têЖ5;ÃE¾¹ŸÃÇÉiâŠí$]Ûjã µx@èpp¿™ùbq®^€ük æï{V˜Ë°†;n° -)=Œ3Zž‘=ÔsÂ(J»‘˜­u'Gu ÿ;¨XºSj–d¹µ~Ç SlÏl”Ja8Ä{â£x%¯X'íxÍž„6g £vv˜ÓËXH 9þ¯]¢•<ö°¨{¥!Sx2Bí[>}×rÖÌ!Â3y`G;¶³½ØžÄ2üâW^0ð„Ÿ¹*̱uÕZع´ô‰Ž§as Iü`oA½ƒ]v’cÙLyO»íjoFµç—pa«àΘ4¼¨™¶ÁUâ%|;RkQZžÞùœ·×ÏDO̱³þ®Áª'3Þ {úà«/¿^¼õï{y•2Wcf˜âŹŠ) -ûK·ÝÜ^oèÎèG¸ntÑywô—Ö×-Né‹l¹þ ždI¥+¼p»²µoõ%Ÿý˜ýLzºendstream -endobj -1572 0 obj<>/XObject<<>>>>/Annots 905 0 R>>endobj -1573 0 obj<>stream -x­VMÛ6½ûW ÐCÀÖZþXïHݤnrŠv]EÝ%ÑITIÊŽÿ}ß’ì(Yš dgæ ç½™F1Íð7¦õœ·”–£Y4Ã/ý?¿ÿ¿ÐjG·TÒr-Û‚žFWŸ%Åq­®çëY´ åzŽ+%Íï—Ѽýâ«×ß%-æ·ðlýéÝ*º§åêwpß±'ÿŧ×ß8]ú8ýéãvt³¹§ùŒ¶{`»]ßÑ6óðK:~‹ÚICñ<¢·Ú:UHÐ{•mõÞÑeQIãdFUÈÛ£MçKx?­“%9#%銞D™6à€ñ:œ.)Œ!Žè]Mê”®l0]¢T­é| Ø0Ýæò«ÀÔÛµ¡7{»{AµÑG•I‹„K)*KzOVÖÂÃÁK¡*•<ññ`_e”)#S§’>`Š!Q— G•Æ›¤½Ñ€_"u \ÕùÙzŸ…N8Ø1 ¬$#­nLŠ(ß©¤;ió ¸‰¢Ð'K{䟫C.M[Ë.®8 -UˆDÊ'dK­áÁE’â I~®ñ&@%2JD!ª”ßKº4¢ Ü–ÚHR"”>3‰nð†{;Aj{8szôòÒ™N›RVÎߌZ34¢ém®,uœJ!€çú—øÏÇé{AЕúL¥HsUIÚ6 ¦â$dZ(„‚¹¦Ä *ÏÙX€¤ç[ê«d4ÉJ$…¤§÷ÓDXôæ›Í“¯¬¿0¡TW{uh¸ŽNÊåüìûf#Ú~ÓtÊ'ÓÒfûA/ŽI×ü´ýZ¥’’Fn„}‡_µ åˆÊ¦¢¢Dp†Nñ¥h’3ÚÈõy(4^Ž­ ôì0%_Éo&Äm]J¦ª -­®B­<{ƶL"F~îH5öß°ë´?uCà:TÂq¶6ç7L$~CƒÎ ¯á{8œò(ŸMÛgìï Ã÷iGôpqÞ‘ïÌæWµìDÄw”õö…ª>Ù3w¶gù¹Lt¡R -§ž±µV•ã†jiãŸÅbÈÏ¢¬ ÉOhÛ«ƒÈìˆBò}I?6•ªéOßË–‰ñnçK±¶êÕCdÝ@eÑë¬j(oç6¢¹ôpU¯)"4¶öÈD -i Ž:'¾ö}&~D#C`P¥à~tr.úDAèÔ™ -±ÃŸ!ÐÝ‹®ƒ:=`,û^è<+ˆu.P BÇ@T7¢:°Zy=ý ªŒÅð~ÅiÎg³Ù0Â[iä,ÕPÿxAÝ‘šºmÕnô´ÔÓ˜ŒÞ×ÍfF÷Ý`Yû¶\‘–*ž/;ü³ˆ'ãø¯@п?Sû‚ž(m©é==¼|xÆôÂeÜ}Eç~ÐÌy{àPÙÞ>§ЬWt©ÕÆÝÀ’YùL¤ ý.qn6 »·Ü» ¯ý,<Ó Õ‘ M˜c„¨Ã´Î7NŒ ~åíàଧq{ºXEëVT ;…ðâhl§]Ûý‡7Œ£*¨×á—é}¯×Rg´^­þÏT‹Š¦–¾•Ï>/XObject<<>>>>>>endobj -1575 0 obj<>stream -xu”AsÚ0…ïüŠ½•ÌÄ6;Ǥ)·vÚ ™^¸i‰•`É•d<þ÷}²MÚÒ†¥Ý}ûí[~Î2Zà›Q‘ÓrM²ž-Ò­óeº¢UYà9ÇÏ1†ƒYžæ—÷ÛÙÍfEYFÛr­Ë‚¶Šg± ­œo´ÇcOžµ …ŠÉ÷õÞµ¤£6¯ž‚¥ÆjâC<6:ë^ÉW±§Þ¶Ô ®IE>èQÔ{‘^m_f Jò5ÔnÕüɳód =|":“iÛz­mkâ{cMR£JÒžj¡Wã;‡ÐHç¤%ÇÚ „Ñ·à‹"!€}'úªð„³ª•1‹ánÊ]Pƒi8ƒ;çŸZ—““"-3:Ùåë‚þîz83ϧÖ9X%‚¯Øñšp_pZ=‡'j?4Ø×qÜdD±ùʶGEðx¤t´;)<¿« ¡æÿ•rÖº(ϲu:ôÔ´®±žýõØë䢞dÁ‹pVd0ò= ÏgcOÊ*q‚É;Ì•nâ]X§aWkXÛtƒ-õq Ñ­5 ¡Øëg÷©É q•j«ôa u¹Ëz\¦³Ûûw1œýƒD9M-[–iy»¤¬ÈÓ2Òz¼ûrGßœ}ÁúЃ•m1‰8“ÁHÙÿRå’’bqïÿcóU±J‹u‰UÀi™Å ÏÛÙ÷Ù/­ü‹endstream -endobj -1576 0 obj<>/XObject<>>>/Annots 912 0 R>>endobj -1577 0 obj<>stream +ÚÄJ.s8wXyÊ2ëY9G…î†d„ 9 .*V%2"ø÷P9@¯J6nu×±!sÛÈ<:+R@Â0X¢ûõЧKi&¶ÐJK‰´1ôL&=Lbƒ`·$É2ÝXî„.9eØFÄ/îý;J±tûvEÖf(sŸFÑ;5Ð!Öy© xاÏÊ’¦WCëiÈ^ÌèœFÍÈ•ÝèmDUá3èV "´úùw¤8%Ã/²×Ñt[ÇÐ:×V;•7º“Ä™5À!¨u‹W1×–³‹Ÿ pBm mðÅ‘¬%H ƒ!Ð]®ïÞߌ‚\±vy€½¢Ó¾qƒ×P–oxÙ] ió¼ë-è;­´¾ 6}}Id*ê ý&PÚu5ôÌÖ5g ø0‰8BC¾!¯Ö ]Ãý™‰Ò(?ä5T¸.âdš¼SpFÜoœ]‡à½|ƒŽqT˜u÷ þÑ‘S¤â0Œ KcPîý¤ø’…ÿ3ƒ$F»ÏN‚îTÉ&'Z| ²§‰‹ˆØS»Úî2üqìGณ;‰›¦ÚU—ŸÛ.Œžøètq߈º ”9Z„NÀ]Y:6•2†`³Æüҫч¦@?Ý©rpä1gôãäè«éóÃ`/(y†L\ºSòÅõÌKŽç`ÝqšsÄäÀPo˜‹äNɃ\ðàŠ?F®Ã¬õßÓó=÷u7†¸áç89ÜðQ +@ªkžB:d† .+£3,äº8"e5m[èO>Ò혩içÁƒ(u‡YT†žWè¤MN»ûP™UœØyom°x;ÈXÌÃìíèÂ×áâ;Í“Ez²w):2Ći Óµo[<†'%å§æÁxÓ££¹l.ß(40Ýß$ôxž`Âã/6På.D.¹–ëµn•¾ypÙx%=MÖøÛ”6cÇèÔˆh…ÁÛu%Ï+f‘»k¹Â×¼àaÑ•«¦Óþxž;ÚÛ¿É«3tÈVïØr.Ó9.µËk\q§þJö´úöiEý]‹ît\çhîZÅ;/Ú ‹É-Éÿ¾…γh1_âJ‹Ý‹%ýe}öçÙ¿"'à0endstream +endobj +1591 0 obj<>/XObject<<>>>>/Annots 900 0 R>>endobj +1592 0 obj<>stream +xÅWßoÛ6~÷_qoqT‘Çvì!Åš¡¶Å}¡%*f+‰®HÕõþú}Gê­hI»b8 È;Þ}w÷Ýñó,¡ ­t½¢´œÅQŒ/ýÏŸ¿Î›$ZÒjTÒurƒÿ~UÐÃ,\cw¹Œ®ÃÝåmtC7«u´`Ùõ²~ådƒuIËds¶®±»ÜôšXÖ[µÜ° 4Ç›è–üÊiÖlÕ²Án°f«®£$Øe?‹¥Ó»^D«vÁjßlgW÷KJÚæ€mµYÓ6shÅ´MçY—Ê¥+½Ú~œÅôz±vÛlþÖYY%ŠâtIÉZÓNYCª"»—|öê^´zçddÚÔÊž¨æ“ßì.»oø9ÑN’­¥°2#aH@ʒν^(¥ÆÈš”ñò«^y¥íX%¬ÒG¨±šw`urxÁêt/ªGyI¢ÊHWÒë5.Þkÿý-4è /5Fà]N¸ÚY)¿ +•*[œ B:ˆZ”Ò:sÝ«nƒ¯ôEd'€Jÿ“0 :¡ìPë/*s8‡Þéò ¬Ú©‚±>*»§Qî-¢Q;î¥ó” ìÛ:G¹H[1X¦*[ë¬IeÑV{(€'˜–:Sù‰õø]=Öº9\u]dÁ]˜CM® +„€£; ŽÅk”P´.Õ~“_mëHº—é'‡\k÷¹ú\×­~BU†¯h£Ì÷Mg'¤R {ºÕØ°0úê£Ñ]…”圷{aéÈØúDAÞñ—T×µ4Tƒcî¤óYÓEráM9KNCgŠ?ÏÙ1gU׫ü—n̓<}¹þ„½ä ªF壯ªÇÀ È}Aí¹¢‹£8x"éBWcÿ‹ªòîjëIxC~´¶dîÿSiù¯4!ûl­RËôíQ?ç&.·8`ûô *õô;Ðý‹ Ž´@Þ‹Ô¶+X_Gpàs|­ ¢tÉzlォùLÕ2µº>µDqT #°L)JG½_@Œò1“&­ÕŽÛÍNqÅ×±‡üšÊƒáqb·<mÏcÏ3:™hyÌLR åcω¹¶5ðXOÝû$ϧ¶ÿdÊ7Dq‹‰Ü™²l‘QÚ˜\4âÞ“óÈ‹Ís¸jjÌèo`(xh#Ž,ßkÍ?`ýè‘• Ùvª§Þ#î/íD€®óM3ÀK<5º>Ú®9¿ãµ·¥'+çŠïÒÁ qFG®C +LY©*ž(^Jñ…{¤ë ~t1{ðwU7ç¡3–«Ü j\§<žàVMíDÂIÜïÚ%E®]‚NƒÆ‰Œ.tÒ œª0AhgSs98kà0¤Ýµ¦½4o`Hªyl*˜®†®8eÜÃgU»ITä4p¬Ëd%Ý.eZšêÂúñçOܹ­J›BÔí â*cÇMõ’õ{(ùþ\ó<Ìõ)s>©ãÁÔ¾úAÇ”»åæ7^q̇qhîìîYÙcb2U¹J•ë8ô“꺼ëRæŒãèg7ó²j‚{øàèTÓ‰/Ï©œAiuÊ'{ï‚VqÉn‡Cµ‹o7î›g¼îÆ–üýÞÙn¿/ôM”ÍxƒGèjmøóp÷þÍý^뀚~ÑiSâ)æúôºx½Žoù|’D7½wc:'Ïßè¥4`1T‰{]-×Ëh½ÚàAéõ-+}»ý1ûùÄ endstream +endobj +1593 0 obj<>/XObject<<>>>>>>endobj +1594 0 obj<>stream +x•OoÛ0 ÅïùDO)иv’%é±ûS`¶n˜‡íЋ"+µV[Ê$¹A¾ý%;KÒ]6’˜"|” +ÊñWÐrJ³Év”g9-¦³lNóÕŸ§øwŠ6ñÁl5Íç^—£ë;AEA幫%•!OžS)Ç•vJëöÔ +ÿtYþå4™.P ¬Æ뤢£[)¹¾›‚w +B:¯*ÒÆ%*² +µ¢­p¢UA9T^vžcjDg)× ÐÄâ&³y*\Ù2£÷‡„ ÚÚéPÇl>S WÑWÑ®mt£H„àôº QëÏSšVl·Ú<¾”¼'ô—R Ê“·­¿½ÿú'%­uðô0ö¬Ixºp±5Óì/.Ñj°QÖ·OïÐV¹V{½žs%u•µö=Ùb–M¹r«b@̤0´F$­Ù4Z| ;¥L¢wÈ™”xèY‹ÄBÉÎé°WÑØG™¿9«ÍÖûxJˆ¼â\ŽlpoíŸÐ>ªõµÝQ·%|ÕC›TŽ±ADFBJå=ÁD±–ÝåHŒ²ihHqJ<ÏIJ#?• ~b½†—R÷}3¨:#‚jzµ=‰àC²è&Ô"0î àÕô¨GyV^#%D¬åaqÅs:ß9× –¹Ä +€ÃeSç²æQ¥jÇFDÓ(B[¯šgÄóë<,ÌϤùÓá_‘„wž¢Ñ®ï^õû9¦‹û|òÏÎŽ %ÙB>ñgÖx`|Ø%(ëžíÕ`-óU°µLáLvšÈ5ô©ìÝ5¬"øÎ ‘L,–›Ë$ºžv‰ýÑ €MÑ_ð+æö[ªÿp™Ö’†EÄ Å× a;?VÁ{é.“æ{„µ÷äÞvgh°]SÁ X6OµŽèNfùF©šót}ò–‰¸>'Gþ>~e|‡«'r„Gƒ;~…×É>+çtU)ý~}·êU,ðÞYÍhV¼ê/ÑÛ¯oé³³?ñ"¡·Vv­Âbñ­ÍýM†“e~ÃWßÿÞíÃíÄIçËy¶\¬ðÊ@ÂUÎ?½+G_F¿‚BÂendstream +endobj +1595 0 obj<>/XObject<<>>>>>>endobj +1596 0 obj<>stream +x•W]oÛ6}ϯ¸@6ÌZù#i’ØCÛµO+Ð!Þ[€Œ–h›«DºüˆãþúKŠ–¬¨[¦ICñ~œÃs量Íi†sº^ÐÅ•ÍÙûåÙôÓZÌh¹Æ›«ëZV4+f3¬”“[±óÒÒ|QУ×j¬Òúòî3­¥J9oÕ*xY~¾Xþ}6£W‹K8™”R{+êú@Ðbƒ"ø-U)¼2š7sìùuŠýêâ²X°!‚Í ºÍJÐK{/i>o÷.®‹+ÞûŽthVÈЬéO­Éœ—£»‰Ü¼¥Û éÖÔÂ*w÷â% G{Y×ü™Ð#ž÷·¿ÑZ4 +ir¬ß•/I›=¯jõ]òÎ×ü"%ø¥›XÕ’Þ ¢Ï¦ +µäàÈùî—ðáä í¬yP•$02 yÁ±ê{ä%æa¥3Á–ÃÈ¥§¦&'íƒ*¥+è‹U8øg@ŠßV¡dz™dçTÉR9^¶à‚F8Vx˜Œs´Îí­˜+áÅJÀøn’2Š‡1™J_N£U´™~ÊÇ4{ꊬü”T&b6H°—†‹‚bvÀÔÆ +œ¡ß +äÍÉÚó‡A^·¡Ül¹5`¦ ¬ôƒ©1’?àƒ +÷6|Rm6ª•ëÛËá¦QžìBvûQW(›,/ðY´(WE¬%®·V@Yn…V®I¡ +! -KuCÊdu°ÖÖðnIAWÒÖTñ€ÉÓꜞjR鵨uh+X Ù!!åacO@qKïPâÖš°Ù’Ñ’Ö +%’xª¥)Ø4½Ëœö(¸›ôªú^HVÊsëQºR(¤ êè¿U‰€ºjƒÆ‚L”þaСB‡³"G¢ÜYObW8¦°ûoÛ$<ÔQûpÞPõSËç¤Üž9èÓ³©^hCêei‚öm¸H›S^öÂ{ÕÈ‘ð'vã {réqí ^|ù;ªqËsˆ¡o;FVŽˆszšðùqŠ¦ÀcaK‹’­k§èíá׋ay?#ùëÝ ‹xQ↲3{¯˜½VîjQÆ&Ò¤{ 7(Ã÷ƒ¨ ¾u‚\êíý@鲕l‡äÓBü‰¦+¥§(ð)ÐMó$z‚­¹‡¸·?ßÚ³j3Ü´V«Fù¼)öõÞñ²‘.w÷¬ÏhÉ ¼;]ÃäêByéŸFÌeƒ1Öφ=׸íÆF“AÔ•m‹ÈãÍ×{ñÜDK#^*©»÷l¡œ \™^k µ]ñ²“̵VlÑoIlsIõöc/Ç^’-:Í'£˜Ë×­i0ŸmŒ6–Kêå…Ûâ~<Õ”KÀõ½9âEê‡î=Ç­+Ñ?¢ˆ¨1¾êvx±¢R!‡Ž¼4+®´£¯q.¬ÏÄ߈—ýVJn”Rg‘uØ!ºO÷Blñ‚˸S.³»Vg¯y-æÒ6£ÖÍH}ó”ën.ùŽÁßh<àŽÓœ/Ömåã;…_ñºÿ—3äÙÚ^ìV¯9vA'”í· +Wgxˆ®’ùM÷‘vq•>ÒþçW$=çËñòú²¸¾ºÁ7+†üÍœc\žýqö5ÿ“Wendstream +endobj +1597 0 obj<>/XObject<<>>>>/Annots 903 0 R>>endobj +1598 0 obj<>stream +xÕXÛnÛF}÷W PQ‹ºX¶œ}pà¦Pi­¾hWäRÜ„ä2»KÉê×÷Ì.)Q”¨) +´ Øârv.gæœÑ—‹ ñwBó)]ÝP\\Œ#ü:yÍhv;ÇÏSü3’R~€£»ÿ~ýébvMèz†M®ÇÑUø%§Ç‹7‹‹ÑÛ Ñ"…ý›Û9-ÿö˜ñÀn­“UÂÚ6 %‰¥°’>^.>áUö_Œ¤‹Gþ\ž´F—ôÜQ›‰DoÎ:º2º®z'?¾¤r¹LR¡“:—‡—Œi8¹Š¦fP‰âw[,Ù·ÈêžÚd*Ψ¶Òz[¢XŠ}˜ái¬K'TN<¨Øh«SG÷3’el¶•“É.G|AçöLØLÚˆ™²{»øÙ:mðš*I"iŽ²T[3Êu,ò‘e§F•Qká䨉es”ç“ðµ FN¾LÚ°/‡6BUý›QrúbJd%ËD•+Òå>½L¨¢Êe!‘J§p,Å…[]ú­TO£ŸUY?Q€'Kö=ùzi­Œ^«‰]n)s-Å…=o¦ÑMräÔDôÎQ,JZJŠuQ©Ôij¡C5[Ú¨(&àw¾#„QZ@ÃP&ó*­áÇ^7#óM°Ðòf;¼jDå„•?Ý·úc÷î€ Bõ»5v2HXW;ÙM2´QÈ‘"WB(]Àå6— ],KU6*=ý[‹Íeðf¿r@‚ÁVr´û1 ží4‚±Û2>Œk€ ž…æ\õz4ò'"O“‘6«‘_¯ÕŽËH¢÷—¹²wŽŸP-Vó-jV +Øå^ÖdmÂ÷ß#xÀñâÕ-ÎùÝqÅ­ýq W¯CãÂ)±X{âE¯yEUå ‰7k6GÚ‰^Ãôêýæ›2±f +o*ܯРJ$kàX¿â&ð:cœ‹ÈbÓf¿ýßÅNÁÐ}»æ„üÞ6ËáäßÉÜ^á •qØeïÞÜÑ£?a+¢ûî®ÅoÛ†ó1Ö dpLgóY4¿¹ºñÂí”íü¸¸øåâ/¬ +¶¬endstream +endobj +1599 0 obj<>/XObject<<>>>>/Annots 908 0 R>>endobj +1600 0 obj<>stream +x•TMs›0¼ûW¼[™š˜i§§i{J'­™É%„Q*$Wqýﻜ`§—ŽÇ‹÷±ûö­ø= i‰OHYDqJe;[KJ³4ˆ(É3üð5œj@êËÏÏo³0ƒ„Ò(AJK!ÒÓñ$i=›ž[Š–×A<‰Nψ¦ËàzMÓ £«$ rtŽ—p†“ï<=#zœEç“èäŒh–tö¹I½þ¦˜]~M( ©¨¡WšgTT½K*Êùš›gQrzœ¯n×$YM53Ä,Ô«ºÒ ­H×´'f8#ÅÝ^›_Ä:×påDÉúgX]‹2¸(žyM!<ä"N@µ¨æaÄݯîè³VµØvf(ô˜í&(ñp¨}¥»ˆüjP[4»–Èìz¼I•LJ^‘ÞðíX æÖÑs·¡˜j-¥Þ µõMj£[yÒj!…âÔp¹CŠÁCa= Ðc¨ èW¸õêø8F£têКµÃE¾¹ŸÃÇÉiâŠm$Ýn§ƒÔ"à £ÂÁýfæ‹Å^¸fò§Ì/Þ÷¬0—a-wÜ`Rzg´<#»o8æ2„Q”v#1ÛèNŽê@þwP±,u§Ô¬ÈrkýŽ[¦Ø–·Ø(UÂpˆ÷ÌGñ*^³N:Úð†= mÎ@14Fíì0§—±”rü N]¢•<ô°¨[¥!Sx2Bí[>}×r6Ì!Â3¹g;¶³½ØžÄ2üâW^2ð„Ÿ¹*Íaç «µ°seéŽÃæ’øÁÞ‚z·ºê$Dz™ò:wÛ4ÞŒjË/áÂV€;cÒò²aJØW‰WðíHm‡ÐòôÎç¼»y!zdŽõw V=šñvØÓ_}ùõêè­ß Ì«ô™™aŠgSö—n½º»YѽÑOpÝê²óîè/­¯[ÓÙòú?.x’%A–æx5àvå±oõ¥˜ý˜ýP¦¹þendstream +endobj +1601 0 obj<>/XObject<<>>>>/Annots 915 0 R>>endobj +1602 0 obj<>stream +x­VMÛ6½ûW ÐCÀÖús½ v“ºÉ!(Úuu”D[L$Ò%);þ÷}CJ²£dQh$9œ™7œ÷fþLi‚¿SZÍh~KY5˜$üÒýóû/ü -—Óä–*ZÌ“EóQÒÓàê³¢étš,¯g«I2§Åj†+Íîɬùâ«×ßÍg·ðmÃéÝ2¹§Åòwp:½cOá‹O¯¿qºqºÓÇÍàf}O³ mvÀv»º£M á—løº/-Mç ½5Î+½'AïUf3;Oo”óV¥µ—9­U)_l>&4ž-àeøtv^Vä­”d4=‰*lÀ§«pS%²BiIÛ!ÆÁXœ’ÌJ…P07”ZTEâ9k0½ôBK}•Œ!©EZJzzÿ8N…Co¾Y?…ʆ #ʌީ}ÍåðtR¾à×`ß7kÑôÛÆc>W.ßõzqHæÀO›Ð¯:“”Öªô# ì:üª]Ð(GT6šR À9:%”¢9HÏh#ßuä¾4x9J)ѳý”B%¿™·u%™ª*¶V¼ +µ +ìº*Muü¹%Õ0t|[À¶Óþ457j¯…çl]Áo"˜Hü†_#ôp<-åQ>›vÈ8Üë‡ïÒNèáâ¼%ߙͯjÙŠHè(ìK¥?¹3wv`ù¹JM©2Š§±£´ç†jhžÅEbÈÏ¢:”’ŸÐ5W{‘ÙÅä»’~¬uªñO߈‰Óí6”dÚÇÚ2tÀU¾¦ˆðÐØC@&2HKtÔ: ±ï3ñ#Zƒ(‡lõ£•+p1$ +Bg Î¨Wˆ-þôn_´Ôêã`ÙBXA¬s‘j:Ú£ºzÏjôôƒÒ9‹áý’ÓœM&“~„·ÒÊYª¡6áñ¢ºG"Õ‡¦UÛÑÓPLc2_7ë Ý·ƒeeìÚpEªn¼lñOžŒÃ¿"AÿîýLÍzªŒ# 2Ò+zzxÿøðŒé…˸ûŠÎÝ ™ñöÀ¡ò{.ÎA@³^Ñ ¤ÖXKfå3‘.ô»Ä¹Y·€îšßFpï¢tô¼v³ðL'TG‚üÂ#DmÖ£U¾qb\ðË(ogýC<6§óe²ZbA²ü[/ŽÆÑvܶÝxÃ8ÒQ½z¿Lï{½V&§Õrù¦Zj;úBVóX‰BÑ›Mª­é÷%ý…ÿÀ‰ÇÎý(’äu÷C—ƵMÓÇ#æ.ó¶AX[ÒVÊñR—*ÔkS¡Ð>a%ºê,¨`Ø-/:ÆŒ«3žÍظŒ.ûã ›Qy³ñͬÄÔa€•‡Öž\íÎAì"ÂTÀÀ)!m`@ùƒÊ3u±ÚE0Ù+Æ~%ÂØÓ¤eqL ÐÉRU*îE#,ÄÀ€¥G±€ðÊKâhôÖžB¨׆ïc©R…)*„K{ Xù¼Ë¥Q«» yæs&Ç÷®æí†Üjb·¬,V‹du{)w·`°?o¿ þdžõœendstream +endobj +1603 0 obj<>/XObject<<>>>>>>endobj +1604 0 obj<>stream +xu”AoÛ0 …ïù¼-j7vÒØ=¶ërÛ°¡vÉE‘˜Zm,y’Ãÿ~O¶Ó­A— €a‰äãÇÇüže´À7£"§åšd=[¤ ZçËtE«²ÀsŽŸc: ·Yžæ—ÛÙÍfEYFÛr­Ë‚¶Šg± ­œo´ÇcOžµ …ŠÉ÷õÞµ¤£6¯ž‚¥ÆjâC<6:ë^ÉW±§Þ¶Ô ®IE>èIÔ{‘^m_f Jò5ÔnÕü§gçÉz<øDt&yÔl‚') ÛÑÞÙÎóP—(8æ«)¡ÒØ‘´ÃÇÇ2»:ø”î¥dïµyUOµ³%€ vìDuÃážvó®Ò²"Ñ4,ΓҎe°N££©ÏQÜxÅÛv?Þ¯é28Û8-¸@FÁ&h“›Íe@Ç‘,³‘”føÒ7ØÇà¿CÃä“ÜÓwg_°>ôhe[cL"Îd0R¶Æ¿T¹¤¤XÜÅûÈýÞæ«b•ë«€Óò6}ÙÎ~Ìþ±[‹endstream +endobj +1605 0 obj<>/XObject<>>>/Annots 922 0 R>>endobj +1606 0 obj<>stream x•WMSÛH½ûWôª5UX²Ørn„„]vØ©Ö9Œ¥žDÒd/ùõûz4cŒcö£–FýñúõëÖc/¢!~"Çt:¢´ì ƒ!®l?>ýÚGÁ˜Î‡“`D%ÅÃ$8uß šö¢³®Ÿ%§AÌwG“ rßø.ìP‡¿ZRÞ{¤h k6.þ' -Šã >^xè¦Ö6L³»¿õÂ+8Ò,‡‘Ñ8¡Yf3•´¹«FÖt_«ªQÕMÛÕJ×Íñì›}6wÏNÏà–õq8 +Šã >^xè¦Ö6L³»¿õÂ+8Ò,‡‘Ñ8¡Yf3•´¹«FÖt_«ªQÕMÛÕJ×Íñì›}6wÏNÏà–õq8 èºjjµi£tÕ=£(rGã12ÁÑ·òAUݨfIÍR"³.·B -#Oh*Ê… Ó¹4öD%µ–ôEU™Þº›ÑʇVÊt)*eJCª\²”U#3v?¤â²ñ­• ÛéàÓý%Íû*µ:½ÿðáf:¥J”2£•ZÉù1'-×J·†Ö²6ÈÄÎ]Lº*ž|`xâFT·¢Ú†²ç3Eaw1¡ÆÈ~†tE–)†H”·•EKªy‚!½V /žº¬å†|ŒRUZ´™4oØ09ð–]‰(×5¤ªÐ"c”-P¨gVÁšrUH`ª·XNÎÃIÞÍÂxb§…~†Ú•®(“¥¨2›Bx•ºRÆAÂMdæñhLGxå monaÿ¼òQ—^Ô„«¿SÔ‹,ë8‡@¿¨¢ÎP®‹û/ócBV|øº´f8]‘–’;…ž÷k™ãi$¸lšÕ›0)˜*&0º­S xdPÉ¥îB™˜gÌ«¹›#su,³>~Ëp&]’04mDݼÓé=‡$ëz_µåïzaæýùñ É& ‚9O¥äty|L·Óww¨mÚ2ÇÑ(‘h|ž¥Éª Ti­Î› Õeh¹Pjˆ†ªwÙ=‚§ì§ñkܽ¸¿ž‚Çgÿ*<§,ƒàÆ.Ñ®i*¡KÍQÐ2 j{yõu=„ºéÅ7™6æëÿF9&ˆ^£‡|Ãp?ØjÀúc+[I µZµE‡F³¬uûÐéPk$÷:ZÚV‡4X@•ŒÅÒ¬ÀºŸÄå›^ì|(v_Á° bhô„¸ÙR¢`Ke!eEF—\>¢Iu•·¬I$ºmh³Dý!3(¨2TJ±BÇâºD‰fM•nHá70=[U[…ätöØåAê„ÂjÄ‚]›({u:¸Ô&+ØϺ^ó`oiŸ×ºÜv¶•€.8 -‰Ûs ·ºŸi€ÍQs5>}Dð(ª'ÚÈ£FQµå”+J§l¿'€°mT¡~ p4 ²†rw²ºçÛç.{‚à 0* -½á.¾ÒoaµQiHKDlÀ[ž¥,V¤rzÒ­õœIè¹p^ÞvåÕŠwx5r’Ú§ßô)íE¶£†¦–wš> ŽA+ka'—a×Ûx–c(£OÈÉ¡«ÔžR¸«á÷Eè’4áÇ(™„Q8<.¦÷Ù 6çÉo3;à¾ÎÕC[ÛžêΞ»äbL÷a~GÁ0¶Òð§eÉÑWZ›€º/²>úú2ò‹z Ï'¬&ÿ0“k ©ƒ òÜDovPlÉèÆú³æú€/ƒC ¸øŽ³LÏØýÎ qÝp„S¯U*)­¥ÀbÁ$òxOþÚÎKt·‡ï!6oƒÈ‚ÝÓþ6ÛÄr±çR`¶AëcÓÙšz`³T"nG0hf‘ ìB":måyZ¡-„14æ¡þd‡X·ùxÜnà׆Ÿ¶ÐS"à;8¼m·-7‰¸W€ë-¢5`æ=ÒV¡«­Øò}Ïq¡Óæø]¢Ï]Ž6ƒìïsV‹V°ÞU -Ââ´YÉTåÝöär›¢¾/ €¤Se êÖP(©‹ -:ý~îÕçåÔeüœÊv·N§U&s€ Ærx{X–vù'çHº[ÀN¼Ü"ƒîDKæhyßrq`Æ£l—bC¿d³G߃/Ãd¹@ƒgýëÚÎA¶¯/tþžX,[̇\Õøä‘ÅÊÀ”æÝó@o}õ[²“3¸²ØÒ¡´]™ñ;ƒMnvŸ}Sø‹?ë!Æ5Z˜º‡q¤}â×¼»€8ï[”xr:®·;ÇN€pŠ×ªÄ÷ooCgã³`>/XObject<>>>/Annots 923 0 R>>endobj -1579 0 obj<>stream -xWmoÛFþ®_1- -Ø"Šz£¨3 -Ôqìž‹«X*Ú¢>VäZdBr™]ÒŠ€þø>³KRŒª§ —»3;óÌ3/ü4“?cZLhP”|ÏÇ›îŸÇŸã…7¦Ùï(§ÙÔ›5‹ŒÖƒÞ2§ùÒ[öö–¾· é2ðBÈg6ÝŠûkì¡ôw{kì.'°à(Úà –`s<ÇS»²Š{kìN}=îöÖ¼»ôàwo÷¸Æî<`£ºÝO$&/~󽓞Ûè~<§·ŠÞf“¥7¥ „çŒ×|‚cne뭱̀Ñqw2¶ @²(_ïVò¸Ôs–³y¯·Ìi±0ǽÞ>ù åqó¬O!,w.Î¥7›Áèn¨ió ÿƒpA›Ø’ħMtYÓö@¿¥E¬ö†6Tê´¨ÈHý"µ¡Já…zIcI¦.K¥+zVÚ’šbâA¶È”ˆŸ^y¯6> '<ÙÄ—¨šL¢ê,¦\Åé󪪬ö C&ßz‘*žé9Í$_&âØžØej+2*…¹¬ØQ`GQ¤¥¨pZžU–©}Zì¬tsñxŠ8àb“-ééR=S¤jmäk2*—„5ËvŠéEdµ4Ø­£„„¡‹RTɱ´ÐÛ´ÒBìåZ–™ˆ€Ü>­’“{E ¼€!éT[À°LZɧWÿb‰ÑOK“!ˆh±úÓ9ýßV£úÁÂïŠr™o†Æþ¢qž´Óª.[„ašØfò¬|ƒ­ ˜CÓȪ $-u•JsVZ+UQj(ÍË,Ò*$@Š©‚ð[S.Î~q€~¤Ÿ³›£“1ÒþiÏýpÎqGµÑ£LE"‘oŨÑ|ÎÚÂY‘ú±ÃYw¶T—ŒÔW€d1©n~MÉ¢YDLDÀâȆærº«5¸*uZ^3ç -ÚK*¤ŒÏuÅpî5øAYjª è&‘ÑGÇsÎ s0•Ì AÊScRUØÜÌÅÇóá6°ÁÙ&"ð‰æ•›,VØf"§ n»ç´HÏÁyÅqU@3æªZ:4ŠßRÔ —ç"3Šäg¸qÞQïÿ Î „ åÍk¾˜µökj “h“X$Fw¢©v—tÔñ¥Ì%»dK{ÄEÄQ&kQ¡¢Q&_dÆG@n‡ŸE,ØsZñZ$DAJÇ8MusÖs)ë€lª‘*l$-Oñ+bì„ZΡÀ¸„o[:iÓQÝË,óè*7fŽšº@ 1»³gBÚ8Î(±úGEÙJäµW*_ð¿Þ% ‡$´ˆuy²ð©ŠîÛrÅ5F|mìã ´Óóºïø*ÌÍÐgëyUi‰e)râ)¡£}-ªà+Æ,˜š3š9ÎÔÛ…*ª”ÆìaIÐB× 6ARtÚ}’bB‹@iP™ì4(^¹‘èäÚÆ~¤‹³ -Ã\ÏÔ`[vÜÉU¥*Š~¡F_;È>ÈÏÑ“Æj ´å|+¹‹ðF;Ì4Cm­ìßoÓaŸš¤‡tSãÎŒ… Cþµ^öfCžÿþ6üüÜü®èû^¢ƒï¿.{ÿ0ó[9þ¿'»œ–á7D§“ëÿ¬þ}ÝI÷DQÊ®³2ÿ»þ}õM ïîWëNAÿrhxœù¾ÿMéÕêæ(|"½R{©W7Vþ˜Ó]^,½YÓ?6›Û‡Íý/ßÑãíû_ïoßÒêöñÝýz—kFnt6ýs<›ya8¡ ¼éÌŽîëëwo®i¥ÕP_^Q͵Ïvn–Žƒ…ç‡S.|Û†nQò䌯HaŠæÔZ»,˜-ðu„øbCÏ -§üêv3x?ø…!ºGendstream -endobj -1580 0 obj<>/XObject<<>>>>/Annots 926 0 R>>endobj -1581 0 obj<>stream -xW]oÛF|ׯX¢-ɲ$÷¥°ã¤;n¤ (ê>œÈ“t1ÉSx¤õ×wvïHS²S´!Ûâ‘û1;;»üÚÒ?CšŽèlBqÖD\i~}úµs6Dç4ŸGÊh<D³ð-¥y§ý§ã³ƒS¢óÁ0šÒx6Åÿ#| -M+vC³Itq|ýjÑ9}7¦á+¢Ñ`H“Ùyt>™Ñ"‘À´ˆ{ïs²E¢ *-ÅUQè¼L÷¤’„åzGIaýéÞV4WÙRÑƺò„l®É®¨ÜáA›'¦46w”U®Ä iBeQéŸ_/¾t€G4‰ÆðÛ[l4©8¶U^Rå4î’§s—üo‰ã'Á˜zÄ3T™„Ý è¾g"áJamY»ÍžNßÅ!ãþ4šqIàò~4™’?­ñÃþð,ý`LKŽ(ÓÙÐ0í¨à¾GÛÂä%NU’™üÐû€שqeôRäul/ßÍ¢áõÏ.¢ ‡ÿqü«Âéµ`4m³”Ä•&MikÓÎñÿâ\é•Iµ|aø]µLL ¶0Úql­x—:תÜП’ÞOEôIÊB5àƒ­‘Û¨6ñ‹œ–Ò¾*´BótÿŠ–{JôJU©O¾/ü%(Ì™ÔäckbÆm¸ú1žåŒ8¾B­_ÒÄÅ£Áí*GÎÎÙØÈ͇‰œ3ÙÔNíQ´¹v”#›Cá*gòuͲûž-|™þS…{÷¯ôW…Í`æw“'vçèvAãhp:z 85h¶ˆ>nuNÝ[F*Žb¹Õf½Y¢ºk“.:•º7{ -÷Ò]ªPÆ®$¾,`‚€[›°LmÜ`éS=9rš«G³Æ=uCvï<—]E]xH!ý⸭ÐéN3ødrh€J‰IÍØ¡1B€\ÌŽL•ñ†™†2Öýá‰rÈar”ØæÌ¢% ¡Y.h9a5èŸ ½²pÇà‡æºï×"\Nyû-„TgâkYˬŒ¦µü[&?÷•£Úd†vÜgÂÚÜ‚¬À£N5H)(jÖœ]iÒ.YD‹qu{ø¥ÛÏ>+Q†µôlšÚD ú^Çðu‰vr«B@¼]œŽGžrN@luõeYêl+¨¡/ d¿]¢ma·º(¡¦jÚmL¼A®\ѧ˜ë‘Ñä)ˆ@ Ðîà›>Ê[h›A‘ÔÚŒÓw“ ¤\›0;®µ´9ô„Cu«<Ç€'ÆmSµ× £‡¯~fÕ½à¶:6+ÄëJ X~Ò䮄b鄇¤Ám­Mµ4z Vú’É¡¿k+2µSh/˜üB¹Ýýòœo!§7©‰Ðý¶ !F‚F‚P±¤± -ÖŽ·€¢Tv2ü*íDk<;µN4_¨R‘ç@|×°ï¡hïÏà;…\íèZ`QXVe‰fmà·‡pï0ý‘1=×)o MÐ"¬‚€ÝV[Qî…¦¨!9Ñ{/L¨°ð”õ©A”‰¿qoy¨çoMË÷«P"‡‚<1à0uß:¾ÿˆÛII»¹½Cë9² 6¢ƒŠv[“âÛlÒ=y"@®urÔ:pÈ 5™cæ¢1ºTªe­ -u-{jÕPgqé\…Me-ÞüÐm áÚá¾ÕŠJ¥Îrª%æ~f³Ú‡|^pîªxs”äãòÍì -àzrÔâ~{uñ±´ßž…N+°1N­LìØfZÄ.O:Ð»é ´¼“Èp¬ ìÁ\–pe›àZX/â!'üBßùe®% ý]Í aäå‡eFF¤É/¶‰…ŽòåL=páX8e:I]Én$Sˆcfó"Nu Gèñ^†½uXS;vÌŸ‹ºDz‰5BÌÆAöâ„—yWè¹la‰\ùËõŒì=C90ieÍÕ~â;“HÊšq–‘ß"s>”XI¿¦íü檑‰é„ &„aëÐø£„}•üŠÊ éÊ÷®i¬åš_XÂBw3ïº{¦,Àó«3ïž_rÊÝ:ØÏ<äªyV…ðˆÅw ,„¨Z¡3‹%J|ËŠÊÃ×C!èòk0A2ƒÅ¯PG®›1Š¥¹•ç]›¢5ÞÑ8v³P±Û¶ÇÉÑ[¬µ{¼µui§Ó´ÿ€Á”Óº°ÕVj{ún(0œàsvF“á0MÎy3š_Þ\]‚çö kðµV^BĬԧ_?ÒŸ.øþÿ½§ãhŠwSQÝÙ˜Ax»èüÖùuµðÂendstream -endobj -1582 0 obj<>/XObject<<>>>>/Annots 937 0 R>>endobj -1583 0 obj<>stream -xµXmO9þί¡;5•È²›„$ qR*è5§8’–“’~0»Ùvw½·Þ¸_ÏØëĤ ëI-„c{æ™g^Íß{…øŽhСnŸâ|/ B|²ùuýû^Ô‚>õ;ÇøS'êf•ÑdÏ_c÷hDþ®·Î©‚®· 5Ôíö ¯7àï~*I‹½nŸW‘ÕõƒfÁ -½eNÃ.ÔÙƒ¼ç-sŠ"Ö¶Ýô×Ø=ê<¹ê¯±klöîzkì£`èIîŽ!+:ffrê…apÔ¬”¿Æ.ìú»Þ»ÃþFߢXô‚G½[˜½íÒA2ÍžAØÜëtØv¯sC(¶2»vád6K+óÈÛƒÌf Gw;Nß{3Ý;|{ „4] žúCü‘˜0 -i·8f‚n@“UYªª&A™¨î$«üVV¤TViQËJ¿ž~¤œg%µ;Hj]’R­W’ꥨi)4‰*Õ² d…›wøXR"ïe¦Ê\5•8"YðDä·‘ÕÁ}sª2¡Z‘n°$Uz ‰Z™‰ARÛ„94/TEQ¾Ò>Ê€>j§õ&-pWÓÅ”FW7¬E«\®¦X]‹ÊjF{–ê: ñ‚r…H‡1©B²ÕžÎ† ˜(iµQ¤E Ú–e©B¤ªZT•qœ¥0Xµ¬»b•ç¢HžòÚ¢ŠoYzC†¬ ¼æ’ÐZÅ©¨¥¹ç![§õ’p5-t-² —퀦pÀBe™Z31`A>ˆ¼ÌŒ–j éø,V«,a½"®d,erb±…tì\Îáê!Þimì¢RÝ)j¤J©úW-ã -¨Û1íKÄ‘Å¡÷ù -‘eq¦r‘§³‹ÑõÅxô™.'§³Eúð™&²‚ßOg› ¶È7ÝÏŒ×=Șy.~öݶSqeC—Îl ‹…¢Èåá þjN\À‘'4{wEï¤Õ°5"dD©Ôt5q€¡¡ƒ þ¹z“ô?þzÆ‚ÿåJW ~¤/³Œ™¸Ó'³ðaÚÃÐÑýäLÁNšÍñuuùûå|¾,Û׳‡©ã*-ëT'3{~÷ÞÁÅ%]?_ÓèÓhü~ôæý9½½¼¦é»ñ„®®ÇÓóëƒg¥s -#­Ofn×ÅÅw±:Ÿï¤Äo6­Læl넳æóý—#›?Ã+“UK­«,{äÚE4(Ô6³éePè·Ÿv%1±]§Ð(I¸&]È55™¤é>¦ày©êm}Ó}Þ<¢·,Ä*«š~¢ 4+B t‹ôåZóÁ´@]L Cóá[LW¶@ëü6ˆU±xª¤Å'¹{í;lAìs)Mdì™V(¥è¦¬ΗÜÑa¢©ªö¬ëo¾EIâ,¦›ônE)ØbÍÍj”cÍZ ?5ð0 -¶;}[…¹°ãR!c´nk·(í¦‹zž“2^Õ¨î]–²h :˜·8pwþZ¹‰$yZÀ¬JÔè¿lVÛë3Hµû4“w tÞJ˜šOª²ä Çé†}#n‡Ùùë&2âæx{ 1§5ÜÍ;ýAã#'Ïìo,7¬p4<œ¸áð”åΠÒLvb&/hÆ,”´<µ.ÐÚLÍÇ[ÊÇ -*¸Ÿ æfÙp îM¤°çv©g˜b»¢‰T˺708[[pÁÖ´gÇÏ!ùJóØu4›¿Ù -žá)+uW‰œ–J}%sVû)Íš˜G$ðñR?êZ懭ó\¶xªeš›±(w\ žH”ÐŽ}Œ+´@Ðh„&žïN¿!¶Q}Dõhâª]ìß,1an'0&~Q©ØIëùb,án±%Ó”L”ˆÞBÕ6},òí¸†rðÍTfòÑe²wžxŒ?òÈqŒ>ë?¸ßÇ\·ª¸ˆ6-Ù](ƒ“õóÜlp5áhMuY†J»;Ü7T£¬&Ý`J]-jFÆ6=­|ÆŸ.\RÔKa ϳ«¢ÞŸéRZF0<ïJîãˆ3 lë×Df¦9Z_p&?E*™«{nd¦EŒôÙþÑ8ÁÅ3ð<ÒÙvNß…ôŸÅ¡EvæûñÒIûºò“ÑA¬•îbÎ ß'¹p”™¸Ù¾¹°Æx%á±h^~ˆó´zT+D¢Lš\·ƒ¶Dº/;ïÕÞU¯p8—S|-¼ÁM[ŽúøÏÃÿ•4ma2úðf„¶©¾ ãÑ™ŠWÆi<ÛñͶ»Ð„x°4SÆw¿m{x†úC¼‘quxÄϧ{îý à !'endstream -endobj -1584 0 obj<>/XObject<<>>>>>>endobj -1585 0 obj<>stream +#Oh*Ê… Ó¹4öD%µ–ôEU™Þº›ÑʇVÊt)*eJCª\²”U#3v?¤AÄ°ÃéZ º>Ý_Ò¼¯X«Óûn¦SªD)3Z©•œsÒr­tkh-kƒL éÜŤ«âɆ'nDu+ªm({>SQ&pãjŒ@fHWd™bˆDAy[Y´D¡š'Òk•Áðâ©ËZnÈÇèà U¥E›Ió† ƒ‘oÙ•ˆr]@ª +-2FÙ…zf5¬)W…¦z‹åä<œ$áÝ,Œ‡ vZ(àg¨]éŠ2YŠ*³)„W©+å`$ÜHfÆÄq„W¾ÐöæöÏ+ |àEM¸ú;E½È²Žsô‹ú!ê 庸ÿ2?&dŇ¯Kk†3Ði)¹Sèy¿–9žF‚˦Y½ C‚©b£Û:•€çA•lPê.ô—‰yƼšÛ!¼92GQÇ2ë“á·,gÒ% CÓFÔÍ;ÞsH²>¡÷U[þ®fÞŸŸlÒ óTJNבÇÇt;}w‡Ú¦-s‰ÆçYš¬ +J•ÖÚè¼ R]†– ¥†h¨ +y—Ý#xÊÁ~¿ÆÝ‹ûëùñ!x|ö¯ÂsÊ2nìÒíz‘¦ÒºÔ,Ý(’¡¶—7\[×C¨›^|“ic¹þo”c‚è5zÈ7 ÷ƒ­¬?¶²•R«U[th4ËZ·µFr¯£¥mu¸A3шTÉX,Í +¬ûI\¾éÅ.À‡b÷<Û †FOhà›-% +¶YRVdtÉåƒ` šTWyËšDb¡Û†6KÔ2ƒ‚*C¥+t,®K”hÖTé†~qÓã±UµUHNg]¤N(¬F,صià€²W§ƒKm`²‚ý¬ë5ö–öy­Ëmg;Q è‚£0¸=×r«û™Ø5WYàÓG¢z¢€a5ù‡™\KH‘ç&z°ƒbK&@7ÖŸ07Ð|ÁÅw4˜e*xÆîw‰ë†#̘z­RIi- &‘Ç{ò×v^¢ã¸=|±yDìžö·Ù&–‹=—¢³ Z›ÎÖÔs›¥Âq;‚A3‹l`Ñi+ÏÓ +m!ŒÙ 1õ';´ÀºµÈÇãv¿6ü´µ€žŸØÁáÅh»m¹IĽ|Xo½¨3 +]mÅ–ï{Ž î0Çï}îr´„`Ÿ³Z´‚õ®ÒPh§ÍJ¦*ï¶'o”Ûõ}¹$*[P·†BI]TÐ)èôs¯>ÿ+§.ãçT¶»p:¨2™L0–ÃۃIJ´Ëß@À89GÒÝvâåt'Z2GËû–‹ƒ3ýc»ú%“˜=ú|&Ë<ë_Ðv²}}¡ëô÷ÄŠ`Ùb>äªÆ',V¦4ïžzóè«ß’ý˜œÁ•À–¥íÊŒÐØlr³Cøì›Â/XüY1®qÐÂÔ=Œã í¿àÝEÄyߢ|ÄãÓq½Ý8v„S¼V%¸{:ŸãQÒíÃɈ-½Ÿõ>öþZ“qKendstream +endobj +1607 0 obj<>/XObject<>>>/Annots 933 0 R>>endobj +1608 0 obj<>stream +xWkoÛFý®_q[°Dõ¢¨5 +Ôq쮫X*Ú¢^,FäXdBr˜ÒŠ€þøž;CRŒª«‰†Ãû:÷܇> ÆäãϘšåßóñ¤ûçñçÁxái6Æ3Êi6õfÍ!£õ wÌi¾ô–½»¥ï-hº ¼rãY€KwbÁþ·AèýÛÞ·Ë <8ʆöå…Op9žÃÀÔž¬âÞ·SŸE·½3ß.=ÄÝ»=žq;Ø©îö‰‰Ã‹¿ŒÙîd†o€mt?žÓ[Eï³ÉÒ›ÒÂsÆk>ÁkîdëqÌ€Ññv2¶ @²(›w+y<ê9ËÙù®wÌi±0Ç»Þ1ù åñòlL!XãM[IZ–™ˆ€Ü>­’»¢^Àtª-`ø@&­äÓ«±ÄèΧ¥ËÉD´Xýé‚þo«Ñý ásE¹Ì· CãQ‰8O ÚiU—-ÂpMl3yV¾ÁÖ%Ì¡idÕ%’–ºJ¥9+­•ª(5”æe–Fi• ÅTAú­+g¿x~¤Ÿ·›W'c” "üÓ¾÷ùÀ9ÕF2‰ldD¾£Fó9owHgEê#ÄgÃÙjP]2R_}$‹IókJ®Í"b"G6|a.§»Zƒ R§å5s® ½¤BÊø PW ç^ƒ”¥¦ºðˆn}t<çÚ0SÉœ¤<5&U…­Í\|<Ÿnœo"ÿQÑ‘(à^y°Åb…m%r™ÀÚ=—EzÎ+Î;¨š1‡¨PÅÐÒ¡QÜÄ–¢g¸:™Q$?#Œó‚|ÿuŽ` -o^³aÖÚïiè5L¢Mb‘݉¦Û]ÒQÇ—2—’m}7Ga¸¬E…ŽF™|‘¿r;ü,b‰ÀÓŠÇÒ  +R:ÆkÐT—1W=·²Ȧ©ÂfÒòÄ£µt ¬í~O—ó§W”#A¥Øq_Óh–È_Zàk Ž¿-¹ÚŽçhgN[.€ó>Õ©–¹Dâ¡Ã…?ï€ùg‰½¤X–²ˆP £ ÀéšãÖz!cYÃ4Â,#´Ÿ]†žþWªMƒ1¶„l0Ys=ÃŒ©&ÙŠ‚!G5½–6ÄÑ]ÏZŒ!³ôB—üëºJ”Æ@yPUCƒvè 1Æ¡çÏÑn-K,ƒ­Z§J:Û3ÓÀÅÙ….6ž_ÄÅ +¸i„ŒÛ ÊÅdC9‰Ú: ¢v¾LË\€7®£7³Ð7èÀ¶´KÐ?DÆä{h&)ó«³öÖª91w£ŠJc.‚‘}jfjÇp+ËÂ^„H¦Q†Rƒ½#FËm¨*´,f:¦ G¿tÃôÄ,l Ú+ýÑÍ#Y¼¤Z–~ûD@Pˆ>ÔèË{Ѓifµ½ÜÎRUã¥õ).¶|4`Ö­Ù<6Têj’—#£óЄÐñóXq¶¢ú¡y„½äÇØÛb:·°°±#×.Q—ÜùNvÚ~¤7˜¿"ÇN¨åŒ+øv¤³“¶Œ‘Õ½Ì2Þ¡scçh © ôSq8{&¤­ãŽ«t”­D]Kp…¡Bóÿë]âÑpøA@‹XW' /œÚ­è¾mWÜcÄ×Ö>NJ»í1¯ÛõŽMaÿh–>ÛçxyÌë¬JK̨(KQ'H %˜kQ…X±fÁÕœyÐìq¦ÞÆhTQ¥4vK‚ºf)°’bÒî“ZzHƒÎd·A)ðÈ­D'fÿQ.Î+,s=?ЃmÛq+$w´,¨húm†}í"û ?wN[L¯±Ðj´ó­ä)Âí2Ó, ´õ²oß–Ã>5Ié¦ÇY  †üi£ì톼þ5üm:ù= ø{ó¹¢ï{…þ9 ¾ÿºìýÃÌoåøÿžìr>Z†ßN®ÿ³ú÷u'ÝE+»ÎÊDüïú÷Õ75¼»_­;}ãÐð8ó}ÿ›Ò«ÕÍQøDz¥öR¯n¬ü±¦»ºXz³f~l6·›û_¾£ÇÛ÷¿Þ?Þ¾¥Õíã»ûõ׌Üè.læçx6óÂpBAxÓ™]Ý××ïÞ\ÓJ« 2~yE5÷>;¹Yv8žNi¸ðíºIDÉ›óxæA +[4—ÖÚýÀbÙ¿.ƒ¿Ø0³Â?ºÝ Þþ…xºLendstream +endobj +1609 0 obj<>/XObject<<>>>>/Annots 936 0 R>>endobj +1610 0 obj<>stream +xW]oÛF|ׯX¢-ɲ$÷¥°ã¤;n¤ (ê>œÈ“t1ÉSx¤õ×wvïHS²S´A`Çä‘û1;;»üÚÒÿ†4ÑÙ„â¬3ˆ¸Óüúôkçl:‰Îi2>”Ñx8ˆfá*¥y§}ÓñÙÁ) Ñù`Mi<›âï~ +M+vC³Itq|ÿjÑ9}7¦á+¢Ñ`H“Ùyt>™Ñ"‘À´ˆ{ïs²E¢ *-ÅUQè¼L÷¤’„åzGIaýéÞV4WÙRÑƺò„l®É®¨ÜáE›'¦46w”U®ÄiBeQéŸ_/¾t€G4‰ÆðÛ[l4©8¶U^Rå4ž’·s—üg‰ã'Á˜zÄ;T™„Ý è¾g"áNamY»ÍžNßÅ!ãþ4šqIàò~4™’?­ñÃþð,ý`LKŽ(ÓÙÐ0í¨à¾GÛÂä%NU’™üÐû€שqeôRäul/ßÍ¢áõÏ.¢ ‡ÿqü«Âéµ`4m³”Ä•&MikÓÎñÿĹÒ+“j¹`ø]µLL ¶0Úql­x—:תÜП’ÞOEôIÊB5àƒ­‘Û¨6ñ‹œ–Ò¾*´BótÿŠ–{JôJU©O¾/ü%(Ì™ÔäckbÆm¸ú1ÞåŒ8¾B­_ÒÄÅ£Áã*GÎÎÙØÈljœ3ÙÔNíQ´¹v”#›Cá*gòuͲûž-|™þS…{÷¯ôW…Í`æw“'vçèvAãhp:z 85h¶ˆ>nuNÝ[F*Žb¹Õf½Y¢ºk“.:•º7{ +ÏÒ]ªPÆ®$¾,`‚€G›°LmÜ`éS=9rš«G³Æ3uCvï<—]E]xH!ý⸭ÐéN3ødrh€J‰IÍØ¡1B€\ÌŽL•ñ†™†2Öýá‰rÈar”ØæÌ¢% ¡Y.h9a5èŸ ½² ÇT.¢¹.Åûµ—DÞ~ !Õ™øZÖr+£i­ÿ–…ÉÀ}å¨6€¡÷™°6· +ð¨S R +Šš5gWÚ£´KÑbc\ݾEéöó‡äJ”a-=›¦v'‘@Bƒþ€×1|]¢CD Üߪo§£Æ‘§œ[]}Y–:Û +jè‹GÙo—h[Ø­.J¨€©š„vo+Wô)æzd4y +"P´;8¦òÖEÚfP$µö#ãôÝ$()×&ÌŽk-m=áPÅ*Ï1 Å‰qÛTíuÂèáÒϬºÜVÇfe€x] ËošÜ•P,ð0ƒ4¸­µ©–Fo¡ÓJ_29ôwmE¦v + à“‚_#·»_žó-äô&5ñºßv4äÁHÐH*–4VÁÚñ0B4ÊÎ@†¿S¥hÇb§öωæKU +!òhƒƒk ûŠöøþ ¾±SÈÕŽ®f…eU–hÖ~{¨÷~sPÑÓsò–Ð-Â*ØmµÕá^hŠ’s½÷„ + OYŸD™øûGð÷–‡zþÖ´|¿ +%r(ÈS÷­ãû¸”´›Û;´ž#Ë`#:¨h·5)¾Í&Ý“'äZ'G­‡¬R“9f.£K¥ZÖªPGÑ"±§V­u—ÎUØTÖâÍÝf‘®î[­¨Tê,7¡Zbîg61«}Èç箊7G)@>.ß|À®®'G-WßKûíYè´ãÔÊÄŽm–¡E<àò¦m°›žAË;Ù Ç +ÂÌe W¶ ®…õ"rpÂ/ô_æZòÀÐß…ÙÌF^~XfdÄAšüb›Xè(ßÎÔŽ…S¦“Ñ•ìF2…8f6/âTr„ïeØ[‡5µcÇüSbQ×áX6±FyØÐ È^œðñ"ß +=—-#,‘+»ž‘½g¨#&­¬¹ÚO|gIY3Î2ò[dÇ+é×´ß\5Ò#1Ô„Ð l”°¯’_Q¹£!]ù¾±À5 µ\óKXènæýOwo”x~uæ½±ÂòAÃóKN¹;Bû™‡\5ïѪ±ø®aƒ…U+tf±D‰oYQyxã~(dU~ &(Bf°àêÈu3F±4·Râ¼kS´Æ7Ça*vÛö"9z‹µv¯¶.ítšö0˜rZ¶ÚJmOß͆|bÎÎh2F£É9oFóË›«KðÜ~a ¾¶1ÐÊKˆ˜•úôëWúÓÁ?ÿ¿·±ñtMñm*ª;›1oß:ÿûðÈendstream +endobj +1611 0 obj<>/XObject<<>>>>/Annots 947 0 R>>endobj +1612 0 obj<>stream +xµXmOÛHþί¡;5•ˆ±¤ž” +zåÔGÒö¤¤{CÜÚ^Ÿ×!p¿þžÙõ&K +ºžÔ‚@lvwæ™g^—¿÷" +ñÑ0¦Þ€’b/ B|²ùuýû^4ˆ‚ âcü.(ŽzAÜ®ršìùkì‚ÈßõÖõÂaÐóv¡†z½>äõGCü㧖´Øë xYP?l¬Ð[4êA=È{Þ² (bmÛMÝ£øÑU]c³w×[cw#Orox YÑ13SP? ƒ£vÅ ü5vaïÈßõÖØ 6’ønõÁú°ô!8êÝÂìm—’9hö Âö^Üc`Û½ø(8†&PleöìÂÉl—Væ‘·™íŽîÅNß{=Ý;|s „4] ž#ü‘š0 +išt`Eôš¬ªJÕ ÊE}+©\7²&µ ªÎÊFÖúåô $õá<+©!©sYJÊ´^Ij–¢¡¥Ð$êLË’ÒnÞâcI©¼“¹ª +Y6TáˆdÁQÜDVŒûæT)eJ"ÝbIëìRµ.s%Rƒ ¤® sh^¨š¢0|¡}”}ÐN맬Ä]MS_}b-ZrÍ0ÅúëZÔV›x0ÚóL7/¨PˆtS’*%[íélÉ€‰’VEZ°Ñ =`Y–*Dš¡ªCu•$yãU˦µ+QE!Êô1¯J ø†¥·dÈÆÀk/ ­U’‰Fš{²uÖ, W³R7"ÏqÙÞh +,Tž«5ä½(ªÜø`©ÖŽÏµÊSÖ+àª@ÆR¦'[HÇÎåî þâÎÆ.ªÔ­¢îª•j~Õ2©º›Ð¾DYzŸ¯0àY§ªYùjv1¾¾8¦ËÉ«Ù‡2»ÿLYÃï¯f› ®È7½Ï­Œ˜ëdÌ<ßnÛ©¸²¡K§6ÎË…¢Èåá þjO\À‘'4{{Eï¤õ°5"dD™Ôt5q€¡!Fÿ\ ýIvˆŸ÷=aÁÿr¥«?Ò—ÎYÆ‹\Üê“Yx?íaèè~t¦d'Íæøººüýr>_V]ƒëÉéÔIUM¦Ê“™=¿{ïàâ’N¯Ï?ž]ÓøãøüÝøõ»3zsyMӷ纺>¿˜ž]<)Si}2s»..¾‹Õù|'%~³ie2g['œ}4Ÿï?™Øü^™¬’Dj½Xåù×.Ú A¡¶™Mσ +Ø@¿ýt{(‰©í:ý€ÆiÊ5éB®©Í$Mw™0ÏKmTo+è›îóú½e!VysÐöµX YJ ë\¤—(ךf%êbVšß`º²Z7A¢ÊÅc%>ÉÝkßa ‚`ŸKi*k`ϵB)E×0eµt¾äŽMUµg]ó-JSg1}ÊþáV”-ÖܬÖ @9Ö\¡U ò3£`7Ø*Ì…—J™ pèY“¸Ai7]Ô󜼗ɪAu/é²’ekÐÙý¼Ãy„›(¸ó—ÐÊM$-²fÕ¢Aÿe³º^ŸAªÝe¹¼¡óNÈÀÔ|Rµ%O8N7ìq;ÌÎ_¶‘‘´Ç»Ã`„9­ån†­œ<³¿±Ü°"À!Ððpà†ÃWô w•`²Û0yF3f¡´ã©uÖ15o)?ÇPPÃýL07Ë–kpo"…=·K=àØm¤ZÖ½ÁÙÚ ¶¦=9&x)VšÇ®; Ù„øÈWð HU«ÛZ´Tê+™³ÚOiÖÄô8"—úA7²h=lç²ÅS}(›äÐÜLDµãbðD¢‚vìc\¡‚F#Ä0ñ|wú-±ê#ê/PíbÿÓævcâµ*À´/Æî[2M)ÀD‰è-UcÓ÷À"ߎk(ßLe&]!{ç‘Çø#Çè“þƒ‹ÁC-+QsèXÒ­LÇs繪Ä!ÔÀ;CE¹J˜^vZ‰2ê´CÍ8kÜÉÐ À êÊP&¢­\ d]ÃwÐ÷Ǧ‚Щ,3™îó}Ìu«š‹h Ù’Ð…20Y?ÍÍWŽÖT—e¨´»Ã}K5ÊZiÒ æ¡Ô5ò¾adlÓãÊw`üéÂ%C½¶0ñ<»*›Ýø™.¥eÃó®ä>Ž8³À¶~Me.aš£õgòS¤–…ºãVAfZ4ñÈHŸì­\<Ïã!açô]HÿY:dg¸/4µ¯+?ÄFYá.æ¼ð}”ÛG™‰›í k‚W‹æ凈0O«µB$Ê´Íu1hK”£û²ó^œâ]õ‡³dÉ1ŇQàЂÁÜ´åh€ÿ<Œð_‰aÛ&ã÷¯Çh›ê :ªdeœÆ³ßìº ÝaˆK;e|÷Û¶gøp0ÂWGÇ,ñlº÷çÞ¿øB!.endstream +endobj +1613 0 obj<>/XObject<<>>>>>>endobj +1614 0 obj<>stream x­VkOã8ýÞ_q·¤#VÛ&Mú©He Z`»i5Ò~7v©g;c;¤ýñ{í$¥Ãc‡-6ö½Çç>ê{¾·BèãO“cH²VßÇÇÑÈÂp:ÁÏþ)«ÖqÜ Î††¯Ðe<@LÍû}ˆ“}³f°YË”A®d´#a#Õ7ÿ×ø+zöá tìECéþÞ/Á’‹@¯­AzQèÝ:Ü$ŠçÆp¡™2@@° sa˜&ŒzÀ-ÜwK ÉýT&$­€Â¾?u@ÍgðÂîEŒu¡ÐŒA²HŸ2íæw ìî®{Ô½&˜Ž]皜ݕTpÁEq¿ 1@CúñÃ.P…ç«göG]°‘.EÅÝU’¿ã žÌ±rå–*J»Æ]Øpqp¿ÅªL¶Øq¹$ßè#ß0›3‡_3ÁbàšÑOø†›ÚÅï*²Í6e+Ý@]\Ÿ_Åç‹YÀL¼XÉ“y|:ûB‰að[çs'ëÐ^çSç²só¥y±˜¥ycíúô&ž_dz6¶’ËQšSlimˆ2íÊv9üÎXŽý–Èü¡“äàÕœ?ùž%×0݃9¥Ok`{yëÜ0fÉZB» ÿõutô ¤ýã…‡ãëíூj: îˆ -t.e`6/zñ˜·€f÷³þa–â?½~¬NÓ[@Ó|Z®M²%qÌ]³ÞÈÏ•8|LÎ ëÆ0²HÖÐ~­ ˜,/šPê{DGÂFÕ±èÞÅâÿ­Yfß(W°Sœ£3Ia‚÷öë–5É×,÷\{¡ ÿ Yj0ª¼£wyÞå=|—÷è]ÞãŸóöª›íç¼÷àJšòNçv^p ø+£Œ6ÊS6ÿNï§|èlé'R¬{Ígø, noBÅL¡Þ²w$-p/ ç@25£(Ü@ƈÐNA @xn®—艬¾ÎkKv}Ë%8;€e‡•.½jºüÈùpc¯ ‚¢ ÐnZ=<½È -žý¿¸ r£á*"+}ÜUv´0¥QIh™p;§H9æ7ܬ¼;œ!S>Äk†TH•‘4}cG«à8É3;º/qxØ­ˆ$í±ÿ¸ÄE8;¿8Å7˜¾_3Ï - -)Õ‹™;maÑ°( C…€ví 5ŠÃI!Á2\ŽPû¬H‘š.H‘n_u6&¶¶uX]'N(´ËÌ=ÍZ¹ÝsÇI[_ý  Ëj¢T¢4°%VÌE^¥ˆ Š¢ä1²´#ØE0 eÛ” ÷÷‚+–¡ ´ÑÕIRŽ+Ûf‰Æ¥ÊÄ&·éÅv*ÙnI<“¬öc82åâ¶m…&SÂ1f˜¸²„å·e³f6ÌTÞò'ò³J[•^GZk~+Pibóg˜fž[\•êÒ§’PX’”ˆÆ´ÀŠð$öV%£§•Ç(Χ”áý2Λùåñ;X~e‰™6AN)Ú¬öj‡Þ¤BüMÝ?œ ýÉxŠß´ŸŽ-ÌiÜú³õ/íP†Nendstream -endobj -1586 0 obj<>/XObject<<>>>>/Annots 942 0 R>>endobj -1587 0 obj<>stream -x¥WMsÛ6½ëWìQžF´¾%÷ÒÉw=m7a&=ø‘„„´£üú¾%š’íñL3iÒ `ï½}»ü>˜Ð&´šÒlIY9'c<éþùøv0[-“%-×ËdL%Íg“d~ôiÐÿ·ëVùµüÑrÉÏæëþâo-i;˜NÉš+]"ô"™‡_qÛb9Á³“m|Þ|Æ'=ðb¶˜&Ó‡^Lóû/^¤ƒó7sšL(Ý‚åzEiÞÞ|Li6¼ÜÒÁ4Hö{£±Û GeS8U’*S;KI¹Ü*-sÚšš¬)%Ö kô3:K¿âx Û?´å&ÉŒÞúÇ1êY+ù?þ•ˆ;Hê¦ôq2S–BçÇ{Ç4šÌp«4ÞîU¶§LhΨ±HÇ™á¡üád­EAUmvµ(ý]vRËZ8ŽL…²Né™m¸™ÑxjÖÉ2ña/h|¨Ñl^ág ¥{I—eU+ DRc +t.e`6/zñ˜·€f÷³þa–â?½~¬NÓ[@Ó|Z®M²%qÌ]³ÞÈÏ•8|LÎ ëÆ0²HÖÐ~­ ˜,/šPê{DGÂFÕ±èÞÅâÿ­Yfß(W°Sœ£3Ia‚÷öë–5É×,÷\{¡ ÿ Yj0ª¼£wyÞå=|—÷è]ÞãŸóöª›íç¼÷àJšòNçv^p ø+£Œ6ÊS6ÿNï§|èlé'R¬{Ígø, noBÅL¡Þ²w$-p/ ç@25£(Ü@ƈÐNA @xn®—艬¾ÎkKv}Ë%8;€e‡•.½jºýÈùpc¯ ‚¢ ÐnZ=<½È +žý¿¸ r£á*"+}ÜUv´0¥QIh™p;§H9æ7ܬ¼;œ!S>Äk†TH•‘4}cG«à8É3;º/qxØ­8ð#{ìÇ?.qÎÎ/Nñ ¦ï×̳B£BJµÄbæN[X4,JÂPD! ]{BâðGRH° ׇãÔ>+R¤¦ R¤ÛÁW‰­mV׉ +í2sO³ÖFn÷\ãqÒÖW?hòš(•( l‰s‘W)⤢(yŒlívA HÙvÀ%èý½àŠe(mtuA’”ãʶY¢q©2±Émz±J¶[Ï$«ýŽL¹¸m[¡É”pŒ&®,aùmÙ¬™ 3•·ü‰ü¬ÒV¥×‘Öšß +TšØü¦™çV'WeA€ºô©$–$%"Á£1-°"<‰½UÉèi%ÀÃ1Šóéex¿Œóf~y<Ç–_YbàD&…MSŠ6«½Ú¡7é£S÷'C2žâ7íÜ×è4nýÙúð‘†Kendstream +endobj +1615 0 obj<>/XObject<<>>>>/Annots 952 0 R>>endobj +1616 0 obj<>stream +x¥WMsÛ6½ëWìQžF´¾%÷ÒÉw=m7a&=ø‘„„´£üú¾%š’íñL3iÒ `ï½}»ü>˜Ð&´šÒlIY9'c<éþùøv0[-“%-×ËdL%Íg“d~ôiÐÿ·ëVùµüÑrÉÏæëþâo-i;˜NÉš+]"ô"™‡_qÛb9Á³“m|Þ|Æ'=ðb¶˜&Ó‡^Lóû/^¤ƒó7sšL(Ý‚åzEiÞÞ|Li6¼ÜÒÁ4Hö{£±Û GeS8U’*S;KI¹Ü*-sÚšš¬)%Ö kô3:K¿âx Û?´å&ÉŒÞúÇ1êY+ù?þ•ˆ;Hê¦ôq2S–BçÇ{Ç4šÌp«4ÞîU¶§LhΨ±HÇ™á¡üád­EAUmvµ(ý]vRËZ8ŽL…²Né™m¸™ÑxjÖÉ2ña/h|¨Ñl^v2Of ¥{I—eU+ DRc +ݽL§L3¶-vXLXÍyݨ¼Íäóûˉ!¿…ÔŽ3rðEéÜÜZzŸÒó<§+Ž&k<þ)ê<¡7@ '9v¥AM)œbR°@Xæh‹ÍÀˆîr¿•²ÊIÑ{çªßÏÏU¸WbMSg'íd¢¥;'aéVÿ‡œÄÌM֔ȾJJgE“ƒ”[åömÈx,ÃÇRøkµi8ITYÀ’ñ/ìA£‹C ¼lj%[!]ÓÕ&oü¦p³­®©+@Œ·¼cz6¹Ê"›“„¾°Ð‘AÜñÇdòúøž×  _!e¦Œeàk¢©XÃ,.{g^˜6{ØÍhºôÁ¯Zð*äj¨µ–(åL}„‰x¼ç¼´' -T],Î/Ö€ÉK#¯Õ H®DöMì¤õ—ÈBqVÉš׸ž.W¡XcU¶/»âºK/ào¦e†¢È yQ†šïnØÁòH"€_ËE­´u¢(¼Ä²Bq±xð’Ù8¡PÄÀ%¬÷>ÐZÇ4¡—ºXѯm<­€k^ê/z§®€-ÔÇæîZv£†6'-{ZxêšõÑ&äB[jjå”íeö­€”›BæO(e…¾Ä^¶®õˆZÞTŠ¾Ïwïnö2P7BœX€ÂG‰ãX¯qƃF>›ÑŸ¾¤’*@gèëå~Ý«8ù„V•Äû[úTÊši»5,@È™è÷H(³Û1µiIW²Æ•Õªr¿Ðä Ëô¯ßˆË/'̈&JH¿m¥[%ŒG¡«ÿ:6ƒ>8Ñx=ƒ¡©äú,Î@Oü áëäNöa(8s·¶®²×ÓE˜,§á;ØK83¬õÓ`› w˜1 ¶†+h‡Mè®Ï|"ëád‰O¾õ i ÿÉóéù»Ïñ`¾â zÕ¸yç(n­ÆHç©o•ùjž¬–k?®W|ÂëtðÏà?¬¼‰endstream -endobj -1588 0 obj<>/XObject<<>>>>>>endobj -1589 0 obj<>stream -x…W]oÛ6}÷¯¸ÈS -Äògc§À0¤i³kÖlqÑõh‰¶™P¢BRvŒaÿ}ç’Rb«–¦ˆmñ~{îáõSg@}üÐdH£sJóN?éãÕ$™Òx:Áë!þ[IËÎûY§wݧ š-aq>Å‹Œpºß§Yzú÷›ÙC§OÝA–³ì”øgÙ2Mµ’…G¿HO~-I”¥5¥UÂKªJmDF™²2õÆîè˜öeŠ`ken`æ¤ÝH{ìì1]¾hb~þ9lflh©´tÇ,G‡ÙÞ8WIG¢ Ë,»³ªðÒ~.æ§ó7t{ßýãîªåçŸúýpœ3 -ã#.=~|ÞóFÞH}%´Þµ<3©• ×ô8>Ô»Ó`»Ò†°_ -IfY4 -sG²HMÅ62£íZ¤òÐU¬ÂÑ›ýúùv>¿óùUe-xwe -o¾—Å×óy(h>ÿXl”5Ó3:=àxtÊX!úF -±ÙÃEè­Ø9ªaÈ@®züc±³5ú‡_Žÿhh%ÊWƒã0è‚–h[“vý2‚•pˆ‚úd¶H۞ѽÈàºA ÂøH¤Û -X'Ã` à{Á‘èh%zŠ!b*¦ª©¸è#5“Z΢\%43né© -çáRf?ב÷  y`œÂ`zY–Q.PŽV¹òÂó@á¡Î3`†š^¥E8(É£X¡èzàiaüšsn~ƒbõAw0Ùo{Ó…Y¦³÷µÓHê¥0¨¾u>aÿ½ë Lj½#—£ZýA‰Uaœ -×C8‡±çÛ®;êGAçp­!3k²*åê£Ó}‚Â;‹'ÀZæÖC|©UeÀ xÖâ‘ÉEµŠÕ0°¸£\o ôà>ÃM4_´}Ë`‡æuöº´&G÷·ï‰â‹¦f_¼JÏ+xTÐ -"t]XÜY”k~³fA.'ÁZ±kAw½—°/—zÀ(6´úòxFβnHl‚¿8L+¦V[º» -ŒD¯¹0¦{!¡«0DªÈÎ3‹e+ÁÖ°5-ÆìÙ½ö7…ÔË3ÜôPaÌqe™å*ËpgbÎêûàÌX98ÔŠüµPϯþ]µˆÒ™ÔÀê#±šD¥âõ$VÍÃ5þT -×HY8€’ÏQ è$ × -šš™f' }ã‹#\€cRUÉè!ëv—fˆ¿]¤ÀdN£NC* 3ÜÍ“Æ[W‚çËئÜ:+µÜp‡›cóÓíZ¥ëcQé,Ü0­Ô‘R}å4>‰A/¡ؼ„•ïØ`oíë9æ5‰èûJ›…Ð5n÷wR<>„‚ ºà4Z'ÂrYèJlAÇWLèò‰,Ù»Xac -VôTÉ -cq¬Žnš8®K›zè­Ü`cô`GSÿ2Ëÿ³2Õø‰zXÄz!•ž.³žã[&"¶¯RaUä&/ÖfËÝ´T(¬y`DXkÄÂTþЦXo)˜P¯ SoJTS'MX>"òž˜Ï´ÞøÆÑŸŽðµ¢^%ï/oß_òZó€­‘>˜´âë/Ü6lÙm º“>9="àãÉ8™œO!ßx>²ÙÇYç÷οÌ!ëendstream -endobj -1590 0 obj<>/XObject<<>>>>>>endobj -1591 0 obj<>stream -x¥WmOÜFþί˜’Ð)ç{ GhA""QS© --WUðam¯Ï ¶×쮹œªþ÷>³k‡mÔr/Ø·;oÏ<3³¾ÛÓ¯1Í'4= ¤ÜE#šFÑ„f‡s\Oð1’²w‹á‡½¥E‰ƒC\¤„Ý£-’}jÿîÙH#mSJJtYŠ*%uÂ8TU9iH›pI~ÿ«Å tÏh<Ê“(ßÿY”u!ÂòÆô`2‹f¼ÞÙôJ7ÖŽiØX3ŒU5,jC¼Ï÷jÚ³¬fDƒñ(:Ü–.ê»,Ñ#é;¶ðoÒ¦|$…NúæÛ>úZ4ö¬V… þ'Á¼uºþß*€ä@_ˆ2dsÝ)Yépau%âBR*3ÑÎR†œ¹\ÂÕTÖ²JUµ$]ÑZ7†ìÚ:Y’[×ò5Å#…·­¾s”B™{½•‹è#ÿJ•ö~p*¦ ÙTL(s¹p¬‘rq/Éir+)n[³ì@¡Qo˜wJW6¢E¾ÁÎv!ˆb%Ö6(Éš¢Xwصöl-•)™R-\^‰RÚ×$,Û![¦1•bÍn¶nx ÆÈÄÑùéâGºE#mÔ*6þžKçÝè˜#Øâ"–-ûÓ× ÏJìÜJlvµ6¬Y½&yü€­Ø°ÆڃתêÄ/ÛÚ²×ð at"âꃭ6³ì4J§ - 0VHQÝ 7Œc[/ºfiô´È¼Ï -›ØøÙ3fv#K}…"ã÷þ€%ßÓÇlsC™P…G:€Uªeî(Sp´™ƒ¸Á]!-)ŽtÙ€ùpzÆ¿&¸”Yê1Ý.yd&•p·TD»œ¸ª)civA -«–Œ‘Ó=³ž÷¡ó°@¼ö¶ֺ¦Ï w句~ ~º[ŠÄh» )P~‰šK× b›#ëB$0»R.'Q×FÔp²å­˜lðví•q`>ƒ=÷,k¶È˶:’9Ï<ãkï³=8ÀJÐÒÀ˜ó.´ÐÖÕ³Í2-#¹önžSðñU®’œ;*lgF£©@' ,­AT63üð–Æ<ˆÓq¨?4“Y4‰èLÆÍrÉÝ©5ÿ¬ôàñ˜™s÷ù„Ä£_p±¦,ûÀÕN»VÃC¦žlÎmõnŸ-›KT¶MŒª»ÚAkãaì$̃²Â¾f´6çh“ÆÑ)YÅ‘dŒ!ðí–ËÇ À'K¡¦âÿ08]Y-Zo°º=5'ãÈÏdžˆ/¾ñÓu³± jk°¾ • ÝÍ6`»'9~aæs>¯zÐÖƉŽ_3Ša]w;yó†ªRØÛc\EÝgÔSwŽ¿GÔ[8Ó¥PÕñåéÅâô×Å5}º8¾ü­RŸ¯éBL©ãËÐ'q>Žæ×=asDWW'¡•OøÁ£›9N!w·…O!¹Œço¦3ºÚçÃøm<´W¯p2ЗÏÜíÏYõ‰ë-ŽG³·\¼4õßíWg«·yã"ªDĽ-ï}I…õ‚Ãà)è¡{§p³'ð:êT´jeúœŽ§"ÜŸU{Ò=l)Æx”9œâ©¥}t¸8ýùÝ)}çº3ø6,øÜÃ&À`>âçœý¯.³ù,šb*AäÐ#ö~±óËÎßN¥#9endstream -endobj -1592 0 obj<>/XObject<<>>>>>>endobj -1593 0 obj<>stream +T],Î/Ö€ÉK#¯Õ H®DöMì¤õ—ÈBqVÉš׸ž.W¡XcU¶/»âºK/ào¦e†¢È yQ†šïnØÁòH"€_ËE­´u¢(¼Ä²Bq±xð’Ù8¡PÄÀ%¬÷>ÐZÇ4¡—ºXѯm<­€k^ê/z§®€-ÔÇæîZv£†6'-{ZxêšõÑ&äB[jjå”íeö­€”›BæO(e…¾Ä^¶®õˆZÞTŠ¾Ïwïnö2P7BœX€ÂG‰ãX¯qƃF>›ÑŸ¾¤’*@gèëå~Ý«8ù„V•Äû[úTÊši»5,@È™è÷H(³Û1µiIW²Æ•Õªr¿Ðä Ëô¯ßˆË/'̈&JH¿m¥[%ŒG¡«ÿ:6ƒ>8Ñx=ƒ¡©äú,Î@Oü áëäNöa(8s·¶®²×ÓE˜,§á;ØK83¬õÓ`› w˜1 ¶†+h‡Mè®Ï|"ëád‰O¾õ i ÿÉóéù»Ïñ`¾â zÕ¸yç(n­ÆHç©o•ùjž¬–k?^Lø„×éàŸÁØV¼Šendstream +endobj +1617 0 obj<>/XObject<<>>>>>>endobj +1618 0 obj<>stream +x…WkoÛ6ýž_q‘O)˸±S`Ò´Yƒ5k¶¸è€zh‰¶™P¢BRVŒaÿ}ç’Rb«ÖüïëÜs¯ŸŽ†4Àß!MFtvNi~4Hx7I¦4žNð~„ÿVÒòèýì¨=  š-aq>Å›Œpz0 Yzò÷›ÙÃÑ€zÃ,gÙ ñŸaBdË4ÕJþý"=ùµ$Q–Ö”V /©*µeÊÊÔ»¥C~Ø—)‚­•¹™“v#í¡³#Ätù¢ù5úç°™U°¡¥ÒÒ²<ÛÏöƹJ:]fÙU…—öCp1?™¿¡ÛûÞwW?ÿ4ŸGÃäœQp¹ïñãóŽ7ò†Dê+¡õ¶ã™!H­dȸ Çùð¡þõ˜†ÃØ•Þ(„ýRH2Ëæ Yh™;’Ej*¶‘ÕkYÊK<@cT± +GoòàÕ! £°§Zà¢"ä¥H%©ˆÊBúZÊ¢Mò,q¹a•©¹ª,õˆÛ@¦kåÑáÊJ—е±$Ÿ'pJßT‘™ÚÑo3REª«ŒAo›Å‘3:¾,q´ì³ ¾Y¸µtsó?ióv˜Lpöâõâ-¥€Ó‘òŽÐ~§@¤€rmèž~txÜ„'c®o€Z›š;öXàµ^ ßV‰†çb#i˜–£’%*m÷ºD©ÎWh*Z›¡ZiÝ©Œ—ùÏ<‡àvì Öð’î0PÒzì2%´Ya^ôöÐØ<ŽnÀ†=mý 2réÄ}ªTúHÚ˜G¸éÆCÜÖy™#ó•r“+<{`Ø¡cîÓ¯Ÿoçóû`0Ÿ_UÖ‚wW¦ðÖè{éñU|?Ÿ‡‚æóÅFYS0=£Ó=ŽG§Œ¢o¤Ð›\„®ÅÖQåCr5ã‹­Ñ?üCqàø†V¢|p58îƒ.h‰¶u1Ùc× #X ‡((¡O¦FÚö”îE¾× ÆG ÝNÀ&­ß ˆ„@G+ÑS S1…TmMÅE¨™Ô2pår(¡™qÛHOU8—2û¹‰¼KxÉãÓ˲Œrr´Ê•ž +Ÿ0Mž3Ðô¢(ÂAIÅ +E7O ãלs§ð«÷ºƒÉ¾xÛ¿˜v(Ì2Ÿ¯FR/…Aõ­ó ûï__ÐpÒèåÙ8riˆ×„>(±*ŒSázç0ö|ÛõÎQÐÃ9\kÈÌš¬J¹úèt— ðÎbÁ °–¹5Ä_jUðžxdrQ­b5 ,.Æ(×µ"Üg¸‰æ €¶kÙlß< Î^—ÖäÈãþö}+Q|Ñ4ì‹Wéi` +ZÁB„® ‹#‹rÍOxÖ,Èåd X'v#è®ÿöåR¸Å–V_OÉ™@ÖZ€ÔÈ&ñ›ý´bê`µ¥»«ÀøØIôš cºº +C¤Šì<p±Xvì [{ÑbüÀžíkpSH½<ÅAÆY¦‘Y®² w&欹ÿ8ά…•ƒóWÈ_ õüêßU‹(IÓ¬>«IT*^ObÕ 9\㥠R¸VÊ”|ŽZ@ǽNÐÔäÈ4;Nè_àæËëªJFYw»4CüzmN;9: ©€ÌpL 4Oo] ž/c›rè¬ÔrÃnÍOêµJ×!>Æ¢ÒY¸a:©#¥æÊi}ƒ^B3°y +ß±ÁÎ6Ú5sÌkÑ÷•6 ¡ÿjÝîî¤x¼ôÀi´N„å0²Ð•Ø‚¯˜0ÐåµX²v±ÂƬ詒ÆâXÜ4q\—6ß÷ÐZ¹ÁÆ èÁ,¦þ=d–ÿgeªñõ±ˆõC*}]f}Ç·LDlW¥ÂªÈM^­MÍÝ´T(¬y`DXkÄÂTþЦXo)˜P¯ SoJTÓ$MX>"òž˜Ï´Ù†øÅ1˜žágE³JÞ_Þ¾¿äµæ[#}0iÅ×_¸mز×ô&þ!rr@ÀÇ“q29ŸB¾ñübÄfgG¿ý *s!éendstream +endobj +1619 0 obj<>/XObject<<>>>>>>endobj +1620 0 obj<>stream +x¥WmOÜFþί˜’Ð)ç{ ´ %QS© +-WUðamïl¯Ù]s9Uýï}f×6‡mÔr/Ø·;óÌË33ë»1ðÓ|BÓJŠQ4¢ÙhMhv8Çõ#i¹óv±3ü0¢#Z,!qpˆ‹”°{4¢E²OÍß]-ki¤­ I‰. +Q¦D²NG‚*£J' i.ÉﵸîÇAù`råûï?‹¢ÊåqXî “Y4ãõÓ+íÐNhX[3ŒU9Ì+C¼Ï÷*Ú³¬fDƒñ(:ܖΫ»N–è‘ô#ü›´)ÄIc¡•¾yÛ{_‰Ú>«QaƒýI€·NWÿ[2"ùE /D ²™®ó”¬tH¸°ºq.)•KQçÎÒ9s™„©©¬d™ªrEº¤® Ùu² ·©äkŠkG +o[~ç(É…2÷z#JÑGþ•JííàTLA3$².™*Pæ2áX#eâ^’ÓäÖRÜ6°l@®‘#Þ€wJ—6¢EÖÅζ.ˆ|-66(YÖy¾ic×àÙJ&j©dJ•pY) +i_“°ŒC¶Hc*ĆÍlÌðÆÈÄÑùÙâGºy-mÔ(6þžI œt£cö ılØŸ¾æð¬UžçVb+bWi#ÌžUÒK?‚­XcíÁjUöâ—MmÙkXpt"âêV“Y¶@¥S… æË¥(]#7Ǧ^tÅÒ èi‘yŸ†èììÁ{«¡ÝÈBßC¡Xr{{À’ïéã²»¡¥P¹tV¡V™£¥‚¡¹\:ˆÜåÒ’bÿA—.H‘w§þ5Î…$ ÌRÓí’GfR s UÂA8¹Ë‰+ë"–f¤°jÅ1rºëy: Ä/l+­siúÜààîæÒè觻…HŒ¶»åW¨¹t"6™1²ÊEصr‰ª2PÂɆ{´f²ÁÚWÆŽù ölܳ¬Ù"/ÛêØIæ<󌯽Í>èÁ˜¬=À! sÞ…úϺzØ,Ó02kïæ9"¾ÎT’qGöÒh4(â„¥ˆÊ0ÃG4ÆàA4˜ŽCý1¢IDïd\¯VÜxü×èd…ÇÌœ»Ï'$ý‚‹5eÙ®¶‚ܵ°†2âÉ0n«wûlÙL¢²mbTÕÖ*XÆ^„YaP–Ø׆­Íùšä†qEDtFVñ@$cH l»åòñ°ÉR¨©ø? NWTC‹ÖP·§ædù™ÌñÅ7~ºv[§¶ë ZËÐÝl ¶{’ãf>çÓøªmͲÝøV) *:²UøDÞª'<˜©C¿lP¶ÐãIc0<@)+Vò©ƒÀ‹¶FüöV‡Ï'Û«A‘í*äQ´5øž°©s¢;ƒ¼ÓË MNO¿ýҡǬô^´ã$äB„õ4Á,𖠨кÿÀÀä‰å»h׬ƒœ?aP)eê)Œ&Íg‰ +­ý¤D»efKÙúÐŒHö:È‚õ® ý݇=ïÙsY6;¦?g“¿hd’iÊT“ÄLµ( UÂÎ)ï´Eœä +Ô§áÐOùL[7Ì׳žˆHSo<:é-’Tu‚¿f'ºövòæ •…°·'¸ŠÚϨ§î~8Soá.„*O.Ï.g¿.®éÓÅÉåo¥ú|MÒ`J\†>‰óq4¿î Ùcºº: ­„|¿pÝÌq +¹¸Û-| +ÉÔ`<3ÑÕ>Æo㡽z…Ù€¾|æn~|Õ'®·8ÍŽ¸xiê¿›¯«·¹³?e"sbáÞ–÷¾¤ÂzÎnðô ÇèÞ)Ìì |…ΟZZ™>§ã);ùY5'ÝÃæ‘b|€G™Ã)žZšG‡‹³ŸßžÑ¹Ñ7|ª{§߆Ÿ{rÐ + æ#~ÎÙÿºá2›Ï¢ùÁ!¦DŽ¦¬éýbç—¿UK#6endstream +endobj +1621 0 obj<>/XObject<<>>>>>>endobj +1622 0 obj<>stream xWkoÛFüî_±ßèõ´äŠ­› ê6*ŠŠy”Î&yÌiYE~|g÷Hêa»MÛ$ÅÛÛ›™]}=ÓÿÇ´˜ÐtNIq6ŠG4ŸÎã9Í®¸žàÇiÊäƒÙåe|õÒÓQ<9}þay6¼™ÑxLË {̯´L ñG#Z&ç˦(±©¦QD¦LM¢jí©Þ¨¿4ÝÛm•Çæ…}ÔiL¼ ±E¡ËšV;yÇ«$7üÀxR´25ÆçZ¥¦\“-ñ’ññ›åýÙˆã)r\¦çÙ†U’]yíµ⸪LÉ6uÕÔÄ—È¡”‹ÜÚj“ÖEÅ?qå vÍLŽõ–¼Ö´íwÚ7y|œ~më¯IòÖ‡=Éd’Fåì*×W³5õ†v¶q$[q=~çk]ÄôkV#µJÛ -»oJh×µ«¹q'Eu %R¢ª·Eh퀗7¶ôŒÖ£rÆ6>ìH_Ýè€Þðæ-gáÓqŒËôxÎâiLráZ;O©¥O’ÔœÁ!&@ãôN½®\é#.cíTÁˆ&!„x½"_©Dã<àìJy?ÅmRÚ^Dj…u7´Åþ0;ù ô¨`ÇQ8ÄÝZØÉþœø͸å¦äÞkaè-Òüö ÁãÍp»‘OÙùQ_6cÑ[ë°è(Ù>[œ -aÌt´®ÝóQJþ­³s’ Ðcbâ{Üöí»rcG‹DHæÑòÉ‹Ë?ïè–Ûw'vc‘h‡{ úQ@´»çù\ûÍ5ð…F+‹$Å;iLe¹ÁÜJpÆ÷bÄÿ ÷R¬Ëk0¹ÜCÜ9‡JEÚû9pÌ.(2ãp¾V v˜I‹,ÔtQ­Ap³çô‰c‰NK.å@aܤE«˜ +»oJh×µ«¹q'Eu %R¢ª·Eh퀗7¶ôŒÖ£rÆ6>ìH_Ýè€Þðæ-gáÓqŒËô|<‹gñ4¦?¹p ­§ÔÒ'IêÎàƒ  ‡¿ñú§^W®ô—±vª`D“N:h{t€¹vTªB34Œ05ž¡`N'v]štÊìø¢Š•:…ÿ%ë'U· À4@×!Õ½mKœ 4Εð¯K¯+‘Ž |^äœÊö²µ9Á†{SfÖªè”9[€·B#äÖÞ¶0ÄÔ1µvî™Ís»åz[Îá¤OÎ9Ä&ø¤Ÿj§’ìú}ÕÔëCL“1⡃5Ñ·áÊ”Chº¯< +X1‰Cf1}Ñu͵5U¿Dô'ÈAbЪóÏñîIU¨•µ +85ÇñLé÷p‚¤Âñ=ñëà@LŸÄE|íl¹†6™Ol6)GdŠƒq'`wÎTbrSØÎîÑð’Ö¡Úä+ks0wŸY×¾>VåÁuÌÌCÂNÃ8`/¤aׯe1ïÕ“êÜ­¾ô£Ð0RÈ¥Cåð#è– øeNýmXßTn”‡?“8Ž¯mÅ÷¨òF_ãÁó£±(U^XÛÍó×ÞíüEkŒAúoQÑàí•´ƒÊz mKœH¯òj£Ê¦ÐÎ$ŒIƒãs>±0Šèo!àA#H6JÔá<ÈÇL „€sçÞr2vK›]…>àéî<DwomužÇôÍ+–ÎÃ×p¦ª†‹?1×e¨G» >êúÀ|BñzE¾R‰ÆyÀ/8*Ø•ò~ŠÛ¤´½ˆÔ +ê0nh‹ýavòèQÁŽ£pˆ»;´°“ý9=ð›qËMɽ×ÂÑ[¤ùí‚Ç:šáv#/ž²ó£¾lÆ¢·ÖaÑQ²} ¶8/˜1èh]9ºç£”ü[gç$0$Àbâ{Üöí»rcG‹DHæÑòÉ‹Ë?ïè–Ûw'vc‘h‡{ úQ@´»çù\ûÍ5ð…F+‹$Å;iLe¹ÁÜJpÆ÷bÄÿ ÷R¬Ëk0¹ÜCÜ9‡JEÚû9pÌ.(2ãp¾V v˜I‹,ÔtQ­Ap³çô‰c‰NK.å@aܤE«˜ xaßÀž1A¶ñ 8Ô€B ˆ"X'¡¶Ì±ÐÚ0<´Iürû;€n]8ÏûEy•ÀÈÂgâo'>[’kçDf^7(¯#ì iJ‚í°tA³bü~2lg’Œgœ -<Tß\¯d~‚¡Ô!ãjd‘ÌÀ2 ¾žùï»Ìy–(ah~c›>/XObject<<>>>>>>endobj -1595 0 obj<>stream -x…W]OÛJ}çWŒÔ¨L!|¼ÑR¤^µ” T½•Ð•6öo±½fwM‰ÏÌÚĵh/Ð*qvçãÌ™3“Ç­Mñ;££}:XPZmM“)^&sšáõ>þ9MùÖ»Û­½‹šÍé6Ç•Å1^d„ãÓ)ݦ;³ƒdž&ô—]’×u˜Pmɶ¡iÃÛÛ¸:§Ù,^ÝÝ?ÂÕÛÂxÂ_(4UÖÊ]ëƒSÁÔ÷Ô(ÈæÔ8S󃄾ۖ*µ¦B=iñ Øå„ž´3¹Ñž¨Ð?¦•ò”[·R.ÓÙ„ƒ˜Ò.ÂÜgç^jR´rªi´#ål[³M©­*ů-û‰ÏrSê -[1<ØøK‚ˆÜVrUÂÕ.é¼í/€#¼]çHZèôÍVê9´°óKÄ×Î>}úΘÜë 0à,GäÌ}"ôØêV'ô1§5Q°ÑzFLÑ»›s²n”觫k†“a$ßX[j7‘›©ª)誱N9S®ÉÛlr`‹€ðz©©'>ïƒ)KZrìËÊ„\{LÖ´Âg#çµ |:¢’%ôÕëS>²w1¥“ž óˆQÙ¤´{ÕA(ñijCæ,ÎK»ê"@Ö15JR³B×DÓvÙŽ€+ÿdôJ¬¼T^¸LK '}s -5ðôÜ=ÇQ¦k‡+‡?rÍÎV¶-3Ò?Æ”‘I_eµ,¡D’mtÉ‘q±9ﯗÿ¡mŽg›Ú`ÀÔ5Gé 2à„FŽ;UZÎø?Д(ÍhïI¹=駽²ÉözÒ½‰]F™qÈÀºõ‹Š `½ãirÌL&ü”žÿýçM¤×T~å:?§,?›NgÕº€Žò™_åVš†Kä Aw$?€½#"tз $!°,£:`¾\ã-(&'#kèWžÐCSƒ^e‰Ê«>ÎNm·c‡!T½È¶¤aR[C¼£fK"¨˜ê½B˜ÅM¤êÑ{‡´ôËpíÌ¢ŽÈ Z s¹¾ëÿ4¾p_0e¾ô$ÞОÉä†Gžze[KG/¹×*¿A»Çlk“êr=nì[PU¦O[㬫+´¼ƒž©{í™41ÜSZªºFaâsTbYªú¡{Û;L©±ŸÁ|è‡ÉÐP?ŒX3GtàÜ%ƒT5d›`e¯Tˆ£{‚xQ¼ÜÜcŠe£rƒ5<£?¨C‹ Û 6lO"Å`ˆ=žú‚îv˜}N{O…V;sÃôïÞvÞc÷G6|¿”/·eiWRQèŠwÔymżµ;¥$I8¤ßôÒ0!é“F“%.ÎÉ×qG²8¬Ž9 Ƥ…ˆò¦Ã:ŽãÐ(¹{ &Ä f*™ ÌYÕ‹`RV¯!8ãÚöè¶*#3žu5Ž£—Úov˜~c’u­õQ ~l!p¾Û=×°2,VÞ曚Žq·©ÎÀ/êRò¦¶„8÷'¤*[D¬÷uËœªsŽŸMêì ð ©×!¡ ¸Ö?UÕðN‰­g¿™úäpä—{¦D~ýa(]qEµóÏÝ ºT•~¾Û¹–Íñ}iÒ‡»·WS¨­Ñ8†¬¼dõ|–=1ÿ²çß]x bÙ•²ia-Æ.àSô>¸r÷\EÉÈàÇy+¡~ÍW¼¦¯ÑμPs[òp¶Âà=”aŠç#â´áò0ä9&ºþ=gK 4ïêƒ%ÑÅÕ‹W€”.¸ÚT“#ƒ·e0¨›Á¦5rž*Þ.À:¸ÂFakUŠðn¨×‰Éq÷åf¶Àw¦ãZ-‿9ûüîŒü&̹MÛ -@«Úš}íöv¦Xˆ³ÿû5?š'G‹c|ÿÂÙ“›øp»õ÷Öy‚Eendstream -endobj -1596 0 obj<>/XObject<<>>>>>>endobj -1597 0 obj<>stream -x…TÑn›@|÷W¬*UI¥˜‚M0~t”FêC«´¡}<`m“Àå–¤ôë;wà¸r“V¶%ÃÞÍÌÎìÝYD!>­´L¨hfaR’®ƒ˜ât…ÿ ü:¦íXã y©p&/âå%N ®²Ùû›5E1e[°'I¤”•î0¤¬8–A¬úªžèÖX¹+ºªj»J —ï²{ì)ŠÆýóÅ -»Ï³}e _…u&¯¹!Ù+qozÛ«º¨P½å’ò¸’=wXÀ#(ÙÖ˜ºÒ;²ƒlm{÷Xé­é%•Ñ0·ÁŠê„ÌÖÉi­ Gĺ7ùHݨ¶GOXéÿÆ-òb… -m«š/Èt4˜¾›úìÈVM Ù¥Š6B¶o[ÓÉ ñÑ €¾›ž5fô)†X+8Ag›^Œë¢ ß]³páº:#tö'k0Ú{Œg¾Œ0 èЧ’´)•.@pëò€K¯òÙFæktBÖ4Îs tE²„u©ôÖYîÅT®¦Gߟ–÷ì*LÓ(]¾!ÓºNì@e$±{®k²~tl@×ƪ(L糧 XÙÁÑ·Êz.É·ß&t碛(tz &|B;òŒ ¼.‰Y£ÅçÁaÌ&éTzû}A†–1MdzÁБ“_‰Eö¿Ø?Xöo¼Ž¿zm1êЦ`´—ÈÝâ[ãP±ª! ïwpøµì>n½8•›G“T­E‚úLζnkpÈÙeö]m0‘æëvÑ7¬Å£™6ÌWáúy˜ÿyÅÄ+ÜAIŠ -³¿^8”ÙìËì76µž®endstream -endobj -1598 0 obj<>/XObject<<>>>>>>endobj -1599 0 obj<>stream +<Tß\¯d~‚¡Ô!ãjd‘ÌÀ2 ¾žùï»Ìy–(ah~c›>/XObject<<>>>>>>endobj +1624 0 obj<>stream +x…W]OÛJ}çWŒÔ¨L!¡¼ÑR¤^µ” T½•Ð•6öo±½fwM‰ÏÌÚĵÚÞ~HŽ3»3sæÌ™ÉãÎŒ¦ø;£å!-(­v¦ÉOÇÉœæ'K<â¿Ó”ï¼½Ý9¸xC³9Ýæ8²8ÁCF0ŸNé6ݛ͓yrœÐ_vE^×aBµ%Û†¦ ¯o¿ãèœf³xtÿp‰£{·…ñ„¡ÐTY(w­NSßS£\ ›SãLÍ/úf[ªÔ† +õ¤ÅƒünWzÒÎäFgx£BÿšÖÊSnÝZ¹LgbJû³£ä{¨mHÑÚ©¦ÑŽ”³mÍ7hJmU)~¶ì'¾ËM©'´jåzàÁ—¿$ˆÈm%G%\í’ÎÛá8ÂÛ…qˆ¤…NøÚJ= ‡÷üñõû³¿1&÷: °åˆœ¹/BÄ‚[Ýê„>ä´" +w´žSôö本%úñêšádÉ7Ö–ÚMädªj +ºj¬SΔòÁ6ÛøFÀx½ÔÔÛû`Ê’Vûª2!ד ­ñÝÈym[GT²„¾x}Ê&SzÓ“ÄaŒˆÊ&¥ý«B‰'Ú™³`ÓK»î"@Ö15JR³B×DÓnÙ‚bbYC?󤀚ô*KT^õqvj»; ¡¢èE¾K&µ5Ä;j¶$‚Š©Þ+„ÙYœTAª½wHK¿ çÑþÑ,êˆ ¢Åp1—ë{°þOÓè3÷PæKßHâ í9Lnx䉠×Ö¹tôŠ{¨ò´{̶6©.7ãƾUeÚñ”±5l-X]±à åôLÝkϤ‰ážÒJÕ5 +ߣ«RÕÝÇnÜaJý æC?L†õÈ5sDÎ]2HUC¶ QöJ…8º7ˆÅËÍ=¦X6*7XÃÃ1úƒ:t±²`ãîI¤.b§¾ »=fŸÓÞS¡UÆÎÜ0ý»×÷Øý‘Í#ß/åËmYÚµTDú…âu~5bÞÚR’$Òozi˜ôI +£Éçä¯qG²°@Ö +f΂1i!¢¼í°Žã0%w¯Á„¸ ášJ&sVµÁb˜”Õkθ¶=º­ŠÃÈŒg]ãè¥öۦߘd]k}H§[œïvÁ1¬L‹•·yÀæ…¦cÜmª3ðÄ‹º”¼©­ Î=ÏPgì[mÎò붎ûQØ 41áM²í‘ŽI©ˆFPÖb$ؾµ<¤#P´K„TÈ„#3Û%j íó+HêMêLDÀ'¹Ïã ©Ê–†‘ÛûºeÎ@Õ¯9ÇO&uöxPŠÔëÐ\ëªjx§ÄÖ Û¯¦~s<òŒÃ=S"¿þ0”®¸¢Úùçî.U¥Ÿïö®es|Wšôáîõäjk4Ì•—¬žÏ²'æ_öü² /A,»ö"@6-¬ÅØ|ŠÞWîŸ ¡±H#ü°¸ê×|ÅkúíÌ 5·%g;! ÑC¦x?!N®!ïCžc¡Ûèßs¾‰æ]}°!º¸zñ +òÂWÛjrdⶠuàk°iœ§Š· °®°QØZ•"¼[êubrÒý¸™-ð›éäˆËEð7gŸÞž€ÿ΄9·i[hU[³¯ýþÀþrŠ…8û¿ŸQóå>/XObject<<>>>>>>endobj +1626 0 obj<>stream +x…TÑn›@|÷W¬*UI¥˜‚M0~t”FêC«´¡}<`m“Àå–¤ôë;wà¸r“V¶%ÃÞÍÌÎìÝYD!>­´L¨hfaR’®ƒ˜ât…ÿ ü:¦íXã y©p&/âå%N ®²Ùû›5E1e[°'I¤”•î0¤¬8â V}UOtk¬Ü]Õ +µ]¥…ËwÙ=öÇEãþùb…ÝçÙ¾²„¯Â:“×Ü앸7½íU]T¨ÞrIù@\Éž;,à”lkL]éÙÁ +¶¶½ˆ{¬ôÖt’Êh˜Û`EuBfëd„4–ÁÂѱîM>R7êí‘ÄVúÁ¿q‹¼XáŸBÛªæ 2 ¦ï¦>;²UÓBvi€¢íÛÖtrB|4( ï¦§F ¤}Š!Ö +NÐÙ¦ãº(èÆ·C×,\¸®ÎýÉŒöã™/#L:ô©¤mÊG¥ ܺ<àÒ+|6£À‡ù5óœE(ÝA‘ìa]*½u–{1•«éÑ÷'„å={〠+Ó4J—oÈ´®ƒ;PIìžëš¬еqà#‚* +Ó{é.Vvpô­²^€Kòí· Ý¹è& +ˆÉ#ŸÐŽ‚³í…[àrv™=Ï\¯ÜÁñ`¡]¯íÅá`I§ +Ôºc>±0›J‚á·#›²ê0§¦¦¾ÒéÔG .§tI‹d:~w›OWL¤¹Çz„]ô kñähæ‡ óU¸~æ^1ñ +wP’â‚Â쯇ò!›}™ý?ÿž¶endstream +endobj +1627 0 obj<>/XObject<<>>>>>>endobj +1628 0 obj<>stream x¥WMoÛF½ûW zrP[±dErzK‚0Ð8n­ =ä²"—âÖä.Ã%Ũ¿¾ïí’M-ÚÂ6l“»óñæÍ›Ñ׳¹\ák.ë…\¯$)Ï®fWòjþj¶”åÍ/ðSkÉ‹ÅÕb¶š¾x»9{ùþµ,®d“ÁÖj}#›T`ç -O’ów¹ª]Ë|9“OÖdF§ò‹Û9ëe«›Nk+ŸM]çånóbóÇÙ•\.–0q®l*Ÿîn—Ö»ã©-òýÍ×Ñßåõr¶àq8˜ÏäÍÖ7µJšxl)óyl±Fè8vk½«Ucœ—EôôÁ$µó.kFáH“×®Ý墤íC/ºäŠÑ#ôy˜T×HJɹ+ã¦ø¡Ïd~ƒ3¸£ƒÛi«]ëq±¬Ú†yi»7µ³¥¶—ÌÕ0T8éÇÅåzvÃY&Y¬Öߢ^õk,ĨëÄ›ÿï†ïû:J’+»#gçÿ±¹¸™Í_Ÿ0ºM5å‘C8ú -T5¬#•Úz2Ì{Ä¥sm‘öZpà\ ¥T[ Ç‘ê!úMîÚ0ŽG¢Ÿ¶U1Œ.pr¬q Í±Ã•'Ç{KQ.B ¡“âˆFy(>ñáÝHF"?r©ÒÓ…ët ]€u„³n`IlAú Ür£;8ÍQG3¬6(‡ºÊûG“ïåd´+D¸HäT‚Ñ·þv„]cÃà07¸óÉ}?*ŸÒv4ˆƒÑU?Йûˆ]½îRàÕ.,*² uv]?jðÖ}£„D… -Y[àK]n"²SØY%®3ùh±˜4Üðb;•F;FyÔ·- >Õ2jXé0Z1.H܉ßÑ–rº -®sbÄúOL‚‘rÈ•-×%R‰kTœqøßÝ>üȈyrâÅ]ú½tSl¼«NdÒÈÛ*g0,óä%G²=]Ü59ùËX 1I@x>{Š‡ -úŽ})Èï±ã ñÃJ¿A"ˆtºV0ÚÙLÞêD!¸#esDV¶¸G?K -ÈsÑï0´öº/ç{£Bìwa[ˆa‡e|’0¶.®Æ,+#x'…ÙÖª>|yÿ;†#dXþˆÏœh1ÊG٬ٵ…ŽX_aÂÚ¦ï͛ӧ§å«?Öý»Osà=i zߤÌf¹^ÎÖ«›8‘^_óÑÏ›³_Ïþ–­Í endstream -endobj -1600 0 obj<>/XObject<<>>>>>>endobj -1601 0 obj<>stream -x…WÁrÓH½ç+º8…ªÄ±㘣!K-‡„,q -¹´¤±4Dš13’µÞ¯ß×3’ì(ÙÚÈšéî×ï½nÿ>™Ñ¿ft}IW J«“édJ®fø9_^ãç%þ8E›ðÁÕr:¹|ëƒËŇÉü­–Ë×>­O.¾Ìi6£õÁËkZg„ÀÓ)­ÓÓG¯œ'k¨.=Þ}ýI§…6ŠR 5^ÑÝZþrÄ&£ÜÙfK†+剽ÜSk›2 o¾3\ëz/ oMÞ¯Lé|v…ôÖÙéZNÈõia[C]â&oq×ñ:øHe”ì%vf+Ö!IÖ‘Ú)C¥Íñ¬–s£Ô%KטQXŽ)ý<ÿ¡Mf[òÊ{ÊQGèÓ½\å˜.*÷d“¶'×)ª ¨!eÜ—àiO‰Ò&ÂÿBAoâVó³ -yo¬«FyÞ|»]}½{zöðZ„ßF¥¨€Ý^*Ð5qYÚÖÙ˜LÕÊUÒ̉S™v*‰[âQÜäÔšÚÙ²D·¤eS£¤ ¶ìj6%;€oŸÁAº-tZPí/ov· X8µQN™Tec\WY¦%ä½?ÒÞ:»Ó™P iÐZƒlp§Ó®˜ H+ºþß—MžsR*Z½84ªñÖf°íéô~uûôžüIWB¢.î8æN3 +O’ów¹ª] lÊ'k2£SùÅíœõ²ÕM§µ•ÏƦ®ór·y±ùãìJ.K˜8W6•Ow·¿KëÝñÔy„þæëèïòz9[ð8Ìgòfë›Z%M<¶”ù¼?¶X#t»µÞÕª1Ίˢzú`’Úy—5£p¤Ék×îrQÒö¡ ]rÅèz‚¥JrcQƒMn¼T +Ç%Õ>©ÍI3¤Q ÀÚ¡Öþà]^ˆþVðÍópÖڄȪÂ41 ߃;H1Gx/àSfv-øïßt®~ôb@Ý÷‹Ã,’ái„¦A,f’×À/ø‹G‚°»†N;]òh]‡’çªù‡†ÈÕ^Kj² ”¿J—ê"²¶Ö=O™/á&Æ“bìÐMÒËËXeÖ‡G&äÖ¡Í @f;iÕ ö…‚dèòЈ¥J5ácX&i‹už8&rlz*ÑtNb‘ˆ)I`<í¹ú ¥²V×a‚µ‚B6>Z;*Ac‹D^Á[ª'I'“ZÓŠøŒ‚‰{CªÀ%I\Ëf‡­­kÀb°#0ð9bè³ C¸^¼ºZž÷1è©%™AcñNUAUØ='奠1$;08à{Ju@Ëdµ+=iâî:½×5HŠöOS–†nÀD-öÛ ×Ì6´¡£èXR9&uJr‡aCK¡FýµJyHqokýµ5Ü€¬v¹$ÊJ¡n²¸6r[ógdY/[Oòžxð?*Éqv%†Ò!!Cnd? Ó©a;‡j~W5Ãåà爊B™­µ_¢±Ñ5C¬?1@Ìä·M¯&)î6ÇFÃÔ™´¯¿|Ÿôãâr=»á¬“¿,Vk‰oQ/ú5bÔuâÍÿwÃ÷}%É•Ý‘3„óÿØ¿\ÜÌæ¯OݦšòÈ!}ªÖ‘Êm=æ=âÒ¹¶H{-8p®„Rª­ƒ…ãHõý&wmÇ#ÑOÛªF89Ö8ÐæØáÇÊ“ã½¥(¡…ÐIqDH£<Ÿøðn$#‘¹Ti‰éÂuº….À:ÂY7°$¶ ýn¹Ñˆ‹æ¨£ÇÖ?”ƒCÝåýŽŒ£ÉwŠr2Ú"\$ò*Áè¿Û ;®±apÜù侕Oi;šeÃÁèªèÌ}Ä®^w)ðjÙ†:».€5xë¾QB¢B…¬-Š ð¥.·@Ù)ì¬WŒ™|´XLî +øN±€ÊN££<êÛŸj5¬ƒt­$îÄïhK9]×¹1b}Œ'&AH9äÊ–ë©Ä5*Î8üŒïn~dÄ<9qH‚â.ý^:‹)6ÞU§ +H2id„m•3ƒyò’£ÙÈ.îšœ|Œe,†˜$ <ŸÆ½Œ Ež2“¹G¬ØÃ1Ã&Q‚üQý8c/‚‰¯­Æ$ˆo91ÀÔ='ÊíŸC}Ǿä÷ØqÐŽøa¥ß D:]+mŒl&ou¢Ü‘²9"+[Ü£Ÿ%ä¹èwZ{]È—ó½Q!ö»‡‡°-Ä°Ã2>I[Wc–•¼“ÂlkU¾¼ÀÿÀÃ2,ÄŽgN´劣lVŒlÚBG¬¯0amÓ÷æÍéÓÓòÕŒëþݧ¹@ðž´½oRf³\/gëÕMœH¯×|ôóæì׳¿ÁÎÍendstream +endobj +1629 0 obj<>/XObject<<>>>>>>endobj +1630 0 obj<>stream +x…WÁrÓH½ç+º8…ªÄ±Ç1GC–Z Yb +¹´¤±4Dš13’µÞ¯ß×3’ì(ÙÚÈšéî×ï½nÿ>™Ñ¿ftsIW J«“édJ×W3üœ/oðóœ¢Møàj9\¾õÁåâz2ëƒåòõë“‹ÏsšÍh½AðÅò†Ö!ðtJëôô»WΓ5TŠ¾ßùI§…6ŠR 5^ÑýZþrÄ&£ÜÙfK†+剽ÜSk›2 o¾3\ëz/ oMÞ¯Lé|v…ôÖÙéZNÈõia[C]â&oq×ñ:øHe”ì%vf+Ö!IÖ‘Ú)C¥Íñ¬–s£Ô%KטQXŽ)ý<ÿ¡Mf[òÊ{ÊQGèÓ½\å˜.*÷d“¶'×)ª ¨!eÜ—àiO‰Ò&ÂÿBAoâVó³ +yo¬«FyÞ~½[}¹zöðZ„ßF¥¨€Ý^*Ð5qYÚÖÙ˜LÕÊUÒ̉S™v*‰[âQÜäÔšÚÙ²D·¤eS£¤ ¶ìj6%;€oŸÁAº-tZPí/ov· X8µQN™Tec\WY¦%ä½?ÒÞ:»Ó™P iÐZƒlp§Ó®˜ H+ºþ?”MžsR*Z½84ªñÎf°íéôau÷ôžüIWB¢.î8æN3 ?Po²ÙN“2/#ÞnË.E»3 -šò–]êz–—;„Æ" ŽWd7Ȥ…³Fÿ#ìÙ²÷­u™°©n˜³„F4p”>½#RñµEoÆ«žâDLJÛAøtÚIýU³ŸÞ‡þ\|ùH3Ð^¼âÎ0›O®&3ÔÆ.W5=B9RⱯœ_Š¯œI¡/ >5$›3ª m”êñ¨àJ1¤þÖ¾–²qÂ"œžAfã؃ViÝ ÆÐéŽjðÄ­ö  ºØ =q1øìë. È+ÜÓMžµ0ÉH7`q£E=ÛÒîÃuãhÇ—·º.,¢ )IˆWÕâWŒ°Ð ר4Mmcj”q\U'æÜ)®a0^W ÒFG†Œ‚r%+\%‹r -Å™ð'f*Ñ_×p Žè—ùJ‘Æ èšw*¶¥å½+"ß*ôk `D¹‰ /Xi -É:Ž:t~sŠÁƒT$ö}è~&¬DDá“H^Ž2‚Ël² -m„€C–nuꬷ›ºãZ¤1Z‹¬‚àEéQ¾#Xû@^qg–¢rJAö"Õ!íÈByIz Ø%3$3ŸÐŸ3½$~Hn|$›É¢2m7G:S‚…Âu.c1saµLi©ïE¤3cV×è2¡t`òp!†úÐMþS ¦Tö2…SÊXU(µµ” j|ÐÍN•Þ¦Ï°€–a݈%sÁ©ß ÈzÂÎœBk‘Ôð‰˜T®Œ)„™.Þ=<„ÎÂKG=‰EÊÈÄ&eÌᘗ8˜2/zúÏhàP+[øžgBQ”ªp¬¯˜¡{ʧN'xÔÆ”d]‚ÆŸ‡†¾ásñÀë¾7(û^ÌÄ¢>#³·:,ýý¹.•ð4Ú¨–öŠ?#µ†/øa"nF+'²Ãî³cVŽ®¦58J•ªÙÙP\¦R›©þ¥ˆìE¨X—"‡ÿ'oLÄÛ‡ï÷Ÿ‡™ØYÓ‹QéweQA'¶QL§ÊÐa»•VCA‡`éòbó݆)RKË&¹ˆeņóЮ3é vŽÃ\1ŠØÙÂÖÚ÷@¥¸q^àn0T¨ÔeúÀZHÊÊ:„)®Á°p È ø{§+ÙªnâÒùy؇F¡±CÜ^›Æ„ŠÃ„¡B³Îd%+ÄK¬¶{­Ê tcJl†MrC¡sÑUeîMTŽ&¼mÜÖbÒŽ©Þû ðñ}ë)ô;5(Å)ÓTAlý00£žÂÿ‰mU”@¨£j9‘!'«/Ö³ö¯DºñÆ }œîE&Ç… ä‡f†o¥r«í(hZ°ÉÃxq‡•gBŸö7YtžàöB!§ C[‚1ÉÅÁCâ7ŒÞ¾¶³Á *ÞŽ=/xÓúxb÷Çð5e„;ºûð=çâ˲³ÜÙ_é–W´˜MÅV·ŸVâ¿d~ÞØ-š *‘ªÏû×ϯ§åýÿXºæ×óÉõb‰õ ï|œËÑ?Ö'ü 9Ç€endstream -endobj -1602 0 obj<>/XObject<<>>>>>>endobj -1603 0 obj<>stream -x•X]oÛ6}ϯ¸ÈK3 QlÇqÒ¾¥Í -[¼lv±½ ´DÙl(Q%©xޯ߹$åÈrŠv($’x?Î=÷ÜË~=ÓÿÆt3¡«åÕÉ(Ñl4Ëf4½½ÁïüXIex1ž]gÓá‹÷Ë“Ëoi<¥e [³[üRìŒF´ÌÏÆÓlšM2zP¹5Δžîr¯ž%Ý++soìŽÒ>«\ºŸ–_`jJãq4u1¹©³…ªsIZxI“Ñh|N Q­m„£µPµ,Èo$‰•ÒÊïÈRµ—V䞶ÊozŽÿTua¶Ž­Œ¨uª^“òŽÞÌÄÞGt1¾Ê&ìõÁò 5Öx“íÎÉ +šò–]êz–—;„Æ" ŽWd7Ȥ…³Fÿ#ìÙ²÷­u™°©n˜³„F4p”>½#RñµEoÆ«žâDLJÛAøtÚIýU³ŸÞ‡þ\|þ@3Ð^¼âÎ0»ž\Mf¨]®júåH‰Ç¾r~)¾rz$…:¼,øÔlΨ.´QªÇ£‚w(Åú[ûZÊÆ ‹pz™cZ¥uƒC§;ªÁ?F·Úƒ‚èbƒôÄÅ೯»€ ¯pN7xÖjÀ$#Ý€ÅrõlK»×£_Þ꺰‹‚¤ $!^U‹_1ÂB3\£Ò4µ©QÆqU˜s§¸†Áx]J2 +Ê” ¬pü•,Ê)gŸ˜©D]{À-08¢{\æ+E , {hÞ©Ø––÷B¬ˆ|«Ð¯-,d€å&j0¼`¥)$ëX8êÐùMÌ)RaØ÷¡û™°…O"=z9Êp.³uÈ*´YºÓ©³ÞnêŽ7j‘ÆPh-² +v€a¤GùŽ`íyÅœ!XŠÊd(Ù‹T‡´# åQ$éA2`”Ì|Ì|BbÌô’ø!¹Ið‘l&‹~È´ÝéL  +Ô¹ŒAÆÌ…Õ2¥¥¼‘ÎxŒY]£PÈ„VÐ98€ÉgÀ…꺛ü§@%L©ìe +§”±ªPj j)<Õø ›*½MŸa-úKæ‚S¿%ô„9…Ö"©á1©\%R3] ¼| …—Žz‹”‰MʘÃ1/q0 d^ôô9žÑÀ¡0V¶ð=Ï„$¢(UáX_?0C÷”ONð +¨)ɺ1> }ÃçâÖ}nPöƒ$˜‰E}BfouXúûr \*ái´Q-í;Fj ^ðÃDÜVNd‡ÝgÇ.¬\%Lkp”*U%²³¡¸L¥6SýK#Ù‹P±.EÿOÞ˜ˆwß> 3±³¦¢ÒïÊ¢‚Nl£˜N•¡Ãv+­†‚3 2ÀÒåÅæ» S¤––M&î)n²è.<Áí…B,N(†¶c’‹ƒ‡Äo,½}mgƒT¼{^ð¦õñÄîákÊ3vt÷á{ÎÅçeg¹³¾Ò-¯h1›Š<®î>®Ä-~Éü¼µ)Z„5AT"UŸ÷¯ŸßL?Èûÿ±tÍoæ“›ÅëÞù°”£¬Oþ:ùNLjendstream +endobj +1631 0 obj<>/XObject<<>>>>>>endobj +1632 0 obj<>stream +x•X]oÛ6}ϯ¸ÈK3 QlÇu’¾¥Í +[¼lv±½ ´DÙl(Q%©xޯ߹$åÈrŠv($’x?Î=÷ÜË~=ÓÿÆt=¡«åÕÉ(Ñl4Ëf4½¹ÆïüXIex1ž½Í¦Ãï—'—oi<¥e [³üRìŒF´ÌÏÆ8’M2zP¹5Δžîr¯ž%Ý++soìŽÒ>«\ºŸ–_`jJãq4u1¹†©³…ªsIZxI“Ñh|N Q­m„£µPµ,Èo$‰•ÒÊïÈRµ—V䞶ÊozŽÿTua¶Ž­Œ¨uª^“òŽÞÌÄÞGt1¾Ê&ìõÁò 5Öx“íÎÉ ¸±ð%êàp¾œÒÈ¥è3úLþz÷H¢.èiW9Ÿ“ ÂT•*YáÙ¶®á}àq«ê"¤dÝVÈ)·°ï‚½µ5mãÉF®ÈÛ‰JÒVìpBŠ“'ʵ’5Ò7­.à6qÈDqì>«øQÕæª ª-ËRåÁŸÅ_(—¬‹PU–\8Sg±n/¸¸ƒ&À0Ôþ*£9ǘªL T%ß|£ÖKdôÊ×çd,Í‹sRœe)…o'jáùIc¥ã„aQïèóüÓ_d‹ìvÎËÊeôÉ“Ð ?ÀñÒØ*äDŽÁ¤ã|ðQETPã¼NÆ‚pi{+‰vqF?ƒ–¥5 ðYD7ôiZ Îgô©¡  )3Åy`.´©eLckìž1Ј`×YOI¸þ`AZ…MI%šfà¶TïúÂ$SH›\h oRÝQ-={ÆGÃJepô€´ñÜn)ßW"úfhÂ~Ø$ýåž~–T -1ÂÜç^éÆ,oн< ¢á®ƒ :"×R¬ìƒxAè‚ÕÀFÓú!C9ÒÊw\I8 ˆüèH{Æ dEA§ÉÔi ;~÷ãˆcB×È-oÊÆX|•`!¦LÁnm Š²×ó()ßYi§=êv½+4Ø]Ëæ}·C<„¶ûÖ]æ{Ç0Õ5õ§Úlš£Ç»‡´ó¦•i VÎóý†—qèy PâŒUÿÆ ÇË|SmÖP@^/p?ì¤S ÷iãœâÜ@ —åîeº¬$€bˆlàz¿úv«a¯bsðn#ž9¸Â}ÐT T& ¿ÿ9G”`kÀ5+[èݑ˽œl¨…iµ°Ô¬y± 9^Àà Êb T 4vå°y›ú™í O^^ ¢fX!aábVí÷ì¤Aqõ RÑ´žV@àÅpÚ^öŠ“v·þN<ð Øà–›Ñ@/‚à¤Õ=qø6 ›ñ ×ùÛ+š]ßÄ îâîáý=Zó·;º79nœéFÇ>.º7£·ûËÜ_ä§7Óìfv‹ÿÀEðí5›üyyòûÉ>#iôendstream -endobj -1604 0 obj<>/XObject<<>>>>/Annots 945 0 R>>endobj -1605 0 obj<>stream -xWßS7~ç¯Ø·’™p`†¼5&¥Ó$48C2Ó‘ïd[p'9Òÿû~»ÒÙ‡H¦&ø¤ýñí·ßî}?Ñ ~Ft1¦Ó •ÍÁIqBç§#|ž]^àsŒ^Ó\œžŸ—?z0MŠñÀxq’>¾|8Ï‹74šœÁhCãÓËb”þªéN<\œ¿ôünzpüþŒF#šÎìäò‚¦•>¡iyxoìÌØŠº µKMªÃ§mM©Zã,5ʪ…nð )[©6ÎWÃïoß~$c[íçªÔÔ:ùcáU«_MNèhtŠô¦ûªÜ&Ч)»ó:RôõÓÍ߶¡ÕMAÓ¥ ¤êš¾¸€ãµ[à»IU.Eào–»d£+R el@&:ÓªY­éÖ›Fù-]»ÏèÊÙÖ»ºÖž#ÑA§HKeTpT.•] Ë¥6~‡¶U–ìR­ù’鯨GMz>×eK•ñø¯ÞfÐE²:žg ¡` “ÎÎÍ¢óÈi¶¥•wkS»àï9|š›åd˜`<:sH’¿c… ‡Çº-Wª)ªãø¤§É!Í' `ÉÍÅʵ6¥PDµY¦^ïOÆœ‚îÁ#“}~øÞiÈ4ªÒœZ­êžs‚HU:Ü—5À÷K·2`È Ùã ËΛvû‚Üdûò ÉÆd y]뵂pìÈ£À’nUAijtyÑÚ(ê ;-­FLûÊ•ëPÔ%&hã|Þï(¸2u(bRPKt ËÞDYhtVœç}EPRàÞ=7×ôšEï9j¸)³[BJÂd‰ÓT»¨Ø)K -áTPQ-2·Éf¤ëNð)ÀX; †‡$Qâ€ç -B¤°âYÄ>ÔËC©rý)cs¿}®¡Æc‹ÍÃÃýóÁÆñy\½ÞLTñ½Ö4ú5³Â„Ìéž&|Úê§6–É̽kĆ”VI­ üÐdÅÒþ±ô1~ÄÑsæ³xc <2°˜b¦âï¡<íïÜ2ÿú†¨b÷qÛ¤¡5EBÀ£«Û‹|ØO,æ¥ÀŒÝD0X,sº‹©€¶ìB5ÔLa /u]Écj«õ_ÿ¤m´ ˜’©„Šì0eÙw3”ý1gS´QÛÿ‘IA_$)º’ dÁàW­$oa¹”V+ñ.±ÐV󆧵 - ”;f‘å^äáÖ­ÐcS«Ž×+!G‹ìá‚Q‘ý!Âtµ—Rnu‡2†JЪ_Bî ²‡³…Ÿ(Ø“„Z²f`m«dKÊX”–ìLˆô+7à^-(ÙDÅöºí¼…;øt{}%}xâW=Uí@‹i—8•…“9–…lh–Áá( ùevg,Äš‡Hô9 øËŠæ>Q6êâ.‰Ì©¤ÄÉB½/ÞaGÿªø¾ƒXðÔX›Ô÷s£ß‘ fúÙù•%•5gÀ¿D®Ëô¶3šà…üò”&ãô6Q¸õîßÈ®‡Û%ƒrÔ_8º8y“(ù¿6dz‹³âbr‰¥T|3a[¿Mþ:øÀ0G°endstream -endobj -1606 0 obj<>/XObject<<>>>>/Annots 948 0 R>>endobj -1607 0 obj<>stream -x…XÛrÛ6}÷WlŸ¬ÌH´n–äéCÇi“Æãñ¥©:yñ HB"jPÒªþ¾gP¢˜¤Œ£ ìîÙ³gúz1¡1þMh9¥Ù‚²êbœŒi>$+š¯–x?ÅŸ•´áXzüïóïË›dBÓëy2§Š&ãYr?•ôçE÷3žÎ¯“e÷iç3ž.°Nò{;ŸñôfœÌ:OÙÃÉõ4™ö=|¿¾¸úx[´Þ ¨Å -orïò˜ÖÙ`2O®“IBwº¶&o²Zýný7öÌi2 {FÓ%ö Ö…rôééËú‰ré2«Ré¨.$í¬ÉdÞX|lœÌ©6´•5í•N•Î©Ù‘À‹m´VzKFSu Ï2ÿ$jZ,wpµ¬¶:¦Ñd†`íKÜ ›™Ø‰´”d6lêMå|ŒÈ2éœ?Y4ðB×*ì=e†c)ic,á”Üìýf*¡4»gÙgkšm½ô¸î™ {¦÷ôüÛ¯þ„K+·M)ì%aÑ!¹&Ãn$K@!¼M½òw{YÓÞ>¼¿=njÛ.@Œs0 ìJ¥Ô´·ª®ñº±¦Â¡—£Q†Ø¬Ê.içw)z“ðÁÚÐÁ4$ÀÄÆyL´–rå°#mŽa/@ÞQ‰âMr¦*“«ÍÁçQil p8¿’û)š ½Ç>ì?7@{c_ïêã"’e3jCýRȦ)sºãÓjðè—o9ÖF”%gmE^)ÍQ‰Â!V–¦/éå¿’Y!°¸rí‚Çõˆ0½ïAѦø;g€jy L%«¸' J8$’H*Þm-ç=¢NljÔ¡3èj]]:±CÚˆ]±-“Õ„PË+&ÊËt±¤€V ®>Z,|™¦7•@Eøâ`ˆ@ÖTàÎÿ`*š×K§¶±pá„¢¤3ÜÂ݉rªÚ•’Ïgæ…p²”>úNð\9ŠU`¯\Áù{l„²È¡N•‡—w¤t-· Éi>µ¹¯ Ï?Ϊœ¹Ô·Õvè¹5 r`؟К‰í„ʇ ¤¨É|\ž>ß>À< -­öÖˆuLôè“JT«å]ÞqyÀ'N5°ñÒ¡Ê„;Èy’C;)n…z4]%“Ý,ƒ\x™ž&ͯ²vHñLÇy6 -Y¥‚%q£¶ Ðeä @Àñ±|dµÈ$Òá…$Izå< ÷·¿ÞÓÝšþzþéÜî râD™’YxèåuŒ®—£“N (Ù+·.Âpò4ÖÁàJÖÙÕNTI´ü@à,tÐ؃{xî~à•—9} ^Aúr¥ÆÔ,“¯ßøóp{ÿ¡çûÓãz|úÒ3~· -÷€NÄ|Ý«äF pú;˜s'Có¯’ ¨Z -æ?ÊÈ`7÷7p§4[¿cžW"+”–¯—è-EVNà^h¯Ò¨ß&±Ù‡ç‘EU…³`×Ædz³°ÇÝõû¸?KDeø8F -?|“‰–t!}=¸`10Vm•%¹š‹_ÐaÄÎÅSÂÆ6^Ö¡;Gø|!!ò-ú;6l Þ&ôóèå]4Õ¿†§»š 0ŽÉ åð2h¿ša6Bů‹ÜfqàË»!ê~w²²ö±t5Ú@xÚN/9åBVF·ý»OžK= îƈýˆŒïe -l…!š»Šƒ„¨pZ)+ Ê¡ŽŽVÊZV\”X¡ÎÚp˜Æ:ZŠqF—¦•y‰>ÝØ Œ4¶>Ñq#íO?ÌUªºU+ž£¢lÀ; U,uÚ‰¯;ƒá¤V8é„Ëq"ê iHhÇ…px$àЋìË`W6Û­'l¿c…m´„ -Ôz°SC!p,„™kcÏê±Xî@›‡´°µÃô'J0žÏ÷¹h{gPËš8«aÖá.Uj…U@¨¨ÑÿÀvaé#Òeâ…qÀ OúFÝá1¿Bg’ èU¸’B»(~Ç’ƒýÑ8YÎGÓ)zšÇ‰7ƒá»f·š²F(ÐåB‡)…,w›¦ô-©äqã’ç‹3—o²4;nßàiö -ª:.Ì`êÌ ¿ôG®„õmׂñÙ¤Ó°fP.¸Éå„Ë—óSSŸGÃ*êoï%¸T×Âò†'=I 'ÆЫBf³ajûP¹0BÚjEÂN· _raIè>ng/:Xá°à×u+yäª4ö£ÚÅfqZ£¿³†Å´V¤^ÿ¼psrÜ0@ð|x†5Ú·Mf<Œ˜[¹÷}ÄáÖå÷öâáÕa‡BS ›û‹Ùæ d ,E©í …;kv\¼;m7>r¡ß¨tºq¸?À'Tß ²Ln \[± -ãí%ˆs^ìYò[eÁ¦Zt‘³z„.¡cñQé““³W|Ã×'9iWv|»â=•Ðý=¨ _ûŒ¬'|™ôÚ´Q%ë’WuM` zZŒmäK¦­+$ ŠÚ)@™·BÝ6ä5”á©ñiF)(™cÑP(‚VÖN€ N\¸cLgò噞®Û=’Äßß?!è},ùðï+G¿‡<¯þ/© ÏÏ,1^ƒ"WW±Ü& ü¬²šáç‰Yâï5ÓgkþÆ ‡®2~~eãvÃh9¾á{Ð~ǘ/çÉr±Â/Xt³ä½Ö\ü Ðt‰Zendstream -endobj -1608 0 obj<>/XObject<<>>>>/Annots 951 0 R>>endobj -1609 0 obj<>stream -xWÛrã6 }÷W`¦ÕÎIJ%;¾ì[¶ívöa{‹ßšN‡’(›ŠtI*^Ïôã ¢-ßÚ&ÉıM8 ¿Œñ7ƒy“”Í`œŽa¶X¦S˜.æø>Ç?áö ÷ãIº¸¶°\^ým§ãîå·ùdšN`š¥3h _fä„>Hx|X F—e°ªÑlž¡ÅUå ŒaU&Ù4½O'i–ÂwZÕbÝ"*¦*(u³’ÃãÃçïV_ÐÌô`f˜ÏÐɪJVŽ;Ã9æ„V½³á³®ƒ ¶†;·ë 뫵Ù1S¥@Vja¬·1œã¾µÐ°=(í àä~ Ãl’æäTñ’[ËÌ*¾åªj í}ï6Üm¸müÁ½naÃ^8ù}ºµrE+$¹ÁÀXS0(„bFp›†Ç° ‰æÓ¡ÑÚ}³°8ÉqsW%¬uš¢?9;ôëÃlìüÛù†=cú$gê­LÓ¥?-Y¹ñ‰}ì‚xt/ñÍ&(–·Fáó ”uLÊ`#R­‹!Ÿ²!‡vBÊ;(èîkÖJwÝÁH3F }2j­I]29²t秒‘rĈ† ÕY©tÙ6\¹ÀaQr‰ÎõX¸c -‰¤ÏÜ[Ýp¤!—–§ðÉyÄÀ¤Õž|•wµ -™WUÀ¿ò²u¬ÀJ£ª“¢0}>+w˜/!»‚ÍûBʺúL”µ;áÊMz$g4”x7máèò4/i¿ÈÀ@q^qŒBƒiÎÝGçÑpuj/Šñ‹K\·ë DÞ ™+HJ¶"ØF»Â`áê-7d¨—xºJ’{V'(µÀ@÷êî­ÜBšŒ¬nMÉGÆ#Ä÷viIñºè«Ó zIù®´Ö-^›pE% Åš’\k)5š\ƒÝ7…–¢Ä|«ç÷¯ƒ- ­‡såå×i~ùƒª¨h<Kf9DãUZ-‘zömØ|‰â„ò»¶”f§i˜d÷ØÖæA[¯ÞŸOƽ‡¦pÛÍÁéýž»Ï±i.Æù¹?š»`ŒGÍ\";sû†~Ò»;`(¤<‡á2í4iɈ»òÀâ^ÅG M¨¶PXõZ‹Í‘df%¸Ô7j}]í½+H†j£›Ë²îÕ_Ô®€ãè&Ôw -Ÿ÷¯‡XÓ¨!µ~ÆòÀžè6¨ô¬v—BÆú9°ò¼?C÷³e(zÕ{ÿ‰¬Q§ðK0 }×ã~»a•Þõ÷ßØèsöárføl(Š#Ñ…Zb¿êkn'…ÔËHöhŽhPÓ°EሂׂýEEáÅ]ÑWY…f}ž?x7Šu1šnfr¢áD%ƒB„ãUƒÃgìB -ZGú… ¯®xJˆ"D»J«oIÙ:¹÷'žÞAh‡¸Jç¦Z‚}¸ ÿ§Ä#‹ýoCá ü¬äÛþ­%7´¿QƒôÕž³ì´ϳÃ^˜¾ÏbV#…}1ðr£-¬|8DáÜ‚ñw3al$þ§=xÒïÁ¶)®T_¯c<òn˜„-3¬á˜i¤8Î ]?í9ZñT#x×Îhéïµà8Î -œnu7r;[Œè,ìÀ°Òë”qœŽ.ÏŽÒTŽÍ VÜ–Fž“ÐhÿÃtÆ.?% ¤2c\ãðs©·|ùúß1KzRÓèJÔÝD T)Û*LjǶ5¬Kßïk© &ÿËKš:V.ºù ›á³×b‚AK|> Þ?ÝÀ/FÁýð}ê#(Ãx`8£ðTñi VÜ’*aŽðÕÂÏ­¯·é|šÎg‹ÐA– ²ðÃjðëàØ eendstream -endobj -1610 0 obj<>/XObject<<>>>>/Annots 966 0 R>>endobj -1611 0 obj<>stream -x¥VmoÛ6þî_qkP4ElI~·‹½ m’¢ú²ÅE?¬û@[´ÍT5’Šg`?~Ï‘’í8I±`Nœˆ:ò^ž{º”à§KãõG´È[I”àÍîÏïo[½q”Ðh8ŒF”S·;‰&õ*£ëZØ`KN“Q4 ‘_ìeÝ^62¿ØɆÓÊ ´7ˆzV{á^xá–‡~µ'^k·ÛÇÿ¡_í…ƒqð5éñI¿b!ëö'05˜pL=|¤¥ô§],¯g­ø*¡)Í–@i4ÁCêÁIh¶8ýc•é¹Èþ|9»i%Ôér0³ô”øócE??$8!+Ka„“”ê\¨‚D‘Re¥)D.i£Üš^œ½hS¦¾Iºøøþü݇³FÌ -{㽩*æ -Çk•Úð†Sú‰Îø¡s¸Õ{u†¨R©¥¥Ñ>Á‡œ¦žXjÓ8Åícæ  1ä5tüñï™\ý“+£«òQ›Ðð›"Ëô†dQåP+]^Û€–ÍÃþ}“|ÜgÆ;Å°n¥%Í­4Ì-~÷éâMͬ iPk‚=n(›ËÂñ~l^jΞ*V´ÐyÎå-¹@9ÜSÓÝhÓf- vDmç´®¤»ÖOIY¯“KE Hýî€/[]ú‚úÒÛÔ¼9Ö|žæªPÖh¡ã«&Gš¾™¹[ùñÕ¤îôÝ®³“>.¨Ip)ô€OFßÈ…£ ½À=¨p>lªÓ茾Ò6Ýfð…ç.°.V–>VÞÐ`<ˆÆ£ nÀØ:²†ËYë·Ö¿ËW‰endstream -endobj -1612 0 obj<>/XObject<<>>>>>>endobj -1613 0 obj<>stream -x½Vko"7ýί¸JÑÂjÃ<€²ÒªJBØFÝ„t3mU5ý`f<àÍŒMü‹º?¾×ö !¢ªUÄŒ}Ÿçœk?4bˆðÃqzHËFDÐë‚.ô‡Çø»‹ÿ’BÞ8Ká8‚Hr´ ñG¸;Š IÛç“w‰ºäšJNõÏŠÊ·É4èC{‹Nw€íÉô‘ £ŠÕ!\Âœe¸¢è‚H¢ÅV”60­w­ÀÚE€!ƒ¾ ú›0Ž@Ï)(ŒJH "ÇŒÏ@ ˜Q 3)ÌÏ…,‰f‚C.EéŒnFçï}:ë&tº}ï_ -¡¿ó‹±ïP¯‹+Ø™¬%ÃB¤¤1X@¸Ä¯\@göÌcÇYuâ(ZKÛÓ‘ïÉiV2®ªªv¬Û†¿²üÑP¥_Y?å t¯náZŠ¢Ø½éœb3oÌ´`j¾{Çm:§%½…\Xê,$StÿžQ°tç’ZÀdÉ«ˆ;Ø– ڹᩃ²…S®[Ž -\,aJÁ(ä^¾á,gøˆEhe©1z:GGd€Ý/•{rTQ$reùQcÓCå v9¶J [gŠ²D2¯¹³¡‡ä9Zݧ - ¢Ô2ó$y&¥'^«¹0EæØK\ê˜ Ñ˜¶¸Wø|Oa%Œ„šh>|;¤: wyo{>lÆÔUWkÓ—¿dج™Iàt¹U¹a™:„™ûž ZÆ$M)F}ã2šSh@¦…Ú–ªEÌéÓëÒªaÊG mßuœ>ƒº»Ï«ÛPþ†2_4×ùò–'cjè{÷ƒ£  ³¯n0Ît€³G©qJ¨T²…WU8>©ãz&¬íã>1n¾úHÏP´LÁ‚ýÊS~Õ”Û½ ¡%Ž$Ni¦,i]&€©ÅS³0?yRåô…$ãv@¾c›†áô—†sä2’]I‘Ñ +t ÈÖ£â½&êþÐ2Îei“,EÆrO¢­ÎY‰9nª•Ò´Dïsºrñ¬æ4’yìSÅ#Ê#ž·ˆ‹{ÞSÿܾAüã*ŸÏ4û½ØÓä5Ov0¿ô#:e„Ô¶’e5çŒ? -”˜íD a¨ XH±ð§àF:Š>ÊSÀÕj‹HþQ!œ>‘WA<ÜÞ³ÁC[õö¾}ÔZsÞà©ß;N/¿eƒÈu³k¥ãQî4_¬¦ÐrÀ·ž&qÕ"¯ ÍQeû¸ž”ÕUc­(çå®}÷þ´)ضV'%T?^^>Ü^ìÙ@Ó9žºš·VÅv>7­^(ä#K©zûL+ñí<έ̠‰qG“›ärr}»'üç‹ä—ÓOšßïY·éíYò¥]ÿï¥YbAãþ­Òºÿ¢¶_ýÝn_ÿÿ#è6±ƒQ±Þ?*ëwhzsèм vHý¢ûâM¯zó¼yƒsƤs‰»8Þ‡ÊLqDÚyß¾ÁÝ¥H8V31à=}ØÃ+y¥†ÛÓ«³S¸‘â ž»0©)ñÚ㮳ֲStŽ#{‰oW'$xI´ŠHìXÁÄh»½?ƒ£®¿ÌÆQdß]$Ÿä*yîendstream -endobj -1614 0 obj<>/XObject<<>>>>>>endobj -1615 0 obj<>stream -x½VkoÛ6ýî_qjµ3DO»Ž[À$Š®í6Û‡¸Ce‰ŠÙȤCRñ‚mÿ}—”å8Nµðq,ò>ν—çP·­!ýF8‰1!]µB?Ä0ŠýÃñ }éO1ä­³Y+¸ ñ³œÓ󣃸µãšg“ÏuEÁZðgƒ­óÙÙ^+¶†·A7úFM(zO¿ßAoûß>|nHz…v—@¶ñb‚vŽØ®N»zàã®Ab=³¦öìöFª»A·™b·%W„&—j{V˜³çž&šQö¨½=À{[t©RàÞ“¶>9d¸È¸±3¡P”ÝÞ²%­ÉUÍ‘ÄÝÌóþ:1K}ŒT7×J–ëc,¥6ÏfqºåJµ\ ‹õü 14¹¯ÍJ!ÍäžÆ|þÔçaट;†’“OÌ­}p9ÞÊQ4¢×žñ£z±ÉúÓÓ÷g§øQÉ/,58—i¹¢— W§õójsï$´oDý­PbÆ´»ïg–ÖKGˆáhì^Å$þÖ4tïH³ÖO­¿Xþ‰ endstream -endobj -1616 0 obj<>/XObject<<>>>>>>endobj -1617 0 obj<>stream -x¥WkoGýî_q•~®Ì.`Œq¢ªŠëZ‰Ô4iMUUBª†Ù&ÞÝ!3»&¨íï¹3;<ꪪ-cÄÎ}{î=Ãç³>õðÛ§ë]ŽHg½¤GÛ+~_ãu€?«h n’á©ýñM2n?¸œ¥÷=º¡É1Fc¼Éþ{=šÈŽ’KC•°•.ôãûÛ»óɧ³uû=¸šd"JkgÓÜH‘§N3‘Ît™–Å,£îusšNm`vÂðI°£uݱSWÌiÊyãkÐOFÿ0Á_u‰àÝ U˜ò8ìÉT×Á(;>þúu+ÚKW™ÕËéùñÑGç+k$qáÏw.Úg"ÈûgH”Ùô~çkν³”y~8UKíhetY]øÌÜÒÔyF3Eb–+ª u¥’8ipاËü¿LÌ?ÏxjpðH™)„.©PÅ Pª]Eø\‡º× -c*ÈO Õ0K"¦;œÆ˜^xn`½Nè;Ð^/jXF~£Túøæý ŒƒmƒòR<)*D¦H7…Î… e>–fr@Ĉñ£PŽ@¨µ±<ó•Y(”mjœ®Eé±@ö‹Æ…QxÒˆ+jØ–•–¢Ò¦¤¹±dØ›GLKå.èQ©ø 2DKh²T´ƒîknìt®•Jeì|Ö,ò -¸fØ};]¥V M;w:kØÖtÆ…xT4ò±^92¾+ÈÉê….ENQìZÏÚŽŸ ¤“4ÌÚ2’æœÑ·ŒIiÀœÌâ@8ÙÎè`:óÈ¿Æ®Å_ka²:P ˜îú±ÖÕ’‡Ï1c”@ÚÆÌ{]¥)VHªA¡«XÉ^—’$u¦¶R¥¥sˆ!—‡4êP¦-ønì†f`údÐÄ(¶c¶ç;Vg©¾ -îvCè±R ù{C”Ä™ÃÐÈ2zš[SpñíŽl³?´ÜK:p(<Ž)vž‹ÚñͤÝàK³ÒiœÏª'ï–,øÔ²ÿ=P™²NÉÚêjÓ4Æ%ôk`ƒ˜½Åœ¹ hY\†®±NT—æz–F?ÏTÇ&Vc~Ø Â·ŠNb2¼qy 1"-h‚&þsÜfCE(÷zt²ÛrEÜ#hñ¬Õ{:Qí¾¶´Ö`?¡tYIï­R·w]·RRϵäMx¸/‘óóFÓi7à!åCˆ™áåcª½Dr)Ê…Ê°ÊÏÕ<®X !/|lVá^E°›ûUw0 eñbä;UŸkŒ[Æïùç„R>bTâÊü&©ËØ;³°¹Œ )MíüÿîÄò½Ã=ê×ï˜bèC˜‘ç^X«ï×( -¬e[X7¡äe‘‰\[ˆ<–Õh,®„ -äƒO@œÁ¶œv %‚°ø ¿¹r3=ÇD¨¼TfÖµyµŠø¡epf3ˆä@•AæýšmÒqþ¾Á¸6 ð¥ì 52(à“‚ÄY ’œ˜.¾ƒ}ÑÈ';_CdȾä„ó¬áéVw¦ç|Çòûä:é3Æ®–GQ­)ÆÄÏÖ²Âíáb«R 7\Ô‰RrÄþ×BÒq+¹Ý loYD ý¤Å¤ÒuÝEKÚö¼ôÃgãFû#|½_Òèz¾o<¼yû†>Zó‰¯dwFÖÀ÷ š-»Ñ {Ýão2ñE\8ù:å,Ž>Ô^­‡£q2ºà‹í ØÅ÷“³ŸÎþð; endstream -endobj -1618 0 obj<>/XObject<<>>>>>>endobj -1619 0 obj<>stream -xÍWMoÛF½ëW â‹ HÔ§e©€€:m ø`4u)`ÀX’Kic’«p—QØ_ß7»¤ÄHr\$>TF +Üy3ófæñsgDCüŒèzL“EYg i<™SšÎ¯ùoü+$%÷«ÎàvH Z%¸1›ã˜pz8¤UÔ•¹SIKÊõåêNNi4òGûãŽvmý`o¢?žÂ žìïVÒ¼pùV”Ø-Y|Q‘4d5ítñLÛBoe‘V=ªtI;•¦$R£)—2æCRÙ,h#¾HRy¬¾¨¸)Ū‘Õ…‚©¶qˆb •S Æú£I0f„"-¤ˆ+x“Fæ–tîn0Yô¢È×ÒýïFg0V;¨ÈÊl› -‹gš­e.‹€Ê¹€íÝsü-ÇL@« üR$r -%IaTZ!XU¾vN}ÞPI—ô®É Òyòm:»´Nu¨ü³«æÊ(üGwþh㙯0‘?²÷:6lEÄëè>% -©cðérBìz‡Êå!êãŠ,"TØ \ÈW&r$ŒŒÊT*P'í/²PÔxš±ù€î«µ¦. C”jýL©zær*óKdÍü=mEi7ä?…ü\¢à±û6HU802* e+NÇSªŒuð@L>,¹¬(`nä2–98ìK—=äÍÕ“E±4%r!ã&Ôa0wt&Ö©‰WÀ+¢ghzoi*ƒúþ˸^3º‘ijÎÀŠ"]ºXè‡#;˜x ÄÌ€ -]ÏO=3¿ßI©^«Üs°™©Ý³½”KAØô‡¤¨º³˜È;bJ›7å´#¸´¶:SÄ7¥ç+<(sõ•Ù‰®yJTaìÓV˜ýüþ°=×®ˆg2uàê+a¾ÜÈ?ÉÌÖtàb½ò<{;£o×C-¤-£zkÑ¢Ønü9…X‡FcEøQx¦ ïx©+ladîHÄ1kˆôÍwX”nð·êuêëÛj|uÑ‚9$öM(¡;à',­W,/¸ãXk²/ï”ãþk;¡f¹c{¼/ceüŠ-´¶˜&†ðÜ‹ž\ZÖQmn·n!¢mF~é4ö—² ‘ó@"±Æq†¿Ÿ?Žj õS¨˜tBPºbëô b¶µ^å5´6NË nšÝ‹šÑ4¸ -&Áu0èACq(Ó7[),YbA¥Öe!˜gr3‘Q%¯ry–ïe_pJÔéUH·Zöp¶÷ -ˆ)礆˜ÝKYE¿·¤¨“L(¶O¨¡8R¡ž8té+•™eeŠªŒ$Ñ,®87T®Ýâ{ºƒ¼Šeð7”3벨4Vgê’uœ Àƒ]èlÙNž²2ƒ1=f3â4%Ü¡4v£Y·:mÌ”Æ4 ;†Þëº TõÒ=•¬ÓÙ y•ìñR;ŠTe[}Ì/ B^×=}·¸h®Ö›àBApA+½ûõ±{ñx¹’hŒ¦<9‹Áp1ÍèáþîÝñíãïô›ÞV…Zo,=v£ÇK-³>~-zôPæt¯¢BûP fJ9 ­ùuA7¨ÚG¶`è#T>Þ(â“C'n?ÜÜŸÒ±möäÆ –2"W‘c/ëj±–\´ã“ü}p;¯_ F3¼Î'4»ž{Ùÿpsÿþ†>ú^ @Ô¨d#û–è7ú×C~CìÖE+i,qµÁoC–Îñt6fWc¼PòÑá„ÿ±êüÕùztŠûendstream -endobj -1620 0 obj<>/XObject<<>>>>>>endobj -1621 0 obj<>stream -xµWÛn£0}ç+FÊ>´á’š}Lµ[©ZíMAûT)rÀwS_ÔÍßï˜iiÚ–(Jñøøøxf<ó`yàâǃ« Lˆr˵]øìÛðçWø8Á¯ XסåÜà„ Næø».„ÑEÆ7¬¢UŠöš 㻣¥p2¶v$´`jë”$_=²bÍŠØ–ü2¼·\{®=G¼`>Ý.–.Ø?²=Pb»J˜jU)áãÐ1#ÙÊì¨þ¨³ž¨%©‘:IXÄh¡NU¤?L«ˆH¹TrOü-boU‹øšÆä®±ÚiðA žÁœ•°)úl/n¥9"6W) âû½àÌY%Á"Š¸FGÍIA64GŸ=rÌmìןl³Ró½9 †«¶+™¢Ø¡”²? žQ¹ Öç.Ç'¾Â±Ý;óUwF‡Öí‡Ôá è.U¦Cë¬ÃèÐ…Ä‚¬Ã–TJÆ‹þ¡ÔÐ’õÄs¸é~áõøÈEܟר!fnÖjj'ÈOŒñp¾„;Ž±jT{^„ôÁ:Ùx’º,¹PpߨXSÁ%ü™UõfHeúîBÏMÒÅAKÚZß][¤¾ê+ö¼4x$à|ƒÿ_±žªMº+=-E†EnòI›ÏÀ½v•3 w¹×骨ð]¥¶b5^=¯6|OëTÖfÏΞ·ëÆ“ÀÔî·@2ÉÄ1Vþ¤32VP ‰ÂjK"Øw» – U X <R|ËŠ Ä\¯3 -¥ày©¤‰¾Fð)v(¸h³!iדÀöÍÀþˆ}ˆTƒv˵€%Éבcà "^4Rf • -®7éΊ”eÖ³JI5×'l£Íõ€MŽ¡MŒmþ­Vunæµ^€-Ó| -[qX.¾_/à—à÷¸|á‘6‰¡Ê†í¸1_¹¦›ºð|{fOm‘·a¦ø+᧮*0?˜ÛÁl‚Í—1u}ñ5´~[ÿ³_endstream -endobj -1622 0 obj<>/XObject<<>>>>>>endobj -1623 0 obj<>stream -xuUKo"G¾ó+긑`– 87/Ž%K±EÌDÉ!—¦»zw¦{¶°þ÷ùj1!DÆ€èGU}¯ù>ÊiŠ¿œV3š/IÖ£i6¥Åz‘Íð¾Â÷þ½¦C»0_ϲåõ—bôùéžòܵ\çT(Â=Ó)òS¾È–ýjjE4ΆŸŠ¯8° ûøÀd¶Â¥…úô‡±{cE A6Õ{íɨú8KÆ’‰dò^ÛˆÎ*-‚VtÒ>àrŠGé¬éèMёÂtµæƒ‡“×\Eó9FDÑþ†ð3ÿ&³e¶¸ìÆüS­z'gñ&NÂTb_çQQc:›~Œiç*á±_`ˆç·ç? Mx mK -ï!ê:ŒITñèRy¤ÆùØbqÑ 7Œû0õõA Aj…á‚A=¡…d¼G_…—Ç …×ß“Áints5}eö^xÌuh—£ð¥Žÿ©Î·†ÔpÇí¶W@wÚŸŒÄçÙD”ç™·U*KæªÊCBml@/N¥J‡“ŒŠ#@Ãk¯A£U;žÖÕ5…^w»îþ‡*ÀÐÌUí%ýþ -àOÚ*çCÆ;>?É^k“UqÞͲ5ü×l¹¢nà Æv}²lÕX®Z4 ú ŒÔ©ÜÍôöü“¶”QmïÖElW—Λx¬1nÅj0J7h×°@¯Ñq^qLu>™,W…¤S€¦ ô–Þ¥ª&AkKûw:wVÉ虫¾3çÊF¦ -9p.Yù7ª]Žäºc˜–L'†ƒÂ¥³,9&%¶,Yh¾îxdg8ïSÑ-úT:DïÞµº ûà«ÿ…}~ßÅÀ¦ó6 cÅö“ÒÜ×­pH9ˆ‡ñŽâó -)]B ¾ ³óßB8-•+|S_£ï¹i#ÛdBA¤Gçž¡p›ü‚ü––q¨·0¶[ CÉo7üU3RRßÄbŸ ,†ÌÖY~O“EŠˆÏUFge•8áþ-Ø‹ôd½`uiÃMB:Èn }6¿áßñ‡yé¶]]V];®i¼k¼QÓ‹‘Þwˆô¶Ýk? ÉOlˆÊ[=3,8p2°IТF0€Q—œ’à6û¸æó«ªÊÕ½?»¡9M8ó;³öÑ`Õk•Z–ÙiŒ‡PˆòQ]J|òɶjT›úzàÖñìh¤€Õ‘UÖ¼î3&_⩹žÓ<¿ëä¼{xùò@[ï¾jéÑÉT# Ûyy®Ép`²šÞs,Ý|^.–ëly7ÃÓ’wLïøä/Åè·Ñßõz1endstream -endobj -1624 0 obj<>/XObject<<>>>>>>endobj -1625 0 obj<>stream +H|°.«åùw$qैç+‘o ñßQLV)'C¥ŽAÀªe'Án¹{!ž¶…,Ýsôºß˜v½á–ØÑ=›¸Â Ë£¿Æ«Æª*dmjoMl­@SHë»üˆ¹ÝÙ¥ôùeí\Æ ­PƺIx"0e&}ÆVâ‰ÅlúÚJ´¥7ƒ@ ƒ·Ú˜§¶ ½þº’ðÃ0Mþo4!åºl7Š‡†€¢†bÅqH~×H¨áñÀI¡JL&îÜ$}!¸ÓF…âôÐC DŒƒ‡AŸRÇ„R«¶ÉhÉ}Â(ªá„ !»Fb¶¹úá( ª¦J—†'tÁ²î¡ªE7L·<ùÑ‘öŒ!@ÉŠ‚N“©ÓvüîÇ5Ç …®5[Þ”±ø*ÁB L™>‚ÝÚe¯çQR¾³ÒN3zÔíz-Vh°»–Íûn‡xm÷­»Ì÷Žaªk,êOµÙ5GwiçM;*Ó@¬œçû /âÐ;ò Ä«þŽ—ù¦6Ú¬¡€¼^à~$ØI§*îÓÆ9ŹA.ËÝË;tYI8ÅÙÀõ~õíVÃ^+Äæ4àÝF>/XObject<<>>>>/Annots 955 0 R>>endobj +1634 0 obj<>stream +xXQS7~çWì[È ¶CÞJ Ii›„&ÎЇÌtä“l î$GºÃøß÷ÛÕ¹2í08øNÒî~ûí·«|ßÓ?c:›Ðñ”ÊzoTŒèôxŒÏ“ó3|Nð -äÅñéqqþÒ‹ÉxZL^xËQ÷ñùýÞxrZ¼¡ñô‡Ö49>/ÆÝ·Š¾ˆ…ñø¤˜æ½í½;¡ñ˜f x;=?£™–“G4+÷o­›[§©&R³2¤Z|ºÆ–ª±ÞQ­œZšOHaÙZŸñAŸß\| ëª4Ôxù² ª1¯gw{#:#¾™f[Úo"}œ±¹y¡'E_?^ÿMqS4[ÙHªªxá³ X^ù%ö±™nc­Ê•upîÍs“ƒhŒ&µTÖEDB±µšW†n‚­UØÒ•¯ñŽ.½k‚¯*ØMçi©œŠžÊ•rKD¹26ìЀÃNgÁ®Ô/C0ýuoÈ,¦lHÛ€ª-aýç^t§N¦Å C(XãHïvÙÄ4ßÒ:ø«­[òsvŸ¶B:&žŒyɇ½e… ûG¦)Öª.ôQzÓÓdŸ>°ärÒõ`K¡ˆj²HƒùÞ"žŒ9Ý‚G&{Ž‚øÞ$ÈÔJ€­×UÏ9A¤*=^wA\fF+;œ·ÊûûHíºƒz?SDвfvlVª¡Úë–)-+¼Ä7à ³¾\™ò^ó¼5³Ž +H AOÔ¯‘aPAK*9³Écï`xûÊ{0è¸=`ÚÃ8êŒÑâæ3Bk``U–1P)s»œ"ÿlRMѧ—OiMðþÒ¯-Ø$²Ž€ìQ4el³}Æ .²§ô ÉÆd S™áØ‘G%íZCIJTyуUÔ@_Œ”1íµ/[Ö¡¤KLÐÚ‡¼Þ‘pe«X¤  —¨–½C¨²Ðø´8)N ú +§$Áïƒ{®¯èš“DïGÔ°yš¹Ÿø,‚@°¾” e0Që@Š¡f19 6é\–rˆ €æª B «Ym[¿í¾¾úö:i`&Ί•]®X4´…Š–d¤OÄs³²¨Õ•û(ˆ@¡nalÎ*+Tèc½3¹MÚÚuIª6i{nœ‹€-ÀÞn³Ä º–RîRö*ÒŸó:H˜ÝB&‹ŸVï¼b£,)„UQ%µÈÌvg&ºîŒ%°s`Xè$J p_‹×܋؆z¾¨Ë\¿ÊºÜnklÀ°aFSÛâcwÑ/`áöÇÆÆþ}õ¼™¨\1  z­Í³ÂÆÌèMxµ3MJ-‚Y_Ë’ZiL$¹‚ðC“‘tOHÛøÒûø 'Ë™Íà…ðHêq3ßåaïx×Á-ý¯/ªË¦kZ3<Úª‰)YÀ‡ qÇb^ +̘-@‹!À1Ç¡»è +(Ë~!TCÍòÊTZ^S£çÔ?þIÙÑ%»*²Á.ʾz˜¡l9Ûy@µý™ôY‚¢K™@– îpÔêdã'—RêiÄ!ž%–Æž`´òBarÇ,r\‹ÜÜÚ5jlæ ny¼r4˜Áîá.•Øs!ì¶öRÊ¥ÎâP&W)¢ÃÁªû!ä D6rsv°“Äs’PKÆ ŒmZ¦¤ŒEÝЙ ž~å|RGJÖI±ƒiÚà`Ž>Ý\]J]ßô¨ç¢ªÙµi4ék ë¢Ä¶tÙͽò„=Íê ×4êœCt=‡ÉŽýîWŽfÅb*ºÃ|ÌüZó`‚9Њt>ÍÑŒ×oŸngŸ:ùF¢1ñ…H\þAÛð.-Õ&–ÁÎQg+¿aÃKÓìêMÉ °8’Ð:Çú‡e]ý@%’˜ãí`ín YZ0£n}èOëÚGšûG¸ÇûJÚ™L½Qò;Ô +ýí.§ü“@|yP:-Æœ éáà_@œñ–+[ŽC(ýI‹Cdæb’A˜ê-4Uÿ† ø ·ÛîJ˜…Ž¢•+p/ÕZ.q ýSî^†Q¦úþv0h“ݽ՗»fº%„Ç᎚™M{&ˆrq£}̲­Txj¤Ü@.1$¡êA0‡äcàC]7kŒX‘6M•7&øûM]λKÙxŠÿ88?¦éô>/XObject<<>>>>/Annots 958 0 R>>endobj +1636 0 obj<>stream +x…XMsÛ8½ûWôž¢TIÔ—-Ùµ‡-'ï¤RŽ½‰¶rñ$!cФ¹ú÷ûºAÒãÌT*¶eîׯ_7üçÅ’ø·¤íŠÖJŠ‹E´ «Åe´¡Ëë-~^á©iÏ ØÚùöï‹íM´¤õz­¨ åbÝ´Ÿrú~1üŒÕË«h;\|Æêf]WŸ±z³ˆÖƒUöpµ¾Âן=¤›mt9þý‡ÝÅüî’–KÚíìæzK»TBYÐ.™ì2ãé÷‡»Ê”§XkKMiª +ß÷¥+HÑ»o:ý]U³DÛª4É;:êÒuR™=%ïÈìéäjR@ªöÆHYWeº¤ÔxœˆëÊ8;}¿ûãbA³åˆíÒ Ÿ(Ô ·¾hª.5ûá‹c5ì;ëa¿ÐM¦*Þ³7ø† ÎáüùÔ¸òÙG|ÍünÓŒ´ÎV ‚d'ò™«ó”>³µ +¡ÿ+lŧß-À¨¿RÎÇ\³}¾0„ðÈ’KôƒàC˜ gJñƒõ4Ù+S"‡Zy“ŸžÞƒ}•>0t¤ÿ‡L³ÕäRÂ?Îœ³Â¥ñ]C`§ˆ>B ç#Ú1±½2é”T'ó뎰úx{ëQh•TXW,{×Õˆ>±Fµ–|ŠcÀO\ð‰S l$ÐL{T™ò}œ'9äp∠Ælu-oh&Ê,¯¢«hÑ7ýgmJÝR Kˆ%fÒ¦Hبd+JœÝ›C t¹@8C@p|,I]–È$Ò!BE£ržÐ‡Û_èóŽþûøó{'-'^)“3 O#°P4žÑ9zÕ‰ Å*y¦ú(E,¯Ú:˜Ìu•ÌªˆÒ°Ð‰ËWB]yâÈ ™•ÿ…WR”ö]E*xéKQì;W±L>ÿäÏýí—O#ß¾~¢¯?FW€ßÂÝk/úÛ˜ +䆚Àé70÷”(Šz†ÔV ÅüG9œŽ9%,)ÿÄ)$D~ðÂ΃Ãýsöô¾½ª~‡{rX÷AG=“Ê$àiÒýj®‹ÑEn³0øô~ŠºoàN’×Ð>–®ÚJ÷Ã*œ±1ª>¥TéÂY)ˆ¤=æ(zÜ=0l#–~.ot …)š»ÅICT8­”äåPµŽ¦,Yq Pb…:kÃÎŽÐM]cs×ɼFŸ®ËŒ4v>öè@‹¸‘Òo¡•…ÆŹQ±ÉMÕ©ØÛºâ3¨X$ü”qktžó÷£ãJ30‰Î +píË$Z”h€Í±t/&EBãv\˜´œŠÈ>MŽy}8aG½Œ¬q7ZBj=ÜSA!`ÂÌ—[qL_,ŸA‚2 ia%j‡é%d”Ïö%]ï jYg5Ì:\¹‰KU Têìí»C·Œèéƒ2ñÆ0¼µ}Ô£ßm£å´Ï¯²‰fŠ +Zaàâpæw}ÉáþÙ"Ú^ÎV«°Ò×\¸&fÁ­:¯ +ôÄŒÓéü¸¯siI9‹ï<)ÎT¿èܹ}ƒ§É3¨ê¹0ßpB¶þÊ•°¿ëZàÀz†>iXk(ÜärÂXÇåüPWçÑ°ŠJÛú Á}¤ºR%hCâ¤Ç É 4àÄ8z6Áí÷Lm % ó t «V$¬¶–ïmó%TŤE_ÚãìÅ€²0üºê$|·}§G¾m¯{ì{¸zƶ:19}ÂÑ¡|¸5"`€à).øðk´´Mf<Œ˜;¹—>âk`ÆgGñðî0á£Ú©MU™JáµÙæ d ,E©5™I2òõƒ‹¸£Ç\wã•A7ïø$H ð "Ë aùáÚj«°}½±`Ϋ†’NY0…©%ºÈY=B— Ql* ÚWͼöåƒïè>'ÝÎor¦P"´¯O¶ ¡6¤ö'ÜÞÜ(®Mκ$ªŽ¢ DOkc›IÉtu…„AQ¨ÓN¨»7™¼yºÄôýˆ­e¥ d"ÆòÐP(‚NÖ^Sœ¸ð˜Î:$å™™Rqjó<"I;ãËû‚>Æ’¿­@‚þyÞýWRAßïYbDƒZæwPŽö̯<[åXFô±ZÃ|ÒÅ,hŸç—E¤}lîÚù´ËL gÃôÛxòK$¯S¼+Í!«i°/EáÁÊÞ”Ò +Jͤ^žÍxa#ó# -$ß{…q4ÕGmå V!=M¦‘Ey#ðÁ¾*qï‹qµg]2q®¿Ë¨†IËŽÌï®[€–ü]äzM›ÍuxÒ=–îLÂèðá­'!²w³îÀl»¸ágÁ¯^—0¸¹ZáO¼i±äßvÿ¹ø?÷Ôqàendstream +endobj +1637 0 obj<>/XObject<<>>>>/Annots 965 0 R>>endobj +1638 0 obj<>stream +xW[oÛ6~÷¯8@ê¢1uñ%J± H×µÈCÛmñÛ2 ”DÙl(Ñ¥¸öãw/¶lÇëšql‘üÎwnß¡ÿ%ão—)LPÔ£˜Å0Ïæø:Ë.ñ5Å¿V@e’,yr1Xì_~ÿ0J§36…$MY5¤W ›ùO +nG)ÁÎÝZ’d¸Ç~Ø-M–â±l§ì{Zy»Eïc¸‚e…|¾)­Ñ–Ÿպ{ñjù÷$nÏ4ÅÓ¸VŽyßéB7•[ö»>Ib´Ž{þë|ÍïJðæ¹m D@®XÁ‹µx. ‹Jß>‚|y®yÙ˜Ž+å00© åÃ3]P(—ki`+•º€üJQñ^uàÂíõÇ·×ø  1ŽzÓFJ\E†×9?´0fp+tk5ÇÃ¥ÔE_‹¦ãÔ È +uOçb˜$S¬!d³åM>2ot-¶ke-” n:˸2ò^ªÒšÚÊ&—MY‚ø*Š¾ã¹À›”Ì[ÞJa˜cyåã€vÓ Ëí&s6gÈÁÏ6ó˜3ïqâ7c¶²+Öl_œhlÍ·žÂÞäa\È"µ‰»Øï‚FˆR Ú¾!gܹy0€ËC¼1”\ÔÌnÝê~µ†@Ò\Ž½ 7Òa#®laÓêh hxJ%¥Å\€ÑÎÊŒ-—éAßí©`ÌUAdtß" +4" =¾ÿˇ…aºèÑ¡ü—ÒJ÷˜6Ù¡…0†·äŠ-h +r¥•Ò¹óXçZÉ#ÙÜ¿ù>Úª‰±tΰ<}Ìҳ̯›’šÆÖaÁ]Á-¦Òh…¥gžÇÍö˜ÌO‰€k¿§–Xr†)–v_:m}26thöîÚñ¼™=ƒÃü›Og Ëâô[æ÷p'c™˜SfGæÏgè“Þ^7@1 åÙµˆ(±Òƒ6ŽDWìªxÐñABÇT(¬z ½­íÿ¶àPßHj|ï=H#I†ªVקm=è¿ ]ŽÇÞŒëo¿Ÿb%ѲÒúÛgbGJÏ«é’ËØ?»ªôcz’Îœ8ÿÙp½òýDh4)¬ÆMbïçqØoÖ¼ÔÛáþ3m¬Ü>8ŽÞÿ­4œUKœWCÍõRH³Œdî5jŽ(õHiÁù¢Ò`âžÐWUºa}{°fñµ ÞøiÕÉZP)µ(D¦5^¼r¬.ÔмïH¿0àÇ•îÆ4‰¨ìJݼ$eóroOܽòãWé\Í›žhïôÿ”828ÿ¢à +LàXµb3ÌÚQpÃ0B¦¤¯æ¸ÊÛñ8:üKeç,F5”°mQ¬µœ÷À/Qø· ÿßœÁÓá 6uþD÷ &Æ­x-W°á-¯FKg·Ÿ§^Š-5â¹îZ­l^s±æR·¨Øνýd ¹= èV“2\d‚É££°\ D±¦henkjmŸtÎ0E‚ñ»q†å>®ðòsªçlÙþßrCRSëRVþF ›Bõ¥»©íÇjÐ0¾?VJç\ý FtGØUå±l„ÁàP~`ŒýôÔ „¥ìulX´IBªÚ`F±ªº5¼|ýò‰ػϯo>½Ë˜^î…È-@j{ÍÃðšvN†[­f½ CÐË•$:‰ñ‡*$µo*, OŠ,ÚH1‚9 |2d&ö8=ŠÞgþ•Ìð;W6…ÅåÂ}‰q—â_[ýà +cK6Yà/<0¹ŒéÛS¸£ÂRo,%|5ð¹·²4[dl1÷ƒ6‰íüe9úmô/AYendstream +endobj +1639 0 obj<>/XObject<<>>>>/Annots 976 0 R>>endobj +1640 0 obj<>stream +x­VkoÛ6ýž_q×¢ˆ‹Å²,?↤IŠ hÓ-.ŠýBK´­T"UR²g`?~ç’”í*m¢ËðDò>Î=÷ð~>RŒß!'4šRZžÄQŒ7û¿^Ÿ$çQLÓóó(¡’fÓh +ºk“I4ÅÚ0cÏÔ=Çãhæ_`ÓÔ=“‘³:ŽØ¬{:,¼„Ù8á“î‰Mã>Ç3-Á¿‘´t cxŸu.ç'ƒ›˜^Ð|‰d§3|É\Ž1ÍÓñÏSj¬¤UžYZÍNñCµ¦Ä}YjC™.E®hetSÙçó$Oýa wó¬·ÍÕ"W[à¥ýæMôÝy~Õ?Þ|Š¢Ð[’ª)¥u®é%µ¦±$Øèw]òqŽÞ¸ ØóNº¯ñãðÜÞƒ¹£Í_ o•od7@- +²kYô±§U±#%e&3Ê—T¯åŽÖ§jY(Y“HSiíÇç]¸jYV…¨%­u)³Ü´˜ øyT=xv5xöžŽòØŸsìOúÁBØ5¿ܼ áKíRJ\y†“hcý¡QCÄI÷o./°m¤áBó»wW¯B™½¥q°„&> +}­jÞÍKÍÕËÕŠR]–\'X)Å'$ß5ÿÐ:=88£íZéýˆà§GWwo.nß~é½G¹u6•(Ý„á€/;Ýúòé­mIŠhº–/²2W¹­A4íðÜ´é9¢=ËTBp…ý§˜ •É7y!WÒ’‡‘½…ã{$ò¾¡+®Gè­ë§~u²ÏyÐX3(t*ŠåB ¸œÌ[ÿÞ•¥ÿž¾“Á‘‹9À¯Œ®„‘¶Ò +}ÊÛÖÉ®uSd´/é óäå’ù໸}µ"O~°z\£TÞ.qM^-o9™™g[àí$¢ûZ˜ššÊE$"£LȪáÈ'mMyý‹¿-í0ש꒳;cΠ±ÑÂ[¡jÇ[åËç’-dÙ¼ÙÔä•Û!šXç(z>W˜Þ ¦“&XîûMbCÌZV¹Ð~ìæŒ ‡Î4¯´µù¢ð%ãŒ4–|á +WØeœZ.scëˆæÚÇ xºÞƒ,s›ç¢3ˆí·û|g‚¾ôþ}[P¾Y>²ŒR¡Há…ÕdÅuš¡NmqKÉS$¹<®fNcoFÈ ÓeVZÞabTüV¡ìVv™‡¢5>7€7ÜvŒm*Òµ<Ìec]kûê£)-r`‡ÂAïÉ×ÔÕTëùÞäÑÉd§ ðjvØ%|A}¨,4®ÆÞ!.“;5ÅJ2YjÎ݉ ΢Iw|Å4Ð4éš@ð ü[7ç µT‚éÕ˜°”eœõiÿò´£4âÿdõ/¿IŒÛÓ\ØŠšA¡tž¹ÔŠœû-Ü0¶A¢Œu`Ã÷2¤PÈ"Š~P„+K}!é_ ²j-\"_ÇÆŽž‚†Y“¢`M]¡k}À¨ÜY ŽƒõQ†ú´wë(N&ô;ÅñK÷÷EGBöVo‘^K0—8æ ©™[šV¸;, ´XȢŹ`)aÌü`…WîæÄ•ìkñsýŽ;k©©ï(w¸Y¢vˆ…›G¦¸^"ýD0±Ê-;QAÜ}þ(ÖˆnÐXò +ízë’å¬öãH‡ôm»ìùÆà>¦u7Ѽº¾ûõÑÕŠÀÛÑ–×É0ñµ¦ÃÐË+¯YF<€³p£§Ëg# ÚafòZÿÎè™Öt¥SÌ»èm. Ÿì·úç1æ½pëѦ¹#ZYºkœ£ñtM' &yÞØÄõüäÏ“ÿ8‚Ó×endstream +endobj +1641 0 obj<>/XObject<<>>>>>>endobj +1642 0 obj<>stream +x½V[oâF~çW¥H°Z°¹…•VUÂnÔM ‹ÛªÒ¾ ö&±gØ™qXÔ?ß336cP¥ª +ž3çö}çò½Ö…~ºpÕƒþ´Öñ:Ðï ¼! FWø»‡ÿ’B\» jþ¤×Äxc8 t§Aؼ»Ÿ¾Öm½ žkhw;Þìû¹ÐK]q¨®©äTÿ¦¨4þdÝ®3Ñî †é╉L%Û<ÀŠ¼Rà$¥¤[ˆDJ‡oáæSBr%MØ0¾`x¢èšH¢EÉJ˜‚Æû†—{×zcôO‘AH8Z½¢ Ð"(!5ˆ_0¾-`I5,¥ÈÖÀx,dJ4b)R{i6¾ûàÜÙe­‰µú¥ú'wØu)í÷ðS5ýLI?!I|´» >àoð+Ð^¾Ñض·Þ${ìrr¥Œ«<ªC0òs“ð3ÇŸ2ªô™ó;‘®3„î¬×R$IµÐÅdβEÂÔªZb®hJàd ÷†:kÉ=-óÉ¢3 ·p'©!L7<·XÁ¶ÑŽ3Z(ˆ0åºa©ÀÅ2…ÜËÁÏ8‹>bZj,„^…ÎÒ`䥲O–*ʃ@n ? +lú^Ï cª²u ¡HS$óŽ;õpDžËÑ«°&Jml–‚ÛóZ­D–D–½ÄºŽÞn‹…Ï/¶"“PÍ™oúT‡~•ö¦ÓáüÇd,ltEmºð7 ó‚13 œnJ‘g,R-XÚï•ÀB‹˜¤!"ŨK\Dc’%)I¢Ê¥j³õéêÒT- Ž@"Ú.ëØœEvßF‡ «¨üƒÊ.Îùf<¿y¼½™Ï8ì`,Â,Å]ÃîÑvq¡}Õ1«v3àffh˜5TÁ4³›õ`8ò†—=·Av;£â>¨ýZû)Õc8endstream +endobj +1643 0 obj<>/XObject<<>>>>>>endobj +1644 0 obj<>stream +x½VmoÓHþž_ñD4=Õ¯IÝ€ZA¥Šîht÷¡á„coðR{7x× Õ•ÿÎìÚ.i®.!åÅ»óòÌìÌ3û±À§w€£ãIÑó]a4v'˜LÌú” «Þɼçúx‚ùŠ4¢)ýIAÒ¾y2BóbI&÷çz>œÀw§$s»uá›çó¿ÿ€Ã>’ 'nÂÿ­Œ›•·xüZVIï*.½\&—žª–êZyªXâæ‹E‡?BTû›%ÓU)Z;BŸÍ³w:AÔ!;adÂ9[áZVØÈ*O‘óKFøPV.–\¤)¸@ZÅ9Ò˜R ); ®ó8!጑–`µõÛ|:á„R¾•­FÙ«”:Î=ËØ#^ë©!ù7^ا¸Xç ñR^1B§³§?Ã)œ“¿®Y§s £:”9ØSZ®÷°ªD¢9%#‹b$²,™ZK‘rñLèòÚdQe•F*75~ÅÊ+ž0’”h)/U“ÎHŒ»Åh±ÿ0»UøâìÕ³YÿüåI¿CÀT0ªŠþ9ÁÑ …44šhA=E—þ%Ïóu)P}¦>šºþÞ±ÿ@Õø_ýüâ[øÃÙðOÝ,]Iüi‡°Ý*÷pR}ãî@~˜´ÊÎê^ÒzàÌÑïJÈ÷PÕ“–œ¦ +ÝCwìFnèâ\æqÉ•ñ}§½PµÀ%7ÁXj’¨‹¯¨5©‘kM– GÓ‰Ç×nZ“k:ƒ•wŒ t\êj •”|­]œiTŠÈ1¿†ôe÷-,s:c74h:Çv½)A,‰TféVÈM­ñ•lµ”dµæä,&¢³4IL–óœÂàâ.ô-?÷‘ëN6ø'M,„D +“uJXÁtf衱Ò``ÌnÕß`PãÜÊÚÝF< \;sø +x'……L3ow,Ò‰voÿ¬ +„Ôtš•Ð¬‹“Ø'®wl®øŽ–Ûj†½ëÆìÙd‰¸ ´ +dJ-FL-öw춊kžÎÞµykEC7²VçVö=S8 ƒïTP‰¬ï)ï_à7ÏÛkžàš‡wN/ÐÈ>ͨ5ao#6N³jt¼ÓiÓAD·¥éÑÑ´ž~çÇ/OŽñg)?°Dã™Lª‚]l¦ ÑtZçÈ7W©QÓ­˜3e‡ÎÜÔ–ÂëÊžÊ$šºÑaH×&#êÏ罿z_æä•áendstream +endobj +1645 0 obj<>/XObject<<>>>>>>endobj +1646 0 obj<>stream +xV]oÛ6}÷¯¸HÔlJ²Ûm†dn€=díÀ-Ñ6c‰TIÉF°õ¿÷”lÇζtœ8"ï×¹çÜ«Ï„bü$4ÐpLiщYLƒÑ¿GÓ‰ûŽ´ôÉdÂF§×óNtÓ[š/áj<Å—Œà&Žižv¿¼™?tbê6ÆA÷ÝUÜT‘­tI¥Ñ©°VX„ø\K#2ZjC– NV˜­0'æ)·‚.¾K.Hª“£×Ö9~}ÿ¦yžÄlê#žþO2YQµp•K…è•&[ãÙ£® ÃQžóJjE÷Ý’WkÛ£6›•ÑuÙ£µ¶ÕFéZ‡R¥ZÑÝíõì$ "Šjk¢\§<|ÉÑBªÈ‹Œú3ê[º¿?·Ù3†0b©VËæ~ öÓ$~~yªM"ÿ†$¶ÜU³r™ŸUö¢— +d4ã¢Ðm{Û6>W¶ÃkŒ²s¨Þ¿? Ñå9Aày#óÜ‘‘\áçžöÇ®9ÿrü ¹|Æ ¤áûuñ›å+ñŽ"Q¥‘T²bY  Š ¿È3þÆ_ˆèËÅyFûÒ[ô„婻݌(I‚Tû¯È«—ªGréèž×yYl„S…©U£F©(«yN™ï :=¨¶Ìy*‚ãýèF˜ÐúKZöLBq’M,+â ½´“ÕúÝÿCýë`ú¶RMéÉ%»dC6Ƈ~U¨õpú)dÂ=—b¸xÙÚ¥–‡šº½Ó;-ÁŽïWžUÑÍÁ×1•Žî6ø[ân‚IK¥–ªêùÖÙµïÝB³Ü·#A‰7u›.&q2d×ã)K)Ó¨@…(ÂÐCm¾ÝC` pòãŠjP‘µ˜ø4 }o`0ú3I®jX¶ÚF©ôéêöŒƒmƒòš£éÏùQB—Ü„27JïPh1rø54ååFµº•^ tÉ0jœî¸òX {ÿ‹Æ“ +c`+—×°U•LÃ"p{I;o~/I¬­m„(¡ž!£98[ò‚Üv57v2Ç‚Q« Χy^× K'´ÓV¢dØ:3™ùžÑtƇ(<ÝÔ¥%íÙˆœŒ\IaD±Ë½º»~z Ö0«•}—–.£&Jƒ9™Ä'pa¶ŸOƒqèÌn:`N†b¸¯c T¦‡~8µ:ÆáÙSÌJèecæ½®©.J$Õ °'{^µŒe,²ØЩˆ”µˆ‘®ŸÒ¨KÞ!ÒJ›GZ<Ó­D@g£ØˬEɽ—4Õ­«WÁÝA„ñ6V4ÿlˆÂ¬w§ ÞÉ/KÓ!^’ ®»«Ûë+údôƒàL§u6yN8Ë~kПÄî…©Ûh†æ/Ž¼ÀI­,}¬}oFã)_ð~å®ÆcçâüóKç+=QÞüendstream +endobj +1647 0 obj<>/XObject<<>>>>>>endobj +1648 0 obj<>stream +x­XÛnÛ8}ÏW °/.Èv.Nº@Zt‹ °E»[?(h‰ŽÙP¤KRuý÷{†mYQë½ØA‚ÀçvΙúëÙ”&ø™Òí%]ͨ¬Ï&Å„f—WÅ5]ßÝâÿKü:I˳×ó³ñÛkšNi¾Ä‘ÙÝ-Í+Âã“ ÍËÑÒÙšÂJÒ‹ù<›ñÁQQŒ½m\)ÓûÙÀˆ*åd¬Û4~l-êÏeÊT…·ý³K¥%ù•mtE I¥]+YQ°1mK”5d—´…k²˱‰ ]L¯ŠKÄ=‚}ò²lœ +[ªmÕhé zo¨ÞÒ_²ú]ò[d}›ÊÓFø¡ìÆZ-ÆÙN?ÊN†0üÑjá”g{’à¾P6’ƒAѽª$)Ó¯è¸ñîg~‹GFI_Î'’vÖ†_Ò§7*×ĉz!Z¤ÆÆû +åj|ˆ x}I/vN¦7ÅMqUÜÓ‚þP¦ù>~ë¤|ýñÍ…_ËR-UI^½ff©¡:¬\Œ˜ãàÅX†’Ã*ªòáÉEfTVz26‘‰Ì‘•0²*è¾4>–Ë å#@Wù×\¼]Zשv¢ +ÂËɯ ˜[ñÿü:¨I,˜¢|iÁ/÷M•ò>é‚-°ufᤸãEYÚÆ„íJPäêEêç@˜ÁàõS 8¤Ò­í&r²ñ’%ÓªŽPaˆƒ–&¨VRmJ´‘è Ldc]-tN«—¶ -ÈOho!×O#ëHP®VFhå=Túé!µ‘€„A ÂT´ ë6 ƒ1WIÇ +—F,` –nŽ?ïÙS-¶`ƒÔ™‰1(¤äH2 .&Øw…xª¢JdØ÷¬˜Cz3Ëk™žgN÷Ž|zQä~Ejì{±Æ*Ê eŸäƒkÊÐ8yÎáÅîS +$ËI ¤¢áûh"ãTâ^p\éÃl:2敃oš @Ò?ÏM?è ¦ê9<¶“wh?˜ì{H+¶ÝÙm*׻߂M’€Û–6Ö=ÑÚÙµtz{ ¶QZ“ÐPc.T¨¸£•øÆ͵RßTÕ€Ž¹Y3+–°Í°T¶€ ¹>jB;)ª-¼‡PpKv&¤tç kÛp¢•­a,Ï;н^k@b AÄð@L…2ß3¬Ðxy_IÃKËûX=ä1Ťs÷¾A-d”-§šI;àÙ7KÌXŤšN‡KÕ°‰#Áÿ›·ë˜Ñ•ÔÚ·»^7¬vDþŸÌö&ŽñÏGw;¾Ö1¬•k ¹ý\IqNö´˜Ÿž–Œh„Yû –í DL|¦´?)§ã+CØ€¸§Á èyÄDcÔw^¿ šÏqø¼~׿Ÿ ætœÈ;âqNA¨Ôž«GÒü±÷&N——ã•×ÞÓ=†: £cÔ®ùˆéƯçM¸ÝL[døÐY¿Î±7‹ªâ¥yÕÞe÷ƒ2ßÁ빯C´ö¾F ïo˜7 ‰Á¥oÑ„´±üÀçÚ.Ú;(ø¢Ö×_׉XX^wvm‹Mħ­ŸïƒíÖMø<-=Ø|yâ‹RÜ›R"õ›}ÊûlÓ'wí…r:÷wWø~ ^9?¾z÷ú}pö .ûôÆ–MÉ´»ô]äÇ/n'X «Q{{¤¹ô7™ù +=½o»¹žÝ³›K|ýÀNnù½ßægžý 9Ö;nendstream +endobj +1649 0 obj<>/XObject<<>>>>>>endobj +1650 0 obj<>stream +xµWÛŽÚH}ç+J!Œ4øÂÅÀ[ÈîFB«QfZi%¤QÓnCGv·Ó—LÈ×oµ±1d‡ÉFcaÓ}êÔ©‹«¿tBð/„ɆЬxDѯ£é¯üW ’ÎûUÇÿ0†0„U‚[¢éV1àò €íù)ßøšQ«¸Ùû9Éž¬àß<-Ájö”p¥ÍSN´¾[}FœQ‰Óƒ” $1Lٱï••>/XObject<<>>>>>>endobj +1652 0 obj<>stream +xµVÛnã6|÷W`û±,_âKß²IØiì¢}(ÐesW"µ$e¯ÿ~çPRœh] 6¹Ú&y.sf†úÚRŒï!ÍF4žRRôâ(¦«Ñ4Ñd>Ãë~­¤,,Œã«h~naO~<ñqÝÜÅ´ u†Ó9^¤„øqLëäâïëϽ˜úÃ!×éÅ››­Ò$*¿#Sze´È‰hP9;ÈÕfàdRYåƒ_–«ëA)Šç/vs9 ÉÛãs¦¬óÏ¥p®¹ü‘SßÄF¡øz‡ÚßIû.‘»µ'‰©´?Aÿ_€ï"ÝVûc9é¸ðSêbrŒMÿ_°3ìÜMh8¬‰ÝM™¿K¹3$ÒT¦$:g(WZ’È,ˆp–7gj[Yô}rù_ÄŸ†¬ƒ» g ãIxM#ú¤ +åC´ É·¨Í¢€Û_5´°éªØ#€ŸÎrZ…þ¡+AQ+s)ÊÙK¸J=HÚ™R°4XHL!ù`Vy”ÞÁ­‰à~ãÏa|˜a]w[zÉ–Éhü{¡rÁãÀ +Ÿ”®¾]ÒÊäÂb?c»|Zþ rI‹¦­;:/ w jø]@¹4Ö¿øS3D.8¨ü‡ƒ$`½‰´^(.¡4*ˆè%¸*Ùá#Äã–7¨  ðò% ++¿V +§y\7îá¦V€@™—A&_7;GuUɶ@WÒîU‚ÿå‘ž{~Ì«í–éd¹†‘cZ-îMZåÒµ˜D´Þ4ül$FÅh†»5Eò «Uÿúž¶ -¦“F`û–þ|ð{©Sck- î’F¡ýY4âN«¯™FÓqˆÃzظT€zã>¤æ€bÖô´¼ H‡T* µkã±=…´ó­Áå´+ÐnÎl0©,QÂÑtʆ çèê°S²Òœ”®8Mï²,Á*`â¤Ô´9¾¸-9ë‘gžª,SI•cD3O˜ù<­N¶×-±É`sÓFÛ-©š ™ám¦\m<% ε-àmb¬­JjQg +—±æ(ÓÆ ÞÂÞêê_a/j¸©µ 蘒?Ò#f_âÀ AÆÛ‹/,l´ šk¦ÕÁÛ¿Àó‚}ñp93øªèâÁÖh ÐhÌ”®ÁsÃP;¨Eþjøa,—ØZsVi[`Z%CÉ?ÞÞðKÉH%ò,ÃFﯰh³?šGÃõ')Â>gÝä;Ü[Ââ©iÔld¾¶`ÕnÃEÖŽÎe¡îVægô{y/—+¬K§2¨Ö”V /é^%Ö8“yzz¼!澃“ïY¹9>3,8°W‰“¢€ 0£¼Ü²Kb>Ù)Ì óNÖÔl>à5ƒë¦ÙMØó+#ÄTqgUaʬ4ÆC¤°…á#5ªLŒƒñed+Ø.¨Pßd·á æ\@KÏ,k>/XObject<<>>>>>>endobj +1654 0 obj<>stream xWQOÛH~çWŒx)HÁ„Ú7(W éšrÂRé´±×ñ^í]ß®4ÿ¾ßÌÚ!1<œ*Jpì™o¾ùæ›õ'SºÂ¿)ÝÌh¾ ¬>¹J®èz>OnéúöŸgøñš -ùbq›ÌÆ×ïӓ˯ŸhvEiP‹›[JsB˜+\Éiµ§éÇ„ëÆ»ÎiåÝ6»&c)¨z¥ÎÓ%Êô&F¹˜_#SšŸá±iBß7ÚoŒÞ’+öÏÆG®i:í™Ý$ ~äùÛ=YÝnÿÉ)8¥Éu EµÎJeM¨iµ£mi²’²ÊhÛÊ”%•e:ð}• -§ªUV‹GS 1'$h¯èb:ƒ»ÈTU¡®S)LK€Ó„ÒÒ„,s¶UƆ×m©ZR`Ök•ï¨uHX€§ÂTš”Í/tc[ -\;É=m©=W~~rkZÀ%Ü2`eà·”;°®E)YÕåúHäH쇖²ÎãC[íH­€¨r'€¬UágHFÉS$;(šPp©ÕÆ B¸ÓˆTUÄ=é©N苳…Yw^µÆY晿ÝK¢TVZ[n0Ô¸+£Â«®ÖôÌÚáD>L×f€Ìœç.ëjÔ1 -’k–Æ·gúalñA¯Ð'x¦JAžhj æ/†¼˜~ÅÚXiB6ª/Ì%ÓR·÷ߟ ºö”~yº||²úødGO3Ä­Úq_ðÉÔf.6 ¢° -•y\Õ A/gÌÊÃòùòχ»§Ë»‡ç—óˆÝÊЭQSr…nˆŸÐý0x[ƒ®,¿§ÄcB¦x“µð®–Æôò’DƒO£t*Ï7@`{•Í|æzˆ)C+@ -Äÿ{L‰¶,¿\†>ýx\>:Ä÷¥Y—PŠw5úœÇ–(ƒÎ@ܹb„uHøÂ6™ì¾*ÚבÄ|.+ÅëÚµÙ×,©AÆ2+ê}ëŸv×èQNc!_Ö1Ô.fA1÷UïNqPìŽ8ŒJÁ+PùH B"»í¡OŠ²á“³ƒö†®iœçi?ô×÷ÌR&¨P™©L‹IÀìõaïèg[œ:P4Nµ­W¹ Ú¡ªàXà­wbƒz×p¹âœ¨hDH¨W k4šÝËYР·¿öröñåüå<ég;ú2œR|ÙÁg»©Uà½j¡VñÚ»®H,µâŠvï9‡”ŒHÊ]Ím¬ÜšóÄ„Ì›[µY·%µQ¦bEŽEýG02*ëö{ˆÂè[¨ý~ˆ½]Àd.3Ј^ÈêÄ“8"°zKSš@–/–ýÂ憷v0×ç=šˆìPÒ2;âDX"q6J=ö—ÞUÀGY^â·zÒÛÙÑP²Ÿ­ é¨Bávç:¿ÏÈz4Ýc†—95p«ãîõ¥¸’vªŠ";îÊ?Ý»õi¿'`$#ðÃ:àdýfÁHÀMöÏöe¬ø €µ¥¨QXx®£ÕÊŠâá—ãbÑUCæèG” e<‹›6è -[ -RÛÏ"€èy4C·²š-•'a„ÿ ÊÆ­ÈkEz -Br‰þ¡³BÚj:ß8¥>#‹u8Ei–îçQ`íÀåµGÚÉ;›MÿRuƒ-…9ÑtÚŸ[†8§Ñ­_7-^pÈVë¸Õ.¿Þ¾¾JÝ|âÓòÿu»Æ‹áâã ¯üÊvµ`2þHOþ:ù ; Âtendstream -endobj -1626 0 obj<>/XObject<<>>>>>>endobj -1627 0 obj<>stream -xW]sÛ6|÷¯¸ñt¦öŒDëÖì¼ÅNÒú!Ž©Mü‘ „˜$X´ªß½¨0Œ§ÓÄÉÈìíîíAŸLi‚¿SZÎh¾ ´<™$š_Í’]^/ñz†¦\>¸yåýÛõÉŇš.ic«Åõ”Öa›É„ÖéÙô*™'ôØØM¡KìälÑzc«óõ7Þ^ÜÝXQZn'éç(t°'ÌÃb¿¡»ÐÿÛÐXXOZú»Õhð!Ϊ›¯ƒ:ÃiÀƒ˜C_$ãr!-ó,Z -ž‡Oë~Å–=ÄñÖ6 +ªØ·¨"ÇüäÒ Ñæ|6’B¨ÙïÑ»›PE îo-h¬T«ÍŠ®s$žd™K|’Áš K‘‰Ù Lä >ôY–@ ri¾1ÈH~!‘†ÐBÔ - F¿×€ÁLÚZ̈@kvÇÃ^Ú ß3Õ´œ˜'µÔƒÒÁ³.ä®ÀË'F½twlò}pn¦]Ú˜ \±Cf2b#Ü8¹V¡ŠÒØ>™És-7,àþi¤­ùYÝ¿ D‡ Û*Zß=^ÀQ‰ä¤³*”ÑÜpL "¡±­ô½Ø+̾ZA¾£Ç%à”ç&…(|'’IÄE72èˆBd|¹Xá ¾0#?¼Á‘ ÚñCï°ŠoÚßÞZI(»Ÿ:' ;«¿ŠÙë9°*W¹ñ • P˜Y1%8åÆŽq«±ç(¸µwƒ0²Í‹Q|Å“@ÛŸï‘Yé3êF\Šå¦ó%#lÚ ©@Av°žëUý£Ñ¦C’¹×»ÎU[xÄ;®Zÿ³ú3?j5¶t2Θ‘8?»,ê®,㥛Xq™ 6x*ŒRn½  ÜÅ㵉/¸ýçqIAMÜcP3¼ˆ‘ôêk—vyÙ]«FÂ%ª|-xX‰æc¤;@#†8‡ã%èæjt|ý°ºª… -®vÁûÇ{bÏ‹0×únÍ >±GɺÂø¿ß¡?¥?FÚxó7ü+Ýu+8ûéŒÍƒKÛÍ•d^(ª€èü¦kì~|Eªuã‘d#B¦w8HéBMÌûIYƒs[vS@näñ.ro”Ó¾Ö]Ïi1‘¯[«·oßò÷³oÜnïlÚ–¸{ ~>cÜ-/'7üí㿾Ï].®“ÅÕ ßæxádɼ_Ÿüqò/öQendstream -endobj -1628 0 obj<>/XObject<<>>>>>>endobj -1629 0 obj<>stream -x­XÛnã6}ÏWÌ[¬­µìÄÉö¥°“ º@“m“}1PÐms#‹®(Åï^dYŽR´¨È´HçræÌ0Ä4Ä_L—#O(ٜ̞N>ß~¡øœž–˜™\aÒ0‡ô”ôâ‹è<Š#úEï(ÕÒPRhcÈT‹\–´(ôΨ|E;]<ÓÏgO? ìœâØ Œ.!¬wýîeHP¢7ÛL%¢”)¥"Od¯òR¨œ¥nª¬TÛLÒF¿ðï­(JÑ·’ÖÂP)žeNwŠ5ÒË’Ò G#>ÔÈYˆŒ^¥(°VÓ -ú–k ù©Ä@”$’µÂ*Ì®¡L¢‹B&eŸDžÒ£Ø,ebeh!× -oTNFo$‰B -èà(Ó:5[±€ÂzÙå¨5t†‰Kµª -íOÍ^#/i4‰8½k•ÊN‚§­ ,¨¶Ó—:ËàyúÉy|H_‚ÃÏÝnúçϼws7›Ÿ†Ñ{°ï>þsê^`4 S_û1†7×_?Foa%5‡Íqc½uÊü·O§¼u<°ã½®£n­>A«Ok;Ø¥ê¼=ÄðɃ®Jÿ=üÌâßFøéÓèÀAVù‰nY1Þ¿¬}ããߎ÷¯ŽÅtGÝïê^°Ÿ9òºƒ\óÙ¤•\£²,9Òô~ÄYƒ'2OÎ|ÕyÂ?Ç>¯0ði…QH*ž¾¡#M½•¯yïo÷.…iwR3ˆ)™8AGcÏن潸O£>çgÌD9HD´x%° w¼è«FX3`Ú4ôO¹.AÂà¿Ha˜Ž]-ˆƒÆž€™¢/hÃ$›ƒcuN -äZÇŸ§Ïëézbl©}?ÑÔ˜ -¼»Ô…¥ï H8g&gÏ2§[ëèúPu“lQ’™œë€ʼº‚Í[Ì'eë‘*T6(0ó³ˆîœ d‰vxb:¦ÿ=±Ã¼½A!Ãvé<ãZ‰ïyOɾ ‚ú ˜ÕÏjd«©¤LÁ­µ½µ†šO-›m«Ë -NglD´%Í;‹4Œ/jÇs=k¹¨+h€5X¨ -º—åìÛ÷GÊá/¥Ëuûä²]»¦(í!4‡'-´f°UÛ>É ÀS¨rÖÔs’s -¶uWxÚf"AAÍI" Œd^¹.¤léáÂ@zÄXˆx(¸ØíNk°ï²´õ©Á-€ÍÂÖÔ˜­C¡ RãpϹÞå\¥3 i[æ Ïr;£’*ÀÍ¡È©É©! !}h…VŒØÖ©PË6HXÈÞxï ¦¬ ˆì[ˆwÁÙä÷w¼ÚÓß›í²ñIz¹ŒÌZLBŒE•X 5ƒÀ¤2ÌxmÉÈ´x³ósÑÓf[ ø$µ8B_'Õ‹M2«>™½œÒ³”è©Zgc‡.Ò€¶¥H<ã°·¤àÎZ=¬cÍ0Á9Ì»xßj!ŒÝe£ÖH÷ˆnuÑRÁ5¥Â %ã269/hºÜÜm´ÍÆ£Ö%àA$›ãÔhÎú·Á]ú~´o·waÏ*:WJcûYdÿ©¨Êµ.T)JDåÔæ`'Ç2ªÝÍûzQhËm^Õaô.Ç ™ˆ -Á;ˆ -Úm.m]payG[ÎØTæÞa¶pË>Ê@FW¹®lô–äÈôԢ–Š/ §@‰ÑU‘Èàñp‡¹kOGÛþXF“Kšwsøí ²@5§»rpñ™îi€Ï ä¾´É”+ý‚—*ø¾Ì^+C/pmÁ‡ØqTs#ì wš)gâ´ÕÊ–ð>_ò2­Ÿ›·›yaãpáÄ3ôª+Tî*KY)®çxQ^j/—jµ^èb­5.qK»—‚ÆØVDˆ&‡ÈØW¢ãÙ¡ð²ÌÏ·Ç׬G×úì{²™-ò¡äýŠ< - -ù–kF÷[hßb„÷ü»µÇÓ¸ 4î`V~OQÍpK³Ïkû¼±O{)û|{åoåñä2^irG¶M|œÞͦô[¡ ÎèYP Ê—fÖb6 .‡¸e¦ÿþ?ç“«hr1Â?x÷ðŠ¥~}:ùýäo‘(Ñendstream -endobj -1630 0 obj<>/XObject<<>>>>>>endobj -1631 0 obj<>stream -xíWÛnÛF}×WÌ£]H /Ž¬E ÉrZ£ìÄ -übÀàem1–¸wiÕýúœ™%EšU‚À@­lËËÎ}Î~äã/ ã¢1¥›Ál9xõÖ§7´¼Åƒñ‹Œ|Ï÷}Z¦—UR(Òî·of» ,p=òq&Ç9ΗŸ>ÂÀC\-%j÷-¢›y{)‘H‰DJtÃRðKyõöˆ‚À7 -EÚB[Ev[¿]å†t^àj½Æ¥"#6ŠK¬ÕC\ÆV ©Ð´‰ÓU^(£TAqZjƒ÷Š'Ò·Ý­^cÿØ;bûzKêÏxÛt -=šBŒÖcÄZa‘¨ToØ:EkÆkè4V•””zkpÎ-îë{C·º¤˜æzçEýR­4ˆ¼•6[¬&óT¤«Rù_0ÞB‹H£un,ms»òèÌR¦•qáHžès¥Ê§¼¸K®Î—ð¸|„×ÈÕüúP `3Ï.zzã,+‡Åæˆ]&:DÒBÙÙÙù%1œ¼:ÿðû¯Î?^üÌ~òhÉ™[¢Tw°N•ÁÖã\íéêEÆ7'0Žú›éÚÄad%‰F)dýl©r¹/u‘Ó8UçùYܻɱj½6œ%©/8ôÕL"=gšÊ`*2L臘E¡+صQ(Ô‡8½W¨WĘ>Î/P¾¥¥ šÔ$›Ð[tón\L`YòÔÓ›¡úY’s)I>-ªMH¨¾uçU›…Ú(šÕUÉ%ƒÙï]¹rá|J<$”=Åq¢+ë‘Ä›…gÝjÞEµT©Ê¥6Õ7¢Ý&]©¬ZãÕ¸§©m€Øæh¹R¡ÀQü0œ³ñ¨mI.0ÁÅ z+­§QK=ÐpÈ4ú™÷wúÉô4s·¢ÑîýÈO:P9 -:8ŒìÀ™ kd¢?Ð Xß›psä×ÙãnÔGÜçUoÓ´›¸YÚ+ h (ŠâP4¸™ËñtH=iÝ{׌ì×?\ -¤ÏÚåI»œË²–üí_ÊA¡½6uo²·%p¹]îìƒóíÝÓ¯›ú"bêÒ›ôJÝ¡1 A£XŠÕµ‘Z+t1Š+»ÒenQÃJ Òvíá¸é3f«ÞFˆƒ;„±yI`æ­.ïqÎïV‰.WZg„îp@dÀò ™ÀbáõzÛð« šcØTFMôèŠÑ”¦%Òg,ZçŽuì1a¦)Ò -!wŠ)˜Q…ßw1èi†[ekm †˜32ìЮ7Q’1B -E&"ž :&ÖÄ+mΛó4ÄMÌš{*»&¥"¨U××n¾û´xúTkâ÷Ýxƒµ ªír‡7\l,º–üŸÃúw0õÝ {1ý›ñ¼AãýxŽñ­©ëÍMU$¬!õa½!†oÂzK% @á’Ê™-E5²L꯳`|ìù“ˆÆ8»o¾é»Ù”.JýI¥ÓZñì+ã6ŒŽ}þä<^{G^àÑo€}ù”qgÎ7¡1ù áýÂŽÆoü:ÄG+ïößð½Óåàýà ‹I8endstream -endobj -1632 0 obj<>/XObject<<>>>>>>endobj -1633 0 obj<>stream +ùbq›ÌÆ×ïӓ˯ŸhvEiP‹›[JsB˜+\Éiµ§é"¡Çºñn£sZy· Æ®ÉX +ª^©óô_‰2½‰Q.æ×È”ægxlšÐ÷ö£·äŠý³ñ‘kšNûGf7É‚yþvOV·[çr +NirHQ­³RYjZíh[š¬¤¬2Ú¶2eIe™|_eBË©j••ÆâQÀTCÌ Ú+º˜Î#Æà.2UU¨ëT +Óà4¡´4!Ëœm•±á5d[ª–˜õZå;jà©0•&eóKçÝØ–×drO[jÏ•¤ß£Üšp · XBø-å¬kQJVu¹~yû¡¥¬óøÐV;R+àªÜ kUø’QòÉŠ&\jµ1ˆÐî4"UqOzªúâlaÖW­q–yæo÷’(U •Ö– 5îʨp㪃«5=³v8‘äµ 3ç¹Ëºu hg‹äš¥ñí™~›C|Ð+ô ž©R'šˆù‹!/æ‡_±6VšÐCªÀ s‰Ä´Ôíýã÷g‚®=¥_ž.Ÿ†¬ƒ>~ÙÑÓ q«vÜ|2u£™‹ ƒ‡(¬Be^WuBÐËY'³ò°|¾üóáîéòîáùå<"B·2tkÔ”¤\¡â't? ÞÖ +Ëï)ñ˜)Þd-¼«¥1½¼äÑàãÓ(ÊsÀ Ø^eEg3Ÿ¹â@ÊÐ +ñ¿ÃS¢-Ë/‚¡E?—σñ}iÖ%†â]>ç±%Ê 3Ðãw®a¾°M€E&»¯Šöu$1„ËJñºv­Fö5Kj±L㊇z_Çú§Ý5z”ÓXÈ—u µK‡YPÌ=DÕ»S»#Ç£Rð +T>Ò‚Èn{è“¢løäì ½¡kçyÚýõ=³” *Tf*Ób0{½DØ;úÙ§ÔSmëU.C‚v¨*8xëØ †Þ5\®8'*êUÂf÷r4èí¯½œ}|99OúÙŽ¾ §_vðÙÁnjx¯€ZèƒU¼ö®k‹@­¸¢Ý{Î!%c„’rWs+·fÄ<1!ó¦ÁV@mÖmIm”©X‘cGÿŒLÊz }Ä¢0új¿b¯Eð™Ë 4¢²:ñ$Ž¬ÞÁT£&PeÇ‹e¿°†¹á­† Çõy&";”´ÌŽ8–HœRý¥†wðQ–—ø-‡žôvv4”ìg+h:ªP¸Ý¹Îï3²ƒM÷˜á%žƒç(”®«r™ Û^"¨ƒÄ=?¦}¬ ‰ÂÛ…oÅ©#(ʲ#~—)=ˆ(>fVãð–Ö 1¢ºã£‚…i^¥wÎŽ¡ +€¿Ju2JêõZù¼â#&[jàô=©ËtÒWËrßû› ß|\xÔRè½…‡WšÔŸ#Æ ÿýJ±ÌôÛm'³wàÀZu°Y^¼­æs“òrŠ ÎLaø@$G€¡óé/ñƒ  ,çezzqî(ø.ß(ìö|¸$»×ñ{.'·ãí ¼"2Ž>â˜9Ð^¦ÇAó 1—é%Çãÿæ興Mh»1ÞYq~HZåñºãñÂ*aÛyG÷£¤{ù²ÚY|ßLæ]pE{´×2ÕDÓ2:ôål|åõ +䌫ÚQZ–'gd9Ê1€UÊD׊T°ü÷dõå’:ZcÚ†ÅÀ›ON œÀê¸{}g)®„€¤ª¢HÄΆ{†òO÷n}Úï Éü°8Y¿Y0p“ý³}+>`m)jž+Æècµ²¢xøå¸XtÕ9ºÄ%HÏ⦠ºÂ–‚Ôöų zÍЭ¬fKåIáã‚2‚q+òZ‘ž‚\¢è¬öšÎ7G©ÏÈbNQš¥‡ûyX;pyí‘vòÎfÓ¿TÝ`KaN4öç–!Îitë×M‹W²Õ:nµË¯·¯¯R7Ÿø´üÿ_Ý®ñb¸ø8Ã뿲M¯˜Œ?Ò“¿N~__Âsendstream +endobj +1655 0 obj<>/XObject<<>>>>>>endobj +1656 0 obj<>stream +xWÑrÛ6|÷WÜx:S{F¢-É–í¼ÅNÒú!Ž©Mü’ „˜$X´ª¿ïÞTÆÓiâdd öv÷ö ¿ftŽ¿3ºšÓbIYutžœÓâržÌéâú +¯çø×j*䃛WÞ¿]}¸¡Ù­ lµ¼žÑ:'ls~Nëìd¶L =¶6-u…œ-;ol}ºþ†ç.h†åüÜt~•,ñäÉ}AÎVÚoM½¡ÜjWÿêigÛgò[]ÓÖ6ºèÊrÏ¿Ri7I]¥T˜RÓΔ%muÙÐÞvä[•=cƒ]-+›€ ¡u»'E¹N» cÀɳªÅÉ¥~Ñ%Ù‚æd[ZPÿ Sç $>îz[:KµõÛ*/{g]ÛêÚSÚÚ(ãëJW©Ô•½¼û…2[×:cÓâH|Àúº@à'ㆰ'çN„ ¿íœ(Pu€"ûóeÕˆÛˆU0}X#êþqE_À,Fsn.f¼kvªÍ!Ú ”Û¿¥•ªRõtJ™ªYm`/̦c÷¡~¨wÙžµõ¾²øtbôúézö4íP1L¿'¢\B÷‘’L9-ž£ʳ¯g@» Jeèhp"¡$઱»VoÏîî?¬(+ ·“ôs:Øæa±ßÐ]èÿMh,¬ƒ'-ýÝi4øçÕÍ×Qá4àAÌ¡¯ ’s¹–y-Ïçõ°‹bËÇâxëZUÆ[T‘ãþré…hs>I!Ô¤Æ{ônªˆÁÃ}ã­õžÕ¢YÑuŽÄ“,s…OrXc)21•‰¼Á‡>O؈A.Í·É/$ÒZˆƒF¡Ôèw0˜IÛˆùhÍþx˜GoÞÐ4ŸckçµÊùìiNó§ÓÉèxyøû)¼íôV¸>Ä®zG#‡^Cm¡Ž(ÌÝßR… E•Ïš€EÝHÞÌã +$_;:©ö„®àÈ(Qy­Ü£†ƒ¸²øœ=,m  ÇJ­u®ó>&ú^3%( ¥Ô&CXÒçÌh«¾CèŽJ¹gž3÷Ñ°»Ö¢;žN\£3S=VQzœÉ;6»kuÜ „J\•ŠÀO§ÌÃp0Oa~`"_$t˳J:1k-šÛu)@¹ðÔзq,¯L…ˆmu©AË#aC³ä&™]!‚Êf«fÈ‹ðö=ž²…ºS,®%÷15 žëšÆ¶a„¶º)M¦Äg¶øYÃ~®¢‡x)E¾çª5h91Ofs¨¥ƒg]È]–N"ŒzéîØ.äûèÜ\»¬5)\±Ef2b#Ü8…V¡ŠÒØ>¹) +-7,àþi¤­ùY=¼ D‡ ÛjZß=žÁQ‰ä¤·*”ÑÜpL "¡µô½Ø+̾FA¾ƒÇF%àT&ƒ(|'’IÄE72èˆBd|¹Xá ¾0#?¼Á‘ ÚñCï°ŠoÚßÞZI(»Ÿ:' ;k¸ŠÙ8°jW¹ñ • P˜[1%8åÆŽq«±çG(¸upƒ0²Í‹Q|Å“@ÛŸï‘YÙ3êF\Šåf‹+F4Ú´R‚ì`=׫†G£MÇ$s¯3v]¨®ôˆw\µþgõ=f<~Ðþjm%èdœ1#q~öYÔ_Y$Æ+ 6±(â2 ,lðT¥<Ü@¹‹Çk_þ$p‡Ï㒂ڸǨf"x##è5Ô&.íó²¿VM„KTùZð°͇H4ö€& pö‡KÐÍåäðúa=v!T 1\í‚÷÷Äa®õݘ|bŠu…ñ¿CJL8´ñ&æ-nø#VúëVpöÓ ›—¶›KÉ$¼PTÑù'L×ØýøŠÔèÖ#É&„Lïp0Ò‡ +š˜÷“²F玶지ÜÈã]ä:Þ(gK|­»^Ðò\¾n­Þ~¼}ËßϾq»½³YWáî%øùŒi¿|zu~Ãß>þëûÜÅò:Y^ÎñmŽÎf¼ÁûõÑGÿضOendstream +endobj +1657 0 obj<>/XObject<<>>>>>>endobj +1658 0 obj<>stream +x­XÛnã6}ÏWÌ[¬­µì¬“íKál6èM¶MôÅ@AK´Í,º¤#@>¾gx‘e9NÑ¢ Ó"9œË™3Ãüu’Ò)]Œh<¡l}rõxòñæ3¥çô¸ÀÌ䃜†Ép8¤Ç¬—N’ó$Mè½¥\KK™ÑÖ’­ç¥¬hnôÖªrI[mžèç³ÇvNiê… FÖûòæeIP¦×›Be¢’9å¢Ìd¯ÊJ¨’¥®ë¢R›BÒZ?óï0•Mè[E+a©O²¤[ÅéEŇiŽ“jå³4¢ ) ÖjZBßj%!?—ˆŠD¶RX…ٔɴ12«ú$ÊœÄz.¨KKs¹Rx£J²z-I) ƒ_ lçÔLlÄ +ëÅ1G­ 3L\¨em`t8µxI‚¤K«rià$xÚùׂzC0}¡‹ž§Ÿ¼Ç‡ô9:üÜï¦þÌz×·W³³hÀ0¹äc÷öÝ¥Ný Œ®âÆ_ÂÃëÖë¯ï £×¸’ÚÃö¸µ‚^Êü·ÏQy{ê`§;]÷Fǵú­>ì­=úÃ-=ªÎë} +ŸÜëºBðßÐ#ÌŒ þõ~ôŽŸþ7ötÔª0qÜCNLð/kßú„·ãÝ«C1Ç£v_°›9ðº‡\ûÙ¤“Ü ²ì-9ÐônÄYƒ'2OÎ|5yÂ?Ç!¯0i…QL*ž¾¦Mƒ•­¯Yïow>…÷iwÒ0ˆ­˜8AGãÀÙ–f½´O£>ggÌD%HD4!° ‡;^tU÷#¬0mZ ú§RW að?ˆ_ä™°LǾ¤Qã@ÀLÑŸhÍ$[‚cuI +äÚÄŸ§Ï›éfbì¨}7‘ÐÔÚ¼»ÐÆÑ÷$\2“3…×­sts(ȺM¶¨sÉLÎuÀ +He^]Âæ æ¬rõHU +*[˜ÙYB·ÞrÄ;‚ )ÒÿŽØaÞµ^£a»åT¾âZ‰ïYOɾ ­‚ú˜ÕÏi䪩¤BÁ­½†{šO›]kÊ +NglDt%-8‹4Œ7㹞u\dä` *Cw²ºúöýJøËBéjÕ=¹êÖ®)J{ ÍþIs­lõ¦O²ðªœ3uíä]€‚íœÃž6…ÈPPK’#™ƒW­Œ”=|XÈ€‘»­Âi­ö}–v^#5¸pYؙӠs(”Ajìî©ÔÛ’«t¡34 ]ËáYngTV¸s9”x595$äÏ­Ð’Û9j¹ ÙoÔ¶“•à‘] ñ&8»üþ†×c;bû;³}6 I/€‘] Ã$ÄXT™ÃÀÑ0,@*ÃŒ—Ž‘ŒL'7{?G =¾c¶JHR‡#ôuR=»$C°š“ÙË9=I‰žªs6vh“G´-D‡½!w6ê‰hk† ÎaÞíåÀû>PsaÝ.µVº't£MGß” +‹–ŒËØ漨l8æöèn«]66u."دFçpÖ¿ ¨ès0ô£}·ýöœ²±s…Ѩ4®ŸEöŸŠºZi£*Q!*§.ÿ#;y–QÝn>DÐÒ³B[îòª cp9ΘËLÔˆ°ˆÞATÐnsi;–w ±ãŒu`îæ +G´ì½ dtU«ÚE_Ðie Gæ§u§ eµP|Y8J¬®M&£Çãæ¶U<=m‡cM>iÞÌ}à·0ÈÕœ¶þÊÁu&d¸§>‹’ûÜ%S®ôsv^®àûªxñ®Œ½@ĵbÇQ-u9Øl´'Þi¦œEˆÓF+WÂ#øBÉ+´~jßnf=„à „·ÏÒ‹®Q¹ë"g¥¸žã…‰¼Ô ^)Õr5×f¥5.q ·—‚ÆØVDˆ6ÇÈì«ÐñlQxYæÇ›ÃkÖƒo}v=Ù•+ò±äýŠ<Š +…–oFw[h×b„÷ü»³ÇŸÓº ´î`N~OQÍpKsÏ/îyížîRöñæ2ÜÊÓÉE2¼Óä"M\›ø0½½šÒoFÿ@œÑ³d ”.ͬŠn\ qËÌÿýÎ'—ÉäÓÿ\àÝ鈥~}<ùýäo¡›Ñendstream +endobj +1659 0 obj<>/XObject<<>>>>>>endobj +1660 0 obj<>stream +xíW]OãF}ϯ¸P%Þئ!­ªV a[Ôn KV¼ !Lj—ÄÃÎŒ“Ò_ßsïرq³«R¥Jm@öøcî÷=çúS/¤!þB:(QºéM½7o‡ô-îñ`4Æ"£a0i‘]—ËB¹ˆö¿yt7Ý_`ëIŸS9žÉqv¼øØÒ +ƒÄURâfß<¾›5W‹”X¤Äw,o°”7oO( ½qƒH¤ÍµSäV‰#ü»UnéIç®Ök\*²b³¥Ä`­ž“8Õ§BÓ&IWy¡;¬R%©ÑïϤïÛ[ƒÚþQpÂöÏõŽÔɆ7{é4­!ÆŠÿ´Âb©R½aë­uš¬¡Ó:ehiôÎâœ;Üז„fz“äEõR¥4Œƒˆ•Ö[œ&û\¤+£‹üOï E¤Ñ:·Žv¹[tá(ÓÊúp,ŸéS©Ìs^<ˆ%7ókxl¶0àö¹šÝ‹læÅUGo’eFqX¬ÕiŽØe¢C$Í•›^\^S‘ÀÉ›Ë÷¿þüþòÃÕáô‡€œ y°C Œz€uÊdkXwµ£«ÞÁ8vêo¦Cjo„‘•,5J!ëfë²H•ÏÈc¨‹œÚ©*Ï/âÞNŽSëµå,I}Á¡Ïf ì8SW{lU‘qøz'0) +]®B¡>%é£B½"Æôav…ò5ŽÂx\=lBoÑλõ1eËçŽÞ ÕÏšœkIòyQn"Bõ­«¬x¯š,TFÑ´ªJ.1Ì~ï›È— çSâ!¡ì(N–ºtI¼YxÖ®æ}TJU¾•ÚT_ˆtÛt¥²rW“Ž¦¦—£åŒB£øa8+fãQÛ’\`‚/ô^ZO£–: àiô3ïoõ“íhænE£=*úžŸ´ rxtðÙ‚3Ö:ÈD¿¡j±Ã`ÌÍ=_k¿QqŸW=^OØlâfi®€¢¡ h((Šg@Ñðn&Çó>u¤µ7\3²ß}s{,>m–gÍr&ËJòK´-g„U„ÚÔ¾ÉÞÖ–Àåf¹·Î7wÏ?o꫈©MoÒ+U‡&€X)>T×Fj­ÐÅ )ÝJ›Ü¡†·J Ò +và¸É f+ÞVˆƒ;„±¹!0óN›Gœó‡ÕR›•Ö¡;<Y°ÍpËäÀ±Æ¶°9#Ãmáz%#¤Pd"â ¢ebE¼Òæ¼y›§É$nÖÜQÙÆ0)A­ª¾öóÝÿ ÅÓ Z¿¯Æ̨5œ`Pm–{¼ábcÑ•äÿþ³Ð½‡©¯NØ« ìߌç5ÆsŒou]WhnËb ÀêSÖkbø"¬7TÂõiY: ³£¸B–qõuŽNƒá8¦Îþ›oòn:¡+£?ªÔaúOKž}e|c õ†Áé?9B|ka@¿öåSÆœyü„Æä'„÷K8ƒÑ·>Zywó½óEï÷Þ_‹a8Œendstream +endobj +1661 0 obj<>/XObject<<>>>>>>endobj +1662 0 obj<>stream x¥WÛnÛF}×W ò¹h‘²e§@ìØÔJ -Šº0VäRÚ˜ÜU¹ËÊ×÷Ì./ 4ujÃ4o;sæÌÌ™åߣ˜føé,¡ù‚Òr4‹f4ŸÍq<9?Ã1Á_%)]®FÇ7'Ǵʱdq~F«ŒðúlF«t|£´(Šý„ÜVRaRQP)¬“­+ódñ?7Ùz­¥£„îÇËäáòþˆžTQÝë”ÄF(k·õ62SòõÀÖÅoïŽVG3šÆó(Œ±ÐY°TÉTÉOÒ[(•µJoÎ?Á¿Ô®RÒFÔ@¥)ñ2aI€ŠlÂI`S9i×éVi‰ç  ’¥ù$3â ¶µø7yŽX8ô-Ê: Æ<âúQÒ¼êøfFo‡Óä$:aøwê~.=gt$úæZ—³èœ×LýO·‚(ÜhŽ¸Ïgƒ5ÁOÜ/b2û+"\_Løxéoýñʯ'4°v¸ð«çHñÅýø‡û#àlw§oûÓ«púbÓóÞô¼7=Gm4^æÁtc9‰£EOuÒãedý(è€×™‚äáêÅø@d‹lö§¾¸ÁûñõáÅNþ ó>ì%Øê¯@,˜õG&o¼ß÷0y±—ÿ\e宼.p—BrÚ•J"gÍB'—¾íµÑSQ»­©´AAY´(!"lêP§I¨.Ù¶2Z}ÆËF[ZK÷$¥þEc úš^6ê‘í”®¡h†LšÖÕ„ÖÏäÇm•…,™ºÈàq¨gV¹ÚÃñ¨¡šÉ"Èλœ$bG¼•©9ì1ëÛ‡„r¡ ëAç¦(Ì˨WjÁëÆEghÉœÉ)5åŽ-áB“„~’U™ä'¬i*!Êë<‚S=R^‰M mnâ|Ö}‡?¨-Ï aÛŠhľ0@Ù‚Ô8i'0í=´FµT›íÚÔÕÖÐËb샟b|µ3#Ž¼ áNÇ…s²Ü -ÈñZ¦ŽOÝÐ÷zZ˜/Ÿ˜€ÂÓáhã8#íôÈ+Sr4ÓƒÙÅ̼wò7itGsÏ(ª"­èÏA³)=¸ßß-ïš‘Ú\“V]ì}åpfqÈSóšO¦rÏÓÀC>Ltľ§:L[?˦ʚÃõX‘¥d´”îòÝû;ßA`/ÔÜ$­À€Ìs°f­U¥*ºÐ 2ﶂ£A¿xW JÆKW]T]¢Û2ŸÂŽoÞPŒMKŽ|ŸÒtÑÌÑø4:èN:´Ù†êlPô¼ÏϹ#èN”kÑî¸}°^é {Z®`×ï=š­^ó4[ìØo=œ Îîz«ƒè[#ˆ×7ùÁJÚ›šÊ$‹,óiîûÖì˜å¦ŽÉ–륂PH5ßùV Éj]ø?¨Ñ¦½þÜf- -ûV¤Þjë®@»®N»-b×VÈS½Û™ÊÑO´—¾”ò$é7h‡Nd90»«HEÌqô&Bþ¶‚DeïD…>cÙÊd.ê·*lG„v`>¶r-ôžL‘á-ì¿4= \`UÕõ"zƒUÕAÎ7è[o6ûÄÌÛ®w›J@Ù|íaÓ kL| ˆ…Ï=’«ŸóÊ·:Ø÷°ôZ›×œl¤ùUhN»*÷m»5õ³ëÕ—Ì¿Å÷øUèúG)¹ÜY¹«ØíaZ4éÏd… Û}y98øVáêÄÀMÈ’ý…•!ö?šfV5}`X}Þ/¯á„ Å·LDW†–ïWoßdSù`´4ØÂC=4ëät(³Æk󬕎UèÇ  -ϺzØ¿¾2´[Hf§¼kT•J|uX)C¥-W(™Ikž…~Z{&3‰IX ¦—_&^ÿÔÅ¥Gt•Ü*å ðó×ö Èm˜âÌ{=¾9o5^à;ï|Ž/ºv‹|q{yA¿Tæ#Ï¿«CL¼rÚ.˜žÍð!“¿­ '‹óhqšà³‘_glæz5úuôñ—<„endstream -endobj -1634 0 obj<>/XObject<<>>>>>>endobj -1635 0 obj<>stream -x•WÛnÛF}×W üä#É–l‰;—Â(츃<4}X‘K‰ ¹ËrɨúûžÙ‹DÑrŠ80‰»s9sfÎðŸÁ˜Fø7¦Ë Ï()£hDçÓëè‚.®.ñÿ ~kIÙà6¼úpAã1Ů̮.)N ÇG#Š“Óf-i%©Ñ´”ddCmE¹"A‰.«BþK¦]*|-Õ¼Öª”ª‰èÆÐ}žÔÚ謟¬5ÖBª“–P³–ø¦–U‘'¢ÉµzŒh8>&ðZպщ. -D¹„/¡”n(ië׋-U¢nò$¯D#9š'öLDw å†*mL¾,Â)ÊÚ¦EâÈ«!Ñój} çÎå—»‡E7B -1Q)¶ŒE*³\ÉôŒýoÖy²F”HªÔμƒÍÙ*E²ÆÙž»D·EÚAU jÝYÿ5-ÛnÊZ!o.…³éϘµµ²?8)I'›\Ô¤ªtÝÐÚJsÒó ìD)8@9#ÿp27€üMÆØR7’5b[J©Pt•å+ ˜ÒV·T¶†+oöð±Ùû]‘rµBèÖ,¸²ÑõwõS¢œ Pጃ¨»_rÉ…GÈÇqFYŽ¨KÜ£ þ Ý=RðçOŸ<Öy)ê­s±°e9=‰ÂÙø[­šZ=›BÉb8pÙçÑÃyüöq8·‰ƒi. -½2ã—\¥zcèzJ™ùOqD±¦F"‘£¬E)-e¸p4|ŒÔ8C‹l¦‹Bƒ,+*@Mîo¾ûתÐKQü { ÷%g)àԔˈkßËÈJC¿ñ·¯>LwSdØäÈèB{CsÞqZû_»«û´¿º–h¤cW¸Æñ<}‡>u†™#‡¼ •…ϼ1¿}Ú?h ;,Í,$÷Ÿ1=|Œéö=-ÞÇA -¦²qNzR:àŠžéÅÓC!É" <¶Ãu©=ñmÓî1=uHvÛú¹ÓÒ•­˜P®ÀÇ-„Z¼fÈæÏÙ@ÜŠT¹L{o¸“2‘ÌÓ ¿û@ƶlhnB›ï§¯I¤u® e¨æŽERÂ"ÁóÊjȲõÈŽBfyé’Êþpäø^€ÁOAaÖ€¹0¢¸(¡£®§g~L0^áÛ‡x?½œD «<û¹'LÏ'9Û']3ït .ô’†“ÿÉ„º±ûÈ™A*Ï/‚u^Œ-«×4†z³ŒÏ/Ü8O£YD‹=v·bf3Ôæã§?~ÿôñó#›îîÃÉe4c=ÀÔò,úG+õ,Î;€\] ™‡>Ï,²B=—–U%!5L6Äýs†¹Ït/ +˜Í¿ž¢|ÝÖÆðx‰¦~ÙóÊ '«Âaì{›o݈/d}†iØ@rWk›Œ¢]l¯[ aèT…ØB6¹£¡Ò|}aéÐsÌ{¼³Ò%`Ù€/rÄ.Tð®Ãaº'Û#-«uI…Në®ÍÜ_„f¢ÂhW›™í¯>q-·ìæ í{š‚ñuìU­Û*Å9}ðš=ÃR`ÑK-÷}<½tCZKBhûMX„°kæFs¢éÞçµJðgY€©mðìrÄg` ¨Üñ›_Ï/§Qa•À²âá>ˆÒƒÊ›ú­ß!kÇ ¿[(y‰}˜ýAxô!ç¡Áºû±Åô¸{»P¡SÂãd¬sCÓÈžà]°— .qMŽ›­€Î®ˆV-AÅ]S:spÔÎYÏ'7%»ß%¼yÞÛ&øü¡„>¿>a—YŽàpPùÅ5†ÝÃój~E… áeDÖ5ødwxæXóX•âAoÔžV؆êH6º‡/¼Ò.àèÖç@±ë;ü%TFtíGúÄtò?‡ÉîÀá·¨Qtų;œ<Èðg=:è>?K~vZ^ é/³é‘²Xõx¶(þ%ʲÇn˜%O—&¼`Ù=/cÿ´y-½Ø]ùms<ÃûìÕ9Þ\ÇN±7÷·7„}ûVX¨‚{åܽeÃ…áåЦ§¿"‘³«h6@aùâxÌi¿þmà@endstream -endobj -1636 0 obj<>/XObject<<>>>>>>endobj -1637 0 obj<>stream +ÈñZ¦ŽOÝÐ÷zZ˜/Ÿ˜€ÂÓáhã8#íôÈ+Sr4ÓƒÙÅ̼wò7itGsÏ(ª"­èÏA³)=¸ßß-ïš‘Ú\“V]ì}åpfqÈSóšO¦rÏÓÀC>Ltľ§:L[?˦ʚÃõX‘¥d´”îòÝû;ßA`/ÔÜ$­À€Ìs°f­U¥*ºÐ 2ﶂ£A¿xW JÆKW]T]¢Û2ŸÂŽoÞPŒMKŽ|ŸÒtÑÌÑxFt'ÚlCõ¶(zÞçgaŽ\‡Æt'ʵh÷ +Ü>X¯t†=-W°ë÷ÍV¯yš-ö@쉷ÎÀ„çw½ÕAô­Äë›ü`%íMMe ’E–ù4÷}kvÌrSÇdËu„ÒFA(¤šïƒ|+ dµ.|‡ÔhÓ^n +³…ý +RoµuW ]W§Ý±k+Èä©ÞíLåè'ÚK_Jù ’ô´Ã '²˜ÝU +¤"æ8z![Á¢²w¢BŸ±le2uá[¶#B;0[¹zO¦Èðö€_šÐ .°ªêz½Áªê çt‡­7‰}bæm×»M% l¾ö°é„€µ&¾€ÄÂçž +ÉÕÏyå[ì{Xz­ÍkN 6Òü*4§Ý‚•û¶ÝšúÙõêKæÇßâ{ü*tý£”\î,ÜUìö°G-štƒg²BÐí¾¼œ@|«põbà&dÉþÂÊûHM3«š>0¬>ï—×pÂ…â[&¢+CË÷«Ž·ï²©|0Zlá¡šur:”YãµyÖJÇ*ôcP…g]=ì__Z‚-$³‰SÞ5ªJ%¾:¬”¡Ò–«”̤5ÏB?­=“™Ä$,PÓKƒ/¯êâ ‰Ò#ºJî +•òG øùk{ä6Lqf‚½ßœ7/ðw>Ç]»E¾¸½¼ _*ó‘çßÕ!&^9mLÏføÉÆßVГÅy´8MðÙȯÇ'læz5úuô÷u<Šendstream +endobj +1663 0 obj<>/XObject<<>>>>>>endobj +1664 0 obj<>stream +x•WÛnÛF}×W üä#ɶl‰;—Â(츃<4}X‘K‰ ¹ËrɨúûžÙ‹DÑrŠ80‰»s9sfÎðŸÁ„Æø7¡Ë)Í()ãhLg×Ñ9_]âÿSüÖ’²Ám¢œ Pጃ¨»_rÉ…GÈÇ1¤,GTŽ%îQî)øó§Oë¼õÖ¹XزœÀžDálHü­VM­‹žÍG¡d1š?¸lGóÇÀèÑ<~û8šÛD‚Á4…^ŽñK®R½1t}A™ùOqD±¦F"‘£¬E)-e¸p4|ŒÔ8C‹l¦‹Bƒ,+*@Mîo¾ûתÐKQü { ÷%g)àԔˈkßËÈJC¿ñ·¯>\ì¦È(°É‘Ñ…ö†æ +¼ã´ö¾vW÷hu-ÑHÇ®p%âyú}ê 3Gy* Ÿyc:~û´Ð$v(XšYHî?/bzøÓí{Z¼ƒL+dãœô¤tÀ=Ó‹§‡B’Exl‡ëR{âÛ¦Ýczêì¶õ!r§'¤+[1¡\[µxÍÍŸ³¸©r™ö"Þp'e"/˜/¦A÷ŒmÙÐÜ„6ßO_“H%ê\ÊP Ì‹¤„E‚ç•Õe ê:…ÌòÓ%• üáÈñ;½ƒž6‚¬saDqQBG]_ ý˜`¼Â·ñ~z9‰@"VyösO˜žOs¶OºfÞé]"è% 'ÿ“ uc÷‘3ƒ T>þž_ë¼[„W®iõf»q>™E³ˆ{ìn=ÄÌf¨ÍÇOüþéãçG6ÝÝFÓËhÆz€©äYôVêYœw"?¸ º@2}-²B=—–U%!5L6Äýs†¹Ït/ +˜Í¿ž¢|ÝÖÆðx‰¦~ÙóÊ '«Âaì{›o݈/d=Ä4l ¹«µMFÑ®¶×­…0tªBl!›ÜÑÐi¾¾°tè9æGŽ=ÞYé°l@ˆ9b*x×á0ÝŒmƒ‘–Õº¤B'‚u×fî/B3Qa´«ÍÌöWŸ¸–[vsö=ÍFÁø: öªÖmâœ>ø͉‚ža)°è¥–û>ž^º!-‰%!´ý&,BØ5s£9ÑtïsH­¼ÁY @j<»ñ*7Eüæ×óËiTX%°¬x¸¢ô òæƒ~+ÅwÈÚqÂïJdbfÞ}Èyh°î~l1=îÞ.Tè”°Ã8YëÜPÇ4²'xì%ˆK\“ãf+ ³+¢UKPq×T‡Î\µ3ìùä¦d`÷»„× Ï›cÛŸ?”Ðçׇà ì2Ë*¿¸Æ°{x>PͯȢ0$¼ŒÈºŸìÏÁk«R¼1èÚÓ +ÛPÉF÷pà…WÚÝú(v½c‡¿„ʘ®ýHŸú‘Nþç0Ù8ü5Ž®xv‡“þì GÝçgÉÏCË $]à%cvq¤,V=ž-Š‰²là±fÉÓ¥ /XvÏÇËØ?m^K/vW~ÛœÌð>{u†7׉S¬ÅÍýí aßþ†ªà^9wo™£pat9´éé¯Häùì*š]L¡°|qbÓ~þüu³Fendstream +endobj +1665 0 obj<>/XObject<<>>>>>>endobj +1666 0 obj<>stream xåWKoÛF¾ëW |© X%Ù’\Ô¬Øn²Hº‡%¹”“\‡KZÑ¿ï7»KF¢m.½4A`û˜Ù™ï1üÒ’¿CšŽh<¡(ïùžOãéÌ›ÐÉlŠßGøWJJzó 7¸>¡á‚G&³)1a»ïS.ä×꘶ª&½Vu“,tƒÕZT$E´&•à?’t²Ò©¢i¡IPŽå´p{#Qˆ*¼’©HdXו,),ÕFãg¢Ê£àsϧþpìÅ!ß»QåãªTõ“GÅ–n—ô)-bœ E0ý6øã~0òýqÌ¥Ja†ØŠb…S}Ì¡7i–µœ}íÄs kz8Y…÷®Öü6kdó]+Y¡l¡R•Œ)W(„J°vLZQZý ©PJ²Z)SKÁk¾„¯z8ò(PH÷vâ/E B-žQŽ7ª¤‘×%QY¦6i±"õT¥ -O ³ðç*S¡ÈþÂ=/´ ÊCÍI(IQ—9ôàÚ§3Û÷þèÄ;áš“û«mlztŽ‡5ÉúÞlwã^/Ïi+õŸJ™È²äÂÙÆ¿·YiÊä³Ìèœ&§6×o í&œÁ¥2åvýeüØ–›x5€·WOTÂàÕõ˜°uÜZHlD‰_ªµƒ4JRÜ…Í:E3ÓöM 2a܇½ç;({®£‰­i€}»èI”"— Á}Ô.W å]’;|W·” ¬›e‘‡µ¨L´µL“Y‚t%ʪ~"Áç»›ÊïæÐ5®SB†½Ñ´jZîÊãHxâÞ틸º[ ›ÄHÌZ<#ÍÌn錮qV¶i6‹Ñ&Õ æ»Màs…¹–¥'N5ëA'O ¤T9Ú©œéôïÂ-UU¼ƒú^úuëÿ†Œo’¶ Ðìͽ °Ççg ®Ïh—`»èh O½©GKW iΚεbÐåÝíÅÍžÝeñv»î ¨©ˆc>µK\Í}­h—VšÚþæµ®¬ðBÊ{çãtÊ¿/n ki¾¥X&¢Î`y{ïË4嶉üWBÁ^<ÐfT€ÒÐ -PÚ0£‹6·ë¥íY\óiÄs& <«X9Ç -K))MºO+å*eE€I{ç©h YÍoî–dR}8´ùi8ÿùáÈ -৛Å]í"n¬ãþòC—±×xwcù -ÁYLA3Nƒ•×M [¾Y6á.CÊ\Bq¿ö» —6Rùî;Pc^é¨LCï8êÞe(×®ê¶:ôOÚ ýÿqTÇÄF]­ï—4þÛ ¤ucœíìÔ(6sÁÉ6+vÓoF<¦Sbãõ»ŽÎÃ+³¢=ÃMeñ†ñ,ëUmæK€®Œ±³h›‡q&3ïiwN݉»ÏÌPf˜ÝkQYzÄX7³^,1Úfgvj‚šIëàúî㇛Å/´¼¸_PpGó«NÀà×+º½XW`9xb—X®¦ô;´Ù§—Ëü×6z2Á—Üȩ́†#¾í*èýÞûK4pJendstream -endobj -1638 0 obj<>/XObject<<>>>>>>endobj -1639 0 obj<>stream -xWMoÛF½ûWLur›Ñ‡%Ù‡l4Œ6N © -ø²"WâÆä®Ê%­èßçÍ,)Sk¥( ;!¹œyóæÍÿ½Ñ?#ši2£´¼&CšÝÞ%7ts;ÇÿÇø­4mäÁx>Âeôàayññóæ´ÜÀÖl6Mni™, ‡´L/G¸‘ÐgW¥ÆnÉ«r­¨v´ÖTçšJåk]}X~ƒ•‚•ëñ<™ÁÊå*ç“©+µ—ãƒpžÖ•Û{] ÈxÊ4,”ÆêŒÖR–t¡ÓÚ8K»Ê¥Ú{j<»Æ;*KáÏ'ôI¥ùñ{Òõh’ŒÙçN¥/º¦ÔÙZëI‘mʵ®Èmh§*U²?OûÜÀÆÑ9®U :Õ™¶©¦ç˵QþùÞϯÉç®)2ÊÕ«&c9šÈo;¡‡ìnTSÔ´¾ø½êê@…Û÷Ý(›ÁVãqŸuF@—£o üªµkðלÕxìuÒúÏfÄû¸¡ƒkh¯lç¯î±g+×6Xó`†ó6pð¨_u1 máÖª ·Îñž/× ØÛ0o¶9È v¾;®ë.R³WèOm5I^CFw®Ö¶6×iÙs/@":D9Ž^bmqÓEÇ2†®êœRXº"åÉ„RhõÞIáz(jŸk‘þ ÃÀ-ÊC}7%W!Ý‘gÜžQý oñ¥F‰¦ˆÅ7k b׈QƒcGŠQ=B]›Œ®ŒË ,Üå2щ± _Gî¦0ý>ɘ«2h æCg|Ú)c±àÎÊ}\Ñ •îéûƒ9Êœ£3º²Ô6ƒŠ$}ÜtTáðK09`¸-@­Pí(‘0Ym0ª+£S,&$Ð}î -ˆL]Ñ÷O #r¹ÂM(!ÀfÓ‚Rµé‹ì"¿¦öäöömÀ \W¨†\¿#RÙ9ïÍ`·K³m ,–]¨QÌ7´鋪FgCK;ÍÙYÒ%ÐŽ„Îq×n—PâÆT<ÄxHD¯ÍªFq¶ƒù¬qô2œhÛ­L¦¤¼ú3b´'´³vÛ>>%Œñ¦ÖÐ@zx6(µ€S!Òè{žYYª¨´ÊœÞÈïyg\<¡:”)Øw„ʽšŒ§lS£ ×&…`³Æfʦ‡«nxÃ¥ !Få‰íÈo»žÐ†ð³þŠt=¹ ƒ›Ñ]B_ÔKo1‚ƒw†ÏnF èôd¨1¿s6¨ŠŸbŒ ,?Œ< ¢Â`â -(±`˜Tê µ(•)ù­Û”KqŸ®÷š„´2¤ëÔ2–qä«Rwê'–4 Aõ_‰G¶£È]·PœlF²@¡öÑ„Nxë”ß Ë'Œ’·v{úº”æ³AIqÁËD*,Õ˶r¨¡(oC“¾n¹¹ã†Š?-é7ê1œ•ŒWq ñ½ç(luÝzÜ­»aBÌœBÐÏÈÚv¤¬u ÖN4X$÷ù²TY\ ¿Í1;Â΄ØDۂàÚT®<Ûâ ¨1ÔB¾eüàFØU8Ѹ(Ñâ¼lšWÎtë¾øb6~6XÞó"Nc»Õèb'#„O÷ÖRÞ;IƒüƒÔe¢ÃFÃnÙ[œ± ?ðêó6“ÎÍdG[œ Z‡}äâ§ëTï›y¥E`¶möϗƦE“[@ð°/Œd¶U.štø¨Q´z|Z´¯sœ•ÆìAbŸtýðøuÁÑ~ü|Û~Yfø¨»Ðl.›ÿâþËÃ=ýY¹oø`‚Rӆ僆áDÈ×ÝñëùðŽ¿þï§ÜÍì6™MÇøä—Fñiyñ×ű3Ê2endstream -endobj -1640 0 obj<>/XObject<<>>>>>>endobj -1641 0 obj<>stream -x¥VËnÛ0¼û+¹$,U²Ûé­A[ ‡¦-l —\h‰²ÙH¤*RUó÷¥Q”´@Q†e“ÜÝ™úÇ,¦¯˜6 Z®))fQÑê*W´Únð¼À»’”µ Ñ’—_.,›p;]¸ÞÏÞ~ZQÓ>C’õvCû” ŠhŸ\hQHÒMF¦®(É•ÔÎ’@6£óGª­ÒG:TF¤‰°Ž¿8,Öä?%ÝJw}óeG>ÊœÜIjrÁ6ZjTž“I’ºz÷fÿ}†Ú‚ÅEíÓ Ÿ-7‰È©@\YqŽÆʪ;uTkqÈ%§Ë”NIPj -¡ôdÿœ„%åº\ Gsc€€“FÄËpÁ9 Àx‘³Úú ¥ yK€æô{âø'ü2@Ur·¡“(K©-ƒ:JG'“§dx½Å4*•]%”+ë€ÎC¯Q çdQ¢»8-’DZô!¬#¥'PÝI¸.@_Û³Žôp=cŒ?Ëa_·h‹ —,¯Â57å&›C#ÊjNãNdEq÷ I´jtws»#”ä1ëÿÌob´‰ó„Œ¢qZÏhn 40Û‚9á©’G4TV2m+D_”´­ça¢ˆuq¯F©æ­â_Ó`+¦J&RAäÂ9DVz±Œ%ÒD€EV }]Ÿ ½òG -ë9hxnuyYÿ«ª¶S­•›Â÷ãù'"FSþw‘qõ=[ƒô0(SnFüq³ž©vཞÄÉýôx´‚Þ¬„7ð˜<“zßåNêo?]Q ÇË0Îý:‚ABôñeG!ÝÇñL힎:R¥Ç?¶ÎöÚL+øGcª†ÇdEgtúì²F÷™©HþE Kƒ£@½R§Ð Ý¿aujÛjϺJ=ȉºËÊÀ Øõ nIôŽ•©K €hã0š²`—±uYšÊq -x ¦4äâ°hêck³ÜÒI^ïÌìüìelõÞ_9acô9¬¼ÌŸº!Y®Z§ç^CóŸëÜ)_¼ÆgöÇi^mðÎ;6M_€Å@'¸SPž—JÑë)PCÐþ.ƒ1»ÃƧ Ï;=)UK¶Ôò>:{:wF¦t -w(³Å!ÄàÀk ñ§:Ö¸0q i]öë÷— –YJ¥*·]›¶Ý}¯q»o—´ÜDm³vï?_¿§¯•ù.aŽLR¸çe¤A ØDWÿ$äÕz®/øÀòWíã~ömö8ó³–endstream -endobj -1642 0 obj<>/XObject<<>>>>>>endobj -1643 0 obj<>stream -xV]oÛ6}ϯ¸)K–üw@º­.ò°[¼®Ã:4EÅl$Q%©8þ÷;—¤ÅÅÐ%H¢ˆ—÷ãÜsÏõ׋‚æø.躤Śd{1Ïæ´X­² -7×x.ñcÕá Ø¬³ÅùÁ»‹|ûšÊ9íjøZ_ohWüÌñF^þt½W–ŠuF·^È{±o}ØÞRkª¡QîÕîKpP\G³Å2+áâ7ŠŒn:oa(½6‰®"iºZß Vð›xyIE‘.—×Ùš/ßêN*r¢Ý Zdó«ô膾7Ö;rÓT>]~ÐÖ¢¡­Fr·'çUûéÕ˜!~záœr¤„<“¯ƒrž¼áæ4+1k!¥rŽüAÑÐéGªÙ£ ñÒá¤1¢RÕ…ŒvíH&´¤yPÖ‘hš`Ÿ Â³ð UtÔþp™CÆ‚,ªg´¬ª•UÀ)r|U=¢ŠM^³ä§\gK†î/3P+NtŠzkЯ6ÜFàž«A §ÆÛW$€æAXÔÓè½V#þå<Ù¼ -y4º»Ç£î¨ÒuHÉŸ¥'GèñÓyBÍ14êDr°(Ä7)±½Ry´€Ü Ý¡ïý#G á1„¼ùýæãym;Crg¨&¼"i•ð@,VBN·º–!cSÓ)Ú«ÆC*¤[æè<õŠV1½Ñ;XrIùv•èxI5JÚQ2›o'DùòìâxÐ V; ÞhxOÑÕ£Ê:#S‡œ^@~JQ€ÕÖXtX´}£®ØCcî"/Ï0Ç9óýUÂÈ“D“÷ºû!–3§×ãp-#C(~ý-†JûFŸsˆè“Ÿþ€-úFoè-›£]y%¼@ŸÊ{úÎ}.—Ã¥ï˜>ÃÍøbîM²Ìœy~“jÄ»ï8“2Á˜Îg^ˆñý(dáÏä20Mt'l&ŽM’÷ËQãHÅQØXÖQ±£0pEÕ¨D“ð“÷Œ‹°Kä™ÛQ©òø }oã†gÓówIjÖ“Ež¶fúsŠû™5ɪÞ8=êÆ3™ðñåioo>þò.‚4zœMÏÏ}Þ+”mU’ï×é‰ÇMÊ1x\,²b‰ÏÕÿûœ³\o²õªÄ|àFQ¬8Çw»‹ß.þé8endstream -endobj -1644 0 obj<>/XObject<<>>>>/Annots 971 0 R>>endobj -1645 0 obj<>stream -x­VMoÛ8½ûW zÙ°iKŽ?š›»mÅ6E·ñ{(PÐe±‘H•¤ì¨‡ýíû†’[×èe ˆ‹äÌ›÷Þ õu”Ð ? ­Rš/)«G31£Å<Áçõz…Ï¿NQ®g3ñâW éz)’_, ¸˜ þ¥ ìJç+± šÒõZ,‡oÝ’T¬)Ml©i>G¢þ ¯}­U¬ÎÖñ:EÈ À/·£éí’’„¶j\®W´Í#žm³«Cá?;•uY¥>ï´¹9(çµ5þùö Î]ç@Ê$™‹G¯nßüs÷º_>…œ¯_F ¶Íʧ WËG¯¿©§ ¨³ªÍŸ>àç\»§CiìÿRæ%×,xT>Æ—ü*YŠTÌdÕÃÏèf4IÙW›ï¨¶y[©1…R:êª"%½¢ÌNÔ£öA™L‘-ÈËz'IšüÇÉBWŠ|)6{òÊt¦¼àŒœgÙÚäi‚Ü+u#Ê)XdCÔê,Xã†O£”yÊHÅVÊ­òæ·@ÜÙÿ:%§:±išJ½²í -ëü˜¾´>ЃR'k^òÉ8ÃÁÔl¹ˆáQªPqG½™5Å„èqô§ :¨šw—:GŽ -%U`kLÀIÜfž£XÙ[h&«ªëå€rPÊ •Î§J -â}¼½dñ$RW’ËR•WÇR¹ GM1^ÀÓ¶ÔBdÝ ¶#pDˆÈ¢P˶`¸ŸEýKyP´SÊPc¡}N;ÛÈ|ëœ2¡ê0$=êt> °ÁšÞG›üþñž‚SQ -&G¤&à >õ§+%ö‚éf¬v,[ Qƒn¦øÀjDÄua•!Û£!„¿ÈÎÉ>=¿ôÞ;Km j@C4 cij®tè8fњȗŒ¤éæa Û ÐQ×M¥ÁEÞ*F¤¬±3X˜vz{êGrÖs‘z…^Ü¡«n#î37jÇÊýýáí •!47Óéñx™÷"È®²®*o§ÿ*ü«kå¦ùªðSmrõ(š²È8µÜËŽ^;ÑÛþÈ%+ozNcû°?Ï\@ÇRge,¤f -©Dçæ­TˆRækðˆûßw°I-èM8 ñZáþîm ,7ô/œ­òTɘà{n)Ùó/]œ5{ ”£ì˜z´=R®‹´8s ÃóâîÒ’­GyŸ®ÀÂ^î>ÊáܽÁSöšu{iô7nŒ»÷sO-ètŽ«2à &†Ç­ÆŸm\@sûñ3zvo±ÿOÕ­Ëù -™¨ÿÂѶ^óð”MlXK€ýp¼ãC¡ ×q'誃•i §žÀt8äÚ,´<¤€ ø8`ßr§`SU‘E6}?_©–(̇÷mÝ°*ç­qŠu–o§:‹©Ï1`bÌ!ÔáÔ×øz;úkô!ÖJendstream -endobj -1646 0 obj<>/XObject<<>>>>/Annots 974 0 R>>endobj -1647 0 obj<>stream +O ³ðç*S¡ÈþÂ=/´ ÊCÍI(IQ—9ôàÚ§3Û÷þèÄ;áš“û«mlztŽ‡5ÉúÞlwã^/Ïi+õŸJ™È²äÂÙÆ¿·YiÊä³Ìèœ&§6×o í&œÁ¥2åvýeüØ–›x5€·WOTÂàÕõ˜°uÜZHlD‰_ªµƒ4JRÜ…Í:E3ÓöM 2a܇½ç;({®£‰­i€}»èI”"— Á}Ô.W å]’;|W·” ¬›e‘‡µ¨L´µL“Y‚t%ʪ~"Áç»›ÊïæÐ5®SB†½Ñ´jZîÊãHxâÞ틸º[ ›ÄHÌZ<#ÍÌn錮qV¶i6‹Ñ&Õ æ»Màs…¹–¥'N5ëA'O ¤T9Ú©œéôïÂ-UU¼ƒú^úuëÿ†Œo’¶ Ðìͽ °Ççg ®Ïh—`»èh 'ÞÔ£¥«Ð4gMçZ1èòîöâfaÏî²x +;]÷ÔTÄ1ŸÚ%®æ>‹V´K+MmóZWVx¡ å½óÆq:åß·†µ4ßR,Qg°¼½ˆ÷eš‹rÛDþ+¡¿`/‹h3*@ih(m˜ÑE›ÛõÒö,®ù4₇9“žU¬œc…¥”&ݧ•r•²‡¢FÀ¤½¿óÔN´…¬æ7wK2©>ÚÎü4œÿüpdðÓÍb‰®áV7Öqù¡ËØk¼»±|…à,¦ §ÁÊ릀†-ß,›p—!e. ¡¸_û݆K©|÷¨±F¯tT¦¡Œwuï2”kWu[ú'í„þÿ8ªcb£®V÷Kš@ÿíÒºˆ1Îvvj›¹àd›»é7#Ó)±ñú]Çça‹€•YўᦲxÃøF–õª6ó%@WÆØŒY´ÍÃ8“™÷Œ´;§îÄÝgf(3Ìn‰µ¨¬‹=b¬›Y/–m3 „3;5 ÁÎͤup}÷ñÃÍâZ^ÜÎ/(¸£ùU'`ðëÝ^,ƒ«°<±K,×SúÚì?‹ÓËe2óÝüí$ ©a h¨iå„‹Å'ÜàîfžNb"Ûˆ­æ©Æ½›¹üÂ?ŒcVâ‘ûI¦b™oÆø (¤ 3&üÖ[;A_eçŽÓ~¯ËÒ«¾zÚ~Ý`p´™«V;ˆ ·o¶CzÕ$é¥ÎÜýà ¾¬fcšLO­±YÜ—ê3æ-ÈsTç_G<•s!úÍþÔÇþk=™àKîtæSà ßvô~ïý S%pPendstream +endobj +1667 0 obj<>/XObject<<>>>>>>endobj +1668 0 obj<>stream +xWMoÛF½ûWLur›‘dëÇl4Œ6N © +ø²"WâÆä®Ê%­èßçÍ,)Sk¥( ;!¹œyóæÍÿ½Ñ?#šéfJiy1L†4ß%·t;ŸáÿcüVš6ò`<á2zð°¼øøùŽF3Zn`k:$sZfKÃ!-ÓËÑ4™'ôÙU©±[òª\+ª­5Õ¹¦RùZW–ß`å–F£`åzà©OÊãkUÕÍîŠsŒ«.ÙõFW*,Ôß'=ŠqpÐ~´JÞ$QŒK!(òô}f¯ÐŸÚj’¼†Œî\­mm ®Ó²ç^€D(t&&þˆ.r½ÄÚ⦊Že ]Õ9¥°tEÊ“ ¥ Ð꽓ÂõPÔ>×"1üA‡[”‡$únB®Bº#ϸ'<£úA*ÞâKM‹oÖÄ®£0,Ç Ž£z„º6;]—X(¸Ëe¢c¾ŽÜ Laú}’!0WeÐ̇Î*ø´SÆbÁ•ú¸¢A+ÝÓ÷-r”/8Ggte©mIú¸é¨Â;!á-þ(–`rÀp[6€Z¡0ÚQ"a² +Ú`TWF§XLH ûÜ™$º¢?îŸ@Gär…›PB€Í¦¥jÓÙE~MíÉííÛ€A¸®P5 ¹~G¤²sÞ›5À 4n—fÛ@Y,»P£˜ohÒUΆ–vš³³¤K  ã®Ý.¡Ä©x‰ñˆ0^›TâlóYãèe8Ѷ[™LHyõ fÄhOhgí¶}|BãM­1 ôðlPj§B.¤Ñ÷<³²TQi•8½‘ßóθxBu(S°+î•{5OÙ¦F®M +ÁfÍ”MWÝð†J4BŒÊÛ‘ßv=¡ ;àgýéúæ6 ^lFw }Q/½ÅÞ>» Ó“¡ÆüÎÙ *|Š1‚X°ü0ò€Š +ƒˆ+ Ä‚av`P©'Ô¢T¦ä·RlS.EÄq|ºÞkÒÊ®PË|XÆu¯JQ8Ü©cœXÒ0XUÔ7~%ØŽ"wÝBq²ÉR5†ÚG:á­S~7,Ÿ0JBpÜvÚ]ìéëRšÏB%Åu/©°T/ÛÊ¡J„¢¼ MúºåæŽ*þ´¤ßd¨ÇpV2^Å-Ä÷ž£°Õuëq·î†E1s +A?#kÛ‘²Ö5X;Ñ`‘ÜçËReq1ü6Çì;X`m ƒjS¹òl‹ƒV `ÄP ù–ñƒaWáDã¢DwŠóv°i^9kЭûâ‹ÙøÙ`yÏ‹8}ŽíV£‹Œ>Ý[Kyï$ VðR”‰a »eoqÆ"€þÀ«ÏÛL:7“mq&hö‘‹Ÿ®Sq¼obä•A€Ù¶Ù?_›Mvl üÁþ0’ÙV¹hÒá£FÑêñiѾÎqV³‰}ÒõÃã×Gûñó¼ý²MñQ7¿¡éL6ÿÅý—‡{ú³rßðÁ¥¦ Ë ɯ»ã׳á)üßO¹Ûé<™NÆøä—F3ñiyñ×ÅÄ—Ê9endstream +endobj +1669 0 obj<>/XObject<<>>>>>>endobj +1670 0 obj<>stream +x¥VMoÛ8½ûW ri +Xªd;²Ó[ƒnšîÂrÉ…–(›DjEªjþý¾¡>¢(ÙEa–Mræͼ7þwS„WLÛ­JËEF´¹ŽÃ mv[<¯ð®%åÝB´æå× ëÕ6ÜÍn‹_6ÇtÈ‘$ÙméDÒK-JiCºÍéÉ45¥…’ÚYÈftñDUúDÇÚˆ,Öñg€Åšâ‡¤;énn¿íÉGY’;KM®5xÀFK­* +2iÚÔß¾/P[°JPÔ!»ôÙ +“Š‚JÄ•5çh­¬ûSGIÇBrº\éŒe¦JÏö/IXR®ÏÅq´0æ8iDA¼WœÓÜ™9«mŽZº·hΰ'‰Â/#T•#w×:‹ª’Ú2¨“tt6EF†×;lA«2ÙWB…²è<ô•‘pN–º‹Ó"M¥EŸÂ:RzÕ…ë µ½èÈ@×3%Áø³öUq«®¸`uEÁú:L¸)·ùZùCÖK:w&+Ê£ð¸_I¢Sƒ ûÛ»=¡$ˆYÿm~S£H'dÓzF ¥ÙÌOµ<¡¡²–YW!ú¢ì¬m3@¨‹{5Iµìÿ–;1Õ2• +"÷ÞAd•ËDP"Ë@XdÚ·õ9’0(¢°ƒ–çfÔXŸ—Åñ§ªê:Õ Q¹9|?žÿGÄdÊ-2®~`k”eÎÍ„?nÖ ÕŽü ×3’8¹ŸC0˜‚•ð“RºÜKý×kŠáx9Æ¢O"$D'a…tgÇ3{v8êI•ÿÔ:Øk?2tà­©“u]ÐQXès´Ë!=\æ¦&ùS”, ŽõJA7L|ôðžÕ©9l§=ëjõ(gê®jC,a×÷0D¸%qÐ{@8Õ¦©X€¢ÃhÊ’]Æ6UejÇ) à ,˜Ò˜‹Ã¢©OÍrKgy½3³ó³—±Õ{å„­Ñï`½@àeþÜm ÉzÓ9=÷šÿÚNùâ5†8°?Nófƒ÷Þ´i‡,:Å‚ò¼TÊ!Ø@ƒwˆÙ7>oxÙéY©Z²½¦”÷ÑÅó¹ 2•S¸C@™-!^kˆ?Õ©Á…‰eH{èrX¸¼µÌR&P…íÛ´ëïã8Áí¾[ÓzuÍÚúzó‰þ®Íw sülÒ¦Ä},8/# †Á6ºþ-!o’]˜\­ð€åï8Ú_‡Å?‹ÿ>³endstream +endobj +1671 0 obj<>/XObject<<>>>>>>endobj +1672 0 obj<>stream +xV]oÛ6}ϯ¸)K–ì8΀>t[]äa¶x]‡u(hŠŠÙH¢JRqüïw.I%Š‹!KD/ïǹçžëogÍñ]ÐUI‹ÉölžÍiqy™­i¹¾Âs‰«¨Åz•-N~Üžå›k*ç´­ákuµ¦mEð3ÇyþÓ^ô^Y*®2ºõBÞ‹]£èãæ–ZS ro¶_ƒƒâ*:˜-–Y ç¸QdtÓy CéµéHtIÓÕún°‚ßÄËK*Št¹¼ÊV|ùVwR‘íNÐ"›_¤G7ô½±Þ‘›¦òùü£¶~ m4’»=:¯ÚÏoÆ ‘xðÓ ç”#%ä˜|”óä §0§Y±ˆY )•sä÷Š†N?RÍ]ðˆ—v'•ª¦(d´ÝkG2¡%̓²ŽDÓûž…­¢ƒöû“È2ìÌ`Q=£eU­¬HÉã«êýèPlòš%?å*[2t™Zq¤½xPÔ[ƒ~µá6÷\ 95Þ¾ 4÷¢žFאּ±ð/çÉæUÈ£ÑÝ=uG•®CJþ$ýƒ8:BŸÎjŽ¡QG’ƒE!¾I‰í”êÈ£àNèÍøðë9 !äÍï7ŸNkÛ;C5¡àI«„b±rºÕ° ›šNÑN5æR!Ý2‡Dç©V´ŠéÞÁ’KÊ7—‰ŽçôP£¤ÝW%C±ùfBÔ‘/Ï.{ bµ +é†÷]= +É¡ü¾C02uÈéäÇXmŒE‡EÛ7ê‚=4æ.Ð(òòsœ3?Ñ/P… Œ>/XObject<<>>>>/Annots 981 0 R>>endobj +1674 0 obj<>stream +x­VMoÛ8½ûW zÙ°iKŽ?š›»mÅ6E·ñ{(PÐe±‘H•¤ì¨‡ýíû†’[×èe ˆ‹äÌ›÷Þ õu”Ð ? ­Rš/)«G31£Å<Áçõz…Ï¿NQ®g3ñâW éz)’_, ¸˜ þ¥ ìJç+± šÒõZ,‡oÝ’T¬)Ml©i>G¢þ ¯}­U¬ÎÖñ:EÈ À/·£éí’’„¶j\®W´Í#žm³«Cá?;•uY¥>ï´¹9(çµ5þùö Î]ç@Ê$™‹G¯nßüs÷º_>…œ¯_F ¶Íʧ WËG¯¿©§ ¨³ªÍŸ>àç\»§CiìÿRæ%×,xT>Æ—ü*Y‰TÌdÕÃÏèf4IÙW›ï¨¶y[©1…R:êª"%½¢ÌNÔ£öA™L‘-ÈËz'IšüÇÉBWŠ|)6{òÊt¦¼àŒœgÙÚäi‚Ü+u#Ê)XdCÔê,Xã†O£”yÊHÅVÊ­òæ·@ÜÙÿ:%§:±išJ½²í +ëü˜¾´>ЃR'k^òÉ8Ó¥˜-1<ªC*î¨w"³¦ø‘Ð=Žþ”AUóîRç(ÃÑA¡¤ +l X#‰;ÀÌs+Û`kÍdUu½P*@¹¡ÒùâT)äƒxoïY<Ƀԕä²TåÕ±TîÂÆQSŒð´-µ‡Y@wƒí"²¨Ô²-î§DQÿRí”2ÔXhŸÓDç62ß:§L¨: IºO#l°¦÷Ñ&¿¼§àT”‚ÉÇéÉ8¨OýéJ‰½`º€«ËCÔ ›)>°q]XeÈöhá/²s²OÏ/½÷Î’G¨ZÐMÃñl§+:ŽY´&ò%ãiºyX¶0(tÔuSip‘·ŠikÀAì Ö#¦Þžú‚œuã\$‚^¡wèªÛˆûÇÌÚ±rx{CeÍÍtz<Eæ½²«¬k…ÊÛé¿ +ÿêZ¹i>„*üT›\=Š¦l2N-÷²£×Ngô¶?rÉÊ›žÓØ>ìÏ3бÔY i†Y£Bjѹy+¢”ùÄ<âþ÷lR zNB¼V¸¿†»DË ý gk„<Õ@2&ø†[JöüKgÍ^Á(å(;¦-d”ë¢íÎÈ𼸻´dëQÞ§+°°×†»r8woð”½fÝ^ýãîýÜS :‚㪠8ƒ‰áq«1ÆgÐÜ~üŒžÝ[ìÿSuGër~ B&ê¿0d´­×<<%FÛVç`?\Eï¸Ãp¨CÄuÜ ºê`eÚ©'0¹6 -)à>Ø·Ü)ÀØTUEd‘MßÏWªå +3Àá}[7¬ÊykœbåÛ©Îbês ˜su8õµO‘vךK‡mÐE…RùNft<µxµý˜ß°¢ÁÆ yË!S#CV* ï­°†’5âñ7¦Ò6ªhYKÀ¨õ¾ e7·(AzìŠ2{[+A|þ¶Ï)X‹¾ ÉA»ÐJìÿnÅ¡§×ÃËQ²ÄâzNËd!VsîØûÍÝË ½wö ìB¯lÖr=ÑæŒ×Kb²š½àý¿º˜¯—x/\¤xeã 錾ގþý3ÓJendstream +endobj +1675 0 obj<>/XObject<<>>>>/Annots 984 0 R>>endobj +1676 0 obj<>stream xeQÁr›0½óïèÌ œ[2mzI&­M;=ä"cQ”D%aš¿ï -;N;H°¬Þ¾§·û3âHéá(3äM¥,¥ÌŸ×öS”­‡X –¢œ¾ç¿#vŽõ&gŠª¤8£mÚ讎’û xº%QQpXˆSÔÍŠ –³Œáä9\Õ/.Àùg%W_·7è¼o’džgfF5ÈÁ듶“cÆþHBaŠ8¤ONö{/”У5¦i5fhÔèÑ›Ãt¤ë‹]_cîtÓarÊÁw -ßîwx^‘‚Ÿä­&°{s^õÏWh•ô“% i/Âœ<á…‹¼gìW’Säqìäw†§!îë³:I*{Eé~$òfí»EÕMãh¬gøÛÅ%éþÑ;I«‰K'Z8(K†‡CðÝK=xÚľÃ6DzxeçFW—FsA«rð´`ÕbãöñyQÇÓL½"&¯Í2¢ø½ .ÓMÀÿ7ÄBTL¬3šw8åeÐûXG_¢ßÚH±oendstream +;N;H°¬Þ¾§·û3âHéá(3äM¥,¥ÌŸ×öS”­‡X –¢œ¾ç¿#vŽõ&gŠª¤8£mÚ讎’û xº%QQpXˆSÔÍŠ—,gÃÉ5r¸ª_\€ó38ÎJ¯¾nnÐy?Þ$É<ÏÌŒjƒ×'m'ÇŒý‘„Âq&HŸ +œì÷2^(¡$FkLÓjÌШѣ7‡éH×3»¾ÆÜé¦Ã䔃ï¾Ýïð¼"?É#ZM`÷æ¼êŸ¯Ð*é'K@Ó^„9y yÏد$§ÈãØÉï O-CÜ×g5t’T öŠÒýHäÌÚw‹ª›ÆÑXÏð·‹KÒý£w’V/–N ´pP– ‡à»—zð´‰}ÿ†mˆ,ôðÊή.æ‚&VåàiÁªÅÆíãÝ->[󢦙zEL^›eDñ{A\¦›€ÿoˆ…¨˜Xg4ïpšñ ÷±Ž¾D¿Ü.±lendstream endobj -1648 0 obj<>/XObject<<>>>>>>endobj -1649 0 obj<>stream -x•WÛnÛF}÷WLó"h‰¾Æ/E›K[4uZDEPÀ/+r%®MrÙÝ¥eý}Ïì%¢7MaØ°È™sÎ\ô÷É’øYÒuNçWT4'‹ ‹,§‹›küŸã×HÚœü¸:9{ÿšò­60¹º¾¡UI8¾À“bú¦“†–×ýdtßQ#ºNµ[úùãçÕÇÓÕÌ/h¹ æóü.Våô“Æñ±r}ÍZÐ9|Šº«å3ÔÊm®Üômá”nIYOBÕb]ËŒV•¤¢7F¶Žé*]Òý´V²Þ“Ó‚æËóศD»•÷§xƒP[±•ä`ïY±w\èoK*D]Ë2¤qÓ˜’mÖÞ@–ʧ8Í¢¿ü*»àD9¸2Ö‘jœNXa‘"èíÀýèðNÐïoßÌ8W Ç!Žc(u#– þúhF‘Þ„'`6ÁŸP@Y¡Ûx ñ3e­ìºõ¸âc'Œ¨ x',Ç[rÜ[õ¯•ux„çÆR­WŒÈ¨må,qš•T&¢’üï´y´N0™6£_œ¿ÜêFƒ­*Ⱥ~³ ©[Õt ’-àhÝ;*UÙNY8“ô$ ^ʺ¦6ÚºZ>“•®ï옋’Bò¹«º +1677 0 obj<>/XObject<<>>>>>>endobj +1678 0 obj<>stream +x•WÛnÛF}÷WLó"h‰¾Æ/E›K[4uZDEPÀ/+r%®MrÙÝ¥eý}Ïì%¢7MaØ°È™sÎ\ô÷É’øYÒuNçWT4'‹ ‹,§‹›küŸã×HÚœü¸:9{ÿšò­60¹º¾¡UI8¾À“bú¦“†–7ýdtßQ#ºNµ[úùãçÕÇÓÕÌ/h¹ æóü.Våô“Æñ±r}ÍZÐ9|Šº«å3ÔÊm®Üômá”nIYOBÕb]ËŒV•¤¢7F¶Žé*]Òý´V²Þ“Ó‚æËóศD»•÷§xƒP[±•ä`ïY±w\èoK*D]Ë2¤qÓ˜’mÖÞ@–ʧ8Í¢¿ü*»àD9¸2Ö‘jœNXa‘"èíÀýèðNÐïoßÌ8W Ç!Žc(u#– þúhF‘Þ„'`6ÁŸP@Y¡Ûx ñ3e­ìºõ¸âc'Œ¨ x',Ç[rÜ[õ¯•ux„çÆR­WŒÈ¨må,qš•T&¢’üï´y´N0™6£_œ¿ÜêFƒ­*Ⱥ~³ ©[Õt ’-àhÝ;*UÙNY8“ô$ ^ʺ¦6ÚºZ>“•®ï옋’Bò¹«º ™*¸æX8лÕÙçü×çW ŸòñlD)IìÄ>£Ï•„[D_×,à`Åöb”$Ó9ÜDÙ½¨T@NZòyYrAŠÝi}CÂ0žüÀ4k#œ6v¡Jø<¸°#×HÁëÆßtF=©ZnákÃ_+ÖªVŽ«„B]ø§%k”ov hU¼~T@X´{¾Ö¢ÂîZ³€µ¾?`ú¶etÿQ(*”5Niâ%ꯑÍ0iÀøÜqê®êÇ™OT[I£Üä+ÆH"añmPl“-!bJÁZ‚FÀá ¢e{LÏv­êF>‹ÂE.-ê‰byàÕÈv¬Y/7‘Tdœ4 ôÅ((ô‚•½aÐ=õè£Vé½zzÅ‹"Š82B÷ñd”eðñïL$ž%Ñ;_–2ÔVdòå0FžƒdiLÍäkŠ f­·Ûî†AE?©1ÿ¥{qÜïvº-!@Ç=ro*Ä×%bßëÞXÈbXB¥¾œÛ(—1àßcV 7±<jÈs`ï Çž§À‚ú ¸¾UÏ¡ÐQm½í½ ú;9{ŸºúôLºâì¥p:£Z²;žbÜêX'eÃösŒ ðrºÌü}øøeDŠÒËÊUPY`ƒÙi{i5=ÆÙZÒqz½GK€Ò¹“ò¸¡¯c(£¸fºB‡DSi„ÙÏF8y„1¾ÑÊÿG~ØV­õ£ïh· —×¼kÌ1óó‹0ƒCÚ·Ï·—‹ü63ã@‚Iš ÊùuvŸä\.ášßD‡Ò(ᾄ ·Ú¯Ngߢ[Ð4®÷”º$ã7Ž˜EÚ58‹¸I —štTÕöÍû¿wœTºâ<$5Ï/i~™g¼ÊMQ”&æÌ…?¦|‰p¾àÒÌ ú.’˜.ÿ¦ÊÛA·‰ šqA†-èïüf­0ÍÀøŸ™£òxÆÜ­D!8o%jŠr$>=°O0™9ó:vÊÔÌS;½Ÿ"²4È J/T;–ô±‘ËÄÙNµkÕ–\dœÛN÷u'kÜDá'%'E…4Ž1,•‘F¸Ÿ¹ƒÁ¿«p 4¦Ìx›•ˆy -oƒv„ª«ElùáfÊ1tPÚ·ª+4ŸpßÜÅý7•É@“‰^ýÀ}Fé>²Ž}Ú¯LºÿN€ÍB¬1–Ò¢biü§ÚŸB¡Þ 6YÈêý†ïW7ÙÕeÛÝò†¯z·:ùãä)–endstream -endobj -1650 0 obj<>/XObject<<>>>>>>endobj -1651 0 obj<>stream -xV]Oã8}çW\ñÄHÚÂæafØ¡ÝÙ¥ÒìJ#­œÄI<$qÇvÚíþú=÷Ú-%°B@ÕÄö¹çœ{®¿Li‚Ÿ)]ÌèlNEw0É&t>›ds:¿¼Àç~¦JLç¯<ø°88½~G³ -*ì5¿¸¤EIØg‚oŠ£«F-ƒv4½ÌèAu¹¢¥v•uê MÆûAû7‹o²Çô"îqrvžÍ°ËM3º²ÝR9ãmŸÞ<§é4½9»T¼¹htÚÞk·Âyƒ×žWŸ)X -ª}”ÿx©hîCF‹fðd*ÚØ* ncúšßò¸*2a‹ÔÓZ·­¼é;´%ãÐÉô,¢tZµí† -‰µwY:[;Õy - -Œ4yÕi~la[¡©³>€bUì¡VÊ´*o奸\QeðMpª÷•v£Ówûs±\I–„5ª·8Ñ ¹òº¤‡OP³“¥=fóìœÙ»<¬U/؃$U+Óã¿· sÓšGMŠî¼ý—êKvãÊz¡gmÀS£Vk©4^*9”A€Ø~„^‰?IÞ;¤{~¶6àŽUêÔ& -‘kðÉ€Ž¶à­4˜°;réë‘Š†”§;r=˜¯oÀÉX»(šxKi„ýWª5嘥Ýk'Ç1œhHÓ—QãgîöäM)À Ö6pj½“‘üRë2£[P,®ÚÚ¾&€èS9|U)ϽÉ{º»~8&Õ¬­|ežœ4+´ 訜du0»p™"7­á÷gh½ˆÂ ºŸ~Ò•H¿BÓ:]óȵñ/õC—Ã&¶9û‹Q&LXÀ<5'pÞ mÍû±Œ•j/8R¤rÿH.ƶZ€Ì׎ÄI03N¯C€Èိ “¡DÖÀ†BKsrŸê?fÃÌ—òú.Ï -ÛW’•¯!:|éçL)ÓÄgì6Àù7…ª5úÈÎÀªÔX´.1%"‰QÖÐVfÒ³iÀ5 û”6†rƒªeм$É™º‰òtJ’Îß%†%ŽGð¸mNð=³×O{v´vÑ‘GR•ó¤”ñ”oèÛÀï%-â*¬sì–½xI%† ‡ë6NZ[€¡É`Ýã¸Âò³“þ¸»ÿñãÏïçöe¶9eʶ<$-Ò5ó£m¿sÄ#•¶Ñxò¸U–p c?©~³M3§—Ö±X°¼*Kæ|dúaÙ!•vÀäøx ï=:R$úY¢$RÈ‘FúÏe«zA&™Š{/)- ×úÉÎz[Ét<½ýL>¨â‘Iò- gÆ"zøJÜS,éýÕOÿgýÊexó—ôíéõ?\œb¶Ð¡Ío¦`HZÁ­Â¥¢â™þ(—ºv˜R¸q %ž=AŒÇÆRØ;X­Â‹©¦¥œtµqHcŽÊ4—Rgò½%å‚ÇX/µçôÂAq¼ûô›´%¾çRrŒ[ }3îPLåz;EãÜTí Þ‹ƒ Å]®k\€ÐOˆp˜‡åâôð¡ôQƒBÏh¤@œiëÆòÕ "&*g;^5²Nâj/Édd2?{¸1ù"òn²±%;áàëÕ#ÊÙm\ÿè`ÁÃJÞ^_>Ý¢ßÎã-úÿ^ÖÏç—Ùüí ×}¾¤OßñI¿ü Æc Mendstream -endobj -1652 0 obj<>/XObject<<>>>>>>endobj -1653 0 obj<>stream -xµVMoã6½çW |i²°µþ”C ÚèvÛÆ@Q J¢,n$R+RqÔ_ß7¤ìudoz(Š$@ ‰3oÞ¼yœ¯W3šâgFë9-bJ««i4¥x6æ´Ü¬ñÿ¤Ü¿XÎo£å¥‹Õòò‰Ù&ŽâK'V›óç÷Û«÷–4›Ñ6ªx³¦mF@4Ò6½ÞÊ’y–M)êZéíMód)‘ÖѾš\!ÉÖRfø,§LÙ':#-I"M¥µ$PŽU•*E3¦B‡7ZðTmZЮ‘ÂÉD@a¥‰úó¤!Æð2™‹¶tô,ÊÖŸŸÅ‹ÍrLI‹g§ ^jÙ¨Jj'œ28¹PÔ˜qÞN:rÁ´RxÀ•›Ú©J”!ôx€ŸyPŽ—êI–CE óô8{UòqPá ÂW ¨ã¬¶³NVàNw{ÑEt×ÀÝ xµ‚vº6JƒAk/$÷±SÑZ 7-£eiRÐF•¬ r¶ZKnhTÙyîÞ¸¥4Àb˜,–ÅÙ&ZFôI¼ÐK¥|›N53™¯¡+}çÈ:Ѹ¶öU¦¥—^V6ŒZËqŠó UâEUmE®Ú"ì -ù[Ž!+…ö–P‹³>?æîk)ðƒèáÓý ÞÔT·ý…RShÂrÃ@ö!ã[ð ªDgç¢Ö²(ù#ó…Ò4ò-†”$´U¥FçýjPPß[t¿gi1Ô_[žœ! -ž’ÚEjó -ö0+sqÔÑ»@ñ»PKˆÑ5ôÜjoÐeõÌ3ˆãh¹1ÐC`"aiÏ°lýóAêÂhÓ6\øö ‡í£;̾2½F“ÎIK×'œ<Þ„RÃpÔÆZ•À|YÖT$tÑf27MÅcÁã¾W® 1€f1ƒ%{A/%èZ9ÑtÞhxî½=ñœpMóérs:™’á9±:•T7ˆ*{V¡¦Ê ©°ˆÈ%̥ﺟlv£ß§UD¿˜•HWr1çécîçö äòplŠÒzÒf¯ .5ÊdÒöÑF7T¨¼°¯”ajˆé´-¬¶ÁüÁŠw€ß˜ú\Û=çB§’å„Úð›È@WÝÏs^¶¶è‰`t¹BEÎ}’ClÈ{éaªy.\WÂnµ…*ß$*Žè)2jÄþ»Ãa|U0=4æÈéÙH=˜ MH™qQ2¥ØŽXaÃÚŒú{Dâ~À-Z`z°ði¾Yü¾<¨ -¡¸ˆ1tƒVG—~éçOŠè³æËFÍ]`É¢æÆ­7źŽèÏFá6øWµîŸý'¹†(GnÿW½¾Bü¦`4ãvùŽ`Øë+Ö©`ö¹‚G'©lТ—Æ5€]Ë¿ôúM½øho{e P -ÁÃÞø®ÀyeΛ~ñÅØ»7 Š·a•y¸ûtG¿5æ öRúɤíq/äx“ÃÉzzË«Ïù†´Œ±m¯æX£øõ|ÊÇ~Þ^ý~õ"Û¸endstream -endobj -1654 0 obj<>/XObject<<>>>>>>endobj -1655 0 obj<>stream -x…V]sÚF}÷¯¸ÃKœ™XA€1îLLZfŒM<ž´éÃ"­`cI«î®ô×÷Ü•äÄÄMÆÒÞ¯sϹwÿ9 ©Ÿ.4SœŸôƒ>_Œƒ1&ø<ÀŸ‘”6/úa0:~ñ!:yÿñ’ ŠRøOBŠ‚Ÿ~Ÿ¢ø4œ“€V™®iš)Y8û6ú‹…8Ègƒ „‹’Ó»BR)Õm…EØR'r[áÈJçT±Á2ÚéXgä4MïîgË›‡W†tsu»¸ºÐFì$ JŒÈ…S1GF¼p 8ž-%¼«îv2Gjôù45:§°ÿôÞ²óðœ?}~´–ƒ1ê‡åœlëØ5¹m•¥åô…ýp2¶ûpLkaeòù-Õè ûÄ©§ÚP®ñ=N4‰"åźÊŠ·²è«gAVå*æÕ¬›µR ­ÏðôŒÄ#jú• -Ý#Q$ÔËÅžö¹rx6è&½w¤ -ëø NW›cd»‚;¨n4 -é51¬úWö(W›­#‘YM[™•Þî[:œ G dàÁe˃xÿOÏ•ÌŸ!Áèe¹¶£KI%¹3žÂÚZ]ìv*—=Ø.S°N´4"FûEF½²³ÉäNf½#lk•e!n,è“iÐ']µòÅÊB¬3d6ö>N)6‡ÒõH—N¾ªðoâI¦*“?D%ì­2ÈUBrN¯ë#u²@> oÁZdS ¾ƒ5²Vhb/µ€"ä×|fnƒr/ò‰?ª"ѵõœ|ÔæictU‚éìîíÃrˆª@ö²†¡µhºdÁâI.Š¸)“õܪd%%teº 7é„Ê,Ø^P) ZSçï@þ- v+šjª¶!«Ÿq~L7-Àž<ß(‰<Îo¯ïWó?gžóx²šý¶˜ÝFþƒä}£›Âl$7œ ôê\1­ í¸Ï<‚tÎJ3~ÞYª+ÈëÅxº–©¨2wï„;*üµX!¥¿¡S0Q!<Ôt„ôêÓ*š-‚ù휘6ï@Ù×¾û˜Òµ“ÌɵÚtDåÉŃ#ÑÅGO&m½=t -îš±8® ôõb Ç’j·¥ïÓmŸÓF:Ê«xÛ5ûœ¨V°í Ü‰ šü|Ž‡“ÑQEàŠÇÛ`†Ò*6/|9âEqðš#ŒcÓ”k¡`ÎÈ+„EXfØìÏã(.Ä]|] d£KF^PŠæ#7|öƒ`5¯¿<Ô€|^~íœ'Œ^c (‘¥,’vj0½¼¶ tYöÎs“Éì¥äðPüžÖzÏçZ†6l×,øj©B™*žŽ›º×hªã­@‚—&H ¢:L>žƒÈ¡V%^Äü”÷BÌ|nFª3@Íob]ÄYeARûK‹jÇ¡9¶†À„äØÈUÈ=nLV\]×A®b£-¦F€<‚°ñ V%6NyvpVÇO§øÏUNeÊ)y¬ïz«@ÄvSÿH±S]¤jSak´.ÏyJÍ— ÃFYgž7¥ßﬦünæÄTY¾8 ­Ü0³L&G[D«ålví!h2„j4†JêÅM…„.#p®ð·F·Ôtö¹Ô¦¿ÈS"5R‚Fb‡ÉÆ;8 -Ü]…š˜¾®víWÝ×qÜÜ7|lßH\ðžGóBì‘>ÝËZc÷g¸á¾–œ†ñw|}¾'Ýc¶¾vÒ8> -§W•Ó×ÊÆ^ÄøÀU¼ˆ0|ÕìCü®3y-_¬^³}oaãS¤é†;9óKÙ÷鹞óŸØœÑïwË /rou{=§©À-V¸ùPÿÅù‹æüû“öZŽpsž i|> -&ŒëêjñኖFñÕé¸â¹[©öûö,㺠ƒ³‹þ¥ïë÷æÑxŒÏm«!'1‹Nþ8ù>³endstream -endobj -1656 0 obj<>/XObject<<>>>>>>endobj -1657 0 obj<>stream +oƒv„ª«ElùáfÊ1tPÚ·ª+4ŸpßÜÅý7•É@“‰^ýÀ}Fé>²Ž}Ú¯LºÿN€ÍB¬1–Ò¢biü§ÚŸB¡Þ 6YÈêý†ïW7ÙÕeÛ]žóUïV'œüŽB)“endstream +endobj +1679 0 obj<>/XObject<<>>>>>>endobj +1680 0 obj<>stream +xV]Oã8}çW\ñÄHÚÂæafØ¡ÝÙ¥ÒìJ#­œÄI<$vÇvÚíþú=÷:-%°B@ÕÄö¹çœ{®¿Li‚Ÿ)]ÌèlNEw0É&t>›ds:¿¼Àç~½¦JLç¯<ø°88½~G³ -*ì5¿¸¤EIØg‚oŠ£«F-£ö4}—уêrEKí+ç;e M&„^‡7‹o²Çô"íqrvžÍ°ËM3ºrÝRyœÞ<§étxsv¨xsÑèaû ý +çõAZ\}¦è(ªöQþ㥢5ÚÆŒMÈT´q=)TýÆØšß +¸*2q‹4ÐZ·­¼×·%ãÐÉô,¡ôZµí† +‰µ‘wYzW{ÕŠŠŒ4Õi~]áZ¡©s!‚bUì¡VÊ´*o奴\QeðMôʆJûÑé»ý¹X®¤ŠKÂeNôÂA®‚.éáÓÇìdóyvÎìÝ&ÖÊ +ö¨IÕÊXü®Ó±anZó¨IÑÝ‚·ÿR}©‡Ý¸2+ô¬ xjÔ +`•&H% ‡ò> +gGèµø3(Ã{ 鞟­ ¸c•:µIBä|2 …c -x+Mf ìŽ\úzú¢!èNÇ\÷æëp2Ö.‰&Þ’@aÿ•jM9féF[íå8†“¬il™4~æî@ÁtÒ¸`M`¯Ö;),µ.3ºÅ⪭Ýè{o"ˆ1•ÃW• +ÜKÜÒÝõÃ1©6bmÝà+Ên¨ãªK½Ô¶ äD0ºÁÂn\ÐƒÆ +Õâ`·„ÁD¸ÒYHñÔq`#®5ôMåAºs+ôÃ1#'{·@V¬B¼ÒÛ£ +†Æ‡Yî&;&cIlÊ}¢ií|@oÞRèÁN3ò‹¦®Ù•*"Ì:Y¤gžáÏ´ÇP¥˜ G§7Ê—kî.¡ô¥îË’IâsVȇPH\…ŒnðŠJ:‚a}:yЬÐ>¢O r>>IÔÑDìÂeŠÜ´†ßŸ¡ " +'è~úIW"ýfMW<êHnÍ ×Æ¿dû.‡M\rö£L˜°€yjNä¼AÛ 4ïÇ2Vª½à"•ûDªp1¶Õd¾vp"N‚™q£DlEi˜ %²6²Xš“û¡þc6È|)oèò¬p¶’¬| ÑásH‡8¿`J™&>c·Îï¹)T­ÑG¡ðV¥Æ¡uy8ˆ)IŒ²†¶2“žM®ݧD°1”T-ƒæ%IÞÔM’§S’´pþ.Ù0,q<‚Ços‚豘½~Ú³£µwˆFˆ<’ªÔ˜'¥Œ§|CßzŽø i‘æPá¼g/°,ÄK’()L8\·qÒº Y$ƒóã +_ÈÏNúãîþÇ?¿ÿÛ—Ùæ”7bÚòtH_Ô̶ýÎTÚF;àQÈãrTÙ€ûIÙÍ6ͼ^:ÏbÁòª,™ó‘è‡}d‡Tº“7áã¼OôèHiäg‰’D!Gé?—­²">‚L25Z/)- ×úÉÞWÉt<½ýL!ªâ‘I +- gÆ"øJÜS,éýÕOÿgýÊeó—ôíéõ?\œR¶Ð¡ÍoÁ0h´ +—ŠŠgú£\VÂéÚcJájÄ6(ðì b<5–ê\ÏÞÁj_L5-å W4æ¨æÒЙ|or!`¬=Œj9½ð@Pï>ý&m‰ï¹”ãCߌ;S¹ÞNÑ47UÛ‹÷Ò â.×5.@è'D8ÌÃrqzøPú¨A¡g4R Í´uãøê •w¯Ygàj/Édd2?{¸1ù"òn²±%{ÀÁ׫6F”³Û¸þÑÁ‚‡”†=½¾|ºE¿§[ôÿ½¬ŸÏ/³ùÛ®û|IŸñI¿ü ç& Mendstream +endobj +1681 0 obj<>/XObject<<>>>>>>endobj +1682 0 obj<>stream +xµVMoã6½çW |i²°µþ”C ÚèvÛÆ@Q J¢,n$R+RqÔ_ß7¤ìudoz(Š$@ ‰3oÞ¼yœ¯W3šâgFë9-bJ««i4¥x6æ´Ü¬ñÿ¤Ü¿XÎo£å¥‹Õòò‰Ù&ŽâK'V›óç÷Û«÷–4›Ñ6ªx³¦mF@4Ò6½ÞÊ’y–M)êZéíMód)‘ÖѾš\!ÉÖRfø,§LÙ':#-I"M¥µ$PŽU•*E3¦B‡7ZðTmZЮ‘ÂÉD@a¥‰úó¤!Æð2™‹¶tô,ÊÖŸŸÅ‹ÍrLI‹g§ ^jÙ¨Jj'œ28¹PÔ˜qÞN:rÁ´RxÀ•›Ú©J”!ôx€ŸyPŽ—êI–CE óô8{UòqPá ÂW ¨ã¬¶³NVàNw{ÑEt×ÀÝ xµ‚vº6JƒAk/$÷±SÑZ 7-£eiRÐF•¬ r¶ZKnhTÙyîÞ¸¥4Àb˜,–Å$Ñ'ñB/•òm:ÕÌd¾†®@ö#ëDãÚÚW™– +\z9XÙ0j-wÆ)Î/hT‰Uµ¹Fh‹°#(äo9†¬Ú[B-Îú8ü˜»¯¥hÀj ‡O÷ƒzSSU ÜFôJM¡ Ë Ù‡<>ŒoÁƒ¨AžoˆZË¢äŒÌJ?ÒÈ·bPzÐVI”Gô«AA}oÑüž¥z@ÆPmyr†(xJj©Í+ØìÌÅQGïÅïB-!JD[ÔÐs¨½A—Õ3Ï Ž åÆ@‰„¥y<òõÏ© £MÛpqàÛ3¶î0køÊôM:'-=^ŸpòxJ ÃQkUðeYS`ÐEG˜ÉÜ4û^¹‚ĚŠ–ì½” kå@DÓy£á¹÷öÄsÂi4ͧËÍédH†çÄJèTRÝ ªìY…š*ƒ¦Â""—t0—¾ë~²ÙŒ~sœVýbvT"]ÉÅ\œ§¹ŸÛƒËð)JkèI›½&¸Ô(“IÛG=ÞP¡vð¾R†©} ¦Ó¶°Úó+Þ~cêsm÷œ J–jÃo"E\u?ÏyÙÚ¢'‚Ñå +m9÷I + ±A 磊©æ¹Ldp] »Õª|“¨8¢?¤È¨ûïò´¢®ÿOlŸ•QgÒª– ™‘ß{¶²2Siö“v¤Ó.`÷AŽçÙsûJAÝ@sia ƒ°<±¶­kÓÀì1Å…Ù³Š"ï|aÂ*ñšAϯñ²\D ’XܘŠD²n¥aFÉ0u¯¹ â ÓãÅýƒÃ]¦3ôæ„% ìh/a¦<ð"u-f·\´ ƒ'" `Ž@æ‡ +Bâcß¾ø ‡ñUÁôИ#§g#õ`‚6!YdÆEÉ”:`;b… k3êï‰û·huêÁFÀ§ùfñûFDð *„â"ÆÐ ZM ]tPø¥#œ?)6¢Ïš/k5w%‹˜¶Þë:¢?…Ûà_Õº?|öŸä¢¹ý_õú +ñ›‚ÐŒÛå;‚}`¯¯`X§‚Ùç +Z¤²A‹^v×v-ÿv Óê7ö⣽í•-X@){ã»jç•9oúÅwcïÞ,(^܆UæáîÓýýÖ˜/ØKé'“¶Ç½ãM&ëé-¯>çÒ2ƶ½šcâ×ó%ûy{õûÕ?¸ÛÁendstream +endobj +1683 0 obj<>/XObject<<>>>>>>endobj +1684 0 obj<>stream +x…V]sÚF}÷¯¸ÃKœ™XA€1îLLZfŒM<ž´éÃ"­`cI«î®ô×÷Ü•äÄÄMÆÒÞ¯sϹwÿ9 ©Ÿ.4SœŸôƒ>_Œƒ1&ø<ÀŸ‘”6/úa0:~ñ!:yÿñ’ ŠRøOBŠ‚Ÿ~Ÿ¢ø4¼ &­2]Ó4S²pömô# +q-Î%§w…¤R« Ú +‹°¥6N&ä¶Â‘•Î©bƒ/8d´Ó±ÎÈišÞÝÏ–7+2¯ .èæêvqu; ØI”‘ §bŽŒxá0p<[JxW9ÜídŽÔèóijtNaÿé½eçá9úü6h-cÔË9Ù +Ö±krÛ*KËé ûádl÷á˜ÖÂÊäó[ª%Ðö‰SOµ¡\ã{"œhEÊŠu•%oeÐWÏ‚¬ÊU&Ì«Y76k ¤Zžáé‰FÔô+ºG¢H¨—‹=ísåðlÐMzïHÖñA"®(6ÇÈvwPÝhÒjbXõ¯ìQ®6[G"³š¶2+½Ý·t8ŽÈÀƒË–7ñþŸž+™?C‚ÑËrm9F-–’Jrg< „µµ6ºØ#ìT.z°]¦`„iiDŒö‹Œzeg“ÉÌzGØÖ*Ë:B ÜXÐ'Ó. Oºjå‹•…XgÈlì=|œRl¥ë‘.}Uáß,Ä“LU&ˆJØZe« +„äœ^×Gêd|Þ‚µÈ §|jd­4ÐÄ^jEȯùÌÜÿä^ä%TE¢kë9ù¨ÍÓÆèªÓÙÝ(Ú‡åUìe 1BkÑtÉ‚Å“\qS&ë¹UÉJJ:èÊt$:n&Ò •Y°½ R´¦Ïßü[ìV +4ÕT9l!CV?ãü˜>nZ€=y¾Q2yœß^ß=®æÎ<çñd5ûm1»ü#ÉûF7…ÙHn28AèÕ +¸bZÚqŸy霔fü¼³TW׋ñt-SQeî>Þ5wTøk±BJC§`"¢Bx¨ééÕ§U4[óÛ91mÞ²¯}ö1¥7j'™“kµéˆÊ“‹G¢‹7Žž +LÚz{èÜ5cq ]è?êÅŽ%ÕnKߧÛ>§t”Wñ¶kö78Q­`ÛA¹4ùù4'££ŠÀ·Á ¥;Tl^ørÄ‹âà5GǦ)×BÁœ‘W"‹ +°Ì°ÙŸ7ÆQ\ˆ»øº@:É$F—Œ¼ ÍGnø<ì-Áj^~x¨ù$¼üÚ9O½Æ@8P"KY$íÔ`zylAè³ìç&“ÙJÉá¡ø=­õžÏµ mØ®=XðÕR…2U<7u ®ÑTÇ[#€/M@6Du˜|<‘C;¬J¼ˆù)ï…˜ùÜŒTg€šßĺˆ³Ê‚¤ö—ÕŽCsl É<°‘«2{ܘ¬¸º®ƒ\ÅF[Lxa;â +¬Jl>œòìᬎŸNñŸ3ªœÊ”SòXßõVˆí¦þ‘b§ºHÕ¦ÂÖh\žó”š/A†²Î>/XObject<<>>>>>>endobj +1686 0 obj<>stream xmUMSÛH½ûWôžBjc1ú°lrƒ[®]¶¼…9ä2–F–@šQfF8üû}=’XÖ‰)(ªi=½÷úuó}“ÀWLë„ÒœŠn!"AYGÊ6küžàÛ*ª7ûÅå}FqLû ä›5íKB»´/.¶äm£Jzi¬dÛ¾~©È׊¯:GÒ¾1MåÒIê2ŒÆsè SÝ5u²T$©lªJY¥ EÞåãþi!h§Q 'éÂÃÎÏÊ“éù%.¢­'?X~”¦Äs‘ÛÆQÁà¡åˆXýÁ¿ÄÀµkJe}œÅL çªáä ¡GÙ$5í 5zA…³þßÎ ÂÖu£Õ/2ÍÃúÙ8[Æ8ðLè`Íp¬=šÂF½)ä89ª,&ú4°zÎp,F±ÌÎtj}ˆÖs^¤kÒê4Ï´%íÒ4eµZ>\ ‰"Ð8œ˜À¦¿õÄÂ×@:á(Ðјòó™_Ù ±˜ØaP}Øò’r!~Dí¨ü9Ñ¿Œyf?¥'ç±rLä~¿ƒÁ |úÏ|I‡}­ lãìÅÐcF¥ã}Ü’úÞp`j&  „0M'Ñ…éöÖxS˜÷Ü› -† 8à¦c€šã4õÊV¦“|)O¡ý èû€ëËŠŽÇ­iõ7Ó%s\ùMJÉz:|×7×´³æ ã¡ÛéDãÍ6/ç–kãQ^Ä›hÑ#œ /ãÙã¶,ßDù*Á? -nI®Ýíÿ,þôð‚endstream -endobj -1658 0 obj<>/XObject<>>>>>endobj -1659 0 obj<>stream -x¥W]sÛ6|÷¯¸ñ‹”‹)YyKe;ñ$‘„™N§î‚j’PH0²þ}÷Ò’Ùf&mÇc›ÜíÞÞüí,¤¾BšE4ž’ÌÏFÁˆÆ‹IÑd>Ãs„ïRQzöÂ>uËùa< æE üĶámxIW†>¹a0ëîÿ%>Þ,(Qœâ”élNqB7Â'²¿ÜŠU%…‹€–¥Vz[šzG÷¥É´<ÐÎTõ*þÓÎü9ƒ1ç'}l úU‰ÙWÔ[<ù• -Ãfe4 ¦¼ò7SS¡TBv«xÃbÞòq®mMIÖP¥lûª4)‡'äS =‰Э%) -Zƒ(ƒ×d ->œ3Ñ û ïJ½Ñ…È(­³Œv¥Iji›tQY‘e€­Ë«&†‡€ú8}kLV KU=j;,”I®‹áÎd -¿„Ûˆa6Çv±[ 3̼I’ág•›ïŠ©Þ”"¯(RgÚH $QƒÇõÞ ¬¾ÒÕc¬XM€hL˜á¯•r'7õëÒ*¹¾Š!u.,3‹õÂRµSR§:`¯Œ¬sUØF9­ú¤¬ ¨²ušz®ÊŠqá P|a‘ªËQ¢DÐM'äÒ©Þ÷wü‹c‡‰¥<†Õ±Ë„ĺè$É@Jc,)?ÿ¾ºŽ?ܽ½[ýAÕV” - -Ké`j';èõ“.j]²Ž ¨Ú 6xàÝ_D¾èÆ\èâ‚´¥½Î²NDQ[¼·š!Ðá‚ËŒcN.z½K¸H|÷ÈÓð#RT]ÙòЦ™ ¹ÕES;lFP8gÒUÄ(ÞaÃ*—üwÅ™ƒÚ6Àœ>« -¥¢÷H9iÊæÐ=Í“5T€3ü—ý^.øÄ‚¨2ˆjñç3¦‚äVAËYVmJzÃü3DæàxC÷Á°Ñöª£DÒÒäî¼µx„4»¿‰,ÝæŠÛH»cZ “½S…T\ëNÁ\âFJQÁ"\Ñ€]ƒ-g•Ê­(ùœK‚á™ÖrZ1w™Œ±(5Yfö\7‹§ªtzmn£Ñè©í>Ê5<ÂÕÀñX®‘Ѷ0`å½U€œÀ:n$É«;x@A»‹ú«¸í"“=¼BJ%­â‰‹ëRæÑqjùÎf`ùÑÑòW1M8Æð¦m@xoëù_ iëùd^"/å¦ñž… ÌÄaRscH²ËÛ;È—× úV³/nj¨×ctÐúà]á›–OôíH€i1Ï2U^Š³Åàhµ÷ñ€×ù®Æì52®Tö\-á³”‰µrԃŖFaÞÎ{ c²™LêÚ)ôMgƒµ<¹÷ÏIñ!Å Ëe´R1`àh‘çìµua£(ˆF¡#~>vƒù–D~2m.§s¯!u˨€ñà-˜g¨ëŒ†Ã=‹ _: ›uÇýíܧ߻f0…êy¶°¹3Úó— éüÚ¶Ð-]1%zÏ¿y±¿9¸Îa„¢ñiI•óÜÄy.¯gc”«|¹oœ÷àä6`˺²è6?ó«­ÞÁnìö(˜û«e·c\—p˜Î‚‰çö‡ÅœãÞ6½äY¼tòbȽ%›Rlz´®­m>/XObject<>>>>>endobj -1661 0 obj<>stream -x¥W]oÚJ}ϯõ…T Ò7š¤·(!I½¹•,U‹Y`Ûëz×¥üûžÙµ á6·º­¢¦Þ3çÌ _:ÔÆO‡!uû§Gí Mýv?èSo8Àsˆ…¤¥{qÚ=ÅŸ?yÑëwƒÞÏ^„ggÿ~ñ•:ƒ ôžù¡;†4 ñ„NÆSºÐôáèíìèäÝuz4[âpˆ‡!Àv›fñqç,ƒN@Sµ4Ýh+ÍëÙÜêQ§ãoµÂnÒ%™µ.“é¹*#»–4_^ÒV—¸=ëÑB§xŸŽEF¥‘dÒy.ŒÙ,ÈjÀ=eº—ÀDŠc¹XÉ€·©ö‘/>(»¦©Hç¢Õ T‘äkA±F°ðçÌ«4×…Å›Ä}ô‰8Öef "PÙÊ9ʤ%#R³ÍbJ¥]ëEí²Órp9Cd´ÛýBºL]zy¡—*A:ÒZ˜4$pVÂ3þ¯(8ßÂ8³ûÀ·ºŸ“C< h"²…°ºØReõ%ÔgHÌõ7Àä"vYÏ%ûqpÆ…Öax`!ÐL°ì›dhUè2¯=’ÊPÁðû«ü5»tq²¥DÇìˆ v3ûˆ,ƒ‹ÑŒ b+U߃YÐ>©$e¹òÕµÉèæøtJ‘1CÈïò>22á•ó'Q: 01–ôŸkfßÐs³¯E¶’Æ¥dd\Ên™Ëb—²Ðé*:sØœÈ4à(2ÓÐo­â^%>ê}5qeq¢q±szäàÙ½ÿ.½€þ…!¹ ©E9gV-·Î+t¾­d€ûø›Q%NÎxPÙ‚#¿™ÑT  -õ ¶ûÉ+ek™<)swƒ¹Â‘Y’ìðSÙR©°¨ Øæœr¥ŒïËlO ÄR3r,ÒG¹}s€÷û«ËOŸ¯oÏGן'£ó÷ã›Ë(šÞ¾›=Œîñ4Qq¡^Ú(zÊ"ŠÎË̳CŠpEw^¹×ð\™¯3ù¸‹bï ÇÑäÐе7 -‡ÞL9ǧÆlOÑš8v€i˜3uAÑÖă^½ZAHõå–wY¬Ó¼´LŸèx¦¡$è…ÍÔúÙ0î\°4U‡4t‹x½§:nŒ‘9Á1÷›Îðë*r ¿o¶Îi#¥U TD¯iœžU®"G˜y¡¸%0‘¦B¨éZ§CÍH´.£@iø&’RVXVÀSŒ€;a×O"ÀØá©ÕêövÍ­¡.tˆ!vòÏ[>˜V˜¼Õ¼JKc@ßu܇ØI@x(w¸£Z¢Vn] ."J3™î¼otñh¬§¶8,­g´q\ÆN°›h×zÅ|@[bkŽÕôÌÐ"U˃GC…C\Íá&<¯È, -ûzž·{Ùª[÷½Z­‘q¢âGÇ?8kL¶t^1®Ac ÑÄ Kdl© -äJš†·ú;>ÏŸyãAUeMƒ¬˜ÿ¾å©s¿pŽåÊ@ƒOã-:Þ%ŒÞ¯³XF¯ßé³t極¨[ã\ç[LÔ?@iì‰ôêN©²ÖÏpèÍõ÷æAÉÎÝ€jwÿ|x–LãZëG´ãW$°;€‰ÂRÒyR¦h' -3ŽS­Ff~rÕuà:yƒ3Xïr r 2­ÙçiÅ=9ô̹_¹l›µŠ}­EæÄŠV‹éÉó|žø0ÄVÛî@Dàx×mi<æ\™ô¢Õ2ÏÏn<{ÏÄbý˺\½Aÿr¢ñ3&½ðêÜ {2¾¸ÝÏÞGQ¡µmb%Åʪ‹ÅJ·õóa ºXK±&Ÿö‚Їö¢4ûÃ`Ø?u;¦ÆÊõè7©:õXäùrwKž„ Ä‚§¶È¶¼qÔJ½Ätæþ€¾·W¼µ`~9mUµò Æ ÆËa¢ÿ£ùÜèÍok;½úu_ÎÕn£û;¶e}£Åïç'ïþ» «Ùéã³.õ½ëéhòvÄ}è ×üBÇeŠ½ÀumÇÚN_І]j Úg\›—¿õPÀþ)ãâca¯_ÎŽ>ýqsAendstream -endobj -1662 0 obj<>/XObject<>>>>>endobj -1663 0 obj<>stream +† 8à¦c€šã4õÊV¦“|)O¡ý èû€ëËŠŽÇ­iõ7Ó%s\ùMJÉz:|×7×´³æ ã¡ÛéDãÍ6/ç–kãQ^ÄWÑ&¢G8A_ƳÇmY¾‰òU‚Ü’ä\»Û/þYü ôfð‡endstream +endobj +1687 0 obj<>/XObject<>>>>>endobj +1688 0 obj<>stream +x¥W]sÛ6|÷¯¸ñ‹”‹)YyKe;ñ$‘„™N§î‚j’PH0²þ}÷Ò’Ùf&mÇc›ÜíÞÞüí,¤¾BšE4ž’ÌÏFÁˆÆ‹IÑd>Ãs„ïRQzöÂ>uËùa< æE üĶámxIW†>¹a0ëîÿ%>Þ,(Qœâ”élNqB7Â'²¿ÜŠU%Þ´,•°ºØÐÛÒÔ;º/M¦ånt¦ªWñŸîœpæÏŒ9×8éccЯºH̾¢ÞâɯœP6+£Y0å•¿™š +¥²[Åó6shkJ²†*eÛW¥I9ýÞ5û€)Tϳí„Íўϸ\HçÖ´…néŠy,¡Ð{þÍ‹ýÍÁÀu.# ˆOKªœç&Îsy=“ \åkÌ-x‹à¼'·[Ö•E·ù™_mõvc·GÁÜ_-»…㺄»ÀtL<·?,æ÷¶é%Ï⥓Cî-Ù”bÓ£ummãÑÛ—2Áe,éÿðØ–•[ïÛkót"Iw|#BÔ­G"I<œBíi'ìö‚Ôæuw|Ê×V廇‡Ô˜µpªþoYy¨0Fë1ž¦Ç 43çüBÔÖúù‰ëÅ9N—q×?ÇÉ‹èNªt¢>î¤ÕÞ£îÞó¼•h€æºÓ“[<;Ý¢Dÿ+—•Ù7‰@¬¼Ÿ%t̓pqt°7¡bÍ7Dvf?[O;¨mŠ¦­›óãÝ;EÁåØ ò_Üô'Óy0½äÿ: Ê0š1”ëøìÓÙ_¨Áã­endstream +endobj +1689 0 obj<>/XObject<>>>>>endobj +1690 0 obj<>stream +x¥W]oÚJ}ϯõ…T Ò7š¤·(!Iƒ{s+!U‹Y`Ûëz×¥üûžÙµ á6·º­¢¦Þ3çÌ _:ÔÆO‡!uû§Gí Mýv?èSo8Àsˆ…¤¥{qÚ=ÅŸ?yÑëwƒÞÏ^„ggÿ~ñ•:ƒ ôžù¡;†4 ñ„NÆSºÐôáèmttòîŒ:=Š–8ÜâaA°Ý¦(>ÛAtšª…¤¹(èF[i^G_p«GŽ¿Õ +¸uüI—dÖºL¤çV¨ŒìZÒt|AzI[]âvÔ£…Nñ* >‹ŒJ#ɤó\³YÕ8€{Êt/>€‰Çr±’;nS+ì#_8|PvMS‘ÎE«0¨"Éׂb`áÏ™Wi® ‹7‰ûè)q¬ËÌD ²•s”IKF¤f›Å”J»Ö‹Úe§ äà2Bd´ÛýBºL]zy¡—*A:ÒZ˜4$pVÂ3þ¯(8ßÂ8³ûÀ·ºŸ“C< h"²…°ºØReõ%Ô#$æú`r»¬ç’ý88ãB +ë0<°‡Œ(Ò,û&$ZºÌk¤2”C0üþjÅ.]`œl)Ñ1;â‚ÝD‘ep1ŠÈRQ!Ö¹BPõ=˜í3‘JR–+_]›Œn~O7 3”ü._à##ó^9Ò¥3‘À¡cIð¹Faö =7KñZd+i\JFÆe¡ì–¹,v),  ¢3‡}Á ‰LŽ 3m@½ñÖ*îUbà£ÞWW'—;§GžÝû_àÒ è/P’{’ZtsfÕrëü°BçÛJ¸¿UâäÜ•-8ò›ˆ¦²U¨±Ý×H^)[ËäI™»|ԀȎ̒d‡ŸÊ–ºH…EmÀ6ç¬+e,x_f xb –š‘c‘>Ê훼ß_]~ú|}{>ºþ<¿ß\ÎfÓÛwÑÃèOÚè¥Íž²˜ÍÎË̳CŠp=›Ýyå^Ãse¾Îäã.Š½3G“CC×Þ(z3åŸW°>EkâئaÎÔEGXkzMôj9 uÔ—[ÞAf±NóÒ2}fÇ‘†’ 6Sëg<À¸sÁÐTÒÐe,âõžê¸1nDæÇÜo:î«Èü¾Ù:§=Ž”V%PE0{MãÌð”¨r9ÂÌ Å-‰Ü0BM×:jF¢uJ{À7‘”²Â²~œbÜ »~ÆO­V··kžh u¡C ±“îØòÁ´Âä­æUZ +ü®»à>ÄNÂC¹ÃÕµrëZpQšÉtç}£‹Gc=µÅai=£ã2v‚ÝD»Ö+æÚ[s¬¦g†©ÊX<*âj·0áyÕ@f³°? çy»—­ºuß«Õ'*~tüƒ³ÆdKçã4M ²DÆ–¨@Ž¡¤ix«¿ãóü™7TUÖ4ÈŠùï[žú0÷ çX® 4ø4ÞfÇ»„ÑûuËÙëßwú,yi-êÖ8×ùõP{"½º“Eª¬õ3zEsý½yP²s7 äÝÿž%Ó¸Öúíø ì`¢°”€tž”)ډŒãÁÔD«‘™ß…\u]G¸NÞà Ö»œƒÜ‚LköyZqÏGN=sî×C.Ûf­bßCk‘9±¢Õbzò<Ÿ'~# ±Õ¶;8Þu[9B&=€hµÌsųÏÞ3q€Xÿò€.Woпœè@üŒI/¼:÷žŒ/.G÷ÑûÙ¬ÐÚ6±’beÕÅâ ¥Ûúù°]¬¥X“O{AèC{Qšýa0쟺Scåzô›Tz,r|¹»Î%OBPbÁS[d[Þ8j¥^b:óÀ@_ŽÛ+ÞZ0¿œ¶ªZyPããå0ÑÿÑ|nôæ€Ç·5‡^ýƺ/çj7ÈÑýÛ2>ˆÑâ÷ó“wÿ݆U‡ìtñY—úƒ^õt4y;â>ô…k~¡ã2Å^ຶcm§/hÃ.µí3®ÍË_ˆz(`ÿ”¿qáX'òõËèèÃÑÐc@×endstream +endobj +1691 0 obj<>/XObject<>>>>>endobj +1692 0 obj<>stream x­VÛNãH}ÏW”ò² ;Wæen+4à C2Ú])/݉{°»=î6™üýžjÛ"d™"+@ vwÝΩ:õ£R?!M"Œ)Î;?(œQý”¿„Á”Æ£AÐç—§7áˆ. }}ýXØF/õq/<N'øᯔ´êœ/:§×C CZ¬àl<Ð"!ï÷i]-úÛT¤Í†Rñ$IPQš•Ê$¹T8Š…¦I2QÎÉ„*«ôo$Y‘?ˆ†«æ†%gL/¾w¢(ˆú!õ¢I0DðyôM'²¤Ï‹Ó裿_YIfE¹Ð‰q¦Ü>Y™2–°'Í¡Û9]ýŒS¡×ð‹ÃŸþ®Ê(Nx—}ê…T¾ù£”…¥DÚGgŠgë•™ô7€DoÃñ¨¾¤,áW•qU*·¥8•ñ#i¹Abô§B¤KÝÑòÈ”ˆ|‹Âmw_YY>©XR!p3\t㸠;Ñ5%M”$¡'%àt]š ašLÅ[Ršf±S€ãR•2æú´@AÚ÷öCc4CŽ¾{aò¢r(ñ…Ñ+µ®Já”ÑËå,É•VÖñÿ°·y‘ 'ír9ßZ'óåòb¦»t<ï´ð>w`Á ”{)˜–¥MUÁ0ÜëÖ]› PÛ.ßé!ï6Ä 6)G65U–0¯¬t\Ûî•fT’nÚ7ØsÙŸ`Y°Ï·†¢ÿ®Î^|B‹Ì¬+ù;Ýà¦9a2iÚ‚ç@ý²7vìý?×Õ¥@a⸲ž"»ñÃ[|\¾¹ƒ™BÔ@ÍGùfw™‰Eþ C)ât/‰÷gãx#´/–C³p€›ÄøVY™,3Æayô98Ç-JŒþ }À­Í8Ú -#Á75ߦʲ¢¶q6¦|ä4š—´A¹÷Dbr;o—Çž„§×q3_zhöÂá¨îÂe4ž{xž@þ@/MkÒ~©=¡£Ø±už²ä8†r)aúìIˆ86•vœ}ÏiÉѯ½6Ãáöøºs'J×=¡î}¥=Wßgn±-$¬åy|€‘6¦/02£[—Æš•£[tÀZæŒÁ<°lošN…åáõ»†D x³$9½—¹Áh™kQô”F›sUñâ€\.M…íµuùÃÇ;?°Úš»æ‰˜r”™±ò°xp7u`„×HÝãºà?ëÍ«-ö6¢_ý,0oÁÍOÂo¬•þ'¸³a%I±z@’êðË )ˬ_Fë/ÁõZmZÕúåÈo7{ù€–zÍÄ>«§”…á8ŸE4ê‡ÁðlÊÂ2ŸÝžÏxÉùÔ°¦ÄW/Yl¹Ž±yOÔ›ôÏø|xDAÐ\%’v_ƒµ‹ÇÓ`<âåŸE#~vµè|íü6*xkendstream -endobj -1664 0 obj<>/XObject<<>>>>>>endobj -1665 0 obj<>stream -xWMoÛF½ûWÌMIáÐ"¥ÈN’4 4M -«‡¹¬È¥¸1¹Ëî.-ëß÷Í,)ÉB↉;3oÞ{3ùç"§9~rº.h±¢²»˜gszý¦È -ZÞ\ãs_¯©–‹ëU¶úѼȳåù÷ë‹«Oo¨˜ÓºFÕõ ­+B€9®”/>4ªÚã~Fwº¼±[ºSÝF½\—7óëôæ«Åù¬«x4ÏèÖF瑱ŒÆÙôè’ò||´¸F†xtݘ@ÖEM;HŨÊFWÅF§0¨­ÈnP]«UÐò0ž d"•ÎFe,^P–L×;•$͸§ÚÆ­¥NÙýYLW©0"[¯UÔ846ü éwÈåb0•¦½<°èteð$YwÎßgô~O•®ÕÐÆ34R;Ó¶¤ÊR÷«M©âhï: »—R.iט²¡N+ Œ$`jŽH~°Ò+ØkzÐ>0¼‡äñYsÒ'¨2!Û=7„ƒIi2$N‰Fo4éÐëÒ /{zZnȦÕÒœ_¬@rpë‹ÕŸa GË°À mŒL¼’ …ÑíŸøÉg~µ­ÛÍPR5]©´ÝÏÈõÌšñ„‰ ¡ÛdH»>–/™íàÑjÓ"‚#g‘´/p‰.M Ú¶q’ -kS’Wv+…Hf½³¤×CÙ6à—þ5‘qNo&y-$mË¡·”CwPv–SóÈW7Öüª€0ǯ ù:2‡îät -C€Cøü\ÍSÔSUš†Ž6îšfR|÷ùýÔ_AQÈ5k]©Z.nFß^nÇÂìúÿöRº rƒ@ghÉ<€ÜSš£¬Gª‡C1…¼y,Þq:8Ä?ÉB²©¼®Á‚êÉ=øLpÌ]¦»¦æ`Ï´­ØŽ ãÁ±^•÷:Šñ¤3U›@ŒNù{¶+´„fð=jMˆÚ²W°¸kU§g¤½wþY›YL6cX"µ*õÿq™£Œ¾ò3ésÙhø+D3Iše1qáx,ÑwJ:.¶ÂœK‚­¢Q`†¢Û»ßþ@õ¬Q¯_¿~=~í|ûßéF°Hó¡÷a2ƒÉóeÐt -åt4bÇYr:;LŒéáÉ9þÆuvš²í‰Wl47l®ƒXûä­¹OÎQ;ö tò50 БŽÍ/Ôº‰Å±mëmŽñ–ö:üTpìaºmÃ4)F›Iä’ñ0ÚªÈ;Idgbƒ0é³ÎG&£\œ!Ã…ŽÂâËü’ÿæ—SÊ£ðúv°BZçú pŒ0±:Ÿ%QH(ÁžýÁêäõìÀ•îELÈPôåNz¤0™õK{œƒ&·¹eÇîÀ:u]‡3$Ǹ(3DU²ÍHº¿;<ž·þ6ͳi¤“y LZ¶F?îBã=õ4&.*óiòÃ'ná8«bÖ÷ý|ƹóhÒûd[L=EëO¤1Ù”×}»ç5 /ð&–£‘¥Ã*VÈ\Æ!<ÜÅÂÎ⺳S:D¾Pg€<8 ׉ TÔ+Œ©SnÌóÿè -Nì{N©CÒÛá´-'ãRl™z‡ô8¯«O§³dÜ?³õÚñ¼ã®_áÌd$ñÚ’æ(Pƒ/ ²rvEå›=ü¡:¬J¸oüäoLM# -;YQÆuCñ>³§­sf¥Õ%…× Û†niç …íœyG{ÀvŠ-˜}¬l}IR9²µƒ’ì3ðª«Îg -«ƒY?nHZ? )iÛÂŽ0¢Æ-æ)„€«2Õ™§ÈFg…ÛWŸnŽk÷r‘&úóKý{Áêuÿ `øçÅŠ{óq}ñçÅ¿ê·Œendstream -endobj -1666 0 obj<>/XObject<<>>>>>>endobj -1667 0 obj<>stream -x…VËnÛ8Ýû+î¢@S –%ůè"M§@ƒÉ îj: š¢-6©!©þû9—”ëG§Ó1èò>Î9÷PÿL -Êñ)hUÒÝ’d;ɳœË¾çkþ.ñëíâƒrYdóëï7“ÙÇ9mvȵ\¯hSòä9mäͧlOI¼ -A›=õ Úi§Ñ4jebˆQª¢`éÙ؆ZÚ<>‘0}ùðDuÁócœÁsþ÷¶±ò9£Ï¢ÝŠ7›o“œ¦Å]V¢üMï‚k4n9UßrÄìcN÷©Ïi9Ç,EòYq·"üL ç÷@¦ÝVÇ”y¶>Å­‡¦‘ïþ2Îÿ˜ãæóÅÇ#:-—\ƒiáY£H{Ò-C"L á©æ@¶©”; ¸ûŽah«H LƒÝ‘·´×/>0ΡF>ÎFrYÓŽ³pŠªJÜ0¤³ÁJÛ6†Tèà „óYBøž -(€¥0½!.ól‘ÑÏä úôôøŠ|Í­TÊÄR—㮲80”ÃåÄÖ¾(jU¨m壎xßë ¶ºå˜¤iû¦‚<¼¥®'©µ,»NI½Ó2VÃt1ëYí¯FŽJÀ„ÜBš²9P¥½D7`x%{§ÃjÛ¨Œ6 a”¦b†Pín:„”ÊGáZ¤rip}ë&ÍP®JŸŽÄ.wζ`'h -êMp½«¹¾ { ^.“¨7–*‹ÞA.o_‚#ýt ˆþÒ|õ÷±•Qô¬ÎTaÜ»wTÜ—Y±\gE±ÈòY‰Í/aø??Ë<Ó;6þÌrŽ¼ä<2u8Dƒ‚5ÄÍNSD$¤5FÉ ­9 !b>"JØ‚ +Úö¬jE‰í¢&®Yþz c-EPüòÚ¾¾Éèñ¬&“zAblÕ^y½ØjT•ÑCòž3A8xhÜ*^´qF "Å .ŠFCßèÊšCk{Ø´§Î¾è -öæm GP/ªá•æ­LØØ mx „|VŽk‹pUòà=Šf+Ø÷œ­šuÂ{ xZÇÒq‘ý¸ÚgòM§ROi;yDC²ÑP*>¢’|FÐëQÖЂVÕk,U‡‘@WÜ1 çð {÷ä1~W]GÛàmƒ°[% ƒˆ¼­\T>Zcˆ´[g„Äóþ6rÍÆÝÔõ†Íä¬>ƒ{U;Qï”*ØékL¢€g. ðm« »fo6€¸†ÂðS†M¬±FSÞ£ÁjM®Ç$DšÞšÿuØ%¶Û;Q±Ë~¿/·ltÖ§é€W­ä3zÝ÷pàÖX‡Ð½Í†aÈ<_«™uûYÔBßU"@u|ñž]=¨7RaV˜ý!¥ðXO¶©+ô¾û¥S±zÚàVT,q¤ |§Õz_£‘søÀ]ÇR£Dň“ÿ¾ôQNluÃnüƒŸ,{Do=¾ªü–³¾£E¹Hï Ÿ~ÿ@OÎ~ÃÑ+{žJ°Ýð,Óãé*Ç;DuóË[m—\.JÜ„ˆ†Kr–ß6“?'ÿúendstream -endobj -1668 0 obj<>/XObject<<>>>>/Annots 1022 0 R>>endobj -1669 0 obj<>stream -x…™ËrÛȆ÷zŠÞ]5†‰ A2›”­ÄcUÅÇ’ÇYx‘ „˜8hÙoŸïœ&Ф*©©Rùçs¿tóçUìfü»EâÒÜ­÷W³hÆ/ãŸO¿]Åi´ty:r·wy%'°s·Wóe4sy’DÜjÅ'¸Ù -½[ÆÑÜå -„3pïâÙ )Å—8ñ•ü)òYXD¥ëEc ~ï+ñHH(jWQjÈSrg©f>Næ’EjÔ`o”Ô' ;ŸMe †]i -ƒ¬Á&™I;Œ¬Å°™–-°Ã.’ÅÀ »’ž2¬Á{—&!‰×bXZËÊZ,ìj¯Å°‹Dò[ ›O}öõÍX :òÈÛ –îž[Ö`XFŸU“ÊŒÝYÆ ÖbXjdY£Úì:6©bƒ1KålCyVX/Ê_½NøGÑÕE—Ö`sQ!žÀ ËÔ,,k0ìJæÄÈJ£¤ìBi*æƒXˆO²™—ÌȨ/:Ôuäxï ¹sáÎHâ5¾§ õµ Nä` ¤FR –)æÏ`Xæ}°¢¬Á°¬o š ¦â¼xÐKõ}ÈÌh2hV¤š=Ëk ß~2Ñ©"e™í‹ÏrÕ0¬Á°Ì -vƒ¬Áâ•æmd5rÂûf’óØ#ïTÀ(Ö›a §D‡a †åesiYƒýè¬ +£3`XnsË «ÇK°k1,‘õáREiSH®+=ѹ2‡cÙ²ï=i±«Ž¬WËíT›QÚ6Q Iä%~€¢V³4’æ2ÔAÔb1*G£a †ÕµdXm¨„*h»e²Œ=ÒÊŒ¬žî†5˜êiX¯™[‘¶*^ Y‘j6Í|˜°£™w3âe-»rÓ2¬Á°Œy ²òÊ(ßÈ꜄k½´¹LˆÇ²‚d¤ç ‹´ž•8€RE"èÉ™ÿX@™ág YЋO U0f½IiXV1Õ ‚Š |‡ ¤ä–ÌkcÉ íÔPé‰ÔyJQbEb2¦ ›Òù†5X§ân5–ß–5v%g|õNñ¨Ã(›/V >Éy§þ¾Îˆœá Ô¯qø>rtî1ȚÑôY[:ZMYj>ñžä½_»šŠeúÈœ¹úq‘¦Õûäɧ1>æi‡ÔåÄÖVn8"v³¿ ‰œ‚ 7p*8•cÿh j@A8• œÊñ:æϱ§ È œÊÎOû鶡öANáßȽ½»zýŽñ¹»-ŸWóÅÒÝmô«*¿¬_Üü¹7‡CYoªe÷òî?Û”Û⸓|7}³nvjæ,5XÒøËjþú—Õò2ÏpfÏÎö{µ.ÝGI_r©•€¥Þ}Ã\ì$Ëݾùðö<8±ÎÉIë­×e×ƸkŽ-Š×ͦtß«Â]ÿqû¬r7uß6›ãº§Ï]ÅÔ éA=¾t²(¢¦õÙ>s„§½#ÒL‚Úy:õ¥í~Ök]4Ûþ AÛh™ß«ÝfÐ𶪋¶ò»|2Ú—¬­¾hûáÑnϱÂjþñLÀ™®ÄAB¶ªË~ÉÞ¹ ž‹ áìhϺ豿H§{kUïÇuS”{Ÿ·W“…ŠgŸÊdž¸ööøp9MêËyò'ñ©ùßʺlÙÞU½mÎ=äÍ_êþøàvå÷rwÑÍü-°°seÛ6í3ÏÈ Ò3šƆµÚëZ /Mui7çL,úõã©*“&@ÝÝXxYÛUÇþOóqaÆ1–çþ ½yáŸá±ÄRæL·Ž„.>÷^äЬ¤m?!Oj]úœ$ UÉì9RB›s!_¿ã¢©· m ýzÄ}âò‚’qËç —è8ÑÅñ÷»«]ýé²endstream -endobj -1670 0 obj<>/XObject<<>>>>/Annots 1030 0 R>>endobj -1671 0 obj<>stream -xm“]OÂ0†ïû+Î¥^Pú±~ìÊ@ã…‰Jã=Ž¡#cCÆŸïi»±š,Ëš¼<çi{ÚñM80|8RCq Œ2üå:¼=Π­¦ À…¤²O5¬Iš‘JNuJ£kµ£Râ4º#®ÊqÆëº!%î@£;Òèfšf£Râ4º#ew«¥Ä®ýºöš¢;f¤™ðý†Ú@£+ðG7¤Äht¯TY”4Óᨌ¥ªÞL".ʹ¿P¦M2R¥þ©~+*78fÖßS ;²td¾Ò8¸¿m ¸m¸{®¸ŠJª)¸òܾu{Â`Æý©¸m„¦‡f -ÚÚ)˜÷0Ÿ‚œõ”³IÌÌ=žáw›n+£°îªº†¯ÍOÕ|Bwj/uy¾óÅó•íö_*³8󇉭Ï˼œÚ}Ytpß—CÙt›®j›° ×xz(Ì Ë}ýÓ;…ÅñX6Ûê·<û’L[ª•Àÿb.BoŽ¼’?fœ½|endstream -endobj -1672 0 obj<>/XObject<<>>>>>>endobj -1673 0 obj<>stream -x}VïoÛ6ýž¿â€}ˆ 8ŠÅv¶O]Ò.ÚÆC,è<´DÙ\$R%©¸þï÷Ž”âDíÚ"€%‘wïÞ½{äד! ðH³§”–'ƒd@ÓÑE2§É|†ß#üYIyø0ž]âñFÓI2ê~ø}urþþ’FZåH2Íi• ð&í]íD奥Ñ0¡¥±^lT¡üáÍê_l›Ðp·æ½Êzw¢ÜÚûèÈhÂO•I²Bo%™œªBøÜØÒѦöäw’”Fø\¤’DQ„7Ç5•5O¼]9ÒÆcÁ^§ÐÙp¦¦¬„W›B&´ÚaeÚ NöBi÷œóÌU2U¹J‘“1`#Ü á((LoIèŒjÇ¿—’ÄJ/i8k*O’ W -FÀÉÍòþá{2fÉ”—Ü,O©²*d)&ä ®®ÚWö@[kê -Ë\Ÿ¤í£P}æ ®yÂ*áÜ>[÷&ÐV¯¥ç–©¿•5FuÐ6M Zmr¼…D?âÁY!sn¥|~y‚<!ÔzÙz$ïîP”¬„†\*4{i4½t8ºþ´øÿÉ?síxF9AвVo£f~ÞÆç Fç†WýáieNÐÊïZ‰5ÍùÑ6hϦUÈÜóx²T¸y×ü|cŽGŽë öÆÊ»õ> ØŽ'c£–Í2™‹º@«e rèR¤ÖЧÛ/ï×íT‡t®é" (Í0Ù5öî2Ý 0€Y☵q8Ð¥bÇÀ=%Ížl¹°Q0tQôc=ìÎ[yžO›½y>¶¬Úî|·Ì•¾½JˆÄ•´°söÛvšà<²dÉ1´Ü°ÑñU7Êk¤Š®Eèš$f&²PJ‰qìԉЖŽ½×á˜Å®c&öñbfª0†¨»1N¾‡PôÜbñר* ×¹£§ô~m×]¶ËæºEÍ¿d[à,!úÒDhpÆ•«}âðH5ïÛí¥y’_ñðËdÖÏÍ/! ƒ¾øɪjØφöüÅ…xï€?¹@O¦ódz1­À‡ãçÝêäÏ“ÿèÂ-endstream -endobj -1674 0 obj<>/XObject<<>>>>>>endobj -1675 0 obj<>stream -xÝVMoÛ8½ûW ’\ V$Y•=$›k é~ć.P  %*bB‘.IÕë¿”ä:Nì¹6KÔðÍÇ{3Ô·IB1¾ -RšçT4“8ÂíÕ2Ê)[.pâÏpªÂƒù<ÊN×oÖ“Ë1]ѺR¾ÄEI@‰cZSê?þ.ýeöej·_^_°äõúqÓ,‰£%v a[ox~5b°) -ë ’W#M ‚£Í‰QòêíÉŠÇòŸBšagý“Ë%I—í,Í}ìÛÖ‘«…%¡ð‹b É©³E1ƒíÔrÇ[QF'ÓÎQgi†$zzƒÈ¾ö'Ñ Ëci¡ðüÒ;Ï£© ìœ'q|ÁÆ -p€Š/Ê1ú¤_’gV9n¨0œ9¡ÕlƒúÂ-íuë×1ky³p×PkaÜ©áͱr:š™¥gÒ@K¤ù³G/UsdäjæÈÖº•%m.Û"¸íC¡îÖ!O‰©òg‚õ®OlŸ¹F®>iÅyIN+ñSs‹t¨ÎÇÕÍýI¡øзŸVŸ‘pá„V¤«`uÏš £;öÄ}ãDôn ýØ:~¥¾/vBJ¿M‘Ôú‰¬n8ztHñäSv´¥:Ìw¡à!µCé5ͤz^”¨wˆp†·†ûF‘ûÌF½—È™úãëûÕíxet N ÓÙƇP…lKn£º{pEÉ¢ŸAó~`¤I”Eô7/‡"> -Õþ‹›fcÀ­›­V/X`È#¿›=!RÖJ7l>ÞFek|u…²ŽI åƒ8m¡âÊ™½'û’»â²ÖÖaÙR¥¥Ô»q¼ſ$Å ƒoâ©ÜnXñDgD±†ŸEg¥n˜Páæeð!ôµºk-·Ô©±x, -`Zõ:<À …®X•­1¨ ·>m€„6ê *&$4ºiZ% -æ¸÷A$½ m 4,÷´®üí´Aú>‚H ¯´¡†íɃuXÃÅ´À¤]­;צ֖AÙ8”lÕZ–Xâ‰ó±m&ê ‡ùñ[¥€X¯Cý¥[.q…€;† ”?xèO²Ðº Þ„wà«£cÙO³$Ë9åyÖå÷×w7×ô§Ñ(Ýê¢mà-HÇïœ f‹Ø¿-Lÿ‡r³¯$oR¼aÀ>™‡ãçýzò×ä?k5lûendstream -endobj -1676 0 obj<>/XObject<<>>>>>>endobj -1677 0 obj<>stream -xmËNÃ0D÷ùŠQWec;©ã.S$H@½`ë:Nq•G›G%þž™²B–­+ùÌÌk"À陂kÎ8”L!×Í’îàQ';“<>o! -˜š$J ˜ -„sãÖR° Cùòù`ÎÌ#˜fœÌL Ápð×ÙwS° >¼­P~ÑU9¹.ö©¤œj½£=6¡;ý¯Â<.«[;ÍG:€¯ÚËÐßüˆÑ¶G‹‹ê~hmç<ÆpêBœmšo#õo¤PÔVgЛ¸í¡|Ý•xú³wö½›[ZÚN¡ïazçÓ‚oÿÚÝûçJ3µ‘Ôƒ:ˆL.Š'“¼'?®¦c -endstream -endobj -1678 0 obj<>/XObject<<>>>>/Annots 1041 0 R>>endobj -1679 0 obj<>stream +#Á75ߦʲ¢¶q6¦|ä4š—´A¹÷Dbr;o—Çž„§×q3_zhöÂá¨îÂe4ž{xž@þ@/MkÒ~©=¡£Ø±už²ä8†r)aúìIˆ86•vœ}ÏiÉѯ½6Ãáöøºs'J×=¡î}¥=Wßgn±-$¬åy|€‘6¦/02£[—Æš•£[tÀZæŒÁ<°lošN…åáõ»†D x³$9½—¹Áh™kQô”F›sUñâ€\.M…íµuùÃÇ;?°Úš»æ‰˜r”™±ò°xp7u`„×HÝãºà?ëÍ«-ö6¢_ý,0oÁÍOÂo¬•þ'¸³a%I±z@’êðË )ˬ_Fë/ÁõZmZÕúåÈo7{ù€–zÍÄ>«§”…á8ŸE4ê‡ÁðlÊÂ2ŸÝžÏxÉùÔ°¦ÄW/Yl¹Ž±yOÔ›ôÏø|Ô¢ h®I»¯ÁÚÅG‡ãi0ñòcatÆÏ®¯4Ãxgendstream +endobj +1693 0 obj<>/XObject<<>>>>>>endobj +1694 0 obj<>stream +xWMo7½ûWÌMIáÈúŠìÈ!IÀ@Ó¤°z( µ;Ò2Þ%·$ײþ}ß w%YHÜ°£.gæÍ{o&ÿ\Li‚Ÿ)]Ïh¾¤¢¹˜Œ'ôúÍl<£ÅÍ5^Ïð˜6úÅüz9^þè‹él:^œñ~uqõé Í&´Ú Èòú†V%!ÀŸ/>T¦MÒ]°nKw¦Y›—«ïúäô:?ùj¾@>«òŽâð­KÁ—]‘¬wù肦Óþèìâ課‘œOL;ɤdŠŠKJžRÅ9 j›oP]Í&²ÆÉH6Qá]2ÖáãÈ6­ɸDQÓL{ÚØÇ1­*–ðz5çü¬ÛøÐIì䊊 iÛÚr”´F².&S×z1mÙq0õøGÕ/úêgcú+ +N•‰ÖH»¤6 ÊçÁ¸uÔ·?‹é7}*‚È6°IŒKS%¯~ƒlQù.E[2í}€EÃ¥ÅIrœv>ÜéýžJÞ˜®Nghä:w¶®É· +«Ë©âêà »×R.iWÙ¢¢†F°‰H¡sÚ§Ø3=pˆï!y¼VÂœ´AÁÉ—D*m@Èz/ ‘àG€GP†Æ)Ðè5Ç– ‹¾ìé¡«¥!ëšµ%¸¶ÉÁ­/Ž%¾ÀAŽZ`#€Ú˜„x… +ÿ¢Û^ÉÉ‘d~ÕµßPR9|R²Ûȷšþ† ±Y‘öæ XùÈn»‰¶±5"xòIëõ +wÔèÚ´È°õˆ“V¸±ã¶Zˆf6¦wŽøÑH=ÔØm~ñ¯™Œz3Èk‘! m[_½¥)te§4…yL—7Öäjaöoçúv(dÝÈá—Èø¹šä¨§ªî5 ­ý4-¤:)øîóû¡¿Š¢’kTûÂÔR܈¾½P$üN„Ù´:ÿí¥vAJƒ@ghÉ>€ÜCš½¬{ªÇC13}òX½“tpIx’…f RÞ€å“ïà3Ñ w…îLÌÁ (²+ÅŽ À±Ö÷œÔxò¦ÎH Fc½ØZB#øÕ6&vâbFà¾u¦áq>Àwÿn‹X.½ƒ ž¯ƒ¦1( £;ÉRÒÙab ‡çøŸ‹Ó•jO½bÍHÜŠ¹vjíƒÔö>;ÇÆ‹g “Ϩñ€a„Ž8U¿PíĶ¬G´`8Æ[Úsü©àÄø®ã0)z›ÉäÒñÐÛªÊ;IdgS…é³.$!£~8B†#Š„śɥü^)÷ÂkëNi +©½o×À1ÂÀjè|”E¡¡{ñÇÙëÅKnULÈPôåN{d0™õK\{\‚f·¹Çî :õMƒ;4 ÇøPgˆ)u›Ñt·®{ÞÃqVŨmÛÉHr—ÑÄûl[L=C«O¤1ØTà¶ÞËš…dÈËQÏ€Âc+t.ãîjagq}‹Ù©*_¨3B’…¯áD *j ÆÔ)ƒz7–ùt¯v=§à˜õ'{åév8ìG‹Á¸ŒX&ïžäuõét–ôâgñ –½Ì;éÊñÉLG’¬-yŽÊµx“!Q KïFIUŽ±ÙÂÊê„ïmüM¨iUa'+J¿nÙgö´õÂ,Ù\PxM·­è–v¾RØ^À9··l§Ø2€Ù÷ÎéÖ—%…=[(ÉÃ>£¬ºæ|¦ˆ:„õýÖˆ¤ùMÉÛv„5i±ôÈ \U¨.>/XObject<<>>>>>>endobj +1696 0 obj<>stream +x…VËnÛ8Ýû+î¢@S –-ù™]¤éèb0Ô]MgAS´ÅF"5$ÁßsI¹~¤ÆˆD—÷qι‡úo”ÓŸœVÍ–$›Ñ4›Òb¹Â÷|Íß~¢]|P,ólþ³ùjöòÄûÍhòqNyN›Š,×+Ú”„Ó)mäͧlGÙ½ +A›=u- Úi§zQ×*ebˆQª¤`éÉØžúJÚ<<’0%}ùðH­uÁócœÁsþ÷¶¶ò)£Ï¢ÙŠ7›o£)óYV üMç‚+Ld9UßrÄäã”îRŸãbŽ!Šä“|¶"üŒ ç÷@¦Ù–Ç”Ól}Š[ÿ6M#ßÝeœ™ãæóÅÏãÎK®¿Á4µð¬Q¤=é†!&ðÔs [—Ê€Ü]Ë0Ž ´U$z¦ÁîH‡[ÚëgçP!g£¹¬©ÇÙ8EY&nÒÖÙ`¥­IhF*tpPÂù,!|G9ÀRψ‹<[dôÅ3ù‚>=>¼"_q+¥2±Ô師, åp9±µÏŠ*[ú¨#žÆw:ˆm­n9&éGÚ®.!o©­…ÄIj,Ë®URï´ŒÕ0]ÌzÖD„@û«‘£0!·¦¬Tj/Ñ^ÉÎép ÊÖ*£ C¥é£˜!T»Û!¥òQ¸©\ÜCߺNó”«Ò§#±Ë³ Ø Z£Â:\çCÂ*®ïCˆË$ê¥Ò¢wËÛ— ÁH¿Ü¢t+_ý{le=«3UöîåwE–/×Yž/²é¤Àæp|ò_Ÿežé›&SŽ¼ä<2uØGƒ‚5ÄÍNSD$¤5FÉ ­9 !b>"JØ‚ +Úv¬jE‰jí¢&®Yþz5c-EPüòÚ¾¾Éèá¬&“zAblÕ^y½ØjT™Ñ}òž3A8xhØ*^´a "E/.ŠFCßèÊšCc;Ø´§Î>ëöæmGPϪæ•æ­LØØ mx „|RŽk‹pUòà=Šf+Ø÷œš´Â{ xZÇÒq‘ý¸ÚgòL§ROi;yDC²ÖP*> ’|FÐëAÖЂVåk,U‹‘@WÜ1 çð {öä1~W]GÛàmƒ°% ƒˆ¼­\T>Zcˆ´[g{„Äóþ6rÍÆÝÔu†Íä¬>ƒ{U;Qï”*ØékL¢€g. ðM£ »fgj6€¸†ÂðS†M¬±FSÞ£Á jM®Ç$DšÞšÿuØ%¶Ý;Q²Ëþ¸/·lpÖÇé€W¥äzÝwµpàÖX…оLú¾Ï<_«™uûIÔB×–"@u|ñž]=¨3RaV˜ý%¥ðXO¶©+ô~ø¥S±zÚàF”,q¤ |§Uz_¡‘søÀ]ÇRƒDň“ÿ>wµQNluÍnüÂÇO–= ·^Ur~ýYÏhQ,Ò;Ãçû?ßßÓ£³ß°GôÁÊŽ§l7<Ëøx`¼šâ¢¼ùí­6‡K.nBDç³èlF¾¯Ûÿendstream +endobj +1697 0 obj<>/XObject<<>>>>/Annots 987 0 R>>endobj +1698 0 obj<>stream +xV]oã6|÷¯XÜË)…#Ûrüq-Š"—6×´À]{qq}ð -Ѷ‰Ô‰T”ýñ%)èr-P šäÎÌÎîòó`BcüLh‘ÐtNi9Çc¬þ||7HæËxFW ,RIÓÙ8ž„ÿ +ºçý8¹ˆ—tµ\às‚ßZÒvðv5ݾ¡dL«-BÌKZeîf¬¤ÑÍ^TVÖ”$1ý¡òTgr„µÚHk.V¹³“…?{9½ŠœŽ°yÓ§½°$$ ûI¨ŒÉþðM&áp²ˆç|øF—Uƒ†R]–¼]XI¹"Õ”,Çt§ÈÊ'k†$EºëÔæEAI¶Ê8“‘Õ$pK]KSi•åjG…´¸;¦Õ^2‚1]N¦t)…â–aw— cò:\%k+H(“•T™! <þºÑí<Šk‘²vÐjÖçÄ#/7Ô™ÅtÝCŽQ*“3R*´¬Ø Ë`Ãa¦{ ß©Å‹ž3„{¯‘¨aƒÄÊØɈ²¯Gya²x–É6·{z'ë°š² gãQ %q#uÔ9E6]_À;¦Aäg·w@(ÓP2›¿@º;ßîs䘓c<[cuÍyò7y…œÜB”iH>a±´’´y¶2×'óøŠ†Ü>¢0ºÔ]ßT•®-ÉG(]ê`ßͦA½G%ÙmžÊu¤ëãöõç§lš‘Š]_WS‰T:¥¸”\~ƒ"Þ ³ƒ‘ }Ã*Ñ÷4ŸÍ¦N­ÑmW:'NƒÜ^.8ÂAGæ`d¼Ò02昚žæ,Vª›¤ö¹z ½u‘1–w€nÙ6gEš­£LE°Ñ3›ø$r—6!‹!9%½¸@pI/O×8„–!ê,Gm|Ýß·“!ÄÕþ(òÂ×pÛÆ¡ÛĺÞÅô6‡k²Gßíe ´ÎH=D_°ä8®Ðžup–K>¸|GJ'h*a>2 XÚ®z±Æ:á'©zq‘¬ ö¡ï^_”ÈP›«L·0M‘Kópë`Y}¦TÈ˳, I¡¾3zÍí»yó…AežÖÚè­égÝÂðõ<¹6@Xé< +c ·+¹Ó6–åÉ+`@“rpÐ&ùSn¨ªµÕ©.ØP <Ê2îÅ#t:WÙk.)½Øî&P8bùPíŃC€Ä+ÒÆ ‚F'[ôÝNžuô)ö~5¤ä×!ýùÊ”wãˆ4Ø3à^à6¯}ûày:ç\#ÁœÃX¼åF¸ÙZ[Œ]bÆt³íÃbËͦñx>rs_G<yî| ¾L?ÌÅÍ´;þ Ø ¸Øîk) šðPÚö¨ +ç‘ù–¿=Ž+ƺ#Jæ©ÓÙoêˆàåq˜–«=<âê☔÷[ I­IW²ö^1ÏÆÊÒ5LÏ­@?Á%çP"º¾¿¹»;t¶mŽVòŽÓù­%À¸¢9²»{ª§•ÆV¢.éò‘þ¦]-+z•Åzu®^h˜^¨«–ßZœ¸£s_Š=º]†Ñím7[ú÷åͼ¤¯ð~ŸÏ¼ÁñD™LFñÓjðûàÔ¢Ðendstream +endobj +1699 0 obj<>/XObject<<>>>>/Annots 1035 0 R>>endobj +1700 0 obj<>stream +x}˜ËnÛH†÷~ŠÚutñ"JšÍÀqOº L¦=m§3‹lh‰²9‘H5IåòöóS"ëP2Œüúyî—*ò¯«ØÍø»EâÒÜ­÷W³hÆ/ãŸ?~½ŠÓhéòtånïò,JN`çî¯æËhæò$‰2¸Õ,ŠO p³{·Œ£¹ËgàÞųy´0¤*¯rT#˜£ÛƒQé|™à3ág Jq*1¤Å°Ë%þQo2_iŒ‹E´rs¢6ž©¦¹8‚ä<£Š”5v‘ã™a Þ»d¶ PÃJfçYªÊ4P¢×@². ò +g Iˆ'œ¸/ˆ(Z ›­(X`}RŠ/qâ+ùSä³°ˆJÖ‹ÆüÞ-Vâ‘‘4PÔ®¢Ô§äÎRÍ|œÌ%#ŠÔ¨ÁÞ(©,N v>›Ê »ÒYƒ)L2“vY‹a3-[` †].$‹5v%=eXƒ÷.MB¯Å°´–•µXØÕ$^‹a‰äyôÊbØålªÙà½Ë(½­‚Å°I:f]|¶6Ÿúìë›±tx´ž…úŽ¬ÖÓ°õ5¬Öw”ÕzÖࡾõõd}} «õÙùœu`XƒÑÌ€g–5˜<ë +²Ãbgfd-†ÍsFÌÈ,L2à Kô©e ¦FqLÇY‹¥¾ùD³ÅRßl’S}Y™²åcæˆ\)òõ –FD5Ök¬Á°tÐÒÊLâÕĮŰ™l•`×b© Ì‚a †]%SÍ“çT–oµ6‹'v-†%¾‰¬Á°š£Ù`Øåœ}eXƒ¥¾Ëižõ“Êéb÷3¨ÈÌàÀ¦+ÑXƒ¥‚: 5X*˜H_Ö`©à\&%°“g¼²²Kb‰h”µ˜lÄrdÖbX4SßQÖbX¶ˆõÊbÉóBæh”Õc.ÓÅC@3#EšHƒa9ÿ(o` †]ÈÑoX_¢TŽkXÖÉPäK0l¶Í5–V˜ÈL"IᎲæ©4{` –"hkŒìiôõÃ.Ïâ•"õÙ`X–&^Ö`X–&å ¬Á°™Íã‡åe-ö>O4û<³u]qBV‘úl°x¥5 +¬ÁhfÈðjd-†ÍåBXŸ«t%×e4'²ø=òõ 6_Rà ËQÍ]]5©¬ÁØMVÔ×°oºÌè6±+}ä‘·0,Ý=·¬Á°Œ >«&•5»³ŒA ¬Å°ÔȲ:F) +´Ùuld:ЬH5{–×@¿ýd¢SEÊ2ÛŸåªaXƒa™ìYƒÅ+ÍÛÈjå„÷Í$ç±GÞ©€Q¬7Ã,N‰Ã ËËæÒ²ûÑYVFgÀ°Ü0æ–5V—`×bXÞc#ëÃ¥ŠÒ¦,\Wz¢se Dz/dß{Òb VY¯–Û©6£´m¢@’ÈKüE­fi$-†Me¨ƒ¨ÅbTŽFà «kÉ°ÚP UÐvËd{¤•5Y=Ý k09ÔÓ°^3·"mU¼@³"Õl0šù 1a F3ïfÄ;ÊZ,vå¦eXƒa òd †e•Q¾‘Õ8 ×zis=˜< dÉHÎi=+q¥ŠDГ3ÿ±€2Ã)Î@² Ÿ@ª`Ìz“Ò°¬bª'@AùH/È!,™×Æ’Ú "¨¡Ò ©ó”¢ÄŠÄdL,6¥ó k°(NÅÝ k0,¿/,k0ìJÎø ëâ P‡Q6_¬@}’ó$Ný}9¨_ãð}äèÜb5‡;#é ²¶t$´š²Ô|â=É{¿v5Ëô9sõã-"M«ÿ÷É“Oc|ÌÓ!©Êˆ3¬­Üp:Eìf9AnàT.p*ÇþÑÔ€‚ 7p*8•ãuÌŸ/bOA8• œŸöÓmCí%‚œÂ!¾‘{÷põö=ã;s[>¯æ‹¥{ØèWU~Y¿ºý3rׇCYoªïe÷úá¿~ìÛ¢Þôono/Õ̉×k9s‹ +óå_G«ŠjŠ»~æ¯zÊWé&ï‹ýcá0ãšþ¹lÝÍíû{·ÞUCr&Ú3Ñý¡XWußtÏÃc?÷ŽM¹ßïw£z„>SÃ%™ì5ßܺ¨Ý­[7õ¶z:¶%Ro÷©hR¡º\÷®iÍ™+:Wœ »-œú¯LŠ .àÄÿ7‘ºÏ¯ê¦L}~ý³7Åðýìb:ýIôýÌŽ­š˜¡ ×x.Ù+IäS"«®;–ûö\Ö^ëçWB~-Û®jêϯ]Õ¹cWnlD/ÇA•$ŽMC¦žÊÞZòO©6m…6~ÿVïŠü­i¿Tõ“º«y<•Ñk=«^ªjd;}þ²Oms<èD\v¥Û}ÙõîáæîííëúbýÅmÛfï>Të¶éšm¯=6͇-_îʾtÑáÛÎm«‰)¶áè:üÞ¸õsQ?•—Äb‰¤@§þø´ýdÙìˆøE£dí¦Àçá!™úÁšyî%%1ž‚£Ï6å¶8î$ßM߬›š9K V†4þ´š¿ýiµ¼ ÅÃ3œÙ3†³ýZ­Kw'éK.µò¼Ô»o˜‹ýd¹ûëï®åÁ‰uôëõºìºÓwͱEñºÙ”îkU¸›?ï_”¢œ·uß6›ãº§Ï]ÅÔ iwR/,Š¨i}¶Ïáiÿ¤ô“àŸvÞŸN}i»õZͶ?hж|\Ü»cµÛ ÞUuÑV~—OF›,ÖV_´ýðh·dŒXa5ÿy!`][£„6lU—ý&’½s¼®¯ëíY=#ö7éto­êý¸nŠrïóöf²PsÙᎠqíÝñéršrÙ|çÉŸÄÇý>r¿–uÙ²½«zÛœ{˜K®~)OnW~-wÝÌ]CmH;W¶mÓ¾ðŒœ =#ü¬ilX«í±®ÐðÒT—v ï®è×ϧªLš`¹‡±ð<²þ²«:Ýg½¿í®o8Æòܤ7/¼à[–XCÊœéæ2éIŸ{/rhI?tS£ºg”L_’$¡Jf/‘dRɹoßsÑÔÛ„¶†~=â>qyAɸƒåó„Ë 4eDøWÿ¾ú›w²hendstream +endobj +1701 0 obj<>/XObject<<>>>>/Annots 1043 0 R>>endobj +1702 0 obj<>stream +xm“ËNÃ0E÷þŠY¢®‰í¬P+(bÔb_’R¥IiSÄç3¶ó0RTÕÒÍ™ãÇ8ù&þ8hRA~$Œ2|2o„3A(£(ƒ#p!©ìS [g¤’SÓàjAÍäú¹ îDƒ›f8㸮O‘;ÐàN4¸‰¢Éäú¹ îD™ÆÝ*)ñÔn]3¦àNi"Üy}­§ÁØÀÉõ)rÜ‘¦%Å”o•64íƒ3£ˆ‹rî.ÄWúi£Œ4Mÿ©n+i¦qLŒþÏ%ìÉÚ’åFál`÷îþ•Ñ` ÷ l~#4•TQ°å¥uk„Á‚»®Ø"@ÝC=MÍÌz˜ÍAÎzÊÙ,ææ/ð½·•PØvU]Ã×î§j>¡;·×º¼Ü¹âåÆôvo*38sÍÄmWÏ뼜ÛC™wpßæ×cÙt»®j¿ WØ=še®þéÂêt*›¢ú-/®$Q†ªTà÷„˜ËÄ={°ä•üs¡½†endstream +endobj +1703 0 obj<>/XObject<<>>>>>>endobj +1704 0 obj<>stream +x}VïoÛ6ýž¿â€}ˆ 8ŠÅv¶O]Ò.ÚÆC,è<´DÙ\$R%©¸þï÷Ž”âDíÚ"€%‘wïÞ½{äד! ðH³§”–'ƒd@ÓÑE2§É|†ß#üYIyø0ž]âñFÓI2ê~ø}urþþ’FZåH2Íi• ð&í]íD奥Ñ8¡¥±^lT¡üáÍê_l›Ðp·æ½Êzw¢ÜÚûèÈhÂO•I²Bo%™œªBøÜØÒѦöäw’”Fø\¤’DQ„7Ç5•5O¼]9ÒÆcÁ^§ÐÙp¦¦¬„W›B&´ÚaeÚ NöBi÷œóÌU2U¹J‘“1`#Ü á((LoIèŒjÇ¿—’ÄJ/i8k*O’ W +F† Ý,ï¾'c–LyÉÍòÔ‘*«B–`B>àêª}e´µ¦®°ÌõIÚ> +ÕgÎ…°­{J»ƒG*š,œÑný†‹•h¹ÀŸß›)!&媈z.}zßpqá±0[”È™ œ;NQR)€ä~qíÈÒu¹‘Ö5lp¯˜5ƈÞu*­|,dÝ[¿a˜b` ú ì }4ÎS“Ed%÷e¿3ô¨Í>¬³¦’ J4áñ%dé î¤^÷vLUØ—éô©úc´-_(Çóu¥2®lkXv†˜A¦²ƒ~¯ DVDýÊ!ä ^®'Ùp0õ)úÀ‹u-í—*<)–™v4HEö ºÇ;žDX‹ë>–©tG¥`ªä¥‘ŸNοI‚N}ùøöáÞÉbhžy^Ö½¶‚KtcŠYPZ[ žË›åÙýC30••iQg ÿlä?½¸Oúœ¹“³v54xªÍÆd‡SúB óqMãT,r$ujjžl´Zö!°G ý³h™f߶VÀÂÖs.â(‚£Ng@™­1³,Jf®Ðˆý7êâÓûG‡ìëO‹ÿ?œøc0'ÑŽg”-kù6jæçm|j„`qnx¥ÑžVæ­ü®UXÓœhÓölZ…Ì='K…›p]ÁÏ7Vàxä¸bo¬¼;PïÃà€íx26jÙ(“¹¨ ´Zæ*‡.Ej }ºýònqÝNuHçš.‚ÒÑ “]cá.Óј%ŽÙX‡]*v ÜSBÑìùÀ– 5CE?ÖÃî¼Å‘çù´Ù›çc˪íÎwË\èáÛ«„H\I ;g¿m§ Î#K–CË _epC ¼ÖAªèZ„®Ibf`a" ¥”ÇNméØ pŽYì*Q0fòh/f¦ +cˆºãä{EïÀ-6Ü{ª’p;zJï×vÝe{±l®[ÔüK¶Î¢/M„ñ—a\¹Ú×!Tó¾Ý^š'ù¿LfýlÐÙüb2`Ñp0è‹Ÿ¬Š¡†ýlaÏ_\ˆ§ñø“ ôd:O¦#ܺ|8¾àïV'žü&Â>/XObject<<>>>>>>endobj +1706 0 obj<>stream +xÝVMoÛ8½ûW ’\ V$Û•=$›k é~ć.P  )*bB‘.IÕë¿”ä:Nì¹lKÔðÍÇ{3Ò·QF)ŽŒSšåÄëQšàòj™ä4_.p>Å× +*ãÙ,™Ÿ®ß¬G—Rº¢u ¤|‰“‚€’¦´æcê>µù®ÂéüËØm¿¼¾`Ùëõã(¥I–&Kì8z˶ÁðüjÀ`ù Ù«ƒÇ:Ö{b”½z{²°Â‡+#,Òë]¸sùaNYÖf;™æ!ömãÉWÒ‘ÔøG±¤ÔÚ¢˜Ñvì„,’Œq 稀“é5>*Hò Ì‘}íN¢ë—‡ÒBáÅ7¤w>_\ ¦Ö³sž¥é*À*½(†èë‘~IžYé…%nóR?DªÙõ„;Ú›&¬ibΉz દÆÁ¸UÛcå´43GϤ–˜æÏn=¼TÍ‘‘¯˜'W™F´µ¦hxtÛ…4 BÓ®÷BÓÅÏ\ŸØ>s\CÒZˆ‚¼!V௘X«›û;RR‹¾5n?­>#aî¥ÑdÊhuÏê £;ö$Bã$ôi,ýØÚ ~–LC_ì¤Ra›&eÌ9S ôèPò)¤.Ý`Kµ˜ïbÁcj‡Òš(ý¼(1ÑàáôŽn­#™ z;/2ÿôÇ×÷«ÛðÒš:B¦µ?Œ©¹j +á’ª½qEÙ¢›A³n`L1œú[¿C¥nþÅE½±àÖOV«—,0ä‘ßÍž)k”ï7o£¢±¡ºR;Ï”‚òAˆvÐ íí>})<¿¬ŒóXvT¥Ìn˜‡8oñ“Mñ„Á‘*·ÆŸè,€hV‹³ä¬05“:^¼ >†¾C—³Æ G­ŠKÀ¢ft§Ã¼Ôèà’q¨lAm… i$¶Q Q2©°`ˆ›ºn´äÌ‹à‚È: rc-4¬ö´“¾ŠüíŒE†>‚H¬(¥ší)€µXý-Œ—À¤]eZצ.Œ–EÙ”ì>/XObject<<>>>>>>endobj +1708 0 obj<>stream +xm?OÃ0ÄwŠS§2ÄØIê¸cª‚Ä€Ô«›8ÅUì´ùS‰oÏ‹B™eëIþÝÝ»+“t$Š™B˜àJ¦\!×Í)ÝÞ¡a;ß·LC¥%L Â…€©ÖiÆ7åËçƒ9/`¾€I&ÈÌÔ !9î:¹8zÛâÃÙ彋*‡$×Ù>I)§^ïý`­§ÿU˜†ùou ã’b.}wsŽ×7]l¬Š¾ñ•mÛo¾DêßH©¨­Î 7˶‡òuWâ­ïή±ïª)ÐÒvô]œ…ÉO +±ýkwïŸ+ÍÕ&¥ÔAfŬx2ìý³rcendstream +endobj +1709 0 obj<>/XObject<<>>>>/Annots 1054 0 R>>endobj +1710 0 obj<>stream x¥WÛn7}÷W ôbVÖź䥰]»_)q (¸+JbÌ%7K®½ôÛ{†\I¶ -C‚–KrfÎœ93þzÔ¡3üuhØ¥Þ€²üè,9£AoŒïþhˆï.>¥¤¿ÀÖÝׇߎ:ãdLç£A2¢œÎÇI¯~Ð4 ×ô#Ω7Ä«øÀ¯ÎGÉ°~ÌiÔÅéý;¶Þïw’Žups§~Ú]Ùëðþ·žuÏ{8ÐëñU9õ‡Ýä¼~ÚƒsßÅs9;jߌ©{F³  G4›‡±’\­DáeIÝnBS‘§‚„™“õ+¬]Mn¦”i%w§³/¸§ON¼§Õ%]Üt2[)GY}KfÊ`!œj¹Bfj¡2RfaË\xeM¯SgX_Õë'}¾ +C‚–KrfÎœ93þzÔ¡3üuhØ¥Þ€²üè,9£AoŒïþhˆï.>¥¤¿ÀÖÝׇߎ:ãdLç£A2¢œÎÇI¯~Ð4 ×ô#Ω7Ä«øÀ¯ÎGÉ°~ÌiÔÅéý;¶Þïw’Žups§~Ú]Ùëðþ·žuÏ{8ÐëñU9õ‡Ýä¼~ÚƒsßÅs9;jߌ©{F³  G4›‡±’\­DáeIÝ~BS‘§‚„™“õ+¬]Mn¦”i%w§³/¸§ON¼§Õ%]Üt2[)GY}KfÊ`!œj¹Bfj¡2RfaË\xeM¯SgX_Õë'}¾ >tº™2ÞºÕÖô/ßÛøKº„f«ªt醌]ÓJ¼HÑñ«àµi*ËD“ ­åœ~½øtM-rRòµgÔê¢õÙJnÈKçIyKÃÓ£2s»v4>oî~ßÍF. …°(³yÐR¥•ßr®b¿.<Eò*—d´.•WfÙ¬­vz¾àÎZ8žà¥@ÔIÎ8~ž‘·qªb.¼„ /Bi‘j„‹Z”R<5ÚŠ9žlŒo±YËôÀ®S¸çé„=D’€ \\ XÊJ:`é(•Òв”Âë I³&“óf'Q/Ÿ´Z¶êŽ(“éj.çO§!ɯÀ½Ð ™H/ØÖâÐêÃ~m£ó*/´ÌAµ@Çþ\Xš ýLŒ²“ÀGhz†—áõÇ»ÉgÊE¶2ÒŸC¬ä¶£\–™ÂûºNRQÚy•y@¨5ø³±ƒ]V`[ê¨ .sQ%x¹_ŠÑo ï\áø¶V~~’˜ÏAkà„«ŠÂ–šóµR%ãoBÆvgcþwð€boàðVï$ X1=W =®ÀªXÕv±€+t;ÝѸö ydDö,–4ìc àPºð?.`øx`óíáf´x¯Lõ ÛË ç«• -‡`ÝÆy™»§ÓWu¸­ˆ•÷Å»v{½^'àK¹¶æËþF®ÿ^+“¬|®ÙÖµ‰¤ì~Ú¥(»ÀVï,ŠÔ&èÍïÈ{& MÀ³PË +‡`ÝÆy™»§ÓWu¸­ˆ•÷Å»v{½^'àK¹¶æËþF®ÿ^+“¬|®ÙÖµ‰H7¡ûi—¢ì6BbX[½³(P›.—ÙïÈ{& MÀ³PË l¹Ÿ¶»ô(Ê‚®¬12óö‹ýPt[,¸1@Œ¢äªÈ$[¼ï"Ê¢¡%ŠP·FÕrÏRúâÁ >¥èH¶bA6Tã’‰Òê0¸¤z‰Ñí´”Õºô¨½†Ó Ã ¼N±nšå†kÞ¯X6ØÔDþ‡„þøZé† ³øø_ËêÓÉñäò–¤,ŸN#ÈYÝZÃdÄ Á>uCŠo·½#¼lm³=»zhOÀ“ã‰a‰¨°XÿïZèZq9¹Ÿ’eù†4/¡A%ÄÊåõÇÉOÚáÆ×ï!š MVH{¨ß…*Ñ6¸l½]JÉXýøEÌ}²TŒ;A]œZA©æy»Èo…FBŽTÔ&ã–puëÈ…©„Nh²ˆTeÁb=ßDáæš^ícÚAöµ€Œnõëà6p_ÛÒ ·"üM‚@𻫩Ô(€HuèòÀº¾ A6ýÂ%S{Þ˜†bGöUÑÀf&sÈÎ (cঠÐëi.]VªtOÄ"ÐôK…¤ÐGHsí‚5ÈÏa s›U»~ƒáÇ ÈñíÃlš\¾nòð‘=srîÿxõЀÔñþâaÚw[\,˜Ý]Ïï?]ؾ?”ÖÛÌjwÌràØOnïÀÝ@'^¸H-_Ue‰e5 ÖCÄ™˜ ì†ÎóÑÃébïæ<³”dª<•etÝdA’1¡4 âHn£­"{‡9ï˜Õ±¿p§”åÓ kz$`‡~Z’¶ÐÐ*É¢ø°ÜÚ"vBd m‘ Fäu§ÅB) íˆm¸ÃÜEk€‰E“+=}¯œo4Yªã܉›éqr7 =;ÖüVÂàò1“„óÆ÷áæ -#`™+cµ]nösÌV®¸¾é <1äÓgÐS»ŸÁb=­ñð²Kö9…’.v@ÄþCº%iŒ+šËJ½Ï©ÕHå -tjbê¢M€ "OBrÚ7£ý€>Ǿô3>ÿ‡28ïFíîôzÌãëÙÑŸGÿY—+endstream -endobj -1680 0 obj<>/XObject<<>>>>/Annots 1050 0 R>>endobj -1681 0 obj<>stream -x­WQoÛ6~ϯ8äe)àP–ìØI`HÚdMѸYì5–a %ÚV+‘š(ÅõË~û¾#©ØqQtkZÕÉ»ï¾ûîxùû ¦>~b'4QZôEož÷¿ð%#]ÝÄ{YÓìùÍòé0õ†ÌÂíq´Ì±‘*Y7¹Ãže–¹õ"×ʾöéèÓY—¡`UÑÞŸ¤nUÓVB}Uç¾ÏïÞNÂV­šõ+ìÆþ§ÝOYÖí}!ŽAÐÐ\PE¨¤c‘UÒ‘wQXÓ£Ì蟚À,ç -ÚLe4¹Jú¨å¬ÎŸ ž¹J%“zÁþ¼].7‚f íù­â #Hw2Ý5ÁZ£­ºÒ ß²ªv›D¾©¿D:Ëmä+™ Oõ¶þŽ±çÚÞ@Ð" -<¥Fù#0ÚVYZ¯”öuöxÄ‹ˆÄB\¯8„ƒ´Z’ð@šgç{÷À&™ÐÌ@y“«}º¹z@ù>3xxÍÚcÍÜÕ9ŠÍW Ý+kÚ:UtY›µUõa´ñÕMøÊÐȲ䡖Q r¶bÅ£·ÌQáùWÀžo༒MºBɃÖŸå&ᬫ?dYóÇ×9J v»¼ï¹FåH*dNy\(®'¡ø’ÃÑøÚ -¡cƒÏBU›y¡JÛ#Û)¸®jűæzI…Ácª´,Cªö|›ùgÔ& #µY-—Kî¢eÍ=@)U!Áç”KŸ¿vÈŸ?ÎÐ÷läñ†– -õÎÙBœAñ™YëÂÈŒX“ ˜›±ë^ ö{ -¹ÎkÛô(­h+vŤhaÀÿÇÝýÍdööþÓŸ€+]1Á~‘cw&Á–ÀQmXaÁ[€ÃLY¯sAË|~1f@\]üåxµT¶¶!Û„ […ŽHȆq -v©× -¨@^wƒ˜:_æZÏ Ã9î9=ó–2:H1ô•íAèà²*±Í†vÖ¨²S5f×+oB_gГYGû‚Ùs\;~BRœb5Ppvèk²åíC/\%Ô’×#4’ÎT)+:gxѵÜ^œqwÏéù ÝÍztع -w‡O¶Ri¾È]á½4xô,á=;=b÷ë»»]¶qº·A´Ž$O[á! €t»P7 SèáÞ9ÙFÓ‘‰>˜wG·;¯Åa¦žrÔ o8ü­KñšÞÝщ -}z8ù@ç˜ ¦W÷ï¯fâåJ€ÙyïÆ•|RP]ÑäܼwÈPV¨s„¢‘1£ßhaáit± dû›e‡‡{«Cfv' ž£Ú‹G6P[…9À I‡"vÛÝU¶Ç°+™6-êsórPþ¼õ#ÅNí“;Õpßá«`kœï®ù$ó—óG?{X­îK@ÚãkÕ™ä^ÄÇ÷z›— qËÏ2nD{¡w­iÆ2(Zp[¯rôÜ]Ã{‘cÂbK/8Û¶LŒ—<íÂdƒÛwíC®A)ë±vxY£å»YewD>ô1Fó ˇbA¿aràK•={sÝÜ¡+Éô‹ïæÏãêKM·Ÿqù0ý®ç9•r/#îe»H™U4Äw -(á7‡Óð¿<½¸½¼À½møæ¡·&mKÌËn"etÎýãq£Ÿ ðÿþ1žïûCþåè$Aà( ÀÕìà׃W\endstream -endobj -1682 0 obj<>/XObject<<>>>>/Annots 1053 0 R>>endobj -1683 0 obj<>stream -xW]OÛH}çW\ñÒ¬Dœï*í$¡B…%nÓ•Vc{œL±=©gLÈ¿ßsÇv‹U¥UÕàñÌÜÏsϽþuÒ£.þõè¼Oƒ1…éI×ëÒèâ¿Ã ÿöñ?—»ápìõ?Ú 'n@¸×­~¾œôpÿœú“±7¤”úݾwQ­Z9 ýñ{¨îO¼qsãÊ?é\©×#?†ãÉ9ù‘SÙ%?lù[IRäÉüé²s³$cEødh+"J´5¤c -Šñþðžt©Ýg»ü¨u§Â\[œ4ð>‘ÂȈDF* s™ÊÌŠ„ŠÝ&‘$«Én¥Êk%ƒ~ûJYúþ2£(WÏ27±%‰°ÒØZ…ÈJso€ðAs¬‹,"Uc»#£¬$a Ï^Zæ…:=ƒ!dF°Š:;™ë9˜Î^e‘ޛήvl¸S»Î>ÞÛAß“/ÒÙ‚„*ÓP sŠ]yž}6•À³­ÄI»…öHš0W4ü’v¹™ò{{>«y´{w×p¨’áYß,V÷Ó¯Þìöö¬¡ÒŸß.æ¾7ÿ1?£µ;4˜ŒÏèûâÊ÷ÜÓz…Ä•þÃåtþPÆ­•Y-D5äâ~½íRÛ¹¾ 2Ëize’û}A÷h†ô"ÂÞnŸT–‹ØÊœv˜½Î# -·"Û¸D½ÅZ»ÏXk­ãõ†"¸¤£0ú©Ú+»= -@úo yuÑR1–¥LJÇSœt‰kÐÌ.2õB~!]®—Ó†|Ȉ˜e·*Û0 #´º‡Ò'>óÆ/À„ßT¡Hå2´:?”ð\N±“$dí³"Ð…¥LÛ†fvÅ)„,†‰9C|Ùh¸±‘–4pOÊž‘H :è‚MCíT.f€JäfÞÄî|¤³OÀc ©8¼‰¥‹>d ÌP ¦Â¨N¢£ø3’ÏÕ[Jµ¼… -ÎéL6m¹2rªœV£úÁ)j“i_µ87¨xÎDˆE¢7œÇßàpàÑTg±ÚU¯2¾(AüØÎðç»Ep`F®AH)ˆ‰QŠŒ7\òŸ€€–H™'zl¹?“Ç?˜ëë5 <©Û0Ò@SÆ„4øc»&YÍ,/3ºüüøx9»»YL¯¿ –ÿ¡)^ êg÷ëÕ»9Ó Â•T*1à áÏJ8+N—ðA¤œÜ‰Lld~J§`—Sº“YÁ…ÓµËd%@1¶¹Nh«÷Î/B ¢ -RIvT€Äº–uÕOEèÊJÚÐY \¹².ó0ªzN‹Œ ‹\ÙýÉÐËËíÿ¢›!ÒŒV‚¶R&•£´ª¼úÚÍj†)ùܱÖùÓ&×Å΀«Áø!„UŒ\ÛHÄÔ Ë"å̹þ„79jÒ£oÌ,G¥·!–Û†ô†³Ýêb³…í[>¹D™4@ ÊâÇÖRt¦Â*dTgÍÕº(A&ï½l±uf'ChÏÍ̘‹ÑìOF¤ SP½6?ðÍcpÈ -Ù>ÔÊoŠm„ ÕL€ÉX‰e8Yê†<8®÷a*4êœOªÌÒ¯B _Õ÷ž ˜²¶‚Ccßéä¢kêëG%„ ³ ˜x<ºF¡²6aæŠÊ0™@øBÚ@ŠàÊ[±È=[àJ™µ­†4–̉y££„E‡Gï—q¥IS¤(˜˜Æq!§×8#>es›+°¾® ûébÔùt1yŸzVŒtÜD9y…áÖW.Ft?¿£ÕCß¹뺔3 -ø GÿÒ)¦±3€7+ØH–†GÎÈ7Ž-Ý4G‹{Ñ@‡ ½q¬º²cyÇ莎Òur Hä¯ÖîrH˜]Qä«žzˆôAlfÊY߄ʲ £ÓâQUûù´G/¥g±Ìs¼nؾ׉t-ƒr$dêï5Ò2Ê!“Óô,T ÷ªZ³;À‘«7Ϧ®fã7qwñ·Àqþ*óL&ôÍ ‡ŸéëÃâöÛrÆSën£g`ØŽZ=xåºKÎÁµzùL˛ŗ.aþ*Q1©µ7ÄÇd@ãs7‰¯.ï®. ]á''c¦Ã ß³Rùß(8Þ>ï^°ÿc¨Žña1êWN F,wîŸüuò/šendstream -endobj -1684 0 obj<>/XObject<<>>>>/Annots 1056 0 R>>endobj -1685 0 obj<>stream -xVÛrÛ6}×Wìä¥òŒDI´.NfòàXvë™$V,¥íLÕˆMÔ$Àdõë{e[‰›ZÖ…$v»çìYüݛЯ -b:SRöÆјf¯øœžñgŒw-)ãXzø¸ý¹7'Ñœ¦³8šRIÓÅ": W­£ÉtÅÇŽÞmz£«)M&´É8èülA›Ô¹Ó&éß®.ès•ŠF¾!ü¾Ý|^-£Ëß/O6õ†°Â¢´_ãr89E ÜÚ\¬F׫ƒé¯×«ïN¿5¼•©ªeÒ˜úÑøvyû=ë™·Æ3Æsä¸ç…5RµVé;ú°¦›¶yoÌ=©†”¥TZU‹]!©1¤´mDQP“KºybP¦¾F´É±¿¨{²©hoÚWI®´ätÇÙfµ))úŽcfغÐ$¿6R§2¥JÖʤôK¾©^ÓmJè”ýº ['m•HdÕV™J„nÈVR¦muÔ9I"­KUËæÁÔ÷¤¥ºËw¦Î ‚ZY?±íèê5MoÔ†§S_°8ŽPÇß”N̓¥x ^­½­DrO±·ì(Ëx¢1ĹÞV~‘µ(µ6{¡T“y]ÅÝhI&C-T’“ÑÅžDUIQÀËãA´åN¥Ë©ÈšaËm°Um2U î>OaSR(© ”QÎîijJ¡t€WXÛ–l‹ÆÇdŠ.e¹C,l›yâ h×6î[›J$ "ê^"'“$  -Hè9L]ý¹v¦×šLútBb‡\lë0ÍÚ®þ+±mß îÉ€dÂ1K Z-/¶'ƒï–±lQ¼\|q]ÍBë÷ <IA¶­*S7ôT|}ŸDÊ|Æ–¸\x²9ãïáÌ 0ábJª(™æ]N]sõP\üó~S£åà`jgÝaåÉx@Ò—81eUB;ØÙNr¬®©}G8G!µ²Þ¯–ËG(›Zh‹ñÇ'¯Ì‰8(sð ·‚ -d’Gçï9†dXqT^¯tR´àÐó<™rOq WWhtÕ¦pÅ]ÍÃôybóñfsIoüñ‹I ïFœªOŽ ЗŽ- 1';ì–c¨WÚÿ_‡¨éü,šÏbdžœÎÙÓå¦÷©÷/5l¢êendstream -endobj -1686 0 obj<>/XObject<<>>>>/Annots 1065 0 R>>endobj -1687 0 obj<>stream -xW]oÛ6}÷¯¸èKS V,Ù±<-íÖn@WlÛb@_h‰²XK¢FRöüïw.)ÙŠÒbCá$2u¿Î9÷^öïIL3ü‹i•Ð|Ii5™E3|sþññÝ$^/£-ëhM%ñ2ºëžJzœ Ÿqz;æƒS8¢er ËÅz…¿|Œ¤|’¬b¼¸¸›y§‹x­º'vÊf‹uì>1ãƒùÝ2JÆþ–sd•Ü­£…Ï1Æá©w—¬×Ñrl5ïðeÜg‘°ãðÄf¯7“›·ð:£M–«5m2 ¾I¯Þ¢qÒP2èW}$§)ÕU£JI¿¿~xµùûÅq°Ÿ&k¸ßdWé–RQ“Þ:¡jr…$+ª­ «[“£«Á·G¹µÊɈ6º7”Ƀ,uSÉÚÑA«t}M§à˜ÏhÏC¸LëR‹¬ ⽿ùüHÚPkU½#cOu…tï(^uéÎ颾8¢‡4•ÖÒã0ÑTg’JÜÍaÃhMç3@Û›ÃÁoµ3:kS‡TŸCƒ ÙUp®l_Ìø0R¬IÖetÍ%Gôs¨•£É Ð׫7ºN[c“Ï.ïñd¬¾¾A#d^¤…L÷ª~[QZMûX‘°ôLVʽ€U-=1\o xié ŒÒ­õ±·FÔpf=¯[I£…üÎ(¨¨u}ªzÃÀK@ÕÖ™i”¡~W‘4ˆÍ³p¡TÏÍfpFxMP¥3•+Ž {-=qŸë¶ÎH8*œkîon¼ü"mvᯛô`£ÂUåsRã&’È×Þ)ò?»ù¿”Y‰´Pu§xI¦­9ñ¦Ý–*-Ovj‹>bZl4ô¯Í‰rH6 ËÍæû&tŒ" -µP…>íA4"Ý‹´×À8-ÛŒEáS½Ò‡Â2ú¦šyÛîÐg…ÄŒø¸£FÂÐàQœ,#¢³ŽÎéYi“4÷±²#® mÝ¥±sàÒXÉ ¹ºVBÃ?°#¼Ÿ= <;°LC¹8àÆ}ùò…¶F‘(—Æ")K<úižR];4W:*DÕ™:¨¬%åÐ¥å¾dä0ˆ¾‰à³ÔzÏò -¯'BhÏ"¿Ú ïí<¬c÷½Ìûv®š›TØ}PAé9•pË„l¥;JŒ QŸCiøñ¨[GÇB£»Äœ‘ˆÊ,î¥lØKE-~kÊôÆe_…fÞai;%BŒ\qcd.1·3ª¤+tvé4R¹/‚›ñ¼ôPG¯µ£o­u8H…eiö2ï‚öünY¿9\‰4aÆp°¾¦F+lß>§^ÃO”q<£ô"ÒåÜD>~ÜCj£z9ÜËîr°“>æK(¶Þ‡Ñ‰ús ‰4rwä1–Q[½ûð‰Þýñž7º­[¼__EôAdW„îbXðùþÜÛÑ*0<¨‚r,¸TÐJc4ú™A½¼…ê¥Én à’s°|¨ -lWHL`j{GgߣñÈ ¦6}@Ï×ø;Mð\÷wn÷<…sÜ›ànǸ›R,®Ëeyûs®¹æ©æG»“ öË‚G2ÉDÕ ¨r~CZÛVPšGûã(@úxI§º9õ›Ó¯Š¡Rzß’4"›áÑe * Ð-²þÄjÛ-æ•k=‰Ü®Ð}êF²é6Õ¢’|„«ùyåÿ†{&8˜ƒ!_uú\fN¸*#ñÎ —¾Cðzíßb¬.ƒ„0Ø„9yÔ§i¸ØfW¸¬qP<žïÛ0D»þåã›··ƒ!Ø­'ö<Íè¾ kñÏ?o÷>/XObject<<>>>>/Annots 1070 0 R>>endobj -1689 0 obj<>stream +#`™+cµ]nösÌV®¸¾é <1äÓgÐS»ŸÁb=­ñð²Kö9…’.v@ÄþCº%iŒ+šËJ‡s(5ïÅ(W SSm)x’Ó¾íôÁ8ö¥Ÿ™ðù?”Áy7jw§7b_ÏŽþ<ú¦³:endstream +endobj +1711 0 obj<>/XObject<<>>>>/Annots 1063 0 R>>endobj +1712 0 obj<>stream +x­WQoÛ6~÷¯8äe)àP–ì8I`HZgMѸYì5–a %ÚV+‘š(ÅõË~û¾#©ÄqQtkZÕÉ»ï¾ûîxù»Ó?1$4SZöb€7O»_ø “1ž%%£‘„oÍzÉøTŒŸVGã±8ÙY±ˆéx0Äœ=‹ÅqøÆgÙîèl(Nitz‚Ï þÕŠ–½xt +'£øÏ’†Ç'b¾udž'g|øå1¶' |í-\Î{ÑÕÅ#š/ìø2ã€æéa2 ~èÙP*5]Sjô2_µóq%t/늆ôp¨MCoŒÖ*m^õýb,’>Å@hêWóϽÅc„4Ïñ•–¦¦™,òg^Œ®FÇÅQr›~7­sÚZEÍÑ×JÑMžÖÆšeC.¦t#µ\©ü$)½)r¥g×a[Ö¦ìüÁL.›êuá)ÊÎŽHM]¶v¶µ‘·`#˜¾¹˜Š³$4ƒ×u㦲6…ØäÚŠöQ +]DÿJµ›¨º”Z¬›²`ÿ{^Kºr…R6¹Ñ„¿k0Ú¼µ, +’:#gn)uºÖ$I·]«¢è“ÊòÆ‘ŠïÓä&ÜËÚ˜fÏo–×H‡©·d–n£eTɺÉö,³Ì­¹VöµOǀκlŒ«âöþ$ƒs«š¶ê«ê<|~÷v¶jÕl¾ Xa·ö?í~̲nï q ƒ† +„*ÚB%‹¬’Ž¼‹Âš>eFÿÔf9iÑf*£é$ –³:„z*•L>èû‹vµÚ +šƒ6¶ç·vˆƒŽ Ýél×kžÕ•føî”Uµ‹ÈØ$âðMý%ÒYn#XÉLxªŸëïh{®]á ] B ÀSj¤‘?£m•¥ÍZi_g‡¼ˆH,ÄõðŠƒ@8H«%Ù¤yv¾Wq÷l’ Í ”7ÌéÓõäåûÄàÁk5s[ç(6_1t§¬iëTÑem6VÕ}ÒÆW7á+C#Ë’‡Z:DÊùšÞ²@…ç_{±…óJ6é%ZT|–›H„³®þ9dÍßä(-Øíò¾ç•#© 8 äq¡¸ž„âkHBBxDãk+„Ž > Um…*mŸl ¤àºªÇšë%¨Ò² ©ÚómŸQ›0ŒÔfµ\­¸‹–5w¥T…Ÿ3.}nüÚ! |þ@:#ß³‘ÇkZ)Ô;g qÅgf£ #3bM2`nÆ®;xØï)ä*¯mÓ§´V  ¬Ø5¢…ÿ·w×ÓùÛ»O®tÅûEv„Ý™[WDµe…o3e½ÎM ,óù=Ƙ1¹øËñj©lmC¶ ¶ + ãìR¯P¼î1u¾Êµ,ž†sÜwzæ ,etbè'*ÛƒÐÁeUb›# í¬Qe§jÌ®W^‡¾Î §óŽö%³ç¸vü„¤8Åj à.ìÐ×dËÚ‡^ºJ¨!"$¯Oh$©RVtÎð¢+ù|qÆÝ=¤ç7t7ëáAç*Ü>ÙJ¥ù2w…÷Òàá“„÷ìô‰Ýsl¬ïîvyŽÓ½ ¢u$yâØ +¤Û…ºYš¢@×÷Îñs4™è3ywäÜñp°óê@dê1G½ð†ƒoÐ*±¯éÝ-}¨Ð÷¨‡ãtŽ b6¹{?™‹—+fç½CÖòQAuE“sðÞ!CYU ÎŠFÆŒ~£…¥S¤ÑÅ6ío–fîg2³;õÕ^<²Ú*ÌM:±Û=†]È´iQŸÛ—ûƒò­)vjŸÜ©†û_ÏÆù^á*‘2/|9ô³‡UÐê~±¤}¾VIî5,@˜qLq¯·yY·ü,ãF´z×ú˜f,ƒ¢%·±Í:GÏÝ5¼9&,¶ô‚³ç–‰ñ’§Ý£a˜lpÛ⮽Ï5(e=Ö®¯j´|7«ìŽÈGÃÆhžaùP,è7L|‰ ²çon£ë[t%™~ñÝüi\}©Iøö3.f ß5ð4§RîeĽl)³ê‘†øNCÅcüæp:¤1þw€g7—¸· ß<ôÖ¤m‰yÙM¤Œù?pt2Àèçü†Œçûãþˆ9:N8Š‡g `2ïýÚû–<mendstream +endobj +1713 0 obj<>/XObject<<>>>>/Annots 1066 0 R>>endobj +1714 0 obj<>stream +xW]OÛH}çW\ñÒ¬Î'!TÚHB… +!Kܦ+!­Æö8™b{\Ϙ¿çŽí«J«ªÁ㙹Ÿçž{ýë¨O=üëÓù€†c +Ó£ž×£³‹süŽ&ü;ÀÿBRì6F£±7øhc8š|¸á^¯þyørÔÇýsLÆÞˆRôÞE½Jhå4 ÆCì} º>ñÆí+ÿ¨{=¢~ŸünŒ'çäGNeü°ão%IQ${ò§ËîÍ’Œá“¡­ˆ(ÑÖŽ)(7ÆûÃÿyÔ£ÓÛåG;ÚèØâ¤÷‰FF$2RYXÈTfV$Tæ›BD’¬&»•ªh” §WÊÒ÷—E…z–…ñˆ-I„•Æ6â(„¸@ÖšûC„šc]f鬖ÛœŒ²’„%<{ic˜êô>„Á*êæ²Ð¹Ù›îNe‘Þ™n^‰ +»6ÌUÞÝÅ;;xòE:[PeZªaN™GçÙhS <ÛJœ´[h¤ HÃ/)/tÈ”ØÛñ©X½ÈÈ£…ܹ»†C•”Ïúf±ºŸ~õf··'-•þüv1÷½ùù ­Ý¡ád|BßW¾çžÖ+$®zô.§ó‡ú0n­üËz!²¨%÷›m—Úîõõ‘YÆÈé°_%y0òtfH/"ì廤¶\ÄV” cvºˆ(ÜŠlãõk§ÆZg¯7iÄE ¥ÙÓOÐNÙíAÒÉÈ«‹–Š±¬dRº?œâ¤K\ƒfŽp™© +ô éj½œ¶|äCFÄŒ(»UÙ†ai¤Õ=T>ñ™7~&ü¦Eª¡Õž‚çrŠ$! +OΊ@—–2m[šÙ§²&æEðe£áÆFZÒÀ=){B"I44nh¯K6 µS»˜*MÛx»ó‘Î>{\`pŒ%¤bÿ&–.ú\i€2CFTš£:‰âOH>KTo%Õò*TLh9§3Ù¶åpÈÈ©r>ZꧨM¦|qÐâ Ü âY8!‰ÞpƒÃ¡GSÅjSB"T½Êø¢ñc;?ÀŸïJÁ…!¥ $BD) +0ÞpÉ×|X"ežè±ãþLÿ` +dP¬¯×4ô@¤nÃH PMÒàÝçm²šÿX^.ftùùññrvw³˜^A-ÿCS¼@ÕÏî׫w;s¦A„%ª¨4TbÀŸ•pV/áƒH[9¹™ØÈ☎Á.Çt'³’! §—È*€bl ÐVïœ_.„@E6¤’쨉µt-›ªŸŠÐ••´¡³¸re]åá¬î922, e÷ô'C¯¨¶ÿ‹nFH3Z ÚJ•TŽþÁªêêk7k¦âsgÄZO›B—¹WƒñC«¹±;ˆ)¨AVEÊ™sý o +Ô¤GߘYJ?nC,÷"Ð{Îv«ËͶoeøäeÒ-(‹;gÀÊ 3V!£:kG¨ÑE Š0yïe‡­3¹ U¼§70c!BpD»?‘‚ LAõÚbÏ7AÀ] +dûP+¿)¶3I¨gtøHÆ¢L,ÃÉêP·läÁÀq½S¡Q|Re–~•²”hèüª¡¸÷Å”µBûN'][/X?ª ÍHÀÄãÑ5 +Å蔵 ƒ0×T†ÉÂÒ²TWÞŠEîÙšWª¬}l5¤±dN̵%,:Óòfñå£K˜¿*TLjBíðÁ1ÒøÜMâ«Ë»«KBWøÉɘé°tÃ7ǬR>Æ7 +ŽŸž÷.؈ÿ1ÔÆø°8ÔNŒz,wîýuô/×8endstream +endobj +1715 0 obj<>/XObject<<>>>>/Annots 1069 0 R>>endobj +1716 0 obj<>stream +xVÛrÛ6}×Wìä¥òŒDI´.NfòàXvë™$V,¥íLÕˆMÔ$Àdõë{e[‰›ZÖ…$v»çìYüݛЯ -b:SRöÆјf¯øœžñgŒw-)ãXzø¸ý¹7'Ñœ¦³8šRIÓÅ": W­£ÉtÅÇŽÞmz£«)M&´É8èülA›Ô¹Ó&éß®.ès•ŠF¾!ü¾Ý|^-£Ëß/O6õ†°Â¢´_ãr89E ÜÚ\¬F׫ƒé¯×«ïN¿5¼•©ªeÒ˜úÑøvyû=ë™·Æ3Æsä¸ç…5RµVé;ú°¦›¶yoÌ=©†”¥TZU‹]!©1¤´mDQP“KºybP¦¾F´É±¿¨{²©hoÚWI®´ätÇÙfµ))úŽcfغÐ$¿6R§2¥JÖʤôK¾©^ÓmJè”ýº ['m•HdÕV™J„nÈVR¦muÔ9I"­KUËæÁÔ÷¤¥ºËw¦Î ‚ZY?±íèê5MoÔ†§S_°x¡Ž¿)šKñ¼Z{#Z‰äžboÙQ–ñDcˆs . +¼­ü"kQ kmöB#=¨&?òºŠ#ºÑ’L†Z¨$'£‹=‰ª’¢†—ǃ&h-Ê8J—S‘5ÖÛ`).ªÚdª@8Ü}žÂ*¦¤PR7(£œÝÓÔ”B鯰¶-Ù:É9\Êr‡XØ6óÄ;ЮmÜ5¶6•HD*Ô½DN&I@Ðs˜ºúsíM¯5™:õé„ĹØÖašµ\ýWbÛ¾+Ü“É„c–@´Z^lOß-cÙ¢x¹øâ(<ºš…Öïx&’‚l[U¦nè-¨øú>‰”ùŒ-q!¸ðdsÆßÙ`ÂÅ”TQ2Í»œ"ºæ꡸øçý¦FËÁÀ0ÔκÃÊ“ñ€¤/qbʪ„$v°³äX]SûŽpŽBxÚöÏ]Ii)µ’éöä(2waRKˆ•mѨ +™%¦RȨD£)UöŽ–7ί?FÌ>¨ïd@ÏoÄ’MEÑö$BAeP [î¢ÄèlÛŸ}º„RTâå„j”ÅLe#TÈ\ ”ËT2`,+§Ë>AW8öð¼„à1x•¨E)pîA¸Ò‡þ£»ÂìDqT’ÇÕ(u- )Û +JæZÐ5(Æ¿‚eGí sÃ…y`T¸Ÿ\PˆÖÑÁ³æßà˜^E‚9 §ð÷G€ïÏnkcŒ4èN÷¼û®¤æ-äW&î(XýÀ¨ƒ[Õ·4žÇ?0è¦ÒZím?´y¡¥xp¼ H˜z]ü¶ÿœ|á$‚!ÌÇ’]ëjÝQƒõ.¾§õcó>;>JÈ“jö< “ZUZ=4ag¯i·AZ(•À~me´ug•Š¹àøÔÊz¿X.¡lj¡-ÆŸl¼2'â ÌÁ74ÜJ>( H_¼?æ@’aÅQux½ÒIÑ‚CÏKðdÊ=Å^]a Ñ8T›Â{t5Óç‰ÍÇ›Í%½ñÇ/&uj€¼qn¨>9&@_v8¶ð< +Ý \Œ¡^iÿ¢¦ó³h>‹ý‘y2°§ËMïSï_Hâêendstream +endobj +1717 0 obj<>/XObject<<>>>>/Annots 1078 0 R>>endobj +1718 0 obj<>stream +xW]oÛ6}÷¯¸ÈKS V,Ùqœ<-íÖ®@[lÛb@_h‰²XK¢FRöüïw.)ÙŠÒbCá$2u¿Î9÷^öïIL3ü‹é6¡ù’Òj2‹føæôãÓÛI¼ZF3Z.VÑŠ*Jâet×=•ô8>ãôfͧpDËä–‹Õ-þNð1’òIrãÅÅÝÌ;]Ä·Ñm÷ÄNÙl±ŠýÏ'f|0¿[FÉØßrŽ¬’»U´ð9Æx#<õî’Õ*ZŽ­æñ¾Œû,vžØìÕzrý^g´ÎÒòvEëÌcƒoÒË×…hœ4¨9¢ßõœ¦TW*%=>|xõðrýö Šã`?MVp¿Î.ÿÒ-¥¢&½qBÕä +IVTAV·&:FWƒorc•“­uo"(“{Yꦒµ£½4VéúŠŽÁ1žÑ4ž‡p™>Ô¥YÄ{ýå‘´¡ÖªzKÆë4 +éÞQ|Û¥;_L¤‹úâˆÒTZKÃDSIÚ+Apw2‡ £5ÏmoïjgtÖ¦©>‡A³Ëà\Ù¾:™ða¤Y“¬÷ÊèšKŽè×P?*G’ o—¯u¶Æ0&_&\ÞãÑ:Y}{ ‚FÈ\¤…Lwª¾€­(­¦] ¬HXº“•r°ªå¡'†ë/,í…Qºµ>öƈάçu#Ix´?е®Uo` ¨Ú:àa 2Ôï + ’±y–.”ê¹Yί ªt¦rÅ‘¤s¯¥'îsÝÖ G…sÍýõµ—_¤Í6üuîmT¸ª|Nj<ÐDùÚ;e@þ'7?áw2+‘ªîÏ!É´5'Þ´›R¥å±ÃNmÐGL«‘†þµ9RÉd¹Ù|ß„ŽñBD¡ª0§=h€F¤;±•ö +§e›±(|ªWAúPXFß•C3oÚ-ú¬˜QwÐH<ˆ£e$CtvÀÑ9=+ b’æ>VvÄu¡­;7Ö`œ+4W×Jhøçv„÷³£‡gÇö€)`({üÂØ ¯_¿ÒÆèåÒX$e‰G?-ãÀSªk‡æáJG…¨:S{•µ¢¤º´Ü—ŒÀ€Ñ7|–ZïX^ᕽâñDíYäC{á½­‡uì¾—y?ÂNUs“ +» J (=§n™t‰1!ê£ç­Ó?üSí½÷Mô„3ýüé=Ý?o‰t«¦UsSœ˜Á˜ü ›hŠ‡0*™ Øü7•¾¨`ÃiŒùTkSy8£´T~þy"·j*xêWmZ õ!YæÐè’4«’°iFdfšÊ?&p( ?uëèPhtc—˜3Q™Å” {©¨ÅoM™€Þ¸ìs£ÐÌ;,m§Dˆ‘+nŒÌ%ævF•t…ÎÎF*÷Ep3ž– +ãèµvô½µ©°,Í^æ]Оß52ëw ‡+‘&ÌÎÖWÔh…ÍáÛ§óÔkø‰2‡C”AD¡œëÈ'Ã;HmT/‡{Ñ]¶ÒÇ|ÅÖ»0:Q4‘Fî\#Æ2ªc«·?ÓÛ?ÞófB·u‹÷Ûˈ>j€ìŠÐ] >?ž{[#šB¥†UPŽ— +ZiŒF?3¨ç·P½4¹À \rVƒUí +‰ LmïèÄá{2yÁÔ¦è¹óßc§ žëþÒ힧pŽ{ÜmywSŠÅu^ Ì oÎ5×<Õühw²ÀÞ`YðH&ù¨UÎoHkÛ +JórH/éT7Ç~súU1TJï[’Fd3<:Dº¥@Öß@‚Xm»Á¼r­'‘ÛºOÝH6ÝÆ¢ZT’p5?­üw¸'`‚ƒ9òU§Ïh`öà„«2ïqyá;¯×þ-Æê¾~s3‚ÝzbÏӌïñüËéVpÏ#Ôh´-æ¾ò­r¾sô¾a1CC„UašÜÐôæÿW@zÿçÞ½Xⶓtõ,v÷Ûzòçä_ÙÔendstream +endobj +1719 0 obj<>/XObject<<>>>>/Annots 1083 0 R>>endobj +1720 0 obj<>stream x­VMÛ6½ï¯¤‡:@%[–¿vOÝm’6‡¢iÖhQ @@K”ÅD"’òÆÿ¾oHÉñ:IIÄXŠä|¼yo†®2šá_Fë9å+*Ú«Y:£ÅjÉ¿›5~çøo%U¼£§Ÿ×¿†£ùõuº¢–²Õ*ÝP\5t•oføžoVé»ùuØ «°{¶ni1Ïq*žåÝó5v×Ù£]0ÇÍe€wÛ«é‹em+NfµYÓ¶ !Ïh[Lþ®¥&åI¸÷ŽŽ¦§ÊXÔ çŒ-É;IO·ï`%¬LŠƒ‹_F»“”×3J²<Ãüäu¯É×’ Ó¶B—ñôr¸ssFç`‰’’n:'íAÚ¬v¢Ý‰ÔØýÍKkŒ‡ _{MÎ mkåèA5 V /‘B©¬,¼±G*DÓÈ2š€-í…ÒJïC„ ;?ì9ÓÛ‚£.%½™¨T¦áÌoÏoŸ]$èÅ~“ÿÎ -]Ôož¦‚(zk¥ö Üüå:£KGÞK9ÊTʃlL×ây+eÀî<—_þºŒJG0Z↦$³ãøá|w¤Þ yDdÄX!Jìc¬&„2Àu3„H‹ÞR£€€©§ŸgºÑez˜2±ÀOž}Êæ X³G|UH5Œ䎜òÁ “׬üÐ3ä(˜7Îbnç…™ƒPV6R¸X—eÓ7@@Ri´|„Ü4æqØž¾ø.ú%–îo¿»};;ÿ"!°l±ŒìÏÓ |J²å&2u¨lÐ؃àÚj¥`*B901¯¨…Þ£ú=²f}–UÖ´ ¼¯ãí #ø'ÜD2|¾+Y1Ðaò*u …œ[¤ºˆIM_\S†RAÄKJÖAÆhÿãd±Ú¤«å<:Ë7öóíÕŸWÿ.â”endstream +]Ôož¦‚(zk¥ö Üüå:£KGÞK9ÊTʃlL×ây+eÀî<—_þºŒJG0Z↦$³ãøá|w¤Þ yDdÄX!Jìc¬&„2Àu3„H‹ÞR£€€©§ŸgºÑez˜2±ÀOž}Êæ X³G|UH5Œ䎜òÁ “׬üÐ3ä(˜7Îbnç…™ƒPV6R¸X—eÓ7@@Ri´|„Ü4æqØž¾ø.ú%–îo¿»};;ÿ"!°l±ŒìÏÓ |J²å&2u¨lÐ؃àÚj¥`*B901¯¨…Þ£ú=²f}–UÖ´ ¼¯ãí #ø'ÜD2|¾+Y1Ðaò*u …œ[¤ºˆIM_\S†RAÄKJÖAÆs$"…t#!)ÊÑA ²î¨‹ÀÃÊw±’×ÑÏÐ +ÒS Ñ8Còcg¬"ºÅ{–žé룢րMàÝ{¬ –  <ßL§Ÿù˜výnz2ÍR N9j¡>¶¦wcü—&CZ_4 +g'£Ó”^‚ÈLI óQ¸+‚Æ=jN¸’Ò="çªÇíÚ´2 ù"›Ö`)]–c8=6â±Ána¦TN”PîL§\&´X p²–GHŠ4š®ë;†œDïM+¼*]YW@¹1hª4Ò´QïåEh\‚ÒH—Ž°r°£P.táƒÔŠ{`8˜AZy›J;~=ˆv$’/¢’@6ì®WM96ñ;¥…¾Jª­á¬ ÷UÊ‚/v˜P5{+ÚxsÈ„Ò)"¬Ô¾·!±O#t2Êu˜' ÉÕ¡3@C*< Îl!•qLÞó¨ `òZ28)wt^¶ LúE-Ìï]€´”Ö¦í?L=÷;¢ùMœé|nàyúdhŽx0q™YòPÏ?CT=ä`Ó×nNñrÃåx3v˜ÿ!Äöß¹œÞw›tÙ +OäMN«Õ ïQ+LNzeÍ;<Èè™)z~ü€é&˜NÆ ÉzvÍç¿qœ,V›tµœGBg‹œÃ~¾½úóê_D÷” +endstream endobj -1690 0 obj<>/XObject<<>>>>>>endobj -1691 0 obj<>stream +1721 0 obj<>/XObject<<>>>>>>endobj +1722 0 obj<>stream x•W]OÛH}çWܲ›j‰/’Ð}¢*H•º”]"­*UZMì1™bϘ™1!ÿ~ϱ ز ¢ÏÜsÏ=÷æö`L#üŽi1¡éœ²ê`”Œèx9M–4[.ð~‚?+©f““dÖðqužÃƘVlÍ— Zå;£­²5Æÿò~õ‡Æí¡éq²8ÆÑU>¨Ä$¥eY ÏÍÚsÃxp8™Ã+_/Éo„'UÐÎ4$YS_[‘+}M…±$¨¶òN™ÆÑ´NM¦ +Q­E¸Q©ë§RÁ«7t£Í6ôI¦Ì»K·8– ÇÓdÂÎùÄZia•t´UeIk d´¨dŽÏ~߇ l’¼÷R³ï„¾!ÊLhº6´Ù ;eCÏ‚d1ù=’y¿B$-­ÿoøZÐ -¥s¡ö Ê•ÎKû.Z8¡1ŠÈÕNgûÉ4™%tå…õŒ5'áªuNÆ4Þn)1Y¤ïy$ôÉè_=y»c„s€müæE£  -[yTL.IÝàÂFV°HÑIý øH2£ ÒóŽƒîFÜ1 q3$‚òƒe¹}sZïÞï'Çæ8"ÁÞ>û^¼-:ŒG€>3UpW"R¶õ<…Tú,µYRšL”1¦‡,PG2 ¡Z\ƒÑÜ<¹ôB•@^?sÒ‹ÇÔôv ­¸k&EÖ”Â"!´$J`¥`’qËxk¬·Ü¸C‘9s-¢‰¼±9þŒÐ¯ }Ö`@ôIíâeVÜ…˜¤°ÓŠ|W¦E~'´GŽ,Á<øÙ“Š©Ü‰KÝ?öœèdÔõƒ•\©sdIL•ô“z-ÈÙíhƒí´ÅJW°Ç•,OåŽ*o•Ýà`A™”V^‰’ÀJ-3† ß6ÒÅÔÓs4-T26íøQÓŽµm ÐkìMtöëêìwb S–fË vŠ—«¢½ FEéâóÕ¿üÆ\üòéô’c†¦x«Ö 4E¿SªV‰Úõ+õŘ5PQÛoÄÀâîv¯@ ýFCBÓ:ŒÔÊ2žž¤>«A ‚4„€ãG ºc¨Óç1Ð?< zayüýuC‹Ñiçh­Œ:§;_Oc{tÖ©J¡1PFî°ñt‘6yØë6¦ÁÄ j‚úR¨ÇòsÇPÇÖÒ«~/0„Hæè¾Wq}Qå ¿5"GÎ0•È8;÷øŒè¤eݤÔûy (!4,«Q™­@xܼ”6ΦAªRdz:ŤMÃ| /]uFXK0Rzö¡%±€%Ç2PCüãÜÊapµ”ëÄ¥›Î£ny/2Œªäž$âý0(?_Çñ.n ké·œk´º—ÍŽñ "žP>.>ïЫ½µ¸Ðt¹·kÈu£rÙo¡ 4ìºBZ$JVà]dWg=”®ë€õ}€îˆƒ jY—Av¾¿ç(^ÊóÕ>üöl¾en‡V áÿ°ÇòÒñ=0ñiW±‹MØ#eÅúè <Èùe”¾Æ¡‚šâPÕ±{H¬g\˜C¥±²uHqÞ10àcX °ªe¦ -4Ž¾dI;Ž,ê´=,HÒWÂÝ0B7îM'ôW£c>ûi¤ -^=T;¥öyb=ÝÒ.ryØyÂf+‡±¶Fäv9>/XObject<<>>>>>>endobj -1693 0 obj<>stream -x•UMO1½çW ê¡©Jö›%p£êçÚ¶UŽ3a ^{k{üûŽíXB+µ‰"mbÏÌ{oÞL~ÍrÈèÃqe ¼›eIuž%TËcz.èc6ᠬˤÚ?xÓÌÒ÷ä94ÊU/¡YåÉ2høüàààÇÙåŧ‹ôçLmaPâ-h%·À8ÇÞ3zPk8‚žÖ¡CãÏÁµ\w£3)‚P𪹡‚:œÓ¯np­6ñ`‡dž@Ó -ëÌ`‘—ĨYÏ;dÊÂV`[=ȵzé`°¶gœ ­ÐÝ#ƺºwBÓe_›™ë¡Cåì!h3 ± ,7¢w‡áªuÌ8|¯r¼£»ôhÇ€H…}ôcxQ“âüCâ =„MËz 7ƒu`‘’>~û’À§MÀß²;¯&%•‰ dF -4pGÚqУ 8U·Ú‡é‰ª°c[PˆáÂDp§áVH >˜…{”2‰,N 'jÞ3‹2, òWR$p&ÉŠ9q‡§ˆ uHP?`Í°Óê©`”¤ðÆ›7:ïX4DÇ×ÝEM›Ç 2‡t4öÆjr^ë+Iq‹”@x⣞œÄŠ@bñ '|XÛ­ž¢›”38Ud {¯éJ¨Ô¶>Ï›%KOk賈5©Ô„(µ¬[±åE^¼ #ò¿±¡Acìtže„NwŒ„!3áòÁ±•D¸.€Mß?:…·^Ãë‡ØŠgrøf¾þI£ÈÉ}!»Æ®>fú‹ž°ÚBë'“Æ1b °ütí/ˆO O‚XOÛ2ÁA¶ >%na`XüjŵbÈÅz£iKX [eÊ÷O“Aèbµ ™çŒ1Áqñ¹ywºR¿™|Ý«ï—I¹%µ…ò·Öa5ó»ÌÏ^´¬©õ-°°ö•ÀÖõmjïLµÊý3Ev«r -¢š~å]ª.TƒjD£·—ã>ËkúßX–P–U4ÎÕÙù›3øbô ro5«”†;Îðb°8Îh:Öóÿ]U½LꣂöçUæ½kf_g¿îRû¸endstream -endobj -1694 0 obj<>/XObject<<>>>>/Annots 1079 0 R>>endobj -1695 0 obj<>stream +¥s¡ö Ê•ÎKû.Z8¡1ŠÈÕNgûÉq2KèÊ ëkNÂU뜌i¼yê'‹dθ1UãH”¬À»È®Îz(] Ö?ëûÝAÕ².ƒì|ÏQ¼”ç«}øíÙ| ÊÜ­@Âÿa5ä¥ã{`âÓ®b›°GÊŠõÑAyóË(}C5Å¡ª$b÷0Xϸ0‡Jc!*dëâ¼c`ÀÇ°„aUËLhÿ|É’!wXÔi{X¤¯„»a…nÜ›Nè¯FÇ|öÓH¼z¨vJíóÄzº¥]äò°ó„6ÌVcmÈ3ìr,x¬8ÁjÀHÏ;'|i¨E6²ˆK€Pzâ9Žnm°¨J„Šn]`yx w·\¸vLaRzÌ)Vvvø"±ÛQ ˆxA ’—ünSÀVDzÜ&²lÂñßR–SšÏÛ¹:ýãã)]Zóî±f F²<0çawa¸A¸òÁ[ÛÙ|™Ì'ñ+Ëx6cCg«ƒ?þ„S,endstream +endobj +1723 0 obj<>/XObject<<>>>>>>endobj +1724 0 obj<>stream +x•UMo1½çWLÅ šýÎ6p+âóÐíâè8“®[¯½ØÞ¶ù÷ŒíºMA‚D‘6±gæ½7o&¿f9dôÎᤀ²ÞͲ$ƒ:Ï’ªÕ =ô1ÛpPÖeR¼iféû +òš-åªW'Ðl€òd4|~ttôãôâüÓùz‚3¦v0(q´’;`œcï€=¨ ,¡g†uèÐøsp-×]ÇèL +… ¼h®© çô«Û$\«m<Ø#™'дÂú3Xä%1j6ó™²°ÓØVr£ž;,‚í'Hktwˆ±®îÐtÙ×fæjèP9{ ÚLÂC,ËèÝq¸j3Î?¨ïÀÖè.]î)¢pˆ~ /jRœ€_`Hü/¡ÇУiYoáz°,AÃÇo_ø´ ø[vëÕ¤¤R"T€ÌHnI{"zô§êÖ‡0=Qvl +1\˜î4Ü)Ádzp‡R&‘Å+ȉš÷Ì¢Ì#Ëb™TI‘À©$(æÄ-¾†@\¨«@‚ú†V£$…7Þ¼Ñ1 xÇ¢!:¾î>jÚ>/XObject<<>>>>/Annots 1092 0 R>>endobj +1726 0 obj<>stream x}W]Û6|÷¯X(z.ò·Ï h›¦I ô¡M òBK+‹9JTIê|þ÷%%ŸO¹ÉÙú —³³³CúßÉœfø7§›-7”דY6ÓóÇÇ“Åò6ÛÒf¾ÎTÓr±É–ý¡O“õ*[Ñf¶Èfx9ßndh¼“—ÛÛlM«Ù*½¼Ýbfº“—X„–·+D]mop-!S9™Ï—ò -QVs}ƒién˜¶XˈѴ·»Éôý--f´+‘ÓæfK»"¦‚'ùÕ¯•j;Z¬2úÈ­uA7zÛüËÝ×8s~“f¾Z +QVs}ƒién˜¶XˈѴ·»Éôý--f´+‘ÓæfK»"¦‚'ùÕ¯•j;~úÈ­uA7zÛüËÝ×8s~“f¾Z ¨]q…¡óŒþh‚³E—m›4tEóy?tq“mdè®bâZiCª({O¥u´ïHIÖJ÷>¨½a<2¬<{Òž¼ª÷êçø™YwÈÑ“9Ê´•:O3z†"B_ÙÎt°l -õ*p^5:Wæ"h? ¥[ Ø¿âòÔSð k|X,¢ -<ªRæž‘ÓÉvä»}­©‹Œ2úÅx{Mm -æ™I—„A•ò”Wª9páÈi»@=äMzdªÕ #Ó$)Š`z¤NžÔHJ5Úפy+p9{>/\TX ^wy%ß’C®ùvžM)ÙVlZ -Nåw|l†U3ú$%‘Ú žMÀŸ$rBò 6p1ªÂÁÙ®%[RËtб²toM׆àÆ'ð^“¿ÓÆxRMA\‚Ýà3úG‘³¾‡ö•£Z8OJÚÛ.£¹ OÈ`´rk½×{p?²Ã6æZ)DS)ýJ*Às”–†G -Å~ÒÅ:3uH/ -¾gc[v£%K§1Èœ^\”H2 ™crŒŒã -½³ÔXèÈûNj(³ú•‘‰$š -êÈenë6k 6·Æg¾ÞSÃGßÓ™L‰BŒŽóDÁòvÔ¶hç>ÓηœGnC”a!4g-…c~{T@HSêCç”xÀy 6RL€ÎÅ[¤ …A©™„’²¤¸äØx…š+ü}¹A–„|¾¼¤õ ~le¨eç Ûç„ûö‰Ö2èÅsÿ= Cc{-½oÉX{‡x¶;T‘rQbž²ª\^AþÂÖÒO -Fˆ/ÏáxÐ!äûh”zJûÈ{jÕ¶‡«Ú×ÓéÙ÷ÒÕ4b¿ôâèYðâEF¸a§ 馌üNß?ãÅo“o%ÏŠ.é[hFË‹ôuVí!™±sÖ¡'ÿZtò ptˆ†˜<Üîïµ…Êk¤,ÙŒrµ lLì§x‡¥~D;ÖÚ:‚¡ˆ‰Áj¡\1×7ö¡U®–²ÈõSˆbȲ¥äÖ¡F0Á¬éa\ãߥï±^ -XÁ—úºZëµÿ‰vbðøÏîDº–ÝI5ßtjß&ºÉMW0 -çBôŽ3h²P%Œ^-jÄË}‘ Õ —`™Òq?¨\4s”Þ¤°-qXXá%I‰r#*ÍH%þyH^a×í H~WGˌޱ`6bqýöÿŒŽ@Ä•‘²§©æ” -†´°»Äl’²÷ ¿È`+•GšB\ šÑֱߗ—qˆg… G]¡Ë…¶ ²ô£òÄÑ¢ñ Ëãf«G(;#é ZqAÚàe*†ˆyJõú혖QtóáüpÄ´g–" æÒâAë4J‰Ÿú=%>ˆ9Äm«`l—攉…œÄ±«MûP¡ýùVåßìÛ;±ÍTßâ±02[€M߯ûóÖÕE6oÒ«¡lWçnMÏq¦G´+l™´ÝhxFŸ/í°Ôɵ¡RŸ” ¦).Î0=Ò’_;4«md׆Qâ[äyÇÜ"úFÔ(É=C†q!q()ž¸°òëúíp¸”³5Îkg ô†æ³È Gíþe<®½¡içÝÔXœýz;5zûCöC=š4´õÿÌHë'>uÙxÞÁRŽMÉ%Ó€¾'þY0çÀ=UiÎcq'|Ñ¿}!6%}Ð(œ _\‰ôàÞ¢‘h= ŒŠ„äØŽápÈM+Ûxs¢a}Øh]£Lédx„ÿ]Gw…;Õ8Á%XÏÈîÕ¥öJ*ByÅiãv«Œ±Ç´òŽU8ÂÖ¢‹º,aZ¸õœwN=ùÀ5¶\´]<þôfErqÆAs éöñÉò&iæû?wV›m¶Y/ð3 -š¯ææ·ÝäïÉ.ëÛendstream -endobj -1696 0 obj<>/XObject<<>>>>>>endobj -1697 0 obj<>stream -x•WÁn7½û+¦ºTbY’eÙ)ЃƒÚ€&Mµ@_¸»Ü£]R%¹’õ÷}3ܵܵ}(‚")—ä̼yoõÏÉŒ¦ø3£«9],)oN¦“)]^_L®iq}…ÏñŸ×TʇùÅl²xëÃlþñí‹7|Zœß-h6£U‰àËë+Z„ÀÓ)­òq£òµ±zrºúq2¥³ù!WÅxµÖÄKçwÈWŽŽC“MrgË´Üß8&m£?¤ÅË~/Õ®¢ZïtM¿÷›@á`=4® ´7qMÑÞ¼¦ÐY[½sO\«Hk(ÓÚRtAÆ’« í9$Š™]Læ\ÌNû`œ äJú¦šL‘²ØÌ'­xT€  ÒyÊT¾Ù+_Ê]³UÑd¦6ñÀG{¨4µCÄn—ñ?pØ©ºÕœ…±¹×Šó?¸€Ô5RÊ/HQ0•5¥É•õ¡ßÉI'P•@Tñ’±( AÊÎöÉõÜ¡²Æ…øb·Ûj/{ƒ„mÔ¬‹d5ò@\#ß¹6ÕZ{T¦,]Lè‹Vy(¤ˆÆ#,gš¢j|.’`ß_„LgÓ8ùÀÖë­òäŠþ¾}øNµò•¦«ÛF3ÜL¡BE%µœß}¤˜Ë>»X$’Îñ÷„îmÔÞªš´÷·ÿÒ)}5Y2 îK)´ÒH’F÷_V·_n~§Û‡‡?FÔèâƒBè‚—èÒg2Ø#„Kü©€Jo­~Úê<¢n”ªÅï×` -ùÖZ`‰L#·{ë]¦2F(W x/m Rµ5ß -kéU®=;S|Řs‚)‡ÇqkÁCiß îZí0Dø¾â zè.DÝPpeä¥ÇÓî\¯z@ÄRì±È:Qz‡MVð'ËhCŸ«@7U.Z±8d\WêÏ×àʨEhrˆƒd¿}þô|¼×f—®á˜Z­E!¥cè7R€œ¬÷²­ !sµp{üòçÜj©“¶5+k‚«Û½F?ºv3²à¤ó±—NÉwh2¬][s_‚몡µÛSt|Æ»¢Í¡càdJÚº Ò˜ÐWɵá](ƒÕî¬p a£‹·¢²$%di@ -aŸÂTb`Z©íjV¨„æBØ…6+  Œ@AIœÚqaAk‘ÂFë­°}€OÉúK“.5A‚"{¾MøÙµ :WËè|Ý Š:nƒÍã­p‚Á/òü®7ŒÎSY¢”võ^ób—* -n90ðnëŠèºŠkdçÒiÖ‘`…–ñ•<©:u)¦aP8û3›ä›Póé@£"{1ù´`Ã~ŤcHÙœ*LG. ‚†ãŽâçRÍ,ôˆ)L•Ñ–ZÀGzªºë<õûíGÍžÁ·é÷Y±BœLãA×£|ä¨%Ä,†ÑY]@ÇKóôS?÷‚x}cfr˜Î&ª”W?—Ç𲤳6-÷ƒxÌó/ÍNSï¼·¹ùr<´[vVÌŽø ò{ƒ‘ùn´|17¡Ïlž¶—O.¦†äT…G§a´ò<à×~7Ûø¦£"àm³æþ× Ä$“à8oPT÷sA‡“7Ÿß]w?nfKüR»¾ åå¿Âð°üvóùÓ }õî,—~s9°Ý£Ž£Ÿõή¦yÿ»ÏÖÅòz²¼œã‰‹]³ÅœOß®Nþ<ù•öendstream -endobj -1698 0 obj<>/XObject<<>>>>>>endobj -1699 0 obj<>stream -xVÛnÜ6}÷W ö¥.k¯ñ ÈÃÆ^' Ø»®¥4 Š>p%ÊbM‰*)y³ß3¤”Úª †[ÎåÌ™3üëhJüLélFóSJË£I4¡ÅÅEtN‹ó3ü=ï•”ûƒéÙ$š½u0?N‡ß?&Gã› šM(Éãô윒Œà‚/éñU!êFZš½()$9QLŸ´rÍÏÉŸþúô,\?™/:ÉŽa?h]5ÖdmÚ(SÓM§éì ÙÀ4)”£\iI©©¡*G‚Ø9™œéGÓR**ª¥Í-©1ô,´ÊD#ùÌRìÓrÒ>K‹° í .k.ï ÑPƒüµz’úÀ¹Lèd:ɦ¢uÒGƒEmÍNË’”ÊI5” /¢:©z+˜»FÖ±¼M-œ“0Òš£à4ä¿+v_ìVìôöÆ>©êqB®*ußf§Ñ‚ù†ª]aZQfhy{ë+ðžß‘ªüÆfè¬öUD_%âÁ­’ƒ” -+óV#jZÃi¨ Èh g»$Mõ/@ŽTÔb§´j -¬*g§]X)¬V½‡aÞ€„æd•½€¬£N 4Q¾o0£J’¿àðÀ_G+3ÒU?5¨,2ïÍV´Ãhmö\x3@‘±a¤S™µ¿O% È×wè\kk«\xݕ±2óåðL¼$µoH=‹hé\[ÖLi~|ó§×•ç” -d<QÚ2„Í¯È صÆñÇõ§xõðëêÁ èþª?Y^Ý®W›„v¦)å£9Ì®GkÚš’Uœ|zØ~¹¶' $ï0BÝN•J d-Á)·õP£éÈ>E—«Æ ]¬=¥ýŒ½¬ç©2{_p%J?)h¯xF{A|À^€L º+wæ=ÇÑ^an‚#ßÕÞÔu5Ê5e=Šè[' -"Ë þcw‘‡œv “Š[Xãÿ3ÔǾdÇã› ]ô’´“÷;"üÑG@e1P§²ôý,kc…=xÙr4´¬ESÀl /Ã#+&òä -’øy¯|cZÆñ—» -ñz»¡yÄÚ¿} Ûevlo(ù¼¢xy÷qIñ—u²Š(ÞÂþj{w·Ü\Ç}ÔÅŸ·_7t½¾¦Í6¡Õoë8¡õ†VË°ê¡Òßê•è^KI¨0m€ò³¾0²ÒZð¦”ΉG†ÇÍÊTªgéÅ‘uó• ND½aM\ðºÍ*¹“hÑ å¶Ê¡gUÌØy§ˆ¹²˜u¿ˆ~x¢õ=yêYéŒn}–pš‹ŒÜw²¡¶ŽH>^ÒI aƒ bŽe“Ž½—gÏÒ°Ÿj£0 \¸ÖMWË: ¡–ß±»†³Ä>‚he„K‘—´ëMŒ´xo‘HS èÇpXEð¢\†å4À+\a$Uô<Ù£œV#}Là(Ã’…N~gVÔÀÝŽÕsóæà `Y„±ŒÕë·÷;âxÿ¥”s8ååýÃÊ/Œ“ù$ì}¨éœ lEÓ`öJJyê ¤\i¦¸ƒÇW¨´\À§îÐçäk}G¶ yhy…¼‘|¿»{>‚©ü>/XObject<<>>>>>>endobj -1701 0 obj<>stream -x½W[OÛH~çWùeA“h¥>¥+$–eK´R%^Æö˜L±gÒ›Äÿ~¿sƆ`ØíÛAÁžÛùngòsgJ|MédFGsÊëI:¡“)~Ÿžàç ß^S¹s¾Ø9üú‘¦Ç´(1e~Š_ -ÂðÉ„ùîìCz”ÎRZèÐÐloñ£i:£f'½û­µÔ,5å®®•-(Yû@çW¿ß]~ûûò[B¥wµŒ¸½ —g×W—7‹­×­5ÊÜ&¥«’:×Ráìo =è†wžÐÁ‡á=©Ê(!¬œ š·<ÃÓââöðê–‚+›µB‰&u Îæ½Î›ª#cC£ªJi¿èlžrÑ»7®á…T#[¯MU‘Õº Æfø†%… ´B5«&¡µ±…[“‹Å£4 ô€‚«¯Ý׃J°J­CPš‚ê¨dé.²t­-rž‚©M¥üV]_nî^ŠÂˆCÝä‡<3Piª¡ÎN/UÝ´+àÚ0 +‚É0©?qPu¦PO³tmC¼“¶7Kc'¦6hÿ¤½—Wo÷)ÃÐ+R!´µîÉí¾TO, -þÍŠ^× -bQWòL"DÆȘ%Fy­ ^/;˜jó°bÊT\‘½x(ñ7x°Œmi¼^ƒígèRú]½"×ëJmø£ãû¶€¨k&²¼vþbh Ž‚G?[¿ïÓJû¥ZÊ:ÂvÚx •ç`:ª_õe„6³Xî~ \ÛòÆ|þ0ÚÊ×ôd” oVåZ5+ïÁ«:½ßãÑÛ¾=8šF‹azÃÅa¿6l¨³H+\o·×ö‹/¼•T»Z® ´ Õ˜P¬©°„íÆåd*3ûÊÚ{HmpFîlu0ˆ¢>ˆ‘r® -ZAq`6Áñ<Ã’aëŽDp2©‚ ^|#lÅp!ò”ìGÿ*´íÄ{IÌ–š - ZÂ8¥8[¹Ï•'¬fÖo±e”.–:í½îóÅÓ›™m"Ù+åëDÜÖèzå¼òåÁ2ŽR¶Î,R•€‚dÿÑÆ}98wbì› -ßØî9 j¶HOV½×%–ü¯³Whª³bHŠZui™¼øêÏL†}5:'àn -ù‚uaNd1¦Þ@qÕ½¿¾ÏT( '¶”3)qÞ~,Ô>8öcÔ½Œåúp²Ì¸pBÞ¡!°q-Ö¿¾º[\Þp—@éiÄ`þ›TòŸÂO2"+i"‘ÆøŠ¼Ö˜½=ðü¡:ð!U£ô’@ ì‰ÞÇouÀÄ™f¡µ¶DÄÛ¢‚êe/ƒVòl¥Lç -j`gt*‡PǧrŸ"Þ Ç/d6ß>Ù¶Îb“‹,öÔõÒäK©’Ø)‘[•B#ˆ‘8€ðµ.é8kÍW¦rvå¨@Æ@”«Ü@8RŽ[,`ZÓ€]IJïöŸx½Ã¯ú8\ïŽcS¡þ_¼npPÒg:»¾öŸ¤§|z=L² ã6›Mºõ}Øuÿ2-Ãu§‡šJ…ƉyŸé{l&¯ïsÞï*öd•!÷‘61Ñ•Í5:Z±F¨Uk.pàÔA -Ѳä2 ÚÆÕèë9ŽÝQã• »í°'•s+îh¤ -µ‚bð8 4ár¯)Ø­QxþξbÍçKeqó‹L1Ñlœÿ w9^äxûJ X~qtóçá%‡£ä=24ßÞ︇±AàJÑïÚ„%C5LÆZu_õDl*Ót’½ßž¯!Ò>úËw‚é8#n3¥ÙÃmÈU­´&<âÇq ?o}>¦î%9CŠ ¹Áÿ“¤À/+.tirfÞõÅ#uã=?Š}kñ_ -' -F@,Í}-8gï÷$M¿žö³¦shêôˆæ'㇟»³?ÎÏèÖ»ˆ+úâr\À} C|0L88™ÀÈÅ;ŸáŽç§éüà Ÿ÷ðzz|ÌÓ.;íü_0¢Ïendstream -endobj -1702 0 obj<>/XObject<<>>>>>>endobj -1703 0 obj<>stream -x…V]OÛH}çWÜåº"&ßÀ¾JWH-›k¥•ÐØÇSlO:3&Ë¿ßsg&!uiQU‰}?Î=çÜûí`DCüÑÙ˜&sÊ›ƒa2¤ÙÅ~NÏùçÿ¤Ò1Γñ[_LÆ£äü­/æ³dÚÿü2=8ý4¥ÑˆÒÉççg”„ÄÃ!¥ùñ¢Õ®’†rÝ4º¥\tV’. â·Ñ$ÑÆ’²T‰gÕ®ÈêFºŠµ‘¢x!Óµ-ÿkm&'d»¼"aé^4™ø~=Ò`4AGiqüp¬äd›¬à¸Û×K£R­tÅ6òÃÒf/a­ž$}T+åD}di)\µÑæÉ&tUÉü‰^tgB„$×mI¥ªe/u&K ˆyáŠ&ëJöµ ZA…@â„”-‰g­PÕÚ1.¥é¬3Â)Ýþ#ç@M-Ú‚^¤#!]kkUVË*ÒR)TÝ!;¥×÷)M¸ýM%[ƈehžaŸ¤ Sn>3Z¹°ˆ[FZÛëÇJçÐ *G\ÕæÚ™»„–µ˜`îqq•p>â3`xÐISŠ\ÒÍ’!0ò]î’½~vªú‚ª~•:&ö…ût~îàŒ·|Mõ YDn©Ðt­WIÛd~T '8ýtA#ÊlLFÛñ,™$Ó„R ¦á±WRÆLêã».„d.3~‡ˆ[kýÔ­ipI—7Þ_ßýs}G÷‹/—‹ÇÇÄþÕÙJwuA+`Ïc"jžSª×wèÌJó ád"òu£Ú-nükTèöȇl •xªï0T êÕµ,~Æ^Â@LF¯ÖªÞÞs¨–xµpÌï¶×I´‘i¼ê õwÆ5ãšÿð[†ð‹q4þå R&¨SÀbBîí´c"Ø7²6òYé°Qe\ûõaˆ˜ñ{ž9òk…,EWã…­ÿö&ý(¡µ]“ÁvàL·ÒeJÛÓôj D+mÝNn[›Î†i¬u‹áŠÚÁëVUXÊ«·dè×ñ®®ë^Z$áêÂëVB¢AÍ‹•éá@OÁ\°ƒ÷Øl¥¤Cæ€ÕXåê©ô­“ƒ/ÈÊCj°ÑÄJö·šW¬•0XQ‡ÖÞ w-ãVœBUª…á hÄ÷û± 'ïÈQ«A;QðàŽ‰w&|ŒT|Ñ9ÝÀst•W¢U¶×1d V¸ô"Ž3‘ÿ­¥¡ à­.w[Ù’^óÄ{3Á¡n´³í0µöÂR­ø²€vÍžÀN^)å73ˆÁçÅ`ú¡p6θÚ@]¶‘h+žæñDñ²MlT]S+y©c±D}cÙÆêñ!îO¢w Jð~yÇVöë rd‰ùxU‰ 8ð}EamâlìS» -v뵉“ðÅ£éáøN–PêŽ÷_,}rzzøà‹:ýtí4Ç>¡ùdŒëçˆ?2hiôWdôQçÝneòLÛgà ~þÇg:?Oæ³1!|=šú­tü}ð?%ïendstream -endobj -1704 0 obj<>/XObject<<>>>>>>endobj -1705 0 obj<>stream -x}WïoÛ6ýž¿â `˜ Ôvì$Ž[tš®¬mÖd -ä -Q‰TIÉŽÿû½#)Yvš%àXäýx÷îÝéÇÉŒNñ;£Ë9-(­NN'§tv>Ÿ,è|y‰ÏsüYIùÉÕÝÉôã+šÓ]Ž+‹%>d„㧧t—Žæ“³Éå„î¤kèòÅÝwœ>§Ù,œÏ/qzôµÕÔ’RSUBgáÔE<5"W­ÒRIÝÐtzuýÇ퇯ÿ|ø:½ûtshn4¡o¦%W˜¶ÌØž¦•¤ÚšªndF¹±$¨ÎmÍüY¾JãÙÙdÎaÄ›­“>šî(™Üÿ/ÒÔ´b'¹—f½†]¥㟷Z=ÒÊ<ÒV5Å„®sr+p…O0ü„„6Î9ï¬û¸Eæ ñßô6>Т’oÈÔ2+x”:ë‚‹ÐQ©´œ\¿~Ä#¿ÓéJ­´i§MUÃåwSèÌÈ``X«Å„k;úlùš®RŽjãœZ•Ì«eªòÝ!v¢4zòæ -[Ë™p(HYš­{>R”û ¶£ÈûHq2µ²y6à/:•¾ ´‡ñq1cÝ×…BŒ øö6‰Äéë˜ý«®Qxó@"–Ö‚W•tN¬üu~¤jȉ£Dé(UFZ6àß1 - û Ôç -(„™  # ’ ¬•iSîÈɦ­A5NÃrCLR£óIt6•åz+‘õdø)Õƒ„½T ŽiìáG;#ŒH!6°ˆÌl½4Œ£û2uÅóüí­“Û¹FV÷/hÕ6”©Œk^ d×Öµ±o@ä[á»#oú1t¡kÆÙ„ø¾Ff) 02‘\7:WëÖ -߀Mé_f{P¡l4ßëì÷i -ªÔ#ú8èû¾ç!Cž2Œç#µÍCW&ý©Rnd™t] J*Ôº8JOjÓ® ò‡»°º0Îö‘uð¬”â·Ä÷³1–œ©Ñç8¡÷…L¸è^YXcja«Î‰Ïý|ï¡sʹw õ¹HÚ]—a­MÐÃÛOW¸åˆþ^Ž28¼Çó‹}é| ¢XtÆe v$š‘eé„7j™c«Óû9)Kܤu{Ôë#’MŠ³«£jíﲬém´ø&Xì4mÄ”ä¯3@i×Ø6e:¹ƒy"½¼‰’›ÇƒÞQDåǦDn¥D¸h¡@3#Å­æŠENÒ–Û“ož„:ˆyê}8fÇg³ Æ~¾.ã|]^ƒÉ0_¿¹yïýz‘‹ˆ„ {¸ N´QrK÷øégí¡Ù8g·ª,¡f܆2HH4Ç´õ\Dß J2ƒápÂ69nfÌöa.íJ€Î¬Ç° b#Téé1²,ž}è0¯~"Œ-Ûï¡Ðz5ÍQ¦ Í -SÌZ -âí5§W -ÑúáO¦l;Ia%fÉVz œ9Kå©9Ȧum`ËjF«@Þà5«iè®2˜²@²Ö,XUžÑPÕ°f„±g\NÇhP.â|bZÑÚ_†?Ñó\=bt0jÂq bõ‚Éæzn§Ýr}CøTP€œzZtkH‚bºX“Äo@È™Šl#0{Á´žª:N±XÛ÷¾~½ÿŸhtÐ(ð‰¹ò´6%è÷Ï·Œð7¬¾vСóƒŒÚ;Ìø ?TÀRYÆ5`7O´gÂ2{ zqŒ„üù:&ÃYH9˜ØŽ×%‘Çu]ƒ XîŽ'm7SxÁLܘǯžbòaAÑPnÛ¨´E¼¤J< ›Zl³>Ñ$ä ~˜m7{öêu?rÐ7†[:̬¥»]wÃë]éÌKf4w ÓÝ/K^+s‘òÎÕô2Èv¸­@G_-+´Ô'ÇsGÅ`× +I^Y¥-¬!5|˜î>F -7»òí§ä¶PiáU8nð†7xŸÿ¿‘i•H ¿HCvÇXyôÈù”H·ÁËG¨——*oóvxÓŒ|d8|qÃBŒ…£›©ÿ#lIزš -B‚Iˆ…ŠÄhcU”jÃùvPˆ$‡% jºÃ¾*бýãªG+G ¢ âôÌí†^ò5ÀªŠñ¶€Ç¼PA¾:[¶ÕÚc[ æb_{‰w(PŽ-’ÿa¡hì.v0ûž~\Æ÷¾Ùï™Ë3Z\.y…»}÷éêÝXó¼ ßMÚV¸;±x||yúʯ|O^<ÏËÉâb6ÂÙù‚Ý}¸;ùëä?¼[¾endstream -endobj -1706 0 obj<>/XObject<<>>>>/Annots 1084 0 R>>endobj -1707 0 obj<>stream +õ*p^5:Wæ"h? ù¬ì_qy +êŽ)xÐ5>,QU©sÏÈéd;òݾÖÔEFýb¼½¦6ó̤K JyÊ+Õ¸@ˆpdŽ´] ò¿& =2Õê„‘i’E0=R'Oj$¥íkR¼¸Àœ=Ÿ—.*¬¯»¼’oÉ!W|;Ϧ”l+6-§ò; >6ê}’’HmPÏ&àO9!ù‚ ¸Uáàl×’-©e :èXYº·¦kCpÈFãx¯Éßic<©¦ .Ánðý#‚ÈYßCûÊQ-œ'%ím„р܅'d0Z¹µÞ뽸ÆÙas­¢©”~¥`9 JKÃ#…b?HébÈ:¤ß³±-»Ñ’¥ÓdN/.J$†Ì19Æ HƇq…ÞYj,tä}'5”YýÊÈDM…Guä2·u›µÎ›[ã3_ï©á£ïéŽÌF¦D!FÇù¢Ž`y;j[´sŸiç[Î#·!Ê‚°š³–ÂGŒ1¿=* ¤)õ¡sJ<à<)&@çâ-҄ ÔÌŽHBIYRÜrl¼BÍþ¾\ KB>_^Òz?¶2Ô²ó‰ísÂ}ûDktbŽ¹ÿŒ¡±=Œ–Þ·d¬½C<ÛªH¹(± OYU.¯ N aké'#÷Ü@ AÄ—çp<èòŠ}4J=¥}ä=µêÛCŽUíëéôì{éj1‹‹_zqô,x×"£Ü°S†tSF~§ïŸñâ·É·’gE—¿ô-4£åÅ úºF«ö̉Ø9ëГ +-:ù8:DCLn÷÷ÚBå5R–lF¹ÆÚ6&öS¼ÃR?¢kíÁPÄÄ`µP®˜ëÀûÐ*WKYäú)D1dÙRrëP#˜à Öô0®ñïÒ÷X/¬àK}] ­õÚÿD;1xü¿gw"]Ëo:µoÝä¦+…s!zÇ™ 4Y¨ÆG¯ 5â徃HˆjÐK°Li‰8T.š9Jï RØ8,¬ð’¤D¹•‰f¤ƒ’Fÿ¼ $¯°ëv$¿«£eFïX0±¸~ûFG @âÊHÙÓTsJCZØ]b6IÙ{†ß +d°•Ê#M!.ŠŽÍhëØoŽËÎË8D€³Â†£®ÐåBÛˆYúQyâhÑxÐåq³ŒÕƒ#”‘t­¸ mð2CÄ<¥zývLË(ºùŒp~8bÚ3Ksiñ u¥ÄÆOýž’Äâ¶U0¶Ks ÊÄBNâXÈÕ¦}¨ÐþŽ|«òoöíØfªoñX™-À¦ï×ýyëê"›7éÕP¶«s·¦ç8ÓÆ#Ú6LÚn4<£Ï—vXêäÚ‰P©ÏHJÓ”g˜žiɯšÕ6²kÃ(ñ-ò¼cn}#êG”äŒ!øŒ8”O\Xùõýv8\ÊÙçµ3zCóÙd†£vÿ2×Þдónj,Î~½½Çý!û¡MÚúæ ¤õŸºl<ïŠ`)ǦŠä’Ši@ßÿ,˜sàžª4籈Ǹ¾èß¾›’>hN Ð/®‡DúpïÑH´ÇFEBrlÇp¸F䦕m¼9Ñ°>l´®Q¦t2<Âÿ®£»Âjœà¬gd÷êR{Œ@%¡¼â´q»UÆØcZ ùÇ*œakÑE +]–0-ÜzÎ;§€ž|à[.Ú.z³"¹8ã ¹„tûøƒdy“4óýŸ;«Í6Û¬ø™ÍW óÛnò÷ä?|Ÿêendstream +endobj +1727 0 obj<>/XObject<<>>>>>>endobj +1728 0 obj<>stream +x•WÁn7½û+¦ºTbY²eÙ)ЃƒÚ€&Mµ@_¸»Ü#.©’\Ëúû¾îZ®lŠ @Â%93oÞ›Gýs4£)þÌèòŒÎT¶GÓÉ”.®Î'W4¿ºÄ¿Ïð7hªåÃÙùl2ëÃììãÛ'æoø´<:½ÓlFËÁW—´¬§SZ–ãV•+ãôäxùãhJ'g „\VãåJ/Þ"_9:Žm1)½«óòp㘴Ka—/†½d}CV?jK¿î7‘âÎy·k}ikÒŠ¢½yM¥‹®yçž´R‰V*R¡µ£.ꊌ#o+8$Š™Oθ˜G¢ñ.’¯é›j EÊa3Ÿ4®àI‚Šj¨Påz«B©ôíF%SkÒŽPm¬Ž‡ˆ]G.ãàð¨l§9 ãÊ ç¿ó±)•>T¤(šÆ™Ú”Ê%»vrÒd%5¼d +h‘²wCr·¨¬õ1½Øí7:ÈÞ(a[µ#ç9<W§Äw®L³Ò•)Gçú¢U@ +)¢1ÀË…¦€ŸK¤°.B¦³éœJ|`ôF…rEßÜ'«B£éÑÛ®Õ 7S¨RII-§·iæ2…OÎ癤LÖ Ý¹¤ƒS–t>ÄÿÒ)}9Y0 îj)´ÑH’Fw_–7÷_®§›ûû?îGÔêâƒBèBèÒg2 Ø#„Ëüi€Jïœ~Úè2¡n”²ÅoW` +…Î9`‰L·{|¡ +F(7-x/m Zu–oŒVzUêÀÄÄÎ_1æœ`ÎáaÜ9ðPÚww¥1Dø¾*è.&ÝRôu⥇ãþÜ z@ÄR°(:QmQñ'ÇhCŸ«@7U)Zq8\×pê/WàÊ°"49¦ƒd¿}þô|¼×æ1_Ã1'´\‰BjÏÐ!o¤9ïXïug !sµò[üùsnVê¤eeD„àlW¡×èGßnFœô! Ò0ùMÆ•ï,÷%ú¾Zù-%Ïg‚¯ºØþ@¦¦Ñ }•¨UkÞ…2XíÞ 26ºz+*KRBÖ¤ö)L%ö¦•Úl F`…@hþ „QìŠÊÊä”Ä©í¶´)¬µÞÛð‰2#YyÒå&HPdÏ· ?û$ï­ŒÎתè çf1Ø<Þ*/üÂ!OoÃxáŸf Vh_É“ªÇQ·b•w?³‰@.¼ ¥1Ÿv4ªŠ§“O»lد˜t )›SƒéÈåñTÐrÜ‘@<â\°™…ž0 …©2Úr øÈ@U_–]@3yœ 9 +o²¶Ó!aú‚ÖŽE ˜£nyÌX嚎Gâ9Æd©LÄ÷Ñ@Žà;L{MïçEcpÚ$v«W3Þš"( 6\“IN!ƒ³ÿ—(á ÌÜôp,1Z[Ö„\H?©’ ïuB `!¯ ap7ëýZؤ HúÎ AJ_A7¨ùgr˧=D’0¦B'gz¬yääFï‡ÃAWzûËBŽ¼çSºN ¸Óp¥jpf@‰)þšé½mýÅ®ž:Šè1’;gžtä–8°>$Sv0Ïü'¨Kdëžh cÔ6dÌa)æW×n~?G€ 31©¸æçÔa‰pþ­êL…€y ‹T)È@~8‘‹†÷Ú‘6¬7ƾ”1Ú7[  ‡ïMò zƸžgÃ×»ßF=9ø^öt,={ä–º˜õ+ê•¢F<_Ás¼ºX¥}¥0a9!HÀÊÁeÍ€+÷îÕß›C©¼Žwí-³BºÌcŒÀgç~¿ý¨YÀ3ø6ý>+–ˆSh<è”÷£„˜Å0z«‹èxmž~æ^Ô¯oÌLÓÛ$C•óæò¾Q×tÒååayÞã¥Ùkê÷67_ŽÇnÃΊّ>Dak02ßVÎÂMè3›'„-Ʋ‹°©!9Õà‘$Ài­<øµßÏ6¾éŨˆxÛÁ¬¹ÿ¤˜dìç Šê.HãcöæÓÛ«þÇÍl_jWç´¸XàW–ß®?º¦¯Áÿ€åÒo¾Ä¶Ôqô“áÀÉåô#ï÷Ù:_\Mgxâb×l~ɧo–Gý ¹ endstream +endobj +1729 0 obj<>/XObject<<>>>>>>endobj +1730 0 obj<>stream +xVÛnÜ6}÷W üRh´×úäac¯“ì]×RšE¸åeM‰*Iy³ß3¤”Úª †[ÎåÌ™3üëhBcüLèlJ³SÊ«£q2¦ùÅErNóó3ü=ů•T†ƒÉÙ8™¾u0;ON‡ß?dG£› šŽ)+ãô윲‚àŒ/ùÉÕN4^Zšž%”í$9Qmå;™?iåüÙŸáúä,^7›#tVœÀ~’ЪöÖmî•©£éœ&“Î&§lší”£RiI¹©½Pµ#AìœLI^:ïè`ZÊEM´¥±yCÏB«BxÉg–Ò–“öYZ„õ$´3¸¬u¼¼ß Oùkõ$õsÓ»É,&›‹ÖÉ 5[-+BRª$å© +^D} S÷V0w^6±‚M#œ“0Òš£à4æ¿kv_ìVlõöÆ>©úqB©j™tߦ§ÉœùŠªÝδº ÂÐâö6T<ÿDªÿ[ ;°Ú× }‘´Ïn•,¤\XY¶Qó1œÖ• äl—¤©ÿÑ‹Fl•V^¡0ÀªJvÚ…•ÂjÕ{æ H¸aNÖÅ È:êT@å‡3ª$ù üõ`Fºú€:†E¼…Âjƒv­Ížëo(26Œt.‹ãà©Dùúkmc•ƒ‹À˜·û±6V¡ž‰—¤ c§ -œk«†)ÂnÞàôª\`ƒR‘ ‘ J[ÅбYây»Ö8þ°ú˜.~]>Ý_õ'‹«ÛÕrÑÖøÝ |4‡ÙõhMÛP¶L³›Ï÷Ãöd‘äF¨Û©Jia¬%8å¶4ÙçèríÝÐÅ*P:ÌØËzžj³×¢ +“‚öŠg´Äì;°‘ PwÕ6Á¼—˜ Ú+ÌMtºÚ›º®æA™Ç¾jŽúÚ‰‚( +FøØ]ä!§íp¤âDÖ„ÿ õ±/ÙñèfL½$ÍãäýŽôQÇPYL#Ô©ª½G?«ÆXaA¶ -áw0ÁËðÈJÁC‰|Où¢$~Z¦ËÐÁ”iúùnI BºÚ¬i–°öoèv‘›Ê>-)]Ü}XPúy•-J7°¿ÚÜÝ-Ö×iŸ@'ué§Í—5]¯®i½ÉhùÛ*Íhµ¦åâ¬zè£ô·z%º×R@L½ ?ë #+­o*éœxixܬ̥z–AY7_™ààAÔ=kräBÐmVÉ­D‹)·u =« `ÆÎ;E,•Å¬‡EôÝ­î)PÏJgt²„ÓÜXdäqßIOm“|¼¤;’@ +âÄIŸ‚—çÀÒ¸Ÿ£0 \xˆ×MWË: ¡–ß°»†³À>‚hGe„KQ´ëuŠ´xo‘Ès ÆpXEð¢\†åxà¯0’ƒ*zžÇìQN«‘>&ð¸À’…N~cÖÔÁÝ–Õsóæà `Y„>fkÖoï÷˜ãý—RÎà”—÷wH(¿0ÞÍÆqïCMgüH`+šD³WRÊS!åJ Å4˜8Ö¸Êw‘ øÔ½úœB­?‘mãEZ^!o$ßïîž`ê¿À[î/¶x$j'ZüR)ÕckEàXx¼¦Ràðõkãå%«öt?ܨ5Ö‘69¶1¯ÖË $,Hñ‘thž\¯á9¡}Ó¾uvÄþô(Üiµ7ÏÿywÍ/¢Èý§Ýü/ÆŸ§èZ1™Ÿ³¯evôËÑßÖ@O†endstream +endobj +1731 0 obj<>/XObject<<>>>>>>endobj +1732 0 obj<>stream +x½W[OÛH~çWùeA"& R€Ò˲%Z©/c{L¦Ø3éŒMâ¿ß9cCpÙíÛ¶âfÏí|·3ù±3£)þÏèäŽæ”×;ÓtJ¦3|?>=Á÷C|yMåÎÅbçàËÍŽiQbÊü¿„áÓ)-òÝÓô(=Li¡CC‡{‹ï}L³Y=9<Áèݯ­¥f©)wu­lAÉÊØGº¸þýþêëßW_*½«eÄÝ%½8¿¼¹¾º]l½n­ÙPæ6)]—Ô¹– +gkèQ7¼ó”&3†wTô¬*S „°r6h^Üò O‹Ë»ƒë; +®lÖ +%š@Ö58›÷:oªŽŒ ª*]¤ý¢‡ó”‹Þ½u /¤ÙzmªŠ¬Ö5Ž0Ã7¤()\ ªY5 ­-Üš\,¥a \ýxí¾T‚Uj‚zÔTÇ@%Kpù¥km‘óLm*å·êú|{ÿZFè&?à™JS uŽpz­:è¦]׆Y¹L†Iý‰ƒª3…zš¥kâ´m¼ÑX;1µAûgí…¼¼2x»O†^“ +¡­uOÖh÷¥zfQð?­èu­ u%oÁ$BdaŒÜ9€Yb”×*êõ²€©6K ¦LÅÑ‹'ƒËØ–Æë5Ø~.¥oÐÕr½®Ô†0:¾o+ ˆ*°f"ËkçŸ †Æà(xô£Å‘ñû>­´_ªU ¬#lç GRy¦£úU_Fh3‹åv±À±-oÌç£Í¡|MÏF úfU®UQ³ò½ªÓ‡=½íÛÉÑ,ŠX {Ôö(ûµaCEZir³mÜ^Û¯¾dðTRìJh¹2Ð.TÏ`B±¦Â¶—“©üiÌìOhï!µÁ¹³ ÔÁ Šú F6Ê…*hÅØoÄó K†­;ÁiÈX¤ +‚zñ°Ã…ÈS²ý¨Ð¶ï%1[Zh>$(D€j à”âlå>{Tž<²˜iXW¼Å>–Rº\êüi´÷ºÏO?ÍlƒÉ.X)_'â¶F×+ç•7(–qp”²Ýpf‘Ú¨$û6îËÁ¹cªð'Û½!'AÍéɪ÷ºÄR€ÿmö +MuV IQ«N"-Óƒ_Bý%€É°¯FçÜM! ¿C°.LÃ‰Ì ÆÔ(®º÷×Wà™ +äÄÀ–r&%®ÀÛ…ÚÇ~Œº×±\N–&! ä×bý›ëûÅÕ-w tžF æ¿i¢’ÿ~XI‰4ÆWä-°ÆìíççÕ©… —J`OôŽ8~«Ž Î4 ­µ%"ÞT/{´’+e:WàY‚]l5ˆfhòâ èTÕºQ¤K‚q†ú×hãR¡óÊ•®¥ßH50zcðBºl»â8ÑŠ”ΫàzÂÄll=᎘yØÌø°'m*tÈŒ IY|´{2r‹ˆÁ|†»\‹@¯È'}oáÍ}ñIk;£S9„:.8•ƒ„øô8&x!³ùö¡È¶u›\ì`±§®—&_J•ÄN‰Ür¨AŒÄ„ouHÇYk¾*0³+G¢0¢\…˜à‘êpŒØbÓКì"–}·ÿÈë|™ÒÙp½;ŽM…úñºÁAIŸèüæfØšžòêí0É&ŒÛl6éÖ×A×ýË´ לj*' +@æ}¢o±™¼½wÎy¿ëØ“U†TÜGÚÄDW6×èhÅý¡V®¹ÀSs)DËË€jW£¯ç8vGW6Tìf´À:œ¸¿~Vέ¸£‘*Ô +ŠÁÏqh†ö‹»s:[¸5 +ÒßÙW¬ù|©,n~‘)&šóá.Ç‹o_ ËÏŽnÿ\ ¼äp”¼GF‚æÛû÷06\)ú]›°d¨†éÑ8C«î«’MešN£÷ÛË5DÚGùî¯Q0gÂÍ€`¦Ô"{¸ ¹ª•Ö„Gü8äç­ÏÇÔ½&gH‘!·¸ó”øeÅ….MŽÀÌ»¾x¤n¼G¢ãG±o-þKáDÁÈè‘¥Ù ¯çìÞ¤ÉÁ—ÓþcÖlMÑüä,~ø¹?ÿãâœî¼ûŽ¸¢Ï.ÇÑÇ0Ä“aÂäd +#ï|†;žŸ¦ó‡ø¼‡×³ã3žvµØùkç ¢Úendstream +endobj +1733 0 obj<>/XObject<<>>>>>>endobj +1734 0 obj<>stream +x…V]OÛH}çWÜåº"&ßÀ¾JWH-›k¥•ÐØÇSlO:3&Ë¿ßsg&!uiQU‰}?Î=çÜûí`DCüÑÙ˜&sÊ›ƒa2¤ÙÅ~NÏùçÿ¤Ò1Γñ[_LÆ£äü­/æ³dÚÿü2=8ý4¥ÑˆÒÉççg”„ÄÃ!¥ùñ¢Õ®’†rÝ4º¥\tV’. â·Ñ$ÑÆ’²T‰gÕ®ÈêFºŠµ‘¢x!Óµ-ÿkm&'d»¼"aé^4™ø~=Ò`4AGiqüp¬äd›¬à¸Û×K£R­tÅ6òÃÒf/a­ž$}T+åD}di)\µÑæÉ&tUÉü‰^tgB„$×mI¥ªe/u&K ˆyáŠ&ëJöµ ZA…@â„”-‰g­PÕÚ1.¥é¬3Â)Ýþ#ç@M-Ú‚^¤#!]kkUVË*ÒR)TÝ!;¥×÷)M¸ýM%[ƈehžaŸ¤ Sn>3Z¹°ˆ[FZÛëÇJçÐ *G\ÕæÚ™»„–µ˜`îqq•p>â3`xÐISŠ\ÒÍ’!0ò]î’½~vªú‚ª~•:&ö…ût~îàŒ·|Mõ YDn©Ðt­WIÛd~T '8ýtA#ÊlLFÛñY2I¦ ¥@LÃc¯¤Œ™ÔÇw]É\fü·Öú©[Óà’.oþ¼¿¾ûçúŽï_.‡ ý«;²•îê‚VÀžÇD"Ô<'¦T¯ïЙ•æÂÉDþäëFµ[&ÜøרÐí‘Ù*ñTß `¨Ô«kYüŒ½*„<˜Œ^¬Uy¼؎´W[`ᆰ‰ZY'½DAø®XoezÖ¯ü¯” V°6ä… mÈH¹fV§jÖøF¶Îë¾Qqú§ÖÂx„„mÀÓíHjHè¦ìU ;ñãeÚâ˜ÜÅIhO·rÀo’ÍZ3¤ 3î0ôñZUŽöòr× œôÕXÞaØ,2lö†…ˆ»vÂS³h®Ç<åW¾-®>ß\ߦtôûÑÑ¢e¼Á¾å•Ýg §cîÊ#U+ÌöXº «?b½¼ÂÌx ;‚õÐÞéÑ)<ë]PþNµ‚ÝqŽƒŒû€xct»ê“Õm›-´ô©aTº~–ô¬}¼½çP-ñjá˜ß l¯“h "ÓxÕAêïŒkÇ5ÿà· áã*hüËA¥LP§€Å„ÜÛhÇ2D°9ndmä³Òþ`£Ê:¸öëÃ1ã!ö<rä× +YŠ®Æ [ÿíM,úQB j»&ƒíÀ™n¥Ë”¶§éÕˆVںܶ6 ÓXëõƒ×­ª°”!VoÉЯã]]×½´HÂÕ…×­„Dƒš+ÓÞ‚¹`ï±ÙJI‡Ì!«±Ê) ÔSé[' _•‡Ô`£‰•ìo5¯X+a°¢­½A:ï[Æ­8… «U ÃЈï÷cAOÞ‘£Vƒv¢à=À5ïLø¨ø¢sº%æè*¯D«l¯cÈ@¬péEg"ÿ[KBAÀ[]=$½æˆ÷f‚C%Ü6h fÛaj/ì…¥Zñeíš=¼RÊofƒÏ‹7Àô/Bálœqµºl#ÑV<Íã‰âd›Ø¨º¦VòRÇb‰úƲÕãCÜ'žDï”àý:òŽ­0$ì×äÈóðªpàûŠÂÚÄÙØ;§vìÖ;k' à‹GÓÃñ,¡.Ôï3¾XúäôþôðÁuúé<ÚÿhŽ þ|BóÉ×9ÎdÐÒè¯8Èè£Î»ÝÊ䙶/ Άüü7Ît~žÌgcBøz4òk×éÁßÿO(ïendstream +endobj +1735 0 obj<>/XObject<<>>>>>>endobj +1736 0 obj<>stream +x}WïoÛ6ýž¿â `˜ Ôvì$vZtš®¬mÖd +ä -Q‰TIÉŽÿû½#)Yvš%àXäýx÷îÝéÇÉŒNñ;£åœÎ”V'§“S:;ŸOt~¹Äç9þ¬¤üäêîdúñÍÎé.Ç•Å%>d„㧧t—ŽæËÉÙd9¡;éZ¾¸ûŽÓç4›…Óãù§G_[MM!)5U%tN]ÄS#rÕ*-•Ô M§W×Ü~øúχ¯Ó»O7‡æFúfZr…iËŒíiZIª­©êFf”K‚jáÜÖØÌŸåû§4žMæF¼Ù:é£éŽ’Éýÿ"MM‹ vp"{iÖkØUº1þy«Õ#­Ì#mUSLè:÷'·WøÀOHhƒàì‘óκ[d>ÿMoã-*ù†LÝ(°‚G©³.¸•JË ÉõëgA<ò;®ÔÚI»‘vÚT5\~7…ÎŒ †µZL¸¶£Ï¦‘¯éº!å¨6ΩU À ¹Z¦*ßb'J£×!o®0°µœ ‡‚”¥Ùºç#E¹b;Š¼ô'S+›gþ¢Sék +I{3Ö}-Q(Ę€oo“Hœ¾Ž™Ñ¿úç…7$Âai-xUIçÄÀ_çGAª†œØ9J”ÞˆRe¤eþ=£°¿@}®€B˜ j0² úÁZ™6厜lÚTã4,7Ä$5:ŸDgóXP®÷·YOöŸR=HØK*á˜Æ~ôø¸3ˆb#‹ÈÌÖAÃ8º!SgP<ÏßÞ:¹kduÿ‚VmC™Ê(ð±VàBvm]ÛøD¾¾; ùø¦CºfœMˆOá›ad–’#É%p£sµn­ðmØ”Ž ñe¶ÊFó½±Î~Ÿ¦ J=¢S¾ï{2ä)ÃHp>R Ð"Ù¤˜1»:ªÖþN!ËšÞF‹o‚ÅNÓFLIþj0”vmS¦“;˜'ÒË›(¹y<èM%@T~,`JäVJ4€{€ +43RÜj®Xä$m¹Ý9ùæI¨ƒçQ ¾Ñ‡cv|6 bìçëeœ¯—‡×`2Ì×/AcnÞ{¿^ä""áÂ.¨m”ÜÒ=~úY{h6ÎÙ­*K¨÷„¡ŒÍ1m=Ñ÷‚’Ì`Døœ°AŽ[…³=@˜K» ³ë1,¨ØUzz@Œ,‹g$:Ì«ŸÈcËvà{(´^Ms”)C³BÄT³–‚x{ Æé•B´~8Á“)ÛNRX‰Y²•^gÎRyj²i]˜Á²šÑj‡7xÍjGú†«† ¦,‡,†5 V€g4T5¬a,—Ó1”‹8˜Æ@´ö—!ÂOô §žÝ’ ˜.Ö$ñrf‡"ÛÌ^0$­§ªŽS,Öð潯_ïÿ'4 +|b®<­ÍF úýó-#|à 뀯]tèü ãö3>È°TV…q ØÍí™ð£Ì¨^\#!¾€ŽÉpVR&¶ãu Eäq]×àV'¤»ãIÛÍÔ#^ð7æñŸ0Å«§X|XP4”Û6*mÑ/©è¦Û¬O4 y‚fÛÍž½zÝô¡Æ–3kéî_D×ÝðzW:ó’Í]Ãt÷Ë’×Ê\¤¼3A5½ ²n+ÐÑWËÊ-õÉñ\çQ1ØuÃJD’…W–Gi‹kH ¦»‘ÂÄ®|cû)¹-TZxŽ¼á ÞçÿodZ%ÒÂ/ÒßЀÆ1VG=r>%Òmðòêå¥ÊÛ¼Æ4c _Ü°cáèfêÿ[¶l…¦‚`b¡…"1ÚX¥Úp¾”bÉaI‚šî°¯ +tl?Á¸êÑÊQ‚¨Cƒ8½s»¡—| °ªb<†íà1/T¯Î–mµöØãÆÖ‚¹Ø×^âÝ +”c‹dAÁX(»‹̾§/ã{ßl÷ÌË3Z,/y…»}÷éêÝXó¼ ßMÚV¸;±x|¼<}åW¾'/žç‹ËÉâb6ÂÙÅŒÝ}¸;ùëä?èT¾ endstream +endobj +1737 0 obj<>/XObject<<>>>>/Annots 1097 0 R>>endobj +1738 0 obj<>stream xWÛnÛF}×WLõˆiQ’%9€Ñ:møÁ®k+ ŠªVäRbBî²\ÒŠþ¾gf©í^D¡HîÜΙ3£¿:!õñ7¤É€†cŠòN?èÓx24šNp=À¿RS"FÓ³`úÚƒáhúú‰AØƯœ€× ß|<ÞtÎ8ŽÎð™S8™Â‹ÿ–ÑS'‡"r(9 Æã`Ò|ã§fÓë…!ͤ2žNh‹õ>Í¢ÞʺÊ*Ëìš’4C&¶¤­KŠ²T›Šæ=ÜpõÂèêé* -æoßξÂæ9Bð6O†a€Ë¸78 †Áy@3í*:÷¯í]Ÿ Øuï±6T­4E6Ï•‰ý[gM€=‚ª¦ïïiŽ?nož®»zœÏgwÇ&{ýnkr+[g1-4¥Í‹JÇ’„¢B9·¶eÌî 'Õ¼ÊVútQN´„GEÝ&Ž«È4[quiç’:Ë6]Êq©–: Û„Œ­vFKzø™œMªµRG©‰lYê¨Ê6¸vŠ c¶l¹•"»|DÖ$GçÊÕ7 ÷°'ou%”º„¢‘EJ€'Ó%e©Ñì–vÖ8’&ˆ q;{Œn«7–œ¥Â:—.yµR’9]>³YeÞT„Ê}#[ã‚’’ŒÊñ¶e¿ùII•ÞG‘{S\ÇÅa4`=o¥­bÁC‚¦®˜½ OÀøþòîªËÖùìU^ü £Q•ZC6Ù§¶F⚺û7¶ÄñµÜI\aMœšåÖúŽ̉jSèXPåoIŠêJIúUÅ¥Y:É4W°Pr€[w€ª(ðJË­-8𗵧<]®@7®?Ë–"¶ ‚uÓvÖ€=N›Ø‘6Q¹Zo〈’Ã]©gÉøôzßAÍû;ú;ºhEg,ßØËBÉãoAHD)z[.µÞØui(­h¡"ð½lQ´ï’ê?‹dΫBØ?6ˆ>ü²/2k¿ÕÜÑìêivóø˧¶€ªLŽÝã-…· —›i½,- qÍ9˜)žT¾PÛ^àB'ìÚ¡Ï@ˬéH{XB¤ìáö@òrÁÄå;¹rÚgQ -þ‡Ä¶ü -ü»È^Ð&¬cËm {^?uÖtúŒe -\p”(h8ØüY!¶™º’–múwÑ/_kèóBsG8~o³ÜZªÔH/¤íÒ¸*Í2±ö%œÎV6 12Ôhˆ$É–} øÖaš¢¢p¾©€îUîU*¥N4´T¦ÄNMA/h£Ý1ŸzÌGmD;%@ehW)¤¾Ò²\Vuñ_´ ·´ Ýìh{‘ã'†ÆÊ‚:"¶ÀïeUƒQzÈ®ftAB´*¹8Ì–æd–$H8™ÙHe-Òìøâg4µF&¹BGi’B« ->{ÄYÈõ·Ûš¯ =MKÃÔAÏ´üútD‚üèÜFêV˜;¬MÍ\MͳÊÒx'G]¢Ø)Ы~(Ç"ùþšÏ D¶i¹-kc˜WèÆû™x÷dEjÇöEßu¯0€ûÂ0)Ú2 -é-Ô"ÍÒ -ÌGŸƒ(+{Ëu¦ŸuÆÓ¨.ùÝÜƼ0Z8"ú­S”àji›C5Þºh$…mJïåýGk¯à[oN¼ÐïF¾ÜϾܩª™Û]Kô\x³Uq¡è;,!(ƒ þ²Ž.¯gW²ÿ &((s§. -[¶µ€wÄ× Ì{Ò¯Œ³‘û›wJÏgˆ•+ ¯¡'ÃÑneô$╡Π£ûñ¸RÒrX–±±Í¸Åà ‡Úñ O@ì'zíDÛ%S)oi†F«Œjxaüž3iâµ¹ÙRÐçÜ?I’F)^õ]ÚØç8ÄG¼aGâ»Ñ -mÆŠÂý“|¶\ FЊw¨Ü‚ØjÁ—Þ4ómÅÒ‹Xê…‹Ê”×_·s»ÒÜ¢0Ãù{Sk½@s-a¿¢UUïOOwQø«&í -xÉÛÇ¡fûm2¶‘4[~•*0âaø~sÈjŽñÃg:¤qà1|º¼ûpI¥ýÊKáGÕ9~9(Þ€øäÉöÀɤþúÏ„ÑxŒÏ Ð G>v5ëüÚùü\;endstream -endobj -1708 0 obj<>endobj -1709 0 obj<>endobj -1710 0 obj<>endobj -1711 0 obj<>endobj -1712 0 obj<>endobj -1713 0 obj<>endobj -1714 0 obj<>endobj -1715 0 obj<>endobj -1716 0 obj<>endobj -1717 0 obj<>endobj -1718 0 obj<>endobj -1719 0 obj<>endobj -1720 0 obj<>endobj -1721 0 obj<>endobj -1722 0 obj<>endobj -1723 0 obj<>endobj -1724 0 obj<>endobj -1725 0 obj<>endobj -1726 0 obj<>endobj -1727 0 obj<>endobj -1728 0 obj<>endobj -1729 0 obj<>endobj -1730 0 obj<>endobj -1731 0 obj<>endobj -1732 0 obj<>endobj -1733 0 obj<>endobj -1734 0 obj<>endobj -1735 0 obj<>endobj -1736 0 obj<>endobj -1737 0 obj<>endobj -1738 0 obj<>endobj -1739 0 obj<>endobj -1740 0 obj<>endobj -1741 0 obj<>endobj -1742 0 obj<>endobj -1743 0 obj<>endobj -1744 0 obj<>endobj -1745 0 obj<>endobj -1746 0 obj<>endobj -1747 0 obj<>endobj -1748 0 obj<>endobj -1749 0 obj<>endobj -1750 0 obj<>endobj -1751 0 obj<>endobj -1752 0 obj<>endobj -1753 0 obj<>endobj -1754 0 obj<>endobj -1755 0 obj<>endobj -1756 0 obj<>endobj -1757 0 obj<>endobj -1758 0 obj<>endobj -1759 0 obj<>endobj -1760 0 obj<>endobj -1761 0 obj<>endobj -1762 0 obj<>endobj -1763 0 obj<>endobj -1764 0 obj<>endobj -1765 0 obj<>endobj -1766 0 obj<>endobj -1767 0 obj<>endobj -1768 0 obj<>endobj -1769 0 obj<>endobj -1770 0 obj<>endobj -1771 0 obj<>endobj -1772 0 obj<>endobj -1773 0 obj<>endobj -1774 0 obj<>endobj -1775 0 obj<>endobj -1776 0 obj<>endobj -1777 0 obj<>endobj -1778 0 obj<>endobj -1779 0 obj<>endobj -1780 0 obj<>endobj -1781 0 obj<>endobj -1782 0 obj<>endobj -1783 0 obj<>endobj -1784 0 obj<>endobj -1785 0 obj<>endobj -1786 0 obj<>endobj -1787 0 obj<>endobj -1788 0 obj<>endobj -1789 0 obj<>endobj -1790 0 obj<>endobj -1791 0 obj<>endobj -1792 0 obj<>endobj -1793 0 obj<>endobj -1794 0 obj<>endobj -1795 0 obj<>endobj -1796 0 obj<>endobj -1797 0 obj<>endobj -1798 0 obj<>endobj -1799 0 obj<>endobj -1800 0 obj<>endobj -1801 0 obj<>endobj -1802 0 obj<>endobj -1803 0 obj<>endobj -1804 0 obj<>endobj -1805 0 obj<>endobj -1806 0 obj<>endobj -1807 0 obj<>endobj -1808 0 obj<>endobj -1809 0 obj<>endobj -1810 0 obj<>endobj -1811 0 obj<>endobj -1812 0 obj<>endobj -1813 0 obj<>endobj -1814 0 obj<>endobj -1815 0 obj<>endobj -1816 0 obj<>endobj -1817 0 obj<>endobj -1818 0 obj<>endobj -1819 0 obj<>endobj -1820 0 obj<>endobj -1821 0 obj<>endobj -1822 0 obj<>endobj -1823 0 obj<>endobj -1824 0 obj<>endobj -1825 0 obj<>endobj -1826 0 obj<>endobj -1827 0 obj<>endobj -1828 0 obj<>endobj -1829 0 obj<>endobj -1830 0 obj<>endobj -1831 0 obj<>endobj -1832 0 obj<>endobj -1833 0 obj<>endobj -1834 0 obj<>endobj -1835 0 obj<>endobj -1836 0 obj<>endobj -1837 0 obj<>endobj -1838 0 obj<>endobj -1839 0 obj<>endobj -1840 0 obj<>endobj -1841 0 obj<>endobj -1842 0 obj<>endobj -1843 0 obj<>endobj -1844 0 obj<>endobj -1845 0 obj<>endobj -1846 0 obj<>endobj -1847 0 obj<>endobj -1848 0 obj<>endobj -1849 0 obj<>endobj -1850 0 obj<>endobj -1851 0 obj<>endobj -1852 0 obj<>endobj -1853 0 obj<>endobj -1854 0 obj<>endobj -1855 0 obj<>endobj -1856 0 obj<>endobj -1857 0 obj<>endobj -1858 0 obj<>endobj -1859 0 obj<>endobj -1860 0 obj<>endobj -1861 0 obj<>endobj -1862 0 obj<>endobj -1863 0 obj<>endobj -1864 0 obj<>endobj -1865 0 obj<>endobj -1866 0 obj<>endobj -1867 0 obj<>endobj -1868 0 obj<>endobj -1869 0 obj<>endobj -1870 0 obj<>endobj -1871 0 obj<>endobj -1872 0 obj<>endobj -1873 0 obj<>endobj -1874 0 obj<>endobj -1875 0 obj<>endobj -1876 0 obj<>endobj -1877 0 obj<>endobj -1878 0 obj<>endobj -1879 0 obj<>endobj -1880 0 obj<>endobj -1881 0 obj<>endobj -1882 0 obj<>endobj -1883 0 obj<>endobj -1884 0 obj<>endobj -1885 0 obj<>endobj -1886 0 obj<>endobj -1887 0 obj<>endobj -1888 0 obj<>endobj -1889 0 obj<>endobj -1890 0 obj<>endobj -1891 0 obj<>endobj -1892 0 obj<>endobj -1893 0 obj<>endobj -1894 0 obj<>endobj -1895 0 obj<>endobj -1896 0 obj<>endobj -1897 0 obj<>endobj -1898 0 obj<>endobj -1899 0 obj<>endobj -1900 0 obj<>endobj -1901 0 obj<>endobj -1902 0 obj<>endobj -1903 0 obj<>endobj -1904 0 obj<>endobj -1905 0 obj<>endobj -1906 0 obj<>endobj -1907 0 obj<>endobj -1908 0 obj<>endobj -1909 0 obj<>endobj -1910 0 obj<>endobj -1911 0 obj<>endobj -1912 0 obj<>endobj -1913 0 obj<>endobj -1914 0 obj<>endobj -1915 0 obj<>endobj -1916 0 obj<>endobj -1917 0 obj<>endobj -1918 0 obj<>endobj -1919 0 obj<>endobj -1920 0 obj<>endobj -1921 0 obj<>endobj -1922 0 obj<>endobj -1923 0 obj<>endobj -1924 0 obj<>endobj -1925 0 obj<>endobj -1926 0 obj<>endobj -1927 0 obj<>endobj -1928 0 obj<>endobj -1929 0 obj<>endobj -1930 0 obj<>endobj -1931 0 obj<>endobj -1932 0 obj<>endobj -1933 0 obj<>endobj -1934 0 obj<>endobj -1935 0 obj<>endobj -1936 0 obj<>endobj -1937 0 obj<>endobj -1938 0 obj<>endobj -1939 0 obj<>endobj -1940 0 obj<>endobj -1941 0 obj<>endobj -1942 0 obj<>endobj -1943 0 obj<>endobj -1944 0 obj<>endobj -1945 0 obj<>endobj -1946 0 obj<>endobj -1947 0 obj<>endobj -1948 0 obj<>endobj -1949 0 obj<>endobj -1950 0 obj<>endobj -1951 0 obj<>endobj -1952 0 obj<>endobj -1953 0 obj<>endobj -1954 0 obj<>endobj -1955 0 obj<>endobj -1956 0 obj<>endobj -1957 0 obj<>endobj -1958 0 obj<>endobj -1959 0 obj<>endobj -1960 0 obj<>endobj -1961 0 obj<>endobj -1962 0 obj<>endobj -1963 0 obj<>endobj -1964 0 obj<>endobj -1965 0 obj<>endobj -1966 0 obj<>endobj -1967 0 obj<>endobj -1968 0 obj<>endobj -1969 0 obj<>endobj -1970 0 obj<>endobj -1971 0 obj<>endobj -1972 0 obj<>endobj -1973 0 obj<>endobj -1974 0 obj<>endobj -1975 0 obj<>endobj -1976 0 obj<>endobj -1977 0 obj<>endobj -1978 0 obj<>endobj -1979 0 obj<>endobj -1980 0 obj<>endobj -1981 0 obj<>endobj -1982 0 obj<>endobj -1983 0 obj<>endobj -1984 0 obj<>endobj -1985 0 obj<>1<>8<>9<>13<>14<>16<>20<>24<>35<>36<>37<>39<>56<>59<>62<>65<>66<>69<>79<>84<>87<>89<>100<>113<>122<>125<>126<>130<>133<>135<>137<>140<>144<>148<>150<>]>>>>endobj +æoßξÂæ9Bð6O†a€Ë¸7˜Ãà< ™vû×ö®Oìº÷XªVš"›çÊÄþ­³&ÀÁÕNÓ÷÷4ÇŸ·7OW¿]=Îç³»‡c“½€~·5¹•­³˜šŠÒæE¥cIBQ¡œ[Û2fw†“j^e+}: ‡('Z£¢nÇUdš­¸:Š´sIe›.å¸TKÐmBÆV;£%=üLÎ&ÕZ©£ÔD¶,uTe\» +Å…1[¶ÜJ‘]¾"k’£såꛆ{Ø“·º‚ J]BÑÈ"%@„“é’²ÔhvK;kIDиŒ=F·ÕKÎRaK€¼Z)I‡œ.ŸÙ¬2o*B徑­qÁIIFåxÛ²_ƒü¤¤Êo‹£È=).€ãâ0°ž·ÒV±à!ASWÌ^Ð'`|ywÕeë|ö*/þ„ѨJ­!›ìS[#qMÝý‰Æ[âøZî¤ +®°&NÍrk}G æDµ)t,¨ò·$Eu%‹$ýŽªâÒ,dš« Ø (9À­;@Ux¥åÖøËÚSž.W ×„eK‘ÛÁºi;kÀ§MìH›¨Ü­·q@DÉá®Ô³d|z½ï æýý]´¢3–oìe¡Çäñ· $¢½-—Zoìº4”V´Pø^¶(ÚwIõŸE2çU!ìDþ?YÈ™µßê‚Nîhvõ4»yüåS[@U&Çîñ–‰Â[ˆËÍ´^–†¸æÌO*_¨m/p¡?ƒvíÐç eVˆt¤=,!Röpû@ y ¹`âò\¹ +í³(aÿCb[~þ]d/h“ֱ嶄=¯Ÿ:kº}Æ2.8J4lþ¬€ÛL]IË6ý‰»è—¯5ôy¡¹# ¿·YnH-Uj¤Òvi\•f™ØûNg+†j4D’d˾|ë0MQQ8ß‹T@w‡*÷*•‹R'Z*S⧦ ´Ñî˜O=æ£6¢ 2´«R_iŒ +„ +Y.«ºø/Ú†[Ú†Çnv´½ÆÈñƒà ãeAƒ[à÷²*„Á(=dW3º !Z•\fKs2K$œÌl¤²iv|ñ3šZ#ƒ\¡£4I¡UŸ¿=â,äG‰ú[ŠmÍWž¦¥aê gZ~}:"A~tn#u+ÌŒ HÖ¦f®¦æYei¼“£.QìèU?”c‘|̓‹ç"Û´Ü–µ1Ì+tãýL¼{2ƒ"µãû¢ïºWÀ}a˜m…ôj‘fiæ£ÏA”‹•½å:ÓÏ:ãiT—ünnc^-ýÖ)Êpµ´Í¡ïN]4’¶¥÷òþ£¿µWð­Î7'^èw#H_îg_îT„ ÕÌ€í®%z.¼Ùª¸Pô–”APY G—׳«GÙP”¹S…-ÛZÀ;âkæ=éWF‚ÙÈýÍ;%ˆç3Äʈ×Гáh·2ŽzqJŽPgÐÑýx\)i9,ËØØfÜbpCíø„' ö½v¢í’)€”·4C£UF5¼0~Ï™4ñÚÜl)èsîŸ$I£¯ú.mìsâ#Þ°#ñ‡Ýh…6cEáÆþI>[.a#hÅ;TnAlµàKošù¶béE,õÂEeÊ뀯ۿ¹]inQ˜áü½©µ^ ¹–°_ѪªŠ÷§§»(üU“Àv¼äíãP³ý6ÛH€-?‰Jñ0üƒ¿9d5Çøá3Ò¸?ð>]Þ}¸¤‡Ò~å¥ð£ê¿o@|òd{àdÒ?ýgÂh< Ægè†g>v5ëüÚù4ø; endstream +endobj +1739 0 obj<>endobj +1740 0 obj<>endobj +1741 0 obj<>endobj +1742 0 obj<>endobj +1743 0 obj<>endobj +1744 0 obj<>endobj +1745 0 obj<>endobj +1746 0 obj<>endobj +1747 0 obj<>endobj +1748 0 obj<>endobj +1749 0 obj<>endobj +1750 0 obj<>endobj +1751 0 obj<>endobj +1752 0 obj<>endobj +1753 0 obj<>endobj +1754 0 obj<>endobj +1755 0 obj<>endobj +1756 0 obj<>endobj +1757 0 obj<>endobj +1758 0 obj<>endobj +1759 0 obj<>endobj +1760 0 obj<>endobj +1761 0 obj<>endobj +1762 0 obj<>endobj +1763 0 obj<>endobj +1764 0 obj<>endobj +1765 0 obj<>endobj +1766 0 obj<>endobj +1767 0 obj<>endobj +1768 0 obj<>endobj +1769 0 obj<>endobj +1770 0 obj<>endobj +1771 0 obj<>endobj +1772 0 obj<>endobj +1773 0 obj<>endobj +1774 0 obj<>endobj +1775 0 obj<>endobj +1776 0 obj<>endobj +1777 0 obj<>endobj +1778 0 obj<>endobj +1779 0 obj<>endobj +1780 0 obj<>endobj +1781 0 obj<>endobj +1782 0 obj<>endobj +1783 0 obj<>endobj +1784 0 obj<>endobj +1785 0 obj<>endobj +1786 0 obj<>endobj +1787 0 obj<>endobj +1788 0 obj<>endobj +1789 0 obj<>endobj +1790 0 obj<>endobj +1791 0 obj<>endobj +1792 0 obj<>endobj +1793 0 obj<>endobj +1794 0 obj<>endobj +1795 0 obj<>endobj +1796 0 obj<>endobj +1797 0 obj<>endobj +1798 0 obj<>endobj +1799 0 obj<>endobj +1800 0 obj<>endobj +1801 0 obj<>endobj +1802 0 obj<>endobj +1803 0 obj<>endobj +1804 0 obj<>endobj +1805 0 obj<>endobj +1806 0 obj<>endobj +1807 0 obj<>endobj +1808 0 obj<>endobj +1809 0 obj<>endobj +1810 0 obj<>endobj +1811 0 obj<>endobj +1812 0 obj<>endobj +1813 0 obj<>endobj +1814 0 obj<>endobj +1815 0 obj<>endobj +1816 0 obj<>endobj +1817 0 obj<>endobj +1818 0 obj<>endobj +1819 0 obj<>endobj +1820 0 obj<>endobj +1821 0 obj<>endobj +1822 0 obj<>endobj +1823 0 obj<>endobj +1824 0 obj<>endobj +1825 0 obj<>endobj +1826 0 obj<>endobj +1827 0 obj<>endobj +1828 0 obj<>endobj +1829 0 obj<>endobj +1830 0 obj<>endobj +1831 0 obj<>endobj +1832 0 obj<>endobj +1833 0 obj<>endobj +1834 0 obj<>endobj +1835 0 obj<>endobj +1836 0 obj<>endobj +1837 0 obj<>endobj +1838 0 obj<>endobj +1839 0 obj<>endobj +1840 0 obj<>endobj +1841 0 obj<>endobj +1842 0 obj<>endobj +1843 0 obj<>endobj +1844 0 obj<>endobj +1845 0 obj<>endobj +1846 0 obj<>endobj +1847 0 obj<>endobj +1848 0 obj<>endobj +1849 0 obj<>endobj +1850 0 obj<>endobj +1851 0 obj<>endobj +1852 0 obj<>endobj +1853 0 obj<>endobj +1854 0 obj<>endobj +1855 0 obj<>endobj +1856 0 obj<>endobj +1857 0 obj<>endobj +1858 0 obj<>endobj +1859 0 obj<>endobj +1860 0 obj<>endobj +1861 0 obj<>endobj +1862 0 obj<>endobj +1863 0 obj<>endobj +1864 0 obj<>endobj +1865 0 obj<>endobj +1866 0 obj<>endobj +1867 0 obj<>endobj +1868 0 obj<>endobj +1869 0 obj<>endobj +1870 0 obj<>endobj +1871 0 obj<>endobj +1872 0 obj<>endobj +1873 0 obj<>endobj +1874 0 obj<>endobj +1875 0 obj<>endobj +1876 0 obj<>endobj +1877 0 obj<>endobj +1878 0 obj<>endobj +1879 0 obj<>endobj +1880 0 obj<>endobj +1881 0 obj<>endobj +1882 0 obj<>endobj +1883 0 obj<>endobj +1884 0 obj<>endobj +1885 0 obj<>endobj +1886 0 obj<>endobj +1887 0 obj<>endobj +1888 0 obj<>endobj +1889 0 obj<>endobj +1890 0 obj<>endobj +1891 0 obj<>endobj +1892 0 obj<>endobj +1893 0 obj<>endobj +1894 0 obj<>endobj +1895 0 obj<>endobj +1896 0 obj<>endobj +1897 0 obj<>endobj +1898 0 obj<>endobj +1899 0 obj<>endobj +1900 0 obj<>endobj +1901 0 obj<>endobj +1902 0 obj<>endobj +1903 0 obj<>endobj +1904 0 obj<>endobj +1905 0 obj<>endobj +1906 0 obj<>endobj +1907 0 obj<>endobj +1908 0 obj<>endobj +1909 0 obj<>endobj +1910 0 obj<>endobj +1911 0 obj<>endobj +1912 0 obj<>endobj +1913 0 obj<>endobj +1914 0 obj<>endobj +1915 0 obj<>endobj +1916 0 obj<>endobj +1917 0 obj<>endobj +1918 0 obj<>endobj +1919 0 obj<>endobj +1920 0 obj<>endobj +1921 0 obj<>endobj +1922 0 obj<>endobj +1923 0 obj<>endobj +1924 0 obj<>endobj +1925 0 obj<>endobj +1926 0 obj<>endobj +1927 0 obj<>endobj +1928 0 obj<>endobj +1929 0 obj<>endobj +1930 0 obj<>endobj +1931 0 obj<>endobj +1932 0 obj<>endobj +1933 0 obj<>endobj +1934 0 obj<>endobj +1935 0 obj<>endobj +1936 0 obj<>endobj +1937 0 obj<>endobj +1938 0 obj<>endobj +1939 0 obj<>endobj +1940 0 obj<>endobj +1941 0 obj<>endobj +1942 0 obj<>endobj +1943 0 obj<>endobj +1944 0 obj<>endobj +1945 0 obj<>endobj +1946 0 obj<>endobj +1947 0 obj<>endobj +1948 0 obj<>endobj +1949 0 obj<>endobj +1950 0 obj<>endobj +1951 0 obj<>endobj +1952 0 obj<>endobj +1953 0 obj<>endobj +1954 0 obj<>endobj +1955 0 obj<>endobj +1956 0 obj<>endobj +1957 0 obj<>endobj +1958 0 obj<>endobj +1959 0 obj<>endobj +1960 0 obj<>endobj +1961 0 obj<>endobj +1962 0 obj<>endobj +1963 0 obj<>endobj +1964 0 obj<>endobj +1965 0 obj<>endobj +1966 0 obj<>endobj +1967 0 obj<>endobj +1968 0 obj<>endobj +1969 0 obj<>endobj +1970 0 obj<>endobj +1971 0 obj<>endobj +1972 0 obj<>endobj +1973 0 obj<>endobj +1974 0 obj<>endobj +1975 0 obj<>endobj +1976 0 obj<>endobj +1977 0 obj<>endobj +1978 0 obj<>endobj +1979 0 obj<>endobj +1980 0 obj<>endobj +1981 0 obj<>endobj +1982 0 obj<>endobj +1983 0 obj<>endobj +1984 0 obj<>endobj +1985 0 obj<>endobj +1986 0 obj<>endobj +1987 0 obj<>endobj +1988 0 obj<>endobj +1989 0 obj<>endobj +1990 0 obj<>endobj +1991 0 obj<>endobj +1992 0 obj<>endobj +1993 0 obj<>endobj +1994 0 obj<>endobj +1995 0 obj<>endobj +1996 0 obj<>endobj +1997 0 obj<>endobj +1998 0 obj<>endobj +1999 0 obj<>endobj +2000 0 obj<>endobj +2001 0 obj<>endobj +2002 0 obj<>endobj +2003 0 obj<>endobj +2004 0 obj<>endobj +2005 0 obj<>endobj +2006 0 obj<>endobj +2007 0 obj<>endobj +2008 0 obj<>endobj +2009 0 obj<>endobj +2010 0 obj<>endobj +2011 0 obj<>endobj +2012 0 obj<>endobj +2013 0 obj<>endobj +2014 0 obj<>endobj +2015 0 obj<>endobj +2016 0 obj<>endobj +2017 0 obj<>endobj +2018 0 obj<>endobj +2019 0 obj<>endobj +2020 0 obj<>endobj +2021 0 obj<>endobj +2022 0 obj<>endobj +2023 0 obj<>endobj +2024 0 obj<>1<>8<>9<>13<>14<>16<>20<>24<>36<>37<>39<>41<>43<>60<>63<>66<>69<>70<>73<>83<>88<>91<>93<>104<>117<>126<>129<>130<>134<>137<>139<>140<>142<>145<>149<>153<>155<>]>>>>endobj xref -0 1986 +0 2025 0000000000 65535 f 0000000015 00000 n 0000000247 00000 n @@ -4343,31 +4376,31 @@ xref 0000009574 00000 n 0000009676 00000 n 0000009778 00000 n -0000009880 00000 n -0000009983 00000 n -0000010086 00000 n -0000010189 00000 n +0000009881 00000 n +0000009984 00000 n +0000010087 00000 n +0000010190 00000 n 0000010292 00000 n -0000010395 00000 n -0000010498 00000 n -0000010601 00000 n -0000010704 00000 n -0000010807 00000 n -0000010910 00000 n -0000011013 00000 n -0000011116 00000 n -0000011219 00000 n -0000011322 00000 n +0000010394 00000 n +0000010497 00000 n +0000010600 00000 n +0000010703 00000 n +0000010806 00000 n +0000010909 00000 n +0000011012 00000 n +0000011115 00000 n +0000011218 00000 n +0000011321 00000 n 0000011424 00000 n 0000011527 00000 n 0000011630 00000 n 0000011733 00000 n 0000011836 00000 n -0000011939 00000 n -0000012042 00000 n -0000012145 00000 n -0000012248 00000 n -0000012351 00000 n +0000011938 00000 n +0000012041 00000 n +0000012144 00000 n +0000012247 00000 n +0000012350 00000 n 0000012453 00000 n 0000012556 00000 n 0000012658 00000 n @@ -4380,16 +4413,16 @@ xref 0000013590 00000 n 0000013694 00000 n 0000013798 00000 n -0000013901 00000 n -0000014005 00000 n -0000014109 00000 n -0000014213 00000 n -0000014316 00000 n -0000014419 00000 n -0000014522 00000 n -0000014626 00000 n -0000014730 00000 n -0000014834 00000 n +0000013902 00000 n +0000014006 00000 n +0000014110 00000 n +0000014214 00000 n +0000014317 00000 n +0000014421 00000 n +0000014525 00000 n +0000014629 00000 n +0000014732 00000 n +0000014835 00000 n 0000014938 00000 n 0000015042 00000 n 0000015146 00000 n @@ -4405,125 +4438,125 @@ xref 0000016186 00000 n 0000016290 00000 n 0000016394 00000 n -0000016497 00000 n -0000016601 00000 n -0000016705 00000 n -0000016809 00000 n +0000016498 00000 n +0000016602 00000 n +0000016706 00000 n +0000016810 00000 n 0000016913 00000 n 0000017017 00000 n 0000017121 00000 n 0000017225 00000 n 0000017329 00000 n 0000017432 00000 n -0000017777 00000 n -0000017880 00000 n -0000017984 00000 n -0000018088 00000 n -0000018192 00000 n -0000018295 00000 n -0000018399 00000 n -0000018503 00000 n -0000018606 00000 n -0000018710 00000 n -0000018814 00000 n -0000018918 00000 n -0000019022 00000 n -0000019126 00000 n -0000019230 00000 n -0000019334 00000 n -0000019438 00000 n -0000019542 00000 n -0000019646 00000 n -0000019750 00000 n -0000019854 00000 n -0000019958 00000 n -0000020062 00000 n -0000020166 00000 n -0000020270 00000 n -0000020374 00000 n -0000020478 00000 n -0000020582 00000 n -0000020686 00000 n -0000020790 00000 n -0000020894 00000 n -0000020997 00000 n -0000021101 00000 n -0000021205 00000 n -0000021309 00000 n -0000021413 00000 n -0000021517 00000 n -0000021621 00000 n -0000021725 00000 n -0000021829 00000 n -0000021933 00000 n -0000022037 00000 n -0000022141 00000 n -0000022244 00000 n -0000022346 00000 n -0000022448 00000 n -0000022825 00000 n -0000022928 00000 n -0000023032 00000 n -0000023136 00000 n -0000023240 00000 n -0000023343 00000 n -0000023447 00000 n -0000023551 00000 n -0000023655 00000 n -0000023759 00000 n -0000023863 00000 n -0000023967 00000 n -0000024071 00000 n -0000024175 00000 n -0000024279 00000 n -0000024383 00000 n -0000024487 00000 n -0000024591 00000 n -0000024694 00000 n -0000024798 00000 n -0000024902 00000 n -0000025006 00000 n -0000025110 00000 n -0000025214 00000 n -0000025318 00000 n -0000025422 00000 n -0000025526 00000 n -0000025629 00000 n -0000025732 00000 n -0000025836 00000 n -0000025940 00000 n -0000026044 00000 n -0000026148 00000 n -0000026252 00000 n -0000026356 00000 n -0000026460 00000 n -0000026564 00000 n -0000026668 00000 n -0000026772 00000 n -0000026875 00000 n -0000026979 00000 n -0000027082 00000 n -0000027184 00000 n -0000027286 00000 n +0000017534 00000 n +0000017636 00000 n +0000017997 00000 n +0000018100 00000 n +0000018204 00000 n +0000018308 00000 n +0000018411 00000 n +0000018515 00000 n +0000018619 00000 n +0000018723 00000 n +0000018826 00000 n +0000018930 00000 n +0000019034 00000 n +0000019137 00000 n +0000019241 00000 n +0000019345 00000 n +0000019449 00000 n +0000019553 00000 n +0000019657 00000 n +0000019761 00000 n +0000019865 00000 n +0000019969 00000 n +0000020073 00000 n +0000020177 00000 n +0000020281 00000 n +0000020385 00000 n +0000020489 00000 n +0000020593 00000 n +0000020697 00000 n +0000020801 00000 n +0000020905 00000 n +0000021009 00000 n +0000021113 00000 n +0000021217 00000 n +0000021321 00000 n +0000021425 00000 n +0000021528 00000 n +0000021632 00000 n +0000021736 00000 n +0000021840 00000 n +0000021944 00000 n +0000022048 00000 n +0000022152 00000 n +0000022256 00000 n +0000022359 00000 n +0000022461 00000 n +0000022563 00000 n +0000022932 00000 n +0000023035 00000 n +0000023139 00000 n +0000023243 00000 n +0000023347 00000 n +0000023451 00000 n +0000023555 00000 n +0000023659 00000 n +0000023763 00000 n +0000023866 00000 n +0000023970 00000 n +0000024074 00000 n +0000024178 00000 n +0000024282 00000 n +0000024386 00000 n +0000024490 00000 n +0000024594 00000 n +0000024698 00000 n +0000024802 00000 n +0000024906 00000 n +0000025010 00000 n +0000025114 00000 n +0000025217 00000 n +0000025321 00000 n +0000025425 00000 n +0000025529 00000 n +0000025633 00000 n +0000025737 00000 n +0000025841 00000 n +0000025945 00000 n +0000026049 00000 n +0000026152 00000 n +0000026255 00000 n +0000026359 00000 n +0000026463 00000 n +0000026567 00000 n +0000026671 00000 n +0000026775 00000 n +0000026879 00000 n +0000026983 00000 n +0000027087 00000 n +0000027191 00000 n +0000027294 00000 n 0000027647 00000 n 0000027750 00000 n 0000027854 00000 n 0000027958 00000 n 0000028062 00000 n -0000028165 00000 n -0000028269 00000 n -0000028373 00000 n -0000028477 00000 n +0000028166 00000 n +0000028270 00000 n +0000028374 00000 n +0000028478 00000 n 0000028581 00000 n 0000028685 00000 n 0000028789 00000 n -0000028892 00000 n -0000028995 00000 n -0000029099 00000 n -0000029203 00000 n -0000029307 00000 n -0000029411 00000 n -0000029515 00000 n +0000028893 00000 n +0000028997 00000 n +0000029101 00000 n +0000029205 00000 n +0000029308 00000 n +0000029412 00000 n +0000029516 00000 n 0000029619 00000 n 0000029722 00000 n 0000029826 00000 n @@ -4532,14 +4565,14 @@ xref 0000030138 00000 n 0000030242 00000 n 0000030346 00000 n -0000030450 00000 n -0000030554 00000 n -0000030658 00000 n -0000030762 00000 n -0000030866 00000 n -0000030970 00000 n -0000031074 00000 n -0000031178 00000 n +0000030449 00000 n +0000030553 00000 n +0000030657 00000 n +0000030761 00000 n +0000030865 00000 n +0000030969 00000 n +0000031073 00000 n +0000031177 00000 n 0000031281 00000 n 0000031385 00000 n 0000031489 00000 n @@ -4547,1717 +4580,1756 @@ xref 0000031697 00000 n 0000031801 00000 n 0000031904 00000 n -0000032006 00000 n -0000032108 00000 n -0000032469 00000 n -0000032572 00000 n -0000032676 00000 n -0000032780 00000 n -0000032884 00000 n -0000032988 00000 n -0000033092 00000 n -0000033196 00000 n -0000033299 00000 n -0000033403 00000 n -0000033507 00000 n -0000033611 00000 n -0000033715 00000 n -0000033819 00000 n -0000033923 00000 n -0000034027 00000 n -0000034131 00000 n -0000034235 00000 n -0000034339 00000 n -0000034443 00000 n -0000034547 00000 n -0000034651 00000 n -0000034755 00000 n -0000034859 00000 n -0000035060 00000 n -0000035113 00000 n -0000035200 00000 n -0000035254 00000 n -0000035340 00000 n -0000035395 00000 n -0000035482 00000 n -0000035549 00000 n -0000035635 00000 n -0000035738 00000 n -0000035842 00000 n -0000035946 00000 n -0000036050 00000 n -0000036154 00000 n -0000036258 00000 n -0000036362 00000 n -0000036466 00000 n -0000036570 00000 n -0000036674 00000 n -0000036778 00000 n -0000036882 00000 n -0000036986 00000 n -0000037090 00000 n -0000037194 00000 n -0000037298 00000 n -0000037402 00000 n -0000037506 00000 n -0000037610 00000 n -0000037714 00000 n -0000037818 00000 n -0000037922 00000 n -0000038026 00000 n -0000038130 00000 n -0000038233 00000 n -0000038337 00000 n -0000038441 00000 n -0000038545 00000 n -0000038649 00000 n -0000038753 00000 n -0000038857 00000 n -0000038960 00000 n -0000039062 00000 n -0000039164 00000 n -0000039485 00000 n -0000039589 00000 n -0000039693 00000 n -0000039797 00000 n -0000039901 00000 n -0000040005 00000 n -0000040109 00000 n -0000040213 00000 n -0000040317 00000 n -0000040421 00000 n -0000040525 00000 n -0000040629 00000 n -0000040733 00000 n -0000040837 00000 n -0000040941 00000 n -0000041045 00000 n -0000041149 00000 n -0000041253 00000 n -0000041357 00000 n -0000041461 00000 n -0000041565 00000 n -0000041669 00000 n -0000041772 00000 n -0000041876 00000 n -0000041980 00000 n -0000042084 00000 n -0000042188 00000 n -0000042292 00000 n -0000042396 00000 n -0000042500 00000 n -0000042604 00000 n -0000042708 00000 n -0000042812 00000 n -0000042916 00000 n -0000043020 00000 n -0000043124 00000 n -0000043228 00000 n -0000043332 00000 n -0000043436 00000 n -0000043540 00000 n -0000043644 00000 n -0000043748 00000 n -0000043852 00000 n -0000043956 00000 n -0000044060 00000 n -0000044164 00000 n -0000044268 00000 n -0000044372 00000 n -0000044476 00000 n -0000044579 00000 n -0000044681 00000 n -0000044783 00000 n -0000045208 00000 n -0000045312 00000 n -0000045416 00000 n -0000045520 00000 n -0000045624 00000 n -0000045728 00000 n -0000045832 00000 n -0000045936 00000 n -0000046040 00000 n -0000046144 00000 n -0000046248 00000 n -0000046352 00000 n -0000046456 00000 n -0000046560 00000 n -0000046664 00000 n -0000046768 00000 n -0000046872 00000 n -0000046976 00000 n -0000047080 00000 n -0000047184 00000 n -0000047288 00000 n -0000047392 00000 n -0000047496 00000 n -0000047600 00000 n -0000047704 00000 n -0000047808 00000 n -0000047912 00000 n -0000048016 00000 n -0000048120 00000 n -0000048224 00000 n -0000048328 00000 n -0000048432 00000 n -0000048536 00000 n -0000048640 00000 n -0000048744 00000 n -0000048848 00000 n -0000048952 00000 n -0000049056 00000 n -0000049160 00000 n -0000049264 00000 n -0000049368 00000 n -0000049472 00000 n -0000049576 00000 n -0000049680 00000 n -0000049784 00000 n -0000049888 00000 n -0000049991 00000 n -0000050095 00000 n -0000050199 00000 n -0000050302 00000 n -0000050404 00000 n -0000050506 00000 n -0000050931 00000 n -0000051035 00000 n -0000051139 00000 n -0000051243 00000 n -0000051347 00000 n -0000051451 00000 n -0000051555 00000 n -0000051659 00000 n -0000051763 00000 n -0000051867 00000 n -0000051971 00000 n -0000052075 00000 n -0000052179 00000 n -0000052283 00000 n -0000052387 00000 n -0000052491 00000 n -0000052595 00000 n -0000052699 00000 n -0000052803 00000 n -0000052907 00000 n -0000053011 00000 n -0000053115 00000 n -0000053219 00000 n -0000053323 00000 n -0000053427 00000 n -0000053636 00000 n -0000053739 00000 n -0000053843 00000 n -0000053947 00000 n -0000054051 00000 n -0000054155 00000 n -0000054259 00000 n -0000054363 00000 n -0000054467 00000 n -0000054571 00000 n -0000054675 00000 n -0000054779 00000 n -0000054882 00000 n -0000054986 00000 n -0000055090 00000 n -0000055194 00000 n -0000055298 00000 n -0000055402 00000 n -0000055506 00000 n -0000055609 00000 n -0000055713 00000 n -0000055817 00000 n -0000055921 00000 n -0000056025 00000 n -0000056129 00000 n -0000056233 00000 n -0000056337 00000 n -0000056441 00000 n -0000056545 00000 n -0000056649 00000 n -0000056753 00000 n -0000056857 00000 n -0000056961 00000 n -0000057065 00000 n -0000057169 00000 n -0000057273 00000 n -0000057377 00000 n -0000057481 00000 n -0000057585 00000 n -0000057689 00000 n -0000057793 00000 n -0000057897 00000 n -0000058000 00000 n -0000058102 00000 n -0000058204 00000 n -0000058573 00000 n -0000058677 00000 n -0000058702 00000 n -0000058751 00000 n -0000058838 00000 n -0000058863 00000 n -0000058919 00000 n -0000059006 00000 n -0000059075 00000 n -0000059162 00000 n -0000059213 00000 n -0000059300 00000 n -0000059385 00000 n -0000059472 00000 n -0000059528 00000 n -0000059615 00000 n -0000059665 00000 n -0000059752 00000 n -0000059817 00000 n -0000059869 00000 n -0000059956 00000 n -0000060012 00000 n -0000060099 00000 n -0000060147 00000 n -0000060234 00000 n -0000060275 00000 n -0000060323 00000 n -0000060410 00000 n -0000060435 00000 n -0000060476 00000 n -0000060563 00000 n -0000060607 00000 n -0000060694 00000 n -0000060739 00000 n -0000060826 00000 n -0000060870 00000 n -0000060957 00000 n -0000061001 00000 n -0000061088 00000 n -0000061130 00000 n -0000061217 00000 n -0000061265 00000 n -0000061352 00000 n -0000061425 00000 n -0000061473 00000 n -0000061559 00000 n -0000061584 00000 n -0000061637 00000 n -0000061723 00000 n -0000061748 00000 n -0000061851 00000 n -0000061954 00000 n -0000062058 00000 n -0000062162 00000 n -0000062266 00000 n -0000062370 00000 n -0000062474 00000 n -0000062578 00000 n +0000032249 00000 n +0000032352 00000 n +0000032456 00000 n +0000032560 00000 n +0000032664 00000 n +0000032768 00000 n +0000032872 00000 n +0000032976 00000 n +0000033080 00000 n +0000033184 00000 n +0000033287 00000 n +0000033391 00000 n +0000033495 00000 n +0000033599 00000 n +0000033703 00000 n +0000033807 00000 n +0000033911 00000 n +0000034014 00000 n +0000034118 00000 n +0000034222 00000 n +0000034326 00000 n +0000034430 00000 n +0000034534 00000 n +0000034638 00000 n +0000034742 00000 n +0000034846 00000 n +0000034950 00000 n +0000035054 00000 n +0000035158 00000 n +0000035262 00000 n +0000035366 00000 n +0000035470 00000 n +0000035574 00000 n +0000035847 00000 n +0000035900 00000 n +0000035987 00000 n +0000036041 00000 n +0000036127 00000 n +0000036182 00000 n +0000036269 00000 n +0000036336 00000 n +0000036422 00000 n +0000036525 00000 n +0000036629 00000 n +0000036733 00000 n +0000036837 00000 n +0000036941 00000 n +0000037045 00000 n +0000037149 00000 n +0000037253 00000 n +0000037357 00000 n +0000037461 00000 n +0000037565 00000 n +0000037669 00000 n +0000037773 00000 n +0000037877 00000 n +0000037981 00000 n +0000038085 00000 n +0000038189 00000 n +0000038293 00000 n +0000038397 00000 n +0000038501 00000 n +0000038605 00000 n +0000038709 00000 n +0000038813 00000 n +0000038917 00000 n +0000039020 00000 n +0000039124 00000 n +0000039228 00000 n +0000039332 00000 n +0000039436 00000 n +0000039540 00000 n +0000039644 00000 n +0000039747 00000 n +0000039849 00000 n +0000039951 00000 n +0000040272 00000 n +0000040376 00000 n +0000040480 00000 n +0000040584 00000 n +0000040688 00000 n +0000040792 00000 n +0000040896 00000 n +0000041000 00000 n +0000041104 00000 n +0000041208 00000 n +0000041312 00000 n +0000041416 00000 n +0000041520 00000 n +0000041624 00000 n +0000041728 00000 n +0000041832 00000 n +0000041936 00000 n +0000042040 00000 n +0000042144 00000 n +0000042248 00000 n +0000042352 00000 n +0000042456 00000 n +0000042560 00000 n +0000042664 00000 n +0000042768 00000 n +0000042872 00000 n +0000042975 00000 n +0000043079 00000 n +0000043183 00000 n +0000043287 00000 n +0000043391 00000 n +0000043495 00000 n +0000043599 00000 n +0000043703 00000 n +0000043807 00000 n +0000043911 00000 n +0000044015 00000 n +0000044119 00000 n +0000044223 00000 n +0000044327 00000 n +0000044431 00000 n +0000044535 00000 n +0000044639 00000 n +0000044743 00000 n +0000044847 00000 n +0000044951 00000 n +0000045055 00000 n +0000045159 00000 n +0000045263 00000 n +0000045366 00000 n +0000045468 00000 n +0000045570 00000 n +0000045995 00000 n +0000046099 00000 n +0000046203 00000 n +0000046307 00000 n +0000046411 00000 n +0000046515 00000 n +0000046619 00000 n +0000046723 00000 n +0000046827 00000 n +0000046931 00000 n +0000047035 00000 n +0000047139 00000 n +0000047243 00000 n +0000047347 00000 n +0000047451 00000 n +0000047555 00000 n +0000047659 00000 n +0000047763 00000 n +0000047867 00000 n +0000047971 00000 n +0000048075 00000 n +0000048179 00000 n +0000048283 00000 n +0000048387 00000 n +0000048491 00000 n +0000048595 00000 n +0000048699 00000 n +0000048803 00000 n +0000048907 00000 n +0000049011 00000 n +0000049115 00000 n +0000049219 00000 n +0000049323 00000 n +0000049427 00000 n +0000049531 00000 n +0000049635 00000 n +0000049739 00000 n +0000049843 00000 n +0000049947 00000 n +0000050051 00000 n +0000050155 00000 n +0000050259 00000 n +0000050363 00000 n +0000050467 00000 n +0000050571 00000 n +0000050675 00000 n +0000050779 00000 n +0000050883 00000 n +0000050987 00000 n +0000051090 00000 n +0000051192 00000 n +0000051294 00000 n +0000051719 00000 n +0000051823 00000 n +0000051926 00000 n +0000052030 00000 n +0000052134 00000 n +0000052238 00000 n +0000052342 00000 n +0000052446 00000 n +0000052550 00000 n +0000052654 00000 n +0000052758 00000 n +0000052862 00000 n +0000052966 00000 n +0000053070 00000 n +0000053174 00000 n +0000053278 00000 n +0000053382 00000 n +0000053486 00000 n +0000053590 00000 n +0000053694 00000 n +0000053798 00000 n +0000053902 00000 n +0000054006 00000 n +0000054110 00000 n +0000054214 00000 n +0000054318 00000 n +0000054422 00000 n +0000054526 00000 n +0000054630 00000 n +0000054734 00000 n +0000054838 00000 n +0000054942 00000 n +0000055207 00000 n +0000055310 00000 n +0000055414 00000 n +0000055518 00000 n +0000055622 00000 n +0000055726 00000 n +0000055830 00000 n +0000055934 00000 n +0000056038 00000 n +0000056142 00000 n +0000056246 00000 n +0000056350 00000 n +0000056453 00000 n +0000056557 00000 n +0000056661 00000 n +0000056765 00000 n +0000056869 00000 n +0000056973 00000 n +0000057077 00000 n +0000057180 00000 n +0000057284 00000 n +0000057388 00000 n +0000057492 00000 n +0000057596 00000 n +0000057700 00000 n +0000057804 00000 n +0000057908 00000 n +0000058012 00000 n +0000058116 00000 n +0000058220 00000 n +0000058324 00000 n +0000058428 00000 n +0000058532 00000 n +0000058636 00000 n +0000058740 00000 n +0000058844 00000 n +0000058948 00000 n +0000059052 00000 n +0000059156 00000 n +0000059260 00000 n +0000059364 00000 n +0000059468 00000 n +0000059571 00000 n +0000059673 00000 n +0000059775 00000 n +0000060144 00000 n +0000060248 00000 n +0000060273 00000 n +0000060322 00000 n +0000060409 00000 n +0000060434 00000 n +0000060490 00000 n +0000060577 00000 n +0000060646 00000 n +0000060733 00000 n +0000060784 00000 n +0000060871 00000 n +0000060956 00000 n +0000061043 00000 n +0000061099 00000 n +0000061186 00000 n +0000061236 00000 n +0000061323 00000 n +0000061375 00000 n +0000061461 00000 n +0000061534 00000 n +0000061590 00000 n +0000061677 00000 n +0000061725 00000 n +0000061811 00000 n +0000061859 00000 n +0000061946 00000 n +0000061987 00000 n +0000062028 00000 n +0000062115 00000 n +0000062159 00000 n +0000062246 00000 n +0000062291 00000 n +0000062378 00000 n +0000062422 00000 n +0000062509 00000 n +0000062553 00000 n +0000062640 00000 n 0000062682 00000 n -0000062786 00000 n -0000062890 00000 n -0000062994 00000 n -0000063098 00000 n -0000063202 00000 n -0000063306 00000 n -0000063410 00000 n -0000063513 00000 n -0000063617 00000 n -0000063721 00000 n -0000063825 00000 n -0000063929 00000 n -0000064033 00000 n -0000064137 00000 n -0000064241 00000 n -0000064345 00000 n -0000064449 00000 n -0000064552 00000 n -0000064656 00000 n -0000064760 00000 n -0000064864 00000 n -0000064968 00000 n -0000065072 00000 n -0000065176 00000 n -0000065280 00000 n -0000065384 00000 n -0000065488 00000 n -0000065591 00000 n -0000065695 00000 n -0000065799 00000 n -0000065903 00000 n -0000066240 00000 n -0000066288 00000 n -0000066375 00000 n -0000066423 00000 n -0000066510 00000 n -0000066560 00000 n -0000066647 00000 n -0000066695 00000 n -0000066782 00000 n -0000066831 00000 n -0000066879 00000 n -0000066966 00000 n -0000067014 00000 n -0000067099 00000 n -0000067144 00000 n -0000067230 00000 n -0000067273 00000 n -0000067359 00000 n -0000067400 00000 n -0000067486 00000 n -0000067535 00000 n -0000067621 00000 n -0000067667 00000 n -0000067753 00000 n -0000067798 00000 n -0000067884 00000 n -0000067936 00000 n -0000068022 00000 n -0000068072 00000 n -0000068158 00000 n -0000068204 00000 n -0000068290 00000 n -0000068333 00000 n -0000068419 00000 n -0000068463 00000 n -0000068549 00000 n -0000068592 00000 n -0000068678 00000 n -0000068723 00000 n -0000068809 00000 n -0000068847 00000 n -0000068933 00000 n -0000068975 00000 n -0000069061 00000 n -0000069104 00000 n -0000069190 00000 n -0000069228 00000 n -0000069314 00000 n -0000069356 00000 n -0000069442 00000 n -0000069486 00000 n -0000069572 00000 n -0000069619 00000 n -0000069705 00000 n -0000069753 00000 n -0000069838 00000 n -0000070039 00000 n -0000070089 00000 n -0000070176 00000 n -0000070226 00000 n -0000070312 00000 n -0000070345 00000 n -0000070394 00000 n -0000070480 00000 n -0000070527 00000 n -0000070614 00000 n -0000070647 00000 n -0000070762 00000 n -0000070849 00000 n -0000070931 00000 n -0000071018 00000 n -0000071103 00000 n -0000071190 00000 n -0000071231 00000 n -0000071286 00000 n -0000071373 00000 n -0000071429 00000 n -0000071516 00000 n -0000071549 00000 n -0000071597 00000 n -0000071684 00000 n -0000071758 00000 n -0000071845 00000 n -0000071913 00000 n -0000072000 00000 n -0000072054 00000 n -0000072141 00000 n -0000072209 00000 n -0000072296 00000 n -0000072370 00000 n -0000072457 00000 n -0000072505 00000 n -0000072592 00000 n -0000072649 00000 n -0000072736 00000 n -0000072817 00000 n -0000072872 00000 n -0000072959 00000 n -0000073040 00000 n -0000073127 00000 n -0000073160 00000 n -0000073213 00000 n -0000073300 00000 n -0000073325 00000 n -0000073373 00000 n -0000073460 00000 n -0000073502 00000 n -0000073589 00000 n -0000073632 00000 n -0000073719 00000 n -0000073769 00000 n -0000073856 00000 n -0000073904 00000 n -0000073991 00000 n -0000074048 00000 n -0000074091 00000 n -0000074178 00000 n -0000074232 00000 n -0000074319 00000 n -0000074364 00000 n -0000074451 00000 n -0000074492 00000 n -0000074549 00000 n -0000074636 00000 n -0000074732 00000 n -0000074818 00000 n -0000074851 00000 n -0000074954 00000 n -0000075058 00000 n -0000075162 00000 n -0000075266 00000 n -0000075370 00000 n -0000075474 00000 n -0000075578 00000 n -0000075682 00000 n -0000075786 00000 n -0000075890 00000 n -0000075994 00000 n -0000076098 00000 n -0000076202 00000 n -0000076306 00000 n -0000076410 00000 n -0000076514 00000 n -0000076618 00000 n -0000076722 00000 n -0000076826 00000 n -0000076929 00000 n -0000077033 00000 n -0000077137 00000 n -0000077241 00000 n -0000077345 00000 n -0000077449 00000 n -0000077553 00000 n -0000077657 00000 n -0000077761 00000 n -0000077865 00000 n -0000077968 00000 n -0000078072 00000 n -0000078176 00000 n -0000078280 00000 n -0000078383 00000 n -0000078487 00000 n -0000078591 00000 n -0000078694 00000 n -0000078798 00000 n -0000078902 00000 n -0000079006 00000 n -0000079110 00000 n -0000079213 00000 n -0000079315 00000 n -0000079417 00000 n -0000079786 00000 n -0000079890 00000 n -0000079994 00000 n -0000080098 00000 n -0000080202 00000 n -0000080306 00000 n -0000080410 00000 n -0000080514 00000 n -0000080618 00000 n -0000080722 00000 n -0000080826 00000 n -0000080930 00000 n -0000081034 00000 n -0000081138 00000 n -0000081242 00000 n -0000081346 00000 n -0000081449 00000 n -0000081553 00000 n -0000081657 00000 n -0000081761 00000 n -0000081865 00000 n -0000081969 00000 n -0000082073 00000 n -0000082177 00000 n -0000082281 00000 n -0000082385 00000 n -0000082489 00000 n -0000082593 00000 n -0000082697 00000 n -0000082801 00000 n -0000082905 00000 n -0000083009 00000 n -0000083113 00000 n -0000083217 00000 n -0000083320 00000 n -0000083424 00000 n -0000083528 00000 n -0000083632 00000 n -0000083736 00000 n -0000083840 00000 n -0000083944 00000 n -0000084048 00000 n -0000084152 00000 n -0000084256 00000 n -0000084360 00000 n -0000084464 00000 n -0000084568 00000 n -0000084671 00000 n -0000084775 00000 n -0000084878 00000 n -0000084980 00000 n -0000085082 00000 n -0000085507 00000 n -0000085611 00000 n -0000085715 00000 n -0000085819 00000 n -0000085923 00000 n -0000086026 00000 n -0000086129 00000 n -0000086233 00000 n -0000086337 00000 n -0000086441 00000 n -0000086545 00000 n -0000086649 00000 n -0000086753 00000 n -0000086857 00000 n -0000086961 00000 n -0000087065 00000 n -0000087169 00000 n -0000087272 00000 n -0000087376 00000 n -0000087480 00000 n -0000087584 00000 n -0000087688 00000 n -0000087792 00000 n -0000087896 00000 n -0000088000 00000 n -0000088103 00000 n -0000088207 00000 n -0000088311 00000 n -0000088415 00000 n -0000088519 00000 n -0000088623 00000 n -0000088727 00000 n -0000088992 00000 n -0000089040 00000 n -0000089127 00000 n -0000089174 00000 n -0000089260 00000 n -0000089307 00000 n -0000089393 00000 n -0000089434 00000 n -0000089479 00000 n -0000089566 00000 n -0000089611 00000 n -0000089697 00000 n -0000089730 00000 n -0000089776 00000 n -0000089861 00000 n -0000089907 00000 n -0000089990 00000 n -0000090023 00000 n -0000090067 00000 n -0000090154 00000 n -0000090205 00000 n -0000090292 00000 n -0000090341 00000 n -0000090428 00000 n -0000090476 00000 n -0000090562 00000 n -0000090611 00000 n -0000090666 00000 n -0000090752 00000 n -0000090777 00000 n -0000090830 00000 n -0000090917 00000 n -0000090967 00000 n -0000091054 00000 n -0000091087 00000 n -0000091206 00000 n -0000091292 00000 n -0000091335 00000 n -0000091422 00000 n -0000091465 00000 n -0000091552 00000 n -0000091593 00000 n -0000091656 00000 n -0000091743 00000 n +0000062769 00000 n +0000062817 00000 n +0000062904 00000 n +0000062977 00000 n +0000063025 00000 n +0000063110 00000 n +0000063135 00000 n +0000063188 00000 n +0000063272 00000 n +0000063297 00000 n +0000063400 00000 n +0000063504 00000 n +0000063608 00000 n +0000063712 00000 n +0000063816 00000 n +0000063919 00000 n +0000064022 00000 n +0000064126 00000 n +0000064230 00000 n +0000064334 00000 n +0000064438 00000 n +0000064542 00000 n +0000064646 00000 n +0000064750 00000 n +0000064854 00000 n +0000064958 00000 n +0000065062 00000 n +0000065166 00000 n +0000065270 00000 n +0000065374 00000 n +0000065478 00000 n +0000065581 00000 n +0000065685 00000 n +0000065789 00000 n +0000065893 00000 n +0000065997 00000 n +0000066101 00000 n +0000066205 00000 n +0000066309 00000 n +0000066413 00000 n +0000066517 00000 n +0000066620 00000 n +0000066724 00000 n +0000066828 00000 n +0000066932 00000 n +0000067036 00000 n +0000067140 00000 n +0000067244 00000 n +0000067348 00000 n +0000067452 00000 n +0000067556 00000 n +0000067658 00000 n +0000067760 00000 n +0000067862 00000 n +0000068231 00000 n +0000068335 00000 n +0000068360 00000 n +0000068408 00000 n +0000068495 00000 n +0000068520 00000 n +0000068568 00000 n +0000068655 00000 n +0000068700 00000 n +0000068786 00000 n +0000068829 00000 n +0000068915 00000 n +0000068956 00000 n +0000069042 00000 n +0000069091 00000 n +0000069177 00000 n +0000069223 00000 n +0000069309 00000 n +0000069354 00000 n +0000069440 00000 n +0000069492 00000 n +0000069578 00000 n +0000069628 00000 n +0000069714 00000 n +0000069760 00000 n +0000069846 00000 n +0000069889 00000 n +0000069975 00000 n +0000070019 00000 n +0000070105 00000 n +0000070148 00000 n +0000070234 00000 n +0000070279 00000 n +0000070365 00000 n +0000070403 00000 n +0000070489 00000 n +0000070531 00000 n +0000070617 00000 n +0000070660 00000 n +0000070746 00000 n +0000070784 00000 n +0000070870 00000 n +0000070912 00000 n +0000070998 00000 n +0000071042 00000 n +0000071128 00000 n +0000071175 00000 n +0000071261 00000 n +0000071309 00000 n +0000071396 00000 n +0000071589 00000 n +0000071638 00000 n +0000071724 00000 n +0000071749 00000 n +0000071796 00000 n +0000071883 00000 n +0000071908 00000 n +0000072023 00000 n +0000072110 00000 n +0000072135 00000 n +0000072217 00000 n +0000072304 00000 n +0000072389 00000 n +0000072476 00000 n +0000072531 00000 n +0000072618 00000 n +0000072674 00000 n +0000072761 00000 n +0000072810 00000 n +0000072858 00000 n +0000072945 00000 n +0000073019 00000 n +0000073106 00000 n +0000073174 00000 n +0000073261 00000 n +0000073315 00000 n +0000073402 00000 n +0000073470 00000 n +0000073557 00000 n +0000073631 00000 n +0000073718 00000 n +0000073766 00000 n +0000073853 00000 n +0000073910 00000 n +0000073997 00000 n +0000074078 00000 n +0000074133 00000 n +0000074220 00000 n +0000074301 00000 n +0000074388 00000 n +0000074421 00000 n +0000074474 00000 n +0000074561 00000 n +0000074586 00000 n +0000074634 00000 n +0000074721 00000 n +0000074763 00000 n +0000074850 00000 n +0000074893 00000 n +0000074980 00000 n +0000075030 00000 n +0000075117 00000 n +0000075165 00000 n +0000075252 00000 n +0000075309 00000 n +0000075352 00000 n +0000075439 00000 n +0000075493 00000 n +0000075580 00000 n +0000075625 00000 n +0000075712 00000 n +0000075753 00000 n +0000075810 00000 n +0000075897 00000 n +0000075993 00000 n +0000076079 00000 n +0000076112 00000 n +0000076215 00000 n +0000076319 00000 n +0000076423 00000 n +0000076527 00000 n +0000076631 00000 n +0000076735 00000 n +0000076839 00000 n +0000076943 00000 n +0000077047 00000 n +0000077151 00000 n +0000077255 00000 n +0000077359 00000 n +0000077463 00000 n +0000077567 00000 n +0000077671 00000 n +0000077775 00000 n +0000077879 00000 n +0000077983 00000 n +0000078087 00000 n +0000078190 00000 n +0000078294 00000 n +0000078398 00000 n +0000078502 00000 n +0000078606 00000 n +0000078710 00000 n +0000078814 00000 n +0000078918 00000 n +0000079022 00000 n +0000079126 00000 n +0000079229 00000 n +0000079333 00000 n +0000079437 00000 n +0000079541 00000 n +0000079644 00000 n +0000079748 00000 n +0000079852 00000 n +0000079955 00000 n +0000080059 00000 n +0000080163 00000 n +0000080267 00000 n +0000080371 00000 n +0000080474 00000 n +0000080576 00000 n +0000080678 00000 n +0000081047 00000 n +0000081151 00000 n +0000081255 00000 n +0000081359 00000 n +0000081463 00000 n +0000081567 00000 n +0000081671 00000 n +0000081775 00000 n +0000081879 00000 n +0000081983 00000 n +0000082087 00000 n +0000082191 00000 n +0000082295 00000 n +0000082399 00000 n +0000082503 00000 n +0000082607 00000 n +0000082710 00000 n +0000082814 00000 n +0000082918 00000 n +0000083022 00000 n +0000083126 00000 n +0000083230 00000 n +0000083334 00000 n +0000083438 00000 n +0000083542 00000 n +0000083646 00000 n +0000083750 00000 n +0000083854 00000 n +0000083958 00000 n +0000084062 00000 n +0000084166 00000 n +0000084270 00000 n +0000084374 00000 n +0000084478 00000 n +0000084581 00000 n +0000084685 00000 n +0000084789 00000 n +0000084893 00000 n +0000084997 00000 n +0000085101 00000 n +0000085205 00000 n +0000085309 00000 n +0000085413 00000 n +0000085517 00000 n +0000085621 00000 n +0000085725 00000 n +0000085829 00000 n +0000085932 00000 n +0000086036 00000 n +0000086139 00000 n +0000086241 00000 n +0000086343 00000 n +0000086768 00000 n +0000086872 00000 n +0000086976 00000 n +0000087080 00000 n +0000087184 00000 n +0000087287 00000 n +0000087390 00000 n +0000087494 00000 n +0000087598 00000 n +0000087702 00000 n +0000087806 00000 n +0000087910 00000 n +0000088014 00000 n +0000088118 00000 n +0000088222 00000 n +0000088326 00000 n +0000088430 00000 n +0000088533 00000 n +0000088637 00000 n +0000088741 00000 n +0000088845 00000 n +0000088949 00000 n +0000089053 00000 n +0000089157 00000 n +0000089261 00000 n +0000089364 00000 n +0000089468 00000 n +0000089572 00000 n +0000089676 00000 n +0000089780 00000 n +0000089884 00000 n +0000089988 00000 n +0000090091 00000 n +0000090195 00000 n +0000090299 00000 n +0000090588 00000 n +0000090636 00000 n +0000090723 00000 n +0000090770 00000 n +0000090856 00000 n +0000090903 00000 n +0000090989 00000 n +0000091030 00000 n +0000091075 00000 n +0000091162 00000 n +0000091207 00000 n +0000091293 00000 n +0000091326 00000 n +0000091372 00000 n +0000091457 00000 n +0000091503 00000 n +0000091586 00000 n +0000091619 00000 n +0000091663 00000 n +0000091750 00000 n 0000091801 00000 n 0000091888 00000 n -0000091982 00000 n -0000092068 00000 n -0000092109 00000 n -0000092152 00000 n -0000092238 00000 n -0000092286 00000 n +0000091937 00000 n +0000092024 00000 n +0000092072 00000 n +0000092158 00000 n +0000092207 00000 n +0000092262 00000 n +0000092348 00000 n 0000092373 00000 n -0000092414 00000 n -0000092501 00000 n -0000092545 00000 n -0000092632 00000 n -0000092676 00000 n -0000092762 00000 n -0000092819 00000 n -0000092865 00000 n -0000092952 00000 n -0000092977 00000 n -0000093026 00000 n -0000093113 00000 n -0000093167 00000 n -0000093254 00000 n -0000093305 00000 n -0000093392 00000 n -0000093446 00000 n -0000093533 00000 n -0000093583 00000 n -0000093668 00000 n -0000093725 00000 n -0000093775 00000 n -0000093862 00000 n -0000093926 00000 n -0000094013 00000 n -0000094046 00000 n -0000094108 00000 n -0000094195 00000 n -0000094220 00000 n -0000094269 00000 n -0000094356 00000 n -0000094381 00000 n -0000094429 00000 n -0000094514 00000 n -0000094539 00000 n -0000094589 00000 n -0000094675 00000 n -0000094719 00000 n -0000094805 00000 n -0000094849 00000 n -0000094935 00000 n -0000094985 00000 n -0000095071 00000 n -0000095121 00000 n -0000095207 00000 n -0000095256 00000 n -0000095342 00000 n -0000095389 00000 n -0000095475 00000 n -0000095548 00000 n -0000095637 00000 n -0000095723 00000 n -0000095786 00000 n -0000095872 00000 n -0000095905 00000 n -0000095966 00000 n -0000096052 00000 n -0000096077 00000 n -0000096180 00000 n -0000096284 00000 n -0000096388 00000 n -0000096492 00000 n -0000096596 00000 n -0000096700 00000 n -0000096804 00000 n -0000096907 00000 n -0000097011 00000 n -0000097115 00000 n -0000097219 00000 n -0000097323 00000 n -0000097427 00000 n -0000097531 00000 n -0000097635 00000 n -0000097739 00000 n -0000097843 00000 n -0000097947 00000 n -0000098051 00000 n -0000098155 00000 n -0000098259 00000 n -0000098363 00000 n -0000098466 00000 n -0000098570 00000 n -0000098674 00000 n -0000098779 00000 n -0000098884 00000 n -0000098989 00000 n -0000099094 00000 n -0000099199 00000 n -0000099304 00000 n -0000099408 00000 n -0000099513 00000 n -0000099618 00000 n -0000099723 00000 n -0000099828 00000 n -0000099933 00000 n -0000100038 00000 n -0000100142 00000 n -0000100247 00000 n -0000100352 00000 n -0000100457 00000 n -0000100562 00000 n -0000100667 00000 n -0000100771 00000 n -0000100874 00000 n -0000100977 00000 n -0000101393 00000 n -0000101498 00000 n -0000101603 00000 n -0000101708 00000 n -0000101813 00000 n -0000101918 00000 n -0000102023 00000 n -0000102128 00000 n -0000102209 00000 n -0000102265 00000 n -0000102353 00000 n -0000102422 00000 n -0000102510 00000 n -0000102586 00000 n -0000102675 00000 n -0000102746 00000 n -0000102834 00000 n -0000102914 00000 n -0000103003 00000 n -0000103066 00000 n -0000103149 00000 n -0000103237 00000 n -0000103313 00000 n -0000103402 00000 n -0000103476 00000 n -0000103565 00000 n -0000103644 00000 n -0000103733 00000 n -0000103787 00000 n -0000103836 00000 n -0000103925 00000 n -0000103952 00000 n -0000104001 00000 n -0000104090 00000 n -0000104117 00000 n -0000104167 00000 n -0000104256 00000 n -0000104320 00000 n -0000104409 00000 n -0000104473 00000 n -0000104562 00000 n -0000104617 00000 n -0000104706 00000 n -0000104760 00000 n -0000104829 00000 n -0000104917 00000 n -0000104973 00000 n -0000105062 00000 n -0000105098 00000 n -0000105147 00000 n -0000105236 00000 n -0000105301 00000 n -0000105390 00000 n -0000105446 00000 n -0000105535 00000 n -0000105583 00000 n -0000105672 00000 n -0000105726 00000 n -0000105781 00000 n -0000105870 00000 n -0000105925 00000 n -0000106014 00000 n -0000106050 00000 n -0000106086 00000 n -0000106122 00000 n -0000111433 00000 n -0000111478 00000 n -0000111523 00000 n -0000111568 00000 n -0000111613 00000 n -0000111658 00000 n -0000111703 00000 n -0000111748 00000 n -0000111793 00000 n -0000111838 00000 n -0000111883 00000 n -0000111928 00000 n -0000111973 00000 n -0000112018 00000 n -0000112063 00000 n -0000112108 00000 n -0000112153 00000 n -0000112198 00000 n -0000112243 00000 n -0000112288 00000 n -0000112333 00000 n -0000112378 00000 n -0000112423 00000 n -0000112468 00000 n -0000112513 00000 n -0000112558 00000 n -0000112603 00000 n -0000112648 00000 n -0000112693 00000 n -0000112738 00000 n -0000112783 00000 n -0000112828 00000 n -0000112873 00000 n -0000112918 00000 n -0000112963 00000 n -0000113008 00000 n -0000113053 00000 n -0000113098 00000 n -0000113143 00000 n -0000113188 00000 n -0000113233 00000 n -0000113278 00000 n -0000113323 00000 n -0000113368 00000 n -0000113413 00000 n -0000113458 00000 n -0000113503 00000 n -0000113548 00000 n -0000113593 00000 n -0000113638 00000 n -0000113683 00000 n -0000113728 00000 n -0000113773 00000 n -0000113818 00000 n -0000113863 00000 n -0000113908 00000 n -0000113953 00000 n -0000113998 00000 n -0000114043 00000 n -0000114088 00000 n -0000114133 00000 n -0000114178 00000 n -0000114223 00000 n -0000114268 00000 n -0000114313 00000 n -0000114358 00000 n -0000114403 00000 n -0000114448 00000 n -0000114493 00000 n -0000114538 00000 n -0000114583 00000 n -0000114628 00000 n -0000114673 00000 n -0000114718 00000 n -0000114763 00000 n -0000114808 00000 n -0000114853 00000 n -0000114898 00000 n -0000114943 00000 n -0000114988 00000 n -0000115033 00000 n -0000115078 00000 n -0000115123 00000 n -0000115168 00000 n -0000115213 00000 n -0000115258 00000 n -0000115303 00000 n -0000115348 00000 n -0000115393 00000 n -0000115438 00000 n -0000115483 00000 n -0000115528 00000 n -0000115573 00000 n -0000115618 00000 n -0000115663 00000 n -0000115708 00000 n -0000115753 00000 n -0000115798 00000 n -0000115843 00000 n -0000115888 00000 n -0000115933 00000 n -0000115978 00000 n -0000116023 00000 n -0000116068 00000 n -0000116113 00000 n -0000116158 00000 n -0000116203 00000 n -0000116248 00000 n -0000116293 00000 n -0000116338 00000 n -0000116383 00000 n -0000116428 00000 n -0000116473 00000 n -0000116518 00000 n -0000116563 00000 n -0000116608 00000 n -0000116653 00000 n -0000116698 00000 n -0000116743 00000 n -0000116788 00000 n -0000116833 00000 n -0000116878 00000 n -0000116923 00000 n -0000116968 00000 n -0000117013 00000 n -0000117058 00000 n -0000117103 00000 n -0000117148 00000 n -0000117193 00000 n -0000117238 00000 n -0000117283 00000 n -0000117328 00000 n -0000117373 00000 n -0000117418 00000 n -0000117463 00000 n -0000117508 00000 n -0000117553 00000 n -0000117598 00000 n -0000117643 00000 n -0000117688 00000 n -0000117733 00000 n -0000117778 00000 n -0000117823 00000 n -0000117868 00000 n -0000117913 00000 n -0000117958 00000 n -0000118003 00000 n -0000118048 00000 n -0000118093 00000 n -0000118138 00000 n -0000118183 00000 n -0000118228 00000 n -0000118273 00000 n -0000118318 00000 n -0000118363 00000 n -0000118408 00000 n -0000118453 00000 n -0000118498 00000 n -0000118543 00000 n -0000118588 00000 n -0000118633 00000 n -0000118678 00000 n -0000118723 00000 n -0000118768 00000 n -0000118813 00000 n -0000118858 00000 n -0000118903 00000 n -0000118948 00000 n -0000118993 00000 n -0000119038 00000 n -0000119083 00000 n -0000119128 00000 n -0000119173 00000 n -0000119218 00000 n -0000119263 00000 n -0000119308 00000 n -0000119353 00000 n -0000119398 00000 n -0000119443 00000 n -0000119488 00000 n -0000119533 00000 n -0000119578 00000 n -0000119623 00000 n -0000119668 00000 n -0000119713 00000 n -0000119758 00000 n -0000119803 00000 n -0000119848 00000 n -0000119893 00000 n -0000119938 00000 n -0000119983 00000 n -0000120028 00000 n -0000120073 00000 n -0000120118 00000 n -0000120163 00000 n -0000120208 00000 n -0000120253 00000 n -0000120298 00000 n -0000120343 00000 n -0000120388 00000 n -0000120433 00000 n -0000120478 00000 n -0000120523 00000 n -0000120568 00000 n -0000120613 00000 n -0000120658 00000 n -0000120703 00000 n -0000120748 00000 n -0000120793 00000 n -0000120838 00000 n -0000120883 00000 n -0000120928 00000 n -0000120973 00000 n -0000121018 00000 n -0000121063 00000 n -0000121108 00000 n -0000121153 00000 n -0000121198 00000 n -0000121243 00000 n -0000121288 00000 n -0000121333 00000 n -0000121378 00000 n -0000121423 00000 n -0000121468 00000 n -0000121513 00000 n -0000121558 00000 n -0000121603 00000 n -0000121648 00000 n -0000121693 00000 n -0000121738 00000 n -0000121783 00000 n -0000121828 00000 n -0000121873 00000 n -0000121918 00000 n -0000121963 00000 n -0000122008 00000 n -0000122053 00000 n -0000122098 00000 n -0000122143 00000 n -0000122188 00000 n -0000122233 00000 n -0000122278 00000 n -0000122323 00000 n -0000122368 00000 n -0000122413 00000 n -0000122458 00000 n -0000122503 00000 n -0000122548 00000 n -0000122593 00000 n -0000122638 00000 n -0000122683 00000 n -0000122728 00000 n -0000122773 00000 n -0000122818 00000 n -0000122863 00000 n -0000122908 00000 n -0000122953 00000 n -0000122998 00000 n -0000123043 00000 n -0000123088 00000 n -0000123133 00000 n -0000123178 00000 n -0000123223 00000 n -0000123268 00000 n -0000123313 00000 n -0000123358 00000 n -0000123403 00000 n -0000123448 00000 n -0000123493 00000 n -0000123538 00000 n -0000123583 00000 n -0000123628 00000 n -0000123673 00000 n -0000123718 00000 n -0000123763 00000 n -0000123808 00000 n -0000123853 00000 n -0000123898 00000 n -0000123943 00000 n -0000123988 00000 n -0000124033 00000 n -0000124078 00000 n -0000124123 00000 n -0000124168 00000 n -0000124213 00000 n -0000124258 00000 n -0000124303 00000 n -0000124348 00000 n -0000124393 00000 n -0000124438 00000 n -0000124483 00000 n -0000124528 00000 n -0000124573 00000 n -0000124618 00000 n -0000124663 00000 n -0000124708 00000 n -0000124753 00000 n -0000124798 00000 n -0000124843 00000 n -0000124888 00000 n -0000124933 00000 n -0000124978 00000 n -0000125023 00000 n -0000125068 00000 n -0000125113 00000 n -0000125158 00000 n -0000125203 00000 n -0000125248 00000 n -0000125293 00000 n -0000125338 00000 n -0000126782 00000 n -0000126943 00000 n -0000127112 00000 n +0000092426 00000 n +0000092513 00000 n +0000092563 00000 n +0000092650 00000 n +0000092683 00000 n +0000092802 00000 n +0000092888 00000 n +0000092931 00000 n +0000093018 00000 n +0000093061 00000 n +0000093148 00000 n +0000093189 00000 n +0000093252 00000 n +0000093339 00000 n +0000093397 00000 n +0000093484 00000 n +0000093578 00000 n +0000093664 00000 n +0000093705 00000 n +0000093748 00000 n +0000093834 00000 n +0000093882 00000 n +0000093969 00000 n +0000094010 00000 n +0000094097 00000 n +0000094141 00000 n +0000094228 00000 n +0000094272 00000 n +0000094358 00000 n +0000094415 00000 n +0000094461 00000 n +0000094548 00000 n +0000094573 00000 n +0000094622 00000 n +0000094709 00000 n +0000094763 00000 n +0000094850 00000 n +0000094901 00000 n +0000094988 00000 n +0000095042 00000 n +0000095129 00000 n +0000095179 00000 n +0000095264 00000 n +0000095321 00000 n +0000095371 00000 n +0000095458 00000 n +0000095522 00000 n +0000095609 00000 n +0000095642 00000 n +0000095704 00000 n +0000095791 00000 n +0000095816 00000 n +0000095865 00000 n +0000095952 00000 n +0000095977 00000 n +0000096025 00000 n +0000096112 00000 n +0000096162 00000 n +0000096246 00000 n +0000096290 00000 n +0000096374 00000 n +0000096415 00000 n +0000096459 00000 n +0000096545 00000 n +0000096595 00000 n +0000096681 00000 n +0000096731 00000 n +0000096817 00000 n +0000096866 00000 n +0000096952 00000 n +0000096999 00000 n +0000097085 00000 n +0000097142 00000 n +0000097231 00000 n +0000097317 00000 n +0000097380 00000 n +0000097466 00000 n +0000097499 00000 n +0000097560 00000 n +0000097646 00000 n +0000097671 00000 n +0000097726 00000 n +0000097813 00000 n +0000097838 00000 n +0000097941 00000 n +0000098045 00000 n +0000098149 00000 n +0000098253 00000 n +0000098357 00000 n +0000098461 00000 n +0000098565 00000 n +0000098668 00000 n +0000098772 00000 n +0000098876 00000 n +0000098980 00000 n +0000099084 00000 n +0000099189 00000 n +0000099294 00000 n +0000099399 00000 n +0000099504 00000 n +0000099609 00000 n +0000099714 00000 n +0000099819 00000 n +0000099924 00000 n +0000100029 00000 n +0000100134 00000 n +0000100238 00000 n +0000100343 00000 n +0000100448 00000 n +0000100553 00000 n +0000100658 00000 n +0000100763 00000 n +0000100868 00000 n +0000100973 00000 n +0000101078 00000 n +0000101182 00000 n +0000101287 00000 n +0000101392 00000 n +0000101497 00000 n +0000101602 00000 n +0000101707 00000 n +0000101812 00000 n +0000101916 00000 n +0000102021 00000 n +0000102126 00000 n +0000102231 00000 n +0000102336 00000 n +0000102441 00000 n +0000102545 00000 n +0000102648 00000 n +0000102751 00000 n +0000103180 00000 n +0000103285 00000 n +0000103390 00000 n +0000103495 00000 n +0000103600 00000 n +0000103705 00000 n +0000103810 00000 n +0000103915 00000 n +0000103996 00000 n +0000104052 00000 n +0000104140 00000 n +0000104209 00000 n +0000104297 00000 n +0000104373 00000 n +0000104462 00000 n +0000104533 00000 n +0000104621 00000 n +0000104701 00000 n +0000104790 00000 n +0000104853 00000 n +0000104936 00000 n +0000105024 00000 n +0000105100 00000 n +0000105189 00000 n +0000105263 00000 n +0000105352 00000 n +0000105431 00000 n +0000105520 00000 n +0000105574 00000 n +0000105623 00000 n +0000105712 00000 n +0000105739 00000 n +0000105788 00000 n +0000105877 00000 n +0000105904 00000 n +0000105954 00000 n +0000106043 00000 n +0000106107 00000 n +0000106196 00000 n +0000106260 00000 n +0000106349 00000 n +0000106404 00000 n +0000106493 00000 n +0000106547 00000 n +0000106616 00000 n +0000106704 00000 n +0000106760 00000 n +0000106849 00000 n +0000106885 00000 n +0000106934 00000 n +0000107023 00000 n +0000107088 00000 n +0000107177 00000 n +0000107233 00000 n +0000107322 00000 n +0000107370 00000 n +0000107459 00000 n +0000107513 00000 n +0000107568 00000 n +0000107657 00000 n +0000107712 00000 n +0000107801 00000 n +0000107837 00000 n +0000107873 00000 n +0000107909 00000 n +0000113355 00000 n +0000113400 00000 n +0000113445 00000 n +0000113490 00000 n +0000113535 00000 n +0000113580 00000 n +0000113625 00000 n +0000113670 00000 n +0000113715 00000 n +0000113760 00000 n +0000113805 00000 n +0000113850 00000 n +0000113895 00000 n +0000113940 00000 n +0000113985 00000 n +0000114030 00000 n +0000114075 00000 n +0000114120 00000 n +0000114165 00000 n +0000114210 00000 n +0000114255 00000 n +0000114300 00000 n +0000114345 00000 n +0000114390 00000 n +0000114435 00000 n +0000114480 00000 n +0000114525 00000 n +0000114570 00000 n +0000114615 00000 n +0000114660 00000 n +0000114705 00000 n +0000114750 00000 n +0000114795 00000 n +0000114840 00000 n +0000114885 00000 n +0000114930 00000 n +0000114975 00000 n +0000115020 00000 n +0000115065 00000 n +0000115110 00000 n +0000115155 00000 n +0000115200 00000 n +0000115245 00000 n +0000115290 00000 n +0000115335 00000 n +0000115380 00000 n +0000115425 00000 n +0000115470 00000 n +0000115515 00000 n +0000115560 00000 n +0000115605 00000 n +0000115650 00000 n +0000115695 00000 n +0000115740 00000 n +0000115785 00000 n +0000115830 00000 n +0000115875 00000 n +0000115920 00000 n +0000115965 00000 n +0000116010 00000 n +0000116055 00000 n +0000116100 00000 n +0000116145 00000 n +0000116190 00000 n +0000116235 00000 n +0000116280 00000 n +0000116325 00000 n +0000116370 00000 n +0000116415 00000 n +0000116460 00000 n +0000116505 00000 n +0000116550 00000 n +0000116595 00000 n +0000116640 00000 n +0000116685 00000 n +0000116730 00000 n +0000116775 00000 n +0000116820 00000 n +0000116865 00000 n +0000116910 00000 n +0000116955 00000 n +0000117000 00000 n +0000117045 00000 n +0000117090 00000 n +0000117135 00000 n +0000117180 00000 n +0000117225 00000 n +0000117270 00000 n +0000117315 00000 n +0000117360 00000 n +0000117405 00000 n +0000117450 00000 n +0000117495 00000 n +0000117540 00000 n +0000117585 00000 n +0000117630 00000 n +0000117675 00000 n +0000117720 00000 n +0000117765 00000 n +0000117810 00000 n +0000117855 00000 n +0000117900 00000 n +0000117945 00000 n +0000117990 00000 n +0000118035 00000 n +0000118080 00000 n +0000118125 00000 n +0000118170 00000 n +0000118215 00000 n +0000118260 00000 n +0000118305 00000 n +0000118350 00000 n +0000118395 00000 n +0000118440 00000 n +0000118485 00000 n +0000118530 00000 n +0000118575 00000 n +0000118620 00000 n +0000118665 00000 n +0000118710 00000 n +0000118755 00000 n +0000118800 00000 n +0000118845 00000 n +0000118890 00000 n +0000118935 00000 n +0000118980 00000 n +0000119025 00000 n +0000119070 00000 n +0000119115 00000 n +0000119160 00000 n +0000119205 00000 n +0000119250 00000 n +0000119295 00000 n +0000119340 00000 n +0000119385 00000 n +0000119430 00000 n +0000119475 00000 n +0000119520 00000 n +0000119565 00000 n +0000119610 00000 n +0000119655 00000 n +0000119700 00000 n +0000119745 00000 n +0000119790 00000 n +0000119835 00000 n +0000119880 00000 n +0000119925 00000 n +0000119970 00000 n +0000120015 00000 n +0000120060 00000 n +0000120105 00000 n +0000120150 00000 n +0000120195 00000 n +0000120240 00000 n +0000120285 00000 n +0000120330 00000 n +0000120375 00000 n +0000120420 00000 n +0000120465 00000 n +0000120510 00000 n +0000120555 00000 n +0000120600 00000 n +0000120645 00000 n +0000120690 00000 n +0000120735 00000 n +0000120780 00000 n +0000120825 00000 n +0000120870 00000 n +0000120915 00000 n +0000120960 00000 n +0000121005 00000 n +0000121050 00000 n +0000121095 00000 n +0000121140 00000 n +0000121185 00000 n +0000121230 00000 n +0000121275 00000 n +0000121320 00000 n +0000121365 00000 n +0000121410 00000 n +0000121455 00000 n +0000121500 00000 n +0000121545 00000 n +0000121590 00000 n +0000121635 00000 n +0000121680 00000 n +0000121725 00000 n +0000121770 00000 n +0000121815 00000 n +0000121860 00000 n +0000121905 00000 n +0000121950 00000 n +0000121995 00000 n +0000122040 00000 n +0000122085 00000 n +0000122130 00000 n +0000122175 00000 n +0000122220 00000 n +0000122265 00000 n +0000122310 00000 n +0000122355 00000 n +0000122400 00000 n +0000122445 00000 n +0000122490 00000 n +0000122535 00000 n +0000122580 00000 n +0000122625 00000 n +0000122670 00000 n +0000122715 00000 n +0000122760 00000 n +0000122805 00000 n +0000122850 00000 n +0000122895 00000 n +0000122940 00000 n +0000122985 00000 n +0000123030 00000 n +0000123075 00000 n +0000123120 00000 n +0000123165 00000 n +0000123210 00000 n +0000123255 00000 n +0000123300 00000 n +0000123345 00000 n +0000123390 00000 n +0000123435 00000 n +0000123480 00000 n +0000123525 00000 n +0000123570 00000 n +0000123615 00000 n +0000123660 00000 n +0000123705 00000 n +0000123750 00000 n +0000123795 00000 n +0000123840 00000 n +0000123885 00000 n +0000123930 00000 n +0000123975 00000 n +0000124020 00000 n +0000124065 00000 n +0000124110 00000 n +0000124155 00000 n +0000124200 00000 n +0000124245 00000 n +0000124290 00000 n +0000124335 00000 n +0000124380 00000 n +0000124425 00000 n +0000124470 00000 n +0000124515 00000 n +0000124560 00000 n +0000124605 00000 n +0000124650 00000 n +0000124695 00000 n +0000124740 00000 n +0000124785 00000 n +0000124830 00000 n +0000124875 00000 n +0000124920 00000 n +0000124965 00000 n +0000125010 00000 n +0000125055 00000 n +0000125100 00000 n +0000125145 00000 n +0000125190 00000 n +0000125235 00000 n +0000125280 00000 n +0000125325 00000 n +0000125370 00000 n +0000125415 00000 n +0000125460 00000 n +0000125505 00000 n +0000125550 00000 n +0000125595 00000 n +0000125640 00000 n +0000125685 00000 n +0000125730 00000 n +0000125775 00000 n +0000125820 00000 n +0000125865 00000 n +0000125910 00000 n +0000125955 00000 n +0000126000 00000 n +0000126045 00000 n +0000126090 00000 n +0000126135 00000 n +0000126180 00000 n +0000126225 00000 n +0000126270 00000 n +0000126315 00000 n +0000126360 00000 n +0000126405 00000 n +0000126450 00000 n +0000126495 00000 n +0000126540 00000 n +0000126585 00000 n +0000126630 00000 n +0000126675 00000 n +0000126720 00000 n +0000126765 00000 n +0000126810 00000 n +0000126855 00000 n +0000126900 00000 n +0000126945 00000 n +0000126990 00000 n +0000127035 00000 n +0000127080 00000 n +0000127125 00000 n +0000127170 00000 n +0000127215 00000 n +0000127260 00000 n 0000127305 00000 n -0000131199 00000 n -0000131393 00000 n -0000135922 00000 n -0000136116 00000 n -0000140407 00000 n -0000140601 00000 n -0000144435 00000 n -0000144629 00000 n -0000148097 00000 n -0000148291 00000 n -0000152503 00000 n -0000152697 00000 n -0000154093 00000 n -0000154254 00000 n -0000154488 00000 n -0000154691 00000 n -0000157410 00000 n -0000157585 00000 n -0000161151 00000 n -0000161326 00000 n -0000163564 00000 n -0000163739 00000 n -0000164975 00000 n -0000165136 00000 n -0000165324 00000 n -0000165527 00000 n -0000168158 00000 n -0000168333 00000 n -0000168598 00000 n -0000168801 00000 n -0000170235 00000 n -0000170452 00000 n -0000171906 00000 n -0000172103 00000 n -0000173955 00000 n -0000174115 00000 n -0000174610 00000 n -0000174780 00000 n -0000176520 00000 n -0000176708 00000 n -0000178197 00000 n -0000178376 00000 n -0000180352 00000 n -0000180531 00000 n -0000181473 00000 n -0000181702 00000 n -0000183480 00000 n -0000183686 00000 n -0000185271 00000 n -0000185484 00000 n -0000187277 00000 n -0000187500 00000 n -0000189669 00000 n -0000189872 00000 n -0000191423 00000 n -0000191637 00000 n -0000193063 00000 n -0000193285 00000 n -0000195056 00000 n -0000195279 00000 n -0000197158 00000 n -0000197365 00000 n -0000198564 00000 n -0000198784 00000 n -0000200302 00000 n -0000200490 00000 n -0000201609 00000 n -0000201770 00000 n -0000201960 00000 n -0000202163 00000 n -0000205209 00000 n -0000205379 00000 n -0000207338 00000 n -0000207498 00000 n -0000208178 00000 n -0000208423 00000 n -0000210216 00000 n -0000210430 00000 n -0000211931 00000 n -0000212154 00000 n -0000213981 00000 n -0000214236 00000 n -0000215927 00000 n -0000216134 00000 n -0000217827 00000 n -0000218044 00000 n -0000219974 00000 n -0000220196 00000 n -0000222209 00000 n -0000222421 00000 n -0000224507 00000 n -0000224710 00000 n -0000226974 00000 n -0000227228 00000 n -0000229455 00000 n -0000229685 00000 n -0000231726 00000 n -0000231957 00000 n -0000233530 00000 n -0000233741 00000 n -0000235763 00000 n -0000235983 00000 n -0000238031 00000 n -0000238273 00000 n -0000240209 00000 n -0000240438 00000 n -0000242158 00000 n -0000242318 00000 n -0000243311 00000 n -0000243505 00000 n -0000245084 00000 n -0000245264 00000 n -0000247005 00000 n -0000247194 00000 n -0000248395 00000 n -0000248574 00000 n -0000249663 00000 n -0000249860 00000 n -0000251231 00000 n -0000251410 00000 n -0000252135 00000 n -0000252367 00000 n -0000253842 00000 n -0000254045 00000 n -0000255854 00000 n -0000256038 00000 n -0000256573 00000 n -0000256734 00000 n -0000256925 00000 n -0000257137 00000 n -0000260086 00000 n -0000260261 00000 n -0000262743 00000 n -0000262918 00000 n -0000264264 00000 n -0000264462 00000 n -0000265824 00000 n -0000266022 00000 n -0000267708 00000 n -0000267896 00000 n -0000269577 00000 n -0000269756 00000 n -0000271858 00000 n -0000272037 00000 n -0000273810 00000 n -0000273989 00000 n -0000275670 00000 n -0000275859 00000 n -0000277706 00000 n -0000277919 00000 n -0000279950 00000 n -0000280163 00000 n -0000281714 00000 n -0000281903 00000 n -0000283177 00000 n -0000283384 00000 n -0000285159 00000 n -0000285357 00000 n -0000287119 00000 n -0000287332 00000 n -0000289040 00000 n -0000289243 00000 n -0000290623 00000 n -0000290812 00000 n -0000291702 00000 n -0000291890 00000 n -0000293416 00000 n -0000293619 00000 n -0000295328 00000 n -0000295531 00000 n -0000296348 00000 n -0000296561 00000 n -0000298048 00000 n -0000298228 00000 n -0000298990 00000 n -0000299254 00000 n -0000300976 00000 n -0000301222 00000 n -0000303114 00000 n -0000303337 00000 n -0000305125 00000 n -0000305348 00000 n -0000307223 00000 n -0000307402 00000 n -0000308625 00000 n -0000308857 00000 n -0000310525 00000 n -0000310704 00000 n -0000312284 00000 n -0000312463 00000 n -0000314008 00000 n -0000314187 00000 n -0000315690 00000 n -0000315869 00000 n -0000317535 00000 n -0000317705 00000 n -0000318450 00000 n -0000318639 00000 n -0000320332 00000 n -0000320511 00000 n -0000322256 00000 n -0000322444 00000 n -0000324279 00000 n -0000324473 00000 n -0000326330 00000 n -0000326561 00000 n -0000328675 00000 n -0000328887 00000 n -0000330323 00000 n -0000330536 00000 n -0000331902 00000 n -0000332109 00000 n -0000333382 00000 n -0000333561 00000 n -0000334581 00000 n -0000334769 00000 n -0000336237 00000 n -0000336425 00000 n -0000337824 00000 n -0000337993 00000 n -0000338827 00000 n -0000339007 00000 n -0000340067 00000 n -0000340237 00000 n -0000341911 00000 n -0000342090 00000 n -0000343874 00000 n -0000344053 00000 n -0000345698 00000 n -0000345867 00000 n -0000347182 00000 n -0000347370 00000 n -0000348936 00000 n -0000349124 00000 n +0000127350 00000 n +0000127395 00000 n +0000127440 00000 n +0000127485 00000 n +0000127530 00000 n +0000127575 00000 n +0000127620 00000 n +0000129109 00000 n +0000129270 00000 n +0000129439 00000 n +0000129632 00000 n +0000133529 00000 n +0000133723 00000 n +0000138175 00000 n +0000138369 00000 n +0000142723 00000 n +0000142917 00000 n +0000146993 00000 n +0000147187 00000 n +0000150498 00000 n +0000150692 00000 n +0000154553 00000 n +0000154747 00000 n +0000157036 00000 n +0000157197 00000 n +0000157431 00000 n +0000157634 00000 n +0000160233 00000 n +0000160408 00000 n +0000164052 00000 n +0000164227 00000 n +0000166573 00000 n +0000166748 00000 n +0000168196 00000 n +0000168357 00000 n +0000168545 00000 n +0000168748 00000 n +0000171379 00000 n +0000171554 00000 n +0000171819 00000 n +0000172022 00000 n +0000173456 00000 n +0000173673 00000 n +0000175127 00000 n +0000175324 00000 n +0000177176 00000 n +0000177336 00000 n +0000177831 00000 n +0000178001 00000 n +0000179741 00000 n +0000179929 00000 n +0000181418 00000 n +0000181597 00000 n +0000183573 00000 n +0000183752 00000 n +0000184694 00000 n +0000184923 00000 n +0000186792 00000 n +0000186989 00000 n +0000188528 00000 n +0000188725 00000 n +0000190221 00000 n +0000190444 00000 n +0000192613 00000 n +0000192816 00000 n +0000194709 00000 n +0000194923 00000 n +0000196224 00000 n +0000196456 00000 n +0000198129 00000 n +0000198342 00000 n +0000200246 00000 n +0000200454 00000 n +0000201732 00000 n +0000201971 00000 n +0000203490 00000 n +0000203678 00000 n +0000204990 00000 n +0000205178 00000 n +0000205725 00000 n +0000205886 00000 n +0000206076 00000 n +0000206279 00000 n +0000209434 00000 n +0000209609 00000 n +0000209957 00000 n +0000210146 00000 n +0000211804 00000 n +0000211992 00000 n +0000213327 00000 n +0000213497 00000 n +0000215457 00000 n +0000215617 00000 n +0000216298 00000 n +0000216511 00000 n +0000217933 00000 n +0000218147 00000 n +0000219716 00000 n +0000219914 00000 n +0000221836 00000 n +0000222101 00000 n +0000223812 00000 n +0000224025 00000 n +0000225593 00000 n +0000225800 00000 n +0000227829 00000 n +0000228061 00000 n +0000230089 00000 n +0000230302 00000 n +0000232270 00000 n +0000232482 00000 n +0000234463 00000 n +0000234717 00000 n +0000236980 00000 n +0000237210 00000 n +0000239255 00000 n +0000239486 00000 n +0000241395 00000 n +0000241606 00000 n +0000243482 00000 n +0000243651 00000 n +0000245490 00000 n +0000245712 00000 n +0000247710 00000 n +0000247961 00000 n +0000249925 00000 n +0000250094 00000 n +0000251624 00000 n +0000251818 00000 n +0000253397 00000 n +0000253577 00000 n +0000255318 00000 n +0000255507 00000 n +0000256708 00000 n +0000256887 00000 n +0000257976 00000 n +0000258173 00000 n +0000259544 00000 n +0000259723 00000 n +0000260449 00000 n +0000260681 00000 n +0000262155 00000 n +0000262358 00000 n +0000264167 00000 n +0000264351 00000 n +0000264886 00000 n +0000265047 00000 n +0000265238 00000 n +0000265450 00000 n +0000268397 00000 n +0000268572 00000 n +0000271060 00000 n +0000271235 00000 n +0000272712 00000 n +0000272910 00000 n +0000274271 00000 n +0000274469 00000 n +0000276158 00000 n +0000276346 00000 n +0000278028 00000 n +0000278207 00000 n +0000280309 00000 n +0000280488 00000 n +0000282261 00000 n +0000282440 00000 n +0000284121 00000 n +0000284310 00000 n +0000286158 00000 n +0000286371 00000 n +0000288402 00000 n +0000288615 00000 n +0000290167 00000 n +0000290356 00000 n +0000291630 00000 n +0000291837 00000 n +0000293610 00000 n +0000293808 00000 n +0000295571 00000 n +0000295784 00000 n +0000297492 00000 n +0000297695 00000 n +0000299075 00000 n +0000299264 00000 n +0000300153 00000 n +0000300341 00000 n +0000301867 00000 n +0000302070 00000 n +0000303778 00000 n +0000303981 00000 n +0000304798 00000 n +0000305011 00000 n +0000306497 00000 n +0000306677 00000 n +0000307441 00000 n +0000307705 00000 n +0000309429 00000 n +0000309675 00000 n +0000311566 00000 n +0000311789 00000 n +0000313579 00000 n +0000313802 00000 n +0000315677 00000 n +0000315856 00000 n +0000317080 00000 n +0000317312 00000 n +0000318981 00000 n +0000319160 00000 n +0000320740 00000 n +0000320919 00000 n +0000322466 00000 n +0000322645 00000 n +0000324149 00000 n +0000324328 00000 n +0000325993 00000 n +0000326163 00000 n +0000326909 00000 n +0000327098 00000 n +0000328790 00000 n +0000328969 00000 n +0000330714 00000 n +0000330902 00000 n +0000332736 00000 n +0000332930 00000 n +0000334843 00000 n +0000335074 00000 n +0000337178 00000 n +0000337390 00000 n +0000338826 00000 n +0000339039 00000 n +0000340488 00000 n +0000340695 00000 n +0000341932 00000 n +0000342111 00000 n +0000343099 00000 n +0000343287 00000 n +0000344419 00000 n +0000344607 00000 n +0000346108 00000 n +0000346296 00000 n +0000347378 00000 n +0000347567 00000 n +0000348900 00000 n +0000349070 00000 n 0000350744 00000 n -0000350932 00000 n -0000352332 00000 n -0000352502 00000 n -0000354135 00000 n -0000354305 00000 n -0000355316 00000 n -0000355513 00000 n -0000356725 00000 n -0000356928 00000 n -0000358273 00000 n -0000358458 00000 n -0000358933 00000 n -0000359121 00000 n -0000360609 00000 n -0000360779 00000 n -0000362286 00000 n -0000362456 00000 n -0000363854 00000 n -0000364024 00000 n -0000365574 00000 n -0000365743 00000 n -0000366706 00000 n -0000366927 00000 n -0000368462 00000 n -0000368683 00000 n -0000370289 00000 n -0000370511 00000 n -0000371760 00000 n -0000371939 00000 n -0000373483 00000 n -0000373662 00000 n -0000374894 00000 n -0000375089 00000 n -0000377715 00000 n -0000377891 00000 n -0000378341 00000 n -0000378520 00000 n -0000380047 00000 n -0000380235 00000 n -0000381203 00000 n -0000381373 00000 n -0000381703 00000 n -0000381899 00000 n -0000383629 00000 n -0000383843 00000 n -0000385526 00000 n -0000385721 00000 n -0000387428 00000 n -0000387641 00000 n -0000389129 00000 n -0000389324 00000 n -0000390907 00000 n -0000391130 00000 n -0000392495 00000 n -0000392692 00000 n -0000394229 00000 n -0000394417 00000 n -0000395297 00000 n -0000395501 00000 n -0000397238 00000 n -0000397426 00000 n -0000399168 00000 n -0000399347 00000 n -0000400746 00000 n -0000400925 00000 n -0000402623 00000 n -0000402802 00000 n -0000404282 00000 n -0000404461 00000 n -0000406247 00000 n -0000406451 00000 n -0000408102 00000 n -0000408161 00000 n -0000408264 00000 n -0000408429 00000 n -0000408511 00000 n -0000408619 00000 n -0000408742 00000 n -0000408854 00000 n -0000409032 00000 n -0000409153 00000 n -0000409313 00000 n -0000409431 00000 n -0000409528 00000 n -0000409680 00000 n -0000409820 00000 n -0000409998 00000 n -0000410153 00000 n -0000410255 00000 n -0000410355 00000 n -0000410564 00000 n -0000410665 00000 n -0000410808 00000 n -0000410954 00000 n -0000411070 00000 n -0000411237 00000 n -0000411349 00000 n -0000411523 00000 n -0000411626 00000 n -0000411799 00000 n -0000411920 00000 n -0000412050 00000 n -0000412176 00000 n -0000412291 00000 n -0000412399 00000 n -0000412546 00000 n -0000412651 00000 n -0000412770 00000 n -0000412899 00000 n -0000413058 00000 n -0000413192 00000 n -0000413329 00000 n -0000413461 00000 n -0000413610 00000 n -0000413742 00000 n -0000413890 00000 n -0000413991 00000 n -0000414119 00000 n -0000414237 00000 n -0000414391 00000 n -0000414522 00000 n -0000414668 00000 n -0000414769 00000 n -0000414867 00000 n -0000414991 00000 n -0000415103 00000 n -0000415275 00000 n -0000415473 00000 n -0000415584 00000 n -0000415699 00000 n -0000415843 00000 n -0000416051 00000 n -0000416185 00000 n -0000416339 00000 n -0000416464 00000 n -0000416595 00000 n -0000416728 00000 n -0000416859 00000 n -0000417034 00000 n -0000417169 00000 n -0000417322 00000 n -0000417467 00000 n -0000417692 00000 n -0000417803 00000 n -0000417918 00000 n -0000418111 00000 n -0000418254 00000 n -0000418370 00000 n -0000418528 00000 n -0000418685 00000 n -0000418816 00000 n -0000418937 00000 n -0000419114 00000 n -0000419248 00000 n -0000419396 00000 n -0000419514 00000 n -0000419644 00000 n -0000419814 00000 n -0000419908 00000 n -0000420035 00000 n -0000420162 00000 n -0000420258 00000 n -0000420444 00000 n -0000420570 00000 n -0000420705 00000 n -0000420838 00000 n -0000420965 00000 n -0000421077 00000 n -0000421268 00000 n -0000421365 00000 n -0000421550 00000 n -0000421653 00000 n -0000421776 00000 n -0000421897 00000 n -0000422008 00000 n -0000422203 00000 n -0000422318 00000 n -0000422441 00000 n -0000422558 00000 n -0000422675 00000 n -0000422779 00000 n -0000422967 00000 n -0000423189 00000 n -0000423327 00000 n -0000423489 00000 n -0000423625 00000 n -0000423727 00000 n -0000423933 00000 n -0000424092 00000 n -0000424240 00000 n -0000424368 00000 n -0000424549 00000 n -0000424659 00000 n -0000424774 00000 n -0000424919 00000 n -0000425083 00000 n -0000425233 00000 n -0000425451 00000 n -0000425556 00000 n -0000425688 00000 n -0000425809 00000 n -0000426016 00000 n -0000426144 00000 n -0000426229 00000 n -0000426395 00000 n -0000426499 00000 n -0000426656 00000 n -0000426767 00000 n -0000426912 00000 n -0000427054 00000 n -0000427204 00000 n -0000427321 00000 n -0000427485 00000 n -0000427596 00000 n -0000427736 00000 n -0000427863 00000 n -0000427980 00000 n -0000428119 00000 n -0000428225 00000 n -0000428359 00000 n -0000428491 00000 n -0000428636 00000 n -0000428763 00000 n -0000428895 00000 n -0000429025 00000 n -0000429150 00000 n -0000429258 00000 n -0000429464 00000 n -0000429564 00000 n -0000429682 00000 n -0000429847 00000 n -0000429938 00000 n -0000430099 00000 n -0000430225 00000 n -0000430368 00000 n -0000430495 00000 n -0000430635 00000 n -0000430771 00000 n -0000430879 00000 n -0000431053 00000 n -0000431159 00000 n +0000350923 00000 n +0000352707 00000 n +0000352886 00000 n +0000354529 00000 n +0000354698 00000 n +0000356012 00000 n +0000356200 00000 n +0000357766 00000 n +0000357954 00000 n +0000359573 00000 n +0000359761 00000 n +0000361161 00000 n +0000361331 00000 n +0000362965 00000 n +0000363135 00000 n +0000364148 00000 n +0000364345 00000 n +0000365557 00000 n +0000365760 00000 n +0000367106 00000 n +0000367291 00000 n +0000367767 00000 n +0000367955 00000 n +0000369443 00000 n +0000369613 00000 n +0000371120 00000 n +0000371290 00000 n +0000372687 00000 n +0000372857 00000 n +0000374407 00000 n +0000374576 00000 n +0000375539 00000 n +0000375760 00000 n +0000377294 00000 n +0000377515 00000 n +0000379121 00000 n +0000379343 00000 n +0000380593 00000 n +0000380772 00000 n +0000382315 00000 n +0000382494 00000 n +0000383731 00000 n +0000383934 00000 n +0000385346 00000 n +0000385541 00000 n +0000388170 00000 n +0000388346 00000 n +0000388797 00000 n +0000388976 00000 n +0000390504 00000 n +0000390692 00000 n +0000391660 00000 n +0000391830 00000 n +0000392161 00000 n +0000392357 00000 n +0000394088 00000 n +0000394302 00000 n +0000395986 00000 n +0000396181 00000 n +0000397888 00000 n +0000398101 00000 n +0000399590 00000 n +0000399785 00000 n +0000401367 00000 n +0000401590 00000 n +0000402954 00000 n +0000403151 00000 n +0000404689 00000 n +0000404877 00000 n +0000405757 00000 n +0000405961 00000 n +0000407697 00000 n +0000407885 00000 n +0000409626 00000 n +0000409805 00000 n +0000411202 00000 n +0000411381 00000 n +0000413079 00000 n +0000413258 00000 n +0000414739 00000 n +0000414918 00000 n +0000416704 00000 n +0000416908 00000 n +0000418559 00000 n +0000418618 00000 n +0000418721 00000 n +0000418886 00000 n +0000418968 00000 n +0000419076 00000 n +0000419199 00000 n +0000419311 00000 n +0000419489 00000 n +0000419610 00000 n +0000419770 00000 n +0000419888 00000 n +0000419985 00000 n +0000420137 00000 n +0000420277 00000 n +0000420455 00000 n +0000420610 00000 n +0000420712 00000 n +0000420812 00000 n +0000421021 00000 n +0000421122 00000 n +0000421265 00000 n +0000421411 00000 n +0000421527 00000 n +0000421694 00000 n +0000421806 00000 n +0000421980 00000 n +0000422083 00000 n +0000422256 00000 n +0000422377 00000 n +0000422507 00000 n +0000422633 00000 n +0000422748 00000 n +0000422856 00000 n +0000423003 00000 n +0000423108 00000 n +0000423227 00000 n +0000423356 00000 n +0000423515 00000 n +0000423649 00000 n +0000423786 00000 n +0000423918 00000 n +0000424067 00000 n +0000424199 00000 n +0000424347 00000 n +0000424448 00000 n +0000424576 00000 n +0000424694 00000 n +0000424848 00000 n +0000424979 00000 n +0000425125 00000 n +0000425226 00000 n +0000425324 00000 n +0000425448 00000 n +0000425560 00000 n +0000425737 00000 n +0000425846 00000 n +0000425971 00000 n +0000426117 00000 n +0000426219 00000 n +0000426391 00000 n +0000426590 00000 n +0000426701 00000 n +0000426816 00000 n +0000426960 00000 n +0000427168 00000 n +0000427302 00000 n +0000427456 00000 n +0000427581 00000 n +0000427712 00000 n +0000427845 00000 n +0000427976 00000 n +0000428151 00000 n +0000428286 00000 n +0000428439 00000 n +0000428584 00000 n +0000428809 00000 n +0000428920 00000 n +0000429035 00000 n +0000429228 00000 n +0000429371 00000 n +0000429487 00000 n +0000429645 00000 n +0000429802 00000 n +0000429933 00000 n +0000430054 00000 n +0000430231 00000 n +0000430365 00000 n +0000430513 00000 n +0000430631 00000 n +0000430761 00000 n +0000430931 00000 n +0000431025 00000 n +0000431152 00000 n 0000431279 00000 n -0000431391 00000 n -0000431508 00000 n -0000431610 00000 n -0000431787 00000 n -0000431899 00000 n -0000432030 00000 n -0000432154 00000 n -0000432321 00000 n -0000432438 00000 n -0000432568 00000 n -0000432708 00000 n -0000432845 00000 n -0000432981 00000 n -0000433117 00000 n -0000433254 00000 n -0000433366 00000 n -0000433537 00000 n -0000433659 00000 n -0000433819 00000 n -0000433918 00000 n -0000434033 00000 n -0000434135 00000 n -0000434296 00000 n -0000434400 00000 n -0000434499 00000 n -0000434630 00000 n -0000434805 00000 n -0000434908 00000 n -0000435028 00000 n -0000435143 00000 n -0000435257 00000 n -0000435372 00000 n -0000435486 00000 n -0000435601 00000 n -0000435719 00000 n -0000435836 00000 n -0000435942 00000 n -0000436120 00000 n -0000436223 00000 n -0000436379 00000 n -0000436487 00000 n -0000436613 00000 n -0000436733 00000 n -0000436834 00000 n -0000436941 00000 n -0000437105 00000 n -0000437209 00000 n -0000437342 00000 n -0000437474 00000 n -0000437596 00000 n -0000437725 00000 n -0000437832 00000 n -0000437946 00000 n -0000438107 00000 n -0000438203 00000 n -0000438317 00000 n -0000438427 00000 n -0000438558 00000 n -0000438691 00000 n -0000438792 00000 n -0000438970 00000 n -0000439080 00000 n -0000439234 00000 n -0000439403 00000 n -0000439591 00000 n +0000431375 00000 n +0000431561 00000 n +0000431687 00000 n +0000431822 00000 n +0000431955 00000 n +0000432082 00000 n +0000432194 00000 n +0000432386 00000 n +0000432484 00000 n +0000432670 00000 n +0000432774 00000 n +0000432898 00000 n +0000433020 00000 n +0000433132 00000 n +0000433328 00000 n +0000433444 00000 n +0000433568 00000 n +0000433686 00000 n +0000433804 00000 n +0000433909 00000 n +0000434098 00000 n +0000434321 00000 n +0000434460 00000 n +0000434623 00000 n +0000434760 00000 n +0000434863 00000 n +0000435069 00000 n +0000435228 00000 n +0000435376 00000 n +0000435504 00000 n +0000435685 00000 n +0000435795 00000 n +0000435910 00000 n +0000436055 00000 n +0000436219 00000 n +0000436369 00000 n +0000436587 00000 n +0000436692 00000 n +0000436824 00000 n +0000436945 00000 n +0000437152 00000 n +0000437280 00000 n +0000437365 00000 n +0000437531 00000 n +0000437635 00000 n +0000437792 00000 n +0000437903 00000 n +0000438048 00000 n +0000438190 00000 n +0000438340 00000 n +0000438457 00000 n +0000438621 00000 n +0000438732 00000 n +0000438872 00000 n +0000438999 00000 n +0000439116 00000 n +0000439255 00000 n +0000439361 00000 n +0000439495 00000 n +0000439627 00000 n 0000439772 00000 n -0000439928 00000 n -0000440094 00000 n -0000440226 00000 n -0000440373 00000 n -0000440512 00000 n -0000440646 00000 n -0000440770 00000 n -0000440891 00000 n -0000441010 00000 n -0000441180 00000 n -0000441342 00000 n -0000441448 00000 n -0000441565 00000 n -0000441716 00000 n -0000441843 00000 n -0000441999 00000 n -0000442117 00000 n -0000442247 00000 n -0000442411 00000 n -0000442515 00000 n -0000442633 00000 n -0000442751 00000 n -0000442872 00000 n -0000443008 00000 n -0000443107 00000 n -0000443262 00000 n -0000443366 00000 n -0000443483 00000 n -0000443633 00000 n -0000443733 00000 n -0000443847 00000 n -0000443961 00000 n -0000444075 00000 n -0000444189 00000 n -0000444303 00000 n -0000444417 00000 n -0000444531 00000 n -0000444645 00000 n -0000444761 00000 n -0000444863 00000 n -0000444977 00000 n +0000439899 00000 n +0000440031 00000 n +0000440161 00000 n +0000440286 00000 n +0000440394 00000 n +0000440600 00000 n +0000440700 00000 n +0000440818 00000 n +0000440983 00000 n +0000441074 00000 n +0000441235 00000 n +0000441361 00000 n +0000441504 00000 n +0000441631 00000 n +0000441771 00000 n +0000441907 00000 n +0000442015 00000 n +0000442189 00000 n +0000442295 00000 n +0000442415 00000 n +0000442527 00000 n +0000442644 00000 n +0000442746 00000 n +0000442923 00000 n +0000443035 00000 n +0000443166 00000 n +0000443290 00000 n +0000443457 00000 n +0000443574 00000 n +0000443704 00000 n +0000443844 00000 n +0000443981 00000 n +0000444117 00000 n +0000444253 00000 n +0000444390 00000 n +0000444502 00000 n +0000444673 00000 n +0000444795 00000 n +0000444955 00000 n +0000445054 00000 n +0000445169 00000 n +0000445271 00000 n +0000445432 00000 n +0000445536 00000 n +0000445635 00000 n +0000445766 00000 n +0000445941 00000 n +0000446044 00000 n +0000446164 00000 n +0000446279 00000 n +0000446393 00000 n +0000446508 00000 n +0000446622 00000 n +0000446737 00000 n +0000446855 00000 n +0000446972 00000 n +0000447078 00000 n +0000447256 00000 n +0000447359 00000 n +0000447515 00000 n +0000447623 00000 n +0000447749 00000 n +0000447869 00000 n +0000447970 00000 n +0000448077 00000 n +0000448241 00000 n +0000448345 00000 n +0000448478 00000 n +0000448610 00000 n +0000448732 00000 n +0000448861 00000 n +0000448968 00000 n +0000449134 00000 n +0000449256 00000 n +0000449366 00000 n +0000449480 00000 n +0000449641 00000 n +0000449737 00000 n +0000449851 00000 n +0000449961 00000 n +0000450092 00000 n +0000450225 00000 n +0000450326 00000 n +0000450504 00000 n +0000450614 00000 n +0000450768 00000 n +0000450937 00000 n +0000451125 00000 n +0000451306 00000 n +0000451462 00000 n +0000451628 00000 n +0000451760 00000 n +0000451907 00000 n +0000452046 00000 n +0000452180 00000 n +0000452304 00000 n +0000452425 00000 n +0000452544 00000 n +0000452714 00000 n +0000452876 00000 n +0000452982 00000 n +0000453099 00000 n +0000453250 00000 n +0000453377 00000 n +0000453533 00000 n +0000453651 00000 n +0000453781 00000 n +0000453945 00000 n +0000454049 00000 n +0000454167 00000 n +0000454285 00000 n +0000454406 00000 n +0000454542 00000 n +0000454641 00000 n +0000454796 00000 n +0000454900 00000 n +0000455017 00000 n +0000455167 00000 n +0000455267 00000 n +0000455381 00000 n +0000455495 00000 n +0000455609 00000 n +0000455723 00000 n +0000455837 00000 n +0000455951 00000 n +0000456065 00000 n +0000456179 00000 n +0000456295 00000 n +0000456397 00000 n +0000456511 00000 n trailer -<]>> +<]>> startxref -445867 +457443 %%EOF diff --git a/docs/docbook/projdoc/CUPS-printing.sgml b/docs/docbook/projdoc/CUPS-printing.sgml new file mode 100644 index 00000000000..bfd23e3c6cd --- /dev/null +++ b/docs/docbook/projdoc/CUPS-printing.sgml @@ -0,0 +1,1184 @@ + + + + + + John HTerpstra + + Samba Team +
+ jht@samba.org +
+
+
+ + KurtPfeifle + +
kpfeifle@danka.de
+
+
+ (25 March 2003) +
+ +CUPS Printing Support + + +Introduction + + +The Common Unix Print System (CUPS) has become very popular, but to many it is +a very mystical tool. There is a great deal of uncertainty regarding CUPS and how +it works. The result is seen in a large number of posting on the samba mailing lists +expressing frustration when MS Windows printers appear not to work with a CUPS +backr-end. +/para> + + +This is a good time to point out how CUPS can be used and what it does. CUPS is more +than just a print spooling system - it is a complete printer management system that +complies with HTTP and IPP protocols. It can be managed remotely via a web browser +and it can print using http and ipp protocols. + + + +CUPS allows to creation of RAW printers (ie: NO file format translation) as well as +SMART printers (ie: CUPS does file format conversion as required for the printer). In +many ways this gives CUPS similar capabilities to the MS Windows print monitoring +system. Of course, if you are a CUPS advocate, you would agrue that CUPS is better! +In any case, let us now move on to explore how one may configure CUPS for interfacing +with MS Windows print clients via Samba. + + + + + +CUPS - RAW Print Through Mode + + +When CUPS printers are configured for RAW print-through mode operation it is the +responsibility of the Samba client to fully render the print job (file) in a format +that is suitable for direct delivery to the printer. In this case CUPS will NOT +do any print file format conversion work. + + + +The CUPS files that need to be correctly set for RAW mode printers to work are: + + + /etc/cups/mime.types/etc/cups/mime.convs + + +Both contain entries that must be uncommented to allow RAW mode +operation. + + + +Firstly, to enable CUPS based printing from Samba the following options must be +enabled in your smb.conf file [globals] section: + + + printing = CUPS + + printcap = CUPS + + +When these parameters are specified the print directives in smb.conf (as well as in +samba itself) will be ignored because samba will directly interface with CUPS through +it's application program interface (API) - so long as Samba has been compiled with +CUPS library (libcups) support. If samba has NOT been compiled with CUPS support then +printing will use the System V AT&T command set with the -oraw +option automatically passing through. + + + +Cupsomatic (an enhanced printing utility that is part of some CUPS implementations) +on the Samba/CUPS server does *not* add any features if a file is really +printed "raw". However, if you have loaded the driver for the Windows client from +the CUPS server, using the "cupsaddsmb" utility, and if this driver is one using +a "Foomatic" PPD, the PJL header in question is already added on the Windows client, +at the time when the driver initially generated the PostScript data and CUPS in true +"-oraw" manner doesn't remove this PJL header and passes the file "as is" to its +printer communication backend. + + + +NOTE: editing in the "mime.convs" and the "mime.types" file does not *enforce* +"raw" printing, it only *allows* it. + + + +Print files that arrive from MS Windows printing are "auto-typed" by CUPS. This aids +the process of determining proper treatment while in the print queue system. + + + + Files generated by PCL drivers and directed at PCK printers get auto-typed as + application/octet-stream. Unknown file format types also + get auto-typed with this tag. + + + + Files generated by a Postscript driver and directed at a Postscript printer + are auto-typed depending on the auto-detected most suitable MIME type as: + + + * application/postscript + * application/vnd.cups-postscript + + + + + + + +"application/postscript" first goes thru the "pstops" filter (where the page counting +and accounting takes place). The outcome will be of MIME type +"application/vnd.cups-postscript". The pstopsfilter reads and uses information from +the PPD and inserts user-provided options into the PostScript file. As a consequence, +the filtered file could possibly have an unwanted PJL header. + + + +"application/postscript" will be all files with a ".ps", ".ai", ".eps" suffix or which +have as their first character string one of "%!" or "<04>%". + + + +"application/vnd.cups-postscript" will files which contain the string +"LANGUAGE=POSTSCRIPT" (or similar variations with different capitalization) in the +first 512 bytes, and also contain the "PJL super escape code" in the first 128 bytes +("<1B>%-12345X"). Very likely, most PostScript files generated on Windows using a CUPS +or other PPD, will have to be auto-typed as "vnd.cups-postscript". A file produced +with a "Generic PostScript driver" will just be tagged "application/postscript". + + + +Once the file is in "application/vnd.cups-postscript" format, either "pstoraster" +or "cupsomatic" will take over (depending on the printer configuration, as +determined by the PPD in use). + + + +A printer queue with *no* PPD associated to it is a "raw" printer and all files +will go directly there as received by the spooler. The exeptions are file types +"application/octet-stream" which need "passthrough feature" enabled. +"Raw" queues don't do any filtering at all, they hand the file directly to the +CUPS backend. This backend is responsible for the sending of the data to the device +(as in the "device URI" notation as lpd://, socket://, smb://, ipp://, http://, +parallel:/, serial:/, usb:/ etc.) + + + +"cupsomatic"/Foomatic are *not* native CUPS drivers and they don't ship with CUPS. +They are a Third Party add-on, developed at Linuxprinting.org. As such, they are +a brilliant hack to make all models (driven by Ghostscript drivers/filters in +traditional spoolers) also work via CUPS, with the same (good or bad!) quality +as in these other spoolers. "cupsomatic" is only a vehicle to execute a ghostscript +commandline at that stage in the CUPS filtering chain, where "normally" the native +CUPS "pstoraster" filter would kick in. cupsomatic by-passes pstoraster, "kidnaps" +the printfile from CUPS away and re-directs it to go through Ghostscipt. CUPS accepts this, +because the associated CUPS-O-Matic-/Foomatic-PPD specifies: + + + + *cupsFilter: "application/vnd.cups-postscript 0 cupsomatic" + + + +This line persuades CUPS to hand the file to cupsomatic, once it has successfully +converted it to the MIME type "application/vnd.cups-postscript". This conversion will not +happen for Jobs arriving from Windows which are auto-typed "application/octet-stream", +with the according changes in "/etc/cups/mime.types" in place. + + + +CUPS is widely configurable and flexible, even regarding its filtering mechanism. +Another workaround in some situations would be to have +in "/etc/cups/mime.types" entries as follows: + + + + application/postscript application/vnd.cups-raw 0 - + application/vnd.cups-postscript application/vnd.cups-raw 0 - + + + +This would prevent all Postscript files from being filtered (rather, they will go +thru the virtual "nullfilter" denoted with "-"). This could only be useful for +PS printers. If you want to print PS code on non-PS printers an entry as follows +could be useful: + + + + */* application/vnd.cups-raw 0 - + + + +and would effectively send *all* files to the backend without further processing. + + + +Lastly, you could have the following entry: + + + + application/vnd.cups-postscript application/vnd.cups-raw 0 my_PJL_stripping_filter + + + +You will need to write a "my_PJL_stripping_filter" (could be a shellscript) that +parses the PostScript and removes the unwanted PJL. This would need to conform to +CUPS filter design (mainly, receive and pass the parameters printername, job-id, +username, jobtitle, copies, print options and possibly the filename). It would +be installed as world executable into "/usr/lib/cups/filters/" and will be called +by CUPS if it encounters a MIME type "application/vnd.cups-postscript". + + + +CUPS can handle "-o job-hold-until=indefinite". This keeps the job in the queue +"on hold". It will only be printed upon manual release by the printer operator. +This is a requirement in many "central reproduction departments", where a few +operators manage the jobs of hundreds of users on some big machine, where no +user is allowed to have direct access. (The operators often need to load the +proper paper type before running the 10.000 page job requested by marketing +for the mailing, etc.). + + + + + +The CUPS Filter Chains + + +The following diagrams reveal how CUPS handles print jobs. + + + +######################################################################### +# +# CUPS in and of itself has this (general) filter chain (CAPITAL +# letters are FILE-FORMATS or MIME types, other are filters (this is +# true for pre-1.1.15 of pre-4.3 versions of CUPS and ESP PrintPro): +# +# -FILEFORMAT +# | +# | +# V +# tops +# | +# | +# V +# APPLICATION/POSTSCRIPT +# | +# | +# V +# pstops +# | +# | +# V +# APPLICATION/VND.CUPS-POSTSCRIPT +# | +# | +# V +# pstoraster # as shipped with CUPS, independent from any Ghostscipt +# | # installation on the system +# | (= "postscipt interpreter") +# | +# V +# APPLICATION/VND.CUPS-RASTER +# | +# | +# V +# rasterto (f.e. Gimp-Print filters may be plugged in here) +# | (= "raster driver") +# | +# V +# SOMETHING-DEVICE-SPECIFIC +# | +# | +# V +# backend +# +# +# ESP PrintPro has some enhanced "rasterto" filters as compared to +# CUPS, and also a somewhat improved "pstoraster" filter. +# +# NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to +# CUPS and ESP PrintPro plug-in where rasterto is noted. +# +######################################################################### + + + +######################################################################### +# +# This is how "cupsomatic" comes into play: +# ========================================= +# +# -FILEFORMAT +# | +# | +# V +# tops +# | +# | +# V +# APPLICATION/POSTSCRIPT +# | +# | +# V +# pstops +# | +# | +# V +# APPLICATION/VND.CUPS-POSTSCRIPT ----------------+ +# | | +# | V +# V cupsomatic +# pstoraster (constructs complicated +# | (= "postscipt interpreter") Ghostscript commandline +# | to let the file be +# V processed by a +# APPLICATION/VND.CUPS-RASTER "-sDEVICE=" +# | call...) +# | | +# V | +# rasterto V +# | (= "raster driver") +-------------------------+ +# | | Ghostscript at work.... | +# V | | +# SOMETHING-DEVICE-SPECIFIC *-------------------------+ +# | | +# | | +# V | +# backend <------------------------------------+ +# | +# | +# V +# THE PRINTER +# +# +# Note, that cupsomatic "kidnaps" the printfile after the +# "APPLICATION/VND.CUPS-POSTSCRPT" stage and deviates it through +# the CUPS-external, systemwide Ghostscript installation, bypassing the +# "pstoraster" filter (therefor also bypassing the CUPS-raster-drivers +# "rasterto", and hands the rasterized file directly to the CUPS +# backend... +# +# cupsomatic is not made by the CUPS developers. It is an independent +# contribution to printing development, made by people from +# Linuxprinting.org. (see also http://www.cups.org/cups-help.html) +# +# NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to +# CUPS and ESP PrintPro plug-in where rasterto is noted. +# +######################################################################### + + + +######################################################################### +# +# And this is how it works for ESP PrintPro from 4.3: +# =================================================== +# +# -FILEFORMAT +# | +# | +# V +# tops +# | +# | +# V +# APPLICATION/POSTSCRIPT +# | +# | +# V +# pstops +# | +# | +# V +# APPLICATION/VND.CUPS-POSTSCRIPT +# | +# | +# V +# gsrip +# | (= "postscipt interpreter") +# | +# V +# APPLICATION/VND.CUPS-RASTER +# | +# | +# V +# rasterto (f.e. Gimp-Print filters may be plugged in here) +# | (= "raster driver") +# | +# V +# SOMETHING-DEVICE-SPECIFIC +# | +# | +# V +# backend +# +# NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to +# CUPS and ESP PrintPro plug-in where rasterto is noted. +# +######################################################################### + + + +######################################################################### +# +# This is how "cupsomatic" would come into play with ESP PrintPro: +# ================================================================ +# +# +# -FILEFORMAT +# | +# | +# V +# tops +# | +# | +# V +# APPLICATION/POSTSCRIPT +# | +# | +# V +# pstops +# | +# | +# V +# APPLICATION/VND.CUPS-POSTSCRIPT ----------------+ +# | | +# | V +# V cupsomatic +# gsrip (constructs complicated +# | (= "postscipt interpreter") Ghostscript commandline +# | to let the file be +# V processed by a +# APPLICATION/VND.CUPS-RASTER "-sDEVICE=" +# | call...) +# | | +# V | +# rasterto V +# | (= "raster driver") +-------------------------+ +# | | Ghostscript at work.... | +# V | | +# SOMETHING-DEVICE-SPECIFIC *-------------------------+ +# | | +# | | +# V | +# backend <------------------------------------+ +# | +# | +# V +# THE PRINTER +# +# NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to +# CUPS and ESP PrintPro plug-in where rasterto is noted. +# +######################################################################### + + + +######################################################################### +# +# And this is how it works for CUPS from 1.1.15: +# ============================================== +# +# -FILEFORMAT +# | +# | +# V +# tops +# | +# | +# V +# APPLICATION/POSTSCRIPT +# | +# | +# V +# pstops +# | +# | +# V +# APPLICATION/VND.CUPS-POSTSCRIPT-----+ +# | +# +------------------v------------------------------+ +# | Ghostscript | +# | at work... | +# | (with | +# | "-sDEVICE=cups") | +# | | +# | (= "postscipt interpreter") | +# | | +# +------------------v------------------------------+ +# | +# | +# APPLICATION/VND.CUPS-RASTER <-------+ +# | +# | +# V +# rasterto +# | (= "raster driver") +# | +# V +# SOMETHING-DEVICE-SPECIFIC +# | +# | +# V +# backend +# +# +# NOTE: since version 1.1.15 CUPS "outsourced" the pstoraster process to +# Ghostscript. GNU Ghostscript needs to be patched to handle the +# CUPS requirement; ESP Ghostscript has this builtin. In any case, +# "gs -h" needs to show up a "cups" device. pstoraster is now a +# calling an appropriate "gs -sDEVICE=cups..." commandline to do +# the job. It will output "application/vnd.cup-raster", which will +# be finally processed by a CUPS raster driver "rasterto" +# Note the difference to "cupsomatic", which will *not* output +# CUPS-raster, but a final version of the printfile, ready to be +# sent to the printer. cupsomatic also doesn't use the "cups" +# devicemode in Ghostscript, but one of the classical devicemodes.... +# +# NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to +# CUPS and ESP PrintPro plug-in where rasterto is noted. +# +######################################################################### + + + +######################################################################### +# +# And this is how it works for CUPS from 1.1.15, with cupsomatic included: +# ======================================================================== +# +# -FILEFORMAT +# | +# | +# V +# tops +# | +# | +# V +# APPLICATION/POSTSCRIPT +# | +# | +# V +# pstops +# | +# | +# V +# APPLICATION/VND.CUPS-POSTSCRIPT-----+ +# | +# +------------------v------------------------------+ +# | Ghostscript . Ghostscript at work.... | +# | at work... . (with "-sDEVICE= | +# | (with . " | +# | "-sDEVICE=cups") . | +# | . | +# | (CUPS standard) . (cupsomatic) | +# | . | +# | (= "postscript interpreter") | +# | . | +# +------------------v--------------v---------------+ +# | | +# | | +# APPLICATION/VND.CUPS-RASTER <-------+ | +# | | +# | | +# V | +# rasterto | +# | (= "raster driver") | +# | | +# V | +# SOMETHING-DEVICE-SPECIFIC <------------------------+ +# | +# | +# V +# backend +# +# +# NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to +# CUPS and ESP PrintPro plug-in where rasterto is noted. +# +########################################################################## + + + + + + +CUPS Print Drivers and Devices + + +CUPS ships with good support for HP LaserJet type printers. You can install +the driver as follows: + + + + lpadmin -p laserjet4plus -v parallel:/dev/lp0 -E -m laserjet.ppd + + + +(The "-m" switch will retrieve the "laserjet.ppd" from the standard repository +for not-yet-installed-PPDs, which CUPS typically stores in +filename>/usr/share/cups/model. Alternatively, you may use +"-P /absolute/filesystem/path/to/where/there/is/PPD/your.ppd"). + + + + +Windows printing involves some more steps.... + +But let me first point out some more general things about printer "drivers" +for Linux/Unix (yes, and for Mac OS X now!), be it you use CUPS or one of +the venerable (I'd even call them "ancient" and "rusty" now...) printing +systems. + +You -- and everybody else, for that matter -- should always also consult the +database on linuxprinting.org for all recommendations about "which driver +is best used for which printer": + + http://www.linuxprinting.org/printer_list.cgi + +There select your model and click on "Show". You'll arrive at a page listing +all drivers working with your model. There will always be *one* "recommended" +one. Try this one first. In your case ("HP LaserJet 4 Plus"), you'll arrive +here: + + http://www.linuxprinting.org/show_printer.cgi?recnum=75104 + +The recommended driver is "ljet4". It has a link to the page for the ljet4 +driver too: + + http://www.linuxprinting.org/show_driver.cgi?driver=ljet4 + +On the driver's page, you'll find various important and detailed infos about +how to use that driver within various spoolers. You can generate a PPD for +CUPS. The PPD contains all the info about how to use your model and the driver; +this is, once installed, working transparently for the user -- you'll only +need to choose resolution, paper size etc. from the web-based menu or from +the print dialog GUI or from the commandline... + +On the driver's page, choose to use the "PPD-O-Matic" online PPD generator +program. Select your model and click "Generate PPD file". When you safe the +appearing ASCII text file, don't use "cut'n'past" (as it will possible corrupt +line endings and tabs), but use "Save as..." in your browser's menu. Save it +at "/some/path/on/your/filesystem/somewhere/my-name-for-my-printer.ppd" + +Then install the printer: + + "lpadmin -p laserjet4plus -v parallel:/dev/lp0 -E -P /some/path/on/your/filesystem/somewhere/my-name-for-my-printer.ppd" + +Note, that for all the "Foomatic-PPDs" from Linuxprinting.org, you also need +a special "CUPS filter" named "cupsomatic". Get the latest version of +"cupsomatic" from + + http://www.linuxprinting.org/cupsomatic + +This needs to be copied to "/usr/lib/cups/filter/cupsomatic" and be made world +executable. This filter is needed to read and act upon the specially encoded +Foomatic comments, embedded in the printfile, which in turn are used to +construct (transparently for you, the user) the complicated ghostscript command +line needed for your printer/driver combo. + +You can have a look at all the options for the Ghostscript commandline supported +by your printer and the ljet4 driver by going to the section "Execution details", +selecting your model (Laserjet 4 Plus) and clicking on "Show execution details". +This will bring up this web page: + + http://www.linuxprinting.org/execution.cgi?driver=ljet4&printer=75104&.submit=Show+execution+details + +The ingenious thing is this: the database is kept very current. If there +is a bug fix and an improvement somewhere in the database, you will +always get the most current and stable and feature-rich driver by following +the steps described above... Till Kamppeter from MandrakeSoft is doing an +excellent job here, and too few people still know about it. (So if you use +it often, please send him a note of your appreciation sometime...) + +(The latest and greatest improvement now is support for "custom page sizes" +for all those printers which support it...) + +"cupsomatic" is documented here: + + http://www.linuxprinting.org/cups-doc.html + +More printing tutorial info may be found here: + + http://www.linuxprinting.org/kpfeifle/LinuxKongress2002/Tutorial/ + +Note, that *all* the Foomatic drivers listed on Linuxprinting.org (now +approaching the "all-time high" number of 1.000 for the supported models) +are using a special filtering chain involving Ghostscript, as described +in great detail in the Samba CVS sources (for 2.2.x) in + + docs/textdocs/CUPS-PrintingInfo.txt + +To sum it up: + +* having a "foomatic+" PPD is not enough to print with CUPS + (but it is *one* important component) +* you also need the "cupsomatic" filter script (Perl) in "/usr/lib/cups/filters/" +* you need Perl to make cupsomatic run +* you also need Ghostscript (because it is called and controlled by the + PPD/cupsomatic combo in a way to fit your printermodel/driver combo...) +* your Ghostscript *must*, depending on the driver/model, contain support + for a certain "device" (as shown by "gs -h") + +In the case of the "hpijs" driver, you need a Ghostscript version, which +is showing a "ijs" amongst its supported devices in "gs -h". In the case of +"hpijs+foomatic", a valid ghostscript commandline would be reading like this: + + gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=ijs \ + -sIjsServer=hpijs -dDuplex= \ + -r,PS:MediaPosition= -dIjsUseOutputFD \ + -sOutputFile=- - + +Note, that with CUPS and the "hpijs+foomatic" PPD (plus Perl and cupsomatic) +you don't need to remember this. You can choose the available print options +thru a GUI print command (like "glp" from ESP's commercially supported +PrintPro software, or KDE's "kprinter", or GNOME's "gtklp" or the independent +"xpp") or the CUPS web interface via human-readable drop-down selection +menus..... + +If you use "ESP Ghostscript" (also under the GPL, provided by Easy Software +Products, the makers of CUPS, downloadable from http://www.cups.org/software.html, +co-maintained by the developers of linuxprinting.org), you are guaranteed to +have in use the most uptodate, bug-fixed, enhanced and stable version of a Free +Ghostscript. It contains support for ~300 devices, whereas plain vanilla +GNU Ghostscript 7.05 only has ~200.... + +>>/ However, I can only print a Cups test page, from the web interface. when I +/>>/ try to print a windows test page, it acts like the job was never sent. +/ + * Can you print "standard" jobs from the CUPS machine? + + * Are the jobs from Windows visible in the Web interface on CUPS + (http://localhost:631/)? + +*Most important:* What kind of printer driver are you using on the Windows clients??? + +You can try to get a more detailed debugging info by setting "LogLevel debug" in +"/etc/cups/cupsd.conf", re-start cupsd and investigate "/var/log/cups/error_log" +for the whereabouts of your Windows-originating printjobs: + + * what does the "auto-typing" line say? which is the "MIME type" CUPS thinks + is arriving from the Windows clients? + * are there "filter" available for this MIME type? + * are there "filter rules" defined in "/etc/cups/mime.convs" for this MIME type? + + + + + + + +Limiting the number of pages users can print + + +The feature you want is dependent on the real print subsystem +you're using. Samba's part is always to receive the job files +from the clients (filtered *or* unfiltered) and hand it over +to this printing subsystem. + +Of course one could "hack" things with one's own scripts. + +But there is CUPS (Common Unix Printing System). CUPS supports "quotas". +Quotas can be based on sizes of jobs or on the number of pages or both, +and are spanning any time period you want. + +This is an example command how root would set a print quota in CUPS, +assuming an existing printer named "quotaprinter": + + + + lpadmin -p quotaprinter -o job-quota-period=604800 -o job-k-limit=1024 -o job-page-limit=100 + + + +This would limit every single user to print 100 pages or 1024 KB of +data (whichever comes first) within the last 604.800 seconds ( = 1 week). + +For CUPS to count correctly, the printfile needs to pass the CUPS +"pstops" filter, otherwise it uses a "dummy" count of "1". (Some +printfiles don't pass it -- f.e. image files -- but then those are +mostly 1 page jobs anyway). This also means, proprietary drivers for +the target printer running on the client computers and CUPS/Samba +then spooling these files as "raw" (i.e. leaving them untouched, not +filtering them), will be counted as "1-pagers" too! + +You need to send PostScript from the clients (i.e. run a PostScript +driver there) for having the chance to get accounting done. If the +printer is a non-PostScript model, you need to let CUPS do the job to +convert the file to a print-ready format for the target printer. This +will be working for currently ~1.000 different printer models, see + + + + http://www.linuxprinting.org/printer_list.cgi + + + +Before CUPS-1.1.16 your only option was to use the Adobe PostScript +Driver on the Windows clients. The output of this driver was not always +passed thru the "pstops" filter on the CUPS/Samba side, and therefor was +not counted correctly (the reason is that it often --- depending on the +"PPD" being used --- did write a "PJL"-header in front of the real +PostScript which made CUPS to skip the pstops and go directy to +the "pstoraster" stage). + + From CUPS-1.1.16 onward you can use the "CUPS PostScript Driver +for Windows NT/2K/XP clients" (it is tagged in the download area of +http://www.cups.org/ as the "cups-samba-1.1.16.tar.gz" package). +It is *not* working for Win9x/ME clients. But it.... + + ...it guarantees to not write an PJL-header; + ...it guarantees to still read and support all PJL-options named + in the driver PPD with its own means; + ...it guarantees the file going thru the "pstops" filter on the + CUPS/Samba server; + ...it guarantees to page-count correctly the printfile... + +You can read more about the setup of this combination in the +manpage for "cupsaddsmb" (only present with CUPS installed, only +current with CUPS 1.1.16). + +These are the items CUPS logs in the "page_log" for every single +*page* of a job: + +* Printer name +* User name +* Job ID +* Time of printing +* the page number +* the number of copies +* a billing info string (optional) + +Here is an extract of my CUPS server's page_log file to illustrate +the format and included items: + +infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 1 2 #marketing +infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 2 2 #marketing +infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 3 2 #marketing +infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 4 2 #marketing +infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 5 2 #marketing +infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 6 2 #marketing + +This was Job ID "40", printed on "infotec_IS2027" by user "kurt", +a 6-page job printed in 2 copies and billed to "#marketing"... + +Which flaws or shortcomings are there? + + * the ones named above; + * CUPS really counts the job pages being *processsed in software* + (going thru the "RIP") rather than the physical sheets successfully + leaving the printing device -- if there is a jam while printing + the 5th sheet out of 1000 and the job is aborted by the printer, + the "page count" will still show the figure of 1000 for that + job; + * all quotas are the same for all users (no flexibility to + give the boss a higher quota than the clerk) + * no support for groups; + * no means to read out the current balance or "used-up" + number of current quota; + * a user having used up 99 sheets of 100 quota will still be + able to send and print a 1.000 sheet job; + * a user being denied a job because of a filled-up quota + doesn't get a meaningful error message from CUPS other than + "client-error-not-possible". + +But this is the best system out there currently. And there are +huge improvements under development: + +--> page counting will go into the "backends" (these talk directly + to the printer and will increase the count in sync with the + actual printing process -- a jam at the 5th sheet will lead + to a stop in the counting...) + +--> quotas will be handled more flexibly; + +--> probably there will be support for users to inquire their + "accounts" in advance; + +--> probably there will be support for some other tools around + this topic... + +Other than the current stage of the CUPS development, I don't +know any other ready-to-use tool which you could consider. + + + +You can download the driver files from http://www.cups.org/software.html. It +is a separate package from the CUPS base software files, tagged as "CUPS 1.1.16 +Windows NT/2k/XP Printer Driver for SAMBA (tar.gz, 192k)". The filename to +download is "cups-samba-1.1.16.tar.gz". Upon untar-/unzip-ping it will reveal +the files + + cups-samba.install + cups-samba.license + cups-samba.readme + cups-samba.remove + cups-samba.ss + +These have been packaged with the ESP meta packager software "EPM". The +*.install and *.remove files are simple shell script, which untars the +*.ss (which is nothing else than a tar-archive) and puts its contents +into "/usr/share/cups/drivers/". Its contents are 3 files: + + cupsdrvr.dll + cupsui.dll + cups.hlp + +[ ATTENTION: due to a bug the current release puts the "cups.hlp" into + "/usr/share/drivers/" instead of "/usr/share/cups/drivers/". To work + around this, copy/move the file after running the "./cups-samba.install" + script manually to the right place: + + "cp /usr/share/drivers/cups.hlp /usr/share/cups/drivers/" ] + +This new CUPS PostScript driver is currently binary-only, but free (as in +free beer); no source code is provided (yet). The reason is this: it has +been developed with the help of the Microsoft Driver Developer Kit (DDK) +and compiled with Microsoft Visual Studio 6. It is not clear to the driver +developers if they are allowed to distribute the whole of the source code +as Free Software. However, they will likely release the "diff" in source +code under the GPL, so anybody with a license of Visual Studio and a DDK +will be able to compile for him/herself. + +Once you have run the install script (and possibly manually moved the +"cups.hlp" file to "/usr/share/cups/drivers/"), the driver is ready to be +put into Samba's [print$] share (which often maps to "/etc/samba/drivers/" +and contains a subdir tree with WIN40 and W32X86 branches), by running +"cupsaddsmb" (see also "man cupsaddsmb" for CUPS 1.1.16). [Don't forget to +put root into the smbpasswd file by running "smbpasswd" should you run +this whole procedure for the first time.] Once the driver files are in the +[print$] share, they are ready to be downloaded and installed by the +Win NT/2k/XP clients. + +NOTE 1: Win 9x/ME clients won't work with this driver. For these you'd + still need to use the ADOBE*.* drivers as previously. + +NOTE 2: It is not harming if you've still the ADOBE*.* driver files from + previous installations in the "/usr/share/cups/drivers/" directory. + The new cupsaddsmb (from 1.1.16) will automatically use the + "newest" installed driver (which here then is the CUPS drivers). + +NOTE 3: Should your Win clients have had the old ADOBE*.* files and the + Adobe PostScript drivers installed, the download and installation + of the new CUPS PostScript driver for Windows NT/2k/XP will fail + at first. + It is not enough to "delete" the printer (as the driver files + will still be kept by the clients and re-used if you try to + re-install the printer). To really get rid of the Adobe driver + files on the clients, open the "Printers" folder (possibly via + "Start --> Settings --> Control Panel --> Printers"), right-click + onto the folder background and select "Server Properties". A + new dialog opens; select the "Drivers" tab; on the list select + the driver you want to delete and click on the "Delete" button. + (This will only work if there is no single printer left which + uses that particular driver -- you need to "delete" all printers + using this driver in the "Printers" folder first...) + +NOTE 4: Once you have successfully downloaded the CUPS PostScript driver + to a client, you can easily switch all printers to this one + by proceeding as described elsewhere in the "Samba HOWTO + Collection" to change a driver for an existing printer.... + + +What are the benefits with the "CUPS PostScript driver for Windows NT/2k/XP" +as compared to the Adobe drivers? + 9 +* no hassle with the Adobe EULA; no hassle with the question "where do I + get the ADOBE*.* driver files from?" + +* the Adobe drivers (depending on the printer PPD associated with them) + often put a PJL header in front of the core PostScript part of the print + file (thus the file starts with "<1B>%-12345X" or "%-12345X" + instead of "%!PS"). This leads to the CUPS daemon autotyping the + arriving file as a print-ready file, not requiring a pass thru the + "pstops" filter (to speak more technical, it is not regarded as the + generic MIME type "application/postscript", but as the more special + MIME type "application/cups.vnd-postscript"), which therefore also + leads to the page accounting in "/var/log/cups/page_log" not receiving + the exact mumber of pages; instead the dummy page number of "1" is + logged in a standard setup...) + +* the Adobe driver has more options to "mis-configure" the PostScript + generated by it (like setting it inadvertedly to "Optimize for Speed", + instead of "Optimize for Portability", which could lead to CUPS being + unable to process it....) + +* the CUPS PostScript driver output sent by Windows clients to the CUPS + server will be guaranteed to be auto-typed as generic MIME type + "application/postscript", thusly passing thru the CUPS "pstops" filter + and logging the correct number of pages in the page_log for accounting + and quota purposes... + +* the CUPS PostScript driver supports the sending of additional print + options by the Win NT/2k/XP clients, such as naming the CUPS standard + banner pages (or the custom ones, should they be installed at the time + of driver download), using the CUPS "page-label" option, setting a + job-priority and setting the scheduled time of printing (with the option + to support additional useful IPP job attributes in the future). + +* the CUPS PostScript driver supports the inclusion of the new + "*cupsJobTicket" comments at the beginnig of the PostScript file (which + could be used in the future for all sort of beneficial extensions on + the CUPS side, but which will not disturb any other application as those + will regard it as a comment and simply ignore it). + +* the CUPS PostScript driver will be the heart of the fully fledged CUPS + IPP client for Windows NT/2k/XP to be released soon (probably alongside + the first Beta release for CUPS 1.2). + + + + + +Advanced Postscript Printing from MS Windows + + +* Let the Windows Clients use a PostScript driver, to produce + PostScript as their print output sent towards the Samba print + server (just like any Linux or Unix Client would also use + PostScript to send to the server...) + +* make the Unix printing subsystem which is underneath Samba + convert the incoming PostScript files to the native print + format of the target printers (would likely be PCL? + I understand you have mainly HP models?) + +* You're afraid, that this would just mean a *Generic* PostScript + driver for the clients? With no Simplex/Duplex selection, + no paper tray choice? But you need them to be able to set up + their jobs, ringing all the bells and whistles of the printers? + + --> Not possible with traditional spooling systems! + + --> But perfectly supported by CUPS (which uses "PPD" files to + describe how to control the print options for PostScript and + non-PostScript devices alike... + + CUPS PPDs are working perfectly on Windows + clients who use Adobe PostScript drivers (or the new CUPS + PostScript driver for Windows NT/2K/XP). Clients can use + them to setup the job to their liking and CUPS will use + the received job options to make the (PCL-, ESC/P- or + PostScript-) printer behave as required. + +* You want to have the additional benefit of page count logging + and accounting? In this case the CUPS PostScript driver + is the best choice (better than the Adobe one). + +* You want to make the drivers downloadable for the clients? + "cupsaddsmb" is your friend. It will setup the [print$] + share on the Samba host to be ready to serve the clients + for a "point and print" driver installation... + +"What strings are attached?", I hear you asking... + +You are right, there are some. But, given the sheer CPU power +you can buy nowadays in German supermarkets, these can be +overcome easily. + +The strings: Well, if the +CUPS/Samba side will have to print a *lot* onto 40 printers +serving 500 users, you probably will need to set up a second +server (which can do automatic load balancing with the first +one, plus a degree of fail-over mechanism). Converting the +incoming PostScript jobs, "interpreting" them for +non-PostScript printers, amounts to the work of a "RIP" +(Raster Image Processor) done in software. This requires +more CPU and RAM than for the mere "raw spooling" task +your current setup is solving... It all depends on the +avarage and peak printing load the server should be +able to handle.... + + + + + +Auto-Deletion of CUPS spool files + + +Samba print files pass thru 2 +different "spool" directories. Once the incoming directory +managed by Samba, (set f.e. in the "path = /var/spool/samba" +directive in the [printers] section of "smb.conf"). Second is +the spool directory of your UNIX print subsystem. For CUPS it is +normally "/var/spool/cups/", as set by the cupsd.conf directive +"RequestRoot /var/spool/cups". + +I am not sure, which one of your directories keeps the files. + From what you say, it is most likely the Samba part. + +For the CUPS part, you may want to consult: + + http://localhost:631/sam.html#PreserveJobFiles and + http://localhost:631/sam.html#PreserveJobHistory and + http://localhost:631/sam.html#MaxJobs + +There are the settings described for your CUPS daemon, which +could lead to completed job files not being deleted. + +"PreserveJobHistory Yes" -- keeps some details of jobs in +cupsd's mind (well it keeps the "c12345", "c12346" etc. files +in the CUPS spool directory, which do a similar job as the +old-fashioned BSD-LPD control files). This is set to "Yes" +as a default. + +"PreserveJobFiles Yes" -- keeps the job files themselves in +cupsd's mind (well it keeps the "d12345", "d12346" etc. files +in the CUPS spool directory...). This is set to "No" as the +CUPS default. + +"MaxJobs 500" -- this directive controls the maximum number +of jobs that are kept in memory. Once the number of jobs +reaches the limit, the oldest completed job is automatically +purged from the system to make room for the new one. If all +of the known jobs are still pending or active then the new +job will be rejected. Setting the maximum to 0 disables this +functionality. The default setting is 0. + +(There are also additional settings for "MaxJobsPerUser" and +"MaxJobsPerPrinter"...) + +For everything to work as announced, you need to have three +things: + + * a Samba-smbd which is compiled against "libcups" (Check + on Linux by running "ldd `which smbd`") + + * a Samba-smb.conf setting of "printing = cups" + + * another Samba-smb.conf setting of "printcap = cups" + +Note, that in this case all other manually set printing-related +commands (like "print command", "lpq command", "lprm command", +"lppause command" or "lpresume command") are ignored and they +should normally have no influence what-so-ever on your printing. + +If you want to do things manually, replace the "printing = cups" +by "printing = bsd". Then your manually set commands may work +(haven't tested this), and a "print command = lp -d %P %s; rm %s" +may do what you need. + +You forgot to mention the CUPS version you're using. If you did +set things up as described in the man pages, then the Samba +spool files should be deleted. Otherwise it may be a bug. On +the CUPS side, you can control the behaviour as described +above. +If you have more problems, post the output of these commands: + + grep -v ^# /etc/cups/cupsd.conf | grep -v ^$ + grep -v ^# /etc/samba/smb.conf | grep -v ^$ | grep -v "^;" + +(adapt paths as needed). These commands sanitize the files +and cut out the empty lines and lines with comments, providing +the "naked settings" in a compact way. + + diff --git a/docs/docbook/projdoc/Samba-PDC-HOWTO.sgml b/docs/docbook/projdoc/Samba-PDC-HOWTO.sgml index c0be81d9897..53dae21775a 100644 --- a/docs/docbook/projdoc/Samba-PDC-HOWTO.sgml +++ b/docs/docbook/projdoc/Samba-PDC-HOWTO.sgml @@ -13,13 +13,18 @@ Samba Team
dbannon@samba.org
+ John HTerpstra + + Samba Team +
jht@samba.org
+
(26 Apr 2001) -Samba as a NT4 or Win2k Primary Domain Controller +Samba as an NT4 or Win2k Primary Domain Controller @@ -37,8 +42,7 @@ that you are comfortable with configuring basic files services in smb.conf and how to enable and administer password encryption in Samba. Theses two topics are covered in the smb.conf(5) -manpage and the Encryption chapter -of this HOWTO Collection. +manpage.
@@ -56,46 +60,28 @@ of this HOWTO Collection. Background - -Author's Note: This document is a combination -of David Bannon's "Samba 2.2 PDC HOWTO" and "Samba NT Domain FAQ". -Both documents are superseded by this one. - - - - -Versions of Samba prior to release 2.2 had marginal capabilities to act -as a Windows NT 4.0 Primary Domain Controller -Primary Domain Controller -(PDC). With Samba 2.2.0, we are proud to announce official support for -Windows NT 4.0-style domain logons from Windows NT 4.0 and Windows -2000 clients. This article outlines the steps -necessary for configuring Samba as a PDC. It is necessary to have a -working Samba server prior to implementing the PDC functionality. If -you have not followed the steps outlined in UNIX_INSTALL.html, please make sure -that your server is configured correctly before proceeding. Another -good resource in the smb.conf(5) man -page. The following functionality should work in 2.2: +This article outlines the steps necessary for configuring Samba as a PDC. +It is necessary to have a working Samba server prior to implementing the +PDC functionality. - domain logons for Windows NT 4.0/2000 clients. + domain logons for Windows NT 4.0 / 200x / XP Professional clients. - placing a Windows 9x client in user level security + placing Windows 9x / Me clients in user level security retrieving a list of users and groups from a Samba PDC to - Windows 9x/NT/2000 clients + Windows 9x / Me / NT / 200x / XP Professional clients - roving (roaming) user profiles + roaming user profiles @@ -105,7 +91,7 @@ page. The following functionality should work in 2.2: -The following pieces of functionality are not included in the 2.2 release: +The following functionalities are new to the Samba 3.0 release: @@ -113,15 +99,21 @@ The following pieces of functionality are not included in the 2.2 release: Windows NT 4 domain trusts + + Adding users via the User Manager for Domains + + + + +The following functionalities are NOT provided by Samba 3.0: + + + SAM replication with Windows NT 4.0 Domain Controllers (i.e. a Samba PDC and a Windows NT BDC or vice versa) - - Adding users via the User Manager for Domains - - Acting as a Windows 2000 Domain Controller (i.e. Kerberos and Active Directory) @@ -129,16 +121,21 @@ The following pieces of functionality are not included in the 2.2 release: -Please note that Windows 9x clients are not true members of a domain +Please note that Windows 9x / Me / XP Home clients are not true members of a domain for reasons outlined in this article. Therefore the protocol for support Windows 9x-style domain logons is completely different -from NT4 domain logons and has been officially supported for some +from NT4 / Win2k type domain logons and has been officially supported for some time. + +MS Windows XP Home edition is NOT able to join a domain and does not permit +the use of domain logons. + + -Implementing a Samba PDC can basically be divided into 2 broad +Implementing a Samba PDC can basically be divided into 3 broad steps. @@ -148,8 +145,11 @@ steps. - Creating machine trust accounts and joining clients - to the domain + Creating machine trust accounts and joining clients to the domain + + + + Adding and managing domain user accounts @@ -157,7 +157,7 @@ steps. There are other minor details such as user profiles, system policies, etc... However, these are not necessarily specific to a Samba PDC as much as they are related to Windows NT networking -concepts. They will be mentioned only briefly here. +concepts. @@ -174,11 +174,10 @@ concepts. They will be mentioned only briefly here. The first step in creating a working Samba PDC is to -understand the parameters necessary in smb.conf. I will not -attempt to re-explain the parameters here as they are more that -adequately covered in the smb.conf -man page. For convenience, the parameters have been -linked with the actual smb.conf description. +understand the parameters necessary in smb.conf. Here we +attempt to explain the parameters that are covered in + the smb.conf +man page. @@ -209,8 +208,7 @@ Here is an example smb.conf for acting as a PDC: ; where to store user profiles? logon path = \\%N\profiles\%u - ; where is a user's home directory and where should it - ; be mounted at? + ; where is a user's home directory and where should it be mounted at? logon drive = H: logon home = \\homeserver\%u @@ -256,20 +254,16 @@ There are a couple of points to emphasize in the above configuration. -As Samba 2.2 does not offer a complete implementation of group mapping +Samba 3.0 offers a complete implementation of group mapping between Windows NT groups and Unix groups (this is really quite -complicated to explain in a short space), you should refer to the -domain admin -group smb.conf parameter for information of creating "Domain -Admins" style accounts. +complicated to explain in a short space). -Creating Machine Trust Accounts and Joining Clients to the -Domain +Creating Machine Trust Accounts and Joining Clients to the Domain A machine trust account is a Samba account that is used to @@ -282,15 +276,65 @@ The password of a machine trust account acts as the shared secret for secure communication with the Domain Controller. This is a security feature to prevent an unauthorized machine with the same NetBIOS name from joining the domain and gaining access to domain user/group -accounts. Windows NT and 2000 clients use machine trust accounts, but -Windows 9x clients do not. Hence, a Windows 9x client is never a true -member of a domain because it does not possess a machine trust -account, and thus has no shared secret with the domain controller. +accounts. Windows NT, 200x, XP Professional clients use machine trust +accounts, but Windows 9x / Me / XP Home clients do not. Hence, a +Windows 9x / Me / XP Home client is never a true member of a domain +because it does not possess a machine trust account, and thus has no +shared secret with the domain controller. A Windows PDC stores each machine trust account in the Windows -Registry. A Samba PDC, however, stores each machine trust account -in two parts, as follows: +Registry. A Samba-3 PDC also has to stoe machine trust account information +in a suitable back-end data store. With Samba-3 there can be multiple back-ends +for this including: + + + + + smbpaswd - the plain ascii file stored used by + earlier versions of Samba. This file configuration option requires + a Unix/Linux system account for EVERY entry (ie: both for user and for + machine accounts). This file will be located in the private + directory (default is /usr/local/samba/lib/private or on linux /etc/samba). + + + + smbpasswd_nua - This file is independant of the + system wide user accounts. The use of this back-end option requires + specification of the "non unix account range" option also. It is called + smbpasswd and will be located in the private directory. + + + + tdbsam - a binary database backend that will be + stored in the private directory in a file called + passwd.tdb. The key benefit of this binary format + file is that it can store binary objects that can not be accomodated + in the traditional plain text smbpasswd file. + + + + tdbsam_nua like the smbpasswd_nua option above, this + file allows the creation of arbitrary user and machine accounts without + requiring that account to be added to the system (/etc/passwd) file. It + too requires the specification of the "non unix account range" option + in the [globals] section of the smb.conf file. + + + + ldapsam - An LDAP based back-end. Permits the + LDAP server to be specified. eg: ldap://localhost or ldap://frodo.murphy.com + + + + ldapsam_nua - LDAP based back-end with no unix + account requirement, like smbpasswd_nua and tdbsam_nua above. + + + + +A Samba PDC, however, stores each machine trust account in two parts, +as follows: A Samba account, stored in the same location as user diff --git a/docs/docbook/projdoc/ServerType.sgml b/docs/docbook/projdoc/ServerType.sgml new file mode 100644 index 00000000000..65544572b7f --- /dev/null +++ b/docs/docbook/projdoc/ServerType.sgml @@ -0,0 +1,140 @@ + + + + John HTerpstra + + Samba Team +
jht@samba.org
+
+
+
+ +Nomenclature of Server Types + +Adminstrators of Microsoft networks often refer to there being three +different type of servers: + + + Stand Alone Server + Domain Member Server + Domain Controller + + Primary Domain Controller + Backup Domain Controller + + + + +A network administrator who is familiar with these terms and who +wishes to migrate to or use Samba will want to know what these terms mean +within a Samba context. + + +Stand Alone Server + + +The term stand alone server means that the server +will provide local authentication and access control for all resources +that are available from it. In general this means that there will be a +local user database. In more technical terms, it means that resources +on the machine will either be made available in either SHARE mode or in +USER mode. SHARE mode and USER mode security are documented under +discussions regarding "security mode". The smb.conf configuration parameters +that control security mode are: "security = user" and "security = share". + + + +Samba tends to blur the distinction a little in respect of what is +a stand alone server. This is because the authentication database may be +local or on a remote server, even if from the samba protocol perspective +the samba server is NOT a member of a domain security context. + + + +Through the use of PAM (Pluggable Authentication Modules) and nsswitch +(the name service switcher) the source of authentication may reside on +another server. We would be inclined to call this the authentication server. +This means that the samba server may use the local Unix/Linux system +password database (/etc/passwd or /etc/shadow), may use a local smbpasswd +file (/etc/samba/smbpasswd or /usr/local/samba/lib/private/smbpasswd), or +may use an LDAP back end, or even via PAM and Winbind another CIFS/SMB +server for authentication. + + + + + +Domain Member Server + + +This mode of server operation involves the samba machine being made a member +of a domain security context. This means by definition that all user authentication +will be done from a centrally defined authentication regime. The authentication +regime may come from an NT3/4 style (old domain technology) server, or it may be +provided from an Active Directory server (ADS) running on MS Windows 2000 or later. +>/para> + + +Of course it should be clear that the authentication back end itself could be from any +distributed directory architecture server that is supported by Samba. This can be +LDAP (from OpenLDAP), or Sun's iPlanet, of NetWare Directory Server, etc. + + + +Please refer to the section on Howto configure Samba as a Primary Domain Controller +and for more information regarding how to create a domain machine account for a +domain member server as well as for information regading how to enable the samba +domain member machine to join the domain and to be fully trusted by it. + + + + + +Domain Controller + + +Over the years public perceptions of what Domain Control really is has taken on an +almost mystical nature. Before we branch into a brief overview of what Domain Control +is the following types of controller are known: + + + +Domain Controller Types + + + Primary Domain Controller + Backup Domain Controller + ADS Domain Controller + + + +The Primary Domain Controller or PDC plays an important role in the MS +Windows NT3 and NT4 Domain Control architecture, but not in the manner that so many +expect. The PDC seeds the Domain Control database (a part of the Windows registry) and +it plays a key part in synchronisation of the domain authentication database. + + + +New to Samba-3.0.0 is the ability to use a back-end file that holds the same type of data as +the NT4 style SAM (Security Account Manager) database (one of the registry files). +The samba-3.0.0 SAM can be specified via the smb.conf file parameter "passwd backend" and +valid options include smbpasswd tdbsam ldapsam nisplussam plugin unixsam. +The smbpasswd, tdbsam and ldapsam options can have a "_nua" suffix to indicate that No Unix +Accounts need to be created. In other words, the Samba SAM will be independant of Unix/Linux +system accounts, provided a uid range is defined from which SAM accounts can be created. + + + +The Backup Domain Controller or BDC plays a key role in servicing network +authentication requests. The BDC is biased to answer logon requests so that on a network segment +that has a BDC and a PDC the BDC will be most likely to service network logon requests. The PDC will +answer network logon requests when the BDC is too busy (high load). A BDC can be promoted to +a PDC. If the PDC is on line at the time that the BDC is promoted to PDC the previous PDC is +automatically demoted to a BDC. + + + +At this time Samba is NOT capable of acting as an ADS Domain Controller. + + + diff --git a/docs/docbook/projdoc/passdb.sgml b/docs/docbook/projdoc/passdb.sgml index 222b4010ab4..fa2d75bd342 100644 --- a/docs/docbook/projdoc/passdb.sgml +++ b/docs/docbook/projdoc/passdb.sgml @@ -30,6 +30,16 @@ + + John HTerpstra + + Samba Team +
+ jht@samba.org +
+
+
+ February 2003 @@ -104,6 +114,10 @@ Other Microsoft operating systems which also exhibit this behavior includes + These versions of MS Windows do not support full domain + security protocols, although they may log onto a domain environment. + Of these Only MS Windows XP Home does NOT support domain logons. + MS DOS Network client 3.0 with the basic network redirector installed @@ -112,8 +126,25 @@ update installed Windows 98 [se] + + Windows Me + + Windows XP Home + + + The following versions of MS Windows fully support domain + security protocols. + + + Windows NT 3.5x + + Windows NT 4.0 - Windows 2000 + Windows 2000 Professional + + Windows 200x Server/Advanced Server + + Windows XP Professional Note :All current release of @@ -121,23 +152,36 @@ SMB Challenge/Response mechanism described here. Enabling clear text authentication does not disable the ability of the client to participate in encrypted authentication. + + + MS Windows clients will cache the encrypted password alone. + Even when plain text passwords are re-enabled, through the appropriate + registry change, the plain text password is NEVER cached. This means that + in the event that a network connections should become disconnected (broken) + only the cached (encrypted) password will be sent to the resource server + to affect a auto-reconnect. If the resource server does not support encrypted + passwords the auto-reconnect will fail. USE OF ENCRYPTED PASSWORDS + IS STRONGLY ADVISED. Advantages of SMB Encryption - plain text passwords are not passed across + Plain text passwords are not passed across the network. Someone using a network sniffer cannot just record passwords going to the SMB server. WinNT doesn't like talking to a server - that isn't using SMB encrypted passwords. It will refuse + that SM not support encrypted passwords. It will refuse to browse the server if the server is also in user level security mode. It will insist on prompting the user for the password on each connection, which is very annoying. The only things you can do to stop this is to use SMB encryption. + + Encrypted password support allows auto-matic share + (resource) reconnects. @@ -146,16 +190,15 @@ Advantages of non-encrypted passwords - plain text passwords are not kept - on disk. + Plain text passwords are not kept + on disk, and are NOT cached in memory. - uses same password file as other unix + Uses same password file as other unix services such as login and ftp - you are probably already using other - services (such as telnet and ftp) which send plain text - passwords over the net, so sending them for SMB isn't - such a big deal. + Use of other services (such as telnet and ftp) which + send plain text passwords over the net, so sending them for SMB + isn't such a big deal.
@@ -166,8 +209,7 @@ The smbpasswd utility is a utility similar to the passwd or yppasswd programs. - It maintains the two 32 byte password fields - in the passdb backend. + It maintains the two 32 byte password fields in the passdb backend.
smbpasswd works in a client-server mode where it contacts the local smbd to change the user's password on its @@ -352,11 +394,12 @@ the details of configuring these packages are beyond the scope of this document. Supported LDAP Servers -The LDAP samdb code in 2.2.3 has been developed and tested using the OpenLDAP -2.0 server and client libraries. The same code should be able to work with -Netscape's Directory Server and client SDK. However, due to lack of testing -so far, there are bound to be compile errors and bugs. These should not be -hard to fix. If you are so inclined, please be sure to forward all patches to +The LDAP samdb code in 2.2.3 (and later) has been developed and tested +using the OpenLDAP 2.0 server and client libraries. +The same code should be able to work with Netscape's Directory Server +and client SDK. However, due to lack of testing so far, there are bound +to be compile errors and bugs. These should not be hard to fix. +If you are so inclined, please be sure to forward all patches to samba-patches@samba.org and jerry@samba.org. diff --git a/docs/docbook/projdoc/samba-doc.sgml b/docs/docbook/projdoc/samba-doc.sgml index c1662ee3bf0..d06d86337d3 100644 --- a/docs/docbook/projdoc/samba-doc.sgml +++ b/docs/docbook/projdoc/samba-doc.sgml @@ -5,6 +5,7 @@ + @@ -91,6 +92,7 @@ Samba can operate in various SMB networks. This part contains information on con for various environments. +&ServerType; &SECURITY-LEVEL; &Samba-PDC-HOWTO; &Samba-BDC-HOWTO; diff --git a/docs/docbook/projdoc/security_level.sgml b/docs/docbook/projdoc/security_level.sgml index e2d9cfbbaae..00dcc6e83b6 100644 --- a/docs/docbook/projdoc/security_level.sgml +++ b/docs/docbook/projdoc/security_level.sgml @@ -9,7 +9,7 @@ -User and Share security level (for servers not in a domain) +Samba as Stand-Alone server (User and Share security level) A SMB server tells the client at startup what "security level" it is diff --git a/docs/docbook/projdoc/unicode.sgml b/docs/docbook/projdoc/unicode.sgml index a467a0d4e7b..7d8f0a03be8 100644 --- a/docs/docbook/projdoc/unicode.sgml +++ b/docs/docbook/projdoc/unicode.sgml @@ -2,10 +2,10 @@ JelmerVernooij - + Samba Team
jelmer@samba.org
-
+
25 March 2003
@@ -18,8 +18,8 @@ Computers communicate in numbers. In texts, each number will be translated to a corresponding letter. The meaning that will be assigned -to a certain number depends on the character set(charset) - that is used. +to a certain number depends on the character set(charset) + that is used. A charset can be seen as a table that is used to translate numbers to letters. Not all computers use the same charset (there are charsets with German umlauts, Japanese characters, etc). Usually a charset contains @@ -64,7 +64,7 @@ samba knows of three kinds of character sets: unix charset This is the charset used internally by your operating system. - The default is ASCII, which is fine for most + The default is ASCII, which is fine for most systems. diff --git a/docs/docs-status b/docs/docs-status index 510e0cf4378..97aa11f8bc6 100644 --- a/docs/docs-status +++ b/docs/docs-status @@ -3,7 +3,6 @@ If you'd like to work on any of these, please contact jerry@samba.org or jelmer@ Outdated docs: docs/announce - out of date (announces 2.2.0) - should it go away? docs/history - needs updating (is current up to 1998 - merge with 10year.html ?) -docs/docbook/devdoc/* - most of these docs are outdated and need updates... docs/docbook/manpages/net.8.sgml - Still not finished docs/docbook/manpages/rpcclient.1.sgml - Command documentation might be outdated docs/docbook/manpages/samba.7.sgml - Listing of samba programs is not complete @@ -13,12 +12,10 @@ docs/docbook/projdoc/DOMAIN_MEMBER.sgml - Needs update to 3.0 docs/docbook/projdoc/ADS-HOWTO.sgml - seems outdated (it says we require 'ads server' when in ads mode, though that's not true, according to the manpages...) docs/docbook/projdoc/Integrating-with-Windows.sgml - Should slowly go a way. Contains a little bit information about wins, a little bit about domain membership, a little about winbind, etc docs/docbook/projdoc/NT_Security.sgml - probably outdated -docs/docbook/projdoc/Diagnosis.sgml - Needs extension docs/docbook/projdoc/PAM-Authentication-And-Samba.sgml docs/docbook/projdoc/Printing.sgml - Cups is not documented, smbprint, printing /to/ a windows server... - Kurt Pfeifle docs/docbook/projdoc/Samba-BDC-HOWTO.sgml - Needs update to 3.0 -docs/docbook/projdoc/Samba-LDAP-HOWTO.sgml - Needs update to 3.0 -docs/docbook/projdoc/Samba-PDC-HOWTO.sgml - Needs update to 3.0 +docs/docbook/projdoc/Samba-LDAP-HOWTO.sgml - Needs update to 3.0 ( http://www.unav.es/cti/ldap-smb/smb-ldap-3-howto.html ) docs/docbook/projdoc/Speed.sgml - contains outdated and invalid information docs/docbook/projdoc/UNIX_INSTALL.sgml - Needs a lot of updating (swat, ADS, PDC, etc) docs/docbook/projdoc/printer_driver2.sgml - Needs integration with printing.sgml, still up to date? @@ -31,7 +28,6 @@ docs/textdocs/README.jis - Seems to need updating - possibly obsoleted by a newe docs/textdocs/RoutedNetworks.txt - still valid, but shouldn't this go into Other_clients.sgml ? This text originally comes from microsoft, what about copyright? These still need to be checked: -docs/docbook/manpages/smbd.8.sgml docs/docbook/manpages/smbmnt.8.sgml docs/docbook/manpages/smbmount.8.sgml docs/docbook/manpages/smbpasswd.8.sgml @@ -43,15 +39,15 @@ docs/docbook/manpages/smbumount.8.sgml docs/docbook/manpages/testparm.1.sgml docs/docbook/manpages/testprns.1.sgml -These need documentation: +Stuff that needs to be documented: ntlm_auth wrepld editreg - -Stuff that needs to be documented: Windows NT 4.0 Style Trust Relationship +Winbind in a samba controlled domain One Time Migration script from a Windows NT 4.0 PDC to a Samba PDC ldap passwd sync -using rsync to get latest HEAD version -http://www.unav.es/cti/ldap-smb/smb-ldap-3-howto.html +Not release-critical: +docs/docbook/devdoc/* - most of these docs are outdated and need updates... +docs/docbook/projdoc/Diagnosis.sgml - Needs extension diff --git a/docs/htmldocs/Samba-Developers-Guide.html b/docs/htmldocs/Samba-Developers-Guide.html index 22cbcec3ee0..142d9dc5377 100644 --- a/docs/htmldocs/Samba-Developers-Guide.html +++ b/docs/htmldocs/Samba-Developers-Guide.html @@ -816,23 +816,89 @@ NAME="SMBPASSWDFILEFORMAT" >
14. RPC Pluggable ModulesModules
14.1. AboutAdvantages
14.2. Loading modules
14.2.1. Static modules
14.2.2. Shared modules
14.3. Writing modules
14.3.1. Static/Shared selection in configure.in
15. RPC Pluggable Modules
15.1. About
15.2. General Overview
16. Notes to packagers
16.1. Versioning
16.2. Modules

Chapter 14. RPC Pluggable Modules

Chapter 14. Modules

14.1. About14.1. Advantages

The new modules system has the following advantages:

Transparent loading of static and shared modules (no need +for a subsystem to know about modules)
Simple selection between shared and static modules at configure time
"preload modules" option for increasing performance for stable modules
No nasty #define stuff anymore
All backends are available as plugin now (including pdb_ldap and pdb_tdb)


14.2. Loading modules

Some subsystems in samba use different backends. These backends can be +either statically linked in to samba or available as a plugin. A subsystem +should have a function that allows a module to register itself. For example, +the passdb subsystem has:

BOOL smb_register_passdb(const char *name, pdb_init_function init, int version);

This function will be called by the initialisation function of the module to +register itself.


14.2.1. Static modules

The modules system compiles a list of initialisation functions for the +static modules of each subsystem. This is a define. For example, +it is here currently (from include/config.h):

/* Static init functions */
+#define static_init_pdb { pdb_mysql_init(); pdb_ldap_init(); pdb_smbpasswd_init(); pdb_tdbsam_init(); pdb_guest_init();}

These functions should be called before the subsystem is used. That +should be done when the subsystem is initialised or first used.


14.2.2. Shared modules

If a subsystem needs a certain backend, it should check if it has +already been registered. If the backend hasn't been registered already, +the subsystem should call smb_probe_module(char *subsystem, char *backend). +This function tries to load the correct module from a certain path +($LIBDIR/subsystem/backend.so). If the first character in 'backend' +is a slash, smb_probe_module() tries to load the module from the +absolute path specified in 'backend'.

After smb_probe_module() has been executed, the subsystem +should check again if the module has been registered.


14.3. Writing modules

Each module has an initialisation function. For modules that are +included with samba this name is 'subsystem_backend_init'. For external modules (that will never be built-in, but only available as a module) this name is always 'init_module'. (In the case of modules included with samba, the configure system will add a #define subsystem_backend_init() init_module()). +The prototype for these functions is:

int init_module(void);

This function should call one or more +registration functions. The function should return non-zero on success and zero on +failure.

For example, pdb_ldap_init() contains:

int pdb_ldap_init(void)
+{
+    smb_register_passdb("ldapsam", pdb_init_ldapsam, PASSDB_INTERFACE_VERSION);
+    smb_register_passdb("ldapsam_nua", pdb_init_ldapsam_nua, PASSDB_INTERFACE_VERSION);
+	return TRUE;
+}


14.3.1. Static/Shared selection in configure.in

Some macros in configure.in generate the various defines and substs that +are necessary for the system to work correct. All modules that should +be built by default have to be added to the variable 'default_modules'. +For example, if ldap is found, pdb_ldap is added to this variable.

On the bottom of configure.in, SMB_MODULE() should be called +for each module and SMB_SUBSYSTEM() for each subsystem.

Syntax:

SMB_MODULE(subsystem_backend, object files, plugin name, subsystem name, static_action, shared_action)
+SMB_SUBSYSTEM(subsystem)

Also, make sure to add the correct directives to +Makefile.in. @SUBSYSTEM_STATIC@ +will be replaced with a list of objects files of the modules that need to +be linked in statically. @SUBSYSTEM_MODULES@ will +be replaced with the names of the plugins to build.

You must make sure all .c files that contain defines that can +be changed by ./configure are rebuilded in the 'modules_clean' make target. +Practically, this means all c files that contain static_init_subsystem; calls need to be rebuilded.


Chapter 15. RPC Pluggable Modules

15.1. About

This document describes how to make use the new RPC Pluggable Modules features @@ -9346,8 +9639,8 @@ CLASS="SECT1" >


14.2. General Overview15.2. General Overview

When an RPC call is sent to smbd, smbd tries to load a shared library by the @@ -9363,10 +9656,10 @@ CLASS="FILENAME" These shared libraries should be located in the <sambaroot>/lib/rpc. smbd then attempts to call the rpc_pipe_init function within -the shared library.

. smbd then attempts to call the init_module function within +the shared library. Check the chapter on modules for more information.

In the rpc_pipe_init function, the library should call +>In the init_module function, the library should call rpc_pipe_register_commands(). This function takes the following arguments:


Chapter 16. Notes to packagers

16.1. Versioning

Please, please update the version number in +source/include/version.h to include the versioning of your package. This makes it easier to distinguish standard samba builds +from custom-build samba builds (distributions often patch packages). For +example, a good version would be:

Version 2.999+3.0.alpha21-5 for Debian


16.2. Modules

Samba now has support for building parts of samba as plugins. This +makes it possible to, for example, put ldap or mysql support in a seperate +package, thus making it possible to have a normal samba package not +depending on ldap or mysql. To build as much parts of samba +as a plugin, run:

./configure --with-shared-modules=rpc,vfs,auth,pdb,charset

3.1. Introduction
3.2. Important Notes About Security
3.3. The smbpasswd Command
3.4. Plain text
3.5. TDB
3.6. LDAP
3.7. MySQL
3.8. Passdb XML plugin
4. Nomenclature of Server Types
4.1. Stand Alone Server
4.2. Domain Member Server
4.3. Domain Controller
5. User and Share security level (for servers not in a domain)
5. 6. Samba as a NT4 or Win2k Primary Domain ControllerSamba as an NT4 or Win2k Primary Domain Controller
5.1. 6.1. Prerequisite Reading
5.2. 6.2. Background
5.3. 6.3. Configuring the Samba Domain Controller
5.4. Creating Machine Trust Accounts and Joining Clients to the -Domain6.4. Creating Machine Trust Accounts and Joining Clients to the Domain
5.5. 6.5. Common Problems and Errors
5.6. 6.6. System Policies and Profiles
5.7. 6.7. What other help can I get?
5.8. 6.8. Domain Control for Windows 9x/ME
5.9. 6.9. DOMAIN_CONTROL.txt : Windows NT Domain Control & Samba
6. 7. How to Act as a Backup Domain Controller in a Purely Samba Controlled Domain
6.1. 7.1. Prerequisite Reading
6.2. 7.2. Background
6.3. 7.3. What qualifies a Domain Controller on the network?
6.4. 7.4. Can Samba be a Backup Domain Controller to an NT PDC?
6.5. 7.5. How do I set up a Samba BDC?
7. 8. Samba as a ADS domain member
7.1. 8.1. Installing the required packages for Debian
7.2. 8.2. Installing the required packages for RedHat
7.3. 8.3. Compile Samba
7.4. 8.4. Setup your /etc/krb5.conf
7.5. 8.5. Create the computer account
7.6. 8.6. Test your server setup
7.7. 8.7. Testing with smbclient
7.8. 8.8. Notes
8. 9. Samba as a NT4 or Win2k domain member
8.1. 9.1. Joining an NT Domain with Samba 3.0
8.2. 9.2. Samba and Windows 2000 Domains
8.3. 9.3. Why is this better than security = server?
9. 10. Integrating MS Windows networks with Samba
9.1. 10.1. Agenda
9.2. 10.2. Name Resolution in a pure Unix/Linux world
9.3. 10.3. Name resolution as used within MS Windows networking
9.4. 10.4. How browsing functions and how to deploy stable and dependable browsing using Samba
9.5. 10.5. MS Windows security options and how to configure Samba for seemless integration
9.6. 10.6. Conclusions
10. 11. UNIX Permission Bits and Windows NT Access Control Lists
10.1. 11.1. Viewing and changing UNIX permissions using the NT security dialogs
10.2. 11.2. How to view file security on a Samba share
10.3. 11.3. Viewing file ownership
10.4. 11.4. Viewing file or directory permissions
10.5. 11.5. Modifying file or directory permissions
10.6. 11.6. Interaction with the standard Samba create mask parameters
10.7. 11.7. Interaction with the standard Samba file attribute mapping
11. 12. Configuring PAM for distributed but centrally managed authentication
11.1. 12.1. Samba and PAM
11.2. 12.2. Distributed Authentication
11.3. 12.3. PAM Configuration in smb.conf
12. 13. Hosting a Microsoft Distributed File System tree on Samba
12.1. 13.1. Instructions
13. 14. Printing Support
13.1. 14.1. Introduction
13.2. 14.2. Configuration
13.3. 14.3. The Imprints Toolset
13.4. 14.4. Diagnosis
14. 15. Unified Logons between Windows NT and UNIX using Winbind
14.1. 15.1. Abstract
14.2. 15.2. Introduction
14.3. 15.3. What Winbind Provides
14.4. 15.4. How Winbind Works
14.5. 15.5. Installation and Configuration
14.6. 15.6. Limitations
14.7. 15.7. Conclusion
15. 16. Improved browsing in samba
15.1. 16.1. Overview of browsing
15.2. 16.2. Browsing support in samba
15.3. 16.3. Problem resolution
15.4. 16.4. Browsing across subnets
15.5. 16.5. Setting up a WINS server
15.6. 16.6. Setting up Browsing in a WORKGROUP
15.7. 16.7. Setting up Browsing in a DOMAIN
15.8. 16.8. Forcing samba to be the master
15.9. 16.9. Making samba the domain master
15.10. 16.10. Note about broadcast addresses
15.11. 16.11. Multiple interfaces
16. 17. Stackable VFS modules
16.1. 17.1. Introduction and configuration
16.2. 17.2. Included modules
16.3. 17.3. VFS modules available elsewhere
17. 18. Group mapping HOWTO
18. 19. Samba performance issues
18.1. 19.1. Comparisons
18.2. 19.2. Socket options
18.3. 19.3. Read size
18.4. 19.4. Max xmit
18.5. 19.5. Log level
18.6. 19.6. Read raw
18.7. 19.7. Write raw
18.8. 19.8. Slow Clients
18.9. 19.9. Slow Logins
18.10. 19.10. Client tuning
19. 20. Creating Group Prolicy Files
19.1. 20.1. Windows '9x
19.2. 20.2. Windows NT 4
19.3. 20.3. Windows 2000/XP
20. 21. Securing Samba
20.1. 21.1. Introduction
20.2. 21.2. Using host based protection
20.3. 21.3. Using interface protection
20.4. 21.4. Using a firewall
20.5. 21.5. Using a IPC$ share deny
20.6. 21.6. Upgrading Samba
22. Unicode/Charsets
22.1. What are charsets and unicode?
22.2. Samba and charsets
21. 23. Portability
21.1. 23.1. HPUX
21.2. 23.2. SCO Unix
21.3. 23.3. DNIX
21.4. 23.4. RedHat Linux Rembrandt-II
21.5. 23.5. AIX
22. 24. Samba and other CIFS clients
22.1. 24.1. Macintosh clients?
22.2. 24.2. OS2 Client
22.3. 24.3. Windows for Workgroups
22.4. 24.4. Windows '95/'98
22.5. 24.5. Windows 2000 Service Pack 2
23. 25. How to compile SAMBA
23.1. 25.1. Access Samba source code via CVS
23.2. 25.2. Accessing the samba sources via rsync and ftp
23.3. 25.3. Building the Binaries
23.4. 25.4. Starting the smbd and nmbd
24. 26. Reporting Bugs
24.1. 26.1. Introduction
24.2. 26.2. General info
24.3. 26.3. Debug levels
24.4. 26.4. Internal errors
24.5. 26.5. Attaching to a running process
24.6. 26.6. Patches
25. 27. The samba checklist
25.1. 27.1. Introduction
25.2. 27.2. Assumptions
25.3. 27.3. Tests
25.4. 27.4. Still having troubles?
3.1. Introduction
3.2. Important Notes About Security
3.2.1. Advantages of SMB Encryption
3.2.2. Advantages of non-encrypted passwords
3.3. The smbpasswd Command
3.4. Plain text
3.5. TDB
3.6. LDAP
3.6.1. Introduction
3.6.2. Introduction
3.6.3. Supported LDAP Servers
3.6.4. Schema and Relationship to the RFC 2307 posixAccount
3.6.5. Configuring Samba with LDAP
3.6.6. Accounts and Groups management
3.6.7. Security and sambaAccount
3.6.8. LDAP specials attributes for sambaAccounts
3.6.9. Example LDIF Entries for a sambaAccount
3.7. MySQL
3.7.1. Building
3.7.2. Creating the database
3.7.3. Configuring
3.7.4. Using plaintext passwords or encrypted password
3.7.5. Getting non-column data from the table
3.8. Passdb XML plugin
3.8.1. Building
3.8.2. Usage

3.1. Introduction


3.2. Important Notes About Security

Other Microsoft operating systems which also exhibit this behavior includes

These versions of MS Windows do not support full domain + security protocols, although they may log onto a domain environment. + Of these Only MS Windows XP Home does NOT support domain logons.

Windows Me
Windows 2000
Windows XP Home

The following versions of MS Windows fully support domain + security protocols.

Windows NT 3.5x
Windows NT 4.0
Windows 2000 Professional
Windows 200x Server/Advanced Server
Windows XP Professional

MS Windows clients will cache the encrypted password alone. + Even when plain text passwords are re-enabled, through the appropriate + registry change, the plain text password is NEVER cached. This means that + in the event that a network connections should become disconnected (broken) + only the cached (encrypted) password will be sent to the resource server + to affect a auto-reconnect. If the resource server does not support encrypted + passwords the auto-reconnect will fail. USE OF ENCRYPTED PASSWORDS + IS STRONGLY ADVISED.


3.2.1. Advantages of SMB Encryption

plain text passwords are not passed across +>Plain text passwords are not passed across the network. Someone using a network sniffer cannot just record passwords going to the SMB server.WinNT doesn't like talking to a server - that isn't using SMB encrypted passwords. It will refuse + that SM not support encrypted passwords. It will refuse to browse the server if the server is also in user level security mode. It will insist on prompting the user for the password on each connection, which is very annoying. The only things you can do to stop this is to use SMB encryption. Encrypted password support allows auto-matic share + (resource) reconnects.


3.2.2. Advantages of non-encrypted passwords

plain text passwords are not kept - on disk. Plain text passwords are not kept + on disk, and are NOT cached in memory. uses same password file as other unix +>Uses same password file as other unix services such as login and ftpyou are probably already using other - services (such as telnet and ftp) which send plain text - passwords over the net, so sending them for SMB isn't - such a big deal.Use of other services (such as telnet and ftp) which + send plain text passwords over the net, so sending them for SMB + isn't such a big deal.


3.3. The smbpasswd Command

yppasswd programs. - It maintains the two 32 byte password fields - in the passdb backend.


3.4. Plain text


3.5. TDB


3.6. LDAP

3.6.1. Introduction


3.6.2. Introduction


3.6.3. Supported LDAP Servers

The LDAP samdb code in 2.2.3 has been developed and tested using the OpenLDAP -2.0 server and client libraries. The same code should be able to work with -Netscape's Directory Server and client SDK. However, due to lack of testing -so far, there are bound to be compile errors and bugs. These should not be -hard to fix. If you are so inclined, please be sure to forward all patches to +>The LDAP samdb code in 2.2.3 (and later) has been developed and tested +using the OpenLDAP 2.0 server and client libraries. +The same code should be able to work with Netscape's Directory Server +and client SDK. However, due to lack of testing so far, there are bound +to be compile errors and bugs. These should not be hard to fix. +If you are so inclined, please be sure to forward all patches to


3.6.4. Schema and Relationship to the RFC 2307 posixAccount


3.6.5. Configuring Samba with LDAP

4. Nomenclature of Server Types
4.1. Stand Alone Server
4.2. Domain Member Server
4.3. Domain Controller
4.3.1. Domain Controller Types
5. User and Share security level (for servers not in a domain)
5. 6. Samba as a NT4 or Win2k Primary Domain ControllerSamba as an NT4 or Win2k Primary Domain Controller
5.1. 6.1. Prerequisite Reading
5.2. 6.2. Background
5.3. 6.3. Configuring the Samba Domain Controller
5.4. Creating Machine Trust Accounts and Joining Clients to the -Domain6.4. Creating Machine Trust Accounts and Joining Clients to the Domain
5.4.1. 6.4.1. Manual Creation of Machine Trust Accounts
5.4.2. 6.4.2. "On-the-Fly" Creation of Machine Trust Accounts
5.4.3. 6.4.3. Joining the Client to the Domain
5.5. 6.5. Common Problems and Errors
5.6. 6.6. System Policies and Profiles
5.7. 6.7. What other help can I get?
5.8. 6.8. Domain Control for Windows 9x/ME
5.8.1. 6.8.1. Configuration Instructions: Network Logons
5.8.2. 6.8.2. Configuration Instructions: Setting up Roaming User Profiles
5.9. 6.9. DOMAIN_CONTROL.txt : Windows NT Domain Control & Samba
6. 7. How to Act as a Backup Domain Controller in a Purely Samba Controlled Domain
6.1. 7.1. Prerequisite Reading
6.2. 7.2. Background
6.3. 7.3. What qualifies a Domain Controller on the network?
6.3.1. 7.3.1. How does a Workstation find its domain controller?
6.3.2. 7.3.2. When is the PDC needed?
6.4. 7.4. Can Samba be a Backup Domain Controller to an NT PDC?
6.5. 7.5. How do I set up a Samba BDC?
6.5.1. 7.5.1. How do I replicate the smbpasswd file?
6.5.2. 7.5.2. Can I do this all with LDAP?
7. 8. Samba as a ADS domain member
7.1. 8.1. Installing the required packages for Debian
7.2. 8.2. Installing the required packages for RedHat
7.3. 8.3. Compile Samba
7.4. 8.4. Setup your /etc/krb5.conf
7.5. 8.5. Create the computer account
7.5.1. 8.5.1. Possible errors
7.6. 8.6. Test your server setup
7.7. 8.7. Testing with smbclient
7.8. 8.8. Notes
8. 9. Samba as a NT4 or Win2k domain member
8.1. 9.1. Joining an NT Domain with Samba 3.0
8.2. 9.2. Samba and Windows 2000 Domains
8.3. 9.3. Why is this better than security = server?

Chapter 4. Nomenclature of Server Types

Adminstrators of Microsoft networks often refer to there being three +different type of servers:

  • Stand Alone Server

  • Domain Member Server

  • Domain Controller

    • Primary Domain Controller

    • Backup Domain Controller

A network administrator who is familiar with these terms and who +wishes to migrate to or use Samba will want to know what these terms mean +within a Samba context.


4.1. Stand Alone Server

The term stand alone server means that the server +will provide local authentication and access control for all resources +that are available from it. In general this means that there will be a +local user database. In more technical terms, it means that resources +on the machine will either be made available in either SHARE mode or in +USER mode. SHARE mode and USER mode security are documented under +discussions regarding "security mode". The smb.conf configuration parameters +that control security mode are: "security = user" and "security = share".

Samba tends to blur the distinction a little in respect of what is +a stand alone server. This is because the authentication database may be +local or on a remote server, even if from the samba protocol perspective +the samba server is NOT a member of a domain security context.

Through the use of PAM (Pluggable Authentication Modules) and nsswitch +(the name service switcher) the source of authentication may reside on +another server. We would be inclined to call this the authentication server. +This means that the samba server may use the local Unix/Linux system +password database (/etc/passwd or /etc/shadow), may use a local smbpasswd +file (/etc/samba/smbpasswd or /usr/local/samba/lib/private/smbpasswd), or +may use an LDAP back end, or even via PAM and Winbind another CIFS/SMB +server for authentication.


4.2. Domain Member Server

This mode of server operation involves the samba machine being made a member +of a domain security context. This means by definition that all user authentication +will be done from a centrally defined authentication regime. The authentication +regime may come from an NT3/4 style (old domain technology) server, or it may be +provided from an Active Directory server (ADS) running on MS Windows 2000 or later. +>/para>

Of course it should be clear that the authentication back end itself could be from any +distributed directory architecture server that is supported by Samba. This can be +LDAP (from OpenLDAP), or Sun's iPlanet, of NetWare Directory Server, etc.

Please refer to the section on Howto configure Samba as a Primary Domain Controller +and for more information regarding how to create a domain machine account for a +domain member server as well as for information regading how to enable the samba +domain member machine to join the domain and to be fully trusted by it.


4.3. Domain Controller

Over the years public perceptions of what Domain Control really is has taken on an +almost mystical nature. Before we branch into a brief overview of what Domain Control +is the following types of controller are known:


4.3.1. Domain Controller Types

Primary Domain Controller
Backup Domain Controller
ADS Domain Controller

The Primary Domain Controller or PDC plays an important role in the MS +Windows NT3 and NT4 Domain Control architecture, but not in the manner that so many +expect. The PDC seeds the Domain Control database (a part of the Windows registry) and +it plays a key part in synchronisation of the domain authentication database.

New to Samba-3.0.0 is the ability to use a back-end file that holds the same type of data as +the NT4 style SAM (Security Account Manager) database (one of the registry files). +The samba-3.0.0 SAM can be specified via the smb.conf file parameter "passwd backend" and +valid options include smbpasswd tdbsam ldapsam nisplussam plugin unixsam. +The smbpasswd, tdbsam and ldapsam options can have a "_nua" suffix to indicate that No Unix +Accounts need to be created. In other words, the Samba SAM will be independant of Unix/Linux +system accounts, provided a uid range is defined from which SAM accounts can be created.

The Backup Domain Controller or BDC plays a key role in servicing network +authentication requests. The BDC is biased to answer logon requests so that on a network segment +that has a BDC and a PDC the BDC will be most likely to service network logon requests. The PDC will +answer network logon requests when the BDC is too busy (high load). A BDC can be promoted to +a PDC. If the PDC is on line at the time that the BDC is promoted to PDC the previous PDC is +automatically demoted to a BDC.

At this time Samba is NOT capable of acting as an ADS Domain Controller.


Chapter 4. User and Share security level (for servers not in a domain)

Chapter 5. User and Share security level (for servers not in a domain)

A SMB server tells the client at startup what "security level" it is running. There are two options "share level" and "user level". Which @@ -3883,14 +4217,14 @@ CLASS="CHAPTER" >Chapter 5. Samba as a NT4 or Win2k Primary Domain ControllerChapter 6. Samba as an NT4 or Win2k Primary Domain Controller

5.1. Prerequisite Reading6.1. Prerequisite Reading

Before you continue reading in this chapter, please make sure @@ -3905,98 +4239,42 @@ CLASS="FILENAME" >smb.conf(5) -manpage and the Encryption chapter -of this HOWTO Collection.


5.2. Background6.2. Background

Author's Note: This document is a combination -of David Bannon's "Samba 2.2 PDC HOWTO" and "Samba NT Domain FAQ". -Both documents are superseded by this one.

Versions of Samba prior to release 2.2 had marginal capabilities to act -as a Windows NT 4.0 Primary Domain Controller - -(PDC). With Samba 2.2.0, we are proud to announce official support for -Windows NT 4.0-style domain logons from Windows NT 4.0 and Windows -2000 clients. This article outlines the steps -necessary for configuring Samba as a PDC. It is necessary to have a -working Samba server prior to implementing the PDC functionality. If -you have not followed the steps outlined in UNIX_INSTALL.html, please make sure -that your server is configured correctly before proceeding. Another -good resource in the smb.conf(5) man -page. The following functionality should work in 2.2:

This article outlines the steps necessary for configuring Samba as a PDC. +It is necessary to have a working Samba server prior to implementing the +PDC functionality.

  • domain logons for Windows NT 4.0/2000 clients. +> domain logons for Windows NT 4.0 / 200x / XP Professional clients.

  • placing a Windows 9x client in user level security +> placing Windows 9x / Me clients in user level security

  • retrieving a list of users and groups from a Samba PDC to - Windows 9x/NT/2000 clients + Windows 9x / Me / NT / 200x / XP Professional clients

  • roving (roaming) user profiles +> roaming user profiles

The following pieces of functionality are not included in the 2.2 release:

The following functionalities are new to the Samba 3.0 release:

  • SAM replication with Windows NT 4.0 Domain Controllers - (i.e. a Samba PDC and a Windows NT BDC or vice versa) +> Adding users via the User Manager for Domains

The following functionalities are NOT provided by Samba 3.0:

  • Adding users via the User Manager for Domains +> SAM replication with Windows NT 4.0 Domain Controllers + (i.e. a Samba PDC and a Windows NT BDC or vice versa)

Please note that Windows 9x clients are not true members of a domain +>Please note that Windows 9x / Me / XP Home clients are not true members of a domain for reasons outlined in this article. Therefore the protocol for support Windows 9x-style domain logons is completely different -from NT4 domain logons and has been officially supported for some +from NT4 / Win2k type domain logons and has been officially supported for some time.

Implementing a Samba PDC can basically be divided into 2 broad +>MS Windows XP Home edition is NOT able to join a domain and does not permit +the use of domain logons.

Implementing a Samba PDC can basically be divided into 3 broad steps.

  • Creating machine trust accounts and joining clients - to the domain +> Creating machine trust accounts and joining clients to the domain +

  • Adding and managing domain user accounts

  • There are other minor details such as user profiles, system policies, etc... However, these are not necessarily specific to a Samba PDC as much as they are related to Windows NT networking -concepts. They will be mentioned only briefly here.


    5.3. Configuring the Samba Domain Controller6.3. Configuring the Samba Domain Controller

    The first step in creating a working Samba PDC is to -understand the parameters necessary in smb.conf. I will not -attempt to re-explain the parameters here as they are more that -adequately covered in the smb.conf man page. For convenience, the parameters have been -linked with the actual smb.conf description.

    .

    Here is an example logon path = \\%N\profiles\%u - ; where is a user's home directory and where should it - ; be mounted at? + ; where is a user's home directory and where should it be mounted at?

    As Samba 2.2 does not offer a complete implementation of group mapping +>Samba 3.0 offers a complete implementation of group mapping between Windows NT groups and Unix groups (this is really quite -complicated to explain in a short space), you should refer to the -domain admin -group smb.conf parameter for information of creating "Domain -Admins" style accounts.


    5.4. Creating Machine Trust Accounts and Joining Clients to the -Domain6.4. Creating Machine Trust Accounts and Joining Clients to the Domain

    A machine trust account is a Samba account that is used to @@ -4289,14 +4576,127 @@ Account."

    A Windows PDC stores each machine trust account in the Windows -Registry. A Samba PDC, however, stores each machine trust account -in two parts, as follows: +Registry. A Samba-3 PDC also has to stoe machine trust account information +in a suitable back-end data store. With Samba-3 there can be multiple back-ends +for this including:

    • smbpaswd - the plain ascii file stored used by + earlier versions of Samba. This file configuration option requires + a Unix/Linux system account for EVERY entry (ie: both for user and for + machine accounts). This file will be located in the private + directory (default is /usr/local/samba/lib/private or on linux /etc/samba). +

    • smbpasswd_nua - This file is independant of the + system wide user accounts. The use of this back-end option requires + specification of the "non unix account range" option also. It is called + smbpasswd and will be located in the private directory. +

    • tdbsam - a binary database backend that will be + stored in the private directory in a file called + passwd.tdb. The key benefit of this binary format + file is that it can store binary objects that can not be accomodated + in the traditional plain text smbpasswd file. +

    • tdbsam_nua like the smbpasswd_nua option above, this + file allows the creation of arbitrary user and machine accounts without + requiring that account to be added to the system (/etc/passwd) file. It + too requires the specification of the "non unix account range" option + in the [globals] section of the smb.conf file. +

    • ldapsam - An LDAP based back-end. Permits the + LDAP server to be specified. eg: ldap://localhost or ldap://frodo.murphy.com +

    • ldapsam_nua - LDAP based back-end with no unix + account requirement, like smbpasswd_nua and tdbsam_nua above. +

    A Samba PDC, however, stores each machine trust account in two parts, +as follows:


    5.4.1. Manual Creation of Machine Trust Accounts6.4.1. Manual Creation of Machine Trust Accounts

    The first step in manually creating a machine trust account is to @@ -4519,8 +4919,8 @@ CLASS="SECT2" >


    5.4.2. "On-the-Fly" Creation of Machine Trust Accounts6.4.2. "On-the-Fly" Creation of Machine Trust Accounts

    The second (and recommended) way of creating machine trust accounts is @@ -4556,8 +4956,8 @@ CLASS="SECT2" >


    5.4.3. Joining the Client to the Domain6.4.3. Joining the Client to the Domain

    The procedure for joining a client to the domain varies with the @@ -4624,8 +5024,8 @@ CLASS="SECT1" >


    5.5. Common Problems and Errors6.5. Common Problems and Errors


    5.6. System Policies and Profiles6.6. System Policies and Profiles

    Much of the information necessary to implement System Policies and @@ -5007,8 +5407,8 @@ CLASS="SECT1" >


    5.7. What other help can I get?6.7. What other help can I get?

    There are many sources of information available in the form @@ -5427,8 +5827,8 @@ CLASS="SECT1" >


    5.8. Domain Control for Windows 9x/ME6.8. Domain Control for Windows 9x/ME


    5.8.1. Configuration Instructions: Network Logons6.8.1. Configuration Instructions: Network Logons

    The main difference between a PDC and a Windows 9x logon @@ -5667,8 +6067,8 @@ CLASS="SECT2" >


    5.8.2. Configuration Instructions: Setting up Roaming User Profiles6.8.2. Configuration Instructions: Setting up Roaming User Profiles


    5.8.2.1. Windows NT Configuration6.8.2.1. Windows NT Configuration

    To support WinNT clients, in the [global] section of smb.conf set the @@ -5771,8 +6171,8 @@ CLASS="SECT3" >


    5.8.2.2. Windows 9X Configuration6.8.2.2. Windows 9X Configuration

    To support Win9X clients, you must use the "logon home" parameter. Samba has @@ -5802,8 +6202,8 @@ CLASS="SECT3" >


    5.8.2.3. Win9X and WinNT Configuration6.8.2.3. Win9X and WinNT Configuration

    You can support profiles for both Win9X and WinNT clients by setting both the @@ -5847,8 +6247,8 @@ CLASS="SECT3" >


    5.8.2.4. Windows 9X Profile Setup6.8.2.4. Windows 9X Profile Setup

    When a user first logs in on Windows 9X, the file user.DAT is created, @@ -6007,8 +6407,8 @@ CLASS="SECT3" >


    5.8.2.5. Windows NT Workstation 4.06.8.2.5. Windows NT Workstation 4.0

    When a user first logs in to a Windows NT Workstation, the profile @@ -6121,8 +6521,8 @@ CLASS="SECT3" >


    5.8.2.6. Windows NT Server6.8.2.6. Windows NT Server

    There is nothing to stop you specifying any path that you like for the @@ -6135,8 +6535,8 @@ CLASS="SECT3" >


    5.8.2.7. Sharing Profiles between W95 and NT Workstation 4.06.8.2.7. Sharing Profiles between W95 and NT Workstation 4.0


    5.9. DOMAIN_CONTROL.txt : Windows NT Domain Control & Samba6.9. DOMAIN_CONTROL.txt : Windows NT Domain Control & Samba

    Chapter 6. How to Act as a Backup Domain Controller in a Purely Samba Controlled DomainChapter 7. How to Act as a Backup Domain Controller in a Purely Samba Controlled Domain

    6.1. Prerequisite Reading7.1. Prerequisite Reading

    Before you continue reading in this chapter, please make sure @@ -6390,8 +6790,8 @@ CLASS="SECT1" >


    6.2. Background7.2. Background

    What is a Domain Controller? It is a machine that is able to answer @@ -6435,8 +6835,8 @@ CLASS="SECT1" >


    6.3. What qualifies a Domain Controller on the network?7.3. What qualifies a Domain Controller on the network?

    Every machine that is a Domain Controller for the domain SAMBA has to @@ -6452,8 +6852,8 @@ CLASS="SECT2" >


    6.3.1. How does a Workstation find its domain controller?7.3.1. How does a Workstation find its domain controller?

    A NT workstation in the domain SAMBA that wants a local user to be @@ -6471,8 +6871,8 @@ CLASS="SECT2" >


    6.3.2. When is the PDC needed?7.3.2. When is the PDC needed?

    Whenever a user wants to change his password, this has to be done on @@ -6487,8 +6887,8 @@ CLASS="SECT1" >


    6.4. Can Samba be a Backup Domain Controller to an NT PDC?7.4. Can Samba be a Backup Domain Controller to an NT PDC?

    With version 2.2, no. The native NT SAM replication protocols have @@ -6510,8 +6910,8 @@ CLASS="SECT1" >


    6.5. How do I set up a Samba BDC?7.5. How do I set up a Samba BDC?

    Several things have to be done:


    6.5.1. How do I replicate the smbpasswd file?7.5.1. How do I replicate the smbpasswd file?

    Replication of the smbpasswd file is sensitive. It has to be done @@ -6598,8 +6998,8 @@ CLASS="SECT2" >


    6.5.2. Can I do this all with LDAP?7.5.2. Can I do this all with LDAP?

    The simple answer is YES. Samba's pdb_ldap code supports @@ -6616,7 +7016,7 @@ CLASS="CHAPTER" >Chapter 7. Samba as a ADS domain memberChapter 8. Samba as a ADS domain member

    This is a rough guide to setting up Samba 3.0 with kerberos authentication against a Windows2000 KDC.


    7.1. Installing the required packages for Debian8.1. Installing the required packages for Debian

    On Debian you need to install the following packages:


    7.2. Installing the required packages for RedHat8.2. Installing the required packages for RedHat

    On RedHat this means you should have at least:


    7.3. Compile Samba8.3. Compile Samba

    If your kerberos libraries are in a non-standard location then @@ -6779,8 +7179,8 @@ CLASS="SECT1" >


    7.4. Setup your /etc/krb5.conf8.4. Setup your /etc/krb5.conf

    The minimal configuration for krb5.conf is:


    7.5. Create the computer account8.5. Create the computer account

    As a user that has write permission on the Samba private directory @@ -6833,8 +7233,8 @@ CLASS="SECT2" >


    7.5.1. Possible errors8.5.1. Possible errors


    7.6. Test your server setup8.6. Test your server setup

    On a Windows 2000 client try


    7.7. Testing with smbclient8.7. Testing with smbclient

    On your Samba server try to login to a Win2000 server or your Samba @@ -6891,8 +7291,8 @@ CLASS="SECT1" >


    7.8. Notes8.8. Notes

    You must change administrator password at least once after DC install, @@ -6908,14 +7308,14 @@ CLASS="CHAPTER" >Chapter 8. Samba as a NT4 or Win2k domain memberChapter 9. Samba as a NT4 or Win2k domain member

    8.1. Joining an NT Domain with Samba 3.09.1. Joining an NT Domain with Samba 3.0

    Assume you have a Samba 3.0 server with a NetBIOS name of @@ -7102,8 +7502,8 @@ CLASS="SECT1" >


    8.2. Samba and Windows 2000 Domains9.2. Samba and Windows 2000 Domains

    Many people have asked regarding the state of Samba's ability to participate in @@ -7116,8 +7516,8 @@ CLASS="SECT1" >


    8.3. Why is this better than security = server?9.3. Why is this better than security = server?

    Currently, domain security in Samba doesn't free you from @@ -7210,7 +7610,7 @@ CLASS="TITLE" >

    Introduction

    Table of Contents
    9. 10. Integrating MS Windows networks with Samba
    9.1. 10.1. Agenda
    9.2. 10.2. Name Resolution in a pure Unix/Linux world
    9.2.1. 10.2.1. /etc/hosts
    9.2.2. 10.2.2. /etc/resolv.conf
    9.2.3. 10.2.3. /etc/host.conf
    9.2.4. 10.2.4. /etc/nsswitch.conf
    9.3. 10.3. Name resolution as used within MS Windows networking
    9.3.1. 10.3.1. The NetBIOS Name Cache
    9.3.2. 10.3.2. The LMHOSTS file
    9.3.3. 10.3.3. HOSTS file
    9.3.4. 10.3.4. DNS Lookup
    9.3.5. 10.3.5. WINS Lookup
    9.4. 10.4. How browsing functions and how to deploy stable and dependable browsing using Samba
    9.5. 10.5. MS Windows security options and how to configure Samba for seemless integration
    9.5.1. 10.5.1. Use MS Windows NT as an authentication server
    9.5.2. 10.5.2. Make Samba a member of an MS Windows NT security domain
    9.5.3. 10.5.3. Configure Samba as an authentication server
    9.6. 10.6. Conclusions
    10. 11. UNIX Permission Bits and Windows NT Access Control Lists
    10.1. 11.1. Viewing and changing UNIX permissions using the NT security dialogs
    10.2. 11.2. How to view file security on a Samba share
    10.3. 11.3. Viewing file ownership
    10.4. 11.4. Viewing file or directory permissions
    10.4.1. 11.4.1. File Permissions
    10.4.2. 11.4.2. Directory Permissions
    10.5. 11.5. Modifying file or directory permissions
    10.6. 11.6. Interaction with the standard Samba create mask parameters
    10.7. 11.7. Interaction with the standard Samba file attribute mapping
    11. 12. Configuring PAM for distributed but centrally managed authentication
    11.1. 12.1. Samba and PAM
    11.2. 12.2. Distributed Authentication
    11.3. 12.3. PAM Configuration in smb.conf
    12. 13. Hosting a Microsoft Distributed File System tree on Samba
    12.1. 13.1. Instructions
    12.1.1. 13.1.1. Notes
    13. 14. Printing Support
    13.1. 14.1. Introduction
    13.2. 14.2. Configuration
    13.2.1. 14.2.1. Creating [print$]
    13.2.2. 14.2.2. Setting Drivers for Existing Printers
    13.2.3. 14.2.3. Support a large number of printers
    13.2.4. 14.2.4. Adding New Printers via the Windows NT APW
    13.2.5. 14.2.5. Samba and Printer Ports
    13.3. 14.3. The Imprints Toolset
    13.3.1. 14.3.1. What is Imprints?
    13.3.2. 14.3.2. Creating Printer Driver Packages
    13.3.3. 14.3.3. The Imprints server
    13.3.4. 14.3.4. The Installation Client
    13.4. 14.4. Diagnosis
    13.4.1. 14.4.1. Introduction
    13.4.2. 14.4.2. Debugging printer problems
    13.4.3. 14.4.3. What printers do I have?
    13.4.4. 14.4.4. Setting up printcap and print servers
    13.4.5. 14.4.5. Job sent, no output
    13.4.6. 14.4.6. Job sent, strange output
    13.4.7. 14.4.7. Raw PostScript printed
    13.4.8. 14.4.8. Advanced Printing
    13.4.9. 14.4.9. Real debugging
    14. 15. Unified Logons between Windows NT and UNIX using Winbind
    14.1. 15.1. Abstract
    14.2. 15.2. Introduction
    14.3. 15.3. What Winbind Provides
    14.3.1. 15.3.1. Target Uses
    14.4. 15.4. How Winbind Works
    14.4.1. 15.4.1. Microsoft Remote Procedure Calls
    14.4.2. 15.4.2. Microsoft Active Directory Services
    14.4.3. 15.4.3. Name Service Switch
    14.4.4. 15.4.4. Pluggable Authentication Modules
    14.4.5. 15.4.5. User and Group ID Allocation
    14.4.6. 15.4.6. Result Caching
    14.5. 15.5. Installation and Configuration
    14.5.1. 15.5.1. Introduction
    14.5.2. 15.5.2. Requirements
    14.5.3. 15.5.3. Testing Things Out
    14.6. 15.6. Limitations
    14.7. 15.7. Conclusion
    15. 16. Improved browsing in samba
    15.1. 16.1. Overview of browsing
    15.2. 16.2. Browsing support in samba
    15.3. 16.3. Problem resolution
    15.4. 16.4. Browsing across subnets
    15.4.1. 16.4.1. How does cross subnet browsing work ?
    15.5. 16.5. Setting up a WINS server
    15.6. 16.6. Setting up Browsing in a WORKGROUP
    15.7. 16.7. Setting up Browsing in a DOMAIN
    15.8. 16.8. Forcing samba to be the master
    15.9. 16.9. Making samba the domain master
    15.10. 16.10. Note about broadcast addresses
    15.11. 16.11. Multiple interfaces
    16. 17. Stackable VFS modules
    16.1. 17.1. Introduction and configuration
    16.2. 17.2. Included modules
    16.2.1. 17.2.1. audit
    16.2.2. 17.2.2. recycle
    16.2.3. 17.2.3. netatalk
    16.3. 17.3. VFS modules available elsewhere
    16.3.1. 17.3.1. DatabaseFS
    16.3.2. 17.3.2. vscan
    17. 18. Group mapping HOWTO
    18. 19. Samba performance issues
    18.1. 19.1. Comparisons
    18.2. 19.2. Socket options
    18.3. 19.3. Read size
    18.4. 19.4. Max xmit
    18.5. 19.5. Log level
    18.6. 19.6. Read raw
    18.7. 19.7. Write raw
    18.8. 19.8. Slow Clients
    18.9. 19.9. Slow Logins
    18.10. 19.10. Client tuning
    19. 20. Creating Group Prolicy Files
    19.1. 20.1. Windows '9x
    19.2. 20.2. Windows NT 4
    19.2.1. 20.2.1. Side bar Notes
    19.2.2. 20.2.2. Mandatory profiles
    19.2.3. 20.2.3. moveuser.exe
    19.2.4. 20.2.4. Get SID
    19.3. 20.3. Windows 2000/XP
    20. 21. Securing Samba
    20.1. 21.1. Introduction
    20.2. 21.2. Using host based protection
    20.3. 21.3. Using interface protection
    20.4. 21.4. Using a firewall
    20.5. 21.5. Using a IPC$ share deny
    20.6. 21.6. Upgrading Samba
    22. Unicode/Charsets
    22.1. What are charsets and unicode?
    22.2. Samba and charsets
    Chapter 9. Integrating MS Windows networks with SambaChapter 10. Integrating MS Windows networks with Samba

    9.1. Agenda10.1. Agenda

    To identify the key functional mechanisms of MS Windows networking @@ -8059,8 +8478,8 @@ CLASS="SECT1" >


    9.2. Name Resolution in a pure Unix/Linux world10.2. Name Resolution in a pure Unix/Linux world

    The key configuration files covered in this section are:


    9.2.1. 10.2.1. /etc/hosts

    9.2.2. 10.2.2. /etc/resolv.conf

    9.2.3. 10.2.3. /etc/host.conf

    9.2.4. 10.2.4. /etc/nsswitch.conf

    9.3. Name resolution as used within MS Windows networking10.3. Name resolution as used within MS Windows networking

    MS Windows networking is predicated about the name each machine @@ -8403,8 +8822,8 @@ CLASS="SECT2" >


    9.3.1. The NetBIOS Name Cache10.3.1. The NetBIOS Name Cache

    All MS Windows machines employ an in memory buffer in which is @@ -8430,8 +8849,8 @@ CLASS="SECT2" >


    9.3.2. The LMHOSTS file10.3.2. The LMHOSTS file

    This file is usually located in MS Windows NT 4.0 or @@ -8533,8 +8952,8 @@ CLASS="SECT2" >


    9.3.3. HOSTS file10.3.3. HOSTS file

    This file is usually located in MS Windows NT 4.0 or 2000 in @@ -8555,8 +8974,8 @@ CLASS="SECT2" >


    9.3.4. DNS Lookup10.3.4. DNS Lookup

    This capability is configured in the TCP/IP setup area in the network @@ -8575,8 +8994,8 @@ CLASS="SECT2" >


    9.3.5. WINS Lookup10.3.5. WINS Lookup

    A WINS (Windows Internet Name Server) service is the equivaent of the @@ -8616,8 +9035,8 @@ CLASS="SECT1" >


    9.4. How browsing functions and how to deploy stable and +NAME="AEN1645" +>10.4. How browsing functions and how to deploy stable and dependable browsing using Samba


    9.5. MS Windows security options and how to configure +NAME="AEN1655" +>10.5. MS Windows security options and how to configure Samba for seemless integration


    9.5.1. Use MS Windows NT as an authentication server10.5.1. Use MS Windows NT as an authentication server

    This method involves the additions of the following parameters @@ -8846,8 +9265,8 @@ CLASS="SECT2" >


    9.5.2. Make Samba a member of an MS Windows NT security domain10.5.2. Make Samba a member of an MS Windows NT security domain

    This method involves additon of the following paramters in the smb.conf file:


    9.5.3. Configure Samba as an authentication server10.5.3. Configure Samba as an authentication server

    This mode of authentication demands that there be on the @@ -8946,8 +9365,8 @@ CLASS="SECT3" >


    9.5.3.1. Users10.5.3.1. Users

    A user account that may provide a home directory should be @@ -8969,8 +9388,8 @@ CLASS="SECT3" >


    9.5.3.2. MS Windows NT Machine Accounts10.5.3.2. MS Windows NT Machine Accounts

    These are required only when Samba is used as a domain @@ -8990,8 +9409,8 @@ CLASS="SECT1" >


    9.6. Conclusions10.6. Conclusions

    Samba provides a flexible means to operate as...

    Chapter 10. UNIX Permission Bits and Windows NT Access Control Lists

    Chapter 11. UNIX Permission Bits and Windows NT Access Control Lists

    10.1. Viewing and changing UNIX permissions using the NT +NAME="AEN1746" +>11.1. Viewing and changing UNIX permissions using the NT security dialogs


    10.2. How to view file security on a Samba share11.2. How to view file security on a Samba share

    From an NT 4.0 client, single-click with the right @@ -9123,8 +9542,8 @@ CLASS="SECT1" >


    10.3. Viewing file ownership11.3. Viewing file ownership

    Clicking on the


    10.4. Viewing file or directory permissions11.4. Viewing file or directory permissions

    The third button is the


    10.4.1. File Permissions11.4.1. File Permissions

    The standard UNIX user/group/world triple and @@ -9325,8 +9744,8 @@ CLASS="SECT2" >


    10.4.2. Directory Permissions11.4.2. Directory Permissions

    Directories on an NT NTFS file system have two @@ -9357,8 +9776,8 @@ CLASS="SECT1" >


    10.5. Modifying file or directory permissions11.5. Modifying file or directory permissions

    Modifying file and directory permissions is as simple @@ -9453,8 +9872,8 @@ CLASS="SECT1" >


    10.6. Interaction with the standard Samba create mask +NAME="AEN1839" +>11.6. Interaction with the standard Samba create mask parameters


    10.7. Interaction with the standard Samba file attribute +NAME="AEN1903" +>11.7. Interaction with the standard Samba file attribute mapping

    Chapter 11. Configuring PAM for distributed but centrally +>Chapter 12. Configuring PAM for distributed but centrally managed authentication

    11.1. Samba and PAM12.1. Samba and PAM

    A number of Unix systems (eg: Sun Solaris), as well as the @@ -9944,8 +10363,8 @@ CLASS="SECT1" >


    11.2. Distributed Authentication12.2. Distributed Authentication

    The astute administrator will realize from this that the @@ -9977,8 +10396,8 @@ CLASS="SECT1" >


    11.3. PAM Configuration in smb.conf12.3. PAM Configuration in smb.conf

    There is an option in smb.conf called Chapter 12. Hosting a Microsoft Distributed File System tree on SambaChapter 13. Hosting a Microsoft Distributed File System tree on Samba

    12.1. Instructions13.1. Instructions

    The Distributed File System (or Dfs) provides a means of @@ -10157,8 +10576,8 @@ CLASS="SECT2" >


    12.1.1. Notes13.1.1. Notes

    Chapter 13. Printing SupportChapter 14. Printing Support

    13.1. Introduction14.1. Introduction

    Beginning with the 2.2.0 release, Samba supports @@ -10281,8 +10700,8 @@ CLASS="SECT1" >


    13.2. Configuration14.2. Configuration


    13.2.1. Creating [print$]14.2.1. Creating [print$]

    In order to support the uploading of printer driver @@ -10560,8 +10979,8 @@ CLASS="SECT2" >


    13.2.2. Setting Drivers for Existing Printers14.2.2. Setting Drivers for Existing Printers

    The initial listing of printers in the Samba host's @@ -10632,8 +11051,8 @@ CLASS="SECT2" >


    13.2.3. Support a large number of printers14.2.3. Support a large number of printers

    One issue that has arisen during the development @@ -10698,8 +11117,8 @@ CLASS="SECT2" >


    13.2.4. Adding New Printers via the Windows NT APW14.2.4. Adding New Printers via the Windows NT APW

    By default, Samba offers all printer shares defined in


    13.2.5. Samba and Printer Ports14.2.5. Samba and Printer Ports

    Windows NT/2000 print servers associate a port with each printer. These normally @@ -10888,8 +11307,8 @@ CLASS="SECT1" >


    13.3. The Imprints Toolset14.3. The Imprints Toolset

    The Imprints tool set provides a UNIX equivalent of the @@ -10906,8 +11325,8 @@ CLASS="SECT2" >


    13.3.1. What is Imprints?14.3.1. What is Imprints?

    Imprints is a collection of tools for supporting the goals @@ -10938,8 +11357,8 @@ CLASS="SECT2" >


    13.3.2. Creating Printer Driver Packages14.3.2. Creating Printer Driver Packages

    The process of creating printer driver packages is beyond @@ -10954,8 +11373,8 @@ CLASS="SECT2" >


    13.3.3. The Imprints server14.3.3. The Imprints server

    The Imprints server is really a database server that @@ -10978,8 +11397,8 @@ CLASS="SECT2" >


    13.3.4. The Installation Client14.3.4. The Installation Client

    More information regarding the Imprints installation client @@ -11072,16 +11491,16 @@ CLASS="SECT1" >


    13.4. Diagnosis14.4. Diagnosis

    13.4.1. Introduction14.4.1. Introduction

    This is a short description of how to debug printing problems with @@ -11155,8 +11574,8 @@ CLASS="SECT2" >


    13.4.2. Debugging printer problems14.4.2. Debugging printer problems

    One way to debug printing problems is to start by replacing these @@ -11212,8 +11631,8 @@ CLASS="SECT2" >


    13.4.3. What printers do I have?14.4.3. What printers do I have?

    You can use the 'testprns' program to check to see if the printer @@ -11241,8 +11660,8 @@ CLASS="SECT2" >


    13.4.4. Setting up printcap and print servers14.4.4. Setting up printcap and print servers

    You may need to set up some printcaps for your Samba system to use. @@ -11325,8 +11744,8 @@ CLASS="SECT2" >


    13.4.5. Job sent, no output14.4.5. Job sent, no output

    This is the most frustrating part of printing. You may have sent the @@ -11370,8 +11789,8 @@ CLASS="SECT2" >


    13.4.6. Job sent, strange output14.4.6. Job sent, strange output

    Once you have the job printing, you can then start worrying about @@ -11416,8 +11835,8 @@ CLASS="SECT2" >


    13.4.7. Raw PostScript printed14.4.7. Raw PostScript printed

    This is a problem that is usually caused by either the print spooling @@ -11431,8 +11850,8 @@ CLASS="SECT2" >


    13.4.8. Advanced Printing14.4.8. Advanced Printing

    Note that you can do some pretty magic things by using your @@ -11447,8 +11866,8 @@ CLASS="SECT2" >


    13.4.9. Real debugging14.4.9. Real debugging

    If the above debug tips don't help, then maybe you need to bring in @@ -11462,14 +11881,14 @@ CLASS="CHAPTER" >Chapter 14. Unified Logons between Windows NT and UNIX using WinbindChapter 15. Unified Logons between Windows NT and UNIX using Winbind

    14.1. Abstract15.1. Abstract

    Integration of UNIX and Microsoft Windows NT through @@ -11495,8 +11914,8 @@ CLASS="SECT1" >


    14.2. Introduction15.2. Introduction

    It is well known that UNIX and Microsoft Windows NT have @@ -11549,8 +11968,8 @@ CLASS="SECT1" >


    14.3. What Winbind Provides15.3. What Winbind Provides

    Winbind unifies UNIX and Windows NT account management by @@ -11591,8 +12010,8 @@ CLASS="SECT2" >


    14.3.1. Target Uses15.3.1. Target Uses

    Winbind is targeted at organizations that have an @@ -11615,8 +12034,8 @@ CLASS="SECT1" >


    14.4. How Winbind Works15.4. How Winbind Works

    The winbind system is designed around a client/server @@ -11635,8 +12054,8 @@ CLASS="SECT2" >


    14.4.1. Microsoft Remote Procedure Calls15.4.1. Microsoft Remote Procedure Calls

    Over the last few years, efforts have been underway @@ -11661,8 +12080,8 @@ CLASS="SECT2" >


    14.4.2. Microsoft Active Directory Services15.4.2. Microsoft Active Directory Services

    Since late 2001, Samba has gained the ability to @@ -11680,8 +12099,8 @@ CLASS="SECT2" >


    14.4.3. Name Service Switch15.4.3. Name Service Switch

    The Name Service Switch, or NSS, is a feature that is @@ -11760,8 +12179,8 @@ CLASS="SECT2" >


    14.4.4. Pluggable Authentication Modules15.4.4. Pluggable Authentication Modules

    Pluggable Authentication Modules, also known as PAM, @@ -11809,8 +12228,8 @@ CLASS="SECT2" >


    14.4.5. User and Group ID Allocation15.4.5. User and Group ID Allocation

    When a user or group is created under Windows NT @@ -11835,8 +12254,8 @@ CLASS="SECT2" >


    14.4.6. Result Caching15.4.6. Result Caching

    An active system can generate a lot of user and group @@ -11858,8 +12277,8 @@ CLASS="SECT1" >


    14.5. Installation and Configuration15.5. Installation and Configuration

    Many thanks to John Trostel This HOWTO describes how to get winbind services up and running to control access and authenticate users on your Linux box using the winbind services which come with SAMBA 2.2.2.

    There is also some Solaris specific information in -docs/textdocs/Solaris-Winbind-HOWTO.txt. -Future revisions of this document will incorporate that -information.


    14.5.1. Introduction15.5.1. Introduction

    This HOWTO describes the procedures used to get winbind up and @@ -11944,8 +12355,8 @@ CLASS="SECT2" >


    14.5.2. Requirements15.5.2. Requirements

    If you have a samba configuration file that you are currently @@ -12014,8 +12425,8 @@ CLASS="SECT2" >


    14.5.3. Testing Things Out15.5.3. Testing Things Out

    Before starting, it is probably best to kill off all the SAMBA @@ -12059,8 +12470,8 @@ CLASS="SECT3" >


    14.5.3.1. Configure and compile SAMBA15.5.3.1. Configure and compile SAMBA

    The configuration and compilation of SAMBA is pretty straightforward. @@ -12125,8 +12536,8 @@ CLASS="SECT3" >


    14.5.3.2. Configure 15.5.3.2. Configure nsswitch.conf and the @@ -12230,8 +12641,8 @@ CLASS="SECT3" >

    14.5.3.3. Configure smb.conf15.5.3.3. Configure smb.conf

    Several parameters are needed in the smb.conf file to control @@ -12305,8 +12716,8 @@ CLASS="SECT3" >


    14.5.3.4. Join the SAMBA server to the PDC domain15.5.3.4. Join the SAMBA server to the PDC domain

    Enter the following command to make the SAMBA server join the @@ -12343,8 +12754,8 @@ CLASS="SECT3" >


    14.5.3.5. Start up the winbindd daemon and test it!15.5.3.5. Start up the winbindd daemon and test it!

    Eventually, you will want to modify your smb startup script to @@ -12361,6 +12772,21 @@ CLASS="COMMAND" >/usr/local/samba/bin/winbindd

    Winbindd can now also run in 'dual daemon mode'. This will make it +run as 2 processes. The first will answer all requests from the cache, +thus making responses to clients faster. The other will +update the cache for the query that the first has just responded. +Advantage of this is that responses stay accurate and are faster. +You can enable dual daemon mode by adding '-B' to the commandline:

    root# /usr/local/samba/bin/winbindd -B

    I'm always paranoid and like to make sure the daemon is really running...


    14.5.3.6. Fix the init.d startup scripts15.5.3.6. Fix the init.d startup scripts

    14.5.3.6.1. Linux15.5.3.6.1. Linux

    The

    If you would like to run winbindd in dual daemon mode, replace +the line +

            daemon /usr/local/samba/bin/winbindd
    + +in the example above with: + +
            daemon /usr/local/samba/bin/winbindd -B
    .

    The 'stop' function has a corresponding entry to shut down the -services and look s like this:


    14.5.3.6.2. Solaris15.5.3.6.2. Solaris

    On solaris, you need to modify the @@ -12633,14 +13073,27 @@ echo Starting Winbind Daemon ;; esac

    Again, if you would like to run samba in dual daemon mode, replace +

       /usr/local/samba/bin/winbindd
    + +in the script above with: + +
       /usr/local/samba/bin/winbindd -B


    14.5.3.6.3. Restarting15.5.3.6.3. Restarting

    If you restart the


    14.5.3.7. Configure Winbind and PAM15.5.3.7. Configure Winbind and PAM

    If you have made it this far, you know that winbindd and samba are working @@ -12721,8 +13174,8 @@ CLASS="SECT4" >


    14.5.3.7.1. Linux/FreeBSD-specific PAM configuration15.5.3.7.1. Linux/FreeBSD-specific PAM configuration

    The


    14.5.3.7.2. Solaris-specific configuration15.5.3.7.2. Solaris-specific configuration

    The /etc/pam.conf needs to be changed. I changed this file so that my Domain @@ -12937,8 +13390,8 @@ CLASS="SECT1" >


    14.6. Limitations15.6. Limitations

    Winbind has a number of limitations in its current @@ -12979,8 +13432,8 @@ CLASS="SECT1" >


    14.7. Conclusion15.7. Conclusion

    The winbind system, through the use of the Name Service @@ -12997,14 +13450,14 @@ CLASS="CHAPTER" >Chapter 15. Improved browsing in samba

    Chapter 16. Improved browsing in samba

    15.1. Overview of browsing16.1. Overview of browsing

    SMB networking provides a mechanism by which clients can access a list @@ -13032,8 +13485,8 @@ CLASS="SECT1" >


    15.2. Browsing support in samba16.2. Browsing support in samba

    Samba facilitates browsing. The browsing is supported by nmbd @@ -13075,8 +13528,8 @@ CLASS="SECT1" >


    15.3. Problem resolution16.3. Problem resolution

    If something doesn't work then hopefully the log.nmb file will help @@ -13122,8 +13575,8 @@ CLASS="SECT1" >


    15.4. Browsing across subnets16.4. Browsing across subnets

    Since the release of Samba 1.9.17(alpha1) Samba has been @@ -13153,8 +13606,8 @@ CLASS="SECT2" >


    15.4.1. How does cross subnet browsing work ?16.4.1. How does cross subnet browsing work ?

    Cross subnet browsing is a complicated dance, containing multiple @@ -13364,8 +13817,8 @@ CLASS="SECT1" >


    15.5. Setting up a WINS server16.5. Setting up a WINS server

    Either a Samba machine or a Windows NT Server machine may be set up @@ -13447,8 +13900,8 @@ CLASS="SECT1" >


    15.6. Setting up Browsing in a WORKGROUP16.6. Setting up Browsing in a WORKGROUP

    To set up cross subnet browsing on a network containing machines @@ -13532,8 +13985,8 @@ CLASS="SECT1" >


    15.7. Setting up Browsing in a DOMAIN16.7. Setting up Browsing in a DOMAIN

    If you are adding Samba servers to a Windows NT Domain then @@ -13583,8 +14036,8 @@ CLASS="SECT1" >


    15.8. Forcing samba to be the master16.8. Forcing samba to be the master

    Who becomes the "master browser" is determined by an election process @@ -13631,8 +14084,8 @@ CLASS="SECT1" >


    15.9. Making samba the domain master16.9. Making samba the domain master

    The domain master is responsible for collating the browse lists of @@ -13704,8 +14157,8 @@ CLASS="SECT1" >


    15.10. Note about broadcast addresses16.10. Note about broadcast addresses

    If your network uses a "0" based broadcast address (for example if it @@ -13718,8 +14171,8 @@ CLASS="SECT1" >


    15.11. Multiple interfaces16.11. Multiple interfaces

    Samba now supports machines with multiple network interfaces. If you @@ -13733,14 +14186,14 @@ CLASS="CHAPTER" >Chapter 16. Stackable VFS modulesChapter 17. Stackable VFS modules

    16.1. Introduction and configuration17.1. Introduction and configuration

    Since samba 3.0, samba supports stackable VFS(Virtual File System) modules. @@ -13780,16 +14233,16 @@ CLASS="SECT1" >


    16.2. Included modules17.2. Included modules

    16.2.1. audit17.2.1. audit

    A simple module to audit file access to the syslog @@ -13826,8 +14279,8 @@ CLASS="SECT2" >


    16.2.2. recycle17.2.2. recycle

    A recycle-bin like modules. When used any unlink call @@ -13897,8 +14350,8 @@ CLASS="SECT2" >


    16.2.3. netatalk17.2.3. netatalk

    A netatalk module, that will ease co-existence of samba and @@ -13930,8 +14383,8 @@ CLASS="SECT1" >


    16.3. VFS modules available elsewhere17.3. VFS modules available elsewhere

    This section contains a listing of various other VFS modules that @@ -13946,8 +14399,8 @@ CLASS="SECT2" >


    16.3.1. DatabaseFS17.3.1. DatabaseFS

    URL:


    16.3.2. vscan17.3.2. vscan

    URL: Chapter 17. Group mapping HOWTOChapter 18. Group mapping HOWTO

    Starting with Samba 3.0 alpha 2, a new group mapping function is available. The @@ -14105,14 +14558,14 @@ CLASS="CHAPTER" >Chapter 18. Samba performance issuesChapter 19. Samba performance issues

    18.1. Comparisons19.1. Comparisons

    The Samba server uses TCP to talk to the client. Thus if you are @@ -14142,8 +14595,8 @@ CLASS="SECT1" >


    18.2. Socket options19.2. Socket options

    There are a number of socket options that can greatly affect the @@ -14170,8 +14623,8 @@ CLASS="SECT1" >


    18.3. Read size19.3. Read size

    The option "read size" affects the overlap of disk reads/writes with @@ -14196,8 +14649,8 @@ CLASS="SECT1" >


    18.4. Max xmit19.4. Max xmit

    At startup the client and server negotiate a "maximum transmit" size, @@ -14219,8 +14672,8 @@ CLASS="SECT1" >


    18.5. Log level19.5. Log level

    If you set the log level (also known as "debug level") higher than 2 @@ -14233,8 +14686,8 @@ CLASS="SECT1" >


    18.6. Read raw19.6. Read raw

    The "read raw" operation is designed to be an optimised, low-latency @@ -14255,8 +14708,8 @@ CLASS="SECT1" >


    18.7. Write raw19.7. Write raw

    The "write raw" operation is designed to be an optimised, low-latency @@ -14272,8 +14725,8 @@ CLASS="SECT1" >


    18.8. Slow Clients19.8. Slow Clients

    One person has reported that setting the protocol to COREPLUS rather @@ -14289,8 +14742,8 @@ CLASS="SECT1" >


    18.9. Slow Logins19.9. Slow Logins

    Slow logins are almost always due to the password checking time. Using @@ -14302,8 +14755,8 @@ CLASS="SECT1" >


    18.10. Client tuning19.10. Client tuning

    Often a speed problem can be traced to the client. The client (for @@ -14410,14 +14863,14 @@ CLASS="CHAPTER" >Chapter 19. Creating Group Prolicy FilesChapter 20. Creating Group Prolicy Files

    19.1. Windows '9x20.1. Windows '9x

    You need the Win98 Group Policy Editor to @@ -14459,8 +14912,8 @@ CLASS="SECT1" >


    19.2. Windows NT 420.2. Windows NT 4

    Unfortunately, the Resource Kit info is Win NT4 or 200x specific.


    19.2.1. Side bar Notes20.2.1. Side bar Notes

    You should obtain the SID of your NT4 domain. You can use smbpasswd to do @@ -14556,8 +15009,8 @@ CLASS="SECT2" >


    19.2.2. Mandatory profiles20.2.2. Mandatory profiles

    The above method can be used to create mandatory profiles also. To convert @@ -14569,8 +15022,8 @@ CLASS="SECT2" >


    19.2.3. moveuser.exe20.2.3. moveuser.exe

    The W2K professional resource kit has moveuser.exe. moveuser.exe changes @@ -14582,8 +15035,8 @@ CLASS="SECT2" >


    19.2.4. Get SID20.2.4. Get SID

    You can identify the SID by using GetSID.exe from the Windows NT Server 4.0 @@ -14605,8 +15058,8 @@ CLASS="SECT1" >


    19.3. Windows 2000/XP20.3. Windows 2000/XP

    You must first convert the profile from a local profile to a domain @@ -14843,14 +15296,14 @@ CLASS="CHAPTER" >Chapter 20. Securing SambaChapter 21. Securing Samba

    20.1. Introduction21.1. Introduction

    This note was attached to the Samba 2.2.8 release notes as it contained an @@ -14862,8 +15315,8 @@ CLASS="SECT1" >


    20.2. Using host based protection21.2. Using host based protection

    In many installations of Samba the greatest threat comes for outside @@ -14894,8 +15347,8 @@ CLASS="SECT1" >


    20.3. Using interface protection21.3. Using interface protection

    By default Samba will accept connections on any network interface that @@ -14930,8 +15383,8 @@ CLASS="SECT1" >


    20.4. Using a firewall21.4. Using a firewall

    Many people use a firewall to deny access to services that they don't @@ -14960,8 +15413,8 @@ CLASS="SECT1" >


    20.5. Using a IPC$ share deny21.5. Using a IPC$ share deny

    If the above methods are not suitable, then you could also place a @@ -14999,8 +15452,8 @@ CLASS="SECT1" >


    20.6. Upgrading Samba21.6. Upgrading Samba

    Please check regularly on http://www.samba.org/ for updates and @@ -15009,6 +15462,125 @@ it is highly recommended to upgrade Samba when a security vulnerability is discovered.


    Chapter 22. Unicode/Charsets

    22.1. What are charsets and unicode?

    Computers communicate in numbers. In texts, each number will be +translated to a corresponding letter. The meaning that will be assigned +to a certain number depends on the character set(charset) that is used. +A charset can be seen as a table that is used to translate numbers to +letters. Not all computers use the same charset (there are charsets +with German umlauts, Japanese characters, etc). Usually a charset contains +256 characters, which means that storing a character with it takes +exactly one byte.

    There are also charsets that support even more characters, +but those need twice(or even more) as much storage space. These +charsets can contain 256 * 256 = 65536 characters, which +is more then all possible characters one could think of. They are called +multibyte charsets (because they use more then one byte to +store one character).

    A standardised multibyte charset is unicode, info available at +www.unicode.org. +Big advantage of using a multibyte charset is that you only need one; no +need to make sure two computers use the same charset when they are +communicating.

    Old windows clients used to use single-byte charsets, named +'codepages' by microsoft. However, there is no support for +negotiating the charset to be used in the smb protocol. Thus, you +have to make sure you are using the same charset when talking to an old client. +Newer clients (Windows NT, 2K, XP) talk unicode over the wire.


    22.2. Samba and charsets

    As of samba 3.0, samba can (and will) talk unicode over the wire. Internally, +samba knows of three kinds of character sets:

    unix charset

    This is the charset used internally by your operating system. + The default is ASCII, which is fine for most + systems. +

    display charset

    This is the charset samba will use to print messages + on your screen. It should generally be the same as the unix charset. +

    dos charset

    This is the charset samba uses when communicating with + DOS and Windows 9x clients. It will talk unicode to all newer clients. + The default depends on the charsets you have installed on your system. + Run testparm -v | grep "dos charset" to see + what the default is on your system. +

    Table of Contents
    21. 23. Portability
    21.1. 23.1. HPUX
    21.2. 23.2. SCO Unix
    21.3. 23.3. DNIX
    21.4. 23.4. RedHat Linux Rembrandt-II
    21.5. 23.5. AIX
    21.5.1. 23.5.1. Sequential Read Ahead
    22. 24. Samba and other CIFS clients
    22.1. 24.1. Macintosh clients?
    22.2. 24.2. OS2 Client
    22.2.1. 24.2.1. How can I configure OS/2 Warp Connect or OS/2 Warp 4 as a client for Samba?
    22.2.2. 24.2.2. How can I configure OS/2 Warp 3 (not Connect), OS/2 1.2, 1.3 or 2.x for Samba?
    22.2.3. 24.2.3. Are there any other issues when OS/2 (any version) is used as a client?
    22.2.4. 24.2.4. How do I get printer driver download working for OS/2 clients?
    22.3. 24.3. Windows for Workgroups
    22.3.1. 24.3.1. Use latest TCP/IP stack from Microsoft
    22.3.2. 24.3.2. Delete .pwl files after password change
    22.3.3. 24.3.3. Configure WfW password handling
    22.3.4. 24.3.4. Case handling of passwords
    22.3.5. 24.3.5. Use TCP/IP as default protocol
    22.4. 24.4. Windows '95/'98
    22.5. 24.5. Windows 2000 Service Pack 2
    23. 25. How to compile SAMBA
    23.1. 25.1. Access Samba source code via CVS
    23.1.1. 25.1.1. Introduction
    23.1.2. 25.1.2. CVS Access to samba.org
    23.2. 25.2. Accessing the samba sources via rsync and ftp
    23.3. 25.3. Building the Binaries
    23.4. 25.4. Starting the smbd and nmbd
    23.4.1. 25.4.1. Starting from inetd.conf
    23.4.2. 25.4.2. Alternative: starting it as a daemon
    24. 26. Reporting Bugs
    24.1. 26.1. Introduction
    24.2. 26.2. General info
    24.3. 26.3. Debug levels
    24.4. 26.4. Internal errors
    24.5. 26.5. Attaching to a running process
    24.6. 26.6. Patches
    25. 27. The samba checklist
    25.1. 27.1. Introduction
    25.2. 27.2. Assumptions
    25.3. 27.3. Tests
    25.3.1. 27.3.1. Test 1
    25.3.2. 27.3.2. Test 2
    25.3.3. 27.3.3. Test 3
    25.3.4. 27.3.4. Test 4
    25.3.5. 27.3.5. Test 5
    25.3.6. 27.3.6. Test 6
    25.3.7. 27.3.7. Test 7
    25.3.8. 27.3.8. Test 8
    25.3.9. 27.3.9. Test 9
    25.3.10. 27.3.10. Test 10
    25.3.11. 27.3.11. Test 11
    25.4. 27.4. Still having troubles?
    Chapter 21. PortabilityChapter 23. Portability

    Samba works on a wide range of platforms but the interface all the platforms provide is not always compatible. This chapter contains @@ -15364,8 +15936,8 @@ CLASS="SECT1" >


    21.1. HPUX23.1. HPUX

    HP's implementation of supplementary groups is, er, non-standard (for @@ -15394,8 +15966,8 @@ CLASS="SECT1" >


    21.2. SCO Unix23.2. SCO Unix

    @@ -15411,8 +15983,8 @@ CLASS="SECT1" >


    21.3. DNIX23.3. DNIX

    DNIX has a problem with seteuid() and setegid(). These routines are @@ -15518,8 +16090,8 @@ CLASS="SECT1" >


    21.4. RedHat Linux Rembrandt-II23.4. RedHat Linux Rembrandt-II

    By default RedHat Rembrandt-II during installation adds an @@ -15542,16 +16114,16 @@ CLASS="SECT1" >


    21.5. AIX23.5. AIX

    21.5.1. Sequential Read Ahead23.5.1. Sequential Read Ahead

    Disabling Sequential Read Ahead using "vmtune -r 0" improves @@ -15565,7 +16137,7 @@ CLASS="CHAPTER" >Chapter 22. Samba and other CIFS clientsChapter 24. Samba and other CIFS clients

    This chapter contains client-specific information.


    22.1. Macintosh clients?24.1. Macintosh clients?

    Yes.


    22.2. OS2 Client24.2. OS2 Client

    22.2.1. How can I configure OS/2 Warp Connect or +NAME="AEN3379" +>24.2.1. How can I configure OS/2 Warp Connect or OS/2 Warp 4 as a client for Samba?


    22.2.2. How can I configure OS/2 Warp 3 (not Connect), +NAME="AEN3394" +>24.2.2. How can I configure OS/2 Warp 3 (not Connect), OS/2 1.2, 1.3 or 2.x for Samba?


    22.2.3. Are there any other issues when OS/2 (any version) +NAME="AEN3403" +>24.2.3. Are there any other issues when OS/2 (any version) is used as a client?


    22.2.4. How do I get printer driver download working +NAME="AEN3407" +>24.2.4. How do I get printer driver download working for OS/2 clients?


    22.3. Windows for Workgroups24.3. Windows for Workgroups

    22.3.1. Use latest TCP/IP stack from Microsoft24.3.1. Use latest TCP/IP stack from Microsoft

    Use the latest TCP/IP stack from microsoft if you use Windows @@ -15829,8 +16401,8 @@ CLASS="SECT2" >


    22.3.2. Delete .pwl files after password change24.3.2. Delete .pwl files after password change

    WfWg does a lousy job with passwords. I find that if I change my @@ -15849,8 +16421,8 @@ CLASS="SECT2" >


    22.3.3. Configure WfW password handling24.3.3. Configure WfW password handling

    There is a program call admincfg.exe @@ -15868,8 +16440,8 @@ CLASS="SECT2" >


    22.3.4. Case handling of passwords24.3.4. Case handling of passwords

    Windows for Workgroups uppercases the password before sending it to the server. Unix passwords can be case-sensitive though. Check the


    22.3.5. Use TCP/IP as default protocol24.3.5. Use TCP/IP as default protocol

    To support print queue reporting you may find @@ -15902,8 +16474,8 @@ CLASS="SECT1" >


    22.4. Windows '95/'9824.4. Windows '95/'98

    When using Windows 95 OEM SR2 the following updates are recommended where Samba @@ -15950,8 +16522,8 @@ CLASS="SECT1" >


    22.5. Windows 2000 Service Pack 224.5. Windows 2000 Service Pack 2

    @@ -16034,7 +16606,7 @@ CLASS="CHAPTER" >Chapter 23. How to compile SAMBAChapter 25. How to compile SAMBA

    You can obtain the samba source from the


    23.1. Access Samba source code via CVS25.1. Access Samba source code via CVS

    23.1.1. Introduction25.1.1. Introduction

    Samba is developed in an open environment. Developers use CVS @@ -16077,8 +16649,8 @@ CLASS="SECT2" >


    23.1.2. CVS Access to samba.org25.1.2. CVS Access to samba.org

    The machine samba.org runs a publicly accessible CVS @@ -16090,8 +16662,8 @@ CLASS="SECT3" >


    23.1.2.1. Access via CVSweb25.1.2.1. Access via CVSweb

    You can access the source code via your @@ -16111,8 +16683,8 @@ CLASS="SECT3" >


    23.1.2.2. Access via cvs25.1.2.2. Access via cvs

    You can also access the source code via a @@ -16216,8 +16788,8 @@ CLASS="SECT1" >


    23.2. Accessing the samba sources via rsync and ftp25.2. Accessing the samba sources via rsync and ftp

    pserver.samba.org also exports unpacked copies of most parts of the CVS tree at


    23.3. Building the Binaries25.3. Building the Binaries

    To do this, first run the program


    23.4. Starting the smbd and nmbd25.4. Starting the smbd and nmbd

    You must choose to start smbd and nmbd either @@ -16371,8 +16943,8 @@ CLASS="SECT2" >


    23.4.1. Starting from inetd.conf25.4.1. Starting from inetd.conf

    NOTE; The following will be different if @@ -16471,8 +17043,8 @@ CLASS="SECT2" >


    23.4.2. Alternative: starting it as a daemon25.4.2. Alternative: starting it as a daemon

    To start the server as a daemon you should create @@ -16530,14 +17102,14 @@ CLASS="CHAPTER" >Chapter 24. Reporting BugsChapter 26. Reporting Bugs

    24.1. Introduction26.1. Introduction

    The email address for bug reports for stable releases is


    24.2. General info26.2. General info

    Before submitting a bug report check your config for silly @@ -16606,8 +17178,8 @@ CLASS="SECT1" >


    24.3. Debug levels26.3. Debug levels

    If the bug has anything to do with Samba behaving incorrectly as a @@ -16676,8 +17248,8 @@ CLASS="SECT1" >


    24.4. Internal errors26.4. Internal errors

    If you get a "INTERNAL ERROR" message in your log files it means that @@ -16720,8 +17292,8 @@ CLASS="SECT1" >


    24.5. Attaching to a running process26.5. Attaching to a running process

    Unfortunately some unixes (in particular some recent linux kernels) @@ -16737,8 +17309,8 @@ CLASS="SECT1" >


    24.6. Patches26.6. Patches

    The best sort of bug report is one that includes a fix! If you send us @@ -16760,14 +17332,14 @@ CLASS="CHAPTER" >Chapter 25. The samba checklistChapter 27. The samba checklist

    25.1. Introduction27.1. Introduction

    This file contains a list of tests you can perform to validate your @@ -16788,8 +17360,8 @@ CLASS="SECT1" >


    25.2. Assumptions27.2. Assumptions

    In all of the tests it is assumed you have a Samba server called @@ -16826,16 +17398,16 @@ CLASS="SECT1" >


    25.3. Tests27.3. Tests

    25.3.1. Test 127.3.1. Test 1

    In the directory in which you store your smb.conf file, run the command @@ -16856,8 +17428,8 @@ CLASS="SECT2" >


    25.3.2. Test 227.3.2. Test 2

    Run the command "ping BIGSERVER" from the PC and "ping ACLIENT" from @@ -16882,8 +17454,8 @@ CLASS="SECT2" >


    25.3.3. Test 327.3.3. Test 3

    Run the command "smbclient -L BIGSERVER" on the unix box. You @@ -16953,8 +17525,8 @@ CLASS="SECT2" >


    25.3.4. Test 427.3.4. Test 4

    Run the command "nmblookup -B BIGSERVER __SAMBA__". You should get the @@ -16974,8 +17546,8 @@ CLASS="SECT2" >


    25.3.5. Test 527.3.5. Test 5

    run the command


    25.3.6. Test 627.3.6. Test 6

    Run the command


    25.3.7. Test 727.3.7. Test 7

    Run the command


    25.3.8. Test 827.3.8. Test 8

    On the PC type the command


    25.3.9. Test 927.3.9. Test 9

    Run the command


    25.3.10. Test 1027.3.10. Test 10

    Run the command


    25.3.11. Test 1127.3.11. Test 11

    From file manager try to browse the server. Your samba server should @@ -17266,8 +17838,8 @@ CLASS="SECT1" >


    25.4. Still having troubles?27.4. Still having troubles?

    Try the mailing list or newsgroup, or use the ethereal utility to diff --git a/docs/manpages/findsmb.1 b/docs/manpages/findsmb.1 index c6abcaca5ac..d45c3ab8fe2 100644 --- a/docs/manpages/findsmb.1 +++ b/docs/manpages/findsmb.1 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "FINDSMB" "1" "18 March 2003" "" "" +.TH "FINDSMB" "1" "24 March 2003" "" "" .SH NAME findsmb \- list info about machines that respond to SMB name queries on a subnet diff --git a/docs/manpages/lmhosts.5 b/docs/manpages/lmhosts.5 index f00c2e3547c..76d48f8e1e1 100644 --- a/docs/manpages/lmhosts.5 +++ b/docs/manpages/lmhosts.5 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "LMHOSTS" "5" "18 March 2003" "" "" +.TH "LMHOSTS" "5" "24 March 2003" "" "" .SH NAME lmhosts \- The Samba NetBIOS hosts file diff --git a/docs/manpages/net.8 b/docs/manpages/net.8 index 5720337de4d..8ade7f5c4a2 100644 --- a/docs/manpages/net.8 +++ b/docs/manpages/net.8 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "NET" "8" "18 March 2003" "" "" +.TH "NET" "8" "24 March 2003" "" "" .SH NAME net \- Tool for administration of Samba and remote CIFS servers. diff --git a/docs/manpages/nmbd.8 b/docs/manpages/nmbd.8 index d2d86353164..f5dfe5e5dee 100644 --- a/docs/manpages/nmbd.8 +++ b/docs/manpages/nmbd.8 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "NMBD" "8" "18 March 2003" "" "" +.TH "NMBD" "8" "24 March 2003" "" "" .SH NAME nmbd \- NetBIOS name server to provide NetBIOS over IP naming services to clients @@ -75,11 +75,6 @@ If specified, this parameter causes \fBnmbd\fR to log to standard output rather than a file. .TP -\fB-a\fR -If this parameter is specified, each new -connection will append log messages to the log file. -This is the default. -.TP \fB-i\fR If this parameter is specified it causes the server to run "interactively", not as a daemon, even if the @@ -89,15 +84,8 @@ command line. \fBnmbd\fR also logs to standard output, as if the -S parameter had been given. .TP -\fB-o\fR -If this parameter is specified, the -log files will be overwritten when opened. By default, -\fBsmbd\fR will append entries to the log -files. -.TP -\fB-h\fR -Prints the help information (usage) -for \fBnmbd\fR. +\fB-h|--help\fR +Print a summary of command line options. .TP \fB-H \fR NetBIOS lmhosts file. The lmhosts @@ -119,62 +107,81 @@ are \fI/usr/local/samba/lib/lmhosts\fR, .TP \fB-V\fR Prints the version number for -\fBnmbd\fR. +\fBsmbd\fR. .TP -\fB-d \fR -debuglevel is an integer +\fB-s \fR +The file specified contains the +configuration details required by the server. The +information in this file includes server-specific +information such as what printcap file to use, as well +as descriptions of all the services that the server is +to provide. See \fIsmb.conf(5)\fR for more information. +The default configuration file name is determined at +compile time. +.TP +\fB-d|--debug=debuglevel\fR +\fIdebuglevel\fR is an integer from 0 to 10. The default value if this parameter is not specified is zero. -The higher this value, the more detail will -be logged to the log files about the activities of the +The higher this value, the more detail will be +logged to the log files about the activities of the server. At level 0, only critical errors and serious warnings will be logged. Level 1 is a reasonable level for day to day running - it generates a small amount of information about operations carried out. -Levels above 1 will generate considerable amounts -of log data, and should only be used when investigating -a problem. Levels above 3 are designed for use only by developers -and generate HUGE amounts of log data, most of which is extremely -cryptic. +Levels above 1 will generate considerable +amounts of log data, and should only be used when +investigating a problem. Levels above 3 are designed for +use only by developers and generate HUGE amounts of log +data, most of which is extremely cryptic. -Note that specifying this parameter here will override -the \fIlog level\fR -parameter in the \fBsmb.conf\fR(5) file. +Note that specifying this parameter here will +override the log +level file. .TP -\fB-l \fR -The -l parameter specifies a directory -into which the "log.nmbd" log file will be created -for operational data from the running \fBnmbd\fR -server. The default log directory is compiled into Samba -as part of the build process. Common defaults are \fI /usr/local/samba/var/log.nmb\fR, \fI /usr/samba/var/log.nmb\fR or -\fI/var/log/log.nmb\fR. \fBBeware:\fR -If the directory specified does not exist, \fBnmbd\fR -will log to the default debug log location defined at compile time. +\fB-l|--logfile=logbasename\fR +File name for log/debug files. The extension +".client" will be appended. The log file is +never removed by the client. .TP \fB-n \fR This option allows you to override -the NetBIOS name that Samba uses for itself. This is identical +the NetBIOS name that Samba uses for itself. This is identical to setting the \fINetBIOS name\fR parameter in the \fBsmb.conf\fR(5) file. However, a command -line setting will take precedence over settings in +line setting will take precedence over settings in \fBsmb.conf\fR(5). .TP +\fB-i \fR +This specifies a NetBIOS scope that +\fBnmblookup\fR will use to communicate with when +generating NetBIOS names. For details on the use of NetBIOS +scopes, see rfc1001.txt and rfc1002.txt. NetBIOS scopes are +\fBvery\fR rarely used, only set this parameter +if you are the system administrator in charge of all the +NetBIOS systems you communicate with. +.TP +\fB-W|--workgroup=domain\fR +Set the SMB domain of the username. This +overrides the default domain which is the domain defined in +smb.conf. If the domain specified is the same as the servers +NetBIOS name, it causes the client to log on using the servers local +SAM (as opposed to the Domain SAM). +.TP +\fB-O socket options\fR +TCP socket options to set on the client +socket. See the socket options parameter in +the \fBsmb.conf\fR(5) manual page for the list of valid +options. +.TP \fB-p \fR UDP port number is a positive integer value. This option changes the default UDP port number (normally 137) that \fBnmbd\fR responds to name queries on. Don't use this option unless you are an expert, in which case you won't need help! -.TP -\fB-s \fR -The default configuration file name -is set at build time, typically as \fI /usr/local/samba/lib/smb.conf\fR, but -this may be changed when Samba is autoconfigured. - -The file specified contains the configuration details -required by the server. See \fBsmb.conf\fR(5) for more information. .SH "FILES" .TP \fB\fI/etc/inetd.conf\fB\fR diff --git a/docs/manpages/nmblookup.1 b/docs/manpages/nmblookup.1 index 9ed1de8ade7..653aa6f6638 100644 --- a/docs/manpages/nmblookup.1 +++ b/docs/manpages/nmblookup.1 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "NMBLOOKUP" "1" "18 March 2003" "" "" +.TH "NMBLOOKUP" "1" "24 March 2003" "" "" .SH NAME nmblookup \- NetBIOS over TCP/IP client used to lookup NetBIOS names @@ -53,8 +53,38 @@ in addition, if the \fBnmbd\fR(8) daemon is running on this machine it also bind Interpret \fIname\fR as an IP Address and do a node status query on this address. .TP -\fB-h\fR -Print a help (usage) message. +\fB-n \fR +This option allows you to override +the NetBIOS name that Samba uses for itself. This is identical +to setting the \fINetBIOS +name\fR parameter in the \fBsmb.conf\fR(5) file. However, a command +line setting will take precedence over settings in +\fBsmb.conf\fR(5). +.TP +\fB-i \fR +This specifies a NetBIOS scope that +\fBnmblookup\fR will use to communicate with when +generating NetBIOS names. For details on the use of NetBIOS +scopes, see rfc1001.txt and rfc1002.txt. NetBIOS scopes are +\fBvery\fR rarely used, only set this parameter +if you are the system administrator in charge of all the +NetBIOS systems you communicate with. +.TP +\fB-W|--workgroup=domain\fR +Set the SMB domain of the username. This +overrides the default domain which is the domain defined in +smb.conf. If the domain specified is the same as the servers +NetBIOS name, it causes the client to log on using the servers local +SAM (as opposed to the Domain SAM). +.TP +\fB-O socket options\fR +TCP socket options to set on the client +socket. See the socket options parameter in +the \fBsmb.conf\fR(5) manual page for the list of valid +options. +.TP +\fB-h|--help\fR +Print a summary of command line options. .TP \fB-B \fR Send the query to the given broadcast address. Without @@ -69,37 +99,46 @@ host \fIunicast address\fR. This option (along with the \fI-R\fR option) is needed to query a WINS server. .TP -\fB-d \fR -debuglevel is an integer from 0 to 10. - -The default value if this parameter is not specified -is zero. +\fB-V\fR +Prints the version number for +\fBsmbd\fR. +.TP +\fB-s \fR +The file specified contains the +configuration details required by the server. The +information in this file includes server-specific +information such as what printcap file to use, as well +as descriptions of all the services that the server is +to provide. See \fIsmb.conf(5)\fR for more information. +The default configuration file name is determined at +compile time. +.TP +\fB-d|--debug=debuglevel\fR +\fIdebuglevel\fR is an integer +from 0 to 10. The default value if this parameter is +not specified is zero. -The higher this value, the more detail will be logged -about the activities of \fBnmblookup\fR. At level -0, only critical errors and serious warnings will be logged. +The higher this value, the more detail will be +logged to the log files about the activities of the +server. At level 0, only critical errors and serious +warnings will be logged. Level 1 is a reasonable level for +day to day running - it generates a small amount of +information about operations carried out. -Levels above 1 will generate considerable amounts of -log data, and should only be used when investigating a problem. -Levels above 3 are designed for use only by developers and -generate HUGE amounts of data, most of which is extremely cryptic. +Levels above 1 will generate considerable +amounts of log data, and should only be used when +investigating a problem. Levels above 3 are designed for +use only by developers and generate HUGE amounts of log +data, most of which is extremely cryptic. -Note that specifying this parameter here will override -the \fI log level\fR parameter in the \fI smb.conf(5)\fR file. -.TP -\fB-s \fR -This parameter specifies the pathname to -the Samba configuration file, smb.conf(5) This file controls all aspects of -the Samba setup on the machine. +Note that specifying this parameter here will +override the log +level file. .TP -\fB-i \fR -This specifies a NetBIOS scope that -\fBnmblookup\fR will use to communicate with when -generating NetBIOS names. For details on the use of NetBIOS -scopes, see rfc1001.txt and rfc1002.txt. NetBIOS scopes are -\fBvery\fR rarely used, only set this parameter -if you are the system administrator in charge of all the -NetBIOS systems you communicate with. +\fB-l|--logfile=logbasename\fR +File name for log/debug files. The extension +".client" will be appended. The log file is +never removed by the client. .TP \fB-T\fR This causes any IP addresses found in the diff --git a/docs/manpages/pdbedit.8 b/docs/manpages/pdbedit.8 index dc236decf22..c5c8ba4aead 100644 --- a/docs/manpages/pdbedit.8 +++ b/docs/manpages/pdbedit.8 @@ -3,13 +3,13 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "PDBEDIT" "8" "18 March 2003" "" "" +.TH "PDBEDIT" "8" "24 March 2003" "" "" .SH NAME pdbedit \- manage the SAM database .SH SYNOPSIS -\fBpdbedit\fR [ \fB-l\fR ] [ \fB-v\fR ] [ \fB-w\fR ] [ \fB-u username\fR ] [ \fB-f fullname\fR ] [ \fB-h homedir\fR ] [ \fB-D drive\fR ] [ \fB-S script\fR ] [ \fB-p profile\fR ] [ \fB-a\fR ] [ \fB-m\fR ] [ \fB-x\fR ] [ \fB-i passdb-backend\fR ] [ \fB-e passdb-backend\fR ] [ \fB-b passdb-backend\fR ] [ \fB-d debuglevel\fR ] [ \fB-s configfile\fR ] [ \fB-P account-policy\fR ] [ \fB-V value\fR ] +\fBpdbedit\fR [ \fB-l\fR ] [ \fB-v\fR ] [ \fB-w\fR ] [ \fB-u username\fR ] [ \fB-f fullname\fR ] [ \fB-h homedir\fR ] [ \fB-D drive\fR ] [ \fB-S script\fR ] [ \fB-p profile\fR ] [ \fB-a\fR ] [ \fB-m\fR ] [ \fB-x\fR ] [ \fB-i passdb-backend\fR ] [ \fB-e passdb-backend\fR ] [ \fB-b passdb-backend\fR ] [ \fB-d debuglevel\fR ] [ \fB-s configfile\fR ] [ \fB-P account-policy\fR ] [ \fB-C value\fR ] .SH "DESCRIPTION" .PP @@ -194,12 +194,12 @@ Example: \fBpdbedit -P "bad lockout attempt"\fR account policy value for bad lockout attempt is 0 .fi .TP -\fB-V account-policy-value\fR +\fB-C account-policy-value\fR Sets an account policy to a specified value. This option may only be used in conjunction with the \fI-P\fR option. -Example: \fBpdbedit -P "bad lockout attempt" -V 3\fR +Example: \fBpdbedit -P "bad lockout attempt" -C 3\fR .nf @@ -207,6 +207,23 @@ account policy value for bad lockout attempt was 0 account policy value for bad lockout attempt is now 3 .fi .TP +\fB-h|--help\fR +Print a summary of command line options. +.TP +\fB-V\fR +Prints the version number for +\fBsmbd\fR. +.TP +\fB-s \fR +The file specified contains the +configuration details required by the server. The +information in this file includes server-specific +information such as what printcap file to use, as well +as descriptions of all the services that the server is +to provide. See \fIsmb.conf(5)\fR for more information. +The default configuration file name is determined at +compile time. +.TP \fB-d|--debug=debuglevel\fR \fIdebuglevel\fR is an integer from 0 to 10. The default value if this parameter is @@ -229,18 +246,10 @@ Note that specifying this parameter here will override the log level file. .TP -\fB-h|--help\fR -Print a summary of command line options. -.TP -\fB-s \fR -The file specified contains the -configuration details required by the server. The -information in this file includes server-specific -information such as what printcap file to use, as well -as descriptions of all the services that the server is -to provide. See \fIsmb.conf(5)\fR for more information. -The default configuration file name is determined at -compile time. +\fB-l|--logfile=logbasename\fR +File name for log/debug files. The extension +".client" will be appended. The log file is +never removed by the client. .SH "NOTES" .PP This command may be used only by root. diff --git a/docs/manpages/rpcclient.1 b/docs/manpages/rpcclient.1 index afd75a6838c..a359d6772f9 100644 --- a/docs/manpages/rpcclient.1 +++ b/docs/manpages/rpcclient.1 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "RPCCLIENT" "1" "18 March 2003" "" "" +.TH "RPCCLIENT" "1" "24 March 2003" "" "" .SH NAME rpcclient \- tool for executing client side MS-RPC functions @@ -27,27 +27,39 @@ NetBIOS name of Server to which to connect. The server can be any SMB/CIFS server. The name is resolved using the \fIname resolve order\fR line from \fBsmb.conf\fR(5). .TP -\fB-A|--authfile=filename\fR -This option allows -you to specify a file from which to read the username and -password used in the connection. The format of the file is - - -.nf -username = -password = -domain = -.fi - -Make certain that the permissions on the file restrict -access from unwanted users. -.TP \fB-c|--command='command string'\fR execute semicolon separated commands (listed below)) .TP -\fB-h|--help\fR -Print a summary of command line options. +\fB-I IP-address\fR +\fIIP address\fR is the address of the server to connect to. +It should be specified in standard "a.b.c.d" notation. + +Normally the client would attempt to locate a named +SMB/CIFS server by looking it up via the NetBIOS name resolution +mechanism described above in the \fIname resolve order\fR +parameter above. Using this parameter will force the client +to assume that the server is on the machine with the specified IP +address and the NetBIOS name component of the resource being +connected to will be ignored. + +There is no default for this parameter. If not supplied, +it will be determined automatically by the client as described +above. +.TP +\fB-V\fR +Prints the version number for +\fBsmbd\fR. +.TP +\fB-s \fR +The file specified contains the +configuration details required by the server. The +information in this file includes server-specific +information such as what printcap file to use, as well +as descriptions of all the services that the server is +to provide. See \fIsmb.conf(5)\fR for more information. +The default configuration file name is determined at +compile time. .TP \fB-d|--debug=debuglevel\fR \fIdebuglevel\fR is an integer @@ -71,66 +83,94 @@ Note that specifying this parameter here will override the log level file. .TP -\fB-I IP-address\fR -\fIIP address\fR is the address of the server to connect to. -It should be specified in standard "a.b.c.d" notation. - -Normally the client would attempt to locate a named -SMB/CIFS server by looking it up via the NetBIOS name resolution -mechanism described above in the \fIname resolve order\fR -parameter above. Using this parameter will force the client -to assume that the server is on the machine with the specified IP -address and the NetBIOS name component of the resource being -connected to will be ignored. - -There is no default for this parameter. If not supplied, -it will be determined automatically by the client as described -above. -.TP \fB-l|--logfile=logbasename\fR -File name for log/debug files. The extension -\&'.client' will be appended. The log file is +File name for log/debug files. The extension +".client" will be appended. The log file is never removed by the client. .TP -\fB-N|--nopass\fR -instruct \fBrpcclient\fR not to ask -for a password. By default, \fBrpcclient\fR will -prompt for a password. See also the \fI-U\fR -option. +\fB-N\fR +If specified, this parameter suppresses the normal +password prompt from the client to the user. This is useful when +accessing a service that does not require a password. + +Unless a password is specified on the command line or +this parameter is specified, the client will request a +password. +.TP +\fB-k\fR +Try to authenticate with kerberos. Only useful in +an Active Directory environment. .TP -\fB-s|--conf=smb.conf\fR -Specifies the location of the all-important -\fIsmb.conf\fR file. +\fB-A|--authfile=filename\fR +This option allows +you to specify a file from which to read the username and +password used in the connection. The format of the file is + + +.nf +username = +password = +domain = +.fi + +Make certain that the permissions on the file restrict +access from unwanted users. .TP -\fB-U|--user=username[%password]\fR +\fB-U|--user=username[&%;password]\fR Sets the SMB username or username and password. -If %password is not specified, the user will be prompted. The -client will first check the \fBUSER\fR environment variable, then the -\fBLOGNAME\fR variable and if either exists, the -string is uppercased. If these environmental variables are not +If &%;password is not specified, the user will be prompted. The +client will first check the \fBUSER\fR environment variable, then the +\fBLOGNAME\fR variable and if either exists, the +string is uppercased. If these environmental variables are not found, the username GUEST is used. -A third option is to use a credentials file which -contains the plaintext of the username and password. This -option is mainly provided for scripts where the admin does not -wish to pass the credentials on the command line or via environment -variables. If this method is used, make certain that the permissions -on the file restrict access from unwanted users. See the +A third option is to use a credentials file which +contains the plaintext of the username and password. This +option is mainly provided for scripts where the admin does not +wish to pass the credentials on the command line or via environment +variables. If this method is used, make certain that the permissions +on the file restrict access from unwanted users. See the \fI-A\fR for more details. -Be cautious about including passwords in scripts. Also, on -many systems the command line of a running process may be seen -via the \fBps\fR command. To be safe always allow -\fBrpcclient\fR to prompt for a password and type +Be cautious about including passwords in scripts. Also, on +many systems the command line of a running process may be seen +via the \fBps\fR command. To be safe always allow +\fBrpcclient\fR to prompt for a password and type it in directly. .TP +\fB-n \fR +This option allows you to override +the NetBIOS name that Samba uses for itself. This is identical +to setting the \fINetBIOS +name\fR parameter in the \fBsmb.conf\fR(5) file. However, a command +line setting will take precedence over settings in +\fBsmb.conf\fR(5). +.TP +\fB-i \fR +This specifies a NetBIOS scope that +\fBnmblookup\fR will use to communicate with when +generating NetBIOS names. For details on the use of NetBIOS +scopes, see rfc1001.txt and rfc1002.txt. NetBIOS scopes are +\fBvery\fR rarely used, only set this parameter +if you are the system administrator in charge of all the +NetBIOS systems you communicate with. +.TP \fB-W|--workgroup=domain\fR -Set the SMB domain of the username. This -overrides the default domain which is the domain defined in -smb.conf. If the domain specified is the same as the server's NetBIOS name, -it causes the client to log on using the server's local SAM (as -opposed to the Domain SAM). +Set the SMB domain of the username. This +overrides the default domain which is the domain defined in +smb.conf. If the domain specified is the same as the servers +NetBIOS name, it causes the client to log on using the servers local +SAM (as opposed to the Domain SAM). +.TP +\fB-O socket options\fR +TCP socket options to set on the client +socket. See the socket options parameter in +the \fBsmb.conf\fR(5) manual page for the list of valid +options. +.TP +\fB-h|--help\fR +Print a summary of command line options. .SH "COMMANDS" .PP \fBLSARPC\fR diff --git a/docs/manpages/samba.7 b/docs/manpages/samba.7 index a1abcbfba3e..6703cb95ce8 100644 --- a/docs/manpages/samba.7 +++ b/docs/manpages/samba.7 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SAMBA" "7" "18 March 2003" "" "" +.TH "SAMBA" "7" "24 March 2003" "" "" .SH NAME Samba \- A Windows SMB/CIFS fileserver for UNIX diff --git a/docs/manpages/smb.conf.5 b/docs/manpages/smb.conf.5 index 23dfcbd50fa..ced5057fcdc 100644 --- a/docs/manpages/smb.conf.5 +++ b/docs/manpages/smb.conf.5 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SMB.CONF" "5" "18 March 2003" "" "" +.TH "SMB.CONF" "5" "24 March 2003" "" "" .SH NAME smb.conf \- The configuration file for the Samba suite @@ -661,6 +661,9 @@ each parameter for details. Note that some are synonyms. \fIldap admin dn\fR .TP 0.2i \(bu +\fIldap del only sam attr\fR +.TP 0.2i +\(bu \fIldap filter\fR .TP 0.2i \(bu @@ -3344,8 +3347,13 @@ admin dn\fR is used in conjunction with the admin dn password stored in the \fIprivate/secrets.tdb\fR file. See the \fBsmbpasswd\fR(8) man page for more information on how to accmplish this. +.TP +\fB>ldap del only sam attr (G)\fR +This parameter specifies whether a delete +operation in the ldapsam deletes only the Samba-specific +attributes or the complete LDAP entry. -Default : \fBnone\fR +Default : \fBldap del only sam attr = yes\fR .TP \fB>ldap filter (G)\fR This parameter specifies the RFC 2254 compliant LDAP search filter. @@ -5119,7 +5127,7 @@ parameter \fIname resolve order\fR and so may resolved by any method and order described in that parameter. -The password server much be a machine capable of using +The password server must be a machine capable of using the "LM1.2X002" or the "NT LM 0.12" protocol, and it must be in user level security mode. diff --git a/docs/manpages/smbcacls.1 b/docs/manpages/smbcacls.1 index 2539822d759..b38c2adf8ab 100644 --- a/docs/manpages/smbcacls.1 +++ b/docs/manpages/smbcacls.1 @@ -3,13 +3,13 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SMBCACLS" "1" "18 March 2003" "" "" +.TH "SMBCACLS" "1" "24 March 2003" "" "" .SH NAME smbcacls \- Set or get ACLs on an NT file or directory names .SH SYNOPSIS -\fBsmbcacls\fR \fB//server/share\fR \fBfilename\fR [ \fB-U username\fR ] [ \fB-A acls\fR ] [ \fB-M acls\fR ] [ \fB-D acls\fR ] [ \fB-S acls\fR ] [ \fB-C name\fR ] [ \fB-G name\fR ] [ \fB-n\fR ] [ \fB-h\fR ] +\fBsmbcacls\fR \fB//server/share\fR \fBfilename\fR [ \fB-D acls\fR ] [ \fB-M acls\fR ] [ \fB-A acls\fR ] [ \fB-S acls\fR ] [ \fB-C name\fR ] [ \fB-G name\fR ] [ \fB-n\fR ] [ \fB-t\fR ] [ \fB-U username\fR ] [ \fB-h\fR ] [ \fB-d\fR ] .SH "DESCRIPTION" .PP @@ -71,9 +71,9 @@ This option displays all ACL information in numeric format. The default is to convert SIDs to names and ACE types and masks to a readable string format. .TP -\fB-h\fR -Print usage information on the \fBsmbcacls -\fR program. +\fB-t\fR +Don't actually do anything, only validate the correctness of +the arguments. .SH "ACL FORMAT" .PP The format of an ACL is one or more ACL entries separated by @@ -172,7 +172,7 @@ of 1 is returned. If there was an error parsing any command line arguments, an exit status of 2 is returned. .SH "VERSION" .PP -This man page is correct for version 2.2 of the Samba suite. +This man page is correct for version 3.0 of the Samba suite. .SH "AUTHOR" .PP The original Samba software and related utilities diff --git a/docs/manpages/smbclient.1 b/docs/manpages/smbclient.1 index 3d193b0c626..6ba48185a3a 100644 --- a/docs/manpages/smbclient.1 +++ b/docs/manpages/smbclient.1 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SMBCLIENT" "1" "18 March 2003" "" "" +.TH "SMBCLIENT" "1" "24 March 2003" "" "" .SH NAME smbclient \- ftp-like client to access SMB/CIFS resources on servers @@ -67,16 +67,6 @@ or mixed case passwords may be rejected by these servers. Be cautious about including passwords in scripts. .TP -\fB-s smb.conf\fR -Specifies the location of the all -important \fBsmb.conf\fR(5) file. -.TP -\fB-O socket options\fR -TCP socket options to set on the client -socket. See the socket options parameter in -the \fBsmb.conf\fR(5) manual page for the list of valid -options. -.TP \fB-R \fR This option is used by the programs in the Samba suite to determine what naming services and in what order to resolve @@ -158,57 +148,6 @@ WinPopup messages in Samba. on your WfWg PCs if you want them to always be able to receive messages. .TP -\fB-i scope\fR -This specifies a NetBIOS scope that smbclient will -use to communicate with when generating NetBIOS names. For details -on the use of NetBIOS scopes, see \fIrfc1001.txt\fR -and \fIrfc1002.txt\fR. -NetBIOS scopes are \fBvery\fR rarely used, only set -this parameter if you are the system administrator in charge of all -the NetBIOS systems you communicate with. -.TP -\fB-N\fR -If specified, this parameter suppresses the normal -password prompt from the client to the user. This is useful when -accessing a service that does not require a password. - -Unless a password is specified on the command line or -this parameter is specified, the client will request a -password. -.TP -\fB-n NetBIOS name\fR -By default, the client will use the local -machine's hostname (in uppercase) as its NetBIOS name. This parameter -allows you to override the host name and use whatever NetBIOS -name you wish. -.TP -\fB-d debuglevel\fR -\fIdebuglevel\fR is an integer from 0 to 10, or -the letter 'A'. - -The default value if this parameter is not specified -is zero. - -The higher this value, the more detail will be logged to -the log files about the activities of the -client. At level 0, only critical errors and serious warnings will -be logged. Level 1 is a reasonable level for day to day running - -it generates a small amount of information about operations -carried out. - -Levels above 1 will generate considerable amounts of log -data, and should only be used when investigating a problem. -Levels above 3 are designed for use only by developers and -generate HUGE amounts of log data, most of which is extremely -cryptic. If \fIdebuglevel\fR is set to the letter 'A', then \fBall -\fR debug messages will be printed. This setting -is for developers only (and people who \fBreally\fR want -to know how the code works internally). - -Note that specifying this parameter here will override -the log level parameter in the \fIsmb.conf (5)\fR -file. -.TP \fB-p port\fR This number is the TCP port number that will be used when making connections to the server. The standard (well-known) @@ -228,8 +167,8 @@ would be \fIlog.client\fR. The log file generated is never removed by the client. .TP -\fB-h\fR -Print the usage message for the client. +\fB-h|--help\fR +Print a summary of command line options. .TP \fB-I IP-address\fR \fIIP address\fR is the address of the server to connect to. @@ -255,52 +194,6 @@ output stream. By default, the client writes messages to standard output - typically the user's tty. .TP -\fB-U username[%pass]\fR -Sets the SMB username or username and password. -If %pass is not specified, The user will be prompted. The client -will first check the \fBUSER\fR environment variable, then the -\fBLOGNAME\fR variable and if either exists, the -string is uppercased. Anything in these variables following a '%' -sign will be treated as the password. If these environment -variables are not found, the username GUEST -is used. - -If the password is not included in these environment -variables (using the %pass syntax), \fBsmbclient\fR will look for -a \fBPASSWD\fR environment variable from which -to read the password. - -A third option is to use a credentials file which -contains the plaintext of the domain name, username and password. This -option is mainly provided for scripts where the admin doesn't -wish to pass the credentials on the command line or via environment -variables. If this method is used, make certain that the permissions -on the file restrict access from unwanted users. See the -\fI-A\fR for more details. - -Be cautious about including passwords in scripts or in -the \fBPASSWD\fR environment variable. Also, on -many systems the command line of a running process may be seen -via the \fBps\fR command to be safe always allow -\fBsmbclient\fR to prompt for a password and type -it in directly. -.TP -\fB-A filename\fR -This option allows -you to specify a file from which to read the username, domain name, and -password used in the connection. The format of the file is - - -.nf -username = -password = -domain = -.fi - -If the domain parameter is missing the current workgroup name -is used instead. Make certain that the permissions on the file restrict -access from unwanted users. -.TP \fB-L\fR This option allows you to look at what services are available on a server. You use it as \fBsmbclient -L @@ -328,10 +221,127 @@ size when getting or putting a file from/to the server. The default is 65520 bytes. Setting this value smaller (to 1200 bytes) has been observed to speed up file transfers to and from a Win9x server. .TP -\fB-W WORKGROUP\fR -Override the default workgroup (domain) specified -in the workgroup parameter of the \fBsmb.conf\fR(5) file for this connection. This may be -needed to connect to some servers. +\fB-V\fR +Prints the version number for +\fBsmbd\fR. +.TP +\fB-s \fR +The file specified contains the +configuration details required by the server. The +information in this file includes server-specific +information such as what printcap file to use, as well +as descriptions of all the services that the server is +to provide. See \fIsmb.conf(5)\fR for more information. +The default configuration file name is determined at +compile time. +.TP +\fB-d|--debug=debuglevel\fR +\fIdebuglevel\fR is an integer +from 0 to 10. The default value if this parameter is +not specified is zero. + +The higher this value, the more detail will be +logged to the log files about the activities of the +server. At level 0, only critical errors and serious +warnings will be logged. Level 1 is a reasonable level for +day to day running - it generates a small amount of +information about operations carried out. + +Levels above 1 will generate considerable +amounts of log data, and should only be used when +investigating a problem. Levels above 3 are designed for +use only by developers and generate HUGE amounts of log +data, most of which is extremely cryptic. + +Note that specifying this parameter here will +override the log +level file. +.TP +\fB-l|--logfile=logbasename\fR +File name for log/debug files. The extension +".client" will be appended. The log file is +never removed by the client. +.TP +\fB-N\fR +If specified, this parameter suppresses the normal +password prompt from the client to the user. This is useful when +accessing a service that does not require a password. + +Unless a password is specified on the command line or +this parameter is specified, the client will request a +password. +.TP +\fB-k\fR +Try to authenticate with kerberos. Only useful in +an Active Directory environment. +.TP +\fB-A|--authfile=filename\fR +This option allows +you to specify a file from which to read the username and +password used in the connection. The format of the file is + + +.nf +username = +password = +domain = +.fi + +Make certain that the permissions on the file restrict +access from unwanted users. +.TP +\fB-U|--user=username[&%;password]\fR +Sets the SMB username or username and password. + +If &%;password is not specified, the user will be prompted. The +client will first check the \fBUSER\fR environment variable, then the +\fBLOGNAME\fR variable and if either exists, the +string is uppercased. If these environmental variables are not +found, the username GUEST is used. + +A third option is to use a credentials file which +contains the plaintext of the username and password. This +option is mainly provided for scripts where the admin does not +wish to pass the credentials on the command line or via environment +variables. If this method is used, make certain that the permissions +on the file restrict access from unwanted users. See the +\fI-A\fR for more details. + +Be cautious about including passwords in scripts. Also, on +many systems the command line of a running process may be seen +via the \fBps\fR command. To be safe always allow +\fBrpcclient\fR to prompt for a password and type +it in directly. +.TP +\fB-n \fR +This option allows you to override +the NetBIOS name that Samba uses for itself. This is identical +to setting the \fINetBIOS +name\fR parameter in the \fBsmb.conf\fR(5) file. However, a command +line setting will take precedence over settings in +\fBsmb.conf\fR(5). +.TP +\fB-i \fR +This specifies a NetBIOS scope that +\fBnmblookup\fR will use to communicate with when +generating NetBIOS names. For details on the use of NetBIOS +scopes, see rfc1001.txt and rfc1002.txt. NetBIOS scopes are +\fBvery\fR rarely used, only set this parameter +if you are the system administrator in charge of all the +NetBIOS systems you communicate with. +.TP +\fB-W|--workgroup=domain\fR +Set the SMB domain of the username. This +overrides the default domain which is the domain defined in +smb.conf. If the domain specified is the same as the servers +NetBIOS name, it causes the client to log on using the servers local +SAM (as opposed to the Domain SAM). +.TP +\fB-O socket options\fR +TCP socket options to set on the client +socket. See the socket options parameter in +the \fBsmb.conf\fR(5) manual page for the list of valid +options. .TP \fB-T tar options\fR smbclient may be used to create \fBtar(1) @@ -459,10 +469,6 @@ commands to be executed instead of prompting from stdin. \fI -N\fR is implied b This is particularly useful in scripts and for printing stdin to the server, e.g. \fB-c 'print -'\fR. -.TP -\fB-k\fR -Try to authenticate with kerberos. Only useful in -an Active Directory environment. .SH "OPERATIONS" .PP Once the client is running, the user is presented with diff --git a/docs/manpages/smbcontrol.1 b/docs/manpages/smbcontrol.1 index d9b66a86c4f..a4fe043f3c8 100644 --- a/docs/manpages/smbcontrol.1 +++ b/docs/manpages/smbcontrol.1 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SMBCONTROL" "1" "18 March 2003" "" "" +.TH "SMBCONTROL" "1" "24 March 2003" "" "" .SH NAME smbcontrol \- send messages to smbd, nmbd or winbindd processes diff --git a/docs/manpages/smbd.8 b/docs/manpages/smbd.8 index 07045dee50a..ef498cbf646 100644 --- a/docs/manpages/smbd.8 +++ b/docs/manpages/smbd.8 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SMBD" "8" "18 March 2003" "" "" +.TH "SMBD" "8" "24 March 2003" "" "" .SH NAME smbd \- server to provide SMB/CIFS services to clients @@ -85,19 +85,21 @@ command line. \fBsmbd\fR also logs to standard output, as if the \fB-S\fR parameter had been given. .TP -\fB-h\fR -Prints the help information (usage) -for \fBsmbd\fR. -.TP \fB-V\fR Prints the version number for \fBsmbd\fR. .TP -\fB-b\fR -Prints information about how -Samba was built. +\fB-s \fR +The file specified contains the +configuration details required by the server. The +information in this file includes server-specific +information such as what printcap file to use, as well +as descriptions of all the services that the server is +to provide. See \fIsmb.conf(5)\fR for more information. +The default configuration file name is determined at +compile time. .TP -\fB-d \fR +\fB-d|--debug=debuglevel\fR \fIdebuglevel\fR is an integer from 0 to 10. The default value if this parameter is not specified is zero. @@ -116,8 +118,20 @@ use only by developers and generate HUGE amounts of log data, most of which is extremely cryptic. Note that specifying this parameter here will -override the \fIlog -level\fR parameter in the \fBsmb.conf\fR(5) file. +override the log +level file. +.TP +\fB-l|--logfile=logbasename\fR +File name for log/debug files. The extension +".client" will be appended. The log file is +never removed by the client. +.TP +\fB-h|--help\fR +Print a summary of command line options. +.TP +\fB-b\fR +Prints information about how +Samba was built. .TP \fB-l \fR If specified, @@ -134,10 +148,6 @@ will log to the default debug log location defined at compile time. The default log directory is specified at compile time. .TP -\fB-O \fR -See the \fIsocket options\fR -parameter in the \fBsmb.conf\fR(5) file for details. -.TP \fB-p \fR \fIport number\fR is a positive integer value. The default value if this parameter is not @@ -160,16 +170,6 @@ section 4.3.5. This parameter is not normally specified except in the above situation. -.TP -\fB-s \fR -The file specified contains the -configuration details required by the server. The -information in this file includes server-specific -information such as what printcap file to use, as well -as descriptions of all the services that the server is -to provide. See \fBsmb.conf\fR(5) for more information. -The default configuration file name is determined at -compile time. .SH "FILES" .TP \fB\fI/etc/inetd.conf\fB\fR diff --git a/docs/manpages/smbgroupedit.8 b/docs/manpages/smbgroupedit.8 index 7e7c4811612..df8b4e30dbf 100644 --- a/docs/manpages/smbgroupedit.8 +++ b/docs/manpages/smbgroupedit.8 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SMBGROUPEDIT" "8" "18 March 2003" "" "" +.TH "SMBGROUPEDIT" "8" "24 March 2003" "" "" .SH NAME smbgroupedit \- Query/set/change UNIX - Windows NT group mapping diff --git a/docs/manpages/smbmnt.8 b/docs/manpages/smbmnt.8 index 661f61e3fa5..9d88e286552 100644 --- a/docs/manpages/smbmnt.8 +++ b/docs/manpages/smbmnt.8 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SMBMNT" "8" "18 March 2003" "" "" +.TH "SMBMNT" "8" "24 March 2003" "" "" .SH NAME smbmnt \- helper utility for mounting SMB filesystems diff --git a/docs/manpages/smbmount.8 b/docs/manpages/smbmount.8 index f3244bb8fe7..f34ec152af0 100644 --- a/docs/manpages/smbmount.8 +++ b/docs/manpages/smbmount.8 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SMBMOUNT" "8" "18 March 2003" "" "" +.TH "SMBMOUNT" "8" "24 March 2003" "" "" .SH NAME smbmount \- mount an smbfs filesystem diff --git a/docs/manpages/smbpasswd.5 b/docs/manpages/smbpasswd.5 index 435fc6004ca..0556c8d4dde 100644 --- a/docs/manpages/smbpasswd.5 +++ b/docs/manpages/smbpasswd.5 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SMBPASSWD" "5" "18 March 2003" "" "" +.TH "SMBPASSWD" "5" "24 March 2003" "" "" .SH NAME smbpasswd \- The Samba encrypted password file diff --git a/docs/manpages/smbpasswd.8 b/docs/manpages/smbpasswd.8 index 40232ff42a3..3ebaa4f8c94 100644 --- a/docs/manpages/smbpasswd.8 +++ b/docs/manpages/smbpasswd.8 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SMBPASSWD" "8" "18 March 2003" "" "" +.TH "SMBPASSWD" "8" "24 March 2003" "" "" .SH NAME smbpasswd \- change a user's SMB password diff --git a/docs/manpages/smbsh.1 b/docs/manpages/smbsh.1 index ffcfbfe4400..8e99151e36f 100644 --- a/docs/manpages/smbsh.1 +++ b/docs/manpages/smbsh.1 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SMBSH" "1" "18 March 2003" "" "" +.TH "SMBSH" "1" "24 March 2003" "" "" .SH NAME smbsh \- Allows access to Windows NT filesystem using UNIX commands diff --git a/docs/manpages/smbspool.8 b/docs/manpages/smbspool.8 index 44255d2a7db..2417a1ee2e4 100644 --- a/docs/manpages/smbspool.8 +++ b/docs/manpages/smbspool.8 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SMBSPOOL" "8" "18 March 2003" "" "" +.TH "SMBSPOOL" "8" "24 March 2003" "" "" .SH NAME smbspool \- send a print file to an SMB printer diff --git a/docs/manpages/smbstatus.1 b/docs/manpages/smbstatus.1 index 98c4ac2fadd..5cc68111881 100644 --- a/docs/manpages/smbstatus.1 +++ b/docs/manpages/smbstatus.1 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SMBSTATUS" "1" "18 March 2003" "" "" +.TH "SMBSTATUS" "1" "24 March 2003" "" "" .SH NAME smbstatus \- report on current Samba connections @@ -27,8 +27,46 @@ shared memory area. \fB-b|--brief\fR gives brief output. .TP -\fB-d|--debug=\fR -sets debugging to specified level +\fB-V\fR +Prints the version number for +\fBsmbd\fR. +.TP +\fB-s \fR +The file specified contains the +configuration details required by the server. The +information in this file includes server-specific +information such as what printcap file to use, as well +as descriptions of all the services that the server is +to provide. See \fIsmb.conf(5)\fR for more information. +The default configuration file name is determined at +compile time. +.TP +\fB-d|--debug=debuglevel\fR +\fIdebuglevel\fR is an integer +from 0 to 10. The default value if this parameter is +not specified is zero. + +The higher this value, the more detail will be +logged to the log files about the activities of the +server. At level 0, only critical errors and serious +warnings will be logged. Level 1 is a reasonable level for +day to day running - it generates a small amount of +information about operations carried out. + +Levels above 1 will generate considerable +amounts of log data, and should only be used when +investigating a problem. Levels above 3 are designed for +use only by developers and generate HUGE amounts of log +data, most of which is extremely cryptic. + +Note that specifying this parameter here will +override the log +level file. +.TP +\fB-l|--logfile=logbasename\fR +File name for log/debug files. The extension +".client" will be appended. The log file is +never removed by the client. .TP \fB-v|--verbose\fR gives verbose output. @@ -46,10 +84,8 @@ Useful for scripting. \fB-S|--shares\fR causes smbstatus to only list shares. .TP -\fB-s|--conf=\fR -The default configuration file name is -determined at compile time. The file specified contains the -configuration details required by the server. See \fBsmb.conf\fR(5) for more information. +\fB-h|--help\fR +Print a summary of command line options. .TP \fB-u|--user=\fR selects information relevant to diff --git a/docs/manpages/smbtar.1 b/docs/manpages/smbtar.1 index 310a99fb394..20a261a2b33 100644 --- a/docs/manpages/smbtar.1 +++ b/docs/manpages/smbtar.1 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SMBTAR" "1" "18 March 2003" "" "" +.TH "SMBTAR" "1" "24 March 2003" "" "" .SH NAME smbtar \- shell script for backing up SMB/CIFS shares directly to UNIX tape drives diff --git a/docs/manpages/smbumount.8 b/docs/manpages/smbumount.8 index f4c263ce952..21f5545ceaa 100644 --- a/docs/manpages/smbumount.8 +++ b/docs/manpages/smbumount.8 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SMBUMOUNT" "8" "18 March 2003" "" "" +.TH "SMBUMOUNT" "8" "24 March 2003" "" "" .SH NAME smbumount \- smbfs umount for normal users diff --git a/docs/manpages/swat.8 b/docs/manpages/swat.8 index 4f16e31766f..a76db241009 100644 --- a/docs/manpages/swat.8 +++ b/docs/manpages/swat.8 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "SWAT" "8" "18 March 2003" "" "" +.TH "SWAT" "8" "24 March 2003" "" "" .SH NAME swat \- Samba Web Administration Tool @@ -41,8 +41,57 @@ the \fIsmb.conf\fR file. \fBWARNING: Do NOT enable this option on a production server. \fR +.TP +\fB-V\fR +Prints the version number for +\fBsmbd\fR. +.TP +\fB-s \fR +The file specified contains the +configuration details required by the server. The +information in this file includes server-specific +information such as what printcap file to use, as well +as descriptions of all the services that the server is +to provide. See \fIsmb.conf(5)\fR for more information. +The default configuration file name is determined at +compile time. +.TP +\fB-d|--debug=debuglevel\fR +\fIdebuglevel\fR is an integer +from 0 to 10. The default value if this parameter is +not specified is zero. + +The higher this value, the more detail will be +logged to the log files about the activities of the +server. At level 0, only critical errors and serious +warnings will be logged. Level 1 is a reasonable level for +day to day running - it generates a small amount of +information about operations carried out. + +Levels above 1 will generate considerable +amounts of log data, and should only be used when +investigating a problem. Levels above 3 are designed for +use only by developers and generate HUGE amounts of log +data, most of which is extremely cryptic. + +Note that specifying this parameter here will +override the log +level file. +.TP +\fB-l|--logfile=logbasename\fR +File name for log/debug files. The extension +".client" will be appended. The log file is +never removed by the client. +.TP +\fB-h|--help\fR +Print a summary of command line options. .SH "INSTALLATION" .PP +Swat is included as binary package with most distributions. The +package manager in this case takes care of the installation and +configuration. This section is only for those who have compiled +swat from scratch. +.PP After you compile SWAT you need to run \fBmake install \fR to install the \fBswat\fR binary and the various help files and images. A default install would put @@ -67,7 +116,7 @@ add a line like this: .PP \fBswat 901/tcp\fR .PP -Note for NIS/YP users - you may need to rebuild the +Note for NIS/YP and LDAP users - you may need to rebuild the NIS service maps rather than alter your local \fI /etc/services\fR file. .PP the choice of port number isn't really important @@ -86,7 +135,7 @@ One you have edited \fI/etc/services\fR and \fI/etc/inetd.conf\fR you need to send a HUP signal to inetd. To do this use \fBkill -1 PID \fR where PID is the process ID of the inetd daemon. -.SS "LAUNCHING" +.SH "LAUNCHING" .PP To launch SWAT just run your favorite web browser and point it at "http://localhost:901/". @@ -118,7 +167,7 @@ comments, \fIinclude=\fR and \fIcopy= \fR options. If you have a carefully crafted \fI smb.conf\fR then back it up or don't use swat! .SH "VERSION" .PP -This man page is correct for version 2.2 of the Samba suite. +This man page is correct for version 3.0 of the Samba suite. .SH "SEE ALSO" .PP \fBinetd(5)\fR, \fBsmbd\fR(8), \fBsmb.conf\fR(5) diff --git a/docs/manpages/testparm.1 b/docs/manpages/testparm.1 index d66a018043b..cf91b232955 100644 --- a/docs/manpages/testparm.1 +++ b/docs/manpages/testparm.1 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "TESTPARM" "1" "18 March 2003" "" "" +.TH "TESTPARM" "1" "24 March 2003" "" "" .SH NAME testparm \- check an smb.conf configuration file for internal correctness @@ -40,8 +40,12 @@ Without this option, \fBtestparm\fR will prompt for a carriage return after printing the service names and before dumping the service definitions. .TP -\fB-h\fR -Print usage message +\fB-h|--help\fR +Print a summary of command line options. +.TP +\fB-V\fR +Prints the version number for +\fBsmbd\fR. .TP \fB-L servername\fR Sets the value of the %L macro to \fIservername\fR. diff --git a/docs/manpages/testprns.1 b/docs/manpages/testprns.1 index 77cf99c5577..66f4a08f56a 100644 --- a/docs/manpages/testprns.1 +++ b/docs/manpages/testprns.1 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "TESTPRNS" "1" "18 March 2003" "" "" +.TH "TESTPRNS" "1" "24 March 2003" "" "" .SH NAME testprns \- check printer name for validity with smbd diff --git a/docs/manpages/vfstest.1 b/docs/manpages/vfstest.1 index 116642ddc5d..f123fcc9f32 100644 --- a/docs/manpages/vfstest.1 +++ b/docs/manpages/vfstest.1 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "VFSTEST" "1" "18 March 2003" "" "" +.TH "VFSTEST" "1" "24 March 2003" "" "" .SH NAME vfstest \- tool for testing samba VFS modules @@ -25,6 +25,28 @@ supports cascaded VFS modules. Execute the specified (colon-separated) commands. See below for the commands that are available. .TP +\fB-h|--help\fR +Print a summary of command line options. +.TP +\fB-l|--logfile=logbasename\fR +File name for log/debug files. The extension +\&'.client' will be appended. The log file is never removed +by the client. +.TP +\fB-V\fR +Prints the version number for +\fBsmbd\fR. +.TP +\fB-s \fR +The file specified contains the +configuration details required by the server. The +information in this file includes server-specific +information such as what printcap file to use, as well +as descriptions of all the services that the server is +to provide. See \fIsmb.conf(5)\fR for more information. +The default configuration file name is determined at +compile time. +.TP \fB-d|--debug=debuglevel\fR \fIdebuglevel\fR is an integer from 0 to 10. The default value if this parameter is @@ -47,13 +69,10 @@ Note that specifying this parameter here will override the log level file. .TP -\fB-h|--help\fR -Print a summary of command line options. -.TP \fB-l|--logfile=logbasename\fR File name for log/debug files. The extension -\&'.client' will be appended. The log file is never removed -by the client. +".client" will be appended. The log file is +never removed by the client. .SH "COMMANDS" .PP \fBVFS COMMANDS\fR diff --git a/docs/manpages/wbinfo.1 b/docs/manpages/wbinfo.1 index 77f5d3e2fbf..d3ed336b47c 100644 --- a/docs/manpages/wbinfo.1 +++ b/docs/manpages/wbinfo.1 @@ -3,13 +3,13 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "WBINFO" "1" "18 March 2003" "" "" +.TH "WBINFO" "1" "24 March 2003" "" "" .SH NAME wbinfo \- Query information from winbind daemon .SH SYNOPSIS -\fBwbinfo\fR [ \fB-u\fR ] [ \fB-g\fR ] [ \fB-i ip\fR ] [ \fB-N netbios-name\fR ] [ \fB-n name\fR ] [ \fB-s sid\fR ] [ \fB-U uid\fR ] [ \fB-G gid\fR ] [ \fB-S sid\fR ] [ \fB-Y sid\fR ] [ \fB-t\fR ] [ \fB-m\fR ] [ \fB-r user\fR ] [ \fB-a user%password\fR ] [ \fB-A user%password\fR ] [ \fB-p\fR ] +\fBwbinfo\fR [ \fB-u\fR ] [ \fB-g\fR ] [ \fB-N netbios-name\fR ] [ \fB-I ip\fR ] [ \fB-n name\fR ] [ \fB-s sid\fR ] [ \fB-U uid\fR ] [ \fB-G gid\fR ] [ \fB-S sid\fR ] [ \fB-Y sid\fR ] [ \fB-t\fR ] [ \fB-m\fR ] [ \fB--sequence\fR ] [ \fB-r user\fR ] [ \fB-a user%password\fR ] [ \fB-A user%password\fR ] [ \fB--get-auth-user\fR ] [ \fB-p\fR ] .SH "DESCRIPTION" .PP @@ -96,6 +96,10 @@ Windows NT server \fBwinbindd\fR(8) contacts when resolving names. This list does not include the Windows NT domain the server is a Primary Domain Controller for. .TP +\fB--sequence\fR +Show sequence numbers of +all known domains +.TP \fB-r username\fR Try to obtain the list of UNIX group ids to which the user belongs. This only works for users @@ -111,6 +115,23 @@ during session setup to a domain controller. This enables winbindd to operate in a Windows 2000 domain with Restrict Anonymous turned on (a.k.a. Permissions compatiable with Windows 2000 servers only). +.TP +\fB--get-auth-user\fR +Print username and password used by winbindd +during session setup to a domain controller. Username +and password can be set using '-A'. Only available for +root. +.TP +\fB-p\fR +Check whether winbindd is still alive. +Prints out either 'succeeded' or 'failed'. +.TP +\fB-V\fR +Prints the version number for +\fBsmbd\fR. +.TP +\fB-h|--help\fR +Print a summary of command line options. .SH "EXIT STATUS" .PP The wbinfo program returns 0 if the operation diff --git a/docs/manpages/winbindd.8 b/docs/manpages/winbindd.8 index 0d84648d772..a02fe32b04d 100644 --- a/docs/manpages/winbindd.8 +++ b/docs/manpages/winbindd.8 @@ -3,7 +3,7 @@ .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . -.TH "WINBINDD" "8" "18 March 2003" "" "" +.TH "WINBINDD" "8" "24 March 2003" "" "" .SH NAME winbindd \- Name Service Switch daemon for resolving names from NT servers @@ -90,11 +90,79 @@ If specified, this parameter causes \fBwinbindd\fR to log to standard output rather than a file. .TP -\fB-d debuglevel\fR -Sets the debuglevel to an integer between -0 and 100. 0 is for no debugging and 100 is for reams and -reams. To submit a bug report to the Samba Team, use debug -level 100 (see BUGS.txt). +\fB-V\fR +Prints the version number for +\fBsmbd\fR. +.TP +\fB-s \fR +The file specified contains the +configuration details required by the server. The +information in this file includes server-specific +information such as what printcap file to use, as well +as descriptions of all the services that the server is +to provide. See \fIsmb.conf(5)\fR for more information. +The default configuration file name is determined at +compile time. +.TP +\fB-d|--debug=debuglevel\fR +\fIdebuglevel\fR is an integer +from 0 to 10. The default value if this parameter is +not specified is zero. + +The higher this value, the more detail will be +logged to the log files about the activities of the +server. At level 0, only critical errors and serious +warnings will be logged. Level 1 is a reasonable level for +day to day running - it generates a small amount of +information about operations carried out. + +Levels above 1 will generate considerable +amounts of log data, and should only be used when +investigating a problem. Levels above 3 are designed for +use only by developers and generate HUGE amounts of log +data, most of which is extremely cryptic. + +Note that specifying this parameter here will +override the log +level file. +.TP +\fB-l|--logfile=logbasename\fR +File name for log/debug files. The extension +".client" will be appended. The log file is +never removed by the client. +.TP +\fB-n \fR +This option allows you to override +the NetBIOS name that Samba uses for itself. This is identical +to setting the \fINetBIOS +name\fR parameter in the \fBsmb.conf\fR(5) file. However, a command +line setting will take precedence over settings in +\fBsmb.conf\fR(5). +.TP +\fB-i \fR +This specifies a NetBIOS scope that +\fBnmblookup\fR will use to communicate with when +generating NetBIOS names. For details on the use of NetBIOS +scopes, see rfc1001.txt and rfc1002.txt. NetBIOS scopes are +\fBvery\fR rarely used, only set this parameter +if you are the system administrator in charge of all the +NetBIOS systems you communicate with. +.TP +\fB-W|--workgroup=domain\fR +Set the SMB domain of the username. This +overrides the default domain which is the domain defined in +smb.conf. If the domain specified is the same as the servers +NetBIOS name, it causes the client to log on using the servers local +SAM (as opposed to the Domain SAM). +.TP +\fB-O socket options\fR +TCP socket options to set on the client +socket. See the socket options parameter in +the \fBsmb.conf\fR(5) manual page for the list of valid +options. +.TP +\fB-h|--help\fR +Print a summary of command line options. .TP \fB-i\fR Tells \fBwinbindd\fR to not @@ -118,10 +186,6 @@ as 2 threads. The first will answer all requests from the cache, thus making responses to clients faster. The other will update the cache for the query that the first has just responded. Advantage of this is that responses are accurate and fast. -.TP -\fB-s|--conf=smb.conf\fR -Specifies the location of the all-important -\fBsmb.conf\fR(5) file. .SH "NAME AND ID RESOLUTION" .PP Users and groups on a Windows NT server are assigned -- cgit From bf439d733df6a11a25ff561a853c3382a3b34b96 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 26 Mar 2003 12:53:28 +0000 Subject: Output backtrace to logfile in smb_panic(), as suggested by mbp (only on systems that support it, of course) --- source/configure.in | 2 +- source/include/local.h | 4 ++++ source/lib/util.c | 35 +++++++++++++++++++++++++++-------- 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/source/configure.in b/source/configure.in index 733037b9774..cc67efbb90b 100644 --- a/source/configure.in +++ b/source/configure.in @@ -796,7 +796,7 @@ AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf) AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink) AC_CHECK_FUNCS(syslog vsyslog getgrouplist timegm) # setbuffer, shmget, shm_open are needed for smbtorture -AC_CHECK_FUNCS(setbuffer shmget shm_open) +AC_CHECK_FUNCS(setbuffer shmget shm_open backtrace_symbols) # syscall() is needed for smbwrapper. AC_CHECK_FUNCS(syscall) diff --git a/source/include/local.h b/source/include/local.h index 29b0641119d..4c3c58e14fc 100644 --- a/source/include/local.h +++ b/source/include/local.h @@ -223,4 +223,8 @@ /* Max number of simultaneous winbindd socket connections. */ #define WINBINDD_MAX_SIMULTANEOUS_CLIENTS 200 + +/* Buffer size to use when printing backtraces */ +#define BACKTRACE_STACK_SIZE 64 + #endif diff --git a/source/lib/util.c b/source/lib/util.c index b67896c648a..8bc36a4fb45 100644 --- a/source/lib/util.c +++ b/source/lib/util.c @@ -1400,20 +1400,24 @@ void smb_panic(const char *why) { char *cmd; int result; + size_t i; + void *backtrace_stack[BACKTRACE_STACK_SIZE]; + size_t backtrace_size; + char **backtrace_strings; #ifdef DEVELOPER { extern char *global_clobber_region_function; extern unsigned int global_clobber_region_line; - + if (global_clobber_region_function) { DEBUG(0,("smb_panic: clobber_region() last called from [%s(%u)]\n", - global_clobber_region_function, - global_clobber_region_line)); + global_clobber_region_function, + global_clobber_region_line)); } } #endif - + cmd = lp_panic_action(); if (cmd && *cmd) { DEBUG(0, ("smb_panic(): calling panic action [%s]\n", cmd)); @@ -1421,19 +1425,34 @@ void smb_panic(const char *why) if (result == -1) DEBUG(0, ("smb_panic(): fork failed in panic action: %s\n", - strerror(errno))); + strerror(errno))); else DEBUG(0, ("smb_panic(): action returned status %d\n", - WEXITSTATUS(result))); + WEXITSTATUS(result))); } DEBUG(0,("PANIC: %s\n", why)); + DEBUG(0, ("%d stack frames:\n", backtrace_size)); + +#ifdef HAVE_BACKTRACE_SYMBOLS + /* get the backtrace (stack frames) */ + backtrace_size = backtrace(backtrace_stack,BACKTRACE_STACK_SIZE); + backtrace_strings = backtrace_symbols(backtrace_stack, backtrace_size); + + if (backtrace_strings) { + for (i = 0; i < backtrace_size; i++) + DEBUG(0, (" #%u %s\n", i, backtrace_strings[i])); + } + + free(backtrace_strings); +#endif + dbgflush(); abort(); } /******************************************************************* - A readdir wrapper which just returns the file name. -********************************************************************/ + A readdir wrapper which just returns the file name. + ********************************************************************/ const char *readdirname(DIR *p) { -- cgit From af98285f4e4fc4a0e890fed2c71b09280252b3f4 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 26 Mar 2003 13:30:26 +0000 Subject: Fix $LDAP_LIBS --- source/configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/configure.in b/source/configure.in index cc67efbb90b..16f2330e3dd 100644 --- a/source/configure.in +++ b/source/configure.in @@ -2241,12 +2241,12 @@ if test x"$with_ldap_support" = x"yes"; then ################################################################## # we might need the lber lib on some systems. To avoid link errors # this test must be before the libldap test - AC_CHECK_LIB(lber, ber_scanf, [LDAP_LIBS="$LIBS -llber"]) + AC_CHECK_LIB(lber, ber_scanf, [LDAP_LIBS="$LDAP_LIBS -llber"]) ######################################################## # now see if we can find the ldap libs in standard paths if test x$have_ldap != xyes; then - AC_CHECK_LIB(ldap, ldap_domain2hostlist, [LDAP_LIBS="$LIBS -lldap"; + AC_CHECK_LIB(ldap, ldap_domain2hostlist, [LDAP_LIBS="$LDAP_LIBS -lldap"; AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])]) AC_CHECK_HEADERS([ldap.h lber.h], [default_modules="$default_modules pdb_ldap"]) -- cgit From d453b656e56a9b836b76f1cdce8de65d7bc4eb6c Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 26 Mar 2003 13:43:29 +0000 Subject: Use execinfo.h to get prototypes for backtrace_symbols (fixes some warnings) --- source/configure.in | 2 +- source/include/includes.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/source/configure.in b/source/configure.in index 16f2330e3dd..445461e4f76 100644 --- a/source/configure.in +++ b/source/configure.in @@ -473,7 +473,7 @@ AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h) AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h) AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h dlfcn.h) -AC_CHECK_HEADERS(sys/syslog.h syslog.h) +AC_CHECK_HEADERS(sys/syslog.h syslog.h execinfo.h) # In valgrind 1.0.x, it's just valgrind.h. In 1.9.x+ there's a # subdirectory of headers. diff --git a/source/include/includes.h b/source/include/includes.h index 2bba9d5084c..f536ea88fe5 100644 --- a/source/include/includes.h +++ b/source/include/includes.h @@ -345,6 +345,10 @@ #include #endif +#ifdef HAVE_EXECINFO_H +#include +#endif + #ifdef HAVE_SYS_CAPABILITY_H #if defined(BROKEN_REDHAT_7_SYSTEM_HEADERS) && !defined(_I386_STATFS_H) -- cgit From b49436d020f8d88d42428c83ea9a278d3433d134 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 26 Mar 2003 13:49:23 +0000 Subject: Use SAFE_FREE() instead of plain free() - pointed out by metze --- source/lib/util.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/lib/util.c b/source/lib/util.c index 8bc36a4fb45..da98f5a3cf0 100644 --- a/source/lib/util.c +++ b/source/lib/util.c @@ -1441,9 +1441,10 @@ void smb_panic(const char *why) if (backtrace_strings) { for (i = 0; i < backtrace_size; i++) DEBUG(0, (" #%u %s\n", i, backtrace_strings[i])); + + SAFE_FREE(backtrace_strings); } - free(backtrace_strings); #endif dbgflush(); -- cgit From c6f6795710a5115903772a2938a028f20954deb5 Mon Sep 17 00:00:00 2001 From: Alexander Bokovoy Date: Wed, 26 Mar 2003 15:06:45 +0000 Subject: Document results of smb.conf(5) inspection. We have 13 undocumented parameters for HEAD --- docs/docs-status | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/docs-status b/docs/docs-status index 97aa11f8bc6..78316b3907b 100644 --- a/docs/docs-status +++ b/docs/docs-status @@ -48,6 +48,23 @@ Winbind in a samba controlled domain One Time Migration script from a Windows NT 4.0 PDC to a Samba PDC ldap passwd sync +http://www.unav.es/cti/ldap-smb/smb-ldap-3-howto.html + Not release-critical: docs/docbook/devdoc/* - most of these docs are outdated and need updates... docs/docbook/projdoc/Diagnosis.sgml - Needs extension + +Documentation for following smb.conf.5 parameters does not exist: +set primary group script // logon +-valid // misc +acl compatibility // protocol +client signing // protocol +client use spnego // protocol +profile acls // protocol +client lanman auth // security +client NTLMv2 auth // security +idmap backend // security +preload modules // security +sam backend // security +kernel change notify // tuning +lpq cache time // tuning -- cgit From 4868633bc8182b939190d3cdb86b24cbdb78b5e1 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 26 Mar 2003 19:31:44 +0000 Subject: Fix extra NULL arg added during app-head merge. Jeremy. --- source/printing/printing.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/printing/printing.c b/source/printing/printing.c index da29eab9f2d..b6c4969761b 100644 --- a/source/printing/printing.c +++ b/source/printing/printing.c @@ -838,7 +838,7 @@ static void store_queue_struct(struct tdb_print_db *pdb, struct traverse_struct data.dsize += tdb_pack(NULL, 0, NULL, "d", qcount); for (i = 0; i < pts->qcount; i++) { - data.dsize += tdb_pack(NULL, 0, NULL, "ddddddff", + data.dsize += tdb_pack(NULL, 0, "ddddddff", (uint32)queue[i].job, (uint32)queue[i].size, (uint32)queue[i].page_count, @@ -853,9 +853,9 @@ static void store_queue_struct(struct tdb_print_db *pdb, struct traverse_struct return; len = 0; - len += tdb_pack(data.dptr + len, data.dsize - len, NULL, "d", qcount); + len += tdb_pack(data.dptr + len, data.dsize - len, "d", qcount); for (i = 0; i < pts->qcount; i++) { - len += tdb_pack(data.dptr + len, data.dsize - len, NULL, "ddddddff", + len += tdb_pack(data.dptr + len, data.dsize - len, "ddddddff", (uint32)queue[i].job, (uint32)queue[i].size, (uint32)queue[i].page_count, -- cgit From f81128bc0187765f6f9e6d7e05eaebf778cbfec8 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 26 Mar 2003 19:42:51 +0000 Subject: Add defines for platforms that need them. Jeremy. --- source/configure.in | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/configure.in b/source/configure.in index 445461e4f76..999bd3c5f5f 100644 --- a/source/configure.in +++ b/source/configure.in @@ -938,6 +938,7 @@ if test "$enable_shared" = "yes"; then PICSUFFIX="po.o" fi AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block]) + AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly]) ;; *sunos*) AC_DEFINE(SUNOS4,1,[Whether the host os is sunos4]) BLDSHARED="true" @@ -945,6 +946,7 @@ if test "$enable_shared" = "yes"; then SONAMEFLAG="-Wl,-h," PICFLAG="-KPIC" # Is this correct for SunOS AC_DEFINE(STAT_ST_BLOCKSIZE,512) + AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly]) ;; *netbsd* | *freebsd*) BLDSHARED="true" LDSHFLAGS="-shared" @@ -952,6 +954,7 @@ if test "$enable_shared" = "yes"; then SONAMEFLAG="-Wl,-soname," PICFLAG="-fPIC -DPIC" AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block]) + AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly]) ;; *openbsd*) BLDSHARED="true" LDSHFLAGS="-shared" @@ -959,6 +962,7 @@ if test "$enable_shared" = "yes"; then SONAMEFLAG="-Wl,-soname," PICFLAG="-fPIC" AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block]) + AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly]) ;; *irix*) AC_DEFINE(IRIX,1,[Whether the host os is irix]) case "$host_os" in @@ -1001,6 +1005,7 @@ if test "$enable_shared" = "yes"; then fi DYNEXP="-Wl,-E" AC_DEFINE(STAT_ST_BLOCKSIZE,8192,[The size of a block]) + AC_DEFINE(POSIX_ACL_NEEDS_MASK,1,[Does a POSIX ACL need a mask element]) ;; *qnx*) AC_DEFINE(QNX,1,[Whether the host os is qnx]) AC_DEFINE(STAT_ST_BLOCKSIZE,512) @@ -1011,6 +1016,7 @@ if test "$enable_shared" = "yes"; then SONAMEFLAG="-Wl,-soname," PICFLAG="-fPIC" AC_DEFINE(STAT_ST_BLOCKSIZE,512) + AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly]) ;; *sco*) AC_DEFINE(SCO,1,[Whether the host os is sco unix]) AC_DEFINE(STAT_ST_BLOCKSIZE,512) -- cgit From c6807d20457325012c4c9edd137b2f1f67e98ec4 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 26 Mar 2003 20:16:48 +0000 Subject: Remove LDAP_LIBS and just use LIBS again as before. I'll fix this better later. --- source/Makefile.in | 2 +- source/configure.in | 9 ++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index 53f4fad9d2c..4e02eb83177 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -987,7 +987,7 @@ bin/mysql.@SHLIBEXT@: $(MYSQL_OBJ) bin/ldapsam.@SHLIBEXT@: passdb/pdb_ldap.o @echo "Building plugin $@" - @$(SHLD) $(LDSHFLAGS) -o $@ @LDAP_LIBS@ passdb/pdb_ldap.o \ + @$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_ldap.o \ @SONAMEFLAG@`basename $@` bin/tdbsam.@SHLIBEXT@: passdb/pdb_tdb.o diff --git a/source/configure.in b/source/configure.in index 999bd3c5f5f..82e4b9a50d0 100644 --- a/source/configure.in +++ b/source/configure.in @@ -2247,12 +2247,12 @@ if test x"$with_ldap_support" = x"yes"; then ################################################################## # we might need the lber lib on some systems. To avoid link errors # this test must be before the libldap test - AC_CHECK_LIB(lber, ber_scanf, [LDAP_LIBS="$LDAP_LIBS -llber"]) + AC_CHECK_LIB(lber, ber_scanf, [LIBS="$LIBS -llber"]) ######################################################## # now see if we can find the ldap libs in standard paths if test x$have_ldap != xyes; then - AC_CHECK_LIB(ldap, ldap_domain2hostlist, [LDAP_LIBS="$LDAP_LIBS -lldap"; + AC_CHECK_LIB(ldap, ldap_domain2hostlist, [LIBS="$LIBS -lldap"; AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])]) AC_CHECK_HEADERS([ldap.h lber.h], [default_modules="$default_modules pdb_ldap"]) @@ -2267,13 +2267,8 @@ if test x"$with_ldap_support" = x"yes"; then AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $pam_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc]) fi - if test x"$with_ads_support" = x"yes"; then - LIBS="$LIBS $LDAP_LIBS" - fi fi -AC_SUBST(LDAP_LIBS) - ######################################################## # Compile with MySQL support? AM_PATH_MYSQL([0.11.0],[default_modules="$default_modules pdb_mysql"],[]) -- cgit From ae754e9355c78c22ff5ca5a7f3276e61b4a8fcb7 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 26 Mar 2003 22:15:37 +0000 Subject: Fix DOS del command with widelinks = False. Jeremy. --- source/smbd/reply.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/smbd/reply.c b/source/smbd/reply.c index 1a1c84efed5..bf74d997b8b 100644 --- a/source/smbd/reply.c +++ b/source/smbd/reply.c @@ -401,7 +401,8 @@ int reply_chkpth(connection_struct *conn, char *inbuf,char *outbuf, int dum_size if (check_name(name,conn)) { if (VALID_STAT(sbuf) || vfs_stat(conn,name,&sbuf) == 0) - ok = S_ISDIR(sbuf.st_mode); + if (!(ok = S_ISDIR(sbuf.st_mode))) + errno = ENOTDIR; } if (!ok) { -- cgit From 5306f6f7c88234d51c4ff13d5451d3489de6b00e Mon Sep 17 00:00:00 2001 From: "Christopher R. Hertel" Date: Thu, 27 Mar 2003 05:11:25 +0000 Subject: The definition of pstrcpy_base(), and the preceeding comments, were given twice (probably a cut/paste error). The definition of pstrcpy_base(), and the preceeding comments, were given twice (probably a cut/paste error). --- source/include/safe_string.h | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/source/include/safe_string.h b/source/include/safe_string.h index f26a5785cbd..a6b352b02e8 100644 --- a/source/include/safe_string.h +++ b/source/include/safe_string.h @@ -122,21 +122,15 @@ size_t __unsafe_string_function_usage_here_char__(void); #define safe_strcpy_base(dest, src, base, size) \ safe_strcpy(dest, src, size-PTR_DIFF(dest,base)-1) -/* String copy functions - macro hell below adds 'type checking' (limited, but the best we can - do in C) and may tag with function name/number to record the last 'clobber region' on - that string */ +/* String copy functions - macro hell below adds 'type checking' + (limited, but the best we can do in C) and may tag with function + name/number to record the last 'clobber region' on that string */ #define pstrcpy(d,s) safe_strcpy((d), (s),sizeof(pstring)-1) #define pstrcat(d,s) safe_strcat((d), (s),sizeof(pstring)-1) #define fstrcpy(d,s) safe_strcpy((d),(s),sizeof(fstring)-1) #define fstrcat(d,s) safe_strcat((d),(s),sizeof(fstring)-1) -/* the addition of the DEVELOPER checks in safe_strcpy means we must - * update a lot of code. To make this a little easier here are some - * functions that provide the lengths with less pain */ -#define pstrcpy_base(dest, src, pstring_base) \ - safe_strcpy(dest, src, sizeof(pstring)-PTR_DIFF(dest,pstring_base)-1) - /* Inside the _fn variants of these is a call to clobber_region(), - * which might destroy the stack on a buggy function. We help the -- cgit From cebe8d8b424f10006f2f791a8f086c6c8a7f5d57 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 27 Mar 2003 12:08:46 +0000 Subject: Use the new modules system in VFS. If a module can't be loaded with the new modules system, we still fall back to the old system. --- source/Makefile.in | 24 ++++--- source/configure.in | 7 ++ source/include/vfs.h | 4 +- source/modules/vfs_audit.c | 14 ++-- source/modules/vfs_extd_audit.c | 15 ++--- source/modules/vfs_fake_perms.c | 8 +-- source/modules/vfs_netatalk.c | 8 +-- source/modules/vfs_recycle.c | 41 ++---------- source/smbd/server.c | 2 +- source/smbd/vfs.c | 143 ++++++++++++++++++++++++++++++---------- 10 files changed, 155 insertions(+), 111 deletions(-) diff --git a/source/Makefile.in b/source/Makefile.in index 4e02eb83177..32c8e73b516 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -136,8 +136,7 @@ SCRIPTS = $(srcdir)/script/smbtar $(srcdir)/script/addtosmbpass $(srcdir)/script QUOTAOBJS=@QUOTAOBJS@ -VFS_MODULES = bin/vfs_audit.@SHLIBEXT@ bin/vfs_extd_audit.@SHLIBEXT@ bin/vfs_recycle.@SHLIBEXT@ \ - bin/vfs_netatalk.@SHLIBEXT@ bin/vfs_fake_perms.@SHLIBEXT@ +VFS_MODULES = @VFS_MODULES@ PDB_MODULES = @PDB_MODULES@ RPC_MODULES = @RPC_MODULES@ CHARSET_MODULES = @CHARSET_MODULES@ @@ -327,8 +326,8 @@ SMBD_OBJ_SRV = smbd/files.o smbd/chgpasswd.o smbd/connection.o \ smbd/change_trust_pw.o \ $(MANGLE_OBJ) -SMBD_OBJ_BASE = $(SMBD_OBJ_SRV) $(MSDFS_OBJ) $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) \ - $(RPC_SERVER_OBJ) $(RPC_PARSE_OBJ) $(SECRETS_OBJ) \ +SMBD_OBJ_BASE = $(PARAM_OBJ) $(SMBD_OBJ_SRV) $(MSDFS_OBJ) $(LIBSMB_OBJ) \ + $(RPC_SERVER_OBJ) $(RPC_PARSE_OBJ) $(SECRETS_OBJ) $(UBIQX_OBJ) \ $(LOCKING_OBJ) $(PASSDB_OBJ) $(PRINTING_OBJ) $(PROFILE_OBJ) \ $(LIB_OBJ) $(PRINTBACKEND_OBJ) $(QUOTAOBJS) $(OPLOCK_OBJ) \ $(NOTIFY_OBJ) $(GROUPDB_OBJ) $(AUTH_OBJ) \ @@ -346,8 +345,7 @@ PRINTBACKEND_OBJ = printing/printing.o printing/nt_printing.o printing/notify.o MSDFS_OBJ = msdfs/msdfs.o -SMBD_OBJ = $(SMBD_OBJ_MAIN) $(SMBD_OBJ_BASE) - +SMBD_OBJ = $(SMBD_OBJ_BASE) $(SMBD_OBJ_MAIN) NMBD_OBJ1 = nmbd/asyncdns.o nmbd/nmbd.o nmbd/nmbd_become_dmb.o \ nmbd/nmbd_become_lmb.o nmbd/nmbd_browserdb.o \ nmbd/nmbd_browsesync.o nmbd/nmbd_elections.o \ @@ -603,7 +601,7 @@ NTLM_AUTH_OBJ = utils/ntlm_auth.o $(LIBNTLMSSP_OBJ) $(LIBSAMBA_OBJ) $(POPT_LIB_O # now the rules... ###################################################################### all : SHOWFLAGS proto_exists $(SBIN_PROGS) $(BIN_PROGS) $(SHLIBS) \ - $(TORTURE_PROGS) @EXTRA_ALL_TARGETS@ + $(TORTURE_PROGS) $(MODULES) @EXTRA_ALL_TARGETS@ pam_smbpass : SHOWFLAGS bin/pam_smbpass.@SHLIBEXT@ @@ -1020,27 +1018,27 @@ bin/xml.@SHLIBEXT@: $(XML_OBJ) @$(SHLD) $(LDSHFLAGS) -o $@ $(XML_OBJ) @XML_LIBS@ \ @SONAMEFLAG@`basename $@` -bin/vfs_audit.@SHLIBEXT@: $(VFS_AUDIT_OBJ) +bin/audit.@SHLIBEXT@: $(VFS_AUDIT_OBJ) @echo "Building plugin $@" @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_AUDIT_OBJ) \ @SONAMEFLAG@`basename $@` -bin/vfs_extd_audit.@SHLIBEXT@: $(VFS_EXTD_AUDIT_OBJ) +bin/extd_audit.@SHLIBEXT@: $(VFS_EXTD_AUDIT_OBJ) @echo "Building plugin $@" @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_AUDIT_OBJ) \ @SONAMEFLAG@`basename $@` -bin/vfs_recycle.@SHLIBEXT@: $(VFS_RECYCLE_OBJ) +bin/recycle.@SHLIBEXT@: $(VFS_RECYCLE_OBJ) @echo "Building plugin $@" @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_RECYCLE_OBJ) \ @SONAMEFLAG@`basename $@` -bin/vfs_netatalk.@SHLIBEXT@: $(VFS_NETATALK_OBJ) +bin/netatalk.@SHLIBEXT@: $(VFS_NETATALK_OBJ) @echo "Building plugin $@" @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_NETATALK_OBJ) \ @SONAMEFLAG@`basename $@` -bin/vfs_fake_perms.@SHLIBEXT@: $(VFS_FAKE_PERMS_OBJ) +bin/fake_perms.@SHLIBEXT@: $(VFS_FAKE_PERMS_OBJ) @echo "Building plugin $@" @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_FAKE_PERMS_OBJ) \ @SONAMEFLAG@`basename $@` @@ -1074,7 +1072,7 @@ bin/t_strcmp@EXEEXT@: bin/libbigballofmud.@SHLIBEXT@ torture/t_strcmp.o bin/t_stringoverflow@EXEEXT@: bin/libbigballofmud.@SHLIBEXT@ torture/t_stringoverflow.o $(CC) $(FLAGS) -o $@ torture/t_stringoverflow.o -L./bin -lbigballofmud -install: installbin installman installscripts installdat installswat +install: installbin installman installscripts installdat installswat installmodules # DESTDIR is used here to prevent packagers wasting their time # duplicating the Makefile. Remove it and you will have the privelege diff --git a/source/configure.in b/source/configure.in index 82e4b9a50d0..a299864068e 100644 --- a/source/configure.in +++ b/source/configure.in @@ -3394,6 +3394,13 @@ SMB_MODULE(vfs_fake_perms, \$(VFS_FAKE_PERMS_OBJ), bin/fake_perms.so, VFS) SMB_MODULE(vfs_netatalk, \$(VFS_NETATALK), bin/netatalk.so, VFS) SMB_SUBSYSTEM(VFS) +SMB_MODULE(vfs_recycle, \$(VFS_RECYCLE_OBJ), bin/recycle.so, VFS) +SMB_MODULE(vfs_audit, \$(VFS_AUDIT_OBJ), bin/audit.so, VFS) +SMB_MODULE(vfs_extd_audit, \$(VFS_EXTD_AUDIT_OBJ), bin/extd_audit.so, VFS) +SMB_MODULE(vfs_fake_perms, \$(VFS_FAKE_PERMS_OBJ), bin/fake_perms.so, VFS) +SMB_MODULE(vfs_netatalk, \$(VFS_NETATALK), bin/netatalk.so, VFS) +SMB_SUBSYSTEM(VFS) + AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules]) AC_SUBST(MODULES_CLEAN) diff --git a/source/include/vfs.h b/source/include/vfs.h index 9a067643713..756e417814d 100644 --- a/source/include/vfs.h +++ b/source/include/vfs.h @@ -48,7 +48,7 @@ #define SMB_VFS_INTERFACE_VERSION 5 -/* Version of supported cascaded interface backward copmatibility. +/* Version of supported cascaded interface backward compatibility. (version 5 corresponds to SMB_VFS_INTERFACE_VERSION 5) It is used in vfs_init_custom() to detect VFS modules which conform to cascaded VFS interface but implement elder version than current version of Samba uses. @@ -77,7 +77,7 @@ is unloaded from smbd process using sys_dlclose(). Prototypes: - vfs_op_tuple *vfs_init(int *vfs_version, const struct vfs_ops *def_vfs_ops, + vfs_op_tuple *vfs_init(const struct vfs_ops *def_vfs_ops, struct smb_vfs_handle_struct *vfs_handle); void vfs_done(connection_struct *conn); diff --git a/source/modules/vfs_audit.c b/source/modules/vfs_audit.c index 1944c98e531..fa9bf67a672 100644 --- a/source/modules/vfs_audit.c +++ b/source/modules/vfs_audit.c @@ -98,10 +98,9 @@ static vfs_op_tuple audit_ops[] = { /* VFS initialisation function. Return vfs_op_tuple array back to SAMBA. */ -vfs_op_tuple *vfs_init(int *vfs_version, struct vfs_ops *def_vfs_ops, +static vfs_op_tuple *audit_init(const struct vfs_ops *def_vfs_ops, struct smb_vfs_handle_struct *vfs_handle) { - *vfs_version = SMB_VFS_INTERFACE_VERSION; memcpy(&default_vfs_ops, def_vfs_ops, sizeof(struct vfs_ops)); audit_handle = vfs_handle; @@ -111,12 +110,6 @@ vfs_op_tuple *vfs_init(int *vfs_version, struct vfs_ops *def_vfs_ops, return audit_ops; } -/* VFS finalization function. */ -void vfs_done(connection_struct *conn) -{ - syslog(SYSLOG_PRIORITY, "VFS_DONE: vfs module unloaded\n"); -} - /* Implementation of vfs_ops. Pass everything on to the default operation but log event first. */ @@ -276,3 +269,8 @@ static int audit_fchmod_acl(struct files_struct *fsp, int fd, mode_t mode) return result; } + +int vfs_audit_init(void) +{ + return smb_register_vfs("audit", audit_init, SMB_VFS_INTERFACE_VERSION); +} diff --git a/source/modules/vfs_extd_audit.c b/source/modules/vfs_extd_audit.c index c75dc1d09c2..f60acab36af 100644 --- a/source/modules/vfs_extd_audit.c +++ b/source/modules/vfs_extd_audit.c @@ -99,10 +99,9 @@ static vfs_op_tuple audit_ops[] = { /* VFS initialisation function. Return vfs_op_tuple array back to SAMBA. */ -vfs_op_tuple *vfs_init(int *vfs_version, struct vfs_ops *def_vfs_ops, +static vfs_op_tuple *audit_init(const struct vfs_ops *def_vfs_ops, struct smb_vfs_handle_struct *vfs_handle) { - *vfs_version = SMB_VFS_INTERFACE_VERSION; memcpy(&default_vfs_ops, def_vfs_ops, sizeof(struct vfs_ops)); audit_handle = vfs_handle; @@ -113,13 +112,6 @@ vfs_op_tuple *vfs_init(int *vfs_version, struct vfs_ops *def_vfs_ops, return audit_ops; } -/* VFS finalization function. */ - -void vfs_done(connection_struct *conn) -{ - syslog(SYSLOG_PRIORITY, "VFS_DONE: vfs module unloaded\n"); -} - /* Implementation of vfs_ops. Pass everything on to the default operation but log event first. */ @@ -317,3 +309,8 @@ static int audit_fchmod_acl(struct files_struct *fsp, int fd, mode_t mode) return result; } + +int vfs_extd_audit_init(void) +{ + return smb_register_vfs("extd_audit", audit_init, SMB_VFS_INTERFACE_VERSION); +} diff --git a/source/modules/vfs_fake_perms.c b/source/modules/vfs_fake_perms.c index 85515df21af..121a99a4519 100644 --- a/source/modules/vfs_fake_perms.c +++ b/source/modules/vfs_fake_perms.c @@ -267,12 +267,11 @@ static vfs_op_tuple fake_perms_ops[] = { /* VFS initialisation - return initialized vfs_op_tuple array back to Samba */ -vfs_op_tuple *vfs_init(int *vfs_version, struct vfs_ops *def_vfs_ops, +static vfs_op_tuple *fake_perms_init(const struct vfs_ops *def_vfs_ops, struct smb_vfs_handle_struct *vfs_handle) { DEBUG(3, ("Initialising default vfs hooks\n")); - *vfs_version = SMB_VFS_INTERFACE_VERSION; memcpy(&default_vfs_ops, def_vfs_ops, sizeof(struct vfs_ops)); /* Remember vfs_handle for further allocation and referencing of private @@ -282,8 +281,7 @@ vfs_op_tuple *vfs_init(int *vfs_version, struct vfs_ops *def_vfs_ops, return fake_perms_ops; } -/* VFS finalization function */ -void vfs_done(connection_struct *conn) +int vfs_fake_perms_init(void) { - DEBUG(3, ("Finalizing default vfs hooks\n")); + return smb_register_vfs("fake_perms", fake_perms_init, SMB_VFS_INTERFACE_VERSION); } diff --git a/source/modules/vfs_netatalk.c b/source/modules/vfs_netatalk.c index b69a900e144..c9e3cde6210 100644 --- a/source/modules/vfs_netatalk.c +++ b/source/modules/vfs_netatalk.c @@ -410,10 +410,9 @@ static vfs_op_tuple atalk_ops[] = { }; /* VFS initialisation function. Return vfs_op_tuple array back to SAMBA. */ -vfs_op_tuple *vfs_init(int *vfs_version, struct vfs_ops *def_vfs_ops, +static vfs_op_tuple *netatalk_init(const struct vfs_ops *def_vfs_ops, struct smb_vfs_handle_struct *vfs_handle) { - *vfs_version = SMB_VFS_INTERFACE_VERSION; memcpy(&default_vfs_ops, def_vfs_ops, sizeof(struct vfs_ops)); atalk_handle = vfs_handle; @@ -422,8 +421,7 @@ vfs_op_tuple *vfs_init(int *vfs_version, struct vfs_ops *def_vfs_ops, return atalk_ops; } -/* VFS finalization function. */ -void vfs_done(connection_struct *conn) +int vfs_netatalk_init(void) { - DEBUG(3, ("ATALK: vfs module unloaded\n")); + return smb_register_vfs("netatalk", netatalk_init, SMB_VFS_INTERFACE_VERSION); } diff --git a/source/modules/vfs_recycle.c b/source/modules/vfs_recycle.c index ba453bad2cb..a669d864c6b 100644 --- a/source/modules/vfs_recycle.c +++ b/source/modules/vfs_recycle.c @@ -87,13 +87,12 @@ static vfs_op_tuple recycle_ops[] = { * * @retval initialised vfs_op_tuple array **/ -vfs_op_tuple *vfs_init(int *vfs_version, struct vfs_ops *def_vfs_ops, +static vfs_op_tuple *recycle_init(const struct vfs_ops *def_vfs_ops, struct smb_vfs_handle_struct *vfs_handle) { TALLOC_CTX *mem_ctx = NULL; DEBUG(10, ("Initializing VFS module recycle\n")); - *vfs_version = SMB_VFS_INTERFACE_VERSION; memcpy(&default_vfs_ops, def_vfs_ops, sizeof(struct vfs_ops)); vfs_recycle_debug_level = debug_add_class("vfs_recycle_bin"); if (vfs_recycle_debug_level == -1) { @@ -120,39 +119,6 @@ vfs_op_tuple *vfs_init(int *vfs_version, struct vfs_ops *def_vfs_ops, return recycle_ops; } -/** - * VFS finalization function. - * - **/ -void vfs_done(void) -{ - recycle_bin_private_data *recdata; - recycle_bin_connections *recconn; - - DEBUG(10, ("Unloading/Cleaning VFS module recycle bin\n")); - - if (recycle_bin_private_handle) - recdata = (recycle_bin_private_data *)(recycle_bin_private_handle->data); - else { - DEBUG(0, ("Recycle bin not initialized!\n")); - return; - } - - if (recdata) { - if (recdata->conns) { - recconn = recdata->conns; - while (recconn) { - talloc_destroy(recconn->data->mem_ctx); - recconn = recconn->next; - } - } - if (recdata->mem_ctx) { - talloc_destroy(recdata->mem_ctx); - } - recdata = NULL; - } -} - static int recycle_connect(struct connection_struct *conn, const char *service, const char *user) { TALLOC_CTX *ctx = NULL; @@ -646,3 +612,8 @@ done: SAFE_FREE(final_name); return rc; } + +int vfs_recycle_init(void) +{ + return smb_register_vfs("recycle", recycle_init, SMB_VFS_INTERFACE_VERSION); +} diff --git a/source/smbd/server.c b/source/smbd/server.c index 715e9162631..7848e71db20 100644 --- a/source/smbd/server.c +++ b/source/smbd/server.c @@ -3,7 +3,7 @@ Main SMB server routines Copyright (C) Andrew Tridgell 1992-1998 Copyright (C) Martin Pool 2002 - Copyright (C) Jelmer Vernooij 2002 + Copyright (C) Jelmer Vernooij 2002-2003 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 diff --git a/source/smbd/vfs.c b/source/smbd/vfs.c index 3bbe8a737a8..cdff26ed1ee 100644 --- a/source/smbd/vfs.c +++ b/source/smbd/vfs.c @@ -27,6 +27,13 @@ #undef DBGC_CLASS #define DBGC_CLASS DBGC_VFS +struct vfs_init_function_entry { + char *name; + vfs_op_tuple *ops, *(*init)(const struct vfs_ops *, struct smb_vfs_handle_struct *); + struct vfs_init_function_entry *prev, *next; +}; + +static struct vfs_init_function_entry *backends = NULL; /* Some structures to help us initialise the vfs operations table */ @@ -127,6 +134,56 @@ static struct vfs_ops default_vfs_ops = { vfswrap_sys_acl_free_qualifier }; +/**************************************************************************** + maintain the list of available backends +****************************************************************************/ + +struct vfs_init_function_entry *vfs_find_backend_entry(const char *name) +{ + struct vfs_init_function_entry *entry = backends; + + while(entry) { + if (strequal(entry->name, name)) return entry; + entry = entry->next; + } + + return NULL; +} + +BOOL smb_register_vfs(const char *name, vfs_op_tuple *(*init)(const struct vfs_ops *, struct smb_vfs_handle_struct *), int version) +{ + struct vfs_init_function_entry *entry = backends; + + if ((version < SMB_VFS_INTERFACE_CASCADED)) { + DEBUG(0, ("vfs_init() returned wrong interface version info (was %d, should be no less than %d)\n", + version, SMB_VFS_INTERFACE_VERSION )); + return False; + } + + if ((version < SMB_VFS_INTERFACE_VERSION)) { + DEBUG(0, ("Warning: vfs_init() states that module confirms interface version #%d, current interface version is #%d.\n\ + Proceeding in compatibility mode, new operations (since version #%d) will fallback to default ones.\n", + version, SMB_VFS_INTERFACE_VERSION, version )); + return False; + } + + while(entry) { + if (strequal(entry->name, name)) { + DEBUG(0,("VFS module %s already loaded!\n", name)); + return False; + } + entry = entry->next; + } + + entry = smb_xmalloc(sizeof(struct vfs_init_function_entry)); + entry->name = smb_xstrdup(name); + entry->init = init; + + DLIST_ADD(backends, entry); + DEBUG(5, ("Successfully added vfs backend '%s'\n", name)); + return True; +} + /**************************************************************************** initialise default vfs hooks ****************************************************************************/ @@ -148,48 +205,68 @@ BOOL vfs_init_custom(connection_struct *conn, const char *vfs_object) int vfs_version = -1; vfs_op_tuple *ops, *(*init_fptr)(int *, const struct vfs_ops *, struct smb_vfs_handle_struct *); int i; + struct vfs_init_function_entry *entry; DEBUG(3, ("Initialising custom vfs hooks from %s\n", vfs_object)); - /* Open object file */ + if(!backends) static_init_vfs; + + /* First, try to load the module with the new module system */ + if((entry = vfs_find_backend_entry(vfs_object)) || + (smb_probe_module("vfs", vfs_object) && + (entry = vfs_find_backend_entry(vfs_object)))) { + + DEBUG(0,("Successfully loaded %s with the new modules system\n", vfs_object)); + + if ((ops = entry->init(&conn->vfs_ops, conn->vfs_private)) == NULL) { + DEBUG(0, ("vfs init function from %s failed\n", vfs_object)); + sys_dlclose(conn->vfs_private->handle); + return False; + } + } else { + /* If that doesn't work, fall back to the old system + * (This part should go away after a while, it's only here + * for backwards compatibility) */ - if ((conn->vfs_private->handle = sys_dlopen(vfs_object, RTLD_NOW)) == NULL) { - DEBUG(0, ("Error opening %s: %s\n", vfs_object, sys_dlerror())); - return False; - } + /* Open object file */ - /* Get handle on vfs_init() symbol */ + if ((conn->vfs_private->handle = sys_dlopen(vfs_object, RTLD_NOW)) == NULL) { + DEBUG(0, ("Error opening %s: %s\n", vfs_object, sys_dlerror())); + return False; + } - init_fptr = (vfs_op_tuple *(*)(int *, const struct vfs_ops *, struct smb_vfs_handle_struct *))sys_dlsym(conn->vfs_private->handle, "vfs_init"); + /* Get handle on vfs_init() symbol */ - if (init_fptr == NULL) { - DEBUG(0, ("No vfs_init() symbol found in %s\n", vfs_object)); - sys_dlclose(conn->vfs_private->handle); - return False; - } + init_fptr = (vfs_op_tuple *(*)(int *, const struct vfs_ops *, struct smb_vfs_handle_struct *))sys_dlsym(conn->vfs_private->handle, "vfs_init"); - /* Initialise vfs_ops structure */ + if (init_fptr == NULL) { + DEBUG(0, ("No vfs_init() symbol found in %s\n", vfs_object)); + sys_dlclose(conn->vfs_private->handle); + return False; + } - if ((ops = init_fptr(&vfs_version, &conn->vfs_ops, conn->vfs_private)) == NULL) { - DEBUG(0, ("vfs_init() function from %s failed\n", vfs_object)); - sys_dlclose(conn->vfs_private->handle); - return False; - } - - if ((vfs_version < SMB_VFS_INTERFACE_CASCADED)) { - DEBUG(0, ("vfs_init() returned wrong interface version info (was %d, should be no less than %d)\n", - vfs_version, SMB_VFS_INTERFACE_VERSION )); - sys_dlclose(conn->vfs_private->handle); - return False; - } - - if ((vfs_version < SMB_VFS_INTERFACE_VERSION)) { - DEBUG(0, ("Warning: vfs_init() states that module confirms interface version #%d, current interface version is #%d.\n\ -Proceeding in compatibility mode, new operations (since version #%d) will fallback to default ones.\n", - vfs_version, SMB_VFS_INTERFACE_VERSION, vfs_version )); - sys_dlclose(conn->vfs_private->handle); - return False; - } + /* Initialise vfs_ops structure */ + if ((ops = init_fptr(&vfs_version, &conn->vfs_ops, conn->vfs_private)) == NULL) { + DEBUG(0, ("vfs_init() function from %s failed\n", vfs_object)); + sys_dlclose(conn->vfs_private->handle); + return False; + } + + if ((vfs_version < SMB_VFS_INTERFACE_CASCADED)) { + DEBUG(0, ("vfs_init() returned wrong interface version info (was %d, should be no less than %d)\n", + vfs_version, SMB_VFS_INTERFACE_VERSION )); + sys_dlclose(conn->vfs_private->handle); + return False; + } + + if ((vfs_version < SMB_VFS_INTERFACE_VERSION)) { + DEBUG(0, ("Warning: vfs_init() states that module confirms interface version #%d, current interface version is #%d.\n\ + Proceeding in compatibility mode, new operations (since version #%d) will fallback to default ones.\n", + vfs_version, SMB_VFS_INTERFACE_VERSION, vfs_version )); + sys_dlclose(conn->vfs_private->handle); + return False; + } + } for(i=0; ops[i].op != NULL; i++) { DEBUG(3, ("Checking operation #%d (type %d, layer %d)\n", i, ops[i].type, ops[i].layer)); -- cgit From a51ce67e322f91a56acb9e358ee8b2254b2e7792 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Thu, 27 Mar 2003 12:54:50 +0000 Subject: local_gid_to_sid() could use pdb_ldap, which for now requires ROOT. --- source/smbd/uid.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/smbd/uid.c b/source/smbd/uid.c index 6ac3528b1a2..b9cf0de3bd6 100644 --- a/source/smbd/uid.c +++ b/source/smbd/uid.c @@ -781,7 +781,9 @@ DOM_SID *gid_to_sid(DOM_SID *psid, gid_t gid) } /* Make sure we report failure, (when psid == NULL) */ + become_root(); psid = local_gid_to_sid(psid, gid); + unbecome_root(); DEBUG(10,("gid_to_sid: local %u -> %s\n", (unsigned int)gid, sid_to_string(sid, psid))); if (psid) store_gid_sid_cache(psid, SID_NAME_DOM_GRP, gid); -- cgit From e92bfb766b08abccbf098c8d04347eb296b9be54 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Thu, 27 Mar 2003 14:12:42 +0000 Subject: Fix schema error not detected by OpenLDAP 2.0.23 but by 2.1.16. Volker --- examples/LDAP/samba.schema | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/LDAP/samba.schema b/examples/LDAP/samba.schema index 71689237e8d..e801e0b8479 100644 --- a/examples/LDAP/samba.schema +++ b/examples/LDAP/samba.schema @@ -115,7 +115,7 @@ attributetype ( 1.3.6.1.4.1.7165.2.1.15 NAME 'primaryGroupID' ## attributetype ( 1.3.6.1.4.1.7165.2.1.19 NAME 'ntGroupType' DESC 'NT Group Type' - EQUALITY caseIgnoreIA5Match + EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributetype ( 1.3.6.1.4.1.7165.2.1.20 NAME 'ntSid' -- cgit From f9515634f344f2408909d2398a7b585b91dca6ec Mon Sep 17 00:00:00 2001 From: Alexander Bokovoy Date: Thu, 27 Mar 2003 14:22:03 +0000 Subject: Tidy XML formating --- docs/docbook/global.ent | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/docbook/global.ent b/docs/docbook/global.ent index a3022ecfaa9..018d29a6a81 100644 --- a/docs/docbook/global.ent +++ b/docs/docbook/global.ent @@ -165,10 +165,10 @@ password. --U|--user=username[&%;password] +-U|--user=username[%password] Sets the SMB username or username and password. -If &%;password is not specified, the user will be prompted. The +If %password is not specified, the user will be prompted. The client will first check the USER environment variable, then the LOGNAME variable and if either exists, the string is uppercased. If these environmental variables are not -- cgit From 124c80facba364033f72b20660f347390effba59 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Thu, 27 Mar 2003 14:30:10 +0000 Subject: This is no functional change. It just makes pdb_ldap.c a bit easier to understand by moving the logic for init_ldap_from_sam and friends around. Volker --- source/passdb/pdb_ldap.c | 74 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 24 deletions(-) diff --git a/source/passdb/pdb_ldap.c b/source/passdb/pdb_ldap.c index c54095b2506..c8ae96344a5 100644 --- a/source/passdb/pdb_ldap.c +++ b/source/passdb/pdb_ldap.c @@ -1292,13 +1292,15 @@ static BOOL need_ldap_mod(BOOL pdb_add, const SAM_ACCOUNT * sampass, enum pdb_el *********************************************************************/ static void make_ldap_mod(LDAP *ldap_struct, LDAPMessage *existing, LDAPMod ***mods, - const SAM_ACCOUNT *sampass, BOOL pdb_add, + const SAM_ACCOUNT *sampass, + BOOL (*need_update)(const SAM_ACCOUNT *, + enum pdb_elements), enum pdb_elements element, const char *attribute, const char *newval) { char **values = NULL; - if (!need_ldap_mod(pdb_add, sampass, element)) { + if (!need_update(sampass, element)) { return; } @@ -1348,7 +1350,8 @@ Initialize SAM_ACCOUNT from an LDAP query static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, LDAPMessage *existing, LDAPMod *** mods, const SAM_ACCOUNT * sampass, - BOOL pdb_add) + BOOL (*need_update)(const SAM_ACCOUNT *, + enum pdb_elements)) { pstring temp; uint32 rid; @@ -1364,7 +1367,7 @@ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, * took out adding "objectclass: sambaAccount" * do this on a per-mod basis */ - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_USERNAME, "uid", pdb_get_username(sampass)); DEBUG(2, ("Setting entry for user: %s\n", pdb_get_username(sampass))); @@ -1392,7 +1395,7 @@ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, } slprintf(temp, sizeof(temp) - 1, "%i", rid); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_USERSID, "rid", temp); @@ -1412,7 +1415,7 @@ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, } slprintf(temp, sizeof(temp) - 1, "%i", rid); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_GROUPSID, "primaryGroupID", temp); /* displayName, cn, and gecos should all be the same @@ -1423,55 +1426,55 @@ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, * it does not exist. */ - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_FULLNAME, "displayName", pdb_get_fullname(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_ACCTDESC, "description", pdb_get_acct_desc(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_WORKSTATIONS, "userWorkstations", pdb_get_workstations(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_SMBHOME, "smbHome", pdb_get_homedir(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_DRIVE, "homeDrive", pdb_get_dir_drive(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_LOGONSCRIPT, "scriptPath", pdb_get_logon_script(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_PROFILE, "profilePath", pdb_get_profile_path(sampass)); slprintf(temp, sizeof(temp) - 1, "%li", pdb_get_logon_time(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_LOGONTIME, "logonTime", temp); slprintf(temp, sizeof(temp) - 1, "%li", pdb_get_logoff_time(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_LOGOFFTIME, "logoffTime", temp); slprintf (temp, sizeof (temp) - 1, "%li", pdb_get_kickoff_time(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_KICKOFFTIME, "kickoffTime", temp); slprintf (temp, sizeof (temp) - 1, "%li", pdb_get_pass_can_change_time(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_CANCHANGETIME, "pwdCanChange", temp); slprintf (temp, sizeof (temp) - 1, "%li", pdb_get_pass_must_change_time(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_MUSTCHANGETIME, "pwdMustChange", temp); if ((pdb_get_acct_ctrl(sampass)&(ACB_WSTRUST|ACB_SVRTRUST|ACB_DOMTRUST))|| @@ -1479,22 +1482,22 @@ static BOOL init_ldap_from_sam (struct ldapsam_privates *ldap_state, pdb_sethexpwd (temp, pdb_get_lanman_passwd(sampass), pdb_get_acct_ctrl(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_LMPASSWD, "lmPassword", temp); pdb_sethexpwd (temp, pdb_get_nt_passwd(sampass), pdb_get_acct_ctrl(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_NTPASSWD, "ntPassword", temp); slprintf (temp, sizeof (temp) - 1, "%li", pdb_get_pass_last_set_time(sampass)); - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_PASSLASTSET, "pwdLastSet", temp); } /* FIXME: Hours stuff goes in LDAP */ - make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, pdb_add, + make_ldap_mod(ldap_state->ldap_struct, existing, mods, sampass, need_update, PDB_ACCTCTRL, "acctFlags", pdb_encode_acct_ctrl (pdb_get_acct_ctrl(sampass), NEW_PW_FORMAT_SPACE_PADDED_LEN)); @@ -1940,6 +1943,16 @@ static NTSTATUS ldapsam_delete_sam_account(struct pdb_methods *my_methods, SAM_A return ret; } +/********************************************************************** + Helper function to determine for update_sam_account whether + we need LDAP modification. +*********************************************************************/ +static BOOL element_is_changed(const SAM_ACCOUNT *sampass, + enum pdb_elements element) +{ + return IS_SAM_CHANGED(sampass, element); +} + /********************************************************************** Update SAM_ACCOUNT *********************************************************************/ @@ -1967,7 +1980,8 @@ static NTSTATUS ldapsam_update_sam_account(struct pdb_methods *my_methods, SAM_A entry = ldap_first_entry(ldap_state->ldap_struct, result); dn = ldap_get_dn(ldap_state->ldap_struct, entry); - if (!init_ldap_from_sam(ldap_state, entry, &mods, newpwd, False)) { + if (!init_ldap_from_sam(ldap_state, entry, &mods, newpwd, + element_is_changed)) { DEBUG(0, ("ldapsam_update_sam_account: init_ldap_from_sam failed!\n")); ldap_msgfree(result); return NT_STATUS_UNSUCCESSFUL; @@ -1996,6 +2010,17 @@ static NTSTATUS ldapsam_update_sam_account(struct pdb_methods *my_methods, SAM_A return NT_STATUS_OK; } +/********************************************************************** + Helper function to determine for update_sam_account whether + we need LDAP modification. +*********************************************************************/ +static BOOL element_is_set_or_changed(const SAM_ACCOUNT *sampass, + enum pdb_elements element) +{ + return (IS_SAM_SET(sampass, element) || + IS_SAM_CHANGED(sampass, element)); +} + /********************************************************************** Add SAM_ACCOUNT to LDAP *********************************************************************/ @@ -2066,7 +2091,8 @@ static NTSTATUS ldapsam_add_sam_account(struct pdb_methods *my_methods, SAM_ACCO } } - if (!init_ldap_from_sam(ldap_state, entry, &mods, newpwd, True)) { + if (!init_ldap_from_sam(ldap_state, entry, &mods, newpwd, + element_is_set_or_changed)) { DEBUG(0, ("ldapsam_add_sam_account: init_ldap_from_sam failed!\n")); ldap_msgfree(result); ldap_mods_free(mods, 1); -- cgit From 8d684dffab6a90b3d612a1aa2b2c457a2bc2e6ac Mon Sep 17 00:00:00 2001 From: Alexander Bokovoy Date: Thu, 27 Mar 2003 15:27:19 +0000 Subject: Add new framework for smb.conf(5). Please read README before trying to compile. I will commit more meta-information updates during week-end. --- docs/docbook/smbdotconf/.cvsignore | 4 + docs/docbook/smbdotconf/README | 159 +++++ docs/docbook/smbdotconf/base/adsserver.xml | 15 + .../docbook/smbdotconf/base/bindinterfacesonly.xml | 66 ++ docs/docbook/smbdotconf/base/comment.xml | 14 + docs/docbook/smbdotconf/base/directory.xml | 5 + docs/docbook/smbdotconf/base/displaycharset.xml | 13 + docs/docbook/smbdotconf/base/doscharset.xml | 14 + docs/docbook/smbdotconf/base/interfaces.xml | 49 ++ docs/docbook/smbdotconf/base/netbiosaliases.xml | 17 + docs/docbook/smbdotconf/base/netbiosname.xml | 16 + docs/docbook/smbdotconf/base/netbiosscope.xml | 7 + docs/docbook/smbdotconf/base/path.xml | 27 + docs/docbook/smbdotconf/base/realm.xml | 12 + docs/docbook/smbdotconf/base/serverstring.xml | 22 + docs/docbook/smbdotconf/base/unixcharset.xml | 11 + docs/docbook/smbdotconf/base/workgroup.xml | 11 + docs/docbook/smbdotconf/browse/browsable.xml | 5 + docs/docbook/smbdotconf/browse/browseable.xml | 8 + docs/docbook/smbdotconf/browse/browselist.xml | 10 + docs/docbook/smbdotconf/browse/domainmaster.xml | 34 + .../docbook/smbdotconf/browse/enhancedbrowsing.xml | 24 + docs/docbook/smbdotconf/browse/lmannounce.xml | 24 + docs/docbook/smbdotconf/browse/lminterval.xml | 17 + docs/docbook/smbdotconf/browse/localmaster.xml | 18 + docs/docbook/smbdotconf/browse/oslevel.xml | 21 + docs/docbook/smbdotconf/browse/preferedmaster.xml | 6 + docs/docbook/smbdotconf/browse/preferredmaster.xml | 25 + .../smbdotconf/domain/machinepasswordtimeout.xml | 18 + docs/docbook/smbdotconf/expand-smb.conf.xsl | 74 +++ docs/docbook/smbdotconf/filename/casesensitive.xml | 7 + docs/docbook/smbdotconf/filename/casesignames.xml | 5 + docs/docbook/smbdotconf/filename/defaultcase.xml | 9 + .../smbdotconf/filename/deletevetofiles.xml | 25 + docs/docbook/smbdotconf/filename/hidedotfiles.xml | 7 + docs/docbook/smbdotconf/filename/hidefiles.xml | 35 ++ .../smbdotconf/filename/hidespecialfiles.xml | 10 + .../docbook/smbdotconf/filename/hideunreadable.xml | 8 + .../smbdotconf/filename/hideunwriteablefiles.xml | 10 + docs/docbook/smbdotconf/filename/manglecase.xml | 8 + docs/docbook/smbdotconf/filename/mangledmap.xml | 23 + docs/docbook/smbdotconf/filename/manglednames.xml | 58 ++ docs/docbook/smbdotconf/filename/mangledstack.xml | 23 + docs/docbook/smbdotconf/filename/mangleprefix.xml | 11 + docs/docbook/smbdotconf/filename/manglingchar.xml | 11 + .../docbook/smbdotconf/filename/manglingmethod.xml | 14 + docs/docbook/smbdotconf/filename/maparchive.xml | 17 + docs/docbook/smbdotconf/filename/maphidden.xml | 13 + docs/docbook/smbdotconf/filename/mapsystem.xml | 13 + docs/docbook/smbdotconf/filename/preservecase.xml | 13 + .../smbdotconf/filename/shortpreservecase.xml | 16 + docs/docbook/smbdotconf/filename/statcache.xml | 10 + docs/docbook/smbdotconf/filename/stripdot.xml | 9 + docs/docbook/smbdotconf/filename/vetofiles.xml | 46 ++ .../smbdotconf/filename/vetooplockfiles.xml | 24 + docs/docbook/smbdotconf/generate-context.xsl | 56 ++ docs/docbook/smbdotconf/generate-file-list.sh | 8 + docs/docbook/smbdotconf/ldap/ldapadmindn.xml | 13 + docs/docbook/smbdotconf/ldap/ldapdeletedn.xml | 10 + .../docbook/smbdotconf/ldap/ldapdelonlysamattr.xml | 6 + docs/docbook/smbdotconf/ldap/ldapfilter.xml | 12 + docs/docbook/smbdotconf/ldap/ldapmachinesuffix.xml | 11 + docs/docbook/smbdotconf/ldap/ldappasswdsync.xml | 23 + docs/docbook/smbdotconf/ldap/ldapport.xml | 20 + docs/docbook/smbdotconf/ldap/ldapserver.xml | 15 + docs/docbook/smbdotconf/ldap/ldapssl.xml | 30 + docs/docbook/smbdotconf/ldap/ldapsuffix.xml | 8 + docs/docbook/smbdotconf/ldap/ldaptrustids.xml | 18 + docs/docbook/smbdotconf/ldap/ldapusersuffix.xml | 10 + docs/docbook/smbdotconf/locking/blockinglocks.xml | 22 + docs/docbook/smbdotconf/locking/cscpolicy.xml | 18 + docs/docbook/smbdotconf/locking/fakeoplocks.xml | 27 + docs/docbook/smbdotconf/locking/kerneloplocks.xml | 24 + docs/docbook/smbdotconf/locking/level2oplocks.xml | 39 ++ docs/docbook/smbdotconf/locking/locking.xml | 25 + docs/docbook/smbdotconf/locking/lockspincount.xml | 15 + docs/docbook/smbdotconf/locking/lockspintime.xml | 11 + .../smbdotconf/locking/oplockbreakwaittime.xml | 16 + .../smbdotconf/locking/oplockcontentionlimit.xml | 19 + docs/docbook/smbdotconf/locking/oplocks.xml | 27 + docs/docbook/smbdotconf/locking/posixlocking.xml | 14 + docs/docbook/smbdotconf/locking/sharemodes.xml | 26 + docs/docbook/smbdotconf/locking/strictlocking.xml | 17 + .../smbdotconf/logging/debughirestimestamp.xml | 14 + docs/docbook/smbdotconf/logging/debuglevel.xml | 6 + docs/docbook/smbdotconf/logging/debugpid.xml | 13 + docs/docbook/smbdotconf/logging/debugtimestamp.xml | 10 + docs/docbook/smbdotconf/logging/debuguid.xml | 13 + docs/docbook/smbdotconf/logging/logfile.xml | 11 + docs/docbook/smbdotconf/logging/loglevel.xml | 15 + docs/docbook/smbdotconf/logging/maxlogsize.xml | 13 + docs/docbook/smbdotconf/logging/syslog.xml | 17 + docs/docbook/smbdotconf/logging/syslogonly.xml | 9 + docs/docbook/smbdotconf/logging/timestamplogs.xml | 6 + .../smbdotconf/logon/abortshutdownscript.xml | 13 + docs/docbook/smbdotconf/logon/addgroupscript.xml | 14 + docs/docbook/smbdotconf/logon/addmachinescript.xml | 18 + docs/docbook/smbdotconf/logon/adduserscript.xml | 49 ++ .../smbdotconf/logon/addusertogroupscript.xml | 16 + .../docbook/smbdotconf/logon/deletegroupscript.xml | 8 + .../smbdotconf/logon/deleteuserfromgroupscript.xml | 16 + docs/docbook/smbdotconf/logon/deleteuserscript.xml | 21 + docs/docbook/smbdotconf/logon/domainlogons.xml | 12 + docs/docbook/smbdotconf/logon/logondrive.xml | 13 + docs/docbook/smbdotconf/logon/logonhome.xml | 40 ++ docs/docbook/smbdotconf/logon/logonpath.xml | 45 ++ docs/docbook/smbdotconf/logon/logonscript.xml | 39 ++ docs/docbook/smbdotconf/logon/shutdownscript.xml | 42 ++ docs/docbook/smbdotconf/man.xsl | 159 +++++ docs/docbook/smbdotconf/misc/addsharecommand.xml | 51 ++ docs/docbook/smbdotconf/misc/autoservices.xml | 6 + docs/docbook/smbdotconf/misc/available.xml | 11 + .../docbook/smbdotconf/misc/changesharecommand.xml | 50 ++ docs/docbook/smbdotconf/misc/configfile.xml | 21 + docs/docbook/smbdotconf/misc/copy.xml | 15 + docs/docbook/smbdotconf/misc/default.xml | 5 + docs/docbook/smbdotconf/misc/defaultservice.xml | 36 ++ docs/docbook/smbdotconf/misc/deletereadonly.xml | 11 + .../docbook/smbdotconf/misc/deletesharecommand.xml | 44 ++ docs/docbook/smbdotconf/misc/dfreecommand.xml | 50 ++ docs/docbook/smbdotconf/misc/dontdescend.xml | 18 + docs/docbook/smbdotconf/misc/dosfilemode.xml | 16 + .../smbdotconf/misc/dosfiletimeresolution.xml | 23 + docs/docbook/smbdotconf/misc/dosfiletimes.xml | 14 + docs/docbook/smbdotconf/misc/exec.xml | 5 + .../smbdotconf/misc/fakedirectorycreatetimes.xml | 31 + docs/docbook/smbdotconf/misc/followsymlinks.xml | 18 + docs/docbook/smbdotconf/misc/fstype.xml | 14 + docs/docbook/smbdotconf/misc/hidelocalusers.xml | 7 + docs/docbook/smbdotconf/misc/homedirmap.xml | 28 + docs/docbook/smbdotconf/misc/include.xml | 14 + docs/docbook/smbdotconf/misc/lockdir.xml | 5 + docs/docbook/smbdotconf/misc/lockdirectory.xml | 11 + docs/docbook/smbdotconf/misc/magicoutput.xml | 17 + docs/docbook/smbdotconf/misc/magicscript.xml | 28 + docs/docbook/smbdotconf/misc/messagecommand.xml | 65 ++ docs/docbook/smbdotconf/misc/nishomedir.xml | 30 + docs/docbook/smbdotconf/misc/panicaction.xml | 12 + docs/docbook/smbdotconf/misc/piddirectory.xml | 9 + docs/docbook/smbdotconf/misc/postexec.xml | 22 + docs/docbook/smbdotconf/misc/preexec.xml | 23 + docs/docbook/smbdotconf/misc/preexecclose.xml | 9 + docs/docbook/smbdotconf/misc/preload.xml | 16 + docs/docbook/smbdotconf/misc/remoteannounce.xml | 32 + docs/docbook/smbdotconf/misc/remotebrowsesync.xml | 33 + docs/docbook/smbdotconf/misc/rootpostexec.xml | 14 + docs/docbook/smbdotconf/misc/rootpreexec.xml | 15 + docs/docbook/smbdotconf/misc/rootpreexecclose.xml | 12 + docs/docbook/smbdotconf/misc/setdirectory.xml | 13 + docs/docbook/smbdotconf/misc/socketaddress.xml | 14 + docs/docbook/smbdotconf/misc/sourceenvironment.xml | 23 + docs/docbook/smbdotconf/misc/timeoffset.xml | 11 + docs/docbook/smbdotconf/misc/utmp.xml | 21 + docs/docbook/smbdotconf/misc/utmpdirectory.xml | 16 + docs/docbook/smbdotconf/misc/volume.xml | 9 + docs/docbook/smbdotconf/misc/widelinks.xml | 15 + docs/docbook/smbdotconf/misc/wtmpdirectory.xml | 20 + .../smbdotconf/printing/addprintercommand.xml | 60 ++ .../docbook/smbdotconf/printing/defaultdevmode.xml | 34 + .../smbdotconf/printing/deleteprintercommand.xml | 35 ++ .../docbook/smbdotconf/printing/disablespoolss.xml | 20 + .../smbdotconf/printing/enumportscommand.xml | 22 + docs/docbook/smbdotconf/printing/loadprinters.xml | 9 + .../docbook/smbdotconf/printing/lppausecommand.xml | 41 ++ docs/docbook/smbdotconf/printing/lpqcachetime.xml | 26 + docs/docbook/smbdotconf/printing/lpqcommand.xml | 41 ++ .../smbdotconf/printing/lpresumecommand.xml | 37 ++ docs/docbook/smbdotconf/printing/lprmcommand.xml | 27 + docs/docbook/smbdotconf/printing/maxprintjobs.xml | 14 + docs/docbook/smbdotconf/printing/os2drivermap.xml | 22 + docs/docbook/smbdotconf/printing/printable.xml | 15 + docs/docbook/smbdotconf/printing/printcap.xml | 6 + docs/docbook/smbdotconf/printing/printcapname.xml | 47 ++ docs/docbook/smbdotconf/printing/printcommand.xml | 86 +++ docs/docbook/smbdotconf/printing/printer.xml | 6 + docs/docbook/smbdotconf/printing/printername.xml | 15 + docs/docbook/smbdotconf/printing/printing.xml | 26 + docs/docbook/smbdotconf/printing/printok.xml | 6 + .../smbdotconf/printing/queuepausecommand.xml | 26 + .../smbdotconf/printing/queueresumecommand.xml | 31 + .../smbdotconf/printing/showaddprinterwizard.xml | 31 + .../docbook/smbdotconf/printing/totalprintjobs.xml | 18 + .../smbdotconf/printing/useclientdriver.xml | 35 ++ docs/docbook/smbdotconf/process-all.sh | 15 + docs/docbook/smbdotconf/protocol/announceas.xml | 18 + .../smbdotconf/protocol/announceversion.xml | 12 + .../docbook/smbdotconf/protocol/disablenetbios.xml | 14 + .../docbook/smbdotconf/protocol/largereadwrite.xml | 15 + docs/docbook/smbdotconf/protocol/maxmux.xml | 9 + docs/docbook/smbdotconf/protocol/maxprotocol.xml | 35 ++ docs/docbook/smbdotconf/protocol/maxttl.xml | 12 + docs/docbook/smbdotconf/protocol/maxwinsttl.xml | 15 + docs/docbook/smbdotconf/protocol/maxxmit.xml | 12 + docs/docbook/smbdotconf/protocol/minprotocol.xml | 20 + docs/docbook/smbdotconf/protocol/minwinsttl.xml | 13 + .../smbdotconf/protocol/nameresolveorder.xml | 47 ++ docs/docbook/smbdotconf/protocol/ntaclsupport.xml | 11 + docs/docbook/smbdotconf/protocol/ntpipesupport.xml | 12 + .../smbdotconf/protocol/ntstatussupport.xml | 14 + docs/docbook/smbdotconf/protocol/protocol.xml | 5 + docs/docbook/smbdotconf/protocol/readbmpx.xml | 10 + docs/docbook/smbdotconf/protocol/readraw.xml | 21 + docs/docbook/smbdotconf/protocol/smbports.xml | 10 + docs/docbook/smbdotconf/protocol/timeserver.xml | 9 + docs/docbook/smbdotconf/protocol/unicode.xml | 11 + .../docbook/smbdotconf/protocol/unixextensions.xml | 12 + docs/docbook/smbdotconf/protocol/usespnego.xml | 11 + docs/docbook/smbdotconf/protocol/writeraw.xml | 9 + docs/docbook/smbdotconf/security/adminusers.xml | 15 + .../smbdotconf/security/algorithmicridbase.xml | 22 + docs/docbook/smbdotconf/security/allowhosts.xml | 5 + .../smbdotconf/security/allowtrusteddomains.xml | 22 + docs/docbook/smbdotconf/security/authmethods.xml | 16 + docs/docbook/smbdotconf/security/createmask.xml | 39 ++ docs/docbook/smbdotconf/security/createmode.xml | 5 + docs/docbook/smbdotconf/security/denyhosts.xml | 5 + docs/docbook/smbdotconf/security/directorymask.xml | 43 ++ docs/docbook/smbdotconf/security/directorymode.xml | 5 + .../smbdotconf/security/directorysecuritymask.xml | 32 + .../smbdotconf/security/encryptpasswords.xml | 21 + .../smbdotconf/security/forcecreatemode.xml | 25 + .../smbdotconf/security/forcedirectorymode.xml | 26 + .../security/forcedirectorysecuritymode.xml | 32 + docs/docbook/smbdotconf/security/forcegroup.xml | 35 ++ .../smbdotconf/security/forcesecuritymode.xml | 33 + docs/docbook/smbdotconf/security/forceuser.xml | 25 + docs/docbook/smbdotconf/security/group.xml | 5 + docs/docbook/smbdotconf/security/guestaccount.xml | 27 + docs/docbook/smbdotconf/security/guestok.xml | 17 + docs/docbook/smbdotconf/security/guestonly.xml | 13 + docs/docbook/smbdotconf/security/hostsallow.xml | 60 ++ docs/docbook/smbdotconf/security/hostsdeny.xml | 14 + docs/docbook/smbdotconf/security/hostsequiv.xml | 26 + docs/docbook/smbdotconf/security/inheritacls.xml | 14 + .../smbdotconf/security/inheritpermissions.xml | 36 ++ docs/docbook/smbdotconf/security/invalidusers.xml | 33 + docs/docbook/smbdotconf/security/lanmanauth.xml | 11 + docs/docbook/smbdotconf/security/maptoguest.xml | 53 ++ .../smbdotconf/security/minpasswdlength.xml | 6 + .../smbdotconf/security/minpasswordlength.xml | 14 + .../smbdotconf/security/nonunixaccountrange.xml | 21 + docs/docbook/smbdotconf/security/ntlmauth.xml | 16 + docs/docbook/smbdotconf/security/nullpasswords.xml | 11 + .../smbdotconf/security/obeypamrestrictions.xml | 15 + docs/docbook/smbdotconf/security/onlyguest.xml | 6 + docs/docbook/smbdotconf/security/onlyuser.xml | 24 + .../smbdotconf/security/pampasswordchange.xml | 16 + docs/docbook/smbdotconf/security/passdbbackend.xml | 91 +++ docs/docbook/smbdotconf/security/passwdchat.xml | 58 ++ .../smbdotconf/security/passwdchatdebug.xml | 25 + docs/docbook/smbdotconf/security/passwdprogram.xml | 35 ++ docs/docbook/smbdotconf/security/passwordlevel.xml | 40 ++ .../docbook/smbdotconf/security/passwordserver.xml | 92 +++ docs/docbook/smbdotconf/security/printeradmin.xml | 12 + docs/docbook/smbdotconf/security/privatedir.xml | 10 + docs/docbook/smbdotconf/security/public.xml | 6 + docs/docbook/smbdotconf/security/readlist.xml | 17 + docs/docbook/smbdotconf/security/readonly.xml | 16 + .../smbdotconf/security/restrictanonymous.xml | 10 + docs/docbook/smbdotconf/security/root.xml | 6 + docs/docbook/smbdotconf/security/rootdir.xml | 6 + docs/docbook/smbdotconf/security/rootdirectory.xml | 28 + docs/docbook/smbdotconf/security/security.xml | 237 +++++++ docs/docbook/smbdotconf/security/securitymask.xml | 33 + docs/docbook/smbdotconf/security/smbpasswdfile.xml | 13 + .../smbdotconf/security/unixpasswordsync.xml | 18 + .../smbdotconf/security/updateencrypted.xml | 28 + docs/docbook/smbdotconf/security/user.xml | 6 + docs/docbook/smbdotconf/security/username.xml | 62 ++ docs/docbook/smbdotconf/security/usernamelevel.xml | 20 + docs/docbook/smbdotconf/security/usernamemap.xml | 90 +++ docs/docbook/smbdotconf/security/users.xml | 6 + docs/docbook/smbdotconf/security/validusers.xml | 23 + docs/docbook/smbdotconf/security/writable.xml | 6 + docs/docbook/smbdotconf/security/writeable.xml | 6 + docs/docbook/smbdotconf/security/writelist.xml | 21 + docs/docbook/smbdotconf/security/writeok.xml | 6 + docs/docbook/smbdotconf/smb.conf.5.xml | 685 +++++++++++++++++++++ docs/docbook/smbdotconf/smbconf.dtd | 7 + .../docbook/smbdotconf/split-original-smb.conf.xsl | 78 +++ docs/docbook/smbdotconf/tuning/blocksize.xml | 19 + .../smbdotconf/tuning/changenotifytimeout.xml | 15 + docs/docbook/smbdotconf/tuning/deadtime.xml | 23 + docs/docbook/smbdotconf/tuning/getwdcache.xml | 11 + docs/docbook/smbdotconf/tuning/hostnamelookups.xml | 14 + docs/docbook/smbdotconf/tuning/keepalive.xml | 16 + docs/docbook/smbdotconf/tuning/maxconnections.xml | 16 + docs/docbook/smbdotconf/tuning/maxdisksize.xml | 24 + docs/docbook/smbdotconf/tuning/maxopenfiles.xml | 16 + .../docbook/smbdotconf/tuning/maxsmbdprocesses.xml | 17 + docs/docbook/smbdotconf/tuning/minprintspace.xml | 14 + .../docbook/smbdotconf/tuning/namecachetimeout.xml | 12 + .../smbdotconf/tuning/paranoidserversecurity.xml | 16 + docs/docbook/smbdotconf/tuning/readsize.xml | 25 + docs/docbook/smbdotconf/tuning/socketoptions.xml | 69 +++ docs/docbook/smbdotconf/tuning/statcachesize.xml | 9 + docs/docbook/smbdotconf/tuning/strictallocate.xml | 21 + docs/docbook/smbdotconf/tuning/strictsync.xml | 23 + docs/docbook/smbdotconf/tuning/syncalways.xml | 19 + docs/docbook/smbdotconf/tuning/usemmap.xml | 14 + docs/docbook/smbdotconf/tuning/usesendfile.xml | 14 + docs/docbook/smbdotconf/tuning/writecachesize.xml | 27 + docs/docbook/smbdotconf/vfs/hostmsdfs.xml | 17 + docs/docbook/smbdotconf/vfs/msdfsproxy.xml | 15 + docs/docbook/smbdotconf/vfs/msdfsroot.xml | 19 + docs/docbook/smbdotconf/vfs/vfsobject.xml | 10 + docs/docbook/smbdotconf/vfs/vfsoptions.xml | 10 + docs/docbook/smbdotconf/vfs/vfspath.xml | 12 + .../docbook/smbdotconf/winbind/templatehomedir.xml | 13 + docs/docbook/smbdotconf/winbind/templateshell.xml | 10 + .../smbdotconf/winbind/winbindcachetime.xml | 11 + .../smbdotconf/winbind/winbindenumgroups.xml | 18 + .../smbdotconf/winbind/winbindenumusers.xml | 20 + docs/docbook/smbdotconf/winbind/winbindgid.xml | 14 + .../smbdotconf/winbind/winbindseparator.xml | 17 + docs/docbook/smbdotconf/winbind/winbinduid.xml | 14 + .../smbdotconf/winbind/winbindusedefaultdomain.xml | 14 + docs/docbook/smbdotconf/wins/dnsproxy.xml | 21 + docs/docbook/smbdotconf/wins/winshook.xml | 43 ++ docs/docbook/smbdotconf/wins/winspartners.xml | 14 + docs/docbook/smbdotconf/wins/winsproxy.xml | 9 + docs/docbook/smbdotconf/wins/winsserver.xml | 21 + docs/docbook/smbdotconf/wins/winssupport.xml | 12 + 323 files changed, 7843 insertions(+) create mode 100644 docs/docbook/smbdotconf/.cvsignore create mode 100644 docs/docbook/smbdotconf/README create mode 100644 docs/docbook/smbdotconf/base/adsserver.xml create mode 100644 docs/docbook/smbdotconf/base/bindinterfacesonly.xml create mode 100644 docs/docbook/smbdotconf/base/comment.xml create mode 100644 docs/docbook/smbdotconf/base/directory.xml create mode 100644 docs/docbook/smbdotconf/base/displaycharset.xml create mode 100644 docs/docbook/smbdotconf/base/doscharset.xml create mode 100644 docs/docbook/smbdotconf/base/interfaces.xml create mode 100644 docs/docbook/smbdotconf/base/netbiosaliases.xml create mode 100644 docs/docbook/smbdotconf/base/netbiosname.xml create mode 100644 docs/docbook/smbdotconf/base/netbiosscope.xml create mode 100644 docs/docbook/smbdotconf/base/path.xml create mode 100644 docs/docbook/smbdotconf/base/realm.xml create mode 100644 docs/docbook/smbdotconf/base/serverstring.xml create mode 100644 docs/docbook/smbdotconf/base/unixcharset.xml create mode 100644 docs/docbook/smbdotconf/base/workgroup.xml create mode 100644 docs/docbook/smbdotconf/browse/browsable.xml create mode 100644 docs/docbook/smbdotconf/browse/browseable.xml create mode 100644 docs/docbook/smbdotconf/browse/browselist.xml create mode 100644 docs/docbook/smbdotconf/browse/domainmaster.xml create mode 100644 docs/docbook/smbdotconf/browse/enhancedbrowsing.xml create mode 100644 docs/docbook/smbdotconf/browse/lmannounce.xml create mode 100644 docs/docbook/smbdotconf/browse/lminterval.xml create mode 100644 docs/docbook/smbdotconf/browse/localmaster.xml create mode 100644 docs/docbook/smbdotconf/browse/oslevel.xml create mode 100644 docs/docbook/smbdotconf/browse/preferedmaster.xml create mode 100644 docs/docbook/smbdotconf/browse/preferredmaster.xml create mode 100644 docs/docbook/smbdotconf/domain/machinepasswordtimeout.xml create mode 100644 docs/docbook/smbdotconf/expand-smb.conf.xsl create mode 100644 docs/docbook/smbdotconf/filename/casesensitive.xml create mode 100644 docs/docbook/smbdotconf/filename/casesignames.xml create mode 100644 docs/docbook/smbdotconf/filename/defaultcase.xml create mode 100644 docs/docbook/smbdotconf/filename/deletevetofiles.xml create mode 100644 docs/docbook/smbdotconf/filename/hidedotfiles.xml create mode 100644 docs/docbook/smbdotconf/filename/hidefiles.xml create mode 100644 docs/docbook/smbdotconf/filename/hidespecialfiles.xml create mode 100644 docs/docbook/smbdotconf/filename/hideunreadable.xml create mode 100644 docs/docbook/smbdotconf/filename/hideunwriteablefiles.xml create mode 100644 docs/docbook/smbdotconf/filename/manglecase.xml create mode 100644 docs/docbook/smbdotconf/filename/mangledmap.xml create mode 100644 docs/docbook/smbdotconf/filename/manglednames.xml create mode 100644 docs/docbook/smbdotconf/filename/mangledstack.xml create mode 100644 docs/docbook/smbdotconf/filename/mangleprefix.xml create mode 100644 docs/docbook/smbdotconf/filename/manglingchar.xml create mode 100644 docs/docbook/smbdotconf/filename/manglingmethod.xml create mode 100644 docs/docbook/smbdotconf/filename/maparchive.xml create mode 100644 docs/docbook/smbdotconf/filename/maphidden.xml create mode 100644 docs/docbook/smbdotconf/filename/mapsystem.xml create mode 100644 docs/docbook/smbdotconf/filename/preservecase.xml create mode 100644 docs/docbook/smbdotconf/filename/shortpreservecase.xml create mode 100644 docs/docbook/smbdotconf/filename/statcache.xml create mode 100644 docs/docbook/smbdotconf/filename/stripdot.xml create mode 100644 docs/docbook/smbdotconf/filename/vetofiles.xml create mode 100644 docs/docbook/smbdotconf/filename/vetooplockfiles.xml create mode 100644 docs/docbook/smbdotconf/generate-context.xsl create mode 100755 docs/docbook/smbdotconf/generate-file-list.sh create mode 100644 docs/docbook/smbdotconf/ldap/ldapadmindn.xml create mode 100644 docs/docbook/smbdotconf/ldap/ldapdeletedn.xml create mode 100644 docs/docbook/smbdotconf/ldap/ldapdelonlysamattr.xml create mode 100644 docs/docbook/smbdotconf/ldap/ldapfilter.xml create mode 100644 docs/docbook/smbdotconf/ldap/ldapmachinesuffix.xml create mode 100644 docs/docbook/smbdotconf/ldap/ldappasswdsync.xml create mode 100644 docs/docbook/smbdotconf/ldap/ldapport.xml create mode 100644 docs/docbook/smbdotconf/ldap/ldapserver.xml create mode 100644 docs/docbook/smbdotconf/ldap/ldapssl.xml create mode 100644 docs/docbook/smbdotconf/ldap/ldapsuffix.xml create mode 100644 docs/docbook/smbdotconf/ldap/ldaptrustids.xml create mode 100644 docs/docbook/smbdotconf/ldap/ldapusersuffix.xml create mode 100644 docs/docbook/smbdotconf/locking/blockinglocks.xml create mode 100644 docs/docbook/smbdotconf/locking/cscpolicy.xml create mode 100644 docs/docbook/smbdotconf/locking/fakeoplocks.xml create mode 100644 docs/docbook/smbdotconf/locking/kerneloplocks.xml create mode 100644 docs/docbook/smbdotconf/locking/level2oplocks.xml create mode 100644 docs/docbook/smbdotconf/locking/locking.xml create mode 100644 docs/docbook/smbdotconf/locking/lockspincount.xml create mode 100644 docs/docbook/smbdotconf/locking/lockspintime.xml create mode 100644 docs/docbook/smbdotconf/locking/oplockbreakwaittime.xml create mode 100644 docs/docbook/smbdotconf/locking/oplockcontentionlimit.xml create mode 100644 docs/docbook/smbdotconf/locking/oplocks.xml create mode 100644 docs/docbook/smbdotconf/locking/posixlocking.xml create mode 100644 docs/docbook/smbdotconf/locking/sharemodes.xml create mode 100644 docs/docbook/smbdotconf/locking/strictlocking.xml create mode 100644 docs/docbook/smbdotconf/logging/debughirestimestamp.xml create mode 100644 docs/docbook/smbdotconf/logging/debuglevel.xml create mode 100644 docs/docbook/smbdotconf/logging/debugpid.xml create mode 100644 docs/docbook/smbdotconf/logging/debugtimestamp.xml create mode 100644 docs/docbook/smbdotconf/logging/debuguid.xml create mode 100644 docs/docbook/smbdotconf/logging/logfile.xml create mode 100644 docs/docbook/smbdotconf/logging/loglevel.xml create mode 100644 docs/docbook/smbdotconf/logging/maxlogsize.xml create mode 100644 docs/docbook/smbdotconf/logging/syslog.xml create mode 100644 docs/docbook/smbdotconf/logging/syslogonly.xml create mode 100644 docs/docbook/smbdotconf/logging/timestamplogs.xml create mode 100644 docs/docbook/smbdotconf/logon/abortshutdownscript.xml create mode 100644 docs/docbook/smbdotconf/logon/addgroupscript.xml create mode 100644 docs/docbook/smbdotconf/logon/addmachinescript.xml create mode 100644 docs/docbook/smbdotconf/logon/adduserscript.xml create mode 100644 docs/docbook/smbdotconf/logon/addusertogroupscript.xml create mode 100644 docs/docbook/smbdotconf/logon/deletegroupscript.xml create mode 100644 docs/docbook/smbdotconf/logon/deleteuserfromgroupscript.xml create mode 100644 docs/docbook/smbdotconf/logon/deleteuserscript.xml create mode 100644 docs/docbook/smbdotconf/logon/domainlogons.xml create mode 100644 docs/docbook/smbdotconf/logon/logondrive.xml create mode 100644 docs/docbook/smbdotconf/logon/logonhome.xml create mode 100644 docs/docbook/smbdotconf/logon/logonpath.xml create mode 100644 docs/docbook/smbdotconf/logon/logonscript.xml create mode 100644 docs/docbook/smbdotconf/logon/shutdownscript.xml create mode 100644 docs/docbook/smbdotconf/man.xsl create mode 100644 docs/docbook/smbdotconf/misc/addsharecommand.xml create mode 100644 docs/docbook/smbdotconf/misc/autoservices.xml create mode 100644 docs/docbook/smbdotconf/misc/available.xml create mode 100644 docs/docbook/smbdotconf/misc/changesharecommand.xml create mode 100644 docs/docbook/smbdotconf/misc/configfile.xml create mode 100644 docs/docbook/smbdotconf/misc/copy.xml create mode 100644 docs/docbook/smbdotconf/misc/default.xml create mode 100644 docs/docbook/smbdotconf/misc/defaultservice.xml create mode 100644 docs/docbook/smbdotconf/misc/deletereadonly.xml create mode 100644 docs/docbook/smbdotconf/misc/deletesharecommand.xml create mode 100644 docs/docbook/smbdotconf/misc/dfreecommand.xml create mode 100644 docs/docbook/smbdotconf/misc/dontdescend.xml create mode 100644 docs/docbook/smbdotconf/misc/dosfilemode.xml create mode 100644 docs/docbook/smbdotconf/misc/dosfiletimeresolution.xml create mode 100644 docs/docbook/smbdotconf/misc/dosfiletimes.xml create mode 100644 docs/docbook/smbdotconf/misc/exec.xml create mode 100644 docs/docbook/smbdotconf/misc/fakedirectorycreatetimes.xml create mode 100644 docs/docbook/smbdotconf/misc/followsymlinks.xml create mode 100644 docs/docbook/smbdotconf/misc/fstype.xml create mode 100644 docs/docbook/smbdotconf/misc/hidelocalusers.xml create mode 100644 docs/docbook/smbdotconf/misc/homedirmap.xml create mode 100644 docs/docbook/smbdotconf/misc/include.xml create mode 100644 docs/docbook/smbdotconf/misc/lockdir.xml create mode 100644 docs/docbook/smbdotconf/misc/lockdirectory.xml create mode 100644 docs/docbook/smbdotconf/misc/magicoutput.xml create mode 100644 docs/docbook/smbdotconf/misc/magicscript.xml create mode 100644 docs/docbook/smbdotconf/misc/messagecommand.xml create mode 100644 docs/docbook/smbdotconf/misc/nishomedir.xml create mode 100644 docs/docbook/smbdotconf/misc/panicaction.xml create mode 100644 docs/docbook/smbdotconf/misc/piddirectory.xml create mode 100644 docs/docbook/smbdotconf/misc/postexec.xml create mode 100644 docs/docbook/smbdotconf/misc/preexec.xml create mode 100644 docs/docbook/smbdotconf/misc/preexecclose.xml create mode 100644 docs/docbook/smbdotconf/misc/preload.xml create mode 100644 docs/docbook/smbdotconf/misc/remoteannounce.xml create mode 100644 docs/docbook/smbdotconf/misc/remotebrowsesync.xml create mode 100644 docs/docbook/smbdotconf/misc/rootpostexec.xml create mode 100644 docs/docbook/smbdotconf/misc/rootpreexec.xml create mode 100644 docs/docbook/smbdotconf/misc/rootpreexecclose.xml create mode 100644 docs/docbook/smbdotconf/misc/setdirectory.xml create mode 100644 docs/docbook/smbdotconf/misc/socketaddress.xml create mode 100644 docs/docbook/smbdotconf/misc/sourceenvironment.xml create mode 100644 docs/docbook/smbdotconf/misc/timeoffset.xml create mode 100644 docs/docbook/smbdotconf/misc/utmp.xml create mode 100644 docs/docbook/smbdotconf/misc/utmpdirectory.xml create mode 100644 docs/docbook/smbdotconf/misc/volume.xml create mode 100644 docs/docbook/smbdotconf/misc/widelinks.xml create mode 100644 docs/docbook/smbdotconf/misc/wtmpdirectory.xml create mode 100644 docs/docbook/smbdotconf/printing/addprintercommand.xml create mode 100644 docs/docbook/smbdotconf/printing/defaultdevmode.xml create mode 100644 docs/docbook/smbdotconf/printing/deleteprintercommand.xml create mode 100644 docs/docbook/smbdotconf/printing/disablespoolss.xml create mode 100644 docs/docbook/smbdotconf/printing/enumportscommand.xml create mode 100644 docs/docbook/smbdotconf/printing/loadprinters.xml create mode 100644 docs/docbook/smbdotconf/printing/lppausecommand.xml create mode 100644 docs/docbook/smbdotconf/printing/lpqcachetime.xml create mode 100644 docs/docbook/smbdotconf/printing/lpqcommand.xml create mode 100644 docs/docbook/smbdotconf/printing/lpresumecommand.xml create mode 100644 docs/docbook/smbdotconf/printing/lprmcommand.xml create mode 100644 docs/docbook/smbdotconf/printing/maxprintjobs.xml create mode 100644 docs/docbook/smbdotconf/printing/os2drivermap.xml create mode 100644 docs/docbook/smbdotconf/printing/printable.xml create mode 100644 docs/docbook/smbdotconf/printing/printcap.xml create mode 100644 docs/docbook/smbdotconf/printing/printcapname.xml create mode 100644 docs/docbook/smbdotconf/printing/printcommand.xml create mode 100644 docs/docbook/smbdotconf/printing/printer.xml create mode 100644 docs/docbook/smbdotconf/printing/printername.xml create mode 100644 docs/docbook/smbdotconf/printing/printing.xml create mode 100644 docs/docbook/smbdotconf/printing/printok.xml create mode 100644 docs/docbook/smbdotconf/printing/queuepausecommand.xml create mode 100644 docs/docbook/smbdotconf/printing/queueresumecommand.xml create mode 100644 docs/docbook/smbdotconf/printing/showaddprinterwizard.xml create mode 100644 docs/docbook/smbdotconf/printing/totalprintjobs.xml create mode 100644 docs/docbook/smbdotconf/printing/useclientdriver.xml create mode 100755 docs/docbook/smbdotconf/process-all.sh create mode 100644 docs/docbook/smbdotconf/protocol/announceas.xml create mode 100644 docs/docbook/smbdotconf/protocol/announceversion.xml create mode 100644 docs/docbook/smbdotconf/protocol/disablenetbios.xml create mode 100644 docs/docbook/smbdotconf/protocol/largereadwrite.xml create mode 100644 docs/docbook/smbdotconf/protocol/maxmux.xml create mode 100644 docs/docbook/smbdotconf/protocol/maxprotocol.xml create mode 100644 docs/docbook/smbdotconf/protocol/maxttl.xml create mode 100644 docs/docbook/smbdotconf/protocol/maxwinsttl.xml create mode 100644 docs/docbook/smbdotconf/protocol/maxxmit.xml create mode 100644 docs/docbook/smbdotconf/protocol/minprotocol.xml create mode 100644 docs/docbook/smbdotconf/protocol/minwinsttl.xml create mode 100644 docs/docbook/smbdotconf/protocol/nameresolveorder.xml create mode 100644 docs/docbook/smbdotconf/protocol/ntaclsupport.xml create mode 100644 docs/docbook/smbdotconf/protocol/ntpipesupport.xml create mode 100644 docs/docbook/smbdotconf/protocol/ntstatussupport.xml create mode 100644 docs/docbook/smbdotconf/protocol/protocol.xml create mode 100644 docs/docbook/smbdotconf/protocol/readbmpx.xml create mode 100644 docs/docbook/smbdotconf/protocol/readraw.xml create mode 100644 docs/docbook/smbdotconf/protocol/smbports.xml create mode 100644 docs/docbook/smbdotconf/protocol/timeserver.xml create mode 100644 docs/docbook/smbdotconf/protocol/unicode.xml create mode 100644 docs/docbook/smbdotconf/protocol/unixextensions.xml create mode 100644 docs/docbook/smbdotconf/protocol/usespnego.xml create mode 100644 docs/docbook/smbdotconf/protocol/writeraw.xml create mode 100644 docs/docbook/smbdotconf/security/adminusers.xml create mode 100644 docs/docbook/smbdotconf/security/algorithmicridbase.xml create mode 100644 docs/docbook/smbdotconf/security/allowhosts.xml create mode 100644 docs/docbook/smbdotconf/security/allowtrusteddomains.xml create mode 100644 docs/docbook/smbdotconf/security/authmethods.xml create mode 100644 docs/docbook/smbdotconf/security/createmask.xml create mode 100644 docs/docbook/smbdotconf/security/createmode.xml create mode 100644 docs/docbook/smbdotconf/security/denyhosts.xml create mode 100644 docs/docbook/smbdotconf/security/directorymask.xml create mode 100644 docs/docbook/smbdotconf/security/directorymode.xml create mode 100644 docs/docbook/smbdotconf/security/directorysecuritymask.xml create mode 100644 docs/docbook/smbdotconf/security/encryptpasswords.xml create mode 100644 docs/docbook/smbdotconf/security/forcecreatemode.xml create mode 100644 docs/docbook/smbdotconf/security/forcedirectorymode.xml create mode 100644 docs/docbook/smbdotconf/security/forcedirectorysecuritymode.xml create mode 100644 docs/docbook/smbdotconf/security/forcegroup.xml create mode 100644 docs/docbook/smbdotconf/security/forcesecuritymode.xml create mode 100644 docs/docbook/smbdotconf/security/forceuser.xml create mode 100644 docs/docbook/smbdotconf/security/group.xml create mode 100644 docs/docbook/smbdotconf/security/guestaccount.xml create mode 100644 docs/docbook/smbdotconf/security/guestok.xml create mode 100644 docs/docbook/smbdotconf/security/guestonly.xml create mode 100644 docs/docbook/smbdotconf/security/hostsallow.xml create mode 100644 docs/docbook/smbdotconf/security/hostsdeny.xml create mode 100644 docs/docbook/smbdotconf/security/hostsequiv.xml create mode 100644 docs/docbook/smbdotconf/security/inheritacls.xml create mode 100644 docs/docbook/smbdotconf/security/inheritpermissions.xml create mode 100644 docs/docbook/smbdotconf/security/invalidusers.xml create mode 100644 docs/docbook/smbdotconf/security/lanmanauth.xml create mode 100644 docs/docbook/smbdotconf/security/maptoguest.xml create mode 100644 docs/docbook/smbdotconf/security/minpasswdlength.xml create mode 100644 docs/docbook/smbdotconf/security/minpasswordlength.xml create mode 100644 docs/docbook/smbdotconf/security/nonunixaccountrange.xml create mode 100644 docs/docbook/smbdotconf/security/ntlmauth.xml create mode 100644 docs/docbook/smbdotconf/security/nullpasswords.xml create mode 100644 docs/docbook/smbdotconf/security/obeypamrestrictions.xml create mode 100644 docs/docbook/smbdotconf/security/onlyguest.xml create mode 100644 docs/docbook/smbdotconf/security/onlyuser.xml create mode 100644 docs/docbook/smbdotconf/security/pampasswordchange.xml create mode 100644 docs/docbook/smbdotconf/security/passdbbackend.xml create mode 100644 docs/docbook/smbdotconf/security/passwdchat.xml create mode 100644 docs/docbook/smbdotconf/security/passwdchatdebug.xml create mode 100644 docs/docbook/smbdotconf/security/passwdprogram.xml create mode 100644 docs/docbook/smbdotconf/security/passwordlevel.xml create mode 100644 docs/docbook/smbdotconf/security/passwordserver.xml create mode 100644 docs/docbook/smbdotconf/security/printeradmin.xml create mode 100644 docs/docbook/smbdotconf/security/privatedir.xml create mode 100644 docs/docbook/smbdotconf/security/public.xml create mode 100644 docs/docbook/smbdotconf/security/readlist.xml create mode 100644 docs/docbook/smbdotconf/security/readonly.xml create mode 100644 docs/docbook/smbdotconf/security/restrictanonymous.xml create mode 100644 docs/docbook/smbdotconf/security/root.xml create mode 100644 docs/docbook/smbdotconf/security/rootdir.xml create mode 100644 docs/docbook/smbdotconf/security/rootdirectory.xml create mode 100644 docs/docbook/smbdotconf/security/security.xml create mode 100644 docs/docbook/smbdotconf/security/securitymask.xml create mode 100644 docs/docbook/smbdotconf/security/smbpasswdfile.xml create mode 100644 docs/docbook/smbdotconf/security/unixpasswordsync.xml create mode 100644 docs/docbook/smbdotconf/security/updateencrypted.xml create mode 100644 docs/docbook/smbdotconf/security/user.xml create mode 100644 docs/docbook/smbdotconf/security/username.xml create mode 100644 docs/docbook/smbdotconf/security/usernamelevel.xml create mode 100644 docs/docbook/smbdotconf/security/usernamemap.xml create mode 100644 docs/docbook/smbdotconf/security/users.xml create mode 100644 docs/docbook/smbdotconf/security/validusers.xml create mode 100644 docs/docbook/smbdotconf/security/writable.xml create mode 100644 docs/docbook/smbdotconf/security/writeable.xml create mode 100644 docs/docbook/smbdotconf/security/writelist.xml create mode 100644 docs/docbook/smbdotconf/security/writeok.xml create mode 100644 docs/docbook/smbdotconf/smb.conf.5.xml create mode 100644 docs/docbook/smbdotconf/smbconf.dtd create mode 100644 docs/docbook/smbdotconf/split-original-smb.conf.xsl create mode 100644 docs/docbook/smbdotconf/tuning/blocksize.xml create mode 100644 docs/docbook/smbdotconf/tuning/changenotifytimeout.xml create mode 100644 docs/docbook/smbdotconf/tuning/deadtime.xml create mode 100644 docs/docbook/smbdotconf/tuning/getwdcache.xml create mode 100644 docs/docbook/smbdotconf/tuning/hostnamelookups.xml create mode 100644 docs/docbook/smbdotconf/tuning/keepalive.xml create mode 100644 docs/docbook/smbdotconf/tuning/maxconnections.xml create mode 100644 docs/docbook/smbdotconf/tuning/maxdisksize.xml create mode 100644 docs/docbook/smbdotconf/tuning/maxopenfiles.xml create mode 100644 docs/docbook/smbdotconf/tuning/maxsmbdprocesses.xml create mode 100644 docs/docbook/smbdotconf/tuning/minprintspace.xml create mode 100644 docs/docbook/smbdotconf/tuning/namecachetimeout.xml create mode 100644 docs/docbook/smbdotconf/tuning/paranoidserversecurity.xml create mode 100644 docs/docbook/smbdotconf/tuning/readsize.xml create mode 100644 docs/docbook/smbdotconf/tuning/socketoptions.xml create mode 100644 docs/docbook/smbdotconf/tuning/statcachesize.xml create mode 100644 docs/docbook/smbdotconf/tuning/strictallocate.xml create mode 100644 docs/docbook/smbdotconf/tuning/strictsync.xml create mode 100644 docs/docbook/smbdotconf/tuning/syncalways.xml create mode 100644 docs/docbook/smbdotconf/tuning/usemmap.xml create mode 100644 docs/docbook/smbdotconf/tuning/usesendfile.xml create mode 100644 docs/docbook/smbdotconf/tuning/writecachesize.xml create mode 100644 docs/docbook/smbdotconf/vfs/hostmsdfs.xml create mode 100644 docs/docbook/smbdotconf/vfs/msdfsproxy.xml create mode 100644 docs/docbook/smbdotconf/vfs/msdfsroot.xml create mode 100644 docs/docbook/smbdotconf/vfs/vfsobject.xml create mode 100644 docs/docbook/smbdotconf/vfs/vfsoptions.xml create mode 100644 docs/docbook/smbdotconf/vfs/vfspath.xml create mode 100644 docs/docbook/smbdotconf/winbind/templatehomedir.xml create mode 100644 docs/docbook/smbdotconf/winbind/templateshell.xml create mode 100644 docs/docbook/smbdotconf/winbind/winbindcachetime.xml create mode 100644 docs/docbook/smbdotconf/winbind/winbindenumgroups.xml create mode 100644 docs/docbook/smbdotconf/winbind/winbindenumusers.xml create mode 100644 docs/docbook/smbdotconf/winbind/winbindgid.xml create mode 100644 docs/docbook/smbdotconf/winbind/winbindseparator.xml create mode 100644 docs/docbook/smbdotconf/winbind/winbinduid.xml create mode 100644 docs/docbook/smbdotconf/winbind/winbindusedefaultdomain.xml create mode 100644 docs/docbook/smbdotconf/wins/dnsproxy.xml create mode 100644 docs/docbook/smbdotconf/wins/winshook.xml create mode 100644 docs/docbook/smbdotconf/wins/winspartners.xml create mode 100644 docs/docbook/smbdotconf/wins/winsproxy.xml create mode 100644 docs/docbook/smbdotconf/wins/winsserver.xml create mode 100644 docs/docbook/smbdotconf/wins/winssupport.xml diff --git a/docs/docbook/smbdotconf/.cvsignore b/docs/docbook/smbdotconf/.cvsignore new file mode 100644 index 00000000000..0f8c6cb0ed3 --- /dev/null +++ b/docs/docbook/smbdotconf/.cvsignore @@ -0,0 +1,4 @@ +parameters.all.xml +parameters.global.xml +parameters.service.xml + diff --git a/docs/docbook/smbdotconf/README b/docs/docbook/smbdotconf/README new file mode 100644 index 00000000000..f50a944e7bf --- /dev/null +++ b/docs/docbook/smbdotconf/README @@ -0,0 +1,159 @@ +DocBook XML 4.2 source code for smb.conf(5) documentation for Samba 3.0 + +Author of the document: Alexander Bokovoy + +Welcome to new smb.conf(5) documentation build system! This directory +contains a new incarnation of Samba's smb.conf(5) Docbook XML 4.2 +sources. Note that the output might be unsatisfying untill all smb.conf(5) +parameters will converted to new format (see Chapter 4 for details). + +Content +------- + +0. Prerequisites +1. Structure +2. XSLT stylesheets +3. Usage +4. Current status of converted parameters + +Prerequisites +------------- + +In order to compile smb.conf(5) documentation from Docbook XML 4.2 +sources you'll need: + + - a working libxml2 and libxslt installation, together with xsltproc utility + + - a locally installed Docbook XSL 4.2 or higher + + - a working xmlcatalog to eliminate Web access for Docbook XSL + +The latter requisite is important: we do not specify local copies of +Docbook XSL stylesheets in our XSLTs because of real nightmare in their +location in most distributions. Fortunately, libxml2 provides standard +way to access locally installed external resources via so-called +'xmlcatalog' tool. It is working in RedHat, Mandrake, ALT Linux, and +some other distributions but wasn't at the moment of this writting (Late +March'03) in Debian. + +Structure +--------- + +smb.conf(5) sources consist of a number of XML files distributed across +a number of subdirectories. Each subdirectory represents a group of +smb.conf(5) parameters dedicated to one specific task as described in +Samba's loadparm.c source file (and shown in SWAT). + +Each XML file in subdirectories represents one parameter description, +together with some additional meta-information about it. Complete list +of meta-information attributes + +attribute description +------------------------------------------------------------------- +name smb.conf(5) parameter name +context G for global, S for services +basic set to 1 if loadparm.c's description +wizard includes appropriate flag for +advanced this parameter (FLAG_BASIC, +developer FLAG_ADVANCED, FLAG_WIZARD, FLAG_DEVELOPER) +------------------------------------------------------------------- + +Main XML file for smb.conf(5) is smb.conf.5.xml. It contains a general +stub for man page and several XML instructions to include: + + - a list of global parameters (auto-generated); + + - a list of service parameters (auto-generated); + + - a complete list of alphabetically sorted parameters (auto-generated). + +XSLT stylesheets +---------------- + +In order to combine and build final version of smb.conf(5) we apply a +set of XSLT stylesheets to smb.conf(5) sources. Following is the +complete description of existing stylesheets in smb.conf(5) source tree: + +1. [expand-smb.conf.xsl] Main driver, produces big XML source with all +smaller components combined. The resulted tree is then feed to Docbook +XSL for final producing. + +This stylesheet performs two main transformations: + + - Replaces tag by one; + + - Generates and tags for each . + +The latter step needs some explanation. We generate automatically + and tags based on meta-information about parameter. This +way all anchors have predictable names (capitalized parameter name with +all spaces supressed) and we really don't need to dublicate data. + +There was only one exception to the generation rule in smb.conf.5.sgml: +"use spnego" parameter had anchor SPNEGO which is now unified to +USESPNEGO. This also fixes a bug in SWAT which was unable to find SPNEGO +achnor. + +2. [generate-context.xsl] An utility stylesheet which main purpose is to +produce a list of parameters which are applicable for selected context +(global or service). + +The generate-context.xsl is run twice to generate both +parameters.global.xml and parameters.service.xml which are included then +by smb.conf.5.xml. This stylesheet relies on parameters.all.xml file +which is generated by [generate-file-list.sh] shell script. + +The parameters.all.xml file contains a complete list of include +instructions for XSLT processor to include all small XML files from +subdirectories. + +3. [man.xsl] Our local copy of Docbook XML to man(5) transformer. It +fixes some annoying errors in official Docbook XSL stylesheets and adds +our tuned parameters. This file really belongs to upper level where it +would occur later, as we'll move to Docbook XML completely. + +4. [split-original-smb.conf.xsl] This stylesheet isn't required anymore. +It was used for initial split of SGML-based smb.conf.5.sgml onto a set +of per-parameter XML files. I left it in source tree just for historical +interest. :) + +Usage +----- + +1. Generate [parameters.all.xml]: + sh generate-file-list.sh >parameters.all.xml + +2. Generate [parameters.global.xml]: + xsltproc --xinclude \ + --param smb.context "'G'" \ + --output parameters.global.xml \ + generate-context.xsl parameters.all.xml + +3. Generate [parameters.service.xml]: + xsltproc --xinclude \ + --param smb.context "'S'" \ + --output parameters.service.xml \ + generate-context.xsl parameters.all.xml + +4. Process smb.conf.5.xml (for example, to HTML): + xsltproc --xinclude expand-smb.conf.xsl smb.conf.5.xml | \ + xsltproc http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl - > smb.conf.5.html + +Note that in step 4 we are not saving preprocessed smb.conf.5.xml to +disk and directly passing it to the next XSLT processor (in this case -- +Docbook XML to HTML generator). + +For convenience, this sequence of commands is added into source tree as +process-all.sh + +Current state of converted parameters +------------------------------------- + +Only 'ads server' parameter converted so far to serve as example of +formatting. + +All undocumented parameters are listed in doc-status file in of Samba's +docs/ directory. + +Any help is greatly appreciated. + diff --git a/docs/docbook/smbdotconf/base/adsserver.xml b/docs/docbook/smbdotconf/base/adsserver.xml new file mode 100644 index 00000000000..4dd2a4b6351 --- /dev/null +++ b/docs/docbook/smbdotconf/base/adsserver.xml @@ -0,0 +1,15 @@ + + + If this option is specified, samba does not try to figure out what + ads server to use itself, but uses the specified ads server. Either one + DNS name or IP address can be used. + + Default: ads server = + + Example: ads server = 192.168.1.2 + + + diff --git a/docs/docbook/smbdotconf/base/bindinterfacesonly.xml b/docs/docbook/smbdotconf/base/bindinterfacesonly.xml new file mode 100644 index 00000000000..78e1b02bf5e --- /dev/null +++ b/docs/docbook/smbdotconf/base/bindinterfacesonly.xml @@ -0,0 +1,66 @@ + + bind interfaces only (G) + This global parameter allows the Samba admin + to limit what interfaces on a machine will serve SMB requests. It + affects file service smbd + 8 and name service nmbd + 8 in a slightly different ways. + + For name service it causes nmbd to bind + to ports 137 and 138 on the interfaces listed in the interfaces parameter. nmbd + also binds to the "all addresses" interface (0.0.0.0) + on ports 137 and 138 for the purposes of reading broadcast messages. + If this option is not set then nmbd will service + name requests on all of these sockets. If bind interfaces + only is set then nmbd will check the + source address of any packets coming in on the broadcast sockets + and discard any that don't match the broadcast addresses of the + interfaces in the interfaces parameter list. + As unicast packets are received on the other sockets it allows + nmbd to refuse to serve names to machines that + send packets that arrive through any interfaces not listed in the + interfaces list. IP Source address spoofing + does defeat this simple check, however, so it must not be used + seriously as a security feature for nmbd. + + For file service it causes smbd + 8 to bind only to the interface list + given in the + interfaces parameter. This restricts the networks that + smbd will serve to packets coming in those + interfaces. Note that you should not use this parameter for machines + that are serving PPP or other intermittent or non-broadcast network + interfaces as it will not cope with non-permanent interfaces. + + If bind interfaces only is set then + unless the network address 127.0.0.1 is added + to the interfaces parameter list smbpasswd + 8 and swat + 8 may not work as expected due to the reasons covered below. + + To change a users SMB password, the smbpasswd + by default connects to the localhost - 127.0.0.1 + address as an SMB client to issue the password change request. If + bind interfaces only is set then unless the + network address 127.0.0.1 is added to the + interfaces parameter list then + smbpasswd will fail to connect in it's default mode. + smbpasswd can be forced to use the primary IP interface + of the local host by using its smbpasswd + 8 -r remote machine + parameter, with remote machine set + to the IP name of the primary interface of the local host. + + The swat status page tries to connect with + smbd and nmbd at the address + 127.0.0.1 to determine if they are running. + Not adding 127.0.0.1 will cause + smbd and nmbd to always show + "not running" even if they really are. This can prevent + swat from starting/stopping/restarting smbd + and nmbd. + + Default: bind interfaces only = no + + + diff --git a/docs/docbook/smbdotconf/base/comment.xml b/docs/docbook/smbdotconf/base/comment.xml new file mode 100644 index 00000000000..693268a0b0f --- /dev/null +++ b/docs/docbook/smbdotconf/base/comment.xml @@ -0,0 +1,14 @@ + + comment (S) + This is a text field that is seen next to a share + when a client does a queries the server, either via the network + neighborhood or via net view to list what shares + are available. + + If you want to set the string that is displayed next to the + machine name then see the + server string parameter. + + Default: No comment string + Example: comment = Fred's Files + diff --git a/docs/docbook/smbdotconf/base/directory.xml b/docs/docbook/smbdotconf/base/directory.xml new file mode 100644 index 00000000000..1ec4ab7e1ad --- /dev/null +++ b/docs/docbook/smbdotconf/base/directory.xml @@ -0,0 +1,5 @@ + + directory (S) + Synonym for path + . + diff --git a/docs/docbook/smbdotconf/base/displaycharset.xml b/docs/docbook/smbdotconf/base/displaycharset.xml new file mode 100644 index 00000000000..add519e7839 --- /dev/null +++ b/docs/docbook/smbdotconf/base/displaycharset.xml @@ -0,0 +1,13 @@ + + display charset (G) + Specifies the charset that samba will use + to print messages to stdout and stderr and SWAT will use. + Should generally be the same as the unix charset. + + + Default: display charset = ASCII + + Example: display charset = UTF8 + + + diff --git a/docs/docbook/smbdotconf/base/doscharset.xml b/docs/docbook/smbdotconf/base/doscharset.xml new file mode 100644 index 00000000000..db767e720ca --- /dev/null +++ b/docs/docbook/smbdotconf/base/doscharset.xml @@ -0,0 +1,14 @@ + + dos charset (G) + DOS SMB clients assume the server has + the same charset as they do. This option specifies which + charset Samba should talk to DOS clients. + + + The default depends on which charsets you have installed. + Samba tries to use charset 850 but falls back to ASCII in + case it is not available. Run testparm + 1 to check the default on your system. + + + diff --git a/docs/docbook/smbdotconf/base/interfaces.xml b/docs/docbook/smbdotconf/base/interfaces.xml new file mode 100644 index 00000000000..1125ad05590 --- /dev/null +++ b/docs/docbook/smbdotconf/base/interfaces.xml @@ -0,0 +1,49 @@ + + interfaces (G) + This option allows you to override the default + network interfaces list that Samba will use for browsing, name + registration and other NBT traffic. By default Samba will query + the kernel for the list of all active interfaces and use any + interfaces except 127.0.0.1 that are broadcast capable. + + The option takes a list of interface strings. Each string + can be in any of the following forms: + + + a network interface name (such as eth0). + This may include shell-like wildcards so eth* will match + any interface starting with the substring "eth" + + an IP address. In this case the netmask is + determined from the list of interfaces obtained from the + kernel + + an IP/mask pair. + + a broadcast/mask pair. + + + The "mask" parameters can either be a bit length (such + as 24 for a C class network) or a full netmask in dotted + decimal form. + + The "IP" parameters above can either be a full dotted + decimal IP address or a hostname which will be looked up via + the OS's normal hostname resolution mechanisms. + + For example, the following line: + + interfaces = eth0 192.168.2.10/24 192.168.3.10/255.255.255.0 + + + would configure three network interfaces corresponding + to the eth0 device and IP addresses 192.168.2.10 and 192.168.3.10. + The netmasks of the latter two interfaces would be set to 255.255.255.0. + + See also bind + interfaces only. + + Default: all active interfaces except 127.0.0.1 + that are broadcast capable + + diff --git a/docs/docbook/smbdotconf/base/netbiosaliases.xml b/docs/docbook/smbdotconf/base/netbiosaliases.xml new file mode 100644 index 00000000000..b0a7688a839 --- /dev/null +++ b/docs/docbook/smbdotconf/base/netbiosaliases.xml @@ -0,0 +1,17 @@ + + netbios aliases (G) + This is a list of NetBIOS names that nmbd(8) will advertise as additional + names by which the Samba server is known. This allows one machine + to appear in browse lists under multiple names. If a machine is + acting as a browse server or logon server none + of these names will be advertised as either browse server or logon + servers, only the primary name of the machine will be advertised + with these capabilities. + + See also netbios + name. + + Default: empty string (no additional names) + Example: netbios aliases = TEST TEST1 TEST2 + + diff --git a/docs/docbook/smbdotconf/base/netbiosname.xml b/docs/docbook/smbdotconf/base/netbiosname.xml new file mode 100644 index 00000000000..2daf26e2b34 --- /dev/null +++ b/docs/docbook/smbdotconf/base/netbiosname.xml @@ -0,0 +1,16 @@ + + netbios name (G) + This sets the NetBIOS name by which a Samba + server is known. By default it is the same as the first component + of the host's DNS name. If a machine is a browse server or + logon server this name (or the first component + of the hosts DNS name) will be the name that these services are + advertised under. + + See also netbios + aliases. + + Default: machine DNS name + Example: netbios name = MYNAME + + diff --git a/docs/docbook/smbdotconf/base/netbiosscope.xml b/docs/docbook/smbdotconf/base/netbiosscope.xml new file mode 100644 index 00000000000..fd0e4ad40c1 --- /dev/null +++ b/docs/docbook/smbdotconf/base/netbiosscope.xml @@ -0,0 +1,7 @@ + + netbios scope (G) + This sets the NetBIOS scope that Samba will + operate under. This should not be set unless every machine + on your LAN also sets this value. + + diff --git a/docs/docbook/smbdotconf/base/path.xml b/docs/docbook/smbdotconf/base/path.xml new file mode 100644 index 00000000000..7d65e10b2be --- /dev/null +++ b/docs/docbook/smbdotconf/base/path.xml @@ -0,0 +1,27 @@ + + path (S) + This parameter specifies a directory to which + the user of the service is to be given access. In the case of + printable services, this is where print data will spool prior to + being submitted to the host for printing. + + For a printable service offering guest access, the service + should be readonly and the path should be world-writeable and + have the sticky bit set. This is not mandatory of course, but + you probably won't get the results you expect if you do + otherwise. + + Any occurrences of %u in the path + will be replaced with the UNIX username that the client is using + on this connection. Any occurrences of %m + will be replaced by the NetBIOS name of the machine they are + connecting from. These replacements are very useful for setting + up pseudo home directories for users. + + Note that this path will be based on + root dir if one was specified. + + Default: none + Example: path = /home/fred + + diff --git a/docs/docbook/smbdotconf/base/realm.xml b/docs/docbook/smbdotconf/base/realm.xml new file mode 100644 index 00000000000..50c7d26eeab --- /dev/null +++ b/docs/docbook/smbdotconf/base/realm.xml @@ -0,0 +1,12 @@ + + realm (G) + + This option specifies the kerberos realm to use. The realm is + used as the ADS equivalent of the NT4domain. It + is usually set to the DNS name of the kerberos server. + + + Default: realm = + Example: realm = mysambabox.mycompany.com + + diff --git a/docs/docbook/smbdotconf/base/serverstring.xml b/docs/docbook/smbdotconf/base/serverstring.xml new file mode 100644 index 00000000000..a47ac4cf420 --- /dev/null +++ b/docs/docbook/smbdotconf/base/serverstring.xml @@ -0,0 +1,22 @@ + + server string (G) + This controls what string will show up in the + printer comment box in print manager and next to the IPC connection + in net view. It can be any string that you wish + to show to your users. + + It also sets what will appear in browse lists next + to the machine name. + + A %v will be replaced with the Samba + version number. + + A %h will be replaced with the + hostname. + + Default: server string = Samba %v + + Example: server string = University of GNUs Samba + Server + + diff --git a/docs/docbook/smbdotconf/base/unixcharset.xml b/docs/docbook/smbdotconf/base/unixcharset.xml new file mode 100644 index 00000000000..0ea84e38c87 --- /dev/null +++ b/docs/docbook/smbdotconf/base/unixcharset.xml @@ -0,0 +1,11 @@ + + unix charset (G) + Specifies the charset the unix machine + Samba runs on uses. Samba needs to know this in order to be able to + convert text to the charsets other SMB clients use. + + + Default: unix charset = UTF8 + Example: unix charset = ASCII + + diff --git a/docs/docbook/smbdotconf/base/workgroup.xml b/docs/docbook/smbdotconf/base/workgroup.xml new file mode 100644 index 00000000000..71ea89d2020 --- /dev/null +++ b/docs/docbook/smbdotconf/base/workgroup.xml @@ -0,0 +1,11 @@ + + workgroup (G) + This controls what workgroup your server will + appear to be in when queried by clients. Note that this parameter + also controls the Domain name used with the security = domain + setting. + + Default: set at compile time to WORKGROUP + Example: workgroup = MYGROUP + + diff --git a/docs/docbook/smbdotconf/browse/browsable.xml b/docs/docbook/smbdotconf/browse/browsable.xml new file mode 100644 index 00000000000..779571cff20 --- /dev/null +++ b/docs/docbook/smbdotconf/browse/browsable.xml @@ -0,0 +1,5 @@ + + browsable (S) + See the + browseable. + diff --git a/docs/docbook/smbdotconf/browse/browseable.xml b/docs/docbook/smbdotconf/browse/browseable.xml new file mode 100644 index 00000000000..c223d6c7d7f --- /dev/null +++ b/docs/docbook/smbdotconf/browse/browseable.xml @@ -0,0 +1,8 @@ + + browseable (S) + This controls whether this share is seen in + the list of available shares in a net view and in the browse list. + + Default: browseable = yes + + diff --git a/docs/docbook/smbdotconf/browse/browselist.xml b/docs/docbook/smbdotconf/browse/browselist.xml new file mode 100644 index 00000000000..f15e2caf2ac --- /dev/null +++ b/docs/docbook/smbdotconf/browse/browselist.xml @@ -0,0 +1,10 @@ + + browse list (G) + This controls whether smbd + 8 will serve a browse list to + a client doing a NetServerEnum call. Normally + set to yes. You should never need to change + this. + + Default: browse list = yes + diff --git a/docs/docbook/smbdotconf/browse/domainmaster.xml b/docs/docbook/smbdotconf/browse/domainmaster.xml new file mode 100644 index 00000000000..cf2d504e4d8 --- /dev/null +++ b/docs/docbook/smbdotconf/browse/domainmaster.xml @@ -0,0 +1,34 @@ + + domain master (G) + Tell smbd + 8 to enable WAN-wide browse list + collation. Setting this option causes nmbd to + claim a special domain specific NetBIOS name that identifies + it as a domain master browser for its given + workgroup. Local master browsers + in the same workgroup on broadcast-isolated + subnets will give this nmbd their local browse lists, + and then ask smbd + 8 for a complete copy of the browse + list for the whole wide area network. Browser clients will then contact + their local master browser, and will receive the domain-wide browse list, + instead of just the list for their broadcast-isolated subnet. + + Note that Windows NT Primary Domain Controllers expect to be + able to claim this workgroup specific special + NetBIOS name that identifies them as domain master browsers for + that workgroup by default (i.e. there is no + way to prevent a Windows NT PDC from attempting to do this). This + means that if this parameter is set and nmbd claims + the special name for a workgroup before a Windows + NT PDC is able to do so then cross subnet browsing will behave + strangely and may fail. + + If domain logons = yes + , then the default behavior is to enable the domain + master parameter. If domain logons is + not enabled (the default setting), then neither will domain + master be enabled by default. + + Default: domain master = auto + diff --git a/docs/docbook/smbdotconf/browse/enhancedbrowsing.xml b/docs/docbook/smbdotconf/browse/enhancedbrowsing.xml new file mode 100644 index 00000000000..cf8d3e54b99 --- /dev/null +++ b/docs/docbook/smbdotconf/browse/enhancedbrowsing.xml @@ -0,0 +1,24 @@ + + enhanced browsing (G) + This option enables a couple of enhancements to + cross-subnet browse propagation that have been added in Samba + but which are not standard in Microsoft implementations. + + + The first enhancement to browse propagation consists of a regular + wildcard query to a Samba WINS server for all Domain Master Browsers, + followed by a browse synchronization with each of the returned + DMBs. The second enhancement consists of a regular randomised browse + synchronization with all currently known DMBs. + + You may wish to disable this option if you have a problem with empty + workgroups not disappearing from browse lists. Due to the restrictions + of the browse protocols these enhancements can cause a empty workgroup + to stay around forever which can be annoying. + + In general you should leave this option enabled as it makes + cross-subnet browse propagation much more reliable. + + Default: enhanced browsing = yes + + diff --git a/docs/docbook/smbdotconf/browse/lmannounce.xml b/docs/docbook/smbdotconf/browse/lmannounce.xml new file mode 100644 index 00000000000..1551c0991ef --- /dev/null +++ b/docs/docbook/smbdotconf/browse/lmannounce.xml @@ -0,0 +1,24 @@ + + lm announce (G) + This parameter determines if nmbd + 8 will produce Lanman announce + broadcasts that are needed by OS/2 clients in order for them to see + the Samba server in their browse list. This parameter can have three + values, yes, no, or + auto. The default is auto. + If set to no Samba will never produce these + broadcasts. If set to yes Samba will produce + Lanman announce broadcasts at a frequency set by the parameter + lm interval. If set to auto + Samba will not send Lanman announce broadcasts by default but will + listen for them. If it hears such a broadcast on the wire it will + then start sending them at a frequency set by the parameter + lm interval. + + See also lm interval + . + + Default: lm announce = auto + Example: lm announce = yes + + diff --git a/docs/docbook/smbdotconf/browse/lminterval.xml b/docs/docbook/smbdotconf/browse/lminterval.xml new file mode 100644 index 00000000000..cc17dc15b05 --- /dev/null +++ b/docs/docbook/smbdotconf/browse/lminterval.xml @@ -0,0 +1,17 @@ + + lm interval (G) + If Samba is set to produce Lanman announce + broadcasts needed by OS/2 clients (see the + lm announce parameter) then this + parameter defines the frequency in seconds with which they will be + made. If this is set to zero then no Lanman announcements will be + made despite the setting of the lm announce + parameter. + + See also lm + announce. + + Default: lm interval = 60 + Example: lm interval = 120 + + diff --git a/docs/docbook/smbdotconf/browse/localmaster.xml b/docs/docbook/smbdotconf/browse/localmaster.xml new file mode 100644 index 00000000000..dffbd3cb194 --- /dev/null +++ b/docs/docbook/smbdotconf/browse/localmaster.xml @@ -0,0 +1,18 @@ + + local master (G) + This option allows nmbd + 8 to try and become a local master browser + on a subnet. If set to no then + nmbd will not attempt to become a local master browser + on a subnet and will also lose in all browsing elections. By + default this value is set to yes. Setting this value to yes doesn't + mean that Samba will become the local master + browser on a subnet, just that nmbd will + participate in elections for local master browser. + + Setting this value to no will cause nmbd + never to become a local master browser. + + Default: local master = yes + + diff --git a/docs/docbook/smbdotconf/browse/oslevel.xml b/docs/docbook/smbdotconf/browse/oslevel.xml new file mode 100644 index 00000000000..927db322047 --- /dev/null +++ b/docs/docbook/smbdotconf/browse/oslevel.xml @@ -0,0 +1,21 @@ + + os level (G) + This integer value controls what level Samba + advertises itself as for browse elections. The value of this + parameter determines whether nmbd + 8 + has a chance of becoming a local master browser for the + WORKGROUP in the local broadcast area. + + Note :By default, Samba will win + a local master browsing election over all Microsoft operating + systems except a Windows NT 4.0/2000 Domain Controller. This + means that a misconfigured Samba host can effectively isolate + a subnet for browsing purposes. See BROWSING.txt + in the Samba docs/ directory + for details. + + Default: os level = 20 + Example: os level = 65 + + diff --git a/docs/docbook/smbdotconf/browse/preferedmaster.xml b/docs/docbook/smbdotconf/browse/preferedmaster.xml new file mode 100644 index 00000000000..8098626c510 --- /dev/null +++ b/docs/docbook/smbdotconf/browse/preferedmaster.xml @@ -0,0 +1,6 @@ + + prefered master (G) + Synonym for + preferred master for people who cannot spell :-). + + diff --git a/docs/docbook/smbdotconf/browse/preferredmaster.xml b/docs/docbook/smbdotconf/browse/preferredmaster.xml new file mode 100644 index 00000000000..53934fdb780 --- /dev/null +++ b/docs/docbook/smbdotconf/browse/preferredmaster.xml @@ -0,0 +1,25 @@ + + preferred master (G) + This boolean parameter controls if nmbd(8) is a preferred master browser + for its workgroup. + + If this is set to yes, on startup, nmbd + will force an election, and it will have a slight advantage in + winning the election. It is recommended that this parameter is + used in conjunction with + domain master = yes, so that + nmbd can guarantee becoming a domain master. + + Use this option with caution, because if there are several + hosts (whether Samba servers, Windows 95 or NT) that are preferred + master browsers on the same subnet, they will each periodically + and continuously attempt to become the local master browser. + This will result in unnecessary broadcast traffic and reduced browsing + capabilities. + + See also os level + . + + Default: preferred master = auto + + diff --git a/docs/docbook/smbdotconf/domain/machinepasswordtimeout.xml b/docs/docbook/smbdotconf/domain/machinepasswordtimeout.xml new file mode 100644 index 00000000000..14e6d9c5df2 --- /dev/null +++ b/docs/docbook/smbdotconf/domain/machinepasswordtimeout.xml @@ -0,0 +1,18 @@ + + machine password timeout (G) + If a Samba server is a member of a Windows + NT Domain (see the security = domain) + parameter) then periodically a running + smbd(8) process will try and change the MACHINE ACCOUNT + PASSWORD stored in the TDB called private/secrets.tdb + . This parameter specifies how often this password + will be changed, in seconds. The default is one week (expressed in + seconds), the same as a Windows NT Domain member server. + + See also smbpasswd + 8, and the + security = domain) parameter. + + Default: machine password timeout = 604800 + + diff --git a/docs/docbook/smbdotconf/expand-smb.conf.xsl b/docs/docbook/smbdotconf/expand-smb.conf.xsl new file mode 100644 index 00000000000..87b4898cf73 --- /dev/null +++ b/docs/docbook/smbdotconf/expand-smb.conf.xsl @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + Processing samba:parameter ( + + ) + + + + + + + + + + + + + + + ( + + ) + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/docbook/smbdotconf/filename/casesensitive.xml b/docs/docbook/smbdotconf/filename/casesensitive.xml new file mode 100644 index 00000000000..622aea329ea --- /dev/null +++ b/docs/docbook/smbdotconf/filename/casesensitive.xml @@ -0,0 +1,7 @@ + + case sensitive (S) + See the discussion in the section NAME MANGLING. + + Default: case sensitive = no + + diff --git a/docs/docbook/smbdotconf/filename/casesignames.xml b/docs/docbook/smbdotconf/filename/casesignames.xml new file mode 100644 index 00000000000..94bcb859840 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/casesignames.xml @@ -0,0 +1,5 @@ + + casesignames (S) + Synonym for case + sensitive. + diff --git a/docs/docbook/smbdotconf/filename/defaultcase.xml b/docs/docbook/smbdotconf/filename/defaultcase.xml new file mode 100644 index 00000000000..f2bdf5db1ce --- /dev/null +++ b/docs/docbook/smbdotconf/filename/defaultcase.xml @@ -0,0 +1,9 @@ + + default case (S) + See the section on + NAME MANGLING. Also note the + short preserve case parameter. + + Default: default case = lower + + diff --git a/docs/docbook/smbdotconf/filename/deletevetofiles.xml b/docs/docbook/smbdotconf/filename/deletevetofiles.xml new file mode 100644 index 00000000000..49a5e2232f9 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/deletevetofiles.xml @@ -0,0 +1,25 @@ + + delete veto files (S) + This option is used when Samba is attempting to + delete a directory that contains one or more vetoed directories + (see the veto files + option). If this option is set to no (the default) then if a vetoed + directory contains any non-vetoed files or directories then the + directory delete will fail. This is usually what you want. + + If this option is set to yes, then Samba + will attempt to recursively delete any files and directories within + the vetoed directory. This can be useful for integration with file + serving systems such as NetAtalk which create meta-files within + directories you might normally veto DOS/Windows users from seeing + (e.g. .AppleDouble) + + Setting delete veto files = yes allows these + directories to be transparently deleted when the parent directory + is deleted (so long as the user has permissions to do so). + + See also the veto + files parameter. + + Default: delete veto files = no + diff --git a/docs/docbook/smbdotconf/filename/hidedotfiles.xml b/docs/docbook/smbdotconf/filename/hidedotfiles.xml new file mode 100644 index 00000000000..63e87d80591 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/hidedotfiles.xml @@ -0,0 +1,7 @@ + + hide dot files (S) + This is a boolean parameter that controls whether + files starting with a dot appear as hidden files. + + Default: hide dot files = yes + diff --git a/docs/docbook/smbdotconf/filename/hidefiles.xml b/docs/docbook/smbdotconf/filename/hidefiles.xml new file mode 100644 index 00000000000..6f93a2a2397 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/hidefiles.xml @@ -0,0 +1,35 @@ + + hide files(S) + This is a list of files or directories that are not + visible but are accessible. The DOS 'hidden' attribute is applied + to any files or directories that match. + + Each entry in the list must be separated by a '/', + which allows spaces to be included in the entry. '*' + and '?' can be used to specify multiple files or directories + as in DOS wildcards. + + Each entry must be a Unix path, not a DOS path and must + not include the Unix directory separator '/'. + + Note that the case sensitivity option is applicable + in hiding files. + + Setting this parameter will affect the performance of Samba, + as it will be forced to check all files and directories for a match + as they are scanned. + + See also hide + dot files, + veto files and + case sensitive. + + Default: no file are hidden + Example: hide files = + /.*/DesktopFolderDB/TrashFor%m/resource.frk/ + + The above example is based on files that the Macintosh + SMB client (DAVE) available from + Thursby creates for internal use, and also still hides + all files beginning with a dot. + diff --git a/docs/docbook/smbdotconf/filename/hidespecialfiles.xml b/docs/docbook/smbdotconf/filename/hidespecialfiles.xml new file mode 100644 index 00000000000..9a8c2060970 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/hidespecialfiles.xml @@ -0,0 +1,10 @@ + + hide special files (G) + This parameter prevents clients from seeing + special files such as sockets, devices and fifo's in directory + listings. + + + Default: hide special files = no + + diff --git a/docs/docbook/smbdotconf/filename/hideunreadable.xml b/docs/docbook/smbdotconf/filename/hideunreadable.xml new file mode 100644 index 00000000000..d25153f1031 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/hideunreadable.xml @@ -0,0 +1,8 @@ + + hide unreadable (G) + This parameter prevents clients from seeing the + existance of files that cannot be read. Defaults to off. + + Default: hide unreadable = no + + diff --git a/docs/docbook/smbdotconf/filename/hideunwriteablefiles.xml b/docs/docbook/smbdotconf/filename/hideunwriteablefiles.xml new file mode 100644 index 00000000000..9e28e8de5cd --- /dev/null +++ b/docs/docbook/smbdotconf/filename/hideunwriteablefiles.xml @@ -0,0 +1,10 @@ + + hide unwriteable files (G) + This parameter prevents clients from seeing + the existance of files that cannot be written to. Defaults to off. + Note that unwriteable directories are shown as usual. + + + Default: hide unwriteable = no + + diff --git a/docs/docbook/smbdotconf/filename/manglecase.xml b/docs/docbook/smbdotconf/filename/manglecase.xml new file mode 100644 index 00000000000..170d77d453e --- /dev/null +++ b/docs/docbook/smbdotconf/filename/manglecase.xml @@ -0,0 +1,8 @@ + + mangle case (S) + See the section on + NAME MANGLING + + Default: mangle case = no + + diff --git a/docs/docbook/smbdotconf/filename/mangledmap.xml b/docs/docbook/smbdotconf/filename/mangledmap.xml new file mode 100644 index 00000000000..abe6c031e0b --- /dev/null +++ b/docs/docbook/smbdotconf/filename/mangledmap.xml @@ -0,0 +1,23 @@ + + mangled map (S) + This is for those who want to directly map UNIX + file names which cannot be represented on Windows/DOS. The mangling + of names is not always what is needed. In particular you may have + documents with file extensions that differ between DOS and UNIX. + For example, under UNIX it is common to use .html + for HTML files, whereas under Windows/DOS .htm + is more commonly used. + + So to map html to htm + you would use: + + mangled map = (*.html *.htm) + + One very useful case is to remove the annoying ;1 + off the ends of filenames on some CDROMs (only visible + under some UNIXes). To do this use a map of (*;1 *;). + + Default: no mangled map + Example: mangled map = (*;1 *;) + + diff --git a/docs/docbook/smbdotconf/filename/manglednames.xml b/docs/docbook/smbdotconf/filename/manglednames.xml new file mode 100644 index 00000000000..41592b31597 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/manglednames.xml @@ -0,0 +1,58 @@ + + mangled names (S) + This controls whether non-DOS names under UNIX + should be mapped to DOS-compatible names ("mangled") and made visible, + or whether non-DOS names should simply be ignored. + + See the section on + NAME MANGLING for details on how to control the mangling process. + + If mangling is used then the mangling algorithm is as follows: + + + The first (up to) five alphanumeric characters + before the rightmost dot of the filename are preserved, forced + to upper case, and appear as the first (up to) five characters + of the mangled name. + + A tilde "~" is appended to the first part of the mangled + name, followed by a two-character unique sequence, based on the + original root name (i.e., the original filename minus its final + extension). The final extension is included in the hash calculation + only if it contains any upper case characters or is longer than three + characters. + + Note that the character to use may be specified using + the mangling char + option, if you don't like '~'. + + The first three alphanumeric characters of the final + extension are preserved, forced to upper case and appear as the + extension of the mangled name. The final extension is defined as that + part of the original filename after the rightmost dot. If there are no + dots in the filename, the mangled name will have no extension (except + in the case of "hidden files" - see below). + + Files whose UNIX name begins with a dot will be + presented as DOS hidden files. The mangled name will be created as + for other filenames, but with the leading dot removed and "___" as + its extension regardless of actual original extension (that's three + underscores). + + + The two-digit hash value consists of upper case + alphanumeric characters. + + This algorithm can cause name collisions only if files + in a directory share the same first five alphanumeric characters. + The probability of such a clash is 1/1300. + + The name mangling (if enabled) allows a file to be + copied between UNIX directories from Windows/DOS while retaining + the long UNIX filename. UNIX files can be renamed to a new extension + from Windows/DOS and will retain the same basename. Mangled names + do not change between sessions. + + Default: mangled names = yes + + diff --git a/docs/docbook/smbdotconf/filename/mangledstack.xml b/docs/docbook/smbdotconf/filename/mangledstack.xml new file mode 100644 index 00000000000..3e6099ba92f --- /dev/null +++ b/docs/docbook/smbdotconf/filename/mangledstack.xml @@ -0,0 +1,23 @@ + + mangled stack (G) + This parameter controls the number of mangled names + that should be cached in the Samba server smbd + 8. + + This stack is a list of recently mangled base names + (extensions are only maintained if they are longer than 3 characters + or contains upper case characters). + + The larger this value, the more likely it is that mangled + names can be successfully converted to correct long UNIX names. + However, large stack sizes will slow most directory accesses. Smaller + stacks save memory in the server (each stack element costs 256 bytes). + + + It is not possible to absolutely guarantee correct long + filenames, so be prepared for some surprises! + + Default: mangled stack = 50 + Example: mangled stack = 100 + + diff --git a/docs/docbook/smbdotconf/filename/mangleprefix.xml b/docs/docbook/smbdotconf/filename/mangleprefix.xml new file mode 100644 index 00000000000..7dfd46199c8 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/mangleprefix.xml @@ -0,0 +1,11 @@ + + mangle prefix (G) + controls the number of prefix + characters from the original name used when generating + the mangled names. A larger value will give a weaker + hash and therefore more name collisions. The minimum + value is 1 and the maximum value is 6. + Default: mangle prefix = 1 + Example: mangle prefix = 4 + + diff --git a/docs/docbook/smbdotconf/filename/manglingchar.xml b/docs/docbook/smbdotconf/filename/manglingchar.xml new file mode 100644 index 00000000000..e6a90504660 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/manglingchar.xml @@ -0,0 +1,11 @@ + + mangling char (S) + This controls what character is used as + the magic character in name mangling. The default is a '~' + but this may interfere with some software. Use this option to set + it to whatever you prefer. + + Default: mangling char = ~ + Example: mangling char = ^ + + diff --git a/docs/docbook/smbdotconf/filename/manglingmethod.xml b/docs/docbook/smbdotconf/filename/manglingmethod.xml new file mode 100644 index 00000000000..11f9e9eb018 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/manglingmethod.xml @@ -0,0 +1,14 @@ + + mangling method (G) + controls the algorithm used for the generating + the mangled names. Can take two different values, "hash" and + "hash2". "hash" is the default and is the algorithm that has been + used in Samba for many years. "hash2" is a newer and considered + a better algorithm (generates less collisions) in the names. + However, many Win32 applications store the mangled names and so + changing to the new algorithm must not be done + lightly as these applications may break unless reinstalled. + Default: mangling method = hash2 + Example: mangling method = hash + + diff --git a/docs/docbook/smbdotconf/filename/maparchive.xml b/docs/docbook/smbdotconf/filename/maparchive.xml new file mode 100644 index 00000000000..18f39791aa4 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/maparchive.xml @@ -0,0 +1,17 @@ + + map archive (S) + This controls whether the DOS archive attribute + should be mapped to the UNIX owner execute bit. The DOS archive bit + is set when a file has been modified since its last backup. One + motivation for this option it to keep Samba/your PC from making + any file it touches from becoming executable under UNIX. This can + be quite annoying for shared source code, documents, etc... + + Note that this requires the create mask + parameter to be set such that owner execute bit is not masked out + (i.e. it must include 100). See the parameter + create mask for details. + + Default: map archive = yes + + diff --git a/docs/docbook/smbdotconf/filename/maphidden.xml b/docs/docbook/smbdotconf/filename/maphidden.xml new file mode 100644 index 00000000000..2b0266c23e9 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/maphidden.xml @@ -0,0 +1,13 @@ + + map hidden (S) + This controls whether DOS style hidden files + should be mapped to the UNIX world execute bit. + + Note that this requires the create mask + to be set such that the world execute bit is not masked out (i.e. + it must include 001). See the parameter + create mask for details. + + Default: map hidden = no + + diff --git a/docs/docbook/smbdotconf/filename/mapsystem.xml b/docs/docbook/smbdotconf/filename/mapsystem.xml new file mode 100644 index 00000000000..ead629971a3 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/mapsystem.xml @@ -0,0 +1,13 @@ + + map system (S) + This controls whether DOS style system files + should be mapped to the UNIX group execute bit. + + Note that this requires the create mask + to be set such that the group execute bit is not masked out (i.e. + it must include 010). See the parameter + create mask for details. + + Default: map system = no + + diff --git a/docs/docbook/smbdotconf/filename/preservecase.xml b/docs/docbook/smbdotconf/filename/preservecase.xml new file mode 100644 index 00000000000..3be458ce154 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/preservecase.xml @@ -0,0 +1,13 @@ + + preserve case (S) + This controls if new filenames are created + with the case that the client passes, or if they are forced to + be the default case + . + + Default: preserve case = yes + + See the section on NAME + MANGLING for a fuller discussion. + + diff --git a/docs/docbook/smbdotconf/filename/shortpreservecase.xml b/docs/docbook/smbdotconf/filename/shortpreservecase.xml new file mode 100644 index 00000000000..1c8b36380de --- /dev/null +++ b/docs/docbook/smbdotconf/filename/shortpreservecase.xml @@ -0,0 +1,16 @@ + + short preserve case (S) + This boolean parameter controls if new files + which conform to 8.3 syntax, that is all in upper case and of + suitable length, are created upper case, or if they are forced + to be the default case + . This option can be use with preserve case = yes + to permit long filenames to retain their case, while short + names are lowered. + + See the section on + NAME MANGLING. + + Default: short preserve case = yes + + diff --git a/docs/docbook/smbdotconf/filename/statcache.xml b/docs/docbook/smbdotconf/filename/statcache.xml new file mode 100644 index 00000000000..ee940814837 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/statcache.xml @@ -0,0 +1,10 @@ + + stat cache (G) + This parameter determines if smbd + 8 will use a cache in order to + speed up case insensitive name mappings. You should never need + to change this parameter. + + Default: stat cache = yes + + diff --git a/docs/docbook/smbdotconf/filename/stripdot.xml b/docs/docbook/smbdotconf/filename/stripdot.xml new file mode 100644 index 00000000000..ff877144a62 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/stripdot.xml @@ -0,0 +1,9 @@ + + strip dot (G) + This is a boolean that controls whether to + strip trailing dots off UNIX filenames. This helps with some + CDROMs that have filenames ending in a single dot. + + Default: strip dot = no + + diff --git a/docs/docbook/smbdotconf/filename/vetofiles.xml b/docs/docbook/smbdotconf/filename/vetofiles.xml new file mode 100644 index 00000000000..faef2040b92 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/vetofiles.xml @@ -0,0 +1,46 @@ + + veto files(S) + This is a list of files and directories that + are neither visible nor accessible. Each entry in the list must + be separated by a '/', which allows spaces to be included + in the entry. '*' and '?' can be used to specify multiple files + or directories as in DOS wildcards. + + Each entry must be a unix path, not a DOS path and + must not include the unix directory + separator '/'. + + Note that the case sensitive option + is applicable in vetoing files. + + One feature of the veto files parameter that it + is important to be aware of is Samba's behaviour when + trying to delete a directory. If a directory that is + to be deleted contains nothing but veto files this + deletion will fail unless you also set + the delete veto files parameter to + yes. + + Setting this parameter will affect the performance + of Samba, as it will be forced to check all files and directories + for a match as they are scanned. + + See also hide files + and + case sensitive. + + Default: No files or directories are vetoed. + + +Examples: +; Veto any files containing the word Security, +; any ending in .tmp, and any directory containing the +; word root. +veto files = /*Security*/*.tmp/*root*/ + +; Veto the Apple specific files that a NetAtalk server +; creates. +veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/ + + + diff --git a/docs/docbook/smbdotconf/filename/vetooplockfiles.xml b/docs/docbook/smbdotconf/filename/vetooplockfiles.xml new file mode 100644 index 00000000000..0c817c97f89 --- /dev/null +++ b/docs/docbook/smbdotconf/filename/vetooplockfiles.xml @@ -0,0 +1,24 @@ + + veto oplock files (S) + This parameter is only valid when the oplocks + parameter is turned on for a share. It allows the Samba administrator + to selectively turn off the granting of oplocks on selected files that + match a wildcarded list, similar to the wildcarded list used in the + veto files + parameter. + + Default: No files are vetoed for oplock + grants + + You might want to do this on files that you know will + be heavily contended for by clients. A good example of this + is in the NetBench SMB benchmark program, which causes heavy + client contention for files ending in .SEM. + To cause Samba not to grant oplocks on these files you would use + the line (either in the [global] section or in the section for + the particular NetBench share : + + Example: veto oplock files = /*.SEM/ + + + diff --git a/docs/docbook/smbdotconf/generate-context.xsl b/docs/docbook/smbdotconf/generate-context.xsl new file mode 100644 index 00000000000..c9ca31085cd --- /dev/null +++ b/docs/docbook/smbdotconf/generate-context.xsl @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + Processing samba:parameter ( + + ) + + + + + + + + + + + + + + none + + + + + + + + + + + diff --git a/docs/docbook/smbdotconf/generate-file-list.sh b/docs/docbook/smbdotconf/generate-file-list.sh new file mode 100755 index 00000000000..f61ac4f49ca --- /dev/null +++ b/docs/docbook/smbdotconf/generate-file-list.sh @@ -0,0 +1,8 @@ +#!/bin/sh +echo "" +find . -type f -name '*.xml' -mindepth 2 | sort | + while read ; do + echo "" + done + +echo "" diff --git a/docs/docbook/smbdotconf/ldap/ldapadmindn.xml b/docs/docbook/smbdotconf/ldap/ldapadmindn.xml new file mode 100644 index 00000000000..f92e8ce310a --- /dev/null +++ b/docs/docbook/smbdotconf/ldap/ldapadmindn.xml @@ -0,0 +1,13 @@ + + ldap admin dn (G) + The ldap admin dn defines the Distinguished + Name (DN) name used by Samba to contact the ldap server when retreiving + user account information. The ldap + admin dn is used in conjunction with the admin dn password + stored in the private/secrets.tdb file. See the + smbpasswd + 8 man page for more information on how + to accmplish this. + + + diff --git a/docs/docbook/smbdotconf/ldap/ldapdeletedn.xml b/docs/docbook/smbdotconf/ldap/ldapdeletedn.xml new file mode 100644 index 00000000000..2b081853c69 --- /dev/null +++ b/docs/docbook/smbdotconf/ldap/ldapdeletedn.xml @@ -0,0 +1,10 @@ + + ldap del only sam attr (G) + This parameter specifies whether a delete + operation in the ldapsam deletes the complete entry or only the attributes + specific to Samba. + + + Default : ldap delete dn = no + + diff --git a/docs/docbook/smbdotconf/ldap/ldapdelonlysamattr.xml b/docs/docbook/smbdotconf/ldap/ldapdelonlysamattr.xml new file mode 100644 index 00000000000..bae5b51e601 --- /dev/null +++ b/docs/docbook/smbdotconf/ldap/ldapdelonlysamattr.xml @@ -0,0 +1,6 @@ + + ldap del only sam attr (G) + Inverted synonym for + ldap delete dn. + + diff --git a/docs/docbook/smbdotconf/ldap/ldapfilter.xml b/docs/docbook/smbdotconf/ldap/ldapfilter.xml new file mode 100644 index 00000000000..6ddf8db30fc --- /dev/null +++ b/docs/docbook/smbdotconf/ldap/ldapfilter.xml @@ -0,0 +1,12 @@ + + ldap filter (G) + This parameter specifies the RFC 2254 compliant LDAP search filter. + The default is to match the login name with the uid + attribute for all entries matching the sambaAccount + objectclass. Note that this filter should only return one entry. + + + + Default : ldap filter = (&(uid=%u)(objectclass=sambaAccount)) + + diff --git a/docs/docbook/smbdotconf/ldap/ldapmachinesuffix.xml b/docs/docbook/smbdotconf/ldap/ldapmachinesuffix.xml new file mode 100644 index 00000000000..e02bf9acfc5 --- /dev/null +++ b/docs/docbook/smbdotconf/ldap/ldapmachinesuffix.xml @@ -0,0 +1,11 @@ + + ldap machine suffix (G) + It specifies where machines should be + added to the ldap tree. + + + + + Default : none + + diff --git a/docs/docbook/smbdotconf/ldap/ldappasswdsync.xml b/docs/docbook/smbdotconf/ldap/ldappasswdsync.xml new file mode 100644 index 00000000000..ce9449374d4 --- /dev/null +++ b/docs/docbook/smbdotconf/ldap/ldappasswdsync.xml @@ -0,0 +1,23 @@ + + ldap passwd sync (G) + This option is used to define whether + or not Samba should sync the LDAP password with the NT + and LM hashes for normal accounts (NOT for + workstation, server or domain trusts) on a password + change via SAMBA. + + + + The ldap passwd sync can be set to one of three values: + + + Yes = Try to update the LDAP, NT and LM passwords and update the pwdLastSet time. + + No = Update NT and LM passwords and update the pwdLastSet time. + + Only = Only update the LDAP password and let the LDAP server do the rest. + + + Default : ldap passwd sync = no + + diff --git a/docs/docbook/smbdotconf/ldap/ldapport.xml b/docs/docbook/smbdotconf/ldap/ldapport.xml new file mode 100644 index 00000000000..97c256d423b --- /dev/null +++ b/docs/docbook/smbdotconf/ldap/ldapport.xml @@ -0,0 +1,20 @@ + + ldap port (G) + This parameter is only available if Samba has been + configure to include the --with-ldapsam option + at compile time. + + + + This option is used to control the tcp port number used to contact + the ldap server. + The default is to use the stand LDAPS port 636. + + + See Also: ldap ssl + + + Default : ldap port = 636 ; if ldap ssl = on + Default : ldap port = 389 ; if ldap ssl = off + + diff --git a/docs/docbook/smbdotconf/ldap/ldapserver.xml b/docs/docbook/smbdotconf/ldap/ldapserver.xml new file mode 100644 index 00000000000..33d5652ac9d --- /dev/null +++ b/docs/docbook/smbdotconf/ldap/ldapserver.xml @@ -0,0 +1,15 @@ + + ldap server (G) + This parameter is only available if Samba has been + configure to include the --with-ldapsam option + at compile time. + + + + This parameter should contain the FQDN of the ldap directory + server which should be queried to locate user account information. + + + Default : ldap server = localhost + + diff --git a/docs/docbook/smbdotconf/ldap/ldapssl.xml b/docs/docbook/smbdotconf/ldap/ldapssl.xml new file mode 100644 index 00000000000..d747d8f7df2 --- /dev/null +++ b/docs/docbook/smbdotconf/ldap/ldapssl.xml @@ -0,0 +1,30 @@ + + ldap ssl (G) + This option is used to define whether or not Samba should + use SSL when connecting to the ldap server + This is NOT related to + Samba's previous SSL support which was enabled by specifying the + --with-ssl option to the configure + script. + + + + The ldap ssl can be set to one of three values: + + + Off = Never use SSL when querying the directory. + + Start_tls = Use the LDAPv3 StartTLS extended operation + (RFC2830) for communicating with the directory server. + + On = + Use SSL on the ldaps port when contacting the + ldap server. Only + available when the backwards-compatiblity + --with-ldapsam option is specified + to configure. See passdb backend + + + Default : ldap ssl = start_tls + + diff --git a/docs/docbook/smbdotconf/ldap/ldapsuffix.xml b/docs/docbook/smbdotconf/ldap/ldapsuffix.xml new file mode 100644 index 00000000000..dae15f81042 --- /dev/null +++ b/docs/docbook/smbdotconf/ldap/ldapsuffix.xml @@ -0,0 +1,8 @@ + + ldap suffix (G) + + Specifies where user and machine accounts are added to the tree. Can be overriden by ldap user suffix and ldap machine suffix. It also used as the base dn for all ldap searches. + + Default : none + + diff --git a/docs/docbook/smbdotconf/ldap/ldaptrustids.xml b/docs/docbook/smbdotconf/ldap/ldaptrustids.xml new file mode 100644 index 00000000000..8fe4a1400b5 --- /dev/null +++ b/docs/docbook/smbdotconf/ldap/ldaptrustids.xml @@ -0,0 +1,18 @@ + + ldap trust ids (G) + Normally, Samba validates each entry + in the LDAP server against getpwnam(). This allows + LDAP to be used for Samba with the unix system using + NIS (for example) and also ensures that Samba does not + present accounts that do not otherwise exist. + This option is used to disable this functionality, and + instead to rely on the presence of the appropriate + attributes in LDAP directly, which can result in a + significant performance boost in some situations. + Setting this option to yes effectivly assumes + that the local machine is running nss_ldap against the + same LDAP server. + + Default: ldap trust ids = No + + diff --git a/docs/docbook/smbdotconf/ldap/ldapusersuffix.xml b/docs/docbook/smbdotconf/ldap/ldapusersuffix.xml new file mode 100644 index 00000000000..e4fb681e23e --- /dev/null +++ b/docs/docbook/smbdotconf/ldap/ldapusersuffix.xml @@ -0,0 +1,10 @@ + + ldap user suffix (G) + It specifies where users are added to the tree. + + + + + Default : none + + diff --git a/docs/docbook/smbdotconf/locking/blockinglocks.xml b/docs/docbook/smbdotconf/locking/blockinglocks.xml new file mode 100644 index 00000000000..ea5e90b5cde --- /dev/null +++ b/docs/docbook/smbdotconf/locking/blockinglocks.xml @@ -0,0 +1,22 @@ + + blocking locks (S) + This parameter controls the behavior + of smbd + 8 when given a request by a client + to obtain a byte range lock on a region of an open file, and the + request has a time limit associated with it. + + If this parameter is set and the lock range requested + cannot be immediately satisfied, samba will internally + queue the lock request, and periodically attempt to obtain + the lock until the timeout period expires. + + If this parameter is set to no, then + samba will behave as previous versions of Samba would and + will fail the lock request immediately if the lock range + cannot be obtained. + + Default: blocking locks = yes + + + diff --git a/docs/docbook/smbdotconf/locking/cscpolicy.xml b/docs/docbook/smbdotconf/locking/cscpolicy.xml new file mode 100644 index 00000000000..e5139bc4f3c --- /dev/null +++ b/docs/docbook/smbdotconf/locking/cscpolicy.xml @@ -0,0 +1,18 @@ + + csc policy (S) + This stands for client-side caching + policy, and specifies how clients capable of offline + caching will cache the files in the share. The valid values + are: manual, documents, programs, disable. + + These values correspond to those used on Windows + servers. + + For example, shares containing roaming profiles can have + offline caching disabled using csc policy = disable + . + + Default: csc policy = manual + Example: csc policy = programs + + diff --git a/docs/docbook/smbdotconf/locking/fakeoplocks.xml b/docs/docbook/smbdotconf/locking/fakeoplocks.xml new file mode 100644 index 00000000000..16887726c0c --- /dev/null +++ b/docs/docbook/smbdotconf/locking/fakeoplocks.xml @@ -0,0 +1,27 @@ + + fake oplocks (S) + Oplocks are the way that SMB clients get permission + from a server to locally cache file operations. If a server grants + an oplock (opportunistic lock) then the client is free to assume + that it is the only one accessing the file and it will aggressively + cache file data. With some oplock types the client may even cache + file open/close operations. This can give enormous performance benefits. + + + When you set fake oplocks = yes, smbd(8) will + always grant oplock requests no matter how many clients are using + the file. + + It is generally much better to use the real oplocks support rather + than this parameter. + + If you enable this option on all read-only shares or + shares that you know will only be accessed from one client at a + time such as physically read-only media like CDROMs, you will see + a big performance improvement on many operations. If you enable + this option on shares where multiple clients may be accessing the + files read-write at the same time you can get data corruption. Use + this option carefully! + + Default: fake oplocks = no + diff --git a/docs/docbook/smbdotconf/locking/kerneloplocks.xml b/docs/docbook/smbdotconf/locking/kerneloplocks.xml new file mode 100644 index 00000000000..98513fdd1e9 --- /dev/null +++ b/docs/docbook/smbdotconf/locking/kerneloplocks.xml @@ -0,0 +1,24 @@ + + kernel oplocks (G) + For UNIXes that support kernel based oplocks + (currently only IRIX and the Linux 2.4 kernel), this parameter + allows the use of them to be turned on or off. + + Kernel oplocks support allows Samba oplocks + to be broken whenever a local UNIX process or NFS operation + accesses a file that smbd + 8 has oplocked. This allows complete + data consistency between SMB/CIFS, NFS and local file access (and is + a very cool feature :-). + + This parameter defaults to on, but is translated + to a no-op on systems that no not have the necessary kernel support. + You should never need to touch this parameter. + + See also the oplocks + and level2 oplocks + parameters. + + Default: kernel oplocks = yes + + diff --git a/docs/docbook/smbdotconf/locking/level2oplocks.xml b/docs/docbook/smbdotconf/locking/level2oplocks.xml new file mode 100644 index 00000000000..adae6d268f8 --- /dev/null +++ b/docs/docbook/smbdotconf/locking/level2oplocks.xml @@ -0,0 +1,39 @@ + + level2 oplocks (S) + This parameter controls whether Samba supports + level2 (read-only) oplocks on a share. + + Level2, or read-only oplocks allow Windows NT clients + that have an oplock on a file to downgrade from a read-write oplock + to a read-only oplock once a second client opens the file (instead + of releasing all oplocks on a second open, as in traditional, + exclusive oplocks). This allows all openers of the file that + support level2 oplocks to cache the file for read-ahead only (ie. + they may not cache writes or lock requests) and increases performance + for many accesses of files that are not commonly written (such as + application .EXE files). + + Once one of the clients which have a read-only oplock + writes to the file all clients are notified (no reply is needed + or waited for) and told to break their oplocks to "none" and + delete any read-ahead caches. + + It is recommended that this parameter be turned on + to speed access to shared executables. + + For more discussions on level2 oplocks see the CIFS spec. + + Currently, if kernel + oplocks are supported then level2 oplocks are + not granted (even if this parameter is set to yes). + Note also, the oplocks + parameter must be set to yes on this share in order for + this parameter to have any effect. + + See also the oplocks + and kernel oplocks + parameters. + + Default: level2 oplocks = yes + + diff --git a/docs/docbook/smbdotconf/locking/locking.xml b/docs/docbook/smbdotconf/locking/locking.xml new file mode 100644 index 00000000000..aa27027a112 --- /dev/null +++ b/docs/docbook/smbdotconf/locking/locking.xml @@ -0,0 +1,25 @@ + + locking (S) + This controls whether or not locking will be + performed by the server in response to lock requests from the + client. + + If locking = no, all lock and unlock + requests will appear to succeed and all lock queries will report + that the file in question is available for locking. + + If locking = yes, real locking will be performed + by the server. + + This option may be useful for read-only + filesystems which may not need locking (such as + CDROM drives), although setting this parameter of no + is not really recommended even in this case. + + Be careful about disabling locking either globally or in a + specific service, as lack of locking may result in data corruption. + You should never need to set this parameter. + + Default: locking = yes + + diff --git a/docs/docbook/smbdotconf/locking/lockspincount.xml b/docs/docbook/smbdotconf/locking/lockspincount.xml new file mode 100644 index 00000000000..1ee1aab4d46 --- /dev/null +++ b/docs/docbook/smbdotconf/locking/lockspincount.xml @@ -0,0 +1,15 @@ + + lock spin count (G) + This parameter controls the number of times + that smbd should attempt to gain a byte range lock on the + behalf of a client request. Experiments have shown that + Windows 2k servers do not reply with a failure if the lock + could not be immediately granted, but try a few more times + in case the lock could later be aquired. This behavior + is used to support PC database formats such as MS Access + and FoxPro. + + + Default: lock spin count = 2 + + diff --git a/docs/docbook/smbdotconf/locking/lockspintime.xml b/docs/docbook/smbdotconf/locking/lockspintime.xml new file mode 100644 index 00000000000..4d3ea1bdc4c --- /dev/null +++ b/docs/docbook/smbdotconf/locking/lockspintime.xml @@ -0,0 +1,11 @@ + + lock spin time (G) + The time in microseconds that smbd should + pause before attempting to gain a failed lock. See + lock spin + count for more details. + + + Default: lock spin time = 10 + + diff --git a/docs/docbook/smbdotconf/locking/oplockbreakwaittime.xml b/docs/docbook/smbdotconf/locking/oplockbreakwaittime.xml new file mode 100644 index 00000000000..5e08200a332 --- /dev/null +++ b/docs/docbook/smbdotconf/locking/oplockbreakwaittime.xml @@ -0,0 +1,16 @@ + + oplock break wait time (G) + This is a tuning parameter added due to bugs in + both Windows 9x and WinNT. If Samba responds to a client too + quickly when that client issues an SMB that can cause an oplock + break request, then the network client can fail and not respond + to the break request. This tuning parameter (which is set in milliseconds) + is the amount of time Samba will wait before sending an oplock break + request to such (broken) clients. + + DO NOT CHANGE THIS PARAMETER UNLESS YOU HAVE READ + AND UNDERSTOOD THE SAMBA OPLOCK CODE. + + Default: oplock break wait time = 0 + + diff --git a/docs/docbook/smbdotconf/locking/oplockcontentionlimit.xml b/docs/docbook/smbdotconf/locking/oplockcontentionlimit.xml new file mode 100644 index 00000000000..fd3b45d0b14 --- /dev/null +++ b/docs/docbook/smbdotconf/locking/oplockcontentionlimit.xml @@ -0,0 +1,19 @@ + + oplock contention limit (S) + This is a very advanced + smbd(8) tuning option to + improve the efficiency of the granting of oplocks under multiple + client contention for the same file. + + In brief it specifies a number, which causes smbd + 8not to grant an oplock even when requested + if the approximate number of clients contending for an oplock on the same file goes over this + limit. This causes smbd to behave in a similar + way to Windows NT. + + DO NOT CHANGE THIS PARAMETER UNLESS YOU HAVE READ + AND UNDERSTOOD THE SAMBA OPLOCK CODE. + + Default: oplock contention limit = 2 + + diff --git a/docs/docbook/smbdotconf/locking/oplocks.xml b/docs/docbook/smbdotconf/locking/oplocks.xml new file mode 100644 index 00000000000..071786f35c4 --- /dev/null +++ b/docs/docbook/smbdotconf/locking/oplocks.xml @@ -0,0 +1,27 @@ + + oplocks (S) + This boolean option tells smbd whether to + issue oplocks (opportunistic locks) to file open requests on this + share. The oplock code can dramatically (approx. 30% or more) improve + the speed of access to files on Samba servers. It allows the clients + to aggressively cache files locally and you may want to disable this + option for unreliable network environments (it is turned on by + default in Windows NT Servers). For more information see the file + Speed.txt in the Samba docs/ + directory. + + Oplocks may be selectively turned off on certain files with a + share. See the + veto oplock files parameter. On some systems + oplocks are recognized by the underlying operating system. This + allows data synchronization between all access to oplocked files, + whether it be via Samba or NFS or a local UNIX process. See the + kernel oplocks parameter for details. + + See also the kernel + oplocks and + level2 oplocks parameters. + + Default: oplocks = yes + + diff --git a/docs/docbook/smbdotconf/locking/posixlocking.xml b/docs/docbook/smbdotconf/locking/posixlocking.xml new file mode 100644 index 00000000000..4f2e2d215b2 --- /dev/null +++ b/docs/docbook/smbdotconf/locking/posixlocking.xml @@ -0,0 +1,14 @@ + + posix locking (S) + The smbd + 8 + daemon maintains an database of file locks obtained by SMB clients. + The default behavior is to map this internal database to POSIX + locks. This means that file locks obtained by SMB clients are + consistent with those seen by POSIX compliant applications accessing + the files via a non-SMB method (e.g. NFS or local file access). + You should never need to disable this parameter. + + Default: posix locking = yes + + diff --git a/docs/docbook/smbdotconf/locking/sharemodes.xml b/docs/docbook/smbdotconf/locking/sharemodes.xml new file mode 100644 index 00000000000..c789ed0fb2c --- /dev/null +++ b/docs/docbook/smbdotconf/locking/sharemodes.xml @@ -0,0 +1,26 @@ + + share modes (S) + This enables or disables the honoring of + the share modes during a file open. These + modes are used by clients to gain exclusive read or write access + to a file. + + These open modes are not directly supported by UNIX, so + they are simulated using shared memory, or lock files if your + UNIX doesn't support shared memory (almost all do). + + The share modes that are enabled by this option are + DENY_DOS, DENY_ALL, + DENY_READ, DENY_WRITE, + DENY_NONE and DENY_FCB. + + + This option gives full share compatibility and enabled + by default. + + You should NEVER turn this parameter + off as many Windows applications will break if you do so. + + Default: share modes = yes + + diff --git a/docs/docbook/smbdotconf/locking/strictlocking.xml b/docs/docbook/smbdotconf/locking/strictlocking.xml new file mode 100644 index 00000000000..b67ae477367 --- /dev/null +++ b/docs/docbook/smbdotconf/locking/strictlocking.xml @@ -0,0 +1,17 @@ + + strict locking (S) + This is a boolean that controls the handling of + file locking in the server. When this is set to yes + the server will check every read and write access for file locks, and + deny access if locks exist. This can be slow on some systems. + + When strict locking is no the server does file + lock checks only when the client explicitly asks for them. + + Well-behaved clients always ask for lock checks when it + is important, so in the vast majority of cases strict + locking = no is preferable. + + Default: strict locking = no + + diff --git a/docs/docbook/smbdotconf/logging/debughirestimestamp.xml b/docs/docbook/smbdotconf/logging/debughirestimestamp.xml new file mode 100644 index 00000000000..a5f40b73cab --- /dev/null +++ b/docs/docbook/smbdotconf/logging/debughirestimestamp.xml @@ -0,0 +1,14 @@ + + debug hires timestamp (G) + Sometimes the timestamps in the log messages + are needed with a resolution of higher that seconds, this + boolean parameter adds microsecond resolution to the timestamp + message header when turned on. + + Note that the parameter + debug timestamp must be on for this to have an + effect. + + Default: debug hires timestamp = no + + diff --git a/docs/docbook/smbdotconf/logging/debuglevel.xml b/docs/docbook/smbdotconf/logging/debuglevel.xml new file mode 100644 index 00000000000..99153fa853b --- /dev/null +++ b/docs/docbook/smbdotconf/logging/debuglevel.xml @@ -0,0 +1,6 @@ + + debuglevel (G) + Synonym for + log level. + + diff --git a/docs/docbook/smbdotconf/logging/debugpid.xml b/docs/docbook/smbdotconf/logging/debugpid.xml new file mode 100644 index 00000000000..829e1684126 --- /dev/null +++ b/docs/docbook/smbdotconf/logging/debugpid.xml @@ -0,0 +1,13 @@ + + debug pid (G) + When using only one log file for more then one + forked smbd-process there may be hard to follow which process + outputs which message. This boolean parameter is adds the process-id + to the timestamp message headers in the logfile when turned on. + + Note that the parameter + debug timestamp must be on for this to have an + effect. + + Default: debug pid = no + diff --git a/docs/docbook/smbdotconf/logging/debugtimestamp.xml b/docs/docbook/smbdotconf/logging/debugtimestamp.xml new file mode 100644 index 00000000000..1265c1d21b9 --- /dev/null +++ b/docs/docbook/smbdotconf/logging/debugtimestamp.xml @@ -0,0 +1,10 @@ + + debug timestamp (G) + Samba debug log messages are timestamped + by default. If you are running at a high + debug level these timestamps + can be distracting. This boolean parameter allows timestamping + to be turned off. + + Default: debug timestamp = yes + diff --git a/docs/docbook/smbdotconf/logging/debuguid.xml b/docs/docbook/smbdotconf/logging/debuguid.xml new file mode 100644 index 00000000000..9b0786d6b3b --- /dev/null +++ b/docs/docbook/smbdotconf/logging/debuguid.xml @@ -0,0 +1,13 @@ + + debug uid (G) + Samba is sometimes run as root and sometime + run as the connected user, this boolean parameter inserts the + current euid, egid, uid and gid to the timestamp message headers + in the log file if turned on. + + Note that the parameter + debug timestamp must be on for this to have an + effect. + + Default: debug uid = no + diff --git a/docs/docbook/smbdotconf/logging/logfile.xml b/docs/docbook/smbdotconf/logging/logfile.xml new file mode 100644 index 00000000000..6f176ef02b5 --- /dev/null +++ b/docs/docbook/smbdotconf/logging/logfile.xml @@ -0,0 +1,11 @@ + + log file (G) + This option allows you to override the name + of the Samba log file (also known as the debug file). + + This option takes the standard substitutions, allowing + you to have separate log files for each user or machine. + + Example: log file = /usr/local/samba/var/log.%m + + diff --git a/docs/docbook/smbdotconf/logging/loglevel.xml b/docs/docbook/smbdotconf/logging/loglevel.xml new file mode 100644 index 00000000000..610dc968127 --- /dev/null +++ b/docs/docbook/smbdotconf/logging/loglevel.xml @@ -0,0 +1,15 @@ + + log level (G) + The value of the parameter (a astring) allows + the debug level (logging level) to be specified in the + smb.conf file. This parameter has been + extended since the 2.2.x series, now it allow to specify the debug + level for multiple debug classes. This is to give greater + flexibility in the configuration of the system. + + The default will be the log level specified on + the command line or level zero if none was specified. + + Example: log level = 3 passdb:5 auth:10 winbind:2 + + diff --git a/docs/docbook/smbdotconf/logging/maxlogsize.xml b/docs/docbook/smbdotconf/logging/maxlogsize.xml new file mode 100644 index 00000000000..117410b18c9 --- /dev/null +++ b/docs/docbook/smbdotconf/logging/maxlogsize.xml @@ -0,0 +1,13 @@ + + max log size (G) + This option (an integer in kilobytes) specifies + the max size the log file should grow to. Samba periodically checks + the size and if it is exceeded it will rename the file, adding + a .old extension. + + A size of 0 means no limit. + + Default: max log size = 5000 + Example: max log size = 1000 + + diff --git a/docs/docbook/smbdotconf/logging/syslog.xml b/docs/docbook/smbdotconf/logging/syslog.xml new file mode 100644 index 00000000000..ac098e690a5 --- /dev/null +++ b/docs/docbook/smbdotconf/logging/syslog.xml @@ -0,0 +1,17 @@ + + syslog (G) + This parameter maps how Samba debug messages + are logged onto the system syslog logging levels. Samba debug + level zero maps onto syslog LOG_ERR, debug + level one maps onto LOG_WARNING, debug level + two maps onto LOG_NOTICE, debug level three + maps onto LOG_INFO. All higher levels are mapped to + LOG_DEBUG. + + This parameter sets the threshold for sending messages + to syslog. Only messages with debug level less than this value + will be sent to syslog. + + Default: syslog = 1 + + diff --git a/docs/docbook/smbdotconf/logging/syslogonly.xml b/docs/docbook/smbdotconf/logging/syslogonly.xml new file mode 100644 index 00000000000..a955306fe0f --- /dev/null +++ b/docs/docbook/smbdotconf/logging/syslogonly.xml @@ -0,0 +1,9 @@ + + syslog only (G) + If this parameter is set then Samba debug + messages are logged into the system syslog only, and not to + the debug log files. + + Default: syslog only = no + + diff --git a/docs/docbook/smbdotconf/logging/timestamplogs.xml b/docs/docbook/smbdotconf/logging/timestamplogs.xml new file mode 100644 index 00000000000..5f5f42d7384 --- /dev/null +++ b/docs/docbook/smbdotconf/logging/timestamplogs.xml @@ -0,0 +1,6 @@ + + timestamp logs (G) + Synonym for + debug timestamp. + + diff --git a/docs/docbook/smbdotconf/logon/abortshutdownscript.xml b/docs/docbook/smbdotconf/logon/abortshutdownscript.xml new file mode 100644 index 00000000000..89fd9186bb5 --- /dev/null +++ b/docs/docbook/smbdotconf/logon/abortshutdownscript.xml @@ -0,0 +1,13 @@ + + abort shutdown script (G) + This parameter only exists in the HEAD cvs branch + This a full path name to a script called by smbd + 8 that + should stop a shutdown procedure issued by the shutdown script. + + This command will be run as user. + + Default: None. + Example: abort shutdown script = /sbin/shutdown -c + + diff --git a/docs/docbook/smbdotconf/logon/addgroupscript.xml b/docs/docbook/smbdotconf/logon/addgroupscript.xml new file mode 100644 index 00000000000..67441a16454 --- /dev/null +++ b/docs/docbook/smbdotconf/logon/addgroupscript.xml @@ -0,0 +1,14 @@ +add group script (G) + This is the full pathname to a script that will + be run AS ROOT by smbd + 8 when a new group is + requested. It will expand any + %g to the group name passed. + This script is only useful for installations using the + Windows NT domain administration tools. The script is + free to create a group with an arbitrary name to + circumvent unix group name restrictions. In that case + the script must print the numeric gid of the created + group on stdout. + + diff --git a/docs/docbook/smbdotconf/logon/addmachinescript.xml b/docs/docbook/smbdotconf/logon/addmachinescript.xml new file mode 100644 index 00000000000..fdc69c9490f --- /dev/null +++ b/docs/docbook/smbdotconf/logon/addmachinescript.xml @@ -0,0 +1,18 @@ + + add machine script (G) + This is the full pathname to a script that will + be run by smbd + 8 when a machine is added + to it's domain using the administrator username and password method. + + This option is only required when using sam back-ends tied to the + Unix uid method of RID calculation such as smbpasswd. This option is only + available in Samba 3.0. + + Default: add machine script = <empty string> + + + Example: add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u + + + diff --git a/docs/docbook/smbdotconf/logon/adduserscript.xml b/docs/docbook/smbdotconf/logon/adduserscript.xml new file mode 100644 index 00000000000..3afea231a5d --- /dev/null +++ b/docs/docbook/smbdotconf/logon/adduserscript.xml @@ -0,0 +1,49 @@ + + add user script (G) + This is the full pathname to a script that will + be run AS ROOT by smbd + 8 under special circumstances described below. + + Normally, a Samba server requires that UNIX users are + created for all users accessing files on this server. For sites + that use Windows NT account databases as their primary user database + creating these users and keeping the user list in sync with the + Windows NT PDC is an onerous task. This option allows smbd to create the required UNIX users + ON DEMAND when a user accesses the Samba server. + + In order to use this option, smbd + 8 must NOT be set to security = share + and add user script + must be set to a full pathname for a script that will create a UNIX + user given one argument of %u, which expands into + the UNIX user name to create. + + When the Windows user attempts to access the Samba server, + at login (session setup in the SMB protocol) time, smbd + 8 contacts the password server and + attempts to authenticate the given user with the given password. If the + authentication succeeds then smbd + attempts to find a UNIX user in the UNIX password database to map the + Windows user into. If this lookup fails, and add user script + is set then smbd will + call the specified script AS ROOT, expanding + any %u argument to be the user name to create. + + If this script successfully creates the user then smbd + will continue on as though the UNIX user + already existed. In this way, UNIX users are dynamically created to + match existing Windows NT accounts. + + See also + security, + password server, + delete user + script. + + Default: add user script = <empty string> + + + Example: add user script = /usr/local/samba/bin/add_user + %u + + diff --git a/docs/docbook/smbdotconf/logon/addusertogroupscript.xml b/docs/docbook/smbdotconf/logon/addusertogroupscript.xml new file mode 100644 index 00000000000..fe8be5b5044 --- /dev/null +++ b/docs/docbook/smbdotconf/logon/addusertogroupscript.xml @@ -0,0 +1,16 @@ + + add user to group script (G) + Full path to the script that will be called when + a user is added to a group using the Windows NT domain administration + tools. It will be run by smbd + 8 AS ROOT. + Any %g will be replaced with the group name and + any %u will be replaced with the user name. + + + Default: add user to group script = + + Example: add user to group script = /usr/sbin/adduser %u %g + + + diff --git a/docs/docbook/smbdotconf/logon/deletegroupscript.xml b/docs/docbook/smbdotconf/logon/deletegroupscript.xml new file mode 100644 index 00000000000..02c413115aa --- /dev/null +++ b/docs/docbook/smbdotconf/logon/deletegroupscript.xml @@ -0,0 +1,8 @@ +delete group script (G) + This is the full pathname to a script that will + be run AS ROOT smbd + 8 when a group is requested to be deleted. + It will expand any %g to the group name passed. + This script is only useful for installations using the Windows NT domain administration tools. + + diff --git a/docs/docbook/smbdotconf/logon/deleteuserfromgroupscript.xml b/docs/docbook/smbdotconf/logon/deleteuserfromgroupscript.xml new file mode 100644 index 00000000000..bb1c5136c1f --- /dev/null +++ b/docs/docbook/smbdotconf/logon/deleteuserfromgroupscript.xml @@ -0,0 +1,16 @@ + + delete user from group script (G) + Full path to the script that will be called when + a user is removed from a group using the Windows NT domain administration + tools. It will be run by smbd + 8 AS ROOT. + Any %g will be replaced with the group name and + any %u will be replaced with the user name. + + + Default: delete user from group script = + + Example: delete user from group script = /usr/sbin/deluser %u %g + + + diff --git a/docs/docbook/smbdotconf/logon/deleteuserscript.xml b/docs/docbook/smbdotconf/logon/deleteuserscript.xml new file mode 100644 index 00000000000..afb75dbe776 --- /dev/null +++ b/docs/docbook/smbdotconf/logon/deleteuserscript.xml @@ -0,0 +1,21 @@ + + delete user script (G) + This is the full pathname to a script that will + be run by smbd + 8 when managing users + with remote RPC (NT) tools. + + + This script is called when a remote client removes a user + from the server, normally using 'User Manager for Domains' or + rpcclient. + + + This script should delete the given UNIX username. + + + Default: delete user script = <empty string> + + Example: delete user script = /usr/local/samba/bin/del_user + %u + diff --git a/docs/docbook/smbdotconf/logon/domainlogons.xml b/docs/docbook/smbdotconf/logon/domainlogons.xml new file mode 100644 index 00000000000..9a2f432f7dc --- /dev/null +++ b/docs/docbook/smbdotconf/logon/domainlogons.xml @@ -0,0 +1,12 @@ + + domain logons (G) + If set to yes, the Samba server will serve + Windows 95/98 Domain logons for the + workgroup it is in. Samba 2.2 + has limited capability to act as a domain controller for Windows + NT 4 Domains. For more details on setting up this feature see + the Samba-PDC-HOWTO included in the htmldocs/ + directory shipped with the source code. + + Default: domain logons = no + diff --git a/docs/docbook/smbdotconf/logon/logondrive.xml b/docs/docbook/smbdotconf/logon/logondrive.xml new file mode 100644 index 00000000000..d0aa4d74567 --- /dev/null +++ b/docs/docbook/smbdotconf/logon/logondrive.xml @@ -0,0 +1,13 @@ + + logon drive (G) + This parameter specifies the local path to + which the home directory will be connected (see logon home) + and is only used by NT Workstations. + + Note that this option is only useful if Samba is set up as a + logon server. + + Default: logon drive = z: + Example: logon drive = h: + + diff --git a/docs/docbook/smbdotconf/logon/logonhome.xml b/docs/docbook/smbdotconf/logon/logonhome.xml new file mode 100644 index 00000000000..ec19c54043c --- /dev/null +++ b/docs/docbook/smbdotconf/logon/logonhome.xml @@ -0,0 +1,40 @@ + + logon home (G) + This parameter specifies the home directory + location when a Win95/98 or NT Workstation logs into a Samba PDC. + It allows you to do + + C:\> NET USE H: /HOME + + + from a command prompt, for example. + + This option takes the standard substitutions, allowing + you to have separate logon scripts for each user or machine. + + This parameter can be used with Win9X workstations to ensure + that roaming profiles are stored in a subdirectory of the user's + home directory. This is done in the following way: + + logon home = \\%N\%U\profile + + This tells Samba to return the above string, with + substitutions made when a client requests the info, generally + in a NetUserGetInfo request. Win9X clients truncate the info to + \\server\share when a user does net use /home + but use the whole string when dealing with profiles. + + Note that in prior versions of Samba, the + logon path was returned rather than + logon home. This broke net use + /home but allowed profiles outside the home directory. + The current implementation is correct, and can be used for + profiles if you use the above trick. + + This option is only useful if Samba is set up as a logon + server. + + Default: logon home = "\\%N\%U" + Example: logon home = "\\remote_smb_server\%U" + + diff --git a/docs/docbook/smbdotconf/logon/logonpath.xml b/docs/docbook/smbdotconf/logon/logonpath.xml new file mode 100644 index 00000000000..04a2777862b --- /dev/null +++ b/docs/docbook/smbdotconf/logon/logonpath.xml @@ -0,0 +1,45 @@ + + logon path (G) + This parameter specifies the home directory + where roaming profiles (NTuser.dat etc files for Windows NT) are + stored. Contrary to previous versions of these manual pages, it has + nothing to do with Win 9X roaming profiles. To find out how to + handle roaming profiles for Win 9X system, see the + logon home parameter. + + This option takes the standard substitutions, allowing you + to have separate logon scripts for each user or machine. It also + specifies the directory from which the "Application Data", + (desktop, start menu, + network neighborhood, programs + and other folders, and their contents, are loaded and displayed on + your Windows NT client. + + The share and the path must be readable by the user for + the preferences and directories to be loaded onto the Windows NT + client. The share must be writeable when the user logs in for the first + time, in order that the Windows NT client can create the NTuser.dat + and other directories. + + Thereafter, the directories and any of the contents can, + if required, be made read-only. It is not advisable that the + NTuser.dat file be made read-only - rename it to NTuser.man to + achieve the desired effect (a MANdatory + profile). + + Windows clients can sometimes maintain a connection to + the [homes] share, even though there is no user logged in. + Therefore, it is vital that the logon path does not include a + reference to the homes share (i.e. setting this parameter to + \%N\%U\profile_path will cause problems). + + This option takes the standard substitutions, allowing + you to have separate logon scripts for each user or machine. + + Note that this option is only useful if Samba is set up + as a logon server. + + Default: logon path = \\%N\%U\profile + Example: logon path = \\PROFILESERVER\PROFILE\%U + + diff --git a/docs/docbook/smbdotconf/logon/logonscript.xml b/docs/docbook/smbdotconf/logon/logonscript.xml new file mode 100644 index 00000000000..842cf927d2d --- /dev/null +++ b/docs/docbook/smbdotconf/logon/logonscript.xml @@ -0,0 +1,39 @@ + + logon script (G) + This parameter specifies the batch file (.bat) or + NT command file (.cmd) to be downloaded and run on a machine when + a user successfully logs in. The file must contain the DOS + style CR/LF line endings. Using a DOS-style editor to create the + file is recommended. + + The script must be a relative path to the [netlogon] + service. If the [netlogon] service specifies a + path of /usr/local/samba/netlogon + , and logon script = STARTUP.BAT, then + the file that will be downloaded is: + + /usr/local/samba/netlogon/STARTUP.BAT + + The contents of the batch file are entirely your choice. A + suggested command would be to add NET TIME \\SERVER /SET + /YES, to force every machine to synchronize clocks with + the same time server. Another use would be to add NET USE + U: \\SERVER\UTILS for commonly used utilities, or + NET USE Q: \\SERVER\ISO9001_QA for example. + + Note that it is particularly important not to allow write + access to the [netlogon] share, or to grant users write permission + on the batch files in a secure environment, as this would allow + the batch files to be arbitrarily modified and security to be + breached. + + This option takes the standard substitutions, allowing you + to have separate logon scripts for each user or machine. + + This option is only useful if Samba is set up as a logon + server. + + Default: no logon script defined + Example: logon script = scripts\%U.bat + + diff --git a/docs/docbook/smbdotconf/logon/shutdownscript.xml b/docs/docbook/smbdotconf/logon/shutdownscript.xml new file mode 100644 index 00000000000..ac286393b57 --- /dev/null +++ b/docs/docbook/smbdotconf/logon/shutdownscript.xml @@ -0,0 +1,42 @@ + + shutdown script (G) + This parameter only exists in the HEAD cvs branch + This a full path name to a script called by + smbd(8) that + should start a shutdown procedure. + + This command will be run as the user connected to the + server. + + %m %t %r %f parameters are expanded + %m will be substituted with the + shutdown message sent to the server. + %t will be substituted with the + number of seconds to wait before effectively starting the + shutdown procedure. + %r will be substituted with the + switch -r. It means reboot after shutdown + for NT. + + %f will be substituted with the + switch -f. It means force the shutdown + even if applications do not respond for NT. + + Default: None. + Example: abort shutdown script = /usr/local/samba/sbin/shutdown %m %t %r %f + Shutdown script example: + +#!/bin/bash + +$time=0 +let "time/60" +let "time++" + +/sbin/shutdown $3 $4 +$time $1 & + + Shutdown does not return so we need to launch it in background. + + + See also abort shutdown script. + + diff --git a/docs/docbook/smbdotconf/man.xsl b/docs/docbook/smbdotconf/man.xsl new file mode 100644 index 00000000000..a7ae76bbd81 --- /dev/null +++ b/docs/docbook/smbdotconf/man.xsl @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + : + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .\"Generated by db2man.xsl. Don't modify this, modify the source. +.de Sh \" Subsection +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Ip \" List item +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.TH " + + " + + " + + " " + + " " + + " + + + + + + + + + + + + + + + + .nf + + .fi + + + + \fB + + \fR + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/docbook/smbdotconf/misc/addsharecommand.xml b/docs/docbook/smbdotconf/misc/addsharecommand.xml new file mode 100644 index 00000000000..233d3e7dc41 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/addsharecommand.xml @@ -0,0 +1,51 @@ + + add share command (G) + Samba 2.2.0 introduced the ability to dynamically + add and delete shares via the Windows NT 4.0 Server Manager. The + add share command is used to define an + external program or script which will add a new service definition + to smb.conf. In order to successfully + execute the add share command, smbd + requires that the administrator be connected using a root account (i.e. + uid == 0). + + + + When executed, smbd will automatically invoke the + add share command with four parameters. + + + + configFile - the location + of the global smb.conf file. + + + shareName - the name of the new + share. + + + pathName - path to an **existing** + directory on disk. + + + comment - comment string to associate + with the new share. + + + + + This parameter is only used for add file shares. To add printer shares, + see the addprinter + command. + + + + See also change share + command, delete share + command. + + + Default: none + Example: add share command = /usr/local/bin/addshare + + diff --git a/docs/docbook/smbdotconf/misc/autoservices.xml b/docs/docbook/smbdotconf/misc/autoservices.xml new file mode 100644 index 00000000000..d137f650f83 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/autoservices.xml @@ -0,0 +1,6 @@ + + auto services (G) + This is a synonym for the + preload. + + diff --git a/docs/docbook/smbdotconf/misc/available.xml b/docs/docbook/smbdotconf/misc/available.xml new file mode 100644 index 00000000000..025c1c06fbb --- /dev/null +++ b/docs/docbook/smbdotconf/misc/available.xml @@ -0,0 +1,11 @@ + + available (S) + This parameter lets you "turn off" a service. If + available = no, then ALL + attempts to connect to the service will fail. Such failures are + logged. + + Default: available = yes + + + diff --git a/docs/docbook/smbdotconf/misc/changesharecommand.xml b/docs/docbook/smbdotconf/misc/changesharecommand.xml new file mode 100644 index 00000000000..3fb494c5131 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/changesharecommand.xml @@ -0,0 +1,50 @@ + + change share command (G) + Samba 2.2.0 introduced the ability to dynamically + add and delete shares via the Windows NT 4.0 Server Manager. The + change share command is used to define an + external program or script which will modify an existing service definition + in smb.conf. In order to successfully + execute the change share command, smbd + requires that the administrator be connected using a root account (i.e. + uid == 0). + + + + When executed, smbd will automatically invoke the + change share command with four parameters. + + + + configFile - the location + of the global smb.conf file. + + + shareName - the name of the new + share. + + + pathName - path to an **existing** + directory on disk. + + + comment - comment string to associate + with the new share. + + + + + This parameter is only used modify existing file shares definitions. To modify + printer shares, use the "Printers..." folder as seen when browsing the Samba host. + + + + See also add share + command, delete + share command. + + + Default: none + Example: change share command = /usr/local/bin/addshare + + diff --git a/docs/docbook/smbdotconf/misc/configfile.xml b/docs/docbook/smbdotconf/misc/configfile.xml new file mode 100644 index 00000000000..3edf611b55d --- /dev/null +++ b/docs/docbook/smbdotconf/misc/configfile.xml @@ -0,0 +1,21 @@ + + config file (G) + This allows you to override the config file + to use, instead of the default (usually smb.conf). + There is a chicken and egg problem here as this option is set + in the config file! + + For this reason, if the name of the config file has changed + when the parameters are loaded then it will reload them from + the new config file. + + This option takes the usual substitutions, which can + be very useful. + + If the config file doesn't exist then it won't be loaded + (allowing you to special case the config files of just a few + clients). + + Example: config file = /usr/local/samba/lib/smb.conf.%m + + diff --git a/docs/docbook/smbdotconf/misc/copy.xml b/docs/docbook/smbdotconf/misc/copy.xml new file mode 100644 index 00000000000..a7945af8ae1 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/copy.xml @@ -0,0 +1,15 @@ + + copy (S) + This parameter allows you to "clone" service + entries. The specified service is simply duplicated under the + current service's name. Any parameters specified in the current + section will override those in the section being copied. + + This feature lets you set up a 'template' service and + create similar services easily. Note that the service being + copied must occur earlier in the configuration file than the + service doing the copying. + + Default: no value + Example: copy = otherservice + diff --git a/docs/docbook/smbdotconf/misc/default.xml b/docs/docbook/smbdotconf/misc/default.xml new file mode 100644 index 00000000000..c396d1947b6 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/default.xml @@ -0,0 +1,5 @@ + + default (G) + A synonym for + default service. + diff --git a/docs/docbook/smbdotconf/misc/defaultservice.xml b/docs/docbook/smbdotconf/misc/defaultservice.xml new file mode 100644 index 00000000000..7aeedb177aa --- /dev/null +++ b/docs/docbook/smbdotconf/misc/defaultservice.xml @@ -0,0 +1,36 @@ + + default service (G) + This parameter specifies the name of a service + which will be connected to if the service actually requested cannot + be found. Note that the square brackets are NOT + given in the parameter value (see example below). + + There is no default value for this parameter. If this + parameter is not given, attempting to connect to a nonexistent + service results in an error. + + Typically the default service would be a + guest ok, + read-only service. + + Also note that the apparent service name will be changed + to equal that of the requested service, this is very useful as it + allows you to use macros like %S to make + a wildcard service. + + Note also that any "_" characters in the name of the service + used in the default service will get mapped to a "/". This allows for + interesting things. + + + Example: + + +[global] + default service = pub + +[pub] + path = /%S + + + diff --git a/docs/docbook/smbdotconf/misc/deletereadonly.xml b/docs/docbook/smbdotconf/misc/deletereadonly.xml new file mode 100644 index 00000000000..8e86b5b00b8 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/deletereadonly.xml @@ -0,0 +1,11 @@ + + delete readonly (S) + This parameter allows readonly files to be deleted. + This is not normal DOS semantics, but is allowed by UNIX. + + This option may be useful for running applications such + as rcs, where UNIX file ownership prevents changing file + permissions, and DOS semantics prevent deletion of a read only file. + + Default: delete readonly = no + diff --git a/docs/docbook/smbdotconf/misc/deletesharecommand.xml b/docs/docbook/smbdotconf/misc/deletesharecommand.xml new file mode 100644 index 00000000000..c3481c86ec2 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/deletesharecommand.xml @@ -0,0 +1,44 @@ + + delete share command (G) + Samba 2.2.0 introduced the ability to dynamically + add and delete shares via the Windows NT 4.0 Server Manager. The + delete share command is used to define an + external program or script which will remove an existing service + definition from smb.conf. In order to successfully + execute the delete share command, smbd + requires that the administrator be connected using a root account (i.e. + uid == 0). + + + + When executed, smbd will automatically invoke the + delete share command with two parameters. + + + + configFile - the location + of the global smb.conf file. + + + shareName - the name of + the existing service. + + + + + This parameter is only used to remove file shares. To delete printer shares, + see the deleteprinter + command. + + + + See also add share + command, change + share command. + + + Default: none + Example: delete share command = /usr/local/bin/delshare + + + diff --git a/docs/docbook/smbdotconf/misc/dfreecommand.xml b/docs/docbook/smbdotconf/misc/dfreecommand.xml new file mode 100644 index 00000000000..c71ec8e00bd --- /dev/null +++ b/docs/docbook/smbdotconf/misc/dfreecommand.xml @@ -0,0 +1,50 @@ + + dfree command (G) + The dfree command setting should + only be used on systems where a problem occurs with the internal + disk space calculations. This has been known to happen with Ultrix, + but may occur with other operating systems. The symptom that was + seen was an error of "Abort Retry Ignore" at the end of each + directory listing. + + This setting allows the replacement of the internal routines to + calculate the total disk space and amount available with an external + routine. The example below gives a possible script that might fulfill + this function. + + The external program will be passed a single parameter indicating + a directory in the filesystem being queried. This will typically consist + of the string ./. The script should return two + integers in ASCII. The first should be the total disk space in blocks, + and the second should be the number of available blocks. An optional + third return value can give the block size in bytes. The default + blocksize is 1024 bytes. + + Note: Your script should NOT be setuid or + setgid and should be owned by (and writeable only by) root! + + Default: By default internal routines for + determining the disk capacity and remaining space will be used. + + + Example: dfree command = /usr/local/samba/bin/dfree + + + Where the script dfree (which must be made executable) could be: + + +#!/bin/sh +df $1 | tail -1 | awk '{print $2" "$4}' + + + or perhaps (on Sys V based systems): + + +#!/bin/sh +/usr/bin/df -k $1 | tail -1 | awk '{print $3" "$5}' + + + Note that you may have to replace the command names + with full path names on some systems. + + diff --git a/docs/docbook/smbdotconf/misc/dontdescend.xml b/docs/docbook/smbdotconf/misc/dontdescend.xml new file mode 100644 index 00000000000..8136f293df3 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/dontdescend.xml @@ -0,0 +1,18 @@ + + dont descend (S) + There are certain directories on some systems + (e.g., the /proc tree under Linux) that are either not + of interest to clients or are infinitely deep (recursive). This + parameter allows you to specify a comma-delimited list of directories + that the server should always show as empty. + + Note that Samba can be very fussy about the exact format + of the "dont descend" entries. For example you may need + ./proc instead of just /proc. + Experimentation is the best policy :-) + + Default: none (i.e., all directories are OK + to descend) + Example: dont descend = /proc,/dev + + diff --git a/docs/docbook/smbdotconf/misc/dosfilemode.xml b/docs/docbook/smbdotconf/misc/dosfilemode.xml new file mode 100644 index 00000000000..e8aec3b78d7 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/dosfilemode.xml @@ -0,0 +1,16 @@ + + dos filemode (S) + The default behavior in Samba is to provide + UNIX-like behavior where only the owner of a file/directory is + able to change the permissions on it. However, this behavior + is often confusing to DOS/Windows users. Enabling this parameter + allows a user who has write access to the file (by whatever + means) to modify the permissions on it. Note that a user + belonging to the group owning the file will not be allowed to + change permissions if the group is only granted read access. + Ownership of the file/directory is not changed, only the permissions + are modified. + + Default: dos filemode = no + + diff --git a/docs/docbook/smbdotconf/misc/dosfiletimeresolution.xml b/docs/docbook/smbdotconf/misc/dosfiletimeresolution.xml new file mode 100644 index 00000000000..bc82582c87b --- /dev/null +++ b/docs/docbook/smbdotconf/misc/dosfiletimeresolution.xml @@ -0,0 +1,23 @@ + + dos filetime resolution (S) + Under the DOS and Windows FAT filesystem, the finest + granularity on time resolution is two seconds. Setting this parameter + for a share causes Samba to round the reported time down to the + nearest two second boundary when a query call that requires one second + resolution is made to smbd + 8. + + This option is mainly used as a compatibility option for Visual + C++ when used against Samba shares. If oplocks are enabled on a + share, Visual C++ uses two different time reading calls to check if a + file has changed since it was last read. One of these calls uses a + one-second granularity, the other uses a two second granularity. As + the two second call rounds any odd second down, then if the file has a + timestamp of an odd number of seconds then the two timestamps will not + match and Visual C++ will keep reporting the file has changed. Setting + this option causes the two timestamps to match, and Visual C++ is + happy. + + Default: dos filetime resolution = no + + diff --git a/docs/docbook/smbdotconf/misc/dosfiletimes.xml b/docs/docbook/smbdotconf/misc/dosfiletimes.xml new file mode 100644 index 00000000000..d9b9f3b08b8 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/dosfiletimes.xml @@ -0,0 +1,14 @@ + + dos filetimes (S) + Under DOS and Windows, if a user can write to a + file they can change the timestamp on it. Under POSIX semantics, + only the owner of the file or root may change the timestamp. By + default, Samba runs with POSIX semantics and refuses to change the + timestamp on a file if the user smbd is acting + on behalf of is not the file owner. Setting this option to + yes allows DOS semantics and smbd + 8 will change the file + timestamp as DOS requires. + + Default: dos filetimes = no + diff --git a/docs/docbook/smbdotconf/misc/exec.xml b/docs/docbook/smbdotconf/misc/exec.xml new file mode 100644 index 00000000000..34963c90b21 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/exec.xml @@ -0,0 +1,5 @@ + + exec (S) + This is a synonym for + preexec. + diff --git a/docs/docbook/smbdotconf/misc/fakedirectorycreatetimes.xml b/docs/docbook/smbdotconf/misc/fakedirectorycreatetimes.xml new file mode 100644 index 00000000000..81773606ee0 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/fakedirectorycreatetimes.xml @@ -0,0 +1,31 @@ + + fake directory create times (S) + NTFS and Windows VFAT file systems keep a create + time for all files and directories. This is not the same as the + ctime - status change time - that Unix keeps, so Samba by default + reports the earliest of the various times Unix does keep. Setting + this parameter for a share causes Samba to always report midnight + 1-1-1980 as the create time for directories. + + This option is mainly used as a compatibility option for + Visual C++ when used against Samba shares. Visual C++ generated + makefiles have the object directory as a dependency for each object + file, and a make rule to create the directory. Also, when NMAKE + compares timestamps it uses the creation time when examining a + directory. Thus the object directory will be created if it does not + exist, but once it does exist it will always have an earlier + timestamp than the object files it contains. + + However, Unix time semantics mean that the create time + reported by Samba will be updated whenever a file is created or + or deleted in the directory. NMAKE finds all object files in + the object directory. The timestamp of the last one built is then + compared to the timestamp of the object directory. If the + directory's timestamp if newer, then all object files + will be rebuilt. Enabling this option + ensures directories always predate their contents and an NMAKE build + will proceed as expected. + + Default: fake directory create times = no + + diff --git a/docs/docbook/smbdotconf/misc/followsymlinks.xml b/docs/docbook/smbdotconf/misc/followsymlinks.xml new file mode 100644 index 00000000000..88526da3203 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/followsymlinks.xml @@ -0,0 +1,18 @@ + + follow symlinks (S) + This parameter allows the Samba administrator + to stop smbd + 8 from following symbolic + links in a particular share. Setting this + parameter to no prevents any file or directory + that is a symbolic link from being followed (the user will get an + error). This option is very useful to stop users from adding a + symbolic link to /etc/passwd in their home + directory for instance. However it will slow filename lookups + down slightly. + + This option is enabled (i.e. smbd will + follow symbolic links) by default. + + Default: follow symlinks = yes + diff --git a/docs/docbook/smbdotconf/misc/fstype.xml b/docs/docbook/smbdotconf/misc/fstype.xml new file mode 100644 index 00000000000..566bccb4659 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/fstype.xml @@ -0,0 +1,14 @@ + + fstype (S) + This parameter allows the administrator to + configure the string that specifies the type of filesystem a share + is using that is reported by smbd + 8 when a client queries the filesystem type + for a share. The default type is NTFS for + compatibility with Windows NT but this can be changed to other + strings such as Samba or FAT + if required. + + Default: fstype = NTFS + Example: fstype = Samba + diff --git a/docs/docbook/smbdotconf/misc/hidelocalusers.xml b/docs/docbook/smbdotconf/misc/hidelocalusers.xml new file mode 100644 index 00000000000..d0468ead6b7 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/hidelocalusers.xml @@ -0,0 +1,7 @@ + + hide local users(G) + This parameter toggles the hiding of local UNIX + users (root, wheel, floppy, etc) from remote clients. + + Default: hide local users = no + diff --git a/docs/docbook/smbdotconf/misc/homedirmap.xml b/docs/docbook/smbdotconf/misc/homedirmap.xml new file mode 100644 index 00000000000..87a59204a27 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/homedirmap.xml @@ -0,0 +1,28 @@ + + homedir map (G) + Ifnis homedir + is yes, and smbd + 8 is also acting + as a Win95/98 logon server then this parameter + specifies the NIS (or YP) map from which the server for the user's + home directory should be extracted. At present, only the Sun + auto.home map format is understood. The form of the map is: + + username server:/some/file/system + + and the program will extract the servername from before + the first ':'. There should probably be a better parsing system + that copes with different map formats and also Amd (another + automounter) maps. + + NOTE :A working NIS client is required on + the system for this option to work. + + See also nis homedir + , domain logons + . + + Default: homedir map = <empty string> + Example: homedir map = amd.homedir + + diff --git a/docs/docbook/smbdotconf/misc/include.xml b/docs/docbook/smbdotconf/misc/include.xml new file mode 100644 index 00000000000..81230d43574 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/include.xml @@ -0,0 +1,14 @@ + + include (G) + This allows you to include one config file + inside another. The file is included literally, as though typed + in place. + + It takes the standard substitutions, except %u + , %P and %S. + + + Default: no file included + Example: include = /usr/local/samba/lib/admin_smb.conf + + diff --git a/docs/docbook/smbdotconf/misc/lockdir.xml b/docs/docbook/smbdotconf/misc/lockdir.xml new file mode 100644 index 00000000000..2c29b9b61c4 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/lockdir.xml @@ -0,0 +1,5 @@ + + lock dir (G) + Synonym for + lock directory. + diff --git a/docs/docbook/smbdotconf/misc/lockdirectory.xml b/docs/docbook/smbdotconf/misc/lockdirectory.xml new file mode 100644 index 00000000000..7945f198646 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/lockdirectory.xml @@ -0,0 +1,11 @@ + + lock directory (G) + This option specifies the directory where lock + files will be placed. The lock files are used to implement the + max connections + option. + + Default: lock directory = ${prefix}/var/locks + Example: lock directory = /var/run/samba/locks + + diff --git a/docs/docbook/smbdotconf/misc/magicoutput.xml b/docs/docbook/smbdotconf/misc/magicoutput.xml new file mode 100644 index 00000000000..8208d5bd4c6 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/magicoutput.xml @@ -0,0 +1,17 @@ + + magic output (S) + This parameter specifies the name of a file + which will contain output created by a magic script (see the + magic script + parameter below). + + Warning: If two clients use the same magic script + in the same directory the output file content + is undefined. + + Default: magic output = <magic script name>.out + + + Example: magic output = myfile.txt + + diff --git a/docs/docbook/smbdotconf/misc/magicscript.xml b/docs/docbook/smbdotconf/misc/magicscript.xml new file mode 100644 index 00000000000..73abb50fc52 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/magicscript.xml @@ -0,0 +1,28 @@ + + magic script (S) + This parameter specifies the name of a file which, + if opened, will be executed by the server when the file is closed. + This allows a UNIX script to be sent to the Samba host and + executed on behalf of the connected user. + + Scripts executed in this way will be deleted upon + completion assuming that the user has the appropriate level + of privilege and the file permissions allow the deletion. + + If the script generates output, output will be sent to + the file specified by the + magic output parameter (see above). + + Note that some shells are unable to interpret scripts + containing CR/LF instead of CR as + the end-of-line marker. Magic scripts must be executable + as is on the host, which for some hosts and + some shells will require filtering at the DOS end. + + Magic scripts are EXPERIMENTAL and + should NOT be relied upon. + + Default: None. Magic scripts disabled. + Example: magic script = user.csh + + diff --git a/docs/docbook/smbdotconf/misc/messagecommand.xml b/docs/docbook/smbdotconf/misc/messagecommand.xml new file mode 100644 index 00000000000..199fab56106 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/messagecommand.xml @@ -0,0 +1,65 @@ + + message command (G) + This specifies what command to run when the + server receives a WinPopup style message. + + This would normally be a command that would + deliver the message somehow. How this is to be done is + up to your imagination. + + An example is: + + message command = csh -c 'xedit %s;rm %s' & + + + This delivers the message using xedit, then + removes it afterwards. NOTE THAT IT IS VERY IMPORTANT + THAT THIS COMMAND RETURN IMMEDIATELY. That's why I + have the '&' on the end. If it doesn't return immediately then + your PCs may freeze when sending messages (they should recover + after 30 seconds, hopefully). + + All messages are delivered as the global guest user. + The command takes the standard substitutions, although + %u won't work (%U may be better + in this case). + + Apart from the standard substitutions, some additional + ones apply. In particular: + + + %s = the filename containing + the message. + + %t = the destination that + the message was sent to (probably the server name). + + %f = who the message + is from. + + + You could make this command send mail, or whatever else + takes your fancy. Please let us know of any really interesting + ideas you have. + + + Here's a way of sending the messages as mail to root: + + message command = /bin/mail -s 'message from %f on + %m' root < %s; rm %s + + If you don't have a message command then the message + won't be delivered and Samba will tell the sender there was + an error. Unfortunately WfWg totally ignores the error code + and carries on regardless, saying that the message was delivered. + + + If you want to silently delete it then try: + + message command = rm %s + + Default: no message command + Example: message command = csh -c 'xedit %s; + rm %s' & + + diff --git a/docs/docbook/smbdotconf/misc/nishomedir.xml b/docs/docbook/smbdotconf/misc/nishomedir.xml new file mode 100644 index 00000000000..5a2980d4fd2 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/nishomedir.xml @@ -0,0 +1,30 @@ + + nis homedir (G) + Get the home share server from a NIS map. For + UNIX systems that use an automounter, the user's home directory + will often be mounted on a workstation on demand from a remote + server. + + When the Samba logon server is not the actual home directory + server, but is mounting the home directories via NFS then two + network hops would be required to access the users home directory + if the logon server told the client to use itself as the SMB server + for home directories (one over SMB and one over NFS). This can + be very slow. + + This option allows Samba to return the home share as + being on a different server to the logon server and as + long as a Samba daemon is running on the home directory server, + it will be mounted on the Samba client directly from the directory + server. When Samba is returning the home share to the client, it + will consult the NIS map specified in + homedir map and return the server + listed there. + + Note that for this option to work there must be a working + NIS system and the Samba server with this option must also + be a logon server. + + Default: nis homedir = no + + diff --git a/docs/docbook/smbdotconf/misc/panicaction.xml b/docs/docbook/smbdotconf/misc/panicaction.xml new file mode 100644 index 00000000000..6de37c2c175 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/panicaction.xml @@ -0,0 +1,12 @@ + + panic action (G) + This is a Samba developer option that allows a + system command to be called when either smbd + 8 or smbd + 8 crashes. This is usually used to + draw attention to the fact that a problem occurred. + + Default: panic action = <empty string> + Example: panic action = "/bin/sleep 90000" + + diff --git a/docs/docbook/smbdotconf/misc/piddirectory.xml b/docs/docbook/smbdotconf/misc/piddirectory.xml new file mode 100644 index 00000000000..81c1b13e753 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/piddirectory.xml @@ -0,0 +1,9 @@ + + pid directory (G) + This option specifies the directory where pid + files will be placed. + + Default: pid directory = ${prefix}/var/locks + Example: pid directory = /var/run/ + + diff --git a/docs/docbook/smbdotconf/misc/postexec.xml b/docs/docbook/smbdotconf/misc/postexec.xml new file mode 100644 index 00000000000..017177be3d1 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/postexec.xml @@ -0,0 +1,22 @@ + + postexec (S) + This option specifies a command to be run + whenever the service is disconnected. It takes the usual + substitutions. The command may be run as the root on some + systems. + + An interesting example may be to unmount server + resources: + + postexec = /etc/umount /cdrom + + See also preexec + . + + Default: none (no command executed) + + + Example: postexec = echo \"%u disconnected from %S + from %m (%I)\" >> /tmp/log + + diff --git a/docs/docbook/smbdotconf/misc/preexec.xml b/docs/docbook/smbdotconf/misc/preexec.xml new file mode 100644 index 00000000000..fc047e008de --- /dev/null +++ b/docs/docbook/smbdotconf/misc/preexec.xml @@ -0,0 +1,23 @@ + + preexec (S) + This option specifies a command to be run whenever + the service is connected to. It takes the usual substitutions. + + An interesting example is to send the users a welcome + message every time they log in. Maybe a message of the day? Here + is an example: + + preexec = csh -c 'echo \"Welcome to %S!\" | + /usr/local/samba/bin/smbclient -M %m -I %I' & + + Of course, this could get annoying after a while :-) + + See also preexec close + and postexec + . + + Default: none (no command executed) + Example: preexec = echo \"%u connected to %S from %m + (%I)\" >> /tmp/log + + diff --git a/docs/docbook/smbdotconf/misc/preexecclose.xml b/docs/docbook/smbdotconf/misc/preexecclose.xml new file mode 100644 index 00000000000..c617a7f7faa --- /dev/null +++ b/docs/docbook/smbdotconf/misc/preexecclose.xml @@ -0,0 +1,9 @@ + + preexec close (S) + This boolean option controls whether a non-zero + return code from preexec + should close the service being connected to. + + Default: preexec close = no + + diff --git a/docs/docbook/smbdotconf/misc/preload.xml b/docs/docbook/smbdotconf/misc/preload.xml new file mode 100644 index 00000000000..574ed1a369a --- /dev/null +++ b/docs/docbook/smbdotconf/misc/preload.xml @@ -0,0 +1,16 @@ + + preload (G) + This is a list of services that you want to be + automatically added to the browse lists. This is most useful + for homes and printers services that would otherwise not be + visible. + + Note that if you just want all printers in your + printcap file loaded then the + load printers option is easier. + + Default: no preloaded services + + Example: preload = fred lp colorlp + + diff --git a/docs/docbook/smbdotconf/misc/remoteannounce.xml b/docs/docbook/smbdotconf/misc/remoteannounce.xml new file mode 100644 index 00000000000..e6de4bdcaf1 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/remoteannounce.xml @@ -0,0 +1,32 @@ + + remote announce (G) + This option allows you to setup nmbd(8) to periodically announce itself + to arbitrary IP addresses with an arbitrary workgroup name. + + This is useful if you want your Samba server to appear + in a remote workgroup for which the normal browse propagation + rules don't work. The remote workgroup can be anywhere that you + can send IP packets to. + + For example: + + remote announce = 192.168.2.255/SERVERS + 192.168.4.255/STAFF + + the above line would cause nmbd to announce itself + to the two given IP addresses using the given workgroup names. + If you leave out the workgroup name then the one given in + the workgroup + parameter is used instead. + + The IP addresses you choose would normally be the broadcast + addresses of the remote networks, but can also be the IP addresses + of known browse masters if your network config is that stable. + + See the documentation file BROWSING + in the docs/ directory. + + Default: remote announce = <empty string> + + + diff --git a/docs/docbook/smbdotconf/misc/remotebrowsesync.xml b/docs/docbook/smbdotconf/misc/remotebrowsesync.xml new file mode 100644 index 00000000000..8b0d863ed7c --- /dev/null +++ b/docs/docbook/smbdotconf/misc/remotebrowsesync.xml @@ -0,0 +1,33 @@ + + remote browse sync (G) + This option allows you to setup nmbd(8) to periodically request + synchronization of browse lists with the master browser of a Samba + server that is on a remote segment. This option will allow you to + gain browse lists for multiple workgroups across routed networks. This + is done in a manner that does not work with any non-Samba servers. + + This is useful if you want your Samba server and all local + clients to appear in a remote workgroup for which the normal browse + propagation rules don't work. The remote workgroup can be anywhere + that you can send IP packets to. + + For example: + + remote browse sync = 192.168.2.255 192.168.4.255 + + + the above line would cause nmbd to request + the master browser on the specified subnets or addresses to + synchronize their browse lists with the local server. + + The IP addresses you choose would normally be the broadcast + addresses of the remote networks, but can also be the IP addresses + of known browse masters if your network config is that stable. If + a machine IP address is given Samba makes NO attempt to validate + that the remote machine is available, is listening, nor that it + is in fact the browse master on its segment. + + Default: remote browse sync = <empty string> + + + diff --git a/docs/docbook/smbdotconf/misc/rootpostexec.xml b/docs/docbook/smbdotconf/misc/rootpostexec.xml new file mode 100644 index 00000000000..ed606466778 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/rootpostexec.xml @@ -0,0 +1,14 @@ + + root postexec (S) + This is the same as the postexec + parameter except that the command is run as root. This + is useful for unmounting filesystems + (such as CDROMs) after a connection is closed. + + See also + postexec. + + Default: root postexec = <empty string> + + + diff --git a/docs/docbook/smbdotconf/misc/rootpreexec.xml b/docs/docbook/smbdotconf/misc/rootpreexec.xml new file mode 100644 index 00000000000..29802b6d631 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/rootpreexec.xml @@ -0,0 +1,15 @@ + + root preexec (S) + This is the same as the preexec + parameter except that the command is run as root. This + is useful for mounting filesystems (such as CDROMs) when a + connection is opened. + + See also + preexec and + preexec close. + + Default: root preexec = <empty string> + + + diff --git a/docs/docbook/smbdotconf/misc/rootpreexecclose.xml b/docs/docbook/smbdotconf/misc/rootpreexecclose.xml new file mode 100644 index 00000000000..d21b0dd7b55 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/rootpreexecclose.xml @@ -0,0 +1,12 @@ + + root preexec close (S) + This is the same as the preexec close + parameter except that the command is run as root. + + See also + preexec and + preexec close. + + Default: root preexec close = no + + diff --git a/docs/docbook/smbdotconf/misc/setdirectory.xml b/docs/docbook/smbdotconf/misc/setdirectory.xml new file mode 100644 index 00000000000..860632cdaf0 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/setdirectory.xml @@ -0,0 +1,13 @@ + + set directory (S) + If set directory = no, then + users of the service may not use the setdir command to change + directory. + + The setdir command is only implemented + in the Digital Pathworks client. See the Pathworks documentation + for details. + + Default: set directory = no + + diff --git a/docs/docbook/smbdotconf/misc/socketaddress.xml b/docs/docbook/smbdotconf/misc/socketaddress.xml new file mode 100644 index 00000000000..e77737f18b5 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/socketaddress.xml @@ -0,0 +1,14 @@ + + socket address (G) + This option allows you to control what + address Samba will listen for connections on. This is used to + support multiple virtual interfaces on the one server, each + with a different configuration. + + By default Samba will accept connections on any + address. + + Example: socket address = 192.168.2.20 + + + diff --git a/docs/docbook/smbdotconf/misc/sourceenvironment.xml b/docs/docbook/smbdotconf/misc/sourceenvironment.xml new file mode 100644 index 00000000000..07a8abce4d6 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/sourceenvironment.xml @@ -0,0 +1,23 @@ + + source environment (G) + This parameter causes Samba to set environment + variables as per the content of the file named. + + If the value of this parameter starts with a "|" character + then Samba will treat that value as a pipe command to open and + will set the environment variables from the output of the pipe. + + The contents of the file or the output of the pipe should + be formatted as the output of the standard Unix env(1) + command. This is of the form : + Example environment entry: + SAMBA_NETBIOS_NAME = myhostname + + Default: No default value + Examples: source environment = |/etc/smb.conf.sh + + + Example: source environment = + /usr/local/smb_env_vars + + diff --git a/docs/docbook/smbdotconf/misc/timeoffset.xml b/docs/docbook/smbdotconf/misc/timeoffset.xml new file mode 100644 index 00000000000..0c973234c39 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/timeoffset.xml @@ -0,0 +1,11 @@ + + time offset (G) + This parameter is a setting in minutes to add + to the normal GMT to local time conversion. This is useful if + you are serving a lot of PCs that have incorrect daylight + saving time handling. + + Default: time offset = 0 + Example: time offset = 60 + + diff --git a/docs/docbook/smbdotconf/misc/utmp.xml b/docs/docbook/smbdotconf/misc/utmp.xml new file mode 100644 index 00000000000..014b85d6bc6 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/utmp.xml @@ -0,0 +1,21 @@ + + utmp (G) + This boolean parameter is only available if + Samba has been configured and compiled with the option + --with-utmp. If set to yes then Samba will attempt + to add utmp or utmpx records (depending on the UNIX system) whenever a + connection is made to a Samba server. Sites may use this to record the + user connecting to a Samba share. + + Due to the requirements of the utmp record, we + are required to create a unique identifier for the + incoming user. Enabling this option creates an n^2 + algorithm to find this number. This may impede + performance on large installations. + + See also the + utmp directory parameter. + + Default: utmp = no + + diff --git a/docs/docbook/smbdotconf/misc/utmpdirectory.xml b/docs/docbook/smbdotconf/misc/utmpdirectory.xml new file mode 100644 index 00000000000..9e5574fb395 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/utmpdirectory.xml @@ -0,0 +1,16 @@ + + utmp directory(G) + This parameter is only available if Samba has + been configured and compiled with the option + --with-utmp. It specifies a directory pathname that is + used to store the utmp or utmpx files (depending on the UNIX system) that + record user connections to a Samba server. See also the + utmp parameter. By default this is + not set, meaning the system will use whatever utmp file the + native system is set to use (usually + /var/run/utmp on Linux). + + Default: no utmp directory + Example: utmp directory = /var/run/utmp + + diff --git a/docs/docbook/smbdotconf/misc/volume.xml b/docs/docbook/smbdotconf/misc/volume.xml new file mode 100644 index 00000000000..f0a82c6f0c4 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/volume.xml @@ -0,0 +1,9 @@ + + volume (S) + This allows you to override the volume label + returned for a share. Useful for CDROMs with installation programs + that insist on a particular volume label. + + Default: the name of the share + + diff --git a/docs/docbook/smbdotconf/misc/widelinks.xml b/docs/docbook/smbdotconf/misc/widelinks.xml new file mode 100644 index 00000000000..b3474ce26c2 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/widelinks.xml @@ -0,0 +1,15 @@ + + wide links (S) + This parameter controls whether or not links + in the UNIX file system may be followed by the server. Links + that point to areas within the directory tree exported by the + server are always allowed; this parameter controls access only + to areas that are outside the directory tree being exported. + + Note that setting this parameter can have a negative + effect on your server performance due to the extra system calls + that Samba has to do in order to perform the link checks. + + Default: wide links = yes + + diff --git a/docs/docbook/smbdotconf/misc/wtmpdirectory.xml b/docs/docbook/smbdotconf/misc/wtmpdirectory.xml new file mode 100644 index 00000000000..bb144473ff3 --- /dev/null +++ b/docs/docbook/smbdotconf/misc/wtmpdirectory.xml @@ -0,0 +1,20 @@ + + wtmp directory(G) + This parameter is only available if Samba has + been configured and compiled with the option + --with-utmp. It specifies a directory pathname that is + used to store the wtmp or wtmpx files (depending on the UNIX system) that + record user connections to a Samba server. The difference with + the utmp directory is the fact that user info is kept after a user + has logged out. + + See also the + utmp parameter. By default this is + not set, meaning the system will use whatever utmp file the + native system is set to use (usually + /var/run/wtmp on Linux). + + Default: no wtmp directory + Example: wtmp directory = /var/log/wtmp + + diff --git a/docs/docbook/smbdotconf/printing/addprintercommand.xml b/docs/docbook/smbdotconf/printing/addprintercommand.xml new file mode 100644 index 00000000000..abff09cda45 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/addprintercommand.xml @@ -0,0 +1,60 @@ + + addprinter command (G) + With the introduction of MS-RPC based printing + support for Windows NT/2000 clients in Samba 2.2, The MS Add + Printer Wizard (APW) icon is now also available in the + "Printers..." folder displayed a share listing. The APW + allows for printers to be add remotely to a Samba or Windows + NT/2000 print server. + + For a Samba host this means that the printer must be + physically added to the underlying printing system. The add + printer command defines a script to be run which + will perform the necessary operations for adding the printer + to the print system and to add the appropriate service definition + to the smb.conf file in order that it can be + shared by smbd + 8. + + The addprinter command is + automatically invoked with the following parameter (in + order): + + + printer name + share name + port name + driver name + location + Windows 9x driver location + + + + All parameters are filled in from the PRINTER_INFO_2 structure sent + by the Windows NT/2000 client with one exception. The "Windows 9x + driver location" parameter is included for backwards compatibility + only. The remaining fields in the structure are generated from answers + to the APW questions. + + Once the addprinter command has + been executed, smbd will reparse the + smb.conf to determine if the share defined by the APW + exists. If the sharename is still invalid, then smbd + will return an ACCESS_DENIED error to the client. + + + The "add printer command" program can output a single line of text, + which Samba will set as the port the new printer is connected to. + If this line isn't output, Samba won't reload its printer shares. + + + See also + deleteprinter command, printing, + show add + printer wizard + + Default: none + Example: addprinter command = /usr/bin/addprinter + + + diff --git a/docs/docbook/smbdotconf/printing/defaultdevmode.xml b/docs/docbook/smbdotconf/printing/defaultdevmode.xml new file mode 100644 index 00000000000..9609038dcd9 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/defaultdevmode.xml @@ -0,0 +1,34 @@ + + default devmode (S) + This parameter is only applicable to printable services. When smbd is serving + Printer Drivers to Windows NT/2k/XP clients, each printer on the Samba + server has a Device Mode which defines things such as paper size and + orientation and duplex settings. The device mode can only correctly be + generated by the printer driver itself (which can only be executed on a + Win32 platform). Because smbd is unable to execute the driver code + to generate the device mode, the default behavior is to set this field + to NULL. + + + Most problems with serving printer drivers to Windows NT/2k/XP clients + can be traced to a problem with the generated device mode. Certain drivers + will do things such as crashing the client's Explorer.exe with a NULL devmode. + However, other printer drivers can cause the client's spooler service + (spoolsv.exe) to die if the devmode was not created by the driver itself + (i.e. smbd generates a default devmode). + + + This parameter should be used with care and tested with the printer + driver in question. It is better to leave the device mode to NULL + and let the Windows client set the correct values. Because drivers do not + do this all the time, setting default devmode = yes + will instruct smbd to generate a default one. + + + For more information on Windows NT/2k printing and Device Modes, + see the MSDN documentation. + + + Default: default devmode = no + + diff --git a/docs/docbook/smbdotconf/printing/deleteprintercommand.xml b/docs/docbook/smbdotconf/printing/deleteprintercommand.xml new file mode 100644 index 00000000000..23f2ff76b0f --- /dev/null +++ b/docs/docbook/smbdotconf/printing/deleteprintercommand.xml @@ -0,0 +1,35 @@ + + deleteprinter command (G) + With the introduction of MS-RPC based printer + support for Windows NT/2000 clients in Samba 2.2, it is now + possible to delete printer at run time by issuing the + DeletePrinter() RPC call. + + For a Samba host this means that the printer must be + physically deleted from underlying printing system. The + deleteprinter command defines a script to be run which + will perform the necessary operations for removing the printer + from the print system and from smb.conf. + + + The deleteprinter command is + automatically called with only one parameter: + "printer name". + + + Once the deleteprinter command has + been executed, smbd will reparse the + smb.conf to associated printer no longer exists. + If the sharename is still valid, then smbd + will return an ACCESS_DENIED error to the client. + + See also + addprinter command, printing, + show add + printer wizard + + Default: none + Example: deleteprinter command = /usr/bin/removeprinter + + + diff --git a/docs/docbook/smbdotconf/printing/disablespoolss.xml b/docs/docbook/smbdotconf/printing/disablespoolss.xml new file mode 100644 index 00000000000..dff1e63fab2 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/disablespoolss.xml @@ -0,0 +1,20 @@ + + disable spoolss (G) + Enabling this parameter will disable Samba's support + for the SPOOLSS set of MS-RPC's and will yield identical behavior + as Samba 2.0.x. Windows NT/2000 clients will downgrade to using + Lanman style printing commands. Windows 9x/ME will be uneffected by + the parameter. However, this will also disable the ability to upload + printer drivers to a Samba server via the Windows NT Add Printer + Wizard or by using the NT printer properties dialog window. It will + also disable the capability of Windows NT/2000 clients to download + print drivers from the Samba host upon demand. + Be very careful about enabling this parameter. + + + See also use client driver + + + Default : disable spoolss = no + + diff --git a/docs/docbook/smbdotconf/printing/enumportscommand.xml b/docs/docbook/smbdotconf/printing/enumportscommand.xml new file mode 100644 index 00000000000..b1111a5e1c8 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/enumportscommand.xml @@ -0,0 +1,22 @@ + + enumports command (G) + The concept of a "port" is fairly foreign + to UNIX hosts. Under Windows NT/2000 print servers, a port + is associated with a port monitor and generally takes the form of + a local port (i.e. LPT1:, COM1:, FILE:) or a remote port + (i.e. LPD Port Monitor, etc...). By default, Samba has only one + port defined--"Samba Printer Port". Under + Windows NT/2000, all printers must have a valid port name. + If you wish to have a list of ports displayed (smbd + does not use a port name for anything) other than + the default "Samba Printer Port", you + can define enumports command to point to + a program which should generate a list of ports, one per line, + to standard output. This listing will then be used in response + to the level 1 and 2 EnumPorts() RPC. + + Default: no enumports command + Example: enumports command = /usr/bin/listports + + + diff --git a/docs/docbook/smbdotconf/printing/loadprinters.xml b/docs/docbook/smbdotconf/printing/loadprinters.xml new file mode 100644 index 00000000000..adaa8afca9a --- /dev/null +++ b/docs/docbook/smbdotconf/printing/loadprinters.xml @@ -0,0 +1,9 @@ + + load printers (G) + A boolean variable that controls whether all + printers in the printcap will be loaded for browsing by default. + See the printers section for + more details. + + Default: load printers = yes + diff --git a/docs/docbook/smbdotconf/printing/lppausecommand.xml b/docs/docbook/smbdotconf/printing/lppausecommand.xml new file mode 100644 index 00000000000..34d7c7f800f --- /dev/null +++ b/docs/docbook/smbdotconf/printing/lppausecommand.xml @@ -0,0 +1,41 @@ + + lppause command (S) + This parameter specifies the command to be + executed on the server host in order to stop printing or spooling + a specific print job. + + This command should be a program or script which takes + a printer name and job number to pause the print job. One way + of implementing this is by using job priorities, where jobs + having a too low priority won't be sent to the printer. + + If a %p is given then the printer name + is put in its place. A %j is replaced with + the job number (an integer). On HPUX (see printing=hpux + ), if the -p%p option is added + to the lpq command, the job will show up with the correct status, i.e. + if the job priority is lower than the set fence priority it will + have the PAUSED status, whereas if the priority is equal or higher it + will have the SPOOLED or PRINTING status. + + Note that it is good practice to include the absolute path + in the lppause command as the PATH may not be available to the server. + + See also the printing + parameter. + + Default: Currently no default value is given to + this string, unless the value of the printing + parameter is SYSV, in which case the default is : + + lp -i %p-%j -H hold + + or if the value of the printing parameter + is SOFTQ, then the default is: + + qstat -s -j%j -h + + Example for HPUX: lppause command = /usr/bin/lpalt + %p-%j -p0 + + diff --git a/docs/docbook/smbdotconf/printing/lpqcachetime.xml b/docs/docbook/smbdotconf/printing/lpqcachetime.xml new file mode 100644 index 00000000000..6f351fdaf9a --- /dev/null +++ b/docs/docbook/smbdotconf/printing/lpqcachetime.xml @@ -0,0 +1,26 @@ + + lpq cache time (G) + This controls how long lpq info will be cached + for to prevent the lpq command being called too + often. A separate cache is kept for each variation of the + lpq command used by the system, so if you use different + lpq commands for different users then they won't + share cache information. + + The cache files are stored in /tmp/lpq.xxxx + where xxxx is a hash of the lpq command in use. + + The default is 10 seconds, meaning that the cached results + of a previous identical lpq command will be used + if the cached data is less than 10 seconds old. A large value may + be advisable if your lpq command is very slow. + + A value of 0 will disable caching completely. + + See also the printing + parameter. + + Default: lpq cache time = 10 + Example: lpq cache time = 30 + + diff --git a/docs/docbook/smbdotconf/printing/lpqcommand.xml b/docs/docbook/smbdotconf/printing/lpqcommand.xml new file mode 100644 index 00000000000..ddcdf1ef499 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/lpqcommand.xml @@ -0,0 +1,41 @@ + + lpq command (S) + This parameter specifies the command to be + executed on the server host in order to obtain lpq + -style printer status information. + + This command should be a program or script which + takes a printer name as its only parameter and outputs printer + status information. + + Currently nine styles of printer status information + are supported; BSD, AIX, LPRNG, PLP, SYSV, HPUX, QNX, CUPS, and SOFTQ. + This covers most UNIX systems. You control which type is expected + using the printing = option. + + Some clients (notably Windows for Workgroups) may not + correctly send the connection number for the printer they are + requesting status information about. To get around this, the + server reports on the first printer service connected to by the + client. This only happens if the connection number sent is invalid. + + If a %p is given then the printer name + is put in its place. Otherwise it is placed at the end of the + command. + + Note that it is good practice to include the absolute path + in the lpq command as the $PATH + may not be available to the server. When compiled with + the CUPS libraries, no lpq command is + needed because smbd will make a library call to obtain the + print queue listing. + + See also the printing + parameter. + + Default: depends on the setting of + printing + + Example: lpq command = /usr/bin/lpq -P%p + + diff --git a/docs/docbook/smbdotconf/printing/lpresumecommand.xml b/docs/docbook/smbdotconf/printing/lpresumecommand.xml new file mode 100644 index 00000000000..fbb1ac71ad3 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/lpresumecommand.xml @@ -0,0 +1,37 @@ + + lpresume command (S) + This parameter specifies the command to be + executed on the server host in order to restart or continue + printing or spooling a specific print job. + + This command should be a program or script which takes + a printer name and job number to resume the print job. See + also the lppause command + parameter. + + If a %p is given then the printer name + is put in its place. A %j is replaced with + the job number (an integer). + + Note that it is good practice to include the absolute path + in the lpresume command as the PATH may not + be available to the server. + + See also the printing + parameter. + + Default: Currently no default value is given + to this string, unless the value of the printing + parameter is SYSV, in which case the default is : + + lp -i %p-%j -H resume + + or if the value of the printing parameter + is SOFTQ, then the default is: + + qstat -s -j%j -r + + Example for HPUX: lpresume command = /usr/bin/lpalt + %p-%j -p2 + + diff --git a/docs/docbook/smbdotconf/printing/lprmcommand.xml b/docs/docbook/smbdotconf/printing/lprmcommand.xml new file mode 100644 index 00000000000..7f59d6c5a05 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/lprmcommand.xml @@ -0,0 +1,27 @@ + + lprm command (S) + This parameter specifies the command to be + executed on the server host in order to delete a print job. + + This command should be a program or script which takes + a printer name and job number, and deletes the print job. + + If a %p is given then the printer name + is put in its place. A %j is replaced with + the job number (an integer). + + Note that it is good practice to include the absolute + path in the lprm command as the PATH may not be + available to the server. + + See also the printing + parameter. + + Default: depends on the setting of printing + + + Example 1: lprm command = /usr/bin/lprm -P%p %j + + Example 2: lprm command = /usr/bin/cancel %p-%j + + diff --git a/docs/docbook/smbdotconf/printing/maxprintjobs.xml b/docs/docbook/smbdotconf/printing/maxprintjobs.xml new file mode 100644 index 00000000000..f0c7d83d3fb --- /dev/null +++ b/docs/docbook/smbdotconf/printing/maxprintjobs.xml @@ -0,0 +1,14 @@ + + max print jobs (S) + This parameter limits the maximum number of + jobs allowable in a Samba printer queue at any given moment. + If this number is exceeded, smbd + 8 will remote "Out of Space" to the client. + See all total + print jobs. + + + Default: max print jobs = 1000 + Example: max print jobs = 5000 + + diff --git a/docs/docbook/smbdotconf/printing/os2drivermap.xml b/docs/docbook/smbdotconf/printing/os2drivermap.xml new file mode 100644 index 00000000000..fdfba35a490 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/os2drivermap.xml @@ -0,0 +1,22 @@ + + os2 driver map (G) + The parameter is used to define the absolute + path to a file containing a mapping of Windows NT printer driver + names to OS/2 printer driver names. The format is: + + <nt driver name> = <os2 driver + name>.<device name> + + For example, a valid entry using the HP LaserJet 5 + printer driver would appear as HP LaserJet 5L = LASERJET.HP + LaserJet 5L. + + The need for the file is due to the printer driver namespace + problem described in the Samba + Printing HOWTO. For more details on OS/2 clients, please + refer to the OS2-Client-HOWTO containing in the Samba documentation. + + Default: os2 driver map = <empty string> + + + diff --git a/docs/docbook/smbdotconf/printing/printable.xml b/docs/docbook/smbdotconf/printing/printable.xml new file mode 100644 index 00000000000..22d4d73b017 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/printable.xml @@ -0,0 +1,15 @@ + + printable (S) + If this parameter is yes, then + clients may open, write to and submit spool files on the directory + specified for the service. + + Note that a printable service will ALWAYS allow writing + to the service path (user privileges permitting) via the spooling + of print data. The read only + parameter controls only non-printing access to + the resource. + + Default: printable = no + + diff --git a/docs/docbook/smbdotconf/printing/printcap.xml b/docs/docbook/smbdotconf/printing/printcap.xml new file mode 100644 index 00000000000..2f5e4af580e --- /dev/null +++ b/docs/docbook/smbdotconf/printing/printcap.xml @@ -0,0 +1,6 @@ + + printcap (G) + Synonym for + printcap name. + + diff --git a/docs/docbook/smbdotconf/printing/printcapname.xml b/docs/docbook/smbdotconf/printing/printcapname.xml new file mode 100644 index 00000000000..fcfeada54c1 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/printcapname.xml @@ -0,0 +1,47 @@ + + printcap name (G) + This parameter may be used to override the + compiled-in default printcap name used by the server (usually + /etc/printcap). See the discussion of the [printers] section above for reasons + why you might want to do this. + + To use the CUPS printing interface set printcap name = cups + . This should be supplemented by an addtional setting + printing = cups in the [global] + section. printcap name = cups will use the + "dummy" printcap created by CUPS, as specified in your CUPS + configuration file. + + + On System V systems that use lpstat to + list available printers you can use printcap name = lpstat + to automatically obtain lists of available printers. This + is the default for systems that define SYSV at configure time in + Samba (this includes most System V based systems). If + printcap name is set to lpstat on + these systems then Samba will launch lpstat -v and + attempt to parse the output to obtain a printer list. + + A minimal printcap file would look something like this: + + +print1|My Printer 1 +print2|My Printer 2 +print3|My Printer 3 +print4|My Printer 4 +print5|My Printer 5 + + + where the '|' separates aliases of a printer. The fact + that the second alias has a space in it gives a hint to Samba + that it's a comment. + + NOTE: Under AIX the default printcap + name is /etc/qconfig. Samba will assume the + file is in AIX qconfig format if the string + qconfig appears in the printcap filename. + + Default: printcap name = /etc/printcap + Example: printcap name = /etc/myprintcap + + diff --git a/docs/docbook/smbdotconf/printing/printcommand.xml b/docs/docbook/smbdotconf/printing/printcommand.xml new file mode 100644 index 00000000000..c996ed6c2e2 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/printcommand.xml @@ -0,0 +1,86 @@ + + print command (S) + After a print job has finished spooling to + a service, this command will be used via a system() + call to process the spool file. Typically the command specified will + submit the spool file to the host's printing subsystem, but there + is no requirement that this be the case. The server will not remove + the spool file, so whatever command you specify should remove the + spool file when it has been processed, otherwise you will need to + manually remove old spool files. + + The print command is simply a text string. It will be used + verbatim after macro substitutions have been made: + + s, %p - the path to the spool + file name + + %p - the appropriate printer + name + + %J - the job + name as transmitted by the client. + + %c - The number of printed pages + of the spooled job (if known). + + %z - the size of the spooled + print job (in bytes) + + The print command MUST contain at least + one occurrence of %s or %f + - the %p is optional. At the time + a job is submitted, if no printer name is supplied the %p + will be silently removed from the printer command. + + If specified in the [global] section, the print command given + will be used for any printable service that does not have its own + print command specified. + + If there is neither a specified print command for a + printable service nor a global print command, spool files will + be created but not processed and (most importantly) not removed. + + Note that printing may fail on some UNIXes from the + nobody account. If this happens then create + an alternative guest account that can print and set the guest account + in the [global] section. + + You can form quite complex print commands by realizing + that they are just passed to a shell. For example the following + will log a print job, print the file, then remove it. Note that + ';' is the usual separator for command in shell scripts. + + print command = echo Printing %s >> + /tmp/print.log; lpr -P %p %s; rm %s + + You may have to vary this command considerably depending + on how you normally print files on your system. The default for + the parameter varies depending on the setting of the + printing parameter. + + Default: For printing = BSD, AIX, QNX, LPRNG + or PLP : + print command = lpr -r -P%p %s + + For printing = SYSV or HPUX : + print command = lp -c -d%p %s; rm %s + + For printing = SOFTQ : + print command = lp -d%p -s %s; rm %s + + For printing = CUPS : If SAMBA is compiled against + libcups, then printcap = cups + uses the CUPS API to + submit jobs, etc. Otherwise it maps to the System V + commands with the -oraw option for printing, i.e. it + uses lp -c -d%p -oraw; rm %s. + With printing = cups, + and if SAMBA is compiled against libcups, any manually + set print command will be ignored. + + + Example: print command = /usr/local/samba/bin/myprintscript + %p %s + + diff --git a/docs/docbook/smbdotconf/printing/printer.xml b/docs/docbook/smbdotconf/printing/printer.xml new file mode 100644 index 00000000000..4cf90b06fab --- /dev/null +++ b/docs/docbook/smbdotconf/printing/printer.xml @@ -0,0 +1,6 @@ + + printer (S) + Synonym for + printer name. + + diff --git a/docs/docbook/smbdotconf/printing/printername.xml b/docs/docbook/smbdotconf/printing/printername.xml new file mode 100644 index 00000000000..25e6afa1f26 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/printername.xml @@ -0,0 +1,15 @@ + + printer name (S) + This parameter specifies the name of the printer + to which print jobs spooled through a printable service will be sent. + + If specified in the [global] section, the printer + name given will be used for any printable service that does + not have its own printer name specified. + + Default: none (but may be lp + on many systems) + + Example: printer name = laserwriter + + diff --git a/docs/docbook/smbdotconf/printing/printing.xml b/docs/docbook/smbdotconf/printing/printing.xml new file mode 100644 index 00000000000..d49c0e2471f --- /dev/null +++ b/docs/docbook/smbdotconf/printing/printing.xml @@ -0,0 +1,26 @@ + + printing (S) + This parameters controls how printer status + information is interpreted on your system. It also affects the + default values for the print command, + lpq command, lppause command + , lpresume command, and + lprm command if specified in the + [global] section. + + Currently nine printing styles are supported. They are + BSD, AIX, + LPRNG, PLP, + SYSV, HPUX, + QNX, SOFTQ, + and CUPS. + + To see what the defaults are for the other print + commands when using the various options use the testparm(1) program. + + This option can be set on a per printer basis + + See also the discussion in the + [printers] section. + + diff --git a/docs/docbook/smbdotconf/printing/printok.xml b/docs/docbook/smbdotconf/printing/printok.xml new file mode 100644 index 00000000000..7900e91bbb8 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/printok.xml @@ -0,0 +1,6 @@ + + print ok (S) + Synonym for + printable. + + diff --git a/docs/docbook/smbdotconf/printing/queuepausecommand.xml b/docs/docbook/smbdotconf/printing/queuepausecommand.xml new file mode 100644 index 00000000000..c991994f7f8 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/queuepausecommand.xml @@ -0,0 +1,26 @@ + + queuepause command (S) + This parameter specifies the command to be + executed on the server host in order to pause the printer queue. + + This command should be a program or script which takes + a printer name as its only parameter and stops the printer queue, + such that no longer jobs are submitted to the printer. + + This command is not supported by Windows for Workgroups, + but can be issued from the Printers window under Windows 95 + and NT. + + If a %p is given then the printer name + is put in its place. Otherwise it is placed at the end of the command. + + + Note that it is good practice to include the absolute + path in the command as the PATH may not be available to the + server. + + Default: depends on the setting of printing + + Example: queuepause command = disable %p + + diff --git a/docs/docbook/smbdotconf/printing/queueresumecommand.xml b/docs/docbook/smbdotconf/printing/queueresumecommand.xml new file mode 100644 index 00000000000..7c0d60961ab --- /dev/null +++ b/docs/docbook/smbdotconf/printing/queueresumecommand.xml @@ -0,0 +1,31 @@ + + queueresume command (S) + This parameter specifies the command to be + executed on the server host in order to resume the printer queue. It + is the command to undo the behavior that is caused by the + previous parameter ( + queuepause command). + + This command should be a program or script which takes + a printer name as its only parameter and resumes the printer queue, + such that queued jobs are resubmitted to the printer. + + This command is not supported by Windows for Workgroups, + but can be issued from the Printers window under Windows 95 + and NT. + + If a %p is given then the printer name + is put in its place. Otherwise it is placed at the end of the + command. + + Note that it is good practice to include the absolute + path in the command as the PATH may not be available to the + server. + + Default: depends on the setting of printing + + + Example: queuepause command = enable %p + + + diff --git a/docs/docbook/smbdotconf/printing/showaddprinterwizard.xml b/docs/docbook/smbdotconf/printing/showaddprinterwizard.xml new file mode 100644 index 00000000000..9bf5160ad59 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/showaddprinterwizard.xml @@ -0,0 +1,31 @@ + + show add printer wizard (G) + With the introduction of MS-RPC based printing support + for Windows NT/2000 client in Samba 2.2, a "Printers..." folder will + appear on Samba hosts in the share listing. Normally this folder will + contain an icon for the MS Add Printer Wizard (APW). However, it is + possible to disable this feature regardless of the level of privilege + of the connected user. + + Under normal circumstances, the Windows NT/2000 client will + open a handle on the printer server with OpenPrinterEx() asking for + Administrator privileges. If the user does not have administrative + access on the print server (i.e is not root or a member of the + printer admin group), the OpenPrinterEx() + call fails and the client makes another open call with a request for + a lower privilege level. This should succeed, however the APW + icon will not be displayed. + + Disabling the show add printer wizard + parameter will always cause the OpenPrinterEx() on the server + to fail. Thus the APW icon will never be displayed. + Note :This does not prevent the same user from having + administrative privilege on an individual printer. + + See also addprinter + command, + deleteprinter command, printer admin + + Default :show add printer wizard = yes + + diff --git a/docs/docbook/smbdotconf/printing/totalprintjobs.xml b/docs/docbook/smbdotconf/printing/totalprintjobs.xml new file mode 100644 index 00000000000..25784a3c299 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/totalprintjobs.xml @@ -0,0 +1,18 @@ + + total print jobs (G) + This parameter accepts an integer value which defines + a limit on the maximum number of print jobs that will be accepted + system wide at any given time. If a print job is submitted + by a client which will exceed this number, then smbd + 8 will return an + error indicating that no space is available on the server. The + default value of 0 means that no such limit exists. This parameter + can be used to prevent a server from exceeding its capacity and is + designed as a printing throttle. See also + max print jobs. + + + Default: total print jobs = 0 + Example: total print jobs = 5000 + + diff --git a/docs/docbook/smbdotconf/printing/useclientdriver.xml b/docs/docbook/smbdotconf/printing/useclientdriver.xml new file mode 100644 index 00000000000..8327d0aaa44 --- /dev/null +++ b/docs/docbook/smbdotconf/printing/useclientdriver.xml @@ -0,0 +1,35 @@ + + use client driver (S) + This parameter applies only to Windows NT/2000 + clients. It has no affect on Windows 95/98/ME clients. When + serving a printer to Windows NT/2000 clients without first installing + a valid printer driver on the Samba host, the client will be required + to install a local printer driver. From this point on, the client + will treat the print as a local printer and not a network printer + connection. This is much the same behavior that will occur + when disable spoolss = yes. + + The differentiating + factor is that under normal circumstances, the NT/2000 client will + attempt to open the network printer using MS-RPC. The problem is that + because the client considers the printer to be local, it will attempt + to issue the OpenPrinterEx() call requesting access rights associated + with the logged on user. If the user possesses local administator rights + but not root privilegde on the Samba host (often the case), the OpenPrinterEx() + call will fail. The result is that the client will now display an "Access + Denied; Unable to connect" message in the printer queue window (even though + jobs may successfully be printed). + + If this parameter is enabled for a printer, then any attempt + to open the printer with the PRINTER_ACCESS_ADMINISTER right is mapped + to PRINTER_ACCESS_USE instead. Thus allowing the OpenPrinterEx() + call to succeed. This parameter MUST not be able enabled + on a print share which has valid print driver installed on the Samba + server. + + See also disable spoolss + + + Default: use client driver = no + + diff --git a/docs/docbook/smbdotconf/process-all.sh b/docs/docbook/smbdotconf/process-all.sh new file mode 100755 index 00000000000..6d8c9941b4a --- /dev/null +++ b/docs/docbook/smbdotconf/process-all.sh @@ -0,0 +1,15 @@ +#!/bin/sh +sh generate-file-list.sh >parameters.all.xml + +xsltproc --xinclude \ + --param smb.context "'G'" \ + --output parameters.global.xml \ + generate-context.xsl parameters.all.xml + +xsltproc --xinclude \ + --param smb.context "'S'" \ + --output parameters.service.xml \ + generate-context.xsl parameters.all.xml + +xsltproc --xinclude expand-smb.conf.xsl smb.conf.5.xml | \ +xsltproc http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl - diff --git a/docs/docbook/smbdotconf/protocol/announceas.xml b/docs/docbook/smbdotconf/protocol/announceas.xml new file mode 100644 index 00000000000..1f3169609ca --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/announceas.xml @@ -0,0 +1,18 @@ + + announce as (G) + This specifies what type of server nmbd + 8 will announce itself as, to a network neighborhood browse + list. By default this is set to Windows NT. The valid options + are : "NT Server" (which can also be written as "NT"), + "NT Workstation", "Win95" or "WfW" meaning Windows NT Server, + Windows NT Workstation, Windows 95 and Windows for Workgroups + respectively. Do not change this parameter unless you have a + specific need to stop Samba appearing as an NT server as this + may prevent Samba servers from participating as browser servers + correctly. + + Default: announce as = NT Server + + Example: announce as = Win95 + + diff --git a/docs/docbook/smbdotconf/protocol/announceversion.xml b/docs/docbook/smbdotconf/protocol/announceversion.xml new file mode 100644 index 00000000000..03ad429dbd5 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/announceversion.xml @@ -0,0 +1,12 @@ + + announce version (G) + This specifies the major and minor version numbers + that nmbd will use when announcing itself as a server. The default + is 4.9. Do not change this parameter unless you have a specific + need to set a Samba server to be a downlevel server. + + Default: announce version = 4.9 + + Example: announce version = 2.0 + + diff --git a/docs/docbook/smbdotconf/protocol/disablenetbios.xml b/docs/docbook/smbdotconf/protocol/disablenetbios.xml new file mode 100644 index 00000000000..ac97cdf7c3f --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/disablenetbios.xml @@ -0,0 +1,14 @@ + + disable netbios (G) + Enabling this parameter will disable netbios support + in Samba. Netbios is the only available form of browsing in + all windows versions except for 2000 and XP. + + Note that clients that only support netbios won't be able to + see your samba server when netbios support is disabled. + + + Default: disable netbios = no + Example: disable netbios = yes + + diff --git a/docs/docbook/smbdotconf/protocol/largereadwrite.xml b/docs/docbook/smbdotconf/protocol/largereadwrite.xml new file mode 100644 index 00000000000..9aa28593e63 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/largereadwrite.xml @@ -0,0 +1,15 @@ + + large readwrite (G) + This parameter determines whether or not smbd + 8 supports the new 64k streaming + read and write varient SMB requests introduced + with Windows 2000. Note that due to Windows 2000 client redirector bugs + this requires Samba to be running on a 64-bit capable operating system such + as IRIX, Solaris or a Linux 2.4 kernel. Can improve performance by 10% with + Windows 2000 clients. Defaults to on. Not as tested as some other Samba + code paths. + + + Default : large readwrite = yes + + diff --git a/docs/docbook/smbdotconf/protocol/maxmux.xml b/docs/docbook/smbdotconf/protocol/maxmux.xml new file mode 100644 index 00000000000..51296e0747e --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/maxmux.xml @@ -0,0 +1,9 @@ + + max mux (G) + This option controls the maximum number of + outstanding simultaneous SMB operations that Samba tells the client + it will allow. You should never need to set this parameter. + + Default: max mux = 50 + + diff --git a/docs/docbook/smbdotconf/protocol/maxprotocol.xml b/docs/docbook/smbdotconf/protocol/maxprotocol.xml new file mode 100644 index 00000000000..be859f8ee33 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/maxprotocol.xml @@ -0,0 +1,35 @@ + + max protocol (G) + The value of the parameter (a string) is the highest + protocol level that will be supported by the server. + + Possible values are : + + CORE: Earliest version. No + concept of user names. + + COREPLUS: Slight improvements on + CORE for efficiency. + + LANMAN1: First + modern version of the protocol. Long filename + support. + + LANMAN2: Updates to Lanman1 protocol. + + + NT1: Current up to date version of + the protocol. Used by Windows NT. Known as CIFS. + + + Normally this option should not be set as the automatic + negotiation phase in the SMB protocol takes care of choosing + the appropriate protocol. + + See also min + protocol + + Default: max protocol = NT1 + Example: max protocol = LANMAN1 + + diff --git a/docs/docbook/smbdotconf/protocol/maxttl.xml b/docs/docbook/smbdotconf/protocol/maxttl.xml new file mode 100644 index 00000000000..04c6771308f --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/maxttl.xml @@ -0,0 +1,12 @@ + + max ttl (G) + This option tells nmbd + 8 + what the default 'time to live' of NetBIOS names should be (in seconds) + when nmbd is requesting a name using either a + broadcast packet or from a WINS server. You should never need to + change this parameter. The default is 3 days. + + Default: max ttl = 259200 + + diff --git a/docs/docbook/smbdotconf/protocol/maxwinsttl.xml b/docs/docbook/smbdotconf/protocol/maxwinsttl.xml new file mode 100644 index 00000000000..c8e2d9df8df --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/maxwinsttl.xml @@ -0,0 +1,15 @@ + + max wins ttl (G) + This option tells smbd + 8 when acting as a WINS server ( + wins support = yes) what the maximum + 'time to live' of NetBIOS names that nmbd + will grant will be (in seconds). You should never need to change this + parameter. The default is 6 days (518400 seconds). + + See also the min + wins ttl parameter. + + Default: max wins ttl = 518400 + + diff --git a/docs/docbook/smbdotconf/protocol/maxxmit.xml b/docs/docbook/smbdotconf/protocol/maxxmit.xml new file mode 100644 index 00000000000..c16cf476552 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/maxxmit.xml @@ -0,0 +1,12 @@ + + max xmit (G) + This option controls the maximum packet size + that will be negotiated by Samba. The default is 65535, which + is the maximum. In some cases you may find you get better performance + with a smaller value. A value below 2048 is likely to cause problems. + + + Default: max xmit = 65535 + Example: max xmit = 8192 + + diff --git a/docs/docbook/smbdotconf/protocol/minprotocol.xml b/docs/docbook/smbdotconf/protocol/minprotocol.xml new file mode 100644 index 00000000000..6b1d420a4b7 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/minprotocol.xml @@ -0,0 +1,20 @@ + + min protocol (G) + The value of the parameter (a string) is the + lowest SMB protocol dialect than Samba will support. Please refer + to the max protocol + parameter for a list of valid protocol names and a brief description + of each. You may also wish to refer to the C source code in + source/smbd/negprot.c for a listing of known protocol + dialects supported by clients. + + If you are viewing this parameter as a security measure, you should + also refer to the lanman + auth parameter. Otherwise, you should never need + to change this parameter. + + Default : min protocol = CORE + Example : min protocol = NT1 # disable DOS + clients + + diff --git a/docs/docbook/smbdotconf/protocol/minwinsttl.xml b/docs/docbook/smbdotconf/protocol/minwinsttl.xml new file mode 100644 index 00000000000..e67c253f2e6 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/minwinsttl.xml @@ -0,0 +1,13 @@ + + min wins ttl (G) + This option tells nmbd + 8 + when acting as a WINS server ( + wins support = yes) what the minimum 'time to live' + of NetBIOS names that nmbd will grant will be (in + seconds). You should never need to change this parameter. The default + is 6 hours (21600 seconds). + + Default: min wins ttl = 21600 + + diff --git a/docs/docbook/smbdotconf/protocol/nameresolveorder.xml b/docs/docbook/smbdotconf/protocol/nameresolveorder.xml new file mode 100644 index 00000000000..a5dd8939029 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/nameresolveorder.xml @@ -0,0 +1,47 @@ + + name resolve order (G) + This option is used by the programs in the Samba + suite to determine what naming services to use and in what order + to resolve host names to IP addresses. The option takes a space + separated string of name resolution options. + + The options are :"lmhosts", "host", "wins" and "bcast". They + cause names to be resolved as follows : + + + lmhosts : Lookup an IP + address in the Samba lmhosts file. If the line in lmhosts has + no name type attached to the NetBIOS name (see the lmhosts(5) for details) then + any name type matches for lookup. + + host : Do a standard host + name to IP address resolution, using the system /etc/hosts + , NIS, or DNS lookups. This method of name resolution + is operating system depended for instance on IRIX or Solaris this + may be controlled by the /etc/nsswitch.conf + file. Note that this method is only used if the NetBIOS name + type being queried is the 0x20 (server) name type, otherwise + it is ignored. + + wins : Query a name with + the IP address listed in the + wins server parameter. If no WINS server has + been specified this method will be ignored. + + bcast : Do a broadcast on + each of the known local interfaces listed in the interfaces + parameter. This is the least reliable of the name resolution + methods as it depends on the target host being on a locally + connected subnet. + + + Default: name resolve order = lmhosts host wins bcast + + Example: name resolve order = lmhosts bcast host + + + This will cause the local lmhosts file to be examined + first, followed by a broadcast attempt, followed by a normal + system hostname lookup. + + diff --git a/docs/docbook/smbdotconf/protocol/ntaclsupport.xml b/docs/docbook/smbdotconf/protocol/ntaclsupport.xml new file mode 100644 index 00000000000..df0d8dc0689 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/ntaclsupport.xml @@ -0,0 +1,11 @@ + + nt acl support (S) + This boolean parameter controls whether + smbd(8) will attempt to map + UNIX permissions into Windows NT access control lists. + This parameter was formally a global parameter in releases + prior to 2.2.2. + + Default: nt acl support = yes + + diff --git a/docs/docbook/smbdotconf/protocol/ntpipesupport.xml b/docs/docbook/smbdotconf/protocol/ntpipesupport.xml new file mode 100644 index 00000000000..cab20328471 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/ntpipesupport.xml @@ -0,0 +1,12 @@ + + nt pipe support (G) + This boolean parameter controls whether + smbd + 8 will allow Windows NT + clients to connect to the NT SMB specific IPC$ + pipes. This is a developer debugging option and can be left + alone. + + Default: nt pipe support = yes + + diff --git a/docs/docbook/smbdotconf/protocol/ntstatussupport.xml b/docs/docbook/smbdotconf/protocol/ntstatussupport.xml new file mode 100644 index 00000000000..17dafa47c53 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/ntstatussupport.xml @@ -0,0 +1,14 @@ + + nt status support (G) + This boolean parameter controls whether smbd(8) will negotiate NT specific status + support with Windows NT/2k/XP clients. This is a developer + debugging option and should be left alone. + If this option is set to no then Samba offers + exactly the same DOS error codes that versions prior to Samba 2.2.3 + reported. + + You should not need to ever disable this parameter. + + Default: nt status support = yes + + diff --git a/docs/docbook/smbdotconf/protocol/protocol.xml b/docs/docbook/smbdotconf/protocol/protocol.xml new file mode 100644 index 00000000000..5161806cfc6 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/protocol.xml @@ -0,0 +1,5 @@ + + protocol (G) + Synonym for + max protocol. + diff --git a/docs/docbook/smbdotconf/protocol/readbmpx.xml b/docs/docbook/smbdotconf/protocol/readbmpx.xml new file mode 100644 index 00000000000..0bc8f1d10bf --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/readbmpx.xml @@ -0,0 +1,10 @@ + + read bmpx (G) + This boolean parameter controls whether smbd(8) will support the "Read + Block Multiplex" SMB. This is now rarely used and defaults to + no. You should never need to set this + parameter. + + Default: read bmpx = no + + diff --git a/docs/docbook/smbdotconf/protocol/readraw.xml b/docs/docbook/smbdotconf/protocol/readraw.xml new file mode 100644 index 00000000000..b867816e842 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/readraw.xml @@ -0,0 +1,21 @@ + + read raw (G) + This parameter controls whether or not the server + will support the raw read SMB requests when transferring data + to clients. + + If enabled, raw reads allow reads of 65535 bytes in + one packet. This typically provides a major performance benefit. + + + However, some clients either negotiate the allowable + block size incorrectly or are incapable of supporting larger block + sizes, and for these clients you may need to disable raw reads. + + In general this parameter should be viewed as a system tuning + tool and left severely alone. See also + write raw. + + Default: read raw = yes + + diff --git a/docs/docbook/smbdotconf/protocol/smbports.xml b/docs/docbook/smbdotconf/protocol/smbports.xml new file mode 100644 index 00000000000..ed088ab9d21 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/smbports.xml @@ -0,0 +1,10 @@ + + smb ports (G) + Specifies which ports the server should listen on + for SMB traffic. + + + Default: smb ports = 445 139 + + + diff --git a/docs/docbook/smbdotconf/protocol/timeserver.xml b/docs/docbook/smbdotconf/protocol/timeserver.xml new file mode 100644 index 00000000000..eb1a720a8d7 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/timeserver.xml @@ -0,0 +1,9 @@ + + time server (G) + This parameter determines if nmbd + 8 advertises itself as a time server to Windows + clients. + + Default: time server = no + + diff --git a/docs/docbook/smbdotconf/protocol/unicode.xml b/docs/docbook/smbdotconf/protocol/unicode.xml new file mode 100644 index 00000000000..866dad28a05 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/unicode.xml @@ -0,0 +1,11 @@ + + unicode (G) + Specifies whether Samba should try + to use unicode on the wire by default. Note: This does NOT + mean that samba will assume that the unix machine uses unicode! + + + Default: unicode = yes + + + diff --git a/docs/docbook/smbdotconf/protocol/unixextensions.xml b/docs/docbook/smbdotconf/protocol/unixextensions.xml new file mode 100644 index 00000000000..d0adde9d27e --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/unixextensions.xml @@ -0,0 +1,12 @@ + + unix extensions(G) + This boolean parameter controls whether Samba + implments the CIFS UNIX extensions, as defined by HP. + These extensions enable Samba to better serve UNIX CIFS clients + by supporting features such as symbolic links, hard links, etc... + These extensions require a similarly enabled client, and are of + no current use to Windows clients. + + Default: unix extensions = no + + diff --git a/docs/docbook/smbdotconf/protocol/usespnego.xml b/docs/docbook/smbdotconf/protocol/usespnego.xml new file mode 100644 index 00000000000..9e3c873a4b1 --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/usespnego.xml @@ -0,0 +1,11 @@ + + use spnego (G) + This variable controls controls whether samba will try + to use Simple and Protected NEGOciation (as specified by rfc2478) with + WindowsXP and Windows2000sp2 clients to agree upon an authentication mechanism. + Unless further issues are discovered with our SPNEGO + implementation, there is no reason this should ever be + disabled. + Default: use spnego = yes + + diff --git a/docs/docbook/smbdotconf/protocol/writeraw.xml b/docs/docbook/smbdotconf/protocol/writeraw.xml new file mode 100644 index 00000000000..dbaad0130ec --- /dev/null +++ b/docs/docbook/smbdotconf/protocol/writeraw.xml @@ -0,0 +1,9 @@ + + write raw (G) + This parameter controls whether or not the server + will support raw write SMB's when transferring data from clients. + You should never need to change this parameter. + + Default: write raw = yes + + diff --git a/docs/docbook/smbdotconf/security/adminusers.xml b/docs/docbook/smbdotconf/security/adminusers.xml new file mode 100644 index 00000000000..2e1abaf6e15 --- /dev/null +++ b/docs/docbook/smbdotconf/security/adminusers.xml @@ -0,0 +1,15 @@ + + admin users (S) + This is a list of users who will be granted + administrative privileges on the share. This means that they + will do all file operations as the super-user (root). + + You should use this option very carefully, as any user in + this list will be able to do anything they like on the share, + irrespective of file permissions. + + Default: no admin users + + Example: admin users = jason + + diff --git a/docs/docbook/smbdotconf/security/algorithmicridbase.xml b/docs/docbook/smbdotconf/security/algorithmicridbase.xml new file mode 100644 index 00000000000..3c2bf8686eb --- /dev/null +++ b/docs/docbook/smbdotconf/security/algorithmicridbase.xml @@ -0,0 +1,22 @@ + + algorithmic rid base (G) + This determines how Samba will use its + algorithmic mapping from uids/gid to the RIDs needed to construct + NT Security Identifiers. + + Setting this option to a larger value could be useful to sites + transitioning from WinNT and Win2k, as existing user and + group rids would otherwise clash with sytem users etc. + + + All UIDs and GIDs must be able to be resolved into SIDs for + the correct operation of ACLs on the server. As such the algorithmic + mapping can't be 'turned off', but pushing it 'out of the way' should + resolve the issues. Users and groups can then be assigned 'low' RIDs + in arbitary-rid supporting backends. + + Default: algorithmic rid base = 1000 + + Example: algorithmic rid base = 100000 + + diff --git a/docs/docbook/smbdotconf/security/allowhosts.xml b/docs/docbook/smbdotconf/security/allowhosts.xml new file mode 100644 index 00000000000..7fd2f426f8e --- /dev/null +++ b/docs/docbook/smbdotconf/security/allowhosts.xml @@ -0,0 +1,5 @@ + + allow hosts (S) + Synonym for + hosts allow. + diff --git a/docs/docbook/smbdotconf/security/allowtrusteddomains.xml b/docs/docbook/smbdotconf/security/allowtrusteddomains.xml new file mode 100644 index 00000000000..35dcd76cbda --- /dev/null +++ b/docs/docbook/smbdotconf/security/allowtrusteddomains.xml @@ -0,0 +1,22 @@ + + allow trusted domains (G) + This option only takes effect when the security option is set to + server or domain. + If it is set to no, then attempts to connect to a resource from + a domain or workgroup other than the one which smbd is running + in will fail, even if that domain is trusted by the remote server + doing the authentication. + + This is useful if you only want your Samba server to + serve resources to users in the domain it is a member of. As + an example, suppose that there are two domains DOMA and DOMB. DOMB + is trusted by DOMA, which contains the Samba server. Under normal + circumstances, a user with an account in DOMB can then access the + resources of a UNIX account with the same account name on the + Samba server even if they do not have an account in DOMA. This + can make implementing a security boundary difficult. + + Default: allow trusted domains = yes + + + diff --git a/docs/docbook/smbdotconf/security/authmethods.xml b/docs/docbook/smbdotconf/security/authmethods.xml new file mode 100644 index 00000000000..2e569558a09 --- /dev/null +++ b/docs/docbook/smbdotconf/security/authmethods.xml @@ -0,0 +1,16 @@ + + auth methods (G) + This option allows the administrator to chose what + authentication methods smbd will use when authenticating + a user. This option defaults to sensible values based on + security. + + Each entry in the list attempts to authenticate the user in turn, until + the user authenticates. In practice only one method will ever actually + be able to complete the authentication. + + + Default: auth methods = <empty string> + Example: auth methods = guest sam ntdomain + + diff --git a/docs/docbook/smbdotconf/security/createmask.xml b/docs/docbook/smbdotconf/security/createmask.xml new file mode 100644 index 00000000000..9a197bf7c31 --- /dev/null +++ b/docs/docbook/smbdotconf/security/createmask.xml @@ -0,0 +1,39 @@ + + create mask (S) + A synonym for this parameter is + create mode + . + + When a file is created, the necessary permissions are + calculated according to the mapping from DOS modes to UNIX + permissions, and the resulting UNIX mode is then bit-wise 'AND'ed + with this parameter. This parameter may be thought of as a bit-wise + MASK for the UNIX modes of a file. Any bit not + set here will be removed from the modes set on a file when it is + created. + + The default value of this parameter removes the + 'group' and 'other' write and execute bits from the UNIX modes. + + Following this Samba will bit-wise 'OR' the UNIX mode created + from this parameter with the value of the force create mode + parameter which is set to 000 by default. + + This parameter does not affect directory modes. See the + parameter directory mode + for details. + + See also the force + create mode parameter for forcing particular mode + bits to be set on created files. See also the + directory mode parameter for masking + mode bits on created directories. See also the + inherit permissions parameter. + + Note that this parameter does not apply to permissions + set by Windows NT/2000 ACL editors. If the administrator wishes to enforce + a mask on access control lists also, they need to set the security mask. + + Default: create mask = 0744 + Example: create mask = 0775 + diff --git a/docs/docbook/smbdotconf/security/createmode.xml b/docs/docbook/smbdotconf/security/createmode.xml new file mode 100644 index 00000000000..7e78ab01811 --- /dev/null +++ b/docs/docbook/smbdotconf/security/createmode.xml @@ -0,0 +1,5 @@ + + create mode (S) + This is a synonym for + create mask. + diff --git a/docs/docbook/smbdotconf/security/denyhosts.xml b/docs/docbook/smbdotconf/security/denyhosts.xml new file mode 100644 index 00000000000..f50fb33d336 --- /dev/null +++ b/docs/docbook/smbdotconf/security/denyhosts.xml @@ -0,0 +1,5 @@ + + deny hosts (S) + Synonym for hosts + deny. + diff --git a/docs/docbook/smbdotconf/security/directorymask.xml b/docs/docbook/smbdotconf/security/directorymask.xml new file mode 100644 index 00000000000..0844733edec --- /dev/null +++ b/docs/docbook/smbdotconf/security/directorymask.xml @@ -0,0 +1,43 @@ + + directory mask (S) + This parameter is the octal modes which are + used when converting DOS modes to UNIX modes when creating UNIX + directories. + + When a directory is created, the necessary permissions are + calculated according to the mapping from DOS modes to UNIX permissions, + and the resulting UNIX mode is then bit-wise 'AND'ed with this + parameter. This parameter may be thought of as a bit-wise MASK for + the UNIX modes of a directory. Any bit not set + here will be removed from the modes set on a directory when it is + created. + + The default value of this parameter removes the 'group' + and 'other' write bits from the UNIX mode, allowing only the + user who owns the directory to modify it. + + Following this Samba will bit-wise 'OR' the UNIX mode + created from this parameter with the value of the force directory mode + parameter. This parameter is set to 000 by + default (i.e. no extra mode bits are added). + + Note that this parameter does not apply to permissions + set by Windows NT/2000 ACL editors. If the administrator wishes to enforce + a mask on access control lists also, they need to set the directory security mask. + + See the force + directory mode parameter to cause particular mode + bits to always be set on created directories. + + See also the create mode + parameter for masking mode bits on created files, + and the directory + security mask parameter. + + Also refer to the + inherit permissions parameter. + + Default: directory mask = 0755 + Example: directory mask = 0775 + + diff --git a/docs/docbook/smbdotconf/security/directorymode.xml b/docs/docbook/smbdotconf/security/directorymode.xml new file mode 100644 index 00000000000..9678cd91ad4 --- /dev/null +++ b/docs/docbook/smbdotconf/security/directorymode.xml @@ -0,0 +1,5 @@ + + directory mode (S) + Synonym for + directory mask + diff --git a/docs/docbook/smbdotconf/security/directorysecuritymask.xml b/docs/docbook/smbdotconf/security/directorysecuritymask.xml new file mode 100644 index 00000000000..76d153f6f4d --- /dev/null +++ b/docs/docbook/smbdotconf/security/directorysecuritymask.xml @@ -0,0 +1,32 @@ + + directory security mask (S) + This parameter controls what UNIX permission bits + can be modified when a Windows NT client is manipulating the UNIX + permission on a directory using the native NT security dialog + box. + + This parameter is applied as a mask (AND'ed with) to + the changed permission bits, thus preventing any bits not in + this mask from being modified. Essentially, zero bits in this + mask may be treated as a set of bits the user is not allowed + to change. + + If not set explicitly this parameter is set to 0777 + meaning a user is allowed to modify all the user/group/world + permissions on a directory. + + Note that users who can access the + Samba server through other means can easily bypass this restriction, + so it is primarily useful for standalone "appliance" systems. + Administrators of most normal systems will probably want to leave + it as the default of 0777. + + See also the + force directory security mode, security mask, + force security mode + parameters. + + Default: directory security mask = 0777 + Example: directory security mask = 0700 + + diff --git a/docs/docbook/smbdotconf/security/encryptpasswords.xml b/docs/docbook/smbdotconf/security/encryptpasswords.xml new file mode 100644 index 00000000000..d7ceb8d5986 --- /dev/null +++ b/docs/docbook/smbdotconf/security/encryptpasswords.xml @@ -0,0 +1,21 @@ + + encrypt passwords (G) + This boolean controls whether encrypted passwords + will be negotiated with the client. Note that Windows NT 4.0 SP3 and + above and also Windows 98 will by default expect encrypted passwords + unless a registry entry is changed. To use encrypted passwords in + Samba see the file ENCRYPTION.txt in the Samba documentation + directory docs/ shipped with the source code. + + In order for encrypted passwords to work correctly + smbd + 8 must either + have access to a local smbpasswd + 5 file (see the smbpasswd + 8 program for information on how to set up + and maintain this file), or set the security = [server|domain|ads] parameter which + causes smbd to authenticate against another + server. + + Default: encrypt passwords = yes + diff --git a/docs/docbook/smbdotconf/security/forcecreatemode.xml b/docs/docbook/smbdotconf/security/forcecreatemode.xml new file mode 100644 index 00000000000..238340d7c5f --- /dev/null +++ b/docs/docbook/smbdotconf/security/forcecreatemode.xml @@ -0,0 +1,25 @@ + + force create mode (S) + This parameter specifies a set of UNIX mode bit + permissions that will always be set on a + file created by Samba. This is done by bitwise 'OR'ing these bits onto + the mode bits of a file that is being created or having its + permissions changed. The default for this parameter is (in octal) + 000. The modes in this parameter are bitwise 'OR'ed onto the file + mode after the mask set in the create mask + parameter is applied. + + See also the parameter create + mask for details on masking mode bits on files. + + See also the inherit + permissions parameter. + + Default: force create mode = 000 + Example: force create mode = 0755 + + would force all created files to have read and execute + permissions set for 'group' and 'other' as well as the + read/write/execute bits set for the 'user'. + + diff --git a/docs/docbook/smbdotconf/security/forcedirectorymode.xml b/docs/docbook/smbdotconf/security/forcedirectorymode.xml new file mode 100644 index 00000000000..460a7fc6f28 --- /dev/null +++ b/docs/docbook/smbdotconf/security/forcedirectorymode.xml @@ -0,0 +1,26 @@ + + force directory mode (S) + This parameter specifies a set of UNIX mode bit + permissions that will always be set on a directory + created by Samba. This is done by bitwise 'OR'ing these bits onto the + mode bits of a directory that is being created. The default for this + parameter is (in octal) 0000 which will not add any extra permission + bits to a created directory. This operation is done after the mode + mask in the parameter directory mask is + applied. + + See also the parameter + directory mask for details on masking mode bits + on created directories. + + See also the + inherit permissions parameter. + + Default: force directory mode = 000 + Example: force directory mode = 0755 + + would force all created directories to have read and execute + permissions set for 'group' and 'other' as well as the + read/write/execute bits set for the 'user'. + + diff --git a/docs/docbook/smbdotconf/security/forcedirectorysecuritymode.xml b/docs/docbook/smbdotconf/security/forcedirectorysecuritymode.xml new file mode 100644 index 00000000000..a01b297b055 --- /dev/null +++ b/docs/docbook/smbdotconf/security/forcedirectorysecuritymode.xml @@ -0,0 +1,32 @@ + + force directory security mode (S) + This parameter controls what UNIX permission bits + can be modified when a Windows NT client is manipulating the UNIX + permission on a directory using the native NT security dialog box. + + This parameter is applied as a mask (OR'ed with) to the + changed permission bits, thus forcing any bits in this mask that + the user may have modified to be on. Essentially, one bits in this + mask may be treated as a set of bits that, when modifying security + on a directory, the user has always set to be 'on'. + + If not set explicitly this parameter is 000, which + allows a user to modify all the user/group/world permissions on a + directory without restrictions. + + Note that users who can access the + Samba server through other means can easily bypass this restriction, + so it is primarily useful for standalone "appliance" systems. + Administrators of most normal systems will probably want to leave + it set as 0000. + + See also the + directory security mask, + security mask, + force security mode + parameters. + + Default: force directory security mode = 0 + Example: force directory security mode = 700 + + diff --git a/docs/docbook/smbdotconf/security/forcegroup.xml b/docs/docbook/smbdotconf/security/forcegroup.xml new file mode 100644 index 00000000000..abfec79e030 --- /dev/null +++ b/docs/docbook/smbdotconf/security/forcegroup.xml @@ -0,0 +1,35 @@ + + force group (S) + This specifies a UNIX group name that will be + assigned as the default primary group for all users connecting + to this service. This is useful for sharing files by ensuring + that all access to files on service will use the named group for + their permissions checking. Thus, by assigning permissions for this + group to the files and directories within this service the Samba + administrator can restrict or allow sharing of these files. + + In Samba 2.0.5 and above this parameter has extended + functionality in the following way. If the group name listed here + has a '+' character prepended to it then the current user accessing + the share only has the primary group default assigned to this group + if they are already assigned as a member of that group. This allows + an administrator to decide that only users who are already in a + particular group will create files with group ownership set to that + group. This gives a finer granularity of ownership assignment. For + example, the setting force group = +sys means + that only users who are already in group sys will have their default + primary group assigned to sys when accessing this Samba share. All + other users will retain their ordinary primary group. + + If the force user + parameter is also set the group specified in + force group will override the primary group + set in force user. + + See also force + user. + + Default: no forced group + Example: force group = agroup + + diff --git a/docs/docbook/smbdotconf/security/forcesecuritymode.xml b/docs/docbook/smbdotconf/security/forcesecuritymode.xml new file mode 100644 index 00000000000..2db50f1ce3f --- /dev/null +++ b/docs/docbook/smbdotconf/security/forcesecuritymode.xml @@ -0,0 +1,33 @@ + + force security mode (S) + This parameter controls what UNIX permission + bits can be modified when a Windows NT client is manipulating + the UNIX permission on a file using the native NT security dialog + box. + + This parameter is applied as a mask (OR'ed with) to the + changed permission bits, thus forcing any bits in this mask that + the user may have modified to be on. Essentially, one bits in this + mask may be treated as a set of bits that, when modifying security + on a file, the user has always set to be 'on'. + + If not set explicitly this parameter is set to 0, + and allows a user to modify all the user/group/world permissions on a file, + with no restrictions. + + Note that users who can access + the Samba server through other means can easily bypass this restriction, + so it is primarily useful for standalone "appliance" systems. + Administrators of most normal systems will probably want to leave + this set to 0000. + + See also the + force directory security mode, + directory security + mask, + security mask parameters. + + Default: force security mode = 0 + Example: force security mode = 700 + + diff --git a/docs/docbook/smbdotconf/security/forceuser.xml b/docs/docbook/smbdotconf/security/forceuser.xml new file mode 100644 index 00000000000..4747db13fea --- /dev/null +++ b/docs/docbook/smbdotconf/security/forceuser.xml @@ -0,0 +1,25 @@ + + force user (S) + This specifies a UNIX user name that will be + assigned as the default user for all users connecting to this service. + This is useful for sharing files. You should also use it carefully + as using it incorrectly can cause security problems. + + This user name only gets used once a connection is established. + Thus clients still need to connect as a valid user and supply a + valid password. Once connected, all file operations will be performed + as the "forced user", no matter what username the client connected + as. This can be very useful. + + In Samba 2.0.5 and above this parameter also causes the + primary group of the forced user to be used as the primary group + for all file activity. Prior to 2.0.5 the primary group was left + as the primary group of the connecting user (this was a bug). + + See also force group + + + Default: no forced user + Example: force user = auser + + diff --git a/docs/docbook/smbdotconf/security/group.xml b/docs/docbook/smbdotconf/security/group.xml new file mode 100644 index 00000000000..afc410ce340 --- /dev/null +++ b/docs/docbook/smbdotconf/security/group.xml @@ -0,0 +1,5 @@ + + group (S) + Synonym for force + group. + diff --git a/docs/docbook/smbdotconf/security/guestaccount.xml b/docs/docbook/smbdotconf/security/guestaccount.xml new file mode 100644 index 00000000000..ab15c4460d1 --- /dev/null +++ b/docs/docbook/smbdotconf/security/guestaccount.xml @@ -0,0 +1,27 @@ + + guest account (S) + This is a username which will be used for access + to services which are specified as + guest ok (see below). Whatever privileges this + user has will be available to any client connecting to the guest service. + Typically this user will exist in the password file, but will not + have a valid login. The user account "ftp" is often a good choice + for this parameter. If a username is specified in a given service, + the specified username overrides this one. + + One some systems the default guest account "nobody" may not + be able to print. Use another account in this case. You should test + this by trying to log in as your guest user (perhaps by using the + su - command) and trying to print using the + system print command such as lpr(1) or + lp(1). + + This parameter does not accept % macros, because + many parts of the system require this value to be + constant for correct operation. + + Default: specified at compile time, usually + "nobody" + + Example: guest account = ftp + diff --git a/docs/docbook/smbdotconf/security/guestok.xml b/docs/docbook/smbdotconf/security/guestok.xml new file mode 100644 index 00000000000..2b7a8cee8a0 --- /dev/null +++ b/docs/docbook/smbdotconf/security/guestok.xml @@ -0,0 +1,17 @@ + + guest ok (S) + If this parameter is yes for + a service, then no password is required to connect to the service. + Privileges will be those of the + guest account. + + This paramater nullifies the benifits of setting + restrict + anonymous = 2 + + See the section below on + security for more information about this option. + + + Default: guest ok = no + diff --git a/docs/docbook/smbdotconf/security/guestonly.xml b/docs/docbook/smbdotconf/security/guestonly.xml new file mode 100644 index 00000000000..ac7f62ad68a --- /dev/null +++ b/docs/docbook/smbdotconf/security/guestonly.xml @@ -0,0 +1,13 @@ + + guest only (S) + If this parameter is yes for + a service, then only guest connections to the service are permitted. + This parameter will have no effect if + guest ok is not set for the service. + + See the section below on + security for more information about this option. + + + Default: guest only = no + diff --git a/docs/docbook/smbdotconf/security/hostsallow.xml b/docs/docbook/smbdotconf/security/hostsallow.xml new file mode 100644 index 00000000000..ea91b739039 --- /dev/null +++ b/docs/docbook/smbdotconf/security/hostsallow.xml @@ -0,0 +1,60 @@ + + hosts allow (S) + A synonym for this parameter is allow + hosts. + + This parameter is a comma, space, or tab delimited + set of hosts which are permitted to access a service. + + If specified in the [global] section then it will + apply to all services, regardless of whether the individual + service has a different setting. + + You can specify the hosts by name or IP number. For + example, you could restrict access to only the hosts on a + Class C subnet with something like allow hosts = 150.203.5. + . The full syntax of the list is described in the man + page hosts_access(5). Note that this man + page may not be present on your system, so a brief description will + be given here also. + + Note that the localhost address 127.0.0.1 will always + be allowed access unless specifically denied by a hosts deny option. + + You can also specify hosts by network/netmask pairs and + by netgroup names if your system supports netgroups. The + EXCEPT keyword can also be used to limit a + wildcard list. The following examples may provide some help: + + Example 1: allow all IPs in 150.203.*.*; except one + + hosts allow = 150.203. EXCEPT 150.203.6.66 + + Example 2: allow hosts that match the given network/netmask + + hosts allow = 150.203.15.0/255.255.255.0 + + Example 3: allow a couple of hosts + + hosts allow = lapland, arvidsjaur + + Example 4: allow only hosts in NIS netgroup "foonet", but + deny access from one particular host + + hosts allow = @foonet + + hosts deny = pirate + + Note that access still requires suitable user-level passwords. + + See testparm + 1 for a way of testing your host access + to see if it does what you expect. + + Default: none (i.e., all hosts permitted access) + + + Example: allow hosts = 150.203.5. myhost.mynet.edu.au + + + diff --git a/docs/docbook/smbdotconf/security/hostsdeny.xml b/docs/docbook/smbdotconf/security/hostsdeny.xml new file mode 100644 index 00000000000..f37e2b7e4df --- /dev/null +++ b/docs/docbook/smbdotconf/security/hostsdeny.xml @@ -0,0 +1,14 @@ + + hosts deny (S) + The opposite of hosts allow + - hosts listed here are NOT permitted access to + services unless the specific services have their own lists to override + this one. Where the lists conflict, the allow + list takes precedence. + + Default: none (i.e., no hosts specifically excluded) + + + Example: hosts deny = 150.203.4. badhost.mynet.edu.au + + diff --git a/docs/docbook/smbdotconf/security/hostsequiv.xml b/docs/docbook/smbdotconf/security/hostsequiv.xml new file mode 100644 index 00000000000..68d6d628e87 --- /dev/null +++ b/docs/docbook/smbdotconf/security/hostsequiv.xml @@ -0,0 +1,26 @@ + + hosts equiv (G) + If this global parameter is a non-null string, + it specifies the name of a file to read for the names of hosts + and users who will be allowed access without specifying a password. + + + This is not be confused with + hosts allow which is about hosts + access to services and is more useful for guest services. + hosts equiv may be useful for NT clients which will + not supply passwords to Samba. + + NOTE : The use of hosts equiv + can be a major security hole. This is because you are + trusting the PC to supply the correct username. It is very easy to + get a PC to supply a false username. I recommend that the + hosts equiv option be only used if you really + know what you are doing, or perhaps on a home network where you trust + your spouse and kids. And only if you really trust + them :-). + + Default: no host equivalences + Example: hosts equiv = /etc/hosts.equiv + + diff --git a/docs/docbook/smbdotconf/security/inheritacls.xml b/docs/docbook/smbdotconf/security/inheritacls.xml new file mode 100644 index 00000000000..f70c0d91653 --- /dev/null +++ b/docs/docbook/smbdotconf/security/inheritacls.xml @@ -0,0 +1,14 @@ + + inherit acls (S) + This parameter can be used to ensure + that if default acls exist on parent directories, + they are always honored when creating a subdirectory. + The default behavior is to use the mode specified + when creating the directory. Enabling this option + sets the mode to 0777, thus guaranteeing that + default directory acls are propagated. + + + Default: inherit acls = no + + diff --git a/docs/docbook/smbdotconf/security/inheritpermissions.xml b/docs/docbook/smbdotconf/security/inheritpermissions.xml new file mode 100644 index 00000000000..34fade33d02 --- /dev/null +++ b/docs/docbook/smbdotconf/security/inheritpermissions.xml @@ -0,0 +1,36 @@ + + inherit permissions (S) + The permissions on new files and directories + are normally governed by + create mask, + directory mask, force create mode + and force + directory mode but the boolean inherit + permissions parameter overrides this. + + New directories inherit the mode of the parent directory, + including bits such as setgid. + + New files inherit their read/write bits from the parent + directory. Their execute bits continue to be determined by + map archive + , map hidden + and map system + as usual. + + Note that the setuid bit is never set via + inheritance (the code explicitly prohibits this). + + This can be particularly useful on large systems with + many users, perhaps several thousand, to allow a single [homes] + share to be used flexibly by each user. + + See also create mask + , + directory mask, + force create mode and force directory mode + . + + Default: inherit permissions = no + + diff --git a/docs/docbook/smbdotconf/security/invalidusers.xml b/docs/docbook/smbdotconf/security/invalidusers.xml new file mode 100644 index 00000000000..34e534ff286 --- /dev/null +++ b/docs/docbook/smbdotconf/security/invalidusers.xml @@ -0,0 +1,33 @@ + + invalid users (S) + This is a list of users that should not be allowed + to login to this service. This is really a paranoid + check to absolutely ensure an improper setting does not breach + your security. + + A name starting with a '@' is interpreted as an NIS + netgroup first (if your system supports NIS), and then as a UNIX + group if the name was not found in the NIS netgroup database. + + A name starting with '+' is interpreted only + by looking in the UNIX group database. A name starting with + '&' is interpreted only by looking in the NIS netgroup database + (this requires NIS to be working on your system). The characters + '+' and '&' may be used at the start of the name in either order + so the value +&group means check the + UNIX group database, followed by the NIS netgroup database, and + the value &+group means check the NIS + netgroup database, followed by the UNIX group database (the + same as the '@' prefix). + + The current servicename is substituted for %S. + This is useful in the [homes] section. + + See also valid users + . + + Default: no invalid users + Example: invalid users = root fred admin @wheel + + + diff --git a/docs/docbook/smbdotconf/security/lanmanauth.xml b/docs/docbook/smbdotconf/security/lanmanauth.xml new file mode 100644 index 00000000000..851b1ae4ac8 --- /dev/null +++ b/docs/docbook/smbdotconf/security/lanmanauth.xml @@ -0,0 +1,11 @@ + + lanman auth (G) + This parameter determines whether or not smbd + 8 will attempt to authenticate users + using the LANMAN password hash. If disabled, only clients which support NT + password hashes (e.g. Windows NT/2000 clients, smbclient, etc... but not + Windows 95/98 or the MS DOS network client) will be able to connect to the Samba host. + + Default : lanman auth = yes + + diff --git a/docs/docbook/smbdotconf/security/maptoguest.xml b/docs/docbook/smbdotconf/security/maptoguest.xml new file mode 100644 index 00000000000..966260a9b1f --- /dev/null +++ b/docs/docbook/smbdotconf/security/maptoguest.xml @@ -0,0 +1,53 @@ + + map to guest (G) + This parameter is only useful in + security modes other than security = share + - i.e. user, server, + and domain. + + This parameter can take three different values, which tell + smbd + 8 what to do with user + login requests that don't match a valid UNIX user in some way. + + The three settings are : + + + Never - Means user login + requests with an invalid password are rejected. This is the + default. + + Bad User - Means user + logins with an invalid password are rejected, unless the username + does not exist, in which case it is treated as a guest login and + mapped into the + guest account. + + Bad Password - Means user logins + with an invalid password are treated as a guest login and mapped + into the guest account. Note that + this can cause problems as it means that any user incorrectly typing + their password will be silently logged on as "guest" - and + will not know the reason they cannot access files they think + they should - there will have been no message given to them + that they got their password wrong. Helpdesk services will + hate you if you set the map to + guest parameter this way :-). + + + Note that this parameter is needed to set up "Guest" + share services when using security modes other than + share. This is because in these modes the name of the resource being + requested is not sent to the server until after + the server has successfully authenticated the client so the server + cannot make authentication decisions at the correct time (connection + to the share) for "Guest" shares. + + For people familiar with the older Samba releases, this + parameter maps to the old compile-time setting of the + GUEST_SESSSETUP value in local.h. + + Default: map to guest = Never + Example: map to guest = Bad User + + diff --git a/docs/docbook/smbdotconf/security/minpasswdlength.xml b/docs/docbook/smbdotconf/security/minpasswdlength.xml new file mode 100644 index 00000000000..8e52b923fbc --- /dev/null +++ b/docs/docbook/smbdotconf/security/minpasswdlength.xml @@ -0,0 +1,6 @@ + + min passwd length (G) + Synonym for + min password length. + + diff --git a/docs/docbook/smbdotconf/security/minpasswordlength.xml b/docs/docbook/smbdotconf/security/minpasswordlength.xml new file mode 100644 index 00000000000..da1e65a55bc --- /dev/null +++ b/docs/docbook/smbdotconf/security/minpasswordlength.xml @@ -0,0 +1,14 @@ + + min password length (G) + This option sets the minimum length in characters + of a plaintext password that smbd will accept when performing + UNIX password changing. + + See also unix + password sync, + passwd program and passwd chat debug + . + + Default: min password length = 5 + + diff --git a/docs/docbook/smbdotconf/security/nonunixaccountrange.xml b/docs/docbook/smbdotconf/security/nonunixaccountrange.xml new file mode 100644 index 00000000000..a8e426649e6 --- /dev/null +++ b/docs/docbook/smbdotconf/security/nonunixaccountrange.xml @@ -0,0 +1,21 @@ + + non unix account range (G) + The non unix account range parameter specifies + the range of 'user ids' that are allocated by the various 'non unix + account' passdb backends. These backends allow + the storage of passwords for users who don't exist in /etc/passwd. + This is most often used for machine account creation. + This range of ids should have no existing local or NIS users within + it as strange conflicts can occur otherwise. + + NOTE: These userids never appear on the system and Samba will never + 'become' these users. They are used only to ensure that the algorithmic + RID mapping does not conflict with normal users. + + + Default: non unix account range = <empty string> + + + Example: non unix account range = 10000-20000 + + diff --git a/docs/docbook/smbdotconf/security/ntlmauth.xml b/docs/docbook/smbdotconf/security/ntlmauth.xml new file mode 100644 index 00000000000..a3b8caf0627 --- /dev/null +++ b/docs/docbook/smbdotconf/security/ntlmauth.xml @@ -0,0 +1,16 @@ + + ntlm auth (G) + This parameter determines + whether or not smbd + 8 will + attempt to authenticate users using the NTLM password hash. + If disabled, only the lanman password hashes will be used. + + + Please note that at least this option or lanman auth should + be enabled in order to be able to log in. + + + Default : ntlm auth = yes + + diff --git a/docs/docbook/smbdotconf/security/nullpasswords.xml b/docs/docbook/smbdotconf/security/nullpasswords.xml new file mode 100644 index 00000000000..40b687fceb6 --- /dev/null +++ b/docs/docbook/smbdotconf/security/nullpasswords.xml @@ -0,0 +1,11 @@ + + null passwords (G) + Allow or disallow client access to accounts + that have null passwords. + + See also smbpasswd + 5. + + Default: null passwords = no + + diff --git a/docs/docbook/smbdotconf/security/obeypamrestrictions.xml b/docs/docbook/smbdotconf/security/obeypamrestrictions.xml new file mode 100644 index 00000000000..92a6bce22d2 --- /dev/null +++ b/docs/docbook/smbdotconf/security/obeypamrestrictions.xml @@ -0,0 +1,15 @@ + + obey pam restrictions (G) + When Samba 2.2 is configured to enable PAM support + (i.e. --with-pam), this parameter will control whether or not Samba + should obey PAM's account and session management directives. The + default behavior is to use PAM for clear text authentication only + and to ignore any account or session management. Note that Samba + always ignores PAM for authentication in the case of encrypt passwords = yes + . The reason is that PAM modules cannot support the challenge/response + authentication mechanism needed in the presence of SMB password encryption. + + + Default: obey pam restrictions = no + + diff --git a/docs/docbook/smbdotconf/security/onlyguest.xml b/docs/docbook/smbdotconf/security/onlyguest.xml new file mode 100644 index 00000000000..018fa1a0b5d --- /dev/null +++ b/docs/docbook/smbdotconf/security/onlyguest.xml @@ -0,0 +1,6 @@ + + only guest (S) + A synonym for + guest only. + + diff --git a/docs/docbook/smbdotconf/security/onlyuser.xml b/docs/docbook/smbdotconf/security/onlyuser.xml new file mode 100644 index 00000000000..d0bbac7541b --- /dev/null +++ b/docs/docbook/smbdotconf/security/onlyuser.xml @@ -0,0 +1,24 @@ + + only user (S) + This is a boolean option that controls whether + connections with usernames not in the user + list will be allowed. By default this option is disabled so that a + client can supply a username to be used by the server. Enabling + this parameter will force the server to only use the login + names from the user list and is only really + useful in share level + security. + + Note that this also means Samba won't try to deduce + usernames from the service name. This can be annoying for + the [homes] section. To get around this you could use user = + %S which means your user list + will be just the service name, which for home directories is the + name of the user. + + See also the user + parameter. + + Default: only user = no + + diff --git a/docs/docbook/smbdotconf/security/pampasswordchange.xml b/docs/docbook/smbdotconf/security/pampasswordchange.xml new file mode 100644 index 00000000000..8f0e91ae2d9 --- /dev/null +++ b/docs/docbook/smbdotconf/security/pampasswordchange.xml @@ -0,0 +1,16 @@ + + pam password change (G) + With the addition of better PAM support in Samba 2.2, + this parameter, it is possible to use PAM's password change control + flag for Samba. If enabled, then PAM will be used for password + changes when requested by an SMB client instead of the program listed in + passwd program. + It should be possible to enable this without changing your + passwd chat + parameter for most setups. + + + Default: pam password change = no + + + diff --git a/docs/docbook/smbdotconf/security/passdbbackend.xml b/docs/docbook/smbdotconf/security/passdbbackend.xml new file mode 100644 index 00000000000..918c802e789 --- /dev/null +++ b/docs/docbook/smbdotconf/security/passdbbackend.xml @@ -0,0 +1,91 @@ + + passdb backend (G) + This option allows the administrator to chose which backends to retrieve and store passwords with. This allows (for example) both + smbpasswd and tdbsam to be used without a recompile. + Multiple backends can be specified, separated by spaces. The backends will be searched in the order they are specified. New users are always added to the first backend specified. + Experimental backends must still be selected + (eg --with-tdbsam) at configure time. + + + This parameter is in two parts, the backend's name, and a 'location' + string that has meaning only to that particular backed. These are separated + by a : character. + + Available backends can include: + + smbpasswd - The default smbpasswd + backend. Takes a path to the smbpasswd file as an optional argument. + + smbpasswd_nua - The smbpasswd + backend, but with support for 'not unix accounts'. + Takes a path to the smbpasswd file as an optional argument. + See also + non unix account range + + tdbsam - The TDB based password storage + backend. Takes a path to the TDB as an optional argument (defaults to passdb.tdb + in the + private dir directory. + + tdbsam_nua - The TDB based password storage + backend, with non unix account support. Takes a path to the TDB as an optional argument (defaults to passdb.tdb + in the + private dir directory. + See also + non unix account range + + ldapsam - The LDAP based passdb + backend. Takes an LDAP URL as an optional argument (defaults to + ldap://localhost) + + ldapsam_nua - The LDAP based passdb + backend, with non unix account support. Takes an LDAP URL as an optional argument (defaults to + ldap://localhost) + + Note: In this module, any account without a matching POSIX account is regarded + as 'non unix'. + + See also + non unix account + range + + LDAP connections should be secured where + possible. This may be done using either + Start-TLS (see + ldap ssl) or by + specifying ldaps:// in + the URL argument. + + + nisplussam - The NIS+ based passdb backend. Takes name NIS domain as an optional argument. Only works with sun NIS+ servers. + + plugin - Allows Samba to load an + arbitary passdb backend from the .so specified as a compulsary argument. + + + Any characters after the (optional) second : are passed to the plugin + for its own processing + + + unixsam - Allows samba to map all (other) available unix users + + This backend uses the standard unix database for retrieving users. Users included + in this pdb are NOT listed in samba user listings and users included in this pdb won't be + able to login. The use of this backend is to always be able to display the owner of a file + on the samba server - even when the user doesn't have a 'real' samba account in one of the + other passdb backends. + + + This backend should always be the last backend listed, since it contains all users in + the unix passdb and might 'override' mappings if specified earlier. It's meant to only return + accounts for users that aren't covered by the previous backends. + + + + + Default: passdb backend = smbpasswd unixsam + Example: passdb backend = tdbsam:/etc/samba/private/passdb.tdb smbpasswd:/etc/samba/smbpasswd unixsam + Example: passdb backend = ldapsam_nua:ldaps://ldap.example.com unixsam + Example: passdb backend = plugin:/usr/local/samba/lib/my_passdb.so:my_plugin_args tdbsam:/etc/samba/private/passdb.tdb + + diff --git a/docs/docbook/smbdotconf/security/passwdchat.xml b/docs/docbook/smbdotconf/security/passwdchat.xml new file mode 100644 index 00000000000..922f1a878cb --- /dev/null +++ b/docs/docbook/smbdotconf/security/passwdchat.xml @@ -0,0 +1,58 @@ + + passwd chat (G) + This string controls the "chat" + conversation that takes places between smbd + 8 and the local password changing + program to change the user's password. The string describes a + sequence of response-receive pairs that smbd + 8 uses to determine what to send to the + passwd program + and what to expect back. If the expected output is not + received then the password is not changed. + + This chat sequence is often quite site specific, depending + on what local methods are used for password control (such as NIS + etc). + Note that this parameter only is only used if the unix + password sync parameter is set to yes. This + sequence is then called AS ROOT when the SMB password + in the smbpasswd file is being changed, without access to the old + password cleartext. This means that root must be able to reset the user's password + without knowing the text of the previous password. In the presence of NIS/YP, + this means that the passwd program must be + executed on the NIS master. + + + + The string can contain the macro %n which is substituted + for the new password. The chat sequence can also contain the standard + macros \\n, \\r, + \\t and \\s to give line-feed, + carriage-return, tab and space. The chat sequence string can also contain + a '*' which matches any sequence of characters. + Double quotes can be used to collect strings with spaces + in them into a single string. + + If the send string in any part of the chat sequence + is a full stop ".", then no string is sent. Similarly, + if the expect string is a full stop then no string is expected. + + If the pam + password change parameter is set to yes, the chat pairs + may be matched in any order, and success is determined by the PAM result, + not any particular output. The \n macro is ignored for PAM conversions. + + + See also unix password + sync, + passwd program , + passwd chat debug and + pam password change. + + Default: passwd chat = *new*password* %n\\n + *new*password* %n\\n *changed* + Example: passwd chat = "*Enter OLD password*" %o\\n + "*Enter NEW password*" %n\\n "*Reenter NEW password*" %n\\n "*Password + changed*" + + diff --git a/docs/docbook/smbdotconf/security/passwdchatdebug.xml b/docs/docbook/smbdotconf/security/passwdchatdebug.xml new file mode 100644 index 00000000000..a5771b72d28 --- /dev/null +++ b/docs/docbook/smbdotconf/security/passwdchatdebug.xml @@ -0,0 +1,25 @@ + + passwd chat debug (G) + This boolean specifies if the passwd chat script + parameter is run in debug mode. In this mode the + strings passed to and received from the passwd chat are printed + in the smbd + 8 log with a + debug level + of 100. This is a dangerous option as it will allow plaintext passwords + to be seen in the smbd log. It is available to help + Samba admins debug their passwd chat scripts + when calling the passwd program and should + be turned off after this has been done. This option has no effect if the + pam password change + paramter is set. This parameter is off by default. + + + See also passwd chat + , pam password change + , passwd program + . + + Default: passwd chat debug = no + + diff --git a/docs/docbook/smbdotconf/security/passwdprogram.xml b/docs/docbook/smbdotconf/security/passwdprogram.xml new file mode 100644 index 00000000000..dae24e22a19 --- /dev/null +++ b/docs/docbook/smbdotconf/security/passwdprogram.xml @@ -0,0 +1,35 @@ + + passwd program (G) + The name of a program that can be used to set + UNIX user passwords. Any occurrences of %u + will be replaced with the user name. The user name is checked for + existence before calling the password changing program. + + Also note that many passwd programs insist in reasonable + passwords, such as a minimum length, or the inclusion + of mixed case chars and digits. This can pose a problem as some clients + (such as Windows for Workgroups) uppercase the password before sending + it. + + Note that if the unix + password sync parameter is set to yes + then this program is called AS ROOT + before the SMB password in the smbpasswd(5) + file is changed. If this UNIX password change fails, then + smbd will fail to change the SMB password also + (this is by design). + + If the unix password sync parameter + is set this parameter MUST USE ABSOLUTE PATHS + for ALL programs called, and must be examined + for security implications. Note that by default unix + password sync is set to no. + + See also unix + password sync. + + Default: passwd program = /bin/passwd + Example: passwd program = /sbin/npasswd %u + + + diff --git a/docs/docbook/smbdotconf/security/passwordlevel.xml b/docs/docbook/smbdotconf/security/passwordlevel.xml new file mode 100644 index 00000000000..408082f838c --- /dev/null +++ b/docs/docbook/smbdotconf/security/passwordlevel.xml @@ -0,0 +1,40 @@ + + password level (G) + Some client/server combinations have difficulty + with mixed-case passwords. One offending client is Windows for + Workgroups, which for some reason forces passwords to upper + case when using the LANMAN1 protocol, but leaves them alone when + using COREPLUS! Another problem child is the Windows 95/98 + family of operating systems. These clients upper case clear + text passwords even when NT LM 0.12 selected by the protocol + negotiation request/response. + + This parameter defines the maximum number of characters + that may be upper case in passwords. + + For example, say the password given was "FRED". If + password level is set to 1, the following combinations + would be tried if "FRED" failed: + + "Fred", "fred", "fRed", "frEd","freD" + + If password level was set to 2, + the following combinations would also be tried: + + "FRed", "FrEd", "FreD", "fREd", "fReD", "frED", .. + + And so on. + + The higher value this parameter is set to the more likely + it is that a mixed case password will be matched against a single + case password. However, you should be aware that use of this + parameter reduces security and increases the time taken to + process a new connection. + + A value of zero will cause only two attempts to be + made - the password as is and the password in all-lower case. + + Default: password level = 0 + Example: password level = 4 + + diff --git a/docs/docbook/smbdotconf/security/passwordserver.xml b/docs/docbook/smbdotconf/security/passwordserver.xml new file mode 100644 index 00000000000..df50ac8f8a8 --- /dev/null +++ b/docs/docbook/smbdotconf/security/passwordserver.xml @@ -0,0 +1,92 @@ + + password server (G) + By specifying the name of another SMB server (such + as a WinNT box) with this option, and using security = domain + or security = server you can get Samba + to do all its username/password validation via a remote server. + + This option sets the name of the password server to use. + It must be a NetBIOS name, so if the machine's NetBIOS name is + different from its Internet name then you may have to add its NetBIOS + name to the lmhosts file which is stored in the same directory + as the smb.conf file. + + The name of the password server is looked up using the + parameter name + resolve order and so may resolved + by any method and order described in that parameter. + + The password server must be a machine capable of using + the "LM1.2X002" or the "NT LM 0.12" protocol, and it must be in + user level security mode. + + NOTE: Using a password server + means your UNIX box (running Samba) is only as secure as your + password server. DO NOT CHOOSE A PASSWORD SERVER THAT + YOU DON'T COMPLETELY TRUST. + + Never point a Samba server at itself for password + serving. This will cause a loop and could lock up your Samba + server! + + The name of the password server takes the standard + substitutions, but probably the only useful one is %m + , which means the Samba server will use the incoming + client as the password server. If you use this then you better + trust your clients, and you had better restrict them with hosts allow! + + If the security parameter is set to + domain, then the list of machines in this + option must be a list of Primary or Backup Domain controllers for the + Domain or the character '*', as the Samba server is effectively + in that domain, and will use cryptographically authenticated RPC calls + to authenticate the user logging on. The advantage of using + security = domain is that if you list several hosts in the + password server option then smbd + will try each in turn till it finds one that responds. This + is useful in case your primary server goes down. + + If the password server option is set + to the character '*', then Samba will attempt to auto-locate the + Primary or Backup Domain controllers to authenticate against by + doing a query for the name WORKGROUP<1C> + and then contacting each server returned in the list of IP + addresses from the name resolution source. + + If the list of servers contains both names and the '*' + character, the list is treated as a list of preferred + domain controllers, but an auto lookup of all remaining DC's + will be added to the list as well. Samba will not attempt to optimize + this list by locating the closest DC. + + If the security parameter is + set to server, then there are different + restrictions that security = domain doesn't + suffer from: + + + You may list several password servers in + the password server parameter, however if an + smbd makes a connection to a password server, + and then the password server fails, no more users will be able + to be authenticated from this smbd. This is a + restriction of the SMB/CIFS protocol when in security = server + mode and cannot be fixed in Samba. + + If you are using a Windows NT server as your + password server then you will have to ensure that your users + are able to login from the Samba server, as when in + security = server mode the network logon will appear to + come from there rather than from the users workstation. + + + See also the security + parameter. + + Default: password server = <empty string> + + Example: password server = NT-PDC, NT-BDC1, NT-BDC2, * + + Example: password server = * + + diff --git a/docs/docbook/smbdotconf/security/printeradmin.xml b/docs/docbook/smbdotconf/security/printeradmin.xml new file mode 100644 index 00000000000..7037facca07 --- /dev/null +++ b/docs/docbook/smbdotconf/security/printeradmin.xml @@ -0,0 +1,12 @@ + + printer admin (S) + This is a list of users that can do anything to + printers via the remote administration interfaces offered by MS-RPC + (usually using a NT workstation). Note that the root user always + has admin rights. + + Default: printer admin = <empty string> + + Example: printer admin = admin, @staff + + diff --git a/docs/docbook/smbdotconf/security/privatedir.xml b/docs/docbook/smbdotconf/security/privatedir.xml new file mode 100644 index 00000000000..ca220891222 --- /dev/null +++ b/docs/docbook/smbdotconf/security/privatedir.xml @@ -0,0 +1,10 @@ + + private dir (G) + This parameters defines the directory + smbd will use for storing such files as smbpasswd + and secrets.tdb. + + + Default :private dir = ${prefix}/private + + diff --git a/docs/docbook/smbdotconf/security/public.xml b/docs/docbook/smbdotconf/security/public.xml new file mode 100644 index 00000000000..a1f6a1ee294 --- /dev/null +++ b/docs/docbook/smbdotconf/security/public.xml @@ -0,0 +1,6 @@ + + public (S) + Synonym for guest + ok. + + diff --git a/docs/docbook/smbdotconf/security/readlist.xml b/docs/docbook/smbdotconf/security/readlist.xml new file mode 100644 index 00000000000..15d135d54e7 --- /dev/null +++ b/docs/docbook/smbdotconf/security/readlist.xml @@ -0,0 +1,17 @@ + + read list (S) + This is a list of users that are given read-only + access to a service. If the connecting user is in this list then + they will not be given write access, no matter what the read only + option is set to. The list can include group names using the + syntax described in the + invalid users parameter. + + See also the + write list parameter and the invalid users + parameter. + + Default: read list = <empty string> + Example: read list = mary, @students + + diff --git a/docs/docbook/smbdotconf/security/readonly.xml b/docs/docbook/smbdotconf/security/readonly.xml new file mode 100644 index 00000000000..02721935de7 --- /dev/null +++ b/docs/docbook/smbdotconf/security/readonly.xml @@ -0,0 +1,16 @@ + + read only (S) + An inverted synonym is + writeable. + + If this parameter is yes, then users + of a service may not create or modify files in the service's + directory. + + Note that a printable service (printable = yes) + will ALWAYS allow writing to the directory + (user privileges permitting), but only via spooling operations. + + Default: read only = yes + + diff --git a/docs/docbook/smbdotconf/security/restrictanonymous.xml b/docs/docbook/smbdotconf/security/restrictanonymous.xml new file mode 100644 index 00000000000..4b09b7d2bc9 --- /dev/null +++ b/docs/docbook/smbdotconf/security/restrictanonymous.xml @@ -0,0 +1,10 @@ + + restrict anonymous (G) + This is a integer parameter, and + mirrors as much as possible the functinality the + RestrictAnonymous + registry key does on NT/Win2k. + + Default: restrict anonymous = 0 + + diff --git a/docs/docbook/smbdotconf/security/root.xml b/docs/docbook/smbdotconf/security/root.xml new file mode 100644 index 00000000000..f69c1a1ae1b --- /dev/null +++ b/docs/docbook/smbdotconf/security/root.xml @@ -0,0 +1,6 @@ + + root (G) + Synonym for + root directory". + + diff --git a/docs/docbook/smbdotconf/security/rootdir.xml b/docs/docbook/smbdotconf/security/rootdir.xml new file mode 100644 index 00000000000..1f543aed6a3 --- /dev/null +++ b/docs/docbook/smbdotconf/security/rootdir.xml @@ -0,0 +1,6 @@ + + root dir (G) + Synonym for + root directory". + + diff --git a/docs/docbook/smbdotconf/security/rootdirectory.xml b/docs/docbook/smbdotconf/security/rootdirectory.xml new file mode 100644 index 00000000000..9efc11e3c6d --- /dev/null +++ b/docs/docbook/smbdotconf/security/rootdirectory.xml @@ -0,0 +1,28 @@ + + root directory (G) + The server will chroot() (i.e. + Change its root directory) to this directory on startup. This is + not strictly necessary for secure operation. Even without it the + server will deny access to files not in one of the service entries. + It may also check for, and deny access to, soft links to other + parts of the filesystem, or attempts to use ".." in file names + to access other directories (depending on the setting of the wide links + parameter). + + Adding a root directory entry other + than "/" adds an extra level of security, but at a price. It + absolutely ensures that no access is given to files not in the + sub-tree specified in the root directory + option, including some files needed for + complete operation of the server. To maintain full operability + of the server you will need to mirror some system files + into the root directory tree. In particular + you will need to mirror /etc/passwd (or a + subset of it), and any binaries or configuration files needed for + printing (if required). The set of files that must be mirrored is + operating system dependent. + + Default: root directory = / + Example: root directory = /homes/smb + + diff --git a/docs/docbook/smbdotconf/security/security.xml b/docs/docbook/smbdotconf/security/security.xml new file mode 100644 index 00000000000..8e97d8721f0 --- /dev/null +++ b/docs/docbook/smbdotconf/security/security.xml @@ -0,0 +1,237 @@ + + security (G) + This option affects how clients respond to + Samba and is one of the most important settings in the + smb.conf file. + + The option sets the "security mode bit" in replies to + protocol negotiations with smbd + 8 to turn share level security on or off. Clients decide + based on this bit whether (and how) to transfer user and password + information to the server. + + + The default is security = user, as this is + the most common setting needed when talking to Windows 98 and + Windows NT. + + The alternatives are security = share, + security = server or security = domain + . + + In versions of Samba prior to 2.0.0, the default was + security = share mainly because that was + the only option at one stage. + + There is a bug in WfWg that has relevance to this + setting. When in user or server level security a WfWg client + will totally ignore the password you type in the "connect + drive" dialog box. This makes it very difficult (if not impossible) + to connect to a Samba service as anyone except the user that + you are logged into WfWg as. + + If your PCs use usernames that are the same as their + usernames on the UNIX machine then you will want to use + security = user. If you mostly use usernames + that don't exist on the UNIX box then use security = + share. + + You should also use security = share if you + want to mainly setup shares without a password (guest shares). This + is commonly used for a shared printer server. It is more difficult + to setup guest shares with security = user, see + the map to guest + parameter for details. + + It is possible to use smbd in a + hybrid mode where it is offers both user and share + level security under different + NetBIOS aliases. + + The different settings will now be explained. + + + SECURITY = SHARE + + + When clients connect to a share level security server they + need not log onto the server with a valid username and password before + attempting to connect to a shared resource (although modern clients + such as Windows 95/98 and Windows NT will send a logon request with + a username but no password when talking to a security = share + server). Instead, the clients send authentication information + (passwords) on a per-share basis, at the time they attempt to connect + to that share. + + Note that smbd ALWAYS + uses a valid UNIX user to act on behalf of the client, even in + security = share level security. + + As clients are not required to send a username to the server + in share level security, smbd uses several + techniques to determine the correct UNIX user to use on behalf + of the client. + + A list of possible UNIX usernames to match with the given + client password is constructed using the following methods : + + + If the guest + only parameter is set, then all the other + stages are missed and only the + guest account username is checked. + + + Is a username is sent with the share connection + request, then this username (after mapping - see username map), + is added as a potential username. + + If the client did a previous logon + request (the SessionSetup SMB call) then the + username sent in this SMB will be added as a potential username. + + + The name of the service the client requested is + added as a potential username. + + The NetBIOS name of the client is added to + the list as a potential username. + + Any users on the + user list are added as potential usernames. + + + + If the guest only parameter is + not set, then this list is then tried with the supplied password. + The first user for whom the password matches will be used as the + UNIX user. + + If the guest only parameter is + set, or no username can be determined then if the share is marked + as available to the guest account, then this + guest user will be used, otherwise access is denied. + + Note that it can be very confusing + in share-level security as to which UNIX username will eventually + be used in granting access. + + See also the section + NOTE ABOUT USERNAME/PASSWORD VALIDATION. + + SECURITY = USER + + + This is the default security setting in Samba 3.0. + With user-level security a client must first "log-on" with a + valid username and password (which can be mapped using the username map + parameter). Encrypted passwords (see the + encrypted passwords parameter) can also + be used in this security mode. Parameters such as + user and + guest only if set are then applied and + may change the UNIX user to use on this connection, but only after + the user has been successfully authenticated. + + Note that the name of the resource being + requested is not sent to the server until after + the server has successfully authenticated the client. This is why + guest shares don't work in user level security without allowing + the server to automatically map unknown users into the guest account. + See the map to guest + parameter for details on doing this. + + See also the section + NOTE ABOUT USERNAME/PASSWORD VALIDATION. + + SECURITY = DOMAIN + + + + This mode will only work correctly if net + 8 has been used to add this + machine into a Windows NT Domain. It expects the encrypted passwords + parameter to be set to yes. In this + mode Samba will try to validate the username/password by passing + it to a Windows NT Primary or Backup Domain Controller, in exactly + the same way that a Windows NT Server would do. + + Note that a valid UNIX user must still + exist as well as the account on the Domain Controller to allow + Samba to have a valid UNIX account to map file access to. + + Note that from the client's point + of view security = domain is the same as security = user + . It only affects how the server deals with the authentication, + it does not in any way affect what the client sees. + + Note that the name of the resource being + requested is not sent to the server until after + the server has successfully authenticated the client. This is why + guest shares don't work in user level security without allowing + the server to automatically map unknown users into the guest account. + See the map to guest + parameter for details on doing this. + + See also the section + NOTE ABOUT USERNAME/PASSWORD VALIDATION. + + See also the password + server parameter and the encrypted passwords + parameter. + + SECURITY = SERVER + + + In this mode Samba will try to validate the username/password + by passing it to another SMB server, such as an NT box. If this + fails it will revert to security = + user. It expects the encrypted passwords + parameter to be set to + yes, unless the remote server + does not support them. However note + that if encrypted passwords have been negotiated then Samba cannot + revert back to checking the UNIX password file, it must have a valid + smbpasswd file to check users against. See the + documentation file in the docs/ directory + ENCRYPTION.txt for details on how to set this + up. + + Note this mode of operation + has significant pitfalls, due to the fact that is + activly initiates a man-in-the-middle attack on the + remote SMB server. In particular, this mode of + operation can cause significant resource consuption on + the PDC, as it must maintain an active connection for + the duration of the user's session. Furthermore, if + this connection is lost, there is no way to + reestablish it, and futher authenticaions to the Samba + server may fail. (From a single client, till it + disconnects). + + Note that from the client's point of + view security = server is the same as + security = user. It only affects how the server deals + with the authentication, it does not in any way affect what the + client sees. + + Note that the name of the resource being + requested is not sent to the server until after + the server has successfully authenticated the client. This is why + guest shares don't work in user level security without allowing + the server to automatically map unknown users into the guest account. + See the map to guest + parameter for details on doing this. + + See also the section + NOTE ABOUT USERNAME/PASSWORD VALIDATION. + + See also the password + server parameter and the encrypted passwords + parameter. + + Default: security = USER + Example: security = DOMAIN + + + diff --git a/docs/docbook/smbdotconf/security/securitymask.xml b/docs/docbook/smbdotconf/security/securitymask.xml new file mode 100644 index 00000000000..9ed0adcbf44 --- /dev/null +++ b/docs/docbook/smbdotconf/security/securitymask.xml @@ -0,0 +1,33 @@ + + security mask (S) + This parameter controls what UNIX permission + bits can be modified when a Windows NT client is manipulating + the UNIX permission on a file using the native NT security + dialog box. + + This parameter is applied as a mask (AND'ed with) to + the changed permission bits, thus preventing any bits not in + this mask from being modified. Essentially, zero bits in this + mask may be treated as a set of bits the user is not allowed + to change. + + If not set explicitly this parameter is 0777, allowing + a user to modify all the user/group/world permissions on a file. + + + Note that users who can access the + Samba server through other means can easily bypass this + restriction, so it is primarily useful for standalone + "appliance" systems. Administrators of most normal systems will + probably want to leave it set to 0777. + + See also the + force directory security mode, + directory + security mask, + force security mode parameters. + + Default: security mask = 0777 + Example: security mask = 0770 + + diff --git a/docs/docbook/smbdotconf/security/smbpasswdfile.xml b/docs/docbook/smbdotconf/security/smbpasswdfile.xml new file mode 100644 index 00000000000..2efbd121695 --- /dev/null +++ b/docs/docbook/smbdotconf/security/smbpasswdfile.xml @@ -0,0 +1,13 @@ + + smb passwd file (G) + This option sets the path to the encrypted + smbpasswd file. By default the path to the smbpasswd file + is compiled into Samba. + + Default: smb passwd file = ${prefix}/private/smbpasswd + + + Example: smb passwd file = /etc/samba/smbpasswd + + + diff --git a/docs/docbook/smbdotconf/security/unixpasswordsync.xml b/docs/docbook/smbdotconf/security/unixpasswordsync.xml new file mode 100644 index 00000000000..41c6d983d02 --- /dev/null +++ b/docs/docbook/smbdotconf/security/unixpasswordsync.xml @@ -0,0 +1,18 @@ + + unix password sync (G) + This boolean parameter controls whether Samba + attempts to synchronize the UNIX password with the SMB password + when the encrypted SMB password in the smbpasswd file is changed. + If this is set to yes the program specified in the passwd + programparameter is called AS ROOT - + to allow the new UNIX password to be set without access to the + old UNIX password (as the SMB password change code has no + access to the old password cleartext, only the new). + + See also passwd + program, + passwd chat. + + Default: unix password sync = no + + diff --git a/docs/docbook/smbdotconf/security/updateencrypted.xml b/docs/docbook/smbdotconf/security/updateencrypted.xml new file mode 100644 index 00000000000..45c66e0de29 --- /dev/null +++ b/docs/docbook/smbdotconf/security/updateencrypted.xml @@ -0,0 +1,28 @@ + + update encrypted (G) + This boolean parameter allows a user logging + on with a plaintext password to have their encrypted (hashed) + password in the smbpasswd file to be updated automatically as + they log on. This option allows a site to migrate from plaintext + password authentication (users authenticate with plaintext + password over the wire, and are checked against a UNIX account + database) to encrypted password authentication (the SMB + challenge/response authentication mechanism) without forcing + all users to re-enter their passwords via smbpasswd at the time the + change is made. This is a convenience option to allow the change over + to encrypted passwords to be made over a longer period. Once all users + have encrypted representations of their passwords in the smbpasswd + file this parameter should be set to no. + + In order for this parameter to work correctly the encrypt passwords + parameter must be set to no when + this parameter is set to yes. + + Note that even when this parameter is set a user + authenticating to smbd must still enter a valid + password in order to connect correctly, and to update their hashed + (smbpasswd) passwords. + + Default: update encrypted = no + + diff --git a/docs/docbook/smbdotconf/security/user.xml b/docs/docbook/smbdotconf/security/user.xml new file mode 100644 index 00000000000..9c0502061bf --- /dev/null +++ b/docs/docbook/smbdotconf/security/user.xml @@ -0,0 +1,6 @@ + + user (S) + Synonym for + username. + + diff --git a/docs/docbook/smbdotconf/security/username.xml b/docs/docbook/smbdotconf/security/username.xml new file mode 100644 index 00000000000..779f24170b6 --- /dev/null +++ b/docs/docbook/smbdotconf/security/username.xml @@ -0,0 +1,62 @@ + + username (S) + Multiple users may be specified in a comma-delimited + list, in which case the supplied password will be tested against + each username in turn (left to right). + + The username line is needed only when + the PC is unable to supply its own username. This is the case + for the COREPLUS protocol or where your users have different WfWg + usernames to UNIX usernames. In both these cases you may also be + better using the \\server\share%user syntax instead. + + The username line is not a great + solution in many cases as it means Samba will try to validate + the supplied password against each of the usernames in the + username line in turn. This is slow and + a bad idea for lots of users in case of duplicate passwords. + You may get timeouts or security breaches using this parameter + unwisely. + + Samba relies on the underlying UNIX security. This + parameter does not restrict who can login, it just offers hints + to the Samba server as to what usernames might correspond to the + supplied password. Users can login as whoever they please and + they will be able to do no more damage than if they started a + telnet session. The daemon runs as the user that they log in as, + so they cannot do anything that user cannot do. + + To restrict a service to a particular set of users you + can use the valid users + parameter. + + If any of the usernames begin with a '@' then the name + will be looked up first in the NIS netgroups list (if Samba + is compiled with netgroup support), followed by a lookup in + the UNIX groups database and will expand to a list of all users + in the group of that name. + + If any of the usernames begin with a '+' then the name + will be looked up only in the UNIX groups database and will + expand to a list of all users in the group of that name. + + If any of the usernames begin with a '&' then the name + will be looked up only in the NIS netgroups database (if Samba + is compiled with netgroup support) and will expand to a list + of all users in the netgroup group of that name. + + Note that searching though a groups database can take + quite some time, and some clients may time out during the + search. + + See the section NOTE ABOUT + USERNAME/PASSWORD VALIDATION for more information on how + this parameter determines access to the services. + + Default: The guest account if a guest service, + else <empty string>. + + Examples:username = fred, mary, jack, jane, + @users, @pcgroup + + diff --git a/docs/docbook/smbdotconf/security/usernamelevel.xml b/docs/docbook/smbdotconf/security/usernamelevel.xml new file mode 100644 index 00000000000..a4deff3bf95 --- /dev/null +++ b/docs/docbook/smbdotconf/security/usernamelevel.xml @@ -0,0 +1,20 @@ + + username level (G) + This option helps Samba to try and 'guess' at + the real UNIX username, as many DOS clients send an all-uppercase + username. By default Samba tries all lowercase, followed by the + username with the first letter capitalized, and fails if the + username is not found on the UNIX machine. + + If this parameter is set to non-zero the behavior changes. + This parameter is a number that specifies the number of uppercase + combinations to try while trying to determine the UNIX user name. The + higher the number the more combinations will be tried, but the slower + the discovery of usernames will be. Use this parameter when you have + strange usernames on your UNIX machine, such as AstrangeUser + . + + Default: username level = 0 + Example: username level = 5 + + diff --git a/docs/docbook/smbdotconf/security/usernamemap.xml b/docs/docbook/smbdotconf/security/usernamemap.xml new file mode 100644 index 00000000000..37ee72c2358 --- /dev/null +++ b/docs/docbook/smbdotconf/security/usernamemap.xml @@ -0,0 +1,90 @@ + + username map (G) + This option allows you to specify a file containing + a mapping of usernames from the clients to the server. This can be + used for several purposes. The most common is to map usernames + that users use on DOS or Windows machines to those that the UNIX + box uses. The other is to map multiple users to a single username + so that they can more easily share files. + + The map file is parsed line by line. Each line should + contain a single UNIX username on the left then a '=' followed + by a list of usernames on the right. The list of usernames on the + right may contain names of the form @group in which case they + will match any UNIX username in that group. The special client + name '*' is a wildcard and matches any name. Each line of the + map file may be up to 1023 characters long. + + The file is processed on each line by taking the + supplied username and comparing it with each username on the right + hand side of the '=' signs. If the supplied name matches any of + the names on the right hand side then it is replaced with the name + on the left. Processing then continues with the next line. + + If any line begins with a '#' or a ';' then it is + ignored + + If any line begins with an '!' then the processing + will stop after that line if a mapping was done by the line. + Otherwise mapping continues with every line being processed. + Using '!' is most useful when you have a wildcard mapping line + later in the file. + + For example to map from the name admin + or administrator to the UNIX name + root you would use: + + root = admin administrator + + Or to map anyone in the UNIX group system + to the UNIX name sys you would use: + + sys = @system + + You can have as many mappings as you like in a username + map file. + + + If your system supports the NIS NETGROUP option then + the netgroup database is checked before the /etc/group + database for matching groups. + + You can map Windows usernames that have spaces in them + by using double quotes around the name. For example: + + tridge = "Andrew Tridgell" + + would map the windows username "Andrew Tridgell" to the + unix username "tridge". + + The following example would map mary and fred to the + unix user sys, and map the rest to guest. Note the use of the + '!' to tell Samba to stop processing if it gets a match on + that line. + + +!sys = mary fred +guest = * + + + Note that the remapping is applied to all occurrences + of usernames. Thus if you connect to \\server\fred and + fred is remapped to mary then you + will actually be connecting to \\server\mary and will need to + supply a password suitable for mary not + fred. The only exception to this is the + username passed to the + password server (if you have one). The password + server will receive whatever username the client supplies without + modification. + + Also note that no reverse mapping is done. The main effect + this has is with printing. Users who have been mapped may have + trouble deleting print jobs as PrintManager under WfWg will think + they don't own the print job. + + Default: no username map + Example: username map = /usr/local/samba/lib/users.map + + + diff --git a/docs/docbook/smbdotconf/security/users.xml b/docs/docbook/smbdotconf/security/users.xml new file mode 100644 index 00000000000..e78d259f62b --- /dev/null +++ b/docs/docbook/smbdotconf/security/users.xml @@ -0,0 +1,6 @@ + + users (S) + Synonym for + username. + + diff --git a/docs/docbook/smbdotconf/security/validusers.xml b/docs/docbook/smbdotconf/security/validusers.xml new file mode 100644 index 00000000000..5155a5ef343 --- /dev/null +++ b/docs/docbook/smbdotconf/security/validusers.xml @@ -0,0 +1,23 @@ + + valid users (S) + This is a list of users that should be allowed + to login to this service. Names starting with '@', '+' and '&' + are interpreted using the same rules as described in the + invalid users parameter. + + If this is empty (the default) then any user can login. + If a username is in both this list and the invalid + users list then access is denied for that user. + + The current servicename is substituted for %S + . This is useful in the [homes] section. + + See also invalid users + + + Default: No valid users list (anyone can login) + + + Example: valid users = greg, @pcusers + + diff --git a/docs/docbook/smbdotconf/security/writable.xml b/docs/docbook/smbdotconf/security/writable.xml new file mode 100644 index 00000000000..66ba44cc44d --- /dev/null +++ b/docs/docbook/smbdotconf/security/writable.xml @@ -0,0 +1,6 @@ + + writable (S) + Synonym for + writeable for people who can't spell :-). + + diff --git a/docs/docbook/smbdotconf/security/writeable.xml b/docs/docbook/smbdotconf/security/writeable.xml new file mode 100644 index 00000000000..b963410374c --- /dev/null +++ b/docs/docbook/smbdotconf/security/writeable.xml @@ -0,0 +1,6 @@ + + writeable (S) + Inverted synonym for + read only. + + diff --git a/docs/docbook/smbdotconf/security/writelist.xml b/docs/docbook/smbdotconf/security/writelist.xml new file mode 100644 index 00000000000..76ee56c93af --- /dev/null +++ b/docs/docbook/smbdotconf/security/writelist.xml @@ -0,0 +1,21 @@ + + write list (S) + This is a list of users that are given read-write + access to a service. If the connecting user is in this list then + they will be given write access, no matter what the read only + option is set to. The list can include group names using the + @group syntax. + + Note that if a user is in both the read list and the + write list then they will be given write access. + + See also the read list + option. + + Default: write list = <empty string> + + + Example: write list = admin, root, @staff + + + diff --git a/docs/docbook/smbdotconf/security/writeok.xml b/docs/docbook/smbdotconf/security/writeok.xml new file mode 100644 index 00000000000..103c2be9935 --- /dev/null +++ b/docs/docbook/smbdotconf/security/writeok.xml @@ -0,0 +1,6 @@ + + write ok (S) + Inverted synonym for + read only. + + diff --git a/docs/docbook/smbdotconf/smb.conf.5.xml b/docs/docbook/smbdotconf/smb.conf.5.xml new file mode 100644 index 00000000000..e37add42065 --- /dev/null +++ b/docs/docbook/smbdotconf/smb.conf.5.xml @@ -0,0 +1,685 @@ + + %globalentities; +]> + + + + smb.conf + 5 + + + + + smb.conf + The configuration file for the Samba suite + + + + SYNOPSIS + + The smb.conf file is a configuration + file for the Samba suite. smb.conf contains + runtime configuration information for the Samba programs. The smb.conf file + is designed to be configured and administered by the swat + 8 program. The complete + description of the file format and possible parameters held within + are here for reference purposes. + + + FILE FORMAT + + The file consists of sections and parameters. A section + begins with the name of the section in square brackets and continues + until the next section begins. Sections contain parameters of the + form + + name = value + + + The file is line-based - that is, each newline-terminated + line represents either a comment, a section name or a parameter. + + Section and parameter names are not case sensitive. + + Only the first equals sign in a parameter is significant. + Whitespace before or after the first equals sign is discarded. + Leading, trailing and internal whitespace in section and parameter + names is irrelevant. Leading and trailing whitespace in a parameter + value is discarded. Internal whitespace within a parameter value + is retained verbatim. + + Any line beginning with a semicolon (';') or a hash ('#') + character is ignored, as are lines containing only whitespace. + + Any line ending in a '\' is continued + on the next line in the customary UNIX fashion. + + The values following the equals sign in parameters are all + either a string (no quotes needed) or a boolean, which may be given + as yes/no, 0/1 or true/false. Case is not significant in boolean + values, but is preserved in string values. Some items such as + create modes are numeric. + + + + SECTION DESCRIPTIONS + + Each section in the configuration file (except for the + [global] section) describes a shared resource (known + as a "share"). The section name is the name of the + shared resource and the parameters within the section define + the shares attributes. + + There are three special sections, [global], + [homes] and [printers], which are + described under special sections. The + following notes apply to ordinary section descriptions. + + A share consists of a directory to which access is being + given plus a description of the access rights which are granted + to the user of the service. Some housekeeping options are + also specifiable. + + Sections are either file share services (used by the + client as an extension of their native file systems) or + printable services (used by the client to access print services + on the host running the server). + + Sections may be designated guest services, + in which case no password is required to access them. A specified + UNIX guest account is used to define access + privileges in this case. + + Sections other than guest services will require a password + to access them. The client provides the username. As older clients + only provide passwords and not usernames, you may specify a list + of usernames to check against the password using the "user =" + option in the share definition. For modern clients such as + Windows 95/98/ME/NT/2000, this should not be necessary. + + Note that the access rights granted by the server are + masked by the access rights granted to the specified or guest + UNIX user by the host system. The server does not grant more + access than the host system grants. + + The following sample section defines a file space share. + The user has write access to the path /home/bar. + The share is accessed via the share name "foo": + + + +[foo] + path = /home/bar + read only = no + + + + The following sample section defines a printable share. + The share is readonly, but printable. That is, the only write + access permitted is via calls to open, write to and close a + spool file. The guest ok parameter means + access will be permitted as the default guest user (specified + elsewhere): + + + +[aprinter] + path = /usr/spool/public + read only = yes + printable = yes + guest ok = yes + + + + + + SPECIAL SECTIONS + + + The [global] section + + parameters in this section apply to the server + as a whole, or are defaults for sections which do not + specifically define certain items. See the notes + under PARAMETERS for more information. + + + + The [homes] section + + If a section called homes is included in the + configuration file, services connecting clients to their + home directories can be created on the fly by the server. + + When the connection request is made, the existing + sections are scanned. If a match is found, it is used. If no + match is found, the requested section name is treated as a + user name and looked up in the local password file. If the + name exists and the correct password has been given, a share is + created by cloning the [homes] section. + + Some modifications are then made to the newly + created share: + + + The share name is changed from homes to + the located username. + + If no path was given, the path is set to + the user's home directory. + + + If you decide to use a path = line + in your [homes] section then you may find it useful + to use the %S macro. For example : + + path = /data/pchome/%S + + would be useful if you have different home directories + for your PCs than for UNIX access. + + This is a fast and simple way to give a large number + of clients access to their home directories with a minimum + of fuss. + + A similar process occurs if the requested section + name is "homes", except that the share name is not + changed to that of the requesting user. This method of using + the [homes] section works well if different users share + a client PC. + + The [homes] section can specify all the parameters + a normal service section can specify, though some make more sense + than others. The following is a typical and suitable [homes] + section: + + + +[homes] + read only = no + + + + An important point is that if guest access is specified + in the [homes] section, all home directories will be + visible to all clients without a password. + In the very unlikely event that this is actually desirable, it + would be wise to also specify read only + access. + + Note that the browseable flag for + auto home directories will be inherited from the global browseable + flag, not the [homes] browseable flag. This is useful as + it means setting browseable = no in + the [homes] section will hide the [homes] share but make + any auto home directories visible. + + + + The [printers] section + + This section works like [homes], + but for printers. + + If a [printers] section occurs in the + configuration file, users are able to connect to any printer + specified in the local host's printcap file. + + When a connection request is made, the existing sections + are scanned. If a match is found, it is used. If no match is found, + but a [homes] section exists, it is used as described + above. Otherwise, the requested section name is treated as a + printer name and the appropriate printcap file is scanned to see + if the requested section name is a valid printer share name. If + a match is found, a new printer share is created by cloning + the [printers] section. + + A few modifications are then made to the newly created + share: + + + The share name is set to the located printer + name + + If no printer name was given, the printer name + is set to the located printer name + + If the share does not permit guest access and + no username was given, the username is set to the located + printer name. + + + Note that the [printers] service MUST be + printable - if you specify otherwise, the server will refuse + to load the configuration file. + + Typically the path specified would be that of a + world-writeable spool directory with the sticky bit set on + it. A typical [printers] entry would look like + this: + + +[printers] + path = /usr/spool/public + guest ok = yes + printable = yes + + + All aliases given for a printer in the printcap file + are legitimate printer names as far as the server is concerned. + If your printing subsystem doesn't work like that, you will have + to set up a pseudo-printcap. This is a file consisting of one or + more lines like this: + + + +alias|alias|alias|alias... + + + + Each alias should be an acceptable printer name for + your printing subsystem. In the [global] section, specify + the new file as your printcap. The server will then only recognize + names found in your pseudo-printcap, which of course can contain + whatever aliases you like. The same technique could be used + simply to limit access to a subset of your local printers. + + An alias, by the way, is defined as any component of the + first entry of a printcap record. Records are separated by newlines, + components (if there are more than one) are separated by vertical + bar symbols ('|'). + + NOTE: On SYSV systems which use lpstat to determine what + printers are defined on the system you may be able to use + "printcap name = lpstat" to automatically obtain a list + of printers. See the "printcap name" option + for more details. + + + + + PARAMETERS + + parameters define the specific attributes of sections. + + Some parameters are specific to the [global] section + (e.g., security). Some parameters are usable + in all sections (e.g., create mode). All others + are permissible only in normal sections. For the purposes of the + following descriptions the [homes] and [printers] + sections will be considered normal. The letter G + in parentheses indicates that a parameter is specific to the + [global] section. The letter S + indicates that a parameter can be specified in a service specific + section. Note that all S parameters can also be specified in + the [global] section - in which case they will define + the default behavior for all services. + + parameters are arranged here in alphabetical order - this may + not create best bedfellows, but at least you can find them! Where + there are synonyms, the preferred synonym is described, others refer + to the preferred synonym. + + + + VARIABLE SUBSTITUTIONS + + Many of the strings that are settable in the config file + can take substitutions. For example the option "path = + /tmp/%u" would be interpreted as "path = + /tmp/john" if the user connected with the username john. + + These substitutions are mostly noted in the descriptions below, + but there are some general substitutions which apply whenever they + might be relevant. These are: + + + + %U + session user name (the user name that the client + wanted, not necessarily the same as the one they got). + + + + %G + primary group name of %U. + + + + %h + the Internet hostname that Samba is running + on. + + + + %m + the NetBIOS name of the client machine + (very useful). + + + + %L + the NetBIOS name of the server. This allows you + to change your config based on what the client calls you. Your + server can have a "dual personality". + + Note that this parameter is not available when Samba listens + on port 445, as clients no longer send this information + + + + + + %M + the Internet name of the client machine. + + + + + %R + the selected protocol level after + protocol negotiation. It can be one of CORE, COREPLUS, + LANMAN1, LANMAN2 or NT1. + + + + %d + The process id of the current server + process. + + + + %a + the architecture of the remote + machine. Only some are recognized, and those may not be + 100% reliable. It currently recognizes Samba, WfWg, Win95, + WinNT and Win2k. Anything else will be known as + "UNKNOWN". If it gets it wrong then sending a level + 3 log to samba@samba.org + should allow it to be fixed. + + + + %I + The IP address of the client machine. + + + + + %T + the current date and time. + + + + %D + Name of the domain or workgroup of the current user. + + + + %$(envvar) + The value of the environment variable + envar. + + + + The following substitutes apply only to some configuration options(only those + that are used when a connection has been established): + + + + %S + the name of the current service, if any. + + + + + %P + the root directory of the current service, + if any. + + + + %u + user name of the current service, if any. + + + + + %g + primary group name of %u. + + + + %H + the home directory of the user given + by %u. + + + + %N + the name of your NIS home directory server. + This is obtained from your NIS auto.map entry. If you have + not compiled Samba with the --with-automount + option then this value will be the same as %L. + + + + + %p + the path of the service's home directory, + obtained from your NIS auto.map entry. The NIS auto.map entry + is split up as "%N:%p". + + + + There are some quite creative things that can be done + with these substitutions and other smb.conf options. + + + + NAME MANGLING + + Samba supports "name mangling" so that DOS and + Windows clients can use files that don't conform to the 8.3 format. + It can also be set to adjust the case of 8.3 format filenames. + + There are several options that control the way mangling is + performed, and they are grouped here rather than listed separately. + For the defaults look at the output of the testparm program. + + All of these options can be set separately for each service + (or globally, of course). + + The options are: + + + + + mangle case = yes/no + controls if names that have characters that + aren't of the "default" case are mangled. For example, + if this is yes then a name like "Mail" would be mangled. + Default no. + + + + case sensitive = yes/no + controls whether filenames are case sensitive. If + they aren't then Samba must do a filename search and match on passed + names. Default no. + + + + default case = upper/lower + controls what the default case is for new + filenames. Default lower. + + + + preserve case = yes/no + controls if new files are created with the + case that the client passes, or if they are forced to be the + "default" case. Default yes. + + + + + short preserve case = yes/no + controls if new files which conform to 8.3 syntax, + that is all in upper case and of suitable length, are created + upper case, or if they are forced to be the "default" + case. This option can be use with "preserve case = yes" + to permit long filenames to retain their case, while short names + are lowercased. Default yes. + + + + By default, Samba 3.0 has the same semantics as a Windows + NT server, in that it is case insensitive but case preserving. + + + + + NOTE ABOUT USERNAME/PASSWORD VALIDATION + + There are a number of ways in which a user can connect + to a service. The server uses the following steps in determining + if it will allow a connection to a specified service. If all the + steps fail, then the connection request is rejected. However, if one of the + steps succeeds, then the following steps are not checked. + + If the service is marked "guest only = yes" and the + server is running with share-level security ("security = share") + then steps 1 to 5 are skipped. + + + + If the client has passed a username/password + pair and that username/password pair is validated by the UNIX + system's password programs then the connection is made as that + username. Note that this includes the + \\server\service%username method of passing + a username. + + If the client has previously registered a username + with the system and now supplies a correct password for that + username then the connection is allowed. + + The client's NetBIOS name and any previously + used user names are checked against the supplied password, if + they match then the connection is allowed as the corresponding + user. + + If the client has previously validated a + username/password pair with the server and the client has passed + the validation token then that username is used. + + If a "user = " field is given in the + smb.conf file for the service and the client + has supplied a password, and that password matches (according to + the UNIX system's password checking) with one of the usernames + from the "user =" field then the connection is made as + the username in the "user =" line. If one + of the username in the "user =" list begins with a + '@' then that name expands to a list of names in + the group of the same name. + + If the service is a guest service then a + connection is made as the username given in the "guest + account =" for the service, irrespective of the + supplied password. + + + + + + COMPLETE LIST OF GLOBAL PARAMETERS + + Here is a list of all global parameters. See the section of + each parameter for details. Note that some are synonyms. + + + + + + + COMPLETE LIST OF SERVICE PARAMETERS + + Here is a list of all service parameters. See the section on + each parameter for details. Note that some are synonyms. + + + + + + + EXPLANATION OF EACH PARAMETER + + + + + + + WARNINGS + + Although the configuration file permits service names + to contain spaces, your client software may not. Spaces will + be ignored in comparisons anyway, so it shouldn't be a + problem - but be aware of the possibility. + + On a similar note, many clients - especially DOS clients - + limit service names to eight characters. smbd + 8 has no such limitation, but attempts to connect from such + clients will fail if they truncate the service names. For this reason + you should probably keep your service names down to eight characters + in length. + + Use of the [homes] and [printers] special sections make life + for an administrator easy, but the various combinations of default + attributes can be tricky. Take extreme care when designing these + sections. In particular, ensure that the permissions on spool + directories are correct. + + + + VERSION + + This man page is correct for version 3.0 of the Samba suite. + + + + SEE ALSO + + samba + 7, smbpasswd + 8, swat + 8, smbd + 8, nmbd + 8, smbclient + 1, nmblookup + 1, testparm + 1, testprns + 1. + + + + AUTHOR + + The original Samba software and related utilities + were created by Andrew Tridgell. Samba is now developed + by the Samba Team as an Open Source project similar + to the way the Linux kernel is developed. + + The original Samba man pages were written by Karl Auer. + The man page sources were converted to YODL format (another + excellent piece of Open Source software, available at + ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 + release by Jeremy Allison. The conversion to DocBook for + Samba 2.2 was done by Gerald Carter. The conversion to DocBook XML 4.2 + for Samba 3.0 was done by Alexander Bokovoy. + + + diff --git a/docs/docbook/smbdotconf/smbconf.dtd b/docs/docbook/smbdotconf/smbconf.dtd new file mode 100644 index 00000000000..00340a7db93 --- /dev/null +++ b/docs/docbook/smbdotconf/smbconf.dtd @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/docbook/smbdotconf/split-original-smb.conf.xsl b/docs/docbook/smbdotconf/split-original-smb.conf.xsl new file mode 100644 index 00000000000..7a6a2b920a1 --- /dev/null +++ b/docs/docbook/smbdotconf/split-original-smb.conf.xsl @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .xml + + + Writing + + for + + + ( + + ) + + + + + + + + + &smb. + + ; + + + + + + + + + + + diff --git a/docs/docbook/smbdotconf/tuning/blocksize.xml b/docs/docbook/smbdotconf/tuning/blocksize.xml new file mode 100644 index 00000000000..da42ca9ece6 --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/blocksize.xml @@ -0,0 +1,19 @@ + + block size (S) + This parameter controls the behavior of smbd + 8 when reporting disk free + sizes. By default, this reports a disk block size of 1024 bytes. + + + Changing this parameter may have some effect on the + efficiency of client writes, this is not yet confirmed. This + parameter was added to allow advanced administrators to change + it (usually to a higher value) and test the effect it has on + client write performance without re-compiling the code. As this + is an experimental option it may be removed in a future release. + + + Changing this option does not change the disk free reporting + size, just the block size unit reported to the client. + + diff --git a/docs/docbook/smbdotconf/tuning/changenotifytimeout.xml b/docs/docbook/smbdotconf/tuning/changenotifytimeout.xml new file mode 100644 index 00000000000..18c8b9a1764 --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/changenotifytimeout.xml @@ -0,0 +1,15 @@ + + change notify timeout (G) + This SMB allows a client to tell a server to + "watch" a particular directory for any changes and only reply to + the SMB request when a change has occurred. Such constant scanning of + a directory is expensive under UNIX, hence an smbd + 8 daemon only performs such a scan + on each requested directory once every change notify + timeout seconds. + + Default: change notify timeout = 60 + Example: change notify timeout = 300 + + Would change the scan time to every 5 minutes. + diff --git a/docs/docbook/smbdotconf/tuning/deadtime.xml b/docs/docbook/smbdotconf/tuning/deadtime.xml new file mode 100644 index 00000000000..dbad06f25bc --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/deadtime.xml @@ -0,0 +1,23 @@ + + deadtime (G) + The value of the parameter (a decimal integer) + represents the number of minutes of inactivity before a connection + is considered dead, and it is disconnected. The deadtime only takes + effect if the number of open files is zero. + + This is useful to stop a server's resources being + exhausted by a large number of inactive connections. + + Most clients have an auto-reconnect feature when a + connection is broken so in most cases this parameter should be + transparent to users. + + Using this parameter with a timeout of a few minutes + is recommended for most systems. + + A deadtime of zero indicates that no auto-disconnection + should be performed. + + Default: deadtime = 0 + Example: deadtime = 15 + diff --git a/docs/docbook/smbdotconf/tuning/getwdcache.xml b/docs/docbook/smbdotconf/tuning/getwdcache.xml new file mode 100644 index 00000000000..c797bad414c --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/getwdcache.xml @@ -0,0 +1,11 @@ + + getwd cache (G) + This is a tuning option. When this is enabled a + caching algorithm will be used to reduce the time taken for getwd() + calls. This can have a significant impact on performance, especially + when the wide links + parameter is set to no. + + Default: getwd cache = yes + + diff --git a/docs/docbook/smbdotconf/tuning/hostnamelookups.xml b/docs/docbook/smbdotconf/tuning/hostnamelookups.xml new file mode 100644 index 00000000000..daad09da8be --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/hostnamelookups.xml @@ -0,0 +1,14 @@ + + hostname lookups (G) + Specifies whether samba should use (expensive) + hostname lookups or use the ip addresses instead. An example place + where hostname lookups are currently used is when checking + the hosts deny and hosts allow. + + + Default: hostname lookups = yes + + Example: hostname lookups = no + + + diff --git a/docs/docbook/smbdotconf/tuning/keepalive.xml b/docs/docbook/smbdotconf/tuning/keepalive.xml new file mode 100644 index 00000000000..746cda929e7 --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/keepalive.xml @@ -0,0 +1,16 @@ + + keepalive (G) + The value of the parameter (an integer) represents + the number of seconds between keepalive + packets. If this parameter is zero, no keepalive packets will be + sent. Keepalive packets, if sent, allow the server to tell whether + a client is still present and responding. + + Keepalives should, in general, not be needed if the socket + being used has the SO_KEEPALIVE attribute set on it (see socket options). + Basically you should only use this option if you strike difficulties. + + Default: keepalive = 300 + Example: keepalive = 600 + + diff --git a/docs/docbook/smbdotconf/tuning/maxconnections.xml b/docs/docbook/smbdotconf/tuning/maxconnections.xml new file mode 100644 index 00000000000..24af886b60a --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/maxconnections.xml @@ -0,0 +1,16 @@ + + max connections (S) + This option allows the number of simultaneous + connections to a service to be limited. If max connections + is greater than 0 then connections will be refused if + this number of connections to the service are already open. A value + of zero mean an unlimited number of connections may be made. + + Record lock files are used to implement this feature. The + lock files will be stored in the directory specified by the lock directory + option. + + Default: max connections = 0 + Example: max connections = 10 + + diff --git a/docs/docbook/smbdotconf/tuning/maxdisksize.xml b/docs/docbook/smbdotconf/tuning/maxdisksize.xml new file mode 100644 index 00000000000..8aebe919025 --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/maxdisksize.xml @@ -0,0 +1,24 @@ + + max disk size (G) + This option allows you to put an upper limit + on the apparent size of disks. If you set this option to 100 + then all shares will appear to be not larger than 100 MB in + size. + + Note that this option does not limit the amount of + data you can put on the disk. In the above case you could still + store much more than 100 MB on the disk, but if a client ever asks + for the amount of free disk space or the total disk size then the + result will be bounded by the amount specified in max + disk size. + + This option is primarily useful to work around bugs + in some pieces of software that can't handle very large disks, + particularly disks over 1GB in size. + + A max disk size of 0 means no limit. + + Default: max disk size = 0 + Example: max disk size = 1000 + + diff --git a/docs/docbook/smbdotconf/tuning/maxopenfiles.xml b/docs/docbook/smbdotconf/tuning/maxopenfiles.xml new file mode 100644 index 00000000000..85b76a33782 --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/maxopenfiles.xml @@ -0,0 +1,16 @@ + + max open files (G) + This parameter limits the maximum number of + open files that one smbd + 8 file + serving process may have open for a client at any one time. The + default for this parameter is set very high (10,000) as Samba uses + only one bit per unopened file. + + The limit of the number of open files is usually set + by the UNIX per-process file descriptor limit rather than + this parameter so you should never need to touch this parameter. + + Default: max open files = 10000 + + diff --git a/docs/docbook/smbdotconf/tuning/maxsmbdprocesses.xml b/docs/docbook/smbdotconf/tuning/maxsmbdprocesses.xml new file mode 100644 index 00000000000..e46f0185cea --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/maxsmbdprocesses.xml @@ -0,0 +1,17 @@ + + max smbd processes (G) + This parameter limits the maximum number of + smbd(8) + processes concurrently running on a system and is intended + as a stopgap to prevent degrading service to clients in the event + that the server has insufficient resources to handle more than this + number of connections. Remember that under normal operating + conditions, each user will have an smbd + 8 associated with him or her + to handle connections to all shares from a given host. + + + Default: max smbd processes = 0 ## no limit + Example: max smbd processes = 1000 + + diff --git a/docs/docbook/smbdotconf/tuning/minprintspace.xml b/docs/docbook/smbdotconf/tuning/minprintspace.xml new file mode 100644 index 00000000000..acbb65fa412 --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/minprintspace.xml @@ -0,0 +1,14 @@ + + min print space (S) + This sets the minimum amount of free disk + space that must be available before a user will be able to spool + a print job. It is specified in kilobytes. The default is 0, which + means a user can always spool a print job. + + See also the printing + parameter. + + Default: min print space = 0 + Example: min print space = 2000 + + diff --git a/docs/docbook/smbdotconf/tuning/namecachetimeout.xml b/docs/docbook/smbdotconf/tuning/namecachetimeout.xml new file mode 100644 index 00000000000..0500a75c8d9 --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/namecachetimeout.xml @@ -0,0 +1,12 @@ + + name cache timeout (G) + Specifies the number of seconds it takes before + entries in samba's hostname resolve cache time out. If + the timeout is set to 0. the caching is disabled. + + + + Default: name cache timeout = 660 + Example: name cache timeout = 0 + + diff --git a/docs/docbook/smbdotconf/tuning/paranoidserversecurity.xml b/docs/docbook/smbdotconf/tuning/paranoidserversecurity.xml new file mode 100644 index 00000000000..d60f179176f --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/paranoidserversecurity.xml @@ -0,0 +1,16 @@ + + paranoid server security (G) + Some version of NT 4.x allow non-guest + users with a bad passowrd. When this option is enabled, samba will not + use a broken NT 4.x server as password server, but instead complain + to the logs and exit. + + + Disabling this option prevents Samba from making + this check, which involves deliberatly attempting a + bad logon to the remote server. + + Default: paranoid server security = yes + + + diff --git a/docs/docbook/smbdotconf/tuning/readsize.xml b/docs/docbook/smbdotconf/tuning/readsize.xml new file mode 100644 index 00000000000..59c6848c761 --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/readsize.xml @@ -0,0 +1,25 @@ + + read size (G) + The option read size + affects the overlap of disk reads/writes with network reads/writes. + If the amount of data being transferred in several of the SMB + commands (currently SMBwrite, SMBwriteX and SMBreadbraw) is larger + than this value then the server begins writing the data before it + has received the whole packet from the network, or in the case of + SMBreadbraw, it begins writing to the network before all the data + has been read from disk. + + This overlapping works best when the speeds of disk and + network access are similar, having very little effect when the + speed of one is much greater than the other. + + The default value is 16384, but very little experimentation + has been done yet to determine the optimal value, and it is likely + that the best value will vary greatly between systems anyway. + A value over 65536 is pointless and will cause you to allocate + memory unnecessarily. + + Default: read size = 16384 + Example: read size = 8192 + + diff --git a/docs/docbook/smbdotconf/tuning/socketoptions.xml b/docs/docbook/smbdotconf/tuning/socketoptions.xml new file mode 100644 index 00000000000..3acc259083b --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/socketoptions.xml @@ -0,0 +1,69 @@ + + socket options (G) + This option allows you to set socket options + to be used when talking with the client. + + Socket options are controls on the networking layer + of the operating systems which allow the connection to be + tuned. + + This option will typically be used to tune your Samba + server for optimal performance for your local network. There is + no way that Samba can know what the optimal parameters are for + your net, so you must experiment and choose them yourself. We + strongly suggest you read the appropriate documentation for your + operating system first (perhaps man setsockopt + will help). + + You may find that on some systems Samba will say + "Unknown socket option" when you supply an option. This means you + either incorrectly typed it or you need to add an include file + to includes.h for your OS. If the latter is the case please + send the patch to + samba@samba.org. + + Any of the supported socket options may be combined + in any way you like, as long as your OS allows it. + + This is the list of socket options currently settable + using this option: + + + SO_KEEPALIVE + SO_REUSEADDR + SO_BROADCAST + TCP_NODELAY + IPTOS_LOWDELAY + IPTOS_THROUGHPUT + SO_SNDBUF * + SO_RCVBUF * + SO_SNDLOWAT * + SO_RCVLOWAT * + + + Those marked with a '*' take an integer + argument. The others can optionally take a 1 or 0 argument to enable + or disable the option, by default they will be enabled if you + don't specify 1 or 0. + + To specify an argument use the syntax SOME_OPTION = VALUE + for example SO_SNDBUF = 8192. Note that you must + not have any spaces before or after the = sign. + + If you are on a local network then a sensible option + might be + socket options = IPTOS_LOWDELAY + + If you have a local network then you could try: + socket options = IPTOS_LOWDELAY TCP_NODELAY + + If you are on a wide area network then perhaps try + setting IPTOS_THROUGHPUT. + + Note that several of the options may cause your Samba + server to fail completely. Use these options with caution! + + Default: socket options = TCP_NODELAY + Example: socket options = IPTOS_LOWDELAY + + diff --git a/docs/docbook/smbdotconf/tuning/statcachesize.xml b/docs/docbook/smbdotconf/tuning/statcachesize.xml new file mode 100644 index 00000000000..fe7d3a7be26 --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/statcachesize.xml @@ -0,0 +1,9 @@ + + stat cache size (G) + This parameter determines the number of + entries in the stat cache. You should + never need to change this parameter. + + Default: stat cache size = 50 + + diff --git a/docs/docbook/smbdotconf/tuning/strictallocate.xml b/docs/docbook/smbdotconf/tuning/strictallocate.xml new file mode 100644 index 00000000000..7b33ef3fc3a --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/strictallocate.xml @@ -0,0 +1,21 @@ + + strict allocate (S) + This is a boolean that controls the handling of + disk space allocation in the server. When this is set to yes + the server will change from UNIX behaviour of not committing real + disk storage blocks when a file is extended to the Windows behaviour + of actually forcing the disk system to allocate real storage blocks + when a file is created or extended to be a given size. In UNIX + terminology this means that Samba will stop creating sparse files. + This can be slow on some systems. + + When strict allocate is no the server does sparse + disk block allocation when a file is extended. + + Setting this to yes can help Samba return + out of quota messages on systems that are restricting the disk quota + of users. + + Default: strict allocate = no + + diff --git a/docs/docbook/smbdotconf/tuning/strictsync.xml b/docs/docbook/smbdotconf/tuning/strictsync.xml new file mode 100644 index 00000000000..b228f7cfcb4 --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/strictsync.xml @@ -0,0 +1,23 @@ + + strict sync (S) + Many Windows applications (including the Windows + 98 explorer shell) seem to confuse flushing buffer contents to + disk with doing a sync to disk. Under UNIX, a sync call forces + the process to be suspended until the kernel has ensured that + all outstanding data in kernel disk buffers has been safely stored + onto stable storage. This is very slow and should only be done + rarely. Setting this parameter to no (the + default) means that smbd + 8 ignores the Windows applications requests for + a sync call. There is only a possibility of losing data if the + operating system itself that Samba is running on crashes, so there is + little danger in this default setting. In addition, this fixes many + performance problems that people have reported with the new Windows98 + explorer shell file copies. + + See also the sync + always> parameter. + + Default: strict sync = no + + diff --git a/docs/docbook/smbdotconf/tuning/syncalways.xml b/docs/docbook/smbdotconf/tuning/syncalways.xml new file mode 100644 index 00000000000..c5c32343a71 --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/syncalways.xml @@ -0,0 +1,19 @@ + + sync always (S) + This is a boolean parameter that controls + whether writes will always be written to stable storage before + the write call returns. If this is no then the server will be + guided by the client's request in each write call (clients can + set a bit indicating that a particular write should be synchronous). + If this is yes then every write will be followed by a fsync() + call to ensure the data is written to disk. Note that + the strict sync parameter must be set to + yes in order for this parameter to have + any affect. + + See also the strict + sync parameter. + + Default: sync always = no + + diff --git a/docs/docbook/smbdotconf/tuning/usemmap.xml b/docs/docbook/smbdotconf/tuning/usemmap.xml new file mode 100644 index 00000000000..46fa4600de7 --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/usemmap.xml @@ -0,0 +1,14 @@ + + use mmap (G) + This global parameter determines if the tdb internals of Samba can + depend on mmap working correctly on the running system. Samba requires a coherent + mmap/read-write system memory cache. Currently only HPUX does not have such a + coherent cache, and so this parameter is set to no by + default on HPUX. On all other systems this parameter should be left alone. This + parameter is provided to help the Samba developers track down problems with + the tdb internal code. + + + Default: use mmap = yes + + diff --git a/docs/docbook/smbdotconf/tuning/usesendfile.xml b/docs/docbook/smbdotconf/tuning/usesendfile.xml new file mode 100644 index 00000000000..5f2dcb72a94 --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/usesendfile.xml @@ -0,0 +1,14 @@ + + use sendfile (S) + If this parameter is yes, and Samba + was built with the --with-sendfile-support option, and the underlying operating + system supports sendfile system call, then some SMB read calls (mainly ReadAndX + and ReadRaw) will use the more efficient sendfile system call for files that + are exclusively oplocked. This may make more efficient use of the system CPU's + and cause Samba to be faster. This is off by default as it's effects are unknown + as yet. + + + Default: use sendfile = no + + diff --git a/docs/docbook/smbdotconf/tuning/writecachesize.xml b/docs/docbook/smbdotconf/tuning/writecachesize.xml new file mode 100644 index 00000000000..b54a0e4fd60 --- /dev/null +++ b/docs/docbook/smbdotconf/tuning/writecachesize.xml @@ -0,0 +1,27 @@ + + write cache size (S) + If this integer parameter is set to non-zero value, + Samba will create an in-memory cache for each oplocked file + (it does not do this for + non-oplocked files). All writes that the client does not request + to be flushed directly to disk will be stored in this cache if possible. + The cache is flushed onto disk when a write comes in whose offset + would not fit into the cache or when the file is closed by the client. + Reads for the file are also served from this cache if the data is stored + within it. + + This cache allows Samba to batch client writes into a more + efficient write size for RAID disks (i.e. writes may be tuned to + be the RAID stripe size) and can improve performance on systems + where the disk subsystem is a bottleneck but there is free + memory for userspace programs. + + The integer parameter specifies the size of this cache + (per oplocked file) in bytes. + + Default: write cache size = 0 + Example: write cache size = 262144 + + for a 256k cache size per file. + + diff --git a/docs/docbook/smbdotconf/vfs/hostmsdfs.xml b/docs/docbook/smbdotconf/vfs/hostmsdfs.xml new file mode 100644 index 00000000000..0496fd7f477 --- /dev/null +++ b/docs/docbook/smbdotconf/vfs/hostmsdfs.xml @@ -0,0 +1,17 @@ + + host msdfs (G) + This boolean parameter is only available + if Samba has been configured and compiled with the + --with-msdfs option. If set to yes, + Samba will act as a Dfs server, and allow Dfs-aware clients + to browse Dfs trees hosted on the server. + + See also the + msdfs root share level parameter. For + more information on setting up a Dfs tree on Samba, + refer to msdfs_setup.html. + + + Default: host msdfs = no + + diff --git a/docs/docbook/smbdotconf/vfs/msdfsproxy.xml b/docs/docbook/smbdotconf/vfs/msdfsproxy.xml new file mode 100644 index 00000000000..41b36cb91b2 --- /dev/null +++ b/docs/docbook/smbdotconf/vfs/msdfsproxy.xml @@ -0,0 +1,15 @@ + + msdfs proxy (S) + This parameter indicates that the share is a + stand-in for another CIFS share whose location is specified by + the value of the parameter. When clients attempt to connect to + this share, they are redirected to the proxied share using + the SMB-Dfs protocol. + Only Dfs roots can act as proxy shares. Take a look at the + msdfs root + and + host msdfs + options to find out how to set up a Dfs root share. + Example: msdfs proxy = \\\\otherserver\\someshare + + diff --git a/docs/docbook/smbdotconf/vfs/msdfsroot.xml b/docs/docbook/smbdotconf/vfs/msdfsroot.xml new file mode 100644 index 00000000000..dc50ba5e578 --- /dev/null +++ b/docs/docbook/smbdotconf/vfs/msdfsroot.xml @@ -0,0 +1,19 @@ + + msdfs root (S) + This boolean parameter is only available if + Samba is configured and compiled with the + --with-msdfs option. If set to yes, + Samba treats the share as a Dfs root and allows clients to browse + the distributed file system tree rooted at the share directory. + Dfs links are specified in the share directory by symbolic + links of the form msdfs:serverA\\shareA,serverB\\shareB + and so on. For more information on setting up a Dfs tree + on Samba, refer to "Hosting a Microsoft + Distributed File System tree on Samba" document. + + See also host msdfs + + + Default: msdfs root = no + + diff --git a/docs/docbook/smbdotconf/vfs/vfsobject.xml b/docs/docbook/smbdotconf/vfs/vfsobject.xml new file mode 100644 index 00000000000..d334552dae9 --- /dev/null +++ b/docs/docbook/smbdotconf/vfs/vfsobject.xml @@ -0,0 +1,10 @@ + + vfs object (S) + This parameter specifies a shared object files that + are used for Samba VFS I/O operations. By default, normal + disk I/O operations are used but these can be overloaded + with one or more VFS objects. + + Default : no value + + diff --git a/docs/docbook/smbdotconf/vfs/vfsoptions.xml b/docs/docbook/smbdotconf/vfs/vfsoptions.xml new file mode 100644 index 00000000000..28f14a09bfb --- /dev/null +++ b/docs/docbook/smbdotconf/vfs/vfsoptions.xml @@ -0,0 +1,10 @@ + + vfs options (S) + This parameter allows parameters to be passed + to the vfs layer at initialization time. + See also + vfs object. + + Default : no value + + diff --git a/docs/docbook/smbdotconf/vfs/vfspath.xml b/docs/docbook/smbdotconf/vfs/vfspath.xml new file mode 100644 index 00000000000..78c27302a8a --- /dev/null +++ b/docs/docbook/smbdotconf/vfs/vfspath.xml @@ -0,0 +1,12 @@ + + vfs path (S) + This parameter specifies the directory + to look in for vfs modules. The name of every vfs object + will be prepended by this directory + + + Default: vfs path = + Example: vfs path = /usr/lib/samba/vfs + + + diff --git a/docs/docbook/smbdotconf/winbind/templatehomedir.xml b/docs/docbook/smbdotconf/winbind/templatehomedir.xml new file mode 100644 index 00000000000..a931e9b5a3e --- /dev/null +++ b/docs/docbook/smbdotconf/winbind/templatehomedir.xml @@ -0,0 +1,13 @@ + + template homedir (G) + When filling out the user information for a Windows NT + user, the winbindd(8) daemon + uses this parameter to fill in the home directory for that user. + If the string %D is present it is substituted + with the user's Windows NT domain name. If the string %U + is present it is substituted with the user's Windows + NT user name. + + Default: template homedir = /home/%D/%U + + diff --git a/docs/docbook/smbdotconf/winbind/templateshell.xml b/docs/docbook/smbdotconf/winbind/templateshell.xml new file mode 100644 index 00000000000..e0b9f1a2cab --- /dev/null +++ b/docs/docbook/smbdotconf/winbind/templateshell.xml @@ -0,0 +1,10 @@ + + template shell (G) + When filling out the user information for a Windows NT + user, the winbindd + 8 daemon + uses this parameter to fill in the login shell for that user. + + Default: template shell = /bin/false + + diff --git a/docs/docbook/smbdotconf/winbind/winbindcachetime.xml b/docs/docbook/smbdotconf/winbind/winbindcachetime.xml new file mode 100644 index 00000000000..adbb8b12f6c --- /dev/null +++ b/docs/docbook/smbdotconf/winbind/winbindcachetime.xml @@ -0,0 +1,11 @@ + + winbind cache time (G) + This parameter specifies the number of + seconds the winbindd + 8 daemon will cache + user and group information before querying a Windows NT server + again. + + Default: winbind cache type = 15 + + diff --git a/docs/docbook/smbdotconf/winbind/winbindenumgroups.xml b/docs/docbook/smbdotconf/winbind/winbindenumgroups.xml new file mode 100644 index 00000000000..096c280fc2b --- /dev/null +++ b/docs/docbook/smbdotconf/winbind/winbindenumgroups.xml @@ -0,0 +1,18 @@ + + winbind enum groups (G) + On large installations using winbindd + 8 it may be necessary to suppress + the enumeration of groups through the setgrent(), + getgrent() and + endgrent() group of system calls. If + the winbind enum groups parameter is + no, calls to the getgrent() system + call will not return any data. + + Warning: Turning off group + enumeration may cause some programs to behave oddly. + + + Default: winbind enum groups = yes + + diff --git a/docs/docbook/smbdotconf/winbind/winbindenumusers.xml b/docs/docbook/smbdotconf/winbind/winbindenumusers.xml new file mode 100644 index 00000000000..7935755f0cf --- /dev/null +++ b/docs/docbook/smbdotconf/winbind/winbindenumusers.xml @@ -0,0 +1,20 @@ + + winbind enum users (G) + On large installations using winbindd + 8 it may be + necessary to suppress the enumeration of users through the setpwent(), + getpwent() and + endpwent() group of system calls. If + the winbind enum users parameter is + no, calls to the getpwent system call + will not return any data. + + Warning: Turning off user + enumeration may cause some programs to behave oddly. For + example, the finger program relies on having access to the + full user list when searching for matching + usernames. + + Default: winbind enum users = yes + + diff --git a/docs/docbook/smbdotconf/winbind/winbindgid.xml b/docs/docbook/smbdotconf/winbind/winbindgid.xml new file mode 100644 index 00000000000..a8a9683b015 --- /dev/null +++ b/docs/docbook/smbdotconf/winbind/winbindgid.xml @@ -0,0 +1,14 @@ + + winbind gid (G) + The winbind gid parameter specifies the range of group + ids that are allocated by the winbindd + 8 daemon. This range of group ids should have no + existing local or NIS groups within it as strange conflicts can + occur otherwise. + + Default: winbind gid = <empty string> + + + Example: winbind gid = 10000-20000 + + diff --git a/docs/docbook/smbdotconf/winbind/winbindseparator.xml b/docs/docbook/smbdotconf/winbind/winbindseparator.xml new file mode 100644 index 00000000000..416adcb5315 --- /dev/null +++ b/docs/docbook/smbdotconf/winbind/winbindseparator.xml @@ -0,0 +1,17 @@ + + winbind separator (G) + This parameter allows an admin to define the character + used when listing a username of the form of DOMAIN + \user. This parameter + is only applicable when using the pam_winbind.so + and nss_winbind.so modules for UNIX services. + + + Please note that setting this parameter to + causes problems + with group membership at least on glibc systems, as the character + + is used as a special character for NIS in /etc/group. + + Default: winbind separator = '\' + Example: winbind separator = + + + diff --git a/docs/docbook/smbdotconf/winbind/winbinduid.xml b/docs/docbook/smbdotconf/winbind/winbinduid.xml new file mode 100644 index 00000000000..ecd7848f611 --- /dev/null +++ b/docs/docbook/smbdotconf/winbind/winbinduid.xml @@ -0,0 +1,14 @@ + + winbind uid (G) + The winbind gid parameter specifies the range of group + ids that are allocated by the winbindd + 8 daemon. This range of ids should have no + existing local or NIS users within it as strange conflicts can + occur otherwise. + + Default: winbind uid = <empty string> + + + Example: winbind uid = 10000-20000 + + diff --git a/docs/docbook/smbdotconf/winbind/winbindusedefaultdomain.xml b/docs/docbook/smbdotconf/winbind/winbindusedefaultdomain.xml new file mode 100644 index 00000000000..a6b7bcd7e52 --- /dev/null +++ b/docs/docbook/smbdotconf/winbind/winbindusedefaultdomain.xml @@ -0,0 +1,14 @@ + + winbind use default domain (G) + This parameter specifies whether the winbindd + 8 daemon should operate on users + without domain component in their username. + Users without a domain component are treated as is part of the winbindd server's + own domain. While this does not benifit Windows users, it makes SSH, FTP and e-mail + function in a way much closer to the way they would in a native unix system. + + Default: winbind use default domain = <no> + + Example: winbind use default domain = yes + + diff --git a/docs/docbook/smbdotconf/wins/dnsproxy.xml b/docs/docbook/smbdotconf/wins/dnsproxy.xml new file mode 100644 index 00000000000..fd53ae7ded0 --- /dev/null +++ b/docs/docbook/smbdotconf/wins/dnsproxy.xml @@ -0,0 +1,21 @@ + + dns proxy (G) + Specifies that nmbd + 8 when acting as a WINS server and + finding that a NetBIOS name has not been registered, should treat the + NetBIOS name word-for-word as a DNS name and do a lookup with the DNS server + for that name on behalf of the name-querying client. + + Note that the maximum length for a NetBIOS name is 15 + characters, so the DNS name (or DNS alias) can likewise only be + 15 characters, maximum. + + nmbd spawns a second copy of itself to do the + DNS name lookup requests, as doing a name lookup is a blocking + action. + + See also the parameter + wins support. + + Default: dns proxy = yes + diff --git a/docs/docbook/smbdotconf/wins/winshook.xml b/docs/docbook/smbdotconf/wins/winshook.xml new file mode 100644 index 00000000000..e0c4a87c5b8 --- /dev/null +++ b/docs/docbook/smbdotconf/wins/winshook.xml @@ -0,0 +1,43 @@ + + wins hook (G) + When Samba is running as a WINS server this + allows you to call an external program for all changes to the + WINS database. The primary use for this option is to allow the + dynamic update of external name resolution databases such as + dynamic DNS. + + The wins hook parameter specifies the name of a script + or executable that will be called as follows: + + wins_hook operation name nametype ttl IP_list + + + + The first argument is the operation and is one + of "add", "delete", or "refresh". In most cases the operation can + be ignored as the rest of the parameters provide sufficient + information. Note that "refresh" may sometimes be called when the + name has not previously been added, in that case it should be treated + as an add. + + The second argument is the NetBIOS name. If the + name is not a legal name then the wins hook is not called. + Legal names contain only letters, digits, hyphens, underscores + and periods. + + The third argument is the NetBIOS name + type as a 2 digit hexadecimal number. + + The fourth argument is the TTL (time to live) + for the name in seconds. + + The fifth and subsequent arguments are the IP + addresses currently registered for that name. If this list is + empty then the name should be deleted. + + + An example script that calls the BIND dynamic DNS update + program nsupdate is provided in the examples + directory of the Samba source code. + + diff --git a/docs/docbook/smbdotconf/wins/winspartners.xml b/docs/docbook/smbdotconf/wins/winspartners.xml new file mode 100644 index 00000000000..840435ae4e2 --- /dev/null +++ b/docs/docbook/smbdotconf/wins/winspartners.xml @@ -0,0 +1,14 @@ + + wins partners (G) + A space separated list of partners' IP addresses for + WINS replication. WINS partners are always defined as push/pull + partners as defining only one way WINS replication is unreliable. + WINS replication is currently experimental and unreliable between + samba servers. + + + Default: wins partners = + + Example: wins partners = 192.168.0.1 172.16.1.2 + + diff --git a/docs/docbook/smbdotconf/wins/winsproxy.xml b/docs/docbook/smbdotconf/wins/winsproxy.xml new file mode 100644 index 00000000000..31978d3b244 --- /dev/null +++ b/docs/docbook/smbdotconf/wins/winsproxy.xml @@ -0,0 +1,9 @@ + + wins proxy (G) + This is a boolean that controls if nmbd(8) will respond to broadcast name + queries on behalf of other hosts. You may need to set this + to yes for some older clients. + + Default: wins proxy = no + + diff --git a/docs/docbook/smbdotconf/wins/winsserver.xml b/docs/docbook/smbdotconf/wins/winsserver.xml new file mode 100644 index 00000000000..ba49f687f68 --- /dev/null +++ b/docs/docbook/smbdotconf/wins/winsserver.xml @@ -0,0 +1,21 @@ + + wins server (G) + This specifies the IP address (or DNS name: IP + address for preference) of the WINS server that nmbd + 8 should register with. If you have a WINS server on + your network then you should set this to the WINS server's IP. + + You should point this at your WINS server if you have a + multi-subnetted network. + + NOTE. You need to set up Samba to point + to a WINS server if you have multiple subnets and wish cross-subnet + browsing to work correctly. + + See the documentation file BROWSING + in the docs/ directory of your Samba source distribution. + + Default: not enabled + Example: wins server = 192.9.200.1 + + diff --git a/docs/docbook/smbdotconf/wins/winssupport.xml b/docs/docbook/smbdotconf/wins/winssupport.xml new file mode 100644 index 00000000000..5ad886a9b1d --- /dev/null +++ b/docs/docbook/smbdotconf/wins/winssupport.xml @@ -0,0 +1,12 @@ + + wins support (G) + This boolean controls if the nmbd + 8 process in Samba will act as a WINS server. You should + not set this to yes unless you have a multi-subnetted network and + you wish a particular nmbd to be your WINS server. + Note that you should NEVER set this to yes + on more than one machine in your network. + + Default: wins support = no + + -- cgit From 2dd00078eec736797e65f69ad00297068e57cd9a Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 27 Mar 2003 16:33:59 +0000 Subject: Put backwards compatibility support for old modules in a seperate function --- source/smbd/vfs.c | 103 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 58 insertions(+), 45 deletions(-) diff --git a/source/smbd/vfs.c b/source/smbd/vfs.c index cdff26ed1ee..a8b350b9cd2 100644 --- a/source/smbd/vfs.c +++ b/source/smbd/vfs.c @@ -196,21 +196,72 @@ static void vfs_init_default(connection_struct *conn) conn->vfs_private = NULL; } +/*************************************************************************** + Function to load old VFS modules. Should go away after a while. + **************************************************************************/ + +static BOOL vfs_load_old_plugin(connection_struct *conn, const char *vfs_object) +{ + int vfs_version = -1; + vfs_op_tuple *ops, *(*init_fptr)(int *, const struct vfs_ops *, struct smb_vfs_handle_struct *); + /* Open object file */ + + if ((conn->vfs_private->handle = sys_dlopen(vfs_object, RTLD_NOW)) == NULL) { + DEBUG(0, ("Error opening %s: %s\n", vfs_object, sys_dlerror())); + return False; + } + + /* Get handle on vfs_init() symbol */ + + init_fptr = (vfs_op_tuple *(*)(int *, const struct vfs_ops *, struct smb_vfs_handle_struct *))sys_dlsym(conn->vfs_private->handle, "vfs_init"); + + if (init_fptr == NULL) { + DEBUG(0, ("No vfs_init() symbol found in %s\n", vfs_object)); + sys_dlclose(conn->vfs_private->handle); + return False; + } + + /* Initialise vfs_ops structure */ + if ((ops = init_fptr(&vfs_version, &conn->vfs_ops, conn->vfs_private)) == NULL) { + DEBUG(0, ("vfs_init() function from %s failed\n", vfs_object)); + sys_dlclose(conn->vfs_private->handle); + return False; + } + + if ((vfs_version < SMB_VFS_INTERFACE_CASCADED)) { + DEBUG(0, ("vfs_init() returned wrong interface version info (was %d, should be no less than %d)\n", + vfs_version, SMB_VFS_INTERFACE_VERSION )); + sys_dlclose(conn->vfs_private->handle); + return False; + } + + if ((vfs_version < SMB_VFS_INTERFACE_VERSION)) { + DEBUG(0, ("Warning: vfs_init() states that module confirms interface version #%d, current interface version is #%d.\n\ + Proceeding in compatibility mode, new operations (since version #%d) will fallback to default ones.\n", + vfs_version, SMB_VFS_INTERFACE_VERSION, vfs_version )); + sys_dlclose(conn->vfs_private->handle); + return False; + } + + return True; +} + + + /**************************************************************************** initialise custom vfs hooks -****************************************************************************/ + ****************************************************************************/ BOOL vfs_init_custom(connection_struct *conn, const char *vfs_object) { - int vfs_version = -1; - vfs_op_tuple *ops, *(*init_fptr)(int *, const struct vfs_ops *, struct smb_vfs_handle_struct *); - int i; + vfs_op_tuple *ops; + int i; struct vfs_init_function_entry *entry; DEBUG(3, ("Initialising custom vfs hooks from %s\n", vfs_object)); if(!backends) static_init_vfs; - + /* First, try to load the module with the new module system */ if((entry = vfs_find_backend_entry(vfs_object)) || (smb_probe_module("vfs", vfs_object) && @@ -220,52 +271,14 @@ BOOL vfs_init_custom(connection_struct *conn, const char *vfs_object) if ((ops = entry->init(&conn->vfs_ops, conn->vfs_private)) == NULL) { DEBUG(0, ("vfs init function from %s failed\n", vfs_object)); - sys_dlclose(conn->vfs_private->handle); return False; } } else { /* If that doesn't work, fall back to the old system * (This part should go away after a while, it's only here * for backwards compatibility) */ - - /* Open object file */ - - if ((conn->vfs_private->handle = sys_dlopen(vfs_object, RTLD_NOW)) == NULL) { - DEBUG(0, ("Error opening %s: %s\n", vfs_object, sys_dlerror())); - return False; - } - - /* Get handle on vfs_init() symbol */ - - init_fptr = (vfs_op_tuple *(*)(int *, const struct vfs_ops *, struct smb_vfs_handle_struct *))sys_dlsym(conn->vfs_private->handle, "vfs_init"); - - if (init_fptr == NULL) { - DEBUG(0, ("No vfs_init() symbol found in %s\n", vfs_object)); - sys_dlclose(conn->vfs_private->handle); - return False; - } - - /* Initialise vfs_ops structure */ - if ((ops = init_fptr(&vfs_version, &conn->vfs_ops, conn->vfs_private)) == NULL) { - DEBUG(0, ("vfs_init() function from %s failed\n", vfs_object)); - sys_dlclose(conn->vfs_private->handle); - return False; - } - - if ((vfs_version < SMB_VFS_INTERFACE_CASCADED)) { - DEBUG(0, ("vfs_init() returned wrong interface version info (was %d, should be no less than %d)\n", - vfs_version, SMB_VFS_INTERFACE_VERSION )); - sys_dlclose(conn->vfs_private->handle); - return False; - } - - if ((vfs_version < SMB_VFS_INTERFACE_VERSION)) { - DEBUG(0, ("Warning: vfs_init() states that module confirms interface version #%d, current interface version is #%d.\n\ - Proceeding in compatibility mode, new operations (since version #%d) will fallback to default ones.\n", - vfs_version, SMB_VFS_INTERFACE_VERSION, vfs_version )); - sys_dlclose(conn->vfs_private->handle); - return False; - } + DEBUG(2, ("Can't load module with new modules system, falling back to old\n")); + if (!vfs_load_old_plugin(conn, vfs_object)) return False; } for(i=0; ops[i].op != NULL; i++) { -- cgit From 6026e47cfe493625c6ed017ecae3cc785a6d0347 Mon Sep 17 00:00:00 2001 From: Alexander Bokovoy Date: Thu, 27 Mar 2003 18:28:55 +0000 Subject: 1. Fix generate-file-list.sh to produce a list sorted by parameter name, not parameter section. 2. Convert base parameters to new meta-information scheme --- .../docbook/smbdotconf/base/bindinterfacesonly.xml | 123 +++++++++++---------- docs/docbook/smbdotconf/base/comment.xml | 28 +++-- docs/docbook/smbdotconf/base/directory.xml | 14 ++- docs/docbook/smbdotconf/base/displaycharset.xml | 23 ++-- docs/docbook/smbdotconf/base/doscharset.xml | 28 ++--- docs/docbook/smbdotconf/base/interfaces.xml | 76 ++++++------- docs/docbook/smbdotconf/base/netbiosaliases.xml | 33 +++--- docs/docbook/smbdotconf/base/netbiosname.xml | 32 +++--- docs/docbook/smbdotconf/base/netbiosscope.xml | 17 +-- docs/docbook/smbdotconf/base/path.xml | 50 +++++---- docs/docbook/smbdotconf/base/realm.xml | 25 +++-- docs/docbook/smbdotconf/base/serverstring.xml | 36 +++--- docs/docbook/smbdotconf/base/unixcharset.xml | 24 ++-- docs/docbook/smbdotconf/base/workgroup.xml | 25 +++-- docs/docbook/smbdotconf/generate-file-list.sh | 2 +- docs/docbook/smbdotconf/smbconf.dtd | 3 + 16 files changed, 295 insertions(+), 244 deletions(-) diff --git a/docs/docbook/smbdotconf/base/bindinterfacesonly.xml b/docs/docbook/smbdotconf/base/bindinterfacesonly.xml index 78e1b02bf5e..3ad9aa4614c 100644 --- a/docs/docbook/smbdotconf/base/bindinterfacesonly.xml +++ b/docs/docbook/smbdotconf/base/bindinterfacesonly.xml @@ -1,66 +1,71 @@ - - bind interfaces only (G) - This global parameter allows the Samba admin - to limit what interfaces on a machine will serve SMB requests. It - affects file service smbd - 8 and name service nmbd - 8 in a slightly different ways. + + + This global parameter allows the Samba admin + to limit what interfaces on a machine will serve SMB requests. It + affects file service smbd + 8 and name service nmbd + 8 in a slightly different ways. - For name service it causes nmbd to bind - to ports 137 and 138 on the interfaces listed in the interfaces parameter. nmbd - also binds to the "all addresses" interface (0.0.0.0) - on ports 137 and 138 for the purposes of reading broadcast messages. - If this option is not set then nmbd will service - name requests on all of these sockets. If bind interfaces - only is set then nmbd will check the - source address of any packets coming in on the broadcast sockets - and discard any that don't match the broadcast addresses of the - interfaces in the interfaces parameter list. - As unicast packets are received on the other sockets it allows - nmbd to refuse to serve names to machines that - send packets that arrive through any interfaces not listed in the - interfaces list. IP Source address spoofing - does defeat this simple check, however, so it must not be used - seriously as a security feature for nmbd. + For name service it causes nmbd to bind + to ports 137 and 138 on the interfaces listed in + the interfaces parameter. nmbd also + binds to the "all addresses" interface (0.0.0.0) + on ports 137 and 138 for the purposes of reading broadcast messages. + If this option is not set then nmbd will service + name requests on all of these sockets. If bind interfaces + only is set then nmbd will check the + source address of any packets coming in on the broadcast sockets + and discard any that don't match the broadcast addresses of the + interfaces in the interfaces parameter list. + As unicast packets are received on the other sockets it allows + nmbd to refuse to serve names to machines that + send packets that arrive through any interfaces not listed in the + interfaces list. IP Source address spoofing + does defeat this simple check, however, so it must not be used + seriously as a security feature for nmbd. - For file service it causes smbd - 8 to bind only to the interface list - given in the - interfaces parameter. This restricts the networks that - smbd will serve to packets coming in those - interfaces. Note that you should not use this parameter for machines - that are serving PPP or other intermittent or non-broadcast network - interfaces as it will not cope with non-permanent interfaces. + For file service it causes smbd + 8 to bind only to the interface list + given in the interfaces parameter. This + restricts the networks that smbd will serve + to packets coming in those interfaces. Note that you should not use this parameter + for machines that are serving PPP or other intermittent or non-broadcast network + interfaces as it will not cope with non-permanent interfaces. - If bind interfaces only is set then - unless the network address 127.0.0.1 is added - to the interfaces parameter list smbpasswd - 8 and swat - 8 may not work as expected due to the reasons covered below. + If bind interfaces only is set then + unless the network address 127.0.0.1 is added + to the interfaces parameter + list smbpasswd + 8 and swat + 8 may not work as expected due + to the reasons covered below. - To change a users SMB password, the smbpasswd - by default connects to the localhost - 127.0.0.1 - address as an SMB client to issue the password change request. If - bind interfaces only is set then unless the - network address 127.0.0.1 is added to the - interfaces parameter list then - smbpasswd will fail to connect in it's default mode. - smbpasswd can be forced to use the primary IP interface - of the local host by using its smbpasswd - 8 -r remote machine - parameter, with remote machine set - to the IP name of the primary interface of the local host. + To change a users SMB password, the smbpasswd + by default connects to the localhost - 127.0.0.1 + address as an SMB client to issue the password change request. If + bind interfaces only is set then unless the + network address 127.0.0.1 is added to the + interfaces parameter list then + smbpasswd will fail to connect in it's default mode. + smbpasswd can be forced to use the primary IP interface + of the local host by using its smbpasswd + 8 -r remote machine + parameter, with remote machine set + to the IP name of the primary interface of the local host. - The swat status page tries to connect with - smbd and nmbd at the address - 127.0.0.1 to determine if they are running. - Not adding 127.0.0.1 will cause - smbd and nmbd to always show - "not running" even if they really are. This can prevent - swat from starting/stopping/restarting smbd - and nmbd. + The swat status page tries to connect with + smbd and nmbd at the address + 127.0.0.1 to determine if they are running. + Not adding 127.0.0.1 will cause + smbd and nmbd to always show + "not running" even if they really are. This can prevent + swat from starting/stopping/restarting smbd + and nmbd. - Default: bind interfaces only = no + Default: bind interfaces only = no - - + + diff --git a/docs/docbook/smbdotconf/base/comment.xml b/docs/docbook/smbdotconf/base/comment.xml index 693268a0b0f..f08d06ef255 100644 --- a/docs/docbook/smbdotconf/base/comment.xml +++ b/docs/docbook/smbdotconf/base/comment.xml @@ -1,14 +1,18 @@ - - comment (S) - This is a text field that is seen next to a share - when a client does a queries the server, either via the network - neighborhood or via net view to list what shares - are available. + + + This is a text field that is seen next to a share + when a client does a queries the server, either via the network + neighborhood or via net view to list what shares + are available. - If you want to set the string that is displayed next to the - machine name then see the - server string parameter. + If you want to set the string that is displayed next to the + machine name then see the + server string parameter. - Default: No comment string - Example: comment = Fred's Files - + Default: No comment string + Example: comment = Fred's Files + + diff --git a/docs/docbook/smbdotconf/base/directory.xml b/docs/docbook/smbdotconf/base/directory.xml index 1ec4ab7e1ad..f912c39c8c5 100644 --- a/docs/docbook/smbdotconf/base/directory.xml +++ b/docs/docbook/smbdotconf/base/directory.xml @@ -1,5 +1,9 @@ - - directory (S) - Synonym for path - . - + + + + Synonym for path. + + diff --git a/docs/docbook/smbdotconf/base/displaycharset.xml b/docs/docbook/smbdotconf/base/displaycharset.xml index add519e7839..e02842ab48a 100644 --- a/docs/docbook/smbdotconf/base/displaycharset.xml +++ b/docs/docbook/smbdotconf/base/displaycharset.xml @@ -1,13 +1,16 @@ - - display charset (G) - Specifies the charset that samba will use - to print messages to stdout and stderr and SWAT will use. - Should generally be the same as the unix charset. - + + + Specifies the charset that samba will use + to print messages to stdout and stderr and SWAT will use. + Should generally be the same as the unix charset. + - Default: display charset = ASCII + Default: display charset = ASCII - Example: display charset = UTF8 + Example: display charset = UTF8 - - + + diff --git a/docs/docbook/smbdotconf/base/doscharset.xml b/docs/docbook/smbdotconf/base/doscharset.xml index db767e720ca..5fc718dcaa3 100644 --- a/docs/docbook/smbdotconf/base/doscharset.xml +++ b/docs/docbook/smbdotconf/base/doscharset.xml @@ -1,14 +1,16 @@ - - dos charset (G) - DOS SMB clients assume the server has - the same charset as they do. This option specifies which - charset Samba should talk to DOS clients. - + + + DOS SMB clients assume the server has + the same charset as they do. This option specifies which + charset Samba should talk to DOS clients. + - The default depends on which charsets you have installed. - Samba tries to use charset 850 but falls back to ASCII in - case it is not available. Run testparm - 1 to check the default on your system. - - - + The default depends on which charsets you have installed. + Samba tries to use charset 850 but falls back to ASCII in + case it is not available. Run testparm + 1 to check the default on your system. + + diff --git a/docs/docbook/smbdotconf/base/interfaces.xml b/docs/docbook/smbdotconf/base/interfaces.xml index 1125ad05590..3fa346e206a 100644 --- a/docs/docbook/smbdotconf/base/interfaces.xml +++ b/docs/docbook/smbdotconf/base/interfaces.xml @@ -1,49 +1,51 @@ - - interfaces (G) - This option allows you to override the default - network interfaces list that Samba will use for browsing, name - registration and other NBT traffic. By default Samba will query - the kernel for the list of all active interfaces and use any - interfaces except 127.0.0.1 that are broadcast capable. + + + This option allows you to override the default + network interfaces list that Samba will use for browsing, name + registration and other NBT traffic. By default Samba will query + the kernel for the list of all active interfaces and use any + interfaces except 127.0.0.1 that are broadcast capable. - The option takes a list of interface strings. Each string - can be in any of the following forms: + The option takes a list of interface strings. Each string + can be in any of the following forms: - - a network interface name (such as eth0). - This may include shell-like wildcards so eth* will match - any interface starting with the substring "eth" + + a network interface name (such as eth0). + This may include shell-like wildcards so eth* will match + any interface starting with the substring "eth" - an IP address. In this case the netmask is - determined from the list of interfaces obtained from the - kernel + an IP address. In this case the netmask is + determined from the list of interfaces obtained from the + kernel - an IP/mask pair. + an IP/mask pair. - a broadcast/mask pair. - + a broadcast/mask pair. + - The "mask" parameters can either be a bit length (such - as 24 for a C class network) or a full netmask in dotted - decimal form. + The "mask" parameters can either be a bit length (such + as 24 for a C class network) or a full netmask in dotted + decimal form. - The "IP" parameters above can either be a full dotted - decimal IP address or a hostname which will be looked up via - the OS's normal hostname resolution mechanisms. + The "IP" parameters above can either be a full dotted + decimal IP address or a hostname which will be looked up via + the OS's normal hostname resolution mechanisms. - For example, the following line: + For example, the following line: - interfaces = eth0 192.168.2.10/24 192.168.3.10/255.255.255.0 - + interfaces = eth0 192.168.2.10/24 192.168.3.10/255.255.255.0 - would configure three network interfaces corresponding - to the eth0 device and IP addresses 192.168.2.10 and 192.168.3.10. - The netmasks of the latter two interfaces would be set to 255.255.255.0. + would configure three network interfaces corresponding + to the eth0 device and IP addresses 192.168.2.10 and 192.168.3.10. + The netmasks of the latter two interfaces would be set to 255.255.255.0. - See also bind - interfaces only. + See also bind + interfaces only. - Default: all active interfaces except 127.0.0.1 - that are broadcast capable - - + Default: all active interfaces except 127.0.0.1 + that are broadcast capable + + diff --git a/docs/docbook/smbdotconf/base/netbiosaliases.xml b/docs/docbook/smbdotconf/base/netbiosaliases.xml index b0a7688a839..a62fb8f7d68 100644 --- a/docs/docbook/smbdotconf/base/netbiosaliases.xml +++ b/docs/docbook/smbdotconf/base/netbiosaliases.xml @@ -1,17 +1,20 @@ - - netbios aliases (G) - This is a list of NetBIOS names that nmbd(8) will advertise as additional - names by which the Samba server is known. This allows one machine - to appear in browse lists under multiple names. If a machine is - acting as a browse server or logon server none - of these names will be advertised as either browse server or logon - servers, only the primary name of the machine will be advertised - with these capabilities. + + + This is a list of NetBIOS names that nmbd(8) will + advertise as additional names by which the Samba server is known. This allows one machine + to appear in browse lists under multiple names. If a machine is acting as a browse server + or logon server none of these names will be advertised as either browse server or logon + servers, only the primary name of the machine will be advertised with these capabilities. + - See also netbios - name. + See also netbios + name. - Default: empty string (no additional names) - Example: netbios aliases = TEST TEST1 TEST2 - - + Default: empty string (no additional names) + + Example: netbios aliases = TEST TEST1 TEST2 + + diff --git a/docs/docbook/smbdotconf/base/netbiosname.xml b/docs/docbook/smbdotconf/base/netbiosname.xml index 2daf26e2b34..287a8f9f9f3 100644 --- a/docs/docbook/smbdotconf/base/netbiosname.xml +++ b/docs/docbook/smbdotconf/base/netbiosname.xml @@ -1,16 +1,20 @@ - - netbios name (G) - This sets the NetBIOS name by which a Samba - server is known. By default it is the same as the first component - of the host's DNS name. If a machine is a browse server or - logon server this name (or the first component - of the hosts DNS name) will be the name that these services are - advertised under. + + + This sets the NetBIOS name by which a Samba + server is known. By default it is the same as the first component + of the host's DNS name. If a machine is a browse server or + logon server this name (or the first component + of the hosts DNS name) will be the name that these services are + advertised under. - See also netbios - aliases. + See also netbios + aliases. - Default: machine DNS name - Example: netbios name = MYNAME - - + Default: machine DNS name + + Example: netbios name = MYNAME + + diff --git a/docs/docbook/smbdotconf/base/netbiosscope.xml b/docs/docbook/smbdotconf/base/netbiosscope.xml index fd0e4ad40c1..8c5866bc321 100644 --- a/docs/docbook/smbdotconf/base/netbiosscope.xml +++ b/docs/docbook/smbdotconf/base/netbiosscope.xml @@ -1,7 +1,10 @@ - - netbios scope (G) - This sets the NetBIOS scope that Samba will - operate under. This should not be set unless every machine - on your LAN also sets this value. - - + + + This sets the NetBIOS scope that Samba will + operate under. This should not be set unless every machine + on your LAN also sets this value. + + diff --git a/docs/docbook/smbdotconf/base/path.xml b/docs/docbook/smbdotconf/base/path.xml index 7d65e10b2be..9f0a7cd9762 100644 --- a/docs/docbook/smbdotconf/base/path.xml +++ b/docs/docbook/smbdotconf/base/path.xml @@ -1,27 +1,31 @@ - - path (S) - This parameter specifies a directory to which - the user of the service is to be given access. In the case of - printable services, this is where print data will spool prior to - being submitted to the host for printing. + + + This parameter specifies a directory to which + the user of the service is to be given access. In the case of + printable services, this is where print data will spool prior to + being submitted to the host for printing. - For a printable service offering guest access, the service - should be readonly and the path should be world-writeable and - have the sticky bit set. This is not mandatory of course, but - you probably won't get the results you expect if you do - otherwise. + For a printable service offering guest access, the service + should be readonly and the path should be world-writeable and + have the sticky bit set. This is not mandatory of course, but + you probably won't get the results you expect if you do + otherwise. - Any occurrences of %u in the path - will be replaced with the UNIX username that the client is using - on this connection. Any occurrences of %m - will be replaced by the NetBIOS name of the machine they are - connecting from. These replacements are very useful for setting - up pseudo home directories for users. + Any occurrences of %u in the path + will be replaced with the UNIX username that the client is using + on this connection. Any occurrences of %m + will be replaced by the NetBIOS name of the machine they are + connecting from. These replacements are very useful for setting + up pseudo home directories for users. - Note that this path will be based on - root dir if one was specified. + Note that this path will be based on + root dir if one was specified. - Default: none - Example: path = /home/fred - - + Default: none + + Example: path = /home/fred + + diff --git a/docs/docbook/smbdotconf/base/realm.xml b/docs/docbook/smbdotconf/base/realm.xml index 50c7d26eeab..c0b1d1aad68 100644 --- a/docs/docbook/smbdotconf/base/realm.xml +++ b/docs/docbook/smbdotconf/base/realm.xml @@ -1,12 +1,15 @@ - - realm (G) - - This option specifies the kerberos realm to use. The realm is - used as the ADS equivalent of the NT4domain. It - is usually set to the DNS name of the kerberos server. - + + + This option specifies the kerberos realm to use. The realm is + used as the ADS equivalent of the NT4 domain. It + is usually set to the DNS name of the kerberos server. + - Default: realm = - Example: realm = mysambabox.mycompany.com - - + Default: realm = + + Example: realm = mysambabox.mycompany.com + + diff --git a/docs/docbook/smbdotconf/base/serverstring.xml b/docs/docbook/smbdotconf/base/serverstring.xml index a47ac4cf420..5935dd80ddd 100644 --- a/docs/docbook/smbdotconf/base/serverstring.xml +++ b/docs/docbook/smbdotconf/base/serverstring.xml @@ -1,22 +1,24 @@ - - server string (G) - This controls what string will show up in the - printer comment box in print manager and next to the IPC connection - in net view. It can be any string that you wish - to show to your users. + + + This controls what string will show up in the printer comment box in print + manager and next to the IPC connection in net view. It + can be any string that you wish to show to your users. - It also sets what will appear in browse lists next - to the machine name. + It also sets what will appear in browse lists next + to the machine name. - A %v will be replaced with the Samba - version number. + A %v will be replaced with the Samba + version number. - A %h will be replaced with the - hostname. + A %h will be replaced with the + hostname. - Default: server string = Samba %v + Default: server string = Samba %v - Example: server string = University of GNUs Samba - Server - - + Example: server string = University of GNUs Samba + Server + + diff --git a/docs/docbook/smbdotconf/base/unixcharset.xml b/docs/docbook/smbdotconf/base/unixcharset.xml index 0ea84e38c87..f003c097aa6 100644 --- a/docs/docbook/smbdotconf/base/unixcharset.xml +++ b/docs/docbook/smbdotconf/base/unixcharset.xml @@ -1,11 +1,15 @@ - - unix charset (G) - Specifies the charset the unix machine - Samba runs on uses. Samba needs to know this in order to be able to - convert text to the charsets other SMB clients use. - + + + Specifies the charset the unix machine + Samba runs on uses. Samba needs to know this in order to be able to + convert text to the charsets other SMB clients use. + - Default: unix charset = UTF8 - Example: unix charset = ASCII - - + Default: unix charset = UTF8 + + Example: unix charset = ASCII + + diff --git a/docs/docbook/smbdotconf/base/workgroup.xml b/docs/docbook/smbdotconf/base/workgroup.xml index 71ea89d2020..65300bca589 100644 --- a/docs/docbook/smbdotconf/base/workgroup.xml +++ b/docs/docbook/smbdotconf/base/workgroup.xml @@ -1,11 +1,16 @@ - - workgroup (G) - This controls what workgroup your server will - appear to be in when queried by clients. Note that this parameter - also controls the Domain name used with the security = domain - setting. + + + This controls what workgroup your server will + appear to be in when queried by clients. Note that this parameter + also controls the Domain name used with + the security = domain + setting. - Default: set at compile time to WORKGROUP - Example: workgroup = MYGROUP - - + Default: set at compile time to WORKGROUP + + Example: workgroup = MYGROUP + + diff --git a/docs/docbook/smbdotconf/generate-file-list.sh b/docs/docbook/smbdotconf/generate-file-list.sh index f61ac4f49ca..3495f50c432 100755 --- a/docs/docbook/smbdotconf/generate-file-list.sh +++ b/docs/docbook/smbdotconf/generate-file-list.sh @@ -1,6 +1,6 @@ #!/bin/sh echo "" -find . -type f -name '*.xml' -mindepth 2 | sort | +find . -type f -name '*.xml' -mindepth 2 | sort -t/ -k3 | while read ; do echo "" done diff --git a/docs/docbook/smbdotconf/smbconf.dtd b/docs/docbook/smbdotconf/smbconf.dtd index 00340a7db93..591c9b2738a 100644 --- a/docs/docbook/smbdotconf/smbconf.dtd +++ b/docs/docbook/smbdotconf/smbconf.dtd @@ -4,4 +4,7 @@ + + + -- cgit From 8f1c78df1088beeb11de54b0369b4e5f036004d4 Mon Sep 17 00:00:00 2001 From: Alexander Bokovoy Date: Thu, 27 Mar 2003 18:56:42 +0000 Subject: Reflect current conversion status --- docs/docbook/smbdotconf/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docbook/smbdotconf/README b/docs/docbook/smbdotconf/README index f50a944e7bf..e69d30af5fd 100644 --- a/docs/docbook/smbdotconf/README +++ b/docs/docbook/smbdotconf/README @@ -149,7 +149,7 @@ process-all.sh Current state of converted parameters ------------------------------------- -Only 'ads server' parameter converted so far to serve as example of +Only 'base' parameters converted so far to serve as example of formatting. All undocumented parameters are listed in doc-status file in of Samba's -- cgit From 7fc49746dfd8d93066fe6870e3b642a5898aa032 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 27 Mar 2003 23:02:43 +0000 Subject: Doc updates from John + some minor fixes by me --- docs/docbook/global.ent | 62 ++- docs/docbook/manpages/smbsh.1.sgml | 83 +--- docs/docbook/projdoc/CUPS-printing.sgml | 843 +++++++++++++++++++------------- docs/docbook/projdoc/ServerType.sgml | 1 + docs/docbook/projdoc/samba-doc.sgml | 2 + 5 files changed, 573 insertions(+), 418 deletions(-) diff --git a/docs/docbook/global.ent b/docs/docbook/global.ent index 018d29a6a81..659c448ed1b 100644 --- a/docs/docbook/global.ent +++ b/docs/docbook/global.ent @@ -96,6 +96,66 @@ never removed by the client. &stdarg.logfile; '> + +-R <name resolve order> +This option is used to determine what naming +services and in what order to resolve +host names to IP addresses. The option takes a space-separated +string of different name resolution options. + +The options are: "lmhosts", "host", "wins" and "bcast". +They cause names to be resolved as follows : + + +lmhosts: +Lookup an IP address in the Samba lmhosts file. If the +line in lmhosts has no name type attached to the +NetBIOS name +(see the lmhosts + 5 for details) +then any name type matches for lookup. + + +host: +Do a standard host name to IP address resolution, using +the system /etc/hosts, NIS, or DNS +lookups. This method of name resolution is operating +system dependent, for instance on IRIX or Solaris this +may be controlled by the /etc/nsswitch.conf + file). Note that this method is only used +if the NetBIOS name type being queried is the 0x20 +(server) name type, otherwise it is ignored. + + +wins: +Query a name with the IP address listed in the +wins server parameter. If no +WINS server has been specified this method will be +ignored. + + +bcast: +Do a broadcast on each of the known local interfaces +listed in the interfaces +parameter. This is the least reliable of the name +resolution methods as it depends on the target host +being on a locally connected subnet. + + + +If this parameter is not set then the name resolve order +defined in the smb.conf +5 file parameter +(name resolve order) will be used. + +The default order is lmhosts, host, wins, bcast. Without +this parameter or any entry in the name resolve order + parameter of the smb.conf +5 file, the name resolution methods +will be attempted in this order. +'> + -n <primary NetBIOS name> @@ -109,8 +169,6 @@ line setting will take precedence over settings in 5. '> - - -i <scope> diff --git a/docs/docbook/manpages/smbsh.1.sgml b/docs/docbook/manpages/smbsh.1.sgml index af080c298c9..5a53c53be37 100644 --- a/docs/docbook/manpages/smbsh.1.sgml +++ b/docs/docbook/manpages/smbsh.1.sgml @@ -70,87 +70,8 @@ - - -R <name resolve order> - This option is used to determine what naming - services and in what order to resolve - host names to IP addresses. The option takes a space-separated - string of different name resolution options. - - The options are: "lmhosts", "host", "wins" and "bcast". - They cause names to be resolved as follows : - - - lmhosts: - Lookup an IP address in the Samba lmhosts file. If the - line in lmhosts has no name type attached to the - NetBIOS name - (see the lmhosts - 5 for details) - then any name type matches for lookup. - - - host: - Do a standard host name to IP address resolution, using - the system /etc/hosts, NIS, or DNS - lookups. This method of name resolution is operating - system dependent, for instance on IRIX or Solaris this - may be controlled by the /etc/nsswitch.conf - file). Note that this method is only used - if the NetBIOS name type being queried is the 0x20 - (server) name type, otherwise it is ignored. - - - wins: - Query a name with the IP address listed in the - wins server parameter. If no - WINS server has been specified this method will be - ignored. - - - bcast: - Do a broadcast on each of the known local interfaces - listed in the interfaces - parameter. This is the least reliable of the name - resolution methods as it depends on the target host - being on a locally connected subnet. - - - - If this parameter is not set then the name resolve order - defined in the smb.conf - 5 file parameter - (name resolve order) will be used. - - The default order is lmhosts, host, wins, bcast. Without - this parameter or any entry in the name resolve order - parameter of the smb.conf - 5 file, the name resolution methods - will be attempted in this order. - - - - -d <debug level> - debug level is an integer from 0 to 10. - - The default value if this parameter is not specified - is zero. - - The higher this value, the more detail will be logged - about the activities of nmblookup - 1. At level - 0, only critical errors and serious warnings will be logged. - - - - - -l logfilename - If specified causes all debug messages to be - written to the file specified by logfilename - . If not specified then all messages will be - written tostderr. - - + &popt.common.samba; + &stdarg.resolve.order; -L libdir diff --git a/docs/docbook/projdoc/CUPS-printing.sgml b/docs/docbook/projdoc/CUPS-printing.sgml index bfd23e3c6cd..a932127d94a 100644 --- a/docs/docbook/projdoc/CUPS-printing.sgml +++ b/docs/docbook/projdoc/CUPS-printing.sgml @@ -64,13 +64,12 @@ do any print file format conversion work. The CUPS files that need to be correctly set for RAW mode printers to work are: - - /etc/cups/mime.types + /etc/cups/mime.types /etc/cups/mime.convs - + -Both contain entries that must be uncommented to allow RAW mode +Both contain entries that must be uncommented to allow RAW mode operation. @@ -78,17 +77,17 @@ operation. Firstly, to enable CUPS based printing from Samba the following options must be enabled in your smb.conf file [globals] section: - + printing = CUPS printcap = CUPS - + When these parameters are specified the print directives in smb.conf (as well as in samba itself) will be ignored because samba will directly interface with CUPS through it's application program interface (API) - so long as Samba has been compiled with CUPS library (libcups) support. If samba has NOT been compiled with CUPS support then -printing will use the System V AT&T command set with the -oraw +printing will use the System V AT&T command set with the -oraw option automatically passing through. @@ -103,16 +102,14 @@ at the time when the driver initially generated the PostScript data and CUPS in printer communication backend. - -NOTE: editing in the "mime.convs" and the "mime.types" file does not *enforce* -"raw" printing, it only *allows* it. - +NOTE: editing in the "mime.convs" and the "mime.types" file does not *enforce* +"raw" printing, it only *allows* it. Print files that arrive from MS Windows printing are "auto-typed" by CUPS. This aids the process of determining proper treatment while in the print queue system. - + Files generated by PCL drivers and directed at PCK printers get auto-typed as application/octet-stream. Unknown file format types also @@ -123,12 +120,12 @@ the process of determining proper treatment while in the print queue system. Files generated by a Postscript driver and directed at a Postscript printer are auto-typed depending on the auto-detected most suitable MIME type as: - + * application/postscript * application/vnd.cups-postscript - + - + @@ -160,7 +157,7 @@ or "cupsomatic" will take over (depending on the printer configuration, as determined by the PPD in use). - + A printer queue with *no* PPD associated to it is a "raw" printer and all files will go directly there as received by the spooler. The exeptions are file types "application/octet-stream" which need "passthrough feature" enabled. @@ -168,9 +165,9 @@ will go directly there as received by the spooler. The exeptions are file types CUPS backend. This backend is responsible for the sending of the data to the device (as in the "device URI" notation as lpd://, socket://, smb://, ipp://, http://, parallel:/, serial:/, usb:/ etc.) - + - + "cupsomatic"/Foomatic are *not* native CUPS drivers and they don't ship with CUPS. They are a Third Party add-on, developed at Linuxprinting.org. As such, they are a brilliant hack to make all models (driven by Ghostscript drivers/filters in @@ -191,7 +188,7 @@ This line persuades CUPS to hand the file to cupsomatic, once it has successfull converted it to the MIME type "application/vnd.cups-postscript". This conversion will not happen for Jobs arriving from Windows which are auto-typed "application/octet-stream", with the according changes in "/etc/cups/mime.types" in place. - + CUPS is widely configurable and flexible, even regarding its filtering mechanism. @@ -262,11 +259,11 @@ The following diagrams reveal how CUPS handles print jobs. # letters are FILE-FORMATS or MIME types, other are filters (this is # true for pre-1.1.15 of pre-4.3 versions of CUPS and ESP PrintPro): # -# -FILEFORMAT +# SOMETHNG-FILEFORMAT # | # | # V -# tops +# somethingtops # | # | # V @@ -291,7 +288,7 @@ The following diagrams reveal how CUPS handles print jobs. # | # | # V -# rasterto (f.e. Gimp-Print filters may be plugged in here) +# rastertosomething (f.e. Gimp-Print filters may be plugged in here) # | (= "raster driver") # | # V @@ -302,11 +299,11 @@ The following diagrams reveal how CUPS handles print jobs. # backend # # -# ESP PrintPro has some enhanced "rasterto" filters as compared to +# ESP PrintPro has some enhanced "rastertosomething" filters as compared to # CUPS, and also a somewhat improved "pstoraster" filter. # # NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to -# CUPS and ESP PrintPro plug-in where rasterto is noted. +# CUPS and ESP PrintPro plug-in where rastertosomething is noted. # ######################################################################### @@ -317,11 +314,11 @@ The following diagrams reveal how CUPS handles print jobs. # This is how "cupsomatic" comes into play: # ========================================= # -# -FILEFORMAT +# SOMETHNG-FILEFORMAT # | # | # V -# tops +# somethingtops # | # | # V @@ -341,11 +338,11 @@ The following diagrams reveal how CUPS handles print jobs. # | (= "postscipt interpreter") Ghostscript commandline # | to let the file be # V processed by a -# APPLICATION/VND.CUPS-RASTER "-sDEVICE=" +# APPLICATION/VND.CUPS-RASTER "-sDEVICE=s.th." # | call...) # | | # V | -# rasterto V +# rastertosomething V # | (= "raster driver") +-------------------------+ # | | Ghostscript at work.... | # V | | @@ -353,7 +350,7 @@ The following diagrams reveal how CUPS handles print jobs. # | | # | | # V | -# backend <------------------------------------+ +# backend >------------------------------------+ # | # | # V @@ -364,7 +361,7 @@ The following diagrams reveal how CUPS handles print jobs. # "APPLICATION/VND.CUPS-POSTSCRPT" stage and deviates it through # the CUPS-external, systemwide Ghostscript installation, bypassing the # "pstoraster" filter (therefor also bypassing the CUPS-raster-drivers -# "rasterto", and hands the rasterized file directly to the CUPS +# "rastertosomething", and hands the rasterized file directly to the CUPS # backend... # # cupsomatic is not made by the CUPS developers. It is an independent @@ -372,7 +369,7 @@ The following diagrams reveal how CUPS handles print jobs. # Linuxprinting.org. (see also http://www.cups.org/cups-help.html) # # NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to -# CUPS and ESP PrintPro plug-in where rasterto is noted. +# CUPS and ESP PrintPro plug-in where rastertosomething is noted. # ######################################################################### @@ -383,11 +380,11 @@ The following diagrams reveal how CUPS handles print jobs. # And this is how it works for ESP PrintPro from 4.3: # =================================================== # -# -FILEFORMAT +# SOMETHNG-FILEFORMAT # | # | # V -# tops +# somethingtops # | # | # V @@ -411,7 +408,7 @@ The following diagrams reveal how CUPS handles print jobs. # | # | # V -# rasterto (f.e. Gimp-Print filters may be plugged in here) +# rastertosomething (f.e. Gimp-Print filters may be plugged in here) # | (= "raster driver") # | # V @@ -422,7 +419,7 @@ The following diagrams reveal how CUPS handles print jobs. # backend # # NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to -# CUPS and ESP PrintPro plug-in where rasterto is noted. +# CUPS and ESP PrintPro plug-in where rastertosomething is noted. # ######################################################################### @@ -434,11 +431,11 @@ The following diagrams reveal how CUPS handles print jobs. # ================================================================ # # -# -FILEFORMAT +# SOMETHNG-FILEFORMAT # | # | # V -# tops +# somethingtops # | # | # V @@ -458,11 +455,11 @@ The following diagrams reveal how CUPS handles print jobs. # | (= "postscipt interpreter") Ghostscript commandline # | to let the file be # V processed by a -# APPLICATION/VND.CUPS-RASTER "-sDEVICE=" +# APPLICATION/VND.CUPS-RASTER "-sDEVICE=s.th." # | call...) # | | # V | -# rasterto V +# rastertosomething V # | (= "raster driver") +-------------------------+ # | | Ghostscript at work.... | # V | | @@ -470,14 +467,14 @@ The following diagrams reveal how CUPS handles print jobs. # | | # | | # V | -# backend <------------------------------------+ +# backend >------------------------------------+ # | # | # V # THE PRINTER # # NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to -# CUPS and ESP PrintPro plug-in where rasterto is noted. +# CUPS and ESP PrintPro plug-in where rastertosomething is noted. # ######################################################################### @@ -488,11 +485,11 @@ The following diagrams reveal how CUPS handles print jobs. # And this is how it works for CUPS from 1.1.15: # ============================================== # -# -FILEFORMAT +# SOMETHNG-FILEFORMAT # | # | # V -# tops +# somethingtops # | # | # V @@ -517,11 +514,11 @@ The following diagrams reveal how CUPS handles print jobs. # +------------------v------------------------------+ # | # | -# APPLICATION/VND.CUPS-RASTER <-------+ +# APPLICATION/VND.CUPS-RASTER >-------+ # | # | # V -# rasterto +# rastertosomething # | (= "raster driver") # | # V @@ -538,14 +535,14 @@ The following diagrams reveal how CUPS handles print jobs. # "gs -h" needs to show up a "cups" device. pstoraster is now a # calling an appropriate "gs -sDEVICE=cups..." commandline to do # the job. It will output "application/vnd.cup-raster", which will -# be finally processed by a CUPS raster driver "rasterto" +# be finally processed by a CUPS raster driver "rastertosomething" # Note the difference to "cupsomatic", which will *not* output # CUPS-raster, but a final version of the printfile, ready to be # sent to the printer. cupsomatic also doesn't use the "cups" # devicemode in Ghostscript, but one of the classical devicemodes.... # # NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to -# CUPS and ESP PrintPro plug-in where rasterto is noted. +# CUPS and ESP PrintPro plug-in where rastertosomething is noted. # ######################################################################### @@ -556,11 +553,11 @@ The following diagrams reveal how CUPS handles print jobs. # And this is how it works for CUPS from 1.1.15, with cupsomatic included: # ======================================================================== # -# -FILEFORMAT +# SOMETHNG-FILEFORMAT # | # | # V -# tops +# somethingtops # | # | # V @@ -577,7 +574,7 @@ The following diagrams reveal how CUPS handles print jobs. # +------------------v------------------------------+ # | Ghostscript . Ghostscript at work.... | # | at work... . (with "-sDEVICE= | -# | (with . " | +# | (with . s.th." | # | "-sDEVICE=cups") . | # | . | # | (CUPS standard) . (cupsomatic) | @@ -587,15 +584,15 @@ The following diagrams reveal how CUPS handles print jobs. # +------------------v--------------v---------------+ # | | # | | -# APPLICATION/VND.CUPS-RASTER <-------+ | +# APPLICATION/VND.CUPS-RASTER >-------+ | # | | # | | # V | -# rasterto | +# rastertosomething | # | (= "raster driver") | # | | # V | -# SOMETHING-DEVICE-SPECIFIC <------------------------+ +# SOMETHING-DEVICE-SPECIFIC >------------------------+ # | # | # V @@ -603,7 +600,7 @@ The following diagrams reveal how CUPS handles print jobs. # # # NOTE: Gimp-Print and some other 3rd-Party-Filters (like TurboPrint) to -# CUPS and ESP PrintPro plug-in where rasterto is noted. +# CUPS and ESP PrintPro plug-in where rastertosomething is noted. # ########################################################################## @@ -618,161 +615,196 @@ The following diagrams reveal how CUPS handles print jobs. CUPS ships with good support for HP LaserJet type printers. You can install the driver as follows: - + lpadmin -p laserjet4plus -v parallel:/dev/lp0 -E -m laserjet.ppd - + (The "-m" switch will retrieve the "laserjet.ppd" from the standard repository for not-yet-installed-PPDs, which CUPS typically stores in -filename>/usr/share/cups/model. Alternatively, you may use +/usr/share/cups/model. Alternatively, you may use "-P /absolute/filesystem/path/to/where/there/is/PPD/your.ppd"). - - -Windows printing involves some more steps.... - -But let me first point out some more general things about printer "drivers" -for Linux/Unix (yes, and for Mac OS X now!), be it you use CUPS or one of -the venerable (I'd even call them "ancient" and "rusty" now...) printing -systems. + +Further printing steps -You -- and everybody else, for that matter -- should always also consult the -database on linuxprinting.org for all recommendations about "which driver -is best used for which printer": + +Always also consult the database on linuxprinting.org for all recommendations +about which driver is best used for each printer: + - http://www.linuxprinting.org/printer_list.cgi +http://www.linuxprinting.org/printer_list.cgi + There select your model and click on "Show". You'll arrive at a page listing -all drivers working with your model. There will always be *one* "recommended" -one. Try this one first. In your case ("HP LaserJet 4 Plus"), you'll arrive -here: +all drivers working with your model. There will always be *one* +recommended one. Try this one first. In your case +("HP LaserJet 4 Plus"), you'll arrive here: + - http://www.linuxprinting.org/show_printer.cgi?recnum=75104 +http://www.linuxprinting.org/show_printer.cgi?recnum=75104 + The recommended driver is "ljet4". It has a link to the page for the ljet4 driver too: + - http://www.linuxprinting.org/show_driver.cgi?driver=ljet4 +http://www.linuxprinting.org/show_driver.cgi?driver=ljet4 -On the driver's page, you'll find various important and detailed infos about -how to use that driver within various spoolers. You can generate a PPD for + +On the driver's page, you'll find important and detailed info about how to use +that driver within the various available spoolers. You can generate a PPD for CUPS. The PPD contains all the info about how to use your model and the driver; this is, once installed, working transparently for the user -- you'll only need to choose resolution, paper size etc. from the web-based menu or from the print dialog GUI or from the commandline... + + On the driver's page, choose to use the "PPD-O-Matic" online PPD generator program. Select your model and click "Generate PPD file". When you safe the -appearing ASCII text file, don't use "cut'n'past" (as it will possible corrupt +appearing ASCII text file, don't use "cut'n'past" (as it could possiblly corrupt line endings and tabs), but use "Save as..." in your browser's menu. Save it at "/some/path/on/your/filesystem/somewhere/my-name-for-my-printer.ppd" + + Then install the printer: - + + "lpadmin -p laserjet4plus -v parallel:/dev/lp0 -E -P /some/path/on/your/filesystem/somewhere/my-name-for-my-printer.ppd" + + Note, that for all the "Foomatic-PPDs" from Linuxprinting.org, you also need a special "CUPS filter" named "cupsomatic". Get the latest version of -"cupsomatic" from +"cupsomatic" from: + - http://www.linuxprinting.org/cupsomatic +http://www.linuxprinting.org/cupsomatic -This needs to be copied to "/usr/lib/cups/filter/cupsomatic" and be made world -executable. This filter is needed to read and act upon the specially encoded -Foomatic comments, embedded in the printfile, which in turn are used to -construct (transparently for you, the user) the complicated ghostscript command -line needed for your printer/driver combo. + +This needs to be copied to /usr/lib/cups/filter/cupsomatic +and be made world executable. This filter is needed to read and act upon the +specially encoded Foomatic comments, embedded in the printfile, which in turn +are used to construct (transparently for you, the user) the complicated +ghostscript command line needed for your printer/driver combo. + + You can have a look at all the options for the Ghostscript commandline supported by your printer and the ljet4 driver by going to the section "Execution details", selecting your model (Laserjet 4 Plus) and clicking on "Show execution details". This will bring up this web page: + - http://www.linuxprinting.org/execution.cgi?driver=ljet4&printer=75104&.submit=Show+execution+details +http://www.linuxprinting.org/execution.cgi?driver=ljet4&printer=75104&.submit=Show+execution+details -The ingenious thing is this: the database is kept very current. If there + +The ingenious thing is that the database is kept current. If there is a bug fix and an improvement somewhere in the database, you will always get the most current and stable and feature-rich driver by following -the steps described above... Till Kamppeter from MandrakeSoft is doing an -excellent job here, and too few people still know about it. (So if you use -it often, please send him a note of your appreciation sometime...) +the steps described above. + -(The latest and greatest improvement now is support for "custom page sizes" -for all those printers which support it...) + +Till Kamppeter from MandrakeSoft is doing an excellent job here that too few +people are aware of. (So if you use it often, please send him a note showing +your appreciation). + +The latest and greatest improvement now is support for "custom page sizes" +for all those printers which support it. + + + "cupsomatic" is documented here: + - http://www.linuxprinting.org/cups-doc.html +http://www.linuxprinting.org/cups-doc.html + More printing tutorial info may be found here: + - http://www.linuxprinting.org/kpfeifle/LinuxKongress2002/Tutorial/ +http://www.linuxprinting.org/kpfeifle/LinuxKongress2002/Tutorial/ + Note, that *all* the Foomatic drivers listed on Linuxprinting.org (now approaching the "all-time high" number of 1.000 for the supported models) are using a special filtering chain involving Ghostscript, as described -in great detail in the Samba CVS sources (for 2.2.x) in +in this document. + - docs/textdocs/CUPS-PrintingInfo.txt + +Summary - You need: + -To sum it up: + + -* having a "foomatic+" PPD is not enough to print with CUPS - (but it is *one* important component) -* you also need the "cupsomatic" filter script (Perl) in "/usr/lib/cups/filters/" -* you need Perl to make cupsomatic run -* you also need Ghostscript (because it is called and controlled by the - PPD/cupsomatic combo in a way to fit your printermodel/driver combo...) -* your Ghostscript *must*, depending on the driver/model, contain support - for a certain "device" (as shown by "gs -h") + A "foomatic+something" PPD is not enough to print with CUPS (but it is *one* important component) + The "cupsomatic" filter script (Perl) in /usr/lib/cups/filters/ + Perl to make cupsomatic run + Ghostscript (because it is called and controlled by the PPD/cupsomatic combo in a way to fit your printermodel/driver combo. + Ghostscript *must*, depending on the driver/model, contain support for a certain "device" (as shown by "gs -h") + + In the case of the "hpijs" driver, you need a Ghostscript version, which -is showing a "ijs" amongst its supported devices in "gs -h". In the case of +has "ijs" amongst its supported devices in "gs -h". In the case of "hpijs+foomatic", a valid ghostscript commandline would be reading like this: + + gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=ijs \ - -sIjsServer=hpijs -dDuplex= \ - -r,PS:MediaPosition= -dIjsUseOutputFD \ + -sIjsServer=hpijsPageSize -dDuplex=Duplex Model \ + -rResolution,PS:MediaPosition=InputSlot -dIjsUseOutputFD \ -sOutputFile=- - + + Note, that with CUPS and the "hpijs+foomatic" PPD (plus Perl and cupsomatic) you don't need to remember this. You can choose the available print options thru a GUI print command (like "glp" from ESP's commercially supported PrintPro software, or KDE's "kprinter", or GNOME's "gtklp" or the independent "xpp") or the CUPS web interface via human-readable drop-down selection -menus..... +menus. + + If you use "ESP Ghostscript" (also under the GPL, provided by Easy Software -Products, the makers of CUPS, downloadable from http://www.cups.org/software.html, +Products, the makers of CUPS, downloadable from +http://www.cups.org/software.html, co-maintained by the developers of linuxprinting.org), you are guaranteed to have in use the most uptodate, bug-fixed, enhanced and stable version of a Free Ghostscript. It contains support for ~300 devices, whereas plain vanilla -GNU Ghostscript 7.05 only has ~200.... - ->>/ However, I can only print a Cups test page, from the web interface. when I -/>>/ try to print a windows test page, it acts like the job was never sent. -/ - * Can you print "standard" jobs from the CUPS machine? +GNU Ghostscript 7.05 only has ~200. + - * Are the jobs from Windows visible in the Web interface on CUPS - (http://localhost:631/)? + +If you print only one CUPS test page, from the web interface and when you try to +print a windows test page, it acts like the job was never sent: -*Most important:* What kind of printer driver are you using on the Windows clients??? + + Can you print "standard" jobs from the CUPS machine? + Are the jobs from Windows visible in the Web interface on CUPS (http://localhost:631/)? + Most important: What kind of printer driver are you using on the Windows clients? + You can try to get a more detailed debugging info by setting "LogLevel debug" in -"/etc/cups/cupsd.conf", re-start cupsd and investigate "/var/log/cups/error_log" +/etc/cups/cupsd.conf, re-start cupsd and investigate /var/log/cups/error_log for the whereabouts of your Windows-originating printjobs: - - * what does the "auto-typing" line say? which is the "MIME type" CUPS thinks - is arriving from the Windows clients? - * are there "filter" available for this MIME type? - * are there "filter rules" defined in "/etc/cups/mime.convs" for this MIME type? - + + what does the "auto-typing" line say? which is the "MIME type" CUPS thinks is arriving from the Windows clients? + are there "filter" available for this MIME type? + are there "filter rules" defined in "/etc/cups/mime.convs" for this MIME type? + + @@ -780,17 +812,22 @@ for the whereabouts of your Windows-originating printjobs: Limiting the number of pages users can print -The feature you want is dependent on the real print subsystem -you're using. Samba's part is always to receive the job files -from the clients (filtered *or* unfiltered) and hand it over -to this printing subsystem. +The feature you want is dependent on the real print subsystem you're using. +Samba's part is always to receive the job files from the clients (filtered +*or* unfiltered) and hand it over to this printing subsystem. + + Of course one could "hack" things with one's own scripts. + + But there is CUPS (Common Unix Printing System). CUPS supports "quotas". Quotas can be based on sizes of jobs or on the number of pages or both, and are spanning any time period you want. + + This is an example command how root would set a print quota in CUPS, assuming an existing printer named "quotaprinter": @@ -802,20 +839,22 @@ assuming an existing printer named "quotaprinter": This would limit every single user to print 100 pages or 1024 KB of data (whichever comes first) within the last 604.800 seconds ( = 1 week). + -For CUPS to count correctly, the printfile needs to pass the CUPS -"pstops" filter, otherwise it uses a "dummy" count of "1". (Some -printfiles don't pass it -- f.e. image files -- but then those are -mostly 1 page jobs anyway). This also means, proprietary drivers for -the target printer running on the client computers and CUPS/Samba -then spooling these files as "raw" (i.e. leaving them untouched, not + +For CUPS to count correctly, the printfile needs to pass the CUPS "pstops" filter, +otherwise it uses a "dummy" count of "1". Some printfiles don't pass it +(eg: image files) but then those are mostly 1 page jobs anyway. This also means, +proprietary drivers for the target printer running on the client computers and +CUPS/Samba then spooling these files as "raw" (i.e. leaving them untouched, not filtering them), will be counted as "1-pagers" too! + -You need to send PostScript from the clients (i.e. run a PostScript -driver there) for having the chance to get accounting done. If the -printer is a non-PostScript model, you need to let CUPS do the job to -convert the file to a print-ready format for the target printer. This -will be working for currently ~1.000 different printer models, see + +You need to send PostScript from the clients (i.e. run a PostScript driver there) +for having the chance to get accounting done. If the printer is a non-PostScript model, +you need to let CUPS do the job to convert the file to a print-ready format for the +target printer. This will be working for currently ~1.000 different printer models, see @@ -830,125 +869,178 @@ not counted correctly (the reason is that it often --- depending on the "PPD" being used --- did write a "PJL"-header in front of the real PostScript which made CUPS to skip the pstops and go directy to the "pstoraster" stage). + - From CUPS-1.1.16 onward you can use the "CUPS PostScript Driver + +From CUPS-1.1.16 onward you can use the "CUPS PostScript Driver for Windows NT/2K/XP clients" (it is tagged in the download area of http://www.cups.org/ as the "cups-samba-1.1.16.tar.gz" package). -It is *not* working for Win9x/ME clients. But it.... +It is *not* working for Win9x/ME clients. But it: + - ...it guarantees to not write an PJL-header; - ...it guarantees to still read and support all PJL-options named - in the driver PPD with its own means; - ...it guarantees the file going thru the "pstops" filter on the - CUPS/Samba server; - ...it guarantees to page-count correctly the printfile... + + >it guarantees to not write an PJL-header + it guarantees to still read and support all PJL-options named in the driver PPD with its own means + it guarantees the file going thru the "pstops" filter on the CUPS/Samba server + it guarantees to page-count correctly the printfile + + You can read more about the setup of this combination in the manpage for "cupsaddsmb" (only present with CUPS installed, only current with CUPS 1.1.16). + -These are the items CUPS logs in the "page_log" for every single -*page* of a job: + +These are the items CUPS logs in the "page_log" for every single *page* of a job: + -* Printer name -* User name -* Job ID -* Time of printing -* the page number -* the number of copies -* a billing info string (optional) + + * Printer name + * User name + * Job ID + * Time of printing + * the page number + * the number of copies + * a billing info string (optional) + + Here is an extract of my CUPS server's page_log file to illustrate the format and included items: + -infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 1 2 #marketing -infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 2 2 #marketing -infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 3 2 #marketing -infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 4 2 #marketing -infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 5 2 #marketing -infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 6 2 #marketing - -This was Job ID "40", printed on "infotec_IS2027" by user "kurt", -a 6-page job printed in 2 copies and billed to "#marketing"... - -Which flaws or shortcomings are there? - - * the ones named above; - * CUPS really counts the job pages being *processsed in software* - (going thru the "RIP") rather than the physical sheets successfully - leaving the printing device -- if there is a jam while printing - the 5th sheet out of 1000 and the job is aborted by the printer, - the "page count" will still show the figure of 1000 for that - job; - * all quotas are the same for all users (no flexibility to - give the boss a higher quota than the clerk) - * no support for groups; - * no means to read out the current balance or "used-up" - number of current quota; - * a user having used up 99 sheets of 100 quota will still be - able to send and print a 1.000 sheet job; - * a user being denied a job because of a filled-up quota - doesn't get a meaningful error message from CUPS other than - "client-error-not-possible". + + infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 1 2 #marketing + infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 2 2 #marketing + infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 3 2 #marketing + infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 4 2 #marketing + infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 5 2 #marketing + infotec_IS2027 kurt 40 [22/Nov/2002:13:18:03 +0100] 6 2 #marketing + + +This was Job ID "40", printed on "infotec_IS2027" by user "kurt", a 6-page job +printed in 2 copies and billed to "#marketing"... + + + +What flaws or shortcomings are there? + + + + the ones named above + + + CUPS really counts the job pages being *processsed in software* + (going thru the "RIP") rather than the physical sheets successfully + leaving the printing device -- if there is a jam while printing + the 5th sheet out of 1000 and the job is aborted by the printer, + the "page count" will still show the figure of 1000 for that job + + + + all quotas are the same for all users (no flexibility to give the + boss a higher quota than the clerk) no support for groups + + + + no means to read out the current balance or "used-up" number of current quota + + + + a user having used up 99 sheets of 100 quota will still be able to send and print a 1.000 sheet job + + + + a user being denied a job because of a filled-up quota doesn't get a meaningful + error message from CUPS other than "client-error-not-possible". + + + + But this is the best system out there currently. And there are huge improvements under development: + ---> page counting will go into the "backends" (these talk directly - to the printer and will increase the count in sync with the - actual printing process -- a jam at the 5th sheet will lead - to a stop in the counting...) + + page counting will go into the "backends" (these talk + directly to the printer and will increase the count in sync with the + actual printing process -- a jam at the 5th sheet will lead to a stop in the counting) ---> quotas will be handled more flexibly; + quotas will be handled more flexibly ---> probably there will be support for users to inquire their - "accounts" in advance; + probably there will be support for users to inquire their "accounts" in advance ---> probably there will be support for some other tools around - this topic... + probably there will be support for some other tools around this topic + + Other than the current stage of the CUPS development, I don't know any other ready-to-use tool which you could consider. -You can download the driver files from http://www.cups.org/software.html. It -is a separate package from the CUPS base software files, tagged as "CUPS 1.1.16 +You can download the driver files from +http://www.cups.org/software.html. +It is a separate package from the CUPS base software files, tagged as "CUPS 1.1.16 Windows NT/2k/XP Printer Driver for SAMBA (tar.gz, 192k)". The filename to download is "cups-samba-1.1.16.tar.gz". Upon untar-/unzip-ping it will reveal -the files +the files: + + + cups-samba.install cups-samba.license cups-samba.readme cups-samba.remove cups-samba.ss + + + These have been packaged with the ESP meta packager software "EPM". The *.install and *.remove files are simple shell script, which untars the *.ss (which is nothing else than a tar-archive) and puts its contents -into "/usr/share/cups/drivers/". Its contents are 3 files: +into /usr/share/cups/drivers/. Its contents are 3 files: + + + cupsdrvr.dll cupsui.dll cups.hlp + + -[ ATTENTION: due to a bug the current release puts the "cups.hlp" into - "/usr/share/drivers/" instead of "/usr/share/cups/drivers/". To work - around this, copy/move the file after running the "./cups-samba.install" - script manually to the right place: + +ATTENTION: due to a bug one CUPS release puts the cups.hlp +into /usr/share/drivers/ instead of +/usr/share/cups/drivers/. To work around this, copy/move +the file after running the "./cups-samba.install" script manually to the right place: + - "cp /usr/share/drivers/cups.hlp /usr/share/cups/drivers/" ] + + + cp /usr/share/drivers/cups.hlp /usr/share/cups/drivers/ + + + -This new CUPS PostScript driver is currently binary-only, but free (as in -free beer); no source code is provided (yet). The reason is this: it has + + +This new CUPS PostScript driver is currently binary-only, but free +no source code is provided (yet). The reason is this: it has been developed with the help of the Microsoft Driver Developer Kit (DDK) and compiled with Microsoft Visual Studio 6. It is not clear to the driver developers if they are allowed to distribute the whole of the source code as Free Software. However, they will likely release the "diff" in source code under the GPL, so anybody with a license of Visual Studio and a DDK will be able to compile for him/herself. + + Once you have run the install script (and possibly manually moved the "cups.hlp" file to "/usr/share/cups/drivers/"), the driver is ready to be put into Samba's [print$] share (which often maps to "/etc/samba/drivers/" @@ -958,145 +1050,186 @@ put root into the smbpasswd file by running "smbpasswd" should you run this whole procedure for the first time.] Once the driver files are in the [print$] share, they are ready to be downloaded and installed by the Win NT/2k/XP clients. + + + NOTE 1: Win 9x/ME clients won't work with this driver. For these you'd - still need to use the ADOBE*.* drivers as previously. +still need to use the ADOBE*.* drivers as previously. + + NOTE 2: It is not harming if you've still the ADOBE*.* driver files from - previous installations in the "/usr/share/cups/drivers/" directory. - The new cupsaddsmb (from 1.1.16) will automatically use the - "newest" installed driver (which here then is the CUPS drivers). +previous installations in the "/usr/share/cups/drivers/" directory. +The new cupsaddsmb (from 1.1.16) will automatically use the +"newest" installed driver (which here then is the CUPS drivers). + + NOTE 3: Should your Win clients have had the old ADOBE*.* files and the - Adobe PostScript drivers installed, the download and installation - of the new CUPS PostScript driver for Windows NT/2k/XP will fail - at first. - It is not enough to "delete" the printer (as the driver files - will still be kept by the clients and re-used if you try to - re-install the printer). To really get rid of the Adobe driver - files on the clients, open the "Printers" folder (possibly via - "Start --> Settings --> Control Panel --> Printers"), right-click - onto the folder background and select "Server Properties". A - new dialog opens; select the "Drivers" tab; on the list select - the driver you want to delete and click on the "Delete" button. - (This will only work if there is no single printer left which - uses that particular driver -- you need to "delete" all printers - using this driver in the "Printers" folder first...) - -NOTE 4: Once you have successfully downloaded the CUPS PostScript driver - to a client, you can easily switch all printers to this one - by proceeding as described elsewhere in the "Samba HOWTO - Collection" to change a driver for an existing printer.... +Adobe PostScript drivers installed, the download and installation +of the new CUPS PostScript driver for Windows NT/2k/XP will fail +at first. + + +It is not enough to "delete" the printer (as the driver files +will still be kept by the clients and re-used if you try to +re-install the printer). To really get rid of the Adobe driver +files on the clients, open the "Printers" folder (possibly via +"Start --> Settings --> Control Panel --> Printers"), right-click +onto the folder background and select "Server Properties". A +new dialog opens; select the "Drivers" tab; on the list select +the driver you want to delete and click on the "Delete" button. +(This will only work if there is no single printer left which +uses that particular driver -- you need to "delete" all printers +using this driver in the "Printers" folder first.) + + + +Once you have successfully downloaded the CUPS PostScript driver +to a client, you can easily switch all printers to this one +by proceeding as described elsewhere in the "Samba HOWTO +Collection" to change a driver for an existing printer. + + What are the benefits with the "CUPS PostScript driver for Windows NT/2k/XP" as compared to the Adobe drivers? - 9 -* no hassle with the Adobe EULA; no hassle with the question "where do I - get the ADOBE*.* driver files from?" - -* the Adobe drivers (depending on the printer PPD associated with them) - often put a PJL header in front of the core PostScript part of the print - file (thus the file starts with "<1B>%-12345X" or "%-12345X" - instead of "%!PS"). This leads to the CUPS daemon autotyping the - arriving file as a print-ready file, not requiring a pass thru the - "pstops" filter (to speak more technical, it is not regarded as the - generic MIME type "application/postscript", but as the more special - MIME type "application/cups.vnd-postscript"), which therefore also - leads to the page accounting in "/var/log/cups/page_log" not receiving - the exact mumber of pages; instead the dummy page number of "1" is - logged in a standard setup...) - -* the Adobe driver has more options to "mis-configure" the PostScript - generated by it (like setting it inadvertedly to "Optimize for Speed", - instead of "Optimize for Portability", which could lead to CUPS being - unable to process it....) - -* the CUPS PostScript driver output sent by Windows clients to the CUPS - server will be guaranteed to be auto-typed as generic MIME type - "application/postscript", thusly passing thru the CUPS "pstops" filter - and logging the correct number of pages in the page_log for accounting - and quota purposes... - -* the CUPS PostScript driver supports the sending of additional print - options by the Win NT/2k/XP clients, such as naming the CUPS standard - banner pages (or the custom ones, should they be installed at the time - of driver download), using the CUPS "page-label" option, setting a - job-priority and setting the scheduled time of printing (with the option - to support additional useful IPP job attributes in the future). - -* the CUPS PostScript driver supports the inclusion of the new - "*cupsJobTicket" comments at the beginnig of the PostScript file (which - could be used in the future for all sort of beneficial extensions on - the CUPS side, but which will not disturb any other application as those - will regard it as a comment and simply ignore it). - -* the CUPS PostScript driver will be the heart of the fully fledged CUPS - IPP client for Windows NT/2k/XP to be released soon (probably alongside - the first Beta release for CUPS 1.2). + + + + + no hassle with the Adobe EULA + + + + no hassle with the question "where do I get the ADOBE*.* driver files from?" + + + the Adobe drivers (depending on the printer PPD associated with them) + often put a PJL header in front of the core PostScript part of the print + file (thus the file starts with "1B%-12345X" or "escape%-12345X" + instead of "%!PS"). This leads to the CUPS daemon autotyping the + arriving file as a print-ready file, not requiring a pass thru the + "pstops" filter (to speak more technical, it is not regarded as the + generic MIME type "application/postscript", but as the more special + MIME type "application/cups.vnd-postscript"), which therefore also + leads to the page accounting in "/var/log/cups/page_log" not receiving + the exact mumber of pages; instead the dummy page number of "1" is + logged in a standard setup) + + + + the Adobe driver has more options to "mis-configure" the PostScript + generated by it (like setting it inadvertedly to "Optimize for Speed", + instead of "Optimize for Portability", which could lead to CUPS being + unable to process it) + + + + the CUPS PostScript driver output sent by Windows clients to the CUPS + server will be guaranteed to be auto-typed as generic MIME type + "application/postscript", thusly passing thru the CUPS "pstops" filter + and logging the correct number of pages in the page_log for accounting + and quota purposes + + + + the CUPS PostScript driver supports the sending of additional print + options by the Win NT/2k/XP clients, such as naming the CUPS standard + banner pages (or the custom ones, should they be installed at the time + of driver download), using the CUPS "page-label" option, setting a + job-priority and setting the scheduled time of printing (with the option + to support additional useful IPP job attributes in the future). + + + + the CUPS PostScript driver supports the inclusion of the new + "*cupsJobTicket" comments at the beginnig of the PostScript file (which + could be used in the future for all sort of beneficial extensions on + the CUPS side, but which will not disturb any other application as those + will regard it as a comment and simply ignore it). + + + + the CUPS PostScript driver will be the heart of the fully fledged CUPS + IPP client for Windows NT/2k/XP to be released soon (probably alongside + the first Beta release for CUPS 1.2). + + + + Advanced Postscript Printing from MS Windows -* Let the Windows Clients use a PostScript driver, to produce - PostScript as their print output sent towards the Samba print - server (just like any Linux or Unix Client would also use - PostScript to send to the server...) +Let the Windows Clients use a PostScript driver to deliver poistscript to +the samba print server (just like any Linux or Unix Client would also use +PostScript to send to the server) + -* make the Unix printing subsystem which is underneath Samba - convert the incoming PostScript files to the native print - format of the target printers (would likely be PCL? - I understand you have mainly HP models?) + +Make the Unix printing subsystem to which Samba sends the job convert the +incoming PostScript files to the native print format of the target printers +(would be PCL if you have an HP printer) + -* You're afraid, that this would just mean a *Generic* PostScript - driver for the clients? With no Simplex/Duplex selection, - no paper tray choice? But you need them to be able to set up - their jobs, ringing all the bells and whistles of the printers? + +Now if you are afraid that this would just mean using a *Generic* PostScript +driver for the clients that has no Simplex/Duplex selection, and no paper tray +choice, but you need them to be able to set up print jobs, with all the bells +and whistles of your printers:- + - --> Not possible with traditional spooling systems! + + Not possible with traditional spooling systems - --> But perfectly supported by CUPS (which uses "PPD" files to - describe how to control the print options for PostScript and - non-PostScript devices alike... + + But perfectly supported by CUPS (which uses "PPD" files to + describe how to control the print options for PostScript and + non-PostScript devices alike... + + - CUPS PPDs are working perfectly on Windows - clients who use Adobe PostScript drivers (or the new CUPS - PostScript driver for Windows NT/2K/XP). Clients can use - them to setup the job to their liking and CUPS will use - the received job options to make the (PCL-, ESC/P- or - PostScript-) printer behave as required. + +CUPS PPDs are working perfectly on Windows clients who use Adobe PostScript +drivers (or the new CUPS PostScript driver for Windows NT/2K/XP). Clients can use +them to setup the job to their liking and CUPS will use the received job options +to make the (PCL-, ESC/P- or PostScript-) printer behave as required. + -* You want to have the additional benefit of page count logging - and accounting? In this case the CUPS PostScript driver - is the best choice (better than the Adobe one). + +If you want to have the additional benefit of page count logging and accounting +then the CUPS PostScript driver is the best choice (better than the Adobe one). + -* You want to make the drivers downloadable for the clients? - "cupsaddsmb" is your friend. It will setup the [print$] - share on the Samba host to be ready to serve the clients - for a "point and print" driver installation... + +If you want to make the drivers downloadable for the clients then "cupsaddsmb" is +your friend. It will setup the [print$] share on the Samba host to be ready to serve +the clients for a "point and print" driver installation. + -"What strings are attached?", I hear you asking... + +What strings are attached? -You are right, there are some. But, given the sheer CPU power -you can buy nowadays in German supermarkets, these can be -overcome easily. + +There are some. But, given the sheer CPU power you can buy nowadays, +these can be overcome easily. The strings: + -The strings: Well, if the -CUPS/Samba side will have to print a *lot* onto 40 printers -serving 500 users, you probably will need to set up a second -server (which can do automatic load balancing with the first -one, plus a degree of fail-over mechanism). Converting the -incoming PostScript jobs, "interpreting" them for -non-PostScript printers, amounts to the work of a "RIP" -(Raster Image Processor) done in software. This requires -more CPU and RAM than for the mere "raw spooling" task -your current setup is solving... It all depends on the -avarage and peak printing load the server should be -able to handle.... + +Well, if the CUPS/Samba side will have to print to many printers serving many users, +you probably will need to set up a second server (which can do automatic load balancing +with the first one, plus a degree of fail-over mechanism). Converting the incoming +PostScript jobs, "interpreting" them for non-PostScript printers, amounts to the work +of a "RIP" (Raster Image Processor) done in software. This requires more CPU and RAM +than for the mere "raw spooling" task your current setup is solving. It all depends +on the avarage and peak printing load the server should be able to handle. @@ -1105,37 +1238,49 @@ able to handle.... Auto-Deletion of CUPS spool files -Samba print files pass thru 2 -different "spool" directories. Once the incoming directory -managed by Samba, (set f.e. in the "path = /var/spool/samba" -directive in the [printers] section of "smb.conf"). Second is -the spool directory of your UNIX print subsystem. For CUPS it is -normally "/var/spool/cups/", as set by the cupsd.conf directive +Samba print files pass thru two "spool" directories. One the incoming directory +managed by Samba, (set eg: in the "path = /var/spool/samba" directive in the [printers] +section of "smb.conf"). Second is the spool directory of your UNIX print subsystem. +For CUPS it is normally "/var/spool/cups/", as set by the cupsd.conf directive "RequestRoot /var/spool/cups". + -I am not sure, which one of your directories keeps the files. - From what you say, it is most likely the Samba part. + +I am not sure, which one of your directories keeps the files. From what you say, +it is most likely the Samba part. + + For the CUPS part, you may want to consult: + + http://localhost:631/sam.html#PreserveJobFiles and http://localhost:631/sam.html#PreserveJobHistory and http://localhost:631/sam.html#MaxJobs + -There are the settings described for your CUPS daemon, which -could lead to completed job files not being deleted. + +There are the settings described for your CUPS daemon, which could lead to completed +job files not being deleted. + + "PreserveJobHistory Yes" -- keeps some details of jobs in cupsd's mind (well it keeps the "c12345", "c12346" etc. files in the CUPS spool directory, which do a similar job as the old-fashioned BSD-LPD control files). This is set to "Yes" as a default. + + "PreserveJobFiles Yes" -- keeps the job files themselves in cupsd's mind (well it keeps the "d12345", "d12346" etc. files in the CUPS spool directory...). This is set to "No" as the CUPS default. + + "MaxJobs 500" -- this directive controls the maximum number of jobs that are kept in memory. Once the number of jobs reaches the limit, the oldest completed job is automatically @@ -1143,42 +1288,70 @@ purged from the system to make room for the new one. If all of the known jobs are still pending or active then the new job will be rejected. Setting the maximum to 0 disables this functionality. The default setting is 0. + + (There are also additional settings for "MaxJobsPerUser" and "MaxJobsPerPrinter"...) + -For everything to work as announced, you need to have three -things: + +For everything to work as announced, you need to have three things: + + + - * a Samba-smbd which is compiled against "libcups" (Check - on Linux by running "ldd `which smbd`") + + a Samba-smbd which is compiled against "libcups" (Check on Linux by running "ldd `which smbd`") + - * a Samba-smb.conf setting of "printing = cups" + + a Samba-smb.conf setting of "printing = cups" + - * another Samba-smb.conf setting of "printcap = cups" + + another Samba-smb.conf setting of "printcap = cups" + + + + Note, that in this case all other manually set printing-related commands (like "print command", "lpq command", "lprm command", "lppause command" or "lpresume command") are ignored and they should normally have no influence what-so-ever on your printing. + + If you want to do things manually, replace the "printing = cups" by "printing = bsd". Then your manually set commands may work (haven't tested this), and a "print command = lp -d %P %s; rm %s" may do what you need. + + You forgot to mention the CUPS version you're using. If you did set things up as described in the man pages, then the Samba spool files should be deleted. Otherwise it may be a bug. On the CUPS side, you can control the behaviour as described above. + + + If you have more problems, post the output of these commands: + + + grep -v ^# /etc/cups/cupsd.conf | grep -v ^$ grep -v ^# /etc/samba/smb.conf | grep -v ^$ | grep -v "^;" + + + (adapt paths as needed). These commands sanitize the files and cut out the empty lines and lines with comments, providing the "naked settings" in a compact way. + diff --git a/docs/docbook/projdoc/ServerType.sgml b/docs/docbook/projdoc/ServerType.sgml index 65544572b7f..41b1c0ed2f7 100644 --- a/docs/docbook/projdoc/ServerType.sgml +++ b/docs/docbook/projdoc/ServerType.sgml @@ -21,6 +21,7 @@ different type of servers: Primary Domain Controller Backup Domain Controller + ADS Domain Controller diff --git a/docs/docbook/projdoc/samba-doc.sgml b/docs/docbook/projdoc/samba-doc.sgml index d06d86337d3..1a2e2855967 100644 --- a/docs/docbook/projdoc/samba-doc.sgml +++ b/docs/docbook/projdoc/samba-doc.sgml @@ -26,6 +26,7 @@ + ]> @@ -112,6 +113,7 @@ part each cover one specific feature. &Samba-PAM; &MS-Dfs-Setup; &PRINTER-DRIVER2; +&CUPS; &WINBIND; &BROWSING; &VFS; -- cgit