summaryrefslogtreecommitdiffstats
path: root/cli/src/cli-cmd-peer.c
blob: 08651e72f6e5e4e988ba5ac494743f521641f907 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
/*
   Copyright (c) 2010-2012 Red Hat, Inc. <http://www.redhat.com>
   This file is part of GlusterFS.

   This file is licensed to you under your choice of the GNU Lesser
   General Public License, version 3 or any later version (LGPLv3 or
   later), or the GNU General Public License, version 2 (GPLv2), in all
   cases as published by the Free Software Foundation.
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdint.h>
#include <pthread.h>

#ifndef _CONFIG_H
#define _CONFIG_H
#include "config.h"
#endif

#include "cli.h"
#include "cli-cmd.h"
#include "cli-mem-types.h"
#include "cli1-xdr.h"
#include "protocol-common.h"

extern struct rpc_clnt *global_rpc;

extern rpc_clnt_prog_t *cli_rpc_prog;

int cli_cmd_peer_help_cbk (struct cli_state *state, struct cli_cmd_word *in_word,
                      const char **words, int wordcount);

int
cli_cmd_peer_probe_cbk (struct cli_state *state, struct cli_cmd_word *word,
                   const char **words, int wordcount)
{
        int                     ret = -1;
        rpc_clnt_procedure_t    *proc = NULL;
        call_frame_t            *frame = NULL;
        dict_t                  *dict = NULL;
        int                     sent = 0;
        int                     parse_error = 0;

        if (!(wordcount == 3)) {
                cli_usage_out (word->pattern);
                parse_error = 1;
                goto out;
        }

        proc = &cli_rpc_prog->proctable[GLUSTER_CLI_PROBE];

        frame = create_frame (THIS, THIS->ctx->pool);
        if (!frame)
                goto out;

        dict = dict_new ();
        if (!dict)
                goto out;

        ret = dict_set_str (dict, "hostname", (char *)words[2]);
        if (ret)
                goto out;

        ret = valid_internet_address ((char *) words[2], _gf_false);
        if (ret == 1) {
                ret = 0;
        } else {
                cli_out ("%s is an invalid address", words[2]);
                cli_usage_out (word->pattern);
                parse_error = 1;
                ret = -1;
                goto out;
        }
/*        if (words[3]) {
                ret = dict_set_str (dict, "port", (char *)words[3]);
                if (ret)
                        goto out;
        }
*/
        if (proc->fn) {
                ret = proc->fn (frame, THIS, dict);
        }

out:
        if (ret) {
                cli_cmd_sent_status_get (&sent);
                if ((sent == 0) && (parse_error == 0))
                        cli_out ("Peer probe failed");
        }

        CLI_STACK_DESTROY (frame);

        return ret;
}


int
cli_cmd_peer_deprobe_cbk (struct cli_state *state, struct cli_cmd_word *word,
                          const char **words, int wordcount)
{
        int                   ret   = -1;
        rpc_clnt_procedure_t *proc  = NULL;
        call_frame_t         *frame = NULL;
        dict_t               *dict  = NULL;
        int                  flags = 0;
        int                  sent = 0;
        int                  parse_error = 0;

        if ((wordcount < 3) || (wordcount > 4)) {
                cli_usage_out (word->pattern);
                parse_error = 1;
                goto out;
        }

        proc = &cli_rpc_prog->proctable[GLUSTER_CLI_DEPROBE];

        frame = create_frame (THIS, THIS->ctx->pool);
        if (!frame)
                goto out;

        dict = dict_new ();

        ret = dict_set_str (dict, "hostname", (char *)words[2]);
        if (ret)
                goto out;

/*        if (words[3]) {
                ret = dict_set_str (dict, "port", (char *)words[3]);
                if (ret)
                        goto out;
        }
*/
        if (wordcount == 4) {
                if (!strcmp("force", words[3]))
                        flags |= GF_CLI_FLAG_OP_FORCE;
                else {
                        ret = -1;
                        cli_usage_out (word->pattern);
                        parse_error = 1;
                        goto out;
                }
        }
        ret = dict_set_int32 (dict, "flags", flags);
        if (ret)
                goto out;

        if (proc->fn) {
                ret = proc->fn (frame, THIS, dict);
        }

out:
        if (ret) {
                cli_cmd_sent_status_get (&sent);
                if ((sent == 0) && (parse_error == 0))
                        cli_out ("Peer detach failed");
        }

        CLI_STACK_DESTROY (frame);

        return ret;
}

int
cli_cmd_peer_status_cbk (struct cli_state *state, struct cli_cmd_word *word,
                        const char **words, int wordcount)
{
        int                     ret = -1;
        rpc_clnt_procedure_t    *proc = NULL;
        call_frame_t            *frame = NULL;
        int                     sent = 0;
        int                     parse_error = 0;

        if (wordcount != 2) {
                cli_usage_out (word->pattern);
                parse_error = 1;
                goto out;
        }

        proc = &cli_rpc_prog->proctable[GLUSTER_CLI_LIST_FRIENDS];

        frame = create_frame (THIS, THIS->ctx->pool);
        if (!frame)
                goto out;

        if (proc->fn) {
                ret = proc->fn (frame, THIS, (char *)words[1] );
        }

out:
        if (ret) {
                cli_cmd_sent_status_get (&sent);
                if ((sent == 0) && (parse_error == 0))
                        cli_out ("Peer status failed");
        }

        CLI_STACK_DESTROY (frame);

        return ret;
}

struct cli_cmd cli_probe_cmds[] = {
        { "peer probe <HOSTNAME>",
          cli_cmd_peer_probe_cbk,
          "probe peer specified by <HOSTNAME>"},

        { "peer detach <HOSTNAME> [force]",
          cli_cmd_peer_deprobe_cbk,
          "detach peer specified by <HOSTNAME>"},

        { "peer status",
          cli_cmd_peer_status_cbk,
          "list status of peers"},

	{ "peer help",
           cli_cmd_peer_help_cbk,
           "Help command for peer "},

        { NULL, NULL, NULL }
};

int
cli_cmd_peer_help_cbk (struct cli_state *state, struct cli_cmd_word *in_word,
                      const char **words, int wordcount)
{
        struct cli_cmd        *cmd = NULL;



        for (cmd = cli_probe_cmds; cmd->pattern; cmd++)
                cli_out ("%s - %s", cmd->pattern, cmd->desc);

        return 0;
}

int
cli_cmd_probe_register (struct cli_state *state)
{
        int  ret = 0;
        struct cli_cmd *cmd = NULL;

        for (cmd = cli_probe_cmds; cmd->pattern; cmd++) {

                ret = cli_cmd_register (&state->tree, cmd);
                if (ret)
                        goto out;
        }
out:
        return ret;
}
j 176 0 obj << /S /GoTo /D (Building) >> endobj 179 0 obj (Building) endobj 180 0 obj << /S /GoTo /D (Running GlusterFS) >> endobj 183 0 obj (Running GlusterFS) endobj 184 0 obj << /S /GoTo /D (Server) >> endobj 187 0 obj (Server) endobj 188 0 obj << /S /GoTo /D (Client) >> endobj 191 0 obj (Client) endobj 192 0 obj << /S /GoTo /D (A Tutorial Introduction) >> endobj 195 0 obj (A Tutorial Introduction) endobj 196 0 obj << /S /GoTo /D (Concepts) >> endobj 199 0 obj (Concepts) endobj 200 0 obj << /S /GoTo /D (Filesystems in Userspace) >> endobj 203 0 obj (Filesystems in Userspace) endobj 204 0 obj << /S /GoTo /D (Translator) >> endobj 207 0 obj (Translator) endobj 208 0 obj << /S /GoTo /D (Volume specification file) >> endobj 211 0 obj (Volume specification file) endobj 212 0 obj << /S /GoTo /D (Translators) >> endobj 215 0 obj (Translators) endobj 216 0 obj << /S /GoTo /D (Storage Translators) >> endobj 219 0 obj (Storage Translators) endobj 220 0 obj << /S /GoTo /D (POSIX) >> endobj 223 0 obj (POSIX) endobj 224 0 obj << /S /GoTo /D (BDB) >> endobj 227 0 obj (BDB) endobj 228 0 obj << /S /GoTo /D (Client and Server Translators) >> endobj 231 0 obj (Client and Server Translators) endobj 232 0 obj << /S /GoTo /D (Transport modules) >> endobj 235 0 obj (Transport modules) endobj 236 0 obj << /S /GoTo /D (15) >> endobj 238 0 obj (TCP) endobj 239 0 obj << /S /GoTo /D (15) >> endobj 241 0 obj (IB-SDP) endobj 242 0 obj << /S /GoTo /D (15) >> endobj 244 0 obj (ibverbs) endobj 245 0 obj << /S /GoTo /D (Client protocol) >> endobj 248 0 obj (Client) endobj 249 0 obj << /S /GoTo /D (Server protocol) >> endobj 252 0 obj (Server) endobj 253 0 obj << /S /GoTo /D (Clustering Translators) >> endobj 256 0 obj (Clustering Translators) endobj 257 0 obj << /S /GoTo /D (Unify) >> endobj 260 0 obj (Unify) endobj 261 0 obj << /S /GoTo /D (20) >> endobj 263 0 obj (ALU) endobj 264 0 obj << /S /GoTo /D (21) >> endobj 266 0 obj (Round Robin \(RR\)) endobj 267 0 obj << /S /GoTo /D (21) >> endobj 269 0 obj (Random) endobj 270 0 obj << /S /GoTo /D (21) >> endobj 272 0 obj (NUFA) endobj 273 0 obj << /S /GoTo /D (22) >> endobj 275 0 obj (Namespace) endobj 276 0 obj << /S /GoTo /D (22) >> endobj 278 0 obj (Self Heal) endobj 279 0 obj << /S /GoTo /D (Replicate) >> endobj 282 0 obj (Replicate \(formerly AFR\)) endobj 283 0 obj << /S /GoTo /D (23) >> endobj 285 0 obj (Self Heal) endobj 286 0 obj << /S /GoTo /D (23) >> endobj 288 0 obj (File self-heal) endobj 289 0 obj << /S /GoTo /D (24) >> endobj 291 0 obj (Directory self-heal) endobj 292 0 obj << /S /GoTo /D (Stripe) >> endobj 295 0 obj (Stripe) endobj 296 0 obj << /S /GoTo /D (Performance Translators) >> endobj 299 0 obj (Performance Translators) endobj 300 0 obj << /S /GoTo /D (Read Ahead) >> endobj 303 0 obj (Read Ahead) endobj 304 0 obj << /S /GoTo /D (Write Behind) >> endobj 307 0 obj (Write Behind) endobj 308 0 obj << /S /GoTo /D (IO Threads) >> endobj 311 0 obj (IO Threads) endobj 312 0 obj << /S /GoTo /D (IO Cache) >> endobj 315 0 obj (IO Cache) endobj 316 0 obj << /S /GoTo /D (Booster) >> endobj 319 0 obj (Booster) endobj 320 0 obj << /S /GoTo /D (Features Translators) >> endobj 323 0 obj (Features Translators) endobj 324 0 obj << /S /GoTo /D (POSIX Locks) >> endobj 327 0 obj (POSIX Locks) endobj 328 0 obj << /S /GoTo /D (Fixed ID) >> endobj 331 0 obj (Fixed ID) endobj 332 0 obj << /S /GoTo /D (Miscellaneous Translators) >> endobj 335 0 obj (Miscellaneous Translators) endobj 336 0 obj << /S /GoTo /D (ROT-13) >> endobj 339 0 obj (ROT-13) endobj 340 0 obj << /S /GoTo /D (Trace) >> endobj 343 0 obj (Trace) endobj 344 0 obj << /S /GoTo /D (Usage Scenarios) >> endobj 347 0 obj (Usage Scenarios) endobj 348 0 obj << /S /GoTo /D (30) >> endobj 350 0 obj (Advanced Striping) endobj 351 0 obj << /S /GoTo /D (30) >> endobj 353 0 obj (Mixed Storage Requirements) endobj 354 0 obj << /S /GoTo /D (30) >> endobj 356 0 obj (Configuration Brief) endobj 357 0 obj << /S /GoTo /D (31) >> endobj 359 0 obj (Preparing GlusterFS Envoronment) endobj 360 0 obj << /S /GoTo /D (Troubleshooting) >> endobj 363 0 obj (Troubleshooting) endobj 364 0 obj << /S /GoTo /D (35) >> endobj 366 0 obj (GlusterFS error messages) endobj 367 0 obj << /S /GoTo /D (35) >> endobj 369 0 obj (Server errors) endobj 370 0 obj << /S /GoTo /D (35) >> endobj 372 0 obj (Client errors) endobj 373 0 obj << /S /GoTo /D (36) >> endobj 375 0 obj (FUSE error messages) endobj 376 0 obj << /S /GoTo /D (36) >> endobj 378 0 obj (AppArmour and GlusterFS) endobj 379 0 obj << /S /GoTo /D (36) >> endobj 381 0 obj (Reporting a bug) endobj 382 0 obj << /S /GoTo /D (36) >> endobj 384 0 obj (General instructions) endobj 385 0 obj << /S /GoTo /D (36) >> endobj 387 0 obj (Volume specification files) endobj 388 0 obj << /S /GoTo /D (36) >> endobj 390 0 obj (Log files) endobj 391 0 obj << /S /GoTo /D (36) >> endobj 393 0 obj (Backtrace) endobj 394 0 obj << /S /GoTo /D (37) >> endobj 396 0 obj (Reproducing the bug) endobj 397 0 obj << /S /GoTo /D (37) >> endobj 399 0 obj (Other information) endobj 400 0 obj << /S /GoTo /D (GNU Free Documentation Licence) >> endobj 403 0 obj (GNU Free Documentation Licence) endobj 404 0 obj << /S /GoTo /D (44) >> endobj 406 0 obj (ADDENDUM: How to use this License for your documents) endobj 407 0 obj << /S /GoTo /D (Index) >> endobj 410 0 obj (Index) endobj 413 0 obj << /Length 1048 /Filter /FlateDecode >> stream xڅVK6ϯ@U`9œ&IMIȘ# O?S[D׭OXq`I%a,C}N \aww!O;. bi _+APЬV sђ2$({M "_C:B{7x~$ň7 3b Ü^[nS![?Wi 0a~j%0jjHoYsbaƲW$v8Ⅼy Ғ2pYS/`0.Gh'Gn1XǡAmE=ʣ^*劍'4:1WlU{q}M,iZt&0 { Hl;BPцQz֩Fuag% (#RcvfA|3A܉IC4iyLSaPjt[Glgv'tjF4YKP*S e`${`VGw9}C,Κ1u];&Eet~Њˌ 2yR[Ve SĔϬ9;՟TmNSݪZn`OYOf+SBqOӛoXVL\TV0)92;:46͖weNqHOjg8CS0NY5ͅ՗EP> endobj 414 0 obj << /Type /Annot /Border [0 0 0] /Rect [372.3934 523.6756 521.3009 534.5847] /Subtype /Link /A << /S /URI /URI (mailto:list-hacking@zresearch.com) >> >> endobj 418 0 obj << /Type /Annot /Border [0 0 0] /Rect [472.8766 513.2522 479.5433 520.8279] /Subtype /Link /A << /S /URI /URI (mailto:{\fam =\bffam \def rm{bf}\tenbf Z}) >> >> endobj 75 0 obj << /D [412 0 R /XYZ 72 769.8898 null] >> endobj 142 0 obj << /D [412 0 R /XYZ 72 769.8898 null] >> endobj 411 0 obj << /Font << /F51 9 0 R /F72 6 0 R /F52 417 0 R /F53 13 0 R >> /ProcSet [ /PDF /Text ] >> endobj 421 0 obj << /Length 1741 /Filter /FlateDecode >> stream xڝWKoFWB)Q-A@D"Jc"%MjwvvoV*ѫ$5"5]+馟 NE~JILgJ˿m_`֡ uh :?kC:ayaC-KƁ^}Տ)Dd/GKR"ֱUdZQD֬v2H0Y\EƤu:Х`8-Qk(%>HeaH0T;R: :Tp+ö:)jܸ>?ϵDZ TmX)+2kW2YD j@ɉie ,a7i.\|4>xv32w #'"#B,'S?~ZO]RLء3݁+`Xh" XyLf=2kp_˻u?v= ]Dh(:@qrxç U_JsSd$ǀ]| ~\9}V6Yc"4i*OopbwQ'Y$=3Y WsْHXYr H3?3IպM"`{&셥B[SiⱯ@iY h ޜ{ؑsN }Psr|)|~ŜuטOS}h|syk7K]Tðv^X.p]eYףKYh~8Rz8]}s/sy4UVC _H=X8Psux?/x72I^$Q:H=;Ӳ7{uFeS;V nv+ dK[߽}%<!y^Q"1:Rzp*)\*D{1@jyO_QmE-k/:9"G[f_*D[?_Nendstream endobj 420 0 obj << /Type /Page /Contents 421 0 R /Resources 419 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 14 0 R /Annots [ 422 0 R 423 0 R 424 0 R ] >> endobj 422 0 obj << /Type /Annot /Border [0 0 0] /Rect [343.4093 514.9085 480.8624 525.8176] /Subtype /Link /A << /S /URI /URI (mailto:gluster-devel@nongnu.org) >> >> endobj 423 0 obj << /Type /Annot /Border [0 0 0] /Rect [286.6411 440.7947 293.3078 450.4917] /Subtype /Link /A << /S /URI /URI (mailto:{\fam =\bffam \def rm{bf}\tenbf Z}) >> >> endobj 424 0 obj << /Type /Annot /Border [0 0 0] /Rect [207.6713 329.3087 327.9427 339.3087] /Subtype /Link /A << /S /URI /URI (mailto:support@zresearch.com) >> >> endobj 76 0 obj << /D [420 0 R /XYZ 72 769.8898 null] >> endobj 146 0 obj << /D [420 0 R /XYZ 72 769.8898 null] >> endobj 419 0 obj << /Font << /F51 9 0 R /F72 6 0 R /F60 20 0 R /F53 13 0 R /F52 417 0 R >> /ProcSet [ /PDF /Text ] >> endobj 427 0 obj << /Length 2932 /Filter /FlateDecode >> stream xڭZKs6W* ϹlSNm(H@Rw쪭X 6_??H"I$\l7L?(`j]* S݄7T^_,Wk+c?,WazuUy_65/ڻ7μ/Kzr78 Cg+Mk<+XL(YVx~m &dJEǤR*N HJDDŽ^YSG$'VNywc*ݙuCO_FАAU .?#}HWI N@JE9Ѡma4~Bhg:$~lb@ja^yVwQW3gN:^]pyI؍,ȶ"{ôaP -/v{*V|/}c [w0zypV5j6=lѢk *z/#u`ЇU$xI^k3^j 'ƉF*{]ʴ=/\3X ,9"v<_֛] :|5M^ UI E=qJڸRJ!hw8>* ܿlؐ&- Wr}`N{CHkI9zUf|jwW[tEn>(t^awQL}XǾ 9M1ci!â QTofc4jXp"8$2Apd6"q#OgdH. x+'r?/ K3~'H@}}@ 96\-"Rb w˵ I4&4t2Ȼ1tO{]cDK[Uy+BJGm$О2RNl#q=!M?u<$01*k Ts*?1; h۾H+:FV!WX;S{d[xoce'p'@T ` >ڢ?Zk .6BVHs,K6S= .ۗ%C5 /o/hVs8q7񉨌K":3#hJ0A I1x H(Hi,`xpdn_I iuQ qp[~U'f悔֜N멒7;OO^lC /`8Rt\ jxq )28(r:yo/BVȼn3؅J|v *I AJf dƁ/|5'sUV}'@Y'?Nv7袵k?ʲhZI4.Mu5$*qy/]fcӱwIlz%'xKGBIRO?~#a͛JG;.A"1/LFFho[HyvO iZցB7d4)^{[~&kC0TxMT"$d[b_܊f|+vrRi6^scfm>pt: noMixƯ28(i䡺y+c q-"IA`"K@i]ML-L wk/Q endstream endobj 426 0 obj << /Type /Page /Contents 427 0 R /Resources 425 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 434 0 R >> endobj 77 0 obj << /D [426 0 R /XYZ 72 769.8898 null] >> endobj 153 0 obj << /D [426 0 R /XYZ 72 769.8898 null] >> endobj 157 0 obj << /D [426 0 R /XYZ 72 702.0892 null] >> endobj 173 0 obj << /D [426 0 R /XYZ 72 180.497 null] >> endobj 425 0 obj << /Font << /F51 9 0 R /F72 6 0 R /F54 33 0 R /F52 417 0 R /F60 20 0 R /F4 430 0 R /F31 433 0 R >> /ProcSet [ /PDF /Text ] >> endobj 437 0 obj << /Length 2426 /Filter /FlateDecode >> stream xڵYY~_! eAf "}F@ID E*$5TU[Dl`죺%gXDDf7=M J/3Z6 >#sX]p0RgÄۆߙh5O[0޲7C4^S'6ﭦh}6Ȏ]+&щ^Hs a߯u*ucǁ v1me!@Z=)jҹ; (}t y.s ?ryVq7pJq Sl&0 %_o`?c1eÎe:hǁZ5́&#㳮vCԤk}lZvϺj9JyTT&ED%1f+1!&I8ifpQLys c&e@cC-E*Ss .T3Gh*ҁ^~Hn"9CXL A.m@uf2%e;@HN%NH%4-8Yci(\)+~f_E^u K|UęΨ(Myx6-4L tMD]aBUo+ =r|C|; x] Y!փ<|FeEB\yC â,8BmrCap8M?>E?;(B8?1pi~)p3)'SHnV,T. U.sQgPYyǻq& j=r.%XR$f`$PeSԭː"S;Zs_BC~*Q\hK14XOK)&*d  *űmeE @.X'ҡq }fCQ$+-vcv[5ÖVc,vj:DsT49Nqɐ6Xܖ=#iGM}#].Jenl|IU!azh4پOpU}?1'*bܩ}X ct|Y!r94 I,t&0jÔ#INBî`F֧ ~h8X$IRxp*}2\fL4dC؁-W/ʅzشx.oN!'KSHk^a|g=jUJ GH$F\XЄ6gLq|0-okl*_oO YkW/qsE>BY'Xh08q+53XUa!GeEqN"/-{{i+fH4(eY[}Ybwv^tk@0>+Q;/ 3Li=p)M<2QnNų}PG /n?79>;"4[IJ>ݓ+cCzhG"G`.)c<)@$(]2J9M0ᐵ}0 d@3a=8jVÍ+d Y*~aI3dhDڠ*?!;^]W 1vOgm6` [.1;O1/^SW }r_D> endstream endobj 436 0 obj << /Type /Page /Contents 437 0 R /Resources 435 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 434 0 R /Annots [ 441 0 R 442 0 R ] >> endobj 441 0 obj << /Type /Annot /Border [0 0 0] /Rect [465.4427 78.9435 525.5433 89.8525] /Subtype /Link /A << /S /GoTo /D (Server protocol) >> >> endobj 442 0 obj << /Type /Annot /Border [0 0 0] /Rect [72 65.7928 190.8631 76.7019] /Subtype /Link /A << /S /GoTo /D (Server protocol) >> >> endobj 78 0 obj << /D [436 0 R /XYZ 72 769.8898 null] >> endobj 177 0 obj << /D [436 0 R /XYZ 72 678.8613 null] >> endobj 181 0 obj << /D [436 0 R /XYZ 72 140.0227 null] >> endobj 185 0 obj << /D [436 0 R /XYZ 72 111.459 null] >> endobj 435 0 obj << /Font << /F51 9 0 R /F52 417 0 R /F72 6 0 R /F112 440 0 R >> /ProcSet [ /PDF /Text ] >> endobj 445 0 obj << /Length 1966 /Filter /FlateDecode >> stream xڭXoH_aKK(|dFYeC6` XVuucI[E_U5{ǡSɦ2Tj#n\p$oFg}>=&wɽv'i҉˝jJ)j*n<ʂ6"\b""i"N9q Bq!p>OKwb(*,"Zq0dQ;B`7Nۿ<&?0Eb)%J>coϗEA>̣̟@>.xRhPqsj5:2? \Z5 ,D,<SY><Ӌu,1,zR8H}RA92%Vhfe6 + MhXYJVo ::ge;u[iV˲nx-DSMI -k7ƞf5r( M;:.n%dCԴ|OٷNU^.ܿw]5 w˪T\)!O\]X6N2 pҞ@rZDM:pOS||Km -=<@:Uef"B |%пA_> ).P;p!sd{ ^` շ 3B %Ah\\z7)jˎ<_'"B(DtS qzu4(Bwqx)IMA=Af~|oA^Qo ̍Et8]1JZWG켏 DU5;i6-Xy$@nh`0G6mϸ3>*]T%Z0kԖקܺ% ?$`pe*5FyYrq5O_um2;4τԣv)QMy6IM#uW'6%{.bzLU(| tQt(PXjJ`qbU};ctWk=X?d**n`Oܶ]dϋCOMu#tՐRLpaK8XtPxO{7ebI.6/|sBg:jڰn;nb T>ća- T)o4^wbNt2 4i1` fx8eVg4_àGǡ:mW9)6uH xkmLm't!ZΕ)N(?+ {`:~uZ㠬z`Î<<br[sW-xҕǾ\;7_lj`n fW+2K\-<_ V_?&x ->ռ{Smܬˬh,pj ߼vbp07VW%XU *vڑm#7 rVc8xs[ӄu./. <ˉq/ъ}ƫu\lSWgy vYKmOp5l3va@ԑHaYѻ+w;V$m{!]mendstream endobj 444 0 obj << /Type /Page /Contents 445 0 R /Resources 443 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 434 0 R >> endobj 79 0 obj << /D [444 0 R /XYZ 72 769.8898 null] >> endobj 189 0 obj << /D [444 0 R /XYZ 72 230.4304 null] >> endobj 443 0 obj << /Font << /F51 9 0 R /F112 440 0 R /F52 417 0 R /F72 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 448 0 obj << /Length 1774 /Filter /FlateDecode >> stream xڭX[o6~dbŋ$H6$M:Ȓ.q,EBdɓtAwx%YN(yt.xd)Ӑ gg<0mN9 ~{("<[F&Ƀ~G|bR1*De:iq\D󈌝b,Q Ä8qqp9|FF1F( H` ( 1TT{v?( `;L3xx |C4ï W`Q?6&ݦ|Q#㤷$b3%(p?C\0,ơ? F>r<:_[ aN|ڔZYA~e_鴞f. XR?K-`^C%:ܪ[򙗧'ˢyG~+4(߅UщLa2weB'rLMjTί;w49N~3S-,4\elܛکr2*iO?ɷEzBz_b3NOԟc,diIXRezh.гu.Pp̜WT&K4ou([2#d1\\si}4f` `&5;gw7W7|+\Aڹ$_1@Af+KWϮWksʾ\zȣe=!¦g)Bl B`y L#_p,˃TOi6NL{< '8_;': >4V;͂ӑWKضxVlʕ4 J]kbx8BV&T6JLsЅA~\SZmd=cu%"WGEjv~ՓFV\"5Eh&ܴ ?>Ly`/=Cu2-FkpgḶ_^##maNT;wbCB$L)MRC8QIp(>cMߖ_'-'$eA ،΃7=lHܐtI/$bqƄFgDNSa= Wϋ8RF@lt#y[ďl_8%<`FhoFȣT4d3@I^ @MӀ X,jGlYb#}`*d}GRuN05N88!  Qh&8?`> ,%!v3I,8-]4~P87lC嘀+(牉0dB|y1auPx+44FK%Vp@rW2΋)Y#_VVDsso5:@tЋEX^ry,/}׍fkFl̬8:c|(èJ,n1atu/1qy%DHڊ3RY:_ ϱ3W4Q(UP+4OǮ_rqFy4;Z iD͞b!Te9^U.u`&y/E{]S, f0A@-H (OrJIiX&yBzu_ەzǺ; L;Eb/}c_h ~5('tK~}Ny':!eLT,a\~*'an'3IAWK6q hHgy&dI&wg˅f:ן|"E*vWJᔂ i*#i Lj<P]R&gTyh([jgQq/f8 ,5ƻ)>ɜDy-M͵yaz0g~0ϑT)B8"i% ?`oF]{`^PNLFOF/5%j5p[ȻKIfVaD9R*pw!R,$`Sswg2(6tvchQSaךQ@o]"\ȆQ``YS}'RL$r Eޏr9Z5.%wgt-eDtTZGg  dH-JyhQey/]}W#UYXl BRfݰ]9]d~ b/ s zud O|Z8"Q̲ߙ!!iy]À3hf3q3w1=H|102qLaUV9) .endstream endobj 450 0 obj << /Type /Page /Contents 451 0 R /Resources 449 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 434 0 R >> endobj 452 0 obj << /D [450 0 R /XYZ 72 769.8898 null] >> endobj 449 0 obj << /Font << /F51 9 0 R /F72 6 0 R /F54 33 0 R /F52 417 0 R /F112 440 0 R >> /ProcSet [ /PDF /Text ] >> endobj 455 0 obj << /Length 909 /Filter /FlateDecode >> stream xڭVn6W"҂>E1-"Y(2Bɞ5*q{/I;Eu.=#1$Qz`iqӊ96uX~Y) 7\4ߛO㘯y<]މNA\7T% ۸۶:]}ܺ2dK~)OPg=.ѨaUoLs(<@Jk&/)6IKdC|;OM|'ay8$щ[v,.X9}$ WD$zr x5٥JAM:Ь'0|Nm: ߤC "8v=l4H/g)R!q]W)LAQ+Їac~|y\HtJ#!v+MYek(r`|΍us"` TM^y7E(Xƒ5Yܦn|ϙ!)p}*}?ܗr؎2?hfendstream endobj 454 0 obj << /Type /Page /Contents 455 0 R /Resources 453 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 434 0 R >> endobj 456 0 obj << /D [454 0 R /XYZ 72 769.8898 null] >> endobj 453 0 obj << /Font << /F51 9 0 R /F112 440 0 R /F52 417 0 R /F58 459 0 R >> /ProcSet [ /PDF /Text ] >> endobj 460 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./fuse.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 461 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 595.00000000 482.00000000] /Resources << /Font << /F1 462 0 R>> /ProcSet [ /PDF /Text ] >> /Length 463 0 R /Filter /FlateDecode >> stream xYɎ6+t]`؞93@>'0~j(zq 4vף*cUq qL5}55\?!OCJ*C8B;rq Ozcr؋,|\^95r.0V <{ZWqz89||58b/яV،:Ƃ?6G_k? Gkun[Z0hi0iCXZZVռ1SgB !L ʲKvd A4-jc%έ}^Ed ,+ʾ5 rY)fegŒ٤Nfƃnq\eyɦKb?jmnIXB{3CnKDkI3Gc(ȀC-V0,6f 4~#%OX̂v6^DȢWzqs/(Iipٱ)^k/IJO_@ ؀LnZ2DTmRقK"GP0` MߜP?˩b\`+DX-*YYǪNm : /-lkA'ԻN̦b] nJFB/-*';=rSP/w]>j2m@fsJ;W@ј6gX(fU8KgpaD52SvJ:d}R~j uo 2+u=_6{Tgċ64׌ 8ΞvgGw[cL,=iCcɘVcGMiP8e }rH#5ђZ=):T>;LEL0PpҬSOvu<40{S,nj*Y<Batl/ %C JS3422JoHd\iHMѰPS?_I4{:YI_( i ֈ{\r:mA-\㶾+s;q&~'̖nܢG%Ӷ /Producer /CreationDate (D:20071106230639+05'30') >> endobj 462 0 obj << /Type /Font /Subtype /TrueType /BaseFont /BAAAAA#2BDejaVuSans /FirstChar 0 /LastChar 35 /Widths [ 600 684 634 277 277 549 612 392 611 633 774 633 520 615 411 575 634 591 684 731 631 685 610 636 336 634 352 317 655 698 974 633 591 603 294 686] /FontDescriptor 464 0 R /ToUnicode 465 0 R >> endobj 463 0 obj 1614 endobj 464 0 obj << /Type /FontDescriptor /FontName /BAAAAA#2BDejaVuSans /Flags 4 /FontBBox [ -1020 -385 1679 1067] /ItalicAngle 0 /Ascent 928 /Descent -235 /CapHeight 1067 /StemV 80 /FontFile2 466 0 R >> endobj 465 0 obj << /Length 377 /Filter /FlateDecode >> stream x]n0 OW%&eDl0_Jq7odM :K'+wa»쯩'GdO\)ާb}kVyܜ#BCIS[ioQEendstream endobj 466 0 obj << /Length 467 0 R /Filter /FlateDecode /Length1 25612 >> stream x| |Tս;˝d&B edXh&I2 3"F jA H)&V+-VYV">ν$Km2= P Z069|{BMAqZRO&_s[GG! hws늦GW[ùR(*`o @l'[ #Gh+0Ƽb@'cgmI݁J lp[QCIF@;ƀ{@?x$}E+PulB4yUmF;z Ǭ油h\6dYW'vp.1Wn?#l-HԄûCebV)MCճԷyDNG 0QyUaCAM]8.C;Ff ҞWx ؜ >u f(>TOBY pfNjMq|~[V_cu $O0 2:Gs෢~"i3{ڝF״6$mh5d4JCGN^'zOƛ2M9&pJGዿUHr #8cM<1& "TdPk‚L bmZ^&ZxH+PէNM-F542hYYlȇ6"^hXr L2;Y43-Mr:7i2U1-\bXd2l6Gם xqJ64gDZkʈd0nFE|8! [f-*:GxԩsGzGZҷ!c瘲M,2fgb&Mb==Ӟ| ;{}߫v9a xv0}c&X2MGshЪ7V}Y^,`~"{hՠz{fyFár"@sZF[iy APuws_nW?&,M%Y =&'۴q:Nfm#}sgt)ƔU)wlO % +f1YOW=\^QUsX/Ϩ>M3n܇Ǐ8nܮ#kL);>WA3tZz:Qc0k2ds1(']֘m@osښfMfXEk5&&&Fɬɪ:mmڌYw>ЦІz>ӗU2V2RB lʞH2j╓&dN^H+}=y~xݞc_2^Z?g M wV߶c/rC~ѣ'[߆k!k :҄g(7k"sW%j*1eZ2M愫 `b:Ni/|lZ~MWm}m~s-ECh5^zb6&ibq[X\ka'wNJJJJa3f~aeJJSgɦ(FC'ڼgLt_O~oG?~Hz]>B5z4ts:1'p&YaZk0uV 2).qjz/-,LIpHݷҵG连ȶvihUD| ӅS4qZ h6(t%7!)YgL}j"u 1M)sbIerq$IܫA6]v1p/6HgO@Odٿn. xgz[/r˽`\Pl1D3U"srV)xl)KLwwsbw;yl45%녜s2^a tUP^"38 ye}E9c]Fզh j96w)SԩįINKZ '!4T!Uty1Wi]Ȍdctc  cd䊹#GĬǑeUJcp,6d<T.M; wz+sWޝ=lnTeܘ3 5zb:#;yϐrCS֯oo'^mmzqFnc֊L?t0;^7&'vdr%h׌R:Y:40/$ulLMfbmG@O!gϝ1;=͗=Wigh:3n 4@/2^khAL(T*BTSʾ1ǟ_rWKs}0nu[{ ^:z{1SlN6g1Ho ?\|~iCN -ȭŋ"y+$YnfQΛ?{OWu9vk?g?sɓV-ote${(,|}>?SgoQs.b?.Jv j!-4x7 brq.'j&4<+ԔrWpLU3c\ 51nUNɵ7Vz[ϯQmA[٭~S}5k4B%52707*]=_n sz:35X"_yJ0VWi&vi['mH={**mX[HQٝA!}s魞}2?XҸrLK@:FC& )@),q3JanEE]Wp${j0ɞYcv ?F3_󥚹l3`4?Ԝf-*嵪,~jz7.)V[UV5s-|l67lV?V LkܟR ]xtLrm ןGHO=?CW $20zG {.(u%CzTh6 z @(<*Щ#t$e tӒO/=#̬a|7һn|gLia!s4"(U6)Ԗi"N9l/VQ՘45Iلþ^ڥ\ G5z%5pdHȻGnOF?r`8%wQ.ϾoߴqΞVܼegݣqzknN4*|eo촿^>qG3cJ9XZ#ͣT,ZְZL:X)M1zD z(-1&N(F F>FЪ0r:kާVjB{)qj[a XD*kTZOF}~B􋴋%Z*f} 3b k|`֙cFFĎF#$&r"FFƌ֏5McranRTBS12V 1fcLS 3XɎcc/͍YhX[cjbmp֛:57n]Ԯ֭Y_oXKհ5vnGn}_7 \F.1 esk}Bt~֙k\U}{ғK>4͚tQ8a9'맛P.K؋dX[n9G>95_RLYO \Yu,R`ied63e?af}scWt?o~톍&Zoϭ,{"Z 1P]nh4Oэ&#YmRZii$w5+7CT ysMhwul4-!8z2< ⶢ7`Z0x 0։>8'Ph*`7<淠:D; zX2AM/d:Y[>¾.;ĝEP=z[=R}W4Ś4wiER훂FD7^wiEڑ(,N~_D;oo7++Vu@X? du+0'xJ CiC=̄hЕ0|hR`VYU`?S`ř #9CUЇ(0t;kXXLyf]s3(S`k^@|O)0!VX F{ A EY,kQ`2- #ZU+-X-QÇcdlW`[~*I=XNS| O`Ec x`ܥHka&(ӂZ U`%$,$V` *0xNQ`2']dS`ԬiI!Zr{^ %(i ' +w0myb1_,nmkɪX ]|ႭVcyY,q\dckc^4n6ZSJޥQQXN[;h JrStF Noc{t ?MV0nMPV.FEt` ڐfnlmwN:o{is+J@DWL mshNw85 u8TrYu$@~૽!+nP6XMC$@v DP @*:<eO6`ӺBtG@?k  $v |姛:~g@ aHfQe*xipA$`^w1MAAx9Z]dB0@[ w;vSa8ª@%UVlHdBq8x_ͩ,ZS3mbyu]./ubMm2[U\Yy vVWbqBqvEUYh[PSkkŊ956*[VQ5C,}UvbNګVU c- %yBy psbXS\k([Y\+̭2@[UQU^ Tlsl  *YX[1c=6a0OY5\+%%m溙ŕbI^k+C̨cʫV+R\RiyQJ++esgqBD2Y:aV[\'J+zJ=h[Z]Ugn. ROj^M18-*f 勂@;o:]n+A_"}5 >HIS T3iP# Mz%1+  + r~^I{%!+_W_W.++ QRtjC%Aio. إoe<^L·2 J$~I2_emį2 ysfUg~HHM#!ߤ;#kuG°ݑM#⬃%m|įn|h| qC ҦAȇK\t ܐAn 4Vnvۡ*mܴHy/)wXԺD$޶6(ZZ$܎fp1G! qCj`w#("e2=27 5fD~EHw\\;Hlmв SELQU5 M,n$vp=.OK^_8rvB&Ear=7"P C-?io/ڗ'Я'.c2ghJju/Y%"Wf6!6 SBȋ|h#7jF-(D45\.BPQ ȅ h|Q+DTO.v鄕ePjJˁ|<=_b@K`<+abs*X<5 D:7OZzGQK~]/KT@$P>y^?:p`OyBdhEyQ%v4L0̀tÜ$!Z*GăyŤ5EkB_o.+>0#P(HGQ]/1/XB$()O-tΥLx)v%S}L<ʗZC)xkP1Cִ R.S#]GP@V˼˾*^VdQˑN|5"@EY+@#C2z)Q+%R0b)!!ߙA1TbjJ#Z$ {\mUJeR1HݰE[g8fPlTStu+#?VPYK]8e}2JTFb뀪MbR;ͧG-P|F,b*ź!~씲}̧h1RNwܰEr\?Ü o(B.'wȸB[Sa]X xeH9p\H7wEN@3ڶ!"iIYNt6 ;t:{P>-^'0J;:>;G(;h բ.tnP ͋W(႓{JJgBkW֒񛇜C?@!Y)g)70'~:EtB4 ߫ zihAsNkwt@U_m; v^ a ;.>hp'S#nPaeJJWW0WUݽ0i^I^)"ws$\໹WWWۼW{Uߋ.sw]ۥo7%4}$Po[&a-S]2 Inp$nyuVv1wwG°6W #wG;ݑ.{wʬ(_'ۼэυgw#D\۸ ^ߊ"7 C*zY ʛvMnn ͮ|)fE&sW|6zg1ll%Ꮷ?ST| ~PxP(?H"[$^Jװ׷'f'o'fwNߑ)- J¿/$|| ~X:7$jZ*Y>"W%S "% $%|X/H {$ |?*sq> m%IY ug x~S~R;%D!3 Q'KoHx16 ?a2pa2j  ߿E/-z6|y|/HM_w6 ߴor?wIx|~7;A;u:~0։׀&} qC·m^%|[I[-Ni9f M ]8peO^ {$ܚJx_Rn7C]vJQ vL 1xC‹$p/<x~B2?ϓ\<-1uI֌_'p#_%9F\)03[³*x\+xϐplۂ$\ʎKpllt _{M_su,M*=u _$> stream xڝWIoFWH昳3M -hPCR1(hB-7ƛVfwㅖU 䇛\otʬԛ3!7WMToS Zﶩs.y(Fe^$.^zsY5fFY+s4rHM€=` uAl _B5MWO#z@w|~I9h YJ`HiGQT#/`=1C{xߚ<{@#M>Dh]>KjOYZnY5>9 6(q"BX݂(24O[َ6R)imKeCp\Lbb*]i=AS*c tꫮP!OL15Մ+T]#~wDNB49|J2.EPz?1|:.y,lAc),%?%?ǒvdvrEN +$eiSQZfO5=˙y0|`]1Jj㔚S8Tfm+; ƹNJ!͓?W]AF:u9}t1|ϒW$"zmYt4x!>-?劊*SZ_[\ C!DMAۋ{P>yq6Td]U(8ZJ|ѰGʇK`GTpH7tbnM~-w@+JJi Z?s!W ]7Ygܾn5;g-M-jB^2D|m|1~.dH/= Y~c@Me ؆GO=z  ud L Yn)2$5rLp?>?NjaGJ![&~dJPEF0৳eFwf~5\c_))E|I gSs GQ>E2 S"'Hi6V uUhL3s1 (tstAX]΃#aXbÓbLAи[%0>PjB}!veHr.yb9d93T<u/3eD?5XtO} ^2gbퟫ/S(a"S0gvB|6]=͏oϰ2 *jI7=A  0 nQʇ1* T6AHiBisːA?;endstream endobj 469 0 obj << /Type /Page /Contents 470 0 R /Resources 468 0 R /MediaBox [0 0 595.2756 841.8898] /Parent 471 0 R >> endobj 81 0 obj << /D [469 0 R /XYZ 72 769.8898 null] >> endobj 197 0 obj << /D [469 0 R /XYZ 72 769.8898 null] >> endobj 201 0 obj << /D [469 0 R /XYZ 72 689.9708 null] >> endobj 205 0 obj << /D [469 0 R /XYZ 72 55.3694 null] >> endobj 468 0 obj << /Font << /F51 9 0 R /F72 6 0 R /F52 417 0 R >> /XObject << /Im1 460 0 R >> /ProcSet [ /PDF /Text ] >> endobj 474 0 obj << /Length 2353 /Filter /FlateDecode >> stream xڅYKoFW{ P+ q:@v GØC*$'֫䈲!`쮮E&37Ynff~d--Pl$ܽOVq };.DoOFGclquEovOD1vIioIY=K)A.bR4iIJfMR6rGy/n q؝*rs*cbh7:Di<}M:) MYs7<[7[|cnL|IШz}Jsƪ 1~hX[<, v$R<p (Det}4 6iM#h *k]/Ha=c:#r ̱0U&u,WϊtPǬX5Eu Q}JˈʀiK&p6fv?!Xyؑ&߃H?ˆ-&szps,@IGE\&E9pZt@֊"X#ϡCv qA3 _RڪA]n@ݛ&y4xu*<&יgO U(Tw*9LH w/CD =^3rK ~3y.T T'W:H3n,7'ZpXH pM 6.GFiRdp~-^jlykz_rµ}4÷Z+;|gǐ6 " LΙI ByTOo_0qFǾG_[IJd>ϐ"ař .^rLL\8{orޚ" ~-g1]`K4Eʸ,=*TLU2 ?= 'ΆSxefp\'fGAYcYcw>L6slDL=VT+K xr8U/ n gl!j],~^@kLLǛ˰Z@-,ӧSM54-"Z쁅|a2sU!'s'|Ծ$nK)"?)z&<ϯ9D BC=#o481i( _L` 1crґaaQwg3N'x"_SJ^pテSbSx|3-*KA#-U,՗FK <<1*)!942skp{I˃p]yLA+e"R;5u{z_?S+4?Eg3pB% zXd`V(VR O {eJRγǪlԿOLf=)75c Oaf?Ypk崂:I[:!\sWr?x gESP)Qi=Pe((>CbQ(K7@JS7b[p< K%3z?I6n 뢗Yz"H(THU9ǭBn)mS}|+_t mmSPRWEW7X6?#:4+3/#'ھF[iɆLKZw~lϏ!'D AwXW-ʷE-DƓZG/#k=âG>˷&tSU^*:4GiG՚Ϙ1&J [WD-V~Pb*ꏩxBD+ P-):$.uWS/FmBqy)&k,`O&bRx ⅳ|-%Iag\93|R؃HivsTOpi|/gekEq;sƺ yyx.;@?|Azkj[7t"GBZI> endobj 475 0 obj << /D [473 0 R /XYZ 72 769.8898 null] >> endobj 472 0 obj << /Font << /F51 9 0 R /F72 6 0 R /F54 33 0 R /F52 417 0 R >> /ProcSet [ /PDF /Text ] >> endobj 476 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./xlator.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 477 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 595.00000000 785.00000000] /Resources << /Font << /F1 478 0 R>> /ProcSet [ /PDF /Text ] >> /Length 479 0 R /Filter /FlateDecode >> stream xYnF }W9@Uh@P v}sc4-@/CJv(X0!G$~5g.7ߝ/fa jE5h5{Qab+?82ci q^ -j@T&CW<%DH4yIJYF M4{츷 1]?RMjM.J\w??emxtJ=4M-x@2՟hfr1ܧw 4+M#RzO=w9 ?46u^mJ:W*<uFY`VAj|9 }(t5UpZDQ>3^Y|l$\HN% Y\4]҉eCv̟th p4QW4dQ ePR])`(\9cRjY l5oŹmw.1:vnnw8>;g+F'Z ii2Rj9 < Y40cF[yoyRc#i`w,aH* rFjZ.`|x֑H3=$ڥ I5҄Q;l|ybEh1Icn./]0L'U\ Ɲɭ^/6;k|^7n4W5*Pn@8,d& oz[V# : !1a ;퍓KMXM9o-l_kRHVӂ | ~-IM(PC\Ê]0]28ka\/Ȫ.i`7抨C"CZ+ QtqVFD.'+JUA" UߩQMBGF3+Ym (G)MfqL[|RN y)Pef #<;Lͬ?Ccj_T;tJNTS*C6ɭR}!͏KS( `ޝ Xyp +Cendstream endobj 477 0 obj << /Creator /Producer /CreationDate (D:20071106230157+05'30') >> endobj 478 0 obj << /Type /Font /Subtype /TrueType /BaseFont /BAAAAA#2BDejaVuSans /FirstChar 0 /LastChar 31 /Widths [ 600 277 611 360 549 612 633 615 411 634 633 633 352 591 277 392 520 591 610 698 603 336 294 686 634 591 636 636 317 636 636 636] /FontDescriptor 480 0 R /ToUnicode 481 0 R >> endobj 479 0 obj 1569 endobj 480 0 obj << /Type /FontDescriptor /FontName /BAAAAA#2BDejaVuSans /Flags 4 /FontBBox [ -1020 -385 1679 1067] /ItalicAngle 0 /Ascent 928 /Descent -235 /CapHeight 1067 /StemV 80 /FontFile2 482 0 R >> endobj 481 0 obj << /Length 361 /Filter /FlateDecode >> stream x]Mn0Ft1DBH) RQi@!E*V"9㰼.W7fv8 pl ca:=+}3ﭗib!σM[h+<3:{>_ЃE0s!n^/ bZKVуil4 ȣyUXoO-V6GFPx+dE+Y"s'b#)3rɼC>q|\/+92bFJO) e??;JO$',Wʳwe?ƻHWt+ah(뿏3v#Y; pF7 hendstream endobj 482 0 obj << /Length 483 0 R /Filter /FlateDecode /Length1 24892 >> stream x| |T9;˝d&IBr d@ $1b3d&d f&D@ bq)* `)Rj*EZVZkeys%! ϛo9{\.J@ANW%W!D'. KSFGn ,.u#D\رЯ97B֭{?G!V'O װ]cu[:g|&B<\Wtn/p-\wVvkPx5'v"$M_ @j5GxAECєh$%[m)#32Gfe_x[.# s'3KBP6O> e_ś{فR hZXVp0pm[۠~|;:"<7mvVB\qmߌB<aXA=)$;6Mƪ)'_.^hiAfFӆr}hP@^,jCӭ1M5d=hJDG3bXxhڃƑ81{5G?=?R PFVzz^xaT(ws5nhW8R2kݨaq70p#!42w|n>?q3nvwT\-U0t# aQQ|i-Kw̛r3eMH Y9uJG_G$[r,96 s{W iXI,: XǣjܵWKޮoзzO.Ylyo9۫~@uZ2>~5T4Þٗ%%=BxI9F?o>YbϛЬԮԭԯWV$44L\i^iYԛv*͂\͚RV:aգF"o.3;7m|晍p|މCN?xD~C?_(L8ύVrŖ#o [8'm>5X3Z|oZkCgYN&t#|xi&I?0Cb9cUƽἈm&SBNmikaKݬ'柗aό#+؄:`mH՛ө}&6{ʾv|229irW2$$D*)ɝ:>Ҟe϶K{nȆ!!at`eɽwtS"K#" ZZ[@V ; rVe^%1?ΫቖQ㯞P^e)K=s}}}Sg1ԃ-9=/S\YۊwԞmG^|9i]EE;F>G=[7w2ڞF􈘰fҗ9T[R>oIJ\ņACrûne3U׸mm}tKίXoɃ#+@Ȇkuw/0b_R_ݙ6Ngӡ\R#%AKd%7'-7SGFS#h*MM źb}G~6~l9Y8gReWۓpE/hb4F?bmWﺲO"LݵUŒ,nb L}ZQC$J;Iېh2)j1Ȯ)|}_\I&Yt~߲UT(MC&>Aw?HRyY R*88|ds-Yz_XC!GC-[=S߿}?Enwv Wa\(n[ &G">@ŠEiHDmX$NQF!g^yz*ɀ} Ce282F jg f{ZסM"EZ3&jAݢ}P퓚g61zI޺\1ykC ;A9a-(e8%Pɒ#?&h,Xa4 #/ &cK fQ:b6X6L-mS$4zbLSfcqFE:*Fc@ `0S3f!U |'P0\0xD2D$N0LHdlXb)GvlƮ*qTh8 n6i99lfSsb qMll9q=Sư&aqi}MM M%4Lm=ˀ3Lx,=2=.6=pƎZgY|ͫ&|ӫo,<};頑ArGr8]b7 ᔠQh:4ӵ!:.latidtDNΜdYBE`kL6XJqgMF4, ֭?pw}GɵlS~ ^|Nد5&p&CSvԊMYY!+AϰA{|ؖd -jЙ:kc GCEѽn :kM,s p4A?4JC¢HmcٌX24_=[S+*>nD~tΏBp)%xȽ)d _Fոt]7ͤoе6%^~Юiu0^AV]r'ZMrCCƒSݺut4puJ_?÷sg"zE2mCN00}H*+Mt4q#[ߖ-g^ٳ^ho2|5.CZyex9Z.|B2=x44"M,۲ zk&lAFdBX" Z0ZQ/"T3ь5B#"(!Wav9\X.M#>O30ZJe3WiWg܎gX h8Czs`|kSkˏlu|-M>cǎn|ߔk{**߼/?_Kn|6Hl$FDW6=NQF'̿ أJ HGBvEy|z]fENMcaK&:\Pop^N`#kCq;ay|ء7 'GΕm{q˫G B1(`/Bdq>{k37j2{yi=^5-sd$l.^y,9 u|l׻\.ɝãks6Y2_E7:_z}۴^ 5'|gwҞ dw Q{%=d~Po$^cg/ߦyy0:tCxc!YMFBKoCKhh Vw1-T@5$M"?8#6:u |kTBoD= E3wг2W?|€ffǚZUG}oU$TM_МMh_zo'E1PRi=ƟRi=*-Jk~Ҵ7JHJ,:yB×>-()7*xJ4"*ͣ$Qdfb":*#u1k]Z* rTZUi*wJ @Wi JZd:b=zmS0\[Jc+RiYl*Eul[zjtT WlJkJc* 8N0g|%`0YU̔ R&5*qJ)* MÜ Q,%)UiRRRiRO44RF*-dqJPJД Uژ?eDD _n?,]ƴH%%e҂eR7 =BZ$wtHtVHj<wx tӵs߷Pp_dagkN-$W#y}RkAUr;]^_dN]Ƒsb7/* 6p WiTjDniLx:Ee(\$MXhI΀?S*zDd0ňbL:բ(./eR"]R8r{:]Œm(Ql;!7${0`;1P %o0 \R+(-p'Sk3p;p= -fn [.']_y;Ic(G@j򷅻I]ü 8hA!M5]aPӫ  +9RZ- (2A)?l/?D4U(aQ n`uC[W=l/Rk"OkPlԠVvعzJ1A !ez%jwut <*jdk~EP=Ú-,{ynCH@˵Co(gJ1R+=AШE[UcL9Ky5YF:h\L Za>HC QP@EOGUjCsJMιIjhSS娒r˛:P[^?):gT_-5K3k %Ǎ &QP[〱U5uӤ XWWjkf8-UY8(YpY^QS[l.kukʥFgMFavcC}xTۺF#Qe}CscʹBXBX^U8Pf`rĦCr̡J5&g|KљVW?!VϮ*wI0֡T֖*gODi918D`X^[(558*k(84:*l&`H2u+7̆Q(Ν`"rd1\Y茪2Q(74QT7փԟ,fyuGtYtj`6Q5`@4qs'&RYUjg!Z@OA*cm 2:Jumt;.TJ/+ݰ)׽0DK?(i1XW<)afBQ5% A/,zPL$Wm8nS)f+AO(wcY ҽiA֩k O ai!cE$Qdgn.| Q郤O>H}xaV)3iPc Yz%)+ D%a?S$~땤O+O+땤ĸ^)>}KC%Qm.eύw$gnϵeՖI-8e>M$2IesfͨjOTݑtGb;>Kw$wGҧa#tG4X%J/H/H;||C̷A,K\w{{PAn. 2V] wA?U y&﫦ŗnbq. O {[jѳ [cM+zHA*Z*P(8m#BѕwsD\@bJGfC4 5tx h?q$[Dq| >FDyCd慰%/ 㫣Akʄ&8Xw{ BjWQWwF^UM)]ngʢ0 UI~Q}<'2 ++(k 1`3 ->tx-yýfo`mQ0ezP%ZȋvFZQxfHQ>AA.ԉ a`~Pj +z`RvL2NJu g>MpO& En0Ÿy H.> $X.vo(&%"w4 _?Z zN4wmlbiX< zOAv" ak"5q"(Db;Ռv%F-r3M|qh,*"5ŢG݈>֦jA,\G`9CNBl"\z'ꬋՕH(|{x:aVD$u3l}0an+DmsLə!8]