???¨¤ JFIF    ?? C    !"$"$?? C  ?? p " ??     ??   ?¨²   ???? (% aA*?XYD?(J??E¡éRE,P€XYae?)(E¡è2€B¡èR£¤ BQ¡è¡é X?)X¡­€¡è? @ .............................................................................................................................................................................. ............................................................................. PK7½N]7Å‚}�� tablepool.luanu„[µü¤local newtab = require "table.new" local cleartab = require "table.clear" local setmetatable = setmetatable local _M = newtab(0, 2) local max_pool_size = 200 local pools = newtab(0, 4) function _M.fetch(tag, narr, nrec) local pool = pools[tag] if not pool then pool = newtab(4, 1) pools[tag] = pool pool.c = 0 pool[0] = 0 else local len = pool[0] if len > 0 then local obj = pool[len] pool[len] = nil pool[0] = len - 1 -- ngx.log(ngx.ERR, "HIT") return obj end end return newtab(narr, nrec) end function _M.release(tag, obj, noclear) if not obj then error("object empty", 2) end local pool = pools[tag] if not pool then pool = newtab(4, 1) pools[tag] = pool pool.c = 0 pool[0] = 0 end do local cnt = pool.c + 1 if cnt >= 20000 then pool = newtab(4, 1) pools[tag] = pool pool.c = 0 pool[0] = 0 return end pool.c = cnt end local len = pool[0] + 1 if len > max_pool_size then -- discard it simply return end if not noclear then setmetatable(obj, nil) cleartab(obj) end pool[len] = obj pool[0] = len end return _M -- vi: ft=lua ts=4 sw=4 et PK:½N]£öЃƒresty/core/ndk.luanu„[µü¤-- Copyright (C) by OpenResty Inc. local ffi = require 'ffi' local base = require "resty.core.base" base.allows_subsystem('http') local C = ffi.C local ffi_cast = ffi.cast local ffi_new = ffi.new local ffi_str = ffi.string local FFI_OK = base.FFI_OK local new_tab = base.new_tab local get_string_buf = base.get_string_buf local get_request = base.get_request local setmetatable = setmetatable local type = type local tostring = tostring local error = error local _M = { version = base.version } ffi.cdef[[ typedef void * ndk_set_var_value_pt; int ngx_http_lua_ffi_ndk_lookup_directive(const unsigned char *var_data, size_t var_len, ndk_set_var_value_pt *func); int ngx_http_lua_ffi_ndk_set_var_get(ngx_http_request_t *r, ndk_set_var_value_pt func, const unsigned char *arg_data, size_t arg_len, ngx_http_lua_ffi_str_t *value); ]] local func_p = ffi_new("void*[1]") local ffi_str_size = ffi.sizeof("ngx_http_lua_ffi_str_t") local ffi_str_type = ffi.typeof("ngx_http_lua_ffi_str_t*") local function ndk_set_var_get(self, var) if type(var) ~= "string" then var = tostring(var) end if C.ngx_http_lua_ffi_ndk_lookup_directive(var, #var, func_p) ~= FFI_OK then error('ndk.set_var: directive "' .. var .. '" not found or does not use ndk_set_var_value', 2) end local func = func_p[0] return function (arg) local r = get_request() if not r then error("no request found") end if type(arg) ~= "string" then arg = tostring(arg) end local buf = get_string_buf(ffi_str_size) local value = ffi_cast(ffi_str_type, buf) local rc = C.ngx_http_lua_ffi_ndk_set_var_get(r, func, arg, #arg, value) if rc ~= FFI_OK then error("calling directive " .. var .. " failed with code " .. rc, 2) end return ffi_str(value.data, value.len) end end local function ndk_set_var_set() error("not allowed", 2) end if ndk then local mt = new_tab(0, 2) mt.__newindex = ndk_set_var_set mt.__index = ndk_set_var_get ndk.set_var = setmetatable(new_tab(0, 0), mt) end return _M PK;½N]žf~nu<u<resty/core/socket.luanu„[µü¤local base = require "resty.core.base" -- base.allows_subsystem("http") local debug = require "debug" local ffi = require "ffi" local subsystem = ngx.config.subsystem local error = error local assert = assert local tonumber = tonumber local tostring = tostring local type = type local select = select local registry = debug.getregistry() local C = ffi.C local ffi_new = ffi.new local ffi_str = ffi.string local ffi_gc = ffi.gc local get_string_buf = base.get_string_buf local get_size_ptr = base.get_size_ptr local get_request = base.get_request local errmsg = base.get_errmsg_ptr() local co_yield = coroutine._yield local option_index = { ["keepalive"] = 1, ["reuseaddr"] = 2, ["tcp-nodelay"] = 3, ["sndbuf"] = 4, ["rcvbuf"] = 5, ["keepintvl"] = 6, ["keepcnt"] = 7, } local ngx_lua_ffi_socket_tcp_getoption local ngx_lua_ffi_socket_tcp_setoption local ngx_lua_ffi_socket_getfd local ngx_lua_ffi_socket_getsslpointer local ngx_lua_ffi_socket_getsslctx local ngx_lua_ffi_socket_tcp_settrustedstore if subsystem == 'http' then ffi.cdef[[ typedef struct ngx_http_lua_socket_tcp_upstream_s ngx_http_lua_socket_tcp_upstream_t; int ngx_http_lua_ffi_socket_tcp_getoption(ngx_http_lua_socket_tcp_upstream_t *u, int opt, int *val, unsigned char *err, size_t *errlen); int ngx_http_lua_ffi_socket_tcp_setoption(ngx_http_lua_socket_tcp_upstream_t *u, int opt, int val, unsigned char *err, size_t *errlen); int ngx_http_lua_ffi_socket_tcp_sslhandshake(ngx_http_request_t *r, ngx_http_lua_socket_tcp_upstream_t *u, void *sess, int enable_session_reuse, ngx_str_t *server_name, int verify, int ocsp_status_req, void *chain, void *pkey, char **errmsg); int ngx_http_lua_ffi_socket_tcp_get_sslhandshake_result(ngx_http_request_t *r, ngx_http_lua_socket_tcp_upstream_t *u, void **sess, char **errmsg, int *openssl_error_code); void ngx_http_lua_ffi_ssl_free_session(void *sess); int ngx_http_lua_ffi_socket_tcp_getfd(ngx_http_request_t *r, ngx_http_lua_socket_tcp_upstream_t *u, char **errmsg); int ngx_http_lua_socket_tcp_get_ssl_session(ngx_http_request_t *r, ngx_http_lua_socket_tcp_upstream_t *u, void **sess, char **errmsg); int ngx_http_lua_ffi_socket_tcp_get_ssl_pointer(ngx_http_request_t *r, ngx_http_lua_socket_tcp_upstream_t *u, void **pssl, char **errmsg); int ngx_http_lua_ffi_socket_tcp_get_ssl_ctx(ngx_http_request_t *r, ngx_http_lua_socket_tcp_upstream_t *u, void **pctx, char **errmsg); int ngx_http_lua_ffi_socket_tcp_settrustedstore(ngx_http_request_t *r, ngx_http_lua_socket_tcp_upstream_t *u, void *store, char **errmsg); ]] ngx_lua_ffi_socket_tcp_getoption = C.ngx_http_lua_ffi_socket_tcp_getoption ngx_lua_ffi_socket_tcp_setoption = C.ngx_http_lua_ffi_socket_tcp_setoption ngx_lua_ffi_socket_getfd = C.ngx_http_lua_ffi_socket_tcp_getfd if pcall(function() return C.ngx_http_lua_ffi_socket_tcp_get_ssl_pointer end) then ngx_lua_ffi_socket_getsslpointer = C.ngx_http_lua_ffi_socket_tcp_get_ssl_pointer end if pcall(function() return C.ngx_http_lua_ffi_socket_tcp_get_ssl_ctx end) then ngx_lua_ffi_socket_getsslctx = C.ngx_http_lua_ffi_socket_tcp_get_ssl_ctx end if pcall(function() return C.ngx_http_lua_ffi_socket_tcp_settrustedstore end) then ngx_lua_ffi_socket_tcp_settrustedstore = C.ngx_http_lua_ffi_socket_tcp_settrustedstore end elseif subsystem == 'stream' then ffi.cdef[[ typedef struct ngx_stream_lua_socket_tcp_upstream_s ngx_stream_lua_socket_tcp_upstream_t; int ngx_stream_lua_ffi_socket_tcp_getoption(ngx_stream_lua_socket_tcp_upstream_t *u, int option, int *val, unsigned char *err, size_t *errlen); int ngx_stream_lua_ffi_socket_tcp_setoption(ngx_stream_lua_socket_tcp_upstream_t *u, int opt, int val, unsigned char *err, size_t *errlen); int ngx_stream_lua_ffi_socket_tcp_getfd(ngx_stream_lua_request_t *r, ngx_stream_lua_socket_tcp_upstream_t *u, char **errmsg); int ngx_stream_lua_ffi_socket_tcp_get_ssl_pointer(ngx_stream_lua_request_t *r, ngx_stream_lua_socket_tcp_upstream_t *u, void **pssl, char **errmsg); int ngx_stream_lua_ffi_socket_tcp_get_ssl_ctx(ngx_stream_lua_request_t *r, ngx_stream_lua_socket_tcp_upstream_t *u, void **pctx, char **errmsg); int ngx_stream_lua_ffi_socket_tcp_settrustedstore(ngx_stream_lua_request_t *r, ngx_stream_lua_socket_tcp_upstream_t *u, void *store, char **errmsg); ]] ngx_lua_ffi_socket_tcp_getoption = C.ngx_stream_lua_ffi_socket_tcp_getoption ngx_lua_ffi_socket_tcp_setoption = C.ngx_stream_lua_ffi_socket_tcp_setoption ngx_lua_ffi_socket_getfd = C.ngx_stream_lua_ffi_socket_tcp_getfd if pcall(function() return C.ngx_stream_lua_ffi_socket_tcp_get_ssl_pointer end) then ngx_lua_ffi_socket_getsslpointer = C.ngx_stream_lua_ffi_socket_tcp_get_ssl_pointer end if pcall(function() return C.ngx_stream_lua_ffi_socket_tcp_get_ssl_pointer end) then ngx_lua_ffi_socket_getsslctx = C.ngx_stream_lua_ffi_socket_tcp_get_ssl_pointer end if pcall(function() return C.ngx_stream_lua_ffi_socket_tcp_settrustedstore end) then ngx_lua_ffi_socket_tcp_settrustedstore = C.ngx_stream_lua_ffi_socket_tcp_settrustedstore end end local output_value_buf = ffi_new("int[1]") local session_ptr = ffi_new("void *[1]") local ERR_BUF_SIZE = 4096 local FFI_OK = base.FFI_OK local FFI_ERROR = base.FFI_ERROR local FFI_DONE = base.FFI_DONE local FFI_AGAIN = base.FFI_AGAIN local FFI_NO_REQ_CTX = base.FFI_NO_REQ_CTX local SOCKET_CTX_INDEX = 1 local SOCKET_CLIENT_CERT_INDEX = 6 local SOCKET_CLIENT_PKEY_INDEX = 7 local SOCKET_IP_TRANSPARENT_INDEX = 9 local SOCKET_TRUSTED_STORE_INDEX = 10 local function get_tcp_socket(cosocket) local tcp_socket = cosocket[SOCKET_CTX_INDEX] if not tcp_socket then error("socket is never created nor connected") end return tcp_socket end local function getoption(cosocket, option) local tcp_socket = get_tcp_socket(cosocket) if option == nil then return nil, 'missing the "option" argument' end if option_index[option] == nil then return nil, "unsupported option " .. tostring(option) end local err = get_string_buf(ERR_BUF_SIZE) local errlen = get_size_ptr() errlen[0] = ERR_BUF_SIZE local rc = ngx_lua_ffi_socket_tcp_getoption(tcp_socket, option_index[option], output_value_buf, err, errlen) if rc ~= FFI_OK then return nil, ffi_str(err, errlen[0]) end return tonumber(output_value_buf[0]) end local function setoption(cosocket, option, value) if option == nil then return nil, 'missing the "option" argument' end if value == nil then return nil, 'missing the "value" argument' end if option == "ip-transparent" then cosocket[SOCKET_IP_TRANSPARENT_INDEX] = value return true end local tcp_socket = get_tcp_socket(cosocket) if option_index[option] == nil then return nil, "unsupported option " .. tostring(option) end local err = get_string_buf(ERR_BUF_SIZE) local errlen = get_size_ptr() errlen[0] = ERR_BUF_SIZE local rc = ngx_lua_ffi_socket_tcp_setoption(tcp_socket, option_index[option], value, err, errlen) if rc ~= FFI_OK then return nil, ffi_str(err, errlen[0]) end return true end local function getfd(cosocket) if not cosocket then error("ngx.socket getfd: expecting the cosocket object, but seen none") end local r = get_request() if not r then error("no request found") end local u = get_tcp_socket(cosocket) local fd = ngx_lua_ffi_socket_getfd(r, u, errmsg) if (fd < 0) then return nil, ffi_str(errmsg[0]) end return fd; end local function getsslpointer(cosocket) if not cosocket then error("ngx.socket getfd: expecting the cosocket object, but seen none") end local r = get_request() if not r then error("no request found") end local u = get_tcp_socket(cosocket) local rc = ngx_lua_ffi_socket_getsslpointer(r, u, session_ptr, errmsg) if rc == FFI_ERROR then return nil, ffi_str(errmsg[0]) end return session_ptr[0] end local function getsslctx(cosocket) if not cosocket then error("ngx.socket getfd: expecting the cosocket object, but seen none") end local r = get_request() if not r then error("no request found") end local u = get_tcp_socket(cosocket) local rc = ngx_lua_ffi_socket_getsslctx(r, u, session_ptr, errmsg) if rc == FFI_ERROR then return nil, ffi_str(errmsg[0]) end return session_ptr[0] end local NULL_STORE = ffi_new("void *", nil) local function settrustedstore(cosocket, store) if not ngx_lua_ffi_socket_tcp_settrustedstore then return nil, "tcpsock:settrustedstore is not supported by " .. "the current nginx module" end if store ~= nil and type(store) ~= "cdata" then return nil, "bad store arg: cdata expected, got " .. type(store) end local r = get_request() if not r then error("no request found", 2) end local u = get_tcp_socket(cosocket) local rc = ngx_lua_ffi_socket_tcp_settrustedstore(r, u, store or NULL_STORE, errmsg) if rc ~= FFI_OK then return nil, ffi_str(errmsg[0]) end cosocket[SOCKET_TRUSTED_STORE_INDEX] = store return true end if subsystem == 'http' then local server_name_str = ffi_new("ngx_str_t[1]") local openssl_error_code = ffi_new("int[1]") local function setclientcert(cosocket, cert, pkey) if not cert and not pkey then cosocket[SOCKET_CLIENT_CERT_INDEX] = nil cosocket[SOCKET_CLIENT_PKEY_INDEX] = nil return true end if not cert or not pkey then return nil, "client certificate must be supplied with corresponding " .. "private key" end if type(cert) ~= "cdata" then return nil, "bad cert arg: cdata expected, got " .. type(cert) end if type(pkey) ~= "cdata" then return nil, "bad pkey arg: cdata expected, got " .. type(pkey) end cosocket[SOCKET_CLIENT_CERT_INDEX] = cert cosocket[SOCKET_CLIENT_PKEY_INDEX] = pkey return true end local function sslhandshake(cosocket, reused_session, server_name, ssl_verify, send_status_req, ...) local n = select("#", ...) if not cosocket or n > 0 then error("ngx.socket sslhandshake: expecting 1 ~ 5 arguments " .. "(including the object), but seen " .. (cosocket and 5 + n or 0)) end local r = get_request() if not r then error("no request found", 2) end session_ptr[0] = type(reused_session) == "cdata" and reused_session or nil if server_name then server_name_str[0].data = server_name server_name_str[0].len = #server_name else server_name_str[0].data = nil server_name_str[0].len = 0 end local u = get_tcp_socket(cosocket) local rc = C.ngx_http_lua_ffi_socket_tcp_sslhandshake(r, u, session_ptr[0], reused_session ~= false, server_name_str, ssl_verify and 1 or 0, send_status_req and 1 or 0, cosocket[SOCKET_CLIENT_CERT_INDEX], cosocket[SOCKET_CLIENT_PKEY_INDEX], errmsg) if rc == FFI_NO_REQ_CTX then error("no request ctx found", 2) end if rc == FFI_OK then if reused_session == false then return true end rc = C.ngx_http_lua_ffi_socket_tcp_get_sslhandshake_result(r, u, session_ptr, errmsg, openssl_error_code) end while true do if rc == FFI_ERROR then if openssl_error_code[0] ~= 0 then return nil, openssl_error_code[0] .. ": " .. ffi_str(errmsg[0]) end return nil, ffi_str(errmsg[0]) end if rc == FFI_DONE then return reused_session end if rc == FFI_OK then if reused_session == false then return true end rc = C.ngx_http_lua_ffi_socket_tcp_get_sslhandshake_result(r, u, session_ptr, errmsg, openssl_error_code) assert(rc == FFI_OK) if session_ptr[0] == nil then return session_ptr[0] end return ffi_gc(session_ptr[0], C.ngx_http_lua_ffi_ssl_free_session) end assert(rc == FFI_AGAIN) co_yield() rc = C.ngx_http_lua_ffi_socket_tcp_get_sslhandshake_result(r, u, session_ptr, errmsg, openssl_error_code) end end local function getsslsession(cosocket) if not cosocket then error("ngx.socket getfd: expecting the cosocket object, but seen none") end local r = get_request() if not r then error("no request found") end local u = get_tcp_socket(cosocket) local rc = C.ngx_http_lua_socket_tcp_get_ssl_session(r, u, session_ptr, errmsg) if rc == FFI_ERROR then return nil, ffi_str(errmsg[0]) end return ffi_gc(session_ptr[0], C.ngx_http_lua_ffi_ssl_free_session) end do local method_table = registry.__tcp_cosocket_mt method_table.getoption = getoption method_table.setoption = setoption method_table.setclientcert = setclientcert if ngx_lua_ffi_socket_tcp_settrustedstore then method_table.settrustedstore = settrustedstore end method_table.sslhandshake = sslhandshake method_table.getfd = getfd method_table.getoption = getoption method_table.setoption = setoption method_table.getsslsession = getsslsession method_table.getsslpointer = getsslpointer method_table.getsslctx = getsslctx method_table = registry.__tcp_req_cosocket_mt method_table.getfd = getfd method_table.getoption = getoption method_table.setoption = setoption method_table = registry.__tcp_raw_req_cosocket_mt method_table.getfd = getfd method_table.getoption = getoption method_table.setoption = setoption end elseif subsystem == 'stream' then do local method_table = registry.__tcp_cosocket_mt method_table.getoption = getoption method_table.setoption = setoption method_table.getfd = getfd method_table.getsslpointer = getsslpointer method_table.getsslctx = getsslctx if ngx_lua_ffi_socket_tcp_settrustedstore then method_table.settrustedstore = settrustedstore end method_table = registry.__tcp_raw_req_cosocket_mt method_table.getfd = getfd method_table.getoption = getoption method_table.setoption = setoption end end return { version = base.version } PK;½N]¡j›¦ ¦ resty/core/worker.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require "ffi" local jit = require "jit" local base = require "resty.core.base" local ffi_cast = ffi.cast local C = ffi.C local new_tab = base.new_tab local subsystem = ngx.config.subsystem local get_string_buf = base.get_string_buf local get_size_ptr = base.get_size_ptr local ngx_lua_ffi_worker_id local ngx_lua_ffi_worker_pid local ngx_lua_ffi_worker_pids local ngx_lua_ffi_worker_count local ngx_lua_ffi_worker_exiting local ffi_intp_type = ffi.typeof("int *") local ffi_int_size = ffi.sizeof("int") local is_not_windows = jit.os ~= "Windows" if is_not_windows then ngx.worker = new_tab(0, 5) else ngx.worker = new_tab(0, 4) end if subsystem == "http" then ffi.cdef[[ int ngx_http_lua_ffi_worker_id(void); int ngx_http_lua_ffi_worker_pid(void); int ngx_http_lua_ffi_worker_count(void); int ngx_http_lua_ffi_worker_exiting(void); ]] ngx_lua_ffi_worker_id = C.ngx_http_lua_ffi_worker_id ngx_lua_ffi_worker_pid = C.ngx_http_lua_ffi_worker_pid ngx_lua_ffi_worker_count = C.ngx_http_lua_ffi_worker_count ngx_lua_ffi_worker_exiting = C.ngx_http_lua_ffi_worker_exiting elseif subsystem == "stream" then ffi.cdef[[ int ngx_stream_lua_ffi_worker_id(void); int ngx_stream_lua_ffi_worker_pid(void); int ngx_stream_lua_ffi_worker_count(void); int ngx_stream_lua_ffi_worker_exiting(void); ]] ngx_lua_ffi_worker_id = C.ngx_stream_lua_ffi_worker_id ngx_lua_ffi_worker_pid = C.ngx_stream_lua_ffi_worker_pid ngx_lua_ffi_worker_count = C.ngx_stream_lua_ffi_worker_count ngx_lua_ffi_worker_exiting = C.ngx_stream_lua_ffi_worker_exiting end function ngx.worker.exiting() return ngx_lua_ffi_worker_exiting() ~= 0 end function ngx.worker.pid() return ngx_lua_ffi_worker_pid() end if is_not_windows then if subsystem == "http" then require "resty.core.phase" -- for ngx.get_phase ffi.cdef[[ int ngx_http_lua_ffi_worker_pids(int *pids, size_t *pids_len); ]] ngx_lua_ffi_worker_pids = C.ngx_http_lua_ffi_worker_pids elseif subsystem == "stream" then ffi.cdef[[ int ngx_stream_lua_ffi_worker_pids(int *pids, size_t *pids_len); ]] ngx_lua_ffi_worker_pids = C.ngx_stream_lua_ffi_worker_pids end local tonumber = tonumber local ngx_phase = ngx.get_phase function ngx.worker.pids() local phase = ngx_phase() if phase == "init" or phase == "init_worker" then return nil, "API disabled in the current context" end local pids = {} local size_ptr = get_size_ptr() -- the old and the new workers coexist during reloading local worker_cnt = ngx_lua_ffi_worker_count() * 4 if worker_cnt == 0 then return pids end size_ptr[0] = worker_cnt local pids_ptr = get_string_buf(worker_cnt * ffi_int_size) local intp_buf = ffi_cast(ffi_intp_type, pids_ptr) local res = ngx_lua_ffi_worker_pids(intp_buf, size_ptr) if res == 0 then for i = 1, tonumber(size_ptr[0]) do pids[i] = intp_buf[i - 1] end end return pids end end function ngx.worker.id() local id = ngx_lua_ffi_worker_id() if id < 0 then return nil end return id end function ngx.worker.count() return ngx_lua_ffi_worker_count() end return { _VERSION = base.version } PK;½N]æ@ztŠtŠresty/core/regex.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require 'ffi' local base = require "resty.core.base" local bit = require "bit" local subsystem = ngx.config.subsystem require "resty.core.time" -- for ngx.now used by resty.lrucache if subsystem == 'http' then require "resty.core.phase" -- for ngx.get_phase end local lrucache = require "resty.lrucache" local lrucache_get = lrucache.get local lrucache_set = lrucache.set local ffi_string = ffi.string local ffi_gc = ffi.gc local ffi_copy = ffi.copy local ffi_cast = ffi.cast local C = ffi.C local bor = bit.bor local band = bit.band local lshift = bit.lshift local sub = string.sub local fmt = string.format local byte = string.byte local ngx = ngx local type = type local tostring = tostring local error = error local setmetatable = setmetatable local tonumber = tonumber local get_string_buf = base.get_string_buf local get_string_buf_size = base.get_string_buf_size local new_tab = base.new_tab local ngx_phase = ngx.get_phase local ngx_log = ngx.log local ngx_NOTICE = ngx.NOTICE local _M = { version = base.version } ngx.re = new_tab(0, 5) local pcre_ver_fn if subsystem == 'http' then ffi.cdef[[ const char *ngx_http_lua_ffi_pcre_version(void); ]] pcre_ver_fn = C.ngx_http_lua_ffi_pcre_version elseif subsystem == 'stream' then ffi.cdef[[ const char *ngx_stream_lua_ffi_pcre_version(void); ]] pcre_ver_fn = C.ngx_stream_lua_ffi_pcre_version else error("unsupported subsystem: " .. tostring(subsystem)) end local pcre_ver if not pcall(function() pcre_ver = ffi_string(pcre_ver_fn()) end) then setmetatable(ngx.re, { __index = function(_, key) error("no support for 'ngx.re." .. key .. "': OpenResty was " .. "compiled without PCRE support", 2) end }) _M.no_pcre = true return _M end local MAX_ERR_MSG_LEN = 256 local FLAG_COMPILE_ONCE = 0x01 local FLAG_DFA = 0x02 local FLAG_JIT = 0x04 local FLAG_DUPNAMES = 0x08 local FLAG_NO_UTF8_CHECK = 0x10 local PCRE_CASELESS = 0x0000001 local PCRE_MULTILINE = 0x0000002 local PCRE_DOTALL = 0x0000004 local PCRE_EXTENDED = 0x0000008 local PCRE_ANCHORED = 0x0000010 local PCRE_UTF8 = 0x0000800 local PCRE_DUPNAMES = 0x0080000 local PCRE_JAVASCRIPT_COMPAT = 0x2000000 -- PCRE2_ERROR_NOMATCH uses the same value local PCRE_ERROR_NOMATCH = -1 local regex_match_cache local regex_sub_func_cache = new_tab(0, 4) local regex_sub_str_cache = new_tab(0, 4) local max_regex_cache_size local regex_cache_size = 0 local script_engine local ngx_lua_ffi_max_regex_cache_size local ngx_lua_ffi_destroy_regex local ngx_lua_ffi_compile_regex local ngx_lua_ffi_exec_regex local ngx_lua_ffi_create_script_engine local ngx_lua_ffi_destroy_script_engine local ngx_lua_ffi_init_script_engine local ngx_lua_ffi_compile_replace_template local ngx_lua_ffi_script_eval_len local ngx_lua_ffi_script_eval_data -- PCRE 8.43 on macOS introduced the MAP_JIT option when creating the memory -- region used to store JIT compiled code, which does not survive across -- `fork()`, causing further usage of PCRE JIT compiler to segfault in worker -- processes. -- -- This flag prevents any regex used in the init phase to be JIT compiled or -- cached when running under macOS, even if the user requests so. Caching is -- thus disabled to prevent further calls of same regex in worker to have poor -- performance. -- -- TODO: improve this workaround when PCRE allows for unspecifying the MAP_JIT -- option. local no_jit_in_init local pcre_ver_num local maj, min = string.match(pcre_ver, "^(%d+)%.(%d+)") if maj and min then pcre_ver_num = tonumber(maj .. min) end if jit.os == "OSX" then if pcre_ver_num == nil then -- assume this version is faulty as well no_jit_in_init = true -- PCRE2 is also subject to this issue on macOS elseif pcre_ver_num >= 843 then no_jit_in_init = true end end -- pcre2 if pcre_ver_num > 845 then -- option PCRE_CASELESS = 0x00000008 PCRE_MULTILINE = 0x00000400 PCRE_DOTALL = 0x00000020 PCRE_EXTENDED = 0x00000080 PCRE_ANCHORED = 0x80000000 PCRE_UTF8 = 0x00080000 PCRE_DUPNAMES = 0x00000040 -- In the pcre2, The PCRE_JAVASCRIPT_COMPAT option has been split into -- independent functional options PCRE2_ALT_BSUX, PCRE2_ALLOW_EMPTY_CLASS, -- and PCRE2_MATCH_UNSET_BACKREF. local PCRE2_ALT_BSUX = 0x00000002 local PCRE2_ALLOW_EMPTY_CLASS = 0x00000001 local PCRE2_MATCH_UNSET_BACKREF = 0x00000200 PCRE_JAVASCRIPT_COMPAT = bor(PCRE2_ALT_BSUX, PCRE2_ALLOW_EMPTY_CLASS) PCRE_JAVASCRIPT_COMPAT = bor(PCRE2_MATCH_UNSET_BACKREF, PCRE_JAVASCRIPT_COMPAT) end if subsystem == 'http' then ffi.cdef[[ typedef struct { ngx_str_t value; void *lengths; void *values; } ngx_http_lua_complex_value_t; typedef struct { void *pool; unsigned char *name_table; int name_count; int name_entry_size; int ncaptures; int *captures; void *regex; void *regex_sd; ngx_http_lua_complex_value_t *replace; const char *pattern; } ngx_http_lua_regex_t; ngx_http_lua_regex_t * ngx_http_lua_ffi_compile_regex(const unsigned char *pat, size_t pat_len, int flags, int pcre_opts, unsigned char *errstr, size_t errstr_size); int ngx_http_lua_ffi_exec_regex(ngx_http_lua_regex_t *re, int flags, const unsigned char *s, size_t len, int pos); void ngx_http_lua_ffi_destroy_regex(ngx_http_lua_regex_t *re); int ngx_http_lua_ffi_compile_replace_template(ngx_http_lua_regex_t *re, const unsigned char *replace_data, size_t replace_len); struct ngx_http_lua_script_engine_s; typedef struct ngx_http_lua_script_engine_s *ngx_http_lua_script_engine_t; ngx_http_lua_script_engine_t *ngx_http_lua_ffi_create_script_engine(void); void ngx_http_lua_ffi_init_script_engine(ngx_http_lua_script_engine_t *e, const unsigned char *subj, ngx_http_lua_regex_t *compiled, int count); void ngx_http_lua_ffi_destroy_script_engine( ngx_http_lua_script_engine_t *e); size_t ngx_http_lua_ffi_script_eval_len(ngx_http_lua_script_engine_t *e, ngx_http_lua_complex_value_t *cv); size_t ngx_http_lua_ffi_script_eval_data(ngx_http_lua_script_engine_t *e, ngx_http_lua_complex_value_t *cv, unsigned char *dst); uint32_t ngx_http_lua_ffi_max_regex_cache_size(void); ]] ngx_lua_ffi_max_regex_cache_size = C.ngx_http_lua_ffi_max_regex_cache_size ngx_lua_ffi_destroy_regex = C.ngx_http_lua_ffi_destroy_regex ngx_lua_ffi_compile_regex = C.ngx_http_lua_ffi_compile_regex ngx_lua_ffi_exec_regex = C.ngx_http_lua_ffi_exec_regex ngx_lua_ffi_create_script_engine = C.ngx_http_lua_ffi_create_script_engine ngx_lua_ffi_init_script_engine = C.ngx_http_lua_ffi_init_script_engine ngx_lua_ffi_destroy_script_engine = C.ngx_http_lua_ffi_destroy_script_engine ngx_lua_ffi_compile_replace_template = C.ngx_http_lua_ffi_compile_replace_template ngx_lua_ffi_script_eval_len = C.ngx_http_lua_ffi_script_eval_len ngx_lua_ffi_script_eval_data = C.ngx_http_lua_ffi_script_eval_data elseif subsystem == 'stream' then ffi.cdef[[ typedef struct { ngx_str_t value; void *lengths; void *values; } ngx_stream_lua_complex_value_t; typedef struct { void *pool; unsigned char *name_table; int name_count; int name_entry_size; int ncaptures; int *captures; void *regex; void *regex_sd; ngx_stream_lua_complex_value_t *replace; const char *pattern; } ngx_stream_lua_regex_t; ngx_stream_lua_regex_t * ngx_stream_lua_ffi_compile_regex(const unsigned char *pat, size_t pat_len, int flags, int pcre_opts, unsigned char *errstr, size_t errstr_size); int ngx_stream_lua_ffi_exec_regex(ngx_stream_lua_regex_t *re, int flags, const unsigned char *s, size_t len, int pos); void ngx_stream_lua_ffi_destroy_regex(ngx_stream_lua_regex_t *re); int ngx_stream_lua_ffi_compile_replace_template(ngx_stream_lua_regex_t *re, const unsigned char *replace_data, size_t replace_len); struct ngx_stream_lua_script_engine_s; typedef struct ngx_stream_lua_script_engine_s *ngx_stream_lua_script_engine_t; ngx_stream_lua_script_engine_t * ngx_stream_lua_ffi_create_script_engine(void); void ngx_stream_lua_ffi_init_script_engine( ngx_stream_lua_script_engine_t *e, const unsigned char *subj, ngx_stream_lua_regex_t *compiled, int count); void ngx_stream_lua_ffi_destroy_script_engine( ngx_stream_lua_script_engine_t *e); size_t ngx_stream_lua_ffi_script_eval_len( ngx_stream_lua_script_engine_t *e, ngx_stream_lua_complex_value_t *cv); size_t ngx_stream_lua_ffi_script_eval_data( ngx_stream_lua_script_engine_t *e, ngx_stream_lua_complex_value_t *cv, unsigned char *dst); uint32_t ngx_stream_lua_ffi_max_regex_cache_size(void); ]] ngx_lua_ffi_max_regex_cache_size = C.ngx_stream_lua_ffi_max_regex_cache_size ngx_lua_ffi_destroy_regex = C.ngx_stream_lua_ffi_destroy_regex ngx_lua_ffi_compile_regex = C.ngx_stream_lua_ffi_compile_regex ngx_lua_ffi_exec_regex = C.ngx_stream_lua_ffi_exec_regex ngx_lua_ffi_create_script_engine = C.ngx_stream_lua_ffi_create_script_engine ngx_lua_ffi_init_script_engine = C.ngx_stream_lua_ffi_init_script_engine ngx_lua_ffi_destroy_script_engine = C.ngx_stream_lua_ffi_destroy_script_engine ngx_lua_ffi_compile_replace_template = C.ngx_stream_lua_ffi_compile_replace_template ngx_lua_ffi_script_eval_len = C.ngx_stream_lua_ffi_script_eval_len ngx_lua_ffi_script_eval_data = C.ngx_stream_lua_ffi_script_eval_data end local c_str_type = ffi.typeof("const char *") local cached_re_opts = new_tab(0, 4) local buf_grow_ratio = 2 function _M.set_buf_grow_ratio(ratio) buf_grow_ratio = ratio end local function get_max_regex_cache_size() if max_regex_cache_size then return max_regex_cache_size end max_regex_cache_size = ngx_lua_ffi_max_regex_cache_size() return max_regex_cache_size end local regex_cache_is_empty = true function _M.is_regex_cache_empty() return regex_cache_is_empty end local function lrucache_set_wrapper(...) regex_cache_is_empty = false lrucache_set(...) end local parse_regex_opts = function (opts) local t = cached_re_opts[opts] if t then return t[1], t[2] end local flags = 0 local pcre_opts = 0 local len = #opts for i = 1, len do local opt = byte(opts, i) if opt == byte("o") then flags = bor(flags, FLAG_COMPILE_ONCE) elseif opt == byte("j") then flags = bor(flags, FLAG_JIT) elseif opt == byte("i") then pcre_opts = bor(pcre_opts, PCRE_CASELESS) elseif opt == byte("s") then pcre_opts = bor(pcre_opts, PCRE_DOTALL) elseif opt == byte("m") then pcre_opts = bor(pcre_opts, PCRE_MULTILINE) elseif opt == byte("u") then pcre_opts = bor(pcre_opts, PCRE_UTF8) elseif opt == byte("U") then pcre_opts = bor(pcre_opts, PCRE_UTF8) flags = bor(flags, FLAG_NO_UTF8_CHECK) elseif opt == byte("x") then pcre_opts = bor(pcre_opts, PCRE_EXTENDED) elseif opt == byte("d") then flags = bor(flags, FLAG_DFA) elseif opt == byte("a") then pcre_opts = bor(pcre_opts, PCRE_ANCHORED) elseif opt == byte("D") then pcre_opts = bor(pcre_opts, PCRE_DUPNAMES) flags = bor(flags, FLAG_DUPNAMES) elseif opt == byte("J") then pcre_opts = bor(pcre_opts, PCRE_JAVASCRIPT_COMPAT) else error(fmt('unknown flag "%s" (flags "%s")', sub(opts, i, i), opts), 3) end end cached_re_opts[opts] = {flags, pcre_opts} return flags, pcre_opts end if no_jit_in_init then local parse_regex_opts_ = parse_regex_opts parse_regex_opts = function (opts) if ngx_phase() ~= "init" then -- past init_by_lua* phase now parse_regex_opts = parse_regex_opts_ return parse_regex_opts(opts) end local t = cached_re_opts[opts] if t then return t[1], t[2] end local flags = 0 local pcre_opts = 0 local len = #opts for i = 1, len do local opt = byte(opts, i) if opt == byte("o") then ngx_log(ngx_NOTICE, "regex compilation cache disabled in init ", "phase under macOS") elseif opt == byte("j") then ngx_log(ngx_NOTICE, "regex compilation disabled in init ", "phase under macOS") elseif opt == byte("i") then pcre_opts = bor(pcre_opts, PCRE_CASELESS) elseif opt == byte("s") then pcre_opts = bor(pcre_opts, PCRE_DOTALL) elseif opt == byte("m") then pcre_opts = bor(pcre_opts, PCRE_MULTILINE) elseif opt == byte("u") then pcre_opts = bor(pcre_opts, PCRE_UTF8) elseif opt == byte("U") then pcre_opts = bor(pcre_opts, PCRE_UTF8) flags = bor(flags, FLAG_NO_UTF8_CHECK) elseif opt == byte("x") then pcre_opts = bor(pcre_opts, PCRE_EXTENDED) elseif opt == byte("d") then flags = bor(flags, FLAG_DFA) elseif opt == byte("a") then pcre_opts = bor(pcre_opts, PCRE_ANCHORED) elseif opt == byte("D") then pcre_opts = bor(pcre_opts, PCRE_DUPNAMES) flags = bor(flags, FLAG_DUPNAMES) elseif opt == byte("J") then pcre_opts = bor(pcre_opts, PCRE_JAVASCRIPT_COMPAT) else error(fmt('unknown flag "%s" (flags "%s")', sub(opts, i, i), opts), 3) end end cached_re_opts[opts] = {flags, pcre_opts} return flags, pcre_opts end end local function collect_named_captures(compiled, flags, res) local name_count = compiled.name_count local name_table = compiled.name_table local entry_size = compiled.name_entry_size local ind = 0 local dup_names = (band(flags, FLAG_DUPNAMES) ~= 0) for i = 1, name_count do local n = bor(lshift(name_table[ind], 8), name_table[ind + 1]) -- ngx.say("n = ", n) local name = ffi_string(name_table + ind + 2) local cap = res[n] if dup_names then -- unmatched captures (false) are not collected if cap then local old = res[name] if old then old[#old + 1] = cap else res[name] = {cap} end end else res[name] = cap end ind = ind + entry_size end end local function collect_captures(compiled, rc, subj, flags, res) local cap = compiled.captures local ncap = compiled.ncaptures local name_count = compiled.name_count if not res then res = new_tab(ncap, name_count) end local i = 0 local n = 0 while i <= ncap do if i > rc then res[i] = false else local from = cap[n] if from >= 0 then local to = cap[n + 1] res[i] = sub(subj, from + 1, to) else res[i] = false end end i = i + 1 n = n + 2 end if name_count > 0 then collect_named_captures(compiled, flags, res) end return res end _M.collect_captures = collect_captures local function destroy_compiled_regex(compiled) ngx_lua_ffi_destroy_regex(ffi_gc(compiled, nil)) end _M.destroy_compiled_regex = destroy_compiled_regex local function re_match_compile(regex, opts) local flags = 0 local pcre_opts = 0 if opts then flags, pcre_opts = parse_regex_opts(opts) else opts = "" end local compiled, key local compile_once = (band(flags, FLAG_COMPILE_ONCE) == 1) -- FIXME: better put this in the outer scope when fixing the ngx.re API's -- compatibility in the init_by_lua* context. if not regex_match_cache then local sz = get_max_regex_cache_size() if sz <= 0 then compile_once = false else regex_match_cache = lrucache.new(sz) end end if compile_once then key = regex .. '\0' .. opts compiled = lrucache_get(regex_match_cache, key) end -- compile the regex if compiled == nil then -- print("compiled regex not found, compiling regex...") local errbuf = get_string_buf(MAX_ERR_MSG_LEN) compiled = ngx_lua_ffi_compile_regex(regex, #regex, flags, pcre_opts, errbuf, MAX_ERR_MSG_LEN) if compiled == nil then return nil, ffi_string(errbuf) end ffi_gc(compiled, ngx_lua_ffi_destroy_regex) -- print("ncaptures: ", compiled.ncaptures) if compile_once then -- print("inserting compiled regex into cache") lrucache_set_wrapper(regex_match_cache, key, compiled) end end return compiled, compile_once, flags end _M.re_match_compile = re_match_compile local function re_match_helper(subj, regex, opts, ctx, want_caps, res, nth) -- we need to cast this to strings to avoid exceptions when they are -- something else. subj = tostring(subj) local compiled, compile_once, flags = re_match_compile(regex, opts) if compiled == nil then -- compiled_once holds the error string if not want_caps then return nil, nil, compile_once end return nil, compile_once end -- exec the compiled regex local rc do local pos if ctx then pos = ctx.pos if not pos or pos <= 0 then pos = 0 else pos = pos - 1 end else pos = 0 end rc = ngx_lua_ffi_exec_regex(compiled, flags, subj, #subj, pos) end if rc == PCRE_ERROR_NOMATCH then if not compile_once then destroy_compiled_regex(compiled) end return nil end if rc < 0 then if not compile_once then destroy_compiled_regex(compiled) end if not want_caps then return nil, nil, "pcre_exec() failed: " .. rc end return nil, "pcre_exec() failed: " .. rc end if rc == 0 then if band(flags, FLAG_DFA) == 0 then if not want_caps then return nil, nil, "capture size too small" end return nil, "capture size too small" end rc = 1 end -- print("cap 0: ", compiled.captures[0]) -- print("cap 1: ", compiled.captures[1]) if ctx then ctx.pos = compiled.captures[1] + 1 end if not want_caps then if not nth or nth < 0 then nth = 0 end if nth > compiled.ncaptures then return nil, nil, "nth out of bound" end if nth >= rc then return nil, nil end local from = compiled.captures[nth * 2] + 1 local to = compiled.captures[nth * 2 + 1] if from < 0 or to < 0 then return nil, nil end return from, to end res = collect_captures(compiled, rc, subj, flags, res) if not compile_once then destroy_compiled_regex(compiled) end return res end function ngx.re.match(subj, regex, opts, ctx, res) return re_match_helper(subj, regex, opts, ctx, true, res) end function ngx.re.find(subj, regex, opts, ctx, nth) return re_match_helper(subj, regex, opts, ctx, false, nil, nth) end do local function destroy_re_gmatch_iterator(iterator) if not iterator._compile_once then destroy_compiled_regex(iterator._compiled) end iterator._compiled = nil iterator._pos = nil iterator._subj = nil end local function iterate_re_gmatch(self) local compiled = self._compiled local subj = self._subj local subj_len = self._subj_len local flags = self._flags local pos = self._pos if not pos then -- The iterator is exhausted. return nil end local rc = ngx_lua_ffi_exec_regex(compiled, flags, subj, subj_len, pos) if rc == PCRE_ERROR_NOMATCH then destroy_re_gmatch_iterator(self) return nil end if rc < 0 then destroy_re_gmatch_iterator(self) return nil, "pcre_exec() failed: " .. rc end if rc == 0 then if band(flags, FLAG_DFA) == 0 then destroy_re_gmatch_iterator(self) return nil, "capture size too small" end rc = 1 end local cp_pos = tonumber(compiled.captures[1]) if cp_pos == compiled.captures[0] then cp_pos = cp_pos + 1 if cp_pos > subj_len then local res = collect_captures(compiled, rc, subj, flags) destroy_re_gmatch_iterator(self) return res end end self._pos = cp_pos return collect_captures(compiled, rc, subj, flags) end local re_gmatch_iterator_mt = { __call = iterate_re_gmatch } function ngx.re.gmatch(subj, regex, opts) subj = tostring(subj) local compiled, compile_once, flags = re_match_compile(regex, opts) if compiled == nil then -- compiled_once holds the error string return nil, compile_once end local re_gmatch_iterator = { _compiled = compiled, _compile_once = compile_once, _subj = subj, _subj_len = #subj, _flags = flags, _pos = 0, } return setmetatable(re_gmatch_iterator, re_gmatch_iterator_mt) end end -- do local function new_script_engine(subj, compiled, count) if not script_engine then script_engine = ngx_lua_ffi_create_script_engine() if script_engine == nil then return nil end ffi_gc(script_engine, ngx_lua_ffi_destroy_script_engine) end ngx_lua_ffi_init_script_engine(script_engine, subj, compiled, count) return script_engine end local function check_buf_size(buf, buf_size, pos, len, new_len, must_alloc) if new_len > buf_size then buf_size = buf_size * buf_grow_ratio if buf_size < new_len then buf_size = new_len end local new_buf = get_string_buf(buf_size, must_alloc) ffi_copy(new_buf, buf, len) buf = new_buf pos = buf + len end return buf, buf_size, pos, new_len end _M.check_buf_size = check_buf_size local function re_sub_compile(regex, opts, replace, func) local flags = 0 local pcre_opts = 0 if opts then flags, pcre_opts = parse_regex_opts(opts) else opts = "" end local compiled local compile_once = (band(flags, FLAG_COMPILE_ONCE) == 1) if compile_once then if func then local subcache = regex_sub_func_cache[opts] if subcache then -- print("cache hit!") compiled = subcache[regex] end else local subcache = regex_sub_str_cache[opts] if subcache then local subsubcache = subcache[regex] if subsubcache then -- print("cache hit!") compiled = subsubcache[replace] end end end end -- compile the regex if compiled == nil then -- print("compiled regex not found, compiling regex...") local errbuf = get_string_buf(MAX_ERR_MSG_LEN) compiled = ngx_lua_ffi_compile_regex(regex, #regex, flags, pcre_opts, errbuf, MAX_ERR_MSG_LEN) if compiled == nil then return nil, ffi_string(errbuf) end ffi_gc(compiled, ngx_lua_ffi_destroy_regex) if func == nil then local rc = ngx_lua_ffi_compile_replace_template(compiled, replace, #replace) if rc ~= 0 then if not compile_once then destroy_compiled_regex(compiled) end return nil, "failed to compile the replacement template" end end -- print("ncaptures: ", compiled.ncaptures) if compile_once then if regex_cache_size < get_max_regex_cache_size() then -- print("inserting compiled regex into cache") if func then local subcache = regex_sub_func_cache[opts] if not subcache then regex_sub_func_cache[opts] = {[regex] = compiled} else subcache[regex] = compiled end else local subcache = regex_sub_str_cache[opts] if not subcache then regex_sub_str_cache[opts] = {[regex] = {[replace] = compiled}} else local subsubcache = subcache[regex] if not subsubcache then subcache[regex] = {[replace] = compiled} else subsubcache[replace] = compiled end end end regex_cache_size = regex_cache_size + 1 else compile_once = false end end end return compiled, compile_once, flags end _M.re_sub_compile = re_sub_compile local function re_sub_func_helper(subj, regex, replace, opts, global) local compiled, compile_once, flags = re_sub_compile(regex, opts, nil, replace) if not compiled then -- error string is in compile_once return nil, nil, compile_once end -- exec the compiled regex subj = tostring(subj) local subj_len = #subj local count = 0 local pos = 0 local cp_pos = 0 local dst_buf_size = get_string_buf_size() -- Note: we have to always allocate the string buffer because -- the user might call whatever resty.core's API functions recursively -- in the user callback function. local dst_buf = get_string_buf(dst_buf_size, true) local dst_pos = dst_buf local dst_len = 0 while true do local rc = ngx_lua_ffi_exec_regex(compiled, flags, subj, subj_len, pos) if rc == PCRE_ERROR_NOMATCH then break end if rc < 0 then if not compile_once then destroy_compiled_regex(compiled) end return nil, nil, "pcre_exec() failed: " .. rc end if rc == 0 then if band(flags, FLAG_DFA) == 0 then if not compile_once then destroy_compiled_regex(compiled) end return nil, nil, "capture size too small" end rc = 1 end count = count + 1 local prefix_len = compiled.captures[0] - cp_pos local res = collect_captures(compiled, rc, subj, flags) local piece = tostring(replace(res)) local piece_len = #piece local new_dst_len = dst_len + prefix_len + piece_len dst_buf, dst_buf_size, dst_pos, dst_len = check_buf_size(dst_buf, dst_buf_size, dst_pos, dst_len, new_dst_len, true) if prefix_len > 0 then ffi_copy(dst_pos, ffi_cast(c_str_type, subj) + cp_pos, prefix_len) dst_pos = dst_pos + prefix_len end if piece_len > 0 then ffi_copy(dst_pos, piece, piece_len) dst_pos = dst_pos + piece_len end cp_pos = compiled.captures[1] pos = cp_pos if pos == compiled.captures[0] then pos = pos + 1 if pos > subj_len then break end end if not global then break end end if not compile_once then destroy_compiled_regex(compiled) end if count > 0 then if cp_pos < subj_len then local suffix_len = subj_len - cp_pos local new_dst_len = dst_len + suffix_len local _ dst_buf, _, dst_pos, dst_len = check_buf_size(dst_buf, dst_buf_size, dst_pos, dst_len, new_dst_len, true) ffi_copy(dst_pos, ffi_cast(c_str_type, subj) + cp_pos, suffix_len) end return ffi_string(dst_buf, dst_len), count end return subj, 0 end local function re_sub_str_helper(subj, regex, replace, opts, global) local compiled, compile_once, flags = re_sub_compile(regex, opts, replace, nil) if not compiled then -- error string is in compile_once return nil, nil, compile_once end -- exec the compiled regex subj = tostring(subj) local subj_len = #subj local count = 0 local pos = 0 local cp_pos = 0 local dst_buf_size = get_string_buf_size() local dst_buf = get_string_buf(dst_buf_size) local dst_pos = dst_buf local dst_len = 0 while true do local rc = ngx_lua_ffi_exec_regex(compiled, flags, subj, subj_len, pos) if rc == PCRE_ERROR_NOMATCH then break end if rc < 0 then if not compile_once then destroy_compiled_regex(compiled) end return nil, nil, "pcre_exec() failed: " .. rc end if rc == 0 then if band(flags, FLAG_DFA) == 0 then if not compile_once then destroy_compiled_regex(compiled) end return nil, nil, "capture size too small" end rc = 1 end count = count + 1 local prefix_len = compiled.captures[0] - cp_pos local cv = compiled.replace if cv.lengths ~= nil then local e = new_script_engine(subj, compiled, rc) if e == nil then return nil, nil, "failed to create script engine" end local bit_len = ngx_lua_ffi_script_eval_len(e, cv) local new_dst_len = dst_len + prefix_len + bit_len dst_buf, dst_buf_size, dst_pos, dst_len = check_buf_size(dst_buf, dst_buf_size, dst_pos, dst_len, new_dst_len) if prefix_len > 0 then ffi_copy(dst_pos, ffi_cast(c_str_type, subj) + cp_pos, prefix_len) dst_pos = dst_pos + prefix_len end if bit_len > 0 then ngx_lua_ffi_script_eval_data(e, cv, dst_pos) dst_pos = dst_pos + bit_len end else local bit_len = cv.value.len dst_buf, dst_buf_size, dst_pos, dst_len = check_buf_size(dst_buf, dst_buf_size, dst_pos, dst_len, dst_len + prefix_len + bit_len) if prefix_len > 0 then ffi_copy(dst_pos, ffi_cast(c_str_type, subj) + cp_pos, prefix_len) dst_pos = dst_pos + prefix_len end if bit_len > 0 then ffi_copy(dst_pos, cv.value.data, bit_len) dst_pos = dst_pos + bit_len end end cp_pos = compiled.captures[1] pos = cp_pos if pos == compiled.captures[0] then pos = pos + 1 if pos > subj_len then break end end if not global then break end end if not compile_once then destroy_compiled_regex(compiled) end if count > 0 then if cp_pos < subj_len then local suffix_len = subj_len - cp_pos local new_dst_len = dst_len + suffix_len local _ dst_buf, _, dst_pos, dst_len = check_buf_size(dst_buf, dst_buf_size, dst_pos, dst_len, new_dst_len) ffi_copy(dst_pos, ffi_cast(c_str_type, subj) + cp_pos, suffix_len) end return ffi_string(dst_buf, dst_len), count end return subj, 0 end local function re_sub_helper(subj, regex, replace, opts, global) local repl_type = type(replace) if repl_type == "function" then return re_sub_func_helper(subj, regex, replace, opts, global) end if repl_type ~= "string" then replace = tostring(replace) end return re_sub_str_helper(subj, regex, replace, opts, global) end function ngx.re.sub(subj, regex, replace, opts) return re_sub_helper(subj, regex, replace, opts, false) end function ngx.re.gsub(subj, regex, replace, opts) return re_sub_helper(subj, regex, replace, opts, true) end return _M PK;½N]›ž¢Þððresty/core/response.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require 'ffi' local base = require "resty.core.base" local C = ffi.C local ffi_cast = ffi.cast local ffi_str = ffi.string local new_tab = base.new_tab local FFI_BAD_CONTEXT = base.FFI_BAD_CONTEXT local FFI_NO_REQ_CTX = base.FFI_NO_REQ_CTX local FFI_DECLINED = base.FFI_DECLINED local get_string_buf = base.get_string_buf local setmetatable = setmetatable local type = type local tostring = tostring local get_request = base.get_request local error = error local ngx = ngx local _M = { version = base.version } local MAX_HEADER_VALUES = 100 local errmsg = base.get_errmsg_ptr() local ffi_str_type = ffi.typeof("ngx_http_lua_ffi_str_t*") local ffi_str_size = ffi.sizeof("ngx_http_lua_ffi_str_t") ffi.cdef[[ int ngx_http_lua_ffi_set_resp_header(ngx_http_request_t *r, const char *key_data, size_t key_len, int is_nil, const char *sval, size_t sval_len, ngx_http_lua_ffi_str_t *mvals, size_t mvals_len, int override, char **errmsg); int ngx_http_lua_ffi_get_resp_header(ngx_http_request_t *r, const unsigned char *key, size_t key_len, unsigned char *key_buf, ngx_http_lua_ffi_str_t *values, int max_nvalues, char **errmsg); int ngx_http_lua_ffi_bypass_if_checks(ngx_http_request_t *r); ]] local ngx_lua_ffi_set_resp_header local MACOS = jit and jit.os == "OSX" if MACOS then ffi.cdef[[ typedef struct { ngx_http_request_t *r; const char *key_data; size_t key_len; int is_nil; const char *sval; size_t sval_len; void *mvals; size_t mvals_len; int override; char **errmsg; } ngx_http_lua_set_resp_header_params_t; int ngx_http_lua_ffi_set_resp_header_macos( ngx_http_lua_set_resp_header_params_t *p); ]] local set_params = ffi.new("ngx_http_lua_set_resp_header_params_t") ngx_lua_ffi_set_resp_header = function(r, key, key_len, is_nil, sval, sval_len, mvals, mvals_len, override, err) set_params.r = r set_params.key_data = key set_params.key_len = key_len set_params.is_nil = is_nil set_params.sval = sval set_params.sval_len = sval_len set_params.mvals = mvals set_params.mvals_len = mvals_len set_params.override = override set_params.errmsg = err return C.ngx_http_lua_ffi_set_resp_header_macos(set_params) end else ngx_lua_ffi_set_resp_header = function(r, key, key_len, is_nil, sval, sval_len, mvals, mvals_len, override, err) return C.ngx_http_lua_ffi_set_resp_header(r, key, key_len, is_nil, sval, sval_len, mvals, mvals_len, override, err) end end local function set_resp_header(tb, key, value, no_override) local r = get_request() if not r then error("no request found") end if type(key) ~= "string" then key = tostring(key) end local rc if value == nil then if no_override then error("invalid header value", 3) end rc = ngx_lua_ffi_set_resp_header(r, key, #key, true, nil, 0, nil, 0, 1, errmsg) else local sval, sval_len, mvals, mvals_len, buf if type(value) == "table" then mvals_len = #value if mvals_len == 0 and no_override then return end buf = get_string_buf(ffi_str_size * mvals_len) mvals = ffi_cast(ffi_str_type, buf) for i = 1, mvals_len do local s = value[i] if type(s) ~= "string" then s = tostring(s) value[i] = s end local str = mvals[i - 1] str.data = s str.len = #s end sval_len = 0 else if type(value) ~= "string" then sval = tostring(value) else sval = value end sval_len = #sval mvals_len = 0 end local override_int = no_override and 0 or 1 rc = ngx_lua_ffi_set_resp_header(r, key, #key, false, sval, sval_len, mvals, mvals_len, override_int, errmsg) end if rc == 0 or rc == FFI_DECLINED then return end if rc == FFI_NO_REQ_CTX then error("no request ctx found") end if rc == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end -- rc == FFI_ERROR error(ffi_str(errmsg[0]), 2) end _M.set_resp_header = set_resp_header local function get_resp_header(tb, key) local r = get_request() if not r then error("no request found") end if type(key) ~= "string" then key = tostring(key) end local key_len = #key local key_buf = get_string_buf(key_len + ffi_str_size * MAX_HEADER_VALUES) local values = ffi_cast(ffi_str_type, key_buf + key_len) local n = C.ngx_http_lua_ffi_get_resp_header(r, key, key_len, key_buf, values, MAX_HEADER_VALUES, errmsg) -- print("retval: ", n) if n == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end if n == 0 then return nil end if n == 1 then local v = values[0] return ffi_str(v.data, v.len) end if n > 0 then local ret = new_tab(n, 0) for i = 1, n do local v = values[i - 1] ret[i] = ffi_str(v.data, v.len) end return ret end -- n == FFI_ERROR error(ffi_str(errmsg[0]), 2) end local function bypass_if_checks() local r = get_request() if not r then error("no request found") end C.ngx_http_lua_ffi_bypass_if_checks(r) end _M.bypass_if_checks = bypass_if_checks do local mt = new_tab(0, 2) mt.__newindex = set_resp_header mt.__index = get_resp_header ngx.header = setmetatable(new_tab(0, 0), mt) end return _M PK;½N]`t””ÑÑresty/core/misc.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local base = require "resty.core.base" local ffi = require "ffi" local os = require "os" local C = ffi.C local ffi_new = ffi.new local ffi_str = ffi.string local ngx = ngx local type = type local error = error local rawget = rawget local rawset = rawset local tonumber = tonumber local setmetatable = setmetatable local FFI_OK = base.FFI_OK local FFI_NO_REQ_CTX = base.FFI_NO_REQ_CTX local FFI_BAD_CONTEXT = base.FFI_BAD_CONTEXT local new_tab = base.new_tab local get_request = base.get_request local get_size_ptr = base.get_size_ptr local get_string_buf = base.get_string_buf local get_string_buf_size = base.get_string_buf_size local subsystem = ngx.config.subsystem local ngx_lua_ffi_get_resp_status local ngx_lua_ffi_get_conf_env local ngx_magic_key_getters local ngx_magic_key_setters local _M = new_tab(0, 3) local ngx_mt = new_tab(0, 2) if subsystem == "http" then ngx_magic_key_getters = new_tab(0, 4) ngx_magic_key_setters = new_tab(0, 2) elseif subsystem == "stream" then ngx_magic_key_getters = new_tab(0, 2) ngx_magic_key_setters = new_tab(0, 1) end local function register_getter(key, func) ngx_magic_key_getters[key] = func end _M.register_ngx_magic_key_getter = register_getter local function register_setter(key, func) ngx_magic_key_setters[key] = func end _M.register_ngx_magic_key_setter = register_setter ngx_mt.__index = function (tb, key) local f = ngx_magic_key_getters[key] if f then return f() end return rawget(tb, key) end ngx_mt.__newindex = function (tb, key, ctx) local f = ngx_magic_key_setters[key] if f then return f(ctx) end return rawset(tb, key, ctx) end setmetatable(ngx, ngx_mt) if subsystem == "http" then ffi.cdef[[ int ngx_http_lua_ffi_get_resp_status(ngx_http_request_t *r); int ngx_http_lua_ffi_set_resp_status(ngx_http_request_t *r, int r); int ngx_http_lua_ffi_is_subrequest(ngx_http_request_t *r); int ngx_http_lua_ffi_headers_sent(ngx_http_request_t *r); int ngx_http_lua_ffi_get_conf_env(const unsigned char *name, unsigned char **env_buf, size_t *name_len); int ngx_http_lua_ffi_req_is_internal(ngx_http_request_t *r); ]] ngx_lua_ffi_get_resp_status = C.ngx_http_lua_ffi_get_resp_status ngx_lua_ffi_get_conf_env = C.ngx_http_lua_ffi_get_conf_env -- ngx.status local function set_status(status) local r = get_request() if not r then error("no request found") end if type(status) ~= 'number' then status = tonumber(status) end local rc = C.ngx_http_lua_ffi_set_resp_status(r, status) if rc == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end end register_setter("status", set_status) -- ngx.is_subrequest local function is_subreq() local r = get_request() if not r then error("no request found") end local rc = C.ngx_http_lua_ffi_is_subrequest(r) if rc == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end return rc == 1 end register_getter("is_subrequest", is_subreq) -- ngx.headers_sent local function headers_sent() local r = get_request() if not r then error("no request found") end local rc = C.ngx_http_lua_ffi_headers_sent(r) if rc == FFI_NO_REQ_CTX then error("no request ctx found") end if rc == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end return rc == 1 end register_getter("headers_sent", headers_sent) -- ngx.req.is_internal function ngx.req.is_internal() local r = get_request() if not r then error("no request found") end local rc = C.ngx_http_lua_ffi_req_is_internal(r) if rc == FFI_BAD_CONTEXT then error("API disabled in the current context") end return rc == 1 end elseif subsystem == "stream" then ffi.cdef[[ int ngx_stream_lua_ffi_get_resp_status(ngx_stream_lua_request_t *r); int ngx_stream_lua_ffi_get_conf_env(const unsigned char *name, unsigned char **env_buf, size_t *name_len); ]] ngx_lua_ffi_get_resp_status = C.ngx_stream_lua_ffi_get_resp_status ngx_lua_ffi_get_conf_env = C.ngx_stream_lua_ffi_get_conf_env end -- ngx.status local function get_status() local r = get_request() if not r then error("no request found") end local rc = ngx_lua_ffi_get_resp_status(r) if rc == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end return rc end register_getter("status", get_status) do local _getenv = os.getenv local env_ptr = ffi_new("unsigned char *[1]") os.getenv = function (name) local r = get_request() if r then -- past init_by_lua* phase now os.getenv = _getenv env_ptr = nil return os.getenv(name) end local size = get_string_buf_size() env_ptr[0] = get_string_buf(size) local name_len_ptr = get_size_ptr() local rc = ngx_lua_ffi_get_conf_env(name, env_ptr, name_len_ptr) if rc == FFI_OK then return ffi_str(env_ptr[0] + name_len_ptr[0] + 1) end -- FFI_DECLINED local value = _getenv(name) if value ~= nil then return value end return nil end end _M._VERSION = base.version return _M PK;½N]0uƒU””resty/core/ctx.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require "ffi" local debug = require "debug" local base = require "resty.core.base" local misc = require "resty.core.misc" local C = ffi.C local register_getter = misc.register_ngx_magic_key_getter local register_setter = misc.register_ngx_magic_key_setter local registry = debug.getregistry() local new_tab = base.new_tab local ref_in_table = base.ref_in_table local unref_in_table = base.unref_in_table local get_request = base.get_request local FFI_NO_REQ_CTX = base.FFI_NO_REQ_CTX local FFI_OK = base.FFI_OK local error = error local setmetatable = setmetatable local type = type local subsystem = ngx.config.subsystem local ngx_lua_ffi_get_ctx_ref local ngx_lua_ffi_set_ctx_ref if subsystem == "http" then ffi.cdef[[ int ngx_http_lua_ffi_get_ctx_ref(ngx_http_request_t *r, int *in_ssl_phase, int *ssl_ctx_ref); int ngx_http_lua_ffi_set_ctx_ref(ngx_http_request_t *r, int ref); ]] ngx_lua_ffi_get_ctx_ref = C.ngx_http_lua_ffi_get_ctx_ref ngx_lua_ffi_set_ctx_ref = C.ngx_http_lua_ffi_set_ctx_ref elseif subsystem == "stream" then ffi.cdef[[ int ngx_stream_lua_ffi_get_ctx_ref(ngx_stream_lua_request_t *r, int *in_ssl_phase, int *ssl_ctx_ref); int ngx_stream_lua_ffi_set_ctx_ref(ngx_stream_lua_request_t *r, int ref); ]] ngx_lua_ffi_get_ctx_ref = C.ngx_stream_lua_ffi_get_ctx_ref ngx_lua_ffi_set_ctx_ref = C.ngx_stream_lua_ffi_set_ctx_ref end local _M = { _VERSION = base.version } -- use a new ctxs table to make LuaJIT JIT compiler happy to generate more -- efficient machine code. local ctxs = {} registry.ngx_lua_ctx_tables = ctxs local get_ctx_table do local in_ssl_phase = ffi.new("int[1]") local ssl_ctx_ref = ffi.new("int[1]") function get_ctx_table(ctx) local r = get_request() if not r then error("no request found") end local ctx_ref = ngx_lua_ffi_get_ctx_ref(r, in_ssl_phase, ssl_ctx_ref) if ctx_ref == FFI_NO_REQ_CTX then error("no request ctx found") end if ctx_ref < 0 then ctx_ref = ssl_ctx_ref[0] if ctx_ref > 0 and ctxs[ctx_ref] then if in_ssl_phase[0] ~= 0 then return ctxs[ctx_ref] end if not ctx then ctx = new_tab(0, 4) end ctx = setmetatable(ctx, ctxs[ctx_ref]) else if in_ssl_phase[0] ~= 0 then if not ctx then ctx = new_tab(1, 4) end -- to avoid creating another table, we assume the users -- won't overwrite the `__index` key ctx.__index = ctx elseif not ctx then ctx = new_tab(0, 4) end end ctx_ref = ref_in_table(ctxs, ctx) if ngx_lua_ffi_set_ctx_ref(r, ctx_ref) ~= FFI_OK then unref_in_table(ctxs, ctx_ref) return nil end return ctx end return ctxs[ctx_ref] end end register_getter("ctx", get_ctx_table) _M.get_ctx_table = get_ctx_table local function set_ctx_table(ctx) local ctx_type = type(ctx) if ctx_type ~= "table" then error("ctx should be a table while getting a " .. ctx_type) end local r = get_request() if not r then error("no request found") end local ctx_ref = ngx_lua_ffi_get_ctx_ref(r, nil, nil) if ctx_ref == FFI_NO_REQ_CTX then error("no request ctx found") end if ctx_ref < 0 then ctx_ref = ref_in_table(ctxs, ctx) if ngx_lua_ffi_set_ctx_ref(r, ctx_ref) ~= FFI_OK then unref_in_table(ctxs, ctx_ref) error("no memory") end return end ctxs[ctx_ref] = ctx end register_setter("ctx", set_ctx_table) return _M PK;½N]ˆ7ŽŽresty/core/time.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require 'ffi' local base = require "resty.core.base" local error = error local tonumber = tonumber local type = type local C = ffi.C local ffi_new = ffi.new local ffi_str = ffi.string local time_val = ffi_new("long[1]") local get_string_buf = base.get_string_buf local ngx = ngx local FFI_ERROR = base.FFI_ERROR local subsystem = ngx.config.subsystem local ngx_lua_ffi_now local ngx_lua_ffi_time local ngx_lua_ffi_monotonic_msec local ngx_lua_ffi_today local ngx_lua_ffi_localtime local ngx_lua_ffi_utctime local ngx_lua_ffi_update_time if subsystem == 'http' then ffi.cdef[[ double ngx_http_lua_ffi_now(void); long ngx_http_lua_ffi_time(void); long ngx_http_lua_ffi_monotonic_msec(void); void ngx_http_lua_ffi_today(unsigned char *buf); void ngx_http_lua_ffi_localtime(unsigned char *buf); void ngx_http_lua_ffi_utctime(unsigned char *buf); void ngx_http_lua_ffi_update_time(void); int ngx_http_lua_ffi_cookie_time(unsigned char *buf, long t); void ngx_http_lua_ffi_http_time(unsigned char *buf, long t); void ngx_http_lua_ffi_parse_http_time(const unsigned char *str, size_t len, long *time); ]] ngx_lua_ffi_now = C.ngx_http_lua_ffi_now ngx_lua_ffi_time = C.ngx_http_lua_ffi_time ngx_lua_ffi_monotonic_msec = C.ngx_http_lua_ffi_monotonic_msec ngx_lua_ffi_today = C.ngx_http_lua_ffi_today ngx_lua_ffi_localtime = C.ngx_http_lua_ffi_localtime ngx_lua_ffi_utctime = C.ngx_http_lua_ffi_utctime ngx_lua_ffi_update_time = C.ngx_http_lua_ffi_update_time elseif subsystem == 'stream' then ffi.cdef[[ double ngx_stream_lua_ffi_now(void); long ngx_stream_lua_ffi_time(void); long ngx_stream_lua_ffi_monotonic_msec(void); void ngx_stream_lua_ffi_today(unsigned char *buf); void ngx_stream_lua_ffi_localtime(unsigned char *buf); void ngx_stream_lua_ffi_utctime(unsigned char *buf); void ngx_stream_lua_ffi_update_time(void); ]] ngx_lua_ffi_now = C.ngx_stream_lua_ffi_now ngx_lua_ffi_time = C.ngx_stream_lua_ffi_time ngx_lua_ffi_monotonic_msec = C.ngx_stream_lua_ffi_monotonic_msec ngx_lua_ffi_today = C.ngx_stream_lua_ffi_today ngx_lua_ffi_localtime = C.ngx_stream_lua_ffi_localtime ngx_lua_ffi_utctime = C.ngx_stream_lua_ffi_utctime ngx_lua_ffi_update_time = C.ngx_stream_lua_ffi_update_time end function ngx.now() local now = tonumber(ngx_lua_ffi_now()) return now end function ngx.time() local time = tonumber(ngx_lua_ffi_time()) return time end local function monotonic_msec() local msec = tonumber(ngx_lua_ffi_monotonic_msec()) return msec end local function monotonic_time() local msec = tonumber(ngx_lua_ffi_monotonic_msec()) local time = msec / 1000 return time end function ngx.update_time() ngx_lua_ffi_update_time() end function ngx.today() -- the format of today is 2010-11-19 local today_buf_size = 10 local buf = get_string_buf(today_buf_size) ngx_lua_ffi_today(buf) return ffi_str(buf, today_buf_size) end function ngx.localtime() -- the format of localtime is 2010-11-19 20:56:31 local localtime_buf_size = 19 local buf = get_string_buf(localtime_buf_size) ngx_lua_ffi_localtime(buf) return ffi_str(buf, localtime_buf_size) end function ngx.utctime() -- the format of utctime is 2010-11-19 20:56:31 local utctime_buf_size = 19 local buf = get_string_buf(utctime_buf_size) ngx_lua_ffi_utctime(buf) return ffi_str(buf, utctime_buf_size) end if subsystem == 'http' then function ngx.cookie_time(sec) if type(sec) ~= "number" then error("number argument only", 2) end -- the format of cookie time is Mon, 28-Sep-2038 06:00:00 GMT -- or Mon, 28-Sep-18 06:00:00 GMT local cookie_time_buf_size = 29 local buf = get_string_buf(cookie_time_buf_size) local used_size = C.ngx_http_lua_ffi_cookie_time(buf, sec) return ffi_str(buf, used_size) end function ngx.http_time(sec) if type(sec) ~= "number" then error("number argument only", 2) end -- the format of http time is Mon, 28 Sep 1970 06:00:00 GMT local http_time_buf_size = 29 local buf = get_string_buf(http_time_buf_size) C.ngx_http_lua_ffi_http_time(buf, sec) return ffi_str(buf, http_time_buf_size) end function ngx.parse_http_time(time_str) if type(time_str) ~= "string" then error("string argument only", 2) end C.ngx_http_lua_ffi_parse_http_time(time_str, #time_str, time_val) local res = time_val[0] if res == FFI_ERROR then return nil end local time = tonumber(res) return time end end return { version = base.version, monotonic_msec = monotonic_msec, monotonic_time = monotonic_time } PK;½N]©î ÌÌresty/core/utils.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require "ffi" local base = require "resty.core.base" local C = ffi.C local ffi_str = ffi.string local ffi_copy = ffi.copy local byte = string.byte local str_find = string.find local get_string_buf = base.get_string_buf local subsystem = ngx.config.subsystem local _M = { version = base.version } if subsystem == "http" then ffi.cdef[[ void ngx_http_lua_ffi_str_replace_char(unsigned char *buf, size_t len, const unsigned char find, const unsigned char replace); ]] function _M.str_replace_char(str, find, replace) if not str_find(str, find, nil, true) then return str end local len = #str local buf = get_string_buf(len) ffi_copy(buf, str, len) C.ngx_http_lua_ffi_str_replace_char(buf, len, byte(find), byte(replace)) return ffi_str(buf, len) end end return _M PK;½N]âAÏïÐÐresty/core/coroutine.luanu„[µü¤local base = require "resty.core.base" local get_request = base.get_request do local keys = {'create', 'yield', 'resume', 'status', 'wrap'} local get_raw_phase = ngx.get_raw_phase for _, key in ipairs(keys) do local std = coroutine['_' .. key] local ours = coroutine['__' .. key] coroutine[key] = function (...) local r = get_request() if r ~= nil then local ctx = get_raw_phase(r) if ctx ~= 0x020 and ctx ~= 0x040 then return ours(...) end end return std(...) end end package.loaded.coroutine = coroutine end return { version = base.version } PK;½N]Sä)EEresty/core/var.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require "ffi" local base = require "resty.core.base" local C = ffi.C local ffi_new = ffi.new local ffi_str = ffi.string local type = type local error = error local tostring = tostring local setmetatable = setmetatable local get_request = base.get_request local get_string_buf = base.get_string_buf local get_size_ptr = base.get_size_ptr local new_tab = base.new_tab local subsystem = ngx.config.subsystem local ngx_lua_ffi_var_get local ngx_lua_ffi_var_set local ERR_BUF_SIZE = 256 ngx.var = new_tab(0, 0) if subsystem == "http" then ffi.cdef[[ int ngx_http_lua_ffi_var_get(ngx_http_request_t *r, const char *name_data, size_t name_len, char *lowcase_buf, int capture_id, char **value, size_t *value_len, char **err); int ngx_http_lua_ffi_var_set(ngx_http_request_t *r, const unsigned char *name_data, size_t name_len, unsigned char *lowcase_buf, const unsigned char *value, size_t value_len, unsigned char *errbuf, size_t *errlen); ]] ngx_lua_ffi_var_get = C.ngx_http_lua_ffi_var_get ngx_lua_ffi_var_set = C.ngx_http_lua_ffi_var_set elseif subsystem == "stream" then ffi.cdef[[ int ngx_stream_lua_ffi_var_get(ngx_stream_lua_request_t *r, const char *name_data, size_t name_len, char *lowcase_buf, int capture_id, char **value, size_t *value_len, char **err); int ngx_stream_lua_ffi_var_set(ngx_stream_lua_request_t *r, const unsigned char *name_data, size_t name_len, unsigned char *lowcase_buf, const unsigned char *value, size_t value_len, unsigned char *errbuf, size_t *errlen); ]] ngx_lua_ffi_var_get = C.ngx_stream_lua_ffi_var_get ngx_lua_ffi_var_set = C.ngx_stream_lua_ffi_var_set end local value_ptr = ffi_new("unsigned char *[1]") local errmsg = base.get_errmsg_ptr() local function var_get(self, name) local r = get_request() if not r then error("no request found") end local value_len = get_size_ptr() local rc if type(name) == "number" then rc = ngx_lua_ffi_var_get(r, nil, 0, nil, name, value_ptr, value_len, errmsg) else if type(name) ~= "string" then error("bad variable name", 2) end local name_len = #name local lowcase_buf = get_string_buf(name_len) rc = ngx_lua_ffi_var_get(r, name, name_len, lowcase_buf, 0, value_ptr, value_len, errmsg) end -- ngx.log(ngx.WARN, "rc = ", rc) if rc == 0 then -- NGX_OK return ffi_str(value_ptr[0], value_len[0]) end if rc == -5 then -- NGX_DECLINED return nil end if rc == -1 then -- NGX_ERROR error(ffi_str(errmsg[0]), 2) end end local function var_set(self, name, value) local r = get_request() if not r then error("no request found") end if type(name) ~= "string" then error("bad variable name", 2) end local name_len = #name local errlen = get_size_ptr() errlen[0] = ERR_BUF_SIZE local lowcase_buf = get_string_buf(name_len + ERR_BUF_SIZE) local value_len if value == nil then value_len = 0 else if type(value) ~= 'string' then value = tostring(value) end value_len = #value end local errbuf = lowcase_buf + name_len local rc = ngx_lua_ffi_var_set(r, name, name_len, lowcase_buf, value, value_len, errbuf, errlen) -- ngx.log(ngx.WARN, "rc = ", rc) if rc == 0 then -- NGX_OK return end if rc == -1 then -- NGX_ERROR error(ffi_str(errbuf, errlen[0]), 2) end end do local mt = new_tab(0, 2) mt.__index = var_get mt.__newindex = var_set setmetatable(ngx.var, mt) end return { version = base.version } PK;½N]OÜ> _/_/resty/core/request.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require 'ffi' local base = require "resty.core.base" local utils = require "resty.core.utils" local subsystem = ngx.config.subsystem local FFI_BAD_CONTEXT = base.FFI_BAD_CONTEXT local FFI_DECLINED = base.FFI_DECLINED local FFI_OK = base.FFI_OK local clear_tab = base.clear_tab local new_tab = base.new_tab local C = ffi.C local ffi_cast = ffi.cast local ffi_new = ffi.new local ffi_str = ffi.string local get_string_buf = base.get_string_buf local get_size_ptr = base.get_size_ptr local setmetatable = setmetatable local lower = string.lower local find = string.find local rawget = rawget local ngx = ngx local get_request = base.get_request local type = type local error = error local tostring = tostring local tonumber = tonumber local str_replace_char = utils.str_replace_char local _M = { version = base.version } local ngx_lua_ffi_req_start_time if subsystem == "stream" then ffi.cdef[[ double ngx_stream_lua_ffi_req_start_time(ngx_stream_lua_request_t *r); int ngx_stream_lua_ffi_req_dst_addr(ngx_stream_lua_request_t *r, char *buf, size_t *buf_size, char *errbuf, size_t *errbuf_size); ]] ngx_lua_ffi_req_start_time = C.ngx_stream_lua_ffi_req_start_time elseif subsystem == "http" then ffi.cdef[[ double ngx_http_lua_ffi_req_start_time(ngx_http_request_t *r); ]] ngx_lua_ffi_req_start_time = C.ngx_http_lua_ffi_req_start_time end function ngx.req.start_time() local r = get_request() if not r then error("no request found") end return tonumber(ngx_lua_ffi_req_start_time(r)) end if subsystem == "stream" then local ERR_BUF_SIZE = 256 local buf = get_string_buf(128, 1) local buf_sizep = ffi_new("size_t[1]") function ngx.req.get_original_addr() local rc local r = get_request() local err = get_string_buf(ERR_BUF_SIZE) local errlenp = get_size_ptr() buf_sizep[0] = 128 errlenp[0] = ERR_BUF_SIZE rc = C.ngx_stream_lua_ffi_req_dst_addr(r, buf, buf_sizep, err, errlenp) if tonumber(rc) ~= 0 then return nil, ffi_str(err, errlenp[0]) end return ffi_str(buf, buf_sizep[0]) end return _M end local errmsg = base.get_errmsg_ptr() local ffi_str_type = ffi.typeof("ngx_http_lua_ffi_str_t*") local ffi_str_size = ffi.sizeof("ngx_http_lua_ffi_str_t") ffi.cdef[[ typedef struct { ngx_http_lua_ffi_str_t key; ngx_http_lua_ffi_str_t value; } ngx_http_lua_ffi_table_elt_t; int ngx_http_lua_ffi_req_get_headers_count(ngx_http_request_t *r, int max, int *truncated); int ngx_http_lua_ffi_req_get_headers(ngx_http_request_t *r, ngx_http_lua_ffi_table_elt_t *out, int count, int raw); int ngx_http_lua_ffi_req_get_uri_args_count(ngx_http_request_t *r, int max, int *truncated); size_t ngx_http_lua_ffi_req_get_querystring_len(ngx_http_request_t *r); int ngx_http_lua_ffi_req_get_uri_args(ngx_http_request_t *r, unsigned char *buf, ngx_http_lua_ffi_table_elt_t *out, int count); int ngx_http_lua_ffi_req_get_method(ngx_http_request_t *r); int ngx_http_lua_ffi_req_get_method_name(ngx_http_request_t *r, unsigned char **name, size_t *len); int ngx_http_lua_ffi_req_set_method(ngx_http_request_t *r, int method); int ngx_http_lua_ffi_req_set_header(ngx_http_request_t *r, const unsigned char *key, size_t key_len, const unsigned char *value, size_t value_len, ngx_http_lua_ffi_str_t *mvals, size_t mvals_len, int override, char **errmsg); ]] local table_elt_type = ffi.typeof("ngx_http_lua_ffi_table_elt_t*") local table_elt_size = ffi.sizeof("ngx_http_lua_ffi_table_elt_t") local truncated = ffi.new("int[1]") local req_headers_mt = { __index = function (tb, key) key = lower(key) local value = rawget(tb, key) if value == nil and find(key, '_', 1, true) then value = rawget(tb, (str_replace_char(key, '_', '-'))) end return value end } function ngx.req.get_headers(max_headers, raw) local r = get_request() if not r then error("no request found") end if not max_headers then max_headers = -1 end if not raw then raw = 0 else raw = 1 end local n = C.ngx_http_lua_ffi_req_get_headers_count(r, max_headers, truncated) if n == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end if n == 0 then local headers = {} if raw == 0 then headers = setmetatable(headers, req_headers_mt) end return headers end local raw_buf = get_string_buf(n * table_elt_size) local buf = ffi_cast(table_elt_type, raw_buf) local rc = C.ngx_http_lua_ffi_req_get_headers(r, buf, n, raw) if rc == 0 then local headers = new_tab(0, n) for i = 0, n - 1 do local h = buf[i] local key = h.key key = ffi_str(key.data, key.len) local value = h.value value = ffi_str(value.data, value.len) local existing = headers[key] if existing then if type(existing) == "table" then existing[#existing + 1] = value else headers[key] = {existing, value} end else headers[key] = value end end if raw == 0 then headers = setmetatable(headers, req_headers_mt) end if truncated[0] ~= 0 then return headers, "truncated" end return headers end return nil end function ngx.req.get_uri_args(max_args, tab) local r = get_request() if not r then error("no request found") end if not max_args then max_args = -1 end if tab then clear_tab(tab) end local n = C.ngx_http_lua_ffi_req_get_uri_args_count(r, max_args, truncated) if n == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end if n == 0 then return tab or {} end local args_len = C.ngx_http_lua_ffi_req_get_querystring_len(r) local strbuf = get_string_buf(args_len + n * table_elt_size) local kvbuf = ffi_cast(table_elt_type, strbuf + args_len) local nargs = C.ngx_http_lua_ffi_req_get_uri_args(r, strbuf, kvbuf, n) local args = tab or new_tab(0, nargs) for i = 0, nargs - 1 do local arg = kvbuf[i] local key = arg.key key = ffi_str(key.data, key.len) local value = arg.value local len = value.len if len == -1 then value = true else value = ffi_str(value.data, len) end local existing = args[key] if existing then if type(existing) == "table" then existing[#existing + 1] = value else args[key] = {existing, value} end else args[key] = value end end if truncated[0] ~= 0 then return args, "truncated" end return args end do local methods = { [0x0002] = "GET", [0x0004] = "HEAD", [0x0008] = "POST", [0x0010] = "PUT", [0x0020] = "DELETE", [0x0040] = "MKCOL", [0x0080] = "COPY", [0x0100] = "MOVE", [0x0200] = "OPTIONS", [0x0400] = "PROPFIND", [0x0800] = "PROPPATCH", [0x1000] = "LOCK", [0x2000] = "UNLOCK", [0x4000] = "PATCH", [0x8000] = "TRACE", } local namep = ffi_new("unsigned char *[1]") function ngx.req.get_method() local r = get_request() if not r then error("no request found") end do local id = C.ngx_http_lua_ffi_req_get_method(r) if id == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end local method = methods[id] if method then return method end end local sizep = get_size_ptr() local rc = C.ngx_http_lua_ffi_req_get_method_name(r, namep, sizep) if rc ~= 0 then return nil end return ffi_str(namep[0], sizep[0]) end end -- do function ngx.req.set_method(method) local r = get_request() if not r then error("no request found") end if type(method) ~= "number" then error("bad method number", 2) end local rc = C.ngx_http_lua_ffi_req_set_method(r, method) if rc == FFI_OK then return end if rc == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end if rc == FFI_DECLINED then error("unsupported HTTP method: " .. method, 2) end error("unknown error: " .. rc) end do local function set_req_header(name, value, override) local r = get_request() if not r then error("no request found", 3) end if name == nil then error("bad 'name' argument: string expected, got nil", 3) end if type(name) ~= "string" then name = tostring(name) end local rc if value == nil then if not override then error("bad 'value' argument: string or table expected, got nil", 3) end rc = C.ngx_http_lua_ffi_req_set_header(r, name, #name, nil, 0, nil, 0, 1, errmsg) else local sval, sval_len, mvals, mvals_len, buf local value_type = type(value) if value_type == "table" then mvals_len = #value if mvals_len == 0 and not override then error("bad 'value' argument: non-empty table expected", 3) end buf = get_string_buf(ffi_str_size * mvals_len) mvals = ffi_cast(ffi_str_type, buf) for i = 1, mvals_len do local s = value[i] if type(s) ~= "string" then s = tostring(s) value[i] = s end local str = mvals[i - 1] str.data = s str.len = #s end sval_len = 0 else if value_type ~= "string" then sval = tostring(value) else sval = value end sval_len = #sval mvals_len = 0 end rc = C.ngx_http_lua_ffi_req_set_header(r, name, #name, sval, sval_len, mvals, mvals_len, override and 1 or 0, errmsg) end if rc == FFI_OK or rc == FFI_DECLINED then return end if rc == FFI_BAD_CONTEXT then error("API disabled in the current context", 3) end -- rc == FFI_ERROR error(ffi_str(errmsg[0])) end _M.set_req_header = set_req_header function ngx.req.set_header(name, value) set_req_header(name, value, true) -- override end end -- do function ngx.req.clear_header(name) local r = get_request() if not r then error("no request found") end if type(name) ~= "string" then name = tostring(name) end local rc = C.ngx_http_lua_ffi_req_set_header(r, name, #name, nil, 0, nil, 0, 1, errmsg) if rc == FFI_OK or rc == FFI_DECLINED then return end if rc == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end -- rc == FFI_ERROR error(ffi_str(errmsg[0])) end return _M PK;½N]«Ôe××resty/core/base.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require 'ffi' local ffi_new = ffi.new local pcall = pcall local error = error local select = select local ceil = math.ceil local subsystem = ngx.config.subsystem local str_buf_size = 4096 local str_buf local size_ptr local FREE_LIST_REF = 0 if subsystem == 'http' then if not ngx.config or not ngx.config.ngx_lua_version or ngx.config.ngx_lua_version ~= 10031 then local ver = ngx.config and tostring(ngx.config.ngx_lua_version) or 'nil' error("ngx_http_lua_module 0.10.31 required but got " .. ver) end elseif subsystem == 'stream' then if not ngx.config or not ngx.config.ngx_lua_version or ngx.config.ngx_lua_version ~= 19 then local ver = ngx.config and tostring(ngx.config.ngx_lua_version) or 'nil' error("ngx_stream_lua_module 0.0.19 required but got " .. ver) end else error("ngx_http_lua_module 0.10.31 or " .. "ngx_stream_lua_module 0.0.19 required") end if string.find(jit.version, " 2.0", 1, true) then ngx.log(ngx.ALERT, "use of lua-resty-core with LuaJIT 2.0 is ", "not recommended; use LuaJIT 2.1+ instead") end local ok, new_tab = pcall(require, "table.new") if not ok then new_tab = function (narr, nrec) return {} end end local clear_tab ok, clear_tab = pcall(require, "table.clear") if not ok then local pairs = pairs clear_tab = function (tab) for k, _ in pairs(tab) do tab[k] = nil end end end -- XXX for now LuaJIT 2.1 cannot compile require() -- so we make the fast code path Lua only in our own -- wrapper so that most of the require() calls in hot -- Lua code paths can be JIT compiled. do local orig_require = require local pkg_loaded = package.loaded -- the key_sentinel is inserted into package.loaded before -- the chunk is executed and replaced if the chunk completes normally. local key_sentinel = pkg_loaded[...] local function my_require(name) local mod = pkg_loaded[name] if mod then if mod == key_sentinel then error("loop or previous error loading module '" .. name .. "'") end return mod end return orig_require(name) end getfenv(0).require = my_require end if not pcall(ffi.typeof, "ngx_str_t") then ffi.cdef[[ typedef struct { size_t len; const unsigned char *data; } ngx_str_t; ]] end if subsystem == 'http' then if not pcall(ffi.typeof, "ngx_http_request_t") then ffi.cdef[[ typedef struct ngx_http_request_s ngx_http_request_t; ]] end if not pcall(ffi.typeof, "ngx_http_lua_ffi_str_t") then ffi.cdef[[ typedef struct { int len; const unsigned char *data; } ngx_http_lua_ffi_str_t; ]] end elseif subsystem == 'stream' then if not pcall(ffi.typeof, "ngx_stream_lua_request_t") then ffi.cdef[[ typedef struct ngx_stream_lua_request_s ngx_stream_lua_request_t; ]] end if not pcall(ffi.typeof, "ngx_stream_lua_ffi_str_t") then ffi.cdef[[ typedef struct { int len; const unsigned char *data; } ngx_stream_lua_ffi_str_t; ]] end else error("unknown subsystem: " .. subsystem) end local c_buf_type = ffi.typeof("char[?]") local _M = new_tab(0, 18) _M.version = "0.1.34" _M.new_tab = new_tab _M.clear_tab = clear_tab local errmsg function _M.get_errmsg_ptr() if not errmsg then errmsg = ffi_new("char *[1]") end return errmsg end if not ngx then error("no existing ngx. table found") end function _M.set_string_buf_size(size) if size <= 0 then return end if str_buf then str_buf = nil end str_buf_size = ceil(size) end function _M.get_string_buf_size() return str_buf_size end function _M.get_size_ptr() if not size_ptr then size_ptr = ffi_new("size_t[1]") end return size_ptr end function _M.get_string_buf(size, must_alloc) -- ngx.log(ngx.ERR, "str buf size: ", str_buf_size) if size > str_buf_size or must_alloc then local buf = ffi_new(c_buf_type, size) return buf end if not str_buf then str_buf = ffi_new(c_buf_type, str_buf_size) end return str_buf end function _M.ref_in_table(tb, key) if key == nil then return -1 end local ref = tb[FREE_LIST_REF] if ref and ref ~= 0 then tb[FREE_LIST_REF] = tb[ref] else ref = #tb + 1 end tb[ref] = key -- print("ref key_id returned ", ref) return ref end -- Release a slot acquired via ref_in_table() back to the free list. -- Mirrors the layout used by luaL_ref / luaL_unref on the C side (both -- use the slot at FREE_LIST_REF as the free-list head), so tables shared -- with luaL_ref/unref (e.g. ngx_lua_ctx_tables) stay consistent. function _M.unref_in_table(tb, ref) tb[ref] = tb[FREE_LIST_REF] tb[FREE_LIST_REF] = ref end function _M.allows_subsystem(...) local total = select("#", ...) for i = 1, total do if select(i, ...) == subsystem then return end end error("unsupported subsystem: " .. subsystem, 2) end _M.FFI_OK = 0 _M.FFI_NO_REQ_CTX = -100 _M.FFI_BAD_CONTEXT = -101 _M.FFI_ERROR = -1 _M.FFI_AGAIN = -2 _M.FFI_BUSY = -3 _M.FFI_DONE = -4 _M.FFI_DECLINED = -5 _M.FFI_ABORT = -6 do local exdata ok, exdata = pcall(require, "thread.exdata") if ok and exdata then function _M.get_request() local r = exdata() if r ~= nil then return r end end else local getfenv = getfenv function _M.get_request() return getfenv(0).__ngx_req end end end return _M PK;½N]÷™Õ¦¦resty/core/base64.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require "ffi" local base = require "resty.core.base" local C = ffi.C local ffi_string = ffi.string local ngx = ngx local type = type local error = error local floor = math.floor local tostring = tostring local get_string_buf = base.get_string_buf local get_size_ptr = base.get_size_ptr local subsystem = ngx.config.subsystem local ngx_lua_ffi_encode_base64 local ngx_lua_ffi_decode_base64 if subsystem == "http" then ffi.cdef[[ size_t ngx_http_lua_ffi_encode_base64(const unsigned char *src, size_t len, unsigned char *dst, int no_padding); int ngx_http_lua_ffi_decode_base64(const unsigned char *src, size_t len, unsigned char *dst, size_t *dlen); int ngx_http_lua_ffi_decode_base64mime(const unsigned char *src, size_t len, unsigned char *dst, size_t *dlen); ]] ngx_lua_ffi_encode_base64 = C.ngx_http_lua_ffi_encode_base64 ngx_lua_ffi_decode_base64 = C.ngx_http_lua_ffi_decode_base64 elseif subsystem == "stream" then ffi.cdef[[ size_t ngx_stream_lua_ffi_encode_base64(const unsigned char *src, size_t len, unsigned char *dst, int no_padding); int ngx_stream_lua_ffi_decode_base64(const unsigned char *src, size_t len, unsigned char *dst, size_t *dlen); ]] ngx_lua_ffi_encode_base64 = C.ngx_stream_lua_ffi_encode_base64 ngx_lua_ffi_decode_base64 = C.ngx_stream_lua_ffi_decode_base64 end local function base64_encoded_length(len, no_padding) return no_padding and floor((len * 8 + 5) / 6) or floor((len + 2) / 3) * 4 end ngx.encode_base64 = function (s, no_padding) if type(s) ~= 'string' then if not s then s = '' else s = tostring(s) end end local slen = #s local no_padding_bool = false; local no_padding_int = 0; if no_padding then if no_padding ~= true then local typ = type(no_padding) error("bad no_padding: boolean expected, got " .. typ, 2) end no_padding_bool = true no_padding_int = 1; end local dlen = base64_encoded_length(slen, no_padding_bool) local dst = get_string_buf(dlen) local r_dlen = ngx_lua_ffi_encode_base64(s, slen, dst, no_padding_int) -- if dlen ~= r_dlen then error("discrepancy in len") end return ffi_string(dst, r_dlen) end local function base64_decoded_length(len) return floor((len + 3) / 4) * 3 end ngx.decode_base64 = function (s) if type(s) ~= 'string' then error("string argument only", 2) end local slen = #s local dlen = base64_decoded_length(slen) -- print("dlen: ", tonumber(dlen)) local dst = get_string_buf(dlen) local pdlen = get_size_ptr() local ok = ngx_lua_ffi_decode_base64(s, slen, dst, pdlen) if ok == 0 then return nil end return ffi_string(dst, pdlen[0]) end ngx.decode_base64mime = function (s) if type(s) ~= 'string' then error("string argument only", 2) end local slen = #s local dlen = base64_decoded_length(slen) local dst = get_string_buf(dlen) local pdlen = get_size_ptr() local ok = C.ngx_http_lua_ffi_decode_base64mime(s, slen, dst, pdlen) if ok == 0 then return nil end return ffi_string(dst, pdlen[0]) end return { version = base.version } PK;½N]=©Äm  resty/core/uri.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require "ffi" local base = require "resty.core.base" local C = ffi.C local ffi_string = ffi.string local ngx = ngx local type = type local error = error local tostring = tostring local get_string_buf = base.get_string_buf local subsystem = ngx.config.subsystem local ngx_lua_ffi_escape_uri local ngx_lua_ffi_unescape_uri local ngx_lua_ffi_uri_escaped_length local NGX_ESCAPE_URI = 0 local NGX_ESCAPE_URI_COMPONENT = 2 local NGX_ESCAPE_MAIL_AUTH = 6 if subsystem == "http" then ffi.cdef[[ size_t ngx_http_lua_ffi_uri_escaped_length(const unsigned char *src, size_t len, int type); void ngx_http_lua_ffi_escape_uri(const unsigned char *src, size_t len, unsigned char *dst, int type); size_t ngx_http_lua_ffi_unescape_uri(const unsigned char *src, size_t len, unsigned char *dst); ]] ngx_lua_ffi_escape_uri = C.ngx_http_lua_ffi_escape_uri ngx_lua_ffi_unescape_uri = C.ngx_http_lua_ffi_unescape_uri ngx_lua_ffi_uri_escaped_length = C.ngx_http_lua_ffi_uri_escaped_length elseif subsystem == "stream" then ffi.cdef[[ size_t ngx_stream_lua_ffi_uri_escaped_length(const unsigned char *src, size_t len, int type); void ngx_stream_lua_ffi_escape_uri(const unsigned char *src, size_t len, unsigned char *dst, int type); size_t ngx_stream_lua_ffi_unescape_uri(const unsigned char *src, size_t len, unsigned char *dst); ]] ngx_lua_ffi_escape_uri = C.ngx_stream_lua_ffi_escape_uri ngx_lua_ffi_unescape_uri = C.ngx_stream_lua_ffi_unescape_uri ngx_lua_ffi_uri_escaped_length = C.ngx_stream_lua_ffi_uri_escaped_length end ngx.escape_uri = function (s, esc_type) if type(s) ~= 'string' then if not s then s = '' else s = tostring(s) end end if esc_type == nil then esc_type = NGX_ESCAPE_URI_COMPONENT else if type(esc_type) ~= 'number' then error("\"type\" is not a number", 3) end if esc_type < NGX_ESCAPE_URI or esc_type > NGX_ESCAPE_MAIL_AUTH then error("\"type\" " .. esc_type .. " out of range", 3) end end local slen = #s local dlen = ngx_lua_ffi_uri_escaped_length(s, slen, esc_type) -- print("dlen: ", tonumber(dlen)) if dlen == slen then return s end local dst = get_string_buf(dlen) ngx_lua_ffi_escape_uri(s, slen, dst, esc_type) return ffi_string(dst, dlen) end ngx.unescape_uri = function (s) if type(s) ~= 'string' then if not s then s = '' else s = tostring(s) end end local slen = #s local dlen = slen local dst = get_string_buf(dlen) dlen = ngx_lua_ffi_unescape_uri(s, slen, dst) return ffi_string(dst, dlen) end return { version = base.version, } PK;½N]fúáº@j@jresty/core/shdict.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require 'ffi' local base = require "resty.core.base" local _M = { version = base.version } local ngx_shared = ngx.shared if not ngx_shared then return _M end local ffi_new = ffi.new local ffi_str = ffi.string local C = ffi.C local get_string_buf = base.get_string_buf local get_string_buf_size = base.get_string_buf_size local get_size_ptr = base.get_size_ptr local tonumber = tonumber local tostring = tostring local next = next local type = type local error = error local getmetatable = getmetatable local FFI_DECLINED = base.FFI_DECLINED local subsystem = ngx.config.subsystem local ngx_lua_ffi_shdict_get local ngx_lua_ffi_shdict_incr local ngx_lua_ffi_shdict_store local ngx_lua_ffi_shdict_flush_all local ngx_lua_ffi_shdict_get_ttl local ngx_lua_ffi_shdict_set_expire local ngx_lua_ffi_shdict_capacity local ngx_lua_ffi_shdict_free_space local ngx_lua_ffi_shdict_udata_to_zone if subsystem == 'http' then ffi.cdef[[ int ngx_http_lua_ffi_shdict_get(void *zone, const unsigned char *key, size_t key_len, int *value_type, unsigned char **str_value_buf, size_t *str_value_len, double *num_value, int *user_flags, int get_stale, int *is_stale, char **errmsg); int ngx_http_lua_ffi_shdict_incr(void *zone, const unsigned char *key, size_t key_len, double *value, char **err, int has_init, double init, long init_ttl, int *forcible); int ngx_http_lua_ffi_shdict_store(void *zone, int op, const unsigned char *key, size_t key_len, int value_type, const unsigned char *str_value_buf, size_t str_value_len, double num_value, long exptime, int user_flags, char **errmsg, int *forcible); int ngx_http_lua_ffi_shdict_flush_all(void *zone); long ngx_http_lua_ffi_shdict_get_ttl(void *zone, const unsigned char *key, size_t key_len); int ngx_http_lua_ffi_shdict_set_expire(void *zone, const unsigned char *key, size_t key_len, long exptime); size_t ngx_http_lua_ffi_shdict_capacity(void *zone); void *ngx_http_lua_ffi_shdict_udata_to_zone(void *zone_udata); ]] ngx_lua_ffi_shdict_get = function(zone, key, key_len, value_type, str_value_buf, value_len, num_value, user_flags, get_stale, is_stale, errmsg) return C.ngx_http_lua_ffi_shdict_get(zone, key, key_len, value_type, str_value_buf, value_len, num_value, user_flags, get_stale, is_stale, errmsg) end ngx_lua_ffi_shdict_incr = function(zone, key, key_len, value, err, has_init, init, init_ttl, forcible) return C.ngx_http_lua_ffi_shdict_incr(zone, key, key_len, value, err, has_init, init, init_ttl, forcible) end ngx_lua_ffi_shdict_store = function(zone, op, key, key_len, value_type, str_value_buf, str_value_len, num_value, exptime, user_flags, errmsg, forcible) return C.ngx_http_lua_ffi_shdict_store(zone, op, key, key_len, value_type, str_value_buf, str_value_len, num_value, exptime, user_flags, errmsg, forcible) end ngx_lua_ffi_shdict_flush_all = C.ngx_http_lua_ffi_shdict_flush_all ngx_lua_ffi_shdict_get_ttl = C.ngx_http_lua_ffi_shdict_get_ttl ngx_lua_ffi_shdict_set_expire = C.ngx_http_lua_ffi_shdict_set_expire ngx_lua_ffi_shdict_capacity = C.ngx_http_lua_ffi_shdict_capacity ngx_lua_ffi_shdict_udata_to_zone = C.ngx_http_lua_ffi_shdict_udata_to_zone if not pcall(function () return C.ngx_http_lua_ffi_shdict_free_space end) then ffi.cdef[[ size_t ngx_http_lua_ffi_shdict_free_space(void *zone); ]] end pcall(function () ngx_lua_ffi_shdict_free_space = C.ngx_http_lua_ffi_shdict_free_space end) elseif subsystem == 'stream' then ffi.cdef[[ int ngx_stream_lua_ffi_shdict_get(void *zone, const unsigned char *key, size_t key_len, int *value_type, unsigned char **str_value_buf, size_t *str_value_len, double *num_value, int *user_flags, int get_stale, int *is_stale, char **errmsg); int ngx_stream_lua_ffi_shdict_incr(void *zone, const unsigned char *key, size_t key_len, double *value, char **err, int has_init, double init, long init_ttl, int *forcible); int ngx_stream_lua_ffi_shdict_store(void *zone, int op, const unsigned char *key, size_t key_len, int value_type, const unsigned char *str_value_buf, size_t str_value_len, double num_value, long exptime, int user_flags, char **errmsg, int *forcible); int ngx_stream_lua_ffi_shdict_flush_all(void *zone); long ngx_stream_lua_ffi_shdict_get_ttl(void *zone, const unsigned char *key, size_t key_len); int ngx_stream_lua_ffi_shdict_set_expire(void *zone, const unsigned char *key, size_t key_len, long exptime); size_t ngx_stream_lua_ffi_shdict_capacity(void *zone); void *ngx_stream_lua_ffi_shdict_udata_to_zone(void *zone_udata); ]] ngx_lua_ffi_shdict_get = function(zone, key, key_len, value_type, str_value_buf, value_len, num_value, user_flags, get_stale, is_stale, errmsg) return C.ngx_stream_lua_ffi_shdict_get(zone, key, key_len, value_type, str_value_buf, value_len, num_value, user_flags, get_stale, is_stale, errmsg) end ngx_lua_ffi_shdict_incr = function(zone, key, key_len, value, err, has_init, init, init_ttl, forcible) return C.ngx_stream_lua_ffi_shdict_incr(zone, key, key_len, value, err, has_init, init, init_ttl, forcible) end ngx_lua_ffi_shdict_store = function(zone, op, key, key_len, value_type, str_value_buf, str_value_len, num_value, exptime, user_flags, errmsg, forcible) return C.ngx_stream_lua_ffi_shdict_store(zone, op, key, key_len, value_type, str_value_buf, str_value_len, num_value, exptime, user_flags, errmsg, forcible) end ngx_lua_ffi_shdict_flush_all = C.ngx_stream_lua_ffi_shdict_flush_all ngx_lua_ffi_shdict_get_ttl = C.ngx_stream_lua_ffi_shdict_get_ttl ngx_lua_ffi_shdict_set_expire = C.ngx_stream_lua_ffi_shdict_set_expire ngx_lua_ffi_shdict_capacity = C.ngx_stream_lua_ffi_shdict_capacity ngx_lua_ffi_shdict_udata_to_zone = C.ngx_stream_lua_ffi_shdict_udata_to_zone if not pcall(function () return C.ngx_stream_lua_ffi_shdict_free_space end) then ffi.cdef[[ size_t ngx_stream_lua_ffi_shdict_free_space(void *zone); ]] end -- ngx_stream_lua is only compatible with NGINX >= 1.13.6, meaning it -- cannot lack support for ngx_stream_lua_ffi_shdict_free_space. ngx_lua_ffi_shdict_free_space = C.ngx_stream_lua_ffi_shdict_free_space else error("unknown subsystem: " .. subsystem) end local MACOS = jit and jit.os == "OSX" if MACOS and subsystem == 'http' then ffi.cdef[[ typedef struct { void *zone; const unsigned char *key; size_t key_len; int *value_type; unsigned char **str_value_buf; size_t *str_value_len; double *num_value; int *user_flags; int get_stale; int *is_stale; char **errmsg; } ngx_http_lua_shdict_get_params_t; typedef struct { void *zone; int op; const unsigned char *key; size_t key_len; int value_type; const unsigned char *str_value_buf; size_t str_value_len; double num_value; long exptime; int user_flags; char **errmsg; int *forcible; } ngx_http_lua_shdict_store_params_t; typedef struct { void *zone; const unsigned char *key; size_t key_len; double *num_value; char **errmsg; int has_init; double init; long init_ttl; int *forcible; } ngx_http_lua_shdict_incr_params_t; int ngx_http_lua_ffi_shdict_get_macos( ngx_http_lua_shdict_get_params_t *p); int ngx_http_lua_ffi_shdict_store_macos( ngx_http_lua_shdict_store_params_t *p); int ngx_http_lua_ffi_shdict_incr_macos( ngx_http_lua_shdict_incr_params_t *p); ]] local get_params = ffi_new("ngx_http_lua_shdict_get_params_t") local incr_params = ffi_new("ngx_http_lua_shdict_incr_params_t") local store_params = ffi_new("ngx_http_lua_shdict_store_params_t") ngx_lua_ffi_shdict_get = function(zone, key, key_len, value_type, str_value_buf, value_len, num_value, user_flags, get_stale, is_stale, errmsg) get_params.zone = zone get_params.key = key get_params.key_len = key_len get_params.value_type = value_type get_params.str_value_buf = str_value_buf get_params.str_value_len = value_len get_params.num_value = num_value get_params.user_flags = user_flags get_params.get_stale = get_stale get_params.is_stale = is_stale get_params.errmsg = errmsg return C.ngx_http_lua_ffi_shdict_get_macos(get_params) end ngx_lua_ffi_shdict_incr = function(zone, key, key_len, value, err, has_init, init, init_ttl, forcible) incr_params.zone = zone incr_params.key = key incr_params.key_len = key_len incr_params.num_value = value incr_params.errmsg = err incr_params.has_init = has_init incr_params.init = init incr_params.init_ttl = init_ttl incr_params.forcible = forcible return C.ngx_http_lua_ffi_shdict_incr_macos(incr_params) end ngx_lua_ffi_shdict_store = function(zone, op, key, key_len, value_type, str_value_buf, str_value_len, num_value, exptime, user_flags, errmsg, forcible) store_params.zone = zone store_params.op = op store_params.key = key store_params.key_len = key_len store_params.value_type = value_type store_params.str_value_buf = str_value_buf store_params.str_value_len = str_value_len store_params.num_value = num_value store_params.exptime = exptime store_params.user_flags = user_flags store_params.errmsg = errmsg store_params.forcible = forcible return C.ngx_http_lua_ffi_shdict_store_macos(store_params) end end if MACOS and subsystem == 'stream' then ffi.cdef[[ typedef struct { void *zone; const unsigned char *key; size_t key_len; int *value_type; unsigned char **str_value_buf; size_t *str_value_len; double *num_value; int *user_flags; int get_stale; int *is_stale; char **errmsg; } ngx_stream_lua_shdict_get_params_t; typedef struct { void *zone; int op; const unsigned char *key; size_t key_len; int value_type; const unsigned char *str_value_buf; size_t str_value_len; double num_value; long exptime; int user_flags; char **errmsg; int *forcible; } ngx_stream_lua_shdict_store_params_t; typedef struct { void *zone; const unsigned char *key; size_t key_len; double *num_value; char **errmsg; int has_init; double init; long init_ttl; int *forcible; } ngx_stream_lua_shdict_incr_params_t; int ngx_stream_lua_ffi_shdict_get_macos( ngx_stream_lua_shdict_get_params_t *p); int ngx_stream_lua_ffi_shdict_store_macos( ngx_stream_lua_shdict_store_params_t *p); int ngx_stream_lua_ffi_shdict_incr_macos( ngx_stream_lua_shdict_incr_params_t *p); ]] local get_params = ffi_new("ngx_stream_lua_shdict_get_params_t") local store_params = ffi_new("ngx_stream_lua_shdict_store_params_t") local incr_params = ffi_new("ngx_stream_lua_shdict_incr_params_t") ngx_lua_ffi_shdict_get = function(zone, key, key_len, value_type, str_value_buf, value_len, num_value, user_flags, get_stale, is_stale, errmsg) get_params.zone = zone get_params.key = key get_params.key_len = key_len get_params.value_type = value_type get_params.str_value_buf = str_value_buf get_params.str_value_len = value_len get_params.num_value = num_value get_params.user_flags = user_flags get_params.get_stale = get_stale get_params.is_stale = is_stale get_params.errmsg = errmsg return C.ngx_stream_lua_ffi_shdict_get_macos(get_params) end ngx_lua_ffi_shdict_incr = function(zone, key, key_len, value, err, has_init, init, init_ttl, forcible) incr_params.zone = zone incr_params.key = key incr_params.key_len = key_len incr_params.num_value = value incr_params.errmsg = err incr_params.has_init = has_init incr_params.init = init incr_params.init_ttl = init_ttl incr_params.forcible = forcible return C.ngx_stream_lua_ffi_shdict_incr_macos(incr_params) end ngx_lua_ffi_shdict_store = function(zone, op, key, key_len, value_type, str_value_buf, str_value_len, num_value, exptime, user_flags, errmsg, forcible) store_params.zone = zone store_params.op = op store_params.key = key store_params.key_len = key_len store_params.value_type = value_type store_params.str_value_buf = str_value_buf store_params.str_value_len = str_value_len store_params.num_value = num_value store_params.exptime = exptime store_params.user_flags = user_flags store_params.errmsg = errmsg store_params.forcible = forcible return C.ngx_stream_lua_ffi_shdict_store_macos(store_params) end end if not pcall(function () return C.free end) then ffi.cdef[[ void free(void *ptr); ]] end local value_type = ffi_new("int[1]") local user_flags = ffi_new("int[1]") local num_value = ffi_new("double[1]") local is_stale = ffi_new("int[1]") local forcible = ffi_new("int[1]") local str_value_buf = ffi_new("unsigned char *[1]") local errmsg = base.get_errmsg_ptr() local function check_zone(zone) if not zone or type(zone) ~= "table" then error("bad \"zone\" argument", 3) end zone = zone[1] if type(zone) ~= "userdata" then error("bad \"zone\" argument", 3) end zone = ngx_lua_ffi_shdict_udata_to_zone(zone) if zone == nil then error("bad \"zone\" argument", 3) end return zone end local function shdict_store(zone, op, key, value, exptime, flags) zone = check_zone(zone) if not exptime then exptime = 0 elseif exptime < 0 then error('bad "exptime" argument', 2) end if not flags then flags = 0 end if key == nil then return nil, "nil key" end if type(key) ~= "string" then key = tostring(key) end local key_len = #key if key_len == 0 then return nil, "empty key" end if key_len > 65535 then return nil, "key too long" end local str_val_buf local str_val_len = 0 local num_val = 0 local valtyp = type(value) -- print("value type: ", valtyp) -- print("exptime: ", exptime) if valtyp == "string" then valtyp = 4 -- LUA_TSTRING str_val_buf = value str_val_len = #value elseif valtyp == "number" then valtyp = 3 -- LUA_TNUMBER num_val = value elseif value == nil then valtyp = 0 -- LUA_TNIL elseif valtyp == "boolean" then valtyp = 1 -- LUA_TBOOLEAN num_val = value and 1 or 0 else return nil, "bad value type" end local rc = ngx_lua_ffi_shdict_store(zone, op, key, key_len, valtyp, str_val_buf, str_val_len, num_val, exptime * 1000, flags, errmsg, forcible) -- print("rc == ", rc) if rc == 0 then -- NGX_OK return true, nil, forcible[0] == 1 end -- NGX_DECLINED or NGX_ERROR return false, ffi_str(errmsg[0]), forcible[0] == 1 end local function shdict_set(zone, key, value, exptime, flags) return shdict_store(zone, 0, key, value, exptime, flags) end local function shdict_safe_set(zone, key, value, exptime, flags) return shdict_store(zone, 0x0004, key, value, exptime, flags) end local function shdict_add(zone, key, value, exptime, flags) return shdict_store(zone, 0x0001, key, value, exptime, flags) end local function shdict_safe_add(zone, key, value, exptime, flags) return shdict_store(zone, 0x0005, key, value, exptime, flags) end local function shdict_replace(zone, key, value, exptime, flags) return shdict_store(zone, 0x0002, key, value, exptime, flags) end local function shdict_delete(zone, key) return shdict_set(zone, key, nil) end local function shdict_get(zone, key) zone = check_zone(zone) if key == nil then return nil, "nil key" end if type(key) ~= "string" then key = tostring(key) end local key_len = #key if key_len == 0 then return nil, "empty key" end if key_len > 65535 then return nil, "key too long" end local size = get_string_buf_size() local buf = get_string_buf(size) str_value_buf[0] = buf local value_len = get_size_ptr() value_len[0] = size local rc = ngx_lua_ffi_shdict_get(zone, key, key_len, value_type, str_value_buf, value_len, num_value, user_flags, 0, is_stale, errmsg) if rc ~= 0 then if errmsg[0] ~= nil then return nil, ffi_str(errmsg[0]) end error("failed to get the key") end local typ = value_type[0] if typ == 0 then -- LUA_TNIL return nil end local flags = tonumber(user_flags[0]) local val if typ == 4 then -- LUA_TSTRING if str_value_buf[0] ~= buf then -- ngx.say("len: ", tonumber(value_len[0])) buf = str_value_buf[0] val = ffi_str(buf, value_len[0]) C.free(buf) else val = ffi_str(buf, value_len[0]) end elseif typ == 3 then -- LUA_TNUMBER val = tonumber(num_value[0]) elseif typ == 1 then -- LUA_TBOOLEAN val = (tonumber(buf[0]) ~= 0) else error("unknown value type: " .. typ) end if flags ~= 0 then return val, flags end return val end local function shdict_get_stale(zone, key) zone = check_zone(zone) if key == nil then return nil, "nil key" end if type(key) ~= "string" then key = tostring(key) end local key_len = #key if key_len == 0 then return nil, "empty key" end if key_len > 65535 then return nil, "key too long" end local size = get_string_buf_size() local buf = get_string_buf(size) str_value_buf[0] = buf local value_len = get_size_ptr() value_len[0] = size local rc = ngx_lua_ffi_shdict_get(zone, key, key_len, value_type, str_value_buf, value_len, num_value, user_flags, 1, is_stale, errmsg) if rc ~= 0 then if errmsg[0] ~= nil then return nil, ffi_str(errmsg[0]) end error("failed to get the key") end local typ = value_type[0] if typ == 0 then -- LUA_TNIL return nil end local flags = tonumber(user_flags[0]) local val if typ == 4 then -- LUA_TSTRING if str_value_buf[0] ~= buf then -- ngx.say("len: ", tonumber(value_len[0])) buf = str_value_buf[0] val = ffi_str(buf, value_len[0]) C.free(buf) else val = ffi_str(buf, value_len[0]) end elseif typ == 3 then -- LUA_TNUMBER val = tonumber(num_value[0]) elseif typ == 1 then -- LUA_TBOOLEAN val = (tonumber(buf[0]) ~= 0) else error("unknown value type: " .. typ) end if flags ~= 0 then return val, flags, is_stale[0] == 1 end return val, nil, is_stale[0] == 1 end local function shdict_incr(zone, key, value, init, init_ttl) zone = check_zone(zone) if key == nil then return nil, "nil key" end if type(key) ~= "string" then key = tostring(key) end local key_len = #key if key_len == 0 then return nil, "empty key" end if key_len > 65535 then return nil, "key too long" end if type(value) ~= "number" then value = tonumber(value) end num_value[0] = value if init then local typ = type(init) if typ ~= "number" then init = tonumber(init) if not init then error("bad init arg: number expected, got " .. typ, 2) end end end if init_ttl ~= nil then local typ = type(init_ttl) if typ ~= "number" then init_ttl = tonumber(init_ttl) if not init_ttl then error("bad init_ttl arg: number expected, got " .. typ, 2) end end if init_ttl < 0 then error('bad "init_ttl" argument', 2) end if not init then error('must provide "init" when providing "init_ttl"', 2) end else init_ttl = 0 end local rc = ngx_lua_ffi_shdict_incr(zone, key, key_len, num_value, errmsg, init and 1 or 0, init or 0, init_ttl * 1000, forcible) if rc ~= 0 then -- ~= NGX_OK return nil, ffi_str(errmsg[0]) end if not init then return tonumber(num_value[0]) end return tonumber(num_value[0]), nil, forcible[0] == 1 end local function shdict_flush_all(zone) zone = check_zone(zone) ngx_lua_ffi_shdict_flush_all(zone) end local function shdict_ttl(zone, key) zone = check_zone(zone) if key == nil then return nil, "nil key" end if type(key) ~= "string" then key = tostring(key) end local key_len = #key if key_len == 0 then return nil, "empty key" end if key_len > 65535 then return nil, "key too long" end local rc = ngx_lua_ffi_shdict_get_ttl(zone, key, key_len) if rc == FFI_DECLINED then return nil, "not found" end return tonumber(rc) / 1000 end local function shdict_expire(zone, key, exptime) zone = check_zone(zone) if not exptime then error('bad "exptime" argument', 2) end if key == nil then return nil, "nil key" end if type(key) ~= "string" then key = tostring(key) end local key_len = #key if key_len == 0 then return nil, "empty key" end if key_len > 65535 then return nil, "key too long" end local rc = ngx_lua_ffi_shdict_set_expire(zone, key, key_len, exptime * 1000) if rc == FFI_DECLINED then return nil, "not found" end -- NGINX_OK/FFI_OK return true end local function shdict_capacity(zone) zone = check_zone(zone) return tonumber(ngx_lua_ffi_shdict_capacity(zone)) end local shdict_free_space if ngx_lua_ffi_shdict_free_space then shdict_free_space = function (zone) zone = check_zone(zone) return tonumber(ngx_lua_ffi_shdict_free_space(zone)) end else shdict_free_space = function () error("'shm:free_space()' not supported in NGINX < 1.11.7", 2) end end local _, dict = next(ngx_shared, nil) if dict then local mt = getmetatable(dict) if mt then mt = mt.__index if mt then mt.get = shdict_get mt.get_stale = shdict_get_stale mt.incr = shdict_incr mt.set = shdict_set mt.safe_set = shdict_safe_set mt.add = shdict_add mt.safe_add = shdict_safe_add mt.replace = shdict_replace mt.delete = shdict_delete mt.flush_all = shdict_flush_all mt.ttl = shdict_ttl mt.expire = shdict_expire mt.capacity = shdict_capacity mt.free_space = shdict_free_space end end end return _M PK;½N]§o9襥resty/core/exit.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require "ffi" local base = require "resty.core.base" local C = ffi.C local ffi_string = ffi.string local ngx = ngx local error = error local get_string_buf = base.get_string_buf local get_size_ptr = base.get_size_ptr local get_request = base.get_request local co_yield = coroutine._yield local subsystem = ngx.config.subsystem local ngx_lua_ffi_exit if subsystem == "http" then ffi.cdef[[ int ngx_http_lua_ffi_exit(ngx_http_request_t *r, int status, unsigned char *err, size_t *errlen); ]] ngx_lua_ffi_exit = C.ngx_http_lua_ffi_exit elseif subsystem == "stream" then ffi.cdef[[ int ngx_stream_lua_ffi_exit(ngx_stream_lua_request_t *r, int status, unsigned char *err, size_t *errlen); ]] ngx_lua_ffi_exit = C.ngx_stream_lua_ffi_exit end local ERR_BUF_SIZE = 128 local FFI_DONE = base.FFI_DONE ngx.exit = function (rc) local err = get_string_buf(ERR_BUF_SIZE) local errlen = get_size_ptr() local r = get_request() if r == nil then error("no request found") end errlen[0] = ERR_BUF_SIZE rc = ngx_lua_ffi_exit(r, rc, err, errlen) if rc == 0 then -- print("yielding...") return co_yield() end if rc == FFI_DONE then return end error(ffi_string(err, errlen[0]), 2) end return { version = base.version } PK<½N]ÜêYE©©resty/core/hash.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require "ffi" local base = require "resty.core.base" local C = ffi.C local ffi_new = ffi.new local ffi_string = ffi.string local ngx = ngx local type = type local error = error local tostring = tostring local subsystem = ngx.config.subsystem local ngx_lua_ffi_md5 local ngx_lua_ffi_md5_bin local ngx_lua_ffi_sha1_bin local ngx_lua_ffi_crc32_long local ngx_lua_ffi_crc32_short if subsystem == "http" then ffi.cdef[[ void ngx_http_lua_ffi_md5_bin(const unsigned char *src, size_t len, unsigned char *dst); void ngx_http_lua_ffi_md5(const unsigned char *src, size_t len, unsigned char *dst); int ngx_http_lua_ffi_sha1_bin(const unsigned char *src, size_t len, unsigned char *dst); unsigned int ngx_http_lua_ffi_crc32_long(const unsigned char *src, size_t len); unsigned int ngx_http_lua_ffi_crc32_short(const unsigned char *src, size_t len); ]] ngx_lua_ffi_md5 = C.ngx_http_lua_ffi_md5 ngx_lua_ffi_md5_bin = C.ngx_http_lua_ffi_md5_bin ngx_lua_ffi_sha1_bin = C.ngx_http_lua_ffi_sha1_bin ngx_lua_ffi_crc32_short = C.ngx_http_lua_ffi_crc32_short ngx_lua_ffi_crc32_long = C.ngx_http_lua_ffi_crc32_long elseif subsystem == "stream" then ffi.cdef[[ void ngx_stream_lua_ffi_md5_bin(const unsigned char *src, size_t len, unsigned char *dst); void ngx_stream_lua_ffi_md5(const unsigned char *src, size_t len, unsigned char *dst); int ngx_stream_lua_ffi_sha1_bin(const unsigned char *src, size_t len, unsigned char *dst); unsigned int ngx_stream_lua_ffi_crc32_long(const unsigned char *src, size_t len); unsigned int ngx_stream_lua_ffi_crc32_short(const unsigned char *src, size_t len); ]] ngx_lua_ffi_md5 = C.ngx_stream_lua_ffi_md5 ngx_lua_ffi_md5_bin = C.ngx_stream_lua_ffi_md5_bin ngx_lua_ffi_sha1_bin = C.ngx_stream_lua_ffi_sha1_bin ngx_lua_ffi_crc32_short = C.ngx_stream_lua_ffi_crc32_short ngx_lua_ffi_crc32_long = C.ngx_stream_lua_ffi_crc32_long end local MD5_DIGEST_LEN = 16 local md5_buf = ffi_new("unsigned char[?]", MD5_DIGEST_LEN) ngx.md5_bin = function (s) if type(s) ~= 'string' then if not s then s = '' else s = tostring(s) end end ngx_lua_ffi_md5_bin(s, #s, md5_buf) return ffi_string(md5_buf, MD5_DIGEST_LEN) end local MD5_HEX_DIGEST_LEN = MD5_DIGEST_LEN * 2 local md5_hex_buf = ffi_new("unsigned char[?]", MD5_HEX_DIGEST_LEN) ngx.md5 = function (s) if type(s) ~= 'string' then if not s then s = '' else s = tostring(s) end end ngx_lua_ffi_md5(s, #s, md5_hex_buf) return ffi_string(md5_hex_buf, MD5_HEX_DIGEST_LEN) end local SHA_DIGEST_LEN = 20 local sha_buf = ffi_new("unsigned char[?]", SHA_DIGEST_LEN) ngx.sha1_bin = function (s) if type(s) ~= 'string' then if not s then s = '' else s = tostring(s) end end local ok = ngx_lua_ffi_sha1_bin(s, #s, sha_buf) if ok == 0 then error("SHA-1 support missing in Nginx") end return ffi_string(sha_buf, SHA_DIGEST_LEN) end ngx.crc32_short = function (s) if type(s) ~= "string" then if not s then s = "" else s = tostring(s) end end return ngx_lua_ffi_crc32_short(s, #s) end ngx.crc32_long = function (s) if type(s) ~= "string" then if not s then s = "" else s = tostring(s) end end return ngx_lua_ffi_crc32_long(s, #s) end return { version = base.version } PK<½N]¬_HÅ––resty/core/phase.luanu„[µü¤local ffi = require 'ffi' local base = require "resty.core.base" local C = ffi.C local FFI_ERROR = base.FFI_ERROR local get_request = base.get_request local error = error local tostring = tostring ffi.cdef[[ int ngx_http_lua_ffi_get_phase(ngx_http_request_t *r, char **err) ]] local errmsg = base.get_errmsg_ptr() local context_names = { [0x00000001] = "set", [0x00000002] = "rewrite", [0x00000004] = "access", [0x00000008] = "content", [0x00000010] = "log", [0x00000020] = "header_filter", [0x00000040] = "body_filter", [0x00000080] = "timer", [0x00000100] = "init_worker", [0x00000200] = "balancer", [0x00000400] = "ssl_cert", [0x00000800] = "ssl_session_store", [0x00001000] = "ssl_session_fetch", [0x00002000] = "exit_worker", [0x00004000] = "ssl_client_hello", [0x00008000] = "server_rewrite", [0x00010000] = "proxy_ssl_verify", [0x00020000] = "precontent", [0x00040000] = "proxy_ssl_cert", } function ngx.get_phase() local r = get_request() -- if we have no request object, assume we are called from the "init" phase if not r then return "init" end local context = C.ngx_http_lua_ffi_get_phase(r, errmsg) if context == FFI_ERROR then -- NGX_ERROR error(errmsg, 2) end local phase = context_names[context] if not phase then error("unknown phase: " .. tostring(context)) end return phase end function ngx.get_raw_phase(r) local context = C.ngx_http_lua_ffi_get_phase(r, errmsg) if context == FFI_ERROR then -- NGX_ERROR error(errmsg, 2) end return context end return { version = base.version } PK<½N]cÎ¥êb b resty/core/param.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require 'ffi' local base = require "resty.core.base" require "resty.core.phase" -- for ngx.get_phase local C = ffi.C local ffi_str = ffi.string local FFI_AGAIN = base.FFI_AGAIN local FFI_OK = base.FFI_OK local get_request = base.get_request local get_string_buf = base.get_string_buf local getmetatable = getmetatable local ngx = ngx local ngx_phase = ngx.get_phase local _M = { version = base.version } ffi.cdef[[ typedef unsigned char u_char; void ngx_http_lua_ffi_get_setby_param(ngx_http_request_t *r, int idx, u_char **data, size_t *len); int ngx_http_lua_ffi_get_body_filter_param_eof(ngx_http_request_t *r); int ngx_http_lua_ffi_get_body_filter_param_body(ngx_http_request_t *r, u_char **data_p, size_t *len_p); int ngx_http_lua_ffi_copy_body_filter_param_body(ngx_http_request_t *r, u_char *data); ]] local data_p = ffi.new("unsigned char*[1]") local len_p = ffi.new("size_t[1]") local function get_setby_param(r, idx) C.ngx_http_lua_ffi_get_setby_param(r, idx, data_p, len_p) if len_p[0] == 0 then return nil end return ffi_str(data_p[0], len_p[0]) end local function get_body_filter_param(r, idx) if idx == 1 then data_p[0] = nil local rc = C.ngx_http_lua_ffi_get_body_filter_param_body(r, data_p, len_p) if rc == FFI_AGAIN then local buf = get_string_buf(len_p[0]) assert(C.ngx_http_lua_ffi_copy_body_filter_param_body(r, buf) == FFI_OK) return ffi_str(buf, len_p[0]) end if len_p[0] == 0 then return "" end return ffi_str(data_p[0], len_p[0]) elseif idx == 2 then local rc = C.ngx_http_lua_ffi_get_body_filter_param_eof(r) return rc == 1 else return nil end end local function get_param(tb, idx) local r = get_request() if not r then error("no request found") end local phase = ngx_phase() if phase == "set" then return get_setby_param(r, idx) end if phase == "body_filter" then return get_body_filter_param(r, idx) end error("API disabled in the current context") end do local mt = getmetatable(ngx.arg) mt.__index = get_param end return _M PK<½N].Ù%%resty/websocket/server.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local bit = require "bit" local wbproto = require "resty.websocket.protocol" local new_tab = wbproto.new_tab local _recv_frame = wbproto.recv_frame local _send_frame = wbproto.send_frame local ngx = ngx local http_ver = ngx.req.http_version local req_sock = ngx.req.socket local ngx_header = ngx.header local req_headers = ngx.req.get_headers local str_lower = string.lower local char = string.char local str_find = string.find local sha1_bin = ngx.sha1_bin local base64 = ngx.encode_base64 local read_body = ngx.req.read_body local ngx_send_headers = ngx.send_headers local ngx_flush = ngx.flush local band = bit.band local rshift = bit.rshift local type = type local setmetatable = setmetatable local tostring = tostring -- local print = print local _M = new_tab(0, 10) _M._VERSION = '0.13' local mt = { __index = _M } function _M.new(self, opts) if ngx.headers_sent then return nil, "response header already sent" end read_body() if http_ver() ~= 1.1 then return nil, "bad http version" end local headers = req_headers() local val = headers.upgrade if type(val) == "table" then val = val[1] end if not val or str_lower(val) ~= "websocket" then return nil, "bad \"upgrade\" request header: " .. tostring(val) end val = headers.connection if type(val) == "table" then val = val[1] end if not val or not str_find(str_lower(val), "upgrade", 1, true) then return nil, "bad \"connection\" request header" end local key = headers["sec-websocket-key"] if type(key) == "table" then key = key[1] end if not key then return nil, "bad \"sec-websocket-key\" request header" end local ver = headers["sec-websocket-version"] if type(ver) == "table" then ver = ver[1] end if not ver or ver ~= "13" then return nil, "bad \"sec-websocket-version\" request header" end local protocols = headers["sec-websocket-protocol"] if type(protocols) == "table" then protocols = protocols[1] end if protocols then ngx_header["Sec-WebSocket-Protocol"] = protocols end ngx_header["Upgrade"] = "websocket" local sha1 = sha1_bin(key .. "258EAFA5-E914-47DA-95CA-C5AB0DC85B11") ngx_header["Sec-WebSocket-Accept"] = base64(sha1) ngx_header["Content-Type"] = nil ngx.status = 101 local ok, err = ngx_send_headers() if not ok then return nil, "failed to send response header: " .. (err or "unknown") end ok, err = ngx_flush(true) if not ok then return nil, "failed to flush response header: " .. (err or "unknown") end local sock sock, err = req_sock(true) if not sock then return nil, err end local max_payload_len, send_masked, timeout local max_recv_len, max_send_len if opts then max_payload_len = opts.max_payload_len max_recv_len = opts.max_recv_len max_send_len = opts.max_send_len send_masked = opts.send_masked timeout = opts.timeout if timeout then sock:settimeout(timeout) end end max_payload_len = max_payload_len or 65535 max_recv_len = max_recv_len or max_payload_len max_send_len = max_send_len or max_payload_len return setmetatable({ sock = sock, max_recv_len = max_recv_len, max_send_len = max_send_len, send_masked = send_masked, }, mt) end function _M.set_timeout(self, time) local sock = self.sock if not sock then return nil, nil, "not initialized yet" end return sock:settimeout(time) end function _M.recv_frame(self) if self.fatal then return nil, nil, "fatal error already happened" end local sock = self.sock if not sock then return nil, nil, "not initialized yet" end local data, typ, err = _recv_frame(sock, self.max_recv_len, true) if not data and not str_find(err, ": timeout", 1, true) then self.fatal = true end return data, typ, err end local function send_frame(self, fin, opcode, payload) if self.fatal then return nil, "fatal error already happened" end local sock = self.sock if not sock then return nil, "not initialized yet" end local bytes, err = _send_frame(sock, fin, opcode, payload, self.max_send_len, self.send_masked) if not bytes then self.fatal = true end return bytes, err end _M.send_frame = send_frame function _M.send_continue(self, data) return send_frame(self, true, 0x0, data) end function _M.send_text(self, data) return send_frame(self, true, 0x1, data) end function _M.send_binary(self, data) return send_frame(self, true, 0x2, data) end function _M.send_close(self, code, msg) local payload if code then if type(code) ~= "number" or code > 0x7fff then return nil, "bad status code" end payload = char(band(rshift(code, 8), 0xff), band(code, 0xff)) .. (msg or "") end return send_frame(self, true, 0x8, payload) end function _M.send_ping(self, data) return send_frame(self, true, 0x9, data) end function _M.send_pong(self, data) return send_frame(self, true, 0xa, data) end return _M PK<½N]&*r$Æ(Æ(resty/websocket/client.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) -- FIXME: this library is very rough and is currently just for testing -- the websocket client. local wbproto = require "resty.websocket.protocol" local bit = require "bit" local _recv_frame = wbproto.recv_frame local _send_frame = wbproto.send_frame local new_tab = wbproto.new_tab local tcp = ngx.socket.tcp local re_match = ngx.re.match local re_find = ngx.re.find local encode_base64 = ngx.encode_base64 local concat = table.concat local char = string.char local str_find = string.find local rand = math.random local rshift = bit.rshift local band = bit.band local setmetatable = setmetatable local type = type local debug = ngx.config.debug local ngx_log = ngx.log local ngx_DEBUG = ngx.DEBUG local assert = assert local ssl_support = true if not ngx.config or not ngx.config.ngx_lua_version or ngx.config.ngx_lua_version < 9011 then ssl_support = false end local _M = new_tab(0, 13) _M._VERSION = '0.13' local mt = { __index = _M } function _M.new(self, opts) local sock, err = tcp() if not sock then return nil, err end local max_payload_len, send_unmasked, timeout local max_recv_len, max_send_len if opts then max_payload_len = opts.max_payload_len max_recv_len = opts.max_recv_len max_send_len = opts.max_send_len send_unmasked = opts.send_unmasked timeout = opts.timeout if timeout then sock:settimeout(timeout) end end max_payload_len = max_payload_len or 65535 max_recv_len = max_recv_len or max_payload_len max_send_len = max_send_len or max_payload_len return setmetatable({ sock = sock, max_recv_len = max_recv_len, max_send_len = max_send_len, send_unmasked = send_unmasked, }, mt) end function _M.connect(self, uri, opts) local sock = self.sock if not sock then return nil, "not initialized" end local is_unix = false local m, err if re_find(uri, "unix:") then is_unix = true m, err = re_match(uri, [[^(wss?)://(unix:[^:]+):()(.*)]], "jo") else m, err = re_match(uri, [[^(wss?)://([^:/]+)(?::(\d+))?(.*)]], "jo") end if not m then if err then return nil, "failed to match the uri: " .. err end return nil, "bad websocket uri" end local scheme = m[1] local addr = m[2] local port = m[3] local path = m[4] -- ngx.say("host: ", host) -- ngx.say("port: ", port) local ssl = scheme == "wss" if ssl and not ssl_support then return nil, "ngx_lua 0.9.11+ required for SSL sockets" end if not port then port = ssl and 443 or 80 end if path == "" then path = "/" end local ssl_verify, server_name, headers, proto_header, origin_header local sock_opts = {} local client_cert, client_priv_key local header_host local key if opts then local protos = opts.protocols if protos then if type(protos) == "table" then proto_header = "\r\nSec-WebSocket-Protocol: " .. concat(protos, ",") else proto_header = "\r\nSec-WebSocket-Protocol: " .. protos end end local origin = opts.origin if origin then origin_header = "\r\nOrigin: " .. origin end if opts.pool then sock_opts.pool = opts.pool end --pool_size specify the size of the connection pool. If omitted and no backlog option was provided, no pool will be created. if opts.pool_size then sock_opts.pool_size = opts.pool_size end if opts.backlog then sock_opts.backlog = opts.backlog end client_cert = opts.client_cert client_priv_key = opts.client_priv_key if client_cert then assert(client_priv_key, "client_priv_key must be provided with client_cert") end ssl_verify = opts.ssl_verify server_name = opts.server_name if server_name ~= nil and type(server_name) ~= "string" then return nil, "SSL server_name must be a string" end if opts.headers then headers = opts.headers if type(headers) ~= "table" then return nil, "custom headers must be a table" end end header_host = opts.host if header_host ~= nil and type(header_host) ~= "string" then return nil, "custom host header must be a string" end key = opts.key if key ~= nil and type(key) ~= "string" then return nil, "custom Sec-WebSocket-Key must be a string" end end local ok, err if is_unix then ok, err = sock:connect(addr, sock_opts) else ok, err = sock:connect(addr, port, sock_opts) end if not ok then return nil, "failed to connect: " .. err end -- check for connections from pool: local reused_count, err = sock:getreusedtimes() if not reused_count then return nil, "failed to get reused times: " .. tostring(err) end if reused_count > 0 then -- being a reused connection (must have done handshake) return 1, nil, "connection reused" end if ssl then if client_cert then ok, err = sock:setclientcert(client_cert, client_priv_key) if not ok then return nil, "failed to set TLS client certificate: " .. err end end server_name = server_name or header_host or addr ok, err = sock:sslhandshake(false, server_name, ssl_verify) if not ok then return nil, "ssl handshake failed: " .. err end end local custom_headers if headers then custom_headers = concat(headers, "\r\n") custom_headers = "\r\n" .. custom_headers end -- do the websocket handshake: if not key then local bytes = char(rand(256) - 1, rand(256) - 1, rand(256) - 1, rand(256) - 1, rand(256) - 1, rand(256) - 1, rand(256) - 1, rand(256) - 1, rand(256) - 1, rand(256) - 1, rand(256) - 1, rand(256) - 1, rand(256) - 1, rand(256) - 1, rand(256) - 1, rand(256) - 1) key = encode_base64(bytes) end local host_header = header_host or (is_unix and "unix_sock" or addr .. ":" .. port) local req = "GET " .. path .. " HTTP/1.1\r\nUpgrade: websocket\r\nHost: " .. host_header .. "\r\nSec-WebSocket-Key: " .. key .. (proto_header or "") .. "\r\nSec-WebSocket-Version: 13" .. (origin_header or "") .. "\r\nConnection: Upgrade" .. (custom_headers or "") .. "\r\n\r\n" local bytes, err = sock:send(req) if not bytes then return nil, "failed to send the handshake request: " .. err end local header_reader = sock:receiveuntil("\r\n\r\n") -- FIXME: check for too big response headers local header, err, partial = header_reader() if not header then return nil, "failed to receive response header: " .. err end -- error("header: " .. header) -- FIXME: verify the response headers m, err = re_match(header, [[^\s*HTTP/1\.1\s+]], "jo") if not m then return nil, "bad HTTP response status line: " .. header end return 1, nil, header end function _M.set_timeout(self, time) local sock = self.sock if not sock then return nil, nil, "not initialized yet" end return sock:settimeout(time) end function _M.recv_frame(self) if self.fatal then return nil, nil, "fatal error already happened" end local sock = self.sock if not sock then return nil, nil, "not initialized yet" end local data, typ, err = _recv_frame(sock, self.max_recv_len, false) if not data and not str_find(err, ": timeout", 1, true) then self.fatal = true end return data, typ, err end local function send_frame(self, fin, opcode, payload) if self.fatal then return nil, "fatal error already happened" end if self.closed then return nil, "already closed" end local sock = self.sock if not sock then return nil, "not initialized yet" end local bytes, err = _send_frame(sock, fin, opcode, payload, self.max_send_len, not self.send_unmasked) if not bytes then self.fatal = true end return bytes, err end _M.send_frame = send_frame function _M.send_text(self, data) return send_frame(self, true, 0x1, data) end function _M.send_binary(self, data) return send_frame(self, true, 0x2, data) end local function send_close(self, code, msg) local payload if code then if type(code) ~= "number" or code > 0x7fff then return nil, "bad status code" end payload = char(band(rshift(code, 8), 0xff), band(code, 0xff)) .. (msg or "") end if debug then ngx_log(ngx_DEBUG, "sending the close frame") end local bytes, err = send_frame(self, true, 0x8, payload) if not bytes then self.fatal = true end self.closed = true return bytes, err end _M.send_close = send_close function _M.send_ping(self, data) return send_frame(self, true, 0x9, data) end function _M.send_pong(self, data) return send_frame(self, true, 0xa, data) end function _M.close(self) if self.fatal then return nil, "fatal error already happened" end local sock = self.sock if not sock then return nil, "not initialized" end if not self.closed then local bytes, err = send_close(self) if not bytes then return nil, "failed to send close frame: " .. err end end return sock:close() end function _M.set_keepalive(self, ...) local sock = self.sock if not sock then return nil, "not initialized" end return sock:setkeepalive(...) end return _M PK<½N]Ü:P¡##resty/websocket/protocol.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local bit = require "bit" local ffi = require "ffi" local byte = string.byte local char = string.char local sub = string.sub local band = bit.band local bor = bit.bor local bxor = bit.bxor local lshift = bit.lshift local rshift = bit.rshift --local tohex = bit.tohex local tostring = tostring local concat = table.concat local rand = math.random local type = type local debug = ngx.config.debug local ngx_log = ngx.log local ngx_DEBUG = ngx.DEBUG local ffi_new = ffi.new local ffi_string = ffi.string local ok, new_tab = pcall(require, "table.new") if not ok then new_tab = function (narr, nrec) return {} end end local _M = new_tab(0, 5) _M.new_tab = new_tab _M._VERSION = '0.13' local types = { [0x0] = "continuation", [0x1] = "text", [0x2] = "binary", [0x8] = "close", [0x9] = "ping", [0xa] = "pong", } local str_buf_size = 4096 local str_buf local c_buf_type = ffi.typeof("char[?]") local function get_string_buf(size) if size > str_buf_size then return ffi_new(c_buf_type, size) end if not str_buf then str_buf = ffi_new(c_buf_type, str_buf_size) end return str_buf end function _M.recv_frame(sock, max_payload_len, force_masking) local data, err = sock:receive(2) if not data then return nil, nil, "failed to receive the first 2 bytes: " .. err end local fst, snd = byte(data, 1, 2) local fin = band(fst, 0x80) ~= 0 -- print("fin: ", fin) if band(fst, 0x70) ~= 0 then return nil, nil, "bad RSV1, RSV2, or RSV3 bits" end local opcode = band(fst, 0x0f) -- print("opcode: ", tohex(opcode)) if opcode >= 0x3 and opcode <= 0x7 then return nil, nil, "reserved non-control frames" end if opcode >= 0xb and opcode <= 0xf then return nil, nil, "reserved control frames" end local mask = band(snd, 0x80) ~= 0 if debug then ngx_log(ngx_DEBUG, "recv_frame: mask bit: ", mask and 1 or 0) end if force_masking and not mask then return nil, nil, "frame unmasked" end local payload_len = band(snd, 0x7f) -- print("payload len: ", payload_len) if payload_len == 126 then local data, err = sock:receive(2) if not data then return nil, nil, "failed to receive the 2 byte payload length: " .. (err or "unknown") end payload_len = bor(lshift(byte(data, 1), 8), byte(data, 2)) elseif payload_len == 127 then local data, err = sock:receive(8) if not data then return nil, nil, "failed to receive the 8 byte payload length: " .. (err or "unknown") end if byte(data, 1) ~= 0 or byte(data, 2) ~= 0 or byte(data, 3) ~= 0 or byte(data, 4) ~= 0 then return nil, nil, "payload len too large" end local fifth = byte(data, 5) if band(fifth, 0x80) ~= 0 then return nil, nil, "payload len too large" end payload_len = bor(lshift(fifth, 24), lshift(byte(data, 6), 16), lshift(byte(data, 7), 8), byte(data, 8)) end if band(opcode, 0x8) ~= 0 then -- being a control frame if payload_len > 125 then return nil, nil, "too long payload for control frame" end if not fin then return nil, nil, "fragmented control frame" end end -- print("payload len: ", payload_len, ", max payload len: ", -- max_payload_len) if payload_len > max_payload_len then return nil, nil, "exceeding max payload len" end local rest if mask then rest = payload_len + 4 else rest = payload_len end -- print("rest: ", rest) local data if rest > 0 then data, err = sock:receive(rest) if not data then return nil, nil, "failed to read masking-len and payload: " .. (err or "unknown") end else data = "" end -- print("received rest") if opcode == 0x8 then -- being a close frame if payload_len > 0 then if payload_len < 2 then return nil, nil, "close frame with a body must carry a 2-byte" .. " status code" end local msg, code if mask then local fst = bxor(byte(data, 4 + 1), byte(data, 1)) local snd = bxor(byte(data, 4 + 2), byte(data, 2)) code = bor(lshift(fst, 8), snd) if payload_len > 2 then -- TODO string.buffer optimizations local bytes = get_string_buf(payload_len - 2) for i = 3, payload_len do bytes[i - 3] = bxor(byte(data, 4 + i), byte(data, (i - 1) % 4 + 1)) end msg = ffi_string(bytes, payload_len - 2) else msg = "" end else local fst = byte(data, 1) local snd = byte(data, 2) code = bor(lshift(fst, 8), snd) -- print("parsing unmasked close frame payload: ", payload_len) if payload_len > 2 then msg = sub(data, 3) else msg = "" end end return msg, "close", code end return "", "close", nil end local msg if mask then -- TODO string.buffer optimizations local bytes = get_string_buf(payload_len) for i = 1, payload_len do bytes[i - 1] = bxor(byte(data, 4 + i), byte(data, (i - 1) % 4 + 1)) end msg = ffi_string(bytes, payload_len) else msg = data end return msg, types[opcode], not fin and "again" or nil end local function build_frame(fin, opcode, payload_len, payload, masking) -- XXX optimize this when we have string.buffer in LuaJIT 2.1 local fst if fin then fst = bor(0x80, opcode) else fst = opcode end local snd, extra_len_bytes if payload_len <= 125 then snd = payload_len extra_len_bytes = "" elseif payload_len <= 65535 then snd = 126 extra_len_bytes = char(band(rshift(payload_len, 8), 0xff), band(payload_len, 0xff)) else if band(payload_len, 0x7fffffff) < payload_len then return nil, "payload too big" end snd = 127 -- XXX we only support 31-bit length here extra_len_bytes = char(0, 0, 0, 0, band(rshift(payload_len, 24), 0xff), band(rshift(payload_len, 16), 0xff), band(rshift(payload_len, 8), 0xff), band(payload_len, 0xff)) end local masking_key if masking then -- set the mask bit snd = bor(snd, 0x80) local key = rand(0xffffffff) masking_key = char(band(rshift(key, 24), 0xff), band(rshift(key, 16), 0xff), band(rshift(key, 8), 0xff), band(key, 0xff)) -- TODO string.buffer optimizations local bytes = get_string_buf(payload_len) for i = 1, payload_len do bytes[i - 1] = bxor(byte(payload, i), byte(masking_key, (i - 1) % 4 + 1)) end payload = ffi_string(bytes, payload_len) else masking_key = "" end return char(fst, snd) .. extra_len_bytes .. masking_key .. payload end _M.build_frame = build_frame function _M.send_frame(sock, fin, opcode, payload, max_payload_len, masking) -- ngx.log(ngx.WARN, ngx.var.uri, ": masking: ", masking) if not payload then payload = "" elseif type(payload) ~= "string" then payload = tostring(payload) end local payload_len = #payload if payload_len > max_payload_len then return nil, "payload too big" end if band(opcode, 0x8) ~= 0 then -- being a control frame if payload_len > 125 then return nil, "too much payload for control frame" end if not fin then return nil, "fragmented control frame" end end local frame, err = build_frame(fin, opcode, payload_len, payload, masking) if not frame then return nil, "failed to build frame: " .. err end local bytes, err = sock:send(frame) if not bytes then return nil, "failed to send frame: " .. err end return bytes end return _M PK<½N]çŽ\¢  resty/random.luanu„[µü¤-- Copyright (C) by Yichun Zhang (agentzh) local ffi = require "ffi" local ffi_new = ffi.new local ffi_str = ffi.string local C = ffi.C --local setmetatable = setmetatable --local error = error local _M = { _VERSION = '0.17' } ffi.cdef[[ int RAND_bytes(unsigned char *buf, int num); int RAND_pseudo_bytes(unsigned char *buf, int num); ]] function _M.bytes(len, strong) if strong == nil then strong = true end local buf = ffi_new("char[?]", len) if strong then if C.RAND_bytes(buf, len) == 0 then return nil end else C.RAND_pseudo_bytes(buf,len) end return ffi_str(buf, len) end return _M PK=½N]póŒ×¨¨resty/sha1.luanu„[µü¤-- Copyright (C) by Yichun Zhang (agentzh) require "resty.sha" local ffi = require "ffi" local ffi_new = ffi.new local ffi_str = ffi.string local C = ffi.C local setmetatable = setmetatable --local error = error local _M = { _VERSION = '0.17' } local mt = { __index = _M } ffi.cdef[[ typedef struct SHAstate_st { SHA_LONG h0,h1,h2,h3,h4; SHA_LONG Nl,Nh; SHA_LONG data[SHA_LBLOCK]; unsigned int num; } SHA_CTX; int SHA1_Init(SHA_CTX *c); int SHA1_Update(SHA_CTX *c, const void *data, size_t len); int SHA1_Final(unsigned char *md, SHA_CTX *c); ]] local digest_len = 20 local buf = ffi_new("char[?]", digest_len) local ctx_ptr_type = ffi.typeof("SHA_CTX[1]") function _M.new(self) local ctx = ffi_new(ctx_ptr_type) if C.SHA1_Init(ctx) == 0 then return nil end return setmetatable({ _ctx = ctx }, mt) end function _M.update(self, s) return C.SHA1_Update(self._ctx, s, #s) == 1 end function _M.final(self) if C.SHA1_Final(buf, self._ctx) == 1 then return ffi_str(buf, digest_len) end return nil end function _M.reset(self) return C.SHA1_Init(self._ctx) == 1 end return _M PK=½N]›éŒOOresty/sha512.luanu„[µü¤-- Copyright (C) by Yichun Zhang (agentzh) require "resty.sha" local ffi = require "ffi" local ffi_new = ffi.new local ffi_str = ffi.string local C = ffi.C local setmetatable = setmetatable --local error = error local _M = { _VERSION = '0.17' } local mt = { __index = _M } ffi.cdef[[ enum { SHA512_CBLOCK = SHA_LBLOCK*8 }; typedef struct SHA512state_st { SHA_LONG64 h[8]; SHA_LONG64 Nl,Nh; union { SHA_LONG64 d[SHA_LBLOCK]; unsigned char p[SHA512_CBLOCK]; } u; unsigned int num,md_len; } SHA512_CTX; int SHA512_Init(SHA512_CTX *c); int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); int SHA512_Final(unsigned char *md, SHA512_CTX *c); ]] local digest_len = 64 local buf = ffi_new("char[?]", digest_len) local ctx_ptr_type = ffi.typeof("SHA512_CTX[1]") function _M.new(self) local ctx = ffi_new(ctx_ptr_type) if C.SHA512_Init(ctx) == 0 then return nil end return setmetatable({ _ctx = ctx }, mt) end function _M.update(self, s) return C.SHA512_Update(self._ctx, s, #s) == 1 end function _M.final(self) if C.SHA512_Final(buf, self._ctx) == 1 then return ffi_str(buf, digest_len) end return nil end function _M.reset(self) return C.SHA512_Init(self._ctx) == 1 end return _M PK=½N]’ M�€€resty/shell.luanu„[µü¤local _M = { version = 0.03 } local resty_sig = require "resty.signal" local ngx_pipe = require "ngx.pipe" local new_tab = require "table.new" local tablepool = require "tablepool" local kill = resty_sig.kill local pipe_spawn = ngx_pipe.spawn local tostring = tostring local spawn_thread = ngx.thread.spawn local wait_thread = ngx.thread.wait local concat = table.concat local fetch_tab = tablepool.fetch local release_tab = tablepool.release local sleep = ngx.sleep local spawn_opts = { buffer_size = 1024 * 32 -- 32K } local tab_pool_tag = "resty.shell" local function cleanup_proc(proc) local pid = proc:pid() if pid then local ok, err = kill(pid, "TERM") if not ok then return nil, "failed to kill process " .. pid .. ": " .. tostring(err) end sleep(0.001) -- only wait for 1 msec kill(pid, "KILL") end return true end local function concat_err(err1, err2) return tostring(err1) .. "; " .. tostring(err2) end local function read_stream(proc, buf, max_size, meth_name) local pos = 1 local len = 0 while len <= max_size do local data, err, partial = proc[meth_name](proc, max_size - len + 1) if not data then if partial then buf[pos] = partial pos = pos + 1 len = len + #partial end if err == "closed" then return pos - 1 end return pos - 1, err end buf[pos] = data pos = pos + 1 len = len + #data end if len > max_size then return pos - 1, "too much data" end return pos - 1 end function _M.run(cmd, stdin, timeout, max_size) if not max_size then max_size = 128 * 1024 -- 128KB end local proc, err = pipe_spawn(cmd, spawn_opts) if not proc then return nil, nil, nil, "failed to spawn: " .. tostring(err) end proc:set_timeouts(timeout, timeout, timeout, timeout) if stdin and stdin ~= "" then local bytes, err = proc:write(stdin) if not bytes then local ok2, err2 = cleanup_proc(proc) if not ok2 then err = concat_err(err, err2) end return nil, nil, nil, "failed to write to stdin: " .. tostring(err) end end local ok ok, err = proc:shutdown("stdin") if not ok then local ok2, err2 = cleanup_proc(proc) if not ok2 then err = concat_err(err, err2) end return nil, nil, nil, "failed to shutdown stdin: " .. tostring(err) end local stdout_tab = fetch_tab(tab_pool_tag, 4, 0) local stderr_tab = fetch_tab(tab_pool_tag, 4, 0) local thr_out = spawn_thread(read_stream, proc, stdout_tab, max_size, "stdout_read_any") local thr_err = spawn_thread(read_stream, proc, stderr_tab, max_size, "stderr_read_any") local reason, status ok, reason, status = proc:wait() if ok == nil and reason ~= "exited" then err = reason local ok2, err2 = cleanup_proc(proc) if not ok2 then err = concat_err(err, err2) end local stdout = concat(stdout_tab) release_tab(tab_pool_tag, stdout_tab) local stderr = concat(stderr_tab) release_tab(tab_pool_tag, stderr_tab) return nil, stdout, stderr, "failed to wait for process: " .. tostring(err) end local ok2, stdout_pos, err2 = wait_thread(thr_out) if not ok2 then local stdout = concat(stdout_tab) release_tab(tab_pool_tag, stdout_tab) local stderr = concat(stderr_tab) release_tab(tab_pool_tag, stderr_tab) return nil, stdout, stderr, "failed to wait stdout thread: " .. tostring(stdout_pos) end if err2 then local stdout = concat(stdout_tab, "", 1, stdout_pos) release_tab(tab_pool_tag, stdout_tab) local stderr = concat(stderr_tab) release_tab(tab_pool_tag, stderr_tab) return nil, stdout, stderr, "failed to read stdout: " .. tostring(err2) end local stderr_pos ok2, stderr_pos, err2 = wait_thread(thr_err) if not ok2 then local stdout = concat(stdout_tab, "", 1, stdout_pos) release_tab(tab_pool_tag, stdout_tab) local stderr = concat(stderr_tab) release_tab(tab_pool_tag, stderr_tab) return nil, stdout, stderr, "failed to wait stderr thread: " .. tostring(stderr_pos) end local stdout = concat(stdout_tab, "", 1, stdout_pos) release_tab(tab_pool_tag, stdout_tab) local stderr = concat(stderr_tab, "", 1, stderr_pos) release_tab(tab_pool_tag, stderr_tab) if err2 then return nil, stdout, stderr, "failed to read stderr: " .. tostring(err2) end return ok, stdout, stderr, reason, status end return _M PK=½N]†¼]V[V[resty/upstream/healthcheck.luanu„[µü¤local stream_sock = ngx.socket.tcp local log = ngx.log local ERR = ngx.ERR local WARN = ngx.WARN local DEBUG = ngx.DEBUG local ngx = ngx local error = error local string = string local sub = string.sub local re_find = ngx.re.find local new_timer = ngx.timer.at local shared = ngx.shared local debug_mode = ngx.config.debug local concat = table.concat local tonumber = tonumber local tostring = tostring local ipairs = ipairs local ceil = math.ceil local spawn = ngx.thread.spawn local wait = ngx.thread.wait local pcall = pcall local setmetatable = setmetatable -- LuaFormatter off local _M = { _VERSION = '0.08' } if not ngx.config or not ngx.config.ngx_lua_version or ngx.config.ngx_lua_version < 9005 then error("ngx_lua 0.9.5+ required") end -- LuaFormatter on local ok, upstream = pcall(require, "ngx.upstream") if not ok then error("ngx_upstream_lua module required") end local ok, new_tab = pcall(require, "table.new") if not ok or type(new_tab) ~= "function" then new_tab = function(narr, nrec) return {} end end local set_peer_down = upstream.set_peer_down local get_primary_peers = upstream.get_primary_peers local get_backup_peers = upstream.get_backup_peers local get_upstreams = upstream.get_upstreams local upstream_checker_statuses = {} local function warn(...) log(WARN, "healthcheck: ", ...) end local function errlog(...) log(ERR, "healthcheck: ", ...) end local function debug(...) -- print("debug mode: ", debug_mode) if debug_mode then log(DEBUG, "healthcheck: ", ...) end end local function gen_peer_key(prefix, u, is_backup, id) if is_backup then return prefix .. u .. ":b" .. id end return prefix .. u .. ":p" .. id end local function set_peer_down_globally(ctx, is_backup, id, value) local u = ctx.upstream local dict = ctx.dict local ok, err = set_peer_down(u, is_backup, id, value) if not ok then errlog("failed to set peer down: ", err) end if not ctx.new_version then ctx.new_version = true end local key = gen_peer_key("d:", u, is_backup, id) local ok, err = dict:set(key, value) if not ok then errlog("failed to set peer down state: ", err) end end local function peer_fail(ctx, is_backup, id, peer) debug("peer ", peer.name, " was checked to be not ok") local u = ctx.upstream local dict = ctx.dict local key = gen_peer_key("nok:", u, is_backup, id) local fails, err = dict:get(key) if not fails then if err then errlog("failed to get peer nok key: ", err) return end fails = 1 -- below may have a race condition, but it is fine for our -- purpose here. local ok, err = dict:set(key, 1) if not ok then errlog("failed to set peer nok key: ", err) end else fails = fails + 1 local ok, err = dict:incr(key, 1) if not ok then errlog("failed to incr peer nok key: ", err) end end if fails == 1 then key = gen_peer_key("ok:", u, is_backup, id) local succ, err = dict:get(key) if not succ or succ == 0 then if err then errlog("failed to get peer ok key: ", err) return end else local ok, err = dict:set(key, 0) if not ok then errlog("failed to set peer ok key: ", err) end end end -- print("ctx fall: ", ctx.fall, ", peer down: ", peer.down, -- ", fails: ", fails) if not peer.down and fails >= ctx.fall then warn("peer ", peer.name, " is turned down after ", fails, " failure(s)") peer.down = true set_peer_down_globally(ctx, is_backup, id, true) end end local function peer_ok(ctx, is_backup, id, peer) debug("peer ", peer.name, " was checked to be ok") local u = ctx.upstream local dict = ctx.dict local key = gen_peer_key("ok:", u, is_backup, id) local succ, err = dict:get(key) if not succ then if err then errlog("failed to get peer ok key: ", err) return end succ = 1 -- below may have a race condition, but it is fine for our -- purpose here. local ok, err = dict:set(key, 1) if not ok then errlog("failed to set peer ok key: ", err) end else succ = succ + 1 local ok, err = dict:incr(key, 1) if not ok then errlog("failed to incr peer ok key: ", err) end end if succ == 1 then key = gen_peer_key("nok:", u, is_backup, id) local fails, err = dict:get(key) if not fails or fails == 0 then if err then errlog("failed to get peer nok key: ", err) return end else local ok, err = dict:set(key, 0) if not ok then errlog("failed to set peer nok key: ", err) end end end if peer.down and succ >= ctx.rise then warn("peer ", peer.name, " is turned up after ", succ, " success(es)") peer.down = nil set_peer_down_globally(ctx, is_backup, id, nil) end end -- shortcut error function for check_peer() local function peer_error(ctx, is_backup, id, peer, ...) if not peer.down then errlog(...) end peer_fail(ctx, is_backup, id, peer) end local function check_peer(ctx, id, peer, is_backup) local ok local name = peer.name local statuses = ctx.statuses local req = ctx.http_req local sock, err = stream_sock() if not sock then errlog("failed to create stream socket: ", err) return end sock:settimeout(ctx.timeout) if peer.host then -- print("peer port: ", peer.port) ok, err = sock:connect(peer.host, peer.port) else ok, err = sock:connect(name) end if not ok then if not peer.down then errlog("failed to connect to ", name, ": ", err) end return peer_fail(ctx, is_backup, id, peer) end if ctx.type == "https" then ok, err = sock:sslhandshake(nil, ctx.host, ctx.ssl_verify) if not ok then sock:close() return peer_error(ctx, is_backup, id, peer, "failed to ssl handshake to ", name, ": ", err) end end local bytes, err = sock:send(req) if not bytes then return peer_error(ctx, is_backup, id, peer, "failed to send request to ", name, ": ", err) end local status_line, err = sock:receive() if not status_line then peer_error(ctx, is_backup, id, peer, "failed to receive status line from ", name, ": ", err) if err == "timeout" then sock:close() -- timeout errors do not close the socket. end return end if statuses then local from, to, err = re_find(status_line, [[^HTTP/\d+\.\d+\s+(\d+)]], "joi", nil, 1) if err then errlog("failed to parse status line: ", err) end if not from then peer_error(ctx, is_backup, id, peer, "bad status line from ", name, ": ", status_line) sock:close() return end local status = tonumber(sub(status_line, from, to)) if not statuses[status] then peer_error(ctx, is_backup, id, peer, "bad status code from ", name, ": ", status) sock:close() return end end peer_ok(ctx, is_backup, id, peer) sock:close() end local function check_peer_range(ctx, from, to, peers, is_backup) for i = from, to do check_peer(ctx, i - 1, peers[i], is_backup) end end local function check_peers(ctx, peers, is_backup) local n = #peers if n == 0 then return end local concur = ctx.concurrency if concur <= 1 then for i = 1, n do check_peer(ctx, i - 1, peers[i], is_backup) end else local threads local nthr if n <= concur then nthr = n - 1 threads = new_tab(nthr, 0) for i = 1, nthr do if debug_mode then debug("spawn a thread checking ", is_backup and "backup" or "primary", " peer ", i - 1) end threads[i] = spawn(check_peer, ctx, i - 1, peers[i], is_backup) end -- use the current "light thread" to run the last task if debug_mode then debug("check ", is_backup and "backup" or "primary", " peer ", n - 1) end check_peer(ctx, n - 1, peers[n], is_backup) else local group_size = ceil(n / concur) nthr = ceil(n / group_size) - 1 threads = new_tab(nthr, 0) local from = 1 local rest = n for i = 1, nthr do local to if rest >= group_size then rest = rest - group_size to = from + group_size - 1 else rest = 0 to = from + rest - 1 end if debug_mode then debug("spawn a thread checking ", is_backup and "backup" or "primary", " peers ", from - 1, " to ", to - 1) end threads[i] = spawn(check_peer_range, ctx, from, to, peers, is_backup) from = from + group_size if rest == 0 then break end end if rest > 0 then local to = from + rest - 1 if debug_mode then debug("check ", is_backup and "backup" or "primary", " peers ", from - 1, " to ", to - 1) end check_peer_range(ctx, from, to, peers, is_backup) end end if nthr and nthr > 0 then for i = 1, nthr do local t = threads[i] if t then wait(t) end end end end end local function upgrade_peers_version(ctx, peers, is_backup) local dict = ctx.dict local u = ctx.upstream local n = #peers for i = 1, n do local peer = peers[i] local id = i - 1 local key = gen_peer_key("d:", u, is_backup, id) local down = false local res, err = dict:get(key) if not res then if err then errlog("failed to get peer down state: ", err) end else down = true end if (peer.down and not down) or (not peer.down and down) then local ok, err = set_peer_down(u, is_backup, id, down) if not ok then errlog("failed to set peer down: ", err) else -- update our cache too peer.down = down end end end end local function preprocess_peers(peers, port) local n = #peers for i = 1, n do local p = peers[i] local name = p.name if name then local from, to, err = re_find(name, [[^(.*):\d+$]], "jo", nil, 1) if from then p.host = sub(name, 1, to) p.port = port or tonumber(sub(name, to + 2)) end end end return peers end local function check_peers_updates(ctx) local dict = ctx.dict local u = ctx.upstream local ppeers, err = get_primary_peers(u) if ppeers then ctx.primary_peers = preprocess_peers(ppeers, ctx.port) end local bpeers, err = get_backup_peers(u) if bpeers then ctx.backup_peers = preprocess_peers(bpeers, ctx.port) end local key = "v:" .. u local ver, err = dict:get(key) if not ver then if err then errlog("failed to get peers version: ", err) return end if ctx.version > 0 then ctx.new_version = true end elseif ctx.version < ver then debug("upgrading peers version to ", ver) upgrade_peers_version(ctx, ctx.primary_peers, false); upgrade_peers_version(ctx, ctx.backup_peers, true); ctx.version = ver end end local function get_lock(ctx) local dict = ctx.dict local key = "l:" .. ctx.upstream -- the lock is held for the whole interval to prevent multiple -- worker processes from sending the test request simultaneously. -- here we substract the lock expiration time by 1ms to prevent -- a race condition with the next timer event. local ok, err = dict:add(key, true, ctx.interval - 0.001) if not ok then if err == "exists" then return nil end errlog("failed to add key \"", key, "\": ", err) return nil end return true end local function do_check(ctx) debug("healthcheck: run a check cycle") check_peers_updates(ctx) if get_lock(ctx) then check_peers(ctx, ctx.primary_peers, false) check_peers(ctx, ctx.backup_peers, true) end if ctx.new_version then local key = "v:" .. ctx.upstream local dict = ctx.dict if debug_mode then debug("publishing peers version ", ctx.version + 1) end dict:add(key, 0) local new_ver, err = dict:incr(key, 1) if not new_ver then errlog("failed to publish new peers version: ", err) end ctx.version = new_ver ctx.new_version = nil end end local function update_upstream_checker_status(upstream, success) local cnt = upstream_checker_statuses[upstream] if not cnt then cnt = 0 end if success then cnt = cnt + 1 else cnt = cnt - 1 end upstream_checker_statuses[upstream] = cnt end local check check = function(premature, ctx) if premature then return end local ok, err = pcall(do_check, ctx) if not ok then errlog("failed to run healthcheck cycle: ", err) end local ok, err = new_timer(ctx.interval, check, ctx) if not ok then if err ~= "process exiting" then errlog("failed to create timer: ", err) end update_upstream_checker_status(ctx.upstream, false) return end end function _M.spawn_checker(opts) local typ = opts.type if not typ then return nil, "\"type\" option required" end if typ ~= "http" and typ ~= "https" then return nil, "only \"http\" and \"https\" type are supported right now" end local ssl_verify = opts.ssl_verify if ssl_verify == nil then ssl_verify = true end local http_req = opts.http_req if not http_req then return nil, "\"http_req\" option required" end local timeout = opts.timeout if not timeout then timeout = 1000 end local interval = opts.interval if not interval then interval = 1 else interval = interval / 1000 if interval < 0.002 then -- minimum 2ms interval = 0.002 end end local valid_statuses = opts.valid_statuses local statuses if valid_statuses then statuses = new_tab(0, #valid_statuses) for _, status in ipairs(valid_statuses) do -- print("found good status ", status) statuses[status] = true end end -- debug("interval: ", interval) local concur = opts.concurrency if not concur then concur = 1 end local fall = opts.fall if not fall then fall = 5 end local rise = opts.rise if not rise then rise = 2 end local shm = opts.shm if not shm then return nil, "\"shm\" option required" end local dict = shared[shm] if not dict then return nil, "shm \"" .. tostring(shm) .. "\" not found" end local u = opts.upstream if not u then return nil, "no upstream specified" end local ppeers, err = get_primary_peers(u) if not ppeers then return nil, "failed to get primary peers: " .. err end local bpeers, err = get_backup_peers(u) if not bpeers then return nil, "failed to get backup peers: " .. err end local ctx = { upstream = u, primary_peers = preprocess_peers(ppeers, opts.port), backup_peers = preprocess_peers(bpeers, opts.port), port = opts.port, http_req = http_req, timeout = timeout, interval = interval, dict = dict, fall = fall, rise = rise, statuses = statuses, version = 0, concurrency = concur, type = typ, host = opts.host, ssl_verify = ssl_verify } if debug_mode and opts.no_timer then check(nil, ctx) else local ok, err = new_timer(0, check, ctx) if not ok then return nil, "failed to create timer: " .. err end end update_upstream_checker_status(u, true) return true end local new_status_meta = { __add = function(self, rhs) -- debug("new_status_meta:__add: rhs: ", rhs) self.statuses[self.idx] = rhs self.idx = self.idx + 1 end } new_status_meta.__index = new_status_meta function new_status_meta:add(rhs) self:__add(rhs) end local function new_status_table(n) local tab = {statuses = new_tab(n * 90, 0), idx = 1} return setmetatable(tab, new_status_meta) end -- combined upstream status adding functions local function add_upstream_prometheus_status_line(tab, u, st) tab:add('nginx_upstream_status_info{name="') tab:add(u) tab:add('",status="') tab:add(st) tab:add('\n') end local function add_upstream_up_prometheus_status(tab, u) add_upstream_prometheus_status_line(tab, u, 'UP"} 1'); add_upstream_prometheus_status_line(tab, u, 'DOWN"} 0'); add_upstream_prometheus_status_line(tab, u, 'UNKNOWN"} 0'); end local function add_upstream_down_prometheus_status(tab, u) add_upstream_prometheus_status_line(tab, u, 'UP"} 0'); add_upstream_prometheus_status_line(tab, u, 'DOWN"} 1'); add_upstream_prometheus_status_line(tab, u, 'UNKNOWN"} 0'); end local function add_upstream_unknown_prometheus_status(tab, u) add_upstream_prometheus_status_line(tab, u, 'UP"} 0'); add_upstream_prometheus_status_line(tab, u, 'DOWN"} 0'); add_upstream_prometheus_status_line(tab, u, 'UNKNOWN"} 1'); end -- peer status generator functions local function gen_peer_prometheus_status(tab, u, p, r, s, n) tab:add("nginx_upstream_status_info{name=\"") tab:add(u) tab:add("\",endpoint=\"") tab:add(p) tab:add("\",status=\"") tab:add(s) tab:add("\",role=\"") tab:add(r) tab:add("\"} ") tab:add(n) tab:add("\n") end -- combined peer status adding function local function add_peer_status(tab, u, p, r) gen_peer_prometheus_status(tab, u, p.name, r, "UP", not p.down and 1 or 0) gen_peer_prometheus_status(tab, u, p.name, r, "DOWN", p.down and 1 or 0) end local function add_peer_prometheus_status(tab, u, p, r) gen_peer_prometheus_status(tab, u, p.name, r, "UP", not p.down and 1 or 0) gen_peer_prometheus_status(tab, u, p.name, r, "DOWN", p.down and 1 or 0) end local function add_peers_info(tab, u, peers, role) local npeers = #peers for i = 1, npeers do local peer = peers[i] tab:add(" ") tab:add(peer.name) if peer.down then tab:add(" DOWN\n") else tab:add(" UP\n") end end end local function add_peers_prometheus_info(tab, u, peers, role) local npeers = #peers local found_up_peer = false for i = 1, npeers do add_peer_prometheus_status(tab, u, peers[i], role) if not peers[i].down then found_up_peer = true end end return found_up_peer end function _M.prometheus_status_page() -- generate an prometheus metrics -- # HELP nginx_upstream_status_info The running staus of nginx upstream -- # TYPE nginx_upstream_status_info gauge -- nginx_upstream_status_info{name="",endpoint="",status="",role=""} num local us, err = get_upstreams() if not us then return nil, "failed to get upstream names: " .. err end local n = #us local stats_tab = new_status_table(n) stats_tab:add( "# HELP nginx_upstream_status_info The running status of nginx upstream\n") stats_tab:add("# TYPE nginx_upstream_status_info gauge\n") for i = 1, n do local u = us[i] local ncheckers = upstream_checker_statuses[u] if not ncheckers or ncheckers == 0 then add_upstream_unknown_prometheus_status(stats_tab, u) goto continue end local peers, err = get_primary_peers(u) if not peers then add_upstream_down_prometheus_status(stats_tab, u) else local peers, err = get_primary_peers(u) local found_up_peer = false if peers then if add_peers_prometheus_info(stats_tab, u, peers, "PRIMARY") then found_up_peer = true end end peers, err = get_backup_peers(u) if peers then if add_peers_prometheus_info(stats_tab, u, peers, "BACKUP") then found_up_peer = true end end if found_up_peer then add_upstream_up_prometheus_status(stats_tab, u) else add_upstream_down_prometheus_status(stats_tab, u) end end ::continue:: end return concat(stats_tab.statuses) end function _M.status_page() -- generate an HTML page local us, err = get_upstreams() if not us then return "failed to get upstream names: " .. err end local n = #us local stats_tab = new_status_table(n) for i = 1, n do if i > 1 then stats_tab:add("\n") end local u = us[i] stats_tab:add("Upstream ") stats_tab:add(u) local ncheckers = upstream_checker_statuses[u] if not ncheckers or ncheckers == 0 then stats_tab:add(" (NO checkers)") end stats_tab:add("\n Primary Peers\n") local peers, err = get_primary_peers(u) if not peers then return "failed to get primary peers in upstream " .. u .. ": " .. err end add_peers_info(stats_tab, u, peers, "PRIMARY") stats_tab:add(" Backup Peers\n") peers, err = get_backup_peers(u) if not peers then return "failed to get backup peers in upstream " .. u .. ": " .. err end add_peers_info(stats_tab, u, peers, "BACKUP") end return concat(stats_tab.statuses) end return _M PK=½N]²­Ûµìì resty/sha.luanu„[µü¤-- Copyright (C) by Yichun Zhang (agentzh) local ffi = require "ffi" local _M = { _VERSION = '0.17' } ffi.cdef[[ typedef unsigned long SHA_LONG; typedef unsigned long long SHA_LONG64; enum { SHA_LBLOCK = 16 }; ]]; return _M PK=½N]�"9œresty/sha224.luanu„[µü¤-- Copyright (C) by Yichun Zhang (agentzh) require "resty.sha256" local ffi = require "ffi" local ffi_new = ffi.new local ffi_str = ffi.string local C = ffi.C local setmetatable = setmetatable --local error = error local _M = { _VERSION = '0.17' } local mt = { __index = _M } ffi.cdef[[ int SHA224_Init(SHA256_CTX *c); int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); int SHA224_Final(unsigned char *md, SHA256_CTX *c); ]] local digest_len = 28 local buf = ffi_new("char[?]", digest_len) local ctx_ptr_type = ffi.typeof("SHA256_CTX[1]") function _M.new(self) local ctx = ffi_new(ctx_ptr_type) if C.SHA224_Init(ctx) == 0 then return nil end return setmetatable({ _ctx = ctx }, mt) end function _M.update(self, s) return C.SHA224_Update(self._ctx, s, #s) == 1 end function _M.final(self) if C.SHA224_Final(buf, self._ctx) == 1 then return ffi_str(buf, digest_len) end return nil end function _M.reset(self) return C.SHA224_Init(self._ctx) == 1 end return _M PK=½N]0ß/Yresty/sha384.luanu„[µü¤-- Copyright (C) by Yichun Zhang (agentzh) require "resty.sha512" local ffi = require "ffi" local ffi_new = ffi.new local ffi_str = ffi.string local C = ffi.C local setmetatable = setmetatable --local error = error local _M = { _VERSION = '0.17' } local mt = { __index = _M } ffi.cdef[[ int SHA384_Init(SHA512_CTX *c); int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); int SHA384_Final(unsigned char *md, SHA512_CTX *c); ]] local digest_len = 48 local buf = ffi_new("char[?]", digest_len) local ctx_ptr_type = ffi.typeof("SHA512_CTX[1]") function _M.new(self) local ctx = ffi_new(ctx_ptr_type) if C.SHA384_Init(ctx) == 0 then return nil end return setmetatable({ _ctx = ctx }, mt) end function _M.update(self, s) return C.SHA384_Update(self._ctx, s, #s) == 1 end function _M.final(self) if C.SHA384_Final(buf, self._ctx) == 1 then return ffi_str(buf, digest_len) end return nil end function _M.reset(self) return C.SHA384_Init(self._ctx) == 1 end return _M PK=½N]v5‰ìÇÇ resty/md5.luanu„[µü¤-- Copyright (C) by Yichun Zhang (agentzh) local ffi = require "ffi" local ffi_new = ffi.new local ffi_str = ffi.string local C = ffi.C local setmetatable = setmetatable --local error = error local _M = { _VERSION = '0.17' } local mt = { __index = _M } ffi.cdef[[ typedef unsigned long MD5_LONG ; enum { MD5_CBLOCK = 64, MD5_LBLOCK = MD5_CBLOCK/4 }; typedef struct MD5state_st { MD5_LONG A,B,C,D; MD5_LONG Nl,Nh; MD5_LONG data[MD5_LBLOCK]; unsigned int num; } MD5_CTX; int MD5_Init(MD5_CTX *c); int MD5_Update(MD5_CTX *c, const void *data, size_t len); int MD5_Final(unsigned char *md, MD5_CTX *c); ]] local buf = ffi_new("char[16]") local ctx_ptr_type = ffi.typeof("MD5_CTX[1]") function _M.new(self) local ctx = ffi_new(ctx_ptr_type) if C.MD5_Init(ctx) == 0 then return nil end return setmetatable({ _ctx = ctx }, mt) end function _M.update(self, s, len) return C.MD5_Update(self._ctx, s, len or #s) == 1 end function _M.final(self) if C.MD5_Final(buf, self._ctx) == 1 then return ffi_str(buf, 16) end return nil end function _M.reset(self) return C.MD5_Init(self._ctx) == 1 end return _M PK=½N]­žÍ;11resty/cookie.luanu„[µü¤-- Copyright (C) 2013-2016 Jiale Zhi (calio), CloudFlare Inc. -- See RFC6265 http://tools.ietf.org/search/rfc6265 -- require "luacov" local type = type local byte = string.byte local sub = string.sub local format = string.format local log = ngx.log local ERR = ngx.ERR local WARN = ngx.WARN local ngx_header = ngx.header local EQUAL = byte("=") local SEMICOLON = byte(";") local SPACE = byte(" ") local HTAB = byte("\t") -- table.new(narr, nrec) local ok, new_tab = pcall(require, "table.new") if not ok then new_tab = function () return {} end end local ok, clear_tab = pcall(require, "table.clear") if not ok then clear_tab = function(tab) for k, _ in pairs(tab) do tab[k] = nil end end end local _M = new_tab(0, 2) _M._VERSION = '0.01' local function get_cookie_table(text_cookie) if type(text_cookie) ~= "string" then log(ERR, format("expect text_cookie to be \"string\" but found %s", type(text_cookie))) return {} end local EXPECT_KEY = 1 local EXPECT_VALUE = 2 local EXPECT_SP = 3 local n = 0 local len = #text_cookie for i=1, len do if byte(text_cookie, i) == SEMICOLON then n = n + 1 end end local cookie_table = new_tab(0, n + 1) local state = EXPECT_SP local i = 1 local j = 1 local key, value while j <= len do if state == EXPECT_KEY then if byte(text_cookie, j) == EQUAL then key = sub(text_cookie, i, j - 1) state = EXPECT_VALUE i = j + 1 end elseif state == EXPECT_VALUE then if byte(text_cookie, j) == SEMICOLON or byte(text_cookie, j) == SPACE or byte(text_cookie, j) == HTAB then value = sub(text_cookie, i, j - 1) cookie_table[key] = value key, value = nil, nil state = EXPECT_SP i = j + 1 end elseif state == EXPECT_SP then if byte(text_cookie, j) ~= SPACE and byte(text_cookie, j) ~= HTAB then state = EXPECT_KEY i = j j = j - 1 end end j = j + 1 end if key ~= nil and value == nil then cookie_table[key] = sub(text_cookie, i) end return cookie_table end function _M.new(self) local _cookie = ngx.var.http_cookie --if not _cookie then --return nil, "no cookie found in current request" --end return setmetatable({ _cookie = _cookie, set_cookie_table = new_tab(4, 0) }, { __index = self }) end function _M.get(self, key) if not self._cookie then return nil, "no cookie found in the current request" end if self.cookie_table == nil then self.cookie_table = get_cookie_table(self._cookie) end return self.cookie_table[key] end function _M.get_all(self) if not self._cookie then return nil, "no cookie found in the current request" end if self.cookie_table == nil then self.cookie_table = get_cookie_table(self._cookie) end return self.cookie_table end local function bake(cookie) if not cookie.key or not cookie.value then return nil, 'missing cookie field "key" or "value"' end if cookie["max-age"] then cookie.max_age = cookie["max-age"] end if (cookie.samesite) then local samesite = cookie.samesite -- if we dont have a valid-looking attribute, ignore the attribute if (samesite ~= "Strict" and samesite ~= "Lax" and samesite ~= "None") then log(WARN, "SameSite value must be 'Strict', 'Lax' or 'None'") cookie.samesite = nil end end local str = cookie.key .. "=" .. cookie.value .. (cookie.expires and "; Expires=" .. cookie.expires or "") .. (cookie.max_age and "; Max-Age=" .. cookie.max_age or "") .. (cookie.domain and "; Domain=" .. cookie.domain or "") .. (cookie.path and "; Path=" .. cookie.path or "") .. (cookie.secure and "; Secure" or "") .. (cookie.httponly and "; HttpOnly" or "") .. (cookie.samesite and "; SameSite=" .. cookie.samesite or "") .. (cookie.extension and "; " .. cookie.extension or "") return str end function _M.set(self, cookie) local cookie_str, err = bake(cookie) if not cookie_str then return nil, err end local set_cookie = ngx_header['Set-Cookie'] local set_cookie_type = type(set_cookie) local t = self.set_cookie_table clear_tab(t) if set_cookie_type == "string" then -- only one cookie has been setted if set_cookie ~= cookie_str then t[1] = set_cookie t[2] = cookie_str ngx_header['Set-Cookie'] = t end elseif set_cookie_type == "table" then -- more than one cookies has been setted local size = #set_cookie -- we can not set cookie like ngx.header['Set-Cookie'][3] = val -- so create a new table, copy all the values, and then set it back for i=1, size do t[i] = ngx_header['Set-Cookie'][i] if t[i] == cookie_str then -- new cookie is duplicated return true end end t[size + 1] = cookie_str ngx_header['Set-Cookie'] = t else -- no cookie has been setted ngx_header['Set-Cookie'] = cookie_str end return true end return _M PK=½N]z¶¤�¯H¯Hresty/lrucache/pureffi.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) -- Copyright (C) Shuxin Yang --[[ This module implements a key/value cache store. We adopt LRU as our replace/evict policy. Each key/value pair is tagged with a Time-to-Live (TTL); from user's perspective, stale pairs are automatically removed from the cache. Why FFI ------- In Lua, expression "table[key] = nil" does not *PHYSICALLY* remove the value associated with the key; it just set the value to be nil! So the table will keep growing with large number of the key/nil pairs which will be purged until resize() operator is called. This "feature" is terribly ill-suited to what we need. Therefore we have to rely on FFI to build a hash-table where any entry can be physically deleted immediately. Under the hood: -------------- In concept, we introduce three data structures to implement the cache store: 1. key/value vector for storing keys and values. 2. a queue to mimic the LRU. 3. hash-table for looking up the value for a given key. Unfortunately, efficiency and clarity usually come at each other cost. The data strucutres we are using are slightly more complicated than what we described above. o. Lua does not have efficient way to store a vector of pair. So, we use two vectors for key/value pair: one for keys and the other for values (_M.key_v and _M.val_v, respectively), and i-th key corresponds to i-th value. A key/value pair is identified by the "id" field in a "node" (we shall discuss node later) o. The queue is nothing more than a doubly-linked list of "node" linked via lrucache_pureffi_queue_s::{next|prev} fields. o. The hash-table has two parts: - the _M.bucket_v[] a vector of bucket, indiced by hash-value, and - a bucket is a singly-linked list of "node" via the lrucache_pureffi_queue_s::conflict field. A key must be a string, and the hash value of a key is evaluated by: crc32(key-cast-to-pointer) % size(_M.bucket_v). We mandate size(_M.bucket_v) being a power-of-two in order to avoid expensive modulo operation. At the heart of the module is an array of "node" (of type lrucache_pureffi_queue_s). A node: - keeps the meta-data of its corresponding key/value pair (embodied by the "id", and "expire" field); - is a part of LRU queue (embodied by "prev" and "next" fields); - is a part of hash-table (embodied by the "conflict" field). ]] local ffi = require "ffi" local bit = require "bit" local ffi_new = ffi.new local ffi_sizeof = ffi.sizeof local ffi_cast = ffi.cast local ffi_fill = ffi.fill local ngx_now = ngx.now local uintptr_t = ffi.typeof("uintptr_t") local c_str_t = ffi.typeof("const char*") local int_t = ffi.typeof("int") local int_array_t = ffi.typeof("int[?]") local crc_tab = ffi.new("const unsigned int[256]", { 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D }); local setmetatable = setmetatable local tonumber = tonumber local tostring = tostring local type = type local brshift = bit.rshift local bxor = bit.bxor local band = bit.band local new_tab do local ok ok, new_tab = pcall(require, "table.new") if not ok then new_tab = function(narr, nrec) return {} end end end -- queue data types -- -- this queue is a double-ended queue and the first node -- is reserved for the queue itself. -- the implementation is mostly borrowed from nginx's ngx_queue_t data -- structure. ffi.cdef[[ /* A lrucache_pureffi_queue_s node hook together three data structures: * o. the key/value store as embodied by the "id" (which is in essence the * indentifier of key/pair pair) and the "expire" (which is a metadata * of the corresponding key/pair pair). * o. The LRU queue via the prev/next fields. * o. The hash-tabble as embodied by the "conflict" field. */ typedef struct lrucache_pureffi_queue_s lrucache_pureffi_queue_t; struct lrucache_pureffi_queue_s { /* Each node is assigned a unique ID at construction time, and the * ID remain immutatble, regardless the node is in active-list or * free-list. The queue header is assigned ID 0. Since queue-header * is a sentinel node, 0 denodes "invalid ID". * * Intuitively, we can view the "id" as the identifier of key/value * pair. */ int id; /* The bucket of the hash-table is implemented as a singly-linked list. * The "conflict" refers to the ID of the next node in the bucket. */ int conflict; uint32_t user_flags; double expire; /* in seconds */ lrucache_pureffi_queue_t *prev; lrucache_pureffi_queue_t *next; }; ]] local queue_arr_type = ffi.typeof("lrucache_pureffi_queue_t[?]") --local queue_ptr_type = ffi.typeof("lrucache_pureffi_queue_t*") local queue_type = ffi.typeof("lrucache_pureffi_queue_t") local NULL = ffi.null --======================================================================== -- -- Queue utility functions -- --======================================================================== -- Append the element "x" to the given queue "h". local function queue_insert_tail(h, x) local last = h[0].prev x.prev = last last.next = x x.next = h h[0].prev = x end --[[ Allocate a queue with size + 1 elements. Elements are linked together in a circular way, i.e. the last element's "next" points to the first element, while the first element's "prev" element points to the last element. ]] local function queue_init(size) if not size then size = 0 end local q = ffi_new(queue_arr_type, size + 1) ffi_fill(q, ffi_sizeof(queue_type, size + 1), 0) if size == 0 then q[0].prev = q q[0].next = q else local prev = q[0] for i = 1, size do local e = q[i] e.id = i e.user_flags = 0 prev.next = e e.prev = prev prev = e end local last = q[size] last.next = q q[0].prev = last end return q end local function queue_is_empty(q) -- print("q: ", tostring(q), "q.prev: ", tostring(q), ": ", q == q.prev) return q == q[0].prev end local function queue_remove(x) local prev = x.prev local next = x.next next.prev = prev prev.next = next -- for debugging purpose only: x.prev = NULL x.next = NULL end -- Insert the element "x" the to the given queue "h" local function queue_insert_head(h, x) x.next = h[0].next x.next.prev = x x.prev = h h[0].next = x end local function queue_last(h) return h[0].prev end local function queue_head(h) return h[0].next end --======================================================================== -- -- Miscellaneous Utility Functions -- --======================================================================== local function ptr2num(ptr) return tonumber(ffi_cast(uintptr_t, ptr)) end local function crc32_ptr(ptr) local p = brshift(ptr2num(ptr), 3) local b = band(p, 255) local crc32 = crc_tab[b] b = band(brshift(p, 8), 255) crc32 = bxor(brshift(crc32, 8), crc_tab[band(bxor(crc32, b), 255)]) b = band(brshift(p, 16), 255) crc32 = bxor(brshift(crc32, 8), crc_tab[band(bxor(crc32, b), 255)]) --b = band(brshift(p, 24), 255) --crc32 = bxor(brshift(crc32, 8), crc_tab[band(bxor(crc32, b), 255)]) return crc32 end --======================================================================== -- -- Implementation of "export" functions -- --======================================================================== local _M = { _VERSION = '0.13' } local mt = { __index = _M } -- "size" specifies the maximum number of entries in the LRU queue, and the -- "load_factor" designates the 'load factor' of the hash-table we are using -- internally. The default value of load-factor is 0.5 (i.e. 50%); if the -- load-factor is specified, it will be clamped to the range of [0.1, 1](i.e. -- if load-factor is greater than 1, it will be saturated to 1, likewise, -- if load-factor is smaller than 0.1, it will be clamped to 0.1). function _M.new(size, load_factor) if size < 1 then return nil, "size too small" end -- Determine bucket size, which must be power of two. local load_f = load_factor if not load_factor then load_f = 0.5 elseif load_factor > 1 then load_f = 1 elseif load_factor < 0.1 then load_f = 0.1 end local bs_min = size / load_f -- The bucket_sz *MUST* be a power-of-two. See the hash_string(). local bucket_sz = 1 repeat bucket_sz = bucket_sz * 2 until bucket_sz >= bs_min local self = { size = size, bucket_sz = bucket_sz, free_queue = queue_init(size), cache_queue = queue_init(0), node_v = nil, key_v = new_tab(size, 0), val_v = new_tab(size, 0), bucket_v = ffi_new(int_array_t, bucket_sz), num_items = 0, } -- "node_v" is an array of all the nodes used in the LRU queue. Exprpession -- node_v[i] evaluates to the element of ID "i". self.node_v = self.free_queue -- Allocate the array-part of the key_v, val_v, bucket_v. --local key_v = self.key_v --local val_v = self.val_v --local bucket_v = self.bucket_v ffi_fill(self.bucket_v, ffi_sizeof(int_t, bucket_sz), 0) return setmetatable(self, mt) end function _M.count(self) return self.num_items end function _M.capacity(self) return self.size end local function hash_string(self, str) local c_str = ffi_cast(c_str_t, str) local hv = crc32_ptr(c_str) hv = band(hv, self.bucket_sz - 1) -- Hint: bucket is 0-based return hv end -- Search the node associated with the key in the bucket, if found returns -- the the id of the node, and the id of its previous node in the conflict list. -- The "bucket_hdr_id" is the ID of the first node in the bucket local function _find_node_in_bucket(key, key_v, node_v, bucket_hdr_id) if bucket_hdr_id ~= 0 then local prev = 0 local cur = bucket_hdr_id while cur ~= 0 and key_v[cur] ~= key do prev = cur cur = node_v[cur].conflict end if cur ~= 0 then return cur, prev end end end -- Return the node corresponding to the key/val. local function find_key(self, key) local key_hash = hash_string(self, key) return _find_node_in_bucket(key, self.key_v, self.node_v, self.bucket_v[key_hash]) end --[[ This function tries to 1. Remove the given key and the associated value from the key/value store, 2. Remove the entry associated with the key from the hash-table. NOTE: all queues remain intact. If there was a node bound to the key/val, return that node; otherwise, nil is returned. ]] local function remove_key(self, key) local key_v = self.key_v local val_v = self.val_v local node_v = self.node_v local bucket_v = self.bucket_v local key_hash = hash_string(self, key) local cur, prev = _find_node_in_bucket(key, key_v, node_v, bucket_v[key_hash]) if cur then -- In an attempt to make key and val dead. key_v[cur] = nil val_v[cur] = nil self.num_items = self.num_items - 1 -- Remove the node from the hash table local next_node = node_v[cur].conflict if prev ~= 0 then node_v[prev].conflict = next_node else bucket_v[key_hash] = next_node end node_v[cur].conflict = 0 return cur end end --[[ Bind the key/val with the given node, and insert the node into the Hashtab. NOTE: this function does not touch any queue ]] local function insert_key(self, key, val, node) -- Bind the key/val with the node local node_id = node.id self.key_v[node_id] = key self.val_v[node_id] = val -- Insert the node into the hash-table local key_hash = hash_string(self, key) local bucket_v = self.bucket_v node.conflict = bucket_v[key_hash] bucket_v[key_hash] = node_id self.num_items = self.num_items + 1 end function _M.get(self, key) if type(key) ~= "string" then key = tostring(key) end local node_id = find_key(self, key) if not node_id then return nil end -- print(key, ": moving node ", tostring(node), " to cache queue head") local cache_queue = self.cache_queue local node = self.node_v + node_id queue_remove(node) queue_insert_head(cache_queue, node) local expire = node.expire if expire >= 0 and expire < ngx_now() then -- print("expired: ", node.expire, " > ", ngx_now()) return nil, self.val_v[node_id], node.user_flags end return self.val_v[node_id], nil, node.user_flags end function _M.delete(self, key) if type(key) ~= "string" then key = tostring(key) end local node_id = remove_key(self, key); if not node_id then return false end local node = self.node_v + node_id queue_remove(node) queue_insert_tail(self.free_queue, node) return true end function _M.set(self, key, value, ttl, flags) if type(key) ~= "string" then key = tostring(key) end local node_id = find_key(self, key) local node if not node_id then local free_queue = self.free_queue if queue_is_empty(free_queue) then -- evict the least recently used key -- assert(not queue_is_empty(self.cache_queue)) node = queue_last(self.cache_queue) remove_key(self, self.key_v[node.id]) else -- take a free queue node node = queue_head(free_queue) -- print(key, ": get a new free node: ", tostring(node)) end -- insert the key insert_key(self, key, value, node) else node = self.node_v + node_id self.val_v[node_id] = value end queue_remove(node) queue_insert_head(self.cache_queue, node) if ttl then node.expire = ngx_now() + ttl else node.expire = -1 end if type(flags) == "number" and flags >= 0 then node.user_flags = flags else node.user_flags = 0 end end function _M.get_keys(self, max_count, res) if not max_count or max_count == 0 then max_count = self.num_items end if not res then res = new_tab(max_count + 1, 0) -- + 1 for trailing hole end local cache_queue = self.cache_queue local key_v = self.key_v local i = 0 local node = queue_head(cache_queue) while node ~= cache_queue do if i >= max_count then break end i = i + 1 res[i] = key_v[node.id] node = node.next end res[i + 1] = nil return res end function _M.flush_all(self) local cache_queue = self.cache_queue local key_v = self.key_v local node = queue_head(cache_queue) while node ~= cache_queue do local key = key_v[node.id] node = node.next _M.delete(self, key) end end return _M PK=½N]˜NüÔösösresty/http.luanu„[µü¤local http_headers = require "resty.http_headers" local ngx = ngx local ngx_socket_tcp = ngx.socket.tcp local ngx_req = ngx.req local ngx_req_socket = ngx_req.socket local ngx_req_get_headers = ngx_req.get_headers local ngx_req_get_method = ngx_req.get_method local str_gmatch = string.gmatch local str_lower = string.lower local str_upper = string.upper local str_find = string.find local str_sub = string.sub local tbl_concat = table.concat local tbl_insert = table.insert local ngx_encode_args = ngx.encode_args local ngx_re_match = ngx.re.match local ngx_re_gmatch = ngx.re.gmatch local ngx_re_sub = ngx.re.sub local ngx_re_gsub = ngx.re.gsub local ngx_re_find = ngx.re.find local ngx_log = ngx.log local ngx_DEBUG = ngx.DEBUG local ngx_ERR = ngx.ERR local ngx_var = ngx.var local ngx_print = ngx.print local ngx_header = ngx.header local co_yield = coroutine.yield local co_create = coroutine.create local co_status = coroutine.status local co_resume = coroutine.resume local setmetatable = setmetatable local tonumber = tonumber local tostring = tostring local unpack = unpack local rawget = rawget local select = select local ipairs = ipairs local pairs = pairs local pcall = pcall local type = type -- http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.5.1 local HOP_BY_HOP_HEADERS = { ["connection"] = true, ["keep-alive"] = true, ["proxy-authenticate"] = true, ["proxy-authorization"] = true, ["te"] = true, ["trailers"] = true, ["transfer-encoding"] = true, ["upgrade"] = true, ["content-length"] = true, -- Not strictly hop-by-hop, but Nginx will deal -- with this (may send chunked for example). } -- Reimplemented coroutine.wrap, returning "nil, err" if the coroutine cannot -- be resumed. This protects user code from inifite loops when doing things like -- repeat -- local chunk, err = res.body_reader() -- if chunk then -- <-- This could be a string msg in the core wrap function. -- ... -- end -- until not chunk local co_wrap = function(func) local co = co_create(func) if not co then return nil, "could not create coroutine" else return function(...) if co_status(co) == "suspended" then return select(2, co_resume(co, ...)) else return nil, "can't resume a " .. co_status(co) .. " coroutine" end end end end -- Returns a new table, recursively copied from the one given. -- -- @param table table to be copied -- @return table local function tbl_copy(orig) local orig_type = type(orig) local copy if orig_type == "table" then copy = {} for orig_key, orig_value in next, orig, nil do copy[tbl_copy(orig_key)] = tbl_copy(orig_value) end else -- number, string, boolean, etc copy = orig end return copy end local _M = { _VERSION = '0.12', } _M._USER_AGENT = "lua-resty-http/" .. _M._VERSION .. " (Lua) ngx_lua/" .. ngx.config.ngx_lua_version local mt = { __index = _M } local HTTP = { [1.0] = " HTTP/1.0\r\n", [1.1] = " HTTP/1.1\r\n", } local DEFAULT_PARAMS = { method = "GET", path = "/", version = 1.1, } function _M.new(self) local sock, err = ngx_socket_tcp() if not sock then return nil, err end return setmetatable({ sock = sock, keepalive = true }, mt) end function _M.set_timeout(self, timeout) local sock = self.sock if not sock then return nil, "not initialized" end return sock:settimeout(timeout) end function _M.set_timeouts(self, connect_timeout, send_timeout, read_timeout) local sock = self.sock if not sock then return nil, "not initialized" end return sock:settimeouts(connect_timeout, send_timeout, read_timeout) end function _M.ssl_handshake(self, ...) local sock = self.sock if not sock then return nil, "not initialized" end self.ssl = true return sock:sslhandshake(...) end function _M.connect(self, ...) local sock = self.sock if not sock then return nil, "not initialized" end self.host = select(1, ...) self.port = select(2, ...) -- If port is not a number, this is likely a unix domain socket connection. if type(self.port) ~= "number" then self.port = nil end self.keepalive = true return sock:connect(...) end function _M.set_keepalive(self, ...) local sock = self.sock if not sock then return nil, "not initialized" end if self.keepalive == true then return sock:setkeepalive(...) else -- The server said we must close the connection, so we cannot setkeepalive. -- If close() succeeds we return 2 instead of 1, to differentiate between -- a normal setkeepalive() failure and an intentional close(). local res, err = sock:close() if res then return 2, "connection must be closed" else return res, err end end end function _M.get_reused_times(self) local sock = self.sock if not sock then return nil, "not initialized" end return sock:getreusedtimes() end function _M.close(self) local sock = self.sock if not sock then return nil, "not initialized" end return sock:close() end local function _should_receive_body(method, code) if method == "HEAD" then return nil end if code == 204 or code == 304 then return nil end if code >= 100 and code < 200 then return nil end return true end function _M.parse_uri(self, uri, query_in_path) if query_in_path == nil then query_in_path = true end local m, err = ngx_re_match(uri, [[^(?:(http[s]?):)?//([^:/\?]+)(?::(\d+))?([^\?]*)\??(.*)]], "jo") if not m then if err then return nil, "failed to match the uri: " .. uri .. ", " .. err end return nil, "bad uri: " .. uri else -- If the URI is schemaless (i.e. //example.com) try to use our current -- request scheme. if not m[1] then local scheme = ngx_var.scheme if scheme == "http" or scheme == "https" then m[1] = scheme else return nil, "schemaless URIs require a request context: " .. uri end end if m[3] then m[3] = tonumber(m[3]) else if m[1] == "https" then m[3] = 443 else m[3] = 80 end end if not m[4] or "" == m[4] then m[4] = "/" end if query_in_path and m[5] and m[5] ~= "" then m[4] = m[4] .. "?" .. m[5] m[5] = nil end return m, nil end end local function _format_request(params) local version = params.version local headers = params.headers or {} local query = params.query or "" if type(query) == "table" then query = "?" .. ngx_encode_args(query) elseif query ~= "" and str_sub(query, 1, 1) ~= "?" then query = "?" .. query end -- Initialize request local req = { str_upper(params.method), " ", params.path, query, HTTP[version], -- Pre-allocate slots for minimum headers and carriage return. true, true, true, } local c = 6 -- req table index it's faster to do this inline vs table.insert -- Append headers for key, values in pairs(headers) do if type(values) ~= "table" then values = {values} end key = tostring(key) for _, value in pairs(values) do req[c] = key .. ": " .. tostring(value) .. "\r\n" c = c + 1 end end -- Close headers req[c] = "\r\n" return tbl_concat(req) end local function _receive_status(sock) local line, err = sock:receive("*l") if not line then return nil, nil, nil, err end return tonumber(str_sub(line, 10, 12)), tonumber(str_sub(line, 6, 8)), str_sub(line, 14) end local function _receive_headers(sock) local headers = http_headers.new() repeat local line, err = sock:receive("*l") if not line then return nil, err end local m, err = ngx_re_match(line, "([^:\\s]+):\\s*(.+)", "jo") if not m then break end local key = m[1] local val = m[2] if headers[key] then if type(headers[key]) ~= "table" then headers[key] = { headers[key] } end tbl_insert(headers[key], tostring(val)) else headers[key] = tostring(val) end until ngx_re_find(line, "^\\s*$", "jo") return headers, nil end local function _chunked_body_reader(sock, default_chunk_size) return co_wrap(function(max_chunk_size) local remaining = 0 local length max_chunk_size = max_chunk_size or default_chunk_size repeat -- If we still have data on this chunk if max_chunk_size and remaining > 0 then if remaining > max_chunk_size then -- Consume up to max_chunk_size length = max_chunk_size remaining = remaining - max_chunk_size else -- Consume all remaining length = remaining remaining = 0 end else -- This is a fresh chunk -- Receive the chunk size local str, err = sock:receive("*l") if not str then co_yield(nil, err) end length = tonumber(str, 16) if not length then co_yield(nil, "unable to read chunksize") end if max_chunk_size and length > max_chunk_size then -- Consume up to max_chunk_size remaining = length - max_chunk_size length = max_chunk_size end end if length > 0 then local str, err = sock:receive(length) if not str then co_yield(nil, err) end max_chunk_size = co_yield(str) or default_chunk_size -- If we're finished with this chunk, read the carriage return. if remaining == 0 then sock:receive(2) -- read \r\n end else -- Read the last (zero length) chunk's carriage return sock:receive(2) -- read \r\n end until length == 0 end) end local function _body_reader(sock, content_length, default_chunk_size) return co_wrap(function(max_chunk_size) max_chunk_size = max_chunk_size or default_chunk_size if not content_length and max_chunk_size then -- We have no length, but wish to stream. -- HTTP 1.0 with no length will close connection, so read chunks to the end. repeat local str, err, partial = sock:receive(max_chunk_size) if not str and err == "closed" then co_yield(partial, err) end max_chunk_size = tonumber(co_yield(str) or default_chunk_size) if max_chunk_size and max_chunk_size < 0 then max_chunk_size = nil end if not max_chunk_size then ngx_log(ngx_ERR, "Buffer size not specified, bailing") break end until not str elseif not content_length then -- We have no length but don't wish to stream. -- HTTP 1.0 with no length will close connection, so read to the end. co_yield(sock:receive("*a")) elseif not max_chunk_size then -- We have a length and potentially keep-alive, but want everything. co_yield(sock:receive(content_length)) else -- We have a length and potentially a keep-alive, and wish to stream -- the response. local received = 0 repeat local length = max_chunk_size if received + length > content_length then length = content_length - received end if length > 0 then local str, err = sock:receive(length) if not str then co_yield(nil, err) end received = received + length max_chunk_size = tonumber(co_yield(str) or default_chunk_size) if max_chunk_size and max_chunk_size < 0 then max_chunk_size = nil end if not max_chunk_size then ngx_log(ngx_ERR, "Buffer size not specified, bailing") break end end until length == 0 end end) end local function _no_body_reader() return nil end local function _read_body(res) local reader = res.body_reader if not reader then -- Most likely HEAD or 304 etc. return nil, "no body to be read" end local chunks = {} local c = 1 local chunk, err repeat chunk, err = reader() if err then return nil, err, tbl_concat(chunks) -- Return any data so far. end if chunk then chunks[c] = chunk c = c + 1 end until not chunk return tbl_concat(chunks) end local function _trailer_reader(sock) return co_wrap(function() co_yield(_receive_headers(sock)) end) end local function _read_trailers(res) local reader = res.trailer_reader if not reader then return nil, "no trailers" end local trailers = reader() setmetatable(res.headers, { __index = trailers }) end local function _send_body(sock, body) if type(body) == 'function' then repeat local chunk, err, partial = body() if chunk then local ok, err = sock:send(chunk) if not ok then return nil, err end elseif err ~= nil then return nil, err, partial end until chunk == nil elseif body ~= nil then local bytes, err = sock:send(body) if not bytes then return nil, err end end return true, nil end local function _handle_continue(sock, body) local status, version, reason, err = _receive_status(sock) if not status then return nil, nil, err end -- Only send body if we receive a 100 Continue if status == 100 then local ok, err = sock:receive("*l") -- Read carriage return if not ok then return nil, nil, err end _send_body(sock, body) end return status, version, err end function _M.send_request(self, params) -- Apply defaults setmetatable(params, { __index = DEFAULT_PARAMS }) local sock = self.sock local body = params.body local headers = http_headers.new() local params_headers = params.headers if params_headers then -- We assign one by one so that the metatable can handle case insensitivity -- for us. You can blame the spec for this inefficiency. for k,v in pairs(params_headers) do headers[k] = v end end -- Ensure minimal headers are set if type(body) == 'string' and not headers["Content-Length"] then headers["Content-Length"] = #body end if not headers["Host"] then if (str_sub(self.host, 1, 5) == "unix:") then return nil, "Unable to generate a useful Host header for a unix domain socket. Please provide one." end -- If we have a port (i.e. not connected to a unix domain socket), and this -- port is non-standard, append it to the Host heaer. if self.port then if self.ssl and self.port ~= 443 then headers["Host"] = self.host .. ":" .. self.port elseif not self.ssl and self.port ~= 80 then headers["Host"] = self.host .. ":" .. self.port else headers["Host"] = self.host end else headers["Host"] = self.host end end if not headers["User-Agent"] then headers["User-Agent"] = _M._USER_AGENT end if params.version == 1.0 and not headers["Connection"] then headers["Connection"] = "Keep-Alive" end params.headers = headers -- Format and send request local req = _format_request(params) ngx_log(ngx_DEBUG, "\n", req) local bytes, err = sock:send(req) if not bytes then return nil, err end -- Send the request body, unless we expect: continue, in which case -- we handle this as part of reading the response. if headers["Expect"] ~= "100-continue" then local ok, err, partial = _send_body(sock, body) if not ok then return nil, err, partial end end return true end function _M.read_response(self, params) local sock = self.sock local status, version, reason, err -- If we expect: continue, we need to handle this, sending the body if allowed. -- If we don't get 100 back, then status is the actual status. if params.headers["Expect"] == "100-continue" then local _status, _version, _err = _handle_continue(sock, params.body) if not _status then return nil, _err elseif _status ~= 100 then status, version, err = _status, _version, _err end end -- Just read the status as normal. if not status then status, version, reason, err = _receive_status(sock) if not status then return nil, err end end local res_headers, err = _receive_headers(sock) if not res_headers then return nil, err end -- keepalive is true by default. Determine if this is correct or not. local ok, connection = pcall(str_lower, res_headers["Connection"]) if ok then if (version == 1.1 and connection == "close") or (version == 1.0 and connection ~= "keep-alive") then self.keepalive = false end else -- no connection header if version == 1.0 then self.keepalive = false end end local body_reader = _no_body_reader local trailer_reader, err local has_body = false -- Receive the body_reader if _should_receive_body(params.method, status) then local ok, encoding = pcall(str_lower, res_headers["Transfer-Encoding"]) if ok and version == 1.1 and encoding == "chunked" then body_reader, err = _chunked_body_reader(sock) has_body = true else local ok, length = pcall(tonumber, res_headers["Content-Length"]) if ok then body_reader, err = _body_reader(sock, length) has_body = true end end end if res_headers["Trailer"] then trailer_reader, err = _trailer_reader(sock) end if err then return nil, err else return { status = status, reason = reason, headers = res_headers, has_body = has_body, body_reader = body_reader, read_body = _read_body, trailer_reader = trailer_reader, read_trailers = _read_trailers, } end end function _M.request(self, params) params = tbl_copy(params) -- Take by value local res, err = self:send_request(params) if not res then return res, err else return self:read_response(params) end end function _M.request_pipeline(self, requests) requests = tbl_copy(requests) -- Take by value for _, params in ipairs(requests) do if params.headers and params.headers["Expect"] == "100-continue" then return nil, "Cannot pipeline request specifying Expect: 100-continue" end local res, err = self:send_request(params) if not res then return res, err end end local responses = {} for i, params in ipairs(requests) do responses[i] = setmetatable({ params = params, response_read = false, }, { -- Read each actual response lazily, at the point the user tries -- to access any of the fields. __index = function(t, k) local res, err if t.response_read == false then res, err = _M.read_response(self, t.params) t.response_read = true if not res then ngx_log(ngx_ERR, err) else for rk, rv in pairs(res) do t[rk] = rv end end end return rawget(t, k) end, }) end return responses end function _M.request_uri(self, uri, params) params = tbl_copy(params or {}) -- Take by value local parsed_uri, err = self:parse_uri(uri, false) if not parsed_uri then return nil, err end local scheme, host, port, path, query = unpack(parsed_uri) if not params.path then params.path = path end if not params.query then params.query = query end -- See if we should use a proxy to make this request local proxy_uri = self:get_proxy_uri(scheme, host) -- Make the connection either through the proxy or directly -- to the remote host local c, err if proxy_uri then c, err = self:connect_proxy(proxy_uri, scheme, host, port) else c, err = self:connect(host, port) end if not c then return nil, err end if proxy_uri then if scheme == "http" then -- When a proxy is used, the target URI must be in absolute-form -- (RFC 7230, Section 5.3.2.). That is, it must be an absolute URI -- to the remote resource with the scheme, host and an optional port -- in place. -- -- Since _format_request() constructs the request line by concatenating -- params.path and params.query together, we need to modify the path -- to also include the scheme, host and port so that the final form -- in conformant to RFC 7230. if port == 80 then params.path = scheme .. "://" .. host .. path else params.path = scheme .. "://" .. host .. ":" .. port .. path end end if scheme == "https" then -- don't keep this connection alive as the next request could target -- any host and re-using the proxy tunnel for that is not possible self.keepalive = false end -- self:connect_uri() set the host and port to point to the proxy server. As -- the connection to the proxy has been established, set the host and port -- to point to the actual remote endpoint at the other end of the tunnel to -- ensure the correct Host header added to the requests. self.host = host self.port = port end if scheme == "https" then local verify = true if params.ssl_verify == false then verify = false end local ok, err = self:ssl_handshake(nil, host, verify) if not ok then return nil, err end end local res, err = self:request(params) if not res then return nil, err end local body, err = res:read_body() if not body then return nil, err end res.body = body local ok, err = self:set_keepalive() if not ok then ngx_log(ngx_ERR, err) end return res, nil end function _M.get_client_body_reader(self, chunksize, sock) chunksize = chunksize or 65536 if not sock then local ok, err ok, sock, err = pcall(ngx_req_socket) if not ok then return nil, sock -- pcall err end if not sock then if err == "no body" then return nil else return nil, err end end end local headers = ngx_req_get_headers() local length = headers.content_length local encoding = headers.transfer_encoding if length then return _body_reader(sock, tonumber(length), chunksize) elseif encoding and str_lower(encoding) == 'chunked' then -- Not yet supported by ngx_lua but should just work... return _chunked_body_reader(sock, chunksize) else return nil end end function _M.proxy_request(self, chunksize) return self:request{ method = ngx_req_get_method(), path = ngx_re_gsub(ngx_var.uri, "\\s", "%20", "jo") .. ngx_var.is_args .. (ngx_var.query_string or ""), body = self:get_client_body_reader(chunksize), headers = ngx_req_get_headers(), } end function _M.proxy_response(self, response, chunksize) if not response then ngx_log(ngx_ERR, "no response provided") return end ngx.status = response.status -- Filter out hop-by-hop headeres for k,v in pairs(response.headers) do if not HOP_BY_HOP_HEADERS[str_lower(k)] then ngx_header[k] = v end end local reader = response.body_reader repeat local chunk, err = reader(chunksize) if err then ngx_log(ngx_ERR, err) break end if chunk then local res, err = ngx_print(chunk) if not res then ngx_log(ngx_ERR, err) break end end until not chunk end function _M.set_proxy_options(self, opts) self.proxy_opts = tbl_copy(opts) -- Take by value end function _M.get_proxy_uri(self, scheme, host) if not self.proxy_opts then return nil end -- Check if the no_proxy option matches this host. Implementation adapted -- from lua-http library (https://github.com/daurnimator/lua-http) if self.proxy_opts.no_proxy then if self.proxy_opts.no_proxy == "*" then -- all hosts are excluded return nil end local no_proxy_set = {} -- wget allows domains in no_proxy list to be prefixed by "." -- e.g. no_proxy=.mit.edu for host_suffix in ngx_re_gmatch(self.proxy_opts.no_proxy, "\\.?([^,]+)") do no_proxy_set[host_suffix[1]] = true end -- From curl docs: -- matched as either a domain which contains the hostname, or the -- hostname itself. For example local.com would match local.com, -- local.com:80, and www.local.com, but not www.notlocal.com. -- -- Therefore, we keep stripping subdomains from the host, compare -- them to the ones in the no_proxy list and continue until we find -- a match or until there's only the TLD left repeat if no_proxy_set[host] then return nil end -- Strip the next level from the domain and check if that one -- is on the list host = ngx_re_sub(host, "^[^.]+\\.", "") until not ngx_re_find(host, "\\.") end if scheme == "http" and self.proxy_opts.http_proxy then return self.proxy_opts.http_proxy end if scheme == "https" and self.proxy_opts.https_proxy then return self.proxy_opts.https_proxy end return nil end function _M.connect_proxy(self, proxy_uri, scheme, host, port) -- Parse the provided proxy URI local parsed_proxy_uri, err = self:parse_uri(proxy_uri, false) if not parsed_proxy_uri then return nil, err end -- Check that the scheme is http (https is not supported for -- connections between the client and the proxy) local proxy_scheme = parsed_proxy_uri[1] if proxy_scheme ~= "http" then return nil, "protocol " .. proxy_scheme .. " not supported for proxy connections" end -- Make the connection to the given proxy local proxy_host, proxy_port = parsed_proxy_uri[2], parsed_proxy_uri[3] local c, err = self:connect(proxy_host, proxy_port) if not c then return nil, err end if scheme == "https" then -- Make a CONNECT request to create a tunnel to the destination through -- the proxy. The request-target and the Host header must be in the -- authority-form of RFC 7230 Section 5.3.3. See also RFC 7231 Section -- 4.3.6 for more details about the CONNECT request local destination = host .. ":" .. port local res, err = self:request({ method = "CONNECT", path = destination, headers = { ["Host"] = destination } }) if not res then return nil, err end if res.status < 200 or res.status > 299 then return nil, "failed to establish a tunnel through a proxy: " .. res.status end end return c, nil end return _M PK=½N]–¼ïÍÍresty/lrucache.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local ffi = require "ffi" local ffi_new = ffi.new local ffi_sizeof = ffi.sizeof local ffi_cast = ffi.cast local ffi_fill = ffi.fill local ngx_now = ngx.now local uintptr_t = ffi.typeof("uintptr_t") local setmetatable = setmetatable local tonumber = tonumber local type = type local new_tab do local ok ok, new_tab = pcall(require, "table.new") if not ok then new_tab = function(narr, nrec) return {} end end end if string.find(jit.version, " 2.0", 1, true) then ngx.log(ngx.ALERT, "use of lua-resty-lrucache with LuaJIT 2.0 is ", "not recommended; use LuaJIT 2.1+ instead") end local ok, tb_clear = pcall(require, "table.clear") if not ok then local pairs = pairs tb_clear = function (tab) for k, _ in pairs(tab) do tab[k] = nil end end end -- queue data types -- -- this queue is a double-ended queue and the first node -- is reserved for the queue itself. -- the implementation is mostly borrowed from nginx's ngx_queue_t data -- structure. ffi.cdef[[ typedef struct lrucache_queue_s lrucache_queue_t; struct lrucache_queue_s { double expire; /* in seconds */ lrucache_queue_t *prev; lrucache_queue_t *next; uint32_t user_flags; }; ]] local queue_arr_type = ffi.typeof("lrucache_queue_t[?]") local queue_type = ffi.typeof("lrucache_queue_t") local NULL = ffi.null -- queue utility functions local function queue_insert_tail(h, x) local last = h[0].prev x.prev = last last.next = x x.next = h h[0].prev = x end local function queue_init(size) if not size then size = 0 end local q = ffi_new(queue_arr_type, size + 1) ffi_fill(q, ffi_sizeof(queue_type, size + 1), 0) if size == 0 then q[0].prev = q q[0].next = q else local prev = q[0] for i = 1, size do local e = q + i e.user_flags = 0 prev.next = e e.prev = prev prev = e end local last = q[size] last.next = q q[0].prev = last end return q end local function queue_is_empty(q) -- print("q: ", tostring(q), "q.prev: ", tostring(q), ": ", q == q.prev) return q == q[0].prev end local function queue_remove(x) local prev = x.prev local next = x.next next.prev = prev prev.next = next -- for debugging purpose only: x.prev = NULL x.next = NULL end local function queue_insert_head(h, x) x.next = h[0].next x.next.prev = x x.prev = h h[0].next = x end local function queue_last(h) return h[0].prev end local function queue_head(h) return h[0].next end -- true module stuffs local _M = { _VERSION = '0.14' } local mt = { __index = _M } local function ptr2num(ptr) local v = tonumber(ffi_cast(uintptr_t, ptr)) return v end function _M.new(size) if size < 1 then return nil, "size too small" end local self = { hasht = {}, free_queue = queue_init(size), cache_queue = queue_init(), key2node = {}, node2key = {}, num_items = 0, max_items = size, } setmetatable(self, mt) return self end function _M.count(self) return self.num_items end function _M.capacity(self) return self.max_items end function _M.get(self, key) local hasht = self.hasht local val = hasht[key] if val == nil then return nil end local node = self.key2node[key] -- print(key, ": moving node ", tostring(node), " to cache queue head") local cache_queue = self.cache_queue queue_remove(node) queue_insert_head(cache_queue, node) if node.expire >= 0 and node.expire < ngx_now() then -- print("expired: ", node.expire, " > ", ngx_now()) return nil, val, node.user_flags end return val, nil, node.user_flags end function _M.delete(self, key) self.hasht[key] = nil local key2node = self.key2node local node = key2node[key] if not node then return false end key2node[key] = nil self.node2key[ptr2num(node)] = nil queue_remove(node) queue_insert_tail(self.free_queue, node) self.num_items = self.num_items - 1 return true end function _M.set(self, key, value, ttl, flags) local hasht = self.hasht hasht[key] = value local key2node = self.key2node local node = key2node[key] if not node then local free_queue = self.free_queue local node2key = self.node2key if queue_is_empty(free_queue) then -- evict the least recently used key -- assert(not queue_is_empty(self.cache_queue)) node = queue_last(self.cache_queue) local oldkey = node2key[ptr2num(node)] -- print(key, ": evicting oldkey: ", oldkey, ", oldnode: ", -- tostring(node)) if oldkey then hasht[oldkey] = nil key2node[oldkey] = nil end else -- take a free queue node node = queue_head(free_queue) -- only add count if we are not evicting self.num_items = self.num_items + 1 -- print(key, ": get a new free node: ", tostring(node)) end node2key[ptr2num(node)] = key key2node[key] = node end queue_remove(node) queue_insert_head(self.cache_queue, node) if ttl then node.expire = ngx_now() + ttl else node.expire = -1 end if type(flags) == "number" and flags >= 0 then node.user_flags = flags else node.user_flags = 0 end end function _M.get_keys(self, max_count, res) if not max_count or max_count == 0 then max_count = self.num_items end if not res then res = new_tab(max_count + 1, 0) -- + 1 for trailing hole end local cache_queue = self.cache_queue local node2key = self.node2key local i = 0 local node = queue_head(cache_queue) while node ~= cache_queue do if i >= max_count then break end i = i + 1 res[i] = node2key[ptr2num(node)] node = node.next end res[i + 1] = nil return res end function _M.flush_all(self) tb_clear(self.hasht) tb_clear(self.node2key) tb_clear(self.key2node) self.num_items = 0 local cache_queue = self.cache_queue local free_queue = self.free_queue -- splice the cache_queue into free_queue if not queue_is_empty(cache_queue) then local free_head = free_queue[0] local free_last = free_head.prev local cache_head = cache_queue[0] local cache_first = cache_head.next local cache_last = cache_head.prev free_last.next = cache_first cache_first.prev = free_last cache_last.next = free_head free_head.prev = cache_last cache_head.next = cache_queue cache_head.prev = cache_queue end end return _M PK=½N]ÞlåqÁÁresty/core.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local subsystem = ngx.config.subsystem require "resty.core.var" require "resty.core.worker" require "resty.core.regex" require "resty.core.shdict" require "resty.core.time" require "resty.core.hash" require "resty.core.uri" require "resty.core.exit" require "resty.core.base64" require "resty.core.request" if subsystem == 'http' then require "resty.core.response" require "resty.core.phase" require "resty.core.ndk" require "resty.core.coroutine" require "resty.core.param" end require "resty.core.socket" require "resty.core.misc" require "resty.core.ctx" local base = require "resty.core.base" return { version = base.version } PK=½N]¤‚‚66 resty/rsa.luanu„[µü¤-- Copyright (C) by Zhu Dejiang (doujiang24) -- Copyright (C) by Zexuan Luo (spacewander) local bit = require "bit" local band = bit.band local ffi = require "ffi" local ffi_new = ffi.new local ffi_gc = ffi.gc local ffi_copy = ffi.copy local ffi_str = ffi.string local C = ffi.C local tab_concat = table.concat local setmetatable = setmetatable local _M = { _VERSION = '1.1.0' } local mt = { __index = _M } local PADDING = { RSA_PKCS1_PADDING = 1, RSA_NO_PADDING = 3, RSA_PKCS1_OAEP_PADDING = 4, } _M.PADDING = PADDING local KEY_TYPE = { PKCS1 = "PKCS#1", PKCS8 = "PKCS#8", PKIX = "PKIX", } local PKCS1_PREFIX = "-----BEGIN RSA " _M.KEY_TYPE = KEY_TYPE ffi.cdef[[ int memcmp(const void *s1, const void *s2, size_t n); typedef struct bio_st BIO; typedef struct bio_method_st BIO_METHOD; BIO_METHOD *BIO_s_mem(void); BIO * BIO_new(BIO_METHOD *type); int BIO_puts(BIO *bp, const char *buf); void BIO_vfree(BIO *a); typedef struct rsa_st RSA; RSA *RSA_new(void); void RSA_free(RSA *rsa); typedef int pem_password_cb(char *buf, int size, int rwflag, void *userdata); RSA * PEM_read_bio_RSAPrivateKey(BIO *bp, RSA **rsa, pem_password_cb *cb, void *u); RSA * PEM_read_bio_RSAPublicKey(BIO *bp, RSA **rsa, pem_password_cb *cb, void *u); RSA * PEM_read_bio_RSA_PUBKEY(BIO *bp, RSA **rsa, pem_password_cb *cb, void *u); unsigned long ERR_get_error_line_data(const char **file, int *line, const char **data, int *flags); const char * ERR_reason_error_string(unsigned long e); typedef struct bignum_st BIGNUM; BIGNUM *BN_new(void); void BN_free(BIGNUM *a); typedef unsigned long BN_ULONG; int BN_set_word(BIGNUM *a, BN_ULONG w); typedef struct bn_gencb_st BN_GENCB; int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); typedef struct evp_cipher_st EVP_CIPHER; int PEM_write_bio_RSAPrivateKey(BIO *bp, RSA *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); int PEM_write_bio_RSAPublicKey(BIO *bp, RSA *x); int PEM_write_bio_RSA_PUBKEY(BIO *bp, RSA *x); long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); int BIO_read(BIO *b, void *data, int len); typedef struct evp_pkey_st EVP_PKEY; typedef struct engine_st ENGINE; typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; EVP_PKEY *EVP_PKEY_new(void); void EVP_PKEY_free(EVP_PKEY *key); EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, int cmd, int p1, void *p2); int EVP_PKEY_size(EVP_PKEY *pkey); int EVP_PKEY_get_size(EVP_PKEY *pkey); int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, const unsigned char *in, size_t inlen); int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, const unsigned char *in, size_t inlen); int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key); int PEM_write_bio_PKCS8PrivateKey(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, char *kstr, int klen, pem_password_cb *cb, void *u); void OpenSSL_add_all_digests(void); typedef struct env_md_st EVP_MD; typedef struct env_md_ctx_st EVP_MD_CTX; const EVP_MD *EVP_get_digestbyname(const char *name); /* EVP_MD_CTX methods for OpenSSL < 1.1.0 */ EVP_MD_CTX *EVP_MD_CTX_create(void); void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx); /* EVP_MD_CTX methods for OpenSSL >= 1.1.0 */ EVP_MD_CTX *EVP_MD_CTX_new(void); void EVP_MD_CTX_free(EVP_MD_CTX *ctx); int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); int EVP_DigestUpdate(EVP_MD_CTX *ctx, const unsigned char *in, int inl); int EVP_SignFinal(EVP_MD_CTX *ctx,unsigned char *sig,unsigned int *s, EVP_PKEY *pkey); int EVP_VerifyFinal(EVP_MD_CTX *ctx,unsigned char *sigbuf, unsigned int siglen, EVP_PKEY *pkey); int EVP_PKEY_set1_RSA(EVP_PKEY *e, RSA *r); void ERR_set_error_data(char *data, int flags); ]] --[[ # define EVP_PKEY_CTX_set_rsa_padding(ctx, pad) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, EVP_PKEY_CTRL_RSA_PADDING, \ pad, NULL) # define EVP_SignInit(a,b) EVP_DigestInit(a,b) # define EVP_SignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) --]] local EVP_PKEY_ALG_CTRL = 0x1000 local EVP_PKEY_CTRL_RSA_PADDING = EVP_PKEY_ALG_CTRL + 1 local NID_rsaEncryption = 6 local EVP_PKEY_RSA = NID_rsaEncryption local ERR_TXT_STRING = 0x02 local evp_md_ctx_new local evp_md_ctx_free if not pcall(function () return C.EVP_MD_CTX_create end) then evp_md_ctx_new = C.EVP_MD_CTX_new evp_md_ctx_free = C.EVP_MD_CTX_free else evp_md_ctx_new = C.EVP_MD_CTX_create evp_md_ctx_free = C.EVP_MD_CTX_destroy end local evp_pkey_size if not pcall(function () return C.EVP_PKEY_size end) then evp_pkey_size = C.EVP_PKEY_get_size else evp_pkey_size = C.EVP_PKEY_size end local function ssl_err() local err_queue = {} local i = 1 local data = ffi_new("const char*[1]") local flags = ffi_new("int[1]") while true do local code = C.ERR_get_error_line_data(nil, nil, data, flags) if code == 0 then break end local err = C.ERR_reason_error_string(code) if err == nil then err_queue[i] = "unknown openssl error code: " .. code i = i + 1 else err_queue[i] = ffi_str(err) i = i + 1 if data[0] ~= nil and band(flags[0], ERR_TXT_STRING) > 0 then err_queue[i] = ffi_str(data[0]) i = i + 1 end end end if #err_queue == 0 then return nil, "internal error" end return nil, tab_concat(err_queue, ": ", 1, i - 1) end local function has_prefix(s, prefix) if type(s) ~= "string" or type(prefix) ~= "string" then return false end if #s < #prefix then return false end local rc = C.memcmp(s, prefix, #prefix) return rc == 0 end local function read_bio(bio) local BIO_CTRL_PENDING = 10 local keylen = C.BIO_ctrl(bio, BIO_CTRL_PENDING, 0, nil); local key = ffi.new("char[?]", keylen) if C.BIO_read(bio, key, keylen) < 0 then return ssl_err() end return ffi_str(key, keylen) end -- Follow the calling style to avoid careless mistake. function _M.generate_rsa_keys(_, bits, pkcs8) local rsa = C.RSA_new() if rsa == nil then return nil, ssl_err() end ffi_gc(rsa, C.RSA_free) local bn = C.BN_new() if bn == nil then return nil, ssl_err() end ffi_gc(bn, C.BN_free) -- Set public exponent to 65537 if C.BN_set_word(bn, 65537) ~= 1 then return nil, ssl_err() end -- Generate key if C.RSA_generate_key_ex(rsa, bits, bn, nil) ~= 1 then return nil, ssl_err() end local pub_key_bio = C.BIO_new(C.BIO_s_mem()) if pub_key_bio == nil then return nil, ssl_err() end ffi_gc(pub_key_bio, C.BIO_vfree) if pkcs8 == true then if C.PEM_write_bio_RSA_PUBKEY(pub_key_bio, rsa) ~= 1 then return nil, ssl_err() end else if C.PEM_write_bio_RSAPublicKey(pub_key_bio, rsa) ~= 1 then return nil, ssl_err() end end local public_key, err = read_bio(pub_key_bio) if not public_key then return nil, nil, err end local priv_key_bio = C.BIO_new(C.BIO_s_mem()) if priv_key_bio == nil then return nil, ssl_err() end ffi_gc(priv_key_bio, C.BIO_vfree) if pkcs8 == true then local pk = C.EVP_PKEY_new() if pk == nil then return nil, ssl_err() end ffi_gc(pk, C.EVP_PKEY_free) if C.EVP_PKEY_set1_RSA(pk,rsa) ~= 1 then return nil, ssl_err() end if C.PEM_write_bio_PKCS8PrivateKey(priv_key_bio, pk, nil, nil, 0, nil, nil) ~= 1 then return nil, ssl_err() end else if C.PEM_write_bio_RSAPrivateKey(priv_key_bio, rsa, nil, nil, 0, nil, nil) ~= 1 then return nil, ssl_err() end end local private_key private_key, err = read_bio(priv_key_bio) if not private_key then return nil, nil, err end return public_key, private_key end function _M.new(_, opts) local key, read_func, is_pub, md if opts.public_key then key = opts.public_key if opts.key_type == KEY_TYPE.PKIX or opts.key_type == KEY_TYPE.PKCS8 -- for compatible then read_func = C.PEM_read_bio_RSA_PUBKEY elseif opts.key_type == KEY_TYPE.PKCS1 then read_func = C.PEM_read_bio_RSAPublicKey else local is_pkcs1 = has_prefix(key, PKCS1_PREFIX) if is_pkcs1 then read_func = C.PEM_read_bio_RSAPublicKey else read_func = C.PEM_read_bio_RSA_PUBKEY end end is_pub = true elseif opts.private_key then key = opts.private_key read_func = C.PEM_read_bio_RSAPrivateKey else return nil, "public_key or private_key not found" end local bio_method = C.BIO_s_mem() local bio = C.BIO_new(bio_method) if bio == nil then return ssl_err() end ffi_gc(bio, C.BIO_vfree) local len = C.BIO_puts(bio, key) if len < 0 then return ssl_err() end local pass if opts.password then local plen = #opts.password pass = ffi_new("unsigned char[?]", plen + 1) ffi_copy(pass, opts.password, plen) end local rsa = read_func(bio, nil, nil, pass) if rsa == nil then return ssl_err() end ffi_gc(rsa, C.RSA_free) -- EVP_PKEY local pkey = C.EVP_PKEY_new() if pkey == nil then return ssl_err() end ffi_gc(pkey, C.EVP_PKEY_free) if C.EVP_PKEY_set1_RSA(pkey, rsa) == 0 then return ssl_err() end --EVP_PKEY_CTX local ctx = C.EVP_PKEY_CTX_new(pkey, nil) if ctx == nil then return ssl_err() end ffi_gc(ctx, C.EVP_PKEY_CTX_free) -- md_ctx init for sign or verify; if signature algorithm is seted if opts.algorithm then md = C.EVP_get_digestbyname(opts.algorithm) if md == nil then return nil, "Unknown message digest" end end -- ctx init for encrypt or decrypt -- default for encrypt/decrypt if nothing is set if opts.padding or not opts.digest then local init_func = is_pub and C.EVP_PKEY_encrypt_init or C.EVP_PKEY_decrypt_init if init_func(ctx) <= 0 then return ssl_err() end if C.EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, EVP_PKEY_CTRL_RSA_PADDING, opts.padding or PADDING.RSA_PKCS1_PADDING, nil) <= 0 then return ssl_err() end end local size = evp_pkey_size(pkey) return setmetatable({ pkey = pkey, size = size, buf = ffi_new("unsigned char[?]", size), _encrypt_ctx = is_pub and ctx or nil, _decrypt_ctx = not is_pub and ctx or nil, is_pub = is_pub, md = md, }, mt) end function _M.decrypt(self, str) local ctx = self._decrypt_ctx if not ctx then return nil, "not inited for decrypt" end local len = ffi_new("size_t [1]") if C.EVP_PKEY_decrypt(ctx, nil, len, str, #str) <= 0 then return ssl_err() end local buf = self.buf if C.EVP_PKEY_decrypt(ctx, buf, len, str, #str) <= 0 then return ssl_err() end return ffi_str(buf, len[0]) end function _M.encrypt(self, str) local ctx = self._encrypt_ctx if not ctx then return nil, "not inited for encrypt" end local len = ffi_new("size_t [1]") if C.EVP_PKEY_encrypt(ctx, nil, len, str, #str) <= 0 then return ssl_err() end local buf = self.buf if C.EVP_PKEY_encrypt(ctx, buf, len, str, #str) <= 0 then return ssl_err() end return ffi_str(buf, len[0]) end function _M.sign(self, str) if self.is_pub then return nil, "not inited for sign" end local md_ctx = evp_md_ctx_new() if md_ctx == nil then return ssl_err() end ffi_gc(md_ctx, evp_md_ctx_free) if C.EVP_DigestInit(md_ctx, self.md) <= 0 then return ssl_err() end if C.EVP_DigestUpdate(md_ctx, str, #str) <= 0 then return ssl_err() end local buf = self.buf local len = ffi_new("unsigned int[1]") if C.EVP_SignFinal(md_ctx, self.buf, len, self.pkey) <= 0 then return ssl_err() end return ffi_str(buf, len[0]) end function _M.verify(self, str, sig) if not self.is_pub then return nil, "not inited for verify" end local md_ctx = evp_md_ctx_new() if md_ctx == nil then return ssl_err() end ffi_gc(md_ctx, evp_md_ctx_free) if C.EVP_DigestInit(md_ctx, self.md) <= 0 then return ssl_err() end if C.EVP_DigestUpdate(md_ctx, str, #str) <= 0 then return ssl_err() end local siglen = #sig local buf = siglen <= self.size and self.buf or ffi_new("unsigned char[?]", siglen) ffi_copy(buf, sig, siglen) if C.EVP_VerifyFinal(md_ctx, buf, siglen, self.pkey) <= 0 then return ssl_err() end return true end return _M PK@½N]‹9=e~~resty/http_headers.luanu„[µü¤local rawget, rawset, setmetatable = rawget, rawset, setmetatable local str_lower = string.lower local _M = { _VERSION = '0.12', } -- Returns an empty headers table with internalised case normalisation. function _M.new() local mt = { normalised = {}, } mt.__index = function(t, k) return rawget(t, mt.normalised[str_lower(k)]) end mt.__newindex = function(t, k, v) local k_normalised = str_lower(k) -- First time seeing this header field? if not mt.normalised[k_normalised] then -- Create a lowercased entry in the metatable proxy, with the value -- of the given field case mt.normalised[k_normalised] = k -- Set the header using the given field case rawset(t, k, v) else -- We're being updated just with a different field case. Use the -- normalised metatable proxy to give us the original key case, and -- perorm a rawset() to update the value. rawset(t, mt.normalised[k_normalised], v) end end return setmetatable({}, mt) end return _M PK@½N]¾ƒûžSSresty/lock.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) require "resty.core.shdict" -- enforce this to avoid dead locks local ffi = require "ffi" local ffi_new = ffi.new local shared = ngx.shared local sleep = ngx.sleep local log = ngx.log local max = math.max local min = math.min local debug = ngx.config.debug local setmetatable = setmetatable local tonumber = tonumber local _M = { _VERSION = '0.08' } local mt = { __index = _M } local ERR = ngx.ERR local FREE_LIST_REF = 0 -- FIXME: we don't need this when we have __gc metamethod support on Lua -- tables. local memo = {} if debug then _M.memo = memo end local function ref_obj(key) if key == nil then return -1 end local ref = memo[FREE_LIST_REF] if ref and ref ~= 0 then memo[FREE_LIST_REF] = memo[ref] else ref = #memo + 1 end memo[ref] = key -- print("ref key_id returned ", ref) return ref end if debug then _M.ref_obj = ref_obj end local function unref_obj(ref) if ref >= 0 then memo[ref] = memo[FREE_LIST_REF] memo[FREE_LIST_REF] = ref end end if debug then _M.unref_obj = unref_obj end local function gc_lock(cdata) local dict_id = tonumber(cdata.dict_id) local key_id = tonumber(cdata.key_id) -- print("key_id: ", key_id, ", key: ", memo[key_id], "dict: ", -- type(memo[cdata.dict_id])) if key_id > 0 then local key = memo[key_id] unref_obj(key_id) local dict = memo[dict_id] -- print("dict.delete type: ", type(dict.delete)) local ok, err = dict:delete(key) if not ok then log(ERR, 'failed to delete key "', key, '": ', err) end cdata.key_id = 0 end unref_obj(dict_id) end local ctype = ffi.metatype("struct { int key_id; int dict_id; }", { __gc = gc_lock }) function _M.new(_, dict_name, opts) local dict = shared[dict_name] if not dict then return nil, "dictionary not found" end local cdata = ffi_new(ctype) cdata.key_id = 0 cdata.dict_id = ref_obj(dict) local timeout, exptime, step, ratio, max_step if opts then timeout = opts.timeout exptime = opts.exptime step = opts.step ratio = opts.ratio max_step = opts.max_step end if not exptime then exptime = 30 end if timeout then timeout = min(timeout, exptime) if step then step = min(step, timeout) end end local self = { cdata = cdata, dict = dict, timeout = timeout or 5, exptime = exptime, step = step or 0.001, ratio = ratio or 2, max_step = max_step or 0.5, } setmetatable(self, mt) return self end function _M.lock(self, key) if not key then return nil, "nil key" end local dict = self.dict local cdata = self.cdata if cdata.key_id > 0 then return nil, "locked" end local exptime = self.exptime local ok, err = dict:add(key, true, exptime) if ok then cdata.key_id = ref_obj(key) self.key = key return 0 end if err ~= "exists" then return nil, err end -- lock held by others local step = self.step local ratio = self.ratio local timeout = self.timeout local max_step = self.max_step local elapsed = 0 while timeout > 0 do sleep(step) elapsed = elapsed + step timeout = timeout - step local ok, err = dict:add(key, true, exptime) if ok then cdata.key_id = ref_obj(key) self.key = key return elapsed end if err ~= "exists" then return nil, err end if timeout <= 0 then break end step = min(max(0.001, step * ratio), timeout, max_step) end return nil, "timeout" end function _M.unlock(self) local dict = self.dict local cdata = self.cdata local key_id = tonumber(cdata.key_id) if key_id <= 0 then return nil, "unlocked" end local key = memo[key_id] unref_obj(key_id) local ok, err = dict:delete(key) if not ok then return nil, err end cdata.key_id = 0 return 1 end function _M.expire(self, time) local dict = self.dict local cdata = self.cdata local key_id = tonumber(cdata.key_id) if key_id <= 0 then return nil, "unlocked" end if not time then time = self.exptime end local ok, err = dict:replace(self.key, true, time) if not ok then return nil, err end return true end return _M PK@½N]׌T7++resty/template/safe.luanu„[µü¤return require "resty.template".new(true) PK@½N]§«Áúè è !resty/template/microbenchmark.luanu„[µü¤local template = require "resty.template" local ok, new_tab = pcall(require, "table.new") if not ok then new_tab = function() return {} end end local function run(iterations) local gc, total, print, parse, compile, clock, format = collectgarbage, 0, ngx and ngx.say or print, template.parse, template.compile, os.clock, string.format iterations = iterations or 1000 local view = [[ ]] print(format("Running %d iterations in each test", iterations)) gc() gc() local x = clock() for _ = 1, iterations do parse(view, true) end local z = clock() - x print(format(" Parsing Time: %.6f", z)) total = total + z gc() gc() x = clock() for _ = 1, iterations do compile(view, nil, true) template.cache = {} end z = clock() - x print(format("Compilation Time: %.6f (template)", z)) total = total + z compile(view, nil, true) gc() gc() x = clock() for _ = 1, iterations do compile(view, 1, true) end z = clock() - x print(format("Compilation Time: %.6f (template, cached)", z)) total = total + z local context = { "Emma", "James", "Nicholas", "Mary" } template.cache = {} gc() gc() x = clock() for _ = 1, iterations do compile(view, 1, true)(context) template.cache = {} end z = clock() - x print(format(" Execution Time: %.6f (same template)", z)) total = total + z template.cache = {} compile(view, 1, true) gc() gc() x = clock() for _ = 1, iterations do compile(view, 1, true)(context) end z = clock() - x print(format(" Execution Time: %.6f (same template, cached)", z)) total = total + z template.cache = {} local views = new_tab(iterations, 0) for i = 1, iterations do views[i] = "

Iteration " .. i .. "

\n" .. view end gc() gc() x = clock() for i = 1, iterations do compile(views[i], i, true)(context) end z = clock() - x print(format(" Execution Time: %.6f (different template)", z)) total = total + z gc() gc() x = clock() for i = 1, iterations do compile(views[i], i, true)(context) end z = clock() - x print(format(" Execution Time: %.6f (different template, cached)", z)) total = total + z local contexts = new_tab(iterations, 0) for i = 1, iterations do contexts[i] = { "Emma", "James", "Nicholas", "Mary" } end template.cache = {} gc() gc() x = clock() for i = 1, iterations do compile(views[i], i, true)(contexts[i]) end z = clock() - x print(format(" Execution Time: %.6f (different template, different context)", z)) total = total + z gc() gc() x = clock() for i = 1, iterations do compile(views[i], i, true)(contexts[i]) end z = clock() - x print(format(" Execution Time: %.6f (different template, different context, cached)", z)) total = total + z print(format(" Total Time: %.6f", total)) end return { run = run } PK@½N]ŠýŽE××resty/template/html.luanu„[µü¤local template = require "resty.template" local setmetatable = setmetatable local escape = template.escape local concat = table.concat local pairs = pairs local type = type local function tag(name, content, attr) local r, a = {}, {} content = content or attr r[#r + 1] = "<" r[#r + 1] = name if attr then for k, v in pairs(attr) do if type(k) == "number" then a[#a + 1] = escape(v) else a[#a + 1] = k .. '="' .. escape(v) .. '"' end end if #a > 0 then r[#r + 1] = " " r[#r + 1] = concat(a, " ") end end if type(content) == "string" then r[#r + 1] = ">" r[#r + 1] = escape(content) r[#r + 1] = "" else r[#r + 1] = " />" end return concat(r) end local html = { __index = function(_, name) return function(attr) if type(attr) == "table" then return function(content) return tag(name, content, attr) end else return tag(name, attr) end end end } template.html = setmetatable(html, html) return template.html PK@½N]Eb°3¾Z¾Zresty/template.luanu„[µü¤local setmetatable = setmetatable local loadstring = loadstring local tostring = tostring local setfenv = setfenv local require = require local concat = table.concat local assert = assert local write = io.write local pcall = pcall local phase local open = io.open local load = load local type = type local dump = string.dump local find = string.find local gsub = string.gsub local byte = string.byte local null local sub = string.sub local ngx = ngx local jit = jit local var local _VERSION = _VERSION local _ENV = _ENV -- luacheck: globals _ENV local _G = _G local HTML_ENTITIES = { ["&"] = "&", ["<"] = "<", [">"] = ">", ['"'] = """, ["'"] = "'", ["/"] = "/" } local CODE_ENTITIES = { ["{"] = "{", ["}"] = "}", ["&"] = "&", ["<"] = "<", [">"] = ">", ['"'] = """, ["'"] = "'", ["/"] = "/" } local VAR_PHASES local ESC = byte("\27") local NUL = byte("\0") local HT = byte("\t") local VT = byte("\v") local LF = byte("\n") local SOL = byte("/") local BSOL = byte("\\") local SP = byte(" ") local AST = byte("*") local NUM = byte("#") local LPAR = byte("(") local LSQB = byte("[") local LCUB = byte("{") local MINUS = byte("-") local PERCNT = byte("%") local EMPTY = "" local VIEW_ENV if _VERSION == "Lua 5.1" then VIEW_ENV = { __index = function(t, k) return t.context[k] or t.template[k] or _G[k] end } else VIEW_ENV = { __index = function(t, k) return t.context[k] or t.template[k] or _ENV[k] end } end local newtab do local ok ok, newtab = pcall(require, "table.new") if not ok then newtab = function() return {} end end end local function enabled(val) if val == nil then return true end return val == true or (val == "1" or val == "true" or val == "on") end local function trim(s) return gsub(gsub(s, "^%s+", EMPTY), "%s+$", EMPTY) end local function rpos(view, s) while s > 0 do local c = byte(view, s, s) if c == SP or c == HT or c == VT or c == NUL then s = s - 1 else break end end return s end local function escaped(view, s) if s > 1 and byte(view, s - 1, s - 1) == BSOL then if s > 2 and byte(view, s - 2, s - 2) == BSOL then return false, 1 else return true, 1 end end return false, 0 end local function read_file(path) local file, err = open(path, "rb") if not file then return nil, err end local content content, err = file:read "*a" file:close() return content, err end local print_view local load_view if ngx then print_view = ngx.print or write var = ngx.var null = ngx.null phase = ngx.get_phase VAR_PHASES = { set = true, rewrite = true, access = true, content = true, header_filter = true, body_filter = true, log = true, preread = true } local capture = ngx.location.capture local prefix = ngx.config.prefix() load_view = function(template) return function(view, plain) if plain == true then return view end local vars = VAR_PHASES[phase()] local path = view local root = template.location if (not root or root == EMPTY) and vars then root = var.template_location end if root and root ~= EMPTY then if byte(root, -1) == SOL then root = sub(root, 1, -2) end if byte(path, 1) == SOL then path = sub(path, 2) end path = root .. "/" .. path local res = capture(path) if res.status == 200 then return res.body end end path = view root = template.root if (not root or root == EMPTY) and vars then root = var.template_root if not root or root == EMPTY then root = var.document_root or prefix end end if root and root ~= EMPTY then if byte(root, -1) == SOL then root = sub(root, 1, -2) end if byte(path, 1) == SOL then path = sub(path, 2) end path = root .. "/" .. path end return plain == false and assert(read_file(path)) or read_file(path) or view end end else print_view = write load_view = function(template) return function(view, plain) if plain == true then return view end local path, root = view, template.root if root and root ~= EMPTY then if byte(root, -1) == SOL then root = sub(root, 1, -2) end if byte(view, 1) == SOL then path = sub(view, 2) end path = root .. "/" .. path end return plain == false and assert(read_file(path)) or read_file(path) or view end end end local function load_file(func) return function(view) return func(view, false) end end local function load_string(func) return function(view) return func(view, true) end end local loader if jit or _VERSION ~= "Lua 5.1" then loader = function(template) return function(view) return assert(load(view, nil, nil, setmetatable({ template = template }, VIEW_ENV))) end end else loader = function(template) return function(view) local func = assert(loadstring(view)) setfenv(func, setmetatable({ template = template }, VIEW_ENV)) return func end end end local function visit(visitors, content, tag, name) if not visitors then return content end for i = 1, visitors.n do content = visitors[i](content, tag, name) end return content end local function new(template, safe) template = template or newtab(0, 26) template._VERSION = "2.0" template.cache = {} template.load = load_view(template) template.load_file = load_file(template.load) template.load_string = load_string(template.load) template.print = print_view local load_chunk = loader(template) local caching if VAR_PHASES and VAR_PHASES[phase()] then caching = enabled(var.template_cache) else caching = true end local visitors function template.visit(func) if not visitors then visitors = { func, n = 1 } return end visitors.n = visitors.n + 1 visitors[visitors.n] = func end function template.caching(enable) if enable ~= nil then caching = enable == true end return caching end function template.output(s) if s == nil or s == null then return EMPTY end if type(s) == "function" then return template.output(s()) end return tostring(s) end function template.escape(s, c) if type(s) == "string" then if c then return gsub(s, "[}{\">/<'&]", CODE_ENTITIES) end return gsub(s, "[\">/<'&]", HTML_ENTITIES) end return template.output(s) end function template.new(view, layout) local vt = type(view) if vt == "boolean" then return new(nil, view) end if vt == "table" then return new(view, safe) end if vt == "nil" then return new(nil, safe) end local render local process if layout then if type(layout) == "table" then render = function(self, context) context = context or self context.blocks = context.blocks or {} context.view = template.process(view, context) layout.blocks = context.blocks or {} layout.view = context.view or EMPTY layout:render() end process = function(self, context) context = context or self context.blocks = context.blocks or {} context.view = template.process(view, context) layout.blocks = context.blocks or {} layout.view = context.view return tostring(layout) end else render = function(self, context) context = context or self context.blocks = context.blocks or {} context.view = template.process(view, context) template.render(layout, context) end process = function(self, context) context = context or self context.blocks = context.blocks or {} context.view = template.process(view, context) return template.process(layout, context) end end else render = function(self, context) return template.render(view, context or self) end process = function(self, context) return template.process(view, context or self) end end if safe then return setmetatable({ render = function(...) local ok, err = pcall(render, ...) if not ok then return nil, err end end, process = function(...) local ok, output = pcall(process, ...) if not ok then return nil, output end return output end, }, { __tostring = function(...) local ok, output = pcall(process, ...) if not ok then return "" end return output end }) end return setmetatable({ render = render, process = process }, { __tostring = process }) end function template.precompile(view, path, strip, plain) local chunk = dump(template.compile(view, nil, plain), strip ~= false) if path then local file = open(path, "wb") file:write(chunk) file:close() end return chunk end function template.precompile_string(view, path, strip) return template.precompile(view, path, strip, true) end function template.precompile_file(view, path, strip) return template.precompile(view, path, strip, false) end function template.compile(view, cache_key, plain) assert(view, "view was not provided for template.compile(view, cache_key, plain)") if cache_key == "no-cache" then return load_chunk(template.parse(view, plain)), false end cache_key = cache_key or view local cache = template.cache if cache[cache_key] then return cache[cache_key], true end local func = load_chunk(template.parse(view, plain)) if caching then cache[cache_key] = func end return func, false end function template.compile_file(view, cache_key) return template.compile(view, cache_key, false) end function template.compile_string(view, cache_key) return template.compile(view, cache_key, true) end function template.parse(view, plain) assert(view, "view was not provided for template.parse(view, plain)") if plain ~= true then view = template.load(view, plain) if byte(view, 1, 1) == ESC then return view end end local j = 2 local c = {[[ context=... or {} local ___,blocks,layout={},blocks or {} local function include(v, c) return template.process(v, c or context) end local function echo(...) for i=1,select("#", ...) do ___[#___+1] = tostring(select(i, ...)) end end ]] } local i, s = 1, find(view, "{", 1, true) while s do local t, p = byte(view, s + 1, s + 1), s + 2 if t == LCUB then local e = find(view, "}}", p, true) if e then local z, w = escaped(view, s) if i < s - w then c[j] = "___[#___+1]=[=[\n" c[j+1] = visit(visitors, sub(view, i, s - 1 - w)) c[j+2] = "]=]\n" j=j+3 end if z then i = s else c[j] = "___[#___+1]=template.escape(" c[j+1] = visit(visitors, trim(sub(view, p, e - 1)), "{") c[j+2] = ")\n" j=j+3 s, i = e + 1, e + 2 end end elseif t == AST then local e = find(view, "*}", p, true) if e then local z, w = escaped(view, s) if i < s - w then c[j] = "___[#___+1]=[=[\n" c[j+1] = visit(visitors, sub(view, i, s - 1 - w)) c[j+2] = "]=]\n" j=j+3 end if z then i = s else c[j] = "___[#___+1]=template.output(" c[j+1] = visit(visitors, trim(sub(view, p, e - 1)), "*") c[j+2] = ")\n" j=j+3 s, i = e + 1, e + 2 end end elseif t == PERCNT then local e = find(view, "%}", p, true) if e then local z, w = escaped(view, s) if z then if i < s - w then c[j] = "___[#___+1]=[=[\n" c[j+1] = visit(visitors, sub(view, i, s - 1 - w)) c[j+2] = "]=]\n" j=j+3 end i = s else local n = e + 2 if byte(view, n, n) == LF then n = n + 1 end local r = rpos(view, s - 1) if i <= r then c[j] = "___[#___+1]=[=[\n" c[j+1] = visit(visitors, sub(view, i, r)) c[j+2] = "]=]\n" j=j+3 end c[j] = visit(visitors, trim(sub(view, p, e - 1)), "%") c[j+1] = "\n" j=j+2 s, i = n - 1, n end end elseif t == LPAR then local e = find(view, ")}", p, true) if e then local z, w = escaped(view, s) if i < s - w then c[j] = "___[#___+1]=[=[\n" c[j+1] = visit(visitors, sub(view, i, s - 1 - w)) c[j+2] = "]=]\n" j=j+3 end if z then i = s else local f = visit(visitors, sub(view, p, e - 1), "(") local x = find(f, ",", 2, true) if x then c[j] = "___[#___+1]=include([=[" c[j+1] = trim(sub(f, 1, x - 1)) c[j+2] = "]=]," c[j+3] = trim(sub(f, x + 1)) c[j+4] = ")\n" j=j+5 else c[j] = "___[#___+1]=include([=[" c[j+1] = trim(f) c[j+2] = "]=])\n" j=j+3 end s, i = e + 1, e + 2 end end elseif t == LSQB then local e = find(view, "]}", p, true) if e then local z, w = escaped(view, s) if i < s - w then c[j] = "___[#___+1]=[=[\n" c[j+1] = visit(visitors, sub(view, i, s - 1 - w)) c[j+2] = "]=]\n" j=j+3 end if z then i = s else c[j] = "___[#___+1]=include(" c[j+1] = visit(visitors, trim(sub(view, p, e - 1)), "[") c[j+2] = ")\n" j=j+3 s, i = e + 1, e + 2 end end elseif t == MINUS then local e = find(view, "-}", p, true) if e then local x, y = find(view, sub(view, s, e + 1), e + 2, true) if x then local z, w = escaped(view, s) if z then if i < s - w then c[j] = "___[#___+1]=[=[\n" c[j+1] = visit(visitors, sub(view, i, s - 1 - w)) c[j+2] = "]=]\n" j=j+3 end i = s else y = y + 1 x = x - 1 if byte(view, y, y) == LF then y = y + 1 end local b = trim(sub(view, p, e - 1)) if b == "verbatim" or b == "raw" then if i < s - w then c[j] = "___[#___+1]=[=[\n" c[j+1] = visit(visitors, sub(view, i, s - 1 - w)) c[j+2] = "]=]\n" j=j+3 end c[j] = "___[#___+1]=[=[" c[j+1] = visit(visitors, sub(view, e + 2, x)) c[j+2] = "]=]\n" j=j+3 else if byte(view, x, x) == LF then x = x - 1 end local r = rpos(view, s - 1) if i <= r then c[j] = "___[#___+1]=[=[\n" c[j+1] = visit(visitors, sub(view, i, r)) c[j+2] = "]=]\n" j=j+3 end c[j] = 'blocks["' c[j+1] = b c[j+2] = '"]=include[=[' c[j+3] = visit(visitors, sub(view, e + 2, x), "-", b) c[j+4] = "]=]\n" j=j+5 end s, i = y - 1, y end end end elseif t == NUM then local e = find(view, "#}", p, true) if e then local z, w = escaped(view, s) if i < s - w then c[j] = "___[#___+1]=[=[\n" c[j+1] = visit(visitors, sub(view, i, s - 1 - w)) c[j+2] = "]=]\n" j=j+3 end if z then i = s else e = e + 2 if byte(view, e, e) == LF then e = e + 1 end s, i = e - 1, e end end end s = find(view, "{", s + 1, true) end s = sub(view, i) if s and s ~= EMPTY then c[j] = "___[#___+1]=[=[\n" c[j+1] = visit(visitors, s) c[j+2] = "]=]\n" j=j+3 end c[j] = "return layout and include(layout,setmetatable({view=table.concat(___),blocks=blocks},{__index=context})) or table.concat(___)" -- luacheck: ignore return concat(c) end function template.parse_file(view) return template.parse(view, false) end function template.parse_string(view) return template.parse(view, true) end function template.process(view, context, cache_key, plain) assert(view, "view was not provided for template.process(view, context, cache_key, plain)") return template.compile(view, cache_key, plain)(context) end function template.process_file(view, context, cache_key) assert(view, "view was not provided for template.process_file(view, context, cache_key)") return template.compile(view, cache_key, false)(context) end function template.process_string(view, context, cache_key) assert(view, "view was not provided for template.process_string(view, context, cache_key)") return template.compile(view, cache_key, true)(context) end function template.render(view, context, cache_key, plain) assert(view, "view was not provided for template.render(view, context, cache_key, plain)") template.print(template.process(view, context, cache_key, plain)) end function template.render_file(view, context, cache_key) assert(view, "view was not provided for template.render_file(view, context, cache_key)") template.render(view, context, cache_key, false) end function template.render_string(view, context, cache_key) assert(view, "view was not provided for template.render_string(view, context, cache_key)") template.render(view, context, cache_key, true) end if safe then return setmetatable({}, { __index = function(_, k) if type(template[k]) == "function" then return function(...) local ok, a, b = pcall(template[k], ...) if not ok then return nil, a end return a, b end end return template[k] end, __new_index = function(_, k, v) template[k] = v end, }) end return template end return new() PK@½N]n‹�]q/q/resty/openssl.luanu„[µü¤local ffi = require("ffi") local C = ffi.C local ffi_cast = ffi.cast local ffi_str = ffi.string local format_error = require("resty.openssl.err").format_error local OPENSSL_3X local function try_require_modules() package.loaded["resty.openssl.version"] = nil local pok, lib = pcall(require, "resty.openssl.version") if pok then OPENSSL_3X = lib.OPENSSL_3X require "resty.openssl.include.crypto" require "resty.openssl.include.objects" else package.loaded["resty.openssl.version"] = nil end end try_require_modules() local _M = { _VERSION = '1.7.1', } function _M.load_modules() _M.bn = require("resty.openssl.bn") _M.cipher = require("resty.openssl.cipher") _M.digest = require("resty.openssl.digest") _M.hmac = require("resty.openssl.hmac") _M.kdf = require("resty.openssl.kdf") _M.pkey = require("resty.openssl.pkey") _M.objects = require("resty.openssl.objects") _M.rand = require("resty.openssl.rand") _M.version = require("resty.openssl.version") _M.x509 = require("resty.openssl.x509") _M.altname = require("resty.openssl.x509.altname") _M.chain = require("resty.openssl.x509.chain") _M.csr = require("resty.openssl.x509.csr") _M.crl = require("resty.openssl.x509.crl") _M.extension = require("resty.openssl.x509.extension") _M.extensions = require("resty.openssl.x509.extensions") _M.name = require("resty.openssl.x509.name") _M.revoked = require("resty.openssl.x509.revoked") _M.store = require("resty.openssl.x509.store") _M.pkcs12 = require("resty.openssl.pkcs12") _M.ssl = require("resty.openssl.ssl") _M.ssl_ctx = require("resty.openssl.ssl_ctx") if OPENSSL_3X then _M.provider = require("resty.openssl.provider") _M.mac = require("resty.openssl.mac") _M.ctx = require("resty.openssl.ctx") end _M.bignum = _M.bn end function _M.luaossl_compat() _M.load_modules() _M.csr.setSubject = _M.csr.set_subject_name _M.csr.setPublicKey = _M.csr.set_pubkey _M.x509.setPublicKey = _M.x509.set_pubkey _M.x509.getPublicKey = _M.x509.get_pubkey _M.x509.setSerial = _M.x509.set_serial_number _M.x509.getSerial = _M.x509.get_serial_number _M.x509.setSubject = _M.x509.set_subject_name _M.x509.getSubject = _M.x509.get_subject_name _M.x509.setIssuer = _M.x509.set_issuer_name _M.x509.getIssuer = _M.x509.get_issuer_name _M.x509.getOCSP = _M.x509.get_ocsp_url local pkey_new = _M.pkey.new _M.pkey.new = function(a, b) if type(a) == "string" then return pkey_new(a, b and unpack(b)) else return pkey_new(a, b) end end _M.cipher.encrypt = function(self, key, iv, padding) return self, _M.cipher.init(self, key, iv, true, not padding) end _M.cipher.decrypt = function(self, key, iv, padding) return self, _M.cipher.init(self, key, iv, false, not padding) end local digest_update = _M.digest.update _M.digest.update = function(self, ...) local ok, err = digest_update(self, ...) if ok then return self else return nil, err end end local store_verify = _M.store.verify _M.store.verify = function(...) local ok, err = store_verify(...) if err then return false, err else return true, ok end end local kdf_derive = _M.kdf.derive local kdf_keys_mappings = { iter = "pbkdf2_iter", key = "hkdf_key", info = "hkdf_info", secret = "tls1_prf_secret", seed = "tls1_prf_seed", maxmem_bytes = "scrypt_maxmem", N = "scrypt_N", r = "scrypt_r", p = "scrypt_p", } _M.kdf.derive = function(o) for k1, k2 in pairs(kdf_keys_mappings) do o[k1] = o[k2] o[k2] = nil end local hkdf_mode = o.hkdf_mode if hkdf_mode == "extract_and_expand" then o.hkdf_mode = _M.kdf.HKDEF_MODE_EXTRACT_AND_EXPAND elseif hkdf_mode == "extract_only" then o.hkdf_mode = _M.kdf.HKDEF_MODE_EXTRACT_ONLY elseif hkdf_mode == "expand_only" then o.hkdf_mode = _M.kdf.HKDEF_MODE_EXPAND_ONLY end return kdf_derive(o) end _M.pkcs12.new = function(tbl) local certs = {} local passphrase = tbl.passphrase if not tbl.key then return nil, "key must be set" end for _, cert in ipairs(tbl.certs) do if not _M.x509.istype(cert) then return nil, "certs must contains only x509 instance" end if cert:check_private_key(tbl.key) then tbl.cert = cert else certs[#certs+1] = cert end end tbl.cacerts = certs return _M.pkcs12.encode(tbl, passphrase) end _M.crl.add = _M.crl.add_revoked _M.crl.lookupSerial = _M.crl.get_by_serial for mod, tbl in pairs(_M) do if type(tbl) == 'table' then -- avoid using a same table as the iterrator will change local new_tbl = {} -- luaossl always error() out for k, f in pairs(tbl) do if type(f) == 'function' then local of = f new_tbl[k] = function(...) local ret = { of(...) } if ret and #ret > 1 and ret[#ret] then error(mod .. "." .. k .. "(): " .. ret[#ret]) end return unpack(ret) end end end for k, f in pairs(new_tbl) do tbl[k] = f end setmetatable(tbl, { __index = function(t, k) local tok -- handle special case if k == 'toPEM' then tok = 'to_PEM' else tok = k:gsub("(%l)(%u)", function(a, b) return a .. "_" .. b:lower() end) if tok == k then return end end if type(tbl[tok]) == 'function' then return tbl[tok] end end }) end end -- skip error() conversion _M.pkcs12.parse = function(p12, passphrase) local r, err = _M.pkcs12.decode(p12, passphrase) if err then error(err) end return r.key, r.cert, r.cacerts end end if OPENSSL_3X then require "resty.openssl.include.evp" local provider = require "resty.openssl.provider" local ctx_lib = require "resty.openssl.ctx" local fips_provider_ctx function _M.set_fips_mode(enable, self_test) if (not not enable) == _M.get_fips_mode() then return true end if enable then local p, err = provider.load("fips") if not p then return false, err end fips_provider_ctx = p if self_test then local ok, err = p:self_test() if not ok then return false, err end end elseif fips_provider_ctx then -- disable local p = fips_provider_ctx fips_provider_ctx = nil return p:unload() end -- set algorithm in fips mode in default ctx -- this deny/allow non-FIPS compliant algorithms to be used from EVP interface -- and redirect/remove redirect implementation to fips provider if C.EVP_default_properties_enable_fips(ctx_lib.get_libctx(), enable and 1 or 0) == 0 then return false, format_error("openssl.set_fips_mode: EVP_default_properties_enable_fips") end return true end function _M.get_fips_mode() local pok = provider.is_available("fips") if not pok then return false end return C.EVP_default_properties_is_fips_enabled(ctx_lib.get_libctx()) == 1 end function _M.get_fips_version_text() if not fips_provider_ctx then return false, "FIPS mode is not enabled" end return fips_provider_ctx:get_params("version") end else function _M.set_fips_mode(enable) if (not not enable) == _M.get_fips_mode() then return true end if C.FIPS_mode_set(enable and 1 or 0) == 0 then return false, format_error("openssl.set_fips_mode") end return true end function _M.get_fips_mode() return C.FIPS_mode() == 1 end function _M.get_fips_version_text() return nil, "openssl.get_fips_version_text not supported on OpenSSL 1.1.1" end end function _M.set_default_properties(props) if not OPENSSL_3X then return nil, "openssl.set_default_properties is only not supported from OpenSSL 3.0" end local ctx_lib = require "resty.openssl.ctx" if C.EVP_set_default_properties(ctx_lib.get_libctx(), props) == 0 then return false, format_error("openssl.EVP_set_default_properties") end return true end local function list_legacy(typ, get_nid_cf) local typ_lower = string.lower(typ:sub(5)) -- cut off EVP_ require ("resty.openssl.include.evp." .. typ_lower) local ret = {} local fn = ffi_cast("fake_openssl_" .. typ_lower .. "_list_fn*", function(elem, from, to, arg) if elem ~= nil then local nid = get_nid_cf(elem) table.insert(ret, ffi_str(C.OBJ_nid2sn(nid))) end -- from/to (renamings) are ignored end) C[typ .. "_do_all_sorted"](fn, nil) fn:free() return ret end local function list_provided(typ, hide_provider) local typ_lower = string.lower(typ:sub(5)) -- cut off EVP_ local typ_ptr = typ .. "*" require ("resty.openssl.include.evp." .. typ_lower) local ctx_lib = require "resty.openssl.ctx" local ret = {} local fn = ffi_cast("fake_openssl_" .. typ_lower .. "_provided_list_fn*", function(elem, _) elem = ffi_cast(typ_ptr, elem) local name = ffi_str(C[typ .. "_get0_name"](elem)) if hide_provider then table.insert(ret, name) else -- alternate names are ignored, retrieve use TYPE_names_do_all local prov = ffi_str(C.OSSL_PROVIDER_get0_name(C[typ .. "_get0_provider"](elem))) table.insert(ret, name .. " @ " .. prov) end end) C[typ .. "_do_all_provided"](ctx_lib.get_libctx(), fn, nil) fn:free() table.sort(ret) return ret end function _M.list_cipher_algorithms(hide_provider) require "resty.openssl.include.evp.cipher" if OPENSSL_3X then return list_provided("EVP_CIPHER", hide_provider) else return list_legacy("EVP_CIPHER", C.EVP_CIPHER_nid) end end function _M.list_digest_algorithms(hide_provider) require "resty.openssl.include.evp.md" if OPENSSL_3X then return list_provided("EVP_MD", hide_provider) else return list_legacy("EVP_MD", C.EVP_MD_type) end end function _M.list_mac_algorithms(hide_provider) if not OPENSSL_3X then return nil, "openssl.list_mac_algorithms is only supported from OpenSSL 3.0" end return list_provided("EVP_MAC", hide_provider) end function _M.list_kdf_algorithms(hide_provider) if not OPENSSL_3X then return nil, "openssl.list_kdf_algorithms is only supported from OpenSSL 3.0" end return list_provided("EVP_KDF", hide_provider) end local valid_ssl_protocols = { ["SSLv3"] = 0x0300, ["TLSv1"] = 0x0301, ["TLSv1.1"] = 0x0302, ["TLSv1.2"] = 0x0303, ["TLSv1.3"] = 0x0304, } function _M.list_ssl_ciphers(cipher_list, ciphersuites, protocol) local ssl_lib = require("resty.openssl.ssl") local ssl_macro = require("resty.openssl.include.ssl") if protocol then if not valid_ssl_protocols[protocol] then return nil, "unknown protocol \"" .. protocol .. "\"" end protocol = valid_ssl_protocols[protocol] end local ssl_ctx = C.SSL_CTX_new(C.TLS_server_method()) if ssl_ctx == nil then return nil, format_error("SSL_CTX_new") end ffi.gc(ssl_ctx, C.SSL_CTX_free) local ssl = C.SSL_new(ssl_ctx) if ssl == nil then return nil, format_error("SSL_new") end ffi.gc(ssl, C.SSL_free) if protocol then if ssl_macro.SSL_set_min_proto_version(ssl, protocol) == 0 or ssl_macro.SSL_set_max_proto_version(ssl, protocol) == 0 then return nil, format_error("SSL_set_min/max_proto_version") end end ssl = { ctx = ssl } local ok, err if cipher_list then ok, err = ssl_lib.set_cipher_list(ssl, cipher_list) if not ok then return nil, err end end if ciphersuites then ok, err = ssl_lib.set_ciphersuites(ssl, ciphersuites) if not ok then return nil, err end end return ssl_lib.get_ciphers(ssl) end return _M PK@½N]pþ\ôôresty/limit/conn.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) -- -- This library is an enhanced Lua port of the standard ngx_limit_conn -- module. local math = require "math" local setmetatable = setmetatable local floor = math.floor local ngx_shared = ngx.shared local assert = assert local _M = { _VERSION = '0.08' } local mt = { __index = _M } function _M.new(dict_name, max, burst, default_conn_delay) local dict = ngx_shared[dict_name] if not dict then return nil, "shared dict not found" end assert(max > 0 and burst >= 0 and default_conn_delay > 0) local self = { dict = dict, max = max + 0, -- just to ensure the param is good burst = burst, unit_delay = default_conn_delay, } return setmetatable(self, mt) end function _M.incoming(self, key, commit) local dict = self.dict local max = self.max self.committed = false local conn, err if commit then conn, err = dict:incr(key, 1, 0) if not conn then return nil, err end if conn > max + self.burst then conn, err = dict:incr(key, -1) if not conn then return nil, err end return nil, "rejected" end self.committed = true else conn = (dict:get(key) or 0) + 1 if conn > max + self.burst then return nil, "rejected" end end if conn > max then -- make the excessive connections wait return self.unit_delay * floor((conn - 1) / max), conn end -- we return a 0 delay by default return 0, conn end function _M.is_committed(self) return self.committed end function _M.leaving(self, key, req_latency) assert(key) local dict = self.dict local conn, err = dict:incr(key, -1) if not conn then return nil, err end if req_latency then local unit_delay = self.unit_delay self.unit_delay = (req_latency + unit_delay) / 2 end return conn end function _M.uncommit(self, key) assert(key) local dict = self.dict return dict:incr(key, -1) end function _M.set_conn(self, conn) self.max = conn end function _M.set_burst(self, burst) self.burst = burst end return _M PK@½N]VÐ[0 resty/limit/count.luanu„[µü¤-- implement GitHub request rate limiting: -- https://developer.github.com/v3/#rate-limiting local ngx_shared = ngx.shared local setmetatable = setmetatable local assert = assert local _M = { _VERSION = '0.08' } local mt = { __index = _M } local incr_support_init_ttl local ngx_config = ngx.config local ngx_lua_v = ngx.config.ngx_lua_version if not ngx_config or not ngx_lua_v or (ngx_lua_v < 10012) then incr_support_init_ttl = false else incr_support_init_ttl = true end -- the "limit" argument controls number of request allowed in a time window. -- time "window" argument controls the time window in seconds. function _M.new(dict_name, limit, window) local dict = ngx_shared[dict_name] if not dict then return nil, "shared dict not found" end assert(limit > 0 and window > 0) local self = { dict = dict, limit = limit, window = window, } return setmetatable(self, mt) end -- incoming function using incr with init_ttl -- need OpenResty version > v0.10.12rc2 local function incoming_new(self, key, commit) local dict = self.dict local limit = self.limit local window = self.window local remaining, err if commit then remaining, err = dict:incr(key, -1, limit, window) if not remaining then return nil, err end else remaining = (dict:get(key) or limit) - 1 end if remaining < 0 then return nil, "rejected" end return 0, remaining end -- incoming function using incr and expire local function incoming_old(self, key, commit) local dict = self.dict local limit = self.limit local window = self.window local remaining, ok, err if commit then remaining, err = dict:incr(key, -1, limit) if not remaining then return nil, err end if remaining == limit - 1 then ok, err = dict:expire(key, window) if not ok then if err == "not found" then remaining, err = dict:incr(key, -1, limit) if not remaining then return nil, err end ok, err = dict:expire(key, window) if not ok then return nil, err end else return nil, err end end end else remaining = (dict:get(key) or limit) - 1 end if remaining < 0 then return nil, "rejected" end return 0, remaining end _M.incoming = incr_support_init_ttl and incoming_new or incoming_old -- uncommit remaining and return remaining value function _M.uncommit(self, key) assert(key) local dict = self.dict local limit = self.limit local remaining, err = dict:incr(key, 1) if not remaining then if err == "not found" then remaining = limit else return nil, err end end return remaining end return _M PK@½N]A´ª?llresty/limit/req.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) -- -- This library is an approximate Lua port of the standard ngx_limit_req -- module. local ffi = require "ffi" local math = require "math" local ngx_shared = ngx.shared local ngx_now = ngx.now local setmetatable = setmetatable local ffi_cast = ffi.cast local ffi_str = ffi.string local abs = math.abs local tonumber = tonumber local type = type local assert = assert local max = math.max -- TODO: we could avoid the tricky FFI cdata when lua_shared_dict supports -- hash-typed values as in redis. ffi.cdef[[ struct lua_resty_limit_req_rec { unsigned long excess; uint64_t last; /* time in milliseconds */ /* integer value, 1 corresponds to 0.001 r/s */ }; ]] local const_rec_ptr_type = ffi.typeof("const struct lua_resty_limit_req_rec*") local rec_size = ffi.sizeof("struct lua_resty_limit_req_rec") -- we can share the cdata here since we only need it temporarily for -- serialization inside the shared dict: local rec_cdata = ffi.new("struct lua_resty_limit_req_rec") local _M = { _VERSION = '0.08' } local mt = { __index = _M } function _M.new(dict_name, rate, burst) local dict = ngx_shared[dict_name] if not dict then return nil, "shared dict not found" end assert(rate > 0 and burst >= 0) local self = { dict = dict, rate = rate * 1000, burst = burst * 1000, } return setmetatable(self, mt) end -- sees an new incoming event -- the "commit" argument controls whether should we record the event in shm. -- FIXME we have a (small) race-condition window between dict:get() and -- dict:set() across multiple nginx worker processes. The size of the -- window is proportional to the number of workers. function _M.incoming(self, key, commit) local dict = self.dict local rate = self.rate local now = ngx_now() * 1000 local excess -- it's important to anchor the string value for the read-only pointer -- cdata: local v = dict:get(key) if v then if type(v) ~= "string" or #v ~= rec_size then return nil, "shdict abused by other users" end local rec = ffi_cast(const_rec_ptr_type, v) local elapsed = now - tonumber(rec.last) -- print("elapsed: ", elapsed, "ms") -- we do not handle changing rate values specifically. the excess value -- can get automatically adjusted by the following formula with new rate -- values rather quickly anyway. excess = max(tonumber(rec.excess) - rate * abs(elapsed) / 1000 + 1000, 0) -- print("excess: ", excess) if excess > self.burst then return nil, "rejected" end else excess = 0 end if commit then rec_cdata.excess = excess rec_cdata.last = now dict:set(key, ffi_str(rec_cdata, rec_size)) end -- return the delay in seconds, as well as excess return excess / rate, excess / 1000 end function _M.uncommit(self, key) assert(key) local dict = self.dict local v = dict:get(key) if not v then return nil, "not found" end if type(v) ~= "string" or #v ~= rec_size then return nil, "shdict abused by other users" end local rec = ffi_cast(const_rec_ptr_type, v) local excess = max(tonumber(rec.excess) - 1000, 0) rec_cdata.excess = excess rec_cdata.last = rec.last dict:set(key, ffi_str(rec_cdata, rec_size)) return true end function _M.set_rate(self, rate) self.rate = rate * 1000 end function _M.set_burst(self, burst) self.burst = burst * 1000 end return _M PK@½N]lÅ> ))resty/limit/traffic.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) -- -- This is an aggregator for various concrete traffic limiter instances -- (like instances of the resty.limit.req, resty.limit.count and -- resty.limit.conn classes). local max = math.max local _M = { _VERSION = '0.08' } -- the states table is user supplied. each element stores the 2nd return value -- of each limiter if there is no error returned. for resty.limit.req, the state -- is the "excess" value (i.e., the number of excessive requests each second), -- and for resty.limit.conn, the state is the current concurrency level -- (including the current new connection). function _M.combine(limiters, keys, states) local n = #limiters local max_delay = 0 for i = 1, n do local lim = limiters[i] local delay, err = lim:incoming(keys[i], i == n) if not delay then return nil, err end if i == n then if states then states[i] = err end max_delay = delay end end for i = 1, n - 1 do local lim = limiters[i] local delay, err = lim:incoming(keys[i], true) if not delay then for j = 1, i - 1 do -- we intentionally ignore any errors returned below. limiters[j]:uncommit(keys[j]) end limiters[n]:uncommit(keys[n]) return nil, err end if states then states[i] = err end max_delay = max(max_delay, delay) end return max_delay end return _M PKA½N]´N˜\˜\resty/dns/resolver.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) -- local socket = require "socket" local bit = require "bit" local udp = ngx.socket.udp local rand = math.random local char = string.char local byte = string.byte local find = string.find local gsub = string.gsub local sub = string.sub local rep = string.rep local format = string.format local band = bit.band local rshift = bit.rshift local lshift = bit.lshift local insert = table.insert local concat = table.concat local re_sub = ngx.re.sub local tcp = ngx.socket.tcp local log = ngx.log local DEBUG = ngx.DEBUG local unpack = unpack local setmetatable = setmetatable local type = type local ipairs = ipairs local ok, new_tab = pcall(require, "table.new") if not ok then new_tab = function (narr, nrec) return {} end end local DOT_CHAR = byte(".") local ZERO_CHAR = byte("0") local COLON_CHAR = byte(":") local IP6_ARPA = "ip6.arpa" local TYPE_A = 1 local TYPE_NS = 2 local TYPE_CNAME = 5 local TYPE_SOA = 6 local TYPE_PTR = 12 local TYPE_MX = 15 local TYPE_TXT = 16 local TYPE_AAAA = 28 local TYPE_SRV = 33 local TYPE_SPF = 99 local CLASS_IN = 1 local SECTION_AN = 1 local SECTION_NS = 2 local SECTION_AR = 3 local _M = { _VERSION = '0.22', TYPE_A = TYPE_A, TYPE_NS = TYPE_NS, TYPE_CNAME = TYPE_CNAME, TYPE_SOA = TYPE_SOA, TYPE_PTR = TYPE_PTR, TYPE_MX = TYPE_MX, TYPE_TXT = TYPE_TXT, TYPE_AAAA = TYPE_AAAA, TYPE_SRV = TYPE_SRV, TYPE_SPF = TYPE_SPF, CLASS_IN = CLASS_IN, SECTION_AN = SECTION_AN, SECTION_NS = SECTION_NS, SECTION_AR = SECTION_AR } local resolver_errstrs = { "format error", -- 1 "server failure", -- 2 "name error", -- 3 "not implemented", -- 4 "refused", -- 5 } local soa_int32_fields = { "serial", "refresh", "retry", "expire", "minimum" } local mt = { __index = _M } local arpa_tmpl = new_tab(72, 0) for i = 1, #IP6_ARPA do arpa_tmpl[64 + i] = byte(IP6_ARPA, i) end for i = 2, 64, 2 do arpa_tmpl[i] = DOT_CHAR end local function udp_socks_close(self) if self.socks == nil then return end for _, sock in ipairs(self.socks) do sock:close() end self.socks = nil end local function tcp_socks_close(self) if self.tcp_sock == nil then return end self.tcp_sock:close() self.tcp_sock = nil end function _M.new(class, opts) if not opts then return nil, "no options table specified" end local servers = opts.nameservers if not servers or #servers == 0 then return nil, "no nameservers specified" end local timeout = opts.timeout or 2000 -- default 2 sec local n = #servers local socks = {} for i = 1, n do local server = servers[i] local sock, err = udp() if not sock then return nil, "failed to create udp socket: " .. err end local host, port if type(server) == 'table' then host = server[1] port = server[2] or 53 else host = server port = 53 servers[i] = {host, port} end local ok, err = sock:setpeername(host, port) if not ok then return nil, "failed to set peer name: " .. err end sock:settimeout(timeout) insert(socks, sock) end local tcp_sock, err = tcp() if not tcp_sock then return nil, "failed to create tcp socket: " .. err end tcp_sock:settimeout(timeout) return setmetatable( { cur = opts.no_random and 1 or rand(1, n), socks = socks, tcp_sock = tcp_sock, servers = servers, retrans = opts.retrans or 5, no_recurse = opts.no_recurse, }, mt) end function _M:destroy() udp_socks_close(self) tcp_socks_close(self) self.cur = nil self.servers = nil self.retrans = nil self.no_recurse = nil end local function pick_sock(self, socks) local cur = self.cur if cur == #socks then self.cur = 1 else self.cur = cur + 1 end return socks[cur] end local function _get_cur_server(self) local cur = self.cur local servers = self.servers if cur == 1 then return servers[#servers] end return servers[cur - 1] end function _M.set_timeout(self, timeout) local socks = self.socks if not socks then return nil, "not initialized" end for i = 1, #socks do local sock = socks[i] sock:settimeout(timeout) end local tcp_sock = self.tcp_sock if not tcp_sock then return nil, "not initialized" end tcp_sock:settimeout(timeout) end local function _encode_name(s) return char(#s) .. s end local function _decode_name(buf, pos) local labels = {} local nptrs = 0 local p = pos while nptrs < 128 do local fst = byte(buf, p) if not fst then return nil, 'truncated'; end -- print("fst at ", p, ": ", fst) if fst == 0 then if nptrs == 0 then pos = pos + 1 end break end if band(fst, 0xc0) ~= 0 then -- being a pointer if nptrs == 0 then pos = pos + 2 end nptrs = nptrs + 1 local snd = byte(buf, p + 1) if not snd then return nil, 'truncated' end p = lshift(band(fst, 0x3f), 8) + snd + 1 -- print("resolving ptr ", p, ": ", byte(buf, p)) else -- being a label local label = sub(buf, p + 1, p + fst) insert(labels, label) -- print("resolved label ", label) p = p + fst + 1 if nptrs == 0 then pos = p end end end return concat(labels, "."), pos end local function _build_request(qname, id, no_recurse, opts) local qtype if opts then qtype = opts.qtype end if not qtype then qtype = 1 -- A record end local ident_hi = char(rshift(id, 8)) local ident_lo = char(band(id, 0xff)) local flags if no_recurse then -- print("found no recurse") flags = "\0\0" else flags = "\1\0" end local nqs = "\0\1" local nan = "\0\0" local nns = "\0\0" local nar = "\0\0" local typ = char(rshift(qtype, 8), band(qtype, 0xff)) local class = "\0\1" -- the Internet class if byte(qname, 1) == DOT_CHAR then return nil, "bad name" end local name = gsub(qname, "([^.]+)%.?", _encode_name) .. '\0' return { ident_hi, ident_lo, flags, nqs, nan, nns, nar, name, typ, class } end local function parse_section(answers, section, buf, start_pos, size, should_skip) local pos = start_pos for _ = 1, size do -- print(format("ans %d: qtype:%d qclass:%d", i, qtype, qclass)) local ans = {} if not should_skip then insert(answers, ans) end ans.section = section local name name, pos = _decode_name(buf, pos) if not name then return nil, pos end ans.name = name -- print("name: ", name) local type_hi = byte(buf, pos) local type_lo = byte(buf, pos + 1) local typ = lshift(type_hi, 8) + type_lo ans.type = typ -- print("type: ", typ) local class_hi = byte(buf, pos + 2) local class_lo = byte(buf, pos + 3) local class = lshift(class_hi, 8) + class_lo ans.class = class -- print("class: ", class) local byte_1, byte_2, byte_3, byte_4 = byte(buf, pos + 4, pos + 7) local ttl = lshift(byte_1, 24) + lshift(byte_2, 16) + lshift(byte_3, 8) + byte_4 -- print("ttl: ", ttl) ans.ttl = ttl local len_hi = byte(buf, pos + 8) local len_lo = byte(buf, pos + 9) local len = lshift(len_hi, 8) + len_lo -- print("record len: ", len) pos = pos + 10 if typ == TYPE_A then if len ~= 4 then return nil, "bad A record value length: " .. len end local addr_bytes = { byte(buf, pos, pos + 3) } local addr = concat(addr_bytes, ".") -- print("ipv4 address: ", addr) ans.address = addr pos = pos + 4 elseif typ == TYPE_CNAME then local cname, p = _decode_name(buf, pos) if not cname then return nil, pos end if p - pos ~= len then return nil, format("bad cname record length: %d ~= %d", p - pos, len) end pos = p -- print("cname: ", cname) ans.cname = cname elseif typ == TYPE_AAAA then if len ~= 16 then return nil, "bad AAAA record value length: " .. len end local addr_bytes = { byte(buf, pos, pos + 15) } local flds = {} for i = 1, 16, 2 do local a = addr_bytes[i] local b = addr_bytes[i + 1] if a == 0 then insert(flds, format("%x", b)) else insert(flds, format("%x%02x", a, b)) end end -- we do not compress the IPv6 addresses by default -- due to performance considerations ans.address = concat(flds, ":") pos = pos + 16 elseif typ == TYPE_MX then -- print("len = ", len) if len < 3 then return nil, "bad MX record value length: " .. len end local pref_hi = byte(buf, pos) local pref_lo = byte(buf, pos + 1) ans.preference = lshift(pref_hi, 8) + pref_lo local host, p = _decode_name(buf, pos + 2) if not host then return nil, pos end if p - pos ~= len then return nil, format("bad cname record length: %d ~= %d", p - pos, len) end ans.exchange = host pos = p elseif typ == TYPE_SRV then if len < 7 then return nil, "bad SRV record value length: " .. len end local prio_hi = byte(buf, pos) local prio_lo = byte(buf, pos + 1) ans.priority = lshift(prio_hi, 8) + prio_lo local weight_hi = byte(buf, pos + 2) local weight_lo = byte(buf, pos + 3) ans.weight = lshift(weight_hi, 8) + weight_lo local port_hi = byte(buf, pos + 4) local port_lo = byte(buf, pos + 5) ans.port = lshift(port_hi, 8) + port_lo local name, p = _decode_name(buf, pos + 6) if not name then return nil, pos end if p - pos ~= len then return nil, format("bad srv record length: %d ~= %d", p - pos, len) end ans.target = name pos = p elseif typ == TYPE_NS then local name, p = _decode_name(buf, pos) if not name then return nil, pos end if p - pos ~= len then return nil, format("bad cname record length: %d ~= %d", p - pos, len) end pos = p -- print("name: ", name) ans.nsdname = name elseif typ == TYPE_TXT or typ == TYPE_SPF then local key = (typ == TYPE_TXT) and "txt" or "spf" local slen = byte(buf, pos) if slen + 1 > len then -- truncate the over-run TXT record data slen = len end -- print("slen: ", len) local val = sub(buf, pos + 1, pos + slen) local last = pos + len pos = pos + slen + 1 if pos < last then -- more strings to be processed -- this code path is usually cold, so we do not -- merge the following loop on this code path -- with the processing logic above. val = {val} local idx = 2 repeat local slen = byte(buf, pos) if pos + slen + 1 > last then -- truncate the over-run TXT record data slen = last - pos - 1 end val[idx] = sub(buf, pos + 1, pos + slen) idx = idx + 1 pos = pos + slen + 1 until pos >= last end ans[key] = val elseif typ == TYPE_PTR then local name, p = _decode_name(buf, pos) if not name then return nil, pos end if p - pos ~= len then return nil, format("bad cname record length: %d ~= %d", p - pos, len) end pos = p -- print("name: ", name) ans.ptrdname = name elseif typ == TYPE_SOA then local name, p = _decode_name(buf, pos) if not name then return nil, pos end ans.mname = name pos = p name, p = _decode_name(buf, pos) if not name then return nil, pos end ans.rname = name for _, field in ipairs(soa_int32_fields) do local byte_1, byte_2, byte_3, byte_4 = byte(buf, p, p + 3) ans[field] = lshift(byte_1, 24) + lshift(byte_2, 16) + lshift(byte_3, 8) + byte_4 p = p + 4 end pos = p else -- for unknown types, just forward the raw value ans.rdata = sub(buf, pos, pos + len - 1) pos = pos + len end end return pos end local function parse_response(buf, id, opts) local n = #buf if n < 12 then return nil, 'truncated'; end -- header layout: ident flags nqs nan nns nar local ident_hi = byte(buf, 1) local ident_lo = byte(buf, 2) local ans_id = lshift(ident_hi, 8) + ident_lo -- print("id: ", id, ", ans id: ", ans_id) if ans_id ~= id then -- identifier mismatch and throw it away log(DEBUG, "id mismatch in the DNS reply: ", ans_id, " ~= ", id) return nil, "id mismatch" end local flags_hi = byte(buf, 3) local flags_lo = byte(buf, 4) local flags = lshift(flags_hi, 8) + flags_lo -- print(format("flags: 0x%x", flags)) if band(flags, 0x8000) == 0 then return nil, format("bad QR flag in the DNS response") end if band(flags, 0x200) ~= 0 then return nil, "truncated" end local code = band(flags, 0xf) -- print(format("code: %d", code)) local nqs_hi = byte(buf, 5) local nqs_lo = byte(buf, 6) local nqs = lshift(nqs_hi, 8) + nqs_lo -- print("nqs: ", nqs) if nqs ~= 1 then return nil, format("bad number of questions in DNS response: %d", nqs) end local nan_hi = byte(buf, 7) local nan_lo = byte(buf, 8) local nan = lshift(nan_hi, 8) + nan_lo -- print("nan: ", nan) local nns_hi = byte(buf, 9) local nns_lo = byte(buf, 10) local nns = lshift(nns_hi, 8) + nns_lo local nar_hi = byte(buf, 11) local nar_lo = byte(buf, 12) local nar = lshift(nar_hi, 8) + nar_lo -- skip the question part local ans_qname, pos = _decode_name(buf, 13) if not ans_qname then return nil, pos end -- print("qname in reply: ", ans_qname) -- print("question: ", sub(buf, 13, pos)) if pos + 3 + nan * 12 > n then -- print(format("%d > %d", pos + 3 + nan * 12, n)) return nil, 'truncated'; end -- question section layout: qname qtype(2) qclass(2) --[[ local type_hi = byte(buf, pos) local type_lo = byte(buf, pos + 1) local ans_type = lshift(type_hi, 8) + type_lo ]] -- print("ans qtype: ", ans_type) local class_hi = byte(buf, pos + 2) local class_lo = byte(buf, pos + 3) local qclass = lshift(class_hi, 8) + class_lo -- print("ans qclass: ", qclass) if qclass ~= 1 then return nil, format("unknown query class %d in DNS response", qclass) end pos = pos + 4 local answers = {} if code ~= 0 then answers.errcode = code answers.errstr = resolver_errstrs[code] or "unknown" end local authority_section, additional_section if opts then authority_section = opts.authority_section additional_section = opts.additional_section if opts.qtype == TYPE_SOA then authority_section = true end end local err pos, err = parse_section(answers, SECTION_AN, buf, pos, nan) if not pos then return nil, err end if not authority_section and not additional_section then return answers end pos, err = parse_section(answers, SECTION_NS, buf, pos, nns, not authority_section) if not pos then return nil, err end if not additional_section then return answers end pos, err = parse_section(answers, SECTION_AR, buf, pos, nar) if not pos then return nil, err end return answers end local function _gen_id(self) local id = self._id -- for regression testing if id then return id end return rand(0, 65535) -- two bytes end local function _tcp_query(self, query, id, opts) local sock = self.tcp_sock if not sock then return nil, "not initialized" end log(DEBUG, "query the TCP server due to reply truncation") local server = _get_cur_server(self) local ok, err = sock:connect(server[1], server[2]) if not ok then return nil, "failed to connect to TCP server " .. concat(server, ":") .. ": " .. err end query = concat(query, "") local len = #query local len_hi = char(rshift(len, 8)) local len_lo = char(band(len, 0xff)) local bytes, err = sock:send({len_hi, len_lo, query}) if not bytes then return nil, "failed to send query to TCP server " .. concat(server, ":") .. ": " .. err end local buf, err = sock:receive(2) if not buf then return nil, "failed to receive the reply length field from TCP server " .. concat(server, ":") .. ": " .. err end len_hi = byte(buf, 1) len_lo = byte(buf, 2) len = lshift(len_hi, 8) + len_lo -- print("tcp message len: ", len) buf, err = sock:receive(len) if not buf then return nil, "failed to receive the reply message body from TCP server " .. concat(server, ":") .. ": " .. err end local answers, err = parse_response(buf, id, opts) if not answers then return nil, "failed to parse the reply from the TCP server " .. concat(server, ":") .. ": " .. err end sock:close() return answers end function _M.tcp_query(self, qname, opts) local socks = self.socks if not socks then return nil, "not initialized" end pick_sock(self, socks) local id = _gen_id(self) local query, err = _build_request(qname, id, self.no_recurse, opts) if not query then return nil, err end return _tcp_query(self, query, id, opts) end function _M.query(self, qname, opts, tries) local socks = self.socks if not socks then return nil, "not initialized" end local id = _gen_id(self) local query, err = _build_request(qname, id, self.no_recurse, opts) if not query then return nil, err end -- local cjson = require "cjson" -- print("query: ", cjson.encode(concat(query, ""))) local retrans = self.retrans if tries then tries[1] = nil end -- print("retrans: ", retrans) for i = 1, retrans do local sock = pick_sock(self, socks) local ok ok, err = sock:send(query) if not ok then local server = _get_cur_server(self) err = "failed to send request to UDP server " .. concat(server, ":") .. ": " .. err else local buf for _ = 1, 128 do buf, err = sock:receive(4096) if err then local server = _get_cur_server(self) err = "failed to receive reply from UDP server " .. concat(server, ":") .. ": " .. err break end if buf then local answers answers, err = parse_response(buf, id, opts) if err == "truncated" then answers, err = _tcp_query(self, query, id, opts) end if err and err ~= "id mismatch" then break end if answers then return answers, nil, tries end end -- only here in case of an "id mismatch" end end if tries then tries[i] = err tries[i + 1] = nil -- ensure termination for user supplied table end end return nil, err, tries end function _M.compress_ipv6_addr(addr) local addr = re_sub(addr, "^(0:)+|(:0)+$|:(0:)+", "::", "jo") if addr == "::0" then addr = "::" end return addr end local function _expand_ipv6_addr(addr) if find(addr, "::", 1, true) then local ncol, addrlen = 8, #addr for i = 1, addrlen do if byte(addr, i) == COLON_CHAR then ncol = ncol - 1 end end if byte(addr, 1) == COLON_CHAR then addr = "0" .. addr end if byte(addr, -1) == COLON_CHAR then addr = addr .. "0" end addr = re_sub(addr, "::", ":" .. rep("0:", ncol), "jo") end return addr end _M.expand_ipv6_addr = _expand_ipv6_addr function _M.arpa_str(addr) if find(addr, ":", 1, true) then addr = _expand_ipv6_addr(addr) local idx, hidx, addrlen = 1, 1, #addr for i = addrlen, 0, -1 do local s = byte(addr, i) if s == COLON_CHAR or not s then for _ = hidx, 4 do arpa_tmpl[idx] = ZERO_CHAR idx = idx + 2 end hidx = 1 else arpa_tmpl[idx] = s idx = idx + 2 hidx = hidx + 1 end end addr = char(unpack(arpa_tmpl)) else addr = re_sub(addr, [[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})]], "$4.$3.$2.$1.in-addr.arpa", "ajo") end return addr end function _M.reverse_query(self, addr) return self.query(self, self.arpa_str(addr), {qtype = self.TYPE_PTR}) end return _M PKA½N]C6ººJ(J( resty/aes.luanu„[µü¤-- Copyright (C) by Yichun Zhang (agentzh) --local asn1 = require "resty.asn1" local ffi = require "ffi" local ffi_new = ffi.new local ffi_gc = ffi.gc local ffi_str = ffi.string local ffi_copy = ffi.copy local C = ffi.C local setmetatable = setmetatable --local error = error local type = type local _M = { _VERSION = '0.17' } local mt = { __index = _M } local EVP_CTRL_AEAD_SET_IVLEN = 0x09 local EVP_CTRL_AEAD_GET_TAG = 0x10 local EVP_CTRL_AEAD_SET_TAG = 0x11 ffi.cdef[[ typedef struct engine_st ENGINE; typedef struct evp_cipher_st EVP_CIPHER; typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; typedef struct env_md_ctx_st EVP_MD_CTX; typedef struct env_md_st EVP_MD; const EVP_MD *EVP_md5(void); const EVP_MD *EVP_sha(void); const EVP_MD *EVP_sha1(void); const EVP_MD *EVP_sha224(void); const EVP_MD *EVP_sha256(void); const EVP_MD *EVP_sha384(void); const EVP_MD *EVP_sha512(void); const EVP_CIPHER *EVP_aes_128_ecb(void); const EVP_CIPHER *EVP_aes_128_cbc(void); const EVP_CIPHER *EVP_aes_128_cfb1(void); const EVP_CIPHER *EVP_aes_128_cfb8(void); const EVP_CIPHER *EVP_aes_128_cfb128(void); const EVP_CIPHER *EVP_aes_128_ofb(void); const EVP_CIPHER *EVP_aes_128_ctr(void); const EVP_CIPHER *EVP_aes_192_ecb(void); const EVP_CIPHER *EVP_aes_192_cbc(void); const EVP_CIPHER *EVP_aes_192_cfb1(void); const EVP_CIPHER *EVP_aes_192_cfb8(void); const EVP_CIPHER *EVP_aes_192_cfb128(void); const EVP_CIPHER *EVP_aes_192_ofb(void); const EVP_CIPHER *EVP_aes_192_ctr(void); const EVP_CIPHER *EVP_aes_256_ecb(void); const EVP_CIPHER *EVP_aes_256_cbc(void); const EVP_CIPHER *EVP_aes_256_cfb1(void); const EVP_CIPHER *EVP_aes_256_cfb8(void); const EVP_CIPHER *EVP_aes_256_cfb128(void); const EVP_CIPHER *EVP_aes_256_ofb(void); const EVP_CIPHER *EVP_aes_256_ctr(void); const EVP_CIPHER *EVP_aes_128_gcm(void); const EVP_CIPHER *EVP_aes_192_gcm(void); const EVP_CIPHER *EVP_aes_256_gcm(void); EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(); void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a); int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx); int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *ctx, int padding); int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl, unsigned char *key, const unsigned char *iv); int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, const unsigned char *in, int inl); int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl, unsigned char *key, const unsigned char *iv); int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, const unsigned char *in, int inl); int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); int EVP_BytesToKey(const EVP_CIPHER *type,const EVP_MD *md, const unsigned char *salt, const unsigned char *data, int datal, int count, unsigned char *key,unsigned char *iv); int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); ]] local hash hash = { md5 = C.EVP_md5(), sha1 = C.EVP_sha1(), sha224 = C.EVP_sha224(), sha256 = C.EVP_sha256(), sha384 = C.EVP_sha384(), sha512 = C.EVP_sha512() } _M.hash = hash local EVP_MAX_BLOCK_LENGTH = 32 local shared_out_len_ptr = ffi_new("int[1]") local shared_tmp_len_ptr = ffi_new("int[1]") local shared_tag_buf_ptr = ffi_new("unsigned char[?]", 16) local cipher cipher = function (size, _cipher) local _size = size or 128 _cipher = _cipher or "cbc" local func = "EVP_aes_" .. _size .. "_" .. _cipher if C[func] then return { size=_size, cipher=_cipher, method=C[func]()} else return nil end end _M.cipher = cipher function _M.new(self, key, salt, _cipher, _hash, hash_rounds, iv_len, enable_padding) local encrypt_ctx = C.EVP_CIPHER_CTX_new() if encrypt_ctx == nil then return nil, "no memory" end ffi_gc(encrypt_ctx, C.EVP_CIPHER_CTX_free) local decrypt_ctx = C.EVP_CIPHER_CTX_new() if decrypt_ctx == nil then return nil, "no memory" end ffi_gc(decrypt_ctx, C.EVP_CIPHER_CTX_free) _cipher = _cipher or cipher() _hash = _hash or hash.md5 hash_rounds = hash_rounds or 1 local _cipherLength = _cipher.size/8 local gen_key = ffi_new("unsigned char[?]", _cipherLength) local gen_iv = ffi_new("unsigned char[?]", _cipherLength) iv_len = iv_len or _cipherLength -- enable padding by default local padding = (enable_padding == nil or enable_padding) and 1 or 0 if type(_hash) == "table" then if not _hash.iv then return nil, "iv is needed" end --[[ Depending on the encryption algorithm, the length of iv will be different. For detailed, please refer to https://www.openssl.org/docs/man1.1.0/man3/EVP_CIPHER_CTX_ctrl.html ]] iv_len = #_hash.iv if iv_len > _cipherLength then return nil, "bad iv length" end if _hash.method then local tmp_key = _hash.method(key) if #tmp_key ~= _cipherLength then return nil, "bad key length" end ffi_copy(gen_key, tmp_key, _cipherLength) elseif #key ~= _cipherLength then return nil, "bad key length" else ffi_copy(gen_key, key, _cipherLength) end ffi_copy(gen_iv, _hash.iv, iv_len) else if salt and #salt ~= 8 then return nil, "salt must be 8 characters or nil" end if C.EVP_BytesToKey(_cipher.method, _hash, salt, key, #key, hash_rounds, gen_key, gen_iv) ~= _cipherLength then return nil, "failed to generate key and iv" end end if C.EVP_EncryptInit_ex(encrypt_ctx, _cipher.method, nil, nil, nil) == 0 or C.EVP_DecryptInit_ex(decrypt_ctx, _cipher.method, nil, nil, nil) == 0 then return nil, "failed to init ctx" end local cipher_name = _cipher.cipher if cipher_name == "gcm" or cipher_name == "ccm" or cipher_name == "ocb" then if C.EVP_CIPHER_CTX_ctrl(encrypt_ctx, EVP_CTRL_AEAD_SET_IVLEN, iv_len, nil) == 0 or C.EVP_CIPHER_CTX_ctrl(decrypt_ctx, EVP_CTRL_AEAD_SET_IVLEN, iv_len, nil) == 0 then return nil, "failed to set IV length" end end if C.EVP_CIPHER_CTX_set_padding(encrypt_ctx, padding) == 0 then return nil, "failed to set padding for encrypt context" end if C.EVP_CIPHER_CTX_set_padding(decrypt_ctx, padding) == 0 then return nil, "failed to set padding for decrypt context" end return setmetatable({ _encrypt_ctx = encrypt_ctx, _decrypt_ctx = decrypt_ctx, _cipher = _cipher.cipher, _key = gen_key, _iv = gen_iv }, mt) end local function alloc_buf(max_len) local buf = ffi_new("unsigned char[?]", max_len) return buf, max_len end do local ok, str_buf_mod = pcall(require, "string.buffer") if ok then local str_buf = str_buf_mod.new(4096) function alloc_buf(max_len) local buf, sz = str_buf:reset():reserve(max_len) return buf, sz end end end function _M.encrypt(self, s, aad) local typ = type(self) if typ ~= "table" then error("bad argument #1 self: table expected, got " .. typ, 2) end local s_len = #s local buf = alloc_buf(s_len + 2 * EVP_MAX_BLOCK_LENGTH) local out_len = shared_out_len_ptr local tmp_len = shared_tmp_len_ptr local ctx = self._encrypt_ctx if C.EVP_EncryptInit_ex(ctx, nil, nil, self._key, self._iv) == 0 then return nil, "EVP_EncryptInit_ex failed" end if self._cipher == "gcm" and aad ~= nil then if C.EVP_EncryptUpdate(ctx, nil, tmp_len, aad, #aad) == 0 then return nil, "C.EVP_EncryptUpdate failed" end end if C.EVP_EncryptUpdate(ctx, buf, out_len, s, s_len) == 0 then return nil, "EVP_EncryptUpdate failed" end if self._cipher == "gcm" then local encrypt_data = ffi_str(buf, out_len[0]) if C.EVP_EncryptFinal_ex(ctx, buf, out_len) == 0 then return nil, "EVP_EncryptFinal_ex failed" end -- FIXME: For OCB mode the taglen must either be 16 -- or the value previously set via EVP_CTRL_OCB_SET_TAGLEN. -- so we should extend this api in the future C.EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_GET_TAG, 16, buf); local tag = ffi_str(buf, 16) return {encrypt_data, tag} end if C.EVP_EncryptFinal_ex(ctx, buf + out_len[0], tmp_len) == 0 then return nil, "EVP_EncryptFinal_ex failed" end return ffi_str(buf, out_len[0] + tmp_len[0]) end function _M.decrypt(self, s, tag, aad) local typ = type(self) if typ ~= "table" then error("bad argument #1 self: table expected, got " .. typ, 2) end local s_len = #s local buf = alloc_buf(s_len + 2 * EVP_MAX_BLOCK_LENGTH) local out_len = shared_out_len_ptr local tmp_len = shared_tmp_len_ptr local ctx = self._decrypt_ctx if C.EVP_DecryptInit_ex(ctx, nil, nil, self._key, self._iv) == 0 then return nil, "EVP_DecryptInit_ex failed" end if self._cipher == "gcm" and aad ~= nil then if C.EVP_DecryptUpdate(ctx, nil, tmp_len, aad, #aad) == 0 then return nil, "C.EVP_DecryptUpdate failed" end end if C.EVP_DecryptUpdate(ctx, buf, out_len, s, s_len) == 0 then return nil, "EVP_DecryptUpdate failed" end if self._cipher == "gcm" then local plain_txt = ffi_str(buf, out_len[0]) if tag ~= nil then local tag_buf = shared_tag_buf_ptr ffi_copy(tag_buf, tag, 16) C.EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, 16, tag_buf); end if C.EVP_DecryptFinal_ex(ctx, buf + out_len[0], tmp_len) == 0 then return nil, "EVP_DecryptFinal_ex failed" end return plain_txt end if C.EVP_DecryptFinal_ex(ctx, buf + out_len[0], tmp_len) == 0 then return nil, "EVP_DecryptFinal_ex failed" end return ffi_str(buf, out_len[0] + tmp_len[0]) end return _M PKA½N]wŸ&ƒ;";"resty/openssl/ssl.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_str = ffi.string local ffi_cast = ffi.cast require "resty.openssl.include.ssl" local nginx_aux = require("resty.openssl.auxiliary.nginx") local x509_lib = require("resty.openssl.x509") local chain_lib = require("resty.openssl.x509.chain") local stack_lib = require("resty.openssl.stack") local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X local format_error = require("resty.openssl.err").format_error local _M = { SSL_VERIFY_NONE = 0x00, SSL_VERIFY_PEER = 0x01, SSL_VERIFY_FAIL_IF_NO_PEER_CERT = 0x02, SSL_VERIFY_CLIENT_ONCE = 0x04, SSL_VERIFY_POST_HANDSHAKE = 0x08, } local ops = { SSL_OP_NO_EXTENDED_MASTER_SECRET = 0x00000001, SSL_OP_CLEANSE_PLAINTEXT = 0x00000002, SSL_OP_LEGACY_SERVER_CONNECT = 0x00000004, SSL_OP_TLSEXT_PADDING = 0x00000010, SSL_OP_SAFARI_ECDHE_ECDSA_BUG = 0x00000040, SSL_OP_IGNORE_UNEXPECTED_EOF = 0x00000080, SSL_OP_DISABLE_TLSEXT_CA_NAMES = 0x00000200, SSL_OP_ALLOW_NO_DHE_KEX = 0x00000400, SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS = 0x00000800, SSL_OP_NO_QUERY_MTU = 0x00001000, SSL_OP_COOKIE_EXCHANGE = 0x00002000, SSL_OP_NO_TICKET = 0x00004000, SSL_OP_CISCO_ANYCONNECT = 0x00008000, SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION = 0x00010000, SSL_OP_NO_COMPRESSION = 0x00020000, SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION = 0x00040000, SSL_OP_NO_ENCRYPT_THEN_MAC = 0x00080000, SSL_OP_ENABLE_MIDDLEBOX_COMPAT = 0x00100000, SSL_OP_PRIORITIZE_CHACHA = 0x00200000, SSL_OP_CIPHER_SERVER_PREFERENCE = 0x00400000, SSL_OP_TLS_ROLLBACK_BUG = 0x00800000, SSL_OP_NO_ANTI_REPLAY = 0x01000000, SSL_OP_NO_SSLv3 = 0x02000000, SSL_OP_NO_TLSv1 = 0x04000000, SSL_OP_NO_TLSv1_2 = 0x08000000, SSL_OP_NO_TLSv1_1 = 0x10000000, SSL_OP_NO_TLSv1_3 = 0x20000000, SSL_OP_NO_DTLSv1 = 0x04000000, SSL_OP_NO_DTLSv1_2 = 0x08000000, SSL_OP_NO_RENEGOTIATION = 0x40000000, SSL_OP_CRYPTOPRO_TLSEXT_BUG = 0x80000000, } ops.SSL_OP_NO_SSL_MASK = ops.SSL_OP_NO_SSLv3 + ops.SSL_OP_NO_TLSv1 + ops.SSL_OP_NO_TLSv1_1 + ops.SSL_OP_NO_TLSv1_2 + ops.SSL_OP_NO_TLSv1_3 ops.SSL_OP_NO_DTLS_MASK = ops.SSL_OP_NO_DTLSv1 + ops.SSL_OP_NO_DTLSv1_2 for k, v in pairs(ops) do _M[k] = v end local mt = {__index = _M} local ssl_ptr_ct = ffi.typeof('SSL*') local stack_of_ssl_cipher_iter = function(ctx) return stack_lib.mt_of("SSL_CIPHER", function(x) return x end, {}, true).__ipairs({ctx = ctx}) end function _M.from_request() -- don't GC this local ctx, err = nginx_aux.get_req_ssl() if err ~= nil then return nil, err end return setmetatable({ ctx = ctx, -- the cdata is not manage by Lua, don't GC on Lua side _managed = false, -- this is the client SSL session _server = true, }, mt) end function _M.from_socket(socket) if not socket then return nil, "expect a ngx.socket.tcp instance at #1" end -- don't GC this local ctx, err = nginx_aux.get_socket_ssl(socket) if err ~= nil then return nil, err end return setmetatable({ ctx = ctx, -- the cdata is not manage by Lua, don't GC on Lua side _managed = false, -- this is the client SSL session _server = false, }, mt) end function _M.istype(l) return l and l.ctx and ffi.istype(ssl_ptr_ct, l.ctx) end function _M:get_peer_certificate() local x509 if OPENSSL_3X then x509 = C.SSL_get1_peer_certificate(self.ctx) else x509 = C.SSL_get_peer_certificate(self.ctx) end if x509 == nil then return nil end ffi.gc(x509, C.X509_free) local err -- always copy, although the ref counter of returned x509 is -- already increased by one. x509, err = x509_lib.dup(x509) if err then return nil, err end return x509 end function _M:get_peer_cert_chain() local stack = C.SSL_get_peer_cert_chain(self.ctx) if stack == nil then return nil end return chain_lib.dup(stack) end -- TLSv1.3 function _M:set_ciphersuites(ciphers) if C.SSL_set_ciphersuites(self.ctx, ciphers) ~= 1 then return false, format_error("ssl:set_ciphers: SSL_set_ciphersuites") end return true end -- TLSv1.2 and lower function _M:set_cipher_list(ciphers) if C.SSL_set_cipher_list(self.ctx, ciphers) ~= 1 then return false, format_error("ssl:set_ciphers: SSL_set_cipher_list") end return true end function _M:get_ciphers() local ciphers = C.SSL_get_ciphers(self.ctx) if ciphers == nil then return nil end local ret = {} for i, cipher in stack_of_ssl_cipher_iter(ciphers) do cipher = C.SSL_CIPHER_get_name(cipher) if cipher == nil then return nil, format_error("ssl:get_ciphers: SSL_CIPHER_get_name") end ret[i] = ffi_str(cipher) end return table.concat(ret, ":") end function _M:get_cipher_name() local cipher = C.SSL_get_current_cipher(self.ctx) if cipher == nil then return nil end cipher = C.SSL_CIPHER_get_name(cipher) if cipher == nil then return nil, format_error("ssl:get_cipher_name: SSL_CIPHER_get_name") end return ffi_str(cipher) end function _M:set_timeout(tm) local session = C.SSL_get_session(self.ctx) if session == nil then return false, format_error("ssl:set_timeout: SSL_get_session") end if C.SSL_SESSION_set_timeout(session, tm) ~= 1 then return false, format_error("ssl:set_timeout: SSL_SESSION_set_timeout") end return true end function _M:get_timeout() local session = C.SSL_get_session(self.ctx) if session == nil then return false, format_error("ssl:get_timeout: SSL_get_session") end return tonumber(C.SSL_SESSION_get_timeout(session)) end local ssl_verify_default_cb = ffi_cast("verify_callback", function() return 1 end) function _M:set_verify(mode, cb) if self._verify_cb then self._verify_cb:free() end if cb then cb = ffi_cast("verify_callback", cb) self._verify_cb = cb end C.SSL_set_verify(self.ctx, mode, cb or ssl_verify_default_cb) return true end function _M:free_verify_cb() if self._verify_cb then self._verify_cb:free() self._verify_cb = nil end end function _M:add_client_ca(x509) if not self._server then return false, "ssl:add_client_ca is only supported on server side" end if not x509_lib.istype(x509) then return false, "expect a x509 instance at #1" end if C.SSL_add_client_CA(self.ctx, x509.ctx) ~= 1 then return false, format_error("ssl:add_client_ca: SSL_add_client_CA") end return true end function _M:set_options(...) local bitmask = 0 for _, opt in ipairs({...}) do bitmask = bit.bor(bitmask, opt) end bitmask = C.SSL_set_options(self.ctx, bitmask) return tonumber(bitmask) end function _M:get_options(readable) local bitmask = C.SSL_get_options(self.ctx) if not readable then return tonumber(bitmask) end local ret = {} for k, v in pairs(ops) do if bit.band(v, bitmask) > 0 then table.insert(ret, k) end end table.sort(ret) return ret end function _M:clear_options(...) local bitmask = 0 for _, opt in ipairs({...}) do bitmask = bit.bor(bitmask, opt) end bitmask = C.SSL_clear_options(self.ctx, bitmask) return tonumber(bitmask) end local valid_protocols = { ["SSLv3"] = ops.SSL_OP_NO_SSLv3, ["TLSv1"] = ops.SSL_OP_NO_TLSv1, ["TLSv1.1"] = ops.SSL_OP_NO_TLSv1_1, ["TLSv1.2"] = ops.SSL_OP_NO_TLSv1_2, ["TLSv1.3"] = ops.SSL_OP_NO_TLSv1_3, } local any_tlsv1 = ops.SSL_OP_NO_TLSv1_1 + ops.SSL_OP_NO_TLSv1_2 + ops.SSL_OP_NO_TLSv1_3 function _M:set_protocols(...) local bitmask = 0 for _, prot in ipairs({...}) do local b = valid_protocols[prot] if not b then return nil, "\"" .. prot .. "\" is not a valid protocol" end bitmask = bit.bor(bitmask, b) end if bit.band(bitmask, any_tlsv1) > 0 then bitmask = bit.bor(bitmask, ops.SSL_OP_NO_TLSv1) end -- first disable all protocols C.SSL_set_options(self.ctx, ops.SSL_OP_NO_SSL_MASK) -- then enable selected protocols return tonumber(C.SSL_clear_options(self.ctx, bitmask)) end return _MPKA½N]Î�X<ÎÎresty/openssl/hmac.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_str = ffi.string require "resty.openssl.include.hmac" require "resty.openssl.include.evp.md" local ctypes = require "resty.openssl.auxiliary.ctypes" local format_error = require("resty.openssl.err").format_error local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X local _M = {} local mt = {__index = _M} local hmac_ctx_ptr_ct = ffi.typeof('HMAC_CTX*') -- Note: https://www.openssl.org/docs/manmaster/man3/HMAC_Init.html -- Replace with EVP_MAC_* functions for OpenSSL 3.0 function _M.new(key, typ) local ctx = C.HMAC_CTX_new() if ctx == nil then return nil, "hmac.new: failed to create HMAC_CTX" end ffi_gc(ctx, C.HMAC_CTX_free) local algo = C.EVP_get_digestbyname(typ or 'sha1') if algo == nil then return nil, string.format("hmac.new: invalid digest type \"%s\"", typ) end local code = C.HMAC_Init_ex(ctx, key, #key, algo, nil) if code ~= 1 then return nil, format_error("hmac.new") end return setmetatable({ ctx = ctx, algo = algo, buf = ctypes.uchar_array(OPENSSL_3X and C.EVP_MD_get_size(algo) or C.EVP_MD_size(algo)), }, mt), nil end function _M.istype(l) return l and l.ctx and ffi.istype(hmac_ctx_ptr_ct, l.ctx) end function _M:update(...) for _, s in ipairs({...}) do if C.HMAC_Update(self.ctx, s, #s) ~= 1 then return false, format_error("hmac:update") end end return true, nil end local result_length = ctypes.ptr_of_uint() function _M:final(s) if s then if C.HMAC_Update(self.ctx, s, #s) ~= 1 then return false, format_error("hmac:final") end end if C.HMAC_Final(self.ctx, self.buf, result_length) ~= 1 then return nil, format_error("hmac:final: HMAC_Final") end return ffi_str(self.buf, result_length[0]) end function _M:reset() local code = C.HMAC_Init_ex(self.ctx, nil, 0, nil, nil) if code ~= 1 then return false, format_error("hmac:reset") end return true end return _M PKA½N]R3Ÿb``resty/openssl/ctx.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc require "resty.openssl.include.ossl_typ" local format_error = require("resty.openssl.err").format_error local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X ffi.cdef [[ OSSL_LIB_CTX *OSSL_LIB_CTX_new(void); int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); void OSSL_LIB_CTX_free(OSSL_LIB_CTX *ctx); ]] local ossl_lib_ctx local function new(request_context_only, conf_file) if not OPENSSL_3X then return false, "ctx is only supported from OpenSSL 3.0" end local ctx = C.OSSL_LIB_CTX_new() ffi_gc(ctx, C.OSSL_LIB_CTX_free) if conf_file and C.OSSL_LIB_CTX_load_config(ctx, conf_file) ~= 1 then return false, format_error("ctx.new") end if request_context_only and ngx then ngx.ctx.ossl_lib_ctx = ctx else ossl_lib_ctx = ctx end return true end local function free(request_context_only) if not OPENSSL_3X then return false, "ctx is only supported from OpenSSL 3.0" end if request_context_only and ngx then ngx.ctx.ossl_lib_ctx = nil else ossl_lib_ctx = nil end return true end local test_request do local ok, exdata = pcall(require, "thread.exdata") if ok and exdata then test_request = function() local r = exdata() if r ~= nil then return not not r end end else local getfenv = getfenv function test_request() return not not getfenv(0).__ngx_req end end end return { new = new, free = free, get_libctx = function() return test_request() and ngx.ctx.ossl_lib_ctx or ossl_lib_ctx end, }PKA½N]eBÙç®|®|resty/openssl/pkey.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_new = ffi.new local ffi_str = ffi.string local ffi_cast = ffi.cast local ffi_copy = ffi.copy local rsa_macro = require "resty.openssl.include.rsa" local dh_macro = require "resty.openssl.include.dh" require "resty.openssl.include.bio" require "resty.openssl.include.pem" require "resty.openssl.include.x509" require "resty.openssl.include.evp.pkey" local evp_macro = require "resty.openssl.include.evp" local pkey_macro = require "resty.openssl.include.evp.pkey" local bio_util = require "resty.openssl.auxiliary.bio" local digest_lib = require "resty.openssl.digest" local rsa_lib = require "resty.openssl.rsa" local dh_lib = require "resty.openssl.dh" local ec_lib = require "resty.openssl.ec" local ecx_lib = require "resty.openssl.ecx" local objects_lib = require "resty.openssl.objects" local jwk_lib = require "resty.openssl.auxiliary.jwk" local ctx_lib = require "resty.openssl.ctx" local ctypes = require "resty.openssl.auxiliary.ctypes" local ecdsa_util = require "resty.openssl.auxiliary.ecdsa" local format_error = require("resty.openssl.err").format_error local log_warn = require "resty.openssl.auxiliary.compat".log_warn local log_debug = require "resty.openssl.auxiliary.compat".log_debug local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X local ptr_of_uint = ctypes.ptr_of_uint local ptr_of_size_t = ctypes.ptr_of_size_t local ptr_of_int = ctypes.ptr_of_int local null = ctypes.null local load_pem_args = { null, null, null } local load_der_args = { null } local get_pkey_key = { [evp_macro.EVP_PKEY_RSA] = function(ctx) return C.EVP_PKEY_get0_RSA(ctx) end, [evp_macro.EVP_PKEY_EC] = function(ctx) return C.EVP_PKEY_get0_EC_KEY(ctx) end, [evp_macro.EVP_PKEY_DH] = function(ctx) return C.EVP_PKEY_get0_DH(ctx) end } local load_rsa_key_funcs if not OPENSSL_3X then load_rsa_key_funcs= { ['PEM_read_bio_RSAPrivateKey'] = true, ['PEM_read_bio_RSAPublicKey'] = true, } -- those functions return RSA* instead of EVP_PKEY* end local function load_pem_der(txt, opts, funcs) local fmt = opts.format or '*' if fmt ~= 'PEM' and fmt ~= 'DER' and fmt ~= "JWK" and fmt ~= '*' then return nil, "expecting 'DER', 'PEM', 'JWK' or '*' as \"format\"" end local typ = opts.type or '*' if typ ~= 'pu' and typ ~= 'pr' and typ ~= '*' then return nil, "expecting 'pr', 'pu' or '*' as \"type\"" end if fmt == "JWK" and (typ == "pu" or type == "pr") and not OPENSSL_3X then return nil, "explictly load private or public key from JWK format is not supported on OpenSSL 1.1.1" end log_debug("load key using fmt: ", fmt, ", type: ", typ) local bio = C.BIO_new_mem_buf(txt, #txt) if bio == nil then return nil, "BIO_new_mem_buf() failed" end ffi_gc(bio, C.BIO_free) local ctx local fs = funcs[fmt][typ] local passphrase_cb for f, arg in pairs(fs) do -- don't need BIO when loading JWK key: we parse it in Lua land if f == "load_jwk" then local err ctx, err = jwk_lib[f](txt, typ, opts and opts.properties) if ctx == nil then -- if fmt is explictly set to JWK, we should return an error now if fmt == "JWK" then return nil, err end log_debug("jwk decode failed: ", err, ", continuing") end else -- #define BIO_CTRL_RESET 1 local code = C.BIO_ctrl(bio, 1, 0, nil) if code ~= 1 then return nil, "BIO_ctrl() failed" end -- only pass in passphrase/passphrase_cb to PEM_* functions if fmt == "PEM" or (fmt == "*" and arg == load_pem_args) then if opts.passphrase then local passphrase = opts.passphrase if type(passphrase) ~= "string" then -- clear errors occur when trying C.ERR_clear_error() return nil, "passphrase must be a string" end arg = { null, null, passphrase } elseif opts.passphrase_cb then passphrase_cb = passphrase_cb or ffi_cast("pem_password_cb", function(buf, size) local p = opts.passphrase_cb() local len = #p -- 1 byte for \0 if len > size then log_warn("pkey:load_pem_der: passphrase truncated from ", len, " to ", size) len = size end ffi_copy(buf, p, len) return len end) arg = { null, passphrase_cb, null } end end ctx = C[f](bio, unpack(arg)) end if ctx ~= nil then log_debug("pkey:load_pem_der: loaded pkey using function ", f) -- pkcs1 functions create a rsa rather than evp_pkey -- disable the checking in openssl 3.0 for sail safe if not OPENSSL_3X and load_rsa_key_funcs[f] then local rsa = ctx ctx = C.EVP_PKEY_new() if ctx == null then return nil, format_error("pkey:load_pem_der: EVP_PKEY_new") end if C.EVP_PKEY_assign(ctx, evp_macro.EVP_PKEY_RSA, rsa) ~= 1 then C.RSA_free(rsa) C.EVP_PKEY_free(ctx) return nil, "pkey:load_pem_der: EVP_PKEY_assign() failed" end end break end end if passphrase_cb ~= nil then passphrase_cb:free() end if ctx == nil then return nil, format_error() end -- clear errors occur when trying C.ERR_clear_error() return ctx, nil end local function _pctx_ctrl_str(pctx, opts) if not opts then return true end if opts.mgf1_md and pkey_macro.EVP_PKEY_CTX_set_rsa_mgf1_md_name(pctx, opts.mgf1_md, nil) ~= 1 then return nil, format_error("EVP_PKEY_CTX_set_rsa_mgf1_md_name") end if opts.oaep_md and pkey_macro.EVP_PKEY_CTX_set_rsa_oaep_md_name(pctx, opts.oaep_md, nil) ~= 1 then return nil, format_error("EVP_PKEY_CTX_set_rsa_oaep_md_name") end if opts.pss_saltlen and pkey_macro.EVP_PKEY_CTX_set_rsa_pss_saltlen(pctx, opts.pss_saltlen) ~= 1 then return nil, format_error("EVP_PKEY_CTX_set_rsa_pss_saltlen") end for _, c in ipairs(opts) do if type(c) == "string" then local k, v = string.match(c, "([_%w]+):([_%w]+)") if not k or not v then return nil, "unknown ctrl str: ".. c end if C.EVP_PKEY_CTX_ctrl_str(pctx, k, v) ~= 1 then return nil, format_error(string.format('EVP_PKEY_CTX_ctrl_str(%s, "%s", "%s")', pctx, k, v)) end end end return true end local function generate_param(key_type, config) if key_type == evp_macro.EVP_PKEY_DH then local dh_group = config.group if dh_group then local get_group_func = dh_macro.dh_groups[dh_group] if not get_group_func then return nil, "unknown pre-defined group " .. dh_group end local ctx = get_group_func() if ctx == nil then return nil, format_error("DH_get_x") end local params = C.EVP_PKEY_new() if not params then return nil, format_error("EVP_PKEY_new") end ffi_gc(params, C.EVP_PKEY_free) if C.EVP_PKEY_assign(params, key_type, ctx) ~= 1 then return nil, format_error("EVP_PKEY_assign") end return params end end local pctx = C.EVP_PKEY_CTX_new_id(key_type, nil) if pctx == nil then return nil, format_error("EVP_PKEY_CTX_new_id") end ffi_gc(pctx, C.EVP_PKEY_CTX_free) if C.EVP_PKEY_paramgen_init(pctx) ~= 1 then return nil, format_error("EVP_PKEY_paramgen_init") end if key_type == evp_macro.EVP_PKEY_EC then local curve = config.curve or 'prime192v1' local nid = C.OBJ_ln2nid(curve) if nid == 0 then return nil, "unknown curve " .. curve end if pkey_macro.EVP_PKEY_CTX_set_ec_paramgen_curve_nid(pctx, nid) <= 0 then return nil, format_error("EVP_PKEY_CTX_ctrl: EC: curve_nid") end -- use the named-curve encoding for best backward-compatibilty -- and for playing well with go:crypto/x509 -- # define OPENSSL_EC_NAMED_CURVE 0x001 if pkey_macro.EVP_PKEY_CTX_set_ec_param_enc(pctx, 1) <= 0 then return nil, format_error("EVP_PKEY_CTX_ctrl: EC: param_enc") end elseif key_type == evp_macro.EVP_PKEY_DH then local bits = config.bits if not config.param and not bits then bits = 2048 end if bits and pkey_macro.EVP_PKEY_CTX_set_dh_paramgen_prime_len(pctx, bits) <= 0 then return nil, format_error("EVP_PKEY_CTX_ctrl: DH: bits") end end local ok, err = _pctx_ctrl_str(pctx, config) if not ok then return nil, "pkey:generate_param: " .. err end local ctx_ptr = ffi_new("EVP_PKEY*[1]") if C.EVP_PKEY_paramgen(pctx, ctx_ptr) ~= 1 then return nil, format_error("EVP_PKEY_paramgen") end local params = ctx_ptr[0] ffi_gc(params, C.EVP_PKEY_free) return params end local load_param_funcs = { [evp_macro.EVP_PKEY_EC] = { ["*"] = { ["*"] = { ['PEM_read_bio_ECPKParameters'] = load_pem_args, -- ['d2i_ECPKParameters_bio'] = load_der_args, } }, }, [evp_macro.EVP_PKEY_DH] = { ["*"] = { ["*"] = { ['PEM_read_bio_DHparams'] = load_pem_args, -- ['d2i_DHparams_bio'] = load_der_args, } }, }, } local function generate_key(config) local typ = config.type or 'RSA' local key_type if typ == "RSA" then key_type = evp_macro.EVP_PKEY_RSA elseif typ == "EC" then key_type = evp_macro.EVP_PKEY_EC elseif typ == "DH" then key_type = evp_macro.EVP_PKEY_DH elseif evp_macro.ecx_curves[typ] then key_type = evp_macro.ecx_curves[typ] else return nil, "unsupported type " .. typ end if key_type == 0 then return nil, "the linked OpenSSL library doesn't support " .. typ .. " key" end local pctx if key_type == evp_macro.EVP_PKEY_EC or key_type == evp_macro.EVP_PKEY_DH then local params, err if config.param then -- HACK config.type = nil local ctx, err = load_pem_der(config.param, config, load_param_funcs[key_type]) if err then return nil, "load_pem_der: " .. err end if key_type == evp_macro.EVP_PKEY_EC then local ec_group = ctx ffi_gc(ec_group, C.EC_GROUP_free) ctx = C.EC_KEY_new() if ctx == nil then return nil, "EC_KEY_new() failed" end if C.EC_KEY_set_group(ctx, ec_group) ~= 1 then return nil, format_error("EC_KEY_set_group") end end params = C.EVP_PKEY_new() if not params then return nil, format_error("EVP_PKEY_new") end ffi_gc(params, C.EVP_PKEY_free) if C.EVP_PKEY_assign(params, key_type, ctx) ~= 1 then return nil, format_error("EVP_PKEY_assign") end else params, err = generate_param(key_type, config) if err then return nil, "generate_param: " .. err end end pctx = C.EVP_PKEY_CTX_new(params, nil) if pctx == nil then return nil, format_error("EVP_PKEY_CTX_new") end else pctx = C.EVP_PKEY_CTX_new_id(key_type, nil) if pctx == nil then return nil, format_error("EVP_PKEY_CTX_new_id") end end ffi_gc(pctx, C.EVP_PKEY_CTX_free) if C.EVP_PKEY_keygen_init(pctx) ~= 1 then return nil, format_error("EVP_PKEY_keygen_init") end -- RSA key parameters are set for keygen ctx not paramgen if key_type == evp_macro.EVP_PKEY_RSA then local bits = config.bits or 2048 if bits > 4294967295 then return nil, "bits out of range" end if pkey_macro.EVP_PKEY_CTX_set_rsa_keygen_bits(pctx, bits) <= 0 then return nil, format_error("EVP_PKEY_CTX_ctrl: RSA: bits") end if config.exp then -- don't free exp as it's used internally in key local exp = C.BN_new() if exp == nil then return nil, "BN_new() failed" end C.BN_set_word(exp, config.exp) if pkey_macro.EVP_PKEY_CTX_set_rsa_keygen_pubexp(pctx, exp) <= 0 then return nil, format_error("EVP_PKEY_CTX_ctrl: RSA: exp") end end end local ok, err = _pctx_ctrl_str(pctx, config) if not ok then return nil, "pkey:generate_key: " .. err end local ctx_ptr = ffi_new("EVP_PKEY*[1]") -- TODO: move to use EVP_PKEY_gen after drop support for <1.1.1 if C.EVP_PKEY_keygen(pctx, ctx_ptr) ~= 1 then return nil, format_error("EVP_PKEY_gen") end return ctx_ptr[0] end local function compose_key(config) local typ = config.type or 'RSA' local key_type if typ == "RSA" then key_type = evp_macro.EVP_PKEY_RSA elseif typ == "EC" then key_type = evp_macro.EVP_PKEY_EC elseif evp_macro.ecx_curves[typ] then key_type = evp_macro.ecx_curves[typ] else return nil, "unsupported type " .. typ end if key_type == 0 then return nil, "the linked OpenSSL library doesn't support " .. typ .. " key" end local key, err, key_free, _ if key_type == evp_macro.EVP_PKEY_EC then key = C.EC_KEY_new() if key == nil then return nil, "EC_KEY_new failed" end key_free = C.EC_KEY_free _, err = ec_lib.set_parameters(key, config.params) elseif key_type == evp_macro.EVP_PKEY_RSA then key = C.RSA_new() if key == nil then return nil, "RSA_new failed" end key_free = C.RSA_free _, err = rsa_lib.set_parameters(key, config.params) elseif key_type == evp_macro.EVP_PKEY_ED25519 or key_type == evp_macro.EVP_PKEY_X25519 or key_type == evp_macro.EVP_PKEY_ED448 or key_type == evp_macro.EVP_PKEY_X448 then return ecx_lib.set_parameters(key_type, nil, config.params) end if err then return nil, "failed to construct " .. typ.. " key from parameters: " .. err end local ctx = C.EVP_PKEY_new() if ctx == nil then key_free(key) return nil, "EVP_PKEY_new() failed" end local code = C.EVP_PKEY_assign(ctx, key_type, key) if code ~= 1 then key_free(key) C.EVP_PKEY_free(ctx) return nil, "EVP_PKEY_assign() failed" end return ctx end local load_key_try_funcs = {} do -- TODO: pkcs1 load functions are not required in openssl 3.0 local _load_key_try_funcs = { PEM = { -- Note: make sure we always try load priv key first pr = { ['PEM_read_bio_PrivateKey'] = load_pem_args, -- disable in openssl3.0, PEM_read_bio_PrivateKey can read pkcs1 in 3.0 ['PEM_read_bio_RSAPrivateKey'] = not OPENSSL_3X and load_pem_args or nil, }, pu = { ['PEM_read_bio_PUBKEY'] = load_pem_args, -- disable in openssl3.0, PEM_read_bio_PrivateKey can read pkcs1 in 3.0 ['PEM_read_bio_RSAPublicKey'] = not OPENSSL_3X and load_pem_args or nil, }, }, DER = { pr = { ['d2i_PrivateKey_bio'] = load_der_args, }, pu = { ['d2i_PUBKEY_bio'] = load_der_args, }, }, JWK = { pr = { ['load_jwk'] = {}, }, pu = { ['load_jwk'] = {}, }, } } -- populate * funcs local all_funcs = {} local typ_funcs = {} for fmt, ffs in pairs(_load_key_try_funcs) do load_key_try_funcs[fmt] = ffs local funcs = {} for typ, fs in pairs(ffs) do for f, arg in pairs(fs) do funcs[f] = arg all_funcs[f] = arg if not typ_funcs[typ] then typ_funcs[typ] = {} end typ_funcs[typ] = arg end end load_key_try_funcs[fmt]["*"] = funcs end load_key_try_funcs["*"] = {} load_key_try_funcs["*"]["*"] = all_funcs for typ, fs in pairs(typ_funcs) do load_key_try_funcs[typ] = fs end end local function __tostring(self, is_priv, fmt, is_pkcs1) if fmt == "JWK" then return jwk_lib.dump_jwk(self, is_priv) elseif is_pkcs1 then if fmt ~= "PEM" or self.key_type ~= evp_macro.EVP_PKEY_RSA then return nil, "PKCS#1 format is only supported to encode RSA key in \"PEM\" format" elseif OPENSSL_3X then -- maybe possible with OSSL_ENCODER_CTX_new_for_pkey though return nil, "writing out RSA key in PKCS#1 format is not supported in OpenSSL 3.0" end end if is_priv then if fmt == "DER" then return bio_util.read_wrap(C.i2d_PrivateKey_bio, self.ctx) end -- PEM if is_pkcs1 then local rsa = get_pkey_key[evp_macro.EVP_PKEY_RSA](self.ctx) if rsa == nil then return nil, "unable to read RSA key for writing" end return bio_util.read_wrap(C.PEM_write_bio_RSAPrivateKey, rsa, nil, nil, 0, nil, nil) end return bio_util.read_wrap(C.PEM_write_bio_PrivateKey, self.ctx, nil, nil, 0, nil, nil) else if fmt == "DER" then return bio_util.read_wrap(C.i2d_PUBKEY_bio, self.ctx) end -- PEM if is_pkcs1 then local rsa = get_pkey_key[evp_macro.EVP_PKEY_RSA](self.ctx) if rsa == nil then return nil, "unable to read RSA key for writing" end return bio_util.read_wrap(C.PEM_write_bio_RSAPublicKey, rsa) end return bio_util.read_wrap(C.PEM_write_bio_PUBKEY, self.ctx) end end local _M = {} local mt = { __index = _M, __tostring = __tostring } local empty_table = {} local evp_pkey_ptr_ct = ffi.typeof('EVP_PKEY*') function _M.new(s, opts) local ctx, err s = s or {} if type(s) == 'table' then if s.params then ctx, err = compose_key(s) else ctx, err = generate_key(s) end if err then err = "pkey.new:new_key: " .. err end elseif type(s) == 'string' then ctx, err = load_pem_der(s, opts or empty_table, load_key_try_funcs) if err then err = "pkey.new:load_key: " .. err end elseif type(s) == 'cdata' then if ffi.istype(evp_pkey_ptr_ct, s) then ctx = s else return nil, "pkey.new: expect a EVP_PKEY* cdata at #1" end else return nil, "pkey.new: unexpected type " .. type(s) .. " at #1" end if err then return nil, err end ffi_gc(ctx, C.EVP_PKEY_free) local key_type = OPENSSL_3X and C.EVP_PKEY_get_base_id(ctx) or C.EVP_PKEY_base_id(ctx) if key_type == 0 then return nil, "pkey.new: cannot get key_type" end local key_type_is_ecx = (key_type == evp_macro.EVP_PKEY_ED25519) or (key_type == evp_macro.EVP_PKEY_X25519) or (key_type == evp_macro.EVP_PKEY_ED448) or (key_type == evp_macro.EVP_PKEY_X448) -- although OpenSSL discourages to use this size for digest/verify -- but this is good enough for now local buf_size = OPENSSL_3X and C.EVP_PKEY_get_size(ctx) or C.EVP_PKEY_size(ctx) local self = setmetatable({ ctx = ctx, pkey_ctx = nil, key_type = key_type, key_type_is_ecx = key_type_is_ecx, buf = ctypes.uchar_array(buf_size), buf_size = buf_size, }, mt) return self, nil end function _M.istype(l) return l and l.ctx and ffi.istype(evp_pkey_ptr_ct, l.ctx) end function _M:get_key_type(nid_only) return nid_only and self.key_type or objects_lib.nid2table(self.key_type) end function _M:get_size() return OPENSSL_3X and C.EVP_PKEY_get_size(self.ctx) or C.EVP_PKEY_size(self.ctx) end function _M:get_default_digest_type() local nid = ptr_of_int() local code = C.EVP_PKEY_get_default_digest_nid(self.ctx, nid) if code == -2 then return nil, "operation is not supported by the public key algorithm" elseif code <= 0 then return nil, format_error("get_default_digest", code) end local ret = objects_lib.nid2table(nid[0]) ret.mandatory = code == 2 return ret end function _M:get_provider_name() if not OPENSSL_3X then return false, "pkey:get_provider_name is not supported" end local p = C.EVP_PKEY_get0_provider(self.ctx) if p == nil then return nil end return ffi_str(C.OSSL_PROVIDER_get0_name(p)) end if OPENSSL_3X then local param_lib = require "resty.openssl.param" _M.settable_params, _M.set_params, _M.gettable_params, _M.get_param = param_lib.get_params_func("EVP_PKEY", "key_type") end function _M:get_parameters() if not self.key_type_is_ecx then local getter = get_pkey_key[self.key_type] if not getter then return nil, "key getter not defined" end local key = getter(self.ctx) if key == nil then return nil, format_error("EVP_PKEY_get0_{key}") end if self.key_type == evp_macro.EVP_PKEY_RSA then return rsa_lib.get_parameters(key) elseif self.key_type == evp_macro.EVP_PKEY_EC then return ec_lib.get_parameters(key) elseif self.key_type == evp_macro.EVP_PKEY_DH then return dh_lib.get_parameters(key) end else return ecx_lib.get_parameters(self.ctx) end end function _M:set_parameters(opts) if not self.key_type_is_ecx then local getter = get_pkey_key[self.key_type] if not getter then return nil, "key getter not defined" end local key = getter(self.ctx) if key == nil then return nil, format_error("EVP_PKEY_get0_{key}") end if self.key_type == evp_macro.EVP_PKEY_RSA then return rsa_lib.set_parameters(key, opts) elseif self.key_type == evp_macro.EVP_PKEY_EC then return ec_lib.set_parameters(key, opts) elseif self.key_type == evp_macro.EVP_PKEY_DH then return dh_lib.set_parameters(key, opts) end else -- for ecx keys we always create a new EVP_PKEY and release the old one local ctx, err = ecx_lib.set_parameters(self.key_type, self.ctx, opts) if err then return false, err end self.ctx = ctx end end function _M:is_private() local params = self:get_parameters() if self.key_type == evp_macro.EVP_PKEY_RSA then return params.d ~= nil else return params.private ~= nil end end local ASYMMETRIC_OP_ENCRYPT = 0x1 local ASYMMETRIC_OP_DECRYPT = 0x2 local ASYMMETRIC_OP_SIGN_RAW = 0x3 local ASYMMETRIC_OP_VERIFY_RAW = 0x4 local ASYMMETRIC_OP_VERIFY_RECOVER = 0x5 local function asymmetric_routine(self, s, op, padding, opts) if type(s) ~= "string" then return nil, "pkey:asymmetric_routine: expect a string at #1" end local pkey_ctx if self.key_type == evp_macro.EVP_PKEY_RSA then if padding then padding = tonumber(padding) if not padding then return nil, "invalid padding: " .. __tostring(padding) end else padding = rsa_macro.paddings.RSA_PKCS1_PADDING end end if self.pkey_ctx ~= nil and self.key_type ~= evp_macro.EVP_PKEY_RSA then pkey_ctx = self.pkey_ctx else pkey_ctx = C.EVP_PKEY_CTX_new(self.ctx, nil) if pkey_ctx == nil then return nil, format_error("pkey:asymmetric_routine EVP_PKEY_CTX_new()") end ffi_gc(pkey_ctx, C.EVP_PKEY_CTX_free) self.pkey_ctx = pkey_ctx end local f, fint, op_name if op == ASYMMETRIC_OP_ENCRYPT then fint = C.EVP_PKEY_encrypt_init f = C.EVP_PKEY_encrypt op_name = "encrypt" elseif op == ASYMMETRIC_OP_DECRYPT then fint = C.EVP_PKEY_decrypt_init f = C.EVP_PKEY_decrypt op_name = "decrypt" elseif op == ASYMMETRIC_OP_SIGN_RAW then fint = C.EVP_PKEY_sign_init f = C.EVP_PKEY_sign op_name = "sign" elseif op == ASYMMETRIC_OP_VERIFY_RAW then fint = C.EVP_PKEY_verify_init f = C.EVP_PKEY_verify op_name = "verify" elseif op == ASYMMETRIC_OP_VERIFY_RECOVER then fint = C.EVP_PKEY_verify_recover_init f = C.EVP_PKEY_verify_recover op_name = "verify_recover" else error("bad \"op\", got " .. op, 2) end local code = fint(pkey_ctx) if code < 1 then return nil, format_error("pkey:asymmetric_routine EVP_PKEY_" .. op_name .. "_init", code) end -- EVP_PKEY_CTX_ctrl must be called after *_init if self.key_type == evp_macro.EVP_PKEY_RSA and padding and pkey_macro.EVP_PKEY_CTX_set_rsa_padding(pkey_ctx, padding) ~= 1 then return nil, format_error("pkey:asymmetric_routine EVP_PKEY_CTX_set_rsa_padding") end local ok, err = _pctx_ctrl_str(pkey_ctx, opts) if not ok then return nil, "pkey:asymmetric_routine: " .. err end local buf, buf_len if opts and opts.buf_in then buf = opts.buf_in buf_len = #buf else buf = self.buf buf_len = ptr_of_size_t(self.buf_size) end code = f(pkey_ctx, buf, buf_len, s, #s) if code <= 0 then return nil, format_error("pkey:asymmetric_routine EVP_PKEY_" .. op_name, code) end if not opts or not opts.buf_in then return ffi_str(self.buf, buf_len[0]), nil end return true end _M.PADDINGS = rsa_macro.paddings function _M:encrypt(s, padding, opts) return asymmetric_routine(self, s, ASYMMETRIC_OP_ENCRYPT, padding, opts) end function _M:decrypt(s, padding, opts) return asymmetric_routine(self, s, ASYMMETRIC_OP_DECRYPT, padding, opts) end function _M:sign_raw(s, padding, opts) -- TODO: temporary hack before OpenSSL has proper check for existence of private key if self.key_type_is_ecx and not self:is_private() then return nil, "pkey:sign_raw: missing private key" end return asymmetric_routine(self, s, ASYMMETRIC_OP_SIGN_RAW, padding, opts) end function _M:verify_raw(signature, hashed_message, md_alg, padding, opts) opts = opts or {} opts.buf_in = signature if md_alg then table.insert(opts, "digest:" .. md_alg) end return asymmetric_routine(self, hashed_message, ASYMMETRIC_OP_VERIFY_RAW, padding, opts) end function _M:verify_recover(s, padding, opts) return asymmetric_routine(self, s, ASYMMETRIC_OP_VERIFY_RECOVER, padding, opts) end local evp_pkey_ctx_ptr_ptr_ct = ffi.typeof('EVP_PKEY_CTX*[1]') local function sign_verify_prepare(self, fint, md_alg, padding, opts) local md_ctx = C.EVP_MD_CTX_new() if md_ctx == nil then return nil, "pkey:sign_verify_prepare: EVP_MD_CTX_new() failed" end ffi_gc(md_ctx, C.EVP_MD_CTX_free) local algo if md_alg then if OPENSSL_3X then algo = C.EVP_MD_fetch(ctx_lib.get_libctx(), md_alg, nil) else algo = C.EVP_get_digestbyname(md_alg) end if algo == nil then return nil, string.format("pkey:sign_verify_prepare: invalid digest type \"%s\"", md_alg) end end local ppkey_ctx = evp_pkey_ctx_ptr_ptr_ct() if fint(md_ctx, ppkey_ctx, algo, nil, self.ctx) ~= 1 then return nil, format_error("pkey:sign_verify_prepare: Init failed") end -- EVP_PKEY_CTX_ctrl must be called after *_init if self.key_type == evp_macro.EVP_PKEY_RSA and padding and pkey_macro.EVP_PKEY_CTX_set_rsa_padding(ppkey_ctx[0], padding) ~= 1 then return nil, format_error("pkey:sign_verify_prepare EVP_PKEY_CTX_set_rsa_padding") end local ok, err = _pctx_ctrl_str(ppkey_ctx[0], opts) if not ok then return nil, "pkey:sign_verify_prepare: " .. err end return md_ctx end function _M:sign(digest, md_alg, padding, opts) -- TODO: temporary hack before OpenSSL has proper check for existence of private key if self.key_type_is_ecx and not self:is_private() then return nil, "pkey:sign: missing private key" end local ret, err if digest_lib.istype(digest) then local length = ptr_of_uint() if C.EVP_SignFinal(digest.ctx, self.buf, length, self.ctx) ~= 1 then return nil, format_error("pkey:sign: EVP_SignFinal") end ret = ffi_str(self.buf, length[0]) elseif type(digest) == "string" then local md_ctx, err = sign_verify_prepare(self, C.EVP_DigestSignInit, md_alg, padding, opts) if err then return nil, err end local length = ptr_of_size_t(self.buf_size) if C.EVP_DigestSign(md_ctx, self.buf, length, digest, #digest) ~= 1 then return nil, format_error("pkey:sign: EVP_DigestSign") end ret = ffi_str(self.buf, length[0]) else return nil, "pkey:sign: expect a digest instance or a string at #1" end if self.key_type == evp_macro.EVP_PKEY_EC and opts and opts.ecdsa_use_raw then local ec_key = get_pkey_key[evp_macro.EVP_PKEY_EC](self.ctx) ret, err = ecdsa_util.sig_der2raw(ret, ec_key) if err then return nil, "pkey:sign: ecdsa.sig_der2raw: " .. err end end return ret end function _M:verify(signature, digest, md_alg, padding, opts) if type(signature) ~= "string" then return nil, "pkey:verify: expect a string at #1" end local err if self.key_type == evp_macro.EVP_PKEY_EC and opts and opts.ecdsa_use_raw then local ec_key = get_pkey_key[evp_macro.EVP_PKEY_EC](self.ctx) signature, err = ecdsa_util.sig_raw2der(signature, ec_key) if err then return nil, "pkey:sign: ecdsa.sig_raw2der: " .. err end end local code if digest_lib.istype(digest) then code = C.EVP_VerifyFinal(digest.ctx, signature, #signature, self.ctx) elseif type(digest) == "string" then local md_ctx, err = sign_verify_prepare(self, C.EVP_DigestVerifyInit, md_alg, padding, opts) if err then return nil, err end code = C.EVP_DigestVerify(md_ctx, signature, #signature, digest, #digest) else return nil, "pkey:verify: expect a digest instance or a string at #2" end if code == 0 then return false, format_error("pkey:verify") elseif code == 1 then return true, nil end return false, format_error("pkey:verify") end function _M:derive(peerkey) if not self.istype(peerkey) then return nil, "pkey:derive: expect a pkey instance at #1" end local pctx = C.EVP_PKEY_CTX_new(self.ctx, nil) if pctx == nil then return nil, "pkey:derive: EVP_PKEY_CTX_new() failed" end ffi_gc(pctx, C.EVP_PKEY_CTX_free) local code = C.EVP_PKEY_derive_init(pctx) if code <= 0 then return nil, format_error("pkey:derive: EVP_PKEY_derive_init", code) end code = C.EVP_PKEY_derive_set_peer(pctx, peerkey.ctx) if code <= 0 then return nil, format_error("pkey:derive: EVP_PKEY_derive_set_peer", code) end local buflen = ptr_of_size_t() code = C.EVP_PKEY_derive(pctx, nil, buflen) if code <= 0 then return nil, format_error("pkey:derive: EVP_PKEY_derive check buffer size", code) end local buf = ctypes.uchar_array(buflen[0]) code = C.EVP_PKEY_derive(pctx, buf, buflen) if code <= 0 then return nil, format_error("pkey:derive: EVP_PKEY_derive", code) end return ffi_str(buf, buflen[0]) end local function pub_or_priv_is_pri(pub_or_priv) if pub_or_priv == 'private' or pub_or_priv == 'PrivateKey' then return true elseif not pub_or_priv or pub_or_priv == 'public' or pub_or_priv == 'PublicKey' then return false else return nil, string.format("can only export private or public key, not %s", pub_or_priv) end end function _M:tostring(pub_or_priv, fmt, pkcs1) local is_priv, err = pub_or_priv_is_pri(pub_or_priv) if err then return nil, "pkey:tostring: " .. err end return __tostring(self, is_priv, fmt, pkcs1) end function _M:to_PEM(pub_or_priv, pkcs1) return self:tostring(pub_or_priv, "PEM", pkcs1) end function _M.paramgen(config) local typ = config.type local key_type, write_func, get_ctx_func if typ == "EC" then key_type = evp_macro.EVP_PKEY_EC if key_type == 0 then return nil, "pkey.paramgen: the linked OpenSSL library doesn't support EC key" end write_func = C.PEM_write_bio_ECPKParameters get_ctx_func = function(ctx) local ctx = get_pkey_key[key_type](ctx) if ctx == nil then error(format_error("pkey.paramgen: EVP_PKEY_get0_{key}")) end return C.EC_KEY_get0_group(ctx) end elseif typ == "DH" then key_type = evp_macro.EVP_PKEY_DH if key_type == 0 then return nil, "pkey.paramgen: the linked OpenSSL library doesn't support DH key" end write_func = C.PEM_write_bio_DHparams get_ctx_func = get_pkey_key[key_type] else return nil, "pkey.paramgen: unsupported type " .. type end local params, err = generate_param(key_type, config) if err then return nil, "pkey.paramgen: generate_param: " .. err end local ctx = get_ctx_func(params) if ctx == nil then return nil, format_error("pkey.paramgen: EVP_PKEY_get0_{key}") end -- since ctx is always a internal pointer inside of params (a EVP_PKEY*), thus avoid use tail call -- here to avoid using `ctx` after `params` is GC collected. local res, err = bio_util.read_wrap(write_func, ctx) return res, err end return _M PKA½N]«Á“åPP!resty/openssl/auxiliary/ecdsa.luanu„[µü¤local ffi = require "ffi" local ffi_new = ffi.new local ffi_gc = ffi.gc local ffi_str = ffi.string local C = ffi.C require "resty.openssl.include.ecdsa" local bn_lib = require "resty.openssl.bn" local format_error = require("resty.openssl.err").format_error local ceil = math.ceil local _M = {} --[[ A DER formatted ECDSA signature looks like SEQUENCE { INTEGER 4B 5F CF E8 A7 BD 6A C2 1D 25 0D F8 DE 9C EF DC C4 DF 33 F3 AF 2F 3D 5B 83 2C 1F BD 98 C8 61 34 INTEGER 7E F9 E9 60 B1 E6 7F 59 9E 2C 38 22 39 B2 C4 B1 71 3E FA AE 24 A4 B7 D2 03 5A 60 8D F3 34 3D E8 } It has ASN.1 headers on both the SEQUENCE and INTEGERs, so the total length is typically 70 bytes (3 headers, 2 bytes each). The binary form is typically 64 bytes. ]] local function group_size(ec_key) local group = C.EC_KEY_get0_group(ec_key) if group == nil then assert("failed to get EC group", 2) end local sz = C.EC_GROUP_order_bits(group) if sz <= 0 then assert("failed to get EC group order bits", 2) end return ceil(sz / 8) end _M.sig_der2raw = function(der, ec_key) if ec_key == nil then error("ec_key is required", 2) end local psize = group_size(ec_key) local buf = ffi.new("const unsigned char*", der) local buf_ptr = ffi.new("const unsigned char*[1]", buf) local sig = C.d2i_ECDSA_SIG(nil, buf_ptr, #der) if sig == nil then return nil, format_error("failed to parse ECDSA signature: d2i_ECDSA_SIG") end ffi_gc(sig, C.ECDSA_SIG_free) local bn_r_ptr = ffi_new("const BIGNUM*[1]") local bn_s_ptr = ffi_new("const BIGNUM*[1]") C.ECDSA_SIG_get0(sig, bn_r_ptr, bn_s_ptr) if bn_r_ptr[0] == nil or bn_s_ptr[0] == nil then return nil, format_error("failed to get r or s from sig") end local bn_r = bn_lib.dup(bn_r_ptr[0]) local bn_s = bn_lib.dup(bn_s_ptr[0]) if bn_r == nil or bn_s == nil then return nil, format_error("failed to dup r or s") end local rbin, err = bn_r:to_binary(psize) if err then return nil, "failed to parse r to binary: " .. err end local sbin, err = bn_s:to_binary(psize) if err then return nil, "failed to parse s to binary: " .. err end return rbin .. sbin end _M.sig_raw2der = function(bin, ec_key) if ec_key == nil then error("ec_key is required", 2) end local psize = group_size(ec_key) if #bin ~= psize * 2 then return nil, "invalid signature length, expect " .. (psize * 2) .. " but got " .. #bin end local rbin = string.sub(bin, 1, psize) local sbin = string.sub(bin, psize + 1) local bn_r, err = bn_lib.from_binary(rbin) if err then return nil, "failed to parse r from binary: " .. err end local bn_s, err = bn_lib.from_binary(sbin) if err then return nil, "failed to parse s from binary: " .. err end local sig = C.ECDSA_SIG_new() if sig == nil then return nil, format_error("ECDSA_SIG_new") end ffi_gc(sig, C.ECDSA_SIG_free) local bn_r0 = C.BN_dup(bn_r.ctx) local bn_s0 = C.BN_dup(bn_s.ctx) if not bn_r0 or not bn_s0 then return nil, format_error("failed to BN_dup r or s") end local ok = C.ECDSA_SIG_set0(sig, bn_r0, bn_s0) if ok ~= 1 then return nil, format_error("failed to set r and s to sig") end local der_len = C.i2d_ECDSA_SIG(sig, nil) if der_len <= 0 then return nil, format_error("failed to get ECDSA signature size") end local buf = ffi_new("unsigned char[?]", der_len) local buf_ptr = ffi.new("unsigned char*[1]", buf) der_len = C.i2d_ECDSA_SIG(sig, buf_ptr) if der_len <= 0 then return nil, format_error("failed to encode ECDSA signature to DER") end return ffi_str(buf, der_len) end return _M PKA½N]ø=¾  "resty/openssl/auxiliary/compat.luanu„[µü¤local nkeys do local pok, perr = pcall(require, "table.nkeys") if pok then nkeys = perr else nkeys = function(tbl) local cnt = 0 for _ in pairs(tbl) do cnt = cnt + 1 end return cnt end end end local noop = function() end local log_warn, log_debug local encode_base64url, decode_base64url if ngx then log_warn = function(...) ngx.log(ngx.WARN, ...) end log_debug = function(...) ngx.log(ngx.DEBUG, ...) end local b64 = require("ngx.base64") encode_base64url = b64.encode_base64url decode_base64url = b64.decode_base64url else log_warn = noop log_debug = noop local pok, basexx = pcall(require, "basexx") if pok then encode_base64url = basexx.to_url64 decode_base64url = basexx.from_url64 else encode_base64url = function() error("no base64 library is found, needs either ngx.base64 or basexx") end decode_base64url = encode_base64url end end local json do local pok, perr = pcall(require, "cjson.safe") if pok then json = perr else local pok, perr = pcall(require, "dkjson") if pok then json = perr end end if not json then json = setmetatable({}, { __index = function() return function() error("no JSON library is found, needs either cjson or dkjson") end end, }) end end return { nkeys = nkeys, log_warn = log_warn, log_debug = log_debug, encode_base64url = encode_base64url, decode_base64url = decode_base64url, json = json, }PKA½N]^ÿû‡6‡6resty/openssl/auxiliary/jwk.luanu„[µü¤ local ffi = require "ffi" local C = ffi.C local ffi_str = ffi.string local evp_macro = require "resty.openssl.include.evp" local rsa_lib = require "resty.openssl.rsa" local ec_lib = require "resty.openssl.ec" local ecx_lib = require "resty.openssl.ecx" local bn_lib = require "resty.openssl.bn" local digest_lib = require "resty.openssl.digest" local encode_base64url = require "resty.openssl.auxiliary.compat".encode_base64url local decode_base64url = require "resty.openssl.auxiliary.compat".decode_base64url local param_lib = require "resty.openssl.param" local json = require "resty.openssl.auxiliary.compat".json local ctypes = require "resty.openssl.auxiliary.ctypes" local format_error = require "resty.openssl.err".format_error local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X local _M = {} local rsa_jwk_params = {"n", "e", "d", "p", "q", "dp", "dq", "qi"} local rsa_openssl_params = rsa_lib.params local function load_jwk_rsa(tbl) if not tbl["n"] or not tbl["e"] then return nil, "at least \"n\" and \"e\" parameter is required" end local params = {} local err for i, k in ipairs(rsa_jwk_params) do local v = tbl[k] if v then v = decode_base64url(v) if not v then return nil, "cannot decode parameter \"" .. k .. "\" from base64 " .. tbl[k] end params[rsa_openssl_params[i]], err = bn_lib.from_binary(v) if err then return nil, "cannot use parameter \"" .. k .. "\": " .. err end end end local key = C.RSA_new() if key == nil then return nil, "RSA_new() failed" end local _, err = rsa_lib.set_parameters(key, params) if err ~= nil then C.RSA_free(key) return nil, err end return key end local ec_curves = { ["P-256"] = C.OBJ_ln2nid("prime256v1"), ["P-384"] = C.OBJ_ln2nid("secp384r1"), ["P-521"] = C.OBJ_ln2nid("secp521r1"), } local ec_curves_reverse = {} for k, v in pairs(ec_curves) do ec_curves_reverse[v] = k end local ec_jwk_params = {"x", "y", "d"} local function load_jwk_ec(tbl) local curve = tbl['crv'] if not curve then return nil, "\"crv\" not defined for EC key" end if not tbl["x"] or not tbl["y"] then return nil, "at least \"x\" and \"y\" parameter is required" end local curve_nid = ec_curves[curve] if not curve_nid then return nil, "curve \"" .. curve .. "\" is not supported by this library" elseif curve_nid == 0 then return nil, "curve \"" .. curve .. "\" is not supported by linked OpenSSL" end local params = {} local err for _, k in ipairs(ec_jwk_params) do local v = tbl[k] if v then v = decode_base64url(v) if not v then return nil, "cannot decode parameter \"" .. k .. "\" from base64 " .. tbl[k] end params[k], err = bn_lib.from_binary(v) if err then return nil, "cannot use parameter \"" .. k .. "\": " .. err end end end -- map to the name we expect if params["d"] then params["private"] = params["d"] params["d"] = nil end params["group"] = curve_nid local key = C.EC_KEY_new() if key == nil then return nil, "EC_KEY_new() failed" end local _, err = ec_lib.set_parameters(key, params) if err ~= nil then C.EC_KEY_free(key) return nil, err end return key end local function load_jwk_okp(key_type, tbl) local params = {} if tbl["d"] then params.private = decode_base64url(tbl["d"]) elseif tbl["x"] then params.public = decode_base64url(tbl["x"]) else return nil, "at least \"x\" or \"d\" parameter is required" end local key, err = ecx_lib.set_parameters(key_type, nil, params) if err ~= nil then return nil, err end return key end local ecx_curves_reverse = {} for k, v in pairs(evp_macro.ecx_curves) do ecx_curves_reverse[v] = k end function _M.load_jwk(txt) local tbl, err = json.decode(txt) if err then return nil, "error decoding JSON from JWK: " .. err elseif type(tbl) ~= "table" then return nil, "except input to be decoded as a table, got " .. type(tbl) end local key, key_free, key_type, err if tbl["kty"] == "RSA" then key_type = evp_macro.EVP_PKEY_RSA if key_type == 0 then return nil, "the linked OpenSSL library doesn't support RSA key" end key, err = load_jwk_rsa(tbl) key_free = C.RSA_free elseif tbl["kty"] == "EC" then key_type = evp_macro.EVP_PKEY_EC if key_type == 0 then return nil, "the linked OpenSSL library doesn't support EC key" end key, err = load_jwk_ec(tbl) key_free = C.EC_KEY_free elseif tbl["kty"] == "OKP" then local curve = tbl["crv"] key_type = evp_macro.ecx_curves[curve] if not key_type then return nil, "unknown curve \"" .. tostring(curve) elseif key_type == 0 then return nil, "the linked OpenSSL library doesn't support \"" .. curve .. "\" key" end key, err = load_jwk_okp(key_type, tbl) if key ~= nil then return key end key_free = function() end else return nil, "not yet supported jwk type \"" .. (tbl["kty"] or "nil") .. "\"" end if err then return nil, "failed to construct " .. tbl["kty"] .. " key from JWK: " .. err end local ctx = C.EVP_PKEY_new() if ctx == nil then key_free(key) return nil, "EVP_PKEY_new() failed" end local code = C.EVP_PKEY_assign(ctx, key_type, key) if code ~= 1 then key_free(key) C.EVP_PKEY_free(ctx) return nil, "EVP_PKEY_assign() failed" end return ctx end function _M.dump_jwk(pkey, is_priv) local jwk if is_priv and not pkey:is_private() then return nil, "jwk.dump_jwk: could not dump public key as private key" end if pkey.key_type == evp_macro.EVP_PKEY_RSA then local param_keys = { "n" , "e" } if is_priv then param_keys = rsa_jwk_params end local params, err = pkey:get_parameters() if err then return nil, "jwk.dump_jwk: " .. err end jwk = { kty = "RSA", } for i, p in ipairs(param_keys) do local v = params[rsa_openssl_params[i]]:to_binary() jwk[p] = encode_base64url(v) end elseif pkey.key_type == evp_macro.EVP_PKEY_EC then local params, err = pkey:get_parameters() if err then return nil, "jwk.dump_jwk: " .. err end jwk = { kty = "EC", crv = ec_curves_reverse[params.group], x = encode_base64url(params.x:to_binary()), y = encode_base64url(params.y:to_binary()), } if is_priv then jwk.d = encode_base64url(params.private:to_binary()) end elseif ecx_curves_reverse[pkey.key_type] then local params, err = pkey:get_parameters() if err then return nil, "jwk.dump_jwk: " .. err end jwk = { kty = "OKP", crv = ecx_curves_reverse[pkey.key_type], x = encode_base64url(params.public), } if is_priv then jwk.d = encode_base64url(params.private) end else return nil, "jwk.dump_jwk: not implemented for this key type" end local der = pkey:tostring(is_priv and "private" or "public", "DER") local dgst = digest_lib.new("sha256") local d, err = dgst:final(der) if err then return nil, "jwk.dump_jwk: failed to calculate digest for key" end jwk.kid = encode_base64url(d) return json.encode(jwk) end -- 3.x load_jwk local settable_schema = {} local function get_settable_schema(type, selection, properties) -- the pctx can't be reused after EVP_PKEY_fromdata_settable, so we create a new here local pctx = C.EVP_PKEY_CTX_new_from_name(nil, type, properties) if pctx == nil then return nil, "EVP_PKEY_CTX_new_from_name() failed" end ffi.gc(pctx, C.EVP_PKEY_CTX_free) if C.EVP_PKEY_fromdata_init(pctx) ~= 1 then return nil, "EVP_PKEY_fromdata_init() failed" end if settable_schema[type] then return settable_schema[type] end local settable = C.EVP_PKEY_fromdata_settable(pctx, selection) if settable == nil then return nil, "EVP_PKEY_fromdata_settable() failed" end local schema = {} param_lib.parse_params_schema(settable, schema, nil) settable_schema[type] = schema return schema end local ossl_params_jwk_mapping = { RSA = { n = "n", e = "e", d = "d", p = "rsa-factor1", q = "rsa-factor2", dp = "rsa-exponent1", dq = "rsa-exponent2", qi = "rsa-coefficient1", }, EC = { x = "x", y = "y", d = "priv", crv = "group", }, OKP = { x = "pub", d = "priv", }, } local jwk_params_required_mapping = { RSA = { n = true, e = true, }, EC = { crv = true, x = true, y = true, }, -- OKP required parameters are checked elsewhere OKP = {}, } local ec_coord_size_map = { -- JWK RFC7518 ["P-256"] = 32, ["P-384"] = 48, ["P-521"] = 66, -- rounded up to the next byte -- JOSE RFC8812 and others prime256v1 = 32, secp384r1 = 48, secp521r1 = 66, -- rounded up to the next byte brainpoolP256r1 = 32, brainpoolP320r1 = 40, brainpoolP384r1 = 48, brainpoolP512r1 = 64, -- note this is 512 not 521 secp256k1 = 32, } -- Pad coordinates to field size with leading zeros local function pad_ec_coordinate(coord, crv) local size = ec_coord_size_map[crv] if not size then return nil, "unsupported curve " .. tostring(crv) end if #coord < size then return string.rep("\x00", size - #coord) .. coord elseif #coord > size then return nil, "coordinate length " .. #coord .. " is longer than expected " .. size else return coord end end function _M.load_jwk_ex(txt, ptyp, properties) local tbl, err = json.decode(txt) if err then return nil, "jwk:load_jwk: error decoding JSON from JWK: " .. err elseif type(tbl) ~= "table" then return nil, "jwk:load_jwk: except input to be decoded as a table, got " .. type(tbl) elseif not tbl["kty"] then return nil, "jwk:load_jwk: missing \"kty\" parameter from JWK" end local kty = tbl["kty"] tbl["kty"] = nil local selection = ptyp == "pu" and evp_macro.EVP_PKEY_PUBLIC_KEY or evp_macro.EVP_PKEY_KEYPAIR local pkey_name = kty if kty == "OKP" then pkey_name = tbl["crv"] if not pkey_name then return nil, "jwk:load_jwk: missing \"crv\" parameter from OKP JWK" end tbl["crv"] = nil if not tbl["x"] and not tbl["d"] then return nil, "jwk:load_jwk: missing at least one of \"x\" or \"d\" parameter from OKP JWK" end if tbl["d"] and selection == evp_macro.EVP_PKEY_PUBLIC_KEY then -- if only 'd' is provided and we want to import a public key, first create a private key selection = evp_macro.EVP_PKEY_KEYPAIR end end local ctx = ffi.new("EVP_PKEY*[1]") local pctx = C.EVP_PKEY_CTX_new_from_name(nil, pkey_name, nil) if pctx == nil then return nil, "jwk:load_jwk: EVP_PKEY_CTX_new_from_name() failed" end ffi.gc(pctx, C.EVP_PKEY_CTX_free) if C.EVP_PKEY_fromdata_init(pctx) ~= 1 then return nil, "jwk:load_jwk: EVP_PKEY_fromdata_init() failed" end local schema, err = get_settable_schema(pkey_name, selection, properties) if not schema then return nil, "jwk:load_jwk: failed to get key schema for " .. pkey_name .. " key: " .. err end local mapping = ossl_params_jwk_mapping[kty] if not mapping then return nil, "jwk:load_jwk: not yet supported jwk type \"" .. (tbl["kty"] or "nil") .. "\"" end local required = jwk_params_required_mapping[kty] local params_t = {} for kfrom, kto in pairs(mapping) do local v = tbl[kfrom] if type(v) == "string" and (selection == evp_macro.EVP_PKEY_KEYPAIR or required[kfrom]) then if kfrom ~= "crv" then v = decode_base64url(v) if not v then return nil, "jwk:load_jwk: cannot decode parameter \"" .. kfrom .. "\" from base64 " .. tbl[kfrom] end -- reverse endian expect for OKP keys if kty ~= "OKP" or (kfrom ~= "x" and kfrom ~= "d") then v = v:reverse() end end params_t[kto] = v elseif required[kfrom] then return nil, "jwk:load_jwk: missing required parameter \"" .. kfrom .. "\"" end end if kty == "EC" then if params_t["x"] and params_t["y"] then local x = params_t["x"]:reverse() local y = params_t["y"]:reverse() x, err = pad_ec_coordinate(x, tbl["crv"]) if err then return nil, "jwk:load_jwk: pad_ec_coordinate: " .. err end y, err = pad_ec_coordinate(y, tbl["crv"]) if err then return nil, "jwk:load_jwk: pad_ec_coordinate: " .. err end params_t["pub"] = "\x04" .. x .. y params_t["x"], params_t["y"] = nil, nil end end local params, err = param_lib.construct(params_t, nil, schema) if params == nil then return nil, "jwk:load_jwk: failed to construct parameters for " .. kty .. " key: " .. err end if C.EVP_PKEY_fromdata(pctx, ctx, selection, params) ~= 1 then return nil, format_error("jwk:load_jwk: EVP_PKEY_fromdata()") end if kty == "OKP" and ptyp == "pu" and params_t["priv"] then -- re-export the pubkey local MAX_ECX_KEY_SIZE = 114 -- ed448 uses 114 bytes local buf = ctypes.uchar_array(MAX_ECX_KEY_SIZE) local length = ctypes.ptr_of_size_t(MAX_ECX_KEY_SIZE) if C.EVP_PKEY_get_raw_public_key(ctx[0], buf, length) ~= 1 then C.EVP_PKEY_free(ctx[0]) return nil, format_error("jwk:load_jwk: unable to derive public key from private key OKP JWK") end params_t["pub"] = ffi_str(buf, length[0]) C.EVP_PKEY_free(ctx[0]) ctx[0] = nil local params, err = param_lib.construct(params_t, nil, schema) if params == nil then return nil, "jwk:load_jwk: failed to construct parameters for " .. kty .. " key: " .. err end if C.EVP_PKEY_fromdata(pctx, ctx, evp_macro.EVP_PKEY_PUBLIC_KEY, params) ~= 1 then return nil, format_error("jwk:load_jwk: EVP_PKEY_fromdata()") end return ctx[0] end return ctx[0] end if OPENSSL_3X then _M.load_jwk = _M.load_jwk_ex end return _M PKA½N]¿%Æconnection->ssl->connection" end return ffi.cast(ssl_type, void_pp[0]) end get_req_ssl_ctx = function() local c = get_request() local ret if stream_subsystem then ret = C.ngx_stream_lua_resty_openssl_aux_get_request_ssl_ctx(c, void_pp) else ret = C.ngx_http_lua_resty_openssl_aux_get_request_ssl_ctx(c, void_pp) end if ret ~= NGX_OK then return nil, "cannot read r->connection->ssl->session_ctx" end return ffi.cast(ssl_ctx_type, void_pp[0]) end get_socket_ssl = function(sock) local u = sock[SOCKET_CTX_INDEX] local ret = get_sock_ssl(u, void_pp) if ret ~= NGX_OK then return nil, "cannot read u->peer.connection->ssl->connection" end return ffi.cast(ssl_type, void_pp[0]) end get_socket_ssl_ctx = function(sock) local u = sock[SOCKET_CTX_INDEX] local ret if stream_subsystem then ret = C.ngx_stream_lua_resty_openssl_aux_get_socket_ssl_ctx(u, void_pp) else ret = C.ngx_http_lua_resty_openssl_aux_get_socket_ssl_ctx(u, void_pp) end if ret ~= NGX_OK then return nil, "cannot read u->peer.connection->ssl->session_ctx" end return ffi.cast(ssl_ctx_type, void_pp[0]) end return { get_req_ssl = get_req_ssl, get_req_ssl_ctx = get_req_ssl_ctx, get_socket_ssl = get_socket_ssl, get_socket_ssl_ctx = get_socket_ssl_ctx, } PKA½N]åµ8‘resty/openssl/auxiliary/bio.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_new = ffi.new local ffi_str = ffi.string require "resty.openssl.include.bio" local format_error = require("resty.openssl.err").format_error local function read_wrap(f, ...) if type(f) ~= "cdata" then -- should be explictly a function return nil, "bio_util.read_wrap: expect a function at #1" end local bio_method = C.BIO_s_mem() if bio_method == nil then return nil, "bio_util.read_wrap: BIO_s_mem() failed" end local bio = C.BIO_new(bio_method) ffi_gc(bio, C.BIO_free) -- BIO_reset; #define BIO_CTRL_RESET 1 local code = C.BIO_ctrl(bio, 1, 0, nil) if code ~= 1 then return nil, "bio_util.read_wrap: BIO_ctrl() failed: " .. code end local code = f(bio, ...) if code ~= 1 then return nil, format_error(f, code) end local buf = ffi_new("char *[1]") -- BIO_get_mem_data; #define BIO_CTRL_INFO 3 local length = C.BIO_ctrl(bio, 3, 0, buf) return ffi_str(buf[0], length) end return { read_wrap = read_wrap, }PKA½N];vz¦¦"resty/openssl/auxiliary/ctypes.luanu„[µü¤-- Put common type definition at the same place for convenience -- and standarlization local ffi = require "ffi" --[[ TYPE_ptr: usually used to define a pointer (to cast or something) char* var_name; // <- we use char_ptr ptr_of_TYPE: usually used to pass the pointer of an object that is already allocated. so that we can also set value of it as well int p = 2; // ptr_of_int(); ptr_of_int[0] = 2; plus_one(&p); // <- we use ptr_of_int ]] return { void_ptr = ffi.typeof("void *"), ptr_of_uint64 = ffi.typeof("uint64_t[1]"), ptr_of_uint = ffi.typeof("unsigned int[1]"), ptr_of_size_t = ffi.typeof("size_t[1]"), ptr_of_int = ffi.typeof("int[1]"), null = ffi.new("void *"), -- hack wher ngx.null is not available uchar_array = ffi.typeof("unsigned char[?]"), uchar_ptr = ffi.typeof("unsigned char*"), SIZE_MAX = math.pow(2, 64), -- nginx set _FILE_OFFSET_BITS to 64 }PKA½N]ÜÜÿŃ)ƒ)!resty/openssl/auxiliary/nginx.luanu„[µü¤local get_req_ssl, get_req_ssl_ctx local get_socket_ssl, get_socket_ssl_ctx local pok, nginx_c = pcall(require, "resty.openssl.auxiliary.nginx_c") if pok and not os.getenv("CI_SKIP_NGINX_C") then get_req_ssl = nginx_c.get_req_ssl get_req_ssl_ctx = nginx_c.get_req_ssl_ctx get_socket_ssl = nginx_c.get_socket_ssl get_socket_ssl_ctx = nginx_c.get_socket_ssl else local ffi = require "ffi" ffi.cdef [[ // Nginx seems to always config _FILE_OFFSET_BITS=64, this should always be 8 byte typedef long long off_t; typedef unsigned int socklen_t; // windows uses int, same size typedef unsigned short in_port_t; typedef struct ssl_st SSL; typedef struct ssl_ctx_st SSL_CTX; typedef long (*ngx_recv_pt)(void *c, void *buf, size_t size); typedef long (*ngx_recv_chain_pt)(void *c, void *in, off_t limit); typedef long (*ngx_send_pt)(void *c, void *buf, size_t size); typedef void *(*ngx_send_chain_pt)(void *c, void *in, off_t limit); typedef struct { size_t len; void *data; } ngx_str_t; typedef struct { SSL *connection; SSL_CTX *session_ctx; // trimmed } ngx_ssl_connection_s; ]] local ngx_version = ngx.config.nginx_version local ngx_configure = ngx.config.nginx_configure() local ngx_has_http_v3 = ngx_configure and ngx_configure:find("--with-http_v3_module", 1, true) -- https://github.com/nginx/nginx/blob/master/src/core/ngx_connection.h if ngx_version == 1017008 or ngx_version == 1019003 or ngx_version == 1019009 or ngx_version == 1021004 or (not ngx_has_http_v3 and (ngx_version == 1025003 or ngx_version == 1027001)) then -- 1.17.8, 1.19.3, 1.19.9, 1.21.4, 1.25.3 ffi.cdef [[ typedef struct ngx_proxy_protocol_s ngx_proxy_protocol_t; typedef struct { void *data; void *read; void *write; int fd; ngx_recv_pt recv; ngx_send_pt send; ngx_recv_chain_pt recv_chain; ngx_send_chain_pt send_chain; void *listening; off_t sent; void *log; void *pool; int type; void *sockaddr; socklen_t socklen; ngx_str_t addr_text; // https://github.com/nginx/nginx/commit/be932e81a1531a3ba032febad968fc2006c4fa48 ngx_proxy_protocol_t *proxy_protocol; ngx_ssl_connection_s *ssl; // trimmed } ngx_connection_s; ]] elseif ngx_has_http_v3 and (ngx_version == 1025003 or ngx_version == 1027001) then -- 1.25.3 ffi.cdef [[ typedef struct ngx_proxy_protocol_s ngx_proxy_protocol_t; typedef struct ngx_quic_stream_s ngx_quic_stream_t; typedef struct { void *data; void *read; void *write; int fd; ngx_recv_pt recv; ngx_send_pt send; ngx_recv_chain_pt recv_chain; ngx_send_chain_pt send_chain; void *listening; off_t sent; void *log; void *pool; int type; void *sockaddr; socklen_t socklen; ngx_str_t addr_text; // https://github.com/nginx/nginx/commit/be932e81a1531a3ba032febad968fc2006c4fa48 ngx_proxy_protocol_t *proxy_protocol; // https://github.com/nginx/nginx/commit/b813b9ec358862a2a94868bc057420d6eca5c05d ngx_quic_stream_t *quic; ngx_ssl_connection_s *ssl; // trimmed } ngx_connection_s; ]] else error("resty.openssl.auxiliary.nginx development mode doesn't support Nginx version " .. ngx_version .. ", please compile nginx with lua-resty-openssl-aux-module or lua-kong-nginx-module.", 2) end ffi.cdef [[ typedef struct { ngx_connection_s *connection; // trimmed } ngx_stream_lua_request_s; typedef struct { unsigned int signature; /* "HTTP" */ ngx_connection_s *connection; // trimmed } ngx_http_request_s; ]] local get_request do local ok, exdata = pcall(require, "thread.exdata") if ok and exdata then function get_request() local r = exdata() if r ~= nil then return r end end else local getfenv = getfenv function get_request() return getfenv(0).__ngx_req end end end local SOCKET_CTX_INDEX = 1 local NO_C_MODULE_WARNING_MSG_SHOWN = false local NO_C_MODULE_WARNING_MSG = "note resty.openssl.auxiliary.nginx is using plain FFI " .. "and it's only intended to be used in development, " .. "consider using lua-resty-openssl-aux-module or " .. "lua-kong-nginx-module in production." local function get_ngx_ssl_from_req() if not NO_C_MODULE_WARNING_MSG_SHOWN then ngx.log(ngx.WARN, NO_C_MODULE_WARNING_MSG) NO_C_MODULE_WARNING_MSG_SHOWN = true end local c = get_request() if ngx.config.subsystem == "stream" then c = ffi.cast("ngx_stream_lua_request_s*", c) else -- http c = ffi.cast("ngx_http_request_s*", c) end local ngx_ssl = c.connection.ssl if ngx_ssl == nil then return nil, "c.connection.ssl is nil" end return ngx_ssl end get_req_ssl = function() local ssl, err = get_ngx_ssl_from_req() if err then return nil, err end return ssl.connection end get_req_ssl_ctx = function() local ssl, err = get_ngx_ssl_from_req() if err then return nil, err end return ssl.session_ctx end -- https://github.com/openresty/stream-lua-nginx-module/blob/master/src/ngx_stream_lua_socket_tcp.h ffi.cdef[[ typedef struct ngx_http_lua_socket_tcp_upstream_s ngx_http_lua_socket_tcp_upstream_t; typedef struct { ngx_connection_s *connection; // trimmed } ngx_peer_connection_s; typedef int (*ngx_http_lua_socket_tcp_retval_handler_masked)(void *r, void *u, void *L); typedef void (*ngx_http_lua_socket_tcp_upstream_handler_pt_masked) (void *r, void *u); typedef int (*ngx_stream_lua_socket_tcp_retval_handler)(void *r, void *u, void *L); typedef void (*ngx_stream_lua_socket_tcp_upstream_handler_pt) (void *r, void *u); typedef struct { ngx_stream_lua_socket_tcp_retval_handler read_prepare_retvals; ngx_stream_lua_socket_tcp_retval_handler write_prepare_retvals; ngx_stream_lua_socket_tcp_upstream_handler_pt read_event_handler; ngx_stream_lua_socket_tcp_upstream_handler_pt write_event_handler; void *socket_pool; void *conf; void *cleanup; void *request; ngx_peer_connection_s peer; // trimmed } ngx_stream_lua_socket_tcp_upstream_s; ]] local ngx_lua_version = ngx.config and ngx.config.ngx_lua_version and ngx.config.ngx_lua_version if ngx_lua_version >= 10019 and ngx_lua_version <= 10028 then -- https://github.com/openresty/lua-nginx-module/blob/master/src/ngx_http_lua_socket_tcp.h ffi.cdef[[ typedef struct { ngx_http_lua_socket_tcp_retval_handler_masked read_prepare_retvals; ngx_http_lua_socket_tcp_retval_handler_masked write_prepare_retvals; ngx_http_lua_socket_tcp_upstream_handler_pt_masked read_event_handler; ngx_http_lua_socket_tcp_upstream_handler_pt_masked write_event_handler; void *udata_queue; // 0.10.19 void *socket_pool; void *conf; void *cleanup; void *request; ngx_peer_connection_s peer; // trimmed } ngx_http_lua_socket_tcp_upstream_s; ]] elseif ngx_lua_version < 10019 then -- the struct doesn't seem to get changed a long time since birth ffi.cdef[[ typedef struct { ngx_http_lua_socket_tcp_retval_handler_masked read_prepare_retvals; ngx_http_lua_socket_tcp_retval_handler_masked write_prepare_retvals; ngx_http_lua_socket_tcp_upstream_handler_pt_masked read_event_handler; ngx_http_lua_socket_tcp_upstream_handler_pt_masked write_event_handler; void *socket_pool; void *conf; void *cleanup; void *request; ngx_peer_connection_s peer; // trimmed } ngx_http_lua_socket_tcp_upstream_s; ]] else error("resty.openssl.auxiliary.nginx doesn't support lua-nginx-module version " .. (ngx_lua_version or "nil"), 2) end local function get_ngx_ssl_from_socket_ctx(sock) if not NO_C_MODULE_WARNING_MSG_SHOWN then ngx.log(ngx.WARN, NO_C_MODULE_WARNING_MSG) NO_C_MODULE_WARNING_MSG_SHOWN = true end local u = sock[SOCKET_CTX_INDEX] if u == nil then return nil, "lua_socket_tcp_upstream_t not found" end if ngx.config.subsystem == "stream" then u = ffi.cast("ngx_stream_lua_socket_tcp_upstream_s*", u) else -- http u = ffi.cast("ngx_http_lua_socket_tcp_upstream_s*", u) end local p = u.peer if p == nil then return nil, "u.peer is nil" end local uc = p.connection if uc == nil then return nil, "u.peer.connection is nil" end local ngx_ssl = uc.ssl if ngx_ssl == nil then return nil, "u.peer.connection.ssl is nil" end return ngx_ssl end get_socket_ssl = function(sock) local ssl, err = get_ngx_ssl_from_socket_ctx(sock) if err then return nil, err end return ssl.connection end get_socket_ssl_ctx = function(sock) local ssl, err = get_ngx_ssl_from_socket_ctx(sock) if err then return nil, err end return ssl.session_ctx end end return { get_req_ssl = get_req_ssl, get_req_ssl_ctx = get_req_ssl_ctx, get_socket_ssl = get_socket_ssl, get_socket_ssl_ctx = get_socket_ssl_ctx, } PKA½N]XþѼl l resty/openssl/version.luanu„[µü¤-- https://github.com/GUI/lua-openssl-ffi/blob/master/lib/openssl-ffi/version.lua local ffi = require "ffi" local C = ffi.C local ffi_str = ffi.string local log_debug = require "resty.openssl.auxiliary.compat".log_debug local libcrypto_name local lib_patterns = { "%s", "%s.so.3", "%s.so.1.1", "%s.so.1.0" } local function load_library() for _, pattern in ipairs(lib_patterns) do -- true: load to global namespae local pok, _ = pcall(ffi.load, string.format(pattern, "crypto"), true) if pok then libcrypto_name = string.format(pattern, "crypto") ffi.load(string.format(pattern, "ssl"), true) log_debug("loaded crypto library: ", libcrypto_name) return libcrypto_name end end return false, "unable to load crypto library" end ffi.cdef[[ // >= 1.1 unsigned long OpenSSL_version_num(); const char *OpenSSL_version(int t); // >= 3.0 const char *OPENSSL_info(int t); ]] local version_func, info_func local types_table = { VERSION = 0, CFLAGS = 1, BUILT_ON = 2, PLATFORM = 3, DIR = 4, ENGINES_DIR = 5, VERSION_STRING = 6, FULL_VERSION_STRING = 7, MODULES_DIR = 8, CPU_INFO = 9, } local get_version = function() local num = C.OpenSSL_version_num() version_func = C.OpenSSL_version return num end local ok, version_num = pcall(get_version) if not ok then ok, version_num = pcall(load_library) if ok then -- try again ok, version_num = pcall(get_version) end end if not ok then error(string.format("OpenSSL has encountered an error: %s; is OpenSSL library loaded?", tostring(version_num))) elseif type(version_num) == 'number' and version_num < 0x10101000 then error(string.format("OpenSSL version %s is not supported", tostring(version_num or 0))) elseif not version_num then error("Can not get OpenSSL version") end if version_num >= 0x30000000 then local info_table = { INFO_CONFIG_DIR = 1001, INFO_ENGINES_DIR = 1002, INFO_MODULES_DIR = 1003, INFO_DSO_EXTENSION = 1004, INFO_DIR_FILENAME_SEPARATOR = 1005, INFO_LIST_SEPARATOR = 1006, INFO_SEED_SOURCE = 1007, INFO_CPU_SETTINGS = 1008, } for k, v in pairs(info_table) do types_table[k] = v end info_func = C.OPENSSL_info else info_func = function(_) error(string.format("OPENSSL_info is not supported on %s", ffi_str(version_func(0)))) end end return setmetatable({ version_num = tonumber(version_num), version_text = ffi_str(version_func(0)), version = function(t) return ffi_str(version_func(t)) end, info = function(t) return ffi_str(info_func(t)) end, -- the following has implict upper bound of 4.x OPENSSL_30 = version_num >= 0x30000000 and version_num < 0x30100000, OPENSSL_3X = version_num >= 0x30000000 and version_num < 0x40000000, OPENSSL_111 = version_num >= 0x10101000 and version_num < 0x10200000, }, { __index = types_table, }) PKA½N]ÖÜñu%u%resty/openssl/bn.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_new = ffi.new local ffi_str = ffi.string local floor = math.floor require "resty.openssl.include.bn" local crypto_macro = require("resty.openssl.include.crypto") local ctypes = require "resty.openssl.auxiliary.ctypes" local format_error = require("resty.openssl.err").format_error local _M = {} local mt = {__index = _M} local bn_ptr_ct = ffi.typeof('BIGNUM*') local bn_ptrptr_ct = ffi.typeof('BIGNUM*[1]') local function set_binary(ctx, s) local ctx = C.BN_bin2bn(s, #s, ctx) if ctx == nil then return nil, format_error("set_binary") end return ctx end local function set_mpi(ctx, s) local ctx = C.BN_mpi2bn(s, #s, ctx) if ctx == nil then return nil, format_error("set_mpi") end return ctx end local function set_hex(ctx, s) local p = ffi_new(bn_ptrptr_ct) p[0] = ctx if C.BN_hex2bn(p, s) == 0 then return nil, format_error("set_hex") end return p[0] end local function set_dec(ctx, s) local p = ffi_new(bn_ptrptr_ct) p[0] = ctx if C.BN_dec2bn(p, s) == 0 then return nil, format_error("set_dec") end return p[0] end local function set_bn(ctx, s, base) if type(s) == 'number' then if C.BN_set_word(ctx, s) ~= 1 then return nil, format_error("set_bn") end return ctx elseif type(s) == 'string' then if not base or base == 10 then return set_dec(ctx, s) elseif base == 16 then return set_hex(ctx, s) elseif base == 2 then return set_binary(ctx, s) elseif base == 0 then return set_mpi(ctx, s) else return nil, "set_bn: unsupported base: " .. base end elseif s then return nil, "set_bn: expect nil, a number or a string at #1" end -- fall through return ctx end function _M.new(some, base) local ctx = C.BN_new() ffi_gc(ctx, C.BN_free) -- local ctx, err = set_bn(ctx, some, base) -- The above expression set ctx to a new cdata return by -- set_bn, the origin cdata would be GC at any time. local _, err = set_bn(ctx, some, base) if err then return nil, "bn.new: " .. err end return setmetatable( { ctx = ctx }, mt), nil end function _M.istype(l) return l and l.ctx and ffi.istype(bn_ptr_ct, l.ctx) end function _M.dup(ctx) if not ffi.istype(bn_ptr_ct, ctx) then return nil, "bn.dup: expect a bn ctx at #1" end local ctx = C.BN_dup(ctx) ffi_gc(ctx, C.BN_free) local self = setmetatable({ ctx = ctx, }, mt) return self end function _M:set(some, base) if not some then return nil, "expect a number or a string at #1" end local _, err = set_bn(self.ctx, some, base) if err then return nil, "bn:set: " .. err end return self end function _M:to_binary(pad) if pad then if type(pad) ~= "number" then return nil, "bn:to_binary: expect a number at #1" end end local length if not pad then length = (C.BN_num_bits(self.ctx)+7)/8 -- align to bytes length = floor(length) else length = pad end local buf = ctypes.uchar_array(length) local sz if not pad then sz = C.BN_bn2bin(self.ctx, buf) else sz = C.BN_bn2binpad(self.ctx, buf, pad) end if sz <= 0 then return nil, format_error("bn:to_binary") end return ffi_str(buf, sz) end function _M:to_mpi(no_header) local length = C.BN_bn2mpi(self.ctx, nil) if length <= 0 then return nil, format_error("bn:to_mpi") end local buf = ctypes.uchar_array(length) local sz = C.BN_bn2mpi(self.ctx, buf) if sz <= 0 then return nil, format_error("bn:to_mpi") end local ret = ffi_str(buf, sz) return no_header and ret:sub(4) or ret end function _M:to_hex() local buf = C.BN_bn2hex(self.ctx) if buf == nil then return nil, format_error("bn:to_hex") end ffi_gc(buf, crypto_macro.OPENSSL_free) local s = ffi_str(buf) return s end function _M:to_dec() local buf = C.BN_bn2dec(self.ctx) if buf == nil then return nil, format_error("bn:to_dec") end ffi_gc(buf, crypto_macro.OPENSSL_free) local s = ffi_str(buf) return s end mt.__tostring = _M.to_dec function _M:to_number() return tonumber(C.BN_get_word(self.ctx)) end _M.tonumber = _M.to_number local from_funcs = { binary = set_binary, mpi = set_mpi, hex = set_hex, dec = set_dec, } for typ, func in pairs(from_funcs) do local sig = "from_" .. typ _M[sig] = function(s) if type(s) ~= "string" then return nil, "bn." .. sig .. ": expect a string at #1" end local ctx, err = func(nil, s) if not ctx then return nil, "bn." .. sig .. ": " .. err end ffi_gc(ctx, C.BN_free) return setmetatable( { ctx = ctx }, mt), nil end end function _M.generate_prime(bits, safe) local ctx = C.BN_new() ffi_gc(ctx, C.BN_free) if C.BN_generate_prime_ex(ctx, bits, safe and 1 or 0, nil, nil, nil) == 0 then return nil, format_error("bn.BN_generate_prime_ex") end return setmetatable( { ctx = ctx }, mt), nil end -- BN_CTX is used to store temporary variable -- we only need one per worker local bn_ctx_tmp = C.BN_CTX_new() assert(bn_ctx_tmp ~= nil) ffi_gc(bn_ctx_tmp, C.BN_CTX_free) _M.bn_ctx_tmp = bn_ctx_tmp -- mathematics function mt.__unm(a) local b = _M.dup(a.ctx) if b == nil then error("BN_dup() failed") end local sign = C.BN_is_negative(b.ctx) C.BN_set_negative(b.ctx, 1-sign) return b end local function check_args(op, ...) local args = {...} for i, arg in ipairs(args) do if type(arg) == 'number' then local b = C.BN_new() if b == nil then error("BN_new() failed") end ffi_gc(b, C.BN_free) if C.BN_set_word(b, arg) ~= 1 then error("BN_set_word() failed") end args[i] = b elseif _M.istype(arg) then args[i] = arg.ctx else error("cannot " .. op .. " a " .. type(arg) .. " to bignum") end end local ctx = C.BN_new() if ctx == nil then error("BN_new() failed") end ffi_gc(ctx, C.BN_free) local r = setmetatable( { ctx = ctx }, mt) return r, unpack(args) end function mt.__add(...) local r, a, b = check_args("add", ...) if C.BN_add(r.ctx, a, b) == 0 then error("BN_add() failed") end return r end _M.add = mt.__add function mt.__sub(...) local r, a, b = check_args("substract", ...) if C.BN_sub(r.ctx, a, b) == 0 then error("BN_sub() failed") end return r end _M.sub = mt.__sub function mt.__mul(...) local r, a, b = check_args("multiply", ...) if C.BN_mul(r.ctx, a, b, bn_ctx_tmp) == 0 then error("BN_mul() failed") end return r end _M.mul = mt.__mul -- lua 5.3 only function mt.__idiv(...) local r, a, b = check_args("divide", ...) if C.BN_div(r.ctx, nil, a, b, bn_ctx_tmp) == 0 then error("BN_div() failed") end return r end mt.__div = mt.__idiv _M.idiv = mt.__idiv _M.div = mt.__div function mt.__mod(...) local r, a, b = check_args("mod", ...) if C.BN_div(nil, r.ctx, a, b, bn_ctx_tmp) == 0 then error("BN_div() failed") end return r end _M.mod = mt.__mod -- __concat doesn't make sense at all? function _M.sqr(...) local r, a = check_args("square", ...) if C.BN_sqr(r.ctx, a, bn_ctx_tmp) == 0 then error("BN_sqr() failed") end return r end function _M.gcd(...) local r, a, b = check_args("extract greatest common divisor", ...) if C.BN_gcd(r.ctx, a, b, bn_ctx_tmp) == 0 then error("BN_gcd() failed") end return r end function _M.exp(...) local r, a, b = check_args("power", ...) if C.BN_exp(r.ctx, a, b, bn_ctx_tmp) == 0 then error("BN_exp() failed") end return r end _M.pow = _M.exp for _, op in ipairs({ "add", "sub" , "mul", "exp" }) do local f = "BN_mod_" .. op local cf = C[f] _M["mod_" .. op] = function(...) local r, a, b, m = check_args(op, ...) if cf(r.ctx, a, b, m, bn_ctx_tmp) == 0 then error(f .. " failed") end return r end end function _M.mod_sqr(...) local r, a, m = check_args("mod_sub", ...) if C.BN_mod_sqr(r.ctx, a, m, bn_ctx_tmp) == 0 then error("BN_mod_sqr() failed") end return r end local function nyi() error("NYI") end -- bit operations, lua 5.3 mt.__band = nyi mt.__bor = nyi mt.__bxor = nyi mt.__bnot = nyi function mt.__shl(a, b) local r, a = check_args("lshift", a) if C.BN_lshift(r.ctx, a, b) == 0 then error("BN_lshift() failed") end return r end _M.lshift = mt.__shl function mt.__shr(a, b) local r, a = check_args("rshift", a) if C.BN_rshift(r.ctx, a, b) == 0 then error("BN_lshift() failed") end return r end _M.rshift = mt.__shr -- comparaions -- those functions are only called when the table -- has exact same metamethods, i.e. they are all BN -- so we don't need to check args function mt.__eq(a, b) return C.BN_cmp(a.ctx, b.ctx) == 0 end function mt.__lt(a, b) return C.BN_cmp(a.ctx, b.ctx) < 0 end function mt.__le(a, b) return C.BN_cmp(a.ctx, b.ctx) <= 0 end function _M:is_zero() return C.BN_is_zero(self.ctx) == 1 end function _M:is_one() return C.BN_is_one(self.ctx) == 1 end function _M:is_word(n) return C.BN_is_word(self.ctx, n) == 1 end function _M:is_odd() return C.BN_is_odd(self.ctx) == 1 end function _M:is_prime(nchecks) if nchecks and type(nchecks) ~= "number" then return nil, "bn:is_prime: expect a number at #1" end -- if nchecks is not defined, set to BN_prime_checks: -- select number of iterations based on the size of the number local code = C.BN_is_prime_ex(self.ctx, nchecks or 0, bn_ctx_tmp, nil) if code == -1 then return nil, format_error("bn.is_prime") end return code == 1 end return _M PKA½N]+ÿ‚÷BB!resty/openssl/x509/extensions.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local stack_lib = require "resty.openssl.stack" local extension_lib = require "resty.openssl.x509.extension" local format_error = require("resty.openssl.err").format_error local _M = {} local stack_ptr_ct = ffi.typeof("OPENSSL_STACK*") local STACK = "X509_EXTENSION" local new = stack_lib.new_of(STACK) local add = stack_lib.add_of(STACK) local dup = stack_lib.dup_of(STACK) local mt = stack_lib.mt_of(STACK, extension_lib.dup, _M) function _M.new() local raw, err = new() if raw == nil then return nil, err end local self = setmetatable({ stack_of = STACK, ctx = raw, }, mt) return self, nil end function _M.istype(l) return l and l.ctx and ffi.istype(stack_ptr_ct, l.ctx) and l.stack_of and l.stack_of == STACK end function _M.dup(ctx) if ctx == nil or not ffi.istype(stack_ptr_ct, ctx) then return nil, "x509.extensions.dup: expect a stack ctx at #1, got " .. type(ctx) end local dup_ctx, err = dup(ctx) if dup_ctx == nil then return nil, err end return setmetatable({ stack_of = STACK, ctx = dup_ctx, -- don't let lua gc the original stack to keep its elements _dupped_from = ctx, _is_shallow_copy = true, _elem_refs = {}, _elem_refs_idx = 1, }, mt), nil end function _M:add(extension) if not extension_lib.istype(extension) then return nil, "expect a x509.extension instance at #1" end local dup = C.X509_EXTENSION_dup(extension.ctx) if dup == nil then return nil, format_error("extensions:add: X509_EXTENSION_dup") end local _, err = add(self.ctx, dup) if err then C.X509_EXTENSION_free(dup) return nil, err end -- if the stack is duplicated, the gc handler is not pop_free -- handle the gc by ourselves if self._is_shallow_copy then ffi_gc(dup, C.X509_EXTENSION_free) self._elem_refs[self._elem_refs_idx] = dup self._elem_refs_idx = self._elem_refs_idx + 1 end return true end _M.all = stack_lib.all_func(mt) _M.each = mt.__ipairs _M.index = mt.__index _M.count = mt.__len return _M PKA½N]&ô<ÉÚ Ú ,resty/openssl/x509/extension/info_access.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_cast = ffi.cast require "resty.openssl.include.x509" require "resty.openssl.include.x509v3" require "resty.openssl.include.err" local altname_lib = require "resty.openssl.x509.altname" local stack_lib = require "resty.openssl.stack" local _M = {} local authority_info_access_ptr_ct = ffi.typeof("AUTHORITY_INFO_ACCESS*") local STACK = "ACCESS_DESCRIPTION" local new = stack_lib.new_of(STACK) local add = stack_lib.add_of(STACK) local dup = stack_lib.dup_of(STACK) local aia_decode = function(ctx) local nid = C.OBJ_obj2nid(ctx.method) local gn = altname_lib.gn_decode(ctx.location) return { nid, unpack(gn) } end local mt = stack_lib.mt_of(STACK, aia_decode, _M) local mt__pairs = mt.__pairs mt.__pairs = function(tbl) local f = mt__pairs(tbl) return function() local _, e = f() if not e then return end return unpack(e) end end function _M.new() local ctx = new() if ctx == nil then return nil, "OPENSSL_sk_new_null() failed" end local cast = ffi_cast("AUTHORITY_INFO_ACCESS*", ctx) local self = setmetatable({ ctx = ctx, cast = cast, _is_shallow_copy = false, }, mt) return self, nil end function _M.istype(l) return l and l.cast and ffi.istype(authority_info_access_ptr_ct, l.cast) end function _M.dup(ctx) if ctx == nil or not ffi.istype(authority_info_access_ptr_ct, ctx) then return nil, "expect a AUTHORITY_INFO_ACCESS* ctx at #1" end local dup_ctx, err = dup(ctx) if dup_ctx == nil then return nil, err end return setmetatable({ ctx = dup_ctx, cast = ffi_cast(authority_info_access_ptr_ct, dup_ctx), -- don't let lua gc the original stack to keep its elements _dupped_from = ctx, _is_shallow_copy = true, _elem_refs = {}, _elem_refs_idx = 1, }, mt), nil end function _M:add(nid, typ, value) -- the stack element stays with stack -- we shouldn't add gc handler if it's already been -- pushed to stack. instead, rely on the gc handler -- of the stack to release all memories local ad = C.ACCESS_DESCRIPTION_new() if ad == nil then return nil, "ACCESS_DESCRIPTION_new() failed" end -- C.ASN1_OBJECT_free(ad.method) local asn1 = C.OBJ_txt2obj(nid, 0) if asn1 == nil then C.ACCESS_DESCRIPTION_free(ad) -- clean up error occurs during OBJ_txt2* C.ERR_clear_error() return nil, "invalid NID text " .. (nid or "nil") end ad.method = asn1 local err = altname_lib.gn_set(ad.location, typ, value) if err then C.ACCESS_DESCRIPTION_free(ad) return nil, err end local _, err = add(self.ctx, ad) if err then C.ACCESS_DESCRIPTION_free(ad) return nil, err end -- if the stack is duplicated, the gc handler is not pop_free -- handle the gc by ourselves if self._is_shallow_copy then ffi_gc(ad, C.ACCESS_DESCRIPTION_free) self._elem_refs[self._elem_refs_idx] = ad self._elem_refs_idx = self._elem_refs_idx + 1 end return self end _M.all = function(stack) local ret = {} local _next = mt.__ipairs(stack) while true do local i, e = _next() if i then ret[i] = e else break end end return ret end _M.each = mt.__ipairs _M.index = mt.__index _M.count = mt.__len return _M PKA½N]Ñ÷5““,resty/openssl/x509/extension/dist_points.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.x509" require "resty.openssl.include.x509v3" local altname_lib = require "resty.openssl.x509.altname" local stack_lib = require "resty.openssl.stack" local _M = {} local stack_ptr_ct = ffi.typeof("OPENSSL_STACK*") local STACK = "DIST_POINT" local new = stack_lib.new_of(STACK) local dup = stack_lib.dup_of(STACK) -- TODO: return other attributes? local cdp_decode_fullname = function(ctx) return altname_lib.dup(ctx.distpoint.name.fullname) end local mt = stack_lib.mt_of(STACK, cdp_decode_fullname, _M) function _M.new() local ctx = new() if ctx == nil then return nil, "OPENSSL_sk_new_null() failed" end local self = setmetatable({ stack_of = STACK, ctx = ctx, _is_shallow_copy = false, }, mt) return self, nil end function _M.istype(l) return l and l.ctx and ffi.istype(stack_ptr_ct, l.ctx) and l.stack_of and l.stack_of == STACK end function _M.dup(ctx) if ctx == nil or not ffi.istype(stack_ptr_ct, ctx) then return nil, "expect a stack ctx at #1" end local dup_ctx, err = dup(ctx) if dup_ctx == nil then return nil, err end return setmetatable({ stack_of = STACK, ctx = dup_ctx, -- don't let lua gc the original stack to keep its elements _dupped_from = ctx, _is_shallow_copy = true, _elem_refs = {}, _elem_refs_idx = 1, }, mt), nil end _M.all = function(stack) local ret = {} local _next = mt.__ipairs(stack) while true do local i, e = _next() if i then ret[i] = e else break end end return ret end _M.each = mt.__ipairs _M.index = mt.__index _M.count = mt.__len return _M PKA½N]¸Âª¸®;®;resty/openssl/x509/csr.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_cast = ffi.cast require "resty.openssl.include.pem" require "resty.openssl.include.x509v3" require "resty.openssl.include.x509.csr" require "resty.openssl.include.asn1" require "resty.openssl.include.stack" local stack_lib = require "resty.openssl.stack" local pkey_lib = require "resty.openssl.pkey" local digest_lib = require("resty.openssl.digest") local extension_lib = require("resty.openssl.x509.extension") local extensions_lib = require("resty.openssl.x509.extensions") local bio_util = require "resty.openssl.auxiliary.bio" local ctypes = require "resty.openssl.auxiliary.ctypes" local ctx_lib = require "resty.openssl.ctx" local txtnid2nid = require("resty.openssl.objects").txtnid2nid local find_sigid_algs = require("resty.openssl.objects").find_sigid_algs local format_error = require("resty.openssl.err").format_error local version = require("resty.openssl.version") local OPENSSL_3X = version.OPENSSL_3X local accessors = {} accessors.set_subject_name = C.X509_REQ_set_subject_name accessors.get_pubkey = C.X509_REQ_get_pubkey accessors.set_pubkey = C.X509_REQ_set_pubkey accessors.set_version = C.X509_REQ_set_version accessors.get_signature_nid = C.X509_REQ_get_signature_nid accessors.get_subject_name = C.X509_REQ_get_subject_name -- returns internal ptr accessors.get_version = C.X509_REQ_get_version local function __tostring(self, fmt) if not fmt or fmt == 'PEM' then return bio_util.read_wrap(C.PEM_write_bio_X509_REQ, self.ctx) elseif fmt == 'DER' then return bio_util.read_wrap(C.i2d_X509_REQ_bio, self.ctx) else return nil, "x509.csr:tostring: can only write PEM or DER format, not " .. fmt end end local _M = {} local mt = { __index = _M, __tostring = __tostring } local x509_req_ptr_ct = ffi.typeof("X509_REQ*") local stack_ptr_type = ffi.typeof("struct stack_st *[1]") local x509_extensions_gc = stack_lib.gc_of("X509_EXTENSION") function _M.new(csr, fmt, properties) local ctx if not csr then if OPENSSL_3X then ctx = C.X509_REQ_new_ex(ctx_lib.get_libctx(), properties) else ctx = C.X509_REQ_new() end if ctx == nil then return nil, "x509.csr.new: X509_REQ_new() failed" end elseif type(csr) == "string" then -- routine for load an existing csr local bio = C.BIO_new_mem_buf(csr, #csr) if bio == nil then return nil, format_error("x509.csr.new: BIO_new_mem_buf") end fmt = fmt or "*" while true do -- luacheck: ignore 512 -- loop is executed at most once if fmt == "PEM" or fmt == "*" then ctx = C.PEM_read_bio_X509_REQ(bio, nil, nil, nil) if ctx ~= nil then break elseif fmt == "*" then -- BIO_reset; #define BIO_CTRL_RESET 1 local code = C.BIO_ctrl(bio, 1, 0, nil) if code ~= 1 then return nil, "x509.csr.new: BIO_ctrl() failed: " .. code end end end if fmt == "DER" or fmt == "*" then ctx = C.d2i_X509_REQ_bio(bio, nil) end break end C.BIO_free(bio) if ctx == nil then return nil, format_error("x509.csr.new") end -- clear errors occur when trying C.ERR_clear_error() else return nil, "x509.csr.new: expect nil or a string at #1" end ffi_gc(ctx, C.X509_REQ_free) local self = setmetatable({ ctx = ctx, }, mt) return self, nil end function _M.istype(l) return l and l and l.ctx and ffi.istype(x509_req_ptr_ct, l.ctx) end function _M:tostring(fmt) return __tostring(self, fmt) end function _M:to_PEM() return __tostring(self, "PEM") end function _M:check_private_key(key) if not pkey_lib.istype(key) then return false, "x509.csr:check_private_key: except a pkey instance at #1" end if not key:is_private() then return false, "x509.csr:check_private_key: not a private key" end if C.X509_REQ_check_private_key(self.ctx, key.ctx) == 1 then return true end return false, format_error("x509.csr:check_private_key") end --- Get all csr extensions -- @tparam table self Instance of csr -- @treturn Extensions object function _M:get_extensions() local extensions = C.X509_REQ_get_extensions(self.ctx) -- GC handler is sk_X509_EXTENSION_pop_free ffi_gc(extensions, x509_extensions_gc) return extensions_lib.dup(extensions) end local function get_extension(ctx, nid_txt, last_pos) local nid, err = txtnid2nid(nid_txt) if err then return nil, nil, err end local extensions = C.X509_REQ_get_extensions(ctx) if extensions == nil then return nil, nil, format_error("csr.get_extension: X509_REQ_get_extensions") end ffi_gc(extensions, x509_extensions_gc) -- make 1-index array to 0-index last_pos = (last_pos or 0) -1 local ext_idx = C.X509v3_get_ext_by_NID(extensions, nid, last_pos) if ext_idx == -1 then err = ("X509v3_get_ext_by_NID extension for %d not found"):format(nid) return nil, -1, format_error(err) end local ctx = C.X509v3_get_ext(extensions, ext_idx) if ctx == nil then return nil, nil, format_error("X509v3_get_ext") end -- the extension is not duplicated when returned by X509v3_get_ext -- so we need to copy it ctx = C.X509_EXTENSION_dup(ctx) if ctx == nil then return nil, nil, "X509_EXTENSION_dup() failed" end ffi_gc(ctx, C.X509_EXTENSION_free) return ctx, ext_idx, nil end --- Get a csr extension -- @tparam table self Instance of csr -- @tparam string|number Nid number or name of the extension -- @tparam number Position to start looking for the extension; default to look from start if omitted -- @treturn Parsed extension object or nil if not found function _M:get_extension(nid_txt, last_pos) local ctx, pos, err = get_extension(self.ctx, nid_txt, last_pos) if err then return nil, nil, "x509.csr:get_extension: " .. err end local ext, err = extension_lib.dup(ctx) if err then return nil, nil, "x509.csr:get_extension: " .. err end return ext, pos+1 end local function modify_extension(replace, ctx, nid, toset, crit) local extensions_ptr = stack_ptr_type() local extension = C.X509_REQ_get_extensions(ctx) extensions_ptr[0] = extension local need_cleanup = extension ~= nil and -- extensions_ptr being nil is fine: it may just because there's no extension yet -- https://github.com/openssl/openssl/commit/2039ac07b401932fa30a05ade80b3626e189d78a -- introduces a change that a empty stack instead of NULL will be returned in no extension -- is found. so we need to double check the number if it's not NULL. C.OPENSSL_sk_num(extension) > 0 local flag if replace then -- x509v3.h: # define X509V3_ADD_REPLACE 2L flag = 0x2 else -- x509v3.h: # define X509V3_ADD_APPEND 1L flag = 0x1 end local code = C.X509V3_add1_i2d(extensions_ptr, nid, toset, crit and 1 or 0, flag) if code ~= 1 then return false, format_error("X509V3_add1_i2d", code) end -- when the stack is newly allocated, we want to cleanup the newly created stack as well -- setting the gc handler here as it's mutated in X509V3_add1_i2d if it's pointing to NULL ffi_gc(extension, x509_extensions_gc) if need_cleanup then -- cleanup old attributes -- delete the first only, why? local attr = C.X509_REQ_delete_attr(ctx, 0) if attr ~= nil then C.X509_ATTRIBUTE_free(attr) end end code = C.X509_REQ_add_extensions(ctx, extension) if code ~= 1 then return false, format_error("X509_REQ_add_extensions", code) end -- mark encoded form as invalid so next time it will be re-encoded C.i2d_re_X509_REQ_tbs(ctx, nil) return true end local function add_extension(...) return modify_extension(false, ...) end local function replace_extension(...) return modify_extension(true, ...) end function _M:add_extension(extension) if not extension_lib.istype(extension) then return false, "x509:set_extension: expect a x509.extension instance at #1" end local nid = extension:get_object().nid local toset = extension_lib.to_data(extension, nid) -- avoid tail call return as `toset.ctx` may got GC'ed early local ok, err = add_extension(self.ctx, nid, toset.ctx, extension:get_critical()) return ok, err end function _M:set_extension(extension) if not extension_lib.istype(extension) then return false, "x509:set_extension: expect a x509.extension instance at #1" end local nid = extension:get_object().nid local toset = extension_lib.to_data(extension, nid) -- avoid tail call return as `toset.ctx` may got GC'ed early local ok, err = replace_extension(self.ctx, nid, toset.ctx, extension:get_critical()) return ok, err end function _M:set_extension_critical(nid_txt, crit, last_pos) local nid, err = txtnid2nid(nid_txt) if err then return nil, "x509.csr:set_extension_critical: " .. err end local extension, _, err = get_extension(self.ctx, nid, last_pos) if err then return nil, "x509.csr:set_extension_critical: " .. err end local toset = extension_lib.to_data({ ctx = extension }, nid) -- avoid tail call return as `toset.ctx` may got GC'ed early local ok, err = replace_extension(self.ctx, nid, toset.ctx, crit and 1 or 0) return ok, err end function _M:get_extension_critical(nid_txt, last_pos) local ctx, _, err = get_extension(self.ctx, nid_txt, last_pos) if err then return nil, "x509.csr:get_extension_critical: " .. err end return C.X509_EXTENSION_get_critical(ctx) == 1 end -- START AUTO GENERATED CODE -- AUTO GENERATED function _M:sign(pkey, digest) if not pkey_lib.istype(pkey) then return false, "x509.csr:sign: expect a pkey instance at #1" end local digest_algo if digest then if not digest_lib.istype(digest) then return false, "x509.csr:sign: expect a digest instance at #2" elseif not digest.algo then return false, "x509.csr:sign: expect a digest instance to have algo member" end digest_algo = digest.algo end -- returns size of signature if success if C.X509_REQ_sign(self.ctx, pkey.ctx, digest_algo) == 0 then return false, format_error("x509.csr:sign") end return true end -- AUTO GENERATED function _M:verify(pkey) if not pkey_lib.istype(pkey) then return false, "x509.csr:verify: expect a pkey instance at #1" end local code = C.X509_REQ_verify(self.ctx, pkey.ctx) if code == 1 then return true elseif code == 0 then return false else -- typically -1 return false, format_error("x509.csr:verify", code) end end -- AUTO GENERATED function _M:get_subject_name() local got = accessors.get_subject_name(self.ctx) if got == nil then return nil end local lib = require("resty.openssl.x509.name") -- the internal ptr is returned, ie we need to copy it return lib.dup(got) end -- AUTO GENERATED function _M:set_subject_name(toset) local lib = require("resty.openssl.x509.name") if lib.istype and not lib.istype(toset) then return false, "x509.csr:set_subject_name: expect a x509.name instance at #1" end toset = toset.ctx if accessors.set_subject_name(self.ctx, toset) == 0 then return false, format_error("x509.csr:set_subject_name") end return true end -- AUTO GENERATED function _M:get_pubkey() local got = accessors.get_pubkey(self.ctx) if got == nil then return nil end local lib = require("resty.openssl.pkey") -- returned a copied instance directly return lib.new(got) end -- AUTO GENERATED function _M:set_pubkey(toset) local lib = require("resty.openssl.pkey") if lib.istype and not lib.istype(toset) then return false, "x509.csr:set_pubkey: expect a pkey instance at #1" end toset = toset.ctx if accessors.set_pubkey(self.ctx, toset) == 0 then return false, format_error("x509.csr:set_pubkey") end return true end -- AUTO GENERATED function _M:get_version() local got = accessors.get_version(self.ctx) if got == nil then return nil end got = tonumber(got) + 1 return got end -- AUTO GENERATED function _M:set_version(toset) if type(toset) ~= "number" then return false, "x509.csr:set_version: expect a number at #1" end -- Note: this is defined by standards (X.509 et al) to be one less than the certificate version. -- So a version 3 certificate will return 2 and a version 1 certificate will return 0. toset = toset - 1 if accessors.set_version(self.ctx, toset) == 0 then return false, format_error("x509.csr:set_version") end return true end local NID_subject_alt_name = C.OBJ_sn2nid("subjectAltName") assert(NID_subject_alt_name ~= 0) -- AUTO GENERATED: EXTENSIONS function _M:get_subject_alt_name() local crit = ctypes.ptr_of_int() local extensions = C.X509_REQ_get_extensions(self.ctx) -- GC handler is sk_X509_EXTENSION_pop_free ffi_gc(extensions, x509_extensions_gc) local got = C.X509V3_get_d2i(extensions, NID_subject_alt_name, crit, nil) crit = tonumber(crit[0]) if crit == -1 then -- not found return nil elseif crit == -2 then return nil, "x509.csr:get_subject_alt_name: extension of subject_alt_name occurs more than one times, " .. "this is not yet implemented. Please use get_extension instead." elseif got == nil then return nil, format_error("x509.csr:get_subject_alt_name") end -- Note: here we only free the stack itself not elements -- since there seems no way to increase ref count for a GENERAL_NAME -- we left the elements referenced by the new-dup'ed stack local got_ref = got got = ffi_cast("GENERAL_NAMES*", got_ref) ffi_gc(got, stack_lib.gc_of("GENERAL_NAME")) local lib = require("resty.openssl.x509.altname") -- the internal ptr is returned, ie we need to copy it return lib.dup(got) end -- AUTO GENERATED: EXTENSIONS function _M:set_subject_alt_name(toset) local lib = require("resty.openssl.x509.altname") if lib.istype and not lib.istype(toset) then return false, "x509.csr:set_subject_alt_name: expect a x509.altname instance at #1" end toset = toset.ctx -- avoid tail call return as `toset.ctx` may got GC'ed early local ok, err = replace_extension(self.ctx, NID_subject_alt_name, toset) return ok, err end -- AUTO GENERATED: EXTENSIONS function _M:set_subject_alt_name_critical(crit) return _M.set_extension_critical(self, NID_subject_alt_name, crit) end -- AUTO GENERATED: EXTENSIONS function _M:get_subject_alt_name_critical() return _M.get_extension_critical(self, NID_subject_alt_name) end -- AUTO GENERATED function _M:get_signature_nid() local nid = accessors.get_signature_nid(self.ctx) if nid <= 0 then return nil, format_error("x509.csr:get_signature_nid") end return nid end -- AUTO GENERATED function _M:get_signature_name() local nid = accessors.get_signature_nid(self.ctx) if nid <= 0 then return nil, format_error("x509.csr:get_signature_name") end return ffi.string(C.OBJ_nid2sn(nid)) end -- AUTO GENERATED function _M:get_signature_digest_name() local nid = accessors.get_signature_nid(self.ctx) if nid <= 0 then return nil, format_error("x509.csr:get_signature_digest_name") end local nid = find_sigid_algs(nid) return ffi.string(C.OBJ_nid2sn(nid)) end -- END AUTO GENERATED CODE return _M PKA½N]wW x››resty/openssl/x509/store.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_str = ffi.string local bor = bit.bor local x509_vfy_macro = require "resty.openssl.include.x509_vfy" local x509_lib = require "resty.openssl.x509" local chain_lib = require "resty.openssl.x509.chain" local crl_lib = require "resty.openssl.x509.crl" local ctx_lib = require "resty.openssl.ctx" local format_all_error = require("resty.openssl.err").format_all_error local format_error = require("resty.openssl.err").format_error local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X local _M = {} local mt = { __index = _M } _M.verify_flags = x509_vfy_macro.verify_flags local flag_crl_check = _M.verify_flags.X509_V_FLAG_CRL_CHECK local x509_store_ptr_ct = ffi.typeof('X509_STORE*') function _M.new() local ctx = C.X509_STORE_new() if ctx == nil then return nil, "x509.store.new: X509_STORE_new() failed" end ffi_gc(ctx, C.X509_STORE_free) local self = setmetatable({ ctx = ctx, _elem_refs = {}, _elem_refs_idx = 1, }, mt) return self, nil end function _M.istype(l) return l and l.ctx and ffi.istype(x509_store_ptr_ct, l.ctx) end function _M:use_default(properties) if x509_vfy_macro.X509_STORE_set_default_paths(self.ctx, ctx_lib.get_libctx(), properties) ~= 1 then return false, format_all_error("x509.store:use_default") end return true end function _M:add(item, skip_set_flags) local dup local err if x509_lib.istype(item) then dup = C.X509_dup(item.ctx) if dup == nil then return false, "x509.store:add: X509_dup() failed" end -- ref counter of dup is increased by 1 if C.X509_STORE_add_cert(self.ctx, dup) ~= 1 then err = format_all_error("x509.store:add: X509_STORE_add_cert") end -- decrease the dup ctx ref count immediately to make leak test happy C.X509_free(dup) elseif crl_lib.istype(item) then dup = C.X509_CRL_dup(item.ctx) if dup == nil then return false, "x509.store:add: X509_CRL_dup() failed" end -- ref counter of dup is increased by 1 if C.X509_STORE_add_crl(self.ctx, dup) ~= 1 then err = format_all_error("x509.store:add: X509_STORE_add_crl") end -- define X509_V_FLAG_CRL_CHECK 0x4 -- enables CRL checking for the certificate chain leaf certificate. -- An error occurs if a suitable CRL cannot be found. -- Note: this does not check for certificates in the chain. if not skip_set_flags and C.X509_STORE_set_flags(self.ctx, 0x4) ~= 1 then return false, format_error("x509.store:add: X509_STORE_set_flags") end -- decrease the dup ctx ref count immediately to make leak test happy C.X509_CRL_free(dup) else return false, "x509.store:add: expect an x509 or crl instance at #1" end if err then return false, err end -- X509_STORE doesn't have stack gc handler, we need to gc by ourselves self._elem_refs[self._elem_refs_idx] = dup self._elem_refs_idx = self._elem_refs_idx + 1 return true end function _M:load_file(path, properties) if type(path) ~= "string" then return false, "x509.store:load_file: expect a string at #1" else if x509_vfy_macro.X509_STORE_load_locations(self.ctx, path, nil, ctx_lib.get_libctx(), properties) ~= 1 then return false, format_all_error("x509.store:load_file") end end return true end function _M:load_directory(path, properties) if type(path) ~= "string" then return false, "x509.store:load_directory expect a string at #1" else if x509_vfy_macro.X509_STORE_load_locations(self.ctx, nil, path, ctx_lib.get_libctx(), properties) ~= 1 then return false, format_all_error("x509.store:load_directory") end end return true end function _M:set_depth(depth) depth = depth and tonumber(depth) if not depth then return nil, "x509.store:set_depth: expect a number at #1" end if C.X509_STORE_set_depth(self.ctx, depth) ~= 1 then return false, format_error("x509.store:set_depth") end return true end function _M:set_purpose(purpose) if type(purpose) ~= "string" then return nil, "x509.store:set_purpose: expect a string at #1" end local pchar = ffi.new("char[?]", #purpose + 1, purpose) local idx = C.X509_PURPOSE_get_by_sname(pchar) idx = tonumber(idx) if idx == -1 then return false, "invalid purpose \"" .. purpose .. "\"" end local purp = C.X509_PURPOSE_get0(idx) local i = C.X509_PURPOSE_get_id(purp) if C.X509_STORE_set_purpose(self.ctx, i) ~= 1 then return false, format_error("x509.store:set_purpose: X509_STORE_set_purpose") end return true end function _M:set_flags(...) local flag = 0 for _, f in ipairs({...}) do flag = bor(flag, f) end if C.X509_STORE_set_flags(self.ctx, flag) ~= 1 then return false, format_error("x509.store:set_flags: X509_STORE_set_flags") end return true end function _M:verify(x509, chain, return_chain, properties, verify_method, flags) if not x509_lib.istype(x509) then return nil, "x509.store:verify: expect a x509 instance at #1" elseif chain and not chain_lib.istype(chain) then return nil, "x509.store:verify: expect a x509.chain instance at #1" end local ctx if OPENSSL_3X then ctx = C.X509_STORE_CTX_new_ex(ctx_lib.get_libctx(), properties) else ctx = C.X509_STORE_CTX_new() end if ctx == nil then return nil, "x509.store:verify: X509_STORE_CTX_new() failed" end ffi_gc(ctx, C.X509_STORE_CTX_free) local chain_dup_ctx if chain then local chain_dup, err = chain_lib.dup(chain.ctx) if err then return nil, err end chain_dup_ctx = chain_dup.ctx end if C.X509_STORE_CTX_init(ctx, self.ctx, x509.ctx, chain_dup_ctx) ~= 1 then return nil, format_error("x509.store:verify: X509_STORE_CTX_init") end if verify_method and C.X509_STORE_CTX_set_default(ctx, verify_method) ~= 1 then return nil, "x509.store:verify: invalid verify_method \"" .. verify_method .. "\"" end if flags then C.X509_STORE_CTX_set_flags(ctx, flags) end local code = C.X509_verify_cert(ctx) if code == 1 then -- verified if not return_chain then return true, nil end local ret_chain_ctx = C.X509_STORE_CTX_get0_chain(ctx) -- returns the internal pointer, dup it and avoid tail call return -- to avoid ctx being GC'ed early local res, err = chain_lib.dup(ret_chain_ctx) return res, err elseif code == 0 then -- unverified local vfy_code = C.X509_STORE_CTX_get_error(ctx) return nil, ffi_str(C.X509_verify_cert_error_string(vfy_code)) end -- error return nil, format_error("x509.store:verify: X509_verify_cert", code) end function _M:check_revocation(verified_chain, properties) if not verified_chain or not chain_lib.istype(verified_chain) then return nil, "x509.store:check_revocation: expect a x509.chain instance at #1" end local ctx if OPENSSL_3X then ctx = C.X509_STORE_CTX_new_ex(ctx_lib.get_libctx(), properties) else ctx = C.X509_STORE_CTX_new() end if ctx == nil then return nil, "x509.store:check_revocation: X509_STORE_CTX_new() failed" end ffi_gc(ctx, C.X509_STORE_CTX_free) if C.X509_STORE_CTX_init(ctx, self.ctx, nil, nil) ~= 1 then return nil, format_error("x509.store:check_revocation: X509_STORE_CTX_init") end local verified_dup = C.X509_chain_up_ref(verified_chain.ctx) if verified_dup == nil then return nil, "x509.store:check_revocation: X509_chain_up_ref() failed" end C.X509_STORE_CTX_set0_verified_chain(ctx, verified_dup) -- enables CRL checking for the certificate chain leaf certificate. -- An error occurs if a suitable CRL cannot be found. C.X509_STORE_CTX_set_flags(ctx, flag_crl_check) local check_revocation = C.X509_STORE_CTX_get_check_revocation(ctx) local code = check_revocation(ctx) if code == 1 then -- succeess return true, nil else local vfy_code = C.X509_STORE_CTX_get_error(ctx) return nil, ffi_str(C.X509_verify_cert_error_string(vfy_code)) end end return _M PKA½N] 6Ô¾» » resty/openssl/x509/revoked.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc require "resty.openssl.include.x509.crl" require "resty.openssl.include.x509.revoked" local bn_lib = require("resty.openssl.bn") local format_error = require("resty.openssl.err").format_error local _M = {} local mt = { __index = _M } local x509_revoked_ptr_ct = ffi.typeof('X509_REVOKED*') local NID_crl_reason = C.OBJ_txt2nid("CRLReason") assert(NID_crl_reason > 0) --- Creates new instance of X509_REVOKED data -- @tparam bn|number sn Serial number as number or bn instance -- @tparam number time Revocation time -- @tparam number reason Revocation reason -- @treturn table instance of the module or nil -- @treturn[opt] string Returns optional error message in case of error function _M.new(sn, time, reason) --- only convert to bn if it is number if type(sn) == "number"then sn = bn_lib.new(sn) end if not bn_lib.istype(sn) then return nil, "x509.revoked.new: sn should be number or a bn instance" end if type(time) ~= "number" then return nil, "x509.revoked.new: expect a number at #2" end if type(reason) ~= "number" then return nil, "x509.revoked.new: expect a number at #3" end local ctx = C.X509_REVOKED_new() ffi_gc(ctx, C.X509_REVOKED_free) -- serial number local sn_asn1 = C.BN_to_ASN1_INTEGER(sn.ctx, nil) if sn_asn1 == nil then return nil, "x509.revoked.new: BN_to_ASN1_INTEGER() failed" end ffi_gc(sn_asn1, C.ASN1_INTEGER_free) if C.X509_REVOKED_set_serialNumber(ctx, sn_asn1) == 0 then return nil, format_error("x509.revoked.new: X509_REVOKED_set_serialNumber()") end -- time time = C.ASN1_TIME_set(nil, time) if time == nil then return nil, format_error("x509.revoked.new: ASN1_TIME_set()") end ffi_gc(time, C.ASN1_STRING_free) if C.X509_REVOKED_set_revocationDate(ctx, time) == 0 then return nil, format_error("x509.revoked.new: X509_REVOKED_set_revocationDate()") end -- reason local reason_asn1 = C.ASN1_ENUMERATED_new() if reason_asn1 == nil then return nil, "x509.revoked.new: ASN1_ENUMERATED_new() failed" end ffi_gc(reason_asn1, C.ASN1_ENUMERATED_free) local reason_ext = C.X509_EXTENSION_new() if reason_ext == nil then return nil, "x509.revoked.new: X509_EXTENSION_new() failed" end ffi_gc(reason_ext, C.X509_EXTENSION_free) if C.ASN1_ENUMERATED_set(reason_asn1, reason) == 0 then return nil, format_error("x509.revoked.new: ASN1_ENUMERATED_set()") end if C.X509_EXTENSION_set_data(reason_ext, reason_asn1) == 0 then return nil, format_error("x509.revoked.new: X509_EXTENSION_set_data()") end if C.X509_EXTENSION_set_object(reason_ext, C.OBJ_nid2obj(NID_crl_reason)) == 0 then return nil, format_error("x509.revoked.new: X509_EXTENSION_set_object()") end if C.X509_REVOKED_add_ext(ctx, reason_ext, 0) == 0 then return nil, format_error("x509.revoked.new: X509_EXTENSION_set_object()") end local self = setmetatable({ ctx = ctx, }, mt) return self, nil end --- Type check -- @tparam table Instance of revoked module -- @treturn boolean true if instance is instance of revoked module false otherwise function _M.istype(l) return l and l.ctx and ffi.istype(x509_revoked_ptr_ct, l.ctx) end return _M PKA½N]Ó¸ÏÞÊ6Ê6resty/openssl/x509/crl.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc require "resty.openssl.include.x509.crl" require "resty.openssl.include.pem" require "resty.openssl.include.x509v3" local asn1_lib = require("resty.openssl.asn1") local bn_lib = require("resty.openssl.bn") local revoked_lib = require("resty.openssl.x509.revoked") local digest_lib = require("resty.openssl.digest") local extension_lib = require("resty.openssl.x509.extension") local pkey_lib = require("resty.openssl.pkey") local bio_util = require "resty.openssl.auxiliary.bio" local ctx_lib = require "resty.openssl.ctx" local stack_lib = require "resty.openssl.stack" local txtnid2nid = require("resty.openssl.objects").txtnid2nid local find_sigid_algs = require("resty.openssl.objects").find_sigid_algs local format_error = require("resty.openssl.err").format_error local version = require("resty.openssl.version") local OPENSSL_3X = version.OPENSSL_3X local accessors = {} accessors.set_issuer_name = C.X509_CRL_set_issuer_name accessors.set_version = C.X509_CRL_set_version accessors.get_last_update = C.X509_CRL_get0_lastUpdate accessors.set_last_update = C.X509_CRL_set1_lastUpdate accessors.get_next_update = C.X509_CRL_get0_nextUpdate accessors.set_next_update = C.X509_CRL_set1_nextUpdate accessors.get_version = C.X509_CRL_get_version accessors.get_issuer_name = C.X509_CRL_get_issuer -- returns internal ptr accessors.get_signature_nid = C.X509_CRL_get_signature_nid accessors.get_revoked = C.X509_CRL_get_REVOKED local function __tostring(self, fmt) if not fmt or fmt == 'PEM' then return bio_util.read_wrap(C.PEM_write_bio_X509_CRL, self.ctx) elseif fmt == 'DER' then return bio_util.read_wrap(C.i2d_X509_CRL_bio, self.ctx) else return nil, "x509.crl:tostring: can only write PEM or DER format, not " .. fmt end end local _M = {} local mt = { __index = _M, __tostring = __tostring } local x509_crl_ptr_ct = ffi.typeof("X509_CRL*") function _M.new(crl, fmt, properties) local ctx if not crl then if OPENSSL_3X then ctx = C.X509_CRL_new_ex(ctx_lib.get_libctx(), properties) else ctx = C.X509_CRL_new() end if ctx == nil then return nil, "x509.crl.new: X509_CRL_new() failed" end elseif type(crl) == "string" then -- routine for load an existing csr local bio = C.BIO_new_mem_buf(crl, #crl) if bio == nil then return nil, format_error("x509.crl.new: BIO_new_mem_buf") end fmt = fmt or "*" while true do -- luacheck: ignore 512 -- loop is executed at most once if fmt == "PEM" or fmt == "*" then ctx = C.PEM_read_bio_X509_CRL(bio, nil, nil, nil) if ctx ~= nil then break elseif fmt == "*" then -- BIO_reset; #define BIO_CTRL_RESET 1 local code = C.BIO_ctrl(bio, 1, 0, nil) if code ~= 1 then return nil, "x509.crl.new: BIO_ctrl() failed: " .. code end end end if fmt == "DER" or fmt == "*" then ctx = C.d2i_X509_CRL_bio(bio, nil) end break end C.BIO_free(bio) if ctx == nil then return nil, format_error("x509.crl.new") end -- clear errors occur when trying C.ERR_clear_error() else return nil, "x509.crl.new: expect nil or a string at #1" end ffi_gc(ctx, C.X509_CRL_free) local self = setmetatable({ ctx = ctx, }, mt) return self, nil end function _M.istype(l) return l and l and l.ctx and ffi.istype(x509_crl_ptr_ct, l.ctx) end function _M.dup(ctx) if not ffi.istype(x509_crl_ptr_ct, ctx) then return nil, "x509.crl.dup: expect a x509.crl ctx at #1" end local ctx = C.X509_CRL_dup(ctx) if ctx == nil then return nil, "x509.crl.dup: X509_CRL_dup() failed" end ffi_gc(ctx, C.X509_CRL_free) local self = setmetatable({ ctx = ctx, }, mt) return self, nil end function _M:tostring(fmt) return __tostring(self, fmt) end function _M:to_PEM() return __tostring(self, "PEM") end function _M:text() return bio_util.read_wrap(C.X509_CRL_print, self.ctx) end local function revoked_decode(ctx) local ret = {} local serial = C.X509_REVOKED_get0_serialNumber(ctx) if serial ~= nil then serial = C.ASN1_INTEGER_to_BN(serial, nil) if serial == nil then error("x509.crl:revoked_decode: ASN1_INTEGER_to_BN() failed") end ffi_gc(serial, C.BN_free) ret["serial_number"] = bn_lib.to_hex({ctx = serial}) end local date = C.X509_REVOKED_get0_revocationDate(ctx) if date ~= nil then date = asn1_lib.asn1_to_unix(date) ret["revocation_date"] = date end return ret end local revoked_mt = stack_lib.mt_of("X509_REVOKED", revoked_decode, _M) local function nil_iter() return nil end local function revoked_iter(self) local stack = accessors.get_revoked(self.ctx) if stack == nil then return nil_iter end return revoked_mt.__ipairs({ctx = stack}) end mt.__pairs = revoked_iter mt.__ipairs = revoked_iter mt.__index = function(self, k) local i = tonumber(k) if not i then return _M[k] end local stack = accessors.get_revoked(self.ctx) if stack == nil then return nil end return revoked_mt.__index({ctx = stack}, i) end mt.__len = function(self) local stack = accessors.get_revoked(self.ctx) if stack == nil then return 0 end return revoked_mt.__len({ctx = stack}) end _M.all = function(self) local ret = {} local _next = mt.__pairs(self) while true do local k, v = _next() if k then ret[k] = v else break end end return ret end _M.each = mt.__pairs _M.index = mt.__index _M.count = mt.__len --- Adds revoked item to stack of revoked certificates of crl -- @tparam table Instance of crl module -- @tparam table Instance of revoked module -- @treturn boolean true if revoked item was successfully added or false otherwise -- @treturn[opt] string Returns optional error message in case of error function _M:add_revoked(revoked) if not revoked_lib.istype(revoked) then return false, "x509.crl:add_revoked: expect a revoked instance at #1" end local ctx = C.X509_REVOKED_dup(revoked.ctx) if ctx == nil then return nil, "x509.crl:add_revoked: X509_REVOKED_dup() failed" end if C.X509_CRL_add0_revoked(self.ctx, ctx) == 0 then return false, format_error("x509.crl:add_revoked") end return true end local ptr_ptr_of_x509_revoked = ffi.typeof("X509_REVOKED*[1]") function _M:get_by_serial(sn) local bn, err if bn_lib.istype(sn) then bn = sn elseif type(sn) == "string" then bn, err = bn_lib.from_hex(sn) if err then return nil, "x509.crl:find: can't decode bn: " .. err end else return nil, "x509.crl:find: expect a bn instance at #1" end local sn_asn1 = C.BN_to_ASN1_INTEGER(bn.ctx, nil) if sn_asn1 == nil then return nil, "x509.crl:find: BN_to_ASN1_INTEGER() failed" end ffi_gc(sn_asn1, C.ASN1_INTEGER_free) local pp = ptr_ptr_of_x509_revoked() local code = C.X509_CRL_get0_by_serial(self.ctx, pp, sn_asn1) if code == 1 then return revoked_decode(pp[0]) elseif code == 2 then return nil, "not revoked (removeFromCRL)" end -- 0 or other return nil end -- START AUTO GENERATED CODE -- AUTO GENERATED function _M:sign(pkey, digest) if not pkey_lib.istype(pkey) then return false, "x509.crl:sign: expect a pkey instance at #1" end local digest_algo if digest then if not digest_lib.istype(digest) then return false, "x509.crl:sign: expect a digest instance at #2" elseif not digest.algo then return false, "x509.crl:sign: expect a digest instance to have algo member" end digest_algo = digest.algo end -- returns size of signature if success if C.X509_CRL_sign(self.ctx, pkey.ctx, digest_algo) == 0 then return false, format_error("x509.crl:sign") end return true end -- AUTO GENERATED function _M:verify(pkey) if not pkey_lib.istype(pkey) then return false, "x509.crl:verify: expect a pkey instance at #1" end local code = C.X509_CRL_verify(self.ctx, pkey.ctx) if code == 1 then return true elseif code == 0 then return false else -- typically -1 return false, format_error("x509.crl:verify", code) end end -- AUTO GENERATED local function get_extension(ctx, nid_txt, last_pos) last_pos = (last_pos or 0) - 1 local nid, err = txtnid2nid(nid_txt) if err then return nil, nil, err end local pos = C.X509_CRL_get_ext_by_NID(ctx, nid, last_pos) if pos == -1 then return nil end local ctx = C.X509_CRL_get_ext(ctx, pos) if ctx == nil then return nil, nil, format_error() end return ctx, pos end -- AUTO GENERATED function _M:add_extension(extension) if not extension_lib.istype(extension) then return false, "x509.crl:add_extension: expect a x509.extension instance at #1" end -- X509_CRL_add_ext returnes the stack on success, and NULL on error -- the X509_EXTENSION ctx is dupped internally if C.X509_CRL_add_ext(self.ctx, extension.ctx, -1) == nil then return false, format_error("x509.crl:add_extension") end return true end -- AUTO GENERATED function _M:get_extension(nid_txt, last_pos) local ctx, pos, err = get_extension(self.ctx, nid_txt, last_pos) if err then return nil, nil, "x509.crl:get_extension: " .. err end local ext, err = extension_lib.dup(ctx) if err then return nil, nil, "x509.crl:get_extension: " .. err end return ext, pos+1 end -- AUTO GENERATED function _M:set_extension(extension, last_pos) if not extension_lib.istype(extension) then return false, "x509.crl:set_extension: expect a x509.extension instance at #1" end last_pos = (last_pos or 0) - 1 local nid = extension:get_object().nid local pos = C.X509_CRL_get_ext_by_NID(self.ctx, nid, last_pos) -- pos may be -1, which means not found, it's fine, we will add new one instead of replace local removed = C.X509_CRL_delete_ext(self.ctx, pos) C.X509_EXTENSION_free(removed) if C.X509_CRL_add_ext(self.ctx, extension.ctx, pos) == nil then return false, format_error("x509.crl:set_extension") end return true end -- AUTO GENERATED function _M:set_extension_critical(nid_txt, crit, last_pos) local ctx, _, err = get_extension(self.ctx, nid_txt, last_pos) if err then return nil, "x509.crl:set_extension_critical: " .. err end if C.X509_EXTENSION_set_critical(ctx, crit and 1 or 0) ~= 1 then return false, format_error("x509.crl:set_extension_critical") end return true end -- AUTO GENERATED function _M:get_extension_critical(nid_txt, last_pos) local ctx, _, err = get_extension(self.ctx, nid_txt, last_pos) if err then return nil, "x509.crl:get_extension_critical: " .. err end return C.X509_EXTENSION_get_critical(ctx) == 1 end -- AUTO GENERATED function _M:get_issuer_name() local got = accessors.get_issuer_name(self.ctx) if got == nil then return nil end local lib = require("resty.openssl.x509.name") -- the internal ptr is returned, ie we need to copy it return lib.dup(got) end -- AUTO GENERATED function _M:set_issuer_name(toset) local lib = require("resty.openssl.x509.name") if lib.istype and not lib.istype(toset) then return false, "x509.crl:set_issuer_name: expect a x509.name instance at #1" end toset = toset.ctx if accessors.set_issuer_name(self.ctx, toset) == 0 then return false, format_error("x509.crl:set_issuer_name") end return true end -- AUTO GENERATED function _M:get_last_update() local got = accessors.get_last_update(self.ctx) if got == nil then return nil end got = asn1_lib.asn1_to_unix(got) return got end -- AUTO GENERATED function _M:set_last_update(toset) if type(toset) ~= "number" then return false, "x509.crl:set_last_update: expect a number at #1" end toset = C.ASN1_TIME_set(nil, toset) ffi_gc(toset, C.ASN1_STRING_free) if accessors.set_last_update(self.ctx, toset) == 0 then return false, format_error("x509.crl:set_last_update") end return true end -- AUTO GENERATED function _M:get_next_update() local got = accessors.get_next_update(self.ctx) if got == nil then return nil end got = asn1_lib.asn1_to_unix(got) return got end -- AUTO GENERATED function _M:set_next_update(toset) if type(toset) ~= "number" then return false, "x509.crl:set_next_update: expect a number at #1" end toset = C.ASN1_TIME_set(nil, toset) ffi_gc(toset, C.ASN1_STRING_free) if accessors.set_next_update(self.ctx, toset) == 0 then return false, format_error("x509.crl:set_next_update") end return true end -- AUTO GENERATED function _M:get_version() local got = accessors.get_version(self.ctx) if got == nil then return nil end got = tonumber(got) + 1 return got end -- AUTO GENERATED function _M:set_version(toset) if type(toset) ~= "number" then return false, "x509.crl:set_version: expect a number at #1" end -- Note: this is defined by standards (X.509 et al) to be one less than the certificate version. -- So a version 3 certificate will return 2 and a version 1 certificate will return 0. toset = toset - 1 if accessors.set_version(self.ctx, toset) == 0 then return false, format_error("x509.crl:set_version") end return true end -- AUTO GENERATED function _M:get_signature_nid() local nid = accessors.get_signature_nid(self.ctx) if nid <= 0 then return nil, format_error("x509.crl:get_signature_nid") end return nid end -- AUTO GENERATED function _M:get_signature_name() local nid = accessors.get_signature_nid(self.ctx) if nid <= 0 then return nil, format_error("x509.crl:get_signature_name") end return ffi.string(C.OBJ_nid2sn(nid)) end -- AUTO GENERATED function _M:get_signature_digest_name() local nid = accessors.get_signature_nid(self.ctx) if nid <= 0 then return nil, format_error("x509.crl:get_signature_digest_name") end local nid = find_sigid_algs(nid) return ffi.string(C.OBJ_nid2sn(nid)) end -- END AUTO GENERATED CODE return _M PKA½N]^G9™™ resty/openssl/x509/extension.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_new = ffi.new local ffi_cast = ffi.cast local ffi_str = ffi.string require "resty.openssl.include.x509" require "resty.openssl.include.x509.extension" require "resty.openssl.include.x509v3" require "resty.openssl.include.bio" require "resty.openssl.include.conf" local asn1_macro = require("resty.openssl.include.asn1") local objects_lib = require "resty.openssl.objects" local stack_lib = require("resty.openssl.stack") local bio_util = require "resty.openssl.auxiliary.bio" local format_error = require("resty.openssl.err").format_error local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X local _M = {} local mt = { __index = _M } local x509_extension_ptr_ct = ffi.typeof("X509_EXTENSION*") local extension_types = { issuer = "resty.openssl.x509", subject = "resty.openssl.x509", request = "resty.openssl.x509.csr", crl = "resty.openssl.x509.crl", } if OPENSSL_3X then extension_types["issuer_pkey"] = "resty.openssl.pkey" end local nconf_load = function(conf, str) local bio = C.BIO_new_mem_buf(str, #str) if bio == nil then return format_error("BIO_new_mem_buf") end ffi_gc(bio, C.BIO_free) if C.NCONF_load_bio(conf, bio, nil) ~= 1 then return format_error("NCONF_load_bio") end end function _M.new(txtnid, value, data) local nid, err = objects_lib.txtnid2nid(txtnid) if err then return nil, "x509.extension.new: " .. err end if type(value) ~= 'string' then return nil, "x509.extension.new: expect string at #2" end -- get a ptr and also zerofill the struct local x509_ctx_ptr = ffi_new('X509V3_CTX[1]') local conf = C.NCONF_new(nil) if conf == nil then return nil, format_error("NCONF_new") end ffi_gc(conf, C.NCONF_free) if type(data) == 'table' then local args = {} if data.db then if type(data.db) ~= 'string' then return nil, "x509.extension.new: expect data.db must be a string" end err = nconf_load(conf, data) if err then return nil, "x509.extension.new: " .. err end end for k, t in pairs(extension_types) do if data[k] then local lib = require(t) if not lib.istype(data[k]) then return nil, "x509.extension.new: expect data." .. k .. " to be a " .. t .. " instance" end args[k] = data[k].ctx end end C.X509V3_set_ctx(x509_ctx_ptr[0], args.issuer, args.subject, args.request, args.crl, 0) if OPENSSL_3X and args.issuer_pkey then if C.X509V3_set_issuer_pkey(x509_ctx_ptr[0], args.issuer_pkey) ~= 1 then return nil, format_error("x509.extension.new: X509V3_set_issuer_pkey") end end elseif type(data) == 'string' then err = nconf_load(conf, data) if err then return nil, "x509.extension.new: " .. err end elseif data then return nil, "x509.extension.new: expect nil, string a table at #3" end -- setting conf is required for some extensions to load -- crypto/x509/v3_conf.c:do_ext_conf "else if (method->r2i) {" branch C.X509V3_set_nconf(x509_ctx_ptr[0], conf) local ctx = C.X509V3_EXT_nconf_nid(conf, x509_ctx_ptr[0], nid, value) if ctx == nil then return nil, format_error("x509.extension.new") end ffi_gc(ctx, C.X509_EXTENSION_free) local self = setmetatable({ ctx = ctx, }, mt) return self, nil end function _M.istype(l) return l and l.ctx and ffi.istype(x509_extension_ptr_ct, l.ctx) end function _M.dup(ctx) if not ffi.istype(x509_extension_ptr_ct, ctx) then return nil, "x509.extension.dup: expect a x509.extension ctx at #1" end local ctx = C.X509_EXTENSION_dup(ctx) if ctx == nil then return nil, "x509.extension.dup: X509_EXTENSION_dup() failed" end ffi_gc(ctx, C.X509_EXTENSION_free) local self = setmetatable({ ctx = ctx, }, mt) return self, nil end function _M.from_der(value, txtnid, crit) local nid, err = objects_lib.txtnid2nid(txtnid) if err then return nil, "x509.extension.from_der: " .. err end if type(value) ~= 'string' then return nil, "x509.extension.from_der: expect string at #1" end local asn1 = C.ASN1_STRING_new() if asn1 == nil then return nil, format_error("x509.extension.from_der: ASN1_STRING_new") end ffi_gc(asn1, C.ASN1_STRING_free) if C.ASN1_STRING_set(asn1, value, #value) ~= 1 then return nil, format_error("x509.extension.from_der: ASN1_STRING_set") end local ctx = C.X509_EXTENSION_create_by_NID(nil, nid, crit and 1 or 0, asn1) if ctx == nil then return nil, format_error("x509.extension.from_der: X509_EXTENSION_create_by_NID") end ffi_gc(ctx, C.X509_EXTENSION_free) local self = setmetatable({ ctx = ctx, }, mt) return self, nil end function _M:to_der() local asn1 = C.X509_EXTENSION_get_data(self.ctx) return ffi_str(asn1_macro.ASN1_STRING_get0_data(asn1)) end function _M.from_data(any, txtnid, crit) local nid, err = objects_lib.txtnid2nid(txtnid) if err then return nil, "x509.extension.from_der: " .. err end if type(any) ~= "table" or type(any.ctx) ~= "cdata" then return nil, "x509.extension.from_data: expect a table with ctx at #1" elseif type(nid) ~= "number" then return nil, "x509.extension.from_data: expect a table at #2" end local ctx = C.X509V3_EXT_i2d(nid, crit and 1 or 0, any.ctx) if ctx == nil then return nil, format_error("x509.extension.from_data: X509V3_EXT_i2d") end ffi_gc(ctx, C.X509_EXTENSION_free) local self = setmetatable({ ctx = ctx, }, mt) return self, nil end local NID_subject_alt_name = C.OBJ_sn2nid("subjectAltName") assert(NID_subject_alt_name ~= 0) local sk_GENERAL_NAME_free = stack_lib.gc_of("GENERAL_NAME") function _M.to_data(extension, nid) if not _M.istype(extension) then return nil, "x509.extension.dup: expect a x509.extension ctx at #1" elseif type(nid) ~= "number" then return nil, "x509.extension.to_data: expect a table at #2" end local void_ptr = C.X509V3_EXT_d2i(extension.ctx) if void_ptr == nil then return nil, format_error("x509.extension:to_data: X509V3_EXT_d2i") end if nid == NID_subject_alt_name then -- Note: here we only free the stack itself not elements -- since there seems no way to increase ref count for a GENERAL_NAME -- we left the elements referenced by the new-dup'ed stack local got = ffi_cast("GENERAL_NAMES*", void_ptr) ffi_gc(got, sk_GENERAL_NAME_free) local lib = require("resty.openssl.x509.altname") -- the internal ptr is returned, ie we need to copy it return lib.dup(got) end return nil, string.format("x509.extension:to_data: don't know how to convert to NID %d", nid) end function _M:get_object() -- retruns the internal pointer local asn1 = C.X509_EXTENSION_get_object(self.ctx) return objects_lib.obj2table(asn1) end function _M:get_critical() return C.X509_EXTENSION_get_critical(self.ctx) == 1 end function _M:set_critical(crit) if C.X509_EXTENSION_set_critical(self.ctx, crit and 1 or 0) ~= 1 then return false, format_error("x509.extension:set_critical") end return true end function _M:tostring() local ret, err = bio_util.read_wrap(C.X509V3_EXT_print, self.ctx, 0, 0) if not err then return ret end -- fallback to ASN.1 print local asn1 = C.X509_EXTENSION_get_data(self.ctx) return bio_util.read_wrap(C.ASN1_STRING_print, asn1) end _M.text = _M.tostring mt.__tostring = function(tbl) local txt, err = _M.text(tbl) if err then error(err) end return txt end return _M PKA½N]˜(Á. . resty/openssl/x509/name.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_str = ffi.string require "resty.openssl.include.x509.name" require "resty.openssl.include.err" local objects_lib = require "resty.openssl.objects" local asn1_macro = require "resty.openssl.include.asn1" -- local MBSTRING_FLAG = 0x1000 local MBSTRING_ASC = 0x1001 -- (MBSTRING_FLAG|1) local _M = {} local x509_name_ptr_ct = ffi.typeof("X509_NAME*") -- starts from 0 local function value_at(ctx, i) local entry = C.X509_NAME_get_entry(ctx, i) local obj = C.X509_NAME_ENTRY_get_object(entry) local ret = objects_lib.obj2table(obj) local str = C.X509_NAME_ENTRY_get_data(entry) if str ~= nil then ret.blob = ffi_str(asn1_macro.ASN1_STRING_get0_data(str)) end return ret end local function iter(tbl) local i = 0 local n = tonumber(C.X509_NAME_entry_count(tbl.ctx)) return function() i = i + 1 if i <= n then local obj = value_at(tbl.ctx, i-1) return obj.sn or obj.ln or obj.id, obj end end end local mt = { __index = _M, __pairs = iter, __len = function(tbl) return tonumber(C.X509_NAME_entry_count(tbl.ctx)) end, } function _M.new() local ctx = C.X509_NAME_new() if ctx == nil then return nil, "x509.name.new: X509_NAME_new() failed" end ffi_gc(ctx, C.X509_NAME_free) local self = setmetatable({ ctx = ctx, }, mt) return self, nil end function _M.istype(l) return l and l.ctx and ffi.istype(x509_name_ptr_ct, l.ctx) end function _M.dup(ctx) if not ffi.istype(x509_name_ptr_ct, ctx) then return nil, "x509.name.dup: expect a x509.name ctx at #1, got " .. type(ctx) end local ctx = C.X509_NAME_dup(ctx) ffi_gc(ctx, C.X509_NAME_free) local self = setmetatable({ ctx = ctx, }, mt) return self, nil end function _M:add(nid, txt) local asn1 = C.OBJ_txt2obj(nid, 0) if asn1 == nil then -- clean up error occurs during OBJ_txt2* C.ERR_clear_error() return nil, "x509.name:add: invalid NID text " .. (nid or "nil") end local code = C.X509_NAME_add_entry_by_OBJ(self.ctx, asn1, MBSTRING_ASC, txt, #txt, -1, 0) C.ASN1_OBJECT_free(asn1) if code ~= 1 then return nil, "x509.name:add: X509_NAME_add_entry_by_OBJ() failed" end return self end function _M:find(nid, last_pos) local asn1 = C.OBJ_txt2obj(nid, 0) if asn1 == nil then -- clean up error occurs during OBJ_txt2* C.ERR_clear_error() return nil, nil, "x509.name:find: invalid NID text " .. (nid or "nil") end -- make 1-index array to 0-index last_pos = (last_pos or 0) - 1 local pos = C.X509_NAME_get_index_by_OBJ(self.ctx, asn1, last_pos) if pos == -1 then return nil end C.ASN1_OBJECT_free(asn1) return value_at(self.ctx, pos), pos+1 end -- fallback function to iterate if LUAJIT_ENABLE_LUA52COMPAT not enabled function _M:all() local ret = {} local _next = iter(self) while true do local k, obj = _next() if obj then ret[k] = obj else break end end return ret end function _M:each() return iter(self) end mt.__tostring = function(self) local values = {} local _next = iter(self) while true do local k, v = _next() if k then table.insert(values, k .. "=" .. v.blob) else break end end table.sort(values) return table.concat(values, "/") end _M.tostring = mt.__tostring return _M PKA½N]h •˜ÕqÕqresty/openssl/x509/init.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_str = ffi.string local ffi_cast = ffi.cast require "resty.openssl.include.x509" require "resty.openssl.include.x509v3" require "resty.openssl.include.evp" require "resty.openssl.include.objects" require "resty.openssl.include.stack" local stack_lib = require("resty.openssl.stack") local asn1_lib = require("resty.openssl.asn1") local digest_lib = require("resty.openssl.digest") local extension_lib = require("resty.openssl.x509.extension") local pkey_lib = require("resty.openssl.pkey") local bio_util = require "resty.openssl.auxiliary.bio" local txtnid2nid = require("resty.openssl.objects").txtnid2nid local find_sigid_algs = require("resty.openssl.objects").find_sigid_algs local ctypes = require "resty.openssl.auxiliary.ctypes" local ctx_lib = require "resty.openssl.ctx" local format_error = require("resty.openssl.err").format_error local version = require("resty.openssl.version") local OPENSSL_3X = version.OPENSSL_3X -- accessors provides an openssl version neutral interface to lua layer -- it doesn't handle any error, expect that to be implemented in -- _M.set_X or _M.get_X local accessors = {} accessors.get_pubkey = C.X509_get_pubkey -- returns new evp_pkey instance, don't need to dup accessors.set_pubkey = C.X509_set_pubkey accessors.set_version = C.X509_set_version accessors.set_serial_number = C.X509_set_serialNumber accessors.get_subject_name = C.X509_get_subject_name -- returns internal ptr, we dup it accessors.set_subject_name = C.X509_set_subject_name accessors.get_issuer_name = C.X509_get_issuer_name -- returns internal ptr, we dup it accessors.set_issuer_name = C.X509_set_issuer_name accessors.get_signature_nid = C.X509_get_signature_nid -- generally, use get1 if we return a lua table wrapped ctx which doesn't support dup. -- in that case, a new struct is returned from C api, and we will handle gc. -- openssl will increment the reference count for returned ptr, and won't free it when -- parent struct is freed. -- otherwise, use get0, which returns an internal pointer, we don't need to free it up. -- it will be gone together with the parent struct. accessors.get_not_before = C.X509_get0_notBefore -- returns internal ptr, we convert to number accessors.set_not_before = C.X509_set1_notBefore accessors.get_not_after = C.X509_get0_notAfter -- returns internal ptr, we convert to number accessors.set_not_after = C.X509_set1_notAfter accessors.get_version = C.X509_get_version -- returns int accessors.get_serial_number = C.X509_get0_serialNumber -- returns internal ptr, we convert to bn local function __tostring(self, fmt) if not fmt or fmt == 'PEM' then return bio_util.read_wrap(C.PEM_write_bio_X509, self.ctx) elseif fmt == 'DER' then return bio_util.read_wrap(C.i2d_X509_bio, self.ctx) else return nil, "x509:tostring: can only write PEM or DER format, not " .. fmt end end local _M = {} local mt = { __index = _M, __tostring = __tostring } local x509_ptr_ct = ffi.typeof("X509*") -- only PEM format is supported for now function _M.new(cert, fmt, properties) local ctx if not cert then -- routine for create a new cert if OPENSSL_3X then ctx = C.X509_new_ex(ctx_lib.get_libctx(), properties) else ctx = C.X509_new() end if ctx == nil then return nil, format_error("x509.new") end ffi_gc(ctx, C.X509_free) C.X509_gmtime_adj(accessors.get_not_before(ctx), 0) C.X509_gmtime_adj(accessors.get_not_after(ctx), 0) elseif type(cert) == "string" then -- routine for load an existing cert local bio = C.BIO_new_mem_buf(cert, #cert) if bio == nil then return nil, format_error("x509.new: BIO_new_mem_buf") end fmt = fmt or "*" while true do -- luacheck: ignore 512 -- loop is executed at most once if fmt == "PEM" or fmt == "*" then ctx = C.PEM_read_bio_X509(bio, nil, nil, nil) if ctx ~= nil then break elseif fmt == "*" then -- BIO_reset; #define BIO_CTRL_RESET 1 local code = C.BIO_ctrl(bio, 1, 0, nil) if code ~= 1 then C.BIO_free(bio) return nil, "x509.new: BIO_ctrl() failed: " .. code end end end if fmt == "DER" or fmt == "*" then ctx = C.d2i_X509_bio(bio, nil) end break end C.BIO_free(bio) if ctx == nil then return nil, format_error("x509.new") end -- clear errors occur when trying C.ERR_clear_error() ffi_gc(ctx, C.X509_free) elseif type(cert) == 'cdata' then if ffi.istype(x509_ptr_ct, cert) then ctx = cert ffi_gc(ctx, C.X509_free) else return nil, "x509.new: expect a X509* cdata at #1" end else return nil, "x509.new: expect nil or a string at #1" end local self = setmetatable({ ctx = ctx, }, mt) return self, nil end function _M.istype(l) return l and l.ctx and ffi.istype(x509_ptr_ct, l.ctx) end function _M.dup(ctx) if not ffi.istype(x509_ptr_ct, ctx) then return nil, "x509.dup: expect a x509 ctx at #1" end local ctx = C.X509_dup(ctx) if ctx == nil then return nil, "x509.dup: X509_dup() failed" end ffi_gc(ctx, C.X509_free) local self = setmetatable({ ctx = ctx, }, mt) return self, nil end function _M:tostring(fmt) return __tostring(self, fmt) end function _M:to_PEM() return __tostring(self, "PEM") end function _M:set_lifetime(not_before, not_after) local ok, err if not_before then ok, err = self:set_not_before(not_before) if err then return ok, err end end if not_after then ok, err = self:set_not_after(not_after) if err then return ok, err end end return true end function _M:get_lifetime() local not_before, err = self:get_not_before() if not_before == nil then return nil, nil, err end local not_after, err = self:get_not_after() if not_after == nil then return nil, nil, err end return not_before, not_after, nil end -- note: index is 0 based local OPENSSL_STRING_value_at = function(ctx, i) local ct = ffi_cast("OPENSSL_STRING", C.OPENSSL_sk_value(ctx, i)) if ct == nil then return nil end return ffi_str(ct) end function _M:get_ocsp_url(return_all) local st = C.X509_get1_ocsp(self.ctx) local count = C.OPENSSL_sk_num(st) if count == 0 then return end local ret if return_all then ret = {} for i=0,count-1 do ret[i+1] = OPENSSL_STRING_value_at(st, i) end else ret = OPENSSL_STRING_value_at(st, 0) end C.X509_email_free(st) return ret end function _M:get_ocsp_request() end function _M:get_crl_url(return_all) local cdp, err = self:get_crl_distribution_points() if err then return nil, err end if not cdp or cdp:count() == 0 then return end if return_all then local ret = {} local cdp_iter = cdp:each() while true do local _, gn = cdp_iter() if not gn then break end local gn_iter = gn:each() while true do local k, v = gn_iter() if not k then break elseif k == "URI" then table.insert(ret, v) end end end return ret else local gn, err = cdp:index(1) if err then return nil, err end local iter = gn:each() while true do local k, v = iter() if not k then break elseif k == "URI" then return v end end end end local digest_length = ctypes.ptr_of_uint() local digest_buf, digest_buf_size local function digest(self, cfunc, typ, properties) -- TODO: dedup the following with resty.openssl.digest local ctx = C.EVP_MD_CTX_new() if ctx == nil then return nil, "x509:digest: failed to create EVP_MD_CTX" end ffi_gc(ctx, C.EVP_MD_CTX_free) local algo if OPENSSL_3X then algo = C.EVP_MD_fetch(ctx_lib.get_libctx(), typ or 'sha1', properties) else algo = C.EVP_get_digestbyname(typ or 'sha1') end if algo == nil then return nil, string.format("x509:digest: invalid digest type \"%s\"", typ) end local md_size = OPENSSL_3X and C.EVP_MD_get_size(algo) or C.EVP_MD_size(algo) if not digest_buf or digest_buf_size < md_size then digest_buf = ctypes.uchar_array(md_size) digest_buf_size = md_size end if cfunc(self.ctx, algo, digest_buf, digest_length) ~= 1 then return nil, format_error("x509:digest") end return ffi_str(digest_buf, digest_length[0]) end function _M:digest(typ, properties) return digest(self, C.X509_digest, typ, properties) end function _M:pubkey_digest(typ, properties) return digest(self, C.X509_pubkey_digest, typ, properties) end function _M:check_private_key(key) if not pkey_lib.istype(key) then return false, "x509:check_private_key: except a pkey instance at #1" end if not key:is_private() then return false, "x509:check_private_key: not a private key" end if C.X509_check_private_key(self.ctx, key.ctx) == 1 then return true end return false, format_error("x509:check_private_key") end -- START AUTO GENERATED CODE -- AUTO GENERATED function _M:sign(pkey, digest) if not pkey_lib.istype(pkey) then return false, "x509:sign: expect a pkey instance at #1" end local digest_algo if digest then if not digest_lib.istype(digest) then return false, "x509:sign: expect a digest instance at #2" elseif not digest.algo then return false, "x509:sign: expect a digest instance to have algo member" end digest_algo = digest.algo end -- returns size of signature if success if C.X509_sign(self.ctx, pkey.ctx, digest_algo) == 0 then return false, format_error("x509:sign") end return true end -- AUTO GENERATED function _M:verify(pkey) if not pkey_lib.istype(pkey) then return false, "x509:verify: expect a pkey instance at #1" end local code = C.X509_verify(self.ctx, pkey.ctx) if code == 1 then return true elseif code == 0 then return false else -- typically -1 return false, format_error("x509:verify", code) end end -- AUTO GENERATED local function get_extension(ctx, nid_txt, last_pos) last_pos = (last_pos or 0) - 1 local nid, err = txtnid2nid(nid_txt) if err then return nil, nil, err end local pos = C.X509_get_ext_by_NID(ctx, nid, last_pos) if pos == -1 then return nil end local ctx = C.X509_get_ext(ctx, pos) if ctx == nil then return nil, nil, format_error() end return ctx, pos end -- AUTO GENERATED function _M:add_extension(extension) if not extension_lib.istype(extension) then return false, "x509:add_extension: expect a x509.extension instance at #1" end -- X509_add_ext returnes the stack on success, and NULL on error -- the X509_EXTENSION ctx is dupped internally if C.X509_add_ext(self.ctx, extension.ctx, -1) == nil then return false, format_error("x509:add_extension") end return true end -- AUTO GENERATED function _M:get_extension(nid_txt, last_pos) local ctx, pos, err = get_extension(self.ctx, nid_txt, last_pos) if err then return nil, nil, "x509:get_extension: " .. err end local ext, err = extension_lib.dup(ctx) if err then return nil, nil, "x509:get_extension: " .. err end return ext, pos+1 end -- AUTO GENERATED function _M:set_extension(extension, last_pos) if not extension_lib.istype(extension) then return false, "x509:set_extension: expect a x509.extension instance at #1" end last_pos = (last_pos or 0) - 1 local nid = extension:get_object().nid local pos = C.X509_get_ext_by_NID(self.ctx, nid, last_pos) -- pos may be -1, which means not found, it's fine, we will add new one instead of replace local removed = C.X509_delete_ext(self.ctx, pos) C.X509_EXTENSION_free(removed) if C.X509_add_ext(self.ctx, extension.ctx, pos) == nil then return false, format_error("x509:set_extension") end return true end -- AUTO GENERATED function _M:set_extension_critical(nid_txt, crit, last_pos) local ctx, _, err = get_extension(self.ctx, nid_txt, last_pos) if err then return nil, "x509:set_extension_critical: " .. err end if C.X509_EXTENSION_set_critical(ctx, crit and 1 or 0) ~= 1 then return false, format_error("x509:set_extension_critical") end return true end -- AUTO GENERATED function _M:get_extension_critical(nid_txt, last_pos) local ctx, _, err = get_extension(self.ctx, nid_txt, last_pos) if err then return nil, "x509:get_extension_critical: " .. err end return C.X509_EXTENSION_get_critical(ctx) == 1 end -- AUTO GENERATED function _M:get_serial_number() local got = accessors.get_serial_number(self.ctx) if got == nil then return nil end -- returns a new BIGNUM instance got = C.ASN1_INTEGER_to_BN(got, nil) if got == nil then return false, format_error("x509:set: BN_to_ASN1_INTEGER") end -- bn will be duplicated thus this ctx should be freed up ffi_gc(got, C.BN_free) local lib = require("resty.openssl.bn") -- the internal ptr is returned, ie we need to copy it return lib.dup(got) end -- AUTO GENERATED function _M:set_serial_number(toset) local lib = require("resty.openssl.bn") if lib.istype and not lib.istype(toset) then return false, "x509:set_serial_number: expect a bn instance at #1" end toset = toset.ctx toset = C.BN_to_ASN1_INTEGER(toset, nil) if toset == nil then return false, format_error("x509:set: BN_to_ASN1_INTEGER") end -- "A copy of the serial number is used internally -- so serial should be freed up after use."" ffi_gc(toset, C.ASN1_INTEGER_free) if accessors.set_serial_number(self.ctx, toset) == 0 then return false, format_error("x509:set_serial_number") end return true end -- AUTO GENERATED function _M:get_not_before() local got = accessors.get_not_before(self.ctx) if got == nil then return nil end got = asn1_lib.asn1_to_unix(got) return got end -- AUTO GENERATED function _M:set_not_before(toset) if type(toset) ~= "number" then return false, "x509:set_not_before: expect a number at #1" end toset = C.ASN1_TIME_set(nil, toset) ffi_gc(toset, C.ASN1_STRING_free) if accessors.set_not_before(self.ctx, toset) == 0 then return false, format_error("x509:set_not_before") end return true end -- AUTO GENERATED function _M:get_not_after() local got = accessors.get_not_after(self.ctx) if got == nil then return nil end got = asn1_lib.asn1_to_unix(got) return got end -- AUTO GENERATED function _M:set_not_after(toset) if type(toset) ~= "number" then return false, "x509:set_not_after: expect a number at #1" end toset = C.ASN1_TIME_set(nil, toset) ffi_gc(toset, C.ASN1_STRING_free) if accessors.set_not_after(self.ctx, toset) == 0 then return false, format_error("x509:set_not_after") end return true end -- AUTO GENERATED function _M:get_pubkey() local got = accessors.get_pubkey(self.ctx) if got == nil then return nil end local lib = require("resty.openssl.pkey") -- returned a copied instance directly return lib.new(got) end -- AUTO GENERATED function _M:set_pubkey(toset) local lib = require("resty.openssl.pkey") if lib.istype and not lib.istype(toset) then return false, "x509:set_pubkey: expect a pkey instance at #1" end toset = toset.ctx if accessors.set_pubkey(self.ctx, toset) == 0 then return false, format_error("x509:set_pubkey") end return true end -- AUTO GENERATED function _M:get_subject_name() local got = accessors.get_subject_name(self.ctx) if got == nil then return nil end local lib = require("resty.openssl.x509.name") -- the internal ptr is returned, ie we need to copy it return lib.dup(got) end -- AUTO GENERATED function _M:set_subject_name(toset) local lib = require("resty.openssl.x509.name") if lib.istype and not lib.istype(toset) then return false, "x509:set_subject_name: expect a x509.name instance at #1" end toset = toset.ctx if accessors.set_subject_name(self.ctx, toset) == 0 then return false, format_error("x509:set_subject_name") end return true end -- AUTO GENERATED function _M:get_issuer_name() local got = accessors.get_issuer_name(self.ctx) if got == nil then return nil end local lib = require("resty.openssl.x509.name") -- the internal ptr is returned, ie we need to copy it return lib.dup(got) end -- AUTO GENERATED function _M:set_issuer_name(toset) local lib = require("resty.openssl.x509.name") if lib.istype and not lib.istype(toset) then return false, "x509:set_issuer_name: expect a x509.name instance at #1" end toset = toset.ctx if accessors.set_issuer_name(self.ctx, toset) == 0 then return false, format_error("x509:set_issuer_name") end return true end -- AUTO GENERATED function _M:get_version() local got = accessors.get_version(self.ctx) if got == nil then return nil end got = tonumber(got) + 1 return got end -- AUTO GENERATED function _M:set_version(toset) if type(toset) ~= "number" then return false, "x509:set_version: expect a number at #1" end -- Note: this is defined by standards (X.509 et al) to be one less than the certificate version. -- So a version 3 certificate will return 2 and a version 1 certificate will return 0. toset = toset - 1 if accessors.set_version(self.ctx, toset) == 0 then return false, format_error("x509:set_version") end return true end local NID_subject_alt_name = C.OBJ_sn2nid("subjectAltName") assert(NID_subject_alt_name ~= 0) -- AUTO GENERATED: EXTENSIONS function _M:get_subject_alt_name() local crit = ctypes.ptr_of_int() -- X509_get_ext_d2i returns internal pointer, always dup -- for now this function always returns the first found extension local got = C.X509_get_ext_d2i(self.ctx, NID_subject_alt_name, crit, nil) crit = tonumber(crit[0]) if crit == -1 then -- not found return nil elseif crit == -2 then return nil, "x509:get_subject_alt_name: extension of subject_alt_name occurs more than one times, " .. "this is not yet implemented. Please use get_extension instead." elseif got == nil then return nil, format_error("x509:get_subject_alt_name") end -- Note: here we only free the stack itself not elements -- since there seems no way to increase ref count for a GENERAL_NAME -- we left the elements referenced by the new-dup'ed stack local got_ref = got got = ffi_cast("GENERAL_NAMES*", got_ref) ffi_gc(got, stack_lib.gc_of("GENERAL_NAME")) local lib = require("resty.openssl.x509.altname") -- the internal ptr is returned, ie we need to copy it return lib.dup(got) end -- AUTO GENERATED: EXTENSIONS function _M:set_subject_alt_name(toset) local lib = require("resty.openssl.x509.altname") if lib.istype and not lib.istype(toset) then return false, "x509:set_subject_alt_name: expect a x509.altname instance at #1" end toset = toset.ctx -- x509v3.h: # define X509V3_ADD_REPLACE 2L if C.X509_add1_ext_i2d(self.ctx, NID_subject_alt_name, toset, 0, 0x2) ~= 1 then return false, format_error("x509:set_subject_alt_name") end return true end -- AUTO GENERATED: EXTENSIONS function _M:set_subject_alt_name_critical(crit) return _M.set_extension_critical(self, NID_subject_alt_name, crit) end -- AUTO GENERATED: EXTENSIONS function _M:get_subject_alt_name_critical() return _M.get_extension_critical(self, NID_subject_alt_name) end local NID_issuer_alt_name = C.OBJ_sn2nid("issuerAltName") assert(NID_issuer_alt_name ~= 0) -- AUTO GENERATED: EXTENSIONS function _M:get_issuer_alt_name() local crit = ctypes.ptr_of_int() -- X509_get_ext_d2i returns internal pointer, always dup -- for now this function always returns the first found extension local got = C.X509_get_ext_d2i(self.ctx, NID_issuer_alt_name, crit, nil) crit = tonumber(crit[0]) if crit == -1 then -- not found return nil elseif crit == -2 then return nil, "x509:get_issuer_alt_name: extension of issuer_alt_name occurs more than one times, " .. "this is not yet implemented. Please use get_extension instead." elseif got == nil then return nil, format_error("x509:get_issuer_alt_name") end -- Note: here we only free the stack itself not elements -- since there seems no way to increase ref count for a GENERAL_NAME -- we left the elements referenced by the new-dup'ed stack local got_ref = got got = ffi_cast("GENERAL_NAMES*", got_ref) ffi_gc(got, stack_lib.gc_of("GENERAL_NAME")) local lib = require("resty.openssl.x509.altname") -- the internal ptr is returned, ie we need to copy it return lib.dup(got) end -- AUTO GENERATED: EXTENSIONS function _M:set_issuer_alt_name(toset) local lib = require("resty.openssl.x509.altname") if lib.istype and not lib.istype(toset) then return false, "x509:set_issuer_alt_name: expect a x509.altname instance at #1" end toset = toset.ctx -- x509v3.h: # define X509V3_ADD_REPLACE 2L if C.X509_add1_ext_i2d(self.ctx, NID_issuer_alt_name, toset, 0, 0x2) ~= 1 then return false, format_error("x509:set_issuer_alt_name") end return true end -- AUTO GENERATED: EXTENSIONS function _M:set_issuer_alt_name_critical(crit) return _M.set_extension_critical(self, NID_issuer_alt_name, crit) end -- AUTO GENERATED: EXTENSIONS function _M:get_issuer_alt_name_critical() return _M.get_extension_critical(self, NID_issuer_alt_name) end local NID_basic_constraints = C.OBJ_sn2nid("basicConstraints") assert(NID_basic_constraints ~= 0) -- AUTO GENERATED: EXTENSIONS function _M:get_basic_constraints(name) local crit = ctypes.ptr_of_int() -- X509_get_ext_d2i returns internal pointer, always dup -- for now this function always returns the first found extension local got = C.X509_get_ext_d2i(self.ctx, NID_basic_constraints, crit, nil) crit = tonumber(crit[0]) if crit == -1 then -- not found return nil elseif crit == -2 then return nil, "x509:get_basic_constraints: extension of basic_constraints occurs more than one times, " .. "this is not yet implemented. Please use get_extension instead." elseif got == nil then return nil, format_error("x509:get_basic_constraints") end local ctx = ffi_cast("BASIC_CONSTRAINTS*", got) local ca = ctx.ca == 0xFF local pathlen = tonumber(C.ASN1_INTEGER_get(ctx.pathlen)) C.BASIC_CONSTRAINTS_free(ctx) if not name or type(name) ~= "string" then got = { ca = ca, pathlen = pathlen, } elseif string.lower(name) == "ca" then got = ca elseif string.lower(name) == "pathlen" then got = pathlen end return got end -- AUTO GENERATED: EXTENSIONS function _M:set_basic_constraints(toset) if type(toset) ~= "table" then return false, "x509:set_basic_constraints: expect a table at #1" end local cfg_lower = {} for k, v in pairs(toset) do cfg_lower[string.lower(k)] = v end toset = C.BASIC_CONSTRAINTS_new() if toset == nil then return false, format_error("x509:set_BASIC_CONSTRAINTS") end ffi_gc(toset, C.BASIC_CONSTRAINTS_free) toset.ca = cfg_lower.ca and 0xFF or 0 local pathlen = cfg_lower.pathlen and tonumber(cfg_lower.pathlen) if pathlen then C.ASN1_INTEGER_free(toset.pathlen) local asn1 = C.ASN1_STRING_type_new(pathlen) if asn1 == nil then return false, format_error("x509:set_BASIC_CONSTRAINTS: ASN1_STRING_type_new") end toset.pathlen = asn1 local code = C.ASN1_INTEGER_set(asn1, pathlen) if code ~= 1 then return false, format_error("x509:set_BASIC_CONSTRAINTS: ASN1_INTEGER_set", code) end end -- x509v3.h: # define X509V3_ADD_REPLACE 2L if C.X509_add1_ext_i2d(self.ctx, NID_basic_constraints, toset, 0, 0x2) ~= 1 then return false, format_error("x509:set_basic_constraints") end return true end -- AUTO GENERATED: EXTENSIONS function _M:set_basic_constraints_critical(crit) return _M.set_extension_critical(self, NID_basic_constraints, crit) end -- AUTO GENERATED: EXTENSIONS function _M:get_basic_constraints_critical() return _M.get_extension_critical(self, NID_basic_constraints) end local NID_info_access = C.OBJ_sn2nid("authorityInfoAccess") assert(NID_info_access ~= 0) -- AUTO GENERATED: EXTENSIONS function _M:get_info_access() local crit = ctypes.ptr_of_int() -- X509_get_ext_d2i returns internal pointer, always dup -- for now this function always returns the first found extension local got = C.X509_get_ext_d2i(self.ctx, NID_info_access, crit, nil) crit = tonumber(crit[0]) if crit == -1 then -- not found return nil elseif crit == -2 then return nil, "x509:get_info_access: extension of info_access occurs more than one times, " .. "this is not yet implemented. Please use get_extension instead." elseif got == nil then return nil, format_error("x509:get_info_access") end -- Note: here we only free the stack itself not elements -- since there seems no way to increase ref count for a ACCESS_DESCRIPTION -- we left the elements referenced by the new-dup'ed stack local got_ref = got got = ffi_cast("AUTHORITY_INFO_ACCESS*", got_ref) ffi_gc(got, stack_lib.gc_of("ACCESS_DESCRIPTION")) local lib = require("resty.openssl.x509.extension.info_access") -- the internal ptr is returned, ie we need to copy it return lib.dup(got) end -- AUTO GENERATED: EXTENSIONS function _M:set_info_access(toset) local lib = require("resty.openssl.x509.extension.info_access") if lib.istype and not lib.istype(toset) then return false, "x509:set_info_access: expect a x509.extension.info_access instance at #1" end toset = toset.ctx -- x509v3.h: # define X509V3_ADD_REPLACE 2L if C.X509_add1_ext_i2d(self.ctx, NID_info_access, toset, 0, 0x2) ~= 1 then return false, format_error("x509:set_info_access") end return true end -- AUTO GENERATED: EXTENSIONS function _M:set_info_access_critical(crit) return _M.set_extension_critical(self, NID_info_access, crit) end -- AUTO GENERATED: EXTENSIONS function _M:get_info_access_critical() return _M.get_extension_critical(self, NID_info_access) end local NID_crl_distribution_points = C.OBJ_sn2nid("crlDistributionPoints") assert(NID_crl_distribution_points ~= 0) -- AUTO GENERATED: EXTENSIONS function _M:get_crl_distribution_points() local crit = ctypes.ptr_of_int() -- X509_get_ext_d2i returns internal pointer, always dup -- for now this function always returns the first found extension local got = C.X509_get_ext_d2i(self.ctx, NID_crl_distribution_points, crit, nil) crit = tonumber(crit[0]) if crit == -1 then -- not found return nil elseif crit == -2 then return nil, "x509:get_crl_distribution_points: extension of crl_distribution_points occurs more than one times, " .. "this is not yet implemented. Please use get_extension instead." elseif got == nil then return nil, format_error("x509:get_crl_distribution_points") end -- Note: here we only free the stack itself not elements -- since there seems no way to increase ref count for a DIST_POINT -- we left the elements referenced by the new-dup'ed stack local got_ref = got got = ffi_cast("OPENSSL_STACK*", got_ref) ffi_gc(got, stack_lib.gc_of("DIST_POINT")) local lib = require("resty.openssl.x509.extension.dist_points") -- the internal ptr is returned, ie we need to copy it return lib.dup(got) end -- AUTO GENERATED: EXTENSIONS function _M:set_crl_distribution_points(toset) local lib = require("resty.openssl.x509.extension.dist_points") if lib.istype and not lib.istype(toset) then return false, "x509:set_crl_distribution_points: expect a x509.extension.dist_points instance at #1" end toset = toset.ctx -- x509v3.h: # define X509V3_ADD_REPLACE 2L if C.X509_add1_ext_i2d(self.ctx, NID_crl_distribution_points, toset, 0, 0x2) ~= 1 then return false, format_error("x509:set_crl_distribution_points") end return true end -- AUTO GENERATED: EXTENSIONS function _M:set_crl_distribution_points_critical(crit) return _M.set_extension_critical(self, NID_crl_distribution_points, crit) end -- AUTO GENERATED: EXTENSIONS function _M:get_crl_distribution_points_critical() return _M.get_extension_critical(self, NID_crl_distribution_points) end -- AUTO GENERATED function _M:get_signature_nid() local nid = accessors.get_signature_nid(self.ctx) if nid <= 0 then return nil, format_error("x509:get_signature_nid") end return nid end -- AUTO GENERATED function _M:get_signature_name() local nid = accessors.get_signature_nid(self.ctx) if nid <= 0 then return nil, format_error("x509:get_signature_name") end return ffi.string(C.OBJ_nid2sn(nid)) end -- AUTO GENERATED function _M:get_signature_digest_name() local nid = accessors.get_signature_nid(self.ctx) if nid <= 0 then return nil, format_error("x509:get_signature_digest_name") end local nid = find_sigid_algs(nid) return ffi.string(C.OBJ_nid2sn(nid)) end -- END AUTO GENERATED CODE return _M PKB½N]0AÒÙÙresty/openssl/x509/altname.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_cast = ffi.cast local ffi_str = ffi.string require "resty.openssl.include.x509" require "resty.openssl.include.x509v3" local asn1_macro = require "resty.openssl.include.asn1" local stack_lib = require "resty.openssl.stack" local name_lib = require "resty.openssl.x509.name" local altname_macro = require "resty.openssl.include.x509.altname" local _M = {} local general_names_ptr_ct = ffi.typeof("GENERAL_NAMES*") local STACK = "GENERAL_NAME" local new = stack_lib.new_of(STACK) local add = stack_lib.add_of(STACK) local dup = stack_lib.dup_of(STACK) local types = altname_macro.types local AF_INET = 2 local AF_INET6 = 10 if ffi.os == "OSX" then AF_INET6 = 30 elseif ffi.os == "BSD" then AF_INET6 = 28 elseif ffi.os == "Windows" then AF_INET6 = 23 end ffi.cdef [[ typedef int socklen_t; int inet_pton(int af, const char *restrict src, void *restrict dst); const char *inet_ntop(int af, const void *restrict src, char *restrict dst, socklen_t size); ]] local ip_buffer = ffi.new("unsigned char [46]") -- 46 bytes enough for both string ipv6 and binary ipv6 -- similar to GENERAL_NAME_print, but returns value instead of print local gn_decode = function(ctx) local typ = ctx.type local k = altname_macro.literals[typ] local v if typ == types.OtherName then v = "OtherName:" elseif typ == types.RFC822Name then v = ffi_str(asn1_macro.ASN1_STRING_get0_data(ctx.d.rfc822Name)) elseif typ == types.DNS then v = ffi_str(asn1_macro.ASN1_STRING_get0_data(ctx.d.dNSName)) elseif typ == types.X400 then v = "X400:" elseif typ == types.DirName then v = name_lib.dup(ctx.d.directoryName) elseif typ == types.EdiParty then v = "EdiParty:" elseif typ == types.URI then v = ffi_str(asn1_macro.ASN1_STRING_get0_data(ctx.d.uniformResourceIdentifier)) elseif typ == types.IP then v = asn1_macro.ASN1_STRING_get0_data(ctx.d.iPAddress) local l = tonumber(C.ASN1_STRING_length(ctx.d.iPAddress)) if l ~= 4 and l ~= 16 then error("Unknown IP address type") end v = C.inet_ntop(l == 4 and AF_INET or AF_INET6, v, ip_buffer, 46) v = ffi_str(v) elseif typ == types.RID then v = "RID:" else error("unknown type" .. typ .. "-> " .. types.OtherName) end return { k, v } end -- shared with info_access _M.gn_decode = gn_decode local mt = stack_lib.mt_of(STACK, gn_decode, _M) local mt__pairs = mt.__pairs mt.__pairs = function(tbl) local f = mt__pairs(tbl) return function() local _, e = f() if not e then return end return unpack(e) end end function _M.new() local ctx = new() if ctx == nil then return nil, "x509.altname.new: OPENSSL_sk_new_null() failed" end local cast = ffi_cast("GENERAL_NAMES*", ctx) local self = setmetatable({ ctx = ctx, cast = cast, _is_shallow_copy = false, }, mt) return self, nil end function _M.istype(l) return l and l.cast and ffi.istype(general_names_ptr_ct, l.cast) end function _M.dup(ctx) if ctx == nil or not ffi.istype(general_names_ptr_ct, ctx) then return nil, "x509.altname.dup: expect a GENERAL_NAMES* ctx at #1" end local dup_ctx, err = dup(ctx) if dup_ctx == nil then return nil, err end return setmetatable({ cast = ffi_cast(general_names_ptr_ct, dup_ctx), ctx = dup_ctx, -- don't let lua gc the original stack to keep its elements _dupped_from = ctx, _is_shallow_copy = true, _elem_refs = {}, _elem_refs_idx = 1, }, mt), nil end local function gn_set(gn, typ, value) if type(typ) ~= 'string' then return "x509.altname:gn_set: expect a string at #1" end local typ_lower = typ:lower() if type(value) ~= 'string' then return "x509.altname:gn_set: except a string at #2" end local txt = value local gn_type = types[typ_lower] if not gn_type then return "x509.altname:gn_set: unknown type " .. typ end if gn_type == types.IP then if C.inet_pton(AF_INET, txt, ip_buffer) == 1 then txt = ffi_str(ip_buffer, 4) elseif C.inet_pton(AF_INET6, txt, ip_buffer) == 1 then txt = ffi_str(ip_buffer, 16) else return "x509.altname:gn_set: invalid IP address " .. txt end elseif gn_type ~= types.Email and gn_type ~= types.URI and gn_type ~= types.DNS then return "x509.altname:gn_set: setting type " .. typ .. " is currently not supported" end gn.type = gn_type local asn1_string = C.ASN1_IA5STRING_new() if asn1_string == nil then return "x509.altname:gn_set: ASN1_STRING_type_new() failed" end local code = C.ASN1_STRING_set(asn1_string, txt, #txt) if code ~= 1 then C.ASN1_STRING_free(asn1_string) return "x509.altname:gn_set: ASN1_STRING_set() failed: " .. code end gn.d.ia5 = asn1_string end -- shared with info_access _M.gn_set = gn_set function _M:add(typ, value) -- the stack element stays with stack -- we shouldn't add gc handler if it's already been -- pushed to stack. instead, rely on the gc handler -- of the stack to release all memories local gn = C.GENERAL_NAME_new() if gn == nil then return nil, "x509.altname:add: GENERAL_NAME_new() failed" end local err = gn_set(gn, typ, value) if err then C.GENERAL_NAME_free(gn) return nil, err end local _, err = add(self.ctx, gn) if err then C.GENERAL_NAME_free(gn) return nil, err end -- if the stack is duplicated, the gc handler is not pop_free -- handle the gc by ourselves if self._is_shallow_copy then ffi_gc(gn, C.GENERAL_NAME_free) self._elem_refs[self._elem_refs_idx] = gn self._elem_refs_idx = self._elem_refs_idx + 1 end return self end _M.all = function(self) local ret = {} local _next = mt.__pairs(self) while true do local k, v = _next() if k then ret[k] = v else break end end return ret end _M.each = mt.__pairs _M.index = mt.__index _M.count = mt.__len mt.__tostring = function(self) local values = {} local _next = mt.__pairs(self) while true do local k, v = _next() if k then table.insert(values, k .. "=" .. v) else break end end table.sort(values) return table.concat(values, "/") end _M.tostring = mt.__tostring return _M PKB½N]—vÚ§§resty/openssl/x509/chain.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local stack_lib = require "resty.openssl.stack" local x509_lib = require "resty.openssl.x509" local format_error = require("resty.openssl.err").format_error local _M = {} local stack_ptr_ct = ffi.typeof("OPENSSL_STACK*") local STACK = "X509" local gc = stack_lib.gc_of(STACK) local new = stack_lib.new_of(STACK) local add = stack_lib.add_of(STACK) local mt = stack_lib.mt_of(STACK, x509_lib.dup, _M) function _M.new() local raw, err = new() if raw == nil then return nil, err end local self = setmetatable({ stack_of = STACK, ctx = raw, }, mt) return self, nil end function _M.istype(l) return l and l.ctx and ffi.istype(stack_ptr_ct, l.ctx) and l.stack_of and l.stack_of == STACK end function _M.dup(ctx) if ctx == nil or not ffi.istype(stack_ptr_ct, ctx) then return nil, "x509.chain.dup: expect a stack ctx at #1, got " .. type(ctx) end -- sk_X509_dup plus up ref for each X509 element local ctx = C.X509_chain_up_ref(ctx) if ctx == nil then return nil, "x509.chain.dup: X509_chain_up_ref() failed" end ffi_gc(ctx, gc) return setmetatable({ stack_of = STACK, ctx = ctx, }, mt) end function _M:add(x509) if not x509_lib.istype(x509) then return nil, "x509.chain:add: expect a x509 instance at #1" end local dup = C.X509_dup(x509.ctx) if dup == nil then return nil, format_error("x509.chain:add: X509_dup") end local _, err = add(self.ctx, dup) if err then C.X509_free(dup) return nil, err end return true end _M.all = stack_lib.all_func(mt) _M.each = mt.__ipairs _M.index = mt.__index _M.count = mt.__len return _M PKB½N]¨âþ&ßßresty/openssl/pkcs12.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_str = ffi.string require "resty.openssl.include.pkcs12" require "resty.openssl.include.bio" require "resty.openssl.include.stack" local bio_util = require "resty.openssl.auxiliary.bio" local format_error = require("resty.openssl.err").format_error local pkey_lib = require "resty.openssl.pkey" local x509_lib = require "resty.openssl.x509" local stack_lib = require "resty.openssl.stack" local objects_lib = require "resty.openssl.objects" local ctx_lib = require "resty.openssl.ctx" local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X local stack_of_x509_new = stack_lib.new_of("X509") local stack_of_x509_add = stack_lib.add_of("X509") local stack_of_x509_iter = stack_lib.mt_of("X509", x509_lib.dup, {}).__ipairs local ptr_ptr_of_pkey = ffi.typeof("EVP_PKEY*[1]") local ptr_ptr_of_x509 = ffi.typeof("X509*[1]") local ptr_ptr_of_stack = ffi.typeof("OPENSSL_STACK*[1]") local function decode(p12, passphrase) local bio = C.BIO_new_mem_buf(p12, #p12) if bio == nil then return nil, "pkcs12.decode: BIO_new_mem_buf() failed" end ffi_gc(bio, C.BIO_free) local p12 = C.d2i_PKCS12_bio(bio, nil) if p12 == nil then return nil, format_error("pkcs12.decode: d2i_PKCS12_bio") end ffi_gc(p12, C.PKCS12_free) local ppkey = ptr_ptr_of_pkey() local px509 = ptr_ptr_of_x509() local pstack = ptr_ptr_of_stack() local stack = stack_of_x509_new() if stack == nil then return nil, "pkcs12.decode: OPENSSL_sk_new_null() failed" end -- assign a valid OPENSSL_STACK so gc is taken care of pstack[0] = stack local code = C.PKCS12_parse(p12, passphrase or "", ppkey, px509, pstack) if code ~= 1 then return nil, format_error("pkcs12.decode: PKCS12_parse") end local cacerts local n = C.OPENSSL_sk_num(stack) if n > 0 then cacerts = {} local iter = stack_of_x509_iter({ ctx = stack }) for i=1, n do local _, c = iter() cacerts[i] = c end end local friendly_name = C.X509_alias_get0(px509[0], nil) if friendly_name ~= nil then friendly_name = ffi_str(friendly_name) end return { key = pkey_lib.new(ppkey[0]), cert = x509_lib.new(px509[0]), friendly_name = friendly_name, cacerts = cacerts, -- store reference to the stack, so it's not GC'ed unexpectedly _stack = stack, } end local function encode(opts, passphrase, properties) if passphrase and type(passphrase) ~= "string" then return nil, "pkcs12.encode: expect passphrase to be a string" end local pkey = opts.key if not pkey_lib.istype(pkey) then return nil, "pkcs12.encode: expect key to be a pkey instance" end local cert = opts.cert if not x509_lib.istype(cert) then return nil, "pkcs12.encode: expect cert to be a x509 instance" end local ok, err = cert:check_private_key(pkey) if not ok then return nil, "pkcs12.encode: key doesn't match cert: " .. err end local nid_key = opts.nid_key if nid_key then nid_key, err = objects_lib.txtnid2nid(nid_key) if err then return nil, "pkcs12.encode: invalid nid_key" end end local nid_cert = opts.nid_cert if nid_cert then nid_cert, err = objects_lib.txtnid2nid(nid_cert) if err then return nil, "pkcs12.encode: invalid nid_cert" end end local x509stack local cacerts = opts.cacerts if cacerts then if type(cacerts) ~= "table" then return nil, "pkcs12.encode: expect cacerts to be a table" end if #cacerts > 0 then -- stack lib handles gc x509stack = stack_of_x509_new() for _, c in ipairs(cacerts) do if C.X509_up_ref(c.ctx) ~= 1 then return nil, "pkcs12.encode: failed to add cacerts: X509_up_ref failed" end local ok, err = stack_of_x509_add(x509stack, c.ctx) if not ok then return nil, "pkcs12.encode: failed to add cacerts: " .. err end end end end local p12 if OPENSSL_3X then p12 = C.PKCS12_create_ex(passphrase or "", opts.friendly_name, pkey.ctx, cert.ctx, x509stack, nid_key or 0, nid_cert or 0, opts.iter or 0, opts.mac_iter or 0, 0, ctx_lib.get_libctx(), properties) else p12 = C.PKCS12_create(passphrase or "", opts.friendly_name, pkey.ctx, cert.ctx, x509stack, nid_key or 0, nid_cert or 0, opts.iter or 0, opts.mac_iter or 0, 0) end if p12 == nil then return nil, format_error("pkcs12.encode: PKCS12_create") end ffi_gc(p12, C.PKCS12_free) return bio_util.read_wrap(C.i2d_PKCS12_bio, p12) end return { decode = decode, loads = decode, encode = encode, dumps = encode, } PKB½N]‡&ž’+#+#resty/openssl/cipher.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_str = ffi.string local ffi_cast = ffi.cast require "resty.openssl.include.evp.cipher" local evp_macro = require "resty.openssl.include.evp" local ctypes = require "resty.openssl.auxiliary.ctypes" local ctx_lib = require "resty.openssl.ctx" local format_error = require("resty.openssl.err").format_error local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X local log_warn = require "resty.openssl.auxiliary.compat".log_warn local uchar_array = ctypes.uchar_array local void_ptr = ctypes.void_ptr local ptr_of_int = ctypes.ptr_of_int local _M = {} local mt = {__index = _M} local cipher_ctx_ptr_ct = ffi.typeof('EVP_CIPHER_CTX*') local out_length = ptr_of_int() -- EVP_MAX_BLOCK_LENGTH is 32, we give it a 64 to be future proof local out_buffer_size = 1024 local out_buffer = ctypes.uchar_array(out_buffer_size + 64) function _M.new(typ, properties) if not typ then return nil, "cipher.new: expect type to be defined" end local ctx = C.EVP_CIPHER_CTX_new() if ctx == nil then return nil, "cipher.new: failed to create EVP_CIPHER_CTX" end ffi_gc(ctx, C.EVP_CIPHER_CTX_free) local ctyp if OPENSSL_3X then ctyp = C.EVP_CIPHER_fetch(ctx_lib.get_libctx(), typ, properties) else ctyp = C.EVP_get_cipherbyname(typ) end local err_new = string.format("cipher.new: invalid cipher type \"%s\"", typ) if ctyp == nil then return nil, format_error(err_new) end local code = C.EVP_CipherInit_ex(ctx, ctyp, nil, "", nil, -1) if code ~= 1 then return nil, format_error(err_new) end return setmetatable({ ctx = ctx, algo = ctyp, initialized = false, block_size = tonumber(OPENSSL_3X and C.EVP_CIPHER_CTX_get_block_size(ctx) or C.EVP_CIPHER_CTX_block_size(ctx)), key_size = tonumber(OPENSSL_3X and C.EVP_CIPHER_CTX_get_key_length(ctx) or C.EVP_CIPHER_CTX_key_length(ctx)), iv_size = tonumber(OPENSSL_3X and C.EVP_CIPHER_CTX_get_iv_length(ctx) or C.EVP_CIPHER_CTX_iv_length(ctx)), }, mt), nil end function _M.istype(l) return l and l.ctx and ffi.istype(cipher_ctx_ptr_ct, l.ctx) end function _M.set_buffer_size(sz) if out_buffer_size ~= sz then out_buffer_size = sz out_buffer = ctypes.uchar_array(sz + 64) end return true end function _M:get_provider_name() if not OPENSSL_3X then return false, "cipher:get_provider_name is not supported" end local p = C.EVP_CIPHER_get0_provider(self.algo) if p == nil then return nil end return ffi_str(C.OSSL_PROVIDER_get0_name(p)) end if OPENSSL_3X then local param_lib = require "resty.openssl.param" _M.settable_params, _M.set_params, _M.gettable_params, _M.get_param = param_lib.get_params_func("EVP_CIPHER_CTX") end function _M:init(key, iv, opts) opts = opts or {} if not key or #key ~= self.key_size then return false, string.format("cipher:init: incorrect key size, expect %d", self.key_size) end if self.iv_size > 0 and (not iv or #iv ~= self.iv_size) then return false, string.format("cipher:init: incorrect iv size, expect %d", self.iv_size) end -- always passed in the `EVP_CIPHER` parameter to reinitialized the cipher -- it will have a same effect as EVP_CIPHER_CTX_cleanup/EVP_CIPHER_CTX_reset then Init_ex with -- empty algo if C.EVP_CipherInit_ex(self.ctx, self.algo, nil, key, iv, opts.is_encrypt and 1 or 0) == 0 then return false, format_error("cipher:init EVP_CipherInit_ex") end if opts.no_padding then -- EVP_CIPHER_CTX_set_padding() always returns 1. C.EVP_CIPHER_CTX_set_padding(self.ctx, 0) end self.initialized = true return true end function _M:encrypt(key, iv, s, no_padding, aead_aad) local _, err = self:init(key, iv, { is_encrypt = true, no_padding = no_padding, }) if err then return nil, err end if aead_aad then local _, err = self:update_aead_aad(aead_aad) if err then return nil, err end end return self:final(s) end function _M:decrypt(key, iv, s, no_padding, aead_aad, aead_tag) local _, err = self:init(key, iv, { is_encrypt = false, no_padding = no_padding, }) if err then return nil, err end if aead_aad then local _, err = self:update_aead_aad(aead_aad) if err then return nil, err end end if aead_tag then local _, err = self:set_aead_tag(aead_tag) if err then return nil, err end end return self:final(s) end -- https://wiki.openssl.org/index.php/EVP_Authenticated_Encryption_and_Decryption function _M:update_aead_aad(aad) if not self.initialized then return nil, "cipher:update_aead_aad: cipher not initalized, call cipher:init first" end if C.EVP_CipherUpdate(self.ctx, nil, out_length, aad, #aad) ~= 1 then return false, format_error("cipher:update_aead_aad") end return true end function _M:get_aead_tag(size) if not self.initialized then return nil, "cipher:get_aead_tag: cipher not initalized, call cipher:init first" end size = size or self.key_size / 2 if size > self.key_size then return nil, string.format("tag size %d is too large", size) end if C.EVP_CIPHER_CTX_ctrl(self.ctx, evp_macro.EVP_CTRL_AEAD_GET_TAG, size, out_buffer) ~= 1 then return nil, format_error("cipher:get_aead_tag") end return ffi_str(out_buffer, size) end function _M:set_aead_tag(tag) if not self.initialized then return nil, "cipher:set_aead_tag: cipher not initalized, call cipher:init first" end if type(tag) ~= "string" then return false, "cipher:set_aead_tag expect a string at #1" end local tag_void_ptr = ffi_cast(void_ptr, tag) if C.EVP_CIPHER_CTX_ctrl(self.ctx, evp_macro.EVP_CTRL_AEAD_SET_TAG, #tag, tag_void_ptr) ~= 1 then return false, format_error("cipher:set_aead_tag") end return true end local update_buffer = {} function _M:update(...) if not self.initialized then return nil, "cipher:update: cipher not initalized, call cipher:init first" end table.clear(update_buffer) local _out_buffer = out_buffer for i, s in ipairs({...}) do local inl = #s if inl > out_buffer_size and _out_buffer == out_buffer then -- create a larger buffer than the default one _out_buffer = ctypes.uchar_array(inl + 64) end if C.EVP_CipherUpdate(self.ctx, _out_buffer, out_length, s, inl) ~= 1 then return nil, format_error("cipher:update") end table.insert(update_buffer, ffi_str(_out_buffer, out_length[0])) end return table.concat(update_buffer, "") end function _M:final(s) if not self.initialized then return nil, "cipher:update: cipher not initalized, call cipher:init first" end out_length[0] = 0 local offset = 0 -- advance the offset if we have update buffer local _out_buffer = out_buffer if s then local inl = #s if inl > out_buffer_size then -- create a larger buffer than the default one _out_buffer = ctypes.uchar_array(inl + 64) end if C.EVP_CipherUpdate(self.ctx, _out_buffer, out_length, s, inl) ~= 1 then return nil, format_error("cipher:final") end offset = out_length[0] end if C.EVP_CipherFinal_ex(self.ctx, _out_buffer + offset, out_length) ~= 1 then return nil, format_error("cipher:final: EVP_CipherFinal_ex") end return ffi_str(_out_buffer, out_length[0] + offset) end function _M:derive(key, salt, count, md, md_properties) if type(key) ~= "string" then return nil, nil, "cipher:derive: expect a string at #1" elseif salt and type(salt) ~= "string" then return nil, nil, "cipher:derive: expect a string at #2" elseif count then count = tonumber(count) if not count then return nil, nil, "cipher:derive: expect a number at #3" end elseif md and type(md) ~= "string" then return nil, nil, "cipher:derive: expect a string or nil at #4" end if salt then if #salt > 8 then log_warn("cipher:derive: salt is too long, truncate salt to 8 bytes") salt = salt:sub(0, 8) elseif #salt < 8 then log_warn("cipher:derive: salt is too short, padding with zero bytes to length") salt = salt .. string.rep('\000', 8 - #salt) end end local mdt if OPENSSL_3X then mdt = C.EVP_MD_fetch(ctx_lib.get_libctx(), md or 'sha1', md_properties) else mdt = C.EVP_get_digestbyname(md or 'sha1') end if mdt == nil then return nil, nil, string.format("cipher:derive: invalid digest type \"%s\"", md) end local cipt = C.EVP_CIPHER_CTX_cipher(self.ctx) local keyb = uchar_array(self.key_size) local ivb = uchar_array(self.iv_size) local size = C.EVP_BytesToKey(cipt, mdt, salt, key, #key, count or 1, keyb, ivb) if size == 0 then return nil, nil, format_error("cipher:derive: EVP_BytesToKey") end return ffi_str(keyb, size), ffi_str(ivb, self.iv_size) end return _M PKB½N][ƒiÚa a resty/openssl/dh.luanu„[µü¤local ffi = require "ffi" local C = ffi.C require "resty.openssl.include.dh" local bn_lib = require "resty.openssl.bn" local format_error = require("resty.openssl.err").format_error local _M = {} _M.params = {"public", "private", "p", "q", "g"} local empty_table = {} local bn_ptrptr_ct = ffi.typeof("const BIGNUM *[1]") function _M.get_parameters(dh_st) return setmetatable(empty_table, { __index = function(_, k) local ptr, ret ptr = bn_ptrptr_ct() if k == 'p' then C.DH_get0_pqg(dh_st, ptr, nil, nil) elseif k == 'q' then C.DH_get0_pqg(dh_st, nil, ptr, nil) elseif k == 'g' then C.DH_get0_pqg(dh_st, nil, nil, ptr) elseif k == 'public' then C.DH_get0_key(dh_st, ptr, nil) elseif k == 'private' then C.DH_get0_key(dh_st, nil, ptr) else return nil, "rsa.get_parameters: unknown parameter \"" .. k .. "\" for RSA key" end ret = ptr[0] if ret == nil then return nil end return bn_lib.dup(ret) end }), nil end local function dup_bn_value(v) if not bn_lib.istype(v) then return nil, "expect value to be a bn instance" end local bn = C.BN_dup(v.ctx) if bn == nil then return nil, "BN_dup() failed" end return bn end function _M.set_parameters(dh_st, opts) local err local opts_bn = {} -- remember which parts of BNs has been added to dh_st, they should be freed -- by DH_free and we don't cleanup them on failure local cleanup_from_idx = 1 -- dup input local do_set_key, do_set_pqg while true do -- luacheck: ignore for k, v in pairs(opts) do opts_bn[k], err = dup_bn_value(v) if err then -- luacheck: ignore err = "dh.set_parameters: cannot process parameter \"" .. k .. "\":" .. err break end if k == "private" or k == "public" then do_set_key = true elseif k == "p" or k == "q" or k == "g" then do_set_pqg = true end end local code if do_set_key then code = C.DH_set0_key(dh_st, opts_bn["public"], opts_bn["private"]) if code == 0 then err = format_error("dh.set_parameters: DH_set0_key") break end end cleanup_from_idx = cleanup_from_idx + 2 if do_set_pqg then code = C.DH_set0_pqg(dh_st, opts_bn["p"], opts_bn["q"], opts_bn["g"]) if code == 0 then err = format_error("dh.set_parameters: DH_set0_pqg") break end end return true end for i, k in pairs(_M.params) do if i >= cleanup_from_idx then C.BN_free(opts_bn[k]) end end return false, err end return _M PKB½N]y1>@× × resty/openssl/mac.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_str = ffi.string require "resty.openssl.include.evp.mac" local param_lib = require "resty.openssl.param" local ctx_lib = require "resty.openssl.ctx" local ctypes = require "resty.openssl.auxiliary.ctypes" local format_error = require("resty.openssl.err").format_error local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X local _M = {} local mt = {__index = _M} local mac_ctx_ptr_ct = ffi.typeof('EVP_MAC_CTX*') local param_types = { cipher = param_lib.OSSL_PARAM_UTF8_STRING, digest = param_lib.OSSL_PARAM_UTF8_STRING, } local params = {} function _M.new(key, typ, cipher, digest, properties) if not OPENSSL_3X then return false, "EVP_MAC is only supported from OpenSSL 3.0" end local algo = C.EVP_MAC_fetch(ctx_lib.get_libctx(), typ, properties) if algo == nil then return nil, format_error(string.format("mac.new: invalid mac type \"%s\"", typ)) end ffi_gc(algo, C.EVP_MAC_free) local ctx = C.EVP_MAC_CTX_new(algo) if ctx == nil then return nil, "mac.new: failed to create EVP_MAC_CTX" end ffi_gc(ctx, C.EVP_MAC_CTX_free) params.digest = digest params.cipher = cipher local p = param_lib.construct(params, 2, param_types) local keyl = #key local code = C.EVP_MAC_init(ctx, key, keyl, p) if code ~= 1 then return nil, format_error(string.format("mac.new: invalid cipher or digest type")) end local md_size = C.EVP_MAC_CTX_get_mac_size(ctx) return setmetatable({ ctx = ctx, algo = algo, buf = ctypes.uchar_array(md_size), buf_size = md_size, _reset = function() return C.EVP_MAC_init(ctx, key, keyl, p) end, }, mt), nil end function _M.istype(l) return l and l.ctx and ffi.istype(mac_ctx_ptr_ct, l.ctx) end function _M:get_provider_name() local p = C.EVP_MAC_get0_provider(self.algo) if p == nil then return nil end return ffi_str(C.OSSL_PROVIDER_get0_name(p)) end _M.settable_params, _M.set_params, _M.gettable_params, _M.get_param = param_lib.get_params_func("EVP_MAC_CTX") function _M:update(...) for _, s in ipairs({...}) do if C.EVP_MAC_update(self.ctx, s, #s) ~= 1 then return false, format_error("mac:update") end end return true, nil end function _M:final(s) if s then if C.EVP_MAC_update(self.ctx, s, #s) ~= 1 then return false, format_error("mac:final") end end local length = ctypes.ptr_of_size_t() if C.EVP_MAC_final(self.ctx, self.buf, length, self.buf_size) ~= 1 then return nil, format_error("mac:final: EVP_MAC_final") end return ffi_str(self.buf, length[0]) end function _M:reset() local code = self._reset() if code ~= 1 then return false, format_error("mac:reset") end return true end return _M PKB½N]ZUüAÂÂresty/openssl/stack.luanu„[µü¤ --[[ The OpenSSL stack library. Note `safestack` is not usable here in ffi because those symbols are eaten after preprocessing. Instead, we should do a Lua land type checking by having a nested field indicating which type of cdata its ctx holds. ]] local ffi = require "ffi" local C = ffi.C local ffi_cast = ffi.cast local ffi_gc = ffi.gc require "resty.openssl.include.stack" local format_error = require("resty.openssl.err").format_error local _M = {} local function gc_of(typ) local f = C[typ .. "_free"] return function (st) C.OPENSSL_sk_pop_free(st, f) end end _M.gc_of = gc_of _M.mt_of = function(typ, convert, index_tbl, no_gc) if type(typ) ~= "string" then error("expect a string at #1") elseif type(convert) ~= "function" then error("expect a function at #2") end local typ_ptr = typ .. "*" -- starts from 0 local function value_at(ctx, i) local elem = C.OPENSSL_sk_value(ctx, i) if elem == nil then error(format_error("OPENSSL_sk_value")) end local dup, err = convert(ffi_cast(typ_ptr, elem)) if err then error(err) end return dup end local function iter(tbl) if not tbl then error("instance is nil") end local i = 0 local n = tonumber(C.OPENSSL_sk_num(tbl.ctx)) return function() i = i + 1 if i <= n then return i, value_at(tbl.ctx, i-1) end end end local ret = { __pairs = iter, __ipairs = iter, __len = function(tbl) if not tbl then error("instance is nil") end return tonumber(C.OPENSSL_sk_num(tbl.ctx)) end, __index = function(tbl, k) if not tbl then error("instance is nil") end local i = tonumber(k) if not i then return index_tbl[k] end local n = C.OPENSSL_sk_num(tbl.ctx) if i <= 0 or i > n then return nil end return value_at(tbl.ctx, i-1) end, } if not no_gc then ret.__gc = gc_of(typ) end return ret end _M.new_of = function(typ) local gc = gc_of(typ) return function() local raw = C.OPENSSL_sk_new_null() if raw == nil then return nil, "stack.new_of: OPENSSL_sk_new_null() failed" end ffi_gc(raw, gc) return raw end end _M.add_of = function(typ) local ptr = ffi.typeof(typ .. "*") return function(stack, ctx) if not stack then error("instance is nil") end if ctx == nil or not ffi.istype(ptr, ctx) then return false, "stack.add_of: expect a " .. typ .. "* at #1" end local code = C.OPENSSL_sk_push(stack, ctx) if code == 0 then return false, "stack.add_of: OPENSSL_sk_push() failed" end return true end end local stack_ptr_ct = ffi.typeof("OPENSSL_STACK*") _M.dup_of = function(_) return function(ctx) if ctx == nil or not ffi.istype(stack_ptr_ct, ctx) then return nil, "stack.dup_of: expect a stack ctx at #1" end local ctx = C.OPENSSL_sk_dup(ctx) if ctx == nil then return nil, "stack.dup_of: OPENSSL_sk_dup() failed" end -- if the stack is duplicated: since we don't copy the elements -- then we only control gc of the stack itself here ffi_gc(ctx, C.OPENSSL_sk_free) return ctx end end -- fallback function to iterate if LUAJIT_ENABLE_LUA52COMPAT not enabled _M.all_func = function(mt) return function(stack) if not stack then error("stack is nil") end local ret = {} local _next = mt.__pairs(stack) while true do local i, elem = _next() if elem then ret[i] = elem else break end end return ret end end _M.deep_copy_of = function(typ) local dup = C[typ .. "_dup"] local free = C[typ .. "_free"] return function(ctx) return C.OPENSSL_sk_deep_copy(ctx, dup, free) end end return _MPKB½N]¢�'ÇÇresty/openssl/objects.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_str = ffi.string local ffi_sizeof = ffi.sizeof require "resty.openssl.include.objects" require "resty.openssl.include.err" local buf = ffi.new('char[?]', 100) local function obj2table(obj) local nid = C.OBJ_obj2nid(obj) local len = C.OBJ_obj2txt(buf, ffi_sizeof(buf), obj, 1) local oid = ffi_str(buf, len) return { id = oid, nid = nid, sn = ffi_str(C.OBJ_nid2sn(nid)), ln = ffi_str(C.OBJ_nid2ln(nid)), } end local function nid2table(nid) return obj2table(C.OBJ_nid2obj(nid)) end local function txt2nid(txt) if type(txt) ~= "string" then return nil, "objects.txt2nid: expect a string at #1" end local nid = C.OBJ_txt2nid(txt) if nid == 0 then -- clean up error occurs during OBJ_txt2nid C.ERR_clear_error() return nil, "objects.txt2nid: invalid NID text " .. txt end return nid end local function txtnid2nid(txt_nid) local nid if type(txt_nid) == "string" then nid = C.OBJ_txt2nid(txt_nid) if nid == 0 then -- clean up error occurs during OBJ_txt2nid C.ERR_clear_error() return nil, "objects.txtnid2nid: invalid NID text " .. txt_nid end elseif type(txt_nid) == "number" then nid = txt_nid else return nil, "objects.txtnid2nid: expect string or number at #1" end return nid end local function find_sigid_algs(nid) local out = ffi.new("int[1]") if C.OBJ_find_sigid_algs(nid, out, nil) == 0 then return 0, "objects.find_sigid_algs: invalid sigid " .. nid end return tonumber(out[0]) end return { obj2table = obj2table, nid2table = nid2table, txt2nid = txt2nid, txtnid2nid = txtnid2nid, find_sigid_algs = find_sigid_algs, create = C.OBJ_create, } PKB½N]Uš÷Á Á resty/openssl/err.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_str = ffi.string local ffi_sizeof = ffi.sizeof local ctypes = require "resty.openssl.auxiliary.ctypes" require "resty.openssl.include.err" local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X local constchar_ptrptr = ffi.typeof("const char*[1]") local last_err_code = 0 local function get_last_error_code() local code = C.ERR_peek_last_error() last_err_code = code == 0 and last_err_code or code return last_err_code end local function get_lib_error_string(code) code = code or get_last_error_code() local msg = C.ERR_lib_error_string(code) if msg == nil then return "unknown library" end return ffi_str(msg) end local function get_reason_error_string(code) code = code or get_last_error_code() local msg = C.ERR_reason_error_string(code) if msg == nil then return "" end return ffi_str(msg) end local function format_error(ctx, code, all_errors) local errors = {} if code then table.insert(errors, string.format("code: %d", code or 0)) end local line = ctypes.ptr_of_int() local path = constchar_ptrptr() local func = constchar_ptrptr() -- get the OpenSSL errors while C.ERR_peek_error() ~= 0 do local code if all_errors then if OPENSSL_3X then code = C.ERR_get_error_all(path, line, func, nil, nil) else code = C.ERR_get_error_line(path, line) end else if OPENSSL_3X then code = C.ERR_peek_last_error_all(path, line, func, nil, nil) else code = C.ERR_peek_last_error_line(path, line) end end last_err_code = code local abs_path = ffi_str(path[0]) -- ../crypto/asn1/a_d2i_fp.c => crypto/asn1/a_d2i_fp.c local start = abs_path:find("/") if start then abs_path = abs_path:sub(start+1) end local err_line if OPENSSL_3X then local reason_msg = get_reason_error_string(code) local lib_msg = get_lib_error_string(code) -- error:04800065:PEM routines:PEM_do_header:bad decrypt:crypto/pem/pem_lib.c:467: err_line = string.format("error:%X:%s:%s:%s:%s:%d:", code, lib_msg, ffi_str(func[0]), reason_msg, abs_path, line[0]) else local buf = ffi.new('char[256]') C.ERR_error_string_n(code, buf, ffi_sizeof(buf)) err_line = string.format("%s:%d:%s", abs_path, line[0], ffi_str(buf)) end table.insert(errors, err_line) if not all_errors then break end end C.ERR_clear_error() if #errors > 0 then return string.format("%s%s%s", (ctx or ""), (ctx and ": " or ""), table.concat(errors, " ")) else return string.format("%s failed", ctx) end end local function format_all_error(ctx, code) return format_error(ctx, code, true) end return { format_error = format_error, format_all_error = format_all_error, get_last_error_code = get_last_error_code, get_lib_error_string = get_lib_error_string, get_reason_error_string = get_reason_error_string, } PKB½N]Vº· · resty/openssl/rsa.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local bn_lib = require "resty.openssl.bn" local format_error = require("resty.openssl.err").format_error local _M = {} _M.params = {"n", "e", "d", "p", "q", "dmp1", "dmq1", "iqmp"} local empty_table = {} local bn_ptrptr_ct = ffi.typeof("const BIGNUM *[1]") function _M.get_parameters(rsa_st) -- {"n", "e", "d", "p", "q", "dmp1", "dmq1", "iqmp"} return setmetatable(empty_table, { __index = function(_, k) local ptr, ret ptr = bn_ptrptr_ct() if k == 'n' then C.RSA_get0_key(rsa_st, ptr, nil, nil) elseif k == 'e' then C.RSA_get0_key(rsa_st, nil, ptr, nil) elseif k == 'd' then C.RSA_get0_key(rsa_st, nil, nil, ptr) elseif k == 'p' then C.RSA_get0_factors(rsa_st, ptr, nil) elseif k == 'q' then C.RSA_get0_factors(rsa_st, nil, ptr) elseif k == 'dmp1' then C.RSA_get0_crt_params(rsa_st, ptr, nil, nil) elseif k == 'dmq1' then C.RSA_get0_crt_params(rsa_st, nil, ptr, nil) elseif k == 'iqmp' then C.RSA_get0_crt_params(rsa_st, nil, nil, ptr) else return nil, "rsa.get_parameters: unknown parameter \"" .. k .. "\" for RSA key" end ret = ptr[0] if ret == nil then return nil end return bn_lib.dup(ret) end }), nil end local function dup_bn_value(v) if not bn_lib.istype(v) then return nil, "expect value to be a bn instance" end local bn = C.BN_dup(v.ctx) if bn == nil then return nil, "BN_dup() failed" end return bn end function _M.set_parameters(rsa_st, opts) local err local opts_bn = {} -- remember which parts of BNs has been added to rsa_st, they should be freed -- by RSA_free and we don't cleanup them on failure local cleanup_from_idx = 1 -- dup input local do_set_key, do_set_factors, do_set_crt_params while true do -- luacheck: ignore for k, v in pairs(opts) do opts_bn[k], err = dup_bn_value(v) if err then -- luacheck: ignore err = "rsa.set_parameters: cannot process parameter \"" .. k .. "\":" .. err break end if k == "n" or k == "e" or k == "d" then do_set_key = true elseif k == "p" or k == "q" then do_set_factors = true elseif k == "dmp1" or k == "dmq1" or k == "iqmp" then do_set_crt_params = true end end -- "The values n and e must be non-NULL the first time this function is called on a given RSA object." -- thus we force to set them together local code if do_set_key then code = C.RSA_set0_key(rsa_st, opts_bn["n"], opts_bn["e"], opts_bn["d"]) if code == 0 then err = format_error("rsa.set_parameters: RSA_set0_key") break end end cleanup_from_idx = cleanup_from_idx + 3 if do_set_factors then code = C.RSA_set0_factors(rsa_st, opts_bn["p"], opts_bn["q"]) if code == 0 then err = format_error("rsa.set_parameters: RSA_set0_factors") break end end cleanup_from_idx = cleanup_from_idx + 2 if do_set_crt_params then code = C.RSA_set0_crt_params(rsa_st, opts_bn["dmp1"], opts_bn["dmq1"], opts_bn["iqmp"]) if code == 0 then err = format_error("rsa.set_parameters: RSA_set0_crt_params") break end end return true end for i, k in pairs(_M.params) do if i >= cleanup_from_idx then C.BN_free(opts_bn[k]) end end return false, err end return _M PKB½N]gàW“--resty/openssl/kdf.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_str = ffi.string require("resty.openssl.objects") require("resty.openssl.include.evp.md") -- used by legacy EVP_PKEY_derive interface require("resty.openssl.include.evp.pkey") local kdf_macro = require "resty.openssl.include.evp.kdf" local ctx_lib = require "resty.openssl.ctx" local format_error = require("resty.openssl.err").format_error local version_text = require("resty.openssl.version").version_text local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X local ctypes = require "resty.openssl.auxiliary.ctypes" local nkeys = require "resty.openssl.auxiliary.compat".nkeys local log_warn = require "resty.openssl.auxiliary.compat".log_warn --[[ https://wiki.openssl.org/index.php/EVP_Key_Derivation OpenSSL 1.0.2 and above provides PBKDF2 by way of PKCS5_PBKDF2_HMAC and PKCS5_PBKDF2_HMAC_SHA1. OpenSSL 1.1.0 and above additionally provides HKDF and TLS1 PRF KDF by way of EVP_PKEY_derive and Scrypt by way of EVP_PBE_scrypt OpenSSL 1.1.1 and above additionally provides Scrypt by way of EVP_PKEY_derive. OpenSSL 3.0 additionally provides Single Step KDF, SSH KDF, PBKDF2, Scrypt, HKDF, ANSI X9.42 KDF, ANSI X9.63 KDF and TLS1 PRF KDF by way of EVP_KDF. From OpenSSL 3.0 the recommended way of performing key derivation is to use the EVP_KDF functions. If compatibility with OpenSSL 1.1.1 is required then a limited set of KDFs can be used via EVP_PKEY_derive. ]] local NID_id_pbkdf2 = C.OBJ_txt2nid("PBKDF2") assert(NID_id_pbkdf2 > 0) local NID_hkdf = C.OBJ_txt2nid("HKDF") assert(NID_hkdf > 0) local NID_tls1_prf = C.OBJ_txt2nid("TLS1-PRF") assert(NID_tls1_prf > 0) -- we use EVP_PBE_scrypt to do scrypt, so this is supported >= 1.1.0 local NID_id_scrypt = C.OBJ_txt2nid("id-scrypt") assert(NID_id_scrypt > 0) local _M = { HKDEF_MODE_EXTRACT_AND_EXPAND = kdf_macro.EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND, HKDEF_MODE_EXTRACT_ONLY = kdf_macro.EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY, HKDEF_MODE_EXPAND_ONLY = kdf_macro.EVP_PKEY_HKDEF_MODE_EXPAND_ONLY, PBKDF2 = NID_id_pbkdf2, SCRYPT = NID_id_scrypt, TLS1_PRF = NID_tls1_prf, HKDF = NID_hkdf, } local type_literals = { [NID_id_pbkdf2] = "PBKDF2", [NID_id_scrypt] = "scrypt", [NID_tls1_prf] = "TLS-1PRF", [NID_hkdf] = "HKDF", } local TYPE_NUMBER = 0x1 local TYPE_STRING = 0x2 local function check_options(opt, nid, field, typ, is_optional, required_only_if_nid) local v = opt[field] if not v then if is_optional or (required_only_if_nid and required_only_if_nid ~= nid) then return typ == TYPE_NUMBER and 0 or nil else return nil, "\"" .. field .. "\" must be set" end end if typ == TYPE_NUMBER then v = tonumber(v) if not typ then return nil, "except a number as \"" .. field .. "\"" end elseif typ == TYPE_STRING then if type(v) ~= "string" then return nil, "except a string as \"" .. field .. "\"" end else error("don't known how to check " .. typ, 2) end return v end local function check_hkdf_options(opt) local mode = opt.hkdf_mode if not mode then mode = _M.HKDEF_MODE_EXTRACT_AND_EXPAND end if mode == _M.HKDEF_MODE_EXTRACT_AND_EXPAND and ( not opt.salt or not opt.hkdf_info) then return '""salt" and "hkdf_info" are required for EXTRACT_AND_EXPAND mode' elseif mode == _M.HKDEF_MODE_EXTRACT_ONLY and not opt.salt then return '"salt" is required for EXTRACT_ONLY mode' elseif mode == _M.EVP_PKEY_HKDEF_MODE_EXPAND_ONLY and not opt.hkdf_info then return '"hkdf_info" is required for EXPAND_ONLY mode' end return nil end local options_schema = { outlen = { TYPE_NUMBER }, pass = { TYPE_STRING, true }, salt = { TYPE_STRING, true }, md = { TYPE_STRING, true }, -- pbkdf2 only pbkdf2_iter = { TYPE_NUMBER, true }, -- hkdf only hkdf_key = { TYPE_STRING, nil, NID_hkdf }, hkdf_mode = { TYPE_NUMBER, true }, hkdf_info = { TYPE_STRING, true }, -- tls1-prf tls1_prf_secret = { TYPE_STRING, nil, NID_tls1_prf }, tls1_prf_seed = { TYPE_STRING, nil, NID_tls1_prf }, -- scrypt only scrypt_maxmem = { TYPE_NUMBER, true }, scrypt_N = { TYPE_NUMBER, nil, NID_id_scrypt }, scrypt_r = { TYPE_NUMBER, nil, NID_id_scrypt }, scrypt_p = { TYPE_NUMBER, nil, NID_id_scrypt }, } local outlen = ctypes.ptr_of_size_t() function _M.derive(options) local typ = options.type if not typ then return nil, "kdf.derive: \"type\" must be set" elseif type(typ) ~= "number" then return nil, "kdf.derive: expect a number as \"type\"" end if typ <= 0 then return nil, "kdf.derive: kdf type " .. (type_literals[typ] or tostring(typ)) .. " not supported in " .. version_text end for k, v in pairs(options_schema) do -- don't use unpack here to avoid nil truncation local v, err = check_options(options, typ, k, v[1],v[2],v[3]) if err then return nil, "kdf.derive: " .. err end options[k] = v end if typ == NID_hkdf then local err = check_hkdf_options(options) if err then return nil, "kdf.derive: " .. err end end local salt_len = 0 if options.salt then salt_len = #options.salt end local pass_len = 0 if options.pass then pass_len = #options.pass end local md if OPENSSL_3X then md = C.EVP_MD_fetch(ctx_lib.get_libctx(), options.md or 'sha1', options.properties) else md = C.EVP_get_digestbyname(options.md or 'sha1') end if md == nil then return nil, string.format("kdf.derive: invalid digest type \"%s\"", md) end local buf = ctypes.uchar_array(options.outlen) -- begin legacay low level routines local code if typ == NID_id_pbkdf2 then -- https://www.openssl.org/docs/man1.1.0/man3/PKCS5_PBKDF2_HMAC.html local iter = options.pbkdf2_iter if iter < 1 then iter = 1 end code = C.PKCS5_PBKDF2_HMAC( options.pass, pass_len, options.salt, salt_len, iter, md, options.outlen, buf ) elseif typ == NID_id_scrypt then code = C.EVP_PBE_scrypt( options.pass, pass_len, options.salt, salt_len, options.scrypt_N, options.scrypt_r, options.scrypt_p, options.scrypt_maxmem, buf, options.outlen ) elseif typ ~= NID_tls1_prf and typ ~= NID_hkdf then return nil, string.format("kdf.derive: unknown type %d", typ) end if code then if code ~= 1 then return nil, format_error("kdf.derive") else return ffi_str(buf, options.outlen) end end -- end legacay low level routines -- begin EVP_PKEY_derive routines outlen[0] = options.outlen local ctx = C.EVP_PKEY_CTX_new_id(typ, nil) if ctx == nil then return nil, format_error("kdf.derive: EVP_PKEY_CTX_new_id") end ffi_gc(ctx, C.EVP_PKEY_CTX_free) if C.EVP_PKEY_derive_init(ctx) ~= 1 then return nil, format_error("kdf.derive: EVP_PKEY_derive_init") end if typ == NID_tls1_prf then if kdf_macro.EVP_PKEY_CTX_set_tls1_prf_md(ctx, md) ~= 1 then return nil, format_error("kdf.derive: EVP_PKEY_CTX_set_tls1_prf_md") end if kdf_macro.EVP_PKEY_CTX_set1_tls1_prf_secret(ctx, options.tls1_prf_secret) ~= 1 then return nil, format_error("kdf.derive: EVP_PKEY_CTX_set1_tls1_prf_secret") end if kdf_macro.EVP_PKEY_CTX_add1_tls1_prf_seed(ctx, options.tls1_prf_seed) ~= 1 then return nil, format_error("kdf.derive: EVP_PKEY_CTX_add1_tls1_prf_seed") end elseif typ == NID_hkdf then if kdf_macro.EVP_PKEY_CTX_set_hkdf_md(ctx, md) ~= 1 then return nil, format_error("kdf.derive: EVP_PKEY_CTX_set_hkdf_md") end if options.salt and kdf_macro.EVP_PKEY_CTX_set1_hkdf_salt(ctx, options.salt) ~= 1 then return nil, format_error("kdf.derive: EVP_PKEY_CTX_set1_hkdf_salt") end if options.hkdf_key and kdf_macro.EVP_PKEY_CTX_set1_hkdf_key(ctx, options.hkdf_key) ~= 1 then return nil, format_error("kdf.derive: EVP_PKEY_CTX_set1_hkdf_key") end if options.hkdf_info and kdf_macro.EVP_PKEY_CTX_add1_hkdf_info(ctx, options.hkdf_info) ~= 1 then return nil, format_error("kdf.derive: EVP_PKEY_CTX_add1_hkdf_info") end if options.hkdf_mode then if kdf_macro.EVP_PKEY_CTX_set_hkdf_mode(ctx, options.hkdf_mode) ~= 1 then return nil, format_error("kdf.derive: EVP_PKEY_CTX_set_hkdf_mode") end if options.hkdf_mode == _M.HKDEF_MODE_EXTRACT_ONLY then local md_size = OPENSSL_3X and C.EVP_MD_get_size(md) or C.EVP_MD_size(md) if options.outlen ~= md_size then options.outlen = md_size log_warn("hkdf_mode EXTRACT_ONLY outputs fixed length of ", md_size, " key, ignoring options.outlen") end outlen[0] = md_size buf = ctypes.uchar_array(md_size) end end else return nil, string.format("kdf.derive: unknown type %d", typ) end code = C.EVP_PKEY_derive(ctx, buf, outlen) if code == -2 then return nil, "kdf.derive: operation is not supported by the public key algorithm" end -- end EVP_PKEY_derive routines return ffi_str(buf, options.outlen) end if not OPENSSL_3X then return _M end _M.derive_legacy = _M.derive _M.derive = nil -- OPENSSL 3.0 style API local param_lib = require "resty.openssl.param" local SIZE_MAX = ctypes.SIZE_MAX local mt = {__index = _M} local kdf_ctx_ptr_ct = ffi.typeof('EVP_KDF_CTX*') function _M.new(typ, properties) local algo = C.EVP_KDF_fetch(ctx_lib.get_libctx(), typ, properties) if algo == nil then return nil, format_error(string.format("mac.new: invalid mac type \"%s\"", typ)) end ffi_gc(algo, C.EVP_KDF_free) local ctx = C.EVP_KDF_CTX_new(algo) if ctx == nil then return nil, "mac.new: failed to create EVP_MAC_CTX" end ffi_gc(ctx, C.EVP_KDF_CTX_free) local buf local buf_size = tonumber(C.EVP_KDF_CTX_get_kdf_size(ctx)) if buf_size == SIZE_MAX then -- no fixed size buf_size = nil else buf = ctypes.uchar_array(buf_size) end return setmetatable({ ctx = ctx, algo = algo, buf = buf, buf_size = buf_size, schema = nil, }, mt), nil end function _M.istype(l) return l and l.ctx and ffi.istype(kdf_ctx_ptr_ct, l.ctx) end function _M:get_provider_name() local p = C.EVP_KDF_get0_provider(self.algo) if p == nil then return nil end return ffi_str(C.OSSL_PROVIDER_get0_name(p)) end _M.settable_params, _M.set_params, _M.gettable_params, _M.get_param = param_lib.get_params_func("EVP_KDF_CTX") function _M:derive(outlen, options, options_count) if not _M.istype(self) then return _M.derive_legacy(self) end if self.buf_size and outlen then return nil, string.format("kdf:derive: this KDF has fixed output size %d, ".. "it can't be set manually", self.buf_size) end outlen = self.buf_size or outlen local buf = self.buf or ctypes.uchar_array(outlen) if options_count then options_count = options_count else options_count = nkeys(options) end local param, err if options_count > 0 then if not self.schema then self.schema = self:settable_params(true) -- raw schema end param, err = param_lib.construct(options, nil, self.schema) if err then return nil, "kdf:derive: " .. err end end if C.EVP_KDF_derive(self.ctx, buf, outlen, param) ~= 1 then return nil, format_error("kdf:derive") end return ffi_str(buf, outlen) end function _M:reset() C.EVP_KDF_CTX_reset(self.ctx) return true end return _M PKC½N]+èÊééresty/openssl/crypto.luanu„[µü¤local ffi = require "ffi" local ffi_cast = ffi.cast local C = ffi.C require "resty.openssl.include.crypto" local _M = {} function _M.memcmp(a, b, len) if type(len) ~= "number" or len < 1 then return nil, "crypto:memcmp arg 'len' must be a number > 0" end if type(a) ~= "string" and type(a) ~= "cdata" then return nil, "crypto:memcmp only strings and cdata types are supported" end return C.CRYPTO_memcmp(ffi_cast("void*", a), ffi_cast("void*", b), len) end return _M PKC½N]§ˆ@fÇ Ç resty/openssl/provider.luanu„[µü¤local ffi = require "ffi" local C = ffi.C require "resty.openssl.include.provider" local param_lib = require "resty.openssl.param" local ctx_lib = require "resty.openssl.ctx" local null = require("resty.openssl.auxiliary.ctypes").null local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X local format_error = require("resty.openssl.err").format_error if not OPENSSL_3X then error("provider is only supported since OpenSSL 3.0") end local _M = {} local mt = {__index = _M} local ossl_provider_ctx_ct = ffi.typeof('OSSL_PROVIDER*') function _M.load(name, try) local ctx local libctx = ctx_lib.get_libctx() if try then ctx = C.OSSL_PROVIDER_try_load(libctx, name) if ctx == nil then return nil, format_error("provider.try_load") end else ctx = C.OSSL_PROVIDER_load(libctx, name) if ctx == nil then return nil, format_error("provider.load") end end return setmetatable({ ctx = ctx, param_types = nil, }, mt), nil end function _M.set_default_search_path(path) C.OSSL_PROVIDER_set_default_search_path(ctx_lib.get_libctx(), path) end function _M.is_available(name) return C.OSSL_PROVIDER_available(ctx_lib.get_libctx(), name) == 1 end function _M.istype(l) return l and l.ctx and ffi.istype(ossl_provider_ctx_ct, l.ctx) end function _M:unload() if C.OSSL_PROVIDER_unload(self.ctx) == nil then return false, format_error("provider:unload") end return true end function _M:self_test() if C.OSSL_PROVIDER_self_test(self.ctx) == nil then return false, format_error("provider:self_test") end return true end local params_well_known = { -- Well known parameter names that core passes to providers ["openssl-version"] = param_lib.OSSL_PARAM_UTF8_PTR, ["provider-name"] = param_lib.OSSL_PARAM_UTF8_PTR, ["module-filename"] = param_lib.OSSL_PARAM_UTF8_PTR, -- Well known parameter names that Providers can define ["name"] = param_lib.OSSL_PARAM_UTF8_PTR, ["version"] = param_lib.OSSL_PARAM_UTF8_PTR, ["buildinfo"] = param_lib.OSSL_PARAM_UTF8_PTR, ["status"] = param_lib.OSSL_PARAM_INTEGER, ["security-checks"] = param_lib.OSSL_PARAM_INTEGER, } local function load_gettable_names(ctx) local schema = {} for k, v in pairs(params_well_known) do schema[k] = v end local err schema, err = param_lib.parse_params_schema( C.OSSL_PROVIDER_gettable_params(ctx), schema) if err then return nil, err end return schema end function _M:get_params(...) local keys = {...} local key_length = #keys if key_length == 0 then return nil, "provider:get_params: at least one key is required" end if not self.param_types then local param_types, err = load_gettable_names(self.ctx) if err then return nil, "provider:get_params: " .. err end self.param_types = param_types end local buffers = {} for _, key in ipairs(keys) do buffers[key] = null end local req, err = param_lib.construct(buffers, key_length, self.param_types) if not req then return nil, "provider:get_params: failed to construct params: " .. err end if C.OSSL_PROVIDER_get_params(self.ctx, req) ~= 1 then return nil, format_error("provider:get_params") end buffers, err = param_lib.parse(buffers, key_length, self.param_types) if err then return nil, "provider:get_params: failed to parse params: " .. err end if key_length == 1 then return buffers[keys[1]] end return buffers end return _M PKC½N]ȵƒ¿IIresty/openssl/include/pem.luanu„[µü¤ local ffi = require "ffi" require "resty.openssl.include.ossl_typ" ffi.cdef [[ // all pem_password_cb* has been modified to pem_password_cb to avoid a table overflow issue typedef int (*pem_password_cb)(char *buf, int size, int rwflag, void *userdata); EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, // the following signature has been modified to avoid ffi.cast pem_password_cb cb, const char *u); // pem_password_cb *cb, void *u); EVP_PKEY *PEM_read_bio_PUBKEY(BIO *bp, EVP_PKEY **x, // the following signature has been modified to avoid ffi.cast pem_password_cb cb, const char *u); // pem_password_cb *cb, void *u); int PEM_write_bio_PrivateKey(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); int PEM_write_bio_PUBKEY(BIO *bp, EVP_PKEY *x); RSA *PEM_read_bio_RSAPrivateKey(BIO *bp, RSA **x, // the following signature has been modified to avoid ffi.cast pem_password_cb cb, const char *u); // pem_password_cb *cb, void *u); RSA *PEM_read_bio_RSAPublicKey(BIO *bp, RSA **x, // the following signature has been modified to avoid ffi.cast pem_password_cb cb, const char *u); // pem_password_cb *cb, void *u); int PEM_write_bio_RSAPrivateKey(BIO *bp, RSA *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); int PEM_write_bio_RSAPublicKey(BIO *bp, RSA *x); X509_REQ *PEM_read_bio_X509_REQ(BIO *bp, X509_REQ **x, pem_password_cb cb, void *u); int PEM_write_bio_X509_REQ(BIO *bp, X509_REQ *x); X509_CRL *PEM_read_bio_X509_CRL(BIO *bp, X509_CRL **x, pem_password_cb cb, void *u); int PEM_write_bio_X509_CRL(BIO *bp, X509_CRL *x); X509 *PEM_read_bio_X509(BIO *bp, X509 **x, pem_password_cb cb, void *u); int PEM_write_bio_X509(BIO *bp, X509 *x); DH *PEM_read_bio_DHparams(BIO *bp, DH **x, pem_password_cb cb, void *u); int PEM_write_bio_DHparams(BIO *bp, DH *x); EC_GROUP *PEM_read_bio_ECPKParameters(BIO *bp, EC_GROUP **x, pem_password_cb cb, void *u); int PEM_write_bio_ECPKParameters(BIO *bp, const EC_GROUP *x); ]] PKC½N]^ÓdW­ ­ resty/openssl/include/ssl.luanu„[µü¤local ffi = require "ffi" local C = ffi.C require "resty.openssl.include.ossl_typ" require "resty.openssl.include.stack" local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X ffi.cdef [[ // SSL_METHOD typedef struct ssl_method_st SSL_METHOD; // const SSL_METHOD *TLS_method(void); const SSL_METHOD *TLS_server_method(void); // SSL_CIPHER typedef struct ssl_cipher_st SSL_CIPHER; const char *SSL_CIPHER_get_name(const SSL_CIPHER *cipher); SSL_CIPHER *SSL_get_current_cipher(const SSL *ssl); SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth); void SSL_CTX_free(SSL_CTX *a); // SSL_SESSION typedef struct ssl_session_st SSL_SESSION; SSL_SESSION *SSL_get_session(const SSL *ssl); long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); long SSL_SESSION_get_timeout(const SSL_SESSION *s); typedef int (*SSL_CTX_alpn_select_cb_func)(SSL *ssl, const unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, void *arg); void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, SSL_CTX_alpn_select_cb_func cb, void *arg); int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, const unsigned char *server, unsigned int server_len, const unsigned char *client, unsigned int client_len); SSL *SSL_new(SSL_CTX *ctx); void SSL_free(SSL *ssl); int SSL_set_cipher_list(SSL *ssl, const char *str); int SSL_set_ciphersuites(SSL *s, const char *str); long SSL_set_options(SSL *ssl, long options); long SSL_clear_options(SSL *ssl, long options); long SSL_get_options(SSL *ssl); /*STACK_OF(SSL_CIPHER)*/ OPENSSL_STACK *SSL_get_ciphers(const SSL *ssl); // /*STACK_OF(SSL_CIPHER)*/ OPENSSL_STACK *SSL_CTX_get_ciphers(const SSL_CTX *ctx); OPENSSL_STACK *SSL_get_peer_cert_chain(const SSL *ssl); typedef int (*verify_callback)(int preverify_ok, X509_STORE_CTX *x509_ctx); void SSL_set_verify(SSL *s, int mode, int (*verify_callback)(int, X509_STORE_CTX *)); int SSL_add_client_CA(SSL *ssl, X509 *cacert); long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg); ]] if OPENSSL_3X then ffi.cdef [[ X509 *SSL_get1_peer_certificate(const SSL *ssl); ]] else ffi.cdef [[ X509 *SSL_get_peer_certificate(const SSL *ssl); ]] end local SSL_CTRL_SET_MIN_PROTO_VERSION = 123 local SSL_CTRL_SET_MAX_PROTO_VERSION = 124 local SSL_set_min_proto_version = function(ctx, version) return C.SSL_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, nil) end local SSL_set_max_proto_version = function(ctx, version) return C.SSL_ctrl(ctx, SSL_CTRL_SET_MAX_PROTO_VERSION, version, nil) end return { SSL_set_min_proto_version = SSL_set_min_proto_version, SSL_set_max_proto_version = SSL_set_max_proto_version, } PKC½N]â¯yÀööresty/openssl/include/hmac.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" require "resty.openssl.include.evp" ffi.cdef [[ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, const EVP_MD *md, ENGINE *impl); int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len); int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len); HMAC_CTX *HMAC_CTX_new(void); void HMAC_CTX_free(HMAC_CTX *ctx); ]] PKC½N]°^~ÓÓresty/openssl/include/evp.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local bit = require("bit") require "resty.openssl.include.ossl_typ" require "resty.openssl.include.err" require "resty.openssl.include.objects" local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X ffi.cdef [[ /* KDF */ int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, const unsigned char *salt, int saltlen, int iter, const EVP_MD *digest, int keylen, unsigned char *out); int EVP_PBE_scrypt(const char *pass, size_t passlen, const unsigned char *salt, size_t saltlen, uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, unsigned char *key, size_t keylen); ]] if OPENSSL_3X then require "resty.openssl.include.provider" ffi.cdef [[ int EVP_set_default_properties(OSSL_LIB_CTX *libctx, const char *propq); int EVP_default_properties_enable_fips(OSSL_LIB_CTX *libctx, int enable); int EVP_default_properties_is_fips_enabled(OSSL_LIB_CTX *libctx); // const OSSL_PROVIDER *EVP_RAND_get0_provider(const EVP_RAND *rand); // EVP_RAND *EVP_RAND_fetch(OSSL_LIB_CTX *libctx, const char *algorithm, // const char *properties); ]] end local EVP_PKEY_ALG_CTRL = 0x1000 local _M = { EVP_PKEY_RSA = C.OBJ_txt2nid("rsaEncryption"), EVP_PKEY_DH = C.OBJ_txt2nid("dhKeyAgreement"), EVP_PKEY_EC = C.OBJ_txt2nid("id-ecPublicKey"), EVP_PKEY_X25519 = C.OBJ_txt2nid("X25519"), EVP_PKEY_ED25519 = C.OBJ_txt2nid("ED25519"), EVP_PKEY_X448 = C.OBJ_txt2nid("X448"), EVP_PKEY_ED448 = C.OBJ_txt2nid("ED448"), EVP_CTRL_AEAD_SET_IVLEN = 0x9, EVP_CTRL_AEAD_GET_TAG = 0x10, EVP_CTRL_AEAD_SET_TAG = 0x11, -- remove EVP_PKEY_OP_* and EVP_PKEY_CTRL_* after openssl 1.1.1 support is dropped EVP_PKEY_OP_PARAMGEN = not OPENSSL_3X and bit.lshift(1, 1) or nil, EVP_PKEY_OP_KEYGEN = not OPENSSL_3X and bit.lshift(1, 2) or nil, EVP_PKEY_OP_SIGN = not OPENSSL_3X and bit.lshift(1, 3) or nil, EVP_PKEY_OP_VERIFY = not OPENSSL_3X and bit.lshift(1, 4) or nil, EVP_PKEY_OP_VERIFYRECOVER = not OPENSSL_3X and bit.lshift(1, 5) or nil, EVP_PKEY_OP_SIGNCTX = not OPENSSL_3X and bit.lshift(1, 6) or nil, EVP_PKEY_OP_VERIFYCTX = not OPENSSL_3X and bit.lshift(1, 7) or nil, EVP_PKEY_OP_ENCRYPT = not OPENSSL_3X and bit.lshift(1, 8) or nil, EVP_PKEY_OP_DECRYPT = not OPENSSL_3X and bit.lshift(1, 9) or nil, EVP_PKEY_OP_DERIVE = not OPENSSL_3X and bit.lshift(1, 10) or nil, EVP_PKEY_ALG_CTRL = EVP_PKEY_ALG_CTRL, EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN = EVP_PKEY_ALG_CTRL + 1, EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID = EVP_PKEY_ALG_CTRL + 1, EVP_PKEY_CTRL_EC_PARAM_ENC = EVP_PKEY_ALG_CTRL + 2, EVP_PKEY_CTRL_RSA_KEYGEN_BITS = EVP_PKEY_ALG_CTRL + 3, EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP = EVP_PKEY_ALG_CTRL + 4, EVP_PKEY_CTRL_RSA_PADDING = EVP_PKEY_ALG_CTRL + 1, EVP_PKEY_CTRL_RSA_PSS_SALTLEN = EVP_PKEY_ALG_CTRL + 2, EVP_PKEY_CTRL_RSA_MGF1_MD = EVP_PKEY_ALG_CTRL + 5, EVP_PKEY_CTRL_RSA_OAEP_MD = EVP_PKEY_ALG_CTRL + 9, EVP_PKEY_CTRL_TLS_MD = EVP_PKEY_ALG_CTRL, EVP_PKEY_CTRL_TLS_SECRET = EVP_PKEY_ALG_CTRL + 1, EVP_PKEY_CTRL_TLS_SEED = EVP_PKEY_ALG_CTRL + 2, EVP_PKEY_CTRL_HKDF_MD = EVP_PKEY_ALG_CTRL + 3, EVP_PKEY_CTRL_HKDF_SALT = EVP_PKEY_ALG_CTRL + 4, EVP_PKEY_CTRL_HKDF_KEY = EVP_PKEY_ALG_CTRL + 5, EVP_PKEY_CTRL_HKDF_INFO = EVP_PKEY_ALG_CTRL + 6, EVP_PKEY_CTRL_HKDF_MODE = EVP_PKEY_ALG_CTRL + 7, EVP_PKEY_CTRL_PASS = EVP_PKEY_ALG_CTRL + 8, EVP_PKEY_CTRL_SCRYPT_SALT = EVP_PKEY_ALG_CTRL + 9, EVP_PKEY_CTRL_SCRYPT_N = EVP_PKEY_ALG_CTRL + 10, EVP_PKEY_CTRL_SCRYPT_R = EVP_PKEY_ALG_CTRL + 11, EVP_PKEY_CTRL_SCRYPT_P = EVP_PKEY_ALG_CTRL + 12, EVP_PKEY_CTRL_SCRYPT_MAXMEM_BYTES = EVP_PKEY_ALG_CTRL + 13, } local OSSL_KEYMGMT_SELECT_PRIVATE_KEY = 0x01 local OSSL_KEYMGMT_SELECT_PUBLIC_KEY = 0x02 local OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS = 0x04 local OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS = 0x80 local OSSL_KEYMGMT_SELECT_ALL_PARAMETERS = OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS + OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS -- local OSSL_KEYMGMT_SELECT_KEYPAIR = OSSL_KEYMGMT_SELECT_PRIVATE_KEY + -- OSSL_KEYMGMT_SELECT_PUBLIC_KEY -- local OSSL_KEYMGMT_SELECT_ALL = OSSL_KEYMGMT_SELECT_KEYPAIR + -- OSSL_KEYMGMT_SELECT_ALL_PARAMETERS if not OPENSSL_3X then _M.EVP_PKEY_OP_CRYPT = _M.EVP_PKEY_OP_ENCRYPT + _M.EVP_PKEY_OP_DECRYPT _M.EVP_PKEY_OP_SIG = _M.EVP_PKEY_OP_SIGN + _M.EVP_PKEY_OP_VERIFY + _M.EVP_PKEY_OP_VERIFYRECOVER + _M.EVP_PKEY_OP_SIGNCTX + _M.EVP_PKEY_OP_VERIFYCTX else _M.EVP_PKEY_KEY_PARAMETERS = OSSL_KEYMGMT_SELECT_ALL_PARAMETERS _M.EVP_PKEY_PUBLIC_KEY = _M.EVP_PKEY_KEY_PARAMETERS + OSSL_KEYMGMT_SELECT_PUBLIC_KEY _M.EVP_PKEY_KEYPAIR = _M.EVP_PKEY_PUBLIC_KEY + OSSL_KEYMGMT_SELECT_PRIVATE_KEY end -- clean up error occurs during OBJ_txt2* C.ERR_clear_error() _M.ecx_curves = { Ed25519 = _M.EVP_PKEY_ED25519, X25519 = _M.EVP_PKEY_X25519, Ed448 = _M.EVP_PKEY_ED448, X448 = _M.EVP_PKEY_X448, } return _M PKC½N]hìëÕññresty/openssl/include/ecdsa.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" ffi.cdef [[ ECDSA_SIG *ECDSA_SIG_new(void); void ECDSA_SIG_free(ECDSA_SIG *sig); void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s); int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len); int EC_GROUP_order_bits(const EC_GROUP *group); ]] PKC½N]æÂäPÖÖresty/openssl/include/conf.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" ffi.cdef [[ CONF *NCONF_new(CONF_METHOD *meth); void NCONF_free(CONF *conf); int NCONF_load_bio(CONF *conf, BIO *bp, long *eline); ]]PKC½N]œˆ*¥ä ä resty/openssl/include/bn.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" local BN_ULONG if ffi.abi('64bit') then BN_ULONG = 'unsigned long long' else -- 32bit BN_ULONG = 'unsigned int' end ffi.cdef( [[ BIGNUM *BN_new(void); void BN_free(BIGNUM *a); BN_CTX *BN_CTX_new(void); // void BN_CTX_init(BN_CTX *c); void BN_CTX_free(BN_CTX *c); BIGNUM *BN_dup(const BIGNUM *a); int BN_add_word(BIGNUM *a, ]] .. BN_ULONG ..[[ w); int BN_set_word(BIGNUM *a, ]] .. BN_ULONG ..[[ w); ]] .. BN_ULONG ..[[ BN_get_word(BIGNUM *a); int BN_num_bits(const BIGNUM *a); BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); int BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen); int BN_hex2bn(BIGNUM **a, const char *str); int BN_dec2bn(BIGNUM **a, const char *str); int BN_bn2bin(const BIGNUM *a, unsigned char *to); char *BN_bn2hex(const BIGNUM *a); char *BN_bn2dec(const BIGNUM *a); int BN_bn2mpi(const BIGNUM *a, unsigned char *to); BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); void BN_set_negative(BIGNUM *a, int n); int BN_is_negative(const BIGNUM *a); int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); int BN_mul(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); int BN_sqr(BIGNUM *r, BIGNUM *a, BN_CTX *ctx); int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *a, const BIGNUM *d, BN_CTX *ctx); int BN_mod_add(BIGNUM *ret, BIGNUM *a, BIGNUM *b, const BIGNUM *m, BN_CTX *ctx); int BN_mod_sub(BIGNUM *ret, BIGNUM *a, BIGNUM *b, const BIGNUM *m, BN_CTX *ctx); int BN_mod_mul(BIGNUM *ret, BIGNUM *a, BIGNUM *b, const BIGNUM *m, BN_CTX *ctx); int BN_mod_sqr(BIGNUM *ret, BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); int BN_exp(BIGNUM *r, BIGNUM *a, BIGNUM *p, BN_CTX *ctx); int BN_mod_exp(BIGNUM *r, BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx); int BN_gcd(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); int BN_rshift(BIGNUM *r, BIGNUM *a, int n); int BN_cmp(BIGNUM *a, BIGNUM *b); int BN_ucmp(BIGNUM *a, BIGNUM *b); int BN_is_zero(BIGNUM *a); int BN_is_one(BIGNUM *a); int BN_is_word(BIGNUM *a, ]] .. BN_ULONG ..[[ w); int BN_is_odd(BIGNUM *a); int BN_is_prime_ex(const BIGNUM *p,int nchecks, BN_CTX *ctx, BN_GENCB *cb); int BN_generate_prime_ex(BIGNUM *ret,int bits,int safe, const BIGNUM *add, const BIGNUM *rem, BN_GENCB *cb); ]] )PKD½N]Ú×U$áá"resty/openssl/include/x509/csr.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" require "resty.openssl.include.evp" require "resty.openssl.include.objects" require "resty.openssl.include.x509" require "resty.openssl.include.stack" local asn1_macro = require "resty.openssl.include.asn1" local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X asn1_macro.declare_asn1_functions("X509_REQ", asn1_macro.has_new_ex) ffi.cdef [[ int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name); EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); int X509_REQ_set_version(X509_REQ *x, long version); int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc); int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos); int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); void X509_ATTRIBUTE_free(X509_ATTRIBUTE *a); // int X509_REQ_get_attr_count(const X509_REQ *req); // int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); // int *X509_REQ_get_extension_nids(void); int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req); X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); // STACK_OF(X509_EXTENSION) OPENSSL_STACK *X509_REQ_get_extensions(X509_REQ *req); // STACK_OF(X509_EXTENSION) int X509_REQ_add_extensions(X509_REQ *req, OPENSSL_STACK *exts); int X509_REQ_check_private_key(X509_REQ *x, EVP_PKEY *k); X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req); long X509_REQ_get_version(const X509_REQ *req); int X509_REQ_get_signature_nid(const X509_REQ *crl); ]] if OPENSSL_3X then ffi.cdef [[ // int X509_REQ_verify_ex(X509_REQ *a, EVP_PKEY *pkey, OSSL_LIB_CTX *libctx, // const char *propq); ]] end PKD½N]<Ö‚‚&resty/openssl/include/x509/revoked.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" require "resty.openssl.include.asn1" require "resty.openssl.include.objects" local asn1_macro = require "resty.openssl.include.asn1" asn1_macro.declare_asn1_functions("X509_REVOKED") ffi.cdef [[ int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); const ASN1_INTEGER *X509_REVOKED_get0_serialNumber(const X509_REVOKED *r); const ASN1_TIME *X509_REVOKED_get0_revocationDate(const X509_REVOKED *r); ]]PKD½N]í‹òÂÂ"resty/openssl/include/x509/crl.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" require "resty.openssl.include.evp" require "resty.openssl.include.objects" require "resty.openssl.include.x509" require "resty.openssl.include.stack" local asn1_macro = require "resty.openssl.include.asn1" asn1_macro.declare_asn1_functions("X509_CRL", asn1_macro.has_new_ex) ffi.cdef [[ X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl); int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); int X509_CRL_set_version(X509_CRL *x, long version); int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc); int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos); // void *X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int *idx); int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl); X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); int X509_CRL_print(BIO *bio, X509_CRL *crl); int X509_CRL_get0_by_serial(X509_CRL *crl, X509_REVOKED **ret, ASN1_INTEGER *serial); // int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); //STACK_OF(X509_REVOKED) OPENSSL_STACK *X509_CRL_get_REVOKED(X509_CRL *crl); int X509_CRL_get0_by_serial(X509_CRL *crl, X509_REVOKED **ret, ASN1_INTEGER *serial); int X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); int X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); /*const*/ ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl); /*const*/ ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl); long X509_CRL_get_version(const X509_CRL *crl); X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); int X509_CRL_get_signature_nid(const X509_CRL *crl); ]] PKD½N]P©¨))(resty/openssl/include/x509/extension.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" require "resty.openssl.include.x509v3" require "resty.openssl.include.x509" local asn1_macro = require "resty.openssl.include.asn1" local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X asn1_macro.declare_asn1_functions("X509_EXTENSION") if OPENSSL_3X then ffi.cdef [[ struct v3_ext_ctx { int flags; X509 *issuer_cert; X509 *subject_cert; X509_REQ *subject_req; X509_CRL *crl; /*X509V3_CONF_METHOD*/ void *db_meth; void *db; EVP_PKEY *issuer_pkey; }; int X509V3_set_issuer_pkey(X509V3_CTX *ctx, EVP_PKEY *pkey); ]] else ffi.cdef [[ struct v3_ext_ctx { int flags; X509 *issuer_cert; X509 *subject_cert; X509_REQ *subject_req; X509_CRL *crl; /*X509V3_CONF_METHOD*/ void *db_meth; void *db; }; ]] end ffi.cdef [[ int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); int X509_EXTENSION_set_object(X509_EXTENSION *ex, const ASN1_OBJECT *obj); ]]PKD½N]U`ökKK#resty/openssl/include/x509/name.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" require "resty.openssl.include.asn1" require "resty.openssl.include.objects" local asn1_macro = require "resty.openssl.include.asn1" asn1_macro.declare_asn1_functions("X509_NAME") ffi.cdef [[ int X509_NAME_add_entry_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len, int loc, int set); int X509_NAME_entry_count(const X509_NAME *name); X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc); ASN1_OBJECT *X509_NAME_ENTRY_get_object(const X509_NAME_ENTRY *ne); ASN1_STRING * X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne); int X509_NAME_get_index_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, int lastpos); ]]PKD½N]Jx¥º º #resty/openssl/include/x509/init.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" require "resty.openssl.include.bio" require "resty.openssl.include.pem" require "resty.openssl.include.stack" local asn1_macro = require "resty.openssl.include.asn1" asn1_macro.declare_asn1_functions("X509", asn1_macro.has_new_ex) ffi.cdef [[ int i2d_X509_bio(BIO *bp, X509 *x509); X509 *d2i_X509_bio(BIO *bp, X509 **x509); // STACK_OF(X509) OPENSSL_STACK *X509_chain_up_ref(OPENSSL_STACK *chain); int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); int X509_verify(X509 *a, EVP_PKEY *r); ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); X509_EXTENSION *X509_get_ext(const X509 *x, int loc); int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); void *X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx); int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); int X509_EXTENSION_get_critical(const X509_EXTENSION *ex); ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, int nid, int crit, ASN1_OCTET_STRING *data); // needed by pkey EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey); int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey); EVP_PKEY *X509_get_pubkey(X509 *x); int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); int X509_set_version(X509 *x, long version); int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); X509_NAME *X509_get_subject_name(const X509 *a); int X509_set_subject_name(X509 *x, X509_NAME *name); X509_NAME *X509_get_issuer_name(const X509 *a); int X509_set_issuer_name(X509 *x, X509_NAME *name); int X509_pubkey_digest(const X509 *data, const EVP_MD *type, unsigned char *md, unsigned int *len); int X509_digest(const X509 *data, const EVP_MD *type, unsigned char *md, unsigned int *len); const char *X509_verify_cert_error_string(long n); int X509_verify_cert(X509_STORE_CTX *ctx); int X509_get_signature_nid(const X509 *x); unsigned char *X509_alias_get0(X509 *x, int *len); // unsigned char *X509_keyid_get0(X509 *x, int *len); int X509_check_private_key(X509 *x, EVP_PKEY *k); int X509_up_ref(X509 *a); int X509_set1_notBefore(X509 *x, const ASN1_TIME *tm); int X509_set1_notAfter(X509 *x, const ASN1_TIME *tm); /*const*/ ASN1_TIME *X509_get0_notBefore(const X509 *x); /*const*/ ASN1_TIME *X509_get0_notAfter(const X509 *x); long X509_get_version(const X509 *x); const ASN1_INTEGER *X509_get0_serialNumber(X509 *x); X509_EXTENSION *X509_delete_ext(X509 *x, int loc); ]] PKD½N]¦«g–ùù&resty/openssl/include/x509/altname.luanu„[µü¤local GEN_OTHERNAME = 0 local GEN_EMAIL = 1 local GEN_DNS = 2 local GEN_X400 = 3 local GEN_DIRNAME = 4 local GEN_EDIPARTY = 5 local GEN_URI = 6 local GEN_IPADD = 7 local GEN_RID = 8 local default_types = { OtherName = GEN_OTHERNAME, -- otherName RFC822Name = GEN_EMAIL, -- email RFC822 = GEN_EMAIL, Email = GEN_EMAIL, DNSName = GEN_DNS, -- dns DNS = GEN_DNS, X400 = GEN_X400, -- x400 DirName = GEN_DIRNAME, -- dirName EdiParty = GEN_EDIPARTY, -- EdiParty UniformResourceIdentifier = GEN_URI, -- uri URI = GEN_URI, IPAddress = GEN_IPADD, -- ipaddr IP = GEN_IPADD, RID = GEN_RID, -- rid } local literals = { [GEN_OTHERNAME] = "OtherName", [GEN_EMAIL] = "email", [GEN_DNS] = "DNS", [GEN_X400] = "X400", [GEN_DIRNAME] = "DirName", [GEN_EDIPARTY] = "EdiParty", [GEN_URI] = "URI", [GEN_IPADD] = "IP", [GEN_RID] = "RID", } local types = {} for t, gid in pairs(default_types) do types[t:lower()] = gid types[t] = gid end return { types = types, literals = literals, }PKD½N]ŸÏ�Ä�� resty/openssl/include/pkcs12.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" require "resty.openssl.include.stack" local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X ffi.cdef [[ // hack by changing char* to const char* here PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, OPENSSL_STACK *ca, // STACK_OF(X509) int nid_key, int nid_cert, int iter, int mac_iter, int keytype); int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, OPENSSL_STACK **ca); // STACK_OF(X509) **ca); void PKCS12_free(PKCS12 *p12); int i2d_PKCS12_bio(BIO *bp, PKCS12 *a); PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **a); ]] if OPENSSL_3X then ffi.cdef [[ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, X509 *cert, OPENSSL_STACK *ca, // STACK_OF(X509) int nid_key, int nid_cert, int iter, int mac_iter, int keytype, OSSL_LIB_CTX *ctx, const char *propq); ]] end PKD½N]Xß\]] resty/openssl/include/x509v3.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" require "resty.openssl.include.stack" local asn1_macro = require "resty.openssl.include.asn1" ffi.cdef [[ // STACK_OF(OPENSSL_STRING) OPENSSL_STACK *X509_get1_ocsp(X509 *x); void X509_email_free(OPENSSL_STACK *sk); void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); typedef struct EDIPartyName_st EDIPARTYNAME; typedef struct otherName_st OTHERNAME; typedef struct GENERAL_NAME_st { int type; union { char *ptr; OTHERNAME *otherName; /* otherName */ ASN1_IA5STRING *rfc822Name; ASN1_IA5STRING *dNSName; ASN1_TYPE *x400Address; X509_NAME *directoryName; EDIPARTYNAME *ediPartyName; ASN1_IA5STRING *uniformResourceIdentifier; ASN1_OCTET_STRING *iPAddress; ASN1_OBJECT *registeredID; /* Old names */ ASN1_OCTET_STRING *ip; /* iPAddress */ X509_NAME *dirn; /* dirn */ ASN1_IA5STRING *ia5; /* rfc822Name, dNSName, * uniformResourceIdentifier */ ASN1_OBJECT *rid; /* registeredID */ ASN1_TYPE *other; /* x400Address */ } d; } GENERAL_NAME; // STACK_OF(GENERAL_NAME) typedef struct stack_st GENERAL_NAMES; // STACK_OF(X509_EXTENSION) int X509V3_add1_i2d(OPENSSL_STACK **x, int nid, void *value, int crit, unsigned long flags); void *X509V3_EXT_d2i(X509_EXTENSION *ext); X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent); int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, unsigned long flags); // although the struct has plural form, it's not a stack typedef struct BASIC_CONSTRAINTS_st { int ca; ASN1_INTEGER *pathlen; } BASIC_CONSTRAINTS; void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, X509_REQ *req, X509_CRL *crl, int flags); X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, const char *value); // X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const char *name, // const char *value); int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent); void *X509V3_get_d2i(const OPENSSL_STACK *x, int nid, int *crit, int *idx); int X509v3_get_ext_by_NID(const OPENSSL_STACK *x, int nid, int lastpos); X509_EXTENSION *X509v3_get_ext(const OPENSSL_STACK *x, int loc); // STACK_OF(ACCESS_DESCRIPTION) typedef struct stack_st AUTHORITY_INFO_ACCESS; typedef struct ACCESS_DESCRIPTION_st { ASN1_OBJECT *method; GENERAL_NAME *location; } ACCESS_DESCRIPTION; typedef struct DIST_POINT_NAME_st { int type; union { GENERAL_NAMES *fullname; // STACK_OF(X509_NAME_ENTRY) OPENSSL_STACK *relativename; } name; /* If relativename then this contains the full distribution point name */ X509_NAME *dpname; } DIST_POINT_NAME; typedef struct DIST_POINT_st { DIST_POINT_NAME *distpoint; ASN1_BIT_STRING *reasons; GENERAL_NAMES *CRLissuer; int dp_reasons; } DIST_POINT; ]] asn1_macro.declare_asn1_functions("GENERAL_NAME") asn1_macro.declare_asn1_functions("BASIC_CONSTRAINTS") asn1_macro.declare_asn1_functions("AUTHORITY_INFO_ACCESS") -- OCSP responder and CA asn1_macro.declare_asn1_functions("ACCESS_DESCRIPTION") asn1_macro.declare_asn1_functions("DIST_POINT") -- CRL distribution points PKD½N]Ú þjûûresty/openssl/include/dh.luanu„[µü¤local ffi = require "ffi" local C = ffi.C require "resty.openssl.include.ossl_typ" require "resty.openssl.include.objects" ffi.cdef [[ void DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key); int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key); DH *DH_get_1024_160(void); DH *DH_get_2048_224(void); DH *DH_get_2048_256(void); DH *DH_new_by_nid(int nid); ]]; local dh_groups = { -- per https://tools.ietf.org/html/rfc5114 dh_1024_160 = function() return C.DH_get_1024_160() end, dh_2048_224 = function() return C.DH_get_2048_224() end, dh_2048_256 = function() return C.DH_get_2048_256() end, } local groups = { "ffdhe2048", "ffdhe3072", "ffdhe4096", "ffdhe6144", "ffdhe8192", "modp_2048", "modp_3072", "modp_4096", "modp_6144", "modp_8192", -- following cannot be used with FIPS provider "modp_1536", -- and the RFC5114 ones } for _, group in ipairs(groups) do local nid = C.OBJ_sn2nid(group) if nid ~= 0 then dh_groups[group] = function() return C.DH_new_by_nid(nid) end end end return { dh_groups = dh_groups, } PKD½N]„½˜ús(s("resty/openssl/include/evp/pkey.luanu„[µü¤local ffi = require "ffi" local C = ffi.C require "resty.openssl.include.ossl_typ" require "resty.openssl.include.evp.md" local evp = require("resty.openssl.include.evp") local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X ffi.cdef [[ EVP_PKEY *EVP_PKEY_new(void); void EVP_PKEY_free(EVP_PKEY *pkey); RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey); EC_KEY *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey); DH *EVP_PKEY_get0_DH(EVP_PKEY *pkey); int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); // openssl < 3.0 int EVP_PKEY_base_id(const EVP_PKEY *pkey); int EVP_PKEY_size(const EVP_PKEY *pkey); EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, int cmd, int p1, void *p2); // TODO replace EVP_PKEY_CTX_ctrl with EVP_PKEY_CTX_ctrl_str to reduce // some hardcoded macros // int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, // const char *value); int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, const unsigned char *in, size_t inlen); int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, const unsigned char *in, size_t inlen); int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, const unsigned char *tbs, size_t tbslen); int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, const unsigned char *sig, size_t siglen, const unsigned char *tbs, size_t tbslen); int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, unsigned char *rout, size_t *routlen, const unsigned char *sig, size_t siglen); EVP_PKEY *EVP_PKEY_new_raw_private_key(int type, ENGINE *e, const unsigned char *key, size_t keylen); EVP_PKEY *EVP_PKEY_new_raw_public_key(int type, ENGINE *e, const unsigned char *key, size_t keylen); int EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey, unsigned char *priv, size_t *len); int EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey, unsigned char *pub, size_t *len); int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, EVP_PKEY *pkey); int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, unsigned int siglen, EVP_PKEY *pkey); int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); int EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, size_t *siglen, const unsigned char *tbs, size_t tbslen); int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); int EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret, size_t siglen, const unsigned char *tbs, size_t tbslen); int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, const char *value); ]] local _M = {} if OPENSSL_3X then require "resty.openssl.include.provider" ffi.cdef [[ int EVP_PKEY_CTX_set_rsa_padding(EVP_PKEY_CTX *ctx, int pad_mode); int EVP_PKEY_get_base_id(const EVP_PKEY *pkey); int EVP_PKEY_get_size(const EVP_PKEY *pkey); int EVP_PKEY_CTX_set_ec_paramgen_curve_nid(EVP_PKEY_CTX *ctx, int nid); int EVP_PKEY_CTX_set_ec_param_enc(EVP_PKEY_CTX *ctx, int param_enc); int EVP_PKEY_CTX_set_rsa_keygen_bits(EVP_PKEY_CTX *ctx, int mbits); int EVP_PKEY_CTX_set_rsa_keygen_pubexp(EVP_PKEY_CTX *ctx, BIGNUM *pubexp); int EVP_PKEY_CTX_set_rsa_padding(EVP_PKEY_CTX *ctx, int pad); int EVP_PKEY_CTX_set_rsa_pss_saltlen(EVP_PKEY_CTX *ctx, int len); int EVP_PKEY_CTX_set_rsa_mgf1_md_name(EVP_PKEY_CTX *ctx, const char *mdname, const char *mdprops); int EVP_PKEY_CTX_set_rsa_oaep_md_name(EVP_PKEY_CTX *ctx, const char *mdname, const char *mdprops); int EVP_PKEY_CTX_set_dh_paramgen_prime_len(EVP_PKEY_CTX *ctx, int pbits); const OSSL_PROVIDER *EVP_PKEY_get0_provider(const EVP_PKEY *key); // const OSSL_PROVIDER *EVP_PKEY_CTX_get0_provider(const EVP_PKEY_CTX *ctx); const OSSL_PARAM *EVP_PKEY_settable_params(const EVP_PKEY *pkey); int EVP_PKEY_set_params(EVP_PKEY *pkey, OSSL_PARAM params[]); int EVP_PKEY_get_params(EVP_PKEY *ctx, OSSL_PARAM params[]); const OSSL_PARAM *EVP_PKEY_gettable_params(EVP_PKEY *ctx); EVP_PKEY_CTX *EVP_PKEY_CTX_new_from_name(OSSL_LIB_CTX *libctx, const char *name, const char *propquery); int EVP_PKEY_fromdata_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_fromdata(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey, int selection, OSSL_PARAM params[]); const OSSL_PARAM *EVP_PKEY_fromdata_settable(EVP_PKEY_CTX *ctx, int selection); ]] _M.EVP_PKEY_CTX_set_ec_paramgen_curve_nid = function(pctx, nid) return C.EVP_PKEY_CTX_set_ec_paramgen_curve_nid(pctx, nid) end _M.EVP_PKEY_CTX_set_ec_param_enc = function(pctx, param_enc) return C.EVP_PKEY_CTX_set_ec_param_enc(pctx, param_enc) end _M.EVP_PKEY_CTX_set_dh_paramgen_prime_len = function(pctx, pbits) return C.EVP_PKEY_CTX_set_dh_paramgen_prime_len(pctx, pbits) end _M.EVP_PKEY_CTX_set_rsa_keygen_bits = function(pctx, mbits) return C.EVP_PKEY_CTX_set_rsa_keygen_bits(pctx, mbits) end _M.EVP_PKEY_CTX_set_rsa_keygen_pubexp = function(pctx, pubexp) return C.EVP_PKEY_CTX_set_rsa_keygen_pubexp(pctx, pubexp) end _M.EVP_PKEY_CTX_set_rsa_padding = function(pctx, pad) return C.EVP_PKEY_CTX_set_rsa_padding(pctx, pad) end _M.EVP_PKEY_CTX_set_rsa_pss_saltlen = function(pctx, len) return C.EVP_PKEY_CTX_set_rsa_pss_saltlen(pctx, len) end _M.EVP_PKEY_CTX_set_rsa_mgf1_md_name = function(pctx, name ,props) return C.EVP_PKEY_CTX_set_rsa_mgf1_md_name(pctx, name, props) end _M.EVP_PKEY_CTX_set_rsa_oaep_md_name = function(pctx, name, props) return C.EVP_PKEY_CTX_set_rsa_oaep_md_name(pctx, name, props) end else _M.EVP_PKEY_CTX_set_ec_paramgen_curve_nid = function(pctx, nid) return C.EVP_PKEY_CTX_ctrl(pctx, evp.EVP_PKEY_EC, evp.EVP_PKEY_OP_PARAMGEN + evp.EVP_PKEY_OP_KEYGEN, evp.EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID, nid, nil) end _M.EVP_PKEY_CTX_set_ec_param_enc = function(pctx, param_enc) return C.EVP_PKEY_CTX_ctrl(pctx, evp.EVP_PKEY_EC, evp.EVP_PKEY_OP_PARAMGEN + evp.EVP_PKEY_OP_KEYGEN, evp.EVP_PKEY_CTRL_EC_PARAM_ENC, param_enc, nil) end _M.EVP_PKEY_CTX_set_dh_paramgen_prime_len = function(pctx, pbits) return C.EVP_PKEY_CTX_ctrl(pctx, evp.EVP_PKEY_DH, evp.EVP_PKEY_OP_PARAMGEN, evp.EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN, pbits, nil) end _M.EVP_PKEY_CTX_set_rsa_keygen_bits = function(pctx, mbits) return C.EVP_PKEY_CTX_ctrl(pctx, evp.EVP_PKEY_RSA, evp.EVP_PKEY_OP_KEYGEN, evp.EVP_PKEY_CTRL_RSA_KEYGEN_BITS, mbits, nil) end _M.EVP_PKEY_CTX_set_rsa_keygen_pubexp = function(pctx, pubexp) return C.EVP_PKEY_CTX_ctrl(pctx, evp.EVP_PKEY_RSA, evp.EVP_PKEY_OP_KEYGEN, evp.EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) end _M.EVP_PKEY_CTX_set_rsa_padding = function(pctx, pad) return C.EVP_PKEY_CTX_ctrl(pctx, evp.EVP_PKEY_RSA, -1, evp.EVP_PKEY_CTRL_RSA_PADDING, pad, nil) end _M.EVP_PKEY_CTX_set_rsa_pss_saltlen = function(pctx, len) return C.EVP_PKEY_CTX_ctrl(pctx, evp.EVP_PKEY_RSA, evp.EVP_PKEY_OP_SIGN + evp.EVP_PKEY_OP_VERIFY, evp.EVP_PKEY_CTRL_RSA_PSS_SALTLEN, len, nil) end _M.EVP_PKEY_CTX_set_rsa_mgf1_md_name = function(pctx, name, _) local md = C.EVP_get_digestbyname(name) if not md then return -1, "unknown digest: " .. name end return C.EVP_PKEY_CTX_ctrl(pctx, evp.EVP_PKEY_RSA, evp.EVP_PKEY_OP_SIG + evp.EVP_PKEY_OP_TYPE_CRYPT, evp.EVP_PKEY_CTRL_RSA_MGF1_MD, 0, ffi.cast("void *", md)) end _M.EVP_PKEY_CTX_set_rsa_oaep_md_name = function(pctx, name, _) local md = C.EVP_get_digestbyname(name) if not md then return -1, "unknown digest: " .. name end return C.EVP_PKEY_CTX_ctrl(pctx, evp.EVP_PKEY_RSA, evp.EVP_PKEY_OP_CRYPT, evp.EVP_PKEY_CTRL_RSA_OAEP_MD, 0, ffi.cast("void *", md)) end end return _MPKD½N] ?Çõ| | $resty/openssl/include/evp/cipher.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X ffi.cdef [[ EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); // int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c); void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *c); int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); const EVP_CIPHER *EVP_get_cipherbyname(const char *name); int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); // int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, // int *outl, const unsigned char *in, int inl); // int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, // int *outl, const unsigned char *in, int inl); int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *impl, const unsigned char *key, const unsigned char *iv, int enc); int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, const unsigned char *in, int inl); int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); // list functions typedef void* fake_openssl_cipher_list_fn(const EVP_CIPHER *ciph, const char *from, const char *to, void *x); //void EVP_CIPHER_do_all_sorted(fake_openssl_cipher_list_fn*, void *arg); void EVP_CIPHER_do_all_sorted(void (*fn) (const EVP_CIPHER *ciph, const char *from, const char *to, void *x), void *arg); int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, const unsigned char *salt, const unsigned char *data, int datal, int count, unsigned char *key, unsigned char *iv); ]] if OPENSSL_3X then require "resty.openssl.include.provider" ffi.cdef [[ int EVP_CIPHER_CTX_get_block_size(const EVP_CIPHER_CTX *ctx); int EVP_CIPHER_CTX_get_key_length(const EVP_CIPHER_CTX *ctx); int EVP_CIPHER_CTX_get_iv_length(const EVP_CIPHER_CTX *ctx); int EVP_CIPHER_get_nid(const EVP_CIPHER *cipher); const OSSL_PROVIDER *EVP_CIPHER_get0_provider(const EVP_CIPHER *cipher); EVP_CIPHER *EVP_CIPHER_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, const char *properties); typedef void* fake_openssl_cipher_provided_list_fn(EVP_CIPHER *cipher, void *arg); void EVP_CIPHER_do_all_provided(OSSL_LIB_CTX *libctx, fake_openssl_cipher_provided_list_fn*, void *arg); // int EVP_CIPHER_up_ref(EVP_CIPHER *cipher); // void EVP_CIPHER_free(EVP_CIPHER *cipher); const char *EVP_CIPHER_get0_name(const EVP_CIPHER *cipher); int EVP_CIPHER_CTX_set_params(EVP_CIPHER_CTX *ctx, const OSSL_PARAM params[]); const OSSL_PARAM *EVP_CIPHER_CTX_settable_params(EVP_CIPHER_CTX *ctx); int EVP_CIPHER_CTX_get_params(EVP_CIPHER_CTX *ctx, OSSL_PARAM params[]); const OSSL_PARAM *EVP_CIPHER_CTX_gettable_params(EVP_CIPHER_CTX *ctx); ]] else ffi.cdef [[ int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx); int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx); int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx); int EVP_CIPHER_nid(const EVP_CIPHER *cipher); ]] end PKD½N]ýïÞÞ!resty/openssl/include/evp/mac.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" require "resty.openssl.include.provider" ffi.cdef [[ typedef struct evp_mac_st EVP_MAC; typedef struct evp_mac_ctx_st EVP_MAC_CTX; EVP_MAC_CTX *EVP_MAC_CTX_new(EVP_MAC *mac); void EVP_MAC_CTX_free(EVP_MAC_CTX *ctx); const OSSL_PROVIDER *EVP_MAC_get0_provider(const EVP_MAC *mac); EVP_MAC *EVP_MAC_fetch(OSSL_LIB_CTX *libctx, const char *algorithm, const char *properties); int EVP_MAC_init(EVP_MAC_CTX *ctx, const unsigned char *key, size_t keylen, const OSSL_PARAM params[]); int EVP_MAC_update(EVP_MAC_CTX *ctx, const unsigned char *data, size_t datalen); int EVP_MAC_final(EVP_MAC_CTX *ctx, unsigned char *out, size_t *outl, size_t outsize); size_t EVP_MAC_CTX_get_mac_size(EVP_MAC_CTX *ctx); typedef void* fake_openssl_mac_provided_list_fn(EVP_MAC *mac, void *arg); void EVP_MAC_do_all_provided(OSSL_LIB_CTX *libctx, fake_openssl_mac_provided_list_fn*, void *arg); // int EVP_MAC_up_ref(EVP_MAC *mac); void EVP_MAC_free(EVP_MAC *mac); const char *EVP_MAC_get0_name(const EVP_MAC *mac); int EVP_MAC_CTX_set_params(EVP_MAC_CTX *ctx, const OSSL_PARAM params[]); const OSSL_PARAM *EVP_MAC_CTX_settable_params(EVP_MAC_CTX *ctx); int EVP_MAC_CTX_get_params(EVP_MAC_CTX *ctx, OSSL_PARAM params[]); const OSSL_PARAM *EVP_MAC_CTX_gettable_params(EVP_MAC_CTX *ctx); ]]PKD½N]KÍ2ú‘‘ resty/openssl/include/evp/md.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X ffi.cdef [[ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt); int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); const EVP_MD *EVP_get_digestbyname(const char *name); int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt); int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); const EVP_MD *EVP_md_null(void); EVP_MD_CTX *EVP_MD_CTX_new(void); void EVP_MD_CTX_free(EVP_MD_CTX *ctx); typedef void* fake_openssl_md_list_fn(const EVP_MD *ciph, const char *from, const char *to, void *x); void EVP_MD_do_all_sorted(fake_openssl_md_list_fn*, void *arg); const EVP_MD *EVP_get_digestbyname(const char *name); ]] if OPENSSL_3X then require "resty.openssl.include.provider" ffi.cdef [[ int EVP_MD_get_size(const EVP_MD *md); int EVP_MD_get_type(const EVP_MD *md); const OSSL_PROVIDER *EVP_MD_get0_provider(const EVP_MD *md); EVP_MD *EVP_MD_fetch(OSSL_LIB_CTX *ctx, const char *algorithm, const char *properties); typedef void* fake_openssl_md_provided_list_fn(EVP_MD *md, void *arg); void EVP_MD_do_all_provided(OSSL_LIB_CTX *libctx, fake_openssl_md_provided_list_fn*, void *arg); // int EVP_MD_up_ref(EVP_MD *md); void EVP_MD_free(EVP_MD *md); const char *EVP_MD_get0_name(const EVP_MD *md); int EVP_MD_CTX_set_params(EVP_MD_CTX *ctx, const OSSL_PARAM params[]); const OSSL_PARAM *EVP_MD_CTX_settable_params(EVP_MD_CTX *ctx); int EVP_MD_CTX_get_params(EVP_MD_CTX *ctx, OSSL_PARAM params[]); const OSSL_PARAM *EVP_MD_CTX_gettable_params(EVP_MD_CTX *ctx); ]] else ffi.cdef [[ int EVP_MD_size(const EVP_MD *md); int EVP_MD_type(const EVP_MD *md); ]] end PKD½N]¦åÿ,êê!resty/openssl/include/evp/kdf.luanu„[µü¤local ffi = require "ffi" local ffi_cast = ffi.cast local C = ffi.C require "resty.openssl.include.ossl_typ" require "resty.openssl.include.evp.md" local evp = require("resty.openssl.include.evp") local ctypes = require "resty.openssl.auxiliary.ctypes" local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X local void_ptr = ctypes.void_ptr local _M = { EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND = 0, EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY = 1, EVP_PKEY_HKDEF_MODE_EXPAND_ONLY = 2, } if OPENSSL_3X then require "resty.openssl.include.provider" ffi.cdef [[ const OSSL_PROVIDER *EVP_KDF_get0_provider(const EVP_KDF *kdf); typedef void* fake_openssl_kdf_provided_list_fn(EVP_KDF *kdf, void *arg); void EVP_KDF_do_all_provided(OSSL_LIB_CTX *libctx, fake_openssl_kdf_provided_list_fn*, void *arg); // int EVP_KDF_up_ref(EVP_KDF *kdf); void EVP_KDF_free(EVP_KDF *kdf); const char *EVP_KDF_get0_name(const EVP_KDF *kdf); EVP_KDF *EVP_KDF_fetch(OSSL_LIB_CTX *libctx, const char *algorithm, const char *properties); EVP_KDF_CTX *EVP_KDF_CTX_new(const EVP_KDF *kdf); void EVP_KDF_CTX_free(EVP_KDF_CTX *ctx); void EVP_KDF_CTX_reset(EVP_KDF_CTX *ctx); size_t EVP_KDF_CTX_get_kdf_size(EVP_KDF_CTX *ctx); int EVP_KDF_derive(EVP_KDF_CTX *ctx, unsigned char *key, size_t keylen, const OSSL_PARAM params[]); int EVP_KDF_CTX_get_params(EVP_KDF_CTX *ctx, OSSL_PARAM params[]); int EVP_KDF_CTX_set_params(EVP_KDF_CTX *ctx, const OSSL_PARAM params[]); const OSSL_PARAM *EVP_KDF_CTX_gettable_params(const EVP_KDF_CTX *ctx); const OSSL_PARAM *EVP_KDF_CTX_settable_params(const EVP_KDF_CTX *ctx); int EVP_PKEY_CTX_set_tls1_prf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); int EVP_PKEY_CTX_set1_tls1_prf_secret(EVP_PKEY_CTX *pctx, const unsigned char *sec, int seclen); int EVP_PKEY_CTX_add1_tls1_prf_seed(EVP_PKEY_CTX *pctx, const unsigned char *seed, int seedlen); int EVP_PKEY_CTX_set_hkdf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); int EVP_PKEY_CTX_set1_hkdf_salt(EVP_PKEY_CTX *ctx, const unsigned char *salt, int saltlen); int EVP_PKEY_CTX_set1_hkdf_key(EVP_PKEY_CTX *ctx, const unsigned char *key, int keylen); int EVP_PKEY_CTX_set_hkdf_mode(EVP_PKEY_CTX *ctx, int mode); int EVP_PKEY_CTX_add1_hkdf_info(EVP_PKEY_CTX *ctx, const unsigned char *info, int infolen); ]] _M.EVP_PKEY_CTX_set_tls1_prf_md = function(pctx, md) return C.EVP_PKEY_CTX_set_tls1_prf_md(pctx, md) end _M.EVP_PKEY_CTX_set1_tls1_prf_secret = function(pctx, sec) return C.EVP_PKEY_CTX_set1_tls1_prf_secret(pctx, sec, #sec) end _M.EVP_PKEY_CTX_add1_tls1_prf_seed = function(pctx, seed) return C.EVP_PKEY_CTX_add1_tls1_prf_seed(pctx, seed, #seed) end _M.EVP_PKEY_CTX_set_hkdf_md = function(pctx, md) return C.EVP_PKEY_CTX_set_hkdf_md(pctx, md) end _M.EVP_PKEY_CTX_set1_hkdf_salt = function(pctx, salt) return C.EVP_PKEY_CTX_set1_hkdf_salt(pctx, salt, #salt) end _M.EVP_PKEY_CTX_set1_hkdf_key = function(pctx, key) return C.EVP_PKEY_CTX_set1_hkdf_key(pctx, key, #key) end _M.EVP_PKEY_CTX_set_hkdf_mode = function(pctx, mode) return C.EVP_PKEY_CTX_set_hkdf_mode(pctx, mode) end _M.EVP_PKEY_CTX_add1_hkdf_info = function(pctx, info) return C.EVP_PKEY_CTX_add1_hkdf_info(pctx, info, #info) end else _M.EVP_PKEY_CTX_set_tls1_prf_md = function(pctx, md) return C.EVP_PKEY_CTX_ctrl(pctx, -1, evp.EVP_PKEY_OP_DERIVE, evp.EVP_PKEY_CTRL_TLS_MD, 0, ffi_cast(void_ptr, md)) end _M.EVP_PKEY_CTX_set1_tls1_prf_secret = function(pctx, sec) return C.EVP_PKEY_CTX_ctrl(pctx, -1, evp.EVP_PKEY_OP_DERIVE, evp.EVP_PKEY_CTRL_TLS_SECRET, #sec, ffi_cast(void_ptr, sec)) end _M.EVP_PKEY_CTX_add1_tls1_prf_seed = function(pctx, seed) return C.EVP_PKEY_CTX_ctrl(pctx, -1, evp.EVP_PKEY_OP_DERIVE, evp.EVP_PKEY_CTRL_TLS_SEED, #seed, ffi_cast(void_ptr, seed)) end _M.EVP_PKEY_CTX_set_hkdf_md = function(pctx, md) return C.EVP_PKEY_CTX_ctrl(pctx, -1, evp.EVP_PKEY_OP_DERIVE, evp.EVP_PKEY_CTRL_HKDF_MD, 0, ffi_cast(void_ptr, md)) end _M.EVP_PKEY_CTX_set1_hkdf_salt = function(pctx, salt) return C.EVP_PKEY_CTX_ctrl(pctx, -1, evp.EVP_PKEY_OP_DERIVE, evp.EVP_PKEY_CTRL_HKDF_SALT, #salt, ffi_cast(void_ptr, salt)) end _M.EVP_PKEY_CTX_set1_hkdf_key = function(pctx, key) return C.EVP_PKEY_CTX_ctrl(pctx, -1, evp.EVP_PKEY_OP_DERIVE, evp.EVP_PKEY_CTRL_HKDF_KEY, #key, ffi_cast(void_ptr, key)) end _M.EVP_PKEY_CTX_set_hkdf_mode = function(pctx, mode) return C.EVP_PKEY_CTX_ctrl(pctx, -1, evp.EVP_PKEY_OP_DERIVE, evp.EVP_PKEY_CTRL_HKDF_MODE, mode, nil) end _M.EVP_PKEY_CTX_add1_hkdf_info = function(pctx, info) return C.EVP_PKEY_CTX_ctrl(pctx, -1, evp.EVP_PKEY_OP_DERIVE, evp.EVP_PKEY_CTRL_HKDF_INFO, #info, ffi_cast(void_ptr, info)) end end return _MPKD½N]–-*"  "resty/openssl/include/ossl_typ.luanu„[µü¤local ffi = require "ffi" ffi.cdef( [[ typedef struct rsa_st RSA; typedef struct evp_pkey_st EVP_PKEY; typedef struct bignum_st BIGNUM; typedef struct bn_gencb_st BN_GENCB; typedef struct bignum_ctx BN_CTX; typedef struct bio_st BIO; typedef struct evp_cipher_st EVP_CIPHER; typedef struct evp_md_ctx_st EVP_MD_CTX; typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; typedef struct evp_md_st EVP_MD; typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; typedef struct engine_st ENGINE; typedef struct x509_st X509; typedef struct x509_attributes_st X509_ATTRIBUTE; typedef struct X509_extension_st X509_EXTENSION; typedef struct X509_name_st X509_NAME; typedef struct X509_name_entry_st X509_NAME_ENTRY; typedef struct X509_req_st X509_REQ; typedef struct X509_crl_st X509_CRL; typedef struct x509_store_st X509_STORE; typedef struct x509_store_ctx_st X509_STORE_CTX; typedef struct x509_purpose_st X509_PURPOSE; typedef struct v3_ext_ctx X509V3_CTX; typedef struct asn1_string_st ASN1_INTEGER; typedef struct asn1_string_st ASN1_ENUMERATED; typedef struct asn1_string_st ASN1_BIT_STRING; typedef struct asn1_string_st ASN1_OCTET_STRING; typedef struct asn1_string_st ASN1_PRINTABLESTRING; typedef struct asn1_string_st ASN1_T61STRING; typedef struct asn1_string_st ASN1_IA5STRING; typedef struct asn1_string_st ASN1_GENERALSTRING; typedef struct asn1_string_st ASN1_UNIVERSALSTRING; typedef struct asn1_string_st ASN1_BMPSTRING; typedef struct asn1_string_st ASN1_UTCTIME; typedef struct asn1_string_st ASN1_TIME; typedef struct asn1_string_st ASN1_GENERALIZEDTIME; typedef struct asn1_string_st ASN1_VISIBLESTRING; typedef struct asn1_string_st ASN1_UTF8STRING; typedef struct asn1_string_st ASN1_STRING; typedef struct asn1_object_st ASN1_OBJECT; typedef struct conf_st CONF; typedef struct conf_method_st CONF_METHOD; typedef int ASN1_BOOLEAN; typedef int ASN1_NULL; typedef struct ec_key_st EC_KEY; typedef struct ec_method_st EC_METHOD; typedef struct ec_point_st EC_POINT; typedef struct ec_group_st EC_GROUP; typedef struct rsa_meth_st RSA_METHOD; // typedef struct evp_keymgmt_st EVP_KEYMGMT; // typedef struct crypto_ex_data_st CRYPTO_EX_DATA; // typedef struct bn_mont_ctx_st BN_MONT_CTX; // typedef struct bn_blinding_st BN_BLINDING; // crypto.h // typedef void CRYPTO_RWLOCK; typedef struct hmac_ctx_st HMAC_CTX; typedef struct x509_revoked_st X509_REVOKED; typedef struct dh_st DH; typedef struct PKCS12_st PKCS12; typedef struct ssl_st SSL; typedef struct ssl_ctx_st SSL_CTX; typedef struct evp_kdf_st EVP_KDF; typedef struct evp_kdf_ctx_st EVP_KDF_CTX; typedef struct ossl_lib_ctx_st OSSL_LIB_CTX; typedef struct ECDSA_SIG_st ECDSA_SIG; ]]) PKD½N]Â|ddresty/openssl/include/stack.luanu„[µü¤--[[ The OpenSSL stack library. Note `safestack` is not usable here in ffi because those symbols are eaten after preprocessing. Instead, we should do a Lua land type checking by having a nested field indicating which type of cdata its ctx holds. ]] local ffi = require "ffi" require "resty.openssl.include.ossl_typ" ffi.cdef [[ typedef char *OPENSSL_STRING; typedef struct stack_st OPENSSL_STACK; OPENSSL_STACK *OPENSSL_sk_new_null(void); int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data); void OPENSSL_sk_pop_free(OPENSSL_STACK *st, void (*func) (void *)); int OPENSSL_sk_num(const OPENSSL_STACK *); void *OPENSSL_sk_value(const OPENSSL_STACK *, int); OPENSSL_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *st); void OPENSSL_sk_free(OPENSSL_STACK *); // void *OPENSSL_sk_delete(OPENSSL_STACK *st, int loc); typedef void (*OPENSSL_sk_freefunc)(void *); typedef void *(*OPENSSL_sk_copyfunc)(const void *); OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *, OPENSSL_sk_copyfunc c, OPENSSL_sk_freefunc f); ]] PKD½N]»üJL}}!resty/openssl/include/objects.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" ffi.cdef [[ int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); int OBJ_txt2nid(const char *s); const char *OBJ_nid2sn(int n); int OBJ_ln2nid(const char *s); int OBJ_sn2nid(const char *s); const char *OBJ_nid2ln(int n); const char *OBJ_nid2sn(int n); int OBJ_obj2nid(const ASN1_OBJECT *o); const ASN1_OBJECT *OBJ_nid2obj(int n); int OBJ_create(const char *oid, const char *sn, const char *ln); int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); ]] PKE½N]ôCŒresty/openssl/include/err.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X ffi.cdef [[ unsigned long ERR_peek_error(void); unsigned long ERR_peek_last_error(void); void ERR_clear_error(void); void ERR_error_string_n(unsigned long e, char *buf, size_t len); const char *ERR_lib_error_string(unsigned long e); const char *ERR_reason_error_string(unsigned long e); ]] if OPENSSL_3X then ffi.cdef [[ unsigned long ERR_get_error_all(const char **file, int *line, const char **func, const char **data, int *flags); unsigned long ERR_peek_last_error_all(const char **file, int *line, const char **func, const char **data, int *flags); ]] else ffi.cdef [[ unsigned long ERR_get_error_line(const char **file, int *line); unsigned long ERR_peek_last_error_line(const char **file, int *line); ]] endPKE½N]tUùllresty/openssl/include/rsa.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" ffi.cdef [[ RSA *RSA_new(void); void RSA_free(RSA *r); void RSA_get0_key(const RSA *r, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d); void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q); void RSA_get0_crt_params(const RSA *r, const BIGNUM **dmp1, const BIGNUM **dmq1, const BIGNUM **iqmp); int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d); int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q); int RSA_set0_crt_params(RSA *r,BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp); struct rsa_st; ]] return { paddings = { RSA_PKCS1_PADDING = 1, RSA_SSLV23_PADDING = 2, RSA_NO_PADDING = 3, RSA_PKCS1_OAEP_PADDING = 4, RSA_X931_PADDING = 5, RSA_PKCS1_PSS_PADDING = 6, }, } PKE½N]¯%7_ÕÕ resty/openssl/include/crypto.luanu„[µü¤local ffi = require "ffi" local C = ffi.C ffi.cdef [[ int FIPS_mode(void); int FIPS_mode_set(int ONOFF); void CRYPTO_free(void *ptr, const char *file, int line); int CRYPTO_memcmp(const void *a, const void *b, size_t len); ]] local OPENSSL_free = function(ptr) -- file and line is for debuggin only, since we can't know the c file info -- the macro is expanded, just ignore this C.CRYPTO_free(ptr, "", 0) end return { OPENSSL_free = OPENSSL_free, } PKF½N]¤6p"resty/openssl/include/provider.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" require "resty.openssl.include.param" ffi.cdef [[ typedef struct ossl_provider_st OSSL_PROVIDER; typedef struct ossl_lib_ctx_st OSSL_LIB_CTX; void OSSL_PROVIDER_set_default_search_path(OSSL_LIB_CTX *libctx, const char *path); OSSL_PROVIDER *OSSL_PROVIDER_load(OSSL_LIB_CTX *libctx, const char *name); OSSL_PROVIDER *OSSL_PROVIDER_try_load(OSSL_LIB_CTX *libctx, const char *name); int OSSL_PROVIDER_unload(OSSL_PROVIDER *prov); int OSSL_PROVIDER_available(OSSL_LIB_CTX *libctx, const char *name); const OSSL_PARAM *OSSL_PROVIDER_gettable_params(OSSL_PROVIDER *prov); int OSSL_PROVIDER_get_params(OSSL_PROVIDER *prov, OSSL_PARAM params[]); // int OSSL_PROVIDER_add_builtin(OSSL_LIB_CTX *libctx, const char *name, // ossl_provider_init_fn *init_fn); const char *OSSL_PROVIDER_get0_name(const OSSL_PROVIDER *prov); int OSSL_PROVIDER_self_test(const OSSL_PROVIDER *prov); ]] PKF½N]*(EJJ"resty/openssl/include/x509_vfy.luanu„[µü¤local ffi = require "ffi" local C = ffi.C require "resty.openssl.include.ossl_typ" require "resty.openssl.include.stack" local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X ffi.cdef [[ X509_STORE *X509_STORE_new(void); void X509_STORE_free(X509_STORE *v); // int X509_STORE_lock(X509_STORE *ctx); // int X509_STORE_unlock(X509_STORE *ctx); // int X509_STORE_up_ref(X509_STORE *v); // STACK_OF(X509_OBJECT) // OPENSSL_STACK *X509_STORE_get0_objects(X509_STORE *v); int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); int X509_STORE_load_locations(X509_STORE *ctx, const char *file, const char *dir); int X509_STORE_set_default_paths(X509_STORE *ctx); int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); int X509_STORE_set_depth(X509_STORE *store, int depth); int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); X509_STORE_CTX *X509_STORE_CTX_new(void); void X509_STORE_CTX_free(X509_STORE_CTX *ctx); // STACK_OF(X509) int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509, OPENSSL_STACK *chain); int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); // int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); // STACK_OF(X509_CRL) // void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, OPENSSL_STACK *sk); int X509_PURPOSE_get_by_sname(char *sname); X509_PURPOSE *X509_PURPOSE_get0(int idx); int X509_PURPOSE_get_id(const X509_PURPOSE *xp); // STACK_OF(X509) OPENSSL_STACK *X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx); typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx); // STACK_OF(X509) void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *ctx, OPENSSL_STACK *sk); typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx); X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); // STACK_OF(X509) void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *ctx, OPENSSL_STACK *sk); ]] local _M = { verify_flags = { X509_V_FLAG_CB_ISSUER_CHECK = 0x0, -- Deprecated X509_V_FLAG_USE_CHECK_TIME = 0x2, X509_V_FLAG_CRL_CHECK = 0x4, X509_V_FLAG_CRL_CHECK_ALL = 0x8, X509_V_FLAG_IGNORE_CRITICAL = 0x10, X509_V_FLAG_X509_STRICT = 0x20, X509_V_FLAG_ALLOW_PROXY_CERTS = 0x40, X509_V_FLAG_POLICY_CHECK = 0x80, X509_V_FLAG_EXPLICIT_POLICY = 0x100, X509_V_FLAG_INHIBIT_ANY = 0x200, X509_V_FLAG_INHIBIT_MAP = 0x400, X509_V_FLAG_NOTIFY_POLICY = 0x800, X509_V_FLAG_EXTENDED_CRL_SUPPORT = 0x1000, X509_V_FLAG_USE_DELTAS = 0x2000, X509_V_FLAG_CHECK_SS_SIGNATURE = 0x4000, X509_V_FLAG_TRUSTED_FIRST = 0x8000, X509_V_FLAG_SUITEB_128_LOS_ONLY = 0x10000, X509_V_FLAG_SUITEB_192_LOS = 0x20000, X509_V_FLAG_SUITEB_128_LOS = 0x30000, X509_V_FLAG_PARTIAL_CHAIN = 0x80000, X509_V_FLAG_NO_ALT_CHAINS = 0x100000, X509_V_FLAG_NO_CHECK_TIME = 0x200000, }, } if OPENSSL_3X then ffi.cdef [[ X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX *libctx, const char *propq); // int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file, // OSSL_LIB_CTX *libctx, const char *propq); // int X509_STORE_load_store_ex(X509_STORE *ctx, const char *uri, // OSSL_LIB_CTX *libctx, const char *propq); int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file, const char *dir, OSSL_LIB_CTX *libctx, const char *propq); ]] _M.X509_STORE_set_default_paths = function(...) return C.X509_STORE_set_default_paths_ex(...) end _M.X509_STORE_load_locations = function(...) return C.X509_STORE_load_locations_ex(...) end else _M.X509_STORE_set_default_paths = function(s) return C.X509_STORE_set_default_paths(s) end _M.X509_STORE_load_locations = function(s, file, dir) return C.X509_STORE_load_locations(s, file, dir) end end return _M PKF½N]’òa=  resty/openssl/include/rand.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X if OPENSSL_3X then ffi.cdef [[ int RAND_bytes_ex(OSSL_LIB_CTX *ctx, unsigned char *buf, size_t num, unsigned int strength); int RAND_priv_bytes_ex(OSSL_LIB_CTX *ctx, unsigned char *buf, size_t num, unsigned int strength); ]] else ffi.cdef [[ int RAND_bytes(unsigned char *buf, int num); int RAND_priv_bytes(unsigned char *buf, int num); ]] end PKF½N]ð¬Ò��resty/openssl/include/bio.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" ffi.cdef [[ typedef struct bio_method_st BIO_METHOD; long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); BIO *BIO_new_mem_buf(const void *buf, int len); BIO *BIO_new(const BIO_METHOD *type); int BIO_free(BIO *a); const BIO_METHOD *BIO_s_mem(void); // int BIO_read(BIO *b, void *data, int dlen); ]] PKF½N]‹ ¦?ÐÐresty/openssl/include/ec.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" ffi.cdef [[ /** Enum for the point conversion form as defined in X9.62 (ECDSA) * for the encoding of a elliptic curve point (x,y) */ typedef enum { /** the point is encoded as z||x, where the octet z specifies * which solution of the quadratic equation y is */ POINT_CONVERSION_COMPRESSED = 2, /** the point is encoded as z||x||y, where z is the octet 0x04 */ POINT_CONVERSION_UNCOMPRESSED = 4, /** the point is encoded as z||x||y, where the octet z specifies * which solution of the quadratic equation y is */ POINT_CONVERSION_HYBRID = 6 } point_conversion_form_t; EC_KEY *EC_KEY_new(void); void EC_KEY_free(EC_KEY *key); EC_GROUP *EC_GROUP_new_by_curve_name(int nid); void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); void EC_GROUP_set_point_conversion_form(EC_GROUP *group, point_conversion_form_t form); // void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); int EC_GROUP_get_curve_name(const EC_GROUP *group); void EC_GROUP_free(EC_GROUP *group); BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, point_conversion_form_t form, BIGNUM *, BN_CTX *); int EC_POINT_get_affine_coordinates(const EC_GROUP *group, const EC_POINT *p, BIGNUM *x, BIGNUM *y, BN_CTX *ctx); EC_POINT *EC_POINT_bn2point(const EC_GROUP *group, const BIGNUM *bn, EC_POINT *p, BN_CTX *ctx); void EC_POINT_free(EC_POINT *point); point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, BIGNUM *y); const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); ]] PKF½N]äƒ\ÀÀresty/openssl/include/asn1.luanu„[µü¤local ffi = require "ffi" local C = ffi.C require "resty.openssl.include.ossl_typ" local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X ffi.cdef [[ typedef struct ASN1_VALUE_st ASN1_VALUE; typedef struct asn1_type_st ASN1_TYPE; ASN1_IA5STRING *ASN1_IA5STRING_new(); int ASN1_STRING_type(const ASN1_STRING *x); ASN1_STRING *ASN1_STRING_type_new(int type); int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); typedef long time_t; ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); long ASN1_INTEGER_get(const ASN1_INTEGER *a); int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); int ASN1_STRING_length(const ASN1_STRING *x); ]] local function declare_asn1_functions(typ, has_ex) local t = {} for i=1, 7 do t[i] = typ end ffi.cdef(string.format([[ %s *%s_new(void); void %s_free(%s *a); %s *%s_dup(%s *a); ]], unpack(t))) if OPENSSL_3X and has_ex then ffi.cdef(string.format([[ %s *%s_new_ex(OSSL_LIB_CTX *libctx, const char *propq); ]], typ, typ)) end end declare_asn1_functions("ASN1_INTEGER") declare_asn1_functions("ASN1_OBJECT") declare_asn1_functions("ASN1_STRING") declare_asn1_functions("ASN1_ENUMERATED") ffi.cdef[[ const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x); ]] local ASN1_STRING_get0_data = C.ASN1_STRING_get0_data return { ASN1_STRING_get0_data = ASN1_STRING_get0_data, declare_asn1_functions = declare_asn1_functions, has_new_ex = true, } PKF½N]Sl$bÌ Ì resty/openssl/include/param.luanu„[µü¤local ffi = require "ffi" require "resty.openssl.include.ossl_typ" ffi.cdef [[ typedef struct ossl_param_st { const char *key; /* the name of the parameter */ unsigned int data_type; /* declare what kind of content is in buffer */ void *data; /* value being passed in or out */ size_t data_size; /* data size */ size_t return_size; /* returned content size */ } OSSL_PARAM; OSSL_PARAM OSSL_PARAM_construct_int(const char *key, int *buf); OSSL_PARAM OSSL_PARAM_construct_uint(const char *key, unsigned int *buf); OSSL_PARAM OSSL_PARAM_construct_BN(const char *key, unsigned char *buf, size_t bsize); // OSSL_PARAM OSSL_PARAM_construct_double(const char *key, double *buf); OSSL_PARAM OSSL_PARAM_construct_utf8_string(const char *key, char *buf, size_t bsize); OSSL_PARAM OSSL_PARAM_construct_octet_string(const char *key, void *buf, size_t bsize); OSSL_PARAM OSSL_PARAM_construct_utf8_ptr(const char *key, char **buf, size_t bsize); OSSL_PARAM OSSL_PARAM_construct_octet_ptr(const char *key, void **buf, size_t bsize); OSSL_PARAM OSSL_PARAM_construct_end(void); int OSSL_PARAM_get_int32(const OSSL_PARAM *p, int32_t *val); int OSSL_PARAM_get_uint32(const OSSL_PARAM *p, uint32_t *val); int OSSL_PARAM_get_int64(const OSSL_PARAM *p, int64_t *val); int OSSL_PARAM_get_uint64(const OSSL_PARAM *p, uint64_t *val); // int OSSL_PARAM_get_size_t(const OSSL_PARAM *p, size_t *val); // int OSSL_PARAM_get_time_t(const OSSL_PARAM *p, time_t *val); int OSSL_PARAM_set_int(OSSL_PARAM *p, int val); int OSSL_PARAM_set_uint(OSSL_PARAM *p, unsigned int val); int OSSL_PARAM_set_long(OSSL_PARAM *p, long int val); int OSSL_PARAM_set_ulong(OSSL_PARAM *p, unsigned long int val); int OSSL_PARAM_set_int32(OSSL_PARAM *p, int32_t val); int OSSL_PARAM_set_uint32(OSSL_PARAM *p, uint32_t val); int OSSL_PARAM_set_int64(OSSL_PARAM *p, int64_t val); int OSSL_PARAM_set_uint64(OSSL_PARAM *p, uint64_t val); // int OSSL_PARAM_set_size_t(OSSL_PARAM *p, size_t val); // int OSSL_PARAM_set_time_t(OSSL_PARAM *p, time_t val); int OSSL_PARAM_get_double(const OSSL_PARAM *p, double *val); int OSSL_PARAM_set_double(OSSL_PARAM *p, double val); int OSSL_PARAM_get_BN(const OSSL_PARAM *p, BIGNUM **val); int OSSL_PARAM_set_BN(OSSL_PARAM *p, const BIGNUM *val); int OSSL_PARAM_get_utf8_string(const OSSL_PARAM *p, char **val, size_t max_len); int OSSL_PARAM_set_utf8_string(OSSL_PARAM *p, const char *val); int OSSL_PARAM_get_octet_string(const OSSL_PARAM *p, void **val, size_t max_len, size_t *used_len); int OSSL_PARAM_set_octet_string(OSSL_PARAM *p, const void *val, size_t len); int OSSL_PARAM_get_utf8_ptr(const OSSL_PARAM *p, const char **val); int OSSL_PARAM_set_utf8_ptr(OSSL_PARAM *p, const char *val); int OSSL_PARAM_get_octet_ptr(const OSSL_PARAM *p, const void **val, size_t *used_len); int OSSL_PARAM_set_octet_ptr(OSSL_PARAM *p, const void *val, size_t used_len); int OSSL_PARAM_get_utf8_string_ptr(const OSSL_PARAM *p, const char **val); int OSSL_PARAM_get_octet_string_ptr(const OSSL_PARAM *p, const void **val, size_t *used_len); ]] PKF½N]]z×WWresty/openssl/rand.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_str = ffi.string require "resty.openssl.include.rand" local ctx_lib = require "resty.openssl.ctx" local ctypes = require "resty.openssl.auxiliary.ctypes" local format_error = require("resty.openssl.err").format_error local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X local buf local buf_size = 0 local function bytes(length, private, strength) if type(length) ~= "number" then return nil, "rand.bytes: expect a number at #1" elseif strength and type(strength) ~= "number" then return nil, "rand.bytes: expect a number at #3" end -- generally we don't need manually reseed rng -- https://www.openssl.org/docs/man1.1.1/man3/RAND_seed.html -- initialize or resize buffer if not buf or buf_size < length then buf = ctypes.uchar_array(length) buf_size = length end local code if OPENSSL_3X then if private then code = C.RAND_priv_bytes_ex(ctx_lib.get_libctx(), buf, length, strength or 0) else code = C.RAND_bytes_ex(ctx_lib.get_libctx(), buf, length, strength or 0) end else if private then code = C.RAND_priv_bytes(buf, length) else code = C.RAND_bytes(buf, length) end end if code ~= 1 then return nil, format_error("rand.bytes", code) end return ffi_str(buf, length) end return { bytes = bytes, } PKG½N]gdP–qqresty/openssl/ssl_ctx.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local new_tab = table.new local char = string.char local concat = table.concat require "resty.openssl.include.ssl" local nginx_aux = require("resty.openssl.auxiliary.nginx") local _M = {} local mt = {__index = _M} local ssl_ctx_ptr_ct = ffi.typeof('SSL_CTX*') function _M.from_request() -- don't GC this local ctx, err = nginx_aux.get_req_ssl_ctx() if err ~= nil then return nil, err end return setmetatable({ ctx = ctx, -- the cdata is not manage by Lua, don't GC on Lua side _managed = false, -- this is the Server SSL session _server = true, }, mt) end function _M.from_socket(socket) if not socket then return nil, "expect a ngx.socket.tcp instance at #1" end -- don't GC this local ctx, err = nginx_aux.get_socket_ssl_ctx(socket) if err ~= nil then return nil, err end return setmetatable({ ctx = ctx, -- the cdata is not manage by Lua, don't GC on Lua side _managed = false, -- this is the client SSL session _server = false, }, mt) end function _M.istype(l) return l and l.ctx and ffi.istype(ssl_ctx_ptr_ct, l.ctx) end local function encode_alpn_wire(alpns) local ret = new_tab(#alpns*2, 0) for i, alpn in ipairs(alpns) do ret[i*2-1] = char(#alpn) ret[i*2] = alpn end return concat(ret, "") end function _M:set_alpns(alpns) if not self._server then return nil, "ssl_ctx:set_alpns is only supported on server side" end alpns = encode_alpn_wire(alpns) if self._alpn_select_cb then self._alpn_select_cb:free() end local alpn_select_cb = ffi.cast("SSL_CTX_alpn_select_cb_func", function(_, out, outlen, client, client_len) local code = ffi.C.SSL_select_next_proto( ffi.cast("unsigned char **", out), outlen, alpns, #alpns, client, client_len) if code ~= 1 then -- OPENSSL_NPN_NEGOTIATED return 3 -- SSL_TLSEXT_ERR_NOACK end return 0 -- SSL_TLSEXT_ERR_OK end) C.SSL_CTX_set_alpn_select_cb(self.ctx, alpn_select_cb, nil) -- store the reference to avoid it being GC'ed self._alpn_select_cb = alpn_select_cb return true end return _MPKG½N]MÔˆ**resty/openssl/ec.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc require "resty.openssl.include.ec" local bn_lib = require "resty.openssl.bn" local objects_lib = require "resty.openssl.objects" local format_error = require("resty.openssl.err").format_error local _M = {} _M.params = {"group", "public", "private", "x", "y"} local empty_table = {} function _M.get_parameters(ec_key_st) return setmetatable(empty_table, { __index = function(_, k) local group = C.EC_KEY_get0_group(ec_key_st) local bn if k == 'group' then local nid = C.EC_GROUP_get_curve_name(group) if nid == 0 then return nil, "ec.get_parameters: EC_GROUP_get_curve_name() failed" end return nid elseif k == 'public' or k == "pub_key" then local pub_point = C.EC_KEY_get0_public_key(ec_key_st) if pub_point == nil then return nil, format_error("ec.get_parameters: EC_KEY_get0_public_key") end local point_form = C.EC_KEY_get_conv_form(ec_key_st) if point_form == nil then return nil, format_error("ec.get_parameters: EC_KEY_get_conv_form") end bn = C.EC_POINT_point2bn(group, pub_point, point_form, nil, bn_lib.bn_ctx_tmp) if bn == nil then return nil, format_error("ec.get_parameters: EC_POINT_point2bn") end ffi_gc(bn, C.BN_free) elseif k == 'private' or k == "priv_key" then -- get0, don't GC bn = C.EC_KEY_get0_private_key(ec_key_st) elseif k == 'x' or k == 'y' then local pub_point = C.EC_KEY_get0_public_key(ec_key_st) if pub_point == nil then return nil, format_error("ec.get_parameters: EC_KEY_get0_public_key") end bn = C.BN_new() if bn == nil then return nil, "ec.get_parameters: BN_new() failed" end ffi_gc(bn, C.BN_free) local code if k == 'x' then code = C.EC_POINT_get_affine_coordinates(group, pub_point, bn, nil, bn_lib.bn_ctx_tmp) else code = C.EC_POINT_get_affine_coordinates(group, pub_point, nil, bn, bn_lib.bn_ctx_tmp) end if code ~= 1 then return nil, format_error("ec.get_parameters: EC_POINT_get_affine_coordinates") end else return nil, "ec.get_parameters: unknown parameter \"" .. k .. "\" for EC key" end if bn == nil then return nil end return bn_lib.dup(bn) end }), nil end function _M.set_parameters(ec_key_st, opts) for _, k in ipairs(_M.params) do if k ~= "group" then if opts[k] and not bn_lib.istype(opts[k]) then return nil, "expect parameter \"" .. k .. "\" to be a bn instance" end end end local group_nid = opts["group"] local group if group_nid then local nid, err = objects_lib.txtnid2nid(group_nid) if err then return nil, "ec.set_parameters: cannot use parameter \"group\":" .. err end group = C.EC_GROUP_new_by_curve_name(nid) if group == nil then return nil, "ec.set_parameters: EC_GROUP_new_by_curve_name() failed" end ffi_gc(group, C.EC_GROUP_free) -- # define OPENSSL_EC_NAMED_CURVE 0x001 C.EC_GROUP_set_asn1_flag(group, 1) C.EC_GROUP_set_point_conversion_form(group, C.POINT_CONVERSION_UNCOMPRESSED) if C.EC_KEY_set_group(ec_key_st, group) ~= 1 then return nil, format_error("ec.set_parameters: EC_KEY_set_group") end end local x = opts["x"] local y = opts["y"] local pub = opts["public"] if (x and not y) or (y and not x) then return nil, "ec.set_parameters: \"x\" and \"y\" parameter must be defined at same time or both undefined" end if x and y then if pub then return nil, "ec.set_parameters: cannot set \"x\" and \"y\" with \"public\" at same time to set public key" end -- double check if we have set group already if group == nil then group = C.EC_KEY_get0_group(ec_key_st) if group == nil then return nil, "ec.set_parameters: cannot set public key without setting \"group\"" end end if C.EC_KEY_set_public_key_affine_coordinates(ec_key_st, x.ctx, y.ctx) ~= 1 then return nil, format_error("ec.set_parameters: EC_KEY_set_public_key_affine_coordinates") end end if pub then if group == nil then group = C.EC_KEY_get0_group(ec_key_st) if group == nil then return nil, "ec.set_parameters: cannot set public key without setting \"group\"" end end local point = C.EC_POINT_bn2point(group, pub.ctx, nil, bn_lib.bn_ctx_tmp) if point == nil then return nil, format_error("ec.set_parameters: EC_POINT_bn2point") end ffi_gc(point, C.EC_POINT_free) if C.EC_KEY_set_public_key(ec_key_st, point) ~= 1 then return nil, format_error("ec.set_parameters: EC_KEY_set_public_key") end end local priv = opts["private"] if priv then -- openssl duplicates it inside if C.EC_KEY_set_private_key(ec_key_st, priv.ctx) ~= 1 then return nil, format_error("ec.set_parameters: EC_KEY_set_private_key") end end return true end return _M PKG½N]Ú~å  resty/openssl/asn1.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_str = ffi.string local floor = math.floor local asn1_macro = require("resty.openssl.include.asn1") -- https://github.com/wahern/luaossl/blob/master/src/openssl.c local function isleap(year) return (year % 4) == 0 and ((year % 100) > 0 or (year % 400) == 0) end local past = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 } local function yday(year, mon, mday) local d = past[mon] + mday - 1 if mon > 2 and isleap(year) then d = d + 1 end return d end local function leaps(year) return floor(year / 400) + floor(year / 4) - floor(year / 100) end local function asn1_to_unix(asn1) if asn1 == nil then return nil, "except an ASN1 instance at #1, got nil" end local s = asn1_macro.ASN1_STRING_get0_data(asn1) s = ffi_str(s) -- V_ASN1_UTCTIME 190303223958Z -- V_ASN1_GENERALIZEDTIME 21190822162753Z local yyoffset = 2 local year -- # define V_ASN1_GENERALIZEDTIME 24 if C.ASN1_STRING_type(asn1) == 24 then yyoffset = 4 year = tonumber(s:sub(1, yyoffset)) else year = tonumber(s:sub(1, yyoffset)) year = year + (year < 50 and 2000 or 1900) end local month = tonumber(s:sub(yyoffset+1, yyoffset+2)) if month > 12 or month < 1 then return nil, "asn1.asn1_to_unix: bad format " .. s end local day = tonumber(s:sub(yyoffset+3, yyoffset+4)) if day > 31 or day < 1 then return nil, "asn1.asn1_to_unix: bad format " .. s end local hour = tonumber(s:sub(yyoffset+5, yyoffset+6)) if hour > 23 or hour < 0 then return nil, "asn1.asn1_to_unix: bad format " .. s end local minute = tonumber(s:sub(yyoffset+7, yyoffset+8)) if minute > 59 or hour < 0 then return nil, "asn1.asn1_to_unix: bad format " .. s end local second = tonumber(s:sub(yyoffset+9, yyoffset+10)) if second > 59 or second < 0 then return nil, "asn1.asn1_to_unix: bad format " .. s end local tm tm = (year - 1970) * 365 tm = tm + leaps(year - 1) - leaps(1969) tm = (tm + yday(year, month, day)) * 24 tm = (tm + hour) * 60 tm = (tm + minute) * 60 tm = tm + second -- offset? local sign = s:sub(yyoffset+11, yyoffset+11) if sign == "+" or sign == "-" then local sgn = sign == "+" and 1 or -1 local hh = tonumber(s:sub(yyoffset+12, yyoffset+13) or 'no') local mm = tonumber(s:sub(yyoffset+14, yyoffset+15) or 'no') if not hh or not mm then return nil, "asn1.asn1_to_unix: bad format " .. s end tm = tm + sgn * (hh * 3600 + mm * 60) end return tm end return { asn1_to_unix = asn1_to_unix, } PKG½N]Æyêôresty/openssl/ecx.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_str = ffi.string require "resty.openssl.include.ec" require "resty.openssl.include.evp" local ctypes = require "resty.openssl.auxiliary.ctypes" local format_error = require("resty.openssl.err").format_error local _M = {} _M.params = {"public", "private"} local empty_table = {} local MAX_ECX_KEY_SIZE = 114 -- ed448 uses 114 bytes function _M.get_parameters(evp_pkey_st) return setmetatable(empty_table, { __index = function(_, k) local buf = ctypes.uchar_array(MAX_ECX_KEY_SIZE) local length = ctypes.ptr_of_size_t(MAX_ECX_KEY_SIZE) if k == 'public' or k == "pub_key" then if C.EVP_PKEY_get_raw_public_key(evp_pkey_st, buf, length) ~= 1 then error(format_error("ecx.get_parameters: EVP_PKEY_get_raw_private_key")) end elseif k == 'private' or k == "priv ~=_key" then if C.EVP_PKEY_get_raw_private_key(evp_pkey_st, buf, length) ~= 1 then return nil, format_error("ecx.get_parameters: EVP_PKEY_get_raw_private_key") end else return nil, "ecx.get_parameters: unknown parameter \"" .. k .. "\" for EC key" end return ffi_str(buf, length[0]) end }), nil end function _M.set_parameters(key_type, evp_pkey_st, opts) -- for ecx keys we always create a new EVP_PKEY and release the old one -- Note: we allow to pass a nil as evp_pkey_st to create a new EVP_PKEY local key if opts.private then local priv = opts.private key = C.EVP_PKEY_new_raw_private_key(key_type, nil, priv, #priv) if key == nil then return nil, format_error("ecx.set_parameters: EVP_PKEY_new_raw_private_key") end elseif opts.public then local pub = opts.public key = C.EVP_PKEY_new_raw_public_key(key_type, nil, pub, #pub) if key == nil then return nil, format_error("ecx.set_parameters: EVP_PKEY_new_raw_public_key") end else return nil, "no parameter is specified" end if evp_pkey_st ~= nil then C.EVP_PKEY_free(evp_pkey_st) end return key end return _M PKH½N]Ûl3W³ ³ resty/openssl/digest.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_str = ffi.string require "resty.openssl.include.evp.md" local ctypes = require "resty.openssl.auxiliary.ctypes" local ctx_lib = require "resty.openssl.ctx" local format_error = require("resty.openssl.err").format_error local OPENSSL_3X = require("resty.openssl.version").OPENSSL_3X local _M = {} local mt = {__index = _M} local md_ctx_ptr_ct = ffi.typeof('EVP_MD_CTX*') function _M.new(typ, properties) local ctx = C.EVP_MD_CTX_new() if ctx == nil then return nil, "digest.new: failed to create EVP_MD_CTX" end ffi_gc(ctx, C.EVP_MD_CTX_free) local err_new = string.format("digest.new: invalid digest type \"%s\"", typ) local algo if typ == "null" then algo = C.EVP_md_null() else if OPENSSL_3X then algo = C.EVP_MD_fetch(ctx_lib.get_libctx(), typ or 'sha1', properties) ffi_gc(algo, C.EVP_MD_free) else algo = C.EVP_get_digestbyname(typ or 'sha1') end if algo == nil then return nil, format_error(err_new) end end local code = C.EVP_DigestInit_ex(ctx, algo, nil) if code ~= 1 then return nil, format_error(err_new) end return setmetatable({ ctx = ctx, algo = algo, buf = ctypes.uchar_array(OPENSSL_3X and C.EVP_MD_get_size(algo) or C.EVP_MD_size(algo)), }, mt), nil end function _M.istype(l) return l and l.ctx and ffi.istype(md_ctx_ptr_ct, l.ctx) end function _M:get_provider_name() if not OPENSSL_3X then return false, "digest:get_provider_name is not supported" end local p = C.EVP_MD_get0_provider(self.algo) if p == nil then return nil end return ffi_str(C.OSSL_PROVIDER_get0_name(p)) end if OPENSSL_3X then local param_lib = require "resty.openssl.param" _M.settable_params, _M.set_params, _M.gettable_params, _M.get_param = param_lib.get_params_func("EVP_MD_CTX") end function _M:update(...) for _, s in ipairs({...}) do if C.EVP_DigestUpdate(self.ctx, s, #s) ~= 1 then return false, format_error("digest:update") end end return true, nil end local result_length = ctypes.ptr_of_uint() function _M:final(s) if s then if C.EVP_DigestUpdate(self.ctx, s, #s) ~= 1 then return false, format_error("digest:final") end end -- no return value of EVP_DigestFinal_ex C.EVP_DigestFinal_ex(self.ctx, self.buf, result_length) if result_length[0] == nil or result_length[0] <= 0 then return nil, format_error("digest:final: EVP_DigestFinal_ex") end return ffi_str(self.buf, result_length[0]) end function _M:reset() local code = C.EVP_DigestInit_ex(self.ctx, self.algo, nil) if code ~= 1 then return false, format_error("digest:reset") end return true end return _M PKH½N]¦fÅê±+±+resty/openssl/param.luanu„[µü¤local ffi = require "ffi" local C = ffi.C local ffi_new = ffi.new local ffi_str = ffi.string local ffi_cast = ffi.cast require "resty.openssl.include.param" local format_error = require("resty.openssl.err").format_error local bn_lib = require("resty.openssl.bn") local null = require("resty.openssl.auxiliary.ctypes").null local nkeys = require "resty.openssl.auxiliary.compat".nkeys local OSSL_PARAM_INTEGER = 1 local OSSL_PARAM_UNSIGNED_INTEGER = 2 local OSSL_PARAM_REAL = 3 local OSSL_PARAM_UTF8_STRING = 4 local OSSL_PARAM_OCTET_STRING = 5 local OSSL_PARAM_UTF8_PTR = 6 local OSSL_PARAM_OCTET_PTR = 7 local alter_type_key = {} local buf_param_key = {} local buf_anchor_key = {} local function construct(buf_t, length, types_map, types_size) if not length then length = nkeys(buf_t) end local params = ffi_new("OSSL_PARAM[?]", length + 1) local i = 0 local buf_param, buf_anchored for key, value in pairs(buf_t) do if key == buf_anchor_key then goto continue end local typ = types_map[key] if not typ then return nil, "param:construct: unknown key \"" .. key .. "\"" end local param, buf, size if value == null then -- out value = nil size = types_size and types_size[key] or 100 if typ == OSSL_PARAM_UTF8_STRING or typ == OSSL_PARAM_OCTET_STRING then buf = ffi_new("char[?]", size) end else local string_input = type(value) == "string" -- binary input is also accepted as string local integer_input = type(value) == "number" or string_input if (not string_input and typ >= OSSL_PARAM_UTF8_STRING) or (not integer_input and typ <= OSSL_PARAM_UNSIGNED_INTEGER) then local alter_typ = types_map[alter_type_key] and types_map[alter_type_key][key] if alter_typ and ((not string_input and alter_typ <= OSSL_PARAM_UNSIGNED_INTEGER) or (not integer_input and alter_typ >= OSSL_PARAM_UTF8_STRING)) then typ = alter_typ else return nil, "param:construct: key \"" .. key .. "\" can't be a " .. type(value) end end end if typ == "bn" then -- out only buf = ffi_new("char[?]", size) param = C.OSSL_PARAM_construct_BN(key, buf, size) buf_param = buf_param or {} buf_param[key] = param elseif typ == OSSL_PARAM_INTEGER then if value and type(value) == "string" then -- in only local bin = ffi_cast("char *", value) param = C.OSSL_PARAM_construct_BN(key, bin, #value) else buf = value and ffi_new("int[1]", value) or ffi_new("int[1]") param = C.OSSL_PARAM_construct_int(key, buf) end elseif typ == OSSL_PARAM_UNSIGNED_INTEGER then if value and type(value) == "string" then -- in only local bin = ffi_cast("char *", value) param = C.OSSL_PARAM_construct_BN(key, bin, #value) else buf = value and ffi_new("unsigned int[1]", value) or ffi_new("unsigned int[1]") param = C.OSSL_PARAM_construct_uint(key, buf) end elseif typ == OSSL_PARAM_UTF8_STRING then buf = value ~= nil and ffi_cast("char *", value) or buf param = C.OSSL_PARAM_construct_utf8_string(key, buf, value and #value or size) elseif typ == OSSL_PARAM_OCTET_STRING then buf = value ~= nil and ffi_cast("char *", value) or buf param = C.OSSL_PARAM_construct_octet_string(key, ffi_cast("void*", buf), value and #value or size) elseif typ == OSSL_PARAM_UTF8_PTR then -- out only buf = ffi_new("char*[1]") param = C.OSSL_PARAM_construct_utf8_ptr(key, buf, 0) elseif typ == OSSL_PARAM_OCTET_PTR then -- out only buf = ffi_new("char*[1]") param = C.OSSL_PARAM_construct_octet_ptr(key, ffi_cast("void**", buf), 0) else error("type " .. typ .. " is not yet implemented") end if value == nil then -- out buf_t[key] = buf else -- in -- save value as OSSL_PARAM_construct_* doesn't copy the value buf_anchored = buf_anchored or {} buf_anchored[key] = buf end params[i] = param i = i + 1 ::continue:: end buf_t[buf_anchor_key] = buf_anchored buf_t[buf_param_key] = buf_param params[length] = C.OSSL_PARAM_construct_end() return params end local function parse(buf_t, length, types_map, types_size) for key, buf in pairs(buf_t) do local typ = types_map[key] local sz = types_size and types_size[key] if key == buf_param_key then -- luacheck: ignore -- ignore elseif buf == nil or buf[0] == nil then buf_t[key] = nil elseif typ == "bn" then local bn_t = ffi_new("BIGNUM*[1]") local param = buf_t[buf_param_key][key] if C.OSSL_PARAM_get_BN(param, bn_t) ~= 1 then return nil, format_error("param:parse: OSSL_PARAM_get_BN") end buf_t[key] = assert(bn_lib.dup(bn_t[0])) C.BN_free(bn_t[0]) elseif typ == OSSL_PARAM_INTEGER or typ == OSSL_PARAM_UNSIGNED_INTEGER then buf_t[key] = tonumber(buf[0]) elseif typ == OSSL_PARAM_UTF8_STRING or typ == OSSL_PARAM_OCTET_STRING then buf_t[key] = sz and ffi_str(buf, sz) or ffi_str(buf) elseif typ == OSSL_PARAM_UTF8_PTR or typ == OSSL_PARAM_OCTET_PTR then buf_t[key] = sz and ffi_str(buf[0], sz) or ffi_str(buf[0]) elseif not typ then return nil, "param:parse: unknown key type \"" .. key .. "\"" else error("type " .. typ .. " is not yet implemented") end end -- for GC buf_t[buf_param_key] = nil return buf_t end local param_type_readable = { [OSSL_PARAM_UNSIGNED_INTEGER] = "unsigned integer", [OSSL_PARAM_INTEGER] = "integer", [OSSL_PARAM_REAL] = "real number", [OSSL_PARAM_UTF8_PTR] = "pointer to a UTF8 encoded string", [OSSL_PARAM_UTF8_STRING] = "UTF8 encoded string", [OSSL_PARAM_OCTET_PTR] = "pointer to an octet string", [OSSL_PARAM_OCTET_STRING] = "octet string", } local function readable_data_type(p) local typ = p.data_type local literal = param_type_readable[typ] if not literal then literal = string.format("unknown type [%d]", typ) end local sz = tonumber(p.data_size) if sz == 0 then literal = literal .. " (arbitrary size)" else literal = literal .. string.format(" (max %d bytes large)", sz) end return literal end local function parse_params_schema(params, schema, schema_readable) if params == nil then return nil, format_error("parse_params_schema") end local i = 0 while true do local p = params[i] if p.key == nil then break end local key = ffi_str(p.key) if schema then -- TODO: don't support same key with different types for now -- prefer string type over integer types local typ = tonumber(p.data_type) if schema[key] then schema[alter_type_key] = schema[alter_type_key] or {} schema[alter_type_key][key] = typ else schema[key] = typ end end -- if schema_return_size then -- only non-ptr string types are needed actually -- schema_return_size[key] = tonumber(p.return_size) -- end if schema_readable then table.insert(schema_readable, { key, readable_data_type(p) }) end i = i + 1 end return schema end local param_maps_set, param_maps_get = {}, {} local function get_params_func(typ, field) local typ_lower = typ:sub(5):lower() if typ_lower:sub(-4) == "_ctx" then typ_lower = typ_lower:sub(0, -5) end -- field name for indexing schema, usually the (const) one created by -- EVP_TYP_fetch or EVP_get_typebynam,e field = field or "algo" local cf_settable = C[typ .. "_settable_params"] local settable = function(self, raw) local k = self[field] if raw and param_maps_set[k] then return param_maps_set[k] end local param = cf_settable(self.ctx) -- no params, this is fine, shouldn't be regarded as an error if param == nil then param_maps_set[k] = {} return {} end local schema, schema_reabale = {}, raw and nil or {} parse_params_schema(param, schema, schema_reabale) param_maps_set[k] = schema return raw and schema or schema_reabale end local cf_set = C[typ .. "_set_params"] local set = function(self, params) if not param_maps_set[self[field]] then local ok, err = self:settable_params(true) -- only query raw schema to save memory if not ok then return false, typ_lower .. ":set_params: " .. err end end local oparams, err = construct(params, nil, param_maps_set[self[field]]) if err then return false, typ_lower .. ":set_params: " .. err end if cf_set(self.ctx, oparams) ~= 1 then return false, format_error(typ_lower .. ":set_params: " .. typ .. "_set_params") end return true end local cf_gettable = C[typ .. "_gettable_params"] local gettable = function(self, raw) local k = self[field] if raw and param_maps_get[k] then return param_maps_get[k] end local param = cf_gettable(self.ctx) -- no params, this is fine, shouldn't be regarded as an error if param == nil then param_maps_get[k] = {} return {} end local schema, schema_reabale = {}, raw and nil or {} parse_params_schema(param, schema, schema_reabale) param_maps_get[k] = schema return raw and schema or schema_reabale end local cf_get = C[typ .. "_get_params"] local get_buffer, get_size_map = {}, {} local get = function(self, key, want_size, want_type) if not param_maps_get[self[field]] then local ok, err = self:gettable_params(true) -- only query raw schema to save memory if not ok then return false, typ_lower .. ":set_params: " .. err end end local schema = param_maps_get[self[field]] if schema == nil or not schema[key] then -- nil or null return nil, typ_lower .. ":get_param: unknown key \"" .. key .. "\"" end table.clear(get_buffer) table.clear(get_size_map) get_buffer[key] = null get_size_map[key] = want_size schema = want_type and { [key] = want_type } or schema local req, err = construct(get_buffer, 1, schema, get_size_map) if not req then return nil, typ_lower .. ":get_param: failed to construct params: " .. err end if cf_get(self.ctx, req) ~= 1 then return nil, format_error(typ_lower .. ":get_param:get") end get_buffer, err = parse(get_buffer, 1, schema, get_size_map) if err then return nil, typ_lower .. ":get_param: failed to parse params: " .. err end return get_buffer[key] end return settable, set, gettable, get end return { OSSL_PARAM_INTEGER = OSSL_PARAM_INTEGER, OSSL_PARAM_UNSIGNED_INTEGER = OSSL_PARAM_INTEGER, OSSL_PARAM_REAL = OSSL_PARAM_REAL, OSSL_PARAM_UTF8_STRING = OSSL_PARAM_UTF8_STRING, OSSL_PARAM_OCTET_STRING = OSSL_PARAM_OCTET_STRING, OSSL_PARAM_UTF8_PTR = OSSL_PARAM_UTF8_PTR, OSSL_PARAM_OCTET_PTR = OSSL_PARAM_OCTET_PTR, construct = construct, parse = parse, parse_params_schema = parse_params_schema, get_params_func = get_params_func, }PKH½N]÷ºv v resty/signal.luanu„[µü¤local _M = { version = 0.04 } local ffi = require "ffi" local base = require "resty.core.base" local C = ffi.C local ffi_str = ffi.string local tonumber = tonumber local assert = assert local errno = ffi.errno local type = type local new_tab = base.new_tab local error = error local string_format = string.format local load_shared_lib do local string_gmatch = string.gmatch local string_match = string.match local io_open = io.open local io_close = io.close local cpath = package.cpath function load_shared_lib(so_name) local tried_paths = new_tab(32, 0) local i = 1 for k, _ in string_gmatch(cpath, "[^;]+") do if k == "?.so" then k = "./" end local fpath = string_match(k, "(.*/)") fpath = fpath .. so_name -- Don't get me wrong, the only way to know if a file exist is -- trying to open it. local f = io_open(fpath) if f ~= nil then io_close(f) return ffi.load(fpath) end tried_paths[i] = fpath i = i + 1 end return nil, tried_paths end -- function end -- do local resty_signal, tried_paths = load_shared_lib("librestysignal.so") if not resty_signal then error("could not load librestysignal.so from the following paths:\n" .. table.concat(tried_paths, "\n"), 2) end ffi.cdef[[ int resty_signal_signum(int num); ]] if not pcall(function () return C.kill end) then ffi.cdef("int kill(int32_t pid, int sig);") end if not pcall(function () return C.strerror end) then ffi.cdef("char *strerror(int errnum);") end -- Below is just the ID numbers for each POSIX signal. We map these signal IDs -- to system-specific signal numbers on the C land (via librestysignal.so). local signals = { NONE = 0, HUP = 1, INT = 2, QUIT = 3, ILL = 4, TRAP = 5, ABRT = 6, BUS = 7, FPE = 8, KILL = 9, USR1 = 10, SEGV = 11, USR2 = 12, PIPE = 13, ALRM = 14, TERM = 15, CHLD = 17, CONT = 18, STOP = 19, TSTP = 20, TTIN = 21, TTOU = 22, URG = 23, XCPU = 24, XFSZ = 25, VTALRM = 26, PROF = 27, WINCH = 28, IO = 29, PWR = 30, EMT = 31, SYS = 32, INFO = 33 } local function signum(name) local sig_num if type(name) == "number" then sig_num = name else local id = signals[name] if not id then return nil, "unknown signal name" end sig_num = tonumber(resty_signal.resty_signal_signum(id)) if sig_num < 0 then error( string_format("missing C def for signal %s = %d", name, id), 2 ) end end return sig_num end function _M.kill(pid, sig) assert(sig) local sig_num, err = signum(sig) if err then return nil, err end local rc = tonumber(C.kill(assert(pid), sig_num)) if rc == 0 then return true end local err = ffi_str(C.strerror(errno())) return nil, err end _M.signum = signum return _M PKH½N]¸/tíÅÅresty/sha256.luanu„[µü¤-- Copyright (C) by Yichun Zhang (agentzh) require "resty.sha" local ffi = require "ffi" local ffi_new = ffi.new local ffi_str = ffi.string local C = ffi.C local setmetatable = setmetatable --local error = error local _M = { _VERSION = '0.17' } local mt = { __index = _M } ffi.cdef[[ typedef struct SHA256state_st { SHA_LONG h[8]; SHA_LONG Nl,Nh; SHA_LONG data[SHA_LBLOCK]; unsigned int num,md_len; } SHA256_CTX; int SHA256_Init(SHA256_CTX *c); int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); int SHA256_Final(unsigned char *md, SHA256_CTX *c); ]] local digest_len = 32 local buf = ffi_new("char[?]", digest_len) local ctx_ptr_type = ffi.typeof("SHA256_CTX[1]") function _M.new(self) local ctx = ffi_new(ctx_ptr_type) if C.SHA256_Init(ctx) == 0 then return nil end return setmetatable({ _ctx = ctx }, mt) end function _M.update(self, s) return C.SHA256_Update(self._ctx, s, #s) == 1 end function _M.final(self) if C.SHA256_Final(buf, self._ctx) == 1 then return ffi_str(buf, digest_len) end return nil end function _M.reset(self) return C.SHA256_Init(self._ctx) == 1 end return _M PKH½N]ÂÞX£wwresty/string.luanu„[µü¤-- Copyright (C) by Yichun Zhang (agentzh) local ffi = require "ffi" local ffi_new = ffi.new local ffi_str = ffi.string local C = ffi.C --local setmetatable = setmetatable --local error = error local tonumber = tonumber local _M = { _VERSION = '0.17' } ffi.cdef[[ typedef unsigned char u_char; u_char * ngx_hex_dump(u_char *dst, const u_char *src, size_t len); intptr_t ngx_atoi(const unsigned char *line, size_t n); ]] local str_type = ffi.typeof("uint8_t[?]") local BUF_MAX_LEN = 1024 local hex_buf = ffi_new(str_type, BUF_MAX_LEN) function _M.to_hex(s) local len = #s local buf_len = len * 2 local buf if buf_len <= BUF_MAX_LEN then buf = hex_buf else buf = ffi_new(str_type, buf_len) end C.ngx_hex_dump(buf, s, len) return ffi_str(buf, buf_len) end function _M.atoi(s) return tonumber(C.ngx_atoi(s, #s)) end return _M PKH½N]@°L7webshield/sslutils.luanu„[µü¤local ngx_ssl = require('ngx.ssl') local openssl = require('openssl') local lfs = require('lfs') local domains_ips = ngx.shared.domains_ips local ssl_cache_file = '/var/cache/imunify360-webshield/ssl.cache' local notfound_ssl = ngx.shared.notfound_ssl_domains local function split(line, sep, num) local fields = {} local pos = 0 local count = 0 local strlen = line:len() while strlen > pos do local start, stop = line:find(sep, pos) if start == nil then table.insert(fields, line:sub(pos)) break end table.insert(fields, line:sub(pos, start - 1)) pos = stop + 1 count = count + 1 if count == num then table.insert(fields, line:sub(pos)) break end end return fields end local function read_certs(_cache) local f = io.open(ssl_cache_file) if not f then return end local _names = setmetatable({}, {_mode="kv"}) for key, _ in pairs(_cache) do _names[key] = true end for line in f:lines() do local _pair = split(line, ';;', 1) if #_pair ~= 2 then goto continue end _pair[2] = _pair[2]:gsub('\\r\\n', '\\n') -- unifying EOL markers local data = _pair[2]:gsub('\\n', '\n') -- cert itself local bundle = table.concat({data}, "\n") local xcrt = openssl.x509.read(bundle) if not xcrt then ngx.log(ngx.WARN, "Failed to get SSL XCRT (host: ", _pair[1], ")") goto continue end local crt = ngx_ssl.parse_pem_cert(bundle) if not crt then ngx.log(ngx.WARN, "Failed to get SSL CRT (host: ", _pair[1], ")") goto continue end local key = ngx_ssl.parse_pem_priv_key(bundle) if not key then ngx.log(ngx.WARN, "Failed to get SSL KEY (host: ", _pair[1], ")") goto continue end local val = {["xcrt"] = xcrt, ["crt"] = crt, ["key"] = key} _cache[_pair[1]] = val _names[_pair[1]] = nil ::continue:: end for key, _ in pairs(_names) do _cache[key] = nil end f:close() end local function cache_getter() local _cache = {} local _cached_mtime = 0 return function (name, addr) local mtime = lfs.attributes(ssl_cache_file, 'modification') if _cached_mtime ~= mtime then _cached_mtime = mtime read_certs(_cache) notfound_ssl:flush_all() -- clear not_found dict end local dedicated_domain = domains_ips:get(addr) if not name then -- No SNI found ngx.log(ngx.WARN, "Could not get SNI for request (IP: ", addr, ")") if dedicated_domain then name = dedicated_domain end end if name then local cert = _cache[name] if cert then return cert end local notfound_name = notfound_ssl:get(name) -- we didn't find cert for the name earlier if notfound_name then -- so there's no need to look for it again return end for key, cert in pairs(_cache) do if cert["xcrt"]:check_host(name) then return cert end end ngx.log(ngx.WARN, "Certificate not found (host: ", name, ")") ok, err, forced = notfound_ssl:set(name, true, 3600) -- cache name for missing cert for an hour if not ok then ngx.log(ngx.ERR, "Could not cache name (", name, ") of missing cert: ", err) end end end end local get_cert_by_host = cache_getter() return { get_cert_by_host = get_cert_by_host } PKH½N]B æxSxSlfs.sonuȯÝíELF>p@xL@8@P5P5 Ð<Ð< Ð<  >> > ÀÀÈÈÈ$$Påtd(.(.(.DDQåtdRåtdÐ<Ð< Ð< 00GNUb½9Øg�%^�ì6º¼0/¿žl:ˆ@ €(:=ðkнBEÕì»ã’|¼Æ<ÙqX 71É€ð C=á´S Â’þgxÝõËœFUQªªšd� XÑ'÷š6)_ªtÌ$Ô, Še‘F"t¼íàA ð×ÐB êØB ~ à(ÕÞÐB __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizelua_pushintegerlua_pushstringlua_pushnil__errno_locationstrerrorlua_pushfstringluaL_checklstringlua_isstringlua_settoplua_typelua_createtablememberslua_rawsetlua_tolstringstrcmpluaL_errorreadlinkreallocfreelua_pushlstringlua_setfieldlua_pushcclosurelua_newuserdatalua_getfieldlua_setmetatableopendirluaL_checkudatareaddir64luaL_argerrorclosedirchdirlua_pushbooleanlua_touserdataunlinkmallocstpcpysymlinklua_gettopluaL_optnumberluaL_optintegerutimemkdirlua_tobooleangetcwdfilenofcntl64luaL_checkoptionrmdirluaopen_lfsluaL_newmetatableluaL_registerlua_pushvaluelibc.so.6__xstat64__lxstat64_edata__bss_start_endGLIBC_2.28GLIBC_2.2.5¸ˆ‘–ïui úÐ<  Ø< àà< à< = ,= }, = ¦,(=  0= ‚,8= ð!@= ˆ,H= �%P= ¼,X= ° `= Å,h= %p= ",x= €&€= “,ˆ= °$�= ™,˜= ð' = Ÿ,¨= à°= ,¸=  'À= ±,È= $Ð=  ,Ø= @(à= ·,è= à"àA  ,èA €ðA Ó,øA àB À,B ÐB Ä,B À B Ê,(B °0B Î,8B  @B Ò,HB �PB ×,XB €`B Þ,hB ppB ë,xB `€B -ˆB P�B ò,˜B ð B þ,¨B @°B -¸B 0À? È? :Ð? Ø? $à? 1è? 3ð? 7@  @ (@ 0@ 8@ @@ H@ P@  X@  `@  h@  p@  x@ €@ ˆ@ �@ ˜@  @ ¨@ °@ ¸@ À@ È@ Ð@ Ø@ à@ è@ ð@ ø@ A A  A !A " A #(A %0A &8A '@A (HA )PA *XA +`A ,hA -pA .xA /€A 0ˆA 2�A 4˜A 5 A 6¨A 7°A 8¸A 9óúHƒìH‹Ù( H…ÀtÿÐHƒÄÃÿ5ò( ÿ%ô( @ÿ%ò( héàÿÿÿÿ%ê( héÐÿÿÿÿ%â( héÀÿÿÿÿ%Ú( hé°ÿÿÿÿ%Ò( hé ÿÿÿÿ%Ê( hé�ÿÿÿÿ%Â( hé€ÿÿÿÿ%º( hépÿÿÿÿ%²( hé`ÿÿÿÿ%ª( h éPÿÿÿÿ%¢( h é@ÿÿÿÿ%š( h é0ÿÿÿÿ%’( h é ÿÿÿÿ%Š( h éÿÿÿÿ%‚( héÿÿÿÿ%z( héðþÿÿÿ%r( héàþÿÿÿ%j( héÐþÿÿÿ%b( héÀþÿÿÿ%Z( hé°þÿÿÿ%R( hé þÿÿÿ%J( hé�þÿÿÿ%B( hé€þÿÿÿ%:( hépþÿÿÿ%2( hé`þÿÿÿ%*( héPþÿÿÿ%"( hé@þÿÿÿ%( hé0þÿÿÿ%( hé þÿÿÿ% ( héþÿÿÿ%( héþÿÿÿ%ú' héðýÿÿÿ%ò' h éàýÿÿÿ%ê' h!éÐýÿÿÿ%â' h"éÀýÿÿÿ%Ú' h#é°ýÿÿÿ%Ò' h$é ýÿÿÿ%Ê' h%é�ýÿÿÿ%Â' h&é€ýÿÿÿ%º' h'épýÿÿÿ%²' h(é`ýÿÿÿ%ª' h)éPýÿÿÿ%¢' h*é@ýÿÿÿ%š' h+é0ýÿÿÿ%’' h,é ýÿÿÿ%Š' h-éýÿÿÿ%‚' h.éýÿÿÿ%z' h/éðüÿÿÿ%r' h0éàüÿÿÿ%j' h1éÐüÿÿÿ%b' h2éÀüÿÿÿ%Z' h3é°üÿÿÿ%R' h4é üÿÿH�=Y( H�R( H9øtH‹6% H…Àt ÿà€Ã€H�=)( H�5"( H)þHÁþH‰ðHÁè?HÆHÑþtH‹% H…ÀtÿàfDÀóú€=å' u+UHƒ=ú$ H‰åt H�=Þ! è9ÿÿÿèdÿÿÿƽ' ]ÃÀóúéwÿÿÿ€H‹v8éwýÿÿ€H‹v@égýÿÿ€H‹v0éWýÿÿ€H‹vhéGýÿÿ€H‹vXé7ýÿÿ€H‹vHé'ýÿÿ€H‹v(éýÿÿ€‹v éýÿÿ„‹véøüÿÿ„H‹véçüÿÿ€H‹vé×üÿÿ€H‹6éÈüÿÿ„H�É% ‹FH�J f�Æ-HƒÂH9ÑuôöÄtƨ% r¨€tÆž% w¨@tÆ”% x¨ tÆŠ% r¨tÆ€% w¨tÆv% x¨tÆl% r¨tÆb% w¨tÆX% xH�5I% é¤ýÿÿ@‹FH�5q%ð=€t]H�5=@tOH�5= tAH�5O=Àt3H�5H=t%H�5E= t=`H�5>H�DHEðé(ýÿÿ„ATI‰ôUSH‰ûèÑüÿÿèLúÿÿH‰Å‹8M…ät2è ýÿÿL‰âH�5eH‰ßH‰Á1ÀèÆûÿÿHcuH‰ßèjûÿÿ[¸]A\ÃèÛüÿÿH‰ßH‰ÆèÀüÿÿëØff.„AW1ÒAVAUATUH‰õ¾SH‰ûH�ì˜èMûÿÿI‰äI‰ÅL‰æH‰ÇÿÕ…À…¾H‰ß‰Åè¨üÿÿ…À…�¾H‰ßèƒùÿÿ¾H‰ßè&üÿÿƒøt 1Ò1öH‰ßèUúÿÿH‹Ö! H‹0H…öt7H�hA½ýÿÿÿ@H‰ßèüÿÿL‰æH‰ßÿUD‰îH‰ßHƒÅè(úÿÿH‹uøH…öu׸H�Ę[]A\A]A^A_ÄH‰ß1Ò¾è�ùÿÿL‹5b! I‰ÅI‹>H…ÿ„‹M�~ëDIƒÇI‹ðƒÅH…ÿtpL‰îèxúÿÿ…ÀuäHcíL‰æH‰ßHÁåAÿT.¸ë�H‰ßè ûÿÿè›øÿÿ‹8H‰ÅèaûÿÿL‰êH�57H‰ßH‰Á1ÀèúÿÿHcuH‰ßè¾ùÿÿ¸é:ÿÿÿ@L‰êH�5/ H‰ß1Àè¼úÿÿéÿÿÿ€H�5™ éDþÿÿ@AV1Ò¾I‰þAUATU½S1Ûè’ùÿÿI‰Åë DL‰âH‰ÆL‰ïèjøÿÿHcÐ…Àx+9Å?íLcåH‰ßL‰æèúÿÿH‰ÃH…ÀuÏ[1À]A\A]A^Ã@H‰ßè ÷ÿÿ[1À]A\A]A^ÃDÆH‰ÞL‰÷èÑùÿÿH‰ßèy÷ÿÿ[¸]A\A]A^Ãff.„U¾SH‰ûHƒìèmúÿÿ…Àt)1Ò¾H‰ßèÚ÷ÿÿ¹H�=Y H‰Æó¦—À„Àt H�5¹ H‰ßèAýÿÿ‰Åƒøt*HƒÄ‰è[]Ã�H‰ßèèþÿÿ…ÀtL½HƒÄ‰è[]ÃfD¾ÿÿÿÿH‰ßè“ùÿÿƒøuÚH‰ßè¶þÿÿ…ÀtÎH�æ ¾þÿÿÿH‰ßèøÿÿë¢@HƒÄH‰ßH�5¯ []éSüÿÿAT1Ò¾USH‰ûèøÿÿ1ÒH�5”H‰ßI‰Äèéöÿÿ¾H‰ßè<øÿÿH�‡ ¾ðØÿÿH‰ßH‰ÅèUùÿÿ¾þÿÿÿH‰ßè(øÿÿÇEL‰çèéöÿÿH‰EH…Àt[¸]A\ÃfDè+öÿÿ‹8èôøÿÿL‰âH‰ßH�5= H‰Á1Àè}øÿÿ[¸]A\ÃUH� ¾H‰ýSHƒìèøÿÿH‰Ã‹…Àu-H‹{è4øÿÿH…ÀtAH�pH‰ïèƒøÿÿHƒÄ¸[]ÀH‰ïH�ß ¾èìõÿÿH‹{èó÷ÿÿH…Àu¿H‹{èõöÿÿÇHƒÄ1À[]ÃfDU1Ò¾SH‰ûHƒìèÛöÿÿH‰ÇH‰ÅèPöÿÿ…ÀuH‰ß¾è/÷ÿÿHƒÄ¸[]ÃH‰ßè¨÷ÿÿè#õÿÿ‹8èì÷ÿÿH‰êH‰ßH�5ï H‰Á1Àè¥öÿÿHƒÄ¸[]Ãf„S¾è%õÿÿH‰Ã‹…ÀuH‹{H…ÿtè>öÿÿÇ1À[Ã@SH� ¾èÎöÿÿH‹8H…ÿtH‰Ãè®ôÿÿH‹;èvôÿÿHÇ1À[Ãff.„AU¾ATUSH‰ûHƒìH�T$èäõÿÿH‰ß¾I‰ÄèöÿÿI‰ÅH‹D$H�xèSöÿÿH…À„‚L‰æH‰ÇH‰ÅèÜôÿÿºsH‰îH¹/lockfilH‰H�=ÒÇ@e.lff‰P è õÿÿƒøÿt;I‰mH‰ß¾ðØÿÿH�2èÓöÿÿH‰ß¾þÿÿÿè¦õÿÿHƒÄ¸[]A\A]ÃfDH‰ïè˜óÿÿH‰ßè0öÿÿè«óÿÿ‹8ètöÿÿH‰ßH‰ÆèYöÿÿHƒÄ¸[]A\A]Ãf„SH‰ûè÷õÿÿèróÿÿ‹8è;öÿÿH‰ßH�5—H‰Â1Àè÷ôÿÿ¸[ÃU¾1ÒSH‰ûHƒìè»ôÿÿH‰ßH‰Åèðòÿÿ1öƒøt/¾H‰ßfïÀè(ôÿÿ¾H‰ßòH,ÐH‰$èõÿÿH‰æH‰D$H‰ïèÂòÿÿƒøÿtH‰ß¾èÐôÿÿHƒÄ¸[]Ã@H‰ß1öèføÿÿHƒÄ[]Ãff.„@S1Ò¾H‰ûè ôÿÿ¾ýH‰ÇèÃòÿÿƒøÿtH‰ß¾èqôÿÿ¸[Ãf.„H‰ß1ö[éøÿÿDAT1Ò¾USH‰ûèÍóÿÿ1Ò¾H‰ßH‰Åè»óÿÿ¾H‰ßI‰ÄèKòÿÿ…Àu/H‹  L‰æH‰ïÿÐ1öH‰ßƒøÿt&èYóÿÿ[¸]A\ÀH‹a ëÏ€[]A\é÷ÿÿff.„@ATI‰üU½S1ÛëH‰îH‰ÇèóÿÿH…Àu8è«ñÿÿƒ8"uVHíH‰ßH‰îèØóÿÿH‰ÃH…ÀuÐ[L‰çH�5Þ]A\é÷ÿÿDH‰ÞL‰ç½è(ôÿÿH‰ßè@ñÿÿ‰è[]A\Ãf„L‰çH�5¸èáöÿÿH‰ß‰Åèñÿÿ‰è[]A\ÃATH�±I‰ô¾UH‰ýSè5óÿÿH‹H…Ût H‰Ø[]A\ÃDL‰âH�5†H‰ï1Àè\óÿÿëÝf.„AUH�5™ATUSH‰ûHƒì(è—ÿÿÿ1Ò¾H‰ßI‰Äè5òÿÿ1Ò¾H‰ßH‰Åè£òÿÿ1Ò¾H‰ßI‰Åè‘òÿÿ¶U€úu„´€úw„›€úrtVH�1H�5H‰ß1ÀèÎòÿÿ…Àt"H‰ß¾è=òÿÿHƒÄ(¸[]A\A]ÃDH‰ßè°üÿÿHƒÄ([]A\A]ÃD1öf‰4$1ÒL‰çL‰l$f‰T$H‰D$èáñÿÿH‰â¾‰Ç1Àè@òÿÿƒøÿ•À¶Àë‡D¿f‰<$ë»D¹f‰ $ë«DSH�5iH‰ûè€þÿÿ1ÒH‰ß¾H� ? èZðÿÿH‰ß¾è}ñÿÿH‰ßH�5<è>òÿÿ¸[ÀS1Ò¾H‰ûèàðÿÿH‰Çè(ðÿÿƒøÿtH‰ß¾è6ñÿÿ¸[ÀH‰ß1ö[éÍôÿÿff.„f�ATH�5×USH‰ûHƒì èÙýÿÿ1Ò¾H‰ßH‰Åè÷ðÿÿ1Ò¾H‰ßI‰ÄèåðÿÿH‰ïL‰d$Ç$H‰D$è¬ðÿÿH‰â¾‰Ç1Àè ñÿÿƒøÿtH‰ß¾è™ðÿÿHƒÄ ¸[]A\ÃH‰ßèûÿÿHƒÄ []A\ÀSH�5ŠH‰ûè ñÿÿ1Ò1öH‰ßèDïÿÿ1ÒH‰ßH�5Xøÿÿè³îÿÿH‰ß¾þÿÿÿH� èïÿÿ1ÒH‰ßH�5CùÿÿèŽîÿÿH‰ß¾þÿÿÿH�ëèZïÿÿH‰ß¾þÿÿÿH�ÝèFïÿÿ1ÒH‰ßH�5 ùÿÿèUîÿÿH�ÈH‰ß¾þÿÿÿè!ïÿÿH‰ßH�5!è‚ðÿÿ1Ò1öH‰ßè¦îÿÿ1ÒH‰ßH�5úøÿÿèîÿÿH‰ß¾þÿÿÿH�…èáîÿÿH‰ß¾þÿÿÿH�dèÍîÿÿ1ÒH‰ßH�5ÁøÿÿèÜíÿÿH‰ß¾þÿÿÿH�Gè¨îÿÿ1Ò1öH‰ßè<îÿÿH� 1öH‰ßè{îÿÿH‰ß¾ÿÿÿÿèÎîÿÿH‰ß¾îØÿÿH�èjîÿÿH‰ßº&H�5+èFïÿÿH‰ß¾þÿÿÿH�ïèBîÿÿH‰ßºŒH�5+èïÿÿH‰ß¾þÿÿÿH�ÒèîÿÿH‰ßºH�5ËèöîÿÿH‰ß¾þÿÿÿH�Ëèòíÿÿ¸[Ãf.„�óúH‰òH‰þ¿éíÿÿf.„f�óúH‰òH‰þ¿éüîÿÿóúHƒìHƒÄÃsocketnamed pipechar deviceblock deviceotherinvalid attribute name '%s'could not obtain link targetdirectory metatablecannot open %s: %sclosed directorylock metatableget_dir realloc() failedget_dir getcwd() failedFILE*%s: closed file%s: invalid modesetmodebinaryunlocknextclose__index__gcfreelfs_COPYRIGHT_DESCRIPTIONLuaFileSystem 1.7.0_VERSIONtextchdircurrentdirmkdirrmdirsymlinkattributestouchlock_dirinonlinkuidgidrdevaccessmodificationchangepermissionsblocksblksizecannot obtain information from file '%s': %sUnable to change working directory to '%s' %s Copyright (C) 2003-2017 Kepler ProjectLuaFileSystem is a Lua library developed to complement the set of functions related to file systems offered by the standard Lua distribution;D'èèÿÿ`íÿÿˆíÿÿœ(íÿÿ°8íÿÿÄHíÿÿØXíÿÿìhíÿÿxíÿÿˆíÿÿ(˜íÿÿ<¨íÿÿP¸íÿÿdÈíÿÿxXîÿÿŒØîÿÿ HïÿÿÐøðÿÿñÿÿ0¸ñÿÿ�ˆòÿÿÐ8óÿÿÈóÿÿ<HôÿÿpxôÿÿŒ¸ôÿÿ¨¸õÿÿôèõÿÿˆöÿÿDØöÿÿdh÷ÿÿœøÿÿàXøÿÿ xùÿÿ\Èùÿÿxúÿÿ˜¸úÿÿؘüÿÿø¸üÿÿzRx �$€çÿÿ`FJ w€?;*3$"Dxëÿÿ Xtëÿÿ lpëÿÿ €lëÿÿ ”hëÿÿ ¨dëÿÿ ¼`ëÿÿ Ð\ëÿÿäXëÿÿøTëÿÿ  Pëÿÿ  Lëÿÿ4HëÿÿŒHÄëÿÿx,\0ìÿÿbBŒD†A ƒ@ FBA HŒpìÿÿ©B�DŽB �B(ŒA0†I8ƒJЯ 8A0A(B BBBI ØÔíÿÿ \ìÐíÿÿ¥BŽL�B ŒA(†F0ƒC (C BBBE I (C BBBF X(F BBB<L îÿÿÍA†FƒG L CAB U CAG |KA4Œ°îÿÿ­BŒH†A ƒf FBG dFB0Ä(ïÿÿŠA†PƒD l FAH uCA0ø„ïÿÿwA†HƒG e FAD oFA,Ðïÿÿ,AƒjHäïÿÿ5AƒsHdðÿÿ÷B�GŒA †A(ƒG@œ (F ABBG k(F ABB°¼ðÿÿ0Aƒn0ÌÐðÿÿ‘A†HƒG0d FAE NAA<ñÿÿKAƒt K F4 lñÿÿ�BŒH†A ƒM FBH QAB@XÄñÿÿ BŒD†F ƒu KBJ [ ABJ \AB(œ òÿÿFBŒP†D ƒQ ABF LÈDòÿÿB�IŒA †A(ƒGPƒ (F ABBF L (A ABBF óÿÿIAƒG4HóÿÿCAƒo H F<Txóÿÿ™BŒH†A ƒG@i  FABD L AAB”ØóÿÿÕAƒÓ´˜õÿÿÌ õÿÿ àà< ,},¦, ‚,ð!ˆ,�%¼,° Å,%",€&“,°$™,ð'Ÿ,à, '±,$ ,@(·,à"¸ ð ô*Ð< Ø< õþÿoð(  @ øøÈ 0 þÿÿo˜ ÿÿÿoðÿÿo ùÿÿo;> &6FVfv†–¦¶ÆÖæö&6FVfv†–¦¶ÆÖæö&6FVfv†–¦¶ÆÖæö&6FVf--------- ,€Ó,àÀ,ÐÄ,ÀÊ,°Î, Ò,�×,€Þ,pë,`-Pò,ðþ,@-0GA$3a1ð+ GA$3p1113À*Ô*GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA! GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*GOW*GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign GA$3p1113à*ô*GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA! GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*GOW*GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignlfs.so-1.49.0-1.el8.x86_64.debugi/WËý7zXZæÖ´F!t/å£àGZ]?‘E„h=‰¦ÚŠáƒ2NÙ$S¦ìÔê£zדPh×w9Áž®ÅÞM¿ß¤<äçÐaòå£ê†›3è ‚»¶[GHú±Ó ‚ ýî�7R„@_G^â\s‡»¹Ú!Íõ±µ*>ú¸çÚ7QµÏ�}PºAlÓj;ð6í¾bŽ&x‚v–‡½LLÓM ^fˆŒ)�Òj›àÐÈÿ,´oˆ�áávmо¯g–?*iï¡z?pâ~Ë g:îa7qwOsÝ� ’½^|ÌÏ-CË‘ê`"4Ìl‡&7£áøÏúž�C¸ùñ½~Õ¥‡Û^ÆPسº£­[ßmÌýË¿#Ïz¾$ ó›|»±¼æd¡ÊQ¤Yé6‰-qrZÊHŒý'5&½:CÀ„èºqèm'gí&9„P7ÜÄc�óO8G´kp]ó¹0fZà^bd�øE€…lÒþ6‚Z›Ô¯ç�+ÇÌéŽe…¾*ÌRUÃê…[åÂÿRCdðzþâ¿h·æ ¢äV+üÍC1{¤ŸTôÊZò R7„:fúŽÌÿwE»2—…d¹à KôQÆÆ½®*©s¼¶<Š{±"ÐÂë«e[­¶T)“ÉÇ”õ‡'È›²’G0HOÙž}(Ö¾=x reêã�Š0ømý‡w�DnZ£�¥g}Ìwd zª/.†HƒivÆÞrkcògšh ¨R�´' (Þ;<‘ÈÐ@¤ñœs‘\SIn¥µªõ¯„•ò²yúñéBî·]Òì(žèMitR¼q›Iå¸tˆ€q#n¿Qc|ð¶ë”Ça›4×;�¤ëÒ–EF9qö Ã嵸�·½3Ü`<�š@!˜S·Œþq§µr„Ðæ™5àÊJ²Xgõb¾šË2M£óë4>p€›¨ûŠ–V‚ngöÓ ~%YýÀ²ÂpW A5AžHÂ0dõa ÐwE*ç­ò¨àÿ•0‡é)Ç&·íÁIE±DˆÎG1¬HGdU{ÂGWß�l\©Ú‡Àw±~u!ø_jÝ—¾�$bÉÿn6¦”œ 4jsZ•Éê›ÙùQé2ÜÚ,z� r¾Vȱ:Ħ3¸fi¯YçðöÈ$ÍMS¼±ÄgûYZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata ÈÈ$öÿÿoðð8( ((è08ÿÿÿo  ~Eþÿÿo˜ ˜ 0TÈ È 0^Bøøøhððc`npp„tô*ô* z2++ ‚(.(.D�p/p/àšÐ< Ð<¦Ø< Ø<²à< à<  ¿> >ÀÈÀ? À?8Í@ @ÀÖÀA ÀA ÜÐB ÐBáØB`ÐBÌ÷œF(ÄFœ`KPKH½N]%|î#(™(™cjson.sonuȯÝíELF>p!@(’@8@üoüo P}P} P} 1P ~~ ~ ÀÀÈÈÈ$$Påtdeee\\QåtdRåtdP}P} P} °°GNUÂa½‰„D°ðGJèk)P%³ú>�A$�X >CIrx~qBEÕìLÓŽ3¢C”»ã’|ŽIµØqXô ü|¦í(Ü´³ ¹-ÆP#d´Íȵåá]}’½k±¡ UÈf¶ïØpäFÌ�D w"îM^Ö §V2„V¡ ‰_­¡d†2¼ä�áùyùU=—, õÇF"×N; °UÁ¨�‹ “ àXɼ  WE» ‹ • 0We¯�‹ k `X€l Ð[ùd ðWi~ °Y‡¯ @Z�- �U Ð\q__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizelua_touserdatastrbuf_freelua_tolstringstrbuf_append_stringstrbuf_resizeabortstrtollfpconv_strtodlua_gettopluaL_argerrorlua_pushvaluelua_insertlua_pcallluaL_errorlua_pushnilfpconv_initlua_pushlightuserdatalua_rawgetlua_typelua_createtablelua_newuserdatalua_pushcclosurelua_setfieldlua_setmetatablestrbuf_initluaL_checkstacklua_settoplua_pushlstringlua_rawsetlua_getfieldluaL_checkoptionlua_pushstringlua_pushbooleanlua_tobooleanlua_pushintegerluaL_checkintegersnprintfluaL_checklstringlua_tonumberfpconv_g_fmtlua_typenamestrncasecmplua_checkstacklua_rawsetilua_pushnumberstrbuf_newlua_getmetatablelua_nextlua_rawequallua_objlenluaL_getmetafieldlua_calllua_rawgetilua_gettableluaopen_cjsonluaopen_cjson_safestderrvfprintffputcmallocstrbuf_free_to_stringreallocmemcpystrchrfwritelibc.so.6_edata__bss_start_endGLIBC_2.14GLIBC_2.2.5ž”‘–Àui ËP} 0"X} ð!`} `} €} "aˆ} .a�} 8a˜} Da } Na¨} Wa°} `a¸} jaÀ} taÈ} {aÐ} ƒaØ} ‹aà} ‘aè} žað} ¦a ‚ Ø](‚ R0‚ ß]8‚ PE@‚ æ]H‚ à4P‚ ^X‚ 0`‚ ^h‚  -p‚ 3^x‚ à+€‚ G^ˆ‚ °3�‚ X^˜‚ P1 ‚ i^¨‚ €2°‚ �^¸‚ +À‚ ”^È‚ @.Ђ «^Ø‚ p/à‚ Â^è‚ €6ð‚ àaø‚ °0ƒ Þ^ƒ €5ƒ ì^ƒ à$@ƒ E`Hƒ ~^Pƒ š]`ƒ E`hƒ ~^€ƒ I`ˆƒ P`�ƒ W`˜ƒ ^` ƒ e`¨ƒ l`°ƒ s`¸ƒ z`Àƒ �`ȃ „`Ѓ ‡`؃ Š`àƒ ‘`èƒ ”`ðƒ —`øƒ ž`„ ¥`„ ¬`„ ³`„ º` „ Á`(„ È`0„ Ï`8„ Ö`@„ Ý`H„ ä`P„ ë`X„ ò``„ ù`h„ ap„ ax„ a�„ aø„  _`† ax‡ aÀ È #Ð 8Ø ;à =€  € (€ 0€ 8€ I@€ H€ P€ CX€ `€  h€  p€  x€  €€  ˆ€ �€ ˜€  € ¨€ °€ ¸€ À€ È€ Ѐ Ø€ à€ è€ ð€ ø€ @� � A� �  � (�  0� !8� "@� $H� %P� &X� '`� (h� )p� *x� +€� ,ˆ� -�� .˜� K � /¨� 0°� 1¸� 2À� 3È� 4Ð� FØ� 5à� Gè� 6ð� 7ø� 9‚ :‚ ;‚ <‚ HóúHƒìH‹‰b H…ÀtÿÐHƒÄÃÿ5²b ÿ%´b @ÿ%²b héàÿÿÿÿ%ªb héÐÿÿÿÿ%¢b héÀÿÿÿÿ%šb hé°ÿÿÿÿ%’b hé ÿÿÿÿ%Šb hé�ÿÿÿÿ%‚b hé€ÿÿÿÿ%zb hépÿÿÿÿ%rb hé`ÿÿÿÿ%jb h éPÿÿÿÿ%bb h é@ÿÿÿÿ%Zb h é0ÿÿÿÿ%Rb h é ÿÿÿÿ%Jb h éÿÿÿÿ%Bb héÿÿÿÿ%:b héðþÿÿÿ%2b héàþÿÿÿ%*b héÐþÿÿÿ%"b héÀþÿÿÿ%b hé°þÿÿÿ%b hé þÿÿÿ% b hé�þÿÿÿ%b hé€þÿÿÿ%úa hépþÿÿÿ%òa hé`þÿÿÿ%êa héPþÿÿÿ%âa hé@þÿÿÿ%Úa hé0þÿÿÿ%Òa hé þÿÿÿ%Êa héþÿÿÿ%Âa héþÿÿÿ%ºa héðýÿÿÿ%²a h éàýÿÿÿ%ªa h!éÐýÿÿÿ%¢a h"éÀýÿÿÿ%ša h#é°ýÿÿÿ%’a h$é ýÿÿÿ%Ša h%é�ýÿÿÿ%‚a h&é€ýÿÿÿ%za h'épýÿÿÿ%ra h(é`ýÿÿÿ%ja h)éPýÿÿÿ%ba h*é@ýÿÿÿ%Za h+é0ýÿÿÿ%Ra h,é ýÿÿÿ%Ja h-éýÿÿÿ%Ba h.éýÿÿÿ%:a h/éðüÿÿÿ%2a h0éàüÿÿÿ%*a h1éÐüÿÿÿ%"a h2éÀüÿÿÿ%a h3é°üÿÿÿ%a h4é üÿÿÿ% a h5é�üÿÿÿ%a h6é€üÿÿÿ%ú` h7épüÿÿÿ%ò` h8é`üÿÿÿ%ê` h9éPüÿÿÿ%â` h:é@üÿÿÿ%Ú` h;é0üÿÿÿ%Ò` h<é üÿÿÿ%Ê` h=éüÿÿÿ%Â` h>éüÿÿÿ%º` h?éðûÿÿÿ%²` h@éàûÿÿè;üÿÿè6üÿÿfDH�=j H�úi H9øtH‹&^ H…Àt ÿà€Ã€H�=Ñi H�5Êi H)þHÁþH‰ðHÁè?HÆHÑþtH‹õ] H…ÀtÿàfDÀóú€=�i u+UHƒ=Ò] H‰åt H�=N[ è)ÿÿÿèdÿÿÿÆei ]ÃÀóúéwÿÿÿ€Hƒì¾è’ûÿÿH…Àt H�¸è‘þÿÿ1ÀHƒÄÃf.„AUATUH‰õ‰ÖSHƒìH�T$è·ûÿÿHº§ªªªªªª*I‰ÄH‹D$H9ЇÌþÿÿH‹uH�@H�TH‰ðH÷ÐHEH9‡ŒH‹EH�V1ÛL�-«` H‰UÆ0"Hƒ|$t(A¶ I‹tÍH‰ÊH…öt6H‰ïHƒÃèZþÿÿH9\$wÛH‹EH‹UH�HH‰MÆ"HƒÄ[]A\A]Ã@H‹MH‹EHƒÃH�qH‰uˆH9\$wšë½HÖH‰ïèÅûÿÿH‹ué`ÿÿÿff.„�ATº UH‰õSH‰ûHƒìH‹L�d$L‰æè¼ûÿÿH‹{H‹T$H9×t¶ €ùxA”À€ù.@”ÆAðuƒá߀ùEu0ÇEL‰æèÑùÿÿH‹T$òEH9St!H‰SHƒÄ[]A\Ã@ÇEH‰EëâH‹ÇE H)ÂH�L9H‰UH‰EHƒÄ[]A\Ãff.„SH‰ûHƒìè3ùÿÿƒøtH�&9¾H‰ßèšùÿÿ¾íØÿÿH‰ßè­úÿÿ¾H‰ßèàûÿÿ1ɺH‰ß¾èœùÿÿ…Àt ƒøt+HƒÄH‰ßH�5=1À[é üÿÿD¸HƒÄ[ÃDH‰ß‰D$ èüûÿÿ¾þÿÿÿH‰ßèûÿÿ‹D$ ëÖf„AVH�57] ¹"AUL�-¡f ATUH‰ýSH»ÿÿÿÿÿI!ÝH�ìI‰äL‰çóH¥è@ûÿÿL‰îH‰ïèõúÿÿ¾ðØÿÿH‰ïèøúÿÿ¾ÿÿÿÿH‰ïè»ûÿÿ…À„Û1Ò1öH‰ïèùÿÿ¾pH‰ïèúùÿÿH‰ÃH…À„üÿÿH�xH‰ÁHÇ1ÒHƒçø1öHÇ€h1ÀH)ù�ÁpÁéóH«H‰ïè´øÿÿ1ÒH�5‹üÿÿH‰ïèCøÿÿH�¿7¾þÿÿÿH‰ïèïøÿÿ¾þÿÿÿH‰ïè¢ùÿÿfoº=H�»1öǃHƒ(fo¨=ǃhƒ8foŸ=HǃPƒXè˜÷ÿÿfo�=H‰ØH�‹fDHƒÀH9ÁuôH�»Ç H¸ foe=HƒçøH‰C$H¸ H�ô6H)ùH‰ƒ°HƒÀ¾�ÁH‰ƒà1ÀÁéƒÀƒÐǃìǃôǃlǃtǃ€ ÇC4 ǃ˜ǃ¤ǃ$ǃ¸ǃ8ǃÐǃˆǃ¬ǃè HǃHǃøóH«¸ uH‰ïƃ""ƃ\\ƃ//ƃbƃn ƃf ƃr f‰ƒtè8øÿÿH‹$H…ÛtIA¾ÿÿÿÿf„D‰öH‰ïIƒÄè1÷ÿÿI‹t$øºH‰ïèöÿÿH‰Ú¾ýÿÿÿH‰ïè¿öÿÿI‹$H…ÛuÆH‰ï¾þÿÿÿH�wc èrõÿÿH‰ï1öèø÷ÿÿH�k5H‰ï¾þÿÿÿè„öÿÿL‰îH‰ïèÙ÷ÿÿH‰ï¾ðØÿÿèÜ÷ÿÿH�D5H‰ï¾þÿÿÿèXöÿÿH‰ïH¸ÿÿÿÿÿH!ÃH‰Þè ÷ÿÿH‰ï¾ðØÿÿè£÷ÿÿH��5H‰ï¾þÿÿÿèöÿÿH‰ÞH‰ïèt÷ÿÿH‰ï¾þÿÿÿH�ó4èöÿÿH‰ïºH�5ë4èl÷ÿÿH‰ï¾þÿÿÿH�Ý4èØõÿÿH‰ïºH�5Ï4èD÷ÿÿH‰ï¾þÿÿÿH�Ä4è°õÿÿH�ĸ[]A\A]A^ÃH‰ï¾þÿÿÿè[ôÿÿL‰îH‰ïèàöÿÿ1Ò1öH‰ïèõÿÿH‰ï¾ðØÿÿèõÿÿH�50b H‰ïH!Þèµöÿÿ1öH‰ï1Òèéôÿÿ¾ðØÿÿH‰ïèìôÿÿéÄûÿÿ€AUH�?4L�-�úÿÿATUH‰ýSH�14Hƒì8H‰\$ó~D$L�d$H‰D$HÇD$ D$)D$èûÿÿ1ÒH�5¨ÿÿÿH‰ïèôÿÿH�õ4¾þÿÿÿH‰ïè¼ôÿÿH‰Ú¾ÿÿÿÿH‰ïIƒÄè8÷ÿÿºL‰îH‰ïèØóÿÿH‰Ú¾þÿÿÿH‰ïèˆôÿÿI‹$H…ÛuÃHƒÄ8¸[]A\A]Ãff.„@UH‰õ¾SH‰ûHƒìèŠöÿÿ…ÀtV¾H‰ßèyöÿÿƒøtdH� ÍX 1Ò¾H‰ßè®óÿÿ‰Eƒøv.H˜H�­X H‰ßH‹4ÂèaöÿÿHƒÄ¸[]ÃD‹EƒøwÒ‰ÆH‰ßèþôÿÿHƒÄ¸[]Ãf�¾H‰ßèÃòÿÿ‰EëÑff.„ATUH‰ýSèTòÿÿƒø~ë}DH‰ïè�õÿÿH‰ïè8òÿÿ…À~ì¾íØÿÿH‰ïè—òÿÿH‰ÃH…ÀtoH�³@H‰ïD‹£@èùþÿÿ‹ƒ@D9àtH�»…Àt1öèLòÿÿ[¸]A\Ãf�è[õÿÿ[¸]A\Ã�H�I3¾H‰ïè<òÿÿéwÿÿÿ€H�5A6H‰ï1Àèßôÿÿé{ÿÿÿf.„AVAUATUSH‰ûHƒì@è|ñÿÿƒø~é¢f�H‰ßè¸ôÿÿH‰ßè`ñÿÿƒø~ë¾íØÿÿH‰ßè¾ñÿÿH‰ÅH…À„*H�µ(H‰ßè#þÿÿ¾H‰ßè¶ôÿÿ…À…¾D‹¥,IcôH‰ßèlòÿÿ¾H‰ßè�ôÿÿ…ÀuKD‹¥0IcôH‰ßèIòÿÿHƒÄ@¸[]A\A]A^ÀH�I2¾H‰ßè<ñÿÿéOÿÿÿ€¾H‰ßI‰æè òÿÿ1ÉA¸ÿÿÿL‰÷I‰ÅA‰Ä¾@1ÀH�I5è¬ñÿÿE…툋D‰­0ésÿÿÿ€¾H‰ßI‰æèPòÿÿ1ÉA¸ÿÿÿL‰÷I‰ÅA‰Ä¾@1ÀH�ù4è\ñÿÿE…íx'D‰­,éÿÿÿH�5©4H‰ß1ÀèGóÿÿéÀþÿÿf�L‰ò¾H‰ßèpðÿÿëÇfDL‰ò¾H‰ßèXðÿÿé`ÿÿÿUSH‰ûHƒìèÂïÿÿƒø~ ëKH‰ßèóÿÿH‰ßè¨ïÿÿ…À~ì¾íØÿÿH‰ßèðÿÿH‰ÅH…Àt?H�µdH‰ßèpüÿÿHƒÄ¸[]Ã@H�é0¾H‰ßèÜïÿÿëªf.„H�5á3H‰ß1Àèòÿÿë®ff.„f�USH‰ûHƒìè"ïÿÿƒø~éÀ„H‰ßèXòÿÿH‰ßèïÿÿ…À~ì¾íØÿÿH‰ßè_ïÿÿH‰ÅH…À„«¾H‰ßèfòÿÿ…Àu"Hcµ8ƒþwLH‰ßè.ñÿÿHƒÄ¸[]Ãf�¾H‰ßè3òÿÿƒøt~¾H� bT 1ÒH‰ßèhïÿÿHcð‰µ8ƒþv´H�CT H‰ßH‹4ðèòÿÿHƒÄ¸[]ÃH�Ñ/¾H‰ßèÄîÿÿé7ÿÿÿ€H�5É2H‰ß1Àègñÿÿé?ÿÿÿf�¾H‰ßècîÿÿHcð‰µ8é:ÿÿÿDUSH‰ûHƒìèòíÿÿƒø~ ëKH‰ßè0ñÿÿH‰ßèØíÿÿ…À~ì¾íØÿÿH‰ßè7îÿÿH‰ÅH…Àt?H�µXH‰ßè úÿÿHƒÄ¸[]Ã@H�/¾H‰ßè îÿÿëªf.„H�52H‰ß1Àè¯ðÿÿë®ff.„f�USH‰ûHƒìèRíÿÿƒø~ ëKH‰ßè�ðÿÿH‰ßè8íÿÿ…À~ì¾íØÿÿH‰ßè—íÿÿH‰ÅH…Àt?H�µ`H‰ßèúÿÿHƒÄ¸[]Ã@H�y.¾H‰ßèlíÿÿëªf.„H�5q1H‰ß1Àèðÿÿë®ff.„f�USH‰ûHƒìè²ìÿÿƒø~ ëKH‰ßèðïÿÿH‰ßè˜ìÿÿ…À~ì¾íØÿÿH‰ßè÷ìÿÿH‰ÅH…Àt?H�µhH‰ßè`ùÿÿHƒÄ¸[]Ã@H�Ù-¾H‰ßèÌìÿÿëªf.„H�5Ñ0H‰ß1Àèoïÿÿë®ff.„f�AVAUATUSH‰ûHƒì@è ìÿÿƒø~ëmDH‰ßèHïÿÿH‰ßèðëÿÿ…À~ì¾íØÿÿH‰ßèOìÿÿI‰ÄH…À„£¾H‰ßèVïÿÿ…ÀuBA‹¬$\HcõH‰ßèíÿÿHƒÄ@¸[]A\A]A^ÃDH�-¾H‰ßèìÿÿëŠf�¾H‰ßI‰æèpíÿÿA¸ÿÿÿ¹L‰÷I‰Å‰Å¾@1ÀH�0èzìÿÿE…í~5E‰¬$\é~ÿÿÿ„H�5Á/H‰ß1Àè_îÿÿéGÿÿÿf.„L‰ò¾H‰ßè€ëÿÿë¹ff.„AVAUATUSH‰ûHƒì@èÜêÿÿƒø~ëmDH‰ßèîÿÿH‰ßèÀêÿÿ…À~ì¾íØÿÿH‰ßèëÿÿI‰ÄH…À„£¾H‰ßè&îÿÿ…ÀuBA‹¬$<HcõH‰ßèßëÿÿHƒÄ@¸[]A\A]A^ÃDH�á+¾H‰ßèÔêÿÿëŠf�¾H‰ßI‰æè@ìÿÿA¸¹L‰÷I‰Å‰Å¾@1ÀH�ç.èJëÿÿA�Eÿƒøw1E‰¬$<ézÿÿÿ@H�5‘.H‰ß1Àè/íÿÿéGÿÿÿf.„L‰ò¾H‰ßèPêÿÿë½ff.„AVAUATUSH‰ûHƒì@è¬éÿÿƒø~ëmDH‰ßèèìÿÿH‰ßè�éÿÿ…À~ì¾íØÿÿH‰ßèïéÿÿI‰ÄH…À„£¾H‰ßèöìÿÿ…ÀuBA‹¬$4HcõH‰ßè¯êÿÿHƒÄ@¸[]A\A]A^ÃDH�±*¾H‰ßè¤éÿÿëŠf�¾H‰ßI‰æèëÿÿA¸ÿÿÿ¹L‰÷I‰Å‰Å¾@1ÀH�·-èêÿÿE…í~5E‰¬$4é~ÿÿÿ„H�5a-H‰ß1ÀèÿëÿÿéGÿÿÿf.„L‰ò¾H‰ßè éÿÿë¹ff.„USH‰ûHƒìè‚èÿÿƒø~ ëKH‰ßèÀëÿÿH‰ßèhèÿÿ…À~ì¾íØÿÿH‰ßèÇèÿÿH‰ÅH…Àt?HƒÄH�µDH‰ß[]é*õÿÿf.„H�©)¾H‰ßèœèÿÿëªf.„H�5¡,H‰ß1Àè?ëÿÿë®ff.„f�USH‰ûHƒìèâçÿÿƒø~鈄H‰ßèëÿÿH‰ßèÀçÿÿ…À~ì¾íØÿÿH‰ßèèÿÿH‰ÅH…À„“¾H‰ßè&ëÿÿ…ÀubH‹µPH…öH�(+H‰ßHDðè%ëÿÿH‹…P€8u HÇ…PHƒÄ¸[]Ãf�H�É(¾H‰ßè¼çÿÿéoÿÿÿ€¾1ÒH‰ßè¡èÿÿH‰ÆH‰…PëŠDH�5¡+H‰ß1Àè?êÿÿéWÿÿÿf.„USH‰ûHƒìèâæÿÿƒø~ ëkH‰ßè êÿÿH‰ßèÈæÿÿ…À~ì¾íØÿÿH‰ßè'çÿÿH‰ÅH…Àt_H�µHH‰ßè�óÿÿ‹•H¹…ÒH�%(HDÑH‰ N HƒÄ[]Ãf.„H�é'¾H‰ßèÜæÿÿëŠf.„H�5á*H‰ß1ÀèéÿÿëŽff.„f�AUA‰ÍATI‰üUH‰õ‰ÎSH‰ÓHƒìècèÿÿ‹•8…ÒuYf(ÈfT },f. …,‡·f.ÀŠ­H‹{H‰øH÷ÐHCHƒøvq‹µ<H;è#éÿÿH˜HCHƒÄ[]A\A]Ãf�H‹{H‰øH÷ÐHCƒú„Áf(ÈfT ,f. ,wf.À{¦Hƒø†;H;ÇnullHƒCë¦H�w H‰ßòD$èþæÿÿH‹{òD$énÿÿÿ€‹•@…Ò„ªD‰îL‰çòD$è©èÿÿL‰ç‰Æè?èÿÿL‰çH� ¡&H�5¶&H‰Â1Àè4èÿÿH‹{òD$H‰øH÷ÐHCéÿÿÿf.ÀŠÕf(ÈfT B+f. J+†ÝþÿÿfïÉf/ÈwJHƒø†€H¸InfinityH;H‰HƒCéÉþÿÿfDH‰ßòD$èòçÿÿòD$é=ÿÿÿ€HƒøvOH¸-InfinitH;H‰ÆGyHƒC éþÿÿ@H�wH‰ßèÜåÿÿH‹{é°þÿÿH�wH‰ßèÄåÿÿH‹{ékÿÿÿH�w H‰ßè¯åÿÿH‹{ëŸHƒøvH;¸Naf‰ÆGNHƒCéþÿÿH�wH‰ßè~åÿÿH‹{ëÕ„ATUSHƒìL‹GH‹oE‹ˆd¶U¶ÂA‹€‰ƒø tE…É„î€}/…ä¶M€ù/t €ù*…ÒH�EH‰G¶U€ù/„…„ÒuëW€HƒÀH‰G¶„ÒtA€ú*uì€x/uæH�hH‰o¶P¶ÂA‹€‰ƒø u…@H�EH‰G¶UH‰Åé_ÿÿÿ@H‹Ç H)ÐH‰FH�¹$H‰FHƒÄ[]A\Ã@€ú „Q„Ò„IH�Eë �€ú „ÿÿÿH‰G¶H‰ÅHƒÀ„ÒuåéûþÿÿH‰éH+I‰ôH‰ûH‰Nƒø „ðƒø t�ƒø…€ú"„ܶƒè0ƒø †ø€ú-„ï¹H�=—$H‰îó¦—À„À„j¹H�=~$H‰îó¦—À„À„j¹H�=:"H‰îó¦—À„À„àA‹€X…Àt\¶E<+„Õ<-u¶EHƒÅ<0„Ó<9~8ºH�5$H‰ïè[äÿÿ…À„¡ºH�5î#H‰ïè?äÿÿ…À„…H�|#AÇ$ I‰D$é™þÿÿH‰ÅéÑýÿÿHƒÅH‰oé„þÿÿA‹�X…ÒuL¶E<+tm<-u¶EHƒÅ<0tG<9~0ºH�5y#H‰ïèÎãÿÿ…ÀtAºH�5e#H‰ïè¶ãÿÿ…Àt)HƒÄL‰æH‰ß[]A\éÿæÿÿ¾E‰ÂƒÊ €úxtƒè0ƒø w×H�Ò AÇ$ I‰D$éëýÿÿHƒÅAÇ$AÇD$H‰kéÍýÿÿHƒÅAÇ$AÇD$H‰ké¯ýÿÿH‹GHƒÅI�ÀH‰oHÇ@ë"H‹SH‹JH‹2H�yH‰zˆH‹CH�hH‰k¶E<"„„À„ä<\uƶEA¶D9ÑríHkHBH‰ké¯þÿÿ‰Á‰Âƒá?ÁúƒÉ€=ÿ�ƒÊÀˆL$ ½¸ˆT$ ë”öÄ…?€}\…5€}u…+¾U�JЀù †0ƒÊ �JŸ€ù‡ ¾ÒƒêW¾M �qÐ@€þ †ƒÉ �qŸ@€þ‡å¾É�y©¾M �qÐ@€þ †ÓƒÉ �qŸ@€þ‡¾¾É�q©¾M D�IÐA€ù †£ƒÉ D�IŸA€ù‡•¾ÉƒéWÁâ ÁçúÁæòʉÑ�áü�ùÜupÁà �âÿ½ %ü ЉÂÁúƒÊðˆT$ ‰ÂÁú ƒâ?ƒÊ€ˆT$ ‰Âƒà?ÁúƒÈ€ƒâ?ˆD$¸ƒÊ€ˆT$édþÿÿƒê0é*þÿÿ�JÐéûýÿÿ�rÐéÎýÿÿH‹H‹CAÇ$ H)ÐI‰D$H�‚I‰D$é€úÿÿƒè0éyýÿÿH‹AÇ$ H)ÅH�BI‰l$I‰D$éTúÿÿH‹CHƒÅH‰kH‹H‹@ÆH‹CAÇ$H‹H‹@I‰T$I‰D$éúÿÿ¾E‰ÂƒÊ €úx„Üûÿÿƒè0ƒø †ÐûÿÿéFûÿÿÁø ˆL$½ƒÈàˆD$ ‰Ðƒà?ƒÈ€ˆD$ ¸ésýÿÿH‹AÇ$ H)ÅH�ÎI‰l$I‰D$é«ùÿÿƒé0élþÿÿ�qÐé;þÿÿ�yÐé þÿÿƒê0éÝýÿÿAVAUATUH‰ýSH‰óHƒì0ƒ:‡�‹H� 4"Hc�HÈÿà1öèéÞÿÿHƒÄ0[]A\A]A^Ã@‹F H‹VƒÀ‰F ;‚\¾èùÛÿÿ…Àu$H‹{è|ßÿÿ‹S H‹KH‰ïH+ H�5Ø 1Àè!ßÿÿ1Ò1öL�d$H‰ïèÀÜÿÿL‰æH‰ßL�-Ó; èþ÷ÿÿ‹D$ƒøuVé2ƒø t=H‹{è"ßÿÿ‹D$H‹L$ ƒø tI‹LÅL‹D$H�ñH‰ï1ÀH�5§ IƒÀè®ÞÿÿL‰æH‰ßè£÷ÿÿ‹D$ƒøt=H‹{èÑÞÿÿ‹D$H‹L$ ƒø tI‹LÅL‹D$H�ˆH‰ï1ÀH�5V IƒÀè]ÞÿÿH‹T$(H‹t$ H‰ïèÛÝÿÿL‰æH‰ßè@÷ÿÿƒ|$ t=H‹{èpÞÿÿ‹D$H‹L$ ƒø tI‹LÅL‹D$H�9H‰ï1ÀH�5õIƒÀèüÝÿÿL‰æH‰ßèñöÿÿL‰âH‰ÞH‰ïè3þÿÿ¾ýÿÿÿH‰ïè–ÛÿÿL‰æH‰ßèËöÿÿ‹D$ƒø…Îþÿÿƒk HƒÄ0[]A\A]A^ÃD‹F H‹VƒÀ‰F ;‚\¾è9Úÿÿ…Àu$H‹{è¼Ýÿÿ‹S H‹KH‰ïH+ H�51ÀèaÝÿÿ1Ò1öH‰ïèÛÿÿH‹C‹€`…À…£L�d$H‰ßA½L‰æL�5û9 è&öÿÿƒ|$u_é\ÿÿÿf.„ƒø tH� ·8 H‹ ÁL‹BH‰ïH�*1ÀH�5¼IƒÀèÃÛÿÿHƒÄ0[]A\A]A^ÃfDH‹JëÇf.„H¸ÿÿÿÿÿH�5oF H‰ïH!ÆèôÚÿÿH‰ï¾ðØÿÿè÷Úÿÿ¾þÿÿÿH‰ïè:Úÿÿé"þÿÿDATUSH‰ûHƒìpèØÿÿƒøtH�¾H‰ßèwØÿÿ¾íØÿÿH‰ßèZØÿÿH‰ÅH…À„H‰ßH�T$¾H‰l$XèGÙÿÿH‹|$ÇD$`H‰D$ó~D$flÀ)D$@Hƒÿv€8tk€xteDè[ÙÿÿL�d$ H�l$@L‰æH‰ïH‰D$Pè±óÿÿL‰âH‰îH‰ßèóúÿÿL‰æH‰ïè˜óÿÿƒ|$ uAH‹|$PèÇÚÿÿHƒÄp¸[]A\Ãf„H‰ßH�5†1Àè_ÚÿÿH‹|$누H‹|$Pè†Úÿÿ‹D$ H‹L$0ƒø t H�7 H‹ ÂL‹D$(H�|H‰ß1ÀH�5IƒÀè Úÿÿévÿÿÿ€H�5QH‰ß1ÀèïÙÿÿéÌþÿÿf.„AWA‰×AVAUATI‰ô¾ÿÿÿÿUH‰ÍSH‰ûHƒìè Úÿÿƒø‡ƒH� x‰ÂA‰ÂHc‘HÈÿàfDºÿÿÿÿH‰îH‰ßèHÛÿÿE1ÒHƒÄD‰Ð[]A\A]A^A_ÃE�oE;¬$4޾E‹„$@E…À„mD‰êH�5“H‰ß1Àè9Ùÿÿ¾ÿÿÿÿH‰ßè¬ÙÿÿÇ$‰D$ …À…ÙH‰ßE1öèÙÿÿÇD$ë-@fïÉò*L$f/Ávò,À‰D$¾þÿÿÿH‰ßAƒÆè·Õÿÿ¾þÿÿÿH‰ßèJÖÿÿA‰Â…À„_¾þÿÿÿH‰ßèÙÿÿƒø…„¾þÿÿÿH‰ßè¬×ÿÿfïäf.ÄztkòÈf(Èò-Ôf(ØfTÊf.év3òH,ÀfïÉò5½fUÐòH*Èf(ÙòÂØfTÞò\Ëf(ÙfVÚf.Ãzuf/‹ƒ%ÿÿÿ¾ýÿÿÿH‰ßèøÔÿÿ‹t$ …ö…¼H‹EH‹UH)ÂH�pHƒú„…H‹UH‰uH‰ßE1öÆ{èì×ÿÿ1Òf.„¾þÿÿÿH‰ß‰T$è?Õÿÿ‹T$A‰ÂH‹EE…Ò„3�JH‰$‰L$…Ò…èIƒ¼$PtFH‹EH‹UH)ÂH�pHƒú„¤H‹UH‰uÆ E…í~E1öI‹´$PH‰ïAƒÆèü×ÿÿE9îuç¾þÿÿÿH‰ßèŠ×ÿÿƒø„±ƒø„¨A‹”$@…Ò„x¾þÿÿÿH‰ßè[×ÿÿH‰ß‰ÆèñÖÿÿH� zH�5kH‰ßH‰Â1ÀèæÖÿÿIƒ¼$Pt%H‹EH‹UH)ÂH�pHƒú„ H‹UH‰uÆ H‰éD‰êL‰æH‰ßèÅüÿÿ…ÀtHc$¹H‰E‹D$ƒøEȉL$¾þÿÿÿH‰ßA¾èSÓÿÿ‹T$éšþÿÿf.„H‹uH‰ðH÷ÐHEHƒø†€HuÇnullHƒEé¯üÿÿ@¾ÿÿÿÿH‰ßèSÓÿÿH…À„ ¾ÿÿÿÿH‰ßè=ÓÿÿH�æ@ E1ÒH¹ÿÿÿÿÿH!ÊH9Ð…hüÿÿH‹EH‹UH)ÂH�pHƒú„�H‹UH‰uÆ[H‹EH‹UH)ÂHƒú„ZH‹UH�HE1ÒH‰MÆ]éüÿÿ¹ÿÿÿÿH‰êL‰æH‰ßèìÿÿE1ÒéøûÿÿD¾ÿÿÿÿH‰ßè{ÒÿÿH‹uA‰ÂH‰ðH÷ÐHEE…Ò„‘Hƒø†ÇHuE1ÒÇtrueHƒEé«ûÿÿE‹”$hE…ÒuSA‹„$@…À„«¾ÿÿÿÿH‰ßD‰T$èQÕÿÿH‰ß‰ÆèçÔÿÿH� rH�5aH‰ßH‰Â1ÀèÜÔÿÿD‹T$éMûÿÿf�Aºé@ûÿÿDHƒøvHuÇfalsÆFeHƒEéûÿÿf�HƒÆH‰ïD‰T$èÿÒÿÿH‹uD‹T$ëÊ@HƒÆH‰ïèäÒÿÿH‹ué$ÿÿÿH‰ïD‰T$è›ÔÿÿD‹T$é>ÿÿÿ�¾ÿÿÿÿH‰ßèÃÔÿÿH�5$? H‰ßH¸ÿÿÿÿÿH!Æè—Óÿÿ¾ðØÿÿH‰ßèšÓÿÿ¾ÿÿÿÿH‰ßºþÿÿÿèØÓÿÿ¾ýÿÿÿH‰ßA‰ÆèØÐÿÿE…ö„ãûÿÿ¾ÿÿÿÿH‰ßèÒÿÿA¹A‰Àf„H‰éD‰êL‰æH‰ßèÿE1Òé2úÿÿ€H‰ÂH�pH‹EH)ÐHƒø„H‹EH‰uÆ,éïûÿÿ€H‰îºþÿÿÿH‰ßè0ÕÿÿH‹uH‹EH)ðHƒø„ãH‹EH�VH‰UÆ0:é`üÿÿfDH¸ÿÿÿÿÿH�5> H‰ßH!Æè”Òÿÿ¾ðØÿÿH‰ßè—Òÿÿ¾ÿÿÿÿH‰ßºþÿÿÿèÕÒÿÿ¾ýÿÿÿH‰ßA‰Æ…À„èÍÏÿÿ¾ÿÿÿÿH‰ßA¾è ÑÿÿA‰ÀE‰ñéÿþÿÿ€HƒÆH‰ïD‰T$è'ÑÿÿH‹uD‹T$éaüÿÿf„¾H‰ßèCÏÿÿ…À„-ùÿÿéMùÿÿfDH‹EH‹UH)ÂH�pHƒú„—H‹UH‰u¹þÿÿÿL‰æH‰ßÆ"H‰êèØèÿÿH‹EH‰ÂH÷ÒHUHƒú†HHE¹":f‰HƒEé4ûÿÿf.„H‹EH‰ÂH÷ÒHUHƒú†øHEE1ÒÇnullHƒEé\øÿÿ�H‰ïèÒÿÿ醸ÿÿH‰ïè8ÐÿÿH‹EH�péGúÿÿH‰ïè ÐÿÿH‹EH�péáúÿÿH‰ïèØÑÿÿé{úÿÿH‰ïèøÏÿÿH‹UH�réãýÿÿH‹UH�pH)ÂE…ötYIƒ¼$PtNHƒú„$H‹UH‰u1ÛÆ E…ÿ~"I‹´$PH‰ïƒÃD‰T$èØÑÿÿA9ßD‹T$uÞH‹EH‹UH�pH)ÂHƒú„xH‹UH‰uÆ}éo÷ÿÿ@èËÍÿÿH�G¾ÿÿÿÿH‰ßè·Ðÿÿ‰$…À„³÷ÿÿ¾þÿÿÿH‰ßèÏÿÿº¾H‰ßè­Îÿÿ¾ÿÿÿÿH‰ßè°Ïÿÿ¾þÿÿÿH‰ßòD,ÀD‰D$èiÍÿÿD‹D$é¨ýÿÿ€HƒÆH‰ïèÜÎÿÿH‹uéýÿÿA‹„$,…ÀŽ˜D¯ð‹D$D9ðއA;„$0�!D‹ $D‹D$H‰éD‰êL‰æH‰ßD‰T$ èRD‹T$ éƒöÿÿ„H�pH‰ïèdÎÿÿH‹EéóýÿÿH�pH‰ïèLÎÿÿH‹Eé£ýÿÿH‰ïè8ÎÿÿH‹EH�péTýÿÿ‹|$…ÿ�{ÿÿÿ…Ž÷ÿÿA‹„$D‰D$…À…z÷ÿÿé\ÿÿÿH‰ïD‰T$èðÍÿÿH‹ED‹T$H�péiþÿÿH‰ïèÖÍÿÿH‹EH�péf÷ÿÿH�pH‰ïè½ÍÿÿH‹Eé‘ùÿÿH‰ïè¬ÍÿÿH‹EH�pé[ùÿÿH‰ïD‰T$è’ÍÿÿH‹ED‹T$H�pé½ýÿÿAƒ¼$(…éöÿÿAƒ¼$@t5ƒÎÿH‰ßè;ÏÿÿH‰ß‰ÆèÑÎÿÿH� CH�5K H‰ßH‰Â1ÀèÆÎÿÿé©öÿÿH‰ïèùÎÿÿëÁ€AT¾íØÿÿUH‰ýSHƒì0èËËÿÿH‰ÃH…À„¯H‰ïèGËÿÿƒøtH�: ¾H‰ïè®Ëÿÿ‹“@…ÒtTHǃL�£L‰á1ÒH‰ÞH‰ïèbôÿÿI‹T$I‹4$H‰ïèÁÍÿÿ‹ƒ@…Àt'HƒÄ0¸[]A\Ãf„I‰ä1öL‰çè#Ëÿÿë¯�L‰çè8ÎÿÿHƒÄ0¸[]A\Ãf.„H�51H‰ï1ÀèÏÍÿÿé;ÿÿÿf.„AWI‰ÏAVAUA‰ÕATI‰ôUH‰ýSHƒì(H‹AH‹QD‰L$H)ÂH�pHƒú„I‹I‰wÆ[E…ÀŽÓA‹GÇD$»‰D$ A�@ÿHƒÀH‰D$f�Iƒ¼$P‰\$tJI‹GI‹WH)ÂH�pHƒú„àI‹I‰wÆ E…í~!E1öDI‹´$PL‰ÿAƒÆè¬ÍÿÿE9õuç‹D$…À„ƒ‹T$¾ÿÿÿÿH‰ïèºÊÿÿL‰æH‰ïL‰ùD‰êèéòÿÿ¾þÿÿÿH‰ï…ÀtHcD$ ƒ|$I‰Gt}èˆÉÿÿH9\$„¥I‹GI‹WƒD$H)‰D$ H�pHƒútoI‹I‰wÆ,HƒÃéÿÿÿH‰ÞH‰ïè}Êÿÿ¾þÿÿÿH‰ïèÐÊÿÿéqÿÿÿL‰ÿè°ÊÿÿI‹GH�pé ÿÿÿè ÉÿÿH9\$t,A‹G‰D$ ë¦f.„L‰ÿèxÊÿÿI‹GH�pé|ÿÿÿI‹GI‹WH)ÂH�pIƒ¼$PtLHƒú„–I‹I‰wA�mÿ1ÛÆ Aƒý~DI‹´$PL‰ÿƒÃèUÌÿÿ9ëuéI‹GI‹WH�pH)ÂHƒút %zd %gError: wide characters found or printf() bug.à?;\*8¸ÿÿxX¼ÿÿ]¼ÿÿ(½ÿÿ X½ÿÿ¸X¾ÿÿ(¿ÿÿhÈ¿ÿÿ”xÄÿÿHÅÿÿLøÅÿÿ„ÈÆÿÿÀˆÈÿÿ(Éÿÿ0XÊÿÿhøÊÿÿ”˜ËÿÿÀ8ÌÿÿìhÍÿÿ0˜ÎÿÿtÈÏÿÿ¸hÐÿÿähÑÿÿ(Òÿÿ<˜ÔÿÿxèÛÿÿ¼8àÿÿ„¸áÿÿ¸èìÿÿØíÿÿHxðÿÿ”˜ðÿÿ¬hñÿÿèòÿÿ ˆòÿÿ ØòÿÿL Hóÿÿl Èóÿÿ¤ ˜ôÿÿÔ (õÿÿ ¸öÿÿ„ ¸÷ÿÿÄ zRx �$¸¶ÿÿ FJ w€?;*3$"D€»ÿÿ&Da8\˜»ÿÿôB�BŒA †F(ƒD@¦ (A ABBE zRx �@ƒ†Œ�$<ºÿÿ<Ì(¼ÿÿµBŒF†D ƒG0d  AABE p AAB( ¨¼ÿÿ§AƒG Y MJ I AF D8,½ÿÿ©BŽN�I ŒA(†D0ƒTÀ 0F(A BBBD zRx �Àƒ†Œ�Ž(U¹ÿÿ4¸\ÁÿÿÁB�PŒA †D(ƒK`“(F ABB4ðôÁÿÿ¢A†IƒG R FAF V FAC 8(lÂÿÿÆBŒA†D ƒn FBC F FBB @dÃÿÿ½BŽB�B ŒA(†A0ƒGpœ 0F(A BBBH (¨|Äÿÿ“A†AƒG K FAE 4ÔðÄÿÿ+A†AƒG m FAC M FAD ( èÅÿÿ“A†AƒG K FAE (8\Æÿÿ“A†AƒG K FAE (dÐÆÿÿ“A†AƒG K FAE @�DÇÿÿ"BŽB�B ŒA(†A0ƒGpf 0F(A BBBF @Ô0Èÿÿ"BŽB�B ŒA(†A0ƒGpf 0F(A BBBF @Éÿÿ"BŽB�B ŒA(†A0ƒGpf 0F(A BBBF (\Êÿÿ“A†AƒG | KAO (ˆ|ÊÿÿöA†AƒG � FAC (´PËÿÿ³A†AƒG j AAK 8àäËÿÿhB�EŒD †F(ƒG@_ (A ABBC @ÎÿÿPBŒA†A ƒD0×  AABE Ê  GABE Ä`$ÕÿÿKBŽB�B ŒA(†D0ƒG`i 0A(A BBBE ² 0A(A BBBF < 0A(A BBBD N 0A(A BBBJ M 0A(A BBBK L 0A(A BBBD I 0A(A BBBG 0(¬ØÿÿvBŒA†A ƒG�Ò  FABJ H\øÙÿÿ) B�EŽB �B(ŒI0†D8ƒGP@ 8D0A(B BBBD @¨ÜäÿÿæBŒF†D ƒDP}  FABJ \  FABK Hìˆåÿÿ—B�EŽB �E(ŒD0†D8ƒD`) 8A0A(B BBBC 8ÜçÿÿDN8PäçÿÿÁB�PŒA †D(ƒK`“(F ABBŒxèÿÿ¬AƒGਠéÿÿeAƒ} B (Ä`éÿÿEA†IƒD c DAA ð„éÿÿiAƒf I t4Ôéÿÿ€BŒA†D ƒq ABE |AB,HêÿÿÉBŒA†A ƒw ABB (x¼êÿÿ‡A†DƒG xAA€¤ ëÿÿ�LŽE�B ŒD(†D0ƒDp” 0A(A BBBE v 0A(A BBBB H 0E(A BBBD I 0A(A BBBA <( ,ìÿÿùH†HƒJP� AAD P AAF nAAh ììÿÿqD G A 0"ð!`} "a.a8aDaNaWa`ajata{aƒa‹a‘aža¦až 0 D]P} X} õþÿoðx X × €  þÿÿoè ÿÿÿoðÿÿoP ùÿÿo[~ fv†–¦¶ÆÖæö&6FVfv†–¦¶ÆÖæö&6FVfv†–¦¶ÆÖæö  & 6 F V f v † – ¦ ¶ Æ Ö æ ö !!&!6!F!V!f!Ø]Rß]PEæ]à4^0^ -3^à+G^°3X^P1i^€2�^+”^@.«^p/Â^€6àa°0Þ^€5ì^à$E`~^š]E`~^I`P`W`^`e`l`s`z`�`„`‡`Š`‘`”`—`ž`¥`¬`³`º`Á`È`Ï`Ö`Ý`ä`ë`ò`ù`aaaa _aa.GA$3a10Q]cjson.so-1.49.0-1.el8.x86_64.debuga7êý7zXZæÖ´F!t/å£à¯þ]?‘E„h=‰¦ÚŠáƒ2NÙ$i÷´ÔêøÒ°Ph×w9Áž®ÅÞM¿ß³WÑûAh/ÌÓêlgWƒÉ�ok0]ÉnÌH¿Ö›[l'�R’s6ýŒTÝá2Öc‰Â€Ï73&uØßÕüâБç Ȫìg*¤RÄDòI�¤‹©1ö¤8W´å;¦Ô@psÉ?�[€"²Ô!îh§�‡‡—Ÿõ¹éê\ -‡q –ÒFì§µßõ«•n±Ã(ÄîZ¦Ü$ØŒ•»3+¼wøV_Ó)®Î!:Ä�Þ׃/ÁgÄ*†£?ÓÔ»–%üÿ®®t�¿.ðŒ�ñíŸ}Œ4Ÿ¸x)<øU¨�á Ô˜5h:Í®þOn‹¼_ó7Ï]¬ŽvÐ{—oc H 8Ýèx¥\+›Dñèd 6–š÷´?Ô�ò¦‹ |&èÞ+^cxqr˜&rwÙVÏ´Q2»ÔU÷‡‡#€EÜÿ¬�À8ç� é{Ü€ªE§ ˆýìïŠä™z˜Påd“n÷%�5¯aÚ¦0®|U\ð9úçÙ»\íþ+ÂÎÛ?k¾ÔRµ Þ»"-ò€tÑç0ºvä?s�]w낱éÿ‡:ª~é&¦ÁákíŠÒ†‰LNº&með7-H¿'Ê…YBH�Óó7<©6XIÀ‰¼«ª±¨4uëœÛz#"ž¿NiŽ Ÿ©;ÛÊ$?õQþ2¬õÎikzôqÜJ”0ÇBôás&Æ R)IBdiBÁÉú‹Ž–ãÆ®L I4§»tÞ¬(Ôw.øŠûÞ;µ¼B ô\j\À†ÏOwdz"&Gó…0òM‡HN7·µ€&—2ÒLTŠm¬Æ§ ôÏ1´Øñ›=î¹50ËE ¼ÔÎOPj÷T7cl€:ó9g6Ù÷Uë5#Àç Ò Ù»\ìÏ„eu ëNç¾ÿkóä¾É[ ׸Làõ{¿*Äî•I†F޹׆*©7"Ïú;Ÿ(°±†TÞÌ~NyÒã"ûê´Š°¶¡àîkÿé›ã‰~UlsFŸŠƒAÝkr4¹½�ÙŒÛ%�#¨OÂЀ"t9t…¿ÔÁ-aê'dšAUnã}ŠšSd-å $ Ÿ$…ˆo¶JŠ»×*ßþ}ÖÐSgö/håÁ:T�—R?TØP�ÌÐ ¸på.K�Õ…ö/ÈUm¸ŸDèf?ج â)“E‡ç#�ƒ'W7ÔŒbÅ»Õç ¢I�!›×î„챪I±�è,¯~SÚ åa�™éuûâüŽ)W òÞ¯ÑË&~�OjŽ YYG£"DêˆÀ~g4eýï_×°)ä6Èï:$ż¹¼c™ÉÃR=^à‘È~þðªÚw?Pg…¼:GqdñßRµ© Þ;QÖFxU÷býž°¹&0P8jö0Cd2f2¾Þƒ²ýzB¹Úü¼’òbÑ´%ÿìÁd‹R¡æ­÷µúMÁú`m‹ñ9_¶¡*l²ÖgÚnîÉ8ç�Ôº¢iÕ“ÎD*# œû‡‚©’Í®ÝãÂÐŽ~;ú5à vZÆ-~ÓSÓ„œ÷G83‡oü67€kÌd’µàõGXÑu8p„@xí@8@ - - 0000.00.à€� 0=0=.0=.ððÈÈÈ$$Påtdh� h� h� ôRôRQåtdRåtd0000.00.ÐÐGNU�‘½�µÀB~wØÀ_ r—­šqaó "aHP€ ¤�„@¦â` 8 > €$+â"ˆ0€ ’@ €Q @b@€@$‰ d���B# %!@ ÀB`0 !@ ' `€€`j‰óôõö÷øùûüÿ     "#$&'()*+/01345679:=>@CDFHLORSTUXYZ\]�탽‘‹Ä%˜¼©�(ŠM•é™=¯4æý*š¯³efç*‘ç°©:õ÷‹Þá<³|o¯€×í£LWè5|a æ�xÖqEhÅ-7·¿Àôî/ Kt–îØHˆu¸ ]—¾ÏôÉ 0…[¡<ÞÇM?ÿŽiHÊ<´5Rj5Bþ›KG€0Írä×»ô½=9®%3Ÿú¶‹îwN¬„$7ð” ™(ä;$Uó;d‘;XQ¦½?[ A0 }'FŸ496Vˆ"¹±à2ý'q[ýZ‚!´#ö!nQ <ÖòFùJ2G¯1æ “G#%wDè7/KªÒ «7 &$!6%úüª3n¨�ëíLiFˆOC<z#X^ß$c ÛWþˆgö9æ3]Y6HÌ/ Hf3,*Ï ™a@ô"Õ@ôC­¹úR¡+ ²N"kK$H~=É i2G&Õ_Tà ÙB5'`!ðZ_ÅA$Ð4¯&¸^õ5!]Ì1s e#M[ÝN¼8ö^f`S^Ê=ÈIB/ @Í �& 3ªBYUáQ2Ž@JËlc\ý +W›•8q–Ó=€¤TâZH`w..0q!ÂW}²\EYf Ss R*ãŸ"l]ÅD[#F_j1“}`‘^hCÐàL[Bï@¨š6S,ÔSî»0F±D ¶Eañ ©Ž`+;÷!ûf5§C¨J:ËX¯ 4`,1XÐ+ž5£.qLï&%^Ø.B]ܬa-( `eED"B8KF"@a”%¬R¢V’ +°ÝX`0Y´G“*M8ô *8/A@ü%U¸gXaŒð]Y"Z4å BQ@O[+È"âIÌ?»œo,ò ü !ª?E�IG$�T…@!ƒ$׸J.Í,âGIÉHžAX5 &¹¼/nQP÷p?Ê:SCß8ÖIó2O,aILP!=J:Û:|XºK:=Ê!è~CiIn_Y8VK¸)Û(,Tž"A G¶õAAI(1nVH…6Í8ý;`[å=Ä( 4çT- HCaMx^1î-Oï7à>Z B�>8‡0Ú%2!ÕMMm3I}Ù^±Ì'JW=‰!7X0A}ÀUr5*Ìa3dý8,±,ú? H XWQsZ–?j=~#Ú[R\lXøS%MYAu6¼FϘ(à5I.SXȰ4«G€I ‘_ªKh§:#"Uq ôV"2JHÆ\œ!jS€5è0@ž`[Q:úS¯PÍ.ä>5RÍ?èOK0Z-R ì%ý”A:Á t“1½*’CU—3̘/žÉ<�ÛAh¯õ/‘> [» j;2@Œ_å/ØDr8±%aMåp‘O°Z9#v/€Rj7p„JÊ£0Ž;„<Ç B ’@ï8Ï9xQ½ ™5E¦>d^â]ä?NJÉ]L8Y>�VT€4M 2)èqã”\N»3#UZ¥Z•Y·'>U7('Ø7§Q žN½Vî$Cô=ÊÝ6—,D-¼¶=5;U”U A�adTþGñM"Y˜L> Ôß'5P\< K›%E¬Oã"lN\÷Oú?ÈôùGX% KÍ7)Z;b �6'C=è"q:I´Q»<Z8L“CcRaO^/ìJf&p'QPð6Ö<¦$D3â žÖ#uO8‰¤9-#N@*ØT˜X¸7^'ñ %Û-Ž4Ž"/´IÏQ‰3 �/÷1ö*û?BT_]ñ:* PÎy@Ø!K )Yh3×yYÐ-ÊE4»"ÿM<p9© 6&Š(:$1_2U›L/ÑMû # : l<wÕUÛ…9‘+D4)"EP W`X È6>V>Œ#Â;ŽNîþ]Š'k°]�UOyüÏ5'¨G'kl#Z‚ ÈcKéWË[ÆÈ_½5”Ù\›Q6D®[…#IA&`$?7Š ã?�]³!݈‰9�'©)Á?299µ¸–[ÚÓý x&S�[a`Zt\ðBIK;€E2 ‡D×Z­#RMEUVî`Jd­;òò( ™0@xS|AŠ&i'RS¨F&º !PÅ>ÜH­æù,:CÞR 0èKô]_ • �Ä#Ê—]ê_oJ#Rä,G€*20T—Jxo²L©‚ Ñ07–OÌ*m@š=ŽDS¿&@.É�<’.Ýr ™)çY°5§8¾@ƒ)z7:u;½‚L¹+TR­/�K˜¼? .ç=ňV”?ýN¢SŸ#K ½#yÐGõoŽcW«Uôja¾(ª^ì.- 2”H:^Õ"vBŽ!_SNÒ;bó< ‘=¿-ž¯ƒ:ØVWIú$!,9 É%p Ê2’Zä1“SÐæ ÎP#d$ á%l0]*C+8_;äM ?‰‹?TD> VL¢œ4ð1é^ÂSE(è[­{H-< �F" C¼¾[ _à!yG„®,CÞ4f) ‚QÂB} ç+&dJ>)Üõá#WÔ jUÖ1R3-Q¦´~K1Þ*3B² ¢ ² ‡Zr(ò!, Ù@÷#+-ÍX4 ´X^ úK�J›.<LB?®<U5¾í ÊN–DQ1f }+ÈL×ä<‡  Of89aH>—?ÊXª@™;¦*‚7£'FRR ¦M�‘BZ/0JT™è;xë rª êì›95 éa ùõ 9>Ä wºÀ�.(òU nü -� êëùn Õ ¦#E Á¢e Üù[ÁO Ãh -r$ òç>¶$ ¿è¥5 ›ý ý9 QÖ [† œO]Ø Ë! Ô^-2 P¡8¦ #�; ¡Ñ1V �+ / «–­C «ýc; ¬)P) ö’ oêP âb u  z½þþD &£†œ {!o\ N7 \± þÙP t¦ [æa±. §: ¾ v8sW ñá�,3 m`Ôf úƒ[6 ¦Kº™ ¹ý �V-ã µQ¹T k¡ -È^ _L ìQ Œ. -E 6QÎÿ ªw¥J Ú#è YÉ� ês \•  lPsÁP < [F; y’yía±.D ɤ ³8% ƒ�P íj [ù  `M£ë) %ÜKÖW0±.�- ði ýÛ  ê! Â p1\ ª7 ÃDV ½- ê ß1 ˆ¡ŒH O™… R*î4 ¹/ ýÌ ÷AH È›uZP •£ [Û ‹gõâC ¤ °  .Rn�  ùOs[ N ‰ûP Ì, Àˆ Ó }¦ ýsó q-ý�$ 0è�… 6E`s Ù uä —KÅ Š#‰\ × M©P eÔ [¬H ˜¢ ýÛ  gøÄU �Í `% çÔ Áê). %_sñ3 À` )qP ¶0 [Ô ßPWn- nÖ·" $É[% 2ƒ‚1 ¢­ð ݶ{€% 6¼ ‰Q¼ 1£__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalize__xpg_strerror_rstrerrorlua_gettoplua_typelua_settopluaL_loadbufferlua_errorlua_pushvaluelua_insertlua_callluaL_errorlua_pushnumberlua_equallua_lessthanlua_tobooleanlua_replacelua_objlenluaL_callmetalua_typenamelua_pushlightuserdatalua_rawgetlua_rawsetlua_tonumberlua_isnumberlua_checkstacklua_pushstringlua_tolstringlua_gettablelua_createtablelua_settablelua_pushcclosurelua_getfieldlua_setmetatablelua_touserdatalua_getmetatablelua_rawequallua_getstacklua_pushnillua_removelua_concatlua_nextlua_getinfolua_pushfstring__errno_locationlua_pushbooleanstrchrlua_loadfeoffreadgetcstdinfopenfreopenferrorfcloselua_pushintegerlua_newuserdatamemcpylua_pushlstringlua_setfieldlua_pushthreadmemsetstrtod__ctype_b_locluaL_getmetafieldlua_topointerlua_isstringauxiliar_checkbooleanluaL_checklstringCRYPTO_mallocbin2hexhex2binCRYPTO_freeload_bio_objectBIO_f_base64BIO_newBIO_s_memBIO_set_flagsBIO_pushBIO_ctrlBIO_writeBIO_readBIO_free_allBIO_freelua_rawsetiauxiliar_checkoptionOBJ_NAME_do_all_sortedERR_get_errorluaL_optintegerERR_reason_error_stringERR_lib_error_stringERR_clear_errorERR_print_errorsRAND_addluaL_optlstringRAND_file_nameRAND_load_fileRAND_write_fileopenssl_pushresultRAND_statusluaL_checkintegerluaL_argerrorRAND_bytesopenssl_engineOPENSSL_thread_stopOPENSSL_cleanupOPENSSL_init_cryptoOPENSSL_init_sslOSSL_PROVIDER_loadluaopen_opensslopenssl_register_lhashopenssl_register_engineluaopen_bioluaopen_asn1luaopen_digestluaopen_cipherluaopen_hmacluaopen_macluaopen_paramluaopen_kdfluaopen_pkeyluaopen_ecluaopen_x509luaopen_pkcs7luaopen_pkcs12luaopen_ocspluaopen_tsluaopen_cmsluaopen_sslluaopen_bnluaopen_rsaluaopen_dsaluaopen_dhluaopen_srpauxiliar_getgroupudataASN1_TYPE_newASN1_TYPE_setASN1_INTEGER_newASN1_INTEGER_setASN1_TYPE_set_octetstringASN1_STRING_typeASN1_TYPE_set1auxiliar_setclassASN1_TYPE_freeposrelatASN1_get_objectASN1_put_objectstrcmpASN1_STRING_type_newASN1_STRING_setBN_getBN_to_ASN1_INTEGERBN_freeASN1_GENERALIZEDTIME_newASN1_GENERALIZEDTIME_setASN1_GENERALIZEDTIME_set_stringASN1_GENERALIZEDTIME_freeASN1_UTCTIME_newASN1_TIME_setASN1_TIME_set_stringASN1_UTCTIME_freeOBJ_txt2nidOBJ_nid2objOBJ_txt2objOBJ_sn2nidOBJ_ln2nidOBJ_createASN1_OBJECT_newd2i_ASN1_TYPEauxiliar_checkclassASN1_TYPE_get_octetstringASN1_TYPE_cmpASN1_STRING_dupi2d_ASN1_TYPEopenssl_push_asn1typeOBJ_dupauxiliar_tostringOBJ_obj2nidOBJ_nid2snOBJ_nid2lnOBJ_obj2txtOBJ_cmpi2a_ASN1_OBJECTASN1_OBJECT_freed2i_ASN1_OBJECTi2d_ASN1_OBJECTASN1_INTEGER_to_BNauxiliar_checkgroupASN1_UTCTIME_setmktimei2d_ASN1_INTEGERi2d_ASN1_BIT_STRINGi2d_ASN1_OCTET_STRINGi2d_ASN1_NULLi2d_ASN1_ENUMERATEDi2d_ASN1_UTF8STRINGi2d_ASN1_PRINTABLESTRINGi2d_ASN1_T61STRINGi2d_ASN1_IA5STRINGi2d_ASN1_UTCTIMEi2d_ASN1_GENERALIZEDTIMEi2d_ASN1_VISIBLESTRINGi2d_ASN1_GENERALSTRINGi2d_ASN1_UNIVERSALSTRINGi2d_ASN1_BMPSTRINGd2i_ASN1_INTEGERd2i_ASN1_BIT_STRINGd2i_ASN1_OCTET_STRINGd2i_ASN1_NULLd2i_ASN1_ENUMERATEDd2i_ASN1_UTF8STRINGd2i_ASN1_PRINTABLESTRINGd2i_ASN1_T61STRINGd2i_ASN1_IA5STRINGd2i_ASN1_UTCTIMEd2i_ASN1_GENERALIZEDTIMEd2i_ASN1_VISIBLESTRINGd2i_ASN1_GENERALSTRINGd2i_ASN1_UNIVERSALSTRINGd2i_ASN1_BMPSTRINGASN1_STRING_lengthASN1_STRING_get0_dataASN1_STRING_cmpASN1_STRING_freeBN_bin2bnBN_bn2hexASN1_TIME_printASN1_GENERALIZEDTIME_printASN1_STRING_print_exASN1_STRING_to_UTF8openssl_push_asn1ASN1_TIME_checkASN1_UTCTIME_adjASN1_GENERALIZEDTIME_adjASN1_TIME_diffauxiliar_newclassauxiliar_add2groupauxiliar_enumerateopenssl_get_asn1objectauxiliar_getclassudataopenssl_push_asn1objectASN1_INTEGER_dupopenssl_push_asn1integer_as_bnauxiliar_openluaL_newmetatablesnprintfauxiliar_typeerrorBIO_new_bio_pairBIO_s_nullBIO_new_socketBIO_new_dgramBIO_new_fdBIO_new_fileBIO_new_acceptBIO_new_connectBIO_s_connectluaL_checkoptionBIO_f_bufferget_cipherBIO_f_cipherBIO_set_cipherget_digestBIO_f_mdBIO_f_sslBIO_test_flagsBIO_getsBIO_putsBIO_method_nameBIO_popBIO_up_refBIO_find_typeBIO_nextBIO_method_typeBIO_ssl_shutdownSSL_up_refopenssl_newvalueBIO_int_ctrlopenssl_add_method_or_aliasopenssl_add_methodEVP_CIPHER_CTX_newEVP_EncryptInit_exEVP_CIPHER_CTX_set_paddingEVP_CIPHER_CTX_get_block_sizeEVP_EncryptUpdateEVP_EncryptFinal_exEVP_CIPHER_CTX_freeEVP_DecryptInit_exEVP_DecryptUpdateEVP_DecryptFinal_exEVP_CipherInit_exEVP_CipherUpdateEVP_CipherFinal_exEVP_CIPHER_get0_nameEVP_CIPHER_get_block_sizeEVP_CIPHER_get_key_lengthEVP_CIPHER_get_iv_lengthEVP_CIPHER_get_flagsEVP_CIPHER_get_modeEVP_BytesToKeyEVP_CIPHER_CTX_get0_cipherEVP_CIPHER_CTX_get_key_lengthEVP_CIPHER_CTX_get_iv_lengthEVP_CIPHER_CTX_get_nidEVP_CIPHER_get_typeluaL_checkanyEVP_CIPHER_CTX_ctrlformatbio_is_derd2i_CMS_bioPEM_read_bio_CMSSMIME_read_CMSSMIME_write_CMSPEM_write_bio_CMS_streami2d_CMS_bio_streamCMS_ContentInfo_newCMS_data_createCMS_compressCMS_uncompressopenssl_sk_x509_fromtableCMS_signX509_freeOPENSSL_sk_pop_freeCMS_verifyCMS_EncryptedData_encryptCMS_EncryptedData_decryptCMS_digest_createCMS_digest_verifyCMS_encryptCMS_add0_recipient_keyCRYPTO_strdupCMS_add0_recipient_passwordCMS_finalCMS_decrypt_set1_passwordCMS_decrypt_set1_keyCMS_decrypt_set1_pkeyCMS_decryptCMS_get0_typeCMS_is_detachedCMS_set_detachedCMS_get0_contentCMS_add1_signerCMS_get0_signersopenssl_sk_x509_totableOPENSSL_sk_freeCMS_dataOPENSSL_sk_new_nullOPENSSL_sk_valuea2i_GENERAL_NAMEGENERAL_NAMES_newOPENSSL_sk_pushOPENSSL_sk_numGENERAL_NAMES_freeGENERAL_NAME_freeCMS_ReceiptRequest_create0CMS_get0_SignerInfosluaL_checktypelua_rawgetiCMS_add1_ReceiptRequestCMS_ReceiptRequest_freeCMS_sign_receiptCMS_verify_receiptCMS_ContentInfo_freeDH_freeDH_sizeDH_bitsDH_get0_pqgDH_get0_keyBN_duplua_isuserdataDH_check_pub_keyDH_checkDH_new_methodDH_newDH_generate_parameters_exDHparams_dupDH_generate_keyEVP_MD_CTX_newEVP_MD_CTX_resetEVP_DigestInit_exEVP_MD_CTX_freeEVP_Digestto_hexEVP_DigestSignInitEVP_DigestVerifyInitEVP_MD_get_typeEVP_MD_get0_nameEVP_MD_get_sizeEVP_MD_get_block_sizeEVP_MD_get_pkey_typeEVP_MD_CTX_get0_mdEVP_MD_CTX_get_size_exEVP_DigestUpdateEVP_DigestFinal_exEVP_MD_meth_get_app_datasizeEVP_MD_CTX_get0_md_dataEVP_DigestSignUpdateEVP_DigestVerifyUpdateEVP_DigestSignFinalEVP_DigestVerifyFinalEVP_DigestSignEVP_DigestVerifyDSA_freeDSA_bitsDSA_get0_pqgDSA_get0_keyENGINE_get_DSADSA_set_methodDSA_new_methodDSA_newDSA_generate_parameters_exDSA_generate_keyBN_newEC_POINT_get_affine_coordinatesEC_POINT_set_affine_coordinatesopenssl_get_ec_groupEC_GROUP_get0_generatorEC_POINT_dupBN_CTX_newEC_GROUP_get_orderEC_GROUP_get_cofactorEC_GROUP_get_asn1_flagEC_GROUP_get_degreeEC_GROUP_get_curve_nameEC_GROUP_get_point_conversion_formEC_GROUP_get_seed_lenEC_GROUP_get0_seedEC_GROUP_get_curveBN_CTX_freeEC_GROUP_freeEC_GROUP_set_asn1_flagEC_GROUP_set_point_conversion_formEVP_PKEY_get1_EC_KEYEC_KEY_get0_groupEC_KEY_freeEC_GROUP_dupEC_GROUP_new_by_curve_nameEC_POINT_newEC_POINT_cmpEC_POINT_oct2pointEC_POINT_point2octEC_POINT_bn2pointEC_POINT_point2bnEC_POINT_hex2pointEC_POINT_point2hexEC_KEY_newEC_KEY_set_groupEC_KEY_generate_keyEC_GROUP_cmpECDSA_do_signi2d_ECDSA_SIGECDSA_SIG_get0ECDSA_SIG_freed2i_ECDSA_SIGECDSA_do_verifyECDSA_SIG_newECDSA_SIG_set0ECDSA_sizeECDSA_signECDSA_verifyEC_POINT_copyEC_POINT_freeEC_KEY_get0_public_keyEC_KEY_get0_private_keyEC_KEY_get_enc_flagsEC_KEY_get_conv_formSHA1ECDH_compute_keyENGINE_get_ECEC_KEY_set_methodEC_KEY_check_keyi2d_ECPrivateKeyd2i_ECPrivateKeyEC_KEY_set_conv_formEC_KEY_set_enc_flagsEC_get_builtin_curvesENGINE_by_idENGINE_get_firstENGINE_get_lastENGINE_up_refENGINE_get_nextENGINE_get_prevENGINE_addENGINE_removeENGINE_unregister_RSAENGINE_register_RSAENGINE_unregister_DSAENGINE_register_DSAENGINE_unregister_ECENGINE_register_ECENGINE_unregister_DHENGINE_register_DHENGINE_unregister_RANDENGINE_register_RANDENGINE_unregister_pkey_methsENGINE_register_pkey_methsENGINE_unregister_pkey_asn1_methsENGINE_register_pkey_asn1_methsENGINE_unregister_ciphersENGINE_register_ciphersENGINE_unregister_digestsENGINE_register_digestsENGINE_register_completeENGINE_cmd_is_executableluaL_checknumberENGINE_ctrlENGINE_ctrl_cmdENGINE_ctrl_cmd_stringENGINE_freeENGINE_set_idENGINE_get_idENGINE_set_nameENGINE_get_nameENGINE_set_flagsENGINE_get_flagsENGINE_initENGINE_finishENGINE_set_default_RSAENGINE_set_default_DSAENGINE_set_default_ECENGINE_set_default_DHENGINE_set_default_RANDENGINE_set_default_ciphersENGINE_set_default_digestsRAND_set_rand_engineENGINE_load_private_keyENGINE_load_public_keySSL_get_client_CA_listENGINE_load_ssl_client_certHMAC_CTX_newHMAC_Init_exHMAC_CTX_freeHMACHMAC_UpdateHMAC_FinalHMAC_sizeBN_hex2bnBN_dec2bnluaL_checkudataBN_num_bitsBN_bn2decBN_bn2binpadBN_is_zeroBN_is_oneBN_is_oddBN_is_negativeBN_cmpBN_sqrBN_set_wordBN_subBN_addBN_mulBN_divBN_nnmodBN_gcdBN_expBN_mod_addBN_mod_subBN_mod_mulBN_mod_expBN_mod_sqrBN_mod_inverseBN_mod_sqrtBN_randBN_generate_prime_exBN_GENCB_newBN_check_primeBN_GENCB_freeCONF_load_bioopenssl_lhash_gcCONF_freeopenssl_lhash_get_numberCONF_get_numberopenssl_lhash_get_stringCONF_get_stringOPENSSL_LH_doall_arg_thunkCONF_dump_bioBIO_new_mem_bufopt_digestEVP_get_digestbynameopt_cipherEVP_get_cipherbynameBN_copyopenssl_push_bit_string_bitnameopenssl_get_paddingstrlenX509_get_subject_nameX509_get0_pubkey_bitstrOCSP_cert_id_newASN1_INTEGER_freeOCSP_cert_to_idOCSP_CERTID_freeOCSP_REQUEST_newOCSP_request_add1_nonced2i_OCSP_REQUESTPEM_ASN1_read_bioASN1_d2i_biod2i_OCSP_RESPONSEOCSP_RESPONSE_newOCSP_BASICRESP_newOCSP_id_get0_infoOCSP_CERTID_dupOCSP_request_add0_idOCSP_REQUEST_get_ext_countOCSP_REQUEST_add_exti2d_OCSP_REQUESTPEM_ASN1_write_bioASN1_i2d_bioOCSP_REQUEST_freeOCSP_request_is_signedOCSP_request_signOCSP_request_onereq_countOCSP_request_onereq_get0OCSP_onereq_get0_idOCSP_REQUEST_get_extX509_EXTENSION_dupOCSP_SINGLERESP_get_ext_countOCSP_SINGLERESP_add_extOCSP_SINGLERESP_get0_idOCSP_single_get0_statusOCSP_response_status_strOCSP_crl_reason_strOCSP_SINGLERESP_get_extASN1_TIME_newOCSP_basic_add1_statusASN1_TIME_freeOCSP_BASICRESP_get_ext_countOCSP_BASICRESP_add_extOCSP_basic_signOCSP_resp_get0_produced_atOCSP_resp_get0_certsX509_up_refOCSP_resp_get0_idopenssl_push_xname_asobjectOCSP_BASICRESP_get_extOCSP_resp_get0_signerOCSP_resp_countOCSP_resp_get0OCSP_resp_get0_signatureOCSP_resp_get0_tbs_sigalgopenssl_push_x509_signatureOCSP_copy_nonceOCSP_response_createOCSP_BASICRESP_freei2d_OCSP_RESPONSEOCSP_response_get1_basicOCSP_response_statusOCSP_RESPONSE_freeTS_MSG_IMPRINT_newTS_MSG_IMPRINT_set_msgX509_ALGOR_newX509_ALGOR_set_mdTS_MSG_IMPRINT_set_algoX509_ALGOR_freed2i_TS_MSG_IMPRINTi2d_TS_MSG_IMPRINTTS_MSG_IMPRINT_get_msgTS_MSG_IMPRINT_get_algoX509_ALGOR_dupTS_MSG_IMPRINT_dupTS_MSG_IMPRINT_freeTS_ACCURACY_newTS_ACCURACY_set_secondsTS_ACCURACY_set_millisTS_ACCURACY_set_microsTS_ACCURACY_freeTS_ACCURACY_get_secondsASN1_INTEGER_getTS_ACCURACY_get_millisTS_ACCURACY_get_microsTS_ACCURACY_dupi2d_TS_ACCURACYd2i_TS_ACCURACYTS_TST_INFO_get_versionTS_TST_INFO_get_policy_idTS_TST_INFO_get_msg_imprintTS_TST_INFO_get_serialTS_TST_INFO_get_timeTS_TST_INFO_get_accuracyTS_TST_INFO_set_accuracyTS_TST_INFO_get_orderingTS_TST_INFO_get_nonceTS_TST_INFO_get_tsaopenssl_push_general_nameTS_TST_INFO_get_extsopenssl_sk_x509_extension_totableTS_TST_INFO_freeTS_REQ_newTS_REQ_set_versionTS_REQ_freed2i_TS_REQ_biod2i_TS_RESP_bioX509_check_private_keyTS_RESP_CTX_newTS_RESP_CTX_set_def_policyTS_RESP_CTX_set_signer_certTS_RESP_CTX_set_signer_keyTS_RESP_CTX_freeTS_VERIFY_CTX_newTS_REQ_to_TS_VERIFY_CTXTS_REQ_dupTS_REQ_get_cert_reqTS_REQ_set_cert_reqTS_REQ_get_nonceTS_REQ_set_nonceTS_REQ_get_policy_idTS_REQ_set_policy_idTS_REQ_get_versionTS_REQ_get_msg_imprintTS_REQ_set_msg_imprinti2d_TS_REQTS_REQ_get_ext_countTS_REQ_add_extTS_REQ_get_extsTS_RESP_freeTS_RESP_dupi2d_TS_RESP_bioTS_RESP_get_tst_infoTS_TST_INFO_dupTS_RESP_get_status_infoTS_STATUS_INFO_get0_textTS_STATUS_INFO_get0_failure_infoTS_STATUS_INFO_get0_statusTS_RESP_get_tokenPKCS7_dupTS_RESP_create_responseTS_RESP_CTX_set_certsTS_RESP_CTX_add_policyTS_RESP_CTX_set_accuracyTS_RESP_CTX_set_clock_precision_digitsTS_RESP_CTX_add_flagsTS_RESP_CTX_add_mdTS_RESP_CTX_get_tst_infoTS_RESP_CTX_get_requestopenssl_valuegetTS_RESP_CTX_set_status_infoTS_RESP_CTX_add_failure_infolua_pcallluaL_refopenssl_valuesetTS_RESP_CTX_set_serial_cbTS_RESP_CTX_set_time_cbluaL_unrefopenssl_freevalueX509_STORE_up_refTS_VERIFY_CTX_set_storeTS_VERIFY_CTX_add_flagsTS_VERIFY_CTX_set_flagsTS_VERIFY_CTX_set_dataTS_VERIFY_CTX_set_imprintTS_VERIFY_CTX_cleanupTS_VERIFY_CTX_freeTS_RESP_verify_responseTS_RESP_verify_tokend2i_TS_RESPopenssl_pkey_is_privatePKCS12_createi2d_PKCS12_bioPKCS12_freed2i_PKCS12_bioPKCS12_parsed2i_PKCS7_bioPEM_read_bio_PKCS7SMIME_read_PKCS7PKCS7_newPKCS7_set_typePKCS7_content_newPKCS7_freeopenssl_sk_x509_crl_fromtablePKCS7_SIGNED_newPKCS7_SIGNED_freePKCS7_set_contentPKCS7_add_certificatePKCS7_add_crlPKCS7_signPKCS7_verifyPKCS7_encryptPKCS7_decryptPEM_write_bio_PKCS7i2d_PKCS7_bioSMIME_write_PKCS7X509_NAME_dupEVP_PKEY_up_refopenssl_sk_x509_attribute_totablePKCS7_ctrlopenssl_sk_x509_algor_totableopenssl_sk_x509_crl_totablePKCS7_set_digestPKCS7_final__assert_failEVP_PKEY_get_idEVP_PKEY_typeEVP_PKEY_get0_RSARSA_get0_keyEVP_PKEY_get0_DSAEVP_PKEY_get0_DHEVP_PKEY_get0_EC_KEYEVP_PKEY_CTX_new_from_pkeyEVP_PKEY_private_checkEVP_PKEY_CTX_freeEVP_PKEY_get_base_idPEM_read_bio_RSAPublicKeyEVP_PKEY_newEVP_PKEY_assignPEM_read_bio_DSA_PUBKEYPEM_read_bio_EC_PUBKEYPEM_read_bio_PUBKEYd2i_RSAPublicKey_biod2i_DSA_PUBKEY_biod2i_EC_PUBKEY_biod2i_PUBKEY_bioPEM_read_bio_PrivateKeyd2i_RSAPrivateKey_biod2i_DSAPrivateKey_biod2i_ECPrivateKey_biod2i_PKCS8PrivateKey_biod2i_PrivateKey_bioEC_KEY_set_public_keyEC_POINT_mulEC_POINT_make_affinestrcasecmpRSA_new_methodRSA_newRSA_generate_key_exRSA_freeRSA_set0_keyRSA_set0_factorsRSA_set0_crt_paramsEVP_PKEY_freeDSA_set0_keyDSA_set0_pqgDH_set0_keyDH_set0_pqgEC_KEY_set_private_keyEVP_PKEY_set1_RSAEVP_PKEY_set1_EC_KEYEVP_PKEY_set1_DHEVP_PKEY_set1_DSAEVP_aes_128_cbcPEM_write_bio_PrivateKeyPEM_write_bio_PUBKEYPEM_write_bio_RSAPrivateKeyPEM_write_bio_RSAPublicKeyPEM_write_bio_DSAPrivateKeyPEM_write_bio_DSA_PUBKEYPEM_write_bio_ECPrivateKeyPEM_write_bio_EC_PUBKEYi2d_PrivateKey_bioi2d_PKCS8PrivateKey_bioi2d_PUBKEY_bioi2d_RSAPrivateKey_bioi2d_RSAPublicKey_bioi2d_DSAPrivateKey_bioi2d_DSA_PUBKEY_bioi2d_ECPrivateKey_bioi2d_EC_PUBKEY_bioEVP_PKEY_get_bitsEVP_PKEY_get_sizeEVP_PKEY_get1_RSAEVP_PKEY_get1_DSAEVP_PKEY_get1_DHEVP_PKEY_CTX_newEVP_PKEY_encrypt_initEVP_PKEY_CTX_set_rsa_paddingEVP_PKEY_encryptEVP_PKEY_decrypt_initEVP_PKEY_decryptopenssl_pkey_is_private1EC_KEY_dupi2d_PUBKEYEVP_PKEY_copy_parametersd2i_PUBKEYEVP_PKEY_CTX_new_idEVP_PKEY_keygen_initEVP_PKEY_keygenEVP_PKEY_CTX_ctrl_strEVP_PKEY_verify_initEVP_PKEY_sign_initEVP_PKEY_verifyEVP_PKEY_signEVP_PKEY_derive_initEVP_PKEY_derive_set_peerEVP_PKEY_deriveEVP_PKEY_CTX_set1_idEVP_MD_CTX_set_pkey_ctxEVP_CIPHER_CTX_resetEVP_SealInitEVP_SealFinalEVP_OpenInitEVP_OpenFinalENGINE_get_RSARSA_set_methodENGINE_get_DHDH_set_methodEVP_PKEY_missing_parametersRSA_sizeRSA_private_encryptRSA_public_encryptRSA_private_decryptRSA_public_decryptRSA_signRSA_verifyRSA_get0_factorsRSA_get0_crt_paramsRSA_bitsd2i_RSAPrivateKeyd2i_RSA_PUBKEYi2d_RSA_PUBKEY_bioRSA_padding_add_PKCS1_type_1RSA_padding_add_PKCS1_type_2RSA_padding_add_noneRSA_padding_add_PKCS1_OAEPRSA_padding_add_PKCS1_OAEP_mgf1RSA_padding_add_X931RSA_padding_add_PKCS1_PSS_mgf1RSA_padding_check_PKCS1_type_1RSA_padding_check_PKCS1_type_2RSA_padding_check_PKCS1_OAEPRSA_padding_check_PKCS1_OAEP_mgf1RSA_padding_check_noneRSA_padding_check_X931RSA_verify_PKCS1_PSS_mgf1DTLS_methodDTLS_server_methodDTLS_client_methodDTLSv1_2_methodDTLSv1_2_server_methodDTLSv1_2_client_methodDTLSv1_methodDTLSv1_server_methodDTLSv1_client_methodTLSv1_1_methodTLSv1_1_server_methodTLSv1_1_client_methodSSL_CTX_newSSL_CTX_set_ciphersuitesSSL_CTX_set_cipher_listSSL_CTX_set_ex_dataSSL_alert_type_string_longSSL_alert_type_stringSSL_alert_desc_string_longSSL_alert_desc_stringSSL_SESSION_newPEM_read_bio_SSL_SESSIONd2i_SSL_SESSIONSSL_CTX_use_certificate_chain_fileSSL_CTX_use_certificateSSL_CTX_use_PrivateKeySSL_CTX_check_private_keySSL_CTX_add_client_CASSL_CTX_ctrlSSL_CTX_freeSSL_CTX_set_timeoutSSL_CTX_get_timeoutSSL_CTX_clear_optionsSSL_CTX_set_optionsSSL_CTX_get_optionsSSL_CTX_get_quiet_shutdownSSL_CTX_set_quiet_shutdownSSL_CTX_load_verify_fileSSL_CTX_load_verify_dirSSL_CTX_get_cert_storeSSL_CTX_set_cert_storeX509_STORE_set_trustSSL_CTX_set_client_cert_engineSSL_newSSL_set0_rbioSSL_set0_wbioSSL_set_fdSSL_set_accept_stateSSL_set_connect_stateSSL_freeBIO_new_sslBIO_new_ssl_connectSSL_ctrlSSL_CTX_set_verify_depthSSL_CTX_get_verify_depthopenssl_verify_cbSSL_CTX_set_verifySSL_CTX_get_verify_modeopenssl_cert_verify_cbSSL_CTX_set_cert_verify_callbackreallocSSL_CTX_set_alpn_protosSSL_get_SSL_CTXstderrfprintfSSL_CTX_set_alpn_select_cbSSL_CTX_get_ex_dataSSL_get_servernameSSL_set_SSL_CTXSSL_CTX_callback_ctrlopenssl_valuegetiSSL_SESSION_get_idopenssl_valuesetiSSL_CTX_sess_set_new_cbSSL_CTX_sess_set_get_cbSSL_CTX_sess_set_remove_cbSSL_CTX_flush_sessionsSSL_CTX_set_session_id_contextSSL_CTX_add_sessionSSL_CTX_remove_sessionSSL_CTX_set_num_ticketsSSL_CTX_get_num_ticketsSSL_get_verify_resultSSL_SESSION_set_timeSSL_SESSION_get_timeSSL_SESSION_set_timeoutSSL_SESSION_get_timeoutSSL_SESSION_freeSSL_SESSION_get0_peerSSL_SESSION_set1_idSSL_SESSION_get_compress_idPEM_write_bio_SSL_SESSIONi2d_SSL_SESSIONSSL_SESSION_is_resumableSSL_SESSION_has_ticketSSL_clearSSL_use_PrivateKeySSL_use_certificateSSL_check_private_keySSL_get1_peer_certificateSSL_get_peer_cert_chainSSL_wantSSL_get_current_compressionSSL_COMP_get_nameSSL_get_current_cipherSSL_CIPHER_get_nameSSL_CIPHER_get_versionSSL_CIPHER_get_idSSL_CIPHER_get_bitsSSL_CIPHER_descriptionSSL_pendingSSL_get_errorSSL_get_fdSSL_is_serverSSL_get_rfdSSL_get_wfdopenssl_sk_x509_name_totableSSL_get_read_aheadSSL_get_shared_ciphersSSL_get_cipher_listSSL_get_verify_modeSSL_get_verify_depthSSL_state_stringSSL_state_string_longSSL_rstate_stringSSL_rstate_string_longSSL_get_versionSSL_versionSSL_get_default_timeoutSSL_get_certificateSSL_get_stateSSL_set_wfdSSL_add_client_CASSL_set_read_aheadSSL_set_cipher_listSSL_set_verify_depthSSL_set_purposeSSL_set_trustSSL_set_verify_resultSSL_acceptSSL_connectSSL_readSSL_peekSSL_writeSSL_do_handshakeSSL_renegotiateSSL_renegotiate_abbreviatedSSL_renegotiate_pendingSSL_shutdownSSL_set_shutdownSSL_set_quiet_shutdownSSL_get_quiet_shutdownSSL_get_shutdownSSL_get_rbioSSL_get_wbioSSL_dupSSL_session_reusedSSL_get1_sessionSSL_set_session_id_contextSSL_set_sessionSSL_get0_alpn_selectedX509_PURPOSE_get_countX509_PURPOSE_get0X509_PURPOSE_get_by_idX509_PURPOSE_get_by_snameX509_verify_cert_error_stringd2i_X509_bioPEM_read_bio_X509X509_newX509_set_versionX509_set_serialNumberX509_REQ_get_subject_nameX509_set_subject_nameX509_REQ_get_extensionsX509_add_extX509_EXTENSION_freeX509_REQ_get_pubkeyX509_set_pubkeyX509_STORE_CTX_newX509_STORE_set_flagsX509_STORE_CTX_initX509_STORE_CTX_set_purposeX509_verify_certX509_STORE_CTX_get_errorX509_STORE_CTX_cleanupX509_STORE_CTX_freePEM_write_bio_X509i2d_X509_bioX509_check_caX509_get_versionX509_get_issuer_nameX509_subject_name_hashX509_get0_serialNumberX509_get0_notBeforeX509_get0_notAfterX509_get0_signatureX509_alias_get0X509_PURPOSE_get_idX509_PURPOSE_get0_snameX509_check_purposeX509_get_ext_countX509_get_extX509_get_pubkeyX509_check_hostX509_check_emailX509_check_ip_ascX509_set_issuer_nameX509_digestX509_set1_notBeforeX509_set1_notAfterX509_cmp_timeX509_get_serialNumberX509_get0_extensionsopenssl_sk_x509_extension_fromtableOPENSSL_sk_deleteOPENSSL_sk_zeroi2d_re_X509_tbsX509_signASN1_BIT_STRING_setX509_ALGOR_set0X509_verifyX509_cmpopenssl_register_xnameopenssl_register_xattributeopenssl_register_xextensionopenssl_register_xstoreopenssl_register_xalgorluaopen_x509_reqluaopen_x509_crlopenssl_new_xattributeX509_ATTRIBUTE_get0_objectX509_ATTRIBUTE_countX509_ATTRIBUTE_get0_typeX509_ATTRIBUTE_dupX509_ATTRIBUTE_freeX509_ATTRIBUTE_set1_dataX509_ATTRIBUTE_get0_dataX509_ATTRIBUTE_set1_objectX509_ATTRIBUTE_create_by_OBJopenssl_sk_x509_attribute_fromtableX509V3_EXT_get_nidX509V3_parse_listX509V3_conf_freeASN1_item_i2dASN1_item_freeX509_EXTENSION_create_by_NIDd2i_X509_EXTENSIONX509_supported_extensionX509_EXTENSION_get_objectX509_EXTENSION_get_dataX509_EXTENSION_get_criticalX509V3_EXT_d2ii2d_X509_EXTENSIONX509_EXTENSION_set_objectX509_EXTENSION_set_criticalX509_EXTENSION_set_dataX509_NAME_newX509_NAME_add_entry_by_OBJX509_NAME_freed2i_X509_NAMEX509_NAME_onelineX509_NAME_hash_exX509_NAME_digestX509_NAME_print_exX509_NAME_ENTRY_get_objectX509_NAME_ENTRY_get_dataX509_NAME_entry_countX509_NAME_get_entryX509_NAME_cmpi2d_X509_NAMEX509_NAME_get_index_by_OBJX509_NAME_delete_entryX509_NAME_ENTRY_freeopenssl_sk_x509_name_fromtableX509_STORE_newX509_STORE_add_certX509_STORE_add_crlopenssl_xstore_freeX509_STORE_freeX509_LOOKUP_fileX509_STORE_add_lookupX509_LOOKUP_ctrlX509_LOOKUP_hash_dirX509_STORE_set_depthX509_STORE_set_purposeX509_STORE_load_fileX509_STORE_load_pathX509_STORE_set_default_pathsopenssl_sk_x509_algor_fromtableX509_ALGOR_cmpX509_ALGOR_get0openssl_pushparamsopenssl_toparamsOSSL_PARAM_construct_intOSSL_PARAM_construct_uintOSSL_PARAM_construct_longOSSL_PARAM_construct_ulongOSSL_PARAM_construct_int32OSSL_PARAM_construct_uint32OSSL_PARAM_construct_int64OSSL_PARAM_construct_uint64OSSL_PARAM_construct_time_tOSSL_PARAM_construct_size_tOSSL_PARAM_construct_doubleOSSL_PARAM_construct_utf8_stringOSSL_PARAM_construct_octet_stringOSSL_PARAM_construct_endEVP_KDF_fetchEVP_KDF_do_all_providedEVP_KDF_CTX_newEVP_KDF_deriveEVP_KDF_CTX_freeEVP_KDF_CTX_dupEVP_KDF_CTX_resetEVP_KDF_CTX_get_kdf_sizeEVP_KDF_CTX_kdfEVP_KDF_CTX_gettable_paramsEVP_KDF_CTX_settable_paramsEVP_KDF_CTX_get_paramsEVP_KDF_CTX_set_paramsEVP_KDF_get0_descriptionEVP_KDF_get0_nameEVP_KDF_get0_providerEVP_KDF_is_aEVP_KDF_names_do_allEVP_KDF_gettable_paramsEVP_KDF_gettable_ctx_paramsEVP_KDF_settable_ctx_paramsEVP_KDF_get_paramsX509_STORE_CTX_get_error_depthX509_STORE_CTX_get_current_certX509_STORE_CTX_set_errorSSL_get_ex_data_X509_STORE_CTX_idxX509_STORE_CTX_get_ex_dataSRP_create_verifier_BNSRP_Calc_BSRP_Verify_B_mod_NSRP_Calc_server_keySRP_Calc_ASRP_Verify_A_mod_NSRP_Calc_xSRP_Calc_client_keySRP_get_default_gNSRP_Calc_uEVP_MAC_fetchEVP_MAC_freeEVP_MAC_is_aEVP_MAC_names_do_allEVP_MAC_get0_providerOSSL_PROVIDER_get0_nameEVP_MAC_get_paramsEVP_MAC_CTX_freeEVP_MAC_CTX_dupEVP_MAC_CTX_get0_macEVP_MAC_do_all_providedEVP_MAC_CTX_newEVP_MAC_initEVP_MAC_updateEVP_MAC_finalEVP_MAC_CTX_get_mac_sizeopenssl_i2s_revoke_reasonopenssl_s2i_revoke_reasonX509_REVOKED_get_ext_d2iASN1_ENUMERATED_freeX509_REVOKED_newX509_REVOKED_set_revocationDateX509_REVOKED_set_serialNumberASN1_ENUMERATED_newX509_EXTENSION_newASN1_ENUMERATED_setX509_REVOKED_add_extX509_REVOKED_get0_serialNumberX509_REVOKED_get0_revocationDateX509_REVOKED_get0_extensionsX509_CRL_newX509_CRL_set_versionX509_CRL_add0_revokedX509_CRL_set_issuer_nameX509_CRL_set1_lastUpdateX509_CRL_set1_nextUpdateX509_CRL_signX509_CRL_freePEM_read_bio_X509_CRLd2i_X509_CRL_bioX509_CRL_get_versionX509_CRL_get0_extensionsX509_CRL_add_extX509_CRL_get_issuerX509_CRL_get0_lastUpdateX509_CRL_get0_nextUpdateX509_CRL_sortX509_CRL_verifyopenssl_crl_signX509_CRL_digestX509_CRL_cmpX509_CRL_diffX509_CRL_get0_signatureX509_CRL_get_ext_d2iX509_CRL_get_REVOKEDPEM_write_bio_X509_CRLi2d_X509_CRL_bioX509_REVOKED_dupX509_REVOKED_freeX509_CRL_up_refPEM_read_bio_X509_REQd2i_X509_REQ_bioX509_REQ_newX509_REQ_set_versionX509_REQ_set_subject_nameX509_REQ_set_pubkeyX509_REQ_signX509_REQ_freeX509_get_ext_by_OBJX509_delete_extASN1_TIME_adjPEM_write_bio_X509_REQi2d_X509_REQ_bioX509_REQ_digestX509_REQ_check_private_keyX509_REQ_dupX509_REQ_verifyX509_REQ_get0_signaturei2d_re_X509_REQ_tbsX509_REQ_get_versionX509_REQ_get_X509_PUBKEYX509_PUBKEY_getX509_REQ_get_attr_countX509_REQ_get_attrX509_PUBKEY_get0_paramX509_REQ_add_extensionsX509_REQ_add1_attrX509_REQ_delete_attrlibcrypto.so.3libssl.so.3libc.so.6_edata__bss_startGLIBC_2.3GLIBC_2.14GLIBC_2.3.4GLIBC_2.2.5OPENSSL_3.0.0OPENSSL_3.4.0OPENSSL_3.3.0/opt/imunify360-webshield/openssl/lib ÜaPii ùa”‘–bti bui bÐa +p&bÁa /p 4b .pBb +p&b00. …80.à„@0.@0.`0.¢Å h0.ܾp0.§Å x0.f¿€0.hÅ ˆ0.Û¿�0.pÅ ˜0.Pà0.™Ä ¨0.ÊÆ°0.AÅ ¸0.XÊÀ0.EÅ È0.NÍÐ0.QÅ Ø0.âÏ1.Ë 1.œ 1.ŒÍ 1.D  1.“Í (1.á 01.—Í 81.X@1.œÍ H1.P1.¥Í X1.H`1.°Í h1.ap1.µÍ x1.­€1.¼Í ˆ1.�1.ÄÍ ˜1.Û 1.ÌÍ ¨1.†°1.ÚÍ ¸1.dÀ1.èÍ È1.FÐ1.þÍ Ø1.E2.ãÙ 2.‡2.èÙ 2.¦‡ 2.iÙ (2.ˆ02.JÙ 82.Z‰@2.rÙ H2.åŠP2.{Ù X2.0Œ€2.Òè ˆ2.Öè �2.Úè ˜2.Ýè  2.àè ¨2.åè °2.íè ¸2.õè À2.úè È2.ÿè à2.Ïî è2.2~ð2.Óî ø2.« 3.Àò (3.â³03.Æò 83.$µ@3.Ìò H3.§±P3.Ñò X3.F½`3.Öò h3. ²p3.Ûò x3.­µ€3.áò ˆ3.ª´�3.çò ˜3.»· 3.íò ¨3.F´°3.@ò ¸3.´­À3.óò È3.Õ²Ð3.ùò Ø3.J³à3.ýò è3.â³ð3.ó ø3.5¸4.ó 4.P¼4.ó 4.n­ 4.ó (4.E±04.ó 84.$µ@4. ó H4.°¶P4.'ó X4.A·`4.+ó h4.»p4.2ó x4.x°€4.8ó ˆ4.4°�4.>ó ˜4.ð¯ 4.Dó ¨4.ͼ°4.Ló ¸4.¬¯À4.Só È4.­µÐ4.Wó Ø4.ª´à4.[ó è4.a¹ð4.bó ø4.Õ²5.fó 5.¼°5.mó 5.»· 5.qó (5.÷¹05.xó 85.û»@5.ó H5.6¶P5.„ó X5.q²`5.ˆó h5.�ºp5.�ó x5.�»€5.—ó ˆ5.F´�5.›ó ˜5.˸ 5.�ñ ¨5.ñ°°5.¢ó ¸5.-®À5.¨ó È5.¦®Ð5.¯ó Ø5.p¯à5.¸ó è5.´­6.N 6.å 6.R 6.i" 6. (6. 06.Y 86.Ý%@6.! H6.Œ'P6.^ X6.‡)`6. h6.¸*ˆ6.‡! ˜6.‹! ¨6.“! ¸6.–! È6.ž! Ø6.¤! è6.«! ø6.°! 7.´! 7.·! (7.À! 87.Ä! H7.‰M P7.›M `7.¬M h7.¼M x7.ËM €7.ÜM �7.ìM ˜7.þM ¨7.N °7.N À7.*N È7.;N Ø7.GN à7.PN ð7.XN ø7.fN 8.sN 8.�N H8.ŽN P8.™N `8. N h8.«N x8.²N €8.¹N �8.¿N ˜8.ÎN ¨8.ÖN °8.ÝN À8.æN È8.íN Ø8.óN à8.ýN ð8.O ø8.O 9.åq (9.}g 09.°q 89.ïf @9.Fq H9. h `9.Ä h9.M p9.È x9.0þ €9.¹ ˆ9. ¨9.’ƒ °9.žƒ À9.ªƒ È9.¹ƒ Ø9.ǃ à9.Õƒ ð9.⃠ø9.öƒ :. „ :.„ :.„ (:.6„ 8:.K„ @:.\„ P:.l„ X:.|„ h:.Š„ p:.ž„ €:.±„ ˆ:.¿„ À:.Ûª È:.­¬Ð:.㪠Ø:.ʱà:.èª è:.§­ð:.ìª ø:. ¯;.óª ;.Lµ;.ÿª ;.¯³ ;.« (;.´0;.« 8;.Ç´@;.« H;.tµP;.$« X;.³`;.0« h;./²p;.6« x;. ³€;.=« �;.D« ˜;.<¶À;.× È;.ÉbÐ;.¶# Ø;.ýià;.º# è;. –ð;.V# ø;.³¤<.Â# <.¯¬<.Ì# <.5² <.Ø# (<.³0<.È 8<.Ôª@<.ã# H<.¼³P<.í# X<. µ`<.ù# h<.åµp<.# x<.ò’€<.# ˆ<.ê¶�<.#  <.)# ¨<. …°<.0# ¸<.w‹À<.È! È<.“¶Ð<.:# Ø<.�à<.B# è<.Ì�ð<.J# ø<.Q =.O# =.À¢=.[# =.ž@j.ë Hj.Ë« Pj.Ó« Xj.Ù« €j.’¯ �j.œ¯  j.¨¯ °j.¹¯ Àj.Á¯ Ðj.ͯ àj.Û¯ ðj.é¯ k.ô¯ k.ú¯ k.þ¯ 0k.° @k.° Pk. ° `k.° pk.° €k.(° �k.3°  k.@° °k.E° Àk.L° Ðk.^° àk.g° ðk.l° l.w° l.†° l.‘° 0l.š° @l.ž° Pl.¬° `l.¼° pl.ư €l.Ô° �l.ã°  l.í° °l.õ° Àl.± Ðl.± àl.± ðl.-± m.;± m.K± @m.‡³ Hm.«ïPm.’³ Xm.Öë`m.ž³ hm.ëpm.©³ xm.äí€m.µ³ ˆm.Îì�m.ɳ ˜m. â m.Ò³ ¨m.Nô°m.ß³ ¸m.jäÀm.ê³ Èm.³æÐm.õ³ Øm.5éàm.þ³ èm.9ïn.´ n.ñôn.œ´ n.;õ n.¢´ (n.gö0n.¦´ 8n.+@n.«´ Hn.Ô÷Pn.¯´ Xn.$÷`n.@¯ pn.º´ xn.gö€n.¿´ ˆn.æö n.Ä´ ¨n.k°n.È´ ¸n.»Àn.+³ Èn.`Ðn.³ Øn.åàn.Í´ èn.jðn.Ñ´ øn.“o.Õ´ o.¸o.Ú´ o.> o.á´ (o.0o.«´ 8o.™@o.º´ Ho.>Po.¿´ Xo.U`o.@¯ €o.'¶ ˆo.��o.´ ˜o.¿ o.Õ´ ¨o.à°o.Ñ´ ¸o.6Ào..¶ Èo.¬Ðo.5¶ Øo.¢ào.õ³ èo.xðo.f­ øo.�p.@¯ p.º´ p.¦ p.¿´ (p.:0p.=¶ 8p.O@p.A¶ Hp.œ Pp.«´ Xp.Î `p.á´ hp.pp.E¶ xp.c€p.H¶ ˆp.Ï�p.L¶ ˜p.® p.Q¶ ¨p.‚Àp.W½ Èp.'…Ðp.̾ Øp.g†àp.Ѿ èp.°‡ðp.×¾ øp.·ˆq.ܾ q.™‰q.â¾ q.þ‰ q.è¾ (q.ŠŠ0q.í¾ 8q.ðŠ@q.ò¾ Hq.9ŒPq.ø¾ Xq.a‹`q.þ¾ hq.–pq.¿ xq.†Œ€q. ¿ ˆq.��q.¿ ˜q.g� q.¿ ¨q.Nްq.¿ ¸q. �Àq.)¿ Èq.þ‰Ðq..¿ Øq.¿�àq.6¿ èq.g�ðq.=¿ øq.“r.E¿ r.a“r.O¿ r._‘ r.X¿ (r.½“0r.[¿ 8r.%’@r._¿ Hr.–”Pr.d¿ Xr._•`r.i¿ hr.Z|pr.འ€r.v¿ ˆr.þ‰ r.{¿ ¨r.¶|°r.€¿ ¸r. zÀr.„¿ Èr.){Ðr.‰¿ Ør."}àr.�¿ èr.½}ðr.X¿ ør.X~s.–¿ s.ó~s.›¿ s.À‚ s.6¿ (s.Á0s.=¿ 8s.F€`s.¯¿ hs.¶¿ ps.½¿ xs.Ä¿ €s.[¿  s.<Å ¨s.vÒ°s.AÅ ¸s.XÊÀs.EÅ Ès.NÍÐs.QÅ Øs.âÏàs.]Å ès.BÔðs.hÅ øs.Û¿t.pÅ t.PÃt.™Ä t.ÊÆ t.@à @t.xÅ Ht.ßÕPt.}Å Xt.¹Ø`t.„Å ht.“Úpt.<Å xt.ÂÛ€t.ŠÅ ˆt.lá�t.�Å ˜t.¤Þ t.•Å ¨t.<Þ°t.�Å ¸t.láÀt.@à àt.«Å ðt.¹Å u.ÑÅ u.ëÅ u.Æ 0u.Æ @u.5Æ Pu.GÆ `u.\Æ pu.jÆ €u.�Æ �u.–Æ  u.«Æ °u.ÅÆ Àu.ÙÆ Ðu.ðÆ àu.Ç ðu.Ç v.-Ç v.EÇ v.\Ç 0v.vÇ @v.�Ç Pv.°Ç `v.ØÇ pv.È  v.áÊ °v.òË Àv.úË Ðv. Ì àv.Ì ðv."Ì w.+Ì w.AÌ w.JÌ 0w.ÚÊ @w.SÌ Pw.ZÌ `w.eÌ pw.sÌ €w.{Ì �w.‚Ì  w.ˆÌ °w.�Ì Àw.�Ì Ðw.§Ì àw.µÌ x.­Î x.> x.²Î x.f! x.JÌ (x.È 0x.ŒÍ 8x.D @x.—Í Hx.j#Px.ÚÍ Xx.d`x.ºÎ hx."px.ÆÎ xx.î"€x.ÒÎ ˆx.û&�x.ÞÎ ˜x.{* x.ëÎ ¨x.-,°x.úÎ ¸x.@$Àx. Ë Ðx.Ï Øx.3-y.Ó y.�[y.%Ó y.0V y.+Ó (y.˜Y0y.1Ó 8y.òU@y.€Ò `y.6Ó py.KÓ €y.eÓ �y.‚Ó  y.œÓ °y.±Ó Ày.ÊÓ Ðy.ãÓ ày.ýÓ ðy.Ô z.óÔ (z.dZ0z.Õ 8z.N\`z.iÙ hz.N�pz.mÙ xz.‚Ž€z.JÙ ˆz.‚��z.rÙ ˜z.加z.{Ù ¨z.0Œ°z.€Ø àz.†Ù èz.ð’ðz.�Ù øz.f“{.mÙ {.j‘{.“Ù {.Ì• {.™Ù ({.m•0{.ŸÙ 8{.„–@{.¤Ù H{.³—P{.¯Ù X{.•˜`{.¹Ù h{.$˜p{.ÆÙ x{.}™€{.ÒÙ ˆ{.ú™�{.×Ù ˜{.› {.€Ø °{.ÞÙ ¸{.m•à{.ôÝ è{.ÿÃð{.úÝ ø{.1Ç|.Þ |.ÁÃ|.`Ý @|. Þ H|.ÂÇ`|.€á p|.¯ã x|./ù€|.´ã ˆ|.¥ �|.¹ã ˜|.¥  |.¿ã ¨|.ñ°|.Òã ¸|.ÜóÀ|.>â È|.~úÐ|.Øã Ø|.Äüà|.îã è|.ð|.øã ø|.˜}.ä }.H}.ä }.Ó }.ä (}.í0}."ä 8}.ñ@}.+ä H}.%P}.4ä X}.Ç`}.>ä h}.p}.Hä x}.É }.§ä ¨}.5°}.­ä ¸}.ƒÀ}.Òã È}.èÐ}.…ä Ø}.!à}.´ä è}.$ ð}.¼ä ø}. ~.Æä ~.{ ~.Ëä ~.Ñ ~.Òä (~. 0~.Þä 8~.¤@~.mä H~.ÆP~.éä X~.²`~.¯ã h~.ªp~.€á  ~.€á °~.¯ã ¸~.lÀ~.óä È~.ùà~.÷à è~.ð~.å ø~.™.…ä .áò.´ä .$  .¼ä (. 0.Æä 8.{ @.Ëä H.Ñ`.Kê h.–Fp.Pê x.AG€.Uê ˆ.ìG�.Yê ˜.>H .`ê ¨.�H°.iê ¸.0KÀ.nê È.ÎNÐ.qê Ø.”Oà.vê è.ZPð.|ê ø.S€.Œê €.cS€.�ê €./T €.­ê (€.ûT0€.Âê 8€.ûP@€.Çê H€.MQP€.Îê X€.ŸQ`€.Úê h€.�Np€.€è  €.²î ¨€.z�°€.¹î ¸€.ë�À€.¿î È€.GЀ.Åî Ø€.¥ƒà€.@î ð€.Êî ø€.G �.€÷ 0�.ñ÷ @�.ö÷ H�.æëP�.ü÷ X�.Eì`�.ø p�.ø À�.òû È�.÷û Ð�.ûû Ø�.ÿû è�.iý ‚.�ý ‚.“ý ‚.–ý ‚.›ý ‚. ý @‚.# H‚.2MP‚.  `‚.( h‚.€I€‚.- ˆ‚.LP�‚.4 ˜‚.šS ‚.: ¨‚.R°‚.? ¸‚.³OÀ‚.G È‚.ÊQЂ.Q Ø‚.ÊNà‚.  ð‚.( ø‚.ŒQ ƒ.  @ƒ.# Hƒ.EVPƒ.? Xƒ.¬U`ƒ.  pƒ.( xƒ. Z ƒ.# ¨ƒ.9^°ƒ.Q ¸ƒ.]ZÀƒ.? ȃ.’\Ѓ.: ؃.+]àƒ.U èƒ.Æcðƒ.^ øƒ.Sc„.  „.( „.�d@„.- H„.¿dP„.4 X„.æe`„.  p„.( x„.Mg „.i ¨„.ÆG°„.t ¸„.‡JÀ„.� È„.¾IЄ.� Ø„.¡Kà„.› è„.»L….© ….² ….¾ 0….Ì @….Ù P….ì `….÷ p….  €…. �….*  …./ °….7 À….? Ð….` à….� ð….Ÿ †.¸ †.Ô †.ñ 0†. `†.: h†.Æ”p†.1 x†.Ê’€†.5 ˆ†.$“�†.> ˜†.(’ †.E ¨†.¾“°†.M ¸†.P•À†.€ à†.: è†.Mšð†.f ø†.X™‡.m ‡.c˜‡.t ‡.o— ‡.> (‡.›0‡.E 8‡.dœ@‡.M H‡.ךP‡.€ €‡.� ˆ‡.f��‡.˜ ˜‡.¶� ‡.¢ ¨‡.ž°‡.® ¸‡.µžÀ‡.µ ȇ.ŸЇ.º ؇.ZŸà‡.à è‡.a ð‡.Ì ø‡.¯ ˆ.Ò ˆ.ÿ ˆ.Ö ˆ.O¡ ˆ.M (ˆ.¹¡0ˆ.€ `ˆ.: hˆ.ö§pˆ.á xˆ.€¨€ˆ.¢ ˆˆ.m«�ˆ.Ì ˜ˆ.© ˆ.˜ ¨ˆ.ª°ˆ.� ¸ˆ.ɪÀˆ.ÿ Ȉ.4®Ј.> ؈. ­àˆ. èˆ.›­ðˆ. øˆ.~¬‰.€ ‰.M ‰.à°@‰.: H‰.\±P‰.> X‰.æ±`‰.< h‰.J³p‰.H x‰.Ë´€‰.N ˆ‰.›²�‰.€  ‰.M ¨‰.±À‰.ú ȉ.A¶Љ. ؉.)·à‰. è‰.Á·ð‰. ø‰.;¸Š.º Š.×¹Š. Š.iº Š.6 (Š.@»0Š.9 8Š.éº@Š.C HŠ.ÀPŠ.Q XŠ.ðÂ`Š.] hŠ.–½pŠ.N xŠ.ç¼€Š.e ˆŠ.zµ�Š.j ˜Š.zµ Š.€ °Š.M ¸Š.þÃàŠ.È èŠ.WÅðŠ.Î øŠ.ÇÅ‹.Ô ‹.¿Ç‹.Û ‹.ƒÆ ‹.à (‹.ÝÆ0‹.€ @‹.M H‹.uÇ`‹. h‹.÷¡p‹. x‹.¤¢€‹.$ ˆ‹.C£�‹.. ˜‹.·› ‹.? ¨‹.{‘°‹.S ¸‹.é£À‹.` È‹.—¦Ћ.o Ø‹.Ž•à‹. è‹..�Œ.ž Œ.ª Œ.è 0Œ.÷ @Œ. PŒ.! `Œ.0 pŒ.P €Œ.o �Œ.|  Œ.� °Œ.¡ ÀŒ.¸ ÐŒ.Ï àŒ.é ðŒ. �. �.% �.1 0�.< @�.H P�.Q `�.[ p�.f €�.s ��.ƒ À�.w È�.åôÐ�.& Ø�.òŽ. Ž.¹1Ž.  Ž.b2 Ž. (Ž. ,0Ž. 8Ž.¸*@Ž.! HŽ.Œ'PŽ.( XŽ.H$`Ž., hŽ.Ê#pŽ.8 xŽ.m7€Ž.C ˆŽ.à7�Ž.I ˜Ž.Í+ Ž.  ÀŽ.f ÐŽ.k àŽ.s ðŽ.z �.‚ �.‹ �.” 0�.� @�.¤ P�.« `�.¶ p�.Ä €�.Ì ��.Ó  �.Ù °�.á à�.# ð�.# ø�.ò’�.# �.ê¶�.)# �. … �.0# (�.w‹0�.È! 8�.“¶@�.6# H�.ü”P�.:# X�.�`�.B# h�.Ì�p�.J# x�.Q €�.O# ˆ�.À¢��.V# ˜�.³¤ �.È ¨�.Ôª°�.[# ¸�.žÀ�.b# È�.·¸Ð�.u# Ø�.oŠà�.` ‘.z# ‘.©™‘.‡# ‘.C™ ‘.”# (‘.š0‘. # 8‘.uš@‘.ª# H‘.¥˜P‘.¯# X‘.—`‘.B# h‘.Ûšp‘.:# x‘.™›€‘.O# ˆ‘.‚œ�‘.J# ˜‘.0� ‘.u# ¨‘.A—°‘.` à‘.4) è‘.˜çð‘.:) ø‘.'â’.D) ’.î’.K) ’.Åâ ’.S) (’.(ä0’.[) 8’.‹å@’.`) H’.¸æP’.( X’.uâ`’.g) h’.ïp’.r) x’.‘ဒ. '  ’.4) ¨’.˜ç°’.:) ¸’.'âÀ’.D) È’.îÐ’.K) Ø’.Åâà’.S) è’.(äð’.[) ø’.‹å“.`) “.¸æ“.( “.uâ “.g) (“.ï0“.' 8“.í@“.w) H“.´ïP“.„) X“.ò`“.�) h“.�õ€“.R- �“.X-  “.z- °“.“- À“.¤- Г.´- à“.É- ð“.å- ”.ó- ”. . ”.$. 0”.:. @”.Q. P”.d. `”.€. p”. . €”.Á. �”.Ð.  ”.à. °”./ À”./ Д./ à”.#/ ð”.,/ •.7/ •.B/ •.P/ 0•.^/ @•.l/ P•.|/ `•.•/ p•.±/ €•.Ç/ �•.Ò/ À•.õ1 È•.ÿ!Е.ý1 Ø•.Å&à•.2 è•.p'ð•.2 ø•.(–.2 –.y( –.h2 (–.}2 0–.˜2 8–.£2 @–.±2 `–.D3 h–.I3 p–.N3 x–.S3  –.9 ¨–.Jh°–.ƒ9 ¸–.aÀ–.Ö5 È–.'XЖ.I3 Ø–.êXà–.‡9 è–.x`ð–.�9 ø–.È`—.—9 —.R[—.¦9 —.ÇZ —.º9 (—.}R0—.˜6 8—.~u@—.Î9 H—.ýrP—."3 X—.»t`—.Ò9 h—.ÙWp—.Ø9 x—.öY€—.Ý9 ˆ—.Î]�—.å9 ˜—.l —.ì9 ¨—.cl°—.w, ¸—.µlÀ—.ô9 È—.’mЗ.Õ8 Ø—.onà—.ù9 è—.[oð—.: ø—. o˜.: ˜.Qp˜.: ˜.t ˜.': (˜.bt0˜.1: 8˜.­o@˜.I: H˜.ÿoP˜.]: X˜.�r`˜.o: h˜.¿rp˜.€: x˜.-w€˜.à6 ˆ˜.¥Y�˜.- ˜˜.ßvÀ˜.x5 Ș.–5 И.�5 ؘ.Š5 à˜.|5 è˜.©5 ð˜.¼5 ø˜.�5 ™.w, (™.Õ8 0™.ä: 8™.ê: `™.Î5 h™.q5p™.Ò5 x™.8€™.Ö5 ˆ™.y)�™.Ú5 ˜™.~* ™.Þ5 ¨™.ß,°™.ã5 ¸™.3,À™.ë5 È™.Ž.Й.ó5 Ø™. 1à™.û5 è™.èQð™.6 ø™.ˆ2š.6 š. 3š.'6 š.ô3 š.26 (š.þ40š.=6 8š.³:@š.I6 Hš.1=Pš.Y6 Xš.�>`š.i6 hš.$Cpš.|6 xš.":€š.‰6 ˆš.«L�š.˜6 ˜š.M š. 6 ¨š.'N°š.³6 ¸š.3KÀš.È6 Èš.FEК.à6 Øš.â+àš.- ›.ñ6 ›..U›.ô6 ›.òR ›.ã5 (›.¦S0›.ù6 8›.òU@›.I3 H›.˜TP›.7 X›.EV`›. 7 h›.5Wp›.7 x›.‡W€›.à6 ˆ›.ZT�›.- À›.ÐB È›.ÙB Л.âB à›.3C è›.:Óð›.—A ø›.üÑœ.rB œ.þÌœ.7C œ.¹Î œ.AC (œ.›Ñ@œ.ÉE Pœ.ÞE `œ.òE pœ.ÿE €œ.F �œ.*F Àœ.BF М.EF àœ.QF ðœ.kF �.€F �.¨F �.ÈF 0�.ëF @�.G P�.G `�.+G p�.P?.+X?.B`?.®h?.µp?.x?.€?.3ˆ?.ø�?.�˜?.à?.Ó¨?.ÿ°?.(¸?.=À?.UÈ?.`Ð?.XØ?.´à?.¼hn..ho..p..xr..(t..Èt..Èx..Hy..¸z..¨{..|..h|..x~..¨~..x€..è€..(�..X‚..è‚..(ƒ..hƒ..„..h„..Ȇ..X‡..8ˆ..‰..˜‰..¨Š..8‹..¨Ž..è�..¸‘..ˆ’..èš..˜›..h¢..È£..˜¤..¦..§..ا..¸ª..˜«..8¬..Ȭ..x­..¯..˜¯..è°..8�.ÿh�.x�.F®. @. @.(@.0@.8@.@@.H@.P@.X@. `@. h@. p@. x@. €@.ˆ@.�@.˜@. @.¨@.°@.¸@.À@.UÈ@.Ð@.Ø@.à@.è@.ð@.ø@.A.A.A.A. A.!(A."0A.#8A.$@A.%HA.&PA.'XA.(`A.)hA.*pA.+xA.,€A.-ˆA..�A./˜A.0 A.1¨A.2°A.3¸A.4ÀA.5ÈA.6ÐA.8ØA.9àA.:èA.;ðA.<øA.=B.>B.?B.@B.A B.B(B.û0B.C8B.D@B.EHB.FPB.GXB.H`B.IhB.JpB.KxB.L€B.MˆB.@�B.N˜B.O B.P¨B.Q°B.R¸B.SÀB.LÈB.TÐB.UØB.VàB.WèB.XðB.YøB.ZC.[C.\C.]C.^ C._(C.`0C.a8C.b@C.cHC.dPC.eXC.f`C.ghC.hpC.ixC.j€C.kˆC.l�C.m˜C.n C.o¨C.p°C.q¸C.rÀC.sÈC.tÐC.uØC.vàC.wèC.xðC.yøC.zD.{D.|D.}D.~ D.(D.€0D.�8D.‚@D.ƒHD.üPD.„XD.…`D.†hD.‡pD.õxD.ˆ€D.1ˆD.‰�D.Š˜D.4 D.‹¨D.Œ°D.�¸D.ŽÀD.�ÈD.�ÐD.‘ØD.VàD.’èD.“ðD.”øD.$E.•E.–E.—E.˜ E.™(E.š0E.›8E.œ@E.�HE.žPE.ŸXE. `E.¡hE.¢pE.£xE.¤€E.¥ˆE.¦�E.§˜E.¨ E.©¨E.ª°E.«¸E.¬ÀE.­ÈE.®ÐE.¯ØE.°àE.±èE.²ðE.³øE.´F.µF.¶F.·F.¸ F.¹(F.º0F.D8F.»@F.¼HF.½PF.¾XF.¿`F.ÀhF.ÁpF.ÂxF.ÀF.ĈF.Å�F.ƘF.9 F.ǨF.ȰF.ɸF.ÊÀF.ËÈF.ÌÐF.ØF.ÍàF.ÎèF.ÏðF.ÐøF.ÑG.ÒG.ÓG.ÔG.Õ G.Ö(G.(0G.×8G.Ø@G.ÙHG.ÚPG.ÛXG.M`G.ÜhG.ÝpG.SxG.Þ€G.߈G.à�G.á˜G.â G.ã¨G.ä°G.å¸G.æÀG.çÈG.èÐG.éØG.êàG.ëèG.ìðG.íøG.îH.ïH.ðH.ñH.ò H.ó(H.ô0H.õ8H.ö@H.÷HH.øPH.XH.ù`H.úhH.ûpH.üxH.ý€H.þˆH.ÿ�H.˜H. H.¨H.°H.¸H.ÀH.ÈH.ÐH.ØH.àH. èH. ðH. øH. I. I. I.I. I.(I.0I.8I.@I.HI.PI.HXI.O`I.hI.pI.xI.€I.ˆI.�I.˜I. I.¨I.°I. ¸I.!ÀI."ÈI.#ÐI.$ØI.%àI.&èI.'ðI.(øI.)J.*J.+J.,J.W J.-(J..0J./8J.0@J.1HJ.2PJ.3XJ.4`J.5hJ.6pJ.7xJ.8€J.9ˆJ.:�J.;˜J.< J.=¨J.>°J.?¸J.@ÀJ.AÈJ.BÐJ.CØJ.DàJ.èJ.EðJ.FøJ.GK.HK.IK.JK.K K.L(K.]0K.M8K.N@K.OHK.PPK.QXK.R`K.ShK.TpK.UxK.V€K.WˆK.X�K.Y˜K.Y K.Z¨K.[°K.\¸K.]ÀK.^ÈK._ÐK.`ØK.aàK.bèK.cðK.døK.eL.fL.gL.hL. L.i(L.j0L.k8L.l@L.mHL.nPL.oXL.p`L.qhL.rpL.sxL.t€L.uˆL.v�L.w˜L.x L.y¨L.z°L.{¸L.|ÀL.}ÈL.~ÐL.ØL.€àL.�èL.&ðL.‚øL.ƒM.„M.…M."M.† M.‡(M.ˆ0M.‰8M.Š@M.‹HM.ŒPM.�XM.Ž`M.�hM.�pM.‘xM.’€M.“ˆM.”�M.•˜M. M.–¨M.—°M.˜¸M.™ÀM.šÈM.›ÐM.œØM.�àM.žèM.ŸðM. øM.¡N.¢N.£N.¤N./ N.¥(N.¦0N.§8N.¨@N.©HN.XPN.ªXN.«`N.¬hN.­pN.®xN.¯€N.°ˆN.±�N.²˜N.³ N.´¨N.µ°N.¶¸N.·ÀN.¸ÈN.¹ÐN.ºØN.»àN.¼èN.½ðN.¾øN.¿O.ÀO.ÁO.ÂO.à O.Ä(O.Å0O.Æ8O.Ç@O.ÈHO.ÉPO.ÊXO.Ë`O.ÌhO.ÍpO.ÎxO.€O.ψO.Ð�O.јO.: O.Ò¨O.Ó°O.Ô¸O.ýÀO.ÕÈO.AÐO.ÖØO.×àO.ØèO.ÙðO.ÚøO.ÛP.ÜP.ÝP.ÞP.ß P.à(P.á0P.â8P.ã@P.äHP.åPP.æXP.ç`P.èhP.épP.êxP.ë€P.ìˆP.í�P.î˜P.ï P.ð¨P.ñ°P.ò¸P.÷ÀP.óÈP.ôÐP.õØP.öàP.÷èP.øðP.ùøP.úQ.ûQ.üQ.ýQ.þ Q.ÿ(Q.0Q.8Q.@Q.HQ.PQ.XQ.`Q.hQ. pQ. xQ. €Q. ˆQ. �Q.˜Q. Q.¨Q.°Q.¸Q.ÀQ.ôÈQ.ÐQ.ØQ.àQ.èQ.ðQ.øQ.R.R.R.R. R.(R. 0R.!8R."@R.#HR.$PR.%XR.`R.&hR.'pR.(xR.)€R.*ˆR.+�R.,˜R.- R..¨R./°R.7¸R.0ÀR.1ÈR.2ÐR.3ØR.4àR.5èR.6ðR.7øR.8S.9S.:S.;S.< S.=(S.>0S.?8S.@@S.AHS.BPS.CXS.D`S.EhS.FpS.xS.G€S.6ˆS.H�S.˜S.I S.J¨S.K°S.¸S.LÀS.MÈS.NÐS.OØS.PàS.JèS.QðS.RøS.ST.TT.UT.VT.W T.X(T.Y0T.Z8T.[@T.\HT.]PT.^XT._`T.`hT.apT.bxT. €T.cˆT.d�T.e˜T.f T.g¨T.h°T.i¸T.jÀT.kÈT.lÐT.mØT.nàT.oèT.pðT.qøT.rU.sU.tU.uU.v U.w(U.x0U.y8U.z@U.{HU.|PU.}XU.`U.~hU.pU.€xU.�€U.‚ˆU.;�U.ƒ˜U.„ U.…¨U.†°U.‡¸U.ˆÀU.‰ÈU.ŠÐU.‹ØU.ŒàU.�èU.ŽðU.�øU.�V.‘V.’V.“V.” V.•(V.–0V.—8V.˜@V.™HV.šPV.›XV.œ`V.�hV.žpV.ŸxV. €V.¡ˆV.¢�V.£˜V.¤ V.¥¨V.¦°V.§¸V.¨ÀV.©ÈV.ªÐV.«ØV.¬àV.­èV.®ðV.¯øV.°W.±W.²W.³W.´ W.µ(W.¶0W.·8W.¸@W.¹HW.ºPW.»XW.¼`W.½hW.¾pW.¿xW.À€W.ÁˆW.Â�W.ĘW.Å W.ƨW.=°W.ǸW.ÈÀW.ÉÈW.ÊÐW.ËØW.#àW.ÌèW.ÍðW.ÎøW.ÏX.ÐX.ÑX.\X.Ò X.Ô(X.Õ0X.Ö8X.×@X.ØHX.ÙPX.ÚXX.Û`X.ÜhX.ÝpX.ÞxX.߀X.àˆX.á�X.â˜X.ã X.ä¨X.å°X.æ¸X.çÀX.èÈX.éÐX.'ØX.êàX.ëèX.ìðX.íøX.îY.ïY.ðY.ñY.ò Y.ó(Y.ô0Y.õ8Y.ö@Y.÷HY.øPY.ùXY.ú`Y.ûhY.üpY.ýxY.þ€Y.ˆY.�Y.˜Y. Y.¨Y.°Y.¸Y.ÀY.ÈY.ÐY. ØY. àY. èY. ðY. øY.Z.Z.Z.Z.% Z.(Z.0Z.8Z.@Z.HZ.PZ.XZ.`Z.hZ.pZ.xZ.€Z.ˆZ.�Z. ˜Z.! Z.ó¨Z."°Z.#¸Z.$ÀZ.%ÈZ.&ÐZ. ØZ.'àZ.)èZ. ðZ.*øZ.+[.,[.-[..[., [./([.00[.18[.2@[.3H[.4P[.5X[.6`[.7h[.8p[.úx[.9€[.:ˆ[.;�[.<˜[.= [.>¨[.?°[.@¸[.AÀ[.BÈ[.CÐ[.DØ[.Eà[.Fè[.Gð[.Hø[.I\.T\.J\.K\.L \.M(\.N0\.O8\.P@\.QH\.RP\.SX\.T`\.Vh\.Wp\.x\.X€\.Yˆ\.Z�\.[˜\.\ \.]¨\.^°\._¸\.aÀ\.bÈ\.cÐ\.dØ\.eà\.fè\.gð\.hø\.i].j].k].].l ].m(].n0].o8].p@].qH].rP].sX].t`].uh].vp].wx].x€].yˆ].z�].{˜].| ].}¨].~°].-¸].À].€È].�Ð].‚Ø].ƒà].„è].…ð].†ø].‡^.ˆ^.‰^.Š^.‹ ^.Œ(^.�0^.Ž8^.�@^.�H^.‘P^.’X^.“`^.”h^.•p^.–x^.€^.—ˆ^.˜�^.™˜^.š ^.›¨^.œ°^.�¸^.žÀ^.ŸÈ^. Ð^.¡Ø^.¢à^.£è^.¤ð^.¥ø^.¦_._.§_.5_.¨ _.©(_.ª0_.«8_.¬@_.­H_.®P_.X_.¯`_.°h_.±p_.²x_.³€_.´ˆ_.µ�_.R˜_.¶ _.·¨_.°_.¸¸_.¹À_.ºÈ_.»Ð_.¼Ø_.½à_.¾è_.¿ð_.Àø_.Á`.Â`.Ã`.Ä`.Å `.Æ(`.Ç0`.È8`.É@`.ÊH`.ËP`.ÌX`.Í``.Îh`.Ïp`.Ðx`.Ñ€`.Òˆ`.Ó�`.Ô˜`.Õ `.Ö¨`.×°`.ظ`.PÀ`.ÙÈ`.ÚÐ`.ÛØ`.Üà`.Ýè`.Þð`.ßø`.àa.áa.<a.âa.ã a.ä(a.å0a.æ8a.ç@a.èHa.éPa.êXa.ë`a.ìha.ípa.îxa.ï€a.ðˆa.ñ�a.ò˜a.ó a.ô¨a.õ°a.ö¸a.÷Àa.øÈa.ùÐa.úØa.ûàa.üèa.ýða.þøa.ÿb.b.b.b. b.(b.0b.8b.@b.Hb. Pb. Xb. `b. hb. pb.xb.€b.ˆb.�b.˜b. b.¨b.°b.¸b.Àb.Èb.Ðb.Øb.àb.èb.ðb.øb.c. c.!c."c.# c.$(c.N0c.%8c.&@c.öHc.'Pc.(Xc.)`c.*hc.+pc.,xc.-€c..ˆc./�c.0˜c.1 c.2¨c.3°c.4¸c.5Àc.6Èc.7Ðc.8Øc.9àc.:èc.;ðc.øc.<d.=d.>d.?d.@ d.A(d.B0d.C8d.D@d.EHd.FPd.GXd.H`d.Ihd.Jpd.Kxd.L€d.Mˆd.N�d.O˜d.P d.Q¨d.R°d.S¸d.TÀd.UÈd.VÐd.WØd.Yàd.Zèd.[ðd.\ød.]e.^e._e.`e.a e.b(e.c0e.d8e.e@e.fHe.gPe.hXe.i`e.jhe.kpe.lxe.m€e.nˆe.o�e.p˜e.q e.r¨e.s°e.t¸e.uÀe.vÈe.wÐe.xØe.yàe.zèe.{ðe.Qøe.|f.}f.~f.f.€ f.�(f.‚0f.ƒ8f.@f.„Hf.…Pf.CXf.†`f.‡hf.ˆpf.‰xf.Š€f.‹ˆf.�f. ˜f.Œ f.�¨f.ްf.�¸f.�Àf.‘Èf.’Ðf.“Øf.”àf.•èf.–ðf.—øf.Bg.˜g.™g.šg.› g.œ(g.�0g.28g.ž@g.ŸHg. Pg.¡Xg.¢`g.£hg.¤pg.¥xg.¦€g.§ˆg.¨�g.8˜g.© g.ª¨g.«°g.K¸g.Àg.¬Èg.­Ðg.®Øg.¯àg.?èg.°ðg.±øg.þh.²h.³h.µh.¶ h.·(h.¸0h.¹8h.º@h.»Hh.½Ph.¾Xh.E`h.¿hh.Àph.Áxh.€h.Èh.Ä�h.Řh.Æ h.Ǩh.Ȱh.ɸh.ÊÀh.ËÈh.[Ðh.ÌØh.Íàh.Îèh.Ïðh.Ðøh.Ñi.Òi.Ói.Ôi.Õ i.Ö(i.×0i.Ø8i.Ù@i.ÚHi.ÛPi.ÜXi.Ý`i.Þhi.ßpi.àxi.á€i.âˆi.ã�i.ä˜i.å i.æ¨i.ç°i.è¸i.éÀi.êÈi.ëÐi.ìØi.íài.îèi.ïði.ðøi.ñj.òóúHƒìH‹q,H…ÀtÿÐHƒÄÃÿ5‚,ÿ%„,@ÿ%‚,héàÿÿÿÿ%z,héÐÿÿÿÿ%r,héÀÿÿÿÿ%j,hé°ÿÿÿÿ%b,hé ÿÿÿÿ%Z,hé�ÿÿÿÿ%R,hé€ÿÿÿÿ%J,hépÿÿÿÿ%B,hé`ÿÿÿÿ%:,h éPÿÿÿÿ%2,h é@ÿÿÿÿ%*,h é0ÿÿÿÿ%",h é ÿÿÿÿ%,h éÿÿÿÿ%,héÿÿÿÿ% ,héðþÿÿÿ%,héàþÿÿÿ%ú,héÐþÿÿÿ%ò,héÀþÿÿÿ%ê,hé°þÿÿÿ%â,hé þÿÿÿ%Ú,hé�þÿÿÿ%Ò,hé€þÿÿÿ%Ê,hépþÿÿÿ%Â,hé`þÿÿÿ%º,héPþÿÿÿ%²,hé@þÿÿÿ%ª,hé0þÿÿÿ%¢,hé þÿÿÿ%š,héþÿÿÿ%’,héþÿÿÿ%Š,héðýÿÿÿ%‚,h éàýÿÿÿ%z,h!éÐýÿÿÿ%r,h"éÀýÿÿÿ%j,h#é°ýÿÿÿ%b,h$é ýÿÿÿ%Z,h%é�ýÿÿÿ%R,h&é€ýÿÿÿ%J,h'épýÿÿÿ%B,h(é`ýÿÿÿ%:,h)éPýÿÿÿ%2,h*é@ýÿÿÿ%*,h+é0ýÿÿÿ%",h,é ýÿÿÿ%,h-éýÿÿÿ%,h.éýÿÿÿ% ,h/éðüÿÿÿ%,h0éàüÿÿÿ%ú ,h1éÐüÿÿÿ%ò ,h2éÀüÿÿÿ%ê ,h3é°üÿÿÿ%â ,h4é üÿÿÿ%Ú ,h5é�üÿÿÿ%Ò ,h6é€üÿÿÿ%Ê ,h7épüÿÿÿ% ,h8é`üÿÿÿ%º ,h9éPüÿÿÿ%² ,h:é@üÿÿÿ%ª ,h;é0üÿÿÿ%¢ ,h<é üÿÿÿ%š ,h=éüÿÿÿ%’ ,h>éüÿÿÿ%Š ,h?éðûÿÿÿ%‚ ,h@éàûÿÿÿ%z ,hAéÐûÿÿÿ%r ,hBéÀûÿÿÿ%j ,hCé°ûÿÿÿ%b ,hDé ûÿÿÿ%Z ,hEé�ûÿÿÿ%R ,hFé€ûÿÿÿ%J ,hGépûÿÿÿ%B ,hHé`ûÿÿÿ%: ,hIéPûÿÿÿ%2 ,hJé@ûÿÿÿ%* ,hKé0ûÿÿÿ%" ,hLé ûÿÿÿ% ,hMéûÿÿÿ% ,hNéûÿÿÿ% ,hOéðúÿÿÿ% ,hPéàúÿÿÿ%ú ,hQéÐúÿÿÿ%ò ,hRéÀúÿÿÿ%ê ,hSé°úÿÿÿ%â ,hTé úÿÿÿ%Ú ,hUé�úÿÿÿ%Ò ,hVé€úÿÿÿ%Ê ,hWépúÿÿÿ% ,hXé`úÿÿÿ%º ,hYéPúÿÿÿ%² ,hZé@úÿÿÿ%ª ,h[é0úÿÿÿ%¢ ,h\é úÿÿÿ%š ,h]éúÿÿÿ%’ ,h^éúÿÿÿ%Š ,h_éðùÿÿÿ%‚ ,h`éàùÿÿÿ%z ,haéÐùÿÿÿ%r ,hbéÀùÿÿÿ%j ,hcé°ùÿÿÿ%b ,hdé ùÿÿÿ%Z ,heé�ùÿÿÿ%R ,hfé€ùÿÿÿ%J ,hgépùÿÿÿ%B ,hhé`ùÿÿÿ%: ,hiéPùÿÿÿ%2 ,hjé@ùÿÿÿ%* ,hké0ùÿÿÿ%" ,hlé ùÿÿÿ% ,hméùÿÿÿ% ,hnéùÿÿÿ% ,hoéðøÿÿÿ% ,hpéàøÿÿÿ%ú ,hqéÐøÿÿÿ%ò ,hréÀøÿÿÿ%ê ,hsé°øÿÿÿ%â ,hté øÿÿÿ%Ú ,hué�øÿÿÿ%Ò ,hv逸ÿÿÿ%Ê ,hwépøÿÿÿ% ,hxé`øÿÿÿ%º ,hyéPøÿÿÿ%² ,hzé@øÿÿÿ%ª ,h{é0øÿÿÿ%¢ ,h|é øÿÿÿ%š ,h}éøÿÿÿ%’ ,h~éøÿÿÿ%Š ,héð÷ÿÿÿ%‚ ,h€éà÷ÿÿÿ%z ,h�éÐ÷ÿÿÿ%r ,h‚éÀ÷ÿÿÿ%j ,hƒé°÷ÿÿÿ%b ,h„é ÷ÿÿÿ%Z ,h…é�÷ÿÿÿ%R ,h†é€÷ÿÿÿ%J ,h‡ép÷ÿÿÿ%B ,hˆé`÷ÿÿÿ%: ,h‰éP÷ÿÿÿ%2 ,hŠé@÷ÿÿÿ%* ,h‹é0÷ÿÿÿ%" ,hŒé ÷ÿÿÿ% ,h�é÷ÿÿÿ% ,hŽé÷ÿÿÿ% ,h�éðöÿÿÿ% ,h�éàöÿÿÿ%ú ,h‘éÐöÿÿÿ%ò ,h’éÀöÿÿÿ%ê ,h“é°öÿÿÿ%â ,h”é öÿÿÿ%Ú ,h•é�öÿÿÿ%Ò ,h–é€öÿÿÿ%Ê ,h—épöÿÿÿ% ,h˜é`öÿÿÿ%º ,h™éPöÿÿÿ%² ,hšé@öÿÿÿ%ª ,h›é0öÿÿÿ%¢ ,hœé öÿÿÿ%š ,h�éöÿÿÿ%’ ,hžéöÿÿÿ%Š ,hŸéðõÿÿÿ%‚ ,h éàõÿÿÿ%z ,h¡éÐõÿÿÿ%r ,h¢éÀõÿÿÿ%j ,h£é°õÿÿÿ%b ,h¤é õÿÿÿ%Z ,h¥é�õÿÿÿ%R ,h¦é€õÿÿÿ%J ,h§épõÿÿÿ%B ,h¨é`õÿÿÿ%: ,h©éPõÿÿÿ%2 ,hªé@õÿÿÿ%* ,h«é0õÿÿÿ%" ,h¬é õÿÿÿ% ,h­éõÿÿÿ% ,h®éõÿÿÿ% ,h¯éðôÿÿÿ% ,h°éàôÿÿÿ%ú ,h±éÐôÿÿÿ%ò ,h²éÀôÿÿÿ%ê ,h³é°ôÿÿÿ%â ,h´é ôÿÿÿ%Ú ,hµé�ôÿÿÿ%Ò ,h¶é€ôÿÿÿ%Ê ,h·épôÿÿÿ% ,h¸é`ôÿÿÿ%º ,h¹éPôÿÿÿ%² ,hºé@ôÿÿÿ%ª ,h»é0ôÿÿÿ%¢ ,h¼é ôÿÿÿ%š ,h½éôÿÿÿ%’ ,h¾éôÿÿÿ%Š ,h¿éðóÿÿÿ%‚ ,hÀéàóÿÿÿ%z ,hÁéÐóÿÿÿ%r ,hÂéÀóÿÿÿ%j ,hÃé°óÿÿÿ%b ,hÄé óÿÿÿ%Z ,hÅé�óÿÿÿ%R ,hÆé€óÿÿÿ%J ,hÇépóÿÿÿ%B ,hÈé`óÿÿÿ%: ,hÉéPóÿÿÿ%2 ,hÊé@óÿÿÿ%* ,hËé0óÿÿÿ%" ,hÌé óÿÿÿ% ,hÍéóÿÿÿ% ,hÎéóÿÿÿ% ,hÏéðòÿÿÿ% ,hÐéàòÿÿÿ%ú,hÑéÐòÿÿÿ%ò,hÒéÀòÿÿÿ%ê,hÓé°òÿÿÿ%â,hÔé òÿÿÿ%Ú,hÕé�òÿÿÿ%Ò,hÖé€òÿÿÿ%Ê,h×épòÿÿÿ%Â,hØé`òÿÿÿ%º,hÙéPòÿÿÿ%²,hÚé@òÿÿÿ%ª,hÛé0òÿÿÿ%¢,hÜé òÿÿÿ%š,hÝéòÿÿÿ%’,hÞéòÿÿÿ%Š,hßéðñÿÿÿ%‚,hàéàñÿÿÿ%z,háéÐñÿÿÿ%r,hâéÀñÿÿÿ%j,hãé°ñÿÿÿ%b,häé ñÿÿÿ%Z,håé�ñÿÿÿ%R,hæé€ñÿÿÿ%J,hçépñÿÿÿ%B,hèé`ñÿÿÿ%:,hééPñÿÿÿ%2,hêé@ñÿÿÿ%*,hëé0ñÿÿÿ%",hìé ñÿÿÿ%,híéñÿÿÿ%,hîéñÿÿÿ% ,hïéððÿÿÿ%,hðéàðÿÿÿ%ú,hñéÐðÿÿÿ%ò,hòéÀðÿÿÿ%ê,hóé°ðÿÿÿ%â,hôé ðÿÿÿ%Ú,hõé�ðÿÿÿ%Ò,höé€ðÿÿÿ%Ê,h÷épðÿÿÿ%Â,høé`ðÿÿÿ%º,hùéPðÿÿÿ%²,húé@ðÿÿÿ%ª,hûé0ðÿÿÿ%¢,hüé ðÿÿÿ%š,hýéðÿÿÿ%’,hþéðÿÿÿ%Š,hÿéðïÿÿÿ%‚,héàïÿÿÿ%z,héÐïÿÿÿ%r,héÀïÿÿÿ%j,hé°ïÿÿÿ%b,hé ïÿÿÿ%Z,hé�ïÿÿÿ%R,hé€ïÿÿÿ%J,hépïÿÿÿ%B,hé`ïÿÿÿ%:,h éPïÿÿÿ%2,h é@ïÿÿÿ%*,h é0ïÿÿÿ%",h é ïÿÿÿ%,h éïÿÿÿ%,héïÿÿÿ% ,héðîÿÿÿ%,héàîÿÿÿ%ú,héÐîÿÿÿ%ò,héÀîÿÿÿ%ê,hé°îÿÿÿ%â,hé îÿÿÿ%Ú,hé�îÿÿÿ%Ò,hé€îÿÿÿ%Ê,hépîÿÿÿ%Â,hé`îÿÿÿ%º,héPîÿÿÿ%²,hé@îÿÿÿ%ª,hé0îÿÿÿ%¢,hé îÿÿÿ%š,héîÿÿÿ%’,héîÿÿÿ%Š,héðíÿÿÿ%‚,h éàíÿÿÿ%z,h!éÐíÿÿÿ%r,h"éÀíÿÿÿ%j,h#é°íÿÿÿ%b,h$é íÿÿÿ%Z,h%é�íÿÿÿ%R,h&é€íÿÿÿ%J,h'épíÿÿÿ%B,h(é`íÿÿÿ%:,h)éPíÿÿÿ%2,h*é@íÿÿÿ%*,h+é0íÿÿÿ%",h,é íÿÿÿ%,h-éíÿÿÿ%,h.éíÿÿÿ% ,h/éðìÿÿÿ%,h0éàìÿÿÿ%ú,h1éÐìÿÿÿ%ò,h2éÀìÿÿÿ%ê,h3é°ìÿÿÿ%â,h4é ìÿÿÿ%Ú,h5é�ìÿÿÿ%Ò,h6é€ìÿÿÿ%Ê,h7épìÿÿÿ%Â,h8é`ìÿÿÿ%º,h9éPìÿÿÿ%²,h:é@ìÿÿÿ%ª,h;é0ìÿÿÿ%¢,h<é ìÿÿÿ%š,h=éìÿÿÿ%’,h>éìÿÿÿ%Š,h?éðëÿÿÿ%‚,h@éàëÿÿÿ%z,hAéÐëÿÿÿ%r,hBéÀëÿÿÿ%j,hCé°ëÿÿÿ%b,hDé ëÿÿÿ%Z,hEé�ëÿÿÿ%R,hFé€ëÿÿÿ%J,hGépëÿÿÿ%B,hHé`ëÿÿÿ%:,hIéPëÿÿÿ%2,hJé@ëÿÿÿ%*,hKé0ëÿÿÿ%",hLé ëÿÿÿ%,hMéëÿÿÿ%,hNéëÿÿÿ% ,hOéðêÿÿÿ%,hPéàêÿÿÿ%ú,hQéÐêÿÿÿ%ò,hRéÀêÿÿÿ%ê,hSé°êÿÿÿ%â,hTé êÿÿÿ%Ú,hUé�êÿÿÿ%Ò,hVé€êÿÿÿ%Ê,hWépêÿÿÿ%Â,hXé`êÿÿÿ%º,hYéPêÿÿÿ%²,hZé@êÿÿÿ%ª,h[é0êÿÿÿ%¢,h\é êÿÿÿ%š,h]éêÿÿÿ%’,h^éêÿÿÿ%Š,h_éðéÿÿÿ%‚,h`éàéÿÿÿ%z,haéÐéÿÿÿ%r,hbéÀéÿÿÿ%j,hcé°éÿÿÿ%b,hdé éÿÿÿ%Z,heé�éÿÿÿ%R,hfé€éÿÿÿ%J,hgépéÿÿÿ%B,hhé`éÿÿÿ%:,hiéPéÿÿÿ%2,hjé@éÿÿÿ%*,hké0éÿÿÿ%",hlé éÿÿÿ%,hmééÿÿÿ%,hnééÿÿÿ% ,hoéðèÿÿÿ%,hpéàèÿÿÿ%ú,hqéÐèÿÿÿ%ò,hréÀèÿÿÿ%ê,hsé°èÿÿÿ%â,hté èÿÿÿ%Ú,hué�èÿÿÿ%Ò,hvé€èÿÿÿ%Ê,hwépèÿÿÿ%Â,hxé`èÿÿÿ%º,hyéPèÿÿÿ%²,hzé@èÿÿÿ%ª,h{é0èÿÿÿ%¢,h|é èÿÿÿ%š,h}éèÿÿÿ%’,h~éèÿÿÿ%Š,héðçÿÿÿ%‚,h€éàçÿÿÿ%z,h�éÐçÿÿÿ%r,h‚éÀçÿÿÿ%j,hƒé°çÿÿÿ%b,h„é çÿÿÿ%Z,h…é�çÿÿÿ%R,h†é€çÿÿÿ%J,h‡épçÿÿÿ%B,hˆé`çÿÿÿ%:,h‰éPçÿÿÿ%2,hŠé@çÿÿÿ%*,h‹é0çÿÿÿ%",hŒé çÿÿÿ%,h�éçÿÿÿ%,hŽéçÿÿÿ% ,h�éðæÿÿÿ%,h�éàæÿÿÿ%ú,h‘éÐæÿÿÿ%ò,h’éÀæÿÿÿ%ê,h“é°æÿÿÿ%â,h”é æÿÿÿ%Ú,h•é�æÿÿÿ%Ò,h–逿ÿÿÿ%Ê,h—épæÿÿÿ%Â,h˜é`æÿÿÿ%º,h™éPæÿÿÿ%²,hšé@æÿÿÿ%ª,h›é0æÿÿÿ%¢,hœé æÿÿÿ%š,h�éæÿÿÿ%’,hžéæÿÿÿ%Š,hŸéðåÿÿÿ%‚,h éàåÿÿÿ%z,h¡éÐåÿÿÿ%r,h¢éÀåÿÿÿ%j,h£é°åÿÿÿ%b,h¤é åÿÿÿ%Z,h¥é�åÿÿÿ%R,h¦é€åÿÿÿ%J,h§épåÿÿÿ%B,h¨é`åÿÿÿ%:,h©éPåÿÿÿ%2,hªé@åÿÿÿ%*,h«é0åÿÿÿ%",h¬é åÿÿÿ%,h­éåÿÿÿ%,h®éåÿÿÿ% ,h¯éðäÿÿÿ%,h°éàäÿÿÿ%ú,h±éÐäÿÿÿ%ò,h²éÀäÿÿÿ%ê,h³é°äÿÿÿ%â,h´é äÿÿÿ%Ú,hµé�äÿÿÿ%Ò,h¶é€äÿÿÿ%Ê,h·épäÿÿÿ%Â,h¸é`äÿÿÿ%º,h¹éPäÿÿÿ%²,hºé@äÿÿÿ%ª,h»é0äÿÿÿ%¢,h¼é äÿÿÿ%š,h½éäÿÿÿ%’,h¾éäÿÿÿ%Š,h¿éðãÿÿÿ%‚,hÀéàãÿÿÿ%z,hÁéÐãÿÿÿ%r,hÂéÀãÿÿÿ%j,hÃé°ãÿÿÿ%b,hÄé ãÿÿÿ%Z,hÅé�ãÿÿÿ%R,hÆé€ãÿÿÿ%J,hÇépãÿÿÿ%B,hÈé`ãÿÿÿ%:,hÉéPãÿÿÿ%2,hÊé@ãÿÿÿ%*,hËé0ãÿÿÿ%",hÌé ãÿÿÿ%,hÍéãÿÿÿ%,hÎéãÿÿÿ% ,hÏéðâÿÿÿ%,hÐéàâÿÿÿ%ú,hÑéÐâÿÿÿ%ò,hÒéÀâÿÿÿ%ê,hÓé°âÿÿÿ%â,hÔé âÿÿÿ%Ú,hÕé�âÿÿÿ%Ò,hÖé€âÿÿÿ%Ê,h×épâÿÿÿ%Â,hØé`âÿÿÿ%º,hÙéPâÿÿÿ%²,hÚé@âÿÿÿ%ª,hÛé0âÿÿÿ%¢,hÜé âÿÿÿ%š,hÝéâÿÿÿ%’,hÞéâÿÿÿ%Š,hßéðáÿÿÿ%‚,hàéàáÿÿÿ%z,háéÐáÿÿÿ%r,hâéÀáÿÿÿ%j,hãé°áÿÿÿ%b,häé áÿÿÿ%Z,håé�áÿÿÿ%R,hæé€áÿÿÿ%J,hçépáÿÿÿ%B,hèé`áÿÿÿ%:,hééPáÿÿÿ%2,hêé@áÿÿÿ%*,hëé0áÿÿÿ%",hìé áÿÿÿ%,híéáÿÿÿ%,hîéáÿÿÿ% ,hïéðàÿÿÿ%,hðéààÿÿÿ%úÿ+hñéÐàÿÿÿ%òÿ+hòéÀàÿÿÿ%êÿ+hóé°àÿÿÿ%âÿ+hôé àÿÿÿ%Úÿ+hõé�àÿÿÿ%Òÿ+höé€àÿÿÿ%Êÿ+h÷épàÿÿÿ%Âÿ+høé`àÿÿÿ%ºÿ+hùéPàÿÿÿ%²ÿ+húé@àÿÿÿ%ªÿ+hûé0àÿÿÿ%¢ÿ+hüé àÿÿÿ%šÿ+hýéàÿÿÿ%’ÿ+hþéàÿÿÿ%Šÿ+hÿéðßÿÿÿ%‚ÿ+héàßÿÿÿ%zÿ+héÐßÿÿÿ%rÿ+héÀßÿÿÿ%jÿ+hé°ßÿÿÿ%bÿ+hé ßÿÿÿ%Zÿ+hé�ßÿÿÿ%Rÿ+hé€ßÿÿÿ%Jÿ+hépßÿÿÿ%Bÿ+hé`ßÿÿÿ%:ÿ+h éPßÿÿÿ%2ÿ+h é@ßÿÿÿ%*ÿ+h é0ßÿÿÿ%"ÿ+h é ßÿÿÿ%ÿ+h éßÿÿÿ%ÿ+héßÿÿÿ% ÿ+héðÞÿÿÿ%ÿ+héàÞÿÿÿ%úþ+héÐÞÿÿÿ%òþ+héÀÞÿÿÿ%êþ+hé°Þÿÿÿ%âþ+hé Þÿÿÿ%Úþ+hé�Þÿÿÿ%Òþ+hé€Þÿÿÿ%Êþ+hépÞÿÿÿ%Âþ+hé`Þÿÿÿ%ºþ+héPÞÿÿÿ%²þ+hé@Þÿÿÿ%ªþ+hé0Þÿÿÿ%¢þ+hé Þÿÿÿ%šþ+héÞÿÿÿ%’þ+héÞÿÿÿ%Šþ+héðÝÿÿÿ%‚þ+h éàÝÿÿÿ%zþ+h!éÐÝÿÿÿ%rþ+h"éÀÝÿÿÿ%jþ+h#é°Ýÿÿÿ%bþ+h$é Ýÿÿÿ%Zþ+h%é�Ýÿÿÿ%Rþ+h&é€Ýÿÿÿ%Jþ+h'épÝÿÿÿ%Bþ+h(é`Ýÿÿÿ%:þ+h)éPÝÿÿÿ%2þ+h*é@Ýÿÿÿ%*þ+h+é0Ýÿÿÿ%"þ+h,é Ýÿÿÿ%þ+h-éÝÿÿÿ%þ+h.éÝÿÿÿ% þ+h/éðÜÿÿÿ%þ+h0éàÜÿÿÿ%úý+h1éÐÜÿÿÿ%òý+h2éÀÜÿÿÿ%êý+h3é°Üÿÿÿ%âý+h4é Üÿÿÿ%Úý+h5é�Üÿÿÿ%Òý+h6é€Üÿÿÿ%Êý+h7épÜÿÿÿ%Âý+h8é`Üÿÿÿ%ºý+h9éPÜÿÿÿ%²ý+h:é@Üÿÿÿ%ªý+h;é0Üÿÿÿ%¢ý+h<é Üÿÿÿ%šý+h=éÜÿÿÿ%’ý+h>éÜÿÿÿ%Šý+h?éðÛÿÿÿ%‚ý+h@éàÛÿÿÿ%zý+hAéÐÛÿÿÿ%rý+hBéÀÛÿÿÿ%jý+hCé°Ûÿÿÿ%bý+hDé Ûÿÿÿ%Zý+hEé�Ûÿÿÿ%Rý+hFé€Ûÿÿÿ%Jý+hGépÛÿÿÿ%Bý+hHé`Ûÿÿÿ%:ý+hIéPÛÿÿÿ%2ý+hJé@Ûÿÿÿ%*ý+hKé0Ûÿÿÿ%"ý+hLé Ûÿÿÿ%ý+hMéÛÿÿÿ%ý+hNéÛÿÿÿ% ý+hOéðÚÿÿÿ%ý+hPéàÚÿÿÿ%úü+hQéÐÚÿÿÿ%òü+hRéÀÚÿÿÿ%êü+hSé°Úÿÿÿ%âü+hTé Úÿÿÿ%Úü+hUé�Úÿÿÿ%Òü+hVé€Úÿÿÿ%Êü+hWépÚÿÿÿ%Âü+hXé`Úÿÿÿ%ºü+hYéPÚÿÿÿ%²ü+hZé@Úÿÿÿ%ªü+h[é0Úÿÿÿ%¢ü+h\é Úÿÿÿ%šü+h]éÚÿÿÿ%’ü+h^éÚÿÿÿ%Šü+h_éðÙÿÿÿ%‚ü+h`éàÙÿÿÿ%zü+haéÐÙÿÿÿ%rü+hbéÀÙÿÿÿ%jü+hcé°Ùÿÿÿ%bü+hdé Ùÿÿÿ%Zü+heé�Ùÿÿÿ%Rü+hfé€Ùÿÿÿ%Jü+hgépÙÿÿÿ%Bü+hhé`Ùÿÿÿ%:ü+hiéPÙÿÿÿ%2ü+hjé@Ùÿÿÿ%*ü+hké0Ùÿÿÿ%"ü+hlé Ùÿÿÿ%ü+hméÙÿÿÿ%ü+hnéÙÿÿÿ% ü+hoéðØÿÿÿ%ü+hpéàØÿÿÿ%úû+hqéÐØÿÿÿ%òû+hréÀØÿÿÿ%êû+hsé°Øÿÿÿ%âû+hté Øÿÿÿ%Úû+hué�Øÿÿÿ%Òû+hv逨ÿÿÿ%Êû+hwépØÿÿÿ%Âû+hxé`Øÿÿÿ%ºû+hyéPØÿÿÿ%²û+hzé@Øÿÿÿ%ªû+h{é0Øÿÿÿ%¢û+h|é Øÿÿÿ%šû+h}éØÿÿÿ%’û+h~éØÿÿÿ%Šû+héð×ÿÿÿ%‚û+h€éà×ÿÿÿ%zû+h�éÐ×ÿÿÿ%rû+h‚éÀ×ÿÿÿ%jû+hƒé°×ÿÿÿ%bû+h„é ×ÿÿÿ%Zû+h…é�×ÿÿÿ%Rû+h†é€×ÿÿÿ%Jû+h‡ép×ÿÿÿ%Bû+hˆé`×ÿÿÿ%:û+h‰éP×ÿÿÿ%2û+hŠé@×ÿÿÿ%*û+h‹é0×ÿÿÿ%"û+hŒé ×ÿÿÿ%û+h�é×ÿÿÿ%û+hŽé×ÿÿÿ% û+h�éðÖÿÿÿ%û+h�éàÖÿÿÿ%úú+h‘éÐÖÿÿÿ%òú+h’éÀÖÿÿÿ%êú+h“é°Öÿÿÿ%âú+h”é Öÿÿÿ%Úú+h•é�Öÿÿÿ%Òú+h–é€Öÿÿÿ%Êú+h—épÖÿÿÿ%Âú+h˜é`Öÿÿÿ%ºú+h™éPÖÿÿÿ%²ú+hšé@Öÿÿÿ%ªú+h›é0Öÿÿÿ%¢ú+hœé Öÿÿÿ%šú+h�éÖÿÿÿ%’ú+hžéÖÿÿÿ%Šú+hŸéðÕÿÿÿ%‚ú+h éàÕÿÿÿ%zú+h¡éÐÕÿÿÿ%rú+h¢éÀÕÿÿÿ%jú+h£é°Õÿÿÿ%bú+h¤é Õÿÿÿ%Zú+h¥é�Õÿÿÿ%Rú+h¦é€Õÿÿÿ%Jú+h§épÕÿÿÿ%Bú+h¨é`Õÿÿÿ%:ú+h©éPÕÿÿÿ%2ú+hªé@Õÿÿÿ%*ú+h«é0Õÿÿÿ%"ú+h¬é Õÿÿÿ%ú+h­éÕÿÿÿ%ú+h®éÕÿÿÿ% ú+h¯éðÔÿÿÿ%ú+h°éàÔÿÿÿ%úù+h±éÐÔÿÿÿ%òù+h²éÀÔÿÿÿ%êù+h³é°Ôÿÿÿ%âù+h´é Ôÿÿÿ%Úù+hµé�Ôÿÿÿ%Òù+h¶é€Ôÿÿÿ%Êù+h·épÔÿÿÿ%Âù+h¸é`Ôÿÿÿ%ºù+h¹éPÔÿÿÿ%²ù+hºé@Ôÿÿÿ%ªù+h»é0Ôÿÿÿ%¢ù+h¼é Ôÿÿÿ%šù+h½éÔÿÿÿ%’ù+h¾éÔÿÿÿ%Šù+h¿éðÓÿÿÿ%‚ù+hÀéàÓÿÿÿ%zù+hÁéÐÓÿÿÿ%rù+hÂéÀÓÿÿÿ%jù+hÃé°Óÿÿÿ%bù+hÄé Óÿÿÿ%Zù+hÅé�Óÿÿÿ%Rù+hÆé€Óÿÿÿ%Jù+hÇépÓÿÿÿ%Bù+hÈé`Óÿÿÿ%:ù+hÉéPÓÿÿÿ%2ù+hÊé@Óÿÿÿ%*ù+hËé0Óÿÿÿ%"ù+hÌé Óÿÿÿ%ù+hÍéÓÿÿÿ%ù+hÎéÓÿÿÿ% ù+hÏéðÒÿÿÿ%ù+hÐéàÒÿÿÿ%úø+hÑéÐÒÿÿÿ%òø+hÒéÀÒÿÿÿ%êø+hÓé°Òÿÿÿ%âø+hÔé Òÿÿÿ%Úø+hÕé�Òÿÿÿ%Òø+hÖé€Òÿÿÿ%Êø+h×épÒÿÿÿ%Âø+hØé`Òÿÿÿ%ºø+hÙéPÒÿÿÿ%²ø+hÚé@Òÿÿÿ%ªø+hÛé0Òÿÿÿ%¢ø+hÜé Òÿÿÿ%šø+hÝéÒÿÿÿ%’ø+hÞéÒÿÿÿ%Šø+hßéðÑÿÿÿ%‚ø+hàéàÑÿÿÿ%zø+háéÐÑÿÿÿ%rø+hâéÀÑÿÿÿ%jø+hãé°Ñÿÿÿ%bø+häé Ñÿÿÿ%Zø+håé�Ñÿÿÿ%Rø+hæé€Ñÿÿÿ%Jø+hçépÑÿÿÿ%Bø+hèé`Ñÿÿÿ%:ø+hééPÑÿÿÿ%2ø+hêé@Ñÿÿÿ%*ø+hëé0Ñÿÿÿ%"ø+hìé Ñÿÿÿ%ø+híéÑÿÿÿ%ø+hîéÑÿÿÿ% ø+hïéðÐÿÿÿ%ø+hðéàÐÿÿÿ%ú÷+hñéÐÐÿÿÿ%ò÷+hòéÀÐÿÿÿ%ê÷+hóé°Ðÿÿÿ%â÷+hôé Ðÿÿÿ%Ú÷+hõé�Ðÿÿÿ%Ò÷+höé€Ðÿÿÿ%Ê÷+h÷épÐÿÿÿ%Â÷+høé`Ðÿÿÿ%º÷+hùéPÐÿÿÿ%²÷+húé@Ðÿÿÿ%ª÷+hûé0Ðÿÿÿ%¢÷+hüé Ðÿÿÿ%š÷+hýéÐÿÿÿ%’÷+hþéÐÿÿÿ%Š÷+hÿéðÏÿÿÿ%‚÷+héàÏÿÿÿ%z÷+héÐÏÿÿÿ%r÷+héÀÏÿÿÿ%j÷+hé°Ïÿÿÿ%b÷+hé Ïÿÿÿ%Z÷+hé�Ïÿÿÿ%R÷+hé€Ïÿÿÿ%J÷+hépÏÿÿÿ%B÷+hé`Ïÿÿÿ%:÷+h éPÏÿÿÿ%2÷+h é@Ïÿÿÿ%*÷+h é0Ïÿÿÿ%"÷+h é Ïÿÿÿ%÷+h éÏÿÿÿ%÷+héÏÿÿÿ% ÷+héðÎÿÿÿ%÷+héàÎÿÿÿ%úö+héÐÎÿÿÿ%òö+héÀÎÿÿÿ%êö+hé°Îÿÿÿ%âö+hé Îÿÿÿ%Úö+hé�Îÿÿÿ%Òö+hé€Îÿÿÿ%Êö+hépÎÿÿÿ%Âö+hé`Îÿÿÿ%ºö+héPÎÿÿÿ%²ö+hé@Îÿÿÿ%ªö+hé0Îÿÿÿ%¢ö+hé Îÿÿÿ%šö+héÎÿÿÿ%’ö+héÎÿÿÿ%Šö+héðÍÿÿÿ%‚ö+h éàÍÿÿÿ%zö+h!éÐÍÿÿÿ%rö+h"éÀÍÿÿÿ%jö+h#é°Íÿÿÿ%bö+h$é Íÿÿÿ%Zö+h%é�Íÿÿÿ%Rö+h&é€Íÿÿÿ%Jö+h'épÍÿÿÿ%Bö+h(é`Íÿÿÿ%:ö+h)éPÍÿÿÿ%2ö+h*é@Íÿÿÿ%*ö+h+é0Íÿÿÿ%"ö+h,é Íÿÿÿ%ö+h-éÍÿÿÿ%ö+h.éÍÿÿÿ% ö+h/éðÌÿÿÿ%ö+h0éàÌÿÿÿ%úõ+h1éÐÌÿÿÿ%òõ+h2éÀÌÿÿÿ%êõ+h3é°Ìÿÿÿ%âõ+h4é Ìÿÿÿ%Úõ+h5é�Ìÿÿÿ%Òõ+h6é€Ìÿÿÿ%Êõ+h7épÌÿÿÿ%Âõ+h8é`Ìÿÿÿ%ºõ+h9éPÌÿÿÿ%²õ+h:é@Ìÿÿÿ%ªõ+h;é0Ìÿÿÿ%¢õ+h<é Ìÿÿÿ%šõ+h=éÌÿÿÿ%’õ+h>éÌÿÿÿ%Šõ+h?éðËÿÿÿ%‚õ+h@éàËÿÿÿ%zõ+hAéÐËÿÿÿ%rõ+hBéÀËÿÿÿ%jõ+hCé°Ëÿÿÿ%bõ+hDé Ëÿÿÿ%Zõ+hEé�Ëÿÿÿ%Rõ+hFé€Ëÿÿÿ%Jõ+hGépËÿÿÿ%Bõ+hHé`Ëÿÿÿ%:õ+hIéPËÿÿÿ%2õ+hJé@Ëÿÿÿ%*õ+hKé0Ëÿÿÿ%"õ+hLé Ëÿÿÿ%õ+hMéËÿÿÿ%õ+hNéËÿÿÿ% õ+hOéðÊÿÿÿ%õ+hPéàÊÿÿÿ%úô+hQéÐÊÿÿÿ%òô+hRéÀÊÿÿÿ%êô+hSé°Êÿÿÿ%âô+hTé Êÿÿÿ%Úô+hUé�Êÿÿÿ%Òô+hVé€Êÿÿÿ%Êô+hWépÊÿÿÿ%Âô+hXé`Êÿÿÿ%ºô+hYéPÊÿÿÿ%²ô+hZé@Êÿÿÿ%ªô+h[é0Êÿÿÿ%¢ô+h\é Êÿÿÿ%šô+h]éÊÿÿÿ%’ô+h^éÊÿÿÿ%Šô+h_éðÉÿÿÿ%‚ô+h`éàÉÿÿÿ%zô+haéÐÉÿÿÿ%rô+hbéÀÉÿÿÿ%jô+hcé°Éÿÿÿ%bô+hdé Éÿÿÿ%Zô+heé�Éÿÿÿ%Rô+hfé€Éÿÿÿ%Jô+hgépÉÿÿÿ%Bô+hhé`Éÿÿÿ%:ô+hiéPÉÿÿÿ%2ô+hjé@Éÿÿÿ%*ô+hké0Éÿÿÿ%"ô+hlé Éÿÿÿ%ô+hméÉÿÿÿ%ô+hnéÉÿÿÿ% ô+hoéðÈÿÿÿ%ô+hpéàÈÿÿÿ%úó+hqéÐÈÿÿÿ%òó+hréÀÈÿÿÿ%êó+hsé°Èÿÿÿ%âó+hté Èÿÿÿ%Úó+hué�Èÿÿÿ%Òó+hvé€Èÿÿÿ%Êó+hwépÈÿÿÿ%Âó+hxé`Èÿÿÿ%ºó+hyéPÈÿÿÿ%²ó+hzé@Èÿÿÿ%ªó+h{é0Èÿÿÿ%¢ó+h|é Èÿÿÿ%šó+h}éÈÿÿÿ%’ó+h~éÈÿÿÿ%Šó+héðÇÿÿÿ%‚ó+h€éàÇÿÿÿ%zó+h�éÐÇÿÿÿ%ró+h‚éÀÇÿÿÿ%jó+hƒé°Çÿÿÿ%bó+h„é Çÿÿÿ%Zó+h…é�Çÿÿÿ%Ró+h†é€Çÿÿÿ%Jó+h‡épÇÿÿÿ%Bó+hˆé`Çÿÿÿ%:ó+h‰éPÇÿÿÿ%2ó+hŠé@Çÿÿÿ%*ó+h‹é0Çÿÿÿ%"ó+hŒé Çÿÿÿ%ó+h�éÇÿÿÿ%ó+hŽéÇÿÿÿ% ó+h�éðÆÿÿÿ%ó+h�éàÆÿÿÿ%úò+h‘éÐÆÿÿÿ%òò+h’éÀÆÿÿÿ%êò+h“é°Æÿÿÿ%âò+h”é Æÿÿÿ%Úò+h•é�Æÿÿÿ%Òò+h–逯ÿÿÿ%Êò+h—épÆÿÿÿ%Âò+h˜é`Æÿÿÿ%ºò+h™éPÆÿÿÿ%²ò+hšé@Æÿÿÿ%ªò+h›é0Æÿÿÿ%¢ò+hœé Æÿÿÿ%šò+h�éÆÿÿÿ%’ò+hžéÆÿÿÿ%Šò+hŸéðÅÿÿÿ%‚ò+h éàÅÿÿÿ%zò+h¡éÐÅÿÿÿ%rò+h¢éÀÅÿÿÿ%jò+h£é°Åÿÿÿ%bò+h¤é Åÿÿÿ%Zò+h¥é�Åÿÿÿ%Rò+h¦é€Åÿÿÿ%Jò+h§épÅÿÿÿ%Bò+h¨é`Åÿÿÿ%:ò+h©éPÅÿÿÿ%2ò+hªé@Åÿÿÿ%*ò+h«é0Åÿÿÿ%"ò+h¬é Åÿÿÿ%ò+h­éÅÿÿÿ%ò+h®éÅÿÿÿ% ò+h¯éðÄÿÿÿ%ò+h°éàÄÿÿÿ%úñ+h±éÐÄÿÿÿ%òñ+h²éÀÄÿÿÿ%êñ+h³é°Äÿÿÿ%âñ+h´é Äÿÿÿ%Úñ+hµé�Äÿÿÿ%Òñ+h¶é€Äÿÿÿ%Êñ+h·épÄÿÿÿ%Âñ+h¸é`Äÿÿÿ%ºñ+h¹éPÄÿÿÿ%²ñ+hºé@Äÿÿÿ%ªñ+h»é0Äÿÿÿ%¢ñ+h¼é Äÿÿÿ%šñ+h½éÄÿÿÿ%’ñ+h¾éÄÿÿÿ%Šñ+h¿éðÃÿÿÿ%‚ñ+hÀéàÃÿÿÿ%zñ+hÁéÐÃÿÿÿ%rñ+hÂéÀÃÿÿÿ%jñ+hÃé°Ãÿÿÿ%bñ+hÄé Ãÿÿÿ%Zñ+hÅé�Ãÿÿÿ%Rñ+hÆé€Ãÿÿÿ%Jñ+hÇépÃÿÿÿ%Bñ+hÈé`Ãÿÿÿ%:ñ+hÉéPÃÿÿÿ%2ñ+hÊé@Ãÿÿÿ%*ñ+hËé0Ãÿÿÿ%"ñ+hÌé Ãÿÿÿ%ñ+hÍéÃÿÿÿ%ñ+hÎéÃÿÿÿ% ñ+hÏéðÂÿÿÿ%ñ+hÐéàÂÿÿÿ%úð+hÑéÐÂÿÿÿ%òð+hÒéÀÂÿÿÿ%êð+hÓé°Âÿÿÿ%âð+hÔé Âÿÿÿ%Úð+hÕé�Âÿÿÿ%Òð+hÖé€Âÿÿÿ%Êð+h×épÂÿÿÿ%Âð+hØé`Âÿÿÿ%ºð+hÙéPÂÿÿÿ%²ð+hÚé@Âÿÿÿ%ªð+hÛé0Âÿÿÿ%¢ð+hÜé Âÿÿÿ%šð+hÝéÂÿÿÿ%’ð+hÞéÂÿÿÿ%Šð+hßéðÁÿÿÿ%‚ð+hàéàÁÿÿÿ%zð+háéÐÁÿÿÿ%rð+hâéÀÁÿÿÿ%jð+hãé°Áÿÿÿ%bð+häé Áÿÿÿ%Zð+håé�Áÿÿÿ%Rð+hæé€Áÿÿÿ%Jð+hçépÁÿÿÿ%Bð+hèé`Áÿÿÿ%:ð+hééPÁÿÿÿ%2ð+hêé@Áÿÿÿ%*ð+hëé0Áÿÿÿ%"ð+hìé Áÿÿÿ%ð+híéÁÿÿÿ%ð+hîéÁÿÿÿ% ð+hïéðÀÿÿÿ%ð+hðéàÀÿÿÿ%úï+hñéÐÀÿÿÿ%òï+hòéÀÀÿÿÿ%êï+hóé°Àÿÿÿ%âï+hôé Àÿÿÿ%Úï+hõé�Àÿÿÿ%Òï+höé€Àÿÿÿ%Êï+h÷épÀÿÿÿ%Âï+høé`Àÿÿÿ%ºï+hùéPÀÿÿÿ%²ï+húé@Àÿÿÿ%ªï+hûé0Àÿÿÿ%¢ï+hüé Àÿÿÿ%šï+hýéÀÿÿÿ%’ï+hþéÀÿÿÿ%Šï+hÿéð¿ÿÿÿ%‚ï+héà¿ÿÿÿ%zï+héпÿÿÿ%rï+héÀ¿ÿÿÿ%jï+hé°¿ÿÿÿ%bï+hé ¿ÿÿÿ%Zï+hé�¿ÿÿÿ%Rï+h逿ÿÿÿ%Jï+hép¿ÿÿÿ%Bï+hé`¿ÿÿÿ%:ï+h éP¿ÿÿÿ%2ï+h é@¿ÿÿÿ%*ï+h é0¿ÿÿÿ%"ï+h é ¿ÿÿÿ%ï+h é¿ÿÿÿ%ï+hé¿ÿÿÿ% ï+héð¾ÿÿÿ%ï+héà¾ÿÿÿ%úî+héоÿÿÿ%òî+héÀ¾ÿÿÿ%êî+hé°¾ÿÿÿ%âî+hé ¾ÿÿÿ%Úî+hé�¾ÿÿÿ%Òî+h逾ÿÿÿ%Êî+hép¾ÿÿÿ%Âî+hé`¾ÿÿÿ%ºî+héP¾ÿÿÿ%²î+hé@¾ÿÿÿ%ªî+hé0¾ÿÿÿ%¢î+hé ¾ÿÿÿ%šî+hé¾ÿÿÿ%’î+hé¾ÿÿÿ%Šî+héð½ÿÿÿ%‚î+h éà½ÿÿÿ%zî+h!éнÿÿÿ%rî+h"éÀ½ÿÿÿ%jî+h#é°½ÿÿÿ%bî+h$é ½ÿÿÿ%Zî+h%é�½ÿÿÿ%Rî+h&逽ÿÿÿ%Jî+h'ép½ÿÿÿ%Bî+h(é`½ÿÿÿ%:î+h)éP½ÿÿÿ%2î+h*é@½ÿÿÿ%*î+h+é0½ÿÿÿ%"î+h,é ½ÿÿÿ%î+h-é½ÿÿÿ%î+h.é½ÿÿÿ% î+h/éð¼ÿÿÿ%î+h0éà¼ÿÿÿ%úí+h1éмÿÿÿ%òí+h2éÀ¼ÿÿÿ%êí+h3é°¼ÿÿÿ%âí+h4é ¼ÿÿÿ%Úí+h5é�¼ÿÿÿ%Òí+h6逼ÿÿÿ%Êí+h7ép¼ÿÿÿ%Âí+h8é`¼ÿÿÿ%ºí+h9éP¼ÿÿÿ%²í+h:é@¼ÿÿÿ%ªí+h;é0¼ÿÿÿ%¢í+h<é ¼ÿÿÿ%ší+h=é¼ÿÿÿ%’í+h>é¼ÿÿÿ%Ší+h?éð»ÿÿÿ%‚í+h@éà»ÿÿÿ%zí+hAéлÿÿÿ%rí+hBéÀ»ÿÿÿ%jí+hCé°»ÿÿÿ%bí+hDé »ÿÿÿ%Zí+hEé�»ÿÿÿ%Rí+hF逻ÿÿÿ%Jí+hGép»ÿÿÿ%Bí+hHé`»ÿÿÿ%:í+hIéP»ÿÿÿ%2í+hJé@»ÿÿÿ%*í+hKé0»ÿÿÿ%"í+hLé »ÿÿÿ%í+hMé»ÿÿÿ%í+hNé»ÿÿÿ% í+hOéðºÿÿÿ%í+hPéàºÿÿÿ%úì+hQéкÿÿÿ%òì+hRéÀºÿÿÿ%êì+hSé°ºÿÿÿ%âì+hTé ºÿÿÿ%Úì+hUé�ºÿÿÿ%Òì+hV逺ÿÿÿ%Êì+hWépºÿÿÿ%Âì+hXé`ºÿÿÿ%ºì+hYéPºÿÿÿ%²ì+hZé@ºÿÿÿ%ªì+h[é0ºÿÿÿ%¢ì+h\é ºÿÿÿ%šì+h]éºÿÿÿ%’ì+h^éºÿÿÿ%Šì+h_éð¹ÿÿÿ%‚ì+h`éà¹ÿÿÿ%zì+haéйÿÿÿ%rì+hbéÀ¹ÿÿÿ%jì+hcé°¹ÿÿÿ%bì+hdé ¹ÿÿÿ%Zì+heé�¹ÿÿÿ%Rì+hf逹ÿÿÿ%Jì+hgép¹ÿÿÿ%Bì+hhé`¹ÿÿÿ%:ì+hiéP¹ÿÿÿ%2ì+hjé@¹ÿÿÿ%*ì+hké0¹ÿÿÿ%"ì+hlé ¹ÿÿÿ%ì+hmé¹ÿÿÿ%ì+hné¹ÿÿÿ% ì+hoéð¸ÿÿÿ%ì+hpéà¸ÿÿÿ%úë+hqéиÿÿÿ%òë+hréÀ¸ÿÿÿ%êë+hsé°¸ÿÿÿ%âë+hté ¸ÿÿÿ%Úë+hué�¸ÿÿÿ%Òë+hv逸ÿÿÿ%Êë+hwép¸ÿÿÿ%Âë+hxé`¸ÿÿÿ%ºë+hyéP¸ÿÿÿ%²ë+hzé@¸ÿÿÿ%ªë+h{é0¸ÿÿÿ%¢ë+h|é ¸ÿÿÿ%šë+h}é¸ÿÿÿ%’ë+h~é¸ÿÿÿ%Šë+héð·ÿÿÿ%‚ë+h€éà·ÿÿÿ%zë+h�éзÿÿÿ%rë+h‚éÀ·ÿÿÿ%jë+hƒé°·ÿÿÿ%bë+h„é ·ÿÿÿ%Zë+h…é�·ÿÿÿ%Rë+h†逷ÿÿÿ%Jë+h‡ép·ÿÿÿ%Bë+hˆé`·ÿÿÿ%:ë+h‰éP·ÿÿÿ%2ë+hŠé@·ÿÿÿ%*ë+h‹é0·ÿÿÿ%"ë+hŒé ·ÿÿÿ%ë+h�é·ÿÿÿ%ë+hŽé·ÿÿÿ% ë+h�éð¶ÿÿÿ%ë+h�éà¶ÿÿÿ%úê+h‘éжÿÿÿ%òê+h’éÀ¶ÿÿÿ%êê+h“é°¶ÿÿÿ%âê+h”é ¶ÿÿÿ%Úê+h•é�¶ÿÿÿ%Òê+h–逶ÿÿÿ%Êê+h—ép¶ÿÿÿ%Âê+h˜é`¶ÿÿÿ%ºê+h™éP¶ÿÿÿ%²ê+hšé@¶ÿÿÿ%ªê+h›é0¶ÿÿÿ%¢ê+hœé ¶ÿÿÿ%šê+h�é¶ÿÿÿ%’ê+hžé¶ÿÿÿ%Šê+hŸéðµÿÿÿ%‚ê+h éàµÿÿÿ%zê+h¡éеÿÿÿ%rê+h¢éÀµÿÿÿ%jê+h£é°µÿÿÿ%bê+h¤é µÿÿÿ%Zê+h¥é�µÿÿÿ%Rê+h¦逵ÿÿÿ%Jê+h§épµÿÿÿ%Bê+h¨é`µÿÿÿ%:ê+h©éPµÿÿÿ%2ê+hªé@µÿÿÿ%*ê+h«é0µÿÿÿ%"ê+h¬é µÿÿÿ%ê+h­éµÿÿÿ%ê+h®éµÿÿÿ% ê+h¯éð´ÿÿÿ%ê+h°éà´ÿÿÿ%úé+h±éдÿÿÿ%òé+h²éÀ´ÿÿÿ%êé+h³é°´ÿÿÿ%âé+h´é ´ÿÿÿ%Úé+hµé�´ÿÿÿ%Òé+h¶逴ÿÿÿ%Êé+h·ép´ÿÿÿ%Âé+h¸é`´ÿÿÿ%ºé+h¹éP´ÿÿÿ%²é+hºé@´ÿÿÿ%ªé+h»é0´ÿÿÿ%¢é+h¼é ´ÿÿÿ%šé+h½é´ÿÿÿ%’é+h¾é´ÿÿÿ%Šé+h¿éð³ÿÿÿ%‚é+hÀéà³ÿÿÿ%zé+hÁéгÿÿÿ%ré+hÂéÀ³ÿÿÿ%jé+hÃé°³ÿÿÿ%bé+hÄé ³ÿÿÿ%Zé+hÅé�³ÿÿÿ%Ré+hÆ逳ÿÿÿ%Jé+hÇép³ÿÿÿ%Bé+hÈé`³ÿÿÿ%:é+hÉéP³ÿÿÿ%2é+hÊé@³ÿÿÿ%*é+hËé0³ÿÿÿ%"é+hÌé ³ÿÿÿ%é+hÍé³ÿÿÿ%é+hÎé³ÿÿÿ% é+hÏéð²ÿÿÿ%é+hÐéà²ÿÿÿ%úè+hÑéвÿÿÿ%òè+hÒéÀ²ÿÿÿ%êè+hÓé°²ÿÿÿ%âè+hÔé ²ÿÿÿ%Úè+hÕé�²ÿÿÿ%Òè+hÖ進ÿÿÿ%Êè+h×ép²ÿÿÿ%Âè+hØé`²ÿÿÿ%ºè+hÙéP²ÿÿÿ%²è+hÚé@²ÿÿÿ%ªè+hÛé0²ÿÿÿ%¢è+hÜé ²ÿÿÿ%šè+hÝé²ÿÿÿ%’è+hÞé²ÿÿÿ%Šè+hßéð±ÿÿÿ%‚è+hàéà±ÿÿÿ%zè+háéбÿÿÿ%rè+hâéÀ±ÿÿÿ%jè+hãé°±ÿÿÿ%bè+häé ±ÿÿÿ%Zè+håé�±ÿÿÿ%Rè+hæ週ÿÿÿ%Jè+hçép±ÿÿÿ%Bè+hèé`±ÿÿÿ%:è+hééP±ÿÿÿ%2è+hêé@±ÿÿÿ%*è+hëé0±ÿÿÿ%"è+hìé ±ÿÿÿ%è+híé±ÿÿÿ%è+hîé±ÿÿÿ% è+hïéð°ÿÿÿ%è+hðéà°ÿÿÿ%úç+hñéаÿÿÿ%òç+hòéÀ°ÿÿÿ%êç+hóé°°ÿÿÿ%âç+hôé °ÿÿÿ%Úç+hõé�°ÿÿÿ%Òç+hö逰ÿÿÿ%Êç+h÷ép°ÿÿÿ%Âç+høé`°ÿÿÿ%ºç+hùéP°ÿÿÿ%²ç+húé@°ÿÿÿ%ªç+hûé0°ÿÿÿ%¢ç+hüé °ÿÿÿ%šç+hýé°ÿÿÿ%’ç+hþé°ÿÿÿ%Šç+hÿéð¯ÿÿÿ%‚ç+héà¯ÿÿÿ%zç+héЯÿÿÿ%rç+héÀ¯ÿÿÿ%jç+hé°¯ÿÿÿ%bç+hé ¯ÿÿÿ%Zç+hé�¯ÿÿÿ%Rç+h逯ÿÿÿ%Jç+hép¯ÿÿÿ%Bç+hé`¯ÿÿÿ%:ç+h éP¯ÿÿÿ%2ç+h é@¯ÿÿÿ%*ç+h é0¯ÿÿÿ%"ç+h é ¯ÿÿÿ%ç+h é¯ÿÿÿ%ç+hé¯ÿÿÿ% ç+héð®ÿÿÿ%ç+héà®ÿÿÿ%úæ+héЮÿÿÿ%òæ+héÀ®ÿÿÿ%êæ+hé°®ÿÿÿ%âæ+hé ®ÿÿÿ%Úæ+hé�®ÿÿÿ%Òæ+h逮ÿÿÿ%Êæ+hép®ÿÿÿ%Âæ+hé`®ÿÿÿ%ºæ+héP®ÿÿÿ%²æ+hé@®ÿÿÿ%ªæ+hé0®ÿÿÿ%¢æ+hé ®ÿÿÿ%šæ+hé®ÿÿÿ%’æ+hé®ÿÿÿ%Šæ+héð­ÿÿÿ%‚æ+h éà­ÿÿÿ%zæ+h!éЭÿÿÿ%ræ+h"éÀ­ÿÿÿ%jæ+h#é°­ÿÿÿ%bæ+h$é ­ÿÿÿ%Zæ+h%é�­ÿÿÿ%Ræ+h&逭ÿÿÿ%Jæ+h'ép­ÿÿÿ%Bæ+h(é`­ÿÿÿ%:æ+h)éP­ÿÿÿ%2æ+h*é@­ÿÿÿ%*æ+h+é0­ÿÿÿ%"æ+h,é ­ÿÿÿ%æ+h-é­ÿÿÿ%æ+h.é­ÿÿÿ% æ+h/éð¬ÿÿÿ%æ+h0éà¬ÿÿÿ%úå+h1éЬÿÿÿ%òå+h2éÀ¬ÿÿÿ%êå+h3é°¬ÿÿÿ%âå+h4é ¬ÿÿÿ%Úå+h5é�¬ÿÿÿ%Òå+h6逬ÿÿÿ%Êå+h7ép¬ÿÿÿ%Âå+h8é`¬ÿÿÿ%ºå+h9éP¬ÿÿÿ%²å+h:é@¬ÿÿÿ%ªå+h;é0¬ÿÿÿ%¢å+h<é ¬ÿÿÿ%šå+h=é¬ÿÿH�=™,,H�’,,H9øtH‹F»+H…Àt ÿà€Ã€H�=i,,H�5b,,H)þHÁþH‰ðHÁè?HÆHÑþtH‹»+H…ÀtÿàfDÀóú€=%,,u+UHƒ=Jº+H‰åt H�=>«+èI¼ÿÿèdÿÿÿÆý+,]ÃÀóúéwÿÿÿUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰Çèa½ÿÿH‹Eð¶„Àu ‹Eü‰Çè<·ÿÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰ÇèZÇÿÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè°ÿÿƒøtbH‹Eø¾þÿÿÿH‰ÇèˆïÿÿH‹UèH‹uðH‹EøH� Å H‰Çè]ñÿÿ…Àt H‹EøH‰Çè¿ÿÿH‹Eø¾ÿÿÿÿH‰ÇèÌÉÿÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰ÇèÂÁÿÿ‹Uà‹MäH‹Eø‰ÎH‰Çèâÿÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�55! H‰Ç¸èØÔÿÿH‹EøH�A! ¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çè)Éÿÿò*EôH‹EøH‰Çèx°ÿÿH‹Eø¾ýÿÿÿH‰Çè'ÁÿÿH‹EøA¸¹ºÛH�5Ü H‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰ÇèKòÿÿéå‹Uà‹MäH‹Eè‰ÎH‰Çèò¶ÿÿéÌH‹EèH�f ¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çè,Èÿÿ‹UàH‹Eè‰ÖH‰ÇèÈÿÿH‹EèA¸¹ºH�5 H‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çèg·ÿÿ‰EüH‹Eè¾þÿÿÿH‰ÇèSíÿÿ‹EüëH‹EèH�5ó H‰Ç¸è6Óÿÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�r ¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çè`Çÿÿ‹UüH‹Eè‰ÖH‰Çèðÿÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè­ÿÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çè„ÍÿÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè7®ÿÿ龋MôH‹EøH� ‰ÎH‰Çèzµÿÿ…À…š‹UôH‹Eø‰ÖH‰Çè!ÍÿÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèÔ­ÿÿëZ‹MôH‹EøH�º ‰ÎH‰Çèµÿÿ…ÀuA‹UôH‹Eø‰ÖH‰Çè5¬ÿÿ‰ÂH‹Eø‰ÖH‰ÇèÅÈÿÿH‰ÂH‹EøH�5‡ H‰Ç¸èšÑÿÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çègßÿÿ‹UüH‹Eè‰ÖH‰Çè–ÎÿÿH‹Eè¾ÿÿÿÿH‰Ç襫ÿÿH‹Eè¾ÿÿÿÿH‰Ç蔫ÿÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�d ¾H‰Çè»H‹UØH‹EèH‰ÖH‰ÇèàÞÿÿH‹Eè¾þÿÿÿH‰Çè_½ÿÿ‹UüH‹Eè‰ÖH‰ÇèÇÿÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Ç臫ÿÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çè0Êÿÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè±Üÿÿ…ÀuIHƒ}ètH‹UèH‹EøH�5ë H‰Ç¸èÚÏÿÿë$H‹EøºH�5à H‰ÇèEH‹EøH‰Çèt¹ÿÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�ó ¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰ÇèïÉÿÿH‹E躾ÿÿÿÿH‰Ç試ÿÿ‹UüH‹Eè‰ÖH‰ÇèøðÿÿH‹Eè¾ÿÿÿÿH‰Çè—©ÿÿH‹Eè¾ÿÿÿÿH‰Ç膩ÿÿƒøu¸ëwH‹Eè¾þÿÿÿH‰ÇèùèÿÿH‹E躾H‰Çè£ÞÿÿH‹UØH‹EèH‰ÖH‰Çè`ÉÿÿH‹E躾ÿÿÿÿH‰Çè¦ÿÿH‹Eè¾þÿÿÿH‰Çè)Ãÿÿ‹UüH‹Eè‰ÖH‰Çè˜ßÿÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�Ü ¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè èÿÿ‹Eô…ÀuH‹EèH�56 H‰Ç¸èÎÿÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH� ‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰ÇèBÈÿÿH‹E躾ÿÿÿÿH‰Çèü¤ÿÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèþÁÿÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çèxôÿÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Çè@ÞÿÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çèçÿÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�l ¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰ÇèÆ¥ÿÿH‹Eø¾ÿÿÿÿH‰Çè5§ÿÿH‹Eø¾þÿÿÿH‰Çèdðÿÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè­ßÿÿH‰EøH‹EèH�ò ¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Ç艽ÿÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çè"¥ÿÿH‹Eè¾ÿÿÿÿH‰Ç葦ÿÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çè ¶ÿÿ‰EôH‹Eè¾ýÿÿÿH‰Çè÷åÿÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çè§ÿÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çèè¦ÿÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Ç芥ÿÿƒøt ¸éüH‹EøH‰Ç蟾ÿÿéÍH‹Eø¾þÿÿÿH‰ÇèY¥ÿÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰ÇèÊ´ÿÿ…ÀtH‹Eø¾þÿÿÿH‰Çèµäÿÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çè¿ðÿÿH‹EøºH�5É H‰ÇèìH‹Eø¾þÿÿÿH‰Çèö¶ÿÿH‹Eø¾H‰Çèµãÿÿ¸ë/H‹Eø¾þÿÿÿH‰Çè-äÿÿH‹Eø¾þÿÿÿH‰Çè<çÿÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çèa»ÿÿ‰EüH‹UàH‹EèH�5; H‰Çè×ÓÿÿH‹Eè¾îØÿÿH‰ÇèF¾ÿÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çè�ãÿÿ¸ë‹UüH‹Eè‰ÖH‰Çèiãÿÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5Ž H‰Ç¸èÃÑÿÿéÜH‹EðH‹@¶H‹EèH‹@H‰Çè6žÿÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çèžÿÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çè2²ÿÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5ª H‰ÇèH‹p¤+H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5� H‰Ç¸èÉÿÿH‹…ÀïÿÿH�5j H‰ÇèüÆÿÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5@ H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5Ñ H‰ÇèìÀÿÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5¨ H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè~–ÿÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çèâÿÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çèc½ÿÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè©Øÿÿ‹UüH‹…ÈïÿÿH�5¿ H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çèºäÿÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H� H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�÷ H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèÈÙÿÿÉÃUH‰åHƒì H‰}è‰uäH�ì H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�˜ H‰EøH‹Eø¶ªÿÿ‹UôH‹Eø‰ÖH‰Çè�ÚÿÿH‹Eø¾ÿÿÿÿH‰Çè<“ÿÿH‹Eø¾ÿÿÿÿH‰Çè+“ÿÿÉÃUH‰åHƒì0H‰}ØÇEôHÇEøH‹EØH� ¾H‰Çè^èÿÿH‹EغH�5 H‰ÇèóþÿÿH‹EؾÿÿÿÿH‰ÇèݬÿÿH‹EؾðØÿÿH‰Ç蜵ÿÿH‹EؾÿÿÿÿH‰Çè«’ÿÿH‹EؾÿÿÿÿH‰Çèš’ÿÿƒø„±H‹EؾþÿÿÿH‰ÇèÒÿÿH‹Eغ¾H‰ÇèºÇÿÿH‹Eغ¾H‰Çè¤ÇÿÿH‹EغH�5{ H‰ÇèQþÿÿH‹EØH�j ¾þÿÿÿH‰Ç褛ÿÿH‹EؾþÿÿÿH‰ÇèSÛÿÿH‹EؾþÿÿÿH‰Çè¬ÿÿH‹EؾþÿÿÿH‰Çè¬ÿÿH‹EؾðØÿÿH‰ÇèЭÿÿH‹EؾþÿÿÿH‰ÇèŸÔÿÿH‹EØH‰Çè“Ñÿÿ‰EôH‹EؾþÿÿÿH‰Çè�´ÿÿH‹EؾÿÿÿÿH‰Çèž‘ÿÿH‹EؾÿÿÿÿH‰Çè=ÊÿÿH‰EøHƒ}ø…dH‹EؾþÿÿÿH‰ÇèýÐÿÿH‹EؾH‰Ç蜯ÿÿH‰Eøƒ}ôt|H‹Eøº¾H‰Çèü¡ÿÿH‹EØH‰ÇèÑÿÿH‹EؾþÿÿÿH‰Çè/«ÿÿH‹EؾüÿÿÿH‰Çèþ¬ÿÿH‹EؾH‰Çè½ÕÿÿH‹EؾþÿÿÿH‰ÇèüªÿÿH‹EؾüÿÿÿH‰Çèˬÿÿé¼HÇEèH‹EؾH‰Çè}ÕÿÿH‹EؾýÿÿÿH‰Ç茳ÿÿH‹EؾÿÿÿÿH‰Çè›�ÿÿH‹EؾÿÿÿÿH‰Çè:ÉÿÿH‰EèHƒ}ètH‹EèH‹H‹EøH‰ëH‹Eøº¾H‰Çè¡ÿÿH‹EؾþÿÿÿH‰ÇèØÏÿÿH‹EØH‰Çè ÐÿÿH‹EؾþÿÿÿH‰Çè;ªÿÿH‹EؾüÿÿÿH‰Çè ¬ÿÿH‹EؾýÿÿÿH‰Çè™ÏÿÿH‹EøÉÃUH‰åHƒì H‰}è‰uä‹UäH‹Eè‰ÖH‰Çèã�ÿÿƒøuO‹UäH‹Eè‰ÖH‰Çè]�ÿÿfH~ÀH‰Eø‹MäH‹E躉ÎH‰Çè&H‰EðòH*Eðf.Eøzf.Eøu¸ë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØÇEôH�Uô‹MäH‹Eè‰ÎH‰Çè>äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çèâ¨ÿÿ‹UðH‹Eø‰ÖH‰ÇèѨÿÿ‹UôH‹Eø‰ÖH‰Çè€Ñÿÿ‹UðH‹Eø‰ÖH‰ÇèoÑÿÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰ÇèS¥ÿÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�! ¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�‘ ¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çè=¤ÿÿH‹Eø¾þÿÿÿH‰Çè|Ÿÿÿ‹UôH‹Eø‰ÖH‰ÇèËÃÿÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çèå§ÿÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èÔ´ÿÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèŽÿÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�° ‰ÎH‰Çè6•ÿÿ…À…�‹UäH‹Eè‰ÖH‰ÇèMŒÿÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5N H‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çèõ¥ÿÿé3‹UäH‹Eè‰ÖH‰Çè_•ÿÿ…ÀtH‹EèºH�5 H‰ÇèÈ÷ÿÿéH‹EèºH�5òÿH‰Çè«÷ÿÿéä‹MäH‹EèH�Ýÿ‰ÎH‰Çè ²ÿÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çèd‹ÿÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çè.ˆÿÿë‹UüH‹Eè‰ÖH‰Çè˧ÿÿH‰Eð‹UäH‹Eè‰ÖH‰Çèf»ÿÿH‰ÁH‹UðH‹EèH�5eÿH‰Ç¸è'¹ÿÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè°Íÿÿ�ë/H‹Eè¾ÿÿÿÿH‰Çè Ìÿÿ…ÀuH‹EèH�5%ÿH‰Ç¸è@°ÿÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Ç與ÿÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�tþ¾H‰ÇèÏßÿÿH‹EøH�æþ¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Ç躈ÿÿH‹Eø¾ÿÿÿÿH‰Çè)Šÿÿ…À…ŽH‹Eø¾þÿÿÿH‰Çè ÉÿÿH‹MèH‹EøºH‰ÎH‰Çè¨ÖÿÿH‹UðH‹EøH‰ÖH‰ÇèªÿÿH‹Eøº¾ÿÿÿÿH‰Ç迆ÿÿH‹Eøº¾H‰ÇèI¼ÿÿH‹Eø¾ÿÿÿÿH‰Ç踣ÿÿH‹UðH‹Eø¾ýÿÿÿH‰Çè“ÿÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Ç茣ÿÿH‹UðH‹Eø¾îØÿÿH‰Çèç’ÿÿH‹Eø¾þÿÿÿH‰Çè&Ìÿÿ�ÉÃUH‰åHƒì H‰}èH‹Eè¾H‰Çè6‰ÿÿƒøÿtH‹Eè¾H‰Çè0¨ÿÿ븉Eüƒ}üt5H‹Eè¾�H‰ÇèߟÿÿH‹Eè¾õH‰ÇèΟÿÿH‹Eè¾`P0H‰Ç轟ÿÿë{H‹EèH�5býH‰Çèè¨ÿÿH‹E躾ÿÿÿÿH‰Ç袅ÿÿH‹EèH�5?ýH‰Ç迨ÿÿH‹E躾ÿÿÿÿH‰Çèy…ÿÿH‹EèH�5ýH‰Çè–¨ÿÿH‹E躾ÿÿÿÿH‰ÇèP…ÿÿ¸ÉÃUH‰åHƒì0H‰}ØHÇEàH�UàH‹EؾH‰Çè–ÿÿH‰EðH‹EؾH‰ÇèˆÿÿƒøÿtH‹EؾH‰Çè•‘ÿÿ븉EìHÇEøH‹EàH…Àu3H‹EØH�5ÞûH‰Çè÷§ÿÿH‹Eغ¾ÿÿÿÿH‰Ç豄ÿÿ¸éÀƒ}ìtDH‹EàHÀHƒÀºDH�5SüH‰ÇèòÏÿÿH‰EøH‹Eà‰ÂH‹MøH‹EðH‰ÎH‰Çè%˜ÿÿH˜H‰EàëBH‹EàHÑèHƒÀºIH�5üH‰Çè®ÏÿÿH‰EøH‹Eà‰ÂH‹MøH‹EðH‰ÎH‰Çè£ÿÿH˜H‰EàH‹UàH‹MøH‹EØH‰ÎH‰Çè)óÿÿH‹EøºMH�5½ûH‰ÇèÜœÿÿ¸ÉÃUH‰åH�ìPH‰½¸ýÿÿH‹…¸ýÿÿ¾H‰ÇèÉÿÿH‰EðH‹…¸ýÿÿ¾H‰Çè·†ÿÿƒøÿtH‹…¸ýÿÿ¾H‰Çè.�ÿÿ븉EìH‹…¸ýÿÿ¾H‰Ç耆ÿÿƒøÿt&H‹…¸ýÿÿ¾H‰Çè÷�ÿÿ…Àt¸ë ¸ë¸‰EèèXªÿÿH‰Çè ÇÿÿH‰Eàèg¥ÿÿH‰Çè�ÇÿÿH‰EØHÇEÈÇEü‹UèH‹Eà‰ÖH‰Çè„ÿÿƒ}ìtmH‹UØH‹EàH‰ÖH‰Çè’¬ÿÿH�UÈH‹EðH‰Ñº¾sH‰ÇèEˆÿÿH‹EÈH‹‰ÂH‹EÈH‹HH‹EàH‰ÎH‰Çè5®ÿÿH‹E๺¾ H‰Çè ˆÿÿëmH‹UðH‹EàH‰ÖH‰Çè%¬ÿÿë‹UÔH��ÀýÿÿH‹EØH‰ÎH‰Çèê­ÿÿH��ÀýÿÿH‹EàºH‰ÎH‰Çèÿ°ÿÿ‰EÔƒ}ÔÃH‹Eعº¾ H‰Ç蛇ÿÿH�UÈH‹EØH‰Ñº¾sH‰Çè~‡ÿÿH‹EÈH‹H…Àt(H‹EÈH‹H‹EÈH‹HH‹…¸ýÿÿH‰ÎH‰ÇèöðÿÿÇEüH‹EàH‰Ç螎ÿÿƒ}ìtH‹EðH‰Çè«ÿÿë H‹EØH‰Çè«ÿÿ‹EüÉÃUH‰åHƒì H‰}èH‰uàH‹EàH‰EøH‹Eø¾ÿÿÿÿH‰Çè¥ÿÿ‰EôH‹EèH‹PH‹EøH‰ÖH‰Ç膤ÿÿH‹Eøº¾ÿÿÿÿH‰Çè@�ÿÿ‹Eô�PH‹Eø¾þÿÿÿH‰Çè©¢ÿÿ�ÉÃUH‰åHƒì H‰}èH‹EèL�?¸+H� X¸+º¾H‰ÇèÆÍÿÿ‰EüH‹E躾H‰Çè=¹ÿÿH‹Uè‹EüH�56ÿÿÿ‰Ç蘉ÿÿ¸ÉÃUH‰åHƒì H‰}èèàµÿÿH‰EøHƒ}øu ¸é±H‹UøH‹Eè¾H‰Çèf‰ÿÿH‰EøH‹EøH‰ÇèvÍÿÿH‰ÂH‹EèH‰ÖH‰Ç蔣ÿÿH‹E躾ÿÿÿÿH‰ÇèN€ÿÿH‹EøH‰Çè‚ÏÿÿH‰ÂH‹EèH‰ÖH‰Çè`£ÿÿH‹E躾ÿÿÿÿH‰Çè€ÿÿH‹UøH‹EèH‰ÖH‰Çè÷™ÿÿH‹EèH‰Çè;œÿÿH‹EèH‰Çè/œÿÿ¸ÉÃUH‰åHƒìH‰}øèçµÿÿ¸ÉÃUH‰åHƒì0H‰}ØÇEüèø¡ÿÿH‰Çè ÄÿÿH‰EðHƒ}ðt_H‹EðH‰Ç詉ÿÿH�UèH‹EðH‰Ñº¾sH‰Çèü„ÿÿH‹EèH‹H‹EèH‹HH‹EØH‰ÎH‰ÇèƒîÿÿH‹EðH‰Çè¨ÿÿè]µÿÿÇEü‹EüÉÃUH‰åHƒì0H‰}ØHÇEèH�UèH‹EؾH‰Çè�ÿÿH‰EøH‹EèH‰ÂH‹EؾH‰Çè܇ÿÿòH*ÀòEðH‹Eè‰ÂòEðH‹Eø‰ÖH‰Çè ¸ÿÿ¸ÉÃUH‰åH�ì0H‰½ØþÿÿH‹…Øþÿÿ¹º¾H‰Çè—ÿÿH‰EøÇEôH‹…Øþÿÿº¾H‰Çè^‡ÿÿ‰EðHƒ}øuH�…àþÿÿ¾H‰Çèà�ÿÿH‰Eø‹EðHcÐH‹EøH‰ÖH‰Çèg©ÿÿ‰Eô‹UôH‹…Øþÿÿ‰ÖH‰ÇèÆÿÿ¸ÉÃUH‰åH�ì H‰½èþÿÿH‹…èþÿÿ¹º¾H‰Çè—ÿÿH‰EøÇEôHƒ}øuH�…ðþÿÿ¾H‰ÇèS�ÿÿH‰Eøƒ}ôtH‹EøH‰Çè­»ÿÿ‰Eô‹UôH‹…èþÿÿ‰ÖH‰Çè–®ÿÿÉÃUH‰åHƒìH‰}øè3«ÿÿ‰ÂH‹Eø‰ÖH‰ÇèSÅÿÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EؾH‰ÇèoÎÿÿH˜H‰EøHÇEðÇEìHƒ}øH‹EØH�õ¾H‰Çè›…ÿÿ…À�H‹EøHƒÀH‰Çèè²ÿÿH‰EðH‹Eø‰ÂH‹Eð‰ÖH‰Çè`¹ÿÿ‰Eìƒ}ìuH‹UøH‹MðH‹EØH‰ÎH‰ÇèìÿÿH‹EðH‰Ç蔬ÿÿƒ}ìt‹UìH‹E؉ÖH‰Çè­­ÿÿë¸ÉÃUH‰åH‰}èÇEü‹Eü]ÃUH‰å¸ÿÿÿÿðÁÇú+ƒøu èUÀÿÿ耘ÿÿë�]ÃUH‰å¸ðÁ¢ú+…ÀP¾¿è7Œÿÿ¾¿@vè8ŸÿÿH�5Ÿô¿èW±ÿÿH‰Xú+H�5Žô¿è?±ÿÿH‰Hú+ë�]ÃUH‰åHƒìH‰}ø¸è‚ÿÿÿH‹Eøº¾H‰ÇèG´ÿÿH‹EøºH�5§ƒ+H‰ÇètÖÿÿH‹EøH‰Ç賜ÿÿH‹EøH‰Çè—ÅÿÿH‹EøH‰Çè;ÆÿÿH‹EøH� ô¾þÿÿÿH‰Çè#ˆÿÿH‹EøH‰Çè׊ÿÿH‹EøH�íó¾þÿÿÿH‰Çèÿ‡ÿÿH‹EøH‰Çèã£ÿÿH‹EøH�Îó¾þÿÿÿH‰ÇèÛ‡ÿÿH‹EøH‰Çè¿ÅÿÿH‹EøH�±ó¾þÿÿÿH‰Çè·‡ÿÿH‹EøH‰Çè;£ÿÿH‹EøH�”ó¾þÿÿÿH‰Ç蓇ÿÿH‹EøH‰Çè‹ÿÿH‹EøH�uó¾þÿÿÿH‰Çèo‡ÿÿH‹EøH‰Çè#ŸÿÿH‹EøH�Uó¾þÿÿÿH‰ÇèK‡ÿÿH‹EøH‰Çèï‘ÿÿH‹EøH�7ó¾þÿÿÿH‰Çè'‡ÿÿH‹EøH‰Çè[ŸÿÿH‹EøH�ó¾þÿÿÿH‰Çè‡ÿÿH‹EøH‰Çè�ÿÿH‹EøH�øò¾þÿÿÿH‰Çè߆ÿÿH‹EøH‰ÇèS…ÿÿH‹EøH�×ò¾þÿÿÿH‰Ç軆ÿÿH‹EøH‰Çè–ÿÿH‹EøH�¸ò¾þÿÿÿH‰Çè—†ÿÿH‹EøH‰Çè›–ÿÿH‹EøH�šò¾þÿÿÿH‰Çès†ÿÿH‹EøH‰Çè—¦ÿÿH‹EøH�}ò¾þÿÿÿH‰ÇèO†ÿÿH‹EøH‰ÇèS«ÿÿH‹EøH�^ò¾þÿÿÿH‰Çè+†ÿÿH‹EøH‰Çè¯ÇÿÿH‹EøH�=ò¾þÿÿÿH‰Çè†ÿÿH‹EøH‰Ç苦ÿÿH‹EøH�ò¾þÿÿÿH‰Çèã…ÿÿH‹EøH‰Çè×°ÿÿH‹EøH�ýñ¾þÿÿÿH‰Çè¿…ÿÿH‹EøH‰Çè–ÿÿH‹EøH�Üñ¾þÿÿÿH‰Çè›…ÿÿH‹EøH‰Ç蟊ÿÿH‹EøH�¼ñ¾þÿÿÿH‰Çèw…ÿÿH‹EøH‰ÇèkµÿÿH‹EøH�œñ¾þÿÿÿH‰ÇèS…ÿÿH‹EøH‰ÇègšÿÿH‹EøH�{ñ¾þÿÿÿH‰Çè/…ÿÿ¸ÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹UÜH‹MàH‹EèH‰ÎH‰Çèÿ�ÿÿH‰EøHƒ}øt H‹EøH‹ë¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰Çèî‡ÿÿH‹Eð¶„Àu ‹Eü‰ÇèÉ�ÿÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Çèç‘ÿÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè›zÿÿƒøtbH‹Eø¾þÿÿÿH‰ÇèºÿÿH‹UèH‹uðH‹EøH� RðH‰Çèê»ÿÿ…Àt H‹EøH‰Ç誉ÿÿH‹Eø¾ÿÿÿÿH‰ÇèY”ÿÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰ÇèOŒÿÿ‹Uà‹MäH‹Eø‰ÎH‰Ç蛬ÿÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5ÂðH‰Ç¸èeŸÿÿH‹EøH�Îð¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çè¶“ÿÿò*EôH‹EøH‰Çè{ÿÿH‹Eø¾ýÿÿÿH‰Çè´‹ÿÿH‹EøA¸¹ºÛH�5iïH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰ÇèØ¼ÿÿéå‹Uà‹MäH‹Eè‰ÎH‰Çè�ÿÿéÌH‹EèH�óï¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çè¹’ÿÿ‹UàH‹Eè‰ÖH‰Ç訒ÿÿH‹EèA¸¹ºH�5�ïH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çèô�ÿÿ‰EüH‹Eè¾þÿÿÿH‰Çèà·ÿÿ‹EüëH‹EèH�5€ïH‰Ç¸èÃ�ÿÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�ÿî¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çèí‘ÿÿ‹UüH‹Eè‰ÖH‰Ç蜺ÿÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè©wÿÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çè˜ÿÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèÄxÿÿ龋MôH‹EøH�§î‰ÎH‰Çè€ÿÿ…À…š‹UôH‹Eø‰ÖH‰Çè®—ÿÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèaxÿÿëZ‹MôH‹EøH�Gî‰ÎH‰Çè§ÿÿ…ÀuA‹UôH‹Eø‰ÖH‰ÇèÂvÿÿ‰ÂH‹Eø‰ÖH‰ÇèR“ÿÿH‰ÂH‹EøH�5îH‰Ç¸è'œÿÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çèô©ÿÿ‹UüH‹Eè‰ÖH‰Çè#™ÿÿH‹Eè¾ÿÿÿÿH‰Çè2vÿÿH‹Eè¾ÿÿÿÿH‰Çè!vÿÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�ñì¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çèm©ÿÿH‹Eè¾þÿÿÿH‰Çèì‡ÿÿ‹UüH‹Eè‰ÖH‰Ç蛑ÿÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèvÿÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çè½”ÿÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè>§ÿÿ…ÀuIHƒ}ètH‹UèH‹EøH�5xìH‰Ç¸ègšÿÿë$H‹EøºH�5mìH‰ÇèEH‹EøH‰Çè„ÿÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�€ë¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè|”ÿÿH‹E躾ÿÿÿÿH‰Çè6qÿÿ‹UüH‹Eè‰ÖH‰Çè…»ÿÿH‹Eè¾ÿÿÿÿH‰Çè$tÿÿH‹Eè¾ÿÿÿÿH‰Çètÿÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Ç膳ÿÿH‹E躾H‰Çè0©ÿÿH‹UØH‹EèH‰ÖH‰Çèí“ÿÿH‹E躾ÿÿÿÿH‰Çè§pÿÿH‹Eè¾þÿÿÿH‰Çè¶�ÿÿ‹UüH‹Eè‰ÖH‰Çè%ªÿÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�iê¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè­²ÿÿ‹Eô…ÀuH‹EèH�5ÃêH‰Ç¸èŽ˜ÿÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�¬ê‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰ÇèÏ’ÿÿH‹E躾ÿÿÿÿH‰Çè‰oÿÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Ç苌ÿÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè¿ÿÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰ÇèͨÿÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Ç裱ÿÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�ùè¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰ÇèSpÿÿH‹Eø¾ÿÿÿÿH‰ÇèÂqÿÿH‹Eø¾þÿÿÿH‰Çèñºÿÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè:ªÿÿH‰EøH‹EèH�è¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çèˆÿÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çè¯oÿÿH‹Eè¾ÿÿÿÿH‰ÇèqÿÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Ç蘀ÿÿ‰EôH‹Eè¾ýÿÿÿH‰Çè„°ÿÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çèªqÿÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çèuqÿÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çèpÿÿƒøt ¸éüH‹EøH‰Çè,‰ÿÿéÍH‹Eø¾þÿÿÿH‰Çèæoÿÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰ÇèWÿÿ…ÀtH‹Eø¾þÿÿÿH‰ÇèB¯ÿÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰ÇèL»ÿÿH‹EøºH�5VçH‰ÇèìH‹Eø¾þÿÿÿH‰Çèƒ�ÿÿH‹Eø¾H‰ÇèB®ÿÿ¸ë/H‹Eø¾þÿÿÿH‰Ç躮ÿÿH‹Eø¾þÿÿÿH‰Çèɱÿÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çèî…ÿÿ‰EüH‹UàH‹EèH�5ÈæH‰ÇèdžÿÿH‹Eè¾îØÿÿH‰ÇèÓˆÿÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çè®ÿÿ¸ë‹UüH‹Eè‰ÖH‰Çèö­ÿÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5æH‰Ç¸èPœÿÿéÜH‹EðH‹@¶H‹EèH‹@H‰ÇèÃhÿÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè¤hÿÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çè¿|ÿÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�57ÞH‰ÇèH‹ýn+H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5ÞH‰Ç¸è�“ÿÿH‹…ÀïÿÿH�5÷ÝH‰Ç艑ÿÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5ÍÝH‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5^ÝH‰Çèy‹ÿÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�55ÝH‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè aÿÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè ­ÿÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çèð‡ÿÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè6£ÿÿ‹UüH‹…ÈïÿÿH�5LÜH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰ÇèG¯ÿÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�žÛH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�„ÛH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèU¤ÿÿÉÃUH‰åHƒì H‰}è‰uäH�yÛH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�%ÛH‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çèosÿÿ‹UðH‹Eø‰ÖH‰Çè^sÿÿ‹UôH‹Eø‰ÖH‰Çè œÿÿ‹UðH‹Eø‰ÖH‰Çèü›ÿÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çèàoÿÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�®Ñ¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�ѾH‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰ÇèÊnÿÿH‹Eø¾þÿÿÿH‰Çè jÿÿ‹UôH‹Eø‰ÖH‰ÇèXŽÿÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰ÇèrrÿÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èaÿÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çè£XÿÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�=ЉÎH‰ÇèÃ_ÿÿ…À…�‹UäH‹Eè‰ÖH‰ÇèÚVÿÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5ÛÏH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè‚pÿÿé3‹UäH‹Eè‰ÖH‰Çèì_ÿÿ…ÀtH‹EèºH�5—ÏH‰ÇèÈ÷ÿÿéH‹EèºH�5ÏH‰Çè«÷ÿÿéä‹MäH‹EèH�jωÎH‰Çè–|ÿÿ…ÀtH‹Eè¾ÿÿÿÿH‰ÇèñUÿÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çè»Rÿÿë‹UüH‹Eè‰ÖH‰ÇèXrÿÿH‰Eð‹UäH‹Eè‰ÖH‰Çèó…ÿÿH‰ÁH‹UðH‹EèH�5òÎH‰Ç¸è´ƒÿÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè=˜ÿÿ�ë/H‹Eè¾ÿÿÿÿH‰Çè™–ÿÿ…ÀuH‹EèH�5²ÎH‰Ç¸èÍzÿÿë�H‹UØH‹Eè¾ÿÿÿÿH‰ÇèRÿÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�ξH‰ÇèÏßÿÿH‹EøH�sξðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèGSÿÿH‹Eø¾ÿÿÿÿH‰Çè¶Tÿÿ…À…ŽH‹Eø¾þÿÿÿH‰Çè-”ÿÿH‹MèH‹EøºH‰ÎH‰Çè5¡ÿÿH‹UðH‹EøH‰ÖH‰Çè’tÿÿH‹Eøº¾ÿÿÿÿH‰ÇèLQÿÿH‹Eøº¾H‰ÇèÖ†ÿÿH‹Eø¾ÿÿÿÿH‰ÇèEnÿÿH‹UðH‹Eø¾ýÿÿÿH‰Çè ]ÿÿƒ}ät&H‹Eø¾ÿÿÿÿH‰ÇènÿÿH‹UðH‹Eø¾îØÿÿH‰Çèt]ÿÿH‹Eø¾þÿÿÿH‰Çè³–ÿÿ�ÉÃUH‰åHƒì`H‰}¨èÏ“ÿÿH‰EðHÇEèÇEüH‹E¨¾H‰Çè«Sÿÿ‰Eäƒ}ätIƒ}ätCƒ}ät=ƒ}äuH‹E¨ºH�5ÕÎH‰ÇèÐ×ÿÿH…ÀuH‹E¨H�ÐξH‰Çè»Xÿÿ…À�H‹E¨¾H‰ÇèGSÿÿƒøuFH‹E¨¾H‰ÇèÁ\ÿÿ‰EÄ‹EÄ…ÀtH�EÄë¸H‹MðH‰Â¾H‰ÏèX’ÿÿÇEüéH‹E¨¾H‰ÇèëRÿÿƒøu]H‹E¨º¾H‰Çè»øÿÿH‰EØè'¡ÿÿH‰EÐH‹UØH‹EÐH‰ÖH‰Çèàgÿÿ‰Eüƒ}ü…¬H‹UÐH‹Eð¾H‰ÇèÞ‘ÿÿé’H‹E¨¾H‰Ç踓ÿÿ…Àt7H�U¸H‹E¨¾H‰Çè?`ÿÿH‰EÈH‹E¸‰ÂH‹MÈH‹EðH‰ÎH‰Çè‚Zÿÿ‰EüëFH‹E¨ºH�5‚ÍH‰Çè}ÖÿÿH‰EèHƒ}èt#H‹EèH‰ÇèÞLÿÿ‰ÁH‹UèH‹Eð‰ÎH‰Ç芒ÿÿ‰Eüƒ}üuJHƒ}ðt5H‹E¨¾H‰ÇèpÿÿH‰ÂH‹EðH‰H‹E¨ºÿÿÿÿH�5ZÍH‰Çè—MÿÿëH‹E¨H‰ÇèÙjÿÿë H‹EðH‰ÇèŽÿÿ‹EüÉÃUH‰åSHƒìXH‰}¨HÇEÈH�UÈH‹E¨¾H‰ÇèL_ÿÿH‰EèH‹]ÈH‹E¨º¾H‰ÇèWÿÿH‰ÞH‰Çè#’ÿÿH‰EàH‹]ÈH‹EÈH‰ÂH‹E¨¾H‰ÇèóVÿÿH‰ÞH‰Çèø‘ÿÿH‰EØH‹EàH�PÿH‹EèHÐH‰EÀHÇE¸ÇE´ÇE°Hƒ}àt H‹EÈH9EàrH‹E¨H�̾H‰Çè"Vÿÿ…À�H‹EØH;EàwH‹E¨H�‚̾H‰ÇèýUÿÿ…À�H‹EÈH9EØvH‹E¨H�}̾H‰ÇèØUÿÿ…À�H‹EàH�PÿH‹EèHÐH‰EÀH‹EØH+EàHƒÀH‰ÇH�M°H�U´H�u¸H�EÀI‰øH‰Çè¨Pÿÿ‰EÔ‹EÔ%€…ÀtTH‹E¨H‰ÇèMiÿÿH‹E¨H�5,ÌH‰Çè*pÿÿH‹E¨º¾ÿÿÿÿH‰ÇèäLÿÿ‹EÔHcÐH‹E¨H‰ÖH‰Çè¿fÿÿ¸é�‹E´HcÐH‹E¨H‰ÖH‰Çè fÿÿ‹E°HcÐH‹E¨H‰ÖH‰Çè‹fÿÿH‹EÀH+EèH�PH‹E¨H‰ÖH‰ÇèpfÿÿH‹EÀH‹U¸HÐH+EèH‰ÂH‹E¨H‰ÖH‰ÇèOfÿÿ‹EÔƒà ‰ÂH‹E¨‰ÖH‰Çè”ÿÿ¸HƒÄX[]ÃUH‰åH�ì€ H‰½ˆßÿÿH‹…ˆßÿÿ¾H‰Çè'�ÿÿ‰EìH‹…ˆßÿÿ¾H‰Çè�ÿÿ‰EèÇEüHÇEðH‹…ˆßÿÿ¾H‰ÇèêNÿÿƒøÿtNH‹…ˆßÿÿ¾H‰ÇèÑNÿÿƒøt5H‹…ˆßÿÿ¾H‰Çèø�ÿÿ…ÀuH‹…ˆßÿÿH�ÞʾH‰ÇèùSÿÿ…À�H‹…ˆßÿÿ¾H‰Çè‚Nÿÿƒøÿt6H‹…ˆßÿÿ¾H‰ÇèiNÿÿƒøtH‹…ˆßÿÿH�´Ê¾H‰Çè©Sÿÿ…À�H‹…ˆßÿÿ¾H‰Çè2NÿÿƒøÿuÇEøÇEüé¯H‹…ˆßÿÿ¾H‰ÇèNÿÿƒøuH‹…ˆßÿÿº¾H‰ÇèÓóÿÿ‰EüëAH‹…ˆßÿÿ¾H‰Çè�ÿÿ…Àt)H�•˜ßÿÿH‹…ˆßÿÿ¾H‰Çè JÿÿH‰EðH‹…˜ßÿÿ‰EüH‹…ˆßÿÿ¾H‰ÇèŽMÿÿƒøÿtH‹…ˆßÿÿ¾H‰ÇèWÿÿ븉EøH�• ßÿÿH‹…ˆßÿÿH‰ÖH‰ÇègëÿÿH�… ßÿÿ¾ H‰ÇèÄëÿÿH‰EàH‹EàH‰EØ‹}è‹Mì‹Uü‹uøH�EØA‰øH‰Çè·[ÿÿH‹UÀH‹EØH+EàHÐH‰EÀHƒ}ðt‹EüHcÐH‹MðH�… ßÿÿH‰ÎH‰ÇèÄìÿÿH�… ßÿÿH‰Çèïíÿÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EؾH‰Ç讚ÿÿ‰EôH‹Eعº¾H‰Çè bÿÿH‰EèÇEøHƒ}èuxÇEüëb‹EüH˜HÁàH‰ÂH�ê€+‹9EôuC‹EüH˜HÁàH‰ÂH�Ç€+H‹H‹EØH‰ÖH‰ÇèTlÿÿH‹Eغ¾ÿÿÿÿH‰ÇèIÿÿÇEøƒEü‹Eüƒø)v–éH‹EèH‰ÆH�=tÈèc‚ÿÿ…Àu|ÇEüëh‹EüƒÀ H˜HÁàH‰ÂH�X€+‹9EôuF‹EüƒÀ H˜HÁàH‰ÂH�2€+H‹H‹EØH‰ÖH‰Çè¿kÿÿH‹Eغ¾ÿÿÿÿH‰ÇèyHÿÿÇEøƒEüƒ}ü~’éˆH‹EèH‰ÆH�=åÇèÐ�ÿÿ…ÀuqÇEüëb‹EüH˜HÁàH‰ÂH�È+‹9EôuC‹EüH˜HÁàH‰ÂH�¥+H‹H‹EØH‰ÖH‰Çè2kÿÿH‹Eغ¾ÿÿÿÿH‰ÇèìGÿÿÇEøƒEüƒ}ü~˜‹EøÉÃUH‰åHƒì0H‰}ØHÇEàH�UàH‹EؾH‰Çè�XÿÿH‰EøH‹Eغ ¾H‰ÇèsPÿÿ‰Eô‹Eô‰Çè†uÿÿH‰EèH‹Eà‰ÂH‹MøH‹EèH‰ÎH‰Çè©hÿÿHƒ}èt5H‹EؾH‰Çè¡hÿÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5ÍÆH‰ÇèFÿÿë H‹EØH‰Çèacÿÿ¸ÉÃUH‰åHƒì0H‰}Øèy˜ÿÿH‰EøH‹EؾH‰Çètïÿÿ…Àt*H‹EؾH‰Çèï—ÿÿH‰EðH‹UðH‹EøH‰ÖH‰Çè_ÿÿëUH‹EؾH‰ÇèÅIÿÿƒøÿt?H‹EؾH‰ÇèÿMÿÿH‰EèHƒ}èt#H‹UøH‹EèH‰ÖH‰ÇèeÿÿH‰EøH‹EèH‰ÇèÁ}ÿÿHƒ}øt5H‹EؾH‰Çè©gÿÿH‰ÂH‹EøH‰H‹EغÿÿÿÿH�5éÅH‰Çè'Eÿÿë H‹EØH‰Çèibÿÿ¸ÉÃUH‰åHƒì H‰}èHÇEðÇEüèryÿÿH‰EðH‹Eè¾H‰Çèmhÿÿ…Àt,H‹Eè¾H‰Çèè–ÿÿH‰ÂH‹EðH‰ÖH‰Çè6wÿÿÇEüëIH‹Eè¾H‰Çèü‰ÿÿ…Àt-H‹E躾H‰Çè’EÿÿH‰ÂH‹EðH‰ÖH‰Çè�‹ÿÿ‰EüëÇEüƒ}üuJHƒ}ðt5H‹Eè¾H‰Çè¦fÿÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5ûÄH‰Çè$DÿÿëH‹EèH‰Çèfaÿÿë H‹EðH‰ÇèZÿÿƒ}ü”À¶ÀÉÃUH‰åHƒì0H‰}ØHÇEðÇEüè\tÿÿH‰EðH‹EؾH‰ÇèWgÿÿ…Àt4H‹EؾH‰ÇèÒ•ÿÿH‰EèH‹UèH‹EðH‰ÖH‰Çè ƒÿÿÇEüé€H‹EؾH‰ÇèÞˆÿÿ…Àt-H‹Eغ¾H‰ÇètDÿÿH‰ÂH‹EðH‰ÖH‰ÇèâPÿÿ‰Eüë>H‹EؾH‰Çè\Gÿÿƒøÿu(¿èÝhÿÿH‰EàH‹UàH‹EðH‰ÖH‰Ç膂ÿÿÇEüƒ}üuJHƒ}ðt5H‹EؾH‰ÇèQeÿÿH‰ÂH‹EðH‰H‹EغÿÿÿÿH�5¦ÃH‰ÇèÏBÿÿëH‹EØH‰Çè`ÿÿë H‹EðH‰Çè³Hÿÿƒ}ü”À¶ÀÉÃUH‰åHƒì0H‰}ØH‹Eغ¾H‰Çè…TÿÿH‰EðH‹EðH‰Çè%‹ÿÿ‰EìÇEüƒ}ìt‹EìHcÐH‹EØH‰ÖH‰ÇèP]ÿÿëH‹EؾH‰Çè=tÿÿ‰Eü‹EüÉÃUH‰åHƒìpH‰}˜ÇEüH‹E˜¾H‰Çè1Fÿÿƒø…�H‹E˜¾H‰Çè”ÿÿ‰Eø‹Eø‰Çè*rÿÿH‰EðHƒ}ð„DHƒ}ðt5H‹E˜¾H‰Çè#dÿÿH‰ÂH‹EðH‰H‹E˜ºÿÿÿÿH�5ŠÂH‰Çè¡Aÿÿë H‹E˜H‰Çèã^ÿÿÇEüéðH‹E˜¾H‰ÇèÖ†ÿÿ…À„¿H‹E˜º¾H‰ÇèXSÿÿH‰EèH‹E˜¾H‰ÇècEÿÿƒøÿtH‹E˜¾H‰ÇèÝNÿÿ븉Eä‹UäH‹Eè‰ÖH‰ÇèŠÿÿH‰EØHƒ}Ø„lHƒ}Øt5H‹E˜¾H‰ÇèKcÿÿH‰ÂH‹EØH‰H‹E˜ºÿÿÿÿH�5²ÁH‰ÇèÉ@ÿÿë H‹E˜H‰Çè ^ÿÿÇEüéH‹E˜¾H‰Çè¾Dÿÿƒø…�H‹E˜H�Á¾H‰ÇèCÿÿH‹E˜¾ÿÿÿÿH‰ÇèŒDÿÿH‹E˜¾ÿÿÿÿH‰Çè»…ÿÿ…ÀuH‹E˜H�LÁ¾H‰Çè¿Iÿÿ…À�H‹E˜º¾ÿÿÿÿH‰Çè&RÿÿH‰EÐH‹E˜¾þÿÿÿH‰ÇèÁƒÿÿH‹E˜H�*Á¾H‰Çè™BÿÿH‹E˜¾ÿÿÿÿH‰ÇèDÿÿH‹E˜¾ÿÿÿÿH‰Çè7…ÿÿ…ÀuH‹E˜H�ðÀ¾H‰Çè;Iÿÿ…À�H‹E˜º¾ÿÿÿÿH‰Çè¢QÿÿH‰EÈH‹E˜¾þÿÿÿH‰Çè=ƒÿÿH‹E˜H�ÍÀ¾H‰ÇèBÿÿH‹E˜¾ÿÿÿÿH‰Çè„CÿÿH‹E˜¾ÿÿÿÿH‰Ç賄ÿÿ…ÀuH‹E˜H�”À¾H‰Çè·Hÿÿ…À�H‹E˜º¾ÿÿÿÿH‰ÇèQÿÿH‰EÀH‹E˜¾þÿÿÿH‰Ç蹂ÿÿH‹EÐH‰Çè­‡ÿÿ…ÀtH‹E˜H�aÀ¾H‰ÇèaHÿÿ…À�H‹EÈH‰Çè‚eÿÿ…ÀtH‹E˜H�HÀ¾H‰Çè6Hÿÿ…À�H‹EÀH‰Çè·fÿÿ…ÀtH‹E˜H�.À¾H‰Çè Hÿÿ…À�H‹UÀH‹MÈH‹EÐH‰ÎH‰Çè�qÿÿ‰E¼ƒ}¼„Í‹E¼‰ÇèšnÿÿH‰E°Hƒ}°t5H‹E˜¾H‰Çèž`ÿÿH‰ÂH‹E°H‰H‹E˜ºÿÿÿÿH�5¿H‰Çè>ÿÿë H‹E˜H‰Çè^[ÿÿÇEüënH‹E˜¾H‰ÇèBÿÿƒøÿuXèZBÿÿH‰E¨Hƒ}¨t5H‹E˜¾H‰Çè.`ÿÿH‰ÂH‹E¨H‰H‹E˜ºÿÿÿÿH�5•¾H‰Çè¬=ÿÿë H‹E˜H‰ÇèîZÿÿÇEü‹EüÉÃUH‰åHƒì0H‰}ØH�UèH‹EؾH‰ÇèqOÿÿH‰EàH‹EèH‰ÂH�EàH‰Æ¿èUHÿÿH‰EðÇEüHƒ}ðtOHƒ}ðt5H‹EؾH‰Çè‹_ÿÿH‰ÂH‹EðH‰H‹EغÿÿÿÿH�5̼H‰Çè =ÿÿë H‹EØH‰ÇèKZÿÿÇEü‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5޼H‰Çè[@ÿÿH‹H‰EøH‹Eø‹HcÐH‹EèH‰ÖH‰Çè¬Wÿÿ¸ÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5D¼H‰Çè@ÿÿH‹H‰EðH‹E¸¾H‰Çè‰@ÿÿƒøÿ…ŸH‹Eðº¾H‰Çèºvÿÿ‰EìÇEü‹EìƒÀH˜º@H�5R¾H‰Ç褈ÿÿH‰Eà‹Eì�PH‹MàH‹EðH‰ÎH‰Çèwvÿÿ‰Eìƒ}ìx ‹EìHcÐH‹MàH‹E¸H‰ÎH‰Çè�áÿÿÇEüH‹EàºGH�5ô½H‰ÇèÆUÿÿ‹EüëFH�UÈH‹E¸¾H‰Çè¬MÿÿH‰EØH‹EȉÂH‹MØH‹EðH‰ÎH‰ÇèïGÿÿ‰EÔ‹UÔH‹E¸‰ÖH‰Çè{mÿÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5»H‰Çèå>ÿÿH‹H‰EøH‹EغH�5ùºH‰ÇèÆ>ÿÿH‹H‰EðH‹UðH‹EøH‰ÖH‰Çè,Iÿÿ‰Eìƒ}ì”À¶ÐH‹E؉ÖH‰Çèáƒÿÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5™ºH‰Çèf>ÿÿH‹H‰EøH‹EøH‰Çèc{ÿÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5[ºH‰Çè(>ÿÿH‹H‰EðÇEüH‹Eð‹ƒøtnH‹Eð‹ƒøtcH‹EðH‹@H‰ÇètaÿÿH‰EèHƒ}èt5H‹EؾH‰Çè¨\ÿÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5ÔºH‰Çè&:ÿÿë H‹EØH‰ÇèhWÿÿÇEü‹EüÉÃUH‰åHƒì0H‰}ØH‹EغH�5«¹H‰Çèx=ÿÿH‹H‰EðHÇEàH�UàH‹EðH‰ÖH‰Çè¦Bÿÿ‰EìÇEüƒ}ì~8‹EìHcÐH‹MàH‹EØH‰ÎH‰ÇèEßÿÿH‹EàºyH�5³»H‰Çè…SÿÿÇEü‹EüÉÃUH‰åH�ì H‰½èþÿÿH‰µàþÿÿH‹…èþÿÿº¾H‰Çè·rÿÿH‹…àþÿÿ‹ƒø‡D‰ÀH�…H�d»‹H˜H�X»HÐÿàÇEüþÿÿÿH‹…àþÿÿ‹PH‹…èþÿÿ‰ÖH‰ÇèÑ�ÿÿ‹MüH‹…èþÿÿH�»‰ÎH‰ÇèvFÿÿéDH‹…àþÿÿH‹@H‰Çè¾gÿÿH‰EðH‹…èþÿÿºH�5غH‰ÇèGÞÿÿHƒ}ðt;H‹…èþÿÿ¾H‰ÇèäZÿÿH‰ÂH‹EðH‰H‹…èþÿÿºÿÿÿÿH�5H¹H‰Çè_8ÿÿëH‹…èþÿÿH‰ÇèžUÿÿH‹…èþÿÿ¾ýÿÿÿH‰ÇèJXÿÿé¨H‹…àþÿÿH‹@H‰EèÇEäþÿÿÿH‹Eè‹HcÐH‹EèH‹HH‹…èþÿÿH‰ÎH‰Çè¤Ýÿÿ‹MäH‹…èþÿÿH�º‰ÎH‰Çè�EÿÿéOH‹…àþÿÿH‹@H‰EØÇEÔþÿÿÿH‹EØ‹HcÐH‹EØH‹HH‹…èþÿÿH‰ÎH‰ÇèKÝÿÿ‹MÔH‹…èþÿÿH�ù‰ÎH‰Çè(EÿÿéöH‹…àþÿÿH‹@H‰EÈÇEÄþÿÿÿH‹EÈ‹HcÐH‹EÈH‹HH‹…èþÿÿH‰ÎH‰ÇèòÜÿÿ‹MÄH‹…èþÿÿH�j¹‰ÎH‰ÇèÏDÿÿé�H‹…àþÿÿH‹@H‰E¸ÇE´þÿÿÿH‹E¸‹HcÐH‹E¸H‹HH‹…èþÿÿH‰ÎH‰Çè™Üÿÿ‹M´H‹…èþÿÿH�¹‰ÎH‰ÇèvDÿÿéDH‹…àþÿÿH‹@H‰E¨ÇE¤þÿÿÿH‹E¨‹HcÐH‹E¨H‹HH‹…èþÿÿH‰ÎH‰Çè@Üÿÿ‹M¤H‹…èþÿÿH�¸¸‰ÎH‰ÇèDÿÿéëH‹…àþÿÿH‹@H‰E˜ÇE”þÿÿÿH‹E˜‹HcÐH‹E˜H‹HH‹…èþÿÿH‰ÎH‰ÇèçÛÿÿ‹M”H‹…èþÿÿH�_¸‰ÎH‰ÇèÄCÿÿé’H‹…àþÿÿH‹@H‰EˆÇE„þÿÿÿH‹Eˆ‹HcÐH‹EˆH‹HH‹…èþÿÿH‰ÎH‰ÇèŽÛÿÿ‹M„H‹…èþÿÿH�¸‰ÎH‰ÇèkCÿÿé9H‹…àþÿÿH‹@H‰…xÿÿÿÇ…tÿÿÿþÿÿÿH‹…xÿÿÿ‹HcÐH‹…xÿÿÿH‹HH‹…èþÿÿH‰ÎH‰Çè)Ûÿÿ‹�tÿÿÿH‹…èþÿÿH�ž·‰ÎH‰ÇèCÿÿéÑH‹…àþÿÿH‹@H‰…hÿÿÿÇ…dÿÿÿþÿÿÿH‹…hÿÿÿ‹HcÐH‹…hÿÿÿH‹HH‹…èþÿÿH‰ÎH‰ÇèÁÚÿÿ‹�dÿÿÿH‹…èþÿÿH�6·‰ÎH‰Çè›BÿÿéiH‹…àþÿÿH‹@H‰…XÿÿÿÇ…TÿÿÿþÿÿÿH‹…Xÿÿÿ‹HcÐH‹…XÿÿÿH‹HH‹…èþÿÿH‰ÎH‰ÇèYÚÿÿ‹�TÿÿÿH‹…èþÿÿH�ζ‰ÎH‰Çè3BÿÿéH‹…àþÿÿH‹@H‰…HÿÿÿÇ…DÿÿÿþÿÿÿH‹…Hÿÿÿ‹HcÐH‹…HÿÿÿH‹HH‹…èþÿÿH‰ÎH‰ÇèñÙÿÿ‹�DÿÿÿH‹…èþÿÿH�f¶‰ÎH‰ÇèËAÿÿé™H‹…àþÿÿH‹@H‰…8ÿÿÿÇ…4ÿÿÿþÿÿÿH‹…8ÿÿÿ‹HcÐH‹…8ÿÿÿH‹HH‹…èþÿÿH‰ÎH‰Çè‰Ùÿÿ‹�4ÿÿÿH‹…èþÿÿH�þµ‰ÎH‰ÇècAÿÿé1H‹…àþÿÿH‹@H‰…(ÿÿÿÇ…$ÿÿÿþÿÿÿH‹…(ÿÿÿ‹HcÐH‹…(ÿÿÿH‹HH‹…èþÿÿH‰ÎH‰Çè!Ùÿÿ‹�$ÿÿÿH‹…èþÿÿH�–µ‰ÎH‰Çèû@ÿÿéÉH‹…àþÿÿH‹@H‰…ÿÿÿÇ…ÿÿÿþÿÿÿH‹…ÿÿÿ‹HcÐH‹…ÿÿÿH‹HH‹…èþÿÿH‰ÎH‰Çè¹Øÿÿ‹�ÿÿÿH‹…èþÿÿH�.µ‰ÎH‰Çè“@ÿÿëdH‹…àþÿÿH‹@H‰…ÿÿÿÇ…ÿÿÿþÿÿÿH‹…ÿÿÿ‹HcÐH‹…ÿÿÿH‹HH‹…èþÿÿH‰ÎH‰ÇèTØÿÿ‹�ÿÿÿH‹…èþÿÿH�É´‰ÎH‰Çè.@ÿÿ�HÇ…ðþÿÿH�•ðþÿÿH‹…àþÿÿH‰ÖH‰ÇèI;ÿÿ‰…ÿÿÿƒ½ÿÿÿ~eÇ…üþÿÿþÿÿÿ‹…ÿÿÿHcÐH‹�ðþÿÿH‹…èþÿÿH‰ÎH‰ÇèÖ×ÿÿ‹�üþÿÿH‹…èþÿÿH�Q´‰ÎH‰Çè°?ÿÿH‹…ðþÿÿºµH�5#´H‰ÇèõKÿÿH‹…àþÿÿ‹HcÐH‹…èþÿÿH‰ÖH‰Çè×LÿÿH‹…èþÿÿH�´¾þÿÿÿH‰Çè\?ÿÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5T±H‰Çè!5ÿÿH‹H‰EøH‹UøH‹EèH‰ÖH‰ÇèGvÿÿÉÃUH‰åHƒì H‰}èH‹EèºH�5:²H‰Çèá4ÿÿH‹H‰EøH‹EøH‰ÇèîiÿÿHcÐH‹EèH‰ÖH‰Çè,Lÿÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ê±H‰Çè‘4ÿÿH‹H‰EøH‹EøH‰Çèžiÿÿ‰Eô‹Eô‰Çèá\ÿÿH‰ÂH‹EèH‰ÖH‰ÇèUÿÿH‹E躾ÿÿÿÿH‰ÇèÉ1ÿÿ‹Eô‰Çè�|ÿÿH‰ÂH‹EèH‰ÖH‰ÇèÝTÿÿH‹E躾ÿÿÿÿH‰Çè—1ÿÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5E±H‰Çèì3ÿÿH‹H‰EðH‹EðH‰Çèùhÿÿ‰Çè"|ÿÿH‰EèÇEüHƒ}èt0H‹UèH‹EØH‰ÖH‰Çè]TÿÿH‹Eغ¾ÿÿÿÿH‰Çè1ÿÿÇEü‹EüÉÃUH‰åHƒì0H‰}ØH‹EغH�5À°H‰Çèg3ÿÿH‹H‰EðH‹EðH‰Çèthÿÿ‰Çè½[ÿÿH‰EèÇEüHƒ}èt0H‹UèH‹EØH‰ÖH‰ÇèØSÿÿH‹Eغ¾ÿÿÿÿH‰Çè’0ÿÿÇEü‹EüÉÃUH‰åH�ì` H‰½¨ßÿÿH‹…¨ßÿÿºH�52°H‰ÇèÙ2ÿÿH‹H‰EøH‹…¨ßÿÿ¾H‰ÇèN3ÿÿƒøÿtH‹…¨ßÿÿ¾H‰ÇèÅ<ÿÿ븉EôH�•°ßÿÿH‹…¨ßÿÿH‰ÖH‰Çè'ÑÿÿH�…°ßÿÿ¾ H‰Çè„ÑÿÿH‰Ç‹UôH‹Eø‰ÑH‰Â¾ èEFÿÿH‹UÐH˜HÐH‰EÐH�…°ßÿÿH‰ÇèæÓÿÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5g¯H‰Çè2ÿÿH‹H‰EøH‹EèºH�5H¯H‰Çèï1ÿÿH‹H‰EðH‹UðH‹EøH‰ÖH‰ÇèÕuÿÿ…À”À¶ÐH‹Eè‰ÖH‰Çèwÿÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5í®H‰Çè”1ÿÿH‹H‰EøèHQÿÿH‰ÇèpsÿÿH‰EðH‹UøH‹EðH‰ÖH‰Çè DÿÿH�UèH‹EðH‰Ñº¾sH‰ÇèL4ÿÿH‹EèH‹H‹EèH‹HH‹EØH‰ÎH‰ÇèFÓÿÿH‹EðH‰ÇèXÿÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5P®H‰Çè÷0ÿÿH‹H‰EøH‹EøH‰Çè”Vÿÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5®H‰Çè¹0ÿÿH‹H‰EøH‹EøH‰Çè\ÿÿH‰EðHƒ}ðt5H‹Eè¾H‰ÇèZOÿÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5Á­H‰ÇèØ,ÿÿë H‹EèH‰ÇèJÿÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ˆ­H‰Çè/0ÿÿH‹H‰EðH�UøH‹EؾH‰Çèƒ>ÿÿH‰EèH‹EøH‰ÂH�MèH�EðH‰ÎH‰ÇèåXÿÿH…À•À¶ÐH‹E؉ÖH‰Çè.uÿÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5 ­H‰Çè³/ÿÿH‹H‰EðH‹Eð¾H‰Çèëhÿÿ‰Eüƒ}ü~y‹EüH˜º…H�5®H‰ÇèixÿÿH‰EèH‹EèH‰EàH�UàH‹EðH‰ÖH‰Çèªhÿÿ‰Eüƒ}ü~ ‹EüHcÐH‹MèH‹EØH‰ÎH‰ÇèPÑÿÿÇEüH‹E躌H�5·­H‰Çè‰Eÿÿƒ}ü”À¶ÀÉÃUH‰åHƒì0H‰}ØH‹EغH�5¬H‰Çèé.ÿÿH‹H‰EøH‹EؾH‰Çèa/ÿÿƒøÿu_H‹Eø¾H‰ÇèË_ÿÿH‰EðHƒ}ðt5H‹EؾH‰ÇèoMÿÿH‰ÂH‹EðH‰H‹EغÿÿÿÿH�5ú­H‰Çèí*ÿÿëSH‹EØH‰Çè/HÿÿëEH‹EؾH‰Çè<3ÿÿH‰EèH‹UøH‹EèH‰ÖH‰ÇèEJÿÿH‹EèH‰Çè cÿÿH‹EؾH‰ÇèÈHÿÿ¸ÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5ê©H‰Çè�ZÿÿH‹H‰EðÇEüH‹Eð‹@ƒøtrƒø„8ƒø…ûH‹E¸ºH�5ëªH‰Çè¹-ÿÿH‹H‰EèH‹E¸¾H‰Çè1|ÿÿH‰EàH‹UàH‹EèH‰ÖH‰ÇèJCÿÿ‰Eü‹UüH‹E¸‰ÖH‰Çèæ[ÿÿé¡H‹E¸ºH�5 ªH‰ÇèY-ÿÿH‹H‰EØH‹E¸¾H‰ÇèÑ-ÿÿƒøu*H‹E¸¾H‰Çè»{ÿÿH‰EÐH‹UÐH‹EØH‰ÖH‰ÇèôZÿÿëZH‹E¸¾H‰ÇèÑnÿÿ…Àt-H‹E¸º¾H‰Çèg*ÿÿH‰ÂH‹EØH‰ÖH‰ÇèÕ6ÿÿ‰EüëH‹E¸H�5E¬H‰Ç¸èØRÿÿ‹UüH‹E¸‰ÖH‰Çè[ÿÿéÒH‹E¸ºH�5Ñ©H‰ÇèŠ,ÿÿH‹H‰EÈH‹E¸¾H‰Çè-ÿÿƒøu*H‹E¸¾H‰ÇèìzÿÿH‰EÀH‹UÀH‹EÈH‰ÖH‰Çè5[ÿÿëZH‹E¸¾H‰Çènÿÿ…Àt-H‹E¸º¾H‰Çè˜)ÿÿH‰ÂH‹EÈH‰ÖH‰Çè–oÿÿ‰EüëH‹E¸H�5v«H‰Ç¸è Rÿÿ‹UüH‹E¸‰ÖH‰ÇèHZÿÿë�¸ÉÃUH‰åHƒì`H‰}¨H‰u H‹E¨H‹@H‰EðHÇEøH�E°º8¾H‰Çèä<ÿÿH‹E¨‹@ƒøufH‹EøH�PH‰UøH‹UðHж¾À�PЉÐÁàÐÀ‰EÄH‹EøH�PH‰UøH‹UðHж¾À�PЋEÄЉEÄ‹EăøE�È‹EăÀd‰EÄéºH‹E¨‹@ƒø…ªH‹EøH�PH‰UøH‹UðHж¾Àƒè0iÀè‰EÄH‹EøH�PH‰UøH‹UðHж¾Àƒè0kÐd‹EÄЉEÄH‹EøH�PH‰UøH‹UðHж¾À�PЉÐÁàÐÀ‰Â‹EÄЉEÄH‹EøH�PH‰UøH‹UðHж¾À�PЋEÄЉEÄ‹EÄ-l‰EÄH‹EøH�PH‰UøH‹UðHж¾À�PЉÐÁàÐÀ‰EÀH‹EøH�PH‰UøH‹UðHж¾À�PÏ‹EÀЉEÀH‹EøH�PH‰UøH‹UðHж¾À�PЉÐÁàÐÀ‰E¼H‹EøH�PH‰UøH‹UðHж¾À�PЋE¼ЉE¼H‹EøH�PH‰UøH‹UðHж¾À�PЉÐÁàÐÀ‰E¸H‹EøH�PH‰UøH‹UðHж¾À�PЋE¸ЉE¸H‹EøH�PH‰UøH‹UðHж¾À�PЉÐÁàÐÀ‰E´H‹EøH�PH‰UøH‹UðHж¾À�PЋE´ЉE´H‹EøH�PH‰UøH‹UðHж¾À�PЉÐÁàÐÀ‰E°H‹EøH�PH‰UøH‹UðHж¾À�PЋE°ЉE°H�E°H‰Çè°?ÿÿH‰ÂH‹E HÐÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5�¤H‰Çè@UÿÿH‹H‰EðÇEüH‹Eð‹@ƒøtƒøŒåƒèƒø‡Ùé…H‹EȺH�5–¥H‰Çèd(ÿÿH‹H‰EèH‹Eè¾H‰Çè\YÿÿH‰EàHƒ}àt5H‹EȾH‰ÇèGÿÿH‰ÂH‹EàH‰H‹EȺÿÿÿÿH�5‹§H‰Çè~$ÿÿë H‹EÈH‰ÇèÀAÿÿÇEüëPH‹EȺH�5&¥H‰Çèß'ÿÿH‹H‰EØH‹EؾH‰ÇèùûÿÿH‰EÐòH*EÐH‹EÈH‰Çè±)ÿÿÇEüë�‹EüÉÃUH‰åH�ì°H‰½XÿÿÿH‹…XÿÿÿºH�5b£H‰ÇèTÿÿH‹H‰EðÇEüHÇ…hÿÿÿH‹Eð‹@ƒø‡‚‰ÀH�…H�Û¦‹H˜H�ϦHÐÿàH‹EðH‰EèH�•hÿÿÿH‹EèH‰ÖH‰ÇèüFÿÿ‰Eüé;H‹EðH‰EàH�•hÿÿÿH‹EàH‰ÖH‰ÇèF&ÿÿ‰EüéH‹EðH‰EØH�•hÿÿÿH‹EØH‰ÖH‰Çè�%ÿÿ‰EüéïH‹EðH‰EÐH�•hÿÿÿH‹EÐH‰ÖH‰ÇèJ5ÿÿ‰EüéÉH‹EðH‰EÈH�•hÿÿÿH‹EÈH‰ÖH‰ÇèÄ_ÿÿ‰Eüé£H‹EðH‰EÀH�•hÿÿÿH‹EÀH‰ÖH‰Çè¾1ÿÿ‰Eüé}H‹EðH‰E¸H�•hÿÿÿH‹E¸H‰ÖH‰Çè¸nÿÿ‰EüéWH‹EðH‰E°H�•hÿÿÿH‹E°H‰ÖH‰ÇèRZÿÿ‰Eüé1H‹EðH‰E¨H�•hÿÿÿH‹E¨H‰ÖH‰ÇèŒgÿÿ‰Eüé H‹EðH‰E H�•hÿÿÿH‹E H‰ÖH‰ÇèÆqÿÿ‰EüéåH‹EðH‰E˜H�•hÿÿÿH‹E˜H‰ÖH‰Çè€Cÿÿ‰Eüé¿H‹EðH‰E�H�•hÿÿÿH‹E�H‰ÖH‰ÇèŠ]ÿÿ‰Eüé™H‹EðH‰EˆH�•hÿÿÿH‹EˆH‰ÖH‰Çè$dÿÿ‰EüëvH‹EðH‰E€H�•hÿÿÿH‹E€H‰ÖH‰Çèaÿÿ‰EüëSH‹EðH‰…xÿÿÿH�•hÿÿÿH‹…xÿÿÿH‰ÖH‰ÇèÈ'ÿÿ‰Eüë*H‹EðH‰…pÿÿÿH�•hÿÿÿH‹…pÿÿÿH‰ÖH‰ÇèOOÿÿ‰Eüë�ƒ}ü~A‹EüHcÐH‹�hÿÿÿH‹…XÿÿÿH‰ÎH‰Çè¼ÆÿÿH‹…hÿÿÿºƒH�5'£H‰Çèù:ÿÿ¸ë‹UüH‹…Xÿÿÿ‰ÖH‰ÇèÞRÿÿÉÃUH‰åH�ì°H‰½XÿÿÿH‹…XÿÿÿºH�5, H‰ÇèÏPÿÿH‹H‰EøH�UðH‹…Xÿÿÿ¾H‰Çè�2ÿÿH‰EèH‹Eø‹@ƒø‡M‰ÀH�…H�¤‹H˜H� ¤HÐÿàH‹EøH‰EàH‹EðH‰ÂH�MèH�EàH‰ÎH‰ÇèaÿÿH‰EàH‹EàH…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰ÇèRÿÿéïH‹…Xÿÿÿ¾H‰Çè.>ÿÿéÑH‹EøH‰EØH‹EðH‰ÂH�MèH�EØH‰ÎH‰ÇèWYÿÿH‰EØH‹EØH…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰Çè¶QÿÿéŽH‹…Xÿÿÿ¾H‰ÇèÍ=ÿÿépH‹EøH‰EÐH‹EðH‰ÂH�MèH�EÐH‰ÎH‰ÇèPÿÿH‰EÐH‹EÐH…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰ÇèUQÿÿé-H‹…Xÿÿÿ¾H‰Çèl=ÿÿéH‹EøH‰EÈH‹EðH‰ÂH�MèH�EÈH‰ÎH‰ÇèõÿÿH‰EÈH‹EÈH…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰ÇèôPÿÿéÌH‹…Xÿÿÿ¾H‰Çè =ÿÿé®H‹EøH‰EÀH‹EðH‰ÂH�MèH�EÀH‰ÎH‰Çè4KÿÿH‰EÀH‹EÀH…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰Çè“PÿÿékH‹…Xÿÿÿ¾H‰Çèª<ÿÿéMH‹EøH‰E¸H‹EðH‰ÂH�MèH�E¸H‰ÎH‰Çè3IÿÿH‰E¸H‹E¸H…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰Çè2Pÿÿé H‹…Xÿÿÿ¾H‰ÇèI<ÿÿéìH‹EøH‰E°H‹EðH‰ÂH�MèH�E°H‰ÎH‰ÇèAÿÿH‰E°H‹E°H…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰ÇèÑOÿÿé©H‹…Xÿÿÿ¾H‰Çèè;ÿÿé‹H‹EøH‰E¨H‹EðH‰ÂH�MèH�E¨H‰ÎH‰Çè1nÿÿH‰E¨H‹E¨H…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰ÇèpOÿÿéHH‹…Xÿÿÿ¾H‰Çè‡;ÿÿé*H‹EøH‰E H‹EðH‰ÂH�MèH�E H‰ÎH‰Çèà;ÿÿH‰E H‹E H…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰ÇèOÿÿéçH‹…Xÿÿÿ¾H‰Çè&;ÿÿéÉH‹EøH‰E˜H‹EðH‰ÂH�MèH�E˜H‰ÎH‰Çè�,ÿÿH‰E˜H‹E˜H…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰Çè®Nÿÿé†H‹…Xÿÿÿ¾H‰ÇèÅ:ÿÿéhH‹EøH‰E�H‹EðH‰ÂH�MèH�E�H‰ÎH‰Çèn;ÿÿH‰E�H‹E�H…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰ÇèMNÿÿé%H‹…Xÿÿÿ¾H‰Çèd:ÿÿéH‹EøH‰EˆH‹EðH‰ÂH�MèH�EˆH‰ÎH‰Çè]`ÿÿH‰EˆH‹EˆH…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰ÇèìMÿÿéÄH‹…Xÿÿÿ¾H‰Çè:ÿÿé¦H‹EøH‰E€H‹EðH‰ÂH�MèH�E€H‰ÎH‰Çèü ÿÿH‰E€H‹E€H…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰Çè‹MÿÿécH‹…Xÿÿÿ¾H‰Çè¢9ÿÿéEH‹EøH‰…xÿÿÿH‹EðH‰ÂH�MèH�…xÿÿÿH‰ÎH‰ÇèµdÿÿH‰…xÿÿÿH‹…xÿÿÿH…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰ÇèMÿÿéöH‹…Xÿÿÿ¾H‰Çè59ÿÿéØH‹EøH‰…pÿÿÿH‹EðH‰ÂH�MèH�…pÿÿÿH‰ÎH‰Çèx$ÿÿH‰…pÿÿÿH‹…pÿÿÿH…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰Çè±Lÿÿé‰H‹…Xÿÿÿ¾H‰ÇèÈ8ÿÿënH‹EøH‰…hÿÿÿH‹EðH‰ÂH�MèH�…hÿÿÿH‰ÎH‰Çè.dÿÿH‰…hÿÿÿH‹…hÿÿÿH…ÀuH‹…Xÿÿÿ¾ÿÿÿÿH‰ÇèGLÿÿë"H‹…Xÿÿÿ¾H‰Çèa8ÿÿë¸ë¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5z™H‰ÇèJÿÿH‹H‰EðH‹EðH‰ÇèÚÿÿ‰EìÇEø‹EìHcÐH‹EØH‰ÖH‰ÇèË4ÿÿÇEüëg‹EüƒÀ H˜HÁàH‰ÂH�TR+‹9EìuE‹EüƒÀ H˜HÁàH‰ÂH�.R+H‹H‹EØH‰ÖH‰Çè»=ÿÿH‹Eغ¾ÿÿÿÿH‰ÇèuÿÿƒEøë ƒEüƒ}ü~“‹EøÉÃUH‰åHƒì H‰}èH‹EèºH�5©˜H‰ÇèLIÿÿH‹H‰EøH‹EøH‰ÇèÙeÿÿHcÐH‹EèH‰ÖH‰Çè4ÿÿ¸ÉÃUH‰åSHƒì8H‰}ÈH‹EȺH�5X˜H‰ÇèûHÿÿH‹H‰EèH‹EȾH‰Çèãÿÿƒøÿu2H‹EèH‰ÇèreÿÿHcØH‹EèH‰ÇècdÿÿH‰ÁH‹EÈH‰ÚH‰ÎH‰Çè6¾ÿÿëFH�UÐH‹EȾH‰Çèw*ÿÿH‰EàH‹EЉÂH‹MàH‹EèH‰ÎH‰Çèª:ÿÿ‰EÜ‹UÜH‹EȉÖH‰Çè&aÿÿ¸HƒÄ8[]ÃUH‰åHƒì H‰}èH‹EèºH�5“—H‰Çè6HÿÿH‹H‰EøH‹EèºH�5t—H‰ÇèHÿÿH‹H‰EðH‹Eø‹PH‹Eð‹@9ÂuH‹UðH‹EøH‰ÖH‰Çè«iÿÿ…ÀuºëºH‹Eè‰ÖH‰Çè�`ÿÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ÿ–H‰Çè¢GÿÿH‹H‰EøH‹EøH‰Çè¯_ÿÿ¸ÉÃUH‰åSHƒìHH‰}¸H‹E¸ºH�5À–H‰ÇècGÿÿH‹H‰EàÇEìHƒ}à„âH‹EàH‰Çèÿÿ‰EÜ‹E܃èƒø‡ŒH‹EàH‰ÇèÀcÿÿ‰ÃH‹EàH‰Çè²bÿÿº‰ÞH‰ÇèÓÿÿH‰EÐH‹EÐH‰ÇèÓcÿÿH‰EÈH‹UÈH‹E¸H‰ÖH‰Çèü:ÿÿH‹E¸º¾ÿÿÿÿH‰Çè¶ÿÿH‹EÐH‰ÇèúNÿÿH‹EȺMH�5°˜H‰Çè‚0ÿÿë1H‹EàH‰Çè4cÿÿHcØH‹EàH‰Çè%bÿÿH‰ÁH‹E¸H‰ÚH‰ÎH‰Çèø»ÿÿ�ÇEì‹EìHƒÄH[]ÃUH‰åHƒì@H‰}ÈH‹EȺH�5—•H‰Çè:FÿÿH‹H‰EøH‹EȺ¾H‰ÇèíÿÿH˜H‰EðèB9ÿÿH‰Çèj[ÿÿH‰EèH‹Eø‹@ƒøtƒøtë:H‹EøH‰EàH‹UàH‹EèH‰ÖH‰Çè¨fÿÿë4H‹EøH‰EØH‹UØH‹EèH‰ÖH‰Çè‹2ÿÿëH‹UðH‹MøH‹EèH‰ÎH‰Çè2dÿÿH�UÐH‹EèH‰Ñº¾sH‰ÇèõÿÿH‹EÐH‹H‹EÐH‹HH‹EÈH‰ÎH‰ÇèïºÿÿH‹EèH‰Çè»?ÿÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5�”H‰Çè0EÿÿH‹H‰EøHÇEèH‹UøH�EèH‰ÖH‰ÇèŽ;ÿÿ‰EôH‹EèH…Àt1‹EôHcÐH‹MèH‹EØH‰ÎH‰ÇèqºÿÿH‹E躋H�5ß–H‰Çè±.ÿÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5”H‰Çè¦DÿÿH‹H‰EøH‹Eø‹PH‹MøH‹EèH‰ÎH‰ÇèEaÿÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5•H‰ÇèÊÿÿH‹H‰EøH‹EøH‰Çè‡dÿÿ‰Eô‹UôH‹Eè‰ÖH‰ÇèFÿÿÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5Ä”H‰Çè}ÿÿH‹H‰EøH‹EȾH‰ÇèõeÿÿH‰EðH‹EȺ¾H‰Çè«ÿÿ‰EìH‹EȺ¾H‰Çè’ÿÿH‰EàH‹Eø‹@ƒøtƒøt#ëAH‹EøH‰EØH‹Mà‹UìH‹uðH‹EØH‰ÇèœJÿÿë H‹EøH‰EÐH‹Mà‹UìH‹uðH‹EÐH‰Çè[)ÿÿ�H‹EȾH‰Çèi1ÿÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5å“H‰ÇèžÿÿH‹H‰EøH‹EؾH‰Çèÿÿ…À~H‹EغH�5±“H‰ÇèjÿÿH‹ë¸H‰EðH‹Eð‹PH‹Eø‹@9ÂtH‹EØH�×–¾H‰Çè"ÿÿ…À�H‹MðH‹UøH�uäH�EèH‰Çè÷Hÿÿ‰Eìƒ}ìu*‹EèHcÐH‹EØH‰ÖH‰Çèi-ÿÿ‹EäHcÐH‹EØH‰ÖH‰ÇèT-ÿÿƒ}ìt‹UìH‹E؉ÖH‰Çè=Dÿÿë¸ÉÃUH‰åHƒìH‰}øH‹EøH�ÝN+H�5÷’H‰Çè¾+ÿÿH‹EøH�#N+H�5·‘H‰Çè¤+ÿÿH‹EøH�‰O+H�5ˆ’H‰ÇèŠ+ÿÿH‹EøH�oO+H�5‚’H‰Çèp+ÿÿH‹EøH�UO+H�5}’H‰ÇèV+ÿÿH‹EøH�‘H�5c’H‰Çèl5ÿÿH‹EøH�ö�H�5 ’H‰ÇèR5ÿÿH‹EøH�Ü�H�5’H‰Çè85ÿÿH‹Eøº¾H‰Çè²JÿÿH‹EøºH�5’L+H‰ÇèR¢ÿÿH‹EøH�¿I+¾ÿÿÿÿH‰Çè"/ÿÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰UàHÇEø‹UäH‹Eè‰ÖH‰Çè@Vÿÿ…Àt)‹MäH‹E躉ÎH‰ÇèÖÿÿ¾H‰Çè©YÿÿH‰EøëH‹UäH‹EèH�5†‘H‰Çè=^ÿÿH…Àt-‹UäH‹EèH�5k‘H‰ÇèÿÿH‹H‰EðH‹EðH‰Çèo?ÿÿH‰EøH‹EøÉÃUH‰åHƒì H‰}èH‰uàH‹EàH‰ÇèI?ÿÿH‰EøHƒ}øt5H‹Eè¾H‰Çè�2ÿÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5ô�H‰Çè ÿÿë H‹EèH‰ÇèM-ÿÿ¸ÉÃUH‰åHƒì@H‰}ØH‰uЉUÌH‹EЋ@ƒàƒøuƒ}Ìu ÇEÌë.H‹EЋ@ƒàƒøuƒ}Ìu ÇEÌëƒ}Ìÿu H‹EЋ@‰Ẽ}Ìtƒ}̌ҋẼèƒø‡ÃëbH‹EÐH‰ÇèŠ]ÿÿH‰EøHƒ}øt5H‹EؾH‰Çè®1ÿÿH‰ÂH‹EøH‰H‹EغÿÿÿÿH�5î�H‰Çè,ÿÿë H‹EØH‰Çèn,ÿÿ¸é¼H‹EÐH‰Çè6ÿÿH‰EðHƒ}ðt5H‹EؾH‰ÇèL1ÿÿH‰ÂH‹EðH‰H‹EغÿÿÿÿH�5¡�H‰ÇèÊÿÿë H‹EØH‰Çè ,ÿÿ¸ë]H‹EÐH‰Çè¹5ÿÿH‰EèHƒ}èt5H‹EؾH‰Çèí0ÿÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5�H‰Çèkÿÿë H‹EØH‰Çè­+ÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàHƒ}àt_H‹Eà¾H‰ÇèÎBÿÿH‰EøHƒ}øt5H‹Eè¾H‰Çèr0ÿÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5ý�H‰Çèð ÿÿëH‹EèH‰Çè2+ÿÿë H‹EèH‰Çè$+ÿÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰ÇèwÿÿH‹Eð¶„Àu ‹Eü‰ÇèRÿÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Çèp(ÿÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè$ÿÿƒøtbH‹Eø¾þÿÿÿH‰ÇèžPÿÿH‹UèH‹uðH‹EøH� [‘H‰ÇèsRÿÿ…Àt H‹EøH‰Çè3 ÿÿH‹Eø¾ÿÿÿÿH‰Çèâ*ÿÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰ÇèØ"ÿÿ‹Uà‹MäH‹Eø‰ÎH‰Çè$Cÿÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5Ë‘H‰Ç¸èî5ÿÿH‹EøH�ב¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çè?*ÿÿò*EôH‹EøH‰ÇèŽÿÿH‹Eø¾ýÿÿÿH‰Çè="ÿÿH‹EøA¸¹ºÛH�5r�H‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰ÇèaSÿÿéå‹Uà‹MäH‹Eè‰ÎH‰ÇèÿÿéÌH‹EèH�ü�¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰ÇèB)ÿÿ‹UàH‹Eè‰ÖH‰Çè1)ÿÿH‹EèA¸¹ºH�5¦�H‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çè}ÿÿ‰EüH‹Eè¾þÿÿÿH‰ÇèiNÿÿ‹EüëH‹EèH�5‰�H‰Ç¸èL4ÿÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH��¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çèv(ÿÿ‹UüH‹Eè‰ÖH‰Çè%Qÿÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè2ÿÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çèš.ÿÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèMÿÿ龋MôH‹EøH�°�‰ÎH‰Çè�ÿÿ…À…š‹UôH‹Eø‰ÖH‰Çè7.ÿÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèêÿÿëZ‹MôH‹EøH�P�‰ÎH‰Çè0ÿÿ…ÀuA‹UôH‹Eø‰ÖH‰ÇèK ÿÿ‰ÂH‹Eø‰ÖH‰ÇèÛ)ÿÿH‰ÂH‹EøH�5�H‰Ç¸è°2ÿÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çè}@ÿÿ‹UüH‹Eè‰ÖH‰Çè¬/ÿÿH‹Eè¾ÿÿÿÿH‰Çè» ÿÿH‹Eè¾ÿÿÿÿH‰Çèª ÿÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�ú�¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çèö?ÿÿH‹Eè¾þÿÿÿH‰Çèuÿÿ‹UüH‹Eè‰ÖH‰Çè$(ÿÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè� ÿÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰ÇèF+ÿÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰ÇèÇ=ÿÿ…ÀuIHƒ}ètH‹UèH‹EøH�5��H‰Ç¸èð0ÿÿë$H‹EøºH�5v�H‰ÇèEH‹EøH‰ÇèŠÿÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�‰Œ¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè+ÿÿH‹E躾ÿÿÿÿH‰Çè¿ÿÿ‹UüH‹Eè‰ÖH‰ÇèRÿÿH‹Eè¾ÿÿÿÿH‰Çè­ ÿÿH‹Eè¾ÿÿÿÿH‰Çèœ ÿÿƒøu¸ëwH‹Eè¾þÿÿÿH‰ÇèJÿÿH‹E躾H‰Çè¹?ÿÿH‹UØH‹EèH‰ÖH‰Çèv*ÿÿH‹E躾ÿÿÿÿH‰Çè0ÿÿH‹Eè¾þÿÿÿH‰Çè?$ÿÿ‹UüH‹Eè‰ÖH‰Çè®@ÿÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�r‹¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè6Iÿÿ‹Eô…ÀuH‹EèH�5Ì‹H‰Ç¸è/ÿÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�µ‹‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰ÇèX)ÿÿH‹E躾ÿÿÿÿH‰ÇèÿÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè#ÿÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰ÇèŽUÿÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰ÇèV?ÿÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè,Hÿÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�оH‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰ÇèÜÿÿH‹Eø¾ÿÿÿÿH‰ÇèKÿÿH‹Eø¾þÿÿÿH‰ÇèzQÿÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèÃ@ÿÿH‰EøH‹EèH�ˆ‰¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰ÇèŸÿÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çè8ÿÿH‹Eè¾ÿÿÿÿH‰Çè§ÿÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çè!ÿÿ‰EôH‹Eè¾ýÿÿÿH‰Çè Gÿÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çè3ÿÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çèþÿÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çè ÿÿƒøt ¸éüH‹EøH‰ÇèµÿÿéÍH‹Eø¾þÿÿÿH‰Çèoÿÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çèàÿÿ…ÀtH‹Eø¾þÿÿÿH‰ÇèËEÿÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰ÇèÕQÿÿH‹EøºH�5_ˆH‰ÇèìH‹Eø¾þÿÿÿH‰Çè ÿÿH‹Eø¾H‰ÇèËDÿÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèCEÿÿH‹Eø¾þÿÿÿH‰ÇèRHÿÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çèwÿÿ‰EüH‹UàH‹EèH�5чH‰Çèí4ÿÿH‹Eè¾îØÿÿH‰Çè\ÿÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çè—Dÿÿ¸ë‹UüH‹Eè‰ÖH‰ÇèDÿÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5$‡H‰Ç¸èÙ2ÿÿéÜH‹EðH‹@¶H‹EèH‹@H‰ÇèLÿþÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè-ÿþÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèHÿÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5@H‰ÇèH‹†+H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5H‰Ç¸è*ÿÿH‹…ÀïÿÿH�5H‰Çè(ÿÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5Ö~H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5g~H‰Çè"ÿÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5>~H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè”÷þÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè•Cÿÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çèyÿÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè¿9ÿÿ‹UüH‹…ÈïÿÿH�5U}H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰ÇèÐEÿÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�§|H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H��|H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèÞ:ÿÿÉÃUH‰åHƒì H‰}è‰uäH�‚|H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�.|H‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çèø ÿÿ‹UðH‹Eø‰ÖH‰Çèç ÿÿ‹UôH‹Eø‰ÖH‰Çè–2ÿÿ‹UðH‹Eø‰ÖH‰Çè…2ÿÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çèiÿÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�·r¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�'r¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰ÇèSÿÿH‹Eø¾þÿÿÿH‰Çè’ÿÿ‹UôH‹Eø‰ÖH‰Çèá$ÿÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰ÇèûÿÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èêÿÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çè,ïþÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�Fq‰ÎH‰ÇèLöþÿ…À…�‹UäH‹Eè‰ÖH‰Çècíþÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5äpH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè ÿÿé3‹UäH‹Eè‰ÖH‰Çèuöþÿ…ÀtH‹EèºH�5 pH‰ÇèÈ÷ÿÿéH‹EèºH�5ˆpH‰Çè«÷ÿÿéä‹MäH‹EèH�sp‰ÎH‰Çèÿÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çèzìþÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰ÇèDéþÿë‹UüH‹Eè‰ÖH‰ÇèáÿÿH‰Eð‹UäH‹Eè‰ÖH‰Çè|ÿÿH‰ÁH‹UðH‹EèH�5ûoH‰Ç¸è=ÿÿƒ}øtCH‹Eè¾þÿÿÿH‰ÇèÆ.ÿÿ�ë/H‹Eè¾ÿÿÿÿH‰Çè"-ÿÿ…ÀuH‹EèH�5»oH‰Ç¸èVÿÿë�H‹UØH‹Eè¾ÿÿÿÿH‰ÇèžèþÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH� o¾H‰ÇèÏßÿÿH‹EøH�|o¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèÐéþÿH‹Eø¾ÿÿÿÿH‰Çè?ëþÿ…À…ŽH‹Eø¾þÿÿÿH‰Çè¶*ÿÿH‹MèH‹EøºH‰ÎH‰Çè¾7ÿÿH‹UðH‹EøH‰ÖH‰Çè ÿÿH‹Eøº¾ÿÿÿÿH‰ÇèÕçþÿH‹Eøº¾H‰Çè_ÿÿH‹Eø¾ÿÿÿÿH‰ÇèÎÿÿH‹UðH‹Eø¾ýÿÿÿH‰Çè)ôþÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè¢ÿÿH‹UðH‹Eø¾îØÿÿH‰ÇèýóþÿH‹Eø¾þÿÿÿH‰Çè<-ÿÿ�ÉÃUH‰åH‰}ø¸]ÃUH‰åHƒì H‰}øH‰uðH‰UèH‹UðH‹EøH‰ÖH‰Çè“ÿÿ…ÀtAH‹UðH‹EøH‰ÖH‰Çè< ÿÿH‹Eøº¾ÿÿÿÿH‰ÇèöæþÿH‹EøH�Õm¾þÿÿÿH‰ÇènóþÿH‹EøH�5õmH‰Çèû ÿÿH‹Eøº¾ÿÿÿÿH‰ÇèµæþÿH‹Eøº¾H‰ÇèÿÿÿH‹EøH�5¾mH‰Çè¼ ÿÿH‹Eøº¾ÿÿÿÿH‰ÇèvæþÿH‹UðH‹EøH‰ÖH‰Çè“ ÿÿH‹Eøº¾ÿÿÿÿH‰ÇèMæþÿH‹Eø¾ýÿÿÿH‰Çè<ÿÿëuH‹EèH‹H‹EøH‰ÖH‰ÇèT ÿÿH‹Eøº¾ÿÿÿÿH‰ÇèæþÿH‹EèH‹HH‹EøºH‰ÎH‰Çè²5ÿÿH‹EèH‹¶<_uºûÿÿÿëºýÿÿÿH‹Eø‰ÖH‰ÇèÊÿÿHƒEèH‹EèH‹H…À…{ÿÿÿH‹Eø¾ýÿÿÿH‰Çè¤ÿÿH‹Eø¾þÿÿÿH‰Çè3(ÿÿ�ÉÃUH‰åHƒì0H‰}ØH‹EؾH‰ÇèCÿþÿ…À„;H‹EØH�5‚lH‰ÇèˆÿÿH‹Eغ¾ÿÿÿÿH‰ÇèBåþÿH‹EؾþÿÿÿH‰Çè‘/ÿÿH‹EؾÿÿÿÿH‰Çè0èþÿH‹EؾÿÿÿÿH‰Çèèþÿƒø…ÙH‹EØH�5%lH‰Çè#ÿÿH‹Eغ¾ÿÿÿÿH‰ÇèÝäþÿH‹EؾþÿÿÿH‰Çè,/ÿÿH‹EؾÿÿÿÿH‰ÇèËçþÿH‹EؾÿÿÿÿH‰Çèú(ÿÿ…Àt|H‹EؾH‰ÇèU ÿÿH‰ÂH�EàH‰ÑH�´k¾ H‰Ç¸è’%ÿÿH‹Eغ¾ÿÿÿÿH‰Çè\äþÿH‰ÆH�UàH‹EØH‰ÑH‰òH�5jH‰Ç¸èwÿÿ¸ëA�ë�ë�H‹EØH�5VkH‰ÇèFÿÿH‹Eغ¾ÿÿÿÿH‰ÇèäþÿH‹EØH‰ÇèTöþÿ¸ÉÃUH‰åHƒì H‰}øH‰uðH‰UèH‹UðH‹Eø¾ðØÿÿH‰ÇèTåþÿH‹Eø¾ÿÿÿÿH‰ÇèÃæþÿH‹UèH‹EøH‰ÖH‰ÇèÐÿÿH‹Eøº¾ÿÿÿÿH‰ÇèŠãþÿH‹Eø¾H‰ÇèI+ÿÿH‹Eø¾ýÿÿÿH‰ÇèhÿÿH‹Eø¾þÿÿÿH‰Çè÷%ÿÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰ÇèDæþÿƒøt%H‹Eø¾H‰ÇèÎÿÿH‰Â‹MôH‹Eø‰ÎH‰Çè:0ÿÿ‹UôH‹Eø‰ÖH‰Çè™ïþÿÉÃUH‰åHƒì`H‰}¸H‰u°‰U¬‹U¬H‹M°H‹E¸H‰ÎH‰Çè^/ÿÿH‰EøHƒ}øu9H‹U°H�EÀH‰ÑH�j¾-H‰Ç¸è¿#ÿÿH�UÀ‹M¬H‹E¸‰ÎH‰ÇèúêþÿH‹EøÉÃUH‰åHƒì`H‰}¸H‰u°‰U¬‹U¬H‹M°H‹E¸H‰ÎH‰ÇèëùþÿH‰EøHƒ}øu9H‹U°H�EÀH‰ÑH�§i¾-H‰Ç¸èL#ÿÿH�UÀ‹M¬H‹E¸‰ÎH‰Çè‡êþÿH‹EøÉÃUH‰åHƒì H‰}øH‰uð‰UìH‹UðH‹Eø¾ðØÿÿH‰ÇèyãþÿH‹Eø¾ÿÿÿÿH‰Çèèäþÿƒ}ìyƒmì‹UìH‹Eø‰ÖH‰Çè .ÿÿ�ÉÃUH‰åHƒì H‰}øH‰uð‰Uì‹UìH‹Eø‰ÖH‰Çèfûþÿ…Àu ¸éšH‹UðH‹EøH‰ÖH‰Çè¥ÿÿH‹Eøº¾ÿÿÿÿH‰Çè_áþÿH‹Eø¾þÿÿÿH‰Çè>ÿÿH‹Eø¾ÿÿÿÿH‰ÇèMäþÿH‹Eø¾ÿÿÿÿH‰Çè<äþÿ…ÀuH‹Eø¾ýÿÿÿH‰Çè·#ÿÿ¸ë"H‹Eø¾ýÿÿÿH‰ÇèŸ#ÿÿ‹UìH‹Eø‰ÖH‰Çè®ÿÿÉÃUH‰åHƒì H‰}øH‰uð‰UìH‹Uð‹MìH‹Eø‰ÎH‰Çè�ÛÿÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè®ãþÿ‰ÂH‹Eè‰ÖH‰Çè>ÿÿH‰ÁH‹UØH‹EèH�5ôgH‰Ç¸è¯ÿÿH‰EøH‹Uø‹MäH‹Eè‰ÎH‰ÇèÆèþÿÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰ÇèîïþÿH‹Eð¶„Àu ‹Eü‰ÇèÉéþÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰ÇèçùþÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè›âþÿƒøtbH‹Eø¾þÿÿÿH‰Çè"ÿÿH‹UèH‹uðH‹EøH� òfH‰Çèê#ÿÿ…Àt H‹EøH‰ÇèªñþÿH‹Eø¾ÿÿÿÿH‰ÇèYüþÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰ÇèOôþÿ‹Uà‹MäH‹Eø‰ÎH‰Çè›ÿÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5bgH‰Ç¸èeÿÿH‹EøH�ng¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çè¶ûþÿò*EôH‹EøH‰ÇèãþÿH‹Eø¾ýÿÿÿH‰Çè´óþÿH‹EøA¸¹ºÛH�5 fH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰ÇèØ$ÿÿéå‹Uà‹MäH‹Eè‰ÎH‰ÇèéþÿéÌH‹EèH�“f¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çè¹úþÿ‹UàH‹Eè‰ÖH‰Çè¨úþÿH‹EèA¸¹ºH�5=fH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çèôéþÿ‰EüH‹Eè¾þÿÿÿH‰Çèàÿÿ‹EüëH‹EèH�5 fH‰Ç¸èÃÿÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�Ÿe¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çèíùþÿ‹UüH‹Eè‰ÖH‰Çèœ"ÿÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè©ßþÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰ÇèÿÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèÄàþÿ龋MôH‹EøH�Ge‰ÎH‰Çèèþÿ…À…š‹UôH‹Eø‰ÖH‰Çè®ÿþÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèaàþÿëZ‹MôH‹EøH�çd‰ÎH‰Çè§çþÿ…ÀuA‹UôH‹Eø‰ÖH‰ÇèÂÞþÿ‰ÂH‹Eø‰ÖH‰ÇèRûþÿH‰ÂH‹EøH�5´dH‰Ç¸è'ÿÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çèôÿÿ‹UüH‹Eè‰ÖH‰Çè#ÿÿH‹Eè¾ÿÿÿÿH‰Çè2ÞþÿH‹Eè¾ÿÿÿÿH‰Çè!ÞþÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�‘c¾H‰Çè»H‹UØH‹EèH‰ÖH‰ÇèmÿÿH‹Eè¾þÿÿÿH‰Çèìïþÿ‹UüH‹Eè‰ÖH‰Çè›ùþÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèÞþÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çè½üþÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè>ÿÿ…ÀuIHƒ}ètH‹UèH‹EøH�5cH‰Ç¸ègÿÿë$H‹EøºH�5 cH‰ÇèEH‹EøH‰Çèìþÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH� b¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè|üþÿH‹E躾ÿÿÿÿH‰Çè6Ùþÿ‹UüH‹Eè‰ÖH‰Çè…#ÿÿH‹Eè¾ÿÿÿÿH‰Çè$ÜþÿH‹Eè¾ÿÿÿÿH‰ÇèÜþÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Çè†ÿÿH‹E躾H‰Çè0ÿÿH‹UØH‹EèH‰ÖH‰ÇèíûþÿH‹E躾ÿÿÿÿH‰Çè§ØþÿH‹Eè¾þÿÿÿH‰Çè¶õþÿ‹UüH‹Eè‰ÖH‰Çè%ÿÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH� a¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè­ÿÿ‹Eô…ÀuH‹EèH�5caH‰Ç¸èŽÿÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�La‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰ÇèÏúþÿH‹E躾ÿÿÿÿH‰Çè‰×þÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè‹ôþÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè'ÿÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰ÇèÍÿÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè£ÿÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�™_¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰ÇèSØþÿH‹Eø¾ÿÿÿÿH‰ÇèÂÙþÿH‹Eø¾þÿÿÿH‰Çèñ"ÿÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè:ÿÿH‰EøH‹EèH�_¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çèðþÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çè¯×þÿH‹Eè¾ÿÿÿÿH‰ÇèÙþÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çè˜èþÿ‰EôH‹Eè¾ýÿÿÿH‰Çè„ÿÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰ÇèªÙþÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰ÇèuÙþÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰ÇèØþÿƒøt ¸éüH‹EøH‰Çè,ñþÿéÍH‹Eø¾þÿÿÿH‰Çèæ×þÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰ÇèWçþÿ…ÀtH‹Eø¾þÿÿÿH‰ÇèBÿÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰ÇèL#ÿÿH‹EøºH�5ö]H‰ÇèìH‹Eø¾þÿÿÿH‰ÇèƒéþÿH‹Eø¾H‰ÇèBÿÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèºÿÿH‹Eø¾þÿÿÿH‰ÇèÉÿÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çèîíþÿ‰EüH‹UàH‹EèH�5h]H‰ÇèdÿÿH‹Eè¾îØÿÿH‰ÇèÓðþÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çèÿÿ¸ë‹UüH‹Eè‰ÖH‰Çèöÿÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5»\H‰Ç¸èPÿÿéÜH‹EðH‹@¶H‹EèH‹@H‰ÇèÃÐþÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè¤Ðþÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çè¿äþÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5×TH‰ÇèH‹ýÖ*H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5®TH‰Ç¸è�ûþÿH‹…ÀïÿÿH�5—TH‰Çè‰ùþÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5mTH‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5þSH‰ÇèyóþÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5ÕSH‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè ÉþÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè ÿÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çèðïþÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè6 ÿÿ‹UüH‹…ÈïÿÿH�5ìRH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰ÇèGÿÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�>RH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�$RH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèU ÿÿÉÃUH‰åHƒì H‰}è‰uäH�RH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�ÅQH‰EøH‹Eø¶PH‰Ç¸èYîþÿH‹EèH‹€0 H‹UøH‰ÖH‰ÇèïæþÿH‰EðH‹EèH‹� H‹EèH‹ˆ H‹EðH‰ÎH‰ÇèvåþÿH‹EèH‹€ H‹UèHƒÂH9ÐtH‹EèH‹€0 ¾þÿÿÿH‰Çè& ÿÿH‹EèH‹UðH‰� H‹EèH‹UøH‰�( H‹EèH‹� H‹EèH‹€ HÐÉÃUH‰åHƒì H‰}øH‰uðH‰UèH‹UèH‹EøH‰ÖH‰Çè|þÿÿH‰ÁH‹UèH‹EðH‰ÆH‰ÏèÐäþÿH‹EøH‹� H‹EèHÂH‹EøH‰� �ÉÃUH‰åHƒì H‰}èHÇEðH‹EèH‹€0 H�Uð¾ÿÿÿÿH‰Çè€ÄþÿH‰EøHƒ}øuH‹EèH‹€0 H�5óNH‰Ç¸èöìþÿH‹EèH‹€ H‹UèHƒÂH9ÐtH‹EèH‹€0 ¾þÿÿÿH‰ÇèfÙþÿH‹UðH‹MøH‹EèH‰ÎH‰ÇèÿÿÿH‹EèH‹€ H‹UèHƒÂH9ÐtºþÿÿÿëºÿÿÿÿH‹EèH‹€0 ‰ÖH‰Çè¶ÿÿ�ÉÃUH‰åHƒìH‰}øH‹EøH‹� H‹EøH‹ˆ H‹EøH‹€0 H‰ÎH‰Çè3H‹EøH‹€ H‹UøHƒÂH9ÐtH‹EøH‹€0 ¾þÿÿÿH‰ÇèK ÿÿ�ÉÃUH‰åHƒì H‰}øH‰uðH‰UèHƒ}ètH‹EðëH�ïMH‹UèH‹MøH‰ÆH‰ÏèÎþÿH‹Eøº¾ÿÿÿÿH‰ÇèÃþÿÉÃUH‰åHƒì H‰}ø‰uôH‰Uè‹UôH‹Eø‰ÖH‰Çèðâÿÿ‰EôH‹UèH‹EøH‰ÖH‰ÇèËÜþÿ‹UôH‹Eø‰ÖH‰Çè* ÿÿH‹Eø¾ÿÿÿÿH‰ÇèÉÅþÿH‹Eø¾ÿÿÿÿH‰Çè¸ÅþÿÉÃUH‰åHƒì0H‰}ØÇEôHÇEøH‹EØH�0M¾H‰Çè^èÿÿH‹EغH�54MH‰ÇèóþÿÿH‹EؾÿÿÿÿH‰ÇèjßþÿH‹EؾðØÿÿH‰Çè)èþÿH‹EؾÿÿÿÿH‰Çè8ÅþÿH‹EؾÿÿÿÿH‰Çè'Åþÿƒø„±H‹EؾþÿÿÿH‰Çè�ÿÿH‹Eغ¾H‰ÇèGúþÿH‹Eغ¾H‰Çè1úþÿH‹EغH�5¨LH‰ÇèQþÿÿH‹EØH�—L¾þÿÿÿH‰Çè1ÎþÿH‹EؾþÿÿÿH‰Çèà ÿÿH‹EؾþÿÿÿH‰ÇèŸÞþÿH‹EؾþÿÿÿH‰ÇèŽÞþÿH‹EؾðØÿÿH‰Çè]àþÿH‹EؾþÿÿÿH‰Çè,ÿÿH‹EØH‰Çè ÿÿ‰EôH‹EؾþÿÿÿH‰ÇèçþÿH‹EؾÿÿÿÿH‰Çè+ÄþÿH‹EؾÿÿÿÿH‰ÇèÊüþÿH‰EøHƒ}ø…dH‹EؾþÿÿÿH‰ÇèŠÿÿH‹EؾH‰Çè)âþÿH‰Eøƒ}ôt|H‹Eøº¾H‰Çè‰ÔþÿH‹EØH‰Çè�ÿÿH‹EؾþÿÿÿH‰Çè¼ÝþÿH‹EؾüÿÿÿH‰Çè‹ßþÿH‹EؾH‰ÇèJÿÿH‹EؾþÿÿÿH‰Çè‰ÝþÿH‹EؾüÿÿÿH‰ÇèXßþÿé¼HÇEèH‹EؾH‰Çè ÿÿH‹EؾýÿÿÿH‰ÇèæþÿH‹EؾÿÿÿÿH‰Çè(ÃþÿH‹EؾÿÿÿÿH‰ÇèÇûþÿH‰EèHƒ}ètH‹EèH‹H‹EøH‰ëH‹Eøº¾H‰Çè¦ÓþÿH‹EؾþÿÿÿH‰ÇèeÿÿH‹EØH‰Çè™ÿÿH‹EؾþÿÿÿH‰ÇèÈÜþÿH‹EؾüÿÿÿH‰Çè—ÞþÿH‹EؾýÿÿÿH‰Çè&ÿÿH‹EøÉÃUH‰åHƒì H‰}è‰uä‹UäH‹Eè‰ÖH‰ÇèpÂþÿƒøuO‹UäH‹Eè‰ÖH‰ÇèêÂþÿfH~ÀH‰Eø‹MäH‹E躉ÎH‰Çè&H‰EðòH*Eðf.Eøzf.Eøu¸ë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØÇEôH�Uô‹MäH‹Eè‰ÎH‰Çè>äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰ÇèoÛþÿ‹UðH‹Eø‰ÖH‰Çè^Ûþÿ‹UôH‹Eø‰ÖH‰Çè ÿÿ‹UðH‹Eø‰ÖH‰ÇèüÿÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çèà×þÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�NH¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�¾G¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰ÇèÊÖþÿH‹Eø¾þÿÿÿH‰Çè Òþÿ‹UôH‹Eø‰ÖH‰ÇèXöþÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰ÇèrÚþÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èaçþÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çè£ÀþÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�ÝF‰ÎH‰ÇèÃÇþÿ…À…�‹UäH‹Eè‰ÖH‰ÇèÚ¾þÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5{FH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè‚Øþÿé3‹UäH‹Eè‰ÖH‰ÇèìÇþÿ…ÀtH‹EèºH�57FH‰ÇèÈ÷ÿÿéH‹EèºH�5FH‰Çè«÷ÿÿéä‹MäH‹EèH� F‰ÎH‰Çè–äþÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çèñ½þÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Ç軺þÿë‹UüH‹Eè‰ÖH‰ÇèXÚþÿH‰Eð‹UäH‹Eè‰ÖH‰ÇèóíþÿH‰ÁH‹UðH‹EèH�5’EH‰Ç¸è´ëþÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè=ÿÿ�ë/H‹Eè¾ÿÿÿÿH‰Çè™þþÿ…ÀuH‹EèH�5REH‰Ç¸èÍâþÿë�H‹UØH‹Eè¾ÿÿÿÿH‰ÇèºþÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�¡D¾H‰ÇèÏßÿÿH‹EøH�E¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèG»þÿH‹Eø¾ÿÿÿÿH‰Çè¶¼þÿ…À…ŽH‹Eø¾þÿÿÿH‰Çè-üþÿH‹MèH‹EøºH‰ÎH‰Çè5 ÿÿH‹UðH‹EøH‰ÖH‰Çè’ÜþÿH‹Eøº¾ÿÿÿÿH‰ÇèL¹þÿH‹Eøº¾H‰ÇèÖîþÿH‹Eø¾ÿÿÿÿH‰ÇèEÖþÿH‹UðH‹Eø¾ýÿÿÿH‰Çè Åþÿƒ}ät&H‹Eø¾ÿÿÿÿH‰ÇèÖþÿH‹UðH‹Eø¾îØÿÿH‰ÇètÅþÿH‹Eø¾þÿÿÿH‰Çè³þþÿ�ÉÃUH‰åHƒì0H‰}ØHÇEèè÷ÚþÿH‰ÇèýþÿH‰EøH‹EؾH‰ÇèÛþÿ…Àt9H‹Eغ¾H‰Çè{ùÿÿH‰EèH‹EèH‰ÂH‹Eø¹¾uH‰Çèß½þÿëGH‹EؾH‰Çèœüþÿ…Àt2H�UèH‹EؾH‰Çè#ÉþÿH‰EðH‹Eè‰ÂH‹MðH‹EøH‰ÎH‰Çè¦ãþÿHƒ}øt5H‹EؾH‰ÇèNÙþÿH‰ÂH‹EøH‰H‹EغÿÿÿÿH�5&CH‰Çè̶þÿë H‹EØH‰ÇèÔþÿ¸ÉÃUH‰åHƒì@H‰}ÈH‹EȺ¾H‰Çè…ÀþÿH˜H‰EðH‹UðH‹EȾH‰ÇèjÀþÿH˜H‰EèHÇEàHÇEØH‹MèH�UØH‹uðH�EàH‰Çè¬ðþÿ‰Eüƒ}ü…›H‹EàH…Àt5H‹EȾH‰Çè…ØþÿH‰ÂH‹EàH‰H‹EȺÿÿÿÿH�5]BH‰Çè¶þÿë H‹EÈH‰ÇèEÓþÿH‹EØH…Àt5H‹EȾH‰Çè;ØþÿH‰ÂH‹EØH‰H‹EȺÿÿÿÿH�5BH‰Çè¹µþÿë H‹EÈH‰ÇèûÒþÿÇEüƒ}ü‹UüH‹EȉÖH‰Çè�çþÿë‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5¼AH‰Çèò¸þÿH‹H‰EøH‹Eø¹º¾‹H‰Çèлþÿ‰Eô‹UôH‹Eè‰ÖH‰Çè,çþÿÉÃUH‰åHƒì H‰}èèéÌþÿH‰Çè‘úþÿH‰EøHƒ}øt5H‹Eè¾H‰ÇèU×þÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5-AH‰ÇèÓ´þÿë H‹EèH‰ÇèÒþÿ¸ÉÃUH‰åHƒì H‰}èH‹Eè¾H‰ÇèÁÿÿ‰EüH‹E躾H‰Çèx¾þÿ‰Eø‹Uø‹Eü‰Ö‰ÇèÆåþÿH‰EðHƒ}ðt5H‹Eè¾H‰ÇèºÖþÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5’@H‰Çè8´þÿë H‹EèH‰ÇèzÑþÿ¸ÉÃUH‰åHƒì H‰}èH‹Eè¾H‰Çè&ÿÿ‰EüH‹E躾H‰Çèݽþÿ‰Eø‹Uø‹Eü‰Ö‰Çè{ÎþÿH‰EðHƒ}ðt5H‹Eè¾H‰ÇèÖþÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5÷?H‰Çè�³þÿë H‹EèH‰ÇèßÐþÿ¸ÉÃUH‰åHƒì H‰}èH‹Eè¾H‰Çè‹ÿÿ‰EüH‹E躾H‰ÇèB½þÿ‰Eø‹Uø‹Eü‰Ö‰ÇèäþÿH‰EðHƒ}ðt5H‹Eè¾H‰Çè„ÕþÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5\?H‰Çè³þÿë H‹EèH‰ÇèDÐþÿ¸ÉÃUH‰åHƒì0H‰}ØH‹Eغ¾H‰ÇèËÄþÿH‰EøH‹EعH�>¾H‰ÇèÚÌþÿH‰EðH‹UðH‹EøH‰ÖH‰Çè³ÌþÿH‰EèHƒ}ètHHƒ}èt5H‹EؾH‰ÇèÐÔþÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5¨>H‰ÇèN²þÿë H‹EØH‰Çè�ÏþÿHƒ}èuH‹EؾH‰Çè(äþÿë¸ÉÃUH‰åHƒì H‰}èH‹E躾H‰Çè ³þÿH‰EøH‹EøH‰Çè-ÚþÿH‰EðHƒ}ðt5H‹Eè¾H‰Çè1ÔþÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5 >H‰Ç诱þÿë H‹EèH‰ÇèñÎþÿ¸ÉÃUH‰åHƒì0H‰}ØHÇEøÇEôÇEðH‹EؾH‰ÇèÇöþÿ…Àt/H‹Eغ¾H‰ÇèMÃþÿH‰EèH‹EèH‰ÇèM»þÿH‰EøéGH‹EؾH‰ÇèCµþÿƒø…èõØþÿH‰Çè�öþÿH‰EøH‹EØH�\=¾H‰Ç葳þÿH‹EؾÿÿÿÿH‰ÇèµþÿH‹EؾÿÿÿÿH‰Çèï´þÿ…Àt2H‹Eغ¾ÿÿÿÿH‰ÇèűþÿH‰ÂH‹EøH‰Ñº¾dH‰Çè)·þÿH‹EؾþÿÿÿH‰Çè8ôþÿH‹EØH�ä<¾H‰Çè³þÿH‹EؾÿÿÿÿH‰Çè´þÿH‹EؾÿÿÿÿH‰Çèn´þÿ…Àt2H‹Eغ¾ÿÿÿÿH‰ÇèD±þÿH‰ÂH‹EøH‰Ñº¾dH‰Ç訶þÿH‹EؾþÿÿÿH‰Çè·óþÿëèà×þÿH‰ÇèxõþÿH‰EøÇEôH‹EؾH‰Çèü³þÿƒøÿtH‹EؾH‰Çèv½þÿë‹Eô‰Eôƒ}ôtH‹Eø¹º¾eH‰Çè-¶þÿ‰Eðƒ}ðuJHƒ}øt5H‹EؾH‰ÇèÜÑþÿH‰ÂH‹EøH‰H‹EغÿÿÿÿH�5´;H‰ÇèZ¯þÿëH‹EØH‰ÇèœÌþÿë H‹EøH‰Çè¾Ùþÿƒ}ðt‹UðH‹E؉ÖH‰Çè'áþÿë‹EðÉÃUH‰åHƒìpH‰}˜H‹E˜H� ‰ð*º¾H‰ÇèÓþÿ‰EðHÇEøÇEôƒ}ð‡™‹EðH�…H�A;‹H˜H�5;HÐÿàèãÖþÿH‰Çè+ôþÿH‰Eøégè ÓþÿH‰ÇèôþÿH‰EøéQH‹E˜º¾H‰ÇèÝþÿH‰EèH�U°H‹E˜¾H‰Çè]ÀþÿH‰EàH�U¨H‹E˜¾H‰ÇèDÀþÿH‰EØH‹E˜¾H‰Çè_Ñþÿ‰EÔèÇÌþÿH‰ÇèŸóþÿH‰Eø‹}ÔH‹MØH‹UàH‹uèH‹EøA‰øH‰ÇèíÉþÿé½H‹E˜º¾H‰Çè²ëþÿH‰EÈèYáþÿH‰ÇèQóþÿH‰EøH‹UÈH‹EøH‰Ñº¾oH‰Çè@´þÿ‰EôëpH‹E˜ºH�5:H‰Çè#±þÿH‹H‰EÀH‹E˜º¾H‰Çèf·þÿ‰E¼è.ÝþÿH‰ÇèæòþÿH‰Eø‹E¼HcÐH‹MÀH‹Eø¾mH‰Çè׳þÿ‰EôëÇEôƒ}ôuVHƒ}øtOHƒ}øt5H‹E˜¾H‰ÇèvÏþÿH‰ÂH‹EøH‰H‹E˜ºÿÿÿÿH�5N9H‰Çèô¬þÿë H‹E˜H‰Çè6Êþÿ¸ë$Hƒ}øt H‹EøH‰Ç輺þÿ‹UôH‹E˜‰ÖH‰Çè»ÞþÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5ï8H‰Çè%°þÿH‹H‰EðH‹E𹺾 H‰Çè³þÿHcÐH‹EؾH‰ÇèO¶þÿ‰EìHÇEàÇEüƒ}ì~‹Eì븉Eì‹EìH˜H‰Çè ãþÿH‰Eà‹UìH‹MàH‹EðH‰ÎH‰ÇèãÛþÿ‰Eìƒ}ì~"‹EìHcÐH‹MàH‹EØH‰ÎH‰Çè™éÿÿÇEüë^H‹Eð¾H‰Çèéþÿ…Àt!H‹MàH‹EغH‰ÎH‰ÇècéÿÿÇEüë(H‹EØH‰ÇèöÈþÿ‹EìHcÐH‹EØH‰ÖH‰Çè‘ÆþÿÇEüH‹EàH‰ÇèNÜþÿ‹EüÉÃUH‰åHƒì0H‰}ØH‹EغH�5¯7H‰Çèå®þÿH‹H‰EðH‹E𹺾 H‰ÇèñþÿHcÐH‹EؾH‰Çèµþÿ‰EìÇEüƒ}ì~‹Eì븉Eì‹EìH˜H‰ÇèÕáþÿH‰Eà‹UìH‹MàH‹EðH‰ÎH‰Çè×þÿ‰Eìƒ}ì~"‹EìHcÐH‹MàH‹EØH‰ÎH‰ÇèaèÿÿÇEüëoH‹Eð¾H‰Çèßçþÿ…Àt2H‹EØH�5O6H‰ÇèÈÎþÿH‹Eغ¾ÿÿÿÿH‰Çè‚«þÿÇEüë(H‹EØH‰Çè­Çþÿ‹EìHcÐH‹EØH‰ÖH‰ÇèHÅþÿÇEüH‹EàH‰ÇèÛþÿ‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5f6H‰Ç蜭þÿH‹H‰EðHÇEØH�UØH‹EȾH‰Çèè»þÿH‰EèÇEüH‹EØH‰ÂH‹EȾH‰Çèµ³þÿ‰Eä‹UäH‹MèH‹EðH‰ÎH‰ÇèLÖþÿ‰Eäƒ}ä~‹EäHcÐH‹EÈH‰ÖH‰ÇèŽÄþÿÇEüëWH‹Eð¾H‰Çè´æþÿ…ÀtH‹EȾH‰Çè_ÄþÿÇEüë(H‹EÈH‰ÇèšÆþÿ‹EäHcÐH‹EÈH‰ÖH‰Çè5ÄþÿÇEü‹EüÉÃUH‰åHƒì0H‰}ØH‹EغH�5_5H‰Ç蕬þÿH‹H‰EðH‹Eغ¾H‰ÇèèºþÿH‰EèÇEüH‹UèH‹EðH‰ÖH‰Çèjßþÿ‰Eäƒ}ä~‹EäHcÐH‹EØH‰ÖH‰Çè¬ÃþÿÇEüëWH‹Eð¾H‰ÇèÒåþÿ…ÀtH‹EؾH‰Çè}ÃþÿÇEüë(H‹EØH‰Çè¸Åþÿ‹EäHcÐH‹EØH‰ÖH‰ÇèSÃþÿÇEü‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5}4H‰Ç賫þÿH‹H‰EøH‹Eø¹º¾ H‰Çè‘®þÿ‰Eô‹EôHcÐH‹EèH‰ÖH‰ÇèéÂþÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�54H‰ÇèN«þÿH‹H‰EøHƒ}øu¸ëQH‹Eè¾H‰ÇèHµþÿ‰Eôƒ}ôtH‹EøH‰Çèsµþÿë H‹EøH‰ÇèõÑþÿH‹Eè¾H‰Çè4äþÿHǸÉÃUH‰åHƒì H‰}èH‹EèºH�5Œ3H‰ÇèªþÿH‹H‰EøH‹EøH‰Çè?­þÿH‰ÂH‹EèH‰ÖH‰ÇèMËþÿH‹E躾ÿÿÿÿH‰Çè¨þÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5&3H‰Çè\ªþÿH‹H‰EøH‹Eè¾H‰Çèd´þÿ‰Eô‹EôHcÐH‹Eø¹¾fH‰Çè%­þÿ‰Eð‹UðH‹Eè‰ÖH‰Çè�ØþÿÉÃUH‰åHƒì H‰}èH‹EèºH�5µ2H‰Çèë©þÿH‹H‰EøH‹Eø¾H‰Çèƒãþÿ‰Eôƒ}ôt{H‹Eè¾H‰Çè ïþÿH‹Eø¾H‰ÇèXãþÿ‰ÂH‹Eè‰ÖH‰ÇèèîþÿH‹Eø¾H‰Çè7ãþÿ‰ÂH‹Eè‰ÖH‰ÇèÇîþÿH‹Eø¾H‰Çèãþÿ‰ÂH‹Eè‰ÖH‰Çè¦îþÿ¸ëH‹Eè¾H‰ÇèŽîþÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5Ý1H‰Çè©þÿH‹H‰EøH‹Eø¹º¾H‰Çèñ«þÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5�1H‰ÇèÆ¨þÿH‹H‰EøH‹EèºH�5q1H‰Ç觨þÿH‹H‰EðH‹UðH‹EøH‰ÖH‰Çè½ÏþÿH‰EøHƒ}øtH‹Eè¾H‰ÇèÃþÿë H‹EèH‰Çè#Âþÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�51H‰Çè8¨þÿH‹H‰EøH‹EøH‰Çè5èþÿH‰EðHƒ}ðuH‹EèH‰ÇèÎÁþÿëTH‹EðH‰Çè€æþÿHƒ}ðt5H‹Eè¾H‰Çè¸ÆþÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5�0H‰Çè6¤þÿë H‹EèH‰ÇèxÁþÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5W0H‰Çè�§þÿH‹H‰EøH�UèH‹EøH‰Ñº¾sH‰Çèiªþÿ‰Eôƒ}ôuH‹EèH‹H‹EèH‹HH‹EØH‰ÎH‰ÇèZáÿÿƒ}ôt‹UôH‹E؉ÖH‰Çè›Õþÿë¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5È/H‰Çèþ¦þÿH‹H‰EðH‹Eð¾H‰ÇèÆµþÿH‰EðÇEüHƒ}ð„ÂH�UèH‹EðH‰Ñº¾pH‰Ç賩þÿHƒ}ðt5H‹EؾH‰ÇèkÅþÿH‰ÂH‹EðH‰H‹EغÿÿÿÿH�5C/H‰Çèé¢þÿë H‹EØH‰Çè+ÀþÿH‹EðH‰ÇèßäþÿH‹EèH…Àt5H‹EؾH‰ÇèÅþÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5'/H‰Çè“¢þÿë H‹EØH‰ÇèÕ¿þÿÇEü‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5¯.H‰Çèå¥þÿH‹H‰EøH‹EøH‰Çè²ÄþÿH‰EøHƒ}øtTHƒ}øt5H‹Eè¾H‰ÇèÄþÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5W.H‰Çèý¡þÿë H‹EèH‰Çè?¿þÿH‹EøH‰ÇèóãþÿHƒ}ø•À¶ÀÉÃUH‰åHƒì H‰}èH‹EèºH�5 .H‰ÇèB¥þÿH‹H‰EøH‹Eø¹º¾qH‰Çè ¨þÿ‰ÂH‹Eè‰ÖH‰Çè`êþÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5¯-H‰Çèå¤þÿH‹H‰EøH‹EؾH‰Çè]¥þÿƒøÿtH‹EؾH‰Çè×®þÿ븉EôH‹Eø¹º¾eH‰Çè’§þÿ‰Eðƒ}ðueƒ}ôu_H‹EøH‰Çè‡äþÿH‰EèHƒ}èt5H‹EؾH‰Çè+ÃþÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5-H‰Çè© þÿë H‹EØH‰Çèë½þÿ¸ë‹UðH‹E؉ÖH‰ÇèƒÒþÿÉÃUH‰åHƒì H‰}èH‹EèºH�5·,H‰Çèí£þÿH‹H‰EøH‹EøH‰Çè ¾þÿ%…ÀuH‹EèH�Õ,¾H‰Çè©©þÿ…À�H‹EøH‰ÇèÚ½þÿ%…ÀtH‹EøH‰Çè…Ëþÿë0H‹EøH‰Çè·½þÿ%…ÀtH‹Eø¹º¾ŽH‰Çèc¦þÿH‹Eè¾H‰Çèò½þÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ñ+H‰Çè'£þÿH‹H‰EøHÇEèH�UèH‹EøH‰Ñº¾nH‰Çèû¥þÿ‰Eôƒ}ôuiH‹EèH…Àt5H‹EؾH‰Çè¨ÁþÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5š+H‰Çè&Ÿþÿë H‹EØH‰Çèh¼þÿH‹EèH‰ÇèüŸþÿH‹UèH‹EØH‰ÖH‰Çèêþÿƒ}ôt‹UôH‹E؉ÖH‰ÇèâÐþÿë‹EôÉÃUH‰åHƒì H‰}èH‹EèºH�5+H‰ÇèG¢þÿH‹H‰EøH‹Eø¹º¾eH‰Çè%¥þÿ‰Eô‹UôH‹Eè‰ÖH‰Çè�ÐþÿÉÃUH‰åHƒì H‰}èH‹EèºH�5µ*H‰Çèë¡þÿH‹H‰EøH‹Eø¹º¾eH‰Çèɤþÿ‰Eô‹UôH‹Eè‰ÖH‰Çè%ÐþÿÉÃUH‰åHƒì H‰}èH‹EèºH�5Y*H‰Çè�¡þÿH‹H‰EøH‹EøH‰Ç謻þÿ‰Eô‹Eô%…ÀuH‹EèH�‹*¾H‰ÇèE§þÿ…À�H‹Eè¾H‰ÇèÑ¡þÿƒøÿt/H‹Eè¾H‰Çè»ïþÿ‰Eð‹UðH‹Eø‰Ñº¾hH‰ÇèÝïþÿH‹Eø¹º¾iH‰Çèò£þÿòH*ÀH‹EèH‰Çèá¢þÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5€)H‰Çè¶ þÿH‹H‰EøH‹EøH‰ÇèÓºþÿ‰Eô‹Eô%…ÀuH‹EØH�Ë)¾H‰Çèl¦þÿ…À�H‹EؾH‰Çèøîþÿ‰Eð‹EðHcÐH‹Eø¹¾€H‰ÇèI£þÿ‰Eìƒ}ìy‹UìH‹E؉ÖH‰ÇèŸÎþÿë‹EìHcÐH‹EØH‰ÖH‰Ç舷þÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5·(H‰ÇèíŸþÿH‹H‰EøH‹EøH‰Çè ºþÿ‰Eô‹Eô%…ÀuH‹EèH�)¾H‰Ç裥þÿ…À�H‹Eø¹º¾…H‰Çè•¢þÿ‰Eðƒ}ðy‹UðH‹Eè‰ÖH‰ÇèëÍþÿë‹EðHcÐH‹EèH‰ÖH‰ÇèÔ¶þÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5(H‰Çè9ŸþÿH‹H‰EøH‹Eø¹º¾ H‰Çè¢þÿ‰EôH‹Eø¹º¾ H‰Çèù¡þÿ‰Eð‹EôHcÐH‹EèH‰ÖH‰ÇèQ¶þÿ‹EðHcÐH‹EèH‰ÖH‰Çè<¶þÿ¸ÉÃUH‰åHƒìH‰}øH‹EøH�þÙ*H�5i'H‰Çè¿´þÿH‹Eøº¾H‰ÇèiÔþÿH‹EøºH�5©Û*H‰Çè ÄÿÿH‹Eø¾H‰ÇèеþÿH‹EøH�‡(¾þÿÿÿH‰ÇèX¨þÿH‹Eø¾H‰Çè§µþÿH‹EøH�e(¾þÿÿÿH‰Çè/¨þÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰Çè2«þÿH‹Eð¶„Àu ‹Eü‰Çè ¥þÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Çè+µþÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çèß�þÿƒøtbH‹Eø¾þÿÿÿH‰ÇèYÝþÿH‹UèH‹uðH‹EøH� –'H‰Çè.ßþÿ…Àt H‹EøH‰Çèî¬þÿH‹Eø¾ÿÿÿÿH‰Çè�·þÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Ç蓯þÿ‹Uà‹MäH‹Eø‰ÎH‰ÇèßÏþÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5(H‰Ç¸è©ÂþÿH‹EøH�(¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çèú¶þÿò*EôH‹EøH‰ÇèIžþÿH‹Eø¾ýÿÿÿH‰Çèø®þÿH‹EøA¸¹ºÛH�5­&H‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çèàþÿéå‹Uà‹MäH‹Eè‰ÎH‰ÇèäþÿéÌH‹EèH�7'¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çèýµþÿ‹UàH‹Eè‰ÖH‰ÇèìµþÿH‹EèA¸¹ºH�5á&H‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çè8¥þÿ‰EüH‹Eè¾þÿÿÿH‰Çè$Ûþÿ‹EüëH‹EèH�5Ä&H‰Ç¸èÁþÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�C&¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çè1µþÿ‹UüH‹Eè‰ÖH‰ÇèàÝþÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰ÇèíšþÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰ÇèU»þÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çèœþÿ龋MôH‹EøH�ë%‰ÎH‰ÇèK£þÿ…À…š‹UôH‹Eø‰ÖH‰ÇèòºþÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Ç襛þÿëZ‹MôH‹EøH�‹%‰ÎH‰Çèë¢þÿ…ÀuA‹UôH‹Eø‰ÖH‰Çèšþÿ‰ÂH‹Eø‰ÖH‰Çè–¶þÿH‰ÂH‹EøH�5X%H‰Ç¸èk¿þÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çè8Íþÿ‹UüH‹Eè‰ÖH‰Çèg¼þÿH‹Eè¾ÿÿÿÿH‰Çèv™þÿH‹Eè¾ÿÿÿÿH‰Çèe™þÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�5$¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çè±ÌþÿH‹Eè¾þÿÿÿH‰Çè0«þÿ‹UüH‹Eè‰ÖH‰Çèß´þÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèX™þÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çè¸þÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè‚Êþÿ…ÀuIHƒ}ètH‹UèH‹EøH�5¼#H‰Ç¸è«½þÿë$H‹EøºH�5±#H‰ÇèEH‹EøH‰ÇèE§þÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�Ä"¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰ÇèÀ·þÿH‹E躾ÿÿÿÿH‰Çèz”þÿ‹UüH‹Eè‰ÖH‰ÇèÉÞþÿH‹Eè¾ÿÿÿÿH‰Çèh—þÿH‹Eè¾ÿÿÿÿH‰ÇèW—þÿƒøu¸ëwH‹Eè¾þÿÿÿH‰ÇèÊÖþÿH‹E躾H‰ÇètÌþÿH‹UØH‹EèH‰ÖH‰Çè1·þÿH‹E躾ÿÿÿÿH‰Çèë“þÿH‹Eè¾þÿÿÿH‰Çèú°þÿ‹UüH‹Eè‰ÖH‰ÇèiÍþÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�­!¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰ÇèñÕþÿ‹Eô…ÀuH‹EèH�5"H‰Ç¸èÒ»þÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�ð!‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰Çè¶þÿH‹E躾ÿÿÿÿH‰ÇèÍ’þÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèϯþÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰ÇèIâþÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰ÇèÌþÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèçÔþÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�= ¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰Çè—“þÿH‹Eø¾ÿÿÿÿH‰Çè•þÿH‹Eø¾þÿÿÿH‰Çè5Þþÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè~ÍþÿH‰EøH‹EèH�þH‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰ÇèZ«þÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çèó’þÿH‹Eè¾ÿÿÿÿH‰Çèb”þÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰ÇèÜ£þÿ‰EôH‹Eè¾ýÿÿÿH‰ÇèÈÓþÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çèî”þÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çè¹”þÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çè[“þÿƒøt ¸éüH‹EøH‰Çèp¬þÿéÍH‹Eø¾þÿÿÿH‰Çè*“þÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Ç蛢þÿ…ÀtH‹Eø¾þÿÿÿH‰Çè†Òþÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çè�ÞþÿH‹EøºH�5šH‰ÇèìH‹Eø¾þÿÿÿH‰ÇèǤþÿH‹Eø¾H‰Çè†Ñþÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèþÑþÿH‹Eø¾þÿÿÿH‰Çè Õþÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çè2©þÿ‰EüH‹UàH‹EèH�5 H‰Çè¨ÁþÿH‹Eè¾îØÿÿH‰Çè¬þÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰ÇèRÑþÿ¸ë‹UüH‹Eè‰ÖH‰Çè:Ñþÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5_H‰Ç¸è”¿þÿéÜH‹EðH‹@¶H‹EèH‹@H‰ÇèŒþÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çèè‹þÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çè þÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5{H‰ÇèH‹A’*H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5RH‰Ç¸èÓ¶þÿH‹…ÀïÿÿH�5;H‰ÇèÍ´þÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5¢H‰Çè½®þÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5yH‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰ÇèO„þÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰ÇèPÐþÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çè4«þÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰ÇèzÆþÿ‹UüH‹…ÈïÿÿH�5�H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çè‹Òþÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�âH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�ÈH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çè™ÇþÿÉÃUH‰åHƒì H‰}è‰uäH�½H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�iH‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè³–þÿ‹UðH‹Eø‰ÖH‰Ç袖þÿ‹UôH‹Eø‰ÖH‰ÇèQ¿þÿ‹UðH‹Eø‰ÖH‰Çè@¿þÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çè$“þÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�ò¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�b¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çè’þÿH‹Eø¾þÿÿÿH‰ÇèM�þÿ‹UôH‹Eø‰ÖH‰Ç蜱þÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè¶•þÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'襢þÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çèç{þÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH��‰ÎH‰Çèƒþÿ…À…�‹UäH‹Eè‰ÖH‰Çèzþÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5H‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰ÇèÆ“þÿé3‹UäH‹Eè‰ÖH‰Çè0ƒþÿ…ÀtH‹EèºH�5ÛH‰ÇèÈ÷ÿÿéH‹EèºH�5ÃH‰Çè«÷ÿÿéä‹MäH‹EèH�®‰ÎH‰ÇèÚŸþÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çè5yþÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çèÿuþÿë‹UüH‹Eè‰ÖH‰Ç蜕þÿH‰Eð‹UäH‹Eè‰ÖH‰Çè7©þÿH‰ÁH‹UðH‹EèH�56H‰Ç¸èø¦þÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè�»þÿ�ë/H‹Eè¾ÿÿÿÿH‰Çèݹþÿ…ÀuH‹EèH�5öH‰Ç¸èžþÿë�H‹UØH‹Eè¾ÿÿÿÿH‰ÇèYuþÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�E¾H‰ÇèÏßÿÿH‹EøH�·¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çè‹vþÿH‹Eø¾ÿÿÿÿH‰Çèúwþÿ…À…ŽH‹Eø¾þÿÿÿH‰Çèq·þÿH‹MèH‹EøºH‰ÎH‰ÇèyÄþÿH‹UðH‹EøH‰ÖH‰ÇèÖ—þÿH‹Eøº¾ÿÿÿÿH‰Çè�tþÿH‹Eøº¾H‰ÇèªþÿH‹Eø¾ÿÿÿÿH‰Ç艑þÿH‹UðH‹Eø¾ýÿÿÿH‰Çèä€þÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè]‘þÿH‹UðH‹Eø¾îØÿÿH‰Ç踀þÿH‹Eø¾þÿÿÿH‰Çè÷¹þÿ�ÉÃUH‰åHƒì H‰}èH‹Eè¾H‰ÇèwþÿƒøÿtH‹Eè¾H‰Çè�€þÿ븉EüH‹E躾H‰Çè!¬þÿƒ}üt H‹ü*H‰Áë H‹8€*H‰ÁH‹EèH‰ÂH‰Î¿èa|þÿ¸ÉÃUH‰åHƒì H‰}èH‹E躾H‰Çèø þÿH‰EøHƒ}øt5H‹Eè¾H‰Ç蜔þÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5ÔH‰Çèrþÿë H‹EèH‰Çè\�þÿ¸ÉÃUH‰åH�ìÐH‰½8ÿÿÿH‹…8ÿÿÿº¾H‰Çèz þÿH‰EðHÇE¨H�U¨H‹…8ÿÿÿ¾H‰Ç趃þÿH‰EèHÇE H�U H‹…8ÿÿÿH‰Ñº¾H‰Ç躋þÿH‰EàHÇE˜H�U˜H‹…8ÿÿÿH‰Ñº¾H‰Ç莋þÿH‰EØH‹…8ÿÿÿ¾H‰ÇèfuþÿƒøÿtH‹…8ÿÿÿ¾H‰ÇèÝ~þÿ븉EÔH‹…8ÿÿÿ¾H‰Çè/uþÿ…À~ H‹…8ÿÿÿºH�5½H‰Çè€tþÿH‹ë¸H‰EÈè�‰þÿH‰EÀÇE¼ÇE”HÇE°HÇ…PÿÿÿHÇ…XÿÿÿHÇ…`ÿÿÿHÇ…hÿÿÿHÇ…pÿÿÿHÇ…xÿÿÿHÇE€HÇEˆHÇ…@ÿÿÿHÇ…HÿÿÿÇEüHƒ}àt/H‹E º@Hƒø@HGÂH‰E H‹U H‹MàH�…PÿÿÿH‰ÎH‰Çè.‘þÿH‹E˜H…Àt6Hƒ}Øt/H‹E˜ºHƒøHGÂH‰E˜H‹U˜H‹MØH�…@ÿÿÿH‰ÎH‰Çèï�þÿH‹E˜H…Àt H�½@ÿÿÿë¿H��PÿÿÿH‹UÈH‹uðH‹EÀI‰øH‰Çèú„þÿ‰Eüƒ}ü…à‹UÔH‹EÀ‰ÖH‰Çè|¡þÿ‰Eüƒ}ü…ÂH‹EÀH‰Çè“¿þÿHcÐH‹E¨Hк_H�51H‰ÇèÕ»þÿH‰E°H‹E¨‰ÇH‹MèH�U”H‹u°H‹EÀA‰øH‰ÇèPpþÿ‰Eüƒ}üuR‹E”E¼‹E”HcÐH‹E°H� H�U”H‹EÀH‰ÎH‰Çèp°þÿ‰Eüƒ}üu"‹E”E¼‹E¼HcÐH‹M°H‹…8ÿÿÿH‰ÎH‰Çè9ñÿÿH‹E°ºkH�5™H‰Ç轈þÿH‹EÀH‰Çè›þÿƒ}üt‹UüH‹…8ÿÿÿ‰ÖH‰Çè— þÿë‹EüÉÃUH‰åH�ìÐH‰½8ÿÿÿH‹…8ÿÿÿº¾H‰Çè�þÿH‰EðHÇE¨H�U¨H‹…8ÿÿÿ¾H‰ÇèA€þÿH‰EèHÇE H�U H‹…8ÿÿÿH‰Ñº¾H‰ÇèEˆþÿH‰EàHÇE˜H�U˜H‹…8ÿÿÿH‰Ñº¾H‰ÇèˆþÿH‰EØH‹…8ÿÿÿ¾H‰ÇèñqþÿƒøÿtH‹…8ÿÿÿ¾H‰Çèh{þÿ븉EÔH‹…8ÿÿÿ¾H‰Çèºqþÿ…À~ H‹…8ÿÿÿºH�5HÿH‰Çè qþÿH‹ë¸H‰EÈè†þÿH‰EÀÇE¼ÇE”HÇE°HÇ…PÿÿÿHÇ…XÿÿÿHÇ…`ÿÿÿHÇ…hÿÿÿHÇ…pÿÿÿHÇ…xÿÿÿHÇE€HÇEˆHÇ…@ÿÿÿHÇ…HÿÿÿHƒ}àt/H‹E º@Hƒø@HGÂH‰E H‹U H‹MàH�…PÿÿÿH‰ÎH‰ÇèÀ�þÿH‹E˜H…Àt6Hƒ}Øt/H‹E˜ºHƒøHGÂH‰E˜H‹U˜H‹MØH�…@ÿÿÿH‰ÎH‰Çè��þÿH‹E˜H…Àt H��@ÿÿÿë¹Hƒ}àt H�…Pÿÿÿë¸H‹UÈH‹uðH‹}ÀI‰ÈH‰Áè®oþÿ‰Eüƒ}ü…Þ‹UÔH‹EÀ‰ÖH‰Çèžþÿ‰Eüƒ}ü…ÀH‹E¨º¤H�5ÇýH‰Çèk¸þÿH‰E°H‹E¨‰ÇH‹MèH�U”H‹u°H‹EÀA‰øH‰Çè„þÿ‰Eüƒ}üub‹E”E¼H‹E¨‰Â‹E”)‰ЉE”‹E¼HcÐH‹E°H� H�U”H‹EÀH‰ÎH‰Çèwþÿ‰Eüƒ}üu"‹E”E¼‹E¼HcÐH‹M°H‹…8ÿÿÿH‰ÎH‰Çè¿íÿÿH‹E°º²H�5ýH‰ÇèC…þÿH‹EÀH‰Çè——þÿƒ}üt‹UüH‹…8ÿÿÿ‰ÖH‰Çè�þÿë‹EüÉÃUH‰åH�ìàH‰½(ÿÿÿH‹…(ÿÿÿº¾H‰Çè‹™þÿH‰EðH‹…(ÿÿÿ¾H‰Çèƒxþÿ‰EìHÇE H�U H‹…(ÿÿÿ¾H‰Çè°|þÿH‰EàHÇE˜H�U˜H‹…(ÿÿÿ¾H‰ÇèŒ|þÿH‰EØHÇE�H�U�H‹…(ÿÿÿH‰Ñº¾H‰Çè�„þÿH‰EÐH‹…(ÿÿÿ¾H‰ÇèhnþÿƒøÿtH‹…(ÿÿÿ¾H‰Çèßwþÿ븉EÌH‹…(ÿÿÿ¾H‰Çè1nþÿ…À~ H‹…(ÿÿÿºH�5¿ûH‰Çè‚mþÿH‹ë¸H‰EÀè�‚þÿH‰E¸ÇE´ÇEŒHÇ…@ÿÿÿHÇ…HÿÿÿHÇ…PÿÿÿHÇ…XÿÿÿHÇ…`ÿÿÿHÇ…hÿÿÿHÇ…pÿÿÿHÇ…xÿÿÿHÇ…0ÿÿÿHÇ…8ÿÿÿHƒ}Øt/H‹E˜º@Hƒø@HGÂH‰E˜H‹U˜H‹MØH�…@ÿÿÿH‰ÎH‰Çè9ŠþÿH‹E�H…Àt6Hƒ}Ðt/H‹E�ºHƒøHGÂH‰E�H‹U�H‹MÐH�…0ÿÿÿH‰ÎH‰Çèú‰þÿH‹E�H…Àt H�½0ÿÿÿë¿D‹EìH��@ÿÿÿH‹UÀH‹uðH‹E¸E‰ÁI‰øH‰ÇèΑþÿ‰Eüƒ}ü…ì‹UÌH‹E¸‰ÖH‰Ç耚þÿ‰Eüƒ}ü…ÎH‹E ƒÀ ‰EŒ‹EŒH˜ºôH�5<úH‰Çèà´þÿH‰E¨H‹E ‰ÇH‹MàH�UŒH‹u¨H‹E¸A‰øH‰Çè›iþÿ‰Eüƒ}üue‹EŒE´H‹E ‰Â‹EŒ)‰ЃÀ ‰EŒ‹E´HcÐH‹E¨H� H�UŒH‹E¸H‰ÎH‰ÇèX¹þÿ‰Eüƒ}üu"‹EŒE´‹E´HcÐH‹M¨H‹…(ÿÿÿH‰ÎH‰Çè1êÿÿH‹E¨ºH�5‘ùH‰Çèµ�þÿH‹E¸H‰Çè ”þÿƒ}üt‹UüH‹…(ÿÿÿ‰ÖH‰Çè�™þÿë‹EüÉÃUH‰åH�ì°H‰½XÿÿÿH‹…Xÿÿÿº¾H‰Çèý•þÿH‰EøH‹…Xÿÿÿ¾H‰Çèõtþÿ‰EôHÇEÀH�UÀH‹…XÿÿÿH‰Ñº¾H‰ÇèJ�þÿH‰EèHÇE¸H�U¸H‹…XÿÿÿH‰Ñº¾H‰Çè�þÿH‰EàH‹…Xÿÿÿ¾H‰ÇèöjþÿƒøÿtH‹…Xÿÿÿ¾H‰Çèmtþÿ븉EÜH‹…Xÿÿÿ¾H‰Çè¿jþÿ…À~ H‹…XÿÿÿºH�5MøH‰ÇèjþÿH‹ë¸H‰EÐHÇEÈHÇ…pÿÿÿHÇ…xÿÿÿHÇE€HÇEˆHÇE�HÇE˜HÇE HÇE¨HÇ…`ÿÿÿHÇ…hÿÿÿHƒ}èt/H‹EÀº@Hƒø@HGÂH‰EÀH‹UÀH‹MèH�…pÿÿÿH‰ÎH‰Çèè†þÿH‹E¸H…Àt6Hƒ}àt/H‹E¸ºHƒøHGÂH‰E¸H‹U¸H‹MàH�…`ÿÿÿH‰ÎH‰Ç詆þÿèD~þÿH‰EÈH‹E¸H…Àt H��`ÿÿÿë¹Hƒ}èt H�…pÿÿÿë¸D‹EôH‹UÐH‹uøH‹}ÈE‰ÁI‰ÈH‰ÁèfŽþÿ…ÀuH‹…XÿÿÿH�5÷H‰Ç¸è׎þÿ‹UÜH‹EȉÖH‰Çè—þÿHƒ}Èt;H‹…Xÿÿÿ¾H‰Çè[‡þÿH‰ÂH‹EÈH‰H‹…XÿÿÿºÿÿÿÿH�5ûöH‰ÇèÖdþÿëH‹…XÿÿÿH‰Çè‚þÿH‹…Xÿÿÿ¾H‰Çè±þÿH‹UÈH‹…Xÿÿÿ¾ðØÿÿH‰ÇèVÏÿÿ¸ÉÃUH‰åH�ì H‰½hÿÿÿH‹…hÿÿÿº¾H‰Çè“þÿH‰EøHÇEÈH�UÈH‹…hÿÿÿH‰Ñº¾H‰Çèk~þÿH‰EðHÇEÀH�UÀH‹…hÿÿÿH‰Ñº¾H‰Çè?~þÿH‰EèH‹…hÿÿÿ¾H‰Çèhþÿ…À~ H‹…hÿÿÿºH�5¥õH‰ÇèhgþÿH‹ë¸H‰EàHÇEØHÇE€HÇEˆHÇE�HÇE˜HÇE HÇE¨HÇE°HÇE¸HÇ…pÿÿÿHÇ…xÿÿÿHƒ}ðt,H‹EȺ@Hƒø@HGÂH‰EÈH‹UÈH‹MðH�E€H‰ÎH‰ÇèI„þÿH‹EÀH…Àt6Hƒ}èt/H‹EÀºHƒøHGÂH‰EÀH‹UÀH‹MèH�…pÿÿÿH‰ÎH‰Çè „þÿè¥{þÿH‰EØH‹EÀH…Àt H��pÿÿÿë¹Hƒ}ðtH�E€ë¸H‹UàH‹uøH‹}ØI‰ÈH‰Áèxþÿ‰EÔƒ}Ô…„Hƒ}Øt;H‹…hÿÿÿ¾H‰Çèé„þÿH‰ÂH‹EØH‰H‹…hÿÿÿºÿÿÿÿH�5‰ôH‰ÇèdbþÿëH‹…hÿÿÿH‰Çè£þÿH‹…hÿÿÿ¾H‰Çè?}þÿH‹UØH‹…hÿÿÿ¾ðØÿÿH‰ÇèäÌÿÿ¸ë H‹EØH‰ÇètŽþÿ‹UÔH‹…hÿÿÿ‰ÖH‰Çè”þÿÉÃUH‰åH�ì H‰½hÿÿÿH‹…hÿÿÿº¾H‰Çès�þÿH‰EøHÇEÈH�UÈH‹…hÿÿÿH‰Ñº¾H‰Çè×{þÿH‰EðHÇEÀH�UÀH‹…hÿÿÿH‰Ñº¾H‰Çè«{þÿH‰EèH‹…hÿÿÿ¾H‰Çèƒeþÿ…À~ H‹…hÿÿÿºH�5óH‰ÇèÔdþÿH‹ë¸H‰EàHÇEØHÇE€HÇEˆHÇE�HÇE˜HÇE HÇE¨HÇE°HÇE¸HÇ…pÿÿÿHÇ…xÿÿÿHƒ}ðt,H‹EȺ@Hƒø@HGÂH‰EÈH‹UÈH‹MðH�E€H‰ÎH‰Çèµ�þÿH‹EÀH…Àt6Hƒ}èt/H‹EÀºHƒøHGÂH‰EÀH‹UÀH‹MèH�…pÿÿÿH‰ÎH‰Çèv�þÿèyþÿH‰EØH‹EÀH…Àt H��pÿÿÿë¹Hƒ}ðtH�E€ë¸H‹UàH‹uøH‹}ØI‰ÈH‰Áè�cþÿ‰EÔƒ}Ô…„Hƒ}Øt;H‹…hÿÿÿ¾H‰ÇèU‚þÿH‰ÂH‹EØH‰H‹…hÿÿÿºÿÿÿÿH�5õñH‰ÇèÐ_þÿëH‹…hÿÿÿH‰Çè}þÿH‹…hÿÿÿ¾H‰Çè«zþÿH‹UØH‹…hÿÿÿ¾ðØÿÿH‰ÇèPÊÿÿ¸ë H‹EØH‰Çèà‹þÿ‹UÔH‹…hÿÿÿ‰ÖH‰Çèl‘þÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5ñH‰ÇèÖbþÿH‹H‰EøH‹Eغ¾H‰Ç虘þÿÇEôþÿÿÿH‹EøH‰ÇèÖ›þÿH‰ÂH‹EØH‰ÖH‰ÇèDƒþÿH‹Eغ¾ÿÿÿÿH‰Çèþ_þÿ‹MôH‹EØH�ñ‰ÎH‰ÇèvlþÿÇEðþÿÿÿH‹EøH‰Ç胠þÿHcÐH‹EØH‰ÖH‰Çè±yþÿ‹MðH‹EØH�Üð‰ÎH‰Çè9lþÿÇEìþÿÿÿH‹EøH‰Çè¶�þÿHcÐH‹EØH‰ÖH‰Çètyþÿ‹MìH‹EØH�ªð‰ÎH‰ÇèükþÿÇEèþÿÿÿH‹EøH‰Çèi«þÿHcÐH‹EØH‰ÖH‰Çè7yþÿ‹MèH‹EØH�xð‰ÎH‰Çè¿kþÿÇEäþÿÿÿH‹EøH‰Çè\}þÿH‰ÂH‹EØH‰ÖH‰Çèúxþÿ‹MäH‹EØH�Eð‰ÎH‰Çè‚kþÿÇEàþÿÿÿH‹EøH‰Çèo¨þÿHcÐH‹EØH‰ÖH‰Çè½xþÿ‹MàH‹EØH�ð‰ÎH‰ÇèEkþÿ¸ÉÃUH‰åH�ì H‰½hÿÿÿH‹…hÿÿÿºH�5+ïH‰ÇèaþÿH‹H‰EøH�UÈH‹…hÿÿÿ¾H‰ÇèRoþÿH‰EðH�UÐH‹…hÿÿÿH‰Ñº¾H‰Çè^wþÿH‰EèH‹…hÿÿÿH�€ï¾H‰ÇèßšþÿH‰EàHƒ}ètZH‹EÐHƒøwPH‹…hÿÿÿºH�5RïH‰Ç¸è*�þÿH‹…hÿÿÿº¾ÿÿÿÿH‰ÇèÑ]þÿH‰ÂH‹…hÿÿÿ¾H‰Çè*fþÿH‹EÈA‰ÀH‹MðH‹UèH‹uàH‹EøH�½pÿÿÿWH�}€WA¹H‰Çè¸}þÿHƒÄ‰E܃}Ü~TH‹EøH‰Çè�ŽþÿHcÐH�M€H‹…hÿÿÿH‰ÎH‰ÇèªÞÿÿH‹EøH‰ÇèZ©þÿHcÐH��pÿÿÿH‹…hÿÿÿH‰ÎH‰Çè‚Þÿÿ¸ë‹UÜH‹…hÿÿÿ‰ÖH‰ÇèŽþÿÉÃUH‰åH�ì H‰½hÿÿÿH‹…hÿÿÿºH�5ùíH‰Çèd_þÿH‹H‰EðÇEìHÇEÈH�UÈH‹…hÿÿÿ¾H‰Çè¦mþÿH‰EàHÇEÀH�UÀH‹…hÿÿÿH‰Ñº¾H‰ÇèªuþÿH‰EØH‹…hÿÿÿ¾H‰Çèiþÿ‰EÔH‹UðH‹…hÿÿÿ¾ðØÿÿH‰Çè•ÅÿÿH‹…hÿÿÿº¾ÿÿÿÿH‰Çèõáÿÿ‰EìH‹…hÿÿÿ¾þÿÿÿH‰ÇèÇžþÿHÇE€HÇEˆHÇE�HÇE˜HÇE HÇE¨HÇE°HÇE¸HÇ…pÿÿÿHÇ…xÿÿÿHƒ}àt,H‹EȺ@Hƒø@HGÂH‰EÈH‹UÈH‹MàH�E€H‰ÎH‰Çèž{þÿH‹EÀH…Àt6Hƒ}Øt/H‹EÀºHƒøHGÂH‰EÀH‹UÀH‹MØH�…pÿÿÿH‰ÎH‰Çè_{þÿÇEüƒ}ìuPH‹EÀH…Àt H�•pÿÿÿëºHƒ}àtH�E€ë¸‹MÔH‹}ðA‰ÉI‰ÐH‰Áº¾èƒþÿ‰Eü鵃}ìuGH‹EÀH…Àt H�•pÿÿÿëºHƒ}àtH�E€ë¸H‹}ðI‰ÐH‰Áº¾èúnþÿ‰Eüëhƒ}ìuGH‹EÀH…Àt H�•pÿÿÿëºHƒ}àtH�E€ë¸H‹}ðI‰ÐH‰Áº¾èÝ\þÿ‰EüëH‹…hÿÿÿH�5ÓëH‰Ç¸èí‚þÿ‹UüH‹…hÿÿÿ‰ÖH‰Çè)‹þÿÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5(ëH‰Çè“\þÿH‹H‰EðH‹E¸¾H‰Çè ]þÿ‰Eìƒ}ìt ƒ}ìtH‹E¸H�hë¾H‰ÇèDbþÿ…À�H�UÈH‹E¸¾H‰Çè¬jþÿH‰EàH‹EȃÀ ‰EÄ‹EÄH˜º‡H�5aêH‰Çè¥þÿH‰EØH‹UðH‹E¸¾ðØÿÿH‰ÇèºÂÿÿH‹E¸º¾ÿÿÿÿH‰Çèßÿÿ‰EÔH‹E¸¾þÿÿÿH‰Çèò›þÿÇEüƒ}Ôu&H‹EȉÇH‹MàH�UÄH‹uØH‹EðA‰øH‰ÇètYþÿ‰Eüëpƒ}Ôu&H‹EȉÇH‹MàH�UÄH‹uØH‹EðA‰øH‰ÇèYþÿ‰EüëDƒ}Ôu&H‹EȉÇH‹MàH�UÄH‹uØH‹EðA‰øH‰Çèüoþÿ‰EüëH‹E¸H�55êH‰Ç¸èO�þÿƒ}üu‹EÄHcÐH‹MØH‹E¸H‰ÎH‰ÇèäÙÿÿë‹UüH‹E¸‰ÖH‰Çèm‰þÿ‰EüH‹EغœH�5.éH‰ÇèRqþÿ‹EüÉÃUH‰åHƒì`H‰}¨H‹E¨ºH�5NéH‰Çè¹ZþÿH‹H‰EðÇE¼ ÇEüH‹UðH‹E¨¾ðØÿÿH‰ÇèMÁÿÿH‹E¨º¾ÿÿÿÿH‰Çè°Ýÿÿ‰Eìƒ}ìuH�U¼H�MÀH‹EðH‰ÎH‰Çè)¨þÿ‰Eüë\ƒ}ìuH�U¼H�MÀH‹EðH‰ÎH‰Çè˜þÿ‰Eüë:ƒ}ìuH�U¼H�MÀH‹EðH‰ÎH‰Çèbþÿ‰EüëH‹E¨H�5þèH‰Ç¸è€þÿH‹E¨¾þÿÿÿH‰Çèšþÿƒ}üu ‹E¼HcÐH�MÀH‹E¨H‰ÎH‰ÇèœØÿÿ¸ë‹UüH‹E¨‰ÖH‰Çè ˆþÿÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5èH‰ÇèŠYþÿH‹H‰EøH‹EøH‰ÇèWVþÿH‰EðH‹EȺ¾H‰Çè=�þÿÇEìþÿÿÿH‹EøH‰ÇèÚ¥þÿHcÐH‹EÈH‰ÖH‰Çè¨pþÿ‹MìH‹EÈH�Óç‰ÎH‰Çè0cþÿÇEèþÿÿÿH‹EøH‰Çè=yþÿHcÐH‹EÈH‰ÖH‰Çèkpþÿ‹MèH‹EÈH�¡ç‰ÎH‰ÇèóbþÿÇEäþÿÿÿH‹EøH‰Çè eþÿHcÐH‹EÈH‰ÖH‰Çè.pþÿ‹MäH‹EÈH�oç‰ÎH‰Çè¶bþÿÇEàþÿÿÿH‹EðH‰ÇèStþÿH‰ÂH‹EÈH‰ÖH‰Çèñoþÿ‹MàH‹EÈH�<ç‰ÎH‰ÇèybþÿÇEÜþÿÿÿH‹EøH‰Çè¤þÿHcÐH‹EÈH‰ÖH‰Çè´oþÿ‹MÜH‹EÈH�Vç‰ÎH‰Çèþÿò*EôH‹…èýÿÿH‰Çè4Cþÿ¸ÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäHƒ}ðtBH‹Eè¶¾ÐH‹Eð‰ÖH‰Çè·IþÿH…Àu%H‹MðH‹UèH‹EøH�5ÖH‰Ç¸è’oþÿ‹Eäë¸ÉÃUH‰åHƒì0H‰}èH‰uàH‰UØH‹EàH‰EøH‹Eø‹@…Àt$H‹EøÇ@H‹EøH‹P H‹EØH‰H‹EøH‹@ëH‹EøH‹H‹UøH‹rH‹UØH‹MèH‰ÏÿÐÉÃUH‰åHƒì`H‰}ÈH‰uÀH‰U¸H‰M°L‰E¨ÇEüHÇEÐHÇEØÇEàHÇEèHÇEðH‹EÀH‰EÐH‹E¸H‰EØH�EÐH�P H‹u¸H‹MÈH‹EÀH‰ÏÿÐH‰EèH‹EèH…Àt:H‹EðH…Àt1H‹E趺8Ðu!H‹u¨H‹EȹH�ÕH‰Çè{þÿÿ‰EüëH‹u¨H‹EȹH�ÕH‰ÇèZþÿÿ‰Eüƒ}üt‹EüëH‹M°H�UÐH‹EÈH�5 þÿÿH‰ÇèN^þÿÉÃUH‰åHƒì0H‰}èH‰uàH‰UØH‹EàH‰EøH‹Eø‹…À~H‹Eø‹HcÐH‹EØH‰H‹EøÇëGH‹EøH‹@H‰ÇèÚzþÿ…Àt¸ë4H‹EøH‹@H‹UøH�zH‰Áº¾è-yþÿH‰ÂH‹EØH‰H‹EøHƒÀÉÃUH‰åH�ì0H‰½èýÿÿH‰µàýÿÿ‰•ÜýÿÿH�•ðýÿÿ¸¹@H‰×óH«è.:þÿ‹H��ðýÿÿºH‰Î‰ÇèìÿÿH‰Eø‹�ÜýÿÿH‹…èýÿÿº‰ÎH‰ÇèÖ;þÿHƒÀH‰EðH‹uøH‹MðH‹•àýÿÿH‹…èýÿÿI‰ðH�5¤ÓH‰Ç¸èálþÿ‹•ÜýÿÿH‹…èýÿÿ‰ÖH‰ÇèjŠþÿ¸ÉÃUH‰åHƒì H‰}èH�wÓH‰EøH‹EèÇH‹EèH‹@H‰ÇèAþÿ‰Eôƒ}ôÿtH‹EøH�PH‰Uø¶¶À9Eôt‹EôëCH‹Eè‹�HH‹Uè‰ ‹Uô‰ÑH‹UèH˜ˆLH‹Eø¶„Àu¢H‹EèÇH‹EèH‹@H‰Çèš@þÿÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèIÿÿÿ‰ÂH‹Eà‰H‹Eà‹‰Eüƒ}ü#u>H‹EèH‹@H‰ÇèU@þÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè6@þÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèQTþÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5)ÒH‰ÇèH‹�F*H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5ÒH‰Ç¸è!kþÿH‹…ÀïÿÿH�5éÑH‰ÇèiþÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5¿ÑH‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5PÑH‰Çè cþÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5'ÑH‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè�8þÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çèž„þÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çè‚_þÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰ÇèÈzþÿ‹UüH‹…ÈïÿÿH�5>ÐH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰ÇèÙ†þÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H��ÏH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�vÏH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çèç{þÿÉÃUH‰åHƒì H‰}è‰uäH�kÏH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�ÏH‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰ÇèKþÿ‹UðH‹Eø‰ÖH‰ÇèðJþÿ‹UôH‹Eø‰ÖH‰ÇèŸsþÿ‹UðH‹Eø‰ÖH‰ÇèŽsþÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰ÇèrGþÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH� Å¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�žH‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çè\FþÿH‹Eø¾þÿÿÿH‰Çè›Aþÿ‹UôH‹Eø‰ÖH‰Çèêeþÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰ÇèJþÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èóVþÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çè50þÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�/ĉÎH‰ÇèU7þÿ…À…�‹UäH‹Eè‰ÖH‰Çèl.þÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5ÍÃH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰ÇèHþÿé3‹UäH‹Eè‰ÖH‰Çè~7þÿ…ÀtH‹EèºH�5‰ÃH‰ÇèÈ÷ÿÿéH‹EèºH�5qÃH‰Çè«÷ÿÿéä‹MäH‹EèH�\ÉÎH‰Çè(Tþÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çèƒ-þÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰ÇèM*þÿë‹UüH‹Eè‰ÖH‰ÇèêIþÿH‰Eð‹UäH‹Eè‰ÖH‰Çè…]þÿH‰ÁH‹UðH‹EèH�5äÂH‰Ç¸èF[þÿƒ}øtCH‹Eè¾þÿÿÿH‰ÇèÏoþÿ�ë/H‹Eè¾ÿÿÿÿH‰Çè+nþÿ…ÀuH‹EèH�5¤ÂH‰Ç¸è_Rþÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè§)þÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�óÁ¾H‰ÇèÏßÿÿH‹EøH�e¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèÙ*þÿH‹Eø¾ÿÿÿÿH‰ÇèH,þÿ…À…ŽH‹Eø¾þÿÿÿH‰Çè¿kþÿH‹MèH‹EøºH‰ÎH‰ÇèÇxþÿH‹UðH‹EøH‰ÖH‰Çè$LþÿH‹Eøº¾ÿÿÿÿH‰ÇèÞ(þÿH‹Eøº¾H‰Çèh^þÿH‹Eø¾ÿÿÿÿH‰Çè×EþÿH‹UðH‹Eø¾ýÿÿÿH‰Çè25þÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè«EþÿH‹UðH‹Eø¾îØÿÿH‰Çè5þÿH‹Eø¾þÿÿÿH‰ÇèEnþÿ�ÉÃUH‰åH‰}øH‹Eø]ÃUH‰åHƒì0H‰}ØH‹EؾH‰Çè‡mþÿH‰EèH‹EØH‹À4*H‰ÑH�íÁ¾H‰Çè!Kþÿ‰EüHÇEàÇEøHÇEðƒ}üuH‹EèH‰ÇèEbþÿ…Àt¸ë¸‰Eüƒ}üuH‹Eè¾H‰ÇèÛ4þÿH‰EðëDƒ}üu!H‹E蹺¾H‰Çèô6þÿH‰Eðëƒ}üuH�UàH‹EèH‰ÖH‰ÇèESþÿH‰EðH‹EèH‰ÇèÕPþÿHƒ}ð„©Hƒ}ðt5H‹EؾH‰Çè’HþÿH‰ÂH‹EðH‰H‹EغÿÿÿÿH�5üÀH‰Çè&þÿë H‹EØH‰ÇèRCþÿÇEøH‹EàH…ÀtQH‹EàH…Àt5H‹EؾH‰Çè8HþÿH‰ÂH‹EàH‰H‹EغÿÿÿÿH�5®ÀH‰Çè¶%þÿë H‹EØH‰ÇèøBþÿÇEø‹EøÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5dÀH‰Çè)þÿH‹H‰EðH‹EȾH‰Çè€)þÿ…À~H‹EȾH‰Çè«kþÿë¸H‰EèH‹EȺ¾H‰Çè/þÿ‰EäH‹EÈH‹Ä2*H‰ÑH�À¾H‰Çè%Iþÿ‰EàÇEüèFHþÿH‰ÇènjþÿH‰E؃}àu‹MäH‹UèH‹uðH‹EØH‰Çè )þÿ‰EüëBƒ}àu‹MäH‹UèH‹uðH‹EØH‰Çè Iþÿ‰Eüë ƒ}àu‹MäH‹UèH‹uðH‹EØH‰Çè9(þÿ‰Eüƒ}üu;H�UÐH‹EØH‰Ñº¾sH‰Çèó*þÿH‹EÐH‹H‹EÐH‹HH‹EÈH‰ÎH‰Çè[òÿÿHƒ}èt H‹EèH‰Çè²NþÿHƒ}Øt H‹EØH‰ÇèŸNþÿƒ}üt‹UüH‹EȉÖH‰ÇèVþÿë¸ÉÃUH‰åHƒì H‰}èè^@þÿH‰EðÇEüHƒ}ðtOHƒ}ðt5H‹Eè¾H‰Çè$FþÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5޾H‰Çè¢#þÿë H‹EèH‰Çèä@þÿÇEü‹EüÉÃUH‰åHƒì0H‰}ØH‹EؾH‰ÇèËiþÿH‰EðH‹Eغ¾H‰ÇèA-þÿ‰EìÇEü‹UìH‹Eð‰ÖH‰ÇèÖ&þÿH‰EàH‹EðH‰Çè¦MþÿHƒ}àtOHƒ}àt5H‹EؾH‰ÇègEþÿH‰ÂH‹EàH‰H‹EغÿÿÿÿH�5ѽH‰Çèå"þÿë H‹EØH‰Çè'@þÿÇEü‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȾH‰ÇèiþÿH‰EðÇEüÇEìÇEèH��½H‰EÐHÇEØH�UÐH‹EÈH‰ÑH�r½¾H‰ÇèƒFþÿ‰EìH‹EȺ¾H‰Çè:,þÿ‰Eè‹EìH˜H�…H�ãf*‹‰Eì‹Uè‹MìH‹Eð‰ÎH‰Çè YþÿH‰EàH‹EðH‰Çè‰LþÿHƒ}àtQHƒ}àt5H‹EȾH‰ÇèJDþÿH‰ÂH‹EàH‰H‹EȺÿÿÿÿH�5´¼H‰ÇèÈ!þÿë H‹EÈH‰Çè ?þÿÇEüëH‹EȾH‰Çè Sþÿ‰Eü‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5`¼H‰Çè%þÿH‹H‰EøH‹EȾH‰Çè|%þÿ…À~H‹EȾH‰Çè§gþÿë¸H‰EðH‹EȺ¾H‰Çè+þÿ‰EìènDþÿH‰Çè–fþÿH‰Eà‹MìH‹UàH‹uðH‹EøH‰Çèë6þÿ‰E܃}Üu;H�UÐH‹EàH‰Ñº¾sH‰Çèe'þÿH‹EÐH‹H‹EÐH‹HH‹EÈH‰ÎH‰ÇèÍîÿÿH‹EðH‰Çè+KþÿH‹EàH‰ÇèKþÿƒ}Üt‹UÜH‹EȉÖH‰ÇèˆRþÿë¸ÉÃUH‰åSHƒìXH‰}¨H‹E¨ºH�5i»H‰Çèê#þÿH‹H‰EàH‹E¨ºH�5W»H‰ÇèË#þÿH‹H‰EØH‹E¨¾H‰ÇèƒfþÿH‰EÐH‹E¨¾H‰ÇènjþÿH‰EÈH‹E¨º¾H‰Çèä)þÿ‰EÄÇEì‹}ÄH‹MÐH‹UÈH‹uØH‹EàA‰øH‰ÇèºH‰ÇèRþÿë H‹E¨H‰Çè”<þÿÇEì‹EìHƒÄX[]ÃUH‰åSHƒìXH‰}¨H‹E¨ºH�5ú¹H‰Çèž"þÿH‹H‰EèH‹E¨¾H‰ÇèViþÿH‰EàH‹E¨ºH�5ºH‰Çèj"þÿH‹H‰EØH‹E¨¾H‰Çèâ"þÿ…À~H‹E¨¾H‰Çè eþÿë¸H‰EÐH‹E¨º¾H‰Çè|(þÿ‰EÌèÔAþÿH‰ÇèücþÿH‰EÀD‹EÌH‹}ÀH‹MÐH‹UØH‹uàH‹EèE‰ÁI‰øH‰Çèb*þÿ‰E¼ƒ}¼u;H�U°H‹EÀH‰Ñº¾sH‰Çè¼$þÿH‹E°H‹H‹E°H‹HH‹E¨H‰ÎH‰Çè$ìÿÿH‹+*H‰ÇèÕÎÿÿH‰ÃH‹EàH‰Çè¸ÎÿÿH‰ÞH‰ÇèµfþÿHƒ}Ðt H‹EÐH‰ÇèRHþÿHƒ}Àt H‹EÀH‰Çè?Hþÿƒ}¼t‹U¼H‹E¨‰ÖH‰Çè¨Oþÿë¸HƒÄX[]ÃUH‰åHƒìPH‰}¸H‹E¸¾H‰ÇèÝcþÿH‰EðH�UÈH‹E¸¾H‰Çèd/þÿH‰EèH‹E¸H��¸¾H‰ÇèèKþÿH‰EàH‹E¸º¾H‰Çè'þÿ‰EÜÇEüH‹MÈ‹}ÜH‹UèH‹uàH‹EðA‰øH‰Çè¦_þÿH‰EÐH‹EðH‰ÇèvGþÿHƒ}ÐtOHƒ}Ðt5H‹E¸¾H‰Çè7?þÿH‰ÂH‹EÐH‰H‹E¸ºÿÿÿÿH�5¡·H‰Çèµþÿë H‹E¸H‰Çè÷9þÿÇEü‹EüÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5c·H‰Çè þÿH‹H‰EøH�UÈH‹E¸¾H‰Çè[.þÿH‰EðH‹E¸¾H‰Çèf þÿ…À~H‹E¸¾H‰Çè‘bþÿë¸H‰EèH‹E¸º¾H‰Çè&þÿ‰EäèX?þÿH‰Çè€aþÿH‰EØH‹UÈD‹EäH‹}ØH‹MèH‹uðH‹EøE‰ÁI‰øH‰ÇèF?þÿ‰EÔƒ}Ôu;H�UÀH‹EØH‰Ñº¾sH‰Çè@"þÿH‹EÀH‹H‹EÀH‹HH‹E¸H‰ÎH‰Çè¨éÿÿH‹EèH‰ÇèFþÿH‹EØH‰ÇèúEþÿƒ}Ôt‹UÔH‹E¸‰ÖH‰ÇècMþÿë¸ÉÃUH‰åHƒì@H‰}ÈH‹EȾH‰Çè�aþÿH‰EðH‹EÈH�r¶¾H‰ÇèñXþÿH‰EèH‹EȺ¾H‰Çè÷$þÿ‰EäÇEü‹UäH‹MèH‹EðH‰ÎH‰Çè—!þÿH‰EØH‹EðH‰ÇèWEþÿHƒ}ØtOHƒ}Øt5H‹EȾH‰Çè=þÿH‰ÂH‹EØH‰H‹EȺÿÿÿÿH�5‚µH‰Çè–þÿë H‹EÈH‰ÇèØ7þÿÇEü‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5DµH‰ÇèèþÿH‹H‰EøH‹EȾH‰Çè`þÿ…À~H‹EȾH‰Çè‹`þÿë¸H‰EðH‹EȺ¾H‰Çèú#þÿ‰EìèR=þÿH‰Çèz_þÿH‰Eà‹MìH‹UàH‹uðH‹EøH‰Çèÿþÿ‰E܃}Üu;H�UÐH‹EàH‰Ñº¾sH‰ÇèI þÿH‹EÐH‹H‹EÐH‹HH‹EÈH‰ÎH‰Çè±çÿÿH‹EðH‰ÇèDþÿH‹EàH‰ÇèDþÿƒ}Üt‹UÜH‹EȉÖH‰ÇèlKþÿë¸ÉÃUH‰åHƒì H‰}èH‰uàÇEüHƒ}èt0Hƒ}àt)ÇEü‹EüHcÐH‹EàHÐH‰ÇèPþÿH‰EðHƒ}ðtëH�=�²èécþÿë6¸ë/H‹UàH‹MèH‹EðH‰ÎH‰Çèù9þÿƒ}ütH‹UðH‹EàHÐÆH‹EðÉÃUH‰åSHƒìxH‰}ˆH‹Eˆ¾H‰Çè_þÿH‰EàH‹Eˆ¾H‰ÇèübþÿH‰EØH‹EˆH�ų¾H‰Çè GþÿH‰EÐH‹Eˆº@¾H‰ÇèV"þÿ‰EÌ‹MÌH‹UÐH‹uàH‹EØH‰Çè¬SþÿH‰EÀÇEìHƒ}À„�H‹Eˆ¾H‰ÇèEþÿƒø…FH‹EˆH�\³¾H‰Çè¤þÿH‹Eˆ¾ÿÿÿÿH‰ÇèþÿH‹EˆH�7³¾H‰Çè{þÿH‹Eˆ¾ÿÿÿÿH‰ÇèêþÿH‹Eˆ¾ÿÿÿÿH‰Çè]þÿ…ÀtH‹Eˆ¾þÿÿÿH‰Çè]þÿ…ÀuH‹EˆH�í²¾H‰Çè!þÿ…À�H�U˜H‹Eˆ¾þÿÿÿH‰Çèp)þÿH‰E¸H�U�H‹Eˆ¾ÿÿÿÿH‰ÇèW)þÿH‰E°H‹U˜H‹E¸H‰ÖH‰ÇèÝýÿÿH‰E¸H‹U�H‹E°H‰ÖH‰ÇèÆýÿÿH‰E°H‹}�H‹M˜H‹u°H‹U¸H‹EÀHƒìjjjI‰ùI‰ð¾H‰ÇèTcþÿHƒÄ H‰E¨Hƒ}¨uÇEìH‹Eˆ¾ýÿÿÿH‰Çè}Zþÿƒ}ì„íH‹EˆH�3²¾H‰ÇèKþÿH‹Eˆ¾ÿÿÿÿH‰ÇèºþÿH‹Eˆ¾ÿÿÿÿH‰Çèé[þÿ…ÀuH‹EˆH�þ±¾H‰Çèíþÿ…À�H‹Eˆº¾ÿÿÿÿH‰ÇèdþÿH‰E H‹E ºH�5â±H‰ÇèfþÿH‰E H‹U H‹EÀHƒìjIÇÁÿÿÿÿI‰Ð¹º¾ÿÿÿÿH‰Çè¥QþÿHƒÄH‰E¨Hƒ}¨uÇEìHÇE H‹Eˆ¾þÿÿÿH‰Çè†Yþÿƒ}ìt)‹EÌ%P…Àt‹UÌH‹uàH‹EÀ‰ÑºH‰Çèºþÿ‰EìH‹EàH‰Çè@þÿH‹ #*H‰ÇèbÆÿÿH‰ÃH‹EØH‰ÇèEÆÿÿH‰ÞH‰ÇèB^þÿƒ}ìuJHƒ}Àt5H‹Eˆ¾H‰Çè´7þÿH‰ÂH‹EÀH‰H‹EˆºÿÿÿÿH�5°H‰Çè2þÿë"H‹EˆH‰Çèt2þÿë‹UìH‹Eˆ‰ÖH‰ÇèGþÿ‰Eì‹EìH‹]øÉÃUH‰åHƒÄ€H‰}ˆH‹EˆºH�5ͯH‰ÇèqþÿH‹H‰EðH‹EˆºH�5Þ¯H‰ÇèRþÿH‹H‰EèH‹EˆºH�5²¯H‰Çè3þÿH‹H‰EàH‹Eˆ¾H‰Çè«þÿ…À~H‹Eˆ¾H‰ÇèÖZþÿë¸H‰EØH‹Eˆº¾H‰ÇèEþÿ‰EÔÇEüè–7þÿH‰Çè¾YþÿH‰EÈH‹Eˆ¾H‰ÇèIþÿƒø…§H‹EˆH��¯¾H‰Çè¨þÿH‹Eˆ¾ÿÿÿÿH‰ÇèþÿH‹Eˆ¾ÿÿÿÿH‰ÇèFYþÿ…ÀuH‹EˆH�[¯¾H‰ÇèJþÿ…À�H‹Eˆº¾ÿÿÿÿH‰ÇèÁþÿH‰EÀH‹MÀH‹EðHÇÂÿÿÿÿH‰ÎH‰Çè4þÿ‰EüH‹Eˆ¾þÿÿÿH‰Çè/Wþÿƒ}ü„üH‹EˆH�µ®¾H‰ÇèýþÿH‹Eˆ¾ÿÿÿÿH‰ÇèlþÿH‹EˆH��®¾H‰ÇèÔþÿH‹Eˆ¾ÿÿÿÿH‰ÇèCþÿH‹Eˆ¾ÿÿÿÿH‰ÇèrXþÿ…ÀtH‹Eˆ¾þÿÿÿH‰Çè]Xþÿ…ÀuH‹EˆH�F®¾H‰Çèaþÿ…À�H�U¨H‹Eˆ¾þÿÿÿH‰ÇèÙþÿH‰E¸H�U H‹Eˆ¾ÿÿÿÿH‰ÇèÀþÿH‰E°H‹} H‹U¨H‹M°H‹u¸H‹EðI‰øH‰ÇèmQþÿ‰EüH‹Eˆ¾ýÿÿÿH‰Çè)Vþÿƒ}ü…ŽH‹UàH‹MèH‹EðH‰ÎH‰ÇèÈ<þÿ‰Eüƒ}üun‹uÔH‹MÈH‹UØH‹EðA‰ñI‰ÈH‰Ñº¾H‰ÇèKþÿ‰Eüƒ}üu;H�U˜H‹EÈH‰Ñº¾sH‰Çè�þÿH‹E˜H‹H‹E˜H‹HH‹EˆH‰ÎH‰Çè÷ßÿÿHƒ}Øt H‹EØH‰ÇèN<þÿH‹EÈH‰ÇèB<þÿƒ}üt‹UüH‹Eˆ‰ÖH‰Çè«Cþÿë¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5j¬H‰ÇèþÿH‹H‰EøH‹EøH‰Çè«.þÿH‰EðHƒ}ðt5H‹Eè¾H‰Çè¯3þÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5i­H‰Çè-þÿë H‹EèH‰Çèo.þÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5à«H‰Çè„þÿH‹H‰EøÇEôH‹Eè¾H‰Çèõþÿƒøÿu'H‹EøH‰Çèä#þÿ‰Eô‹UôH‹Eè‰ÖH‰Çè�Yþÿ¸ë-H‹Eè¾H‰ÇèÈ3þÿ‰Eð‹UðH‹Eø‰ÖH‰Çèd9þÿ‰Eô¸ÉÃUH‰åSHƒì8H‰}ÈH‹EȺH�5A«H‰ÇèåþÿH‹H‰EàH‹EàH‰Çè23þÿH‰EØÇEìHƒ}ØtNH‹EØH‹H…ÀtBH‹EØH‹H‰EÐH‹EÐH‰ÇèÍ\þÿHcØH‹EÐH‰Çè¾[þÿH‰ÁH‹EÈH‰ÚH‰ÎH‰ÇèÿÝÿÿÇEì‹EìHƒÄ8[]ÃUH‰åHƒì@H‰}ÈH‹EȺH�5 ªH‰ÇèDþÿH‹H‰EøH‹EȺH�5¤ªH‰Çè%þÿH‹H‰EðH‹EȺH�5’ªH‰ÇèþÿH‹H‰EèH‹EÈH�¨ª¾H‰Çè'MþÿH‰EàH‹EȺ¾H‰Çè-þÿ‰EÜ‹}ÜH‹MàH‹UèH‹uðH‹EøA‰øH‰Çè,þÿH‰EÐHƒ}Ðu¸ëH‹EȾH‰Çè)-þÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5º©H‰Çè^þÿH‹H‰EðH‹EðH‰ÇèK4þÿH‰EèÇEüHƒ}èt.H‹UèH‹EØH‰ÖH‰ÇèöCþÿH‹EèH‰ÇèR¿ÿÿH‰Çè¢5þÿÇEü‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5>©H‰ÇèâþÿH‹H‰EðH‹EȺ¾H‰Çè%þÿ‰Eìè}1þÿH‰Çè¥SþÿH‰Eà‹UìH‹MàH‹EðH‰ÎH‰ÇèKþÿ‰Eüƒ}üu=H�UØH‹EàH‰Ñº¾sH‰ÇèuþÿH‹EØH‹H‹EØH‹HH‹EÈH‰ÎH‰ÇèÝÛÿÿë‹UüH‹EȉÖH‰Çè´?þÿ‰EüH‹EàH‰Çè%8þÿ‹EüÉÃUH‰åHƒì0H‰}ØH‹EغH�5h¨H‰Çè þÿH‹H‰EøH‹EؾH‰ÇèÄSþÿH‰EðH‹Eغ¾H‰Çè:þÿ‰Eì‹UìH‹uðH‹Eø‰ÑºH‰Çè= þÿ‰EèH‹EðH‰Çèž7þÿ‹UèH‹E؉ÖH‰Çè ?þÿÉÃUH‰åSHƒìHH‰}¸HÇEàHÇEØèy[þÿH‰EÐHƒ}ЄÇEìéÑH‹E¸H‰Çèn½ÿÿH‰Â‹Eì‰ÆH‰×è²AþÿH‰EÈH‹EÈA¹I‰À¹º¾¿èˆþÿH‰EØHƒ}Ø„¢èT/þÿH‰EàHƒ}à„‘H‹EØH‰Çè=½ÿÿH‰ÃH‹EàH‰Çè<½ÿÿH‰ÞH‰Çè+þÿ…ÀtjHÇEØH‹EàH‰Çè'½ÿÿH‰ÃH‹EÐH‰Çè&½ÿÿH‰ÞH‰ÇèM+þÿ…Àt;HÇEàƒEìH‹E¸H‰Çè�¼ÿÿH‰Çèþÿ9EìŒÿÿÿH‹EÐëh�ë �ë�ë�ë�Hƒ}Ðt)H‹?*H‰ÇèÓ¼ÿÿH‰ÃH‹EÐH‰Çè¶¼ÿÿH‰ÞH‰ÇèmTþÿHƒ}àt H‹EàH‰Çèê&þÿHƒ}Øt H‹EØH‰ÇèG'þÿ¸HƒÄH[]ÃUH‰åHƒì@H‰}؉uÔH‰UÈH‹EØH‰ÇèAþÿÿH‰EðHƒ}ðtTHƒ}ÈtH‹EÈH‰Çè#þÿÿH‰EøHƒ}øu ë5HÇEøH‹MðH‹Uø‹EÔI‰ÈH‰Ñ‰Â¾ÿÿÿÿ¿èÇ2þÿH‰EèH‹Eèë�¸ÉÃUH‰åSHƒìxH‰}ˆH‹EˆºH�5¬¥H‰ÇèPþÿH‹H‰EàH‹EàH‰Çèm2þÿH‰EØHÇEÐHÇEÈÇEÄHƒ}ØtH‹EØH‰Çè-ãÿÿH‰Çè§þÿ…ÀH‹EˆH�°¦¾H‰ÇèÛþÿ…À�H‹Eˆº¾H‰Çè"þÿH‹Eˆ¾H‰Çèá.þÿH…ÀuH‹EˆH�‘¦¾H‰Çè”þÿ…À�H‹Eˆº¾H‰ÇèÛþÿH‹Eˆ¾H‰Çèš.þÿH…ÀuH‹EˆH�k¦¾H‰ÇèMþÿ…À�H‹Eˆ¾H‰Çèiþÿ‰EÄèAXþÿH‰EÐè8XþÿH‰EÈÇEìé‚HÇE¸‹UìH‹Eˆ¾H‰ÇèþÿH‹Eˆ¾ÿÿÿÿH‰Çè‹ þÿH‹Eˆº¾ÿÿÿÿH‰Çèe þÿH‰E¸H‹Eˆ¾þÿÿÿH‰ÇèðLþÿH‹E¸H‰ÇèÒ¹ÿÿH‰ÃH‹EÐH‰Çèß¹ÿÿH‰ÞH‰ÇèZ(þÿƒEì‹EìHcØH‹Eˆ¾H‰Çè¯-þÿH9Æ^ÿÿÿÇEìé‚HÇE°‹UìH‹Eˆ¾H‰ÇènþÿH‹Eˆ¾ÿÿÿÿH‰ÇèÝ þÿH‹Eˆº¾ÿÿÿÿH‰Çè· þÿH‰E°H‹Eˆ¾þÿÿÿH‰ÇèBLþÿH‹E°H‰Çè$¹ÿÿH‰ÃH‹EÈH‰Çè1¹ÿÿH‰ÞH‰Çè¬'þÿƒEì‹EìHcØH‹Eˆ¾H‰Çè-þÿH9Æ^ÿÿÿH‹EØH‰Çèêàÿÿ¾H‰Çè/=þÿH‰E¨H‹UÈ‹MÄH‹EЉÎH‰Çè«üÿÿH‰E Hƒ} uH‹EˆH�5¯¤H‰Ç¸è£1þÿH‹U H‹E¨H‰ÖH‰ÇèP6þÿ‰EœHƒ}ÐtH‹EÐH‰Ç脸ÿÿH‰Çèâ.þÿHƒ}ÈtH‹EÈH‰Çèi¸ÿÿH‰ÇèÇ.þÿƒ}œu$H‹E H‰ÇèõGþÿH‹Eˆ¾H‰Çè´%þÿ¸ë‹UœH‹Eˆ‰ÖH‰Çèl9þÿHƒÄx[]ÃUH‰åSHƒìXH‰}¨H‹E¨ºH�5,¢H‰ÇèÐ þÿH‹H‰EèH‹E¨ºH�50¢H‰Çè± þÿH‹H‰EàH‹E¨ºH�5¢H‰Çè’ þÿH‹H‰EØH‹E¨¾H‰ÇèJQþÿH‰EÐH‹E¨º¾H‰ÇèÀþÿ‰EÌH‹EèH‰Çè�.þÿH‰EÀHƒ}À„¾H‹EÀH‰ÇèTßÿÿ¾H‰Çè™;þÿH‰E¸‹}ÌH‹MÐH‹UØH‹uàH‹E¸A‰øH‰Çè7þÿH‰E°Hƒ}°txHƒ}°t5H‹E¨¾H‰Çè´(þÿH‰ÂH‹E°H‰H‹E¨ºÿÿÿÿH�5¡H‰Çè2þÿë H‹E¨H‰Çèt#þÿH‹•*H‰Çèë¶ÿÿH‰ÃH‹EÐH‰ÇèζÿÿH‰ÞH‰ÇèËNþÿ¸ë:H‹e*H‰Çè»¶ÿÿH‰ÃH‹EÐH‰Çèž¶ÿÿH‰ÞH‰Çè›NþÿH‹E¨¾H‰Çèº7þÿHƒÄX[]ÃUH‰åSHƒìHH‰}¸H‹E¸ºH�5z H‰Çè þÿH‹H‰EèH‹E¸ºH�5[ H‰ÇèÿþÿH‹H‰EàH‹E¸¾H‰Çè·OþÿH‰EØH‹E¸ºH�5h H‰ÇèËþÿH‹H‰EÐH‹E¸º¾H‰Çèþÿ‰EÌ‹}ÌH‹MÐH‹UØH‹uàH‹EèA‰øH‰ÇèM+þÿ‰Eȃ}ÈŸÀ¶ÐH‹E¸‰ÖH‰ÇèÂMþÿH‹S*H‰Ç詵ÿÿH‰ÃH‹EØH‰Ç茵ÿÿH‰ÞH‰Çè‰Mþÿ¸HƒÄH[]ÃUH‰åHƒì H‰}èH‹EèºH�5uŸH‰ÇèþÿH‹H‰EøH‹EøH‰Çèfþÿ¸ÉÃUH‰åHƒìH‰}øH‹EøH�xJ*H�55ŸH‰ÇèùþÿH‹Eøº¾H‰Çè£=þÿH‹EøºH�5C*H‰Çè±½ÿÿH‹Eøº¾H‰Çèu=þÿH‹EøºH�5÷žH‰ÇèÒÿÿH‹Eøº¾þÿÿÿH‰Çèg&þÿH‹EøH�ñ ¾þÿÿÿH‰Çè_þÿH‹Eøº¾H‰Çè=þÿH‹EøH�^H*¾ÿÿÿÿH‰Çè¡!þÿH‹EøH�· ¾þÿÿÿH‰Çèþÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰ÇèþÿH‹Eð¶„Àu ‹Eü‰Çè÷ þÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰ÇèþÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰ÇèÉþÿƒøtbH‹Eø¾þÿÿÿH‰ÇèCFþÿH‹UèH‹uðH‹EøH� ÀŸH‰ÇèHþÿ…Àt H‹EøH‰ÇèØþÿH‹Eø¾ÿÿÿÿH‰Çè‡ þÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Çè}þÿ‹Uà‹MäH‹Eø‰ÎH‰ÇèÉ8þÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�50 H‰Ç¸è“+þÿH‹EøH�< ¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çèäþÿò*EôH‹EøH‰Çè3þÿH‹Eø¾ýÿÿÿH‰ÇèâþÿH‹EøA¸¹ºÛH�5מH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰ÇèIþÿéå‹Uà‹MäH‹Eè‰ÎH‰Çè­ þÿéÌH‹EèH�aŸ¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çèçþÿ‹UàH‹Eè‰ÖH‰ÇèÖþÿH‹EèA¸¹ºH�5 ŸH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çè"þÿ‰EüH‹Eè¾þÿÿÿH‰ÇèDþÿ‹EüëH‹EèH�5îžH‰Ç¸èñ)þÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�mž¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çèþÿ‹UüH‹Eè‰ÖH‰ÇèÊFþÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè×þÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çè?$þÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çèòþÿ龋MôH‹EøH�ž‰ÎH‰Çè5 þÿ…À…š‹UôH‹Eø‰ÖH‰ÇèÜ#þÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè�þÿëZ‹MôH‹EøH�µ�‰ÎH‰ÇèÕ þÿ…ÀuA‹UôH‹Eø‰ÖH‰Çèðþÿ‰ÂH‹Eø‰ÖH‰Çè€þÿH‰ÂH‹EøH�5‚�H‰Ç¸èU(þÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çè"6þÿ‹UüH‹Eè‰ÖH‰ÇèQ%þÿH‹Eè¾ÿÿÿÿH‰Çè`þÿH‹Eè¾ÿÿÿÿH‰ÇèOþÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�_œ¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çè›5þÿH‹Eè¾þÿÿÿH‰Çèþÿ‹UüH‹Eè‰ÖH‰ÇèÉþÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèBþÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çèë þÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çèl3þÿ…ÀuIHƒ}ètH‹UèH‹EøH�5æ›H‰Ç¸è•&þÿë$H‹EøºH�5Û›H‰ÇèEH‹EøH‰Çè/þÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�îš¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çèª þÿH‹E躾ÿÿÿÿH‰Çèdýýÿ‹UüH‹Eè‰ÖH‰Çè³GþÿH‹Eè¾ÿÿÿÿH‰ÇèRþÿH‹Eè¾ÿÿÿÿH‰ÇèAþÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Çè´?þÿH‹E躾H‰Çè^5þÿH‹UØH‹EèH‰ÖH‰Çè þÿH‹E躾ÿÿÿÿH‰ÇèÕüýÿH‹Eè¾þÿÿÿH‰Çèäþÿ‹UüH‹Eè‰ÖH‰ÇèS6þÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�×™¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰ÇèÛ>þÿ‹Eô…ÀuH‹EèH�51šH‰Ç¸è¼$þÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�š‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰ÇèýþÿH‹E躾ÿÿÿÿH‰Çè·ûýÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè¹þÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè3Kþÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Çèû4þÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèÑ=þÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�g˜¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰Çè�üýÿH‹Eø¾ÿÿÿÿH‰ÇèðýýÿH‹Eø¾þÿÿÿH‰ÇèGþÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèh6þÿH‰EøH‹EèH�í—¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰ÇèDþÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰ÇèÝûýÿH‹Eè¾ÿÿÿÿH‰ÇèLýýÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰ÇèÆ þÿ‰EôH‹Eè¾ýÿÿÿH‰Çè²<þÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰ÇèØýýÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çè£ýýÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰ÇèEüýÿƒøt ¸éüH‹EøH‰ÇèZþÿéÍH‹Eø¾þÿÿÿH‰Çèüýÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çè… þÿ…ÀtH‹Eø¾þÿÿÿH‰Çèp;þÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰ÇèzGþÿH‹EøºH�5Ä–H‰ÇèìH‹Eø¾þÿÿÿH‰Çè± þÿH‹Eø¾H‰Çèp:þÿ¸ë/H‹Eø¾þÿÿÿH‰Çèè:þÿH‹Eø¾þÿÿÿH‰Çè÷=þÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çèþÿ‰EüH‹UàH‹EèH�56–H‰Çè’*þÿH‹Eè¾îØÿÿH‰Çèþÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çè<:þÿ¸ë‹UüH‹Eè‰ÖH‰Çè$:þÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5‰•H‰Ç¸è~(þÿéÜH‹EðH‹@¶H‹EèH‹@H‰Çèñôýÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰ÇèÒôýÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèíþÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5¥�H‰ÇèH‹+û)H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5|�H‰Ç¸è½þÿH‹…ÀïÿÿH�5e�H‰Çè·þÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5;�H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5ÌŒH‰Çè§þÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5£ŒH‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè9íýÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè:9þÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çèþÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çèd/þÿ‹UüH‹…ÈïÿÿH�5º‹H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çèu;þÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H� ‹H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�òŠH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çèƒ0þÿÉÃUH‰åHƒì H‰}è‰uäH�çŠH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�“ŠH‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè�ÿýÿ‹UðH‹Eø‰ÖH‰ÇèŒÿýÿ‹UôH‹Eø‰ÖH‰Çè;(þÿ‹UðH‹Eø‰ÖH‰Çè*(þÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çèüýÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH��¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�Œ€¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰ÇèøúýÿH‹Eø¾þÿÿÿH‰Çè7öýÿ‹UôH‹Eø‰ÖH‰Çè†þÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè þýÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'è� þÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèÑäýÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�«‰ÎH‰Çèñëýÿ…À…�‹UäH‹Eè‰ÖH‰Çèãýÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5IH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè°üýÿé3‹UäH‹Eè‰ÖH‰Çèìýÿ…ÀtH‹EèºH�5H‰ÇèÈ÷ÿÿéH‹EèºH�5í~H‰Çè«÷ÿÿéä‹MäH‹EèH�Ø~‰ÎH‰ÇèÄþÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çèâýÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰ÇèéÞýÿë‹UüH‹Eè‰ÖH‰Çè†þýÿH‰Eð‹UäH‹Eè‰ÖH‰Çè!þÿH‰ÁH‹UðH‹EèH�5`~H‰Ç¸èâþÿƒ}øtCH‹Eè¾þÿÿÿH‰Çèk$þÿ�ë/H‹Eè¾ÿÿÿÿH‰ÇèÇ"þÿ…ÀuH‹EèH�5 ~H‰Ç¸èûþÿë�H‹UØH‹Eè¾ÿÿÿÿH‰ÇèCÞýÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�o}¾H‰ÇèÏßÿÿH‹EøH�á}¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèußýÿH‹Eø¾ÿÿÿÿH‰Çèäàýÿ…À…ŽH‹Eø¾þÿÿÿH‰Çè[ þÿH‹MèH‹EøºH‰ÎH‰Çèc-þÿH‹UðH‹EøH‰ÖH‰ÇèÀþÿH‹Eøº¾ÿÿÿÿH‰ÇèzÝýÿH‹Eøº¾H‰ÇèþÿH‹Eø¾ÿÿÿÿH‰ÇèsúýÿH‹UðH‹Eø¾ýÿÿÿH‰ÇèÎéýÿƒ}ät&H‹Eø¾ÿÿÿÿH‰ÇèGúýÿH‹UðH‹Eø¾îØÿÿH‰Çè¢éýÿH‹Eø¾þÿÿÿH‰Çèá"þÿ�ÉÃUH‰åHƒì H‰}èH‹EèºH�5Ä|H‰ÇèZßýÿH‹H‰EøH‹EøH‰Çè—*þÿ¸ÉÃUH‰åHƒìpH‰}˜HÇEÈHÇEÀHÇE¸HÇE°HÇE¨H‹E˜ºH�5^|H‰ÇèôÞýÿH‹H‰EøH‹E˜º¾H‰Çè·þÿH‹EøH‰ÇèËøýÿHcÐH‹E˜H‰ÖH‰Çè)öýÿH‹E˜H�|¾þÿÿÿH‰Çè±èýÿH‹EøH‰ÇèåþÿHcÐH‹E˜H‰ÖH‰ÇèóõýÿH‹E˜H�ê{¾þÿÿÿH‰Çè{èýÿH�M¸H�UÀH�uÈH‹EøH‰ÇèsþÿH�U¨H�M°H‹EøH‰ÎH‰ÇèŒôýÿH‹EÈH…ÀtpH‹EÈH‰Çè7þÿH‰EðHƒ}ðt5H‹E˜¾H‰ÇèÛüýÿH‰ÂH‹EðH‰H‹E˜ºÿÿÿÿH�5h{H‰ÇèYÚýÿë H‹E˜H‰Çè›÷ýÿH‹E˜H�R{¾þÿÿÿH‰ÇèÓçýÿH‹EÀH…ÀtpH‹EÀH‰Çè¾þÿH‰EèHƒ}èt5H‹E˜¾H‰ÇèbüýÿH‰ÂH‹EèH‰H‹E˜ºÿÿÿÿH�5ïzH‰ÇèàÙýÿë H‹E˜H‰Çè"÷ýÿH‹E˜H�Ûz¾þÿÿÿH‰ÇèZçýÿH‹E¸H…ÀtpH‹E¸H‰ÇèEþÿH‰EàHƒ}àt5H‹E˜¾H‰ÇèéûýÿH‰ÂH‹EàH‰H‹E˜ºÿÿÿÿH�5vzH‰ÇègÙýÿë H‹E˜H‰Çè©öýÿH‹E˜H�dz¾þÿÿÿH‰ÇèáæýÿH‹E°H…ÀtpH‹E°H‰ÇèÌþÿH‰EØHƒ}Øt5H‹E˜¾H‰ÇèpûýÿH‰ÂH‹EØH‰H‹E˜ºÿÿÿÿH�5ýyH‰ÇèîØýÿë H‹E˜H‰Çè0öýÿH‹E˜H�íy¾þÿÿÿH‰ÇèhæýÿH‹E¨H…ÀtpH‹E¨H‰ÇèSþÿH‰EÐHƒ}Ðt5H‹E˜¾H‰Çè÷úýÿH‰ÂH‹EÐH‰H‹E˜ºÿÿÿÿH�5„yH‰ÇèuØýÿë H‹E˜H‰Çè·õýÿH‹E˜H�|y¾þÿÿÿH‰Çèïåýÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5yH‰Çè´ÛýÿH‹H‰EðÇEüÇEäH‹EؾH‰Çè.þÿ…Àt;H‹EغH�5ñxH‰ÇèrÛýÿH‹H‰EèH�UäH‹MèH‹EðH‰ÎH‰Çè$þÿ‰EüëH�UäH‹EðH‰ÖH‰ÇèŒðýÿ‰Eü‹UüH‹E؉ÖH‰Çèx þÿ‹EäHcÐH‹EØH‰ÖH‰Çèƒòýÿ¸ÉÃUH‰åHƒì0H‰}ØH‹Eغ¾H‰ÇèJáýÿ‰EüH‹Eغ¾H‰Çè1áýÿ‰EøH‹EؾH‰ÇèMÛýÿ…À~H‹EغH�5BxH‰Çè¡ÚýÿH‹ë¸H‰EðÇEìHƒ}ðtH‹EðH‰ÇèùþÿëèÂòýÿH‰Eà‹Uø‹uüH‹Eà¹H‰ÇèÇçýÿ‰Eìƒ}ìuOHƒ}àt5H‹EؾH‰ÇèùýÿH‰ÂH‹EàH‰H‹EغÿÿÿÿH�5~wH‰Çè„Öýÿë H‹EØH‰ÇèÆóýÿ¸ëH‹EàH‰ÇèC%þÿ‹UìH‹E؉ÖH‰ÇèRþÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5&wH‰Çè¼ÙýÿH‹H‰EøH‹EøH‰Çèù þÿH‰EðH‹EðH‰ÇèYßýÿ‰Eìƒ}ìuOHƒ}ðt5H‹EؾH‰ÇèHøýÿH‰ÂH‹EðH‰H‹EغÿÿÿÿH�5ÀvH‰ÇèÆÕýÿë H‹EØH‰Çèóýÿ¸ëH‹EðH‰Çè…$þÿ‹UìH‹E؉ÖH‰Çè”þÿÉÃUH‰åHƒì H‰}èH‹Eè¾H‰Çè•'þÿ‰EøH‹Eè¾H‰Çèãýÿ‰EôÇEüH‹E躾H‰Çè±þÿƒ}ô„ËEøƒà…Àt4H‹EèºH�5lwH‰Çè�îÿÿ‹Eü�P‰UüH‹Mè‰Â¾þÿÿÿH‰Ïè‰÷ýÿ‹Eøƒà…Àt4H‹EèºH�5EwH‰ÇèQîÿÿ‹Eü�P‰UüH‹Mè‰Â¾þÿÿÿH‰ÏèK÷ýÿ‹Eøƒà…À„ëH‹EèºH�5wH‰Çèîÿÿ‹Eü�P‰UüH‹Mè‰Â¾þÿÿÿH‰Ïè ÷ýÿ鲋Eøƒà…Àt4H‹EèºH�5ìvH‰ÇèÌíÿÿ‹Eü�P‰UüH‹Mè‰Â¾þÿÿÿH‰ÏèÆöýÿ‹Eøƒà…Àt4H‹EèºH�5kvH‰ÇèŽíÿÿ‹Eü�P‰UüH‹Mè‰Â¾þÿÿÿH‰Ïèˆöýÿ‹Eøƒà…Àt4H‹EèºH�5‚vH‰ÇèPíÿÿ‹Eü�P‰UüH‹Mè‰Â¾þÿÿÿH‰ÏèJöýÿ‹Eøƒà…Àt4H‹EèºH�5^vH‰Çèíÿÿ‹Eü�P‰UüH‹Mè‰Â¾þÿÿÿH‰Ïè öýÿ‹Eøƒà…Àt4H‹EèºH�57vH‰ÇèÔìÿÿ‹Eü�P‰UüH‹Mè‰Â¾þÿÿÿH‰ÏèÎõýÿ‹Eøƒà …Àt4H‹EèºH�5 vH‰Çè–ìÿÿ‹Eü�P‰UüH‹Mè‰Â¾þÿÿÿH‰Ïè�õýÿ‹Eøƒà@…Àt4H‹EèºH�5ãuH‰ÇèXìÿÿ‹Eü�P‰UüH‹Mè‰Â¾þÿÿÿH‰ÏèRõýÿ¸ÉÃUH‰åHƒìH‰}øH‹EøH�Ä*H�5�sH‰ÇèEìýÿH‹Eøº¾H‰Çèï þÿH‹EøºH�5¯*H‰Çèa×ÿÿH‹EøH�Ü*¾ÿÿÿÿH‰Çè_ðýÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰ÇèòâýÿH‹Eð¶„Àu ‹Eü‰ÇèÍÜýÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰ÇèëìýÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰ÇèŸÕýÿƒøtbH‹Eø¾þÿÿÿH‰ÇèþÿH‹UèH‹uðH‹EøH� –tH‰Çèîþÿ…Àt H‹EøH‰Çè®äýÿH‹Eø¾ÿÿÿÿH‰Çè]ïýÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰ÇèSçýÿ‹Uà‹MäH‹Eø‰ÎH‰ÇèŸþÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5uH‰Ç¸èiúýÿH‹EøH�u¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çèºîýÿò*EôH‹EøH‰Çè ÖýÿH‹Eø¾ýÿÿÿH‰Çè¸æýÿH‹EøA¸¹ºÛH�5­sH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰ÇèÜþÿéå‹Uà‹MäH‹Eè‰ÎH‰ÇèƒÜýÿéÌH‹EèH�7t¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çè½íýÿ‹UàH‹Eè‰ÖH‰Çè¬íýÿH‹EèA¸¹ºH�5ásH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰ÇèøÜýÿ‰EüH‹Eè¾þÿÿÿH‰Çèäþÿ‹EüëH‹EèH�5ÄsH‰Ç¸èÇøýÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�Cs¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çèñìýÿ‹UüH‹Eè‰ÖH‰Çè þÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè­ÒýÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰ÇèóýÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèÈÓýÿ龋MôH‹EøH�ër‰ÎH‰Çè Ûýÿ…À…š‹UôH‹Eø‰ÖH‰Çè²òýÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèeÓýÿëZ‹MôH‹EøH�‹r‰ÎH‰Çè«Úýÿ…ÀuA‹UôH‹Eø‰ÖH‰ÇèÆÑýÿ‰ÂH‹Eø‰ÖH‰ÇèVîýÿH‰ÂH‹EøH�5XrH‰Ç¸è+÷ýÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çèøþÿ‹UüH‹Eè‰ÖH‰Çè'ôýÿH‹Eè¾ÿÿÿÿH‰Çè6ÑýÿH‹Eè¾ÿÿÿÿH‰Çè%ÑýÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�5q¾H‰Çè»H‹UØH‹EèH‰ÖH‰ÇèqþÿH‹Eè¾þÿÿÿH‰Çèðâýÿ‹UüH‹Eè‰ÖH‰ÇèŸìýÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèÑýÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰ÇèÁïýÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰ÇèBþÿ…ÀuIHƒ}ètH‹UèH‹EøH�5¼pH‰Ç¸èkõýÿë$H‹EøºH�5±pH‰ÇèEH‹EøH‰Çèßýÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�Äo¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè€ïýÿH‹E躾ÿÿÿÿH‰Çè:Ìýÿ‹UüH‹Eè‰ÖH‰Çè‰þÿH‹Eè¾ÿÿÿÿH‰Çè(ÏýÿH‹Eè¾ÿÿÿÿH‰ÇèÏýÿƒøu¸ëwH‹Eè¾þÿÿÿH‰ÇèŠþÿH‹E躾H‰Çè4þÿH‹UØH‹EèH‰ÖH‰ÇèñîýÿH‹E躾ÿÿÿÿH‰Çè«ËýÿH‹Eè¾þÿÿÿH‰Çèºèýÿ‹UüH‹Eè‰ÖH‰Çè)þÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�­n¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè± þÿ‹Eô…ÀuH‹EèH�5oH‰Ç¸è’óýÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�ðn‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰ÇèÓíýÿH‹E躾ÿÿÿÿH‰Çè�ÊýÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè�çýÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè þÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰ÇèÑþÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè§ þÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�=m¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰ÇèWËýÿH‹Eø¾ÿÿÿÿH‰ÇèÆÌýÿH‹Eø¾þÿÿÿH‰Çèõþÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè>þÿH‰EøH‹EèH�Ãl¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çèãýÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çè³ÊýÿH‹Eè¾ÿÿÿÿH‰Çè"ÌýÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰ÇèœÛýÿ‰EôH‹Eè¾ýÿÿÿH‰Çèˆ þÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çè®Ìýÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰ÇèyÌýÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰ÇèËýÿƒøt ¸éüH‹EøH‰Çè0äýÿéÍH‹Eø¾þÿÿÿH‰ÇèêÊýÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çè[Úýÿ…ÀtH‹Eø¾þÿÿÿH‰ÇèF þÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰ÇèPþÿH‹EøºH�5škH‰ÇèìH‹Eø¾þÿÿÿH‰Çè‡ÜýÿH‹Eø¾H‰ÇèF þÿ¸ë/H‹Eø¾þÿÿÿH‰Çè¾ þÿH‹Eø¾þÿÿÿH‰ÇèÍ þÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çèòàýÿ‰EüH‹UàH‹EèH�5 kH‰ÇèhùýÿH‹Eè¾îØÿÿH‰Çè×ãýÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çè þÿ¸ë‹UüH‹Eè‰ÖH‰Çèúþÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5_jH‰Ç¸èT÷ýÿéÜH‹EðH‹@¶H‹EèH‹@H‰ÇèÇÃýÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè¨Ãýÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèÃ×ýÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5{bH‰ÇèH‹Ê)H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5RbH‰Ç¸è“îýÿH‹…ÀïÿÿH�5;bH‰Çè�ìýÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5bH‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5¢aH‰Çè}æýÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5yaH‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè¼ýÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çèþÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çèôâýÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè:þýÿ‹UüH‹…ÈïÿÿH�5�`H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰ÇèK þÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�â_H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�È_H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèYÿýÿÉÃUH‰åHƒì H‰}è‰uäH�½_H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�i_H‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰ÇèsÎýÿ‹UðH‹Eø‰ÖH‰ÇèbÎýÿ‹UôH‹Eø‰ÖH‰Çè÷ýÿ‹UðH‹Eø‰ÖH‰Çè÷ýÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰ÇèäÊýÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�òU¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�bU¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰ÇèÎÉýÿH‹Eø¾þÿÿÿH‰Çè Åýÿ‹UôH‹Eø‰ÖH‰Çè\éýÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰ÇèvÍýÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èeÚýÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çè§³ýÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH��T‰ÎH‰ÇèǺýÿ…À…�‹UäH‹Eè‰ÖH‰ÇèÞ±ýÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5TH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè†Ëýÿé3‹UäH‹Eè‰ÖH‰Çèðºýÿ…ÀtH‹EèºH�5ÛSH‰ÇèÈ÷ÿÿéH‹EèºH�5ÃSH‰Çè«÷ÿÿéä‹MäH‹EèH�®S‰ÎH‰Çèš×ýÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çèõ°ýÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çè¿­ýÿë‹UüH‹Eè‰ÖH‰Çè\ÍýÿH‰Eð‹UäH‹Eè‰ÖH‰Çè÷àýÿH‰ÁH‹UðH‹EèH�56SH‰Ç¸è¸Þýÿƒ}øtCH‹Eè¾þÿÿÿH‰ÇèAóýÿ�ë/H‹Eè¾ÿÿÿÿH‰Çè�ñýÿ…ÀuH‹EèH�5öRH‰Ç¸èÑÕýÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè­ýÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�ER¾H‰ÇèÏßÿÿH‹EøH�·R¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèK®ýÿH‹Eø¾ÿÿÿÿH‰Ç躯ýÿ…À…ŽH‹Eø¾þÿÿÿH‰Çè1ïýÿH‹MèH‹EøºH‰ÎH‰Çè9üýÿH‹UðH‹EøH‰ÖH‰Çè–ÏýÿH‹Eøº¾ÿÿÿÿH‰ÇèP¬ýÿH‹Eøº¾H‰ÇèÚáýÿH‹Eø¾ÿÿÿÿH‰ÇèIÉýÿH‹UðH‹Eø¾ýÿÿÿH‰Ç褸ýÿƒ}ät&H‹Eø¾ÿÿÿÿH‰ÇèÉýÿH‹UðH‹Eø¾îØÿÿH‰Çèx¸ýÿH‹Eø¾þÿÿÿH‰Çè·ñýÿ�ÉÃUH‰åHƒì H‰}èH‹Eè¾H‰ÇèÇ®ýÿƒøÿtH‹Eè¾H‰ÇèA¸ýÿ븉EüH‹E躾H‰Çèáãýÿƒ}üt H‹¼·)H‰Áë H‹ø·)H‰ÁH‹EèH‰ÂH‰Î¿è!´ýÿ¸ÉÃUH‰åHƒì H‰}èH‹E躾H‰ÇèèçýÿH‰EøHƒ}øt5H‹Eè¾H‰Çè\ÌýÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5ÔPH‰ÇèÚ©ýÿë H‹EèH‰ÇèÇýÿ¸ÉÃUH‰åHƒì0H‰}ØH‹Eغ¾H‰ÇèsçýÿH‰EðÇEüH‹EؾH‰Çè§­ýÿ…À~H‹EغH�5xPH‰Çèû¬ýÿH‹ë¸H‰Eèèx×ýÿH‰EàHƒ}à„¾H‹EàH‰ÇèýâýÿH‹UèH‹EØH‰ÖH‰ÇèêàýÿH‹UàH‹EؾðØÿÿH‰ÇèÜÿÿH‹UèH‹MðH‹EàH‰ÎH‰ÇèÎÇýÿ‰Eüƒ}üuJHƒ}àt5H‹EؾH‰Çè=ËýÿH‰ÂH‹EàH‰H‹EغÿÿÿÿH�5×OH‰Ç軨ýÿë.H‹EØH‰ÇèýÅýÿë H‹EàH‰Çèÿñýÿ‹UüH‹E؉ÖH‰ÇèŽÚýÿ‰Eü‹EüÉÃUH‰åH�ìH‰½øþÿÿÇEŒ@H‹…øþÿÿº¾H‰Çè$æýÿH‰EøH�UÐH‹…øþÿÿ¾H‰Çè8ºýÿH‰EðH‹…øþÿÿ¾H‰Çè@¬ýÿƒøÿtH‹…øþÿÿ¾H‰Çè·µýÿ븉EìH‹…øþÿÿ¾H‰Çè ¬ýÿ…À~ H‹…øþÿÿºH�5×NH‰ÇèZ«ýÿH‹ë¸H‰EàH‹uÐL‹EàH‹}øH�MŒH�U�H‹EðM‰ÁI‰øH‰Ç覿ýÿ‰E܃}Üuoƒ}ìt‹EŒ‰ÂH�M�H‹…øþÿÿH‰ÎH‰ÇèòÿÿëL‹EŒ‰ÁH�•ÿÿÿH�E�‰ÎH‰ÇèÛýÿH�•ÿÿÿH‹…øþÿÿH‰ÖH‰ÇèwËýÿH‹…øþÿÿº¾ÿÿÿÿH‰Çè.¨ýÿƒ}Üt‹UÜH‹…øþÿÿ‰ÖH‰ÇèÙýÿë¸ÉÃUH‰åHƒì@H‰}ÈH‹EȾH‰Çèþªýÿ…ÀtH‹EȺ¾H‰Çè”äýÿë¸H‰EðH‹EȺH�5ÔMH‰Çè1ªýÿH‹H‰EèH‹EÈH‰Çè®Áýÿƒø~H‹EȺH�5~MH‰ÇèªýÿH‹ë¸H‰Eàè~ÔýÿH‰EØÇEüHƒ}Ø„“H‹EØH‰ÇèüßýÿH‹uèH‹MàH‹UðH‹EØI‰ð¾H‰Çè<¸ýÿ‰Eüƒ}üuJHƒ}Øt5H‹EȾH‰Çè[ÈýÿH‰ÂH‹EØH‰H‹EȺÿÿÿÿH�5õLH‰ÇèÙ¥ýÿë"H‹EÈH‰ÇèÃýÿë‹UüH‹EȉÖH‰Çè¸×ýÿ‰Eü‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȾH‰Ç賩ýÿ…ÀtH‹EȺ¾H‰ÇèIãýÿë¸H‰EðH‹EȺH�5‰LH‰Çèæ¨ýÿH‹H‰EèH‹EÈH‰ÇècÀýÿƒø~H‹EȺH�53LH‰Ç趨ýÿH‹ë¸H‰EàHÇEÐè+ÓýÿH‰EØÇEüHƒ}Ø„’H‹EØH‰Çè©ÞýÿH‹}èH‹MàH‹UðH�uÐH‹EØI‰øH‰Çè ¼ýÿ‰Eüƒ}ütJHƒ}Øt5H‹EȾH‰Çè ÇýÿH‰ÂH‹EØH‰H‹EȺÿÿÿÿH�5£KH‰Ç臤ýÿë"H‹EÈH‰ÇèÉÁýÿë‹UüH‹EȉÖH‰ÇèfÖýÿ‰Eü‹EüÉÃUH‰åH�ì�H‰½xÿÿÿH‹…xÿÿÿºH�5+KH‰ÇèÁ§ýÿH‹H‰EðH�UØH‹…xÿÿÿ¾H‰Çè¶ýÿH‰EèH‹…xÿÿÿ¾H‰Çè¨ýÿ…À~ H‹…xÿÿÿºH�5èJH‰Çèk§ýÿH‹ë¸H‰EàÇEŒ@H‹uØL‹EàH‹}ðH�MŒH�U�H‹EèM‰ÁI‰øH‰Çè°»ýÿ‰Eüƒ}üu‹EŒ‰ÂH�M�H‹…xÿÿÿH‰ÎH‰Çè îÿÿë‹UüH‹…xÿÿÿ‰ÖH‰ÇèfÕýÿ‰Eü‹EüÉÃUH‰åHƒì0H‰}ØH‹EغH�54JH‰ÇèʦýÿH‹H‰EøH‹Eغ¾H‰Çè�ÜýÿÇEôþÿÿÿH‹EøH‰ÇèÊâýÿHcÐH‹EØH‰ÖH‰Çèø½ýÿ‹MôH‹EØH�&J‰ÎH‰Ç耰ýÿÇEðþÿÿÿH‹EøH‰ÇèÝìýÿH‰ÂH‹EØH‰ÖH‰ÇèûÆýÿH‹Eغ¾ÿÿÿÿH‰Çèµ£ýÿ‹MðH‹EØH�×I‰ÎH‰Çè-°ýÿÇEìþÿÿÿH‹EøH‰Çèú¯ýÿHcÐH‹EØH‰ÖH‰Çèh½ýÿ‹MìH‹EØH�ŸI‰ÎH‰Çèð¯ýÿÇEèþÿÿÿH‹EøH‰Çèý¤ýÿHcÐH‹EØH‰ÖH‰Çè+½ýÿ‹MèH‹EØH�gI‰ÎH‰Ç賯ýÿÇEäþÿÿÿH‹EøH‰ÇèpÙýÿHcÐH‹EØH‰ÖH‰Çèî¼ýÿ‹MäH‹EØH�5I‰ÎH‰Çèv¯ýÿÇEàþÿÿÿH‹EøH‰ÇèƒáýÿHcÐH‹EØH‰ÖH‰Çè±¼ýÿ‹MàH‹EØH�I‰ÎH‰Çè9¯ýÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5hHH‰Çèþ¤ýÿH‹H‰EðH‹EؾH‰Çèv¥ýÿ…À~H‹EغH�5GHH‰ÇèʤýÿH‹ë¸H‰EèÇEüè@ÏýÿH‰EàHƒ}à„–H‹EàH‰ÇèÅÚýÿH‹UèH‹MðH‹EàH‰ÎH‰Ç辿ýÿ‰Eüƒ}üuJHƒ}àt5H‹EؾH‰Çè-ÃýÿH‰ÂH‹EàH‰H‹EغÿÿÿÿH�5ÇGH‰Çè« ýÿë.H‹EØH‰Çèí½ýÿë H‹EàH‰Çèïéýÿ‹UüH‹E؉ÖH‰Çè~Òýÿ‰Eü‹EüÉÃUH‰åHƒì0H‰}ØH‹EغH�5nGH‰Çèâ£ýÿH‹H‰EøH‹EøH‰Çè/áýÿH‰EðH‹Eغ¾H‰Çè•ÙýÿÇEìþÿÿÿH‹EøH‰ÇèáýÿH‰ÇèÊ¢ýÿHcÐH‹EØH‰ÖH‰Çèøºýÿ‹MìH‹EØH�4G‰ÎH‰Ç耭ýÿÇEèþÿÿÿH‹EøH‰ÇèMêýÿHcÐH‹EØH‰ÖH‰Ç軺ýÿ‹MèH‹EØH�òF‰ÎH‰ÇèC­ýÿÇEäþÿÿÿH‹EøH‰Çè€àýÿH‰ÇèHßýÿHcÐH‹EØH‰ÖH‰Çèvºýÿ‹MäH‹EØH�ÍF‰ÎH‰Çèþ¬ýÿÇEàþÿÿÿHƒ}ðt5H‹EؾH‰ÇèŸÁýÿH‰ÂH‹EðH‰H‹EغÿÿÿÿH�5FH‰ÇèŸýÿë H‹EØH‰Çè_¼ýÿ‹MàH‹EØH�kF‰ÎH‰Çè—¬ýÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5èEH‰Çè\¢ýÿH‹H‰EøH�UàH‹EؾH‰Çè°°ýÿH‰EðH‹UàH‹MðH‹EøH‰ÎH‰Çèîýÿ‰Eì‹UìH‹E؉ÖH‰Çèaçýÿ¸ÉÃUH‰åH�ìH‰½øþÿÿH‹…øþÿÿºH�5iEH‰ÇèÝ¡ýÿH‹H‰EðÇEœ@ÇEüÇEøH‹…øþÿÿ¾H‰Çè}ãýÿ…À„‘H�U�H‹…øþÿÿ¾H‰Çèý¯ýÿH‰EèH‹U�H‹MèH‹EðH‰ÎH‰Çèbíýÿ‰Eüƒ}üt‹UüH‹…øþÿÿ‰ÖH‰ÇèÅÏýÿ‰EüéEH‹…øþÿÿ¾H‰ÇèÉ¡ýÿƒøÿtH‹…øþÿÿ¾H‰Çè@«ýÿ븉EøëdH‹…øþÿÿH‰Ç蕸ýÿƒø~H‹…øþÿÿ¾H‰Çè «ýÿ‰Eøë7H‹…øþÿÿ¾H‰Çèc¡ýÿƒøÿtH‹…øþÿÿ¾H‰ÇèÚªýÿ븉EøH�UœH�M H‹EðH‰ÎH‰Çè¶ýÿ‰Eüƒ}üuqƒ}øt‹Eœ‰ÂH�M H‹…øþÿÿH‰ÎH‰Çèƒçÿÿëe‹Eœ‰ÁH�•ÿÿÿH�E ‰ÎH‰ÇèƒÐýÿH�•ÿÿÿH‹…øþÿÿH‰ÖH‰ÇèêÀýÿH‹…øþÿÿº¾ÿÿÿÿH‰Çè¡�ýÿë‹UüH‹…øþÿÿ‰ÖH‰Çè{Îýÿ‰Eü‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5kCH‰ÇèߟýÿH‹H‰EøH‹EèH‰Ç茹ýÿH‹UøH‹Eè¾ðØÿÿH‰Çè$ÏÿÿH‹EøH‰Çè{åýÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5 CH‰Ç耟ýÿH‹H‰EøH‹EøH‰ÇèÍÜýÿH‰EðHÇEèH‹UøH‹EؾðØÿÿH‰ÇèJÎÿÿH‹EؾÿÿÿÿH‰ÇèÐýÿH‰EèH‹EøH‰Çè[Õýÿ‰Eäƒ}ät#H‹EøH‰ÇèFÕýÿH‹UèH‹MðH‹EøH‰ÎH‰Çè?ºýÿ‹UäH‹E؉ÖH‰Çè^ÍýÿÉÃUH‰åSHƒì8H‰}ÈH‹EȺH�5SBH‰ÇèÇžýÿH‹H‰EèH‹EèH‰ÇèÜýÿH‰EàH‹EàH‰Çè4²ýÿH˜H‰EÐH‹EÐH…Àu ¸éÇH‹EȾH‰Çè Ÿýÿƒøÿu*H‹]ÐH‹EèH‰Çè¤ýÿH‰ÁH‹EÈH‰ÚH‰ÎH‰Çèdåÿÿé‚H�UÐH‹EȾH‰Ç覬ýÿH‰EØH‹EàH‰Çè¶±ýÿHcÐH‹EÐH9ÂtH‹EÈH�ðA¾H‰Çèò£ýÿ…À�H‹]ÐH‹EèH‰Çè�£ýÿH‰ÁH‹EØH‰ÚH‰ÆH‰ÏèZ»ýÿH‹EȾH‰Çèãýÿ¸HƒÄ8[]ÃUH‰åHƒì0H‰}ØH‹EغH�5%AH‰Çè™�ýÿH‹H‰EøH�UàH‹EؾH‰Çèí«ýÿH‰EðH‹UàH‹MðH‹EøH‰ÎH‰Çèšýÿ‰Eì‹UìH‹E؉ÖH‰Çè¾ËýÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5´@H‰Çè(�ýÿH‹H‰EøH�UàH‹EؾH‰Çè|«ýÿH‰EðH‹UàH‹MðH‹EøH‰ÎH‰ÇèÁ™ýÿ‰Eì‹UìH‹E؉ÖH‰ÇèMËýÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5C@H‰Çè·œýÿH‹H‰EðHÇEàH�UàH‹Eð¾H‰Çèãâýÿ‰Eüƒ}üuwH‹EàºH�5f@H‰ÇèbåýÿH‰EèH�UàH‹MèH‹EðH‰ÎH‰Çè§âýÿ‰Eüƒ}üuH‹UàH‹MèH‹EØH‰ÎH‰ÇèKãÿÿH‹Eèº#H�5@H‰Çè�²ýÿH‹EðH‰ÇèCÒýÿƒ}üt‹UüH‹E؉ÖH‰ÇèlÊýÿë¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5[?H‰ÇèÏ›ýÿH‹H‰EøH�UàH‹EؾH‰Çè#ªýÿH‰EðH‹UàH‹MðH‹EøH‰ÎH‰Çè˜Êýÿ‰EìH‹EøH‰Çè¹Ñýÿ‹UìH‹E؉ÖH‰ÇèèÉýÿÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5Þ>H‰ÇèR›ýÿH‹H‰EðH�UØH‹EȾH‰Ç覩ýÿH‰EèHÇEÐH‹uØH‹MèH�UÐH‹EðI‰ð¾H‰ÇèÚ–ýÿ‰Eüƒ}üuH‹Eк_H�5Ý>H‰ÇèÙãýÿH‰EàH‹}ØH‹MèH�UÐH‹uàH‹EðI‰øH‰Çè––ýÿ‰Eüƒ}üuH‹UÐH‹MàH‹EÈH‰ÎH‰ÇèºáÿÿH‹EàºeH�5‚>H‰Çèþ°ýÿH‹EðH‰Çè²Ðýÿƒ}üt‹UüH‹EȉÖH‰ÇèÛÈýÿë¸ÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5Ê=H‰Çè>šýÿH‹H‰EøH�UØH‹EȾH‰Çè’¨ýÿH‰EðH�UÐH‹EȾH‰Çèy¨ýÿH‰EèH‹}ÐH‹UØH‹MèH‹uðH‹EøI‰øH‰Ç覚ýÿ‰EäH‹EøH‰ÇèÐýÿƒ}äy‹UäH‹EȉÖH‰Çè0Èýÿë‹UäH‹EȉÖH‰ÇèýÞýÿ‹EäÉÃUH‰åHƒìH‰}øH‹EøH��Þ)H�5ì<H‰Ç袯ýÿH‹EøH�çÞ)H�5ô<H‰Ç舯ýÿH‹Eøº¾H‰Çè2ÏýÿH‹EøºH�5Ò•)H‰ÇèÎËÿÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰ÇèM¦ýÿH‹Eð¶„Àu ‹Eü‰Çè( ýÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰ÇèF°ýÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çèú˜ýÿƒøtbH‹Eø¾þÿÿÿH‰ÇètØýÿH‹UèH‹uðH‹EøH� Ñ<H‰ÇèIÚýÿ…Àt H‹EøH‰Çè ¨ýÿH‹Eø¾ÿÿÿÿH‰Ç踲ýÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Ç讪ýÿ‹Uà‹MäH‹Eø‰ÎH‰ÇèúÊýÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5A=H‰Ç¸èĽýÿH‹EøH�M=¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çè²ýÿò*EôH‹EøH‰Çèd™ýÿH‹Eø¾ýÿÿÿH‰ÇèªýÿH‹EøA¸¹ºÛH�5è;H‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çè7Ûýÿéå‹Uà‹MäH‹Eè‰ÎH‰ÇèÞŸýÿéÌH‹EèH�r<¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çè±ýÿ‹UàH‹Eè‰ÖH‰Çè±ýÿH‹EèA¸¹ºH�5<H‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰ÇèS ýÿ‰EüH‹Eè¾þÿÿÿH‰Çè?Öýÿ‹EüëH‹EèH�5ÿ;H‰Ç¸è"¼ýÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�~;¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰ÇèL°ýÿ‹UüH‹Eè‰ÖH‰ÇèûØýÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè–ýÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çèp¶ýÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè#—ýÿ龋MôH‹EøH�&;‰ÎH‰Çèfžýÿ…À…š‹UôH‹Eø‰ÖH‰Çè ¶ýÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèÀ–ýÿëZ‹MôH‹EøH�Æ:‰ÎH‰Çèžýÿ…ÀuA‹UôH‹Eø‰ÖH‰Çè!•ýÿ‰ÂH‹Eø‰ÖH‰Çè±±ýÿH‰ÂH‹EøH�5“:H‰Ç¸è†ºýÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰ÇèSÈýÿ‹UüH‹Eè‰ÖH‰Çè‚·ýÿH‹Eè¾ÿÿÿÿH‰Çè‘”ýÿH‹Eè¾ÿÿÿÿH‰Ç耔ýÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�p9¾H‰Çè»H‹UØH‹EèH‰ÖH‰ÇèÌÇýÿH‹Eè¾þÿÿÿH‰ÇèK¦ýÿ‹UüH‹Eè‰ÖH‰Çèú¯ýÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çès”ýÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çè³ýÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè�Åýÿ…ÀuIHƒ}ètH‹UèH‹EøH�5÷8H‰Ç¸èƸýÿë$H‹EøºH�5ì8H‰ÇèEH‹EøH‰Çè`¢ýÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�ÿ7¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰ÇèÛ²ýÿH‹E躾ÿÿÿÿH‰Çè•�ýÿ‹UüH‹Eè‰ÖH‰ÇèäÙýÿH‹Eè¾ÿÿÿÿH‰Ç胒ýÿH‹Eè¾ÿÿÿÿH‰Çèr’ýÿƒøu¸ëwH‹Eè¾þÿÿÿH‰ÇèåÑýÿH‹E躾H‰Çè�ÇýÿH‹UØH‹EèH‰ÖH‰ÇèL²ýÿH‹E躾ÿÿÿÿH‰Çè�ýÿH‹Eè¾þÿÿÿH‰Çè¬ýÿ‹UüH‹Eè‰ÖH‰Çè„Èýÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�è6¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè Ñýÿ‹Eô…ÀuH‹EèH�5B7H‰Ç¸èí¶ýÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�+7‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰Çè.±ýÿH‹E躾ÿÿÿÿH‰Çèè�ýÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèêªýÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰ÇèdÝýÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Çè,ÇýÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèÐýÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�x5¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰Ç貎ýÿH‹Eø¾ÿÿÿÿH‰Çè!�ýÿH‹Eø¾þÿÿÿH‰ÇèPÙýÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè™ÈýÿH‰EøH‹EèH�þ4¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çèu¦ýÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰ÇèŽýÿH‹Eè¾ÿÿÿÿH‰Çè}�ýÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çè÷žýÿ‰EôH‹Eè¾ýÿÿÿH‰ÇèãÎýÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çè �ýÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰ÇèÔ�ýÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰ÇèvŽýÿƒøt ¸éüH‹EøH‰Çè‹§ýÿéÍH‹Eø¾þÿÿÿH‰ÇèEŽýÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çè¶�ýÿ…ÀtH‹Eø¾þÿÿÿH‰Çè¡Íýÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çè«ÙýÿH‹EøºH�5Õ3H‰ÇèìH‹Eø¾þÿÿÿH‰ÇèâŸýÿH‹Eø¾H‰Çè¡Ìýÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèÍýÿH‹Eø¾þÿÿÿH‰Çè(Ðýÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèM¤ýÿ‰EüH‹UàH‹EèH�5G3H‰ÇèüýÿH‹Eè¾îØÿÿH‰Çè2§ýÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰ÇèmÌýÿ¸ë‹UüH‹Eè‰ÖH‰ÇèUÌýÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5š2H‰Ç¸è¯ºýÿéÜH‹EðH‹@¶H‹EèH‹@H‰Çè"‡ýÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè‡ýÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çè›ýÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5¶*H‰ÇèH‹\�)H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5�*H‰Ç¸èî±ýÿH‹…ÀïÿÿH�5v*H‰Çèè¯ýÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5L*H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5Ý)H‰ÇèØ©ýÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5´)H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰ÇèjýÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰ÇèkËýÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰ÇèO¦ýÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè•Áýÿ‹UüH‹…ÈïÿÿH�5Ë(H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çè¦Íýÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�(H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�(H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çè´ÂýÿÉÃUH‰åHƒì H‰}è‰uäH�ø'H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�¤'H‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰ÇèΑýÿ‹UðH‹Eø‰ÖH‰Ç轑ýÿ‹UôH‹Eø‰ÖH‰Çèlºýÿ‹UðH‹Eø‰ÖH‰Çè[ºýÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çè?Žýÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�-¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH��¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çè)�ýÿH‹Eø¾þÿÿÿH‰Çèhˆýÿ‹UôH‹Eø‰ÖH‰Çè·¬ýÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰ÇèÑ�ýÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èÀ�ýÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèwýÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�¼‰ÎH‰Çè"~ýÿ…À…�‹UäH‹Eè‰ÖH‰Çè9uýÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5ZH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰ÇèáŽýÿé3‹UäH‹Eè‰ÖH‰ÇèK~ýÿ…ÀtH‹EèºH�5H‰ÇèÈ÷ÿÿéH‹EèºH�5þH‰Çè«÷ÿÿéä‹MäH‹EèH�é‰ÎH‰Çèõšýÿ…ÀtH‹Eè¾ÿÿÿÿH‰ÇèPtýÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çèqýÿë‹UüH‹Eè‰ÖH‰Çè·�ýÿH‰Eð‹UäH‹Eè‰ÖH‰ÇèR¤ýÿH‰ÁH‹UðH‹EèH�5qH‰Ç¸è¢ýÿƒ}øtCH‹Eè¾þÿÿÿH‰Ç蜶ýÿ�ë/H‹Eè¾ÿÿÿÿH‰Çèø´ýÿ…ÀuH‹EèH�51H‰Ç¸è,™ýÿë�H‹UØH‹Eè¾ÿÿÿÿH‰ÇètpýÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�€¾H‰ÇèÏßÿÿH‹EøH�ò¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çè¦qýÿH‹Eø¾ÿÿÿÿH‰Çèsýÿ…À…ŽH‹Eø¾þÿÿÿH‰Ç茲ýÿH‹MèH‹EøºH‰ÎH‰Ç蔿ýÿH‹UðH‹EøH‰ÖH‰Çèñ’ýÿH‹Eøº¾ÿÿÿÿH‰Çè«oýÿH‹Eøº¾H‰Çè5¥ýÿH‹Eø¾ÿÿÿÿH‰Ç褌ýÿH‹UðH‹Eø¾ýÿÿÿH‰Çèÿ{ýÿƒ}ät&H‹Eø¾ÿÿÿÿH‰ÇèxŒýÿH‹UðH‹Eø¾îØÿÿH‰ÇèÓ{ýÿH‹Eø¾þÿÿÿH‰Çèµýÿ�ÉÃUH‰åHƒì H‰}èH‹EèºH�5ÕH‰Çè‹qýÿH‹H‰EøH‹EøH‰Çèx³ýÿ¸ÉÃUH‰åHƒìpH‰}˜HÇEÈHÇEÀHÇE¸HÇE°HÇE¨H‹E˜ºH�5oH‰Çè%qýÿH‹H‰EøH‹E˜º¾H‰Çèè¦ýÿH‹EøH‰Çè\”ýÿHcÐH‹E˜H‰ÖH‰ÇèZˆýÿH‹E˜H�-¾þÿÿÿH‰ÇèâzýÿH�M¸H�UÀH�uÈH‹EøH‰Çè*¿ýÿH�U¨H�M°H‹EøH‰ÎH‰ÇèSœýÿH‹EÈH…ÀtpH‹EÈH‰Çèž—ýÿH‰EðHƒ}ðt5H‹E˜¾H‰ÇèB�ýÿH‰ÂH‹EðH‰H‹E˜ºÿÿÿÿH�5«H‰ÇèÀlýÿë H‹E˜H‰ÇèŠýÿH‹E˜H�•¾þÿÿÿH‰Çè:zýÿH‹EÀH…ÀtpH‹EÀH‰Çè%—ýÿH‰EèHƒ}èt5H‹E˜¾H‰ÇèÉŽýÿH‰ÂH‹EèH‰H‹E˜ºÿÿÿÿH�52H‰ÇèGlýÿë H‹E˜H‰Ç艉ýÿH‹E˜H�¾þÿÿÿH‰ÇèÁyýÿH‹E¸H…ÀtpH‹E¸H‰Ç謖ýÿH‰EàHƒ}àt5H‹E˜¾H‰ÇèPŽýÿH‰ÂH‹EàH‰H‹E˜ºÿÿÿÿH�5¹H‰ÇèÎkýÿë H‹E˜H‰Çè‰ýÿH‹E˜H�§¾þÿÿÿH‰ÇèHyýÿH‹E¨H…ÀtpH‹E¨H‰Çè3–ýÿH‰EØHƒ}Øt5H‹E˜¾H‰Çè×�ýÿH‰ÂH‹EØH‰H‹E˜ºÿÿÿÿH�5@H‰ÇèUkýÿë H‹E˜H‰Çè—ˆýÿH‹E˜H�0¾þÿÿÿH‰ÇèÏxýÿH‹E°H…ÀtpH‹E°H‰Ç躕ýÿH‰EÐHƒ}Ðt5H‹E˜¾H‰Çè^�ýÿH‰ÂH‹EÐH‰H‹E˜ºÿÿÿÿH�5ÇH‰ÇèÜjýÿë H‹E˜H‰ÇèˆýÿH‹E˜H�À¾þÿÿÿH‰ÇèVxýÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5eH‰ÇènýÿH‹H‰EøH‹EغH�5yH‰ÇèümýÿH‹H‰EðH‹EðH‰ÇèœýÿH‰EèHƒ}èt)H‹UèH‹EøH‰ÖH‰Çèmýÿ‰Eä‹UäH‹E؉ÖH‰Çè'œýÿë¸ÉÃUH‰åHƒì@H‰}ÈH‹EȺ¾H‰Çèìsýÿ‰EøHÇEØH�UØH‹EÈH‰Ñº¾H‰Çè„ýÿH‰EðH‹EȾH‰Çèßmýÿ…À~H‹EȺH�5°H‰Çè3mýÿH‹ë¸H‰EèHƒ}ètH‹EèH‰ÇèRoýÿëè;•ýÿH‰EàH‹E؉ÁH‹Uð‹uøH‹EàHƒìjA¹A¸H‰Çè,uýÿHƒÄ‰Eüƒ}üuH‹EàH‰Çèólýÿ‰Eüƒ}üuOHƒ}àt5H‹EȾH‰Çèr‹ýÿH‰ÂH‹EàH‰H‹EȺÿÿÿÿH�5ÊH‰Çèðhýÿë H‹EÈH‰Çè2†ýÿ¸ëH‹EàH‰Çè_®ýÿ‹UüH‹EȉÖH‰Ç辚ýÿÉÃUH‰åHƒìH‰}øH‹EøH�¥²)H�5pH‰ÇèF‚ýÿH‹Eøº¾H‰Çèð¡ýÿH‹EøºH�5в)H‰Çè1Ûÿÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰Çè yýÿH‹Eð¶„Àu ‹Eü‰ÇèærýÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰ÇèƒýÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè¸kýÿƒøtbH‹Eø¾þÿÿÿH‰Çè2«ýÿH‹UèH‹uðH‹EøH� ¯H‰Çè­ýÿ…Àt H‹EøH‰ÇèÇzýÿH‹Eø¾ÿÿÿÿH‰Çèv…ýÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Çèl}ýÿ‹Uà‹MäH‹Eø‰ÎH‰Çè¸�ýÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5H‰Ç¸è‚�ýÿH‹EøH�+¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰ÇèÓ„ýÿò*EôH‹EøH‰Çè"lýÿH‹Eø¾ýÿÿÿH‰ÇèÑ|ýÿH‹EøA¸¹ºÛH�5ÆH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çèõ­ýÿéå‹Uà‹MäH‹Eè‰ÎH‰ÇèœrýÿéÌH‹EèH�P¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰ÇèÖƒýÿ‹UàH‹Eè‰ÖH‰ÇèŃýÿH‹EèA¸¹ºH�5úH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çèsýÿ‰EüH‹Eè¾þÿÿÿH‰Çèý¨ýÿ‹EüëH‹EèH�5ÝH‰Ç¸èàŽýÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�\¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çè ƒýÿ‹UüH‹Eè‰ÖH‰Ç蹫ýÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰ÇèÆhýÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çè.‰ýÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çèáiýÿ龋MôH‹EøH�‰ÎH‰Çè$qýÿ…À…š‹UôH‹Eø‰ÖH‰ÇèˈýÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè~iýÿëZ‹MôH‹EøH�¤‰ÎH‰ÇèÄpýÿ…ÀuA‹UôH‹Eø‰ÖH‰Çèßgýÿ‰ÂH‹Eø‰ÖH‰Çèo„ýÿH‰ÂH‹EøH�5qH‰Ç¸èD�ýÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çè›ýÿ‹UüH‹Eè‰ÖH‰Çè@ŠýÿH‹Eè¾ÿÿÿÿH‰ÇèOgýÿH‹Eè¾ÿÿÿÿH‰Çè>gýÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�N¾H‰Çè»H‹UØH‹EèH‰ÖH‰Ç芚ýÿH‹Eè¾þÿÿÿH‰Çè yýÿ‹UüH‹Eè‰ÖH‰Ç踂ýÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè1gýÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰ÇèÚ…ýÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè[˜ýÿ…ÀuIHƒ}ètH‹UèH‹EøH�5ÕH‰Ç¸è„‹ýÿë$H‹EøºH�5ÊH‰ÇèEH‹EøH‰Çèuýÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�ݾH‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè™…ýÿH‹E躾ÿÿÿÿH‰ÇèSbýÿ‹UüH‹Eè‰ÖH‰Ç袬ýÿH‹Eè¾ÿÿÿÿH‰ÇèAeýÿH‹Eè¾ÿÿÿÿH‰Çè0eýÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Ç裤ýÿH‹E躾H‰ÇèMšýÿH‹UØH‹EèH‰ÖH‰Çè …ýÿH‹E躾ÿÿÿÿH‰ÇèÄaýÿH‹Eè¾þÿÿÿH‰ÇèÓ~ýÿ‹UüH‹Eè‰ÖH‰ÇèB›ýÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�Æ ¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰ÇèÊ£ýÿ‹Eô…ÀuH‹EèH�5 H‰Ç¸è«‰ýÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH� ‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰ÇèìƒýÿH‹E躾ÿÿÿÿH‰Çè¦`ýÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè¨}ýÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè"°ýÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Çèê™ýÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèÀ¢ýÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�V ¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰ÇèpaýÿH‹Eø¾ÿÿÿÿH‰ÇèßbýÿH‹Eø¾þÿÿÿH‰Çè¬ýÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèW›ýÿH‰EøH‹EèH�Ü ¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çè3yýÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰ÇèÌ`ýÿH‹Eè¾ÿÿÿÿH‰Çè;býÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çèµqýÿ‰EôH‹Eè¾ýÿÿÿH‰Çè¡¡ýÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰ÇèÇbýÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çè’býÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çè4aýÿƒøt ¸éüH‹EøH‰ÇèIzýÿéÍH‹Eø¾þÿÿÿH‰Çèaýÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çètpýÿ…ÀtH‹Eø¾þÿÿÿH‰Çè_ ýÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çèi¬ýÿH‹EøºH�5³ H‰ÇèìH‹Eø¾þÿÿÿH‰Çè rýÿH‹Eø¾H‰Çè_Ÿýÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèןýÿH‹Eø¾þÿÿÿH‰Çèæ¢ýÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çè wýÿ‰EüH‹UàH‹EèH�5% H‰Çè��ýÿH‹Eè¾îØÿÿH‰Çèðyýÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çè+Ÿýÿ¸ë‹UüH‹Eè‰ÖH‰ÇèŸýÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5x H‰Ç¸èm�ýÿéÜH‹EðH‹@¶H‹EèH‹@H‰ÇèàYýÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰ÇèÁYýÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèÜmýÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5”H‰ÇèH‹`)H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5kH‰Ç¸è¬„ýÿH‹…ÀïÿÿH�5TH‰Ç覂ýÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5*H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5»H‰Çè–|ýÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5’H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè(RýÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè)žýÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çè yýÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰ÇèS”ýÿ‹UüH‹…ÈïÿÿH�5©ÿH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çèd ýÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�ûþH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�áþH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çèr•ýÿÉÃUH‰åHƒì H‰}è‰uäH�ÖþH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�‚þH‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰ÇèŒdýÿ‹UðH‹Eø‰ÖH‰Çè{dýÿ‹UôH‹Eø‰ÖH‰Çè*�ýÿ‹UðH‹Eø‰ÖH‰Çè�ýÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çèý`ýÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH� õ¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�{ô¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çèç_ýÿH‹Eø¾þÿÿÿH‰Çè&[ýÿ‹UôH‹Eø‰ÖH‰Çèuýÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè�cýÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'è~pýÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèÀIýÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�šó‰ÎH‰ÇèàPýÿ…À…�‹UäH‹Eè‰ÖH‰Çè÷Gýÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�58óH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰ÇèŸaýÿé3‹UäH‹Eè‰ÖH‰Çè Qýÿ…ÀtH‹EèºH�5ôòH‰ÇèÈ÷ÿÿéH‹EèºH�5ÜòH‰Çè«÷ÿÿéä‹MäH‹EèH�Çò‰ÎH‰Çè³mýÿ…ÀtH‹Eè¾ÿÿÿÿH‰ÇèGýÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰ÇèØCýÿë‹UüH‹Eè‰ÖH‰ÇèucýÿH‰Eð‹UäH‹Eè‰ÖH‰ÇèwýÿH‰ÁH‹UðH‹EèH�5OòH‰Ç¸èÑtýÿƒ}øtCH‹Eè¾þÿÿÿH‰ÇèZ‰ýÿ�ë/H‹Eè¾ÿÿÿÿH‰Ç趇ýÿ…ÀuH‹EèH�5òH‰Ç¸èêkýÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè2CýÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�^ñ¾H‰ÇèÏßÿÿH‹EøH�Ðñ¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèdDýÿH‹Eø¾ÿÿÿÿH‰ÇèÓEýÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèJ…ýÿH‹MèH‹EøºH‰ÎH‰ÇèR’ýÿH‹UðH‹EøH‰ÖH‰Çè¯eýÿH‹Eøº¾ÿÿÿÿH‰ÇèiBýÿH‹Eøº¾H‰ÇèówýÿH‹Eø¾ÿÿÿÿH‰Çèb_ýÿH‹UðH‹Eø¾ýÿÿÿH‰Çè½Nýÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè6_ýÿH‹UðH‹Eø¾îØÿÿH‰Çè‘NýÿH‹Eø¾þÿÿÿH‰ÇèЇýÿ�ÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5³ðH‰ÇèIDýÿH‹H‰EðH‹E¸ºH�5¥ðH‰Çè*DýÿH‹H‰EèÇEüH‹E¸H‰Çè [ýÿƒø…ïè‚týÿH‰EàèytýÿH‰EØH‹MØH‹UàH‹uèH‹EðA¸H‰Çèç‰ýÿƒø…:H‹E¸¾H‰Çè�býÿH‰ÂH‹EàH‰H‹E¸H�,ð¾ðØÿÿH‰Çè«BýÿH‹E¸¾ÿÿÿÿH‰ÇèDýÿH‹E¸¾þÿÿÿH‰ÇèI�ýÿH‹E¸¾H‰Çè8býÿH‰ÂH‹EØH‰H‹E¸H�×ï¾ðØÿÿH‰ÇèVBýÿH‹E¸¾ÿÿÿÿH‰ÇèÅCýÿH‹E¸¾þÿÿÿH‰ÇèôŒýÿÇEüé„H‹E¸ºH�5ŒïH‰ÇèCýÿH‹H‰EÐH‹E¸ºH�5mïH‰ÇèáBýÿH‹H‰EÈH‹MÈH‹UÐH‹uèH‹EðA¸H‰ÇèŒ`ýÿ‰Eüƒ}üuH‹E¸H�58ïH‰Ç¸è»hýÿÇEü‹EüÉÃUH‰åHƒì H‰}èH‹E蹺¾H‰ÇèørýÿH‰EøHƒ}ø„¾H‹EøH‰ÇèŽýÿH‰EðH‹UøH‹EðH‰ÖH‰ÇèÆdýÿH‰EðHƒ}øt5H‹Eè¾H‰Çèê`ýÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5bîH‰Çèh>ýÿë H‹EèH‰Çèª[ýÿHƒ}ðt5H‹Eè¾H‰Çè¢`ýÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5+îH‰Çè >ýÿë H‹EèH‰Çèb[ýÿ¸ë¸ÉÃUH‰åSH�ìˆH‰½xÿÿÿH‹…xÿÿÿºH�5ÐíH‰ÇèfAýÿH‹H‰EèH‹EèH‰Çè#�ýÿH‰EàèªVýÿH‰EØH‹…xÿÿÿº¾H‰Çè wýÿHƒ}à„ŠH‹UèH‹EàH‰ÖH‰ÇèŸcýÿH‰EàÇEÔþÿÿÿHƒ}àt;H‹…xÿÿÿ¾H‰Çè¹_ýÿH‰ÂH‹EàH‰H‹…xÿÿÿºÿÿÿÿH�5?íH‰Çè4=ýÿëH‹…xÿÿÿH‰ÇèsZýÿ‹MÔH‹…xÿÿÿH�Wí‰ÎH‰Çè¨JýÿèqýÿH‰EÈH‹UØH‹MÈH‹EèH‰ÎH‰ÇèˆAýÿÇEÄþÿÿÿHƒ}Èt;H‹…xÿÿÿ¾H‰Çè&_ýÿH‰ÂH‹EÈH‰H‹…xÿÿÿºÿÿÿÿH�5½ìH‰Çè¡<ýÿëH‹…xÿÿÿH‰ÇèàYýÿ‹MÄH‹…xÿÿÿH�Îì‰ÎH‰ÇèJýÿè€pýÿH‰E¸H‹UØH‹M¸H‹EèH‰ÎH‰ÇèFýÿÇE´þÿÿÿHƒ}¸t;H‹…xÿÿÿ¾H‰Çè“^ýÿH‰ÂH‹E¸H‰H‹…xÿÿÿºÿÿÿÿH�5*ìH‰Çè<ýÿëH‹…xÿÿÿH‰ÇèMYýÿ‹M´H‹…xÿÿÿH�Aì‰ÎH‰Çè‚IýÿH‹EèH‰ÇèF=ýÿ‰ÂH‹…xÿÿÿ‰ÖH‰ÇèÝH‹…xÿÿÿH�ì¾þÿÿÿH‰ÇèHIýÿÇE°þÿÿÿH‹EèH‰ÇèUpýÿHcÐH‹…xÿÿÿH‰ÖH‰Çè€Výÿ‹M°H‹…xÿÿÿH�×ë‰ÎH‰ÇèIýÿÇE¬þÿÿÿH‹EèH‰Çè"JýÿHcÐH‹…xÿÿÿH‰ÖH‰Çè=Výÿ‹M¬H‹…xÿÿÿH�›ë‰ÎH‰ÇèÂHýÿH‹EèH‰Çèæ€ýÿ‰ÂH‹…xÿÿÿ‰ÖH‰Çè2H‹…xÿÿÿH�oë¾þÿÿÿH‰ÇèˆHýÿÇE¨þÿÿÿH‹EèH‰ÇèʼnýÿH‰ÃH‹EèH‰Çèv†ýÿH‰ÁH‹…xÿÿÿH‰ÚH‰ÎH‰Çè9ïÿÿ‹M¨H‹…xÿÿÿH�'ë‰ÎH‰Çè3HýÿèžnýÿH‰E è•nýÿH‰E˜èŒnýÿH‰E�H‹}ØH‹M˜H‹U H‹u�H‹EèI‰øH‰ÇèÉ?ýÿH‹…xÿÿÿº¾H‰Çè°sýÿÇEŒþÿÿÿHƒ}�t;H‹…xÿÿÿ¾H‰Çè~\ýÿH‰ÂH‹E�H‰H‹…xÿÿÿºÿÿÿÿH�5êH‰Çèù9ýÿëH‹…xÿÿÿH‰Çè8Wýÿ‹MŒH‹…xÿÿÿH�fê‰ÎH‰ÇèmGýÿÇEˆþÿÿÿHƒ} t;H‹…xÿÿÿ¾H‰Çè \ýÿH‰ÂH‹E H‰H‹…xÿÿÿºÿÿÿÿH�5¢éH‰Çè†9ýÿëH‹…xÿÿÿH‰ÇèÅVýÿ‹MˆH‹…xÿÿÿH�õé‰ÎH‰ÇèúFýÿÇE„þÿÿÿHƒ}˜t;H‹…xÿÿÿ¾H‰Çè˜[ýÿH‰ÂH‹E˜H‰H‹…xÿÿÿºÿÿÿÿH�5/éH‰Çè9ýÿëH‹…xÿÿÿH‰ÇèRVýÿ‹M„H‹…xÿÿÿH�„é‰ÎH‰Çè‡FýÿH‹…xÿÿÿH�né¾þÿÿÿH‰ÇèlFýÿH‹EØH‰Çèuýÿ¸H�Ĉ[]ÃUH‰åHƒì H‰}èH‹EèºH�5‡èH‰Çè<ýÿH‹H‰EøH‹EøH‰Çèz]ýÿ¸ÉÃUH‰åHƒì@H‰}؉uÔH‰UÈH�ôèH‰EàH�òèH‰EèHÇEðH�MàH‹UÈ‹uÔH‹EØH‰ÇèK\ýÿ‰EøÇEüƒ}øu ÇEüë'ƒ}øu ÇEüë‹MÔH‹EØH�¥è‰ÎH‰ÇèkAýÿ‹EüÉÃUH‰åHƒìH‰}ø‰uôƒ}ôu+H‹EøH�5aèH‰Çèþ[ýÿH‹Eøº¾ÿÿÿÿH‰Çè¸8ýÿë=ƒ}ôu+H‹EøH�59èH‰ÇèÍ[ýÿH‹Eøº¾ÿÿÿÿH‰Çè‡8ýÿë H‹EøH‰Çè¹Týÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�58çH‰ÇèÎ:ýÿH‹H‰EðH‹Eè¾H‰ÇèF;ýÿƒøÿu4ýÿH‹H‰EøH‹EøH‰Çè»yýÿH‰EðHƒ}ðt5H‹Eè¾H‰ÇèßRýÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5hàH‰Çè]0ýÿë H‹EèH‰ÇèŸMýÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5àH‰Çè´3ýÿH‹H‰EøH‹EغH�5àH‰Çè•3ýÿH‹H‰EðH‹UøH‹EðH‰ÖH‰Çè VýÿH‰EèHƒ}èt5H‹EؾH‰Çè/RýÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5¸ßH‰Çè­/ýÿë H‹EØH‰ÇèïLýÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5nßH‰Çè3ýÿH‹H‰EøH‹EغH�5`ßH‰Çèå2ýÿH‹H‰EðH‹EغH�5AßH‰ÇèÆ2ýÿH‹H‰EèH‹UèH‹uðH‹Eø¹H‰Çè–^ýÿ…À”À¶À‰Eä‹UäH‹E؉ÖH‰ÇèÚwýÿ¸ÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5ÉÞH‰Çè_2ýÿH‹H‰EðHÇEØH�UØH‹EȾH‰Çè«@ýÿH‰EèH‹EðH‰Çè»wýÿH‰EàH‹MØH‹UèH‹uàH‹EðA¸H‰ÇèYrýÿ‰Eüƒ}üuJHƒ}àt5H‹EȾH‰Çè¸PýÿH‰ÂH‹EàH‰H‹EȺÿÿÿÿH�5AÞH‰Çè6.ýÿë"H‹EÈH‰ÇèxKýÿë‹UüH‹EȉÖH‰Çè`ýÿ‰Eü‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5ãÝH‰Çèy1ýÿH‹H‰EøH‹EȺH�5ÕÝH‰ÇèZ1ýÿH‹H‰EðH‹EȾH‰ÇèÒ1ýÿƒøÿuH‹EøH‰ÇèqsýÿëH‹EÈH�ŠÞ¾H‰Çè÷ÿÿ‰Eì‹UìH‹uðH‹EøA¹A¸¹H‰Çè>ýÿH‰EàHƒ}à„�H‹Eàº^H�5ßH‰Çè¹yýÿH‰EØH‹}àH‹MØ‹UìH‹uðH‹EøA¹I‰øH‰ÇèÁ=ýÿH‰EàHƒ}àtH‹UàH‹MØH‹EÈH‰ÎH‰Çèzáÿÿë H‹EÈH‰Çè1JýÿH‹EغdH�5—ÞH‰ÇèÉFýÿ¸ë¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5‘ÜH‰Çè'0ýÿH‹H‰EøH‹EغH�5”ÜH‰Çè0ýÿH‹H‰EðH‹uðH‹Eø¹ºH‰Çè§;ýÿH‰EèHƒ}ètJHƒ}èt5H‹EؾH‰Çè”NýÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5ÜH‰Çè,ýÿëH‹EØH‰ÇèTIýÿë H‹EØH‰ÇèFIýÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ÅÛH‰Çè[/ýÿH‹H‰EøH‹EغH�5·ÛH‰ÇèýÿH‰EÀH‹UÈH‹MÐH‹EÀH‰ÎH‰Çè-ýÿH‹E¸‰ÆH‹MðH‹UÀH‹EèH‰Çèebýÿ‰EüH‹EÀH‰ÇèfPýÿƒ}üÿu‹UüH‹E˜‰ÖH‰ÇèVýÿë‹UüH‹E˜‰ÖH‰ÇèLmýÿ¸ÉÃUH‰åSHƒìXH‰}¨H‹E¨ºH�5²ÕH‰ÇèÐ'ýÿH‹H‰EàHÇEÀH�UÀH‹E¨¾H‰Çè6ýÿH‰EØH‹E¨º¾H‰ÇèÒaýÿH‰EÐH‹EàH‰Çè2uýÿ‰E¼‹E¼‰Àº.H�5¤ÕH‰ÇèVpýÿH‰EÈH‹EÐH‰ÇèF1ýÿHcÐH‹EÀH9ÂtH‹E¨H�$Ö¾H‰Çè"-ýÿ…À�H‹EÀ‰ÃH‹EÐH‰ÇèMcýÿ‰ÇH‹uàH�M¼H‹UÈH‹EØI‰ñI‰ÈH‰Ñ‰ÚH‰ÆèDýÿ‰Eìƒ}ìu‹E¼‰ÂH‹MÈH‹E¨H‰ÎH‰ÇèÒ×ÿÿë‹UìH‹E¨‰ÖH‰Çè4Uýÿ‰EìH‹EȺ8H�5çÔH‰Çè=ýÿ‹EìHƒÄX[]ÃUH‰åHƒìPH‰}¸H‹E¸ºH�5]ÔH‰Çè{&ýÿH‹H‰EøHÇEÐH�UÐH‹E¸¾H‰ÇèÇ4ýÿH‰EðHÇEÈH�UÈH‹E¸¾H‰Çè¦4ýÿH‰EèH‹E¸º¾H‰Çè\`ýÿH‰EàH‹EàH‰ÇèÄH‰Ç¸è9ýÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰ÇèÞFýÿ‹UüH‹Eè‰ÖH‰Çè 6ýÿH‹Eè¾ÿÿÿÿH‰ÇèýÿH‹Eè¾ÿÿÿÿH‰Çè ýÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�þH‰Çè»H‹UØH‹EèH‰ÖH‰ÇèWFýÿH‹Eè¾þÿÿÿH‰ÇèÖ$ýÿ‹UüH‹Eè‰ÖH‰Çè….ýÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèþýÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çè§1ýÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè(Dýÿ…ÀuIHƒ}ètH‹UèH‹EøH�5¢ÂH‰Ç¸èQ7ýÿë$H‹EøºH�5—ÂH‰ÇèEH‹EøH‰Çèë ýÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�ªÁ¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çèf1ýÿH‹E躾ÿÿÿÿH‰Çè ýÿ‹UüH‹Eè‰ÖH‰ÇèoXýÿH‹Eè¾ÿÿÿÿH‰ÇèýÿH‹Eè¾ÿÿÿÿH‰Çèýýÿƒøu¸ëwH‹Eè¾þÿÿÿH‰ÇèpPýÿH‹E躾H‰ÇèFýÿH‹UØH‹EèH‰ÖH‰Çè×0ýÿH‹E躾ÿÿÿÿH‰Çè‘ ýÿH‹Eè¾þÿÿÿH‰Çè *ýÿ‹UüH‹Eè‰ÖH‰ÇèGýÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�“À¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè—Oýÿ‹Eô…ÀuH‹EèH�5íÀH‰Ç¸èx5ýÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�ÖÀ‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰Çè¹/ýÿH‹E躾ÿÿÿÿH‰Çès ýÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çèu)ýÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çèï[ýÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Çè·EýÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè�Nýÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�#¿¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰Çè= ýÿH‹Eø¾ÿÿÿÿH‰Çè¬ýÿH‹Eø¾þÿÿÿH‰ÇèÛWýÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè$GýÿH‰EøH‹EèH�©¾¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çè%ýÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çè™ ýÿH‹Eè¾ÿÿÿÿH‰ÇèýÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çè‚ýÿ‰EôH‹Eè¾ýÿÿÿH‰ÇènMýÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çè”ýÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çè_ýÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çè ýÿƒøt ¸éüH‹EøH‰Çè&ýÿéÍH‹Eø¾þÿÿÿH‰ÇèÐ ýÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰ÇèAýÿ…ÀtH‹Eø¾þÿÿÿH‰Çè,Lýÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çè6XýÿH‹EøºH�5€½H‰ÇèìH‹Eø¾þÿÿÿH‰ÇèmýÿH‹Eø¾H‰Çè,Kýÿ¸ë/H‹Eø¾þÿÿÿH‰Çè¤KýÿH‹Eø¾þÿÿÿH‰Çè³Nýÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèØ"ýÿ‰EüH‹UàH‹EèH�5ò¼H‰ÇèN;ýÿH‹Eè¾îØÿÿH‰Çè½%ýÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰ÇèøJýÿ¸ë‹UüH‹Eè‰ÖH‰ÇèàJýÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5E¼H‰Ç¸è:9ýÿéÜH‹EðH‹@¶ýÿH‰ÂH‹EØH‰H‹EøHƒÀÉÃUH‰åH�ì0H‰½èýÿÿH‰µàýÿÿ‰•ÜýÿÿH�•ðýÿÿ¸¹@H‰×óH«è†ÿüÿ‹H��ðýÿÿºH‰Î‰ÇèìÿÿH‰Eø‹�ÜýÿÿH‹…èýÿÿº‰ÎH‰Çè.ýÿHƒÀH‰EðH‹uøH‹MðH‹•àýÿÿH‹…èýÿÿI‰ðH�5ܵH‰Ç¸è92ýÿ‹•ÜýÿÿH‹…èýÿÿ‰ÖH‰ÇèÂOýÿ¸ÉÃUH‰åHƒì H‰}èH�¯µH‰EøH‹EèÇH‹EèH‹@H‰ÇèZýÿ‰Eôƒ}ôÿtH‹EøH�PH‰Uø¶¶À9Eôt‹EôëCH‹Eè‹�HH‹Uè‰ ‹Uô‰ÑH‹UèH˜ˆLH‹Eø¶„Àu¢H‹EèÇH‹EèH‹@H‰ÇèòýÿÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèIÿÿÿ‰ÂH‹Eà‰H‹Eà‹‰Eüƒ}ü#u>H‹EèH‹@H‰Çè­ýÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰ÇèŽýÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çè©ýÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5a´H‰ÇèH‹ç )H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�58´H‰Ç¸èy0ýÿH‹…ÀïÿÿH�5!´H‰Çès.ýÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5÷³H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5ˆ³H‰Çèc(ýÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5_³H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰ÇèõýüÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰ÇèöIýÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰ÇèÚ$ýÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè @ýÿ‹UüH‹…ÈïÿÿH�5v²H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çè1Lýÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�ȱH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�®±H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çè?AýÿÉÃUH‰åHƒì H‰}è‰uäH�£±H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�O±H‰EøH‹Eø¶ýÿ�ÉÃUH‰åHƒì H‰}øH‰uðH‰UèHƒ}ètH‹EðëH�y­H‹UèH‹MøH‰ÆH‰ÏèýÿH‹Eøº¾ÿÿÿÿH‰ÇèøüÿÉÃUH‰åHƒì H‰}ø‰uôH‰Uè‹UôH‹Eø‰ÖH‰Çèðâÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çèµýÿ‹UôH‹Eø‰ÖH‰ÇèBýÿH‹Eø¾ÿÿÿÿH‰Çè³úüÿH‹Eø¾ÿÿÿÿH‰Çè¢úüÿÉÃUH‰åHƒì0H‰}ØÇEôHÇEøH‹EØH�º¬¾H‰Çè^èÿÿH‹EغH�5¾¬H‰ÇèóþÿÿH‹EؾÿÿÿÿH‰ÇèTýÿH‹EؾðØÿÿH‰ÇèýÿH‹EؾÿÿÿÿH‰Çè"úüÿH‹EؾÿÿÿÿH‰Çèúüÿƒø„±H‹EؾþÿÿÿH‰Çè‡9ýÿH‹Eغ¾H‰Çè1/ýÿH‹Eغ¾H‰Çè/ýÿH‹EغH�52¬H‰ÇèQþÿÿH‹EØH�!¬¾þÿÿÿH‰ÇèýÿH‹EؾþÿÿÿH‰ÇèÊBýÿH‹EؾþÿÿÿH‰Çè‰ýÿH‹EؾþÿÿÿH‰ÇèxýÿH‹EؾðØÿÿH‰ÇèGýÿH‹EؾþÿÿÿH‰Çè<ýÿH‹EØH‰Çè 9ýÿ‰EôH‹EؾþÿÿÿH‰ÇèýÿH‹EؾÿÿÿÿH‰ÇèùüÿH‹EؾÿÿÿÿH‰Çè´1ýÿH‰EøHƒ}ø…dH‹EؾþÿÿÿH‰Çèt8ýÿH‹EؾH‰ÇèýÿH‰Eøƒ}ôt|H‹Eøº¾H‰Çès ýÿH‹EØH‰Çèw8ýÿH‹EؾþÿÿÿH‰Çè¦ýÿH‹EؾüÿÿÿH‰ÇèuýÿH‹EؾH‰Çè4=ýÿH‹EؾþÿÿÿH‰ÇèsýÿH‹EؾüÿÿÿH‰ÇèBýÿé¼HÇEèH‹EؾH‰Çèô<ýÿH‹EؾýÿÿÿH‰ÇèýÿH‹EؾÿÿÿÿH‰ÇèøüÿH‹EؾÿÿÿÿH‰Çè±0ýÿH‰EèHƒ}ètH‹EèH‹H‹EøH‰ëH‹Eøº¾H‰Çè�ýÿH‹EؾþÿÿÿH‰ÇèO7ýÿH‹EØH‰Çèƒ7ýÿH‹EؾþÿÿÿH‰Çè²ýÿH‹EؾüÿÿÿH‰Çè�ýÿH‹EؾýÿÿÿH‰Çè7ýÿH‹EøÉÃUH‰åHƒì H‰}è‰uä‹UäH‹Eè‰ÖH‰ÇèZ÷üÿƒøuO‹UäH‹Eè‰ÖH‰ÇèÔ÷üÿfH~ÀH‰Eø‹MäH‹E躉ÎH‰Çè&H‰EðòH*Eðf.Eøzf.Eøu¸ë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØÇEôH�Uô‹MäH‹Eè‰ÎH‰Çè>äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰ÇèYýÿ‹UðH‹Eø‰ÖH‰ÇèHýÿ‹UôH‹Eø‰ÖH‰Çè÷8ýÿ‹UðH‹Eø‰ÖH‰Çèæ8ýÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰ÇèÊ ýÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�ا¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�H§¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çè´ ýÿH‹Eø¾þÿÿÿH‰Çèóýÿ‹UôH‹Eø‰ÖH‰ÇèB+ýÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè\ýÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èKýÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çè�õüÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�g¦‰ÎH‰Çè­üüÿ…À…�‹UäH‹Eè‰ÖH‰ÇèÄóüÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5¦H‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çèl ýÿé3‹UäH‹Eè‰ÖH‰ÇèÖüüÿ…ÀtH‹EèºH�5Á¥H‰ÇèÈ÷ÿÿéH‹EèºH�5©¥H‰Çè«÷ÿÿéä‹MäH‹EèH�”¥‰ÎH‰Çè€ýÿ…ÀtH‹Eè¾ÿÿÿÿH‰ÇèÛòüÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çè¥ïüÿë‹UüH‹Eè‰ÖH‰ÇèBýÿH‰Eð‹UäH‹Eè‰ÖH‰ÇèÝ"ýÿH‰ÁH‹UðH‹EèH�5¥H‰Ç¸èž ýÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè'5ýÿ�ë/H‹Eè¾ÿÿÿÿH‰Çèƒ3ýÿ…ÀuH‹EèH�5ܤH‰Ç¸è·ýÿë�H‹UØH‹Eè¾ÿÿÿÿH‰ÇèÿîüÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�+¤¾H‰ÇèÏßÿÿH‹EøH��¤¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çè1ðüÿH‹Eø¾ÿÿÿÿH‰Çè ñüÿ…À…ŽH‹Eø¾þÿÿÿH‰Çè1ýÿH‹MèH‹EøºH‰ÎH‰Çè>ýÿH‹UðH‹EøH‰ÖH‰Çè|ýÿH‹Eøº¾ÿÿÿÿH‰Çè6îüÿH‹Eøº¾H‰ÇèÀ#ýÿH‹Eø¾ÿÿÿÿH‰Çè/ ýÿH‹UðH‹Eø¾ýÿÿÿH‰ÇèŠúüÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè ýÿH‹UðH‹Eø¾îØÿÿH‰Çè^úüÿH‹Eø¾þÿÿÿH‰Çè�3ýÿ�ÉÃUH‰åSHƒì8H‰}ÈHÇEèH‹EȾH‰Çèä1ýÿ…Àt/H‹EȺ¾H‰ÇèjþüÿH‰EàH‹EàH‰ÇèýÿH‰EèéžH‹EȾH‰Çè`ðüÿƒøu0H‹EȾH‰ÇèÚùüÿ‰E܃}Üt è\ýüÿH‰Eèëcè‘&ýÿH‰EèëXH‹EȺ¾H‰ÇèíüÿH‰ÃH‹EȾH‰Çèðüÿ‰ÂH‹EȉÖH‰Çè‘ ýÿH‰ÂH‹EÈH‰ÙH�5è¢H‰Ç¸ècýÿHƒ}ètJHƒ}èt5H‹EȾH‰Çèô ýÿH‰ÂH‹EèH‰H‹EȺÿÿÿÿH�5£H‰ÇèrëüÿëH‹EÈH‰Çè´ýÿë H‹EÈH‰Çè¦ýÿ¸HƒÄ8[]ÃUH‰åHƒì H‰}èH‹EèºH�5Ò¢H‰Çè¶îüÿH‹H‰EøH‹EøH‰ÇèÓðüÿH‹EøH‰Çè÷üüÿH‰EøHƒ}øtJHƒ}øt5H‹Eè¾H‰ÇèD ýÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5n¢H‰ÇèÂêüÿëH‹EèH‰Çèýÿë H‹EèH‰Çèöýÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5'¢H‰Çè îüÿH‹H‰EøH‹EøH‰Çè(ðüÿH‹EøH‰ÇèÌóüÿH‰EøHƒ}øtJHƒ}øt5H‹Eè¾H‰Çè™ ýÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5áH‰ÇèêüÿëH‹EèH‰ÇèYýÿë H‹EèH‰ÇèKýÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5|¡H‰Çè`íüÿH‹H‰EøH‹EøH‰Çè-ýÿ‰Eô‹UôH‹Eè‰ÖH‰Çè‰2ýÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5*¡H‰ÇèíüÿH‹H‰EøH‹EøH‰Çè;#ýÿ‰Eô‹UôH‹Eè‰ÖH‰Çè72ýÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5Ø H‰Çè¼ìüÿH‹H‰EðÇEüÇEøH‹EØH‰Çè+ýÿ‰EìH‹EؾH‰Çèíüÿƒø…+H‹EؾH‰Çè�öüÿ‰EüÇEøé ‹uøH‹EØH� `é(H�«ŸH‰ÇèÑ ýÿ‰Eèƒ}è ‡©‹EèH�…H�^ ‹H˜H�R HÐÿàƒ}ütH‹EðH‰Çèïøüÿé£H‹EðH‰Çè.ïüÿé’ƒ}ütH‹EðH‰Çè×ýÿé{H‹EðH‰ÇèVýÿéjƒ}ütH‹EðH‰Çè¿þüÿéSH‹EðH‰Çè2ýÿéBƒ}ütH‹EðH‰ÇèWýÿé+H‹EðH‰Çè¶úüÿéƒ}ütH‹EðH‰Çè&ýÿéH‹EðH‰Çèî.ýÿéòƒ}ütH‹EðH‰Çè'(ýÿéÛH‹EðH‰Çèf1ýÿéʃ}ütH‹EðH‰Çèßêüÿé³H‹EðH‰Çèûüÿ颃}ütH‹EðH‰Çè2ýÿé‹H‹EðH‰ÇèÆýÿë}ƒ}ütH‹EðH‰Çèâ.ýÿëiH‹EðH‰Çèýÿë[H‹EðH‰Çè¶5ýÿ‰Eä‹UäH‹E؉ÖH‰Çèâ/ýÿ¸ëI‹EèH˜H�ÅH�‡ç(H‹ ‹UèH‹EØH�5ˆžH‰Ç¸èxýÿ�ƒEø‹Eø;EìŽéýÿÿ¸ÉÃUH‰åH�ì�H‰½xÿÿÿH‹…xÿÿÿºH�5/žH‰ÇèêüÿH‹H‰EðÇEüH‹…xÿÿÿ¾H‰Çèñ ýÿ…À„ôH‹…xÿÿÿ¾H‰Çèe8ýÿ‰EìH‹…xÿÿÿ¾H‰ÇèNêüÿƒøÿu2‹UìH‹Eð‰ÖH‰ÇèØ ýÿ‰Eü‹UüH‹…xÿÿÿ‰ÖH‰Çèá.ýÿ¸é¥H‹…xÿÿÿ¾H‰Çès3ýÿòH,ÀH‰EàH‹…xÿÿÿ¾H‰Çè–"ýÿH‰EØH‹…xÿÿÿ¾H‰ÇèÎéüÿ…À~H‹…xÿÿÿ¾H‰Çèf"ýÿë¸H‰EÐH‹}ÐH‹MØH‹Uà‹uìH‹EðI‰øH‰Çèíöüÿ‰EüéÿH‹…xÿÿÿº¾H‰ÇèL÷üÿH‰EÈH‹…xÿÿÿ¾H‰ÇèTéüÿƒø…mH‹…xÿÿÿ¾H‰Çè§2ýÿòH,ÀH‰EÀH‹…xÿÿÿ¾H‰ÇèZ*ýÿ…À„žH‹…xÿÿÿº¾H‰ÇèéåüÿH‰E¸H‹…xÿÿÿ¾H‰Çèáèüÿ…À~H‹…xÿÿÿ¾H‰Çèy!ýÿë¸H‰E°H‹…xÿÿÿº¾H‰Çèuîüÿ‰E¬H‹}°D‹E¬H‹M¸H‹UÀH‹uÈH‹EðE‰ÁI‰øH‰Çè|ñüÿ‰EüéîH‹…xÿÿÿ¾H‰Çè!ýÿH‰E H‹…xÿÿÿ¾H‰ÇèHèüÿ…À~H‹…xÿÿÿ¾H‰Çèà ýÿë¸H‰E˜H‹…xÿÿÿº¾H‰ÇèÜíüÿ‰E”H‹}˜D‹E”H‹M H‹UÀH‹uÈH‹EðE‰ÁI‰øH‰Çèãðüÿ‰EüëXH‹…xÿÿÿ¹º¾H‰ÇèÐýüÿH‰EˆH‹…xÿÿÿº¾H‰Çèsíüÿ‰E„‹M„H‹UˆH‹uÈH‹EðH‰Çè¹õüÿ‰Eü‹UüH‹…xÿÿÿ‰ÖH‰ÇèRýÿÉÃUH‰åHƒì H‰}èH‹EèºH�5ØšH‰Çè¼æüÿH‹H‰EøH‹EøH‰Çè2ýÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ššH‰Çè~æüÿH‹H‰EøHÇEðH‹EؾH‰Çè.(ýÿ…ÀtCH‹Eغ¾H‰Çè´ôüÿH‰EðH‹UðH‹EøH‰ÖH‰Çè½åüÿ‰Eì‹UìH‹E؉ÖH‰Çèi+ýÿë4H‹EøH‰Çè ûüÿH‰ÂH‹EØH‰ÖH‰Çè©ýÿH‹Eغ¾ÿÿÿÿH‰Çècãüÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5Ô™H‰Çè¸åüÿH‹H‰EøHÇEðH‹EؾH‰Çèh'ýÿ…ÀtCH‹Eغ¾H‰ÇèîóüÿH‰EðH‹UðH‹EøH‰ÖH‰Çè·ôüÿ‰Eì‹UìH‹E؉ÖH‰Çè£*ýÿë4H‹EøH‰ÇèuöüÿH‰ÂH‹EØH‰ÖH‰ÇèãýÿH‹Eغ¾ÿÿÿÿH‰Çè�âüÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5™H‰ÇèòäüÿH‹H‰EøH‹Eè¾H‰Çèjåüÿƒøÿt;H‹Eè¾H‰ÇèT3ýÿ‰Eô‹UôH‹Eø‰ÖH‰Çè èüÿ‰Eð‹UðH‹Eè‰ÖH‰Çèì)ýÿëH‹EøH‰Çè~ëüÿHcÐH‹EèH‰ÖH‰Çèìûüÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5m˜H‰ÇèQäüÿH‹H‰EøH‹EøH‰Çènâüÿ‰Eô‹UôH‹Eè‰ÖH‰Çèz)ýÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5˜H‰ÇèÿãüÿH‹H‰EøH‹EøH‰Çèì&ýÿ‰Eô‹UôH‹Eè‰ÖH‰Çè()ýÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5É—H‰Çè­ãüÿH‹H‰EðÇEüÇEøH‹EØH‰Çèûüÿ‰Eìé‹uøH‹EØH� †à(H�Ñ–H‰Çè÷ýÿ‰Eèƒ}臠‹EèH�…H�З‹H˜H�Ä—HÐÿàH‹EðH‰Çèkýÿ‰Eüé�H‹EðH‰Çè§ýÿ‰Eüé‰H‹EðH‰Çè³ôüÿ‰EüëxH‹EðH‰Çè¢+ýÿ‰EüëgH‹EðH‰Çè1áüÿ‰EüëVH‹EðH‰Çè`õüÿ‰EüëEH‹EðH‰Çèÿýÿ‰Eüë4‹EèH˜H�ÅH�¶ß(H‹ ‹UèH‹EØH�5ü–H‰Ç¸è§ýÿ�ƒEøƒ}üu‹Eø;EìŽìþÿÿë�‹UüH‹E؉ÖH‰ÇèÌýÿÉÃUH‰åHƒì H‰}èH‹EèºH�5R–H‰Çè6âüÿH‹H‰EøH‹EøH‰ÇèÓíüÿ‰Eô‹UôH‹Eè‰ÖH‰ÇèýÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5–H‰ÇèéáüÿH‹H‰EøH‹Eغ¾H‰Çè<ðüÿH‰EðH‹uðH‹Eø¹ºH‰Çè~ïüÿH‰EèHƒ}ètOHƒ}èt5H‹EؾH‰Çè[ýÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5–H‰ÇèÙÝüÿë H‹EØH‰Çèûüÿ¸ëH‹EؾH‰Çè³ýÿÉÃUH‰åHƒì0H‰}ØH‹EغH�59•H‰ÇèáüÿH‹H‰EøH‹Eغ¾H‰ÇèpïüÿH‰EðH‹uðH‹Eø¹ºH‰Çè‚ýÿH‰EèHƒ}ètOHƒ}èt5H‹EؾH‰Çè�ÿüÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5I•H‰Çè Ýüÿë H‹EØH‰ÇèOúüÿ¸ëH‹EؾH‰ÇèçýÿÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5m”H‰ÇèQàüÿH‹H‰EðH‹E¸ºH�5ï”H‰Çè2àüÿH‹H‰EèH‹EèH‰ÇèßÝüÿH‰EàHÇEØHÇEÐHÇEÈL�EÈH�}ÐH�MØH‹UàH‹uèH‹EðjjM‰ÁI‰øH‰ÇèyçüÿHƒÄ‰Eüƒ}ü…ÆH‹EØH…Àt5H‹E¸¾H‰Çè~þüÿH‰ÂH‹EØH‰H‹E¸ºÿÿÿÿH�5U”H‰ÇèüÛüÿë H‹E¸H‰Çè>ùüÿH‹EÐH…ÀtNH‹EÐH…Àt5H‹E¸¾H‰Çè+þüÿH‰ÂH‹EÐH‰H‹E¸ºÿÿÿÿH�5”H‰Çè©Ûüÿë H‹E¸H‰ÇèëøüÿƒEüH‹EÈH…ÀtH‹UÈH‹E¸H‰ÖH‰ÇèÛýÿƒEü‹EüëH‹E¸¾H‰Çèa ýÿÉÃUH‰åHƒìH‰}øH‹EøH�È()H�5å’H‰Çèéôüÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰ÇèÜëüÿH‹Eð¶„Àu ‹Eü‰Çè·åüÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰ÇèÕõüÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè‰ÞüÿƒøtbH‹Eø¾þÿÿÿH‰ÇèýÿH‹UèH‹uðH‹EøH� @“H‰ÇèØýÿ…Àt H‹EøH‰Çè˜íüÿH‹Eø¾ÿÿÿÿH‰ÇèGøüÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Çè=ðüÿ‹Uà‹MäH‹Eø‰ÎH‰Çè‰ýÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5°“H‰Ç¸èSýÿH‹EøH�¼“¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çè¤÷üÿò*EôH‹EøH‰ÇèóÞüÿH‹Eø¾ýÿÿÿH‰Çè¢ïüÿH‹EøA¸¹ºÛH�5W’H‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰ÇèÆ ýÿéå‹Uà‹MäH‹Eè‰ÎH‰ÇèmåüÿéÌH‹EèH�á’¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çè§öüÿ‹UàH‹Eè‰ÖH‰Çè–öüÿH‹EèA¸¹ºH�5‹’H‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çèâåüÿ‰EüH‹Eè¾þÿÿÿH‰ÇèÎýÿ‹EüëH‹EèH�5n’H‰Ç¸è±ýÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�푾H‰ÇèÉ‹UäH‹Eè‰ÖH‰ÇèÛõüÿ‹UüH‹Eè‰ÖH‰ÇèŠýÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè—ÛüÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰ÇèÿûüÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè²Üüÿ龋MôH‹EøH�•‘‰ÎH‰Çèõãüÿ…À…š‹UôH‹Eø‰ÖH‰ÇèœûüÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèOÜüÿëZ‹MôH‹EøH�5‘‰ÎH‰Çè•ãüÿ…ÀuA‹UôH‹Eø‰ÖH‰Çè°Úüÿ‰ÂH‹Eø‰ÖH‰Çè@÷üÿH‰ÂH‹EøH�5‘H‰Ç¸èýÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çèâ ýÿ‹UüH‹Eè‰ÖH‰ÇèýüÿH‹Eè¾ÿÿÿÿH‰Çè ÚüÿH‹Eè¾ÿÿÿÿH‰ÇèÚüÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�ß�¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çè[ ýÿH‹Eè¾þÿÿÿH‰ÇèÚëüÿ‹UüH‹Eè‰ÖH‰Çè‰õüÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèÚüÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çè«øüÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè, ýÿ…ÀuIHƒ}ètH‹UèH‹EøH�5f�H‰Ç¸èUþüÿë$H‹EøºH�5[�H‰ÇèEH‹EøH‰Çèïçüÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�n޾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰ÇèjøüÿH‹E躾ÿÿÿÿH‰Çè$Õüÿ‹UüH‹Eè‰ÖH‰ÇèsýÿH‹Eè¾ÿÿÿÿH‰ÇèØüÿH‹Eè¾ÿÿÿÿH‰ÇèØüÿƒøu¸ëwH‹Eè¾þÿÿÿH‰ÇètýÿH‹E躾H‰Çè ýÿH‹UØH‹EèH‰ÖH‰ÇèÛ÷üÿH‹E躾ÿÿÿÿH‰Çè•ÔüÿH‹Eè¾þÿÿÿH‰Çè¤ñüÿ‹UüH‹Eè‰ÖH‰Çèýÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�W�¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè›ýÿ‹Eô…ÀuH‹EèH�5±�H‰Ç¸è|üüÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�š�‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰Çè½öüÿH‹E躾ÿÿÿÿH‰ÇèwÓüÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèyðüÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çèó"ýÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Çè» ýÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè‘ýÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�狾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰ÇèAÔüÿH‹Eø¾ÿÿÿÿH‰Çè°ÕüÿH‹Eø¾þÿÿÿH‰Çèßýÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè(ýÿH‰EøH‹EèH�m‹¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çèìüÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çè�ÓüÿH‹Eè¾ÿÿÿÿH‰Çè ÕüÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çè†äüÿ‰EôH‹Eè¾ýÿÿÿH‰Çèrýÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çè˜Õüÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰ÇècÕüÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰ÇèÔüÿƒøt ¸éüH‹EøH‰ÇèíüÿéÍH‹Eø¾þÿÿÿH‰ÇèÔÓüÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰ÇèEãüÿ…ÀtH‹Eø¾þÿÿÿH‰Çè0ýÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çè:ýÿH‹EøºH�5DŠH‰ÇèìH‹Eø¾þÿÿÿH‰ÇèqåüÿH‹Eø¾H‰Çè0ýÿ¸ë/H‹Eø¾þÿÿÿH‰Çè¨ýÿH‹Eø¾þÿÿÿH‰Çè·ýÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèÜéüÿ‰EüH‹UàH‹EèH�5¶‰H‰ÇèRýÿH‹Eè¾îØÿÿH‰ÇèÁìüÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çèüýÿ¸ë‹UüH‹Eè‰ÖH‰Çèäýÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5 ‰H‰Ç¸è>ýÿéÜH‹EðH‹@¶H‹EèH‹@H‰Çè±Ìüÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè’Ìüÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çè­àüÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5%�H‰ÇèH‹ëÒ(H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5ü€H‰Ç¸è}÷üÿH‹…ÀïÿÿH�5å€H‰ÇèwõüÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5»€H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5L€H‰ÇègïüÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5#€H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰ÇèùÄüÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çèúýÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰ÇèÞëüÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè$ýÿ‹UüH‹…ÈïÿÿH�5:H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çè5ýÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�Œ~H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�r~H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèCýÿÉÃUH‰åHƒì H‰}è‰uäH�g~H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�~H‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè]×üÿ‹UðH‹Eø‰ÖH‰ÇèL×üÿ‹UôH‹Eø‰ÖH‰Çèûÿüÿ‹UðH‹Eø‰ÖH‰ÇèêÿüÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰ÇèÎÓüÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�œt¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH� t¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çè¸ÒüÿH‹Eø¾þÿÿÿH‰Çè÷Íüÿ‹UôH‹Eø‰ÖH‰ÇèFòüÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè`ÖüÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èOãüÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Ç葼üÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�+s‰ÎH‰Çè±Ãüÿ…À…�‹UäH‹Eè‰ÖH‰ÇèȺüÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5ÉrH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰ÇèpÔüÿé3‹UäH‹Eè‰ÖH‰ÇèÚÃüÿ…ÀtH‹EèºH�5…rH‰ÇèÈ÷ÿÿéH‹EèºH�5mrH‰Çè«÷ÿÿéä‹MäH‹EèH�Xr‰ÎH‰Çè„àüÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çèß¹üÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çè©¶üÿë‹UüH‹Eè‰ÖH‰ÇèFÖüÿH‰Eð‹UäH‹Eè‰ÖH‰ÇèáéüÿH‰ÁH‹UðH‹EèH�5àqH‰Ç¸è¢çüÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè+üüÿ�ë/H‹Eè¾ÿÿÿÿH‰Çè‡úüÿ…ÀuH‹EèH�5 qH‰Ç¸è»Þüÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè¶üÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�ïp¾H‰ÇèÏßÿÿH‹EøH�aq¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çè5·üÿH‹Eø¾ÿÿÿÿH‰Ç褸üÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèøüÿH‹MèH‹EøºH‰ÎH‰Çè#ýÿH‹UðH‹EøH‰ÖH‰Çè€ØüÿH‹Eøº¾ÿÿÿÿH‰Çè:µüÿH‹Eøº¾H‰ÇèÄêüÿH‹Eø¾ÿÿÿÿH‰Çè3ÒüÿH‹UðH‹Eø¾ýÿÿÿH‰ÇèŽÁüÿƒ}ät&H‹Eø¾ÿÿÿÿH‰ÇèÒüÿH‹UðH‹Eø¾îØÿÿH‰ÇèbÁüÿH‹Eø¾þÿÿÿH‰Çè¡úüÿ�ÉÃUH‰åHƒì@H‰}ÈH‹EȺ¾H‰Çè\ñüÿH‰EðH�UÐH‹EȾH‰ÇèsÅüÿH‰EèH‹EȾH‰Çè~·üÿ…À~H‹EȺH�5üoH‰ÇèÒ¶üÿH‹ë¸H‰Eàè_äüÿH‰EØH‹EЉÇH‹MàH‹UðH‹uèH‹EØI‰ÈH‰Ñ‰úH‰ÇèÅÄüÿ‰Eüƒ}üuJHƒ}Øt5H‹EȾH‰ÇèDÕüÿH‰ÂH‹EØH‰H‹EȺÿÿÿÿH�5‹oH‰Çè²üÿë"H‹EÈH‰ÇèÐüÿë‹UüH‹EȉÖH‰Çè¡äüÿ‰Eü‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5>oH‰Çè¶üÿH‹H‰EøHƒ}øu¸ë)H‹EøH‰ÇèÄøüÿH‹Eè¾H‰ÇèïüÿHǸÉÃUH‰åH�ì H‰½èþÿÿH‹…èþÿÿº¾H‰ÇèÚïüÿH‰EøH�UÈH‹…èþÿÿ¾H‰ÇèîÃüÿH‰EðH�UÀH‹…èþÿÿ¾H‰ÇèÒÃüÿH‰EèH‹…èþÿÿ¾H‰ÇèÚµüÿƒøÿtH‹…èþÿÿ¾H‰ÇèQ¿üÿ븉EäH‹…èþÿÿ¾H‰Ç裵üÿ…À~ H‹…èþÿÿºH�5nH‰Çèô´üÿH‹ë¸H‰EØÇ…|ÿÿÿ@H‹EÈHcøH‹EÀA‰ÂL�E€H‹UðH‹uèH‹EøHƒìH��|ÿÿÿQM‰ÁI‰øH‰ÑD‰ÒH‰Çè~ÜüÿHƒÄH…À•À¶À‰EÔƒ}Ôu‹UÔH‹…èþÿÿ‰ÖH‰Çèäâüÿëzƒ}ät ‹…|ÿÿÿ‰ÂH�M€H‹…èþÿÿH‰ÎH‰ÇèxòÿÿëO‹…|ÿÿÿ‰ÁH�•ðþÿÿH�E€‰ÎH‰Çè_äüÿH�•ðþÿÿH‹…èþÿÿH‰ÖH‰ÇèÆÔüÿH‹…èþÿÿº¾ÿÿÿÿH‰Çè}±üÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5 mH‰ÇèÒ³üÿH‹H‰EøH�UàH‹EؾH‰Çè&ÂüÿH‰EðH‹UàH‹MðH‹EøH‰ÎH‰ÇèËÜüÿ‰Eì‹UìH‹E؉ÖH‰Çè÷áüÿÉÃUH‰åH�ìH‰½øþÿÿH‹…øþÿÿºH�5‘lH‰ÇèX³üÿH‹H‰EðHÇE˜@ÇEüÇEøH‹…øþÿÿ¾H‰Çè÷ôüÿ…ÀtoH�U�H‹…øþÿÿ¾H‰Çè{ÁüÿH‰EèH‹U�H‹MèH‹EðH‰ÎH‰Çè Üüÿ‰EøH‹…øþÿÿ¾H‰Çèi³üÿƒøÿtH‹…øþÿÿ¾H‰Çèà¼üÿ븉Eüë7H‹…øþÿÿ¾H‰Çè0³üÿƒøÿtH‹…øþÿÿ¾H‰Çè§¼üÿ븉Eüƒ}øuH�U˜H�M H‹EðH‰ÎH‰ÇèP´üÿ‰Eøƒ}øu‹UøH‹…øþÿÿ‰ÖH‰Çè³àüÿëtƒ}ütH‹U˜H�M H‹…øþÿÿH‰ÎH‰ÇèKðÿÿëMH‹E˜‰ÁH�•ÿÿÿH�E ‰ÎH‰Çè4âüÿH�•ÿÿÿH‹…øþÿÿH‰ÖH‰Çè›ÒüÿH‹…øþÿÿº¾ÿÿÿÿH‰ÇèR¯üÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5àjH‰Çè§±üÿH‹H‰EøH‹EøH‰ÇèäîüÿH‰EðH‹UðH‹EèH‰ÖH‰ÇèíÈüÿ¸ÉÃUH‰åHƒìH‰}øH‹EøH��ü(H�5‰jH‰ÇèpÇüÿH‹Eøº¾H‰ÇèçüÿH‹EøºH�5š®(H‰ÇèÌÚÿÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰Çè5¾üÿH‹Eð¶„Àu ‹Eü‰Çè¸üÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Çè.ÈüÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çèâ°üÿƒøtbH‹Eø¾þÿÿÿH‰Çè\ðüÿH‹UèH‹uðH‹EøH� ™iH‰Çè1òüÿ…Àt H‹EøH‰Çèñ¿üÿH‹Eø¾ÿÿÿÿH‰Çè ÊüÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Çè–Âüÿ‹Uà‹MäH‹Eø‰ÎH‰Çèââüÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5 jH‰Ç¸è¬ÕüÿH‹EøH�j¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰ÇèýÉüÿò*EôH‹EøH‰ÇèL±üÿH‹Eø¾ýÿÿÿH‰ÇèûÁüÿH‹EøA¸¹ºÛH�5°hH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çèóüÿéå‹Uà‹MäH‹Eè‰ÎH‰ÇèÆ·üÿéÌH‹EèH�:i¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰ÇèÉüÿ‹UàH‹Eè‰ÖH‰ÇèïÈüÿH‹EèA¸¹ºH�5ähH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çè;¸üÿ‰EüH‹Eè¾þÿÿÿH‰Çè'îüÿ‹EüëH‹EèH�5ÇhH‰Ç¸è Ôüÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�Fh¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çè4Èüÿ‹UüH‹Eè‰ÖH‰Çèãðüÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çèð­üÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰ÇèXÎüÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè ¯üÿ龋MôH‹EøH�îg‰ÎH‰ÇèN¶üÿ…À…š‹UôH‹Eø‰ÖH‰ÇèõÍüÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Ç訮üÿëZ‹MôH‹EøH�Žg‰ÎH‰Çèîµüÿ…ÀuA‹UôH‹Eø‰ÖH‰Çè ­üÿ‰ÂH‹Eø‰ÖH‰Çè™ÉüÿH‰ÂH‹EøH�5[gH‰Ç¸ènÒüÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çè;àüÿ‹UüH‹Eè‰ÖH‰ÇèjÏüÿH‹Eè¾ÿÿÿÿH‰Çèy¬üÿH‹Eè¾ÿÿÿÿH‰Çèh¬üÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�8f¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çè´ßüÿH‹Eè¾þÿÿÿH‰Çè3¾üÿ‹UüH‹Eè‰ÖH‰ÇèâÇüÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè[¬üÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰ÇèËüÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè…Ýüÿ…ÀuIHƒ}ètH‹UèH‹EøH�5¿eH‰Ç¸è®Ðüÿë$H‹EøºH�5´eH‰ÇèEH‹EøH‰ÇèHºüÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�Çd¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰ÇèÃÊüÿH‹E躾ÿÿÿÿH‰Çè}§üÿ‹UüH‹Eè‰ÖH‰ÇèÌñüÿH‹Eè¾ÿÿÿÿH‰ÇèkªüÿH‹Eè¾ÿÿÿÿH‰ÇèZªüÿƒøu¸ëwH‹Eè¾þÿÿÿH‰ÇèÍéüÿH‹E躾H‰ÇèwßüÿH‹UØH‹EèH‰ÖH‰Çè4ÊüÿH‹E躾ÿÿÿÿH‰Çèî¦üÿH‹Eè¾þÿÿÿH‰ÇèýÃüÿ‹UüH‹Eè‰ÖH‰Çèlàüÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�°c¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çèôèüÿ‹Eô…ÀuH‹EèH�5 dH‰Ç¸èÕÎüÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�óc‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰ÇèÉüÿH‹E躾ÿÿÿÿH‰ÇèÐ¥üÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèÒÂüÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰ÇèLõüÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰ÇèßüÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çèêçüÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�@b¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰Ç蚦üÿH‹Eø¾ÿÿÿÿH‰Çè ¨üÿH‹Eø¾þÿÿÿH‰Çè8ñüÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè�àüÿH‰EøH‹EèH�Æa¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çè]¾üÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çèö¥üÿH‹Eè¾ÿÿÿÿH‰Çèe§üÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çèß¶üÿ‰EôH‹Eè¾ýÿÿÿH‰ÇèËæüÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çèñ§üÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çè¼§üÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çè^¦üÿƒøt ¸éüH‹EøH‰Çès¿üÿéÍH‹Eø¾þÿÿÿH‰Çè-¦üÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çèžµüÿ…ÀtH‹Eø¾þÿÿÿH‰Çè‰åüÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çè“ñüÿH‹EøºH�5�`H‰ÇèìH‹Eø¾þÿÿÿH‰ÇèÊ·üÿH‹Eø¾H‰Çè‰äüÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèåüÿH‹Eø¾þÿÿÿH‰Çèèüÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çè5¼üÿ‰EüH‹UàH‹EèH�5`H‰Çè«ÔüÿH‹Eè¾îØÿÿH‰Çè¿üÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰ÇèUäüÿ¸ë‹UüH‹Eè‰ÖH‰Çè=äüÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5b_H‰Ç¸è—ÒüÿéÜH‹EðH‹@¶H‹EèH‹@H‰Çè Ÿüÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çèëžüÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çè³üÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5~WH‰ÇèH‹D¥(H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5UWH‰Ç¸èÖÉüÿH‹…ÀïÿÿH�5>WH‰ÇèÐÇüÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5WH‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5¥VH‰ÇèÀÁüÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5|VH‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰ÇèR—üÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰ÇèSãüÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çè7¾üÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè}Ùüÿ‹UüH‹…ÈïÿÿH�5“UH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰ÇèŽåüÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�åTH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�ËTH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèœÚüÿÉÃUH‰åHƒì H‰}è‰uäH�ÀTH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�lTH‰EøH‹Eø¶•üÿ‹EäHcÐH‹EèH‰ÖH‰Çè¯üÿ¸ÉÃUH‰åH‰}øH‰uðH‹EðHÇH‹EðHÇ@H‹EðÇ@H‹EðH�PH‹EðH‰� H‹EðHÇ€( H‹EðHÇ€ H‹EðH‹UøH‰�0 �]ÃUH‰åHƒì H‰}èH‰uàH‹EèH‹�( H‹EèH‹€ H)ÂH‰ÐH9Eà† HÇEðH‹EèH‹€( HÀH‰EøH‹EèH‹€ H‹UøH)ÂH‰ÐH9EàvH‹EèH‹� H‹EàHÐH‰EøH‹EèH‹€( H9EøsH‹EèH‹€0 H�5åRH‰Ç¸è ¼üÿH‹EèH‹€0 H‹UøH‰ÖH‰Çè6µüÿH‰EðH‹EèH‹� H‹EèH‹ˆ H‹EðH‰ÎH‰Çè½³üÿH‹EèH‹€ H‹UèHƒÂH9ÐtH‹EèH‹€0 ¾þÿÿÿH‰ÇèmÙüÿH‹EèH‹UðH‰� H‹EèH‹UøH‰�( H‹EèH‹� H‹EèH‹€ HÐÉÃUH‰åHƒì H‰}øH‰uðH‰UèH‹UèH‹EøH‰ÖH‰Çè|þÿÿH‰ÁH‹UèH‹EðH‰ÆH‰Ïè³üÿH‹EøH‹� H‹EèHÂH‹EøH‰� �ÉÃUH‰åHƒì H‰}èHÇEðH‹EèH‹€0 H�Uð¾ÿÿÿÿH‰ÇèÇ’üÿH‰EøHƒ}øuH‹EèH‹€0 H�5šQH‰Ç¸è=»üÿH‹EèH‹€ H‹UèHƒÂH9ÐtH‹EèH‹€0 ¾þÿÿÿH‰Çè­§üÿH‹UðH‹MøH‹EèH‰ÎH‰ÇèÿÿÿH‹EèH‹€ H‹UèHƒÂH9ÐtºþÿÿÿëºÿÿÿÿH‹EèH‹€0 ‰ÖH‰Çèýàüÿ�ÉÃUH‰åHƒìH‰}øH‹EøH‹� H‹EøH‹ˆ H‹EøH‹€0 H‰ÎH‰Çè3H‹EøH‹€ H‹UøHƒÂH9ÐtH‹EøH‹€0 ¾þÿÿÿH‰Çè’×üÿ�ÉÃUH‰åHƒì H‰}øH‰uðH‰UèHƒ}ètH‹EðëH�–PH‹UèH‹MøH‰ÆH‰ÏèdœüÿH‹Eøº¾ÿÿÿÿH‰Çè^‘üÿÉÃUH‰åHƒì H‰}ø‰uôH‰Uè‹UôH‹Eø‰ÖH‰Çèðâÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çè«üÿ‹UôH‹Eø‰ÖH‰ÇèqÛüÿH‹Eø¾ÿÿÿÿH‰Çè”üÿH‹Eø¾ÿÿÿÿH‰Çèÿ“üÿÉÃUH‰åHƒì0H‰}ØÇEôHÇEøH‹EØH�×O¾H‰Çè^èÿÿH‹EغH�5ÛOH‰ÇèóþÿÿH‹EؾÿÿÿÿH‰Çè±­üÿH‹EؾðØÿÿH‰Çèp¶üÿH‹EؾÿÿÿÿH‰Çè“üÿH‹EؾÿÿÿÿH‰Çèn“üÿƒø„±H‹EؾþÿÿÿH‰ÇèäÒüÿH‹Eغ¾H‰ÇèŽÈüÿH‹Eغ¾H‰ÇèxÈüÿH‹EغH�5OOH‰ÇèQþÿÿH‹EØH�>O¾þÿÿÿH‰ÇèxœüÿH‹EؾþÿÿÿH‰Çè'ÜüÿH‹EؾþÿÿÿH‰Çèæ¬üÿH‹EؾþÿÿÿH‰ÇèÕ¬üÿH‹EؾðØÿÿH‰Ç褮üÿH‹EؾþÿÿÿH‰ÇèsÕüÿH‹EØH‰ÇègÒüÿ‰EôH‹EؾþÿÿÿH‰ÇècµüÿH‹EؾÿÿÿÿH‰Çèr’üÿH‹EؾÿÿÿÿH‰ÇèËüÿH‰EøHƒ}ø…dH‹EؾþÿÿÿH‰ÇèÑÑüÿH‹EؾH‰Çèp°üÿH‰Eøƒ}ôt|H‹Eøº¾H‰ÇèТüÿH‹EØH‰ÇèÔÑüÿH‹EؾþÿÿÿH‰Çè¬üÿH‹EؾüÿÿÿH‰ÇèÒ­üÿH‹EؾH‰Çè‘ÖüÿH‹EؾþÿÿÿH‰ÇèЫüÿH‹EؾüÿÿÿH‰Ç蟭üÿé¼HÇEèH‹EؾH‰ÇèQÖüÿH‹EؾýÿÿÿH‰Çè`´üÿH‹EؾÿÿÿÿH‰Çèo‘üÿH‹EؾÿÿÿÿH‰ÇèÊüÿH‰EèHƒ}ètH‹EèH‹H‹EøH‰ëH‹Eøº¾H‰Çèí¡üÿH‹EؾþÿÿÿH‰Çè¬ÐüÿH‹EØH‰ÇèàÐüÿH‹EؾþÿÿÿH‰Çè«üÿH‹EؾüÿÿÿH‰ÇèÞ¬üÿH‹EؾýÿÿÿH‰ÇèmÐüÿH‹EøÉÃUH‰åHƒì H‰}è‰uä‹UäH‹Eè‰ÖH‰Çè·�üÿƒøuO‹UäH‹Eè‰ÖH‰Çè1‘üÿfH~ÀH‰Eø‹MäH‹E躉ÎH‰Çè&H‰EðòH*Eðf.Eøzf.Eøu¸ë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØÇEôH�Uô‹MäH‹Eè‰ÎH‰Çè>äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè¶©üÿ‹UðH‹Eø‰ÖH‰Ç襩üÿ‹UôH‹Eø‰ÖH‰ÇèTÒüÿ‹UðH‹Eø‰ÖH‰ÇèCÒüÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çè'¦üÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�õJ¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�eJ¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çè¥üÿH‹Eø¾þÿÿÿH‰ÇèP üÿ‹UôH‹Eø‰ÖH‰ÇèŸÄüÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Ç蹨üÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'訵üÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèêŽüÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�„I‰ÎH‰Çè –üÿ…À…�‹UäH‹Eè‰ÖH‰Çè!�üÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5"IH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çèɦüÿé3‹UäH‹Eè‰ÖH‰Çè3–üÿ…ÀtH‹EèºH�5ÞHH‰ÇèÈ÷ÿÿéH‹EèºH�5ÆHH‰Çè«÷ÿÿéä‹MäH‹EèH�±H‰ÎH‰Çèݲüÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çè8Œüÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çè‰üÿë‹UüH‹Eè‰ÖH‰Ç蟨üÿH‰Eð‹UäH‹Eè‰ÖH‰Çè:¼üÿH‰ÁH‹UðH‹EèH�59HH‰Ç¸èû¹üÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè„Îüÿ�ë/H‹Eè¾ÿÿÿÿH‰ÇèàÌüÿ…ÀuH‹EèH�5ùGH‰Ç¸è±üÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè\ˆüÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�HG¾H‰ÇèÏßÿÿH‹EøH�ºG¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Ç莉üÿH‹Eø¾ÿÿÿÿH‰ÇèýŠüÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇètÊüÿH‹MèH‹EøºH‰ÎH‰Çè|×üÿH‹UðH‹EøH‰ÖH‰ÇèÙªüÿH‹Eøº¾ÿÿÿÿH‰Ç蓇üÿH‹Eøº¾H‰Çè½üÿH‹Eø¾ÿÿÿÿH‰Ç茤üÿH‹UðH‹Eø¾ýÿÿÿH‰Çèç“üÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè`¤üÿH‹UðH‹Eø¾îØÿÿH‰Ç軓üÿH‹Eø¾þÿÿÿH‰ÇèúÌüÿ�ÉÃUH‰åHƒìH‰}øH‰uðè2¼üÿH‰ÇèúÓüÿH‰ÁH‹UðH‹EøH�5ŠFH‰Ç¸è{¯üÿ�ÉÃUH‰åHƒì H‰}èèǹüÿH‰EøHƒ}øuH‹EèH�5^FH‰Çè’ÿÿÿH‹Eè¾H‰Çèè§üÿH‰ÂH‹EøH‰H‹EèH�>F¾ðØÿÿH‰ÇèˆüÿH‹Eè¾ÿÿÿÿH‰Çèu‰üÿH‹Eè¾þÿÿÿH‰Çè¤ÒüÿH‹EøÉÃUH‰åHƒì H‰}è‰uä‹UäH‹Eè‰ÖH‰Çè>‰üÿƒèƒø‡ƒH‹EèH‰Çè>ÿÿÿH‰Eð‹MäH‹E躉ÎH‰Çèü…üÿH‰EøH‹Eø¶H‹EèH‹@H‰Çèçdüÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰ÇèÈdüÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèãxüÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5›"H‰ÇèH‹!k(H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5r"H‰Ç¸è³�üÿH‹…ÀïÿÿH�5["H‰Çè­�üÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�51"H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5Â!H‰Çè�‡üÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5™!H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè/]üÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè0©üÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çè„üÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰ÇèZŸüÿ‹UüH‹…ÈïÿÿH�5° H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çèk«üÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H� H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�èH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çèy üÿÉÃUH‰åHƒì H‰}è‰uäH�ÝH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�‰H‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè“oüÿ‹UðH‹Eø‰ÖH‰Çè‚oüÿ‹UôH‹Eø‰ÖH‰Çè1˜üÿ‹UðH‹Eø‰ÖH‰Çè ˜üÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çèlüÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�‚¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰ÇèîjüÿH‹Eø¾þÿÿÿH‰Çè-füÿ‹UôH‹Eø‰ÖH‰Çè|Šüÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè–nüÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'è…{üÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèÇTüÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�¡‰ÎH‰Çèç[üÿ…À…�‹UäH‹Eè‰ÖH‰ÇèþRüÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5?H‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè¦lüÿé3‹UäH‹Eè‰ÖH‰Çè\üÿ…ÀtH‹EèºH�5ûH‰ÇèÈ÷ÿÿéH‹EèºH�5ãH‰Çè«÷ÿÿéä‹MäH‹EèH�ΉÎH‰Çèºxüÿ…ÀtH‹Eè¾ÿÿÿÿH‰ÇèRüÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰ÇèßNüÿë‹UüH‹Eè‰ÖH‰Çè|nüÿH‰Eð‹UäH‹Eè‰ÖH‰Çè‚üÿH‰ÁH‹UðH‹EèH�5VH‰Ç¸èØüÿƒ}øtCH‹Eè¾þÿÿÿH‰Çèa”üÿ�ë/H‹Eè¾ÿÿÿÿH‰Çè½’üÿ…ÀuH‹EèH�5H‰Ç¸èñvüÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè9NüÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�e¾H‰ÇèÏßÿÿH‹EøH�×¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèkOüÿH‹Eø¾ÿÿÿÿH‰ÇèÚPüÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèQ�üÿH‹MèH‹EøºH‰ÎH‰ÇèY�üÿH‹UðH‹EøH‰ÖH‰Çè¶püÿH‹Eøº¾ÿÿÿÿH‰ÇèpMüÿH‹Eøº¾H‰Çèú‚üÿH‹Eø¾ÿÿÿÿH‰ÇèijüÿH‹UðH‹Eø¾ýÿÿÿH‰ÇèÄYüÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè=jüÿH‹UðH‹Eø¾îØÿÿH‰Çè˜YüÿH‹Eø¾þÿÿÿH‰Çè×’üÿ�ÉÃUH‰åHƒì0H‰}ØHÇEèÿÿÿÿH‹EؾH‰Çè’üÿH‰EøH�UèH‹EøH‰Æ¿èV•üÿH‰EðH‹EøH‰ÇèvüÿHƒ}ðtOHƒ}ðt5H‹EؾH‰Çè×müÿH‰ÂH‹EðH‰H‹EغÿÿÿÿH�5OH‰ÇèUKüÿë H‹EØH‰Çè—hüÿ¸ëFH‹UèH‹EØH�51H‰Ç¸èt}üÿH‹Eغ¾ÿÿÿÿH‰ÇèLüÿH‰ÂH‹EؾH‰ÇèzTüÿÉÃUH‰åHƒì0H‰}ØHÇEàÿÿÿÿH‹Eغ¾H‰ÇèÎ\üÿH‰EøH‹EøH�5ÅH‰Çè×düÿH‰EðH�UàH‹EðH‰Æ¿èN”üÿH‰EèH‹EðH‰ÇèuüÿHƒ}ètJHƒ}èt5H‹EؾH‰ÇèÏlüÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5GH‰ÇèMJüÿëVH‹EØH‰Çè�güÿëHH‹UàH‹EØH�5.H‰Ç¸èq|üÿH‹Eغ¾ÿÿÿÿH‰ÇèKüÿH‰ÂH‹EؾH‰ÇèwSüÿë¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ÄH‰ÇèZMüÿH‹H‰EøH‹EøH‰Çè§\üÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5†H‰ÇèMüÿH‹H‰EøH‹Eغ¾H‰Çèo[üÿH‰EðH‹Eغ¾H‰ÇèU[üÿH‰EèH‹UèH‹MðH‹EøH‰ÎH‰Çè*wüÿH‰ÂH‹EØH‰ÖH‰Çè(düÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5÷H‰Çè�LüÿH‹H‰EøH‹Eغ¾H‰ÇèàZüÿH‰EðH‹Eغ¾H‰ÇèÆZüÿH‰EèH‹UèH‹MðH‹EøH‰ÎH‰ÇèKdüÿH‰ÂH‹EØH‰ÖH‰ÇèÙlüÿH‹Eغ¾ÿÿÿÿH‰Çè“Iüÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‹@H…À„ H‹EèH‹H‹Eà¾ÿÿÿÿH‰ÇèãJüÿH‹Eà¾ÿÿÿÿH‰ÇèRLüÿH‹Eà¾ÿÿÿÿH‰ÇèALüÿƒøthH‹Eà¾þÿÿÿH‰Ç軋üÿH‹E຾H‰Çèe�üÿH‹EèH‹H‹Eà¾þÿÿÿH‰Çè}UüÿH‹EèH‹H‹Eà¾ÿÿÿÿH‰ÇèeJüÿH‹Eà¾ÿÿÿÿH‰ÇèÔKüÿÇEüþÿÿÿH‹EèH‹PH‹EàH‰ÖH‰ÇèÖküÿH‹E຾ÿÿÿÿH‰Çè�HüÿH‹EèH‹P‹MüH‹Eà‰ÎH‰ÇèUüÿH‹Eà¾þÿÿÿH‰Çè‹üÿéïH‹EèH‹H…À„’H‹EèH‹H‹Eà¾ÿÿÿÿH‰ÇèÉIüÿH‹Eà¾ÿÿÿÿH‰Çè8KüÿH‹Eà¾ÿÿÿÿH‰Çè'Küÿ…ÀuAH‹Eà¾þÿÿÿH‰Ç袊üÿH‹E຾H‰ÇèL€üÿH‹EèH‹H‹Eà¾þÿÿÿH‰ÇèdTüÿë`H‹Eà¾þÿÿÿH‰ÇèaŠüÿëMÇEøþÿÿÿH‹EèH‹PH‹EàH‰ÖH‰ÇèÑjüÿH‹E຾ÿÿÿÿH‰Çè‹GüÿH‹EèH‹P‹MøH‹Eà‰ÎH‰ÇèTüÿ�ÉÃUH‰åHƒì0H‰}èH‰uàH‰UØH‹EØH‰EøH‹MàH‹UèH‹EøH‰ÎH‰×ÿÐ�ÉÃUH‰åHƒì H‰}øH‰uðH‰UèH‹MèH‹UðH‹EøH�5¦ÿÿÿH‰Çè]Jüÿ�ÉÃUH‰åHƒì H‰}èH‹EèºH�5Ð H‰ÇèfIüÿH‹H‰EøH‹E躾H‰Çè)üÿH‹UèH‹EøH�5.ýÿÿH‰Çèvÿÿÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5q H‰ÇèIüÿH‹H‰Eøè»hüÿH‰ÇèãŠüÿH‰EðHÇEèH‹UðH‹EøH‰ÖH‰Çè´ŒüÿH�UèH‹EðH‰Ñº¾sH‰Çè·KüÿH‹EèH‹H‹EèH‹HH‹EØH‰ÎH‰Çè�îÿÿH‹EðH‰Çè}oüÿ¸ÉÃUH‰åHƒì H‰}èH‹EèH�”(H�5Ê H‰Çè€^üÿÇEüþÿÿÿH‹EèºH�5ÕøÿÿH‰Çè�•üÿ‹MüH‹EèH�Ü ‰ÎH‰Çè9RüÿÇEøþÿÿÿH‹EèºH�5ŠùÿÿH‰ÇèJ•üÿ‹MøH‹EèH�° ‰ÎH‰ÇèRüÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰ÇèUüÿH‹Eð¶„Àu ‹Eü‰ÇèàNüÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Çèþ^üÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè²GüÿƒøtbH‹Eø¾þÿÿÿH‰Çè,‡üÿH‹UèH‹uðH‹EøH� É H‰Çè‰üÿ…Àt H‹EøH‰ÇèÁVüÿH‹Eø¾ÿÿÿÿH‰ÇèpaüÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰ÇèfYüÿ‹Uà‹MäH‹Eø‰ÎH‰Çè²yüÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�59 H‰Ç¸è|lüÿH‹EøH�E ¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰ÇèÍ`üÿò*EôH‹EøH‰ÇèHüÿH‹Eø¾ýÿÿÿH‰ÇèËXüÿH‹EøA¸¹ºÛH�5àH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çèï‰üÿéå‹Uà‹MäH‹Eè‰ÎH‰Çè–NüÿéÌH‹EèH�j ¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰ÇèÐ_üÿ‹UàH‹Eè‰ÖH‰Çè¿_üÿH‹EèA¸¹ºH�5 H‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çè Oüÿ‰EüH‹Eè¾þÿÿÿH‰Çè÷„üÿ‹EüëH‹EèH�5÷H‰Ç¸èÚjüÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�v¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çè_üÿ‹UüH‹Eè‰ÖH‰Ç資üÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰ÇèÀDüÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çè(eüÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèÛEüÿ龋MôH‹EøH�‰ÎH‰ÇèMüÿ…À…š‹UôH‹Eø‰ÖH‰ÇèÅdüÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèxEüÿëZ‹MôH‹EøH�¾‰ÎH‰Çè¾Lüÿ…ÀuA‹UôH‹Eø‰ÖH‰ÇèÙCüÿ‰ÂH‹Eø‰ÖH‰Çèi`üÿH‰ÂH‹EøH�5‹H‰Ç¸è>iüÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çè wüÿ‹UüH‹Eè‰ÖH‰Çè:füÿH‹Eè¾ÿÿÿÿH‰ÇèICüÿH‹Eè¾ÿÿÿÿH‰Çè8CüÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�h¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çè„vüÿH‹Eè¾þÿÿÿH‰ÇèUüÿ‹UüH‹Eè‰ÖH‰Çè²^üÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè+CüÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰ÇèÔaüÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰ÇèUtüÿ…ÀuIHƒ}ètH‹UèH‹EøH�5ïH‰Ç¸è~güÿë$H‹EøºH�5äH‰ÇèEH‹EøH‰ÇèQüÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�÷¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè“aüÿH‹E躾ÿÿÿÿH‰ÇèM>üÿ‹UüH‹Eè‰ÖH‰Ç蜈üÿH‹Eè¾ÿÿÿÿH‰Çè;AüÿH‹Eè¾ÿÿÿÿH‰Çè*Aüÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Çè�€üÿH‹E躾H‰ÇèGvüÿH‹UØH‹EèH‰ÖH‰ÇèaüÿH‹E躾ÿÿÿÿH‰Çè¾=üÿH‹Eè¾þÿÿÿH‰ÇèÍZüÿ‹UüH‹Eè‰ÖH‰ÇèüÿH‹Eø¾þÿÿÿH‰Çèˆüÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèQwüÿH‰EøH‹EèH�ö¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çè-Uüÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰ÇèÆ<üÿH‹Eè¾ÿÿÿÿH‰Çè5>üÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çè¯Müÿ‰EôH‹Eè¾ýÿÿÿH‰Çè›}üÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰ÇèÁ>üÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰ÇèŒ>üÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çè.=üÿƒøt ¸éüH‹EøH‰ÇèCVüÿéÍH‹Eø¾þÿÿÿH‰Çèý<üÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰ÇènLüÿ…ÀtH‹Eø¾þÿÿÿH‰ÇèY|üÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰ÇècˆüÿH‹EøºH�5ÍH‰ÇèìH‹Eø¾þÿÿÿH‰ÇèšNüÿH‹Eø¾H‰ÇèY{üÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèÑ{üÿH‹Eø¾þÿÿÿH‰Çèà~üÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèSüÿ‰EüH‹UàH‹EèH�5?H‰Çè{küÿH‹Eè¾îØÿÿH‰ÇèêUüÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çè%{üÿ¸ë‹UüH‹Eè‰ÖH‰Çè {üÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5’ÿH‰Ç¸ègiüÿéÜH‹EðH‹@¶H‹EèH‹@H‰ÇèÚ5üÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè»5üÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèÖIüÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5®÷H‰ÇèH‹<(H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5…÷H‰Ç¸è¦`üÿH‹…ÀïÿÿH�5n÷H‰Çè ^üÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5D÷H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5ÕöH‰Çè�XüÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5¬öH‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè".üÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè#züÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰ÇèUüÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰ÇèMpüÿ‹UüH‹…ÈïÿÿH�5ÃõH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çè^|üÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�õH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�ûôH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèlqüÿÉÃUH‰åHƒì H‰}è‰uäH�ðôH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�œôH‰EøH‹Eø¶üÿH‹UðH‹MøH‹EèH‰ÎH‰ÇèÿÿÿH‹EèH‹€ H‹UèHƒÂH9ÐtºþÿÿÿëºÿÿÿÿH‹EèH‹€0 ‰ÖH‰ÇèÍwüÿ�ÉÃUH‰åHƒìH‰}øH‹EøH‹� H‹EøH‹ˆ H‹EøH‹€0 H‰ÎH‰Çè3H‹EøH‹€ H‹UøHƒÂH9ÐtH‹EøH‹€0 ¾þÿÿÿH‰Çèbnüÿ�ÉÃUH‰åHƒì H‰}øH‰uðH‰UèHƒ}ètH‹EðëH�ÆðH‹UèH‹MøH‰ÆH‰Ïè43üÿH‹Eøº¾ÿÿÿÿH‰Çè.(üÿÉÃUH‰åHƒì H‰}ø‰uôH‰Uè‹UôH‹Eø‰ÖH‰Çèðâÿÿ‰EôH‹UèH‹EøH‰ÖH‰ÇèâAüÿ‹UôH‹Eø‰ÖH‰ÇèArüÿH‹Eø¾ÿÿÿÿH‰Çèà*üÿH‹Eø¾ÿÿÿÿH‰ÇèÏ*üÿÉÃUH‰åHƒì0H‰}ØÇEôHÇEøH‹EØH�ð¾H‰Çè^èÿÿH‹EغH�5 ðH‰ÇèóþÿÿH‹EؾÿÿÿÿH‰Çè�DüÿH‹EؾðØÿÿH‰Çè@MüÿH‹EؾÿÿÿÿH‰ÇèO*üÿH‹EؾÿÿÿÿH‰Çè>*üÿƒø„±H‹EؾþÿÿÿH‰Çè´iüÿH‹Eغ¾H‰Çè^_üÿH‹Eغ¾H‰ÇèH_üÿH‹EغH�5ïH‰ÇèQþÿÿH‹EØH�nï¾þÿÿÿH‰ÇèH3üÿH‹EؾþÿÿÿH‰Çè÷rüÿH‹EؾþÿÿÿH‰Çè¶CüÿH‹EؾþÿÿÿH‰Çè¥CüÿH‹EؾðØÿÿH‰ÇètEüÿH‹EؾþÿÿÿH‰ÇèClüÿH‹EØH‰Çè7iüÿ‰EôH‹EؾþÿÿÿH‰Çè3LüÿH‹EؾÿÿÿÿH‰ÇèB)üÿH‹EؾÿÿÿÿH‰ÇèáaüÿH‰EøHƒ}ø…dH‹EؾþÿÿÿH‰Çè¡hüÿH‹EؾH‰Çè@GüÿH‰Eøƒ}ôt|H‹Eøº¾H‰Çè 9üÿH‹EØH‰Çè¤hüÿH‹EؾþÿÿÿH‰ÇèÓBüÿH‹EؾüÿÿÿH‰Çè¢DüÿH‹EؾH‰ÇèamüÿH‹EؾþÿÿÿH‰Çè BüÿH‹EؾüÿÿÿH‰ÇèoDüÿé¼HÇEèH‹EؾH‰Çè!müÿH‹EؾýÿÿÿH‰Çè0KüÿH‹EؾÿÿÿÿH‰Çè?(üÿH‹EؾÿÿÿÿH‰ÇèÞ`üÿH‰EèHƒ}ètH‹EèH‹H‹EøH‰ëH‹Eøº¾H‰Çè½8üÿH‹EؾþÿÿÿH‰Çè|güÿH‹EØH‰Çè°güÿH‹EؾþÿÿÿH‰ÇèßAüÿH‹EؾüÿÿÿH‰Çè®CüÿH‹EؾýÿÿÿH‰Çè=güÿH‹EøÉÃUH‰åHƒì H‰}è‰uä‹UäH‹Eè‰ÖH‰Çè‡'üÿƒøuO‹UäH‹Eè‰ÖH‰Çè(üÿfH~ÀH‰Eø‹MäH‹E躉ÎH‰Çè&H‰EðòH*Eðf.Eøzf.Eøu¸ë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØÇEôH�Uô‹MäH‹Eè‰ÎH‰Çè>äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè†@üÿ‹UðH‹Eø‰ÖH‰Çèu@üÿ‹UôH‹Eø‰ÖH‰Çè$iüÿ‹UðH‹Eø‰ÖH‰ÇèiüÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çè÷<üÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�%ë¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�•ê¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çèá;üÿH‹Eø¾þÿÿÿH‰Çè 7üÿ‹UôH‹Eø‰ÖH‰Çèo[üÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè‰?üÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èxLüÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çèº%üÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�´é‰ÎH‰ÇèÚ,üÿ…À…�‹UäH‹Eè‰ÖH‰Çèñ#üÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5RéH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè™=üÿé3‹UäH‹Eè‰ÖH‰Çè-üÿ…ÀtH‹EèºH�5éH‰ÇèÈ÷ÿÿéH‹EèºH�5öèH‰Çè«÷ÿÿéä‹MäH‹EèH�áè‰ÎH‰Çè­Iüÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çè#üÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰ÇèÒüÿë‹UüH‹Eè‰ÖH‰Çèo?üÿH‰Eð‹UäH‹Eè‰ÖH‰Çè SüÿH‰ÁH‹UðH‹EèH�5ièH‰Ç¸èËPüÿƒ}øtCH‹Eè¾þÿÿÿH‰ÇèTeüÿ�ë/H‹Eè¾ÿÿÿÿH‰Çè°cüÿ…ÀuH‹EèH�5)èH‰Ç¸èäGüÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè,üÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�xç¾H‰ÇèÏßÿÿH‹EøH�êç¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çè^ üÿH‹Eø¾ÿÿÿÿH‰ÇèÍ!üÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèDaüÿH‹MèH‹EøºH‰ÎH‰ÇèLnüÿH‹UðH‹EøH‰ÖH‰Çè©AüÿH‹Eøº¾ÿÿÿÿH‰ÇècüÿH‹Eøº¾H‰ÇèíSüÿH‹Eø¾ÿÿÿÿH‰Çè\;üÿH‹UðH‹Eø¾ýÿÿÿH‰Çè·*üÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè0;üÿH‹UðH‹Eø¾îØÿÿH‰Çè‹*üÿH‹Eø¾þÿÿÿH‰ÇèÊcüÿ�ÉÃUH‰åHƒì0H‰}؉uÔHÇEø‹UÔH‹E؉ÖH‰Çèbüÿ…Àt;HÇEèH�Uè‹MÔH‹E؉ÎH‰ÇèžüÿH‰EðH‹Eè‰ÂH‹Eð‰ÖH‰Çè¶üÿH‰Eøë^‹UÔH‹EØH�5‡æH‰ÇèúiüÿH…Àt+‹UÔH‹EØH�5læH‰ÇèÏüÿH‹H‰EøH‹EøH‰Çè<^üÿë‹MÔH‹EØH�Tæ‰ÎH‰Çè’%üÿH‹EøÉÃUH‰åHƒì H‰}èH�MûH‹EèºH‰ÎH‰Çè¸Küÿ‰EüH‹E蹺¾H‰ÇèZ"üÿƒ}üu¶Eû<0u¸ë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØHÇEø‹UäH‹Eè‰ÖH‰Çè¢üÿƒÀƒø‡‰ÀH�…H�1æ‹H˜H�%æHÐÿà‹MäH‹E躉ÎH‰ÇèNüÿH‰Çè¶üÿH‰EøéÖ‹MäH‹E躉ÎH‰Çè øÿÿ‰ÇèGüÿH‰ÇèˆüÿH‰Eøé¨‹UäH‹EèH�5LåH‰Çè‰hüÿH…Àt6‹UäH‹EèH�51åH‰Çè^üÿH‹H‰ÇèsSüÿ‰Çè¼FüÿH‰Çè4üÿH‰EøëS‹UäH‹EèH�5åH‰Çè8hüÿH…Àt8‹UäH‹EèH�5ôäH‰Çè üÿH‹H‰EøëHƒ}ØtH‹EØH‰ÇèáüÿH‰Eøë�ë�Hƒ}ØtHƒ}øu‹MäH‹EèH�Ãä‰ÎH‰Çè±#üÿH‹EøÉÃUH‰åHƒì0H‰}è‰uäH‰UØH‹UØ‹MäH‹Eè‰ÎH‰Çè5üÿH‰EøHƒ}øu‹MäH‹EèH�rä‰ÎH‰Çè`#üÿH‹EøÉÃUH‰åHƒì0H‰}è‰uäH‰UØHÇEø‹UäH‹Eè‰ÖH‰ÇèÎüÿƒÀƒø‡‰ÀH�…H�Ýä‹H˜H�ÑäHÐÿà‹MäH‹E躉ÎH‰ÇèzüÿH‰ÇèBüÿH‰EøéÖ‹MäH‹E躉ÎH‰Çè7öÿÿ‰ÇèH‹EèH‹@H‰Çèüÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çèþüÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèüÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5qËH‰ÇèH‹W (H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5HËH‰Ç¸èé-üÿH‹…ÀïÿÿH�51ËH‰Çèã+üÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5ËH‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5˜ÊH‰ÇèÓ%üÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5oÊH‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰ÇèeûûÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰ÇèfGüÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰ÇèJ"üÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè�=üÿ‹UüH‹…ÈïÿÿH�5†ÉH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çè¡Iüÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�ØÈH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�¾ÈH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çè¯>üÿÉÃUH‰åHƒì H‰}è‰uäH�³ÈH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�_ÈH‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰ÇèÉ üÿ‹UðH‹Eø‰ÖH‰Çè¸ üÿ‹UôH‹Eø‰ÖH‰Çèg6üÿ‹UðH‹Eø‰ÖH‰ÇèV6üÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çè: üÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�è¾¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�X¾¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çè$ üÿH‹Eø¾þÿÿÿH‰Çècüÿ‹UôH‹Eø‰ÖH‰Çè²(üÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰ÇèÌ üÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'è»üÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèýòûÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�w½‰ÎH‰Çèúûÿ…À…�‹UäH‹Eè‰ÖH‰Çè4ñûÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5½H‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰ÇèÜ üÿé3‹UäH‹Eè‰ÖH‰ÇèFúûÿ…ÀtH‹EèºH�5ѼH‰ÇèÈ÷ÿÿéH‹EèºH�5¹¼H‰Çè«÷ÿÿéä‹MäH‹EèH�¤¼‰ÎH‰Çèðüÿ…ÀtH‹Eè¾ÿÿÿÿH‰ÇèKðûÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çèíûÿë‹UüH‹Eè‰ÖH‰Çè² üÿH‰Eð‹UäH‹Eè‰ÖH‰ÇèM üÿH‰ÁH‹UðH‹EèH�5,¼H‰Ç¸èüÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè—2üÿ�ë/H‹Eè¾ÿÿÿÿH‰Çèó0üÿ…ÀuH‹EèH�5ì»H‰Ç¸è'üÿë�H‹UØH‹Eè¾ÿÿÿÿH‰ÇèoìûÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�;»¾H‰ÇèÏßÿÿH‹EøH�­»¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çè¡íûÿH‹Eø¾ÿÿÿÿH‰Çèïûÿ…À…ŽH‹Eø¾þÿÿÿH‰Çè‡.üÿH‹MèH‹EøºH‰ÎH‰Çè�;üÿH‹UðH‹EøH‰ÖH‰ÇèìüÿH‹Eøº¾ÿÿÿÿH‰Çè¦ëûÿH‹Eøº¾H‰Çè0!üÿH‹Eø¾ÿÿÿÿH‰ÇèŸüÿH‹UðH‹Eø¾ýÿÿÿH‰Çèú÷ûÿƒ}ät&H‹Eø¾ÿÿÿÿH‰ÇèsüÿH‹UðH‹Eø¾îØÿÿH‰ÇèÎ÷ûÿH‹Eø¾þÿÿÿH‰Çè 1üÿ�ÉÃUH‰åHƒì`H‰}¨H‹E¨ºH�5�ºH‰ÇèØÿÿH‰EèHƒ}èu/H‹E¨¾H‰Çèúíûÿ…ÀtH‹E¨¾H‰Çè5òûÿë ¸ë¸H‰EàH‹E¨ºH�55ºH‰Çè+íûÿH‹H‰EØH‹E¨H�(º¾H‰ÇèL'üÿH‰EÐÇEüHƒ}èu!Hƒ}àuH‹E¨H�º¾H‰ÇèËòûÿ…À�Hƒ}àtkH‹EØH‰ÇèuüÿH‰EÈH‹EØH‰ÇèeüÿH‰EÀH‹Eà¾H‰Çè üÿH‰E¸H‹M¸H‹UÀH‹uÈH‹EÐH‰Çè”0üÿH‰EðH‹E¸H‰ÇèdüÿH‹EàH‰Çè8!üÿëH‹UØH‹MèH‹EÐH‰ÎH‰Çèÿ üÿH‰EðHƒ}ðtOHƒ}ðt5H‹E¨¾H‰Çèü üÿH‰ÂH‹EðH‰H‹E¨ºÿÿÿÿH�5Q¹H‰Çèzèûÿë H‹E¨H‰Çè¼üÿÇEü‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5¹H‰ÇèÌëûÿH‹H‰EøH‹EøH‰Çèùøûÿ¸ÉÃUH‰åHƒì0H‰}ØÇEüHÇEàH�UàH‹EØH‰Ñº¾H‰ÇèüÿH‰EðèñêûÿH‰EèHƒ}ètxH‹EàH…ÀtH‹Eà‰ÂëºÿÿÿÿH‹MðH‹EèH‰ÎH‰Çè !üÿHƒ}èt5H‹EؾH‰Çèõ üÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5^¸H‰Çèsçûÿë H‹EØH‰ÇèµüÿÇEü‹EüÉÃUH‰åHƒì0H‰}ØÇEüH‹EؾH‰Çè•-üÿH‰EðH‹EØH‰ÇèEüÿƒø~H‹EؾH‰Çè? üÿ븉Eìƒ}ìt0H‹EðA¹A¸¹H‰ÂH�5Ø·H‹¡ô'H‰ÇèQíûÿë%H‹Eð¹H‰ÂH‹„ô'H‰ÆH‹úó'H‰ÇèÊ(üÿH‰EàH‹EðH‰ÇèüÿHƒ}àtOHƒ}àt5H‹EؾH‰ÇèÛüÿH‰ÂH‹EàH‰H‹EغÿÿÿÿH�5D·H‰ÇèYæûÿë H‹EØH‰Çè›üÿÇEü‹EüÉÃUH‰åHƒì0H‰}ØH‹EؾH‰Çè‚,üÿH‰EðH‹EØH‰Çè2üÿƒø~H‹EؾH‰Çè, üÿ븉EìÇEüƒ}ìt0H‹EðA¹A¸¹H‰ÂH�5˶H‹wó'H‰Çè7ìûÿë%H‹Eð¹H‰ÂH‹Zó'H‰ÆH‹xó'H‰Çè°'üÿH‰EàHƒ}àtOHƒ}àt5H‹EؾH‰ÇèÍüÿH‰ÂH‹EàH‰H‹EغÿÿÿÿH�5f¶H‰ÇèKåûÿë H‹EØH‰Çè�üÿÇEüH‹EðH‰Çèªüÿ‹EüÉÃUH‰åHƒì H‰}èÇEüèüÿH‰EðHƒ}ðtOHƒ}ðt5H‹Eè¾H‰ÇèJüÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5ùµH‰ÇèÈäûÿë H‹EèH‰Çè üÿÇEü‹EüÉÃUH‰åHƒì@H‰}ÈHÇEèHÇEàHÇEØHÇEÐH‹EȺH�5AµH‰ÇèúçûÿH‹H‰EøH‹}øH�MÐH�UàH�uØH�EèI‰øH‰Çè4íûÿ‰Eôƒ}ô…H‹EȺ¾H‰Çè‘üÿH‹EȺ H�5QµH‰ÇèWïÿÿH‹UØH‹EÈH‰ÖH‰Çè!üÿH‹EȾýÿÿÿH‰ÇèõüÿH‹EȺH�5#µH‰ÇèïÿÿH‹MèH‹EȺH‰ÎH‰Çè•0üÿH‹EȾýÿÿÿH‰Çè´üÿH‹EȺ H�5ñ´H‰ÇèÚîÿÿH‹MàH‹EȺH‰ÎH‰ÇèT0üÿH‹EȾýÿÿÿH‰ÇèsüÿH‹EȺ H�5¾´H‰Çè™îÿÿH‹MÐH‹EȺH‰ÎH‰Çè0üÿH‹EȾýÿÿÿH‰Çè2üÿƒ}ô”À¶ÀÉÃUH‰åHƒì0H‰}ØH‹EغH�5ݳH‰Çè‚æûÿH‹H‰EðH‹EغH�5ª³H‰ÇècæûÿH‹H‰EèÇEüHÇEàH‹EèH‰ÇèAêûÿH‰EèH‹UèH‹EðH‰ÖH‰ÇèêüÿH‰EàHƒ}àtQHƒ}àt5H‹EؾH‰Çè×üÿH‰ÂH‹EàH‰H‹EغÿÿÿÿH�5Õ³H‰ÇèUâûÿë H‹EØH‰Çè—ÿûÿÇEüë H‹EèH‰Çèóûÿ‹EüÉÃUH‰åHƒì0H‰}ØH‹EغH�5ô²H‰Çè™åûÿH‹H‰EøH‹EغH�5~³H‰ÇèzåûÿH‹H‰EðH‹EøH‰Çè&üÿHcÐH‹EؾH‰Çè³ëûÿ‰Eì‹UìH‹MðH‹EøH‰ÎH‰Çè:ðûÿ‰Eè‹UèH‹E؉ÖH‰Çè–üÿÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5[²H‰ÇèåûÿH‹H‰EðH‹EÈH‰Çè}üûÿƒø~H‹EȾH‰Çèwüÿ븉EìÇEüè�üÿH‰Çè©&üÿH‰Eàƒ}ìtCH‹UðH‹EàHƒìjjjA¹A¸H‰ÑH‰ÂH�5ì±H‹½î'H‰ÇèüÿHƒÄ ‰EüëH‹UðH‹EàH‰ÆH‹šî'H‰Çè üÿ‰Eüƒ}üu;H�UØH‹EàH‰Ñº¾sH‰Çè,çûÿH‹EØH‹H‹EØH‹HH‹EÈH‰ÎH‰ÇèÌëÿÿH‹EàH‰Çèò üÿƒ}üt‹UüH‹EȉÖH‰Çè[üÿë‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5±H‰ÇèÀãûÿH‹H‰EøH‹EøH‰Çè çûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ݰH‰Çè‚ãûÿH‹H‰EøH‹EøH‰Çè?üÿ‰Eô‹UôH‹Eè‰ÖH‰Çè«(üÿ¸ÉÃUH‰åSHƒìXH‰}¨H‹E¨ºH�5аH‰Çè/ãûÿH‹H‰EØH‹E¨ºH�5°H‰ÇèãûÿH‹H‰EÐH‹E¨ºH�5 ±H‰ÇèñâûÿH‹H‰EÈHÇEèHÇEÀÇEäH‹E¨¾H‰ÇèRãûÿ…À ÇEäëH‹E¨¾H‰Çèt)üÿH‰Eè‹EäHcÐH‹E¨¾H‰Çèéèûÿ‰EäH‹E¨¾H‰Çèãûÿ…À~H‹E¨H�u¯¾H‰Çè™üÿë¸H‰EÀ‹EäLcÀH‹}èH‹MÀH‹UÈH‹uÐH‹EØM‰ÁI‰øH‰Çè† üÿ‰E¼‹U¼H‹E¨‰ÖH‰Çèb'üÿHƒ}èt)H‹ìë'H‰Çè|ÌÿÿH‰ÃH‹EèH‰Çè_ÌÿÿH‰ÞH‰Çè"'üÿ¸HƒÄX[]ÃUH‰åHƒì@H‰}ÈH‹EȺH�5 ¯H‰Çè²áûÿH‹H‰EðH‹EȺ¾H‰ÇèuüÿH‹EðH‰Çè™ üÿ‰EìH‹EȺ¾H‰ÇèPüÿÇEü阋UüH‹Eð‰ÖH‰ÇècüÿH‰EàH‹EàH‰Çès/üÿH‰EØH‹EØH‰Çè3åûÿH‰EØHƒ}Øt5H‹EȾH‰ÇèçÿûÿH‰ÂH‹EØH‰H‹EȺÿÿÿÿH�5<®H‰ÇèeÝûÿë H‹EÈH‰Çè§úûÿ‹Eü�PH‹EȾþÿÿÿH‰ÇèÐÿûÿƒEü‹Eü;EìŒ\ÿÿÿH‹EÈH�Ù®¾þÿÿÿH‰Çè¸êûÿH‹EðH‰ÇèL!üÿ‰EìH‹EȺ¾H‰ÇècüÿÇEü鈋UüH‹Eð‰ÖH‰Çè¦üÿH‰EÐH‹EÐH‰ÇèæõûÿH‰EÐHƒ}Ðt5H‹EȾH‰Çè ÿûÿH‰ÂH‹EÐH‰H‹EȺÿÿÿÿH�5®H‰ÇèˆÜûÿë H‹EÈH‰ÇèÊùûÿ‹Eü�PH‹EȾþÿÿÿH‰ÇèóþûÿƒEü‹Eü;EìŒlÿÿÿH‹EÈH�®¾þÿÿÿH‰ÇèÛéûÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ã­H‰Çè ßûÿH‹H‰EøH‹EغH�5…­H‰Çè�ßûÿH‹H‰EðH‹EøH‰ÇèÞüÿHcÐH‹EؾH‰Çèºåûÿ‰Eì‹UìH‹MðH‹EøH‰ÎH‰ÇèAÝûÿ‰Eè‹UèH‹E؉ÖH‰Çè� üÿÉÃUH‰åHƒìpH‰}˜H‹E˜ºH�5J­H‰ÇèßûÿH‹H‰EðÇEìÇE¼ÿÿÿÿHÇE°HÇE¨H‹E˜º¾H‰Çè¬üÿH‹EðH‰Çè`òûÿH‰EàH‹E˜ºH�5ÿ¬H‰ÇèbæÿÿH‹EàH‰Çè˜âûÿH‰EàHƒ}àt5H‹E˜¾H‰ÇèLýûÿH‰ÂH‹EàH‰H‹E˜ºÿÿÿÿH�5¡«H‰ÇèÊÚûÿë H‹E˜H‰Çè øûÿH‹E˜¾ýÿÿÿH‰Çè»úûÿH�M¨H�U°H�u¼H‹EðA¸H‰Çè}éûÿ‰EìÇEÜþÿÿÿ‹EìHcÐH‹E˜H‰ÖH‰Çènõûÿ‹MÜH‹E˜H�F¬‰ÎH‰ÇèöçûÿÇEØþÿÿÿ‹EìH˜H‰Çè’%üÿH‰ÂH‹E˜H‰ÖH‰ÇèpþûÿH‹E˜º¾ÿÿÿÿH‰Çè*Ûûÿ‹MØH‹E˜H�ù«‰ÎH‰Çè¢çûÿÇEÔþÿÿÿ‹E¼HcÐH‹E˜H‰ÖH‰Çèæôûÿ‹MÔH‹E˜H�Ы‰ÎH‰ÇènçûÿÇEÐþÿÿÿ‹E¼H˜H‰ÇèZ÷ûÿH‰ÂH‹E˜H‰ÖH‰ÇèèýûÿH‹E˜º¾ÿÿÿÿH‰Çè¢Úûÿ‹MÐH‹E˜H�ƒ«‰ÎH‰ÇèçûÿH‹E°H…ÀtAH‹E˜º H�5k«H‰Çè§äÿÿH‹M°H‹E˜ºH‰ÎH‰Çè!&üÿH‹E˜¾ýÿÿÿH‰Çè@ùûÿH‹E¨H…ÀtAH‹E˜º H�5,«H‰Çè]äÿÿH‹M¨H‹E˜ºH‰ÎH‰Çè×%üÿH‹E˜¾ýÿÿÿH‰ÇèöøûÿH‹EðH‰ÇèÚüÿ‰Ẽ}ÌŽðH‹E˜H�5‚ªH‰ÇèúüûÿH‹E˜º¾ÿÿÿÿH‰Çè´ÙûÿH‹E˜º¾H‰ÇèþüÿÇEü鈋UüH‹Eð‰ÖH‰ÇèA'üÿH‰EÀH‹EÀH‰Çè�ñûÿH‰EÀHƒ}Àt5H‹E˜¾H‰Çè¥úûÿH‰ÂH‹EÀH‰H‹E˜ºÿÿÿÿH�5·©H‰Çè#Øûÿë H‹E˜H‰Çèeõûÿ‹Eü�PH‹E˜¾þÿÿÿH‰ÇèŽúûÿƒEü‹Eü;EÌŒlÿÿÿH‹E˜¾ýÿÿÿH‰Çèí÷ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5…©H‰ÇèBÛûÿH‹H‰EøH‹EèH‰ÇèïôûÿH‹UøH‹Eè¾ðØÿÿH‰Çè1Ëÿÿ¸ÉÃUH‰åHƒì`H‰}¨ÇEüH‹E¨ºH�5‰¨H‰ÇèèÚûÿH‹H‰EèH‹E¨ºH�5¨H‰ÇèÉÚûÿH‹H‰EàH‹E¨¾H‰ÇèA)üÿ‰EÜH‹E¨¾H‰Çè-)üÿ‰EØ¿è°üûÿH‰EÐHÇEðHÇEÈHÇEÀHÇE¸H‹E¨¾H‰ÇèëÚûÿ…Àt,èBüÿH‰EðH‹E¨¾H‰ÇèÍ(üÿHcÐH‹EðH‰ÖH‰Çè üÿH‹UÐH‹E¨¾H‰ÇèvàûÿH˜H‰EÐèûüÿH‰EÈH‹UÐH‹EÈH‰ÖH‰ÇèÔüÿH‹EÐH��€QH‹E¨¾H‰Çè8àûÿH˜H‰E°è½üÿH‰EÀH‹U°H‹EÀH‰ÖH‰Çè–üÿL‹EÈH‹}ð‹MØ‹UÜH‹uàH‹EèHƒìÿuÀM‰ÁI‰øH‰Çè‹öûÿHƒÄH‰E¸Hƒ}¸tuHƒ}¸t5H‹E¨¾H‰Çè4øûÿH‰ÂH‹E¸H‰H‹E¨ºÿÿÿÿH�5…§H‰Çè²Õûÿë H‹E¨H‰ÇèôòûÿÇEüH‹E¨¾H‰Çè¼óûÿH‹U¸H‹E¨¾ðØÿÿH‰ÇèÉÿÿH‹EðH‰Çè üÿH‹EÈH‰ÇèÿüÿH‹EÀH‰Çèóüÿ‹EüÉÃUH‰åHƒì0H‰}ØH‹EغH�5[¦H‰ÇèºØûÿH‹H‰EøH‹EغH�5Ÿ¦H‰Çè›ØûÿH‹H‰EðH‹EøH‰ÇèèüÿHcÐH‹EؾH‰ÇèÔÞûÿ‰Eì‹UìH‹MðH‹EøH‰ÎH‰Çè›êûÿ‰Eè‹UèH‹E؉ÖH‰Çè·üÿÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5Â¥H‰Çè!ØûÿH‹H‰EøH‹E¸ºH�5 ¥H‰ÇèØûÿH‹H‰EðH‹E¸ºH�5þ¥H‰Çèã×ûÿH‹H‰EèH‹E¸H�ाH‰ÇèüÿH‰EàH‹E¸¾H‰Çè?Øûÿ…À~H‹E¸¾H‰Çèjüÿë¸H‰EØH‹E¸º¾H‰ÇèÙÝûÿH˜H‰EÐL‹EÐH‹}ØH‹MàH‹UèH‹uðH‹EøM‰ÁI‰øH‰ÇèM üÿ‰EÌ‹UÌH‹E¸‰ÖH‰Çè©üÿÉÃUH‰åSHƒìxH‰}ˆH‹EˆºH�5³¤H‰Çè×ûÿH‹H‰EàHÇE¨HÇE H‹Eˆº¾H‰ÇèÅ üÿH‹EàH‰ÇèùüÿH‰EØHƒ}ØtAH‹Eˆº H�5N¥H‰ÇètÞÿÿH‹MØH‹EˆºH‰ÎH‰ÇèîüÿH‹Eˆ¾ýÿÿÿH‰Çè óûÿH‹EàH‰ÇèAÿûÿH‰EÐHƒ}ЄH‹EÐH‰ÇèÊÀÿÿH‰Çèþäûÿ‰Ẽ}ÌŽæH‹EˆºH�5ܤH‰Çè÷ÝÿÿH‹Eˆº¾H‰Çè üÿÇEìé�H‹EÐH‰ÇèoÀÿÿH‰Â‹Eì‰ÆH‰×èküÿH‰EÀH‹EÀH‰Çè{úûÿHƒ}Àt5H‹Eˆ¾H‰Çè£ôûÿH‰ÂH‹EÀH‰H‹EˆºÿÿÿÿH�5»¢H‰Çè!Òûÿë H‹EˆH‰Çècïûÿ‹Eì�PH‹Eˆ¾þÿÿÿH‰ÇèŒôûÿƒEì‹Eì;EÌŒeÿÿÿH‹Eˆ¾ýÿÿÿH‰ÇèëñûÿH�U H�M¨H‹EàH‰ÎH‰Çèüÿƒø…�H‹E¨H…ÀtAH‹EˆºH�5…£H‰ÇèèÜÿÿH‹M¨H‹EˆºH‰ÎH‰ÇèbüÿH‹Eˆ¾ýÿÿÿH‰Çè�ñûÿH‹E H…Àt üÿH‹EøºH�5ˆ“H‰ÇèìH‹Eø¾þÿÿÿH‰ÇèuÓûÿH‹Eø¾H‰Çè4üÿ¸ë/H‹Eø¾þÿÿÿH‰Çè¬üÿH‹Eø¾þÿÿÿH‰Çè»üÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çèà×ûÿ‰EüH‹UàH‹EèH�5ú’H‰ÇèVðûÿH‹Eè¾îØÿÿH‰ÇèÅÚûÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çèüÿ¸ë‹UüH‹Eè‰ÖH‰Çèèÿûÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5M’H‰Ç¸èBîûÿéÜH‹EðH‹@¶H‹EèH‹@H‰Ç赺ûÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè–ºûÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çè±ÎûÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5iŠH‰ÇèH‹ïÀ'H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5@ŠH‰Ç¸è�åûÿH‹…ÀïÿÿH�5)ŠH‰Çè{ãûÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5ÿ‰H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5�‰H‰ÇèkÝûÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5g‰H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çèý²ûÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çèþþûÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰ÇèâÙûÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè(õûÿ‹UüH‹…ÈïÿÿH�5~ˆH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çè9üÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�ЇH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�¶‡H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèGöûÿÉÃUH‰åHƒì H‰}è‰uäH�«‡H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�W‡H‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰ÇèaÅûÿ‹UðH‹Eø‰ÖH‰ÇèPÅûÿ‹UôH‹Eø‰ÖH‰Çèÿíûÿ‹UðH‹Eø‰ÖH‰ÇèîíûÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰ÇèÒÁûÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�à}¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�P}¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çè¼ÀûÿH‹Eø¾þÿÿÿH‰Çèû»ûÿ‹UôH‹Eø‰ÖH‰ÇèJàûÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰ÇèdÄûÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èSÑûÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Ç蕪ûÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�o|‰ÎH‰Çèµ±ûÿ…À…�‹UäH‹Eè‰ÖH‰Çę̀ûÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5 |H‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰ÇètÂûÿé3‹UäH‹Eè‰ÖH‰ÇèÞ±ûÿ…ÀtH‹EèºH�5É{H‰ÇèÈ÷ÿÿéH‹EèºH�5±{H‰Çè«÷ÿÿéä‹MäH‹EèH�œ{‰ÎH‰ÇèˆÎûÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çèã§ûÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çè­¤ûÿë‹UüH‹Eè‰ÖH‰ÇèJÄûÿH‰Eð‹UäH‹Eè‰ÖH‰Çèå×ûÿH‰ÁH‹UðH‹EèH�5${H‰Ç¸è¦Õûÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè/êûÿ�ë/H‹Eè¾ÿÿÿÿH‰Çè‹èûÿ…ÀuH‹EèH�5äzH‰Ç¸è¿Ìûÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè¤ûÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�3z¾H‰ÇèÏßÿÿH‹EøH�¥z¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çè9¥ûÿH‹Eø¾ÿÿÿÿH‰Ç訦ûÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèæûÿH‹MèH‹EøºH‰ÎH‰Çè'óûÿH‹UðH‹EøH‰ÖH‰Çè„ÆûÿH‹Eøº¾ÿÿÿÿH‰Çè>£ûÿH‹Eøº¾H‰ÇèÈØûÿH‹Eø¾ÿÿÿÿH‰Çè7ÀûÿH‹UðH‹Eø¾ýÿÿÿH‰Çè’¯ûÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè ÀûÿH‹UðH‹Eø¾îØÿÿH‰Çèf¯ûÿH‹Eø¾þÿÿÿH‰Çè¥èûÿ�ÉÃUH‰åHƒì@H‰}ÈHÇEÐH�UÐH‹EȾH‰Ç艳ûÿH‰EðH‹EȺ¾H‰Çè?ßûÿH‰Eè覱ûÿH‰EàH‹EЉÂH‹MðH‹EàH‰ÎH‰Çèéòûÿ‰EüH‹EèH‰Ç躮ûÿHcÐH‹EÐH9ÂtH‹EÈH�5yH‰Ç¸èÆÊûÿƒ}ü…Žè·ÄûÿH‰EØH‹UèH‹EØH‰ÖH‰ÇèðÜûÿƒ}üuH‹UØH‹EàH‰ÖH‰Çè7ïûÿ‰EüH‹EØH‰Çè¨ÐûÿHƒ}àt5H‹EȾH‰ÇèÃûÿH‰ÂH‹EàH‰H‹EȺÿÿÿÿH�5³xH‰Ç莠ûÿë"H‹EÈH‰Çèнûÿë‹UüH‹EȉÖH‰ÇèmÒûÿ‰Eü‹EüÉÃUH‰åHƒì0H‰}ØHÇEðH�UðH‹EؾH‰Çè<²ûÿH‰EèH‹EðH‰ÂH�EèH‰Æ¿èð¯ûÿH‰EøHƒ}øtJHƒ}øt5H‹EؾH‰Çè]ÂûÿH‰ÂH‹EøH‰H‹EغÿÿÿÿH�5xH‰ÇèÛŸûÿëH‹EØH‰Çè½ûÿë H‹EØH‰Çè½ûÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5¹wH‰Çè$£ûÿH‹H‰EðHÇEèH�UèH‹EðH‰ÖH‰Çèâ¬ûÿ‰Eüƒ}üx:‹EüHcÐH‹MèH‹EØH‰ÎH‰ÇèóÿÿH‹EèºLH�5twH‰Çè8¹ûÿÇEüë‹UüH‹E؉ÖH‰ÇèÑûÿ‰Eü‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5wH‰Çè‚¢ûÿH‹H‰EøH‹EøH‰Ç读ûÿH‰EðH‹MðH‹EèºH‰ÎH‰Çè£ëûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5½vH‰Çè(¢ûÿH‹H‰EøH‹EøH‰Çè¥èûÿH‰EðH‹EðH‰Çè%°ûÿH‰EðHƒ}ðt5H‹Eè¾H‰Çè¹ÀûÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5}vH‰Çè7žûÿë H‹EèH‰Çèy»ûÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5#vH‰Ç莡ûÿH‹H‰EøH‹EøH‰Ç軺ûÿH‰EðH‹EøH‰ÇèûçûÿH‰EèH‹Eغ¾H‰Çè1×ûÿH‹MðH‹EغH‰ÎH‰Çè‰êûÿH‹EØH�ïu¾þÿÿÿH‰Çè1«ûÿH‹EèH‰Çè5¯ûÿH‰EèHƒ}èt5H‹EؾH‰ÇèÉ¿ûÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5�uH‰ÇèG�ûÿë H‹EØH‰Ç艺ûÿH‹EØH�ƒu¾þÿÿÿH‰ÇèÁªûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5uH‰Ç膠ûÿH‹H‰EøH‹EøH‰ÇèsåûÿH‰EøHƒ}øt5H‹Eè¾H‰Çè'¿ûÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5ÊtH‰Ç襜ûÿë H‹EèH‰Çèç¹ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5‘tH‰ÇèüŸûÿH‹H‰EøH‹EøH‰Çè íûÿ¸ÉÃUH‰åHƒìPH‰}¸HÇEðÇEìÇEèHÇEàHÇEØHÇEÐHÇEÈH‹E¸¾H‰ÇèîûÿH‰Eð‹EìHcÐH‹E¸¾H‰ÇèÔ¥ûÿ‰Eì‹EèHcÐH‹E¸¾H‰Ç躥ûÿ‰EèèbÎûÿH‰Eàè9îûÿH‰EØè0îûÿH‰EÐè'îûÿH‰EÈH‹UðH‹EØH‰ÖH‰Çèà´ûÿ‰Eüƒ}üuH‹UØH‹EàH‰ÖH‰Çèd¡ûÿ‰Eüƒ}üu4‹EìHcÐH‹EÐH‰ÖH‰Ç覴ûÿ‰Eüƒ}üuH‹UÐH‹EàH‰ÖH‰Çè:Ùûÿ‰Eüƒ}üu4‹EèHcÐH‹EÈH‰ÖH‰Çèl´ûÿ‰Eüƒ}üuH‹UÈH‹EàH‰ÖH‰ÇèP©ûÿ‰Eüƒ}üuJHƒ}àt5H‹E¸¾H‰Çè?½ûÿH‰ÂH‹EàH‰H‹E¸ºÿÿÿÿH�57sH‰Ç轚ûÿë!H‹E¸H‰Çèÿ·ûÿëH‹EàH‰Çè±çûÿÇEüH‹EØH‰Çè³ûÿH‹EÐH‰Çè³ûÿH‹EÈH‰Çèö²ûÿ‹EüÉÃUH‰åHƒì@H‰}ÈÇEüH‹EȺH�5ÀrH‰ÇèÖ�ûÿH‹H‰EðH‹EȾH‰ÇèNžûÿƒøÿu7H‹EðH‰ÇèM¶ûÿH‰EèH‹EèH‰Çè�™ûÿH‰ÂH‹EÈH‰ÖH‰Çèû´ûÿÇEüëpH‹EȾH‰ÇèìûÿH‰EàèXìûÿH‰EØH‹UàH‹EØH‰ÖH‰Çè³ûÿ‰Eüƒ}üuH‹UØH‹EðH‰ÖH‰Ç蕟ûÿ‰Eü‹UüH‹EȉÖH‰Çè‘Ëûÿ‰EüH‹EØH‰Çè²ûÿ‹EüÉÃUH‰åHƒì@H‰}ÈÇEüH‹EȺH�5ÌqH‰ÇèâœûÿH‹H‰EðH‹EȾH‰ÇèZ�ûÿƒøÿu7H‹EðH‰Çè©àûÿH‰EèH‹EèH‰Ç虘ûÿH‰ÂH‹EÈH‰ÖH‰Çè´ûÿÇEüëqH‹EȾH‰Çè ëûÿ‰EäèeëûÿH‰EØ‹EäHcÐH‹EØH‰ÖH‰Çè²ûÿ‰Eüƒ}üuH‹UØH‹EðH‰ÖH‰Çè°Öûÿ‰Eü‹UüH‹EȉÖH‰ÇèœÊûÿ‰EüH‹EØH‰Çè ±ûÿ‹EüÉÃUH‰åHƒì@H‰}ÈÇEüH‹EȺH�5×pH‰Çèí›ûÿH‹H‰EðH‹EȾH‰Çèeœûÿƒøÿu7H‹EðH‰ÇèT·ûÿH‰EèH‹EèH‰Ç褗ûÿH‰ÂH‹EÈH‰ÖH‰Çè³ûÿÇEüëqH‹EȾH‰Çèêûÿ‰EäèpêûÿH‰EØ‹EäHcÐH‹EØH‰ÖH‰Çè'±ûÿ‰Eüƒ}üuH‹UØH‹EðH‰ÖH‰Çè ¦ûÿ‰Eü‹UüH‹EȉÖH‰Çè§Éûÿ‰EüH‹EØH‰Çè°ûÿ‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5éoH‰ÇèÿšûÿH‹H‰EøH‹EøH‰Çèì«ûÿH‰EøHƒ}øt5H‹Eè¾H‰Çè ¹ûÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5˜oH‰Çè—ûÿë H‹EèH‰Çè`´ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5_oH‰ÇèušûÿH‹H‰EøH‹EøH‰Çèâãûÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5!oH‰Çè7šûÿH‹H‰EðHÇEèH�UèH‹EðH‰ÖH‰Çè5³ûÿ‰Eüƒ}üx:‹EüHcÐH‹MèH‹EØH‰ÎH‰ÇèêÿÿH‹Eèº;H�5‡nH‰ÇèK°ûÿÇEüë‹UüH‹E؉ÖH‰Çè1Èûÿ‰Eü‹EüÉÃUH‰åHƒì0H‰}ØHÇEðH�UðH‹EؾH‰Çè¨ûÿH‰EèH‹EðH‰ÂH�EèH‰Æ¿èô§ûÿH‰EøHƒ}øtJHƒ}øt5H‹EؾH‰Çè!¸ûÿH‰ÂH‹EøH‰H‹EغÿÿÿÿH�5nH‰Ç蟕ûÿëH‹EØH‰Çèá²ûÿë H‹EØH‰ÇèÓ²ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ÒmH‰Çèè˜ûÿH‹H‰EøH‹E躾H‰Çè«ÎûÿH‹EøH‰ÇèO´ûÿH‰Çè§”ûÿH‰ÂH‹EèH‰ÖH‰Çè°ûÿH‹EèH��m¾þÿÿÿH‰Çè�¢ûÿH‹EøH‰ÇèqÜûÿH‰Çèi”ûÿH‰ÂH‹EèH‰ÖH‰ÇèׯûÿH‹EèH�Ym¾þÿÿÿH‰Çè_¢ûÿH‹EøH‰Çèã°ûÿH‰Çè+”ûÿH‰ÂH‹EèH‰ÖH‰Ç虯ûÿH‹EèH�"m¾þÿÿÿH‰Çè!¢ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5úlH‰Çèæ—ûÿH‹H‰EøH‹EøH‰ÇèàûÿH‰ÂH‹EèH‰ÖH‰Çè1¯ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ªlH‰Çè–—ûÿH‹H‰EøH‹EøH‰ÇèýûÿH‰ÂH‹EèH‰ÖH‰ÇèÑûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ZlH‰ÇèF—ûÿH‹H‰EøH‹EøH‰ÇèÓ²ûÿH‰EðHƒ}ðtZH‹EðH‰ÇèÜûÿH‰EðHƒ}ðt5H‹Eè¾H‰ÇèеûÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5skH‰ÇèN“ûÿëH‹EèH‰Çè�°ûÿë H‹EèH‰Çè‚°ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5«kH‰Çè—–ûÿH‹H‰EøH‹EøH‰Çè$¦ûÿH‰ÂH‹EèH‰ÖH‰Çè"¹ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5[kH‰ÇèG–ûÿH‹H‰EøH‹EøH‰Çè¤ÍûÿH‰ÁH‹EèºH‰ÎH‰Çèmßûÿ¸ÉÃUH‰åHƒì@H‰}ÈÇEüH‹EȺH�5ÿjH‰Çèë•ûÿH‹H‰EðH‹EȾH‰Çèc–ûÿƒøÿuqH‹EðH‰Çè"ÌûÿH‰EèH‹EèH‰Ç貦ûÿH‰EèHƒ}èt5H‹EȾH‰Çèf´ûÿH‰ÂH‹EèH‰H‹EȺÿÿÿÿH�5^jH‰Çèä‘ûÿë H‹EÈH‰Çè&¯ûÿÇEüëIH‹EȺH�5/jH‰ÇèE•ûÿH‹H‰EàH‹UàH‹EðH‰ÖH‰Çè»×ûÿ‰EÜ‹UÜH‹EȉÖH‰Çè‡Ãûÿ‰EÜ‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5ÿiH‰Çèë”ûÿH‹H‰EøH‹EøH‰Çèˆàûÿ‰ÂH‹Eè‰ÖH‰ÇèÚûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5±iH‰Çè�”ûÿH‹H‰EøH‹EøH‰ÇèÚºûÿH‰ÂH‹EèH‰ÖH‰Çè(·ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5aiH‰ÇèM”ûÿH‹H‰EøH‹EøH‰Ç躳ûÿH‰ÂH‹EèH‰ÖH‰ÇèȘûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5iH‰Çèý“ûÿH‹H‰EøH‹EøH‰ÇèZ­ûÿH‰EðHƒ}ðtH‹UðH‹EèH‰ÖH‰Çè¼—ûÿë H‹EèH‰Çè~­ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5§hH‰Çè““ûÿH‹H‰EøH‹EøH‰Çè×ûÿ¸ÉÃUH‰åHƒì0H‰}ØèØÀûÿH‰EøH‹Eغ¾H‰Çè®™ûÿH‰EðH‹UðH‹EøH‰ÖH‰ÇèǾûÿ‰Eìƒ}ìuOHƒ}øt5H‹EؾH‰Çèæ±ûÿH‰ÂH‹EøH‰H‹EغÿÿÿÿH�5mhH‰Çèd�ûÿë H‹EØH‰Ç覬ûÿ¸ëH‹EøH‰Çè#§ûÿ¸ÉÃUH‰åHƒì H‰}èH‹Eè¾H‰ÇèÕûÿH‰EøH‹Eø¾H‰ÇèÚŽûÿH‰EðH‹EøH‰Çèz¹ûÿHƒ}ðtOHƒ}ðt5H‹Eè¾H‰Çè;±ûÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5ÂgH‰Ç蹎ûÿë H‹EèH‰Çèû«ûÿ¸ë¸ÉÃUH‰åHƒì H‰}èH‹Eè¾H‰ÇèàÔûÿH‰EøH‹Eø¾H‰ÇèËÌûÿH‰EðH‹EøH‰ÇèÛ¸ûÿHƒ}ðtJHƒ}ðt5H‹Eè¾H‰Ç蜰ûÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�52gH‰ÇèŽûÿëH‹EèH‰Çè\«ûÿë H‹EèH‰ÇèN«ûÿ¸ÉÃUH‰åHƒì@H‰}ÈHÇEðHÇEèHÇEàHÇEØÇEüH‹EȺH�5ÔfH‰ÇèLÛûÿH…ÀuH‹EÈH�Éf¾H‰Çè—ûÿ…À�H‹EȺH�5ÂfH‰ÇèÛûÿH…ÀuH‹EÈH�»f¾H‰Çè×–ûÿ…À�H‹EȺH�5´fH‰ÇèÜÚûÿH…ÀuDH‹EȾH‰Çè¶°ûÿ…Àu/H‹EȾH‰ÇèqÒûÿ…ÀuH‹EÈH�Šf¾H‰Çèu–ûÿ…À�H‹EȺH�5fH‰Çèj�ûÿH‹H‰EèH‹EȺH�5 fH‰ÇèK�ûÿH‹H‰EàH‹EȺ¾H‰Çèn�ûÿH‰EØHƒ}èt;Hƒ}àt4H‹UàH‹EèH‰ÖH‰Çè©§ûÿ‰Eüƒ}ütH‹EÈH�5fH‰Ç¸è¶ûÿèS¨ûÿH‰Eðƒ}üuHƒ}ØtH‹UØH‹EðH‰ÖH‰Çè�Èûÿ‰Eüƒ}üuHƒ}ètH‹UèH‹EðH‰ÖH‰Çè<Õûÿ‰Eüƒ}üuHƒ}àtH‹UàH‹EðH‰ÖH‰Çè9–ûÿ‰Eüƒ}üu]Hƒ}ðt5H‹EȾH‰Çè(®ûÿH‰ÂH‹EðH‰H‹EȺÿÿÿÿH�5ŒeH‰Ç見ûÿë H‹EÈH‰Çèè¨ûÿH‹UðH‹EÈH‰ÖH‰Çè¥Öûÿë H‹EðH‰Çè'ÈûÿHÇEðH‹EÈH‰Ç賨ûÿHƒ}Øt H‹EØH‰Çè�´ûÿ¸ÉÃUH‰åHƒì0H‰}ØHÇEøH‹EؾH‰ÇèD�ûÿƒøÿu芙ûÿH‰EøéÃH‹EؾH‰Çè`Ðûÿ…ÀtzH‹EؾH‰ÇèKÑûÿH‰EðH‹Eð¾H‰Ç覊ûÿH‰EèH‹EðH‰ÇèFµûÿHƒ}èt#H‹Eè¾H‰Çè>ÎûÿH‰EøH‹EèH‰Çè~¢ûÿëNH‹EØH�‰d¾H‰Çè”ûÿë4H‹EغH�5scH‰Çèú�ûÿH‹H‰EàH‹Eà¾H‰ÇèâÍûÿH‰EøHƒ}øtJHƒ}øt5H‹EؾH‰Çè�¬ûÿH‰ÂH‹EøH‰H‹EغÿÿÿÿH�52dH‰Çè ŠûÿëH‹EØH‰ÇèO§ûÿë H‹EØH‰ÇèA§ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ÏbH‰ÇèV�ûÿH‹H‰EøH‹EøH‰ÇèS¬ûÿH‰EøHƒ}øt5H‹Eè¾H‰Çè÷«ûÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5~bH‰Çèu‰ûÿë H‹EèH‰Çè·¦ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5EbH‰ÇèÌŒûÿH‹H‰EøH‹Eè¾H‰ÇèD�ûÿƒøÿu#H‹EøH‰Çè×ûÿ‰ÂH‹Eè‰ÖH‰ÇèãÑûÿ¸ë9H‹Eè¾H‰Çè¬ûÿ‰Eô‹UôH‹Eø‰ÖH‰ÇèçÎûÿ‰Eð‹UðH‹Eè‰ÖH‰ÇèúûÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5¦aH‰Çè-ŒûÿH‹H‰EøH‹EؾH‰Ç襌ûÿƒøÿu#H‹EøH‰Çè¤ÚûÿH‰ÂH‹EØH‰ÖH‰Ç袮ûÿéŠH‹EؾH‰Çè¼�ûÿH‰EðHƒ}ðtVH‹Eð¾H‰ÇèÀ§ûÿH‰EèH‹UèH‹EøH‰ÖH‰Ç虵ûÿ‰EäH‹EèH‰Ç芠ûÿH‹EðH‰Çè^Àûÿ‹UäH‹E؉ÖH‰Çèí¹ûÿëH‹EØH�˜b¾H‰ÇèS‘ûÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5¶`H‰Çè=‹ûÿH‹H‰EøH‹EؾH‰Ç赋ûÿƒøÿu*H‹EøH‰ÇèÔ¶ûÿH‰EðH‹UðH‹EØH‰ÖH‰Çè�Äûÿ¸ëMH‹Eغ¾H‰Çè ŠûÿH‰EèH‹UèH‹EøH‰ÖH‰Çèé‰ûÿ‰EäH‹EèH‰Çèj°ûÿ‹UäH‹E؉ÖH‰Çè¹ûÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5ü_H‰Ç胊ûÿH‹H‰EøH‹EؾH‰ÇèûŠûÿƒøÿu%H‹EøH‰Ç蚸ûÿH‰ÂH‹EØH‰ÖH‰Ç踡ûÿ¸ë²ûÿH…Àt6H‹EøH‰Çè-²ûÿH‰ÂH‹EÈH‰ÖH‰Çèë¿ûÿH‹EÈH�x[¾þÿÿÿH‰ÇèS�ûÿH‹EøH‰Çè×ÔûÿH‰ÂH‹EÈH‰ÖH‰ÇèÕ¨ûÿH‹EÈH�v[¾þÿÿÿH‰Çè�ûÿH‹EȺ¾H‰Çè×»ûÿH‹EøH‰Çè»ÆûÿH‰EèH‹EèH‰ÇèŸûÿH‰EàH‹EèH‰Çè[ÌûÿH‰EØÇEÔþÿÿÿH‹Eà‹HcÐH‹EàH‹HH‹EÈH‰ÎH‰ÇèÆÕÿÿ‹MÔH‹EÈH� ]‰ÎH‰Çè˜�ûÿH‹EØH‰Ç蜓ûÿH‰EØHƒ}Øt5H‹EȾH‰Çè0¤ûÿH‰ÂH‹EØH‰H‹EȺÿÿÿÿH�5ôYH‰Çè®�ûÿë H‹EÈH‰ÇèðžûÿH‹EÈH�ª\¾þÿÿÿH‰Çè(�ûÿH‹EÈH�?Z¾þÿÿÿH‰Çè�ûÿH‹EøH‰Çè4•ûÿH…ÀtXH‹EÈH�5JZH‰Ç茥ûÿH‹EȺ¾ÿÿÿÿH‰ÇèF‚ûÿH‹EøH‰Çèú”ûÿH‰ÂH‹EÈH‰ÖH‰Ç蘈ûÿH‹EȾýÿÿÿH‰Çè¡ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5åYH‰Çèl„ûÿH‹H‰EøH‹EøH‰Ç詘ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5¶YH‰Çè.„ûÿH‹H‰EøH‹EøH‰Çè‹…ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5xYH‰ÇèðƒûÿH‹H‰EøH‹EøH‰Çè­�ûÿH‰EøHƒ}øt5H‹Eè¾H‰Çè‘¢ûÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5'YH‰Çè€ûÿë H‹EèH‰ÇèQ�ûÿ¸ÉÃUH‰åHƒì0H‰}ØÇEüH‹EغH�5çXH‰Çè_ƒûÿH‹H‰Eðè£ûÿH‰Çè;ÅûÿH‰EèH‹UðH‹EèH‰ÖH‰Çè´¤ûÿ…ÀtJHÇEàH�UàH‹EèH‰Ñº¾sH‰Çè †ûÿH‹EàH‹H‹EàH‹HH‹EØH‰ÎH‰ÇèÓÿÿÇEüH‹EèH‰ÇèÊ©ûÿ‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�59XH‰Ç豂ûÿH‹H‰EøH‹EøH‰Ç莣ûÿH‰EðHƒ}ðtZH‹EðH‰Çè¹ûÿH‰EðHƒ}ðt5H‹Eè¾H‰Çè;¡ûÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5]WH‰Çè¹~ûÿëH‹EèH‰Çèû›ûÿë H‹EèH‰Çèí›ûÿ¸ÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5ŠWH‰Çè‚ûÿH‹H‰EðH‹EðH‰ÇèψûÿH‰EèH‹EèH‰Çè¹ûÿH‰EàH‹EèH‰Çè?¡ûÿH‰EØH‹E¸º¾H‰Çè•·ûÿH‹EèH‰Çè ÈûÿH‰ÂH‹E¸H‰ÖH‰ÇèG¤ûÿH‹E¸H�6Y¾þÿÿÿH‰Çè�‹ûÿHƒ}Øt0H‹MØH‹E¸ºH‰ÎH‰Çè°ÊûÿH‹E¸H�Y¾þÿÿÿH‰ÇèX‹ûÿHƒ}à„‘ÇEüÇEÔH‹EàH‰Çè3´ÿÿH‰Çè»�ûÿ‰EÔÇEüë[H‹EàH‰Çè´ÿÿH‰Â‹Eü‰ÆH‰×èc²ûÿH‰EÈH‹EÈ‹HcÐH‹EÈH‹HH‹E¸H‰ÎH‰ÇèõÐÿÿ‹Eü�PH‹E¸¾þÿÿÿH‰Ç踟ûÿƒEü‹Eü;EÔ|�¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5 VH‰Çè�€ûÿH‹H‰EøH‹EøH‰ÇèN•ûÿH‰EðHƒ}ðtZH‹EðH‰Ç臵ûÿH‰EðHƒ}ðt5H‹Eè¾H‰Çè ŸûÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5ßWH‰Çè‰|ûÿëH‹EèH‰ÇèË™ûÿë H‹EèH‰Çè½™ûÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5(VH‰ÇèÒûÿH‹H‰EøH‹EؾH‰ÇèŠÂûÿH‰EðH‹UðH‹EøH‰ÖH‰Çès¢ûÿH‰EèHƒ}ètJHƒ}èt5H‹EؾH‰ÇèPžûÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5æTH‰ÇèÎ{ûÿëH‹EØH‰Çè™ûÿë H‹EØH‰Çè™ûÿH‹EðH‰Çè&¦ûÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5aUH‰Çè ûÿH‹H‰EðH‹EغH�5„TH‰Çèì~ûÿH‹H‰EèH‹EغH�5‹TH‰ÇèÍ~ûÿH‹H‰EàH‹UàH‹EèH‰ÖH‰ÇèS–ûÿ‰Eüƒ}ütH‹EØH�5ÇTH‰Ç¸è²¤ûÿƒ}üuH‹UèH‹EðH‰ÖH‰ÇèÄûÿ‰Eüƒ}üuH‹UàH‹EðH‰ÖH‰Çè…ûÿ‰Eü‹UüH‹E؉ÖH‰Ç蹬ûÿÉÃUH‰åSHƒì8H‰}ÈH‹EȺH�5xTH‰Çè"~ûÿH‹H‰EèH‹EȾH‰ÇèÚÄûÿH‰EàH‹UàH‹EèH‰ÖH‰Çè‡ûÿ‰EÜH‹ч'H‰Çè ±ÿÿH‰ÃH‹EàH‰Çèð°ÿÿH‰ÞH‰ÇèÃûÿ‹UÜH‹EȉÖH‰Çè&¬ûÿHƒÄ8[]ÃUH‰åHƒì0H‰}ØH‹EغH�5áSH‰Çè‹}ûÿH‹H‰EøH‹Eغ¾H‰Çè®|ûÿH‰EðH‹UðH‹EøH‰ÖH‰Çè'¶ûÿ‰EìH‹EðH‰Çèø¢ûÿ‹UìH‹E؉ÖH‰Çè§«ûÿÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5gSH‰Çè}ûÿH‹H‰EèHÇEàÇEüH‹EÈH‰Çè”ûÿ‰E܃}ÜH‹EÈH�ÂT¾H‰Ç辂ûÿ…À�ÇEøé‹UøH‹EȉÖH‰Çè>}ûÿƒø…§‹UøH‹EȉÖH‰Çè´�ûÿ‰EØÇEôëv‹Uô‹MøH‹EȉÎH‰Ç脃ûÿH‹EȾÿÿÿÿH‰Çèó|ûÿH‹EȺ¾ÿÿÿÿH‰Çè�{ûÿH‰EàH‹EȾþÿÿÿH‰ÇèX¼ûÿH‹UàH‹EèH‰ÖH‰ÇèU´ûÿ‰EüH‹EàH‰ÇèÆ¡ûÿƒEô‹Eô;EØHƒ}ü„xÿÿÿë<‹MøH‹EȺ‰ÎH‰Çè({ûÿH‰EàH‹UàH‹EèH‰ÖH‰Çè´ûÿ‰EüH‹EàH‰Çèr¡ûÿƒEø‹Eø;EÜ ƒ}ü„íþÿÿ‹UüH‹EȉÖH‰Çè ªûÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5ËQH‰Çèu{ûÿH‹H‰EøH‹EؾH‰ÇèíÉûÿ‰EôH‹EؾH‰ÇèÙÉûÿ‰EðH‹EؾH‰ÇèÅÉûÿ‰Eì‹Mì‹Uð‹uôH‹EøH‰Çè�™ûÿ‰Eè‹UèH‹E؉ÖH‰Çèy©ûÿÉÃUH‰åHƒì0H‰}ØH‹EغH�59QH‰ÇèãzûÿH‹H‰EðH‹EؾH‰Çè[Éûÿ‰Eüƒ}ü~ÇEüƒ}üyÇEü‹UüH‹Eð‰ÖH‰Çè]Åûÿ‰Eì‹UìH‹E؉ÖH‰Çèù¨ûÿÉÃUH‰åHƒì H‰}èH‹EèºH�5¹PH‰ÇèczûÿH‹H‰EøH‹Eè¾H‰ÇèÛÈûÿ‰Eô‹UôH‹Eø‰ÖH‰Çè'�ûÿ¸ÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5bPH‰Çè zûÿH‹H‰EðH‹EȾH‰Çè„zûÿƒø…H‹EȾH‰Çèúšûÿ‰EìÇEøÇEüéÓ‹UüH‹EȾH‰ÇèÀ€ûÿH‹EȾÿÿÿÿH‰Çè/zûÿH‹EȺ¾ÿÿÿÿH‰ÇèɳûÿH‰EàH‹EȾþÿÿÿH‰Ç蔹ûÿHƒ}àtH‹UàH‹EðH‰ÖH‰Çè ¿ûÿ‰Eøë`‹UüH‹EÈH�5OQH‰Ç¸èú§ûÿHƒ}àu,H‹EȺ¾ÿÿÿÿH‰Çè�vûÿH‰ÂH‹EȾH‰Çèù~ûÿ…À�H‹EȾþÿÿÿH‰Çè¹ûÿƒEüƒ}øu ‹Eü;EìŽÿÿÿ‹UøH‹EȉÖH‰Çè>§ûÿëAH‹EȺ¾H‰Çèö²ûÿH‰EØH‹UØH‹EðH‰ÖH‰ÇèO¾ûÿ‰EÔ‹UÔH‹EȉÖH‰Çèû¦ûÿÉÃUH‰åHƒì H‰}èH‹EèºH�5»NH‰ÇèexûÿH‹H‰EøH‹EøH‰ÇèRÅûÿH‰EðHƒ}ðtZH‹EðH‰ÇèË®ûÿH‰EðHƒ}ðt5H‹Eè¾H‰Çèï–ûÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5MH‰ÇèmtûÿëH‹EèH‰Ç译ûÿë H‹EèH‰Çè¡‘ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5 NH‰Çè¶wûÿH‹H‰EøH‹EøH‰Çè“ûÿH‰EðHƒ}ðtJHƒ}ðt5H‹Eè¾H‰ÇèP–ûÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5×LH‰ÇèÎsûÿëH‹EèH‰Çè‘ûÿë H‹EèH‰Çè‘ûÿ¸ÉÃUH‰åHƒì@H‰}ÈH‰uÀH‹EÀH‰EðH‹´Í'H‹MÈH‹EðH‰ÎH‰Çè‰ûÿH‹Eð¾ÿÿÿÿH‰Ç蘷ûÿ…ÀuDH‹EÈH�1O¾H‰Çèì–ûÿH‹EȾH‰Çè‹uûÿH‹Eð¾þÿÿÿH‰ÇèÚ¶ûÿ¸éTH‹Eð¾ÿÿÿÿH‰Çè߯ûÿH‰EèH‹Eð¾þÿÿÿH‰Ç誶ûÿH‹Eè‹H‹Eð¾ðØÿÿH‰Çèƒ}ûÿH‹Eð¾ÿÿÿÿH‰ÇèòvûÿH‹Eè‹PH‹Eð¾ðØÿÿH‰ÇèZ}ûÿH‹Eð¾ÿÿÿÿH‰ÇèÉvûÿH‹E𹺾H‰Çènzûÿ‰Eäƒ}ä…¤HÇEøH‹Eð¾ÿÿÿÿH‰ÇèØzûÿH‰EØH‹Eð¾þÿÿÿH‰Çè¶ûÿHƒ}Øt!H‹EؾH‰ÇèË‘ûÿH‰EøH‹EØH‰Ç苪ûÿHƒ}øuAH‹EÈH�ñM¾H‰Ç謕ûÿH‹EȾH‰ÇèKtûÿH‹EðH�5ÈMH‰Ç¸è“›ûÿH‹EøëH‹EðH‰ÇèA…ûÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ŒKH‰Çè6uûÿH‹H‰EøHÇEðH‹EØH‰Ç諌ûÿ‰EìH‹Eغ¾H‰ÇèR…ûÿH‹EؾH‰ÇèÁ“ûÿH‰EðH‹EؾH‰Çè|�ûÿH‹EؾðØÿÿH‰Çèû¾ûÿ‰ÂH‹Eð‰ƒ}ì~H‹EؾH‰ÇèL�ûÿë H‹EØH‰Çè^ŽûÿH‹EؾðØÿÿH‰Çè½¾ûÿ‰ÂH‹Eð‰PH‹Ë'H‹MøH‹EØH‰ÎH‰ÇèZ–ûÿH‹UØH‹EøH�5 ýÿÿH‰ÇèÓ»ûÿ¸ÉÃUH‰åHƒì@H‰}ØH‰uÐH‰UÈH‰MÀH‹EÐH‰EøH‹µÊ'H‹MØH‹EøH‰ÎH‰Çè"†ûÿH‹Eø¾ÿÿÿÿH‰Çè¡´ûÿ…Àu3H‹EØH�aL¾H‰Çèõ“ûÿH‹Eø¾þÿÿÿH‰Çèô³ûÿ¸éHH‹Eø¾ÿÿÿÿH‰Çèù¬ûÿH‰EðH‹Eø¾þÿÿÿH‰ÇèijûÿH‹Eð‹H‹Eø¾ðØÿÿH‰Çè�zûÿH‹Eø¾ÿÿÿÿH‰Çè tûÿH‹Eð‹PH‹Eø¾ðØÿÿH‰ÇètzûÿH‹Eø¾ÿÿÿÿH‰ÇèãsûÿH‹Eø¹º¾H‰Çèˆwûÿ‰Eìƒ}ì…˜H‹Eø¾þÿÿÿH‰Çè“ûÿ…ÀtSH‹Eø¾þÿÿÿH‰Çè•ÁûÿH‰ÂH‹EÈH‰H‹Eøº¾ÿÿÿÿH‰ÇèEyûÿH‰ÂH‹EÀH‰H‹Eø¾ýÿÿÿH‰Çèê²ûÿ¸ëAH‹Eø¾ýÿÿÿH‰ÇèÒ²ûÿH‹EØH�K¾H‰Ç誒ûÿ¸ëH‹EøH‰Çèg‚ûÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5²HH‰Çè\rûÿH‹H‰EøHÇEðH‹EØH‰Çèщûÿ‰EìH‹Eغ¾H‰Çèx‚ûÿH‹EؾH‰Çèç�ûÿH‰EðH‹EؾH‰Ç袌ûÿH‹EؾðØÿÿH‰Çè!¼ûÿ‰ÂH‹Eð‰ƒ}ì~H‹EؾH‰ÇèrŒûÿë H‹EØH‰Çè„‹ûÿH‹EؾðØÿÿH‰Çèã»ûÿ‰ÂH‹Eð‰PH‹3È'H‹MøH‹EØH‰ÎH‰Ç耓ûÿH‹UØH‹EøH�55ýÿÿH‰Çè´ûÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5¤GH‰ÇèNqûÿH‹H‰EøH‹ÐÇ'H‹MøH‹EØH‰ÎH‰Çè=ƒûÿH‹EؾÿÿÿÿH‰Çè¼±ûÿ…ÀtDH‹EؾÿÿÿÿH‰ÇèGªûÿH‰EðH‹Eð‹H‹EؾðØÿÿH‰ÇèüŽûÿH‹Eð‹PH‹EؾðØÿÿH‰ÇèäŽûÿH‹EؾþÿÿÿH‰Çèã°ûÿH‹TÇ'H‹MøH‹EØH‰ÎH‰Ç蹂ûÿH‹EؾÿÿÿÿH‰Çè8±ûÿ…ÀtDH‹EؾÿÿÿÿH‰ÇèéûÿH‰EèH‹Eè‹H‹EؾðØÿÿH‰ÇèxŽûÿH‹Eè‹PH‹EؾðØÿÿH‰Çè`ŽûÿH‹EؾþÿÿÿH‰Çè_°ûÿH‹UøH‹EØH‰ÖH‰ÇèÜ€ûÿH‹EøH‰Çè@©ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ŠFH‰ÇèõoûÿH‹H‰EøH‹EèºH�5èHH‰ÇèÖoûÿH‹H‰EðH‹EðH‰Çèó¢ûÿH‹UðH‹EøH‰ÖH‰Çè`uûÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5FH‰Çè…oûÿH‹H‰EðH‹EؾH‰Çèý½ûÿ‰EüH‹EؾH‰ÇèéoûÿƒøÿtH‹EؾH‰Çècyûÿ븉Eìƒ}ìt‹UüH‹Eð‰ÖH‰Çèrûÿ‰Eüë‹UüH‹Eð‰ÖH‰Çè ®ûÿ‰Eü‹EüHcÐH‹EØH‰ÖH‰Çèd†ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5^EH‰ÇèÉnûÿH‹H‰EøH‹Eè¾H‰Çè�±ûÿH‰EðH‹UðH‹EøH‰ÖH‰ÇèJ†ûÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5EH‰ÇèonûÿH‹H‰EøH�UàH‹EؾH‰ÇèÃ|ûÿH‰EðH‹E຿H�5ãBH‰Çè'·ûÿH‰EèH‹UàH‹MðH‹EèH‰ÎH‰Ç蜋ûÿH‹EàH‰ÂH‹MèH‹EøH‰ÎH‰Çè2³ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5lDH‰Çè×mûÿH‹H‰EøH‹EøH‰Çèô±ûÿH‹EøH‰Çè¨kûÿ¸ÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5"DH‰Çè�mûÿH‹H‰EðÇEüH‹E¸ºH�5ïBH‰Çèw·ûÿH…Àt:H‹E¸ºH�5ÒBH‰ÇèJmûÿH‹H‰EèH‹UèH‹EðH‰ÖH‰Çè ~ûÿ‰EüéþH‹E¸ºH�5ÖDH‰Çè ·ûÿH…Àt:H‹E¸ºH�5¹DH‰ÇèólûÿH‹H‰EàH‹UàH‹EðH‰ÖH‰ÇèIrûÿ‰Eüé§H‹E¸¾H‰Çè�®ûÿ…ÀtzH�UÐH‹E¸¾H‰Çè'jûÿH‰EÈH‹EÐH‰ÂH�EÈH‰Æ¿èk„ûÿH‰EØHƒ}Øt$H‹UØH‹EðH‰ÖH‰Çè]}ûÿ‰EüH‹EØH‰ÇèÎmûÿë2H‹E¸H�nE¾H‰Çè4rûÿëH‹E¸H�oE¾H‰Çèrûÿ‹UüH‹E¸‰ÖH‰Ç艚ûÿÉÃUH‰åHƒìH‰}øH‹EøH�ð¾'H�5jAH‰Çè‚ûÿH‹EøH�¶¿'H�5_AH‰Çè÷�ûÿH‹EøH�À'H�5BH‰ÇèÝ�ûÿH‹EøH�"Á'H�58BH‰ÇèÃ�ûÿH‹EøH�¨½'H�5�@H‰Çè©�ûÿH‹EøH�î¼'H�5Y@H‰Çè��ûÿH‹EøH�T¼'H�5ê?H‰Çèu�ûÿH‹Eøº¾H‰Çè¡ûÿH‹EøºH�5Á'H‰ÇèͦÿÿH‹EøH�ÌÁ'¾ÿÿÿÿH‰Çè�…ûÿ¸ÉÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰ÇèxûÿH‹Eð¶„Àu ‹Eü‰ÇèáqûÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Çèÿ�ûÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè³jûÿƒøtbH‹Eø¾þÿÿÿH‰Çè-ªûÿH‹UèH‹uðH‹EøH� *EH‰Çè¬ûÿ…Àt H‹EøH‰ÇèÂyûÿH‹Eø¾ÿÿÿÿH‰Çèq„ûÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Çèg|ûÿ‹Uà‹MäH‹Eø‰ÎH‰Ç賜ûÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5šEH‰Ç¸è}�ûÿH‹EøH�¦E¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çè΃ûÿò*EôH‹EøH‰ÇèkûÿH‹Eø¾ýÿÿÿH‰ÇèÌ{ûÿH‹EøA¸¹ºÛH�5ADH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çèð¬ûÿéå‹Uà‹MäH‹Eè‰ÎH‰Çè—qûÿéÌH‹EèH�ËD¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰ÇèÑ‚ûÿ‹UàH‹Eè‰ÖH‰ÇèÀ‚ûÿH‹EèA¸¹ºH�5uDH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çè rûÿ‰EüH‹Eè¾þÿÿÿH‰Çèø§ûÿ‹EüëH‹EèH�5XDH‰Ç¸èÛ�ûÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�×C¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çè‚ûÿ‹UüH‹Eè‰ÖH‰Çè´ªûÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰ÇèÁgûÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çè)ˆûÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèÜhûÿ龋MôH‹EøH�C‰ÎH‰Çèpûÿ…À…š‹UôH‹Eø‰ÖH‰ÇèÆ‡ûÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèyhûÿëZ‹MôH‹EøH�C‰ÎH‰Çè¿oûÿ…ÀuA‹UôH‹Eø‰ÖH‰ÇèÚfûÿ‰ÂH‹Eø‰ÖH‰ÇèjƒûÿH‰ÂH‹EøH�5ìBH‰Ç¸è?Œûÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çè šûÿ‹UüH‹Eè‰ÖH‰Çè;‰ûÿH‹Eè¾ÿÿÿÿH‰ÇèJfûÿH‹Eè¾ÿÿÿÿH‰Çè9fûÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�ÉA¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çè…™ûÿH‹Eè¾þÿÿÿH‰Çèxûÿ‹UüH‹Eè‰ÖH‰Çè³�ûÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè,fûÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰ÇèÕ„ûÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰ÇèV—ûÿ…ÀuIHƒ}ètH‹UèH‹EøH�5PAH‰Ç¸èŠûÿë$H‹EøºH�5EAH‰ÇèEH‹EøH‰Çètûÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�X@¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Ç蔄ûÿH‹E躾ÿÿÿÿH‰ÇèNaûÿ‹UüH‹Eè‰ÖH‰Çè�«ûÿH‹Eè¾ÿÿÿÿH‰ÇèVûÿ‹‰EôH�•ðýÿÿ¸¹@H‰×óH«ƒ½äýÿÿtH‹…èýÿÿ¾H‰Ç赟ûÿ¸é¦H‹…èýÿÿH‰Çè tûÿH��ðýÿÿ‹EôºH‰Î‰ÇèGïÿÿH‰EøHƒ½Øýÿÿt(H‹MøH‹•ØýÿÿH‹…èýÿÿH�5¥7H‰Ç¸è¿ˆûÿë/H‹UøH‹…èýÿÿH‰ÖH‰Çè—zûÿH‹…èýÿÿº¾ÿÿÿÿH‰ÇèNWûÿò*EôH‹…èýÿÿH‰Çèº[ûÿ¸ÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäHƒ}ðtBH‹Eè¶¾ÐH‹Eð‰ÖH‰Çè=bûÿH…Àu%H‹MðH‹UèH‹EøH�57H‰Ç¸èˆûÿ‹Eäë¸ÉÃUH‰åHƒì0H‰}èH‰uàH‰UØH‹EàH‰EøH‹Eø‹@…Àt$H‹EøÇ@H‹EøH‹P H‹EØH‰H‹EøH‹@ëH‹EøH‹H‹UøH‹rH‹UØH‹MèH‰ÏÿÐÉÃUH‰åHƒì`H‰}ÈH‰uÀH‰U¸H‰M°L‰E¨ÇEüHÇEÐHÇEØÇEàHÇEèHÇEðH‹EÀH‰EÐH‹E¸H‰EØH�EÐH�P H‹u¸H‹MÈH‹EÀH‰ÏÿÐH‰EèH‹EèH…Àt:H‹EðH…Àt1H‹E趺8Ðu!H‹u¨H‹EȹH�6H‰Çè{þÿÿ‰EüëH‹u¨H‹EȹH�æ5H‰ÇèZþÿÿ‰Eüƒ}üt‹EüëH‹M°H�UÐH‹EÈH�5 þÿÿH‰ÇèÔvûÿÉÃUH‰åHƒì0H‰}èH‰uàH‰UØH‹EàH‰EøH‹Eø‹…À~H‹Eø‹HcÐH‹EØH‰H‹EøÇëGH‹EøH‹@H‰Çè`“ûÿ…Àt¸ë4H‹EøH‹@H‹UøH�zH‰Áº¾賑ûÿH‰ÂH‹EØH‰H‹EøHƒÀÉÃUH‰åH�ì0H‰½èýÿÿH‰µàýÿÿ‰•ÜýÿÿH�•ðýÿÿ¸¹@H‰×óH«è´Rûÿ‹H��ðýÿÿºH‰Î‰ÇèìÿÿH‰Eø‹�ÜýÿÿH‹…èýÿÿº‰ÎH‰Çè\TûÿHƒÀH‰EðH‹uøH‹MðH‹•àýÿÿH‹…èýÿÿI‰ðH�5Š4H‰Ç¸èg…ûÿ‹•ÜýÿÿH‹…èýÿÿ‰ÖH‰Çèð¢ûÿ¸ÉÃUH‰åHƒì H‰}èH�]4H‰EøH‹EèÇH‹EèH‹@H‰ÇèˆYûÿ‰Eôƒ}ôÿtH‹EøH�PH‰Uø¶¶À9Eôt‹EôëCH‹Eè‹�HH‹Uè‰ ‹Uô‰ÑH‹UèH˜ˆLH‹Eø¶„Àu¢H‹EèÇH‹EèH‹@H‰Çè YûÿÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèIÿÿÿ‰ÂH‹Eà‰H‹Eà‹‰Eüƒ}ü#u>H‹EèH‹@H‰ÇèÛXûÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè¼Xûÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çè×lûÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�53H‰ÇèH‹_'H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5æ2H‰Ç¸è§ƒûÿH‹…ÀïÿÿH�5Ï2H‰Çè¡�ûÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5¥2H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�562H‰Çè‘{ûÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5 2H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè#QûÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè$�ûÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çèxûÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰ÇèN“ûÿ‹UüH‹…ÈïÿÿH�5$1H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çè_Ÿûÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�v0H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�\0H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çèm”ûÿÉÃUH‰åHƒì H‰}è‰uäH�Q0H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�ý/H‰EøH‹Eø¶“ûÿH‹EèH‹UðH‰� H‹EèH‹UøH‰�( H‹EèH‹� H‹EèH‹€ HÐÉÃUH‰åHƒì H‰}øH‰uðH‰UèH‹UèH‹EøH‰ÖH‰Çè|þÿÿH‰ÁH‹UèH‹EðH‰ÆH‰ÏèèlûÿH‹EøH‹� H‹EèHÂH‹EøH‰� �ÉÃUH‰åHƒì H‰}èHÇEðH‹EèH‹€0 H�Uð¾ÿÿÿÿH‰Çè˜LûÿH‰EøHƒ}øuH‹EèH‹€0 H�5+-H‰Ç¸èuûÿH‹EèH‹€ H‹UèHƒÂH9ÐtH‹EèH‹€0 ¾þÿÿÿH‰Çè~aûÿH‹UðH‹MøH‹EèH‰ÎH‰ÇèÿÿÿH‹EèH‹€ H‹UèHƒÂH9ÐtºþÿÿÿëºÿÿÿÿH‹EèH‹€0 ‰ÖH‰ÇèΚûÿ�ÉÃUH‰åHƒìH‰}øH‹EøH‹� H‹EøH‹ˆ H‹EøH‹€0 H‰ÎH‰Çè3H‹EøH‹€ H‹UøHƒÂH9ÐtH‹EøH‹€0 ¾þÿÿÿH‰Çèc‘ûÿ�ÉÃUH‰åHƒì H‰}øH‰uðH‰UèHƒ}ètH‹EðëH�',H‹UèH‹MøH‰ÆH‰Ïè5VûÿH‹Eøº¾ÿÿÿÿH‰Çè/KûÿÉÃUH‰åHƒì H‰}ø‰uôH‰Uè‹UôH‹Eø‰ÖH‰Çèðâÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çèãdûÿ‹UôH‹Eø‰ÖH‰ÇèB•ûÿH‹Eø¾ÿÿÿÿH‰ÇèáMûÿH‹Eø¾ÿÿÿÿH‰ÇèÐMûÿÉÃUH‰åHƒì0H‰}ØÇEôHÇEøH‹EØH�h+¾H‰Çè^èÿÿH‹EغH�5l+H‰ÇèóþÿÿH‹EؾÿÿÿÿH‰Çè‚gûÿH‹EؾðØÿÿH‰ÇèApûÿH‹EؾÿÿÿÿH‰ÇèPMûÿH‹EؾÿÿÿÿH‰Çè?Mûÿƒø„±H‹EؾþÿÿÿH‰Ç赌ûÿH‹Eغ¾H‰Çè_‚ûÿH‹Eغ¾H‰ÇèI‚ûÿH‹EغH�5à*H‰ÇèQþÿÿH‹EØH�Ï*¾þÿÿÿH‰ÇèIVûÿH‹EؾþÿÿÿH‰Çèø•ûÿH‹EؾþÿÿÿH‰Çè·fûÿH‹EؾþÿÿÿH‰Çè¦fûÿH‹EؾðØÿÿH‰ÇèuhûÿH‹EؾþÿÿÿH‰ÇèD�ûÿH‹EØH‰Çè8Œûÿ‰EôH‹EؾþÿÿÿH‰Çè4oûÿH‹EؾÿÿÿÿH‰ÇèCLûÿH‹EؾÿÿÿÿH‰Çèâ„ûÿH‰EøHƒ}ø…dH‹EؾþÿÿÿH‰Ç袋ûÿH‹EؾH‰ÇèAjûÿH‰Eøƒ}ôt|H‹Eøº¾H‰Çè¡\ûÿH‹EØH‰Ç襋ûÿH‹EؾþÿÿÿH‰ÇèÔeûÿH‹EؾüÿÿÿH‰Çè£gûÿH‹EؾH‰Çèb�ûÿH‹EؾþÿÿÿH‰Çè¡eûÿH‹EؾüÿÿÿH‰Çèpgûÿé¼HÇEèH‹EؾH‰Çè"�ûÿH‹EؾýÿÿÿH‰Çè1nûÿH‹EؾÿÿÿÿH‰Çè@KûÿH‹EؾÿÿÿÿH‰Çè߃ûÿH‰EèHƒ}ètH‹EèH‹H‹EøH‰ëH‹Eøº¾H‰Çè¾[ûÿH‹EؾþÿÿÿH‰Çè}ŠûÿH‹EØH‰Ç豊ûÿH‹EؾþÿÿÿH‰ÇèàdûÿH‹EؾüÿÿÿH‰Çè¯fûÿH‹EؾýÿÿÿH‰Çè>ŠûÿH‹EøÉÃUH‰åHƒì H‰}è‰uä‹UäH‹Eè‰ÖH‰ÇèˆJûÿƒøuO‹UäH‹Eè‰ÖH‰ÇèKûÿfH~ÀH‰Eø‹MäH‹E躉ÎH‰Çè&H‰EðòH*Eðf.Eøzf.Eøu¸ë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØÇEôH�Uô‹MäH‹Eè‰ÎH‰Çè>äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè‡cûÿ‹UðH‹Eø‰ÖH‰Çèvcûÿ‹UôH‹Eø‰ÖH‰Çè%Œûÿ‹UðH‹Eø‰ÖH‰ÇèŒûÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çèø_ûÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�†&¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�ö%¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çèâ^ûÿH‹Eø¾þÿÿÿH‰Çè!Zûÿ‹UôH‹Eø‰ÖH‰Çèp~ûÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰ÇèŠbûÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èyoûÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çè»HûÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�%‰ÎH‰ÇèÛOûÿ…À…�‹UäH‹Eè‰ÖH‰ÇèòFûÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5³$H‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çèš`ûÿé3‹UäH‹Eè‰ÖH‰ÇèPûÿ…ÀtH‹EèºH�5o$H‰ÇèÈ÷ÿÿéH‹EèºH�5W$H‰Çè«÷ÿÿéä‹MäH‹EèH�B$‰ÎH‰Çè®lûÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çè Fûÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰ÇèÓBûÿë‹UüH‹Eè‰ÖH‰ÇèpbûÿH‰Eð‹UäH‹Eè‰ÖH‰Çè vûÿH‰ÁH‹UðH‹EèH�5Ê#H‰Ç¸èÌsûÿƒ}øtCH‹Eè¾þÿÿÿH‰ÇèUˆûÿ�ë/H‹Eè¾ÿÿÿÿH‰Ç豆ûÿ…ÀuH‹EèH�5Š#H‰Ç¸èåjûÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè-BûÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�Ù"¾H‰ÇèÏßÿÿH‹EøH�K#¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çè_CûÿH‹Eø¾ÿÿÿÿH‰ÇèÎDûÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèE„ûÿH‹MèH‹EøºH‰ÎH‰ÇèM‘ûÿH‹UðH‹EøH‰ÖH‰ÇèªdûÿH‹Eøº¾ÿÿÿÿH‰ÇèdAûÿH‹Eøº¾H‰ÇèîvûÿH‹Eø¾ÿÿÿÿH‰Çè]^ûÿH‹UðH‹Eø¾ýÿÿÿH‰Çè¸Mûÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè1^ûÿH‹UðH‹Eø¾îØÿÿH‰ÇèŒMûÿH‹Eø¾þÿÿÿH‰Çèˆûÿ�ÉÃUH‰åSHƒìxH‰}ˆH‹EˆºH�5-"H‰ÇèCCûÿH‹H‰EÈH‹EˆºH�5"H‰Çè$CûÿH‹H‰EÀH‹Eˆº¾H‰ÇèwQûÿH‰E¸ÇEìH‹EˆH‰Çè€Zûÿ‰E´HÇE¨HÇE HÇEàHÇEØÇEÔH‹EÀH‰ÇèJNûÿ…ÀuH‹EˆH�«!¾H‰ÇèŽHûÿ…À�ƒ}´ŽÂÇEЋUÐH‹Eˆ‰ÖH‰ÇèI„ûÿ…Àt‹MÐH‹Eˆº‰ÎH‰Çèß?ûÿH‰EàƒEЋUÐH‹Eˆ‰ÖH‰ÇèÖBûÿƒøu8‹UÐH‹Eˆ‰ÖH‰Çè‰ûÿH‰EØHƒ}Øu‹MÐH‹EˆH�/!‰ÎH‰ÇèýGûÿƒEЋUÐH‹Eˆ‰ÖH‰ÇèˆBûÿƒøu$‹UÐH‹Eˆ‰ÖH‰ÇèLûÿ…Àt¸€ë¸‰EìHƒ}Èt/H‹UÀH‹EÈH‰ÖH‰ÇèUYûÿ…ÀuH‹EˆH�5î H‰Ç¸è¹gûÿL‹EØH‹MÈH‹UÀH‹uàH‹E¸‹}ìWjjjA¹£H‰ÇèÝkûÿHƒÄ H‰E Hƒ} uH‹EˆH�5à H‰Ç¸èfgûÿèaûÿH‰Çè)ƒûÿH‰E¨H‹U H‹E¨H‰ÖH‰Çèb‹ûÿ…ÀtBH�U˜H‹E¨H‰Ñº¾sH‰ÇèDûÿH‹E˜H‹H‹E˜H‹HH‹EˆH‰ÎH‰ÇèãòÿÿÇEÔHƒ}Øt)H‹¶J'H‰ÇèÌÕÿÿH‰ÃH‹EØH‰Çè¯ÕÿÿH‰ÞH‰Çèì…ûÿH‹E¨H‰Çè�gûÿH‹E H‰ÇèWûÿ‹EÔH‹]øÉÃUH‰åSHƒìXH‰}¨HÇEÈHÇEÀHÇE¸HÇE°ÇEìH‹E¨¾H‰ÇèƒûÿH‰EàH‹E¨º¾H‰ÇèœNûÿH‰EØH�UÈH‹EàH‰ÖH‰ÇèUUûÿH…À„•H‹EÈH�}°H�M¸H�UÀH‹uØI‰øH‰Çè=~ûÿ…À„nH‹E¨º¾H‰Çè¯uûÿÇEÔþÿÿÿH‹E¸H…Àt5H‹E¨¾H‰Çè~^ûÿH‰ÂH‹E¸H‰H‹E¨ºÿÿÿÿH�5vH‰Çèü;ûÿë H‹E¨H‰Çè>Yûÿ‹MÔH‹E¨H�‰ÎH‰ÇèvIûÿÇEÐþÿÿÿH‹EÀH…Àt5H‹E¨¾H‰Çè^ûÿH‰ÂH‹EÀH‰H‹E¨ºÿÿÿÿH�5H‰Çè“;ûÿë H‹E¨H‰ÇèÕXûÿ‹MÐH‹E¨H�­‰ÎH‰Çè IûÿH‹E°H…ÀtvH‹E¨H�5”H‰Çè‘_ûÿH‹E¨º¾ÿÿÿÿH‰ÇèK<ûÿH‹U°H‹E¨H‰ÖH‰ÇèˆpûÿH‹E¨¾ýÿÿÿH‰Çè'[ûÿH‹ˆH'H‰ÇèžÓÿÿH‰ÃH‹E°H‰Çè�ÓÿÿH‰ÞH‰Ç较ûÿÇEìH‹EàH‰Çè[eûÿH‹EÈH‰ÇèßTûÿ‹EìHƒÄX[]ÃUH‰åHƒìH‰}øH‹Eøº¾H‰ÇètûÿH‹EøºH�5s–'H‰Çè›Ûÿÿ¸ÉÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰ÇèKûÿH‹Eð¶„Àu ‹Eü‰ÇèßDûÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰ÇèýTûÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè±=ûÿƒøtbH‹Eø¾þÿÿÿH‰Çè+}ûÿH‹UèH‹uðH‹EøH� ÈH‰Çèûÿ…Àt H‹EøH‰ÇèÀLûÿH‹Eø¾ÿÿÿÿH‰ÇèoWûÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰ÇèeOûÿ‹Uà‹MäH‹Eø‰ÎH‰Çè±oûÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�58H‰Ç¸è{bûÿH‹EøH�D¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰ÇèÌVûÿò*EôH‹EøH‰Çè>ûÿH‹Eø¾ýÿÿÿH‰ÇèÊNûÿH‹EøA¸¹ºÛH�5ßH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çèîûÿéå‹Uà‹MäH‹Eè‰ÎH‰Çè•DûÿéÌH‹EèH�i¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰ÇèÏUûÿ‹UàH‹Eè‰ÖH‰Çè¾UûÿH‹EèA¸¹ºH�5H‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çè Eûÿ‰EüH‹Eè¾þÿÿÿH‰Çèözûÿ‹EüëH‹EèH�5öH‰Ç¸èÙ`ûÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�u¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰ÇèUûÿ‹UüH‹Eè‰ÖH‰Çè²}ûÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè¿:ûÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çè'[ûÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèÚ;ûÿ龋MôH‹EøH�‰ÎH‰ÇèCûÿ…À…š‹UôH‹Eø‰ÖH‰ÇèÄZûÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çèw;ûÿëZ‹MôH‹EøH�½‰ÎH‰Çè½Bûÿ…ÀuA‹UôH‹Eø‰ÖH‰ÇèØ9ûÿ‰ÂH‹Eø‰ÖH‰ÇèhVûÿH‰ÂH‹EøH�5ŠH‰Ç¸è=_ûÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çè mûÿ‹UüH‹Eè‰ÖH‰Çè9\ûÿH‹Eè¾ÿÿÿÿH‰ÇèH9ûÿH‹Eè¾ÿÿÿÿH‰Çè79ûÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�g¾H‰Çè»H‹UØH‹EèH‰ÖH‰ÇèƒlûÿH‹Eè¾þÿÿÿH‰ÇèKûÿ‹UüH‹Eè‰ÖH‰Çè±Tûÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè*9ûÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰ÇèÓWûÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰ÇèTjûÿ…ÀuIHƒ}ètH‹UèH‹EøH�5îH‰Ç¸è}]ûÿë$H‹EøºH�5ãH‰ÇèEH‹EøH‰ÇèGûÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�ö¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè’WûÿH‹E躾ÿÿÿÿH‰ÇèL4ûÿ‹UüH‹Eè‰ÖH‰Çè›~ûÿH‹Eè¾ÿÿÿÿH‰Çè:7ûÿH‹Eè¾ÿÿÿÿH‰Çè)7ûÿƒøu¸ëwH‹Eè¾þÿÿÿH‰ÇèœvûÿH‹E躾H‰ÇèFlûÿH‹UØH‹EèH‰ÖH‰ÇèWûÿH‹E躾ÿÿÿÿH‰Çè½3ûÿH‹Eè¾þÿÿÿH‰ÇèÌPûÿ‹UüH‹Eè‰ÖH‰Çè;mûÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�ß¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰ÇèÃuûÿ‹Eô…ÀuH‹EèH�59H‰Ç¸è¤[ûÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�"‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰ÇèåUûÿH‹E躾ÿÿÿÿH‰ÇèŸ2ûÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè¡OûÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè‚ûÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰ÇèãkûÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè¹tûÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�o¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰Çèi3ûÿH‹Eø¾ÿÿÿÿH‰ÇèØ4ûÿH‹Eø¾þÿÿÿH‰Çè~ûÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèPmûÿH‰EøH‹EèH�õ¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çè,Kûÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰ÇèÅ2ûÿH‹Eè¾ÿÿÿÿH‰Çè44ûÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çè®Cûÿ‰EôH‹Eè¾ýÿÿÿH‰Çèšsûÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰ÇèÀ4ûÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çè‹4ûÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çè-3ûÿƒøt ¸éüH‹EøH‰ÇèBLûÿéÍH‹Eø¾þÿÿÿH‰Çèü2ûÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰ÇèmBûÿ…ÀtH‹Eø¾þÿÿÿH‰ÇèXrûÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çèb~ûÿH‹EøºH�5ÌH‰ÇèìH‹Eø¾þÿÿÿH‰Çè™DûÿH‹Eø¾H‰ÇèXqûÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèÐqûÿH‹Eø¾þÿÿÿH‰Çèßtûÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèIûÿ‰EüH‹UàH‹EèH�5>H‰ÇèzaûÿH‹Eè¾îØÿÿH‰ÇèéKûÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çè$qûÿ¸ë‹UüH‹Eè‰ÖH‰Çè qûÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5‘H‰Ç¸èf_ûÿéÜH‹EðH‹@¶H‹EèH‹@H‰ÇèÙ+ûÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çèº+ûÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèÕ?ûÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5­ H‰ÇèH‹2'H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5„ H‰Ç¸è¥VûÿH‹…ÀïÿÿH�5m H‰ÇèŸTûÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5C H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5Ô H‰Çè�NûÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5« H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè!$ûÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè"pûÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰ÇèKûÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰ÇèLfûÿ‹UüH‹…ÈïÿÿH�5ÂH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çè]rûÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�úH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèkgûÿÉÃUH‰åHƒì H‰}è‰uäH�ïH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�›H‰EøH‹Eø¶ûÿH‹UøH‹EèH‰ÖH‰ÇèSEûÿH‹E躾ÿÿÿÿH‰Çè "ûÿ‹EäHcÐH‹EèH‰ÖH‰Çèè;ûÿ¸ÉÃUH‰åH‰}øH‰uðH‹EðHÇH‹EðHÇ@H‹EðÇ@H‹EðH�PH‹EðH‰� H‹EðHÇ€( H‹EðHÇ€ H‹EðH‹UøH‰�0 �]ÃUH‰åHƒì H‰}èH‰uàH‹EèH‹�( H‹EèH‹€ H)ÂH‰ÐH9Eà† HÇEðH‹EèH‹€( HÀH‰EøH‹EèH‹€ H‹UøH)ÂH‰ÐH9EàvH‹EèH‹� H‹EàHÐH‰EøH‹EèH‹€( H9EøsH‹EèH‹€0 H�5H‰Ç¸èoIûÿH‹EèH‹€0 H‹UøH‰ÖH‰ÇèBûÿH‰EðH‹EèH‹� H‹EèH‹ˆ H‹EðH‰ÎH‰ÇèŒ@ûÿH‹EèH‹€ H‹UèHƒÂH9ÐtH‹EèH‹€0 ¾þÿÿÿH‰ÇèûÿH‹EؾÿÿÿÿH‰ÇèÝVûÿH‰EèHƒ}ètH‹EèH‹H‹EøH‰ëH‹Eøº¾H‰Çè¼.ûÿH‹EؾþÿÿÿH‰Çè{]ûÿH‹EØH‰Çè¯]ûÿH‹EؾþÿÿÿH‰ÇèÞ7ûÿH‹EؾüÿÿÿH‰Çè­9ûÿH‹EؾýÿÿÿH‰Çè<]ûÿH‹EøÉÃUH‰åHƒì H‰}è‰uä‹UäH‹Eè‰ÖH‰Çè†ûÿƒøuO‹UäH‹Eè‰ÖH‰ÇèûÿfH~ÀH‰Eø‹MäH‹E躉ÎH‰Çè&H‰EðòH*Eðf.Eøzf.Eøu¸ë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØÇEôH�Uô‹MäH‹Eè‰ÎH‰Çè>äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè…6ûÿ‹UðH‹Eø‰ÖH‰Çèt6ûÿ‹UôH‹Eø‰ÖH‰Çè#_ûÿ‹UðH‹Eø‰ÖH‰Çè_ûÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çèö2ûÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�$þ¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�”ý¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çèà1ûÿH‹Eø¾þÿÿÿH‰Çè-ûÿ‹UôH‹Eø‰ÖH‰ÇènQûÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çèˆ5ûÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èwBûÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çè¹ûÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�³ü‰ÎH‰ÇèÙ"ûÿ…À…�‹UäH‹Eè‰ÖH‰Çèðûÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5QüH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè˜3ûÿé3‹UäH‹Eè‰ÖH‰Çè#ûÿ…ÀtH‹EèºH�5 üH‰ÇèÈ÷ÿÿéH‹EèºH�5õûH‰Çè«÷ÿÿéä‹MäH‹EèH�àû‰ÎH‰Çè¬?ûÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çèûÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰ÇèÑûÿë‹UüH‹Eè‰ÖH‰Çèn5ûÿH‰Eð‹UäH‹Eè‰ÖH‰Çè IûÿH‰ÁH‹UðH‹EèH�5hûH‰Ç¸èÊFûÿƒ}øtCH‹Eè¾þÿÿÿH‰ÇèS[ûÿ�ë/H‹Eè¾ÿÿÿÿH‰Çè¯Yûÿ…ÀuH‹EèH�5(ûH‰Ç¸èã=ûÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè+ûÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�wú¾H‰ÇèÏßÿÿH‹EøH�éú¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çè]ûÿH‹Eø¾ÿÿÿÿH‰ÇèÌûÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèCWûÿH‹MèH‹EøºH‰ÎH‰ÇèKdûÿH‹UðH‹EøH‰ÖH‰Çè¨7ûÿH‹Eøº¾ÿÿÿÿH‰ÇèbûÿH‹Eøº¾H‰ÇèìIûÿH‹Eø¾ÿÿÿÿH‰Çè[1ûÿH‹UðH‹Eø¾ýÿÿÿH‰Çè¶ ûÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè/1ûÿH‹UðH‹Eø¾îØÿÿH‰ÇèŠ ûÿH‹Eø¾þÿÿÿH‰ÇèÉYûÿ�ÉÃUH‰åHƒì@H‰}ÈH‹EȾH‰ÇèYûÿH‰EàH‹EÈH‹R 'H‰ÑH�²ù¾H‰Çè³6ûÿ‰EüHÇEðHÇEØÇEìƒ}üuH‹EàH‰Çè×Mûÿ…Àt¸ë¸‰Eüƒ}üu2H‹Eà¾H‰ÇèÍAûÿH‰EðH‹E๺¾H‰Çè®ûÿë_ƒ}üuûÿH‰CH‹EàH‹¾H‰Çèñ'ûÿH‹EàH‹UÐH‰PH‹EàH‹UØH‰PHƒ}èt5H‹EȾH‰ÇèÑ0ûÿH‰ÂH‹EèH‰H‹EȺÿÿÿÿH�5nõH‰ÇèOûÿë H‹EÈH‰Çè‘+ûÿ¸ëH‹EèH‰ÇèþûÿH‹EàH‰Çèr%ûÿ¸HƒÄ8[]ÃUH‰åHƒì0H‰}ØH‹EغH�5õH‰Çè‚ûÿH‹H‰EøH‹EغH�5òôH‰ÇècûÿH‹H‰EðH‹EðH‰Çè€FûÿH‰ÂH‹EøH‰ÖH‰ÇèþNûÿ‰Eì‹UìH‹E؉ÖH‰Çèš?ûÿÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5“ôH‰ÇèûÿH‹H‰EðH‹EÈH‰Çè�(ûÿ‰EìÇEøH‹EȾH‰ÇèvQûÿ…ÀuH‹EÈH�—ô¾H‰Çèªûÿ…À�ÇEüéù‹UüH‹EÈH�5“ôH‰Çè¥ZûÿH…Àu5‹UüH‹EÈH�5…ôH‰ÇèŠZûÿH…Àu‹MüH‹EÈH�7ô‰ÎH‰ÇèMûÿ…À�‹UüH‹EÈH�5BôH‰ÇèTZûÿH…Àt5‹UüH‹EÈH�5'ôH‰Çè)ûÿH‹H‰EàH‹UàH‹EðH‰ÖH‰Çè??ûÿ‰Eøë3‹UüH‹EÈH�5ÿóH‰ÇèôûÿH‹H‰EØH‹UØH‹EðH‰ÖH‰Çèºûÿ‰Eøƒ}øu‹MüH‹EÈH�×ó‰ÎH‰Çè©ûÿ…À�ƒEü‹Eü;EìŽûþÿÿ‹UøH‹EȉÖH‰Çè>ûÿÉÃUH‰åSHƒìXH‰}¨ÇEìH‹E¨¾H‰Çè>RûÿH‰EàH‹E¨ºH�5PóH‰ÇèRûÿH‹H‰EØH‹E¨ºH�5aóH‰Çè3ûÿH‹H‰EÐH‹E¨¾H‰Çè«ûÿ…À~H‹E¨¾H‰ÇèÖUûÿë¸H‰EÈH‹E¨º¾H‰ÇèEûÿH˜H‰EÀHÇE¸H‹UÐH‹EØH‰ÖH‰Çèd&ûÿ…ÀuH‹E¨H�íò¾H‰Çè˜ûÿ…À�H‹EÀ‰ÇH‹MàH‹UÈH‹uÐH‹EØA‰øH‰ÇèÄ%ûÿH‰E¸H‹EàH‰Çèd5ûÿHƒ}Èt)H‹N'H‰ÇèXÐÿÿH‰ÃH‹EÈH‰Çè;ÐÿÿH‰ÞH‰Çè„SûÿHƒ}¸tOHƒ}¸t5H‹E¨¾H‰Çèõ,ûÿH‰ÂH‹E¸H‰H‹E¨ºÿÿÿÿH�5’ñH‰Çès ûÿë H‹E¨H‰Çèµ'ûÿÇEì‹EìHƒÄX[]ÃUH‰åSHƒìXH‰}¨ÇEìH‹E¨ºH�5GñH‰Çè¸ ûÿH‹H‰EØH‹E¨¾H‰Çè0ûÿ…À~H‹E¨¾H‰Çè[Tûÿë¸H‰EÐH‹E¨¾H‰Çèÿ ûÿ…À~H‹E¨ºH�5µñH‰ÇèS ûÿH‹ë¸H‰EÈH‹E¨¾H‰ÇèÄ ûÿ…À~H‹E¨¾H‰ÇèïOûÿë¸H‰EÀH‹E¨º¾H‰Çè^ûÿH˜H‰E¸HÇEàH‹E¸ƒà@H…ÀuèŸ,ûÿH‰ÇèÇNûÿH‰EàH‹E¸A‰ÀH‹}àH‹MÀH‹UÈH‹uÐH‹EØE‰ÁI‰øH‰ÇèºGûÿƒøu\Hƒ}àt=H�U°H‹EàH‰Ñº¾sH‰Çè�ûÿH‹E°H‹H‹E°H‹HH‹E¨H‰ÎH‰ÇèeëÿÿëH‹E¨¾H‰Çè QûÿÇEìHƒ}Ðt)H‹#'H‰Çè-ÎÿÿH‰ÃH‹EÐH‰ÇèÎÿÿH‰ÞH‰ÇèYQûÿHƒ}àt H‹EàH‰Çèö2ûÿHƒ}Àt H‹EÀH‰Çèã2ûÿ‹EìHƒÄX[]ÃUH‰åSHƒìHH‰}¸ÇEìHÇEàH‹E¸¾H‰ÇèŒNûÿH‰EØH‹E¸¾H‰ÇèwRûÿH‰EÐH‹E¸H�ð¾H‰Çè›6ûÿH‰EÈH‹E¸º¾H‰ÇèÑûÿH˜H‰EÀH‹EÀ‰ÁH‹UÈH‹uØH‹EÐH‰ÇèÁ/ûÿH‰EàH‹EØH‰Çè12ûÿH‹"'H‰Çè,ÍÿÿH‰ÃH‹EÐH‰ÇèÍÿÿH‰ÞH‰ÇèXPûÿHƒ}àtOHƒ}àt5H‹E¸¾H‰ÇèÉ)ûÿH‰ÂH‹EàH‰H‹E¸ºÿÿÿÿH�5fîH‰ÇèGûÿë H‹E¸H‰Çè‰$ûÿÇEì‹EìHƒÄH[]ÃUH‰åHƒìPH‰}¸ÇEüH‹E¸ºH�5îH‰Çè� ûÿH‹H‰EðH‹E¸ºH�5lîH‰Çèn ûÿH‹H‰EèH‹E¸ºH�5}îH‰ÇèO ûÿH‹H‰EàH‹E¸º¾H‰Çè’ûÿH˜H‰EØèç)ûÿH‰ÇèLûÿH‰EÐH‹E؉ÇH‹MÐH‹UèH‹uàH‹EðA‰øH‰Çèš5ûÿ…ÀtBH�UÈH‹EÐH‰Ñº¾sH‰ÇèÙ ûÿH‹EÈH‹H‹EÈH‹HH‹E¸H‰ÎH‰Çè½èÿÿÇEüH‹EÐH‰Çè˜0ûÿ‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5íH‰Çè ûÿH‹H‰EøH‹EøH‰Çè¬ ûÿ¸ÉÃUH‰åHƒì@H‰}ÈÇEüH‹EȺH�5ÉìH‰Çè: ûÿH‹H‰EðH‹EÈH‹@'H‰ÑH�—í¾H‰Çè¡)ûÿ‰EìHÇEàƒ}ìt&ƒ}ìt ƒ}ìtH‹EÈH�ií¾H‰ÇèÌûÿ…À�è”(ûÿH‰Çè¼JûÿH‰Eàƒ}ìuH‹UðH‹EàH‰ÖH‰ÇèPûÿ‰EüëAƒ}ìuH‹UðH‹EàH‰ÖH‰Çèá%ûÿ‰Eüë#ƒ}ìuH‹uðH‹E๺H‰Çèlûÿ‰Eüƒ}üuBH�UØH‹EàH‰Ñº¾sH‰ÇèF ûÿH‹EØH‹H‹EØH‹HH‹EÈH‰ÎH‰Çè*çÿÿÇEüH‹EàH‰Çè/ûÿƒ}üt‹UüH‹EȉÖH‰Çèn6ûÿë¸ÉÃUH‰åHƒì`H‰}¨H‰u H‹E¨º¾H‰Çè¯=ûÿÇEüþÿÿÿH‹E H‹H‰Çè©ûÿH‰ÂH‹E¨H‰ÖH‰Çèûÿ‹MüH‹E¨H�Gì‰ÎH‰ÇèŸûÿH‹E H‹@H…À„H‹E H‹@H‹H‰ÇèK ûÿH‰EðH‹E H‹@H‹@H‰ÇèãQûÿH‰EèH‹E H‹@H‹H…ÀtgÇEäþÿÿÿHƒ}ðt5H‹E¨¾H‰Çèð%ûÿH‰ÂH‹EðH‰H‹E¨ºÿÿÿÿH�5¼ëH‰Çènûÿë H‹E¨H‰Çè° ûÿ‹MäH‹E¨H�ªë‰ÎH‰ÇèèûÿH‹E H‹@H‹@H…ÀtgÇEàþÿÿÿHƒ}èt5H‹E¨¾H‰Çèx%ûÿH‰ÂH‹EèH‰H‹E¨ºÿÿÿÿH�5]ëH‰Çèöûÿë H‹E¨H‰Çè8 ûÿ‹MàH‹E¨H�Në‰ÎH‰ÇèpûÿH‹E H‹@H…Àt{H‹E H‹@H‰ÇècûÿH‰EØÇEÔþÿÿÿHƒ}Øt5H‹E¨¾H‰Çèð$ûÿH‰ÂH‹EØH‰H‹E¨ºÿÿÿÿH�5ñêH‰Çènûÿë H‹E¨H‰Çè°ûÿ‹MÔH‹E¨H�àê‰ÎH‰ÇèèûÿH‹E H‹@ H…Àt{H‹E H‹@H‰ÇèÛûÿH‰EÈÇEÄþÿÿÿHƒ}Èt5H‹E¨¾H‰Çèh$ûÿH‰ÂH‹EÈH‰H‹E¨ºÿÿÿÿH�5iêH‰Çèæûÿë H‹E¨H‰Çè(ûÿ‹MÄH‹E¨H�cê‰ÎH‰Çè`ûÿH‹E H‹@(H…Àt{H‹E H‹@(H‰Çè³(ûÿH‰E¸ÇE´þÿÿÿHƒ}¸t5H‹E¨¾H‰Çèà#ûÿH‰ÂH‹E¸H‰H‹E¨ºÿÿÿÿH�5êH‰Çè^ûÿë H‹E¨H‰Çè ûÿ‹M´H‹E¨H�þé‰ÎH‰ÇèØûÿH‹E H‹@8H…À„�H‹E H‹@8H‰Çè·MûÿÇE°þÿÿÿH‹E H‹@8H…Àt9H‹E¨¾H‰ÇèR#ûÿH‰ÂH‹E H‹@8H‰H‹E¨ºÿÿÿÿH�5ŠèH‰ÇèÌûÿë H‹E¨H‰Çèûÿ‹M°H‹E¨H�wé‰ÎH‰ÇèFûÿH‹E H‹@H…Àt/H‹E H‹PH‹E¨H‰ÖH‰Çè2 ûÿH‹E¨H�Cé¾þÿÿÿH‰Çè ûÿH‹E H‹@0H…Àt/H‹E H‹P0H‹E¨H‰ÖH‰Çèö ûÿH‹E¨H�é¾þÿÿÿH‰ÇèÎ ûÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5"çH‰Çè“ûÿH‹H‰EøH‹EøH‹@H‰Çèœ8ûÿ‰Eô‹Eô‰Çèß+ûÿH‰ÂH‹EèH‰ÖH‰Çè $ûÿH‹E躾ÿÿÿÿH‰ÇèÇûÿ‹Eô‰Çè�KûÿH‰ÂH‹EèH‰ÖH‰ÇèÛ#ûÿH‹E躾ÿÿÿÿH‰Çè•ûÿ¸ÉÃUH‰åHƒìpH‰}˜H‹E˜ºH�5yæH‰ÇèêûÿH‹H‰EàHÇEøHÇEðH‹EàH‹@H‰Çèã7ûÿ‰EÜH‹E˜º¾H‰ÇèŠ8ûÿÇEØþÿÿÿ‹E܉ÇèéJûÿH‰ÂH‹E˜H‰ÖH‰Çè7#ûÿH‹E˜º¾ÿÿÿÿH‰Çèñÿúÿ‹MØH‹E˜H�µç‰ÎH‰Çèi ûÿ‹E܃èƒø‡‘‰ÀH�…H�Áç‹H˜H�µçHÐÿàH‹EàH‹@ H‰EÐH‹EÐH‹@H‰EøH‹EÐH‹@H‰EðÇEÌþÿÿÿH‹EÐH‹H‰ÇèÞýúÿH‰ÂH‹E˜H‰ÖH‰ÇèLûÿ‹MÌH‹E˜H�|æ‰ÎH‰ÇèÔ ûÿÇEÈþÿÿÿH‹EàH‹@H‰ÇèÍ6ûÿƒøu'H‹E๺¾H‰Çè�ûÿH…ÀtºëºH‹E˜‰ÖH‰Çè¾Fûÿ‹MÈH‹E˜H�·æ‰ÎH‰Çèf ûÿH‹E˜H�5«æH‰Çèó!ûÿH‹E˜º¾ÿÿÿÿH‰Çè­þúÿH‹EÐH‹PH‹E˜H‰ÖH‰Çèæ4ûÿH‹E˜¾ýÿÿÿH‰Çè…ûÿH‹EÐH‹@ H…À„àH‹EÐH‹@ H‰ÇèìÂÿÿH‰Çè|ûÿ‰EÄH‹E˜H�56æH‰Çèv!ûÿH‹E˜º¾ÿÿÿÿH‰Çè0þúÿH‹E˜º¾H‰Çèz6ûÿÇEìëdH‹EÐH‹@ H‰Çè‰ÂÿÿH‰Â‹Eì‰ÆH‰×èá1ûÿH‰E¸‹EìƒÀHcÐH‹E˜H‰ÖH‰ÇèÅûÿH‹U¸H‹E˜H‰ÖH‰ÇèMøÿÿH‹E˜¾ýÿÿÿH‰Çè±ûÿƒEì‹Eì;EÄ|”H‹E˜¾ýÿÿÿH‰Çè”ûÿH‹EàH‹@H‰Çè$5ûÿƒøu$H‹E๺¾H‰ÇèäûÿH…À…(H‹EÐH‹@(H‰E°H‹E°H‰Çèó4ûÿH‰E°ÇE¬þÿÿÿHƒ}°t5H‹E˜¾H‰ÇèpûÿH‰ÂH‹E°H‰H‹E˜ºÿÿÿÿH�5 ãH‰Çèîûúÿë H‹E˜H‰Çè0ûÿ‹M¬H‹E˜H�Öä‰ÎH‰Çèh ûÿé H‹EàH‹@ H‹@H‰EøH‹EàH‹@ H‹@H‰EðëH‹EàH‹@ H‰E H‹E H‹HH‹E˜ºH‰ÎH‰ÇèYHûÿH‹E˜H�¼â¾þÿÿÿH‰Çè ûÿë=H‹EàH‹H H‹E˜ºH‰ÎH‰Çè#HûÿH‹E˜H�]â¾þÿÿÿH‰ÇèËûÿë�ë�ë�Hƒ}øtMH‹E˜H�5äH‰ÇèHûÿH‹E˜º¾ÿÿÿÿH‰ÇèüúÿH‹UøH‹E˜H‰ÖH‰Çè?0ûÿH‹E˜¾ýÿÿÿH‰ÇèÞûÿHƒ}ðtMH‹E˜H�5ÏãH‰ÇèôûÿH‹E˜º¾ÿÿÿÿH‰Çè®ûúÿH‹UðH‹E˜H‰ÖH‰ÇèëûÿH‹E˜¾ýÿÿÿH‰ÇèŠûÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5náH‰ÇèßýúÿH‹H‰EøH‹Eغ¾H‰Çè8ûÿH‰EðH‹UðH‹EøH‰ÖH‰Çè[Jûÿ‰Eì‹UìH‹E؉ÖH‰Çè,ûÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ûàH‰ÇèlýúÿH‹H‰EøH‹EؾH‰Çè$@ûÿH‰EðH‹Eغ¾H‰Çèšûÿ‰Eì‹UìH‹MðH‹EøH‰ÎH‰ÇèQûÿ‰Eè‹UèH‹E؉ÖH‰Çè}+ûÿH‹EðH‰Çèñ#ûÿ¸ÉÃUH‰åHƒìH‰}øH‹EøH�sU'H�5càH‰ÇèôûÿH‹Eøº¾H‰Çèž2ûÿH‹EøºH�5>ý&H‰Çè(ÇÿÿH‹EøH�ëU'¾ÿÿÿÿH‰Çèûÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰Çè¡ ûÿH‹Eð¶„Àu ‹Eü‰Çè|ûÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰ÇèšûÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰ÇèNüúÿƒøtbH‹Eø¾þÿÿÿH‰ÇèÈ;ûÿH‹UèH‹uðH‹EøH� %âH‰Çè�=ûÿ…Àt H‹EøH‰Çè] ûÿH‹Eø¾ÿÿÿÿH‰Çè ûÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Çèûÿ‹Uà‹MäH‹Eø‰ÎH‰ÇèN.ûÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5•âH‰Ç¸è!ûÿH‹EøH�¡â¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çèiûÿò*EôH‹EøH‰Çè¸üúÿH‹Eø¾ýÿÿÿH‰Çèg ûÿH‹EøA¸¹ºÛH�5<áH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çè‹>ûÿéå‹Uà‹MäH‹Eè‰ÎH‰Çè2ûÿéÌH‹EèH�Æá¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çèlûÿ‹UàH‹Eè‰ÖH‰Çè[ûÿH‹EèA¸¹ºH�5páH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çè§ûÿ‰EüH‹Eè¾þÿÿÿH‰Çè“9ûÿ‹EüëH‹EèH�5SáH‰Ç¸èvûÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�Òà¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çè ûÿ‹UüH‹Eè‰ÖH‰ÇèO<ûÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè\ùúÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰ÇèÄûÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çèwúúÿ龋MôH‹EøH�zà‰ÎH‰Çèºûÿ…À…š‹UôH‹Eø‰ÖH‰ÇèaûÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèúúÿëZ‹MôH‹EøH�à‰ÎH‰ÇèZûÿ…ÀuA‹UôH‹Eø‰ÖH‰Çèuøúÿ‰ÂH‹Eø‰ÖH‰ÇèûÿH‰ÂH‹EøH�5çßH‰Ç¸èÚûÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çè§+ûÿ‹UüH‹Eè‰ÖH‰ÇèÖûÿH‹Eè¾ÿÿÿÿH‰Çèå÷úÿH‹Eè¾ÿÿÿÿH‰ÇèÔ÷úÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�ÄÞ¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çè +ûÿH‹Eè¾þÿÿÿH‰ÇèŸ ûÿ‹UüH‹Eè‰ÖH‰ÇèNûÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèÇ÷úÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çèpûÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çèñ(ûÿ…ÀuIHƒ}ètH‹UèH‹EøH�5KÞH‰Ç¸èûÿë$H‹EøºH�5@ÞH‰ÇèEH‹EøH‰Çè´ûÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�SݾH‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè/ûÿH‹E躾ÿÿÿÿH‰Çèéòúÿ‹UüH‹Eè‰ÖH‰Çè8=ûÿH‹Eè¾ÿÿÿÿH‰Çè×õúÿH‹Eè¾ÿÿÿÿH‰ÇèÆõúÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Çè95ûÿH‹E躾H‰Çèã*ûÿH‹UØH‹EèH‰ÖH‰Çè ûÿH‹E躾ÿÿÿÿH‰ÇèZòúÿH‹Eè¾þÿÿÿH‰Çèiûÿ‹UüH‹Eè‰ÖH‰ÇèØ+ûÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�<ܾH‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè`4ûÿ‹Eô…ÀuH‹EèH�5–ÜH‰Ç¸èAûÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�܉ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰Çè‚ûÿH‹E躾ÿÿÿÿH‰Çè<ñúÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè>ûÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè¸@ûÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Çè€*ûÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèV3ûÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�ÌÚ¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰ÇèòúÿH‹Eø¾ÿÿÿÿH‰ÇèuóúÿH‹Eø¾þÿÿÿH‰Çè¤<ûÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèí+ûÿH‰EøH‹EèH�RÚ¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰ÇèÉ ûÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰ÇèbñúÿH‹Eè¾ÿÿÿÿH‰ÇèÑòúÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰ÇèKûÿ‰EôH‹Eè¾ýÿÿÿH‰Çè72ûÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çè]óúÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çè(óúÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰ÇèÊñúÿƒøt ¸éüH‹EøH‰Çèß ûÿéÍH‹Eø¾þÿÿÿH‰Çè™ñúÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çè ûÿ…ÀtH‹Eø¾þÿÿÿH‰Çèõ0ûÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çèÿ<ûÿH‹EøºH�5)ÙH‰ÇèìH‹Eø¾þÿÿÿH‰Çè6ûÿH‹Eø¾H‰Çèõ/ûÿ¸ë/H‹Eø¾þÿÿÿH‰Çèm0ûÿH‹Eø¾þÿÿÿH‰Çè|3ûÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çè¡ûÿ‰EüH‹UàH‹EèH�5›ØH‰Çè ûÿH‹Eè¾îØÿÿH‰Çè† ûÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰ÇèÁ/ûÿ¸ë‹UüH‹Eè‰ÖH‰Çè©/ûÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5î×H‰Ç¸èûÿéÜH‹EðH‹@¶H‹EèH‹@H‰Çèvêúÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰ÇèWêúÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèrþúÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5 ÐH‰ÇèH‹°ð&H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5áÏH‰Ç¸èBûÿH‹…ÀïÿÿH�5ÊÏH‰Çè<ûÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5 ÏH‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�51ÏH‰Çè, ûÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5ÏH‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè¾âúÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè¿.ûÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çè£ ûÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çèé$ûÿ‹UüH‹…ÈïÿÿH�5ÎH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çèú0ûÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�qÍH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�WÍH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çè&ûÿÉÃUH‰åHƒì H‰}è‰uäH�LÍH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�øÌH‰EøH‹Eø¶ùúÿH‹EؾH‰Çèý!ûÿH‹EؾþÿÿÿH‰Çè<÷úÿH‹EؾüÿÿÿH‰Çè ùúÿé¼HÇEèH‹EؾH‰Çè½!ûÿH‹EؾýÿÿÿH‰ÇèÌÿúÿH‹EؾÿÿÿÿH‰ÇèÛÜúÿH‹EؾÿÿÿÿH‰ÇèzûÿH‰EèHƒ}ètH‹EèH‹H‹EøH‰ëH‹Eøº¾H‰ÇèYíúÿH‹EؾþÿÿÿH‰ÇèûÿH‹EØH‰ÇèLûÿH‹EؾþÿÿÿH‰Çè{öúÿH‹EؾüÿÿÿH‰ÇèJøúÿH‹EؾýÿÿÿH‰ÇèÙûÿH‹EøÉÃUH‰åHƒì H‰}è‰uä‹UäH‹Eè‰ÖH‰Çè#ÜúÿƒøuO‹UäH‹Eè‰ÖH‰Çè�ÜúÿfH~ÀH‰Eø‹MäH‹E躉ÎH‰Çè&H‰EðòH*Eðf.Eøzf.Eøu¸ë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØÇEôH�Uô‹MäH‹Eè‰ÎH‰Çè>äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè"õúÿ‹UðH‹Eø‰ÖH‰Çèõúÿ‹UôH‹Eø‰ÖH‰ÇèÀûÿ‹UðH‹Eø‰ÖH‰Çè¯ûÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çè“ñúÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH��þH‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�ñ¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çè}ðúÿH‹Eø¾þÿÿÿH‰Çè¼ëúÿ‹UôH‹Eø‰ÖH‰Çè ûÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè%ôúÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èûÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèVÚúÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�‰ÎH‰Çèváúÿ…À…�‹UäH‹Eè‰ÖH‰Çè�Øúÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5®ÁH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè5òúÿé3‹UäH‹Eè‰ÖH‰ÇèŸáúÿ…ÀtH‹EèºH�5jÁH‰ÇèÈ÷ÿÿéH‹EèºH�5RÁH‰Çè«÷ÿÿéä‹MäH‹EèH�=Á‰ÎH‰ÇèIþúÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çè¤×úÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰ÇènÔúÿë‹UüH‹Eè‰ÖH‰Çè ôúÿH‰Eð‹UäH‹Eè‰ÖH‰Çè¦ûÿH‰ÁH‹UðH‹EèH�5ÅÀH‰Ç¸ègûÿƒ}øtCH‹Eè¾þÿÿÿH‰Çèðûÿ�ë/H‹Eè¾ÿÿÿÿH‰ÇèLûÿ…ÀuH‹EèH�5…ÀH‰Ç¸è€üúÿë�H‹UØH‹Eè¾ÿÿÿÿH‰ÇèÈÓúÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�Ô¿¾H‰ÇèÏßÿÿH‹EøH�FÀ¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèúÔúÿH‹Eø¾ÿÿÿÿH‰ÇèiÖúÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèàûÿH‹MèH‹EøºH‰ÎH‰Çèè"ûÿH‹UðH‹EøH‰ÖH‰ÇèEöúÿH‹Eøº¾ÿÿÿÿH‰ÇèÿÒúÿH‹Eøº¾H‰Çè‰ûÿH‹Eø¾ÿÿÿÿH‰ÇèøïúÿH‹UðH‹Eø¾ýÿÿÿH‰ÇèSßúÿƒ}ät&H‹Eø¾ÿÿÿÿH‰ÇèÌïúÿH‹UðH‹Eø¾îØÿÿH‰Çè'ßúÿH‹Eø¾þÿÿÿH‰Çèfûÿ�ÉÃUH‰åHƒì`H‰}¨ÇEüHƒ}¨uH� ‚úH�5¿H�=¿è ëúÿH‹E¨H‰Çèóúÿ‰ÇèwÐúÿ‰Eøƒ}øt„…ƒ}øtƒ}øt.ƒ}ø„²é�}ø˜„à�}ø”„ÓéþH‹E¨H‰Çè4ßúÿH‰EðHÇEÀH�UÀH‹EðH‰Ñº¾H‰Çè» ûÿH‹EÀH…À•À¶À‰Eü�éñH‹E¨H‰Çè©ûÿH‰EèHÇE¸H�U¸H‹Eè¾H‰Çè¨ÿúÿH‹E¸H…À•À¶À‰Eü�é®H‹E¨H‰ÇèvûÿH‰EàHÇE°H�U°H‹Eà¾H‰ÇèêúÿH‹E°H…À•À¶À‰Eü�ënH‹E¨H‰Çè¦ðúÿH‰EØH‹EØH‰Çè&ûÿH‰EÐHƒ}ЕÀ¶À‰Eüë>H‹E¨ºH‰Æ¿èŒ×úÿH‰EÈH‹EÈH‰ÇèìÒúÿ…ÀtÇEüH‹EÈH‰Çè¥ûÿ�‹EüÉÃUH‰åHƒì0H‰}ØH‹EØH‰Çèwñúÿ‰Eü�}ü”u¸ë[H‹EØH‰Çè˜Ðúÿ‰Eü�}ü˜u>H‹EØH‰ÇèðïúÿH‰EðH‹EðH‰Çè0ùúÿH‰EèH‹EèH‰ÇèÞúÿ‰Eä�}ä””À¶Àë¸ÉÃUH‰åH�ì�H‰½xÿÿÿHÇEøH‹…xÿÿÿ¾H‰ÇèIûÿH‰EèH‹…xÿÿÿ¾H‰ÇèñÒúÿƒøÿtH‹…xÿÿÿ¾H‰Çèèñúÿ븉EäH‹…xÿÿÿH‹HÜ&H‰ÑH�€¼¾H‰Çè©òúÿ‰EôH‹…xÿÿÿ¹º¾H‰Çè˜èúÿH‰EØHƒ}ØtH‹EØH‰Çè'ë¸ÿÿÿÿ‰EÔƒ}ôuH‹EèH‰Çè¥ ûÿ…Àt¸ë¸‰Eôƒ}ä…lƒ}ô…Bƒ}Ôttd�}Ô˜„¡ƒ}Ô…ÝH‹E蹺¾H‰Çè¦ ûÿH‰EÈHƒ}È„ÔèÂûÿH‰EøH‹UÈH‹Eø¾H‰Çè îúÿé±H‹E蹺¾H‰ÇèIäúÿH‰EÀHƒ}À„ŠèuûÿH‰EøH‹UÀH‹Eø¾tH‰Çè¼íúÿëjH‹E蹺¾H‰ÇèÏùúÿH‰E¸Hƒ}¸tGè/ûÿH‰EøH‹U¸H‹Eø¾˜H‰Çèvíúÿë'H‹E蹺¾H‰Çè ÍúÿH‰Eøë�ë�ë�H‹E蹺¾H‰ÇèaÓúÿ鳃}ô…©ƒ}ÔttZ�}Ô˜„‰ƒ}Ô…»H‹Eè¾H‰Çè´ÿúÿH‰E°Hƒ}°„²è€ûÿH‰EøH‹U°H‹Eø¾H‰ÇèÇìúÿé�H‹Eè¾H‰ÇèöúÿH‰E¨Hƒ}¨tvèAûÿH‰EøH‹U¨H‹Eø¾tH‰ÇèˆìúÿëVH‹Eè¾H‰ÇèÕùúÿH‰E Hƒ} t=èûÿH‰EøH‹U H‹Eø¾˜H‰ÇèLìúÿëH‹Eè¾H‰Çè©ûÿH‰Eøë�ë�ë�H‹E蹺¾H‰ÇèAÒúÿ铃}ôuAH‹UØH‹EèH‰Ñº¾H‰ÇèùäúÿH‰EøH‹E蹺¾H‰ÇèúÑúÿéLƒ}ô…Bƒ}ÔttZ�}Ô˜„�ƒ}Ô…ÂH‹Eè¾H‰Çè­ ûÿH‰E˜Hƒ}˜„ãèûÿH‰EøH‹U˜H‹Eø¾H‰Çè`ëúÿéÀH‹Eè¾H‰ÇèÊûÿH‰E�Hƒ}�„£èÖûÿH‰EøH‹U�H‹Eø¾tH‰Çèëúÿé€H‹Eè¾H‰Çè—óúÿH‰EˆHƒ}ˆtgè—ûÿH‰EøH‹UˆH‹Eø¾˜H‰ÇèÞêúÿëGHƒ}Øt#H‹UØH‹EèH‰Ñº¾H‰ÇèhðúÿH‰EøëH‹Eè¾H‰ÇèñûÿH‰Eøë�ë�ë�H‹E蹺¾H‰Çè©ÐúÿH‹EèH‰Çè�ôúÿHƒ}øtQHƒ}øt;H‹…xÿÿÿ¾H‰ÇèKìúÿH‰ÂH‹EøH‰H‹…xÿÿÿºÿÿÿÿH�5½·H‰ÇèÆÉúÿëH‹…xÿÿÿH‰ÇèçúÿHƒ}øuH‹…xÿÿÿ¾H‰Çèšûúÿë¸ÉÃUH‰åHƒì@H‰}ÈÇEüHÇEðHÇEàHÇEØHÇEèH‹EÈH‰ÇèBóúÿH‰EÐèYýúÿH‰EØHƒ}Ø„è%âúÿH‰EðHƒ}ð„H‹EÈH‰ÇèJþúÿH‰EàHƒ}à„ðH‹UðH‹MØH‹EÐH‰ÎH‰Çè”Íúÿ…À„ÔH‹EàH‰Çèpûÿ…À…ÃH‹EÈH‰ÇèlâúÿH‰EèHƒ}èuJH‹EÐH‰ÇèÕûÿH‰EèHƒ}è„”H‹UèH‹EÈH‰ÖH‰ÇèÉúÿH‹EèH‰ÇèûÿH‹EÈH‰ÇèâúÿH‰EèH‹MðH‹UàH‹uèH‹EÐI‰ÉA¸¹H‰ÇèQËúÿ…Àt>H‹EÈH‰Çè1òúÿH‰ÁH‹EèºH‰ÆH‰Ïè ÷úÿÇEüë�ë�ë �ë �ë�ë�ë�Hƒ}Øt H‹EØH‰Çè[ûÿHƒ}ðt H‹EðH‰Çè(ûÿ‹EüÉÃUH‰åH�ìðH‰½þÿÿHÇEøH�µH‰EÐH‹…þÿÿ¾H‰ÇèÊËúÿ…À~H‹…þÿÿ¾H‰Çèò ûÿ…À„lH‹UÐH‹…þÿÿ¹¾H‰Çè�áúÿH‰EÐH‹EÐH�5^µH‰Çèvóúÿ…À…;H‹…þÿÿº¾H‰Çè%Ñúÿ‰…¬þÿÿH‹…þÿÿº¾H‰ÇèÑúÿ‰…¨þÿÿH‹…þÿÿ¾H‰ÇèËúÿ…À~ H‹…þÿÿºH�5é´H‰ÇèmÊúÿH‹ë¸H‰… þÿÿè×úúÿH‰…˜þÿÿ‹…¨þÿÿHcÐH‹…˜þÿÿH‰ÖH‰ÇèõùúÿHƒ½ þÿÿtH‹… þÿÿH‰ÇèœïúÿëèåâúÿH‰…�þÿÿH‹•˜þÿÿ‹µ¬þÿÿH‹…�þÿÿ¹H‰Çè]Þúÿ…Àt#èTûÿH‰EøH‹•�þÿÿH‹Eø¾H‰Çè˜æúÿëH‹…�þÿÿH‰ÇèGóúÿH‹…˜þÿÿH‰ÇèxþúÿéÑH‹EÐH�5´H‰Çè òúÿ…À…KH‹…þÿÿº¾H‰ÇèÏÏúÿ‰…ŒþÿÿHÇ…@þÿÿH�•@þÿÿH‹…þÿÿH‰Ñº¾H‰ÇèÛßúÿH‰…€þÿÿH‹…þÿÿ¾H‰Çè°Éúÿ…À~ H‹…þÿÿºH�5}³H‰ÇèÉúÿH‹ë¸H‰…xþÿÿHƒ½xþÿÿtH‹…xþÿÿH‰ÇèËúÿëèñúÿH‰…pþÿÿH‹…@þÿÿ‰ÁH‹•€þÿÿ‹µŒþÿÿH‹…pþÿÿHƒìjA¹A¸H‰ÇèâÐúÿHƒÄ…Àt9H‹…pþÿÿH‰Çè«Èúÿ…Àt&èâ ûÿH‰EøH‹•pþÿÿH‹Eø¾tH‰Çè&åúÿéH‹…pþÿÿH‰ÇèB ûÿékH‹EÐH�5¹²H‰Çèºðúÿ…À….H‹…þÿÿº¾H‰ÇèiÎúÿ‰…lþÿÿH‹…þÿÿº¾H‰ÇèJÎúÿ‰…hþÿÿH‹…þÿÿ¾H‰Çè`Èúÿ…À~ H‹…þÿÿºH�5-²H‰Çè±ÇúÿH‹ë¸H‰…`þÿÿHƒ½`þÿÿtH‹…`þÿÿH‰ÇèüúÿëèÐßúÿH‰…Xþÿÿ‹•hþÿÿ‹µlþÿÿH‹…Xþÿÿ¹H‰ÇèÉÔúÿ…ÀtMH‹…XþÿÿH‰ÇèÍúÿ…Àt&è­ ûÿH‰EøH‹•XþÿÿH‹Eø¾H‰ÇèñãúÿéJH‹…XþÿÿH‰Çè]ûÿé6H‹…XþÿÿH‰ÇèIûÿé"H‹EÐH�5s±H‰Çèqïúÿ…À…H‹…þÿÿ¹º¾H‰ÇèK÷úÿH‰…PþÿÿHƒ½PþÿÿuH‹…þÿÿH�5)±H‰Ç¸è¯ìúÿHÇ…HþÿÿèßçúÿH‰…HþÿÿHƒ½Hþÿÿ„„H‹•PþÿÿH‹…HþÿÿH‰ÖH‰ÇèûÿH‹…PþÿÿH‰Çè²çúÿH‹…HþÿÿH‰Çèãöúÿ…Àt5H‹…HþÿÿH‰Çèÿøÿÿè‹ ûÿH‰EøH‹•HþÿÿH‹Eø¾˜H‰ÇèÏâúÿé(H‹…HþÿÿH‰ÇèÛ ûÿéH‹…PþÿÿH‰ÇèGçúÿéH‹UÐH‹…þÿÿH�5k°H‰Ç¸èÓëúÿéÜH‹…þÿÿ¾H‰Çè*Æúÿƒø…#H‹…þÿÿH�A°¾H‰Çè†ÄúÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèòÅúÿH‹UÐH‹…þÿÿ¹¾ÿÿÿÿH‰ÇèåÛúÿH‰EÐH‹…þÿÿ¾þÿÿÿH‰ÇèMûÿH‹EÐH�5’¯H‰Çèªíúÿ…À…è} ûÿH‰EøHƒ}ø„,èÉÝúÿH‰EÈHƒ}È„HÇEÀHÇE¸HÇE°HÇE¨HÇE HÇE˜HÇE�HÇEˆH‹…þÿÿH�^¯¾H‰ÇèŸÃúÿH‹…þÿÿ¾ÿÿÿÿH‰Çè ÅúÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèGÉúÿH‰EÀH‹…þÿÿ¾þÿÿÿH‰ÇèoûÿH‹…þÿÿH�¯¾H‰ÇèDÃúÿH‹…þÿÿ¾ÿÿÿÿH‰Çè°ÄúÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèìÈúÿH‰E¸H‹…þÿÿ¾þÿÿÿH‰ÇèûÿH‹…þÿÿH�¬®¾H‰ÇèéÂúÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèUÄúÿH‹…þÿÿ¾ÿÿÿÿH‰Çè‘ÈúÿH‰E°H‹…þÿÿ¾þÿÿÿH‰Çè¹ûÿH‹…þÿÿH�S®¾H‰ÇèŽÂúÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèúÃúÿH‹…þÿÿ¾ÿÿÿÿH‰Çè6ÈúÿH‰E¨H‹…þÿÿ¾þÿÿÿH‰Çè^ûÿH‹…þÿÿH�ú­¾H‰Çè3ÂúÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèŸÃúÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèÛÇúÿH‰E H‹…þÿÿ¾þÿÿÿH‰ÇèûÿH‹…þÿÿH�¡­¾H‰ÇèØÁúÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèDÃúÿH‹…þÿÿ¾ÿÿÿÿH‰Çè€ÇúÿH‰E˜H‹…þÿÿ¾þÿÿÿH‰Çè¨ûÿH‹…þÿÿH�K­¾H‰Çè}ÁúÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèéÂúÿH‹…þÿÿ¾ÿÿÿÿH‰Çè%ÇúÿH‰E�H‹…þÿÿ¾þÿÿÿH‰ÇèMûÿH‹…þÿÿH�õ¬¾H‰Çè"ÁúÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèŽÂúÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèÊÆúÿH‰EˆH‹…þÿÿ¾þÿÿÿH‰ÇèòûÿH‹M°H‹U¸H‹uÀH‹EÈH‰ÇèÚ¼úÿƒø…‘Hƒ}¨tH‹U H‹M¨H‹EÈH‰ÎH‰Çè3ûÿƒøunHƒ}˜tH‹MˆH‹U�H‹u˜H‹EÈH‰ÇèÎúÿƒøuJH‹UÈH‹Eø¾H‰Çè%Þúÿ…À…{H‹EÈH‰ÇèÑêúÿHÇEÈH‹EøH‰ÇèýÕúÿHÇEøéNH‹EÈH‰Çè¤êúÿHÇEÈH‹EøH‰ÇèÐÕúÿHÇEøé!H‹EÐH�5k«H‰Çèpéúÿ…À…ëèCûÿH‰EøHƒ}ø„òèïèúÿH‰E€Hƒ}€„ÞHÇ…xÿÿÿHÇ…pÿÿÿHÇ…hÿÿÿHÇ…`ÿÿÿHÇ…XÿÿÿH‹…þÿÿH�3«¾H‰Çèn¿úÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèÚÀúÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèÅúÿH‰…xÿÿÿH‹…þÿÿ¾þÿÿÿH‰Çè;ûÿH‹…þÿÿH�ת¾H‰Çè¿úÿH‹…þÿÿ¾ÿÿÿÿH‰Çè|ÀúÿH‹…þÿÿ¾ÿÿÿÿH‰Çè¸ÄúÿH‰…pÿÿÿH‹…þÿÿ¾þÿÿÿH‰ÇèÝÿúÿH‹…þÿÿH�Šª¾H‰Çè²¾úÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèÀúÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèZÄúÿH‰…hÿÿÿH‹…þÿÿ¾þÿÿÿH‰ÇèÿúÿH‹…þÿÿH�.ª¾H‰ÇèT¾úÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèÀ¿úÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèüÃúÿH‰…`ÿÿÿH‹…þÿÿ¾þÿÿÿH‰Çè!ÿúÿH‹…þÿÿH�Ù©¾H‰Çèö½úÿH‹…þÿÿ¾ÿÿÿÿH‰Çèb¿úÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèžÃúÿH‰…XÿÿÿH‹…þÿÿ¾þÿÿÿH‰ÇèÃþúÿH‹•`ÿÿÿH‹�XÿÿÿH‹E€H‰ÎH‰Çè¦âúÿƒøugH‹�hÿÿÿH‹•pÿÿÿH‹µxÿÿÿH‹E€H‰Çè`Ðúÿ…ÀtBH‹U€H‹Eø¾tH‰ÇèÛúÿ…À…m H‹E€H‰Çè3ûÿH‹EøH‰Çè÷ÒúÿHÇEøéH H‹E€H‰ÇèûÿHÇE€H‹EøH‰ÇèÊÒúÿHÇEøé H‹EÐH�5i¨H‰Çèjæúÿ…À…è=ûÿH‰EøHƒ}ø„ì è ÖúÿH‰…PÿÿÿHƒ½Pÿÿÿ„Ò HÇ…HÿÿÿHÇ…@ÿÿÿHÇ…8ÿÿÿHÇ…0ÿÿÿHÇ…(ÿÿÿH‹…þÿÿH�'¨¾H‰Çèb¼úÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèνúÿH‹…þÿÿ¾ÿÿÿÿH‰Çè ÂúÿH‰…HÿÿÿH‹…þÿÿ¾þÿÿÿH‰Çè/ýúÿH‹…þÿÿH�˧¾H‰Çè¼úÿH‹…þÿÿ¾ÿÿÿÿH‰Çèp½úÿH‹…þÿÿ¾ÿÿÿÿH‰Çè¬ÁúÿH‰…@ÿÿÿH‹…þÿÿ¾þÿÿÿH‰ÇèÑüúÿH‹…þÿÿH�~§¾H‰Ç覻úÿH‹…þÿÿ¾ÿÿÿÿH‰Çè½úÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèNÁúÿH‰…8ÿÿÿH‹…þÿÿ¾þÿÿÿH‰ÇèsüúÿH‹…þÿÿH�"§¾H‰ÇèH»úÿH‹…þÿÿ¾ÿÿÿÿH‰Çè´¼úÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèðÀúÿH‰…0ÿÿÿH‹…þÿÿ¾þÿÿÿH‰ÇèüúÿH‹…þÿÿH�ͦ¾H‰ÇèêºúÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèV¼úÿH‹…þÿÿ¾ÿÿÿÿH‰Çè’ÀúÿH‰…(ÿÿÿH‹…þÿÿ¾þÿÿÿH‰Çè·ûúÿH‹•0ÿÿÿH‹�(ÿÿÿH‹…PÿÿÿH‰ÎH‰Çè÷ûÿƒøu{H‹�8ÿÿÿH‹•@ÿÿÿH‹µHÿÿÿH‹…PÿÿÿH‰ÇèîÜúÿ…ÀtSH‹•PÿÿÿH‹Eø¾H‰ÇèØúÿ…À…X H‹…PÿÿÿH‰ÇèkûÿHÇ…PÿÿÿH‹EøH‰ÇèÔÏúÿHÇEøé% H‹…PÿÿÿH‰Çè8ûÿHÇ…PÿÿÿH‹EøH‰Çè¡ÏúÿHÇEøéò H‹EÐH�5C¥H‰ÇèAãúÿ…À…× HÇEðHÇEèHÇEàHÇEØHÇ… ÿÿÿH‹…þÿÿH�^¥¾ÿÿÿÿH‰Çès¹úÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèߺúÿH‹…þÿÿH�7¥¾þÿÿÿH‰ÇèD¹úÿH‹…þÿÿ¾ÿÿÿÿH‰Çè°ºúÿH‹…þÿÿH�¥¾ýÿÿÿH‰Çè¹úÿH‹…þÿÿ¾ÿÿÿÿH‰Çè�ºúÿH‹…þÿÿ¹ÿÿÿÿºþÿÿÿ¾ýÿÿÿH‰ÇècêúÿH‰… ÿÿÿH‹…þÿÿ¾üÿÿÿH‰ÇèØùúÿHƒ½ ÿÿÿuH‹…þÿÿH�5ª¤H‰Ç¸è³ßúÿH‹…þÿÿH�K¤¾ÿÿÿÿH‰Ç舸úÿH‹…þÿÿ¾ÿÿÿÿH‰Çèô¹úÿH‹…þÿÿ¾ÿÿÿÿH‰Çè ûúÿ…Àt`HÇ…8þÿÿH�•8þÿÿH‹…þÿÿ¾ÿÿÿÿH‰Çè–ÇúÿH‰…ÿÿÿHƒ}ðu è“éúÿH‰EðH‹…8þÿÿ‰ÁH‹UðH‹…ÿÿÿ‰ÎH‰ÇèQ½úÿé§H‹…þÿÿºÿÿÿÿH�5ý£H‰ÇèáûÿH…ÀtMH‹…þÿÿºÿÿÿÿH�5Ý£H‰Ç豸úÿH‹H‰…ÿÿÿHƒ}ðu èéúÿH‰EðH‹•ÿÿÿH‹EðH‰ÖH‰Çèáàúÿë:H‹…þÿÿ¾ÿÿÿÿH‰Çèû¸úÿ…Àt"H‹…þÿÿH�£H�5‚£H‰Ç¸èeÞúÿH‹…þÿÿ¾þÿÿÿH‰ÇèQøúÿH‹…þÿÿH�ˆ£¾ÿÿÿÿH‰Çè&·úÿH‹…þÿÿ¾ÿÿÿÿH‰Çè’¸úÿH‹…þÿÿ¾ÿÿÿÿH‰Çè¾ùúÿ…Àt`HÇ…0þÿÿH�•0þÿÿH‹…þÿÿ¾ÿÿÿÿH‰Çè4ÆúÿH‰…ÿÿÿHƒ}èu è1èúÿH‰EèH‹…0þÿÿ‰ÁH‹UèH‹…ÿÿÿ‰ÎH‰Çèï»úÿé§H‹…þÿÿºÿÿÿÿH�5›¢H‰ÇèûÿH…ÀtMH‹…þÿÿºÿÿÿÿH�5{¢H‰ÇèO·úÿH‹H‰…ÿÿÿHƒ}èu è¹çúÿH‰EèH‹•ÿÿÿH‹EèH‰ÖH‰Çèßúÿë:H‹…þÿÿ¾ÿÿÿÿH‰Çè™·úÿ…Àt"H‹…þÿÿH�\¢H�5 ¢H‰Ç¸èÝúÿH‹…þÿÿ¾þÿÿÿH‰ÇèïöúÿH‹…þÿÿH�(¢¾ÿÿÿÿH‰ÇèĵúÿH‹…þÿÿ¾ÿÿÿÿH‰Çè0·úÿH‹…þÿÿ¾ÿÿÿÿH‰Çè\øúÿ…Àt`HÇ…(þÿÿH�•(þÿÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèÒÄúÿH‰…øþÿÿHƒ}àu èÏæúÿH‰EàH‹…(þÿÿ‰ÁH‹UàH‹…øþÿÿ‰ÎH‰Çè�ºúÿé§H‹…þÿÿºÿÿÿÿH�59¡H‰ÇèûÿH…ÀtMH‹…þÿÿºÿÿÿÿH�5¡H‰ÇèíµúÿH‹H‰…ðþÿÿHƒ}àu èWæúÿH‰EàH‹•ðþÿÿH‹EàH‰ÖH‰ÇèÞúÿë:H‹…þÿÿ¾ÿÿÿÿH‰Çè7¶úÿ…Àt"H‹…þÿÿH�ü H�5¾ H‰Ç¸è¡ÛúÿH‹…þÿÿ¾þÿÿÿH‰Çè�õúÿH‹…þÿÿH�È ¾ÿÿÿÿH‰Çèb´úÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèεúÿH‹…þÿÿ¾ÿÿÿÿH‰Çèúöúÿ…Àt`HÇ… þÿÿH�• þÿÿH‹…þÿÿ¾ÿÿÿÿH‰ÇèpÃúÿH‰…èþÿÿHƒ}Øu èmåúÿH‰EØH‹… þÿÿ‰ÁH‹UØH‹…èþÿÿ‰ÎH‰Çè+¹úÿé§H‹…þÿÿºÿÿÿÿH�5ןH‰Çè»þúÿH…ÀtMH‹…þÿÿºÿÿÿÿH�5·ŸH‰Çè‹´úÿH‹H‰…àþÿÿHƒ}Øu èõäúÿH‰EØH‹•àþÿÿH‹EØH‰ÖH‰Çè»Üúÿë:H‹…þÿÿ¾ÿÿÿÿH‰ÇèÕ´úÿ…Àt"H‹…þÿÿH�œŸH�5\ŸH‰Ç¸è?ÚúÿH‹…þÿÿ¾þÿÿÿH‰Çè+ôúÿHƒ}ØtH‹…þÿÿH�5fŸH‰Ç¸è ÚúÿèTøúÿH‰EøHƒ}ø„Sè0ÕúÿH‰…ØþÿÿHƒ½Øþÿÿ„9H‹• ÿÿÿH‹…ØþÿÿH‰ÖH‰ÇèRòúÿHƒ}ðtH‹UðH‹…ØþÿÿH‰ÖH‰Ç襯úÿHƒ}ètkHƒ}àtdH‹… ÿÿÿH‰ÇèøøúÿH‰…ÐþÿÿH‹MàH‹UèH‹µÐþÿÿH‹… ÿÿÿA¸H‰Çè ÑúÿH‹•ÐþÿÿH‹…ØþÿÿH‰ÖH‰Çè°úÿH‹…ÐþÿÿH‰ÇèëúÿëH‹…ØþÿÿH‰ÇèãåÿÿH‹…ØþÿÿH‰Çèßúÿ…ÀtH‹•ØþÿÿH‹Eø¾˜H‰Çè©Ïúÿ…Àu#H‹…ØþÿÿH‰Çè¶øúÿH‹EøH‰ÇèŠÇúÿHÇEøH‹EðH‰ÇèvçúÿH‹EèH‰ÇèjçúÿH‹EàH‰Çè^çúÿH‹EØH‰ÇèRçúÿH‹… ÿÿÿH‰ÇèãÓúÿéœH‹…þÿÿºH�5ë�H‰ÇècüúÿH…ÀtIH‹…þÿÿºH�5Ë�H‰Çè3²úÿH‹H‰…Èþÿÿè”öúÿH‰EøH‹•ÈþÿÿH‹EøH‰ÖH‰ÇèJ¸úÿé3H‹…þÿÿºH�5Ž�H‰ÇèúûúÿH…ÀtIH‹…þÿÿºH�5n�H‰ÇèʱúÿH‹H‰…Àþÿÿè+öúÿH‰EøH‹•ÀþÿÿH‹EøH‰ÖH‰ÇèAëúÿéÊH‹…þÿÿºH�54�H‰Çè‘ûúÿH…ÀtFH‹…þÿÿºH�5�H‰Çèa±úÿH‹H‰…¸þÿÿèÂõúÿH‰EøH‹•¸þÿÿH‹EøH‰ÖH‰ÇèèµúÿëdH‹…þÿÿºH�5ÙœH‰Çè+ûúÿH…ÀtDH‹…þÿÿºH�5¹œH‰Çèû°úÿH‹H‰…°þÿÿè\õúÿH‰EøH‹•°þÿÿH‹EøH‰ÖH‰ÇèÄúÿHƒ}øthH‹EøH‰ÇèÏúÿ…ÀtXHƒ}øt;H‹…þÿÿ¾H‰ÇèpÏúÿH‰ÂH‹EøH‰H‹…þÿÿºÿÿÿÿH�5âšH‰Çèë¬úÿëH‹…þÿÿH‰Çè*Êúÿ¸ëH‹EøH‰Çè'Åúÿ¸ÉÃUH‰åSHƒìhH‰}˜ÇEÜÇEìÇEØHÇE°HÇEÐÇEèHÇEÈH‹E˜ºH�5^šH‰Çè÷¯úÿH‹H‰EÀH‹EÀH‰Çèt»úÿ‰EÜH‹E˜¾H‰Çè`°úÿ‰E؃}Øt ƒ}ØÿtH‹E˜H�~›¾H‰Ç虵úÿ…À�H‹E˜H‹³¹&H‰ÑH�y›¾H‰ÇèÐúÿ‰E؃}Øt ƒ}ØtH‹E˜H�Z›¾H‰ÇèMµúÿ…À�H‹E˜¾H‰ÇèÙ¯úÿƒøÿtH‹E˜¾H‰ÇèS¹úÿ‰EìH�U°H‹E˜H‰Ñº¾H‰Çè³ÅúÿH‰EÈHƒ}Èt èÓ¿úÿH‰EàëHÇEàè°ÎúÿH‰ÇèØðúÿH‰EЃ}؅ă}ìuTƒ}Üt3H‹E°‰ÇH‹MÈH‹UàH‹uÀH‹EÐHƒìjA¹A‰øH‰ÇèáÑúÿHƒÄëH‹UÀH‹EÐH‰ÖH‰Çèóúÿ‰EèéH‹EÀH‰ÇèÔÌúÿ‰Çè-ªúÿƒøtt~=˜„݃ø…ñƒ}Üt>H‹E°‰ÃH‹EÀH‰Çè ¹úÿH‰ÆH‹MÈH‹UàH‹EÐHƒìjA¹A‰ØH‰Çè¦ûúÿHƒÄëH‹EÀH‰ÇèÔ¸úÿH‰ÂH‹EÐH‰ÖH‰Çè2áúÿ‰Eè鈃}Üt>H‹E°‰ÃH‹EÀH‰ÇèbßúÿH‰ÆH‹MÈH‹UàH‹EÐHƒìjA¹A‰ØH‰ÇèÜèúÿHƒÄëH‹EÀH‰Çè*ßúÿH‰ÂH‹EÐH‰ÖH‰ÇèXÛúÿ‰Eèéƒ}Üt>H‹E°‰ÃH‹EÀH‰ÇèxÊúÿH‰ÆH‹MÈH‹UàH‹EÐHƒìjA¹A‰ØH‰ÇèàúÿHƒÄëH‹EÀH‰Çè@ÊúÿH‰ÂH‹EÐH‰ÖH‰ÇèØúÿ‰Eèé´ƒ}ìupƒ}ÜtOHƒ}ÈuH‹UÀH‹EÐH‰ÖH‰Çè`íúÿëFH‹E°‰ÇH‹MÈH‹UàH‹uÀH‹EÐHƒìjA¹A‰øH‰ÇèÐúÿHƒÄëH‹UÀH‹EÐH‰ÖH‰ÇèXèúÿ‰Eèé>H‹EÀH‰ÇèôÊúÿ‰ÇèM¨úÿƒøtt`=˜„žƒø…Þƒ}Üt H‹EÀH‰Çè2·úÿH‰ÂH‹EÐH‰ÖH‰Ç耭úÿëH‹EÀH‰Çè·úÿH‰ÂH‹EÐH‰ÖH‰ÇèÀÚúÿ‰EèéÆƒ}Üt H‹EÀH‰Çè¦ÝúÿH‰ÂH‹EÐH‰ÖH‰ÇèÄúÿëH‹EÀH‰Çè†ÝúÿH‰ÂH‹EÐH‰ÖH‰ÇèÔåúÿ‰Eèë}ƒ}Üt H‹EÀH‰ÇèÝÈúÿH‰ÂH‹EÐH‰ÖH‰Çè½úÿëH‹EÀH‰Çè½ÈúÿH‰ÂH‹EÐH‰ÖH‰Çè;èúÿ‰Eèë4ƒ}ÜtH‹UÀH‹EÐH‰ÖH‰ÇèíëúÿëH‹UÀH‹EÐH‰ÖH‰Çèçúÿ‰Eèë�ƒ}èt?H�U¨H‹EÐH‰Ñº¾H‰Çè?®úÿH‰E¸H‹U¸H‹M¨H‹E˜H‰ÎH‰Çè‰ËÿÿÇEèHƒ}Ðt H‹EÐH‰ÇèúÑúÿ‹EèH‹]øÉÃUH‰åHƒì H‰}èH‹EèºH�5D•H‰ÇèݪúÿH‹H‰EøH‹EøH‰Çèš¿úÿ¸ÉÃUH‰åHƒì H‰}èHÇEøëEH‹EøHÁàH‰ÂH�³«&H‹H‹EèH‰ÖH‰ÇèÓúÿ…ÀuH‹EøHÁàH‰ÂH�‚«&‹ëHƒEøHƒ}ø v´¸ÿÿÿÿÉÃUH‰å‰}ìHÇEðHÇEøë;H‹EøHÁàH‰ÂH�?«&‹9EìuH‹EøHÁàH‰ÂH�-«&H‹H‰Eðë HƒEøHƒ}ø v¾H‹Eð]ÃUH‰åHƒìPH‰}¸H‹E¸ºH�5<”H‰ÇèÕ©úÿH‹H‰EøH‹EøH‰Çè"Èúÿ‰EôH‹E¸º¾H‰Çè‰ßúÿÇEðþÿÿÿH‹EøH‰ÇèÖÒúÿHcÐH‹E¸H‰ÖH‰ÇèôÀúÿ‹MðH‹E¸H�Ε‰ÎH‰Çè|³úÿÇEìþÿÿÿH‹EøH‰Çè íúÿHcÐH‹E¸H‰ÖH‰Çè·Àúÿ‹MìH‹E¸H�–•‰ÎH‰Çè?³úÿÇEèþÿÿÿ‹Eô‰ÇèÄþÿÿH‰ÂH‹E¸H‰ÖH‰Çè¼ÉúÿH‹E¸º¾ÿÿÿÿH‰Çèv¦úÿ‹MèH‹E¸H�J•‰ÎH‰Çèî²úÿƒ}ôt„¯ƒ}ôtƒ}ôt.ƒ}ô„éa�}ô˜„ã�}ô”„déBH‹EøH‰ÇèÎæúÿH‰EàHƒ}àt5H‹E¸¾H‰ÇèBÇúÿH‰ÂH‹EàH‰H‹E¸ºÿÿÿÿH�5è“H‰ÇèÀ¤úÿë H‹E¸H‰ÇèÂúÿH‹E¸H�§’¾þÿÿÿH‰Çè:²úÿéÍH‹EøH‰ÇèÙÅúÿH‰EØHƒ}Øt5H‹E¸¾H‰ÇèÍÆúÿH‰ÂH‹EØH‰H‹E¸ºÿÿÿÿH�5™“H‰ÇèK¤úÿë H‹E¸H‰Çè�ÁúÿH‹E¸H�E’¾þÿÿÿH‰ÇèűúÿéXH‹EøH‰ÇèdÂúÿH‰EÐHƒ}Ðt5H‹E¸¾H‰ÇèXÆúÿH‰ÂH‹EÐH‰H‹E¸ºÿÿÿÿH�5“H‰ÇèÖ£úÿë H‹E¸H‰ÇèÁúÿH‹E¸H�Ô‘¾þÿÿÿH‰ÇèP±úÿéãH‹EøH‰ÇèæúÿH‰EÈHƒ}Èt5H‹E¸¾H‰ÇèãÅúÿH‰ÂH‹EÈH‰H‹E¸ºÿÿÿÿH�5•’H‰Çèa£úÿë H‹E¸H‰Çè£ÀúÿH‹E¸H�?“¾þÿÿÿH‰ÇèÛ°úÿëqH‹EøH‰Çè­åúÿH‰EÀHƒ}Àt5H‹E¸¾H‰ÇèqÅúÿH‰ÂH‹EÀH‰H‹E¸ºÿÿÿÿH�5#’H‰Çèï¢úÿë H‹E¸H‰Çè1ÀúÿH‹E¸H�ð�¾þÿÿÿH‰Çèi°úÿ�¸ÉÃUH‰åHƒì`H‰}¨HÇE¸H‹E¨ºH�5Œ�H‰Çè%¦úÿH‹H‰EðH�U¸H‹E¨¾H‰Çèy´úÿH‰EèH‹E¨H�e’¾H‰Çèmòúÿ‰EäH‹E¨¾H‰Çèi¦úÿ…À~H‹E¨ºH�59�H‰Çè½¥úÿH‹ë¸H‰EØH‹EðH‰ÇèSéúÿH˜H‰E°HÇEÐÇEüH‹EðH‰ÇèâÃúÿ‰Çè;¡úÿ‰Ẽ}Ìt ƒ}ÌtH‹E¨H�Ù‘¾H‰ÇèD«úÿ…À�H‹UØH‹EðH‰ÖH‰ÇèÞµúÿH‰EÐH‹EÐH‰Çèž¶úÿƒøut‹UäH‹EЉÖH‰Çè¸Ñúÿƒøu^H‹E°H‰ÇèWØúÿH‰EÀH‹}¸H‹MèH�U°H‹uÀH‹EÐI‰øH‰ÇèÄÍúÿƒøuH‹U°H‹MÀH‹E¨H‰ÎH‰Çè-ÅÿÿÇEüH‹EÀH‰ÇèõÑúÿH‹EÐH‰Çèäúÿ‹EüÉÃUH‰åHƒì`H‰}¨HÇE¸H‹E¨ºH�5ߎH‰Çèx¤úÿH‹H‰EðH�U¸H‹E¨¾H‰Çè̲úÿH‰EèH‹E¨H�¸�¾H‰ÇèÀðúÿ‰EäH‹E¨¾H‰Ç輤úÿ…À~H‹E¨ºH�5ŒŽH‰Çè¤úÿH‹ë¸H‰EØH‹EðH‰Çè¦çúÿH˜H‰E°HÇEÐÇEüH‹EðH‰Çè5Âúÿ‰Ç莟úÿ‰Ẽ}Ìt ƒ}ÌtH‹E¨H�,�¾H‰Çè—©úÿ…À�H‹UØH‹EðH‰ÖH‰Çè1´úÿH‰EÐH‹EÐH‰ÇèÁãúÿƒøut‹UäH‹EЉÖH‰Çè Ðúÿƒøu^H‹E°H‰ÇèªÖúÿH‰EÀH‹}¸H‹MèH�U°H‹uÀH‹EÐI‰øH‰Çè·ÉúÿƒøuH‹U°H‹MÀH‹E¨H‰ÎH‰Çè€ÃÿÿÇEüH‹EÀH‰ÇèHÐúÿH‹EÐH‰Çèlâúÿ‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5:�H‰ÇèÓ¢úÿH‹H‰EøH‹EøH‰ÇèP®úÿ‰Eôƒ}ôt ƒ}ôtH‹EèH�C�¾H‰Ç艨úÿ…À�‹UôH‹Eè‰ÖH‰ÇèÕçúÿ¸ÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5ÁŒH‰ÇèZ¢úÿH‹H‰EðÇEüH‹EðH‰Çè Àúÿ=”…¡H‹EðH‰Çè9¿úÿH‰EèH‹EèH‰ÇèÉèúÿH‰EèH‹Eè¾H‰Çè$žúÿèoæúÿH‰EðH‹UèH‹Eð¾˜H‰Çè¶¾úÿHƒ}ðt5H‹E¸¾H‰ÇèžÀúÿH‰ÂH‹EðH‰H‹E¸ºÿÿÿÿH�5ŒH‰Çèžúÿë H‹E¸H‰Çè^»úÿ¸éH‹Eð¾H‰ÇèÃÂúÿH˜H‰EàHƒ}à„ùH‹EàºüH�5¤‹H‰ÇèJêúÿH‰EØHƒ}Ø„ÒH‹EØH‰EÐè®åúÿH‰EÈH‹EÈH‹UðH‰ÖH‰Çè'ÛúÿH�UÐH‹EðH‰ÖH‰ÇèTÂúÿH˜H‰EàH‹EØH‰EÐH‹UàH�MÐH�EÈH‰ÎH‰ÇèÏÃúÿH‰EÈH‹EÈH…ÀtQH‹EÈH…Àt5H‹E¸¾H‰Ç蘿úÿH‰ÂH‹EÈH‰H‹E¸ºÿÿÿÿH�5 ‹H‰Çè�úÿë H‹E¸H‰ÇèXºúÿÇEüH‹Eغ H�5ÊH‰Çèé¶úÿ‹EüÉÃUH‰åHƒì0H‰}ØH‹EغH�5·ŠH‰ÇèP úÿH‹H‰EøH‹EؾH‰ÇèÈ úÿ…À~H‹EغH�5˜ŠH‰Çè úÿH‹ë¸H‰EðHÇEèH‹EøH‰ÇèZ¾úÿ‰Çè³›úÿ‰Eäƒ}ät ƒ}ätH‹EØH�QŒ¾H‰Çè¼¥úÿ…À�H‹UðH‹EøH‰ÖH‰ÇèV°úÿH‰EèHƒ}èt5H‹EؾH‰Çèj¾úÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5)ŒH‰Çèè›úÿë H‹EØH‰Çè*¹úÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EؾH‰ÇèF¿úÿ…ÀtH‹Eغ¾H‰ÇèôÃÿÿëH‹Eغ¾H‰Çè„­úÿH‰Çè,äúÿ‰EüH‹EؾH‰Ç舟úÿ…À~H‹EغH�5X‰H‰ÇèÜžúÿH‹ë¸H‰Eðƒ}üH‹EØH�{‹¾H‰Çè ¤úÿ…À�H‹Uð‹EüH‰Ö‰ÇèœìúÿH‰EèHƒ}ètOHƒ}èt5H‹EؾH‰ÇèI½úÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5‹H‰ÇèÇšúÿë H‹EØH‰Çè ¸úÿ¸ëH‹EؾH‰Çè¡ÌúÿÉÃUH‰åHƒì H‰}èH‹EèºH�5¼ŠH‰Çè žúÿH‹H‰EøH‹EøH‰ÇèhÝúÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5~ŠH‰ÇèÍ�úÿH‹H‰EðH‹Eغ¾H‰Çè¤úÿ‰EìHÇEàH‹EðH‰ÇèyÒúÿ‰Eüƒ}üuH�UàH‹EðH‰ÖH‰ÇèMÍúÿ‰Eüƒ}üuLH‹EàH…Àt5H‹EؾH‰Çè*¼úÿH‰ÂH‹EàH‰H‹EغÿÿÿÿH�5Ÿ‡H‰Ç訙úÿëfH‹EØH‰Çèê¶úÿëXƒ}üþu>H‹EØH‰ÇèÖ¶úÿH‹EØH�5æ‰H‰Çè³½úÿH‹Eغ¾ÿÿÿÿH‰ÇèmšúÿÇEüë‹UüH‹E؉ÖH‰ÇèCËúÿ‰Eü‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5X‰H‰Çè§œúÿH‹H‰EøHÇEØH�UØH‹EȾH‰ÇèóªúÿH‰EðH�UØH‹EȾH‰ÇèÚªúÿH‰EèH‹UèH‹MðH‹EøH‰ÎH‰Çèßúÿ‰Eäƒ}äŸÀ¶ÐH‹EȉÖH‰Çè„áúÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ºˆH‰Çè œúÿH‹H‰EøH‹EøH‰Çè6Üúÿ…ÀH‹Eè¾H‰ÇèQÊúÿëH‹Eè¾H‰Çèn¶úÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5TˆH‰Ç裛úÿH‹H‰EøH‹EøH‰Çè­úÿ…ÀH‹Eè¾H‰ÇèëÉúÿëH‹Eè¾H‰Çè¶úÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5î‡H‰Çè=›úÿH‹H‰EøH‹EøH‰Çè êúÿ…ÀH‹Eè¾H‰Çè…ÉúÿëH‹Eè¾H‰Ç袵úÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ˆ‡H‰ÇèךúÿH‹H‰EøH‹EøH‰Çè®úÿ…ÀH‹Eè¾H‰ÇèÉúÿëH‹Eè¾H‰Çè<µúÿ¸ÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5"‡H‰ÇèqšúÿH‹H‰EðHÇEØH�UØH‹EȾH‰Ç轨úÿH‰EèÇEüH‹EØH‰EÐH‹EÐH‰Çè~ÍúÿH‰EàH‹}ØH‹MèH�UÐH‹uàH‹EðI‰øH‰Çè‹ÀúÿƒøuH‹UÐH‹MàH‹EÈH‰ÎH‰ÇèTºÿÿÇEüH‹EàH‰ÇèÇúÿ‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5d†H‰Çè³™úÿH‹H‰EðHÇEØH�UØH‹EȾH‰Çèÿ§úÿH‰EèÇEüHÇEÐHÇEàH‹uØH‹MèH�UÐH‹EðI‰ð¾H‰Çè4Âúÿ…À~]H‹EÐH‰Çè”ÌúÿH‰EàH‹}ØH‹MèH�UÐH‹uàH‹EðI‰øH‰ÇèÂúÿ…À~H‹UÐH‹MàH‹EÈH‰ÎH‰Çèk¹ÿÿÇEüH‹EàH‰Çè3Æúÿ‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5{…H‰ÇèʘúÿH‹H‰EøHÇEØH�UØH‹EȾH‰Çè§úÿH‰EðHÇEÐH�UÐH‹EȾH‰Çèõ¦úÿH‰EèH‹}ÐH‹UØH‹MèH‹uðH‹EøI‰øH‰Çèb»úÿ‰Eäƒ}äŸÀ¶ÐH‹EȉÖH‰Çè—Ýúÿ¸ÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5Í„H‰Çè˜úÿH‹H‰EðHÇEØH�UØH‹EȾH‰Çèh¦úÿH‰EèHÇEÐHÇEàÇEüH‹uØH‹MèH�UÐH‹EðI‰ð¾H‰Çè-–úÿ…À~]H‹EÐH‰ÇèýÊúÿH‰EàH‹}ØH‹MèH�UÐH‹uàH‹EðI‰øH‰Çèú•úÿ…À~H‹UÐH‹MàH‹EÈH‰ÎH‰ÇèÔ·ÿÿÇEüH‹EàH‰ÇèœÄúÿ‹EüÉÃUH‰åHƒìPH‰}¸ÇEüH‹E¸ºH�5“�H‰Çè,—úÿH‹H‰EðH‹E¸ºH�5t�H‰Çè —úÿH‹H‰EèH‹E¸¾H‰Çè…—úÿ…À~H‹E¸ºH�5U�H‰ÇèÙ–úÿH‹ë¸H‰EàH‹EðH‰Çèµúÿ‰Çèx’úÿ‰E܃}ÜuH‹EðH‰ÇèCÇúÿH…Àu4�}ܘuH‹EðH‰Ç虳úÿH…ÀuH‹E¸H�aƒ¾H‰Çè\œúÿ…À�H‹EèH‰Çè½´úÿ‰Çè’úÿ9EÜtH‹E¸H�Pƒ¾H‰Çè)œúÿ…À�H‹UàH‹EðH‰ÖH‰ÇèæúÿH‰EÐHƒ}ЄÕH‹EÐH‰ÇèXâúÿ‰Eüƒ}ü…°H‹UèH‹EÐH‰ÖH‰Çèh–úÿ‰Eüƒ}ü…�H�UÀH‹EоH‰ÇèV½úÿ‰Eüƒ}üurH‹EÀºH�5ïH‰Çè•ÞúÿH‰EÈHƒ}ÈtOH�UÀH‹MÈH‹EÐH‰ÎH‰Çè½úÿ‰Eüƒ}üu/H‹UÀH‹MÈH‹E¸H‰ÎH‰ÇèȵÿÿH‹EȺ!H�5•H‰Ç軫úÿH‹EÐH‰Çè¯Ôúÿƒ}üt‹UüH‹E¸‰ÖH‰Çè˜Ãúÿë¸ÉÃUH‰åHƒÄ€H‰}ˆÇEüÇEìHÇEàH‹EˆºH�5LH‰Çèå”úÿH‹H‰EØH�U¨H‹Eˆ¾H‰Çè9£úÿH‰EÐH�Ú�H‰EðH‹EØH‰ÇèÁÿÿ‰Eìƒ}ìt H�Á�H‰EðH‹UðH‹Eˆ¾H‰ÇèÅÎúÿH‰Eȃ}ìtH‹EÈH‰ÇèŸÐúÿ=w”À¶À‰Eìèì¾úÿH‰EÀƒ}ìtlHÇE H�U H‹EˆH‰ÑH�_�¾H‰Çè˪úÿH‰E¸H‹EؾH‰Ç趤úÿH‰EàH‹E ‰ÂH‹M¸H‹EàH‰ÎH‰Çè©ÂúÿH‹UàH‹EÀH‰ÖH‰ÇèæÌúÿH‹MØH‹UÈH‹EÀI‰È¹¾H‰ÇèU¢úÿ‰Eüƒ}ü…ÉH‹U¨H‹MÐH‹EÀH‰ÎH‰ÇèQ�úÿ‰Eüƒ}ü…¥HÇE˜HÇE°H�U˜H‹EÀ¾H‰Çè¿Ùúÿ‰Eüƒ}üuwH‹E˜HƒÀH‰E˜H‹E˜ºmH�5Œ}H‰Çè2ÜúÿH‰E°H�U˜H‹M°H‹EÀH‰ÎH‰ÇèwÙúÿ‰Eüƒ}üuH‹U˜H‹M°H‹EˆH‰ÎH‰Çèl³ÿÿH‹E°ºsH�59}H‰Çè_©úÿH‹EÀH‰Çè³ØúÿHƒ}àt H‹EàH‰Çè@Òúÿƒ}üt‹UüH‹Eˆ‰ÖH‰Çè)Áúÿë¸ÉÃUH‰åHƒÄ€H‰}ˆÇEüÇEäHÇEèH‹EˆºH�5Ý|H‰Çèv’úÿH‹H‰EØH�U¨H‹Eˆ¾H‰ÇèÊ úÿH‰EÐH�U H‹Eˆ¾H‰Çè± úÿH‰EÈH�RH‰EðH‹EØH‰Çè÷¾ÿÿ‰Eäƒ}ät H�9H‰EðH‹UðH‹Eˆ¾H‰Çè=ÌúÿH‰EÀ脼úÿH‰E¸ƒ}ätlHÇE˜H�U˜H‹EˆH‰ÑH�÷~¾H‰Çèc¨úÿH‰E°H‹EؾH‰ÇèN¢úÿH‰EèH‹E˜‰ÂH‹M°H‹EèH‰ÎH‰ÇèAÀúÿH‹UèH‹E¸H‰ÖH‰Çè~ÊúÿH‹MØH‹UÀH‹E¸I‰È¹¾H‰Çè ¥úÿ‰Eüƒ}üuXH‹U¨H‹MÐH‹E¸H‰ÎH‰Çè Žúÿ‰Eüƒ}üu8H‹U H‹MÈH‹E¸H‰ÎH‰ÇèÀúÿ‰Eüƒ}üuƒ}ü”À¶ÐH‹Eˆ‰ÖH‰ÇèLÖúÿH‹E¸H‰ÇèÀÖúÿHƒ}èt H‹EèH‰ÇèMÐúÿƒ}üt‹UüH‹Eˆ‰ÖH‰Çè6¿úÿë¸ÉÃUH‰åSH�ì¸H‰½HÿÿÿÇEèÇEäHÇEØè¯¥úÿH‰EÐHÇ…PÿÿÿHÇ…XÿÿÿHÇ…`ÿÿÿHÇ…hÿÿÿHÇ…pÿÿÿHÇ…xÿÿÿHÇE€HÇEˆHÇEÈH‹…Hÿÿÿ¾H‰Çè­�úÿƒøt=H‹…HÿÿÿºH�5dzH‰Çè ÚúÿH…ÀuH‹…HÿÿÿH�"}¾H‰ÇèÍ•úÿ…À�H‹…Hÿÿÿ¾H‰ÇèV�úÿƒøu€úÿ‰Eäƒ}äu‹EÔHcÐH‹MèH‹EÈH‰ÎH‰Çèñ¢ÿÿH‹EèH‰ÇèÀ¯úÿƒ}ät‹UäH‹EȉÖH‰ÇèÙ°úÿë‹EäÉÃUH‰åHƒì0H‰}ØH‹EغH�5ÇoH‰Çè>‚úÿH‹H‰EøH‹EøH‰Çè»Îúÿ‰Eè‹EèH˜H‰ÇèkµúÿH‰EðH�UèH‹MðH‹EøH‰ÎH‰Çèp«úÿ‰Eìƒ}ìu‹EèHcÐH‹MðH‹EØH‰ÎH‰ÇèC¢ÿÿH‹EðH‰Çè¯úÿƒ}ìt‹UìH‹E؉ÖH‰Çè+°úÿë‹EìÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5÷kH‰Çè��úÿH‹H‰EðH�UÈH‹E¸¾H‰Çèä�úÿH‰EèH�UÀH‹E¸¾H‰ÇèË�úÿH‰EàH‹E¸H�²n¾H‰ÇèO¬úÿH‰EØÇEüHƒ}Ø„§èD–úÿH‰EÐH‹EÐH‰ÇèDÀúÿH‹EÈA‰ÂH‹}ðH‹MàH‹UèH‹uØH‹EÐI‰ùI‰ÈD‰ÑH‰Ç舡úÿ‰Eüƒ}ü~QHƒ}Ðt5H‹E¸¾H‰Çè—ŸúÿH‰ÂH‹EÐH‰H‹E¸ºÿÿÿÿH�5.nH‰Çè}úÿë H‹E¸H‰ÇèWšúÿÇEüë H‹EÐH‰ÇèR©úÿƒ}üt‹UüH‹E¸‰ÖH‰ÇèÛ®úÿë‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5ÉmH‰Çè@€úÿH‹H‰EøH�UØH‹EȾH‰Ç蔎úÿH‰EðH‹EøH‰Çè¤Ìúÿ‰ÂH‹EØЉEÔ‹EÔH˜H‰ÇèL³úÿH‰EèH‹E؉ÇH‹MðH�UÔH‹uèH‹EøA‰øH‰Ç臔úÿ‰Eäƒ}äu‹EÔHcÐH‹MèH‹EÈH‰ÎH‰Çè ÿÿH‹EèH‰Çèé¬úÿƒ}ät‹UäH‹EȉÖH‰Çè®úÿë‹EäÉÃUH‰åHƒì0H‰}ØH‹EغH�5ðlH‰ÇègúÿH‹H‰EøH‹EøH‰ÇèäËúÿ‰Eè‹EèH˜H‰Ç蔲úÿH‰EðH�UèH‹MðH‹EøH‰ÎH‰Çèy©úÿ‰Eìƒ}ìu‹EèHcÐH‹MðH‹EØH‰ÎH‰ÇèlŸÿÿH‹EðH‰Çè;¬úÿƒ}ìt‹UìH‹E؉ÖH‰ÇèT­úÿë‹EìÉÃUH‰åHƒì H‰}èH‹EèºH�5 iH‰Çè¹~úÿH‹H‰EøH‹EøH‰Çèæ§úÿH˜H‰EðH‹UðH‹EèH‰ÖH‰Çèý•úÿ¸ÉÃUH‰åHƒìpH‰}˜H‹E˜ºH�5ÉhH‰Çèb~úÿH‹H‰EðH‹E˜ºH�5¿hH‰ÇèC~úÿH‹H‰EèÇEüH‹EðH‰Ç艜úÿ‰Çèâyúÿ‰Eäƒ}䄵ƒ}ä ƒ}äté,ƒ}ättX�}䘄ÐéH‹EðH‰Çè°ˆúÿH‰EØH‹EèH‰Çè ËúÿH‰EÐHƒ}ЄßH‹UÐH‹EØH‰ÖH‰ÇèþÀúÿ‰EüéÄH‹EðH‰Çè*¯úÿH‰EÈH‹EèH‰Ç身úÿH‰EÀHƒ}À„œH‹UÀH‹EÈH‰ÖH‰Çè¸|úÿ‰Eüé�H‹EðH‰Çèô­úÿH‰E¸H‹EèH‰Çè¼úÿH‰E°Hƒ}°t]H‹U°H‹E¸H‰ÖH‰ÇèæÁúÿ‰EüëEH‹EðH‰Çè%šúÿH‰E¨H‹EèH‰Çèõ•úÿH‰E Hƒ} t!H‹U H‹E¨H‰ÖH‰Çè§|úÿ‰Eüë �ë�ë�ë�ƒ}ü”À¶ÐH‹E˜‰ÖH‰ÇèÂúÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5üfH‰Çè•|úÿH‹H‰EøH‹EøH‰Çè’½úÿ‰Eôƒ}ô”À¶ÐH‹Eè‰ÖH‰Çè·Áúÿ¸ÉÃUH‰åHƒì H‰}èH‹EèH�¹Ö&H�5¡fH‰ÇèZ’úÿH‹EèH�¿×&H�5ÑhH‰Çè@’úÿH‹E躾H‰Çèê±úÿH‹EèºH�5J‚&H‰ÇèׇÿÿHÇEøëwH‹EøHÁàH‰ÂH�î|&H‹H‹EèH‰ÖH‰ÇèsœúÿH‹E躾ÿÿÿÿH‰Çè-yúÿH‹EøHÁàH‰ÂH�«|&‹‰ÂH‹EèH‰ÖH‰Çè÷’úÿH‹Eè¾ýÿÿÿH‰Çèö—úÿHƒEøHƒ}ø v‚¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰Çè}ˆúÿH‹Eð¶„Àu ‹Eü‰ÇèX‚úÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Çèv’úÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè*{úÿƒøtbH‹Eø¾þÿÿÿH‰Ç褺úÿH‹UèH‹uðH‹EøH� AiH‰Çèy¼úÿ…Àt H‹EøH‰Çè9ŠúÿH‹Eø¾ÿÿÿÿH‰Çèè”úÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰ÇèÞŒúÿ‹Uà‹MäH‹Eø‰ÎH‰Çè*­úÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5±iH‰Ç¸èôŸúÿH‹EøH�½i¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰ÇèE”úÿò*EôH‹EøH‰Çè”{úÿH‹Eø¾ýÿÿÿH‰ÇèCŒúÿH‹EøA¸¹ºÛH�5XhH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çèg½úÿéå‹Uà‹MäH‹Eè‰ÎH‰Çè‚úÿéÌH‹EèH�âh¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰ÇèH“úÿ‹UàH‹Eè‰ÖH‰Çè7“úÿH‹EèA¸¹ºH�5ŒhH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Ç胂úÿ‰EüH‹Eè¾þÿÿÿH‰Çèo¸úÿ‹EüëH‹EèH�5ohH‰Ç¸èRžúÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�îg¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çè|’úÿ‹UüH‹Eè‰ÖH‰Çè+»úÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè8xúÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çè ˜úÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèSyúÿ龋MôH‹EøH�–g‰ÎH‰Çè–€úÿ…À…š‹UôH‹Eø‰ÖH‰Çè=˜úÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèðxúÿëZ‹MôH‹EøH�6g‰ÎH‰Çè6€úÿ…ÀuA‹UôH‹Eø‰ÖH‰ÇèQwúÿ‰ÂH‹Eø‰ÖH‰Çèá“úÿH‰ÂH‹EøH�5gH‰Ç¸è¶œúÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Ç胪úÿ‹UüH‹Eè‰ÖH‰Çè²™úÿH‹Eè¾ÿÿÿÿH‰ÇèÁvúÿH‹Eè¾ÿÿÿÿH‰Çè°vúÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�àe¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çèü©úÿH‹Eè¾þÿÿÿH‰Çè{ˆúÿ‹UüH‹Eè‰ÖH‰Çè*’úÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè£vúÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰ÇèL•úÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çèͧúÿ…ÀuIHƒ}ètH‹UèH‹EøH�5geH‰Ç¸èöšúÿë$H‹EøºH�5\eH‰ÇèEH‹EøH‰Çè�„úÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�od¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè •úÿH‹E躾ÿÿÿÿH‰ÇèÅqúÿ‹UüH‹Eè‰ÖH‰Çè¼úÿH‹Eè¾ÿÿÿÿH‰Çè³túÿH‹Eè¾ÿÿÿÿH‰Çè¢túÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Çè´úÿH‹E躾H‰Çè¿©úÿH‹UØH‹EèH‰ÖH‰Çè|”úÿH‹E躾ÿÿÿÿH‰Çè6qúÿH‹Eè¾þÿÿÿH‰ÇèEŽúÿ‹UüH‹Eè‰ÖH‰Çè´ªúÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�Xc¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè<³úÿ‹Eô…ÀuH‹EèH�5²cH‰Ç¸è™úÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�›c‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰Çè^“úÿH‹E躾ÿÿÿÿH‰ÇèpúÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè�úÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Ç蔿úÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Çè\©úÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè2²úÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�èa¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰ÇèâpúÿH‹Eø¾ÿÿÿÿH‰ÇèQrúÿH‹Eø¾þÿÿÿH‰Ç耻úÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèɪúÿH‰EøH‹EèH�na¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Ç襈úÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çè>púÿH‹Eè¾ÿÿÿÿH‰Çè­qúÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çè'�úÿ‰EôH‹Eè¾ýÿÿÿH‰Çè±úÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çè9rúÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çèrúÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çè¦púÿƒøt ¸éüH‹EøH‰Ç軉úÿéÍH‹Eø¾þÿÿÿH‰Çèupúÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çèæúÿ…ÀtH‹Eø¾þÿÿÿH‰Çèѯúÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰ÇèÛ»úÿH‹EøºH�5E`H‰ÇèìH‹Eø¾þÿÿÿH‰Çè‚úÿH‹Eø¾H‰ÇèÑ®úÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèI¯úÿH‹Eø¾þÿÿÿH‰ÇèX²úÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çè}†úÿ‰EüH‹UàH‹EèH�5·_H‰ÇèóžúÿH‹Eè¾îØÿÿH‰Çèb‰úÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çè�®úÿ¸ë‹UüH‹Eè‰ÖH‰Çè…®úÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5 _H‰Ç¸èßœúÿéÜH‹EðH‹@¶ƒúÿ+Eü‰ÂH‹…hÿÿÿ‰ÖH‰Çè(«úÿ‹…Tÿÿÿ�P‰•TÿÿÿH�•pÿÿÿH‹�`ÿÿÿ‰ÆH‰Ïèmúÿ…À…ÙþÿÿH‹…hÿÿÿH‰Çèê‚úÿ+Eü‰ÂH‹…hÿÿÿ‰ÖH‰ÇèÔªúÿ�ÉÃUH‰åH�ì0H‰½èýÿÿ‰µäýÿÿH‰•ØýÿÿHÇEøèµfúÿ‹‰EôH�•ðýÿÿ¸¹@H‰×óH«ƒ½äýÿÿtH‹…èýÿÿ¾H‰Çè,°úÿ¸é¦H‹…èýÿÿH‰Ç胄úÿH��ðýÿÿ‹EôºH‰Î‰ÇèGïÿÿH‰EøHƒ½Øýÿÿt(H‹MøH‹•ØýÿÿH‹…èýÿÿH�5¼[H‰Ç¸è6™úÿë/H‹UøH‹…èýÿÿH‰ÖH‰Çè‹úÿH‹…èýÿÿº¾ÿÿÿÿH‰ÇèÅgúÿò*EôH‹…èýÿÿH‰Çè1lúÿ¸ÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäHƒ}ðtBH‹Eè¶¾ÐH‹Eð‰ÖH‰Çè´rúÿH…Àu%H‹MðH‹UèH‹EøH�5[H‰Ç¸è�˜úÿ‹Eäë¸ÉÃUH‰åHƒì0H‰}èH‰uàH‰UØH‹EàH‰EøH‹Eø‹@…Àt$H‹EøÇ@H‹EøH‹P H‹EØH‰H‹EøH‹@ëH‹EøH‹H‹UøH‹rH‹UØH‹MèH‰ÏÿÐÉÃUH‰åHƒì`H‰}ÈH‰uÀH‰U¸H‰M°L‰E¨ÇEüHÇEÐHÇEØÇEàHÇEèHÇEðH‹EÀH‰EÐH‹E¸H‰EØH�EÐH�P H‹u¸H‹MÈH‹EÀH‰ÏÿÐH‰EèH‹EèH…Àt:H‹EðH…Àt1H‹E趺8Ðu!H‹u¨H‹EȹH�ZH‰Çè{þÿÿ‰EüëH‹u¨H‹EȹH�ýYH‰ÇèZþÿÿ‰Eüƒ}üt‹EüëH‹M°H�UÐH‹EÈH�5 þÿÿH‰ÇèK‡úÿÉÃUH‰åHƒì0H‰}èH‰uàH‰UØH‹EàH‰EøH‹Eø‹…À~H‹Eø‹HcÐH‹EØH‰H‹EøÇëGH‹EøH‹@H‰Çè×£úÿ…Àt¸ë4H‹EøH‹@H‹UøH�zH‰Áº¾è*¢úÿH‰ÂH‹EØH‰H‹EøHƒÀÉÃUH‰åH�ì0H‰½èýÿÿH‰µàýÿÿ‰•ÜýÿÿH�•ðýÿÿ¸¹@H‰×óH«è+cúÿ‹H��ðýÿÿºH‰Î‰ÇèìÿÿH‰Eø‹�ÜýÿÿH‹…èýÿÿº‰ÎH‰ÇèÓdúÿHƒÀH‰EðH‹uøH‹MðH‹•àýÿÿH‹…èýÿÿI‰ðH�5¡XH‰Ç¸èÞ•úÿ‹•ÜýÿÿH‹…èýÿÿ‰ÖH‰Çèg³úÿ¸ÉÃUH‰åHƒì H‰}èH�tXH‰EøH‹EèÇH‹EèH‹@H‰Çèÿiúÿ‰Eôƒ}ôÿtH‹EøH�PH‰Uø¶¶À9Eôt‹EôëCH‹Eè‹�HH‹Uè‰ ‹Uô‰ÑH‹UèH˜ˆLH‹Eø¶„Àu¢H‹EèÇH‹EèH‹@H‰Çè—iúÿÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèIÿÿÿ‰ÂH‹Eà‰H‹Eà‹‰Eüƒ}ü#u>H‹EèH‹@H‰ÇèRiúÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè3iúÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèN}úÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5&WH‰ÇèH‹Œo&H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5ýVH‰Ç¸è”úÿH‹…ÀïÿÿH�5æVH‰Çè’úÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5¼VH‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5MVH‰ÇèŒúÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5$VH‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰ÇèšaúÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè›­úÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çèˆúÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰ÇèÅ£úÿ‹UüH‹…ÈïÿÿH�5;UH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰ÇèÖ¯úÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H��TH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�sTH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çèä¤úÿÉÃUH‰åHƒì H‰}è‰uäH�hTH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�TH‰EøH‹Eø¶PH‹UèH‹MøH‰ÆH‰Ïè¬fúÿH‹Eøº¾ÿÿÿÿH‰Çè¦[úÿÉÃUH‰åHƒì H‰}ø‰uôH‰Uè‹UôH‹Eø‰ÖH‰Çèðâÿÿ‰EôH‹UèH‹EøH‰ÖH‰ÇèZuúÿ‹UôH‹Eø‰ÖH‰Çè¹¥úÿH‹Eø¾ÿÿÿÿH‰ÇèX^úÿH‹Eø¾ÿÿÿÿH‰ÇèG^úÿÉÃUH‰åHƒì0H‰}ØÇEôHÇEøH‹EØH�O¾H‰Çè^èÿÿH‹EغH�5ƒOH‰ÇèóþÿÿH‹EؾÿÿÿÿH‰ÇèùwúÿH‹EؾðØÿÿH‰Ç踀úÿH‹EؾÿÿÿÿH‰ÇèÇ]úÿH‹EؾÿÿÿÿH‰Çè¶]úÿƒø„±H‹EؾþÿÿÿH‰Çè,�úÿH‹Eغ¾H‰ÇèÖ’úÿH‹Eغ¾H‰ÇèÀ’úÿH‹EغH�5÷NH‰ÇèQþÿÿH‹EØH�æN¾þÿÿÿH‰ÇèÀfúÿH‹EؾþÿÿÿH‰Çèo¦úÿH‹EؾþÿÿÿH‰Çè.wúÿH‹EؾþÿÿÿH‰ÇèwúÿH‹EؾðØÿÿH‰ÇèìxúÿH‹EؾþÿÿÿH‰Ç軟úÿH‹EØH‰Ç诜úÿ‰EôH‹EؾþÿÿÿH‰Çè«úÿH‹EؾÿÿÿÿH‰Çèº\úÿH‹EؾÿÿÿÿH‰ÇèY•úÿH‰EøHƒ}ø…dH‹EؾþÿÿÿH‰ÇèœúÿH‹EؾH‰Çè¸zúÿH‰Eøƒ}ôt|H‹Eøº¾H‰ÇèmúÿH‹EØH‰ÇèœúÿH‹EؾþÿÿÿH‰ÇèKvúÿH‹EؾüÿÿÿH‰ÇèxúÿH‹EؾH‰ÇèÙ úÿH‹EؾþÿÿÿH‰ÇèvúÿH‹EؾüÿÿÿH‰Çèçwúÿé¼HÇEèH‹EؾH‰Çè™ úÿH‹EؾýÿÿÿH‰Çè¨~úÿH‹EؾÿÿÿÿH‰Çè·[úÿH‹EؾÿÿÿÿH‰ÇèV”úÿH‰EèHƒ}ètH‹EèH‹H‹EøH‰ëH‹Eøº¾H‰Çè5lúÿH‹EؾþÿÿÿH‰ÇèôšúÿH‹EØH‰Çè(›úÿH‹EؾþÿÿÿH‰ÇèWuúÿH‹EؾüÿÿÿH‰Çè&wúÿH‹EؾýÿÿÿH‰Ç赚úÿH‹EøÉÃUH‰åHƒì H‰}è‰uä‹UäH‹Eè‰ÖH‰ÇèÿZúÿƒøuO‹UäH‹Eè‰ÖH‰Çèy[úÿfH~ÀH‰Eø‹MäH‹E躉ÎH‰Çè&H‰EðòH*Eðf.Eøzf.Eøu¸ë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØÇEôH�Uô‹MäH‹Eè‰ÎH‰Çè>äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çèþsúÿ‹UðH‹Eø‰ÖH‰Çèísúÿ‹UôH‹Eø‰ÖH‰Ç蜜úÿ‹UðH‹Eø‰ÖH‰Ç苜úÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çèopúÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH��J¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH� J¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰ÇèYoúÿH‹Eø¾þÿÿÿH‰Çè˜júÿ‹UôH‹Eø‰ÖH‰ÇèçŽúÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰ÇèsúÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èðúÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çè2YúÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�,I‰ÎH‰ÇèR`úÿ…À…�‹UäH‹Eè‰ÖH‰ÇèiWúÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5ÊHH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çèqúÿé3‹UäH‹Eè‰ÖH‰Çè{`úÿ…ÀtH‹EèºH�5†HH‰ÇèÈ÷ÿÿéH‹EèºH�5nHH‰Çè«÷ÿÿéä‹MäH‹EèH�YH‰ÎH‰Çè%}úÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çè€Vúÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰ÇèJSúÿë‹UüH‹Eè‰ÖH‰ÇèçrúÿH‰Eð‹UäH‹Eè‰ÖH‰Ç肆úÿH‰ÁH‹UðH‹EèH�5áGH‰Ç¸èC„úÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè̘úÿ�ë/H‹Eè¾ÿÿÿÿH‰Çè(—úÿ…ÀuH‹EèH�5¡GH‰Ç¸è\{úÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè¤RúÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�ðF¾H‰ÇèÏßÿÿH‹EøH�bG¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèÖSúÿH‹Eø¾ÿÿÿÿH‰ÇèEUúÿ…À…ŽH‹Eø¾þÿÿÿH‰Çè¼”úÿH‹MèH‹EøºH‰ÎH‰ÇèÄ¡úÿH‹UðH‹EøH‰ÖH‰Çè!uúÿH‹Eøº¾ÿÿÿÿH‰ÇèÛQúÿH‹Eøº¾H‰Çèe‡úÿH‹Eø¾ÿÿÿÿH‰ÇèÔnúÿH‹UðH‹Eø¾ýÿÿÿH‰Çè/^úÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè¨núÿH‹UðH‹Eø¾îØÿÿH‰Çè^úÿH‹Eø¾þÿÿÿH‰ÇèB—úÿ�ÉÃUH‰åHƒì H‰}èH‹EèºH�5EFH‰Çè»SúÿH‹H‰EøH‹EøH‰Çè8}úÿ¸ÉÃUH‰åHƒì H‰}èHÇEøH�UøH‹EèH‰Ñº¾H‰ÇèðŒúÿH‹EøH…ÀtH‹EøH‰Çè[™úÿ…Àu¸ë¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5¯EH‰Çè%SúÿH‹H‰EøH‹EøH‰Çèqÿÿÿ‰ÂH‹Eè‰ÖH‰ÇèR˜úÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5aEH‰Çè×RúÿH‹H‰EøH‹EøH‰ÇèddúÿHcÐH‹EèH‰ÖH‰Çè"júÿ¸ÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5EH‰Çè‡RúÿH‹H‰EðH�UÐH‹EȾH‰ÇèÛ`úÿH‰EèH‹EÈH�êD¾H‰ÇèÏžúÿ‰EäH‹EȾH‰ÇèËRúÿƒøÿuH‹EðH‰Çè‰þÿÿëH‹EȾH‰Çè7\úÿ‰EàH‹EðH‰Çè¨cúÿH˜º0H�5ŽDH‰ÇèâšúÿH‰EØH‹EЉEüƒ}àt‹}äH‹MðH‹UØH‹uè‹EüA‰ø‰Çèåzúÿë‹}äH‹MðH‹UØH‹uè‹EüA‰ø‰ÇèWgúÿ‰Eüƒ}ü~ ‹EüHcÐH‹MØH‹EÈH‰ÎH‰ÇèóÿÿÇEüH‹Eغ;H�5DH‰ÇèÖgúÿƒ}üt‹UüH‹EȉÖH‰Çè¿úÿë‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5®CH‰Çè$QúÿH‹H‰EðH�UÐH‹EȾH‰Çèx_úÿH‰EèH‹EÈH�‡C¾H‰Çèl�úÿ‰EäH‹EȾH‰ÇèhQúÿƒøÿuH‹EðH‰Çè&ýÿÿëH‹EȾH‰ÇèÔZúÿ‰EàH‹EðH‰ÇèEbúÿH˜ºFH�5+CH‰Çè™úÿH‰EØH‹EЉEüƒ}àt‹}äH‹MðH‹UØH‹uè‹EüA‰ø‰Çè’lúÿë‹}äH‹MðH‹UØH‹uè‹EüA‰ø‰ÇèSúÿ‰Eüƒ}ü~ ‹EüHcÐH‹MØH‹EÈH‰ÎH‰Çè«ñÿÿÇEüH‹EغQH�5ŸBH‰Çèsfúÿƒ}üt‹UüH‹EȉÖH‰Çè\~úÿë‹EüÉÃUH‰åSHƒìXH‰}¨H‹E¨ºH�5JBH‰ÇèÀOúÿH‹H‰EèH�UÀH‹E¨¾H‰Çè^úÿH‰EàH‹E¨H�3B¾H‰ÇèȉúÿH‰EØH‹EèH‰ÇèaúÿH˜º[H�5þAH‰ÇèR˜úÿH‰EÐH‹EÀ‰EÌH‹EèH‰Çèë`úÿ‰E¼‹]ÌH‹EØH‰Çèi‹úÿ‰ÇH‹uèH�M¼H‹UÐH‹EàI‰ñI‰ÈH‰Ñ‰ÚH‰Æè„’úÿ‰Eȃ}Èu‹E¼‰ÂH‹MÐH‹E¨H‰ÎH‰Çè|ðÿÿH‹EкdH�5wAH‰ÇèKeúÿƒ}Èt‹UÈH‹E¨‰ÖH‰Çè4}úÿë‹EÈHƒÄX[]ÃUH‰åATSHƒìPH‰}¨H‹E¨ºH�5AH‰Çè‘NúÿH‹H‰EèH�U¸H‹E¨¾H‰Çèå\úÿH‰EàH�U°H‹E¨¾H‰ÇèÌ\úÿH‰EØH‹E¨H�ë@¾H‰Ç耈úÿH‰EÐH‹E¸‰EÌH‹E°‰EÈD‹eÈ‹]ÌH‹EÐH‰ÇèKŠúÿ‰ÇH‹MèH‹UØH‹EàI‰ÉE‰àH‰Ñ‰ÚH‰ÆèІúÿ‰EÄ‹UÄH‹E¨‰ÖH‰Çè6“úÿ¸HƒÄP[A\]ÃUH‰åH�ì H‰½hÿÿÿHÇE°HÇE¨HÇE HÇE˜HÇE�HÇEˆHÇE€HÇ…xÿÿÿH‹…hÿÿÿºH�5ò?H‰ÇèhMúÿH‹H‰EøH�M H�U¨H�u°H‹EøH‰ÇèɆúÿH�U�H�M˜H‹EøH‰ÎH‰Çè2ˆúÿH��xÿÿÿH�U€H�uˆH‹EøH‰Çè‡súÿH‹…hÿÿÿº¾H‰ÇèÞ‚úÿH‹EøH‰Çè’^úÿHcÐH‹…hÿÿÿH‰ÖH‰ÇèMdúÿH‹…hÿÿÿH�t?¾þÿÿÿH‰ÇèÒVúÿH‹EøH‰Çè¶QúÿHcÐH‹…hÿÿÿH‰ÖH‰ÇèdúÿH‹…hÿÿÿH�=?¾þÿÿÿH‰Çè–VúÿH‹E°H…Àt|H‹E°H‰Çè�súÿH‰EðHƒ}ðt;H‹…hÿÿÿ¾H‰Çè"kúÿH‰ÂH‹EðH‰H‹…hÿÿÿºÿÿÿÿH�5ä>H‰Çè�HúÿëH‹…hÿÿÿH‰ÇèÜeúÿH‹…hÿÿÿH�È>¾þÿÿÿH‰ÇèVúÿH‹E¨H…Àt|H‹E¨H‰ÇèürúÿH‰EèHƒ}èt;H‹…hÿÿÿ¾H‰Çè�júÿH‰ÂH‹EèH‰H‹…hÿÿÿºÿÿÿÿH�5_>H‰ÇèHúÿëH‹…hÿÿÿH‰ÇèWeúÿH‹…hÿÿÿH�E>¾þÿÿÿH‰ÇèŒUúÿH‹E H…Àt|H‹E H‰ÇèwrúÿH‰EàHƒ}àt;H‹…hÿÿÿ¾H‰ÇèjúÿH‰ÂH‹EàH‰H‹…hÿÿÿºÿÿÿÿH�5Ú=H‰Çè“GúÿëH‹…hÿÿÿH‰ÇèÒdúÿH‹…hÿÿÿH�Â=¾þÿÿÿH‰ÇèUúÿH‹E˜H…Àt|H‹E˜H‰ÇèòqúÿH‰EØHƒ}Øt;H‹…hÿÿÿ¾H‰Çè“iúÿH‰ÂH‹EØH‰H‹…hÿÿÿºÿÿÿÿH�5U=H‰ÇèGúÿëH‹…hÿÿÿH‰ÇèMdúÿH‹…hÿÿÿH�?=¾þÿÿÿH‰Çè‚TúÿH‹E�H…Àt|H‹E�H‰ÇèmqúÿH‰EÐHƒ}Ðt;H‹…hÿÿÿ¾H‰ÇèiúÿH‰ÂH‹EÐH‰H‹…hÿÿÿºÿÿÿÿH�5Ð<H‰Çè‰FúÿëH‹…hÿÿÿH‰ÇèÈcúÿH‹…hÿÿÿH�¼<¾þÿÿÿH‰ÇèýSúÿH‹EˆH…Àt|H‹EˆH‰ÇèèpúÿH‰EÈHƒ}Èt;H‹…hÿÿÿ¾H‰Çè‰húÿH‰ÂH‹EÈH‰H‹…hÿÿÿºÿÿÿÿH�5K<H‰ÇèFúÿëH‹…hÿÿÿH‰ÇèCcúÿH‹…hÿÿÿH�9<¾þÿÿÿH‰ÇèxSúÿH‹E€H…Àt|H‹E€H‰ÇècpúÿH‰EÀHƒ}Àt;H‹…hÿÿÿ¾H‰ÇèhúÿH‰ÂH‹EÀH‰H‹…hÿÿÿºÿÿÿÿH�5Æ;H‰ÇèEúÿëH‹…hÿÿÿH‰Çè¾búÿH‹…hÿÿÿH�¹;¾þÿÿÿH‰ÇèóRúÿH‹…xÿÿÿH…ÀtH‹…xÿÿÿH‰ÇèØoúÿH‰E¸Hƒ}¸t;H‹…hÿÿÿ¾H‰ÇèygúÿH‰ÂH‹E¸H‰H‹…hÿÿÿºÿÿÿÿH�5;;H‰ÇèôDúÿëH‹…hÿÿÿH‰Çè3búÿH‹…hÿÿÿH�3;¾þÿÿÿH‰ÇèhRúÿ¸ÉÃUH‰åHƒì@H‰}ÈH�UØH‹EȾH‰Çè VúÿH‰EðH‹EȾH‰Çè«HúÿƒøÿtH‹EȾH‰Çè%Rúÿ븉EìH‹EðH‰EЃ}ìtH‹EØH‰ÂH�EÐH‰Æ¿èENúÿëH‹EØH‰ÂH�EÐH‰Æ¿è+[úÿH‰EàÇEüHƒ}àtOHƒ}àt5H‹EȾH‰ÇèafúÿH‰ÂH‹EàH‰H‹EȺÿÿÿÿH�5ù9H‰ÇèßCúÿë H‹EÈH‰Çè!aúÿÇEü‹EüÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5»9H‰Çè1GúÿH‹H‰EðH‹E¸¾H‰Çè©GúÿƒøÿuH‹EðH‰ÇègóÿÿëH‹E¸¾H‰ÇèQúÿ‰Eìè­fúÿH‰ÇèÕˆúÿH‰EàÇEüƒ}ìtH‹UðH‹EàH‰ÖH‰ÇèñGúÿëH‹UðH‹EàH‰ÖH‰Çè¼lúÿ‰E܃}Ü~?H�UÈH‹EàH‰Ñº¾H‰Çè†IúÿH‰EÐH‹UÐH‹MÈH‹E¸H‰ÎH‰ÇèôçÿÿÇEüH‹EàH‰ÇèHmúÿ‹EüÉÃUH‰åHƒì0H‰}ØÇEüH‹EغH�5²8H‰Çè(FúÿH‹H‰EðH‹EغH�5ä8H‰Çè FúÿH‹H‰EèH‹EèH‰ÇèF“úÿH‰EàHƒ}àt*H‹UàH‹EðH‰ÖH‰Çè(‰úÿ‰Eü‹UüH‹E؉ÖH‰Çè4túÿ‰Eü‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺ¾H‰ÇèúKúÿ‰EøH‹EȺ¾H‰ÇèáKúÿ‰EôH‹EȾH‰ÇèýEúÿ…À~H‹EȺH�5,8H‰ÇèQEúÿH‹ë¸H‰EèÇEüè·uúÿH‰EàHƒ}ètH‹EèH‰Çè júÿëèé]úÿH‰EØ‹EôHcÐH‹EàH‰ÖH‰ÇèÀtúÿH‹Uà‹uøH‹EعH‰ÇèXYúÿ‰Eüƒ}üuJHƒ}Øt5H‹EȾH‰Çè—cúÿH‰ÂH‹EØH‰H‹EȺÿÿÿÿH�5/7H‰ÇèAúÿë!H‹EÈH‰ÇèW^úÿëH‹EØH‰ÇènúÿÇEüH‹EàH‰ÇèFyúÿ‹EüÉÃUH‰åHƒì H‰}èH‰uàÇEüH‹EèH‰Çè^úÿHƒ}àtKH‹EàH‰Ç軎úÿH‰ÂH‹EèH‰ÖH‰ÇèÙdúÿH‹E躾ÿÿÿÿH‰Çè“AúÿH‹UàH‹EèH‰ÖH‰Çèp[úÿƒEü‹EüÉÃUH‰åHƒì H‰}è‰uä‹UäH‹Eè‰ÖH‰Çè×cúÿ…Àt6‹UäH‹Eè‰ÖH‰ÇèR’úÿ‰Eüƒ}üH‹MäH‹EèH��6‰ÎH‰Çè‘Iúÿ…Àë,‹UäH‹EèH�56H‰Çè‡CúÿH‹H‰EðH‹EðH‰ÇèUúÿ‰Eü‹EüÉÃUH‰åHƒÄ€H‰}ˆH�U˜H‹Eˆ¾H‰Çè»QúÿH‰EðH‹Eˆº¾H‰Çè±�úÿ‰EìH‹Eˆ¾H‰Çè&ÿÿÿ‰Eè‹EèH˜º H�5�5H‰Çèñ‹úÿH‰EàÇEüƒ}쇹‹EìH�…H�6‹H˜H�ö5HÐÿàH‹Eˆº¾H‰ÇèSúÿH‹Eˆ¾H‰ÇèÂLúÿ‰E܃}Üt!H‹E˜‰ÁH‹Uð‹uèH‹EàH‰Çè rúÿ‰EüéFH‹E˜‰ÁH‹Uð‹uèH‹EàH‰Çèo?úÿ‰Eüé%H‹E˜‰ÁH‹Uð‹uèH‹EàH‰Çè.ƒúÿ‰EüéH�U�H‹EˆH‰Ñº¾H‰Çè¹XúÿH‰EÐH‹Eˆ¾H‰Çè”Búÿƒøÿu4H‹E�A‰ÀH‹E˜‰ÇH‹MÐH‹Uð‹uèH‹EàE‰ÁI‰È‰ùH‰Çèƒqúÿ‰Eüé™H‹Eˆº¾H‰Çèõ{úÿH‰EÈH‹Eˆ¾H‰Çè0BúÿƒøÿtH‹Eˆº¾H‰ÇèÅ{úÿë¸H‰EÀH‹E�A‰ÀH‹E˜‰ÇH‹MÐH‹Uð‹uèH‹EàÿuÀÿuÈE‰ÁI‰È‰ùH‰ÇèÈ\úÿHƒÄ‰Eü�é H‹E˜‰ÁH‹Uð‹uèH‹EàH‰Çè"búÿ‰EüéèH‹EˆºH�5Œ3H‰ÇèAúÿH‹H‰E¸H‹Eˆº¾H‰Çè%{úÿH‰E°H‹Eˆ¾H‰Çè`AúÿƒøÿtH‹Eˆº¾H‰Çèõzúÿë¸H‰E¨H‹EˆHÇÂþÿÿÿ¾H‰ÇèòFúÿ‰E¤H‹E°H‰ÇèsJúÿHcÐH‹E˜H9ÂtH‹EˆH�d3¾H‰ÇèOFúÿ…À�D‹E¤H‹}¨H‹M°H‹UðH‹uàH‹E¸E‰ÁI‰øH‰Çèæcúÿ‰Eü�ƒ}üu‹EèHcÐH‹MàH‹EˆH‰ÎH‰ÇèœáÿÿëH‹Eˆ¾vH‰Çè�ûÿÿ‰EüH‹EàºVH�5�2H‰ÇèUVúÿ‹EüÉÃUH‰åHƒÄ€H‰}ˆH�U˜H‹Eˆ¾H‰Çè/NúÿH‰EèH‹Eˆº¾H‰Çè%Œúÿ‰EäH‹Eˆ¾H‰Çèšûÿÿ‰Eà‹EàH˜º`H�52H‰ÇèeˆúÿH‰EøÇEôƒ}ä‡X‹EäH�…H�ö2‹H˜H�ê2HÐÿàH‹Eˆº¾H‰ÇèwOúÿH‹Eˆ¾H‰Çè6Iúÿ‰E܃}Üt)H‹E˜‰Ç‹MàH‹Uè‹uàH‹EøA‰È‰ùH‰Çèütúÿ‰EôéÝH‹E˜‰Ç‹MàH‹Uè‹uàH‹EøA‰È‰ùH‰Çèã]úÿ‰Eôé´H�U�H‹EˆH‰Ñº¾H‰Çè>UúÿH‰EÐH‹Eˆ¾H‰Çè?úÿƒøÿuCH‹E�A‰ÀH‹E˜A‰ÂH‹}ЋMàH‹Uè‹uàH‹EøHƒìAPI‰ùA‰ÈD‰ÑH‰ÇèƒúÿHƒÄ‰Eôé:H‹Eˆº¾H‰ÇèkxúÿH‰EÈH‹Eˆ¾H‰Çè¦>úÿƒøÿtH‹Eˆº¾H‰Çè;xúÿë¸H‰EÀH‹E�A‰ÀH‹E˜A‰ÂH‹}ЋMàH‹Uè‹uàH‹EøHƒìÿuÀÿuÈAPI‰ùA‰ÈD‰ÑH‰Çè“„úÿHƒÄ ‰Eô�éŸH‹E˜‰Ç‹MàH‹Uè‹uàH‹EøA‰È‰ùH‰Çèõ‰úÿ‰EôévH‹E˜‰Ç‹MàH‹Uè‹uàH‹EøA‰È‰ùH‰ÇèH‹EèH‹@H‰Çèä(úÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰ÇèÅ(úÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çèà<úÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5H‰ÇèH‹/&H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5ïH‰Ç¸è°SúÿH‹…ÀïÿÿH�5ØH‰ÇèªQúÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5®H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5?H‰ÇèšKúÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè,!úÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè-múÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰ÇèHúÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰ÇèWcúÿ‹UüH‹…ÈïÿÿH�5-H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çèhoúÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�eH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèvdúÿÉÃUH‰åHƒì H‰}è‰uäH�ZH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�H‰EøH‹Eø¶&úÿH‹Eøº¾ÿÿÿÿH‰Çè8úÿÉÃUH‰åHƒì H‰}ø‰uôH‰Uè‹UôH‹Eø‰ÖH‰Çèðâÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çèì4úÿ‹UôH‹Eø‰ÖH‰ÇèKeúÿH‹Eø¾ÿÿÿÿH‰ÇèêúÿH‹Eø¾ÿÿÿÿH‰ÇèÙúÿÉÃUH‰åHƒì0H‰}ØÇEôHÇEøH‹EØH�q¾H‰Çè^èÿÿH‹EغH�5uH‰ÇèóþÿÿH‹EؾÿÿÿÿH‰Çè‹7úÿH‹EؾðØÿÿH‰ÇèJ@úÿH‹EؾÿÿÿÿH‰ÇèYúÿH‹EؾÿÿÿÿH‰ÇèHúÿƒø„±H‹EؾþÿÿÿH‰Çè¾\úÿH‹Eغ¾H‰ÇèhRúÿH‹Eغ¾H‰ÇèRRúÿH‹EغH�5éH‰ÇèQþÿÿH‹EØH�ؾþÿÿÿH‰ÇèR&úÿH‹EؾþÿÿÿH‰ÇèfúÿH‹EؾþÿÿÿH‰ÇèÀ6úÿH‹EؾþÿÿÿH‰Çè¯6úÿH‹EؾðØÿÿH‰Çè~8úÿH‹EؾþÿÿÿH‰ÇèM_úÿH‹EØH‰ÇèA\úÿ‰EôH‹EؾþÿÿÿH‰Çè=?úÿH‹EؾÿÿÿÿH‰ÇèLúÿH‹EؾÿÿÿÿH‰ÇèëTúÿH‰EøHƒ}ø…dH‹EؾþÿÿÿH‰Çè«[úÿH‹EؾH‰ÇèJ:úÿH‰Eøƒ}ôt|H‹Eøº¾H‰Çèª,úÿH‹EØH‰Çè®[úÿH‹EؾþÿÿÿH‰ÇèÝ5úÿH‹EؾüÿÿÿH‰Çè¬7úÿH‹EؾH‰Çèk`úÿH‹EؾþÿÿÿH‰Çèª5úÿH‹EؾüÿÿÿH‰Çèy7úÿé¼HÇEèH‹EؾH‰Çè+`úÿH‹EؾýÿÿÿH‰Çè:>úÿH‹EؾÿÿÿÿH‰ÇèIúÿH‹EؾÿÿÿÿH‰ÇèèSúÿH‰EèHƒ}ètH‹EèH‹H‹EøH‰ëH‹Eøº¾H‰ÇèÇ+úÿH‹EؾþÿÿÿH‰Çè†ZúÿH‹EØH‰ÇèºZúÿH‹EؾþÿÿÿH‰Çèé4úÿH‹EؾüÿÿÿH‰Çè¸6úÿH‹EؾýÿÿÿH‰ÇèGZúÿH‹EøÉÃUH‰åHƒì H‰}è‰uä‹UäH‹Eè‰ÖH‰Çè‘úÿƒøuO‹UäH‹Eè‰ÖH‰Çè úÿfH~ÀH‰Eø‹MäH‹E躉ÎH‰Çè&H‰EðòH*Eðf.Eøzf.Eøu¸ë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØÇEôH�Uô‹MäH‹Eè‰ÎH‰Çè>äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè�3úÿ‹UðH‹Eø‰ÖH‰Çè3úÿ‹UôH‹Eø‰ÖH‰Çè.\úÿ‹UðH‹Eø‰ÖH‰Çè\úÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çè0úÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH��¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�ÿ¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çèë.úÿH‹Eø¾þÿÿÿH‰Çè**úÿ‹UôH‹Eø‰ÖH‰ÇèyNúÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè“2úÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'è‚?úÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèÄúÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�‰ÎH‰Çèäúÿ…À…�‹UäH‹Eè‰ÖH‰Çèûúÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5¼ H‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè£0úÿé3‹UäH‹Eè‰ÖH‰Çè úÿ…ÀtH‹EèºH�5x H‰ÇèÈ÷ÿÿéH‹EèºH�5` H‰Çè«÷ÿÿéä‹MäH‹EèH�K ‰ÎH‰Çè·<úÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çèúÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰ÇèÜúÿë‹UüH‹Eè‰ÖH‰Çèy2úÿH‰Eð‹UäH‹Eè‰ÖH‰ÇèFúÿH‰ÁH‹UðH‹EèH�5Ó H‰Ç¸èÕCúÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè^Xúÿ�ë/H‹Eè¾ÿÿÿÿH‰ÇèºVúÿ…ÀuH‹EèH�5“ H‰Ç¸èî:úÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè6úÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�â ¾H‰ÇèÏßÿÿH‹EøH�T ¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèhúÿH‹Eø¾ÿÿÿÿH‰Çè×úÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèNTúÿH‹MèH‹EøºH‰ÎH‰ÇèVaúÿH‹UðH‹EøH‰ÖH‰Çè³4úÿH‹Eøº¾ÿÿÿÿH‰ÇèmúÿH‹Eøº¾H‰Çè÷FúÿH‹Eø¾ÿÿÿÿH‰Çèf.úÿH‹UðH‹Eø¾ýÿÿÿH‰ÇèÁúÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè:.úÿH‹UðH‹Eø¾îØÿÿH‰Çè•úÿH‹Eø¾þÿÿÿH‰ÇèÔVúÿ�ÉÃUH‰åHƒì0H‰}ØH‹EعH�È ¾H‰Çèè)úÿH‰EðHÇEøH‹EðH�5¨ H‰Çè)Júÿ…Àuè ZúÿH‰Eøé_H‹EðH�5Š H‰ÇèJúÿ…Àuè»`úÿH‰Eøé:H‹EðH�5s H‰ÇèßIúÿ…Àuè¦!úÿH‰EøéH‹EðH�55 H‰ÇèºIúÿ…Àuè±YúÿH‰EøéðH‹EðH�57 H‰Çè•Iúÿ…ÀuèL`úÿH‰EøéËH‹EðH�5 H‰ÇèpIúÿ…Àuè7!úÿH‰Eøé¦H‹EðH�5 H‰ÇèKIúÿ…ÀuèÂMúÿH‰Eøé�H‹EðH�5ã H‰Çè&Iúÿ…Àuè=.úÿH‰Eøé\H‹EðH�5Ê H‰ÇèIúÿ…Àuèh,úÿH‰Eøé7H‹EðH�5± H‰ÇèÜHúÿ…Àuè“LúÿH‰EøéH‹EðH�5• H‰Çè·Húÿ…ÀuèþúÿH‰EøéíH‹EðH�5€ H‰Çè’Húÿ…ÀuèùCúÿH‰EøéÈH‹EðH�5k H‰ÇèmHúÿ…Àuè„9úÿH‰Eøé£H‹EðH�5M H‰ÇèHHúÿ…ÀuèÏ/úÿH‰Eøé~H‹EðH�56 H‰Çè#Húÿ…ÀuèZFúÿH‰EøéYH‹EðH�5 H‰ÇèþGúÿ…ÀuèúÿH‰Eøé4H‹EðH�5 H‰ÇèÙGúÿ…Àuè0úÿH‰EøéH‹EðH�5ì H‰Çè´Gúÿ…Àuè›4úÿH‰EøéêH‹EðH�5Ö H‰Çè�Gúÿ…ÀuèÖ1úÿH‰EøéÅH‹EðH�5¹ H‰ÇèjGúÿ…Àuè‘úÿH‰Eøé H‹EðH�5£ H‰ÇèEGúÿ…Àu èÜMúÿH‰Eøë~H‹EðH�5� H‰Çè#Gúÿ…Àu èz<úÿH‰Eøë\H‹EðH�5t H‰ÇèGúÿ…Àu è8úÿH‰Eøë:H‹EðH�5_ H‰ÇèßFúÿ…Àu èæúÿH‰EøëH‹EØH�M ¾H‰Çè¨úÿH‹EøH‰Çè,HúÿH‰EèHƒ}èuH‹EØH� ¾H‰ÇèyúÿH‹EعH�¡ ¾H‰Çè &úÿH‰EàH‹UàH‹EèH‰ÖH‰Çè5<úÿ…Àu/H‹UàH‹EèH‰ÖH‰Çèn2úÿ…ÀuH‹EØH�w ¾H‰ÇèúÿHƒ}èt5H‹EؾH‰ÇèÚ-úÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5Q H‰ÇèX úÿë H‹EØH‰Çèš(úÿH‹UØH‹Eè¾H‰Çèµ\úÿH‹UèH‹EØH‰ÖH‰ÇèBVúÿ¸ÉÃUH‰åHƒì H‰}èH‹Eè¾H‰Çè]úÿ‰EôH‹Eè¾H‰Çè úÿƒøÿtH‹Eè¾H‰Çè.úÿ븉Eðƒ}ðt‹EôÁà‰ÇèHúÿH‰Eøë‹EôÁà‰Çè´YúÿH‰EøH‹UøH‹EèH‰ÖH‰ÇèÍ.úÿH‹E躾ÿÿÿÿH‰Çè‡ úÿ¸ÉÃUH‰åHƒì H‰}èH‹Eè¾H‰Çès\úÿ‰EôH‹Eè¾H‰Çè_úÿƒøÿtH‹Eè¾H‰ÇèY-úÿ븉Eðƒ}ðt‹Eô‰ÇèOúÿH‰Eøë‹Eô‰ÇèÏ úÿH‰EøH‹UøH‹EèH‰ÖH‰Çè(.úÿH‹E躾ÿÿÿÿH‰Çèâ úÿ¸ÉÃUH‰åHƒì H‰}èèú3úÿH‰EøHƒ}øt5H‹Eè¾H‰Çèþ+úÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5… H‰Çè| úÿë H‹EèH‰Çè¾&úÿ¸ÉÃUH‰åHƒì H‰}èH‹Eè¾H‰ÇèªOúÿH‰EðH‹E𹺾H‰Çè»"úÿH‰EøHƒ}øuDH‹E𹺾H‰Çè•úÿH‹Eð¹H‰ÂH‹Ê&H‰ÆH‹˜&H‰ÇèKúÿH‰EøH‹EðH‰ÇèP3úÿHƒ}øtOHƒ}øt5H‹Eè¾H‰Çè+úÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5˜H‰Çè�úÿë H‹EèH‰ÇèÑ%úÿ¸ëH‹Eè¾H‰Çèi:úÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5<H‰ÇèÓ úÿH‹H‰EðH‹EغH�5xH‰Çè´ úÿH‹H‰EèH‹EؾH‰ÇèlMúÿ…Àt-H‹Eغ¾H‰ÇèòúÿH‰ÂH‹EðH‰ÖH‰Çè0(úÿ‰Eüë5H‹EغH�5(H‰ÇèS úÿH‹H‰EàH‹UàH‹EðH‰ÖH‰Çè©@úÿ‰Eüƒ}üu+H‹UèH‹EðH‰ÖH‰Çèí*úÿ‰Eüƒ}üuH‹EðH‰ÇèØJúÿ‰Eü‹UüH‹E؉ÖH‰Çèd9úÿÉÃUH‰åHƒì0H‰}ØH‹EغH�57H‰ÇèÎ úÿH‹H‰EèH‹EغH�5„H‰Çè¯ úÿH‹H‰EàH‹UàH‹EèH‰ÖH‰ÇèEúÿ‰Eüƒ}ü…çH‹EؾH‰Çè úÿƒøÿ„ÍH‹Eغ¾H‰Çè¨úÿHÇEðé‰H‹Eð‰ÂH‹EؾH‰ÇèDúÿH‹EؾÿÿÿÿH‰Çè³ úÿH‹EغH�5àH‰Çè úÿH‹H‰EàH‹EؾþÿÿÿH‰ÇèJúÿH‹EàH‰Çèw.úÿH‹UàH‹EèH‰Ñº¾H‰ÇèŠ*úÿ‰EüHƒEðƒ}üuH‹EؾH‰ÇèË*úÿH9Eð†Vÿÿÿ‹UüH‹E؉ÖH‰Çè8úÿÉÃUH‰åHƒì H‰}èH‹EèºH�5ÓH‰Çèj úÿH‹H‰EøH‹EøH‰ÇèçúÿH‹UøH‹EèH‰ÖH‰Çèôúÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5‚H‰Çè úÿH‹H‰EøH‹Eè¾H‰Çè‘ úÿƒøÿtAH‹Eè¾H‰Çè{WúÿHcÐH‹EøH‰ÖH‰Çè©úÿH‰EðH‹UðH‹EèH‰ÖH‰Çè2 úÿ¸ë(H‹EøH‰ÇèOúÿH‰EðH‹UðH‹EèH‰ÖH‰Çè úÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ÖH‰ÇèmúÿH‹H‰EèÇEüH‹EؾH‰ÇèÞúÿ…ÀŽÆÇEðH‹EؾH‰Çè¾úÿƒøuH‹EؾH‰Çè8úÿ‰EðÇEôë3ÇEôë*‹Eô�P‰UôH‹}ØL�ÏH� ˜h&º‰Æè,Rúÿ EüH‹EØH‰Çè]úÿ9Eô~Ń}ðt!‹EüHcÐH‹Eè¹¾!H‰Çèf(úÿ‰Eüë?‹EüHcÐH‹Eè¹¾NH‰ÇèE(úÿ‰EüëH‹E蹺¾!H‰Çè%(úÿ‰EüÇEøÇEôëc‹EôH˜H�…H�‹#Eü…ÀtA‹EôH˜H�ÅH�Ðg&H‹H‹EØH‰ÖH‰Çè½'úÿH‹Eغ¾ÿÿÿÿH‰ÇèwúÿƒEøƒEô‹Eôƒøv•‹EøÉÃUH‰åHƒì`H‰}¨H‹E¨ºH�5'H‰Çè¾úÿH‹H‰EàHÇEøH‹E¨¾H‰Çè.úÿƒøÿ„ZH‹E¨H‰Çèúÿ‰EÜÇEìH‹E¨¾H‰Çèþúÿƒøu H‹E¨¾H‰Çèxúÿ‰EìÇEðéÊÇEð龋UðH‹E¨‰ÖH‰Çè,&úÿ…Àt‹UðH‹E¨‰ÖH‰Çè§TúÿH Eøé‹‹MðH‹E¨º‰ÎH‰ÇèhúÿH‰EÐÇEèëL‹EèH˜HÁàH‰ÂH�èc&H�H‹H‹RH‰EÀH‰UÈH‹UÀH‹EÐH‰ÖH‰ÇèB.úÿ…Àu ‹EÈH˜H Eøë ƒEè‹EèH˜HÁàH‰ÂH�œc&H‹H…Àu˜ƒEð‹Eð;EÜŽ6ÿÿÿƒ}ìtH‹UøH‹EàH‰ÖH‰Çèz úÿH‰Eøë)H‹UøH‹EàH‰ÖH‰Çè1PúÿH‰EøëH‹EàH‰Çè¿AúÿH‰EøH‹E¨º¾H‰Çèõ:úÿÇEôÇEðëy‹EðH˜HÁàH‰ÂH�c&H�H‹H‹RH‰E°H‰U¸‹E¸H˜H#EøH…ÀtAH‹U°H‹E¨H‰ÖH‰Çèn%úÿH‹E¨º¾ÿÿÿÿH‰Çè(úÿƒEô‹UôH‹E¨¾þÿÿÿH‰Çè�#úÿƒEð‹EðH˜HÁàH‰ÂH�‰b&H‹H…À…gÿÿÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ªH‰ÇèAúÿH‹H‰EðH‹E𹺾‚H‰Çèß$úÿ‰EìH‹E𹺾ƒH‰ÇèÁ$úÿ‰EèH‹EؾH‰Çè}úÿƒøÿu4‹EìHcÐH‹EØH‰ÖH‰ÇèCúÿ‹EèHcÐH‹EØH‰ÖH‰Çè.úÿ¸éÊ‹EìHcÐH‹EؾH‰Çèý úÿ‰Eì‹EèHcÐH‹EؾH‰Çèã úÿ‰Eè‹Eì;Eè~H‹EØH�žH‰ÇèP úÿ…À�‹EìHcÐH‹Eð¹¾{H‰Çè$úÿ‰Eüƒ}üu‹EèHcÐH‹Eð¹¾{H‰ÇèÜ#úÿ‰Eüƒ}üuH‹EؾH‰Çè¢úÿ¸ë‹UüH‹E؉ÖH‰ÇèZ1úÿÉÃUH‰åHƒì H‰}èH‹EèºH�5-ÿH‰ÇèÄúÿH‹H‰EøH‹Eè¾H‰Çè<úÿƒøÿu+H‹EøH‰Çè; úÿ‰Eô‹EôHcÐH‹EèH‰ÖH‰Çèóúÿ¸ë*H‹Eè¾H‰ÇèûPúÿ‰Eð‹UðH‹Eø‰ÖH‰ÇèGEúÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5•þH‰Çè,úÿH‹H‰EðH‹Eغ¾H‰ÇèúÿH‰EèH‹Eعº¾H‰Çè�úÿH‰EàHƒ}èuHƒ}àt¸ë¸‰EüHƒ}ètH‹UèH‹EðH‰ÖH‰Çè5Púÿ‰Eüƒ}üuHƒ}àtH‹UàH‹EðH‰ÖH‰Çèúÿ‰Eü‹UüH‹E؉ÖH‰Çèî/úÿÉÃUH‰åHƒì H‰}èH‹EèºH�5ÁýH‰ÇèXúÿH‹H‰EøHÇEðH‹Eè¾H‰ÇèÈúÿƒøÿukH‹EøH‰Çè‡JúÿH‰EðH‹EðH‰ÇèG4úÿHƒ}ðt5H‹Eè¾H‰ÇèÏúÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5]þH‰ÇèMýùÿë H‹EèH‰Çè�úÿ¸ëTH‹EèºH�50þH‰Çè°úÿH‹H‰EðH‹EðH‰ÇèÍ3úÿH‹UðH‹EøH‰ÖH‰ÇèÚúÿH‹Eð¾H‰Çè‰4úÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5·üH‰ÇèNúÿH‹H‰EøH‹EغH�5ÂýH‰Çè/úÿH‹H‰EðH‹UðH‹EøH‰ÖH‰ÇèuHúÿ‰Eì‹UìH‹E؉ÖH‰Çèq.úÿÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5DüH‰ÇèÛÿùÿH‹H‰EàÇEüÇEøH‹EàH‰Çèª%úÿH‰EØÇEôH‹EȺH�59ýH‰Çè§IúÿH…À„ºH‹EȺH�5ýH‰ÇèvÿùÿH‹H‰EÐH‹EÐH‰EèH‹EÐH‰ÇèÛ=úÿH‹EȺH�5åüH‰ÇèSIúÿH…Àt(H‹EȺH�5ÈüH‰Çè&ÿùÿH‹H‰EèÇEøëÇEøH‹EèH‰Çèƒ=úÿH‹UÐH‹EØH‰ÖH‰ÇèðGúÿH‹UèH‹EØH‰ÖH‰ÇèM5úÿÇEôë@H‹EȾH‰ÇèÃúÿ…Àt+H‹EȾH‰Çè>Múÿ‰ÂH‹E؉ÖH‰Çèžúÿ‰EôÇEøƒ}ôuF‹UøH‹EȉÖH‰Çè ÿùÿƒøÿt0‹UøH‹EȉÖH‰Çè÷þùÿ…Àt‹UøH‹EȉÖH‰Çèòúÿ븉Eüƒ}ô…­ƒ}ütH‹EØH‰Çèìúÿë H‹EØH‰Çè^úÿHƒ}Øt5H‹EȾH‰ÇèÖúÿH‰ÂH‹EØH‰H‹EȺÿÿÿÿH�5’ûH‰ÇèTúùÿë H‹EÈH‰Çè–úÿH‹UØH‹EÈH‰ÖH‰ÇèSEúÿH‹EȾH‰ÇèRúÿH‹MØH‹EÈH�UûH‰ÎH‰Çèˆúÿ¸ë0H‹EØH‰ÇèUúÿH‹UØH‹EÈH‰ÖH‰Çè"úÿ‹UôH‹EȉÖH‰ÇèÑ+úÿÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5¤ùH‰Çè;ýùÿH‹H‰EèH‹E¸º¾H‰ÇèŽ úÿH‰EàH‹E¸¾H‰Çè™ýùÿƒøÿtH‹E¸¾H‰Çè“úÿ븉EÜH‹E¸¾H‰ÇèhýùÿƒøÿtH‹E¸¾H‰Çèbúÿ븉E؃}ÜtH‹Eè¾H‰ÇèAùùÿë H‹EèH‰ÇèC&úÿH‰EøHƒ}ø„ÇEôƒ}ØtIHÇEÈH�UÈH‹EøH‰Ñº¾nH‰ÇèRÿùÿ‰Eôƒ}ôuH‹Eȹº¾!H‰Çènúÿƒ}Üt7H‹EàH‰ÇèÌ úÿH‰EÐH‹UøH‹EÐH‰Ñº¾vH‰ÇèûþùÿH‹EÐH‰Eøë H‹UàH‹EøH‰Ñº¾dH‰ÇèÔþùÿ‰Eôƒ}ôuOHƒ}øt5H‹E¸¾H‰ÇèƒúÿH‰ÂH‹EøH‰H‹E¸ºÿÿÿÿH�53ùH‰Çèøùÿë H‹E¸H‰ÇèCúÿ¸ë,‹UôH‹E¸‰ÖH‰ÇèÛ)úÿëH‹EøH‰ÇèM"úÿHÇEø¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5“÷H‰Çè*ûùÿH‹H‰EøH‹Eè¾H‰Çè¢ûùÿƒøÿt%H‹Eè¾H‰ÇèŒIúÿ‰Eô‹UôH‹Eø‰ÖH‰ÇèØúÿH‹EøH‰Çèìúÿ‰Eô‹EôHcÐH‹EèH‰ÖH‰Çè4úÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5÷H‰Çè™úùÿH‹H‰EðH‹EØH‰ÇèúÿƒøŽ)H‹EؾH‰ÇèüHúÿ‰Eìƒ}ìt$‹Eìƒàø…ÀtH‹EØH�6ø¾H‰Çè1úÿ…À�H‹EؾH‰Çè½úùÿƒøÿt0H‹EؾH‰Çè§úùÿƒøtH‹EØH�%ø¾H‰Çèêÿùÿ…À�H‹EؾH‰ÇèvúùÿƒøuEH‹EؾH‰ÇèpúÿH‹MðH‹EØH�ù÷H‰ÎH‰Çè¦úÿ‹MìH‹EðH‹€&‰ÎH‰Çè¾ûùÿë>H‹EØH‰ÇèPúÿH‹MðH‹EØH�¹÷H‰ÎH‰Çèfúÿ‹MìH‹EðH‹@&‰ÎH‰Çè~ûùÿ¸éÇEüH‹EðH‰Çèa@úÿ‰Eè‹EèHcÐH‹EØH‰ÖH‰Çè™úÿƒEüƒ}èu2H‹EØH�5èöH‰Çè¼úÿH‹Eغ¾ÿÿÿÿH‰ÇèvöùÿƒEüé©‹Eèƒà…À„›H‹EØH�5­öH‰Çè|úÿH‹Eغ¾ÿÿÿÿH‰Çè6öùÿƒEü‹Eèƒà…Àt-H‹EØH�5{öH‰ÇèEúÿH‹Eغ¾ÿÿÿÿH‰ÇèÿõùÿƒEü‹Eèƒà…Àt-H‹EØH�5IöH‰ÇèúÿH‹Eغ¾ÿÿÿÿH‰ÇèÈõùÿƒEü‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5„ôH‰ÇèøùÿH‹H‰EøH‹Eè¾H‰Çè“øùÿƒøÿtFH‹Eè¾H‰Çè}øùÿƒøt0H‹Eè¾H‰ÇègøùÿƒøtH‹EèH�ö¾H‰Çèªýùÿ…À�H‹Eè¾H‰Çè6øùÿƒøuGH‹Eè¾H‰Çè0úÿH‹MøH‹EèH�ïõH‰ÎH‰ÇèfúÿH‹UèH‹EøH‹ G&H‰ÎH‰Çè<)úÿësH‹Eè¾H‰ÇèÙ÷ùÿƒøuGH‹Eè¾H‰ÇèÓúÿH‹MøH‹EèH�¢õH‰ÎH‰Çè úÿH‹UèH‹EøH‹ ê&H‰ÎH‰Çèß(úÿëH‹Eøº¾H‰ÇèÇ(úÿ¸ÉÃUH‰åHƒì`H‰}¨H‹E¨ºH�5%óH‰Çè¼öùÿH‹H‰EÐH‹E¨¾H‰Çè4÷ùÿƒø…ÈHÇEøHÇEðH‹EðH‰ÇèÏ)úÿH‰EèH‹E¨¾H‰ÇèŠúÿ‰EÌHÇEØÇEäé‹UäH‹E¨¾H‰ÇèOýùÿH‹E¨¾ÿÿÿÿH‰Çè¾öùÿH�U¸H‹E¨¾ÿÿÿÿH‰Çè™óùÿH‰EÀH‹E¨¾þÿÿÿH‰Çè$6úÿHƒ}ÀuH�ƒôH‰EØé¾H‹E¸H=ÿvH�~ôH‰EØé¢H‹U¸H‹EøHÐH9Eðw,HÑeðH‹U¸H‹EøHÐH9EðvëH‹UðH‹EèH‰ÖH‰ÇèX5úÿH‰EèHƒ}èu H�FôH‰EØëQH‹M¸H‹EøH�PH‰UøH‹UèHЉʈH‹U¸H‹MèH‹EøHÁH‹EÀH‰ÆH‰ÏèÇúÿH‹E¸HEøƒEä‹Eä;EÌŽÜþÿÿHƒ}Øu(H‹Eø‰ÂH‹MèH‹EÐH‰ÎH‰Çè:úÿ…Àt H�ãóH‰EØH‹EèH‰Çè4"úÿHƒ}Øt4H‹UØH‹E¨H‰ÖH‰Ç¸èõúÿëH‹E¨H�5ÂóH‰Ç¸èÛúÿë¸ÉÃUH‰åH‰}è‰uäH‰U؉MàÇEüëRÇEøë-‹Uü‹EøÐHcÐH‹EèHж‹EøHcÈH‹EØHȶ8ÂuƒEø‹Eø;Eà|Ëë�‹Eø;Eàu‹EüëƒEü‹Eä+Eà9Eü~£¸ÿÿÿÿ]ÃUH‰åHƒìpH‰}¸H‰u°H‰U¨H‰M D‰EœL‰M�H‹E�H‰EèÇEüH‹E¸H‰ÇèøòùÿH‰EàHƒ}脘H‹MàH‹EèH�ãòH‰ÎH‰ÇèßúÿH‹Eè¾ÿÿÿÿH‰ÇèNôùÿƒø…dÇEøÇEôH‹E躾H‰Çèq)úÿë`‹Eô�P‰UôHcÐH‹E Hж¶À‰EÜ‹EÜHcЋEôHcÈH‹E HÁH‹EèH‰ÎH‰ÇèHÕÿÿ‹Eø�P‰UøH‹Mè‰Â¾þÿÿÿH‰Ïè5úÿ‹EÜEô‹Eô9Eœw˜H‹E蹺¾H‰Çè\÷ùÿ…ÀuoH�UÈH‹Eè¾ÿÿÿÿH‰ÇèsðùÿH‰EÐHƒ}Є‚H‹EȉÁ‹uœH‹UÐH‹E H‰Çèþÿÿ‰Eôƒ}ôÿt`‹EôHcÐH‹E HÂH‹E°H‰H‹EȉÂH‹E¨ˆÇEüë7H‹E躾ÿÿÿÿH‰ÇèðùÿH‰ÂH‹Ñü%H‹H�5‡ñH‰Ç¸è+úÿH‹Eè¾þÿÿÿH‰Çèq2úÿ‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5‘îH‰Çè(òùÿH‹H‰EøH‹Eè¾H‰Çè òùÿƒøuDH‹Eè¾H‰Çèš úÿH‹MøH‹EèH�ôðH‰ÎH‰ÇèÐúÿH‹UèH‹EøH�5žýÿÿH‰Çè¹>úÿëH‹Eøº¾H‰Çè¡>úÿ¸ÉÃUH‰åHƒì@H‰}ØH‰uÐH‰UÈHÇEøH‹EÈH‰EðH‹Eð¾H‰ÇèÅúùÿH‰EèH‹EؾH‰Çè ùùÿH‰EàHƒ}àu ¸éH‹MðH‹EèH�tðH‰ÎH‰ÇèAúÿH‹Eè¾ÿÿÿÿH‰Çè°ñùÿƒøuUH‹UàH‹Eè¾ÿÿÿÿH‰ÇèðùÿH‹Eè¾ÿÿÿÿH‰Çè…ñùÿH‹EèºÿÿÿÿH�5FíH‰Ç褵ÿÿH‰EøH‹Eè¾ýÿÿÿH‰Çèè0úÿëtH‹UàH‹EèH‰ÖH‰ÇècúÿH‹E躾ÿÿÿÿH‰ÇèîùÿH‹E蹺¾H‰ÇèÒôùÿ…ÀuH‹EèºÿÿÿÿH�5ÏìH‰Çè-µÿÿH‰EøëH‹EèH‰Çè4úÿë&Hƒ}øtH‹UøH‹EØH‰ÖH‰ÇèÈúÿ¸ë¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5oìH‰ÇèðùÿH‹H‰EøH‹Eè¾H‰Çè~ðùÿƒøt0H‹Eè¾H‰ÇèhðùÿƒøtH‹EèH�ï¾H‰Çè«õùÿ…À�H‹Eè¾H‰ÇèG úÿH‹MøH‹EèH�ÐîH‰ÎH‰Çè}úÿH‹EøH�Øýÿÿ¾5H‰Çèe*úÿH‹UøH‹EøH‰Ñº¾6H‰Çèúÿ¸ÉÃUH‰åHƒì0H‰}ØH‰uÐH‹EØH‰Çè5îùÿH‰EðH‹Eð¾H‰ÇèpøùÿH‰EèH‹MðH‹EèºH‰ÎH‰Çè¤ûùÿH‹EØH‰ÇèXìùÿHƒ}Øt5H‹Eè¾H‰Çè° úÿH‰ÂH‹EØH‰H‹EèºÿÿÿÿH�5lìH‰Çè.ëùÿë H‹EèH‰ÇèpúÿH‹UØH‹EèH‰ÖH‰Çè-6úÿHƒ}Ðt5H‹Eè¾H‰ÇèU úÿH‰ÂH‹EÐH‰H‹EèºÿÿÿÿH�5ÜêH‰ÇèÓêùÿë H‹EèH‰ÇèúÿH‹E蹺¾H‰ÇèŠòùÿ‰Eüƒ}üt@H‹E躾ÿÿÿÿH‰Çè›ëùÿH‰ÂH‹iø%H‹H�5oíH‰Ç¸èš&úÿÇEüëBH‹Eè¾ÿÿÿÿH‰ÇèpîùÿƒøuH‹Eè¾ÿÿÿÿH‰Çèê÷ùÿëH‹E躾ÿÿÿÿH‰Çè Ôÿÿ‰EüH‹Eè¾þÿÿÿH‰Çè¾-úÿ‹EüÉÃUH‰åSHƒìXH‰}¸H‰u°‰U¬H‰M H‹E¸H‰ÇèuìùÿH‰EàH‹Eà¾H‰Çè°öùÿH‰EØHÇEèH‹MàH‹EغH‰ÎH‰ÇèÜùùÿH‹E¸H‰Çè�êùÿHƒ}¸t5H‹EؾH‰Çèè úÿH‰ÂH‹E¸H‰H‹EغÿÿÿÿH�5¤êH‰Çèféùÿë H‹EØH‰Çè¨úÿH‹U¸H‹EØH‰ÖH‰Çèe4úÿ‹E¬HcÐH‹M°H‹EØH‰ÎH‰Çè³ÎÿÿH‹Eعº¾H‰Çèñðùÿ‰EÔƒ}ÔtRH‹Eغ¾ÿÿÿÿH‰ÇèêùÿH‰ÂH‹Ðö%H‹H�5öëH‰Ç¸è%úÿH‹EؾþÿÿÿH‰Çèp,úÿ¸éH‹EؾÿÿÿÿH‰Çè.úÿ…ÀtLHÇEÈH�UÈH‹EؾÿÿÿÿH‰Çè”éùÿH‰EÀH‹E ÇH‹EÈHcÐH�EÀH‰Æ¿èúÿH‰Eèé¢H‹EغÿÿÿÿH�5FèH‰Çè”°ÿÿH‰EèHƒ}èt H‹E ÇësH‹EؾÿÿÿÿH‰Çè5ìùÿ…Àt^H‹Eغ¾ÿÿÿÿH‰Çè éùÿH‰ÃH‹EؾÿÿÿÿH‰Çèìùÿ‰ÂH‹E؉ÖH‰Çè—úÿH‰ÂH‹µõ%H‹H‰ÙH�5øêH‰Ç¸èã#úÿH‹EؾþÿÿÿH‰ÇèR+úÿH‹EèHƒÄX[]ÃUH‰åHƒì0H‰}ØH‰uÐÇEèHÇEøH‹EؾH‰ÇèGôùÿH‰EðH‹MØH‹EðºH‰ÎH‰Çè{÷ùÿH�UèH‹EÐH‰ÖH‰ÇèˆúÿH‰Eø‹Eè‰ÂH‹MøH‹EðH‰ÎH‰Çè£ÌÿÿH‹E𹺾H‰Çèáîùÿ‰Eìƒ}ìtHH‹Eðº¾ÿÿÿÿH‰ÇèòçùÿH‰ÂH‹Àô%H‹H�5FêH‰Ç¸èñ"úÿH‹Eð¾þÿÿÿH‰Çè`*úÿ�ÉÃUH‰åHƒì H‰}èH‹EèºH�5‚æH‰ÇèêùÿH‹H‰EøH‹Eè¾H‰Çè‘êùÿ…À~RH‹E躾H‰Çè7úùÿH‹Eè¾H‰ÇèvúÿH‹MøH‹EèºH‰ÎH‰Çè>íùÿH‹EøH�5búÿÿH‰ÇèK úÿH‹Eè¾H‰Çè*êùÿ…À~RH‹E躾H‰ÇèÐùùÿH‹Eè¾H‰ÇèúÿH‹MøH‹EèºH‰ÎH‰Çè×ìùÿH‹EøH�5³ûÿÿH‰ÇèÔúÿH‹Eè¾H‰ÇèÃéùÿ…À~RH‹E躾H‰ÇèiùùÿH‹Eè¾H‰Çè¨úÿH‹MøH‹EèºH‰ÎH‰ÇèpìùÿH‹EøH�5¾ýÿÿH‰Çè}ôùÿH‹Eè¾H‰Çèlúÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5 åH‰Çè¡èùÿH‹H‰EøH‹Eè¾H‰Çè7úÿH‰EðH‹UðH‹EøH‰ÖH‰Çè²úÿ¸ÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5°äH‰ÇèGèùÿH‹H‰EðH‹EȾH‰Çèÿ)úÿ…ÀtKH�UÐH‹EȾH‰Çè†öùÿH‰EèH‹EЉÂH‹MèH‹EðH‰ÎH‰ÇèY'úÿ‰Eä‹UäH‹EȉÖH‰ÇèUúÿé•H‹EȺH�5AäH‰ÇèÈçùÿH‹H‰EØH‹EȾH‰Çè@èùÿƒøÿtH‹EȾH‰Çè:úÿ븉Eüƒ}ütH‹UØH‹EðH‰ÖH‰Çèçðùÿ‰EüëH‹UØH‹EðH‰ÖH‰Çèßúÿ‰Eü‹UüH‹EȉÖH‰Çè»úÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5ŽãH‰Çè%çùÿH‹H‰EèH‹EØH‰Çè¢þùÿ‰EäHÇEøƒ}äްH‹EؾH‰Çèìúÿ…Àt8H‹EؾH‰Çèg5úÿH‰EøH‹UøH‹Eè¹¾,H‰ÇèyúÿH‰Eøé‚ÇEôë2‹uôH‹EØL�éëH� âI&ºH‰ÇèÕ0úÿ‰Eà‹EàH˜H EøƒEô‹Eô;Eä~ÆH‹UøH‹Eè¹¾,H‰ÇèúÿH‰EøëH‹E蹺¾-H‰ÇèòúÿH‰EøH‹Eغ¾H‰ÇèøúÿÇEôHƒ}øuFH‹EØH�5æH‰Çè§úÿH‹Eغ¾ÿÿÿÿH‰ÇèaãùÿƒEô‹UôH‹EؾþÿÿÿH‰ÇèÉúÿé5H‹Eø%€H…ÀtAH‹EØH�5·åH‰ÇèSúÿH‹Eغ¾ÿÿÿÿH‰Çè ãùÿƒEô‹UôH‹EؾþÿÿÿH‰ÇèuúÿH‹EøƒàHƒøuFH‹EØH�5wåH‰ÇèúÿH‹Eغ¾ÿÿÿÿH‰Çè¿âùÿƒEô‹UôH‹EؾþÿÿÿH‰Çè'úÿéœH‹EøƒàH…ÀtCH‹EØH�5*åH‰Çè³úÿH‹Eغ¾ÿÿÿÿH‰ÇèmâùÿƒEô‹UôH‹EؾþÿÿÿH‰ÇèÕúÿëMH‹EøƒàH…ÀtAH‹EØH�5âäH‰ÇèdúÿH‹Eغ¾ÿÿÿÿH‰ÇèâùÿƒEô‹UôH‹EؾþÿÿÿH‰Çè†úÿH‹Eø%H=uFH‹EØH�5—äH‰ÇèúÿH‹Eغ¾ÿÿÿÿH‰ÇèÌáùÿƒEô‹UôH‹EؾþÿÿÿH‰Çè4úÿé H‹Eø%H…ÀtCH‹EØH�5OäH‰Çè¾úÿH‹Eغ¾ÿÿÿÿH‰ÇèxáùÿƒEô‹UôH‹EؾþÿÿÿH‰ÇèàúÿëOH‹Eø%H…ÀtAH‹EØH�5äH‰ÇèmúÿH‹Eغ¾ÿÿÿÿH‰Çè'áùÿƒEô‹UôH‹EؾþÿÿÿH‰Çè�úÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ÍßH‰ÇèdãùÿH‹H‰EðH‹Eè¾H‰ÇèÜãùÿƒøÿt*H‹Eè¾H‰ÇèÆ1úÿH‰EøH‹UøH‹EðH‰ÖH‰ÇèOûùÿëH‹EðH‰Çè¡'úÿH‰EøH‹UøH‹EèH‰ÖH‰Çèjúùÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5}àH‰ÇèÏâùÿH‹H‰EøH‹EøH‰ÇèìëùÿH‰EðHƒ}ð”À¶ÐH‹Eè‰ÖH‰Çèï'úÿH‹MøH‹EèH�äH‰ÎH‰Çè•ôùÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ÓÞH‰ÇèZâùÿH‹H‰EøH‹Eè¾H‰ÇèÒâùÿƒøÿtHH‹Eè¾H‰Çè¼0úÿ‰Eô‹EôHcÐH‹EøH‰ÖH‰Çè„ßùÿ‰Eô‹EôHcÐH‹EèH‰ÖH‰Çèlùùÿ¸ë)H‹EøH‰ÇèI&úÿ‰Eô‹EôHcÐH‹EèH‰ÖH‰ÇèAùùÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ÞH‰Çè¦áùÿH‹H‰EøH‹Eè¾H‰ÇèâùÿƒøÿtHH‹Eè¾H‰Çè0úÿ‰Eô‹EôHcÐH‹EøH‰ÖH‰Çè`úÿ‰Eô‹EôHcÐH‹EèH‰ÖH‰Çè¸øùÿ¸ë)H‹EøH‰Çè…áùÿ‰Eô‹EôHcÐH‹EèH‰ÖH‰Çè�øùÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5kÝH‰ÇèòàùÿH‹H‰EøH‹EøH‰Çè)úÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5-ÝH‰Çè´àùÿH‹H‰EøH‹EøH‰Çè!!úÿH‰EðH‹EðH‰Çè!úÿHƒ}ðt5H‹Eè¾H‰ÇèIÿùÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5,ÝH‰ÇèÇÜùÿë H‹EèH‰Çè úùÿ¸ÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5—ÜH‰ÇèàùÿH‹H‰EøH‹EȾH‰Çè–àùÿƒøÿu6H�UàH‹EøH‰ÖH‰Çè®úÿH‰Eð‹Eà‰ÂH‹MðH‹EÈH‰ÎH‰ÇèÉÁÿÿ¸ëKH�UØH‹EȾH‰Çè&îùÿH‰EèH‹E؉ÂH‹MèH‹EøH‰ÎH‰ÇèYúÿ‰Eä‹UäH‹EȉÖH‰ÇèÕ$úÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ÓÛH‰ÇèZßùÿH‹H‰EøH‹EøH‰Çè'üùÿ‰Eô‹UôH‹EèH‰ÖH‰Çè¢öùÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5€ÛH‰ÇèßùÿH‹H‰EøH‹EؾH‰ÇèßùÿƒøÿtH‹EؾH‰Çèyþùÿ븉EôèŠþùÿH‰Çè² úÿH‰Eèƒ}ôtH‹UøH‹EèH‰ÖH‰ÇèÕùùÿëH‹UøH‹EèH‰ÆH‹Aè%H‰ÇèùúÿH�UàH‹EèH‰Ñº¾sH‰ÇèláùÿH‹EàH‹H‹EàH‹HH‹EØH‰ÎH‰ÇèEÀÿÿH‹EèH‰Çè2úÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5�ÚH‰ÇèÞùÿH‹H‰EøH‹EøH‰Çè„úÿ‰Eô‹UôH‹Eè‰ÖH‰Çè@#úÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5>ÚH‰ÇèÅÝùÿH‹H‰EøH‹EøH‰Çèbðùÿ‰Eô‹UôH‹Eè‰ÖH‰Çèî"úÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5!ÛH‰ÇèsÝùÿH‹H‰EøH‹EøH‰ÇèÜùÿ‰ÂH‹Eè‰ÖH‰Çè "úÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ÓÚH‰Çè%ÝùÿH‹H‰EðH‹EغH�5ÛÙH‰ÇèÝùÿH‹H‰EèH‹EغH�5«ÙH‰ÇèçÜùÿH‹H‰EàH‹UàH‹EðH‰ÖH‰Çè}óùÿ‰Eüƒ}üu+H‹UèH‹EðH‰ÖH‰Çè‘!úÿ‰Eüƒ}üuH‹EðH‰ÇèÌØùÿ‰Eü‹UüH‹E؉ÖH‰Çèø úÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5ÚH‰ÇèbÜùÿH‹H‰EøH‹EøH‰Çè%úÿH‰EðH‹EøH‰ÇèÛùÿH‰EèHƒ}ðt5H‹EؾH‰ÇèóúùÿH‰ÂH‹EðH‰H‹EغÿÿÿÿH�5ÖØH‰ÇèqØùÿë H‹EØH‰Çè³õùÿHƒ}ètH‹UèH‹EØH‰ÖH‰Çè© úÿ¸ë¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5UÙH‰Çè§ÛùÿH‹H‰EøH‹EøH‰ÇèdíùÿH‹UøH‹EèH‰ÖH‰Çè1ìùÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ÙH‰ÇèVÛùÿH‹H‰EðH‹EðH‰Çè£øùÿ‰EìHÇEøƒ}ìu H�ßÜH‰Eøë7ƒ}ìu H�ÔÜH‰Eøë$ƒ}ìu H�ÉÜH‰Eøëƒ}ìu H�¾ÜH‰EøH‹UøH‹EØH‰ÖH‰Çè‹ûùÿH‹Eغ¾ÿÿÿÿH‰ÇèEØùÿ‹EìHcÐH‹EØH‰ÖH‰Çè òùÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�53ØH‰Çè…ÚùÿH‹H‰EøH‹EøH‰ÇèçùÿH‰EðHƒ}ðt6H‹EðH‰Çè;úÿH‰ÂH‹EèH‰ÖH‰ÇèùúùÿH‹E躾ÿÿÿÿH‰Çè³×ùÿë H‹EèH‰Çèåóùÿ¸ÉÃUH‰åH�ì@ H‰½ÈßÿÿH‹…ÈßÿÿºH�5Ÿ×H‰ÇèñÙùÿH‹H‰EøH‹EøH‰ÇèŽéùÿH‰EðHƒ}ð„&H�•Ðßÿÿ¸¹H‰×óH«H‹…Èßÿÿº¾H‰ÇèúÿÇEìþÿÿÿH‹EðH‰ÇèÜúÿH‰ÂH‹…ÈßÿÿH‰ÖH‰Çè'úùÿH‹…Èßÿÿº¾ÿÿÿÿH‰ÇèÞÖùÿ‹MìH‹…ÈßÿÿH�%Û‰ÎH‰ÇèSãùÿÇEèþÿÿÿH‹EðH‰ÇèõùÿH‰ÂH‹…ÈßÿÿH‰ÖH‰ÇèËùùÿH‹…Èßÿÿº¾ÿÿÿÿH‰Çè‚Öùÿ‹MèH‹…ÈßÿÿH�tÙ‰ÎH‰Çè÷âùÿÇEäþÿÿÿH‹EðH‰Çè„Ûùÿ‰ÂH‹…ÈßÿÿH‰ÖH‰Çè0ðùÿ‹MäH‹…ÈßÿÿH�0Ú‰ÎH‰ÇèµâùÿH�UÐH‹EðH‰ÖH‰ÇèòÙùÿ‰EàÇEÜþÿÿÿ‹EàHcÐH‹…ÈßÿÿH‰ÖH‰Çèàïùÿ‹MÜH‹…ÈßÿÿH�<Ú‰ÎH‰ÇèeâùÿÇEØþÿÿÿ‹EÐHcÐH‹…ÈßÿÿH‰ÖH‰Çè¦ïùÿ‹MØH‹…ÈßÿÿH�Ú‰ÎH‰Çè+âùÿÇEÔþÿÿÿH��ÐßÿÿH‹Eðº H‰ÎH‰ÇèöùÿH‰ÂH‹…ÈßÿÿH‰ÖH‰Çè”øùÿH‹…Èßÿÿº¾ÿÿÿÿH‰ÇèKÕùÿ‹MÔH‹…ÈßÿÿH�¤Ù‰ÎH‰ÇèÀáùÿ¸ë¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5,ÕH‰Çè~×ùÿH‹H‰EøH‹EøH‰Çè %úÿHcÐH‹EèH‰ÖH‰ÇèÉîùÿ¸ÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹UÜH‹Eà‰ÖH‰ÇènÒùÿ‰Eüƒ}ü‡‹EüH�…H�OÙ‹H˜H�CÙHÐÿàH‹Eè¾H‰Çè=úÿ‹EÜHcÐH‹EèH‰ÖH‰ÇèHîùÿéÔH‹Eè¾H‰ÇèúÿH‹Eè¾H‰Çè!îùÿé­H‹EèH‰Çè`ðùÿH‹EèH�5óÖH‰Çè=÷ùÿH‹E躾ÿÿÿÿH‰Çè÷ÓùÿésH‹Eè¾H‰Çè±úÿH‹EèH�5LØH‰ÇèþöùÿH‹E躾ÿÿÿÿH‰Çè¸Óùÿé4H‹Eè¾H‰ÇèrúÿH‹EèH�5ØH‰Çè¿öùÿH‹E躾ÿÿÿÿH‰ÇèyÓùÿéõH‹Eè¾H‰Çè3úÿH‹EèH�5ã×H‰Çè€öùÿH‹E躾ÿÿÿÿH‰Çè:Óùÿé¶H‹EèH‰ÇèiïùÿH‹EèH�5º×H‰ÇèFöùÿH‹E躾ÿÿÿÿH‰ÇèÓùÿëH‹Eè¾H‰Çè½úÿH‹EèH�5†×H‰Çè öùÿH‹E躾ÿÿÿÿH‰ÇèÄÒùÿëCH‹Eè¾H‰Çè�úÿH‹EèH�5W×H‰ÇèÎõùÿH‹E躾ÿÿÿÿH‰ÇèˆÒùÿë¸ë¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5‚ÒH‰ÇèÔÔùÿH‹H‰EøH‹EøH‰Çè±úÿHcÐH‹EèH‰ÖH‰Çèìùÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�52ÒH‰Çè„ÔùÿH‹H‰EøH‹EøH‰Çèúÿ‰ÂH‹Eè‰ÖH‰Çè±úÿ¸ÉÃUH‰åH�ìP H‰½¸ßÿÿH‹…¸ßÿÿºH�5ÛÑH‰Çè-ÔùÿH‹H‰EðH‹…¸ßÿÿH‰Çè§ëùÿ‰EìÇEüé΋MüH‹…¸ßÿÿº‰ÎH‰Çè_âùÿH‰EàH‹EàH�5DÖH‰ÇèØ úÿ…Àu&H‹EðH‰Çè¸úÿHcÐH‹…¸ßÿÿH‰ÖH‰Çè#ëùÿépH‹EàH�5 ÖH‰Çè› úÿ…Àu&H‹EðH‰Çè;úÿHcÐH‹…¸ßÿÿH‰ÖH‰Çèæêùÿé3H‹EàH�5ÑÕH‰Çè^ úÿ…Àu&H‹EðH‰ÇèÎÔùÿHcÐH‹…¸ßÿÿH‰ÖH‰Çè©êùÿéöH‹EàH�5˜ÕH‰Çè! úÿ…Àu+H‹EðH‰ÇèÑÐùÿH‰EØH‹UØH‹…¸ßÿÿH‰ÖH‰Çè—Üùÿé´H‹EàH�5eÕH‰Çèß úÿ…Àu$H‹EðH‰ÇèŸâùÿ‰ÂH‹…¸ßÿÿ‰ÖH‰Çè úÿéyH‹EàH�55ÕH‰Çè¤ úÿ…ÀueH�•Àßÿÿ¸¹H‰×óH«H��ÀßÿÿH‹Eðº H‰ÎH‰ÇèŽúÿH‰ÂH‹…¸ßÿÿH‰ÖH‰Çè óùÿH‹…¸ßÿÿº¾ÿÿÿÿH‰ÇèÀÏùÿéýH‹EàH�5ÈÔH‰Çè( úÿ…ÀuDH‹Eð¾H‰ÇèÓúÿH‰ÂH‹…¸ßÿÿH‰ÖH‰Çè®òùÿH‹…¸ßÿÿº¾ÿÿÿÿH‰ÇèeÏùÿé¢H‹EàH�5¢ÒH‰ÇèÍúÿ…Àu&H‹EðH‰Çè=úÿHcÐH‹…¸ßÿÿH‰ÖH‰ÇèéùÿéeH‹EàH�5¤ÒH‰Çè�úÿ…Àu&H‹EðH‰Çè@áùÿHcÐH‹…¸ßÿÿH‰ÖH‰ÇèÛèùÿé(H‹EàH�5ÿÓH‰ÇèSúÿ…Àu?H‹EðH‰Çè3úÿH‰ÂH‹…¸ßÿÿH‰ÖH‰ÇèÞñùÿH‹…¸ßÿÿº¾ÿÿÿÿH‰Çè•ÎùÿéÒH‹EàH�5¶ÓH‰Çèýúÿ…Àu?H‹EðH‰ÇèÍãùÿH‰ÂH‹…¸ßÿÿH‰ÖH‰ÇèˆñùÿH‹…¸ßÿÿº¾ÿÿÿÿH‰Çè?Îùÿé|H‹EàH�5rÓH‰Çè§úÿ…Àu?H‹EðH‰ÇègúÿH‰ÂH‹…¸ßÿÿH‰ÖH‰Çè2ñùÿH‹…¸ßÿÿº¾ÿÿÿÿH‰ÇèéÍùÿé&H‹EàH�5*ÓH‰ÇèQúÿ…Àu?H‹EðH‰Çè!âùÿH‰ÂH‹…¸ßÿÿH‰ÖH‰ÇèÜðùÿH‹…¸ßÿÿº¾ÿÿÿÿH‰Çè“ÍùÿéÐH‹EàH�5†ÐH‰Çèûúÿ…Àu?H‹EðH‰Çè[íùÿH‰ÂH‹…¸ßÿÿH‰ÖH‰Çè†ðùÿH‹…¸ßÿÿº¾ÿÿÿÿH‰Çè=ÍùÿézH‹EàH�5‘ÒH‰Çè¥úÿ…Àu&H‹EðH‰Çè…ÞùÿHcÐH‹…¸ßÿÿH‰ÖH‰Çèðæùÿé=H‹EàH�5]ÒH‰Çèhúÿ…Àu&H‹EðH‰ÇèøúÿH‰ÂH‹…¸ßÿÿH‰ÖH‰Çè³æùÿéH‹EàH�50ÒH‰Çè+úÿ…À…�H‹EðH‰ÇèçúùÿH‰EÐHƒ}ÐteH‹EÐH‰Çè�óùÿHƒ}Ðt>H‹…¸ßÿÿ¾H‰ÇèµíùÿH‰ÂH‹EÐH‰H‹…¸ßÿÿºÿÿÿÿH�5•ËH‰Çè0Ëùÿé}H‹…¸ßÿÿH‰ÇèlèùÿéiH‹…¸ßÿÿH‰ÇèXèùÿéUH‹EàH�5‘ÑH‰Çè€úÿ…Àu+H‹EðH‰Çè ×ùÿH‰EÈH‹UÈH‹…¸ßÿÿH‰ÖH‰ÇèÆåùÿéH‹EàH�5]ÑH‰Çè>úÿ…Àu%H‹EðH‰Çè>Óùÿ‰ÂH‹…¸ßÿÿH‰ÖH‰ÇèŠåùÿé×H‹EàH�5'ÑH‰Çèúÿ…ÀuAH‹Eð¾H‰Çè­ÕùÿH‰ÂH‹…¸ßÿÿH‰ÖH‰ÇèˆîùÿH‹…¸ßÿÿº¾ÿÿÿÿH‰Çè?ËùÿëH‹EàH�5ØÐH‰Çèªúÿ…ÀuMH‹EðH‰Çè* úÿ…Àt H�®ÍëH�¬ÍH‹•¸ßÿÿH‰ÆH‰×è$îùÿH‹…¸ßÿÿº¾ÿÿÿÿH‰ÇèÛÊùÿë‹MüH‹…¸ßÿÿH�sЉÎH‰Çè.ÓùÿƒEü‹Eü;EìŽ&ùÿÿ‹EìƒèÉÃUH‰åHƒì`H‰}¨H‹E¨ºH�5°ÊH‰ÇèÍùÿH‹H‰EðH‹E¨H‰Çèäùÿ‰EìÇEøÇEüég‹MüH‹E¨º‰ÎH‰Çè3ÛùÿH‰EàH‹EàH�5ÏH‰Çè¬úÿ…Àu,‹Eü�PH‹E¨‰ÖH‰Çè$úÿ‰ÂH‹Eð‰ÖH‰Çè„àùÿ‰EøéíH‹EàH�5ØÎH‰Çèiúÿ…Àu,‹Eü�PH‹E¨‰ÖH‰Çèáúÿ‰ÂH‹Eð‰ÖH‰Çè!Ýùÿ‰EøéªH‹EàH�5™ÎH‰Çè&úÿ…Àu,‹Eü�PH‹E¨‰ÖH‰Çèžúÿ‰ÂH‹Eð‰ÖH‰ÇèÞÜùÿ‰EøégH‹EàH�5'ÏH‰Çèãúÿ…Àu;‹Eü�PH‹E¨H�5›ÈH‰ÇèÆËùÿH‹H‰EØH‹UØH‹EðH‰ÖH‰ÇèìÙùÿ‰EøéH‹EàH�5ÎH‰Çè‘úÿ…Àu-‹Eü�PH‹E¨‰ÖH‰Çèëùÿ‰EÔ‹UÔH‹Eð‰ÖH‰Çèe úÿéÑH‹EàH�5íÍH‰ÇèMúÿ…Àu8‹Eü�HH‹E¨º‰ÎH‰Çè°ÈùÿH‰EÈH‹UÈH‹EðH‰ÖH‰Çè¹àùÿ‰Eøé‚H‹EàH�5ÌH‰Çèþúÿ…Àu-‹Eü�PH‹E¨‰ÖH‰Çèvúÿ‰EÄ‹UÄH‹Eð‰ÖH‰Çè’ÿùÿé>H‹EàH�5ÎH‰Çèºúÿ…Àu0‹Eü�PH‹E¨‰ÖH‰Çè2úÿ‰EÀ‹UÀH‹Eð‰ÖH‰Çè>úÿ‰Eøé÷H‹EàH�5ÉÍH‰Çèsúÿ…Àu0‹Eü�PH‹E¨‰ÖH‰Çèëúÿ‰E¼‹U¼H‹Eð‰ÖH‰ÇèÐùÿ‰Eøé°H‹EàH�5=ÍH‰Çè,úÿ…Àu.‹Eü�PH‹E¨‰ÖH‰Çè¤úÿ‰E¸‹E¸HcÐH‹EðH‰ÖH‰ÇèüíùÿëkH‹EàH�5 ÍH‰Çèçúÿ…Àu<‹Eü�HH‹E¨º‰ÎH‰Çè:ØùÿH‰E°H‹U°H‹EðH‰Ñº¾7H‰ÇèéÓùÿë‹MüH‹E¨H�í̉ÎH‰ÇèÏùÿƒ}øt‹UøH‹E¨‰ÖH‰Çèè÷ùÿëƒEü‹Eü;EìŽ�üÿÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5éÆH‰Çè;ÉùÿH‹H‰EøH‹EøH‰ÇèÈúÿ‰Eô‹UôH‹MøH‹EèH‰ÎH‰Çè½ñÿÿÉÃUH‰åHƒì H‰}èH‹EèºH�5—ÆH‰ÇèéÈùÿH‹H‰EøH‹EøH‰Çè&úÿ‰Eô‹UôH‹MøH‹EèH‰ÎH‰ÇèkñÿÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5EÆH‰Çè—ÈùÿH‹H‰EðH‹EðH‰Çè$úÿHcÐH‹EؾH‰ÇèÐÎùÿ‰Eìƒ}ìt‹Eì븉Eì‹EìH˜H‰Çè�ûùÿH‰Eà‹UìH‹MàH‹EðH‰ÎH‰Çè3Äùÿ‰Eüƒ}ü~"‹EüHcÐH‹MàH‹EØH‰ÎH‰ÇèªÿÿÇEüë‹UüH‹MðH‹EØH‰ÎH‰Çè ðÿÿ‰EüH‹EàH‰Çè#õùÿ‹EüÉÃUH‰åHƒì0H‰}ØH‹EغH�5hÅH‰ÇèºÇùÿH‹H‰EðH‹EðH‰ÇèGúÿHcÐH‹EؾH‰ÇèóÍùÿ‰Eìƒ}ìt‹Eì븉Eì‹EìH˜H‰ÇèÀúùÿH‰Eà‹UìH‹MàH‹EðH‰ÎH‰Çèöéùÿ‰Eüƒ}ü~"‹EüHcÐH‹MàH‹EØH‰ÎH‰Çè+©ÿÿÇEüë‹UüH‹MðH‹EØH‰ÎH‰ÇèÃïÿÿ‰EüH‹EàH‰ÇèFôùÿ‹EüÉÃUH‰åHƒì0H‰}ØH‹EغH�5‹ÄH‰ÇèÝÆùÿH‹H‰EøH�UàH‹EؾH‰Çè1ÕùÿH‰EðH‹Eà‰ÂH‹MðH‹EøH‰ÎH‰ÇèÔúÿ‰Eìƒ}ì~‹EìHcÐH‹EØH‰ÖH‰ÇèöÝùÿ¸ë‹UìH‹MøH‹EØH‰ÎH‰ÇèïÿÿÉÃUH‰åHƒì H‰}èH‹EèºH�5ñÃH‰ÇèCÆùÿH‹H‰EøH‹EøH‰Çèðýùÿ‰Eô‹UôH‹MøH‹EèH‰ÎH‰ÇèÅîÿÿÉÃUH‰åHƒì H‰}èH‹EèºH�5ŸÃH‰ÇèñÅùÿH‹H‰EøH‹EøH‰Çè.Ðùÿ‰Eô‹UôH‹MøH‹EèH‰ÎH‰ÇèsîÿÿÉÃUH‰åHƒì H‰}èH‹EèºH�5MÃH‰ÇèŸÅùÿH‹H‰EøH‹EøH‰Çè Õùÿ‰Eô‹UôH‹MøH‹EèH‰ÎH‰Çè!îÿÿÉÃUH‰åHƒì H‰}èH‹EèºH�5ûÂH‰ÇèMÅùÿH‹H‰EøH‹EøH‰ÇèÊÀùÿ‰Eô‹UôH‹MøH‹EèH‰ÎH‰ÇèÏíÿÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5©ÂH‰ÇèûÄùÿH‹H‰EøH‹EؾH‰ÇèsÅùÿƒøÿu*H‹EøH‰ÇèÒîùÿ‰Eô‹UôH‹MøH‹EØH‰ÎH‰ÇègíÿÿéÃH‹EؾH‰Çèsúÿ…À„”H‹EØH� @(&º¾H‰Çèåùÿ‰Eðƒ}ðuH‹Eø¾H‰ÇèôÂùÿéiƒ}ðuH‹Eø¾H‰ÇèØÂùÿéMƒ}ðuH‹Eø¾H‰ÇèÌëùÿé1ƒ}ð…'H‹Eø¾H‰Çè¬ëùÿéH‹EؾH‰Çè†Äùÿƒø…ßH‹EؾH‰ÇèüÍùÿ‰Eìƒ}ìt!H‹EøH‰ÇèÇðùÿ‰ÂH‹E؉ÖH‰Çè úÿé�H‹EøH‰ÇèvÏùÿ‰Eèƒ}èu+H‹EØH�5™ºH‰Çè:äùÿH‹Eغ¾ÿÿÿÿH‰ÇèôÀùÿë]ƒ}èu+H‹EØH�5ÆÆH‰Çè äùÿH‹Eغ¾ÿÿÿÿH‰ÇèÃÀùÿë,ƒ}èuH‹EØH‰ÇèïÜùÿëH‹EØH�5’ÆH‰Ç¸è5éùÿ¸ëH‹EØH�£Æ¾H‰ÇèæÈùÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5yÀH‰ÇèËÂùÿH‹H‰EøH‹EøH‰ÇèøÊùÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5;ÀH‰Çè�ÂùÿH‹H‰EøH‹EøH‰Çè:Óùÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ý¿H‰ÇèOÂùÿH‹H‰EøH‹EøH‰Çè\öùÿH‰EðH‹EøH‰ÇèLÔùÿH‰EèHƒ}ðuHƒ}èt.H‹EØH‰ÇèÎÛùÿH‹Eغ'H�5ÖÅH‰Çèí£ÿÿ¸éŠH‹EøH‰Çè óùÿH‰EøHƒ}øtbHƒ}øt5H‹EؾH‰Çè�àùÿH‰ÂH‹EøH‰H‹EغÿÿÿÿH�5I¿H‰Çè ¾ùÿë H‹EØH‰ÇèMÛùÿH‹UøH‹EØH‰ÖH‰Çè úÿ¸ëH‹EؾH‰ÇèÒïùÿÉÃUH‰åHƒì H‰}èH‹EèºH�5ê¾H‰Çè<ÁùÿH‹H‰EøH‹EøH‰ÇèÉÃùÿ‰Eô‹UôH‹Eè‰ÖH‰Çèeúÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5˜¾H‰ÇèêÀùÿH‹H‰EøH‹EøH‰ÇèwÃùÿ‰Eôƒ}ô”À¶ÐH‹Eè‰ÖH‰Çè úÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5?¾H‰Çè‘ÀùÿH‹H‰EøH‹Eè¾H‰Çè ÁùÿƒøÿtaH‹EèºH�5żH‰Çè\ÀùÿH‹H‰EðH‹UðH‹EøH‰ÖH‰ÇèÒáùÿH‰EðH‹Eè¾H‰ÇèÍÚùÿH‹MøH‹EèH�нH‰ÎH‰ÇèâùÿH‹MøH‹EèH�¶½H‰ÎH‰Çè Òùÿ¸ÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5|½H‰ÇèοùÿH‹H‰EøH‹EȾH‰ÇèFÀùÿƒøÿu`H‹EøH‰ÇèE úÿH‰EðHƒ}ðt8H‹EȾH‰ÇèYÞùÿH‰ÂH‹EðH‰H‹EȺÿÿÿÿH�5à»H‰Çè×»ùÿéÊH‹EÈH‰ÇèÙùÿé¹H‹EȾH‰Çèúÿ…ÀtHH�UØH‹EȾH‰Çè—ÍùÿH‰EèH‹E؉ÂH‹MèH‹EøH‰ÎH‰Çèªùùÿ‰Eä‹UäH‹EȉÖH‰ÇèFúÿë\H‹EȺH�5U»H‰ÇèܾùÿH‹H‰EðH‹EȾH‰ÇèT¿ùÿƒøÿu'H‹UðH‹EøH‰ÖH‰ÇèLÜùÿ‰Eà‹UàH‹EȉÖH‰Çèèúÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5¼H‰Çèm¾ùÿH‹H‰EøH‹UøH‹EèH�5WÂH‰Ç¸è íùÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5Í»H‰Çè¾ùÿH‹H‰EøÇEìH�UìH�MðH‹EøH‰ÎH‰ÇèŠÏùÿ‹Eì…ÀuH‹EØH‰Çè§×ùÿë‹Eì‰ÂH‹MðH‹EØH‰ÎH‰ÇèÄŸÿÿ¸ÉÃUH‰åHƒì H‰}èH‹EèH�Ÿ!&H�5 ºH‰ÇèÀÓùÿH‹EèH�%#&H�5ÿ¹H‰Çè¦ÓùÿH‹EèH�«&H�5»H‰ÇèŒÓùÿH‹E躾H‰Çè6óùÿH‹EèºH�5–&H‰Ç赊ÿÿH‹EèH�C&¾ÿÿÿÿH‰Çè¦×ùÿÇEüëV‹EüH˜H�…H�ɺ‹HcÐH‹EèH‰ÖH‰ÇèdÔùÿ‹EüH˜H�ÅH�Ð&H‹H‹Eè¾þÿÿÿH‰ÇèÛÆùÿƒEü‹EüH˜H�ÅH�£&H‹H…Àu�H‹EèH�5·H‰ÇèGÝùÿH‹E躾ÿÿÿÿH‰ÇèºùÿH‹EèH�˜Á¾þÿÿÿH‰ÇèyÆùÿH‹EèH�5†¸H‰ÇèÝùÿH‹E躾ÿÿÿÿH‰ÇèÀ¹ùÿH‹EèH�_Á¾þÿÿÿH‰Çè8Æùÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰Çè;ÉùÿH‹Eð¶„Àu ‹Eü‰ÇèÃùÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Çè4ÓùÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çèè»ùÿƒøtbH‹Eø¾þÿÿÿH‰ÇèbûùÿH‹UèH‹uðH‹EøH� ¿ÀH‰Çè7ýùÿ…Àt H‹EøH‰Çè÷ÊùÿH‹Eø¾ÿÿÿÿH‰Çè¦ÕùÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰ÇèœÍùÿ‹Uà‹MäH‹Eø‰ÎH‰Çèèíùÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5/ÁH‰Ç¸è²àùÿH‹EøH�;Á¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰ÇèÕùÿò*EôH‹EøH‰ÇèR¼ùÿH‹Eø¾ýÿÿÿH‰ÇèÍùÿH‹EøA¸¹ºÛH�5Ö¿H‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çè%þùÿéå‹Uà‹MäH‹Eè‰ÎH‰ÇèÌÂùÿéÌH‹EèH�`À¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰ÇèÔùÿ‹UàH‹Eè‰ÖH‰ÇèõÓùÿH‹EèA¸¹ºH�5 ÀH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰ÇèAÃùÿ‰EüH‹Eè¾þÿÿÿH‰Çè-ùùÿ‹EüëH‹EèH�5í¿H‰Ç¸èßùÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�l¿¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çè:Óùÿ‹UüH‹Eè‰ÖH‰Çèéûùÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çèö¸ùÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çè^ÙùÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çèºùÿ龋MôH‹EøH�¿‰ÎH‰ÇèTÁùÿ…À…š‹UôH‹Eø‰ÖH‰ÇèûØùÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Ç讹ùÿëZ‹MôH‹EøH�´¾‰ÎH‰ÇèôÀùÿ…ÀuA‹UôH‹Eø‰ÖH‰Çè¸ùÿ‰ÂH‹Eø‰ÖH‰ÇèŸÔùÿH‰ÂH‹EøH�5�¾H‰Ç¸ètÝùÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰ÇèAëùÿ‹UüH‹Eè‰ÖH‰ÇèpÚùÿH‹Eè¾ÿÿÿÿH‰Çè·ùÿH‹Eè¾ÿÿÿÿH‰Çèn·ùÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�^½¾H‰Çè»H‹UØH‹EèH‰ÖH‰ÇèºêùÿH‹Eè¾þÿÿÿH‰Çè9Éùÿ‹UüH‹Eè‰ÖH‰ÇèèÒùÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèa·ùÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çè Öùÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè‹èùÿ…ÀuIHƒ}ètH‹UèH‹EøH�5å¼H‰Ç¸è´Ûùÿë$H‹EøºH�5Ú¼H‰ÇèEH‹EøH‰ÇèNÅùÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�í»¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰ÇèÉÕùÿH‹E躾ÿÿÿÿH‰Ç胲ùÿ‹UüH‹Eè‰ÖH‰ÇèÒüùÿH‹Eè¾ÿÿÿÿH‰ÇèqµùÿH‹Eè¾ÿÿÿÿH‰Çè`µùÿƒøu¸ëwH‹Eè¾þÿÿÿH‰ÇèÓôùÿH‹E躾H‰Çè}êùÿH‹UØH‹EèH‰ÖH‰Çè:ÕùÿH‹E躾ÿÿÿÿH‰Çèô±ùÿH‹Eè¾þÿÿÿH‰ÇèÏùÿ‹UüH‹Eè‰ÖH‰Çèrëùÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�Öº¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çèúóùÿ‹Eô…ÀuH‹EèH�50»H‰Ç¸èÛÙùÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�»‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰ÇèÔùÿH‹E躾ÿÿÿÿH‰ÇèÖ°ùÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèØÍùÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰ÇèRúÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰ÇèêùÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çèðòùÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�f¹¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰Çè ±ùÿH‹Eø¾ÿÿÿÿH‰Çè³ùÿH‹Eø¾þÿÿÿH‰Çè>üùÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè‡ëùÿH‰EøH‹EèH�츾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰ÇècÉùÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çèü°ùÿH‹Eè¾ÿÿÿÿH‰Çèk²ùÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰ÇèåÁùÿ‰EôH‹Eè¾ýÿÿÿH‰ÇèÑñùÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çè÷²ùÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çè²ùÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çèd±ùÿƒøt ¸éüH‹EøH‰ÇèyÊùÿéÍH‹Eø¾þÿÿÿH‰Çè3±ùÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çè¤Àùÿ…ÀtH‹Eø¾þÿÿÿH‰Çè�ðùÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çè™üùÿH‹EøºH�5÷H‰ÇèìH‹Eø¾þÿÿÿH‰ÇèÐÂùÿH‹Eø¾H‰Çè�ïùÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèðùÿH‹Eø¾þÿÿÿH‰Çèóùÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çè;Çùÿ‰EüH‹UàH‹EèH�55·H‰Çè±ßùÿH‹Eè¾îØÿÿH‰Çè Êùÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çè[ïùÿ¸ë‹UüH‹Eè‰ÖH‰ÇèCïùÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5ˆ¶H‰Ç¸è�ÝùÿéÜH‹EðH‹@¶H‹EèH‹@H‰Çèªùÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çèñ©ùÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çè ¾ùÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5¤®H‰ÇèH‹J°%H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5{®H‰Ç¸èÜÔùÿH‹…ÀïÿÿH�5d®H‰ÇèÖÒùÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5:®H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5Ë­H‰ÇèÆÌùÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5¢­H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰ÇèX¢ùÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰ÇèYîùÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çè=Éùÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çèƒäùÿ‹UüH‹…ÈïÿÿH�5¹¬H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çè”ðùÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H� ¬H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�ñ«H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çè¢åùÿÉÃUH‰åHƒì H‰}è‰uäH�æ«H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�’«H‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè¼´ùÿ‹UðH‹Eø‰ÖH‰Çè«´ùÿ‹UôH‹Eø‰ÖH‰ÇèZÝùÿ‹UðH‹Eø‰ÖH‰ÇèIÝùÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çè-±ùÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�¢¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�‹¡¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çè°ùÿH‹Eø¾þÿÿÿH‰ÇèV«ùÿ‹UôH‹Eø‰ÖH‰Çè¥Ïùÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Ç迳ùÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'è®ÀùÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çèð™ùÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�ª ‰ÎH‰Çè¡ùÿ…À…�‹UäH‹Eè‰ÖH‰Çè'˜ùÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5H H‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çèϱùÿé3‹UäH‹Eè‰ÖH‰Çè9¡ùÿ…ÀtH‹EèºH�5 H‰ÇèÈ÷ÿÿéH‹EèºH�5ìŸH‰Çè«÷ÿÿéä‹MäH‹EèH�ן‰ÎH‰Çèã½ùÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çè>—ùÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çè”ùÿë‹UüH‹Eè‰ÖH‰Ç襳ùÿH‰Eð‹UäH‹Eè‰ÖH‰Çè@ÇùÿH‰ÁH‹UðH‹EèH�5_ŸH‰Ç¸èÅùÿƒ}øtCH‹Eè¾þÿÿÿH‰ÇèŠÙùÿ�ë/H‹Eè¾ÿÿÿÿH‰Çèæ×ùÿ…ÀuH‹EèH�5ŸH‰Ç¸è¼ùÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çèb“ùÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�nž¾H‰ÇèÏßÿÿH‹EøH�àž¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çè””ùÿH‹Eø¾ÿÿÿÿH‰Çè–ùÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèzÕùÿH‹MèH‹EøºH‰ÎH‰Çè‚âùÿH‹UðH‹EøH‰ÖH‰ÇèßµùÿH‹Eøº¾ÿÿÿÿH‰Çè™’ùÿH‹Eøº¾H‰Çè#ÈùÿH‹Eø¾ÿÿÿÿH‰Çè’¯ùÿH‹UðH‹Eø¾ýÿÿÿH‰Çèížùÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çèf¯ùÿH‹UðH‹Eø¾îØÿÿH‰ÇèÁžùÿH‹Eø¾þÿÿÿH‰ÇèØùÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹UðH‹Eø¾ðØÿÿH‰Çè-ÝÿÿH‹Eø¾ÿÿÿÿH‰Çè÷”ùÿ…Àu+H‹Eøº¾H‰Çè-ÊùÿH‹UðH‹Eø¾ðØÿÿH‰Çè\ÝÿÿH‹Eø¾þÿÿÿH‰ÇèGÔùÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH‰ÇèÄ­ùÿH‹UðH‹Eø¾ðØÿÿH‰ÇèÝÿÿ¸ÉÃUH‰åHƒì H‰}øH‰uðH‰UèH‹UðH‹Eø¾ðØÿÿH‰ÇètÜÿÿH‹UèH‹EøH‰ÖH‰Çè\´ùÿH‹Eøº¾ÿÿÿÿH‰Çè‘ùÿH‹Eø¾ýÿÿÿH‰Çè%®ùÿH‹Eø¾ýÿÿÿH‰Çèô¯ùÿH‹Eø¾ýÿÿÿH‰ÇèƒÓùÿ¸ÉÃUH‰åHƒì H‰}øH‰uðH‰UèH‹UðH‹Eø¾ðØÿÿH‰ÇèèÛÿÿH‹Eø¾ÿÿÿÿH‰Ç貓ùÿ…Àt\H‹UèH‹EøH‰ÖH‰Ç軳ùÿH‹Eøº¾ÿÿÿÿH‰Çèu�ùÿH‹Eø¾þÿÿÿH‰ÇèT¶ùÿH‹Eø¾ÿÿÿÿH‰Çèc“ùÿH‹Eø¾þÿÿÿH‰Çè"ßùÿH‹Eø¾ÿÿÿÿH‰ÇèA“ùÿÉÃUH‰åHƒì H‰}øH‰uð‰UìH‹UðH‹Eø¾ðØÿÿH‰Çè<ÛÿÿH‹Eø¾þÿÿÿH‰Çè­ùÿ‹UìH‹Eø¾þÿÿÿH‰Çèb±ùÿH‹Eø¾ýÿÿÿH‰ÇèqÒùÿ¸ÉÃUH‰åHƒì H‰}øH‰uð‰UìH‹UðH‹Eø¾ðØÿÿH‰Çè×ÚÿÿH‹Eø¾ÿÿÿÿH‰Çè¡’ùÿ…Àt6‹UìH‹Eø¾ÿÿÿÿH‰Çè ™ùÿH‹Eø¾ÿÿÿÿH‰Çèx’ùÿH‹Eø¾þÿÿÿH‰Çè7ÞùÿH‹Eø¾ÿÿÿÿH‰ÇèV’ùÿÉÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰Çè|žùÿH‹Eð¶„Àu ‹Eü‰ÇèW˜ùÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Çèu¨ùÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè)‘ùÿƒøtbH‹Eø¾þÿÿÿH‰Çè£ÐùÿH‹UèH‹uðH‹EøH� À™H‰ÇèxÒùÿ…Àt H‹EøH‰Çè8 ùÿH‹Eø¾ÿÿÿÿH‰ÇèçªùÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰ÇèÝ¢ùÿ‹Uà‹MäH‹Eø‰ÎH‰Çè)Ãùÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�50šH‰Ç¸èóµùÿH‹EøH�<š¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰ÇèDªùÿò*EôH‹EøH‰Çè“‘ùÿH‹Eø¾ýÿÿÿH‰ÇèB¢ùÿH‹EøA¸¹ºÛH�5טH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰ÇèfÓùÿéå‹Uà‹MäH‹Eè‰ÎH‰Çè ˜ùÿéÌH‹EèH�a™¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰ÇèG©ùÿ‹UàH‹Eè‰ÖH‰Çè6©ùÿH‹EèA¸¹ºH�5 ™H‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Ç肘ùÿ‰EüH‹Eè¾þÿÿÿH‰ÇènÎùÿ‹EüëH‹EèH�5î˜H‰Ç¸èQ´ùÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�m˜¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çè{¨ùÿ‹UüH‹Eè‰ÖH‰Çè*Ñùÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè7ŽùÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Ç蟮ùÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèR�ùÿ龋MôH‹EøH�˜‰ÎH‰Çè•–ùÿ…À…š‹UôH‹Eø‰ÖH‰Çè<®ùÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèïŽùÿëZ‹MôH‹EøH�µ—‰ÎH‰Çè5–ùÿ…ÀuA‹UôH‹Eø‰ÖH‰ÇèP�ùÿ‰ÂH‹Eø‰ÖH‰Çèà©ùÿH‰ÂH‹EøH�5‚—H‰Ç¸èµ²ùÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çè‚Àùÿ‹UüH‹Eè‰ÖH‰Ç豯ùÿH‹Eè¾ÿÿÿÿH‰ÇèÀŒùÿH‹Eè¾ÿÿÿÿH‰Ç诌ùÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�_–¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çèû¿ùÿH‹Eè¾þÿÿÿH‰Çèzžùÿ‹UüH‹Eè‰ÖH‰Çè)¨ùÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Ç袌ùÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰ÇèK«ùÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè̽ùÿ…ÀuIHƒ}ètH‹UèH‹EøH�5æ•H‰Ç¸èõ°ùÿë$H‹EøºH�5Û•H‰ÇèEH‹EøH‰Çè�šùÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè «ùÿH‹E躾ÿÿÿÿH‰Çèćùÿ‹UüH‹Eè‰ÖH‰ÇèÒùÿH‹Eè¾ÿÿÿÿH‰Ç貊ùÿH‹Eè¾ÿÿÿÿH‰Ç衊ùÿƒøu¸ëwH‹Eè¾þÿÿÿH‰ÇèÊùÿH‹E躾H‰Ç辿ùÿH‹UØH‹EèH‰ÖH‰Çè{ªùÿH‹E躾ÿÿÿÿH‰Çè5‡ùÿH‹Eè¾þÿÿÿH‰ÇèD¤ùÿ‹UüH‹Eè‰ÖH‰Çè³Àùÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�ד¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè;Éùÿ‹Eô…ÀuH‹EèH�51”H‰Ç¸è¯ùÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�”‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰Çè]©ùÿH‹E躾ÿÿÿÿH‰Çè†ùÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè£ùÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè“Õùÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Çè[¿ùÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè1Èùÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�g’¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰Çèá†ùÿH‹Eø¾ÿÿÿÿH‰ÇèPˆùÿH‹Eø¾þÿÿÿH‰ÇèÑùÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèÈÀùÿH‰EøH‹EèH�푾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Ç褞ùÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çè=†ùÿH‹Eè¾ÿÿÿÿH‰Ç謇ùÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çè&—ùÿ‰EôH‹Eè¾ýÿÿÿH‰ÇèÇùÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çè8ˆùÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çèˆùÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Ç襆ùÿƒøt ¸éüH‹EøH‰Ç躟ùÿéÍH‹Eø¾þÿÿÿH‰Çèt†ùÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çèå•ùÿ…ÀtH‹Eø¾þÿÿÿH‰ÇèÐÅùÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰ÇèÚÑùÿH‹EøºH�5Ä�H‰ÇèìH‹Eø¾þÿÿÿH‰Çè˜ùÿH‹Eø¾H‰ÇèÐÄùÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèHÅùÿH‹Eø¾þÿÿÿH‰ÇèWÈùÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çè|œùÿ‰EüH‹UàH‹EèH�56�H‰Çèò´ùÿH‹Eè¾îØÿÿH‰ÇèaŸùÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰ÇèœÄùÿ¸ë‹UüH‹Eè‰ÖH‰Çè„Äùÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5‰�H‰Ç¸èÞ²ùÿéÜH‹EðH‹@¶H‹EèH‹@H‰ÇèQùÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè2ùÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèM“ùÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5¥‡H‰ÇèH‹‹…%H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5|‡H‰Ç¸èªùÿH‹…ÀïÿÿH�5e‡H‰Çè¨ùÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5;‡H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5̆H‰Çè¢ùÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5£†H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè™wùÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰ÇèšÃùÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çè~žùÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰ÇèĹùÿ‹UüH‹…ÈïÿÿH�5º…H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰ÇèÕÅùÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H� …H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�ò„H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèãºùÿÉÃUH‰åHƒì H‰}è‰uäH�ç„H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�“„H‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çèý‰ùÿ‹UðH‹Eø‰ÖH‰Çèì‰ùÿ‹UôH‹Eø‰ÖH‰Ç蛲ùÿ‹UðH‹Eø‰ÖH‰Ç芲ùÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çèn†ùÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�{¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�Œz¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰ÇèX…ùÿH‹Eø¾þÿÿÿH‰Çè—€ùÿ‹UôH‹Eø‰ÖH‰Çèæ¤ùÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè‰ùÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èï•ùÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çè1oùÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�«y‰ÎH‰ÇèQvùÿ…À…�‹UäH‹Eè‰ÖH‰Çèhmùÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5IyH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè‡ùÿé3‹UäH‹Eè‰ÖH‰Çèzvùÿ…ÀtH‹EèºH�5yH‰ÇèÈ÷ÿÿéH‹EèºH�5íxH‰Çè«÷ÿÿéä‹MäH‹EèH�Øx‰ÎH‰Çè$“ùÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çèlùÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰ÇèIiùÿë‹UüH‹Eè‰ÖH‰ÇèæˆùÿH‰Eð‹UäH‹Eè‰ÖH‰Çè�œùÿH‰ÁH‹UðH‹EèH�5`xH‰Ç¸èBšùÿƒ}øtCH‹Eè¾þÿÿÿH‰ÇèË®ùÿ�ë/H‹Eè¾ÿÿÿÿH‰Çè'­ùÿ…ÀuH‹EèH�5 xH‰Ç¸è[‘ùÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè£hùÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�ow¾H‰ÇèÏßÿÿH‹EøH�áw¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèÕiùÿH‹Eø¾ÿÿÿÿH‰ÇèDkùÿ…À…ŽH‹Eø¾þÿÿÿH‰Ç軪ùÿH‹MèH‹EøºH‰ÎH‰Çè÷ùÿH‹UðH‹EøH‰ÖH‰Çè ‹ùÿH‹Eøº¾ÿÿÿÿH‰ÇèÚgùÿH‹Eøº¾H‰Çèd�ùÿH‹Eø¾ÿÿÿÿH‰ÇèÓ„ùÿH‹UðH‹Eø¾ýÿÿÿH‰Çè.tùÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè§„ùÿH‹UðH‹Eø¾îØÿÿH‰ÇètùÿH‹Eø¾þÿÿÿH‰ÇèA­ùÿ�ÉÃUH‰åHƒì0H‰}ØH‰uÐH‹Eغ¾H‰Ç蘟ùÿÇEüþÿÿÿH‹EЋHcÐH‹EØH‰ÖH‰Çè �ùÿ‹MüH‹EØH��v‰ÎH‰Çè‘sùÿÇEøþÿÿÿH‹EЋ@HcÐH‹EØH‰ÖH‰ÇèÑ€ùÿ‹MøH‹EØH�]v‰ÎH‰ÇèYsùÿÇEôþÿÿÿH‹EЋ@HcÐH‹EØH‰ÖH‰Ç虀ùÿ‹MôH‹EØH�+v‰ÎH‰Çè!sùÿÇEðþÿÿÿH‹EÐH‹PH‹EØH‰ÖH‰Ç裉ùÿH‹Eغ¾ÿÿÿÿH‰Çè]fùÿ‹MðH‹EØH�åu‰ÎH‰ÇèÕrùÿÇEìþÿÿÿH‹EÐH‹P H‹EØH‰ÖH‰ÇèW‰ùÿH‹Eغ¾ÿÿÿÿH‰Çèfùÿ‹MìH‹EØH�žu‰ÎH‰Çè‰rùÿ¸ÉÃUH‰åHƒìPH‰}¸H‹E¸¾H‰Çèåhùÿ‰Eüƒ}üÿt&ƒ}üt ƒ}ütH‹E¸H�]u¾H‰Çènùÿ…À�ÇEüH‹E¸¾H‰Çè�hùÿƒøÿuwèc£ùÿ‰EôH‹E¸º¾H‰ÇèÊ�ùÿÇEøë<‹Eø‰ÇèwžùÿH‰EèH‹UèH‹E¸H‰ÖH‰Çèâýÿÿ‹Eø�PH‹E¸¾þÿÿÿH‰Ç詆ùÿƒEø‹Eø;Eô|¼ÇEüéÕH‹E¸¾H‰Ç耇ùÿ…ÀtTH‹E¸º¾H‰ÇèS÷ÿÿ‰Çè³ùÿ‰Eäƒ}䈖‹Eä‰Çèè�ùÿH‰EØH‹UØH‹E¸H‰ÖH‰ÇèSýÿÿÇEüëlH‹E¸¾H‰Çèç¨ùÿ…ÀtWH‹E¸º¾H‰Çè}dùÿH‰EÐH‹EÐH‰Çè��ùÿ‰Ẽ}Ìx(‹ẺÇèz�ùÿH‰EÀH‹UÀH‹E¸H‰ÖH‰ÇèåüÿÿÇEü‹EüÉÃUH‰åHƒì0H‰}ØH‹EØH� ðÌ%H�ùs¾H‰Çè‡ùÿ‰EìÇEøƒ}섵ƒ}ì„Lƒ}ì…ŠH‹Eغ¾H‰Çè.œùÿÇEü‹EüHcÐH‰ÐHÀHÐHÁàH�ýg%HÐH‰EðëOH‹UðH‹EØH‰ÖH‰Çèq¢ùÿ‹Eü�PH‹EؾþÿÿÿH‰Çèú„ùÿƒEü‹EüHcÐH‰ÐHÀHÐHÁàH�¬g%HÐH‰EðH‹Eð‹ƒøÿu¦ÇEøH‹Eغ¾H‰Çè�›ùÿÇEü‹EüHcÐH‰ÐHÀHÐHÁàH�\h%HÐH‰EðëOH‹UðH‹EØH‰ÖH‰ÇèСùÿ‹Eü�PH‹EؾþÿÿÿH‰ÇèY„ùÿƒEü‹EüHcÐH‰ÐHÀHÐHÁàH� h%HÐH‰EðH‹Eð‹ƒøÿu¦ÇEøÇEè H‹Eغ¾H‰ÇèåšùÿÇEüé ‹EüH˜H�…H�•~‹‰EäH‹Eغ¾H‰Ç詚ùÿ‹Eä‰Çè­ùÿH‰ÂH‹EØH‰ÖH‰Çè]…ùÿH‹Eغ¾ÿÿÿÿH‰ÇèbùÿH‹EØH�r¾þÿÿÿH‰Çè�nùÿ‹Eä‰ÇèåŒùÿH‰ÂH‹EØH‰ÖH‰Çè…ùÿH‹Eغ¾ÿÿÿÿH‰ÇèÍaùÿH‹EØH�]q¾þÿÿÿH‰ÇèEnùÿ‹EäHcÐH‹EØH‰ÖH‰Çè�{ùÿH‹EØH�”q¾þÿÿÿH‰Çènùÿ‹Eü�PH‹EؾþÿÿÿH‰Çèñ‚ùÿƒEü‹Eü;EèŒèþÿÿÇEø‹EøÉÃUH‰åHƒì H‰}èH‹Eè¾H‰ÇèH²ùÿ‰Eü‹EüH˜H‰ÇèÈ{ùÿH‰EðH‹UðH‹EèH‰ÖH‰ÇèA„ùÿH‹E躾ÿÿÿÿH‰Çèû`ùÿ¸ÉÃUH‰åHƒì0H‰}ØHÇEøH‹EؾH‰Çè¦ùÿH‰EèH‹EØH‹Xm%H‰ÑH�¹p¾H‰Ç蹃ùÿ‰EôÇEðƒ}ôuH‹EèH‰Çèíšùÿ…Àt¸ë¸‰Eôƒ}ôuH‹Eè¾H‰ÇètùÿH‰Eøë%ƒ}ôuH‹E蹺¾H‰Çèü©ùÿH‰EøH‹EèH‰Ç蜉ùÿHƒ}øtOHƒ}øt5H‹EؾH‰Çè]�ùÿH‰ÂH‹EøH‰H‹EغÿÿÿÿH�5ûoH‰ÇèÛ^ùÿë H‹EØH‰Çè|ùÿÇEðƒ}ðt‹UðH‹E؉ÖH‰Çè¯�ùÿë¸ÉÃUH‰åSHƒìxH‰}ˆÇEìÇEèH‹EˆH‰ÇèŸyùÿ‰Eàèç]ùÿH‰EØH‹EؾH‰Çèâlùÿ‰Eèƒ}è…W‹UìH‹EˆH�5loH‰Çèß«ùÿH…Àu.‹UìH‹Eˆ‰ÖH‰Ç艣ùÿ…Àu‹UìH‹Eˆ‰ÖH‰Çè¤�ùÿ…À„‹UìH‹Eˆ‰ÖH‰ÇèkfùÿH‰EÐH‹EоH‰Çèv}ùÿH‰EÈH‹EÐH‰Çè6–ùÿH‹UÈH‹EØH‰ÖH‰Çè³›ùÿ‰EèH‹EÈH‰Çè4vùÿƒEìé­ƒ}è…G‹UìH‹EˆH�5ÃnH‰Çè+«ùÿH…À„(‹UìH‹EˆH�5¤nH‰Çèü`ùÿH‹H‰EÀH‹EÀH‰Çè)ˆùÿH‰E¸H‹U¸H‹EØH‰ÖH‰ÇèÒ˜ùÿ‰Eèƒ}è…ŸH‹EÀH‰Çèé­ùÿH‰E°H‹E°H‰ÇèÏÿÿH‰ÇèAoùÿ‰E¬ÇEäë8H‹E°H‰ÇèýÎÿÿH‰Â‹E䉯H‰×èé‘ùÿH‰Á‹UäH‹EØH‰ÎH‰ÇèÄhùÿ‰EèƒEäƒ}èu‹Eä;E¬|ºH‹j%H‰ÇèÐÎÿÿH‰ÃH‹E°H‰Çè³ÎÿÿH‰ÞH‰Çèf¥ùÿƒ}èu2H‹EÀH‰ÇèÔlùÿH‰E H‹U H‹EØH‰ÖH‰Çètùÿ‰EèH‹E H‰Çè¾tùÿƒEìƒ}èuR‹UìH‹EˆH�5‡mH‰ÇèÞ©ùÿH…Àt7‹UìH‹EˆH�5lmH‰Çè³_ùÿH‹H‰E˜H‹U˜H‹EØH‰ÖH‰Çè™—ùÿ‰EèƒEìƒEì‹Eì;Eà ƒ}è„Aþÿÿƒ}èuJHƒ}Øt5H‹Eˆ¾H‰Çè.~ùÿH‰ÂH‹EØH‰H‹EˆºÿÿÿÿH�5ÌlH‰Çè¬[ùÿë.H‹EˆH‰Çèîxùÿë H‹EØH‰Çè oùÿ‹UèH‹Eˆ‰ÖH‰Çè�ùÿ‰Eè‹EèHƒÄx[]ÃUH‰åHƒì H‰}èH‰uàHƒ}àuH‹EèH‰ÇèŸxùÿ¸éˆH‹E躾H‰Ç蟔ùÿH‹Eà‹ƒø‡‰ÀH�…H�'m‹H˜H�mHÐÿàH‹EàH‹@H‰EøH‹E躾H‰ÇèL”ùÿH‹EøH‹H‹EèH‰ÖH‰Çèæ—ùÿH‹EøH‹@H‹HH‹EèºÿÿÿÿH‰ÎH‰Ç膧ùÿH‹Eè¾ýÿÿÿH‰ÇèE•ùÿH‹EèH�l¾þÿÿÿH‰ÇèhùÿH‹EèH�5ìkH‰Çèª~ùÿH‹E躾ÿÿÿÿH‰Çèd[ùÿH‹EèH�Ík¾þÿÿÿH‰ÇèÜgùÿéuH‹EàH‹HH‹EèºÿÿÿÿH‰ÎH‰Çèû¦ùÿH‹EèH�™k¾þÿÿÿH‰Çè£gùÿH‹EèH�5�kH‰Çè0~ùÿH‹E躾ÿÿÿÿH‰ÇèêZùÿH‹EèH�Sk¾þÿÿÿH‰ÇèbgùÿéûH‹EàH‹HH‹EèºÿÿÿÿH‰ÎH‰Çè�¦ùÿH‹EèH�*k¾þÿÿÿH‰Çè)gùÿH‹EèH�5kH‰Çè¶}ùÿH‹E躾ÿÿÿÿH‰ÇèpZùÿH‹EèH�Ùj¾þÿÿÿH‰Çèèfùÿé�H‹EàH‹HH‹EèºÿÿÿÿH‰ÎH‰Çè¦ùÿH‹EèH�¸j¾þÿÿÿH‰Çè¯fùÿH‹EèH�5 jH‰Çè<}ùÿH‹E躾ÿÿÿÿH‰ÇèöYùÿH‹EèH�_j¾þÿÿÿH‰ÇènfùÿéH‹EàH‹@H‰EðH‹UðH‹EèH‰ÖH‰Çè€ùÿH‹EèH�Gj¾þÿÿÿH‰Çè2fùÿH‹EèH�5/jH‰Çè¿|ùÿH‹E躾ÿÿÿÿH‰ÇèyYùÿH‹EèH�âi¾þÿÿÿH‰ÇèñeùÿéŠH‹EàH‹HH‹EèºÿÿÿÿH‰ÎH‰Çè¥ùÿH‹EèH�Ûi¾þÿÿÿH‰Çè¸eùÿH‹EèH�5ÃiH‰ÇèE|ùÿH‹E躾ÿÿÿÿH‰ÇèÿXùÿH‹EèH�hi¾þÿÿÿH‰ÇèweùÿéH‹EàH‹HH‹EèºH‰ÎH‰Çè–¤ùÿH‹EèH�{i¾þÿÿÿH‰Çè>eùÿH‹EèH�5ciH‰ÇèË{ùÿH‹E躾ÿÿÿÿH‰Çè…XùÿH‹EèH�îh¾þÿÿÿH‰Çèýdùÿé–H‹E躾H‰Çè²�ùÿH‹EàH‹@H‹H‹EèºÿÿÿÿH‰ÎH‰Çè¤ùÿH‹EèH�òh¾þÿÿÿH‰Çè«dùÿH‹EàH‹@H‹HH‹EèºÿÿÿÿH‰ÎH‰ÇèË£ùÿH‹EèH�Çh¾þÿÿÿH‰ÇèsdùÿH‹EèH�¹h¾þÿÿÿH‰Çè[dùÿH‹EèH�5¡hH‰ÇèèzùÿH‹E躾ÿÿÿÿH‰Çè¢WùÿH‹EèH� h¾þÿÿÿH‰Çèdùÿé³H‹EàH‹PH‹EèH‰ÖH‰Çè~“ùÿH‹EèH�Qh¾þÿÿÿH‰ÇèæcùÿH‹EèH�59hH‰ÇèszùÿH‹E躾ÿÿÿÿH‰Çè-WùÿH‹EèH�–g¾þÿÿÿH‰Çè¥cùÿëAH‹EèH�5hH‰Çè0zùÿH‹E躾ÿÿÿÿH‰ÇèêVùÿH‹EèH�Sg¾þÿÿÿH‰Çèbcùÿ¸ÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰Mäƒ}äuH‹Eøº¾H‰ÇèøŽùÿë‹UäH‹Eø‰ÖH‰ÇèöÇÿÿ‰EäHƒ}ð„ŽH‹EðH‰Çè gùÿH‰EðH‹EøºH�5ƒgH‰ÇèYäÿÿHƒ}ðt5H‹Eø¾H‰Çè‡wùÿH‰ÂH‹EðH‰H‹EøºÿÿÿÿH�5QgH‰ÇèUùÿë H‹EøH‰ÇèGrùÿƒ}ät‹Eäë¸ýÿÿÿH‹Uø‰ÆH‰×èétùÿHƒ}ètVH‹EøºH�5gH‰ÇèÔãÿÿH‹Eè‹HcÐH‹EèH‹HH‹EøH‰ÎH‰Çè´ãÿÿƒ}ät‹Eäë¸ýÿÿÿH‹Uø‰ÆH‰×èŒtùÿƒ}ä”À¶ÀÉÃUH‰åHƒì0H‰}èH‰uàH‰U؉MÔÇEüè�tùÿH‰EðHƒ}ð„�H‹Eè¾@H‰Çè rùÿH‹MØH‹UàH‹uèH‹EðH‰ÇèÕlùÿƒøuDƒ}Ô~‹UÔH‹Eð‰ÖH‰ÇèIyùÿH‹EðH‰Çè rùÿ‰Eüƒ}üu ÇEüëH‹EðH‰Çèïpùÿ‰EüH‹EðH‰Çè°¥ùÿH‹EðH‰Çè„“ùÿ‹Eüë¸ÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5¤dH‰ÇèWùÿH‹H‰EðH‹EÈH‹a%H‰ÑH�Ãe¾H‰Çè{wùÿ‰EìHÇEàÇEüè”vùÿH‰Ç輘ùÿH‰Eàƒ}ìuH‹UðH‹EàH‰ÖH‰Çèÿ„ùÿëH‹UðH‹EàH‰ÖH‰ÇèZ�ùÿ‰Eüƒ}ütBH�UØH‹EàH‰Ñº¾sH‰ÇètYùÿH‹EØH‹H‹EØH‹HH‹EÈH‰ÎH‰ÇèàáÿÿÇEüH‹EàH‰Çè3}ùÿ‹EüÉÃUH‰åH�ì°H‰½XÿÿÿH‹…XÿÿÿºH�5¡cH‰ÇèVùÿH‹H‰EðH‹…Xÿÿÿ¾H‰Çè†VùÿƒøÿuH‹EðH‰Çèå|ùÿëH‹…Xÿÿÿ¾H‰Çèï_ùÿ‰EìH‹…Xÿÿÿº¾H‰Çè“‹ùÿÇEèþÿÿÿH‹EðH‰ÇèPƒùÿH‰ÂH‹…XÿÿÿH‰ÖH‰Çèûlùÿ‹MèH‹…XÿÿÿH�Id‰ÎH‰Çè€_ùÿH‹EðH‰Çè}ùÿH‰ÂH‹…XÿÿÿH‰ÖH‰Çè/yùÿH‹…XÿÿÿH�d¾þÿÿÿH‰ÇèD_ùÿH‹EðH‰ÇèzùÿH‰ÂH‹…XÿÿÿH‰ÖH‰ÇèóxùÿH‹…XÿÿÿH�äc¾þÿÿÿH‰Çè_ùÿH‹EðH‰ÇèÇEÔþÿÿÿ‹EŒHcÐH‹MØH‹…XÿÿÿH‰ÎH‰Çè®Þÿÿ‹MÔH‹…XÿÿÿH�$b‰ÎH‰Çè]ùÿÇEÐþÿÿÿH‹EðH‰Çèöyùÿ‰ÂH‹…Xÿÿÿ‰ÖH‰Çè3˜ùÿ‹MÐH‹…XÿÿÿH�éa‰ÎH‰ÇèØ\ùÿH‹…Xÿÿÿº¾H‰Çè�ˆùÿÇEüé�‹Eü‰Çè9‰ùÿH‰EÈH‹EÈH‰ÇèIxùÿ‰EÄH‹EÈH‰ÇèúTùÿH‰E¸‹Uì‹MÄH‹Eð‰ÎH‰ÇèBŸùÿ‰E´ƒ}´t3ÇE°þÿÿÿH‹…Xÿÿÿ¾H‰Ç莗ùÿH‹U¸‹M°H‹…Xÿÿÿ‰ÎH‰Çè6\ùÿƒEüè}�ùÿ9EüŒqÿÿÿH‹…XÿÿÿH� a¾þÿÿÿH‰Çè \ùÿH‹EðH‰Çè}Vùÿ‰E¬ƒ}¬ŽH‹…XÿÿÿH�5õ`H‰ÇèzrùÿH‹…Xÿÿÿº¾ÿÿÿÿH‰Çè1OùÿH‹…Xÿÿÿº¾H‰Çèx‡ùÿÇEüé©‹UüH‹Eð‰ÖH‰ÇèË�ùÿH‰E H‹E H‰ÇèûfùÿH‰E ‹EüƒÀHcÐH‹…XÿÿÿH‰ÖH‰Çè¼hùÿHƒ} t;H‹…Xÿÿÿ¾H‰ÇèpùÿH‰ÂH‹E H‰H‹…XÿÿÿºÿÿÿÿH�5B`H‰Çè|MùÿëH‹…XÿÿÿH‰Çè»jùÿH‹…Xÿÿÿ¾ýÿÿÿH‰ÇègmùÿƒEü‹Eü;E¬ŒKÿÿÿH‹…Xÿÿÿ¾ýÿÿÿH‰ÇèCmùÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5(^H‰Çè˜PùÿH‹H‰EøH‹EøH‰Çèaùÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ê]H‰ÇèZPùÿH‹H‰EøH‹EؾH‰ÇèÒPùÿƒøÿu_H‹EøH‰Ç豑ùÿH‰EðHƒ}ðt5H‹EؾH‰ÇèånùÿH‰ÂH‹EðH‰H‹EغÿÿÿÿH�5@_H‰ÇècLùÿë H‹EØH‰Çè¥iùÿ¸ëFH‹EغH�5_H‰ÇèÆOùÿH‹H‰EèH‹UèH‹EøH‰ÖH‰ÇèÌcùÿ‰Eä‹UäH‹E؉ÖH‰Çè~ùÿÉÃUH‰åSHƒìXH‰}¨H‹E¨ºH�5]H‰ÇèqOùÿH‹H‰EàH‹E¨ºH�5Ÿ^H‰Çèb™ùÿH…ÀtLH‹E¨ºH�5‚^H‰Çè5OùÿH‹H‰EØH‹UØH‹EàH‰ÖH‰Çè»fùÿ‰ÂH‹E¨‰ÖH‰Çè[”ùÿ¸é<H‹E¨ºH�5G^H‰ÇèéNùÿH‹H‰EÐH‹E¨¾H‰ÇèaOùÿ…À~H‹E¨¾H‰Ç茕ùÿë¸H‰EÈÇEìÇEÄH‹E¨¾H‰Çè"OùÿƒøÿtLH‹E¨¹H�æ]¾H‰ÇèeùÿH‰Çèxùÿ‰EÀƒ}Àx‹EÀ‰Çèõ„ùÿH‰E¸Hƒ}¸t H‹E¸‹‰Eì‹MìH‹UÈH‹uàH‹EÐH‰Çè*öÿÿ‰EÄHƒ}Èt)H‹X%H‰Çèw¼ÿÿH‰ÃH‹EÈH‰ÇèZ¼ÿÿH‰ÞH‰Çè7“ùÿƒ}Ä”À¶ÐH‹E¨‰ÖH‰Çè/“ùÿ‹EÄHcÐH‹E¨H‰ÖH‰Çè:eùÿ¸HƒÄX[]ÃUH‰åHƒì H‰}ø‰uôH‰Uèƒ}ôÿ„“ƒ}ôyƒ}ôþ„®éÔƒ}ôt[ƒ}ô…ÄH‹Eø¾H‰Çè»’ùÿHƒ}è„ÒH‹UèH‹EøH‰ÖH‰ÇèýmùÿH‹Eøº¾ÿÿÿÿH‰Çè·JùÿÇEôé�H‹Eø¾H‰Çèj’ùÿÇEôé�H‹EøH‰ÇèÂfùÿH‹EøºH�5_\H‰ÇètØÿÿÇEôH‹EøH‰Çè—fùÿH‹Eøº H�5=\H‰ÇèIØÿÿÇEôH‹EøH‰Çèlfùÿ‹EôHcÐH‹EøH‰ÖH‰ÇèdùÿÇEôë�‹EôÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5ôYH‰ÇèdLùÿH‹H‰EøH�UàH‹EȾH‰Çè¸ZùÿH‰EðH‹EȺ¾H‰ÇèŽRùÿ‰EìHÇEØ‹MìH‹UàH�}ØH‹uðH‹EøI‰øH‰Çèu™ùÿ‰EèH‹UØ‹MèH‹EȉÎH‰Çè/þÿÿ‰EèH‹EغH�5Z[H‰ÇèBbùÿ‹EèÉÃUH‰åHƒì0H‰}ØH‹EغH�59YH‰Çè©KùÿH‹H‰EøH�UàH‹EؾH‰ÇèýYùÿH‰EðH‹Eغ¾H‰ÇèÓQùÿ‰Eì‹MìH‹UàH‹uðH‹EøH‰Çè¹_ùÿ‰Eè‹MèH‹Eغ‰ÎH‰Çè‚ýÿÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5ªXH‰ÇèKùÿH‹H‰EøH‹Eغ¾H‰ÇèmYùÿH‰EðH‹Eغ¾H‰ÇèCQùÿ‰Eì‹UìH‹MðH‹EøH‰ÎH‰Çèfùÿ‰Eè‹MèH‹Eغ‰ÎH‰ÇèóüÿÿÉÃUH‰åSHƒì8H‰}ȉuÄ‹UÄH‹EȉÖH‰ÇèKùÿƒøt‹MÄH‹EÈH� Z‰ÎH‰ÇèaPùÿ…À�èi•ùÿH‰Eà‹UÄH‹EȉÖH‰ÇèäJùÿƒø…º‹UÄH‹EȉÖH‰ÇèZkùÿ‰EÜÇEì鎋Eì�P‹MÄH‹EȉÎH‰Çè$QùÿH‹EȾÿÿÿÿH‰Çè“JùÿH‹EȺÿÿÿÿH�5{WH‰ÇèëIùÿH‹H‰EÐH‹EÐH‰ÇèhnùÿH‹EÐH‰Çè¸ÿÿH‰ÃH‹EàH‰Çè¸ÿÿH‰ÞH‰ÇèbeùÿH‹EȾþÿÿÿH‰ÇèÁ‰ùÿƒEì‹Eì;EÜŒfÿÿÿH‹EàHƒÄ8[]ÃUH‰åHƒì H‰}èH‰uàÇEüÇEøH‹E躾H‰Çè2ùÿH‹EàH‰Çè�·ÿÿH‰ÇèÞWùÿ‰EøÇEüé�H‹EàH‰Çèm·ÿÿH‰Â‹Eü‰ÆH‰×èƒzùÿH‰EðH‹EðH‰Çè“mùÿHƒ}ðt5H‹Eè¾H‰Çè»gùÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5YVH‰Çè9Eùÿë H‹EèH‰Çè{bùÿ‹Eü�PH‹Eè¾þÿÿÿH‰Çè¤gùÿƒEü‹Eü;EøŒeÿÿÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ùUH‰ÇèiHùÿH‹H‰EøH‹EؾH‰ÇèáHùÿƒøÿu%H‹EøH‰ÇèðoùÿH‰EðH‹UðH‹EØH‰ÖH‰Çè lùÿëFH‹EغH�5ÈUH‰ÇèHùÿH‹H‰EèH‹UèH‹EøH‰ÖH‰Çèõùÿ‰Eä‹UäH‹E؉ÖH‰ÇèQvùÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5KUH‰Çè»GùÿH‹H‰EøH‹EؾH‰Çè3Hùÿƒøÿu%H‹EøH‰ÇèrlùÿH‰EðH‹UðH‹EØH‰ÖH‰Çè[kùÿëFH‹EغH�5UH‰ÇèaGùÿH‹H‰EèH‹UèH‹EøH‰ÖH‰ÇèWUùÿ‰Eä‹UäH‹E؉ÖH‰Çè£uùÿÉÃUH‰åHƒìpH‰}˜H‹E˜ºH�5�TH‰Çè GùÿH‹H‰EøH‹E˜H�«V¾H‰Çè.�ùÿH‰EðH�MèH�U H‹uðH‹EøH‰Çè2wùÿ‰Eìƒ}ìu‹Eè‰ÂH�M H‹E˜H‰ÎH‰Çè;Òÿÿƒ}ìt‹UìH‹E˜‰ÖH‰Çè uùÿë‹EìÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5ÿSH‰ÇèoFùÿH‹H‰EèH‹EȾH‰ÇèçFùÿƒøÿu(H‹EèH‰Çèf‰ùÿH‰ÁH‹EȺH‰ÎH‰Çè�ùÿéHÇEøÇEôH‹EȾH‰Çè fùÿ…Àt8H‹EȺ¾H‰ÇèÝÕÿÿH‰Eàè×sùÿH‰EøH‹UàH‹EøH‰ÖH‰Çè°�ùÿëdH‹EȾH‰Çè�‡ùÿ…ÀtOH‹EȺ¾H‰Çè#CùÿH‰EØèŠsùÿH‰EøH‹UØH‹EøH‰ÖH‰ÇèƒOùÿƒøtH‹EøH‰Ç肃ùÿHÇEøHƒ}øt$H‹UøH‹EèH‰ÖH‰Çè oùÿ‰EôH‹EøH‰ÇèQƒùÿëÇEô‹UôH‹EȉÖH‰Çè—sùÿÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5‘RH‰ÇèEùÿH‹H‰EèH‹EȾH‰ÇèyEùÿƒøÿu(H‹EèH‰ÇèÈ„ùÿH‰ÁH‹EȺH‰ÎH‰ÇèŽùÿéHÇEøÇEôH‹EȾH‰Çèœdùÿ…Àt8H‹EȺ¾H‰ÇèoÔÿÿH‰EàèirùÿH‰EøH‹UàH‹EøH‰ÖH‰ÇèB€ùÿëdH‹EȾH‰Çè†ùÿ…ÀtOH‹EȺ¾H‰ÇèµAùÿH‰EØèrùÿH‰EøH‹UØH‹EøH‰ÖH‰ÇèNùÿƒøtH‹EøH‰Çè‚ùÿHÇEøHƒ}øt$H‹UøH‹EèH‰ÖH‰Çè¢nùÿ‰EôH‹EøH‰Çèã�ùÿëÇEô‹UôH‹EȉÖH‰Çè)rùÿÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5#QH‰Çè“CùÿH‹H‰EðÇEüH‹E¸¾H‰ÇèDùÿƒøÿ…ÄHÇEÈH�EÈH‰ÇèweùÿH‹EðH‰Çè;ƒùÿH‰ÂH�EÈH‰ÆH‰×è™Cùÿ…Àx)H‹EðH‰ÇèI†ùÿH‰ÂH�EÈH‰ÆH‰×èwCùÿ…ÀºëºH‹E¸‰ÖH‰ÇèIˆùÿH‹EðH‰Çè †ùÿH‰ÁH‹E¸ºH‰ÎH‰Çè&ŒùÿH‹EðH‰Ç躂ùÿH‰ÁH‹E¸ºH‰ÎH‰ÇèŒùÿÇEüé¹H‹E¸H‰Çè+Zùÿƒø…ÅH‹E¸¾H‰Çè‘ùÿH‰EÀH‹EðH‰Çèa‚ùÿH‰ÂH�EÀH‰ÆH‰×è¿Bùÿ…Àx)H‹EðH‰Çèo…ùÿH‰ÂH�EÀH‰ÆH‰×è�Bùÿ…ÀºëºH‹E¸‰ÖH‰Çèo‡ùÿH‹EðH‰Çè3…ùÿH‰ÁH‹E¸ºH‰ÎH‰ÇèL‹ùÿH‹EðH‰Çèà�ùÿH‰ÁH‹E¸ºH‰ÎH‰Çè)‹ùÿÇEüéßH‹E¸H‰ÇèQYùÿƒø…ÊH‹E¸º¾H‰Çè�ÑÿÿH‰EèH‹E¸º¾H‰ÇèuÑÿÿH‰EàèooùÿH‰EØèfoùÿH‰EÐH‹UèH‹EØH‰ÖH‰Çè?}ùÿH‹UàH‹EÐH‰ÖH‰Çè,}ùÿH‹UØH‹EðH‰ÖH‰Çè kùÿ‰Eüƒ}üuH‹UÐH‹EðH‰ÖH‰ÇèÝkùÿ‰EüH‹EØH‰ÇèùÿH‹EÐH‰Çèùÿ‹UüH‹E¸‰ÖH‰Çèaoùÿ‰Eü‹EüÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5UNH‰ÇèÅ@ùÿH‹H‰EðH‹EðH‰ÇèyùÿH‰EøH‹E¸¾H‰Çè-Aùÿƒø…œH‹E¸¾H‰Çè£Jùÿ‰Eìƒ}ìtH‹MøH‹E¸ºH‰ÎH‰Ç貉ùÿé½H‹Eø¾H‰Çè\qùÿH‰EàHƒ}àt8H‹E¸¾H‰Çè_ùÿH‰ÂH‹EàH‰H‹E¸ºÿÿÿÿH�5«MH‰Çè~<ùÿéiH‹E¸H‰Çè½YùÿéXH‹E¸¾H‰Çèw@ùÿƒøÿuwH‹Eø¾H‰ÇèápùÿH‰EØH‹EØH‰Çè1‰ùÿH‰EÐH‹UÐH‹E¸H‰ÖH‰ÇèZ`ùÿH‹E¸º¾ÿÿÿÿH‰Çè=ùÿH‹EкgH�5OH‰ÇèìUùÿH‹EØH‰Çè@tùÿéËH‹E¸ºH�5OH‰Çèc‰ùÿH…Àt!H‹E¸ºH�5õNH‰Çè6?ùÿH‹H‰Eøë6H‹E¸¾H‰ÇèüCùÿH‰EÈH‹EȾH‰Çè[ùÿH‰EøH‹EÈH‰ÇèÇsùÿHƒ}øuH‹E¸H�°N¾H‰ÇèÈDùÿ…À�H‹UøH‹EðH‰ÖH‰Çè"yùÿ‰EÄH‹EøH‰Çè£Sùÿ‹UÄH‹E¸‰ÖH‰Çèmùÿë¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5LH‰Çèu>ùÿH‹H‰EøH‹Eè¾H‰Çèí>ùÿƒøÿu+H‹EøH‰Çèükùÿ‰Eô‹EôHcÐH‹EèH‰ÖH‰Çè¤Uùÿ¸ë=H‹Eè¾H‰Ç謌ùÿ‰Eô‹EôHcÐH‹EøH‰ÖH‰ÇèôHùÿ‰Eð‹UðH‹Eè‰ÖH‰Çè`lùÿÉÃUH‰åSHƒìHH‰}¸H‹E¸ºH�5YKH‰ÇèÉ=ùÿH‹H‰EàH‹EàH‰Çè†eùÿH‰EØÇEìH‹E¸¾H‰Çè*>ùÿƒøÿu*Hƒ}Ø„hH‹UØH‹E¸H‰ÖH‰ÇègAùÿÇEìéIH‹E¸¾H‰Çè:ˆùÿH‰EÐHƒ}Ø„ˆH‹EØH‰Ç賫ÿÿH‰Çè×Kùÿ‰EÌ‹Ẽè‰EèëLH‹EØH‰Çè‘«ÿÿH‰Â‹Eè‰ÆH‰×è}nùÿH‰EÀH‹EÀH‰Çè==ùÿH‹EØH‰Çès«ÿÿH‰Â‹Eè‰ÆH‰×è¡9ùÿƒmèƒ}èy®H‹EØH‰ÇèM«ÿÿH‰ÇèÓdùÿÇEèH‹EÐH‰Çè$«ÿÿH‰ÇèHKùÿ‰EÌëùÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�'I¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè£NùÿH‹E躾ÿÿÿÿH‰Çè]+ùÿ‹UüH‹Eè‰ÖH‰Çè¬uùÿH‹Eè¾ÿÿÿÿH‰ÇèK.ùÿH‹Eè¾ÿÿÿÿH‰Çè:.ùÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Çè­mùÿH‹E躾H‰ÇèWcùÿH‹UØH‹EèH‰ÖH‰ÇèNùÿH‹E躾ÿÿÿÿH‰ÇèÎ*ùÿH‹Eè¾þÿÿÿH‰ÇèÝGùÿ‹UüH‹Eè‰ÖH‰ÇèLdùÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�H¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰ÇèÔlùÿ‹Eô…ÀuH‹EèH�5jHH‰Ç¸èµRùÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�SH‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰ÇèöLùÿH‹E躾ÿÿÿÿH‰Çè°)ùÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè²FùÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè,yùÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰ÇèôbùÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèÊkùÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH� F¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰Çèz*ùÿH‹Eø¾ÿÿÿÿH‰Çèé+ùÿH‹Eø¾þÿÿÿH‰Çèuùÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèadùÿH‰EøH‹EèH�&F¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çè=Bùÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰ÇèÖ)ùÿH‹Eè¾ÿÿÿÿH‰ÇèE+ùÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çè¿:ùÿ‰EôH‹Eè¾ýÿÿÿH‰Çè«jùÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰ÇèÑ+ùÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çèœ+ùÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çè>*ùÿƒøt ¸éüH‹EøH‰ÇèSCùÿéÍH‹Eø¾þÿÿÿH‰Çè *ùÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çè~9ùÿ…ÀtH‹Eø¾þÿÿÿH‰Çèiiùÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰ÇèsuùÿH‹EøºH�5ýDH‰ÇèìH‹Eø¾þÿÿÿH‰Çèª;ùÿH‹Eø¾H‰Çèihùÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèáhùÿH‹Eø¾þÿÿÿH‰Çèðkùÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çè@ùÿ‰EüH‹UàH‹EèH�5oDH‰Çè‹XùÿH‹Eè¾îØÿÿH‰ÇèúBùÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çè5hùÿ¸ë‹UüH‹Eè‰ÖH‰Çèhùÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5ÂCH‰Ç¸èwVùÿéÜH‹EðH‹@¶ùÿ‰EüH‹…`ÿÿÿH‰Çèüÿÿ‰Eøƒ}ø~¸ 븉EôHƒ½Xÿÿÿt"H‹•XÿÿÿH‹…hÿÿÿH�5BH‰Ç¸èUùÿH‹…hÿÿÿºH�5cBH‰Çèéø‹…Tÿÿÿ;Eôu,H‹…hÿÿÿºH�5IBH‰Çèó ‹Eøƒè ‰…TÿÿÿéÁH�•pÿÿÿH‹…`ÿÿÿH�5!BH‰ÇèôUùÿH�…pÿÿÿH�P8H‹…hÿÿÿH�5BH‰Ç¸ènTùÿ‹E˜…À~‹U˜H‹…hÿÿÿH�5æAH‰Ç¸èITùÿH‹…hÿÿÿºH�5ÊAH‰Çè_ H�•pÿÿÿH‹…hÿÿÿH‰ÖH‰Çè_ýÿÿH‹…hÿÿÿH‰ÇèÖ<ùÿ+Eü‰ÂH‹…hÿÿÿ‰ÖH‰ÇèÀdùÿ‹…Tÿÿÿ�P‰•TÿÿÿH�•pÿÿÿH‹�`ÿÿÿ‰ÆH‰Ïè©&ùÿ…À…ÙþÿÿH‹…hÿÿÿH‰Çè‚<ùÿ+Eü‰ÂH‹…hÿÿÿ‰ÖH‰Çèldùÿ�ÉÃUH‰åH�ì0H‰½èýÿÿ‰µäýÿÿH‰•ØýÿÿHÇEøèM ùÿ‹‰EôH�•ðýÿÿ¸¹@H‰×óH«ƒ½äýÿÿtH‹…èýÿÿ¾H‰ÇèÄiùÿ¸é¦H‹…èýÿÿH‰Çè>ùÿH��ðýÿÿ‹EôºH‰Î‰ÇèGïÿÿH‰EøHƒ½Øýÿÿt(H‹MøH‹•ØýÿÿH‹…èýÿÿH�5t@H‰Ç¸èÎRùÿë/H‹UøH‹…èýÿÿH‰ÖH‰Çè¦DùÿH‹…èýÿÿº¾ÿÿÿÿH‰Çè]!ùÿò*EôH‹…èýÿÿH‰ÇèÉ%ùÿ¸ÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäHƒ}ðtBH‹Eè¶¾ÐH‹Eð‰ÖH‰ÇèL,ùÿH…Àu%H‹MðH‹UèH‹EøH�5Ô?H‰Ç¸è'Rùÿ‹Eäë¸ÉÃUH‰åHƒì0H‰}èH‰uàH‰UØH‹EàH‰EøH‹Eø‹@…Àt$H‹EøÇ@H‹EøH‹P H‹EØH‰H‹EøH‹@ëH‹EøH‹H‹UøH‹rH‹UØH‹MèH‰ÏÿÐÉÃUH‰åHƒì`H‰}ÈH‰uÀH‰U¸H‰M°L‰E¨ÇEüHÇEÐHÇEØÇEàHÇEèHÇEðH‹EÀH‰EÐH‹E¸H‰EØH�EÐH�P H‹u¸H‹MÈH‹EÀH‰ÏÿÐH‰EèH‹EèH…Àt:H‹EðH…Àt1H‹E趺8Ðu!H‹u¨H‹EȹH�Ï>H‰Çè{þÿÿ‰EüëH‹u¨H‹EȹH�µ>H‰ÇèZþÿÿ‰Eüƒ}üt‹EüëH‹M°H�UÐH‹EÈH�5 þÿÿH‰Çèã@ùÿÉÃUH‰åHƒì0H‰}èH‰uàH‰UØH‹EàH‰EøH‹Eø‹…À~H‹Eø‹HcÐH‹EØH‰H‹EøÇëGH‹EøH‹@H‰Çèo]ùÿ…Àt¸ë4H‹EøH‹@H‹UøH�zH‰Áº¾èÂ[ùÿH‰ÂH‹EØH‰H‹EøHƒÀÉÃUH‰åH�ì0H‰½èýÿÿH‰µàýÿÿ‰•ÜýÿÿH�•ðýÿÿ¸¹@H‰×óH«èÃùÿ‹H��ðýÿÿºH‰Î‰ÇèìÿÿH‰Eø‹�ÜýÿÿH‹…èýÿÿº‰ÎH‰ÇèkùÿHƒÀH‰EðH‹uøH‹MðH‹•àýÿÿH‹…èýÿÿI‰ðH�5Y=H‰Ç¸èvOùÿ‹•ÜýÿÿH‹…èýÿÿ‰ÖH‰Çèÿlùÿ¸ÉÃUH‰åHƒì H‰}èH�,=H‰EøH‹EèÇH‹EèH‹@H‰Çè—#ùÿ‰Eôƒ}ôÿtH‹EøH�PH‰Uø¶¶À9Eôt‹EôëCH‹Eè‹�HH‹Uè‰ ‹Uô‰ÑH‹UèH˜ˆLH‹Eø¶„Àu¢H‹EèÇH‹EèH‹@H‰Çè/#ùÿÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèIÿÿÿ‰ÂH‹Eà‰H‹Eà‹‰Eüƒ}ü#u>H‹EèH‹@H‰Çèê"ùÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰ÇèË"ùÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çèæ6ùÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5Þ;H‰ÇèH‹$)%H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5µ;H‰Ç¸è¶MùÿH‹…ÀïÿÿH�5ž;H‰Çè°KùÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5t;H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5;H‰Çè EùÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5Ü:H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè2ùÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè3gùÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰ÇèBùÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè]]ùÿ‹UüH‹…ÈïÿÿH�5ó9H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çèniùÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�E9H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�+9H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çè|^ùÿÉÃUH‰åHƒì H‰}è‰uäH� 9H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�Ì8H‰EøH‹Eø¶ùÿÉÃUH‰åHƒì H‰}ø‰uôH‰Uè‹UôH‹Eø‰ÖH‰Çèðâÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çèò.ùÿ‹UôH‹Eø‰ÖH‰ÇèQ_ùÿH‹Eø¾ÿÿÿÿH‰ÇèðùÿH‹Eø¾ÿÿÿÿH‰ÇèßùÿÉÃUH‰åHƒì0H‰}ØÇEôHÇEøH‹EØH�74¾H‰Çè^èÿÿH‹EغH�5;4H‰ÇèóþÿÿH‹EؾÿÿÿÿH‰Çè‘1ùÿH‹EؾðØÿÿH‰ÇèP:ùÿH‹EؾÿÿÿÿH‰Çè_ùÿH‹EؾÿÿÿÿH‰ÇèNùÿƒø„±H‹EؾþÿÿÿH‰ÇèÄVùÿH‹Eغ¾H‰ÇènLùÿH‹Eغ¾H‰ÇèXLùÿH‹EغH�5¯3H‰ÇèQþÿÿH‹EØH�ž3¾þÿÿÿH‰ÇèX ùÿH‹EؾþÿÿÿH‰Çè`ùÿH‹EؾþÿÿÿH‰ÇèÆ0ùÿH‹EؾþÿÿÿH‰Çèµ0ùÿH‹EؾðØÿÿH‰Çè„2ùÿH‹EؾþÿÿÿH‰ÇèSYùÿH‹EØH‰ÇèGVùÿ‰EôH‹EؾþÿÿÿH‰ÇèC9ùÿH‹EؾÿÿÿÿH‰ÇèRùÿH‹EؾÿÿÿÿH‰ÇèñNùÿH‰EøHƒ}ø…dH‹EؾþÿÿÿH‰Çè±UùÿH‹EؾH‰ÇèP4ùÿH‰Eøƒ}ôt|H‹Eøº¾H‰Çè°&ùÿH‹EØH‰Çè´UùÿH‹EؾþÿÿÿH‰Çèã/ùÿH‹EؾüÿÿÿH‰Çè²1ùÿH‹EؾH‰ÇèqZùÿH‹EؾþÿÿÿH‰Çè°/ùÿH‹EؾüÿÿÿH‰Çè1ùÿé¼HÇEèH‹EؾH‰Çè1ZùÿH‹EؾýÿÿÿH‰Çè@8ùÿH‹EؾÿÿÿÿH‰ÇèOùÿH‹EؾÿÿÿÿH‰ÇèîMùÿH‰EèHƒ}ètH‹EèH‹H‹EøH‰ëH‹Eøº¾H‰ÇèÍ%ùÿH‹EؾþÿÿÿH‰ÇèŒTùÿH‹EØH‰ÇèÀTùÿH‹EؾþÿÿÿH‰Çèï.ùÿH‹EؾüÿÿÿH‰Çè¾0ùÿH‹EؾýÿÿÿH‰ÇèMTùÿH‹EøÉÃUH‰åHƒì H‰}è‰uä‹UäH‹Eè‰ÖH‰Çè—ùÿƒøuO‹UäH‹Eè‰ÖH‰ÇèùÿfH~ÀH‰Eø‹MäH‹E躉ÎH‰Çè&H‰EðòH*Eðf.Eøzf.Eøu¸ë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØÇEôH�Uô‹MäH‹Eè‰ÎH‰Çè>äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè–-ùÿ‹UðH‹Eø‰ÖH‰Çè…-ùÿ‹UôH‹Eø‰ÖH‰Çè4Vùÿ‹UðH‹Eø‰ÖH‰Çè#VùÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çè*ùÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�U/¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�Å.¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çèñ(ùÿH‹Eø¾þÿÿÿH‰Çè0$ùÿ‹UôH‹Eø‰ÖH‰ÇèHùÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè™,ùÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èˆ9ùÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèÊùÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�ä-‰ÎH‰Çèêùÿ…À…�‹UäH‹Eè‰ÖH‰Çèùÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5‚-H‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè©*ùÿé3‹UäH‹Eè‰ÖH‰Çèùÿ…ÀtH‹EèºH�5>-H‰ÇèÈ÷ÿÿéH‹EèºH�5&-H‰Çè«÷ÿÿéä‹MäH‹EèH�-‰ÎH‰Çè½6ùÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çèùÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çèâ ùÿë‹UüH‹Eè‰ÖH‰Çè,ùÿH‰Eð‹UäH‹Eè‰ÖH‰Çè@ùÿH‰ÁH‹UðH‹EèH�5™,H‰Ç¸èÛ=ùÿƒ}øtCH‹Eè¾þÿÿÿH‰ÇèdRùÿ�ë/H‹Eè¾ÿÿÿÿH‰ÇèÀPùÿ…ÀuH‹EèH�5Y,H‰Ç¸èô4ùÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè< ùÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�¨+¾H‰ÇèÏßÿÿH‹EøH�,¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çèn ùÿH‹Eø¾ÿÿÿÿH‰ÇèÝùÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèTNùÿH‹MèH‹EøºH‰ÎH‰Çè\[ùÿH‹UðH‹EøH‰ÖH‰Çè¹.ùÿH‹Eøº¾ÿÿÿÿH‰Çès ùÿH‹Eøº¾H‰Çèý@ùÿH‹Eø¾ÿÿÿÿH‰Çèl(ùÿH‹UðH‹Eø¾ýÿÿÿH‰ÇèÇùÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè@(ùÿH‹UðH‹Eø¾îØÿÿH‰Çè›ùÿH‹Eø¾þÿÿÿH‰ÇèÚPùÿ�ÉÃUH‰åHƒì H‰}èHÇEøH‹E躾H‰Çè�ùÿH‹E躾H‰ÇèVùÿH‰EøHƒ}øt5H‹Eè¾H‰Çèë+ùÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5£*H‰Çèi ùÿë H‹EèH‰Çè«&ùÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹E躾H‰ÇèžBùÿH‹EàH‰ÇèùÿH‰ÂH‹EèH‰ÖH‰Çè0FùÿH‹EèH�\*¾þÿÿÿH‰Çè˜ùÿH‹EàH‰ÇèìVùÿ‰Eøƒ}øŽ‚H‹E躾H‰Çè9BùÿÇEüëC‹UüH‹Eà‰ÖH‰Çè?ùÿH‰EðH‹UðH‹EèH‰ÖH‰ÇèhMùÿ‹Eü�PH‹Eè¾þÿÿÿH‰Çè+ùÿƒEü‹Eü;Eø|µH‹EèH�È)¾þÿÿÿH‰Çèýùÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5l)H‰Çè ùÿH‹H‰EøH‹UøH‹EèH‰ÖH‰ÇèÄþÿÿÉÃUH‰åHƒì H‰}èH‹EèºH�5,)H‰Çè‚ ùÿH‹H‰EøH‹EøH‰Çè*ùÿH‰EðHƒ}ðt5H‹Eè¾H‰Çè#*ùÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5Û(H‰Çè¡ùÿë H‹EèH‰Çèã$ùÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5¢(H‰Çèø ùÿH‹H‰EøH‹EøH‰ÇèE ùÿ¸ÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5d(H‰Çèº ùÿH‹H‰EøH‹E¸¾H‰Çè2 ùÿƒøu\H‹E¸¾H‰ÇèYùÿ‰EôH�UÈH‹E¸¾H‰ÇèäùÿH‰EèH‹EȉÁH‹Uè‹uôH‹EøH‰Çè—Sùÿ‰Eä‹UäH‹E¸‰ÖH‰Çè³8ùÿë`H‹E¸¾H‰ÇèÀXùÿ‰EàH‹E¸¾H‰Çè¬Xùÿ‰EÜ‹UÜ‹uàH‹Eø¹H‰ÇèÂ;ùÿH‰EÐH‹MÐH‹E¸ºÿÿÿÿH‰ÎH‰Çè6Sùÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5e'H‰Çè» ùÿH‹H‰EøH‹Eغ¾H‰Çèþùÿ‰Eô‹UôH‹Eø‰ÖH‰ÇèŠùÿH‰EèHƒ}ètH‹UèH‹EØH‰ÖH‰Çè¬Jùÿ¸ë¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ä&H‰Çè: ùÿH‹H‰EøH‹EؾH‰Çè² ùÿƒøÿu*H‹EøH‰ÇèqùÿH‰EðH‹UðH‹EØH‰ÖH‰ÇèŠBùÿ¸ëMH‹Eغ¾H‰ÇèùÿH‰EèH‹UèH‹EøH‰ÖH‰Çè&2ùÿ‰EäH‹EèH‰Çèg.ùÿ‹UäH‹E؉ÖH‰Çè7ùÿÉÃUH‰åHƒìPH‰}ÈH‰uÀ‰U¼HÇEØHÇEøHÇEðHÇEè‹M¼H‹EÈH�*&‰ÎH‰ÇèiùÿH‹EȾÿÿÿÿH‰ÇèØùÿH‹EȺ¾ÿÿÿÿH‰ÇèrùÿH‰EèH‹EȾþÿÿÿH‰Çè=Hùÿ‹M¼H‹EÈH�ñ%‰ÎH‰ÇèùÿH‹EȾÿÿÿÿH‰Çè„ùÿH‹EȾÿÿÿÿH‰ÇèsVùÿ‰EäH‹EȾþÿÿÿH‰ÇèïGùÿ‹M¼H‹EÈH��%‰ÎH‰ÇèÇùÿH‹EȾÿÿÿÿH‰Çè6ùÿH‹EȾÿÿÿÿH‰ÇèeIùÿ…ÀtH�UØH‹EȾÿÿÿÿH‰ÇèüùÿH‰EøëEH‹EȺÿÿÿÿH�5R%H‰ÇèÒÿÿH‰EðHƒ}ðt"H‹EðH‰ÇèwOùÿH‰EøH‹EðH‰ÇègPùÿH˜H‰EØH‹EȾþÿÿÿH‰Çè@GùÿHƒ}øt"H‹E؉ÇH‹Mø‹UäH‹uèH‹EÀA‰øH‰ÇèÙ2ùÿëH‹EèH‰Çè›,ùÿ¸ÉÃUH‰åSHƒì8H‰}ȉuÄ‹UÄH‹EȉÖH‰ÇèSùÿƒøt‹MÄH‹EÈH�°$‰ÎH‰Çè– ùÿ…À�èžQùÿH‰Eà‹UÄH‹EȉÖH‰Çèùÿƒø…¾‹UÄH‹EȉÖH‰Çè�'ùÿ‰EÜÇEìé’‹Eì�P‹MÄH‹EȉÎH‰ÇèY ùÿH‹EȾÿÿÿÿH‰ÇèÈùÿH‹EȺÿÿÿÿH�5Ê#H‰Çè ùÿH‹H‰EÐH‹EÐH‰Çè½$ùÿH‰EÐH‹EÐH‰Çè”ÐÿÿH‰ÃH‹EàH‰Çè¡ÐÿÿH‰ÞH‰Çè“!ùÿH‹EȾþÿÿÿH‰ÇèòEùÿƒEì‹Eì;EÜŒbÿÿÿH‹EàHƒÄ8[]ÃUH‰åHƒì H‰}èH‰uàÇEüÇEøH‹E躾H‰Çèc;ùÿH‹EàH‰ÇèÐÿÿH‰Çèùÿ‰EøÇEüé“H‹EàH‰ÇèùÏÿÿH‰Â‹Eü‰ÆH‰×è´6ùÿH‰EðH‹EðH‰Çèä#ùÿH‰EðHƒ}ðt5H‹Eè¾H‰Çèè#ùÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5 "H‰Çèfùÿë H‹EèH‰Çè¨ùÿ‹Eü�PH‹Eè¾þÿÿÿH‰ÇèÑ#ùÿƒEü‹Eü;EøŒaÿÿÿ¸ÉÃUH‰åHƒìH‰}øH‹EøH�“r%H�5>"H‰Çè´ùÿH‹Eøº¾H‰Çè^:ùÿH‹EøºH�5>r%H‰Çè××ÿÿ¸ÉÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹UÜH‹MàH‹EèH‰ÎH‰ÇèÈùÿH‰EøHƒ}øt H‹EøH‹ë¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰Çè·ùÿH‹Eð¶„Àu ‹Eü‰Çè’ ùÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Çè°ùÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰ÇèdùÿƒøtbH‹Eø¾þÿÿÿH‰ÇèÞBùÿH‹UèH‹uðH‹EøH� Û H‰Çè³Dùÿ…Àt H‹EøH‰ÇèsùÿH‹Eø¾ÿÿÿÿH‰Çè"ùÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Çèùÿ‹Uà‹MäH‹Eø‰ÎH‰Çèd5ùÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5K!H‰Ç¸è.(ùÿH‹EøH�W!¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çèùÿò*EôH‹EøH‰ÇèÎùÿH‹Eø¾ýÿÿÿH‰Çè}ùÿH‹EøA¸¹ºÛH�5òH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çè¡Eùÿéå‹Uà‹MäH‹Eè‰ÎH‰ÇèH ùÿéÌH‹EèH�| ¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çè‚ùÿ‹UàH‹Eè‰ÖH‰ÇèqùÿH‹EèA¸¹ºH�5& H‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çè½ ùÿ‰EüH‹Eè¾þÿÿÿH‰Çè©@ùÿ‹EüëH‹EèH�5 H‰Ç¸èŒ&ùÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�ˆ¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çè¶ùÿ‹UüH‹Eè‰ÖH‰ÇèeCùÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰ÇèrùÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰ÇèÚ ùÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè�ùÿ龋MôH‹EøH�0‰ÎH‰ÇèÐùÿ…À…š‹UôH‹Eø‰ÖH‰Çèw ùÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè*ùÿëZ‹MôH‹EøH�ЉÎH‰Çèpùÿ…ÀuA‹UôH‹Eø‰ÖH‰Çè‹ÿøÿ‰ÂH‹Eø‰ÖH‰ÇèùÿH‰ÂH‹EøH�5�H‰Ç¸èð$ùÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çè½2ùÿ‹UüH‹Eè‰ÖH‰Çèì!ùÿH‹Eè¾ÿÿÿÿH‰ÇèûþøÿH‹Eè¾ÿÿÿÿH‰ÇèêþøÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�z¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çè62ùÿH‹Eè¾þÿÿÿH‰Çèµùÿ‹UüH‹Eè‰ÖH‰Çèdùÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèÝþøÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çè†ùÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè0ùÿ…ÀuIHƒ}ètH‹UèH‹EøH�5H‰Ç¸è0#ùÿë$H‹EøºH�5öH‰ÇèEH‹EøH‰ÇèÊ ùÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH� ¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰ÇèEùÿH‹E躾ÿÿÿÿH‰Çèÿùøÿ‹UüH‹Eè‰ÖH‰ÇèNDùÿH‹Eè¾ÿÿÿÿH‰ÇèíüøÿH‹Eè¾ÿÿÿÿH‰ÇèÜüøÿƒøu¸ëwH‹Eè¾þÿÿÿH‰ÇèO<ùÿH‹E躾H‰Çèù1ùÿH‹UØH‹EèH‰ÖH‰Çè¶ùÿH‹E躾ÿÿÿÿH‰ÇèpùøÿH‹Eè¾þÿÿÿH‰Çèùÿ‹UüH‹Eè‰ÖH‰Çèî2ùÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�ò¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çèv;ùÿ‹Eô…ÀuH‹EèH�5LH‰Ç¸èW!ùÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�5‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰Çè˜ùÿH‹E躾ÿÿÿÿH‰ÇèRøøÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèTùÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰ÇèÎGùÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Çè–1ùÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çèl:ùÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�‚¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰ÇèùøÿH‹Eø¾ÿÿÿÿH‰Çè‹úøÿH‹Eø¾þÿÿÿH‰ÇèºCùÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè3ùÿH‰EøH‹EèH�¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çèßùÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰ÇèxøøÿH‹Eè¾ÿÿÿÿH‰ÇèçùøÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çèa ùÿ‰EôH‹Eè¾ýÿÿÿH‰ÇèM9ùÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çèsúøÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çè>úøÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çèàøøÿƒøt ¸éüH‹EøH‰ÇèõùÿéÍH‹Eø¾þÿÿÿH‰Çè¯øøÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çè ùÿ…ÀtH‹Eø¾þÿÿÿH‰Çè 8ùÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰ÇèDùÿH‹EøºH�5ßH‰ÇèìH‹Eø¾þÿÿÿH‰ÇèL ùÿH‹Eø¾H‰Çè 7ùÿ¸ë/H‹Eø¾þÿÿÿH‰Çèƒ7ùÿH‹Eø¾þÿÿÿH‰Çè’:ùÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çè·ùÿ‰EüH‹UàH‹EèH�5QH‰Çè-'ùÿH‹Eè¾îØÿÿH‰Çèœùÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çè×6ùÿ¸ë‹UüH‹Eè‰ÖH‰Çè¿6ùÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5¤H‰Ç¸è%ùÿéÜH‹EðH‹@¶H‹EèH‹@H‰ÇèŒñøÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çèmñøÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèˆùÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5ÀH‰ÇèH‹Æ÷$H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5—H‰Ç¸èXùÿH‹…ÀïÿÿH�5€H‰ÇèRùÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5VH‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5ç H‰ÇèBùÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5¾ H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰ÇèÔéøÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰ÇèÕ5ùÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çè¹ùÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çèÿ+ùÿ‹UüH‹…ÈïÿÿH�5Õ H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çè8ùÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�' H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H� H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çè-ùÿÉÃUH‰åHƒì H‰}è‰uäH� H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�® H‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè8üøÿ‹UðH‹Eø‰ÖH‰Çè'üøÿ‹UôH‹Eø‰ÖH‰ÇèÖ$ùÿ‹UðH‹Eø‰ÖH‰ÇèÅ$ùÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çè©øøÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�7¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�§¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çè“÷øÿH‹Eø¾þÿÿÿH‰ÇèÒòøÿ‹UôH‹Eø‰ÖH‰Çè!ùÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè;ûøÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'è*ùÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèláøÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�ƉÎH‰ÇèŒèøÿ…À…�‹UäH‹Eè‰ÖH‰Çè£ßøÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5dH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰ÇèKùøÿé3‹UäH‹Eè‰ÖH‰Çèµèøÿ…ÀtH‹EèºH�5 H‰ÇèÈ÷ÿÿéH‹EèºH�5H‰Çè«÷ÿÿéä‹MäH‹EèH�óÿ‰ÎH‰Çè_ùÿ…ÀtH‹Eè¾ÿÿÿÿH‰ÇèºÞøÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çè„Ûøÿë‹UüH‹Eè‰ÖH‰Çè!ûøÿH‰Eð‹UäH‹Eè‰ÖH‰Çè¼ùÿH‰ÁH‹UðH‹EèH�5{ÿH‰Ç¸è} ùÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè!ùÿ�ë/H‹Eè¾ÿÿÿÿH‰Çèbùÿ…ÀuH‹EèH�5;ÿH‰Ç¸è–ùÿë�H‹UØH‹Eè¾ÿÿÿÿH‰ÇèÞÚøÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�Šþ¾H‰ÇèÏßÿÿH‹EøH�üþ¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèÜøÿH‹Eø¾ÿÿÿÿH‰ÇèÝøÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèöùÿH‹MèH‹EøºH‰ÎH‰Çèþ)ùÿH‹UðH‹EøH‰ÖH‰Çè[ýøÿH‹Eøº¾ÿÿÿÿH‰ÇèÚøÿH‹Eøº¾H‰ÇèŸùÿH‹Eø¾ÿÿÿÿH‰Çè÷øÿH‹UðH‹Eø¾ýÿÿÿH‰Çèiæøÿƒ}ät&H‹Eø¾ÿÿÿÿH‰ÇèâöøÿH‹UðH‹Eø¾îØÿÿH‰Çè=æøÿH‹Eø¾þÿÿÿH‰Çè|ùÿ�ÉÃUH‰åSHƒìxH‰}ˆ‰u„‰U€ÇEØHÇEèHÇEÐHÇEÈÇEÄ‹M„H‹EˆH�´ý‰ÎH‰ÇèØÚøÿH‹Eˆ¾ÿÿÿÿH‰ÇèGÜøÿH‹Eˆº¾ÿÿÿÿH‰ÇèáÚøÿH‰EÈH‹EÈH‰Çè±ùÿ‰EÄH‹EÈH‰Çè2ùÿH‹Eˆ¾þÿÿÿH‰Çè‘ùÿ‹M„H‹EˆH�Lý‰ÎH‰ÇèiÚøÿH‹Eˆ¾ÿÿÿÿH‰ÇèØÛøÿH‹Eˆ¾ÿÿÿÿH‰ÇèÇÛøÿ…ÀtH‹Eˆ¾ÿÿÿÿH‰ÇèBåøÿ븉EØH‹Eˆ¾þÿÿÿH‰Çè'ùÿ‹M„H‹EˆH�ëü‰ÎH‰ÇèÿÙøÿH‹Eˆ¾ÿÿÿÿH‰ÇènÛøÿH‹Eˆ¾ÿÿÿÿH‰Çè�ùÿ…À„H�U H‹Eˆ¾ÿÿÿÿH‰Çè0ØøÿH‰E¸H‹Eˆ¾þÿÿÿH‰Çè»ùÿƒ}€„H‹EĉÇè÷öøÿH‰E°Hƒ}°„HÇEàH‹E¸H‰ÇèÄùÿH‰E¨H‹E°H‹@HH…Àt?Hƒ}¨t8H‹E¨H‰Çè ÖÿÿH‰ÇèØèøÿ…À~KH‹E°H‹@HH‹U¨H‹M°¾H‰ÏÿÐH‰Eàë+H‹E°H‹@8H…ÀtH‹E°H‹@8H‹U¸H‹M°¾H‰ÏÿÐH‰EàHƒ}¨t)H‹ãã$H‰ÇèºÕÿÿH‰ÃH‹E¨H‰Çè�ÕÿÿH‰ÞH‰ÇèùùÿHƒ}à„ŒHÇE˜H‹E°H‹@H…Àt;HÇE˜H‹E°H‹@ÿÐH‰ÂH�M˜H‹EàH‰ÎH‰Çè±'ùÿ‰E܃}ÜyiHÇE˜ë_H‹E°H‹@(H‹Uà¾H‰×ÿЉEÜ‹EÜH˜ºZH�5,ûH‰Çè"ùÿH‰E˜H‹E˜H…Àt H‹E˜H‰E�H‹E°H‹@(H�M�H‹UàH‰ÎH‰×ÿÐH‹E˜H…Àt>¿èlùÿH‰EèH‹M˜‹UÜH‹EèH‰ÎH‰Çè’÷øÿH‹E˜ºeH�5ºúH‰Çè*ïøÿëHÇEèH‹E°H‹@H…ÀtH‹E°H‹@ÿÐH‰ÂH‹EàH‰ÖH‰ÇèùÿëcH‹E°H‹@H‹UàH‰×ÿÐëP¿èèùÿH‰EèH‹E ‰ÂH‹M¸H‹EèH‰ÎH‰Çè ÷øÿë'¿è¿ùÿH‰EèH‹E ‰ÂH‹M¸H‹EèH‰ÎH‰ÇèâöøÿHƒ}èt/H‹Mè‹UØ‹EĉƿèÅùÿH‰EÐH‹EèH‰Çè¥ùÿH‹EÐé§‹EĉÇè2 ùÿH‰ÆH‹U¸H‹EˆH‰ÑH‰òH�5ÒùH‰Ç¸èÝýøÿ¸ëqH‹EˆºÿÿÿÿH�5×ùH‰Çè½ÓÿÿH‰EèHƒ}èt1H‹Mè‹UØ‹Eĉƿè=ùÿH‰EÐH‹Eˆ¾þÿÿÿH‰ÇèˆùÿH‹EÐëH‹EˆH�Ÿù¾H‰Çè:Ýøÿ¸HƒÄx[]ÃUH‰åHƒì H‰}èHÇEðÇEüÇEøH‹E躾H‰ÇèVçøÿH‹Eè¾H‰Çè…×øÿƒøÿtH‹Eè¾H‰Çèÿàøÿ‰Eø‹UøH‹Eè¾H‰Çè¯úÿÿH‰EðHƒ}ðtOHƒ}ðt5H‹Eè¾H‰ÇèuõøÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5 ùH‰ÇèóÒøÿë H‹EèH‰Çè5ðøÿÇEü‹EüÉÃUH‰åHƒì0H‰}ØÇEüH�UèH‹EؾH‰Çè±äøÿH‰EàH‹EèH‰ÂH�EàH‰Æ¿è•øøÿH‰EðHƒ}ðtOHƒ}ðt5H‹EؾH‰ÇèÒôøÿH‰ÂH‹EðH‰H‹EغÿÿÿÿH�5gøH‰ÇèPÒøÿë H‹EØH‰Çè’ïøÿÇEü‹EüÉÃUH‰åHƒì@H‰}ÈÇEüH‹EȾH‰Çè2Öøÿ…À�MÇEð H‹EȺ¾H‰Çè] ùÿÇEøé ‹EøH˜H�…H�­ø‹‰EìH‹EȺ¾H‰Çè! ùÿ‹Eì‰Çè‡ùÿH‰ÂH‹EÈH‰ÖH‰ÇèÕõøÿH‹EȺ¾ÿÿÿÿH‰Çè�ÒøÿH‹EÈH�š÷¾þÿÿÿH‰Çèßøÿ‹Eì‰Çè]ýøÿH‰ÂH‹EÈH‰ÖH‰Çè‹õøÿH‹EȺ¾ÿÿÿÿH‰ÇèEÒøÿH‹EÈH�V÷¾þÿÿÿH‰Çè½Þøÿ‹EìHcÐH‹EÈH‰ÖH‰ÇèìøÿH‹EÈH�/÷¾þÿÿÿH‰Çè�Þøÿ‹Eø�PH‹EȾþÿÿÿH‰ÇèióøÿƒEø‹Eø;EðŒèþÿÿÇEüéH‹EȺH�5¼öH‰ÇèEùÿH…ÀtKH‹EȺH�5ŸöH‰ÇèÔøÿH‹H‰EàH‹EàH‰ÇèUÐøÿ‰Eü‹UüH‹EȉÖH‰ÇèAùÿÇEüé˜ÇEÜH‹EȺ¾H‰ÇèÓøÿH‰EÐHƒ}ÐtpH‹EÐH‰ÇèÑùÿ‰EÜH‹EÐH‰ÇèRùøÿÇEôë ‹EôH˜H�…H�Õö‹9EÜtƒEô‹Eôƒø vØë�‹Eôƒø –À¶ÐH‹EȉÖH‰Çè¤ùÿ¸ë‹EüÉÃUH‰åSHƒìHH‰}¸H‰u°H‹E°H‰Çè;ßøÿH‰EàH‹EàH‰Çè;ùÿ‰EÜH‹E¸º¾H‰ÇèâùÿH‹UàH‹E¸H‰ÖH‰Çè ùÿH‹E¸H�Æô¾þÿÿÿH‰ÇèçÜøÿH‹E°H‰Çè[ùÿH‰ÁH‹E¸ºH‰ÎH‰ÇèùÿH‹E¸H�›ô¾þÿÿÿH‰Çè¬ÜøÿÇEØþÿÿÿH‹E°H‰Çè ùÿ‰ÂH‹E¸‰ÖH‰ÇèÉùÿ‹MØH‹E¸H�Tô‰ÎH‰ÇèqÜøÿƒ}ÜU…ôH‹E°H‰Çè›ÔøÿH‰EÐHƒ}ЄÜH‹UàH‹E¸H‰ÖH‰Çè¹ ùÿH‹E¸º¾H‰ÇèóùÿH‹EÐH‰ÇèüÍÿÿH‰ÇèŸàøÿ‰EÌÇEìëNH‹EÐH‰ÇèÜÍÿÿH‰Â‹Eì‰ÆH‰×èGùÿH‰EÀH‹UÀH‹E¸H‰ÖH‰Çè`Öøÿ‹Eì�PH‹E¸¾þÿÿÿH‰Çè©ðøÿƒEì‹Eì;EÌ|ªH‹E¸¾ýÿÿÿH‰Çè¬ùÿH‹}Û$H‰ÇèŽÍÿÿH‰ÃH‹EÐH‰ÇèqÍÿÿH‰ÞH‰Çè£ùÿ�ë�¸HƒÄH[]ÃUH‰åHƒì H‰}èH‹EèºH�5¶óH‰Çè/ÑøÿH‹H‰EøH‹UøH‹EèH‰ÖH‰ÇèÍýÿÿÉÃUH‰åHƒì H‰}èH‹EèºH�5vóH‰ÇèïÐøÿH‹H‰EøH‹EøH‰ÇèlæøÿH‰EðHƒ}ðt5H‹Eè¾H‰Çè�ïøÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5%óH‰ÇèÍøÿë H‹EèH‰ÇèPêøÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ìòH‰ÇèeÐøÿH‹H‰EøHÇEèH�UèH‹EøH‰ÖH‰Çè£×øÿ‰Eôƒ}ô~1‹EôHcÐH‹MèH‹EØH‰ÎH‰ÇèpéÿÿH‹Eèº|H�5 òH‰Çèyæøÿƒ}ôŸÀ¶ÀÉÃUH‰åHƒì H‰}èH‹EèºH�5`òH‰ÇèÙÏøÿH‹H‰EøH‹EøH‰ÇèÐøÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5"òH‰Çè›ÏøÿH‹H‰EøH‹EؾH‰ÇèÐøÿƒøÿu*H‹EøH‰Çè‚ÛøÿH‰EðH‹UðH‹EØH‰ÖH‰Çèëùÿ¸ëMH‹Eغ¾H‰Çè~ÎøÿH‰EèH‹UèH‹EøH‰ÖH‰Çè×ùÿ‰EäH‹EèH‰ÇèÈôøÿ‹UäH‹E؉ÖH‰ÇèwýøÿÉÃUH‰åHƒì H‰}èH‹EèºH�5hñH‰ÇèáÎøÿH‹H‰EøH‹Eè¾H‰ÇèYÏøÿƒøÿu#H‹EøH‰Çè8ùÿ‰ÂH‹Eè‰ÖH‰Çèøùÿ¸ë5H‹Eè¾H‰Çè°Øøÿ‰ÂH‹Eø‰ÖH‰Çè`×øÿ‰Eô‹UôH‹Eè‰ÖH‰ÇèÜüøÿÉÃUH‰åHƒìPH‰}¸ÇEüH‹E¸ºH�5ÆðH‰Çè?ÎøÿH‹H‰EðH‹E¸¾H‰Çè·Îøÿƒøÿu4H‹EðH‰Çè¦ ùÿH‰EèH‹MèH‹E¸ºÿÿÿÿH‰ÎH‰ÇèJùÿÇEüé<H‹E¸¾H‰Çè­ùÿ…À„®H�UÀH‹E¸¾H‰Çè@ËøÿH‰EàH‹E¸¾H‰Çè;ÎøÿƒøÿtH‹E¸¾H‰Çè%ùÿ븉EÜ‹E܉ÇèùøÿH‰EÐH‹EÀ‰ÂH‹MàH‹EÐH‰ÎH‰Çè$ìøÿƒøuH‹UÐH‹EðH‰ÖH‰Çèüùÿ‰EüH‹EÐH‰Çèíùÿ‹UüH‹E¸‰ÖH‰Çèœûøÿ‰EüëuH‹E¸ºH�5HïH‰ÇèŸùøÿH‹H‰EÈH‹EÈH‰Çè\ÈøÿƒøtH‹E¸H�¼ï¾H‰ÇèÏÒøÿ…À�H‹UÈH‹EðH‰ÖH‰Çèyùÿ‰Eü‹UüH‹E¸‰ÖH‰Çè%ûøÿ‰Eü‹EüÉÃUH‰åSHƒì8H‰}ȉuÄ‹UÄH‹EȉÖH‰ÇèÍøÿƒøt‹MÄH‹EÈH�™ï‰ÎH‰Çè_Òøÿ…À�ègùÿH‰Eà‹UÄH‹EȉÖH‰ÇèâÌøÿƒø…¾‹UÄH‹EȉÖH‰ÇèXíøÿ‰EÜÇEìé’‹Eì�P‹MÄH‹EȉÎH‰Çè"ÓøÿH‹EȾÿÿÿÿH‰Çè‘ÌøÿH‹EȺÿÿÿÿH�5pîH‰ÇèéËøÿH‹H‰EÐH‹EÐH‰ÇèfáøÿH‰EÐH‹EÐH‰ÇègÇÿÿH‰ÃH‹EàH‰ÇètÇÿÿH‰ÞH‰Çè\çøÿH‹EȾþÿÿÿH‰Çè» ùÿƒEì‹Eì;EÜŒbÿÿÿH‹EàHƒÄ8[]ÃUH‰åHƒì H‰}èH‰uàÇEüÇEøH‹E躾H‰Çè,ùÿH‹EàH‰ÇèïÆÿÿH‰ÇèØÙøÿ‰EøÇEüé“H‹EàH‰ÇèÌÆÿÿH‰Â‹Eü‰ÆH‰×è}üøÿH‰EðH‹EðH‰Çè�àøÿH‰EðHƒ}ðt5H‹Eè¾H‰Çè±éøÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5FíH‰Çè/Çøÿë H‹EèH‰Çèqäøÿ‹Eü�PH‹Eè¾þÿÿÿH‰ÇèšéøÿƒEü‹Eü;EøŒaÿÿÿ¸ÉÃUH‰åHƒìH‰}øH‹EøH�9%H�5äìH‰Çè}àøÿH‹Eøº¾H‰Çè'ùÿH‹EøºH�5§8%H‰ÇèþÎÿÿ¸ÉÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰Çè×øÿH‹Eð¶„Àu ‹Eü‰ÇèóÐøÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰ÇèáøÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰ÇèÅÉøÿƒøtbH‹Eø¾þÿÿÿH‰Çè? ùÿH‹UèH‹uðH‹EøH� œìH‰Çè ùÿ…Àt H‹EøH‰ÇèÔØøÿH‹Eø¾ÿÿÿÿH‰ÇèƒãøÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰ÇèyÛøÿ‹Uà‹MäH‹Eø‰ÎH‰ÇèÅûøÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5 íH‰Ç¸è�îøÿH‹EøH�í¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çèàâøÿò*EôH‹EøH‰Çè/ÊøÿH‹Eø¾ýÿÿÿH‰ÇèÞÚøÿH‹EøA¸¹ºÛH�5³ëH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çè ùÿéå‹Uà‹MäH‹Eè‰ÎH‰Çè©ÐøÿéÌH‹EèH�=ì¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çèãáøÿ‹UàH‹Eè‰ÖH‰ÇèÒáøÿH‹EèA¸¹ºH�5çëH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰ÇèÑøÿ‰EüH‹Eè¾þÿÿÿH‰Çè ùÿ‹EüëH‹EèH�5ÊëH‰Ç¸èíìøÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�Ië¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çèáøÿ‹UüH‹Eè‰ÖH‰ÇèÆ ùÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰ÇèÓÆøÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çè;çøÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèîÇøÿ龋MôH‹EøH�ñê‰ÎH‰Çè1Ïøÿ…À…š‹UôH‹Eø‰ÖH‰ÇèØæøÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè‹ÇøÿëZ‹MôH‹EøH�‘ê‰ÎH‰ÇèÑÎøÿ…ÀuA‹UôH‹Eø‰ÖH‰ÇèìÅøÿ‰ÂH‹Eø‰ÖH‰Çè|âøÿH‰ÂH‹EøH�5^êH‰Ç¸èQëøÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çèùøÿ‹UüH‹Eè‰ÖH‰ÇèMèøÿH‹Eè¾ÿÿÿÿH‰Çè\ÅøÿH‹Eè¾ÿÿÿÿH‰ÇèKÅøÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�;é¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çè—øøÿH‹Eè¾þÿÿÿH‰Çè×øÿ‹UüH‹Eè‰ÖH‰ÇèÅàøÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè>ÅøÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çèçãøÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çèhöøÿ…ÀuIHƒ}ètH‹UèH‹EøH�5ÂèH‰Ç¸è‘éøÿë$H‹EøºH�5·èH‰ÇèEH‹EøH‰Çè+Óøÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�Êç¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè¦ãøÿH‹E躾ÿÿÿÿH‰Çè`Àøÿ‹UüH‹Eè‰ÖH‰Çè¯ ùÿH‹Eè¾ÿÿÿÿH‰ÇèNÃøÿH‹Eè¾ÿÿÿÿH‰Çè=Ãøÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Çè°ùÿH‹E躾H‰ÇèZøøÿH‹UØH‹EèH‰ÖH‰ÇèãøÿH‹E躾ÿÿÿÿH‰ÇèÑ¿øÿH‹Eè¾þÿÿÿH‰ÇèàÜøÿ‹UüH‹Eè‰ÖH‰ÇèOùøÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�³æ¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè×ùÿ‹Eô…ÀuH‹EèH�5 çH‰Ç¸è¸çøÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�öæ‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰ÇèùáøÿH‹E躾ÿÿÿÿH‰Çè³¾øÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèµÛøÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè/ùÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Çè÷÷øÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèÍùÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�Cå¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰Çè}¿øÿH‹Eø¾ÿÿÿÿH‰ÇèìÀøÿH‹Eø¾þÿÿÿH‰Çè ùÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèdùøÿH‰EøH‹EèH�Éä¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çè@×øÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰ÇèÙ¾øÿH‹Eè¾ÿÿÿÿH‰ÇèHÀøÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰ÇèÂÏøÿ‰EôH‹Eè¾ýÿÿÿH‰Çè®ÿøÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰ÇèÔÀøÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰ÇèŸÀøÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰ÇèA¿øÿƒøt ¸éüH‹EøH‰ÇèVØøÿéÍH‹Eø¾þÿÿÿH‰Çè¿øÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çè�Îøÿ…ÀtH‹Eø¾þÿÿÿH‰Çèlþøÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çèv ùÿH‹EøºH�5 ãH‰ÇèìH‹Eø¾þÿÿÿH‰Çè­ÐøÿH‹Eø¾H‰Çèlýøÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèäýøÿH‹Eø¾þÿÿÿH‰Çèóùÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèÕøÿ‰EüH‹UàH‹EèH�5ãH‰ÇèŽíøÿH‹Eè¾îØÿÿH‰Çèý×øÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çè8ýøÿ¸ë‹UüH‹Eè‰ÖH‰Çè ýøÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5eâH‰Ç¸èzëøÿéÜH‹EðH‹@¶H‹EèH‹@H‰Çèí·øÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çèηøÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèéËøÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5�ÚH‰ÇèH‹'¾$H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5XÚH‰Ç¸è¹âøÿH‹…ÀïÿÿH�5AÚH‰Çè³àøÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5ÚH‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5¨ÙH‰Çè£ÚøÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5ÙH‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè5°øÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè6üøÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çè×øÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè`òøÿ‹UüH‹…ÈïÿÿH�5–ØH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çèqþøÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�è×H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�Î×H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèóøÿÉÃUH‰åHƒì H‰}è‰uäH�Ã×H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�o×H‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè™Âøÿ‹UðH‹Eø‰ÖH‰ÇèˆÂøÿ‹UôH‹Eø‰ÖH‰Çè7ëøÿ‹UðH‹Eø‰ÖH‰Çè&ëøÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çè ¿øÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�øÍ¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�h;H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çèô½øÿH‹Eø¾þÿÿÿH‰Çè3¹øÿ‹UôH‹Eø‰ÖH‰Çè‚Ýøÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰ÇèœÁøÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'è‹ÎøÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèͧøÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�‡Ì‰ÎH‰Çèí®øÿ…À…�‹UäH‹Eè‰ÖH‰Çè¦øÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5%ÌH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Ç謿øÿé3‹UäH‹Eè‰ÖH‰Çè¯øÿ…ÀtH‹EèºH�5áËH‰ÇèÈ÷ÿÿéH‹EèºH�5ÉËH‰Çè«÷ÿÿéä‹MäH‹EèH�´Ë‰ÎH‰ÇèÀËøÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çè¥øÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çè塸ÿë‹UüH‹Eè‰ÖH‰Çè‚ÁøÿH‰Eð‹UäH‹Eè‰ÖH‰ÇèÕøÿH‰ÁH‹UðH‹EèH�5<ËH‰Ç¸èÞÒøÿƒ}øtCH‹Eè¾þÿÿÿH‰Çègçøÿ�ë/H‹Eè¾ÿÿÿÿH‰ÇèÃåøÿ…ÀuH‹EèH�5üÊH‰Ç¸è÷Éøÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè?¡øÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�KʾH‰ÇèÏßÿÿH‹EøH�½Ê¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çèq¢øÿH‹Eø¾ÿÿÿÿH‰Çèà£øÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèWãøÿH‹MèH‹EøºH‰ÎH‰Çè_ðøÿH‹UðH‹EøH‰ÖH‰Çè¼ÃøÿH‹Eøº¾ÿÿÿÿH‰Çèv øÿH‹Eøº¾H‰ÇèÖøÿH‹Eø¾ÿÿÿÿH‰Çèo½øÿH‹UðH‹Eø¾ýÿÿÿH‰Çèʬøÿƒ}ät&H‹Eø¾ÿÿÿÿH‰ÇèC½øÿH‹UðH‹Eø¾îØÿÿH‰Ç螬øÿH‹Eø¾þÿÿÿH‰ÇèÝåøÿ�ÉÃUH‰åHƒì H‰}èH‰uàH‹EàH‰Çè>¦øÿH‰EøHƒ}øt5H‹Eè¾H‰ÇèÁøÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5jÉH‰Çè�žøÿë H‹EèH‰ÇèÒ»øÿ¸ÉÃUH‰åATSHƒì@H‰}¸‰u´‰U°èAÀøÿH‰EàÇEì‹U´H‹E¸‰ÖH‰ÇèõÂøÿ‰EÜÇEèé ‹Eì�P‹M´H‹E¸‰ÎH‰Ç迨øÿH‹E¸¾ÿÿÿÿH‰Çè.¢øÿH‹E¸H‰ÇèR»øÿé°H‹E¸º¾þÿÿÿH‰Çè· øÿH‰EÐH�UÀH‹E¸¾ÿÿÿÿH‰ÇèίøÿH‰EÈHƒ}Ðu ÇEèé†H‹EÀ‰Áƒ}°t¿ë¿H‹UÈH‹uÐH‹EàHƒìjA¹ÿÿÿÿA‰ÈH‰Ñ‰úH‰ÇèWÖøÿHƒÄ‰EèH‹EÐH‰Çè¤Æøÿƒ}èu,H‹E¸¾þÿÿÿH‰ÇèýàøÿH‹E¸¾þÿÿÿH‰Çè äøÿ…À…7ÿÿÿë�ƒEì‹Eì;EÜ} ƒ}è„åþÿÿƒ}ètsH‹EàH‰ÇèYæøÿHÇEà‹Eì�XH‹E¸º¾ÿÿÿÿH‰Çèõ�øÿI‰ÄH‹E¸º¾þÿÿÿH‰ÇèÜ�øÿH‰Æ‹U´H‹E¸A‰ÑA‰ØL‰áH‰òH�5—ÇH‰Ç¸èòÎøÿH‹EàH�eð[A\]ÃUH‰åHƒì H‰}èÇEüH‹E躾H‰ÇèL°øÿH‹Eè¾H‰Çè ÁøÿH…ÀuH‹EèH�ƒÇ¾H‰Çè¾¥øÿ…À�H‹Eè¾H‰ÇèJ øÿƒøÿtH‹Eè¾H‰ÇèÄ©øÿ븉Eø‹UøH‹Eè¾H‰Çè{ýÿÿH‰EðHƒ}ðtJHƒ}ðt5H‹Eè¾H‰Çè3¾øÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5‹ÆH‰Çè±›øÿë>H‹EèH‰Çèó¸øÿë0H‹EèH‰Çè司ÿH‹EèH‰Çè©¶øÿ�PÿH‹Eè‰ÖH‰ÇèȱøÿÇEü‹EüÉÃUH‰åHƒì0H‰}ØÇEüH�UèH‹EؾH‰ÇèD­øÿH‰EàH‹EèH‰ÂH�EàH‰Æ¿èHàøÿH‰EðHƒ}ðtOHƒ}ðt5H‹EؾH‰Çèe½øÿH‰ÂH‹EðH‰H‹EغÿÿÿÿH�5½ÅH‰Çèãšøÿë H‹EØH‰Çè%¸øÿÇEüƒ}üuH‹EؾH‰Çè·Ìøÿë‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5fÅH‰ÇèžøÿH‹H‰EøH‹EøH‰ÇèÉãøÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5(ÅH‰ÇèÞ�øÿH‹H‰EøH‹Eøº¾H‰ÇèÁ¶øÿH‰EðH‹UðH‹EèH‰ÖH‰ÇèZ¾øÿH‹E躾ÿÿÿÿH‰Çè›øÿH‹EðºªH�5UÅH‰Çèì³øÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5›ÄH‰ÇèQ�øÿH‹H‰EøH‹Eø¹º¾H‰ÇèßäøÿH‰EðH‹EðH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EèH‰Çèúžøÿ¸ÉÃUH‰åHƒÄ€H‰}ˆH‹EˆºH�5ÄH‰ÇèÏœøÿH‹H‰EøH‹Eˆº¾H‰ÇèòÖøÿH‰EðÇEœ@H�MœH�U H‹uðH‹EøH‰Çè�¥øÿ‰Eìƒ}ìu‹Eœ‰ÂH�M H‹EˆH‰ÎH‰Çè\ïÿÿƒ}ìt‹UìH‹Eˆ‰ÖH‰ÇèÇÊøÿë‹EìÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5vÃH‰Çè,œøÿH‹H‰EøH‹EȺ¾H‰Çèo¢øÿ‰EôH‹EȺ¾H‰ÇèV¢øÿH‰Eèè­»øÿH‰ÇèÕÝøÿH‰EàH‹Mè‹UôH‹uøH‹EàH‰Çèz—øÿ‰E܃}Üu;H�UÐH‹EàH‰Ñº¾sH‰Ç褞øÿH‹EÐH‹H‹EÐH‹HH‹EÈH‰ÎH‰ÇètîÿÿH‹EàH‰ÇèjÂøÿƒ}Üt‹UÜH‹EȉÖH‰ÇèÓÉøÿë‹EÜÉÃUH‰åSHƒì8H‰}ØH‰uЉUÌH‹EÐH‰ÇèÜ·øÿH‰EèH‹EÐH‰ÇèìéøÿH‰EàH‹Eغ¾H‰ÇèòÐøÿƒ}Ìt-H‹UèH‹EØH‰ÖH‰Çè‰ÔøÿH‹MàH‹EغÿÿÿÿH‰ÎH‰Çè1äøÿëkH‹EèH‰ÇèóÏøÿ‰Çè<ÃøÿH‰ÂH‹EØH‰ÖH‰Çèj»øÿH‹Eغ¾ÿÿÿÿH‰Çè$˜øÿH‹EàH‰ÇèÈãøÿHcØH‹EàH‰Çè¹âøÿH‰ÁH‹EØH‰ÚH‰ÎH‰ÇèbíÿÿH‹EؾýÿÿÿH‰ÇèƒÑøÿ¸HƒÄ8[]ÃUH‰åHƒì0H‰}ØH‹EغH�5}ÁH‰Çè3šøÿH‹H‰EðH‹EؾH‰Ç諚øÿƒøÿtH‹EؾH‰Çè%¤øÿ븉EìH‹Eغ¾H‰ÇèÅÏøÿÇEüH‹EðH‰Çè"¬øÿ‰EèëF‹UüH‹Eð‰ÖH‰Çè,ÆøÿH‰Eà‹UìH‹MàH‹EØH‰ÎH‰ÇèFþÿÿ‹Eü�PH‹EؾþÿÿÿH‰Ç苸øÿƒEü‹Eü;Eè|²¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5žÀH‰ÇèT™øÿH‹H‰EøH‹EغH�5ÀH‰Çè5™øÿH‹H‰EðH‹UðH‹EøH‰ÖH‰Çè{½øÿ‰Eìƒ}ì”À¶ÐH‹E؉ÖH‰ÇèPÞøÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ÀH‰ÇèÕ˜øÿH‹H‰EøH‹EøH‰Ç袜øÿH‰EðHƒ}ðt5H‹Eè¾H‰Çèv·øÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5οH‰Çèô”øÿë H‹EèH‰Çè6²øÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5•¿H‰ÇèK˜øÿH‹H‰EðHÇEèH�UèH‹EðH‰ÖH‰Çèù¾øÿ‰Eüƒ}ü~8‹EüHcÐH‹MèH‹EØH‰ÎH‰ÇèõêÿÿH‹EèºLH�5È¿H‰Çè_®øÿÇEüƒ}ü‹UüH‹E؉ÖH‰ÇèAÆøÿë‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5ð¾H‰Ç覗øÿH‹H‰EøH‹EøH‰Çèã©øÿ‰Eô‹EôHcÐH‹EèH‰ÖH‰Çèë®øÿ¸ÉÃUH‰åSHƒìHH‰}¸H‹E¸ºH�5™¾H‰ÇèO—øÿH‹H‰EàH‹E¸º¾H‰Çèr–øÿH‰EØH‹E¸HÇÂÿÿÿÿ¾H‰Çèv�øÿ‰EÔÇEì‹UÔH‹MØH‹EàH‰ÎH‰Çè6Öøÿ‰EÔH‹EØH‰Çè—¼øÿƒ}Ôÿtq‹UÔH‹Eà‰ÖH‰Çè@ÃøÿH‰EÈH‹EÈH‰Çè€åøÿH‰EÀH‹EÀH‰ÇèàßøÿHcØH‹EÀH‰ÇèÑÞøÿH‰ÁH‹E¸H‰ÚH‰ÎH‰Çèzéÿÿ‹EÔHcÐH‹E¸H‰ÖH‰Çèç­øÿÇEì‹EìHƒÄH[]ÃUH‰åHƒì0H‰}ØH‹EغH�5Œ½H‰ÇèB–øÿH‹H‰EðH‹EؾH‰Çèºäøÿ‰EìH‹EؾH‰Ç視øÿƒøÿtH‹EؾH‰Çè  øÿ븉Eè‹UìH‹Eð‰ÖH‰ÇèUÂøÿH‰EàÇEüHƒ}àt‹UèH‹MàH‹EØH‰ÎH‰Çèaúÿÿ‰Eü‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5Û¼H‰Çè‘•øÿH‹H‰EøH‹EȺ¾H‰Çè´”øÿH‰EðH�UØH‹EȾH‰ÇèË£øÿH‰EèH‹EȾH‰ÇèÖ•øÿƒøÿtH‹EȾH‰ÇèPŸøÿ븉EäH‹E؉Áƒ}ät¿ë¿H‹UèH‹uðH‹EøHƒìjA¹ÿÿÿÿA‰ÈH‰Ñ‰úH‰Çè6ÊøÿHƒÄ‰EàH‹EðH‰Ç胺øÿ‹UàH‹EȉÖH‰Çè2ÃøÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5æ»H‰Ç蜔øÿH‹H‰EðH‹EؾH‰Çèãøÿ‰EìÇEü‹UìH‹Eð‰ÖH‰Çèy£øÿH‰EàHƒ}àtTH‹EàH‰Çèò°øÿH‰ÂH‹EØH‰ÖH‰ÇèÐÍøÿH‹EàH‰ÇèôâøÿH‰ÁH‹EغÿÿÿÿH‰ÎH‰ÇèmÝøÿH‹EàH‰Ç衚øÿÇEü‹EüÉÃUH‰åSHƒì8H‰}ȉuÄ‹UÄH‹EȉÖH‰Çèt”øÿƒøt‹MÄH‹EÈH�)¼‰ÎH‰Çè·™øÿ…À�è¿ÞøÿH‰Eà‹UÄH‹EȉÖH‰Çè:”øÿƒø…¾‹UÄH‹EȉÖH‰Çè°´øÿ‰EÜÇEìé’‹Eì�P‹MÄH‹EȉÎH‰ÇèzšøÿH‹EȾÿÿÿÿH‰Çè铸ÿH‹EȺÿÿÿÿH�5‹ºH‰ÇèA“øÿH‹H‰EÐH‹EÐH‰Çè—øÿH‰EÐH‹EÐH‰ÇèöÈÿÿH‰ÃH‹EàH‰ÇèÉÿÿH‰ÞH‰Çè´®øÿH‹EȾþÿÿÿH‰ÇèÓøÿƒEì‹Eì;EÜŒbÿÿÿH‹EàHƒÄ8[]ÃUH‰åHƒì H‰}èH‰uàÇEüÇEøH‹E躾H‰Çè„ÈøÿH‹EàH‰Çè~ÈÿÿH‰Çè0¡øÿ‰EøÇEüé“H‹EàH‰Çè[ÈÿÿH‰Â‹Eü‰ÆH‰×èÕÃøÿH‰EðH‹EðH‰Çè5–øÿH‰EðHƒ}ðt5H‹Eè¾H‰Çè ±øÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5a¹H‰Ç臎øÿë H‹EèH‰ÇèÉ«øÿ‹Eü�PH‹Eè¾þÿÿÿH‰Çèò°øÿƒEü‹Eü;EøŒaÿÿÿ¸ÉÃUH‰åHƒìH‰}øH‹EøH�T%H�5ÿ¸H‰ÇèÕ§øÿH‹Eøº¾H‰ÇèÇøÿH‹EøºH�5ß%H‰ÇèõÏÿÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰ÇèšžøÿH‹Eð¶„Àu ‹Eü‰Çèu˜øÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Ç蓨øÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰ÇèG‘øÿƒøtbH‹Eø¾þÿÿÿH‰ÇèÁÐøÿH‹UèH‹uðH‹EøH� ¹H‰Çè–Òøÿ…Àt H‹EøH‰ÇèV øÿH‹Eø¾ÿÿÿÿH‰Çè«øÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Çèû¢øÿ‹Uà‹MäH‹Eø‰ÎH‰ÇèGÃøÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5޹H‰Ç¸è¶øÿH‹EøH�š¹¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çèbªøÿò*EôH‹EøH‰Ç豑øÿH‹Eø¾ýÿÿÿH‰Çè`¢øÿH‹EøA¸¹ºÛH�55¸H‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çè„Óøÿéå‹Uà‹MäH‹Eè‰ÎH‰Çè+˜øÿéÌH‹EèH�¿¸¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çèe©øÿ‹UàH‹Eè‰ÖH‰ÇèT©øÿH‹EèA¸¹ºH�5i¸H‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çè ˜øÿ‰EüH‹Eè¾þÿÿÿH‰ÇèŒÎøÿ‹EüëH‹EèH�5L¸H‰Ç¸èo´øÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�Ë·¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Ç虨øÿ‹UüH‹Eè‰ÖH‰ÇèHÑøÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰ÇèUŽøÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çè½®øÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çèp�øÿ龋MôH‹EøH�s·‰ÎH‰Çè³–øÿ…À…š‹UôH‹Eø‰ÖH‰ÇèZ®øÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè �øÿëZ‹MôH‹EøH�·‰ÎH‰ÇèS–øÿ…ÀuA‹UôH‹Eø‰ÖH‰Çèn�øÿ‰ÂH‹Eø‰ÖH‰Çèþ©øÿH‰ÂH‹EøH�5à¶H‰Ç¸èÓ²øÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çè Àøÿ‹UüH‹Eè‰ÖH‰ÇèϯøÿH‹Eè¾ÿÿÿÿH‰ÇèÞŒøÿH‹Eè¾ÿÿÿÿH‰ÇèÍŒøÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�½µ¾H‰Çè»H‹UØH‹EèH‰ÖH‰ÇèÀøÿH‹Eè¾þÿÿÿH‰Ç蘞øÿ‹UüH‹Eè‰ÖH‰ÇèG¨øÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèÀŒøÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çèi«øÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çèê½øÿ…ÀuIHƒ}ètH‹UèH‹EøH�5DµH‰Ç¸è±øÿë$H‹EøºH�59µH‰ÇèEH‹EøH‰Çè­šøÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�L´¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè(«øÿH‹E躾ÿÿÿÿH‰Çèâ‡øÿ‹UüH‹Eè‰ÖH‰Çè1ÒøÿH‹Eè¾ÿÿÿÿH‰ÇèЊøÿH‹Eè¾ÿÿÿÿH‰Ç迊øÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Çè2ÊøÿH‹E躾H‰ÇèÜ¿øÿH‹UØH‹EèH‰ÖH‰Ç虪øÿH‹E躾ÿÿÿÿH‰ÇèS‡øÿH‹Eè¾þÿÿÿH‰Çèb¤øÿ‹UüH‹Eè‰ÖH‰ÇèÑÀøÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�5³¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰ÇèYÉøÿ‹Eô…ÀuH‹EèH�5�³H‰Ç¸è:¯øÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�x³‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰Çè{©øÿH‹E躾ÿÿÿÿH‰Çè5†øÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè7£øÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè±Õøÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Çèy¿øÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèOÈøÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�ű¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰Çèÿ†øÿH‹Eø¾ÿÿÿÿH‰ÇènˆøÿH‹Eø¾þÿÿÿH‰Çè�Ñøÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèæÀøÿH‰EøH‹EèH�K±¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çèžøÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çè[†øÿH‹Eè¾ÿÿÿÿH‰ÇèʇøÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰ÇèD—øÿ‰EôH‹Eè¾ýÿÿÿH‰Çè0Çøÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰ÇèVˆøÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çè!ˆøÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰ÇèÆøÿƒøt ¸éüH‹EøH‰ÇèØŸøÿéÍH‹Eø¾þÿÿÿH‰Çè’†øÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çè–øÿ…ÀtH‹Eø¾þÿÿÿH‰ÇèîÅøÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰ÇèøÑøÿH‹EøºH�5"°H‰ÇèìH‹Eø¾þÿÿÿH‰Çè/˜øÿH‹Eø¾H‰ÇèîÄøÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèfÅøÿH‹Eø¾þÿÿÿH‰ÇèuÈøÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çèšœøÿ‰EüH‹UàH‹EèH�5”¯H‰ÇèµøÿH‹Eè¾îØÿÿH‰ÇèŸøÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰ÇèºÄøÿ¸ë‹UüH‹Eè‰ÖH‰Çè¢Äøÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5ç®H‰Ç¸èü²øÿéÜH‹EðH‹@¶H‹EèH‹@H‰Çèoøÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰ÇèPøÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çèk“øÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5§H‰ÇèH‹©…$H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5Ú¦H‰Ç¸è;ªøÿH‹…ÀïÿÿH�5æH‰Çè5¨øÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5™¦H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5*¦H‰Çè%¢øÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5¦H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè·wøÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè¸Ãøÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Ç蜞øÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çèâ¹øÿ‹UüH‹…ÈïÿÿH�5¥H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰ÇèóÅøÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�j¤H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�P¤H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çè»øÿÉÃUH‰åHƒì H‰}è‰uäH�E¤H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�ñ£H‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰ÇèŠøÿ‹UðH‹Eø‰ÖH‰Çè Šøÿ‹UôH‹Eø‰ÖH‰Çè¹²øÿ‹UðH‹Eø‰ÖH‰Ç訲øÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Ç茆øÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�zš¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�꙾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çèv…øÿH‹Eø¾þÿÿÿH‰Çèµ€øÿ‹UôH‹Eø‰ÖH‰Çè¥øÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè‰øÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'è –øÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèOoøÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH� ™‰ÎH‰Çèovøÿ…À…�‹UäH‹Eè‰ÖH‰Çè†møÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5§˜H‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè.‡øÿé3‹UäH‹Eè‰ÖH‰Çè˜vøÿ…ÀtH‹EèºH�5c˜H‰ÇèÈ÷ÿÿéH‹EèºH�5K˜H‰Çè«÷ÿÿéä‹MäH‹EèH�6˜‰ÎH‰ÇèB“øÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çè�løÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çègiøÿë‹UüH‹Eè‰ÖH‰Çè‰øÿH‰Eð‹UäH‹Eè‰ÖH‰Ç蟜øÿH‰ÁH‹UðH‹EèH�5¾—H‰Ç¸è`šøÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè鮸ÿ�ë/H‹Eè¾ÿÿÿÿH‰ÇèE­øÿ…ÀuH‹EèH�5~—H‰Ç¸èy‘øÿë�H‹UØH‹Eè¾ÿÿÿÿH‰ÇèÁhøÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�Í–¾H‰ÇèÏßÿÿH‹EøH�?—¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèóiøÿH‹Eø¾ÿÿÿÿH‰Çèbkøÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèÙªøÿH‹MèH‹EøºH‰ÎH‰Çèá·øÿH‹UðH‹EøH‰ÖH‰Çè>‹øÿH‹Eøº¾ÿÿÿÿH‰ÇèøgøÿH‹Eøº¾H‰Çè‚�øÿH‹Eø¾ÿÿÿÿH‰Çèñ„øÿH‹UðH‹Eø¾ýÿÿÿH‰ÇèLtøÿƒ}ät&H‹Eø¾ÿÿÿÿH‰ÇèÅ„øÿH‹UðH‹Eø¾îØÿÿH‰Çè tøÿH‹Eø¾þÿÿÿH‰Çè_­øÿ�ÉÃUH‰åHƒì@H‰}Èè•øÿH‰EðH‹EȾH‰Çèfjøÿ…ÀŽéH‹EȺ¾H‰ÇèzøÿH‹EȾH‰ÇèÇŠøÿ‰EìÇEüé§‹Eü�PH‹EȾH‰Çè‘pøÿH‹EȾÿÿÿÿH‰ÇèjøÿH‹EȺÿÿÿÿH�5¢•H‰Çèh³øÿH…ÀuH‹EÈH�—•¾H‰Çè+oøÿ…À�H‹EȺÿÿÿÿH�5j•H‰Çè iøÿH‹H‰EàH‹EȾþÿÿÿH‰Çè(©øÿH‹UàH‹EðH‰ÖH‰ÇèÕ|øÿƒEü‹Eü;EìŒMÿÿÿH‹EȾH‰Çèdiøÿ…ÀŽªH‹EȺ¾H‰ÇèyøÿH‹EȾH‰Çèʼnøÿ‰EìÇEüëo‹Eü�PH‹EȾH‰Çè’oøÿH‹EȾÿÿÿÿH‰ÇèiøÿH‹EȺÿÿÿÿH�5Ê”H‰ÇèYhøÿH‹H‰EØH‹EȾþÿÿÿH‰Çèa¨øÿH‹UØH‹EðH‰ÖH‰Çèî¦øÿƒEü‹Eü;Eì|‰Hƒ}ðt5H‹EȾH‰ÇèÚ†øÿH‰ÂH‹EðH‰H‹EȺÿÿÿÿH�5j”H‰ÇèXdøÿë H‹EÈH‰Çèš�øÿ¸ÉÃUH‰åHƒìH‰}øH‹EøH‰Çè›…øÿ�ÉÃUH‰åHƒì H‰}èH‹EèºH�5”H‰Çè”gøÿH‹H‰EøH‹EøH‰Çè!uøÿ¸ÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5Ø“H‰ÇèVgøÿH‹H‰EðH‹E¸º¾H‰Çè©uøÿH‰EèH‹E¸H� Ø$H�´“¾H‰Ç覇øÿ‰EäÇEÀÇEÄÇEÈÇEÌÿÿÿÿH�UÀH‹E¸I‰ÐH� õ×$H�t“¾H‰Çè!±øÿ‰EàÇEüHÇE؃}äuHèÔ”øÿH‰ÂH‹EðH‰ÖH‰Çèâ†øÿH‰EØHƒ}Øtl‹EàHcÈH‹UèH‹EØA¸¾H‰Çèløÿ‰EüëF茰øÿH‰ÂH‹EðH‰ÖH‰Ç蚆øÿH‰EØHƒ}Øt$‹EàHcÈH‹UèH‹EØA¸¾H‰Çè¾køÿ‰Eü‹UüH‹E¸‰ÖH‰Ç芔øÿÉÃUH‰åHƒì H‰}èH‹EèºH�5v’H‰ÇèôeøÿH‹H‰EøH‹Eè¾H‰Çèl´øÿ‰Eô‹UôH‹Eø‰ÖH‰ÇèXŒøÿ‰Eð‹UðH‹Eè‰ÖH‰Çè$”øÿÉÃUH‰åHƒì H‰}èH‹EèºH�5’H‰ÇèŽeøÿH‹H‰EøH‹Eè¾H‰Çè´øÿ‰Eô‹EôHcÐH‹EøH‰ÖH‰Çè®øÿ‰Eð‹UðH‹Eè‰ÖH‰Ç躓øÿÉÃUH‰åHƒì H‰}èH‹EèºH�5¦‘H‰Çè$eøÿH‹H‰EøH‹Eè¾H‰Ç蜳øÿ‰Eô‹UôH‹Eø‰ÖH‰Ç蘋øÿ‰Eð‹UðH‹Eè‰ÖH‰ÇèT“øÿÉÃUH‰åHƒì H‰}èH‹EèºH�5@‘H‰Çè¾døÿH‹H‰EøH‹Eè¾H‰ÇèF„øÿ‰Eô‹UôH‹Eø‰ÖH‰Ç袘øÿ‰Eð‹UðH‹Eè‰ÖH‰Çèî’øÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5Ú�H‰ÇèXdøÿH‹H‰EðH‹Eعº¾H‰ÇèÖzøÿH‰EèH‹Eعº¾H‰Çè·zøÿH‰EàHƒ}èuHƒ}àt_Hƒ}èuHƒ}àt¸ë¸‰EüHƒ}ètH‹UèH‹EðH‰ÖH‰Çèþ¥øÿ‰Eüƒ}üu0Hƒ}àt)H‹UàH‹EðH‰ÖH‰ÇèÛyøÿ‰EüëH‹EðH‰Çèj’øÿ‰Eüë�‹UüH‹E؉ÖH‰Çèó‘øÿÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5ß�H‰Çè]cøÿH‹H‰EèH‹E¸H‰ÇèÚzøÿ‰EäÇEøÇEüé‹UüH‹E¸‰ÖH‰Çè³cøÿƒø…+‹UüH‹E¸‰ÖH‰Çè)„øÿ‰EàÇEôéú‹Uô‹MüH‹E¸‰ÎH‰ÇèöiøÿH‹E¸¾ÿÿÿÿH‰ÇèecøÿH‹E¸ºÿÿÿÿH�5�H‰ÇèͬøÿH…Àt7H‹E¸ºÿÿÿÿH�5êŽH‰Çè bøÿH‹H‰EØH‹UØH‹EèH‰ÖH‰Çèfvøÿ‰EøëlH‹E¸ºÿÿÿÿH�5ÚŽH‰Çèy¬øÿH…Àt7H‹E¸ºÿÿÿÿH�5½ŽH‰ÇèLbøÿH‹H‰EÐH‹UÐH‹EèH‰ÖH‰Çèò øÿ‰Eøë‹MüH‹E¸H�¿Ž‰ÎH‰ÇèhøÿH‹E¸¾þÿÿÿH‰Çè$¢øÿƒEô‹Eô;EàŽúþÿÿ鸋UüH‹E¸H�5#ŽH‰Çè髸ÿH…Àt5‹UüH‹E¸H�5ŽH‰Çè¾aøÿH‹H‰EÈH‹UÈH‹EèH‰ÖH‰Çè„uøÿ‰Eøëh‹UüH‹E¸H�5ú�H‰Ç虫øÿH…Àt5‹UüH‹E¸H�5ß�H‰ÇènaøÿH‹H‰EÀH‹UÀH‹EèH‰ÖH‰Çè øÿ‰Eøë‹MüH‹E¸H�މÎH‰Çè'gøÿƒ}øtƒEü‹Eü;EäŽíýÿÿë�‹UøH‹E¸‰ÖH‰Çè}�øÿÉÃUH‰åHƒìH‰}øH‹EøH�$Ò$H�5g�H‰ÇèwøÿH‹Eøº¾H‰Ç诖øÿH‹EøºH�5�Ñ$H‰Çè£×ÿÿ¸ÉÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰Çè møÿH‹Eð¶„Àu ‹Eü‰Çè{gøÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Çè™wøÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰ÇèM`øÿƒøtbH‹Eø¾þÿÿÿH‰ÇèÇŸøÿH‹UèH‹uðH‹EøH� �H‰Ç蜡øÿ…Àt H‹EøH‰Çè\oøÿH‹Eø¾ÿÿÿÿH‰Çè zøÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Çèrøÿ‹Uà‹MäH‹Eø‰ÎH‰ÇèM’øÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5t�H‰Ç¸è…øÿH‹EøH�€�¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çèhyøÿò*EôH‹EøH‰Çè·`øÿH‹Eø¾ýÿÿÿH‰ÇèfqøÿH‹EøA¸¹ºÛH�5ŒH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Ç芢øÿéå‹Uà‹MäH‹Eè‰ÎH‰Çè1gøÿéÌH‹EèH�¥Œ¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çèkxøÿ‹UàH‹Eè‰ÖH‰ÇèZxøÿH‹EèA¸¹ºH�5OŒH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çè¦gøÿ‰EüH‹Eè¾þÿÿÿH‰Çè’�øÿ‹EüëH‹EèH�52ŒH‰Ç¸èuƒøÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�±‹¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰ÇèŸwøÿ‹UüH‹Eè‰ÖH‰ÇèN øÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè[]øÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰ÇèÃ}øÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çèv^øÿ龋MôH‹EøH�Y‹‰ÎH‰Çè¹eøÿ…À…š‹UôH‹Eø‰ÖH‰Çè`}øÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè^øÿëZ‹MôH‹EøH�ùЉÎH‰ÇèYeøÿ…ÀuA‹UôH‹Eø‰ÖH‰Çèt\øÿ‰ÂH‹Eø‰ÖH‰ÇèyøÿH‰ÂH‹EøH�5ÆŠH‰Ç¸èÙ�øÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çè¦�øÿ‹UüH‹Eè‰ÖH‰ÇèÕ~øÿH‹Eè¾ÿÿÿÿH‰Çèä[øÿH‹Eè¾ÿÿÿÿH‰ÇèÓ[øÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�£‰¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çè�øÿH‹Eè¾þÿÿÿH‰Çèžmøÿ‹UüH‹Eè‰ÖH‰ÇèMwøÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèÆ[øÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çèozøÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰ÇèðŒøÿ…ÀuIHƒ}ètH‹UèH‹EøH�5*‰H‰Ç¸è€øÿë$H‹EøºH�5‰H‰ÇèEH‹EøH‰Çè³iøÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�2ˆ¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè.zøÿH‹E躾ÿÿÿÿH‰ÇèèVøÿ‹UüH‹Eè‰ÖH‰Çè7¡øÿH‹Eè¾ÿÿÿÿH‰ÇèÖYøÿH‹Eè¾ÿÿÿÿH‰ÇèÅYøÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Çè8™øÿH‹E躾H‰ÇèâŽøÿH‹UØH‹EèH‰ÖH‰ÇèŸyøÿH‹E躾ÿÿÿÿH‰ÇèYVøÿH‹Eè¾þÿÿÿH‰Çèhsøÿ‹UüH‹Eè‰ÖH‰Çè×�øÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�‡¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè_˜øÿ‹Eô…ÀuH‹EèH�5u‡H‰Ç¸è@~øÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�^‡‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰Çè�xøÿH‹E躾ÿÿÿÿH‰Çè;UøÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè=røÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè·¤øÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰ÇèŽøÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèU—øÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�«…¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰ÇèVøÿH‹Eø¾ÿÿÿÿH‰ÇètWøÿH‹Eø¾þÿÿÿH‰Ç裠øÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèì�øÿH‰EøH‹EèH�1…¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰ÇèÈmøÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰ÇèaUøÿH‹Eè¾ÿÿÿÿH‰ÇèÐVøÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰ÇèJføÿ‰EôH‹Eè¾ýÿÿÿH‰Çè6–øÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çè\Wøÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çè'Wøÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰ÇèÉUøÿƒøt ¸éüH‹EøH‰ÇèÞnøÿéÍH‹Eø¾þÿÿÿH‰Çè˜Uøÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çè eøÿ…ÀtH‹Eø¾þÿÿÿH‰Çèô”øÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çèþ øÿH‹EøºH�5„H‰ÇèìH‹Eø¾þÿÿÿH‰Çè5gøÿH‹Eø¾H‰Çèô“øÿ¸ë/H‹Eø¾þÿÿÿH‰Çèl”øÿH‹Eø¾þÿÿÿH‰Çè{—øÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çè køÿ‰EüH‹UàH‹EèH�5zƒH‰Çè„øÿH‹Eè¾îØÿÿH‰Çè…nøÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰ÇèÀ“øÿ¸ë‹UüH‹Eè‰ÖH‰Ç訓øÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5Í‚H‰Ç¸è‚øÿéÜH‹EðH‹@¶H‹EèH‹@H‰ÇèuNøÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰ÇèVNøÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèqbøÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5ézH‰ÇèH‹¯T$H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5ÀzH‰Ç¸èAyøÿH‹…ÀïÿÿH�5©zH‰Çè;wøÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5zH‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5zH‰Çè+qøÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5çyH‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè½FøÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè¾’øÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çè¢møÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çèèˆøÿ‹UüH‹…ÈïÿÿH�5þxH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çèù”øÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�PxH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�6xH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèŠøÿÉÃUH‰åHƒì H‰}è‰uäH�+xH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�×wH‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè!Yøÿ‹UðH‹Eø‰ÖH‰ÇèYøÿ‹UôH‹Eø‰ÖH‰Çè¿�øÿ‹UðH‹Eø‰ÖH‰Çè®�øÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çè’Uøÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�`n¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�Ðm¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çè|TøÿH‹Eø¾þÿÿÿH‰Çè»Oøÿ‹UôH‹Eø‰ÖH‰Çè tøÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè$XøÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èeøÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèU>øÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�ïl‰ÎH‰ÇèuEøÿ…À…�‹UäH‹Eè‰ÖH‰ÇèŒ<øÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5�lH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè4Vøÿé3‹UäH‹Eè‰ÖH‰ÇèžEøÿ…ÀtH‹EèºH�5IlH‰ÇèÈ÷ÿÿéH‹EèºH�51lH‰Çè«÷ÿÿéä‹MäH‹EèH�l‰ÎH‰ÇèHbøÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çè£;øÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çèm8øÿë‹UüH‹Eè‰ÖH‰Çè XøÿH‰Eð‹UäH‹Eè‰ÖH‰Çè¥køÿH‰ÁH‹UðH‹EèH�5¤kH‰Ç¸èfiøÿƒ}øtCH‹Eè¾þÿÿÿH‰Çèï}øÿ�ë/H‹Eè¾ÿÿÿÿH‰ÇèK|øÿ…ÀuH‹EèH�5dkH‰Ç¸è`øÿë�H‹UØH‹Eè¾ÿÿÿÿH‰ÇèÇ7øÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�³j¾H‰ÇèÏßÿÿH‹EøH�%k¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çèù8øÿH‹Eø¾ÿÿÿÿH‰Çèh:øÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèßyøÿH‹MèH‹EøºH‰ÎH‰Çèç†øÿH‹UðH‹EøH‰ÖH‰ÇèDZøÿH‹Eøº¾ÿÿÿÿH‰Çèþ6øÿH‹Eøº¾H‰ÇèˆløÿH‹Eø¾ÿÿÿÿH‰Çè÷SøÿH‹UðH‹Eø¾ýÿÿÿH‰ÇèRCøÿƒ}ät&H‹Eø¾ÿÿÿÿH‰ÇèËSøÿH‹UðH‹Eø¾îØÿÿH‰Çè&CøÿH‹Eø¾þÿÿÿH‰Çèe|øÿ�ÉÃUH‰åSHƒì8H‰}ȉuÄ‹UÄH‹EȉÖH‰Çèq9øÿƒøt‹MÄH‹EÈH�öi‰ÎH‰Çè´>øÿ…À�較øÿH‰Eà‹UÄH‹EȉÖH‰Çè79øÿƒø…¾‹UÄH‹EȉÖH‰Çè­Yøÿ‰EÜÇEìé’‹Eì�P‹MÄH‹EȉÎH‰Çèw?øÿH‹EȾÿÿÿÿH‰Çèæ8øÿH‹EȺÿÿÿÿH�5ŽiH‰Çè>8øÿH‹H‰EÐH‹EÐH‰ÇèKFøÿH‰EÐH‹EÐH‰Çèk×ÿÿH‰ÃH‹EàH‰Çèx×ÿÿH‰ÞH‰Çè±SøÿH‹EȾþÿÿÿH‰ÇèxøÿƒEì‹Eì;EÜŒbÿÿÿH‹EàHƒÄ8[]ÃUH‰åHƒì H‰}èH‰uàÇEüÇEøH‹E躾H‰Çè�møÿH‹EàH‰ÇèóÖÿÿH‰Çè-Føÿ‰EøÇEüé“H‹EàH‰ÇèÐÖÿÿH‰Â‹Eü‰ÆH‰×èÒhøÿH‰EðH‹EðH‰ÇèrEøÿH‰EðHƒ}ðt5H‹Eè¾H‰ÇèVøÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5dhH‰Çè„3øÿë H‹EèH‰ÇèÆPøÿ‹Eü�PH‹Eè¾þÿÿÿH‰ÇèïUøÿƒEü‹Eü;EøŒaÿÿÿ¸ÉÃUH‰åHƒì H‰}èèçVøÿH‰EøHƒ}øt5H‹Eè¾H‰Çè{UøÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5ÙgH‰Çèù2øÿë H‹EèH‰Çè;Pøÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5 gH‰ÇèP6øÿH‹H‰EøH‹EøH‰Çè�bøÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5bgH‰Çè6øÿH‹H‰EøH‹EøH‰ÇèDøÿH‰EðHƒ}ðt5H‹Eè¾H‰Çè³TøÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5gH‰Çè12øÿë H‹EèH‰ÇèsOøÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ØfH‰Çèˆ5øÿH‹H‰EøH‹EèºH�5¹fH‰Çèi5øÿH‹H‰EðH‹EøH‹H…Àt7H‹EðH‹H…Àt+H‹UðH‹EøH‰ÖH‰Çèç2øÿ…À”À¶ÐH‹Eè‰ÖH‰ÇèqzøÿëH‹Eè¾H‰Çè^zøÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�53fH‰Çèã4øÿH‹H‰EøH‹E躾H‰ÇèoøÿH‰EðH‹UðH‹EøH‰ÖH‰Çèmøÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ÔeH‰Çè„4øÿH‹H‰EøH‹MøH�UèH�uôH�EàH‰ÇèUOøÿH‹EàH…ÀtH‹UàH‹EØH‰ÖH‰ÇèÙmøÿë H‹EØH‰ÇèûMøÿ‹EôƒøÿuH‹EØH‰ÇèçMøÿëH‹MèH‹EغÿÿÿÿH‰ÎH‰Çè]}øÿ¸ÉÃUH‰åHƒì0H‰}ØÇEüH‹EغH�5+eH‰ÇèÛ3øÿH‹H‰EðH‹EغH�5#eH‰Çè¼3øÿH‹H‰EèH‹EؾH‰Çè44øÿƒøÿtH‹EغH�5eH‰Çè‡3øÿH‹ë¸H‰EàH‹EèH‰ÇèÝ^øÿH‰EèHƒ}àt0H‹EàH‰ÇèÖVøÿH‰EàH‹Eà‹PH‹MàH‹uèH‹EðH‰Çè·Zøÿ‰EüëH‹uèH‹Eð¹ºH‰Çè˜Zøÿ‰Eü‹UüH‹E؉ÖH‰ÇètaøÿÉÃUH‰åSH�ìx H‰½ˆßÿÿH‹…ˆßÿÿºH�5$dH‰ÇèÔ2øÿH‹H‰EèH‹MèH�UØH�uäH�EÐH‰Çè¥MøÿH‹EÐH…ÀtiH�•�ßÿÿH‹…ˆßÿÿH‰ÖH‰Çè†ëÿÿH‹]ÐH�…�ßÿÿ¾ H‰Çèßëÿÿ¹H‰Ú¾ H‰ÇèVFøÿH‹U°H˜HÐH‰E°H�…�ßÿÿH‰ÇèEîÿÿ¸ë¸H�Äx []ÃUH‰åHƒìH‰}øH‹EøH� ¤$H�5^cH‰Çè.HøÿH‹Eøº¾H‰ÇèØgøÿH‹EøºH�5¸£$H‰ÇèÆÙÿÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰Çèó>øÿH‹Eð¶„Àu ‹Eü‰ÇèÎ8øÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰ÇèìHøÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè 1øÿƒøtbH‹Eø¾þÿÿÿH‰ÇèqøÿH‹UèH‹uðH‹EøH� —bH‰Çèïrøÿ…Àt H‹EøH‰Çè¯@øÿH‹Eø¾ÿÿÿÿH‰Çè^KøÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰ÇèTCøÿ‹Uà‹MäH‹Eø‰ÎH‰Çè cøÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5cH‰Ç¸èjVøÿH‹EøH�c¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çè»Jøÿò*EôH‹EøH‰Çè 2øÿH‹Eø¾ýÿÿÿH‰Çè¹BøÿH‹EøA¸¹ºÛH�5®aH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰ÇèÝsøÿéå‹Uà‹MäH‹Eè‰ÎH‰Çè„8øÿéÌH‹EèH�8b¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çè¾Iøÿ‹UàH‹Eè‰ÖH‰Çè­IøÿH‹EèA¸¹ºH�5âaH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çèù8øÿ‰EüH‹Eè¾þÿÿÿH‰Çèånøÿ‹EüëH‹EèH�5ÅaH‰Ç¸èÈTøÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�Da¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰ÇèòHøÿ‹UüH‹Eè‰ÖH‰Çè¡qøÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè®.øÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰ÇèOøÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèÉ/øÿ龋MôH‹EøH�ì`‰ÎH‰Çè 7øÿ…À…š‹UôH‹Eø‰ÖH‰Çè³NøÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çèf/øÿëZ‹MôH‹EøH�Œ`‰ÎH‰Çè¬6øÿ…ÀuA‹UôH‹Eø‰ÖH‰ÇèÇ-øÿ‰ÂH‹Eø‰ÖH‰ÇèWJøÿH‰ÂH‹EøH�5Y`H‰Ç¸è,Søÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çèù`øÿ‹UüH‹Eè‰ÖH‰Çè(PøÿH‹Eè¾ÿÿÿÿH‰Çè7-øÿH‹Eè¾ÿÿÿÿH‰Çè&-øÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�6_¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çèr`øÿH‹Eè¾þÿÿÿH‰Çèñ>øÿ‹UüH‹Eè‰ÖH‰Çè Høÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè-øÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰ÇèÂKøÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰ÇèC^øÿ…ÀuIHƒ}ètH‹UèH‹EøH�5½^H‰Ç¸èlQøÿë$H‹EøºH�5²^H‰ÇèEH‹EøH‰Çè;øÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�Å]¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè�KøÿH‹E躾ÿÿÿÿH‰Çè;(øÿ‹UüH‹Eè‰ÖH‰ÇèŠrøÿH‹Eè¾ÿÿÿÿH‰Çè)+øÿH‹Eè¾ÿÿÿÿH‰Çè+øÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Çè‹jøÿH‹E躾H‰Çè5`øÿH‹UØH‹EèH‰ÖH‰ÇèòJøÿH‹E躾ÿÿÿÿH‰Çè¬'øÿH‹Eè¾þÿÿÿH‰Çè»Døÿ‹UüH‹Eè‰ÖH‰Çè*aøÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�®\¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè²iøÿ‹Eô…ÀuH‹EèH�5]H‰Ç¸è“OøÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�ñ\‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰ÇèÔIøÿH‹E躾ÿÿÿÿH‰ÇèŽ&øÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè�CøÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè vøÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰ÇèÒ_øÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè¨høÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�>[¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰ÇèX'øÿH‹Eø¾ÿÿÿÿH‰ÇèÇ(øÿH‹Eø¾þÿÿÿH‰Çèöqøÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè?aøÿH‰EøH‹EèH�ÄZ¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çè?øÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çè´&øÿH‹Eè¾ÿÿÿÿH‰Çè#(øÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çè�7øÿ‰EôH‹Eè¾ýÿÿÿH‰Çè‰gøÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çè¯(øÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çèz(øÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çè'øÿƒøt ¸éüH‹EøH‰Çè1@øÿéÍH‹Eø¾þÿÿÿH‰Çèë&øÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çè\6øÿ…ÀtH‹Eø¾þÿÿÿH‰ÇèGføÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰ÇèQrøÿH‹EøºH�5›YH‰ÇèìH‹Eø¾þÿÿÿH‰Çèˆ8øÿH‹Eø¾H‰ÇèGeøÿ¸ë/H‹Eø¾þÿÿÿH‰Çè¿eøÿH‹Eø¾þÿÿÿH‰ÇèÎhøÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çèó<øÿ‰EüH‹UàH‹EèH�5 YH‰ÇèiUøÿH‹Eè¾îØÿÿH‰ÇèØ?øÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çèeøÿ¸ë‹UüH‹Eè‰ÖH‰Çèûdøÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5`XH‰Ç¸èUSøÿéÜH‹EðH‹@¶H‹EèH‹@H‰ÇèÈøÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè©øÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèÄ3øÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5|PH‰ÇèH‹&$H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5SPH‰Ç¸è”JøÿH‹…ÀïÿÿH�5øÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè;Zøÿ‹UüH‹…ÈïÿÿH�5‘NH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰ÇèLføÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�ãMH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�ÉMH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèZ[øÿÉÃUH‰åHƒì H‰}è‰uäH�¾MH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�jMH‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çèt*øÿ‹UðH‹Eø‰ÖH‰Çèc*øÿ‹UôH‹Eø‰ÖH‰ÇèSøÿ‹UðH‹Eø‰ÖH‰ÇèSøÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çèå&øÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�óC¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�cC¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰ÇèÏ%øÿH‹Eø¾þÿÿÿH‰Çè!øÿ‹UôH‹Eø‰ÖH‰Çè]Eøÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çèw)øÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èf6øÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çè¨øÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�‚B‰ÎH‰ÇèÈøÿ…À…�‹UäH‹Eè‰ÖH‰Çèß øÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5 BH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè‡'øÿé3‹UäH‹Eè‰ÖH‰Çèñøÿ…ÀtH‹EèºH�5ÜAH‰ÇèÈ÷ÿÿéH‹EèºH�5ÄAH‰Çè«÷ÿÿéä‹MäH‹EèH�¯A‰ÎH‰Çè›3øÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çèö øÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰ÇèÀ øÿë‹UüH‹Eè‰ÖH‰Çè])øÿH‰Eð‹UäH‹Eè‰ÖH‰Çèø<øÿH‰ÁH‹UðH‹EèH�57AH‰Ç¸è¹:øÿƒ}øtCH‹Eè¾þÿÿÿH‰ÇèBOøÿ�ë/H‹Eè¾ÿÿÿÿH‰ÇèžMøÿ…ÀuH‹EèH�5÷@H‰Ç¸èÒ1øÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè øÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�F@¾H‰ÇèÏßÿÿH‹EøH�¸@¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèL øÿH‹Eø¾ÿÿÿÿH‰Çè» øÿ…À…ŽH‹Eø¾þÿÿÿH‰Çè2KøÿH‹MèH‹EøºH‰ÎH‰Çè:XøÿH‹UðH‹EøH‰ÖH‰Çè—+øÿH‹Eøº¾ÿÿÿÿH‰ÇèQøÿH‹Eøº¾H‰ÇèÛ=øÿH‹Eø¾ÿÿÿÿH‰ÇèJ%øÿH‹UðH‹Eø¾ýÿÿÿH‰Çè¥øÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè%øÿH‹UðH‹Eø¾îØÿÿH‰ÇèyøÿH‹Eø¾þÿÿÿH‰Çè¸Møÿ�ÉÃUH‰åHƒì H‰}èH‰uàÇEüëZ‹EüH˜HÁàH‰ÂH�¹|$HÐH‰EðH‹EðH‹H…Àt0H‹EðH‹H‹UèH‰ÖH‰ÇèAøÿ…ÀuH‹Eð‹P H‹Eà‰H‹Eð‹@ëƒEü‹Eüƒø vž¸ÉÃUH‰åHƒì H‰}èH‰uàÇEüH‹EàH‰EðH‹E躾H‰Çè~?øÿéÏH‹E躾H‰Çèc?øÿH‹EèºH�5“?H‰Çè~ôÿÿH‹EðH‹H‹EèH‰ÖH‰Çè*øÿH‹E躾ÿÿÿÿH‰Çè¿øÿH‹Eè¾ýÿÿÿH‰Çè®%øÿH‹Eèº H�5C?H‰Çè)ôÿÿH‹Eð‹@‰ÂH‹EèH‰ÖH‰Çèn øÿH‹Eè¾ýÿÿÿH‰Çèm%øÿH‹EðH‹@H…À„õH‹EèºH�5P>H‰Çè×óÿÿH‹Eð‹@ƒø‡°‰ÀH�…H�Ó>‹H˜H�Ç>HÐÿàH‹EðH‹@H‰ÂH‹EèH‰ÖH‰Çèèøÿë~H‹Eð‹@‰ÀH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EèH‰Çè@ øÿëFH‹EðH‹P H‹EðH‹HH‹EèH‰ÎH‰Çè2óÿÿë%H‹EðH‹PH‹EèH‰ÖH‰Çè6<øÿë H‹EèH‰Çè¸!øÿH‹Eè¾ýÿÿÿH‰Çèg$øÿƒEü‹UüH‹Eè¾þÿÿÿH‰ÇèÏ&øÿHƒEð(H‹EðH‹H…À…!þÿÿ¸ÉÃUH‰åSH�ì˜H‰}˜‰u”‹U”H‹E˜‰ÖH‰Çè¯(øÿH‰Eà‹M”H‹E˜º‰ÎH‰ÇèÅøÿHƒ}àu‹M”H‹E˜H�°=‰ÎH‰ÇèF øÿ…À�H‹EàH�PH‰ÐHÀHÐHÁຖH�5™=H‰ÇèPøÿH‰EØH‹EàHƒÀH�ÅH‹EؾH‰ÇèUøÿH‹EàH�PH‰ÐHÁàHÐHÁàH‰ÂH‹EØHÐH‰EÐHÇEèé� HÇE°ÇEÌÇE¬H‹EèƒÀ‰Â‹M”H‹E˜‰ÎH‰Çè´ øÿH‹E˜¾ÿÿÿÿH‰Çè#øÿH‹E˜ºH�5£<H‰ÇèŽñÿÿH‹E˜¾þÿÿÿH‰ÇèÚ)øÿH‹E˜¾ÿÿÿÿH‰ÇèéøÿH‹E˜º¾ÿÿÿÿH‰Çè³øÿH‰EÀH‹E˜¾þÿÿÿH‰ÇèNFøÿH�U¬H‹EÀH‰ÖH‰ÇèÆûÿÿ‰EÌH‹E˜ºH�5Œ;H‰ÇèñÿÿH‹E˜¾þÿÿÿH‰Çè_)øÿH‹E˜¾ÿÿÿÿH‰ÇènøÿH‹E˜¾ÿÿÿÿH‰Çè]øÿ…À„X ƒ}Ì„úƒ}Ì‹Ẽèƒø‡ô ëƒ}Ì„b éã H‹EèH�ÅH‹EÐH�H‹E˜¾ÿÿÿÿH‰ÇèpOøÿfH~ÀH‰‹E¬ƒø ‡O‰ÀH�…H�×;‹H˜H�Ë;HÐÿàH‹EèH�ÅH‹EÐHÐòH‹EèH�ÅH‹EÐHÂò,À‰H‹EèH�ÅH‹EÐH�4H‹UèH‰ÐHÁàHÐHÁàH‰ÂH‹EØH�H�…`ÿÿÿH‹MÀH‰òH‰ÎH‰Çè`9øÿH‹…`ÿÿÿH‹•hÿÿÿH‰H‰SH‹…pÿÿÿH‹•xÿÿÿH‰CH‰SH‹E€H‰C éÂH‹EèH�ÅH‹EÐHÐòH‹EèH�ÅH‹EÐHÐòH,ЉH‹EèH�ÅH‹EÐH�4H‹UèH‰ÐHÁàHÐHÁàH‰ÂH‹EØH�H�…`ÿÿÿH‹MÀH‰òH‰ÎH‰Çè øÿH‹…`ÿÿÿH‹•hÿÿÿH‰H‰SH‹…pÿÿÿH‹•xÿÿÿH‰CH‰SH‹E€H‰C éH‹EèH�ÅH‹EÐHÐòH‹EèH�ÅH‹EÐHÂòH,ÀH‰H‹EèH�ÅH‹EÐH�4H‹UèH‰ÐHÁàHÐHÁàH‰ÂH‹EØH�H�…`ÿÿÿH‹MÀH‰òH‰ÎH‰Çè‰DøÿH‹…`ÿÿÿH‹•hÿÿÿH‰H‰SH‹…pÿÿÿH‹•xÿÿÿH‰CH‰SH‹E€H‰C é[H‹EèH�ÅH‹EÐHÐòH‹EèH�ÅH‹EÐHÂf/w:sòH,Àëò f:ò\ÁòH,ÀH¹€H1ÈH‰H‹EèH�ÅH‹EÐH�4H‹UèH‰ÐHÁàHÐHÁàH‰ÂH‹EØH�H�…`ÿÿÿH‹MÀH‰òH‰ÎH‰Çè›øÿH‹…`ÿÿÿH‹•hÿÿÿH‰H‰SH‹…pÿÿÿH‹•xÿÿÿH‰CH‰SH‹E€H‰C é}H‹EèH�ÅH‹EÐHÐòH‹EèH�ÅH‹EÐHÂò,À‰H‹EèH�ÅH‹EÐH�4H‹UèH‰ÐHÁàHÐHÁàH‰ÂH‹EØH�H�…`ÿÿÿH‹MÀH‰òH‰ÎH‰Çè™'øÿH‹…`ÿÿÿH‹•hÿÿÿH‰H‰SH‹…pÿÿÿH‹•xÿÿÿH‰CH‰SH‹E€H‰C éËH‹EèH�ÅH‹EÐHÐòH‹EèH�ÅH‹EÐHÐòH,ЉH‹EèH�ÅH‹EÐH�4H‹UèH‰ÐHÁàHÐHÁàH‰ÂH‹EØH�H�…`ÿÿÿH‹MÀH‰òH‰ÎH‰ÇèÖDøÿH‹…`ÿÿÿH‹•hÿÿÿH‰H‰SH‹…pÿÿÿH‹•xÿÿÿH‰CH‰SH‹E€H‰C éH‹EèH�ÅH‹EÐHÐòH‹EèH�ÅH‹EÐHÂòH,ÀH‰H‹EèH�ÅH‹EÐH�4H‹UèH‰ÐHÁàHÐHÁàH‰ÂH‹EØH�H�…`ÿÿÿH‹MÀH‰òH‰ÎH‰ÇèbøÿH‹…`ÿÿÿH‹•hÿÿÿH‰H‰SH‹…pÿÿÿH‹•xÿÿÿH‰CH‰SH‹E€H‰C édH‹EèH�ÅH‹EÐHÐòH‹EèH�ÅH‹EÐHÂf/€7sòH,Àëò o7ò\ÁòH,ÀH¹€H1ÈH‰H‹EèH�ÅH‹EÐH�4H‹UèH‰ÐHÁàHÐHÁàH‰ÂH‹EØH�H�…`ÿÿÿH‹MÀH‰òH‰ÎH‰ÇètIøÿH‹…`ÿÿÿH‹•hÿÿÿH‰H‰SH‹…pÿÿÿH‹•xÿÿÿH‰CH‰SH‹E€H‰C é†H‹EèH�ÅH‹EÐHÐòH‹EèH�ÅH‹EÐHÂòH,ÀH‰H‹EèH�ÅH‹EÐH�4H‹UèH‰ÐHÁàHÐHÁàH‰ÂH‹EØH�H�…`ÿÿÿH‹MÀH‰òH‰ÎH‰ÇèðøÿH‹…`ÿÿÿH‹•hÿÿÿH‰H‰SH‹…pÿÿÿH‹•xÿÿÿH‰CH‰SH‹E€H‰C éÒH‹EèH�ÅH‹EÐHÐòH‹EèH�ÅH‹EÐHÂf/î5sòH,Àëò Ý5ò\ÁòH,ÀH¹€H1ÈH‰H‹EèH�ÅH‹EÐH�4H‹UèH‰ÐHÁàHÐHÁàH‰ÂH‹EØH�H�…`ÿÿÿH‹MÀH‰òH‰ÎH‰Çèb;øÿH‹…`ÿÿÿH‹•hÿÿÿH‰H‰SH‹…pÿÿÿH‹•xÿÿÿH‰CH‰SH‹E€H‰C éôH‹EèH�ÅH‹EÐHÂH‹EèH� ÅH‹EÐHÈòòH‹EèH�ÅH‹EÐH�4H‹UèH‰ÐHÁàHÐHÁàH‰ÂH‹EØH�H�…`ÿÿÿH‹MÀH‰òH‰ÎH‰Çèb?øÿH‹…`ÿÿÿH‹•hÿÿÿH‰H‰SH‹…pÿÿÿH‹•xÿÿÿH‰CH‰SH‹E€H‰C ëGH‹^$H‹L�l4¹ýH�W3H�5\3H‰Ç¸è|5øÿH‹E˜¾ýÿÿÿH‰Çèë<øÿé�éUH�U°H‹E˜¾ÿÿÿÿH‰Çè øÿH‰E¸H‹M°H‹UèH‰ÐHÁàHÐHÁàH‰ÂH‹EØH�H�…`ÿÿÿH‹U¸H‹uÀH‰Çè`øÿH‹…`ÿÿÿH‹•hÿÿÿH‰H‰SH‹…pÿÿÿH‹•xÿÿÿH‰CH‰SH‹E€H‰C éÌH�U°H‹E˜¾ÿÿÿÿH‰Çè“ øÿH‰E¸H‹M°H‹UèH‰ÐHÁàHÐHÁàH‰ÂH‹EØH�H�…`ÿÿÿH‹U¸H‹uÀH‰ÇèG+øÿH‹…`ÿÿÿH‹•hÿÿÿH‰H‰SH‹…pÿÿÿH‹•xÿÿÿH‰CH‰SH‹E€H‰C ëFH‹$H‹L�3¹H�ü1H�52H‰Ç¸è!4øÿH‹E˜¾ýÿÿÿH‰Çè�;øÿ�ë7�H‹E˜¾þÿÿÿH‰Çè{;øÿH‹E˜¾þÿÿÿH‰Çèj;øÿHƒEèH‹EèH;Eà‚côÿÿ�H‹UèH‰ÐHÁàHÐHÁàH‰ÂH‹EØH�H�…`ÿÿÿH‰Çè øÿH‹…`ÿÿÿH‹•hÿÿÿH‰H‰SH‹…pÿÿÿH‹•xÿÿÿH‰CH‰SH‹E€H‰C H‹EØH�Ę[]ÃUH‰åHƒì H‰}èH‹E躾H‰Çè‡0øÿH‹EèºH�5W1H‰Çè¢åÿÿH‹E躾H‰ÇèY0øÿÇEüé•‹EüH˜HÁàH‰ÂH�êl$HÐH‰EðH‹EðH‹H…À„gH‹EðH‹H‹EèH‰ÖH‰ÇèÝøÿH‹E躾ÿÿÿÿH‰Çè—÷÷ÿH‹E躾H‰Çèá/øÿH‹EèºH�5ð/H‰ÇèüäÿÿH‹Eð‹@HcÐH‹EèH‰ÖH‰Çè@øÿH‹Eè¾ýÿÿÿH‰Çè?øÿH‹Eð‹@ …À„ÃH‹Eèº H�5d0H‰Çè«äÿÿH‹Eð‹@ ƒø ‡r‰ÀH�…H�«0‹H˜H�Ÿ0HÐÿàH‹EèºH�5&0H‰ÇèaäÿÿéKH‹Eèº H�5 0H‰ÇèDäÿÿé.H‹EèºH�5ý/H‰Çè'äÿÿéH‹Eèº H�5å/H‰Çè äÿÿéôH‹EèºH�5Ö/H‰Çèíãÿÿé×H‹EèºH�5¿/H‰ÇèÐãÿÿéºH‹EèºH�5©/H‰Çè³ãÿÿé�H‹EèºH�5’/H‰Çè–ãÿÿé€H‹EèºH�5|/H‰ÇèyãÿÿëfH‹EèºH�5i/H‰Çè_ãÿÿëLH‹EèºH�5V/H‰ÇèEãÿÿë2H‹EèºH�5C/H‰Çè+ãÿÿëH‹EèºH�50/H‰ÇèãÿÿH‹Eè¾ýÿÿÿH‰ÇèmøÿH‹Eè¾ýÿÿÿH‰Çè\øÿƒEü‹Eüƒø †_ýÿÿH‹Eè¾ýÿÿÿH‰Çè;øÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰ÇèÎøÿH‹Eð¶„Àu ‹Eü‰Çè©þ÷ÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰ÇèÇøÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè{÷÷ÿƒøtbH‹Eø¾þÿÿÿH‰Çèõ6øÿH‹UèH‹uðH‹EøH� R.H‰ÇèÊ8øÿ…Àt H‹EøH‰ÇèŠøÿH‹Eø¾ÿÿÿÿH‰Çè9øÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Çè/ øÿ‹Uà‹MäH‹Eø‰ÎH‰Çè{)øÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5Â.H‰Ç¸èEøÿH‹EøH�Î.¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çè–øÿò*EôH‹EøH‰Çèå÷÷ÿH‹Eø¾ýÿÿÿH‰Çè”øÿH‹EøA¸¹ºÛH�5i-H‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çè¸9øÿéå‹Uà‹MäH‹Eè‰ÎH‰Çè_þ÷ÿéÌH‹EèH�ó-¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çè™øÿ‹UàH‹Eè‰ÖH‰ÇèˆøÿH‹EèA¸¹ºH�5�-H‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰ÇèÔþ÷ÿ‰EüH‹Eè¾þÿÿÿH‰ÇèÀ4øÿ‹EüëH‹EèH�5€-H‰Ç¸è£øÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�ÿ,¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰ÇèÍøÿ‹UüH‹Eè‰ÖH‰Çè|7øÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè‰ô÷ÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰ÇèñøÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè¤õ÷ÿ龋MôH‹EøH�§,‰ÎH‰Çèçü÷ÿ…À…š‹UôH‹Eø‰ÖH‰ÇèŽøÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèAõ÷ÿëZ‹MôH‹EøH�G,‰ÎH‰Çè‡ü÷ÿ…ÀuA‹UôH‹Eø‰ÖH‰Çè¢ó÷ÿ‰ÂH‹Eø‰ÖH‰Çè2øÿH‰ÂH‹EøH�5,H‰Ç¸èøÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰ÇèÔ&øÿ‹UüH‹Eè‰ÖH‰ÇèøÿH‹Eè¾ÿÿÿÿH‰Çèó÷ÿH‹Eè¾ÿÿÿÿH‰Çèó÷ÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�ñ*¾H‰Çè»H‹UØH‹EèH‰ÖH‰ÇèM&øÿH‹Eè¾þÿÿÿH‰ÇèÌøÿ‹UüH‹Eè‰ÖH‰Çè{øÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèôò÷ÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çè�øÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè$øÿ…ÀuIHƒ}ètH‹UèH‹EøH�5x*H‰Ç¸èGøÿë$H‹EøºH�5m*H‰ÇèEH‹EøH‰Çèáøÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�€)¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè\øÿH‹E躾ÿÿÿÿH‰Çèî÷ÿ‹UüH‹Eè‰ÖH‰Çèe8øÿH‹Eè¾ÿÿÿÿH‰Çèñ÷ÿH‹Eè¾ÿÿÿÿH‰Çèóð÷ÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Çèf0øÿH‹E躾H‰Çè&øÿH‹UØH‹EèH‰ÖH‰ÇèÍøÿH‹E躾ÿÿÿÿH‰Çè‡í÷ÿH‹Eè¾þÿÿÿH‰Çè– øÿ‹UüH‹Eè‰ÖH‰Çè'øÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�i(¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè�/øÿ‹Eô…ÀuH‹EèH�5Ã(H‰Ç¸ènøÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�¬(‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰Çè¯øÿH‹E躾ÿÿÿÿH‰Çèiì÷ÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çèk øÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çèå;øÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Çè­%øÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çèƒ.øÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�ù&¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰Çè3í÷ÿH‹Eø¾ÿÿÿÿH‰Çè¢î÷ÿH‹Eø¾þÿÿÿH‰ÇèÑ7øÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè'øÿH‰EøH‹EèH�&¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çèöøÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çè�ì÷ÿH‹Eè¾ÿÿÿÿH‰Çèþí÷ÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çèxý÷ÿ‰EôH‹Eè¾ýÿÿÿH‰Çèd-øÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰ÇèŠî÷ÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰ÇèUî÷ÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çè÷ì÷ÿƒøt ¸éüH‹EøH‰Çè øÿéÍH‹Eø¾þÿÿÿH‰ÇèÆì÷ÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çè7ü÷ÿ…ÀtH‹Eø¾þÿÿÿH‰Çè",øÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çè,8øÿH‹EøºH�5V%H‰ÇèìH‹Eø¾þÿÿÿH‰Çècþ÷ÿH‹Eø¾H‰Çè"+øÿ¸ë/H‹Eø¾þÿÿÿH‰Çèš+øÿH‹Eø¾þÿÿÿH‰Çè©.øÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèÎøÿ‰EüH‹UàH‹EèH�5È$H‰ÇèDøÿH‹Eè¾îØÿÿH‰Çè³øÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çèî*øÿ¸ë‹UüH‹Eè‰ÖH‰ÇèÖ*øÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5$H‰Ç¸è0øÿéÜH‹EðH‹@¶H‹EèH‹@H‰Çè£å÷ÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè„å÷ÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèŸù÷ÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�57H‰ÇèH‹Ýë#H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5H‰Ç¸èoøÿH‹…ÀïÿÿH�5÷H‰ÇèiøÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5ÍH‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5^H‰ÇèYøÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�55H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰ÇèëÝ÷ÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çèì)øÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰ÇèÐøÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè øÿ‹UüH‹…ÈïÿÿH�5LH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çè',øÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�žH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�„H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çè5!øÿÉÃUH‰åHƒì H‰}è‰uäH�yH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�%H‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰ÇèOð÷ÿ‹UðH‹Eø‰ÖH‰Çè>ð÷ÿ‹UôH‹Eø‰ÖH‰Çèíøÿ‹UðH‹Eø‰ÖH‰ÇèÜøÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰ÇèÀì÷ÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�®¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çèªë÷ÿH‹Eø¾þÿÿÿH‰Çèéæ÷ÿ‹UôH‹Eø‰ÖH‰Çè8 øÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰ÇèRï÷ÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èAü÷ÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèƒÕ÷ÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�=‰ÎH‰Çè£Ü÷ÿ…À…�‹UäH‹Eè‰ÖH‰ÇèºÓ÷ÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5Û H‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çèbí÷ÿé3‹UäH‹Eè‰ÖH‰ÇèÌÜ÷ÿ…ÀtH‹EèºH�5— H‰ÇèÈ÷ÿÿéH‹EèºH�5 H‰Çè«÷ÿÿéä‹MäH‹EèH�j ‰ÎH‰Çèvù÷ÿ…ÀtH‹Eè¾ÿÿÿÿH‰ÇèÑÒ÷ÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çè›Ï÷ÿë‹UüH‹Eè‰ÖH‰Çè8ï÷ÿH‰Eð‹UäH‹Eè‰ÖH‰ÇèÓøÿH‰ÁH‹UðH‹EèH�5ò H‰Ç¸è”øÿƒ}øtCH‹Eè¾þÿÿÿH‰Çèøÿ�ë/H‹Eè¾ÿÿÿÿH‰Çèyøÿ…ÀuH‹EèH�5² H‰Ç¸è­÷÷ÿë�H‹UØH‹Eè¾ÿÿÿÿH‰ÇèõÎ÷ÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH� ¾H‰ÇèÏßÿÿH‹EøH�s ¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çè'Ð÷ÿH‹Eø¾ÿÿÿÿH‰Çè–Ñ÷ÿ…À…ŽH‹Eø¾þÿÿÿH‰Çè øÿH‹MèH‹EøºH‰ÎH‰ÇèøÿH‹UðH‹EøH‰ÖH‰Çèrñ÷ÿH‹Eøº¾ÿÿÿÿH‰Çè,Î÷ÿH‹Eøº¾H‰Çè¶øÿH‹Eø¾ÿÿÿÿH‰Çè%ë÷ÿH‹UðH‹Eø¾ýÿÿÿH‰Çè€Ú÷ÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çèùê÷ÿH‹UðH‹Eø¾îØÿÿH‰ÇèTÚ÷ÿH‹Eø¾þÿÿÿH‰Çè“øÿ�ÉÃUH‰åHƒì H‰}è‰uäHÇEø‹UäH‹Eè‰ÖH‰Çè˜Ð÷ÿƒøtƒøt0ëg‹MäH‹E躉ÎH‰ÇèfÍ÷ÿºH‰Æ¿èÄÐ÷ÿH‰Eøë9‹UäH‹EèH�5 H‰ÇèÈøÿH…Àt‹UäH‹EèH�5ç H‰Çè�Ï÷ÿH‹H‰Eø�Hƒ}øu‹MäH‹EèH�Ð ‰ÎH‰ÇèfÕ÷ÿH‹EøÉÃUH‰åHƒì H‰}èH‰uàH‹EàH‰EøH‹EøH�Ýÿÿÿ¾ðØÿÿH‰ÇèbÜÿÿ‰Eôƒ}ôtH� º>H�5™ H�=œ èXå÷ÿHƒ}èt5H‹Eø¾H‰ÇèÐí÷ÿH‰ÂH‹EèH‰H‹EøºÿÿÿÿH�5( H‰ÇèNË÷ÿë H‹EøH‰Çè�è÷ÿH‹Eø¹º¾H‰ÇèÓ÷ÿ…Àt-H‹Eøº¾ÿÿÿÿH‰ÇèÌ÷ÿH‰ÂH‹EøH‰ÖH‰Ç¸è¤ô÷ÿ�ÉÃUH‰åHƒìH‰}øH‹Eøº¾H‰Çè¯Þ÷ÿH‹Eø¾H‰Çèîè÷ÿH‹EøH�Óþÿÿ¾ðØÿÿH‰ÇèÇÛÿÿH‹EøH‰ÂH�5¸þÿÿ¿ènÿ÷ÿH‹EøH‰ÇèÒç÷ÿH‹EøH�—þÿÿ¾ðØÿÿH‰Çè‹Ûÿÿ¸ÉÃUH‰åHƒì H‰}èH‹E躾H‰ÇèAÜ÷ÿH‰EøH‹EøºH‰Æ¿è§Î÷ÿH‰EðHƒ}ðt5H‹Eè¾H‰Çèkì÷ÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5ÃH‰ÇèéÉ÷ÿë H‹EèH‰Çè+ç÷ÿ¸ÉÃUH‰åHƒÄ€H‰}ˆH‹Eˆ¾H‰ÇèýÿÿH‰EðH‹Eˆ¾H‰ÇèBøÿH‰EèHÇE�HÇE˜HÇE HÇE¨HÇE°HÇE¸HÇEÀHÇEÈH‹Eˆº¾H‰Çè8Ó÷ÿH‰EàHƒ}à@vH‹EˆH�Z¾H‰Çè¥Ò÷ÿ…À�H‹EðH‰Çè†øÿH‰EØH‹MèH‹UàH�u�H‹EØH‰Çèzâ÷ÿ‰Eüƒ}ü~ H‹UàH�M�H‹EˆH‰ÎH‰Çè¢ñÿÿÇEüë‹UüH‹Eˆ‰ÖH‰ÇèÀú÷ÿ‰EüH‹EØH‰Çè!è÷ÿH‹E躋H�5¦H‰Çè™â÷ÿ‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5ÄH‰ÇèÌ÷ÿH‹H‰EøH‹EøH‰Çè�Ö÷ÿH‰EøHƒ}øtJHƒ}øt5H‹Eè¾H‰Çèšê÷ÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5lH‰ÇèÈ÷ÿëH‹EèH‰ÇèZå÷ÿë H‹EèH‰ÇèLå÷ÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5%H‰ÇèaË÷ÿH‹H‰EøH‹EøH‰Çè>Û÷ÿH‹Eè¾H‰ÇèÝå÷ÿ¸ÉÃUH‰åHƒìpH‰}˜H‹E˜ºH�5ÖH‰ÇèË÷ÿH‹H‰EðH‹E˜¾H‰Çè øÿH‰EèHÇE HÇE¨HÇE°HÇE¸HÇEÀHÇEÈHÇEÐHÇEØH‹E˜º¾H‰ÇèÑ÷ÿH‰EàHƒ}à@vH‹E˜H�"¾H‰ÇèmÐ÷ÿ…À�H‹MèH‹UàH�u H‹EðH‰ÇèRà÷ÿ‰Eüƒ}ü~ H‹UàH�M H‹E˜H‰ÎH‰ÇèzïÿÿÇEüë‹UüH‹E˜‰ÖH‰Çè˜ø÷ÿ‰EüH‹EèºåH�5ŠH‰Çè}à÷ÿ‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5¨H‰ÇèäÉ÷ÿH‹H‰EøH‹EøH‰Çèç÷ÿH‰ÂH‹EèH‰ÖH‰Çè/á÷ÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5XH‰Çè”É÷ÿH‹H‰EøH‹EøH‰Çèæ÷ÿH‰EðHƒ}ðt5H‹Eè¾H‰Çè5è÷ÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5�H‰Çè³Å÷ÿë H‹EèH‰Çèõâ÷ÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ÎH‰Çè É÷ÿH‹H‰EøH‹EøH‰ÇèwÚ÷ÿH‰EðH‹UðH‹EèH‰ÖH‰Çè ù÷ÿÉÃUH‰åHƒì H‰}èH‹EèºH�5~H‰ÇèºÈ÷ÿH‹H‰EøH‹EøH‰Çèçó÷ÿH‰EðH‹UðH‹EèH‰ÖH‰ÇèPù÷ÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5.H‰ÇèjÈ÷ÿH‹H‰EðH‹EؾH‰ÇèbøÿH‰EèH‹UèH‹EðH‰ÖH‰Çè;øÿ‰Eüƒ}üuH‹UèH‹EØH‰ÖH‰Çèßø÷ÿ‰Eüë*H‹UèH‹EØH‰ÖH‰ÇèÇø÷ÿ‰Eü‹UüH‹E؉ÖH‰Çècö÷ÿEüH‹Eèº3H�5UH‰ÇèHÞ÷ÿ‹EüÉÃUH‰åHƒì0H‰}ØH‹EغH�5sH‰Çè¯Ç÷ÿH‹H‰EøH‹EؾH‰Çè§øÿH‰EðH‹UðH‹EøH‰ÖH‰ÇèðÑ÷ÿ‰EìH‹EðºCH�5âH‰ÇèÕÝ÷ÿ‹UìH‹E؉ÖH‰ÇèÄõ÷ÿÉÃUH‰åHƒì0H‰}ØH‹EؾH‰Çè÷ÿÿH‰EðH‹EðH‰ÇèøÿH‰EèÇEüHƒ}ètJHƒ}èt5H‹EؾH‰ÇèËå÷ÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5�H‰ÇèIÃ÷ÿë"H‹EØH‰Çè‹à÷ÿëH‹EؾH‰Çè(õ÷ÿ‰Eü‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5PH‰ÇèŒÆ÷ÿH‹H‰EøHƒ}øu¸ë)H‹EøH‰ÇèKâ÷ÿH‹Eè¾H‰Çèšÿ÷ÿHǸÉÃUH‰åHƒì H‰}èH‹EèºH�5rH‰Çè(Æ÷ÿH‹H‰EøH‹EøH‰Çèá÷ÿH‰ÂH‹EèH‰ÖH‰Çè³æ÷ÿH‹E躾ÿÿÿÿH‰ÇèmÃ÷ÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5 H‰ÇèÂÅ÷ÿH‹H‰EøH‹EøH‰ÇèøÿH‰ÂH‹EèH‰ÖH‰ÇèMæ÷ÿH‹E躾ÿÿÿÿH‰ÇèÃ÷ÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5¦H‰Çè\Å÷ÿH‹H‰EøH‹EøH‰ÇèyøÿH‰ÂH‹EèH‰ÖH‰Çègù÷ÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5VH‰Çè Å÷ÿH‹H‰EøH‹E躾H‰Çè_Ó÷ÿH‰EðH‹UðH‹EøH‰ÖH‰Çè(øÿ‰ÂH‹Eè‰ÖH‰Çè øÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EàH‰EøH‹EøH�Ýÿÿÿ¾ðØÿÿH‰Çè³Ñÿÿ‰Eôƒ}ôtH� �º²H�5êÿH�=íÿè©Ú÷ÿH‹UèH‹EøH‰ÖH‰Çèå÷ÿH‹Eøº¾ÿÿÿÿH‰ÇèÀÁ÷ÿH‹Eø¹º¾H‰ÇèuÈ÷ÿ…Àt-H‹Eøº¾ÿÿÿÿH‰Çè‹Á÷ÿH‰ÂH‹EøH‰ÖH‰Ç¸èê÷ÿ�ÉÃUH‰åHƒì H‰}èH‹EèºH�5ÿH‰ÇèÍÃ÷ÿH‹H‰EøH‹E躾H‰ÇèÔ÷ÿH‹Eè¾H‰Çè?Þ÷ÿH‹EèH�Óþÿÿ¾ðØÿÿH‰ÇèÑÿÿH‹UèH‹EøH�5·þÿÿH‰ÇèðÏ÷ÿ‰Eô‹UôH‹Eè‰ÖH‰Çè¬øÿH‹EèH‰ÇèÝ÷ÿH‹EèH�„þÿÿ¾ðØÿÿH‰ÇèÉÐÿÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5WþH‰Çè Ã÷ÿH‹H‰EøH‹EøH‰Çè*Ê÷ÿH‰EðH‹UðH‹EèH‰ÖH‰Çè£ó÷ÿÉÃUH‰åHƒì H‰}èH‹EèºH�5þH‰Çè½Â÷ÿH‹H‰EøH‹EøH‰ÇèúÃ÷ÿH‰EðH‹UðH‹EèH‰ÖH‰ÇèSó÷ÿÉÃUH‰åHƒì H‰}èH‹EèºH�5·ýH‰ÇèmÂ÷ÿH‹H‰EøH‹EøH‰Çèºï÷ÿH‰EðH‹UðH‹EèH‰ÖH‰Çèó÷ÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5gýH‰ÇèÂ÷ÿH‹H‰EðH‹EؾH‰Çèû÷ÿH‰EèH‹UèH‹EðH‰ÖH‰Çèç÷ÿ‰Eüƒ}üuH‹UèH‹EØH‰ÖH‰Çè’ò÷ÿ‰Eüë*H‹UèH‹EØH‰ÖH‰Çèzò÷ÿ‰Eü‹UüH‹E؉ÖH‰Çèð÷ÿEüH‹EèºH�5ýH‰Çèû×÷ÿ‹EüÉÃUH‰åHƒìPH‰}¸H‹E¸H�ß6$H�5ªüH‰Çè€×÷ÿH‹E¸H�6$H�5 ýH‰Çèf×÷ÿH‹E¸º¾H‰Çè÷÷ÿH‹E¸ºH�5ÐÄ#H‰ÇèÐÑÿÿH‹E¸ºH�5ƒýH‰Çè8æÿÿH‹E¸º¾H‰ÇèÊö÷ÿÇEüþÿÿÿH‹E¸H�5YýH‰Çè€á÷ÿH‹E¸º¾ÿÿÿÿH‰Çè:¾÷ÿ‹MüH‹E¸H�-ý‰ÎH‰Çè²Ê÷ÿÇEøþÿÿÿH‹E¸H�5ýH‰Çè8á÷ÿH‹E¸º¾ÿÿÿÿH‰Çèò½÷ÿ‹MøH‹E¸H�êü‰ÎH‰ÇèjÊ÷ÿÇEôþÿÿÿH‹E¸H�5ØüH‰Çèðà÷ÿH‹E¸º¾ÿÿÿÿH‰Ç誽÷ÿ‹MôH‹E¸H�¬ü‰ÎH‰Çè"Ê÷ÿÇEðþÿÿÿH‹E¸H�5—üH‰Çè¨à÷ÿH‹E¸º¾ÿÿÿÿH‰Çèb½÷ÿ‹MðH‹E¸H�kü‰ÎH‰ÇèÚÉ÷ÿÇEìþÿÿÿH‹E¸H�5VüH‰Çè`à÷ÿH‹E¸º¾ÿÿÿÿH‰Çè½÷ÿ‹MìH‹E¸H�*ü‰ÎH‰Çè’É÷ÿÇEèþÿÿÿH‹E¸H�5üH‰Çèà÷ÿH‹E¸º¾ÿÿÿÿH‰ÇèÒ¼÷ÿ‹MèH‹E¸H�éû‰ÎH‰ÇèJÉ÷ÿÇEäþÿÿÿH‹E¸H�5ÔûH‰ÇèÐß÷ÿH‹E¸º¾ÿÿÿÿH‰Ç芼÷ÿ‹MäH‹E¸H�¨û‰ÎH‰ÇèÉ÷ÿÇEàþÿÿÿH‹E¸H�5’ûH‰Çèˆß÷ÿH‹E¸º¾ÿÿÿÿH‰ÇèB¼÷ÿ‹MàH‹E¸H�fû‰ÎH‰ÇèºÈ÷ÿÇEÜþÿÿÿH‹E¸H�5SûH‰Çè@ß÷ÿH‹E¸º¾ÿÿÿÿH‰Çèú»÷ÿ‹MÜH‹E¸H�'û‰ÎH‰ÇèrÈ÷ÿÇEØþÿÿÿH‹E¸H�5ûH‰ÇèøÞ÷ÿH‹E¸º¾ÿÿÿÿH‰Çè²»÷ÿ‹MØH‹E¸H�ìú‰ÎH‰Çè*È÷ÿÇEÔþÿÿÿH‹E¸H�5ßúH‰Çè°Þ÷ÿH‹E¸º¾ÿÿÿÿH‰Çèj»÷ÿ‹MÔH‹E¸H�³ú‰ÎH‰ÇèâÇ÷ÿÇEÐþÿÿÿH‹E¸H�5ŸúH‰ÇèhÞ÷ÿH‹E¸º¾ÿÿÿÿH‰Çè"»÷ÿ‹MÐH‹E¸H�sú‰ÎH‰ÇèšÇ÷ÿÇEÌþÿÿÿH‹E¸H�5]úH‰Çè Þ÷ÿH‹E¸º¾ÿÿÿÿH‰ÇèÚº÷ÿ‹MÌH‹E¸H�1ú‰ÎH‰ÇèRÇ÷ÿH‹E¸¾ýÿÿÿH‰Çè±Ù÷ÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰ÇèDÊ÷ÿH‹Eð¶„Àu ‹Eü‰ÇèÄ÷ÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Çè=Ô÷ÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çèñ¼÷ÿƒøtbH‹Eø¾þÿÿÿH‰Çèkü÷ÿH‹UèH‹uðH‹EøH� HùH‰Çè@þ÷ÿ…Àt H‹EøH‰ÇèÌ÷ÿH‹Eø¾ÿÿÿÿH‰Çè¯Ö÷ÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Çè¥Î÷ÿ‹Uà‹MäH‹Eø‰ÎH‰Çèñî÷ÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5¸ùH‰Ç¸è»á÷ÿH‹EøH�Äù¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çè Ö÷ÿò*EôH‹EøH‰Çè[½÷ÿH‹Eø¾ýÿÿÿH‰Çè Î÷ÿH‹EøA¸¹ºÛH�5_øH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çè.ÿ÷ÿéå‹Uà‹MäH‹Eè‰ÎH‰ÇèÕÃ÷ÿéÌH‹EèH�éø¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰ÇèÕ÷ÿ‹UàH‹Eè‰ÖH‰ÇèþÔ÷ÿH‹EèA¸¹ºH�5“øH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰ÇèJÄ÷ÿ‰EüH‹Eè¾þÿÿÿH‰Çè6ú÷ÿ‹EüëH‹EèH�5vøH‰Ç¸èà÷ÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�õ÷¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰ÇèCÔ÷ÿ‹UüH‹Eè‰ÖH‰Çèòü÷ÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çèÿ¹÷ÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰ÇègÚ÷ÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè»÷ÿ龋MôH‹EøH��÷‰ÎH‰Çè]Â÷ÿ…À…š‹UôH‹Eø‰ÖH‰ÇèÚ÷ÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè·º÷ÿëZ‹MôH‹EøH�=÷‰ÎH‰ÇèýÁ÷ÿ…ÀuA‹UôH‹Eø‰ÖH‰Çè¹÷ÿ‰ÂH‹Eø‰ÖH‰Çè¨Õ÷ÿH‰ÂH‹EøH�5 ÷H‰Ç¸è}Þ÷ÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰ÇèJì÷ÿ‹UüH‹Eè‰ÖH‰ÇèyÛ÷ÿH‹Eè¾ÿÿÿÿH‰Ç舸÷ÿH‹Eè¾ÿÿÿÿH‰Çèw¸÷ÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�çõ¾H‰Çè»H‹UØH‹EèH‰ÖH‰ÇèÃë÷ÿH‹Eè¾þÿÿÿH‰ÇèBÊ÷ÿ‹UüH‹Eè‰ÖH‰ÇèñÓ÷ÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèj¸÷ÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çè×÷ÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè”é÷ÿ…ÀuIHƒ}ètH‹UèH‹EøH�5nõH‰Ç¸è½Ü÷ÿë$H‹EøºH�5cõH‰ÇèEH‹EøH‰ÇèWÆ÷ÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�vô¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰ÇèÒÖ÷ÿH‹E躾ÿÿÿÿH‰Ç茳÷ÿ‹UüH‹Eè‰ÖH‰ÇèÛý÷ÿH‹Eè¾ÿÿÿÿH‰Çèz¶÷ÿH‹Eè¾ÿÿÿÿH‰Çèi¶÷ÿƒøu¸ëwH‹Eè¾þÿÿÿH‰ÇèÜõ÷ÿH‹E躾H‰Çè†ë÷ÿH‹UØH‹EèH‰ÖH‰ÇèCÖ÷ÿH‹E躾ÿÿÿÿH‰Çèý²÷ÿH‹Eè¾þÿÿÿH‰Çè Ð÷ÿ‹UüH‹Eè‰ÖH‰Çè{ì÷ÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�_ó¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çèõ÷ÿ‹Eô…ÀuH‹EèH�5¹óH‰Ç¸èäÚ÷ÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�¢ó‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰Çè%Õ÷ÿH‹E躾ÿÿÿÿH‰Çèß±÷ÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèáÎ÷ÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè[øÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Çè#ë÷ÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çèùó÷ÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�ïñ¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰Ç該÷ÿH‹Eø¾ÿÿÿÿH‰Çè´÷ÿH‹Eø¾þÿÿÿH‰ÇèGý÷ÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè�ì÷ÿH‰EøH‹EèH�uñ¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰ÇèlÊ÷ÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çè²÷ÿH‹Eè¾ÿÿÿÿH‰Çèt³÷ÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰ÇèîÂ÷ÿ‰EôH‹Eè¾ýÿÿÿH‰ÇèÚò÷ÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çè´÷ÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çè˳÷ÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çèm²÷ÿƒøt ¸éüH‹EøH‰Çè‚Ë÷ÿéÍH‹Eø¾þÿÿÿH‰Çè<²÷ÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çè­Á÷ÿ…ÀtH‹Eø¾þÿÿÿH‰Çè˜ñ÷ÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çè¢ý÷ÿH‹EøºH�5LðH‰ÇèìH‹Eø¾þÿÿÿH‰ÇèÙÃ÷ÿH‹Eø¾H‰Çè˜ð÷ÿ¸ë/H‹Eø¾þÿÿÿH‰Çèñ÷ÿH‹Eø¾þÿÿÿH‰Çèô÷ÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèDÈ÷ÿ‰EüH‹UàH‹EèH�5¾ïH‰Çèºà÷ÿH‹Eè¾îØÿÿH‰Çè)Ë÷ÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çèdð÷ÿ¸ë‹UüH‹Eè‰ÖH‰ÇèLð÷ÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5ïH‰Ç¸è¦Þ÷ÿéÜH‹EðH‹@¶H‹EèH‹@H‰Çè«÷ÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çèúª÷ÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çè¿÷ÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5-çH‰ÇèH‹S±#H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5çH‰Ç¸èåÕ÷ÿH‹…ÀïÿÿH�5íæH‰ÇèßÓ÷ÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5ÃæH‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5TæH‰ÇèÏÍ÷ÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5+æH‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çèa£÷ÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çèbï÷ÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰ÇèFÊ÷ÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰ÇèŒå÷ÿ‹UüH‹…ÈïÿÿH�5BåH‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çè�ñ÷ÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�”äH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�zäH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çè«æ÷ÿÉÃUH‰åHƒì H‰}è‰uäH�oäH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�äH‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çèŵ÷ÿ‹UðH‹Eø‰ÖH‰Çè´µ÷ÿ‹UôH‹Eø‰ÖH‰ÇècÞ÷ÿ‹UðH‹Eø‰ÖH‰ÇèRÞ÷ÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çè6²÷ÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�¤Ú¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�Ú¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çè ±÷ÿH‹Eø¾þÿÿÿH‰Çè_¬÷ÿ‹UôH‹Eø‰ÖH‰Çè®Ð÷ÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰ÇèÈ´÷ÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'è·Á÷ÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çèùš÷ÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�3Ù‰ÎH‰Çè¢÷ÿ…À…�‹UäH‹Eè‰ÖH‰Çè0™÷ÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5ÑØH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰ÇèØ²÷ÿé3‹UäH‹Eè‰ÖH‰ÇèB¢÷ÿ…ÀtH‹EèºH�5�ØH‰ÇèÈ÷ÿÿéH‹EèºH�5uØH‰Çè«÷ÿÿéä‹MäH‹EèH�`؉ÎH‰Çèì¾÷ÿ…ÀtH‹Eè¾ÿÿÿÿH‰ÇèG˜÷ÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çè•÷ÿë‹UüH‹Eè‰ÖH‰Çè®´÷ÿH‰Eð‹UäH‹Eè‰ÖH‰ÇèIÈ÷ÿH‰ÁH‹UðH‹EèH�5è×H‰Ç¸è Æ÷ÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè“Ú÷ÿ�ë/H‹Eè¾ÿÿÿÿH‰ÇèïØ÷ÿ…ÀuH‹EèH�5¨×H‰Ç¸è#½÷ÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çèk”÷ÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�÷Ö¾H‰ÇèÏßÿÿH‹EøH�i×¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çè�•÷ÿH‹Eø¾ÿÿÿÿH‰Çè —÷ÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèƒÖ÷ÿH‹MèH‹EøºH‰ÎH‰Çè‹ã÷ÿH‹UðH‹EøH‰ÖH‰Çèè¶÷ÿH‹Eøº¾ÿÿÿÿH‰Ç袓÷ÿH‹Eøº¾H‰Çè,É÷ÿH‹Eø¾ÿÿÿÿH‰Çè›°÷ÿH‹UðH‹Eø¾ýÿÿÿH‰ÇèöŸ÷ÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çèo°÷ÿH‹UðH‹Eø¾îØÿÿH‰ÇèÊŸ÷ÿH‹Eø¾þÿÿÿH‰Çè Ù÷ÿ�ÉÃUH‰åHƒìP‰}ÜH‰uÐH‰UÈH‰MÀL‰E¸H‹EÐH‰Çè¯÷ÿ‰EüH‹EÐH‰ÇèЬ÷ÿ‰EøH‹EÐH‰ÇèAÖ÷ÿH‰EðHƒ}È„öH‹MÀH‹EÈH�ÖH‰ÎH‰ÇèH§÷ÿH‹EȾÿÿÿÿH‰Çè·•÷ÿ…ÀuJH‹EȺ¾H‰ÇèíÊ÷ÿH‹MÀH‹EÈH�ÀÕH‰ÎH‰Çèã¶÷ÿH‹MÀH‹EÈH�¦ÕH‰ÎH‰Çèé¦÷ÿH‹EȺ¾H‰Çè£Ê÷ÿƒ}Üÿt)‹UÜH‹EȉÖH‰ÇèüÙ÷ÿH‹EÈH�oÕ¾þÿÿÿH‰Ç褞÷ÿ‹EüHcÐH‹EÈH‰ÖH‰Çèï«÷ÿH‹EÈH�OÕ¾þÿÿÿH‰Çèwž÷ÿ‹EüH˜H‰Çèz¬÷ÿH‰ÂH‹EÈH‰ÖH‰Çèø´÷ÿH‹EȺ¾ÿÿÿÿH‰Ç貑÷ÿH‹EÈH�Õ¾þÿÿÿH‰Çè*ž÷ÿH‹EÐH‰Çèn«÷ÿHcÐH‹EÈH‰ÖH‰Çèl«÷ÿH‹EÈH�ßÔ¾þÿÿÿH‰Çèô�÷ÿHƒ}ðtlHƒ}ðt5H‹EȾH‰Ç蕲÷ÿH‰ÂH‹EðH‰H‹EȺÿÿÿÿH�5¥ÔH‰Çè�÷ÿë H‹EÈH‰ÇèU­÷ÿH‹EðH‰Çè¸÷ÿH‹EÈH�…Ô¾þÿÿÿH‰Çè��÷ÿƒ}Üÿu H�xÔëH�~ÔH‹u¸H‹MÈH‰ÂH‰ÏèX¥÷ÿH‹EȾÿÿÿÿH‰ÇèÇ“÷ÿƒø…ŒH‹EȾþÿÿÿH‰Çè½­÷ÿH‹Eȹº¾H‰ÇèR—÷ÿ…Àu*H‹EȾÿÿÿÿH‰Çè �÷ÿ‰EÜH‹EȾþÿÿÿH‰ÇèùÒ÷ÿé@H‹EȺ¾ÿÿÿÿH‰Çè>�÷ÿH‰ÂH‹EÈH‰ÖH‰Ç¸èǸ÷ÿéH‹M¸H‹EÈH�ÀÓH‰ÎH‰Ç蘤÷ÿH‹EȾÿÿÿÿH‰Çè“÷ÿƒø…ÉH‹EÈH� Ó¾ÿÿÿÿH‰Çèf‘÷ÿH‹EȾÿÿÿÿH‰ÇèÕ’÷ÿH‹EȾÿÿÿÿH‰ÇèTœ÷ÿ‰EìH‹EȾþÿÿÿH‰Çè@Ò÷ÿH‹EÈH�bÓ¾ÿÿÿÿH‰Çè‘÷ÿH‹EȾÿÿÿÿH‰Ç臒÷ÿH‹EȾÿÿÿÿH‰Çèœ÷ÿ‰EèH‹EȾþÿÿÿH‰ÇèòÑ÷ÿ‹Eø;Eè~ÇEÜH‹EоH‰Çè"Ë÷ÿƒ}ìtÇEÜH‹EȾþÿÿÿH‰Çè´Ñ÷ÿH‹EȾþÿÿÿH‰Ç裲÷ÿƒÀ‰ÂH‹EȾþÿÿÿH‰Çèm°÷ÿH‹EȾþÿÿÿH‰Çè|Ñ÷ÿ‹EÜÉÃUH‰åHƒì0‰}ÜH‰uÐèú÷ÿ‰ÂH‹EЉÖH‰Çè3Â÷ÿH‰EøHƒ}øtH‹EøH‰Çè�÷ÿë¸H‰EðHƒ}ðtH‹Eð¾H‰ÇèIš÷ÿë¸H‰EèHƒ}øtH‹UøH‹EèH‰ÖH‰ÇèdØ÷ÿHƒ}ðtH‹}ðH‹MøH‹UèH‹uЋEÜI‰ø‰Çè ûÿÿë¸ÉÃUH‰åHƒì0H‰}ØH‰uÐÇEüH‹EÐH‰Eðèº÷ÿ‰ÂH‹E؉ÖH‰ÇèsÁ÷ÿH‰EèHƒ}ètH‹EèH‰Çè\�÷ÿë¸H‰EàHƒ}ètH‹UèH‹EðH‰ÖH‰ÇèÇ×÷ÿHƒ}àt"H‹uàH‹MèH‹UðH‹EØI‰ðH‰Æ¿ÿÿÿÿèjúÿÿ븉Eüƒ}üÿt‹Eüë¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰Çè�÷ÿH‹Eð¶„Àu ‹Eü‰Çèé–÷ÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Çè§÷ÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè»�÷ÿƒøtbH‹Eø¾þÿÿÿH‰Çè5Ï÷ÿH‹UèH‹uðH‹EøH� rÐH‰Çè Ñ÷ÿ…Àt H‹EøH‰ÇèÊž÷ÿH‹Eø¾ÿÿÿÿH‰Çèy©÷ÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Çèo¡÷ÿ‹Uà‹MäH‹Eø‰ÎH‰Çè»Á÷ÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5âÐH‰Ç¸è…´÷ÿH‹EøH�îоH‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰ÇèÖ¨÷ÿò*EôH‹EøH‰Çè%�÷ÿH‹Eø¾ýÿÿÿH‰ÇèÔ ÷ÿH‹EøA¸¹ºÛH�5‰ÏH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰ÇèøÑ÷ÿéå‹Uà‹MäH‹Eè‰ÎH‰Ç蟖÷ÿéÌH‹EèH�оH‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰ÇèÙ§÷ÿ‹UàH‹Eè‰ÖH‰Çèȧ÷ÿH‹EèA¸¹ºH�5½ÏH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çè—÷ÿ‰EüH‹Eè¾þÿÿÿH‰ÇèÍ÷ÿ‹EüëH‹EèH�5 ÏH‰Ç¸èã²÷ÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�ϾH‰ÇèÉ‹UäH‹Eè‰ÖH‰Çè §÷ÿ‹UüH‹Eè‰ÖH‰Çè¼Ï÷ÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰ÇèÉŒ÷ÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çè1­÷ÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çèä�÷ÿ龋MôH‹EøH�ÇΉÎH‰Çè'•÷ÿ…À…š‹UôH‹Eø‰ÖH‰Çèά÷ÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè��÷ÿëZ‹MôH‹EøH�gΉÎH‰ÇèÇ”÷ÿ…ÀuA‹UôH‹Eø‰ÖH‰Çèâ‹÷ÿ‰ÂH‹Eø‰ÖH‰Çèr¨÷ÿH‰ÂH‹EøH�54ÎH‰Ç¸èG±÷ÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çè¿÷ÿ‹UüH‹Eè‰ÖH‰ÇèC®÷ÿH‹Eè¾ÿÿÿÿH‰ÇèR‹÷ÿH‹Eè¾ÿÿÿÿH‰ÇèA‹÷ÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�;H‰Çè»H‹UØH‹EèH‰ÖH‰Çè�¾÷ÿH‹Eè¾þÿÿÿH‰Çè �÷ÿ‹UüH‹Eè‰ÖH‰Ç軦÷ÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè4‹÷ÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰ÇèÝ©÷ÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè^¼÷ÿ…ÀuIHƒ}ètH‹UèH‹EøH�5˜ÌH‰Ç¸è‡¯÷ÿë$H‹EøºH�5�ÌH‰ÇèEH‹EøH‰Çè!™÷ÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH� Ë¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Ç蜩÷ÿH‹E躾ÿÿÿÿH‰ÇèV†÷ÿ‹UüH‹Eè‰ÖH‰Çè¥Ð÷ÿH‹Eè¾ÿÿÿÿH‰ÇèD‰÷ÿH‹Eè¾ÿÿÿÿH‰Çè3‰÷ÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Çè¦È÷ÿH‹E躾H‰ÇèP¾÷ÿH‹UØH‹EèH‰ÖH‰Çè ©÷ÿH‹E躾ÿÿÿÿH‰ÇèÇ…÷ÿH‹Eè¾þÿÿÿH‰ÇèÖ¢÷ÿ‹UüH‹Eè‰ÖH‰ÇèE¿÷ÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�‰Ê¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰ÇèÍÇ÷ÿ‹Eô…ÀuH‹EèH�5ãÊH‰Ç¸è®­÷ÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�ÌʉÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰Çèï§÷ÿH‹E躾ÿÿÿÿH‰Çè©„÷ÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè«¡÷ÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè%Ô÷ÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Çèí½÷ÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰ÇèÃÆ÷ÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�ɾH‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰Çès…÷ÿH‹Eø¾ÿÿÿÿH‰Çèâ†÷ÿH‹Eø¾þÿÿÿH‰ÇèÐ÷ÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèZ¿÷ÿH‰EøH‹EèH�ŸÈ¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çè6�÷ÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰ÇèÏ„÷ÿH‹Eè¾ÿÿÿÿH‰Çè>†÷ÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Ç踕÷ÿ‰EôH‹Eè¾ýÿÿÿH‰Çè¤Å÷ÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çèʆ÷ÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Ç蕆÷ÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çè7…÷ÿƒøt ¸éüH‹EøH‰ÇèLž÷ÿéÍH‹Eø¾þÿÿÿH‰Çè…÷ÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çèw”÷ÿ…ÀtH‹Eø¾þÿÿÿH‰ÇèbÄ÷ÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰ÇèlÐ÷ÿH‹EøºH�5vÇH‰ÇèìH‹Eø¾þÿÿÿH‰Ç裖÷ÿH‹Eø¾H‰ÇèbÃ÷ÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèÚÃ÷ÿH‹Eø¾þÿÿÿH‰ÇèéÆ÷ÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çè›÷ÿ‰EüH‹UàH‹EèH�5èÆH‰Ç脳÷ÿH‹Eè¾îØÿÿH‰Çèó�÷ÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çè.Ã÷ÿ¸ë‹UüH‹Eè‰ÖH‰ÇèÃ÷ÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5;ÆH‰Ç¸èp±÷ÿéÜH‹EðH‹@¶H‹EèH‹@H‰Çèã}÷ÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰ÇèÄ}÷ÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çèß‘÷ÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5W¾H‰ÇèH‹„#H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5.¾H‰Ç¸è¯¨÷ÿH‹…ÀïÿÿH�5¾H‰Ç試÷ÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5í½H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5~½H‰Çè™ ÷ÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5U½H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè+v÷ÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè,Â÷ÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çè�÷ÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰ÇèV¸÷ÿ‹UüH‹…ÈïÿÿH�5l¼H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰ÇègÄ÷ÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�¾»H‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�¤»H‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çèu¹÷ÿÉÃUH‰åHƒì H‰}è‰uäH�™»H‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�E»H‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè�ˆ÷ÿ‹UðH‹Eø‰ÖH‰Çè~ˆ÷ÿ‹UôH‹Eø‰ÖH‰Çè-±÷ÿ‹UðH‹Eø‰ÖH‰Çè±÷ÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çè…÷ÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�α¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�>±¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çèêƒ÷ÿH‹Eø¾þÿÿÿH‰Çè)÷ÿ‹UôH‹Eø‰ÖH‰Çèx£÷ÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè’‡÷ÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'è�”÷ÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰ÇèÃm÷ÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�]°‰ÎH‰Çèãt÷ÿ…À…�‹UäH‹Eè‰ÖH‰Çèúk÷ÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5û¯H‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Ç袅÷ÿé3‹UäH‹Eè‰ÖH‰Çè u÷ÿ…ÀtH‹EèºH�5·¯H‰ÇèÈ÷ÿÿéH‹EèºH�5Ÿ¯H‰Çè«÷ÿÿéä‹MäH‹EèH�Н‰ÎH‰Çè¶‘÷ÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çèk÷ÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰ÇèÛg÷ÿë‹UüH‹Eè‰ÖH‰Çèx‡÷ÿH‰Eð‹UäH‹Eè‰ÖH‰Çè›÷ÿH‰ÁH‹UðH‹EèH�5¯H‰Ç¸èÔ˜÷ÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè]­÷ÿ�ë/H‹Eè¾ÿÿÿÿH‰Ç蹫÷ÿ…ÀuH‹EèH�5Ò®H‰Ç¸èí�÷ÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè5g÷ÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�!®¾H‰ÇèÏßÿÿH‹EøH�“®¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çègh÷ÿH‹Eø¾ÿÿÿÿH‰ÇèÖi÷ÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèM©÷ÿH‹MèH‹EøºH‰ÎH‰ÇèU¶÷ÿH‹UðH‹EøH‰ÖH‰Ç貉÷ÿH‹Eøº¾ÿÿÿÿH‰Çèlf÷ÿH‹Eøº¾H‰Çèö›÷ÿH‹Eø¾ÿÿÿÿH‰Çèeƒ÷ÿH‹UðH‹Eø¾ýÿÿÿH‰ÇèÀr÷ÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè9ƒ÷ÿH‹UðH‹Eø¾îØÿÿH‰Çè”r÷ÿH‹Eø¾þÿÿÿH‰ÇèÓ«÷ÿ�ÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5v­H‰ÇèLh÷ÿH‹H‰EøH‹EȺ¾H‰ÇèŸv÷ÿH‰EðH‹EȺ¾H‰Çè…v÷ÿH‰EèHÇEØHÇEÐH‹EøL‹@H‹EøH‹xH�MÐH�UØH‹uèH‹EðM‰ÁI‰øH‰Çèc|÷ÿ‰Eäƒ}ä…›H‹EØH…Àt5H‹EȾH‰Çè|†÷ÿH‰ÂH‹EØH‰H‹EȺÿÿÿÿH�5ìH‰Çèúc÷ÿë H‹EÈH‰Çè<�÷ÿH‹EÐH…Àt5H‹EȾH‰Çè2†÷ÿH‰ÂH‹EÐH‰H‹EȺÿÿÿÿH�5y¬H‰Çè°c÷ÿë H‹EÈH‰Çèò€÷ÿ¸ë‹UäH‹EȉÖH‰Ç芕÷ÿÉÃUH‰åHƒì@H‰}ÈÇEüH‹EȺH�5¬H‰Çèíf÷ÿH‹H‰EèH‹EȺH�5¬H‰ÇèÎf÷ÿH‹H‰EàH‹EȺ¾H‰Çèm÷ÿ‰EÜHÇEÐHÇEðè—÷ÿH‰EЋuÜH‹EйºÿÿÿÿH‰Çèì¤÷ÿ‰Eüƒ}ü…ßH‹EèH‹PH‹EèH‹pH‹MàH‹EÐH‰Çè_‹÷ÿH‰EðH‹EèH‹PH‹EðH‰ÖH‰Çè$š÷ÿ‰Eüƒ}ü…—Hƒ}ðt5H‹EȾH‰Çèß„÷ÿH‰ÂH‹EðH‰H‹EȺÿÿÿÿH�5&«H‰Çè]b÷ÿë H‹EÈH‰ÇèŸ÷ÿHƒ}Ðt5H‹EȾH‰Çè—„÷ÿH‰ÂH‹EÐH‰H‹EȺÿÿÿÿH�5ÞªH‰Çèb÷ÿë H‹EÈH‰ÇèW÷ÿÇEüƒ}üt:‹UüH‹EȉÖH‰Çèé“÷ÿ‰EüHƒ}Ðt H‹EÐH‰Çè3š÷ÿHƒ}ðt H‹EðH‰Çè š÷ÿ‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5QªH‰Çè'e÷ÿH‹H‰EøH‹EȺH�5AªH‰Çèe÷ÿH‹H‰EðH‹EȺH�5"ªH‰Çèéd÷ÿH‹H‰EèH‹EȺH�5ªH‰ÇèÊd÷ÿH‹H‰EàH‹EȺH�5ä©H‰Çè«d÷ÿH‹H‰EØH‹EøH‹xH‹MØH‹UàH‹uèH‹EðI‰øH‰Çè‘€÷ÿH‰EÐHƒ}Ðt5H‹EȾH‰Çè5ƒ÷ÿH‰ÂH‹EÐH‰H‹EȺÿÿÿÿH�5|©H‰Çè³`÷ÿë H‹EÈH‰Çèõ}÷ÿ¸ÉÃUH‰åHƒì@H‰}ÈÇEüH‹EȺH�5-©H‰Çèd÷ÿH‹H‰EèH‹EȺ¾H‰ÇèFj÷ÿ‰EäHÇEØHÇEðèN”÷ÿH‰EØ‹uäH‹EعºÿÿÿÿH‰Çè!¢÷ÿ‰Eüƒ}ü…ÞH‹EèH‹PH‹EèH‹HH‹EØH‰ÎH‰Çèµ®÷ÿH‰EðH‹EèH‹PH‹EðH‰ÖH‰Ç誧÷ÿ‰Eüƒ}ü…—Hƒ}ðt5H‹EȾH‰Çè‚÷ÿH‰ÂH‹EðH‰H‹EȺÿÿÿÿH�5\¨H‰Çè“_÷ÿë H‹EÈH‰ÇèÕ|÷ÿHƒ}Øt5H‹EȾH‰ÇèÍ�÷ÿH‰ÂH‹EØH‰H‹EȺÿÿÿÿH�5¨H‰ÇèK_÷ÿë H‹EÈH‰Çè�|÷ÿÇEüƒ}üt:‹UüH‹EȉÖH‰Çè‘÷ÿ‰EüHƒ}Øt H‹EØH‰Çèi—÷ÿHƒ}ðt H‹EðH‰ÇèV—÷ÿ‹EüÉÃUH‰åHƒì0H‰}ØH‹EغH�5–§H‰Çè]b÷ÿH‹H‰EøH‹Eغ¾H‰Çè°p÷ÿH‰EðH‹Eغ¾H‰Çè–p÷ÿH‰EèH‹UèH‹MðH‹EøH‰ÎH‰Çè+‡÷ÿH‰EàHƒ}àt5H‹EؾH‰Çè¿€÷ÿH‰ÂH‹EàH‰H‹EغÿÿÿÿH�5§H‰Çè=^÷ÿë H‹EØH‰Çè{÷ÿ¸ÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5¾¦H‰Çè”a÷ÿH‹H‰EøH‹EȺH�5®¦H‰Çèua÷ÿH‹H‰EðH‹EȺH�5�¦H‰ÇèVa÷ÿH‹H‰EèH‹EȺH�5p¦H‰Çè7a÷ÿH‹H‰EàH‹EȺH�5Q¦H‰Çèa÷ÿH‹H‰EØH‹EøH‹PH‹EøH‹@L‹EØH‹}àH‹MèH‹uðM‰ÁI‰øH‰Çèƒ÷ÿH‰EÐHƒ}Ðt5H‹EȾH‰Çè—÷ÿH‰ÂH‹EÐH‰H‹EȺÿÿÿÿH�5Þ¥H‰Çè]÷ÿë H‹EÈH‰ÇèWz÷ÿ¸ÉÃUH‰åHƒì H‰}èH‹E躾H‰ÇèÞn÷ÿH‰EøH‹EøH‰Çèn\÷ÿH‰EðHƒ}ðtJHƒ}ðt5H‹Eè¾H‰Çè ÷ÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5C¥H‰Çè‰\÷ÿëH‹EèH‰ÇèËy÷ÿë H‹EèH‰Çè½y÷ÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ü¤H‰ÇèÒ_÷ÿH‹H‰EøH‹EغH�5ì¤H‰Çè³_÷ÿH‹H‰EðH‹EغH�5ͤH‰Çè”_÷ÿH‹H‰EèH‹EøH‹PH‹MèH‹EðH‰ÎH‰ÇèÒ“÷ÿH‰EàHƒ}àt5H‹EؾH‰Çè&~÷ÿH‰ÂH‹EàH‰H‹EغÿÿÿÿH�5m¤H‰Çè¤[÷ÿë H‹EØH‰Çèæx÷ÿ¸ÉÃUH‰åHƒìH‰}øH‹EøH�XÕ#H�5#¤H‰Çèu÷ÿH‹Eøº¾H‰ÇèÔ÷ÿH‹EøºH�5ÃÕ#H‰ÇèC×ÿÿ¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰ÇèÞk÷ÿH‹Eð¶„Àu ‹Eü‰Çè¹e÷ÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Çè×u÷ÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè‹^÷ÿƒøtbH‹Eø¾þÿÿÿH‰Çèž÷ÿH‹UèH‹uðH‹EøH� ‚£H‰ÇèÚŸ÷ÿ…Àt H‹EøH‰Çèšm÷ÿH‹Eø¾ÿÿÿÿH‰ÇèIx÷ÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Çè?p÷ÿ‹Uà‹MäH‹Eø‰ÎH‰Çè‹�÷ÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5ò£H‰Ç¸èUƒ÷ÿH‹EøH�þ£¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çè¦w÷ÿò*EôH‹EøH‰Çèõ^÷ÿH‹Eø¾ýÿÿÿH‰Çè¤o÷ÿH‹EøA¸¹ºÛH�5™¢H‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰ÇèÈ ÷ÿéå‹Uà‹MäH‹Eè‰ÎH‰Çèoe÷ÿéÌH‹EèH�#£¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çè©v÷ÿ‹UàH‹Eè‰ÖH‰Çè˜v÷ÿH‹EèA¸¹ºH�5Í¢H‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰Çèäe÷ÿ‰EüH‹Eè¾þÿÿÿH‰ÇèЛ÷ÿ‹EüëH‹EèH�5°¢H‰Ç¸è³�÷ÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�/¢¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰ÇèÝu÷ÿ‹UüH‹Eè‰ÖH‰Ç茞÷ÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè™[÷ÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çè|÷ÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè´\÷ÿ龋MôH‹EøH�ס‰ÎH‰Çè÷c÷ÿ…À…š‹UôH‹Eø‰ÖH‰Çèž{÷ÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèQ\÷ÿëZ‹MôH‹EøH�w¡‰ÎH‰Çè—c÷ÿ…ÀuA‹UôH‹Eø‰ÖH‰Çè²Z÷ÿ‰ÂH‹Eø‰ÖH‰ÇèBw÷ÿH‰ÂH‹EøH�5D¡H‰Ç¸è€÷ÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çèä�÷ÿ‹UüH‹Eè‰ÖH‰Çè}÷ÿH‹Eè¾ÿÿÿÿH‰Çè"Z÷ÿH‹Eè¾ÿÿÿÿH‰ÇèZ÷ÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�! ¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çè]�÷ÿH‹Eè¾þÿÿÿH‰ÇèÜk÷ÿ‹UüH‹Eè‰ÖH‰Çè‹u÷ÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèZ÷ÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çè­x÷ÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰Çè.‹÷ÿ…ÀuIHƒ}ètH‹UèH‹EøH�5¨ŸH‰Ç¸èW~÷ÿë$H‹EøºH�5�ŸH‰ÇèEH‹EøH‰Çèñg÷ÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�°ž¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çèlx÷ÿH‹E躾ÿÿÿÿH‰Çè&U÷ÿ‹UüH‹Eè‰ÖH‰ÇèuŸ÷ÿH‹Eè¾ÿÿÿÿH‰ÇèX÷ÿH‹Eè¾ÿÿÿÿH‰ÇèX÷ÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Çèv—÷ÿH‹E躾H‰Çè �÷ÿH‹UØH‹EèH‰ÖH‰ÇèÝw÷ÿH‹E躾ÿÿÿÿH‰Çè—T÷ÿH‹Eè¾þÿÿÿH‰Çè¦q÷ÿ‹UüH‹Eè‰ÖH‰ÇèŽ÷ÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�™�¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè�–÷ÿ‹Eô…ÀuH‹EèH�5ó�H‰Ç¸è~|÷ÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�Ü�‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰Çè¿v÷ÿH‹E躾ÿÿÿÿH‰ÇèyS÷ÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè{p÷ÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çèõ¢÷ÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰Ç轌÷ÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè“•÷ÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�)œ¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰ÇèCT÷ÿH‹Eø¾ÿÿÿÿH‰Çè²U÷ÿH‹Eø¾þÿÿÿH‰Çèáž÷ÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè*Ž÷ÿH‰EøH‹EèH�¯›¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çèl÷ÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰ÇèŸS÷ÿH‹Eè¾ÿÿÿÿH‰ÇèU÷ÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çèˆd÷ÿ‰EôH‹Eè¾ýÿÿÿH‰Çèt”÷ÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰ÇèšU÷ÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰ÇèeU÷ÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰ÇèT÷ÿƒøt ¸éüH‹EøH‰Çèm÷ÿéÍH‹Eø¾þÿÿÿH‰ÇèÖS÷ÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰ÇèGc÷ÿ…ÀtH‹Eø¾þÿÿÿH‰Çè2“÷ÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çè<Ÿ÷ÿH‹EøºH�5†šH‰ÇèìH‹Eø¾þÿÿÿH‰Çèse÷ÿH‹Eø¾H‰Çè2’÷ÿ¸ë/H‹Eø¾þÿÿÿH‰Ç誒÷ÿH‹Eø¾þÿÿÿH‰Ç蹕÷ÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèÞi÷ÿ‰EüH‹UàH‹EèH�5ø™H‰ÇèT‚÷ÿH‹Eè¾îØÿÿH‰ÇèÃl÷ÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çèþ‘÷ÿ¸ë‹UüH‹Eè‰ÖH‰Çèæ‘÷ÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5K™H‰Ç¸è@€÷ÿéÜH‹EðH‹@¶”H‰ÇèZþÿÿ‰Eüƒ}üt‹EüëH‹M°H�UÐH‹EÈH�5 þÿÿH‰Çè¬j÷ÿÉÃUH‰åHƒì0H‰}èH‰uàH‰UØH‹EàH‰EøH‹Eø‹…À~H‹Eø‹HcÐH‹EØH‰H‹EøÇëGH‹EøH‹@H‰Çè8‡÷ÿ…Àt¸ë4H‹EøH‹@H‹UøH�zH‰Áº¾è‹…÷ÿH‰ÂH‹EØH‰H‹EøHƒÀÉÃUH‰åH�ì0H‰½èýÿÿH‰µàýÿÿ‰•ÜýÿÿH�•ðýÿÿ¸¹@H‰×óH«èŒF÷ÿ‹H��ðýÿÿºH‰Î‰ÇèìÿÿH‰Eø‹�ÜýÿÿH‹…èýÿÿº‰ÎH‰Çè4H÷ÿHƒÀH‰EðH‹uøH‹MðH‹•àýÿÿH‹…èýÿÿI‰ðH�5â’H‰Ç¸è?y÷ÿ‹•ÜýÿÿH‹…èýÿÿ‰ÖH‰ÇèÈ–÷ÿ¸ÉÃUH‰åHƒì H‰}èH�µ’H‰EøH‹EèÇH‹EèH‹@H‰Çè`M÷ÿ‰Eôƒ}ôÿtH‹EøH�PH‰Uø¶¶À9Eôt‹EôëCH‹Eè‹�HH‹Uè‰ ‹Uô‰ÑH‹UèH˜ˆLH‹Eø¶„Àu¢H‹EèÇH‹EèH‹@H‰ÇèøL÷ÿÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèIÿÿÿ‰ÂH‹Eà‰H‹Eà‹‰Eüƒ}ü#u>H‹EèH‹@H‰Çè³L÷ÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè”L÷ÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çè¯`÷ÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5g‘H‰ÇèH‹íR#H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5>‘H‰Ç¸èw÷ÿH‹…ÀïÿÿH�5'‘H‰Çèyu÷ÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5ý�H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5Ž�H‰Çèio÷ÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5e�H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰ÇèûD÷ÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çèü�÷ÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çèàk÷ÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰Çè&‡÷ÿ‹UüH‹…ÈïÿÿH�5|�H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çè7“÷ÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�ÎŽH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�´ŽH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèEˆ÷ÿÉÃUH‰åHƒì H‰}è‰uäH�©ŽH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�UŽH‰EøH‹Eø¶÷ÿƒøuO‹UäH‹Eè‰ÖH‰ÇèÚ>÷ÿfH~ÀH‰Eø‹MäH‹E躉ÎH‰Çè&H‰EðòH*Eðf.Eøzf.Eøu¸ë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØÇEôH�Uô‹MäH‹Eè‰ÎH‰Çè>äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰Çè_W÷ÿ‹UðH‹Eø‰ÖH‰ÇèNW÷ÿ‹UôH‹Eø‰ÖH‰Çèý÷ÿ‹UðH‹Eø‰ÖH‰Çèì÷ÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰ÇèÐS÷ÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�Þ„¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�N„¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰ÇèºR÷ÿH‹Eø¾þÿÿÿH‰ÇèùM÷ÿ‹UôH‹Eø‰ÖH‰ÇèHr÷ÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰ÇèbV÷ÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'èQc÷ÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çè“<÷ÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�mƒ‰ÎH‰Çè³C÷ÿ…À…�‹UäH‹Eè‰ÖH‰ÇèÊ:÷ÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5 ƒH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰ÇèrT÷ÿé3‹UäH‹Eè‰ÖH‰ÇèÜC÷ÿ…ÀtH‹EèºH�5Ç‚H‰ÇèÈ÷ÿÿéH‹EèºH�5¯‚H‰Çè«÷ÿÿéä‹MäH‹EèH�š‚‰ÎH‰Çè†`÷ÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çèá9÷ÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰Çè«6÷ÿë‹UüH‹Eè‰ÖH‰ÇèHV÷ÿH‰Eð‹UäH‹Eè‰ÖH‰Çèãi÷ÿH‰ÁH‹UðH‹EèH�5"‚H‰Ç¸è¤g÷ÿƒ}øtCH‹Eè¾þÿÿÿH‰Çè-|÷ÿ�ë/H‹Eè¾ÿÿÿÿH‰Çè‰z÷ÿ…ÀuH‹EèH�5â�H‰Ç¸è½^÷ÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè6÷ÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�1�¾H‰ÇèÏßÿÿH‹EøH�£�¾ðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰Çè77÷ÿH‹Eø¾ÿÿÿÿH‰Çè¦8÷ÿ…À…ŽH‹Eø¾þÿÿÿH‰Çèx÷ÿH‹MèH‹EøºH‰ÎH‰Çè%…÷ÿH‹UðH‹EøH‰ÖH‰Çè‚X÷ÿH‹Eøº¾ÿÿÿÿH‰Çè<5÷ÿH‹Eøº¾H‰ÇèÆj÷ÿH‹Eø¾ÿÿÿÿH‰Çè5R÷ÿH‹UðH‹Eø¾ýÿÿÿH‰Çè�A÷ÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè R÷ÿH‹UðH‹Eø¾îØÿÿH‰ÇèdA÷ÿH‹Eø¾þÿÿÿH‰Çè£z÷ÿ�ÉÃUH‰åHƒì0H‰}ØH‹Eغ¾H‰ÇèŽE÷ÿH‰EøH‹Eعº¾H‰ÇèŸM÷ÿH‰EðH‹UðH‹EøH‰Æ¿è†=÷ÿH‰EèHƒ}ètOHƒ}èt5H‹EؾH‰Çè“U÷ÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5 €H‰Çè3÷ÿë H‹EØH‰ÇèSP÷ÿ¸ëH‹EؾH‰Çèëd÷ÿÉÃUH‰åHƒì H‰}èH‹EèºH�5¿H‰ÇèU6÷ÿH‹H‰EøH‹EøH‰ÇèÒ9÷ÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5�H‰Çè6÷ÿH‹H‰EøH‹Eغ¾H‰ÇèjD÷ÿH‰EðH‹UðH‹EøH‰ÖH‰Çè4÷ÿ‰Eì‹UìH‹E؉ÖH‰Çè?d÷ÿÉÃUH‰åHƒì H‰}èH‰uàH‹EàH‰EøH‹Eø¾ÿÿÿÿH‰ÇèÄV÷ÿ‰EôH‹UèH‹EøH‰ÖH‰Çè>V÷ÿH‹Eøº¾ÿÿÿÿH‰Çèø2÷ÿ‹Eô�PH‹Eø¾þÿÿÿH‰ÇèaT÷ÿ�ÉÃUH‰åHƒì H‰}èH‹EèºH�5¤~H‰Çè:5÷ÿH‹H‰EøH‹E躾H‰Çèýj÷ÿH‹UèH‹EøH�5AÿÿÿH‰ÇèV÷ÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5E~H‰ÇèÛ4÷ÿH‹H‰EøH‹EøH‰Çèø1÷ÿH‰EðH‹EðH‰ÇèhO÷ÿH‰EèH‹UèH‹EØH‰ÖH‰ÇèQU÷ÿH‹Eغ¾ÿÿÿÿH‰Çè 2÷ÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5Ê}H‰Çè`4÷ÿH‹H‰EðH‹EؾH‰ÇèXm÷ÿH‰EèH‹UèH‹EðH‰ÖH‰Çè±8÷ÿ‰Eüƒ}üuH‹UèH‹EØH‰ÖH‰ÇèÕd÷ÿ‰Eüë*H‹UèH‹EØH‰ÖH‰Çè½d÷ÿ‰Eü‹UüH‹E؉ÖH‰ÇèYb÷ÿEüH‹EèºQH�5D}H‰Çè>J÷ÿ‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5%}H‰Çè¥3÷ÿH‹H‰EøH‹EøH‰ÇèòF÷ÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ç|H‰Çèg3÷ÿH‹H‰EøH‹EøH‰Çèd1÷ÿH‰EðHƒ}ðt5H‹Eè¾H‰ÇèR÷ÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5–|H‰Çè†/÷ÿë H‹EèH‰ÇèÈL÷ÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5]|H‰ÇèÝ2÷ÿH‹H‰EøH‹EøH‰ÇèŠf÷ÿH‰EðHƒ}ðt5H‹Eè¾H‰Çè~Q÷ÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5ö{H‰Çèü.÷ÿë H‹EèH‰Çè>L÷ÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5Ó{H‰ÇèS2÷ÿH‹H‰EøH‹EèH‰ÇèL÷ÿH‹EèH�5½{H‰ÇèÝR÷ÿH‹E躾ÿÿÿÿH‰Çè—/÷ÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EàH‰EøH‹Eø¾ÿÿÿÿH‰ÇèS÷ÿ‰EôHƒ}èt5H‹Eø¾H‰ÇèœP÷ÿH‰ÂH‹EèH‰H‹EøºÿÿÿÿH�5{H‰Çè.÷ÿë H‹EøH‰Çè\K÷ÿ‹Eô�PH‹Eø¾þÿÿÿH‰Çè…P÷ÿ�ÉÃUH‰åHƒì H‰}èH‹EèºH�5òzH‰Çè^1÷ÿH‹H‰EøH‹E躾H‰Çè!g÷ÿH‹UèH‹EøH�5"ÿÿÿH‰Çèšd÷ÿ¸ÉÃUH‰åSH�ìèH‰½HÿÿÿÇEìHÇEàH‹…Hÿÿÿº¾H‰Çèb÷ÿH‰EÈHƒ}Èt HÇEØëH‹…Hÿÿÿº¾H‰Çè:H÷ÿH‰EØHƒ}Øu"Hƒ}ÈuH‹…HÿÿÿH�2z¾H‰Çè}6÷ÿH�•XÿÿÿH‹…Hÿÿÿ¾H‰Çèâ>÷ÿH‰EÀHƒ}Ø„ªºH�59z¿èí6÷ÿH‰EÐH‹EØH‰Çè½v÷ÿH‰ÆH‹UàH�BH‰EàH‰ÐHÁàHÐHÁàH�MðHÈH�˜pÿÿÿH�…ÿÿÿ¹H‰òH�5ãyH‰ÇèäK÷ÿH‹…ÿÿÿH‹•ÿÿÿH‰H‰SH‹… ÿÿÿH‹•(ÿÿÿH‰CH‰SH‹…0ÿÿÿH‰C 饺H�5›y¿èC6÷ÿH‰EÐH‹EÈH‰ÇèÃh÷ÿH‰ÆH‹UàH�BH‰EàH‰ÐHÁàHÐHÁàH�MðHÈH�˜pÿÿÿH�…ÿÿÿ¹H‰òH�5EyH‰Çè:K÷ÿH‹…ÿÿÿH‹•ÿÿÿH‰H‰SH‹… ÿÿÿH‹•(ÿÿÿH‰CH‰SH‹…0ÿÿÿH‰C H‹UàH‰ÐHÁàHÐHÁàH�MðHÈH�˜pÿÿÿH�…ÿÿÿH‰Çèå5÷ÿH‹…ÿÿÿH‹•ÿÿÿH‰H‰SH‹… ÿÿÿH‹•(ÿÿÿH‰CH‰SH‹…0ÿÿÿH‰C Hƒ}ЄÄH‹EÐH‰Çèˆ`÷ÿH‰E¸Hƒ}¸„�H‹•XÿÿÿH��`ÿÿÿH‹uÀH‹E¸H‰Çèëv÷ÿ‰Eìƒ}ìuSHƒ}¸t;H‹…Hÿÿÿ¾H‰ÇèM÷ÿH‰ÂH‹E¸H‰H‹…HÿÿÿºÿÿÿÿH�5¢wH‰Çè’*÷ÿë4H‹…HÿÿÿH‰ÇèÑG÷ÿë#‹UìH‹…Hÿÿÿ‰ÖH‰Çèk\÷ÿ‰EìH‹E¸H‰ÇèLA÷ÿH‹EÐH‰Çèp1÷ÿ‹EìH�Äè[]ÃUH‰åHƒì H‰}èH‹EèºH�5/wH‰Çè¯-÷ÿH‹H‰EøHƒ}øu¸ë)H‹EøH‰Çèî@÷ÿH‹Eè¾H‰Çè½f÷ÿHǸÉÃUH‰åSH�ìØH‰½XþÿÿÇEìH‹…Xþÿÿº¾H‰Çè|g÷ÿH‰EàH�U H‹…Xþÿÿ¾H‰Çè�;÷ÿH‰EØH�U˜H‹…Xþÿÿ¾H‰Çèt;÷ÿH‰EÐH‹…Xþÿÿ¾H‰Çè|-÷ÿƒøÿtH‹…Xþÿÿ¾H‰Çèó6÷ÿ븉EÌH‹…Xþÿÿ¾H‰ÇèE-÷ÿ…À~ H‹…XþÿÿºH�5˜vH‰Çè–,÷ÿH‹ë¸H‰EÀHÇ…Hÿÿÿ@HÇE¸HÇE°ºH�5Cv¿è÷2÷ÿH‰E¨Hƒ}¨„‡H‹EàH‰Çè¼r÷ÿH‰ÆH‹U°H�BH‰E°H‰ÐHÁàHÐHÁàH�]ðHØH�˜ÿÿÿH�… þÿÿ¹H‰òH�5âuH‰ÇèãG÷ÿH‹… þÿÿH‹•(þÿÿH‰H‰SH‹…0þÿÿH‹•8þÿÿH‰CH‰SH‹…@þÿÿH‰C H‹U°H‰ÐHÁàHÐHÁàH�]ðHØH�˜ÿÿÿH�… þÿÿH‰ÇèŽ2÷ÿH‹… þÿÿH‹•(þÿÿH‰H‰SH‹…0þÿÿH‹•8þÿÿH‰CH‰SH‹…@þÿÿH‰C H‹E¨H‰Çè<]÷ÿH‰E¸Hƒ}¸ttH‹U˜H��ðþÿÿH‹uÐH‹E¸H‰Çè¦s÷ÿ‰Eìƒ}ìuDH‹U H‹MØH‹E¸H‰ÎH‰Çèf\÷ÿ‰Eìƒ}ìu$H‹�HÿÿÿH�•HÿÿÿH�µPÿÿÿH‹E¸H‰Çè,G÷ÿ‰EìH‹E¸H‰Çè->÷ÿH‹E¨H‰ÇèQ.÷ÿƒ}ìu‹UìH‹…Xþÿÿ‰ÖH‰ÇèY÷ÿ逃}Ìt"H‹•HÿÿÿH��PÿÿÿH‹…XþÿÿH‰ÎH‰Çè¤èÿÿëSH‹…Hÿÿÿ‰ÁH�•`þÿÿH�…Pÿÿÿ‰ÎH‰Çè‰Z÷ÿH�•`þÿÿH‹…XþÿÿH‰ÖH‰ÇèðJ÷ÿH‹…Xþÿÿº¾ÿÿÿÿH‰Çè§'÷ÿ¸H�ÄØ[]ÃUH‰åHƒì0H‰}ØH‹EغH�5tsH‰Çèô)÷ÿH‹H‰EøH�UàH‹EؾH‰ÇèH8÷ÿH‰EðH‹UàH‹MðH‹EøH‰ÎH‰Çè[÷ÿ‰Eì‹UìH‹E؉ÖH‰ÇèX÷ÿÉÃUH‰åH�ìH‰½øþÿÿH‹…øþÿÿºH�5úrH‰Çèz)÷ÿH‹H‰EðHÇE˜@ÇEüÇEøH‹…øþÿÿ¾H‰Çèk÷ÿ…ÀtoH�U�H‹…øþÿÿ¾H‰Çè�7÷ÿH‰EèH‹U�H‹MèH‹EðH‰ÎH‰ÇèrZ÷ÿ‰EøH‹…øþÿÿ¾H‰Çè‹)÷ÿƒøÿtH‹…øþÿÿ¾H‰Çè3÷ÿ븉Eüë7H‹…øþÿÿ¾H‰ÇèR)÷ÿƒøÿtH‹…øþÿÿ¾H‰ÇèÉ2÷ÿ븉Eüƒ}øuH‹M˜H�U˜H�u H‹EðH‰ÇèÑD÷ÿ‰Eøƒ}øu‹UøH‹…øþÿÿ‰ÖH‰ÇèÔV÷ÿëtƒ}ütH‹U˜H�M H‹…øþÿÿH‰ÎH‰ÇèjæÿÿëMH‹E˜‰ÁH�•ÿÿÿH�E ‰ÎH‰ÇèUX÷ÿH�•ÿÿÿH‹…øþÿÿH‰ÖH‰Çè¼H÷ÿH‹…øþÿÿº¾ÿÿÿÿH‰Çès%÷ÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5HqH‰ÇèÈ'÷ÿH‹H‰EøH‹EøH‰Çè…o÷ÿH‰EðH‹UðH‹EèH‰ÖH‰Çè?÷ÿ¸ÉÃUH‰åHƒìH‰}øH‹EøH��ž#H�5ÛpH‰Çè‘=÷ÿH‹EøH�öž#H�5×pH‰Çèw=÷ÿH‹Eøº¾H‰Çè!]÷ÿH‹EøºH�5!+#H‰ÇèÑÐÿÿ¸ÉÃUH‰åHƒì0H‰}è‰uäH‰U؃}äy‹Eäƒèë‹Eä‰EôH‹EØH‰EøëEH‹EøH‹H‹EèH‰ÖH‰Çè‹G÷ÿH‹Eø‹@HcÐH‹EèH‰ÖH‰Çè2>÷ÿ‹UôH‹Eè‰ÖH‰Çè1C÷ÿHƒEøH‹EøH‹H…Àu¯¸ÉÃUH‰åHƒì@H‰}è‰uäH‰UØH‰MÐL‰EÈH‹MÐH‹UØ‹uäH‹EèH‰Çè÷F÷ÿ‰Eü‹EüH˜H�…H‹EÈHЋÉÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹UÜH‹MàH‹EèH‰ÎH‰ÇèÑo÷ÿH‰EøHƒ}øt H‹EøH‹ë¸ÉÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰ÇèÀ2÷ÿH‹Eð¶„Àu ‹Eü‰Çè›,÷ÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰Çè¹<÷ÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çèm%÷ÿƒøtbH‹Eø¾þÿÿÿH‰Çèçd÷ÿH‹UèH‹uðH‹EøH� $oH‰Çè¼f÷ÿ…Àt H‹EøH‰Çè|4÷ÿH‹Eø¾ÿÿÿÿH‰Çè+?÷ÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Çè!7÷ÿ‹Uà‹MäH‹Eø‰ÎH‰ÇèmW÷ÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5”oH‰Ç¸è7J÷ÿH‹EøH� o¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰Çèˆ>÷ÿò*EôH‹EøH‰Çè×%÷ÿH‹Eø¾ýÿÿÿH‰Çè†6÷ÿH‹EøA¸¹ºÛH�5;nH‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çèªg÷ÿéå‹Uà‹MäH‹Eè‰ÎH‰ÇèQ,÷ÿéÌH‹EèH�Ån¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰Çè‹=÷ÿ‹UàH‹Eè‰ÖH‰Çèz=÷ÿH‹EèA¸¹ºH�5onH‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰ÇèÆ,÷ÿ‰EüH‹Eè¾þÿÿÿH‰Çè²b÷ÿ‹EüëH‹EèH�5RnH‰Ç¸è•H÷ÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�Ñm¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çè¿<÷ÿ‹UüH‹Eè‰ÖH‰Çène÷ÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰Çè{"÷ÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰ÇèãB÷ÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè–#÷ÿ龋MôH‹EøH�ym‰ÎH‰ÇèÙ*÷ÿ…À…š‹UôH‹Eø‰ÖH‰Çè€B÷ÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè3#÷ÿëZ‹MôH‹EøH�m‰ÎH‰Çèy*÷ÿ…ÀuA‹UôH‹Eø‰ÖH‰Çè”!÷ÿ‰ÂH‹Eø‰ÖH‰Çè$>÷ÿH‰ÂH‹EøH�5ælH‰Ç¸èùF÷ÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰ÇèÆT÷ÿ‹UüH‹Eè‰ÖH‰ÇèõC÷ÿH‹Eè¾ÿÿÿÿH‰Çè!÷ÿH‹Eè¾ÿÿÿÿH‰Çèó ÷ÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�Ãk¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çè?T÷ÿH‹Eè¾þÿÿÿH‰Çè¾2÷ÿ‹UüH‹Eè‰ÖH‰Çèm<÷ÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèæ ÷ÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰Çè�?÷ÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰ÇèR÷ÿ…ÀuIHƒ}ètH‹UèH‹EøH�5JkH‰Ç¸è9E÷ÿë$H‹EøºH�5?kH‰ÇèEH‹EøH‰ÇèÓ.÷ÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�Rj¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰ÇèN?÷ÿH‹E躾ÿÿÿÿH‰Çè÷ÿ‹UüH‹Eè‰ÖH‰ÇèWf÷ÿH‹Eè¾ÿÿÿÿH‰Çèö÷ÿH‹Eè¾ÿÿÿÿH‰Çèå÷ÿƒøu¸ëwH‹Eè¾þÿÿÿH‰ÇèX^÷ÿH‹E躾H‰ÇèT÷ÿH‹UØH‹EèH‰ÖH‰Çè¿>÷ÿH‹E躾ÿÿÿÿH‰Çèy÷ÿH‹Eè¾þÿÿÿH‰Çèˆ8÷ÿ‹UüH‹Eè‰ÖH‰Çè÷T÷ÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�;i¾H‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰Çè]÷ÿ‹Eô…ÀuH‹EèH�5•iH‰Ç¸è`C÷ÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�~i‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰Çè¡=÷ÿH‹E躾ÿÿÿÿH‰Çè[÷ÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè]7÷ÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè×i÷ÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰ÇèŸS÷ÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çèu\÷ÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�Ëg¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰Çè%÷ÿH‹Eø¾ÿÿÿÿH‰Çè”÷ÿH‹Eø¾þÿÿÿH‰ÇèÃe÷ÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè U÷ÿH‰EøH‹EèH�Qg¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çèè2÷ÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰Çè�÷ÿH‹Eè¾ÿÿÿÿH‰Çèð÷ÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çèj+÷ÿ‰EôH‹Eè¾ýÿÿÿH‰ÇèV[÷ÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰Çè|÷ÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰ÇèG÷ÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çèé÷ÿƒøt ¸éüH‹EøH‰Çèþ3÷ÿéÍH‹Eø¾þÿÿÿH‰Çè¸÷ÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰Çè)*÷ÿ…ÀtH‹Eø¾þÿÿÿH‰ÇèZ÷ÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çèf÷ÿH‹EøºH�5(fH‰ÇèìH‹Eø¾þÿÿÿH‰ÇèU,÷ÿH‹Eø¾H‰ÇèY÷ÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèŒY÷ÿH‹Eø¾þÿÿÿH‰Çè›\÷ÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰ÇèÀ0÷ÿ‰EüH‹UàH‹EèH�5šeH‰Çè6I÷ÿH‹Eè¾îØÿÿH‰Çè¥3÷ÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰ÇèàX÷ÿ¸ë‹UüH‹Eè‰ÖH‰ÇèÈX÷ÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5ídH‰Ç¸è"G÷ÿéÜH‹EðH‹@¶H‹EèH‹@H‰Çè•÷ÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çèv÷ÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰Çè‘'÷ÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5 ]H‰ÇèH‹Ï#H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5à\H‰Ç¸èa>÷ÿH‹…ÀïÿÿH�5É\H‰Çè[<÷ÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5Ÿ\H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�50\H‰ÇèK6÷ÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5\H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰ÇèÝ ÷ÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰ÇèÞW÷ÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰ÇèÂ2÷ÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰ÇèN÷ÿ‹UüH‹…ÈïÿÿH�5[H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰ÇèZ÷ÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�pZH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�VZH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰Çè'O÷ÿÉÃUH‰åHƒì H‰}è‰uäH�KZH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�÷YH‰EøH‹Eø¶÷ÿH‰EèHƒ}ètH‹EèH‹H‹EøH‰ëH‹Eøº¾H‰Çèx÷ÿH‹EؾþÿÿÿH‰Çè7E÷ÿH‹EØH‰ÇèkE÷ÿH‹EؾþÿÿÿH‰Çèš÷ÿH‹EؾüÿÿÿH‰Çèi!÷ÿH‹EؾýÿÿÿH‰ÇèøD÷ÿH‹EøÉÃUH‰åHƒì H‰}è‰uä‹UäH‹Eè‰ÖH‰ÇèB÷ÿƒøuO‹UäH‹Eè‰ÖH‰Çè¼÷ÿfH~ÀH‰Eø‹MäH‹E躉ÎH‰Çè&H‰EðòH*Eðf.Eøzf.Eøu¸ë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØÇEôH�Uô‹MäH‹Eè‰ÎH‰Çè>äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰ÇèA÷ÿ‹UðH‹Eø‰ÖH‰Çè0÷ÿ‹UôH‹Eø‰ÖH‰ÇèßF÷ÿ‹UðH‹Eø‰ÖH‰ÇèÎF÷ÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰Çè²÷ÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH�€P¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�ðO¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰Çèœ÷ÿH‹Eø¾þÿÿÿH‰ÇèÛ÷ÿ‹UôH‹Eø‰ÖH‰Çè*9÷ÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰ÇèD÷ÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'è3*÷ÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Çèu÷ÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�O‰ÎH‰Çè• ÷ÿ…À…�‹UäH‹Eè‰ÖH‰Çè¬÷ÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�5­NH‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰ÇèT÷ÿé3‹UäH‹Eè‰ÖH‰Çè¾ ÷ÿ…ÀtH‹EèºH�5iNH‰ÇèÈ÷ÿÿéH‹EèºH�5QNH‰Çè«÷ÿÿéä‹MäH‹EèH�÷ÿH‹MèH‹EøºH‰ÎH‰ÇèL÷ÿH‹UðH‹EøH‰ÖH‰Çèd÷ÿH‹Eøº¾ÿÿÿÿH‰ÇèüöÿH‹Eøº¾H‰Çè¨1÷ÿH‹Eø¾ÿÿÿÿH‰Çè÷ÿH‹UðH‹Eø¾ýÿÿÿH‰Çèr÷ÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çèë÷ÿH‹UðH‹Eø¾îØÿÿH‰ÇèF÷ÿH‹Eø¾þÿÿÿH‰Çè…A÷ÿ�ÉÃUH‰å‰}ìÇEüëƒEü¸ 9Eü}‹Eü;Eìuê¸ 9Eüu H�KMë!‹EüHcÐH‰ÐHÀHÐHÁàH‰ÂH� #H‹]ÃUH‰åHƒì H‰}èÇEüÿÿÿÿÇEøé‘‹EøHcÐH‰ÐHÀHÐHÁàH‰ÂH�Â#H‹H‹EèH‰ÖH‰Çè&÷ÿ…Àt4‹EøHcÐH‰ÐHÀHÐHÁàH‰ÂH�–#H‹H‹EèH‰ÖH‰ÇèÓ%÷ÿ…Àu%‹EøHcÐH‰ÐHÀHÐHÁàH‰ÂH�R#‹‰EüëƒEø¸ 9EøŒaÿÿÿ‹EüÉÃUH‰åHƒì H‰}è‰uäÇEü‹UäH‹Eè‰ÖH‰ÇèÜ÷ÿ…Àt‹MäH‹E躉ÎH‰Çèkøÿÿ‰Eüëv‹UäH‹Eè‰ÖH‰Çè|>÷ÿ…Àt+‹MäH‹E躉ÎH‰ÇèúöÿH‰EðH‹EðH‰Çè¢÷ÿ‰Eüë6‹UäH‹Eè‰ÖH‰Çèüüöÿ…À ÇEüë‹MäH‹EèH�·K‰ÎH‰Çè7÷ÿƒ}üx ¸ 9Eü|‹MäH‹EèH�¥K‰ÎH‰Çè÷ÿ…À�‹EüÉÃUH‰åHƒì0H‰}ØÇEìÇEüH�UìH‹Eع¾�H‰Çè“9÷ÿH‰EðH‹EðH‰ÇèÓ#÷ÿ‹EüÉÃUH‰åHƒìPH‰}ÈH‰uÀ‰U¼è¶÷ÿH‰Eøè�)÷ÿH‰EðH‹EȾH‰Çè˜÷ÿH‰EèH‹UÀH‹EðH‰ÖH‰Çèa7÷ÿH‹UðH‹EøH‰ÖH‰Çèn/÷ÿH‹UèH‹EøH‰ÖH‰Çè+ ÷ÿèv÷ÿH‰Eàè}÷ÿH‰EØ‹E¼HcÐH‹EàH‰ÖH‰Çèä,÷ÿH‹UàH‹EØH‰ÖH‰ÇèÑ0÷ÿ¿�èÇ'÷ÿH‰ÂH‹EØH‰ÖH‰Çèµ.÷ÿH‹MØH‹EøºH‰ÎH‰Çè}÷ÿH‹EØH‰Çè!ûöÿH‹EàH‰ÇèÕ"÷ÿH‹EðH‰ÇèÙ8÷ÿH‹EèH‰Çè­÷ÿH‹EøÉÃUH‰åHƒì H‰}èH‰uàH‹EàH‰Çè„þÿÿ‰EüH‹E躾H‰Çèb0÷ÿÇEøþÿÿÿò*EüH‹EèH‰Çèjüöÿ‹MøH‹EèH�öI‰ÎH‰Çèb÷ÿÇEôþÿÿÿ‹Eü‰Çè¡D÷ÿH‰ÂH‹EèH‰ÖH‰Çèß÷ÿH‹E躾ÿÿÿÿH‰Çè™÷öÿ‹MôH‹EèH�ªI‰ÎH‰Çè÷ÿH‹EàH‰ÇèÅ7÷ÿH‰ÁH‹EèºH‰ÎH‰Çè.C÷ÿH‹EèH�yI¾þÿÿÿH‰ÇèÖ÷ÿH‹EàH‰ÇèúýöÿH‰ÁH‹EèºH‰ÎH‰ÇèóB÷ÿH‹EèH�KI¾þÿÿÿH‰Çè›÷ÿH‹EèH�5BIH‰Çè(÷ÿH‹E躾ÿÿÿÿH‰ÇèâööÿH‹EàH‰Çè†÷ÿH‰ÂH‹EèH‰ÖH‰Çè4ýöÿH‹Eè¾ýÿÿÿH‰Çè³÷ÿ¸ÉÃUH‰åSH�ìˆH‰½xÿÿÿH‹…xÿÿÿH‰Çèš÷ÿ‰EÐè‚%÷ÿH‰EÈH‹EȾH‰Çè�÷ÿ‰EèHÇEàHÇEØHÇEÀÇEìéõƒ}ì…H‹…xÿÿÿ¾H‰Çè8ùöÿƒøtH‹…xÿÿÿH�eH¾H‰Çèxþöÿ…À�‹UìH‹…xÿÿÿ‰ÖH‰Çè‘÷ÿH…À„º‹UìH‹…xÿÿÿ‰ÖH‰Çèt÷ÿ‰E¼ÇEÔé…‹UÔ‹MìH‹…xÿÿÿ‰ÎH‰Çè>ÿöÿH‹…xÿÿÿ¾ÿÿÿÿH‰ÇèªøöÿH‹…xÿÿÿº¾ÿÿÿÿH‰ÇèQ÷ÿH‹…xÿÿÿH�’G¾ÿÿÿÿH‰ÇèöööÿH‹…xÿÿÿ¾ÿÿÿÿH‰ÇèbøöÿH‹…xÿÿÿH�ÎG¾þÿÿÿH‰ÇèÇööÿH‹…xÿÿÿ¾ÿÿÿÿH‰Çè3øöÿH‹…xÿÿÿH�¤G¾ýÿÿÿH‰Çè˜ööÿH‹…xÿÿÿ¾ÿÿÿÿH‰ÇèøöÿH‹…xÿÿÿ¾ÿÿÿÿH‰Çè@üöÿH‰E°H‹…xÿÿÿ¾ýÿÿÿH‰ÇèEúÿÿ‰ÃH‹…xÿÿÿº¾þÿÿÿH‰ÇèÖòÿÿH‰ÁH‹E°‰ÚH‰ÎH‰ÇèKûÿÿH‰E¨Hƒ}¨tH‹U¨H‹EÈH‰ÖH‰Çè{)÷ÿ‰EèH‹E°H‰Çè¼+÷ÿH‹…xÿÿÿ¾üÿÿÿH‰Çèø6÷ÿH‹…xÿÿÿ¾þÿÿÿH‰Çèä6÷ÿƒEÔƒ}èu ‹EÔ;E¼Žiþÿÿƒ}ìuCH‹…xÿÿÿºH�5§FH‰Çè�ööÿH‹H‰EàH‹EàH‰ÇèZ÷ÿH‰ÂH‹EÈH‰ÖH‰Çè˜-÷ÿ‰Eèƒ}ì…†H‹…xÿÿÿºH�5gFH‰Çè@ööÿH‹H‰EØH‹EØH‰Çè½÷ÿ…ÀuH‹…xÿÿÿH�KF¾H‰Çèþûöÿ…À�H‹UØH‹EàH‰ÖH‰Çè˜ ÷ÿƒøtH‹…xÿÿÿH�-F¾H‰ÇèÈûöÿ…À�ƒEìƒ}èu ‹Eì;EÐŽùüÿÿH‹…xÿÿÿH�F¾H‰Çèä/÷ÿH‰EÀH‹…xÿÿÿ¾H‰ÇèööÿƒøÿtH‹…xÿÿÿ¾H‰ÇèD÷ÿ븀: ‰E¤ƒ}è…ŸH�E€H‰Çès÷ÿ‹E¤HcÐH‹E€HÐH‰E˜è-#÷ÿH‰E�è$#÷ÿH‰EˆH‹U€H‹E�H‰ÖH‰Çèý0÷ÿH‹U˜H‹EˆH‰ÖH‰Çèê0÷ÿH‹U�H‹EÈH‰ÖH‰Çè7%÷ÿ‰Eèƒ}èuH‹UˆH‹EÈH‰ÖH‰Çèë÷ÿ‰EèH‹E�H‰ÇèÜ2÷ÿH‹EˆH‰ÇèÐ2÷ÿHƒ}àt>Hƒ}Øt7Hƒ}Àt0H‹UÀH‹MØH‹EÈH‰ÎH‰Çèd÷ÿ‰ÃH‹EØH‰Çè68÷ÿ9ÔÀ¶À‰Eèƒ}èuSHƒ}Èt;H‹…xÿÿÿ¾H‰Çè*÷ÿH‰ÂH‹EÈH‰H‹…xÿÿÿºÿÿÿÿH�5¯DH‰Çè¥ðöÿë3H‹…xÿÿÿH‰Çèä ÷ÿë"H‹EÈH‰ÇèÖ÷ÿ‹UèH‹…xÿÿÿ‰ÖH‰Çèr"÷ÿë¸H�Ĉ[]ÃUH‰åHƒì0H‰}ØÇEüH‹EؾH‰Çè�6÷ÿH‰EèH‹EØH‹Öý"H‰ÑH�7D¾H‰Çè7÷ÿ‰EøHÇEðƒ}øuH‹EèH‰Çèj+÷ÿ…Àt¸ë¸‰Eøƒ}øuH‰Çè¡ÈÿÿH‰EàHƒ}èu!Hƒ}àuH‹EØH�?¾H‰ÇèQôöÿ…À�Hƒ}ètH‹UèH‹EðH‰ÖH‰Çèt%÷ÿ‰Eüë(Hƒ}àt!H‹EàH‰Çè ÷ÿH‰ÂH‹EðH‰ÖH‰ÇèJ%÷ÿ‰Eü‹UüH‹E؉ÖH‰Çèv÷ÿ‰Eü‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5T>H‰ÇèÚíöÿH‹H‰EøH‹EȾH‰ÇèRîöÿƒøÿu/H‹EøH‰Çèá÷ÿH‰EðH‹MðH‹EȺH‰ÎH‰Çèå6÷ÿ¸ëfH‹EȾH‰Çè <÷ÿH˜H‰Eèèb÷ÿH‰EàH‹UèH‹EàH‰ÖH‰Çè;)÷ÿH‹UàH‹EøH‰ÖH‰Çèˆ÷ÿ‰EÜH‹EàH‰ÇèI+÷ÿ‹UÜH‹EȉÖH‰Çè˜÷ÿÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5|=H‰ÇèíöÿH‹H‰EøH‹EȾH‰Çèzíöÿƒøÿu/H‹EøH‰Çè õöÿH‰EðH‹MðH‹EȺH‰ÎH‰Çè 6÷ÿ¸ëfH‹EȾH‰Çè5;÷ÿH˜H‰EèèŠ÷ÿH‰EàH‹UèH‹EàH‰ÖH‰Çèc(÷ÿH‹UàH‹EøH‰ÖH‰Çè€÷ÿ‰EÜH‹EàH‰Çèq*÷ÿ‹UÜH‹EȉÖH‰ÇèÀ÷ÿÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5¤<H‰Çè*ìöÿH‹H‰EèH‹E¸¾H‰Çè¢ìöÿƒøÿuZH‹EèH‰Çè1÷ÿH‰EàH‹EèH‰Çè!ôöÿH‰EØH‹MàH‹E¸ºH‰ÎH‰Çè%5÷ÿH‹MØH‹E¸ºH‰ÎH‰Çè 5÷ÿ¸éÇEüH‹E¸H‰Çè0÷ÿƒøu-H�EÀH‰Çè¯ ÷ÿH‹E¸¾H‰Çè:÷ÿHcÐH‹EÀHÐH‰Eðë6H‹E¸¾H‰Çèí9÷ÿH˜H‰EÀH‹E¸¾H‰ÇèÖ9÷ÿH˜H‰EðH‹EÀHEðè#÷ÿH‰EÐH‹UÀH‹EÐH‰ÖH‰Çèü&÷ÿè÷ÿH‰EÈH‹UðH‹EÈH‰ÖH‰Çèà&÷ÿH‹UÐH‹EèH‰ÖH‰Çè-÷ÿ‰Eüƒ}üuH‹UÈH‹EèH‰ÖH‰Çèá÷ÿ‰EüH‹EÐH‰ÇèÒ(÷ÿH‹EÈH‰ÇèÆ(÷ÿ‹UüH‹E¸‰ÖH‰Çè÷ÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5ô:H‰ÇèzêöÿH‹H‰EøH‹EøH‰Çè×,÷ÿ‰Eô‹UôH‹Eè‰ÖH‰ÇèÃ÷ÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5§:H‰Çè-êöÿH‹H‰EðHÇEèH‹EغH�5 :H‰Çè4÷ÿH…Àu7H‹EغH�5:H‰Çèù3÷ÿH…ÀuH‹EØH�±:¾H‰Çè¼ïöÿ…À�H‹EغH�5Ø9H‰ÇèÁ3÷ÿH…Àt7H‹EغH�5»9H‰Çè”éöÿH‹H‰EèH‹UèH‹EðH‰ÖH‰ÇèŠíöÿ‰EüëQH‹EغH�5w9H‰Çè]éöÿH‹H‰EàH‹EàH‰ÇèÊ*÷ÿH‰EèH‹UèH‹EðH‰ÖH‰ÇèCíöÿ‰EüH‹EèH‰Çèôýöÿ‹UüH‹E؉ÖH‰Çèƒ÷ÿÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5g9H‰ÇèíèöÿH‹H‰EðH‹EȺH�5õ8H‰ÇèÎèöÿH‹H‰EèH‹EÈH�'9¾H‰Çèï"÷ÿH‰EàÇEüH‹EȺH�5¦8H‰Çèœ2÷ÿH…Àu7H‹EȺH�59H‰Çè2÷ÿH…ÀuH‹EÈH�W9¾H‰ÇèBîöÿ…À�H‹EȺH�5Ë8H‰ÇèG2÷ÿH…Àt:H‹EȺH�5®8H‰ÇèèöÿH‹H‰EØH‹UØH‹EðH‰ÖH‰Çè0÷ÿ‰Eüé¿H‹EȺH�5ú7H‰Çèð1÷ÿH…À„žH‹EȺH�5Ù7H‰Çè¿çöÿH‹H‰EÐH‹EÐH‰ÇèŒ ÷ÿH‰ÂH‹EðH‰ÖH‰ÇèÊ÷ÿ‰Eüƒ}üuXH‹UèH‹EÐH‰ÖH‰Çèÿöÿ‰Eüƒ}üt3¾þÿÿÿH‰ÇèºëöÿHÇE�HÇEÐH�U H�M�H‹EðH‰ÎH‰Çè#åöÿH‹E H…ÀtH‹E H‹H‰Çè‹÷ÿ…ÀtlHƒ}Ðt;H‹…Hÿÿÿ¾H‰Çè÷ÿH‰ÂH‹EÐH‰H‹…HÿÿÿºÿÿÿÿH�5Á2H‰Çè—ÝöÿëH‹…HÿÿÿH‰ÇèÖúöÿH‹…HÿÿÿH�­2¾þÿÿÿH‰Çè ëöÿH‹E�H…Àt@H‹E�‹…À~6H‹M�H‹…HÿÿÿºÿÿÿÿH‰ÎH‰Çè*÷ÿH‹…HÿÿÿH�l2¾þÿÿÿH‰ÇèÂêöÿH‹E𹺾XH‰Çè7)÷ÿH‰EÈHƒ}Èt6H‹MÈH‹…HÿÿÿºH‰ÎH‰ÇèÁ)÷ÿH‹…HÿÿÿH�2¾þÿÿÿH‰ÇèfêöÿH‹EðH‰Çè #÷ÿH‰EÀHƒ}Àt1H‹UÀH‹…HÿÿÿH‰ÖH‰ÇèäöÿH‹…HÿÿÿH�Ý/¾þÿÿÿH‰ÇèêöÿH‹EðH‰Çè÷ÿH‰E¸Hƒ}¸„°H‹E¸H‰Ç蛹ÿÿH‰Çèîöÿ‰E´H‹…Hÿÿÿº¾H‰Çè£÷ÿÇEüëTH‹E¸H‰Çèb¹ÿÿH‰Â‹Eü‰ÆH‰×è÷ÿH‰E¨H‹U¨H‹…HÿÿÿH‰ÖH‰ÇèÍäÿÿ‹Eü�PH‹…Hÿÿÿ¾þÿÿÿH‰ÇèjþöÿƒEü‹Eü;E´|¤H‹…HÿÿÿH�1¾þÿÿÿH‰ÇèSéöÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5’/H‰ÇèßöÿH‹H‰EøH‹EøH‰ÇèÅìöÿ¸ÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5T/H‰ÇèÚÞöÿH‹H‰EðH‹EÈH‹àè"H‰ÑH�ˆ0¾H‰ÇèAÿöÿ‰EìHÇEàÇEüƒ}ìt ƒ}ìtH‹EÈH�V0¾H‰Çèkäöÿ…À�è3þöÿH‰Çè[ ÷ÿH‰Eàƒ}ìu_H‹UðH‹EàH‰ÖH‰Çè.æöÿ…À„�H�UØH‹EàH‰Ñº¾sH‰Çè)áöÿH‹EØH‹H‹EØH‹HH‹EÈH‰ÎH‰ÇèQÕÿÿÇEüëYH‹UðH‹EàH‰ÖH‰Çè¯÷ÿ…ÀtBH�UÐH‹EàH‰Ñº¾sH‰ÇèÎàöÿH‹EÐH‹H‹EÐH‹HH‹EÈH‰ÎH‰ÇèöÔÿÿÇEüH‹EàH‰Çè�÷ÿ‹EüÉÃUH‰åHƒì0H‰}ØH‹EغH�5î-H‰ÇètÝöÿH‹H‰EøH‹EøH‰Çèq ÷ÿH‰EðHƒ}ðtH‹EðH‰Çèþ¶ÿÿH‰Çèâëöÿ븉Eì‹EìHcÐH‹EØH‰ÖH‰Çè“ôöÿ¸ÉÃUH‰åHƒìPH‰}¸H‹E¸ºH�5r-H‰ÇèøÜöÿH‹H‰EèH‹EèH‰Çèõ ÷ÿH‰EàHÇEøÇEðH‹E¸¾H‰Çèï×ÿÿ…ÀtxH‹E¸º¾H‰ÇèPØÿÿ‰Eôƒ}ôxH‹EàH‰ÇèF¶ÿÿH‰Çè*ëöÿ9Eô|H‹E¸H�_.¾H‰Çè]âöÿ…À�H‹EàH‰Çè¶ÿÿH‰Â‹Eô‰ÆH‰×è¾ ÷ÿH‰Eøé—H‹E¸ºH�5'.H‰Çè-ÜöÿH‹H‰EØH‹EàH‰ÇèεÿÿH‰Çè²êöÿ‰EÔÇEôëPH‹EàH‰Ç讵ÿÿH‰Â‹Eô‰ÆH‰×èZ ÷ÿH‰EÈH‹EÈH‰Çèª÷ÿH‰ÂH‹EØH‰ÆH‰×è*÷ÿ…Àu H‹EÈH‰Eøë ƒEô‹Eô;EÔ|¨Hƒ}ø„«H‹E¸¾H‰Çè"ÜöÿƒøÿtH‹E¸¾H‰Çèœåöÿ븉Eă}ÄtH‹UøH‹E¸H‰ÖH‰Çè¢àÿÿëXH‹EøH‰Çè;íöÿH‰EøHƒ}øt5H‹E¸¾H‰ÇèÿùöÿH‰ÂH‹EøH‰H‹E¸ºÿÿÿÿH�5-H‰Çè}×öÿë H‹E¸H‰Çè¿ôöÿÇEð‹EðÉÃUH‰åHƒì H‰}èH‹EèºH�5Þ,H‰ÇèÏÚöÿH‹H‰EøH‹UøH‹EèH‰ÖH‰ÇèþßÿÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5ž,H‰Çè�ÚöÿH‹H‰EøH‹EؾH‰ÇèÛöÿƒøÿu`H‹EøH‰ÇèOÞÿÿ‰Eô‹EôHcÐH‹EØH‰ÖH‰Çè¾ñöÿ‹Eô‰Çè¤$÷ÿH‰ÂH‹EØH‰ÖH‰ÇèâúöÿH‹Eغ¾ÿÿÿÿH‰Çèœ×öÿ¸éŸH‹EؾH‰ÇèþÜÿÿ‰EðèáöÿH‰Eèè øöÿH‰Eà‹EðHcÐH‹EèH‰ÖH‰Çè‡ ÷ÿH‹UèH‹EàH‰ÖH‰Çèt÷ÿ¿�èj÷ÿH‰ÂH‹EàH‰ÖH‰ÇèX ÷ÿH‹MàH‹EøºH‰ÎH‰Çè òöÿH‹EàH‰ÇèÄÙöÿH‹EèH‰Çèx÷ÿ¸ÉÃUH‰åHƒì`H‰}¨H‹E¨H‹@H‰EðHÇEøH�E°º8¾H‰Çè‹êöÿH‹E¨‹@ƒøufH‹EøH�PH‰UøH‹UðHж¾À�PЉÐÁàÐÀ‰EÄH‹EøH�PH‰UøH‹UðHж¾À�PЋEÄЉEÄ‹EăøE�È‹EăÀd‰EÄéºH‹E¨‹@ƒø…ªH‹EøH�PH‰UøH‹UðHж¾Àƒè0iÀè‰EÄH‹EøH�PH‰UøH‹UðHж¾Àƒè0kÐd‹EÄЉEÄH‹EøH�PH‰UøH‹UðHж¾À�PЉÐÁàÐÀ‰Â‹EÄЉEÄH‹EøH�PH‰UøH‹UðHж¾À�PЋEÄЉEÄ‹EÄ-l‰EÄH‹EøH�PH‰UøH‹UðHж¾À�PЉÐÁàÐÀ‰EÀH‹EøH�PH‰UøH‹UðHж¾À�PÏ‹EÀЉEÀH‹EøH�PH‰UøH‹UðHж¾À�PЉÐÁàÐÀ‰E¼H‹EøH�PH‰UøH‹UðHж¾À�PЋE¼ЉE¼H‹EøH�PH‰UøH‹UðHж¾À�PЉÐÁàÐÀ‰E¸H‹EøH�PH‰UøH‹UðHж¾À�PЋE¸ЉE¸H‹EøH�PH‰UøH‹UðHж¾À�PЉÐÁàÐÀ‰E´H‹EøH�PH‰UøH‹UðHж¾À�PЋE´ЉE´H‹EøH�PH‰UøH‹UðHж¾À�PЉÐÁàÐÀ‰E°H‹EøH�PH‰UøH‹UðHж¾À�PЋE°ЉE°H�E°H‰ÇèWíöÿÉÃUH‰åHƒì H‰}èH‹EèºH�5p(H‰ÇèaÖöÿH‹H‰EøH‹EøH‰ÇèŽÚöÿH‰EðH‹EðH‰ÇèÍüÿÿH‰ÂH‹EèH‰ÖH‰ÇèœíöÿH‹MðH‹EèºH‰ÎH‰Çèd÷ÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ø'H‰ÇèéÕöÿH‹H‰EøH‹EøH‰Çè¦÷ÿH‰EðH‹Eð¾H‰ÇèÑ÷ÿH‰EèHƒ}èt5H‹EؾH‰ÇèuôöÿH‰ÂH‹EèH‰H‹EغÿÿÿÿH�5ø'H‰ÇèóÑöÿë H‹EØH‰Çè5ïöÿH‹MðH‹EغH‰ÎH‰Çè­÷ÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5A'H‰Çè2ÕöÿH‹H‰EðH‹EðH‰ÇèOàöÿH‰EèÇEüHƒ}ètH‹UèH‹EØH‰ÖH‰ÇèêØöÿÇEü‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5Ù&H‰ÇèÊÔöÿH‹H‰EøH‹EøH‰ÇèÇ÷ÿ¸ÉÃUH‰åSHƒì8H‰}ȉuÄ‹UÄH‹EȉÖH‰ÇèÕöÿƒøt‹MÄH‹EÈH�ü&‰ÎH‰ÇèbÚöÿ…À�èj÷ÿH‰Eà‹UÄH‹EȉÖH‰ÇèåÔöÿƒø…º‹UÄH‹EȉÖH‰Çè[õöÿ‰EÜÇEì鎋Eì�P‹MÄH‹EȉÎH‰Çè%ÛöÿH‹EȾÿÿÿÿH‰Çè”ÔöÿH‹EȺÿÿÿÿH�5f$H‰ÇèìÓöÿH‹H‰EÐH‹EÐH‰ÇèiñöÿH‹EÐH‰Çè�­ÿÿH‰ÃH‹EàH‰Ç蜭ÿÿH‰ÞH‰ÇècïöÿH‹EȾþÿÿÿH‰ÇèÂ÷ÿƒEì‹Eì;EÜŒfÿÿÿH‹EàHƒÄ8[]ÃUH‰åHƒì H‰}èH‰uàÇEüÇEøH‹E躾H‰Çè3 ÷ÿH‹EàH‰Çè­ÿÿH‰Çèßáöÿ‰EøÇEüé�H‹EàH‰Çèô¬ÿÿH‰Â‹Eü‰ÆH‰×è„÷ÿH‰EðH‹EðH‰Çè”ðöÿHƒ}ðt5H‹Eè¾H‰Çè¼ñöÿH‰ÂH‹EðH‰H‹EèºÿÿÿÿH�5D#H‰Çè:Ïöÿë H‹EèH‰Çè|ìöÿ‹Eü�PH‹Eè¾þÿÿÿH‰Çè¥ñöÿƒEü‹Eü;EøŒeÿÿÿ¸ÉÃUH‰åHƒìH‰}øH‹EøH�çJ#H�5â"H‰ÇèˆèöÿH‹EøH�-L#H�5]$H‰ÇènèöÿH‹Eøº¾H‰Çè÷ÿH‹EøºH�5XJ#H‰Çèæ´ÿÿ¸ÉÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åH‰}øH‹Eø]ÃUH‰åHƒì ‰}üH‰uðH‰UèHƒ}èt3H‹EðÆH‹UèH‹Mð‹EüH‰Î‰Çè ßöÿH‹Eð¶„Àu ‹Eü‰ÇèäØöÿëH‹EðÉÃUH‰åHƒìH‰}ø‰uôƒ}ôy�}ôñØÿÿ|H‹EøH‰ÇèéöÿƒÀEô‹EôÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäD‰EàH‹UðH‹Eø¾ðØÿÿH‰ÇèH‹Eø¾ÿÿÿÿH‰Çè¶ÑöÿƒøtbH‹Eø¾þÿÿÿH‰Çè0÷ÿH‹UèH‹uðH‹EøH� ­#H‰Çè÷ÿ…Àt H‹EøH‰ÇèÅàöÿH‹Eø¾ÿÿÿÿH‰ÇètëöÿH‹UðH‹Eø¾ðØÿÿH‰Çè‹Eä÷ЉÂH‹Eø‰ÖH‰Çèjãöÿ‹Uà‹MäH‹Eø‰ÎH‰Çè¶÷ÿ�ÉÃUH‰åHƒìH‰}ø‰uôƒ}ôxƒ}ô~H‹EøH�5$H‰Ç¸è€ööÿH‹EøH�)$¾H‰Ç蘃}ôuH‹Eø¾ÿÿÿÿH‰ÇèÑêöÿò*EôH‹EøH‰Çè ÒöÿH‹Eø¾ýÿÿÿH‰ÇèÏâöÿH‹EøA¸¹ºÛH�5Ä"H‰Çè…þÿÿ�ÉÃUH‰åHƒì0H‰}è‰uä‰Uà‰MÜÇEüƒ}Üt)ƒ}Üt<ƒ}Ü…á‹Uà‹MäH‹Eè‰ÎH‰Çèó÷ÿéå‹Uà‹MäH‹Eè‰ÎH‰ÇèšØöÿéÌH‹EèH�N#¾H‰Ç轋UäH‹Eè‰ÖH‰ÇèÀýÿÿ‰Eä‹UàH‹Eè‰ÖH‰Çè¬ýÿÿ‰Eà‹UäH‹Eè‰ÖH‰ÇèÔéöÿ‹UàH‹Eè‰ÖH‰ÇèÃéöÿH‹EèA¸¹ºH�5ø"H‰Çè™ýÿÿH‹Eè¾ÿÿÿÿH‰ÇèÙöÿ‰EüH‹Eè¾þÿÿÿH‰Çèû÷ÿ‹EüëH‹EèH�5Û"H‰Ç¸èÞôöÿ¸ÉÃUH‰åHƒì H‰}è‰uä‰Uà‹UàH‹Eè‰ÖH‰Çèøüÿÿ‰EüH‹EèH�Z"¾H‰ÇèÉ‹UäH‹Eè‰ÖH‰Çèéöÿ‹UüH‹Eè‰ÖH‰Çè·÷ÿ�ÉÃUH‰åHƒìH‰}ø‰uô‹UôH‹Eø‰ÖH‰ÇèÄÎöÿƒøtUƒø„¬ƒø…¿‹UôH‹Eø‰ÖH‰Çè,ïöÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰ÇèßÏöÿ龋MôH‹EøH�"‰ÎH‰Çè"×öÿ…À…š‹UôH‹Eø‰ÖH‰ÇèÉîöÿH…ÀxòH*ÀëH‰ÂHÑêƒàH ÂòH*ÂòXÀH‹EøH‰Çè|ÏöÿëZ‹MôH‹EøH�¢!‰ÎH‰ÇèÂÖöÿ…ÀuA‹UôH‹Eø‰ÖH‰ÇèÝÍöÿ‰ÂH‹Eø‰ÖH‰ÇèmêöÿH‰ÂH‹EøH�5o!H‰Ç¸èBóöÿë�ë��ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèYûÿÿ‰EüH‹UØH‹EèH‰ÖH‰Çè÷ÿ‹UüH‹Eè‰ÖH‰Çè>ðöÿH‹Eè¾ÿÿÿÿH‰ÇèMÍöÿH‹Eè¾ÿÿÿÿH‰Çè<ÍöÿÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèêúÿÿ‰EüH‹EèH�L ¾H‰Çè»H‹UØH‹EèH‰ÖH‰Çèˆ÷ÿH‹Eè¾þÿÿÿH‰Çèßöÿ‹UüH‹Eè‰ÖH‰Çè¶èöÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çè/ÍöÿfH~ÀH‰EøHƒ}Øt=fïÀf.Eøz fïÀf.Eøu‹UäH‹Eè‰ÖH‰ÇèØëöÿ…ÀtºëºH‹E؉òEøÉÃUH‰åH‰}ø�]ÃUH‰åHƒì H‰}ø‰uôH‰Uè‹Eô�PH‹Eø‰ÖH‰ÇèYþöÿ…ÀuIHƒ}ètH‹UèH‹EøH�5ÓH‰Ç¸è‚ñöÿë$H‹EøºH�5ÈH‰ÇèEH‹EøH‰ÇèÛöÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰Çèyùÿÿ‰EüH‹EèH�Û¾H‰ÇèJÿÿÿH‹UØH‹EèH‰ÖH‰Çè—ëöÿH‹E躾ÿÿÿÿH‰ÇèQÈöÿ‹UüH‹Eè‰ÖH‰Çè ÷ÿH‹Eè¾ÿÿÿÿH‰Çè?ËöÿH‹Eè¾ÿÿÿÿH‰Çè.Ëöÿƒøu¸ëwH‹Eè¾þÿÿÿH‰Çè¡ ÷ÿH‹E躾H‰ÇèK÷ÿH‹UØH‹EèH‰ÖH‰ÇèëöÿH‹E躾ÿÿÿÿH‰ÇèÂÇöÿH‹Eè¾þÿÿÿH‰ÇèÑäöÿ‹UüH‹Eè‰ÖH‰Çè@÷ÿ¸ÉÃUH‰åHƒì H‰}è‰uäHÇEøÇEôH‹EèH�ľH‰Çè3þÿÿ‹UäH‹Eè‰ÖH‰Çè~ûÿÿH�UôH‹Eè¾ÿÿÿÿH‰ÇèH‰EøH‹Eè¾þÿÿÿH‰ÇèÈ ÷ÿ‹Eô…ÀuH‹EèH�5H‰Ç¸è©ïöÿH‹EøÉÃUH‰åHƒì0H‰}èH‰uà‰UÜ‹EÜ�HH‹EèH�‰ÎH‰Çè¥ýÿÿé�H‹EàH‹H‹EèH‰ÖH‰ÇèêéöÿH‹E躾ÿÿÿÿH‰Çè¤ÆöÿÇEüë‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè¦ãöÿƒEü‹Eü;EÜ|ßH‹EàH‹H‹UÜH‹EèH‰ÎH‰Çè ÷ÿ¸ýÿÿÿ+E܉ÂH‹Eè‰ÖH‰ÇèèÿöÿHƒEàH‹EàH‹H…À…cÿÿÿ‹EÜ÷ЉÂH‹Eè‰ÖH‰Çè¾÷ÿ�ÉÃUH‰åHƒìH‰}øH‰uðH‹EøH�T¾H‰ÇèÃüÿÿH‹UðH‹Eø¾ðØÿÿH‰ÇènÇöÿH‹Eø¾ÿÿÿÿH‰ÇèÝÈöÿH‹Eø¾þÿÿÿH‰Çè ÷ÿ�ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹UäH‹Eè‰ÖH‰ÇèU÷ÿH‰EøH‹EèH�Ú¾H‰ÇèIüÿÿHƒ}øt‹UäH‹Eè‰ÖH‰Çè1ßöÿ…Àu¸ëiÇEôH‹UØH‹Eè¾ðØÿÿH‰ÇèÊÆöÿH‹Eè¾ÿÿÿÿH‰Çè9ÈöÿH‹Eèºþÿÿÿ¾ÿÿÿÿH‰Çè³×öÿ‰EôH‹Eè¾ýÿÿÿH‰ÇèŸ÷ÿƒ}ôuHÇEøH‹EøÉÃUH‰åH�ì H‰½hÿÿÿÇEüÇEøë ‹Eø‰EüÑeøH�•pÿÿÿ‹MøH‹…hÿÿÿ‰ÎH‰ÇèÅÈöÿ…ÀuØëD‹Uü‹EøЉÂÁêÐÑø‰EôH�•pÿÿÿ‹MôH‹…hÿÿÿ‰ÎH‰Çè�Èöÿ…Àt ‹EôƒÀ‰Eüë‹Eô‰Eø‹Eü;Eø|´‹EøƒèÉÃUH‰åHƒìH‰}ø‰uô‰Uðƒ}ðtH‹Eø¾ÿÿÿÿH‰Çè2Çöÿƒøt ¸éüH‹EøH‰ÇèGàöÿéÍH‹Eø¾þÿÿÿH‰ÇèÇöÿƒø…¢‹MôH‹Eøºÿÿÿÿ‰ÎH‰ÇèrÖöÿ…ÀtH‹Eø¾þÿÿÿH‰Çè]÷ÿ¸霋Eð�Pÿ‹MôH‹Eø‰ÎH‰ÇèQÿÿÿ…ÀtRH‹Eø¾þÿÿÿH‰Çèg÷ÿH‹EøºH�5±H‰ÇèìH‹Eø¾þÿÿÿH‰ÇèžØöÿH‹Eø¾H‰Çè]÷ÿ¸ë/H‹Eø¾þÿÿÿH‰ÇèÕ÷ÿH‹Eø¾þÿÿÿH‰Çèä÷ÿ…À…ÿÿÿ¸ÉÃUH‰åHƒì H‰}èH‰uàH‹EèH‰Çè Ýöÿ‰EüH‹UàH‹EèH�5#H‰ÇèõöÿH‹Eè¾îØÿÿH‰Çèîßöÿ‹Eü�HH‹E躉ÎH‰Çèjþÿÿ…Àt/‹Eü�PH‹Eè¾ÿÿÿÿH‰ÇècöÿÿH‹Eè¾ýÿÿÿH‰Çè)÷ÿ¸ë‹UüH‹Eè‰ÖH‰Çè÷ÿ¸ÉÃUH‰åHƒìH‰}øH‰uðH‹EðH‹@¶„Àt%H‹EðH‹PH‹EøH�5vH‰Ç¸èkóöÿéÜH‹EðH‹@¶H‹EèH‹@H‰ÇèÞ¿öÿ‰Eüƒ}üÿtƒ}ü uáH‹EèH‹@H‰Çè¿¿öÿ‰ÂH‹Eà‰¸ë¸ÉÃUH‰åH�ìPH‰½ÈïÿÿH‰µÀïÿÿH‰•¸ïÿÿH‹…ÈïÿÿH‰ÇèÚÓöÿƒÀ‰EüHƒ½Àïÿÿu.H‹…ÈïÿÿºH�5’H‰ÇèH‹Æ"H‹H‰…èïÿÿëiH‹•ÀïÿÿH‹…ÈïÿÿH�5iH‰Ç¸èªêöÿH‹…ÀïÿÿH�5RH‰Çè¤èöÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5(H‰ÇèVýÿÿé¤H�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çè™þÿÿ…Àt‹…àïÿÿ�P‰•àïÿÿH˜Æ„ðïÿÿ ¸¾Ð‹…Üïÿÿ9ÂuqHƒ½ÀïÿÿtgH‹•èïÿÿH‹…ÀïÿÿH�5¹H‰Çè”âöÿH‰…èïÿÿH‹…èïÿÿH…Àu‹UüH‹…ÈïÿÿH�5�H‰Çè¶üÿÿéH�•ÜïÿÿH�…àïÿÿH‰ÖH‰Çèùýÿÿ‹…Üïÿÿƒøÿt ‹�Üïÿÿ‹…àïÿÿ�P‰•àïÿÿ‰ÊH˜ˆ”ðïÿÿH‹…Èïÿÿº¾ÿÿÿÿH‰Çè&¸öÿH‰ÆH‹�¸ïÿÿH�•àïÿÿH‹…ÈïÿÿI‰ÈH‰ñH�5œûÿÿH‰Çè“úÿÿ‰EøH‹…èïÿÿH‰Çè'÷ÿ‰EôHƒ½ÀïÿÿtH‹…èïÿÿH‰Çè ßöÿƒ}ôt/‹UüH‹…Èïÿÿ‰ÖH‰ÇèQúöÿ‹UüH‹…ÈïÿÿH�5§H‰ÇèÆûÿÿë‹UüH‹…Èïÿÿ‰ÖH‰Çèb÷ÿ‹EøÉÃUH‰åHƒì@H‰}èH‰uàH‰UØH‰MÐL‰EÈÇEüHƒ}Øt1H‹Eය8Ðu!H‹uÈH‹Eè¹H�ùH‰Çèñøÿÿ‰EüëH‹uÈH‹Eè¹H�ßH‰ÇèÐøÿÿ‰Eüƒ}üt‹EüëH‹MÐH‹UØH‹uàH‹EèH‰ÇèpûöÿÉÃUH‰åHƒì H‰}è‰uäH�ÔH‰Eøƒ}äÿuH‹E躾H‰Çè[÷ÿÿé«‹Eäƒà…Àu‹EäÁø%ÿ‰Eäë‹EäƒàƒÀÐø„À~ƒeäH�€H‰EøH‹Eø¶äÿÿfH~ÀH‰Eø‹Eô…Àt:òEøòH,ÀòH*Àf.Eøz$f.EøuHƒ}Øt H‹EØÇòEøòH,ÀëHƒ}Øt H‹EØÇ¸ÉÃUH‰åHƒìH‰}ø‰uô‰UðëL‹UôH‹Eø‰ÖH‰ÇèŠÊöÿ‹UðH‹Eø‰ÖH‰ÇèyÊöÿ‹UôH‹Eø‰ÖH‰Çè(óöÿ‹UðH‹Eø‰ÖH‰ÇèóöÿƒEôƒmð‹Eô;Eð|¬�ÉÃUH‰åHƒì H‰}è‰uä‰UàÇEü‹UäH‹Eè‰ÖH‰ÇèÞÝÿÿ‰EäH‹EèH‰ÇèûÆöÿ+EäƒÀ‰Eüƒ}ày‹EüEàƒ}àŽ‚‹Eà;Eü}zH‹EèH� ¾H‰Çè|ãÿÿ‹Eü+Eà‰Eà‹Uä‹EàÐ�Pÿ‹MäH‹Eè‰ÎH‰Çèøþÿÿ‹Uä‹EüÐ�Pÿ‹Mä‹EàÁH‹Eè‰ÎH‰Çè×þÿÿ‹Uä‹EüÐ�Pÿ‹MäH‹Eè‰ÎH‰Çè»þÿÿ�ÉÃUH‰åHƒì H‰}ø‰uôH‰UèH‹EøH�y¾H‰Çèìâÿÿ‹UôH‹Eø‰ÖH‰ÇèïÜÿÿ‰EôH‹UèH‹EøH‰ÖH‰ÇèåÅöÿH‹Eø¾þÿÿÿH‰Çè$Áöÿ‹UôH‹Eø‰ÖH‰Çèsåöÿ�ÉÃUH‰åHƒì H‰}èH‰uàH�UðH‹EàH‰ÖH‰Çè�ÉöÿfH~ÀH‰EøH‹EðH9Eàtjë H‹EðHƒÀH‰EðH‹Eð¶„Àt'è|ÖöÿH‹H‹Eð¶¶ÀHÀHз·À% …ÀuÂH‹Eð¶„ÀuòEøH‹EèH‰Ç辯öÿH‹EðH+EàHƒÀë¸ÉÃUH‰åHƒì0H‰}è‰uäH‰UØ‹MäH‹EèH�˜‰ÎH‰ÇèÞ¶öÿ…À…�‹UäH‹Eè‰ÖH‰Çèõ­öÿ‰EüÇEøHÇEðƒ}ütUƒ}ü ƒ}üté“‹Eüƒèƒø‡„ëH‹EèºH�56H‰ÇèøÿÿéI‹UäH‹Eè‰ÖH‰Çè�Çöÿé3‹UäH‹Eè‰ÖH‰Çè·öÿ…ÀtH‹EèºH�5òH‰ÇèÈ÷ÿÿéH‹EèºH�5ÚH‰Çè«÷ÿÿéä‹MäH‹EèH�ʼnÎH‰Çè±Óöÿ…ÀtH‹Eè¾ÿÿÿÿH‰Çè ­öÿ븉Eøƒ}øuH‹E躾ÿÿÿÿH‰ÇèÖ©öÿë‹UüH‹Eè‰ÖH‰ÇèsÉöÿH‰Eð‹UäH‹Eè‰ÖH‰ÇèÝöÿH‰ÁH‹UðH‹EèH�5MH‰Ç¸èÏÚöÿƒ}øtCH‹Eè¾þÿÿÿH‰ÇèXïöÿ�ë/H‹Eè¾ÿÿÿÿH‰Çè´íöÿ…ÀuH‹EèH�5 H‰Ç¸èèÑöÿë�H‹UØH‹Eè¾ÿÿÿÿH‰Çè0©öÿÉÃUH‰åHƒì H‰}øH‰uðH‰Uè‰MäH‹EøH�\¾H‰ÇèÏßÿÿH‹EøH�ξðØÿÿH‰Çè.àÿÿH‹UðH‹Eø¾ÿÿÿÿH‰ÇèbªöÿH‹Eø¾ÿÿÿÿH‰ÇèÑ«öÿ…À…ŽH‹Eø¾þÿÿÿH‰ÇèHëöÿH‹MèH‹EøºH‰ÎH‰ÇèPøöÿH‹UðH‹EøH‰ÖH‰Çè­ËöÿH‹Eøº¾ÿÿÿÿH‰Çèg¨öÿH‹Eøº¾H‰ÇèñÝöÿH‹Eø¾ÿÿÿÿH‰Çè`ÅöÿH‹UðH‹Eø¾ýÿÿÿH‰Çè»´öÿƒ}ät&H‹Eø¾ÿÿÿÿH‰Çè4ÅöÿH‹UðH‹Eø¾îØÿÿH‰Çè�´öÿH‹Eø¾þÿÿÿH‰ÇèÎíöÿ�ÉÃUH‰åHƒì0H‰}ØH‹EؾH‰ÇèíöÿH‰EèH‹EØH‹W´"H‰ÑH�—¾H‰Çè¸Êöÿ‰EüHÇEðƒ}üuH‹EèH‰Çèëáöÿ…Àt¸ë¸‰Eüƒ}üu¨öÿH‹H‰EØH‹UØH‹EøH‰ÖH‰Çèdßöÿ‰Eð‹UôH‹EÈH�5�þH‰ÇèòöÿH…À„Ç‹Eô;Eät%‹Eäƒè9Eôt‹MôH‹EÈH�šþ‰ÎH‰ÇèÇ­öÿ…À�‹UôH‹EÈH�5PþH‰Çè¾§öÿH‹H‰EЋEäƒè9Eôu‹MäH‹EȺ‰ÎH‰ÇèÖáöÿH‰EèëH�=Zþèt¦öÿH‰EèH‹UÐH‹EøH‰ÖH‰Çèíäöÿ‰Eðƒ}ðuAH‹UèH‹MÐH‹EøH‰ÎH‰Çè½Ööÿ‰Eðƒ}ð~!ÇEðëƒEôƒ}ðu‹Eô;EäŽeþÿÿë�ƒ}ðuJHƒ}øt5H‹EȾH‰ÇèÔÅöÿH‰ÂH‹EøH‰H‹EȺÿÿÿÿH�5QýH‰ÇèR£öÿë"H‹EÈH‰Çè”ÀöÿëH‹EøH‰ÇèöØöÿHÇEøHƒ}øu‹UðH‹EȉÖH‰ÇèÕöÿë¸ÉÃUH‰åSHƒìXH‰}¸H‰u°‰U¬HÇEØÇEäHƒ}¸tHƒ}°u ¸é<H‹E°H‰Çè†óöÿH‰EØÇEìéÍH‹EØH‰Çè!ÔÿÿH‰Â‹Eì‰ÆH‰×èš×öÿH‰EÐH‹EÐH‰Çè*²öÿH‰EÈH‹MÈH‹E¸ºÿÿÿÿH‰ÎH‰Ç莰öÿ‰Eèƒ}èÿtYƒ}¬tq‹UèH‹E¸‰ÖH‰Çè.âöÿH‰EÀ‹UèH‹E¸‰ÖH‰Çèy¬öÿH‹EÀH‰Çèý¥öÿH‹MÈH‹E¸ºÿÿÿÿH‰ÎH‰Çè5°öÿ‰Eèƒ}èÿu­H‹MÐH‹E¸ºÿÿÿÿH‰ÎH‰Çèä­öÿ…Àt-ë�ƒEìH‹EØH‰ÇèTÓÿÿH‰Çè´öÿ9EìŒÿÿÿÇEäë�H‹ ¯"H‰ÇèFÓÿÿH‰ÃH‹EØH‰Çè)ÓÿÿH‰ÞH‰Çèiêöÿ‹EäHƒÄX[]ÃUH‰åHƒìpH‰}¸‰u´H‰U¨H‰M L‰E˜HÇEðHÇEèHÇEàHÇEØHÇEÐHÇEÈ诠öÿH‰EðHƒ}ðu ¸ éZH‹Eð¾H‰Ç虯öÿè”óöÿH‰EÈHƒ}Èu ¸ é/H‹EȾÊH‰Çè>ºöÿ‰Eüƒ}ü…ìH‹UÈH‹EðH‰ÖH‰Çè¾Þöÿ‰Eüƒ}ü…ÌH‹EÈH‰Çè5¹öÿHÇEÈH‹E¸H‰ÇèqËöÿH‰EèH‹UèH‹EðH‰ÖH‰ÇèÜöÿ‰Eüƒ}ü…‹H‹UèH‹EðH‰ÖH‰Çè ²öÿ‰Eüƒ}ü…n¿èÆöÿH‰EÀH‹EÀ¹ºH‰Æ¿è4°öÿH‰EØHƒ}Øu ÇEü é>H‹UØH‹EðH‰ÖH‰ÇèjÍöÿ‰Eüƒ}ü…H‹EØH‰Çè‘áöÿHÇEØ‹U´H‹EÀ¹H‰Æ¿èЯöÿH‰EÐHƒ}Ðu ÇEü éÚH‹UÐH‹EðH‰ÖH‰ÇèöÍöÿ‰Eüƒ}ü…°H‹EÐH‰Çè-áöÿHÇEÐH‹M¸H‹EðºH‰ÎH‰Çè`üÿÿ‰Eüƒ}üu~H‹E¸H‰Ç訯öÿH‰EàH‹UàH‹EðH‰ÖH‰Çèñ¶öÿ‰EüH‹EàH‰Çè’·öÿƒ}üuIH‹U H‹M¨H‹EðH‰ÎH‰Çè³öÿ‰Eüƒ}üt,ÇEüH‹E˜H‹UðH‰‹Eüë%�ë�ë�ë �ë �ë�ë�ë�H‹EðH‰Çèã²öÿ‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5©øH‰Çè:¢öÿH‹H‰EðH‹EȺH�5­øH‰Çè¢öÿH‹H‰EèH‹EȺm¾H‰Çè^¨öÿ‰EäH‹EÈH�Áø¾H‰Çè#ÜöÿH‰EØHÇEÐH�}ÐH‹MØH‹Uè‹uäH‹EðI‰øH‰Çèšüÿÿ‰Eüƒ}üuUH‹EÐH…ÀtLH‹EÐH…Àt5H‹EȾH‰Çè]ÀöÿH‰ÂH‹EÐH‰H‹EȺÿÿÿÿH�5OøH‰ÇèÛ�öÿë"H‹EÈH‰Çè»öÿë‹UüH‹EȉÖH‰ÇèºÏöÿ‰Eü‹EüÉÃUH‰åHƒì@H‰}ÈH‹EȺH�5�÷H‰Çè¡öÿH‹H‰EøH‹EÈH‹$«"H‰ÑH�ë÷¾H‰Çè…Áöÿ‰EôHÇEèƒ}ôt ƒ}ôtH‹EÈH�À÷¾H‰Ç趦öÿ…À�è~ÀöÿH‰Çè¦âöÿH‰Eèƒ}ôuH‹UøH‹EèH‰ÖH‰Çèi¥öÿëH‹UøH‹EèH‰ÖH‰Ç蔨öÿ‰Eäƒ}äu;H�UØH‹EèH‰Ñº¾sH‰Çè^£öÿH‹EØH‹H‹EØH‹HH‹EÈH‰ÎH‰Çè=ëÿÿH‹EèH‰Çè$Çöÿƒ}ät‹UäH‹EȉÖH‰Çè�Îöÿë¸ÉÃUH‰åHƒÄ€H‰}ˆH‹EˆºH�5_öH‰ÇèðŸöÿH‹H‰EøÇEœ@H‹EˆH�¨ö¾H‰Çè ÚöÿH‰EðH�MœH�U H‹uðH‹EøH‰Çèn©öÿ‰Eìƒ}ìu‹Eœ‰ÂH�M H‹EˆH‰ÎH‰ÇèŠêÿÿƒ}ìt‹UìH‹Eˆ‰ÖH‰ÇèæÍöÿë¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5¸õH‰ÇèIŸöÿH‹H‰EøH‹EغH�5¼õH‰Çè*ŸöÿH‹H‰EðH‹UðH‹EøH‰ÖH‰Çè°½öÿ‰Eì‹UìH‹E؉ÖH‰ÇèlÍöÿÉÃUH‰åHƒì H‰}èH‹EèºH�5EõH‰ÇèÖžöÿH‹H‰EøH‹EøH‰ÇèsÞöÿH‰EøHƒ}øt5H‹Eè¾H‰Çèw½öÿH‰ÂH‹EøH‰H‹EèºÿÿÿÿH�5ôôH‰Çèõšöÿë H‹EèH‰Çè7¸öÿ¸ÉÃUH‰åHƒì H‰}èH‹EèºH�5»ôH‰ÇèLžöÿH‹H‰EøH‹EøH‰ÇèùªöÿH‰EðHƒ}ðt8H‹UðH‹EøH‰ÖH‰Çè;Ûöÿƒø”À¶ÐH‹Eè‰ÖH‰ÇèTãöÿH‹EðH‰ÇèȲöÿëH‹Eè¾H‰Çè5ãöÿ¸ÉÃUH‰åHƒÄ€H‰}ˆH‹EˆºH�5)ôH‰Çèº�öÿH‹H‰EðH‹EðH‰ÇègªöÿH‰EèH‹EˆºH�5ôH‰Çè›çöÿH…À„H‹EˆºH�5üóH‰Çèj�öÿH‹H‰EàH‹EˆH�)ô¾H‰Çè‹×öÿH‰EØÇEüHƒ}è…€èð¼öÿH‰ÇèßöÿH‰EÐH‹UàH‹EÐH‰ÖH‰ÇèÁØöÿ‰Eüƒ}üuEÇEüH‹EоH‰Çè0ÕöÿH‰EèHƒ}èt"H‹UèH‹EðH‰ÖH‰ÇèRÚöÿ‰EüH‹EèH‰Ç蓱öÿH‹EÐH‰Çè§Ãöÿë H‹EèH‰Çèy±öÿƒ}üuH‹UØH‹MàH‹EðH‰ÎH‰ÇèüËöÿ‰Eü‹UüH‹Eˆ‰ÖH‰ÇèèÊöÿé·H‹Eˆ¾H‰Çè2Þöÿ…À„H�U°H‹Eˆ¾H‰Ç赪öÿH‰EÈH‹EˆH�ó¾H‰ÇèiÖöÿH‰EÀHÇE¨HÇE Hƒ}èuH‹EˆH�ó¾H‰Çèæ¡öÿ…À�H�U H�M¨H‹EðH‰ÎH‰Çè|µöÿH‹EÀH‰Çè°Ïöÿ‰ÇèyÈöÿH‰ÆH‹E ¹ºH‰Çè0ÃöÿH‹E°‰ÂH‹E¨H‹MÈH‰ÎH‰Çè—ÑöÿH‹E¨H‹PH‹E¨HƒâðH‰PH‹E¨H‹PH‹E¨HƒÊH‰PH‹Eˆ¾H‰Çè®àöÿ¸é˜HÇE˜Hƒ}èuH‹EˆH�>ò¾H‰Çè¡öÿ…À�H�U˜H‹EðH‰ÖH‰ÇèÇÏöÿ‰E¼ƒ}¼~AH‹E˜H…Àt8‹E¼HcÐH‹M˜H‹EˆH‰ÎH‰ÇèéåÿÿH‹E˜ºËH�5úñH‰ÇèD±öÿ¸ëH‹Eˆ¾H‰Çè,ÉöÿÉÃUH‰åSH�ìˆH‰½xÿÿÿH‹…xÿÿÿºH�5ûðH‰Ç茚öÿH‹H‰EàH‹EàH‰Çè¹ÁöÿH‰EØH‹EàH‰Çè™çöÿH‰EÐH‹…xÿÿÿº¾H‰Çè,ÐöÿHÇE˜HÇE�H�U�H�M˜H‹EàH‰ÎH‰ÇèųöÿH‹E�H‹H‰Çè6Ïöÿ…Àt~H‹E�H‰Çè&¨öÿH‰E�H‹E�H…Àt;H‹…xÿÿÿ¾H‰Ç赸öÿH‰ÂH‹E�H‰H‹…xÿÿÿºÿÿÿÿH�5ððH‰Çè0–öÿëH‹…xÿÿÿH‰Çèo³öÿH‹…xÿÿÿH�Üð¾þÿÿÿH‰Ç褣öÿH‹E˜‹…Àt6H‹M˜H‹…xÿÿÿºH‰ÎH‰Çè¿âöÿH‹…xÿÿÿH�¤ð¾þÿÿÿH‰Çèd£öÿH‹…xÿÿÿº¾H‰ÇèÏöÿÇEÌþÿÿÿH‹EàH‰Çè8­öÿH‰ÂH‹…xÿÿÿH‰ÖH‰Ç胰öÿ‹MÌH‹…xÿÿÿH�Oð‰ÎH‰Çè£öÿH‹UØH‹…xÿÿÿH‰ÖH‰Çè¼öÿH‹…xÿÿÿH�)ð¾þÿÿÿH‰Çè×¢öÿHƒ}Є‚H‹…xÿÿÿH�5 ðH‰ÇèV¹öÿH‹…xÿÿÿº¾ÿÿÿÿH‰Çè –öÿH‹UÐH‹…xÿÿÿH‰ÖH‰ÇègœöÿH‹…xÿÿÿ¾ýÿÿÿH‰Çèã´öÿH‹¢"H‰ÇèWÆÿÿH‰ÃH‹EÐH‰Çè:ÆÿÿH‰ÞH‰ÇèzÝöÿH‹EàH‰Çè>©öÿH‰EÀH‹EÀH‰ÇèÞ®öÿH‰E¸HÇEˆH‹…xÿÿÿº¾H‰ÇèÙÍöÿH‹EàH‰ÇèÝ£öÿ‰E´ƒ}´ŽàH‹…xÿÿÿº¾H‰Çè§ÍöÿÇEì锋UìH‹Eà‰ÖH‰Çè*¥öÿH‰E¨H‹E¨H‰ÇèJ¶öÿH‰E¨Hƒ}¨t;H‹…xÿÿÿ¾H‰ÇèK¶öÿH‰ÂH‹E¨H‰H‹…xÿÿÿºÿÿÿÿH�5ÆîH‰ÇèÆ“öÿëH‹…xÿÿÿH‰Çè±öÿ‹Eì�PH‹…xÿÿÿ¾þÿÿÿH‰Çè+¶öÿƒEì‹Eì;E´Œ`ÿÿÿH‹…xÿÿÿH�Œî¾þÿÿÿH‰Çè¡öÿHƒ}¸„þH‹…xÿÿÿº¾H‰Çè¼ÌöÿH‹UÀH�EˆI‰Ð¹º¾H‰Çè Ùöÿ…Àt1H‹UˆH‹…xÿÿÿH‰ÖH‰Çè0ÐöÿH‹…xÿÿÿH�î¾þÿÿÿH‰Çè• öÿÇE¤þÿÿÿHƒ}¸t;H‹…xÿÿÿ¾H‰Çè3µöÿH‰ÂH‹E¸H‰H‹…xÿÿÿºÿÿÿÿH�5ÐìH‰Çè®’öÿëH‹…xÿÿÿH‰Çèí¯öÿ‹M¤H‹…xÿÿÿH�°í‰ÎH‰Çè" öÿH‹…xÿÿÿH�˜í¾þÿÿÿH‰Çè öÿH‹…xÿÿÿH�„í¾þÿÿÿH‰ÇèìŸöÿ¸H�Ĉ[]ÃUH‰åHƒì H‰}èH‹EèºH�5ìH‰Çè©•öÿH‹H‰EøH‹EøH‰ÇèÆÇöÿ¸ÉÃUH‰åHƒì0H‰}ØH‹EغH�5ÚëH‰Çèk•öÿH‹H‰EøH‹EؾH‰Çèã•öÿƒøÿu_H‹EøH‰Çè¢öÿH‰EðHƒ}ðt5H‹EؾH‰Çèö³öÿH‰ÂH‹EðH‰H‹EغÿÿÿÿH�5–ëH‰Çèt‘öÿë H‹EØH‰Çè¶®öÿ¸ëFH‹EغH�5iëH‰Çè×”öÿH‹H‰EèH‹UèH‹EøH‰ÖH‰Çè=Òöÿ‰Eä‹UäH‹E؉ÖH‰ÇèÃöÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5òêH‰Ç胔öÿH‹H‰EøH‹EؾH‰Çèû”öÿƒøÿu%H‹EøH‰Çèj¨öÿH‰ÂH‹EØH‰ÖH‰Ç踫öÿ¸ë>H‹EؾH‰ÇèÀâöÿH˜H‰EðH‹UðH‹EøH‰ÖH‰Çè'—öÿ‰Eì‹UìH‹E؉ÖH‰ÇèsÂöÿÉÃUH‰åHƒì0H‰}ØH‹EغH�5LêH‰ÇèÝ“öÿH‹H‰EðÇEüH‹EؾH‰ÇèN”öÿƒøÿu3H‹EðH‰ÇèíºöÿH‰EèHƒ}èteH‹UèH‹EØH‰ÖH‰Çèo·öÿÇEüëIH‹EغH�5îéH‰Çèn“öÿH‹H‰EàH‹UàH‹EðH‰ÖH‰Çè”Êöÿ‰Eü‹UüH‹E؉ÖH‰Çè°Áöÿ‰Eü‹EüÉÃUH‰åSHƒì8H‰}ÈH‹EȺH�5‚éH‰Çè“öÿH‹H‰EàÇEìH‹EȾH‰Çè„“öÿƒøÿu`H‹EàH‰ÇèàöÿH‰EØHƒ}Ø„­H‹UØH‹EÈH‰ÖH‰Çè±–öÿH‹zœ"H‰ÇèµÀÿÿH‰ÃH‹EØH‰Çè˜ÀÿÿH‰ÞH‰ÇèØ×öÿÇEìëhH‹EȾH‰Çè^ÝöÿH‰EÐH‹UÐH‹EàH‰ÖH‰Çè'¹öÿ‰EìH‹œ"H‰ÇèXÀÿÿH‰ÃH‹EÐH‰Çè;ÀÿÿH‰ÞH‰Çè{×öÿ‹UìH‹EȉÖH‰ÇèšÀöÿ‰Eì‹EìHƒÄ8[]ÃUH‰åHƒìPH‰}¸H‹E¸ºH�5hèH‰Çèù‘öÿH‹H‰EàÇEüH‹E¸ºH�5CéH‰ÇèãÛöÿH…ÀtNH‹E¸ºH�5&éH‰Çè¶‘öÿH‹H‰EØH‹UØH‹EàH‰ÖH‰Çèl“öÿ‰Eü‹UüH‹E¸‰ÖH‰Çèø¿öÿ‰Eüé/H‹E¸¾H‰Çèo±öÿ…À„âH‹E¸¾H‰Çèæßöÿ‰EÔHÇEðH‹E¸¾H‰ÇèÊ‘öÿƒøÿu'‹UÔH‹Eà‰ÖH‰Ç褞öÿH‰EðH‹EðH‰ÇèįöÿH‰Eðë*H‹E¸¾H‰Çè�‘öÿ…Àu‹UÔH‹Eà‰ÖH‰Çè8œöÿH‰EðHƒ}ð„ˆHƒ}ðt5H‹E¸¾H‰Ç葯öÿH‰ÂH‹EðH‰H‹E¸ºÿÿÿÿH�5èH‰Çè�öÿë H‹E¸H‰ÇèQªöÿÇEüé4H‹E¸¾H‰Çè‘öÿƒø…ÇEìÇEüH‹E¸¾H‰Çèl±öÿ‰EÐéÍ‹UìH‹E¸¾H‰Çè@—öÿH‹E¸¾ÿÿÿÿH‰Çè¯�öÿHÇEÈH‹E¸¾ÿÿÿÿH‰Çè–�öÿƒøu@H�MÈH‹E¸ºÿÿÿÿH‰ÎH‰ÇèÉØöÿH‰EÈH‹UÈH‹EàH‰ÖH‰Ç袑öÿ‰EüH‹EÈH‰Çè#Žöÿë5H‹E¸ºÿÿÿÿH�5çH‰Çè©�öÿH‹H‰EÈH‹UÈH‹EàH‰ÖH‰Çè_‘öÿ‰EüH‹E¸¾þÿÿÿH‰Çè›ÏöÿƒEìƒ}üu ‹Eì;EÐŽ!ÿÿÿ‹UüH‹E¸‰ÖH‰ÇèĽöÿ‰Eü‹EüÉÃUH‰åHƒì H‰}èH‹EèºH�5—åH‰Çè(�öÿH‹H‰EøH‹EøH‰Çè›öÿHcÐH‹EèH‰ÖH‰Çès¦öÿ¸ÉÃUH‰åHƒìH‰}øH‹EøH�u #H�5EåH‰Çèö¤öÿH‹Eøº¾H‰Çè ÄöÿH‹EøºH�5 #H‰Çè%Åÿÿ¸ÉÃóúHƒìHƒÄÃ=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADED0.9.1Lua 5.1OpenSSL 3.5.6 7 Apr 2026src/openssl.cmust greater than 0versionlisthexbase64rand_statusrand_addrand_loadrand_writerandomclear_errorerrorerrorsengineFIPS_modelegacydefaultbioasn1digestcipherhmacmacparamkdfpkeyecx509pkcs7pkcs12ocsptscmssslbnrsadsadhsrpdigestscipherspkeyscomps=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDUNIVERSALAPPLICATIONCONTEXT_SPECIFICPRIVATECONSTRUCTEDPRIMITIVE_TAGPRIMATIVE_TAGAPP_CHOOSEOTHERANYNEGUNDEFEOCBOOLEANINTEGERNEG_INTEGERBIT_STRINGOCTET_STRINGNULLOBJECTOBJECT_DESCRIPTOREXTERNALREALENUMERATEDNEG_ENUMERATEDUTF8STRINGSEQUENCESETNUMERICSTRINGPRINTABLESTRINGT61STRINGTELETEXSTRINGVIDEOTEXSTRINGIA5STRINGUTCTIMEGENERALIZEDTIMEGRAPHICSTRINGISO64STRINGVISIBLESTRINGGENERALSTRINGUNIVERSALSTRINGBMPSTRINGopenssl.asn1grouponly accept boolean, number, string or asn1_stringopenssl.asn1_typestart out of length of asn1 stringstop must be greater than startstop out of length of asn1 stringarg #1 with error encodingif exist only accept string or numberif exist must be boolean typetagclassopenssl.asn1_stringopenssl.asn1_integeropenssl.asn1_timeopenssl.asn1_objectoidnot have oid field or is not stringsnnot have sn field or is not stringlnnot have ln field or is not stringoid already existsn already existln already existnew_objectnew_integernew_stringnew_utctimenew_generalizedtimenew_typed2i_asn1typeget_objectput_objecttostringtxt2nidsrc/asn1.cvaluedertypeÏJ÷ÿ­D÷ÿ‹E÷ÿ=F÷ÿ–F÷ÿÏJ÷ÿïD÷ÿÏJ÷ÿÏJ÷ÿÏJ÷ÿäE÷ÿÏJ÷ÿjJ÷ÿÏJ÷ÿÏJ÷ÿÏJ÷ÿÏJ÷ÿÏJ÷ÿÏJ÷ÿïF÷ÿHG÷ÿÏJ÷ÿ¡G÷ÿ2I÷ÿšI÷ÿÏJ÷ÿJ÷ÿúG÷ÿÊH÷ÿÏJ÷ÿbH÷ÿoctetcmpinfoi2dasn1string__eq__gcnidnametxtdupdataequalsd2iopenssl.bnonly accpet number or string–[÷ÿ–[÷ÿ6Y÷ÿ\Y÷ÿ‚Y÷ÿ¨Y÷ÿÎY÷ÿ–[÷ÿ–[÷ÿ–[÷ÿôY÷ÿ–[÷ÿZ÷ÿ–[÷ÿ–[÷ÿ–[÷ÿ–[÷ÿ–[÷ÿ–[÷ÿ@Z÷ÿfZ÷ÿ–[÷ÿŒZ÷ÿ²Z÷ÿØZ÷ÿ–[÷ÿþZ÷ÿ![÷ÿD[÷ÿ–[÷ÿm[÷ÿ%b÷ÿ%b÷ÿú[÷ÿ[\÷ÿ¼\÷ÿ]÷ÿ~]÷ÿ%b÷ÿ%b÷ÿ%b÷ÿß]÷ÿ%b÷ÿ@^÷ÿ%b÷ÿ%b÷ÿ%b÷ÿ%b÷ÿ%b÷ÿ%b÷ÿ¡^÷ÿ_÷ÿ%b÷ÿc_÷ÿÄ_÷ÿ%`÷ÿ%b÷ÿ†`÷ÿç`÷ÿTa÷ÿ%b÷ÿ¾a÷ÿasn1_time with mismatched typelengthtoutf8toprintsetgetbnadjdiffcheck=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADED__indexclass%pinvalid object passed to 'auxiliar.c:__tostring'%.35s expected%s expected, got %s=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.biohostnameportopenssl.sslÐÄ÷ÿæÄ÷ÿüÄ÷ÿ�Å÷ÿÝÅ÷ÿopenssl.evp_digestdon't know howto shutdownnot a supported BIO typenot a fd or file BIO typegetswriteputsflushclosetypenbioresetretrypendingpushpopnextget_mdcipher_statusfreeget_memacceptconnecthandshakeshutdownfdsslseektelldestroy_pair__gcnullmempairsocketdgramfilefilterNCLOSECLOSEbase64bufferciphermd=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.evp_cipheropenssl.enginesrc/cipher.cEVP_CipherInit_ex failed, please check openssl erroropenssl.evp_cipher_ctxnameblock_sizekey_lengthiv_lengthflagsmodesha256salt must not shorter than %dnever go hereexpect integer or stringnidtypecipherneed integer or stringinvalid integer, must be 4, 6, 10, 12, 14 or 16not support2øÿgøÿOøÿgøÿOøÿgøÿ[øÿ[øÿ[øÿgøÿ[øÿ[øÿ[øÿ[øÿ[øÿ[øÿ¥øÿ®øÿinfonewencrypt_newdecrypt_newBytesToKeyencryptdecryptinitupdatefinalclosectrlpadding__gclistgetEVP_CTRL_INITEVP_CTRL_SET_KEY_LENGTHEVP_CTRL_GET_RC2_KEY_BITSEVP_CTRL_SET_RC2_KEY_BITSEVP_CTRL_GET_RC5_ROUNDSEVP_CTRL_SET_RC5_ROUNDSEVP_CTRL_RAND_KEYEVP_CTRL_PBE_PRF_NIDEVP_CTRL_COPYEVP_CTRL_GCM_SET_IVLENEVP_CTRL_GCM_GET_TAGEVP_CTRL_GCM_SET_TAGEVP_CTRL_GCM_SET_IV_FIXEDEVP_CTRL_GCM_IV_GENEVP_CTRL_CCM_SET_IVLENEVP_CTRL_CCM_GET_TAGEVP_CTRL_CCM_SET_TAGEVP_CTRL_CCM_SET_LEVP_CTRL_CCM_SET_MSGLENEVP_CTRL_AEAD_TLS1_AADEVP_CTRL_AEAD_SET_MAC_KEYEVP_CTRL_GCM_SET_IV_INVEVP_CTRL_TLS1_1_MULTIBLOCK_AADEVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPTEVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPTEVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDnocertsno_content_verifyno_attr_verifynosigsnointernno_signer_cert_verifynoverifydetachednoattrnosmimecapnooldmimetypecrlfeolstreamnocrlpartialreuse_digestuse_keyiddebug_decryptkey_paramautoopenssl.cmsopenssl.biosmimezlibopenssl.x509openssl.evp_pkeyopenssl.x509_storeaes-128-cbcsha256keykeyidkey and keyid field must be stringpasswordpassword field must be stringsrc/cms.cexportnewdatacompressuncompresssignverifyencryptdecryptdigest_createdigest_verifyEncryptedData_encryptEncryptedData_decryptopenssl.asn1_objectmust have at least one signer infomust have at least one recipientmust have at least one signererror in make_receipt_requesttypecontentadd_signersget_signersadd_receiptsign_receiptverify_receiptfinal__gccompressionflags=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.dhsizebitsopenssl.bnpqgpub_keypriv_keyopenssl.enginegenerate_keyparsecheck__gcDH_CHECK_P_NOT_PRIMEDH_CHECK_P_NOT_SAFE_PRIMEDH_UNABLE_TO_CHECK_GENERATORDH_NOT_SUITABLE_GENERATORDH_CHECK_Q_NOT_PRIMEDH_CHECK_INVALID_Q_VALUEDH_CHECK_INVALID_J_VALUEDH_CHECK_PUBKEY_TOO_SMALLDH_CHECK_PUBKEY_TOO_LARGEDH_CHECK_PUBKEY_INVALIDCHECK_PUBKEY_TOO_SMALLCHECK_PUBKEY_TOO_LARGECHECK_PUBKEY_INVALIDCHECK_P_NOT_PRIMEUNABLE_TO_CHECK_GENERATORNOT_SUITABLE_GENERATORCHECK_Q_NOT_PRIMECHECK_INVALID_Q_VALUECHECK_INVALID_J_VALUEgenerate_parametersproblems=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.evp_digestopenssl.engineopenssl.evp_digest_ctxopenssl.evp_pkeynidnamesizeblock_sizepkey_typeflagstypedigestwrong datasrc/digest.cnewinfosignInitverifyInitupdatefinalresetclosedatasignUpdatesignFinalverifyUpdateverifyFinalsignverify__gclistget=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.dsabitsopenssl.bnpqgpriv_keypub_keyopenssl.engineparseset_engine__gcgenerate_key=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.ec_groupopenssl.ec_pointopenssl.bnEC_POINT_set_affine_coordinates failgeneratorordercofactorasn1_flagdegreecurve_nameconversion_formseedpabcurveexplicitnamed_curveinvalid paramater, only accept 'explicit' or 'named_curve'compresseduncompressedhybridinvalid paramater, only support 'compressed', 'uncompressed' or 'hybrid'openssl.evp_pkeyopenssl.ec_keynot accept type of point_conversion_formnot accept type of asn1 flagsrc/ec.c__gc__eqequalaffine_coordinatesparsepoint_conversion_formpoint_newpoint_duppoint_equalpoint2octoct2pointpoint2bnbn2pointpoint2hexhex2pointgenerate_keyinvalid digestenc_flagconv_formdxypub_keygrouppriv_keyopenssl.enginecheckexportdo_signdo_verifysignverifycompute_keyset_methodenc_flagscopyCURVE DESCRIPTION NOT AVAILABLElist=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDRSADSAECDHRANDciphersdigestsPKEYASN1complete#1 may be string or boolean string for an engine id to load true for first engine, false or last engine but we get %s:%sopenssl.enginenot support %d for %s³_ùÿÛ_ùÿ`ùÿ+`ùÿS`ùÿË`ùÿð`ùÿ{`ùÿ£`ùÿaùÿnot support '%s' to set defaultAhùÿUhùÿihùÿzhùÿ‹hùÿœhùÿ­hùÿopenssl.evp_pkeyopenssl.sslopenssl.x509openssl.pkeynextprevaddremoveregisterctrlidnameflagsset_rand_engineload_private_keyload_public_keyload_ssl_client_certinitfinishset_default__gc=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.engineopenssl.hmac_ctxupdatefinalclosesize__gcnewhmac=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADED(bn) %s %sBN_new failedopenssl.bnsrc/lbn.c__add__div__eq__gc__lt__mod__mul__pow__sub__unmabsaddaddmodaprimebitscomparedivdivmodgcdinvmodisnegisoddisoneisprimeiszeromodmulmulmodnegnumberpowpowmodrandomrmodsqrsqrmodsqrtmodsubsubmodtohextotexttonumbertostringversionbn library for Lua 5.1 / Nov 2010 / based on OpenSSL 3.5.6__index=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.lhashERROR at LINE %d__gcparseexportget_stringget_numberlhash_readlhash_load=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDautoderpemsmimeopenssl.bioonly support string or openssl.bioopenssl.asn1_objectopenssl.evp_digestmust be a string, NID number or asn1_object identity digest methodÀúÿÀúÿÝúÿÝúÿúÿàúÿÝúÿÝúÿ5úÿopenssl.evp_ciphermust be a string, NID number or asn1_object identity cipher methodúÿúÿ1úÿ1úÿ[úÿ4úÿ1úÿ1úÿ‰úÿopenssl.bnUNKNOWN ERROR0123456789abcdefbitnumlnamesnamepkcs1nooaepx931pss0123456789abcdef  =nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.x509sha256need openssl.x509 or openssl.bn objectopenssl.ocsp_certidopenssl.ocsp_requestOCSP REQUESTOCSP RESPONSEopenssl.ocsp_responseopenssl.ocsp_basicresphashAlgorithmissuerNameHashissuerKeyHashserialNumberopenssl.ocsp_onereqopenssl.x509_extensionopenssl.evp_pkeyrequestListextensionsopenssl.ocsp_singlerespidstatusstatus_strreasonreason_strrevokeTimethisUpdateproducedAtcertsnamesignerbasicinfo__gcexportparsesignadd_extis_signedaddresponsecopy_noncecertid_newrequest_readrequest_newresponse_readbasicresp_newNOSTATUSUNSPECIFIEDKEYCOMPROMISECACOMPROMISEAFFILIATIONCHANGEDSUPERSEDEDCESSATIONOFOPERATIONCERTIFICATEHOLDREMOVEFROMCRLGOODREVOKEDUNKNOWNRESPONSE_STATUS_SUCCESSFULRESPONSE_STATUS_MALFORMEDREQUESTRESPONSE_STATUS_INTERNALERRORRESPONSE_STATUS_TRYLATERRESPONSE_STATUS_SIGREQUIREDRESPONSE_STATUS_UNAUTHORIZEDinvalidity_datehold_instruction_code=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDdata size not match with digest sizeopenssl.ts_msg_imprintsrc/ots.copenssl.x509_algormsgalgodupexporttotable__gcopenssl.ts_accuracymicrosmillissecondsopenssl.ts_tst_infoversionpolicy_idmsg_imprintserialtimeaccuracyorderingnoncetsaextensionsopenssl.ts_reqopenssl.ts_respopenssl.x509need openssl.x509 objectopenssl.evp_pkeyneed openssl.pkey objectopenssl.asn1_objectneed openssl.asn1_object, nid string or numbersigner cert and private key not matchopenssl.ts_resp_ctxmust be ts_req data or object or nilopenssl.ts_verify_ctxreq_newreq_readresp_readts_accuracy_readts_msg_imprint_readresp_ctx_newverify_ctx_newts_accuracy_newts_msg_imprint_newinvalid openssl.bn or can't convert to openssl.bnopenssl.x509_extensioncert_reqhashed_msghash_algoinfoadd_extto_verify_ctxstatusfailure_infoopenssl.pkcs7status_infotokentst_infoneed one or more asn1_object#%d not valid evp_digest object or idtime_cb_keyserial_cb_keyError during serial number generation.could not get current timesignercertsdefault_policypoliciesclock_precision_digitsmdadd_flagsset_serial_cbset_time_cbrequestsigncreate_responseopenssl.x509_storedata is not ts_resp objectmust be ts_resp or pkcs7 objectstoreflagsverifydataimprintSTATUS_GRANTEDSTATUS_GRANTED_WITH_MODSSTATUS_REJECTIONSTATUS_WAITINGSTATUS_REVOCATION_WARNINSTATUS_REVOCATION_NOTIFICATIONINFO_BAD_ALGINFO_BAD_REQUESTINFO_BAD_DATA_FORMAINFO_TIME_NOT_AVAILABLINFO_UNACCEPTED_POLICYINFO_UNACCEPTED_EXTENSIONINFO_ADD_INFO_NOT_AVAILABLINFO_SYSTEM_FAILURVFY_SIGNATUREVFY_VERSIONVFY_POLICYVFY_IMPRINTVFY_DATAVFY_NONCEVFY_SIGNERVFY_TSA_NAMEVFY_ALL_IMPRINTVFY_ALL_DATA=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.x509openssl.evp_pkeymust be private keymust be table contians x509 object as cacetsprivate key does not correspond to certPKCS12_create failed,pleases get more error infocertpkeyextracertsexport=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDautoopenssl.pkcs7datasignedenvelopedsignedAndEnvelopeddigestencryptedmust supply certificate or crl objectopenssl.x509openssl.x509_crladd to pkcs7 failopenssl.evp_pkeysigcert and private key not matchopenssl.x509_storeaes-128-cbcpemonly accept pem, der or smime, default is pemversionopenssl.x509_nameissueropenssl.asn1_integerserialopenssl.x509_algordigest_algdigest_enc_algopenssl.asn1_stringenc_digestpkeyauth_attrunauth_attrtypedetachedmd_algssigner_infocontentscertscrls‰ûÿPûÿÂûÿ%ûÿGûÿparseexportdecryptverifyaddset_contentset_digestfinal__gcnewcreatesignencryptTEXTNOCERTSNOSIGSNOCHAINNOINTERNNOVERIFYDETACHEDBINARYNOATTRNOSMIMECAPNOOLDMIMETYPECRLFEOLSTREAMNOCRLPARTIALREUSE_DIGEST=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDsrc/pkey.cpkey != NULLautoopenssl.evp_pkeyrsaopenssl.enginedsadhecfailed to get ec_group objectnot support %s!!!!algnedpqdmp1dmq1iqmpgpriv_keypub_keyec_nameparam_encconv_formget openssl.ec_group failopenssl.bnparameters must have "%s" field string or openssl.bnxyzonly accpet affine co-ordinatesopenssl.rsaopenssl.ec_keyopenssl.dhopenssl.dsaonly accept 'pem','der' or nonepemonly accept pem or der, default is pemRSARSA-PSSECED25519ED448X25519X448SM2DHX9.42 DHDHXDSAbitssizetypesm2pkcs1EVP_PKEY must be of type RSA or RSA2not supportopenssl.evp_pkey_ctxinvalid public key algorithmNOT_SUPPORTonly support DH or EC private keymismatch key typesha256sm31234567812345678must be openssl.evp_pkey or arrayempty arrayaes-128-cbctable with gapopenssl.evp_cipher_ctxis_privateget_publicset_engineexportparsectxencryptdecryptsignverifysealderivemissing_paramaters__gcencrypt_initdecrypt_initverify_initsign_initctrlkeygennewctx_newseal_initseal_updateseal_finalopen_initopen_updateopen_finalopenssl_pkey_is_private=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.rsapkcs1src/rsa.csha256sizebitsopenssl.bnnedpqdmp1dmq1iqmpopenssl.enginen must be positivedata length to pad mismatch with digest size¥ÌûÿÊûÿ¥Ìûÿ�Êûÿ¢Êûÿ�Ëûÿ¾Ëûÿpadded data length mismatch with RSA sizeunpadded data length mismatch with digest sizePÐûÿÍûÿPÐûÿ²Îûÿ�ÍûÿÛÎûÿÏûÿparseisprivateexportencryptdecryptsignverifyset_engine__gcgenerate_keypadding_addpadding_check=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDallallow_unsafe_legacy_renegotiationcipher_server_preferencecisco_anyconnectcookie_exchangecryptopro_tlsext_bugdont_insert_empty_fragmentsephemeral_rsalegacy_server_connectmicrosoft_big_sslv3_buffermicrosoft_sess_id_bugmsie_sslv2_rsa_paddingnetscape_ca_dn_bugnetscape_challenge_bugnetscape_demo_cipher_change_bugnetscape_reuse_cipher_change_bugno_compressionno_query_mtuno_session_resumption_on_renegotiationno_sslv2no_sslv3no_ticketno_tlsv1no_tlsv1_1no_tlsv1_2pkcs1_check_1pkcs1_check_2single_dh_usesingle_ecdh_usessleay_080_client_dh_bugsslref2_reuse_cert_type_bugtls_block_padding_bugtls_d5_bugtls_rollback_bugTLSSSLv23SSLv23_serverSSLv23_clientTLS_serverTLS_clientDTLSDTLS_serverDTLS_clientDTLSv1_2DTLSv1_2_serverDTLSv1_2_clientDTLSv1DTLSv1_serverDTLSv1_clientTLSv1_2TLSv1_2_serverTLSv1_2_clientTLSv1_1TLSv1_1_serverTLSv1_1_clientTLSv1TLSv1_serverTLSv1_clientonly support TLS, DTLS to negotiate highest available SSL/TLS or DTLS version above openssl v1.1.0 optional followed by _client or _server default is TLS ALL:!COMPLEMENTOFDEFAULT:!eNULLError to set cipher listopenssl.ssl_ctxopenssl.ssl_sessionctx_newalert_typealert_descsession_newsession_readopenssl.evp_pkeyopenssl.x509enable_partial_writeaccept_moving_write_bufferauto_retryno_auto_chainrelease_buffersmax version can't less than minopenssl.x509_storeopenssl.engineopenssl.bioopenssl.sslctxnonepeerfailoncemust be none or peer(combined with fail, once or nonemust be callback functionverify_cbneed function or table contains flagsverify_cb_flagscert_verify_cbinvalid protocol valuetoo long protocol valuefail to allocate protocol listfail to set ALPN protocolstable expectedalpn_select_cbalpn select callback error: %s tlsext_servernamemust be table or functionadd session callback error: %s get session callback error: %s get session callback return unaccpet value: (type=%s)%s del session callback error: %s offno_auto_clearbothserverclientno_internalno_internal_lookupno_internal_storesslbiouseaddmodetimeoutoptionsversionnum_ticketsquiet_shutdownverify_locationscert_storeset_engineverify_modeset_cert_verifyset_alpn_protosset_alpn_select_cbverify_depthflush_sessionssessionsession_cache_modeset_session_callbackset_servername_callback__gcverify_certidtimecompress_idexportis_resumablehas_ticketnothingreadingwritingx509_lookupnamebitsalgbitsdescriptionwant_readwant_writewant_x509_lookupsyscallwant_connectwant_acceptÂ&üÿ'üÿN'üÿ�'üÿÌ'üÿ (üÿí&üÿB(üÿ~(üÿfdrfdwfdclient_CA_listread_aheadshared_cipherscipher_liststate_stringstate_string_longrstate_stringrstate_string_longiversiondefault_timeoutcertificateverify_resultstatehostnamesidecan't understantclient_CApurposetrustdon't understandwriteCan't understand SSL_get_shutdown resultshould be boolean or string[read|write|quiet|noquite]invalid state: rbio or wbio already setopenssl.ssl %psetgetgetfdis_servercurrent_ciphercurrent_compressiongetpeerverificationdupclearwantpendingacceptconnectpeekrenegotiatehandshakeshutdownsession_reusedcache_hitrenegotiate_abbreviatedrenegotiate_pendingset_connect_stateset_accept_stateget_alpn_selecteddefaultDEFAULT_CIPHER_LIST€ÿÿÿÿquietnoquiet=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADED=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDpurposetrustflagsnamesnameonly accpet NONE, string or number as nid or short namestandardnetscapeextendlnamenidautoopenssl.x509openssl.bnopenssl.x509_reqopenssl.x509_namenewcerttypesverify_cert_error_stringotherNametyperfc822NamedNSNamex400AddressdirectoryNameuniformResourceIdentifieriPAddressnameAssignerpartyNameediPartyNameregisteredIDunsupportê’üÿ±“üÿ+”üÿ¥”üÿ•üÿ�–üÿœ•üÿ–üÿs—üÿsig_algopenssl.x509_algorsigpemversionsubjectissuer%08lxhashserialNumbernotBeforenotAfteraliascapurposesextensionsopenssl.x509_extensionopenssl.evp_pkeyopenssl.x509_storeanyinternalmalformedsrc/x509.cmust be a table as array or nilsha256openssl.asn1_stringnot acceptparseexportcheckcheck_hostcheck_emailcheck_ip_ascpubkey__gc__eqequaldigestnotbeforenotafterserialvalidatsignverifyALWAYS_CHECK_SUBJECTNEVER_CHECK_SUBJECTNO_WILDCARDSNO_PARTIAL_WILDCARDSMULTI_LABEL_WILDCARDSSINGLE_LABEL_SUBDOMAINSOKUNSPECIFIEDUNABLE_TO_GET_ISSUER_CERTUNABLE_TO_GET_CRLUNABLE_TO_DECRYPT_CERT_SIGNATUREUNABLE_TO_DECRYPT_CRL_SIGNATUREUNABLE_TO_DECODE_ISSUER_PUBLIC_KEYCERT_SIGNATURE_FAILURECRL_SIGNATURE_FAILURECERT_NOT_YET_VALIDCERT_HAS_EXPIREDCRL_NOT_YET_VALIDCRL_HAS_EXPIREDERROR_IN_CERT_NOT_BEFORE_FIELDERROR_IN_CERT_NOT_AFTER_FIELDERROR_IN_CRL_LAST_UPDATE_FIELDERROR_IN_CRL_NEXT_UPDATE_FIELDOUT_OF_MEMDEPTH_ZERO_SELF_SIGNED_CERTSELF_SIGNED_CERT_IN_CHAINUNABLE_TO_GET_ISSUER_CERT_LOCALLYUNABLE_TO_VERIFY_LEAF_SIGNATURECERT_CHAIN_TOO_LONGCERT_REVOKEDINVALID_CAPATH_LENGTH_EXCEEDEDINVALID_PURPOSECERT_UNTRUSTEDCERT_REJECTEDSUBJECT_ISSUER_MISMATCHAKID_SKID_MISMATCHAKID_ISSUER_SERIAL_MISMATCHKEYUSAGE_NO_CERTSIGNUNABLE_TO_GET_CRL_ISSUERUNHANDLED_CRITICAL_EXTENSIONKEYUSAGE_NO_CRL_SIGNUNHANDLED_CRITICAL_CRL_EXTENSIONINVALID_NON_CAPROXY_PATH_LENGTH_EXCEEDEDKEYUSAGE_NO_DIGITAL_SIGNATUREPROXY_CERTIFICATES_NOT_ALLOWEDINVALID_EXTENSIONINVALID_POLICY_EXTENSIONNO_EXPLICIT_POLICYDIFFERENT_CRL_SCOPEUNSUPPORTED_EXTENSION_FEATUREUNNESTED_RESOURCEPERMITTED_VIOLATIONEXCLUDED_VIOLATIONSUBTREE_MINMAXAPPLICATION_VERIFICATIONUNSUPPORTED_CONSTRAINT_TYPEUNSUPPORTED_CONSTRAINT_SYNTAXUNSUPPORTED_NAME_SYNTAXCRL_PATH_VALIDATION_ERRORPATH_LOOPSUITE_B_INVALID_VERSIONSUITE_B_INVALID_ALGORITHMSUITE_B_INVALID_CURVESUITE_B_INVALID_SIGNATURE_ALGORITHMSUITE_B_LOS_NOT_ALLOWEDSUITE_B_CANNOT_SIGN_P_384_WITH_P_256HOSTNAME_MISMATCHEMAIL_MISMATCHIP_ADDRESS_MISMATCHDANE_NO_MATCHEE_KEY_TOO_SMALLCA_KEY_TOO_SMALLCA_MD_TOO_WEAKINVALID_CALLSTORE_LOOKUPNO_VALID_SCTSPROXY_SUBJECT_NAME_VIOLATIONOCSP_VERIFY_NEEDEDOCSP_VERIFY_FAILEDOCSP_CERT_UNKNOWNSIGNATURE_ALGORITHM_MISMATCHNO_ISSUER_PUBLIC_KEYUNSUPPORTED_SIGNATURE_ALGORITHMattributeextensionstorealgorreqcrlcheck_flagverify_resultDigital SignaturedigitalSignatureNon RepudiationnonRepudiationKey EnciphermentkeyEnciphermentData EnciphermentdataEnciphermentKey AgreementkeyAgreementCertificate SignkeyCertSignCRL SigncRLSignEncipher OnlyencipherOnlyDecipher OnlydecipherOnlySSL ClientclientSSL ServerserverS/MIMEemailObject SigningobjsignUnusedreservedSSL CAsslCAS/MIME CAemailCAObject Signing CAobjCA�‚„ƒ‰‹´…)Ž=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.x509_attributenew_attributeobjectvalueinfodupdatatype__gcopenssl.asn1groupmust be a table as array or nil=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDobjectcriticalvaluesrc/xexts.cdon't support object(%s) with value (%s)openssl.asn1groupfield value must be string or openssl.asn1group objectopenssl.x509_extensionlnamesnamenidsupportnew_extensionread_extensiononly accpet asn1 octet string if is a asn1 stringinfodupexportdata__gcmust be a table as array or nilGSUWY~"#‘—šëì=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.x509_namecan't add to openssl.x509_name with value (%s=%s) at %d of #%d table argmust be not empty table as arraynewd2isrc/xname.conelinehashdigesttoprintinfodupi2dentry_countget_textget_entryadd_entrydelete_entrycmptostring__eq__gcmust be a table as array or nil=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.x509only contains x509 objectopenssl.x509_crlopenssl.x509_storenewfiledefaultonly accept table with x509 or x509_crl objectonly accept x509 or x509_crl object or table with x509 or x509_crl objectflagspurposedepthtrustloadaddadd_lookup__gcdirpemasn1=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDmust be a table as array or nilopenssl.x509_algornewopenssl.asn1_objectopenssl.asn1_stringdupsetgetmdtostringequals__eq__gc=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDsecretkeysaltpassprefixlabeldataukminfoseedxcghashsession_idconstantdigestciphermacpropertiesmodecekalgmacleniternpmaxmem_bytespkcs5typeiduse-luse-separatorsizenamedata_typeÌÁýÿ>Áýÿ>ÁýÿZÁýÿ’Áýÿ’Áýÿ³Áýÿ³Áýÿempty paramaters tablesrc/param.c%s:%d in %s: Error NYI gÌýÿ:ÄýÿìÄýÿŸÅýÿSÆýÿ1ÇýÿãÇýÿ–ÈýÿJÉýÿÜÊýÿ(ÊýÿgÌýÿºËýÿkdfnumber_typeintunsinged intlongunsinged longint32uint32int64uint64size_ttime_tBIGNUMdoubleunknown¶ÐýÿfÏýÿƒÏýÿ Ïýÿ½ÏýÿÚÏýÿ÷ÏýÿÐýÿ1ÐýÿNÐýÿhÐýÿ‚ÐýÿœÐýÿopenssl_toparamsàC=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.kdfmust be a string for KDF method namesrc/kdf.ctyp == LUA_TFUNCTIONout of support range, limited to 64openssl.kdf_ctxdupresetderivesizekdfgettable_paramssettable_paramsget_paramsset_params__gcdescriptionnameprovideris_aiteratornewsettable_ctx_paramsgettable_ctx_paramsfetchnamesHKDFTLS13-KDFPBKDF1PBKDF2SCRYPTSSHKDFSSKDFTLS1-PRFX942KDF-ASN1X942KDF-CONCATX963KDFKBKDFKRB5KDFkdf_iterator_cbiterator_cb=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDverify_certpreverify_okerrorerror_stringerror_depthopenssl.x509current_certcert_verify_cbverify_cbverify_cb_flagsalways_continueverify_depth=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.srp_gnopenssl.bncalc_ucalc_acalc_xcalc_client_keycalc_bcreate_verifiercalc_server_keyget_default_gN=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDopenssl.macsrc/mac.copenssl.mac_ctxNYIopenssl.ctxmust be a string, NID number or asn1_object identity digest/cipher methodhmacdigestcmaccipheropenssl.engineis_anamesproviderget_params__gcupdatefinalclosesizedupmacparamsctxnew=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDUnspecifiedunspecifiedKey CompromisekeyCompromiseCA CompromiseCACompromiseAffiliation ChangedaffiliationChangedSupersededsupersededCessation Of OperationcessationOfOperationCertificate HoldcertificateHoldRemove From CRLremoveFromCRLPrivilege WithdrawnprivilegeWithdrawnAA CompromiseAACompromise unsetinvalid revoke reasonfail convert to revoke reasoncodereasonserialNumberrevocationDateextensionsmust be table contains rovked entry table{reason,time,sn}timesnopenssl.x509openssl.evp_pkeymust be private keyevp_pkey not match with x509 in #2sha256openssl.x509_crlautonewopenssl.x509_nameonly accept openssl.x509 or openssl.x509_name objectmust be x509 or evp_pkey objectmust be openssl.x509 or openssl.x509_name objectprivate key not match with cacertversion%08lxhashalgfingerprintissuerlastUpdatenextUpdateopenssl.x509_algorsig_algsignaturecrl_numberrevokedpemonly accept der or pemOut of rangeopenssl.asn1_integeropenssl.x509_revokedsortverifysigndigestdiffupdateTimeaddparseexportcmpcountget__eq__gcopenssl.bninfomust be a table as array or nil=nonelocal op,a,b=... if op==0 then return a+b elseif op==1 then return a-b elseif op==2 then return a*b elseif op==3 then return a/b elseif op==4 then return a%b elseif op==5 then return a^b elseif op==6 then return -a end invalid 'op' argument for lua_arithnot enough stack slotslocal a,b=... return a<=b invalid 'op' argument for lua_compare__lenattempt to get length of a %s valuestack overflow (%s)stack overflowobject length is not an integertoo many upvalues.ffunction '%s'main chunk?function <%s:%d>%s stack traceback: ...Slnt %s:%d: in %s: %sattempt to load a %s chunk (mode is '%s')binarytextcannot %s %s: %s=stdin@%sropenrbreopenreadexitsignalbuffer too largecannot convert value to stringnot enough stack slots available__compat53_extraspacek__mode__tostringniltruefalse__name%s: %p'__tostring' must return a string_LOADEDautoopenssl.x509_reqopenssl.x509_nameopenssl.evp_pkeymust be x509_name or evp_pkeymust is evp_pkey objectsha256newopenssl.x509pemonly accept der or pemhas not set public key!!!src/csr.copenssl.x509_algorsig_algsignatureversionsubjectextensionsopenssl.x509_attributeattributesalgorithmpubkeyreq_infoto_x509exportparsedigestverifycheckdupsignpublicattributeattr_count__gc;ôR] £õÿSÁ÷õÿ8SøõÿXSIøõÿxSùõÿ˜SÇùõÿ¸SùúõÿØS\ûõÿøS—üõÿTýõÿ8T}ýõÿXTõýõÿxTþõÿ˜Twþõÿ¸T—ÿõÿØT-öÿøTöÿUwöÿ8UEöÿXUåöÿxUöÿ˜UÆöÿ¸UéöÿØUãöÿøUúöÿVa öÿ8VÊ öÿXVË öÿxV^ öÿ˜V$ öÿ¸V¿ öÿØV7 öÿøV³öÿWRöÿ8W:öÿXW«öÿxWöÿ˜Weöÿ¸WBöÿØW­öÿøWöÿXoöÿ8X•öÿXXöÿxX¡öÿ˜X öÿ¸XéöÿØX`öÿøXöÿYöÿ8YEöÿXY? öÿxY£!öÿ˜Yï#öÿ¸Yb$öÿØYÇ$öÿøY %öÿZ¸%öÿ8ZG&öÿXZ¶&öÿxZ_'öÿ˜Zä'öÿ¸Z (öÿØZÔ(öÿøZè(öÿ[ )öÿ8[u)öÿX[ð,öÿx[4-öÿ˜[‡-öÿ¸[¼-öÿØ[�.öÿø[:/öÿ\l0öÿ8\Ï0öÿX\ 2öÿx\y2öÿ˜\ð2öÿ¸\h3öÿØ\s3öÿø\ê3öÿ] 5öÿ8] 5öÿX]ˆ6öÿx]ê6öÿ˜]¸7öÿ¸]X8öÿØ]Ž9öÿø]9:öÿ^\;öÿ8^V=öÿX^m>öÿx^Ô>öÿ˜^=?öÿ¸^>@öÿØ^Ñ@öÿø^—Aöÿ_2Böÿ8_ªBöÿX_&Eöÿx_ÅEöÿ˜_­Föÿ¸_GöÿØ_{Höÿø_ØHöÿ`µIöÿ8` JöÿX`sJöÿx`âJöÿ˜`Nöÿ¸`ƒNöÿØ`Oöÿø`Oöÿa\Pöÿ8aÓPöÿXazQöÿxauSöÿ˜a¸Töÿ¸aWöÿØaKYöÿüaÍ[öÿb²]öÿŒöÿ fÒŒöÿÀf�öÿàf:ŽöÿgD�öÿ$gÎ�öÿDg�öÿdgg�öÿ„gF‘öÿ¤gD’öÿÄgm“öÿäg”öÿh‚”öÿ$h"–öÿDh«–öÿhhþ–öÿˆh3—öÿ¨h˜öÿÈh±˜öÿèhã™öÿiFšöÿ(i�›öÿHið›öÿhigœöÿˆißœöÿ¨iêœöÿÈia�öÿèi�žöÿjŸöÿ(jÿŸöÿHja öÿhj/¡öÿˆjÏ¡öÿ¨j£öÿÈj°£öÿèjÓ¤öÿkͦöÿ(kä§öÿHkK¨öÿhk´¨öÿˆkµ©öÿ¨kHªöÿÈk«öÿèk©«öÿl!¬öÿ(l�®öÿHl<¯öÿhl$°öÿˆl•°öÿ¨lò±öÿÈlO²öÿèl,³öÿm—³öÿ(mê³öÿHmY´öÿhm·öÿˆmú·öÿ¨m‹¸öÿÈmö¸öÿèmÓ¹öÿnJºöÿ(nñºöÿHnì¼öÿhn/¾öÿˆn>¾öÿ¨nø¿öÿÈn›Áöÿèn4Âöÿo‘Âöÿ(oÃöÿHowÃöÿhoÎÃöÿˆoœÄöÿ¨oÆÄöÿÈo4Åöÿèo‡Åöÿp¼Åöÿ(p�ÆöÿHp:ÇöÿhplÈöÿˆpÏÈöÿ¨p ÊöÿÈpyÊöÿèpðÊöÿqhËöÿ(qsËöÿHqêËöÿhq Íöÿˆq Íöÿ¨qˆÎöÿÈqêÎöÿèq¸ÏöÿrXÐöÿ(rŽÑöÿHr9Òöÿhr\ÓöÿˆrVÕöÿ¨rmÖöÿÈrÔÖöÿèr=×öÿs>Øöÿ(sÑØöÿHs—Ùöÿhs2ÚöÿˆsªÚöÿ¨s&ÝöÿÈsÅÝöÿès­Þöÿtßöÿ(t{àöÿHtØàöÿhtµáöÿˆt âöÿ¨tsâöÿÈtââöÿètæöÿuƒæöÿ(uçöÿHuçöÿhu\èöÿˆuÓèöÿ¨uzéöÿÈuuëöÿèu¸ìöÿvÁíöÿ(vòîöÿHvNïöÿhvºïöÿˆvUðöÿ¨vððöÿÈv‹ñöÿèvYòöÿwÞòöÿ(wXõöÿHw¿÷öÿhwÿøöÿˆwHúöÿ¨wOûöÿÈw1üöÿèw–üöÿx"ýöÿ(xˆýöÿHxùýöÿhxÑþöÿˆxÿöÿ¨x¬ÿöÿÈxW÷ÿèxæ÷ÿyÿ÷ÿ(y¢÷ÿHyÿ÷ÿhy÷÷ÿˆy½÷ÿ¨y�÷ÿÈyù÷ÿèyU÷ÿz.÷ÿ(z÷÷ÿHz«÷ÿhzC ÷ÿˆzð ÷ÿ¨zC ÷ÿÈzx ÷ÿèzL ÷ÿ{ö ÷ÿ({( ÷ÿH{‹ ÷ÿh{Æ÷ÿˆ{5÷ÿ¨{¬÷ÿÈ{$÷ÿè{/÷ÿ|¦÷ÿ(|Æ÷ÿH|\÷ÿh|D÷ÿˆ|¦÷ÿ¨|t÷ÿÈ|÷ÿè|J÷ÿ}õ÷ÿ(}÷ÿH}÷ÿh})÷ÿˆ}�÷ÿ¨}ù÷ÿÈ}ú÷ÿè}�÷ÿ~S÷ÿ(~î÷ÿH~f÷ÿh~â!÷ÿˆ~�"÷ÿ¨~i#÷ÿÈ~Ú#÷ÿè~7%÷ÿ”%÷ÿ(q&÷ÿHÜ&÷ÿh/'÷ÿˆž'÷ÿ¨Ä*÷ÿÈ?+÷ÿèÐ+÷ÿ€;,÷ÿ(€-÷ÿH€�-÷ÿh€6.÷ÿˆ€10÷ÿ¨€t1÷ÿÈ€þ1÷ÿè€s2÷ÿ�è5÷ÿ(�b9÷ÿH�ð<÷ÿh�æ?÷ÿˆ�zB÷ÿ¨�E÷ÿÈ�ÚF÷ÿè�wH÷ÿ‚QK÷ÿ(‚+M÷ÿH‚ZN÷ÿh‚ÔP÷ÿˆ‚¤÷ÿ莡¤÷ÿ�Ü¥÷ÿ(�K¦÷ÿH�¦÷ÿh�:§÷ÿˆ�E§÷ÿ¨�¼§÷ÿÈ�ܨ÷ÿè�r©÷ÿ�Zª÷ÿ(�¼ª÷ÿH�Š«÷ÿh�*¬÷ÿˆ�`­÷ÿ¨� ®÷ÿÈ�.¯÷ÿè�(±÷ÿ‘?²÷ÿ(‘¦²÷ÿH‘³÷ÿh‘´÷ÿˆ‘£´÷ÿ¨‘iµ÷ÿÈ‘¶÷ÿè‘|¶÷ÿ’ø¸÷ÿ(’—¹÷ÿH’º÷ÿh’ðº÷ÿˆ’M¼÷ÿ¨’ª¼÷ÿÈ’‡½÷ÿè’ò½÷ÿ“E¾÷ÿ(“´¾÷ÿH“ÚÁ÷ÿh“UÂ÷ÿˆ“æÂ÷ÿ¨“QÃ÷ÿÈ“.Ä÷ÿè“¥Ä÷ÿ”LÅ÷ÿ(”GÇ÷ÿH”ŠÈ÷ÿh”ÈÈ÷ÿˆ”0Ì÷ÿ¨”üÌ÷ÿÈ”(Î÷ÿè”æÎ÷ÿ•½Ñ÷ÿ(•0Ò÷ÿH•ƒÒ÷ÿh•¸Ò÷ÿˆ•ŒÓ÷ÿ¨•6Ô÷ÿÈ•hÕ÷ÿè•ËÕ÷ÿ–×÷ÿ(–u×÷ÿH–ì×÷ÿh–dØ÷ÿˆ–oØ÷ÿ¨–æØ÷ÿÈ–Ú÷ÿè–œÚ÷ÿ—„Û÷ÿ(—æÛ÷ÿH—´Ü÷ÿh—TÝ÷ÿˆ—ŠÞ÷ÿ¨—5ß÷ÿÈ—Xà÷ÿè—Râ÷ÿ˜iã÷ÿ(˜Ðã÷ÿH˜9ä÷ÿh˜:å÷ÿˆ˜Íå÷ÿ¨˜“æ÷ÿȘ.ç÷ÿ蘦ç÷ÿ™"ê÷ÿ(™Áê÷ÿH™©ë÷ÿh™ì÷ÿˆ™wí÷ÿ¨™Ôí÷ÿÈ™±î÷ÿè™ï÷ÿšoï÷ÿ(šÞï÷ÿHšó÷ÿhšó÷ÿˆšô÷ÿ¨š{ô÷ÿÈšXõ÷ÿèšÏõ÷ÿ›vö÷ÿ(›qø÷ÿH›´ù÷ÿh›>ú÷ÿˆ›³ú÷ÿ¨›òû÷ÿÈ›}ý÷ÿè›Èþ÷ÿœøÿ(œøÿHœæøÿhœøÿˆœˆøÿ¨œþøÿÈœøÿèœdøÿ� øÿ(�K øÿL�¼ øÿl�- øÿŒ� øÿ¬�’ øÿÌ�¦ øÿì�`øÿ žÕøÿ0ž(øÿPž]øÿpž1øÿ�žÛøÿ°ž øÿОpøÿðž«øÿŸøÿ0Ÿ‘øÿPŸ øÿpŸøÿ�Ÿ‹øÿ°Ÿ«øÿПAøÿðŸ)øÿ ‹øÿ0 YøÿP ùøÿp /øÿ� Úøÿ° ýøÿР÷øÿð  øÿ¡u øÿ0¡Þ øÿP¡ß!øÿp¡r"øÿ�¡8#øÿ°¡Ó#øÿСK$øÿð¡Ç&øÿ¢f'øÿ0¢N(øÿP¢¿(øÿp¢*øÿ�¢y*øÿ°¢V+øÿТÁ+øÿð¢,øÿ£ƒ,øÿ0£©/øÿP£$0øÿp£µ0øÿ�£ 1øÿ°£ý1øÿУt2øÿð£3øÿ¤5øÿ0¤Y6øÿP¤—6øÿp¤É9øÿ�¤Z:øÿ°¤¼;øÿФ<øÿð¤j<øÿ¥Ÿ<øÿ0¥s=øÿP¥>øÿp¥O?øÿ�¥²?øÿ°¥í@øÿÐ¥\Aøÿð¥ÓAøÿ¦KBøÿ0¦VBøÿP¦ÍBøÿp¦íCøÿ�¦ƒDøÿ°¦kEøÿЦÍEøÿð¦›Føÿ§;Gøÿ0§qHøÿP§Iøÿp§?Jøÿ�§9Løÿ°§PMøÿЧ·Møÿð§ Nøÿ¨!Oøÿ0¨´OøÿP¨zPøÿp¨Qøÿ�¨�Qøÿ°¨ TøÿШ¨Tøÿð¨�Uøÿ©Vøÿ0©^WøÿP©»Wøÿp©˜Xøÿ�©Yøÿ°©VYøÿЩÅYøÿð©ë\øÿªf]øÿ0ª÷]øÿPªb^øÿpª?_øÿ�ª¶_øÿ°ª]`øÿЪXbøÿðª›cøÿ«yeøÿ0«tføÿP«Çkøÿt«løÿ”«’løÿ´«møÿÔ«nøÿô«§nøÿ¬\oøÿ4¬CpøÿT¬¦søÿt¬0tøÿ”¬àtøÿ´¬…uøÿÔ¬kvøÿô¬½wøÿ­‰xøÿ4­˜yøÿT­_zøÿt­a{øÿ”­=|øÿ´­¼|øÿÔ­¶~øÿô­€øÿ®i�øÿ8®‘‚øÿX®ƒøÿx®Bƒøÿ˜®€ƒøÿ¸®è‡øÿØ®8ˆøÿø®<‰øÿ¯Í‰øÿ8¯ŠøÿX¯¹Šøÿx¯±‹øÿ˜¯^Œøÿ¸¯J�øÿد1Žøÿø¯»�øÿ°J�øÿ8°��øÿX°Ò�øÿx°¦‘øÿ˜°P’øÿ¸°‚“øÿØ°å“øÿø° •øÿ±�•øÿ8±–øÿX±~–øÿx±‰–øÿ˜±—øÿ¸± ˜øÿر¶˜øÿø±ž™øÿ²šøÿ8²ÎšøÿX²n›øÿx²¤œøÿ˜²O�øÿ¸²ržøÿزl øÿø²ƒ¡øÿ³ê¡øÿ8³S¢øÿX³T£øÿx³ç£øÿ˜³­¤øÿ¸³H¥øÿسÀ¥øÿø³<¨øÿ´Û¨øÿ8´Ã©øÿX´4ªøÿx´‘«øÿ˜´î«øÿ¸´Ë¬øÿØ´6­øÿø´‰­øÿµø­øÿ8µ±øÿXµ™±øÿxµ*²øÿ˜µ•²øÿ¸µr³øÿØµé³øÿøµ�´øÿ¶‹¶øÿ8¶Î·øÿX¶.¹øÿ|¶Ù¹øÿœ¶„ºøÿ¼¶Öºøÿܶ(»øÿü¶È½øÿ·(Áøÿ<·fÁøÿ\·,Âøÿ|·òÂøÿœ·“Ãøÿ¼·åÃøÿÜ·7Äøÿü·®Åøÿ¸ûÅøÿ<¸ÇÆøÿ\¸“Çøÿ|¸Éøÿœ¸FÉøÿÀ¸™Éøÿà¸ÎÉøÿ¹¢Êøÿ ¹LËøÿ@¹~Ìøÿ`¹áÌøÿ€¹Îøÿ ¹‹ÎøÿÀ¹Ïøÿà¹zÏøÿº…Ïøÿ ºüÏøÿ@ºÑøÿ`º²Ñøÿ€ºšÒøÿ ºüÒøÿÀºÊÓøÿàºjÔøÿ» Õøÿ »KÖøÿ@»n×øÿ`»hÙøÿ€»Úøÿ »æÚøÿÀ»OÛøÿà»PÜøÿ¼ãÜøÿ ¼©Ýøÿ@¼DÞøÿ`¼¼Þøÿ€¼8áøÿ ¼×áøÿÀ¼¿âøÿà¼0ãøÿ½�äøÿ ½êäøÿ@½Çåøÿ`½2æøÿ€½…æøÿ ½ôæøÿÀ½êøÿཕêøÿ¾&ëøÿ ¾‘ëøÿ@¾nìøÿ`¾åìøÿ€¾Œíøÿ ¾‡ïøÿÀ¾Êðøÿà¾ßñøÿ¿Còøÿ ¿ôøÿ@¿ƒôøÿ`¿=öøÿ€¿’öøÿ ¿íöøÿÀ¿@÷øÿà¿u÷øÿÀIøøÿ Àóøøÿ@À%úøÿ`Àˆúøÿ€ÀÃûøÿ À2üøÿÀÀ©üøÿàÀ!ýøÿÁ,ýøÿ Á£ýøÿ@ÁÃþøÿ`ÁYÿøÿ€ÁAùÿ Á£ùÿÀÁqùÿàÁùÿÂGùÿ Âòùÿ@Âùÿ`Âùÿ€Â&ùÿ Â�ùÿÀÂöùÿàÂ÷ ùÿÊ ùÿ ÃP ùÿ@Ãë ùÿ`Ãc ùÿ€Ãßùÿ Ã~ùÿÀÃfùÿàÃ×ùÿÄ4ùÿ Ä‘ùÿ@Änùÿ`ÄÙùÿ€Ä,ùÿ Ä›ùÿÀÄÁùÿàÄ<ùÿÅÍùÿ Å8ùÿ@Åùÿ`ÅŒùÿ€Å3ùÿ Å.ùÿÀÅqùÿàŰùÿÆ:ùÿ Æ ùÿ@ÆL ùÿ`ÆÅ ùÿ€Æ>!ùÿ Æ"ùÿÀÆD"ùÿàÆˆ"ùÿÇÌ"ùÿ Ç#ùÿ@ÇT#ùÿ`lj#ùÿ€ÇÝ#ùÿ Ç?$ùÿÀÇ¥$ùÿàÇ %ùÿÈm%ùÿ Èâ%ùÿ@Èz&ùÿ`ÈÞ&ùÿ€ÈB'ùÿ È¼'ùÿÀÈE(ùÿàÈÎ(ùÿÉH)ùÿ ÉÙ)ùÿ@ÉS*ùÿ`ÉÍ*ùÿ€Éc+ùÿ Éù+ùÿÀÉ�,ùÿàÉ%-ùÿÊŸ-ùÿ Ê.ùÿ@Ê“.ùÿ`Êè.ùÿ€Êe/ùÿ ÊÞ/ùÿÀÊ0ùÿàÊ1ùÿËc1ùÿ ˘1ùÿ@Ël2ùÿ`Ë3ùÿ€ËH4ùÿ Ë«4ùÿÀËæ5ùÿàËU6ùÿÌÌ6ùÿ ÌD7ùÿ@ÌO7ùÿ`ÌÆ7ùÿ€Ìæ8ùÿ Ì|9ùÿÀÌd:ùÿàÌÆ:ùÿÍ”;ùÿ Í4<ùÿ@Íj=ùÿ`Í>ùÿ€Í8?ùÿ Í2AùÿÀÍIBùÿàͰBùÿÎCùÿ ÎDùÿ@έDùÿ`ÎsEùÿ€ÎFùÿ Î†FùÿÀÎIùÿàΡIùÿωJùÿ ÏúJùÿ@ÏWLùÿ`Ï´Lùÿ€Ï‘Mùÿ ÏüMùÿÀÏONùÿàϾNùÿÐäQùÿ Ð_Rùÿ@ÐðRùÿ`Ð[Sùÿ€Ð8Tùÿ Ð¯TùÿÀÐVUùÿàÐQWùÿÑ”Xùÿ Ñ€Yùÿ@ÑŠZùÿ`ÑÈZùÿ€ÑW[ùÿ Ñü[ùÿÀÑ^ùÿàÑL^ùÿÒ~^ùÿ ÒÝ^ùÿ@Ò‚_ùÿ`Ò`ùÿ€Òp`ùÿ Ò¥`ùÿÀÒyaùÿàÒ#bùÿÓUcùÿ Ó¸cùÿ@Óódùÿ`Óbeùÿ€ÓÙeùÿ ÓQfùÿÀÓ\fùÿàÓÓfùÿÔógùÿ Ô‰hùÿ@Ôqiùÿ`ÔÓiùÿ€Ô¡jùÿ ÔAkùÿÀÔwlùÿàÔ"mùÿÕEnùÿ Õ?pùÿ@ÕVqùÿ`Õ½qùÿ€Õ&rùÿ Õ'sùÿÀÕºsùÿàÕ€tùÿÖuùÿ Ö“uùÿ@Öxùÿ`Ö®xùÿ€Ö–yùÿ ÖzùÿÀÖd{ùÿàÖÁ{ùÿמ|ùÿ × }ùÿ@×\}ùÿ`×Ë}ùÿ€×ñ€ùÿ ×l�ùÿÀ×ý�ùÿà×h‚ùÿØEƒùÿ ؼƒùÿ@Øc„ùÿ`Ø^†ùÿ€Ø¡‡ùÿ ØlˆùÿÀØÊˆùÿàØMŠùÿÙžŠùÿ Ù!Œùÿ@ÙrŒùÿ`Ù•�ùÿ€ÙŽùÿ Ù9ŽùÿÀÙ �ùÿàÙ´�ùÿÚ›�ùÿ ÚÑ�ùÿ@Ú‘ùÿ`ÚÉ‘ùÿ€Úl’ùÿ Úz’ùÿÀÚˆ’ùÿàÚ–’ùÿÛÚ’ùÿ Û-“ùÿ@Ûb“ùÿ`Û6”ùÿ€Ûà”ùÿ Û–ùÿÀÛu–ùÿàÛ°—ùÿܘùÿ Ü–˜ùÿ@Ü™ùÿ`Ü™ùÿ€Ü�™ùÿ Ü°šùÿÀÜF›ùÿàÜ.œùÿÝ�œùÿ Ý^�ùÿ@Ýþ�ùÿ`Ý4Ÿùÿ€Ýߟùÿ Ý¡ùÿÀÝü¢ùÿàݤùÿÞz¤ùÿ Þã¤ùÿ@Þä¥ùÿ`Þw¦ùÿ€Þ=§ùÿ ÞاùÿÀÞP¨ùÿàÞ̪ùÿßk«ùÿ ßS¬ùÿ@ßĬùÿ`ß!®ùÿ€ß~®ùÿ ß[¯ùÿÀ߯¯ùÿàß°ùÿàˆ°ùÿ ளùÿ@à)´ùÿ`ິùÿ€à%µùÿ à¶ùÿÀày¶ùÿàà ·ùÿá¹ùÿ á^ºùÿ@á¼ùÿ`áV¼ùÿ€á½ùÿ á9¾ùÿÀáS¿ùÿàáÊ¿ùÿâbÁùÿ âKÂùÿ@âäÂùÿ`â$Äùÿ€âbÄùÿ â´ÄùÿÀâ2ÆùÿäâDÈùÿãÝÈùÿ$ã¢ÌùÿDãõÌùÿdã*Ïùÿ„ãÃÏùÿ¤ãÑÐùÿÄãëÕùÿèã^Öùÿä×ùÿ(äW×ùÿHä~ØùÿhäåÙùÿˆä#Úùÿ¨äÛùÿÈä&Ûùÿèä4ÛùÿåBÛùÿ(å•ÛùÿHåÊÛùÿhåžÜùÿˆåHÝùÿ¨åzÞùÿÈåÝÞùÿèåàùÿæ‡àùÿ(æþàùÿHæváùÿhæ�áùÿˆæøáùÿ¨æãùÿÈæ®ãùÿèæ–äùÿçøäùÿ(çÆåùÿHçfæùÿhçœçùÿˆçGèùÿ¨çjéùÿÈçdëùÿèç{ìùÿèâìùÿ(èKíùÿHèLîùÿhèßîùÿˆè¥ïùÿ¨è@ðùÿÈè¸ðùÿèè4óùÿéÓóùÿ(é»ôùÿHé,õùÿhé‰öùÿˆéæöùÿ¨éÃ÷ùÿÈé.øùÿèé�øùÿêðøùÿ(êüùÿHê‘üùÿhê"ýùÿˆê�ýùÿ¨êjþùÿÈêáþùÿèêˆÿùÿëƒúÿ(ëÆúÿHëúÿhëÀúÿˆëbúÿ¨ë¼úÿÈëVúÿèë^úÿìèúÿ(ì&úÿHì úÿhìû úÿˆìð úÿ¨ìå úÿÈìo úÿèì­ úÿíOúÿ(íüúÿHíþúÿhíNúÿˆížúÿ¨íMúÿÈí�úÿèíòúÿîùúÿ(îGúÿHî—úÿhîçúÿˆîQúÿ¨î�úÿÈî<úÿèîÛúÿï�úÿ(ï/úÿHïŽúÿhïúÿˆï·úÿ¨ï§úÿÈïaúÿèïúÿðúÿ(ð¥úÿHð3 úÿhðÌ úÿˆðx#úÿ¨ð¶#úÿÈðô#úÿèð~$úÿñ3%úÿ(ñâ%úÿHñc'úÿhñ(úÿˆñÙ(úÿ¨ñÁ)úÿÈñY*úÿìñÓ*úÿ òo,úÿ,ò-úÿLò�-úÿlòØ-úÿŒò/úÿ¬ò.0úÿÌòÍ0úÿìò®2úÿ ó¼3úÿ,óˆ5úÿLó–6úÿlóï7úÿŒó_8úÿ¬ó9úÿÌóu9úÿìó :úÿ ôW:úÿ,ôñ;úÿLô=úÿpô=úÿ�ô=úÿ°ôo=úÿÐô¤=úÿðôx>úÿõ"?úÿ0õT@úÿPõ·@úÿpõòAúÿ�õaBúÿ°õØBúÿÐõPCúÿðõ[CúÿöÒCúÿ0öòDúÿPöˆEúÿpöpFúÿ�öÒFúÿ°ö GúÿÐö@HúÿðövIúÿ÷!Júÿ0÷DKúÿP÷>Múÿp÷UNúÿ�÷¼Núÿ°÷%OúÿÐ÷&Púÿð÷¹PúÿøQúÿ0øRúÿPø’RúÿpøUúÿ�ø­Uúÿ°ø•VúÿÐøWúÿðøcXúÿùÀXúÿ0ù�YúÿPùZúÿpù[Zúÿ�ùÊZúÿ°ùð]úÿÐùk^úÿðùü^úÿúg_úÿ0úD`úÿPú»`úÿpúbaúÿ�ú]cúÿ°ú dúÿÐú}gúÿôú³iúÿûôiúÿ8ûjúÿXûjúÿxûjúÿ˜ûqjúÿ¸û¦júÿØûzkúÿøû$lúÿüVmúÿ8ü¹múÿXüônúÿxücoúÿ˜üÚoúÿ¸üRpúÿØü]púÿøüÔpúÿýôqúÿ8ýŠrúÿXýrsúÿxýÔsúÿ˜ý¢túÿ¸ýBuúÿØýxvúÿøý#wúÿþFxúÿ8þ@zúÿXþW{úÿxþ¾{úÿ˜þ'|úÿ¸þ(}úÿØþ»}úÿøþ�~úÿÿúÿ8ÿ”úÿXÿ‚úÿxÿ¯‚úÿ˜ÿ—ƒúÿ¸ÿ„úÿØÿe…úÿøÿÂ…úÿŸ†úÿ8 ‡úÿX]‡úÿẋúÿ˜òŠúÿ¸m‹úÿØþ‹úÿøiŒúÿF�úÿ8½�úÿXdŽúÿx_�úÿ˜¢‘úÿ¸}“úÿØ•úÿøb–úÿà–úÿ<u˜úÿ\$šúÿ€œúÿ¤P�úÿÈežúÿ裞úÿ úÿ(Q¤úÿHú¤úÿhªúÿˆxªúÿ¨«úÿÈ�«úÿèÔ«úÿ ¬úÿ(ݬúÿH‡­úÿh¹®úÿˆ¯úÿ¨W°úÿÈưúÿè=±úÿµ±úÿ(À±úÿH7²úÿhW³úÿˆí³úÿ¨Õ´úÿÈ7µúÿè¶úÿ¥¶úÿ(Û·úÿH†¸úÿh©¹úÿˆ£»úÿ¨º¼úÿÈ!½úÿèнúÿ‹¾úÿ(¿úÿHä¿úÿhÀúÿˆ÷Àúÿ¨sÃúÿÈÄúÿèúÄúÿkÅúÿ(ÈÆúÿH%ÇúÿhÈúÿˆmÈúÿ¨ÀÈúÿÈ/ÉúÿèUÌúÿ ÐÌúÿ( aÍúÿH ÌÍúÿh ©Îúÿˆ  Ïúÿ¨ ÇÏúÿÈ ÂÑúÿè Óúÿ ÙÔúÿ( aÕúÿH çÚúÿh •Üúÿˆ ¸÷úÿ¨ ýúÿÌ Eýúÿì ®ýúÿ þúÿ, ·ûÿL dûÿl ûÿŒ Šûÿ¬ ”ûÿÌ ¥ûÿì Ù ûÿ  ûÿ, = ûÿL Û ûÿl A ûÿŒ § ûÿ¬  ûÿÌ s ûÿì 1ûÿ ûÿ, ÈûÿL ±ûÿl éûÿŒ Xûÿ¬ KûÿÌ lûÿð GûÿÍ$ûÿ4¦%ûÿTT&ûÿt¤'ûÿ”}(ûÿ´+)ûÿÔ‚)ûÿôO+ûÿ¨+ûÿ4¥,ûÿXø,ûÿx--ûÿ˜.ûÿ¸«.ûÿØÝ/ûÿø@0ûÿ{1ûÿ8ê1ûÿXa2ûÿxÙ2ûÿ˜ä2ûÿ¸[3ûÿØ{4ûÿø5ûÿù5ûÿ8[6ûÿX)7ûÿxÉ7ûÿ˜ÿ8ûÿ¸ª9ûÿØÍ:ûÿøÇ<ûÿÞ=ûÿ8E>ûÿX®>ûÿx¯?ûÿ˜B@ûÿ¸AûÿØ£AûÿøBûÿ—Dûÿ86EûÿXFûÿx�Fûÿ˜ìGûÿ¸IHûÿØ&Iûÿø‘IûÿäIûÿ8SJûÿXyMûÿxôMûÿ˜…Nûÿ¸ðNûÿØÍOûÿøDPûÿëPûÿ8æRûÿX)TûÿxgTûÿ˜¿Tûÿ¸ UûÿØ]UûÿøÀVûÿ#Xûÿ8PYûÿ\0Zûÿ€·_ûÿ ³`ûÿÀµaûÿàLbûÿ—cûÿ dûÿ@œdûÿ`(hûÿ€tlûÿ ÏlûÿÀmûÿàfmûÿ›mûÿ onûÿ@oûÿ`Kpûÿ€®pûÿ éqûÿÀXrûÿàÏrûÿGsûÿ Rsûÿ@Ésûÿ`étûÿ€uûÿ gvûÿÀÉvûÿà—wûÿ7xûÿ myûÿ@zûÿ`;{ûÿ€5}ûÿ L~ûÿÀ³~ûÿàûÿ€ûÿ °€ûÿ@v�ûÿ`‚ûÿ€‰‚ûÿ …ûÿÀ¤…ûÿàŒ†ûÿý†ûÿ Zˆûÿ@·ˆûÿ`”‰ûÿ€ÿ‰ûÿ RŠûÿÀÁŠûÿàç�ûÿbŽûÿ óŽûÿ@^�ûÿ`;�ûÿ€²�ûÿ Y‘ûÿÀT“ûÿà—”ûÿ]™ûÿ šûÿ@­šûÿ`›ûÿ€œûÿ �ûÿÀzžûÿàËžûÿwŸûÿ &¡ûÿ@££ûÿ` ¥ûÿ€¸¥ûÿ Œ¦ûÿÀ–§ûÿà ¨ûÿ ©ªûÿ º¬ûÿ@ K­ûÿ` ɯûÿ€ (±ûÿ  V³ûÿÀ Õ³ûÿà ¼µûÿ!^¶ûÿ !Þ·ûÿ@!·¸ûÿ`!oºûÿ€!á¼ûÿ¤!˽ûÿÄ!C¿ûÿä!�¿ûÿ"¿Àûÿ$"€ÄûÿD"Åûÿd"ŠÅûÿ„">Æûÿ¤"òÆûÿÄ"0Çûÿä"ÆÇûÿ#ŠÈûÿ$#ÝÈûÿD#ÍÉûÿd#Êûÿ„#qÊûÿ¤#¿ÊûÿÄ#‚Ëûÿä#=Ìûÿ$ŽÌûÿ$$_ÍûÿD$êÍûÿd$fÐûÿ„$¶Ðûÿ¤$ÓûÿÄ$`Óûÿä$®Óûÿ%âÚûÿ$%©ÞûÿD%ûÞûÿd%Mßûÿ„%*àûÿ¤%áûÿÄ%¡áûÿä%óáûÿ&Eâûÿ$&—âûÿD&éâûÿd&åûÿ„&Wåûÿ¤&•åûÿÄ&¨æûÿä&úæûÿ'Sçûÿ$'èûÿD'wéûÿd'Åéûÿ„'Bêûÿ¤'çëûÿÈ':ìûÿè'oìûÿ(Cíûÿ((ííûÿH(ïûÿh(‚ïûÿˆ(½ðûÿ¨(,ñûÿÈ(£ñûÿè(òûÿ)&òûÿ()�òûÿH)½óûÿh)Sôûÿˆ);õûÿ¨)�õûÿÈ)köûÿè) ÷ûÿ*Aøûÿ(*ìøûÿH*úûÿh* üûÿˆ* ýûÿ¨*‡ýûÿÈ*ðýûÿè*ñþûÿ+„ÿûÿ(+JüÿH+åüÿh+]üÿˆ+Ùüÿ¨+xüÿÈ+`üÿè+Ñüÿ,.üÿ(,‹üÿH,hüÿh,Óüÿˆ,& üÿ¨,• üÿÈ,» üÿè,6 üÿ-Ç üÿ(-2üÿH-üÿh-†üÿˆ--üÿ¨-(üÿÈ-küÿè-èüÿ. üÿ(.¬üÿH.Yüÿh.¾üÿˆ.Düÿ¨.RüÿÈ.`üÿè.nüÿ/|üÿ(/ŠüÿH/˜üÿh/¦üÿˆ/ùüÿ¨/.üÿÈ/üÿè/¬üÿ0Þüÿ(0AüÿH0|üÿh0ëüÿˆ0büÿ¨0ÚüÿÈ0åüÿè0\üÿ1|üÿ(1üÿH1úüÿh1\ üÿˆ1*!üÿ¨1Ê!üÿÈ1#üÿè1«#üÿ2Î$üÿ(2È&üÿH2ß'üÿh2F(üÿˆ2¯(üÿ¨2°)üÿÈ2C*üÿè2 +üÿ3¤+üÿ(3,üÿH3˜.üÿh37/üÿˆ30üÿ¨3�0üÿÈ3í1üÿè3J2üÿ4'3üÿ(4’3üÿH4å3üÿh4T4üÿˆ4z7üÿ¨4õ7üÿÈ4†8üÿè4ñ8üÿ5Î9üÿ(5E:üÿH5ì:üÿh5ç<üÿˆ5*>üÿ¨5–?üÿÈ5QAüÿè53Düÿ6”Düÿ(6ÒEüÿH6Iüÿl6½NüÿŒ6Püÿ¬6ÐPüÿÌ6ÊQüÿì6LWüÿ 7ŠWüÿ,7rXüÿL7JZüÿp7€[üÿ�7;\üÿ°7Ê\üÿÐ7Y]üÿð7‚^üÿ8{_üÿ48)`üÿT8×`üÿt8uaüÿ”8ãbüÿ´8QdüÿÔ8güÿô8oiüÿ9jüÿ49ðküÿX9Ònüÿx9 püÿ˜9špüÿ¸9ŸrüÿØ9­rüÿø9»rüÿ:Érüÿ8: süÿX:`süÿx:•süÿ˜:itüÿ¸:uüÿØ:Evüÿø:¨vüÿ;ãwüÿ8;RxüÿX;Éxüÿx;Ayüÿ˜;Lyüÿ¸;ÃyüÿØ;ãzüÿø;y{üÿ<a|üÿ8<Ã|üÿX<‘}üÿx<1~üÿ˜<güÿ¸<€üÿØ<5�üÿø</ƒüÿ=F„üÿ8=­„üÿX=…üÿx=†üÿ˜=ª†üÿ¸=p‡üÿØ= ˆüÿø=ƒˆüÿ>ÿŠüÿ8>ž‹üÿX>†Œüÿx>÷Œüÿ˜>TŽüÿ¸>±ŽüÿØ>Ž�üÿø>ù�üÿ?L�üÿ8?»�üÿX?á“üÿx?\”üÿ˜?í”üÿ¸?X•üÿØ?5–üÿø?¬–üÿ@S—üÿ8@N™üÿX@‘šüÿx@$›üÿ˜@"œüÿ¸@bœüÿØ@ìœüÿø@*�üÿA)žüÿ8AªžüÿXAdŸüÿxA$¡üÿ˜AQ¢üÿ¼AN£üÿÜA©£üÿB·£üÿ BÅ£üÿ@BÓ£üÿ`Bá£üÿ€Bï£üÿ Bý£üÿÀB ¤üÿàB¤üÿC'¤üÿ Ck¤üÿ@C¾¤üÿ`Có¤üÿ€CÇ¥üÿ Cq¦üÿÀC£§üÿàC¨üÿDA©üÿ D°©üÿ@D'ªüÿ`DŸªüÿ€Dªªüÿ D!«üÿÀDA¬üÿàD׬üÿE¿­üÿ E!®üÿ@Eï®üÿ`E�¯üÿ€EŰüÿ Ep±üÿÀE“²üÿàE�´üÿF¤µüÿ F ¶üÿ@Ft¶üÿ`Fu·üÿ€F¸üÿ FθüÿÀFi¹üÿàFá¹üÿG]¼üÿ Gü¼üÿ@Gä½üÿ`GU¾üÿ€G²¿üÿ GÀüÿÀGìÀüÿàGWÁüÿHªÁüÿ HÂüÿ@H?Åüÿ`HºÅüÿ€HKÆüÿ H¶ÆüÿÀH“ÇüÿàH ÈüÿI±Èüÿ I¬Êüÿ@IïËüÿ`IÊÐüÿ„IŸÑüÿ¤IBÒüÿÄIÀÔüÿäIµÖüÿJõÖüÿ(J×üÿHJ ØüÿhJIØüÿˆJÙüÿ¨JžÙüÿÈJ[ÛüÿèJˆÜüÿ K…Ýüÿ,KàÝüÿPKîÝüÿpKüÝüÿ�K Þüÿ°K]ÞüÿÐK’ÞüÿðKfßüÿLàüÿ0LBáüÿPL¥áüÿpLàâüÿ�LOãüÿ°LÆãüÿÐL>äüÿðLIäüÿMÀäüÿ0MàåüÿPMvæüÿpM^çüÿ�MÀçüÿ°MŽèüÿÐM.éüÿðMdêüÿNëüÿ0N2ìüÿPN,îüÿpNCïüÿ�Nªïüÿ°NðüÿÐNñüÿðN§ñüÿOmòüÿ0OóüÿPO€óüÿpOüõüÿ�O›öüÿ°Oƒ÷üÿÐOô÷üÿðOQùüÿP®ùüÿ0P‹úüÿPPöúüÿpPIûüÿ�P¸ûüÿ°PÞþüÿÐPYÿüÿðPêÿüÿQUýÿ0Q2ýÿPQ©ýÿpQPýÿ�QKýÿ°QŽýÿÐQýýÿðQãýÿR ýÿ4RÈ ýÿTR ýÿtR“ ýÿ”R ýÿ´R¸ ýÿÔR¬ ýÿôR± ýÿS�ýÿ8SýÿXS™ýÿxS>ýÿ˜S”ýÿ¸S¢ýÿÜSSýÿüSHýÿTýÿýÿ V^ýÿ@Vôýÿ`VÜýÿ€V> ýÿ V !ýÿÀV¬!ýÿàVâ"ýÿW�#ýÿ W°$ýÿ@Wª&ýÿ`WÁ'ýÿ€W((ýÿ W‘(ýÿÀW’)ýÿàW%*ýÿXë*ýÿ X†+ýÿ@Xþ+ýÿ`Xz.ýÿ€X/ýÿ X0ýÿÀXr0ýÿàXÏ1ýÿY,2ýÿ Y 3ýÿ@Yt3ýÿ`YÇ3ýÿ€Y64ýÿ Y\7ýÿÀY×7ýÿàYh8ýÿZÓ8ýÿ Z°9ýÿ@Z':ýÿ`ZÎ:ýÿ€ZÉ<ýÿ Z >ýÿÀZ5@ýÿàZP@ýÿ[Ž@ýÿ [ðAýÿ@[VBýÿ`[ÀBýÿ€[&Cýÿ [ŒCýÿÀ[‡Dýÿà[ýFýÿ\XGýÿ \fGýÿ@\tGýÿ`\‚Gýÿ€\ÕGýÿ \ HýÿÀ\ÞHýÿà\ˆIýÿ]ºJýÿ ]Kýÿ@]XLýÿ`]ÇLýÿ€]>Mýÿ ]¶MýÿÀ]ÁMýÿà]8Nýÿ^XOýÿ ^îOýÿ@^ÖPýÿ`^8Qýÿ€^Rýÿ ^¦RýÿÀ^ÜSýÿà^‡Týÿ_ªUýÿ _¤Wýÿ@_»Xýÿ`_"Yýÿ€_‹Yýÿ _ŒZýÿÀ_[ýÿà_å[ýÿ`€\ýÿ `ø\ýÿ@`t_ýÿ```ýÿ€`û`ýÿ `laýÿÀ`Ébýÿà`&cýÿadýÿ andýÿ@aÁdýÿ`a0eýÿ€aVhýÿ aÑhýÿÀabiýÿàaÍiýÿbªjýÿ b!kýÿ@bÈkýÿ`bÃmýÿ€boýÿ b3pýÿÄb0qýÿäb”qýÿcÒqýÿ$c\rýÿDcsýÿdc`sýÿ„ctýÿ¤cuýÿÄcÔuýÿèc/výÿd‚výÿ(d·výÿHd‹wýÿhd5xýÿˆdgyýÿ¨dÊyýÿÈd{ýÿèdt{ýÿeë{ýÿ(ec|ýÿHen|ýÿheå|ýÿˆe~ýÿ¨e›~ýÿÈeƒýÿèeåýÿf³€ýÿ(fS�ýÿHf‰‚ýÿhf4ƒýÿˆfW„ýÿ¨fQ†ýÿÈfh‡ýÿèfχýÿg8ˆýÿ(g9‰ýÿHg̉ýÿhg’Šýÿˆg-‹ýÿ¨g¥‹ýÿÈg!ŽýÿègÀŽýÿh¨�ýÿ(h�ýÿHhv‘ýÿhhÓ‘ýÿˆh°’ýÿ¨h“ýÿÈhn“ýÿèhÝ“ýÿi—ýÿ(i~—ýÿHi˜ýÿhiz˜ýÿˆiW™ýÿ¨iΙýÿÈiušýÿèipœýÿj³�ýÿ(j5žýÿHjU ýÿhj?­ýÿŒjT°ýÿ°j§°ýÿÐjܰýÿðj°±ýÿkZ²ýÿ0kŒ³ýÿPkï³ýÿpk*µýÿ�k™µýÿ°k¶ýÿÐkˆ¶ýÿðk“¶ýÿl ·ýÿ0l*¸ýÿPlÀ¸ýÿpl¨¹ýÿ�l ºýÿ°lغýÿÐlx»ýÿðl®¼ýÿmY½ýÿ0m|¾ýÿPmvÀýÿpm�Áýÿ�môÁýÿ°m]ÂýÿÐm^ÃýÿðmñÃýÿn·Äýÿ0nRÅýÿPnÊÅýÿpnFÈýÿ�nåÈýÿ°nÍÉýÿÐn>Êýÿðn›ËýÿoøËýÿ0oÕÌýÿPo@Íýÿpo“Íýÿ�oÎýÿ°o(ÑýÿÐo£Ñýÿðo4ÒýÿpŸÒýÿ0p|ÓýÿPpóÓýÿppšÔýÿ�p•Öýÿ°pØ×ýÿÐp˜Øýÿðp‡ÙýÿqÚýÿ0q¤ÚýÿPqäÛýÿpqƒÜýÿ�qÒÜýÿ°qÞýÿÐqPÞýÿðqÚÞýÿr*ßýÿ0rzßýÿPr5àýÿpr¶àýÿ�rXáýÿ°r¼áýÿÐr"âýÿðrˆâýÿsØâýÿ0sGãýÿPsäýÿps×äýÿ�s'åýÿ°swåýÿÐsÇåýÿðs‚æýÿtÞêýÿ0t1ëýÿPtfëýÿpt:ìýÿ�täìýÿ°tîýÿÐtyîýÿðt´ïýÿu#ðýÿ0ušðýÿPuñýÿpuñýÿ�u”ñýÿ°u´òýÿÐuJóýÿðu2ôýÿv”ôýÿ0vbõýÿPvöýÿpv8÷ýÿ�vã÷ýÿ°vùýÿÐvûýÿðvüýÿw~üýÿ0wçüýÿPwèýýÿpw{þýÿ�wAÿýÿ°wÜÿýÿÐwTþÿðwÐþÿxoþÿ0xWþÿPxÈþÿpx%þÿ�x‚þÿ°x_þÿÐxÊþÿðxþÿyŒþÿ0y² þÿPy- þÿpy¾ þÿ�y) þÿ°yþÿÐy}þÿðy$þÿzþÿ0zbþÿPz±þÿpzaþÿ�zþÿ°zgþÿÐzœþÿðzpþÿ{þÿ0{LþÿP{¯þÿp{êþÿ�{Yþÿ°{ÐþÿÐ{Hþÿð{Sþÿ|Êþÿ0|êþÿP|€ þÿp|h!þÿ�|Ê!þÿ°|˜"þÿÐ|8#þÿð|n$þÿ}%þÿ0}<&þÿP}6(þÿp}M)þÿ�}´)þÿ°}*þÿÐ}+þÿð}±+þÿ~w,þÿ0~-þÿP~Š-þÿp~0þÿ�~¥0þÿ°~�1þÿÐ~þ1þÿð~[3þÿ¸3þÿ0•4þÿP5þÿpS5þÿ�Â5þÿ°è8þÿÐc9þÿðô9þÿ€_:þÿ0€<;þÿP€³;þÿp€Z<þÿ�€U>þÿ°€˜?þÿЀð@þÿð€½Bþÿ�ÚCþÿ0�‡EþÿP�PFþÿp�xGþÿ��Hþÿ°�éHþÿÐ�DIþÿð�—Iþÿ‚ÌIþÿ0‚ JþÿP‚JKþÿp‚|Lþÿ�‚ßLþÿ°‚NþÿЂ‰Nþÿð‚OþÿƒxOþÿ0ƒƒOþÿPƒúOþÿpƒQþÿ�ƒ°Qþÿ°ƒ˜RþÿЃúRþÿðƒÈSþÿ„hTþÿ0„žUþÿP„IVþÿp„lWþÿ�„fYþÿ°„}ZþÿЄäZþÿð„M[þÿ…N\þÿ0…á\þÿP…§]þÿp…B^þÿ�…º^þÿ°…6aþÿÐ…Õaþÿð…½bþÿ†.cþÿ0†‹dþÿP†èdþÿp†Åeþÿ�†0fþÿ°†ƒfþÿІòfþÿð†jþÿ‡“jþÿ0‡$kþÿP‡�kþÿp‡llþÿ�‡ãlþÿ°‡ŠmþÿЇ…oþÿð‡Èpþÿˆ�qþÿ0ˆÍqþÿPˆ;rþÿpˆªrþÿ�ˆ sþÿ°ˆ„sþÿЈ?tþÿðˆ}tþÿ‰uþÿ0‰‘uþÿP‰øuþÿp‰†vþÿ�‰åvþÿ°‰5zþÿÔ‰™zþÿô‰ð}þÿŠa~þÿ8Š€þÿXŠq€þÿxŠæ€þÿ˜Šo�þÿ¸Š¼�þÿØŠÊ�þÿøŠØ�þÿ‹æ�þÿ8‹ô�þÿX‹‚þÿx‹‚þÿ˜‹‚þÿ¸‹b‚þÿØ‹µ‚þÿø‹ê‚þÿŒ¾ƒþÿ8Œh„þÿXŒš…þÿxŒý…þÿ˜Œ8‡þÿ¸Œ§‡þÿØŒˆþÿøŒ–ˆþÿ�¡ˆþÿ8�‰þÿX�8Šþÿx�Ίþÿ˜�¶‹þÿ¸�ŒþÿØ�æŒþÿø�†�þÿ޼Žþÿ8Žg�þÿXŽŠ�þÿxŽ„’þÿ˜Ž›“þÿ¸Ž”þÿØŽk”þÿøŽl•þÿ�ÿ•þÿ8�Å–þÿX�`—þÿx�Ø—þÿ˜�Tšþÿ¸�óšþÿØ�Û›þÿø�Lœþÿ�©�þÿ8�žþÿX�ãžþÿx�NŸþÿ˜�¡Ÿþÿ¸� þÿØ�6£þÿø�±£þÿ‘B¤þÿ8‘­¤þÿX‘Š¥þÿx‘¦þÿ˜‘¨¦þÿ¸‘£¨þÿØ‘æ©þÿø‘Bªþÿ’«þÿ8’ñ«þÿX’:¬þÿx’Q­þÿ˜’Ü®þÿ¸’´þÿÜ’pµþÿü’¶þÿ“ƶþÿ<“�·þÿ\“˸þÿ€“ ºþÿ “âºþÿÀ“º»þÿà“j½þÿ”·½þÿ ”÷¾þÿ@”Áþÿ`”¾Áþÿ€”=Âþÿ ”aÃþÿÀ”ÌÈþÿà” Éþÿ•pÊþÿ •ìÊþÿ@•Íþÿ`•UÍþÿ€•—Îþÿ •ƒÑþÿÀ•ûÑþÿà•²Òþÿ–Óþÿ –XÓþÿ@–�Ôþÿd–zÕþÿ„–ïÕþÿ¨–ýÕþÿÈ– Öþÿè–Öþÿ—lÖþÿ(—¡ÖþÿH—u×þÿh—Øþÿˆ—QÙþÿ¨—´ÙþÿÈ—ïÚþÿè—^Ûþÿ˜ÕÛþÿ(˜MÜþÿH˜XÜþÿh˜ÏÜþÿˆ˜ïÝþÿ¨˜…ÞþÿȘmßþÿè˜Ïßþÿ™�àþÿ(™=áþÿH™sâþÿh™ãþÿˆ™Aäþÿ¨™;æþÿÈ™Rçþÿ虹çþÿš"èþÿ(š#éþÿHš¶éþÿhš|êþÿˆšëþÿ¨š�ëþÿÈš îþÿ蚪îþÿ›’ïþÿ(›ðþÿH›`ñþÿh›½ñþÿˆ›šòþÿ¨›óþÿÈ›Xóþÿè›Çóþÿœíöþÿ(œh÷þÿHœù÷þÿhœdøþÿˆœAùþÿ¨œ¸ùþÿÈœ_úþÿèœZüþÿ��ýþÿ(�ÿþÿH�kÿÿh�éÿÿŒ�ªÿÿ¬�ÆÿÿÌ�ôÿÿì�›ÿÿ ž ÿÿ,ž˜ ÿÿLž* ÿÿlžN ÿÿŒž;ÿÿ°žyÿÿОaÿÿðžÿÿŸÐÿÿ0ŸëÿÿTŸ¼ÿÿtŸ ÿÿ”ŸzRx �$PõÿðSFJ w€?;*3$"D�¤õÿSA†C N d´¤õÿ5A†C p „ɤõÿÔA†C Ï ¤}¥õÿªA†C ¥ Ħõÿ2A†C - ä§õÿcA†C ^ \§õÿ;A†C 6 $w¨õÿoA†C j DƨõÿwA†C r d©õÿxA†C s „u©õÿ A†C F ¤`©õÿwA†C r Ä·©õÿ A†C  ä·ªõÿ–A†C ‘ -«õÿèA†C ã $õ«õÿbA†C ] D7¬õÿÎA†C É då¬õÿ A†C › „e­õÿ6A†C 1 ¤{®õÿ«A†C ¦ įõÿ#A†C  ä °õÿúA†C õ ã±õÿA†C  $Ú²õÿgA†C b D!³õÿiA†C d dj³õÿA†C ü „K´õÿ“A†C Ž ¤¾´õÿÆA†C Á Ädµõÿ›A†C – äßµõÿxA†C s 7¶õÿ|A†C w $“¸õÿŸA†C š D¹õÿèA†C ã dÚ¹õÿqA†C l „+ºõÿ]A†C X ¤h»õÿ]A†C X Ä¥»õÿÝA†C Ø äb¼õÿkA†C f ­¼õÿSA†C N $à¼õÿoA†C j D/½õÿ&A†C ! d5Àõÿ{A†C v „�Àõÿ‘A†C Œ ¤ÁõÿkA†C f ÄLÁõÿÝA†C Ø ä ÂõÿwA†C r `Âõÿ§A†C ¢ $çÂõÿûA†C ö DÂÄõÿCA†C > dåÅõÿúA†C õ „¿ÆõÿdA†C _ ¤ÈõÿLA†C G Ä/ÊõÿsA†C n ä‚ÊõÿeA†C ` ÇÊõÿÙA†C Ô $€ËõÿA†C S DxËõÿ�A†C Š dçËõÿoA†C j „6Ìõÿ©A†C ¤ ¤¿Ìõÿ…A†C € Ä$Íõÿ(A†C c ä,ÍõÿÈA†C à ÔÍõÿA†C O $ÈÍõÿ%A†C ` DÍÍõÿhA†C c dÎõÿ{A†C v „pÑõÿDA†C  ¤”ÑõÿSA†C N ÄÇÑõÿ5A†C p äÜÑõÿÔA†C Ï  �ÒõÿªA†C ¥ $ Óõÿ2A†C - D ,ÔõÿcA†C ^ d oÔõÿ;A†C 6 „ ŠÕõÿoA†C j ¤ ÙÕõÿwA†C r Ä 0ÖõÿxA†C s ä ˆÖõÿ A†C F  sÖõÿwA†C r $ ÊÖõÿ A†C  D Ê×õÿ–A†C ‘ d @ØõÿèA†C ã „ ÙõÿbA†C ] ¤ JÙõÿÎA†C É Ä øÙõÿ A†C › ä xÚõÿ6A†C 1  ŽÛõÿ«A†C ¦ $ Üõÿ#A†C  D ÝõÿúA†C õ d öÞõÿA†C  „ íßõÿgA†C b ¤ 4àõÿiA†C d Ä }àõÿA†C ü ä ^áõÿ“A†C Ž  ÑáõÿÆA†C Á $ wâõÿ›A†C – D òâõÿxA†C s d Jãõÿ|A†C w „ ¦åõÿŸA†C š ¤ %æõÿèA†C ã Ä íæõÿqA†C l ä >çõÿ]A†C X  {èõÿ]A†C X $ ¸èõÿÝA†C Ø D uéõÿkA†C f d ÀéõÿSA†C N „ óéõÿoA†C j ¤ Bêõÿ&A†C ! Ä Híõÿ{A†C v ä £íõÿ‘A†C Œ îõÿkA†C f $_îõÿÝA†C Ø DïõÿwA†C r dsïõÿ§A†C ¢ „úïõÿûA†C ö ¤ÕñõÿCA†C > ÄøòõÿJA†C E  ä"õõÿIA†C Eƒ? G÷õÿ‚A†C } (©ùõÿåA†C à Hnûõÿ¼A†C · h üõÿøA†C ó ˆâüõÿA†C  ¨ØýõÿUA†C P È ÿõÿrA†C m è_ÿõÿ£A†C ž âöÿ£A†C ž (eöÿJA†C E H�öÿ,A†C ' h›öÿA†C z ˆúöÿ>A†C y ¨öÿ°A†C « Ȩöÿ“A†C Ž èöÿÄA†C ¿ ¿öÿ@A†C { (ßöÿPA†C K Höÿ¥A†C   h”öÿ…A†C € ˆùöÿ…A†C € ¨^öÿÔA†C Ï ÈöÿzA†C u èlöÿ�A†C ˜ éöÿ>A†C y (öÿŠA†C … Hqöÿ|A†C w hÍöÿÊA†C Å ˆwöÿìA†C ç ¨CöÿSA†C N ÈvöÿúA†C õ èPöÿ2A†C - böÿ6A†C 1 (xöÿ»A†C ¶ H$öÿÑA†C Ì hÄ$öÿPA†C K  ˆô$öÿÆA†C Eƒ¼ ¬–%öÿ”A†C � Ì &öÿ>A†C y  ì(&öÿ*A†C Eƒ  .'öÿ A†C  0(öÿŠA†C … P‚(öÿLA†C G p®(öÿMA†C H �Û(öÿßA†C Ú °š)öÿþA†C ù Ðx*öÿ)A†C $ ð�+öÿ¦A†C ¡ ,öÿoA†C j 0V,öÿ A†C ›  PÖ-öÿ‰A†C „ t;.öÿSA†C N ”n.öÿ5A†C p ´ƒ.öÿÔA†C Ï Ô7/öÿªA†C ¥ ôÁ/öÿ2A†C - Ó0öÿcA†C ^ 41öÿ;A†C 6 T12öÿoA†C j t€2öÿwA†C r ”×2öÿxA†C s ´/3öÿ A†C F Ô3öÿwA†C r ôq3öÿ A†C  q4öÿ–A†C ‘ 4ç4öÿèA†C ã T¯5öÿbA†C ] tñ5öÿÎA†C É ”Ÿ6öÿ A†C › ´7öÿ6A†C 1 Ô58öÿ«A†C ¦ ôÀ8öÿ#A†C  Ã9öÿúA†C õ 4�;öÿA†C  T”<öÿgA†C b tÛ<öÿiA†C d ”$=öÿA†C ü ´>öÿ“A†C Ž Ôx>öÿÆA†C Á ô?öÿ›A†C – ™?öÿxA†C s 4ñ?öÿ|A†C w TMBöÿŸA†C š tÌBöÿèA†C ã ””CöÿqA†C l ´åCöÿ]A†C X Ô"Eöÿ]A†C X ô_EöÿÝA†C Ø FöÿkA†C f 4gFöÿSA†C N TšFöÿoA†C j téFöÿ&A†C ! ”ïIöÿ{A†C v ´JJöÿ‘A†C Œ Ô»JöÿkA†C f ôKöÿÝA†C Ø ÃKöÿwA†C r 4Löÿ§A†C ¢ T¡LöÿûA†C ö t|NöÿCA†C > ”ŸOöÿA†C J ´ŽOöÿºA†C µ Ô(Qöÿ£A†C ž ô«Röÿ™A†C ” $Söÿ]A†C X 4aSöÿsA†C n T´SöÿsA†C n tTöÿWA†C R ”>TöÿÎA†C É ´ìTöÿ*A†C e ÔöTöÿnA†C i ôDUöÿSA†C N wUöÿ5A†C p 4ŒUöÿÔA†C Ï T@VöÿªA†C ¥ tÊVöÿ2A†C - ”ÜWöÿcA†C ^ ´Xöÿ;A†C 6 Ô:YöÿoA†C j ô‰YöÿwA†C r àYöÿxA†C s 48Zöÿ A†C F T#ZöÿwA†C r tzZöÿ A†C  ”z[öÿ–A†C ‘ ´ð[öÿèA†C ã Ô¸\öÿbA†C ] ôú\öÿÎA†C É ¨]öÿ A†C › 4(^öÿ6A†C 1 T>_öÿ«A†C ¦ tÉ_öÿ#A†C  ”Ì`öÿúA†C õ ´¦böÿA†C  Ô�cöÿgA†C b ôäcöÿiA†C d  -döÿA†C ü 4 eöÿ“A†C Ž T �eöÿÆA†C Á t 'föÿ›A†C – ” ¢föÿxA†C s ´ úföÿ|A†C w Ô ViöÿŸA†C š ô ÕiöÿèA†C ã !�jöÿqA†C l 4!îjöÿ]A†C X T!+löÿ]A†C X t!hlöÿÝA†C Ø ”!%möÿkA†C f ´!pmöÿSA†C N Ô!£möÿoA†C j ô!òmöÿ&A†C ! "øpöÿ{A†C v 4"Sqöÿ‘A†C Œ T"ÄqöÿkA†C f t"röÿÝA†C Ø ”"ÌröÿwA†C r ´"#söÿ§A†C ¢ Ô"ªsöÿûA†C ö ô"…uöÿCA†C > #¨vöÿ A†C  4#‘wöÿ1A†C , T#¢xöÿ\A†C W t#ÞxöÿlA†C g ”#*yöÿ›A†C – ´#¥yöÿ›A†C – Ô# zöÿ›A†C – ô#›zöÿÎA†C É $I{öÿ…A†C € 4$®{öÿzA†C u T$~öÿgA†C b t$O€öÿ@A†C ; ”$o�öÿIA†C D ´$˜‚öÿA†C  Ô$ƒöÿâA†C Ý ô$A„öÿeA†C ` %†„öÿŒA†C ‡ 4%ò„öÿfA†C a T%8…öÿqA†C l t%‰…öÿØA†C Ó ”%A†öÿMA†C H ´%n†öÿŽA†C ‰ Ô%܆öÿ«A†C ¦ ô%g‡öÿ�A†C Š &Ö‡öÿA†C  4&ψöÿ£A†C ž T&R‰öÿ]A†C X t&�‰öÿøA†C ó ”&gŠöÿÆA†C Á ´& ‹öÿàA†C Û Ô&Í‹öÿ\A†C W ô& Œöÿ\A†C W 'EŒöÿÙA†C Ô 4'þŒöÿÉA†C Ä T'§�öÿ´A†C ¯ t';Žöÿ˜A†C “ ”'³Žöÿ­A†C ¨ ´'@�öÿSA†C N Ô's�öÿ5A†C p ô'ˆ�öÿÔA†C Ï (<�öÿªA†C ¥ 4(Æ�öÿ2A†C - T(Ø‘öÿcA†C ^ t(’öÿ;A†C 6 ”(6“öÿoA†C j ´(…“öÿwA†C r Ô(Ü“öÿxA†C s ô(4”öÿ A†C F )”öÿwA†C r 4)v”öÿ A†C  T)v•öÿ–A†C ‘ t)ì•öÿèA†C ã ”)´–öÿbA†C ] ´)ö–öÿÎA†C É Ô)¤—öÿ A†C › ô)$˜öÿ6A†C 1 *:™öÿ«A†C ¦ 4*Å™öÿ#A†C  T*ÈšöÿúA†C õ t*¢œöÿA†C  ”*™�öÿgA†C b ´*à�öÿiA†C d Ô*)žöÿA†C ü ô* Ÿöÿ“A†C Ž +}ŸöÿÆA†C Á 4+# öÿ›A†C – T+ž öÿxA†C s t+ö öÿ|A†C w ”+R£öÿŸA†C š ´+Ñ£öÿèA†C ã Ô+™¤öÿqA†C l ô+ê¤öÿ]A†C X ,'¦öÿ]A†C X 4,d¦öÿÝA†C Ø T,!§öÿkA†C f t,l§öÿSA†C N ”,Ÿ§öÿoA†C j ´,î§öÿ&A†C ! Ô,ôªöÿ{A†C v ô,O«öÿ‘A†C Œ -À«öÿkA†C f 4- ¬öÿÝA†C Ø T-ȬöÿwA†C r t-­öÿ§A†C ¢ ”-¦­öÿûA†C ö ´-�¯öÿCA†C > Ô-¤°öÿŠA†C … ô-±öÿuA†C p .c±öÿuA†C p 4.¸´öÿzA†C u T.¸öÿŽA†C ‰ t.€»öÿöA†C ñ ”.V¾öÿ”A†C � ´.ÊÀöÿ”A†C � Ô.>ÃöÿÌA†C Ç ô.êÄöÿ�A†C ˜ /gÆöÿÚA†C Õ 4/!ÉöÿÚA†C Õ T/ÛÊöÿ/A†C * t/êËöÿzA†C u ”/DÎöÿhA†C c ´/ŒÎöÿÈA†C à Ô/4Ñöÿ…A†C € ô/™Ñöÿ�A†C ˆ 0ÒöÿA†C I 40ôÑöÿA†C I T0âÑöÿA†C I t0ÐÑöÿA†C I ”0¾ÑöÿA†C I ´0¬ÑöÿA†C I Ô0šÑöÿA†C I ô0ˆÑöÿA†C I 1vÑöÿA†C I 41dÑöÿA†C I T1RÑöÿSA†C N t1…Ñöÿ5A†C p ”1šÑöÿÔA†C Ï ´1NÒöÿªA†C ¥ Ô1ØÒöÿ2A†C - ô1êÓöÿcA†C ^ 2-Ôöÿ;A†C 6 42HÕöÿoA†C j T2—ÕöÿwA†C r t2îÕöÿxA†C s ”2FÖöÿ A†C F ´21ÖöÿwA†C r Ô2ˆÖöÿ A†C  ô2ˆ×öÿ–A†C ‘ 3þ×öÿèA†C ã 43ÆØöÿbA†C ] T3ÙöÿÎA†C É t3¶Ùöÿ A†C › ”36Úöÿ6A†C 1 ´3LÛöÿ«A†C ¦ Ô3×Ûöÿ#A†C  ô3ÚÜöÿúA†C õ 4´ÞöÿA†C  44«ßöÿgA†C b T4òßöÿiA†C d t4;àöÿA†C ü ”4áöÿ“A†C Ž ´4�áöÿÆA†C Á Ô45âöÿ›A†C – ô4°âöÿxA†C s 5ãöÿ|A†C w 45dåöÿŸA†C š T5ãåöÿèA†C ã t5«æöÿqA†C l ”5üæöÿ]A†C X ´59èöÿ]A†C X Ô5vèöÿÝA†C Ø ô53éöÿkA†C f 6~éöÿSA†C N 46±éöÿoA†C j T6êöÿ&A†C ! t6íöÿ{A†C v ”6aíöÿ‘A†C Œ ´6ÒíöÿkA†C f Ô6îöÿÝA†C Ø ô6ÚîöÿwA†C r 71ïöÿ§A†C ¢ 47¸ïöÿûA†C ö T7“ñöÿCA†C > t7¶òöÿA†C I ”7¤òöÿ¨A†C £ ´7,ôöÿ�A†C ˜ Ô7©õöÿwA†C r ô7ööÿ½A†C ¸ 8�ööÿ3A†C . 48°÷öÿA†C   T8©øöÿLA†C EƒB  x8Ñùöÿ™A†C Eƒ� œ8FûöÿÿA†C ú ¼8%üöÿAA†C < Ü8FýöÿÞA†C Ù ü8þöÿA†C  9ýþöÿ”A†C �  <9qÿöÿÊA†C EƒÀ `9÷ÿcA†C ^ €9Z÷ÿŠA†C …  9Ä÷ÿžA†C ™  À9B÷ÿ¢A†C Eƒ˜ ä9À÷ÿæA†C á :†÷ÿ|A†C w $:â÷ÿÖA†C Ñ D:˜ ÷ÿ•A†C �  d: ÷ÿ A†C Eƒ– ˆ:‰ ÷ÿ†A†C �  ¨:ï ÷ÿ€A†C Eƒv  Ì:K÷ÿ²A†C Eƒ¨  ð:Ù÷ÿA†C Eƒü ;»÷ÿ>A†C y 4;Ù÷ÿýA†C ø T;¶÷ÿSA†C N t;é÷ÿ5A†C p ”;þ÷ÿÔA†C Ï ´;²÷ÿªA†C ¥ Ô;<÷ÿ2A†C - ô;N÷ÿcA†C ^ <‘÷ÿ;A†C 6 4<¬÷ÿoA†C j T<û÷ÿwA†C r t<R÷ÿxA†C s ”<ª÷ÿ A†C F ´<•÷ÿwA†C r Ô<ì÷ÿ A†C  ô<ì÷ÿ–A†C ‘ =b÷ÿèA†C ã 4=*÷ÿbA†C ] T=l÷ÿÎA†C É t=÷ÿ A†C › ”=š÷ÿ6A†C 1 ´=°÷ÿ«A†C ¦ Ô=;÷ÿ#A†C  ô=>÷ÿúA†C õ > ÷ÿA†C  4>!÷ÿgA†C b T>V!÷ÿiA†C d t>Ÿ!÷ÿA†C ü ”>€"÷ÿ“A†C Ž ´>ó"÷ÿÆA†C Á Ô>™#÷ÿ›A†C – ô>$÷ÿxA†C s ?l$÷ÿ|A†C w 4?È&÷ÿŸA†C š T?G'÷ÿèA†C ã t?(÷ÿqA†C l ”?`(÷ÿ]A†C X ´?�)÷ÿ]A†C X Ô?Ú)÷ÿÝA†C Ø ô?—*÷ÿkA†C f @â*÷ÿSA†C N 4@+÷ÿoA†C j T@d+÷ÿ&A†C ! t@j.÷ÿ{A†C v ”@Å.÷ÿ‘A†C Œ ´@6/÷ÿkA†C f Ô@�/÷ÿÝA†C Ø ô@>0÷ÿwA†C r A•0÷ÿ§A†C ¢ 4A1÷ÿûA†C ö TA÷2÷ÿCA†C > tA4÷ÿ>A†C y ”A84÷ÿhA†C c ´A€7÷ÿÌA†C Ç ÔA,8÷ÿ,A†C ' ôA89÷ÿ¾A†C ¹ BÖ9÷ÿ×A†C Ò 4B�<÷ÿsA†C n TBà<÷ÿSA†C N tB=÷ÿ5A†C p ”B(=÷ÿÔA†C Ï ´BÜ=÷ÿªA†C ¥ ÔBf>÷ÿ2A†C - ôBx?÷ÿcA†C ^ C»?÷ÿ;A†C 6 4CÖ@÷ÿoA†C j TC%A÷ÿwA†C r tC|A÷ÿxA†C s ”CÔA÷ÿ A†C F ´C¿A÷ÿwA†C r ÔCB÷ÿ A†C  ôCC÷ÿ–A†C ‘ DŒC÷ÿèA†C ã 4DTD÷ÿbA†C ] TD–D÷ÿÎA†C É tDDE÷ÿ A†C › ”DÄE÷ÿ6A†C 1 ´DÚF÷ÿ«A†C ¦ ÔDeG÷ÿ#A†C  ôDhH÷ÿúA†C õ EBJ÷ÿA†C  4E9K÷ÿgA†C b TE€K÷ÿiA†C d tEÉK÷ÿA†C ü ”EªL÷ÿ“A†C Ž ´EM÷ÿÆA†C Á ÔEÃM÷ÿ›A†C – ôE>N÷ÿxA†C s F–N÷ÿ|A†C w 4FòP÷ÿŸA†C š TFqQ÷ÿèA†C ã tF9R÷ÿqA†C l ”FŠR÷ÿ]A†C X ´FÇS÷ÿ]A†C X ÔFT÷ÿÝA†C Ø ôFÁT÷ÿkA†C f G U÷ÿSA†C N 4G?U÷ÿoA†C j TGŽU÷ÿ&A†C ! tG”X÷ÿ{A†C v ”GïX÷ÿ‘A†C Œ ´G`Y÷ÿkA†C f ÔG«Y÷ÿÝA†C Ø ôGhZ÷ÿwA†C r H¿Z÷ÿ§A†C ¢ 4HF[÷ÿûA†C ö TH!]÷ÿCA†C > tHD^÷ÿŠA†C … ”H®^÷ÿuA†C p ´H_÷ÿ?A†C : ÔH"`÷ÿ‹A†C † ôH�a÷ÿKA†C F I¸b÷ÿRA†C M 4Iêc÷ÿA†C û TIÊd÷ÿÌA†C Ç tIvf÷ÿA†C  ”Irg÷ÿ†A†C � ´IØh÷ÿvA†C q ÔI.i÷ÿA†C  ôIk÷ÿ_A†C Z JTk÷ÿ¸A†C ³  4Jìk÷ÿ/A†C Eƒ% XJ÷l÷ÿqA†C l xJHm÷ÿqA†C l ˜J™m÷ÿèA†C ã ¸Jan÷ÿ}A†C x ØJ¾n÷ÿA†C  øJ²o÷ÿºA†C µ  KLp÷ÿuA†C p  \Q’÷ÿ>A†C y |Q’÷ÿ2A†C - œQ1•÷ÿ‘A†C Œ ¼Q¢•÷ÿbA†C ] ÜQä–÷ÿ[A†C V üQ—÷ÿSA†C N RR—÷ÿ5A†C p  Xƒ¸÷ÿÞA†C Ù A†C y  XiÀ÷ÿ�A†C ˆ ÀXÖÀ÷ÿ„A†C  àX:Á÷ÿêA†C å YÂ÷ÿ§A†C ¢  Y‹Â÷ÿµA†C ° @Y Ã÷ÿçA†C â `YçÃ÷ÿcA†C ^ €Y*Ç÷ÿŠA†C …  Y”Ç÷ÿ°A†C « ÀY$È÷ÿ¥A†C   àY©È÷ÿæA†C á ZoÉ÷ÿRA†C M  Z¡Ê÷ÿÌA†C Ç @ZMË÷ÿA†C   `Z<Ì÷ÿÇA†C  €ZãÌ÷ÿA†C ý  ZÅÍ÷ÿÜA†C × ÀZ�Î÷ÿA†C z àZàÎ÷ÿúA†C õ [ºÐ÷ÿ]A†C X  [÷Ñ÷ÿVA†C EƒL D[)Ó÷ÿ(A†C # d[1Ô÷ÿsA†C n „[„Ô÷ÿ>A†C y ¤[¢Ô÷ÿ>A†C y Ä[ÀÔ÷ÿhA†C c ä[Ù÷ÿPA†C K \8Ù÷ÿA†C ÿ $\Ú÷ÿ‘A†C Œ D\�Ú÷ÿNA†C I d\»Ú÷ÿžA†C ™ „\9Û÷ÿøA†C ó ¤\Ü÷ÿ­A†C ¨ Ä\žÜ÷ÿìA†C ç ä\jÝ÷ÿçA†C â ]1Þ÷ÿŠA†C … $]›ß÷ÿ�A†C Š D] à÷ÿSA†C N d]=à÷ÿ5A†C p „]Rà÷ÿÔA†C Ï ¤]á÷ÿªA†C ¥ Ä]�á÷ÿ2A†C - ä]¢â÷ÿcA†C ^ ^åâ÷ÿ;A†C 6 $^ä÷ÿoA†C j D^Oä÷ÿwA†C r d^¦ä÷ÿxA†C s „^þä÷ÿ A†C F ¤^éä÷ÿwA†C r Ä^@å÷ÿ A†C  ä^@æ÷ÿ–A†C ‘ _¶æ÷ÿèA†C ã $_~ç÷ÿbA†C ] D_Àç÷ÿÎA†C É d_nè÷ÿ A†C › „_îè÷ÿ6A†C 1 ¤_ê÷ÿ«A†C ¦ Ä_�ê÷ÿ#A†C  ä_’ë÷ÿúA†C õ `lí÷ÿA†C  $`cî÷ÿgA†C b D`ªî÷ÿiA†C d d`óî÷ÿA†C ü „`Ôï÷ÿ“A†C Ž ¤`Gð÷ÿÆA†C Á Ä`íð÷ÿ›A†C – ä`hñ÷ÿxA†C s aÀñ÷ÿ|A†C w $aô÷ÿŸA†C š Da›ô÷ÿèA†C ã dacõ÷ÿqA†C l „a´õ÷ÿ]A†C X ¤añö÷ÿ]A†C X Äa.÷÷ÿÝA†C Ø äaë÷÷ÿkA†C f b6ø÷ÿSA†C N $biø÷ÿoA†C j Db¸ø÷ÿ&A†C ! db¾û÷ÿ{A†C v „bü÷ÿ‘A†C Œ ¤bŠü÷ÿkA†C f ÄbÕü÷ÿÝA†C Ø äb’ý÷ÿwA†C r céý÷ÿ§A†C ¢ $cpþ÷ÿûA†C ö DcKøÿCA†C >  dcnøÿ`A†C EƒV ˆcªøÿ«A†C ¦ ¨c5øÿ«A†C ¦ ÈcÀøÿRA†C M ècòøÿRA†C M d$øÿ A†C › (d¤øÿ`A†C [ Hdä øÿ>A†C y hd øÿÆA†C Á ˆd¨ øÿÆA†C Á ¨dN øÿ¡A†C œ ÈdÏ øÿRA†C M èd øÿRA†C M e3 øÿwA†C r (eŠ øÿMA†C H He· øÿÌA†C Ç hecøÿÌA†C Ç ˆeøÿ†A†C �  ¨euøÿ-A†C h Ìe~øÿSA†C N ìe±øÿ5A†C p  fÆøÿÔA†C Ï ,fzøÿªA†C ¥ Lføÿ2A†C - lføÿcA†C ^ ŒfYøÿ;A†C 6 ¬ftøÿoA†C j ÌfÃøÿwA†C r ìføÿxA†C s  grøÿ A†C F ,g]øÿwA†C r Lg´øÿ A†C  lg´øÿ–A†C ‘ Œg*øÿèA†C ã ¬gòøÿbA†C ] Ìg4øÿÎA†C É ìgâøÿ A†C ›  hbøÿ6A†C 1 ,hxøÿ«A†C ¦ Lhøÿ#A†C  lhøÿúA†C õ ŒhàøÿA†C  ¬h×øÿgA†C b ÌhøÿiA†C d ìhgøÿA†C ü  iH øÿ“A†C Ž ,i» øÿÆA†C Á Lia!øÿ›A†C – liÜ!øÿxA†C s Œi4"øÿ|A†C w ¬i�$øÿŸA†C š Ìi%øÿèA†C ã ìi×%øÿqA†C l  j(&øÿ]A†C X ,je'øÿ]A†C X Lj¢'øÿÝA†C Ø lj_(øÿkA†C f Œjª(øÿSA†C N ¬jÝ(øÿoA†C j Ìj,)øÿ&A†C ! ìj2,øÿ{A†C v  k�,øÿ‘A†C Œ ,kþ,øÿkA†C f LkI-øÿÝA†C Ø lk.øÿwA†C r Œk].øÿ§A†C ¢ ¬kä.øÿûA†C ö Ìk¿0øÿCA†C > ìkâ1øÿA†C   l×2øÿdA†C _ ,l3øÿÏA†C Ê LlÊ4øÿqA†C l ll5øÿºA†C µ Œlµ6øÿUA†C P ¬lê6øÿ[A†C V Ìl%7øÿSA†C N ìlX7øÿ5A†C p  mm7øÿÔA†C Ï ,m!8øÿªA†C ¥ Lm«8øÿ2A†C - lm½9øÿcA†C ^ Œm:øÿ;A†C 6 ¬m;øÿoA†C j Ìmj;øÿwA†C r ìmÁ;øÿxA†C s  n<øÿ A†C F ,n<øÿwA†C r Ln[<øÿ A†C  ln[=øÿ–A†C ‘ ŒnÑ=øÿèA†C ã ¬n™>øÿbA†C ] ÌnÛ>øÿÎA†C É ìn‰?øÿ A†C ›  o @øÿ6A†C 1 ,oAøÿ«A†C ¦ LoªAøÿ#A†C  lo­BøÿúA†C õ Œo‡DøÿA†C  ¬o~EøÿgA†C b ÌoÅEøÿiA†C d ìoFøÿA†C ü  pïFøÿ“A†C Ž ,pbGøÿÆA†C Á LpHøÿ›A†C – lpƒHøÿxA†C s ŒpÛHøÿ|A†C w ¬p7KøÿŸA†C š Ìp¶KøÿèA†C ã ìp~LøÿqA†C l  qÏLøÿ]A†C X ,q Nøÿ]A†C X LqINøÿÝA†C Ø lqOøÿkA†C f ŒqQOøÿSA†C N ¬q„OøÿoA†C j ÌqÓOøÿ&A†C ! ìqÙRøÿ{A†C v  r4Søÿ‘A†C Œ ,r¥SøÿkA†C f LrðSøÿÝA†C Ø lr­TøÿwA†C r ŒrUøÿ§A†C ¢ ¬r‹UøÿûA†C ö ÌrfWøÿCA†C > ìr‰Xøÿ?A†C z  s¨XøÿŠA†C … ,sYøÿÌA†C Ç Ls¾YøÿFA†C A lsäYøÿyA†C t Œs=ZøÿyA†C t ¬s–ZøÿÊA†C Å Ìs@[øÿ<A†C w ìs\[øÿDA†C   t€[øÿDA†C  ,t¤[øÿDA†C  LtÈ[øÿDA†C  ltì[øÿ5A†C p Œt\øÿTA†C O ¬t5\øÿbA†C ] Ìtw\øÿfA†C a ìt½\øÿdA†C _  u]øÿdA†C _ ,uE]øÿuA†C p Luš]øÿ˜A†C “ lu^øÿdA†C _ ŒuV^øÿdA†C _ ¬uš^øÿzA†C u Ìuô^øÿ‰A†C „ ìu]_øÿ‰A†C „  vÆ_øÿzA†C u ,v `øÿ‘A†C Œ Lv‘`øÿzA†C u lvë`øÿzA†C u ŒvEaøÿ–A†C ‘ ¬v»aøÿ–A†C ‘ Ìv1bøÿ–A†C ‘ ìv§bøÿ–A†C ‘  wcøÿzA†C u ,wwcøÿzA†C u LwÑcøÿzA†C u lw+døÿUA†C P Œw`døÿ}A†C x ¬w½døÿyA†C t Ìweøÿ4A†C o ìw*eøÿþA†C ù  xføÿSA†C N ,x;føÿ5A†C p LxPføÿÔA†C Ï lxgøÿªA†C ¥ ŒxŽgøÿ2A†C - ¬x høÿcA†C ^ Ìxãhøÿ;A†C 6 ìxþiøÿoA†C j  yMjøÿwA†C r ,y¤jøÿxA†C s Lyüjøÿ A†C F lyçjøÿwA†C r Œy>køÿ A†C  ¬y>løÿ–A†C ‘ Ìy´løÿèA†C ã ìy|møÿbA†C ]  z¾møÿÎA†C É ,zlnøÿ A†C › Lzìnøÿ6A†C 1 lzpøÿ«A†C ¦ Œz�pøÿ#A†C  ¬z�qøÿúA†C õ ÌzjsøÿA†C  ìzatøÿgA†C b  {¨tøÿiA†C d ,{ñtøÿA†C ü L{Òuøÿ“A†C Ž l{EvøÿÆA†C Á Œ{ëvøÿ›A†C – ¬{fwøÿxA†C s Ì{¾wøÿ|A†C w ì{zøÿŸA†C š  |™zøÿèA†C ã ,|a{øÿqA†C l L|²{øÿ]A†C X l|ï|øÿ]A†C X Œ|,}øÿÝA†C Ø ¬|é}øÿkA†C f Ì|4~øÿSA†C N ì|g~øÿoA†C j  }¶~øÿ&A†C ! ,}¼�øÿ{A†C v L}‚øÿ‘A†C Œ l}ˆ‚øÿkA†C f Œ}Ó‚øÿÝA†C Ø ¬}�ƒøÿwA†C r Ì}çƒøÿ§A†C ¢ ì}n„øÿûA†C ö  ~I†øÿCA†C > ,~l‡øÿìA†C ç L~8ˆøÿ A†C  l~"‰øÿ>A†C y Œ~@‰øÿ�A†C Š ¬~¯‰øÿ¥A†C   Ì~4ŠøÿA†C  ì~1Œøÿ3A†C n  DŒøÿ2A†C m ,VŒøÿ_A†C Z L•Œøÿ¥A†C   l�øÿ›A†C – Œ•�øÿSA†C N ¬È�øÿ5A†C p ÌÝ�øÿÔA†C Ï ì‘ŽøÿªA†C ¥  €�øÿ2A†C - ,€-�øÿcA†C ^ L€p�øÿ;A†C 6 l€‹‘øÿoA†C j Œ€Ú‘øÿwA†C r ¬€1’øÿxA†C s Ì€‰’øÿ A†C F ì€t’øÿwA†C r  �Ë’øÿ A†C  ,�Ë“øÿ–A†C ‘ L�A”øÿèA†C ã l� •øÿbA†C ] Œ�K•øÿÎA†C É ¬�ù•øÿ A†C › Ì�y–øÿ6A†C 1 ì��—øÿ«A†C ¦  ‚˜øÿ#A†C  ,‚™øÿúA†C õ L‚÷šøÿA†C  l‚î›øÿgA†C b Œ‚5œøÿiA†C d ¬‚~œøÿA†C ü Ì‚_�øÿ“A†C Ž ì‚Ò�øÿÆA†C Á  ƒxžøÿ›A†C – ,ƒóžøÿxA†C s LƒKŸøÿ|A†C w lƒ§¡øÿŸA†C š Œƒ&¢øÿèA†C ã ¬ƒî¢øÿqA†C l ̃?£øÿ]A†C X ìƒ|¤øÿ]A†C X  „¹¤øÿÝA†C Ø ,„v¥øÿkA†C f L„Á¥øÿSA†C N l„ô¥øÿoA†C j Œ„C¦øÿ&A†C ! ¬„I©øÿ{A†C v Ì„¤©øÿ‘A†C Œ 섪øÿkA†C f  …`ªøÿÝA†C Ø ,…«øÿwA†C r L…t«øÿ§A†C ¢ l…û«øÿûA†C ö Œ…Ö­øÿCA†C > ¬…ù®øÿËA†C Æ Ì…¤¯øÿ^A†C Y ì…â¯øÿƒA†C ~  †E±øÿQA†C L ,†v±øÿƒA†C ~ L†Ù²øÿQA†C L l† ³øÿ#A†C  Œ† ´øÿsA†C n ¬†`´øÿ1A†C l ̆q´øÿÑA†C Ì ì†"µøÿªA†C ¥  ‡¬µøÿçA†C â ,‡s¶øÿ6A†C q L‡‰¶øÿ>A†C y l‡§¶øÿºA†C µ Œ‡A·øÿ£A†C ž ¬‡Ä·øÿA†C I ̇²·øÿA†C I 쇠·øÿA†C I  ˆŽ·øÿDA†C  ,ˆ²·øÿSA†C N Lˆå·øÿ5A†C p lˆú·øÿÔA†C Ï Œˆ®¸øÿªA†C ¥ ¬ˆ8¹øÿ2A†C - ̈JºøÿcA†C ^ ìˆ�ºøÿ;A†C 6  ‰¨»øÿoA†C j ,‰÷»øÿwA†C r L‰N¼øÿxA†C s l‰¦¼øÿ A†C F Œ‰‘¼øÿwA†C r ¬‰è¼øÿ A†C  Ì‰è½øÿ–A†C ‘ ì‰^¾øÿèA†C ã  Š&¿øÿbA†C ] ,Šh¿øÿÎA†C É LŠÀøÿ A†C › lŠ–Àøÿ6A†C 1 ŒŠ¬Áøÿ«A†C ¦ ¬Š7Âøÿ#A†C  ÌŠ:ÃøÿúA†C õ ìŠÅøÿA†C   ‹ ÆøÿgA†C b ,‹RÆøÿiA†C d L‹›ÆøÿA†C ü l‹|Çøÿ“A†C Ž Œ‹ïÇøÿÆA†C Á ¬‹•Èøÿ›A†C – Ì‹ÉøÿxA†C s ì‹hÉøÿ|A†C w  ŒÄËøÿŸA†C š ,ŒCÌøÿèA†C ã LŒ ÍøÿqA†C l lŒ\Íøÿ]A†C X ŒŒ™Îøÿ]A†C X ¬ŒÖÎøÿÝA†C Ø ÌŒ“ÏøÿkA†C f ìŒÞÏøÿSA†C N  �ÐøÿoA†C j ,�`Ðøÿ&A†C ! L�fÓøÿ{A†C v l�ÁÓøÿ‘A†C Œ Œ�2ÔøÿkA†C f ¬�}ÔøÿÝA†C Ø Ì�:ÕøÿwA†C r ì�‘Õøÿ§A†C ¢  ŽÖøÿûA†C ö ,Žó×øÿCA†C > LŽÙøÿºA†C µ lŽ°Úøÿ>A†C y ŒŽÎÚøÿÉA†C Ä ¬ŽwÛøÿA†C  ÌŽqÜøÿA†C  ìŽkÝøÿwA†C r  �ÂÝøÿ˜A†C “ ,�:ßøÿéA†C ä L�àøÿ™A†C ” l�|àøÿ@A†C ; Œ�œáøÿ>A†C y ¬�ºáøÿRA†C M  Ì�ìáøÿ~A†C Eƒt ð�FãøÿA†C   �8åøÿ™A†C ” 0�±åøÿÅA†C À P�VéøÿSA†C N p�‰éøÿ5A†C 0 ��žëøÿ™A†C ” °�ìøÿA†C    Ð�íøÿA†C Eƒ ô�ûñøÿsA†C n ‘Nòøÿ»A†C ¶ 4‘éòøÿ>A†C y T‘óøÿ'A†C " t‘ôøÿgA†C b ”‘Uõøÿ>A†C y ´‘sõøÿõA†C ð Ô‘HöøÿA†C I ô‘6öøÿA†C I ’$öøÿA†C I 4’öøÿSA†C N T’Eöøÿ5A†C p t’ZöøÿÔA†C Ï ”’÷øÿªA†C ¥ ´’˜÷øÿ2A†C - Ô’ªøøÿcA†C ^ ô’íøøÿ;A†C 6 “úøÿoA†C j 4“WúøÿwA†C r T“®úøÿxA†C s t“ûøÿ A†C F ”“ñúøÿwA†C r ´“Hûøÿ A†C  Ô“Hüøÿ–A†C ‘ ô“¾üøÿèA†C ã ”†ýøÿbA†C ] 4”ÈýøÿÎA†C É T”vþøÿ A†C › t”öþøÿ6A†C 1 ”” ùÿ«A†C ¦ ´”—ùÿ#A†C  Ô”šùÿúA†C õ ô”tùÿA†C  •kùÿgA†C b 4•²ùÿiA†C d T•ûùÿA†C ü t•Üùÿ“A†C Ž ”•OùÿÆA†C Á ´•õùÿ›A†C – Ô•pùÿxA†C s ô•Èùÿ|A†C w –$ ùÿŸA†C š 4–£ ùÿèA†C ã T–k ùÿqA†C l t–¼ ùÿ]A†C X ”–ù ùÿ]A†C X ´–6 ùÿÝA†C Ø Ô–ó ùÿkA†C f ô–>ùÿSA†C N —qùÿoA†C j 4—Àùÿ&A†C ! T—Æùÿ{A†C v t—!ùÿ‘A†C Œ ”—’ùÿkA†C f ´—ÝùÿÝA†C Ø Ô—šùÿwA†C r ô—ñùÿ§A†C ¢ ˜xùÿûA†C ö 4˜SùÿCA†C > T˜vùÿMA†C H t˜£ùÿ­A†C ¨ ”˜0ùÿ¢A†C � ´˜²ùÿZA†C U Ô˜ìùÿšA†C • ô˜fùÿA†C  ™NùÿŠA†C … 4™¸ùÿ>A†C y T™ÖùÿáA†C Ü t™—ùÿôA†C ï ”™kùÿõA†C ð ´™@ùÿõA†C ð Ô™ ùÿŠA†C … ô™ ùÿ>A†C y š� ùÿ¢A†C � 4š!ùÿ­A†C ¨ Tš¬!ùÿA†C ý tšŽ"ùÿPA†C K ”š¾"ùÿPA†C K ´šî"ùÿ¯A†C ª Ôš}#ùÿPA†C K ôš­#ùÿUA†C P ›â#ùÿA†C  4›É$ùÿNA†C I T›÷$ùÿPA†C K t›'%ùÿPA†C K ”›W%ùÿjA†C e ´›¡%ùÿ>A†C y Ô›¿%ùÿ­A†C ¨ ô›L&ùÿŸA†C š œË&ùÿ¦A†C ¡ 4œQ'ùÿ®A†C © Tœß)ùÿ_A†C Z tœ+ùÿŠA†C … ”œˆ+ùÿŸA†C š ´œ,ùÿðA†C ë Ôœ×,ùÿºA†C µ ôœq-ùÿ¤A†C Ÿ �õ-ùÿA†C   4�æ.ùÿ�A†C Š T�U/ùÿŽA†C ‰ t�Ã/ùÿ™A†C ” ”�<0ùÿ¬A†C § ´�È2ùÿ>A†C y Ô�æ2ùÿ>A†C y ô�3ùÿŠA†C … žn3ùÿµA†C ° 4ž4ùÿ¯A†C ª Tž’4ùÿ�A†C | tžó5ùÿ¯A†C ª ”ž‚6ùÿÇA†C  ´ž)7ùÿèA†C ã  Ôžñ7ùÿ˜A†C EƒŽ øže8ùÿzA†C u Ÿ¿8ùÿœA†C — 8Ÿ;:ùÿ’A†C � XŸ­:ùÿ€A†C { xŸ ;ùÿWA†C R ˜ŸD;ùÿ§A†C ¢ ¸ŸË<ùÿ¯A†C ª ØŸZ=ùÿŸA†C š øŸÙ=ùÿáA†C Ü  š?ùÿA†C   8 ˆ@ùÿÌA†C Ç X 4BùÿA†C   x "CùÿYA†C T ˜ [DùÿpA†C k ¸ «Dùÿ¼A†C · Ø GEùÿZA†C U ø �Eùÿ˜A†C “ ¡ùEùÿJA†C E 8¡#FùÿšA†C •  X¡�GùÿA†C   |¡ˆHùÿA†C I œ¡vHùÿA†C I ¼¡dHùÿSA†C N Ü¡—Hùÿ5A†C p ü¡¬HùÿÔA†C Ï ¢`IùÿªA†C ¥ <¢êIùÿ2A†C - \¢üJùÿcA†C ^ |¢?Kùÿ;A†C 6 œ¢ZLùÿoA†C j ¼¢©LùÿwA†C r Ü¢MùÿxA†C s ü¢XMùÿ A†C F £CMùÿwA†C r <£šMùÿ A†C  \£šNùÿ–A†C ‘ |£OùÿèA†C ã œ£ØOùÿbA†C ] ¼£PùÿÎA†C É Ü£ÈPùÿ A†C › ü£HQùÿ6A†C 1 ¤^Rùÿ«A†C ¦ <¤éRùÿ#A†C  \¤ìSùÿúA†C õ |¤ÆUùÿA†C  œ¤½VùÿgA†C b ¼¤WùÿiA†C d ܤMWùÿA†C ü ü¤.Xùÿ“A†C Ž ¥¡XùÿÆA†C Á <¥GYùÿ›A†C – \¥ÂYùÿxA†C s |¥Zùÿ|A†C w œ¥v\ùÿŸA†C š ¼¥õ\ùÿèA†C ã Ü¥½]ùÿqA†C l ü¥^ùÿ]A†C X ¦K_ùÿ]A†C X <¦ˆ_ùÿÝA†C Ø \¦E`ùÿkA†C f |¦�`ùÿSA†C N œ¦Ã`ùÿoA†C j ¼¦aùÿ&A†C ! ܦdùÿ{A†C v ü¦sdùÿ‘A†C Œ §ädùÿkA†C f <§/eùÿÝA†C Ø \§ìeùÿwA†C r |§Cfùÿ§A†C ¢ œ§ÊfùÿûA†C ö ¼§¥hùÿCA†C >  ܧÈiùÿÝA†C EƒÓ  ¨�lùÿ6A†C Eƒ, $¨“nùÿAA†C | D¨´nùÿA†C I d¨¢nùÿA†C I „¨�nùÿA†C I ¤¨~nùÿSA†C N Ĩ±nùÿ5A†C p 䍯nùÿÔA†C Ï ©zoùÿªA†C ¥ $©pùÿ2A†C - D©qùÿcA†C ^ d©Yqùÿ;A†C 6 „©trùÿoA†C j ¤©ÃrùÿwA†C r Ä©sùÿxA†C s ä©rsùÿ A†C F ª]sùÿwA†C r $ª´sùÿ A†C  Dª´tùÿ–A†C ‘ dª*uùÿèA†C ã „ªòuùÿbA†C ] ¤ª4vùÿÎA†C É Īâvùÿ A†C › äªbwùÿ6A†C 1 «xxùÿ«A†C ¦ $«yùÿ#A†C  D«zùÿúA†C õ d«à{ùÿA†C  „«×|ùÿgA†C b ¤«}ùÿiA†C d Ä«g}ùÿA†C ü ä«H~ùÿ“A†C Ž ¬»~ùÿÆA†C Á $¬aùÿ›A†C – D¬ÜùÿxA†C s d¬4€ùÿ|A†C w „¬�‚ùÿŸA†C 𠤬ƒùÿèA†C ã Ĭ׃ùÿqA†C l ä¬(„ùÿ]A†C X ­e…ùÿ]A†C X $­¢…ùÿÝA†C Ø D­_†ùÿkA†C f d­ª†ùÿSA†C N „­Ý†ùÿoA†C j ¤­,‡ùÿ&A†C ! Ä­2Šùÿ{A†C v ä­�Šùÿ‘A†C Œ ®þŠùÿkA†C f $®I‹ùÿÝA†C Ø D®ŒùÿwA†C r d®]Œùÿ§A†C ¢ „®äŒùÿûA†C ö ¤®¿ŽùÿCA†C > Ä®â�ùÿÛA†C Ö ä®�‘ùÿ„A†C   ¯“ùÿaA†C EƒW (¯>”ùÿ~A†C y H¯œ”ùÿ•A†C �  h¯–ùÿ¯A†C Eƒ¥  Œ¯œ—ùÿûA†C Eƒñ  °¯s™ùÿ1A†C Eƒ' Ô¯€šùÿA†C  ô¯u›ùÿ>A†C y °“›ùÿpA†C k 4°ãœùÿ>A†C 9 T°¡ùÿ©A†C ¤ t°Š¡ùÿ A†C  ”°u¦ùÿsA†C n ´°È¦ùÿ–A†C ‘ Ô°>§ùÿsA†C n ô°‘§ùÿSA†C N ±Ä§ùÿ5A†C p 4±Ù§ùÿÔA†C Ï T±�¨ùÿªA†C ¥ t±©ùÿ2A†C - ”±)ªùÿcA†C ^ ´±lªùÿ;A†C 6 Ô±‡«ùÿoA†C j ô±Ö«ùÿwA†C r ²-¬ùÿxA†C s 4²…¬ùÿ A†C F T²p¬ùÿwA†C r t²Ç¬ùÿ A†C  ”²Ç­ùÿ–A†C ‘ ´²=®ùÿèA†C ã Ô²¯ùÿbA†C ] ô²G¯ùÿÎA†C É ³õ¯ùÿ A†C › 4³u°ùÿ6A†C 1 T³‹±ùÿ«A†C ¦ t³²ùÿ#A†C  ”³³ùÿúA†C õ ´³ó´ùÿA†C  Ô³êµùÿgA†C b ô³1¶ùÿiA†C d ´z¶ùÿA†C ü 4´[·ùÿ“A†C Ž T´Î·ùÿÆA†C Á t´t¸ùÿ›A†C – ”´ï¸ùÿxA†C s ´´G¹ùÿ|A†C w Ô´£»ùÿŸA†C š ô´"¼ùÿèA†C ã µê¼ùÿqA†C l 4µ;½ùÿ]A†C X Tµx¾ùÿ]A†C X tµµ¾ùÿÝA†C Ø ”µr¿ùÿkA†C f ´µ½¿ùÿSA†C N Ôµð¿ùÿoA†C j ôµ?Àùÿ&A†C ! ¶EÃùÿ{A†C v 4¶ Ãùÿ‘A†C Œ T¶ÄùÿkA†C f t¶\ÄùÿÝA†C Ø ”¶ÅùÿwA†C r ´¶pÅùÿ§A†C ¢ Ô¶÷ÅùÿûA†C ö ô¶ÒÇùÿCA†C > ·õÈùÿÔA†C Ï 4·©ÊùÿˆA†C ƒ T·Ëùÿ†A†C � t·wÐùÿ®A†C © ”·Òùÿ#A†C   ´·íùÿOA†C EƒE Ø·3òùÿ>A†C y ø·QòùÿiA†C d ¸šòùÿaA†C \ 8¸Ûòùÿ¨A†C £ X¸cöùÿ­A†C ¨ x¸ð÷ùÿ­A†C ¨ ˜¸}ùùÿyA†C t ¸¸Öùùÿ A†C  ظÀûùÿA†C   ø¸±üùÿ4A†C / ¹Åýùÿ>A†C y 8¹ãýùÿ&A†C ! X¹éþùÿžA†C ™ x¹gÿùÿfA†C a ˜¹­ÿùÿfA†C a ¸¹óÿùÿfA†C a ع9úÿfA†C a ø¹úÿ¾A†C ¹ ºúÿéA†C ä 8ºæúÿ®A†C © XºtúÿéA†C ä xº=úÿ8A†C 3 ˜ºUúÿoA†C j ¸º¤úÿóA†C î  غw úÿ!A†C Hƒ üºtúÿÛA†C Ö  »/úÿ†A†C Hƒy @»‘úÿÙA†C Ô `»Júÿ®A†C © €»ØúÿPA†C K  »úÿÙA†C Ô À»Áúÿ®A†C © à»OúÿWA†C R ¼†úÿÍA†C È  ¼3úÿYA†C T  @¼lúÿýA†C ø d¼EúÿSA†C N „¼xúÿ5A†C p ¤¼�úÿÔA†C Ï ļAúÿªA†C ¥ ä¼Ëúÿ2A†C - ½ÝúÿcA†C ^ $½ úÿ;A†C 6 D½;!úÿoA†C j d½Š!úÿwA†C r „½á!úÿxA†C s ¤½9"úÿ A†C F Ľ$"úÿwA†C r ä½{"úÿ A†C  ¾{#úÿ–A†C ‘ $¾ñ#úÿèA†C ã D¾¹$úÿbA†C ] d¾û$úÿÎA†C É „¾©%úÿ A†C › ¤¾)&úÿ6A†C 1 ľ?'úÿ«A†C ¦ ä¾Ê'úÿ#A†C  ¿Í(úÿúA†C õ $¿§*úÿA†C  D¿ž+úÿgA†C b d¿å+úÿiA†C d „¿.,úÿA†C ü ¤¿-úÿ“A†C Ž Ä¿‚-úÿÆA†C Á ä¿(.úÿ›A†C – À£.úÿxA†C s $Àû.úÿ|A†C w DÀW1úÿŸA†C š dÀÖ1úÿèA†C ã „Àž2úÿqA†C l ¤Àï2úÿ]A†C X ÄÀ,4úÿ]A†C X äÀi4úÿÝA†C Ø Á&5úÿkA†C f $Áq5úÿSA†C N DÁ¤5úÿoA†C j dÁó5úÿ&A†C ! „Áù8úÿ{A†C v ¤ÁT9úÿ‘A†C Œ ÄÁÅ9úÿkA†C f äÁ:úÿÝA†C Ø ÂÍ:úÿwA†C r $Â$;úÿ§A†C ¢ D«;úÿûA†C ö d†=úÿCA†C > „©>úÿ>A†C y ¤ÂÇ>úÿXA†C S ÄÂÿ>úÿNA†C I äÂ-?úÿPA†C K Ã]?úÿcA†C ^ $à@úÿcA†C ^  DÃãAúÿ-A†C Eƒ#  hÃìBúÿàA†C GŒƒÔ ŒÃ¨Cúÿ‡A†C ‚ ¬ÃIúÿüA†C ÷ ÌÃëIúÿA†C ý ìÃÍJúÿ—A†C ’  ÄDKúÿKA†C F ,ÄoLúÿzA†C u LÄÉLúÿ‹A†C † lÄ4MúÿŒA†C ‡ ŒÄ PúÿLA†C G ¬ÄÌTúÿ[A†C V ÌÄUúÿDA†C  ìÄ+UúÿSA†C N  Å^Uúÿ5A†C p ,ÅsUúÿÔA†C Ï LÅ'VúÿªA†C ¥ lűVúÿ2A†C - ŒÅÃWúÿcA†C ^ ¬ÅXúÿ;A†C 6 ÌÅ!YúÿoA†C j ìÅpYúÿwA†C r  ÆÇYúÿxA†C s ,ÆZúÿ A†C F LÆ ZúÿwA†C r lÆaZúÿ A†C  ŒÆa[úÿ–A†C ‘ ¬Æ×[úÿèA†C ã ÌÆŸ\úÿbA†C ] ìÆá\úÿÎA†C É  Ç�]úÿ A†C › ,Ç^úÿ6A†C 1 LÇ%_úÿ«A†C ¦ lǰ_úÿ#A†C  ŒÇ³`úÿúA†C õ ¬Ç�búÿA†C  ÌÇ„cúÿgA†C b ìÇËcúÿiA†C d  ÈdúÿA†C ü ,Èõdúÿ“A†C Ž LÈheúÿÆA†C Á lÈfúÿ›A†C – ŒÈ‰fúÿxA†C s ¬Èáfúÿ|A†C w ÌÈ=iúÿŸA†C š ìȼiúÿèA†C ã  É„júÿqA†C l ,ÉÕjúÿ]A†C X LÉlúÿ]A†C X lÉOlúÿÝA†C Ø ŒÉ múÿkA†C f ¬ÉWmúÿSA†C N ÌÉŠmúÿoA†C j ìÉÙmúÿ&A†C !  Êßpúÿ{A†C v ,Ê:qúÿ‘A†C Œ LÊ«qúÿkA†C f lÊöqúÿÝA†C Ø ŒÊ³rúÿwA†C r ¬Ê súÿ§A†C ¢ ÌÊ‘súÿûA†C ö ìÊluúÿCA†C >  Ë�vúÿÆA†C Á ,Ë5{úÿ«A†C ¦ LËÀ{úÿ¥A†C   lËE|úÿdA†C _ ŒË‰|úÿA†C û ¬Ëi}úÿA†C  ÌËN~úÿdA†C _ ìË’úÿQA†C L  ÌÃúÿ¬A†C § ,ÌO€úÿ¯A†C ª LÌÞ�úÿ}A†C x lÌ;„úÿ}A†C x ŒÌ˜…úÿ˜A†C “ ¬Ì†úÿÔA†C Ï ÌÌĆúÿ A†C  ìÌ®‡úÿsA†C n  ͈úÿ A†C › ,Í�ŠúÿA†C   LÍrŒúÿ‘A†C Œ lÍãŒúÿ~A†C y ŒÍA�úÿ_A†C Z ¬Í€�úÿ.A†C ) ÌÍŽ’úÿA†C z ìÍí’úÿçA†C â  δ”úÿ¢A†C � ,Î6•úÿ€A†C { LΖ–úÿÙA†C Ô lÎO—úÿ¸A†C ³  ŒÎç˜úÿrA†C Eƒh °Î5›úÿêA†C å ÐÎÿ›úÿxA†C s ðÎW�úÿZA†C U Ï‘�úÿ"A†C  0Ï“žúÿÁA†C ¼ PÏ4¢úÿ•A†C � pÏ©¢úÿuA†C p �Ïþ¢úÿ´A†C ¯ °Ï’£úÿ´A†C ¯ ÐÏ&¤úÿ>A†C y ðÏD¤úÿ–A†C ‘ к¤úÿÄA†C ¿ 0Ð^¥úÿSA†C N PБ¥úÿðA†C ë pÐa¦úÿRA†C M �Г¦úÿRA†C M °ÐŦúÿNA†C I ÐÐó¦úÿÃA†C ¾ ðЖ§úÿ»A†C ¶ Ñ1¨úÿQA†C L 0Ñb¨úÿÑA†C Ì PÑ©úÿ‹A†C † pÑ~©úÿ|A†C w �ÑÚ«úÿPA†C K °Ñ ¬úÿZA†C U ÐÑD®úÿPA†C K ðÑt®úÿNA†C I Ò¢®úÿ4A†C / 0Ò¶µúÿÇA†C  PÒ]¹úÿRA†C M pÒ�¹úÿRA†C M �ÒÁ¹úÿÝA†C Ø °Ò~ºúÿÝA†C Ø ÐÒ;»úÿšA†C • ðÒµ»úÿRA†C M Óç»úÿRA†C M 0Ó¼úÿRA†C M PÓK¼úÿRA†C M pÓ}¼úÿ0A†C + �Ó�¾úÿ>A†C y °Ó«¾úÿ>A†C y ÐÓɾúÿA†C  ðÓ¼¿úÿRA†C M Ôî¿úÿYA†C T 0Ô'ÀúÿÃA†C ¾ PÔÊÀúÿaA†C \ pÔ ÂúÿNA†C I �Ô9Âúÿ}A†C x  °Ô–Âúÿ¥A†C   ÔÔÄúÿSA†C N ôÔJÄúÿ5A†C p Õ_ÄúÿÔA†C Ï 4ÕÅúÿªA†C ¥ TÕ�Åúÿ2A†C - tÕ¯ÆúÿcA†C ^ ”ÕòÆúÿ;A†C 6 ´Õ ÈúÿoA†C j ÔÕ\ÈúÿwA†C r ôÕ³ÈúÿxA†C s Ö Éúÿ A†C F 4ÖöÈúÿwA†C r TÖMÉúÿ A†C  tÖMÊúÿ–A†C ‘ ”ÖÃÊúÿèA†C ã ´Ö‹ËúÿbA†C ] ÔÖÍËúÿÎA†C É ôÖ{Ìúÿ A†C › ×ûÌúÿ6A†C 1 4×Îúÿ«A†C ¦ TלÎúÿ#A†C  tןÏúÿúA†C õ ”×yÑúÿA†C  ´×pÒúÿgA†C b Ô×·ÒúÿiA†C d ô×ÓúÿA†C ü ØáÓúÿ“A†C Ž 4ØTÔúÿÆA†C Á TØúÔúÿ›A†C – tØuÕúÿxA†C s ”ØÍÕúÿ|A†C w ´Ø)ØúÿŸA†C š ÔØ¨ØúÿèA†C ã ôØpÙúÿqA†C l ÙÁÙúÿ]A†C X 4ÙþÚúÿ]A†C X TÙ;ÛúÿÝA†C Ø tÙøÛúÿkA†C f ”ÙCÜúÿSA†C N ´ÙvÜúÿoA†C j ÔÙÅÜúÿ&A†C ! ôÙËßúÿ{A†C v Ú&àúÿ‘A†C Œ 4Ú—àúÿkA†C f TÚâàúÿÝA†C Ø tÚŸáúÿwA†C r ”Úöáúÿ§A†C ¢ ´Ú}âúÿûA†C ö ÔÚXäúÿCA†C > ôÚ{åúÿ}A†C x ÛØåúÿ8A†C s 4ÛðåúÿŒA†C ‡ TÛ\æúÿ­A†C ¨ tÛéæúÿeA†C ` ”Û.çúÿ†A†C � ´Û”çúÿA†C I ÔÛ‚çúÿA†C I ôÛpçúÿA†C I Ü^çúÿA†C I 4ÜLçúÿA†C I TÜ:çúÿA†C I tÜ(çúÿA†C I ”ÜçúÿSA†C N ´ÜIçúÿ5A†C p ÔÜ^çúÿÔA†C Ï ôÜèúÿªA†C ¥ Ýœèúÿ2A†C - 4Ý®éúÿcA†C ^ TÝñéúÿ;A†C 6 tÝ ëúÿoA†C j ”Ý[ëúÿwA†C r ´Ý²ëúÿxA†C s ÔÝ ìúÿ A†C F ôÝõëúÿwA†C r ÞLìúÿ A†C  4ÞLíúÿ–A†C ‘ TÞÂíúÿèA†C ã tÞŠîúÿbA†C ] ”ÞÌîúÿÎA†C É ´Þzïúÿ A†C › ÔÞúïúÿ6A†C 1 ôÞñúÿ«A†C ¦ ß›ñúÿ#A†C  4ßžòúÿúA†C õ TßxôúÿA†C  tßoõúÿgA†C b ”ß¶õúÿiA†C d ´ßÿõúÿA†C ü Ôßàöúÿ“A†C Ž ôßS÷úÿÆA†C Á àù÷úÿ›A†C – 4àtøúÿxA†C s TàÌøúÿ|A†C w tà(ûúÿŸA†C š ”à§ûúÿèA†C ã ´àoüúÿqA†C l ÔàÀüúÿ]A†C X ôàýýúÿ]A†C X á:þúÿÝA†C Ø 4á÷þúÿkA†C f TáBÿúÿSA†C N táuÿúÿoA†C j ”áÄÿúÿ&A†C ! ´áÊûÿ{A†C v Ôá%ûÿ‘A†C Œ ôá–ûÿkA†C f âáûÿÝA†C Ø 4âžûÿwA†C r Tâõûÿ§A†C ¢ tâ|ûÿûA†C ö ”âWûÿCA†C > ´âzûÿlA†C g ÔâÆ ûÿ»A†C ¶ ôâa ûÿâA†C Ý ã#ûÿaA†C \ 4ãdûÿ>A†C 9  Tã‚ûÿ4A†C Eƒ* xã’ûÿ·A†C ² ˜ã)ûÿKA†C F ¸ãTûÿÈA†C à ØãüûÿúA†C õ øãÖûÿ‚A†C } ä8 ûÿ>A†C y 8äV ûÿèA†C ã  Xä!ûÿØA†C EƒÎ |äÒ"ûÿ6A†C 1 œäè#ûÿ»A†C ¶ ¼äƒ$ûÿ�A†C Š Üäò$ûÿ�A†C Š  üäa%ûÿ)A†C Eƒ  åf&ûÿùA†C ô @å?'ûÿ®A†C © `åÍ'ûÿ®A†C © €å[(ûÿžA†C ™  åÙ(ûÿnA†C i Àå'*ûÿnA†C i àåu+ûÿÎA†C É æ#.ûÿPA†C K  æS0ûÿ«A†C ¦  @æÞ0ûÿÖA†C EƒÌ dæ�2ûÿâA†C Ý „æR5ûÿNA†C I ¤æ€6ûÿzA†C u ÄæÚ6ûÿA†C  äæ¿8ûÿA†C I ç­8ûÿA†C I $ç›8ûÿA†C I Dç‰8ûÿDA†C  dç­8ûÿSA†C N „çà8ûÿ5A†C p ¤çõ8ûÿÔA†C Ï Äç©9ûÿªA†C ¥ äç3:ûÿ2A†C - èE;ûÿcA†C ^ $èˆ;ûÿ;A†C 6 Dè£<ûÿoA†C j dèò<ûÿwA†C r „èI=ûÿxA†C s ¤è¡=ûÿ A†C F ÄèŒ=ûÿwA†C r äèã=ûÿ A†C  éã>ûÿ–A†C ‘ $éY?ûÿèA†C ã Dé!@ûÿbA†C ] déc@ûÿÎA†C É „éAûÿ A†C › ¤é‘Aûÿ6A†C 1 Äé§Bûÿ«A†C ¦ äé2Cûÿ#A†C  ê5DûÿúA†C õ $êFûÿA†C  DêGûÿgA†C b dêMGûÿiA†C d „ê–GûÿA†C ü ¤êwHûÿ“A†C Ž ÄêêHûÿÆA†C Á äê�Iûÿ›A†C – ë JûÿxA†C s $ëcJûÿ|A†C w Dë¿LûÿŸA†C š dë>MûÿèA†C ã „ëNûÿqA†C l ¤ëWNûÿ]A†C X Äë”Oûÿ]A†C X äëÑOûÿÝA†C Ø ìŽPûÿkA†C f $ìÙPûÿSA†C N Dì QûÿoA†C j dì[Qûÿ&A†C ! „ìaTûÿ{A†C v ¤ì¼Tûÿ‘A†C Œ Äì-UûÿkA†C f äìxUûÿÝA†C Ø í5VûÿwA†C r $íŒVûÿ§A†C ¢ DíWûÿûA†C ö díîXûÿCA†C > „íZûÿ“A†C Ž ¤í„ZûÿþA†C ù Äíb[ûÿ@A†C { äí‚[ûÿŠA†C … îì[ûÿ>A†C y $î \ûÿÿA†C ú Dîé\ûÿ�A†C | dîJ]ûÿºA†C µ „îä]ûÿÀA†C »  ¤î„_ûÿ-A†C Eƒ# Èî�`ûÿýA†C ø  èîjaûÿ[A†C V  ï¡aûÿA†C I ,ï�aûÿA†C I Lï}aûÿA†C I lïkaûÿA†C I ŒïYaûÿA†C I ¬ïGaûÿA†C I Ìï5aûÿA†C I ìï#aûÿA†C I  ðaûÿA†C I ,ðÿ`ûÿDA†C  Lð#aûÿSA†C N lðVaûÿ5A†C p ŒðkaûÿÔA†C Ï ¬ðbûÿªA†C ¥ Ìð©bûÿ2A†C - ìð»cûÿcA†C ^  ñþcûÿ;A†C 6 ,ñeûÿoA†C j LñheûÿwA†C r lñ¿eûÿxA†C s Œñfûÿ A†C F ¬ñfûÿwA†C r ÌñYfûÿ A†C  ìñYgûÿ–A†C ‘  òÏgûÿèA†C ã ,ò—hûÿbA†C ] LòÙhûÿÎA†C É lò‡iûÿ A†C › Œòjûÿ6A†C 1 ¬òkûÿ«A†C ¦ Ìò¨kûÿ#A†C  ìò«lûÿúA†C õ  ó…nûÿA†C  ,ó|oûÿgA†C b LóÃoûÿiA†C d ló pûÿA†C ü Œóípûÿ“A†C Ž ¬ó`qûÿÆA†C Á Ìórûÿ›A†C – ìó�rûÿxA†C s  ôÙrûÿ|A†C w ,ô5uûÿŸA†C š Lô´uûÿèA†C ã lô|vûÿqA†C l ŒôÍvûÿ]A†C X ¬ô xûÿ]A†C X ÌôGxûÿÝA†C Ø ìôyûÿkA†C f  õOyûÿSA†C N ,õ‚yûÿoA†C j LõÑyûÿ&A†C ! lõ×|ûÿ{A†C v Œõ2}ûÿ‘A†C Œ ¬õ£}ûÿkA†C f Ìõî}ûÿÝA†C Ø ìõ«~ûÿwA†C r  öûÿ§A†C ¢ ,ö‰ûÿûA†C ö Löd�ûÿCA†C >  lö‡‚ûÿÛA†C EƒÑ �ö>‡ûÿÕA†C Ð °öó‡ûÿ£A†C ž Ðövˆûÿ~A†C y  ðöÔŠûÿõA†C Eƒë ÷¥Œûÿ@A†C { 4÷ÅŒûÿŠA†C … T÷/�ûÿŒA†C ‡ t÷›�ûÿ>A†C y ”÷¹�ûÿºA†C µ ´÷SŽûÿ›A†C – Ô÷ÎŽûÿ½A†C ¸  ô÷k�ûÿ-A†C Eƒ# øt‘ûÿýA†C ø  8øQ’ûÿ[A†C V \øˆ’ûÿA†C I |øv’ûÿA†C I œød’ûÿA†C I ¼øR’ûÿSA†C N Üø…’ûÿ5A†C p üøš’ûÿÔA†C Ï ùN“ûÿªA†C ¥ <ùØ“ûÿ2A†C - \ùê”ûÿcA†C ^ |ù-•ûÿ;A†C 6 œùH–ûÿoA†C j ¼ù—–ûÿwA†C r Üùî–ûÿxA†C s üùF—ûÿ A†C F ú1—ûÿwA†C r <úˆ—ûÿ A†C  \úˆ˜ûÿ–A†C ‘ |úþ˜ûÿèA†C ã œúÆ™ûÿbA†C ] ¼úšûÿÎA†C É Üú¶šûÿ A†C › üú6›ûÿ6A†C 1 ûLœûÿ«A†C ¦ <ûלûÿ#A†C  \ûÚ�ûÿúA†C õ |û´ŸûÿA†C  œû« ûÿgA†C b ¼ûò ûÿiA†C d Üû;¡ûÿA†C ü üû¢ûÿ“A†C Ž ü�¢ûÿÆA†C Á <ü5£ûÿ›A†C – \ü°£ûÿxA†C s |ü¤ûÿ|A†C w œüd¦ûÿŸA†C š ¼üã¦ûÿèA†C ã Üü«§ûÿqA†C l üüü§ûÿ]A†C X ý9©ûÿ]A†C X <ýv©ûÿÝA†C Ø \ý3ªûÿkA†C f |ý~ªûÿSA†C N œý±ªûÿoA†C j ¼ý«ûÿ&A†C ! Üý®ûÿ{A†C v üýa®ûÿ‘A†C Œ þÒ®ûÿkA†C f <þ¯ûÿÝA†C Ø \þÚ¯ûÿwA†C r |þ1°ûÿ§A†C ¢ œþ¸°ûÿûA†C ö ¼þ“²ûÿCA†C > Üþ¶³ûÿoA†C j  üþ´ûÿæA†C GŒƒÚ  ÿǵûÿ)A†C $ @ÿжûÿ¼A†C · `ÿl·ûÿ>A†C y €ÿŠ·ûÿ�A†C ˆ  ÿ÷·ûÿ‚A†C } ÀÿY¸ûÿ£A†C ž àÿܸûÿôA†C ï  °¹ûÿA†C Eƒû $‘ºûÿßA†C Ú DP»ûÿA†C z d¯»ûÿŠA†C … „¼ûÿ¥A†C   ¤ž¼ûÿVA†C Q  ÄÔ¼ûÿA†C Eƒ è¾½ûÿ±A†C ¬ O¾ûÿõA†C ð ($¿ûÿ»A†C ¶  H¿¿ûÿ-A†C Eƒ# lÈÀûÿýA†C ø Œ¥Áûÿ[A†C V ¬àÁûÿSA†C N ÌÂûÿ5A†C p ì(ÂûÿÔA†C Ï  ÜÂûÿªA†C ¥ ,fÃûÿ2A†C - LxÄûÿcA†C ^ l»Äûÿ;A†C 6 ŒÖÅûÿoA†C j ¬%ÆûÿwA†C r Ì|ÆûÿxA†C s ìÔÆûÿ A†C F  ¿ÆûÿwA†C r ,Çûÿ A†C  LÈûÿ–A†C ‘ lŒÈûÿèA†C ã ŒTÉûÿbA†C ] ¬–ÉûÿÎA†C É ÌDÊûÿ A†C › ìÄÊûÿ6A†C 1  ÚËûÿ«A†C ¦ ,eÌûÿ#A†C  LhÍûÿúA†C õ lBÏûÿA†C  Œ9ÐûÿgA†C b ¬€ÐûÿiA†C d ÌÉÐûÿA†C ü ìªÑûÿ“A†C Ž  ÒûÿÆA†C Á ,ÃÒûÿ›A†C – L>ÓûÿxA†C s l–Óûÿ|A†C w ŒòÕûÿŸA†C š ¬qÖûÿèA†C ã Ì9×ûÿqA†C l ìŠ×ûÿ]A†C X  ÇØûÿ]A†C X ,ÙûÿÝA†C Ø LÁÙûÿkA†C f l ÚûÿSA†C N Œ?ÚûÿoA†C j ¬ŽÚûÿ&A†C ! Ì”Ýûÿ{A†C v ìïÝûÿ‘A†C Œ  `ÞûÿkA†C f ,«ÞûÿÝA†C Ø LhßûÿwA†C r l¿ßûÿ§A†C ¢ ŒFàûÿûA†C ö ¬!âûÿCA†C > ÌDãûÿ)A†C $ ìMåûÿA†C V  Håûÿ>A†C y ,fåûÿbA†C ] L¨æûÿfA†C a lîæûÿjA†C e Œ8çûÿfA†C a ¬~çûÿfA†C a ÌÄçûÿûA†C ö ìŸèûÿvA†C q  õêûÿ[A†C V , 0ëûÿA†C I L ëûÿA†C I l  ëûÿA†C I Œ úêûÿSA†C N ¬ -ëûÿ5A†C p Ì BëûÿÔA†C Ï ì öëûÿªA†C ¥  €ìûÿ2A†C - , ’íûÿcA†C ^ L Õíûÿ;A†C 6 l ðîûÿoA†C j Œ ?ïûÿwA†C r ¬ –ïûÿxA†C s Ì îïûÿ A†C F ì ÙïûÿwA†C r  0ðûÿ A†C  , 0ñûÿ–A†C ‘ L ¦ñûÿèA†C ã l nòûÿbA†C ] Œ °òûÿÎA†C É ¬ ^óûÿ A†C › Ì Þóûÿ6A†C 1 ì ôôûÿ«A†C ¦  õûÿ#A†C  , ‚öûÿúA†C õ L \øûÿA†C  l SùûÿgA†C b Œ šùûÿiA†C d ¬ ãùûÿA†C ü Ì Äúûÿ“A†C Ž ì 7ûûÿÆA†C Á  Ýûûÿ›A†C – , XüûÿxA†C s L °üûÿ|A†C w l  ÿûÿŸA†C š Œ ‹ÿûÿèA†C ã ¬ SüÿqA†C l Ì ¤üÿ]A†C X ì áüÿ]A†C X  üÿÝA†C Ø ,ÛüÿkA†C f L&üÿSA†C N lYüÿoA†C j Œ¨üÿ&A†C ! ¬®üÿ{A†C v Ì üÿ‘A†C Œ ìzüÿkA†C f  ÅüÿÝA†C Ø ,‚üÿwA†C r LÙüÿ§A†C ¢ l` üÿûA†C ö Œ; üÿCA†C >  ¬^ üÿ-A†C Eƒ# Ðg üÿýA†C ø ðDüÿdA†C _ ˆüÿ>A†C y 0¦üÿŠA†C … Püÿ¥A†C   p•üÿ_A†C Z �Ôüÿ¢A†C � °VüÿA†C ÿ  Ð:üÿÎA†C HƒÁ ôäüÿ[A†C V üÿSA†C N 4Rüÿ5A†C p TgüÿÔA†C Ï tüÿªA†C ¥ ”¥üÿ2A†C - ´·üÿcA†C ^ Ôúüÿ;A†C 6 ôüÿoA†C j düÿwA†C r 4»üÿxA†C s Tüÿ A†C F tþüÿwA†C r ”Uüÿ A†C  ´Uüÿ–A†C ‘ ÔËüÿèA†C ã ô“üÿbA†C ] ÕüÿÎA†C É 4ƒüÿ A†C › Tüÿ6A†C 1 tüÿ«A†C ¦ ”¤üÿ#A†C  ´§üÿúA†C õ Ô�üÿA†C  ôx üÿgA†C b ¿ üÿiA†C d 4!üÿA†C ü Té!üÿ“A†C Ž t\"üÿÆA†C Á ”#üÿ›A†C – ´}#üÿxA†C s ÔÕ#üÿ|A†C w ô1&üÿŸA†C š °&üÿèA†C ã 4x'üÿqA†C l TÉ'üÿ]A†C X t)üÿ]A†C X ”C)üÿÝA†C Ø ´*üÿkA†C f ÔK*üÿSA†C N ô~*üÿoA†C j Í*üÿ&A†C ! 4Ó-üÿ{A†C v T..üÿ‘A†C Œ tŸ.üÿkA†C f ”ê.üÿÝA†C Ø ´§/üÿwA†C r Ôþ/üÿ§A†C ¢ ô…0üÿûA†C ö `2üÿCA†C > 4ƒ3üÿ‚A†C } Tå3üÿ A†C   tå5üÿê A†C HƒÝ  ˜«BüÿA†C  ¼œEüÿSA†C N ÜÏEüÿ5A†C p üäEüÿÔA†C Ï ˜FüÿªA†C ¥ <"Güÿ2A†C - \4HüÿcA†C ^ |wHüÿ;A†C 6 œ’IüÿoA†C j ¼áIüÿwA†C r Ü8JüÿxA†C s ü�Jüÿ A†C F {JüÿwA†C r <ÒJüÿ A†C  \ÒKüÿ–A†C ‘ |HLüÿèA†C ã œMüÿbA†C ] ¼RMüÿÎA†C É ÜNüÿ A†C › ü€Nüÿ6A†C 1 –Oüÿ«A†C ¦ <!Püÿ#A†C  \$QüÿúA†C õ |þRüÿA†C  œõSüÿgA†C b ¼ ÜgüÿÀA†C » ü güÿïA†C ê ohüÿŽA†C ‰ <Ýhüÿ�A†C Š \Liüÿ@A†C ; |ljüÿŸA†C š œëjüÿOA†C J ¼küÿ.A†C ) Ü(lüÿPA†C K üXlüÿŠA†C … ÂlüÿPA†C K <òlüÿPA†C K \"müÿ»A†C ¶ |½müÿ�A†C | œnüÿ¢A†C � ¼ nüÿdA†C _ ÜänüÿfA†C a ü*oüÿfA†C a  poüÿPA†C K <  oüÿoA†C j \ ïoüÿÐA†C Ë | ŸpüÿÀA†C » œ ?qüÿPA†C K ¼ oqüÿPA†C K Ü ŸqüÿPA†C K ü Ïqüÿ»A†C ¶ !jrüÿ\A†C W yüÿcA†C ^ ü!�yüÿ;A†C 6 "œzüÿoA†C j <"ëzüÿwA†C r \"B{üÿxA†C s |"š{üÿ A†C F œ"…{üÿwA†C r ¼"Ü{üÿ A†C  Ü"Ü|üÿ–A†C ‘ ü"R}üÿèA†C ã #~üÿbA†C ] <#\~üÿÎA†C É \# üÿ A†C › |#Šüÿ6A†C 1 œ# €üÿ«A†C ¦ ¼#+�üÿ#A†C  Ü#.‚üÿúA†C õ ü#„üÿA†C  $ÿ„üÿgA†C b <$F…üÿiA†C d \$�…üÿA†C ü |$p†üÿ“A†C Ž œ$ã†üÿÆA†C Á ¼$‰‡üÿ›A†C – Ü$ˆüÿxA†C s ü$\ˆüÿ|A†C w %¸ŠüÿŸA†C š <%7‹üÿèA†C ã \%ÿ‹üÿqA†C l |%PŒüÿ]A†C X œ%��üÿ]A†C X ¼%Ê�üÿÝA†C Ø Ü%‡ŽüÿkA†C f ü%ÒŽüÿSA†C N &�üÿoA†C j <&T�üÿ&A†C ! \&Z’üÿ{A†C v |&µ’üÿ‘A†C Œ œ&&“üÿkA†C f ¼&q“üÿÝA†C Ø Ü&.”üÿwA†C r ü&…”üÿ§A†C ¢ ' •üÿûA†C ö <'ç–üÿCA†C > \' ˜üÿOA†C J |'9œüÿ°A†C « œ'Éœüÿ³A†C ® ¼'\�üÿSA†C N Ü'��üÿ5A†C p ü'¤�üÿÔA†C Ï (XžüÿªA†C ¥ <(âžüÿ2A†C - \(ôŸüÿcA†C ^ |(7 üÿ;A†C 6 œ(R¡üÿoA†C j ¼(¡¡üÿwA†C r Ü(ø¡üÿxA†C s ü(P¢üÿ A†C F );¢üÿwA†C r <)’¢üÿ A†C  \)’£üÿ–A†C ‘ |)¤üÿèA†C ã œ)ФüÿbA†C ] ¼)¥üÿÎA†C É Ü)À¥üÿ A†C › ü)@¦üÿ6A†C 1 *V§üÿ«A†C ¦ <*á§üÿ#A†C  \*ä¨üÿúA†C õ |*¾ªüÿA†C  œ*µ«üÿgA†C b ¼*ü«üÿiA†C d Ü*E¬üÿA†C ü ü*&­üÿ“A†C Ž +™­üÿÆA†C Á <+?®üÿ›A†C – \+º®üÿxA†C s |+¯üÿ|A†C w œ+n±üÿŸA†C š ¼+í±üÿèA†C ã Ü+µ²üÿqA†C l ü+³üÿ]A†C X ,C´üÿ]A†C X <,€´üÿÝA†C Ø \,=µüÿkA†C f |,ˆµüÿSA†C N œ,»µüÿoA†C j ¼, ¶üÿ&A†C ! Ü,¹üÿ{A†C v ü,k¹üÿ‘A†C Œ -ܹüÿkA†C f <-'ºüÿÝA†C Ø \-äºüÿwA†C r |-;»üÿ§A†C ¢ œ-»üÿûA†C ö ¼-�½üÿCA†C > Ü-À¾üÿXA†C S ü-ø¿üÿÍA†C È .¥ÁüÿA†C  <.¢Âüÿ­A†C ¨ \./ÄüÿÉA†C Ä |.ØÄüÿ(A†C # œ.àÅüÿšA†C • ¼.ZÆüÿ×A†C Ò Ü.Çüÿ[A†C V ü.LÇüÿSA†C N /Çüÿ5A†C p  5°èüÿÇA†C  <5Wéüÿ>A†C y \5uéüÿnA†C i |5ÃéüÿoA†C j œ5êüÿ_A†C Z ¼5Qêüÿ{A†C v Ü5¬êüÿ»A†C ¶ ü5Gëüÿ>A†C y 6eëüÿŠA†C … <6ÏëüÿŠA†C … \69ìüÿgA†C b |6€ìüÿŽA†C ‰ œ6îìüÿ_A†C Z  ¼6-íüÿPA†C HƒC à6YðüÿdA†C _  7�ðüÿWA†C HƒJ $7ÐóüÿqA†C l D7!ôüÿ»A†C ¶ d7¼õüÿUA†C P „7ñõüÿuA†C p ¤7Föüÿ‰A†C „ Ä7¯öüÿMA†C H ä7ÜöüÿA†C I 8ÊöüÿA†C I $8¸öüÿA†C I D8¦öüÿA†C I d8”öüÿA†C I „8‚öüÿA†C I ¤8pöüÿA†C I Ä8^öüÿDA†C  ä8‚öüÿSA†C N 9µöüÿ5A†C p $9ÊöüÿÔA†C Ï D9~÷üÿªA†C ¥ d9øüÿ2A†C - „9ùüÿcA†C ^ ¤9]ùüÿ;A†C 6 Ä9xúüÿoA†C j ä9ÇúüÿwA†C r :ûüÿxA†C s $:vûüÿ A†C F D:aûüÿwA†C r d:¸ûüÿ A†C  „:¸üüÿ–A†C ‘ ¤:.ýüÿèA†C ã Ä:öýüÿbA†C ] ä:8þüÿÎA†C É ;æþüÿ A†C › $;fÿüÿ6A†C 1 D;|ýÿ«A†C ¦ d;ýÿ#A†C  „; ýÿúA†C õ ¤;äýÿA†C  Ä;ÛýÿgA†C b ä;"ýÿiA†C d <kýÿA†C ü $<Lýÿ“A†C Ž D<¿ýÿÆA†C Á d<eýÿ›A†C – „<àýÿxA†C s ¤<8ýÿ|A†C w Ä<” ýÿŸA†C š ä< ýÿèA†C ã =Û ýÿqA†C l $=, ýÿ]A†C X D=i ýÿ]A†C X d=¦ ýÿÝA†C Ø „=cýÿkA†C f ¤=®ýÿSA†C N Ä=áýÿoA†C j ä=0ýÿ&A†C ! >6ýÿ{A†C v $>‘ýÿ‘A†C Œ D>ýÿkA†C f d>MýÿÝA†C Ø „> ýÿwA†C r ¤>aýÿ§A†C ¢ Ä>èýÿûA†C ö ä>ÃýÿCA†C > ?æýÿ\A†C W $?"ýÿÃA†C ¾ D?ÅýÿìA†C ç d?‘ýÿIA†C D „?ºýÿA†C  ¤?±ýÿ‹A†C †  Ä?ýÿ;A†C Hƒ. è?3!ýÿYA†C T @l"ýÿ­A†C ¨ (@ù"ýÿ©A†C ¤ H@‚#ýÿÉA†C Ä  h@+$ýÿ<A†C Eƒ2 Œ@C%ýÿ?A†C : ¬@b&ýÿØA†C Ó Ì@'ýÿØA†C Ó ì@Ò'ýÿ°A†C «  Ab)ýÿMA†C H ,A�)ýÿ@A†C ; LA¯*ýÿ A†C  lA¯,ýÿ§A†C ¢ ŒA6-ýÿA†C z ¬A•-ýÿ$A†C  ÌA™.ýÿkA†C f ìAä3ýÿ>A†C y  B4ýÿfA†C a ,BH5ýÿ|A†C w LB¤5ýÿ)A†C $ lB­7ýÿ@A†C { ŒBÍ7ýÿBA†C = ¬Bï8ýÿìA†C ç ÌB»;ýÿxA†C s ìB<ýÿ·A†C ²  Cª<ýÿhA†C c ,Cò<ýÿ>A†C y  LC=ýÿ)A†C Eƒ pC>ýÿùA†C ô  �Cî>ýÿuA†C p ´C??ýÿA†C I ÔC-?ýÿA†C I ôC?ýÿA†C I D ?ýÿSA†C N 4D 4Jm`ýÿgA†C b TJ´aýÿgA†C b  tJûcýÿ~A†C Eƒt ˜JUeýÿÁA†C ¼ ¸JögýÿA†C  ØJòhýÿ.A†C ) øJjýÿ§A†C ¢ K‡jýÿsA†C n 8KÚjýÿŠA†C … XKDkýÿ’A†C � xK¶kýÿ$A†C   ˜KºnýÿíA†C Hƒà ¼Kƒsýÿ>A†C y ÜK¡sýÿèA†C ã üKitýÿ¦A†C ¡ LïtýÿÉA†C Ä  ó ð¯Dó ͼLó ¬¯Só ­µWó ª´[ó a¹bó Õ²fó ¼°mó »·qó ÷¹xó û»ó 6¶„ó q²ˆó �º�ó �»—ó F´›ó ˸�ñ ñ°¢ó -®¨ó ¦®¯ó p¯¸ó ´­N å R i" Y Ý%! Œ'^ ‡) ¸*‡! �‹! ˜“! ?–! @ž! ¤! «! ”°! ´! ˜·! ˜À! tÄ! ‰M ›M ¬M ¼M ËM ÜM ìM þM N N *N ;N GN PN XN fN sN �N ÿÿÿÿŽN ™N  N «N ²N ¹N ¿N ÎN ÖN ÝN æN íN óN ýN O O ÿÿÿÿåq }g °q ïf Fq h Ä M È 0þ ¹  ’ƒ žƒ ªƒ ¹ƒ ǃ Õƒ ⃠öƒ  „ „ „ 6„ K„ \„ l„ |„ Š„ ž„ ±„ ¿„ ÿÿÿÿÛª ­¬㪠ʱèª §­ìª ¯óª Lµÿª ¯³« ´« Ç´« tµ$« ³0« /²6« ³=« D« <¶× Éb¶# ýiº# –V# ³¤Â# ¯¬Ì# 5²Ø# ³È Ôªã# ¼³í# µù# åµ# ò’# ê¶# )# …0# w‹È! “¶:# �B# Ì�J# Q O# À¢[# žÁaÐaÜaPb X0 Ц 00.80.õþÿoð€†° vb @.Ð}ˆ²hô ¾ þÿÿo¸óÿÿÿoðÿÿoöèùÿÿoš0=.–0¦0¶0Æ0Ö0æ0ö011&161F1V1f1v1†1–1¦1¶1Æ1Ö1æ1ö122&262F2V2f2v2†2–2¦2¶2Æ2Ö2æ2ö233&363F3V3f3v3†3–3¦3¶3Æ3Ö3æ3ö344&464F4V4f4v4†4–4¦4¶4Æ4Ö4æ4ö455&565F5V5f5v5†5–5¦5¶5Æ5Ö5æ5ö566&666F6V6f6v6†6–6¦6¶6Æ6Ö6æ6ö677&767F7V7f7v7†7–7¦7¶7Æ7Ö7æ7ö788&868F8V8f8v8†8–8¦8¶8Æ8Ö8æ8ö899&969F9V9f9v9†9–9¦9¶9Æ9Ö9æ9ö9::&:6:F:V:f:v:†:–:¦:¶:Æ:Ö:æ:ö:;;&;6;F;V;f;v;†;–;¦;¶;Æ;Ö;æ;ö;<<&<6<F<V<f<v<†<–<¦<¶<Æ<Ö<æ<ö<==&=6=F=V=f=v=†=–=¦=¶=Æ=Ö=æ=ö=>>&>6>F>V>f>v>†>–>¦>¶>Æ>Ö>æ>ö>??&?6?F?V?f?v?†?–?¦?¶?Æ?Ö?æ?ö?@@&@6@F@V@f@v@†@–@¦@¶@Æ@Ö@æ@ö@AA&A6AFAVAfAvA†A–A¦A¶AÆAÖAæAöABB&B6BFBVBfBvB†B–B¦B¶BÆBÖBæBöBCC&C6CFCVCfCvC†C–C¦C¶CÆCÖCæCöCDD&D6DFDVDfDvD†D–D¦D¶DÆDÖDæDöDEE&E6EFEVEfEvE†E–E¦E¶EÆEÖEæEöEFF&F6FFFVFfFvF†F–F¦F¶FÆFÖFæFöFGG&G6GFGVGfGvG†G–G¦G¶GÆGÖGæGöGHH&H6HFHVHfHvH†H–H¦H¶HÆHÖHæHöHII&I6IFIVIfIvI†I–I¦I¶IÆIÖIæIöIJJ&J6JFJVJfJvJ†J–J¦J¶JÆJÖJæJöJKK&K6KFKVKfKvK†K–K¦K¶KÆKÖKæKöKLL&L6LFLVLfLvL†L–L¦L¶LÆLÖLæLöLMM&M6MFMVMfMvM†M–M¦M¶MÆMÖMæMöMNN&N6NFNVNfNvN†N–N¦N¶NÆNÖNæNöNOO&O6OFOVOfOvO†O–O¦O¶OÆOÖOæOöOPP&P6PFPVPfPvP†P–P¦P¶PÆPÖPæPöPQQ&Q6QFQVQfQvQ†Q–Q¦Q¶QÆQÖQæQöQRR&R6RFRVRfRvR†R–R¦R¶RÆRÖRæRöRSS&S6SFSVSfSvS†S–S¦S¶SÆSÖSæSöSTT&T6TFTVTfTvT†T–T¦T¶TÆTÖTæTöTUU&U6UFUVUfUvU†U–U¦U¶UÆUÖUæUöUVV&V6VFVVVfVvV†V–V¦V¶VÆVÖVæVöVWW&W6WFWVWfWvW†W–W¦W¶WÆWÖWæWöWXX&X6XFXVXfXvX†X–X¦X¶XÆXÖXæXöXYY&Y6YFYVYfYvY†Y–Y¦Y¶YÆYÖYæYöYZZ&Z6ZFZVZfZvZ†Z–Z¦Z¶ZÆZÖZæZöZ[[&[6[F[V[f[v[†[–[¦[¶[Æ[Ö[æ[ö[\\&\6\F\V\f\v\†\–\¦\¶\Æ\Ö\æ\ö\]]&]6]F]V]f]v]†]–]¦]¶]Æ]Ö]æ]ö]^^&^6^F^V^f^v^†^–^¦^¶^Æ^Ö^æ^ö^__&_6_F_V_f_v_†_–_¦_¶_Æ_Ö_æ_ö_``&`6`F`V`f`v`†`–`¦`¶`Æ`Ö`æ`ö`aa&a6aFaVafava†a–a¦a¶aÆaÖaæaöabb&b6bFbVbfbvb†b–b¦b¶bÆbÖbæböbcc&c6cFcVcfcvc†c–c¦c¶cÆcÖcæcöcdd&d6dFdVdfdvd†d–d¦d¶dÆdÖdædödee&e6eFeVefeve†e–e¦e¶eÆeÖeæeöeff&f6fFfVfffvf†f–f¦f¶fÆfÖfæföfgg&g6gFgVgfgvg†g–g¦g¶gÆgÖgægöghh&h6hFhVhfhvh†h–h¦h¶hÆhÖhæhöhii&i6iFiVifivi†i–i¦i¶iÆiÖiæiöijj&j6jFjVjfjvj†j–j¦j¶jÆjÖjæjöjkk&k6kFkVkfkvk†k–k¦k¶kÆkÖkækökll&l6lFlVlflvl†l–l¦l¶lÆlÖlælölmm&m6mFmVmfmvm†m–m¦m¶mÆmÖmæmömnn&n6nFnVnfnvn†n–n¦n¶nÆnÖnænönoo&o6oFoVofovo†o–o¦o¶oÆoÖoæoöopp&p6pFpVpfpvp†p–p¦p¶pÆpÖpæpöpqq&q6qFqVqfqvq†q–q¦q¶qÆqÖqæqöqrr&r6rFrVrfrvr†r–r¦r¶rÆrÖrærörss&s6sFsVsfsvs†s–s¦s¶sÆsÖsæsöstt&t6tFtVtftvt†t–t¦t¶tÆtÖtætötuu&u6uFuVufuvu†u–u¦u¶uÆuÖuæuöuvv&v6vFvVvfvvv†v–v¦v¶vÆvÖvævövww&w6wFwVwfwvw†w–w¦w¶wÆwÖwæwöwxx&x6xFxVxfxvx†x–x¦x¶xÆxÖxæxöxyy&y6yFyVyfyvy†y–y¦y¶yÆyÖyæyöyzz&z6zFzVzfzvz†z–z¦z¶zÆzÖzæzöz{{&{6{F{V{f{v{†{–{¦{¶{Æ{Ö{æ{ö{||&|6|F|V|f|v|†|–|¦|¶|Æ|Ö|æ|ö|}}&}6}F}V}f}v}†}–}¦}¶}Æ}Ö}æ}ö}~~&~6~F~V~f~v~†~–~¦~¶~Æ~Ö~æ~ö~&6FVfv†–¦¶ÆÖæö€€&€6€F€V€f€v€†€–€¦€¶€Æ€Ö€æ€ö€��&�6�F�V�f�v�†�–�¦�¶�Æ�Ö�æ�ö�‚‚&‚6‚F‚V‚f‚v‚†‚–‚¦‚¶‚Ƃւæ‚ö‚ƒƒ&ƒ6ƒFƒVƒfƒvƒ†ƒ–ƒ¦ƒ¶ƒƃÖƒæƒöƒ„„&„6„F„V„f„ë Ë« Ó« Ù« ’¯ œ¯ @¨¯ €¹¯ ÀÁ¯ ͯ Û¯ é¯ þÿÿÿô¯ ýÿÿÿú¯ üÿÿÿþ¯ ° ÿÿÿÿ° ° ° ° (° 3° @° E° L° ^° g° l° w° †° ‘° š° ž° ¬° ¼° ư Ô° ã° í° õ° ± ± ± -± ;± K± ‡³ «ï’³ Öëž³ 멳 äíµ³ Îìɳ âÒ³ Nôß³ jäê³ ³æõ³ 5éþ³ 9ï´ ñôœ´ ;õ¢´ gö¦´ +«´ Ô÷¯´ $÷@¯ º´ gö¿´ æöÄ´ kÈ´ »+³ `³ åÍ´ jÑ´ “Õ´ ¸Ú´ >á´ «´ ™º´ >¿´ U@¯ '¶ �´ ¿Õ´ àÑ´ 6.¶ ¬5¶ ¢õ³ xf­ �@¯ º´ ¦¿´ :=¶ OA¶ œ «´ Î á´ E¶ cH¶ ÏL¶ ®Q¶ ‚W½ '…̾ g†Ѿ °‡×¾ ·ˆܾ ™‰â¾ þ‰è¾ ŠŠí¾ ðŠò¾ 9Œø¾ a‹þ¾ –¿ †Œ ¿ �¿ g�¿ NŽ¿ �)¿ þ‰.¿ ¿�6¿ g�=¿ “E¿ a“O¿ _‘X¿ ½“[¿ %’_¿ –”d¿ _•i¿ Z|འv¿ þ‰{¿ ¶|€¿ z„¿ ){‰¿ "}�¿ ½}X¿ X~–¿ ó~›¿ À‚6¿ Á=¿ F€¯¿ ¶¿ ½¿ Ä¿ [¿ <Å vÒAÅ XÊEÅ NÍQÅ âÏ]Å BÔhÅ Û¿pÅ PÃ™Ä ÊÆ@à xÅ ßÕ}Å ¹Ø„Å “Ú<Å ÂÛŠÅ lá�Å ¤Þ•Å <Þ�Å lá@à «Å ¹Å ÑÅ ëÅ Æ Æ 5Æ GÆ \Æ jÆ �Æ –Æ «Æ ÅÆ ÙÆ ðÆ Ç Ç -Ç EÇ \Ç vÇ �Ç °Ç ØÇ È ÿÿÿÿ}áÊ òË úË  Ì Ì "Ì +Ì AÌ JÌ @ÚÊ €SÌ ZÌ eÌ sÌ {Ì ‚Ì ˆÌ @�Ì €�Ì §Ì µÌ ÿÿÿÿ­Î > ²Î f!JÌ È ŒÍ D —Í j#ÚÍ dºÎ "ÆÎ î"ÒÎ û&ÞÎ {*ëÎ -,úÎ @$ Ë Ï 3-Ó �[%Ó 0V+Ó ˜Y1Ó òU€Ò 6Ó KÓ eÓ ‚Ó œÓ ±Ó ÊÓ @ãÓ ýÓ Ô ÿÿÿÿóÔ dZÕ N\iÙ N�mÙ ‚ŽJÙ ‚�rÙ åŠ{Ù 0Œ€Ø †Ù ð’�Ù f“mÙ j‘“Ù Ì•™Ù m•ŸÙ „–¤Ù ³—¯Ù •˜¹Ù $˜ÆÙ }™ÒÙ ú™×Ù ›€Ø ÞÙ m•ôÝ ÿÃúÝ 1ÇÞ ÁÃ`Ý Þ ÂÇ€á ¯ã /ù´ã ¥ ¹ã ¥ ¿ã ñÒã Üó>â ~úØã Äüîã øã ˜ä Hä Óä í"ä ñ+ä %4ä Ç>ä Hä ɧä 5­ä ƒÒã è…ä !´ä $ ¼ä  Æä { Ëä ÑÒä  Þä ¤mä Æéä ²¯ã ª€á €á ¯ã lóä ù÷à å ™…ä áò´ä $ ¼ä  Æä { Ëä ÑKê –FPê AGUê ìGYê >H`ê �Hiê 0Knê ÎNqê ”Ovê ZP|ê SŒê cS�ê /T­ê ûTÂê ûPÇê MQÎê ŸQÚê �N€è ²î z�¹î ë�¿î GÅî ¥ƒ@î Êî G€÷ ñ÷ ö÷ æëü÷ Eìø ø òû ÷û ûû ÿû iý �ý “ý –ý ›ý  ý # 2M  ( €I- LP4 šS: R? ³OG ÊQQ ÊN  ( ŒQ  # EV? ¬U  ( Z# 9^Q ]Z? ’\: +]U Æc^ Sc  ( �d- ¿d4 æe  ( Mgi ÆGt ‡J� ¾I� ¡K› »L© ÿÿÿÿ² ¾ Ì Ù ì ÷    * / 7 ? ` � Ÿ ¸ Ô ñ Ž ®ÿÿÿÿ: Æ”1 Ê’5 $“> (’E ¾“M P•€ : Mšf X™m c˜t o—> ›E dœM ך€ � f�˜ ¶�¢ ž® µžµ Ÿº ZŸà a Ì ¯ Ò ÿ Ö O¡M ¹¡€ : ö§á €¨¢ m«Ì ©˜ ª� ɪÿ 4®> ­ ›­ ~¬€ M à°: \±> æ±< J³H Ë´N ›²€ M ±ú A¶ )· Á· ;¸º ×¹ iº6 @»9 éºC ÀQ ðÂ] –½N ç¼e zµj zµ€ M þÃÈ WÅÎ ÇÅÔ ¿ÇÛ ƒÆà ÝÆ€ M uÇ ÷¡ ¤¢$ C£. ·›? {‘S é£` —¦o Ž• .�ž ª è ÷  ! 0 P o | � ¡ ¸ Ï é   % 1 < H Q [ @f €s ïƒ ÷w åô& ò ¹1  b2 , ¸*! Œ'( H$, Ê#8 m7C à7I Í+  f k s z ‚ ‹ ” @� €¤ « ¶ Ä Ì Ó Ù @á €# # ò’# ê¶)# …0# w‹È! “¶6# ü”:# �B# Ì�J# Q O# À¢V# ³¤È Ôª[# žb# ·¸u# oŠ` z# ©™‡# C™”# š # ušª# ¥˜¯# —B# Ûš:# ™›O# ‚œJ# 0�u# A—` 4) ˜ç:) 'âD) îK) ÅâS) (ä[) ‹å`) ¸æ( uâg) ïr) ‘á ' 4) ˜ç:) 'âD) îK) ÅâS) (ä[) ‹å`) ¸æ( uâg) ï' íw) ´ï„) ò�) �õR- P€X- z- @“- €¤- ´- €É- å- ó-  . $. :. Q. d. €.  . Á. Ð. à. / / / @#/ ,/ 7/ B/ P/ ^/ l/ |/ •/ ±/ Ç/ Ò/ €õ1 ÿ!ý1 Å&2 p'2 (2 y(h2 }2 ˜2 £2 ±2 D3 I3 N3 S3 9 Jhƒ9 aÖ5 'XI3 êX‡9 x`�9 È`—9 R[¦9 ÇZº9 }R˜6 ~uÎ9 ýr"3 »tÒ9 ÙWØ9 öYÝ9 Î]å9 lì9 clw, µlô9 ’mÕ8 onù9 [o: o: Qp: t': bt1: ­oI: ÿo]: �ro: ¿r€: -wà6 ¥Y- ßvx5 –5 �5 Š5 |5 ©5 ¼5 �5 w, Õ8 ä: ê: Î5 q5Ò5 8Ö5 y)Ú5 ~*Þ5 ß,ã5 3,ë5 Ž.ó5 1û5 èQ6 ˆ26 3'6 ô326 þ4=6 ³:I6 1=Y6 �>i6 $C|6 ":‰6 «L˜6 M 6 'N³6 3KÈ6 FEà6 â+- ñ6 .Uô6 òRã5 ¦Sù6 òUI3 ˜T7 EV 7 5W7 ‡Wà6 ZT- ÐB ÙB âB 3C :Ó—A üÑrB þÌ7C ¹ÎAC ›ÑÉE ÞE òE ÿE F *F BF EF QF kF €F ¨F ÈF ëF G G +G L ?&L @:L AHL BYL CjL DyL E†L F“L G¡L H¾L IÑL JäL KöL MM (M LFE 2ßLE 8ÞSE ÚåYE èèdE £épE 2ê}E òä?D ×ö„E ´ä‰E ˆý B ŽE ˆý”E ?î“D ‚÷OD ‘í›E Ýî¥E Kð®E ‡ôGD ãìµE ¹ñ½E XùÂE :ü)S ù' DS Š) IS Ê) MS ’* RS ‘+ 7S , WS T* ÀR X ª_ X 2^ ,X _ rX d wX ]d {X çd RW ±e YW kf ‚X g ‡X se W 9] K• =] t– M] n— U] û— Z] }˜ a] ™ i] › n] wœ r] � v] ¦� ‚] ü� ‹] Ÿ •] »Ÿ Ÿ] °  ¬] ø› °] n— ¹] ø› †Z ¦� `\ ¾] 0— ýa tË b ½b Áb Åb b Šb ¾Ï �b (Ð ˜b XÏ žb ŽÐ ¤b ôÐ ©b ïÑ ­b öÍ `a ¸b ¸Í Ëf ˜þ ÷f :ÿ ûf j ÿf È g i g n g Äÿ g Äÿ @f g üþ Òj Ùj Ýj âj çj îj ôj ùj ýj k k k k #k *k 1k 5k @k Ek Lk  Sk Xk æi Zk \k ik ok tk wk }k æi ‹k  '�$q¥�¤BÛ³Ðþ|kV™N�ËÙRæåÈ�4ÿŠ´þ¿^Þþ®øˆú^u~áhS ¿kL¤ÚêFØß¥_~ÝgÐ3¶ÿ±‹±¯ƒÄ–Æ©�Wu�4•³3$g,œ”úBo[V«÷çG²3îßu��ñ×®E�£c ªýøºÔn‘U‚ecêŠP)Zj^ ˆ³ Í®§êzmÖøÙRlL;¥È¬ªr»úT×XCÍŽ³ÈÀ6·mL%Üf6Á®•`á”ëc‹&ëÑŒŠÛ0Á=™E÷Ræn‰Ë<¶œ¢ÍŒ}~*êò×Âê±[‚Ô<�ÚQÇÐJ=¾BM”· �“l¨—{OµÉq#»®lß ÙŸb~‹¿ýÅWNQ¢xÓøV_ÚaEð�÷á…À‚“�!/ÒŒ/\#£kÅEÑô›RŒÙ×ö¿‹K€0®åbíò¡ç4Äâüou—Ý}ïjSÃlç†Ï4È�]/œF;Àõöpp<«dLÒŠ)¿à°Ò»¼`º3¬ÍáŤ¹-k*J Ææð"$‚ÑC7GÅö½žùÛàáë Rô&•)VÌ‘™LÀDX�4•Žjgù;0ªR1�Bö½ÍíìÜÓ…"ÚjóÿÚPôÚ«UÕÐ5œ “‘{ç Å‹|(ªV¨šPw Ó·$¶êÕ{)ÇÞä”Ä�ú¼æ˜&ãÃA\pÀtÈJ�á2Û»“å¼óÈ9˜Ún•Á¡�Ç"Ã%OL°*]»»û-vÂ*Џ¬sÎ8°PËc4Å×Ü|mCÐÓ‹ûyhPý�†CØÌHˆa†P\ÞÖ’ïÕ` ©³ çžÉPÁ60¸Ð€¡óx×8F*ºñl@¸•ÙU¡.þ›ÞÈ0$«;No±ÖÐ9�= Q c¡+¦AÁȽL²ëÒ ª°ÓcGq9ȹÊ@ˆžI] }–s/Ó±¥¨„ž§ ×Â[ÃĽJ×èÝÏ ’+�„h@0ü‚��nš)Ò…X‰”Z“Äé j¼z˜AáI»wYC¨SáE­&~ÉzÅ¥˜£õˆ¾F¢5Ø™ˆ�…ѼÜÈžÐ]ÿê¼ÈC¼-÷åŸH©¢<ÅÝùꂚ¸žÝ &>ͤ•–ÍpFÐv:Á•`´¹Ê¸š©¬œGÉC19I…Ö Œd–`…²k–oËNÊÒû>ptÙ"|µ1�“‹ÙC�§XD¢ X&¢.;£­órJ_ÜyCƾi¼h²°é³™�vÜ-'(6”\N_¹‡!ýòmƒf1à p”æ“_*]‡ã%.aI!§FHõ^¼chyä_N)ÏTE(À5÷((‰$ÜAÞöÔ§ñ›Ãfûw.~(�=Á‚£¨ŒRÅãi Kb{W.4ÓT˜‘Õ|{Ë<6y4³šú¥ Ñ!ʺÓ\yL«ÿ;s\Ö0H³€²vß!nrñomý›W5ÕWÏŸm‡‰Ó”g?ê+ÄÅÖ…+9È¡9uëàõyšžð³d’¼ËÇ Ö*¶ÞšA*i Ô²Ça)b>>�|Hµ“™ B¨#˜�ºˆe‰ê^¢]è½¶¡#Û^ j¡“¯D_ž'Æ-¡�Ænœ9˜¹÷H‡~”xÝPêéjOqî^zÆ2%�5EU;*M…E“ÌxTr&Þ&àãþèÝå=ˆJ犇±Udöÿz]륭ÅâÄQqäö±T¼YŽÑ´’?mQ.0ÅòA®ïÝG�H”ìÿ¤ÅYâ°,cuðqV3GSï^ÕÒû�w‘†^àÿhÕó‘ g©T–pb 5éÊû‡ðª~ÒL¬—9¯ˆS†À­L¹«zIü›ÞñÈqíÍp-—”9`�lÖ9õ�Xi%a{ô:ô¶÷n‡ÕÕÒ«Œ8k0×9†M�§Í´Š]ÞkºwÎC€Ùç�Q÷c³lÒ]Ò�¨Õð�ÿ;!_9êSð’K4�Àãáý,"©; çÎ0ÿe ªÜãT¸¤Óí¸¯Š©Xv‚‹¦¨PÙ@õGÍmx�à<ðTöa �¢¦A4Û†©ÀFÐ%©G XXO¹üˆ»‘7ª ŒZLdí£ã ¯Â+TK)Žõ áø­²�EÚw ¬}{·úq—v$˜õxºð°¢˜‘YºÊûX»¢o:%œ û÷Ãd�ãêmÐËHJ•“$cALä¥RÚƒe÷ ÁIJ^%ø¥ÛÌ’ ÓÝ/ÈbìùGŸ‡Ö`lQ8¥ž;02âF„,)±ó͈ -ñÍd^VXÏ4çxÕû™F©k=#kœëYæÚÛ\(w[Õ¯Kû· žý0ƒŒ‹ÔrÇÛéDw ?Òm§mZsg¦@¨ÍKL3V“éÁ¢ŽnV„_7^µ00‰(>æWU~lð|Ëk[6IÓ`U—�Cž û- bT¾j¿DÐa@—‹‡y' CñÚN‘¶ðwÈ«ô -¦bQ eÈØ�UMµÎ¾‚°h^®vˆWÍepZ‚C·è‹qÌØ–aúûov>°€ SO}C•áp�¨ ¬’HåSõý”ÚGÉwÙ–!£8Mßji/Û…öÓˆjä:g2qi|+Q 29�Yò,¢YÄ6ŠçÅÙÓ¸õ .’rTš-Ò�æ ÷ˆÊH2úž Íu¸Žgγ,‹Ùr¸ú�þõwcÒ¯*„´hd‘AgqÆ j]$|n›#ãTá·íö(ñÉî¬FÉši½~5®D2Ç22T:GÒÏgðBqÇ4uL;µŸKÜL#"Çgr�Ü4åJÍò(¥é½Áø£Ö JeÉ“} €©çÅÑmÂÞ¬â]Ì@K˜4…% Û`å$ÙS4]xèÿ¤Áw‘dì]#辆ÒÏ5‘�qJ.—ƒ‘¥»ò‚äZ÷pQíU‘]µ }Ë2åA×m¯Ù&‚{ÿÀÊÕš™¡Õ+ ÿ^IíÏ£;� –Gá{t¦þ�ôRèšZåÍ9¢°»…¢Y_j~+ V8 ygü·ªï~ ‘R‡¿µøYÄ2ø½Ä‹·ÌLèGT�ϧú ¿…h½-ÛËBŠ1oA„˜Áz!pYgì4ýÔ×~ vû�ý4y��™ÌçCc¦z¨× ݶö% •‚½}³`áÒ@ 7DAäà> ÉR¥(ä+fýÀðcّ͛ ´pxßÏF ’¿Õž‘Ûë.‘ ©*²8@å÷0jÚ:`Z™ÄÌ5Æ~Zð_¹DAOš »ÊçôòžÉhXgJÅØ��ì‰32!þ$%Á)ïU«§ìd§j”ìF ]¡«rÕƒ†ºiÆÛ— 7†_H¼rÀ:§_!}ÜfŠSµ,�¤SèêÇáùÛ¤:aÓDÀÎר‹Vr5TÆC@vïÆ}Žk¹öµÊüÙ'ÓñžÂûÔßšÎ)Í* u…²¥4 Y^ wõ%•÷×�¤ïšÅç(ÃÌ–-ËEÑø§Þóf­ÏÁÑË×kÈ“+ÆÒ¸�žRvï<0ÃR Ó. "³66ÞÖaVð¼ÞãšP ŸfÒ XðŸf÷è¸ÏìNMZ˜]êP}øù±§å=L§$U�Š�`uõ�É»¿³$ðgµ;9I1÷¸å¥ël:¯]Ò0ùòS^~�nƒºçàíÕé/¶"ì³fäz§�ö÷Ñ3 iŠ -�§öl¥ÆQjÂùÒ „¸JúGl4£÷=µØq×…ÊöÅh)ì>-x>}F™£œ@)ÅìŒÚb¢Êé1Òô÷Í™·�«ßJ�~íƒ8IhÇøðrÉ�§\ÒͤiÛ_ÐkǯÀ¢“û(R‰¦r4J™CWl›þL˜m_…@Ö¨9¾wKà<92x°Hm©†âÀÈÁÚÉ~@±p&2r¶”çÄSþhà·TžÁ2Dez0£ñ²ÿ¡ðbD¤^Öº&´Í^‰·â_@RBŸ?wsüÞQE:ø1s+ï°¬u‰úR�èË%j.ÞÐâ‘™ó|}îyòm=ZÁÏàþÒñæÕÈèw‰PÜ ‰<¹~v4•4š^RÉgm‘× ba3|ñMy;"ÓµN˜íôE/�6'£SÝy6úkQf!w‘´èÁÀc‡ýÈW{Y³ËûÙËuÄ}Ö¥6i‹y|;�K ­!/ü>'ê3��–;>¯ón7‘ø�ë©~Ž­bÙ² Ä„ÅÎnŸ.5¢ÔÉDX¿¤Ÿ4œµáÝt½aCéÜ¿“V�f6ω?*|\ƒ%ã@ìù(}ÐÏ;L[,8 sË*ô±y§J'„¿Êþ ›Nh󉋴œ“«Ù6,Ä,>gv›¶J4·¡“ ùMI¯¢B¨öÇAœ' 1œ2~f! 5l›D„îžwIñ$ÝãTnøÂXqèò‡©. „2�¥:£^VJCïjØÞ vï’EdçžzFW ÷l^yi<õŒæ7áóÖV^Jb„ONTßjØ>ß|Få¾›>¹ß'¹ªd×g² 屺É&Ö‡%‚CÍ›öÆ °‚ªµŽzAб»q¶ê#;ó|¥HNù�0ëVxìt�ÅXZµÂoQ÷·¡�6�NalɸG½# +úüvÕL­&Œ %Hÿù,X“Di1÷T”r 'ЖèÅŸ ÐcUŽ�ÃŒ6+Ïy>ýR7RWùçõ>(0Ça�“ÞÄĸI.rcâ�¥{xšÉÎÔÝŒCO1&Tå'ýÙÃíY›R \ۮýÆzU¾Ã /xùMzáÉÙ J…oò¤’*2 ô Ô%ƒ¦¹¸@Ñrí¢ž"JË;‰ +¿…Á.S¢´’y¾ÎtgzÃ-ÁnDý*çZÒǾ9–Â?fÕ+¥å7žÓ5q) AqUŠ5±ÓøÀh¦/2pƒ&ëèâå-b*?«=sBu4™ººqâ�áÁAï¦^�ë¤aTŸÑQO‰¹ÉNæÑÇ幉ëÑ‘t´?ÜIœí„r¯v(§É$Ux.'-¶nunýåây6ÓÁ[}œèrm+r8×ìå+²™zÁ·ã¢ †…¨�#Ó݆D-uÈÉÛ·8^x*?ùm&ι5<Ÿë%Ïoúß pcj-èö &ɳ_¿w»:#^Ãpïàì%ÿù ".ñ�ã탚òÔÙï(ÿp¦†m;g”`Ú¼ñáGk½M\, ?{ǽpk"X�ø¯úÜj~,R‹˜² é€ÅvQ‘ÝF±x'õ¶åÌÖnjç!]Vu 5Þ»SÖFrè»9ó »ÚJŠJK[­Áe£®,NA퇄�º,HßyæAÞÑ»¾‘ÓËrXsеޏÈpÍêÿ”G„’û3 SíÊÑõ®Wt*Aƒo—@ñ�“¿)ân^Jñ4šfÄÀݵôøŠ|}ðâ›Ý~²B'8ë§}WŽè€=ï�Ø�Eà×”«¤5i@]Ô{5„�Öd«M+VäÚÎ¥¾æR¤É\7L’²,C:¾T¬ù–UN×í�íW}ž·íÝðŒx‘|ï.ñóßÐæ¨ÎU»¡QæðE|À«.™Ã<À{¾ 1!Ä @Ef•®¢€E{ºC’D¯—˜ÁT§‰›ŽMS{1ŸûÍêmU`Ü¢Óÿ¯�¨@ð+¥upOkho2ã ùpÈ|åBojüdï9‡(£Îi'݉f¸MµÔä¬ÓC`eaô(�’!‡h×Gtž›@Ñ”¥@ é1Ç6ù1¸°Á#9 HëîÇh©¨ ½|„ßÙ½t|蘲ڋ >>Ú�ÆTš^8¶zSÛV&š:NË#|…kæ9̪2’ï’ü‰ìë�N ås Ìô­ ©²+�ñ ƒ–@±<�àM—7n X Q)'£ù/W¬~žÜ~—õlËÃŽÆ%k j2è_f7WN²ŒWæò‡’$voҤωŠÿ :Ëqh!¯pžk’5gm”l‰êíQ ¸`Ö uó#dp>þÔÛM÷¼‚“YtÍÓ¹�w°Ú”ôÜ';�t™]ÙmæPù}?z-ä.Ü´¤¤íX>ù軺Z ŽÀÊ?B³£¹¡‰¥¸Óœ²el*ŽH ½ŸŸŽo·´~ wjr^“/ˆ³?�UWÌ ´øÛÆÕ.Þ#9HËʤ‹!²(æçWx<,Þª<Ý”’hz&xý¹g;ªÿ�™³†uYÆ,½K¾jK-ïø¡”–ÎÜÔŽ®�+åD˜A9tl¹çÚÔ6A¢… @Q‰à!ˆùm¹7½;~QÓˆp‰�Rl;Lli’Fʳ:—Qо&Š~È6W‚K8޽ç)o)²Ú÷^þY`IJɆ¸¹ùì áÙ ñL±µëgìû<‡jj'O(þCQtÌ lF„é·.!òײI ÝpïÇïãW[ì$w5Éû‘†;{‰k‚‚Gü†ÇÅšÛIZ3èTGÍ—âÒdî ÕyÚ OR©pÂòfÇåÕ Û^¼©’§Ï¥Öh+OÇGè™TËöG´~Šº¨×`R‚È3ö�NË·¼¸Ò:¤Ò󽪹ò$8HÏã_3°àO ‹ÉL`½êÅ@ }_ÙXÊ�ƒŸžúPÎŽ›SI•MÄ‹ÿ+\c¶›�I[µBË<«,��)uÎêœõ_rSè¥ËÝÃ$‹�{ ª§Þîål:£.“œc¸cf ÁÊÝKöv!qîƒÑ¿½Sl�Oíw/Ü3¦†\Šõ~¡5ÿxq{OÁÕÞs"ý‚•¸ë+Þ¤×*d.ÜÒUösšÊ¡ôû‡@ËþՉ܌ªƒ~´ž×Ÿd—¬*A ßPMwzj_+`ó®Ó‰Â‰™Ó®0TØ33Ž*cXeÂŽŸýjo, L€J³EK;HêS¤ÖþDª¯¨ÃÏéõá+E${x¢Üž(`öQ2ÞE¦d‡7K3>8óÆvØáAX �§qñ˜/Î�ÿï˜3“éëï Òà]� b&ŒQS³ÉÄ“†¶ÁqTŽù†nb?äWL/µ±??“a• †ƒz@C~T�ÁB…'ÁMÃYÝ·z^M@rÐ!õjâ»ÌO©MÝGC8Ê…MÛš éÝ š qýH‡­°ˆÄèÅyo_L’»ÒgVúž†‘�‰±9^¹j%àùcèžæÜ!ôÝ^‘¶4ºeË–yKð~|�N=Ì/+olQ¯ êÆ»êBp‡‘p;ÿ«þˆX¶MJnõpEó�×tºÁ|eÅyËf«ˆ!þ~ùys6TìÓj.2Ú�H‹t–][m �a¶S% Ìuj„F¡9}žRª6ûj"Ic ›ß{7D%ç×΋-LæÅÈ6Èþ%¡Z—FïΔþÔÙ£?ý+¤åÄJ>SÐ嫈 @�b�07 ƒBŸðqÖ�UÚÈœ âb†É¾×¹ùJpÜ= Á×øÛ/½DŠÙËý©w—‡Å4ž©Iþ—PüP€–P¿1Ý¥Ú¦]Íš¬» 7ð.—Æ`úGɸtà»·Ð7=†KtäÝöE”š”Wžv(Õ|UÅIðaæ¥W’SÍK`Ò¡¤á›ó¦ëÿ$…éAß1“œ¡/3nà´#ôðÝ„ i¬ê¨ßªœ\¿•´¯(´¹&qÁ ¸œ˜»fõ.5Dék/ƒøf/m“¼—UëýlVu1ª9ÐE-Ø9íî>íùÏ1Šð›æ¶�@ ±4ºL†%[Ê‚©ç9· ‡^ÏF"Žcpa§@év©ðCì—>­„€3-<\$ÂÎ ±Î bµáÎìŽñlýrI,5Aéj̸14Q毂Ý ©>‹gð“wÊÖ ë®Ã0«uÒV Pï÷ºô\ÄÖz¡â‚ëJ׿ƒƒ�X i³ê©å$Ê?L<†é±yûC úúìÉ£«µ¤ƒ/†˜®n纭é’[9`Ö�•2«u¥Å°nžÜ5hî§�[™÷YÊUI‚Àœ“õ>4^†^~7-0r ­Õ±F�È}°7¸ h§Uƒ)a›²�h”~‰#‚ÒW@T{–¬ÄêŠ×Ë)¦²‹ü\$*¾9¤ˆ7Ù&8ïÉæKB±ýR0µ˜û [Pº@êzɸÓÂŒ!Ð#®!|5´�¥erUAƒ$Ñ»-ÈQ4t>/‘O=rÊ—mæ aß¿Ÿâ½Ö ÿ€˜ní„#ñ BéÝQˆýo£vnªxñ¨5 åˆQSõÙ‘.t�p7üœÈ½z-åDÐ�3�$ ú"mB[šþøñÖ›/ÎéXÿrS† |'_ö½•öD1Ýô\+©¿v[í•Á°í¬�uaÞÉÚ¢ÊÌþ|k(ʶŸ(]ä(k“éÊGͤdSù œ(,ílí;ÚAÚ\{þOv#0@=š5O`ÜA]D>Ð}¾Oþ(THžÔ€nøùÊGGëÈ¥…P=Û¼U6óª:œþð:HÚ:Â÷–2jÜè䆰Õâ°â«b(‚`€À¿ àÀøkJJв­Ó">_KA�ØÓu;Gáeü÷*`=gŽHmàm~Õä'tþ§$‹9ð X%rhêÎ¥í�Á&k¨4§•:üëˆú J] ¬L »>{q6žÓLé*C}€dOšÎþˆæ Ï $‚Qs×S¨èÑ“€œW ¡ÙPBÊÄÚô¯®Ã6â4ð?Øû.¨¥-¡ú�A4ÿý�r ˆb>°êAýÍI/q·v¯#¡&5Ï�r�cõ‘øùS$}!Aq½èÌ%\ßwçãÒ]få"Fnù3Äï=OºV¢«Ú“áj_óô¸·›*9®ÔØõÌí© pÉr…LëEê�»EiŽ¢ñUp@²bäcþvê€kQèìnvû£´Pf˜ìŠ$B’�z"ØÖkÓ ‹áÞ0™�²³„ß èW…ÌÈ9jªL23­,}ç<,XLí‘•œí€ÊàÅ6þ÷YžÁæVmý1®tí¸Ò|00²W-L Ž%òŶ[Hî™~Ü{.#øRÌ-»Vîü½ÜrP:¤µú�º˜>ZfaR{‡–ˆzP¢H º¢Ÿp:…Ld¡#í ×Ãç´$*z¯­�ûőœóQÓ4ű+âZ”òÓä$£’  jê˜×U‘cd-úá¥6�¦£eõxv’?H/ŒÜûçr0^$²ïÊ®‡‰rŒä‘ ×—L˜òbOwÈ@Z3‹Æl›føp”d-ǰ;Òª–¬sï»ûÄ*éÚ½(Èa‹CUÎ�>gº>:®Qžâ÷âG²[9Lk  ¥þRIîw·=7ü¯®ñ«ˆ|;h.(“Ä{¦<ƺ-híü¾Ðè$Š>Ìy(” K+KÈ¥-gvüØ›<{8Õ¤±N4Üe«£ÞðNüµùsÑ*GÝù-�f-Kú/Õ løræáÔþOÖê«¥}dz+nŽàÞÌoÞ婸�W•£ÍB9µêM|¶R\†)Þ…}¾[ɺFc•šýVùÅ^jT!m5�¿ PW¯v½o ŽàH4÷m˜n3#7õ•jS¼nyÁ6áÔV|f¼ú•êl*½\f&_pÝçT°4•%™¥±5gÀ®!0CrU <Þ`Ék §I(j嘉–BB¤V‘$zƒ¡%M•"l\êœ'Á#2¶Öí�5’Ë1:_pc Ùît’°ÿ�YÖbË�&P¬4=pIÔGH@�ªè‡0ú^5ÏÄ>¢tX8V>åË7zŸk+ŠCœ^b­riûCeNRƒîÓ¶"”Ò�‚4ˆ¸Õ"râ†+3c¿µù {†¢±‹C¦åÓ^ÿb¨û®—Gb&£Ç_žm'/U¤u•»¯³Ì¡hÛòïp\£Pi&Z!öŸôm™üB£™vcK¢Œ�µÞušc'“UE±|¬­fõ'îß|˜#Ö¹é×sìs:ÚÄÜK)èéÒ7$À¬ËI¤ßd¯#УQõû�¯¢éLÏ�˜é©&�ï‰T)/P�*LŸ6ßl–ÕbÓ׿/÷/vQ±BÚŸÜôARÛ÷—æ}èbù -øýs\Íúa}}t‡ÚÜ¢Ïï(£‚açfy‘,5ÄE]´N{¡U¿ È'>Y’û4øÚƒs0rZìøîd€ö1SäÝ Û,1¬ã¨½÷þªŠ‚êf§pSý‚ó>£†pš8[vuˆ³�Rs 5%½B�ÔÖW!jp{�$â¡5 }À³…�#ºÉⲇȡ«Ÿ„NQ‰M,h•ÈGÉÓ«8eê ¶ ŒgDâ'2³äû  É'õ±~{sv§k¦¶q€0»/è‰ËŸ`¿Ñ)Ë:=Œ.r¥'1Z�£4;è.>g€0-QTBsJTe›ëåHl.ѸxRù¢ž£ØÃyé…Ç((¥ÀÞäëÙïþg ;úq¾…¶fÝ…:Úþ¶p¦A™ì7¬Â@º™ ª3Ô¡CÓ£”ÚHòã.Õ×HY ”‘ìƒÉöI Ñ§ò�ü¤X«ìã_8õŽIŠh°fŸ��×ýâ�kJœð»Ê’§'ÛZôp”®5é«¢ ûþüâ›!HR­Õ]åK¹L…âàøšÑöœ´µ T£×‹bÎ4~„!—e–¯÷‘pSléW-œsF Üfé-XÙ"J[-??LÎXÏrDd×ð{ Ô:¿�¶òþ¶tÌO¢¨2À mј¢®pª °­­ìè# bð¸�;øT^ý°í!¯'Î]�³7á0ü›ß½ïam²Y´FúøE üä_óíâ½Xt­QÓ¼Xrf€œCü††c™42¢•#yܸ Ä1ÚJäpÌô.qºväÝq(÷°Ë#hÃ'RS.‡é©kR'[‰éïä¡C,µ#¹6Ʋ])¿™ÂK9Ô@K|BúâJÛ.„Zÿ@BdÇX\�7'<3£q…µ[cé ðfoi$m�㈫Á¸œl»._.ªû×Lk…5#0n—¼\â2¢*IÆy?{å`÷iê&�A=[qN¼¤¾EiBÈ:™2݇TY+œÇ×=TÓ<øp@ôÍW$Y&¼ ƒ/Rå* ‡`]V~Éf  9`U¤(¿¥¡ûeÄžÀˆ§¬ÓXøØÝÌŠetì™]A(ìá`ë‡3#ú\v>YWѼ̺DG5ºÄŠí3´<]ŠPœÒOk;F´ª©*h r´·ÉQšeÜN(Ù*½äj†~М¹ùézsQ|�/¢ÚTÃ3 �B@ë›d6&ƒ V]e1†í8%¢þˆ²5Ð ›ôÌ%c’²|¶7†Ó©Oöm¡œÐ"G÷vyƒxË1¥]£Æ\dø15Éˉp>úpñ•þÂ,¨ö�+¥HÞA¹†1Þ³l+’… î|ƒÜ‡»@sTì÷¯l0o¤ì0¸ï49ùþ’%Y �>—w_Ùè\^| �3}üž œAŒöÌJ n Æôcª9£CÂM¾c ža¿„À¤¸þóгØþ¡;ÊhZ\Ú¡Ž)¥Ë°™ºN€=ýh+nVU„ÎoéÀäÏÄ׬m ¹@…‚Ê„ÑëC6e-7�toÎX~i‹×›$Ž\ ª‰vOpÒ™Á¢�W¡ð¿­ÌDQЪ„¼iíŠq é¶®†¦A™¿]ÛÏQÅb ' tà‡ÁfËdÞÉ3‡)ðã[+´dW ÐñEi–þPÿ»$>ȵÄÚ‘´:C\Ö‡-ºkž‘Ô9…´œZ?˜¼¼F™Èá¡V� ¦|¾º­•ÍrâÅÔ…ˆUü–é”ôŽŽ»‘ó¨½Çj,p yþÑO,€4½ª€A¢,)æw3 3§Çé¢ pä²Ö3Άu à|æ/¥æRyû…)i@Ãu6v9šéŒÀàÕAëÙÞÿ¾¿fæ�� ´°"¾äF»epÁåœÍúQSܾÿÏ1Í(O+�ÅÈ}X·?/V�!ZÆi¿÷¶JJ4a°RLg\Æ!×ÖÎI‡èÕ¿ú“[ø"™Â+*„»ŠRmlðž@ôd8)1ÍpyV':™dÒ¬ÖvEU3ü>îoÃä¾›—ÈIN\%ÞŠë…M=ÿ{˜Íz˜D7õrŒÇœ ž9t|Ej—|_P�•úlL`Þšà‡‚çrßr4+µP¢ÚmQ,®–®áý› ÀF·[iø„f\ÒDò¸`¬´ £¼ÂQœÌù?ìq¶°Ôj›À‘7ËêoËP!EKÏ?jºÈëœSL�guwo{—4>³!©>¾ Ø];S{�SG4À@�¿Z(™”ñŠŒ Õo8O¬érìd´| Ñ|CܬpàL-<}£ØÄFÌ{–‚,÷Õxp´?sÑ*4>Ðh¹°¾ß–ÎqãØÞùBvDv[•]úùÈl¡;5ápÞ¢ÉîŸ#…—M›mÕú{ûw�õ³µ@Î;×{øv_ÌRåÆýg~ �ë”\^h9Ú÷n*˃'ï².”+­ž/…M‡Ü�!ùK†¢K"I.·åιÞßk¢&ã6—A®sìÀ¨Ž”ÍC«½±ƒ=Tþo}-þ)†i#“~Ã#²¹ÆyÊÁ3&ÖŃދô³Í6èÔÊÐèÀW•ã,ê9¶âY%]÷}Ü›<Žƒ‘±¨OK‰k˜|©CC"ì·‰]MT(•4wëÅ!懮<©ÓÌu¹5Aà®á¢�Wƒ'^v 7 ŽËOØÓg…5ÍvPW˜ŽŠW×;^°±hú˜M%W×å8]Ä‚‘ðœØ…¸WíkxV\Mèö®˜õKáx@½¦ ‘n¸ð}L&$éœÉô@ÀÌ~'dFbnÒ¦u�‰��ëùAUq"˜4‰‘)ÆSêi.jŸY Z¿ŸŠ©ä䪢ˆƒøy#ýœRKFšd¯þ;co°–HÁéñ° g~ÇBàèJÃðZø×ÇbÑ6NߢBDE¯æ#£®¬¾bõAª“¹õ�Uù:À®ÇL€{°Üøe©ñPú†e`yÑ\Ø[]>8NÌ׎‡f¢‘gFieC¾ô@"M)ðíÉnêçgÝ™ô–~øÄ“�/†¡“pc%¨·Ž™›¤ Ð)\ï�… ¾:â´6CñZt‹ñó"T:È *¥�®Ô\Ø›\_I9¥Z�e¨Yt¥%i­=¼ÐØ^¬Ù¢&jy¦p¿cbpftN�O–¼8_j†ètš\«Ë¹0ñ8\L}¿%¶¸Ï\ž¹÷ Ãßlo˜ “B²ÓÀ3Ì¢=ƺ|Ä݃!7b°k®sWÔz¢ž›Û½¤¨VTj‡•k.ïÀN¢Æ³bæûG�b¶Än% >¨YÆJ#ubá©… ‚JèDž>LRåVþr°D}’UÁõÉ?[ÍØÌ fÅÒÄ,Zsöàs)ÞqÁý�½‘VY„|‰Îì‡�²,``‚ð%óQ”Väšõ2é7oßGªð²MƒNXÈ6ÈV’' D¯¼r?ÇóGAÖÆ}¬ÙôÌ‘ï°W3£â Ò¬êÀ ɽ4Bê ¡TÌþÅÒµA>ï(¾Óý•€õPós¯ÛP§¡é9b)_…Z.Ï-ÄHà| bxù”û©ÑÁÉ•BjFU¸ÝK–¶®”ÒÏè¾ Þß0ܸAë óŸa+X]ºÅ0V¼_Õ!ofŒX«�>ÅpàU=bÅ>Àˆèå«Á¢Kµ4Ø/.š+ÏNreH�V"lÛ*�pé2Úƒ ¨þn Hj®­*[“CyT®ä%M—Çô̇Ɋ;R»UõÂõÅÆ”ÐVõ{Ò�¶£@|�ñnvÜ:×#´’M­Å7æ bXÃ?‚SÇò®Ê&z`¤dCvyÙî|Ïã´7X‘êê›[T¬ ¹'¡ß"F ­«[߀T UüÙ02«ñé>á0$ae,Þ~zø ã™¶’îÊÿ?°ÈæûºêMJF!’�JlÓ…í1§þù”Ú¬­|ÍÊZóÕôîP´Î‹Žü Ø¶°CšèWõ쟹B£ÎŠ‚w1�mMÈB‘mÇtø�9(µc»ŒZ(¥¼×µÎþr6·­Úå.¡#ù þômÙŠœSˆÿ±À[:ðÂÄÏ ·–›¼œÔB{mL��xè Ï):râ»`:V¢AMp9ŽÏ}Ødg§žxK‘ó_E§ mèù¿nê¬TÌaM§H~Ƽ”ªÈã¿po ±9acE™/¼§c²‰6/üÞp~™Üî4ï=šÉZ_Ù·ðÎuÙÚ3F4ª£6Hv»þ/'¸Ú¿Ó„ØS¾‰­³"Æ-?õFûCJþƒûûº�ÂQ¤Ì4= ß²‹®ÖpÖûa�Krú6ŠÜI÷‡ÉòTH7ÏÀœùÁˆœÙàùVœ%ò¹¶Ly·eµ¦y¼ÞÊ«5>¸Ff"´ÑŒÙ…õd§:HzºtU!¸:Ò^=V“«7©Ò!œ£Qz&8Ç´.[”ÇOÒa‰Ó-³&4ŽÒ)”Ô«ì«é{'‰œD%¹÷!v²5#ó.ú² |#Ô!”v�ŨÔ$BU˜h¬Æ÷ÿA™÷NU‰‡y,�ß †9åópæ5~htu3[�ÎØÙ/Ü”åkß €NŠ7òŸÁ×{ßGø\J+ÖHȯè&ÿëÔ•üæðƒã§kˆØòðy8>”ÝTM_ÀIf“[uŠU› QZÏŠ+šXqÈ‹‚Ð8“ž aÙ‚ªXA'�IEÍt­_”Ï‘�…нN=¸ž ÉÞ·z—Òå2þIÞÆ�Õ‰ÔÔÎ�Hhh!öÃÀ1Yõ}ƽ ±†LœM"j?Á3½ÜZñvrb2†Þ“5o‚1s>ðµÌa~œMâAb¦:KnÙ^g«3ɬzÌÒ]3áºôКø$#južÇö¡²å¨™´ðb.Y¬.%½ÞuÝå…é»;³PK¸JAÕ²˜ÛÁ� ¬òtû}+•a�¥Ý"yá°?q„Kçdû”ÜÀoë}?pÌÚ¥R9­B_¤l4‹¾z*x×”²çÂòý="xD8Ex\u®Wdä»ÇuPØ–ª¯]-'neš9oŒ ºt¤›¢�@ A‚SñŸ~Sc–©»PòZu®œ"„ŽhPÊwð²2Žæ·ê@РÚ'ô+ ó™ñM¸µN8j�J°|šªÛ*u °d˜Íf»fCB¹4‰:†rïïP¦@ViðTyŸûTPÙqÊNêâc¯½ÄI>A5Ð d\YF¶ëXeÖâÉ�Fr´/ž³;¦³ƒ.×ÉÞæ'ÆbI‰Öä=s`¯íˆ¡MJ-H†EuuMÙ@zëÛÞHvÏœ¿üo«ÅðêœkõÊÎL w’‚š¸§+Z¾c“òäÙI%tA,Mú6n�ÌgYÝ8Ao‹ä" —@Fžf‰kþ0’Ü`�ŸÈp!ü 8âŠP-†éŸ|™œ<_}¤é¥þ�°uHä�ARÒ ̆å£óòpUbìæÁ豜%šE'ˆrØ( d3uRÇGýïêª ¬-ÃLÛ?÷€k¤{=�vDU2qïñ×,µWëØe’ Ù¾ë,õ#Úv¼ášÜ†½êœäï ±XT74qüAT±…®j X q†'覞?v›3‡ö³žA„!M6(ÊáÇKPçó& áRÉOgãTDòª#þ§Ë=H6ÃM& ùvè±›ð,IÚ‹¡çòãy¨�"5�°m“a·áCÖe{F+T�|æÅÚ%ÞÆñkb­[^q¥ýûk϶R´A”¢:M€D;BûOš78�%Ø!Qp>§rc>©» K‹EQߎ ë}q݈ YW2í-ùYZ!³#&Œ¾¬o-›‘û&à�³Þn¨¨²èaMZ9mB”ÇÍ!›Å.k=’¹øã¥ë“PÝ 7¾kpƒo˜ÉÓ£ÊULâBû1Ž’7w\nݰ í�=ˆ€ç l“³˜ÛFÉÅõBÌW‘µ”˜ë»Î“ŒÞxõ]{ø–œ.€'h•°•o{l¢îB˜‡ø´4ÏMB8˜!„m¾ŸØ¼sÔ¨¶Æ%³eŠ%•|ѦÃ0ë­[áJªN¶b0S%¥¸ø� §-sš‰p2\õ¬äšJªÌ( qVÅ]™ýàÓîŒ\©€Ú”jzjÁ~3o6,áûg¦@ýø}egHĦ2zÑ[!n –ž™ëo`ÁZ”(ɪLð}þ%;£n hQ¥~ø]” H¼J¬ó˜HqáG|¥I³!†Øjº:Wúr‹Uúº c#·«ÅJ¿mí@aßã`ÐÇ´ߌÞ8ü4ïª�­ì˜|”O=Äò½ÏÉm*$NBJ¶R~‹®ÛuÕúÍRr]a-`1á"ýEÄ6Òêêíà#£“lÄõk“Î}dCë6bÙEº°‹êQ`II/ƒ~-Ûõõþ²VÖ€®ô ~æ®Rˆ|ż/[û�í2cú­<÷ºvèSŽdbí…&dðË%䱓˜Ú0zA€/Äú¬_wÛR ¾ó5`4A¿›¸[Ÿ¨ƒ†ñ‡êþ¼îUU¹ ‘´Qˆ›bÅßEÖ®†L_æ¾kYvï|ÕÑ’Ê2}€M0ú´ÊÁ×Í3?Qì÷¬ÆUVZ€O9"j”¯8ÚH4?…›º÷ >"(}RÍ“cÛŽ„ùiøŠè¸ÓûzŸŒ¦¨ËÅU´:™Rµ¯qB" †óª>£efn&Îýþ¹$Pƒþ¥ˆ¯F$b’hÐÕú‚ƒOǼHàeˆŽn�Üy`|§†`óL¢>Œúç‰Ù¶.�+Ÿ$ &>lUŠA劜)–üÜ¥%ÆcѰùœ×ƒo†c ‚©.Ò qd.-Ü[ý`µÕÔé€úmlz�C)àÓþ8ã=²ÇŽdÞÛ"ÚBq7Z^݈+ŒÖ‡µ…­xX4 ÏEüʦÖîÒs³·ª‹qùàÀíÞ»”:H bï× ¼ë³°gwå³i蘶dmgÈù¥a�“›Î‰në�Þ?ŒÍx¡XIX%è[.tÒSó‰8=»}¨ù´imÉÁ¨M9jþE%ÃÑàk ê/ñ7ëV¢ÓZã�™•w¡®€ü$†a—l¥ô°i(³»t íÌ<-íˆD“e=òÿ»i &ÕXhTô‚WÍ“0q ©çóAäÝ®*_ 3#]ÝëÍÉÂßTy±›% •›²üÎ` ›C«Ü½(kô/ôHÌ/²§7ùMqu@^ñù€¥#è¤ÏÚ¡(£>‘îaaÀGc820ÙˆåV£e_+ê�…!èžöQÒ] ;kþ'ŠHzMK÷wð'ñ8Faíhp•—,½'ÚU•äoÂO†òÜñ�Ø=�ÞøIC,�’Yâ5=øDßI¹8 Î?Àµ7iŽYY¨¸ï,[×·]ETÔ0#‹¨c“­•L"eè��ñ”+R  !ù±ªÜÕ�#Ë‘À'‹ Œ´ÂkJ|ê‚ÿP´R7¨=±‰\ß`5 ¬úIÕú�]ùÑÇÿ×107⼃™îå Œw«höÁjcãÃ>“‡7#¤sçXþsüñ„ñ*nÓ˨ƒinå¸UÙÃÈ’H¯ u�9ÚËYÚú†©4àC;�7ÍðýeÎ`gEÊe4A¥†íÒíɡֵCZ�ïy¼ Brˆ\ãÇè?c,³×CûVü®¢š·!J')ü†$™`Y‹.¶à½û ¾mŽ[©B€®š鸥é'ª5Ý JáRjÙ{²Ëª½T›ãu òȵ­6XÄELKu(^õfœ ŵD%+q,˜ {p™Èf4xåë‰ð̇�ïMÃ[VPÜk¯18}²fM”Rª±@ß³\ZÚ¨´ö]æ4íKç‹Ös¸�N9œb¿ JX7µdXŽ,èrÏ,‚¡y{&tÃK´À‚—�:H9ȈæÊçéÓ¥(LÙ‡‘ü{dV¼«¤fá Ü>ÁJÂíoÎ,^'Ú=ž[¨_X�§;6¿ÇÕõê|Õd` •œÂų $µ ˆÔ<‘Ž¿£¥cG°©½ÑÎÔp­ï ×u˜“R¬Š±ÄgûYZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata ÈÈ$öÿÿoððÀ( °°Ѐ0€†€†vb8ÿÿÿoöèöè¼ Eþÿÿo¸ó¸ó°Thôhô ¾^Bˆ²ˆ²Ð}hX0X0c€0€0ðSnp„p„_" tЦ Ц zঠঠ‡æ ‚h� h� ôR�`à `à ÀLš00.00¦80.80²@0.@0ð ¿0=.0=ðÈ ?. ?ÈÍ@.@*Ö j. jðF ܱ.± á0±n±$÷4±,`±ü:\ìPKJ½N]«­Tki i tests/test_builtins.luanu„[µü¤local math = require('math') local luaunit = require('luaunit') local cache = require('webshield.builtins.cache') local class = require('webshield.builtins.class') local etable = require('webshield.builtins.etable') TestCache = {} function TestCache.test_cached_return_value() local test_cache = cache.Cache() math.randomseed(os.time()) local function rnd() return math.random() end local r1 = rnd() local r2 = rnd() luaunit.assertNotEquals(r1, r2) rnd = test_cache(rnd) local r3 = rnd() local r4 = rnd() luaunit.assertEquals(r3, r4) test_cache:invalidate() local r5 = rnd() local r6 = rnd() luaunit.assertNotEquals(r4, r5) luaunit.assertEquals(r5, r6) end function TestCache.test_cached_return_multiple_values() local test_cache = cache.Cache() local function f() return 1, 2 end f = test_cache(f) local res = {f()} luaunit.assertEquals(res, {1, 2}) end local Class1 = class() Class1.x = 'x1' local Class2 = class() function Class2.__init(self) self.y = 'y2' end local Class3 = class(Class2) function Class3.__init(self) Class3.__super().__init(self) self.z = 'z3' end local Class4 = class(Class1, Class2) Class4.x = 'x4' Class4.z = 'z4' TestClass = {} function TestClass.test_class_attribute() local obj = Class1() luaunit.assertEquals(obj.x, Class1.x) end function TestClass.test_instance_attribute() local obj = Class2() luaunit.assertIsNil(Class2.y) luaunit.assertNotNil(obj.y) end function TestClass.test_inheritance() local obj = Class3() luaunit.assertEquals(obj.x, Class3.x) luaunit.assertIsNil(Class3.y) luaunit.assertIsNil(Class3.z) -- Class2.__init called explicitly via Class3.__super().__init luaunit.assertNotNil(obj.y) luaunit.assertNotNil(obj.z) end function TestClass.test_multiple_inheritance() local obj = Class4() luaunit.assertIsNil(Class4.y) luaunit.assertNotNil(Class4.z) luaunit.assertEquals(obj.x, Class4.x) -- Class2.__init called implicitly luaunit.assertNotNil(obj.y) luaunit.assertEquals(obj.z, Class4.z) end TestEtable = {} function TestEtable.test_equal_keys() local t = {} local et = etable() local k1 = {1} local k2 = {1} t[k1] = {123} et[k1] = {456} luaunit.assertNotIs(k1, k2) luaunit.assertIsNil(t[k2]) luaunit.assertIs(et[k1], et[k2]) end function TestEtable.test_init_value() local et = etable({hello = 'world'}) luaunit.assertEquals(et.hello, 'world') end os.exit(luaunit.LuaUnit.run()) PKJ½N]÷€3]n n ngx/ssl/session.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local base = require "resty.core.base" base.allows_subsystem('http') local ffi = require "ffi" local C = ffi.C local ffi_str = ffi.string local get_request = base.get_request local error = error local errmsg = base.get_errmsg_ptr() local get_string_buf = base.get_string_buf local FFI_ERROR = base.FFI_ERROR ffi.cdef[[ int ngx_http_lua_ffi_ssl_set_serialized_session(ngx_http_request_t *r, const unsigned char *buf, int len, char **err); int ngx_http_lua_ffi_ssl_get_serialized_session(ngx_http_request_t *r, char *buf, char **err); int ngx_http_lua_ffi_ssl_get_session_id(ngx_http_request_t *r, char *buf, char **err); int ngx_http_lua_ffi_ssl_get_serialized_session_size(ngx_http_request_t *r, char **err); int ngx_http_lua_ffi_ssl_get_session_id_size(ngx_http_request_t *r, char **err); ]] local _M = { version = base.version } -- return session, err function _M.get_serialized_session() local r = get_request() if not r then error("no request found") end local len = C.ngx_http_lua_ffi_ssl_get_serialized_session_size(r, errmsg) if len < 0 then return nil, ffi_str(errmsg[0]) end if len > 4096 then return nil, "session too big to serialize" end local buf = get_string_buf(len) local rc = C.ngx_http_lua_ffi_ssl_get_serialized_session(r, buf, errmsg) if rc == FFI_ERROR then return nil, ffi_str(errmsg[0]) end return ffi_str(buf, len) end -- return session_id, err function _M.get_session_id() local r = get_request() if not r then error("no request found") end local len = C.ngx_http_lua_ffi_ssl_get_session_id_size(r, errmsg) if len < 0 then return nil, ffi_str(errmsg[0]) end local buf = get_string_buf(len) local rc = C.ngx_http_lua_ffi_ssl_get_session_id(r, buf, errmsg) if rc == FFI_ERROR then return nil, ffi_str(errmsg[0]) end return ffi_str(buf, len) end -- return ok, err function _M.set_serialized_session(sess) local r = get_request() if not r then error("no request found") end local rc = C.ngx_http_lua_ffi_ssl_set_serialized_session(r, sess, #sess, errmsg) if rc == FFI_ERROR then return nil, ffi_str(errmsg[0]) end return true end return _M PKJ½N]BjÌŸoongx/ssl/proxysslverify.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local base = require "resty.core.base" base.allows_subsystem('http', 'stream') local ffi = require "ffi" local C = ffi.C local ffi_gc = ffi.gc local ffi_str = ffi.string local get_request = base.get_request local error = error local errmsg = base.get_errmsg_ptr() local FFI_OK = base.FFI_OK local FFI_ERROR = base.FFI_ERROR local subsystem = ngx.config.subsystem local ngx_phase = ngx.get_phase local ngx_lua_ffi_proxy_ssl_set_verify_result local ngx_lua_ffi_proxy_ssl_get_verify_result local ngx_lua_ffi_proxy_ssl_get_verify_cert local ngx_lua_ffi_proxy_ssl_free_verify_cert if subsystem == 'http' then ffi.cdef[[ int ngx_http_lua_ffi_proxy_ssl_set_verify_result(ngx_http_request_t *r, int verify_result, char **err); int ngx_http_lua_ffi_proxy_ssl_get_verify_result(ngx_http_request_t *r, char **err); void *ngx_http_lua_ffi_proxy_ssl_get_verify_cert(ngx_http_request_t *r, char **err); void ngx_http_lua_ffi_proxy_ssl_free_verify_cert(void *cdata); ]] ngx_lua_ffi_proxy_ssl_set_verify_result = C.ngx_http_lua_ffi_proxy_ssl_set_verify_result ngx_lua_ffi_proxy_ssl_get_verify_result = C.ngx_http_lua_ffi_proxy_ssl_get_verify_result ngx_lua_ffi_proxy_ssl_get_verify_cert = C.ngx_http_lua_ffi_proxy_ssl_get_verify_cert ngx_lua_ffi_proxy_ssl_free_verify_cert = C.ngx_http_lua_ffi_proxy_ssl_free_verify_cert elseif subsystem == 'stream' then ffi.cdef[[ int ngx_stream_lua_ffi_proxy_ssl_set_verify_result( ngx_stream_lua_request_t *r, int verify_result, char **err); int ngx_stream_lua_ffi_proxy_ssl_get_verify_result( ngx_stream_lua_request_t *r, char **err); void *ngx_stream_lua_ffi_proxy_ssl_get_verify_cert( ngx_stream_lua_request_t *r, char **err); void ngx_stream_lua_ffi_proxy_ssl_free_verify_cert(void *cdata); ]] ngx_lua_ffi_proxy_ssl_set_verify_result = C.ngx_stream_lua_ffi_proxy_ssl_set_verify_result ngx_lua_ffi_proxy_ssl_get_verify_result = C.ngx_stream_lua_ffi_proxy_ssl_get_verify_result ngx_lua_ffi_proxy_ssl_get_verify_cert = C.ngx_stream_lua_ffi_proxy_ssl_get_verify_cert ngx_lua_ffi_proxy_ssl_free_verify_cert = C.ngx_stream_lua_ffi_proxy_ssl_free_verify_cert end local _M = { version = base.version } -- return ok, err function _M.set_verify_result(verify_result) local r = get_request() if not r then error("no request found") end if ngx_phase() ~= "proxy_ssl_verify" then error("API disabled in the current context") end local rc = ngx_lua_ffi_proxy_ssl_set_verify_result(r, verify_result, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end -- return verify_result, err function _M.get_verify_result() local r = get_request() if not r then error("no request found") end if ngx_phase() ~= "proxy_ssl_verify" then error("API disabled in the current context") end local rc = ngx_lua_ffi_proxy_ssl_get_verify_result(r, errmsg) if rc == FFI_ERROR then return nil, ffi_str(errmsg[0]) end return rc end -- return cert, err function _M.get_verify_cert() local r = get_request() if not r then error("no request found") end if ngx_phase() ~= "proxy_ssl_verify" then error("API disabled in the current context") end local cert = ngx_lua_ffi_proxy_ssl_get_verify_cert(r, errmsg) if cert ~= nil then return ffi_gc(cert, ngx_lua_ffi_proxy_ssl_free_verify_cert) end return nil, ffi_str(errmsg[0]) end return _M PKJ½N]÷£?IU$U$ngx/ssl/clienthello.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local base = require "resty.core.base" base.allows_subsystem('http', 'stream') local ffi = require "ffi" local bit = require "bit" local bor = bit.bor local C = ffi.C local ffi_str = ffi.string local get_request = base.get_request local error = error local errmsg = base.get_errmsg_ptr() local get_size_ptr = base.get_size_ptr local FFI_OK = base.FFI_OK local subsystem = ngx.config.subsystem local ngx_phase = ngx.get_phase local byte = string.byte local lshift = bit.lshift local table_insert = table.insert local table_new = require "table.new" local intp = ffi.new("int*[1]") local get_string_buf = base.get_string_buf local ffi_ushort_pointer_type = ffi.typeof("unsigned short *") local ffi_cast = ffi.cast local ngx_lua_ffi_ssl_get_client_hello_server_name local ngx_lua_ffi_ssl_get_client_hello_ext local ngx_lua_ffi_ssl_set_protocols local ngx_lua_ffi_ssl_get_client_hello_ext_present local ngx_lua_ffi_ssl_get_client_hello_ciphers if subsystem == 'http' then ffi.cdef[[ int ngx_http_lua_ffi_ssl_get_client_hello_server_name(ngx_http_request_t *r, const char **name, size_t *namelen, char **err); int ngx_http_lua_ffi_ssl_get_client_hello_ext(ngx_http_request_t *r, unsigned int type, const unsigned char **out, size_t *outlen, char **err); int ngx_http_lua_ffi_ssl_set_protocols(ngx_http_request_t *r, int protocols, char **err); int ngx_http_lua_ffi_ssl_get_client_hello_ext_present(ngx_http_request_t *r, int **extensions, size_t *extensions_len, char **err); /* Undefined for the stream subsystem */ int ngx_http_lua_ffi_ssl_get_client_hello_ciphers(ngx_http_request_t *r, unsigned short *ciphers, size_t ciphers_len, char **err); /* Undefined for the stream subsystem */ ]] ngx_lua_ffi_ssl_get_client_hello_server_name = C.ngx_http_lua_ffi_ssl_get_client_hello_server_name ngx_lua_ffi_ssl_get_client_hello_ext = C.ngx_http_lua_ffi_ssl_get_client_hello_ext ngx_lua_ffi_ssl_set_protocols = C.ngx_http_lua_ffi_ssl_set_protocols ngx_lua_ffi_ssl_get_client_hello_ext_present = C.ngx_http_lua_ffi_ssl_get_client_hello_ext_present ngx_lua_ffi_ssl_get_client_hello_ciphers = C.ngx_http_lua_ffi_ssl_get_client_hello_ciphers elseif subsystem == 'stream' then ffi.cdef[[ int ngx_stream_lua_ffi_ssl_get_client_hello_server_name( ngx_stream_lua_request_t *r, const char **name, size_t *namelen, char **err); int ngx_stream_lua_ffi_ssl_get_client_hello_ext( ngx_stream_lua_request_t *r, unsigned int type, const unsigned char **out, size_t *outlen, char **err); int ngx_stream_lua_ffi_ssl_set_protocols(ngx_stream_lua_request_t *r, int protocols, char **err); ]] ngx_lua_ffi_ssl_get_client_hello_server_name = C.ngx_stream_lua_ffi_ssl_get_client_hello_server_name ngx_lua_ffi_ssl_get_client_hello_ext = C.ngx_stream_lua_ffi_ssl_get_client_hello_ext ngx_lua_ffi_ssl_set_protocols = C.ngx_stream_lua_ffi_ssl_set_protocols end local _M = { version = base.version } local ccharpp = ffi.new("const char*[1]") local cucharpp = ffi.new("const unsigned char*[1]") --https://datatracker.ietf.org/doc/html/rfc8701 local TLS_GREASE = { [2570] = true, [6682] = true, [10794] = true, [14906] = true, [19018] = true, [23130] = true, [27242] = true, [31354] = true, [35466] = true, [39578] = true, [43690] = true, [47802] = true, [51914] = true, [56026] = true, [60138] = true, [64250] = true } -- return server_name, err function _M.get_client_hello_server_name() local r = get_request() if not r then error("no request found") end if ngx_phase() ~= "ssl_client_hello" then error("API disabled in the current context") end local sizep = get_size_ptr() local rc = ngx_lua_ffi_ssl_get_client_hello_server_name(r, ccharpp, sizep, errmsg) if rc == FFI_OK then return ffi_str(ccharpp[0], sizep[0]) end -- NGX_DECLINED: no sni extension if rc == -5 then return nil end return nil, ffi_str(errmsg[0]) end -- return extensions_table, err function _M.get_client_hello_ext_present() local r = get_request() if not r then error("no request found") end if ngx_phase() ~= "ssl_client_hello" then error("API disabled in the current context") end local sizep = get_size_ptr() local rc = ngx_lua_ffi_ssl_get_client_hello_ext_present(r, intp, sizep, errmsg) -- the function used under the hood, SSL_client_hello_get1_extensions_present, -- already excludes GREASE, thank G*d if rc == FFI_OK then -- Convert C array to Lua table local array = intp[0] local size = tonumber(sizep[0]) local extensions_table = table_new(size, 0) for i=0, size-1, 1 do extensions_table[i + 1] = array[i] end return extensions_table end -- NGX_DECLINED: no extensions; very unlikely if rc == -5 then return nil end return nil, ffi_str(errmsg[0]) end -- return ciphers_table, err -- excluding GREASE ciphers function _M.get_client_hello_ciphers() local r = get_request() if not r then error("no request found") end if ngx_phase() ~= "ssl_client_hello" then error("API disabled in the current context") end local buf = get_string_buf(256) -- 256 bytes is short[128] local ciphers = ffi_cast(ffi_ushort_pointer_type, buf) local cipher_cnt = ngx_lua_ffi_ssl_get_client_hello_ciphers(r, ciphers, 128, errmsg) if cipher_cnt > 0 then local ciphers_table = table_new(16, 0) local y = 1 for i = 0, cipher_cnt - 1 do local cipher = tonumber(ciphers[i]) if not TLS_GREASE[cipher] then ciphers_table[y] = cipher y = y + 1 end end return ciphers_table end return nil, ffi_str(errmsg[0]) end -- return ext, err function _M.get_client_hello_ext(ext_type) local r = get_request() if not r then error("no request found") end if ngx_phase() ~= "ssl_client_hello" then error("API disabled in the current context") end local sizep = get_size_ptr() local rc = ngx_lua_ffi_ssl_get_client_hello_ext(r, ext_type, cucharpp, sizep, errmsg) if rc == FFI_OK then return ffi_str(cucharpp[0], sizep[0]) end -- NGX_DECLINED: no extension if rc == -5 then return nil end return nil, ffi_str(errmsg[0]) end -- tls.handshake.extension.type supported_version local supported_versions_type = 43 local versions_map = { [0x002] = "SSLv2", [0x300] = "SSLv3", [0x301] = "TLSv1", [0x302] = "TLSv1.1", [0x303] = "TLSv1.2", [0x304] = "TLSv1.3", } -- return types, err function _M.get_supported_versions() local r = get_request() if not r then error("no request found") end if ngx_phase() ~= "ssl_client_hello" then error("API disabled in the current context") end local sizep = get_size_ptr() local rc = ngx_lua_ffi_ssl_get_client_hello_ext(r, supported_versions_type, cucharpp, sizep, errmsg) if rc ~= FFI_OK then -- NGX_DECLINED: no extension if rc == -5 then return nil end return nil, ffi_str(errmsg[0]) end local supported_versions_str = ffi_str(cucharpp[0], sizep[0]) local remain_len = #supported_versions_str if remain_len == 0 then return nil end local supported_versions_len = byte(supported_versions_str, 1) remain_len = remain_len - 1 if remain_len ~= supported_versions_len then return nil end local types = {} while remain_len >= 2 do local type_hi = byte(supported_versions_str, remain_len) local type_lo = byte(supported_versions_str, remain_len + 1) local type_id = lshift(type_hi, 8) + type_lo if versions_map[type_id] ~= nil then table_insert(types, versions_map[type_id]) end remain_len = remain_len - 2 end return types end local prot_map = { ["SSLv2"] = 0x0002, ["SSLv3"] = 0x0004, ["TLSv1"] = 0x0008, ["TLSv1.1"] = 0x0010, ["TLSv1.2"] = 0x0020, ["TLSv1.3"] = 0x0040 } -- return ok, err function _M.set_protocols(protocols) local r = get_request() if not r then error("no request found") end if ngx_phase() ~= "ssl_client_hello" then error("API disabled in the current context") end local prots = 0 for _, v in ipairs(protocols) do if not prot_map[v] then return nil, "invalid protocols failed" end prots = bor(prots, prot_map[v]) end local rc = ngx_lua_ffi_ssl_set_protocols(r, prots, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end return _M PKJ½N]…ð}¼}}ngx/ssl/proxysslcert.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local base = require "resty.core.base" base.allows_subsystem('http', 'stream') local ffi = require "ffi" local C = ffi.C local ffi_str = ffi.string local get_request = base.get_request local error = error local errmsg = base.get_errmsg_ptr() local FFI_OK = base.FFI_OK local subsystem = ngx.config.subsystem local ngx_lua_ffi_proxy_ssl_clear_certs local ngx_lua_ffi_proxy_ssl_set_der_certificate local ngx_lua_ffi_proxy_ssl_set_der_private_key local ngx_lua_ffi_proxy_ssl_set_cert local ngx_lua_ffi_proxy_ssl_set_priv_key if subsystem == 'http' then ffi.cdef[[ int ngx_http_lua_ffi_proxy_ssl_clear_certs(ngx_http_request_t *r, char **err); int ngx_http_lua_ffi_proxy_ssl_set_der_certificate(ngx_http_request_t *r, const char *data, size_t len, char **err); int ngx_http_lua_ffi_proxy_ssl_set_der_private_key(ngx_http_request_t *r, const char *data, size_t len, char **err); int ngx_http_lua_ffi_proxy_ssl_set_cert(void *r, void *cdata, char **err); int ngx_http_lua_ffi_proxy_ssl_set_priv_key(void *r, void *cdata, char **err); ]] ngx_lua_ffi_proxy_ssl_clear_certs = C.ngx_http_lua_ffi_proxy_ssl_clear_certs ngx_lua_ffi_proxy_ssl_set_der_certificate = C.ngx_http_lua_ffi_proxy_ssl_set_der_certificate ngx_lua_ffi_proxy_ssl_set_der_private_key = C.ngx_http_lua_ffi_proxy_ssl_set_der_private_key ngx_lua_ffi_proxy_ssl_set_cert = C.ngx_http_lua_ffi_proxy_ssl_set_cert ngx_lua_ffi_proxy_ssl_set_priv_key = C.ngx_http_lua_ffi_proxy_ssl_set_priv_key elseif subsystem == 'stream' then ffi.cdef[[ int ngx_stream_lua_ffi_proxy_ssl_clear_certs(ngx_stream_lua_request_t *r, char **err); int ngx_stream_lua_ffi_proxy_ssl_set_der_certificate( ngx_stream_lua_request_t *r, const char *data, size_t len, char **err); int ngx_stream_lua_ffi_proxy_ssl_set_der_private_key( ngx_stream_lua_request_t *r, const char *data, size_t len, char **err); int ngx_stream_lua_ffi_proxy_ssl_set_cert(ngx_stream_lua_request_t *r, void *cdata, char **err); int ngx_stream_lua_ffi_proxy_ssl_set_priv_key(ngx_stream_lua_request_t *r, void *cdata, char **err); ]] ngx_lua_ffi_proxy_ssl_clear_certs = C.ngx_stream_lua_ffi_proxy_ssl_clear_certs ngx_lua_ffi_proxy_ssl_set_der_certificate = C.ngx_stream_lua_ffi_proxy_ssl_set_der_certificate ngx_lua_ffi_proxy_ssl_set_der_private_key = C.ngx_stream_lua_ffi_proxy_ssl_set_der_private_key ngx_lua_ffi_proxy_ssl_set_cert = C.ngx_stream_lua_ffi_proxy_ssl_set_cert ngx_lua_ffi_proxy_ssl_set_priv_key = C.ngx_stream_lua_ffi_proxy_ssl_set_priv_key end local _M = { version = base.version } function _M.clear_certs() local r = get_request() if not r then error("no request found") end local rc = ngx_lua_ffi_proxy_ssl_clear_certs(r, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end function _M.set_der_cert(data) local r = get_request() if not r then error("no request found") end local rc = ngx_lua_ffi_proxy_ssl_set_der_certificate(r, data, #data, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end function _M.set_der_priv_key(data) local r = get_request() if not r then error("no request found") end local rc = ngx_lua_ffi_proxy_ssl_set_der_private_key(r, data, #data, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end function _M.set_cert(cert) local r = get_request() if not r then error("no request found") end local rc = ngx_lua_ffi_proxy_ssl_set_cert(r, cert, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end function _M.set_priv_key(priv_key) local r = get_request() if not r then error("no request found") end local rc = ngx_lua_ffi_proxy_ssl_set_priv_key(r, priv_key, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end return _M PKJ½N]ƒ}ß‹È È ngx/process.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local base = require "resty.core.base" base.allows_subsystem('http', 'stream') local ffi = require 'ffi' local errmsg = base.get_errmsg_ptr() local FFI_ERROR = base.FFI_ERROR local ffi_str = ffi.string local tonumber = tonumber local subsystem = ngx.config.subsystem if subsystem == 'http' then require "resty.core.phase" -- for ngx.get_phase end local ngx_phase = ngx.get_phase local process_type_names = { [0 ] = "single", [1 ] = "master", [2 ] = "signaller", [3 ] = "worker", [4 ] = "helper", [99] = "privileged agent", } local C = ffi.C local _M = { version = base.version } local ngx_lua_ffi_enable_privileged_agent local ngx_lua_ffi_get_process_type local ngx_lua_ffi_process_signal_graceful_exit local ngx_lua_ffi_master_pid if subsystem == 'http' then ffi.cdef[[ int ngx_http_lua_ffi_enable_privileged_agent(char **err, unsigned int connections); int ngx_http_lua_ffi_get_process_type(void); void ngx_http_lua_ffi_process_signal_graceful_exit(void); int ngx_http_lua_ffi_master_pid(void); ]] ngx_lua_ffi_enable_privileged_agent = C.ngx_http_lua_ffi_enable_privileged_agent ngx_lua_ffi_get_process_type = C.ngx_http_lua_ffi_get_process_type ngx_lua_ffi_process_signal_graceful_exit = C.ngx_http_lua_ffi_process_signal_graceful_exit ngx_lua_ffi_master_pid = C.ngx_http_lua_ffi_master_pid else ffi.cdef[[ int ngx_stream_lua_ffi_enable_privileged_agent(char **err, unsigned int connections); int ngx_stream_lua_ffi_get_process_type(void); void ngx_stream_lua_ffi_process_signal_graceful_exit(void); int ngx_stream_lua_ffi_master_pid(void); ]] ngx_lua_ffi_enable_privileged_agent = C.ngx_stream_lua_ffi_enable_privileged_agent ngx_lua_ffi_get_process_type = C.ngx_stream_lua_ffi_get_process_type ngx_lua_ffi_process_signal_graceful_exit = C.ngx_stream_lua_ffi_process_signal_graceful_exit ngx_lua_ffi_master_pid = C.ngx_stream_lua_ffi_master_pid end function _M.type() local typ = ngx_lua_ffi_get_process_type() return process_type_names[tonumber(typ)] end function _M.enable_privileged_agent(connections) if ngx_phase() ~= "init" then return nil, "API disabled in the current context" end connections = connections or 512 if type(connections) ~= "number" or connections < 0 then return nil, "bad 'connections' argument: " .. "number expected and greater than 0" end local rc = ngx_lua_ffi_enable_privileged_agent(errmsg, connections) if rc == FFI_ERROR then return nil, ffi_str(errmsg[0]) end return true end function _M.signal_graceful_exit() ngx_lua_ffi_process_signal_graceful_exit() end function _M.get_master_pid() local pid = ngx_lua_ffi_master_pid() if pid == FFI_ERROR then return nil end return tonumber(pid) end return _M PKJ½N]³HiÚŽVŽV ngx/ssl.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local base = require "resty.core.base" base.allows_subsystem('http', 'stream') local ffi = require "ffi" local C = ffi.C local ffi_str = ffi.string local ffi_gc = ffi.gc local ffi_new = ffi.new local get_request = base.get_request local error = error local tonumber = tonumber local errmsg = base.get_errmsg_ptr() local get_string_buf = base.get_string_buf local get_size_ptr = base.get_size_ptr local FFI_DECLINED = base.FFI_DECLINED local FFI_OK = base.FFI_OK local subsystem = ngx.config.subsystem local ngx_lua_ffi_ssl_set_der_certificate local ngx_lua_ffi_ssl_clear_certs local ngx_lua_ffi_ssl_set_der_private_key local ngx_lua_ffi_ssl_raw_server_addr local ngx_lua_ffi_ssl_server_port local ngx_lua_ffi_ssl_server_name local ngx_lua_ffi_ssl_raw_client_addr local ngx_lua_ffi_cert_pem_to_der local ngx_lua_ffi_priv_key_pem_to_der local ngx_lua_ffi_ssl_get_tls1_version local ngx_lua_ffi_parse_pem_cert local ngx_lua_ffi_parse_pem_priv_key local ngx_lua_ffi_parse_der_cert local ngx_lua_ffi_parse_der_priv_key local ngx_lua_ffi_set_cert local ngx_lua_ffi_set_priv_key local ngx_lua_ffi_free_cert local ngx_lua_ffi_free_priv_key local ngx_lua_ffi_ssl_verify_client local ngx_lua_ffi_ssl_client_random local ngx_lua_ffi_ssl_server_random local ngx_lua_ffi_ssl_session_master_key local ngx_lua_ffi_ssl_export_keying_material local ngx_lua_ffi_ssl_export_keying_material_early local ngx_lua_ffi_get_req_ssl_pointer local ngx_lua_ffi_get_upstream_ssl_pointer local ngx_lua_ffi_req_shared_ssl_ciphers ffi.cdef[[ typedef struct SSL SSL; int SSL_session_reused(const SSL *ssl); ]] if subsystem == 'http' then ffi.cdef[[ int ngx_http_lua_ffi_ssl_set_der_certificate(ngx_http_request_t *r, const char *data, size_t len, char **err); int ngx_http_lua_ffi_ssl_clear_certs(ngx_http_request_t *r, char **err); int ngx_http_lua_ffi_ssl_set_der_private_key(ngx_http_request_t *r, const char *data, size_t len, char **err); int ngx_http_lua_ffi_ssl_raw_server_addr(ngx_http_request_t *r, char **addr, size_t *addrlen, int *addrtype, char **err); int ngx_http_lua_ffi_ssl_server_port(ngx_http_request_t *r, unsigned short *server_port, char **err); int ngx_http_lua_ffi_ssl_server_name(ngx_http_request_t *r, char **name, size_t *namelen, char **err); int ngx_http_lua_ffi_ssl_raw_client_addr(ngx_http_request_t *r, char **addr, size_t *addrlen, int *addrtype, char **err); int ngx_http_lua_ffi_cert_pem_to_der(const unsigned char *pem, size_t pem_len, unsigned char *der, char **err); int ngx_http_lua_ffi_priv_key_pem_to_der(const unsigned char *pem, size_t pem_len, const unsigned char *passphrase, unsigned char *der, char **err); int ngx_http_lua_ffi_ssl_get_tls1_version(ngx_http_request_t *r, char **err); void *ngx_http_lua_ffi_parse_pem_cert(const unsigned char *pem, size_t pem_len, char **err); void *ngx_http_lua_ffi_parse_pem_priv_key(const unsigned char *pem, size_t pem_len, char **err); void *ngx_http_lua_ffi_parse_der_cert(const char *data, size_t len, char **err); void *ngx_http_lua_ffi_parse_der_priv_key(const char *data, size_t len, char **err) ; void *ngx_http_lua_ffi_get_req_ssl_pointer(ngx_http_request_t *r, char **err); void *ngx_http_lua_ffi_get_upstream_ssl_pointer( ngx_http_request_t *r, char **err); int ngx_http_lua_ffi_set_cert(void *r, void *cdata, char **err); int ngx_http_lua_ffi_set_priv_key(void *r, void *cdata, char **err); void ngx_http_lua_ffi_free_cert(void *cdata); void ngx_http_lua_ffi_free_priv_key(void *cdata); int ngx_http_lua_ffi_ssl_verify_client(void *r, void *client_certs, void *trusted_certs, int depth, char **err); int ngx_http_lua_ffi_ssl_client_random(ngx_http_request_t *r, const unsigned char *out, size_t *outlen, char **err); int ngx_http_lua_ffi_ssl_server_random(ngx_http_request_t *r, const unsigned char *out, size_t *outlen, char **err); int ngx_http_lua_ffi_ssl_session_master_key(ngx_http_request_t *r, const unsigned char *out, size_t *outlen, char **err); int ngx_http_lua_ffi_ssl_export_keying_material(void *r, unsigned char *out, size_t out_size, const char *label, size_t llen, const unsigned char *ctx, size_t ctxlen, int use_ctx, char **err); int ngx_http_lua_ffi_ssl_export_keying_material_early(void *r, unsigned char *out, size_t out_size, const char *label, size_t llen, const unsigned char *ctx, size_t ctxlen, char **err); int ngx_http_lua_ffi_req_shared_ssl_ciphers(ngx_http_request_t *r, unsigned short *ciphers, unsigned short *nciphers, int filter_grease, char **err); ]] ngx_lua_ffi_ssl_set_der_certificate = C.ngx_http_lua_ffi_ssl_set_der_certificate ngx_lua_ffi_ssl_clear_certs = C.ngx_http_lua_ffi_ssl_clear_certs ngx_lua_ffi_ssl_set_der_private_key = C.ngx_http_lua_ffi_ssl_set_der_private_key ngx_lua_ffi_ssl_raw_server_addr = C.ngx_http_lua_ffi_ssl_raw_server_addr ngx_lua_ffi_ssl_server_port = C.ngx_http_lua_ffi_ssl_server_port ngx_lua_ffi_ssl_server_name = C.ngx_http_lua_ffi_ssl_server_name ngx_lua_ffi_ssl_raw_client_addr = C.ngx_http_lua_ffi_ssl_raw_client_addr ngx_lua_ffi_cert_pem_to_der = C.ngx_http_lua_ffi_cert_pem_to_der ngx_lua_ffi_priv_key_pem_to_der = C.ngx_http_lua_ffi_priv_key_pem_to_der ngx_lua_ffi_ssl_get_tls1_version = C.ngx_http_lua_ffi_ssl_get_tls1_version ngx_lua_ffi_parse_pem_cert = C.ngx_http_lua_ffi_parse_pem_cert ngx_lua_ffi_parse_pem_priv_key = C.ngx_http_lua_ffi_parse_pem_priv_key ngx_lua_ffi_parse_der_cert = C.ngx_http_lua_ffi_parse_der_cert ngx_lua_ffi_parse_der_priv_key = C.ngx_http_lua_ffi_parse_der_priv_key ngx_lua_ffi_set_cert = C.ngx_http_lua_ffi_set_cert ngx_lua_ffi_set_priv_key = C.ngx_http_lua_ffi_set_priv_key ngx_lua_ffi_free_cert = C.ngx_http_lua_ffi_free_cert ngx_lua_ffi_free_priv_key = C.ngx_http_lua_ffi_free_priv_key ngx_lua_ffi_ssl_verify_client = C.ngx_http_lua_ffi_ssl_verify_client ngx_lua_ffi_ssl_client_random = C.ngx_http_lua_ffi_ssl_client_random ngx_lua_ffi_ssl_server_random = C.ngx_http_lua_ffi_ssl_server_random ngx_lua_ffi_ssl_session_master_key = C.ngx_http_lua_ffi_ssl_session_master_key ngx_lua_ffi_ssl_export_keying_material = C.ngx_http_lua_ffi_ssl_export_keying_material ngx_lua_ffi_ssl_export_keying_material_early = C.ngx_http_lua_ffi_ssl_export_keying_material_early ngx_lua_ffi_get_req_ssl_pointer = C.ngx_http_lua_ffi_get_req_ssl_pointer ngx_lua_ffi_get_upstream_ssl_pointer = C.ngx_http_lua_ffi_get_upstream_ssl_pointer ngx_lua_ffi_req_shared_ssl_ciphers = C.ngx_http_lua_ffi_req_shared_ssl_ciphers elseif subsystem == 'stream' then ffi.cdef[[ int ngx_stream_lua_ffi_ssl_set_der_certificate(ngx_stream_lua_request_t *r, const char *data, size_t len, char **err); int ngx_stream_lua_ffi_ssl_clear_certs(ngx_stream_lua_request_t *r, char **err); int ngx_stream_lua_ffi_ssl_set_der_private_key(ngx_stream_lua_request_t *r, const char *data, size_t len, char **err); int ngx_stream_lua_ffi_ssl_raw_server_addr(ngx_stream_lua_request_t *r, char **addr, size_t *addrlen, int *addrtype, char **err); int ngx_stream_lua_ffi_ssl_server_port(ngx_stream_lua_request_t *r, unsigned short *server_port, char **err); int ngx_stream_lua_ffi_ssl_server_name(ngx_stream_lua_request_t *r, char **name, size_t *namelen, char **err); int ngx_stream_lua_ffi_ssl_raw_client_addr(ngx_stream_lua_request_t *r, char **addr, size_t *addrlen, int *addrtype, char **err); int ngx_stream_lua_ffi_cert_pem_to_der(const unsigned char *pem, size_t pem_len, unsigned char *der, char **err); int ngx_stream_lua_ffi_priv_key_pem_to_der(const unsigned char *pem, size_t pem_len, const unsigned char *passphrase, unsigned char *der, char **err); int ngx_stream_lua_ffi_ssl_get_tls1_version(ngx_stream_lua_request_t *r, char **err); void *ngx_stream_lua_ffi_parse_pem_cert(const unsigned char *pem, size_t pem_len, char **err); void *ngx_stream_lua_ffi_parse_der_cert(const unsigned char *der, size_t der_len, char **err); void *ngx_stream_lua_ffi_parse_pem_priv_key(const unsigned char *pem, size_t pem_len, char **err); void *ngx_stream_lua_ffi_parse_der_priv_key(const unsigned char *der, size_t der_len, char **err); void *ngx_stream_lua_ffi_get_req_ssl_pointer(ngx_stream_lua_request_t *r, char **err); void *ngx_stream_lua_ffi_get_upstream_ssl_pointer( ngx_stream_lua_request_t *r, char **err); int ngx_stream_lua_ffi_set_cert(void *r, void *cdata, char **err); int ngx_stream_lua_ffi_set_priv_key(void *r, void *cdata, char **err); void ngx_stream_lua_ffi_free_cert(void *cdata); void ngx_stream_lua_ffi_free_priv_key(void *cdata); int ngx_stream_lua_ffi_ssl_verify_client(void *r, void *client_certs, void *trusted_certs, int depth, char **err); int ngx_stream_lua_ffi_ssl_client_random(ngx_stream_lua_request_t *r, unsigned char *out, size_t *outlen, char **err); int ngx_stream_lua_ffi_req_shared_ssl_ciphers(ngx_stream_lua_request_t *r, unsigned short *ciphers, unsigned short *nciphers, int filter_grease, char **err); ]] ngx_lua_ffi_ssl_set_der_certificate = C.ngx_stream_lua_ffi_ssl_set_der_certificate ngx_lua_ffi_ssl_clear_certs = C.ngx_stream_lua_ffi_ssl_clear_certs ngx_lua_ffi_ssl_set_der_private_key = C.ngx_stream_lua_ffi_ssl_set_der_private_key ngx_lua_ffi_ssl_raw_server_addr = C.ngx_stream_lua_ffi_ssl_raw_server_addr ngx_lua_ffi_ssl_server_port = C.ngx_stream_lua_ffi_ssl_server_port ngx_lua_ffi_ssl_server_name = C.ngx_stream_lua_ffi_ssl_server_name ngx_lua_ffi_ssl_raw_client_addr = C.ngx_stream_lua_ffi_ssl_raw_client_addr ngx_lua_ffi_cert_pem_to_der = C.ngx_stream_lua_ffi_cert_pem_to_der ngx_lua_ffi_priv_key_pem_to_der = C.ngx_stream_lua_ffi_priv_key_pem_to_der ngx_lua_ffi_ssl_get_tls1_version = C.ngx_stream_lua_ffi_ssl_get_tls1_version ngx_lua_ffi_parse_pem_cert = C.ngx_stream_lua_ffi_parse_pem_cert ngx_lua_ffi_parse_der_cert = C.ngx_stream_lua_ffi_parse_der_cert ngx_lua_ffi_parse_pem_priv_key = C.ngx_stream_lua_ffi_parse_pem_priv_key ngx_lua_ffi_parse_der_priv_key = C.ngx_stream_lua_ffi_parse_der_priv_key ngx_lua_ffi_set_cert = C.ngx_stream_lua_ffi_set_cert ngx_lua_ffi_set_priv_key = C.ngx_stream_lua_ffi_set_priv_key ngx_lua_ffi_free_cert = C.ngx_stream_lua_ffi_free_cert ngx_lua_ffi_free_priv_key = C.ngx_stream_lua_ffi_free_priv_key ngx_lua_ffi_ssl_verify_client = C.ngx_stream_lua_ffi_ssl_verify_client ngx_lua_ffi_ssl_client_random = C.ngx_stream_lua_ffi_ssl_client_random ngx_lua_ffi_get_req_ssl_pointer = C.ngx_stream_lua_ffi_get_req_ssl_pointer ngx_lua_ffi_get_upstream_ssl_pointer = C.ngx_stream_lua_ffi_get_upstream_ssl_pointer ngx_lua_ffi_req_shared_ssl_ciphers = C.ngx_stream_lua_ffi_req_shared_ssl_ciphers end local _M = { version = base.version } local charpp = ffi.new("char*[1]") local intp = ffi.new("int[1]") local ushortp = ffi.new("unsigned short[1]") do local ciphers_buf = ffi_new("uint16_t [?]", 256) function _M.get_req_shared_ssl_ciphers(filter_grease) local r = get_request() if not r then error("no request found") end if filter_grease == nil then filter_grease = true -- Default to filter GREASE end ciphers_buf[0] = 255 -- Set max number of ciphers we can hold local filter_flag = filter_grease and 1 or 0 local rc = ngx_lua_ffi_req_shared_ssl_ciphers(r, ciphers_buf + 1, ciphers_buf, filter_flag, errmsg) if rc ~= FFI_OK then return nil, ffi_str(errmsg[0]) end -- Build result table local result = {} for i = 1, ciphers_buf[0] do result[i] = tonumber(ciphers_buf[i]) end return result end end function _M.clear_certs() local r = get_request() if not r then error("no request found") end local rc = ngx_lua_ffi_ssl_clear_certs(r, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end function _M.set_der_cert(data) local r = get_request() if not r then error("no request found") end local rc = ngx_lua_ffi_ssl_set_der_certificate(r, data, #data, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end function _M.set_der_priv_key(data) local r = get_request() if not r then error("no request found") end local rc = ngx_lua_ffi_ssl_set_der_private_key(r, data, #data, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end local addr_types = { [0] = "unix", [1] = "inet", [2] = "inet6", } function _M.raw_server_addr() local r = get_request() if not r then error("no request found") end local sizep = get_size_ptr() local rc = ngx_lua_ffi_ssl_raw_server_addr(r, charpp, sizep, intp, errmsg) if rc == FFI_OK then local typ = addr_types[intp[0]] if not typ then return nil, nil, "unknown address type: " .. intp[0] end return ffi_str(charpp[0], sizep[0]), typ end return nil, nil, ffi_str(errmsg[0]) end function _M.server_port() local r = get_request() if not r then error("no request found") end local rc = ngx_lua_ffi_ssl_server_port(r, ushortp, errmsg) if rc == FFI_OK then return ushortp[0] end return nil, ffi_str(errmsg[0]) end function _M.server_name() local r = get_request() if not r then error("no request found") end local sizep = get_size_ptr() local rc = ngx_lua_ffi_ssl_server_name(r, charpp, sizep, errmsg) if rc == FFI_OK then return ffi_str(charpp[0], sizep[0]) end if rc == FFI_DECLINED then return nil end return nil, ffi_str(errmsg[0]) end function _M.raw_client_addr() local r = get_request() if not r then error("no request found") end local sizep = get_size_ptr() local rc = ngx_lua_ffi_ssl_raw_client_addr(r, charpp, sizep, intp, errmsg) if rc == FFI_OK then local typ = addr_types[intp[0]] if not typ then return nil, nil, "unknown address type: " .. intp[0] end return ffi_str(charpp[0], sizep[0]), typ end return nil, nil, ffi_str(errmsg[0]) end function _M.cert_pem_to_der(pem) local outbuf = get_string_buf(#pem) local sz = ngx_lua_ffi_cert_pem_to_der(pem, #pem, outbuf, errmsg) if sz > 0 then return ffi_str(outbuf, sz) end return nil, ffi_str(errmsg[0]) end function _M.priv_key_pem_to_der(pem, passphrase) local outbuf = get_string_buf(#pem) local sz = ngx_lua_ffi_priv_key_pem_to_der(pem, #pem, passphrase, outbuf, errmsg) if sz > 0 then return ffi_str(outbuf, sz) end return nil, ffi_str(errmsg[0]) end local function get_tls1_version() local r = get_request() if not r then error("no request found") end local ver = ngx_lua_ffi_ssl_get_tls1_version(r, errmsg) ver = tonumber(ver) if ver >= 0 then return ver end -- rc == FFI_ERROR return nil, ffi_str(errmsg[0]) end _M.get_tls1_version = get_tls1_version function _M.parse_pem_cert(pem) local cert = ngx_lua_ffi_parse_pem_cert(pem, #pem, errmsg) if cert ~= nil then return ffi_gc(cert, ngx_lua_ffi_free_cert) end return nil, ffi_str(errmsg[0]) end function _M.parse_pem_priv_key(pem) local pkey = ngx_lua_ffi_parse_pem_priv_key(pem, #pem, errmsg) if pkey ~= nil then return ffi_gc(pkey, ngx_lua_ffi_free_priv_key) end return nil, ffi_str(errmsg[0]) end function _M.parse_der_cert(der) local cert = ngx_lua_ffi_parse_der_cert(der, #der, errmsg) if cert ~= nil then return ffi_gc(cert, ngx_lua_ffi_free_cert) end return nil, ffi_str(errmsg[0]) end function _M.parse_der_priv_key(der) local pkey = ngx_lua_ffi_parse_der_priv_key(der, #der, errmsg) if pkey ~= nil then return ffi_gc(pkey, ngx_lua_ffi_free_priv_key) end return nil, ffi_str(errmsg[0]) end function _M.set_cert(cert) local r = get_request() if not r then error("no request found") end local rc = ngx_lua_ffi_set_cert(r, cert, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end function _M.set_priv_key(priv_key) local r = get_request() if not r then error("no request found") end local rc = ngx_lua_ffi_set_priv_key(r, priv_key, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end function _M.verify_client(client_certs, depth, trusted_certs) local r = get_request() if not r then error("no request found") end if not depth then depth = -1 end local rc = ngx_lua_ffi_ssl_verify_client(r, client_certs, trusted_certs, depth, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end function _M.export_keying_material(length, label, context) local r = get_request() if not r then error("no request found") end local outbuf = get_string_buf(length) local use_context = context and 1 or 0 local context_len = context and #context or 0 local rc = ngx_lua_ffi_ssl_export_keying_material(r, outbuf, length, label, #label, context, context_len, use_context, errmsg) if rc == FFI_OK then return ffi_str(outbuf, length) end if rc == FFI_DECLINED then return nil end return nil, ffi_str(errmsg[0]) end function _M.export_keying_material_early(length, label, context) local r = get_request() if not r then error("no request found") end local outbuf = get_string_buf(length) local context_len = context and #context or 0 local rc = ngx_lua_ffi_ssl_export_keying_material_early(r, outbuf, length, label, #label, context, context_len, errmsg) if rc == FFI_OK then return ffi_str(outbuf, length) end if rc == FFI_DECLINED then return nil end return nil, ffi_str(errmsg[0]) end function _M.get_req_ssl_pointer() local r = get_request() if not r then error("no request found") end local ssl = ngx_lua_ffi_get_req_ssl_pointer(r, errmsg) if ssl == nil then return nil, ffi_str(errmsg[0]) end return ssl end function _M.get_upstream_ssl_pointer() local r = get_request() if not r then error("no request found") end local ssl = ngx_lua_ffi_get_upstream_ssl_pointer(r, errmsg) if not ssl then return nil, ffi_str(errmsg[0]) end return ssl end function _M.ssl_session_reused(ssl) if not ssl or type(ssl) ~= "cdata" then return nil, "bad ssl" end local reused = C.SSL_session_reused(ssl) return tonumber(reused) == 1 and true or false end do _M.SSL3_VERSION = 0x0300 _M.TLS1_VERSION = 0x0301 _M.TLS1_1_VERSION = 0x0302 _M.TLS1_2_VERSION = 0x0303 _M.TLS1_3_VERSION = 0x0304 local map = { [_M.SSL3_VERSION] = "SSLv3", [_M.TLS1_VERSION] = "TLSv1", [_M.TLS1_1_VERSION] = "TLSv1.1", [_M.TLS1_2_VERSION] = "TLSv1.2", [_M.TLS1_3_VERSION] = "TLSv1.3", } function _M.get_tls1_version_str() local ver, err = get_tls1_version() if not ver then return nil, err end local ver_str = map[ver] if not ver_str then return nil, "unknown version" end return ver_str end end function _M.get_client_random(outlen) local r = get_request() if not r then error("no request found") end if outlen == nil then outlen = 32 end local out = get_string_buf(outlen) local sizep = get_size_ptr() sizep[0] = outlen local rc = ngx_lua_ffi_ssl_client_random(r, out, sizep, errmsg) if rc == FFI_OK then if outlen == 0 then return tonumber(sizep[0]) end return ffi_str(out, sizep[0]) end return nil, ffi_str(errmsg[0]) end function _M.get_server_random(outlen) local r = get_request() if not r then error("no request found") end if outlen == nil then outlen = 32 end local out = get_string_buf(outlen) local sizep = get_size_ptr() sizep[0] = outlen local rc = ngx_lua_ffi_ssl_server_random(r, out, sizep, errmsg) if rc == FFI_OK then if outlen == 0 then return tonumber(sizep[0]) end return ffi_str(out, sizep[0]) end return nil, ffi_str(errmsg[0]) end function _M.get_session_master_key(outlen) local r = get_request() if not r then error("no request found") end if outlen == nil then outlen = 48 end local out = get_string_buf(outlen) local sizep = get_size_ptr() sizep[0] = outlen local rc = ngx_lua_ffi_ssl_session_master_key(r, out, sizep, errmsg) if rc == FFI_OK then if outlen == 0 then return tonumber(sizep[0]) end return ffi_str(out, sizep[0]) end return nil, ffi_str(errmsg[0]) end return _M PKJ½N]T)»QÝÝngx/proxyssl.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local base = require "resty.core.base" base.allows_subsystem('http', 'stream') local ffi = require "ffi" local C = ffi.C local ffi_str = ffi.string local get_request = base.get_request local error = error local tonumber = tonumber local errmsg = base.get_errmsg_ptr() local subsystem = ngx.config.subsystem local ngx_lua_ffi_proxy_ssl_get_tls1_version if subsystem == 'http' then ffi.cdef[[ int ngx_http_lua_ffi_proxy_ssl_get_tls1_version(ngx_http_request_t *r, char **err); ]] ngx_lua_ffi_proxy_ssl_get_tls1_version = C.ngx_http_lua_ffi_proxy_ssl_get_tls1_version elseif subsystem == 'stream' then ffi.cdef[[ int ngx_stream_lua_ffi_proxy_ssl_get_tls1_version( ngx_stream_lua_request_t *r, char **err); ]] ngx_lua_ffi_proxy_ssl_get_tls1_version = C.ngx_stream_lua_ffi_proxy_ssl_get_tls1_version end local _M = { version = base.version } local function get_tls1_version() local r = get_request() if not r then error("no request found") end local ver = ngx_lua_ffi_proxy_ssl_get_tls1_version(r, errmsg) ver = tonumber(ver) if ver >= 0 then return ver end -- rc == FFI_ERROR return nil, ffi_str(errmsg[0]) end _M.get_tls1_version = get_tls1_version do _M.SSL3_VERSION = 0x0300 _M.TLS1_VERSION = 0x0301 _M.TLS1_1_VERSION = 0x0302 _M.TLS1_2_VERSION = 0x0303 _M.TLS1_3_VERSION = 0x0304 local map = { [_M.SSL3_VERSION] = "SSLv3", [_M.TLS1_VERSION] = "TLSv1", [_M.TLS1_1_VERSION] = "TLSv1.1", [_M.TLS1_2_VERSION] = "TLSv1.2", [_M.TLS1_3_VERSION] = "TLSv1.3", } function _M.get_tls1_version_str() local ver, err = get_tls1_version() if not ver then return nil, err end local ver_str = map[ver] if not ver_str then return nil, "unknown version" end return ver_str end end return _M PKJ½N]q–Á�L�L ngx/pipe.luanu„[µü¤-- Copyright (C) by OpenResty Inc. local base = require "resty.core.base" base.allows_subsystem("http") require "resty.core.phase" -- for ngx.get_phase local assert = assert local error = error local ipairs = ipairs local tonumber = tonumber local tostring = tostring local type = type local str_find = string.find local table_concat = table.concat local ffi = require "ffi" local C = ffi.C local ffi_new = ffi.new local ffi_str = ffi.string local ngx_phase = ngx.get_phase local get_string_buf = base.get_string_buf local get_size_ptr = base.get_size_ptr local get_request = base.get_request local FFI_AGAIN = base.FFI_AGAIN local FFI_BAD_CONTEXT = base.FFI_BAD_CONTEXT local FFI_DECLINED = base.FFI_DECLINED local FFI_ERROR = base.FFI_ERROR local FFI_NO_REQ_CTX = base.FFI_NO_REQ_CTX local FFI_OK = base.FFI_OK local co_yield = coroutine._yield ffi.cdef[[ typedef int ngx_pid_t; typedef uintptr_t ngx_msec_t; typedef unsigned char u_char; typedef struct ngx_http_lua_pipe_s ngx_http_lua_pipe_t; typedef struct { ngx_pid_t _pid; ngx_msec_t write_timeout; ngx_msec_t stdout_read_timeout; ngx_msec_t stderr_read_timeout; ngx_msec_t wait_timeout; ngx_http_lua_pipe_t *pipe; } ngx_http_lua_ffi_pipe_proc_t; int ngx_http_lua_ffi_pipe_spawn(ngx_http_request_t *r, ngx_http_lua_ffi_pipe_proc_t *proc, const char *file, const char **argv, int merge_stderr, size_t buffer_size, const char **environ, u_char *errbuf, size_t *errbuf_size); int ngx_http_lua_ffi_pipe_proc_read(ngx_http_request_t *r, ngx_http_lua_ffi_pipe_proc_t *proc, int from_stderr, int reader_type, size_t length, u_char **buf, size_t *buf_size, u_char *errbuf, size_t *errbuf_size); int ngx_http_lua_ffi_pipe_get_read_result(ngx_http_request_t *r, ngx_http_lua_ffi_pipe_proc_t *proc, int from_stderr, u_char **buf, size_t *buf_size, u_char *errbuf, size_t *errbuf_size); ssize_t ngx_http_lua_ffi_pipe_proc_write(ngx_http_request_t *r, ngx_http_lua_ffi_pipe_proc_t *proc, const u_char *data, size_t len, u_char *errbuf, size_t *errbuf_size); ssize_t ngx_http_lua_ffi_pipe_get_write_result(ngx_http_request_t *r, ngx_http_lua_ffi_pipe_proc_t *proc, u_char *errbuf, size_t *errbuf_size); int ngx_http_lua_ffi_pipe_proc_shutdown_stdin( ngx_http_lua_ffi_pipe_proc_t *proc, u_char *errbuf, size_t *errbuf_size); int ngx_http_lua_ffi_pipe_proc_shutdown_stdout( ngx_http_lua_ffi_pipe_proc_t *proc, u_char *errbuf, size_t *errbuf_size); int ngx_http_lua_ffi_pipe_proc_shutdown_stderr( ngx_http_lua_ffi_pipe_proc_t *proc, u_char *errbuf, size_t *errbuf_size); int ngx_http_lua_ffi_pipe_proc_wait(ngx_http_request_t *r, ngx_http_lua_ffi_pipe_proc_t *proc, char **reason, int *status, u_char *errbuf, size_t *errbuf_size); int ngx_http_lua_ffi_pipe_proc_kill(ngx_http_lua_ffi_pipe_proc_t *proc, int signal, u_char *errbuf, size_t *errbuf_size); void ngx_http_lua_ffi_pipe_proc_destroy(ngx_http_lua_ffi_pipe_proc_t *proc); ]] if not pcall(function() return C.ngx_http_lua_ffi_pipe_spawn end) then error("pipe API is not supported due to either a platform issue " .. "or lack of the HAVE_SOCKET_CLOEXEC_PATCH patch", 2) end local _M = { version = base.version } local ERR_BUF_SIZE = 256 local VALUE_BUF_SIZE = 512 local PIPE_READ_ALL = 0 local PIPE_READ_BYTES = 1 local PIPE_READ_LINE = 2 local PIPE_READ_ANY = 3 local proc_set_timeouts do local MAX_TIMEOUT = 0xffffffff function proc_set_timeouts(proc, write_timeout, stdout_read_timeout, stderr_read_timeout, wait_timeout) -- the implementation below is straightforward but could not be JIT -- compiled by the latest LuaJIT. When called in loops, LuaJIT will try -- to unroll it, and fall back to interpreter after it reaches the -- unroll limit. --[[ local function set_timeout(proc, attr, timeout) if timeout then if timeout > MAX_TIMEOUT then error("bad timeout value", 3) end proc[attr] = timeout end end set_timeout(...) ]] if write_timeout then if write_timeout < 0 or MAX_TIMEOUT < write_timeout then error("bad write_timeout option", 3) end proc.write_timeout = write_timeout end if stdout_read_timeout then if stdout_read_timeout < 0 or MAX_TIMEOUT < stdout_read_timeout then error("bad stdout_read_timeout option", 3) end proc.stdout_read_timeout = stdout_read_timeout end if stderr_read_timeout then if stderr_read_timeout < 0 or MAX_TIMEOUT < stderr_read_timeout then error("bad stderr_read_timeout option", 3) end proc.stderr_read_timeout = stderr_read_timeout end if wait_timeout then if wait_timeout < 0 or MAX_TIMEOUT < wait_timeout then error("bad wait_timeout option", 3) end proc.wait_timeout = wait_timeout end end end local function check_proc_instance(proc) if type(proc) ~= "cdata" then error("not a process instance", 3) end end local proc_read do local value_buf = ffi_new("char[?]", VALUE_BUF_SIZE) local buf = ffi_new("char *[1]") local buf_size = ffi_new("size_t[1]") function proc_read(proc, stderr, reader_type, len) check_proc_instance(proc) local r = get_request() if not r then error("no request found") end buf[0] = value_buf buf_size[0] = VALUE_BUF_SIZE local errbuf = get_string_buf(ERR_BUF_SIZE) local errbuf_size = get_size_ptr() errbuf_size[0] = ERR_BUF_SIZE local rc = C.ngx_http_lua_ffi_pipe_proc_read(r, proc, stderr, reader_type, len, buf, buf_size, errbuf, errbuf_size) if rc == FFI_NO_REQ_CTX then error("no request ctx found") end if rc == FFI_BAD_CONTEXT then error(ffi_str(errbuf, errbuf_size[0]), 2) end while true do if rc == FFI_ERROR then return nil, ffi_str(errbuf, errbuf_size[0]) end if rc == FFI_OK then local p = buf[0] if p ~= value_buf then p = ffi_new("char[?]", buf_size[0]) buf[0] = p C.ngx_http_lua_ffi_pipe_get_read_result(r, proc, stderr, buf, buf_size, errbuf, errbuf_size) assert(p == buf[0]) end return ffi_str(p, buf_size[0]) end if rc == FFI_DECLINED then local err = ffi_str(errbuf, errbuf_size[0]) local p = buf[0] if p ~= value_buf then p = ffi_new("char[?]", buf_size[0]) buf[0] = p C.ngx_http_lua_ffi_pipe_get_read_result(r, proc, stderr, buf, buf_size, errbuf, errbuf_size) assert(p == buf[0]) end local partial = ffi_str(p, buf_size[0]) return nil, err, partial end assert(rc == FFI_AGAIN) co_yield() buf[0] = value_buf buf_size[0] = VALUE_BUF_SIZE errbuf = get_string_buf(ERR_BUF_SIZE) errbuf_size = get_size_ptr() errbuf_size[0] = ERR_BUF_SIZE rc = C.ngx_http_lua_ffi_pipe_get_read_result(r, proc, stderr, buf, buf_size, errbuf, errbuf_size) end end end local function proc_write(proc, data) check_proc_instance(proc) local r = get_request() if not r then error("no request found", 2) end local data_type = type(data) if data_type ~= "string" then if data_type == "table" then data = table_concat(data, "") elseif data_type == "number" then data = tostring(data) else error("bad data arg: string, number, or table expected, got " .. data_type, 2) end end local errbuf = get_string_buf(ERR_BUF_SIZE) local errbuf_size = get_size_ptr() errbuf_size[0] = ERR_BUF_SIZE local rc = C.ngx_http_lua_ffi_pipe_proc_write(r, proc, data, #data, errbuf, errbuf_size) if rc == FFI_NO_REQ_CTX then error("no request ctx found", 2) end if rc == FFI_BAD_CONTEXT then error(ffi_str(errbuf, errbuf_size[0]), 2) end while true do if rc == FFI_ERROR then return nil, ffi_str(errbuf, errbuf_size[0]) end if rc >= 0 then -- rc holds the bytes sent return tonumber(rc) end assert(rc == FFI_AGAIN) co_yield() errbuf = get_string_buf(ERR_BUF_SIZE) errbuf_size = get_size_ptr() errbuf_size[0] = ERR_BUF_SIZE rc = C.ngx_http_lua_ffi_pipe_get_write_result(r, proc, errbuf, errbuf_size) end end local function proc_shutdown(proc, direction) check_proc_instance(proc) local rc local errbuf = get_string_buf(ERR_BUF_SIZE) local errbuf_size = get_size_ptr() errbuf_size[0] = ERR_BUF_SIZE if direction == "stdin" then rc = C.ngx_http_lua_ffi_pipe_proc_shutdown_stdin(proc, errbuf, errbuf_size) elseif direction == "stdout" then rc = C.ngx_http_lua_ffi_pipe_proc_shutdown_stdout(proc, errbuf, errbuf_size) elseif direction == "stderr" then rc = C.ngx_http_lua_ffi_pipe_proc_shutdown_stderr(proc, errbuf, errbuf_size) else error("bad shutdown arg: " .. direction, 2) end if rc == FFI_ERROR then return nil, ffi_str(errbuf, errbuf_size[0]) end return true end local proc_wait do local reason = ffi_new("char *[1]") local status = ffi_new("int[1]") function proc_wait(proc) check_proc_instance(proc) local r = get_request() if not r then error("no request found", 2) end local errbuf = get_string_buf(ERR_BUF_SIZE) local errbuf_size = get_size_ptr() errbuf_size[0] = ERR_BUF_SIZE local rc = C.ngx_http_lua_ffi_pipe_proc_wait(r, proc, reason, status, errbuf, errbuf_size) if rc == FFI_NO_REQ_CTX then error("no request ctx found", 2) end if rc == FFI_BAD_CONTEXT then error(ffi_str(errbuf, errbuf_size[0]), 2) end if rc == FFI_ERROR then return nil, ffi_str(errbuf, errbuf_size[0]) end if rc == FFI_OK then return true, ffi_str(reason[0]), tonumber(status[0]) end if rc == FFI_DECLINED then return false, ffi_str(reason[0]), tonumber(status[0]) end local ok, exit_reason, exit_status ok, exit_reason, exit_status = co_yield() return ok, exit_reason, exit_status end end local function proc_kill(proc, signal) check_proc_instance(proc) if type(signal) ~= "number" then error("bad signal arg: number expected, got " .. tostring(signal), 2) end local errbuf = get_string_buf(ERR_BUF_SIZE) local errbuf_size = get_size_ptr() errbuf_size[0] = ERR_BUF_SIZE local rc = C.ngx_http_lua_ffi_pipe_proc_kill(proc, signal, errbuf, errbuf_size) if rc == FFI_ERROR then return nil, ffi_str(errbuf, errbuf_size[0]) end return true end local mt = { __gc = C.ngx_http_lua_ffi_pipe_proc_destroy, __index = { pid = function (proc) return proc._pid end, set_timeouts = function (proc, write_timeout, stdout_read_timeout, stderr_read_timeout, wait_timeout) proc_set_timeouts(proc, write_timeout, stdout_read_timeout, stderr_read_timeout, wait_timeout) end, stdout_read_all = function (proc) local data, err, partial = proc_read(proc, 0, PIPE_READ_ALL, 0) return data, err, partial end, stdout_read_bytes = function (proc, len) if len <= 0 then if len < 0 then error("bad len argument", 2) end return "" end local data, err, partial = proc_read(proc, 0, PIPE_READ_BYTES, len) return data, err, partial end, stdout_read_line = function (proc) local data, err, partial = proc_read(proc, 0, PIPE_READ_LINE, 0) return data, err, partial end, stdout_read_any = function (proc, max) if type(max) ~= "number" then max = tonumber(max) end if not max or max <= 0 then error("bad max argument", 2) end local data, err, partial = proc_read(proc, 0, PIPE_READ_ANY, max) return data, err, partial end, stderr_read_all = function (proc) local data, err, partial = proc_read(proc, 1, PIPE_READ_ALL, 0) return data, err, partial end, stderr_read_bytes = function (proc, len) if len <= 0 then if len < 0 then error("bad len argument", 2) end return "" end local data, err, partial = proc_read(proc, 1, PIPE_READ_BYTES, len) return data, err, partial end, stderr_read_line = function (proc) local data, err, partial = proc_read(proc, 1, PIPE_READ_LINE, 0) return data, err, partial end, stderr_read_any = function (proc, max) if type(max) ~= "number" then max = tonumber(max) end if not max or max <= 0 then error("bad max argument", 2) end local data, err, partial = proc_read(proc, 1, PIPE_READ_ANY, max) return data, err, partial end, write = proc_write, shutdown = proc_shutdown, wait = proc_wait, kill = proc_kill, } } local Proc = ffi.metatype("ngx_http_lua_ffi_pipe_proc_t", mt) local pipe_spawn do local sh_exe = "/bin/sh" local opt_c = "-c" local shell_args = ffi_new("const char* [?]", 4) shell_args[0] = sh_exe shell_args[1] = opt_c shell_args[3] = nil local write_timeout = 10000 local stdout_read_timeout = 10000 local stderr_read_timeout = 10000 local wait_timeout = 10000 -- reference shell cmd's constant strings here to prevent them from getting -- collected by the Lua GC. _M._gc_ref_c_opt = opt_c function pipe_spawn(args, opts) if ngx_phase() == "init" then error("API disabled in the current context", 2) end local exe local proc_args local proc_envs local args_type = type(args) if args_type == "table" then local nargs = 0 for i, arg in ipairs(args) do nargs = nargs + 1 if type(arg) ~= "string" then args[i] = tostring(arg) end end if nargs == 0 then error("bad args arg: non-empty table expected", 2) end exe = args[1] proc_args = ffi_new("const char* [?]", nargs + 1, args) proc_args[nargs] = nil elseif args_type == "string" then exe = sh_exe shell_args[2] = args proc_args = shell_args else error("bad args arg: table expected, got " .. args_type, 2) end local merge_stderr = 0 local buffer_size = 4096 local proc = Proc() if opts then merge_stderr = opts.merge_stderr and 1 or 0 if opts.buffer_size then buffer_size = tonumber(opts.buffer_size) if not buffer_size or buffer_size < 1 then error("bad buffer_size option", 2) end end if opts.environ then local environ = opts.environ local environ_type = type(environ) if environ_type ~= "table" then error("bad environ option: table expected, got " .. environ_type, 2) end local nenv = 0 for i, env in ipairs(environ) do nenv = nenv + 1 local env_type = type(env) if env_type ~= "string" then error("bad value at index " .. i .. " of environ " .. "option: string expected, got " .. env_type, 2) end if not str_find(env, "=", 2, true) then error("bad value at index " .. i .. " of environ " .. "option: 'name=[value]' format expected, got '" .. env .. "'", 2) end end if nenv > 0 then proc_envs = ffi_new("const char* [?]", nenv + 1, environ) proc_envs[nenv] = nil end end proc_set_timeouts(proc, opts.write_timeout or write_timeout, opts.stdout_read_timeout or stdout_read_timeout, opts.stderr_read_timeout or stderr_read_timeout, opts.wait_timeout or wait_timeout) else proc_set_timeouts(proc, write_timeout, stdout_read_timeout, stderr_read_timeout, wait_timeout) end local errbuf = get_string_buf(ERR_BUF_SIZE) local errbuf_size = get_size_ptr() local r = get_request() errbuf_size[0] = ERR_BUF_SIZE local rc = C.ngx_http_lua_ffi_pipe_spawn(r, proc, exe, proc_args, merge_stderr, buffer_size, proc_envs, errbuf, errbuf_size) if rc == FFI_ERROR then return nil, ffi_str(errbuf, errbuf_size[0]) end return proc end end -- do _M.spawn = pipe_spawn return _M PKJ½N]ÕD)ÉÉ ngx/resp.luanu„[µü¤-- Copyright (C) Yichun Zhang. All rights reserved. local ffi = require "ffi" local C = ffi.C local base = require "resty.core.base" base.allows_subsystem('http') local FFI_BAD_CONTEXT = base.FFI_BAD_CONTEXT local core_response = require "resty.core.response" local set_resp_header = core_response.set_resp_header local get_request = base.get_request local bypass_if_checks = core_response.bypass_if_checks ffi.cdef[[ int ngx_http_lua_ffi_set_resp_status_and_reason(ngx_http_request_t *r, int status, const char *reason, size_t reason_len); ]] local _M = { version = base.version } function _M.add_header(key, value) set_resp_header(nil, key, value, true) end function _M.set_status(status, reason) local r = get_request() if not r then error("no request found") end if type(status) ~= 'number' then status = tonumber(status) end local rc = C.ngx_http_lua_ffi_set_resp_status_and_reason(r, status, reason, #reason) if rc == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end end function _M.bypass_if_checks() return bypass_if_checks() end return _M PKJ½N]ýÛ~:: ngx/ocsp.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local base = require "resty.core.base" base.allows_subsystem('http') local ffi = require "ffi" local C = ffi.C local ffi_new = ffi.new local ffi_str = ffi.string local get_request = base.get_request local error = error local tonumber = tonumber local errmsg = base.get_errmsg_ptr() local get_string_buf = base.get_string_buf local get_string_buf_size = base.get_string_buf_size local get_size_ptr = base.get_size_ptr local FFI_DECLINED = base.FFI_DECLINED local FFI_OK = base.FFI_OK local FFI_BUSY = base.FFI_BUSY ffi.cdef[[ int ngx_http_lua_ffi_ssl_get_ocsp_responder_from_der_chain( const char *chain_data, size_t chain_len, char *out, size_t *out_size, char **err); int ngx_http_lua_ffi_ssl_create_ocsp_request(const char *chain_data, size_t chain_len, unsigned char *out, size_t *out_size, char **err); int ngx_http_lua_ffi_ssl_validate_ocsp_response(const unsigned char *resp, size_t resp_len, const char *chain_data, size_t chain_len, unsigned char *errbuf, size_t *errbuf_size, long *valid); int ngx_http_lua_ffi_ssl_set_ocsp_status_resp(ngx_http_request_t *r, const unsigned char *resp, size_t resp_len, char **err); ]] local _M = { version = base.version } function _M.get_ocsp_responder_from_der_chain(certs, maxlen) local buf_size = maxlen if not buf_size then buf_size = get_string_buf_size() end local buf = get_string_buf(buf_size) local sizep = get_size_ptr() sizep[0] = buf_size local rc = C.ngx_http_lua_ffi_ssl_get_ocsp_responder_from_der_chain(certs, #certs, buf, sizep, errmsg) if rc == FFI_DECLINED then return nil end if rc == FFI_OK then return ffi_str(buf, sizep[0]) end if rc == FFI_BUSY then return ffi_str(buf, sizep[0]), "truncated" end return nil, ffi_str(errmsg[0]) end function _M.create_ocsp_request(certs, maxlen) local buf_size = maxlen if not buf_size then buf_size = get_string_buf_size() end local buf = get_string_buf(buf_size) local sizep = get_size_ptr() sizep[0] = buf_size local rc = C.ngx_http_lua_ffi_ssl_create_ocsp_request(certs, #certs, buf, sizep, errmsg) if rc == FFI_OK then return ffi_str(buf, sizep[0]) end if rc == FFI_BUSY then return nil, ffi_str(errmsg[0]) .. ": " .. tonumber(sizep[0]) .. " > " .. buf_size end return nil, ffi_str(errmsg[0]) end local next_update_p = ffi_new("long[1]") function _M.validate_ocsp_response(resp, chain, max_errmsg_len) local errbuf_size = max_errmsg_len if not errbuf_size then errbuf_size = get_string_buf_size() end local errbuf = get_string_buf(errbuf_size) local sizep = get_size_ptr() sizep[0] = errbuf_size next_update_p[0] = 0 local rc = C.ngx_http_lua_ffi_ssl_validate_ocsp_response(resp, #resp, chain, #chain, errbuf, sizep, next_update_p) if rc == FFI_OK then local next_update = tonumber(next_update_p[0]) if next_update == 0 then next_update = nil end return true, next_update end -- rc == FFI_ERROR return nil, ffi_str(errbuf, sizep[0]) end function _M.set_ocsp_status_resp(ocsp_resp) local r = get_request() if not r then error("no request found") end local rc = C.ngx_http_lua_ffi_ssl_set_ocsp_status_resp(r, ocsp_resp, #ocsp_resp, errmsg) if rc == FFI_DECLINED then -- no client status req return true, "no status req" end if rc == FFI_OK then return true end -- rc == FFI_ERROR return nil, ffi_str(errmsg[0]) end return _M PKM½N]Ü…½¹Ý,Ý,ngx/balancer.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local base = require "resty.core.base" base.allows_subsystem('http', 'stream') local ffi = require "ffi" local C = ffi.C local ffi_str = ffi.string local errmsg = base.get_errmsg_ptr() local FFI_OK = base.FFI_OK local FFI_ERROR = base.FFI_ERROR local int_out = ffi.new("int[1]") local get_request = base.get_request local get_string_buf = base.get_string_buf local get_size_ptr = base.get_size_ptr local error = error local type = type local tonumber = tonumber local max = math.max local subsystem = ngx.config.subsystem local ngx_lua_ffi_balancer_set_current_peer local ngx_lua_ffi_balancer_enable_keepalive local ngx_lua_ffi_balancer_set_more_tries local ngx_lua_ffi_balancer_get_last_failure local ngx_lua_ffi_balancer_set_timeouts -- used by both stream and http local ngx_lua_ffi_balancer_set_upstream_tls local ngx_lua_ffi_balancer_bind_to_local_addr if subsystem == 'http' then ffi.cdef[[ int ngx_http_lua_ffi_balancer_set_current_peer(ngx_http_request_t *r, const unsigned char *addr, size_t addr_len, int port, const unsigned char *host, ssize_t host_len, char **err); int ngx_http_lua_ffi_balancer_enable_keepalive(ngx_http_request_t *r, unsigned long timeout, unsigned int max_requests, char **err); int ngx_http_lua_ffi_balancer_set_more_tries(ngx_http_request_t *r, int count, char **err); int ngx_http_lua_ffi_balancer_get_last_failure(ngx_http_request_t *r, int *status, char **err); int ngx_http_lua_ffi_balancer_set_timeouts(ngx_http_request_t *r, long connect_timeout, long send_timeout, long read_timeout, char **err); int ngx_http_lua_ffi_balancer_recreate_request(ngx_http_request_t *r, char **err); int ngx_http_lua_ffi_balancer_set_upstream_tls(ngx_http_request_t *r, int on, char **err); int ngx_http_lua_ffi_balancer_bind_to_local_addr(ngx_http_request_t *r, const u_char *addr, size_t addr_len, u_char *errbuf, size_t *errbuf_size); ]] ngx_lua_ffi_balancer_set_current_peer = C.ngx_http_lua_ffi_balancer_set_current_peer ngx_lua_ffi_balancer_enable_keepalive = C.ngx_http_lua_ffi_balancer_enable_keepalive ngx_lua_ffi_balancer_set_more_tries = C.ngx_http_lua_ffi_balancer_set_more_tries ngx_lua_ffi_balancer_get_last_failure = C.ngx_http_lua_ffi_balancer_get_last_failure ngx_lua_ffi_balancer_set_timeouts = C.ngx_http_lua_ffi_balancer_set_timeouts ngx_lua_ffi_balancer_set_upstream_tls = C.ngx_http_lua_ffi_balancer_set_upstream_tls ngx_lua_ffi_balancer_bind_to_local_addr = C.ngx_http_lua_ffi_balancer_bind_to_local_addr elseif subsystem == 'stream' then ffi.cdef[[ int ngx_stream_lua_ffi_balancer_set_current_peer( ngx_stream_lua_request_t *r, const unsigned char *addr, size_t addr_len, int port, char **err); int ngx_stream_lua_ffi_balancer_set_more_tries(ngx_stream_lua_request_t *r, int count, char **err); int ngx_stream_lua_ffi_balancer_get_last_failure( ngx_stream_lua_request_t *r, int *status, char **err); int ngx_stream_lua_ffi_balancer_set_timeouts(ngx_stream_lua_request_t *r, long connect_timeout, long timeout, char **err); int ngx_stream_lua_ffi_balancer_bind_to_local_addr( ngx_stream_lua_request_t *r, const char *addr, size_t addr_len, char *errbuf, size_t *errbuf_size); ]] ngx_lua_ffi_balancer_set_current_peer = C.ngx_stream_lua_ffi_balancer_set_current_peer ngx_lua_ffi_balancer_set_more_tries = C.ngx_stream_lua_ffi_balancer_set_more_tries ngx_lua_ffi_balancer_get_last_failure = C.ngx_stream_lua_ffi_balancer_get_last_failure local ngx_stream_lua_ffi_balancer_set_timeouts = C.ngx_stream_lua_ffi_balancer_set_timeouts ngx_lua_ffi_balancer_set_timeouts = function(r, connect_timeout, send_timeout, read_timeout, err) local timeout = max(send_timeout, read_timeout) return ngx_stream_lua_ffi_balancer_set_timeouts(r, connect_timeout, timeout, err) end ngx_lua_ffi_balancer_bind_to_local_addr = C.ngx_stream_lua_ffi_balancer_bind_to_local_addr else error("unknown subsystem: " .. subsystem) end local DEFAULT_KEEPALIVE_IDLE_TIMEOUT = 60000 local DEFAULT_KEEPALIVE_MAX_REQUESTS = 100 local peer_state_names = { [1] = "keepalive", [2] = "next", [4] = "failed", } local _M = { version = base.version } if subsystem == "http" then function _M.set_current_peer(addr, port, host) local r = get_request() if not r then error("no request found") end if not port then port = 0 elseif type(port) ~= "number" then port = tonumber(port) end if host ~= nil and type(host) ~= "string" then error("bad argument #3 to 'set_current_peer' " .. "(string expected, got " .. type(host) .. ")") end local rc = ngx_lua_ffi_balancer_set_current_peer(r, addr, #addr, port, host, host and #host or 0, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end else function _M.set_current_peer(addr, port, host) local r = get_request() if not r then error("no request found") end if not port then port = 0 elseif type(port) ~= "number" then port = tonumber(port) end if host ~= nil then error("bad argument #3 to 'set_current_peer' ('host' not yet " .. "implemented in " .. subsystem .. " subsystem)", 2) end local rc = ngx_lua_ffi_balancer_set_current_peer(r, addr, #addr, port, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end end if subsystem == "http" then function _M.enable_keepalive(idle_timeout, max_requests) local r = get_request() if not r then error("no request found") end if not idle_timeout then idle_timeout = DEFAULT_KEEPALIVE_IDLE_TIMEOUT elseif type(idle_timeout) ~= "number" then error("bad argument #1 to 'enable_keepalive' " .. "(number expected, got " .. type(idle_timeout) .. ")", 2) elseif idle_timeout < 0 then error("bad argument #1 to 'enable_keepalive' (expected >= 0)", 2) else idle_timeout = idle_timeout * 1000 end if not max_requests then max_requests = DEFAULT_KEEPALIVE_MAX_REQUESTS elseif type(max_requests) ~= "number" then error("bad argument #2 to 'enable_keepalive' " .. "(number expected, got " .. type(max_requests) .. ")", 2) elseif max_requests < 0 then error("bad argument #2 to 'enable_keepalive' (expected >= 0)", 2) end local rc = ngx_lua_ffi_balancer_enable_keepalive(r, idle_timeout, max_requests, errmsg) if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end else function _M.enable_keepalive() error("'enable_keepalive' not yet implemented in " .. subsystem .. " subsystem", 2) end end function _M.set_more_tries(count) local r = get_request() if not r then error("no request found") end local rc = ngx_lua_ffi_balancer_set_more_tries(r, count, errmsg) if rc == FFI_OK then if errmsg[0] == nil then return true end return true, ffi_str(errmsg[0]) -- return the warning end return nil, ffi_str(errmsg[0]) end function _M.get_last_failure() local r = get_request() if not r then error("no request found") end local state = ngx_lua_ffi_balancer_get_last_failure(r, int_out, errmsg) if state == 0 then return nil end if state == FFI_ERROR then return nil, nil, ffi_str(errmsg[0]) end return peer_state_names[state] or "unknown", int_out[0] end function _M.set_timeouts(connect_timeout, send_timeout, read_timeout) local r = get_request() if not r then error("no request found") end if not connect_timeout then connect_timeout = 0 elseif type(connect_timeout) ~= "number" or connect_timeout <= 0 then error("bad connect timeout", 2) else connect_timeout = connect_timeout * 1000 end if not send_timeout then send_timeout = 0 elseif type(send_timeout) ~= "number" or send_timeout <= 0 then error("bad send timeout", 2) else send_timeout = send_timeout * 1000 end if not read_timeout then read_timeout = 0 elseif type(read_timeout) ~= "number" or read_timeout <= 0 then error("bad read timeout", 2) else read_timeout = read_timeout * 1000 end local rc rc = ngx_lua_ffi_balancer_set_timeouts(r, connect_timeout, send_timeout, read_timeout, errmsg) if rc == FFI_OK then return true end return false, ffi_str(errmsg[0]) end if subsystem == 'http' then function _M.recreate_request() local r = get_request() if not r then error("no request found") end local rc = C.ngx_http_lua_ffi_balancer_recreate_request(r, errmsg) if rc == FFI_OK then return true end if errmsg[0] ~= nil then return nil, ffi_str(errmsg[0]) end return nil, "failed to recreate the upstream request" end function _M.set_upstream_tls(on) local r = get_request() if not r then return error("no request found") end local rc if on == 0 or on == false then on = 0 else on = 1 end rc = ngx_lua_ffi_balancer_set_upstream_tls(r, on, errmsg); if rc == FFI_OK then return true end return nil, ffi_str(errmsg[0]) end end function _M.bind_to_local_addr(addr) local r = get_request() if not r then error("no request found") end if type(addr) ~= "string" then error("bad argument #1 to 'bind_to_local_addr' " .. "(string expected, got " .. type(addr) .. ")") end local errbuf_size = 1024 local errbuf = get_string_buf(errbuf_size) local sizep = get_size_ptr() sizep[0] = errbuf_size local rc = ngx_lua_ffi_balancer_bind_to_local_addr(r, addr, #addr, errbuf, sizep) if rc == FFI_OK then return true end return nil, ffi_str(errbuf, sizep[0]) end return _M PKM½N]`M*¶¶ngx/base64.luanu„[µü¤-- Copyright (C) by Yichun Zhang (agentzh) -- Copyright (C) by OpenResty Inc. local ffi = require("ffi") local base = require("resty.core.base") local ffi_str = ffi.string local type = type local C = ffi.C local NGX_ERROR = ngx.ERROR local _M = { version = base.version } ffi.cdef[[ typedef intptr_t ngx_int_t; void ngx_encode_base64url(ngx_str_t *dst, ngx_str_t *src); ngx_int_t ngx_decode_base64url(ngx_str_t *dst, ngx_str_t *src); ]] local get_string_buf = base.get_string_buf local dst_str_t = ffi.new("ngx_str_t[1]") local src_str_t = ffi.new("ngx_str_t[1]") local function base64_encoded_length(len) return ((len + 2) / 3) * 4 end local function base64_decoded_length(len) return ((len + 3) / 4) * 3 end function _M.encode_base64url(s) if type(s) ~= "string" then return nil, "must provide a string" end local len = #s local trans_len = base64_encoded_length(len) local src = src_str_t[0] local dst = dst_str_t[0] src.data = s src.len = len dst.data = get_string_buf(trans_len) dst.len = trans_len C.ngx_encode_base64url(dst_str_t, src_str_t) return ffi_str(dst.data, dst.len) end function _M.decode_base64url(s) if type(s) ~= "string" then return nil, "must provide a string" end local len = #s local trans_len = base64_decoded_length(len) local src = src_str_t[0] local dst = dst_str_t[0] src.data = s src.len = len dst.data = get_string_buf(trans_len) dst.len = trans_len local ret = C.ngx_decode_base64url(dst_str_t, src_str_t) if ret == NGX_ERROR then return nil, "invalid input" end return ffi_str(dst.data, dst.len) end return _M PKM½N]F°ó_::ngx/errlog.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) local base = require "resty.core.base" base.allows_subsystem('http', 'stream') local ffi = require 'ffi' local ffi_string = ffi.string local get_string_buf = base.get_string_buf local get_size_ptr = base.get_size_ptr local C = ffi.C local new_tab = base.new_tab local ffi_new = ffi.new local charpp = ffi_new("char *[1]") local intp = ffi.new("int[1]") local num_value = ffi_new("double[1]") local get_request = base.get_request local tonumber = tonumber local type = type local error = error local subsystem = ngx.config.subsystem local ngx_lua_ffi_errlog_set_filter_level local ngx_lua_ffi_errlog_get_msg local ngx_lua_ffi_errlog_get_sys_filter_level local ngx_lua_ffi_raw_log local _M = { version = base.version } if subsystem == 'http' then ffi.cdef[[ int ngx_http_lua_ffi_errlog_set_filter_level(int level, unsigned char *err, size_t *errlen); int ngx_http_lua_ffi_errlog_get_msg(char **log, int *loglevel, unsigned char *err, size_t *errlen, double *log_time); int ngx_http_lua_ffi_errlog_get_sys_filter_level(ngx_http_request_t *r); int ngx_http_lua_ffi_raw_log(ngx_http_request_t *r, int level, const unsigned char *s, size_t s_len); ]] ngx_lua_ffi_errlog_set_filter_level = C.ngx_http_lua_ffi_errlog_set_filter_level ngx_lua_ffi_errlog_get_msg = C.ngx_http_lua_ffi_errlog_get_msg ngx_lua_ffi_errlog_get_sys_filter_level = C.ngx_http_lua_ffi_errlog_get_sys_filter_level ngx_lua_ffi_raw_log = C.ngx_http_lua_ffi_raw_log elseif subsystem == 'stream' then ffi.cdef[[ int ngx_stream_lua_ffi_errlog_set_filter_level(int level, unsigned char *err, size_t *errlen); int ngx_stream_lua_ffi_errlog_get_msg(char **log, int *loglevel, unsigned char *err, size_t *errlen, double *log_time); int ngx_stream_lua_ffi_errlog_get_sys_filter_level(ngx_stream_lua_request_t *r); int ngx_stream_lua_ffi_raw_log(ngx_stream_lua_request_t *r, int level, const unsigned char *s, size_t s_len); ]] ngx_lua_ffi_errlog_set_filter_level = C.ngx_stream_lua_ffi_errlog_set_filter_level ngx_lua_ffi_errlog_get_msg = C.ngx_stream_lua_ffi_errlog_get_msg ngx_lua_ffi_errlog_get_sys_filter_level = C.ngx_stream_lua_ffi_errlog_get_sys_filter_level ngx_lua_ffi_raw_log = C.ngx_stream_lua_ffi_raw_log end local ERR_BUF_SIZE = 128 local FFI_ERROR = base.FFI_ERROR function _M.set_filter_level(level) if not level then return nil, [[missing "level" argument]] end local err = get_string_buf(ERR_BUF_SIZE) local errlen = get_size_ptr() errlen[0] = ERR_BUF_SIZE local rc = ngx_lua_ffi_errlog_set_filter_level(level, err, errlen) if rc == FFI_ERROR then return nil, ffi_string(err, errlen[0]) end return true end function _M.get_logs(max, logs) local err = get_string_buf(ERR_BUF_SIZE) local errlen = get_size_ptr() errlen[0] = ERR_BUF_SIZE local log = charpp local loglevel = intp local log_time = num_value max = max or 10 if not logs then logs = new_tab(max * 3 + 1, 0) end local count = 0 for i = 1, max do local loglen = ngx_lua_ffi_errlog_get_msg(log, loglevel, err, errlen, log_time) if loglen == FFI_ERROR then return nil, ffi_string(err, errlen[0]) end if loglen > 0 then logs[count + 1] = loglevel[0] logs[count + 2] = log_time[0] logs[count + 3] = ffi_string(log[0], loglen) count = count + 3 end if loglen < 0 then -- no error log logs[count + 1] = nil break end if i == max then -- last one logs[count + 1] = nil break end end return logs end function _M.get_sys_filter_level() local r = get_request() return tonumber(ngx_lua_ffi_errlog_get_sys_filter_level(r)) end function _M.raw_log(level, msg) if type(level) ~= "number" then error("bad argument #1 to 'raw_log' (must be a number)", 2) end if type(msg) ~= "string" then error("bad argument #2 to 'raw_log' (must be a string)", 2) end local r = get_request() local rc = ngx_lua_ffi_raw_log(r, level, msg, #msg) if rc == FFI_ERROR then error("bad log level", 2) end end return _M PKN½N]ㆠðTT ngx/req.luanu„[µü¤-- Copyright (C) by OpenResty Inc. local base = require "resty.core.base" base.allows_subsystem("http") local core_request = require "resty.core.request" local set_req_header = core_request.set_req_header local _M = { version = base.version } function _M.add_header(key, value) set_req_header(key, value, false) end return _M PKN½N]ªÝØ11 ngx/re.luanu„[µü¤-- I hereby assign copyright in this code to the lua-resty-core project, -- to be licensed under the same terms as the rest of the code. local base = require "resty.core.base" local ffi = require 'ffi' local bit = require "bit" local core_regex = require "resty.core.regex" if core_regex.no_pcre then error("no support for 'ngx.re' module: OpenResty was " .. "compiled without PCRE support", 3) end local C = ffi.C local ffi_str = ffi.string local sub = string.sub local error = error local type = type local band = bit.band local new_tab = base.new_tab local tostring = tostring local math_max = math.max local math_min = math.min local is_regex_cache_empty = core_regex.is_regex_cache_empty local re_match_compile = core_regex.re_match_compile local destroy_compiled_regex = core_regex.destroy_compiled_regex local get_string_buf = base.get_string_buf local get_size_ptr = base.get_size_ptr local FFI_OK = base.FFI_OK local subsystem = ngx.config.subsystem local MAX_ERR_MSG_LEN = 128 local FLAG_DFA = 0x02 local PCRE_ERROR_NOMATCH = -1 local DEFAULT_SPLIT_RES_SIZE = 4 local split_ctx = new_tab(0, 1) local ngx_lua_ffi_set_jit_stack_size local ngx_lua_ffi_exec_regex if subsystem == 'http' then ffi.cdef[[ int ngx_http_lua_ffi_set_jit_stack_size(int size, unsigned char *errstr, size_t *errstr_size); ]] ngx_lua_ffi_exec_regex = C.ngx_http_lua_ffi_exec_regex ngx_lua_ffi_set_jit_stack_size = C.ngx_http_lua_ffi_set_jit_stack_size elseif subsystem == 'stream' then ffi.cdef[[ int ngx_stream_lua_ffi_set_jit_stack_size(int size, unsigned char *errstr, size_t *errstr_size); ]] ngx_lua_ffi_exec_regex = C.ngx_stream_lua_ffi_exec_regex ngx_lua_ffi_set_jit_stack_size = C.ngx_stream_lua_ffi_set_jit_stack_size end local _M = { version = base.version } local function re_split_helper(subj, compiled, compile_once, flags, ctx) local rc do local pos = math_max(ctx.pos, 0) rc = ngx_lua_ffi_exec_regex(compiled, flags, subj, #subj, pos) end if rc == PCRE_ERROR_NOMATCH then return nil, nil, nil end if rc < 0 then if not compile_once then destroy_compiled_regex(compiled) end return nil, nil, nil, "pcre_exec() failed: " .. rc end if rc == 0 then if band(flags, FLAG_DFA) == 0 then if not compile_once then destroy_compiled_regex(compiled) end return nil, nil, nil, "capture size too small" end rc = 1 end local caps = compiled.captures local ncaps = compiled.ncaptures local from = caps[0] local to = caps[1] if from < 0 or to < 0 then return nil, nil, nil end if from == to then -- empty match, skip to next char ctx.pos = to + 1 else ctx.pos = to end -- convert to Lua string indexes from = from + 1 to = to + 1 -- retrieve the first sub-match capture if any if ncaps > 0 and rc > 1 then return from, to, sub(subj, caps[2] + 1, caps[3]) end return from, to end function _M.split(subj, regex, opts, ctx, max, res) -- we need to cast this to strings to avoid exceptions when they are -- something else. -- needed because of further calls to string.sub in this function. subj = tostring(subj) if not ctx then ctx = split_ctx ctx.pos = 1 -- set or reset upvalue field elseif not ctx.pos then -- ctx provided by user but missing pos field ctx.pos = 1 end max = max or 0 if not res then -- limit the initial arr_n size of res to a reasonable value -- 0 < narr <= DEFAULT_SPLIT_RES_SIZE local narr = DEFAULT_SPLIT_RES_SIZE if max > 0 then -- the user specified a valid max limiter if max > 0 narr = math_min(narr, max) end res = new_tab(narr, 0) elseif type(res) ~= "table" then error("res is not a table", 2) end local len = #subj if ctx.pos > len then res[1] = nil return res end -- compile regex local compiled, compile_once, flags = re_match_compile(regex, opts) if compiled == nil then -- compiled_once holds the error string return nil, compile_once end local sub_idx = ctx.pos local res_idx = 0 local last_empty_match -- update to split_helper PCRE indexes ctx.pos = sub_idx - 1 -- splitting: with and without a max limiter if max > 0 then local count = 1 while count < max do local from, to, capture, err = re_split_helper(subj, compiled, compile_once, flags, ctx) if err then return nil, err end if not from then break end if last_empty_match then sub_idx = last_empty_match end if from == to then last_empty_match = from end if from > sub_idx or not last_empty_match then count = count + 1 res_idx = res_idx + 1 res[res_idx] = sub(subj, sub_idx, from - 1) if capture then res_idx = res_idx + 1 res[res_idx] = capture end sub_idx = to if sub_idx > len then break end end end else while true do local from, to, capture, err = re_split_helper(subj, compiled, compile_once, flags, ctx) if err then return nil, err end if not from then break end if last_empty_match then sub_idx = last_empty_match end if from == to then last_empty_match = from end if from > sub_idx or not last_empty_match then res_idx = res_idx + 1 res[res_idx] = sub(subj, sub_idx, from - 1) if capture then res_idx = res_idx + 1 res[res_idx] = capture end sub_idx = to if sub_idx > len then break end end end end if not compile_once then destroy_compiled_regex(compiled) end -- trailing nil for non-cleared res tables -- delete empty trailing ones (without max) if max <= 0 and sub_idx > len then for ety_idx = res_idx, 1, -1 do if res[ety_idx] ~= "" then res_idx = ety_idx break end res[ety_idx] = nil end else res_idx = res_idx + 1 res[res_idx] = sub(subj, sub_idx) end res[res_idx + 1] = nil return res end function _M.opt(option, value) if option == "jit_stack_size" then if not is_regex_cache_empty() then error("changing jit stack size is not allowed when some " .. "regexs have already been compiled and cached", 2) end local errbuf = get_string_buf(MAX_ERR_MSG_LEN) local sizep = get_size_ptr() sizep[0] = MAX_ERR_MSG_LEN local rc = ngx_lua_ffi_set_jit_stack_size(value, errbuf, sizep) if rc == FFI_OK then return end error(ffi_str(errbuf, sizep[0]), 2) end error("unrecognized option name", 2) end return _M PKO½N]�ebîîngx/semaphore.luanu„[µü¤-- Copyright (C) Yichun Zhang (agentzh) -- Copyright (C) cuiweixie -- I hereby assign copyright in this code to the lua-resty-core project, -- to be licensed under the same terms as the rest of the code. local base = require "resty.core.base" base.allows_subsystem('http', 'stream') local ffi = require 'ffi' local FFI_OK = base.FFI_OK local FFI_ERROR = base.FFI_ERROR local FFI_DECLINED = base.FFI_DECLINED local ffi_new = ffi.new local ffi_str = ffi.string local ffi_gc = ffi.gc local C = ffi.C local type = type local error = error local tonumber = tonumber local get_request = base.get_request local get_string_buf = base.get_string_buf local get_size_ptr = base.get_size_ptr local setmetatable = setmetatable local co_yield = coroutine._yield local ERR_BUF_SIZE = 128 local subsystem = ngx.config.subsystem local errmsg = base.get_errmsg_ptr() local psem local ngx_lua_ffi_sema_new local ngx_lua_ffi_sema_post local ngx_lua_ffi_sema_count local ngx_lua_ffi_sema_wait local ngx_lua_ffi_sema_gc if subsystem == 'http' then ffi.cdef[[ struct ngx_http_lua_sema_s; typedef struct ngx_http_lua_sema_s ngx_http_lua_sema_t; int ngx_http_lua_ffi_sema_new(ngx_http_lua_sema_t **psem, int n, char **errmsg); int ngx_http_lua_ffi_sema_post(ngx_http_lua_sema_t *sem, int n); int ngx_http_lua_ffi_sema_count(ngx_http_lua_sema_t *sem); int ngx_http_lua_ffi_sema_wait(ngx_http_request_t *r, ngx_http_lua_sema_t *sem, int wait_ms, unsigned char *errstr, size_t *errlen); void ngx_http_lua_ffi_sema_gc(ngx_http_lua_sema_t *sem); ]] psem = ffi_new("ngx_http_lua_sema_t *[1]") ngx_lua_ffi_sema_new = C.ngx_http_lua_ffi_sema_new ngx_lua_ffi_sema_post = C.ngx_http_lua_ffi_sema_post ngx_lua_ffi_sema_count = C.ngx_http_lua_ffi_sema_count ngx_lua_ffi_sema_wait = C.ngx_http_lua_ffi_sema_wait ngx_lua_ffi_sema_gc = C.ngx_http_lua_ffi_sema_gc elseif subsystem == 'stream' then ffi.cdef[[ struct ngx_stream_lua_sema_s; typedef struct ngx_stream_lua_sema_s ngx_stream_lua_sema_t; int ngx_stream_lua_ffi_sema_new(ngx_stream_lua_sema_t **psem, int n, char **errmsg); int ngx_stream_lua_ffi_sema_post(ngx_stream_lua_sema_t *sem, int n); int ngx_stream_lua_ffi_sema_count(ngx_stream_lua_sema_t *sem); int ngx_stream_lua_ffi_sema_wait(ngx_stream_lua_request_t *r, ngx_stream_lua_sema_t *sem, int wait_ms, unsigned char *errstr, size_t *errlen); void ngx_stream_lua_ffi_sema_gc(ngx_stream_lua_sema_t *sem); ]] psem = ffi_new("ngx_stream_lua_sema_t *[1]") ngx_lua_ffi_sema_new = C.ngx_stream_lua_ffi_sema_new ngx_lua_ffi_sema_post = C.ngx_stream_lua_ffi_sema_post ngx_lua_ffi_sema_count = C.ngx_stream_lua_ffi_sema_count ngx_lua_ffi_sema_wait = C.ngx_stream_lua_ffi_sema_wait ngx_lua_ffi_sema_gc = C.ngx_stream_lua_ffi_sema_gc end local _M = { version = base.version } local mt = { __index = _M } function _M.new(n) n = tonumber(n) or 0 if n < 0 then error("no negative number", 2) end local ret = ngx_lua_ffi_sema_new(psem, n, errmsg) if ret == FFI_ERROR then return nil, ffi_str(errmsg[0]) end local sem = psem[0] ffi_gc(sem, ngx_lua_ffi_sema_gc) return setmetatable({ sem = sem }, mt) end function _M.wait(self, seconds) if type(self) ~= "table" or type(self.sem) ~= "cdata" then error("not a semaphore instance", 2) end local r = get_request() if not r then error("no request found") end local milliseconds = tonumber(seconds) * 1000 if milliseconds < 0 then error("no negative number", 2) end local cdata_sem = self.sem local err = get_string_buf(ERR_BUF_SIZE) local errlen = get_size_ptr() errlen[0] = ERR_BUF_SIZE local ret = ngx_lua_ffi_sema_wait(r, cdata_sem, milliseconds, err, errlen) if ret == FFI_ERROR then return nil, ffi_str(err, errlen[0]) end if ret == FFI_OK then return true end if ret == FFI_DECLINED then return nil, "timeout" end -- Note: we cannot use the tail-call form here since we -- might need the current function call's activation -- record to hold the reference to our semaphore object -- to prevent it from getting GC'd prematurely. local ok ok, err = co_yield() return ok, err end function _M.post(self, n) if type(self) ~= "table" or type(self.sem) ~= "cdata" then error("not a semaphore instance", 2) end local cdata_sem = self.sem local num = n and tonumber(n) or 1 if num < 1 then error("positive number required", 2) end -- always return NGX_OK ngx_lua_ffi_sema_post(cdata_sem, num) return true end function _M.count(self) if type(self) ~= "table" or type(self.sem) ~= "cdata" then error("not a semaphore instance", 2) end return ngx_lua_ffi_sema_count(self.sem) end return _M PKO½N]Çö—f@@librestysignal.sonuȯÝíELF>Ð@€@8@°°         ÀÀÈÈÈ$$Påtd<<<QåtdRåtd  øøGNU1çY£ß†÷÷èXK·¬ÇQ*ˆ•ˆH BEÕì»ã’|ÙqXë‚'!  , F"s  †( z  U �__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeresty_signal_signumlibc.so.6_edata__bss_start_endGLIBC_2.2.5iui ‹ € @  à è ð ø  óúHƒìH‹I H…ÀtÿÐHƒÄÃÿ5R ÿ%T @ÿ%R héàÿÿÿH�=I H�B H9øtH‹ö H…Àt ÿà€Ã€H�= H�5 H)þHÁþH‰ðHÁè?HÆHÑþtH‹Å H…ÀtÿàfDÀóú€=Õ u+UHƒ=¢ H‰åt H�=¶ èYÿÿÿèdÿÿÿÆ­ ]ÃÀóúéwÿÿÿ€¸ÿÿÿÿƒÿw ‰ÿH�‹¸ÃóúHƒìHƒÄà ÿÿÿÿ;tþÿÿ4Tÿÿÿ\zRx �$8þÿÿ FJ w€?;*3$"Dðþÿÿ€@ i � ¨  õþÿoð( —  xШ þÿÿo°ÿÿÿoðÿÿo˜ùÿÿo  ÆGA$3a1�µlibrestysignal.so-1.49.0-1.el8.x86_64.debug�ö9Ìý7zXZæÖ´F!t/å£à ‡º]?‘E„h=‰¦ÚŠáƒ2NÙ`L Ž ™ÐZÉŽŒ(€ë‘3W B±ÀDÑ€‡Ô²×­Z"N‚+C’ËÄOÄÅa¦NTÒ;¶Ñ( �Òüˆ©(ÑHàO¨Äz_¡k­[x$ó áð(C&�cp]*S•°ŽôL” 7Õ= AÅ"!€„›×–+÷Ôwñ—6�-;âk[Ÿhí,#x)jÃUiÖ¶·QWÛCÉÉøT¾ÄWÍ5³®y0–JxžÙVO¯PÜj·ÜK¾Ó/9—š Ev¹”Ú1GÔMôG•v>;SMÕ÷«²£æ¯—t3¤!å;ïZ+�f‚ˆAÄy$¤ÉI(;adÒ—ËøÌé_/í @¨/|Ú°s×ñCOsê`–I©]Á¶êÒå:…^‡,>»¾“?Mb/ÛÑÛËnc",1MeYMszò„r¾\�¾�ʲœº…ë�pbíc8“÷!. ŒÀQèg)§'²æq|ZêÉß@åC¢wšˆ þ›Q<ñ‡ë ߯6esÝ�œ‰'nd‡ŽƒÄ®7Ê?9Üt%‹ëW]¾^;–Ñ@ÂÛ¿äæT7r5 UNò?º¶HârAM8zålcß>äß»íúÕ£}ù+™â“)ûgx%¹›p+sëõ*†ù´rˆò6ʪæ€presty/core/var.luanu„[µü¤PK;½N]OÜ> _/_/�Nresty/core/request.luanu„[µü¤PK;½N]«Ôe××&~resty/core/base.luanu„[µü¤PK;½N]÷™Õ¦¦@–resty/core/base64.luanu„[µü¤PK;½N]=©Äm  +¥resty/core/uri.luanu„[µü¤PK;½N]fúáº@j@j‡±resty/core/shdict.luanu„[µü¤PK;½N]§o9襥 resty/core/exit.luanu„[µü¤PK<½N]ÜêYE©©ô!resty/core/hash.luanu„[µü¤PK<½N]¬_HÅ––à1resty/core/phase.luanu„[µü¤PK<½N]cÎ¥êb b º8resty/core/param.luanu„[µü¤PK<½N].Ù%%`Bresty/websocket/server.luanu„[µü¤PK<½N]&*r$Æ(Æ(ÏWresty/websocket/client.luanu„[µü¤PK<½N]Ü:P¡##߀resty/websocket/protocol.luanu„[µü¤PK<½N]çŽ\¢  ?¤resty/random.luanu„[µü¤PK=½N]póŒ×¨¨§resty/sha1.luanu„[µü¤PK=½N]›éŒOO¬resty/sha512.luanu„[µü¤PK=½N]’ M�€€”±resty/shell.luanu„[µü¤PK=½N]†¼]V[V[SÅresty/upstream/healthcheck.luanu„[µü¤PK=½N]²­Ûµìì ÷ resty/sha.luanu„[µü¤PK=½N]�"9œ "resty/sha224.luanu„[µü¤PK=½N]0ß/Yu&resty/sha384.luanu„[µü¤PK=½N]v5‰ìÇÇ Ê*resty/md5.luanu„[µü¤PK=½N]­žÍ;11Î/resty/cookie.luanu„[µü¤PK=½N]z¶¤�¯H¯H?Fresty/lrucache/pureffi.luanu„[µü¤PK=½N]˜NüÔösös8�resty/http.luanu„[µü¤PK=½N]–¼ïÍÍlresty/lrucache.luanu„[µü¤PK=½N]ÞlåqÁÁ{resty/core.luanu„[µü¤PK=½N]¤‚‚66 z"resty/rsa.luanu„[µü¤PK@½N]‹9=e~~ºXresty/http_headers.luanu„[µü¤PK@½N]¾ƒûžSS~]resty/lock.luanu„[µü¤PK@½N]׌T7++presty/template/safe.luanu„[µü¤PK@½N]§«Áúè è !�presty/template/microbenchmark.luanu„[µü¤PK@½N]ŠýŽE×׺}resty/template/html.luanu„[µü¤PK@½N]Eb°3¾Z¾ZØ‚resty/template.luanu„[µü¤PK@½N]n‹�]q/q/ØÝresty/openssl.luanu„[µü¤PK@½N]pþ\ôôŠ resty/limit/conn.luanu„[µü¤PK@½N]VÐ[0 Âresty/limit/count.luanu„[µü¤PK@½N]A´ª?ll#resty/limit/req.luanu„[µü¤PK@½N]lÅ> ))¿1resty/limit/traffic.luanu„[µü¤PKA½N]´N˜\˜\/8resty/dns/resolver.luanu„[µü¤PKA½N]C6ººJ(J(  •resty/aes.luanu„[µü¤PKA½N]wŸ&ƒ;";"”½resty/openssl/ssl.luanu„[µü¤PKA½N]Î�X<ÎÎàresty/openssl/hmac.luanu„[µü¤PKA½N]R3Ÿb``(èresty/openssl/ctx.luanu„[µü¤PKA½N]eBÙç®|®|Íîresty/openssl/pkey.luanu„[µü¤PKA½N]«Á“åPP!Ákresty/openssl/auxiliary/ecdsa.luanu„[µü¤PKA½N]ø=¾  "bzresty/openssl/auxiliary/compat.luanu„[µü¤PKA½N]^ÿû‡6‡6¿€resty/openssl/auxiliary/jwk.luanu„[µü¤PKA½N]¿%Æ@× × |èresty/openssl/mac.luanu„[µü¤PKB½N]ZUüA˜óresty/openssl/stack.luanu„[µü¤PKB½N]¢�'ÇÇ¡ resty/openssl/objects.luanu„[µü¤PKB½N]Uš÷Á Á ± resty/openssl/err.luanu„[µü¤PKB½N]Vº· · · resty/openssl/rsa.luanu„[µü¤PKB½N]gàW“--³# resty/openssl/kdf.luanu„[µü¤PKC½N]+èÊééÿP resty/openssl/crypto.luanu„[µü¤PKC½N]§ˆ@fÇ Ç 0S resty/openssl/provider.luanu„[µü¤PKC½N]ȵƒ¿IIAa resty/openssl/include/pem.luanu„[µü¤PKC½N]^ÓdW­ ­ ×i resty/openssl/include/ssl.luanu„[µü¤PKC½N]â¯yÀööÑu resty/openssl/include/hmac.luanu„[µü¤PKC½N]°^~ÓÓx resty/openssl/include/evp.luanu„[µü¤PKC½N]hìëÕññ5� resty/openssl/include/ecdsa.luanu„[µü¤PKC½N]æÂäPÖÖu� resty/openssl/include/conf.luanu„[µü¤PKC½N]œˆ*¥ä ä ™� resty/openssl/include/bn.luanu„[µü¤PKD½N]Ú×U$áá"Éš resty/openssl/include/x509/csr.luanu„[µü¤PKD½N]<Ö‚‚&ü¢ resty/openssl/include/x509/revoked.luanu„[µü¤PKD½N]í‹òÂÂ"Ô¥ resty/openssl/include/x509/crl.luanu„[µü¤PKD½N]P©¨))(è­ resty/openssl/include/x509/extension.luanu„[µü¤PKD½N]U`ökKK#i² resty/openssl/include/x509/name.luanu„[µü¤PKD½N]Jx¥º º #¶ resty/openssl/include/x509/init.luanu„[µü¤PKD½N]¦«g–ùù& resty/openssl/include/x509/altname.luanu„[µü¤PKD½N]ŸÏ�Ä�� cÆ resty/openssl/include/pkcs12.luanu„[µü¤PKD½N]Xß\]] CË resty/openssl/include/x509v3.luanu„[µü¤PKD½N]Ú þjûûðÙ resty/openssl/include/dh.luanu„[µü¤PKD½N]„½˜ús(s("7ß resty/openssl/include/evp/pkey.luanu„[µü¤PKD½N] ?Çõ| | $ü resty/openssl/include/evp/cipher.luanu„[µü¤PKD½N]ýïÞÞ!Ì resty/openssl/include/evp/mac.luanu„[µü¤PKD½N]KÍ2ú‘‘ û resty/openssl/include/evp/md.luanu„[µü¤PKD½N]¦åÿ,êê!Ü$ resty/openssl/include/evp/kdf.luanu„[µü¤PKD½N]–-*"  "< resty/openssl/include/ossl_typ.luanu„[µü¤PKD½N]Â|ddƒG resty/openssl/include/stack.luanu„[µü¤PKD½N]»üJL}}!6L resty/openssl/include/objects.luanu„[µü¤PKE½N]ôCŒO resty/openssl/include/err.luanu„[µü¤PKE½N]tUùllbS resty/openssl/include/rsa.luanu„[µü¤PKE½N]¯%7_ÕÕ W resty/openssl/include/crypto.luanu„[µü¤PKF½N]¤6p"@Y resty/openssl/include/provider.luanu„[µü¤PKF½N]*(EJJ"§] resty/openssl/include/x509_vfy.luanu„[µü¤PKF½N]’òa=  Cp resty/openssl/include/rand.luanu„[µü¤PKF½N]ð¬Ò��±r resty/openssl/include/bio.luanu„[µü¤PKF½N]‹ ¦?ÐÐt resty/openssl/include/ec.luanu„[µü¤PKF½N]äƒ\ÀÀ›| resty/openssl/include/asn1.luanu„[µü¤PKF½N]Sl$bÌ Ì ©ƒ resty/openssl/include/param.luanu„[µü¤PKF½N]]z×WWÄ‘ resty/openssl/rand.luanu„[µü¤PKG½N]gdP–qqa— resty/openssl/ssl_ctx.luanu„[µü¤PKG½N]MÔˆ**  resty/openssl/ec.luanu„[µü¤PKG½N]Ú~å  ‰´ resty/openssl/asn1.luanu„[µü¤PKG½N]Æyêôî¾ resty/openssl/ecx.luanu„[µü¤PKH½N]Ûl3W³ ³ GÇ resty/openssl/digest.luanu„[µü¤PKH½N]¦fÅê±+±+BÒ resty/openssl/param.luanu„[µü¤PKH½N]÷ºv v :þ resty/signal.luanu„[µü¤PKH½N]¸/tíÅÅð resty/sha256.luanu„[µü¤PKH½N]ÂÞX£wwõ resty/string.luanu„[µü¤PKH½N]@°L7¬ webshield/sslutils.luanu„[µü¤PKH½N]B æxSxS# lfs.sonuȯÝíPKH½N]%|î#(™(™¿v cjson.sonuȯÝíPKH½N] kD«xôxô  openssl.sonuȯÝíPKJ½N]«­Tki i Ñtests/test_builtins.luanu„[µü¤PKJ½N]÷€3]n n �ngx/ssl/session.luanu„[µü¤PKJ½N]BjÌŸoo2ngx/ssl/proxysslverify.luanu„[µü¤PKJ½N]÷£?IU$U$ë(ngx/ssl/clienthello.luanu„[µü¤PKJ½N]…ð}¼}}‡Mngx/ssl/proxysslcert.luanu„[µü¤PKJ½N]ƒ}ß‹È È L^ngx/process.luanu„[µü¤PKJ½N]³HiÚŽVŽV Sjngx/ssl.luanu„[µü¤PKJ½N]T)»QÝÝÁngx/proxyssl.luanu„[µü¤PKJ½N]q–Á�L�L 9Éngx/pipe.luanu„[µü¤PKJ½N]ÕD)ÉÉ ngx/resp.luanu„[µü¤PKJ½N]ýÛ~::  ngx/ocsp.luanu„[µü¤PKM½N]Ü…½¹Ý,Ý,+ngx/balancer.luanu„[µü¤PKM½N]`M*¶¶œXngx/base64.luanu„[µü¤PKM½N]F°ó_::�_ngx/errlog.luanu„[µü¤PKN½N]ㆠðTT qngx/req.luanu„[µü¤PKN½N]ªÝØ11 —rngx/re.luanu„[µü¤PKO½N]�ebîî‘ngx/semaphore.luanu„[µü¤PKO½N]Çö—f@@1¥librestysignal.sonuȯÝíPK››5²À