pax_global_header00006660000000000000000000000064120740631100014504gustar00rootroot0000000000000052 comment=5c8ccee729f54eccb1aac2458b41c4673c98a42e jquery-goodies-8/000077500000000000000000000000001207406311000141635ustar00rootroot00000000000000jquery-goodies-8/cookie/000077500000000000000000000000001207406311000154345ustar00rootroot00000000000000jquery-goodies-8/cookie/README000066400000000000000000000000001207406311000163020ustar00rootroot00000000000000jquery-goodies-8/cookie/jquery.cookie.js000066400000000000000000000072011207406311000205610ustar00rootroot00000000000000/*jslint browser: true */ /*global jQuery: true */ /** * jQuery Cookie plugin * * Copyright (c) 2010 Klaus Hartl (stilbuero.de) * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * */ // TODO JsDoc /** * Create a cookie with the given key and value and other optional parameters. * * @example $.cookie('the_cookie', 'the_value'); * @desc Set the value of a cookie. * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true }); * @desc Create a cookie with all available options. * @example $.cookie('the_cookie', 'the_value'); * @desc Create a session cookie. * @example $.cookie('the_cookie', null); * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain * used when the cookie was set. * * @param String key The key of the cookie. * @param String value The value of the cookie. * @param Object options An object literal containing key/value pairs to provide optional cookie attributes. * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object. * If a negative value is specified (e.g. a date in the past), the cookie will be deleted. * If set to null or omitted, the cookie will be a session cookie and will not be retained * when the the browser exits. * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie). * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie). * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will * require a secure protocol (like HTTPS). * @type undefined * * @name $.cookie * @cat Plugins/Cookie * @author Klaus Hartl/klaus.hartl@stilbuero.de */ /** * Get the value of a cookie with the given key. * * @example $.cookie('the_cookie'); * @desc Get the value of a cookie. * * @param String key The key of the cookie. * @return The value of the cookie. * @type String * * @name $.cookie * @cat Plugins/Cookie * @author Klaus Hartl/klaus.hartl@stilbuero.de */ jQuery.cookie = function (key, value, options) { // key and at least value given, set cookie... if (arguments.length > 1 && String(value) !== "[object Object]") { options = jQuery.extend({}, options); if (value === null || value === undefined) { options.expires = -1; } if (typeof options.expires === 'number') { var days = options.expires, t = options.expires = new Date(); t.setDate(t.getDate() + days); } value = String(value); return (document.cookie = [ encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value), options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : '' ].join('')); } // key and possibly options given, get cookie... options = value || {}; var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent; return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null; }; jquery-goodies-8/cookie/server.js000066400000000000000000000012761207406311000173060ustar00rootroot00000000000000var http = require('http'), url = require('url'), path = require('path'), fs = require('fs'); http.createServer(function (request, response) { var uri = url.parse(request.url).pathname, filename = path.join(process.cwd(), uri); fs.readFile(filename, 'binary', function (err, file) { if (err) { response.writeHead(500, { 'Content-Type': 'text/plain' }); response.write(err + '\n'); response.end(); return; } response.writeHead(200); response.write(file, 'utf-8'); response.end(); }); }).listen(8124, '127.0.0.1'); console.log('Server running at http://127.0.0.1:8124/'); jquery-goodies-8/cookie/test.html000066400000000000000000000013151207406311000173010ustar00rootroot00000000000000 jquery.cookie Test Suite

jquery.cookie Test Suite

    jquery-goodies-8/cookie/test.js000066400000000000000000000032711207406311000167540ustar00rootroot00000000000000var before = { setup: function () { cookies = document.cookie.split('; ') for (var i = 0, c; (c = (cookies)[i]) && (c = c.split('=')[0]); i++) { document.cookie = c + '=; expires=' + new Date(0).toUTCString(); } } }; module('read', before); test('simple value', 1, function () { document.cookie = 'c=v'; equals($.cookie('c'), 'v', 'should return value'); }); test('not existing', 1, function () { equals($.cookie('whatever'), null, 'should return null'); }); test('decode', 1, function () { document.cookie = encodeURIComponent(' c') + '=' + encodeURIComponent(' v'); equals($.cookie(' c'), ' v', 'should decode key and value'); }); test('raw: true', 1, function () { document.cookie = 'c=%20v'; equals($.cookie('c', { raw: true }), '%20v', 'should not decode'); }); module('write', before); test('String primitive', 1, function () { $.cookie('c', 'v'); equals(document.cookie, 'c=v', 'should write value'); }); test('String object', 1, function () { $.cookie('c', new String('v')); equals(document.cookie, 'c=v', 'should write value'); }); test('return', 1, function () { equals($.cookie('c', 'v'), 'c=v', 'should return written cookie string'); }); test('raw: true', 1, function () { equals($.cookie('c', ' v', { raw: true }).split('=')[1], ' v', 'should not encode'); }); module('delete', before); test('delete', 2, function () { document.cookie = 'c=v'; $.cookie('c', null); equals(document.cookie, '', 'should delete with null as value'); document.cookie = 'c=v'; $.cookie('c', undefined); equals(document.cookie, '', 'should delete with undefined as value'); }); jquery-goodies-8/countdown/000077500000000000000000000000001207406311000162035ustar00rootroot00000000000000jquery-goodies-8/countdown/countdownBasic.html000066400000000000000000000023071207406311000220550ustar00rootroot00000000000000 jQuery Countdown

    jQuery Countdown Basics

    This page demonstrates the very basics of the jQuery Countdown plugin. It contains the minimum requirements for using the plugin and can be used as the basis for your own experimentation.

    For more detail see the documentation reference page.

    Counting down to 26 January 2010.

    jquery-goodies-8/countdown/countdownGlowing.gif000066400000000000000000000133671207406311000222530ustar00rootroot00000000000000GIF89a2HnEJ=5#:+;1 P: N6d6d6c5cL9OON!,2@pH,Ȥrl:ШtJZجvzxLtynpbnFs/3g~l}G:v{|~Nyzuxjt5<6<;Qv5uCwƒi{|ŐsyEհ9tƓְnZd932v Z4Ept ځc%{8;[۹oIh)O:‹[Wc~뫚jaȌ 4kPڥeȠC w ױYL/}ށv CE`GCh`8P@_՗!hXdUNX1ܰi` `"o-4Yb 7ό` ֙18 ":#^&BB@dxG6$qI5 8^IRHj2`wdHu`\*ހADH ic<%ZF&,ގZ (x)l2)}8Yx D3(*ba!҂R.nAx`'³E0Pv(\Gۀ6菒L{Y| 0S;7 ڪNNّI$j驖+˚DhjzxfyP~rgɣ歂yhP" nŚ8$X`$~8/Swm"Cx@rƃ8}.Ӭ$&ɟS%=QG' N Th#Ns>R7AnnFc1B)v) $y%bH1&[I@Q<7vqԉ^$%Bf1j&D>qR{ ѨY1)-Nz IF0S-^ nG4ES%&hm.>&iIRP!15&C6} ,.ڀ!Q]YʗQlf< h/<ف_Րrt'< SyӞm0+ )=WH' v1d@O\~H @A#7"xDb*H! +hc2C@zˡ 3L"r)L_ jaĘ1G:~?hFXrR-*BS Y Jscm!+ؚċLvZ)T2e7+\1($<@耭`0(o '_mV ᒍ6bk IG&ֲ_Lߐ틬QSa|w̤ ؒcAO}w^M>oB̉k09BrJCLyf. 9y &20Aג++)=2++::7rmQDyy&M @߽&4Nu^vټ!R`{[ڱ O ^ S$ц. Ye#Q0 7(QXy K)]r=uϏ`T nHC;]:яKb{aU+n ܣ9/mpGWhDxsȁI]2_/ .>!lO{L3wyO:8k[ <\`ggB,7Av;K)`C, ;~3R:HWVzzxHYfW!V[^&1L2G. gc@#X_{y @̆(:Y &=F>;:э?הhGFDBBKbsJWò6ZA,cJ$T aK&}$n@wNdMrA<@BA} bt<7L$gyးg;sADFƒt_>CHFfD+GAIq$_x&z!f|-YqlȶK@&2F~9'@ `E,3Yd?Ʀ1gAd@kaGa lE*T62g@)lUE1ƣPS!KV-~8v7rEF ;΅t3]r,:X!e"#FcG:RP"i[16C'( @-uPHYq%Ubs+Oj? *Hc/d{t-Y4M cZ5'7aS7 kLr7)F'6ԈYES(yrh!Ds)ixw葾'QT/y$-!ÈB&*C"E\XS|;"QBETK(/,҆0RT $N{}h;L|*iT׹[me5P\3y9q\%3 ܀ok7CguƷLtk("YR5rZZ 6H[Dp fn&x4ߌȼ xdhFѵz?DbUlVyiۘl6!#vA5dM0ûĺ >nJKӉ @ԑ 1;q S0J `&Li SC8nQGQZZ#ŷɾǴNN/JVjdNDzmq-0j*bؚO<(j[&c)]M1z̭z@F*hFӐlzȭID$F @-:6Béba` -`gMMF`4$X$B{2,*辢'9k}XlwJ jX$i =@1P,wEgj)@)ob@:]t 4bt%+a"ق&x #ϔyyj)( <]iķ%ćFC/!I`&C(YsY}j=Ȣ?m2Je8t嚜jR> %+B,ڠu`#w@s$7uuk\S5 S0H6\V Խ{?vŽ9P tG ޶bT9 v*>zYb@ؙꆎm>㺬d@끽~&(r)3hQ+0#J[C/0h(Y ywKUX!\S?_+Ԕn߾!y?uW??Le2FaIyL5?磓蟐e)mC,g"$#ߪ dTp aP|dE?~{x|!,l"pBz(i󧯵y@A!ClT|a1mjG*3_Pr߰DևW/MI@_d3/Qjw~a(ِ_5X^Ɠh"c_/ x?_!i?X4It>QZ^YV:}a[6i ;jquery-goodies-8/countdown/countdownLED.png000066400000000000000000000005231207406311000212560ustar00rootroot00000000000000PNG  IHDR`6IDATx 09Ji.uJǓ}*CDd/GZk7K7}ƣyZN;G۱ty-_ˮ[ X7Pҹ 8̓ @A  I&UG2uL"SGш<.;{f"O܁Ewu >jqU,@A  xO~ߏʷ2>\?shV[CP>IENDB`jquery-goodies-8/countdown/jquery.countdown-ar.js000066400000000000000000000011341207406311000224760ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Arabic (عربي) initialisation for the jQuery countdown extension Translated by Talal Al Asmari (talal@psdgroups.com), April 2009. */ (function($) { $.countdown.regional['ar'] = { labels: ['سنوات','أشهر','أسابيع','أيام','ساعات','دقائق','ثواني'], labels1: ['سنة','شهر','أسبوع','يوم','ساعة','دقيقة','ثانية'], compactLabels: ['س', 'ش', 'أ', 'ي'], whichLabels: null, timeSeparator: ':', isRTL: true}; $.countdown.setDefaults($.countdown.regional['ar']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-bg.js000066400000000000000000000012141207406311000224630ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Bulgarian initialisation for the jQuery countdown extension * Written by Manol Trendafilov manol@rastermania.com (2010) */ (function($) { $.countdown.regional['bg'] = { labels: ['Години', 'Месеца', 'Седмица', 'Дни', 'Часа', 'Минути', 'Секунди'], labels1: ['Година', 'Месец', 'Седмица', 'Ден', 'Час', 'Минута', 'Секунда'], compactLabels: ['l', 'm', 'n', 'd'], compactLabels1: ['g', 'm', 'n', 'd'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['bg']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-bn.js000066400000000000000000000022421207406311000224740ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Bengali/Bangla initialisation for the jQuery countdown extension * Written by Mohammed Tajuddin (tajuddin@chittagong-it.com) Jan 2011. */ (function($) { $.countdown.regional['bn'] = { labels: [' ', ' ', ' ', ' ', ' ', ' ', ' '], labels1: [' ', ' ', ' ', ' ', ' ', ' ', ' '], compactLabels: [' ', ' ', ' ', ' '], whichLabels: null, timeSeparator: ':', isRTL: false }; $.countdown.setDefaults($.countdown.regional['bn']); })(jQuery);jquery-goodies-8/countdown/jquery.countdown-ca.js000066400000000000000000000010371207406311000224610ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Catalan initialisation for the jQuery countdown extension Written by Amanida Media www.amanidamedia.com (2010) */ (function($) { $.countdown.regional['ca'] = { labels: ['Anys', 'Mesos', 'Setmanes', 'Dies', 'Hores', 'Minuts', 'Segons'], labels1: ['Anys', 'Mesos', 'Setmanes', 'Dies', 'Hores', 'Minuts', 'Segons'], compactLabels: ['a', 'm', 's', 'g'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['ca']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-cs.js000066400000000000000000000012631207406311000225040ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Czech initialisation for the jQuery countdown extension * Written by Roman Chlebec (creamd@c64.sk) (2008) */ (function($) { $.countdown.regional['cs'] = { labels: ['Roků', 'Měsíců', 'Týdnů', 'Dní', 'Hodin', 'Minut', 'Sekund'], labels1: ['Rok', 'Měsíc', 'Týden', 'Den', 'Hodina', 'Minuta', 'Sekunda'], labels2: ['Roky', 'Měsíce', 'Týdny', 'Dny', 'Hodiny', 'Minuty', 'Sekundy'], compactLabels: ['r', 'm', 't', 'd'], whichLabels: function(amount) { return (amount == 1 ? 1 : (amount >= 2 && amount <= 4 ? 2 : 0)); }, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['cs']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-da.js000066400000000000000000000010071207406311000224570ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Danish initialisation for the jQuery countdown extension Written by Buch (admin@buch90.dk). */ (function($) { $.countdown.regional['da'] = { labels: ['År', 'Måneder', 'Uger', 'Dage', 'Timer', 'Minutter', 'Sekunder'], labels1: ['År', 'Månad', 'Uge', 'Dag', 'Time', 'Minut', 'Sekund'], compactLabels: ['Å', 'M', 'U', 'D'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['da']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-de.js000066400000000000000000000010041207406311000224600ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html German initialisation for the jQuery countdown extension Written by Samuel Wulf. */ (function($) { $.countdown.regional['de'] = { labels: ['Jahre', 'Monate', 'Wochen', 'Tage', 'Stunden', 'Minuten', 'Sekunden'], labels1: ['Jahr', 'Monat', 'Woche', 'Tag', 'Stunde', 'Minute', 'Sekunde'], compactLabels: ['J', 'M', 'W', 'T'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['de']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-el.js000066400000000000000000000011651207406311000225000ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Greek initialisation for the jQuery countdown extension Written by Philip. */ (function($) { $.countdown.regional['el'] = { labels: ['Χρόνια', 'Μήνες', 'Εβδομάδες', 'Μέρες', 'Ώρες', 'Λεπτά', 'Δευτερόλεπτα'], labels1: ['Χρόνος', 'Μήνας', 'Εβδομάδα', 'Ημέρα', 'Ώρα', 'Λεπτό', 'Δευτερόλεπτο'], compactLabels: ['Χρ.', 'Μην.', 'Εβδ.', 'Ημ.'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['el']); })(jQuery);jquery-goodies-8/countdown/jquery.countdown-es.js000066400000000000000000000010611207406311000225020ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Spanish initialisation for the jQuery countdown extension * Written by Sergio Carracedo Martinez webmaster@neodisenoweb.com (2008) */ (function($) { $.countdown.regional['es'] = { labels: ['Años', 'Meses', 'Semanas', 'Días', 'Horas', 'Minutos', 'Segundos'], labels1: ['Año', 'Mes', 'Semana', 'Día', 'Hora', 'Minuto', 'Segundo'], compactLabels: ['a', 'm', 's', 'g'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['es']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-et.js000066400000000000000000000010641207406311000225060ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Estonian initialisation for the jQuery countdown extension Written by Helmer */ (function($) { $.countdown.regional['et'] = { labels: ['Aastat', 'Kuud', 'Nädalat', 'Päeva', 'Tundi', 'Minutit', 'Sekundit'], labels1: ['Aasta', 'Kuu', 'Nädal', 'Päev', 'Tund', 'Minut', 'Sekund'], compactLabels: ['a', 'k', 'n', 'p'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['et']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-fa.js000066400000000000000000000011211207406311000224560ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Persian (فارسی) initialisation for the jQuery countdown extension Written by Alireza Ziaie (ziai@magfa.com) Oct 2008. */ (function($) { $.countdown.regional['fa'] = { labels: ['‌سال', 'ماه', 'هفته', 'روز', 'ساعت', 'دقیقه', 'ثانیه'], labels1: ['سال', 'ماه', 'هفته', 'روز', 'ساعت', 'دقیقه', 'ثانیه'], compactLabels: ['س', 'م', 'ه', 'ر'], whichLabels: null, timeSeparator: ':', isRTL: true}; $.countdown.setDefaults($.countdown.regional['fa']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-fi.js000066400000000000000000000011051207406311000224700ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Finnish initialisation for the jQuery countdown extension Written by Kalle Vänskä and Juha Suni (juhis.suni@gmail.com). */ (function($) { $.countdown.regional['fi'] = { labels: ['Vuotta', 'Kuukautta', 'Viikkoa', 'Päivää', 'Tuntia', 'Minuuttia', 'Sekuntia'], labels1: ['Vuosi', 'Kuukausi', 'Viikko', 'Päivä', 'Tunti', 'Minuutti', 'Sekunti'], compactLabels: ['v', 'kk', 'vk', 'pv'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['fi']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-fr.js000066400000000000000000000010521207406311000225020ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html French initialisation for the jQuery countdown extension Written by Keith Wood (kbwood{at}iinet.com.au) Jan 2008. */ (function($) { $.countdown.regional['fr'] = { labels: ['Années', 'Mois', 'Semaines', 'Jours', 'Heures', 'Minutes', 'Secondes'], labels1: ['Année', 'Mois', 'Semaine', 'Jour', 'Heure', 'Minute', 'Seconde'], compactLabels: ['a', 'm', 's', 'j'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['fr']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-gl.js000066400000000000000000000010411207406311000224730ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Galician initialisation for the jQuery countdown extension * Written by Moncho Pena ramon.pena.rodriguez@gmail.com (2009) */ (function($) { $.countdown.regional['gl'] = { labels: ['Anos', 'Meses', 'Semanas', 'Días', 'Horas', 'Minutos', 'Segundos'], labels1: ['Anos', 'Meses', 'Semanas', 'Días', 'Horas', 'Minutos', 'Segundos'], compactLabels: ['a', 'm', 's', 'g'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['gl']); })(jQuery);jquery-goodies-8/countdown/jquery.countdown-he.js000066400000000000000000000010721207406311000224710ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Hebrew initialisation for the jQuery countdown extension * Translated by Nir Livne, Dec 2008 */ (function($) { $.countdown.regional['he'] = { labels: ['שנים', 'חודשים', 'שבועות', 'ימים', 'שעות', 'דקות', 'שניות'], labels1: ['שנה', 'חודש', 'שבוע', 'יום', 'שעה', 'דקה', 'שנייה'], compactLabels: ['שנ', 'ח', 'שב', 'י'], whichLabels: null, timeSeparator: ':', isRTL: true}; $.countdown.setDefaults($.countdown.regional['he']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-hr.js000066400000000000000000000013121207406311000225030ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Croatian Latin initialisation for the jQuery countdown extension * Written by Dejan Broz info@hqfactory.com (2011) */ (function($) { $.countdown.regional['hr'] = { labels: ['Godina', 'Mjeseci', 'Tjedana', 'Dana', 'Sati', 'Minuta', 'Sekundi'], labels1: ['Godina', 'Mjesec', 'Tjedan', 'Dan', 'Sat', 'Minuta', 'Sekunda'], labels2: ['Godine', 'Mjeseca', 'Tjedna', 'Dana', 'Sata', 'Minute', 'Sekunde'], compactLabels: ['g', 'm', 't', 'd'], whichLabels: function(amount) { return (amount == 1 ? 1 : (amount >= 2 && amount <= 4 ? 2 : 0)); }, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['hr']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-hu.js000066400000000000000000000010211207406311000225030ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Hungarian initialisation for the jQuery countdown extension * Written by Edmond L. (webmond@gmail.com). */ (function($) { $.countdown.regional['hu'] = { labels: ['Év', 'Hónap', 'Hét', 'Nap', 'Óra', 'Perc', 'Másodperc'], labels1: ['Év', 'Hónap', 'Hét', 'Nap', 'Óra', 'Perc', 'Másodperc'], compactLabels: ['É', 'H', 'Hé', 'N'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['hu']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-id.js000066400000000000000000000010041207406311000224640ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Indonesian initialisation for the jQuery countdown extension Written by Erwin Yonathan Jan 2009. */ (function($) { $.countdown.regional['id'] = { labels: ['tahun', 'bulan', 'minggu', 'hari', 'jam', 'menit', 'detik'], labels1: ['tahun', 'bulan', 'minggu', 'hari', 'jam', 'menit', 'detik'], compactLabels: ['t', 'b', 'm', 'h'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['id']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-it.js000066400000000000000000000010421207406311000225060ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Italian initialisation for the jQuery countdown extension * Written by Davide Bellettini (davide.bellettini@gmail.com) Feb 2008. */ (function($) { $.countdown.regional['it'] = { labels: ['Anni', 'Mesi', 'Settimane', 'Giorni', 'Ore', 'Minuti', 'Secondi'], labels1: ['Anni', 'Mesi', 'Settimane', 'Giorni', 'Ore', 'Minuti', 'Secondi'], compactLabels: ['a', 'm', 's', 'g'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['it']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-ja.js000066400000000000000000000010041207406311000224620ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Japanese initialisation for the jQuery countdown extension Written by Ken Ishimoto (ken@ksroom.com) Aug 2009. */ (function($) { $.countdown.regional['ja'] = { labels: ['年', '月', '週', '日', '時', '分', '秒'], labels1: ['年', '月', '週', '日', '時', '分', '秒'], compactLabels: ['年', '月', '週', '日'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['ja']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-ko.js000066400000000000000000000010311207406311000225010ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Korean initialisation for the jQuery countdown extension Written by Ryan Yu (ryanyu79@gmail.com). */ (function($) { $.countdown.regional['ko'] = { labels: ['년', '월', '주', '일', '시', '분', '초'], labels1: ['년', '월', '주', '일', '시', '분', '초'], compactLabels: ['년', '월', '주', '일'], compactLabels1: ['년', '월', '주', '일'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['ko']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-lt.js000066400000000000000000000010741207406311000225160ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Lithuanian localisation for the jQuery countdown extension * Written by Moacir P. de Sá Pereira (moacir{at}gmail.com) (2009) */ (function($) { $.countdown.regional['lt'] = { labels: ['Metų', 'Mėnesių', 'Savaičių', 'Dienų', 'Valandų', 'Minučių', 'Sekundžių'], labels1: ['Metai', 'Mėnuo', 'Savaitė', 'Diena', 'Valanda', 'Minutė', 'Sekundė'], compactLabels: ['m', 'm', 's', 'd'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['lt']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-lv.js000066400000000000000000000011371207406311000225200ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Latvian initialisation for the jQuery countdown extension * Written by Jānis Peisenieks janis.peisenieks@gmail.com (2010) */ (function($) { $.countdown.regional['lv'] = { labels: ['Gadi', 'Mēneši', 'Nedēļas', 'Dienas', 'Stundas', 'Minūtes', 'Sekundes'], labels1: ['Gads', 'Mēnesis', 'Nedēļa', 'Diena', 'Stunda', 'Minūte', 'Sekunde'], compactLabels: ['l', 'm', 'n', 'd'], compactLabels1: ['g', 'm', 'n', 'd'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['lv']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-ms.js000066400000000000000000000010241207406311000225110ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Malay initialisation for the jQuery countdown extension Written by Jason Ong (jason{at}portalgroove.com) May 2010. */ (function($) { $.countdown.regional['ms'] = { labels: ['Tahun', 'Bulan', 'Minggu', 'Hari', 'Jam', 'Minit', 'Saat'], labels1: ['Tahun', 'Bulan', 'Minggu', 'Hari', 'Jam', 'Minit', 'Saat'], compactLabels: ['t', 'b', 'm', 'h'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['ms']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-my.js000066400000000000000000000013241207406311000225220ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Burmese initialisation for the jQuery countdown extension Written by Win Lwin Moe (winnlwinmoe@gmail.com) Dec 2009. */ (function($) { $.countdown.regional['my'] = { labels: ['နွစ္', 'လ', 'ရက္သတဿတပတ္', 'ရက္', 'နာရီ', 'မိနစ္', 'စကဿကန့္'], labels1: ['နွစ္', 'လ', 'ရက္သတဿတပတ္', 'ရက္', 'နာရီ', 'မိနစ္', 'စကဿကန့္'], compactLabels: ['နွစ္', 'လ', 'ရက္သတဿတပတ္', 'ရက္'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['my']); })(jQuery);jquery-goodies-8/countdown/jquery.countdown-nb.js000066400000000000000000000007511207406311000224770ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Norwegian Bokmål translation Written by Kristian Ravnevand */ (function($) { $.countdown.regional['nb'] = { labels: ['År', 'Måneder', 'Uker', 'Dager', 'Timer', 'Minutter', 'Sekunder'], labels1: ['År', 'Måned', 'Uke', 'Dag', 'Time', 'Minutt', 'Sekund'], compactLabels: ['Å', 'M', 'U', 'D'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['nb']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-nl.js000066400000000000000000000010411207406311000225020ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Dutch initialisation for the jQuery countdown extension Written by Mathias Bynens Mar 2008. */ (function($) { $.countdown.regional['nl'] = { labels: ['Jaren', 'Maanden', 'Weken', 'Dagen', 'Uren', 'Minuten', 'Seconden'], labels1: ['Jaar', 'Maand', 'Week', 'Dag', 'Uur', 'Minuut', 'Seconde'], compactLabels: ['j', 'm', 'w', 'd'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['nl']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-pl.js000066400000000000000000000015151207406311000225120ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Polish initialisation for the jQuery countdown extension * Written by Pawel Lewtak lewtak@gmail.com (2008) */ (function($) { $.countdown.regional['pl'] = { labels: ['lat', 'miesięcy', 'tygodni', 'dni', 'godzin', 'minut', 'sekund'], labels1: ['rok', 'miesiąc', 'tydzień', 'dzień', 'godzina', 'minuta', 'sekunda'], labels2: ['lata', 'miesiące', 'tygodnie', 'dni', 'godziny', 'minuty', 'sekundy'], compactLabels: ['l', 'm', 't', 'd'], compactLabels1: ['r', 'm', 't', 'd'], whichLabels: function(amount) { var units = amount % 10; var tens = Math.floor((amount % 100) / 10); return (amount == 1 ? 1 : (units >= 2 && units <= 4 && tens != 1 ? 2 : 0)); }, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['pl']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-pt-BR.js000066400000000000000000000010771207406311000230260ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Brazilian initialisation for the jQuery countdown extension Translated by Marcelo Pellicano de Oliveira (pellicano@gmail.com) Feb 2008. */ (function($) { $.countdown.regional['pt-BR'] = { labels: ['Anos', 'Meses', 'Semanas', 'Dias', 'Horas', 'Minutos', 'Segundos'], labels1: ['Anos', 'Meses', 'Semanas', 'Dias', 'Horas', 'Minutos', 'Segundos'], compactLabels: ['a', 'm', 's', 'd'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['pt-BR']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-ro.js000066400000000000000000000010211207406311000225070ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Romanian initialisation for the jQuery countdown extension * Written by Edmond L. (webmond@gmail.com). */ (function($) { $.countdown.regional['ro'] = { labels: ['Ani', 'Luni', 'Saptamani', 'Zile', 'Ore', 'Minute', 'Secunde'], labels1: ['An', 'Luna', 'Saptamana', 'Ziua', 'Ora', 'Minutul', 'Secunda'], compactLabels: ['A', 'L', 'S', 'Z'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['ro']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-ru.js000066400000000000000000000017101207406311000225220ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Russian initialisation for the jQuery countdown extension * Written by Sergey K. (xslade{at}gmail.com) June 2010. */ (function($) { $.countdown.regional['ru'] = { labels: ['Лет', 'Месяцев', 'Недель', 'Дней', 'Часов', 'Минут', 'Секунд'], labels1: ['Год', 'Месяц', 'Неделя', 'День', 'Час', 'Минута', 'Секунда'], labels2: ['Года', 'Месяца', 'Недели', 'Дня', 'Часа', 'Минуты', 'Секунды'], compactLabels: ['l', 'm', 't', 'd'], compactLabels1: ['r', 'm', 't', 'd'], whichLabels: function(amount) { var units = amount % 10; var tens = Math.floor((amount % 100) / 10); return (amount == 1 ? 1 : (units >= 2 && units <= 4 && tens != 1 ? 2 : (units == 1 && tens != 1 ? 1 : 0))); }, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['ru']); })(jQuery);jquery-goodies-8/countdown/jquery.countdown-sk.js000066400000000000000000000013021207406311000225060ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Slovak initialisation for the jQuery countdown extension * Written by Roman Chlebec (creamd@c64.sk) (2008) */ (function($) { $.countdown.regional['sk'] = { labels: ['Rokov', 'Mesiacov', 'Týždňov', 'Dní', 'Hodín', 'Minút', 'Sekúnd'], labels1: ['Rok', 'Mesiac', 'Týždeň', 'Deň', 'Hodina', 'Minúta', 'Sekunda'], labels2: ['Roky', 'Mesiace', 'Týždne', 'Dni', 'Hodiny', 'Minúty', 'Sekundy'], compactLabels: ['r', 'm', 't', 'd'], whichLabels: function(amount) { return (amount == 1 ? 1 : (amount >= 2 && amount <= 4 ? 2 : 0)); }, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['sk']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-sl.js000066400000000000000000000010131207406311000225060ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Slovenian localisation for the jQuery countdown extension * Written by Borut Tomažin (debijan{at}gmail.com) (2011) */ (function($) { $.countdown.regional['sl'] = { labels: ['Let', 'Mesecev', 'Tednov', 'Dni', 'Ur', 'Minut', 'Sekund'], labels1: ['Leto', 'Mesec', 'Teden', 'Dan', 'Ura', 'Minuta', 'Sekunda'], compactLabels: ['l', 'm', 't', 'd'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['sl']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-sr-SR.js000066400000000000000000000013061207406311000230430ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Serbian Latin initialisation for the jQuery countdown extension * Written by Predrag Leka lp@lemurcake.com (2010) */ (function($) { $.countdown.regional['sr-SR'] = { labels: ['Godina', 'Meseci', 'Nedelja', 'Dana', 'Časova', 'Minuta', 'Sekundi'], labels1: ['Godina', 'Mesec', 'Nedelja', 'Dan', 'Čas', 'Minut', 'Sekunda'], labels2: ['Godine', 'Meseca', 'Nedelje', 'Dana', 'Časa', 'Minuta', 'Sekunde'], compactLabels: ['g', 'm', 'n', 'd'], whichLabels: function(amount) { return (amount == 1 ? 1 : (amount >= 2 && amount <= 4 ? 2 : 0)); }, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['sr-SR']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-sr.js000066400000000000000000000014641207406311000225260ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Serbian Cyrillic initialisation for the jQuery countdown extension * Written by Predrag Leka lp@lemurcake.com (2010) */ (function($) { $.countdown.regional['sr'] = { labels: ['Година', 'Месеци', 'Недеља', 'Дана', 'Часова', 'Минута', 'Секунди'], labels1: ['Година', 'месец', 'Недеља', 'Дан', 'Час', 'Минут', 'Секунда'], labels2: ['Године', 'Месеца', 'Недеље', 'Дана', 'Часа', 'Минута', 'Секунде'], compactLabels: ['г', 'м', 'н', 'д'], whichLabels: function(amount) { return (amount == 1 ? 1 : (amount >= 2 && amount <= 4 ? 2 : 0)); }, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['sr']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-sv.js000066400000000000000000000010221207406311000225200ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Swedish initialisation for the jQuery countdown extension Written by Carl (carl@nordenfelt.com). */ (function($) { $.countdown.regional['sv'] = { labels: ['År', 'Månader', 'Veckor', 'Dagar', 'Timmar', 'Minuter', 'Sekunder'], labels1: ['År', 'Månad', 'Vecka', 'Dag', 'Timme', 'Minut', 'Sekund'], compactLabels: ['Å', 'M', 'V', 'D'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['sv']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-th.js000066400000000000000000000013041207406311000225060ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Thai initialisation for the jQuery countdown extension Written by Pornchai Sakulsrimontri (li_sin_th@yahoo.com). */ (function($) { $.countdown.regional['th'] = { labels: ['ปี', 'เดือน', 'สัปดาห์', 'วัน', 'ชั่วโมง', 'นาที', 'วินาที'], labels1: ['ปี', 'เดือน', 'สัปดาห์', 'วัน', 'ชั่วโมง', 'นาที', 'วินาที'], compactLabels: ['ปี', 'เดือน', 'สัปดาห์', 'วัน'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['th']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-tr.js000066400000000000000000000010221207406311000225150ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Turkish initialisation for the jQuery countdown extension * Written by Bekir Ahmetoğlu (bekir@cerek.com) Aug 2008. */ (function($) { $.countdown.regional['tr'] = { labels: ['Yıl', 'Ay', 'Hafta', 'Gün', 'Saat', 'Dakika', 'Saniye'], labels1: ['Yıl', 'Ay', 'Hafta', 'Gün', 'Saat', 'Dakika', 'Saniye'], compactLabels: ['y', 'a', 'h', 'g'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['tr']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-uk.js000066400000000000000000000011631207406311000225150ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Ukrainian initialisation for the jQuery countdown extension * Written by Goloborodko M misha.gm@gmail.com (2009) */ (function($) { $.countdown.regional['uk'] = { labels: ['Років', 'Місяців', 'Тижднів', 'Днів', 'Годин', 'Хвилин', 'Секунд'], labels1: ['Рік', 'Місяць', 'Тиждень', 'День', 'Година', 'Хвилина', 'Секунда'], compactLabels: ['r', 'm', 't', 'd'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['uk']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-vi.js000066400000000000000000000010421207406311000225100ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html * Vietnamese initialisation for the jQuery countdown extension * Written by Pham Tien Hung phamtienhung@gmail.com (2010) */ (function($) { $.countdown.regional['vi'] = { labels: ['Năm', 'Tháng', 'Tuần', 'Ngày', 'Giờ', 'Phút', 'Giây'], labels1: ['Năm', 'Tháng', 'Tuần', 'Ngày', 'Giờ', 'Phút', 'Giây'], compactLabels: ['năm', 'th', 'tu', 'ng'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['vi']); })(jQuery);jquery-goodies-8/countdown/jquery.countdown-zh-CN.js000066400000000000000000000010571207406311000230170ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Simplified Chinese initialisation for the jQuery countdown extension Written by Cloudream (cloudream@gmail.com). */ (function($) { $.countdown.regional['zh-CN'] = { labels: ['年', '月', '周', '天', '时', '分', '秒'], labels1: ['年', '月', '周', '天', '时', '分', '秒'], compactLabels: ['年', '月', '周', '天'], compactLabels1: ['年', '月', '周', '天'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['zh-CN']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown-zh-TW.js000066400000000000000000000010601207406311000230430ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Traditional Chinese initialisation for the jQuery countdown extension Written by Cloudream (cloudream@gmail.com). */ (function($) { $.countdown.regional['zh-TW'] = { labels: ['年', '月', '周', '天', '時', '分', '秒'], labels1: ['年', '月', '周', '天', '時', '分', '秒'], compactLabels: ['年', '月', '周', '天'], compactLabels1: ['年', '月', '周', '天'], whichLabels: null, timeSeparator: ':', isRTL: false}; $.countdown.setDefaults($.countdown.regional['zh-TW']); })(jQuery); jquery-goodies-8/countdown/jquery.countdown.css000066400000000000000000000015161207406311000222560ustar00rootroot00000000000000/* jQuery Countdown styles 1.5.11. */ .hasCountdown { border: 1px solid #ccc; background-color: #eee; } .countdown_rtl { direction: rtl; } .countdown_holding span { background-color: #ccc; } .countdown_row { clear: both; width: 100%; padding: 0px 2px; text-align: center; } .countdown_show1 .countdown_section { width: 98%; } .countdown_show2 .countdown_section { width: 48%; } .countdown_show3 .countdown_section { width: 32.5%; } .countdown_show4 .countdown_section { width: 24.5%; } .countdown_show5 .countdown_section { width: 19.5%; } .countdown_show6 .countdown_section { width: 16.25%; } .countdown_show7 .countdown_section { width: 14%; } .countdown_section { display: block; float: left; font-size: 75%; text-align: center; } .countdown_amount { font-size: 200%; } .countdown_descr { display: block; width: 100%; } jquery-goodies-8/countdown/jquery.countdown.js000066400000000000000000000743011207406311000221040ustar00rootroot00000000000000/* http://keith-wood.name/countdown.html Countdown for jQuery v1.5.11. Written by Keith Wood (kbwood{at}iinet.com.au) January 2008. Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. Please attribute the author if you use it. */ /* Display a countdown timer. Attach it with options like: $('div selector').countdown( {until: new Date(2009, 1 - 1, 1, 0, 0, 0), onExpiry: happyNewYear}); */ (function($) { // Hide scope, no $ conflict /* Countdown manager. */ function Countdown() { this.regional = []; // Available regional settings, indexed by language code this.regional[''] = { // Default regional settings // The display texts for the counters labels: ['Years', 'Months', 'Weeks', 'Days', 'Hours', 'Minutes', 'Seconds'], // The display texts for the counters if only one labels1: ['Year', 'Month', 'Week', 'Day', 'Hour', 'Minute', 'Second'], compactLabels: ['y', 'm', 'w', 'd'], // The compact texts for the counters whichLabels: null, // Function to determine which labels to use timeSeparator: ':', // Separator for time periods isRTL: false // True for right-to-left languages, false for left-to-right }; this._defaults = { until: null, // new Date(year, mth - 1, day, hr, min, sec) - date/time to count down to // or numeric for seconds offset, or string for unit offset(s): // 'Y' years, 'O' months, 'W' weeks, 'D' days, 'H' hours, 'M' minutes, 'S' seconds since: null, // new Date(year, mth - 1, day, hr, min, sec) - date/time to count up from // or numeric for seconds offset, or string for unit offset(s): // 'Y' years, 'O' months, 'W' weeks, 'D' days, 'H' hours, 'M' minutes, 'S' seconds timezone: null, // The timezone (hours or minutes from GMT) for the target times, // or null for client local serverSync: null, // A function to retrieve the current server time for synchronisation format: 'dHMS', // Format for display - upper case for always, lower case only if non-zero, // 'Y' years, 'O' months, 'W' weeks, 'D' days, 'H' hours, 'M' minutes, 'S' seconds layout: '', // Build your own layout for the countdown compact: false, // True to display in a compact format, false for an expanded one significant: 0, // The number of periods with values to show, zero for all description: '', // The description displayed for the countdown expiryUrl: '', // A URL to load upon expiry, replacing the current page expiryText: '', // Text to display upon expiry, replacing the countdown alwaysExpire: false, // True to trigger onExpiry even if never counted down onExpiry: null, // Callback when the countdown expires - // receives no parameters and 'this' is the containing division onTick: null, // Callback when the countdown is updated - // receives int[7] being the breakdown by period (based on format) // and 'this' is the containing division tickInterval: 1 // Interval (seconds) between onTick callbacks }; $.extend(this._defaults, this.regional['']); this._serverSyncs = []; // Shared timer for all countdowns function timerCallBack(timestamp) { var drawStart = (timestamp || new Date().getTime()); if (drawStart - animationStartTime >= 1000) { $.countdown._updateTargets(); animationStartTime = drawStart; } requestAnimationFrame(timerCallBack); } var requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || null; // this is when we expect a fall-back to setInterval as it's much more fluid var animationStartTime = 0; if (!requestAnimationFrame) { setInterval(function() { $.countdown._updateTargets(); }, 980); // Fall back to good old setInterval } else { animationStartTime = window.mozAnimationStartTime || new Date().getTime(); requestAnimationFrame(timerCallBack); } } var PROP_NAME = 'countdown'; var Y = 0; // Years var O = 1; // Months var W = 2; // Weeks var D = 3; // Days var H = 4; // Hours var M = 5; // Minutes var S = 6; // Seconds $.extend(Countdown.prototype, { /* Class name added to elements to indicate already configured with countdown. */ markerClassName: 'hasCountdown', /* List of currently active countdown targets. */ _timerTargets: [], /* Override the default settings for all instances of the countdown widget. @param options (object) the new settings to use as defaults */ setDefaults: function(options) { this._resetExtraLabels(this._defaults, options); extendRemove(this._defaults, options || {}); }, /* Convert a date/time to UTC. @param tz (number) the hour or minute offset from GMT, e.g. +9, -360 @param year (Date) the date/time in that timezone or (number) the year in that timezone @param month (number, optional) the month (0 - 11) (omit if year is a Date) @param day (number, optional) the day (omit if year is a Date) @param hours (number, optional) the hour (omit if year is a Date) @param mins (number, optional) the minute (omit if year is a Date) @param secs (number, optional) the second (omit if year is a Date) @param ms (number, optional) the millisecond (omit if year is a Date) @return (Date) the equivalent UTC date/time */ UTCDate: function(tz, year, month, day, hours, mins, secs, ms) { if (typeof year == 'object' && year.constructor == Date) { ms = year.getMilliseconds(); secs = year.getSeconds(); mins = year.getMinutes(); hours = year.getHours(); day = year.getDate(); month = year.getMonth(); year = year.getFullYear(); } var d = new Date(); d.setUTCFullYear(year); d.setUTCDate(1); d.setUTCMonth(month || 0); d.setUTCDate(day || 1); d.setUTCHours(hours || 0); d.setUTCMinutes((mins || 0) - (Math.abs(tz) < 30 ? tz * 60 : tz)); d.setUTCSeconds(secs || 0); d.setUTCMilliseconds(ms || 0); return d; }, /* Convert a set of periods into seconds. Averaged for months and years. @param periods (number[7]) the periods per year/month/week/day/hour/minute/second @return (number) the corresponding number of seconds */ periodsToSeconds: function(periods) { return periods[0] * 31557600 + periods[1] * 2629800 + periods[2] * 604800 + periods[3] * 86400 + periods[4] * 3600 + periods[5] * 60 + periods[6]; }, /* Retrieve one or more settings values. @param name (string, optional) the name of the setting to retrieve or 'all' for all instance settings or omit for all default settings @return (any) the requested setting(s) */ _settingsCountdown: function(target, name) { if (!name) { return $.countdown._defaults; } var inst = $.data(target, PROP_NAME); return (name == 'all' ? inst.options : inst.options[name]); }, /* Attach the countdown widget to a div. @param target (element) the containing division @param options (object) the initial settings for the countdown */ _attachCountdown: function(target, options) { var $target = $(target); if ($target.hasClass(this.markerClassName)) { return; } $target.addClass(this.markerClassName); var inst = {options: $.extend({}, options), _periods: [0, 0, 0, 0, 0, 0, 0]}; $.data(target, PROP_NAME, inst); this._changeCountdown(target); }, /* Add a target to the list of active ones. @param target (element) the countdown target */ _addTarget: function(target) { if (!this._hasTarget(target)) { this._timerTargets.push(target); } }, /* See if a target is in the list of active ones. @param target (element) the countdown target @return (boolean) true if present, false if not */ _hasTarget: function(target) { return ($.inArray(target, this._timerTargets) > -1); }, /* Remove a target from the list of active ones. @param target (element) the countdown target */ _removeTarget: function(target) { this._timerTargets = $.map(this._timerTargets, function(value) { return (value == target ? null : value); }); // delete entry }, /* Update each active timer target. */ _updateTargets: function() { for (var i = this._timerTargets.length - 1; i >= 0; i--) { this._updateCountdown(this._timerTargets[i]); } }, /* Redisplay the countdown with an updated display. @param target (jQuery) the containing division @param inst (object) the current settings for this instance */ _updateCountdown: function(target, inst) { var $target = $(target); inst = inst || $.data(target, PROP_NAME); if (!inst) { return; } $target.html(this._generateHTML(inst)); $target[(this._get(inst, 'isRTL') ? 'add' : 'remove') + 'Class']('countdown_rtl'); var onTick = this._get(inst, 'onTick'); if (onTick) { var periods = inst._hold != 'lap' ? inst._periods : this._calculatePeriods(inst, inst._show, this._get(inst, 'significant'), new Date()); var tickInterval = this._get(inst, 'tickInterval'); if (tickInterval == 1 || this.periodsToSeconds(periods) % tickInterval == 0) { onTick.apply(target, [periods]); } } var expired = inst._hold != 'pause' && (inst._since ? inst._now.getTime() < inst._since.getTime() : inst._now.getTime() >= inst._until.getTime()); if (expired && !inst._expiring) { inst._expiring = true; if (this._hasTarget(target) || this._get(inst, 'alwaysExpire')) { this._removeTarget(target); var onExpiry = this._get(inst, 'onExpiry'); if (onExpiry) { onExpiry.apply(target, []); } var expiryText = this._get(inst, 'expiryText'); if (expiryText) { var layout = this._get(inst, 'layout'); inst.options.layout = expiryText; this._updateCountdown(target, inst); inst.options.layout = layout; } var expiryUrl = this._get(inst, 'expiryUrl'); if (expiryUrl) { window.location = expiryUrl; } } inst._expiring = false; } else if (inst._hold == 'pause') { this._removeTarget(target); } $.data(target, PROP_NAME, inst); }, /* Reconfigure the settings for a countdown div. @param target (element) the containing division @param options (object) the new settings for the countdown or (string) an individual property name @param value (any) the individual property value (omit if options is an object) */ _changeCountdown: function(target, options, value) { options = options || {}; if (typeof options == 'string') { var name = options; options = {}; options[name] = value; } var inst = $.data(target, PROP_NAME); if (inst) { this._resetExtraLabels(inst.options, options); extendRemove(inst.options, options); this._adjustSettings(target, inst); $.data(target, PROP_NAME, inst); var now = new Date(); if ((inst._since && inst._since < now) || (inst._until && inst._until > now)) { this._addTarget(target); } this._updateCountdown(target, inst); } }, /* Reset any extra labelsn and compactLabelsn entries if changing labels. @param base (object) the options to be updated @param options (object) the new option values */ _resetExtraLabels: function(base, options) { var changingLabels = false; for (var n in options) { if (n != 'whichLabels' && n.match(/[Ll]abels/)) { changingLabels = true; break; } } if (changingLabels) { for (var n in base) { // Remove custom numbered labels if (n.match(/[Ll]abels[0-9]/)) { base[n] = null; } } } }, /* Calculate interal settings for an instance. @param target (element) the containing division @param inst (object) the current settings for this instance */ _adjustSettings: function(target, inst) { var now; var serverSync = this._get(inst, 'serverSync'); var serverOffset = 0; var serverEntry = null; for (var i = 0; i < this._serverSyncs.length; i++) { if (this._serverSyncs[i][0] == serverSync) { serverEntry = this._serverSyncs[i][1]; break; } } if (serverEntry != null) { serverOffset = (serverSync ? serverEntry : 0); now = new Date(); } else { var serverResult = (serverSync ? serverSync.apply(target, []) : null); now = new Date(); serverOffset = (serverResult ? now.getTime() - serverResult.getTime() : 0); this._serverSyncs.push([serverSync, serverOffset]); } var timezone = this._get(inst, 'timezone'); timezone = (timezone == null ? -now.getTimezoneOffset() : timezone); inst._since = this._get(inst, 'since'); if (inst._since != null) { inst._since = this.UTCDate(timezone, this._determineTime(inst._since, null)); if (inst._since && serverOffset) { inst._since.setMilliseconds(inst._since.getMilliseconds() + serverOffset); } } inst._until = this.UTCDate(timezone, this._determineTime(this._get(inst, 'until'), now)); if (serverOffset) { inst._until.setMilliseconds(inst._until.getMilliseconds() + serverOffset); } inst._show = this._determineShow(inst); }, /* Remove the countdown widget from a div. @param target (element) the containing division */ _destroyCountdown: function(target) { var $target = $(target); if (!$target.hasClass(this.markerClassName)) { return; } this._removeTarget(target); $target.removeClass(this.markerClassName).empty(); $.removeData(target, PROP_NAME); }, /* Pause a countdown widget at the current time. Stop it running but remember and display the current time. @param target (element) the containing division */ _pauseCountdown: function(target) { this._hold(target, 'pause'); }, /* Pause a countdown widget at the current time. Stop the display but keep the countdown running. @param target (element) the containing division */ _lapCountdown: function(target) { this._hold(target, 'lap'); }, /* Resume a paused countdown widget. @param target (element) the containing division */ _resumeCountdown: function(target) { this._hold(target, null); }, /* Pause or resume a countdown widget. @param target (element) the containing division @param hold (string) the new hold setting */ _hold: function(target, hold) { var inst = $.data(target, PROP_NAME); if (inst) { if (inst._hold == 'pause' && !hold) { inst._periods = inst._savePeriods; var sign = (inst._since ? '-' : '+'); inst[inst._since ? '_since' : '_until'] = this._determineTime(sign + inst._periods[0] + 'y' + sign + inst._periods[1] + 'o' + sign + inst._periods[2] + 'w' + sign + inst._periods[3] + 'd' + sign + inst._periods[4] + 'h' + sign + inst._periods[5] + 'm' + sign + inst._periods[6] + 's'); this._addTarget(target); } inst._hold = hold; inst._savePeriods = (hold == 'pause' ? inst._periods : null); $.data(target, PROP_NAME, inst); this._updateCountdown(target, inst); } }, /* Return the current time periods. @param target (element) the containing division @return (number[7]) the current periods for the countdown */ _getTimesCountdown: function(target) { var inst = $.data(target, PROP_NAME); return (!inst ? null : (!inst._hold ? inst._periods : this._calculatePeriods(inst, inst._show, this._get(inst, 'significant'), new Date()))); }, /* Get a setting value, defaulting if necessary. @param inst (object) the current settings for this instance @param name (string) the name of the required setting @return (any) the setting's value or a default if not overridden */ _get: function(inst, name) { return (inst.options[name] != null ? inst.options[name] : $.countdown._defaults[name]); }, /* A time may be specified as an exact value or a relative one. @param setting (string or number or Date) - the date/time value as a relative or absolute value @param defaultTime (Date) the date/time to use if no other is supplied @return (Date) the corresponding date/time */ _determineTime: function(setting, defaultTime) { var offsetNumeric = function(offset) { // e.g. +300, -2 var time = new Date(); time.setTime(time.getTime() + offset * 1000); return time; }; var offsetString = function(offset) { // e.g. '+2d', '-4w', '+3h +30m' offset = offset.toLowerCase(); var time = new Date(); var year = time.getFullYear(); var month = time.getMonth(); var day = time.getDate(); var hour = time.getHours(); var minute = time.getMinutes(); var second = time.getSeconds(); var pattern = /([+-]?[0-9]+)\s*(s|m|h|d|w|o|y)?/g; var matches = pattern.exec(offset); while (matches) { switch (matches[2] || 's') { case 's': second += parseInt(matches[1], 10); break; case 'm': minute += parseInt(matches[1], 10); break; case 'h': hour += parseInt(matches[1], 10); break; case 'd': day += parseInt(matches[1], 10); break; case 'w': day += parseInt(matches[1], 10) * 7; break; case 'o': month += parseInt(matches[1], 10); day = Math.min(day, $.countdown._getDaysInMonth(year, month)); break; case 'y': year += parseInt(matches[1], 10); day = Math.min(day, $.countdown._getDaysInMonth(year, month)); break; } matches = pattern.exec(offset); } return new Date(year, month, day, hour, minute, second, 0); }; var time = (setting == null ? defaultTime : (typeof setting == 'string' ? offsetString(setting) : (typeof setting == 'number' ? offsetNumeric(setting) : setting))); if (time) time.setMilliseconds(0); return time; }, /* Determine the number of days in a month. @param year (number) the year @param month (number) the month @return (number) the days in that month */ _getDaysInMonth: function(year, month) { return 32 - new Date(year, month, 32).getDate(); }, /* Determine which set of labels should be used for an amount. @param num (number) the amount to be displayed @return (number) the set of labels to be used for this amount */ _normalLabels: function(num) { return num; }, /* Generate the HTML to display the countdown widget. @param inst (object) the current settings for this instance @return (string) the new HTML for the countdown display */ _generateHTML: function(inst) { // Determine what to show var significant = this._get(inst, 'significant'); inst._periods = (inst._hold ? inst._periods : this._calculatePeriods(inst, inst._show, significant, new Date())); // Show all 'asNeeded' after first non-zero value var shownNonZero = false; var showCount = 0; var sigCount = significant; var show = $.extend({}, inst._show); for (var period = Y; period <= S; period++) { shownNonZero |= (inst._show[period] == '?' && inst._periods[period] > 0); show[period] = (inst._show[period] == '?' && !shownNonZero ? null : inst._show[period]); showCount += (show[period] ? 1 : 0); sigCount -= (inst._periods[period] > 0 ? 1 : 0); } var showSignificant = [false, false, false, false, false, false, false]; for (var period = S; period >= Y; period--) { // Determine significant periods if (inst._show[period]) { if (inst._periods[period]) { showSignificant[period] = true; } else { showSignificant[period] = sigCount > 0; sigCount--; } } } var compact = this._get(inst, 'compact'); var layout = this._get(inst, 'layout'); var labels = (compact ? this._get(inst, 'compactLabels') : this._get(inst, 'labels')); var whichLabels = this._get(inst, 'whichLabels') || this._normalLabels; var timeSeparator = this._get(inst, 'timeSeparator'); var description = this._get(inst, 'description') || ''; var showCompact = function(period) { var labelsNum = $.countdown._get(inst, 'compactLabels' + whichLabels(inst._periods[period])); return (show[period] ? inst._periods[period] + (labelsNum ? labelsNum[period] : labels[period]) + ' ' : ''); }; var showFull = function(period) { var labelsNum = $.countdown._get(inst, 'labels' + whichLabels(inst._periods[period])); return ((!significant && show[period]) || (significant && showSignificant[period]) ? '' + inst._periods[period] + '
    ' + (labelsNum ? labelsNum[period] : labels[period]) + '
    ' : ''); }; return (layout ? this._buildLayout(inst, show, layout, compact, significant, showSignificant) : ((compact ? // Compact version '' + showCompact(Y) + showCompact(O) + showCompact(W) + showCompact(D) + (show[H] ? this._minDigits(inst._periods[H], 2) : '') + (show[M] ? (show[H] ? timeSeparator : '') + this._minDigits(inst._periods[M], 2) : '') + (show[S] ? (show[H] || show[M] ? timeSeparator : '') + this._minDigits(inst._periods[S], 2) : '') : // Full version '' + showFull(Y) + showFull(O) + showFull(W) + showFull(D) + showFull(H) + showFull(M) + showFull(S)) + '' + (description ? '' + description + '' : ''))); }, /* Construct a custom layout. @param inst (object) the current settings for this instance @param show (string[7]) flags indicating which periods are requested @param layout (string) the customised layout @param compact (boolean) true if using compact labels @param significant (number) the number of periods with values to show, zero for all @param showSignificant (boolean[7]) other periods to show for significance @return (string) the custom HTML */ _buildLayout: function(inst, show, layout, compact, significant, showSignificant) { var labels = this._get(inst, (compact ? 'compactLabels' : 'labels')); var whichLabels = this._get(inst, 'whichLabels') || this._normalLabels; var labelFor = function(index) { return ($.countdown._get(inst, (compact ? 'compactLabels' : 'labels') + whichLabels(inst._periods[index])) || labels)[index]; }; var digit = function(value, position) { return Math.floor(value / position) % 10; }; var subs = {desc: this._get(inst, 'description'), sep: this._get(inst, 'timeSeparator'), yl: labelFor(Y), yn: inst._periods[Y], ynn: this._minDigits(inst._periods[Y], 2), ynnn: this._minDigits(inst._periods[Y], 3), y1: digit(inst._periods[Y], 1), y10: digit(inst._periods[Y], 10), y100: digit(inst._periods[Y], 100), y1000: digit(inst._periods[Y], 1000), ol: labelFor(O), on: inst._periods[O], onn: this._minDigits(inst._periods[O], 2), onnn: this._minDigits(inst._periods[O], 3), o1: digit(inst._periods[O], 1), o10: digit(inst._periods[O], 10), o100: digit(inst._periods[O], 100), o1000: digit(inst._periods[O], 1000), wl: labelFor(W), wn: inst._periods[W], wnn: this._minDigits(inst._periods[W], 2), wnnn: this._minDigits(inst._periods[W], 3), w1: digit(inst._periods[W], 1), w10: digit(inst._periods[W], 10), w100: digit(inst._periods[W], 100), w1000: digit(inst._periods[W], 1000), dl: labelFor(D), dn: inst._periods[D], dnn: this._minDigits(inst._periods[D], 2), dnnn: this._minDigits(inst._periods[D], 3), d1: digit(inst._periods[D], 1), d10: digit(inst._periods[D], 10), d100: digit(inst._periods[D], 100), d1000: digit(inst._periods[D], 1000), hl: labelFor(H), hn: inst._periods[H], hnn: this._minDigits(inst._periods[H], 2), hnnn: this._minDigits(inst._periods[H], 3), h1: digit(inst._periods[H], 1), h10: digit(inst._periods[H], 10), h100: digit(inst._periods[H], 100), h1000: digit(inst._periods[H], 1000), ml: labelFor(M), mn: inst._periods[M], mnn: this._minDigits(inst._periods[M], 2), mnnn: this._minDigits(inst._periods[M], 3), m1: digit(inst._periods[M], 1), m10: digit(inst._periods[M], 10), m100: digit(inst._periods[M], 100), m1000: digit(inst._periods[M], 1000), sl: labelFor(S), sn: inst._periods[S], snn: this._minDigits(inst._periods[S], 2), snnn: this._minDigits(inst._periods[S], 3), s1: digit(inst._periods[S], 1), s10: digit(inst._periods[S], 10), s100: digit(inst._periods[S], 100), s1000: digit(inst._periods[S], 1000)}; var html = layout; // Replace period containers: {p<}...{p>} for (var i = Y; i <= S; i++) { var period = 'yowdhms'.charAt(i); var re = new RegExp('\\{' + period + '<\\}(.*)\\{' + period + '>\\}', 'g'); html = html.replace(re, ((!significant && show[i]) || (significant && showSignificant[i]) ? '$1' : '')); } // Replace period values: {pn} $.each(subs, function(n, v) { var re = new RegExp('\\{' + n + '\\}', 'g'); html = html.replace(re, v); }); return html; }, /* Ensure a numeric value has at least n digits for display. @param value (number) the value to display @param len (number) the minimum length @return (string) the display text */ _minDigits: function(value, len) { value = '' + value; if (value.length >= len) { return value; } value = '0000000000' + value; return value.substr(value.length - len); }, /* Translate the format into flags for each period. @param inst (object) the current settings for this instance @return (string[7]) flags indicating which periods are requested (?) or required (!) by year, month, week, day, hour, minute, second */ _determineShow: function(inst) { var format = this._get(inst, 'format'); var show = []; show[Y] = (format.match('y') ? '?' : (format.match('Y') ? '!' : null)); show[O] = (format.match('o') ? '?' : (format.match('O') ? '!' : null)); show[W] = (format.match('w') ? '?' : (format.match('W') ? '!' : null)); show[D] = (format.match('d') ? '?' : (format.match('D') ? '!' : null)); show[H] = (format.match('h') ? '?' : (format.match('H') ? '!' : null)); show[M] = (format.match('m') ? '?' : (format.match('M') ? '!' : null)); show[S] = (format.match('s') ? '?' : (format.match('S') ? '!' : null)); return show; }, /* Calculate the requested periods between now and the target time. @param inst (object) the current settings for this instance @param show (string[7]) flags indicating which periods are requested/required @param significant (number) the number of periods with values to show, zero for all @param now (Date) the current date and time @return (number[7]) the current time periods (always positive) by year, month, week, day, hour, minute, second */ _calculatePeriods: function(inst, show, significant, now) { // Find endpoints inst._now = now; inst._now.setMilliseconds(0); var until = new Date(inst._now.getTime()); if (inst._since) { if (now.getTime() < inst._since.getTime()) { inst._now = now = until; } else { now = inst._since; } } else { until.setTime(inst._until.getTime()); if (now.getTime() > inst._until.getTime()) { inst._now = now = until; } } // Calculate differences by period var periods = [0, 0, 0, 0, 0, 0, 0]; if (show[Y] || show[O]) { // Treat end of months as the same var lastNow = $.countdown._getDaysInMonth(now.getFullYear(), now.getMonth()); var lastUntil = $.countdown._getDaysInMonth(until.getFullYear(), until.getMonth()); var sameDay = (until.getDate() == now.getDate() || (until.getDate() >= Math.min(lastNow, lastUntil) && now.getDate() >= Math.min(lastNow, lastUntil))); var getSecs = function(date) { return (date.getHours() * 60 + date.getMinutes()) * 60 + date.getSeconds(); }; var months = Math.max(0, (until.getFullYear() - now.getFullYear()) * 12 + until.getMonth() - now.getMonth() + ((until.getDate() < now.getDate() && !sameDay) || (sameDay && getSecs(until) < getSecs(now)) ? -1 : 0)); periods[Y] = (show[Y] ? Math.floor(months / 12) : 0); periods[O] = (show[O] ? months - periods[Y] * 12 : 0); // Adjust for months difference and end of month if necessary now = new Date(now.getTime()); var wasLastDay = (now.getDate() == lastNow); var lastDay = $.countdown._getDaysInMonth(now.getFullYear() + periods[Y], now.getMonth() + periods[O]); if (now.getDate() > lastDay) { now.setDate(lastDay); } now.setFullYear(now.getFullYear() + periods[Y]); now.setMonth(now.getMonth() + periods[O]); if (wasLastDay) { now.setDate(lastDay); } } var diff = Math.floor((until.getTime() - now.getTime()) / 1000); var extractPeriod = function(period, numSecs) { periods[period] = (show[period] ? Math.floor(diff / numSecs) : 0); diff -= periods[period] * numSecs; }; extractPeriod(W, 604800); extractPeriod(D, 86400); extractPeriod(H, 3600); extractPeriod(M, 60); extractPeriod(S, 1); if (diff > 0 && !inst._since) { // Round up if left overs var multiplier = [1, 12, 4.3482, 7, 24, 60, 60]; var lastShown = S; var max = 1; for (var period = S; period >= Y; period--) { if (show[period]) { if (periods[lastShown] >= max) { periods[lastShown] = 0; diff = 1; } if (diff > 0) { periods[period]++; diff = 0; lastShown = period; max = 1; } } max *= multiplier[period]; } } if (significant) { // Zero out insignificant periods for (var period = Y; period <= S; period++) { if (significant && periods[period]) { significant--; } else if (!significant) { periods[period] = 0; } } } return periods; } }); /* jQuery extend now ignores nulls! @param target (object) the object to update @param props (object) the new settings @return (object) the updated object */ function extendRemove(target, props) { $.extend(target, props); for (var name in props) { if (props[name] == null) { target[name] = null; } } return target; } /* Process the countdown functionality for a jQuery selection. @param command (string) the command to run (optional, default 'attach') @param options (object) the new settings to use for these countdown instances @return (jQuery) for chaining further calls */ $.fn.countdown = function(options) { var otherArgs = Array.prototype.slice.call(arguments, 1); if (options == 'getTimes' || options == 'settings') { return $.countdown['_' + options + 'Countdown']. apply($.countdown, [this[0]].concat(otherArgs)); } return this.each(function() { if (typeof options == 'string') { $.countdown['_' + options + 'Countdown'].apply($.countdown, [this].concat(otherArgs)); } else { $.countdown._attachCountdown(this, options); } }); }; /* Initialise the countdown functionality. */ $.countdown = new Countdown(); // singleton instance })(jQuery); jquery-goodies-8/easing/000077500000000000000000000000001207406311000154315ustar00rootroot00000000000000jquery-goodies-8/easing/jquery.easing.compatibility.js000066400000000000000000000032761207406311000234330ustar00rootroot00000000000000/* * jQuery Easing Compatibility v1 - http://gsgd.co.uk/sandbox/jquery.easing.php * * Adds compatibility for applications that use the pre 1.2 easing names * * Copyright (c) 2007 George Smith * Licensed under the MIT License: * http://www.opensource.org/licenses/mit-license.php */ jQuery.extend( jQuery.easing, { easeIn: function (x, t, b, c, d) { return jQuery.easing.easeInQuad(x, t, b, c, d); }, easeOut: function (x, t, b, c, d) { return jQuery.easing.easeOutQuad(x, t, b, c, d); }, easeInOut: function (x, t, b, c, d) { return jQuery.easing.easeInOutQuad(x, t, b, c, d); }, expoin: function(x, t, b, c, d) { return jQuery.easing.easeInExpo(x, t, b, c, d); }, expoout: function(x, t, b, c, d) { return jQuery.easing.easeOutExpo(x, t, b, c, d); }, expoinout: function(x, t, b, c, d) { return jQuery.easing.easeInOutExpo(x, t, b, c, d); }, bouncein: function(x, t, b, c, d) { return jQuery.easing.easeInBounce(x, t, b, c, d); }, bounceout: function(x, t, b, c, d) { return jQuery.easing.easeOutBounce(x, t, b, c, d); }, bounceinout: function(x, t, b, c, d) { return jQuery.easing.easeInOutBounce(x, t, b, c, d); }, elasin: function(x, t, b, c, d) { return jQuery.easing.easeInElastic(x, t, b, c, d); }, elasout: function(x, t, b, c, d) { return jQuery.easing.easeOutElastic(x, t, b, c, d); }, elasinout: function(x, t, b, c, d) { return jQuery.easing.easeInOutElastic(x, t, b, c, d); }, backin: function(x, t, b, c, d) { return jQuery.easing.easeInBack(x, t, b, c, d); }, backout: function(x, t, b, c, d) { return jQuery.easing.easeOutBack(x, t, b, c, d); }, backinout: function(x, t, b, c, d) { return jQuery.easing.easeInOutBack(x, t, b, c, d); } });jquery-goodies-8/easing/jquery.easing.js000066400000000000000000000176411207406311000205640ustar00rootroot00000000000000/* * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ * * Uses the built in easing capabilities added In jQuery 1.1 * to offer multiple easing options * * TERMS OF USE - jQuery Easing * * Open source under the BSD License. * * Copyright © 2008 George McGinley Smith * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. * * Neither the name of the author nor the names of contributors may be used to endorse * or promote products derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * */ // t: current time, b: begInnIng value, c: change In value, d: duration jQuery.easing['jswing'] = jQuery.easing['swing']; jQuery.extend( jQuery.easing, { def: 'easeOutQuad', swing: function (x, t, b, c, d) { //alert(jQuery.easing.default); return jQuery.easing[jQuery.easing.def](x, t, b, c, d); }, easeInQuad: function (x, t, b, c, d) { return c*(t/=d)*t + b; }, easeOutQuad: function (x, t, b, c, d) { return -c *(t/=d)*(t-2) + b; }, easeInOutQuad: function (x, t, b, c, d) { if ((t/=d/2) < 1) return c/2*t*t + b; return -c/2 * ((--t)*(t-2) - 1) + b; }, easeInCubic: function (x, t, b, c, d) { return c*(t/=d)*t*t + b; }, easeOutCubic: function (x, t, b, c, d) { return c*((t=t/d-1)*t*t + 1) + b; }, easeInOutCubic: function (x, t, b, c, d) { if ((t/=d/2) < 1) return c/2*t*t*t + b; return c/2*((t-=2)*t*t + 2) + b; }, easeInQuart: function (x, t, b, c, d) { return c*(t/=d)*t*t*t + b; }, easeOutQuart: function (x, t, b, c, d) { return -c * ((t=t/d-1)*t*t*t - 1) + b; }, easeInOutQuart: function (x, t, b, c, d) { if ((t/=d/2) < 1) return c/2*t*t*t*t + b; return -c/2 * ((t-=2)*t*t*t - 2) + b; }, easeInQuint: function (x, t, b, c, d) { return c*(t/=d)*t*t*t*t + b; }, easeOutQuint: function (x, t, b, c, d) { return c*((t=t/d-1)*t*t*t*t + 1) + b; }, easeInOutQuint: function (x, t, b, c, d) { if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; return c/2*((t-=2)*t*t*t*t + 2) + b; }, easeInSine: function (x, t, b, c, d) { return -c * Math.cos(t/d * (Math.PI/2)) + c + b; }, easeOutSine: function (x, t, b, c, d) { return c * Math.sin(t/d * (Math.PI/2)) + b; }, easeInOutSine: function (x, t, b, c, d) { return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; }, easeInExpo: function (x, t, b, c, d) { return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; }, easeOutExpo: function (x, t, b, c, d) { return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; }, easeInOutExpo: function (x, t, b, c, d) { if (t==0) return b; if (t==d) return b+c; if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; }, easeInCirc: function (x, t, b, c, d) { return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; }, easeOutCirc: function (x, t, b, c, d) { return c * Math.sqrt(1 - (t=t/d-1)*t) + b; }, easeInOutCirc: function (x, t, b, c, d) { if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; }, easeInElastic: function (x, t, b, c, d) { var s=1.70158;var p=0;var a=c; if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; if (a < Math.abs(c)) { a=c; var s=p/4; } else var s = p/(2*Math.PI) * Math.asin (c/a); return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; }, easeOutElastic: function (x, t, b, c, d) { var s=1.70158;var p=0;var a=c; if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; if (a < Math.abs(c)) { a=c; var s=p/4; } else var s = p/(2*Math.PI) * Math.asin (c/a); return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; }, easeInOutElastic: function (x, t, b, c, d) { var s=1.70158;var p=0;var a=c; if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); if (a < Math.abs(c)) { a=c; var s=p/4; } else var s = p/(2*Math.PI) * Math.asin (c/a); if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; }, easeInBack: function (x, t, b, c, d, s) { if (s == undefined) s = 1.70158; return c*(t/=d)*t*((s+1)*t - s) + b; }, easeOutBack: function (x, t, b, c, d, s) { if (s == undefined) s = 1.70158; return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; }, easeInOutBack: function (x, t, b, c, d, s) { if (s == undefined) s = 1.70158; if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; }, easeInBounce: function (x, t, b, c, d) { return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b; }, easeOutBounce: function (x, t, b, c, d) { if ((t/=d) < (1/2.75)) { return c*(7.5625*t*t) + b; } else if (t < (2/2.75)) { return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; } else if (t < (2.5/2.75)) { return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; } else { return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; } }, easeInOutBounce: function (x, t, b, c, d) { if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; } }); /* * * TERMS OF USE - EASING EQUATIONS * * Open source under the BSD License. * * Copyright © 2001 Robert Penner * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. * * Neither the name of the author nor the names of contributors may be used to endorse * or promote products derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * */jquery-goodies-8/event-drag/000077500000000000000000000000001207406311000162175ustar00rootroot00000000000000jquery-goodies-8/event-drag/License_and_Changelog.txt000066400000000000000000000131521207406311000231350ustar00rootroot00000000000000 jquery.event.drag.js / threedubmedia.com -------------------------------------------------------------------------------- The MIT License Copyright (c) 2008, Three Dub Media (threedubmedia@gmail.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- FUTURE ENHANCEMENTS... data.handle config automagic proxy offsets document::mouseleave? -------------------------------------------------------------------------------- Changes in Version 1.5, Released 2009-03-24 - Added "dragstart" and "dragend" special event configurations which prevents default event bindings in Internet Explorer (some events were firing twice). - Added a custom "ondragstart" handler for IE only to suppress image/text drags -------------------------------------------------------------------------------- Changes in Version 1.4, Released 2009-01-26 - Fixed a mistake where the "which" property was not correctly checked. - Changed the initial test for checking if a drag is already underway (within the shared handler) to an internal property instead of checking for the document -------------------------------------------------------------------------------- Changes in Version 1.3, Released 2009-01-26 - Now Compatable with jQuery 1.3.x and jQuery 1.2.x - Fixed a problem with the return value of event handlers. Now use the property "event.result" instead of the (obsolete) return value of "jQuery.event.handle" - Fixed the logic for determining the proxy element returned from "dragstart", The document was being set as the proxy when dragstart returned undefined, and this caused an error in the offset method in jQuery 1.3 - Added "document.selection.empty()" to the private static "selectable" function Thanks Jos Mata. - Added a "which" property to the "jQuery.event.special.drag" object, which defines the mouse button to "accept" on mousedown to initialize draggging. The default value is "1" (left mouse button), this attribute is customizable through the "bind" method using the optional "data" argument. -------------------------------------------------------------------------------- Changes in Version 1.2, Released 2008-10-06 - Moved the drag init checks to avoid the switch statement when possible - Made the drag.handler function private - Renamed private data properties: dist2 -> distance, x -> pageX, y -> pageY This will theoretically help reduce the gzipped file size. - Moved distance squared calculation to the "setup" function from "mousdown" because there is no reason to calculate this value more than once. - fixed a bug where "event.dragProxy" was being set one "mousemove" event late - added local variable refs for "$.event" and "$.event.special" to reduce file size when minified/packed, and speed up execution. - added private "squared" function to reduce file size/lines. - added private "hijack" function to reduce file size/lines. - change the drag method to trigger the "drag" handler instead of "mousedown" which was an artifact from an earlier version of the code. -------------------------------------------------------------------------------- Changes in Version 1.1, Released 2008-10-03 - Fixed a bug where the text-selection attributes that were disabled on "mousedown" were not being enabled on "mouseup" unless the element was dragged. - Now restoring the event.target property that is captured on "mousedown" before handling "dragstart" events. This fixes buggy behavior involving "dragstart" and the "distance" setting, and attempting to capture "handle" elements. - Modified the handler logic for the "dragstart" return value. The stack can now continue directly into the "drag" handler call from "dragstart" instead of waiting for the next "mousemove" event to fire. - Added a "not" property to the "jQuery.event.special.drag" object which allows the prevention of drag behavior for any event.target element that matches the property value (selector). The default value is ":input" and when jQuery 1.3 is released, this attribute will also be customizable through the "bind" method using the optional "data" argument. Thanks to Elijah Insua for suggesting this feature. - Changed binding of "mousemove" and "mouseup" events from "document.body" to "document"... This fixes buggy behavior when the body element does not cover the entire window. Thanks to Jonah Fox (weepy) and Elijah Insua for pointing out this bug. -------------------------------------------------------------------------------- Changes in Version 1.0, Released 2008-08-08 - Initial Release jquery-goodies-8/event-drag/demo/000077500000000000000000000000001207406311000171435ustar00rootroot00000000000000jquery-goodies-8/event-drag/demo/index.htm000066400000000000000000001125251207406311000207720ustar00rootroot00000000000000 jquery.event.drag - Demos

    Demos / jquery.event.drag-1.2.js / threedubmedia.com

    Click on each heading to toggle sections open and closed.

    1. Basic Drag

    #demo1_box

    « Drag the blue box around the page, by default you cannot begin dragging within ":input" elements.

    $('#demo1_box')
           
    .bind('drag',function( event ){
                    $
    ( this ).css({
                            top
    : event.offsetY,
                            left
    : event.offsetX
                           
    });
                   
    });

    2. Axis Drag

    #demo2_box

    « Drag the blue box along the x-axis. Hold "shift" to drag along the y-axis.

    $('#demo2_box')
           
    .bind('drag',function( event ){
                    $
    ( this ).css( event.shiftKey ? {
                            top
    : event.offsetY } : {
                            left
    : event.offsetX
                           
    });
                   
    });

    3. Grid Drag

    #demo3_box

    « Drag the blue box around the page, notice it snaps to a 20 pixel grid.

    $('#demo3_box')
           
    .bind('drag',function( event ){
                    $
    ( this ).css({
                            top
    : Math.round( event.offsetY/20 ) * 20,
                            left
    : Math.round( event.offsetX/20 ) * 20
                           
    });
                   
    });

    4. Handle Drag

    .handle
    #demo4_box

    « Drag the blue box around the page using the "handle" only.

    $('#demo4_box')
           
    .bind('dragstart',function( event ){
                   
    return $(event.target).is('.handle');
                   
    })
           
    .bind('drag',function( event ){
                    $
    ( this ).css({
                            top
    : event.offsetY,
                            left
    : event.offsetX
                           
    });
                   
    });

    5. Active Drag

    .handle
    #demo5_box

    « The box turns green while dragging around the page.

    $('#demo5_box')
           
    .bind('dragstart',function( event ){
                   
    if ( !$(event.target).is('.handle') ) return false;
                    $
    ( this ).addClass('active');
                   
    })
           
    .bind('drag',function( event ){
                    $
    ( this ).css({
                            top
    : event.offsetY,
                            left
    : event.offsetX
                           
    });
                   
    })
           
    .bind('dragend',function( event ){
                    $
    ( this ).removeClass('active');
                   
    });

    6. Proxy Drag

    .handle
    #demo6_box

    « Drag a copy of the original box, then the orginal box gets animated to the drop location.

    $('#demo6_box')
           
    .bind('dragstart',function( event ){
                   
    if ( !$(event.target).is('.handle') ) return false;
                   
    return $( this ).css('opacity',.5)
                           
    .clone().addClass('active')
                           
    .insertAfter( this );
                   
    })
           
    .bind('drag',function( event ){
                    $
    ( event.dragProxy ).css({
                            top
    : event.offsetY,
                            left
    : event.offsetX
                           
    });
                   
    })
           
    .bind('dragend',function( event ){
                    $
    ( event.dragProxy ).remove();
                    $
    ( this ).animate({
                            top
    : event.offsetY,
                            left
    : event.offsetX,
                            opacity
    : 1
                           
    })
                   
    });

    7. Circular Drag

    #demo7_box

    « Drag the blue box around the page, it follows the fixed path of a circle.

    $('#demo7_box')
           
    .bind('dragstart',function( event ){
                   
    var data = $( this ).data('dragcircle');
                   
    if ( data ) data.$circle.show();
                   
    else {
                            data
    = {
                                    radius
    : 200, $circle: $([]),
                                    halfHeight
    : $( this ).outerHeight()/2,
                                    halfWidth
    : $( this ).outerWidth()/2
                                   
    };
                            data
    .centerX = event.offsetX + data.radius + data.halfWidth,
                            data
    .centerY = event.offsetY + data.halfHeight,
                           
    // create divs to highlight the path...
                            $
    .each( new Array(72), function( i, a ){
                                    angle
    = Math.PI * ( ( i-36 ) / 36 );
                                    data
    .$circle = data.$circle.add(
                                            $
    ('<div class="point" />').css({
                                                    top
    : data.centerY + Math.cos( angle )*data.radius,
                                                    left
    : data.centerX + Math.sin( angle )*data.radius,
                                                   
    })
                                           
    );
                                   
    });
                            $
    ( this ).after( data.$circle ).data('dragcircle', data );
                           
    }
                   
    })
           
    .bind('drag',function( event ){
                   
    var data = $( this ).data('dragcircle'),
                    angle
    = Math.atan2( event.pageX - data.centerX, event.pageY - data.centerY );
                    $
    ( this ).css({
                            top
    : data.centerY + Math.cos( angle )*data.radius - data.halfHeight,
                            left
    : data.centerX + Math.sin( angle )*data.radius - data.halfWidth
                           
    });
                   
    })
           
    .bind('dragend',function(){
                    $
    ( this ).data('dragcircle').$circle.hide();
                   
    });
    jquery-goodies-8/event-drag/jquery.event.drag.js000066400000000000000000000135501207406311000221340ustar00rootroot00000000000000/*! jquery.event.drag.js ~ v1.5 ~ Copyright (c) 2008, Three Dub Media (http://threedubmedia.com) Liscensed under the MIT License ~ http://threedubmedia.googlecode.com/files/MIT-LICENSE.txt */ ;(function($){ // secure $ jQuery alias /*******************************************************************************************/ // Created: 2008-06-04 | Updated: 2009-03-24 /*******************************************************************************************/ // Events: drag, dragstart, dragend /*******************************************************************************************/ // jquery method $.fn.drag = function( fn1, fn2, fn3 ){ if ( fn2 ) this.bind('dragstart', fn1 ); // 2+ args if ( fn3 ) this.bind('dragend', fn3 ); // 3 args return !fn1 ? this.trigger('drag') // 0 args : this.bind('drag', fn2 ? fn2 : fn1 ); // 1+ args }; // local refs var $event = $.event, $special = $event.special, // special event configuration drag = $special.drag = { not: ':input', // don't begin to drag on event.targets that match this selector distance: 0, // distance dragged before dragstart which: 1, // mouse button pressed to start drag sequence dragging: false, // hold the active target element setup: function( data ){ data = $.extend({ distance: drag.distance, which: drag.which, not: drag.not }, data || {}); data.distance = squared( data.distance ); // x + y = distance $event.add( this, "mousedown", handler, data ); if ( this.attachEvent ) this.attachEvent("ondragstart", dontStart ); // prevent image dragging in IE... }, teardown: function(){ $event.remove( this, "mousedown", handler ); if ( this === drag.dragging ) drag.dragging = drag.proxy = false; // deactivate element selectable( this, true ); // enable text selection if ( this.detachEvent ) this.detachEvent("ondragstart", dontStart ); // prevent image dragging in IE... } }; // prevent normal event binding... $special.dragstart = $special.dragend = { setup:function(){}, teardown:function(){} }; // handle drag-releatd DOM events function handler ( event ){ var elem = this, returned, data = event.data || {}; // mousemove or mouseup if ( data.elem ){ // update event properties... elem = event.dragTarget = data.elem; // drag source element event.dragProxy = drag.proxy || elem; // proxy element or source event.cursorOffsetX = data.pageX - data.left; // mousedown offset event.cursorOffsetY = data.pageY - data.top; // mousedown offset event.offsetX = event.pageX - event.cursorOffsetX; // element offset event.offsetY = event.pageY - event.cursorOffsetY; // element offset } // mousedown, check some initial props to avoid the switch statement else if ( drag.dragging || ( data.which>0 && event.which!=data.which ) || $( event.target ).is( data.not ) ) return; // handle various events switch ( event.type ){ // mousedown, left click, event.target is not restricted, init dragging case 'mousedown': $.extend( data, $( elem ).offset(), { elem: elem, target: event.target, pageX: event.pageX, pageY: event.pageY }); // store some initial attributes $event.add( document, "mousemove mouseup", handler, data ); selectable( elem, false ); // disable text selection drag.dragging = null; // pending state return false; // prevents text selection in safari // mousemove, check distance, start dragging case !drag.dragging && 'mousemove': if ( squared( event.pageX-data.pageX ) + squared( event.pageY-data.pageY ) // x + y = distance < data.distance ) break; // distance tolerance not reached event.target = data.target; // force target from "mousedown" event (fix distance issue) returned = hijack( event, "dragstart", elem ); // trigger "dragstart", return proxy element if ( returned !== false ){ // "dragstart" not rejected drag.dragging = elem; // activate element drag.proxy = event.dragProxy = $( returned || elem )[0]; // set proxy } // mousemove, dragging case 'mousemove': if ( drag.dragging ){ returned = hijack( event, "drag", elem ); // trigger "drag" if ( $special.drop ){ // manage drop events $special.drop.allowed = ( returned !== false ); // prevent drop $special.drop.handler( event ); // "dropstart", "dropend" } if ( returned !== false ) break; // "drag" not rejected, stop event.type = "mouseup"; // helps "drop" handler behave } // mouseup, stop dragging case 'mouseup': $event.remove( document, "mousemove mouseup", handler ); // remove page events if ( drag.dragging ){ if ( $special.drop ) $special.drop.handler( event ); // "drop" hijack( event, "dragend", elem ); // trigger "dragend" } selectable( elem, true ); // enable text selection drag.dragging = drag.proxy = data.elem = false; // deactivate element break; } return true; }; // set event type to custom value, and handle it function hijack ( event, type, elem ){ event.type = type; // force the event type var result = $.event.handle.call( elem, event ); return result===false ? false : result || event.result; }; // return the value squared function squared ( value ){ return Math.pow( value, 2 ); }; // suppress default dragstart IE events... function dontStart(){ return ( drag.dragging === false ); }; // toggles text selection attributes function selectable ( elem, bool ){ if ( !elem ) return; // maybe element was removed ? elem.unselectable = bool ? "off" : "on"; // IE elem.onselectstart = function(){ return bool; }; // IE //if ( document.selection && document.selection.empty ) document.selection.empty(); // IE if ( elem.style ) elem.style.MozUserSelect = bool ? "" : "none"; // FF }; /*******************************************************************************************/ })( jQuery ); // confine scopejquery-goodies-8/event-drop/000077500000000000000000000000001207406311000162465ustar00rootroot00000000000000jquery-goodies-8/event-drop/License_and_Changelog.txt000066400000000000000000000053201207406311000231620ustar00rootroot00000000000000 jquery.event.drop.js / threedubmedia.com -------------------------------------------------------------------------------- The MIT License Copyright (c) 2008-2009, Three Dub Media (threedubmedia@gmail.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- Changes in Version 1.2, 2009-03-16 - added try/catch block in the private hijak function to fix an error with IE. The original event object disappears when using setTimeout, so hijacking an event and handling a custom event later, was throwing an exception whenever the handler would return false, because "preventDefault" and "stopPropagation" were automatically being called on the "originalEvent." Thanks to Charles, Vivekanand Mishra, and Steen Nielsen, for helping uncover this issue. -------------------------------------------------------------------------------- Changes in Version 1.1, 2009-01-26 - Now Compatable with jQuery 1.3.x and jQuery 1.2.x - added private hijack function to handle custom event handlers and find the correct return value in jQuery 1.2.x as well as jQuery 1.3.x - reworded the "tolerate" loop to save some lines. - Made the "tolerate" function private. - renamed the private "$elements" property to "$targets" - Modified "$.dropManage" to only set certain options, instead of extending the whole "$.event.special.drop" object, to prevent accidental overwrite. - added local variable refs for "$.event" and "$.event.special" to reduce file size when minified/packed, and speed up execution. -------------------------------------------------------------------------------- Changes in Version 1.0, Released 2008-08-08 - Initial Release jquery-goodies-8/event-drop/demo/000077500000000000000000000000001207406311000171725ustar00rootroot00000000000000jquery-goodies-8/event-drop/demo/index.htm000066400000000000000000000431461207406311000210230ustar00rootroot00000000000000 jquery.event.drop - Demos

    Demos / jquery.event.drop.js / threedubmedia.com

    A
    B

    1
    2
    3
    4

    -- output log --
    -- sample code -- $(".drag")
           
    .bind( "dragstart", function( event ){
                   
    // ref the "dragged" element, make a copy
                   
    var $drag = $( this ), $proxy = $drag.clone();
                   
    // modify the "dragged" source element
                    $drag
    .addClass("outline");
                   
    // insert and return the "proxy" element                
                   
    return $proxy.appendTo( document.body ).addClass("ghost");
                   
    })
           
    .bind( "drag", function( event ){
                   
    // update the "proxy" element position
                    $
    ( event.dragProxy ).css({
                            left
    : event.offsetX,
                            top
    : event.offsetY
                           
    });
                   
    })
           
    .bind( "dragend", function( event ){
                   
    // remove the "proxy" element
                    $
    ( event.dragProxy ).fadeOut( "normal", function(){
                            $
    ( this ).remove();
                           
    });
                   
    // if there is no drop AND the target was previously dropped
                   
    if ( !event.dropTarget && $(this).parent().is(".drop") ){
                           
    // output details of the action
                            $
    ('#log').append('<div>Removed <b>'+ this.title +'</b> from <b>'+ this.parentNode.title +'</b></div>');
                           
    // put it in it's original div...
                            $
    ('#nodrop').append( this );
                           
    }
                   
    // restore to a normal state
                    $
    ( this ).removeClass("outline");      
                   
                   
    });
    $
    (".drop")
           
    .bind( "dropstart", function( event ){
                   
    // don't drop in itself
                   
    if ( this == event.dragTarget.parentNode ) return false;
                   
    // activate the "drop" target element
                    $
    ( this ).addClass("active");
                   
    })
           
    .bind( "drop", function( event ){
                   
    // if there was a drop, move some data...
                    $
    ( this ).append( event.dragTarget );
                   
    // output details of the action...
                    $
    ('#log').append('<div>Dropped <b>'+ event.dragTarget.title +'</b> into <b>'+ this.title +'</b></div>');        
                   
    })
           
    .bind( "dropend", function( event ){
                   
    // deactivate the "drop" target element
                    $
    ( this ).removeClass("active");
                   
    });
    jquery-goodies-8/event-drop/jquery.event.drop.js000066400000000000000000000161741207406311000222170ustar00rootroot00000000000000/*! jquery.event.drop.js * v1.2 Copyright (c) 2008-2009, Three Dub Media (http://threedubmedia.com) Liscensed under the MIT License (http://threedubmedia.googlecode.com/files/MIT-LICENSE.txt) */;(function($){ // secure $ jQuery alias // Created: 2008-06-04 | Updated: 2009-03-16 /*******************************************************************************************/ // Events: drop, dropstart, dropend /*******************************************************************************************/ // JQUERY METHOD $.fn.drop = function( fn1, fn2, fn3 ){ if ( fn2 ) this.bind('dropstart', fn1 ); // 2+ args if ( fn3 ) this.bind('dropend', fn3 ); // 3 args return !fn1 ? this.trigger('drop') // 0 args : this.bind('drop', fn2 ? fn2 : fn1 ); // 1+ args }; // DROP MANAGEMENT UTILITY $.dropManage = function( opts ){ // return filtered drop target elements, cache their positions opts = opts || {}; // safely set new options... drop.data = []; drop.filter = opts.filter || '*'; drop.delay = opts.delay || drop.delay; drop.tolerance = opts.tolerance || null; drop.mode = opts.mode || drop.mode || 'intersect'; // return the filtered set of drop targets return drop.$targets.filter( drop.filter ).each(function(){ // locate and store the filtered drop targets drop.data[ drop.data.length ] = drop.locate( this ); }); }; // local refs var $event = $.event, $special = $event.special, // SPECIAL EVENT CONFIGURATION drop = $special.drop = { delay: 100, // default frequency to track drop targets mode: 'intersect', // default mode to determine valid drop targets $targets: $([]), data: [], // storage of drop targets and locations setup: function(){ drop.$targets = drop.$targets.add( this ); drop.data[ drop.data.length ] = drop.locate( this ); }, teardown: function(){ var elem = this; drop.$targets = drop.$targets.not( this ); drop.data = $.grep( drop.data, function( obj ){ return ( obj.elem !== elem ); }); }, // shared handler handler: function( event ){ var dropstart = null, dropped; event.dropTarget = drop.dropping || undefined; // dropped element if ( drop.data.length && event.dragTarget ){ // handle various events switch ( event.type ){ // drag/mousemove, from $.event.special.drag case 'drag': // TOLERATE >> drop.event = event; // store the mousemove event if ( !drop.timer ) // monitor drop targets drop.timer = setTimeout( tolerate, 20 ); break; // dragstop/mouseup, from $.event.special.drag case 'mouseup': // DROP >> DROPEND >> drop.timer = clearTimeout( drop.timer ); // delete timer if ( !drop.dropping ) break; // stop, no drop if ( drop.allowed ) dropped = hijack( event, "drop", drop.dropping ); // trigger "drop" dropstart = false; // activate new target, from tolerate (async) case drop.dropping && 'dropstart': // DROPSTART >> ( new target ) dropstart = dropstart===null && drop.allowed ? true : false; // deactivate active target, from tolerate (async) case drop.dropping && 'dropend': // DROPEND >> hijack( event, "dropend", drop.dropping ); // trigger "dropend" drop.dropping = null; // empty dropper if ( dropped === false ) event.dropTarget = undefined; if ( !dropstart ) break; // stop // activate target, from tolerate (async) case drop.allowed && 'dropstart': // DROPSTART >> event.dropTarget = this; drop.dropping = hijack( event, "dropstart", this )!==false ? this : null; // trigger "dropstart" break; } } }, // returns the location positions of an element locate: function( elem ){ // return { L:left, R:right, T:top, B:bottom, H:height, W:width } var $el = $(elem), pos = $el.offset(), h = $el.outerHeight(), w = $el.outerWidth(); return { elem: elem, L: pos.left, R: pos.left+w, T: pos.top, B: pos.top+h, W: w, H: h }; }, // test the location positions of an element against another OR an X,Y coord contains: function( target, test ){ // target { L,R,T,B,H,W } contains test [x,y] or { L,R,T,B,H,W } return ( ( test[0] || test.L ) >= target.L && ( test[0] || test.R ) <= target.R && ( test[1] || test.T ) >= target.T && ( test[1] || test.B ) <= target.B ); }, // stored tolerance modes modes: { // fn scope: "$.event.special.drop" object // target with mouse wins, else target with most overlap wins 'intersect': function( event, proxy, target ){ return this.contains( target, [ event.pageX, event.pageY ] ) ? // check cursor target : this.modes['overlap'].apply( this, arguments ); // check overlap }, // target with most overlap wins 'overlap': function( event, proxy, target ){ // calculate the area of overlap... target.overlap = Math.max( 0, Math.min( target.B, proxy.B ) - Math.max( target.T, proxy.T ) ) * Math.max( 0, Math.min( target.R, proxy.R ) - Math.max( target.L, proxy.L ) ); if ( target.overlap > ( ( this.best || {} ).overlap || 0 ) ) // compare overlap this.best = target; // set as the best match so far return null; // no winner }, // proxy is completely contained within target bounds 'fit': function( event, proxy, target ){ return this.contains( target, proxy ) ? target : null; }, // center of the proxy is contained within target bounds 'middle': function( event, proxy, target ){ return this.contains( target, [ proxy.L+proxy.W/2, proxy.T+proxy.H/2 ] ) ? target : null; } } }; // set event type to custom value, and handle it function hijack ( event, type, elem ){ event.type = type; // force the event type try { var result = $event.handle.call( elem, event ); } catch ( ex ){ /* catch IE error with async event handling */ } return result===false ? false : result || event.result; }; // async, recursive tolerance execution function tolerate (){ var i = 0, drp, winner, // local variables xy = [ drop.event.pageX, drop.event.pageY ], // mouse location drg = drop.locate( drop.event.dragProxy ); // drag proxy location drop.tolerance = drop.tolerance || drop.modes[ drop.mode ]; // custom or stored tolerance fn do if ( drp = drop.data[i] ){ // each drop target location // tolerance function is defined, or mouse contained winner = drop.tolerance ? drop.tolerance.call( drop, drop.event, drg, drp ) : drop.contains( drp, xy ) ? drp : null; // mouse is always fallback } while ( ++i>o|!///##Cw^^lkk w͑ Ϻ[~HI(mIIIN\v-E_WWի̌pB4~?D:+HV$#\~p]ӧOX։7fō;wFGGlkSr BvݼyR'O8/_Ҵj6e4V|Qȧc bZ+<1nSGGl6f}Z%v.o,u2tm{ll쪔Pd]=X<9ꔔ]kkkn_"~\._ٌT^ti] -j1d9\ =}$ʯNB*FOOl ?`.PŹ{Id29k77XѬX\c+65::-l%`# wuuY Ip_SSӺ0o3(:oxOv"xXvFɅ7b)=fbUs.$$$c: aHCqqq z)nkbrȹHlÇDkhh NXGANWv JK ɷ*&%̙3i3Avӗ@1<{rO1'ڬMC}~ȐZr߳M]I rKcccKrGT\ڼ.*3Q + q9ɹrjPV}[VIrlX5#m 29T4y;4Ν0Vmi˔֩\;|vvR^^n]H_#lp|t|ע.79 DԔE(t(\jp,]:#c:;;x/<. PS"5-@ה]|vU=N;-^:xϟm<**jv1Me[^>n=aQ6~-@Ls'X6ucVf\hjn^9; |T ;2mlz~E(BH,;I&x.eCYW>_"(؈(A)YO^P*fq-miIENDB`jquery-goodies-8/fancybox/fancy_loading.png000066400000000000000000000237231207406311000213060ustar00rootroot00000000000000PNG  IHDR(2/'IDATxtee7{{vE^TDQlYV@_EK&IfiL0/|k}w;s sOs[Y$gnrOw7ouT\u~zQI)"kQ\=g_d!qMĵ$V\j%,܃Ko?+ Iq=GǵjWL#q!E_K^4\쏫f:/llnw~Z׺V]'fVf}wy||G>k$۴l7:c5q]FCg} 6\hy7=q&CwB´ZKfMozӡG[FFF.{s;s׹uu{ ?AZtfA,i[;}{C{׿ 8<<' xnE=Waխn5CO|z^gկ~U <uw[ڋa |`M}Ӟ .uYgm!G?:Alw=phN[GqĚ3VKM{G!l&`+k׾w]=ChpKU\m: 2?Vmo[:v衇~3N-o>HdqnRan(`y_Ƹ6|_}n7p*uea,K±?a+.k6{R/~$G=QKEa N&!4\v'qg>_ɖƋo/A::l2{"UmKL$&x3=O^ʛc^\\V7MbX}h^ξ~ gLŜ4?IOZ=n rWM@Ӌq7AHFnڱBĜ=a"vҗt0ȥ̤& N,m9cO|׼5+3 h-bim%yWpiipm[w oXy!2% GJHT/ݭ 뀷5Bc4!p1ŧ?K9 loM7rW :IspZ+JPZWzEy^Ϯ[}{ꉉNjlg]ՠ!LxJ>LߚN:i!&3<>'W7cs:@MpoB=?ӷ>W^yU_7&2͓~/yJN;ꨣւhfC ׿H~S%0 nx9J`FnK/h*}v'P6sĿOKP_I⳦&'TO*OG$ O$ O$ O$ O$IZ3{Ǔ8Tݴ{ʓ8FXޘм̓8sm]g?)>OI~;a} SO=uӝ{b X=0n O%LY24_ZSNٔu&o'q6*l @$dI%`?ϷBg!$5NC/j7]PS/ne|]f>?cZXv&Mص$W9Co,=rJ$/I9'1'g]-vIIIId$v؊0%d2Xwٯ$BcB{@}k4JJJpOR8vVNÓ{"~]ك$$Y@c>fV,@)J*\ xɬNuo`ث>u-P}.畞$uu^?(:E tt~e-ATͧ0 V;PnEJڧ3$D64Lz "x@pNXi@ТVy%xd2OI@gbnVX; (rPRyVm~=Xe~WM@v(Xl5G ,hms۵iESe͞ =!]"I&= sRiF< \kP [ڲ[PfsyV')pe^iXj?䕔xxgfWbh^[-/}i.z.iv<8Ȝf WNFE]ۙKv5 'Ǐ܉+9F!nXʻ^\Ε(ovعLhъln$E<R^5]c^}UW]nݺGۮ-Ztd{p]~iuW%KLԦ !Ne9`"vϰK+Vv~{Xde;wOwvB(~ {Ix> 7'Ovg Iy5Pi[T=VP4Wmڷ^Y59~r )`=Ilp8it!Z)ObYr %v7O2ãh<`Ó4`5J 1Ow'<0T.2|gaځ6%L$ 萎rI1C+'jè7mID#$ gƣ6q t+pBܪ3a܋go3=M<*q7я@;\>JI*(, <@Z0),˓<̰vJT!h T.{h ߩ.e̮0XNtMTVnQKy5:_#e:x\xIe<~F٤zό'aWV wIx~6ʓ $Ĵm'у~+V\_cdTpnwb$eD5kNF}LXm䶾K#uҀI7%ТְMZVDDVݹVmr LǗFrLP]b^(bIZ9Dt;9Ӷlڴ?ZfwI`gbM y.8Dž ^//KM{ ȉ,yC,mpsL@s٢!/yu? ;*•I5IIIIIky\[ۭY$6ߵ xw'qO,?%~PQ GI)P^EEDnz!ְ<X5)Gj7+WZ>I9 VCT+D-P):oiUشXpH@72+J]a3maD,328NQXʩmj2arla+ \Y[$}FFFQHK˟kyk3 kL;Q6rd 'x f/trRذ /{ؓρvS>mHMō()2v% ٟVa) VDNӮ4Cc1Rxmd&l;m$4m9\_͍e< ʁGRhroX UW/yNxp M.:R?IY, _+4,`; 954Q[pd@cHhS'OZ@gV,9NW.ˬ9sv$Δ3eS4NΓaTpE03yt.I.NϊY"`)rRooIlω|2-S){Γ\= [URK+wLa̫J  ā]DnvFjL[ ,] 1t wC~P?ObXSCɟ DV!r;",=j <蠃VhwxSgQ w}< [{ı}f̊' c6FcQh/c%z>dz"҅$Ƴ~T|g3\O%g&.ڧ#![m@r IFm6z[8HI-tIhPee(F>U3J j<ַ(eRAbh#m3Iug6j-h%ábN 6O$#wRc0QJxvj>`JDCyUn0PRza8MxEc2_])%]7yIrE, ܸej665'񽍨UCLau-'bKÓ4 cW/O5z(($g'1jQd@<}d@ }|:#LW xᇯJ^^O|q,$">q)qcY87}&k5 f@>&Vpd'|JmAl[9]d+"uꊁ llWl43F{|%A#JkEw2Eq7\L+s mE9kǐvW/{Z;G, ae굥6H7ɓ:*eIP*D*7dzN11u^Nݭ'ix'ix'ix'ix'Ils〹ghPyy'):9M!(#exߙdf$`Q; c޺uQ±s~NdAJ: @ÎG)d?DNpJOz'Ls_.O8 !Hk c\I٫FlEW&m\,5Ex &77(# 4NU2Э(߉'ņ4:MkK4)2Z죾xs[u}?Ǿ1H0fuqn0ay@V` PuhK.<<5PJ2m%LyNHEFgQIoyEMVIP G܏ċd'A6P3^% SPuņf'٫Fho\:FahBȔ0Dvf!%>3H[rR:QslEIBquj),t$ HikAْʸBRL&, puګXkuIt~+W?Z '݁iͰ2fѸòOqK{\.$N.ʎ=υ-R444d޴'G\\X)b\\ǫZZZ.X,EZk:WHiK w^R$̱p~!!!ʊs"Zݻfҁwc\"!O^o7]NMMY缽uۤktt+zAjbG(>7?? wuu#MJJ/..ڂ~ɔh~uu0>__V`0pjj0Ro"VlHǘ ==844Ts666XglV[[[6OzRZZ9 XRƒ8oPN- hΠ֐ >ap'lĸP:OSJBq&--,ŷ{199i$FLK$*tJB CN52Ba 0?_#*uENu/?ѿ$ۛZ߲ܳ6|sYi'4}eK'T*58Oh^[T)**2r\ ı7\U^^^iAAA%Hn!zIg8r4`H/ "9D.ɗ(}}Fd# tۗL H5kA|zzTPP`tw ?0\%{%{-եA^}A! D&£GLBp XnkkKPFXkqCK;9NH+' =GCdG/HC`gJ$MUF~/nAاWymrcH6Eu  +DOX `pj6_,=JP(QفT999$wڢ7o|MX=}~(6mZb'Qd{ڵMAF$n}!!!c_m@WW8>p4XK$~rqVVι`4k޽{߀=8Ă_(>677wttXݑ"rAIBvϞ= D W+/_`5LO8==0%%(/]o V{>-zphh>//잂[qGVƣ/# Pަ]|K2yZHKΝ;7r `zQ2y>'N0 CJ;)bʇ[VfffVʊW;M+'8ܿL﫫e2G %,H`%]*uT`H)/p:ӰgggGȰ6|Y j'[㑑#|`Wp9 8,J pq *c[Ʀ+ª* p႙KZtsfTKH!Ra< ӹTΒQLF>6-..6[,y\2Et*: oQ)KAAݾS m4DB=p8{!},ѥr ^}ON *Y>)5`@)q1+⮋@v2` qf}{{333S/]SxOrU5:4x'O~ʕ8F{z&1۫ϮF(?._u H$w6F2kh/xDv (wmxAxur)$$I.m#aMI~DEi6,ovTOIENDB`jquery-goodies-8/fancybox/fancy_shadow_s.png000066400000000000000000000001571207406311000214740ustar00rootroot00000000000000PNG  IHDRLW6IDATE 0a!o r.?۲k; f7xn[gpKUvduIENDB`jquery-goodies-8/fancybox/fancy_shadow_se.png000066400000000000000000000005401207406311000216350ustar00rootroot00000000000000PNG  IHDR 'IDAT8ˍTQnC13^9z MF$رž] ~5;|"y֡ 7pEbУz}7[D:$0'YRY rMpQ:Pm.Q׫<@-&BqR ޙ/OSٜ/zU3%$Cթ߀mXڤ;,ktWF_@FfO#|[Е?IENDB`jquery-goodies-8/fancybox/fancy_shadow_w.png000066400000000000000000000001471207406311000214770ustar00rootroot00000000000000PNG  IHDRޒ%.IDATc?H1)f L e3C1;s@@ |yc:IENDB`jquery-goodies-8/fancybox/fancy_title_left.png000066400000000000000000000007671207406311000220270ustar00rootroot00000000000000PNG  IHDR g%"IDAT(ύM(qǿfLfS¼F孼dN^(i5RJqq'$J\vh9X+VĴKeW~{|O_@+G*"/eølcρdEX7H:0_hb._:~ݯ##ףs X <#AV!Fē`P5v~.XDZ%ؠZÇDΈ9uD!9ְNh~M.p*ЖkaB%:#%|W.MJUnL*wR*Mc89VU]3 ~NQT4ah+a!_"mE9[ 1,<`l20Qae휥JK|Vƣ *,'ZȃIENDB`jquery-goodies-8/fancybox/fancy_title_main.png000066400000000000000000000001401207406311000220020ustar00rootroot00000000000000PNG  IHDR yڑ'IDATc``g`en&Le`b`pg`WVYSIENDB`jquery-goodies-8/fancybox/fancy_title_over.png000066400000000000000000000001061207406311000220330ustar00rootroot00000000000000PNG  IHDRĉ IDATc```X š IENDB`jquery-goodies-8/fancybox/fancy_title_right.png000066400000000000000000000007721207406311000222060ustar00rootroot00000000000000PNG  IHDR g%"IDAT(}SK(Q=fcc$ʫ<2V v +RH);Y)+Q e3 M,bi)ȨGs?goy{=0 sґ @ACy;{N/! ɤ(B93/S| ~29#z3d%*'T'I8CBPò|kfꈋ q|H Go!Ta {"kGK?Av V:iU^:pjqQg\ D )܌~Iw(E{ڹ;&,m:c tx4f%`5$^K-EQˀ٧:CX?q;1do1H@59IENDB`jquery-goodies-8/fancybox/fancybox.png000066400000000000000000000356671207406311000203340ustar00rootroot00000000000000PNG  IHDRF;~IDATx x\eIڦMB@AYdQ+Vd. "XvdS@A@]]AQ%i&=M%]辰y̽OIw{|ycݥM[7GZ #(ԧ>w}뮻կ~Uqg9Z_oH{WZzi[~WLJ+|=|玾;vw '׿>?{9猽v1kK3 ti3%MiDM~_}]wodɒ[?z|Ӗ/_oqG@ysk~,[9vaѣG䳲֙M̜9tslanᆍ /8)?(m{|a_|q_|5t|gXKnNi8`n\>qzrC5eee ^>qRYY>;q e˖}JY $E1VUU?Q_a:9/8]O>I&5Ÿy$t7UĘ@X"tu] aRg>Y]܈{.sw9\pdONΐ-o8^ǡS~/Š,A<_`!8`D/0c>XYoq#]tQd)CećkXW邓Ei>+%l 0?˧Ug5t{TBLc["b}>f>'lf^U-H':sC|9s Z~~;i,S/| =O &ԉq؇݆ki{I=Fnn~Ӽ%AL9` ɵ~8X,tMeShOa2a8ҏƚ dK,w:Y>M²A6>v'x үgz3ffZd&T|t5ރ8F/,$MNQrY&7Zߖsgy#;}xK5q_~32 aTvnH]*s"Y"M^zш3gΜ rz߱{wt" 3yO}29ҭ:Ą\KͺL?|&Q)[J;RX-  c LesMt̐snE-Ҿ{{v`{g6]~m?Oھ7pۺ62s,8pg>󙙇rL&~>FnUT:@1#O;9KhoooMR}/ύ0hqp heN5Ctdh}k_˰P 0sDa[؆>H SĢoC _җ߫jMV"v3{`m$;hƥ[~Œ1O>Q3 +-9gg("tv|8^06Fj`4HkCYگ_l\>wvfxZaWq} ~N\Ï`%ta%vt &'-&i ڴ@[|X N+2`,/VԃTQ:כ}Զ^]Sz" {15lN^FRRefk ccYP_-*\m>̊_ 7j\a2fɞl##F5]˧O "L:25ߏF %Ll+B=eRw!|4p5?!aޤ^(~W7i} 8T[<Β6/ddM;Y-(5poK|7nvT.Ʈ-(42"{0t/fs2^¼F0h(2,oy?{=/vpB7Jca|}AED;M;C" hsi/vSڡ9__C6drSG|:o!818_Wv.1`ā%퐊 ]6n5J; qK;xB!2_7\EP _^&#,EIV|"'b0l0ul|'l~yyzasê:::?K?=t7Ml d^ .E䫰"qkuϮME_qguV1Ds=,>Z{.g?YᏄ@X8o@Zڀo8i#o~󛅢t']aY`)S>*bs^!#t g)ܴ(TxnGq71 kMk's!_ش=WfU8߸L5X 8~)/CBS}2֋-t!E!dn7pi5AFMfT< @-#: v0eg]?яhW\q<2CJe B+5m v.P .s~6\.A78gGrWi{!pnIэQ"|{v!o}AT 8_p3[58-B;d%:5AC`Y݌bs膈#]+CFOll !5ʬr.!~wa!`PWVRV-E;d $a 0ẅ~j! w]¤2̪\֙0fY  DJ+ Elf$!&C87ƊHB>Ťxe> i43r]ہǷoX a )' gCGmӠ2E"s]m]5su8 *\x,o`o6<X13kC.8no9@CPqa|vLLfHnP־ C9_ߴC&^ B; D;2a|~ɪLC9yL&ڡ %\Atvηh@{v;kC!ڡ P|CK;sF;eSE[ 8tRp)CeEH_ĄdLӟg8_"ֵPUyAU! ȃ>hdt¢,VYۂJ-+2QB ۜ/8<gr0Z2*2u_:Rr:Ct3Lsu K%$E+%HaU[[1W?wAnʜbZļ5̛ȁ1O}P)NJ+.߸q_dXO{;kJ3 1DK3UbGWH"H&NXٳ^yTJ,If]2XHvj%ex`Md9n/ź@C^\1Kİ ꁠniSW\[6آɏc*&fӦMe꧞zjD#i|5~ǃ]0L'NFa`s΢ōzn#N9T>] ,P__RF1RRo]jZH%ohRpU $!u@Fcz|mQr)-אJx5=tǮ«tA`?8mt'H{qYX!á vex =x/VBdg66Pbb9' B3laJmt;76wUAE1*5wv(( pL2J5TO Cfċ|LW_}7Ilᵼ{hUa[Mz|T~ֳ|dyy,י>!@b{QՍ&ÀeJDpw(i{6 pO=47ʃUN( Fs V7N#!O!5Sax`B"8N-2D;*d)qU)tC"| g1Ct  Nl0+ Co ET1L֑8\n"\7?/1Lx&D ,dQ]Gaӿ1̗0Z[ĭ8U6<Kb5/+m9`nGNȂ\w%S='l~iJRRWIEIEI| # {vg`a_^&~X" ;u&e=O6߮4cƌs=\󞁻GJ0l,C_,a]g+LJ6yf'篴d+ 5<3rƬ\8>ƦɜYõde\%{f3\|ҙd ;ITέSl>"h:ދvъ,7t[H;XډVٜe2n;k6xKs%A9_{ ̢yųݨf8Q|w }^UP׽9JRHFt{;=R_f!|vaw^ϵ]|^_ +δY ̜o,8vTy:R$'YIz}Ξ!):pbPݖst{Co6@mt:^wvw ;o +m1 $oLGҼ|5*J+ „ s%JRS뫹V-)_Q M!QlqJJSΗ=YbJ\J|Ql·嶞o*K[1{| pR𢁢Qt+)"t+"+%R5%fYK_~_n}7aP}ꫯnȰp"TTdSkT2(hM\yƴ2אϲ _|QΗ&:pYqNC-S!L72HwD Pȉ-Aݥd*eWbʏ8.`V]nR^k%c F!*h-;LPaDm_Bez A!"p.abhd.U*̶څƫ({J[9 $@V0gΗ9 >Z#/k ScjH4Ս&.|22oĿP~ƎnΤOX"r|U0%@_˿ThW⌲eWjr' ('.do E,aÌTUt&w-] q 0Zn_[iv*r* <՚$pt+nt3@D-^c d ?>GOɦ+K33 5í=ݨ*$.~p, =|=F%{K!@N ƾΨP|͖u9ߘ+[f56c*5fu- JRMVe=8y&l7xE ʬmMk@ÂjCwL:1U+0|=k}Rkv\nOl;MA1۔Z9&G#4sśm2dk3Oe9n`AɪPs0ϱ}͓x -c/''(|zrb(|=?A)h7js[j׵pL|3Ps+W-o„ȕz˚>B4bbr65k-K\ EnI.I=_N6#mzpYoTYP}]mˢxq(Sh:6#`/VԐlqVgK]>[b*ILFGl⣭R":IUh9sz Lߊ V| D:"J a(%5;\M)`2˜knU)I[;΀%qmҤIt6* ^`h-2_M5L[Pẙ=jFrk#w'^^F&%T0ۀ3q% VH2%t;8`I#6;DE,hhսq| t77L!r7xm;օc> |W%tld[-2(Iɹ0484\|N#O _9ix 7‚~bVTa{YݪխJ{3pMõ cC38_G}t1h;5(XWFZ]ke5}ey1&ho,(CI7w8l u}-η:xgcH!V+Pb͖Sq,LҠj(y|OrZ'2Ju=ܳϮj9uj +$+9y.g(e*"fF,7-ڭ>SřXhujrLJpfL @cu@3Z8"}saUrOf'ߌvA 4uKہeXI'IfS >gZ툇&}f~@lgRVTRSrRi<,Q0Tg77c]3Ԛ׸GҼM5|sF܆^G欐| rjr kv֮4F}HJC,aLi^&x 05OLF0#:3^RzCc^#6 {j]q:鳻 ˿fyO?حcnFk"7 ΗlZHN#U0cok1iG RN=V}t 0bJj5z]e,}v0;X2B!1ߕT׵{ + #&єE<`k ;( V"uұ2*=,a3 `dmV'veڜIN扙 s+>^&Ԝk۽H(=&ԜEx^Ēt1l 5UxDJ=|K 51yᅁ+NL`SPkp(ԜQfQPs#淨Ro?"η8&|{z%ȱ009|1zf1u$,jT W,) Q)3";6{7PbpwSI0PUT)&Q'K^ؤSsi0AD̜ށuh8e ŹfbMB- '0 hME*qH8>Њ[oI7[~aR(pJj.B;%l)PJ5hjQbZvW"Fa ]e68+ğ#syTF0M- psr3c1F#b.ΗUW]5﮻BD S֊e9Z@\LQcsN}2"1GZF1$/Ha qӆZ=7 :&F~dY OSS,2 s)4IrE(U /v =#aCgkHfs9f-Be|d2>0za |JBSHljjhhXoӃ3ӨT ύ$ZcTRI8묳HdvO.Z),6kTg}v I_jdas\$bASW7ڹTǻ ]J"TŸ9_r`-rVޏ=Yfa]^^ r%ݳb[$ǰ$0{//1c=o8ғ{1ZL=_>#Őo0g; {3E/5 'kc&9ŻFU2 ȹ& 8_ )h,|ɓ'7ɘ}cL'kHp~6pF+[W4bd&fc!1׏0c '4r )\Cqv $zPn\`T5c%X@뵪Xqt@DכZ$|''蚩x8_|ҬK0?Ƀ\`n8P.dlf;SoF;XxF'oqR*DJ2+t42L^刂EFm_jow} B/BXN#;/^'XM;*A_A:bBS0G*)RWWZ(8"7(ٗ5RSBb|L}GPQz뭝0zCf>CXKaFiµR}uMMjeGW_}uk%$sŶW,ɷ69{Y(H_r[uIϰq_q8߈EoF4 LF])#|S 8׶C,|r5)]:\?8KkEeqpj;p Ka/2^a@Wahx3!Ϗ0dHfr L8ˇXsf|1#|)+1#{>ƍI IVIOpLUiɂj??+>"j*STҍ 5/v0V@)7dl)ݜ9sBOD#5 CׂARǐ?@Y[rv'r]jժ^xᅥL֨l[ D Ułl6pM29 V-2o^I xZ;C"V윯Ij/\sHpG8j8eK^{ Ξ>gݬ8S}-aq*LuC%8߈8XFyDoG'yDoa"7Jb8_GxDob9J(8_!cu2h1=B#[KH#tlfFSBNm*dYN!DҘ( 504bL{*| RPRt%)0taD@Z S Gw޾^] /2Y2! F.L U<% O>Fr٢/}q8aA[ Ҽ>|ΗqArf|2x,Mi!. ĉV~͏=ؒsXyYEn"iRJ,Ǥ)BXy=\ ** x㫯+dٚ&o(qug~s.,&P$mQtTvEYWSL'3 {f Uź DbžQq@Ӱ1k!ݭI8qcG<+5p, mr @uflW(>ΗuʩIM|c[o Go,|#7|cqzDoa"7Jb8_GxDv8ߘ PUs1),ČpI1iֵ|IĆE,@F@Zt#LYI@S1@Z1ZXd#St QL)[a1z"k#e &g@gBBobJ};r@0뢖'J,~!ȑr򖖖u0yz0yS㗬,AĂ3SLs:jjQ +Tc)MN3g}E:uDbn5&"V1qFk2-)4C'N;I-%㧏Sf.C"lU.8apo E .i߿ȐRa28m@"4W)SHb8_gBb]p_ 7Y'*a6AW=_&e|eR#0ҍbl<,Oኧ^ 04XIn\9 Hc gXtPdQ~G V† MM_Zkۍ qtVw:Jtu0zѶk;t&WbRp 9g49_p"n&%̨D rSYܥ9չ8;(Fo,|#7|S<"7#|<"7#<"70uM1\G#|S<"7_M&6a׭ueJJY 9QAAI[h"]9}[T \յeZ)~FY -1\|(IND\NA$@iJ.ZX!Xec9q88S-kJ| W+B'C/v]HQyO=ViEՄlB*02Ē(̵(vyWSɌRn 0y=b*r k hŏF9}hŹjrܡ-|\m$op>+ 2+UM@בg`=vYXp;PSD=!M kf4&N<u'hFwbbԂgP SOvI["OtF)Y2 c4QhPGB.K%+qXGrWu-N8a.$g&׌J|&Ē Ϊ2\wNBKͿ8Bҍ 5AM[>-'/H*VRl^q$a䯙 nV&%Kg%-BYZ*"JkbHF-V UX ֡E)mv@n;n&Ih5%$- #uPqs(Xt2K10f"zi+FΗ59<6jη:q[Eo,|#7|cq'%[PrKN:7T[IENDB`jquery-goodies-8/fancybox/jquery.fancybox.css000066400000000000000000000210061207406311000216340ustar00rootroot00000000000000/* * FancyBox - jQuery Plugin * Simple and fancy lightbox alternative * * Examples and documentation at: http://fancybox.net * * Copyright (c) 2008 - 2010 Janis Skarnelis * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated. * * Version: 1.3.4 (11/11/2010) * Requires: jQuery v1.3+ * * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html */ #fancybox-loading { position: fixed; top: 50%; left: 50%; width: 40px; height: 40px; margin-top: -20px; margin-left: -20px; cursor: pointer; overflow: hidden; z-index: 1104; display: none; } #fancybox-loading div { position: absolute; top: 0; left: 0; width: 40px; height: 480px; background-image: url('fancybox.png'); } #fancybox-overlay { position: absolute; top: 0; left: 0; width: 100%; z-index: 1100; display: none; } #fancybox-tmp { padding: 0; margin: 0; border: 0; overflow: auto; display: none; } #fancybox-wrap { position: absolute; top: 0; left: 0; padding: 20px; z-index: 1101; outline: none; display: none; } #fancybox-outer { position: relative; width: 100%; height: 100%; background: #fff; } #fancybox-content { width: 0; height: 0; padding: 0; outline: none; position: relative; overflow: hidden; z-index: 1102; border: 0px solid #fff; } #fancybox-hide-sel-frame { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: transparent; z-index: 1101; } #fancybox-close { position: absolute; top: -15px; right: -15px; width: 30px; height: 30px; background: transparent url('fancybox.png') -40px 0px; cursor: pointer; z-index: 1103; display: none; } #fancybox-error { color: #444; font: normal 12px/20px Arial; padding: 14px; margin: 0; } #fancybox-img { width: 100%; height: 100%; padding: 0; margin: 0; border: none; outline: none; line-height: 0; vertical-align: top; } #fancybox-frame { width: 100%; height: 100%; border: none; display: block; } #fancybox-left, #fancybox-right { position: absolute; bottom: 0px; height: 100%; width: 35%; cursor: pointer; outline: none; background: transparent url('blank.gif'); z-index: 1102; display: none; } #fancybox-left { left: 0px; } #fancybox-right { right: 0px; } #fancybox-left-ico, #fancybox-right-ico { position: absolute; top: 50%; left: -9999px; width: 30px; height: 30px; margin-top: -15px; cursor: pointer; z-index: 1102; display: block; } #fancybox-left-ico { background-image: url('fancybox.png'); background-position: -40px -30px; } #fancybox-right-ico { background-image: url('fancybox.png'); background-position: -40px -60px; } #fancybox-left:hover, #fancybox-right:hover { visibility: visible; /* IE6 */ } #fancybox-left:hover span { left: 20px; } #fancybox-right:hover span { left: auto; right: 20px; } .fancybox-bg { position: absolute; padding: 0; margin: 0; border: 0; width: 20px; height: 20px; z-index: 1001; } #fancybox-bg-n { top: -20px; left: 0; width: 100%; background-image: url('fancybox-x.png'); } #fancybox-bg-ne { top: -20px; right: -20px; background-image: url('fancybox.png'); background-position: -40px -162px; } #fancybox-bg-e { top: 0; right: -20px; height: 100%; background-image: url('fancybox-y.png'); background-position: -20px 0px; } #fancybox-bg-se { bottom: -20px; right: -20px; background-image: url('fancybox.png'); background-position: -40px -182px; } #fancybox-bg-s { bottom: -20px; left: 0; width: 100%; background-image: url('fancybox-x.png'); background-position: 0px -20px; } #fancybox-bg-sw { bottom: -20px; left: -20px; background-image: url('fancybox.png'); background-position: -40px -142px; } #fancybox-bg-w { top: 0; left: -20px; height: 100%; background-image: url('fancybox-y.png'); } #fancybox-bg-nw { top: -20px; left: -20px; background-image: url('fancybox.png'); background-position: -40px -122px; } #fancybox-title { font-family: Helvetica; font-size: 12px; z-index: 1102; } .fancybox-title-inside { padding-bottom: 10px; text-align: center; color: #333; background: #fff; position: relative; } .fancybox-title-outside { padding-top: 10px; color: #fff; } .fancybox-title-over { position: absolute; bottom: 0; left: 0; color: #FFF; text-align: left; } #fancybox-title-over { padding: 10px; background-image: url('fancy_title_over.png'); display: block; } .fancybox-title-float { position: absolute; left: 0; bottom: -20px; height: 32px; } #fancybox-title-float-wrap { border: none; border-collapse: collapse; width: auto; } #fancybox-title-float-wrap td { border: none; white-space: nowrap; } #fancybox-title-float-left { padding: 0 0 0 15px; background: url('fancybox.png') -40px -90px no-repeat; } #fancybox-title-float-main { color: #FFF; line-height: 29px; font-weight: bold; padding: 0 0 3px 0; background: url('fancybox-x.png') 0px -40px; } #fancybox-title-float-right { padding: 0 0 0 15px; background: url('fancybox.png') -55px -90px no-repeat; } /* IE6 */ .fancybox-ie6 #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_close.png', sizingMethod='scale'); } .fancybox-ie6 #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_nav_left.png', sizingMethod='scale'); } .fancybox-ie6 #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_nav_right.png', sizingMethod='scale'); } .fancybox-ie6 #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_title_over.png', sizingMethod='scale'); zoom: 1; } .fancybox-ie6 #fancybox-title-float-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_title_left.png', sizingMethod='scale'); } .fancybox-ie6 #fancybox-title-float-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_title_main.png', sizingMethod='scale'); } .fancybox-ie6 #fancybox-title-float-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_title_right.png', sizingMethod='scale'); } .fancybox-ie6 #fancybox-bg-w, .fancybox-ie6 #fancybox-bg-e, .fancybox-ie6 #fancybox-left, .fancybox-ie6 #fancybox-right, #fancybox-hide-sel-frame { height: expression(this.parentNode.clientHeight + "px"); } #fancybox-loading.fancybox-ie6 { position: absolute; margin-top: 0; top: expression( (-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px'); } #fancybox-loading.fancybox-ie6 div { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_loading.png', sizingMethod='scale'); } /* IE6, IE7, IE8 */ .fancybox-ie .fancybox-bg { background: transparent !important; } .fancybox-ie #fancybox-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_shadow_n.png', sizingMethod='scale'); } .fancybox-ie #fancybox-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_shadow_ne.png', sizingMethod='scale'); } .fancybox-ie #fancybox-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_shadow_e.png', sizingMethod='scale'); } .fancybox-ie #fancybox-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_shadow_se.png', sizingMethod='scale'); } .fancybox-ie #fancybox-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_shadow_s.png', sizingMethod='scale'); } .fancybox-ie #fancybox-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_shadow_sw.png', sizingMethod='scale'); } .fancybox-ie #fancybox-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_shadow_w.png', sizingMethod='scale'); } .fancybox-ie #fancybox-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancy_shadow_nw.png', sizingMethod='scale'); } jquery-goodies-8/fancybox/jquery.fancybox.js000066400000000000000000000713261207406311000214720ustar00rootroot00000000000000/* * FancyBox - jQuery Plugin * Simple and fancy lightbox alternative * * Examples and documentation at: http://fancybox.net * * Copyright (c) 2008 - 2010 Janis Skarnelis * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated. * * Version: 1.3.4 (11/11/2010) * Requires: jQuery v1.3+ * * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html */ ;(function($) { var tmp, loading, overlay, wrap, outer, content, close, title, nav_left, nav_right, selectedIndex = 0, selectedOpts = {}, selectedArray = [], currentIndex = 0, currentOpts = {}, currentArray = [], ajaxLoader = null, imgPreloader = new Image(), imgRegExp = /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i, swfRegExp = /[^\.]\.(swf)\s*$/i, loadingTimer, loadingFrame = 1, titleHeight = 0, titleStr = '', start_pos, final_pos, busy = false, fx = $.extend($('
    ')[0], { prop: 0 }), isIE6 = $.browser.msie && $.browser.version < 7 && !window.XMLHttpRequest, /* * Private methods */ _abort = function() { loading.hide(); imgPreloader.onerror = imgPreloader.onload = null; if (ajaxLoader) { ajaxLoader.abort(); } tmp.empty(); }, _error = function() { if (false === selectedOpts.onError(selectedArray, selectedIndex, selectedOpts)) { loading.hide(); busy = false; return; } selectedOpts.titleShow = false; selectedOpts.width = 'auto'; selectedOpts.height = 'auto'; tmp.html( '

    The requested content cannot be loaded.
    Please try again later.

    ' ); _process_inline(); }, _start = function() { var obj = selectedArray[ selectedIndex ], href, type, title, str, emb, ret; _abort(); selectedOpts = $.extend({}, $.fn.fancybox.defaults, (typeof $(obj).data('fancybox') == 'undefined' ? selectedOpts : $(obj).data('fancybox'))); ret = selectedOpts.onStart(selectedArray, selectedIndex, selectedOpts); if (ret === false) { busy = false; return; } else if (typeof ret == 'object') { selectedOpts = $.extend(selectedOpts, ret); } title = selectedOpts.title || (obj.nodeName ? $(obj).attr('title') : obj.title) || ''; if (obj.nodeName && !selectedOpts.orig) { selectedOpts.orig = $(obj).children("img:first").length ? $(obj).children("img:first") : $(obj); } if (title === '' && selectedOpts.orig && selectedOpts.titleFromAlt) { title = selectedOpts.orig.attr('alt'); } href = selectedOpts.href || (obj.nodeName ? $(obj).attr('href') : obj.href) || null; if ((/^(?:javascript)/i).test(href) || href == '#') { href = null; } if (selectedOpts.type) { type = selectedOpts.type; if (!href) { href = selectedOpts.content; } } else if (selectedOpts.content) { type = 'html'; } else if (href) { if (href.match(imgRegExp)) { type = 'image'; } else if (href.match(swfRegExp)) { type = 'swf'; } else if ($(obj).hasClass("iframe")) { type = 'iframe'; } else if (href.indexOf("#") === 0) { type = 'inline'; } else { type = 'ajax'; } } if (!type) { _error(); return; } if (type == 'inline') { obj = href.substr(href.indexOf("#")); type = $(obj).length > 0 ? 'inline' : 'ajax'; } selectedOpts.type = type; selectedOpts.href = href; selectedOpts.title = title; if (selectedOpts.autoDimensions) { if (selectedOpts.type == 'html' || selectedOpts.type == 'inline' || selectedOpts.type == 'ajax') { selectedOpts.width = 'auto'; selectedOpts.height = 'auto'; } else { selectedOpts.autoDimensions = false; } } if (selectedOpts.modal) { selectedOpts.overlayShow = true; selectedOpts.hideOnOverlayClick = false; selectedOpts.hideOnContentClick = false; selectedOpts.enableEscapeButton = false; selectedOpts.showCloseButton = false; } selectedOpts.padding = parseInt(selectedOpts.padding, 10); selectedOpts.margin = parseInt(selectedOpts.margin, 10); tmp.css('padding', (selectedOpts.padding + selectedOpts.margin)); $('.fancybox-inline-tmp').unbind('fancybox-cancel').bind('fancybox-change', function() { $(this).replaceWith(content.children()); }); switch (type) { case 'html' : tmp.html( selectedOpts.content ); _process_inline(); break; case 'inline' : if ( $(obj).parent().is('#fancybox-content') === true) { busy = false; return; } $('
    ') .hide() .insertBefore( $(obj) ) .bind('fancybox-cleanup', function() { $(this).replaceWith(content.children()); }).bind('fancybox-cancel', function() { $(this).replaceWith(tmp.children()); }); $(obj).appendTo(tmp); _process_inline(); break; case 'image': busy = false; $.fancybox.showActivity(); imgPreloader = new Image(); imgPreloader.onerror = function() { _error(); }; imgPreloader.onload = function() { busy = true; imgPreloader.onerror = imgPreloader.onload = null; _process_image(); }; imgPreloader.src = href; break; case 'swf': selectedOpts.scrolling = 'no'; str = ''; emb = ''; $.each(selectedOpts.swf, function(name, val) { str += ''; emb += ' ' + name + '="' + val + '"'; }); str += ''; tmp.html(str); _process_inline(); break; case 'ajax': busy = false; $.fancybox.showActivity(); selectedOpts.ajax.win = selectedOpts.ajax.success; ajaxLoader = $.ajax($.extend({}, selectedOpts.ajax, { url : href, data : selectedOpts.ajax.data || {}, error : function(XMLHttpRequest, textStatus, errorThrown) { if ( XMLHttpRequest.status > 0 ) { _error(); } }, success : function(data, textStatus, XMLHttpRequest) { var o = typeof XMLHttpRequest == 'object' ? XMLHttpRequest : ajaxLoader; if (o.status == 200) { if ( typeof selectedOpts.ajax.win == 'function' ) { ret = selectedOpts.ajax.win(href, data, textStatus, XMLHttpRequest); if (ret === false) { loading.hide(); return; } else if (typeof ret == 'string' || typeof ret == 'object') { data = ret; } } tmp.html( data ); _process_inline(); } } })); break; case 'iframe': _show(); break; } }, _process_inline = function() { var w = selectedOpts.width, h = selectedOpts.height; if (w.toString().indexOf('%') > -1) { w = parseInt( ($(window).width() - (selectedOpts.margin * 2)) * parseFloat(w) / 100, 10) + 'px'; } else { w = w == 'auto' ? 'auto' : w + 'px'; } if (h.toString().indexOf('%') > -1) { h = parseInt( ($(window).height() - (selectedOpts.margin * 2)) * parseFloat(h) / 100, 10) + 'px'; } else { h = h == 'auto' ? 'auto' : h + 'px'; } tmp.wrapInner('
    '); selectedOpts.width = tmp.width(); selectedOpts.height = tmp.height(); _show(); }, _process_image = function() { selectedOpts.width = imgPreloader.width; selectedOpts.height = imgPreloader.height; $("").attr({ 'id' : 'fancybox-img', 'src' : imgPreloader.src, 'alt' : selectedOpts.title }).appendTo( tmp ); _show(); }, _show = function() { var pos, equal; loading.hide(); if (wrap.is(":visible") && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) { $.event.trigger('fancybox-cancel'); busy = false; return; } busy = true; $(content.add( overlay )).unbind(); $(window).unbind("resize.fb scroll.fb"); $(document).unbind('keydown.fb'); if (wrap.is(":visible") && currentOpts.titlePosition !== 'outside') { wrap.css('height', wrap.height()); } currentArray = selectedArray; currentIndex = selectedIndex; currentOpts = selectedOpts; if (currentOpts.overlayShow) { overlay.css({ 'background-color' : currentOpts.overlayColor, 'opacity' : currentOpts.overlayOpacity, 'cursor' : currentOpts.hideOnOverlayClick ? 'pointer' : 'auto', 'height' : $(document).height() }); if (!overlay.is(':visible')) { if (isIE6) { $('select:not(#fancybox-tmp select)').filter(function() { return this.style.visibility !== 'hidden'; }).css({'visibility' : 'hidden'}).one('fancybox-cleanup', function() { this.style.visibility = 'inherit'; }); } overlay.show(); } } else { overlay.hide(); } final_pos = _get_zoom_to(); _process_title(); if (wrap.is(":visible")) { $( close.add( nav_left ).add( nav_right ) ).hide(); pos = wrap.position(), start_pos = { top : pos.top, left : pos.left, width : wrap.width(), height : wrap.height() }; equal = (start_pos.width == final_pos.width && start_pos.height == final_pos.height); content.fadeTo(currentOpts.changeFade, 0.3, function() { var finish_resizing = function() { content.html( tmp.contents() ).fadeTo(currentOpts.changeFade, 1, _finish); }; $.event.trigger('fancybox-change'); content .empty() .removeAttr('filter') .css({ 'border-width' : currentOpts.padding, 'width' : final_pos.width - currentOpts.padding * 2, 'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2 }); if (equal) { finish_resizing(); } else { fx.prop = 0; $(fx).animate({prop: 1}, { duration : currentOpts.changeSpeed, easing : currentOpts.easingChange, step : _draw, complete : finish_resizing }); } }); return; } wrap.removeAttr("style"); content.css('border-width', currentOpts.padding); if (currentOpts.transitionIn == 'elastic') { start_pos = _get_zoom_from(); content.html( tmp.contents() ); wrap.show(); if (currentOpts.opacity) { final_pos.opacity = 0; } fx.prop = 0; $(fx).animate({prop: 1}, { duration : currentOpts.speedIn, easing : currentOpts.easingIn, step : _draw, complete : _finish }); return; } if (currentOpts.titlePosition == 'inside' && titleHeight > 0) { title.show(); } content .css({ 'width' : final_pos.width - currentOpts.padding * 2, 'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2 }) .html( tmp.contents() ); wrap .css(final_pos) .fadeIn( currentOpts.transitionIn == 'none' ? 0 : currentOpts.speedIn, _finish ); }, _format_title = function(title) { if (title && title.length) { if (currentOpts.titlePosition == 'float') { return '
    ' + title + '
    '; } return '
    ' + title + '
    '; } return false; }, _process_title = function() { titleStr = currentOpts.title || ''; titleHeight = 0; title .empty() .removeAttr('style') .removeClass(); if (currentOpts.titleShow === false) { title.hide(); return; } titleStr = $.isFunction(currentOpts.titleFormat) ? currentOpts.titleFormat(titleStr, currentArray, currentIndex, currentOpts) : _format_title(titleStr); if (!titleStr || titleStr === '') { title.hide(); return; } title .addClass('fancybox-title-' + currentOpts.titlePosition) .html( titleStr ) .appendTo( 'body' ) .show(); switch (currentOpts.titlePosition) { case 'inside': title .css({ 'width' : final_pos.width - (currentOpts.padding * 2), 'marginLeft' : currentOpts.padding, 'marginRight' : currentOpts.padding }); titleHeight = title.outerHeight(true); title.appendTo( outer ); final_pos.height += titleHeight; break; case 'over': title .css({ 'marginLeft' : currentOpts.padding, 'width' : final_pos.width - (currentOpts.padding * 2), 'bottom' : currentOpts.padding }) .appendTo( outer ); break; case 'float': title .css('left', parseInt((title.width() - final_pos.width - 40)/ 2, 10) * -1) .appendTo( wrap ); break; default: title .css({ 'width' : final_pos.width - (currentOpts.padding * 2), 'paddingLeft' : currentOpts.padding, 'paddingRight' : currentOpts.padding }) .appendTo( wrap ); break; } title.hide(); }, _set_navigation = function() { if (currentOpts.enableEscapeButton || currentOpts.enableKeyboardNav) { $(document).bind('keydown.fb', function(e) { if (e.keyCode == 27 && currentOpts.enableEscapeButton) { e.preventDefault(); $.fancybox.close(); } else if ((e.keyCode == 37 || e.keyCode == 39) && currentOpts.enableKeyboardNav && e.target.tagName !== 'INPUT' && e.target.tagName !== 'TEXTAREA' && e.target.tagName !== 'SELECT') { e.preventDefault(); $.fancybox[ e.keyCode == 37 ? 'prev' : 'next'](); } }); } if (!currentOpts.showNavArrows) { nav_left.hide(); nav_right.hide(); return; } if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex !== 0) { nav_left.show(); } if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex != (currentArray.length -1)) { nav_right.show(); } }, _finish = function () { if (!$.support.opacity) { content.get(0).style.removeAttribute('filter'); wrap.get(0).style.removeAttribute('filter'); } if (selectedOpts.autoDimensions) { content.css('height', 'auto'); } wrap.css('height', 'auto'); if (titleStr && titleStr.length) { title.show(); } if (currentOpts.showCloseButton) { close.show(); } _set_navigation(); if (currentOpts.hideOnContentClick) { content.bind('click', $.fancybox.close); } if (currentOpts.hideOnOverlayClick) { overlay.bind('click', $.fancybox.close); } $(window).bind("resize.fb", $.fancybox.resize); if (currentOpts.centerOnScroll) { $(window).bind("scroll.fb", $.fancybox.center); } if (currentOpts.type == 'iframe') { $('').appendTo(content); } wrap.show(); busy = false; $.fancybox.center(); currentOpts.onComplete(currentArray, currentIndex, currentOpts); _preload_images(); }, _preload_images = function() { var href, objNext; if ((currentArray.length -1) > currentIndex) { href = currentArray[ currentIndex + 1 ].href; if (typeof href !== 'undefined' && href.match(imgRegExp)) { objNext = new Image(); objNext.src = href; } } if (currentIndex > 0) { href = currentArray[ currentIndex - 1 ].href; if (typeof href !== 'undefined' && href.match(imgRegExp)) { objNext = new Image(); objNext.src = href; } } }, _draw = function(pos) { var dim = { width : parseInt(start_pos.width + (final_pos.width - start_pos.width) * pos, 10), height : parseInt(start_pos.height + (final_pos.height - start_pos.height) * pos, 10), top : parseInt(start_pos.top + (final_pos.top - start_pos.top) * pos, 10), left : parseInt(start_pos.left + (final_pos.left - start_pos.left) * pos, 10) }; if (typeof final_pos.opacity !== 'undefined') { dim.opacity = pos < 0.5 ? 0.5 : pos; } wrap.css(dim); content.css({ 'width' : dim.width - currentOpts.padding * 2, 'height' : dim.height - (titleHeight * pos) - currentOpts.padding * 2 }); }, _get_viewport = function() { return [ $(window).width() - (currentOpts.margin * 2), $(window).height() - (currentOpts.margin * 2), $(document).scrollLeft() + currentOpts.margin, $(document).scrollTop() + currentOpts.margin ]; }, _get_zoom_to = function () { var view = _get_viewport(), to = {}, resize = currentOpts.autoScale, double_padding = currentOpts.padding * 2, ratio; if (currentOpts.width.toString().indexOf('%') > -1) { to.width = parseInt((view[0] * parseFloat(currentOpts.width)) / 100, 10); } else { to.width = currentOpts.width + double_padding; } if (currentOpts.height.toString().indexOf('%') > -1) { to.height = parseInt((view[1] * parseFloat(currentOpts.height)) / 100, 10); } else { to.height = currentOpts.height + double_padding; } if (resize && (to.width > view[0] || to.height > view[1])) { if (selectedOpts.type == 'image' || selectedOpts.type == 'swf') { ratio = (currentOpts.width ) / (currentOpts.height ); if ((to.width ) > view[0]) { to.width = view[0]; to.height = parseInt(((to.width - double_padding) / ratio) + double_padding, 10); } if ((to.height) > view[1]) { to.height = view[1]; to.width = parseInt(((to.height - double_padding) * ratio) + double_padding, 10); } } else { to.width = Math.min(to.width, view[0]); to.height = Math.min(to.height, view[1]); } } to.top = parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - to.height - 40) * 0.5)), 10); to.left = parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - to.width - 40) * 0.5)), 10); return to; }, _get_obj_pos = function(obj) { var pos = obj.offset(); pos.top += parseInt( obj.css('paddingTop'), 10 ) || 0; pos.left += parseInt( obj.css('paddingLeft'), 10 ) || 0; pos.top += parseInt( obj.css('border-top-width'), 10 ) || 0; pos.left += parseInt( obj.css('border-left-width'), 10 ) || 0; pos.width = obj.width(); pos.height = obj.height(); return pos; }, _get_zoom_from = function() { var orig = selectedOpts.orig ? $(selectedOpts.orig) : false, from = {}, pos, view; if (orig && orig.length) { pos = _get_obj_pos(orig); from = { width : pos.width + (currentOpts.padding * 2), height : pos.height + (currentOpts.padding * 2), top : pos.top - currentOpts.padding - 20, left : pos.left - currentOpts.padding - 20 }; } else { view = _get_viewport(); from = { width : currentOpts.padding * 2, height : currentOpts.padding * 2, top : parseInt(view[3] + view[1] * 0.5, 10), left : parseInt(view[2] + view[0] * 0.5, 10) }; } return from; }, _animate_loading = function() { if (!loading.is(':visible')){ clearInterval(loadingTimer); return; } $('div', loading).css('top', (loadingFrame * -40) + 'px'); loadingFrame = (loadingFrame + 1) % 12; }; /* * Public methods */ $.fn.fancybox = function(options) { if (!$(this).length) { return this; } $(this) .data('fancybox', $.extend({}, options, ($.metadata ? $(this).metadata() : {}))) .unbind('click.fb') .bind('click.fb', function(e) { e.preventDefault(); if (busy) { return; } busy = true; $(this).blur(); selectedArray = []; selectedIndex = 0; var rel = $(this).attr('rel') || ''; if (!rel || rel == '' || rel === 'nofollow') { selectedArray.push(this); } else { selectedArray = $("a[rel=" + rel + "], area[rel=" + rel + "]"); selectedIndex = selectedArray.index( this ); } _start(); return; }); return this; }; $.fancybox = function(obj) { var opts; if (busy) { return; } busy = true; opts = typeof arguments[1] !== 'undefined' ? arguments[1] : {}; selectedArray = []; selectedIndex = parseInt(opts.index, 10) || 0; if ($.isArray(obj)) { for (var i = 0, j = obj.length; i < j; i++) { if (typeof obj[i] == 'object') { $(obj[i]).data('fancybox', $.extend({}, opts, obj[i])); } else { obj[i] = $({}).data('fancybox', $.extend({content : obj[i]}, opts)); } } selectedArray = jQuery.merge(selectedArray, obj); } else { if (typeof obj == 'object') { $(obj).data('fancybox', $.extend({}, opts, obj)); } else { obj = $({}).data('fancybox', $.extend({content : obj}, opts)); } selectedArray.push(obj); } if (selectedIndex > selectedArray.length || selectedIndex < 0) { selectedIndex = 0; } _start(); }; $.fancybox.showActivity = function() { clearInterval(loadingTimer); loading.show(); loadingTimer = setInterval(_animate_loading, 66); }; $.fancybox.hideActivity = function() { loading.hide(); }; $.fancybox.next = function() { return $.fancybox.pos( currentIndex + 1); }; $.fancybox.prev = function() { return $.fancybox.pos( currentIndex - 1); }; $.fancybox.pos = function(pos) { if (busy) { return; } pos = parseInt(pos); selectedArray = currentArray; if (pos > -1 && pos < currentArray.length) { selectedIndex = pos; _start(); } else if (currentOpts.cyclic && currentArray.length > 1) { selectedIndex = pos >= currentArray.length ? 0 : currentArray.length - 1; _start(); } return; }; $.fancybox.cancel = function() { if (busy) { return; } busy = true; $.event.trigger('fancybox-cancel'); _abort(); selectedOpts.onCancel(selectedArray, selectedIndex, selectedOpts); busy = false; }; // Note: within an iframe use - parent.$.fancybox.close(); $.fancybox.close = function() { if (busy || wrap.is(':hidden')) { return; } busy = true; if (currentOpts && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) { busy = false; return; } _abort(); $(close.add( nav_left ).add( nav_right )).hide(); $(content.add( overlay )).unbind(); $(window).unbind("resize.fb scroll.fb"); $(document).unbind('keydown.fb'); content.find('iframe').attr('src', isIE6 && /^https/i.test(window.location.href || '') ? 'javascript:void(false)' : 'about:blank'); if (currentOpts.titlePosition !== 'inside') { title.empty(); } wrap.stop(); function _cleanup() { overlay.fadeOut('fast'); title.empty().hide(); wrap.hide(); $.event.trigger('fancybox-cleanup'); content.empty(); currentOpts.onClosed(currentArray, currentIndex, currentOpts); currentArray = selectedOpts = []; currentIndex = selectedIndex = 0; currentOpts = selectedOpts = {}; busy = false; } if (currentOpts.transitionOut == 'elastic') { start_pos = _get_zoom_from(); var pos = wrap.position(); final_pos = { top : pos.top , left : pos.left, width : wrap.width(), height : wrap.height() }; if (currentOpts.opacity) { final_pos.opacity = 1; } title.empty().hide(); fx.prop = 1; $(fx).animate({ prop: 0 }, { duration : currentOpts.speedOut, easing : currentOpts.easingOut, step : _draw, complete : _cleanup }); } else { wrap.fadeOut( currentOpts.transitionOut == 'none' ? 0 : currentOpts.speedOut, _cleanup); } }; $.fancybox.resize = function() { if (overlay.is(':visible')) { overlay.css('height', $(document).height()); } $.fancybox.center(true); }; $.fancybox.center = function() { var view, align; if (busy) { return; } align = arguments[0] === true ? 1 : 0; view = _get_viewport(); if (!align && (wrap.width() > view[0] || wrap.height() > view[1])) { return; } wrap .stop() .animate({ 'top' : parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - content.height() - 40) * 0.5) - currentOpts.padding)), 'left' : parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - content.width() - 40) * 0.5) - currentOpts.padding)) }, typeof arguments[0] == 'number' ? arguments[0] : 200); }; $.fancybox.init = function() { if ($("#fancybox-wrap").length) { return; } $('body').append( tmp = $('
    '), loading = $('
    '), overlay = $('
    '), wrap = $('
    ') ); outer = $('
    ') .append('
    ') .appendTo( wrap ); outer.append( content = $('
    '), close = $(''), title = $('
    '), nav_left = $(''), nav_right = $('') ); close.click($.fancybox.close); loading.click($.fancybox.cancel); nav_left.click(function(e) { e.preventDefault(); $.fancybox.prev(); }); nav_right.click(function(e) { e.preventDefault(); $.fancybox.next(); }); if ($.fn.mousewheel) { wrap.bind('mousewheel.fb', function(e, delta) { if (busy) { e.preventDefault(); } else if ($(e.target).get(0).clientHeight == 0 || $(e.target).get(0).scrollHeight === $(e.target).get(0).clientHeight) { e.preventDefault(); $.fancybox[ delta > 0 ? 'prev' : 'next'](); } }); } if (!$.support.opacity) { wrap.addClass('fancybox-ie'); } if (isIE6) { loading.addClass('fancybox-ie6'); wrap.addClass('fancybox-ie6'); $('').prependTo(outer); } }; $.fn.fancybox.defaults = { padding : 10, margin : 40, opacity : false, modal : false, cyclic : false, scrolling : 'auto', // 'auto', 'yes' or 'no' width : 560, height : 340, autoScale : true, autoDimensions : true, centerOnScroll : false, ajax : {}, swf : { wmode: 'transparent' }, hideOnOverlayClick : true, hideOnContentClick : false, overlayShow : true, overlayOpacity : 0.7, overlayColor : '#777', titleShow : true, titlePosition : 'float', // 'float', 'outside', 'inside' or 'over' titleFormat : null, titleFromAlt : false, transitionIn : 'fade', // 'elastic', 'fade' or 'none' transitionOut : 'fade', // 'elastic', 'fade' or 'none' speedIn : 300, speedOut : 300, changeSpeed : 300, changeFade : 'fast', easingIn : 'swing', easingOut : 'swing', showCloseButton : true, showNavArrows : true, enableEscapeButton : true, enableKeyboardNav : true, onStart : function(){}, onCancel : function(){}, onComplete : function(){}, onCleanup : function(){}, onClosed : function(){}, onError : function(){} }; $(document).ready(function() { $.fancybox.init(); }); })(jQuery);jquery-goodies-8/form/000077500000000000000000000000001207406311000151265ustar00rootroot00000000000000jquery-goodies-8/form/jquery.form.js000066400000000000000000001107241207406311000177520ustar00rootroot00000000000000/*! * jQuery Form Plugin * version: 3.09 (16-APR-2012) * @requires jQuery v1.3.2 or later * * Examples and documentation at: http://malsup.com/jquery/form/ * Project repository: https://github.com/malsup/form * Dual licensed under the MIT and GPL licenses: * http://malsup.github.com/mit-license.txt * http://malsup.github.com/gpl-license-v2.txt */ /*global ActiveXObject alert */ ;(function($) { "use strict"; /* Usage Note: ----------- Do not use both ajaxSubmit and ajaxForm on the same form. These functions are mutually exclusive. Use ajaxSubmit if you want to bind your own submit handler to the form. For example, $(document).ready(function() { $('#myForm').on('submit', function(e) { e.preventDefault(); // <-- important $(this).ajaxSubmit({ target: '#output' }); }); }); Use ajaxForm when you want the plugin to manage all the event binding for you. For example, $(document).ready(function() { $('#myForm').ajaxForm({ target: '#output' }); }); You can also use ajaxForm with delegation (requires jQuery v1.7+), so the form does not have to exist when you invoke ajaxForm: $('#myForm').ajaxForm({ delegation: true, target: '#output' }); When using ajaxForm, the ajaxSubmit function will be invoked for you at the appropriate time. */ /** * Feature detection */ var feature = {}; feature.fileapi = $("").get(0).files !== undefined; feature.formdata = window.FormData !== undefined; /** * ajaxSubmit() provides a mechanism for immediately submitting * an HTML form using AJAX. */ $.fn.ajaxSubmit = function(options) { /*jshint scripturl:true */ // fast fail if nothing selected (http://dev.jquery.com/ticket/2752) if (!this.length) { log('ajaxSubmit: skipping submit process - no element selected'); return this; } var method, action, url, $form = this; if (typeof options == 'function') { options = { success: options }; } method = this.attr('method'); action = this.attr('action'); url = (typeof action === 'string') ? $.trim(action) : ''; url = url || window.location.href || ''; if (url) { // clean url (don't include hash vaue) url = (url.match(/^([^#]+)/)||[])[1]; } options = $.extend(true, { url: url, success: $.ajaxSettings.success, type: method || 'GET', iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank' }, options); // hook for manipulating the form data before it is extracted; // convenient for use with rich editors like tinyMCE or FCKEditor var veto = {}; this.trigger('form-pre-serialize', [this, options, veto]); if (veto.veto) { log('ajaxSubmit: submit vetoed via form-pre-serialize trigger'); return this; } // provide opportunity to alter form data before it is serialized if (options.beforeSerialize && options.beforeSerialize(this, options) === false) { log('ajaxSubmit: submit aborted via beforeSerialize callback'); return this; } var traditional = options.traditional; if ( traditional === undefined ) { traditional = $.ajaxSettings.traditional; } var elements = []; var qx, a = this.formToArray(options.semantic, elements); if (options.data) { options.extraData = options.data; qx = $.param(options.data, traditional); } // give pre-submit callback an opportunity to abort the submit if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) { log('ajaxSubmit: submit aborted via beforeSubmit callback'); return this; } // fire vetoable 'validate' event this.trigger('form-submit-validate', [a, this, options, veto]); if (veto.veto) { log('ajaxSubmit: submit vetoed via form-submit-validate trigger'); return this; } var q = $.param(a, traditional); if (qx) { q = ( q ? (q + '&' + qx) : qx ); } if (options.type.toUpperCase() == 'GET') { options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q; options.data = null; // data is null for 'get' } else { options.data = q; // data is the query string for 'post' } var callbacks = []; if (options.resetForm) { callbacks.push(function() { $form.resetForm(); }); } if (options.clearForm) { callbacks.push(function() { $form.clearForm(options.includeHidden); }); } // perform a load on the target only if dataType is not provided if (!options.dataType && options.target) { var oldSuccess = options.success || function(){}; callbacks.push(function(data) { var fn = options.replaceTarget ? 'replaceWith' : 'html'; $(options.target)[fn](data).each(oldSuccess, arguments); }); } else if (options.success) { callbacks.push(options.success); } options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg var context = options.context || options; // jQuery 1.4+ supports scope context for (var i=0, max=callbacks.length; i < max; i++) { callbacks[i].apply(context, [data, status, xhr || $form, $form]); } }; // are there files to upload? var fileInputs = $('input:file:enabled[value]', this); // [value] (issue #113) var hasFileInputs = fileInputs.length > 0; var mp = 'multipart/form-data'; var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp); var fileAPI = feature.fileapi && feature.formdata; log("fileAPI :" + fileAPI); var shouldUseFrame = (hasFileInputs || multipart) && !fileAPI; // options.iframe allows user to force iframe mode // 06-NOV-09: now defaulting to iframe mode if file input is detected if (options.iframe !== false && (options.iframe || shouldUseFrame)) { // hack to fix Safari hang (thanks to Tim Molendijk for this) // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d if (options.closeKeepAlive) { $.get(options.closeKeepAlive, function() { fileUploadIframe(a); }); } else { fileUploadIframe(a); } } else if ((hasFileInputs || multipart) && fileAPI) { fileUploadXhr(a); } else { $.ajax(options); } // clear element array for (var k=0; k < elements.length; k++) elements[k] = null; // fire 'notify' event this.trigger('form-submit-notify', [this, options]); return this; // XMLHttpRequest Level 2 file uploads (big hat tip to francois2metz) function fileUploadXhr(a) { var formdata = new FormData(); for (var i=0; i < a.length; i++) { formdata.append(a[i].name, a[i].value); } if (options.extraData) { for (var p in options.extraData) if (options.extraData.hasOwnProperty(p)) formdata.append(p, options.extraData[p]); } options.data = null; var s = $.extend(true, {}, $.ajaxSettings, options, { contentType: false, processData: false, cache: false, type: 'POST' }); if (options.uploadProgress) { // workaround because jqXHR does not expose upload property s.xhr = function() { var xhr = jQuery.ajaxSettings.xhr(); if (xhr.upload) { xhr.upload.onprogress = function(event) { var percent = 0; var position = event.loaded || event.position; /*event.position is deprecated*/ var total = event.total; if (event.lengthComputable) { percent = Math.ceil(position / total * 100); } options.uploadProgress(event, position, total, percent); }; } return xhr; }; } s.data = null; var beforeSend = s.beforeSend; s.beforeSend = function(xhr, o) { o.data = formdata; if(beforeSend) beforeSend.call(o, xhr, options); }; $.ajax(s); } // private function for handling file uploads (hat tip to YAHOO!) function fileUploadIframe(a) { var form = $form[0], el, i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle; var useProp = !!$.fn.prop; if ($(':input[name=submit],:input[id=submit]', form).length) { // if there is an input with a name or id of 'submit' then we won't be // able to invoke the submit fn on the form (at least not x-browser) alert('Error: Form elements must not have name or id of "submit".'); return; } if (a) { // ensure that every serialized input is still enabled for (i=0; i < elements.length; i++) { el = $(elements[i]); if ( useProp ) el.prop('disabled', false); else el.removeAttr('disabled'); } } s = $.extend(true, {}, $.ajaxSettings, options); s.context = s.context || s; id = 'jqFormIO' + (new Date().getTime()); if (s.iframeTarget) { $io = $(s.iframeTarget); n = $io.attr('name'); if (!n) $io.attr('name', id); else id = n; } else { $io = $('' ); var ihistory = jQuery("#jQuery_history")[0]; var iframe = ihistory.contentWindow.document; iframe.open(); iframe.close(); iframe.location.hash = current_hash; } else if (jQuery.browser.safari) { // etablish back/forward stacks jQuery.historyBackStack = []; jQuery.historyBackStack.length = history.length; jQuery.historyForwardStack = []; jQuery.lastHistoryLength = history.length; jQuery.isFirst = true; } if(current_hash) jQuery.historyCallback(current_hash.replace(/^#/, '')); setInterval(jQuery.historyCheck, 100); }, historyAddHistory: function(hash) { // This makes the looping function do something jQuery.historyBackStack.push(hash); jQuery.historyForwardStack.length = 0; // clear forwardStack (true click occured) this.isFirst = true; }, historyCheck: function(){ // if ((jQuery.browser.msie) && (jQuery.browser.version < 8)) { if (jQuery.browser.msie) { // On IE, check for location.hash of iframe var ihistory = jQuery("#jQuery_history")[0]; var iframe = ihistory.contentDocument || ihistory.contentWindow.document; var current_hash = iframe.location.hash.replace(/\?.*$/, ''); if(current_hash != jQuery.historyCurrentHash) { location.hash = current_hash; jQuery.historyCurrentHash = current_hash; jQuery.historyCallback(current_hash.replace(/^#/, '')); } } else if (jQuery.browser.safari) { if(jQuery.lastHistoryLength == history.length && jQuery.historyBackStack.length > jQuery.lastHistoryLength) { jQuery.historyBackStack.shift(); } if (!jQuery.dontCheck) { var historyDelta = history.length - jQuery.historyBackStack.length; jQuery.lastHistoryLength = history.length; if (historyDelta) { // back or forward button has been pushed jQuery.isFirst = false; if (historyDelta < 0) { // back button has been pushed // move items to forward stack for (var i = 0; i < Math.abs(historyDelta); i++) jQuery.historyForwardStack.unshift(jQuery.historyBackStack.pop()); } else { // forward button has been pushed // move items to back stack for (var i = 0; i < historyDelta; i++) jQuery.historyBackStack.push(jQuery.historyForwardStack.shift()); } var cachedHash = jQuery.historyBackStack[jQuery.historyBackStack.length - 1]; if (cachedHash != undefined) { jQuery.historyCurrentHash = location.hash.replace(/\?.*$/, ''); jQuery.historyCallback(cachedHash); } } else if (jQuery.historyBackStack[jQuery.historyBackStack.length - 1] == undefined && !jQuery.isFirst) { // back button has been pushed to beginning and URL already pointed to hash (e.g. a bookmark) // document.URL doesn't change in Safari if (location.hash) { var current_hash = location.hash; jQuery.historyCallback(location.hash.replace(/^#/, '')); } else { var current_hash = ''; jQuery.historyCallback(''); } jQuery.isFirst = true; } } } else { // otherwise, check for location.hash var current_hash = location.hash.replace(/\?.*$/, ''); if(current_hash != jQuery.historyCurrentHash) { jQuery.historyCurrentHash = current_hash; jQuery.historyCallback(current_hash.replace(/^#/, '')); } } }, historyLoad: function(hash){ var newhash; hash = decodeURIComponent(hash.replace(/\?.*$/, '')); if (jQuery.browser.safari) { newhash = hash; } else { newhash = '#' + hash; location.hash = newhash; } jQuery.historyCurrentHash = newhash; // if ((jQuery.browser.msie) && (jQuery.browser.version < 8)) { if (jQuery.browser.msie) { var ihistory = jQuery("#jQuery_history")[0]; var iframe = ihistory.contentWindow.document; iframe.open(); iframe.close(); iframe.location.hash = newhash; jQuery.lastHistoryLength = history.length; jQuery.historyCallback(hash); } else if (jQuery.browser.safari) { jQuery.dontCheck = true; // Manually keep track of the history values for Safari this.historyAddHistory(hash); // Wait a while before allowing checking so that Safari has time to update the "history" object // correctly (otherwise the check loop would detect a false change in hash). var fn = function() {jQuery.dontCheck = false;}; window.setTimeout(fn, 200); jQuery.historyCallback(hash); // N.B. "location.hash=" must be the last line of code for Safari as execution stops afterwards. // By explicitly using the "location.hash" command (instead of using a variable set to "location.hash") the // URL in the browser and the "history" object are both updated correctly. location.hash = newhash; } else { jQuery.historyCallback(hash); } } }); jquery-goodies-8/jush/000077500000000000000000000000001207406311000151345ustar00rootroot00000000000000jquery-goodies-8/jush/jush.css000066400000000000000000000034541207406311000166250ustar00rootroot00000000000000.jush { color: black; } .jush-htm_com, .jush-com, .jush-one, .jush-php_com, .jush-php_one, .jush-js_one { color: gray; } .jush-php { color: #000033; background-color: #FFF0F0; } .jush-php_quo, .jush-quo, .jush-php_eot, .jush-apo, .jush-py_rlapo, .jush-py_rlquo, .jush-py_rapo, .jush-py_rquo, .jush-py_lapo, .jush-py_lquo, .jush-sql_apo, .jush-sqlite_apo, .jush-sql_quo, .jush-sqlite_quo, .jush-sql_eot { color: green; } .jush-php_apo { color: #009F00; } .jush-php_quo_var, .jush-php_var, .jush-sql_var { font-style: italic; } .jush-php_halt2 { background-color: white; color: black; } .jush-tag_css, .jush-att_css .jush-att_quo, .jush-att_css .jush-att_apo, .jush-att_css .jush-att_val { color: black; background-color: #FFFFE0; } .jush-tag_js, .jush-att_js .jush-att_quo, .jush-att_js .jush-att_apo, .jush-att_js .jush-att_val, .jush-css_js { color: black; background-color: #F0F0FF; } .jush-tag { color: navy; } .jush-att, .jush-att_js, .jush-att_css { color: teal; } .jush-att_quo, .jush-att_apo, .jush-att_val { color: purple; } .jush-ent { color: purple; } .jush-js_reg { color: navy; } .jush-php_sql .jush-php_quo, .jush-php_sql .jush-php_apo, .jush-php_sqlite .jush-php_quo, .jush-php_sqlite .jush-php_apo, .jush-php_pgsql .jush-php_quo, .jush-php_pgsql .jush-php_apo { background-color: #FFBBB0; } .jush-bac, .jush-php_bac, .jush-bra, .jush-pgsql .jush-sqlite_quo { color: red; } .jush-num, .jush-clr { color: #007f7f; } .jush a { color: navy; } .jush-sql a { font-weight: bold; } .jush-tag a, .jush-php_phpini .jush-php_apo a, .jush-php_phpini .jush-php_quo a, .jush-php_sql .jush-php_apo a, .jush-php_sql .jush-php_quo a, .jush-php_sqlite .jush-php_apo a, .jush-php_sqlite .jush-php_quo a, .jush-php_pgsql .jush-php_apo a, .jush-php_pgsql .jush-php_quo a { color: inherit; color: expression(parentNode.currentStyle.color); } jquery-goodies-8/jush/jush.js000066400000000000000000003310571207406311000164540ustar00rootroot00000000000000/** JUSH - JavaScript Syntax Highlighter * @link http://jush.sourceforge.net * @author Jakub Vrana, http://php.vrana.cz * @copyright 2007 Jakub Vrana * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 * @version $Date:: 2009-01-29 12:28:10 +0100#$ */ /* Limitations:

    jQuery mousewheel.js - Test

    • Test1 is just using the plain on mousewheel() with a function passed in and does not prevent default. (Also logs the value of pageX and pageY event properties.)
    • Test2 should prevent the default action.
    • Test3 should only log a mouseover and mouseout event. Testing unmousewheel().
    • Test4 has two handlers.
    • Test5 is like Test2 but has children. The children should not scroll until mousing over them.
    • Test6 is like Test5 but should not scroll children or parents.
    • Test7 is like Test6 but has no children. It will propagate the event and scroll test 6 as well.

    Test1

    Test2

    Test3

    Test4

    Test5

    Test6

    Test7

    jquery-goodies-8/opacityrollover/000077500000000000000000000000001207406311000174205ustar00rootroot00000000000000jquery-goodies-8/opacityrollover/jquery.opacityrollover.js000066400000000000000000000016511207406311000245340ustar00rootroot00000000000000/** * jQuery Opacity Rollover plugin * * Copyright (c) 2009 Trent Foley (http://trentacular.com) * Licensed under the MIT License: * http://www.opensource.org/licenses/mit-license.php */ ;(function($) { var defaults = { mouseOutOpacity: 0.67, mouseOverOpacity: 1.0, fadeSpeed: 'fast', exemptionSelector: '.selected' }; $.fn.opacityrollover = function(settings) { // Initialize the effect $.extend(this, defaults, settings); var config = this; function fadeTo(element, opacity) { var $target = $(element); if (config.exemptionSelector) $target = $target.not(config.exemptionSelector); $target.fadeTo(config.fadeSpeed, opacity); } this.css('opacity', this.mouseOutOpacity) .hover( function () { fadeTo(this, config.mouseOverOpacity); }, function () { fadeTo(this, config.mouseOutOpacity); }); return this; }; })(jQuery); jquery-goodies-8/resize/000077500000000000000000000000001207406311000154645ustar00rootroot00000000000000jquery-goodies-8/resize/LICENSE-GPL000066400000000000000000000353721207406311000171230ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.jquery-goodies-8/resize/LICENSE-MIT000066400000000000000000000020461207406311000171220ustar00rootroot00000000000000Copyright (c) 2010 "Cowboy" Ben Alman Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. jquery-goodies-8/resize/README.markdown000066400000000000000000000037321207406311000201720ustar00rootroot00000000000000# jQuery resize event # [http://benalman.com/projects/jquery-resize-plugin/](http://benalman.com/projects/jquery-resize-plugin/) Version: 1.1, Last updated: 3/14/2010 With jQuery resize event, you can bind resize event handlers to elements other than window, for super-awesome-resizing-greatness! Note that while this plugin works in jQuery 1.3.2, if an element's event callbacks are manually triggered via .trigger( 'resize' ) or .resize() those callbacks may double-fire, due to limitations in the jQuery 1.3.2 special events system. This is not an issue when using jQuery 1.4+. Visit the [project page](http://benalman.com/projects/jquery-resize-plugin/) for more information and usage examples! ## Documentation ## [http://benalman.com/code/projects/jquery-resize/docs/](http://benalman.com/code/projects/jquery-resize/docs/) ## Examples ## This working example, complete with fully commented code, illustrates a few ways in which this plugin can be used. [http://benalman.com/code/projects/jquery-resize/examples/resize/](http://benalman.com/code/projects/jquery-resize/examples/resize/) ## Support and Testing ## Information about what version or versions of jQuery this plugin has been tested with, what browsers it has been tested in, and where the unit tests reside (so you can test it yourself). ### jQuery Versions ### 1.3.2, 1.4.1, 1.4.2 ### Browsers Tested ### Internet Explorer 6-8, Firefox 2-3.6, Safari 3-4, Chrome, Opera 9.6-10.1. ### Unit Tests ### [http://benalman.com/code/projects/jquery-resize/unit/](http://benalman.com/code/projects/jquery-resize/unit/) ## Release History ## 1.1 - (3/14/2010) Fixed a minor bug that was causing the event to trigger immediately after bind in some circumstances. Also changed $.fn.data to $.data to improve performance. 1.0 - (2/10/2010) Initial release ## License ## Copyright (c) 2010 "Cowboy" Ben Alman Dual licensed under the MIT and GPL licenses. [http://benalman.com/about/license/](http://benalman.com/about/license/) jquery-goodies-8/resize/docs/000077500000000000000000000000001207406311000164145ustar00rootroot00000000000000jquery-goodies-8/resize/docs/files/000077500000000000000000000000001207406311000175165ustar00rootroot00000000000000jquery-goodies-8/resize/docs/files/jquery-ba-resize-js.html000066400000000000000000000274501207406311000242240ustar00rootroot00000000000000 jQuery resize event

    jQuery resize event

    Version: 1.1, Last updated: 3/14/2010

    Project Homehttp://benalman.com/projects/jquery-resize-plugin/
    GitHubhttp://github.com/cowboy/jquery-resize/
    Sourcehttp://github.com/cowboy/jquery-resize/raw/master/jquery.ba-resize.js
    (Minified)http://github.com/cowboy/jquery-resize/raw/master/jquery.ba-resize.min.js (1.0kb)
    Summary
    jQuery resize eventVersion: 1.1, Last updated: 3/14/2010
    LicenseCopyright © 2010 “Cowboy” Ben Alman, Dual licensed under the MIT and GPL licenses.
    ExamplesThis working example, complete with fully commented code, illustrates a few ways in which this plugin can be used.
    Support and TestingInformation about what version or versions of jQuery this plugin has been tested with, what browsers it has been tested in, and where the unit tests reside (so you can test it yourself).
    Release History
    Properties
    jQuery.resize.delayThe numeric interval (in milliseconds) at which the resize event polling loop executes.
    jQuery.resize.throttleWindowThrottle the native window object resize event to fire no more than once every jQuery.resize.delay milliseconds.
    Events
    resize eventFired when an element’s width or height changes.

    License

    Copyright © 2010 “Cowboy” Ben Alman, Dual licensed under the MIT and GPL licenses.  http://benalman.com/about/license/

    Examples

    This working example, complete with fully commented code, illustrates a few ways in which this plugin can be used.

    resize eventhttp://benalman.com/code/projects/jquery-resize/examples/resize/

    Support and Testing

    Information about what version or versions of jQuery this plugin has been tested with, what browsers it has been tested in, and where the unit tests reside (so you can test it yourself).

    jQuery Versions1.3.2, 1.4.1, 1.4.2
    Browsers TestedInternet Explorer 6-8, Firefox 2-3.6, Safari 3-4, Chrome, Opera 9.6-10.1.
    Unit Testshttp://benalman.com/code/projects/jquery-resize/unit/

    Release History

    1.1(3/14/2010) Fixed a minor bug that was causing the event to trigger immediately after bind in some circumstances.  Also changed $.fn.data to $.data to improve performance.
    1.0(2/10/2010) Initial release

    Properties

    jQuery.resize.delay

    The numeric interval (in milliseconds) at which the resize event polling loop executes.  Defaults to 250.

    jQuery.resize.throttleWindow

    Throttle the native window object resize event to fire no more than once every jQuery.resize.delay milliseconds.  Defaults to true.

    Because the window object has its own resize event, it doesn’t need to be provided by this plugin, and its execution can be left entirely up to the browser.  However, since certain browsers fire the resize event continuously while others do not, enabling this will throttle the window resize event, making event behavior consistent across all elements in all browsers.

    While setting this property to false will disable window object resize event throttling, please note that this property must be changed before any window object resize event callbacks are bound.

    Events

    resize event

    Fired when an element’s width or height changes.  Because browsers only provide this event for the window element, for other elements a polling loop is initialized, running every jQuery.resize.delay milliseconds to see if elements’ dimensions have changed.  You may bind with either .resize( fn ) or .bind( “resize”, fn ), and unbind with .unbind( “resize” ).

    Usage

    jQuery('selector').bind( 'resize', function(e) {
      // element's width or height has changed!
      ...
    });

    Additional Notes

    • The polling loop is not created until at least one callback is actually bound to the ‘resize’ event, and this single polling loop is shared across all elements.

    Double firing issue in jQuery 1.3.2

    While this plugin works in jQuery 1.3.2, if an element’s event callbacks are manually triggered via .trigger( ‘resize’ ) or .resize() those callbacks may double-fire, due to limitations in the jQuery 1.3.2 special events system.  This is not an issue when using jQuery 1.4+.

    // While this works in jQuery 1.4+
    $(elem).css({ width: new_w, height: new_h }).resize();
    
    // In jQuery 1.3.2, you need to do this:
    var elem = $(elem);
    elem.css({ width: new_w, height: new_h });
    elem.data( 'resize-special-event', { width: elem.width(), height: elem.height() } );
    elem.resize();
    The numeric interval (in milliseconds) at which the resize event polling loop executes.
    jquery-goodies-8/resize/docs/index.html000066400000000000000000000001451207406311000204110ustar00rootroot00000000000000jquery-goodies-8/resize/docs/index/000077500000000000000000000000001207406311000175235ustar00rootroot00000000000000jquery-goodies-8/resize/docs/index/Events.html000066400000000000000000000066461207406311000216710ustar00rootroot00000000000000 Event Index
    Event Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    R
     resize event
    Fired when an element’s width or height changes.
    jquery-goodies-8/resize/docs/index/Files.html000066400000000000000000000066471207406311000214700ustar00rootroot00000000000000 File Index
    File Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    J
     jQuery resize event
    Version: 1.1, Last updated: 3/14/2010
    jquery-goodies-8/resize/docs/index/General.html000066400000000000000000000165741207406311000220030ustar00rootroot00000000000000 Index
    Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    D
     delay, jQuery.resize
    E
     Events
     Examples
    J
     jQuery resize event
    L
     License
    P
     Properties
    R
     Release History
     resize event
    S
     Support and Testing
    T
     throttleWindow, jQuery.resize
    The numeric interval (in milliseconds) at which the resize event polling loop executes.
    This working example, complete with fully commented code, illustrates a few ways in which this plugin can be used.
    Version: 1.1, Last updated: 3/14/2010
    Copyright © 2010 “Cowboy” Ben Alman, Dual licensed under the MIT and GPL licenses.
    Fired when an element’s width or height changes.
    Information about what version or versions of jQuery this plugin has been tested with, what browsers it has been tested in, and where the unit tests reside (so you can test it yourself).
    Throttle the native window object resize event to fire no more than once every jQuery.resize.delay milliseconds.
    jquery-goodies-8/resize/docs/index/Properties.html000066400000000000000000000101511207406311000225430ustar00rootroot00000000000000 Property Index
    Property Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    D
     delay, jQuery.resize
    T
     throttleWindow, jQuery.resize
    The numeric interval (in milliseconds) at which the resize event polling loop executes.
    Throttle the native window object resize event to fire no more than once every jQuery.resize.delay milliseconds.
    jquery-goodies-8/resize/docs/javascript/000077500000000000000000000000001207406311000205625ustar00rootroot00000000000000jquery-goodies-8/resize/docs/javascript/main.js000066400000000000000000000614021207406311000220470ustar00rootroot00000000000000// This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure // Natural Docs is licensed under the GPL // // Browser Styles // ____________________________________________________________________________ var agt=navigator.userAgent.toLowerCase(); var browserType; var browserVer; if (agt.indexOf("opera") != -1) { browserType = "Opera"; if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1) { browserVer = "Opera7"; } else if (agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1) { browserVer = "Opera8"; } else if (agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1) { browserVer = "Opera9"; } } else if (agt.indexOf("applewebkit") != -1) { browserType = "Safari"; if (agt.indexOf("version/3") != -1) { browserVer = "Safari3"; } else if (agt.indexOf("safari/4") != -1) { browserVer = "Safari2"; } } else if (agt.indexOf("khtml") != -1) { browserType = "Konqueror"; } else if (agt.indexOf("msie") != -1) { browserType = "IE"; if (agt.indexOf("msie 6") != -1) { browserVer = "IE6"; } else if (agt.indexOf("msie 7") != -1) { browserVer = "IE7"; } } else if (agt.indexOf("gecko") != -1) { browserType = "Firefox"; if (agt.indexOf("rv:1.7") != -1) { browserVer = "Firefox1"; } else if (agt.indexOf("rv:1.8)") != -1 || agt.indexOf("rv:1.8.0") != -1) { browserVer = "Firefox15"; } else if (agt.indexOf("rv:1.8.1") != -1) { browserVer = "Firefox2"; } } // // Support Functions // ____________________________________________________________________________ function GetXPosition(item) { var position = 0; if (item.offsetWidth != null) { while (item != document.body && item != null) { position += item.offsetLeft; item = item.offsetParent; }; }; return position; }; function GetYPosition(item) { var position = 0; if (item.offsetWidth != null) { while (item != document.body && item != null) { position += item.offsetTop; item = item.offsetParent; }; }; return position; }; function MoveToPosition(item, x, y) { // Opera 5 chokes on the px extension, so it can use the Microsoft one instead. if (item.style.left != null) { item.style.left = x + "px"; item.style.top = y + "px"; } else if (item.style.pixelLeft != null) { item.style.pixelLeft = x; item.style.pixelTop = y; }; }; // // Menu // ____________________________________________________________________________ function ToggleMenu(id) { if (!window.document.getElementById) { return; }; var display = window.document.getElementById(id).style.display; if (display == "none") { display = "block"; } else { display = "none"; } window.document.getElementById(id).style.display = display; } function HideAllBut(ids, max) { if (document.getElementById) { ids.sort( function(a,b) { return a - b; } ); var number = 1; while (number < max) { if (ids.length > 0 && number == ids[0]) { ids.shift(); } else { document.getElementById("MGroupContent" + number).style.display = "none"; }; number++; }; }; } // // Tooltips // ____________________________________________________________________________ var tooltipTimer = 0; function ShowTip(event, tooltipID, linkID) { if (tooltipTimer) { clearTimeout(tooltipTimer); }; var docX = event.clientX + window.pageXOffset; var docY = event.clientY + window.pageYOffset; var showCommand = "ReallyShowTip('" + tooltipID + "', '" + linkID + "', " + docX + ", " + docY + ")"; tooltipTimer = setTimeout(showCommand, 1000); } function ReallyShowTip(tooltipID, linkID, docX, docY) { tooltipTimer = 0; var tooltip; var link; if (document.getElementById) { tooltip = document.getElementById(tooltipID); link = document.getElementById(linkID); } /* else if (document.all) { tooltip = eval("document.all['" + tooltipID + "']"); link = eval("document.all['" + linkID + "']"); } */ if (tooltip) { var left = GetXPosition(link); var top = GetYPosition(link); top += link.offsetHeight; // The fallback method is to use the mouse X and Y relative to the document. We use a separate if and test if its a number // in case some browser snuck through the above if statement but didn't support everything. if (!isFinite(top) || top == 0) { left = docX; top = docY; } // Some spacing to get it out from under the cursor. top += 10; // Make sure the tooltip doesnt get smushed by being too close to the edge, or in some browsers, go off the edge of the // page. We do it here because Konqueror does get offsetWidth right even if it doesnt get the positioning right. if (tooltip.offsetWidth != null) { var width = tooltip.offsetWidth; var docWidth = document.body.clientWidth; if (left + width > docWidth) { left = docWidth - width - 1; } // If there's a horizontal scroll bar we could go past zero because it's using the page width, not the window width. if (left < 0) { left = 0; }; } MoveToPosition(tooltip, left, top); tooltip.style.visibility = "visible"; } } function HideTip(tooltipID) { if (tooltipTimer) { clearTimeout(tooltipTimer); tooltipTimer = 0; } var tooltip; if (document.getElementById) { tooltip = document.getElementById(tooltipID); } else if (document.all) { tooltip = eval("document.all['" + tooltipID + "']"); } if (tooltip) { tooltip.style.visibility = "hidden"; } } // // Blockquote fix for IE // ____________________________________________________________________________ function NDOnLoad() { if (browserVer == "IE6") { var scrollboxes = document.getElementsByTagName('blockquote'); if (scrollboxes.item(0)) { NDDoResize(); window.onresize=NDOnResize; }; }; }; var resizeTimer = 0; function NDOnResize() { if (resizeTimer != 0) { clearTimeout(resizeTimer); }; resizeTimer = setTimeout(NDDoResize, 250); }; function NDDoResize() { var scrollboxes = document.getElementsByTagName('blockquote'); var i; var item; i = 0; while (item = scrollboxes.item(i)) { item.style.width = 100; i++; }; i = 0; while (item = scrollboxes.item(i)) { item.style.width = item.parentNode.offsetWidth; i++; }; clearTimeout(resizeTimer); resizeTimer = 0; } /* ________________________________________________________________________________________________________ Class: SearchPanel ________________________________________________________________________________________________________ A class handling everything associated with the search panel. Parameters: name - The name of the global variable that will be storing this instance. Is needed to be able to set timeouts. mode - The mode the search is going to work in. Pass CommandLineOption()>, so the value will be something like "HTML" or "FramedHTML". ________________________________________________________________________________________________________ */ function SearchPanel(name, mode, resultsPath) { if (!name || !mode || !resultsPath) { alert("Incorrect parameters to SearchPanel."); }; // Group: Variables // ________________________________________________________________________ /* var: name The name of the global variable that will be storing this instance of the class. */ this.name = name; /* var: mode The mode the search is going to work in, such as "HTML" or "FramedHTML". */ this.mode = mode; /* var: resultsPath The relative path from the current HTML page to the results page directory. */ this.resultsPath = resultsPath; /* var: keyTimeout The timeout used between a keystroke and when a search is performed. */ this.keyTimeout = 0; /* var: keyTimeoutLength The length of in thousandths of a second. */ this.keyTimeoutLength = 500; /* var: lastSearchValue The last search string executed, or an empty string if none. */ this.lastSearchValue = ""; /* var: lastResultsPage The last results page. The value is only relevant if is set. */ this.lastResultsPage = ""; /* var: deactivateTimeout The timeout used between when a control is deactivated and when the entire panel is deactivated. Is necessary because a control may be deactivated in favor of another control in the same panel, in which case it should stay active. */ this.deactivateTimout = 0; /* var: deactivateTimeoutLength The length of in thousandths of a second. */ this.deactivateTimeoutLength = 200; // Group: DOM Elements // ________________________________________________________________________ // Function: DOMSearchField this.DOMSearchField = function() { return document.getElementById("MSearchField"); }; // Function: DOMSearchType this.DOMSearchType = function() { return document.getElementById("MSearchType"); }; // Function: DOMPopupSearchResults this.DOMPopupSearchResults = function() { return document.getElementById("MSearchResults"); }; // Function: DOMPopupSearchResultsWindow this.DOMPopupSearchResultsWindow = function() { return document.getElementById("MSearchResultsWindow"); }; // Function: DOMSearchPanel this.DOMSearchPanel = function() { return document.getElementById("MSearchPanel"); }; // Group: Event Handlers // ________________________________________________________________________ /* Function: OnSearchFieldFocus Called when focus is added or removed from the search field. */ this.OnSearchFieldFocus = function(isActive) { this.Activate(isActive); }; /* Function: OnSearchFieldChange Called when the content of the search field is changed. */ this.OnSearchFieldChange = function() { if (this.keyTimeout) { clearTimeout(this.keyTimeout); this.keyTimeout = 0; }; var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); if (searchValue != this.lastSearchValue) { if (searchValue != "") { this.keyTimeout = setTimeout(this.name + ".Search()", this.keyTimeoutLength); } else { if (this.mode == "HTML") { this.DOMPopupSearchResultsWindow().style.display = "none"; }; this.lastSearchValue = ""; }; }; }; /* Function: OnSearchTypeFocus Called when focus is added or removed from the search type. */ this.OnSearchTypeFocus = function(isActive) { this.Activate(isActive); }; /* Function: OnSearchTypeChange Called when the search type is changed. */ this.OnSearchTypeChange = function() { var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); if (searchValue != "") { this.Search(); }; }; // Group: Action Functions // ________________________________________________________________________ /* Function: CloseResultsWindow Closes the results window. */ this.CloseResultsWindow = function() { this.DOMPopupSearchResultsWindow().style.display = "none"; this.Activate(false, true); }; /* Function: Search Performs a search. */ this.Search = function() { this.keyTimeout = 0; var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); var searchTopic = this.DOMSearchType().value; var pageExtension = searchValue.substr(0,1); if (pageExtension.match(/^[a-z]/i)) { pageExtension = pageExtension.toUpperCase(); } else if (pageExtension.match(/^[0-9]/)) { pageExtension = 'Numbers'; } else { pageExtension = "Symbols"; }; var resultsPage; var resultsPageWithSearch; var hasResultsPage; // indexSectionsWithContent is defined in searchdata.js if (indexSectionsWithContent[searchTopic][pageExtension] == true) { resultsPage = this.resultsPath + '/' + searchTopic + pageExtension + '.html'; resultsPageWithSearch = resultsPage+'?'+escape(searchValue); hasResultsPage = true; } else { resultsPage = this.resultsPath + '/NoResults.html'; resultsPageWithSearch = resultsPage; hasResultsPage = false; }; var resultsFrame; if (this.mode == "HTML") { resultsFrame = window.frames.MSearchResults; } else if (this.mode == "FramedHTML") { resultsFrame = window.top.frames['Content']; }; if (resultsPage != this.lastResultsPage || // Bug in IE. If everything becomes hidden in a run, none of them will be able to be reshown in the next for some // reason. It counts the right number of results, and you can even read the display as "block" after setting it, but it // just doesn't work in IE 6 or IE 7. So if we're on the right page but the previous search had no results, reload the // page anyway to get around the bug. (browserType == "IE" && hasResultsPage && (!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) ) { resultsFrame.location.href = resultsPageWithSearch; } // So if the results page is right and there's no IE bug, reperform the search on the existing page. We have to check if there // are results because NoResults.html doesn't have any JavaScript, and it would be useless to do anything on that page even // if it did. else if (hasResultsPage) { // We need to check if this exists in case the frame is present but didn't finish loading. if (resultsFrame.searchResults) { resultsFrame.searchResults.Search(searchValue); } // Otherwise just reload instead of waiting. else { resultsFrame.location.href = resultsPageWithSearch; }; }; var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); if (this.mode == "HTML" && domPopupSearchResultsWindow.style.display != "block") { var domSearchType = this.DOMSearchType(); var left = GetXPosition(domSearchType); var top = GetYPosition(domSearchType) + domSearchType.offsetHeight; MoveToPosition(domPopupSearchResultsWindow, left, top); domPopupSearchResultsWindow.style.display = 'block'; }; this.lastSearchValue = searchValue; this.lastResultsPage = resultsPage; }; // Group: Activation Functions // Functions that handle whether the entire panel is active or not. // ________________________________________________________________________ /* Function: Activate Activates or deactivates the search panel, resetting things to their default values if necessary. You can call this on every control's OnBlur() and it will handle not deactivating the entire panel when focus is just switching between them transparently. Parameters: isActive - Whether you're activating or deactivating the panel. ignoreDeactivateDelay - Set if you're positive the action will deactivate the panel and thus want to skip the delay. */ this.Activate = function(isActive, ignoreDeactivateDelay) { // We want to ignore isActive being false while the results window is open. if (isActive || (this.mode == "HTML" && this.DOMPopupSearchResultsWindow().style.display == "block")) { if (this.inactivateTimeout) { clearTimeout(this.inactivateTimeout); this.inactivateTimeout = 0; }; this.DOMSearchPanel().className = 'MSearchPanelActive'; var searchField = this.DOMSearchField(); if (searchField.value == 'Search') { searchField.value = ""; } } else if (!ignoreDeactivateDelay) { this.inactivateTimeout = setTimeout(this.name + ".InactivateAfterTimeout()", this.inactivateTimeoutLength); } else { this.InactivateAfterTimeout(); }; }; /* Function: InactivateAfterTimeout Called by , which is set by . Inactivation occurs on a timeout because a control may receive OnBlur() when focus is really transferring to another control in the search panel. In this case we don't want to actually deactivate the panel because not only would that cause a visible flicker but it could also reset the search value. So by doing it on a timeout instead, there's a short period where the second control's OnFocus() can cancel the deactivation. */ this.InactivateAfterTimeout = function() { this.inactivateTimeout = 0; this.DOMSearchPanel().className = 'MSearchPanelInactive'; this.DOMSearchField().value = "Search"; this.lastSearchValue = ""; this.lastResultsPage = ""; }; }; /* ________________________________________________________________________________________________________ Class: SearchResults _________________________________________________________________________________________________________ The class that handles everything on the search results page. _________________________________________________________________________________________________________ */ function SearchResults(name, mode) { /* var: mode The mode the search is going to work in, such as "HTML" or "FramedHTML". */ this.mode = mode; /* var: lastMatchCount The number of matches from the last run of . */ this.lastMatchCount = 0; /* Function: Toggle Toggles the visibility of the passed element ID. */ this.Toggle = function(id) { if (this.mode == "FramedHTML") { return; }; var parentElement = document.getElementById(id); var element = parentElement.firstChild; while (element && element != parentElement) { if (element.nodeName == 'DIV' && element.className == 'ISubIndex') { if (element.style.display == 'block') { element.style.display = "none"; } else { element.style.display = 'block'; } }; if (element.nodeName == 'DIV' && element.hasChildNodes()) { element = element.firstChild; } else if (element.nextSibling) { element = element.nextSibling; } else { do { element = element.parentNode; } while (element && element != parentElement && !element.nextSibling); if (element && element != parentElement) { element = element.nextSibling; }; }; }; }; /* Function: Search Searches for the passed string. If there is no parameter, it takes it from the URL query. Always returns true, since other documents may try to call it and that may or may not be possible. */ this.Search = function(search) { if (!search) { search = window.location.search; search = search.substring(1); // Remove the leading ? search = unescape(search); }; search = search.replace(/^ +/, ""); search = search.replace(/ +$/, ""); search = search.toLowerCase(); if (search.match(/[^a-z0-9]/)) // Just a little speedup so it doesn't have to go through the below unnecessarily. { search = search.replace(/\_/g, "_und"); search = search.replace(/\ +/gi, "_spc"); search = search.replace(/\~/g, "_til"); search = search.replace(/\!/g, "_exc"); search = search.replace(/\@/g, "_att"); search = search.replace(/\#/g, "_num"); search = search.replace(/\$/g, "_dol"); search = search.replace(/\%/g, "_pct"); search = search.replace(/\^/g, "_car"); search = search.replace(/\&/g, "_amp"); search = search.replace(/\*/g, "_ast"); search = search.replace(/\(/g, "_lpa"); search = search.replace(/\)/g, "_rpa"); search = search.replace(/\-/g, "_min"); search = search.replace(/\+/g, "_plu"); search = search.replace(/\=/g, "_equ"); search = search.replace(/\{/g, "_lbc"); search = search.replace(/\}/g, "_rbc"); search = search.replace(/\[/g, "_lbk"); search = search.replace(/\]/g, "_rbk"); search = search.replace(/\:/g, "_col"); search = search.replace(/\;/g, "_sco"); search = search.replace(/\"/g, "_quo"); search = search.replace(/\'/g, "_apo"); search = search.replace(/\/g, "_ran"); search = search.replace(/\,/g, "_com"); search = search.replace(/\./g, "_per"); search = search.replace(/\?/g, "_que"); search = search.replace(/\//g, "_sla"); search = search.replace(/[^a-z0-9\_]i/gi, "_zzz"); }; var resultRows = document.getElementsByTagName("div"); var matches = 0; var i = 0; while (i < resultRows.length) { var row = resultRows.item(i); if (row.className == "SRResult") { var rowMatchName = row.id.toLowerCase(); rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); if (search.length <= rowMatchName.length && rowMatchName.substr(0, search.length) == search) { row.style.display = "block"; matches++; } else { row.style.display = "none"; }; }; i++; }; document.getElementById("Searching").style.display="none"; if (matches == 0) { document.getElementById("NoMatches").style.display="block"; } else { document.getElementById("NoMatches").style.display="none"; } this.lastMatchCount = matches; return true; }; }; jquery-goodies-8/resize/docs/javascript/searchdata.js000066400000000000000000000042131207406311000232170ustar00rootroot00000000000000var indexSectionsWithContent = { "General": { "Symbols": false, "Numbers": false, "A": false, "B": false, "C": false, "D": false, "E": true, "F": false, "G": false, "H": false, "I": false, "J": true, "K": false, "L": true, "M": false, "N": false, "O": false, "P": false, "Q": false, "R": true, "S": true, "T": false, "U": false, "V": false, "W": false, "X": false, "Y": false, "Z": false }, "Files": { "Symbols": false, "Numbers": false, "A": false, "B": false, "C": false, "D": false, "E": false, "F": false, "G": false, "H": false, "I": false, "J": true, "K": false, "L": false, "M": false, "N": false, "O": false, "P": false, "Q": false, "R": false, "S": false, "T": false, "U": false, "V": false, "W": false, "X": false, "Y": false, "Z": false }, "Events": { "Symbols": false, "Numbers": false, "A": false, "B": false, "C": false, "D": false, "E": false, "F": false, "G": false, "H": false, "I": false, "J": false, "K": false, "L": false, "M": false, "N": false, "O": false, "P": false, "Q": false, "R": true, "S": false, "T": false, "U": false, "V": false, "W": false, "X": false, "Y": false, "Z": false }, "Properties": { "Symbols": false, "Numbers": false, "A": false, "B": false, "C": false, "D": true, "E": false, "F": false, "G": false, "H": false, "I": false, "J": false, "K": false, "L": false, "M": false, "N": false, "O": false, "P": false, "Q": false, "R": false, "S": false, "T": true, "U": false, "V": false, "W": false, "X": false, "Y": false, "Z": false } }jquery-goodies-8/resize/docs/nd/000077500000000000000000000000001207406311000170155ustar00rootroot00000000000000jquery-goodies-8/resize/docs/nd/Data/000077500000000000000000000000001207406311000176665ustar00rootroot00000000000000jquery-goodies-8/resize/docs/nd/Data/ClassHierarchy.nd000066400000000000000000000000071207406311000231120ustar00rootroot00000000000000(jquery-goodies-8/resize/docs/nd/Data/ConfigFileInfo.nd000066400000000000000000000000321207406311000230250ustar00rootroot00000000000000(Kn$K0K0K0K0jquery-goodies-8/resize/docs/nd/Data/FileInfo.nd000066400000000000000000000003251207406311000217040ustar00rootroot000000000000001.4 JavaScript /srv/projects/jquery-resize/jquery.ba-resize.min.js 1268597721 0 /srv/projects/jquery-resize/jquery.ba-resize.min.js /srv/projects/jquery-resize/jquery.ba-resize.js 1268597210 1 jQuery resize event jquery-goodies-8/resize/docs/nd/Data/ImageFileInfo.nd000066400000000000000000000000101207406311000226360ustar00rootroot00000000000000(jquery-goodies-8/resize/docs/nd/Data/ImageReferenceTable.nd000066400000000000000000000000101207406311000240110ustar00rootroot00000000000000(jquery-goodies-8/resize/docs/nd/Data/IndexInfo.nd000066400000000000000000000002261207406311000220740ustar00rootroot00000000000000(GeneralFileEventPropertyjquery-goodies-8/resize/docs/nd/Data/PreviousMenuState.nd000066400000000000000000000002421207406311000236510ustar00rootroot00000000000000(jQuery resize event//srv/projects/jquery-resize/jquery.ba-resize.jsIndex EverythinggeneralEventseventFilesfile Propertiespropertyjquery-goodies-8/resize/docs/nd/Data/PreviousSettings.nd000066400000000000000000000001261207406311000235450ustar00rootroot00000000000000(/srv/projects/jquery-resize1 /srv/projects/jquery-resize/docsHTMLjquery-goodies-8/resize/docs/nd/Data/SymbolTable.nd000066400000000000000000000032211207406311000224240ustar00rootroot00000000000000(Examples//srv/projects/jquery-resize/jquery.ba-resize.jsgenericrThis working example, complete with fully commented code, illustrates a few ways in which this plugin can be used.jQueryresizethrottleWindow//srv/projects/jquery-resize/jquery.ba-resize.jspropertyThrottle the native window object resize event to fire no more than once every milliseconds. jQuery resize event//srv/projects/jquery-resize/jquery.ba-resize.jsfile,Version: 1.1, Last updated: 3/14/2010Release History//srv/projects/jquery-resize/jquery.ba-resize.jsgenericSupport and Testing//srv/projects/jquery-resize/jquery.ba-resize.jsgenericInformation about what version or versions of jQuery this plugin has been tested with, what browsers it has been tested in, and where the unit tests reside (so you can test it yourself).License//srv/projects/jquery-resize/jquery.ba-resize.jsgeneric_Copyright (c) 2010 "Cowboy" Ben Alman, Dual licensed under the MIT and GPL licenses. Events//srv/projects/jquery-resize/jquery.ba-resize.jsgroup resize event//srv/projects/jquery-resize/jquery.ba-resize.jsevent1Fired when an element's width or height changes.  Properties//srv/projects/jquery-resize/jquery.ba-resize.jsgroupjQueryresizedelay//srv/projects/jquery-resize/jquery.ba-resize.jspropertyXThe numeric interval (in milliseconds) at which the resize event polling loop executes. jQueryresizedelay JavaScript//srv/projects/jquery-resize/jquery.ba-resize.jsjquery-goodies-8/resize/docs/nd/Languages.txt000066400000000000000000000115001207406311000214610ustar00rootroot00000000000000Format: 1.4 # This is the Natural Docs languages file for this project. If you change # anything here, it will apply to THIS PROJECT ONLY. If you'd like to change # something for all your projects, edit the Languages.txt in Natural Docs' # Config directory instead. # You can prevent certain file extensions from being scanned like this: # Ignore Extensions: [extension] [extension] ... #------------------------------------------------------------------------------- # SYNTAX: # # Unlike other Natural Docs configuration files, in this file all comments # MUST be alone on a line. Some languages deal with the # character, so you # cannot put comments on the same line as content. # # Also, all lists are separated with spaces, not commas, again because some # languages may need to use them. # # Language: [name] # Alter Language: [name] # Defines a new language or alters an existing one. Its name can use any # characters. If any of the properties below have an add/replace form, you # must use that when using Alter Language. # # The language Shebang Script is special. It's entry is only used for # extensions, and files with those extensions have their shebang (#!) lines # read to determine the real language of the file. Extensionless files are # always treated this way. # # The language Text File is also special. It's treated as one big comment # so you can put Natural Docs content in them without special symbols. Also, # if you don't specify a package separator, ignored prefixes, or enum value # behavior, it will copy those settings from the language that is used most # in the source tree. # # Extensions: [extension] [extension] ... # [Add/Replace] Extensions: [extension] [extension] ... # Defines the file extensions of the language's source files. You can # redefine extensions found in the main languages file. You can use * to # mean any undefined extension. # # Shebang Strings: [string] [string] ... # [Add/Replace] Shebang Strings: [string] [string] ... # Defines a list of strings that can appear in the shebang (#!) line to # designate that it's part of the language. You can redefine strings found # in the main languages file. # # Ignore Prefixes in Index: [prefix] [prefix] ... # [Add/Replace] Ignored Prefixes in Index: [prefix] [prefix] ... # # Ignore [Topic Type] Prefixes in Index: [prefix] [prefix] ... # [Add/Replace] Ignored [Topic Type] Prefixes in Index: [prefix] [prefix] ... # Specifies prefixes that should be ignored when sorting symbols in an # index. Can be specified in general or for a specific topic type. # #------------------------------------------------------------------------------ # For basic language support only: # # Line Comments: [symbol] [symbol] ... # Defines a space-separated list of symbols that are used for line comments, # if any. # # Block Comments: [opening sym] [closing sym] [opening sym] [closing sym] ... # Defines a space-separated list of symbol pairs that are used for block # comments, if any. # # Package Separator: [symbol] # Defines the default package separator symbol. The default is a dot. # # [Topic Type] Prototype Enders: [symbol] [symbol] ... # When defined, Natural Docs will attempt to get a prototype from the code # immediately following the topic type. It stops when it reaches one of # these symbols. Use \n for line breaks. # # Line Extender: [symbol] # Defines the symbol that allows a prototype to span multiple lines if # normally a line break would end it. # # Enum Values: [global|under type|under parent] # Defines how enum values are referenced. The default is global. # global - Values are always global, referenced as 'value'. # under type - Values are under the enum type, referenced as # 'package.enum.value'. # under parent - Values are under the enum's parent, referenced as # 'package.value'. # # Perl Package: [perl package] # Specifies the Perl package used to fine-tune the language behavior in ways # too complex to do in this file. # #------------------------------------------------------------------------------ # For full language support only: # # Full Language Support: [perl package] # Specifies the Perl package that has the parsing routines necessary for full # language support. # #------------------------------------------------------------------------------- # The following languages are defined in the main file, if you'd like to alter # them: # # Text File, Shebang Script, C/C++, C#, Java, JavaScript, Perl, Python, # PHP, SQL, Visual Basic, Pascal, Assembly, Ada, Tcl, Ruby, Makefile, # ActionScript, ColdFusion, R, Fortran # If you add a language that you think would be useful to other developers # and should be included in Natural Docs by default, please e-mail it to # languages [at] naturaldocs [dot] org. jquery-goodies-8/resize/docs/nd/Menu.txt000066400000000000000000000036741207406311000204740ustar00rootroot00000000000000Format: 1.4 # You can add a title and sub-title to your menu like this: # Title: [project name] # SubTitle: [subtitle] # You can add a footer to your documentation like this: # Footer: [text] # If you want to add a copyright notice, this would be the place to do it. # You can add a timestamp to your documentation like one of these: # Timestamp: Generated on month day, year # Timestamp: Updated mm/dd/yyyy # Timestamp: Last updated mon day # # m - One or two digit month. January is "1" # mm - Always two digit month. January is "01" # mon - Short month word. January is "Jan" # month - Long month word. January is "January" # d - One or two digit day. 1 is "1" # dd - Always two digit day. 1 is "01" # day - Day with letter extension. 1 is "1st" # yy - Two digit year. 2006 is "06" # yyyy - Four digit year. 2006 is "2006" # year - Four digit year. 2006 is "2006" # -------------------------------------------------------------------------- # # Cut and paste the lines below to change the order in which your files # appear on the menu. Don't worry about adding or removing files, Natural # Docs will take care of that. # # You can further organize the menu by grouping the entries. Add a # "Group: [name] {" line to start a group, and add a "}" to end it. # # You can add text and web links to the menu by adding "Text: [text]" and # "Link: [name] ([URL])" lines, respectively. # # The formatting and comments are auto-generated, so don't worry about # neatness when editing the file. Natural Docs will clean it up the next # time it is run. When working with groups, just deal with the braces and # forget about the indentation and comments. # # -------------------------------------------------------------------------- File: jQuery resize event (jquery.ba-resize.js) Group: Index { Index: Everything Event Index: Events File Index: Files Property Index: Properties } # Group: Index jquery-goodies-8/resize/docs/nd/Topics.txt000066400000000000000000000060761207406311000210300ustar00rootroot00000000000000Format: 1.4 # This is the Natural Docs topics file for this project. If you change anything # here, it will apply to THIS PROJECT ONLY. If you'd like to change something # for all your projects, edit the Topics.txt in Natural Docs' Config directory # instead. # If you'd like to prevent keywords from being recognized by Natural Docs, you # can do it like this: # Ignore Keywords: [keyword], [keyword], ... # # Or you can use the list syntax like how they are defined: # Ignore Keywords: # [keyword] # [keyword], [plural keyword] # ... #------------------------------------------------------------------------------- # SYNTAX: # # Topic Type: [name] # Alter Topic Type: [name] # Creates a new topic type or alters one from the main file. Each type gets # its own index and behavior settings. Its name can have letters, numbers, # spaces, and these charaters: - / . ' # # Plural: [name] # Sets the plural name of the topic type, if different. # # Keywords: # [keyword] # [keyword], [plural keyword] # ... # Defines or adds to the list of keywords for the topic type. They may only # contain letters, numbers, and spaces and are not case sensitive. Plural # keywords are used for list topics. You can redefine keywords found in the # main topics file. # # Index: [yes|no] # Whether the topics get their own index. Defaults to yes. Everything is # included in the general index regardless of this setting. # # Scope: [normal|start|end|always global] # How the topics affects scope. Defaults to normal. # normal - Topics stay within the current scope. # start - Topics start a new scope for all the topics beneath it, # like class topics. # end - Topics reset the scope back to global for all the topics # beneath it. # always global - Topics are defined as global, but do not change the scope # for any other topics. # # Class Hierarchy: [yes|no] # Whether the topics are part of the class hierarchy. Defaults to no. # # Page Title If First: [yes|no] # Whether the topic's title becomes the page title if it's the first one in # a file. Defaults to no. # # Break Lists: [yes|no] # Whether list topics should be broken into individual topics in the output. # Defaults to no. # # Can Group With: [type], [type], ... # Defines a list of topic types that this one can possibly be grouped with. # Defaults to none. #------------------------------------------------------------------------------- # The following topics are defined in the main file, if you'd like to alter # their behavior or add keywords: # # Generic, Class, Interface, Section, File, Group, Function, Variable, # Property, Type, Constant, Enumeration, Event, Delegate, Macro, # Database, Database Table, Database View, Database Index, Database # Cursor, Database Trigger, Cookie, Build Target # If you add something that you think would be useful to other developers # and should be included in Natural Docs by default, please e-mail it to # topics [at] naturaldocs [dot] org. jquery-goodies-8/resize/docs/search/000077500000000000000000000000001207406311000176615ustar00rootroot00000000000000jquery-goodies-8/resize/docs/search/EventsR.html000066400000000000000000000026311207406311000221370ustar00rootroot00000000000000
    Loading...
    Searching...
    No Matches
    jquery-goodies-8/resize/docs/search/FilesJ.html000066400000000000000000000026611207406311000217300ustar00rootroot00000000000000
    Loading...
    Searching...
    No Matches
    jquery-goodies-8/resize/docs/search/GeneralD.html000066400000000000000000000026761207406311000222430ustar00rootroot00000000000000
    Loading...
    delay, jQuery.resize
    Searching...
    No Matches
    jquery-goodies-8/resize/docs/search/GeneralE.html000066400000000000000000000030431207406311000222310ustar00rootroot00000000000000
    Loading...
    Searching...
    No Matches
    jquery-goodies-8/resize/docs/search/GeneralJ.html000066400000000000000000000026611207406311000222430ustar00rootroot00000000000000
    Loading...
    Searching...
    No Matches
    jquery-goodies-8/resize/docs/search/GeneralL.html000066400000000000000000000026071207406311000222450ustar00rootroot00000000000000
    Loading...
    Searching...
    No Matches
    jquery-goodies-8/resize/docs/search/GeneralP.html000066400000000000000000000026201207406311000222440ustar00rootroot00000000000000
    Loading...
    Searching...
    No Matches
    jquery-goodies-8/resize/docs/search/GeneralR.html000066400000000000000000000031201207406311000222420ustar00rootroot00000000000000
    Loading...
    Searching...
    No Matches
    jquery-goodies-8/resize/docs/search/GeneralS.html000066400000000000000000000026611207406311000222540ustar00rootroot00000000000000
    Loading...
    Searching...
    No Matches
    jquery-goodies-8/resize/docs/search/GeneralT.html000066400000000000000000000027311207406311000222530ustar00rootroot00000000000000
    Loading...
    throttleWindow, jQuery.resize
    Searching...
    No Matches
    jquery-goodies-8/resize/docs/search/NoResults.html000066400000000000000000000015311207406311000225050ustar00rootroot00000000000000
    No Matches
    jquery-goodies-8/resize/docs/search/PropertiesD.html000066400000000000000000000026761207406311000230220ustar00rootroot00000000000000
    Loading...
    delay, jQuery.resize
    Searching...
    No Matches
    jquery-goodies-8/resize/docs/search/PropertiesT.html000066400000000000000000000027311207406311000230320ustar00rootroot00000000000000
    Loading...
    throttleWindow, jQuery.resize
    Searching...
    No Matches
    jquery-goodies-8/resize/docs/styles/000077500000000000000000000000001207406311000177375ustar00rootroot00000000000000jquery-goodies-8/resize/docs/styles/1.css000066400000000000000000000460031207406311000206140ustar00rootroot00000000000000/* IMPORTANT: If you're editing this file in the output directory of one of your projects, your changes will be overwritten the next time you run Natural Docs. Instead, copy this file to your project directory, make your changes, and you can use it with -s. Even better would be to make a CSS file in your project directory with only your changes, which you can then use with -s [original style] [your changes]. On the other hand, if you're editing this file in the Natural Docs styles directory, the changes will automatically be applied to all your projects that use this style the next time Natural Docs is run on them. This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure Natural Docs is licensed under the GPL */ body { font: 10pt Verdana, Arial, sans-serif; color: #000000; margin: 0; padding: 0; } .ContentPage, .IndexPage, .FramedMenuPage { background-color: #E8E8E8; } .FramedContentPage, .FramedIndexPage, .FramedSearchResultsPage, .PopupSearchResultsPage { background-color: #FFFFFF; } a:link, a:visited { color: #900000; text-decoration: none } a:hover { color: #900000; text-decoration: underline } a:active { color: #FF0000; text-decoration: underline } td { vertical-align: top } img { border: 0; } /* Comment out this line to use web-style paragraphs (blank line between paragraphs, no indent) instead of print-style paragraphs (no blank line, indented.) */ p { text-indent: 5ex; margin: 0 } /* Opera doesn't break with just wbr, but will if you add this. */ .Opera wbr:after { content: "\00200B"; } /* Blockquotes are used as containers for things that may need to scroll. */ blockquote { padding: 0; margin: 0; overflow: auto; } .Firefox1 blockquote { padding-bottom: .5em; } /* Turn off scrolling when printing. */ @media print { blockquote { overflow: visible; } .IE blockquote { width: auto; } } #Menu { font-size: 9pt; padding: 10px 0 0 0; } .ContentPage #Menu, .IndexPage #Menu { position: absolute; top: 0; left: 0; width: 31ex; overflow: hidden; } .ContentPage .Firefox #Menu, .IndexPage .Firefox #Menu { width: 27ex; } .MTitle { font-size: 16pt; font-weight: bold; font-variant: small-caps; text-align: center; padding: 5px 10px 15px 10px; border-bottom: 1px dotted #000000; margin-bottom: 15px } .MSubTitle { font-size: 9pt; font-weight: normal; font-variant: normal; margin-top: 1ex; margin-bottom: 5px } .MEntry a:link, .MEntry a:hover, .MEntry a:visited { color: #606060; margin-right: 0 } .MEntry a:active { color: #A00000; margin-right: 0 } .MGroup { font-variant: small-caps; font-weight: bold; margin: 1em 0 1em 10px; } .MGroupContent { font-variant: normal; font-weight: normal } .MGroup a:link, .MGroup a:hover, .MGroup a:visited { color: #545454; margin-right: 10px } .MGroup a:active { color: #A00000; margin-right: 10px } .MFile, .MText, .MLink, .MIndex { padding: 1px 17px 2px 10px; margin: .25em 0 .25em 0; } .MText { font-size: 8pt; font-style: italic } .MLink { font-style: italic } #MSelected { color: #000000; background-color: #FFFFFF; /* Replace padding with border. */ padding: 0 10px 0 10px; border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000; margin-right: 5px; } /* Close off the left side when its in a group. */ .MGroup #MSelected { padding-left: 9px; border-left-width: 1px } /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */ .Firefox #MSelected { -moz-border-radius-topright: 10px; -moz-border-radius-bottomright: 10px } .Firefox .MGroup #MSelected { -moz-border-radius-topleft: 10px; -moz-border-radius-bottomleft: 10px } #MSearchPanel { padding: 0px 6px; margin: .25em 0; } #MSearchField { font: italic 9pt Verdana, sans-serif; color: #606060; background-color: #E8E8E8; border: none; padding: 2px 4px; width: 100%; } /* Only Opera gets it right. */ .Firefox #MSearchField, .IE #MSearchField, .Safari #MSearchField { width: 94%; } .Opera9 #MSearchField, .Konqueror #MSearchField { width: 97%; } .FramedMenuPage .Firefox #MSearchField, .FramedMenuPage .Safari #MSearchField, .FramedMenuPage .Konqueror #MSearchField { width: 98%; } /* Firefox doesn't do this right in frames without #MSearchPanel added on. It's presence doesn't hurt anything other browsers. */ #MSearchPanel.MSearchPanelInactive:hover #MSearchField { background-color: #FFFFFF; border: 1px solid #C0C0C0; padding: 1px 3px; } .MSearchPanelActive #MSearchField { background-color: #FFFFFF; border: 1px solid #C0C0C0; font-style: normal; padding: 1px 3px; } #MSearchType { visibility: hidden; font: 8pt Verdana, sans-serif; width: 98%; padding: 0; border: 1px solid #C0C0C0; } .MSearchPanelActive #MSearchType, /* As mentioned above, Firefox doesn't do this right in frames without #MSearchPanel added on. */ #MSearchPanel.MSearchPanelInactive:hover #MSearchType, #MSearchType:focus { visibility: visible; color: #606060; } #MSearchType option#MSearchEverything { font-weight: bold; } .Opera8 .MSearchPanelInactive:hover, .Opera8 .MSearchPanelActive { margin-left: -1px; } iframe#MSearchResults { width: 60ex; height: 15em; } #MSearchResultsWindow { display: none; position: absolute; left: 0; top: 0; border: 1px solid #000000; background-color: #E8E8E8; } #MSearchResultsWindowClose { font-weight: bold; font-size: 8pt; display: block; padding: 2px 5px; } #MSearchResultsWindowClose:link, #MSearchResultsWindowClose:visited { color: #000000; text-decoration: none; } #MSearchResultsWindowClose:active, #MSearchResultsWindowClose:hover { color: #800000; text-decoration: none; background-color: #F4F4F4; } #Content { padding-bottom: 15px; } .ContentPage #Content { border-width: 0 0 1px 1px; border-style: solid; border-color: #000000; background-color: #FFFFFF; font-size: 9pt; /* To make 31ex match the menu's 31ex. */ margin-left: 31ex; } .ContentPage .Firefox #Content { margin-left: 27ex; } .CTopic { font-size: 10pt; margin-bottom: 3em; } .CTitle { font-size: 12pt; font-weight: bold; border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0; margin: 0 15px .5em 15px } .CGroup .CTitle { font-size: 16pt; font-variant: small-caps; padding-left: 15px; padding-right: 15px; border-width: 0 0 2px 0; border-color: #000000; margin-left: 0; margin-right: 0 } .CClass .CTitle, .CInterface .CTitle, .CDatabase .CTitle, .CDatabaseTable .CTitle, .CSection .CTitle { font-size: 18pt; color: #FFFFFF; background-color: #A0A0A0; padding: 10px 15px 10px 15px; border-width: 2px 0; border-color: #000000; margin-left: 0; margin-right: 0 } #MainTopic .CTitle { font-size: 20pt; color: #FFFFFF; background-color: #7070C0; padding: 10px 15px 10px 15px; border-width: 0 0 3px 0; border-color: #000000; margin-left: 0; margin-right: 0 } .CBody { margin-left: 15px; margin-right: 15px } .CToolTip { position: absolute; visibility: hidden; left: 0; top: 0; background-color: #FFFFE0; padding: 5px; border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000; font-size: 8pt; } .Opera .CToolTip { max-width: 98%; } /* Scrollbars would be useless. */ .CToolTip blockquote { overflow: hidden; } .IE6 .CToolTip blockquote { overflow: visible; } .CHeading { font-weight: bold; font-size: 10pt; margin: 1.5em 0 .5em 0; } .CBody pre { font: 10pt "Courier New", Courier, monospace; margin: 1em 0; } .CBody ul { /* I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever. Reapply it here as padding. */ padding-left: 15px; padding-right: 15px; margin: .5em 5ex .5em 5ex; } .CDescriptionList { margin: .5em 5ex 0 5ex } .CDLEntry { font: 10pt "Courier New", Courier, monospace; color: #808080; padding-bottom: .25em; white-space: nowrap } .CDLDescription { font-size: 10pt; /* For browsers that don't inherit correctly, like Opera 5. */ padding-bottom: .5em; padding-left: 5ex } .CTopic img { text-align: center; display: block; margin: 1em auto; } .CImageCaption { font-variant: small-caps; font-size: 8pt; color: #808080; text-align: center; position: relative; top: 1em; } .CImageLink { color: #808080; font-style: italic; } a.CImageLink:link, a.CImageLink:visited, a.CImageLink:hover { color: #808080 } .Prototype { font: 10pt "Courier New", Courier, monospace; padding: 5px 3ex; border-width: 1px; border-style: solid; margin: 0 5ex 1.5em 5ex; } .Prototype td { font-size: 10pt; } .PDefaultValue, .PDefaultValuePrefix, .PTypePrefix { color: #8F8F8F; } .PTypePrefix { text-align: right; } .PAfterParameters { vertical-align: bottom; } .IE .Prototype table { padding: 0; } .CFunction .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 } .CProperty .Prototype { background-color: #F4F4FF; border-color: #C0C0E8 } .CVariable .Prototype { background-color: #FFFFF0; border-color: #E0E0A0 } .CClass .Prototype { border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0; background-color: #F4F4F4; } .CInterface .Prototype { border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0; background-color: #F4F4FF; } .CDatabaseIndex .Prototype, .CConstant .Prototype { background-color: #D0D0D0; border-color: #000000 } .CType .Prototype, .CEnumeration .Prototype { background-color: #FAF0F0; border-color: #E0B0B0; } .CDatabaseTrigger .Prototype, .CEvent .Prototype, .CDelegate .Prototype { background-color: #F0FCF0; border-color: #B8E4B8 } .CToolTip .Prototype { margin: 0 0 .5em 0; white-space: nowrap; } .Summary { margin: 1.5em 5ex 0 5ex } .STitle { font-size: 12pt; font-weight: bold; margin-bottom: .5em } .SBorder { background-color: #FFFFF0; padding: 15px; border: 1px solid #C0C060 } /* In a frame IE 6 will make them too long unless you set the width to 100%. Without frames it will be correct without a width or slightly too long (but not enough to scroll) with a width. This arbitrary weirdness simply astounds me. IE 7 has the same problem with frames, haven't tested it without. */ .FramedContentPage .IE .SBorder { width: 100% } /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */ .Firefox .SBorder { -moz-border-radius: 20px } .STable { font-size: 9pt; width: 100% } .SEntry { width: 30% } .SDescription { width: 70% } .SMarked { background-color: #F8F8D8 } .SDescription { padding-left: 2ex } .SIndent1 .SEntry { padding-left: 1.5ex } .SIndent1 .SDescription { padding-left: 3.5ex } .SIndent2 .SEntry { padding-left: 3.0ex } .SIndent2 .SDescription { padding-left: 5.0ex } .SIndent3 .SEntry { padding-left: 4.5ex } .SIndent3 .SDescription { padding-left: 6.5ex } .SIndent4 .SEntry { padding-left: 6.0ex } .SIndent4 .SDescription { padding-left: 8.0ex } .SIndent5 .SEntry { padding-left: 7.5ex } .SIndent5 .SDescription { padding-left: 9.5ex } .SDescription a { color: #800000} .SDescription a:active { color: #A00000 } .SGroup td { padding-top: .5em; padding-bottom: .25em } .SGroup .SEntry { font-weight: bold; font-variant: small-caps } .SGroup .SEntry a { color: #800000 } .SGroup .SEntry a:active { color: #F00000 } .SMain td, .SClass td, .SDatabase td, .SDatabaseTable td, .SSection td { font-size: 10pt; padding-bottom: .25em } .SClass td, .SDatabase td, .SDatabaseTable td, .SSection td { padding-top: 1em } .SMain .SEntry, .SClass .SEntry, .SDatabase .SEntry, .SDatabaseTable .SEntry, .SSection .SEntry { font-weight: bold; } .SMain .SEntry a, .SClass .SEntry a, .SDatabase .SEntry a, .SDatabaseTable .SEntry a, .SSection .SEntry a { color: #000000 } .SMain .SEntry a:active, .SClass .SEntry a:active, .SDatabase .SEntry a:active, .SDatabaseTable .SEntry a:active, .SSection .SEntry a:active { color: #A00000 } .ClassHierarchy { margin: 0 15px 1em 15px } .CHEntry { border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0; margin-bottom: 3px; padding: 2px 2ex; font-size: 10pt; background-color: #F4F4F4; color: #606060; } .Firefox .CHEntry { -moz-border-radius: 4px; } .CHCurrent .CHEntry { font-weight: bold; border-color: #000000; color: #000000; } .CHChildNote .CHEntry { font-style: italic; font-size: 8pt; } .CHIndent { margin-left: 3ex; } .CHEntry a:link, .CHEntry a:visited, .CHEntry a:hover { color: #606060; } .CHEntry a:active { color: #800000; } #Index { background-color: #FFFFFF; } /* As opposed to .PopupSearchResultsPage #Index */ .IndexPage #Index, .FramedIndexPage #Index, .FramedSearchResultsPage #Index { padding: 15px; } .IndexPage #Index { border-width: 0 0 1px 1px; border-style: solid; border-color: #000000; font-size: 9pt; /* To make 27ex match the menu's 27ex. */ margin-left: 27ex; } .IPageTitle { font-size: 20pt; font-weight: bold; color: #FFFFFF; background-color: #7070C0; padding: 10px 15px 10px 15px; border-width: 0 0 3px 0; border-color: #000000; border-style: solid; margin: -15px -15px 0 -15px } .FramedSearchResultsPage .IPageTitle { margin-bottom: 15px; } .INavigationBar { font-size: 10pt; text-align: center; background-color: #FFFFF0; padding: 5px; border-bottom: solid 1px black; margin: 0 -15px 15px -15px; } .INavigationBar a { font-weight: bold } .IHeading { font-size: 16pt; font-weight: bold; padding: 2.5em 0 .5em 0; text-align: center; width: 3.5ex; } #IFirstHeading { padding-top: 0; } .IEntry { font-size: 10pt; padding-left: 1ex; } .PopupSearchResultsPage .IEntry { font-size: 8pt; padding: 1px 5px; } .PopupSearchResultsPage .Opera9 .IEntry, .FramedSearchResultsPage .Opera9 .IEntry { text-align: left; } .FramedSearchResultsPage .IEntry { padding: 0; } .ISubIndex { padding-left: 3ex; padding-bottom: .5em } .PopupSearchResultsPage .ISubIndex { display: none; } /* While it may cause some entries to look like links when they aren't, I found it's much easier to read the index if everything's the same color. */ .ISymbol { font-weight: bold; color: #900000 } .IndexPage .ISymbolPrefix, .FramedIndexPage .ISymbolPrefix { font-size: 10pt; text-align: right; color: #C47C7C; background-color: #F8F8F8; border-right: 3px solid #E0E0E0; border-left: 1px solid #E0E0E0; padding: 0 1px 0 2px; } .PopupSearchResultsPage .ISymbolPrefix, .FramedSearchResultsPage .ISymbolPrefix { color: #900000; } .PopupSearchResultsPage .ISymbolPrefix { font-size: 8pt; } .IndexPage #IFirstSymbolPrefix, .FramedIndexPage #IFirstSymbolPrefix { border-top: 1px solid #E0E0E0; } .IndexPage #ILastSymbolPrefix, .FramedIndexPage #ILastSymbolPrefix { border-bottom: 1px solid #E0E0E0; } .IndexPage #IOnlySymbolPrefix, .FramedIndexPage #IOnlySymbolPrefix { border-top: 1px solid #E0E0E0; border-bottom: 1px solid #E0E0E0; } a.IParent, a.IFile { display: block; } .PopupSearchResultsPage .SRStatus { padding: 2px 5px; font-size: 8pt; font-style: italic; } .FramedSearchResultsPage .SRStatus { font-size: 10pt; font-style: italic; } .SRResult { display: none; } #Footer { font-size: 8pt; color: #989898; text-align: right; } #Footer p { text-indent: 0; margin-bottom: .5em; } .ContentPage #Footer, .IndexPage #Footer { text-align: right; margin: 2px; } .FramedMenuPage #Footer { text-align: center; margin: 5em 10px 10px 10px; padding-top: 1em; border-top: 1px solid #C8C8C8; } #Footer a:link, #Footer a:hover, #Footer a:visited { color: #989898 } #Footer a:active { color: #A00000 } jquery-goodies-8/resize/docs/styles/2.css000066400000000000000000000051551207406311000206200ustar00rootroot00000000000000/* bg: #FDEBDC bg1: #FFD6AF bg2: #FFAB59 orange: #FF7F00 brown: #913D00 lt. brown: #C4884F */ .IndexPage #Index { margin-left: 31ex !important; } #MSelected { -webkit-border-top-right-radius: 10px; -webkit-border-bottom-right-radius: 10px; } .MGroup #MSelected { -webkit-border-top-left-radius: 10px; -webkit-border-bottom-left-radius: 10px; } .Safari #MSelected { border-width: 1px; border-left-width: 0; } .Safari .MGroup #MSelected { border-left-width: 1px; } .SBorder { -webkit-border-radius: 20px; } body { font-size: 0.75em; line-height: 1.6em; font-family: Arial, sans-serif; } a:link, a:visited { color: #913D00; text-decoration: underline; } a:hover { color: #FF7F00; } p { margin-left: 5ex; text-indent: 0; margin-bottom: 0.6em; } .Summary a:link, .Summary a:visited { text-decoration: none; } .CClass .CTitle, .CInterface .CTitle, .CDatabase .CTitle, .CDatabaseTable .CTitle, .CSection .CTitle, #MainTopic .CTitle, .STitle { text-transform: uppercase; font-family: "Gill Sans", "Gill Sans MT", Arial, Helvetica, sans-serif; } .CClass .CTitle, .CInterface .CTitle, .CDatabase .CTitle, .CDatabaseTable .CTitle, .CSection .CTitle, .IPageTitle, #MainTopic .CTitle { color: #913D00; font-size: 22px; font-weight: 400; background: #FDEBDC; border: none; } .CClass .CTitle, .CInterface .CTitle, .CDatabase .CTitle, .CDatabaseTable .CTitle, .CSection .CTitle { border-top: 2px solid #913D00; } .CGroup .CTitle { color: #913D00; font-family: "Gill Sans", "Gill Sans MT", Arial, Helvetica, sans-serif; font-weight: 700; font-size: 130%; font-variant: none; border-bottom: 2px solid #913D00; } .CTitle { border-color: #C4884F; line-height: 1.2em; } .ContentPage #Content { background: #FDEBDC; } .STitle { color: #FF7F00; font-size: 140%; font-weight: 700; margin: 1.2em 0 0.3em; } .CBody pre { margin-left: 5ex; } .CBody pre, .CDLEntry { color: #913D00; font-family: Monaco, "Courier New", Courier, monospace; font-size: 9pt; } .SBorder { background-color: #fff; border: 1px solid #913D00; padding: 15px; } .SMarked { background-color: #eee; } .ContentPage, .IndexPage, .FramedMenuPage { background-color: #FFAB59; } .MEntry a:link, .MEntry a:hover, .MEntry a:visited, .MGroup a:link, .MGroup a:hover, .MGroup a:visited { color: #000; } #MSearchField { color: #913D00; background: #FDEBDC; } #Footer a:link, #Footer a:hover, #Footer a:visited { color: #913D00; } .INavigationBar { background: #FFD6AF; border-top: 1px solid #000; border-bottom: 1px solid #000; } #MSelected { color: #913D00; border-color: #913D00; } jquery-goodies-8/resize/docs/styles/main.css000066400000000000000000000000541207406311000213740ustar00rootroot00000000000000@import URL("1.css"); @import URL("2.css"); jquery-goodies-8/resize/jquery.ba-resize.js000066400000000000000000000217531207406311000212310ustar00rootroot00000000000000/*! * jQuery resize event - v1.1 - 3/14/2010 * http://benalman.com/projects/jquery-resize-plugin/ * * Copyright (c) 2010 "Cowboy" Ben Alman * Dual licensed under the MIT and GPL licenses. * http://benalman.com/about/license/ */ // Script: jQuery resize event // // *Version: 1.1, Last updated: 3/14/2010* // // Project Home - http://benalman.com/projects/jquery-resize-plugin/ // GitHub - http://github.com/cowboy/jquery-resize/ // Source - http://github.com/cowboy/jquery-resize/raw/master/jquery.ba-resize.js // (Minified) - http://github.com/cowboy/jquery-resize/raw/master/jquery.ba-resize.min.js (1.0kb) // // About: License // // Copyright (c) 2010 "Cowboy" Ben Alman, // Dual licensed under the MIT and GPL licenses. // http://benalman.com/about/license/ // // About: Examples // // This working example, complete with fully commented code, illustrates a few // ways in which this plugin can be used. // // resize event - http://benalman.com/code/projects/jquery-resize/examples/resize/ // // About: Support and Testing // // Information about what version or versions of jQuery this plugin has been // tested with, what browsers it has been tested in, and where the unit tests // reside (so you can test it yourself). // // jQuery Versions - 1.3.2, 1.4.1, 1.4.2 // Browsers Tested - Internet Explorer 6-8, Firefox 2-3.6, Safari 3-4, Chrome, Opera 9.6-10.1. // Unit Tests - http://benalman.com/code/projects/jquery-resize/unit/ // // About: Release History // // 1.1 - (3/14/2010) Fixed a minor bug that was causing the event to trigger // immediately after bind in some circumstances. Also changed $.fn.data // to $.data to improve performance. // 1.0 - (2/10/2010) Initial release (function($,window,undefined){ '$:nomunge'; // Used by YUI compressor. // A jQuery object containing all non-window elements to which the resize // event is bound. var elems = $([]), // Extend $.resize if it already exists, otherwise create it. jq_resize = $.resize = $.extend( $.resize, {} ), timeout_id, // Reused strings. str_setTimeout = 'setTimeout', str_resize = 'resize', str_data = str_resize + '-special-event', str_delay = 'delay', str_throttle = 'throttleWindow'; // Property: jQuery.resize.delay // // The numeric interval (in milliseconds) at which the resize event polling // loop executes. Defaults to 250. jq_resize[ str_delay ] = 250; // Property: jQuery.resize.throttleWindow // // Throttle the native window object resize event to fire no more than once // every milliseconds. Defaults to true. // // Because the window object has its own resize event, it doesn't need to be // provided by this plugin, and its execution can be left entirely up to the // browser. However, since certain browsers fire the resize event continuously // while others do not, enabling this will throttle the window resize event, // making event behavior consistent across all elements in all browsers. // // While setting this property to false will disable window object resize // event throttling, please note that this property must be changed before any // window object resize event callbacks are bound. jq_resize[ str_throttle ] = true; // Event: resize event // // Fired when an element's width or height changes. Because browsers only // provide this event for the window element, for other elements a polling // loop is initialized, running every milliseconds // to see if elements' dimensions have changed. You may bind with either // .resize( fn ) or .bind( "resize", fn ), and unbind with .unbind( "resize" ). // // Usage: // // > jQuery('selector').bind( 'resize', function(e) { // > // element's width or height has changed! // > ... // > }); // // Additional Notes: // // * The polling loop is not created until at least one callback is actually // bound to the 'resize' event, and this single polling loop is shared // across all elements. // // Double firing issue in jQuery 1.3.2: // // While this plugin works in jQuery 1.3.2, if an element's event callbacks // are manually triggered via .trigger( 'resize' ) or .resize() those // callbacks may double-fire, due to limitations in the jQuery 1.3.2 special // events system. This is not an issue when using jQuery 1.4+. // // > // While this works in jQuery 1.4+ // > $(elem).css({ width: new_w, height: new_h }).resize(); // > // > // In jQuery 1.3.2, you need to do this: // > var elem = $(elem); // > elem.css({ width: new_w, height: new_h }); // > elem.data( 'resize-special-event', { width: elem.width(), height: elem.height() } ); // > elem.resize(); $.event.special[ str_resize ] = { // Called only when the first 'resize' event callback is bound per element. setup: function() { // Since window has its own native 'resize' event, return false so that // jQuery will bind the event using DOM methods. Since only 'window' // objects have a .setTimeout method, this should be a sufficient test. // Unless, of course, we're throttling the 'resize' event for window. if ( !jq_resize[ str_throttle ] && this[ str_setTimeout ] ) { return false; } var elem = $(this); // Add this element to the list of internal elements to monitor. elems = elems.add( elem ); // Initialize data store on the element. $.data( this, str_data, { w: elem.width(), h: elem.height() } ); // If this is the first element added, start the polling loop. if ( elems.length === 1 ) { loopy(); } }, // Called only when the last 'resize' event callback is unbound per element. teardown: function() { // Since window has its own native 'resize' event, return false so that // jQuery will unbind the event using DOM methods. Since only 'window' // objects have a .setTimeout method, this should be a sufficient test. // Unless, of course, we're throttling the 'resize' event for window. if ( !jq_resize[ str_throttle ] && this[ str_setTimeout ] ) { return false; } var elem = $(this); // Remove this element from the list of internal elements to monitor. elems = elems.not( elem ); // Remove any data stored on the element. elem.removeData( str_data ); // If this is the last element removed, stop the polling loop. if ( !elems.length ) { clearTimeout( timeout_id ); } }, // Called every time a 'resize' event callback is bound per element (new in // jQuery 1.4). add: function( handleObj ) { // Since window has its own native 'resize' event, return false so that // jQuery doesn't modify the event object. Unless, of course, we're // throttling the 'resize' event for window. if ( !jq_resize[ str_throttle ] && this[ str_setTimeout ] ) { return false; } var old_handler; // The new_handler function is executed every time the event is triggered. // This is used to update the internal element data store with the width // and height when the event is triggered manually, to avoid double-firing // of the event callback. See the "Double firing issue in jQuery 1.3.2" // comments above for more information. function new_handler( e, w, h ) { var elem = $(this), data = $.data( this, str_data ); // If called from the polling loop, w and h will be passed in as // arguments. If called manually, via .trigger( 'resize' ) or .resize(), // those values will need to be computed. data.w = w !== undefined ? w : elem.width(); data.h = h !== undefined ? h : elem.height(); old_handler.apply( this, arguments ); }; // This may seem a little complicated, but it normalizes the special event // .add method between jQuery 1.4/1.4.1 and 1.4.2+ if ( $.isFunction( handleObj ) ) { // 1.4, 1.4.1 old_handler = handleObj; return new_handler; } else { // 1.4.2+ old_handler = handleObj.handler; handleObj.handler = new_handler; } } }; function loopy() { // Start the polling loop, asynchronously. timeout_id = window[ str_setTimeout ](function(){ // Iterate over all elements to which the 'resize' event is bound. elems.each(function(){ var elem = $(this), width = elem.width(), height = elem.height(), data = $.data( this, str_data ); // If element size has changed since the last time, update the element // data store and trigger the 'resize' event. if ( width !== data.w || height !== data.h ) { elem.trigger( str_resize, [ data.w = width, data.h = height ] ); } }); // Loop. loopy(); }, jq_resize[ str_delay ] ); }; })(jQuery,this); jquery-goodies-8/slides/000077500000000000000000000000001207406311000154465ustar00rootroot00000000000000jquery-goodies-8/slides/README.textile000066400000000000000000000101241207406311000200010ustar00rootroot00000000000000h1. Slides, A Slideshow Plugin for jQuery Slides is a crazy simple slideshow plugin for jQuery. With features like looping, auto play, fade or slide transition effects, crossfading, image preloading, and auto generated pagination. With Slides you'll never see multiple slides fly by. Slides elegantly just slides from one slide to the next. Awesome. Check out "http://slidesjs.com/":http://slidesjs.com/ for full instructions and examples. Give it a try and if you have a question or find a bug hit me up at GitHub or shoot me an email.. Slides is compatible with all modern web browsers including; Internet Explorer 7/8/9, Firefox 3+, Chrome, Safari and Mobile Safari. And it'll even work in our old friend IE6. h2. Info Developed by "Nathan Searles":mailto:nsearles@gmail.com, "http://nathansearles.com":http://nathansearles.com For updates, follow Nathan Searles on "Twitter":http://twitter.com/nathansearles Slides is licensed under the "Apache license":http://www.apache.org/licenses/LICENSE-2.0. h2. Examples and Instructions These examples are also included in the download. * "http://slidesjs.com/":http://slidesjs.com/ * "Images with captions":http://slidesjs.com/examples/images-with-captions/ * "Linking":http://slidesjs.com/examples/linking/ * "Product":http://slidesjs.com/examples/product/ * "Multiple slideshows":http://slidesjs.com/examples/multiple/ * "Simple (unstyled)":http://slidesjs.com/examples/simple/ * "Standard":http://slidesjs.com/examples/standard/ h2. Todo Here's a list of soon to be added features. If you have a feature request let me know by either submitting an issue or by email. * New: Play/pause button * New: Tutorial on how to create a custom slideshow using Slides * Fix: Bug when slideshow only has one slide h2. Changelog * 1.1.8 ** Fixed: bug with preloading image and starting at slide other then the first * 1.1.7 ** Added currentClass default, thanks arronmabrey! * 1.1.6 ** Fixed: bug with slidesLoaded function * 1.1.5 ** New: option called slidesLoaded, a function that is called when Slides is fully loaded * 1.1.4 ** Fixed: Minor bug with loading image not being removed ** Added: animationStart() now gets passed the current slide number ** Updated: Examples now use jQuery 1.5.1 * 1.1.3 ** New: Support for jQuery's easing plugin *** Added: fadeEasing and slideEasing defaults ** Cleaned up JavaScript using http://jshint.com ** Fixed: Minor bug with hoverPause * 1.1.2 ** Changed: Width and Height is set in the CSS rather then the JavaScript ** New: Added some helpful comments to example CSS ** Fixed: Flash of slide content in IE ** Updated: Better loading structure * 1.1.1 ** New: Width and height is now a required attribute *** This fixes numerous issues with blank slides and height ** New: Rewrote image loading *** Now supports multiple parent elements *** Fixed other minor bugs ** Fixed: Images should no longer flicker in IE * 1.1.0 ** Fixed: Issue with images and captions example in IE6/7 * 1.0.9 ** Fixed: Using fade effect, crossfade and autoheight now works properly * 1.0.8 ** Fixed: IE6/7 JavaScript error related to the pagination * 1.0.7 ** New: Link to a slide from a slide. Check out /examples/Linking/ in the download ** New: Deeplinking example added. Check out /examples/Linking/ in the download ** Changed: Pagination no longer uses rel attribute, it now just uses href with hash * 1.0.6 ** Changed: Pagination now targets the rel attribute versus using :eq() * 1.0.5 ** New: Current slide number passed to animationComplete() * 1.0.4 ** Fixed: start option bug ** New: error correction for start option * 1.0.3 ** Fixed: bugs related to auto height ** New: animationStart() and animationComplete() added * 1.0.2 ** Fixed: bug with static pagination * 1.0.1 ** New: boolean to auto generated Next/Prev buttons ** Width attribute is no longer set for main element ** Fixed: pagination bug, it was set to false, should be true by default * 1.0 ** Initial releasejquery-goodies-8/slides/examples/000077500000000000000000000000001207406311000172645ustar00rootroot00000000000000jquery-goodies-8/slides/examples/Carousel/000077500000000000000000000000001207406311000210415ustar00rootroot00000000000000jquery-goodies-8/slides/examples/Carousel/index.html000066400000000000000000000035741207406311000230470ustar00rootroot00000000000000 Slides, A Slideshow Plugin for jQuery
    Item One
    Item Two
    Item Three
    Item Four
    Item Five
    Item Six
    Item Seven
    Item Eight
    jquery-goodies-8/slides/examples/Linking/000077500000000000000000000000001207406311000206575ustar00rootroot00000000000000jquery-goodies-8/slides/examples/Linking/css/000077500000000000000000000000001207406311000214475ustar00rootroot00000000000000jquery-goodies-8/slides/examples/Linking/css/global.css000066400000000000000000000057451207406311000234340ustar00rootroot00000000000000/* Resets defualt browser settings reset.css */ html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td { margin:0; padding:0; border:0; outline:0; font-weight:inherit; font-style:inherit; font-size:100%; font-family:inherit; vertical-align:baseline; } :focus { outline:0; } a:active { outline:none; } body { line-height:1; color:black; background:white; } ol,ul { list-style:none; } table { border-collapse:separate; border-spacing:0; } caption,th,td { text-align:left; font-weight:normal; } blockquote:before,blockquote:after,q:before,q:after { content:""; } blockquote,q { quotes:"" ""; } /* Page Style */ body { font:normal 62.5%/1.5 Helvetica, Arial, sans-serif; letter-spacing:0; color:#434343; background:#efefef url(../img/background.png) repeat top center; padding:20px 0; position:relative; text-shadow:0 1px 0 rgba(255,255,255,.8); -webkit-font-smoothing: subpixel-antialiased; } #container { width:580px; padding:10px; margin:0 auto; position:relative; z-index:0; } #frame { position:absolute; z-index:0; width:739px; height:341px; top:-3px; left:-80px; } #example { width:600px; height:350px; position:relative; } /* Slideshow style */ #slides { position:absolute; top:15px; left:4px; z-index:100; } /* Slides container Important: Set the width of your slides container If height not specified height will be set by the slide content Set to display none, prevents content flash */ .slides_container { width:570px; height:270px; overflow:hidden; position:relative; display:none; } /* Each slide Important: Set the width of your slides Offeset for the 20px of padding If height not specified height will be set by the slide content Set to display block */ #slides .slide { padding:20px; width:530px; height:230px; display:block; } /* Next/prev buttons */ #slides .next,#slides .prev { position:absolute; top:107px; left:-39px; width:24px; height:43px; display:block; z-index:101; } #slides .next { left:585px; } /* Pagination */ .pagination { margin:26px auto 0; width:100px; } .pagination li { float:left; margin:0 1px; list-style:none; } .pagination li a { display:block; width:12px; height:0; padding-top:12px; background-image:url(../img/pagination.png); background-position:0 0; float:left; overflow:hidden; } .pagination li.current a { background-position:0 -12px; } /* Footer */ #footer { text-align:center; width:580px; margin-top:9px; padding:4.5px 0 18px; border-top:1px solid #dfdfdf; } #footer p { margin:4.5px 0; font-size:1.0em; } /* Type and anchors */ a:link,a:visited { color:#599100; text-decoration:none; } a:hover,a:active { color:#599100; text-decoration:underline; } h1 { font-size:2em; } p { font-size:1.3em; } #slides .link { display:block; margin-top:10px; font-weight:800; }jquery-goodies-8/slides/examples/Linking/img/000077500000000000000000000000001207406311000214335ustar00rootroot00000000000000jquery-goodies-8/slides/examples/Linking/img/arrow-next.png000066400000000000000000000030311207406311000242440ustar00rootroot00000000000000PNG  IHDR+bHtEXtSoftwareAdobe ImageReadyqe<IDATxڴKes<^QLqDWB +no_n q>h9!E`0A̢D EPYQ!O}9so b݅4_***vsܦWR$hBSSSf0d2/ ퟬ)x<\__B}}}`R;%%%  lҤ~x1a#eYY@TI`|*[jg/7$DvQ= Օ{`_Oާcт3TUUEF!===շ1NBxdY@hQYYh ~CCwƨNA\&хW~L{fc^[[qp&I`5xY?A4@ !CJ&g86d=_"]}ģ֑ه{/bbPŹ w3.ʄ*?483r:}iMM<"CZX0LN}Sr( %69gDs{{;(J4.I":>>,,, âCAߵQB@au yvv6HEu^ڠmg ~!0s0rL@?Y!ȏ9tzzک>22␆W/UhZF:rJ5cjjА#aJ %{+ BWaz%a!B!:E)7urr2hllΖLdN(K+ќ$ D`2"nﰋ&?W>` qbBT* zš<#9悸n+չ.d8N[^^fff\h(Tôg\ZT k$]V"BEab}rrF8O݅bZIĨv*bc~k0vK(9)iut3=7ʵ: 0z$9U/]e?QR]CB:s `8N~wwfe5U~MCRRO #xR$ GoL*z珎1J ";iq5lo>iOCef%TOLS>$NCu~W5rvxGvѹZ{3d}8TX{>fX2?onTo1:N㍍ol$ /翚%;`ʓޗ7*mx~# d25f+ VC)qߧ,&]#/~8<<1:<Ψ7}j6&i1؜m3da^-^,]:G TEU}Fz-_;KIENDB`jquery-goodies-8/slides/examples/Linking/img/arrow-prev.png000066400000000000000000000030251207406311000242450ustar00rootroot00000000000000PNG  IHDR+bHtEXtSoftwareAdobe ImageReadyqe<IDATxڴOeE== D!!$,Dh4mN(S0W_])`\E/iV.Ɲ!@@+w@&&VRխTUx~~-OadtaWWWهFߒL&km$!Qݷ ݷ^o5p;>>/4GGG_>8==Xw`|`A"p{4ySS|lߥRR4//cbwOC+CmNTiiI@2c$Gjxee444TVV>2c0a4%Rʩ~l݋C.Hi6b X"&f1{lr(cǹ2u1@¶όxhUhMB*DN0 Ԛˍ{! H&F~-fh˿7mJ?4BI? H1)%F~'tt@$)e68=g(??K#H(  K"\dpqg}fNF 1@kihm(Ǿtځ(7D$fQ`FʕlQ6C}?kc 333p>(k\6Xi7NLR gRTaL :::bM~@%`|e(Q0VR!600ܹs'I099Xi*5gBR:.[@SyBP)s{ٜLOOEEETfLWx,ƹ= 1ZYYY022HPw {n V%Ą3%:ƲD2;i?mFD*zsajjʭݽ{7f7QDW!S$dJ>b?::BS Q&Nvvv~aG)V1}3p%HZ njj-ɔI 6Hx5z,S5E~QȾM*Z|pnKKK?1c@~#:4 W09~{{{?+{z_~vm߿^?z/7_tsr~tW_[_}n_ׯ_~]z/zz޹/ 뮿'BY-s=_r}з]КNmaw^&7>vuu׿gZmVyws~uA'L{}uv{dMc﯏﫯[uqW띻o\o'Wŭ^nA R~ǭ޴[w'{}q#H6ǗSi&On7~Lme˺39mDPnM wu`zu q[vҮoAۮ8lr9vWb߷ m֚}DufԋO'/Wlmxխ^~)*U"߿ 9X{ oh}vtn,}[u)]hLmώ囅۷LLi#r=\$!Wv?북sP܌+uc,ޛ<ѩ;sN /6n1 W?m~n5S}nhQPnvqJ{U!˜~=fk76"p]-f49ts_{vܞ6_Qݽέr9_9iT]gq8ܿ=7Gv2t᮰5=}bY-mӿcE.nbv':Y1;;1)Qޱ۝L^Z=lu=k[Jn{9[)Xc{fQ6vmc;uԈZ.%X-'ObA N@Y}pq?|a ?4hy"t2=?dx6|1yi}x\mrzl; .}זJ홻628čt{}փBh_l_ 3XI^CVf˸fgwOY_nD` *_Áw~VK(#^\$:cyH>Y|=Yv%0h2TObGyO n>7XaN8\ѿ]g1)v|5v[>,L:Kd[{4EExmt0V] JEqat^%Do^ xV"z%p&B וy}=; ]F{$tr; h*M2_ IHQ;SK=P΍:0ǀ'447ĤX8Zقd8@߲֠N6Wsy5; @I^erEۺ'z7! |X`FojeՃ8{`s*n mֱm*Rv«,"KM^`X sI7f w54pv|; će8'io{e)"iʇ* {stÆ7@Uij6Co|ˉ9PAuM"s;L/u`..@o䅐uhNnw@b=-iGejw76FNwE>j7s{l ww2Hm}w&x95V]PDiJVcGI wl ,l-!C|yvXUfwV!Ƙ"  WӶ.(ΜU̒քcOR֤1VGޟvE~ˏ?6.L*/j&JK9 F?0h\XCh_7*cG~r1g w^X^Yrzw('{eO}Ç ic<H.M%/;R7Ȋlbs4z"wߍ7N@n*۱"U_T1'9,žb^` ~+"pvP).7氲@l ӈ[PQ rm*!vw걖1bѮjt z8}}VY[@+/= R0  {OȜh>םTnɪzb>fBR11pX6 @c?*~ ܒ~+D|\ #Ȕ}~D}6@SRqHr5D f=f '|5ieP5[b$>gݧ7R%`q7d,Nb>eN{۠CaitQ9ނ`xSޅaC.{6Qh?[O?5-)MoTWRӌ2[QGJvZT~PR+'!(IC[$.DJT_ص_}Ņo(ɿ%o7AB|p& w{J&xħ-g"f@CaFs^' !9Lo-X5@iïRMtA eb3PT{dNQGy7F{ QKm?Ć슠n5Ϣ;g" VGN,9VEe{HA ƀ#j%[ȅO,2E /Qu+M>P4=moNGT`a\Y(bJ %Ǐ%TK0/cx- 9J"K 8n*s52I_;W|P*R[@N: O7 ˩uƲfePKq%vȒ4d3"Qw[KO(Iq(9ny%kTD^C6<1fn`$+V/~.)][U'Xr~ wVu-+9J,r&i*Y"}dJHg 8Iᛒ1v4v4<~ 9G״z-B@&icT^pI(BrДiESYg7 MnZ/!(R.\{ѝfZ ZQ}d I(!Ʒ@Ff [n6 .RȒ%k_tPreq܂Yb ћ0Prr%7%Dy*4]A B, F-5h?6;]H)7 Y2EڂQ.Z%ǁ dTw"oY;*黄 mS4z7a)D K)y]*MuhcPcY7?EmG}k/~4zYx>iRTHey j T-nѯ:2Q*&(KSR_X[ P$~՞-UNYxe=[z]^8-H S6elmt*j.u-e5/ɕ ^)7g)qغm̖ءV"t5vƜh{6lBv1=OX IIhf)|ix$K@ h]jPb1n7 kaoLlF`u AYM5<p >N!jJp~*m?j}FQE!`nH![bxr,{tjW5TFSK)nψO[Lr.G]| Wnns-ӆf$7lɒQN@]a.̥=R_GX*" 5^gmωĮ`fJCi3%e4/$m¿d“#XPPa{ڒ@4uηAoYށ8Ouah| ̴I^*ZӉ qdgi$t3Z!I?:;?8Z{+.KLr ʹ :x8)'.U[3SœuZd}@>yIbTBKعM\dMuq[m;ukYj~@wQ*Yv<-ěڵIO 欃9^͢d{~CXgk=Rc۶Y~ Vmpc[JqٲArJWMZA1f}v u{NQBTTs&|}IsVԾQ_8lلxhex.i  l t+`es t.V9,ΧbyGa,UYFq4ˡ)soDYZTjϳ,vDE0E>)+K|M._}wi-jnH:zjQ+'!￝ކL^RWDE(^ Z UKévoW-Y,M!#H{۵2Gq\ ۳@@&hK[@TS 0U Q ٢Me ;nGA^I@Ω-3W$N+4d%бZyOaF5u咛!U]>@Sx=Z]K!:5yj<љC6.hxxi؂CΙHsi%@r-(]WA1Vձnhh!)x$I84)jSը^Z8yPIl}۬^CID֭Jlݗ軝[7M9ĒY8l:砵GtpIc:ꊝi?\fĭf\osS7* f}7wT/G2JkRB2 I 0TX-7.J8-(hȢo5fLb%S*<336n9qq E=ܮGӃ²2cT=ϋsyL;Eɟf‚d>fe#T.Z* 7B.Wإ\ aK{"ƱɅ B ߋ"m /D ]uۣ-!2Nz&-na[*G'[_fcS!G/Zm鈍84ږ n/ jncNSeGyݪ(9+-ps EBQ?̸[ pR " ;Ћ{ʖ:~\-dhR,Yۦ՛)tTi:vK F &Y;'IB|vahFνn]\P~ʘ@n @Z"%FQe4N/cvEAAaP=gsEu8LbC ^^+kn 9@{?iBG`z-?_]( c&?C&=7d#d#6*vԖ2P-siX^wY]̶(Hf׏W-B{| {c]_z`쐻jDy[ZUBlET5EjrmIx͛|EŢʠ8Hn'[=~zDOl =8m:u4H !C.ZBn|o{C\+z =Y!6diu [lƲޯT_haf .W]vszCxۉ=en@DnNFK5寚w2X2{ay}̓Bt}ץ1Ĉ e96vyE$[mA-Zq27!^ Y{ƚ!]䀁yzrS+;)IhSNthȊZl]$o*h*NA CԊ}A&mnem4s:I߾3R>j7ήnھEbZi:C_Ac naRi9F/H5{`m5c|W:i;I|XjW ohg{̈hzӭ$ 'hA: iq(|S*i6>8Fe4;R`I@v}#w <MQŤ_5UC T#(H g$ByٖJyxdZd!8:a,0{G;Śj`6UVrLa=jJܔ%l)+)H֛?΃ѧ;ܲA51maoW9f;"Uo;c0xgaŋ ҆|:l!^ *lvcPz* $쿿ۙ U U{WI}0`^{f@MZQKYFf[i)Rn.DZ!cچe,PÑxCHs׭OγpT)FzHYP̗C6M8n(QB:x7Zww86f]ۢ똲ί:ccSTTTO+t 8(%SRmae;?Se;eyˏ\cv"A\WR4wżG杪+\u=!|%c3p&-/6TƓq-JQ<&t`;uҀ t:TCb6MRِ֯+ۃ10U_GZTprTu r]|QVDxux#|3RomNƝhoAzX bvcG]]M dו ,yAb[*::rtN4RRyg?}9 WbN+Ӆ!HǷSNQك{Q-30!*<~ k, ׆mFE \Gc ifFv ٜE m;D{Llh؂z>szKiR[jK?ԩnkσD0)vҭӰ(vFa#j\7 J^vQF]tȏ{ O]ѩ\0+U/8dC V4ؗ浵2њoW`#&ux=qܿ}zqmmedڕM78E XXeBwPH/@J+U a&ZۘeřIkwk1pwR-[ox`}+km"&3< s nI苾mez{ stرz4s>}dHVGTtAf0[E u"RniehsO'v]9Q/[iЃ6W6BT o㕫1lLxx$߱ 鼮rqg·r:|?D?zsdlllj@L|_WYuwu "˄-Xn!%湔U>WΖtn g7/`m(J8rr۰CmJvuRޑkm'(8RJrj^kGӲ:8+cS<=}.bFpG5%$HwGN&`cHs"mc5Ish:X_fuk(ˀPz0KQM!f !5ZX3lזۀx #Z\7+ FN.2a z*[QS]4:ڽ`1)(2sSe5h-ٜhd:-Fm ڛ _*QG'w|KN0PE2 # ~cFﭢMoU#tkTz ȩbܡ '6p3>6&ůYAN#*RlB2`;S;H!nG/l/H \փ3ʍ(SSڱe0)`됇.tqڗuZhtǢv3,hK]z ٳ>o,]I@mytpxH(ՎDAOg\CH9ȫgCz@yiiY554-OϷ+ھָ `^+: IPVzu,6ab]1x-C ^i Cg;6_#[B{3S*+mLsex1mVo⍞!ȯqH=x6'9ϕmÞ[/.!|c:1JlSp"`*.HS (#mRD&=FŷKzLʎʇ ^2>%ѦU- g; &PTYOɷByFȮGV+θ1DEW"JrnWNG*G~7};J6܊Cz6~STn7֔v^| ; ӖV ͋!OLe2Zwrk^3Z;TUPSǸ;dB!v`38_ :q1M j7K4e=> -A-btFl+veZ6L%phGд`ihE-@JQ8@NǏo} ͪwsSB e@e4h3Vk+܂|6 /)ٷujNtՖR{M6ڕjyVB<$EEVѦ VEzm~(P]V=uzh>jDi&;CC/xIGműl:}Tnl㝚@wi|6DGv/|(| QkmT7nuvӟ5i`c}eJ(RsVM9ř+j OatF⦂Zc_ٕMT{Yjj? VH~? FPNi*]*s:4j^ B8 J f;/ƻڦyS$ۓ/J*$2_ |ݶzO>S*N! Ð$Zk~ &EeVQZ:.!.ã#y SW/#c)ӐӦ~{:У!!mi +ṡ ⠚bA\ #^@aGZgH *E xo6 }ǠCVXQI]Fq* Vp+e=U6M94@EUvoc:hUcrvľi]ӧ*]Oޔ AŶlϕGM:4%y;1xE-Jaårew[kbUPfcsF62L:QR7ŚF&JxX^/$Vf}yx!l0{B Fe0/%119U{y;"GEW~Stp_ 7Mg38/'Y0W~2nl(ג~&rѫ:y2:ڷi8~{O2.&g{{?wwoUwQ%}Q(*>KsE -9woyt;Wpuf|W!W^w: )~oO?ҟg)k"ߩ?)dn}{m4}:$C<@6"RS\,egpwnrKB͸QuQ۴JvIqO-NkNiqO>'iGtUZd!O>G-nyGM 3x$ڥiWEֲי@Z5QSFkÍI0)!Vkߋ{gfT1L܌CrQsݿ*W;wEeF#/G^\:&L˔b /ȴ`)U8{5+L%$ZVJJQv־eN ;ćȖ\V*2AVW|R]qšR*W竒I4䗒J)ZwK{]NY1'57ܵ[uWWW?^8xK7Ϲ.l66&Iw6s&V#&wor2 FjI!iT&ZVvO-/"yrt܎`45 ')gAr;ӲkZJ/\Ԥ1󮔵2|0?4odo,Z\Mt֍t;*~,ҞG+Wqjt?گ9?n/Ω CqbQo^l1ƝwqP7XJ0 );J'S,_-df; p/WUUDp9QX:!\8(93:V*;mfzW+5{3)Ob.WL"T;y" d=>dk]cqKvWݙ 4>!]w;?9v8D++w{G&w߾u;Y:c.\vh>}I,v@,;:y 2QAWrIEy"%7t)%`IQF޽{ϻ0>,%mdVYdϷY)W%f^nܛܸ/_J^28b3 OC*O8QF9"2冗5IkIXyB}%[YVnS2 %<{UU2|q,x,N؄n2%>")]rWs؟7~?|Yȸm|_q}_7p߼޾sCeX{k**c~a&Lmիx+>e.k҅rm9y4Tc/#Њk'e9p9Zw Z.dŸq_~^~RvӍ{A~ֽyZjoLTOs;k:綥vs(cZHKe҃Nڗze@xȥ %z n8Di(mlԸd/hrT꿛KRݒSTl%1l"n?C![$:煝zt}٦YM]*$,Ue}8ߖnq2^s/ ~s{^ҍWQ`{>N9yEژ{+vXIA*Pr]亅%(hiNqGe"VʸyK070XZ-:H>xI,]JQѼֳH\*KbqLNjUd}Rѧ;n'ɸa|7k?xwwwv{7SCgġUeOS}IqDB2U %g܎N4x4㺨7z⧯[j*e.H9I%sVo=JK f.%ǝ&ɕ\t:u8`HeCj 9iS7 !叏.mn^\~._sꋗqdq+yllv~}qV$:VV01oW|KK_zt(FBL-$R*ϒNϹ*MdzJԵcZ(pJiS<^킲;JIS[cks{-hMtTsUsVsWsXsYsZs[s\s?^4ennoŽm_tމ;=4yaI&Gm95 $mei;"OT )V.%'ܥ֧R9 5ɷsנsPGd{T.Lr,/ʬ 5SE"=wt-~uΣ0bD.Z5z,vsyjX^͛7;LW>>nލIuŇ!O$hξOhבQiTJ&eTU;4-,V%>Z Q#,.x 2  .9ּ6OebԴҟӹZ0/̮O!bY$NZ\$?m(KM)y樃y`.kNknkkkkk| X]ŵ;X)ÝƟSMfk t'%^KJ̲Jkij/^Lܭƌ]+殒ܻ,?A}q/, U(Mj])[ qq`.. 41ԅ%Q4Qw2kU.Ӛ)ў,?e-襤9]%oה,.%]]z緛hɁ/#辺{ww'wwVqrMpMi=,D!uܴ6IV0$Awa)G)or)Bs1DmR6њ YNM)-FJ$%("Z>G|ZodJ:D^h*] VYiT+֞*Pj=9_KuJķ.AkE1Yik;b ^RzqKr!51wiCm,to8- /]69us'ϐ\X?$Snd||T'7np/er;#%E}Pu])YE[6j]OrJ{cn%v M.9/rB]YKΩMܪaqPr"PV#gqQ_4vRFrIkkkkl.lNȸ6"nv+ ~۹:mnFwy$V` m$%7/̜R]BI+Z*KN_gMR|"n5]N`?a{<)?Nk\.~,?-;仚,'ӒkiNj1Kngz|R* &'T舾T[1wvF74Gƕ>EѭvrYsZs[s\s]s^s_s`sas_5_u}rxyٸ[w|>u+6=}|P;[0f9/~mLTSJ ?[.K,z{p8mXMWD]|IEArD\7uΉkl.lNlnl2O/nh{ā #C~s| Rd՞Z &%hg:'\ח3}I)okKQRvfu7R6Uy"*FuQu#Xz+:p.]ٲ$B+}ӟR%%U];}}|QnɃO\,=%e&6C*-ISy,m -Et?f8{[Dq>j%ّ1ʸ qHTUR&(-\%”U}\6*eGZs4>ķ1M}7˨Lir]jR4f0ɱƦJ[lYKq:ל絙Rb:WNJ+wYe5B9< Y[济2~ݸ^^ƴvrHK%MퟡR̽.֜+F!-m%Tt竩]ZM))AlvnYGs}Cn[aq EeNġ+ŴsUI$O{t$Ϯk<'Nln2"^Ga|ع1Ef~6jifp'\ ~)BJ5Zݸ =wa& 3ȩ:W%( 6u9}\؜Yee"ɍ:?.LV: qӔ'rKO'zbi-QkY=jO_s =gh gkmJץcZ[&hP F-%$+jGtc>'\vXQE9wY%Kz֖yjsZCsP%>=4ۚ d>`))~7a^Y[۟ε ˮ2e:MWpy@X8) 唜˃b. v.x gw$Z#񋜔T%D̚y}͉͍́͑ͅG4r?KƧoG q4`݈Bho92yӷ틭G-y$ږ4%̗J#]C\~ƥLZ;/9(9W&_k~&wj{p-$ IR)0MKrIRe uj4tqվxy/;y}́ͅS'Y2~n+Ry40 i"E](=!ggөI8Gu;o[ΩR\QO"|vý͉ͅGG6W6ggoY2MK VO|&a)eySm6Qnv=Kߓv\=R]%9/y%UepLO|-G.9\OH6uIM#һ''HQY"eg%i x.]\l.lNlnllll|1-^̝v{ܔ>:-ei>2q/~rSStNYWQ#s!{-]mQmpV>+"έ:? 9`Juʀ46'676GNb2~sۃt;+znj9>}IԶBx_sO/Rg\!Mnj_۽p+Ħ@&0'mrJ'4SPꂒCڢԹֵF}`U[6 _fe4t}Jyk04>͐vfINlnllll|1fe|iC++sMn^(X͸H_jWtΎ#%D* F7Nk +uqoݸy̘mM쿾QjwMˢ uI9s&HDʲjxMkȥMMRN]&ϣ-5TGjkzJjj[xHSsE͚,="ܵ89շC @ɍq^;/_KqMڃNK1)3 IKv#\}t8.<;*eR;Z0?/ n19*ڽ?oOkkNUjHVKh^w}x.6Sݲ^SJH.lNln~ʔb2."^^&%v˜Ve,PЮ_${N]ׂ5`BM3C_tu5q򧸙B_}H=ȱ))ExH%Crfsɸm\ǧ\ [m_ZHZEZ |.qX-zkyb}\恃HY޶,u'/|hoʃ y[b]WB{+,Z"M1Ei9[?93>)J#~\Ş+P<N%U]ehSڋE,>twҒPH(3䥹9\K:HWKӯZca:gt^xɟ 鑳t 8+oٖC|ʢʹ39C{Fƃsѩٸe[ }㆔ڌ>n:Lys+<(]yCYuP,Ws|#횅~L|ꦽ-۵r~%;mQ::{$J-6{r]!I{n,SeO$xOLSS#y[ 'sJ~9u kveW6g6wo免 {wԞlqij$ Gy#5_d9Wv5Uyo;Q-FuGZ{;z- S)\W-eCi]g.lNl7G6W6g6w/L _'ۘե7ʒǼc% Ke[f~kO_sT+"dH3nu 㒷"9ES"is>NIU_ AX)+]wm#xd]tJ%]u(n0~x~0QKO>OK1er ōSOp֎zT_M|iwwӔӇq(ס^\1WY;?TBl}y|)u O׻9I&9hq:?|J#BMtGam5gʢćjgF=K?|]py Jh=s ? 4:p(nnllll|Yj*V*>}|CR=QOyuZ!)I]CzN p8NRM_aeY羽/7 s^dܗAH㇮%*m!xߏ jǒNK76~T"&*}ԖR'vR}-O>>lǑ}7BNú1Ekꊴtݲ\f4u-.;K?|^F"nR> :܄G{ ]w/SRKy65>Fuеl#%O->TTW=_RަS0>qtWq翳vVPZBKsPZp.uuij'sB}0y%~ARSu??Oc;>m[RJV.HNT0Uf?s<*?oA_n6re}|%>Eŧ..eHd*И\֚3ڍ0Zy\;5;e ysץ~#s^mG˸A)E%iKd̡y-;Z&ɥd|e_v[u28Er6V19sNN2YY<~IID1C2~۴*Tm9K[s%nYv'hѦtqߪB/SER6F>͑߮-2un0YK|@LR gѸ-%H߿~Abz:Sy~6Dyu$sO۹'>6fu!pSŽDCp#_ǟcfoR:1)!-R'/ޔGʋHVJr\JԊ@\)QQUI6`ӏ8IOۂ%+zfrb]a,T,KrJSK 9њRn %pBd͝/&댚!CLB7u/Ww뽨"2Oϻ?g6wn򞭽>W޴?+bRF H'_y"B?.n6R#?^u2=#N9&2ݗC){(Q[}'tz9МnkQ(9e 5WԪS)T*S^UCLUr Pww\}E+}{=yؔ=Sws麕VmO J9̙{dno|Xqs4w!l&9Ȝnӵ NXMP:(}0i]Nj>*NUy̱Zm]{hq(}uœ1SyJn8Gwc}s^΂>iK=QM{tH{vq2'|J3{)w|H3ib!2?bH=kUk}|]yK"d8ajSRK vPfٵf"5w9wSC꺅*}pôRRs)J8K{א:k"$/j43 A&>[7l[yJq(C4_-HSB 1~X˫OW*5 (]r">n-hH&$uͿiJbS>~4ZMPjs~WW<]WUtq |Hf`})ÅI8YMjam3礒֜B#Asi-5\J&sYCS8û;wͭ1nss~۷mCƃ}ν=Fgx)G7ch;7{Uc/M]__@NOӔKȥĔjZl<61O,tiyi~")׼.mt`[iR(hS^^(!fRM o%U$_/5~"~p0u_}y=bifex($Spz=F'r{.:/mb2nگ c|soa)$͕L$Ǹ ΜvSR/͑JP)hCu|RJa2)I%$N>” C?QǸQh o!O/+@sF{@;>f%2HuR+1eNc.ؒN*ゴ\:sf~upUq}5OEgҮd̏<5W*ezc!M]W7=u%OͲxOMUKoc,7Gmد^77讔SΨzP!u?̲DN%NyCn_C-}o.Уe%G֯5]ܣUٔ>[l9s,]9۷ˣAGHWm_igE^5Fi;r{Ko.-TƮ[DC>uZ˺;ѹw*#%?)b|&2?OR$uumk>ύg@M~NLÐ[b\=jXݫeݧS9%=FZٚ6.!xKa(2n'7ˏ!׫U/P|._8MZӶ%ˑh{7"g|cJ{=.RkCd1鐝:d7tAԢwɔdG/ GtC\h'ՂRiS|LA^Jd eyCNhRgdA3̕ڵ;zsiUg+ʱ ?:~qe?hy(edHdp>,R71G\|ई8#G]3^I E]Npqg=uK]cGC'xP񴇨f=: z@OD$r qB:BWiq4Ct_r+P>Gv/uWE& "`kakBv=iczZ;]}r=3֪Z@rDhyrjEKKԕu꼗).vwɬ]Ej ?̉U iecHl| #+9!iTk܎|HkWkȐUu%>Pl cgASM! ^JipMblZr)`KSihes@c&9TTўTxS]K|se?҇}y۴M2~.JY"ehM©+vGJ,^rO"ܚFRKۺ5+T2GN[@xؾe@>]~,DzNѼ&>.u9ӴLn~"㬏~] k_K)_dy>xW_k)%RJ]>+Ox=*o.eLRY5(}r۸3|G5 "?jeV(`ך1sgO>"y_WsG-zjWI'NM)|6;uWOoWE}]~`i{v[=v29Z:뾀uᲲr`al(}m2NC;:|m,Ԉ,9m)CSުND%w&yxvZʩ/7_?[V0kiKtT|4aKLglR?T#=Q];9R}ARk9Xfd ,2/>b\9[>`j*{-yҮF%!QF-iף|6Dh.JGK˓LFԼs+%i~2묥uhrZ ۛdp2=?D'o&:,doz}+[čv"hF9c7)]%%Ko96ɚkkTF2'[0EތN2c(N(Y%2Y!ZX279[a(#^֕>|J9Uswt֖ŗVMWͼ_+VWL$a_gk+*E.gEwOIR&U`GfVj+`b=#z: "t[o89= mF18;ɗ,AN3!ۑ,'jr:P%j5>~_ SYB ΃8ms룔}/yRDx["J]6a_gh4L58| [rxay}5(=[ؼPBBδJ-![app'?,ιlrs/m1>+ {q1;!yj"a/zK12P+N%ͽfS9Y.OEZrdRΛu.ĮkBZڨ44M5 4 OC:•ŧ\4X)u@(9j)(Ң5NLe> u}o"t1ԑi(e]heQ EWZι9Eש#nWt,Vr1O]Ygè[=`zzŗvM/{ʥt1>ե;G?-jG]}>y7;MG4U}M{y/q؞?jb荞R/l|1r.N my 9XV(z/MWkkN0>_ X},q8Js c7վ^@[wK9뙑W,%1uou95`J"!r^ChhGW+tebLM7㦭WC7[Pf#jҦskRF| a9BiHAލ=ll).KNln37_{OG{hS*I- Ɯm=SuiQA:ǛC^ٲ‡ uE`QQɹsrTҚMձgL9ȼ 7 :75( -pM57 Z]-Lt4sqifJˏ/GùE2?vCx`Rgt^jדGD3«E'/O&~|QiYTYlb鏞:S3rDWD၍^KiA#+d=h< $)玸sGƒg{zF} qeû?l'Վ''s'"߽ Lw, J6n3mNYדk܏jwTL} 깝ͬeoMGM-YyZ)e9:seUou%^--{w62&5;/ ,ޜOC+j3J򊦜2]ӢbC^O%JnQѽqޅ_|/o{7x/nN7PGz~W[}AR(oMnd_jؿYTRηsi4GK VoV ΛhYC*W#2N[9ͮ(O"RZ]PX/ /]=>mp-?-<=|vyuBA{ ,'Tn|go\hIgKCH*DxC_(_= yND8EF| twGA/{}.xWg&,uQ( "x\OI[g:B--gnD?g/t>PEBur\Q-3h \yk(Zq,weH5IK?W:9>BG+LgCZWERyҼ.R^ZV dE_NV%Q_OygE{=~R2؋k t2ڍAKi"e]]s7CJ7f1R;X8kBKOxjO5U7 сͅ5:fbݽ3'_?iB;}Vg❊g@D{F`(5H,5$B`O2*5ִk))ߦ0gI5FSPm0ľ%iBZlj>x>ag71j=s.JŒnkztRvgW;VA27#=T$T-/ɕjD-KObʕ2iFg55z*GiyҜXCkWaZ[W9Oy OW 닯Y/?<_gaY_gĴ-Wz2XKO_*UI"2OsC9}AlGw>z*VO =)SO5>Ǔ\?ڟj-y 2^K;^~/;brb`"'2dQ{3T Y/xNY&}l~^Xکt*5ȩB (@oh+A`H+h]l1![IERd˪"`mFȔ%MxKr7 )(ǡ8zi=T|)b1At!=!5&.}ٻ^ N}rTvV9%#ms䛃G D}.ǿ?/gx]wI_7QwS8RtY7UO%-b^[ZC>\h7=UIb(gLW;iuf "oUз2&]zͮueB.C;AG`F0sx]Seԓ"WP =N9{U>4TO,(?Yuy/~Xgi ]93dy#%PY Rgc9GrGHa5(E^6SY>&(ZZ: g~Lс`@緶3z_׮~KAx>$bֹzz<񽒳W,^(Ycœx;.ν{quwo(Aʽf3c”46Ň"_Vi&HkPoX3tilFjv"C 6=9<- ub7hsaҺחB:u %Bv#ӒEC˖OSYR.\ YOhUp$s;K5_^bf>ɮtck{Z)պ (R˽MT=s4ONput'z2d1{q>=equ|0&'Ƴ@cU- s @ɧޟץIqT}w:Wqҧe+xҜ^~8CyCV\r2T/97\ y|;@?G9O uFZY-z"Ak[ev6t9ssAS_HE,RMp_N/]ѷ:CCW2ga:7 s'm{CՇ;1w*S YS[>yu V*ç()r0!B>Զ!'KmS$6=YPWEc>$>vX7)}><Xw=)WG:ڗ~%[-Y  J1]69R璂=2 E=haX|Z_'kX\xkBIi%Dekaֹe_s/yuAfhښvIs\Nۺ9k̥ ]*4 JoF-\0,sݔdVYO?Ƨ|;D!{prp čGVe^|#n# Ѥk3'kSiY~h ,r\=sɾ5[,+! J)EtvNݼ7>g39=XGKi?Rq}ROr~.4>Ky܏=#d.<%9/Q1鱯Z_΢O>8B![uF-[_Q2;~QH2Md9x.!XwJJ>fe7gK-Y]mm -@Zn}ʼ*iYoHS9oBsc;s+Rb4$cMhȐ\xv*[޵m7[sPERR_y7I;v+k~ gzպ,wHrYk%쳱>_û_\]m`ހq 'mL%Ӫ7kc<A *9pw1mF 9r45qcHaЊt$xOXcb铡 q@LAiT N>a3:XNY6(7YQvvgc}dp qzxxc؞q.V &~0-t(>FM@IU#؁B \BOQ!?qsrI/ M:^r"qr5H&NqJy% X"ภ/{/͞.naw'҄RhpC[ c#\4|s2fuJ :aO%QEw>4*Fa(><p>(7D> DzMsODEdnr!S1MT&6ZcWD7ωNR0z(T$XZ}rrƆnDb,Sms'r -zT~ -/ Giz 1W3ThEhƇ%n|e䔤 Czj %'5*~Ue;sq#pM{ };@}p0IFf@.J*iT+'VqIf?@M!׀[qEa3a^(HN9I(C@z:&=Rqb'^0mDIT9t\QMv ޥL>)1vUH c|8N*:D\Qd(Vl8ԗ+z}MDJ^6:D` I9;; p^XrlKH.&a00^$xƊ*ApF$kecUeefzQ#T"&NQ5pZ5KZ/ !s]/NcJѻdQL|Q㴗JIȹ3X-r(ə!X,Dv81Vԇ rI.;&pͩʂi'nY!|Q(jy)L)C\:Ƥͪ8&f7I8;n1v>x09wgxuM60:e\R@ڿFJ&Hm07͈@;ƏG}wN2(4M*<|8bY"8R<v}?=Jygr1~~:71Cx>ЩmܖHmf1e#@4s(;ZJ.HU44qy5jjl;f^ za1W㧏++5 j[?ݦx]'1I6+rњc.mĔa'+Th55ɤ*2MUdiY!9weR@T#LC.ѕվӖYH'6<ފGq"\fdKOY<`+#VY*$BKѰTR|7R.3c@3bIԈvU+jWN|,r,5u|4ߝ03!:\KhAXX,˦L_TS߄*/-zS*W=:M+Iy?S}(ILZ77䏉~ bNKXvV{@U2GH[V,yy8vED9k-~f߸hڸŇ v6!!brC#_1"w){Dn#ۍ aZ̵}oT mט*Eτ<%؛>+Z'?+s6LџDp=`[XF\?$owpl)kج.j-a|=0nB~~G^ Yrv{V}p2~:i-&X@$߆gcmR:3.mr܄YoI4۫bT98r2a8.ȣY{q*Pl5%}L]5o?-k󰽅d5'<_W"8]2oU>;+h2p]OIؐA.eG:xAQ=L R{A45>*^PRhkj@[L\3;gM>Ec}hfܵ ,iߊԸЯscf"vZK*ԛJk̓wJ.+_P&lEEE='Et'<ХE; 7r.`nk{\:p@U/>y*JcbPhvyI(s[p;οcMW{SMҐTZ^cξsgkzdYi N_N2 577 |tڈ56{ Bm:}k.4jƂA#RQj,؋ m}!k8PĤ|qt>󵷶\|2iǼU'[u.$̆s.xyD͑];.9>('6{?-Sx*\&̯S(TD9ut3اyC,#ܾE\9X%jG 0҉/QvsuH7xa3'b|[&ư#LY,qGaz4}aa S9ACeUy;c=XTSo9XC`|gl hk0J>: t-ˏ_|!%}r+l(Zn'يPFγ 6l p][` )6 S`4c ݓ.ySLEl^=4LW/)/د,ڹ`B Z|Bmc`{Yfc8?;1S)\w u.YBg0ć=nFuNMG\V5WK{+8&r#|?HcL9?Ƞ N3C"/f:WHeS8@?$ŃZX ..,K䟅1Zq3 l;&HzBA ?Wu}w'6zzCKywwقdFkҕdZNToV4(AZy]mw왈HVi77Yx1P2u ,@wR #(_!Ny| hdĴ9 z'_ufY &y[%b 8{!w]\;"(tzZuHE=gTWڧŸ#RZ!Ӈ[@iEOrʙ?scake2jR̃|֌A| EcY0A<cC'dg)Fc2&%DHԆ(v\Y|_>lz䜓Np.rX,-`M#g0yI -Fnso-wN-vsƺ t4xGo{mG'V fIȝu<: xG`0nӰ \7puu~ {sRHk4`7JqΙ:"gehU% S՘} b9\QfG { zs ]cg60U>9n_JEUʐ$& *,ҽŐ(q4:ikhYg~K-pv{bIaDOޟ 8t}S#C#Rه*NE"al5.{3 K$`'(\DO>$_N akW.kt⫅X~cJ6l; SD8 o;=->$"َB(7lD&(9 _hZ10Y@͏qםRjnLSrAd,W@yk0Gf="8V; &ƒuŮsm0h;Z,h pI7h:[c 'B.<OGq^J݀Yfto5(w:3{Uy #l|?$oLސ[)NJ:򌳽9葨@"TXc0TR s4 ,xHSRI< ?6|ݓ}3~2z{I/yu|)e$@ћ)<;yc%=}Tר`Q%2i96 K7ZqR܋n\f Ĩ th{ˢN O蚆M_,m؂c.?unkJJGlڥ{DoY]w$,M-1F=:+rriđq[)+cQ` U> $.>Z\#+I`7dzGRXsTAg%SdaCz(խ=GHj?XO`QLs)99i2 T/ɻD\p4S,\A!#VJi5)v:[j5fF,!,ͰJ51oRalGp}{M\ Ē[sC2D|/1mxr.4Ms:Kt+Z*]ʮj2AƺM mLQUXвf)%^̈7~>fk>rn"_+AgX)8Z5$Ag~Qz|Dy^|? q:6,«D|Z9 :]c=a˃m4!I?v~*te?xyg5ƃ߮7xW@_PQ̓2v1=v}:ѹFNR \GRgH́G_je%o( Sj{9O +6FsOٴ'T @.)l30!6\Bt=VԅP$3G:Y"e2$4rLZmOIxvDž )ovTY*Rpr'Z*~XSWHc%Z`QTNN2qWc?w"*^,DZbI?ޗIzmr4yM:G,;U1l=eYր:&sc^8Lm/a]5p44paih0ƬZ#NxNy+V/qRH,eX_&bKK`&Eb老`-ߤqNG3C`Bxp6;+XP`I.U4zh:me \20*4n*[8\pѾJ,4gWa?'anG+(6pA591lxS+Ğj_# |$WZiP Bu.&5ZqV9!bjg+MW4Ìc9K4;7*>K8$N߭u|+l>ZbR=-}KQ=dIRھ"#֢g6Wb,S8 2yNWS((aXZX-l|Wb\VНʁo) \2KM2ws ȃ]@e`VaFi 20dN2>FANiR)\wYyF6c4Ǥ%PQ3_$BdKִ ?"juXeȊlJ]4àmg\_""aaH4'tV^V\УAid^. ZqjqwM|FUgQ] L(T1aWXwaaRا@:1S$^OTF,H|m!ެbqpn_eW$XBzx)# 7 "۠;/ݐ ,& t"JFW mR7Qc9d1 EbQJ)gw2cQA擀1_0mfUD_u,]о)FSt-3D4ߔXjb]= {ZUQN47OS7w3}4͇HZp+S?<$MV!Y"'5y߿?ח4_`bw`|7~g;{y\Z4@FuQ*tKuiаIEOWW(AuujN&GX | oЁGgo;ӊ }\nBq[6y/ИngaPd!|4BŵV C Y#~Y QĐh8)GҤ8V4Y}Zi~BFPLi_:Y(Br4a{%ٖQ+=&{t#5DE]+哫ѕM JzRVEA|sܶ0kn&HQrk.@qnDJobK\Ųʫ J ıb\^jS;e6xgݣ4@U"!R`x ͒?x~VMR;,jdVX{ \>\ k|=IuEYۄs(π:ί{MY5uCIENDB`jquery-goodies-8/slides/examples/Linking/img/loading.gif000066400000000000000000000152441207406311000235450ustar00rootroot00000000000000GIF89aBBCCCuuuׯUUU!Created with ajaxload.info! ! NETSCAPE2.0,BBIT̻qֱUalK'eޠar,+0X4^epX!Gw@YfT1xRNJ*;gh%]~[5LIXLs{_}Rrul_^Ld!;a|]_k,qMmn8i-9~oi.)^)M.^?xmip-p%PX_ +O]{ XP A0B9F@!)N\ɲK?b6$89zlr ͜8m JhŒV YcL-"M&m:US7UQ8b~(`)+դԔ"UN'ֶN]q@Rkjkgoq1>uGu|f!xXR֙Ipaoʣ2xC _LPr`Dz/8͘BfIeY5E^%Gߜ}^8 }Nzczi$0Y@MR BT<! ,BBIT̻!qXalKfyV&ޠaTd0 l*VBAp@T |QNJTJ`Y%` slGI[GpkV~zet"G/,cz5awo8S)A!&hTdj7kAgBsj&aˀ#ԭ9/\훷 u}K8x `@['eq]>!]o\dC8sɳJ{JB@躟 Tg(FPJF96cT4Q<&\S*F"pT5eg]bcCo.V`Kx&#խUì@I/5GNtqhi-` UZqHZz'낗.d>N!UwWU59##/p/r7ڙ$JǍ{B_)E#+M:4R`OVW K4J\! ,BBIT̻!qX`lKVA8h|Un*R8 ,' %ep8Ni'bBIXrM^n5&4r`MqIMRl&W{x[{[1.di"S0no&,Ubm8U9"ASf&ȹIɌhơ)׾dD`ϰ-ÍT\sdX@@~* naxD˰=`aE-ԫD 0pE I͛8P)1g@FI͂H!ɴӧֲd(9$jHS*])jNe| *nIw({AD׾!(l .XvE#5o@s,F/L&F>Yz\j3f3ش+ѿ#LGY//DfZh_ 4[E1~Rқ/'z|y㾿GKw?u: |RzQ{_zy)( u_E! ,BBIt̻! pX`lK[%ĔI8hk}PR(X4M8 Pag'QTHRzz*0PiS1 eUK\)t0k)sZ);_`XpNv,od",vY)B~*Bgn.@RqdƟ&M-YCXY&bS^:ftU7NȦ+uk""FdGCs e >UBH!y_ʜI%5ֻ9!ϜO҄s ϣH*52fÌ!(bgȕW,0GQ+X"4dpUW eiNw]i#ykw-^SmT vwb )gߊ|f7FƳi!iͰjn\I֒T﹄"Kڷ A, jJ/Ro]\h@-q q\/wwk-8.|t+|x'9ן 1UimGN! ,BBIt ̻1 X`lKV@8( +E^nX U DAPaG4P6Qo2HVLi 1lMЇrm0 ys0*HvXh^fHYn]29)/C|lO8sHp9TfCeSRŪbécU{qdRNᚢS:ȹZC~A7)l">&DGc1"^G @8Œ.OʜIEF,rsBʐ"FS А}*]ʴ)=-c93Sb1ej6MwإRҺtb3պYcۓ"BrdL!^ikjp Ve O3RfH& iI$Y!J ̊$ՙu`@q_ Y3_ʾ{yᩮ79-oHx~*kƝԖT&|مLY^Ez! ,BBIt ̻1 f!,EU@8(<2Un@*Q'A (6I'N&*%3@F nb./<`J[LYm_sjvxdOu+YVc|6!r+uR(9Nn8ufmD9¦s|!{uRTN޺5dÚtOUXHWd#I JHpmaC/'Eo;hN\ɲ˗+IAき67賨ѣHyRgG:ٱz%Qx3#FN&G 0M#Zp"֚4r@eRDגօ"ԉ:)fhPyX,1@AIwtl V3:#?jwc[rA^\Lܼ|ͣVjbk8 ryd}'8K>x dD|,E'wC܂QL ӡ<! ,BBI̻Q 0X`lKV@8(IUn@*FIɚO"FTb=@)!|RB# ea ^-؎sdM[QNnV~iI/huQfU9c?u8_@:cp8v?.,s~l_!&a^ ~!#.)S޶6#"ئr^&++bG.F'F1tqE1$(S\r0[8 eΠS=: J#Icj$3xTXҟŞ^jS3\e.,h,CJG25[oIe+[y-VvWV9{[q ~֚\MR9Ϧbj%@u]]zْ*|@p|1*Ʊ3*>@ O|c@E ] *|-Ȭ$¦\Nȿ拜B/cHk썭pQ} v]|OPBd㛫egw6fDV\UW Ĝ=! ,BBI!̻VQXDalK[ޠhSE<n *Q ٳhpIL# Ti&&mSfO=pRZnP`{/!J3Ve.{bA!&9_HC8#`]v7wfl&C):D)eU-@{"ڱIT.a7FF3Fϋȭ=rŋ3j%G#' cȇTI˗0cA - 8@h){г\m2uX)x2;U6D (alDu]۔Kʧ1.VxB Yx/ps/Wvq'X0eW  )YCh[[a'U eTYxI=-?3sN5;38>]zSb'i (Xpb+Hfyy/lX_oi>WF]! ,BBI!̻f,%njko=!EX@;!J7Ś@(\<2o TptmNyiM Otysc'}sxQYr"T+D.S`X R#P][+RDd-Rj^G4m.^P?> HפvHP0 J%Ǐ CHRd SxHI3)c~yI͛0j#y`Zyv @KwфmםU]! ,BBI̻Yb,%nzm 4Ujщ2XF ļCC2&@ўtՆ$5! w"2QL)\5yD"_lQ5Ws@zPXe/Zx<{+y5Pz,qc-qn!`!"M([ѪAۈ˼΄+f$U-:rE[xg7z2nA]aȱǏ,\ē" (9!ڀ/_6cI͛]ȉe$Kde@J~XB 1z疨V;jkt<Xh\H;ςE;;')(K@8脽2 \=t@Y*4F m옂љ@نF(v5Е< a +3&|5䤏) eH7hE%ƌWV0z$cCžf}g5B\D`:! ,BBI̻qf,GUHޠϓI60XO =$p(CկPZY{(0DF>A{54:,F=KfY{kw(h8Uz}-vz\7HdCz+hCULlQƤHLy7'Lv_ּԺvA7=  S #( _:L0->4S^2ֈwaEiH\ɲ˗8$˜s8s>' U0o xѣHZU}zZ 3UP\H0N3xRNN1\Th_nޞ*}妉ȓP sK`9{C > 2Y2zq耴PjլIo(j6vDxPdM%=G s}K168v#qGq" hfU="ޱ\H5ßR1D^TQ#3q7]8_S N4O5&BQ;jquery-goodies-8/slides/examples/Linking/img/new-ribbon.png000066400000000000000000000225641207406311000242140ustar00rootroot00000000000000PNG  IHDRppKtEXtSoftwareAdobe ImageReadyqe<%IDATx} \u}K-ݒZ P/B%` g1`13%>9'sfΜ30c;Oq0!d|aHCeXl Xhk^mZ(,jJNm^{VEt*Ȟz0-&˶"3ZN<"˲(BJR!6mk5~k\k9oƜ/9qs|^JE!' dej?>o?GuS.cE296R@a9|a^{rնـwJvL?Dlլ€5k5 :h$dm*=xUBJ!]x/NŁG\x|>ЙRTױ|fզtSI޸Uom{t<ǠCPQ"HaM:F . {_sX0>sq1Bx)]Vr_υK=nܼGk_<OO{Pk]bk[(ۓʴ z3аk.UyiJYVg,QٌlI̲5'J%>3B*Muo6.:좑LHu 6 xWX͙}l߂v7$sf}P`l#U #a16H5 D9nxDaVfc,yL~34kY^Pl".QDbc|{%󏑼Q6AY/nHv,@r ϐ  ޠXD}p* ƶ*Q44e&7`P .HKؾy C}Oo2U9y<޴5u.v󢅆3"Qy , \PT݂xw,,X'E}tH.΃>| ,“N=io[?oag3cXR\3(^UE9a+a*sEgU˶4RDQ^08Wy|W/&, ޜo\һy};n =HPJ|؍1#b6#n2xK&6nPwL^ܶLsq@ڎ%Qqޟ?l0o ޜpXun.Kh}J1dʌA5$,6p xå`鳅JFER ǖ۾oj6 `ZWXy۷y]bdAH2 I 䅆lnY.qEj+lC-h #>MAygM%x|7Y|$L߂n,(f$ZvRXȔaFE,y\MܦkeH7u97ݷhquӆg%N(YtN x^}FmD8jTfN,8|7Vk5z^,y-&, 7==]-xgm|`YokLwaтa~:P6T_Ò&fٞ&QFN!:Bv@tmK|&1N?yt[|1k__/zveۇVyctKZD7ÒfbT K {u^lخ :K ⡞*Kϙ(ıa☵ɤ4:|kߖ!,'pQo9/m.ϋW7Kl얀;Pq%c.a~&Mv!$ Zu _؞$m_zvˈy'͗X}ٙ)_辨8+ YB=Bb@ .cէ7]u!s28τi$v6] o[m}m%CR$ҁPMZPb^v8D-:$H,q϶YQ|0RlICpxXd&m?w{q;)5 ݸ޳:Z|"E*!6K0~W*R 0MfL-7g1N[}^N$xX_g,pNs &1Iqӫ ks\#T{Ǣ }X)dJ%lTj;q0;I?qJ gNcsuMB8P*'&_}办ណrԫ)bT- t0yZ|SԹp1G_Er[.<I~a*:crAFf! h@-sؿ$vǕ+VY}9$&3ݮNlT8,y.F'蟾}gsZ~z/;HKl6u)6Q5P1F؎x!>0ƽnj+ޛ_~+Vs,L-[$L!/˄EZo`-v}--_oTsN'>u =C,i38j9db.֠Bau_*{aps H}2_AM lM1H"2 @c# /J" VO_u"?=L:3QI 9 }un87DiyIJԔ~5xoVttLX:A!Q̘̠W,9VƨPRH-ޙZ!h(w9Yn/ƞ@)\I5z8 o7+ #';nl^AHHxi ׺ky-~o8| O?}mP\&81Q}ld;ʣ4p;w]i\3B:d𰸩teߓ:P}_$jsq.ZXGQ>E e

    q7 n=Q76xK یvfjMj_G*CLJNWC\#69rRle^c,ׁ.Θџң:;Е}dKݒK=BjK#yȖ wMx[-9;ҬBוw ] R XDmhI;RHK}ts4?SעkK4H>#T,bLdFvthwi${ xSzo:y977miccШH2va$1/N ?LK/عo^0s^]jѲCD#U!n%u2,XH-䕃ۚOp\[vH^P]@m._H biEILo4/?4NzgyG9, ޹T8\)B 4;!=|qQ PypFGv|xw_ۼ:VEtP4/.OXx('Nh N}3]oi`ac3B4if(sT6Ց1``ͣYf ;~̵A߼!)Vm D œ ,ql gP{[:s-w`0=!w Z[TA4}DBȺӶo"dF_p5Q ;o=1 (x.<6' {֝5~^B2竞t$f=)}GFɒr 1ey9v!z>lNzŧq#FgO~a~Nƃ 4jPoIukwï6ߨ9{# ܣHz$%cl&Xt.*2e$W<0i]9=@ѥ}{hO9k/P!>M'} 7(461ĕDᮯxSnСwӖ䧮ց|"”x/xn}9/=hA9;$ R~-#wVg'y4xbJ%]Uxp<} )iW:n#cݤP V5?dhGT&$(:jUt;un_6"kxGNjtI[FHRo#9Տ՟i2j|4̫@kg2ܱw9X#fo```vKMaqTmx&4]44[[OilZk7L 'Q:GG\a5Pq cuLhw4 :1#WH :;3p$5-p%+nwXjz{(N%*E0<;l.jJsw $0gejQĻ-r2Wmr Oso$o1݁H&ūIH̗ lZn0Ó)z[ʻ+E{@3-@y:n~ˆ D<\ tM KEs۾Rvdv0NU(4߼$PLmR"[D MHψ΢92[j<=$d^XRPZ;8 md91tjukiX>j 1E"e]? ]mTYrt|`ˎVVYCFMgIb95-V:i@{1-Jusq7xPYi;M(TanH ץB1*{u~OlF=BC]53\EHM[S9,p-s.Du|z׭e[@H^rklɐ7- j}/f:K\BukXAvVǜZjk[E~r=4Z o[xlb~ypy(g$omPYau/_"uJ.l❻0A*ɢ6q، <R ;CA *xQ!lg$#/2`*$x}R#BFյߵadGؼ0ʣ%./ce;Fj2@FijZ1W[ C\;\8h逛xrr !,ݺtPAEvMuF ~Qʵ)7xP7Lt4&*eK6' &r#F$ێ{َl(FJdD ~M[mtrk; 4o~J7Nr>M1jFh@G6Ι9,M``$}ɉYlU>?[ZjDTD,ĩgas2_Onq]nsq(7lwĴw51a[u{Dqt68xeB I< 3 !|>(GK v؛08I$֟6EUfe9*iV[nkh4\ %5t}&K˝Nniu@H20 S;YWUdc@k=gLtjJfZ2~Zi_vўPϺpy9xy>.g#&l?[֒F5Zezwqu c?XWLFKxx@!Gac8s=.-sgEA}?'~frƏ?aH?Lru3+=ܻ+T=)5:<{Rz}m52H($+Mc|( /P9LjᲔGGgy$ݽF=f%rn1 M oNO* ~9ɊL4ȅR2o=T5H;f t #+7nUˍ =QDPLQznKxZpTy/mCin1'05m g93/͛_*=\sfykJq/)fB>u\T$8#fmP'aC/Hzu=j$O*"z@*|53d,]OqXP ^Wl@V6HD\ֆL>'[_.0M4BH*CJt"_)$i9 i^!jLLv,kLXȋ(IaᠢAͺ3,9Σlʤq"FPj@FV։¢ΆV4#qeBf 20L o?ƭ<ʛ?:hwF_nrUáTaKyR:ܛOi{_-::o $Ǎ6WBubkm]=l6! #lljdtr=cYկSfNW 8KoXuW*=Dǻ@SqYն%Ͷx_Cbđ E0 :xBʓ-گjDwJW;mvI0J2pg^W u"0WfJ9l2b ѐ# ݃c+ +k6;팥ثb+.ލUwWp:h:g3n,g%l" I#qc³PR`;|&on9eoct2tL' Y CevoNiwdP霴R$o!=Rgk-m֛W4m~'XO0u?W7Ng{;6v7-i??:r0G|G8-[ov o8'$}YebaIŗˀWh01!cƳ^~G{.|,͘b@vXEg _}?>r\ q՛o0L4f?d=d?NIpke*0η\*`;4yoWa2gjQ˧yR8U+, $D1NDkn"G]婄tW]&$籎fLbB"pbŔ_eofY&:Ή#ڂ= ~7$5VUb yDA"mPMp9ngA71M)W(zZEA =٭"˯yҥ H"ǣ+X r~㓅ƕ i_ Sb_ڳkBOM&W!QsLFY۠Lq0%f: 3$oӯTДhd*P604ק|SJQ≘5`%y d˛۩̮G$DE&EZUXgIq QbGAs.!Ja+K Uh<`FAk#"WĨikr%:K;%C>JBmWC ̧;03뮕\C20ABЈ!ʆD2g08ys@uA,LX]LEۥ0qEum>T4UfbkP6ĈZh"/Qʼn?t[dQ:8 H:!q_*eH\YMR"s} SK4XfɔDAvfm$%Q3OŊ沿kmhVK²ت bof`ρ:9Wɔ5wVjfCQE$r,tOYZcB;A:N־Tp#3kl n_:NY!k2*v#@q ¬F`zKarZƨdҌch҃z q2KRX<\|`@h 4˜EK%)>ZUQSn 0d6V'b uQRrC.d YAtZc߀f_'[XU2O E2Xm?ƥDip3ʳm]Z>Qs CCS># FfͪRL_%r+z%MH,ñ\P\Cc,DiZ_kJfu7e ,uV]:Au4LYWЭe` x֍#vfkZڨ̻uUr 2ung= %z{dx:UÃ*P*KɡDfTju7#Az0Kn=*7 m,dճ*DºF"ί<>=Ӧ;t@%ƚ GYb% ?PY~ųAJ~4:d{.f6JfcM3JQ\\o ՖVH/<+۸Tdk??:">A> <t84ï)cq#iI/M;z~Efl{5T g#N<_Içp͝ 0ǜҤ.6I_IEzhIFng ._+>{f`d+ҡtԻT ŷZ%ᇧ&wfJ%#\a)v*#mAj<(#3:,+ښOfsƐ65Lr7!:6K[r"~S8F+LjA C aql=۟kh|)>g .1F@,^EHlmM*;"Z [Kh,yQJ;kYJmC mX[V5lP<''o8ʄ)h⎍ N1 H;, {*v9C=G>x31T$Bw5ٶ_hm ;{?Yc΋Pä <*-6 qbYіL8fUjL!#WGd2$܂eP~"Ս0\gle'`nPS{>beͤ]cTbsևp'of[l"U ,]_)bh6qncpAP~TXL$\D/!{,J <#l\oJ8)*I3M0ʰoK %3,=+WPɀlhq0,b:xRW9Ls6Xi6LF%֩, +9F<~4Tnʹ>"穣 %8#a+ѽHI `* pXDFZSzkjD^ChU2ǟoT$h#s(HLpS0nf{-drn:֕LB&'v;miWpFEx"7I#n7b"g+=!WXź-oTSLA)/Q39R+i+32xd/¡rVLyƶ ƖOEȸ'l_ a O4X(p2o30, . n.=B0Yk܏'NccnDiE>}2O=!ϚW0K!ƿǿܟ>79-8I:k!Ogcjɭ ;f>/)lc}ZEo_0gIK7'Vi(Qe7Ґ-QNbXŮ%zg|";e-#y#1Ⳣ3~#uP|j'U}Wv7-k$̨mf ƢUXI$-PDr@c8eN|68#4zk"&w`f;]>~s7ir KvrVιn\6{[彵EHL1/P/6^=|zsn)"ॖ>K0 ̺dSaܺcgYxgkr1$c&vcqq'Ƭ/Ps{ H:lXq>t"Mi"${{#%M_'?P;m2Ǵ܀c;IKh|Z2 SN1Ag83?_4+m,MҳxDc~1[ySK™KJ57Iyb䡸K-ƗTY2\Ru) Wh^a|Np43>Ek5cb,<$gc|,Ϙi 1# ؃BQ+u ujH4 "0L._Œ%\|>h=+ֶ&hASYuľ58 zlJ3cHW Ln8IOVo*D"Ҥ"Oa*3,%0ƨD f\>D#i>4TiRڏ0 1 mh^]<I: 8 kJ0xAV ]ʮ ֭N'.q|jxƻ8e<\}EF,$QfJ2`YTfg-x87k]ˊ mT %8,g**]61&_ zu dEl+*UDnVD\qeKP}X_JQ4j-vA:EPA[DblQ2FnX{N;>D~T+ܥ|fsL:~^.G&"6<;TO/&\R9(v8qf>eRzө7̫Xd\*\uBt 3ۜ#Ύoɍ/f>.*wĕwPRwXP*2'UUP2"caȉu6xmqQ0Ȅ[J1mw3pa2r"%' Oi\K4!; v;W+^c=ӂB/E,I/Xړ^8^=M Į9GRN-/)zrxDiYR0.(MiLl&/S'@,#H[OM*,WI-γwn}8);'6b<4۞ !Qc гE}YnCUdt$ks_;1!P:?שׂ+ArCEN?"w"ds[ЪknA=9YrȖ4'FȠp0׷FZb߮G?[Sc r1b>Zݝ *i(#p[2Č/AsA&D /t wt3'hRd1֩VAbZjN`(-׭ir>mT"L=NڡȐZ֠Q#4CejU17\on8wrۥƜ"\M+_leվyOװ&1AlGyKǒ8Q{*p~q؛'AB8_</sQ5QKrۙc?oZUf'orvfVnlk^m}X22uȄ߹pq&?fAtm[tXV?6y'&>_#g4XI q-Px?xg5iǴ&ǩkTOOip^~C$!uU]UX뽐o,l2+fc9=w|l'8QGV,?kkZ4nk31_/ok|F?RDc㜎 4H5krjrO2/pJȁ!}乞Ec0(Y3M?fuGOk6n_7_v.L2L#!ǧSRefP0)X9xds.ZK) GseۮE5MgI kː޶ʬ[-q|a@ANº|8x!θs όxrB;z^%a<'NUsD{mnʭ5E:EŘ 6e`lk^@L˖Y8YuNfXI֯_YLެOe`o>4 75ǯƔcS< V_1FCoM-.w.zU,Le`BT[Lӈr[ˆo= q Ò3i@#e1u(tQؓ$:OU6dqz´xXxژk¥ޫƒ K(΄e$T:B`"櫺[NzeL(_5f:A 08](.!2@e%>F6:ڡSY c33uLN=jˈksLd cY=ң2AFdT-EYV֬eAgA֥g(-W#2qۭPD zAĜrcJ27r>›H`rYl0.>T@MfgR񱶠Zf&ZftXWy 5Q&3 `0.:$F}Ӟd rq4}x"5om  ^{.0?f{=* ?9ι+HşePsFzz.k?3nUm.,yOEᐼdJOQv2vaNiF6Or +>&Ğ?,C űC?qcng dcʘ+'1[:BEUW'v478ʠ㣊u6 >?eRn)#AR-wpNL\d\QcНjwJ 1M鉍qԊ PkΗo '#3/S =+9}cOH%Os;1q(f` A>4וR@Y<1Á[/z?ʢGCpt5g":闉ǣEEzͷ(vOY0_7:q<,(<wц\ {s$a6nPU- ],UKHVҪ1?Y5_7>k8LNٚXY))\jIщN+7=L̀v~T؋SzԂN=!YB4 ?[M.f)&,S -,{nz!t*kYx~9Y_"ô56"O&m-?9h~ SfbI72Pe$tHpsg4=@KlVrdn]*!K6ex21.T+?XƶFYD5RO4gyle(_!MQ E6W p\n 큘OrLyceD[; Eq>tø hk+4N1R:9&)Ÿ\Y$X+Um>_!a,Ԗkk_%ϨX<|%oG8$;?n*:޽9X;lhmFq+GYXYn?kĠVu8aʶ7LE͓0cj8EV3Xar{`mho`̡b`ɷ$ u@f H0 ڈ@D AZ>Y\c=]|.@6-Lq64f-blIҽ`cRca&Ž\!LOy\G](gkIR"\]4JX}4Ħ%鎩lY,j#k7_ƪXU0boX 5*؄S,֫H4$DYFc.ӭl8\bj  m XP;X$hL3ꡲ+Ką䘚_U2UbgRV#zq-sjۧ-T*N0 A`W-FD5\OZ\d.,Ad -3hjeA%҈U]3ZˆK| 2 IaQqQUb| X%jo[bfLc) K [6i'1u@ fCŇ&xbyj +j}@4&*tCHn~ ˌo605hh4S+gbbOόk[IxgRz|O6Ѽ+) c lvwuG_ Gij k<-}A_~r|+r&ǘǾ6Eq᧘gb (1 1g{{rxdHda2mڒ,vZGBCOjq[z?&c2q3{d0sk-U־FᏯ⻡.;Y w Lcq/ Q|3~-eT㨗>ಲ>ُ|KN F -p/ƠʇOq7վ? 6-GN'/ fE$`oz;2L~0r`A#HV70)r˸+iJ\ >lg3IpyF1?|ypRIγ9BLYulu٩."w&$\AK-X}}Bgg`Íu]gìq9l0+ǖb 'qmj5έ\_ 13ܧ_.I 1'uo=jRU65m'ۓIr!f9^H`mT[博 )"uLWC["Am@ڳ:㵟'yC^_͗#[m#jW_iU%$QRU|#>o9Sdc@Nv^ve46 _?əēhA\-$miSƽ]iSu>fbAM0v NSW޵7xğr؜E I̧C8P)w[y58;.*rfHI@amN'3$\>^#dgl14U d`laS~V*=dŞ%1\zOžV$b*INGZi) ~RpsV luV1~rv ޅ@`aFH$gQ Yt4Оv]KbZxU\AgųF$7zi^cZbXi DGi'$F SyDGE2/$_ʎUbnh*V"$F7Ub$0} ;kdJ6hs.CCzS uXҴd HPg1*ّʏe(qxliR,DkQOhbNFv&`r<(W4ց4T8 Z.ɵ) I\xU[OJf" Ŋ6j##eyIs"f%)07H}My|>"omoeq&%1_,=~Y=ESI=K?Ʈq+°%8# H2ge!r=d1:t#q!X._d ]q:N=QadcA<6'%>^ B5$P4TQLࣵcx?d:yV~XeU! 7z +6[m[e΀|'ys}א3hwo1;Jugu=bs[E:x3KAH[U~sOv3}ƓMi؞dB߃[K|#țOV]nhl&L^WQPH^9mknѭA! 4ݡIGj9\ UcyM;łkm)?!bjϗ3-%rwʶL.̊J FZlΕ n'k2S\%O#T ͇hНu"܋2[;ONK+3dbEgBnڟ-js;O r\&l9&flBщ#%\Oq`9wk{GV] E 핅އ^/[YY;y30[R<tnŜř $um[u+ȁMfTUs?y)P%ٿS)Z[ ք͘|KZ GJiIbwv œlHp:Ey)bA_Û"T 3Q,-00MQItA:ѫ98K렧`IKM2(ӬhLnoa{t PF+1$ĭƐuVã0ñV@dg/k*V~+^>Um LnewiҊL0-O#jifƈbrZBj% RTiDF@](ĈuXޢZp-Z'Tfy ԓ]*9Ae|j3FVv[`hD8``]8 #Aqz HҴSJ}<&jWEDvU; 1[?}|T]h1&ё e.Bw:cne]##ȈLcBJaL vp}tL4y #XnʉmaЌxfhJ{yLab{2o ~ŎGƃ2㢉g7'.E Py@QJ7h8ٰd'PWh:NeucP#Oֵp(\ȡˇϼT[ ?̌!|$8F6E$u`bcxe[+V ^݆A!{71cՏЍ#A1yo3r(.L""b5"Ptxu$Sc 5mGʑc5FI)O•"2 ;)[Sƒi\ @xI=y<.O*UJ$ #άR 3J4zs.A1||)D&8"FBuu. !My cD:ӭ L/12NI ?VPZ H 6L2Xz |j0iUץ^F"L))Cӵ&[W2иrG4'$mP\I e E9qƛ"4_$z~TڠFia&9e1 ,hN!V^% B%d&p* `BL/c]jYaZ*钋Pd`J%}?ik ǡMjs,a]?Hoer1ڹafO5cM~ޔvc>0DeH*Oey,s> ͏/@ XΕe>pK)*N#yo?㡟/[kd,үƺ wc}P*ӿ__v.gih?쭰o~45|y 15[A;;Ϛ,[FOj9͂O@kB@El6?5u4mh"HE!AW9˧,r9xPԧӼ֟1ZʽZ?G&=oBL>B7jt:Idv5t"Ko`u9pqROuC:I7[1P;7㸜,lhc{C:DQ .$t>zRYr ~ў"m'_J0<}7ҸH)+v<{gsYLAZJ}EJYw3%$bEυ[ԳcHNӉE)\6ؑIaR0z;㐘vXl8J b61ɍ.-{ԁ84B5.*ǥ1M;(:YbnUiߝzQW:~5RbnLF}խjGs[Sq&Vvt'^en}!UKğ:TfwߤVI1l,VD`**V(,=^"ד+K`mu lX~.O%P¢B3PK ufZ LJUHL_: ZF8L]EIlHy6 }@k+'l@ʉp|ʨN#FoOSgY1@A3ӎFHcE yyD"VԊt.@[W) 4IԩT ~^bw@zSeb$uVS …mYɾh, nbfo2nZiUeđ%`ʦ&4hpz>ޕ1vBH*r1qmᆿ0b=Һ7Z홖 ểXi kn2 <^(}1Vb@ # py:/`r0 0pWoA@j{YHgREbU SUEc+ܑH\%i #mi$h5bfI:]PZ /c'fm.9E[mdb7~W .DT TRd3& ;Z@mWY\D}AFc<|ۨ:RΒAJK1 mwV%Lr13ۗn$c0fMO "Wlc j2bCvMUA|Z5Y#2M;}hP؏ 2@0HޙW!JQu£ni6"Ј({]*vʓ2 iV;ӈݠA&QQQBfzQ6Aoy$ɻ NC.`:\PO7_*xl!>~o7S7#w,)oԓj\OS#mG332;uE]1ZۭtrԤt$ lL x{Ka6=f86F4͑%j|? VaX`$ +:UN3hVօecu^hr82[#6Qd7rexlOGpM?nƽf'.ͤv̊<ڙ}]@}-3G*l򔭮M>vο1m}ŐqH-o!_ҤZ <{}%DZ8r?fV*Gzm#J`ujHh'C4Y.c nanKLi^Oߎwr]˧!Lqg4Eq:_U\03=u?=sVWeq׎\i0 >aVx#":s%H2XȧO_U#=qwkx߷Xsev6 P@,ALW >/L1L~{&#KO_O?qKHnd`:᝖@w(D9)c뜶pq uʐfp晴V}AsJ{ip0`vVir,sFom}`:?HERm[Ox܂h$ BlD$xPY};u$jck"/(IbL^hmkOF9<%' VMѠV,3t+U"eVeB P7"R:^ė$T|Mv"q'Ue1fr3.i&sG]G0,aj1XH$cM\zIʒ pn:k If0Wn'ݻqp{2!הM =لvSM =k]O?^ 7\\;fsM0UogK|LV |_/>00.@HOq $+(#I~mMO7}ܜqӾ=BgeUH6^=umkpm[#c~LbM&>Lymb?iJ7Y= .:) 1MQCўr?P:mE qI{^304 ]\,)G93raA|̬,x?q"yNR|.zTg^//Txɰjg ,:o' 1h I3\B!vU6_=qja?x=8Ƭcٞ=2!Vkf>8ݮ(0Awrf%as 'hһ>A9EGOEfPӧJ1]%0ûEC0F) aU ƳV9Qp4Gb^i0u7}zX"G.ti.!C#2#*aabZxPҌ7MD&U$t,O1P=kI !k/Z(Ñjt \^T:]*ȸ2'e[ӂ G%[#[Q&Z 2vըve:PȅQ.[ҩ "<6"@2v򨓉[֤N0iBYuQPkzEק6|Hdx2E*c@ B&Bm@a cGu5; AЧFȏ%n-ZDf/8ŏ3/Y_Z[щ9~g77&Vf1!|LZ,`@~:SI?7tTMx12\v aVw1s9PZmsq}]'؃dF!ezCۖd-cr]1!ǏqC[yV3i&JDcqJaK,Wm TiTi9>u8G4Ń#a}Hn."EF ߍJ6`k YPN¶ԖLQ+4KW8_ioZY Wd{r)4U,Ip=5Jb;ˍ0d 3 0Xt-/\X!3HZxHeGRA77.:Ť8=cpXjCc ~v7 &gXٙuxrNR۹&z`yku4K_~[9rJVX݅>=hD9oj19&E,lzڳTns. 9>js.E Y̹qdPP͚`r RY_esB L10=?Jna+!룎I\qp>YRq_[2z#&1$ZO4sFEC]?-ʩ3JdjxMzJkdb93썠bcOO \ ν U~F{N"Vq yՍ^DC =),lYiQ u0f;1y\Bˍ!Txް/ _S] mt@1eC7/r~?%2 ,LZ;ֵL33f(i#_BQȐ*?{S['9uZ p9Si69OUF69:^Ev_{-[vU>#n?}i@R WVh'z5R!5PUe>= o:pD:oK(7.񫈻]:rɓ z^?j2!&EbdG]lJRp`^f/L%{sS'L?l}A@&K5L;@7xU3D$̢Y c7@eA¾>3$g*Q_1ڗL;Jncufeѹix&M:'F1. :9_*\BuME+iĻId֛=r:J1HK,)v݃T[^hm&|eH ֧1\2Iн)}fg647 ehhߍ+/GPmjgF?#PRNʦ`G[ۥ]e URzEUɃ'&˘zթ0"66L#'𨲹(,~jGhjϨޖ%ӧF18dˠ"XUN'OT*`&Loj%s(cdȁcA@oȊ(9gHDRZ]Z\Z,omjH~i:3)[.D¯Ǝ 2/i$K}C aH'S ;00Ո__·mOvuZK –d1lm*%c'͏ivϜ?dž𐈛E>E^3=?O"N6`uf3;PE$8K KPE[>0Yr#h&GX=Xb"NI$7{dEDilG[B]JZ]ݣn ͇ f ҜjXoPa_\/7ri2&)r?3j&WL=JbyL}YI*^v;z 觧ish*4x b-]I(S03wmǃ1rc.- %)֧(M +w?brpL W9 +^ mo+3 ,[H.~VeEEPG1YDzX+B;>^)1rp9So`:*IҒ84lw_#37M1ɶIEUHz#̟O+Ǚ4I<6%y +ƺk}ziW5U㜆G]Axw#o$ccs 7E_KNRS5tNvDTƉg,41R>DR%f5{L}䱧x,yDӼ;C ,j&[fNƏ93C#qc8x,ce[pAۭ85c7l5&!+KJ|꼔 O3g9TP3\i׬}&ƀi#X 3+$*m䓶/lP7Qo^;6c,Wۊ+Oʔ7= vٝ$,a"X. iXN,[C?bg"=2ΉHot&M)v! jF"rv!EdRXDbxаUxԉe' %[h6m OQO X>DSw/PaQqr;]HOQpES0 sTd.䪳J|_f2Ve4 ta H[;D`|y8} -pWSY,e} iUfBHڗ%ʟ``n[Q*'B=,)0  4=Ez ۗ%jū-MPF;ʅj0HHxҕ538$tCi$lU1O%ňMVE)?Y8$DX%B[nTC ]u7!#o*F.' ).I9$fJ^مԀ+[R g^ݓ2ؙLh֭z 4dK7pq*Lu=tS|71tj?.zMȠRc`rݩaz'`PNʼn4 Xz1MѨhϖhBEkaf&U9?c<'|;t/xV[[mR2lYV'}ox,InFW9 >[pǏrn/}ؠrµ+KwR\|!&Lcv.hVG]q#_ ֗gEܽ݁10]rI>O}4z)+Ԃs-zܧM7>{L܋ΡY%E:(עki|IUjj.̃m7 pmc i'j+6T4n#%f\ XE -]W*u>:;'oF>4r_xJ@|:̀[“Uf8*i?t"4vGr:F&s2y'#ċSjG@dI5tUcfjCO ğa:|4x/A;xy7/QQ68c}ݏL|g"5DFw/sI[jcOwcG#8C$ŏDy#vbͯ]|)L՞{n=s?q*~Yϥ1GhFZ76n+fϲه(:c?}C~Ur?g(WB)>5ʴclZ1 'Z㹮gL>k+L7B,y-ylN"؀~?!FsdǍq㩆BLm"A.])4m~3C'>$Jr!f6̀u}R:nWy}df.Ɉ^DbV a=]ȷzg:4 B4r+hir12b3ennHfYCbu5P+P`o'زZ;mco|-G)5>P Lԧ/9+`Ӭh\~X0G0bU8!e;KPbHз@|/6qۑgI_;zm 6>IurʫjNvṳGlF)-̀\F57kiK 1πpiA^s4 yckE r`,lkcf!xdž[ʷ9E)h/AeVEMuWǷRiW2Wjc@: F¯Z|b,C `͢W1AMGRiszF[,g)ݹnEۤo\`n|;vè* t,eX+N25ZVo>L"H 0ԋ w2[`y.1Ypí^fw"5GZŞU #Eֈl ։JQ\hM &]D`m$`(F2ePm0D`nA㪐>tO8Yav>D}{-.DefƇOa{yٵp: A~qɉ{מrYy三 wV@YkcC/k~>GYߜ RGVD,sdEufr Ejs馾?\q[pEis #7iK/{"=4?/ ^l. IpV\[M4k7tc+o,q5S@\k>3;+jز7hb;@ܛʈ8N^{^=f&@Ui)ˡ eRDHRHc.+6T({&W 7Bu50"Wi{GwEqdÏאJN$Ze i &;zv;f]k{ʇ,y8W™D\28g) \I_h?Z #w-p?6T\NJoGUNw34icpFZc-ǜL{d̑HzٯS]'M(Fn_7ܚaMD {0\oMB#MGpq-S+ !Ao_X9qz O Jj@VI *YC,y!vE7WRAEi;k\6|TSJטƿ3[k}J=c~E oF%j̾[#].@-ˌ,׎@Ӡe@~u*z}?&g'u{Єp4{jFX9;.}~g>P8Ԏp:U0H ;|T-:H"!$UF5P {)|EmnLcЏӣ! p2[cMMF4NؙҮ^]:X(06I?%{?H:nc|0uob*h,,YB%ч@m9Aٕ!aG!*2 ΰkrM1O Y/_!HS3eě-Kv>Do[\mF"`K-0t2'p9ăIavCxsoέHgˏUK"0:R]zGt5LC!X1׭.oCȀݻ76'56xeO[7ں2d'+6~QY\yF2٣&.GĚ/QŸa|vwarrg3$&ޝ$FدL[dx]Vg{\X*{~cb.84Oݥ FnU{uy5 }1P!ݖf,l~TrDa$6r&״n c zho ]i`K|:\3/:%$L>{M=荸mg6tC77@r?* \zѲ:\goHn܈^Z3"2EsI{.ʫz3iY{pOc̍M4+t#wSxU8cRm?hgៜ?̝s v;F: IUBXu{Jx+OjBNS1l(RX^=ܾz8t^@&>3M_όy.Gt5PW~kS>ext0#oܹa0:({CV.GX,\ 3^.dGYZ"pM6nO%~B?9{۵p?u~6f;ݨ*Flo1vXf4rOVK'QY=! vg`ql9!C4$ۭZRmpn<)f91 m*6=k;SpdLu7^ 00!&2H֙U5Y5e;cw~)n1~y |}& qZQa.Wyy-`PF4Ǹ;WNxrN3p͐neg7 ]t!^1R1aʻnlYK,#Yfkq,MśQ!l*pzƘIknJc6w'/&>&Y%]o QRilRkz/k(rF4 "f3?ܨJZgL$/+>C3I ioyun,:ވ$5hXo8"}&m .Xƹ ꧧF!\#uu 36tDd7҅mGLع31\.C\/O±y|fxp{E|?r z:7E K8(vQkeYTRfwI$-c J~Kt:mسmʹveq2]b)z=mC$\QX[ZYE€Fi f+@J>(2ef㢉T=1Xcn G~`v֊)lb ֎AI -6ead2nt\2%, 9 yN՘1ZKGheL%l=1H4+ȿL9 1Дv1` ޵i8DJH]:Brdbyº$Jg aoBe16$ݭ#eꅮ(Cc1,tW0A恋]FuiJIjul)ǜ4NN3܁kҲ5SOe/B |nhquVPz1NI>Q =ǃ fbѕ&(7Ж[ 2 y܊Ƿb9~#˜&n,K}-ѿ:ծawO'˟1Dw;\* ҊL'F.Џ"^C?1H$I1wxmS߸ߩGVsmTWi|y.%XYY<,\BMf4vcʻRUX1^P`_(4>uBʲ{E59Cʐq+2BA6ba|eTB9ۑφqQQԶyn,N}YKͿxr |g~:ޒMؑaY++|m XV䑉ܕ%X'o,926+6stfj|Q.d)èe0%uD=&C?b[z  Zv\%+s;I,EƖ6Q6]{㻈ƥrj*5#Ƴ'̋#9~6,M)QP |yC>Q|b77R?;i"FfiQhla%\VJyl6qt9d|QwVR7CxCඍBLDǵk 0Li<+8,#TZۘ9=dVfkǚFXΟH[~ÙO8"eq{Vs5n[~55n?2ϻp1OwئbF( gOTr ?/*]޸9n:VH+D`F~=+'_5` >u !"]:mTS$u!h7骉{&A\LJ̶1>kmLc|L)gqaascG,k햭aL^i80l6PQTbPCG'{H n gsQ  oܼ+#ʂ*?Aqb#'8&/ob$ ffgH@\۴ҷJEkS9m5xHv䙑Iǒ io{ŊYq#I?AbJ#"U>]XXψiG<'OSʾڢTQm`ˈ>Q2bI]"PmYIO*Y^WrzZ;Oi"H%g,Q4W[f[##|JiS3%8-:Xv 4٬f%mpʼn/(?i{Ol$D hOsY"{ø&_ :|'"ε>G_L`N_v''>kAH#mcF i*d";WEsa{kL71DŽ{%y׋'|\@9'*X/52Ϸ?N'g6m}BRֈ,G}&SO*ʺhVcHXR򠱖: :d/ʅYzt#JdFAV) nqٰokxB? kҳ螺EY$x3h3Cr#a O5#.:w8eisr8g#yjrF=(ܽH$n<4x6+I"K8xa$ ފuSl7.7"F,lW{>TV1u]a%ZYh&uQL1e7;i,fyXkOgc Xr3͟{ju=}cEAK.\koR88a"& % h~Qt ޞtFwR {TkX`x ڈ |8Cg2&H 4QJjn`!!fm֭*Yb"$T`A!Wµi\ -F2˦ڻke]MҨ_f+1$[VL70ZYa f4bu S vRdfOki._:kӀ&-paNLKR>^8)]?v%!OJ2qٗr2ͥLhc.1XEV!~2g'b:%If5QE}'ry1Shا7۳`YÀ{0C3I;fةoRlc|/#_9WcMK$*[עڤk~GZ~4&u&k'2~gN4/ۍ!y)][su+XuSk7ğ_YXLaEퟜe3K4c%mzB+1&:Z+F:gШg]~=gSSxR+U&y5) Y*r+NϕY81$>U͍Hq Ϥi8ȧ-K9 9?u|:R3~!ӡ7]-.ZO! + ;yl}\{)'jGWE#r<ƾ2{ ?Vpthj;=>qb#IPYe۲3pgCKƩ2Gh?M?Μ,S5tܧ̇sll@6?:8c=ّc"jzEB;9kl8.kxǛrbj;]T #(5Jո$S@3hK.FG1 9z]n}RƑqݦ1r_q̈W»Ia40qSkUFy;O)?9^D,kf_h7imǤgkEO5^`u=k"o4X Mgؑh)ޗ"amUe5u2 Y.h҄$rd؜0 0cY:n{# ˧)x/ 3b19ݧVubb *p~`$sg1aOk|7 M0ۆ`A<\$Skcbt&+7TF5F%OԡKҳ#v8cC `TO_Ɲ51_A9!?9,)It*q 6kLEiֶmAz|393P^g]9cq]1c((DHGBX29wDv&CU~mk4o*fy~y0Sjq- lXjHCU;df4j=IcekM*[$B@i tRCa1>I (Sz-D:<֕{FHrj^m =IGJ UW2C5I$/= ^5ޔy\*:Ֆ*^.:YՕ,F<2r.Nԗ 3R6V[BckW6(b,hHZvf\E X:`XϮm]N$Q(D78V$VւTË Y צ*P`W4QX:@¯#Cp@Ge[ԚhluaXrA;Fu =zYu;v\tijXOāizPpW>Opګb ZI/'UϡknG&c;8́΃UqE;O$?c`^eXUB7b4Ox"(9X>"ԋILK̼;qq +Eƒf@'R:17:nxy2 :t8)JQUJƫm$eLy"dHkmbG-)8NCnY.Vi%X9*H{.['mW vL[<$wmmt7_&A t/x)G XcRQamJ7Q9gr\q9 H#Qx\4NG*miqܙ&XvZu! iTؖdq8| Hx 5G2<"n^# q8xkmN ɧ)g*\bq`oLLEPgEe& ?/׌ k褋9w!}YOnnG}3}dѱͭv -Ts<2Vx>=Ӓ+c) &ù[s;H94_;ę=ּrc&Cb%`V՘JS^Pd 9'Mי'M$ K5bh+=fkp;yqtY7a#Z|K.u*&퀯|yh:-" h@E*H]Mƕ̀:Gb8ΓYr[_\@ T7YI.Fʏph|PѤlMѯJY`1P:K-J3yTҬ]${gӴb4ϐKiΟ$ Ws aAcBmwTA([H ǧU0e ^P/VP3OȂVN/IC ^C1ُƶ"6٘;0'BoM8.:o00Cưkn񒂢ߕ!YX|S#nA6U{I$-u]vpA*&Xަ όV6?*(%KSܓsLxZ@-z;|-W dI3;^lFPXjh'SZ rͧ𫺪 PI fJE U2YJ j9foթIqIGdKZPۡq6_6HRgJ'ufģ1E=P3P '=I}4ef16CkPV`F+6vgb.~nK0aI>6r-saVW/)W#svSeXwp:X܊2BIk/\YyBk Pt2hU!L}K}"=͸T=Gcy|X+1fvߨJ{"; _Tyʡ~*W0I H.7'_Q?#f^CycHTkZbڸ%WIRݦC_9Ό~6ږ8ُ<6uуܽ.;ZUaՀСx|b&Mr"q>9{Zw4Kf)$6AR#t$ EIXPzUĹ@dV:B!x>b,xwTd\ ǧJ L^÷@&}㗒/6vO*<$v#NGP,1^9FVM@xV>lO+vpK(WK94 M%塟R㭭z抦+`/‰=PF5t5e`%+$Z5Y,5QdbSc}TBU|aQS{Z.04)|5&N !iMW9r)$P–2s\pEۢot^ 4 Ba|d$~ugn2HJQ(L@'§ѕqk$}+%C_Y[lg){.cTs/ $fg  Έ?[`ʸȀY&׬bB%q&#Dpљ|bֹW(#DIS`)&Sp푙w{+rfMgw6o3E8SE1VIFӥ!%T|~fƃ=W#y#cLOZQ8XW;woTW@ ŖGщ$JSL]%s*w2M p2V 0D< ɗϧRF9M@N)fT'XyN O6\<q҉a KY|^Aݶ 9St~5O%KXy\(L|&+{T, Ld+Fݹ|oQr\\jЩ+KTrZܿy>ۤ0\^cwI#tOk{FC^I}ۓZʆN;Y%l5#! 7UxM_.\Ts㬜yöpT+tmCRѓ~^|? PF⭧@{vͺHA:ATJOTqS-V L/U]%̀ LJV 0LCtq`0J[2n-gNv'bc)@-ks'OEl36IA0(fFŖX0X+IipA.zxL{^oİ#Zi^]K;l21Z5:kYB^AX~Yf6w!qy,L*U>H2, f_LJ|b79,&Ɏ&ǘ-?LzGmZnvTgsr:֫k7e,@/o\SEaC*]r2"H IaMbF8IҖFLPFLS7J^ElerJ7UuX`7km e :ިZ[eBNWrt0L ACA)=(W/ [P,'pF A eC$yǶީrS0‰WNg3q6)Āޠ!+K p%2 f\ Q'yTw$Si!qh2؅+GИfH22 bc¡5Ǥ ̹-3ݮi*`N]: i7- >țR/sWɂ+ɋomG\A֘ۘA:\H2\~4.Ք c :/a:P$+a]ٷx+bg0G%f\uTIB5DLgsXU}:AfsD~4&BFe*yR32dݑ# ;2kn T6:~>Qm.so:$$IvdqfL,M(F|'.5ODgJhr31ơ]MkggEidnurYG[Xk/Vz_m8a]`|Eږ* xï_v/g+2X ksTpD&F;xLtw$ 2$ǎ(=l?F)`& tr){A b[n$ (e,L,Qa G[Q;m%uDAWy2H277^ `Ej qổh3cyMu [iqT5Phq`raƏbI/0%|-m|u5'?.vfI,TO6[/dl" Q,HH4Tqda-<:@Y~<7685g04n"A:"`\y#o=U^1 ^]Y*SA^5bhzUv[!,1[i(WKjaZ Z?(iB%eN@Lt'Z&DfS '^n% FN΂U8Ví(3 &YpazҖR@(X&,(<6nkfIQdp^|(E 7^IYIO+(Qs*,b>}+GTVֈr E3@Kޭ|sIlo-!iq&hM͘V0187oZqbecfȪVEA")Uz#LtYַ5Sv sGv2=E[t]걻={eχ~n&4_Q,WQMk[8{wq3&ŔKX|mjrt3k=ML3vHϩ Tz5e#NKr3&RGYWWXA9 TM욡oR0 =V#t(OU64IF$kBŸ]0cpk,1(" UszuK,nߋDO^_h)R;W_\5W~:̪^TJ".DaiViJ5x3SW2pcqF dekWuܿh6jlmJNj"O[ &i4{B#I\ҫ fo$hwfdyHQF5N4P{ Jۣ5r乌\\4UT2,NDշҢy ^N&gyc6gKƎ0!\n$Rn'8wubQ38m"Pnǐ5W]WcPfnFg# jNXL1`;w ~lCBr7CaI' +g|cn[n rʱt6eZN&Y[k}\'h!UMKPeR;|f !%'-9P^fdXUK #_w.YwcQv)&F7+!1x]̱Y?n=$rnO\Q429xՀ!4dĢIzeKA"֊}/Z,FnlOJi`aɔ#b\4)245r3_ =i:|+rwK ·\;?::2%:^,M&6tavnd mOGQM'oJB+ˎl%vS=}@D"x[Z*!0.D9h/fօT8^<+NM1̃DNd Y5 CEeRZaVoAq p}@O?:1d f۳: ^U,̉ت$iɱO/om(=Gbz?!",Q*qϺM=>tvzi)I×b/ ˏTPoH:y[p{=a8i }/c9wNϱFzk~u8їc}J8"W6q}LKJΫ"cuBHi\ #QԈc"0|5KIᆐIͅhV}$6ݷ©7!̗Qn"751oM(@;ُ.ʸV\PP:nq..4@b.d\OZ32{n j1b $5YU#RGc&o!Gܪ\Yt1z_-T!Igpy p+:Y$ABVAlk|)7mR$V7??q2Q[Fu qf[_DUoM$U:{~thF[M.6'„e*+xPZ\O@K- @~R/Q2 `̑.KQI蒓/HęCƮ$J-Ņ[I]aϑk2kn)k!1[ONqYas6t>8.Ŀ'5E? w{<Ӣw\?xa f{>M!ib>xc&V/tt;z <3+u]ʎS%q*s9v:օ"%9Z,Ti}~$-=W"ř7P{XD4Q*Cy^X/s?w%Zfjquery-goodies-8/slides/examples/Linking/img/slide-2.jpg000066400000000000000000000704511207406311000234030ustar00rootroot00000000000000JFIFddDucky<Adobed       : !1AQa"q2BR#br3Cт$ᢲS4TƒD!1AQ"a2qBR#b$r34 ?5(x $(2+@Td[['q88Vnxci2항:>Wó}½܊H58$Ph%x$l\U9e2wZvs^{7BT@$ddQeM\ą!Cx\0Ql2TXː>bFv Oʪ~ӥ],#PE)<;V09 E."[+ġ,mΦiҝ9uq;RJD]y=ίFyҧz@*{P]ڀOj}ks.$\^|ړ5д;ϳXTYԂ:6.w9b-YV]4 ]QY؁mJ%[ݶ.?rō6=Sk [|KD %{Mmh |^EI#:d  ]oĩřLpCk4|x|XQorWzRŎ ~%c44͆2HFQ(kf ')ˋdVZ|l, af߀UI(z?7X%l&4KkiZqsVVǦznUK.m$toNcV/"6IxM. iq@lbMKWأ#gU._,ζ]F&@USe3+OѯٚV`oz'>+DB)e:# ƑUuա4i%F5č1˩ _lŷB1=Gabe%sWXkҁgۭIɩ5x}S݈^~%cKv+u)n掏M᭯uկe)BB+J),yhT @ 6x<3dAY,FK5u'j[ ͸'fN 2{lk!w:{9.sϞhAL@d CkrLkf΃; Z `Lo,U9I⮌ ͞p҅m@xP' d Y܍ #4 "iMϖۛNPKZ7\5 ']=%4ZTH@]m{4Q{-}h+2װ: v6"$/<=8U2ɬ-TN s\FV8&ׂ6ʴϳpV:Dͻ–ea(VJf<ˆΖΣ޹:C;սh8Rv+tfD ~ @CorlԘG̼"ՐQUg_ʮu/V_>maƁW}=UDyuLuxSU{jXh~j@u #U\zٴ.L ցTM!AmUİjmUZg5DE\ur2":+"v8J{6^^͆-/#T$J_9/7=eW7([5tMkI9r:ْJZ8 to,62-L}qT1D|O}(m\͗y%%Z9 )I#_bZRScM @@ ͤx eY 5`&KdHޓ23/CSMw.el4& ԀuUC.S #\^w%}B %\\i#iU3hN9r؅$TnU,DGIङ[ZDd届t棂Hw  ".*WhU&XЛT[QR+ T)Dd0 cN,`TySm`MDZ{?"A= K}=%KVuٔ2[]HY].Υ3muocɩQSd#͠Sޡ.S%SNvj1Z6т{¾=*.oxݍcJyc˵WV ]dŎcVK8~ wOI7Ŵ]fkOڹqٽJw33{x744_޺"tT7{7nM8Lд@R9RD1ZR=2 @ Dv_ͻ@:*-QTOQq쀙j~sMtv X! @ (INQdXGSEzҷ&3G= T\!,}MJ)%}ŏc{ZѽGSsr(G,/GG|36b[(;_[͵lɟ&o =[.8GsQaܸڗSV~%euSΤѽ_z<Ǒ /ܚ Wb_xHJXARNE j]^:% Idrs%zB4^= phubO.*r|®Me3NG[,Mn_ ~JH9$UWSزjW)/ //QG/ r7%mcw*;@;wZ|U%MK~~ѶI`cHla]*zA'ƞ'Wȭx#!^š=Y ͛DekmC飁nfrz)B:u x9[͕OIdlZm+y8,[ņtVbXoK1H8ķl]ȭJ'9{ \ZxBaM6 d42P5-sE Wm3Kt$ gѢ(F/ m^:^z>ԗB>@(EZU1&ILLAfkRKc9P:%lid\ˋF1@\%RYĔ*,C1Z/=Hy4^dB%pgMǸ3Q7` 6fJ/& @k`Z΄E@ @ xg"ּ|ؾ~}GfWE3sCI*ȃDmTLYqPHzD@ =F(A^HT(DpX%epȺ"H1h>\KY>'(;(Q9[3[kaPfrgf8È5IFXy/;KӐ3=@hwö6q?#z)\]HCsJ:K)ee58lF7vtQ%4V0\tH+=7q啂Py,SEamՉҤΚɲ29FǛ[(~['+^%!j1ͥմv'vſBp%m2Dk^ŽFbB=6A8kUSf"N(H[U%$5V"1V5u<CK=<ڀh#J 3&=,xhGxWTkO+#E6nXE2t`QLOqD5T,Q\X= HDxػ2KT09޼RltEȚD0h4UHr{7/7 MY3}S%r.W(#T"+_Z`r"vMc[ S<!,2ܰk[ 0FYWĶ צ`m9/{s85+]N]fu,^ko(o't8~d<EsZndǞ#n\3ys| ޏﺍb>g4vn|T_&>cxˏ6nz1If ˊc wܳ*b^FaO=F0 K#,7滏{yy;zn0^>W$1oEfRU3T߁ '3\4JqeIg7|Tp#)լw[ =u|)gS;7&Z8Sϱ{ƭYь6yܞ1SLJrelg#yje2jeC= (Т"*!+jJ[WG#>f{ȸ :&6iٞqFkx R{\ԙ|BL}aڶYZՃmODTr]8@ 08Hh3ط!w1|Bf>gz3ΐ3P͚%-e- l b{ Ez q^o/Z~#FG4Rsx]RDtm6 Lch-1C.EDd)dgYem]osuGyEu5cc27MjLn"Ck^N:\]G `wWבZ3ii B`pIeoj|N߅6~G]Tױ_I.0e2O]y /m:1ҽ[~\+w7Y{<7rb sA@Q33ZGoAh3kW"O21-4Ay28$xCs7u`o>*ݹIy?3M:BEUּZwZk۴`}֎:y\9z&HhU+Ic6"-kR3c0"Lү-̡.hj(tj\e#s'Bui_=]NFY#Ixҋ{OU5i浽-=]ݖ<Փ,IWЮL)]MqwmNΦ>2}jYk]c:GgkÁh'Xشѝ+hKmpvvpȢ`kZ](qbVWY VHYEbOzdټLW/}aUT~sd+kl/ds݅Z/O*2ԌŊt8S=mLvN@rPu5ݠ/)IkiĢ2CEZa-|\ՆclQ益釄 =N68&t}Ԟ)%WGeK14/ukdl:tQyRzcooMSrR\xv礸 w]_yWR2c{k^|}"T\,1bNѰ0cBq ?K>KwG}k+.062HjzO6ev bϿ(ԽzS o-q^M-OѭhrR_w"n/#76 cll68FC@_KR-:5[cuc?vH$wWppR>e;hށ' C&;{ZΒ'/ű<˕5\Cw+KqV>~o#MT#nnJ c,`dSJKN\i!mGJ+-6 6..kEK˶&zc)!) %L0& .+]46 ]oX@>թsbʶ:&عY-iZjӎ뭜!yVNԦ4CE='U˗Uf#+f/{UC?y~~h %E:,FQlq\"Js-0#㕂pK<7.>]s:Os< ed8b*DVSUO<md*Yt:G(:4XgؼӋcdOdyE1bNcZGjd6BDnkEaLiug aQE -p;aUj)'r[f6lxc?V;ظWEWΈaw [-ލl; @Y!kGHNԎ Ǩlb1?l_g}L:~F0=O{-kC[jȞNP/Z=θx#˃ͳ o(UE euRF5}geI.D&$5/< D]NpӪ-`5PB6Dh,kEIdeQp:XaϵFWsj+vQ&1k^p\kt.(n{A}BjPMxhN$'#%6t4q82-u=E~bȱ=Rq.Ld!4wT@Q7«d|4rrٴn |eVzjkWHGl4*Кx1jM*!9dsz4Qg.x^E4OGms\Qic7uDh<(t!K-'/AhQ ;Ϗ$SU>w\_EUUx(ުXDeQ=x&8 e8IUyB_&uhs({I'ܠ٭/9G4c'(^Z6Vca4޳7"WY띍|WːLcRQzt2<{rnُ6硦wM)P%|/ )[In` wt޿ԴF.BK+ₕ:/5'G_P!^O:P?./o5߽8~.G Z3/>T@XL)rO2>XyI[*; 2%;;m[+q: ⨻]Qdy]V:SI_j? }or6$By{EkkӑM)ܳJ) >3Y!{GiFP=Vd.q;x^64T;Zh[O}1 yb0rzdN=M$*kƹcIKP>?owe$ÅA}-]zg lљk1q ENo2"V;k{+FbhZAu-Aͧy)mFq%J9M9* X`ظ<ƺWssnR^r-oG;h|2FfTX򛌿R{Ӫ*=鶱l)׏|/_M)gs;Z'< G L@&~R=R>~}ϵqrkw"Q+{2^ňw WW!X눟 |3C| ʍ%BYQ$KkBFn_TWQMLoյr_>&1f[]A,лۉiе+ zS~i#a3,$N+NSz#[bgPI!$ XZ͑hV xRϪ!cialrll>7 f!GR'U(cwbj|W@_pv5[L$Kym}<0 Ìf'5@o 񬓄3Hǚ/YY+L G$=Ok:$kIXզc$ױ 4;x\[ xg اY߿O!uhQDDG9$SføS=)%z\%^ 7'5nO,Ycb1̮9(!co5Sr,QZ#} |ھT= @9*njN%d 5#:j3LTV!cyšыS r yÒWFyͯ}[QK] 6kVh4C%p=OVU3_L;V^-f}I@OO_ekT4'B_Nhc.r̫?hoT|oϬI%5?"=̞p74Wlf9ӄ%," Hwy~NwAPAycq S4: s!2zjci4XofvMEsCX:kl{Tw$urƆ%9y-LtP+gf)DkuvjU#) ح94 ,M#rd\zm 8*|-pH2_ye'I%sg CCR =<_Oepu8Bʔm7Je9 g0{JQn23a-$PѢ 5@oX$tRVBQRXzyGOҵ8uQ\~.\nOe{铪҇rmm*k=eGyZ2&2<8%r~w寲Ȯ4'ogNc5<.vFk1i&#tHأh;^Yl`&OYmekE.?'W?W_C&in4/.{ɩ$JI%{TʇKb"1OCCر- 'ÛOdmk"ѽRO&0U>Sn۳F0=抴yg8,{vb#*VWcO+E5h%vBԌgES"'+5 CW/lQHKO-(Py-q'NVpƸÚ/n18D5,o?jo0ԧdzƷe.3S3ViEQбm' 4I6/R(6w[1mU]mZBoJmխ~]˽jGo:$;1qLxю>p ]?$<qRP%abw~k#, <4\]0ҝZ ?i3epܴs+hs wM3"ܴԬw6}OSS^MӸ#cUߌv/$~WʿݶShUH9`돴pU{f?G8]B@ aF{_p@-c.#ߴ+']b Yk9@oJpfem GLhMHqgpfG(6lW@.r֋#,$ J7lCpeg^9oժ;"F]f]3d'HιϧV[g/SlAㅧYu>[~F.MX}]ӋASlL׍XN ]II7vҵyҋ}sEN-[m{#B|-4U9&`ڰ2JqI['tcTqDK- 9d\Kr/le٦ ܃I$F3NkR:F^.<9+B)%xy#aGOIsL 7 o S z!ɒ'P޵ty+e#v õx*]bE 2Y|ȝ'#.O%Ђh# OxZc$e)7Ӳ{y] ўHZG0BQRXk(6Qvȶ fH^+ZR"ѬWׇ#>_MMꑽ͑"PUds x+ sH#EXp׮|Q;rK5L=h<@N`^իT73m@Oz$FKUwZ'U!KcG20}ǂ~tkD3nyYBӅWORRc?l=釗7Y&&HI#z@$^ܳ&m"Vvګv5Xv Px1q{JD^4V0 5oI(XV R  uZMV[Т0vh!sw2w#F4rsu/W!A吻CwRH9lI=QԒ#')"6 >vl|Y`lDzc`ѣ[mD`|"ԗag=T:-O2@ %EӧOmCa5b!CVS_|CAcuTzY.VcFm83^R%mL21]>ܶK9=υmֹߛm=Ϋete=eDydT=",fbaA#x||w ^|bcLCh P:rTϟ)h8ߋ9[j/ew/+/BTRxz@MBܳoȨc.[3Wlg:zU`+U^|L.2|K;nvy[Vj8sq5%OIQV <#hHqi4L1gÜާS:k{u$ޅkHrf@TY;GY+,=QQ$[B@l=b4@q!+\7%X:=zzLlm61qUfDB#GupSH9٢iעCat--H.qLsؾy: $ie3CMI(tMj J#6n\\@v_]o yUD͊Y[X}6q' 64NJPlDKطW-LD53-+Sɑ?T>@e( :0yk ƲJ/ Ċ3jUƃ }$PQƔ\7%dNM}É5|.) Bgm-+䶍hN\/>%j+mn{ϏwΪQ-k+8\I9rVF2Z4uLy'kEHNJ0iX"Qnܝ-.`-!] )pa5Кs \աЁNǿ*eO"6Ďܗ+⺰p:][9 TQt{v818cŤWS*C<,H]PhwU(&vr`pbylN,op.h:B+|GEmV8C%ops\IԴGP#1̎bӒY#ifn R~-ilH^򆂨a2IGes5EK3hˣOCMq9&`GW6v ܿ]*hD,{O-W2G- y |,scs*h(Qku 0h3tjG>ek5ƾ7R/%clbw0yhi=gxoEjdvoC,zn/͌Iص%a jWdbx^6]V& ȬVعjYпS!u=g}-,D pp4)m%gY1"P9M Cry3wLdtUElf 14jwGNy/VNoL ikb :||;|w(rY?-3 SBXדZmxhEkeh|]3<ܒ)x{3Bf*WF3seScx,0]u9T FipGǑq`Y5 qT)kq[^r{ iK^SQD$-emf}( ؙ^3>+22x$V/:P=tNAЍ] {vw?M1q܋Ǿ+fJCW-:l#xlcImBA׉%5$\&Qĕi آ)=#x4 oIUQ9ī.:q.sozG5SY4V'IǚƷ2cR"t+Ķ*IWV8VDdo3=4+/BHdr!盵+a&՞Q#rfHgz % SdMT=JU~:q&UOe<":K^f91!$Ov) ıUbŁ.g-eȣ{\E+ƖWP|@@ @ ǻFOrQo<],eV.lu)UrAËdDm'+M>pk6_ X=u:JrELs̴?"{E>So5ǂR;3goewuyNԮ=NEo _2,ne[Z2I(ǃ|u۟_ qs31KկDcGǡ.aBxΟ_wއī೙ HMu&ght;\V0< WN0O ugC|.^\KHs:H}DnLdӽW.$5ʑ'k0`*%`Ilbzwh_Vyv;#?%Q.r2`{UveF>[iuUϾcB_o_:墒nmǖdD ]G+ߑ󼈥cKb)6k4Ȅ`g{, ApjG3O޸նX7-aAՆ3X.5s5EwT.#^L]0 4j.g}V(IpTJe%jq|agA=`{YȾ%/q[vgcXͲ<ӧZhqR6N3+p 7K$_q [I%l%GVQC)k2Q04Ddo.5Q[7we2i^?$5c&uJdides׬IW.QgSdld`zbdaTeJeMc7?+Yt.q[`K͌Q_9m喇uidJ .$.&90RϺ1pVe# @ Q7xwK%TֈU)!@i}T.F?vVX }Jb8#J]V+۫x1& 1v4hkdAbσ MtСIL~Q]?qm=g\U\az+ۋ;J>яXkdoodp]2?Xn;-~T-Ysy788~o9Vqf?O#,w!b [<~¾rkui:3a|䞦%N\v|reQtNy@P@a .yvl)Y9t+/Ͳ]x."eiWCRμƵhKBe!>(bǺ7/d|#IVЎc)Off5i#؍Rk9wIGM5C@f@ PP&GBt^`f!g9;W7LY_GE~ڹ9#ؾyw+x}ڳՎs-\luj [YTm04EV9\uZ%i1@oF-{MA ƓXd'tݣ$mH۴>֞|4pQY)[nK&7y/q9<>Z:/#e! b+f7>ؓ]VGܭ?-m~ëlc-alV*b/KW?o2A @ A q eeRoH*\|mx!3wD7ΑjhW?l|r\m=wFC#t+o`XnvI+N_ ܬ {qia/2WN<.{%lX9B*D @ @ @ @ @-k!vFk(bGP1.x<]lq#qjՓX;eu k\w:UAuHe]f}ռ}v$7}Oo1mo|q = Sn$8uS檾dYsjE9l4eX$g^R+ū0]3Z\5S6̷uN8=9Ӧ5]QP~q}Zg:7b_~ВE#E{Wvr>W~hf4 "6}VS?wH9F@ @ dnh c$e-yi <zB̻Pu$G]DI2Dz@@ @ @gvBѓ2a @ @ tmk,Wdz: @]ciZUgrn+5GnuB5_ #x rN69e^ޘ3}>?kir:l Kb#OsXZr~:^lQv y.Rp*ۡE<{KVZ%'_ ),K 1ch YDc,<jCq]\CZjc;]1g6_@|Q"sj -nԋB_T&Mv́V 23x d 2O6](TV@aNhz! +^9q(#%bcY\{k G @@DD=! @ @ @ JZ*T-c"KLDj:[%Wn~+(Ju<[c*x.O*3ǻ#OP 8|@sWvOk(o+9ZL '67rڼ]e*^Lz_4ng~hZ}l`vɯ"VCqY4묐tg>x6D:`- 틩SnZ?jA˛Ȇy5QgTWH@d9Á`6YwpVA2tp_۸G{U3E$N{n̴V{R}ЫcIOP63/M>"Ufwj%A-yћwOBd. h֞Ljks879-R9&kg =OGsEH@@ ( -c *93_==1 ـ}/b>_~,E_-WmEce46}Y溡[jkvk&8.uŐ~pxh-ݣc8)E~nx-9q#%h- L:<8@ @ @ њ5EANKnB^z[S՗!{Y':AcpUEk6M?9{OjMZX89iY CW7@ @ iqFzM.^n&fq^ix @ @ @ @ @ةLs9F,xT Dbu+-i-I%e)OI3\4J9͑Hdh^K:d?8 f?h<#Y _Yj=X}?bC9C_yW̆Z@ wbd@\ģ=KQym]U+7F0@֪,mUd۱jd;=g-at>+/+Y#|sՠ@ @ @ @ @ ťz: xM2u9XKKvx4G8Ъ:jt9sT_1Н}G9#)cz|#ثзFj8 %|\Qd5fi{i-;MRa0@  +h!BY<jC{x^Q4#Su?(9TJq4zUs) j SF+{ @ 3N@ @ ?jquery-goodies-8/slides/examples/Linking/img/slide-3.jpg000066400000000000000000001260561207406311000234070ustar00rootroot00000000000000JFIFddDucky<Adobed       :!1AQa"q2B#Rb3rS$C4D5!1AQaq"2BRb#3r$ ??*GV3 ULxv_'(xuƶQK|JE}>D)|s,|V,5"#+u7bV2|jr;5pP|NkceZR2c_q 0$uSV:|'T]{< B_OOZ`Ϊ߳AbV㙟::4yhdvWYD{>7t'|XÖ}UeБJ] xuYGfft *A*Aͯm)tkP B<*@ (]ZUI$t+ ]i*=4b1yKuҒUZ?&W)NYݼَ&:zpҭP ,A֭;M8}DQ\hH"jZrLXVidUs$mb N6vf&N`rxyno/uw_mN P5er+BCu7Q#?.k}AyVEi8,oh|fW0~\0)fE@4G?êF~RD6 0TqyZ /#VU{Iz&hvݦsD>A#N*-i]V+UIV[ {\.m@(Yt5w~=̮H(mW͒E(oW7u3x<*97Rl|N,3=un&$:љb25J];pr|H84:xХl3i6uL*$.+mľd /PGUy2m_;\3#S_ˀLg;# U}Ł*S~E~D 3 N'*gq3Wiî+Rk_sb<1$ Eyv uP&k9>_Qcݵ#G&D-E6aؙscbm,GqP9qW"ԝcrRYY&5wz,ey;| YgI̱c3gA.-^sףں?^|o|>W'&.LJ_x>#m~^KV42ssU֩Z_sE^]֧YΗOڟxY]7Z*Se LVVK)7X ƀ#[uVF_VIZ!RNar~5=fƉKqBxC;Opduz%ȢZq駡DN/Wj3@}jhUZ$7qTÓC12.8 dU<7w'r=O+m{)S9KC OaboPS8K nzן|*lڪJQַt pkACL>s9Dz { [ǥeNH[]ad%R(kKMZRV#5Pk.G :”a;T e+cR ҘVq(ޤ [ Ε&qӿSFP@m(hP!|N>&/ãF"hb\hAY.ݬyM/M4F .T"GծN{֚GsbqeҨ*$r?/Tekjd|% - t=Ǖe\A2dGiZSЁ T4}CTJhS%PEw\~ (>I|fM=_yTDO 5gd=)k% Ѽr28!LD O۳v(xM֤XpZ%nƋ\Et9.,ídVjxGoGpM3 r -6}Xube*^):>lGB?JGbČ+e4s@xhmEz.=pX3r-}I7>U'зr\|{HOQ&<Uj4U_JX Em>Kmԏ:-b|{U)ԪmDS>{md1kF_5+R ,#au!kv_a7['7'#ގ_Τ,Y1>Z'&ruUSf 5F[lz 7,8$"$\x"&K/L>&CT²Ut>l2/YsD&q#zYqxG2v9^zUOL^ mMl5^?*RVH:^(oU$u< n9EB8 XECj±u@ѭ+%FJCupҋA}'ąEݬ~t4È@^n)TKwƉ"+]5[NM &ZGDn61VK^d`mEuU=Y0"42HBm**<UЂEډ%EU" BT KmjތrplCȐd1U;N~/5sdխ]%cv$xֳֆQd瘱¤ʀhw_dɡT>Ǭccc@Ǎcul'2H3C}Mڂ3%gЁq;CR1jlj/Qpc*rق̌wVJB`.g:BJ+r{-=R<#;ںʋG.^B_i"uz|Iҙ+PC%@'0.<{DlCr+/x$mƕSOI,r4{h,5ƫ6?NêxOa;FbMχWkIjExCOMV:Azڕt. +(6Unũ[A$t* 4 RAB)Ոў[ .TXԟ3V G*2# aut>UdP{?!gŇsH^IOX2tl"7Eezm/4< FL 2[O1zMչgsqOK5lp8x9!3-/'w Ay_^Dm|\h}Kaկd[?Jq2ns:->Nf,8hDOVQ-VkԱE_%<UˎOC)~GGcP-! N7%?]<-9(̿<ա ܧB-]{e2Qrz%iHڑvhl4 2&:P2H 9h+@&O:~=m2?́Wm۱v>{6Cg`ʞ?²Ei;OmXtJwK/r<8x$SَN y[sӱ%qʶ_1|ܤ_m]~-n#fkaӺ2,NItxYLdٔP7ҫ!;nS_Q}zxБTeҧ^n: bI%ܝoSn[&r1$\NK} N㣛rYmFmWTSLm5q"?" U` ~4&.Pn(@% *B koi@;[TDyP7dJ ,[Lydm;H I6 OJ.ɒsf#vFDo@ @'8{)&+cjc@m4IY6:$Rlz~I7e$wz u*@՗O7 󜜨FԎ8ZVx~;JZjd$1_'d2ܹMV˷z#ܾ r`9ˆ F+$dgamRVO ŧWϛ~6*Sz9ɥry%=qF z&I|ߓ:?7,x<tÄĮ@$VkRNOqOD/DA{rZ#E1raUqW|1$AP[\鸟OZ"M<̓/-v'B;ּkC:v i)cDn5BٽX!,9S~t$hXF-ԏj,F7&@e߯X57 &'cCk'i-fI78BT1]c*" t,Dȁ'cBB^[d$C[mjh ^޻+UrZwn޺>?6CrkfuN,;Gbu]֭Ǯ\zOn,L'Y`EcrEk~yUxj2~a??)c+ߥuY 4Eݤ7w8C󤬂Ol_Kr.og"S+)1/i' 0k[K]acz''+=_='jVX$ ZYQ(PDPNDGQP$^/'%Ą_"SW3CwCNG CpJ;kv[>"Ws"[_ۧN"_T+|amI{~n YP ?QVWߺFl8+9Tq`m [k*ާG-یGgC[t<~>LN.툦(4?t\ߺeŎ$}h;{5XV*KX|w GǜCȆM&>'uu5?n6%yڵ(Ka '>q|YQLPI͍ %mմ?gga`䬱퍀1l| Q|t3F,6)vGCCvNT* #E KcIMP"sZ\?X 0 mTxr<.&_E .,h,FKx'WԮT:Eb4bu3Y9D?u֮`bVc"06jcRI$I{6zAY̏l (zN[ f0t ,*D#M5oVLB'v uT,2f:b2@=񲃷 U,t^b]Q'/ T԰KDFR 2efuUa,/Pꪬ:G[n _jjBwK)2KBQQmƤf9/8ܧ屣Ci#2Tw\w]Ș| #i O_qzkkZYq%'VBVy39Evgs ;ŴouZ.g9QrA%Hӥj)E6ԦV#ź&fbE, 6D4!HyW.FaKSR)[&GmoO҉f6k-P-ȒAmmR3v,BzHҨN8M+`)`FbMSӎfk%C1;$R \RY8ecY{5]k$W*/8~?p1ti[EY3rkKg[ܧ-={'Xy[zE덟Goggлo1$ms+"V/W cx-bzWO}q9 nO9WR>"y]>ˊԳVP&B3$1zj7&EYXhQEBήV!>8ƚv|pC{gץWLܖOf~L8u8`2SUڷkrﱩ> GHTIqOu5/Wgm%b*_׼$k'fd nO@Xu6*^ϑ[J_ԋ#\}iiAā@`~"YEO(2Z|SeH7}F\p8O57g(T:f_.pI)euU?Bj{ȺJ# n.E m#"΄ Dw\$~1+dTE]~8s:xU0\ . OE'»8rG|Ы|u'Q^Np||uSpw^nBuj@k-q4P|%e*zCg!%lp^ iZU>{mZ++ M{zƝK1FMg_qr3~qP)(}]K4?f]~ U\أ^ ?Xe$<m(|lmKL jboSj.4ҤjÀjPY/i][abEئ{{۲^@-0!"NDg[ 2!65b*l69I8Լl* >l̬V۰#HJڋP$< I HAzAMR,ñB*-8<(cUQtjfIGp/It]s*5E} WK[ 'Vˠp:2vLL@f[֜h*w+,6>t$.mŒeHǎ#WBOR5JiЩDjy$Ox7[Ci #$xQBT$ADFD]JN#EjV,ag ܕ`zuޜWDž_~ VLL5{vRJ\6x̊_eR4C,{*<5ȩ^q^?㼙D"5 nxvX3mZu]ǚLZ{WZ&ǠW <4 ̓_OxםvmORǍcj:GƝ!F9QvF]}]Gz+%Uz91dk%WQ6rm"6hY`UY މ%Nչ_J9zFJ(dw 9hX#ZW(WS?_ ^#lls׷-YBg,o$]E'z7hR1J;ZVK3p5ʏ)7lۡV󷱯qeQ5Y}*ƌi0 ;t*N葇ȁ /#UULjQ72qZ"?aVIӭ@}wۻ*^"5#ѥ-a|jN/ȏNV$[H~?{7*6\Tc@Ze=w$_ҲvlɱEB m`N$w4`'āB DE ?J=ʷB&$[ha6E !FR*LiKRb-30}܎@OQ~tqeUewKOٯe;|0s!ǝ B B;[R'/cRS#c2ʒ$j9X9<&,[Gm"]Bha 4j5-rdd]FYVW! 1ղs *D+%&[hMɲ}?x= w_\I0d.8]viFֶbc[8f|`j:) VFm2ʦM&•&Pi"ϫ}:4P;+ b*bC42лG,l9ٕB >G#ILHnA(93*6`EͅzZ4e7I$Gϵh;!aJ196)_KJC6R@kT1!Yǒ%ih;oCtI'qF%b @m`oY+cDF}KeR-W/$Gh7K= {lRk~(fssy;{KۏFNʭ)-ғr>VqѢ5\ֳ?mTJ~@F*/q XEFh.$y-T䭭⥞Zd ;@mM#Sq Pw6QfH>ij&ih!hQ+rX߼]i*]5җj4/^zZ[gh cMʊh>Ce_pZ5uB5jU{JT{>f+%-ZdJ#ON2WG·`/g ཯^WYz^N7U+)21[y1r !4mIQ|6ej4\t'+#. #R;{OE;l:'eV:6z|'mkꖋEN?r!pC/67 ě/pj&K:[N7j:$w2:Bbҷv>@ Z՞U/{.}5.#HmX3N %Q'@ PllIiÐ2P/ޫdRzf-ak r2#eLk^oYAPĵdE.*j=  /@ԋ&EnA=#7V6&Tad v[PG{%^'F|\|9ڞfgԟrpڇU鬇t gv{1~=:nKs3qX1A e k5ɿڶɓ+_sO8?N.Rs0Y98Զ#+Ϯw.YlT|oY-[vӯQ7p=_4*,ڛ2m=ߏ|o <ږ ϰX5dWa["a۽>ۦOiRQUs{΄{ /iBs~߁"KLi&Hgk:Q6HCCu҄2djdױ>4B͡!bSVӈϓEcw9+&r(u7.`rNX7O 56Gr2"J}Ѯi@ Үm0Wtu)0v>: 6r@kQ{LrY|[PѰ1c*@6*Y3=]-1ޘ*lc#OP5(#he bF:n+cK Tvֲ˧$:27,2&îR0aKQMb|#[k;lȦjkлЌ H4?ktRTDbOI 8r&# kIקJ)z'.ч."t} v4HFrm#VʣY11jNw *E5 G̒ddRR A=:Ц5^ʾUUoPG(Q5*wK+.\yKЭa@܌-[9"l?a'@w-La8W]ʆ;nKkUf\-5|^-f_=ayep2pۮMܮ,[6qGo9DyuVuw%D,E[VCEB# 5 Z$c,HX"*ߵH*o$IuډT &LcA#ŒQ&Mh}ZVG%}Hq鯝[K2s/0\Ԁͻx`ĝTz#UkLΟPI+Gi"UQsI5wZ3TjMgW8T iE"Rdxbb}Ct5jG/Қݧ`dqhe;>lek\壥0AF }T `XǧA"J6ց \dnj Y_K|Yf6mR~M*Yd`4:NW hm n-B Wh? р".C !@G(TKK}:~ R-}GҠN BGJK"ʳAJV\/2bPb!rd)=AЕ"T,J30HA 8 n@'Klj C70D)4FՕ gZ-J|,)38 C >TV!f Hkn*-:Vf=B~A}CI @HTEoCBd0=$s-c2(RMHT%VVMb(z2خ`;3Oi=IC.= oN&RƠ1̥t=K$}x/ɍUr#B;PXl6 |{xԦsRFz(*;Ԍc2돯R[*7_Lu o;SW"UGc䞠eVwV^K-zʿKt7Ab/8f/+LUC'>+&rsN[ݏDeTɗT\ ԫdTYU#aw67^띱bK~W%2ޔ{"lR@Z%Ɗ/w/!1 l:J 3ҝN{#HI?W9<as# LpW`lލTz 5zWW#6N7n収?K)A""Fm.֙.Zك8K{TMXV<ڣoN eҁU4VtxnF^fϋ񗏃~ LX<>,>rkry-ܲEQ\J9WbeG Qō~RdDzbu>_=^rPމ)iz~#'<~=G#g7oi}pOea [Ji m]*-_4,9 L<D8vL襭mJLvUz#|+q!ƉH+lڮ. F@~yٷ뚎U Mc|f_r,c1K)e:zZ?x-u[ZK̞%nB̶$.U[[-j[euQGpHb~@IGۿJd73'I"hRYT 2#Զ}n/ފLG$y 7Ibil[yQ}V5{cLD-U>t?R;))р@՘=KZ^YiyX\a_[ )@X" |K&(1Z`N: ,&ND8Î1yj(QZuKfX&Yr|e Ứl4cE1 X쇩J"߿q3%e \ +I EUSoiBd +A,z u:UrP".{']<ʢ9+$7&߁)A0&̥$ϖeg<B6HRB}+)U-HdTu2wrﯨ 4t-͒q( xL]$j@RXI>d޺r+X|䋁lt=Ep ޻=m._q3\6E"iQ{u/\u]U\DZqxp"FK[NLzS&w$[a{tv #s-6#EEKQe2#ƈk[ʓke5|.tO{k.ٻ2JÅa_3 %'VXECk$e[r]Y׺ؑBn Q%mYW kڟ_$}@mlvZvDNGaLvNѴ~RbkLiŊ<"sj/"ƠBrX-)-GkmKW?8LyS`˭`kyNv } ֿOXÂ8bp𸾵r61ɻRDJ#EǵE6_-T6qnzo:,w{(F {>TհS/^E NՌn>m~w⼊+K4ndmTSbzk<%))|,y6^'lF>=S&-q9ixɵ]18t;o3Y{J.l$Y6\!XdBA7>{{ zѥ3CZ<#3l.dMAkl+]NGLV_?̛bqy,hdkkXyUy8V{*kj??>>|Ğ qr,458'k)bl鍉S&UDe/hxܔ1ָܮsZZ;4m9 _y~O_ K4t̶Vcv}Y~w( CeL~#f>+ex'ޮm[}K[m%!|vn n)Eajq0+keh#gKCno˒Ww㪨LkO[5w# -H CZn ǬWnV[׭k}*o^g^a2>C |,X><(eu.uӾz/_Uv+swgJU+Z3#ʢ]Sr[SN#i &#n֘@W42WzŸٸ4jm:\Ԓ*^cHum)I[d׭"Lv*anv֒iJi*M>.OdffE/ԽZoy925G=w+ZdhޭTϒ~IC "IJ U%YW.m2#EKja=JCԾ%}۹G8ezЫ%z}P{j(3E- >|*M1W>+sv W{#-8rԣZt@SC$RRI#%PlAiJ(;RζQj&TWk^߇IF}?-/,eOI?(?isύq|cSwQG?>G1%`A^ ڿwa^,[[=kUii_Oc _rX䈬fV[_U=Hm6u2fr8U[Z:ѧ>T2fHb(𫧶B Cp9J3>tcUE% {R, Sm,S$I$rpExSԎ8kT-԰o 2D)66dKLd c$`VABz7*46q98~jz|W5a6FC$#A,wB kVM`qX2U^-qZ/z rMO/Fg9| Lh:ʬɕVa$z,0ysou1,OTO^\|fdq⻴R[+{ױƶ8>ˌE,1H%`nw) fVRqoVؾvACݥٴ j 5J'i[#G>;K7wޛN;tK%Ut(\Kɫ> GRǩ?#4gk#վ)Ń졮F);3Sh]z,]+yv#K:3Q b$*7[L ~8aʯ'"6[p{/Ԭ;z}/}O.́tT /x"/x,UEc 5o̗/ϽvVL g7ȑbOjƟ3F_)k薏sdcA됐@%r}"5 DU[_MĦ,ՇUk)#yr9$I#!_P{ *Oufm?\L]$<;Tf6y@t)ieȩ? >GqHdhU+: kQ2$CH>XjM8eK>okT!#PVA2iȖWy]:LY3RS4 CeQՈ <ɵ.J\+6nlG^@KÕr Je7rht^d ?%q+dAdOT~]EXK !@UH|]5+V$u=mN IM$B4_֚$[Q+hږC"y%Dt(E$= [ rY% L: 3.{uAPM$tҢorv< - Kqbe^TOŬ 12<"tL#۵`\M:k/Y6|E 26̪@Gt;=ŃݻV^̓-{BqVcTi5ڏ%-d6۬;1N@l^ihĮ=[K)v6)*7g =<6JSK)I2xbp_V7\j֬6{j^?^k1ↆI]wb6+ةuXx,YfڛZtOܯ\e->еٸ$ ]M2si%ط/x73q8ܳ.4Q[Τ#ɦ jԚpd#Q;СbqcA  Nc `ZJa2fZO@T;_r ,z%ҕWAqaax(gsN{!ljM$鸄 X"!,::Q5F,X7BFo2bQD7˭As:\7'j'3m@HK #oc؋^o@yHlt7 \GNG.jJ nEG5m } rY3d3 57iM$UOuXZ¤ɒ-TdA&PJ܉ÂC/4Z>VeN[(leTon%Ɠh.? &s>J.7uU{ҪZw6ÇڳQ_2͎܊U[rέ><~EpJ?]I$r-&\Jhso/Qܜ<˝$d0ti+ +2W& :H<~NOvI9I8_ p2d\ _C&Zg,o7 v;(?1G+lVl fͻs~ܾ}j_ߩI Wb(_#Tyo"y/"Zt5{9(gn#^b"hc[24;ͻ ު:ߪi͂v7]@=YQ4?̦%F?3:s7c=?lyd88H{޼NeVs%ڜwuF Σr)nsi0b#G%rt4Ů]iϤ6f窸rI$H2K Xm6b-[i&b^L˴$3q,k$r!AcQfk/ {WnM_eD6M #ӨAjRB ttʹK|,`k^mchmH-U;Xm*MD\ǸLuR٣bM/V-q_3 ifQ*3+0q֟㭕]w=~\q*±AƲݤvx- _nn+βkB'oשqp.p{¨}B|\č#r2\y!jܪ-ƣc3r80F,-{^zږ"D>G/Is0lE+VV\ut۪"m_AqXM ňT=>,u[Zg,嵭,q[?L}gW7XzʕW~#}ŗu/|'?#Y=M)ՈՀ:^k9tW{W.zY6P\ƱXx!$['-}ccUc潧5z#VO)8[j9Q'ǵ~G*[$BnPT u></{.78Lꠝn-rPkpqlNО 1{=KUkU,.>l$dB6L4 ǥ.;VZ4r,ySܗĊbƇO# cGFIp2ȈP7@oRցH:nXc9QIx7n@5Z!e?ZM*2!t j#mP+htƠf@ 6U{T'ZB!z2T\JϤ311#iz`VLԮyIƠ`zCA κS6|:l~6۶eۦ^dm!1Y MDZ/!Fl4c4?HDS$!tP TUSbk:?n(,c&"r_ nt"b5YxMOZӷ488'<0mYt= v:~A0N$$iە"Hqbm(Yn-6ڇ)~$er՛Á 'W N֬9s K_Jd{kӡ,W]PǼFJm`T\\iTfϳgCșh6KGrDC Ciq&58q;Wkpֺ\rʟo))EE _/~FGh5ۘj߰ u}m;Ԓk!ps.9z"^ǭ&Z+ .MUݾC= xn~Kj}Z,cc G{mm׮5e%*hq`׽F>\ >dVuml׭@DKF#EQ ­ǚ˩Nqk/+$g#6)Ae&cZUUWg?evWbwH iZ#ȼ (Wfcl QpE0uFG= DTeF-oV2E?Xf*.t?ɏ,}I,zX9Uy nө6^Tx0h`e%ao-cd')dl(}XT'O{[i)sפm>4.מ&XWrO³aۦ=7O=?6/ KDR7d+yw{gZ,);,Ӗr7BHcj]]hw!s'IRh~Yr~e ,u`ݝ/SYr֊mB''"θᴁ<@[})͵@ވ<`T1ѐ1ڙ20 Eꦒ+aBH J&zhj>DJ=$Q< [PmuUUo;Y I \N5%ě&\I#}`d*e=VKTNn֠4íBoPCY Pgr3d' ݖkZm}SЇ!6G"D)ܖqPz K ڎ4QwV= \`an,< @3f"$ϝҬ~10\PPQǑYJ7#lyo |!'\l$6ޅKiM8/+VeKz,lh&5) O*ML^& m/$_T5tmu_E9%|V ]u_* F5qkwOeǜ*ܥVUdR%t+bMi ]>adm(ݢjjJ]CJoOՎQboSa?V6! ?B҉X}$S :$Zz+l{R۪D&X%@uHT5eÞWFfiB_y1җ%IvLo?b)Xb $oʴw|X߇6$v:xWzr8nWxOk/$:&-vYkjۻtf/ĺՉô $ӵ.m0¥`*N{K#}k>qx[T̰;uݩ6>fDrS| CU c֯mCMq8n _Age mKS$Z@ r^$ugVuwWB?Ç:dcMo!=fk |٭vx uT$F$=x:cBFAvFٶk—jLVum7 _q5vH*aI%YTV{v(8 [-O?im~Ȗg&Ƭ+A7 JuIIBFH:P  zƠ4_ ћ-YtW[[A֠4zIlXH,#˻Hz'%@.N5 &vNl W8^>t->+G%OK5\DGSexٔyooM,+{P+ZUi`dDlokW_S7Y'cҾE+_kE]ow5SoX_iG6fP{OO;gpUS>nԆ~/UY7U M'Vz3#bS]AÎ8A1Iht}ozz޲9I^[h !U[ijXLe p%7ծ)6ޮH٥0MCbʲD$F CkX ړע4/{ jO?+we{$MtSZߣ+|*ZV5iUOWX]bLY?omuW- i}?dd@N'Pso /S^2ھvDEC#86V58^ k\fv!T0Ǯ_r?n9 zk[v&ɕ%!bYKhm[U3d$^q . 5KzvSL  ajХs!P<) R|_#"XItըawQz w:<7=* 7 *A vQLYh[>Q-tΒ1/zZOn+]"A3'ʀdcJ*%VSE>֜1n$?t^):n^;۷zk෩/"K|ω9]&1:N^Ln'hoU3ϑp18s Xn;UiinfwSVynUs8Hg|T9$ ]"@l:\2<;V&Mc;.tm}+[7?B_-g__8Fo+-O>>>'K;eO /q|v;DYz?HVIkђ#dkmmlOԗ"ܫ$b祅RlMb|G]V*Z,_-dgOcѨ1X:\-[hfK6n-zZe4gy^lyv$uF!+/? ЅLr k"-W TmWxvnax,'4z~Mb0fdUE\Զ4@qrVrK23bNY-p7 vILUb7&ٲnn&>fk]$7ěaQ Z)bMP /}|iSJ&hk΀_P,-wk$M^9`x,4Ju2)o= u-YSrd8U]FJзE=`n*Npg.H!sf6!V5^]gŏ{U_ϱuCC &4nkWS5Y@mèIÏ0`t }'H/RbF_Ɵ' .4ǵ[-ýj<+^ΰн%LjU.KtIYr_oQ$XUY& *_RۍR+vqG 9d#!?a\i1Vj˕KRNr<̑11ڶW }zkӨ'#QЛp/W Cx,WMi~'"T1~5'TqY+ciFwxOe\nc]6ezG%j*_4YpF&؞'ƌƱ*ޫuڵ?ZRi mBduaL8XQ嬑z**Ȼ tJ|>k)y>ԪnWr\NGɑٻ=[$%l> Lq 9;(íWlVUoWл%k%רۧjrCyҵ5]Td n$kԂII{рfӴaj`ȆA,jB@_pT$P$Fc ۿJ ,n'KP ?rjGeTFW̡  KɷpױA:T \ .Qr7JΩ]`è񨄴?Zgk v+hi(FBlTOY%N9y\ ݺ*nG*ws;k*c_R3)̏*ti#_Jڨޒ)n<9 dž\*I@{hy\;JE~JmdS9^:y2#I2˹ne{v钱fOHl1aԫAyfM%0³<.,0+[x خ(=[ qYY 1kvє<)I $i)r~2۪Lp]uVFS$m쳄B^|[7/pyo:9UF#K6VFn\ÎR̤Zޝ]oKzmJ3M#~cW/`wxNFBjc:$EnN#kQJZ2A"6IU[цYH,,SiZC)_\ȭnG&̿h{3o>Zb(V}wvyY:[^V]ʱ7B"n6UhtHMn޺~߁EÃ*xEOb+cG FY[F*ARȱ2͌EyW<+6J96u柌揦K/iF5#o޲_F㰹|e.U&LY%R=wacaJD^J-nsΫ((QŤ[+YT.~lvnOv4x/ő xQ*cfGpZ X1AE~J;+L= 6?e\3$hpOU[[M6MB EۘE&)w_IUg7X3\d9(gXZzJ;/'ʃ%o`mkjaп2rZܺz>Whx= MKmS\ < 77-?x7q[ps;6IŎihYc\(=FK]1鴜.ВS" %PFIpJ\;1ԓt1>=K`2.aƱrX$֥?Q,ouՌDqaX+ {n?$nޝM^{wg&^E`bXX6dDOg3؝mT6g ;Y[Ve^rzaJ-]Kl1ukΰ纵enX)通3\#hv-1Nj:NL_13ryHiS(WO[֧JX/S_ʟ<#HU]ma}|mZlu[N*f|Lw2qrWu'ܯWkt+M#f1ޘ<}uPF*ǃLI@#Yœ//q]EwfUmp2睊cxd&vBe2m!=)(3@2Q (’ kV]I0أs6`@~kR_PR/^F\D\y4[#@piZ$_{*M_]uYi_:_vF'` nկدksQfr~h z% m=z^tX2A}A7RjC/6^JC\{(5M)\Z$ty#<6 N9^娝Sܗ,HUd=@jZbcjUP7MiF]-9e|n'_[ Ͷ*>"M Nc&;U0 mӠ!=:s;b§Yĭj&˖;Hۑ+&PN1ݬ*G r"),Lzv*nR`_EI빋4`^ArFơ)@B6H P!^jH^n4H ͖usPV &81+'+2qο&eÈbgDdk_Zʷ5ous㭫[b h5m5v>\cMuxR/эo6f:_¸*C&}ji%ќtubL?Tʰo*poT5v4 rAH!䋒?[Z,a)`6򝩜 $pAJnEcyZT…fLVgoN}\JPe9qT!FijPu6zڶq0->՞%?4%)CK0']uf{l>=…(Q)u"\fi$ZB_WfGTXٲVgWN2r'w@.׵hs}WE/rM+:%NO=/mR\.1Bmn˓ܴifga\dG%r{c Woڴnn/%Uz<㙉M&AK~䑠+pkS ]U.'Sn1|vvHʍq⦻?c>yoE\?ɂ|l1FY%^25K-ˡǾ;Y5e@6L,xiD@XB@ņ- ~"'kn *m4-Z<0N6K)=HodոK^ GF&KڠrXPm:^Ū v-1[[H3N0eP|j.d5}:_G{z &huCt#FeJU؎$r,kFy&.ZBY۹'"[%ݬgd͓d )EU-ZtTBԂn,d%'S=UpToMxY=#a"Ma,mkmajQ#57Kz].A[d(%ƢAXq̙-"67dox/U{m9+EPLi^1,VS+Gd2P\մl|6,95ਿpkGbuis SS.+k[]+Q-Z.UnyNyAb 6dhlɑmRpXt^i %2S+>pԑky񾝨Yl2jcYpbSkgkx]aId36ܗġZko29^rL$1 I]c|ג|CҴWJk+aN`E6:M'p9^dbȠnwꗿl×-/z2}0˓&m+f02G+!’Bj4<Z9pXdi8;uR4viz\vZ|=H̅xUr/m;VPp္M1aciD_fmjhfy[_>W+HD3UmY&2o6H1[a.FҔ?>7qn\F~W_M5˗%})7;Y{i?K톺vB=6=@U{P,cCEBB6*-\'"@Z6ރ:RL7uroAj &"FעUzQmd"ƙXKѣE|3@\~T^j伟f?31庚Vem̻fc&ôj0o3^U{ɶG~b؏ڀ~5*,~bZv"ō0c.s$꺲\\m S+]\0LtE$E#kMaR:LE,m!hU6QhP{Ơmzb]JƠ nLUP5h! p5 4!J$b:oJ"@&Ԭ[iH}]P0k7HV#mF\΁w\+̤i=Kbt#KoNUZEUՉ>qd@yfs$( Vk-^T4umRl{tk5ۄ1BѸZ[]Er(OB}>ٺ^ƮSjWK]Ƙ;ITʺr;^ϫ*_"9[P\uz 40yW3r1ěX U_7jlq1ݿq]?)l' ㄑ =<H',.9̑@MGv#LVCAH']zUO:*R 3' Y@$j omk52u_u2`\_MRCۭ?!u<=]}dpQk˳=,je=֪,Z_[e!QoDö=hh.5mlb͊JWZly_#"&yl,qRO=ND5}!aЋuRSufoE$hEƭLڱ4ɋ BXOk£zR5${ ơic\&\9S ڕZ65aGɍplZ||uPqcV\ν$nocXofudb:㭴SyF6D$:DJ{yS+2L2$p^)s30c{5u'qm>و5ѣ<~lpzs=# VIȁ%H_b̛$})/Z'ɋv?P;kF[䙁ʾ6>N9kE(gˁYxz7Od$g=XaܙߨhdzxTAb\ԒAͶ uM BV&w *һCXj萤ۭQQ+2P(*206 Z8b4N@p*=IlPMڣAV!:75]bsQ2EU[;j${FV]t4.W`lm%2!KYﮕܦ{N'%m]S1C+aJEŵlVI_9MKAec4R=6>wZb5kms9X 1CׯkV .5z^/*ūC#-rHV| iá{5eq\nSrx֝N{F3+V$%^yG#P*}}֘uYC e~ ܄? )hiZbA6"*IN1ӥ-1n-Ec,\1I.-Tc./ƼuVNd&ޕ+bi@!v΅|8ݭ#3 JM7r Xc&zw?wq쵫ZhBVލG*KN$4`+k8$jZPwi T$;1ޝ2ԬqUKۆǟ3)c]:v&WFێն8Crg@:kbz3'\-kҮ ѵ/WWV:cMA A?ZB#ZLkTlL#j 8-G@ CUzd2AMLPpN96HGfDA)XR()C A"i_ _3N:ub{`13ˡUq2px[>Tg\$< $l9E>+bJpR2t Xު}ևY<0Eo֣ƢW}u馔=і7VĻHmv_sΧy+"fQfAի!Bg#`TtUC7Wd"KQl|m+AV&]ZiG@y]N=9"hUBcvGuZ:%z8+3#opNlk+®ٺ' b . (^WJqQ1EqnSt?ƵSנRn0i s߹,D|=}|(GS~mz6%*J҂Np”PUbwbbZp`ҲX5`v{\z *A>*C(&PTqM/AڷyU>|j!!Qr - *T b?  QWV_TExQm*HUEhHG 6ք@lȽ3Z[NgAJZnD 2hu^T`c/zV#JLli% _*;B~.2 "UaJ6\HZ6Xo`F+6)Rtkl9#-'R!HElc#n=*!2-ZM0,MD\GU`oAܵhqz Q vqƌ:Q¦]L켮.VIMPױ?ZuZZ*B{\ou>"Zꊩpd3o5U-R-Y\Ƥ5_"PΤṶiבnt:$$QL{mCoޒlӃZVkAȌmۼL)ʵj}BGOF9BPΣWenl|l_x(#;UL͡C`TӇVn~7&ܷ/ ML@W&6dJa?‘ b6MĐo2]-֭,Lo:z$%5שKQ)PiP 6KVXPMb{ }sU+t/}[bF{]Hdn+*7 w'j ҹ=DɱKzAS3tA|#Q%ȱ] ^LhNH55m5%OR4BX5m:&V'x#FY%@|ƕٺ|&*W2tE}2J+lIU#O$w'SV*^L]@;tZoíFntVX^C1^ TSaH\BRUz$:kBB[΀te7PoJW [CEڠ\Ӣlja4%@31>W)_}, W=",SRn oXyһZ3qv@Sڦ@E "0υ 8GY Xt HNP#’׳;<\b[ =~L[# k},r/S#a K޵ROƱ6Zc5TKCC48vˠCT=;-ӧB8p&@BZ+7*͏wԖ S,wZ`Sq\ԧ,:QZVS|i=-ޅ?2=&2dҬjq| Pu\%ac: cZ oݵf,O'@(ܣ)e]Zyƥ+=ZaMsA.oT݉{bGJF[aXZa%POqڢJ`Jz U  i"NL4ʹw(GXֵ;؎cܰBu!e]*U-ר2}JFFMUk:՟:eqT2 L}* BCI FD8RUMeR3]F^.8Pf9E]#5ۭ9 6S&jJcbn,IF fM/י=)")t7qu:B9#Ԅ~#n9x#,p? pKGtXo bAQtC?@K?ΠI#hG wv*3ٿ53<-ӯVd9 k57Z+%U_}.Do{zZQHni2V l0MC Də5X֡Uu>.kqnDwEr@$ /UcOz|Mnvnѹ$!oxQU5A<+/״[_*>5^O-Oslo~?ooU4V MGҋ/xy,ve K?Ι$I~'goХٶFg }+yXfMZq&6΀~mTͷ5bng2Y<4]u7q7wX(4[Iqt7Û<{s{>~";oБ&,ge%r{n'f:\VI~ޔ?/d)S;ZkN,ڋ֭K?@@lWƯɛ3晿pM>:8BR}kZg ȑ1-P_wz˓{ǻ{Kb*} vlfĆ#E%[k ~?J?h.9os:kPn|*XKw -PnJǨU-URA6jhuӽ+-MSb4)ўw-Nf-23~C.|*BOF.|(uҠKz?jquery-goodies-8/slides/examples/Linking/img/slide-4.jpg000066400000000000000000002361751207406311000234140ustar00rootroot00000000000000JFIFddDucky<Adobed       : !1A"Q2aq#BR3brS$C4TcUD%5⃣V!1AQaq"2BR#br3C$ ?P?3F%*aoBw#QjC[EjIc/*WQՈw%-9--r<+I:#{:AT_0B.=hߌȥRbW pSSnZa1ofi\#MhebZscpGt#t V\RF :E &WDj 7[\J'-x U4 6>/]]"5@X\] ԟm\qn_,].CKVD!K)`5 ebcL "!xҒ¨yc1N\vhSjN1kJ梡]t`*VVr(fn_(n })ۊ ӷvs#̱87!dڄ!`ՊZ[BjKb7!hx=yTPTo`KTUe^;}?҆{F@pvuDfZ;1S4eW+؜nkaH5rG& q(OO;]xTՋCҟӐ$l?1jkH\G"|+_c,RlKr^j57DjP _$8EHFΩlA*s:(z9PX_3 }#K"۬ޟ^odWRАۂmԧxlo"DEՈ,w]8D._'#Y'.6KBDlFT˿T{ubZ% $})o/"ȵI$8dKi4HiN4RP`V2 ɺ$kM;W+p!$N[Ve6vjaN+,=]X»h$ 3F#i=h\Fh$2S}چ.K0jqT,ڞt-cH"عVe @feA'&9WP0ۖ _TJ yxЖʰ[.yfM?lCBU}Ntk*I@r\|<q2wgwgc n(gf {y2eCI)5 n>i N`I{HcrCeewJ@c^T`(EuoFQ%u `7p1ډ"8E#w8tU#zy0WXU}X.23^FJUdJsU*Ԯ߇]2;0#&@jS/V6c)֨ڈ.}ZDk[`Un:˦Y(qxr,D"4~ώښS-q8(ĸAǪx*G;p0kI)$ȋ;čngJ{؃P$m*q ѲB:R co=gh>(ՙ˪wxMU< )sZ"D*zy(@O!>*j-0Da1aE$UbtT zM3tj:m˂ qKowep-<)yuihPot2^[B1Fi_$ƛhMB--Rx/#i򇟌WE "0V*fQzxWdk "2Oc~bw#X既 ^fvv ;я/XBzsG-,p'eJ9+Ǻ=8~ZVyɎ ,#y$4kC:;{Шߌ-).LJV61i!dխf.'CǦ Տ{RH`Yګe'w?%vg12=3NMqtGo,1)@gsҬ TƠRV)Ȩǔ%EyHȊ:W*Ɵ]T%ӷ2W}dARp ƇY3  #WG?,J$(D"1,ܣQ^Zm E{gh tE#NrFPYb LJBy0aOjRE@ b_nN^M+Oݪ2R4"ǯ@`O&fT+Y⹗dd6vaOjJ?~>'Y9 %MYo=4r5Zo^125kqE3"Fs!p*ZI'^\7urBE91(mw I#KuX{-b8fV]Xd;ع0M) ǧn( ZKyXA͏ʭ7f28 j,.%X`a$q'&JG@I먆wK>=sbmZ+ݼVb+E!N<y$ʏʼnM$LQL}yvhv1* ȇn뼟ʴQUR= ?!z\i$^FУn@oҚ4 IJTTq$Jź5]y5OQ#ػ*đT-RULm3pNrd(m֚+YقDibFxbWҵ ubz@"{̒Y܎GnO& #WxPqOrctDn/l,Bf-簸*8}C1zOFDG#r3nc28)n&:FS0ecN>nϭhTe/Jx}do9m-m65o: J Ń!"e$́=Z#Ntr}T37\^G("Ifٷ>+龂2Eȕb꫌#{;^⪸h:}с_+e%V܎XH n13H!kIyvAVf]f 5*ypVZ^2nN>7. N6!G3 m&[':OXYxjִ@i=(mN LW&2I2,ҟl\M9%X b+})s+i _._U/-WjEd1fr@(Oo*ix=~ hP̽LkǙ$RWqUU"$EH7&4;zoA#=Ў]$%r8cz2:MpAn,;B#`@cT7SJ(F22sGR;O0oʴqR.[ j:+.d]{$(H\P^\* އ= 9r{ɎeIRhx +Q+騥Eƫ"18CuTTTKo}-եGܭȤMШ&:EO1ZTZ_i[+sJ3Ha(܊0zSQحC\S 7>HYUcXa;a(CUOD@urjAn)DX%H;^/ \[i3?e}9]Jae5#|FaFs5Bed&c, &߳PZ޹?Ua{ir4wv5cI ^/y#GC?~$$[(l$cYjӉf'5;-Srɾ\~p=4adQ3C܋ogT0]ui˸h1m&]oC\#tpe9*-dʹqL&=GEp㧅΁E3xil{wHz2bnZ\-Ot0}h%Uv2Tj5iE5K# 2N%ėGg TI('|}޺' oiVKh<ꄊqĀ)ƞBKȱ'ѱሯܪ{u :Zt$]3|ς8ܜ&בoZ'V;A_@&:QA֕Qv-6nQSп## RGE:NE:}zbk_ڽ52]/ēR!ɤZba.Qc, 8N=` %}~x.k܈,*j_T-ňtfwrQ]9qEMb1邏O<2]Y=J"f9V{T%#iQ;gL=C(2\ȷ+$ໆ7y ĪQYbq4f+^G^"[E̜n"Vj5&@sG$1%.S/% dw"w0#oۈDshtprnɻ͟ O&Z'vB @G-IB7$'cx;O8P0ZuE?i;18F߸&(xn?/KM.9u#ilіݾL H(@]GYmtX&VRT6 [vLH貰'Y=sՄP be >eU2~%ea?K EdA&_f|7_toYӏqC(гYLD#$mɝ؍`w_P5RKhT,qEQPnO#SBI.Sy%bn`#0k@?Q&Ju_g w OWVj)-$2{GD,e Fr#}Q{@,m3.~Z'@D?m g‚8;3#GWwm1O/AĎdx?tORGq%uYi#SJT7؞) qrOٕHUk %>aERB+?SdDqz u5Y*,"ZK}?RnD9-t1W_Ģ.Fqui6DqXXb׻Y {Q( Ȝ^RqZH-=.6AA G/@e0*+6ބ> Isǧ &Kw|{K>Ny orj q,lLX.? ~=i#ڜMu) aV2**ʀ:qTjjr/-6sa)' uqJ ,nGi"7SC ,r08$j`׻Pg- iD?Y"Z> 蠰&(8'1aq" zXOh:U㤂nvN8Sahm,E*(a_N,\ؚ> ;#{K+KXcH',b=s)/!vѼ4H@R *m1$KHҋ~'\$ HV8yOugOb1^]~_zt#נ&5#9jk%W}rqWʥI&1-VVRiM(̽CO软3.%jmkk+1T0Pj~T`^*{[ZnQ[j[x( .t[$jYmɈPֺTEh}Uu8 Civmp#h#$;xp+#|]aXkr筰لcrA{Mi}~oYƗB+UʁjV3m$>NRZBI z)1As9.#nBY܇BwvhG^d"-8NbpEX%o%@h#"Ɨ ѫ Y)H 8HSʱ]D."a$/ҰPw:U޾dEV?&2(,  x$mk;Z(fD)u3+|7nDd-bf@h(Ƽ90[ <D@nOL2#xGDz #AmAVfيIȉQ+XB~ρE0 $тǥ$ZFĿrFEvѯm}9[3(k *#~]۵wz,ۋoªy#gKxUA%juҗ[Hv×o{2\.nı,f y\$Qn]O$o 5="4ӓI Ȫ+<"+HYٍ>͔֙#ڕIfZ!hdPÒGߠԀ:BfD]-Ŧ[-Tp8Bn>'}+@9.oVW3qG@MUX 0$ XUr"XvC qmMB,RҤSDJȥR&߆P,\qQlusiw6L/^L?f !$@iƻ%R٠Ou~e?5UsK{+,+q TRDw}ѷոI Xt#)It@ ,j()MS )z$NnPڍXp b{a"ۥYA)=}9>ҽF4IE i뢵{P Vbިd-(ClIʒgy U ɡ 4ڮU-ZJ35)i.(YQ A=?U+{̜\>XڰWJ}WWVVc@yu)q[Xd+Q/UWjAd +t:.l2N1WR3+8&I/$J8F!,ёH,1syR[i",F W~5b7&S9Wʉx{VwL.n1JvsdۏU2FDC"yt&R= (WjgG~*[?4).A>9{-n~:kB.n꟭msS?[{q5(ǹTnlEnWZ,+ NZ gD26@5_B[nCt}Er0l'Yy-x LmŹ)yWA&Ѿ8WHʵ–+jd-DtTӆY$X*k4@Ux(P6Ts")9CP/Njjin#4G3VL}(~US&k"n QU*ǡ&2!1kƟۣlL$u2Z6հF#qz LN\bVj'I旿-'"D%JNV t.GSԪǛ4J^I)?ep=Vr #GV c.&qT_kvNy4\pЈ64Q?1g[?kwً$yo8C.sj}(/~GSe, $۰D;. hFi&/C{9 ķO&Rheh{NY"i!P qM?Ks\˻F/j. ݅԰Snj8`W`@lD & y{}Ʀ[<"Si3((}dRiPӚr1"$u}ksiu%f)bYM?bX$$QXWU eX;c6Ig~ǹf* ǡ#]2p˓~a-L>6`a^ y%XT'xEխzi6˄iHK`WoR8%͛DIRR^A@د;LwɺU!w6ƴK;D"_Bc΄IA sM؀bE|'P*** ~ѬС Ӌ浆[ʭڬă/Z(iNֈHJY⃃xNnUhx>J"9q<67seB9E$ЪR̜Bw'C}3e[xGjhy04f%zcNJ~ёr%>^.)%ąaPAs';J[;}s2c/{h# cbrV.\{E ǖcI(]2XʫBBʣ`ɾ]MC4?X\V\3'7j313,@SbܢtDL¿>#zdHl$Dݲ Or~c J.C"m[Fw$Ot\FFX眠 9lN!\phT2v}RG$,Kqjt)Ӂ”t&$f@I ne(%I$VU^g0N}X"0G "\DE{m4C(D=u*RH?zB]G{TJEu'cHRwqF摱&$\IvG$4 .4 m S.Li"N Dv4O ;2~S;YqǯOczњ(sPTmS%j\KFTN讦 qqY%*Jc^" k'ǴmjV`DiYwmŌfIih+ua- mE|s̮2C gi/̓R{{ z\dHn6R M+`n4f%N;/i=id8۪,op&#)_k$TB8 :-[sOڴ +v; M-Q'ShN%BRݲU5)zST2K=&YmX݅F"Jң#*9 cEcH#sF"yxY^ʹL*:GJu`(ӗjW7i{8*p9uWkHK=Qﳹ2,3(9Hkϔ*[ǎD ƜI6eaERrDUjÌ3q!ʤƵ=9(0ÿ+Wq 7I ׏ѺoM[*$[fgѕ.n1iOulVx-mĆ<iǧ#H]48/5(x%;'V3ӝQkGD؊v;I o^T!@excgs`P#@y2ZQ(߮xuɕp!#!zey v]֔ua˰MQ].y1_HЀT:ϻE>(Br[[$ov~j^ueV1§ZYuK qqxvfO"cxZ8E IZ?_S$+dsǯyX,cg9c6vulT몪 :b<#6O0n9/祕ڤ+T/ 1gc_hd2t4ieBݭF|]&VXr-#_Ch-hxHfQXG ,l 0M*,)h6|ŀȥŔrcFkXY||6.R& e;x{)jNUQRj GB+q 0^k 90bq<%S 2T_SDFeRe8~)+#+ ̰gkrYm^fF3^d:'>Krm0z~*moXKV1 {uAxjZ飅kӒ ̌e?>(3-ʃyQ~r"?⏵Y{xm~ 51Il1okgGWuuͷ+[}Ln)q_^[}ƒ&v6܊䄫\HTuqij>;zibjzy\IlbY"nL+qB:.8딄B>Qaj>{$IF/Ԛ^!4ŐC(\կ5ɓOk+j$u( U\lFmdU劚L.-+ڢq8&EY6 ߢ}{hhb@O+#N2)V7դ ݘ*k{|3C e~KG%ЖHy1q]YLkv/))OʚgRɩX1ZNlJ "'+ Y:қm%hdؾ|:T/u1i#tb FbR !]Mj݈^F9b;Җ0]HSqm^Lhh$hk::Ygdb+{EEmZsҧD̖s&u?ZO>hŵҼX rJ,9 5A+H6x{tQ #J="M`Vh% SHyP2?< IS `[zFUڽ5FDYgW/GY0ӴR#%*ˍzE[-n6T58pQyy+7Ĵ]RеKr;IRde&y|+*]LKK! _~u {vh\QO\x\Wv[&XnR~U܏ZjF@Qߵr68<$n;a&Rdd$]*tLUI-f2Uk(Q]P5}*H[ Y ?K3Ĕ>@wۧ_O٫e /vr0[YZp!- ]TTY:Bjq,:*o]P5ApklI+ܑZ55)ZNZ hY Ԋh1(u0R0?ՠ [>*#_Biۺ,V6Ȝf!Vvou43pn!>]HRhڭb)/"Rᔫ!)sg֓ X~+/*;%9I'PS}d\WJM0:їU`sn!{y ݠ:H=(iƆW(>]Eo/PIytRmwkĬ7v&řHwca_mǒx?ygNHͱ8^q~.-myCrD ;}ʤzX\Ȑ\ tImh$sa#G_M 2Cc$ #Wvc^GZ I:T#*;46)nE ׈ 8ȑj2-MU)qeq5'C1fBެTRjE\GFo@i$!jVWǮxk9 *f-`O)߄@}$HzzJŻ౎7i湑!1ɥ~#pAWk{KNk53\=lB5caqBJRG롶j8{{4z9sކ]0yƪסd% [r `;$g wͫEq6~>i$(Œ6ZW̢͂yeCc;7J!*{s~.OcAˍvK,>8ǀHcph݈tI;*)Z9x\KS鐦ik'Gi`<ӱ$rsYy 3~e jīh8DN ivQvQ_*OQQsIMPpKmzq0V͡ZWke@Sf>Z#uKWVVi,Ri-{rI$VReaF)X^mQWizq[M1Ib NOy&Xa,AH#zt馒<)9Ơ^ ,=#U4_6׮Z#CZYtFHN|?JQGPb1T7䶷Sd-xۉ ‹S)}3T"d #/sdKI/!">/p]c1*jxPֱX_otP,o~$Wgq:%O܈sßhf<{hmȺ\S+!n*8;kFY~IBRheq؞dgkpfXa$v,U|aqa^T7˰2xKK·Ժ3(=kSP9IEql6 J GJVi>T?(|%Ä}h?XŘꭥoB%Qy"tU7_CA$WBKLE9n< KKC< Ó< 2SF5^[4BHYc5O XI(wV =WmqJ6nDp@pI!SJ>ٰsHMgFz#Skf\/x*Ƶsw q\y4_~3E<(Q᢫C .a+n@Bwe/]Ցߊ`!fms}z IFΒ8%ng1̕.4k_oB+~1% +Ϫ^&)_Nܐ5 BL)q1+rr#22vJMNTc<Q$ .AHm2~Cyp7y~,2 Bν>?t zx͒&24Sۣ<*KcUսhb97 6Fu=Awn`eۏ.٪6ДU)joO뗚-ZHY{qvZ zUn(-.7L+[Y p##0伐W}QCIѐmgbc5X+`h(?3ځ ёu,PK{ H99G,rߓ8%ٔmA5)&-L cCԇ9YZF3\̱*+JQq<ngnl ǀlOKf~קO@um/RT?Tyͭa+r 7vbFwwrn-`#Y|Rinqxً#$dTLoWM/s(ͻ&Ns9%Cіh9xƈKƴ? b>vCu$3#DR}ApKv$V|ܨvDӼZ]޺S; [sCϹM[bM:b2q؊͋%x֞_{)weQ(o,糉"Qwi[P3=ڿHai*{Lju\:5ehm6RRIGAsg Nd<.g sQha+JObduK.LL֤-k6u%w^%~rǮƧn$TJE1,r%VѬ8v0 &SV赐p^%X7~^ʼnG!H}E;Y%E&.Eay;srJ<-g; Ud _;,[\Ek=WW@C;!])LJ!v61F˺|vs]-:yT^jU =Zto'YJAlټiUQEosP C0ypw.TG֐s{q{)0Z>zݪ%i6XƱ_1cbTT@Z+c>Ęӑv;Dɲ#<)*d-Q\c +֔:frW0a(7M*{d;K/S֥AVԵXL޹u[ '#o%7 h]LeAXӓ=(OI0,C|&bkno`{WE@bmrMdbH?sԤk|;E{9c +GT܂4˱b|TI(Rx̠1#3r!H%PJ? tY 1ēE$vDxNm]xmN>Se.\. n X:2h1̪8ӜbE(? *:rqzd?Y1 \Tc#rh%mɜ3(*DΌ8Q6I6 -m#H񨍙=-*AB鑵CF!r1L`-0|K#3ZNkFէZ{o۞皪]pՕW7 `u"=z٭vw%Nؐbr5sکs 9$r. F! B<Θ;LM $2*TrBkV>hj'A<TI'0 OAi9xx,kOfT[4{ %Vouf8$ Yn<2V[m#7F'`+RB[PzZ2lT6ӤH>+5+3%.m oܒStۮn/Gzb3kKs{NU4XG5r~;Dc19:2WGI_^Ojđqڑpy+Rk]X /J +߻%Hc1G9o$dek 2|&!|JpR ]=qZ39#ym$4l2r 'ܥђI12]jqCo2ܙ!/Ui"Ik ՟o28pτ1H/nHEho%.;!c^Y:]o} @W#، \BT,vJ,ׯk4ZnmGVK?Co$dQ]DLu> ~-rʬ5T!uֵhjh9u KjLC%j$; ?"'Fs"Wtj>R{q1TƭAso m)8QdG1`'z E{KHEkaiq4ROqih4kH~WP0 +}^HHBrٟhÞbI<[ 1- Й֝jb4q`'dq%A6V{xGi{jwt79)N5cky$9XJX2Қ5ϔ#r]Kqٜ"/t$ez=Ivt?2 GoMƩ(D@*қ~Tj+5L"¶v[7߉STcO DG_ȨI%4 mjM%XfIUO%D]iލb݁NA/\fOC1YB0 `* C/_"*^J>^Eݟ+ypY&t7-FJN LJLya3$טqhD1oo ޫJ]ei+kVbwWr΅eLVvQ D1,,/-]I&xV CWCS$Bgtǃᶏ *2qH$yR{WF(ʾfaekK&VeҀSM_ vޏ$.❷#là'sLc'6?=f{ y8m42wagp6;W4ee 62s FсYh8RC|ƔՄp1/e; bZn'5̑k$I.P(4LZDv}_5`o1uy2~G2?T WN+dMU[ac7Dy8,$!y cXHzz^Eu'wIg-^B׃s6 ۅr05~c#S--̀\5- #r_QkH`T3˅F=:")Q8CY^Pj7RU4M(8DZe6kHZ+B´d"_Uϫ#-Y$Q6XBm)hqӻ:'4;ыO@!$qQ?4qk7bַ /s"/ /u#>:hWvבn#HfGIGE*2i w Rcbd.{ ;ȥ~W}!T4nHomhn?JW܈'MqPZF*1u k<䒻Moɻ~<2vҫ?+jE3V5?wT񦭐mQ 77DV&fWPSAU5(B#ꣽWWY6 ٗ-Ye{EiʤmXG[e)_JbbUg's"}̩yi"B2n8|QJԯIFHo}K, fZp SoE-EEc$5G_/LG}0iB kFޱۥ4rkuwn;M*[iJNMVijzgflc7(эI@Ρg/YMAZk_(veC$,xd12Yvt?sxY-[ьƩ/k﷞g/eŻEsHy8Px#rZ=unCp[R|~v)C8E@5rm%cVcs+uf*ѠjѺ#K_h7Dn<+o-xBr݋1*Ն-lQbM}Prm-9(8J +CXƈs^d/-q)݊a 2)@bi?FUMMv7?NhV"|~YE9nۋU'c##W,&^2@)4vV«N>e&9N@R2ѷ5Qu8çHZEx.ΰ²FyZ4VSa_ۨٞ#],(wJU˵+R)sfJ}Hajm$5kuTō틤SQetNE7UNQ2T,og%"UՁGPx?#]gp5҈YXj3%:IcF,D,YJ|M0\~F 5LbLGa).@V*[HI1&Gi>y|O%Z͉W 8UoMvrJӴi?~3j9uod /",@{[qo&3omt5x}^Hnmm#ո7_hcYQO8`0̱/ Ҏ>J{Sw5wJ?lFz0 `-OGJR8^};Z_m\xߙյv\n(#zQcx?JpCrqb4G?K{qo=ͽHu~"W4zXn鰯}>{,.V>BxĎ ?BdHňvo=?ù'U'P]38SLUŎZp*(CDRȠ 1nmu(qR\,ZF$w(@'eEOyeՔ,Mqe2CV@}kLvID|,,"/kt2@q:D]l|m7xˌ}9TVy+Y$$:n N%7ث_w]}qdBF_rܴuF2?,jm qCr.6گS2,Ơū@oB?-u[d<^e^? V\M%C/r) Nt#y+P-wpnLC)r<3c96[!=;_d=ʻ#m4a rNOD2Ko7ȍ5?P$a!֣+#I2G򗼑*iݕR9oJZM Ox܋%f(̌@1T y BRnJ:V^bccX%^ @ P+s2||t2En "L÷>BdM8҃j%1<#2YqVX~GLE= <~L7,o-ʵ]gr0CFޟ\ScPlj9usF.Vi݈$y2_AѬӉ{t<r,@^TMRzWoQS-8B\2A*EhFt&+ؙȊkt刂JP2F:Q<L#K]ۣvxJ>>P OK [^i1$dY;j{TW qKl\ָ-o($[R"jGNH7~c\-n!W,Ѥrd1~Vִ}QwqBݼ[%;/!~S`EMr.#g j;f3ǝ\eؠ83m:DYˀܔ ڻw>͌I6nWջn m)P4b 0؏C헊^%C1n#45I]QJKt7c)S? YVgin^B[B d6`Qҧ峁+E\^PϩiYlo/Q9P䊀\!G !(!n|)(0\(C_dUߏO](lO{q`qKd>y}w2Ilh̳2,4s5ā~FԈΑϙodΗmeHʴeyr,)ֿvsgfJOnʬ.)g UM}.;$sڏ6ƵxQfX>r(іxHnT6F֗- h%y8\FDŽhdbw颖ΘH~&Y$eFqc@C;iѓ"? S yF5?")H&`@bWOg16(A؏HQiu."*_C Ađ*E Th$ }tg6*tBeR X4%Z;XN֍ f ."QOݤ2>WpAn嶹h]dZ27.iDH15eZykֻ5۳x\kfO\YKs%t+im[EPo~^^˻l0-7;kTb8z-ϋ]y,G/`(==] Qnesot~ $ܜyVR߫5"U0r\SĭQp#vyLSfȃ(5e&g_㯄҉n! Dj%՛jmXEXǒuq{{r%9 ݎ9UZYBSnЖ':(G=v缟bC@ >`~Ij~}a{rCaoq<M1dR.\T [჊F` r؟͂J;y1{iq $EXc?S-X$>OIPK/'뇳[c*8zoDbr@m.k4u+"KYv-I $*GCEwmpM\OJoi,)1`N|xi@ڍ}ݽu\naJKm Ik$EHڼLn\Ѷ,!"4d1]i#z} Հ+o* kޟ!Y!3HCp*p#N$R%2N9)Ve"z_H\NMjnwvm40`A]RĠ>c63Ry2 oՁA;+^jo1+2%R mr6~2ELǻWΝjuB؀jvTJ'[,PNz%O-0qæ D +0b2@[jٶ@*f//eJ.LjGjsj(cū`f11q^Y%P]-샼%,`cbr*X</rFZmV`fǑx7%s+I'/dM5~n(6MխVoJ 8iԡָ|{sMh[l7ƛ$[1-' MC)Oo/ iw ׏mZbjo0+}%%cFW᫋U* }+,2R*w+;rpFC*"9c lOCWҽ>:,&5+V`Ω-^Fը@@KH1n7VΠАh|5iھO<HҚ)X&c(Nz+v}ZeD+N*TփO^^rynm@ T75Jn=y0)Mz @2`[C{#{xPwm~4r*;g*P,zKd|Ӥcv$11~cnX-X^$RzWLYbDd:'kRbHPOXz H{]9bc#>wIL+[0%DY}BBT\}uO.9L+En Y4oTj:*{Amzrc*T3%][gU4of vQ"&,8Χ!Sj/+"'P7ql[]Ӛe䉔LhY 4 ѶJAlnQ %7vWQZJDyG"tPqDH1Xy_6[n`~!UI :Rr2r-d4j5MwDmn9,rqёHl톚h3qԝo䗯'/ǂO#syW1tHV'n 8TmZEȘYcci(1 ^:mY8SAP#1N.7&*fX*>bзCUA2Cb8إ۽2JcPARSQ/M[JX\Sׁbn2Ҧ@==:qÂ~Q2^o[C%NHA&IH_q/BJ eחkcc'iw䒫llE-ȞӮp+pSxY+g@N0HͬK"cnم'^+qL r5@eg˔7-1՚}N BlZ["f/0`A$qIk$>h1\M̎ǏG꺌‰ѸL_eU(KʈS^qtJAٽTs`;SKllY%XS /QpBY}eȶ:|+UK,@Ҩ& )iViqe8A 5#*I߈,1zv%ŷv{(YX(,ުAЗY[[[|nK[YHK<ocE8EGR 9 -S@WңmX)D2 ʋY?Zԛ|b[(GVg᪔:՝^RxLfݾ"F?E֛8S 4Fylr/ŅSLpS] xa9DdRn҉ paSK.ܾRiR=MX? @[>ХWA#N*c*'\͎dz,"La[T:  fDK]+# Vnh"y F}OA$$1" Kh=֕&5{*k!X]xȻR ^,LC,98(2) ee#LYg' A[Rx (3!u8\!wYs@E EJ&B| L"bR]!&5Y6 Hg~3c, =&b];7m^"^1Zk X.ڪ%OPvbk{4){j&Q5S\OqiipwdݑH0C"B+H܅֣\!*kf+$=$mIG푪epF92A/z*t2-0!VDQFF&9! o7 p ]ӧH.ߜrOhXљ??C?bVy5Z+f{c0 =֜eJFu"A.\";:D$)qi5챫me43 NAXĉ/_VU֘||h,/\IncaEU!0()[+YC%zƢ*ޕ ɨւ*UidK gDqŕ އQY rGw%^H֣qh9s{m ?yB`NF8icufI($*\K)N$U*.E>ɽa^R 9L.bª27 = k .Є=BL↽G|k4Yfn$L0ee5a]>s hV[ӏ@+G|Ii 2ybieq݉mS*^FFݿMHz .K;t2ؙ 2ǹo+91Z܀n:4߫c ;ZjԔd1,[[M܋'q<dGVVġHlJ$3nj`<:2j < *^.Z'W- % wןD{ ^e?tikz.DW3K($pSӡ$kee~ qr SDYuHUN]~h.Q|;i3ie!"^3#n/ƾj`e&뗚-\RC7O`WjATY*(1=0Ab?/+K:N~ W/m!%_vơwSO7bwO~*w5 cMRrOxS䔬{փaP(+@b!y/wfćrP =hzM(oyM!}y_d!fi#U r L퉻{ +X]Zm;;VYew jyt\sGF*dIاkn͘NqpMiYacTIq=( &e[Ydk5B:Ģ5F!ɭF}]_ %mfOdan 8y- 44=_DȲSZYXU~e&_&Th !-!gN+3&Ccd魮R*jN~,8ՅjGM0 01bn+n* Z3˷ߖu"j {CRc ;h'gL9,vUJB ʽȶ;[87> 86V+̒~UKnQeHmP1]MJ.,0y <(err9*@5igTkS5Զxi$- }ʭ -y<JٜP!6^]*v=8/?sk8ǣtK LjA3j pS͈5LhWi"$Hq+"< Fk+&9Ar|8Ƀ[1KH**i#Vd%^T <+]DdӁrG/("Osiځ!b8*vSǍIOHl8#7/Apׅ eTf&fbYY*:C&iy^}: Q?v+`8:kv)QQ Dn^r@uy)6h_\\\$ef{HE F;-i)UCnF HDwǒ-={13ʦ4h! Fx0W&fߢcYrOz-Rz_⎫7z >Eɜi}v +_M9e8ϧ,-HQpR/7cOJO2H/O1Lqb^4Fz2²'Tq em)¼B$"ԃʨ o]X(^c֜E]G@8Q%-jOTD2IIcq Qm..,SۣwY'F;xë2JshK`8YHWSGPA(qc"2[y;;$Yf,JH jD` u-&Kn78F߼U{ {^4LWӉА+7\ eluqxYIbIvZ AǦ ցFzW GHHk~Hdz~mЍ|]Vc?Nh41f2K%P,L-@BI?qh2Oqk |7彌n,g#x$ЖUWU&j+;bh5ÍP+˸13(i*GS?W-tiАG8g{CcH+§VVCvLVg {K>AG:*P34Ov5n?Ǽ}1K(Tf$$FRv"2?Vaމޛv`YݤH]njHP|Bg7QIӉ= /:qV4ӟXv%T#fqVEe? ?FXLN"r|76yʢcCwܤnNđ>݅tAPe6Fȵ#_:|،&.r*όăN@VoQE6?,{٣Eo/CBiT's,u,ON@ђXVh>S/p{V*ztӮjcmW2EeDZ!JKtЙd-639E&>{oKd tIVK2 8S˭vj* 1F}_?eaӧH\Z)HcT+UȜ; 9=93 oAMIb$UNl13#5H8ۡ}Z@'ur^)ü̯V+]nϴ,9{P(hn 2]FdݐNŦ%B7 <(X`y)%gZc"Èef߰PsxRw ibla -O8Ss*[GɹF8x,c[V3'd1<ag,d 9I6z;c-",\Gwp @1^]#߂mPqN*kLc  $Qf 2VPM A4Z'3\15$ JǍ጗֌WZEu X F}%v j2;4pDpx>F.%2ʟJV5}u`R Ifgx,}^`zѺtਟ]d׋CM h(Ҩn ݷې$c[~$scmyV>QHT 8a$j/U tJ&vr.w1bUTT;FP}ͽA}ūGq%v>`~4 4/blBV!ta@GZt$W%,Kg"+{>eeK8/UQ\Uaa. lhSRg+)S}YYE.PQ0_'TO0VWAYD<,;rOb Ly84$/t`2QlU\b?R>m Z~Bq>]bn7 )مG:߳+u fnO1^s 4cIA 5KޚN!Y*wkdm_d`/&$iѽwsƌr%M-ėL^7P#i(Q_PM%1 wvWLQL&#qV[SuY-RZ$cҋ +ِ/N}2#]|5P{<םI&C]buJ; јŭ[NUH@9znMc(טpk|z9 Rݘq+QG)"%{ٌ)<(b j}FqLʹV&.{3Yrr ^iFYNm/mofSr9QǺ))]_ݨq1-tmFvШ]NM*ow-<Ԣ2'9m$'/uY~CN3$9YKwmupIcWUiJ?6=8"D@pEj *+u̵*H;A܏QD!eif%QQnjNҟb/ L<+?yK[{D#6jO%ٍvpirdi8!W#$? YU;h^;m4ŁqZ(dhQj=v=d|C+ܯ>-}k4+oPWqoo\X4!${)o-F<gN`v=DZM 8jN륆KY&N`n2/q:0U^1nH~ xVY$;G "H]+5$NoE^4mv?7{#H~vEn*Ovܑ13Dn.~$nl)*imYXH\Be h=J!&QȻMKVq)Fki})U'-B1mDׇ>̳DDWrF%-8EFܲ6,~G9l@DRѫP- ă7 *K_d#pG#7ReQؒi'\# {Dy'qw[`3- %腭LĆQJ|ǮlȻ۱m(h )DHPWFʓ_ms4ʪZ4%]0t~#-~B5LX#3WKl&{X"Xm1D@}K.PUj1UW EkNKkpAnIUxoߚ%F:JBڽ ugO]c>OlbaX~B5唭?ֽGFBp;0(T_CPj%@yl(kʀ MOO(*\_}J/n#u!IG^RGTT?}L]+ k9*)B;+`j,a4Zgb׸EY^?Ѹ\9iDřbmZxH:+NҿrI0ǥ'!'m.}GB+* Z;hpF9 8H[aq%E2lмXJuNԯAP`ީ2sػ][ޙ6 E `_HISQKWgl7~=wom5KHv9K0ܻ7*q"a+RՈ<IlL9K#;I}YJ׸jA0Hwxc2 BK2%aRd"J ǖKU!Hqp8X~I,sIF~ꌒ'zEς#.̱p@VH "⃦(<f=>LϨἔ6w*99UBՎ$dZlK=+mw\r81?1ؒ}$h4J,dFB*{XUM }Xpy ?Q%X9B5>HhtQ;ӂωػvm/mn1rbb}ʱB=kH@́n7j>(T+^TzCD xn<WLTOL׺a+`?N\B%Xusj؎{-!~kءYV;{L ۚuʹ ;]-` ™+-|N*,JPא24݄\nIJmyo,|@m?( o++WU2G/bKpi(( W]*- b)CY,TV HT~ *Ry'Tq3Z\z~-^5qQ:e!1I p^_-r-S(Y$҈8;v@BVnJ3{H 05}M,u+.1ŤnPx*ȫ-KFܱPk]k ]Zt=;vr"ɼT 5R8OMD,[ނ f ̿/b"Ps Ҵ蓇1};cx RHj8O*NQJqD*2V@j,"M\vȥP5W+)efj<@> SKYKV9JK{(97HHݫNZ"]7 D׵Iq5awf(C1x8>V9NOa~IOw K&khH.bj9s|Fao٨nn,'M+Uqq'.9{Ͷdxo/YJ9N!ٕjBimrVCi-=-.GXs:bݣsW=,&RyHΤ4Kwd 6̋sK3 wzVBƤ iHՇ:y|QKDHЧ9`%Z~ߎI#ܐ7r)HGT$J߸wbNzSW)FP=ň5^FSp9z*2Q뻩涱FaFHB 5aUM0qR?yo"En QUG2i\F76ӞCt+IVv`@ -op:jN(/7ȼ~]gr|а{#YnJbolr|YY1+aΛ{aUg#Tmnw4{d%Ȍp梓桍-k^..>,BFۻW_h?=(ֳ@Ў5"c:$^C8 jj?%芆% t CA:s F7T$U^|vm-$=J~ru.qCn'oI,#{<>rli5ß6oaLmċY-cxǹDQēzzP(Y$a=X<(7+{kD J;}+Yg+æEt;Xp/[whdZN!䍇,'~^5 s/lJ(3tco)IЇS#T nc.2QC4;m3^ Y3mmK9 e  *.9aM.DJ9.$SӋ9, pj)]C3C7g&!qDn2(dH }G&ZU GX5^ nBAsMtZ!NQפEǯ3YE,:xnZu 0zyCޙL7 0XnnP70_SPN Bݷ8A +AíCcd_?_' Z~)ŅJUSƄK-Mvmh@aZ|FZ]aBۃ2I5 Q0|G_@v3xry(*mqwsƿ%# eOı;s+=~#>(W椴jd~[< P Gfޢdzd þBoPl춅:k]B I Bb hV)+QU"ȱ)O]IIC90$ Wc,"f42?U(G&[>ReHո$gBN<8"']]qUBEHQhQ"'5bZGqH R05œ(l%9QD^Z"$K"wz }ꏤV&Ė6b ^TD<{BEn6KчZS&:|Y74soqC[3(75e}TI_s>5g-XvP(]>Z9M(῕ҏk Tg"U d,$ƥcqhEtqUۖPZmϩ*wOxְbqy KY{ @e隠 v­E$'*Sb̥ YZ ۭ`Cb=yN=IiʧK|U2(zT4+M#)Dgt1W%dvo D?v*?I dЁt@(Ʌϒ[JQ`c~P6CW Ԍ 3s{\2BG+?dzVGۓ?!N?q W88)s2n]g,nJ M|)ވC6pGi WE$1jYſb|n&Y f[W +v~a&v]m·2,p?o7VR7pHwPj.w-&Lb%Ŧ?.Wu))]h5 Uv_L:A^6p!ڃmOvKUD )}1e P =s;2AiENu?^A m)VfrTޅߍ=U}NlBd. *+AW4Ζo]k$ f4/LJg#wpaVުu .3qq`cq"M,"VbWFHE zj-ݔsvtuf>[Ж]"NmbJM~Tn-NA*(lUdXK+Q]ZWrFœk'auxvvʴR~@H*GDp9ɉ/çO޵j]Eo-fdE vEHQ:}bd,@;&G?boVyUe4A髱#1+oD{9a㰄&ynVīAV롷:Ɩ`cmI/H} C2EIGB" /=S#G;fZc#%(n(t&:E¥u?#;hԯ7դ夞٣#\6C O_U'ٮRT0&=Ժ@@=6U x]!N6$&9nBoLkT]+6, X)Ԏ*eRQtǏlR?90"Zh1I'zKkǮeϧt^>+1YOnp6x'p~OI:"k57Cu m$-xwͥudA+IcN;ЏQ$F%kiV&x.GM\@&КuQ,.y8x8F&&j&4D~`m8$x%XgX^R,9^ 몔IZ7Ot}y;k$ۃYN4.= Si6{I[%sE&68ܶG:r!W#vq.k8@ ^jyڥm부ȔrS_jk, ^{Ƃ.Kp?ӐHcVڝ5!(JcL-ێm,GVqbG붖1J=UMWZ^R{#3D=35bzT"\RǸ%uһ)%?5-*PQDO+#'j%EzpQ!bah"䣿o1d?%;0(X$DGqY(zI;ih0y>4Z[)1' XSm) FHЎT#Z>?Da _VY&;PΔPۚUrNsOGsDzѪ)KMJ-AD $ԂjŒ3[DKp"NF4GUBMx7EA F$\n]2\c+* nF_A]Aģ,f?ϧRU>2,FV"rf[كE"@$M׈4"u ^%E> L\Pf2m7E-xjy},BCzwng>k|(⠒*Q2ڈ}$#9ݷ̻/-+x)ۉtg*`I$tdXяU~2HD(q^5=Ap%*6bO/cJ45j,{ħ' {=-D4`J%jzoJb3Ej R;-ѭܤr85QzC"7/F|v NN,U(ˑcV1%WIH-#,Krc8Ak'|&r C\u}&wij'ܦc1'^B79%0gN,mȍ=u]&VYGW__/3FH[pU,S~t70PvpEo>GMA+ʨ%$J(@A/pZ4 69ɵt/b3^6c-v.?UpD)a}y۳.6+JhIF Zd[F=xu܀tqxeBK"Pmu8yFb1S+?F2^U_|nM#Tr\7q "fЌ=u\@3dVkԎ560F ijПFw=z+ ̅LdCEJ>wuJ&GZLaYJ*`9+T| q&AW7W׵㥀w!W\aR^9qʓZbd#Mxr5%n-f@*ʾƥY(cZ|kJ5yn8WssWPĻmf>YH$DǸ(,޻ﶭOɨr=ԲK%@jzo c˩u,;K<~m^DkEh& @ iҍ{qc6%fap*}\-dܥH+0 -2M JL6[yFqdA} \Kosr-}=zSWlJ/1\*  |OjjC<~:02|~nnKIs!r$ƒTfV\mqqh4fu;oQ^t[ov$HC_-IJ% I=65`~ϥpAbGw4Y[Y1ƣ;U_t Ƥt5?,F^DcsxQu[ǵX7nNdֺ~T w"y~7o8;s7 =350wGSBB%n܉ \xϷk%B+j9U&)E!czSq[MW4Qu|3 RiC2FCp+['4 ߟ`SbO?akGH :`hyE%+ev9#-4<];soa#LVOV˿叧suˍp#HŕojRvЄ/&K]sKYHd~@ HD1*%Ll|r[Qk/p bV-]đٴۉ]dOoƴ`NOpǐsq#Pz@_M_ɢ[iZGm=A $(E}}<UGQ ?}z6S5?EH)1_Pҁa./]-mZ(\0O@ ?ZT1r{{ t=qkw,{k5]ǰWI"7H?r49 r=Q'}M2;R},Gj#(^yeӬle2:QnU5Rb eT^ϯCV,b[c>: 4ĞK -a-+G(R3?iuZM>6i:3M[j#>0ˠKQ#0'S|U٩U!`[)#1⒆\Bm㉄nH)B? ZK8!߈BXj} z Q(t?uھ8ڛn v5%\m]P-=!jOٽ&ug2`?PUyM-Zcu&>b nqScq$"F"R$5yz!c9"!( *Y :)uY >~ݯ!x}Hd,TM0+|.Bߢ&)7RvI(s1*#0,Db1P;n5fAۉ Muwa;t *O*}T+֗v5DzN|:ӫs]3'! Ante.;.nu.O4VY] XaHnѲV#(TniNI4b餁>5i~SZ3tw%dq6W'Qm]Kdv݊yoN Zx1fׁY"~-;~#Of%8_׹_0vejUd*{{dzi@Jni(x=>Yn)-Eb¨#W҂Bo]#QȄrZb̖)hEzytG5 Cgp#O3Qܭe{k,_ۡjːUV02ORQ2 nq,]a|*-F|v)H^زA Ӏj@ z8!6HtbZmCK\pJ :[%Ѫ RY Wo 'Yk+x&"dPʊjmb];{ȶ:[X ț>?vGvj׷_q0X^f[%aS}VFգ!'ma,cW^y}ɯ?"l1 QO[хK,qP&ǴB!+t>]vq9[Ym$IJIE~4#]@J4arסh&k̵NdK)|T!*jrwjeڨi%˿%T8R%_U{1gkQJӖ3oN)F ث,0\3:(#$V_n]FMwtf(y$Ghѭ&G$ DIjuڔ :GJSS$븾/^wAn}Đ5 -@Z&)EQtGvG޻r݉Q5 ?{_LAGQ D> wxx.O!(Vk})r5A!l@"eFPCDg޿`aX{ N_X[Xf gi!H]$\IJL1nR*W@[ԁ96XUY,r¬#dHyQNmgY]!V%+78J׏q]6@ Hˊ_}k5Yw~\B>#J{pr+41 r_mZ?R{8Jn$ccKmX%!ݗ )ۮd+4j~(憶ב\=R`(#QܑPu5$0j O%]]o46_DZ9qD?*l6^6-9 l2EkBSu~[U%u ^$OSZ$YZGY-o52[{v"܊U$fЂ]vy<_=X^|m{BICiE}Ed_/4]_uog0 Akn*5Op+%U(]Ű[5ş|Iq5t0QU/BG'fxhuݑͺ|,&Ci2V +jm6WT`jcqG#1 iJj~ZUDϩqlQ(R$/SeMD#=x0Ȓ í%ݫ1 /rVD8G\RSAs;KIo%( ;qt؆$Ȓ俥_޷ha )7L\2+W ?u#G7\rRc~4?Ū晧q%o%Ǥ1(ӯOҚn%EL脖y¬X*t@6ɑ92m46F=8ڳvJj??$+#k>4.ӻnP ?ن?n:5wdnY8E/^A઄DBy?@R!Âgjj9 b3~_}-C*!a=.&)NJ)ȊA$-^%/s>Ub+،+crl kS Ō\:fx,h33I]vJbEֺd9?%[,vj ~1ҕPS'q5ŷ9#IrB= W8?YK:uB۾"Tk{#faH'w&ʽTp|k$s;0VZ$n7>%)q&Pzyy1/}RwbddONl!=7˛Vǭ7^֓ Wt5/rZ5vnJJS^\jzWK.DjwomFD0sEaؗ NݷI(OMEOZ1/ZG<ַVJFet^qWXaҧM5X1j'6KH䷊k9d!G)"Dh+tnU1Em"@l_ uy#M 4%Fjj{NZ$/K&%CBf) ߮ e.6L+ v]֝F{O$)5dlH<4$AP~#^%p3'*[p[ijedw"I 7t^]5ҹn2Y6$\|mKpL-˅ 4PZWL)7qW[[^4X{'j&$JDOLhwi8G/5#y|W1"b1ܝϯi$c4>{2QeUW.*;js*&S!JxLJ}A]=[O%i.& Sz㨀2 $gFiZ <’:ѺconOs II;Mt!R@xukoz3Vy]<,X`ŨW]yִ̅!Q6$HKnI|c8D+Z]g?%[YUcAg QÑ!}7wvٶro]k^b>1YrR^Hܢo*N(ޝTjֽȃ?$˩sb16;&7n0g5O(I*MS|FZ3;GDAҫWn .D{212R3CZ}X&G XIgXd~淁4S /kk8T,0j~}qĨniMsuiMx/y-|K"xLљ8L}/OI|G?ڦl.8G෕\=㮚[bYA!TR}PbEIc~*Z#Txc݄c2 ~9Y%e~̄EaӭtD0@g9,k# ^]HDf͒TV*Yi0`Jptx@IJh | \[\ou D5 NH>Uwu!0䢆HވˉfUհLa£ O`meCj(Gv;'|th뼌?O-(),v.[m)֛jBK x(Rr>Injyo%oSH2>Em ݸi#VOq 躂 (*:~2%9!oa=0%TNRx䡈Cn+kv;v^hgE<G(ɺt7oA"b$VX'S}t ՝r&;=)32S\I*څ |Է. - nT%oIFiU I1ӜjU 3pqϱ9x3ŕu32ð(Z^E8OrF]RqW'&>9=HJp4 }琨7Rz.D=h5OKt߳*8}sRWj %B"n8GuۘV5Ei)Ep^qСXecu4tyDL}NJS*v4CQ$qg\Lׄig3J" /Z$nxX Rh޾ge>Be,E3}D؊,rpxß-G+^GɡƸk yKQ,+q $@pY97La[cY-s⣽%,љjMa &nFg(6Pc\WOŲ)%2A YٌPHAfMlۊ2lUɼ՟>4&/2wuXFy1+W3 zA dB5W'pxÖ? S$lGp6&اPt^˘)x崳3ʱȶ\?ܒ,{@".&-׫ÇZE!076 y#v/ofnF4(N'ЁSMQOpçIfhm="К#K?Q͋,W=4D|IUI0RkVNASY!I! 2P~$I=qhx]/Gt%V20$<@5WOYxۋypṋ*,{cAAR40$vXb3N:}MX=nZ:I" \;ާF l˕~yVsy&wD \"NEh㾲v WO񀋯 SZ^"#g팋=,HC~?^d[ii 0bX(#mjY(頪ZzPU&Q ȥ$iV??\ţ| #.?r39)i"4k(摺'6tR?)!K3Ŕ=8Ss '4ŭI@ QD#ct*OL,gee8-܀)I>{MI@V܀簑EBܣ=QALyp-vGrұk4q(Mx3,DHIN]Ħ\r4nAW`+VM_ ]Gn-Vt⸒%q)7SF,sH #IQ0ZcDBBPt:csuw2hg`=PjJw)'ڿ>zlL\4f&W€kN^uq`O.w|% Oc'- pXFj5ǽjq,WJ1P\*[;/s<l4V%ڋMVi{=.@O[>,䖐IbuбU 5k+u̅>{W.-+[\Kb^ɝjT5Zq5bP%RY{nja!^.9\mN#Kz]X@u7/|ߣXuDaqSG=9tH2:v@v3Gq H_Y Uւ]$QXpyOa1DMsqCO")Tr*lİn3WG+H U]ԡ*7%N*^xN kD.gk.XQ7%vlHG6MQ1Y[>'T+/9Y¬W)RAXڄWKyjc,WW`r4EHİu@TW ZJiT?M6ѥ֋o"E1x}L&B+ȍQud }ƧDaYh-Na$0aZIfYY䍔1 =ܨ$֛ gԹE|W3aմnʆ@79]S0x8F<;W^#7AE=C$o3LpaMu" k6N8:%u*HC}EX6Sԫ3+FB䐴3"$9]afN$)rZ^&UV]el-!JJn^q 4erԉz*`J%_8su,Vt1 jݖhi JiVڿ;rn#RRrTBG>di{pG3wnSy\Ƴ3]dcV'6f3Ѓkv{i)6JڸeYX8"NP$_].Yl^HiirGo|Y[c3\:tOE(Wa@7|4[I<{ZL$34S2ķAP;M~n([}xGG,*>L{3BdRE$n_ѷJvS&2$ᛤc겙0{vŮ fBFǶ7]Pt[[A=nI죊\$7#j̎ڻК"ój}2E7_ir1ǚTe7 Y ;KPbV3F# if{qqg(ᄫ cT+*g1 Z DZ!){X-ndF^V7x,;Wḥue,N'j6~闷^4#d ԝR=kWRbpUEjwPuA A2Ã== Bz|FA|VГXF(^sygWxܶ XHD"+ Zè#g «~f<دc&ڿOi[C m#\5D/?s6TI@$`^AGF!;׭vQ1O6o1{쭪]%tjơ~Q΀8"AA j5oUMQenSpIqd5};6>U3.|W=,ؿvH˕)n, MLup.Cn-C>GW5Ձl rDYP WZR+G4!+=WmT°BK#@M42X):oDfGi7o/N-'X-n&5:w#зl"$F;Qg')X*0x;DOh5́bC-r"_VVe⭤K\1 nUQ$p9{U' 8.LLzwVKI;wXD쥖(RvRQ߀$tv!dmUr0Y^ܪ$E< @̀(ފ ۈ"{%wufA;vJA&sxDIQ´IdݎV QFzarl6d:PtcmmhJ2ħI&ؤb#rn8/FIYWjrCfs<PkJK>"#)ۗƞoGt$e>{I:?$`-o&qF!W`hG@4x@5-lB U:{T _[XM7@$j 7$F@D$z%u N2\Ζ ĽdV:jV"sT]VV1x³갣wH/CPOăigȮǩZx{zUW;TݫN}:BKlAT}9P A .8(WF3wMZbnÎ!K83P5 +$w-d,kAgB!xK,-#C|rӯ-lA|y&;q-,?y-$`\C10_g kC|NQ0mBŠEd!G>l:t:7̧×dSw3%% }J[G_a4 Q^߶lZ~+҉ӭ l'CPƶo9m^B%w]2 EM'EyˑCF][RqYb&xwU$H't!]ZH9qCzJ+[%nU=K2 [vUp k~;zg8ݘ ǯ.gV)t'Q0 ЎJ2 x竩k$`r˦MdqȦ:H#Heu؂ Ai(S%o,RG$1]KuܻG'uSVޒEwHtiوe+14RNW$q*:$%[A]Ȟ!ryΨjUhTZ(3*M/[.>#{woսP Ug @=k]ZEK^FV*E4֐sEhkTTJA๬&Ƞc+$YgC?~]scRH/ $Zڻ)ơݶ"Cf!#[0v8K?'Eܪ[c'l9F]?R7l)]n @j{O3Ms\:pZ}o ׌<'wu=G1{ ڝM:]z%holD*xO䗷]Iԟ•tգ'UZ;[I{'gFZҝ5otJ+h!sWFE"ƛGX 34 XN(+Fo FQ!%/K{[b( {ku3"!Q˲KHy UL^7^!ҹ5yA WZ+9x;+%j?)zedtU[ʱ\}ww3KK`ƅ=*]v JpEn|1U,cegU=ioiԗz}֮niw݉Na%A@QAkb/o 4t,НF̖8dSY e3DK^%eND:IZWnD:ӱqas$Mueɤ@T|ݿ!T؊M}daEwT Dt\QUݶ*!3b_V7v|mCC܊"<}^ō9jOsqvV c$Żb#nYO(YޔnFBm4u.O^]!.pa. 1uiIpJP_?⣰a|7x%)UmSWGPuɳ' Q5q ~Qy 9;.{tfyo[c->O-Y9[{%I.'n!YE7ؤI;[BNG|[17ET,ޣ٫d2Ne -幝lޙ;_KHV>nU}2drӊtswVXȯőDI g킓qRYPTT3,JLdr>#oSydHK$`wUr$YuN.#F1qVkY-nVL +4N$r e? +ԝG,RIa~7uG^ UI!fnEByDEYY[PHzybBIBۻ5@!hMZ@?m0T (+dimDQ3;4EɰN5ՀLMDbK$[\U5rуN4 'kpɶwf1 /oY-/|.RUg1e\{BuO7g.S2k8S$Cr"H{n*^Ewuq:KK5L ǯ#p^[+VXlg_qZ`T %پRtGLbpRlO І5ݩ'p1q BŽ$ ]4½>+e ֆ) ̤39܀ŕjjEM eɬ@ 5;^̼ih0 2)H"ÇL֘H-a e,lc!`f@ޚC;~};\6~,m@f"!Xf+02OPEGQ8w=ɔ@J}^9>'!,iQ=?.Q z}Z0</Ս0veNOzCP܁^d~[2MH5%2*Ў.nM~CdJ0y)*#]yFig"2n?)Z+{8uF|)D覒ѐImMVj2;L2} kk"4ֵʥsPǡkەh(yKi3_G~ H64R>ڵ>:_Lx/KfΉZ\Oi]ilը(}bQGcÄ 5B$7̳5u¿ $QG+,IC˭L/8{Kk(df,f ͫȁ5ݻ(˙gq(kEgpZ[%}))-%<*##WsT擸%pK2#Ѥ) Q]Ҭb6P@J7aClO^OtŮDA^2El2ƼNOW"T)|H/V^!c9\WJ %qDX|LQ{I!oXvE(&2nvTTN(6*]gB4+#+,˭540 At]^w up䣎 ay/Bv9]H#9:_b7Ԍ1V)* ӵ=3T׷I>АUŽ!B,ݡx ?lFė Q!+{ؿ[q A/xΑ/ȇZ84WMW/5sm:ȯ.rK1ý2d# aEwl)Er$Qo"y.ȢOyl.֫i2#4A_*tl"^B W /_9kqpnѢMr!I(EՖ8goխ(`ׂ[ =ϻwQsn'p#EM+AZn{HuQ'WKm:LaGOV-;b6ByPhb.xͶNCs9dPʊ1 '~C+u3<'Kn63fP9+1bjoF H熬O6̖B-d@Ēʵ5W^B浼Ͻ\ݸ;«5F0SKe]qH{4P(-ݹO=2RkHZ 69G$4XBʆ1P4 *U菘u{- qc.u"-74;HMKpA,ߐ2>E#yD UP=浥?^X=]+ْ~=˞9zl"*35vՐpf+MCN0ۋ=$ (WFΠwS0C&ݞ[h­. qjӍw/"d[5Y0Ζ dU2V:eGQI!~iQ̀FdUUs[zu_V6 ]4>Edrd13[w2rXBJ_C'Ix/C ˍX&}>&o5~[yK$~G}86"h/9CMc,dQ,,V)K>S2?EI>ac(rY;V-P k \Q|@2-+etZ(TfYޢՀR5ӭ )Q4?֘Rh:I4QD$IYW) I:ADғ\ ԯj&Qs<L,O#wc,jN(KX?N-H'[xy'BH tL  w'TU z{^,wFq&/Q17w1C"஬=a rceaiK}+1XmF|`o Wh*\/"]ՁU,J#*F(.i#h:4/j>2bjm8^X X%Km]@˸cgi*ķEx]7u i*۬CqI@>~(&!NիDԔ5pPU/E-;7wݚgDAh´nʊ ^*Ip.Jvsub5-.X.VcZ3tdpve$Jܱ6e¡WRӭ7F%ǦTEbO{ m(N$כT^"zҜNjaEmHҏ NQ/VO=5J2,RIr'P|4Q@j߸x?c'&V˸Vj=F-X]܁>!bKT7Ioei#GOa^i X[52:+~ь9N0[&kfXI>7(LG15̔z7%]/llO?S<+ 0T2ݜj1йwl1mRhJx+< jX*JF&J6E|dqEZeM"֑/]=zM p /=;3Ak4"+nx%й3xîR eֹ(F"S,X[WlncU0L?HD6HZSGL)>+#;T;8C&ȳV+VR32IJSƌ-w |ّ5[c&HdS[1$$OQt!y&dIhj0$7iMB u$LR vv`v!#j>F,beBz25  ;]0@vl) :l 9`󦢯n ! ?q:sѲt%@;Q{=\&I fۗ=@XM 8֨]KWF#RZ1})^#G-pT6wjNYe3?%sZ5']P'MJscchQj;o٦\r"d4^>[ʱ^w 2WB):OQ@W^w&3]-WȦ߿\iO}nYJ!Znܾ\M^t/,Ǭ~) ^I2؄PB5mdVzmƟ5UEGQeku*-jY]EkZYQ*`#JK//GݰǗ8r4(ÑN M ^?48l\PB ;~zbI'of/[ܭD1S?=DCv홖 ?xZƗ^B]w (X?Y7mp&gkU*u*cE,@~2[+fdphYۈ*zr&6Tw$60M|5յ صBY-nVyn? U99)+tu5}bQgyxP<!-8;}xȄeJ"O\fF k%g?~]#/sSߐᱸk+sl+k Db'a z׮^BՙN`a^87), y%)npԢ:N]K~A-e hbv1IBqZu;,0( pUw3xǑΖ Rs#ݍ7W}GMrM8aX>l]~YNC'eFX` 3?OD&%VA?h 2 y3q)S{rR%& i%G?a(TF?s9)RzsJ pom`&7bCUz}t$pY] uBkm:M(85 _MmI0KN oP)_T. /U VI櫋D؊4*i*,%-\ZdYHSZ\eر>lwPM@H-6ݴ?ǖ>+i[yJT6?) AZ! b=];I"@A_jij ZGr,I ƃ;he#m`SY"1rOR@]*qn=\4;acMރ Zx.j~=祛R*Qywp%C1M"EvmQ"X_#arll픋5kܺ&U i|ǣY2őcR7`6ԸĭdaҊP@SL4$nJuy|S 6[-(H5㢨9HBW$hmϸq&^6 6P?5ٵoDDBM>тhj(VEj+YQfj(U$Ta<Ιnb03B/V? ceh2zߊer(naQcː?`5X]Q4 FOԐ#|~"2"C³W%BDȂ9(޹ =oTwa9&\l}ƹ'tGE_pnQIǩ4:Ug֋N: (7xSF*GnlV72z4Qҥz믷emU5ڴr4gS[fM~:(씙(V!ݳS(E,#x Ɵ][!r6vp(q6ֶcp113ny5Ax &W&j)LN*AҺ0]S&;l淐3)RN⾄GEi"@TUMk3q<^7]n#]mI \$6$$54& ڻBGt'B֜?P+'G"R>;zH##vTH1aW`N4LM9^yتF,Q|ʥSTK' d:&bm@RKDŽ*q.)Sw=*} KtKL.fu7 $D]y%&)#TEX{|־l'4.@KrbqI>ActNPoO:h$ȲԫU¿TfÒ!m&wd##F3@TJk1KY|!'r#=iۉH䥋9$kz Ih FYq#ZzArtVQfE"39C^IeKG}T jFf8/EFQ&@ua"=? ɵ{;ķ$r'[G[d'A ^dh)U+X$s+Q]k%/94Zd~{]3pzdzrBx+$ڻ>qx>3PJ҇];Σ)fn[Ub] ynd9 Ic,BP{[^ˏ zz1j)n>$uB!LrOqpOuEyV'oB,愤Ԑ5Fi afPw R9nb*?ulԹVx8|w̲?3 1b<¬zQiΉ1G3+ɱSy~G |h S]i\@j32ټ讵zH[8מNFrdFɜ񕤤-)R{zXQEo3(`% U`OZ;QCh(s6s /$fHNe=IC42<n-ޣqe-1#MQA-r l'np.L Aݨht\ThPXIQ?Ӻr&4ZGib9j*jVAnB#]s-쬽vE;umjwhIigpi\if+ ]rv+elI=t$Zk5Yn,Qf5*YQkQEj(QE,5jj*YQfE5Q[ IYo HB?4t }ig_{"8PƢA"MRi ]*[QjLºFq=u8 sVJJojz wjtk >BH_ב7뫵+*[W9Y/ V#4mrV+tB"W4Rֺ+![%(r+kF[J^6pY(+s$pXX,;[9UyPR#qdWҪa oRx {W=,Lh,wKh2wSMZLV݆Df Ϥ4%M";jH./ /q?rI&Ņ z;wKiۗIUPdtd.Q@=}QXtEES\;zhIQE)Zob\?~Zė") eFV=B S5\0YRA}l'Z$%9GQ%?Sp}& $?ѢQ5=!gi8+I?vbNl( "c3+tjsjQO`=vn˚pC\;˽sbV]Ja!s&Z_E'C(QZܚǻꊆ qVKcc{I) "\?e=2Ӕv>A&SIi:̋rr]IOh7VD&B[m<* 4zft(KHU{{I`1ER%;j$?Ek,crMn-Gq~᪔>(E^K, Cɿ5?vħMݹ.AӧMh-7͍MI=uI֨I>Ҹ,t"UWBkQE,Qf5YME,Qf5YQfE,QfZ-(QEj,Qf5[Qw3Ef (Er}3wc1|dZ?.뛭#T)A 4ЄM1RjYQhT[(Fɇ ~\SAm&Ef$NkұZ-EV^G/5/Ztos?R㮮.~˜Y߽oQʚ?FN2XH8ĩ%Ev^{7(S[NiW3qUüP - 7Ct_0Vv.jN;{mARakC~v17WwqDu-u~jI#!WK[\w)UaܳHU!˪8'L&\}mz6TdQmݓa7^>n=Di]mA_yK$MEhVܫRͶ e݇}EǴ|U*A5˕dݿ$FeN$]ZI& S^if{WZ@E,URzmh5?'=WHDH4뾶 ;'aX.Ay'o/j+ ANNoij &>RSQ x~#/dʲz#P&>'wj 1-<D (q60NPm Nt!Gq)M嶷W/jD2QCAt$4$H&KO.G*:+M,<[%ƥ(NfY#IjǥiLYk1SdJhA$ N_6%Tmd%=^*W`OR?4F}m0S, (CT%*wSIKv)4§&UM䜓I}@uRtkZj(QEEk5YEj(f5YVQREj(QEj(QE,QfKz,Qe5X5aE:#t0SO: C_:][BorƧ?=f)eڊFe;X٦D'/5yEo3*7(^\}j3 2&R-pX?n*eQW䢁?Ns",esc)l eo݇+CZMJO eiغ g07.,sqH QKU4ZAJ+l2h@ X4^,-6gz %Eλ=QY#!NqH(=ﭢQ8Y`Q9.^? V >ҲN\dg.{8Ujw q *՜X{{XVTJ:^ j㴢cďoj&OcU޺lԞCp+p1^ =*8 #PMW}ӨdPMkD>΃|XZHeգ(:Ip]9~%Ѥ#Sūִuœ#p~5jSD`i,% ^amJRVL;rf2D5*2Jא;oQPC=QU(*Vf;V@U7$Tf,֣zuևBQ:esn~@Sae *+jZLݔ*Ll3тݤi (:E;my1M.Yj P 8х8OjU56K1ZSëH嚺M9F. mMK*֎Z֢Ej+ZTQZE,VQREk5j,TZ5Y֩Ej(QE,Qf5j-YQ`EvUH~k{ _]kKN _ L1TS魑@RN 1RjYQaQpNJNk<33-o0P5K-TZ,nXKҵ2 "U?~z ϸ~a6ypV*~b)wGf䑝Y,O;ue%ժVKkdhi4}$,fxDRKR%.3`@M ~fN_wօ"tgH_mڔ ='Bp+bO2smٻHIZE]r?ˮE8> oB?wҟTY(~HC)YMHx )=šh8^Պ7AGY81f9Z #w) A'mIpO>޿63.c/ѬfAbBvS8IhwM:}}jɵY(͊ߎ) KkA˥ Fn^v/jcK亶Lqno52%@f@ؚܝIi Y49/I:k&aE'aը֫r~9u䏸2yy]h\aYJ8,|} zmGڹׄՏLw;gQJSNV)BT4FNdZ3z"}}u*N h)fR;fO˩TDGQF?I(8-h)־E=.̴ܽp☻]V~U$PQ$356FiRtq dJYI: )7_XK;5-O_~2"-yEAIs9x>Ƽr8g`x27VH6ɉ]!ᬐyȞ@s-eQGI7*ZԹGmRG Qp V(TEk=5,Vޢ5,Qf5YQoQEmYEj(QfE,Qf5YEkzKZ-E)opsfG[8"k.ZlGu[FZ?uH`֛@e4ք()EJ?f#[M!A9K +|_#$v j.=zJ>tĥ/jquery-goodies-8/slides/examples/Linking/img/slide-5.jpg000066400000000000000000000664711207406311000234150ustar00rootroot00000000000000JFIFddDucky<Adobed       : !1AQaq"2RB#3SbrC$4Uң%cT!1AQa"q2Bb ?-բ\zH>QaaioaikK%Z[ @L--%,ގ ;[$K ,,OE @O,;z|0Goz; 8Y> v@@wGo;Qގv@>@;}>7z;`~AD;o Thv@@G2z8>;BlGoGo;$GovHH8 #[`FB~@z;#!~@z;z K#&iod*l&ioJhQ֖O!Q#VCS $RNHX !`@  ,H8$( 9(, e44A%(@uyH恗P e4@ːNA(p $@E+t:4i@uOjQ@u4@rr@U!T)%! ⌅NI4FJ ( T{Jy R4Һ@@ LJB@ME;PT(V.@hPPn@M hPB!&kQL&@r(PED (@v(P# q@AH9 *g:)j`Q`1L%zIMS M.@X Gb@T94@F U9@rN@r D+B&H@EOj䂨4 8 !MTJ4A*T_ZO`͘>41Nx A$$BH !) 9` bP2P(@pn( @r%8& PP 9@J  ܀! PL{BByPT)!\P S؀ *IW +*`͡;Yk0z '+K @MP2@M8~(;4@rPPS@p@M8 94@r#H$7U'U@rr @r*: P5H :@T撜A@T (HBPvE&O`͛Ɖ*SNP\T4Ʌ5K#+y'TO$'2S\$`-@Aqf 8Te:W)9N SFK Tk؀Jj^WތP䌌j@˪P2 e݈MJ a@ÂAL&jH#PL;P怚EPT !FPNړWPKYA=ApHѬ#\i H. +*u$h%1u.FB?o۳ECr`緋zZi^q,Čvc*ӊZY Z]@+ܮH9şY.k#[VǀvQ~!y̷ɢSiUߩᯧo$Ù{_9i|/:"doqs[}cډ|-|CP72A?ij˘4}jhָ5N}/ӐlR]2}D1WRڗ=U?vs4:E;xx]51SM!͚K *Ěpw'E풳̇khK,ΚWHDs#{b}1DmkL ߻)! ǵü '>ZM%mIWiP+(|C JXO;JT5:t#:#)x O6K7[:bCGv'>)| su4_UyQ&}tZG6Gh~H8%; }ڡG%q u JeWTUXadN>gA_aɨղZbp"_EMSA PS$<6 dkGFChj|"#btnG Ce+U|e b!ݡr.1AҴEpƪ]d\GLqžQf%y`uya{[W}-5OS(Ͻ>ZCRN 9Q_>#Ak Ċ3s_nmCFw YtMMe3i({ FbavL9UO!J!Y~t@5ẋ5Ůp?}q\^ @XSLWQ#~mJjiՕFi^*~lq2Iu@\NPu rO*69ՑW>L3'O/5}5}_@R}Ho6Xt.;"E8ro޾v DCiSZ&C>&#kۨ c ^HMGpN}j%0ۂ!q4kq1Dr' jk+]Ѷ=ǀĀfH!|n, G(}IvdaNЎ<](7evg?}ao i59c̐ET-ht@IlXGxh}2!J DޮĆ77 CyO.QHC#M'?2>}騚:) U 䣔Ax'J73\%>P0T5 =`ј5㕮piFD}yвv ZAi-8$,{ѩ@s_OV/B4KtКrONjtcywjS_kcf8Vq<9O0p#jMHrGg#J(*r_lM{7'KH1al`!4LG;ӢI >aᚒAgvN_7Fc{WKC{ص,PQͷ8VYTy*+LMCb|vu2\]Db|R#sA<}TȲq4 gi6. IG-Jnm[ hkV x%t]}mMHg9q>,Z^ZzޜmYvo%6yk,qmDpmqggjSމum kRH,:N"ݛ.7{2ћd!6@Б#]+kBnV=KqO5?Tبj5$U{lDf F\/.@6ۇis5 N9NE?uC]I%ӛg@OXj\ k kun/m.YEaiqa].hH AKnȩӯ|[Eu3XW4\USٙgZϺG1lHA:ƹ£>y#Z\GΌD-9AHc;4o:i "Uic{ΪcvJ'ekHX[io}0cZ٣bw:v} aԬo0^8KS{5c[x&ۯnas7LuFjJXm m-l}-].d8&wH#WfսmoItڵґD좍Tٯ󭣬v|ec xN=k͞vnw.6ݺFֿ̓Φ<)w|٭mnd:8s&q1NKUfՙضm {Xzwii"[fqMlU)ΪrE+'l7SH @9\: Z<%wگE v7HI"su`pͮcآwE̦teuïfYYɀTy`N3mɓk0iG3Otg6ח v|v,;_/t_,1i8 ;xTϳonm}$6(#\'2HJN|[ܾnIQ\m7R+0= Pj%u:vS|[]~{3 At+DZN˽~i:.-ˌѶH#.>! ZZj.˂^ݚ_ME[9|6&8<7\-+-lִ;?Yݍ"H&0aynq {lat۷ ]w[dk_]<&aH˻Vݝڵ^qk7^>HUJN hⲝ:#gI^K\n1E{ziu(xeE^۱{ [ds\uw*XI.AhʮwZٰd {Kkka|r9QŢP@GGAAU繛Ͷ]R1p|qIsZ*hQ^Jg܃"lCouwwo$壜~MMnQ1el Hnaƿ0\׿Yw{/mĎhGQ~Ò77WQZ{yz>kgw,JZ=90陫N5,W;K6j[||^Tw2Ym%bɞ|qDU>Wդ-ES-l{SXYrpaa]ʯapw]ye=yN#mZP7V[m/?f6zz8ol[疶g=ګsW7oR\ѶpZ䶒FGxsF:8i W;hܙ:2ZHhu#~a^|N1N~`vɸ$ )'k۬PSRiflSLGM8&'])ٵaOΧv&aG. 5q=7]*o,%SQCU=^ Mqq ꓊žNu'HOim󓵁xrcޭ/Q>B&h Z8VNtae-7кn[ )CamGxYfG"[hXDmk%FqxjrQfau7-3,CTk5c5\2k6FﹸdfsJk̃.a7^Vs-\FSR)љ~Z`|B:[ﮙsoE\i -&:Ukb/,xǯgNu ԯW$zW8q-O[\M߾ _6f F*hd+ÊUl;-ݽ܏۷nq ?Uufٮ>Z _|7KyAwtMkc s3o;ݞ[XIm GQuDۆ>3noW 6o< j+9=Es8?Q?Skj斆2٨rkkrcE<(T`Gk\{:} h% ͬZ@GĦ--8[=Mhrc"Jqdn?EWTʍdkyo.?Hm[$w6pN1[ ac-FE:[@][68shy{.wgIf^`o5Yku4ҽ1|pFSrmҘK4?KpσDօNginæĖc"@eѱh5di`loҍ{l񽢮uXنיgٟ.kqg$6-Argfl7yc-fM*=?=CI, mھm>kڦcZ|ZtKn%IZu?d^iW+k‹ #_kb+Z.oH;<Cܱ7^CGpYm^F尴2&Fe9Uwg_߶=3spo6'CW^Uoٔh^ huc4nӧ2'SYx!5Jr{VF;ݴ5nk;R+5cv);1cpi$5dz~zb'N'[oS+n+}UǾ3ywnu-P`c$ PjqZut_/ٷߝo$ԆHvܴY-ɬe՜{skoJ޾ ds|N%բUw߽"clup4:p[^Vkq:7C(5i-yW~+nZ5oC:$Ø%o^ף.Y %= KJóI~W@:&=]A}-܎y{+ h*?:gfۮ,d6Hp#뵯Wn;6/e@Gtu돖ӝ[zCYtxAUfkMk{a٦ᒰa \v::a1[M3=,W.ݭqGtHVjxNoMt66&8i4 e-9O帙-0G zƺ;#ȋXa IcyfY2NjӤ8TUg];fעђm1I2=ti>X-X{eۢ.C^kG+K#|\}N.85(fLݪH֓r>W4Wnߚ,BBo@pe7۷pd$R79rڤ8^fY`n>gTϋ$u184򴓗]￲m \ٯˋP9vkO?Ylܫ]FR@`)V}W>mRj,%L_:Weaܦ{ہ yhjuO7=t476;ux,=vͣt&M ً]NReOۊiAK[<[lsHE$IꩻmCY]ͫ,n:+:;gsZQ>xc<4`10Yvk _ lX\@`dqH4Xmz̴?nZ?zuWZ[oJtM dk~[kӬN2h_a}9XW?l 0^I\+Y ,m[<]h6DKXFyksmik@.QFěvr'$ am}rvHC~W@wd{Z]Heǵ18Wڔ߭-|+~U_[m!6̺dQ.sP;ת=Gs`6.i릱+Ƶksߣ\ރꋘ7;0c ~sF\ތVi J/l[l2C$ƪ=ykgO#k44rik;w2#2^sO:'>W[NpZѯcKY+Sّˊΰ˵r8ڝ늛~[l$0ҕ$(14:zܮ .li|j WӚ]7Y, h۩R%-:a.W0$ɮBO;W,cn=SΊѢSHÍhJ|(-ff -ִWσ헗qF!J.Dd}s ekdd~işjsU̸uŦ'iG7q\G *5kՎ{m1(׶MY3X!<0 #i%E$wO1Z,|6ln< *ܲtyzS\,6[45J*c]g;s@e=u~T䗹=3˱5扁790LGv=xQIQtN8w+ssfipФL,*G*M;QOz6ON1Y⺮w 9<x\}8AsN##E׫mn %>J\&UVmhi_Wiy%J5x5.$>cqg-eG pNE{jndb͠$鴂]ZNG$D:F?:$`kM,ܶP!:Fn[i̖QOmze~oQ(oVmoS]kQʎ0D@5-Nc1DBźٯ ߖ"# 8Zm0q [vԃkcLYo5F\nɨ#{6yEN`J'͝>g}t|%A+%벴6?^[ä1?uNߖ{l䘾ݥ;Ԃ[ߙq-ᾗ? n4װե5wn (+n{"k.| [\v!oKq@&W{OGJ"<uĵ36KwbZ;EX].[DEey ?K\5c[^n-xk˱Ӵvwi]۫l]6B}JË`[qe؂OFsSuM;eKpbYH pZM<{S^;RjҷCP W.QIJX&+K}F/+8+aaۛO"침Va4:8VL5>tF削8N\Vxx~j|]Â=\i^ˇn.H+N,\;4a{5tt\Z=G\.Y|lSZA#ӯ_%&wܵՁ *K]s>bv=%- c<˫GHۯ-us#$ ,L;۴n[uy\^n2P'4wZeț1Ug}-m79‚,RwG*/[M{pٳ+RjY޺^; G7ӕp%iKJΔ Uծ;fX59++-7[ <: Jxa{QkI«Y\v oIzէmJ0x,T-6&H27<K{ʷ֑Q`B'o$G "f B!u*NJ|pRإ\YWI McIc.8J54GYm+G8䮭56_gJk -Zhdj8m W) ?;O>Nr+wIm;ҺX]=1F\s+Z 1(j»-nKIm@;\6%+טOD5E:}|4 &P {'RJ$-}d,.c uhyg[ Im [/lt dhd4s$˶XQ2e܃ cKsYU8dSRf)QBz.?_bPaӑO5Yۦa跉YոbGWfy(fs1U|km ZKmmmU*[grW^K)#sFO}emA`ҥkŔ{NQ> RB߲K|xeV`k3tFLY& ׊ג0ญy՞k֋& Q0| P7 B+ޜզTo ,%$+bye=&nOd-܉2qrjj}bbԴtN@zR=)4[Ӭ/9a4[ ow%s\19ۚw c^(wecrZu?- v"[K^mgw6#n&%]pVXq<٧lW Ѥr+=k5uXNĵ28\saI.*Xw\*ZkD+ٓEn[_(W.Z̮ae*, U1<cT2ַFr*٬ 4k)ݣ96kluW019,pߦm/ܬYqg c.+^O/W̸>&sydu!ReLk֝;2;w_, /wǩ&p-8|I j*em_Nq.d)ZcNid2l]]78` lohxfm$xѯ)px0p*n+" 8x6/,R?j֩ NM1`UeNV[۪'Aek0٥r26i[K]x~vkOZu|+8Ânj4m%xK f.hxJ+V,־[FFdIb9IԎyd~gϫ$ST@Vfrv㒤y\Kx>E]gfksh1#DqAO} }56XG[]%&K4浒0r*Q9) p4v^-v;w4`2c:Bc@Swi:al6Jlfa:ߦڻ #'*v+G~GU$جM$rZ? N3T"m:0 w%v94aAPnvhQ?sg|_'6vxJz`s^l|GuU|o|3EɭFuWe־-&'5aѶұI-(d#ISHb-4Eγ-o *N͒B6ќ:Ql$Neן?5>aKz  8Tx"y5t0㚊vREv)l!Bk6Ё@;"5X@͐S#UO Guik9*c?1,Sp ]92۩y%ن,XD]>ҮW?|Q42+xf?6wg &{{!77 aD{ۀ-*,ӧvZQM|8(yКSiYc02cp抎-6S]}myM&*,i61 3K8ތ(<`eG\4qO.d'`dp<(QƈKW%]fMi 3P=د}P1܁G1I<6-ŜZsN|#[kۭg8ڵH^#\(<-䏛mm.tp~ꮞ0P7Fhu{vqn8P`ln/(1rM\9ĕNRqYLմe {yK6˭LB̸ֽʹ.9'm^stuj[볗V;0 5'?Oq%9i"ٜz9.uj`YUҺf.BCh՚sw-%ecs`7F,;mm!M>:PBb`p)]xSVFsZ܎78 h8k!K\kA^*06D]h8,ΉGhيZM ];9b\1濖3Mx-p,@8`ϸsK wM1U"-WSk$`m4GMLӆtYa=C)Jd9Sc>@9qU،VUiFtb\jvnqNYEv%ɦ&a\jmoUle(QA3SJBϩB0hivy"mnTᬭ((*l-f-^ZASBsL]O πx*H*q̿o֎#nN8Kn Qሥ|j9'ϏbCM ]^/VG ]9r:5hzjr.ꌆ E ƔUdxei$+6퍐Es1,iҴ +¯0'sǿXmx\M)I$aTx-vSvѶlcS<'FZb֒qr]peMդ;bCn ԃ|>%/s xv7<>b ͤbT>a˻FU4+7hJ]m/8U{kj=DVץcc]{ Ii'Did%4ez+wFxeHK?7 gZ ˎWki Qn=6T]:ٱJy4Gy U(s.hLvؓܛ/agnV{J9# ױcu!vjĬkI.(WdXn -,"S΅88b;=ĺY[.h#x#&J'95֋m8ISZހ`fK&ؐS>CIP${6 )WFv|oe`Tː\S#CE1h5S,]Q]#'4Z)ʸF Ⴟ$2s]ܭZ+BjE&I/8ԭ'>ᦤR33f^j`M݉'2^цBܣZꍻRlϒh-X;>WC#ޙ\y}םavuU9ذޡ4Xv6mbXz{ ~og4zcS3]L;ʖL)qSlGƼT[ ܌oq*.x`*3֋ kYRA%Z͸s+6]. FWJ= v#MMALX] 08Q Dp%Y,\sFOnXK*!069%`g Cj;aU I\bQ2 FJ$d(Ewi;Hk3<c98r.F[Lϕ#*R"5AXWqGL/|w{@ঞ;ڂtBSD2$sC2WTqy7o1h⒠a޳%4Ҡ+!4 UJ[jbE,Hh* gրWJ8*Q0b cDde%SarѫOaY҈ݥ U \q`j Mu+BR_N%6%paZs|Svf_RsVWfthjjT'" 5Nʐ]YԭGNޞ)8*nN}GS[Uy5{SZ|pXm{o؎+> ߬pk[.[a4dMT^NQS9m4T8P/+)ocAYDC&̸ \T#U^]Ӱ!WQ,٣i%;v8#&0EUe>66^(}HTiĪgupƾ扛EsؠONño-"MѤv̧7;f!pMR ^05Hjf`6M#;\u>Cn^a.K࿡. @%qpTȢw\uD׵_&WEm5$rL1E6 (pЕCؒǚіޑ^$-n 9IN[+\sUN1.VK GD>IMa.QeNر4J(&qg/ؤZޡ-2k[|{iyiBH!Ms;Ĩ+ӵݤ}1J^Ů#$,o ۍ*TXlv+PƓcL,8&<.և # %*G4Ib49+N IO)C0(T0J J᩽+9&sF$zTqxQr\^=S`>ƘiィArE-oqh,g@i# ҝ{OVi4M#&\3>sVWs=樻%3*VR"LJ#Hk@#>q4 &@1 5EQ!x&⢴lHMuoZDñc[4*lm!9Xn'5ڥcs}P;dob4/s1{*qTYŅ,F&NР$`ؚJ2- XE-$ir'~MH?bǃ\*ct]jզz89Tj9mI@y>#A4gY׼i5SG?7c86.vuՐm>g @i8r&~; d]AmMqv}z7?3vǦ 2SGlR2+қ'2Oi6pͻRK馅=v=,8ܕe5v/믗λeˮv XƊq$a%n\ߚP2+fla^ht]3cr+AQ_%y-+ ^NH֕dܺ+yN^KYSo\rSk]|u<0b9[bF%[ǴŬ^t<Ϋ/Z_7ar7ͥk$0ܹrsnPhnx5sϟuw:VVv37r?5)MsQ U|KYă#s!N"oGQ槊O^Ks.R^ EaQp\kςq.$ׅU%rNUK#5##l |ysԷm'ӝvjnm6u-̅1I҂ZM z}9%\Vk0H$d`qH`fDͺX<۰+, J >FcUISh.TS=0<\g9W$YQ3O&*YU3ڳ!6ZJIƞXeﻓG,BoF@Py,wѿWf>^n[W5 r> ո^ Qze*c+ ZrSv&VrjJC!$ !:耉y.FJ bO{pa9}w{#;rMjB8#rq,/q)9ރqKsÒ r˂i@؄%6V:Ԃeq˒wQ<{\Zn6ikQEc^ $ׂ׆;vu},~ Y]=GjW@vE 0#Xw"֒,uœR1U2miLUJYZ8y,Fd (ZkN)4,sU)Pz20FpƉXx>5; y6GUE%|k:2b6M)+ΡvaTݢIzV\ j#mz޷ig>ځ)Eܴu u՝@ [&t^'2כ\>g -\uHkҴXہQtPM5G"aݙvrҖS ݙsO%#omqʽbniӁJSNrŀZXM"ןiV-RʸekB; 0iNS`vYʜ;-Y dCFBg*/L X>I 5#gb;r3,9$D)h,(ZPx©EeA ԌsU\ Ip'ɝSE G1WÚ|L?5M6UWٷj91½rW ʃYWi8ӚIf["0w@ eTeP cc-*ʡ9,X#*{VAg$h-. { `.YƁErjp/[IwrSz7.7YgOJ䮣=1GEY)Sv7'\4r4l槗>)q_S˼\ EP25pBrxNBt 1b)N#NpnmhK~A.#ط&'Yė\n'%q'3QzI4K ޖNð'TMvO`Q͍lT5X,tXT`@OH*Ko>Wfj'ykUycdvCn'!D r|GXc?j9͉<jxFF*Wih88Q*9 U2YH&Ygt/Wn|R*=~CNM%vLi~#)'spL -⁈(~UIS G% ׾Ǽ|P^lWxw0|_~#I?|PĒXYO,xb>( 'z(0B}DH DAW'ߊ<ۏ{~)n?}.$Oa-O gH'ߊ|o-O|ۏ{~(n}8so"W͹
'ߊf-O-?}Jn?}*e>P2͏O H2 K#$/|RKC/|UBTIq"5oWo%k;SiTUT-%69ʟyL7yK|c%}Bs>G2Wϼ|PkI>qރLǼ'';?{8?x+#Ox* Eǂ.$ TDsD*GL?jquery-goodies-8/slides/examples/Linking/img/slide-6.jpg000066400000000000000000000607631207406311000234140ustar00rootroot00000000000000JFIFddDucky<Adobed       : !1AQaq"2BR#br3CS$sDd!1AQaq"2BR3#$b4 ?QTFZB:5pmj W fƪVm_<&Z!EjAz>(;YsS4(,ѰBFia.mn b;m?\ݷlFG@+j86co ,:@,Tt8W>գԝ,eTՍJZ(毲ye ꩲ4 :eܡFIgCY#::;#-,IaYm6q A t>(&Z*z@9M*j7ݒqdõM{ڟ\V^Ze-g}`ZOo]8wO۷?om=Low5J|=9zر H.yGKĂ?m`'N{@H545* 'GbY (à2aKaT~O@n(:[-Gl8ya~=#،~! -C ,Ha_@ Xv&-MaDž-5AA=5# ib)ZPki ے[fnA\NZE.hܕ]z]\Yn$\ wl@_͕ZH)5j[8-d%Vi!-Z V?ViƉ~wk7H2EkV۔XlmZbdK5 ˓\ǩ[z}ƽOss:wZXp.^@p_mk/,VMXI+va!k?mze//P}ǪZHf:O%E9gO]<~Ŭb~-$ܳ(+N?CŮ.fK.#ٶMf3 د}-tH}t^LKӏbG}0ܮ< =D} ]W'Or׋M}#M|i7u;8}{*yΩfk/IINkSw}k$<sJu5v7-S+֣j'9xQ}#>i#uz-^ǵrnֺmJNJѺpW>rS~OEX_/z>ov#T>U|ZK?ۍ˻Lbt XzkۍYm/N}v >L`|#^K0zKvzEGmjKTTk 3.>1[2sL"Cs5  &ǎ( rhKq)7 wa2W2WxrUT/͊ jEs 5H7\&P|R5 !5CQYN@qyۿقjė+bS 9BD͈b|W6,nu&֦:b\|bH䴌vm.Ϗ*fI,ð+f7t2# => ,uC7߸frx5S-2A5zMz%N0bhiyDji`iMql?۩>;k+-[ȘQ4{񧻝nڽD2O4"{xEnI'"77wm腛? ]uk=߱:bY'Ywo}gvȽr?uo X˶֓Y<9S%>‗hKAM ϻ2&H1 Ja+F?A.ߒ? Fk@CLF@g>jLS$p@A@ kHH O0*$% !4>  -D5$Lp 8L`Id' ]y+z+Uj)GWj Dq:jS.. Eqp6Uf+8*6\򧈮g@Ja!9@+ [zT4 }S[=1!k 2z6nlw 񳧀r,zßn\uvlscC\W< |YYdt$פH:y|䟓o}k7Xw@7A;:9L@^gQzbj-ڻ`A gm$`,[  1N)5Ky"VznƗʱ\m鈙D9^V|w^{r\YiLz+" ?丧N9~ۧ[EJޛW/:Is]ܓW5ܕ9Jzs fe4۷c'饱GvoZkQ_?kuL |9J023с"uǽ)z?a#HăW؃H Τp9&#aƸA1 aV@&obF^?y=䀊 #AL3@Ga [/怆rƁ2cePDQ0 ELM%[ijn0ܪ&߫^_%q5C8p5݉'́8?pHI.BoŠX[ŀX賥>ЖO@  GB%$8ڦ:R> Htu^ex[+7dݳv%4Y_|}+t;>ݰ"=.۸ŕ˷7}it}-FF"lR#gĸkz37׭I~Ҟ%tmÁd믋Kfdǟ%iؘLh ?Kf<m:\.C(f-ۿ]җili3/JlTd3\yKO.+uy>E▚%`.Ywv1_;G?t;vn&:hBLeFկǧfu."ūݸ^\x5z{;ϴwD=W s\%…~PWKƪkv f2P)1a5AI[)⌧I'*U!EVTFDW50Wթ IIr ;TUbRbHƟMmѠ}6ڶOL"%,Sduĸw%-I[2Thvrr~΢:mfYgKvԂ:q+N;q+o:o@_;ᪿ0NXi}D `/,'ۖS ]W:H}L-Ҷֻ#'Cu3՛v{ y#5${If{MDeGe-dvaog"u=qbPGWzT˖ܶH[zvbEL#"Z:m3:9[Ũ;ЅX:zi`oXk%gO^%&g˷WSu;nnT}=7}\[vXkEC<'Ntw\}EǧmN18tg 1UtMEV~޿m6#j1+~W|ȱ=2µZvie\ZVޯTg'VD>жƔeؙLzsK)<^WRȍ 7%<,LR܉=b,E 4`dqQQ%E+SG@E02q#Ȅ""F'ؐn)z0Pyc}3=ܐހ י(?ּK z$~)J\h*Q ^rkv8 ? _Imowh8*πS}Î8=qKhՊՎ iLK("⿆K&,i5j& }F X<^I`1x1d"j, 7ԏ0y`, ]s`(ޡ,F/v?#J02!p7$yT`e>g,SҌ (ԍ`5G~Qh 8 /vjMRêpU?vu16ɾdU9=:oUw]nM3?jzmoۤzϴ?c=K{HlSjWDz.`A;t3x9.^h}/ce>2@> 5vpOgcxѕ{q%Eoq=CM1M®]vc?fl;B]l7O.>@& kTOjԻO&GV 3w*lu!gK~?,D/άi02?7KFpFF/\q%ɂ|,F5i`duÔy@qFD5 v%ȼ(h$]0q|pgFQ+N?zx,4d=u*58QaR{ȊjЈ8uj_.}-dJ{{U`WO#8!ϒ f@1po $@9* Sb&Q T HN '`q<d6$84,L&kCu}܍H N'}eԿ[ ^inY=,c)Ɉ^w|ڍ&W#˧1'>St:q.Еt AOzrCtb\ѨaJ"vG@ٽvE@z3%2?;Aؖ#=2 уȼFX/X#MNL j2x04`e#SQʁIe8#,78$`dBn:F`2gQJ ޙrk']N!iM>PĹ"3] Kֲ!RR1.U{qG$qI9aTJXDiwK^QPu4pU Uz2ƃ1~<O͹ڌ/I.@^H` IJBUU0K8fdl -6V&%A'i>Nۡ귛P׼TH/-t_g_ܽ.8^zui˟G-Dmȷ:s+ȗntCLNr[ 1mZ snV!02۴S W]rK10Mm7 j0zi-c\\C}lO(mfcQ~B1bu/ۧ[6ݚnCgvRWyu :}@F@2'e<7Kꍿg \uN`p] ,$0Ƶow.^%[KQxm_q5)]QxϷtdyлS숧(#{-,J0 ϥ 7@7A)45Z܎g9) ~GӋ) [܉ubf;aW'>y)<[ IEul\u7SՉE4U!w,Ru-J vjuji#RxJ;FR5%z~~<\S$FSBZY02/q¼SQ):&V%)9NvΩXr/R,Sjd"I`ެ\sB.%D_k[ե;LF%m-j/\8-cZqvVT&"%z XRrov(Vnj\jOs>IwQ`XaVfwaO2qlvD.l;N@Hʈa@8T#*ȹeP"ીl2z_ٽ&|^GNYy6:8|Fw힣cO;0Q8R5ų]OZۅnAG1OM3vğ>n%ȹ ڗ5@ud9K>z@8(.Rf:ϢW%OPt>LMA-FRtƿP?I>y24`wU1Me&Abe;t{a^^W]wvM:M#嗥W?ra+iæ6tF&?Zm֟DDkT3S> @2t 7?X:I.&t5wZO`'b'Ia7na^iaCIƱ ɳ;pS؞ŘnSM=\s+af;F7BX=lܻ[?~}j;}: D^GOX/rHfx%t/aM'ڍf4O9=1'jV<<~}v\qׁ/a6OFn-nH^Ŀ.D1^?&r%žlgSߴ[-.qOWO~k<_k/Β_6d 03@c֕@CHrA2 =A?I|  `Ʃ1H?$ hvỶŽdEz58Oj{V- SuOjŭVu3vܪU V YW0棰 q3ܦ b;}vc^~LQԚI.\;FD5OI].і `f%<єStq)v:j8#eb:ΓJj{NQg?:]) (<8tvl4vD!nY7ۭZ)2vKx xUJ$fA #[j eDR "001ਅ8 0 酽'դ+2p,YǮޱ[礻o7m?V`J!t87 +ϹIeSs4[^zUoK޻!NUqmƳ5;rM}\6u0Z+.9?nݶ|E. VŪzme.{~y377?򧻴"QPEA\8tM:o0yP=Bq3x~~9%j=s+;z _4-~-t ȇgUmuϚz_mZ2٭K6] upJxs~~#L{9ˡYav9}ޘ,`#o @9 2,RnK@/ؖ#znfHLT?`&:ѫ9Б槴 k81ɽ r 9pEu[k9Us^?&n#o𦳺zx%|K,ulռ\VDVC? je[|؂s1Qi& @`I;[cm Nޏo}KSY4zZ}<%va@uHzq2}-׬Io\&vyӿs^OߧNݱxo:Oޕ_vzfċ[|<UΘٮnM,s1F˪a ]n:xQ8\8yuۇqu4seO}I~2@u~J5MJ䓟O5l/s@]0ٹZKqyo~×"Eh bblr B¼I A(g \ ܑ@GI~F1rQ`[ pLj#1(£`_43bgux@ň, ]4qa~L*du>: t5&%cұ7UZlNSuMfޤSp an %#%^7( pb9ŤI9WL 7:b[}`$͞1@[ڣjbKb˚:.9:wʲ9P/:L+N5'/_jB"8r&ݾ7w5B_%Ir3sx7z%k['G5>8U9dKYz~o5X9\lJ0<%H+X*WiĄ4R< 8Tl9tb F20|HF c,SM"2D a  0@cvفӾjGڏ7=M?]Q~ںcB-ݽ\?$fy^y+ڳgIb̀#fոBFqm1#~ogdggҜ鶣RG?"91g{~OگQ4IojV/\11F~կ6k%\LgC~u~g51dB]_7L-W[k[ iS{[kDDub ˯y~XH5BgEX4d>c _ , h0*! E009d8LgH8܆l9,⬂kZvA'64gh$x 0 8\&TӕivQ$ Gr P04Rv DIFu>֦@M8VGQvqڦXn(Hz(''-Vȩrd "}L;NN'c^JUa:;oK%(Ў%ì}4؉_qx-$NUܓr'm/j'Z\TDIȕ7k篕d$ܱ iz\HMs0}qk:&|PzVġIJ:xx5DFkK俇:c\{5a}F-Kw~QO7NY#(åQusxy\^ɉ#=6Yԛ[1CMLv6nFW.ׁ)ܐjzgUm͵_>5LY[oվ ϱIvzsjĎsYakͷƿݶw\G^S CYUkO\[]|`  _m=o <5`fN!uHa@G]H>Ć$ t.w ˕zv$y, fc@qcFկ{ ˆ -@3ׁ $6$gB] Ic4 +ڀ2Ġ#*ʁdAӍMO,&kY!Z.Q~}n]Aʫ;pD|'*9%uuC@$y@-%*f2<1eۗdHbC. ҾMUw|ۅ[OPϒF[nS--j5:( Vv9j'5/UY.1!RPX>{A9*E[\4*L{1ReI#!ϽABK [nnZT&TBVAU9Be-%$IY~N%r~+U'Xsnjw =-N.@]1LžVr=/WvI֎֞3 [&p#*/<}v p_#]8G}&$|_X,գh \|P8HL摮ߵ<C)qpbsMeu|2!cCaT4/ cڑS" BPti܃& RgMY@DQkno|>7az%+ʣZR+\NeRH wrBXPl12 R>  9JTZrԞ':-J JFڹ LdumrLUAؚT@HL4 .8v`hb"ͨb)qsx^փX%qqYybqe^rY/]D.|6oBDZD#V[@ܴҷ#ĸl88Z)]=DDK [qkH?`BÀt*D`6QM$MPM;'|Ny HATA\#䴄l<5ϊT2䌌催]mU%PM&,DU;KK;j0M(3YwS?{wr(!ܓ@"hiLo-d&<`>%#Ljddewi-jC`J7siLX9~T[K/L2Y 2Py55 %FpAڎ?4R" h!t<lE0jeJi]ߩ.5ϴ6hCۙ?ȣ$+RW BTVo1i祼^pjf>ksh7m.vŎ4Ϛ3'A֋5g,;TGOEqJgF;ZYVrr i^ĪRKSTZgάw9ܔ@uRW F'Rɱ9Ԏ*S\ZB[#$!>"{,pQ8ۺ}nȍ3DGzZrMem'z\~LfQJ`Oƣv!ԋp@HI+=n>L̨E%EX9Dx6m57$ !bti$e,5ŐpW5)ɭXlcOrSM1)7ܱܳv&-e, Vtwê֞ѾtpbטÆdNrxX`*v%b.iə>!v.SM`VT z 7mkY Fr_e&5g'"G造@7lj DLHq@ehƣ#IQ9@-aB+|#2ݴJ;q`B([wArQbKA#NTQˡV FoWhx2 ,F=T)YJu[N(6*&-.]>#e;ޘz.pz\6"~/EL5aTfZ,8{Ի OP~+XfZ<&ƌr>($((4Y `;;G!$JTGՑƘb=cBq@?BhTޔH>+#00¾l[۝"ǃNP #5[> ]M ʼRObōA|*&1L"jD¡}.qw,jH{0$tMA-F/Q-PjK:c, ZLP2+ZTېEIDS0TװvrVLGA#0|&م|EMZ!PN.Kv(263H㓆Av=wAzJDFb9xn2N1-mI|sFȃBY20Bnr7.Vr=IjTӛx$JVQJu$*0HFDW cQU!^X#! %T芫#N\`#UF/H~!҂I 0n!FEDS pQhرj$HXw,8*Kis/ndPF Jf敢աKHL怟 cCN( 3P  $E& "6.|Q"㈪}/LpSHȐ1eT*ꮀ24:[B߈j髪qOi5\ȜpXm,sF᫐\&Rv.#J2.L%Ek!ܤ9;<VEI3iUߛw7<" 4U`"N?\ąPL TCĘLm^ܹ!hUIіݺbT^Gu.k}Rtfb1q+n~+vKM"]3o!:GL 6!;K}0&ƻSrm|@Jhl܉J6`|xgGGÖlUjtm!,$* ++rlQ Ĩ$3>8H hd1JT(ϛU]A2ݒh!GCov $kN2A`qi aNj&@= @@bl!laKƣ 4~a!os 65- $$GQ ΎG{ RqS, Dh@`>,Y4D|~Dq.pzТA#KkKFhzv6uwl&(o'=W=7ޓݍB"Fvt^oYoq{Go ]^ǻ..Mv*UyQS.X:FpIJǵJ0P8Cz4HWc5D8RX'22?P`*ȕPTld !'W+IďKW_p~WJK3M>VfLй˨U8^U KH FzV]hfUGH N>MhZx4SXo֪h{8C;&$z35[cE-H+jpe=hܨCָrF@PtId]AGJEЂ7`Od^T\LZ8hjHp1pIL z]>į$ɀ$L;Tof -QQ0EK*m5Ni=?7w.~mI]47tm{f'-ЏF1-\ h-bosw_rMb9I.+I˯n}Ǔjͯ߬pcIgtK}+>CNڽo͛L_W7'2.ؑ%^)rrED%B.=CW TL@SWB+@  CPT#@ Dl@0kT@madY>W'~^eY,6^^,cz:Ķ9̫i!N> `詤NdGLJm 8w >h,Q2wG7*[] țCc+=FV8TG@d#~җtZ뱓H@ _䧓1ZsW>Mg@?L1=nӐL2rn`AfE7ݩ&šu90(~b)RUE3p8U\ SbG+c,.Hė:j`% $ңBuakHfl(L Hpz g >(>ČȀuSǍR B^'~s2v:% PrXbx#oV,?U)Wnk=/fRNsaierOǦ=ٽE޴v=ţX}qp{Vi}^mEn:tny6ϵ˿+̽Efר.r/ BxN~`9jЉxTWn)"tIJ犃h!\C^HȐR62W)J ,L$O"V^ FHE~nشpj9xuE'yHcVT\@}#α(&M&u`^{KƗULK;75;Lm\8ܯ~XsōY;whsyZl֢F!N8b^ ɴ س'y02Y@ 'Չ@@T>:O!4r䋴w9K Z1zb?%8Gbw{0;A;DX%zdJ,7l=>W=mnbUJb"ܲ+N Eq5ZWg9BpX%צ v$1M[ɓqWDEitᖯIt=1$'^NiɷOgC~u]J֔ՏO^-MhJQǚj[q`%hSsA|hʘ/c6mGdϦq2ljG{ .X.KT1 #³}{(1XkMm10P xǼop[ƪw\iY{?,"'[FZ{/W/Wo3:9Eۑ UʫpSJ_ڕQ!T0jRWHT#c%r*)"kH0L6JDЎ*2)d^IM ݃<|2K32O`cU v'0dw ±`ħl6;DJ!vBNDsKXYuбrr1-21l=vG&luJ>[LճL^8ÂyiA ͪA%|)a=\ &7g,7 ژzp67] 8ploؑ`qȎ\Xql0?2O$b?F :׽, &7x7W?0X]ûX, _W ŲKE~ZJV&H=.9nb14ܗ`PPIʽx5Mn̒ DPZZS ȗMX xA/zGl\z"gr53aͶ#k^-QRp15ֽAo"j6"~d>ȍ5?_O8z{OFN95}ɶoh$cLW/qNUO{[izOB4o{kUKYn=-%ӉW7ɍO^ytomZ}Ff&vۺ~ZupEz;dyf3JL9 ^t3fxT pJ tQ$*q* ʡ`ߒC9GK!UF@2f#LK 04,R 3. v(<]>Y,MS&;&-H$JMGr/zd8יA0l62Б i@0M(,3.E+ sKXO5Sjfr*j{T5ǽVZI f1kS!NҾ޷`mi\#κ?pYsr3F-{פ>O:-t1K\sst*C?nnsf՛pLer,yy9dǮo?=ukUzB?ik:o 篯_'&{nOFw-{߼~h.7.-h ۺ`Y$fA>Q;<ֆ7}S">W^ߍ^w'vO"\<ލ8V}Q0l^IT;_&{@oz.=Eˇw|FzbAD DOAq_z=^#um]_{~r7w_/Le _#R' GGK >|w_Gi-U179t]$9 4zw5(&#P>>q_쏥\qIXjquery-goodies-8/slides/examples/Linking/img/slide-7.jpg000066400000000000000000000607161207406311000234130ustar00rootroot00000000000000JFIFddDucky<Adobed       :!1AQaq"2RB#rCS$b34cE!1AQaq"2#B ?  0@8UPm(ye#L`9u^ZIdo'ᚽx-'DܳUu?ZMsK]-ivK3ˤ%uk8ro'!wh6rsm]Z5mz*ްбm] Ogb )wkcgZ8du]&@ZK;f>%VŬPu*8t6ҟyƴ ,i"ɎuKEJjYk hXmZwoenX[[KqBp{dQXF)[8ɫu8JWu$DZkPBK1գpU^ tQ =j YSb3ff%,Aj,*"ЮlSSk6Gk/N frl'wUlE_|Fm MM8qo;2b?J.VT6TòtIZ&k`ӪgXA`Tm]aa jhDċk-EM(Ctks.p f[H F}%*g7*a7鋽'<8J)OmѮ{v KR{|~/UfG/la$oЀstG I^{!rG;2JJQ 2x%[Z!!5PBDg#%ѧ_  %g\  Y]Hmʝݾ85 F\vuLtVOZHppZQ\xMxn7\8Lk/c 8eAna8t }a4.5ˇ~Ϩ>XiJv4\4ү5:Qظ&[va5쐲ԂhhO 2Z֋دޙ'mw'y.+^y.~Ndw9@Yݦ[ CKNM+|OɛoJds^浰^mD/^rCq5")yb꺹]W:'2T&#iZ2AI4x@$ ;S>0aiMTyiR@l╪U H)DCL$ HɸKL\FT\Yt%j>AǘVD:KU c]^׶Xn]:4^+k2]%7S}-m} Xn=ԷRR:VmjjFKm:)`Z^wW/k4U]w<Ыh="El+U_ ٣MQ#ZIv[)2+0lVQx%[;(H  )Ya)HYdnfpw"(, D]CȰIrƓeU;VwYZJ=@ƷJjG=N*٘=WF۳+q«\Gں:R34{k MYeٵ n˹KyջL7xAX]@X MMn[VWEb_+׭ݘ.ILMFk^;vpvnA^ɷ5rt"`%8';Ҫ:ota$A9OWodHtqD03sg&w44?em77qci4Yqt0k@Ak?*mq>Y[3Zo'o+gcH$^j>Z^ N ^iT#}rU_F]6S  9lM8%E^%T{jqȦhq U\VѦ\J+LwO.ʝXֻmpVWԫkr6߫ kV2H8ҫ^\׆.Gq+ב[ @9fNUk?Vq|MIZM!]e#-# R;2y"|n NڞT5%KHk5e^1XviM6t=s`޼/CMt tdZeЬmm3g _'8W]RjV`5i0E64#FzǝqW]吼5M!}v08]zr6Yb.v7.S:{q!򓊯\'5+Z\NKm2uⵛ96F*cEc}udl4XЬ;xYCԭ|eXwe]{VV+tuEq+]:sQW/6{@q-eC꾕vj,86R ವZ7,%?HIP*fYMJXyz&?ap\ZMp*7?~Em4KaU{:eZF4ϵlĦN8"P QHu7o6ⱎKrDc`\ϊϧf|ӷ9ӆfrˠ䰼},{#logt"66;Cݷ9kp+0d8Or\p|Qj$-TEh Loe`dS҇DaWt Z kXSf VjYˣ<%[^zP~m¾c݄6]=mt}{]liq\lmX1^Fw.UJ!)^ ft¨móOza߂j` QR2ި7&lM8+q.SدƖY<ÂV׿zW'oF]=} ǿp|7uuu4lӫS)J݊kR^UUUe=类'!گ{H CvlNk6߆Gsth(LsMj=rbuY WKN^[ie-Ԣ*0y:vS\_IϽm4gw3߻4<9=# 9~ HFJK^i&jJ{ԫZA~ѤUSkt4q3_e}legmzpgNRN@w˛dUn ➷L3nvJ~lqLpUs]UjBO6$@}uhFi}tL^õգ\q,uJߴhsTM#`,k-r\ 8ƃx^:tmk)$yCv]~7d3tԽQ,|bIm%NM iuY[ &X&FFqŦ V,fyOӀ™xRl?C|GzDL|q96BF'3ތaXɲEZ Qi ix0d&N~H;{I;yii eؖ%b}E$:E Ⱦʉw,ѐl#j8nzq,vaT,{s C*V~xf58o' }CY?-8vUnEV6FZS89q4;7Yn6h/.cV;tzXYu;G,.7屰Y4"ĺ\K(Ɓ%8rsZmw^%; 73dk^m,!NוIK3nz- Y΍F?q&pᬺKg,7kz36:j2jxpQ&ha@G'`&02 &i1 $xkiK5PMMV5a˄[`1Xog',%}`F <>QE𧻌]ZW&ȫF`6:Wn)--a qmy%4X !iF]Kh ڝ&,[/ 8KR8Du[\Q{+CW䰵^sZhxeA(x_-kac*LWI@pSnSz2ڧ2wRlo 2jIP8 mftY ?˨r9uDfQuk6z)K@EZ{텭Xgi彉dV9QfK \ɷX'!T;"ښUi#;P\HrN'i[Cܴe_0Ogj2˦$ U*lVn! +y'oAPN'fhpHϖ7ibZeޖU #$Sp}/t0(ED)cr6=&,۴-Q_!x &ʧNte,f{JlP`PX;gq4bOdlA4 1@c7Z:bI>Ad^ du42Ǧn\ECMna(lʑQڳޮEk XoxiW?(Dh lk;a6 :gu 8WQERS=@pG+"A?qo5N{wyd+]|16)-p#4 &*(bZ]sL ]k,aY   PE) d *&y* FXSmpT՞,!eܺ4rv\ \m8 c]O ;RI`r~<:ݡ QkېpYXn~ҮU"vm[KHC !ӒtKeZ3,8*nʦyD2daWyiUF ֕oghsk8S"8X 1h@r"}AϰX!~At3',um: Kۻv~&F0od6ŬhǨ%kuP&]lgpD 'aSh6:)PAqgTTεB<?*'pJz\%q3kwѠ7 YK1?4=<)pau$gUX  $ ,\ZZ2'*a)ݪ˫ -@(Iú-45@9,I)/{\ޖܛ&\*єϒͤ3P5E2t( '[ xOSr[bo'box5ST]p9iC*gv:5')&JFG*e45v`k`IY_4Ö e~-M8$~=^Ю,Uۉ9( NH,򸶋M)@S}uńB؁, Pxֲgvu*Fkh/ԫH2݌*pNg7n(3?DCW l1gdZFK ##,ufSL2{> ,eMv&)"*4,7٤0v9a᜸ufq]sJ3@.F| ??_ 8b*F>7؀ϻ$eRCs9WumGj2u,]~N6"zҪ(>(Ox/P ׇ,CQ #䌞>sFOU5IV}< 6,HPb ώH,*dI"(:Ni#<8쥾l8U,A{wV,~lBrgO㷍0`0 eu77!w ooukux쉧+t{_S=.E}:iSd%`:Ţ=4ՕvXevjRrzujwmUc‰{ƗJ-6mq.%J=Vk۩WQv9>گ#sH5^cV[ޞaIX.n:ÎER^>;p3Kb~}ֲysjnn42n@I<`@.[Mի-t2-\ J Id14Iƌ˜hLWݍb+IMѶ5yHEv]s1lb1tX@Q!V>E-ԒaG9\#kC8#YɄ0hP $y gO=VO56vkSIƵ[Xdu hz4fc'0]àE0!_'Ð9UB`qZ@,hYQT\i 5*P QW\&2>&H~HB2' 䶟A؂G!TO ؒ0( 6ETԟH4k_,q[@vj,k.c%qⶈ46`%/C@$ͽh!QV:;ftx#[! `fT@q݄mX~*Mۉ5`OjkX[g3=<(goiDdaMyd$awgrcdmmͶm-jFC{vy6hኢ"oD.b'{84Cj˩^TVV;NXd0H`P D>DZA& uZ' O{[7Y+Vֳ}i{c{)Px"Kyi?({7 S[ʦGQPsejw \< Z&~~߷ǛK8bOidfw im=asK..v7sFbOGL}dՑyy~m<=iUu;sr9.5Ï۔UHӒaB aT89%81`bPp"THz2!m"<,R$C,h2:E3͉J6QhJS[tJdTDqF(S8(4sK&i64PIPy `5r2{OGVS.ss$5G&>*KЀ.$?!;bsA~v Kn_LEy~W? M kh/]Gꎨzyu2\Lp*OYK~lv]fql sم|mgZ򹮘jyU׹%]K&7ך;vsrwZ+/~8U;uټK?TbpqԬۯszov۵[Xb`9}ky*'Gdxc|$587ӳ3,ǹ;=3px){iovp t*Q]ʻ|͎s[LzTWqc+)]M#䔇k{Q,^]ٰSS˩Je˜FN_ٲ KW I*-4|k&bm$C1 lZ>c[`pAk>s̯t6?cXEJ:ZHpΫ_'_bW?JfKj{|ӯ]f$0c@MkKVy-'M>o]߹ch֌v43@t]{ݓ]ym[66Z@Hfc +ɷl8t_?,<9mslFW]b9n{[Hx9y0qU#;`zތ 20^Wё6OK'!Ƹ'!uxaFTpO$eWQq p4!J˒%t;ftvFOp+ئ!>◰ptL/V`׎i7ӻR6=&oʃd=讌rۛi<9vdѸS~e[=YmV.F8Ҿl[{lcZݿw?`sKЎ^?n}Q. X~h3w{gWmt4.K^C}uf}ݥݴcs~ z9 W$UJk \wK\ST0#c n'~c0̱BWaNf}ٟc \qmh=6km:SZ}l`h&1`}>C\O~an4cjvou ndXvvs۾D&R$sGUܶ%x۬%TWf OqFc&_7ʙ-ݮvYy@G]r^~Yqp莿:JcƦ`o۹2o. Mk.7H꧘%zb} $)t Hs# 񵀧dŪu(vPPkSV_jV>ݧe4a(^Qѽv?oe[Yl,ew 5Ird6hq]%qTڞ=g0mgl1EIErm-B|rcA֫UGIt^ۤv f75MOi H+=NR0 "hFo: C*P\^oysO@›{>nRZC}(HP.};la8<U4,i!6l}q%&Kܨ]UZij7ԭOllˋmVw?N";%Zn%v.P988Œ*VNŶuXLR[6KHxVJ8 Vtgs|[W$[ r/WQ.NkC[os~?q۫ˋ.n|8Yq{s$}uI80 hi5 #Q~MČZǝne1@/5Lb ITĜxr$) HAqL(҉ (3,+%z^rO&ITLsHD\R<]PsH@8s@#PNc4[j:N m@Fl>t dy{HV{dV-kZ"ccZMk@k(-`{\fk$0:㪼uX#$y`D-#{,yY^|=uIsRl֝ZzWBN6M\G,xpob5'N[#i@M)^ 62!Ķp$Wf: =4P+@{7o|[[^\"g |'#~Զ޷ѣk^A4|Yyu G?$j8|*rөw;=]^0|uTd4*lRfpm2Ir &dҘ0{omt$K׎ӱ]9h{Oo\HzuhK~?Tjuwi;pD<#{֚LǢ=콷e۝v k9_V2WրV Q>ɭWwF럜5cre}c΃k5`l[ßOi&o{iLNX4KG?JK?lm:gytQ?3)J1U;4S2ͥ3heँnssGljU-k+[61q|{.(RHgs{Y1=蔶1採vK͒GQ'_MFL_mA8$P3@Irtv~thJ/3}u]Ey _^44F\Gogdt\JԸL0B╉qIƼC@0C%2VB^0yחb򟻻:`c fh)Rx|\ٛkxȭwCy𫂘+IbfU-|gjWWYGi# ,j GnYI- ڨ4b^St2uPn{wb-B'EFH8-u9ǷkĘlw-ۥzϨckk,Rt:\JmnUjwɾv2f-.1}"XGv.,r?vͯcsn-2s$tq/-sh5W>Ltt5,sk6O0佽o [M\C,s zHT[mnm-V_K)Uks݄oWCpq19$oU3?w4q0WhqqaSoԧL%[|jqߒ8>~\hb.ZDR EF5ñ=߻N  % ֌8FKM :VR3|2 ,夘f]S36+YS6Bh"04bι>N' mMJ^y.Xk֎CEqɴ%4 T p@=PgŇSH@;Rq\8#'fdr )1a' %:CQIqFHzG8#@bxxh+ZS7#x!i7R. ~>\^d`+ a䓐 ˸CEI9J02^鮜ݥTL>d֏H6ྡྷݮ]?okNq3zڞ讃7m̋Rͤ10̪#nZ9 gTוUa$"LŸ$2 j9a# w0E^Jn]=Tyk8Խ=hvOdcoѢk{3HZHkB'[ӤFxFeelemc.#N+XY_l[Zn6V&4 fJrz봓in?6vv[qǩ1`:F5 ~'W.|L|G\^D 4:1y45Mt==Yi/xlqĖ`[iXo u;Ruͧ-[sy>}r7rH2i;TOMV[=iS6}-ge,5դɾTͫhk.㑪xM79ۜT(_A&ɸJ\s.>Iޤd4ILy*dBEJ`5U f=բ0qUp=š/ʟxَaqh憲fxGqOY˄\f-\|FDs -çMPRP W?s'"< @xگNOJ5 8:;fg*y5Try40(TAN(`wbkKfVzAx$Px(9C8ԠQH{}ѷ>'>(#z{V]ݾzmߴC"! atهٚ%=Nθ4$bd̯Z`B @8T7ob6C;Fo=!]qhn#׷wbk -f]b=/Yh8 9mSɢLraME8 9N f=t2Iv2ywk(2^2wof޽LCEo nT7?8s&y?IN9)͑$tC4=Ԣi׾,awoZm$g%iwuɴ FO3ma܁.K\xdή\][ȟXGMHEevq}I1ַvVxU2kiki˜6׷8v?%z$q&2Z?rZh9nWLu)-Cs3$:# s_sW[F)K}sN6ssv7S`􆖜]pg~j(Wjaⵅ6٤7y%b}U?>9U+ZOX<ֽ_˥ir2۲_z]U^3}#Ǡqi'˃lOXa[@  R AFC &eXNh1 @[qJ eT'A(1RPx*FJea~*ap;s]spq2߷>#ԑWV-l-8y8Ih+@I #$qG׽Kgӝ=s}!a^&-#K[/t$xfWEͥ}I 7G\5'W$х-ݻVQSFA1ڲ^`m]E v/]mF{؝ۇS,\nCX9uja%3Q圑cOf Tw#+^iP{S닖׷2=Wuvnt>YlVh>+=|j.ޮå/Ǟ+J]F./E'$۬nBA® `|s\(M-ŋ[C/.:^8 zo=9!|>KG +Nt >dg6 xA죽Dm _e}-,q.]z]] CC ~ VwT'k宪,Jc1!͡MY;uFJlti)awkVuՇnzN AV:p~PbfjI^k05y4H @@@ ah @4F Aƺ$cA >ɞ)e89W \9$3D׽"X) h4S쿶CZk{Eaq{;`qr]qz?Oo-6v^0j8޽0;}>r009`dyÊ@u2&:W Uw YXb?֧4oq=#{yrKkoT1f\[HmX(XO -\5٠eh~GaQ@CW^+qԬ<7t0 l9.w p\? ^MVl_0!TGtd`4c#oc54J55m՛s=4v4\z/HAǻwei m/nqiEAZQW#\r-ixBppCc SW*6ro׈Nb\;L\=}6̕ % P wpx|ogO# V3S6˵F'?lF#)) דA0F 'MĬm{EFM vWz:AӯKTPiP'ʾ{99$Dg?5DG榚d,aP,%ǀ4ޫfp6ݽW #spZh÷?ro%7 ˎ9׌Lxu?g#8wshᏈ[upgۗmK) QZP%4[M\~(3^{pi]CAVirt%\ kjjjTᦒ{Lܶ<.Eg-޺哕 _- #*")3|!LTEΔS*qᏬ0quqd"XLh5,X\!qDRg<8Վ<<D!:qh%Nc?Y9f8+:z"{<6OM>Dey{AQOd*4u=T iG摡9?Lswb+cM,SgB}RTcӟyP^9%# 畃Kڟ/[]u`s@<]W~?זZCdI?5%OwFRx u㗝 Q˺C-g:":.oK`$@@jquery-goodies-8/slides/examples/Linking/img/slide.jpg000066400000000000000000001410151207406311000232370ustar00rootroot00000000000000JFIFddDucky<Adobed       :!1AQ"aq2BR#bѢ3$rCS4%sD!1AQ"aq2B#Rrb3C4 ?~6݉aʓ]q#C$U/hO ˂!NS}IR !zN?Oin]F.4?}g}R4qLOzWe`,CtҟȰ=e)fFd0R_!@rs*P5_ew)R4c܊\;nm!*GeA;?Y|;?7FLR`頶D*FmH˨A0i]v aj|d!rN\,.z<* <NH鮘fBJCu o6C&ݖȚ~wp`Y%]6X{8ƎyBf<~qܒɁšeH2mm'iRĒ~1iEyKvAx WRtiU?a:̘/r0c[VG*Xfm6 ͒$%ɑ?hoy]&N6#x`4yXo:!u/U4zdcT'L}[Bz,>^ksP?Y<\,nԺϸeҦ-_owOx=$tdW< 5m5w |nM,Vy0e񀶕[IԍiI1/1k_ʏ]'0.g3sQ#ƴka9VnDυ\Ta'|C4",'xPFcSA3=1!SkJ(\1"Q$h4*DFud m5 &1S8ƌABr@SloKID2\A[mK%➦#dϬq64&퓨ֆه\CX,( L:j="\Ƃ 1b2hmEc"cR+L) ;M#ms?|k^șΐ' D`%"%\H̰*6̮FWRר5 Nmh *)k |ea}˨U! D@)"97DMj̨]"=S*t1J/o*_[i/kųv2B'M0sd#t15¨S>V^Mm+|g!;qۜcps!ٝ}GVk w#ryZI᱒'"b-|kjW`¶r(1?5<#:Ĺo+y,RX!H{{OU`ReU}HBm& FN 4`J:βxFJU28͑PFLDaq2tX| {aBmf߱'s=r8Zl[eѣq[CgL~e䭃:>Y!i$}.6aV} X=C,"z/_?1WYm*p{uIγpwĤ+C{4UaأC1F'+61oȅ[i#@A(O|l`t3~nE\QC/q6kqȯnrtcE5(e 9qešc0vWuT؆sГIT\'>;v:)\A Yh *U&t%#:~0ʲ- *$ 5hp<@+\?PK(--WS(|L+EEyQ][O4u؀,-Z4ͱ"<*V`(B s:gffNJYi,JHH%kcyU.ќ.g~Yh'DF*ok"Lm繮oN#lo Ŷk\U_mw=kU q?w4†h3^3$d Zz'nq8Օof*rDc~?帩 ,J̬K6sznBR0x=9~|g{htM~Fea8k̒Aҕ3=縵]A;!Aq+ Ϊf]yR9:_m* ' ]sIvs Mi':zndqwdY?XT[ .Wn#Nx/XН',J;YNhLW8VV#0=%-cTuIJu@iF1YiA\=Un`% Z,DuP.TE0 sI~U AL"%-*)|̷HԇY2 n iv:(J)9Sҡ2A^P ƒ-1of_'[XU2O E2Xm?ƥDip3ʳm]Z>Qs CCS># FfͪRL_%r+z%MH,ñ\P\Cc,DiZ_kJfu7e ,uV]:Au4LYWЭ19$Av F @׶Qvd"!@/zlK: j=A'ӔɆtTfTC҈ ̨;S:nFRa42(zTnLXfTEL"έ<>=Ӧ;t@%ƚ GYb% ? vȠg?\v^zhfG2=L3%31\Bn. J b*{X2r5[wʝ ] Qsxu uה1|4&B >Efl{5T g#N<_Içp͝ 0ǜҤ.6I_IEzhIFng ._+>{f`d+ҡtj]~iEph;3% Z0U;Kt؎ 5pab^coMa9 H9GQ%?)s[~O# ^BCLjA C aql=۟kh|)>g .1F@,^EHlmM*;"Z [Kh,yQJ;kYJmC mX[V5lP<''o8ʄ)h⎍ N1 H;, {*v9C=G>x31T$BwZ/Ŵ6UڝEbf(0D oKNӬ&P3N*M5&eđ+#2sA2e?\pnj.32wȞ49x%̈}E4+0 i"穣 %8#a+z,ATఈ3  0"Ъe> I,F%:QF"Wj.<`Zu*LOv_ ҮjE@n5G0n0,EVzBu[Rީ8)0{S^ ,fsW Vg:d8%`_OC䬘 %l_J5-x<q\Nؿ24 ,TqaX_ACHIpAp{Uaj,l5_|nG'1̷ "DeiE>}2O=!ϚW0K!ƿǿܟ>79-8I:k!Ogcjɭ ;f>/)lc}ZE*  54޿ aΓ_i>nOr4Q_˯o![ uYı\K2OE6v"ZG?h=i6Fb1amgEgG*N&]n4$Z4IP>2@ D*ׯWkI-PDr@c8eN|68#4zk"&w`f;]>~s7ir KvԇrVιn\6{[彵EHL1/P/6^=|zsn)"ॖ>K0 ̺dSaܺcgYxgkr1$c&vcqq'Ƭ/Ps{ H:lXq>t"Mi"${{#%M_'?p;m2Ǵ܀c;IKh|Z2 SN1Ag83?_4+mV&Y<"L1mT0(r.ᵡzBpivu=knT(3'5.Ugc>TlA_ rE]j ^)nM- %KZfr׉#vuެzp@_ӂ{؃jse}WZЫDV02x­e]FdE^qYtՅAdQ Vmu=Lf!Ή@ʅ[Kc8c;ta(WWJ/lz7+t3̼\rMDmk75xvH^M,rflf.0?#ю|h+ɭ5^,gwE`7#kog͌Sn}Aix1󰲗såɱ܂>#-=mu=0uDs4m, #q0r:D<l͇h"A۾ngeT:gŚ T:|G03* Wc_vͅ|\T*tUy+dNdEgǜÑFl8`l0cf}eEmfKOF+-\I9*: gY;϶i2BvA:v?WƼǺ{}({>_YN<7V_P&;$.q{Q>\r%[AZ<^(S4( Ҳ`]PĚҙL/_OЀYF }:!rlUMdYh[Af .$qS.wNlxi}/N?=q'# C@ fC"І60H׬¾.wbCyΠtYVW;v', <I~:E3E+WoB,9L4g˃+"XhC"=^i~XnMMrO(=ňhSvt3δWaoIt wt3'hRd1֩VAbZjN`(-׭ir>mT"L=NڡȐZ֠Q#4CejU17%B=_nwӴcvnnDqe)x+`KGpJ$Rslvdr?~ &Ew? )j«wJ9 ۈvw.G9]}q{t6W\v>l2Gf% @ n2f;C:OO fc'L) &uG+n6ʜAo.L6Là݀K7`ttӿX$0!>:S{ 2 t r glGǥ,1jR,@GʫQ( LΌ3e+_@M4'a@45vf-/5X]ڭ|faD.2"ncZ^d82AyĈQ5\$N{rm3s[)aQoXT7КaƷ=hsRV Ef(b& Ƹq4FA*26ZU#+X 3E֙CyTPo:Ĩp_ U&)4XBEB(e1-\p.m֪^Ha! bٔ+Ie3h=Z4D1} *տeYLnB l:0&M)q()[U @rU 0-2藷ζI39G3Z3w|wp8)ڲ\)# ~F?+-H?:]O'И;n'krk;fƣ] V9XZ3x\Wh'r7^I[tP/ͻctAfָCtӘK\z y-3W9f4w7h?-~o#>IvG #`oqN1!5Z{?HG 3bA.U1[#F>Rܯi7}2{֡Ur>''噰ܧlr]1{r׹;F|>d r!.\cIr:5`ec>%]mV&*ՏD7:[Ƕ#\;8[_Z8W8INhB?i6nJcbe,AgО,_iUXs>=??9N.n<7]fwPjf7[w'ے΅9L2˻ѹ@XxYd)z1}ߏǤk}I@č#n G¨{ d,?"b-qvq&}*Iq3y?ƕ+|/8׶1]bg(UWbUV=+:d0>#̊٘+9tq]QU!OZֿi߷xWBpoO9{xY.Yc(^oKU$'ʲq/yͭU`HuGHvb@׬t s+rk' 2=NiҌ =: ՕլlƔTƠXҌc g45({؜nJb l@*ix:q.T xQ !8rFwtPm  Fʹzr:lfXR@z92@3hX5SfAWݷ+KG%HQ<*P(0j|L!^BI5C(B.j$~WTʢ i1 a/tV P<jMd3Ō׭2a8 oo.#aΦxe1@6edJI$dOR RGeZV[ZF]ZLJ@_l#nA,t 5UsɎ(`)@˒`.iw򥐂JmE,c3<ʗյ372?Vΐ,BGQ&3 `0.:$F}Ӟd rq4~!x"5om  ^{.0?f{=* ?9ι+HşePsFzz.k?3nUm.,yOEᐼdOQv2vaN߉F6Or +>&Ğ>ǿXO[Wb Yx>Ǘ9 Ǖ1VOqlcu~BEUW'v478ʠ㣊u6 >?eRn)#AR-wpNL\d\QcНjwJ 1M鉍qԊ PkΗo '#3/S =+9}cOH%Os;1q(f`A>4וR@Y<1Á[/z?ʢGCpt5g":闉ǣEEzͷ(vO³-wTc:~>@jo}?qؘ4rSS7Rԓ+7=L̀v~T؋SzԂN=!YB4 ?[M.f)&,S -,{nz!t*kYx$9Y_"ô56"O&m-?9h~ SfbI72Pe$tHpsg4=@KlVrdn]*!K6ex21.T+?XƶFYD5RO4gyle(_!MQ E6W Q6?WX\.Y? ud7e7+^L2D!#W]el5Xyqi;_3؜Word46\1ܓ'GM'6>C Lѧ!;|+Z]f`P¹~n*._ dJ<y* +7Q"ISsO`fqpgS/|-,xo!7БP.5;gf݁f&XQ~j|L>Ί'SЀ,%w{Fwh%N'#u9 }5#BlX0#\7}<'lrE b QJȽx=f5}<kDfMu<64##䉞RF>LF-!s֍GQ@߬N&<ٱ-΃ڝ բo:Bt5bt^k'ǩPU.,Ê,Ge */0wujKE6xQvs"']N)*h5/,^ߗorKBĉ7{P ^MG_o^A|&g#ڍUpɟַ&k-DBѫJ(76^kWԆWmv/iٸgD KqYB++(MOg._? Db|F'@i8{F} g/ȗ,E+WJomkQ6Li46X{#Ksԕ~܃s~^,,QP^~Nk2 sdL,ڎD rkD/F6z3(k"2mA6 %3qE]m-Y<.6$Q bST | Pg,5֪XU0boX 5*؄S,֫H4$DYFc.ӭl8\bj  m XP;X$hL3ꡲ+Ką䘚_U2UbgRV#zq-sjۧ-T*N0 A`W-FD5\OZ\d.,Ad -3hjeA%҈U]3ZˆK| 2 IaQq(l? PzSsR'S$8$*-jew-ZqaɞoҩBڟP: Ɖ>̜Lr :uFc8} liC.d7d,Kſ…_ _YU8%O,Oc_A$j~ѵ }ƻ+ ?2G'.\g,*uo¶M|DdqKyv|KǾCyu C+k޼/񌷓hfnng?0 +4iTXGA6ooӮϳ-񼜘H6u6AĹmhD3m][%Evjl-lcˈ/ɏ&~:u OʃjcڽLLc10×$nosr:E^[ORQ8qcu';͜&rޒA]-^"X2:ƹի&w;Ñ{e!qt$ ^Jdri1nB$,G>  m_*|Ae#Nߙ)xrudHo&g'bEN[, ?c >b[pS8 O׵.LEMCfeY%eļb@_T߬U9/ʏY1gdnjd𧕉o+Q֫JfB_ԜU']o_hP?8E2yѫ +YTc(c1]+b4']Rïƻox@We'!ql ឧAfWmX&f 5H2Ij >#T^Q2LX11xJ7;ѬX;%_nkC"NZY54 >uq\l' P#o.V4&ªGʸdrrbEJ!^,-mnFT;EQ$}r7Xw#|;09~ +G k@Ec{*@Z-sucH$.<*V-΍H'3Sb{V==}7?!7!H&)o/1p^?673E"ڃ5FDRYND/+x9>?~&Xk!Xh~+/mca?ҢoϤ֮q+°%8# H2ge!r=d1:t#q!X._d ]q:N=QadcA<6'%>^ B5$P4TQLࣵcx?d:yV~XeU! 7z +6[m[e΀|'ys}א3hwo1;Jugu=bs[E:x3KAH[U~sOv3}ƓMi؞dBFG6OHW7/-XM<[h2rݣ[΂B$iB;{}sˊ68wb4R<~(Cʼn^"77_9%.f[K7L.̊J FZlΕ n'k2S\%O#T ͇hНu"܋2[;ONK+3dbEgBnڟ-js;O r\&l9&flBщ#%\Oq`9wk{GV] 3+ ?0_rvfaKo^y573g-9%33DI*7lW&=a2~RKx;KΦRĶo 0@@ŊP'*ؑjta{SURĂ Ç6D@gH5Y4œ5D!$u/OF(DE/#,cZ&'1.4>~TȣNEe1L%R3 ɐ PF+1$ĭƐuVã0ñV@dg/kV~+^>Um LnewiҊL0-O#jifƈbrZBj% RTiDF@](ĈuXޢZp-Z'Tfy ԓ]*9Ae|j3FVv[`hD8``]8 #Aqz HҴSJ}<Ӊ8AX7+kȔ5T<o*뉌W,IkiUg!kuyIeL/qf$&?Jk#6V=ZpG _SV^Ѽ}J'2Cܰ˓@<#Y*OL򝲽1T7@jX5+ᢢ;*ᇀ{gg>*H.״XBhȆ!Qp;?1E72dD&1rH%[exYR^UZ;OU>N:&ixe<񄑬u7]WDF<34xԥ=&h0߀m BUv<'j o!r<6iEU >tt@!#-)`%5Xj>tk%qXOZ'bȝ&XȆ5Fr@Ԡb"+2;^`Ff_xL4sJƦ(NbI6~SS&e^]Gx]_6KF:cNJ3KMO2fph&tlOʽ1S.YgT,=$IjMA/.;{?E鵋x-Pr]f-ہL-9",wq͓ t>4iAq6+35?/9RCˎ%k|-Az{9E(NݣkfНB_p#^v;Y+MQ@Qn(23\~˞8yc:Г&'C9@QoZ,{vs9ӓhƂ%V?B6l]r3qԹ3,c-֟\B" M ZځNdJ0P*F 1$ >a1Jڝ~>H8R5ĊIptxR T \0ubYJQԋr tCGAL(̬!7!2Ypd mC!Ԏhe~(udHaۥ@ih\1"&|(,2˙ce5dV^Ey2ФCNr$O m\[B4H<_@Yr'7-ϭƿn|1)@"jMsbrˢbXМBK( hɒ\(% 3$uuJ0if!hJJ,v B5ai(5tUX6zkс&㴿([ŖY[t0ʲy~Y9$kq9~Mf`=fSoj_5ݘϮ22YR4ʦ$Sj4|K3,scG"&vqyFO+J{>g;6Vb2Z?k-4g¢b_eT)Jc9O;+l'ICWGU0|lt-+Vk[sXwXq0 Aib!ID3(:c< =YtŘ\nG/`;uc|;Ƚi%կkk4r`sݱ<_vm[:Eecjdmu˜7iA+[I΄.VxdDi: G)?HHqM£뙿 2cc rlJp,0QTTr[Ǖe{uz=7 DrV#w"h2=Re6j SK#x+ ]?}S{  *|5*p(E%I:Ɋe̡cfl(%cC"Qu%ۡҗ:ː So:SdJW٥qSiW8>x沘8kJYw3%$bEυ[ԳcHNӉE)\6ؑIaR0z;㐘vXl8J b6ƗAw@Ll{ArRץ1M;(:YbnUiߝzQW:~5RbnLF}խjGs[Sq&Vvt'^en}!UK>u!=VI1l,VD`**V(,=^"ד+K`mu lX~.O%P¢B3PK ufZ LJUHL_: ZF8L]EIlHy6 }k+'l@ʉp|ʨN#FoOҦγb>e۬g?O ;cŠIe85C8Eש *\ƮR@i쓩R '1W ?SUxIQLmS-oyZL/x+o !Ag&u(2i٘#=TXgkUF"C*lp\xDzTT c)ʈUưI)#FyѺl̰lOa)}Sp_vcg^m9'EVIfNK!V? YUF[Gbekf>7P@ !| XvA>0)PenN7 }Xoqj:~lGJ6ﯝs9L=uuibW@bAot1҃i%ȈCq{y~0\W2a5+zm_)(ltd^N?7I u#EoZy+p}59o z}L#U \E/ 8V:7/ۥ ZRX?׼+7W0v3$}܇I2y+Y+;L?:f湇ɔnAhj#OZ(%[SMCPQ׿Sm۹b|Nt)a!AUYI? lث~L V  ThOz}I5G+ ;? |t^taB^`ெu|<^$ d" A_c O'h&W3#JAiGŖIF;%۔Hkxɤ $n?[F]AJru#gU P-sM$9ȗ~VfHw=Rv{U FXq\.;sp\gb* 2}miWA+e} < kQu&ƇJ]`XO<v_Aa>3fG؜`Xmzt5LEY@`32L/FI:-zCNFOFϛ!wI+׃H4V>ueIFh$4v:D3}+oAs?RGh7QN f-x E㴄~z1&۔G!66s PD#]ikF1):u=6os1,q"vqkL̄j~L,IKeNB/h5 #EU-a9gI'Q+Aqu?:# YDmBg3܈7ksPUPU˧:%bLɄouCNֹ,qg2[UW0h&3_Ph"vc8RaiՉS\G죕&{rңf ɿ[DJ,dmU&X,Yn@=|i"/SK$a@4FTI Uqr/J{FC[*[$"SiVvJ.Tm׭&ѴZ|NRbPށ3P s:qɻ&"U3KS c:|v;^9["H@.ƞ;e[$ڀ#[y |{0L@m2'EVZYuogp"XIQ{Ù>V{uZsir06l0 f[gs&ƙ#OҴxUV1{ ""Εp:LYXW*N ͔q163OCuaQ)/*[ê]EJcc&/? ,Lԕ+Mgl5ܢWYp!,Sđ9Smo j|+O۹F+88;|?˩ni>h"/n'_v>? EnALʮDZ+kO{y_{gd|>R?KqyW鴩>5}O_7Ekc8G9\DuF^H҆A0|>3 ~4e3G'KH"mۨRS5rruܗkqlpYakcW 0Lj@cO\r\vuFe^Ȏ.IR+́gv)SUHxee'67<>"u}켙]BG=|7P zw:LuɈx }~6sFOv9aR4Y2{geJ*NuX-5"<\Ef‡f-*2-~ٜ#;kU}Ps\ҞS~\,D0D܆K)=o\c_pesCpAtTd|z5w 1& m[3v9^5_NIyXt%X!Z"A[nfQz| I$Bcĕth i>LzU?DPT%MȺ(Էkpa{q%I(-?]d vsxO%c heo&aƓg(2Y̓HK#jfSY >F4Trx=[ƅ`#֓Fi#JFfQU#0rc](fesʦ>MA덜ԓI\k2`6Z̦,45vFe0aN`ט&%VBl-F+5!Z/iFh#Y",p&% )X|@s ?J5}`DR] OȀ1,q6 t x T2 \kU (Ji4#fF!) VᔓSv4Iˆ =p  J@ztAA0]lZ2K ATX'dq4T@\_7Sbθgryb`sSGDf~|[Ѷn0?)θtXwdJN€yecqէ٘/{ziI#R6cYH+ņ\d'Z'I592$2"NF]V5Cֻ4XO$11V{tV M/uj#Ǵ׶.|rLhbg\y:-:giMZ=dos2N; Izڲgr8c=5)8sS"h k2,[oj9`\ίC pL} \e7ɱޗwiK]Wfk89v.bN8.V4ٕǤܩ 7 pvӭ& ĖaZ_b}ۼG9MS/ n-yLDؐCݘOe>" uRP!H7`OIԏh?.h9l"e!,dTY5 Hc| .zNX6Ny{m QV䰏"MG ~5_&b^'r~g=#723i}<2[:c7(pY~Qyс8rD~V XЅ@M&97<Drs>CNd ;U#z=axuoϰ_16&LZd00LA6=E n:GF{=C_`tzڊ.7gla,h#!Uu-(jXRrg۾ÞAǙYX~.E򝪤;t]|1UF_ L!^_  a$նXt C3oNbAf1BB7ٙmjz7WÑ#OI{qX# <{eȅYjUO@ônǚ} b4 \zۦA;廛 (&b!H*Qh4ٞoɒfcHoZd^57i>dE'[ i-mxn KojHA'Yv&)(&6Af'>wrf%as i]ێf MN"g#3(fӥa݈c V!GL#`P}) aU ƳV9Qp4Gb^i0u7}zX"G.ti.!C#2#*aabZxPҌ7"SdLIX6cz>Bp^(Q #h:$2u*ȸ2'e[ӂ G%[#[Q&Z 2vըve:PȅQ.[ҩ "<6"@2v򨓉[֤N0iBYuQPkzEק6|Hdx2E*c@ B&Bm@a cGu5; AЧFȏ%n-ZDf/lbҙ>G'҉^g33"C$(7 oV=!=q퍈1Klb[=nBۆ;,ؠbxnPt5ej8k4$F%IǪCگp_@^]qM"B9T M!8NL"\Loq&Rճķijq5Ϝ??v,#pđuՙٗgܙq̓b(('6[jK&OY](K%\aXȿǯ΃x~حQ,C܄2=Huu Q%1Ƈzz2j:WAo.g^$QFԐyNIFDmb  5VB?C3Oo,c_̺Zko)|OEܓboQ0<_^am:9R_V>0b7A7acZ1xfn|Idㇿ-ޥ6\NO˄cBs.E Y3f2BԸaxVWl{k LORm֬9E{D=tqi;k."G>\ C.9KfSD~"9ċQi&h(`*9F,ot׭t)F.[_0 &:HT`,"P(5oiJ9:b+4#q _66iPO_*̵,qevހ,fgwnFV70dDw/: E,NQ` %ly7mCPxR;9|yz$ɜԀXUsޞTA5Zh!J@:hBrttXqktN@xVv4TfĂe{:Z0ue-Q/w;0%@]K,2ăKҪZHI\*N9%Xk%Y7m)"sJ}i1r%FM{GSw0}GZ"]u u7nuˉ?~aqӓ`5HG]k-转z`,:m5v}PJk"H _mKG$РkJ۷(:|Y7O HXX|-}k,1 ȀHaE%#2: ={M*9F wf/=ˈYq*`r3=2[O&Cd\r.]&12E Gc턖xVr~ʬDnnM6􋭹?8|; ׃Zʧ1p3Ė[nRq?꩝+{Lƌ+Ø,X8-`Ohsߍm84WF='[i|EȞ~5F4lx$XU:}߲[^|n62Fd& hMlCCQCt>gZS6N)ÖL\1gmb5iș滨 `w㬎sv?Vڹh7s49~V7yq"F..\mgXs;sFD\BlY$>flYxj:Gc&KܟL5&qLg(ZH?Gl:flǴN]/{ӻ/=BC1\XoH :Uic*AMkXɍ8aX*7}# j&7lyhe>4Z)y|Vsi+4Q`JVʼn(G۪R8W" QJ7CcC]:rɓ n/LUnG"R# OU`z80/_c3\N&=??j H|&G?rg6> Go񥚦<^*" nfQaU,ƅ2pms_3(/GmKC& q71:2hʹ2gklkS [.$M^d334[oƕ^PE3 )'~eS0#Ү *=He^MtjԘ&{(,~jGhjϨޖ%ӧF18dˠ"XUN'OT*`&Z"R%A$|JQ.ǵɑ2Z߰(9gHDRZZ2& !A2XAFb>u;dfS#$D\X _eq!p[Up{?ƫ[l!ǮY$wu[H0Ո_&q0~At]z2p! nck|j5ʬ`X3c]+$"&2@$i*OsWOȩS~I&&N6RBF yn5=AVL?5ga\ <nȫ B*D@,I6>?Q[,pgЫWbstWG鴷hۂg3aŃY`>4&Z=n'A:q=:Kqrb c)ܠzڼ{!Ar+miҸ؞hS'VlJ݅^ǵ:)\ #l؋A"oRn? 9r@.-g q\?qˋyCV1,PjNouF\o4xNT[(Nnd@l4E 2[~Wo!eƓ~.n*grm%RQEB:A0c@s' qbMbO iBJ^UzgUx!Ps?s7q+KwR\|!&Lc#v.hVG]q#_ ֗gEܽ݁10]rI>O}4z)nWeZ!9)OOo}ݼ(!C4JKtQE"u&]#Op$ (nP 9NVm|$;i32ʏƁFȓV:j<գ3?.tNi9\_'7w+0o_ lp9Ao9Dk4!!B ^M/GnHfL+!1Kc̎̌>ooۺUrA>f>5wsyU/]_pEX^*э8qh#,Ā;ctk湞>Y0k42 T޽m挵?ݲQ8b d͓K7Kk 1w{hѵlwD<4b#]3+7hsŒ& { uX\w"Xe:2I ʄ`<ʹb^I b} ze O͉'X}B;C qCbhwkC`ll~sB`%2W~+R_9+`Ӭh\~X0G0bU8!e;KPbHз@|/lH;3#4.?߹7jwxmg|1íLJVȜ"^7IȏS[H,knҖ&2c:ӈJ(i\@1T:5o, DpX׫B 귕oDs RZC_i6PZ^޽I_0 ]E $2e~k+cE:ӵ l66 ^ۂk`Y5I {` ioAc8Or(%r\sYܻDPcpQ`eH?,AZuёXҶ`|H"`@QXVw/aqjD3>*ըf,.E̫`nLVX"RBhe2 m $G\J1-A!җsegEIZwXjrK,2}&hht-oͫA[-AݱA1/z|n\+ >7!ph 2 lqsVemp>?) 5#8|JH <ȅnl.NUSȶN|4Kw+c0nadb<)e~OdPǦ+ͅA. ˘i&mfnum:|{( uggs29b[_f,GhvQ' k#{[p qǃ7% mF^vc6k;`?wqpo{w?edO4٘Q3(֦V|&k]:uݻPuqoyw忩[o&HuaG [U bҼ 3VQMf$hX2m StyFӽcx/e(Zgʵxm8uM!VwNHL]d`nv`O!A8JreaE*"X ͹'*&'^UoНGj 4ȀDzm~\`r0-ӠIYB|.E9Nfx˜ʣiGw9W1j*R}_r1 FHsÔ^9̈R)؍ě]mdn֍SCu:c?dar~br1=i#Umo 5}59 i?H$1F$GW=ޤCHKt=f23?9=E&6W5+vӬқ2S] tE+DXCքEgX4q,b-s$Rk~}kܶ=6K܆U;ɴ_=o[o`{_i%ec36cR:m++.7/Q3!MH >dY>+"r%$5܌L\x*Κ:_ԫts#PB`~T쪼ס{Onq6% d8n>DHbxB7u=GSV5!yxF~{sڹ'>( cm.oT%YgO毴$1yɓ&ze% 稯9Elc4ѱ 7y^^ IcXLewv*.l;WC nb1-ˑ6}/j5n2ꯍd|5#:hA$y%*}7ؓj~Y!SG[ysWfc)]ڂik϶e&rE|>Dr lnBJ.~1 f;Eie1x8=kVO=oX1Nx qGdƿʉdM_e*TZ~͌cG,5dRu}+'2]A9_x,; #r(bbFuKQzTͮ ǐ,&>;Y$ 0[z5ǭgryNLޜAF$#dR][$/$}B?K[u ,%5/% F\xj.Ifo̬VΝD+6;C*Q,8Wy8͋!գk3pPLn%2j55MNX -m|[ r&Ӷԫ$a?-Ɯ((f!ר&$a@.R*i 1: Sʄ|K3;W{|чXíN_ٙ*q慏+W_^hb >8"bT8K4$nζ:S|΂!լަPh&f9~k{01%V/!ж6h3o2A`OQqֳ\vȶ)gN=-qA_l#!ʝj@T $t4D B/`=ΕM[am9ڽ̮&UZ:b V{ 7k tK;P >ThIB>Lq|tQ*6Ǿ0 mсaH,#ДR -A)!eCVf̲?MΔ DaSփG$)+XZhVQo鄶 gF\#Uǘ^Pg`:63t|T9|T݉A"IۻjM^O>ʴl:'M/kv-*2Jtmeo{5mɥ~Uڒ'rH搛AAU-N(H&,B.TE/ Y:FF' 8/m <ߏO?܎|0?S8hĒtṗkwxDag:tJ^m+gs;TDnċ ȩ_X]~3?ZXꜿmc ,0#/3}:&gQ%9#ޏnGmoYur,O|ǜr9WG=t6б!T09!j6:l.IPJӳq)^Ib.4ʌyg܌ǼF5+pFV)UQA>5̿T9>d\ d,iOꊀkrI oI'Dyb+sqZ_u)<{U,IOGYHi ~^Uk+L-q1rtW{;o"TzV56NYj 1`|=aqN<C2LU'QAڼd+ Za<%(HcvYs #h29Bddo TxnG:C19h89ngH' ]z~>+ʨ#Ts@»œXq:(tRO֑'y||hv.m-hRwj݅4򬫦f4(L`l1* isN"UJ24FDn.aA"f?; .&$,zV};r4dXކ`\fw(nDqӵ6fxC^vM7;7#r:ǖ$j#BԂNO=N#I3b+487HЭU8fY3yN^r,=mȊ| y g1_CJ:EhapGZUB^]5rg]u,6Ssbfg Uf}&;0E@+31x WZ٬m4X=42JƸ*ӈ"kijP}aqPuHmK4`},'Nֺ Î6s Bda3MO֛X737HYiJmbX-0X3dwZW1Ku鶮ęWSxt3>W٩+@0yIjVՅS }qC&?e,N"#*s:Aֽ@̂brM3R@;>PNqoRd`}GVu7˱wĤ)U&^;2Q&QYT c\7 5 ɤm `fŖ&J t*@E 5:CE+\Yb2Kqf`#qROHw[LGXdI4r&(O>;mvl~TK"pfbfu`VI'p-jB-RrOper0`C?,pp #ioeX|RT~OkVWSoƄΤmvdOIƅq/;;+nn|+m{k+ (}if~ͶHEf>GK_zH\x7lǬ{ Urݛ&=k6^SV`I^K'$ i?y'嵉q!2[5JCzu:t=&x ]Xiqyd!Cerpa9?ww}-?\kv%$^´8 ]chJ@`$q?GX‚f_athFf3So)?9?ο.ݕa7k:&?"^5I;Eo4)f0ڙ8xFd;Scbَn|GfFe([hhY{M I๬EDKlBϼM~5ɨ%uS3/t\<(V)L r}/ {G($la!woJGA3vǍ˫}2!_ &̈́]MW?my$k jm~mk5;MtFlu0li'H´%n1\Yu֊Dř%.|i,U(S[\fo!qvR:оݢ(1RWo[{mw Ɛi!iq`ezt?*ˬ: QaaX@֫6@:Ҹ+45E,-ǭ9t<7^h2ax܄@^XUJdJ\9XrV-ِ՞$73/_SuÈH Tywؚ8V.'&HF7뵇ZJ;)N@9jxC7̚?OfǨIkQOam_.AeL}XXv^$) ӢnBacqxR>CY~Nb\34!'&F(A1r~DSa~'ɪpg9K;(-!ZAq>ug  hǶTtPq 1+Tf3N<̤ .Lȣ@?mAP{IKh;G Vwv,lNܓfʈƣQ6xhݝ~q0)3XzVsn}p#d IMLWNHGO ;ypcʶCy,:͚"c'dx5Pb=^_/m &?z^+Ӭ{,n8?c4%ߨW+6u~% bc_[u喱t&ݼ2 v zҷ{eL0$uf>RXUk3 -M+) ϯA;1y;HrXRBuN=nY b1yWL#ݢw:Uޱ6m`62pX7ϡēK7d4. ~ORzx\i<9Xr!պ\u <G>Q'SZ?k^#of|O5,P4)oP]/[[αѰ t$TY [kTŗkM\eZj95P@ʍZ3Eb9ĩ r`/b4?B#tJf-͍÷xpXYèG O%ʋf$G;{nl*6̜DuPjUN_(b5+/tJUË%y\eH^6ZrN|h &U Q3 `Z [p9dԑ^v,ɲh88c zY\B4  THaĀj$A&?Ɔb|QnZ uys+R!Ȑ-ԽQz:2!dk( ɾHCU ^z90k)BtT u-T]6t*yS+PX3dxeR\u/x6f`޺T6Gi䏓,yG9>/ة#֒K=+#+Ir~sbaZۨQI<3 o\h~1ذwH2*Z 'qW_{ mE¤%^bܸIwF[À"AW_3UdI)Jם\ěM7<encɫH8Į^Q=>V5Ԕm@[R NY;?9NF`2|^ -l3JAtw&tI-)ݴtֽ]HBU6%N/3R-1?m*Q{brz4[f/_)[Sfi EYʯ~X2S9'q{'I(;>:Z)"GH_eGlêG'pck'r"tlsk]}*l9M^? +kFi U aܭM.eIIZ14 5ݸܸӏ:,] 0ԑ>% u vW<4W?_nqv\z״pq ifb"@$PX.f&w֕̀:Gb8ΓYr[_\@ T7YI.Fʏph|PѤlMѯJY`1P:K-J3yiV.r=iF[g%O+0 x a;* a-$Fƪɘ2؄(]|F'AK |zT $t̯![|z@l7if0.Z5d+;^r Jc|$m|H&ji=Ī*[rݿ 9јgt܍ jUz| z,F[)'@X]/ ^o9[l\֩.TN'2;oq^Fiq3%>d4*R`ۮ䕴+ 2w]j( S(Pu/\Pez;񴊌ABasvُrEQg4ݲ5.5w*;+g(qi@(yX ͉n=#\.}bE uRw :n ~CIyhgԬku$^}Ov@DpɋK9QV$@@u:&Ϸ9"K=mqk:[3t[2#yO|6YGT`I81`W2| AF;X~:t`RROTXkAV{!rʶ5 slc}6"lÒ~4."S;4glBV :Psv$T8C fSnhb9<(ks\gHVVQrNU@2}m[vF%1qf7O).E[j@e7c BAG΃RdK_j%s+-M )c'1%_)i&EK[T&BM;t@t:UBg,>>ˋY'i^Fi,ftZg2coϤQD2LW"Y[H WHsn丹910=US(WRW1-;}GH`:F#'¼q&?= W:wT>Kٜ'"k&FBeo,7S^]n1ٮY82m͌VJ 'iш !AX[O6_M"9 ƝS*Q=RLZD0i2T t652>*U[*J1 +H>=)n[XFɻ;΍&ቌI` זn2NfmKȒ,aAP3Ӌ,c<`pVIipA.zxL{^oİ#Zi^]K;l21Z5:kYB^AX~Yf6w!qy,L*U>H2, f_LJ|b79,&Ɏ&ǘ-?LzGmZnvTgsr:֫k7e,@/o\SEaC*]r2"H IaMbF8IҖFLPFLS7J^ElerJ7UuX`7km e :ިZ[eBNWrt0L ACA)=(W/ [P,'pF A eC$yǶީrS0‰WNg3q}6)Āޠ!+K p%2 f\ Q'yTw$Si!qh2؅+GИfH22 bc¡5Ǥ ̹-3ݮi*`N]: i7- >țR/sWɂ+ɋomG\A֘ۘA\H2\}i](XA$utHI]b`]ٷx+Вb%g0G%f\uTIB5DLgsXU}:AfsD~4&¬Fe*yR32dݑ# ;2kn T6:~>Qm.so:$$IvdqfL,m(F|'.5ODgJhr31ơ]MkggEidnurYG[Xk/Vz_m8a]`|Eږ* xï_v/g+2X ksTpD&F;xLtw$ 2$ǎ(=l?FSӰuqtq|bbD۽1U-qMu2&WI(0rgD"vf @԰w6[35̘Uk9q!sL6q><1eI79 jzF|vbrB'o mClbtN .h +Tc6/8"_0xhr#@FطMhIF*m98#k0;O dȅV'9 0QΫ$jL63ߜBYsqڞbU A_T֫h#>+q_+E<I$PXOMO~"8pʉ4ZϺh?tMcy$*Z'ly-h +e%1TK"o*|  `)Ko*iN8_/ ͼ3 Y-' 5?Z \FfxZ T`\y#o=U^1 ^]YU, 4)sa.j 3uķX.BYmA]/h3)hhPI:Q2R:НjP/O$n4z̃p:y: : aT9[ 02btCeĸ0yKf/+/s/hMI ]H]vLƕeZ\&}:&/g0:s ܖ:^Ÿ J=m >f!-קNdmm@R%L*V_J ]eQpxVSfdrEE:*ei/ ezrWI5H[(]<+$#հ|LcT9.G5X88k?,I;l{)(cyo3NԘg%qB)] LJګ:z+4ǷpWkxX.vI%֋< p/4o`Z-EK;z8]xԯWPFa=MNStYk5㤋*[uCF3Ɡa>.G#&N:^h)nx(9L2e8}΍vgc>ooK?Lg{FyN418~v+"9 ˰suy3HEh7p=,jEC3^ΟfH#&lBA}K[<>@+,N#oE }[m&J(U(`Iv:t,S̎_Kd`Aed?o_QF8'%@_Ƥ.XSHt?ZF^D7&աMb'm ۉ4&"cJYE!]~(2T (R҇&JS AE2He5:/IC(>҄JjdI6 D띬<+tRzPe J[:cIʖg0c/pxϾఢh1HP>&4:)7zJ[>?:Я 1sױ"Um[pMg 3B}/Em2b8-N.fPb02o (T47VQ4U`X@|VdkM$.Kz\A' #YIGik6c-޵$OݼMiE-6hEVh<7j*dR U1gKx Z#N(7 K+ΕIʊ ڪmUwM>n>W~F]F5l-<hU)̛Q,Fb-`A4R33mTY50PiI#>7R!9.S/L̙Kk ze_Ω]a{γgP0%R6f6kjH'XУ=T&y ~wPB э1DԠUmC.䱻~.i?\q{g%K49^e|ap׹_2FzyS3F\^w(~jG5Z (uO1^íb 0ɓc\^cr٨: 9);o >&."huԎ/'N߁WJ{B6D($8TB`]rr^ש 1qgxVU)cۙa4_2 9f$*[ågs+TӍEeRZdkSԂ0N~ub@:ͯg|cG^DFTnU4Rd(Ft҃v+.DxqϺM=>tf5#bJyi),vP~zEǁ{݂ ˧w1m!]ou3ə(Ǔb;X ء$_#VKqH-L^uq"͇L*e84x'<|bıPo>N'ySVGk½ '.qecbÓ\eVfUuǪ#p$DEaDcⴛ}ka҆k>0fV $[ynۍaUrC{/(mۧHkfoۧҍi4+{z4H3& ;Vu'Mb-Ywy/aS#Cy\VCaa/WMjquery-goodies-8/slides/examples/Linking/index.html000066400000000000000000000132361207406311000226610ustar00rootroot00000000000000 Slides, A Slideshow Plugin for jQuery

    First Slide

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident.

    Check out the fourth slide ›

    Second Slide

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident.

    Check out the fifth slide ›

    Third Slide

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident.

    Check out the first slide ›

    Fourth Slide

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident.

    Check out the sixth slide ›

    Fifth Slide

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident.

    Check out the seventh slide ›

    Sixth Slide

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident.

    Check out the first slide ›

    Seventh Slide

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident.

    Check out the third slide ›

    Example Frame
    jquery-goodies-8/slides/examples/Product/000077500000000000000000000000001207406311000207045ustar00rootroot00000000000000jquery-goodies-8/slides/examples/Product/css/000077500000000000000000000000001207406311000214745ustar00rootroot00000000000000jquery-goodies-8/slides/examples/Product/css/global.css000066400000000000000000000056261207406311000234570ustar00rootroot00000000000000/* Resets defualt browser settings reset.css */ html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td { margin:0; padding:0; border:0; outline:0; font-weight:inherit; font-style:inherit; font-size:100%; font-family:inherit; vertical-align:baseline; } :focus { outline:0; } a:active { outline:none; } body { line-height:1; color:black; background:white; } ol,ul { list-style:none; } table { border-collapse:separate; border-spacing:0; } caption,th,td { text-align:left; font-weight:normal; } blockquote:before,blockquote:after,q:before,q:after { content:""; } blockquote,q { quotes:"" ""; } /* Page style */ body { font:normal 62.5%/1.5 Helvetica, Arial, sans-serif; letter-spacing:0; color:#434343; background:#efefef url(../img/background.png) repeat top center; padding:20px 0; position:relative; text-shadow:0 1px 0 rgba(255,255,255,.8); -webkit-font-smoothing: subpixel-antialiased; } #container { width:580px; padding:10px; margin:0 auto; position:relative; z-index:0; } #products_example { width:600px; height:282px; position:relative; } /* Slideshow */ #products { margin-left:26px; } /* Slides container Important: Set the width of your slides container Set to display none, prevents content flash */ #products .slides_container { width:366px; overflow:hidden; float:left; position:relative; border:1px solid #dfdfdf; display:none; } /* Each slide Important: Set the width of your slides If height not specified height will be set by the slide content Set to display block */ .slides_container a { width:366px; height:274px; display:block; } /* Next/prev buttons */ #products .next,#products .prev { position:absolute; top:127px; left:0; width:21px; height:0; padding-top:21px; overflow:hidden; display:block; z-index:101; } #products .prev { background:url(../img/arrow-prev.png); } #products .next { left:398px; background:url(../img/arrow-next.png); } /* Pagination */ #products .pagination { background:#dfdfdf; width:130px; padding:5px 5px; float:left; margin-left:30px; border-radius:5px; -webkit-border-radius:5px; -moz-border-radius:5px; } #products .pagination li { float:left; margin:2px 4px; list-style:none; } #products .pagination li a { display:block; width:55px; height:41px; margin:1px; float:left; background:#f9f9f9; } #products .pagination li.current a { border:1px solid #7f7f7f; margin:0; } /* Footer */ #footer { clear:both; text-align:center; width:580px; margin-top:9px; padding:4.5px 0 18px; border-top:1px solid #dfdfdf; } #footer p { margin:4.5px 0; font-size:1.0em; } /* Anchors */ a:link,a:visited { color:#599100; text-decoration:none; } a:hover,a:active { color:#599100; text-decoration:underline; }jquery-goodies-8/slides/examples/Product/img/000077500000000000000000000000001207406311000214605ustar00rootroot00000000000000jquery-goodies-8/slides/examples/Product/img/1144953-1-2x.jpg000066400000000000000000003020111207406311000234760ustar00rootroot00000000000000JFIFHHC       C " L !1"AQa2q#BR$3br%CS cs45&D-1!AQaq2" ?S)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@|$3¿d &g75ZmRr ˥`6hTHߐoD'A'J:ܬp/9jj"FFZ T-ۀT7,OiP"RQ)̠\>* jy œ_SYm)Js9?Sc>vȘ\VΣ| 9@WǘO^;f@?T}׏wgf=ޱ#e99T3<n-qBq(n<֫{J izNYϠE2I'zI!%|զ@xPSI%]a/rU6w5xnMƛ彉U._'S7z1+1qQ+`xG!ey}[.g'ͼR,i&f.(m9kwk%7Ve'R[#aqzyn(E @8=F=ihkh '28P?1y- g{X^m}L#죻jndѿJy$aļ#Yt_me [cNKÏҰ&e+g/< tc}Ib5E"eP=Ht{>hLvǥ^/KZʹ)SULOt.ӺH8,W'M6;=+IFt[=OkmWzjd֧E8-8暺4\_ʐ4z=7f 'mR{ lfcR Z_\%Y+N $6 Oc!d3S=e: ?4O+ٿ9fj[hI=qk8:͈?PΥcGiCleS@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@b]jvֹ\^CjW9GΥmo8USPzW-{p$gޢ~7Q8.Q!38RA=r?**x@I jxvcRGQ=QE&i1}w@ߒRG^OvY5ww\gBj~giQ 8kWR4c%Wc W=Z[owF!ٹBOsJt"fktb(~$!Ǣr7Gަ48ͮwRI=W1]i0M'ab9P`p*6vΚ[ƣ6uVͺS{QsV>ή֭ET3LY#;}n,@98 SS[$lMK%֊,6 ddjfk eF*Z=Z0(,'??MCC_A]޲ !㶙`= \=޾^XuEV򣿙 #_LXpT*jX^Eqsfg;%ԑ\he G'&ѯ.(%N{_c5 A#sfZ@x{zsКTzΏ!f |IYVѥA ؂KkTg_fBF|H2'1VˣkwF,b6!fBe]BUsx5A7}]ZE.\yR}9bt*7F8 _[hyy-o~Y9 ԅQՕb!-qg,`Ae|<9=,}6PkSKkZ"xBVrjލP½? vT۸3dpI k!fik-u|ʨQR+yl,^vX5~V8''T^-Śj\[ OpA2n{n5F|nN 8-֌7Nr8$|PϦlYh!VRXJw?F?$gm+핆emokmj,pŶ($Ul~czhe:|,6as@۶ _DJ{y_<. )Yb>]YMY[K+F2I! ԍb1ke[Vi;DpN{8+C{U! 4HUXvG};;o`k[6G("blc"iˆ6v>9еV?NF*f حylY32C~^I3[I6 fs3 ?:5,1콻C@Rvޡ5uMIrDy{vrujŀ1 䤒dxU8 .H5Q9H|5rO4wrV9$}?2k!Ynf,JUX ~p1گ ߚTM^ dYrNv"5Jf`|EnC;ˆ_.0Y[~7Bb*6 ˱x}-UUll.э{%ȉ2rp?|Ttց$-3]jRGmpL3`I=)XSc"\B劳 Sk' '=ZmnT,qʙݱ0${LZ+.Za$` boZ&m&6;V*Zq7*t.A1\ q{"dx #qsXUOq)Q(}ktn #l|`E16 FrGWm|PX\kApDmFRF2>#,8ap}Bi9n"+:g<:-!;-` 85b]z'"v b({XM^8Z䥣0%Ap }YA.bJV)Q8(\m!g?֡c. xl+܄\wܓX!mFp'ʙbzJNϧ,`aHYX | ?}uEVw'R#5 ob{E^if%b?;Zɩ,ؑ*!L檙8.dϱ[J=LU 2 L(Ą_/k>ے%h)L~y!wm8Giۯh. H$.巚;PZ-GsIu]s :Cs. odFlqW%~[{ZHObW;{8o[Oc EV( +c89w$Ms^HtUWTq.B{ 3tDS GG # 3yi"H4r- <~mW /Ʀ6J2vGn?<}^kg˶ӭ[>fa3_Zt+EɰHleܚtͻ:FfI/[$ m 6ρ\Bm#G:_fK=nmmF<#e+Վ d ס&Q!f}koKxhnrG;[mXXpIWRrjrOP(N3O0XnXYY88*Ǥ] zeē,r$ 㷷jg_}(լuHٝQV=#n%F~{]IԴnf?VLT[- p-$zUulfwXGl$Dd,iO-y]K{%̖RHYV`[Vg9KGm]#Ց8L' ʶ7v[y7F[ xBk %uٴ;F%P2p|kI./X^p$1ڣto"HK(/4ks0X=|gFVܢ$feQr ?|U*?̄d398BRac1*9?8Vs$1i52bF_Y2[8=6KS]a&,Y;!`SR[I`YwFS0x?**hϨa TF0r6αmtM&蠵ao4˸{VQhY:F{b'~~-`ƭnU=}̺01:خz3[_1B z!Zү#=FPJV5e8h5t{uWDZiL꒵ݻ^AaxGk{BN2i.< NstƗ4qJ!L܄lQrOolV3Ìҩ%T~jdBvz1z;>n7Fn0;FNv^{t(Ҩn=55uz!v)tA1rHOן'N=4HHHAzJf$ԭn  pR?ޱWOPb=qy[OxzKezS%,o YW[FStOu6ŖĹ?3 j8CVCab,9v* Խ HO|jj(qbLϸm0W,x9ۓ_4K[+P-=Ld c<{VKN%Y޷K +(qy'>ĕXlA`UcR2=9#.5{lE @F)=#yFK#̯90g?85|ZONm)5Iے޾WGރW$>Y7Sl"W9rzBHoK)<~IkyO iNy'T =?},I()UoNtcD"!1&ϽnI;K}'$3^"-,̀ VP@A'ڦ4巆]FRzFv8}wH"fTE*)bH8QU}w"̒B;{2=t 3ǍۼŊvss_mem[fo 3 J'jy{"m6mhu _183޴w>^Ȯʩ$dL$Iu X>I!ȝm-,HWMڻT(~fꖊ0 ^lzw3;T|ZMlws_hUғ aǗTyB8 ]/Ry<}?juUHvyITu2<}9qyq ۵r3֖r0AZ=_?q]jND,}Y:H9fre5/Z<~ uF֭|Cնm2}#uͶӺ=aXSu} py9dv_ߖi}e[hW=^xǧug #pYn(1ߵ.mqTIwDFNHk?X@? Hϵb?VE&vI:lNG,ȓ Hj??6iAw}olq\ur6Wưv 1iߺZD-~Be}ǧז$QDZޅ|ɗ8pA3pkI1W 9,~OmQl5-VO:Nc F}٫ms&R A[;Lh#m&֗'*ց4U^I+fl ?6r#xlZl٠F;6cr;eIQrqSwҭ\׵- QM6w"*#=Uk[Ogca Kj=U P`ǩ;#zIr3us) E6}[uOԒMr[_&kXfHÂB?u^Kΰ:wGx4{[[{D2('H\uVڑcWj뚗Uh>-yi9/*]Фn@8\GNY ,t+Z\2\Dq O Y? aSdu]^7=Iq~[X6Đ1mƤ4uE;k cXƗemcv&I P)PI5tuq6ҩ8xbXg*84Ԭӭ"W?Yem汊)}ANq~i^w+F\;cfkIpF@ē][M[FP]*gk4 a$g$rHxZkHlnՆ%ܰ2 $M{dRS{Aq']hw+o%I=WH=&ZDY"XYN@GOyM3lȍes ? II:˪tk[]gsZ,322X6*b\MZ_oYtOݢML1b 9W9PIr U^zQf,K]!&y:r#=99[GԚl=kNm $V]W;c8=ɣI4fF@ZgUuv:u̯!ԯ]<9r |辻LuGYi]!^xą X׆s9jvDKGlF~yc?+Jk^j--"+TnHG\LQ.g1?AQ?ڣ.՝jKԲqQO >'S6tl4qHs,~Y&Up%RqD'.c=='#/zӒ<{Р,1iκefi =~-:Mż@$v=+[ B0oIUž_z.B.hGѓ8RERzG%b[9_[]CǷjxch2aʏr"Ub*-0?ޱhʯ+R'Jm'i2meY260[8'_n5dI1\suEfwUs-_zW麾2/o$mf >UI"m C&BH7 9z=:.DӤEw卨Sm͈ lJк~M 㩬\gLġ_7y?mM VB#\N[ɢaX 7|cXY.&DӍ]6Z˱\Rn3[:J{K(c@ƻP/`+.s{tYHQfO԰wȋp Oc}5{$ޥWp@ #l,ڈ(mnDL`c'q8ǒK o-tgP\Oqel{{qY]cQx^{M[nn63vfǦqwr VI@\9qsTw5KcV=%w1\oV=ӿP2ޅs1IS'ii3K%0 ']fJA.w,c>#$E&U DBw~.:E*ʥ$`}tdbS6pX[FW'rj~`)sy}3$V#W֬d P =VUֻFn2 -[tkr=si PRXF${q_XV<6s&Z4%_p37p9.dFXiNP}Q6)^kw3Y:.ȓNqLVψ/FW]ͻSq<'܊9^Nr^ꙵ]^ A{"g#`ki]}[hvic}Ӵs0O hZ.\{cmyb9sw*Z2:S/-m,&uys-Uq[[!c Ң:nnac9q 1ȡWq5n/4kifnܨ?н{_ɩ?8dLE條#ێ?J 5-F˷i qO޹߉=v`QD18bNqtY?I&RU xp>%ռl IH.+q@rxq;TF8gi8/mhsD"{9JՇf=Fgb$O(vrN{Ik;PZDn2Ioa r@{qnëj7w.fXB'Oa/_./uiS(&6z˶q[Ƨf k<@#S{gsw7T»QWad#zs[Kjzzem7R$[yj8/w[yQ}ci?\=|yQ;SIǀ r~ wZkp(ÞQ|^6'VnI}G3+æj܇̾HQظvE ;>պh W$Q,be?l}\OHk{ 2{wK[>qqWǝ;v(Ҵq.ay]v ]6ޫn5˭R衒,2sm`e}@8u65nMG>!"I_r4IKpˁԚu6^FK<ɣh–a{ثn:Cn"&m9 2?ڠ.EuYW,܄! }_M2UYwWC;!?ְ:"y=u|C]e;?NC+l9#}* qk,IK#ٱz tB+ km~8}20ۆk^]I<>g0I6FI@`P;`8"^˂>Rz'Z>& A_옞3x/nm89fq:݉:>w`$qgL NhCp;!:02DW,T5CnK;KߏL$NGydG0|VuN[t7깬!\['CE5Wqn-߽C&-a>sYp벨bGgEߣ'OغXϷk&I|:eC)V$T}Ky,3Yrfʞ7lBSvص F0=#uQdl[EBT6UN80z-Q4yV$Ӣ h6< ~+W>=es8uuK.Դu-\80FC # drr}\.,͵[2TĀ2[}Ҹq sd@.K} #XTm6bc?B*tԯx47$Hу+؂;}> OBɣkmA:o|?uADt)ׄXC?aW2i"? U]o4()J)J)J)J)J|bb$jP=IwBA$n@~tڞ&.rX%2᪁)$y8N忟{ KXIY>֮ܞ^ xcі*_ʙ&'o{z^uܑ'7'Ge IJ\_ܽmUi=~VInQq%.;TrW]!4{ɾP;{(鮈$ڱIn=ȧlr;5s%$?Zivj URg aOnx⭉}z@sz$rՕv{G't[1⅕-G{(&7pʐJ# ~|Tg.sj6bծ|Ã`N~+kLo!wcsPZ-m oEY7kx HشR. OTyk0'g /=_Nx{Sqz.!҅ߑ^K&̫yܯqλ7Nx01EU$2<`w q:AӭҗWfݶd]^~[jpC`voDT]WQYPjn.Xv/O+ӏ'mVxoFmy] m`Tjik1 s]1矚v!VlRXg t~b# +E*[Jc8~5jUJp3Ϲg_nФ[Gp`hebc'pHgڞQ ݺzMFJCΛD*;y#sެ{ ]E-OrOWx$2dgRmkg[TLBA8caڰR-[S^3VH9縢'$Q$,viNj_-;{ϫkK;鞘/ncϟ9*wcaR2ZFr=PR I2OaǰIךV7/]XX$QEv3=l[r :_ARTgU mbN+yz8 U%)8Z6Yi'D9ٸrp P-[\hO8WV&FX4𨍛e\>)UaR4N|lWTNIMYmonů0Gzdoǧq뷷qXy%($ڞd3B{{aO'PL$lm\o!\FV$6t6tLֶ/fVyY$3/&HeF?diݬp]CcP lj#sp3L:]뮦4m>+Cst2Ҳ-.IpG|1ZC}3Ѱ<߼-/>k'Ia,_EX>w|gsMrnu4{F~{4|I}*iє_LXl m?LzV@FKId{@vrGY=FYu%dc7 9n ԷQ݈7hy`oQ/u$]EƒWt m#183ߐ{b'TA{Kd2sA~ƼWxzBw9dȕqjWVKsǓyR)kd$GQWjA\ }q$А7B$\ҬORia#-r~YpǾquvo{. y .3p޼ɦj"u;MjĎp>RY_\ӈJ0gO-kŭ8LfK@ 9"3:ckrXc ZBDH\յ7YZe{ܨL(洫d.cUH'n2~ @uAs*u#aOg5g&v:C4Jw;nKKhVxL{tUx!P6gڼt[~XRYX"F\F'F3ܑ^;Ea}k5:"G1=c=GiIe}3^3Qs ABA"6)<6})1(.w*g8j+W'ãz+:JKAIEM vGE]O!ׯ?lﰽZtll0z wg5?}፝ش?wi4>%`&VL %SּOO:[zfӓMw0%a>fH ϷjīѤEVchu,=gU=GtGMSDtK[BM+).9=n$]龞՚K} QK!$G@J$Ǖ/IyG5m/TB/"8#$݁8;N}"5%ixhV:fho&Bޱd$Tg#%"]U$Ӵ-!4]fw+moh&4,N wG#4;O(,ڛKmf[m;Xp)8$U7Gas E< ,R*xIGq=LOZӥ̞reGp[A]=jVGQQYwl^EUYH]qS[^Mkhlŝm Md\ ~lVy<n!Gk*; H$W܌/sQiw=Aw! wp,H+wKNz:fKY/;u26J8^Sw\|.(l'{Ȋ}Eŕݧ2g&HmrZ-ƛv O$=!{)Mu~#YL;qe{.C4Άhٛxf;S t"uE .eDx`{Դ{PXK!mF cx#kФ֋sdIl$yRx7wEo:N{_Au^-$H -&ٮz'dQ,,[GdyznUbWуF"h4^,y~a9ßudTA3oԌ)I8j`:~"kM g&$S\kH2U?c`X8NEbA AP9SFXpY[oҾK8o%cȪMǾxPo]} ~OJ.8aa8-VʆSQ2#TXF8*2; ^ CcT=|*1 *ip6YpyڭTG38T 2⊓icF@"*2nœ˒OlVǥsM IO0T{(15,jǼcj &;-yoÔzT*>WG9"S lTl:lit7v5LbQ"br?AAF[ǽHk F zK aan y3Bٱ;m?qS Vz̋SWw'Z\ھXZʠ0+v⅍+͐>:΃Rt۱\{֋oTrD@3b~l6:n/?\RVCsfVu!Rpp{u\{'X?Vg#7dur_nIKJ4άh4ɸ2ҽ?q;-NX\4r5i8V(OޥRM3R/quPW} Z=CLa& J5ۘ#@NZM^igm}~*kRJz~4wQi?0ņ 9a} +J[c`ޖUV|Cy+CU"X [v,#jCI]ݝ֙5e{RK1sAX.APd^mNK[}$q?>[1epjc[^h9ofpH{ڷgK kf~fm m6zVTE=qXIjW2J+@tέnmŕme&IpNN&g]v% -Jne`0sXuIoz\-4ոD ;pCdm?V:[Th:-ܢT+u#`4~jHKVk崌s[Z6@30\}8iP^k-nHGy5k\@,lADPA.@5>dlj;2X,џ(vLeչ1t\<ǰ:m8D:$x\،؝W:LIűbe#b9W|sRĎM ]`+w5m iA|ȾRT2r@sVZ^޽ wr[ G$EY,郞n<[>=;oV{ ]G.& Tv.n  )$@AϊrSBʾ`;ٽ)܁Z*a|}{NBO?zWor"YJ*q)9Pn+ʽ7s_P-f)| = ڬ۟oֻ#FW{n`_ (SN1^Yx5[mRZD%DweF@\޸\tn0mIMD6p1PdRZg{ƹtC[#Հ# qҢOէakŴ J}ӁROGo?-NhMħ 줏as+lMFX{1 ]w`r?co5}oT>-!۽ a?9 ͯDEaoZ{n˜(E{s['aYmC"FN+iN܀8'HV!3NTz e< =MEXdqOҝt6k%]VH提cVϤgz^2]uR$vm}[Pe71XB(@YӀOںȆO7Ciԅm,#v9Y\Q↝iGt'#r"[(]K)`ָMj6=3wW麯H=Zkkn3}0V[ֲWQqi 1cfI~ʐI+xU^/jzf k5,k\<Հ$<zg:F$ye8VT9jiiB(NmF X@l{֫ƟՆ[kI (fLY{s 4! [X|}sofãt9ul-XW>#Nm"˫9'&U`G? ;QEOԡ%-n`o7ʗ;`2[ckW[mF3qi?_cACi#`fMQK6$/tٜIo+`dEl _cMk!n\F4*}KYrr{ո#o,$nD )l1TLZ mRwo%3 ̇r.nL szN{θ'fGIfę͐PH $=sHgoc^6^fYҎQ/<=+T"It 8^R\޳G?pc*%Ì} >^h}qLuV5Yu֕Uʞd)0؇<8z$:m W[B˩,.0iz[G 3DWkȊbK (5%mtES=Ait3hpJM"U0+qcvV=k2'Nnysi 7}5M1-п_#h'6:[\]lVebJ7Q qEmOzޥ *ir-V DU1ZBzeXN1&6I7_ޙA ˷y'!Hb6G ,0;c ̛g6tm:]{a+B M, r`*J'f:N }^C鋨= v/dIϤ⵨ntfMZKz b$NLpˈ3[\MmԬ,-t{_ڊuPIO5rr߿GSm f*nϛrOEbfF(ʮ72*='?k9,sWϬpa1Qc"{WBH qQYj台g_L6#`~4^Ü;_@UMFA1%` ҖQ'gڬgBOY䙇о(MD?֨yse.[5mOL'?޾APmyL&j*k+|[icp*DP4U#( YXϫ?l铹coz>[2pxRSRIj Is ,8U"J6}ս۹T$}?cA[H lcΨăy 9ajAO.do[׸4MdGl?Xߡc;=Q kGՖAy튙ډ{w]IX7mmxˁ{=QqGPRv[>FbO,d~_j:8njrP<8lޥkMu}Osk< 9`8u'^[=q`z85;m {+v|:T ?޷m/]iV4WYb?5J8Izsm<-o$I3O㷡DY#``r[U)J)J[mv?\4vX~  ItWg!$ﯭ:S>Mo4PO9Usu ~&Ds~or<S6{}j#YkFpGe\cX 37' w Ǿ[m3]F?S?Zܱ#^0*|8(Oz–|UO)ްwD}\V#5K?j13U y} U$qݪ33U懶M8_saڱ_[țO#D2./0"/ 0 j W鎢w14sQGʅ3VˍloJ*29R*2y\ӬSQʳ@YeRʎվnh5WQ-!u ]Q`c|e wEjKPkNMRiߛ41I1g>wvA ^ui- @ʑ,E^W1MΡumB3zmS1,efPi܀]fD&kԠ6uaGveG3#5:sC-ݹ/;6Gn݇,eo=:u׶ֹqGX(~&KOq꓉U!̊2v88Vzhֺs$Zrdfu;`B OMu4h5 8L#zZY$#eklZhO/ :U`[q9j= 3Ӻ wT,T8>XȮwtn^5y.ି .De8Sy׌u1SU_$.“br~nh~mY仄(rF ս>գWXݑ&7`eS0s3ۿhMR,%J1 0!8znъ2HC] }ԓ"I+{hmdhT3I6I 䐘c7*̯-J ;O;}Y5#ǹ|۰cpnS^XXV!ͣ" F0#zSt}@$dmr'],gz7Xj,$, }Փ=ӽ :&o b,S&[O}8jv!$2ÎVY<{G~8jܲIJ!O$pFʚώ},R[[Upy|RGlVm e[{M6 D"6n~˺Rm3BIqu# ۥb0탁&G-Tk, Ψ ʹ5}~[$ ̈́]ެF_Mipݣ\^5ўVnqHOO+r/!ӴmgPOn[mYNGer[Ь4l-+IeIFv8`x!K]2HeĶӾ%X1}'q>4xMC&[E%{!`a>p%*yW5j73ى-FaPcڹ'e>ΤGVďup\0NO5ӣp%[2,s+"/哾G5oxfIe\y j?2@g Q檻(22DػrOTQBq3y1]$ >7p8z:z^CP$kxZϮR9dG"k2;*OHֵ]&6ˉg_-nd#͎E!@ѐVEpYA3i1Z[{'?Tht]퐲Sqb GUf/Mzkv5ձb nU,IWRou5B ul+ݞGsQ}=eQh73%}FXE>byeaJ=%7嵆W=SyWmP0_>IQ6 ]&U쮮du""Wtyڮsʓ=5m:R[XmJ`w1dȨ ;` +}SR]Ao u%L*h. ;~+T^IM:2P901ܩ#zF}E7RkN;_҈P3EBQ~UI9{I$"V1$|s`܆*r +CLC̱6b6ҧwq㲌.ԴE%34#|Mr۹&[ozċY`d<|֭q~KWh$(X(lcu =r8bt{9䵙WdB8\>9]K`W[ƻ!RL|7Q~ӷ7zP=|[6x \ Ge#n¡eA$֭]H?uͶͧXL HW U^3؋uVV^ A I#?9I. F2I;IA`85l_[-5}n!DqX?-Ri捓LH|w]di?֮i U;}I{'acN$qX7zރequ\iQ 7g'  hFѽ?w=#Ζҳ,<$ZkXh ӷz2$iGDdHрTsiM̎cܬvWvHtv'R.c6 ']] _7*n¢}L:_\=P[_ZXdV`$x3LIT>}בu3m1қs &USTJ\mΟ,z[5b60x|0abHw&lɯ^YФ#. j?|eFU$TC+oek%4jnNJ;1@PG'8NĻ K BiKki)1ʛ[v8NmuDeO$*q qXX8IKsU+Gl*՜P.-L,a?UUXX;*3 SE@ﵤ^Uh=c41T&>pdybBh՛yͅ'mRd}6Jir Qq'a1'8wUbޜr@RπQ<p!f0,Az]T#3_ 41Aq<_OQVϒ5D{)oj̓FypqB/g w?5I%QskmRz0lS TU~b$7U>c zߞk-pMRX NN8#z} mU.`H1@mwG>¨fd~y|$v5h z]KddjIPnRFx.t 1V^E89l'Շ`eq2 ?87G5os&2Oնm  9 ?k'tW1Q"qQʒ#+S 4ntCX;q?#_-uY`o.\9I`6=`qـu1#i>j^c#8퟽hCu`o=FWfDm}q̑7뀵4܃IZzG㾒5ck*r3{RթI&9c`O|cն#*Xo˃T?.+999l{޾0 Rs>kG5@@ (0J+b _fl~,r,HC0կB\i8^%W.itЁI$v,QT n TlU!Qv^0JJ%֍p/*Xgk9.AIƱW[mk"*H^30…JVMé臡b-m1.b 4E7H%Bg⩾}FXln㋡/[+3K01efчg;Aq hk dvi P2͏Uvg~ZMΝ6w}r޶-L]!^",ntᵷ2dv 7Io[%`Wzx[9|Vި nTbm>imd"*;N0FHFT[Bk--BL#/ 6t^l6 D5ޥ:I13'p;.r2O\w֮/RO+^TUe+h9ϻk:N VQ#2 &{{9ti׍}8N݀Ol=v)qN"@pf<+3T-kq!pURV!p̓j #z-s98Mkĉ#CobY ?d<+8A^L*\ fg'jҧA];FK}J#ɃM;vȌ(3޹MӛT+<$ywɷ!dzw= EJnCYc #wGp -S CVquo}NbU[!zmOcF]qSے1\q!dLaG۝=utK]ԺR kL֚@"8hLsX:9Q.:old!Vu0NrMwz˫^!^B^cHw6AmqM<.w_4P"3``@Vїz/VYm.KuVV@6;`9lw%}F)(Qs0W^q'|1 RUO$xP"?Yk3utymm⑞4VYApP*COq]fM9?kw|#1\M?zխ2EPI03cWoi= ='E.4VUP<8%?zHbyj9م%[$7yY}*ݳni^w3"J#Xu;w?seWlwR# [ 9xc+ZΛΌNX5K2u#dJn&gV>u$=iӏQY:{U-7O{BVy5d!2257iz4vz֫ajzԑP$;bFIP(ztݾk=Iq! p=r1-+-j:ڤKIbfBaue[1kCZ\M$6Q3h\.S 8ޚ*eW4WP%qpeWrdX%ҢsjVvRTRPdh +#ԝC=ͤrxAWCYZB;y4Du7Ow.֚%jlVyѥ۪F|/$ou&{U`8aW.3p 1Az#3HT# ) T.Wk.~p3Y1A>CA Ҭ2g dc5;#)'c*] ë=)ik){P~J8= nZNrö.$$!,Giw7OGi3sBe$Bu)ʃ Vh 2gC,O[iɲ ms=3Qգ%:FTr=5tko}h]7sպVqkxL9elb#x…85~kx%İE dxcwWPȹ3=:_Nk$vI;FIέ2# 2r`ϗ惯xhjQMH6 ʝƻ-%zImfs/QʂB r/n휎kś˩!eQu(v3?һ\FOU^f.e< os+n]*_D;98^iVFvw6:x J[*gGO,?ϊ- bT(<ψ>!uD6~4A!}&="U'>q*}M FP_K,9eےcWtb#-Z(F <tZue=1yk>K=B|0 0a{j:MZkYmMm5Uɝ)nszOn:_XɧD'fnU O9G_=y9򤲘z_,>L[8mGڰB>$JڧS֑rƹek"LRJ~㸨[z;I`׭2F$7`uIEӽslV8n[? +So+tmH !߀zޔ[>(.AȨ:SHnyHǀk ,Ek({`c.xթ+h:yai9W $ݛS_{Wqm %ϑge=nsb*>c?ι8O*~Iw[x?mH9#V-=#LP[}[O//QkK,"II3*^OWO9d/~/>|&I6} ֳ},7'!}jyVȁFsD8zUa**ނ!M+m=yt+p=ӻ ̛sި2^wj6 `sTb+g {`՘ rv~j9q xHE'F3 ߎ0kkfyN}'*>*w w}ǤGz (/gl*ց< D$FL>iXz_u3{v&;]\H KH{?6oxWnfg|z,/ NY➙u.W]l29 >? Fv\1[Wy~gfcݷ99,.$ xp>O9>?aO ?+͕Eatͤ{mR35! d{f3r;Us8ћި$8tO>PO'}V9={AQ's\r9=&V 50sB d?N**8r?^mȩ*fO(ov9iu;}j-zM" ,d'kWf*#&RjiѨ-)l`aHMG,yA8;/^Oxv4CQ(# *]NYdmd( $sT<jܑkEH ecSqڡtkqj1"n2Xp2䟏~Y^SqG>_kndrxW1V$|v6ȻTI#5` 5v3^2[D$eVenahҬH-PbfL0vG`d1ǰ`g[C$OlF'`gpQWX^kwuk*O3"g+*=}#YOQ*oi`rN}}ɢxchmоcdQOgЉ">Re1$ HlnI/0Ouoo%Ū(3Iq3dF͸gp;֝c捬uk>KX0e,o1N6OY,\Ɗ'Fuk1x%9H.}s 95'gkZWOjwƷA&X$~r ɿp[dB@2GnV\[Flϕ#`d29$*Sk SS:ԮR5a\ "B+[CxVmM{so%2:ɰP3 8QC ds'[ҵ1,dSV.̞`q/8 >OtQma^Go4@*Mޑ 9Nq QGz 4ԏ fR" ަ>kT=h-=E<}Csۊ%DQp[].pnr8Q9oDjmt󣶴Ys1?`]Y#FCIS8wG$H ldEk$[H\C01ee`n M;cڄ\zl0Pݏְ\:+=tϬյMZ9>}pC, s:ZfaH(fMؖuuMqtwNml73KE5[/&'*n6 pJmtT+zr%Btmq Mvaӿ,zN弿3+efĄ!3[-L˜nW>Rr~洔MXt5˛1s#Ք)bWy%[qmCj+-Ȟ(xxc}VbY $ή)d܊(RhLK!8'PA'8,0RRݡxJ8 r>?t}.Q%kyy$w cVy (愂 A6l|E0co<[1r?Zn\BI$pNwx8ǽOD|F+ `@*$jhZL;Xno=.{K0)b٭xzBϤq&u!]H4-9c`7D`A~е~4+1>|]̀d cq5M]2sq%Ѭ@ܯ3/#8'f6}2 'PR{ymBK,9np+2(~NGe֣dI6$y-΍ݟPݑX:,v1_@ťsk,Z<6GOkDѣѓW}M^,w\;)#9R&mt!`vYD D;Jn_nGSRQdl0:]Olg5u k}^){J96X2\T djhWWڎb4On8z'ۖϪmuoWР˄?#ȡH7#&wqx]&F񘬫`8 XAIWSI4kcOAOEylC>BesqwlZzot"FT IsVy/aam5utHJo(|D~Hv yY8ly&5C 8ÇGH}8|]q./Ruwcp@1Xaq 3`G5m2zG^{V?# Qgۿ5hg9?nQlRw`io . ].lyP ` ppWX,AX{zy=:Ժh(Iڥ{Ul}];eSnpBo%>$Fǧ:~YTծm;4=}אa&*̲)#$cW.1O-M%D5RTU*ߜY}^_+0}.2.@M$%e.ѵXn >{ q$s瑒N>qm/> G6zaz,ed$y {}IuAu~tV]5KbU(31m+׷sO-E1ɇRD2r8ɇDѼkH07(!' ykq}NOnnu3OO)d!!aʏ| ω:>tΫg,yV̀C f!$H`JԴ,7ꨊ̍( ۵0ݘߎd[̲ئ3Lr~M@L_y|?EEq*oI,#D tO( r\62L kxm6OvcbkNG- ?j 0#\a}Gퟩ_7!~_?sۭ;`;8jɁ8nEt 0(d C^i (`+ۘGQ qXI,r~;T=͙LECmsǠ~j3#-e\B &TgR9Yi8m{5KHoY`z ̌['Cgb|3TY$w9⛰@Fcj|n vʙ9j<T ڨvϷ4_+6V)`Id2X5U0w+AcN|ww q\vagw7h0MtY_i]si$G2!ThZ.sߥݬ!Ȯฆ+ۇHHVCe#aO 'Yt}Qe kjL]}~[sT679q5% ֿJ O"ʪg_G:J~&-y%nhǁ_ɐ{Wd:kōc&og0'ag}*Nz+q}=ŹKA5+lF^H#?`zVx;'^#^$)aT^$I5Υk cl77鳍'0M4G,?үr{fok6o",81< ˚HQ_31cި<Z#^yQ{ߌ;|3ؑ=bUϣ^檩8IߵRv-UN6PP3xUh[r95AAb[1ZY6Usk=ƞՕ5ΑmybIut_9#tǩ-ņaًIntX>Nytywnyec#Y|,1cx̺]}.G']jٯgmz=ܳL,Iv9XqsM&iN]A[W^B)YCrbkDZ^!dD̞/A&>CFo?=_JH+#D RAs 9vTO xZ{#!c0lg\O5K.kՖoDQ+ ;bx-՚F5{}\6Nj::˪IpRXćkT) v*s=@o/$٫$r }|E:70^|Xܫw*F+}ud/;DZRUٌ`{tK|O$s3cqd~e-gKǕ U[V5v LFv\6ǰ;9:m,`Y>MO[1:ƧiJcYE~ [4޻9=k]WwUi ѼmR#d@d^ٞ >.z%S^Iu{r7q/ʙ%\ &eNybY8xY.'K`iއi, 86[ 2=5}F1|͡d e *OF[X#JՖI.ľ3P]`O%O≵ڔwqZ-'ϿnKq'{[nR$ 刓RnmۊW0$uyPZj`aAwcWUޏ/$q1 /vE;/hvbWoVqGcl/MON2_$yvPFPa[y&T $&Dx$-#85^+w+uITd#Vps aMou.nŒ8ogߊҒ꺦e0[lFzn0e@UXwv v02+g;MF^wH6a̓s=jv.o%K&ү5Kd7~Z$݃ك=t֧uҭ^h]9o&ghڌN'ڣO>}s[WN ,rᐠ\ry#.WlQ29JD* @>+?G+fĂM}L 8c:)unwA#c8q,RD|FcvW>#* #ˆX0囎}5r~Nb@>/oNOf>?'Y,#p<`<ɮybk1[CT qϾMo0X!ɍINv[ U+Oꎦ-J9u85&+Xvc R قxz[LкCNGU$H`fV%6m$HP;֩$6]gn&2 6Plɦiz.jE 5K1 Ry) v5dPNm9`(L,6Id|+ _s,=+-6rpjsJ ≯RAFҹJ(Wvݸ}|S$TS&YAqK}/m`59Ds!5UӁպX-6K'M縖R"(s}ú^LdbEs#<~=^{(7qL8>c8':Z5-'x[煿 kvzi>_;]xH v2ۓ3 0?z +w"'Hr+Aug[Gci3]{xn]nY/u2}a- J+PrT>j7lOjl4 }~Tr+Sn;(ʲZKs($@NJgW 6#Py>{LD\д-G <>?qrM}W[--[|e~g⻯ʭA=߸bR[\?(<7H. =151m\t{Ts_TV2?@~K #BO?Ҩ[4O !sR=$V|I˯ !Pt;Njfu ˭%lI%W^(L4 |#XšTfl#W᝾8~7V'[hz@D"g81rI$KF#XqRZzzStۍg5]&X~E&ԗZ#{{=ro\ܹr.^nwZ\X;* Eo fjHGaԴAEk,V:1 T$"?1޼_:viZf?(Z>o*<eӯH`5 l|W5 (G$ W[ю\zbqoV{n]-Ih-R$#8?30R{wo4ngNϵeV] [ޡFOUAAP /sl7~ܝU>s1SEY*=ɪwp>s_)MU{A~\ ɶnrI'5B=eZd/z8`{G# *QR {>p;?}B4GQ&w v31hذ,⩎1ⰺeiHǨJ4hgXVF3V%0ɫǴl׷RwZk=q 0|J!RШ9l~+_4I6c1̛Wi&q *^Ѡz:{OJ4Sr?ݧΚ t4 ysmay(PUc =@,D܅ 3ŧYRCfb:@BPgj!I6~s}81TSHQԦ %Nt_=Ɍ._aJcҖGߗܾ{"=ʊiwzB0OYc0 {~U$tln$Y'd 0R ?as\ng-PG}-a<@rx>?3]BFyWV($rI%Wsxsg؄̐]ܙ# />v$R-Z.n0LPr%A-$}*R-B X9 3yW5I N2kX}8(Oo↵qoED= |8\?!]Ӡݵ^ѵ+1(S6[ᜐ{`G߃\o,C'XcKwX؟`oַOX:MIjk!" W?dd+SVt6L>;PǗU ;FMhuxyqȻ\03N+T`bc-36YFzYHaҝcudK0p۴ 3ϧ98od.D nq `5jާ}kN溻%Î1?z%Mf Qqx`Wr6e\ݤKu!u-Bh"ʮ rIƒP諣c՚u:Oߛu9TL'|v%+bfK}6xp^LЯ.d;ZA l{WLgg&_tR<*ss9I2ǹy B&=ZD^!@.Cy ㏑VᵷNDAi qkWPf خ[?5L ,c G#X ow'D!6m)\~#=[W=MiFv@8Ek0b_VR I# ޷纺KCty؀FapVAb>حOt=ztu,eh/g$kpXı1WVgH W"on*HHa۰y-i${Y݌"FW!,"_Pw>sjiEI\F7|@cڞ)X]fu܊0UH`rn kqkvjjڌf!6xUvQKz^\jZ:J K!~v|%2 ;WJ^뛭Agr/?@E,2x'5YK oҩq{k7wPBO&L  `ڶd6ϪA--iXy\4JJ*)3idvfKH ֬4dZ8%#tO搜D'x.]/h uj^gҘNSjp}2)s}{Fȡ|v>8O7GwwwdH/ݹت!'(̆hiIMsh2$o gިN5$X5FGHɬM9-}5 mqŹ-&2'[=ԓ#|3Wh۽!G|F ,:Z}Q֠!`dFҴbHO{O a1hօ Z7 1em=YYuD.ݵa`0UQǂ$* n5MHc?#SΛ^%ƭysgtT 01?u;1VIsI[6u[ W—.FUù5Mm+9qEs3C}5e>pGV-/Ios(oFR?okϨmZ@rck6XW6ck3%sGy7,Ŗ8O?l2 t_l5ˎY㶳88W?.g ikjHטv`g` %jt4d],u-B lu 1J0Pw T~, dԆkjH h%نd,,CC-6VCjxP0Whc\A5^]A%mjmM3&m#]3n=֩yseGʺHf .UpG=r#j k}=&6*v {'xᦇ[ui.xm!bgێ=ZThHF]&w5Rƫo H?b+?3<=CkqiZJ'mbq,.둎k_RO㖤-.gm_T  c 9{}57 yg=v0x=ΡֺjK5#Z ?هKе^547Q[}h*<`*RۥdKo`fI L^pIѹzs[O|X錶yԶ˪LHbY,ooxj.~718?ʦX1o8\ڣ0Җ6|yg^N1|WGu/i%vJs?[?gޖh P\C'^VyA g?Ei(HQ^Br>ޓ=x|LҴ{K@];w8Uz#/]uZX30]qm?/K^n}ŕ;Ǎ9$:gYhY'K[. *9i{nܚOߝ74fpgw .pOǵduOZzCFi /a~]ZXWq$hJ2 3*08 Mt=sGOiAbF#˅51˧5JWdlRc+~+OS7\:HVbgڰn::G@gAǨ 9-unʿʼnYxQnRbvT?+ckSvy*ͅi\0Ki7+Y]}m"m@J4EYpWEЭF?i]3&eG8?t}2ˌ&2}m}#9+Fv+cfwV[Q~+WmOԆV5_> tKzF[bF@O+lP 9DH= vvQQu]PDd ;%|l(?v7~yo[ejfdXLa)|m#\΄9 `~{^<ҵ褸ROsѱxxϻ+j6t悚vx=O?(2NG5oM:3ptַRHQՈ́ceiI#:jH[!|gp?ް*)p6"Go>AqW#-f2*IcuRO}"z)D˭&{vKg%9\*SċjWt F$Y<#H(`roy(5 ttug55?RtA_ĉ{1P oVwAO.?bDVU²XCh3Vϣܪ}&\\㰾 Uy`#;GoSMh";K>koqˣ xPXVnMޙ@Ӣ2.rr '!;i9($Kuyi=oqj`aA>; n 9QqRiL׶]ՕͽfEcw%s9#iPtwZZ,0Y\e%ǤN3VzI/iDk$lU4ηVv"WJ%'TMYu5, $$Wk>ێp$ $p&mȠX.y$`9 * gq*m7RK+C`2#k)i<]@w'*1HYt*ἁ  $Db1:uZI}Αq}kcTy -*nrW~<x[xE9VXX@lk:MOn^?RNᐁ?=qQ#J:k2Ay< Tl/ʽnz>:}\Iyiu#D]URqԦ7Hr*S%FZo";4OPb뮵 ?xZvj7 #$Aݟׇrs]yL'{ IU6ib@wADt^e$}+Hך.H8)_:jwwIy<#\ %@R1֭XX$gil]̪p3۲aRTsU+r4~d4l!Z4E#,|b;#ީ.yÐ;`\$+*"SF%N7 5k :YR@qW=y51J5kkPƯb K#=v.eTKXē9L#c rv5?hmCJ龤m{ytw aC$F}'#ki}c- G՗ַZsK tw4!n:!gcusYI4gB`!s}XݿGZIj]ܕ8}o6Ҫ[ueꈑ;z*䁌k[6$O-~KYD18yfX][]^-fec \m?aF#Ϡ[G&o=֨u|p'n\6ZG9NΠ ϸ¡gfF̩"28gK=͔ęYsBa dGqmLh[bb`T( x䜚pvZjֲG1 /VUB\>jEmąV%;wH':X{>"9DУ" 0AA{+L }7L(#*`C<Zkkug=i S9Q=[I]KÄf[Y-U>Է ޳ɩgMzMExPis,o}Hθ^?=OL1MA#d I;ձH8Pg|W1l{U b3+ Uq9U \ T4Y32jX TG42sOT V#8X&bԮ~3Ib!`Jxgt&O-I rQeBypI͎?Smo&ZAmsDX;5Jܱ(.-Gn4gOKȫ);N"}9SQ7MMs.md$(qU"6swjEۤh.t=3}cOc8皗#ZK罽[$2,+2@e (Ȯx:oz^%&L8iHcϰ:jjR\Z_[\POzZ?Fjpz:Y:llƒ'I峑V>Rt%@/5d,PpFՔ|uN Kz_GGr+2IzA{Xǩ~: B&H-\. )1[ޭ亄ïSW {dBx8hZ^j:h#h,0cNI%GlWL6fGhIަr_n?ZGxըI%̶@Y 0'#?ߊMԝQtߕ6$T,BIĚY]s0EֶrĶ{xV,Y؞x5辭@Yj_[NЗqO4IvVgk^Eε%LҒ[zc{?-E [D2KM,%Lxb=CqoY#[ >׸t-sx1kKXʬbg#4סM*Dn#rFL]7ma _U=Ō}QOĕӿi/ fooM>=GK LJ~O5㮇^ ~HF tcB>|T ś>c]ƌ\0c$69#xK6I%M>`Hɋoǟq[u^]n^f"{`=׶uWz'F[:S$pfwT-]WmA='l{'ޟzto S:~CwvE;H&ȵiǥk(IDh3BTmyf)rN>@5 <ٟJ}-Z7-3bcTh2a#$Qr~Y]NGm"/1_of𮝥̆=*!ޏYtek=xH|Wn46#z|V.X10GM,ަ.^YcR1ܓP7vwm=1B( ZTeOKi@+ue,Hۻrp0ޢio,g0(+7}%q5J7qD :IBW,~bIjύ1"/zWAV'a8U۷9(3qF|H 9T@8P$VsɚuP~$cmkY:?XYbomfY98rN4=6@ 1_x;;L~k3>Ӵ}D4`/{WAӴԀ ENطTp?[  ς>8jG~*{Lf*6 +Vf^9޺KEyc&5#j?QPO L/NtqlmM#/M9YɅ)J4p73sMrѺp0GcEM\gX|`761t@s"cy?^-䷗")Uxr>ysN\J=Oϡu]#Q| enEN<mėIkv.2GUMs9YA\[܍V6ke,j3{}*`0+/lvt>v[#ڳf9N8mo̳F-V#a3F<_)i^$J >]H[M:K{9pM(#}0B){l:4fd"TBYTmwI@ MP(Ӯ%Slpq^^_= xrBW=yY^զ(M$j1#/zwawsP/{{yaF#qkxvZ%fK #L`d\g{CnXӚ mr绎;#`~HFc.opYZ(2gQž6q|pbݐlQSk`` q++KQw KqO_W/珷eKrhnod+*INN3#5ɖ׺/bFy`%;1ڸ]kw:ޝeii$ ]A%=J0y鯣ƕ]-sr6!b{7w{-cLp995=BzgKx;/f{Fy-=<n&-ޓ "-RTqfsoik,oi7*(`u+tn5;xu0\+"'q 9]A,ZM\i]i7RU>^s˰>k]R:xk+;v?#…{G%w6=hcAnfUVosʩE5AtҬ?xZ3C#F#I> YzK~ZӬHLm\ȃk#>n5jʥ$H(J\矏:n+.q$2.$MA ~UFgJ DzjT&~ceeq?zto9eѣ,(HW9$2AbA0?3DO1hWƚϨpѼ*p.J85ѴC4^m[Qss\v53@l{֭}F>6f6o|/gR}KԬziVXuOpU;r6{ʻ˱+FG2iI4۫nYdP0O HF=5YQ֑Mae}3Mr'Y Yz?MM6 Nd#9zM&hn ǰ 0=jr%m}'<Z4G ^Kgݕ  i#GIJN,6S1Ȋv^NlkI{.8& q2?|V} If6>Lgd*"_eR%a20X@s4wyakqi2yYI. Hɭn#A$RJZGd x$aGڥ5kX5tngUxfݹ9܅AZq򆁩ŦZVM6H24h 클s[֗kvawkTWdDÿ2b;hVڏTtKbxY7YH]?ߤ5}'^껭J=B;tw*I@D{xw.]asyXǨA岼q%w1[CO_m2kUInL1B4۟|;5E=P6ڠ]dvF؀lML˦itͧO̲IP207qj'tحmzVnFi;'.QZw 3ɬ}:x #/Ҡ[;kzv013DsʖR:@R$ԖY\ N|'lcn͹P`܀tC.$Ӭ[Cd$p\' VӖC֝Cp>\޽vlY \ J 淫.:RIk"m;A˰I R#W?Nԭe4 (qo$\[͍ȕgƕ=$w_Hcq l7pB \_nhu؞ n-% F`[BHXUrr}Vݏ21>=vLӬ@8Sr=*2*w%|՗8+ P׿ Qs1 U!H=/#*vͭAfҁ!a+{R'[jz2~"F$啚+,|nAQkRF u;6skiq1Hϱ*O~7:zOTuCYi:3IJP1 'b{{~U>xx:J]jE6FP.Ѣ K1c~IWܐ7sS2.z9}zy,5u[IJʁ[1pOj)43۷qD|}U Y<=cVcc.HcanΙZΣӺYQJcsVA+HB`zGΎ1$W6'–28ھoD3\c<ҫt{OLލJBݷgCAH^o<3-8V|9RWYO}\ڨ ! 2rX1 % )$FyĒzְeq8b8ˈUڃjhJG1 c8[PT.8準LŻj5r#Er]؜zG0p1oZơOt֋$_~Ut୻ wB-?۵~ PU|r+^IbO1YcO߷(zq`Usn,[oVMnYn8iLr=@$9fP*AoU&| b,8jVr#o95-m.gPS4Jn - pk5}ddyDf>Oy'Ft/N[h68fAyq,~^|Y#`8iJR {g JU闒G"xe~WvifnQCG5uNuݼe2'=ZSL2vBha_ڵ˞#xylno!-er>=\mၾWx}{שzwM mSSLF㇉*_}nh'A;|>Ή RW?J5n#wg_'&_ˋh4E°"|IѮz#MFP2GfdDAۯ6vf%-`6Đ[nPV~1jIP[;\HVg%yLb{M,mR_&ԑa!Vh/!%r@ZP9zsCcCXFN@[!H^2s*xtV-.4Ҵ߼m! &9ž_]SӵSq#Mq]-Mu}?c_QoWz3^,۪K2LPҬկahb˷~+w03U%q+!0>*\ٯ얽gI3V촼VkRId!#wjڭ{XI]BD8aĠ Ǯ:k[;y!,"UHX71<(, \:(6d\`s^;zi]koӗ=i>V(`ې{k.Z!EYg%g]Ǖ=UD{-cn-p 2Bp>Ƹ9r.kZ}MGp!d#凈Eq$}2Ʈ‘v9 cJִ[hQ8,T{ĺNTnQ4K$wQ\"|9:PZXF7ַI+;Yx-&NN ε;ΐ 25+ Mѐpߨ ֮"F"5},q ˭~YtݭeWW_Cq?*4Ve-W5w뢵ϧt7 izF˹7md# I]Et9\DЮH$W?١S1hw6+ 7&??: wo#S)d=ExGbۤA/Ymp<OF??tQbX=c"<Lҝ} ڈkH]!{!`闶GCmsykIvXP#}p3]g4Yams$'dĂ9U;5Q 1䝘#>ӍN^nncFsֵ+_ZV@j/Шd% UFN3WH֮#.͝ůw•ZJWK+=?9dSpL',wEmgqjʀ5utD6v7{TH #:Ƿڀ3%ۮM@/KuC(dP aW8Q[}ŽU^_ ye3K4~dr I}whմ6_d 猖]_Hn2{Rl/HeI۸t 9onՃnYB1QA۽b:Mkeګi͕ØGh{9*CGNfIviT s9M>~z.o[VM\HRHx`TA *ImC Zq H36/qxX(Q! s*e,^L ߚSPഊ2]]&3`9*6N8Kvsd=${#}{Sp`2$+'VH_|n 殗/tYV's8 o|-3ib|Q+$;ID"p\pI h2;v#tKyl$R'6>VC~5mGeOjYӣ_{ysEյps60MeQXu>ogug̶*N;;ޥo߉=IhP^]jebnTAos*9`x݌=eҵuӏM^C7QHv%ܷ2Bw(;#sTmJ}kAgyɧ=F{{x,@e ⥠ѯ|<ӭn.5WU`jM#wDmK25Ӆ19 ^h:~TMAu{Ia3hF#vYryKޝ4Ja))+D{z-lt[enꤴb<ѵ RP$b\*ĮGxޏj3iZzܳiNK_|j E-Ppy`[I5IX?ϊfgE9yZ$<1ʤ2 q9Qg`2W_v\EQTD,g6$$%6/'ݍ>;lͶu.\ǷR>9}W NRl?jLl$`B#0{a .s" `ZD2GF2?>ݪkr;nYN{8zwVue􅈒9΂Ey-fb$Bj rmI#ꢫ1P&`Č#ު]AKLP|$^H*?ڭ*14cs3̪N8 psW#L--*Ȉ39_fCyo$,{ VT$2K sۏoUc*t3M r<23BO!UnQĿaoeg'΃rRn L N|S0IIH AE?Fqn7('( 7 ̓[BtaQ,dq{=8 ]lskY #\c Fe#Ƒd9xNᇕ|.p824m3w/v5̃jG1UݵT߿#ERCyʵMJvGc ޺ŋ!lsZr}Z7kzvN;\W8ٷzlq8b 6?sGPMKTЭGAf;";gx$qv„)?5!Y%f9' ~ՍME逝3Ί0>+:;r;oz&AȠqdmG#w`98Y*NOgªXmrFGJi#U'? pDj2{.d0xO0*.>Y@@d$<}}omY"2weY}έzIqu?E{*rxlKŘlħG{O KgƐ'UXO>ws=)ZJR R R VdQ3s*c'lYR'%A;7Uo{iQ:7+wŽ {d,u݃('q>}~$Wt\h5l/rᦂ&ѹ2_WjVoms W6G\5|FBkT仲5wz96<Z.mdFk[pHdk])m&'9>To:vgFĶC*Z";P!R[|zxv``TX! 9+jhXmyQdz9MW]M6P_L0/ӕ2 #⦺Y}Ϋs!/-`H{5 U^=mkww4y"1l;0''SmOQD]6XaΌ 10d<`Mn_%MzޫxI}Y+=/][p+g鎗X9,cHK|ȍ'.!>cz.uy6\ȅgBv/>Gt dӭ#bIgn\W.\Q5EraH%csSRg@335 rAmpjPOhn"ԋWX4`[=jGUԴma1%YRK̟/L?LڥmʲHc%=ȫu=:qk= 4nP9(TU3]jqLoO*)o;Sn6 {neYA#2}|I Y$g [6(*H,I.#9 7@䕐*2u.s˹{8D+NUrx^qU[Y[CJ;6໘!ʌ |Rs/F &ndѥxòd)Ѻ5"%k\5ԈqZz[Mj=V:Q 9-Y,t{i6T#E+ #1_h3ܤ҉+JH#Λ~7z .bRr0 79E{cunl_Lʬr.1F=Xdr{:/4ȚHU4q6NR~á@jLJJJʒGE_-V& ֹ u/s+c]ÿ&yDHP;Pw9Iz+Hm``Kml#{;h<ѭv$h}D̐HsyScc,iy.HAdlC/#=מb(LYvHc~#ֽaDhmGwxR{[$@oWo<k[Keh%}~D}\o#JNmpdcYOgk4TY$AǾj^6KBFWdcp lJzbD$DI*Il]w׻()w<gE†yXKS '?~gԵhm\ LMGmw8ڦyԖz-[xHff$s~Df=wxmVa6`P+p+WkbF]3ⵙ/5)/mʫ3dr0?zI_vfDio6`T~.0?jYgYOr{d}Q>u =/5ӟt́y { Ip0Oxtgisjb "4dVڭ e؁ כlD'Vw!:pn#\N1'W8zV(8n#szs:ē^# uNp@=U-;R1IukcG'9Ʀ3f\IZBVvκJ%y [`8m-rWYյ#sq#' 1܏*uycrB"G1;q=^:eZQfX$Q! Hn L]\&Yk6kѫdB!r hmymّQ$*101ig |O:.wד}>(&V=a9+Y˶ 9.uaK(ܪ2ȏs'|RN{=hKo,wV-KaJ`wN^̒DréLH˜Gmr޼HC}|ɠ$6Z3#3XvZ|/mnLZG ֧ēQ nfi<Ad5 YNN'۽qMpZSqo ( p^>=Vi5-RO]iւJr Jw?nv /VפY moMKcl*ԖpI=_Lھrt]6{ybVchi,@-zՉ:,}=3M3DQ If<=L_u5m~RYhD@O*,[9ڮ5ōյ_\ZsHU8RF=@.sMU /bԙYG;W<.HN5[x&k)B`RBTK$zs&" 6@p$mކY[:Ɠoa6kί_C' w9ڳAͦd{{+<0'VvwiZK-B܂v*TC>?Ju4vzCwHLF@I1W:mwoybZ8*9_KI.ͭD.RybF89VaKqbi\ꖷ\] P=#u:nK -E<H;2`2']A{]%vZ}33F'ԣb~6`iqd3pYխt[GY-GEAI=5C{[7$26lP PH'=jvdr;eR&u+{xJlbn ?ZYd:n=J]rkuFLuii{x>cۜ0G2}Tv9MWetHDg;!QvW2XI9eD 제 VРM)tmjvl'88: e5ҥIF`! S=UM:[_X;rޥM&aK.C\0OӞMJR>ek >Xu;5T{A.*fQ+z@q;wK)t#u5hiX4kMnZK72͐/ִXu-CS:n}0ooD&ExIU}Aj^gѭu[)/:>m$krrY7|3qrL@A0u}8Kx5oh%t)<ؤ D*pv"q 3Y\I"_jq+xU x4L B^F c3$qIKG?sDۨis=ZI$h?", ?үN&soÃڲmxv^iar49rsjYܔ$P!#9WfPn ~?ZeԖׂ%W8;FgAIv=c^KcnLnVn GUcR' pfhqbBq*<~FB 2sgⴎ®^3gKDZv/b;W O*G+DA}V~=?T+В! lI`naγ뮈6u>ka9^` Kn>wO|a0OMj fԳ%z#o+m"FtK D݇\::S&O,dpkaoʯAgdcj>MP?>1Rv*= ${-?Yf"Iy-Ns18OjȆԷuq ~lbSMojd+;UE`ODQ:Nz,I9=.jy-ݼǑsc|V6UIVql. =}%c[Zut}`8MJ$Ĉ?/ԭ㻱xd]$da'W\S\ږ.e>㟵y/N][,2ef>LSgHmO n-4|sD-hF1[ixt?GW=>\tޛ5kKp..6w ܜpMg7эA:bTQ}^[+u! +a\n#=55+:-i7q˩\YK,[E[6CszA s⹿AZ%qlś @k ,6zj#H<Hڨ7}{A%،E[}C C uƖu'Mݤz$  "e՚l\C,n lBӔ=\MNU&  oInx VϏӖo-f69pWvj{[ޭ6^)2푶sq9Xr[ ~$uN9H⹄^F a8 gc!ў%iutF8%d\RA؁wc|-MoFDKrKp?cw{񌊫h/ZH׭짹LO$c=Y[$EAbeɕcKO,Z.z?=u94,rKcGTεl&Y"$큁(M7X`KcyÆ->q2\fr!eX BY<`W!ڪltwGThQXI@|2q5ȌB eB.-efaA 0i9vDR7RwCe3@&/x VY76( ^뎍׵>Kl@9|1m|1Gp99;VXtⳗËJ1r nEk}Ȓu `~u:/\c%e^oSR7ѤB.T~jznY):6T$,d^qc6~^!t׈z2܄ӵ4m6H L`^׭{^Jۖ/,)Q톖:}o p@<^ izץ4y%{wT퉐˴2K whOƗ_c/[#%ҏ>ɩiw0{+>Amzuj+r%túasmZu9>ya؂3I5Py:\A"#syIۂeuGfS3b?5Һ15k /%]B1Xv; X]@/8*>a5MZǫ sa qK}6׬O'᯵HĖ FTbrOa] J7@VU{K=1pڲd6I QL9FRWiiOvOwm6$pHݞ1ȗ#kwRGxy)'d;c9,8NIݵ2ZE(|ƢS}sN.Iv>6ozYG:q-mk{K9LDB8:@:Wu8td/gXK/T؆ dS87Kq]Y%©}MmM#:\Z(a4+|v:s_Mi Z̆PG'#h#8tT\ K/n.X% g G5s$8 H39_jjIn:OxzD{d Jy<d'UEwӿOh1EFWTc9u\)${c W H`Ko`p?1lv˪c-rV㺸 @'wysNđ+{b9 a:[moΡv>V1ܑ5#;u998 pynu6Au\W]ֵu'tGu 1'ɂo>Vǻ?8[ԿKY2]7j zo؅~)5ҷɔVT91*HGv0X.F׋5ڗ}jYNnIߟAZ>G=mm{ @cCN?RZa*"˒c_ZLj?l!&ʘz5K$6_*|l#aC1Vd:pVo#V|]@A\ǰr 1ƶJ0v#ճhہ?Qob>Ea jH5eYyg²f0V[$ I'iRJPcSkY|4ѡ }57WզTlTgbz^吔DIzG%JA!-N=-!*,+ |bI}jgS/h哎3E'u-hAu4친g'?תwt.#{L>q~皓\ RBVeQzc0+Qq"`K,rҪCs%\9CIA?JԈaۈ'?[a]\Y-ެ>")݃v4nW:ߢMPP{pb;Ep#\ZxKKVK'ϩԮ2W<_Nw;_R[I+]崐OaRoGe-`pNSrQ=3[uRjrKw?Zr\FT`Oz ZEd }R{kfvFd 2Tdpt{eŔO--11['0 :]ڭ52g{d(8#nn[K/ L{ȵK"O0BYv!};fӵ8!羾dgo ab[i֖eiWK-~u$T7 ޯdf&iZ,[$Y!9!$뤙uŋƩ=i)3 HRI wP]"ݡԚ Y56/"Vٶ"́t\@zխ[;'MR&I#m256&]{hXRCKE%,WӼՃy"+1aCuv͙9U(˶FRX`:ln徒Udim7+ejJiZM ww N2I*HS![K-~x)qW}7w vz`@[2Qܘ#Vtiv_]Ŝb9-38kOMEvڥ!Npei[08lGޣ9'Xfrkq=eu+9o+"qBA:&f[]hpT}1v+m.ٗ/vXw1`A=~1tԾu2z"Rb0?%r; vK^I;Im$1@pVzz{o&&a.;vawFxZ+1z<|n5nM<*s6c1)xȾU#Oj6O_ 6 %-߷#Ig˩SjHWQ“?:#>-<2FXz-ЂhyQ!229n@?ҦCuG"FuEx쯾q 10~0Ҵ"4?lgx {bjEêFa|'l0[{أ7d+dhN5Zo6_9:Mh-220Nx5F4" 1+YX0bwr]?VЭum:KK$ K!lvusXGuMo 20> ^9형vv*qX3{Ƴ[y9YIFs9,L gz2[oj2\0s69\6͟'Ad[-F9`\GrؠU ,dxqM1@ӭ ILe}ȬW##G"n:Dӭ$?$y :jFiSBW4ǽm,T7r(KKxLy!ݾH#j<ؒ%wt+&}<UaxU|d{%/KfiQynN 5yZ蝌? HW?׫Z [m*ـ%wʼIa Z%IFyryOi zMGM 67rAi#(!'i4 w;0ۚ'Mr%1WimO-SzaVZu,"ɷ]|അ@ װ<6RM&MFuӚS,VNcy8;{ 5e ۙa; `㿤g.28?89OzV#gZ <WInh mzy a3g{zo7n1O?T7NzW~Xz&h oR"snj* e;/|@UJ握AС=}7j$-wE3y>/9˨XEv;L~+RĊx\ѐ<7RH?+l'Ӱb~\Si (ǧBhO[G TgϽDZzHN6r+.=5B+g])3U8QO|kqYH\cOq U&HKaF~*w`ʯJgH$)ms*zU rޭl#{6?i][]-ɖE<9V =RE%-"9$<I9#~:sMůNh֓H=ְ ccZ,MϪ㺵u,\E5b XcLw}1,mƠab.26q¨s{;cΝѣn %OlX2݇(WrzS:Zzo2,`E*23Y|UwJ0ΧK z%ۭ3w y0H/c7vFɘ>z$jmJ]"T"zkz.΋FIXnS#u7sȠrv-tڵ˨JۯE;cPBXm-A39ZVa)R\~l95mc Q Ip3WAEşTBi:nӗHX< j`jg&(]X:Z婜Iw}F! dPʫ1`y WKl_3.O I[wh3zz⮤ [X,cKftJ>ݏb+SY yr]T˰P|v`C 9?ZX!Cqb?Sw!F'i^t5aqӺO]mba8bs;[Sk}#1$`2#c8=OJͧݛ !X1ݜc=Txso @Y$+tzW,Cqon"7Q!*p{?0HV81+>I'l{{ N52tjI[). Hg]R@88ytԊb7wƲnx )ʰ muR{cΒ]?v|k>"bpԴa1)2=iC' duJd% Pr05 XѮ 3C"!QˑǵExЖ]YKn[4c F@sϿگm6# YD$VY#p}n+CytWt}%=C5 >tmh]]mgI~A{WFt0aFpğ tNӌ3†mu}|g 9^y׺W:OP:*Qr03^7_M9mf'R>Vä?Jӭ༖8gxdm!>ǒcc<՝3Um!MB.c;Χ-5 7U+irCsR HAǹieqӑ r bKvL#n2O4seH R`?\ew~&J qY\sKDGMK໔rbκY)ê+~Hiᴷ_|/Ái~4rC(A]ێ6V{yƒ\[Ab)y'yJ4/kk,K܃8e*Uԁ*3(p9OaZՏ:5,i;΋x;6W [H@Y.lle"$nZʃnb]8 ( MHCl2>dSMƨB֟$GFIϕ4x*AzkO,1C|=+dr]1TvT{$[V:bB% frqvfxsѝ;ӷZ퍆mtY\E!F`i-1 +ۓ"c 3}2mfVjvs5E.Q$F9X>:i m۝i.E.|cnD؁`8|@OJG6=:LGX"< FX7> I0i5Ru=r4l9B| (rS5U#ˮmrXkm.-&q8 K=KoZe_`ӎΒG6Q99K#\H=8$.![JtgDibmx0Ƽ>ӆېK``NA~SYgҵsq,H O-&<2A 1j)E8 X:j `:"iIY-%|nсWol47I,/%mʰT۾&cMYu;V3$YO` s,o{[KcXE. ~ĨYAi]eEc\Gl00e<Y-S6w ɢ[C%,l1Q8)vv0C`۾5{צ{ [5= kU$l@8+_JGQִ˫Yla,($-YU\\i3hs_ɧjiZbƀP0Ĝ8?4 j_E}/H^^WӯUiLll԰As“MgOEi@jOyR:EUg ʕ'͒Om[p1.+a 4Ӛ)ApO=s?f?ua`,YܽR̼ TrZd9噑E|NR+X;2EZ<6H9q^пbN.M.k8ZAs;Aث-0,jok-~:^_K#u6Mgc7t/[=#A ZGfm s;dg O/WK 4t;YA.(P@ =m1ᾝ|Z&W]B@2"tSPuK[xh#`R\Jֺ[n蘢zCKL+%|C?RRRRRRRRRRRRRRRRǻMP,H~G~rZGHG+h s랚,7(X!lA)s}~ufJ][E(?Ph:)_;O _ȊABtE'&ר/:;L%ga`~ wњYkiV7y`x0^#tY1,>3߂{|VuMޅrl Io!G#_wzE1402 խzQi$C`Oz}(`V.x AKhZMF;h\:_C19O?$kz tMPh2Z1$$bE/jZ$%Էlb6,lW12 M^Gl8$oĘ˦Z.|ZI`sGp}m,- xW;Ĵ!Eͺ]ĖD 1"(1sфOB3!NQ3-I*cp[m _+Uw+\,ẉ,` .̗If2Q;xJF2BHsWFB\\L-꼻wyer; ;cxe6Ty=+FT%` xǥ}I}#@$SF{d$sQq CvTW?֭ 9Hi~X{hcr;ۓ}Y!E/aisyaP>EBY?Ċ"a]`oB²/ϱ2X2a@Þ"[ʗ1̬g %y-|ՌQq#V; yW-j=0>W\}=sX֒up.U9PY}m){C; /TkD0[iEW$ msm.ekulBެMZ_]&IcX˰arGew. zLn$A*]I9SqS SZEu{ k#LN{*b"tX o7lQ3jsHaA#~U|0h"xu7>12,NtN^dAO\՘yG{.[|d{n17Vai z ,6[TX}⺮{uG+ Oܶ늳z@..V?qX^&2Hqެ&c:Y9I$@Px v?rΎ" [~sU|0$G ?.+9F<**͹ehQ[8,C Y `erUI{ˀFF_@e#4"+klx+,ߞy5Đ01$Fk%%x| w"?cTqD,nc62<|!Rj}$El߁{/cTLed\ΖtB2H { ոF@zoL4z4k˶y/ا9:畄> :Q[ MRU]:Y3ƨ$݂H\ U7tˋ=:)+yTs=cz?د~7IX3x8c@<8OԝO#H.&ۻ00"Qۻ_|lq4Ю]Cu/0jF~`O,&Q$Q?> FroZ"ȡ-{Sps]H҇WhuEi蹳)BSڥԖ Eޛe{C,*9H4ޝ;I ,r *}{.fk[i,uu=]1I';Οv)Ocb,r;7W&+by%]$e-Ɉ/𝬧S+* G&v|D&]?qd[MQ} E{P$$J'SɸsqksͷFJ3";wI!f' v![#\!'j*Ӻ=âd_'\g U6y8-)2o"Vi GQKſ$0>bnݾ8RH>b5a@}-j~WpLdY[)6 {sUIrmxUVa2᳘lp2}&6g9_f=ީ[e0n=21<ڮi(ߋDoupbuEu#98Z.7%r@ #J]EH4gpD{o37_\5<3Dnёڲm/,5xhU t(7{0MAh\}% `:=ڒt"UyIlvfVJ5. djcqUI-i/bk|fsc~=n_м? U mSŸm^Mengo[ߌOf S&Kh8rڶ2QfM'=䝇DTzpJ+ƇpZ-n cA0YuFho}?2fd]FnŎk\lKtO&؃es UUPp+*JRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRTKs!hц 5](5=g,>/ӱFOzծ|2ע?a+Ҧ.~&Y\$$ #g"ekx&c]ؖw TꟲGO+Ϥug#\r֭Ƚ[n4>I#,? zM~0؟c914-%V7 P$6Wp~Ҟ&.()}: 3>u螖G7N_03޿XV-.} OcJ^viw["XǠFV o_RNNd#2qT3 t#V0ʞ+'E˥W>9~n2~Ss _6d?W xc;[w(`r[r*F>]LSoPJ޿YOwa&x/ףyV2>ޢ8NgS}{V=J~0h_,(AaWW'yIAwH~~g/ 2FLa\d!#WH_m? $hz}^#H!JUBjquery-goodies-8/slides/examples/Product/img/1144953-2-2x.jpg000066400000000000000000002724241207406311000235150ustar00rootroot00000000000000JFIFHHC       C " O !1AQ"a2q#BRb$3rCS4D%csT5d4!1"A2Qaq#BR3r ?SDDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DV<,c~nqz 4auQ<ƇhboŏTaD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@|sї8V*Ķ<%*ٿ =&i{m"w8r.o4vU,rMϞ GȂ:{{T35O5.|]ۊe L?Q$`Xό[LJ'q^J;l7S.nCލܪ#P̠l]Ʈ:|A&V#ii<|V*=q!"~OIE+s힉-?1W<%/~7? 'ױhbw5u3hb.Ac,+$m#a#l} 5KyB@uMGg DAgu'ctxf@?P}%sL<D-մ53V.*/eWLZ/:rI53l-i/?WNE^醐,n+̾ԏi?"BևS23%e+09$y'.+g9"gp[S'AWx3M?`s^?ew%eeu LWa^kᖸVG@prG8J؋Ym]S6mLʐ˥{h@"öTߎ!]m?7傢E; i=R,R#] D@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@Ek4w' Ζ;G@NE`AL{v $Z>)ؤ(d((c!yǝZYtde$ *W{[_9`;X)k 1^%m0DҶ3 u3P3r\1s8N~VMt` g-v DePkA?"0.Y嵽$T\#xnN̈́ܦv٫|7}Iy|2MM DƜ<A G+Y[h*ZpI;4ڪ2QoV᪖$T4?KY&O~ʷYwd@%,dv3%@f+Ҍnaqr+4[E%Du͖- '2DuHAIwC%DH(*C+"sE~{)5Nl9h6ٛos]UO+tͨ1FGے!v>/rB&-Qom=]ijL]c@ QS{hs>MÜ\\ ;j/Hd9`0dH1qESJ؟v{Z\}♭]h偞]Om2.;U?lLabjhu2>We1k6JWIpQ9$;HۖAĢj- eVU283b$ tWk&tϊm~$ѶAq<1Ϻc5O`:Qlz}٨!şcg28[ddWE/UF-NA svx9axI-q} %KYx:\+$rV>J\;g{-[8Ӟ^_=E8VYc2 Ip|nZVgG٧ mpP8<2fc \*n.:*+a"& ðǜEPaZ-UƒF̃%;N~)ǓӳA~X}pm ڂrGioY6'nm^%fNff=^VZ.M1KI/ }Vþ Vd s}yGqu$'Xc︤JyY+Ncÿi 9у5)1=vVÞܸ^@62@9h{s]2Tks\n?Ek}{&[|GKʋQw\ ⤖*Pwo.d:[ͶP̴kp{GJK88I0;eh;"y-  Kyr( 舀""" """ """ """ """ """ """ "*^F̓*$8Z_+Z:UAs|G~MT$ҹ矠4gfR3hZO~A@Y.Z؁4ae68pOQ.m7M4Ǚ=99?eϑ+SqU#%ܴR }I!hWn9CjK0-?\3<=Cn/ g'o?h٨h)"{CX鈚i];zO]{V/!פ0|*p蘩Oh+=u6Y+`!B tƜ-F:FIT7@ӒA ϶kĕklS'>F8xt8 -'>M;c~K'bùՏ˓mgֺ:;;-6hۻ"by|!s3cq#c㢃E+Zqhn^Wt:CB$Ua%l4{̹FȦe$c{yU?QGT=?GR{mc 78qS0Gd[s$S.c${9tP]+]k [Ḁ5s0ʷCU agWIs۟}@gd땝BFW ?槍kk?\0Gu(U5ϵTx Y_+}O~!QK pzpAK5*mURjxN5\6@R: e3z7cIwS]LVf6:h$1' dee5A25HwH?9|6I\F %H\=XZðyP϶,uZ(tը= ÿ-YPvYTKFSCi3MnjtɳN4Y֟kaű.2aK5Ѵ푶qZ*j$^+Ulfc# r# Lu$$O07ap?mL$Jl0}&xgxk+Qŧl)^!EDŽRhMQo{h{/kwoi5ÜUpoWew?2GV*挒2\{Vr6pғ|:]q’GC"'4'F LŠy e#w!";ӱXmp#zv$(Ul"+ 78bʷm01iHcV>yȩUY$HÌ??;c,Al )#C\%6OF]nx^If@|R]2)U].eݓs4mf3AEq얦$< #iǞWV$$r~~0{w*LRWÙ@FdtVWD)x6 Et|I[dn  D'mlv!3Zdqllt<7\ZU3^FUNр恟zYMYNuHȚ|%߇2Gf;?c Bp6DxR|337wNA\f;F\$';0==V |998ո8t֊KfH`X;z8B[n_M7eþw\*`dpyav]ykE-M5["q~_Zq3_#hg|m[x|+ڜ8k $v] )b9GPZ٪;-Q+5Fէ+!K7WFf~kt76_gB 1`zfFz[Y?~},ӋN922a~an֎9^cl+6o3ݏH7zKoV: $і* y LokR y5sV srK~{ @]17hp^|ձ!3[d8bEWz;}-qB{?ໃZھHZrk pV @Տ/OxhǸq D^&G[}isnVè_|$Ϸ4 [ѩZ4 #zA otOIRIܢASi|,ooFcj= 埈-m4먶=v{:-`㪛E[|Cc-:Q/F[I]h5kE7CqQU1gcŠMYGZ?R+˘T9ɞ)dT3J+᫥#ǜIKeeSfP:J-&i @* nѼ ҳ `kEU2na#?'Xoq$g]Tց Ph:M@*S$A7ø9@T" """ """ """ """ ""+UPRĞ@k7~#yc52"/wDb)1@.OcW_s-]Υx&z15UzhmvC!xs cҮU7wSӈZbl' c=7Q9gRapA#U{lCvlrJd:v]l.SGUAKUp*ua?_~ie0?K#.:9RY-jzd}U,t |N?%j7P( t<342LΌ; l̞אַuĈ_Q E>&98Z1瑞zcka;庎?yNrcOԊs2vnq)Z-t'Rx":/4*;]FD5cnOyrJ9*j[[MΉCpmW)aEGc ?UUw?(цUyprѝ<;TJ:I_H˞Ƕ<2G#5Rií`r ȐNNGMfLT,"|ѿ\7T}sHR୓$m>rpFÞ?DE })_dP'\$ٺHNZX^ZYafMnie6ٽs55Jr'?KR2J+E%c թzpyj<6Zw;On<54\/q:*WQ(^qxmS{CI5ܸVɥ1˪|5hG'rVFmkQuMA7Dlo\Ou5t./})iN\[QAvuΡo7khhK3̕_GQ@ݑ|R]Ht,Mk5Aό9=Wu%q.nItc|);5ܦUIH$}1G<[ŧ=M?27y}Eގ, :\qRvε)TV $ ӱbmƿ={?n|W† q;:N9e,RD+qz.eYcFO'|(FK\ܾQzUrᚈ+f1=}`K|x%gT{KoD40]#+;h\<78m 6RT51vĭjpņ78F]'EXJq+t~7HJָo}MM`<xnZ_a~%cv*it=ˑe:7QMn|p &1o(2}IZMVFedDꍧ|uXmwIw2v6.6Kn*P i[2O)'rbͩ3³9Աnz!Ȉ x&.pD{,AaUKss =U7-ى}b|JjHMu%s^-V][m7у?y'=ʑSqvχّSճ549ZƮF3*[[ͿـoGk%k 9ơԵX婏{A[I[`2hs _ǙRXvtvSIF}U 1\OM㱔34Mh{/i/ U@6?=覊:=NΌ8=W2.MVцSC Xv o~xVY%F^DR\4dBssInksU6V+j˛\ 6#,oYnt>xsDd0 {uZiUf*qMK @fqWmڎ6\,d>a +(jN]la݉#IR<f UnK)8էtElϲ[QX'8DuM?x VhZȆ27N#V*`jV~F G푸]cxjgxrf82<Ǫ9gwhE0u;d2DZ0m]x߃'A *t &|C_4g%-zyc[r G-;9~KP2SXr|мc|/MO1W۪)< ngbGn˦>trOҗzѕiqäd{|qnK[}^ %}0א}X[z-TCŽsg g݋̞\[Idxmf-L=K3^*?JmNʘGy^/vw| x"'c.jkm6RڪG4j3n-vYQj͓5叞.΁]XY8˓͋5nUuXj?,wgOTci!xU1:?1 ǚAVx|_`hqc|03] 'Zqc+ N{n2xd.hy߸M5BGCgnM;HP9pZe8vi۰MN~4luf4m'{K7*_th{=H EwMgq ɨz lpapVR?n\%+N s[<,:v|Վ[YF."+aW镣D{NrGb÷"ֺ:]hy,|-]XZ "dtrrvszo7@LqT8{Fjhasď:x{c2.ÜUCvN.ݤucP]CDso`aXdt[&e ~N OeMKs!s)N"~]Ata >ChAX4aj \r)%_B-SaU&%se28K0\ ڈ0Ob:iseO]i8ˤ;u).m;,'lzpX!-'g"ˑcZ}A_UPꪉ3 oeq@n40w!X)i*Zvi*#{75x+WQ f&k$h<-ƚK/U7,x^ KR9%fw` N+/:&s%AeǀK a"+Qh&K;Ǖ[8c{"9'. 5]DvM8ry8pQX b݇t %f,0!\xepg%SNgY%cd&ufQF,~ѩZ;>tvyKU4P3ܒT6k[RJ cO6y!l.-EEk4<࿫]|$ųJ4,pLpOX7Y˵i4#7P=]58= H??s~5dcC#Ija2դn,et62mXi2mwoce'_C -aX׺X)N \,N91*p^sۻwOe.c0%շߟ_]LqI{ۃEOhjnЀN-}{|-m9laIX} VVQߛ5}E"vhk`NLkr 1_3avSů''5T0K-jFycڹDēQ.2}T۠1>2"Zd,#1R*j%, 1ܟ\*У;,WsŨ&?{$|M#e K=)k^D ~]MIhOLz8-us^`v}/oqO%ޝfW6[9i贐76RE%TRynY+ 6SK% ɗ|5 #p vG j6QΖq6e;}y ;Q?Q-s40# jp$g>KJ 妆9;I\@w='XʚW?*$w3xZ2{Iˣ)|ڷ@cm-W ҽ̷6O Qo<˖W{\৘lgb:FmϦy-`kt쎁1AsHvW*.quR3r v?wʷȧ{lv,FtDen1?[kZ.R5qRH4gFF3O^vKs]_,-S;{C`>![u_;{dCgpMLDU{}mSGkVW)|762#xώGV_{c*&v"xGOvK;"0/:>ިKh:#N{{%$03c|cA_R2;uTζH Ng.W؏?;W[nSCU9cKFh]Ot/H8`H8/ImmeCmS)ur[I|[[ drf|$7^ND^}Νxsە) l֛t2#xs7rw'+ɚKM}mshץÞY=ZzvTc3[<~/T~/+Bޙmp L}5r)Cۥ-cskl J[c>oUM5%݆Q,@C3NKFiGoUT5,ΠXv$cVuO:u?(\I}! E/#$ÐZfάg^ys*+bm >f xpq®vo|scs/S/~=%TQ:c7is'g̥3?q*8o;c^eMI LMH#pFs |4pX4Rasme^WVrXպi)\2rt,7ڗV7KX xW+40`UјOP; pryKH1Fsim&{Nָ- NV t-ahhf=-nWljGWMd iZppp9jEORHhu1F)x8pB R~8/?G~ѶN]hӌ8`@= ?Asf`MJ1vA<}@}旈jj G`ߟUQX]n{( %txq텪yy1AGEC폄jCcl䚘$-0HKUgdߺќ?jX+"˭n܁U_V^nilU\M~sӃ@=: ESō/i9r5X:D-9[V6jiݷߞ=1-:]/i:PɘH喜UjQ>%Gq%SNw7+%M~j[׎l^߸kshnwNh:]᪙|= mT-#Ç`gUXX0:[Irc\CDNt/aÚ~nSK*c{7Phuxh~ߑ( """ """ [q[)-E6tvG 2k%?>$eϰ\8#U K86(GpNԝֳ^Ѭ'D۽<7 30:g^Z횶%u<4vwdrQVVGvu.=Gp1i0?/.M(*jsqםQDNQ{O)-O3QESdG1.kw?5uӇ=jYGIpOHn̐6 ^pvn/-5CC㑸#'Ü/Y2 N(|w ;^AtjkuKO uOIV]3X޶b|/ky04SL55{|  54=wMWz6>*1gK\UW?[uCQg5iE:7%3S tUHFK_ؕ1FNcv_Cw6朂r+᪋`s~?9j3_dmjFo:d6b  rB#q{ Y!ح{↪M1Ͷ*gx5ődyDŲdz%3#o:ϱ]>oL&+[nkGu-Cty9|3K2sVEc4?%D,%cXcCZN X8d裓sudžǗY>PT6͸"hUMJɣ(Ӹ/kkWM6^[Eq}-,ydzslL4j5,?ܨk[ϹZn1֚%p#}W,[[7uh{']`imN d^Y\e;X;mܒqUD|l`tX&:9 ]P9i$-Uwjt[\Mx{FNylZxj7#v"|q減y]l[0R< Jz$}KO4փ_5:(Z5Q^,:{r0 KY+7iVKx{eP\ T"d`Ԏ²ymLk*b*Xixbæ g>긟ˣ=238[qb-n; ^+Auue;s v:scspOY/6:GQs_ 2ąjypvϯB?E C՞'X4 |V\~uÓ-ᖙptj9i΅s!ն=eVR+jix?э2~ I+)*m2DK]-{yBWOXSVɌ{c挵uqUԲ8!$CMDy;\N9g#O$)ΠlOL)tC48R9y9>XYm)򺍅jei,rnVEKw(bIىwÿ2z7SGUJLr"hnq;\ [PFӳwT;;j1ȆJc) %Q$md:Dl%Q-I Չh-S$e8=vCy5` [7$:!v=vDԟ$ikFR:6%g`+ՔTQQN ls 67< 멪 %G}H?Lad))64@% i]TEb:T 4GxՐo? n.d~+a"=X978)+î.0͜p7:qU>$3OR5fH<7NӚStlAYBGC *" Ď #Ub)4c$dTFJI҇ #;s=U#ڃG#FqN]p?||5[ki^:YKR7E|z-KIΓV+KnkMm$8A!*0 g- ^ IK,U1,6wK#7q5; OXYqHTٜ9}3xޚhRlv. {)inF9c$DuK_Ԧl:0/LX CWzѢF}6 } /u*(m; NȤw,1^uדkoAv4JK;{=l!Ug.t {2:cq6> D8zz3D@DDk^$)^$;+$x? >&1RJ6t.kNfFYSy,Ŝ#O5톟馲i#?:ha^|3%oSXeΑg4pT/KD /mRܪ'}Lw ?r]fk] ]8҆X^i )gs2UN }[z{Y\lotr>Zn^Z]߉z>!:Yǔ=_BIMQ;2,L&ppzt ⨯4MBLFOP\&or+]| s#G%q=]7-w5HJ.dtLOnæ-/0ߒ#R w&uoϪpT\&,78.V01 l2\{-p.lpWZYYΙ$o/~#={<6ՇG0pg}Covxsq6pW< e<'TT1LiH<}uA=AٶqZ:wzqF;1?Ww+tV^EP8&ÎUl)]2qFƌ- JLQ\h-5T\># zVb|8?dݤ&PgyCOQ]@ (}$eK0 p=u{/Os wzrXëc]- pio\ |6l˾~9ژ$#Obߡ/x|/,.J薸T˧S?nmDuКvy\kt1w|䍇rǢQ])O}cn]nP'?vWrx[FZPsd>Y~" 9tPLp4{8 946틶{E6?S">FH_2L󆸟g3Up5`}WS5G>f <q2LZQM-ğ%)m+UBKO ×_k92\ľw.VacuHy歾Z`AepEd2NKyV4S [Zr><=>^KY)-l7.TPX錎- I8t:b۫ᔥVvڥOIm2MCͮa#fVLosY3F×(J IP:]dq&xzYt2xGO!y%3Cö1jwZs_z}|gD+ I!%:[3يs*ţSX߃r辳*Z p"f9 =qtIn}G2sEE7 bڈlkA;c;BI t*IĔ⣗S lc1a-a; !M)4)i#ؓ4 UF8ޖo$6Rn̫%fms]#'chid-yy<%C2:@ L. 'P(cY pڲrs8̍k2zDrgAP$s\\_ټi L|z+郜[(C;Km\e`v! |; k=d[ہnĤډuϮRIRe<%jq'Vh)a-hãf{QYMRN!ˌcb;2NoL+*+*&9tsG-q*\# _fSFAs#ɉI4U>@-1:6z&| 52Ip庋$E>(DR3IYl|ZG k gIR2ڢR H))s:g!X8|7xo W`bwJ 8a;_,ݮSJ\܀FNn^;rOŠ!m"Ιu!oe*|nX$)(.<όFEL3+XnG Mu<̞,sܪ*5@! Fa۶Oy/EuMOY vf qӗCO _WZ} 5 :,,I "F0Na 'YKdN!AzgxTۣZ$:CXk%Ŧh#vgbߚQcNiq#0#0rY%VT.&@q'Q]U\3dJtJr=ȳmckhH$gr;uUt,WWA}9T1>t•l1P68p [kYD*Ҽpެ-tj9-{]nV"$S~;}JT_KFM{\qNK'ysU NɄ0_SJW(;G/l]+MnVZzg9f~Dۮ.sSN =Wu,l[|Y{$Gf[O {Hp,7YYN {:]~~_cO+(kOV Y[oR[B8j-Է$|8OcGtth0ӖNȃ5ꦚyMVϓjDE """׸%+mQT\!?{̏[fLqeTpk^ q9w#l VS;KhLj#h^Br\=C+^b{i4rnEYd3+kniJOQqqggs!sy呓}ʠy|SבHv_bS-$<`aǞC}JlsGI+ZwHwyB>gz{6ᆕ#6T+ HHdσ!9=G=<.XYmtmqn1Է gUT3n+%*<`04 2v;jj`0^MdQQ,[03Vx*9>.ZzcaN~NpmDzq#r1+bm>jF͹baagVV`/Ns0qY&MA3xB.Fv:!:X?+Zź %O/O]zT]@Ka2G;0宾A#%+ }UcLKquXGFZq95W9T8BOoi͓SuF5ë\OhŖJ)x՜GJ)+LܿǯqWυbRFږ n}BPI[egCQxGv8UD[T Γ?|Z)Z_'#STǸ8 ?wQs[֌%,p8|<.YHܹFS(>%$32,#7?G == ^}%&V<:aM ڇ3v<]uMs62ze+Ĵ#vM^-IJ[5{#w\_nۋr>'c{) Itq{Dd )LN˜yg+qOJ~<]r_ 3 488sƗ.~Ju%5;i CrvϩXۧ:7hZ#+&4V1 +]Rn$%ǃqo†ۄͿ-% ^ ZOK4tHj\X;XjizGxZ+GFfU+"7ST7-#(玗ɃZЭLCxssTMFV"@A 5$[$8l#+xCwB䊾/x33/{O+??כM5TyeoF6JGEfwWKgw (G0hg7n=~JLl7pDusO51an*kUu;-4 kLmgZd2mzK3!cxD8e.ikWpɍHrwf]ka? \K-K\x5WTM;Dq%mUhnR(f!yY깕qԿÐIrY6 }E|;N;p;Ӫԣ@|zjx6wWl \fJ,dGu G<9hVꈣn_#GrOIK;XAߍ(*G7)nqw{h[?~ag].{0ۨ>7%Զ9S^9bUccC.n+cLYoV]Oגj-hf3oTI<7IkZPPz8TةMTMÞdw9ˉuU4ң'5XXǂ #QF K4~wGlnߦUVACJ,loly Y:PfVIRI&hrOxiFu 1ԨF3LY8:1c4πO#/KOLoKd8hIgPDF?!; ) w3-k@=]Tx!s>7Iב y*N)Y14l![40~JVb$tWQ 2YƤCpvߚ9{f;0#ᱞ`7UF<&0sc񦆟3ԂL-ƎC<̨M,Ҋ x5풦7>mNX3TUyseg?q" TFFLTN{r$sgryu]9CIJ3\N9˽p6iZtr68r:)]yї< rh猭) 댬u%,1ntt.)#iIJ`skp7qckf}A.M#ÍdG oq,jȜ #{N\ 9V(̭9srӫ8ލ咲PGUBMpkr*GSCM,IһP~:F*ijzf4:6S՘Z8CF9WJK4x%ڼܲ980զj*%x 3<2F:]x_6nI%"M;0Sd̍RޡX5ͪtr)^և9rk{Nw`t"dQ#;OC!f9Fc̒s<1!3 1Dݣ'`W/uU)lfx]38`'ޮ._zcækxkX4#˪:F\ [w9| 0j]P7; vu\uR)dKOdCs6䘥>QUE4$1 cߝyI_ +F\DZ-mOP m=֮2=pO'8qGqQΌ4PD.{cJS4F7SOϲəY&_F$ZGp㇩N^ZI;W 7=ƉƳmN;.#~NK=mk}p2 Cb4˪?lUO饘_0?N KO  s$~ګ=Ckhha5?ejݙ$F)KT tj#`M'~e9Hvm?U.,OlZƸ5ڳ 44W(jVILeC/u>"FG ؒ]rΠ2{z#[V'y0G,moR %:6n܆X>([BO# pJ[-7^<2+8srӌqϮykjk${&C#!q wnR*22)+_R6saF8jcgÙ CZ$(E54CGcie5J&t1L2 g{u!@w bx0n9+́4mmNƾ'=Ltv9K&vixBS\0L3$n0ڮR>Pq!ϡ?tCᴲ'@CI_?\WӐ*q>.cmCp.;d+ּ|o+n Z ƏU/n3=F7 zls]޽qe#)o4TQ^-C˵5ky "{AMpW 'VDEPD oW.q=\sx’e)0լ669'9,rSYO+Q#\>-KCq!D˖qm8v5T15յ p0O\RWA-TgS>:<;}O$@|W=M3QV |8ZppV9EpL̬ox3<{y߅>O J <6h>W T%L@"ǬxZF ѭZ2I.!6}:V[C'c.ةq +G\ @eY;m2crdl*Tuy"#[\N6;~Mꩣ0|QFƓϟ.Kl2 9-kѿ#LM:ЖZ2ʺ3q.u/afyrz-rhL](/\D-؅4%Aqؐ~PV4"N,5N| KuSCĴS m#'=56:M 1zzq{⺪ |: ۳[ 1Xe滆\9#:(>I\gqpĎ;orwm7t+/[T3"6?fUҶK *Xdo*[WQ7 h:Wotd(ێ[c{Vx;]$oUuiid>GVa1s0ӱ[W[/O$~byj_pp$wqjj7=WF t'tH6S~XJҌm79O i…UE3!l$>jpESdg*D˹}y^9Un@M d[`yl*&n#=5uu|3 nN3֛jYG+'1ش=33vZc|nr}]^4tN oԙ. |}ʚq/;ea'`5oJꊇgQr4+\Cd^bxV=ZoWyp7a洙7h#@f6G4LtĜ}B#qsԑWm};-/TT9iav PTуz+%:Xv~yXញ/o&Sٟ`m..70uPߚ8y5,0rt\!TPTq>'8-pWl.5h|:خtx?}eloYU>N[uIL)<~_X]/F@#8ׄ^^ 3Fj#hǨ;scp8uɚs<e9La'QY;-VzA$6\{)v{-lj*4Z|,6;) 5`3,{g,M^Nw mU6)6g;|՞'eVѶC,xlh_Exi)KYT6ϣ? ,/4CtɖTɕHe^Q-s+buO OAchhy#kc̩!cU8ݨ.EKMAKb|̨i>]c7ө}PZQRes#>"H|--t!0gQ[6Jz{vxEȎt~G"Õ쫌htn$cدJ.lp~ak<_T9tk5MH[^<;=͓faS_h[]Ltwc}GeK&)1?l[\8ve<@YZ=(9H0G6Rpxp>%\is\;.7oO{11:`1$ L8cCˏ9EG?8x:Id9BnE4l k$-7g=luRKhsh䩒Y#cĔ;sq:⢡$<4 7.nw.sT:JJSeccjP˘23di\ZjOe{ tܞCVOoua=<.WұR:}ޘd$xNH$(k}9.]aL|\(-j#la ' cTz]Mg=KylKE#$eĩ8x$jj\Por̆jV5౻f櫎()*sSߌߧ!JeG׉IffB ۓU"4rMO[D qpȦJzt=i|+T^ f4ךp*$2gSq뎊SS,k&p9c;np:bt4#e<H׿ c߫4>iJZ,rJoǫsV2Fr)>5& ̪bN;=#GU-)lW=T9Ҷ#Im_!mh5G g{n" fXtr2G1ts03/?2*36hmZ#.-fŧoLe[}3$~%c@avԕv8h`p7MgImWH<٘dy9yQT^<"0v<Y$6&NZqa]|~jjG3*~~|6&lvNO|*F.i4.Onbwz;#lHR."w1Kp|T 192Zg詂@ڶ; C=d)oqkb'쪩Hh IkHv?'c|YT,:|;zaY:mApe~^l6El1j`{gdfSB4UrS ylav nGZ\L{HcXv1S\9.vgl)IT3tNߒͤ3H#*4y <܁S8ot8;;:cm I(47Q鑵1e: u4iLo7Zx_ s0a]~":`UrK~z%"q?[ MLYNJ Ymw*"$:ϲ,MkG[edômˑ˽|)_xpGA[LW:/]Qp `U=jyt8h$knX =Ä٩*aJxCcƊ##K+qjxϜ,SԸg,oY8Tʛ}Ζ*I ck}R5s%wU.}_d wgpUTGO%T"is5tvءcvO#|pEۊN*8ɒwq:xvBWYU%@}\<\鋼ڏWojvf[&Cr~eyft.pZ[C=- ?:CQU#nP ?tvs); :;+T2Fi%F?g12KQ3H{9ޅhyi9Z[ϖ6Yk!8>V9V0ޤ2oh2\'"zd0~dGMli m5c8cc~.yr\%say:,"$FK7'4? < -$se*a<3vk2e`~Kqn.W`%;Tl]V so/8Jd:OWv.W+}ޫ$d111v95BN(ȾUT}].gpk uMNv ;J8Wŗˇ &ϹQC*8Zj} +r:pxxn[JׂT`t흺n$p|\v{YsAtGv?/[A]/wI꺬R^7ݧ{.GV7RY38Jcv귏f76!wSvz)NrZy@ :il{% H];h.Qz(2S,dh:=TX=,Àv>u8*aʡq5!R״4Js,cd:ecbElv 9-Xrx ŶZi% ߪvzAEEmblǝ}AѪM2F# w\29: +J596Fݠ kXA*Es_1>FTU9"iY<>r2scOzm $&IwGs-8>i^!̕S&n,IjCZ>'HRV\fE-*YW$F>ڻ7Zky{$8v|˲ոDžuޜ>xjd=&3>9GPGŜM6ua{*꙱c8SY#H87[IW;qoP$S-}GETw|j{oШhe,@9+ u^v6>Y˓yA:>[S~j{d~H捀yʉ=4Gb,:4[=e%êMهze@6NڈΙC+Cd} tW7j:$z+ PGN9<ő})5#hzul*m@ąx;x=WtQRm Ar-A9umҽWs[%4t:k7 u=E4ZYXj7璊(ec_O8Fps1s[TpysE3<GUѠ|1M0.9tsF(Sy|{ HwÁuw>jSxN xt cY*)EU,@  ۧ5oőpt25oVU+d9%ډ5uS>yiߤZө+ J2YcenO=ʕ53'p4ž!l1~>\UNd:<'5q1=22dF;n{lQCLq݂Sױ#Ys[еp,JQ.%T9??s&NK9ZnLѶh#Iq sݑ<ZDq41:v)ؚ+r)u$l:( >>w4; Fv=jwmLh$c 4ޛYwӰ4 e|jJPNckf4=ݹe ^FF0iϠ瀛Gs>FꩼwR4c:6i=}}vW*aԲ5f4rN2OLuVCebapsCqϢK# 3py`([Wr7٨{lxˉ R`6($g,mc]K,M3>7zagͶZB։5;Đ%#;諑5S"d9kNavvk(ޤsr;GĝuEtZw>'F5͐40A'氱U*ij(k#'IF0FTNI]-sNJ]9a~:l9~U=47Y"TݲNu8\j=---L^ .qs]3[l z{cuvhDaV:zjUysY̞%tՂӆя qӒjC.2<+ss갗de>2:7ֱqGT-%d..l2E#j|j5!WYKK貜(1h?nљCs9W;bU4%ctOyI_e)cka&@ӓ)LlrF1E/Ϯ4>{D²Q˜: 9,Jʘ͘{.eK/trs;;/eIjZgk[wZC+/R2l5nk.44`W8cVIUB޽߸9IWr\cP VK9'+p%WJ6h2c*.I j9brkw(C-lݎP/6)f9n6ٯ7d'$96wp?tjfp |܇]U e)tiU\;5dH١ˆϗN.<& p]2j(KA!/y8.IX2n?oVOni)NjRq/El{֢-|wE]T;|DXZ+3ϪѤsd1 VA')1ɲGK+Y$$#K۹h۠iJ?յk -#8{iͭ}9uo~>G5j,eajj:=cnvFr4t]:n1[n"R?pLQi<?I>F<ЖɁu&oPq X=~Efo5T̂Me; :s#+RE_Mք9ZFǎ`l\x&/Z_7A ^A,QBMߒSOiʢcs6@r3劰|lnHnŀf69]O{IMW:k{0T phH˞qf: lFdCGf핯ZM-D^\7Nt^k\is㍰ӗ*В.?weLxa9Ĝd9u(.L`j.،#bmfGfrO@>X$O- ^7hڍ*rK5e4M`;cvcЩUG<T"GL4c yX髢VK]:NONщ)ZKvfZ;Wwl-%HðQua\NrZGp˾}^=oֲg| RT,xpCS LIx%$ơeWg>)fq }>N9+yާK'/$[Liʽ0אob~ZZxL=EQMoa?%%Y߹ y>>|.yz=jtSTm?kl%׉橊;|x'r~erIluuW_\׶Y=s$stsI$>WiJSc.e8#PTֶI$\jqvѴ E:,͙>3 tdL s udzebDžDaw[3a-frg [ܶދpTZIPsz̜)*EIf5rvUdx1u7eVt'Q~v83oXN7#i s\s=Y6o e u ߗ-5%ا=-S51GinrE8=-*bM@9*:iOE9 p$R5#V#FE*5l[&=kޫ .qcܺ{1J4onܖrp*FK3An*kj.n.2#6*"6{l>#I˝>]Jqo v'.YjURMLC!L7j<# fzu"+}Y%s'$\@iI+nקCw0F2;SA $Z)i -#Giȷ9\wu9 O )納sJë"ԁ,RLJxs0TYg͒8-Ά2>"Fyx,3SH]>r[(1>ZsᎿ%< W &f] -ZfGxblkifv-=@ʋ,i ]G [ZKgm߯[Da67y ˄滇L|}Gb}khqqkmF KUå#J hӘZK |y'Y9;+䔀 66I,q4u$ɣۡ{7ojy/uܕmDl7~3[apV(>mOS,w' ] ai#κ_)%j#]Xb1($OO]bX֩MT>;7r9,ۃF\施.MnJJ`2Irxiq!2+}U3Fi roqMƒN?z,$Uu LMU4$ّNkXlvJwپf43;|O{(##pߟeNc1JON~b^)PԶF!W5=j( (pRX#;$L6õl,ttnEAm*gbw_+n41s66dJ| q(` C`oy9嚲&%Wi2]KXյKL*bWaa[Sz-']]a}DO)țExg9 '2ȶO Qp'?͝ϣ{}T%Ƚw~LK; FĬĜMIdanyx @u?-xIiGhGB-M!{u:Gz+sÖ ">L^y9mۭW W[UN[SEVէ C~CiR|);kK2ૉc]7[o ŕ4U5";O/K*r^7\g^_Ng\Vc,U<=[HKx.l`H:GZ'G[%-xY1j̎.0]Dmspݠq+a*tr'=:o8 ZGOB=,reCZ㈴v9}V<4^4^[Z ~U.lz]RN0[))J\Lm2^v+%[iNz9={.lOxc93N8upǁos79U{I6I8?xZE\pBִ y0eԵ&ax:d :F27$u$p:Kps̮ O?xvgFSn y-6G ,B "?m:p91ku~OÎ@|FissZz,M |TJ׻Ž061XVyCI=Y\WNc ?w}+R|Фdiey&Y6>亾30Hh8ٸ2Jx^C nCAI2I,ֿ&LOEz;m]씈68 !q32Hy9487X42dv<&d@ZS4֜eJ/<=c$dQ)N3쥵)YZh \N0G^%d4Z)"^i7rI#}S t -fǘE$Jpڨ\x'*IK6sX\譾[MW̎? ~}w>K%tVZe]EMZ|Hx!ߑTF!T E5yw>7sǴIJ:Kue=CZX8 sY=5L5L\ Kq[E.!dP]w;]C]H>xYA3=?Uׇ ɕLTOܙk`Sz|WӲG4>/{-Z[k &GO;UǪ==wEFGTRJ '!O 5sp:_տ%ϥZȬ dg9vyz,cx^Yܘ:NWZLO6DUO:%T2G1̱R|cim$5/dtk;Tt:y21MS+h$sNA@zC@!iVK9\*u}~Kf*8>)#V.me>K㪦3~" %}MT541F`-w&˿Q)iAoKHhy'WI0<7٣#~Ejge닍+cn 4F_rϏǧˎ~x_ei>pH68nvw?UC\Hdccdkr_UIE'se-$CXv<}r Y+ ;rѹ4V6ta 핋l{,2Od pvz9]5O#ß!"23etIlΞ ڙ ItsPJ9g$0h4 @#k)K9#aA!lo"ƔV2_gooUǩm%^┉4B揂Z>Wij"jf6F##bi ֛##&zمa{5*s6: vӯ_e/Džlxi5pM:zH\%Ǚnzgl,=A!kn #nq-Fi,BECd{2w-} q]"2A9cX)Xc5NdKCGq@ sJ_WMm+腪I+]QN\ ,k.'}9' tt76R>(b hZcY~G_V"|¬9C`@r@wˉkP&{ZCZ1m,d훥m32r*gll1Q>cl۽meeC 2`U*7U5441@ϦXmm*$r99Ź'sPm4RQ'MIpush0P|, Gn]be(eI2@{ \5ˇB9ʤIIO'E71á]fYv u}#87tT49 ^t8:pa6QO=P8o/YKe$rJM#R\rY^pj䠨W6/ԙ3F~[=-vIGK6HF =O.|. ͇⎔_oMps|(C01El#hy((͡Ӷ(sqԯ4I.7  z*nwZ+$O2L䅧븊SQ[ 26,y7|<;ln78v΍ãSCGwp>)ȴp p¦6Jwj ?svzZ[$7t͖vcBX,tvôn?%qK{0˂asc/UX̒7]PV-2~z$p[BæY)jqi]쿏&pl"n `-v1f}{,7Ze5顼CT~k3=8qt*8QPc>sZN-ncgdLi5އ V_VUdΧc,ULx$ |5WۃdazCNj"˓&c¼#p\SkSxg$Հ~"Wb@逍,>g=W?eحi) :x_UM#<:i564~âzJ%.g>QP2/{7יZenWy).v_S!vcumv.^pAB0Cc% g{Sn .al`̭!3(Ksg#6ZHm]QSPk*gᴏ6r+' 4F;A٠uwsT(%u{kK!Ug%m<};jJTIm-Sݒee(-sdgl#Mê%I;C\+?Ub#uOxBA:@9MhldT8˴%;"rb:Zm:2b ȁ?It5 $ԓ p쟇8 D&:< Ij|| f7|rVI쪎;EdFp-9-\zI1B zy.TkCKKl 'V <\6 dT\|qځ-lc\O6;rԨlQUQL(t3Y9`MVڨI&7<%\*LS5K\rՎ|a|RGE4trJGN&V;bѶ1]7{z]Tj%g!.5h1u]qpe`9 Ʊ'bՑQ-E@F_w>ucEGRp<6z>ͷVXũ1 ?EgS_K{vFcɉǓ Wdw8+Ik78,V\w<ˆvc[A, 9~575>f}=CoJ%k<:.%Քő\ا$5lSAoT`d9tZ,vq ֣P?Ӑ>rKids.x$dNs4&^p6~( 4oc7@fxbHuuH 1rJO$(o11BH9%f`;CSR; 9=B/&t8^ #1`xm+ﶉl'>\ ?tjN ׼|75rWrztdVoc0n]U{bq8kr{=mMCN]Njgf:ƍ\Xh̝`m䉺v 3{RCud4矲0U hg%W2'u7p1_Sg}MlM ϛ'ΎⳠJ됹<@k=9:uMK8\sӖ?HYJy/uax#x$XՌ, ʣUlBN#s{|[HQȜ.y[mp[r]Q>wltD2\XHʇ[joOI$?=*: |t*4n5`fWm' UQC y;fIm:f{xpDָ3ImP꧆\Ɖ4@pO-JlS;ytL7P;eX}5HwbWR9H2~*&3?ye+D1(!NI.e][,դb@o\wݫ$jysYߙ*;.*ͦݘ[IP*\Yj;e8Fxp.%% %ªitROC[ݜgߨPt )*500kŹIch*XQ;Cd7#6zON7Bq)^[s[U _#:mz/]sSS㶈辱?~-.2Ŀl.vi_Wr{IT*x]c-`N '갗Kcj(k'.88Xh*.U@L'?};#/U}9ҽ>4~m8pob|-so2E!&`4?;݄_38ͦy)c";~Hch;ˆ:gljWNcM-;;sJh䆠}mn_ L,| ƶ\#44InyB|S> u5vnztZ&MKi)eQ0p{9h,Qt\3մ⥃́\E7#Hpu8d8mL-Ӓ G'ZdtsHsͧ+50Uh|m1Ϣ}][Ug}vӕ7ю=3/"N-c]d-J+)QK^1wXYl5=pQLnXmRִ#Hh3^sߚ8`?Ѹnk[4>'SzUU6Zt7Н.y&늞35,~X*vܕJ֌dwZMGr*F u2xRv":]w8m(IdgK0;"":tލ=VVm6[^)(Xp!ܟFiE'rqE@DL,n>_xep,aw =Ve(]E#*߫\"-3hQb)Tm~MqP%n=[5^乥ʩ\:n=G~Ct:3|ǎm?"rڏi7v;NNwXًeEi!c⎓-vRzst A걗.wz׌6"vgO䨪i7woAz$q3&%5R/uw{x i"(F=S7Z 8oƶyu޾1\!%T|N\{bZbS/qɞ"׉H2n@wtma_@d`5l99V_dwkeԦ:[lCĎ7Ec|ViTLi՝ރk ӦhǑt}Lzu'?:dPVQ#7XIZVK,tt,_ ڱdi:dbuQq =幍J¥_SgOgT\du\9 [߳/hL\1~wcn=es OnvGӂ:6 uQ!0rx~J ,u.cWN}Lձ)/c=5.Ѳy -28V|=Ӛp\`gh'ױT7LG4ilw\8,uC)5`a\4㝺Zm# /U=\C^GF껤8TmRhmm8a[UC`( 3)l6 yF$Ipq$Z6Oo@e9ۄmQĭ7O˚e===Uk50r'"U_V5:4㱗U=-S2*jXp1ܔQe=4cK=kGRjdQ3.l ^VQTU8ꮴ첾 W6|ԭo~s%3;3Q;;io*]~Z3SKcQ-Τh ={OpmWjq-%ǖVr?b{;Wۦ?x>t. SqOJ<uBilY{?Ż>V.oB↲ ,dޫ_(#Qm>$3pyv~)Z]9Hq;pW-]19kB-S9m+m],Í辺.}$GLsJ+c)bYEU]6s٭f[tǰ䲎avhpvdU-Z%LAwשQݑETQkp/q ->WKhX뼓*eҺYqxn5'\_S_]IG nG,x,P,kL9g`qؼ')4p Z8r̬ mqzf2\[ty>L`c#h'[s\ϒ`"1x0/󱤆1U4\E-sqq (JGOrly@!:Jv&fŠ\ϖv~S1Ӄd%b3VL͢6lxXZY.$}VQF0Q8"^`WU# ) =ml.Ь1|QQo&rhwK)wco|ؼ"| 1rZӊHmGM+c7cٽV žTWVVF0-qsO3t%ui-GMgjocWHdJ. mҜd78oUMTT#=F>KάR3ސ]q8~-F>zE}=N+sywiwH C#q^\M[MUlE=.YIZ%awKV٘3X洂0g9rE$#21Ť}3tOjIEM4-xq-fZMڹx斡乍s/5a#awf~I tuoW2mb>UsnFTMCq],ue0;[Fw'pGXLʪ*;L_L$[osuIN"5 A9fn $4ρdŤh1$RT.45:w' Z@!2g`X&lWKS6"Q7V'Lu%};ݡrw?JF@hpǝI !txmښ_ ðT֔bL2cs >XIfs*]$.5;``D1%KwwԬU!WW=P3X ^uWe|Gyہ@\I0n>MZfQSHhG5`/U'%eYU$(Ih1jy;-˃8**&6ܗ{,L,=[puGR'.ݫr}#e' O]y[Ypáh7>=xC=⚎xʘelxBO Mum+K:8Vh~Ѥ|;|x^FRU>'AgX0|`ƯÕq<rr"YVKcWㅧ KϚ'r+=X1s?;*[Įnq?Ī$Kys+*/w=H*v{Ēh:p|2pC$"(#lqZWq[AzuJKs[=Z|߷f:)4O)?xwQ4T.]2qS ݱwY>#J>nbN2Pm܉7;=kG(ۍO=ar#8S%cpx`kZ\knn\e'ѳX;4t }.h p@d驃;=;8tm^'D,[G_W9u_V?LkxIdV&YvrJ )ko-3I'SK@YW#¤P0Y<Ϣ6etVHw|IMcDqڸ`>h'L1-IoaN~8+SKOKurc=8h q?Mwcmtg4?ϳ}:X3f.-mwaȖ+PqX2Jw|ችTϢ4KRF[ܮkDAcTc StH,[mS3jF1)'=#.AU4۟j嫲ZNe.Ϳ;,qS`ݪ^CFsJlnXR+/FTY;Dӵē!{z.rNg;~1洺i(/kH`JeNhFF:nh4ESdi+US&;;uFJ V|MW8:YO< 갵Rqyp e95:zvҩpod1Qxns]uU7ipzxj{ 9oa=ڈ"rV]i&WQ=|n4:/IN(+ B8^HT0uoߚgֶ_P]XKOǘ.c(t,}CmZ:mE[ ctr4` 3|zeXE"*v5hx:$5rY8s?Xn'R%}?=W$TRoȓ[J׽GR_p1RC r`TSob)44y8NK u殉T]EdG 8h1^rͤy>-; s)߃IgZz*#*7=4ⵠw쯒Js_Jװ@=w?uvƧroećϱ6;$QeITqdH?N]'H(UT5 sccqELU!e L-1˜\9O3?%j1[|sV65ƶF3Q`I`vB_Av685q%cc˞ʾBVmuL@;oer jlwٺǐ#VLr. 0Xq2yn>,΂f2 H||=+)%E(qq?/~$r燯gjNޡS%}6C߂@=p^JU;M f|ER`6]g|sPTj#Gns`HGp:c,lod9z, iKz8ؑznǥ_^#b;|glT-^ m:^4`{X3b12gzc?߫t%3 p#M௱Sumn9v1bp~() meCuGrz;goB;aS]p%$y "IeN:kƓFāӨVYQ$&I3ha.vA us}R;KS.x[^汭+0Fg*)k+foe8?akssO_0={$횜QVI9ltg};V?iSIdv 4eީ+l1S@ֶA.I$^J] sxg~ɡJ:g:-IGIKO$ÚdF| wspEhsS T4\KLZ7NqGЫN{SeI:C}8E[ULx4>j3GUmok41гw s~ ަ4hL>YUMވ#R%ከ䂮Fs\F=[S D;y\1kngj4:?SqhtpPbޣ-:'a[i▢nT|g.N\1{abwSԀ7!Vn,sok, V8|Vst ԴÏ39:WőGgnVƴ×RU5TZ8$oUUGh:.kN3H~Ď"zcTd7t͑SW" pvۭznȎ?_Eݯ4hd>W OUĴVb=s-3۪.Ww _Y]1C>t ,x\o<"_]ku0:v61תd{C b~j⩺(+G Cj* s*rQZ`i wϒ [\F[us2/W+06(V7T}U'[)64qzځ`tgBpN; |ߞNհMnVUC>7:˾"A"T= yZ )#i{I>PtǘS;4Z Zy~CGsvZylg?Bj!ۢkCFI0Ye[ ui ;jKV ݣ2$I?.cc} fQ ݜyD)mR)#]HN$g=9.WvU;G˷03 NA$~kd.JQ[DA-9@:7=_#<1^Oi7qժ旇,I2JS=OK72+JI.~ u$+2ZZ(JGO+pQntbo2Ւ3kE]®BCHhbim&2)1ɞ`轍k'u,ͧ|C 0C@lTZ9LRϑx]\tMz 7UۦWQZxR1{Ar2~xaM#ns3C70HuQe<3I |_TT cOsVl*f{+dmTn~Co>(${_/bprQ]j% 4~ɧ!}0At-[f6k4:9èB١csvp#2ȉ$FFq tIdGm(UᏧťƇ9߇cUU,Տ5Ix'|l!w-'k8уJ t"!5{-)j+_eB8G3u눖}ڍwsO$(<^4 u`WGX⋍M 8ErS_3#q M{*ŻiW7p18RMv\:*t#!ZcxvN ˫(9:9G'v;x$.sç's%KB/h4wVڥ:#yO^ˣmt3GV: +\mƞG9v q kljA0pp'`dˍ|H~J8CN=ގqRR.TmTiw贷ihT~|=WC^%-x0~;^uEhty33z-wHL.d`d7gy^NC3$gh)nb=D=l@>:f$TĽJ*ଊe}qwsq{uKg Fd~cO7dNO#Rn7l5*۝QS/wfs+n8 dP01Z0:<Geqxpjk᷹=24Q4mDHn|W>2u|/]WEtnI -w"VЎ.!\ox()⦎UdL%\QE#=.{R%xk> X\zU4WO BAЃn<tST::gg<m+'| ԸZ4f>{-ձSJ[p?3Y[ ~N} [6JyFŮGe8-䬓r= IP] 4|ai [* Yso4 x:-“ c~|)tN>= d004`(k߮4e:.'{|?5:]s2٣Z['>)qrԇQMLKsw+<3U}实pپo >53}K03&pY?ouu1v@5;K%v>K%n'GGNֆ@u%hW$Hs?;ZP,6:r#sJzXBdNw_%FrnVHZx,ّ s@(׎QNF`LExoh8n/ǭxڇ MÚzwV٠i{ȏQ.Kg 1˙׮J m! eM[55AGb Xt>\q7!}U>-Y2!6ʇnNǡ>ȵdK6%ث.i2diKVʪG2I.YCE{4N@9-8+V[*W ,8Cz{~1*-q3|ē3ELS xz?"[ݩP:z'][q~њgH#|1uN !wFw,e6:jGнa1=%s.i n*Xjf8Uv^|h2qi9O}en4tF,|3ꛤtܩw'`"+Fiٿ5?7ۤ%˫.wi283;*c,bҜq mwq 4x`,.yOxN{ϷS zHs1^?%Y,NN{SU20N3]0,pjv-]L{W^v6ZB_0;9*o+#mc^L4#6C_=ʡFmbvPee?9.t`w$m뷢ssxil0syR*e4E47.v9 EQr*W\w U'mC 9>ۏ4X[߆'>6nGL9R),^3Lq?_|uiim1ݨ< :۶j-U6N΅G塒zt| 1IɁៈc8Q/F:f^s'lT:(>4 #ݏOeGSDV[Ԏ1hB:y>[^̶J!/5/h:59o$ƪ`ꡭ`Μ;v 7÷G 9$$;  걮ZϑNϒ)նV6IhKDsT-7*۵4mttX2]!s6ʷN"T!W 19×p6*dd}=WCS^ YU1&[x0t3$ rV{s[Ĵ:=χ {mV=59htߝ[AU>%#84s9=9UHlF2iт긣q]#W*vsnbh}sv#/~HD̨ɚ0uN9ʦ] ͸Y]HtF7s8BlX&qDLfV xr[i0F36<Zb8S =GZ6JL3T r4 !8w>ªnW kfO>}4|:B׍o~w9 ;KzخZqNָF, @JM\2R dlɀ|P%}GT%FAha-ϲ"e֢u+4濱 wRv⫝ FE#O;kO cukX~_Sk'i-#*fg[B-EEgPA^ 0ǛAOeE6Cil!p f07 :,77nDErD@ySz]5̸@M./jz ~0ij<] m}6]8nNؤiLyn`8}{)~HǶZMMtI݇Jz .|~'WOyg.x@Xp tPF{K gV@SsӭwٸgK;r8H!ܚ~ZZ_0O"}>-KI43-|'<|ұM47[t{P;O/U/QYm3__@u๠ܱ5 \ƵQ;qXjIRI^uz{s ^~ 5LFA3yPw xS5sN[-k0eVQ>lxnqϑ]s#hЮksx}Ahu>Fޑ܍ǁxYgI6!eq9r??U=-|mq*%$'9akpAWY[aFyFhbK 9]nzMKIO-e1ӵSB59^N7JYkk2'k}q-HFJ4ˌqqܜ krN-n1 0ӓ.$n;1ͧ?P_ GWM#eF#N\omn'5O+tȐ'c\~oLܸg0<и.+s|oqo" ;cjylS:ocM\c?uc'qԶ"9|;,{Wx6.%ue$xp)-̒'#N vXA;ҝƌ :-3b1.2 g夌uc}R͂ ;mo30 xs?5(kES81ǢHϔRp}.yjt0KWYRy#|tރ'2Ux I9{8>j,m$ӢY% $$[ ~j+d?a_v~JKV>&ag+Q1|$y˜{=ޜt9#7oZF%uJOVqP\(FWmww[]fm/ wwwGO )lQF426_+k4梮B٬.yX9ETJtIYYR jG( Eyj!#P`ss&čCp*vzc8K86|`(gpmL C-=ߩ *l쵴4t9>7ts}WRlsyPۺMM= sÛOcm=q2jևHAC bq]GYaEi+ΗUZj8p= _*Nhq䯗wĬfM-tal#+^ֺ)}ۇ1Wm <Ǔ[Yxt[ϙ܂V. -;+CZ?58]nw~酙lgqwON,c|)M}$hᣓ=lsӴx877r{*J1Hl446'v>y%/T>x2k muV*jolU e,k/OK<8nǸg0stTiUK\e UԲGc(sZ0^t[Y[3$킺& 2:J{b2/VD&ps*MQw]W G=B:b;*KY/Y!Zh Đ!kN˃OSp7;tYeAE|sBc9Ǣ^=5`1ˆv휄:+v@wlDzk]#zqyFcF0~Ƞq蝣Jtnplzr䭧MNSZjj v=m@@j8rJX<'$IƜr\zi>#qCS&GGͷbOȫn~J E88wSvGkG V:X+O`rA>X*đ[YI)ֳ2Kx:6][=sd'1NK{t Cp`VIlu{bN$ `ER:+ֈ $X slihhgdp> #,hA<2: ^ܝjs#ftqgbCs 7c&TA/XnC-n~=9XԒ,|p&L%1ǝ8۠V߬/=,1ܹ'|~\"w6n{*8d|t#bܨẨ8Qu3? `pyRjJH?ix. zCڻh0]#xC/.m3<'xii|SHd6[|qØ r|xt/j))7KtsHy(QOrjqG[|CI3cyKFI ӡpԴTS4tZ[,.ΦpG0@w[֎#jlKw,q^3yݍC兂Xnlи)Zvk[rst'u.Dmc>&Fn SOf枺p,?śˣ념I>hd.63s@b9?nRB 9rnFYiR#Qrٮ5mKi9[/eTc4ťWÃ8=1OkCo|[r g#~uV%mQF ?s~j~#5FWT|y*BX%%AΑ8B(/MIqR2K̜pTQmT CeEU4VكX\Zxܹ;srtRL |qvGQGӺWTP֖Ƈ "\[U:7`:c9Ǣ$[T᪆Hf>-cH8!˾=|D-ͮG -Sc|G?/S-հ\hj#ۦ0 жodq= P/`լ;|چLӾ۫gڸẸ.2 2ѫ7<+Jy`3.$ie;}[}i*-a!ǣǘ+F˦ uTv]9nqﲇK)>QJ:yK٤E^Sb-R8M?~1߱Y @IsHMDncp#8CJ8[Cq:I}yo۷pqh=dtGÿ)K![-k#cCk@uz٩)CQ䴏C%rkfF=֤ F5<!V}.9 sw+;'+2SfcD;(B`mea!;d&SOdcڠ{G_UpP")  OP4vK9[ubyvRU3#Ķ[" K5][\bՏO+}p}uN?,t t`n;]&Ce<%G+m/>g0"$G,`\+W0=lgEy vQ!2=7FH>adEd2,c(}GF>:({c9č-$48r[K/ `s$$>`-Φ'uU{\I)P yg;$NǢ yZRjZ( ,}N.-iY.HfJh@ip|27=:/K[vi#!;hh0RIt2ސLٮ>6F O+J܏ MNha\p ?b gM?Eb GQ貀?*G1am쨪 KCr9<vZFh*7@qӌz?JEobƦ:_IN SD!;۟?tf 4U"Z:Ozq 3Z4 5ze`xeݧG [%3n{|}=MF~+;[i0(iNg8r:.dz~l{K}잓l=yP߆Z6(]-: F .<ԩJ"" %9tR=\2\_ڏj)ִ6xϋCPw1yOˡ /pmE35TSoiOWʋ}U84p-9/>Z+fLa{:O~aikkg CUĘ !=1"'3l[U,dE++Or=H־ Ѵ`B:El'ޢ  #!C> m2`= y PK-h#FON#ڋ~?OıKqJcE9:"-Eشf-f$kaIdm E_C8n\h-eGҝY>T٬p+#&q߷+w|W#:lFwцɪ )4J5;E=ɷg`:䬴+5KN!2GI#}CÜ:zb BI41sLgm-ݘ+964çL|ʇGuꊕz~kb;FjO=(MŔ|<EE|?;\SWxJC$gJp\#V#rq< X:_rk ]cPp呝X}rHDɛԡhMOfpȮ65t/4GI~|p]8 &iV8w Eq{8Jz+\-nySjmTCG%kԣVK ڬJ09Ñ\d\WO EWK+ef#{O=B6 Z*+3xhTҍs p`>kKoԳ4G/E8T0ĎK;Va(v}:HT5vYW|-SĎ5e[åo%47k k}žY@!#!$#f-pl(PSPRAAa!1V\͡G~GRuGhi>,t7H&6::GF95h[+{zޣ[W{CDQlw=RxJ~+TOktuAXF.Ro'Sh ] LN" kͧO?Mii颅\hƯ -(3w':ԟ̩|7r^[omD1#w _8w,R3ᚨ w =%<D 7Pݞ|+ܫAN pcKa_X\\;A=psU]Iy(=<= pu-e'l2Wkd h.Yi9UrG/^.frtF^2<9TlYڇw?U/C WB4 ,hӖp|4S qxu+\L8߅xk[qtzLe.A35Ѿ'CA+_N9G*Mc퍯{5bHl3iS1˒FwZqi͢rU,8ufQܳn>$AfwYQeL gd ¢Ec (;r:r\L%T{-|=IOCφjIa|uuEH\\6lbCF'Gr2OǛ:z`=¢Ji*K*dqÓsoUQVlǨ nt>u0|5Zi]vp=YNjj$a.p$rߟ!˪l@:$.C {5YJRU00jZv6'cxHF2gثد͉όylm$BM7J6gX3)aoWUe{ǹn8?1`:/:p-uFNjcp˛~PhwYLro$ 4gr?^|j( 9˼l1vAȗű|S;h!ľ!0y딸[|Z{gͽLC o˦/USp[ !Ҹɱ;d==_i]಍mi-[tC$.t&irM6Y-t\Σ87ČI|;dZmI6 v>#u{*q56<^*vY}VKoZx:) rj88;v͜Jh/6*Ԋ 8FZgsw$(i䪬$BrwSz+۪H$m~yc˩@b? G5>C^@Ommg?Ǒ=0GWS *8>!È%ߛz5C쏆j"rH)YOA|.q5oN-u\n{`yA?(}p5/;"\ɲG\ c8M= `kt GӢpA-M ƘHNC9ceZ~Zw5pͭ(JT`2-T F? ة4oS._b?OxR %\M/,c]1lКX{3$Hkjg냅kFsACto -:죍8ƩZ[IZ9Vm-eV;0W`7e#أ ]v<#tHSz!$و8GGKUJ X$gY+Zֶ8er~?($SN]FIJƾ Pv#g{7w5_uhcw#{hARN"@ZH؎T_ naK#p0zcךg^ C9 ؐz>( (i]"|: H\p6垛lRU m4NN1vS.2QZ]a9^]ꉎwV\o;00 F? tP$*A9Fv=y>dq;eT`|@|R0}70OC]Nj5и#g`Tjzy#SPYSzPI͹=6낭Sxt-MtOkZA'ۦy8SKf(Z)D>exYVOMQC4m/_ g(Ɗ3!@^+8m3ےW P}6s94uJ%Y/eMyn@cu[’ykdk\b3YkT";}DGΞX r9\c`vZy]z:Jqra+,ML%sb=JMCUO#c"H15WKSu| dTg+t|FI#xO#vtȈ=u7U;נ=rGQXl2 LcPu3IL챇@-~} FAW}8\pctsIxMlQ\ xNd5\e]#LIv<ػ#au /~w`fKrÐ7ۗ UKl-fpqӤqћo%ξ9#<>,I{8`Y*Yu?췲(Ii+&-\ eD s\amEgPEX+jixݜTK'SF4Zy6YId c97M۝WȠm)*m$o Srmo"7WJ\-,td65tn{vW!yqlθ5 Y7NNs+Ő\)C)־5&68$JQO hΟ)$etd>_ h+"{etP-06JT|5_%nEUVjXG!p eXiywz`Z8ρ-R@n!1ݶ?Mدk=T]42;M%G`?BާSzcey8!OUNʚyslQ<@($glw% .k 4|,ù67:-F9 <,ql3{]UAPwvK~\Q?h `s`3uTKipy9?%d iAcud8zrwG3G'ajW&RDc.GE [h/]#}F1UPV;*wF dEՇ+OElc5/{;”qpsI-iu=Zvw+_61<^$KvKq> v^}CƲJU$Ov#mw1-.܁jij@:얋ҰPi#đ61el4!;f~=q$rO ⦽#fX:|>,㸭2{mܬ%.sp,!gZT\TKRr\,>f5KawTT{˞OO[4ͫKH7dcRo),aGSM\FzlҴw񷳯شn8y{ &H$*!'Fá]Bjficrh<%29to}U1Mމ%등Q[/M SCX޽r/h<5ҍt<u' ֺj7,wI:vɢƖ},c۸9S&)tȲFMUt:-a=?w]U ߢl{ ,y [~9#ỴRJ{G\y"3˽1ѳLmU$u11IujBDkv]ws`vk,rqٗt.WQҞn E8٥Z0`H_Ԓ%J{uEEpsK+Vy2w 0}Idiǹ=W5ޫ.t3~BG^%-l9@ˤ=%_Psd]-RXWԋxg'\ot4y1.?k+J͂!8l֎C-&j|'\rUی5fF;4*G;bYQuI'ޓ + acskxJ+)娃83ЫtWDw  _kF N9WbZ 5M;m#sj)jã>8:{,H \Ln5K^% s][ov<;Xe=|f4j]࿖}fǍMs]yzfŏ(C Gc؅o ng j1ΚI_'n?zv+icY&*nK:Z7Kk's43>HÑw-chN `5=;\jeg*5qrA@z{=_g{*imQC ΪvnڎvVVgnsiTYc0{ivKۨ\c#ƕ8ηmee}Ց- bvs sۇ<*IhȈf2> -"U3U*)f͐L1ɕF6kU;+E 댝RAvۡ9MTs :=}9~[E ^H46|G].8LuIk[$GOzx>U~<^n-|.T%3!vgc2VQL@q>J|47p6{ 2[u; r6APCJAF#hn~҆CK.LtzZ`| 9tSq|NJx%") ƞ@`a\ 6&~Jz! :eU#p?T/nR;Rd_|TuOAEyuFK~Q_RsoY+x=E El?}IidFRѕm4c KONJ狷=P)M g?\rI`\8Ltuji8%9ܠF̮x2{{ux.]!򴛗¹%E_  X :|-aѓBRjQ#{X(MU? x#Kuj3{/[m f``W97@ Tg3`Q2gD#x i'$퍿B(*kE7Of0tMU_ K#u>Tu\T-]ilBɣɁOQgn\yqm!P F][yʈ-Ǝm2ӈaoV=Yᚥ?(@lN1:Y2ĩ'jc}Tν0`~ }I{/T8L\xϯelw53 @m?f-d&C'fotq@)E@ Ck)[ eq|oթi\k ~őKpד<Hk槦Ndy]y쫎ܪ`i~THY|q% }꡶B{lG9I$ys; Λ=M4fx'S^|$泐6vG,nAMxvycTSRI%$൭;䁍sONfWl; s @<:{]}-9$ }SzzEVR,Qfk@Ǥ&{], kZ28 sZWY}CixcLQD_<ɛRor,tG0%fc.E$lֈ%LЇ8 䨔#+hޕll/TMmm˜ iV%E֊[mŢH&i=W=傂$>ӽ[5`Ñl>oK|'a'`6YVn.2^Lnm#gR ڠV]@dO?V,7*Ymw*Dl턻K@ I;WQEJ(^8v7=֑!_rQwCoup{s}9;8_wW { '7 τŊUEp3ag]8n;u Gت௦T:"tT1h9沂Xqfa^Y\_xV[Sqxæ O2]8kmD25E{NVyt:bpzGKC--5[jX~K(LYe\,kKV]reW$4,8Sj_;T7i.;b-SF zZai*e6HlM&=z&Z+ ۀÆwiGZu𱲾H3JB[QRZ SZ{Z?6!a=孨_`\Ɯ96}£}M՞^_-gfF.hcJEeK׫lNƻݯ vP K/ SS8"}DΓ8ח=Bt钳[R6;|*5n:_]쇉$7t55oөô EEX)= -hBO =L33%c%~D*FND稦 }Ct 8#Qq[6>s!9<~5ue etMzO=ǪSH$;/-s1ݕskE c?744DtbV$1S.?M1 å8r`qML{vqД[Ԯ%\)?f`*Ǚ.}Pcm[YVʐysю?<`*UvvR7?\~y_)/09F23h矡Pd EEƒs0G,:*|-*Qw]㍬oaQ ;hN+)".-.qU~nk+)N>np}Z]%$x6~ܱF{ݔ*Q+d,kysptN5Cvܑe>lE\ck@vq,)QLЂ2(o7YIS& ; Ar Pv ^& sb;ݘ2:[n$eLX:({wFz3IC rƬw{zD%i #Vp~K{? t4H Wx7Y-t "GYVOOxy6j7ㆸgK;6YN?.iAqq9y=Ro-`;-J c2@ M* T:`: %e\TX| Xج.hh7˟蜓bJWЮ GqszSӸv/i l͵X1u8?v2H/0]ѼWPH oZEڿ]F+W*p&-h6Qh57zSj4D`=p1-?KJKx~))q'ḃY+w{S_Oh^"Q h2Q =U'glei}cQ'kk7Ϻq ϵ?f<=%;kO3<@F7fHYażһ9d#Qj~˨*nWܴqXߵZ1.dpȨvO pW?b DK+Z|gb̜+F?b.w:_kmaF:j~ؾi.#|taG=cdlp,FAX2'k~y'k`ke8韮Hs8"m`,M6 q}4zTjo֊]HeXԍ&$ \)T$X[]'BCpюZf XoyybZSr H/pGukWW0D.Msj8m;ܲbb3¯en2|0Z#ͷSMY4ZZ̝$`uE<^X\m_doQ\*,*4ҁ y'vY Ǹ=w&૫uGn?lѪ t2eϘaz6*xpJ%^ƽ ovzs;}2^>5 9՘a:sl_ds[7nE#^=f{L=6qŐQpŦb*(ٟɩ>MGg D,6x_uft3&ٶ<eq7wR?ь/TAYƾӇ b>a?=ÛKeFAPqkPe|nw 5$7=]aiDk8-5|n #pԽ!7lkm8.ƢTZmuݶi ]š'ZG=kEOXۡ9=X dΫ|G;mxK ~\u.0ˆg=inUt<tcįl0 ϖY/U=kh %9'?5}Y"sf.yˋ\2. I/(W3rYob( k#m40sݐ>}}8A2Yl筯s#.p׹^ZH4#pAWMW8uJ{5)/Ŕx񑷪ޡ+ @KYӉ-$(ZXkF5!ID@DDD@DDc6: .=;.7Wn<&:=[~s1W\m .>sQĞN kpU4'&HN~L30q,Qm2#K\"0ɰ:ivp&7Ao4UZ=C,En=>K54qu6L'2-Z- 62٠@Z=@?E'į- OMb:z;cs|IPr= DG1Vͩh>| WA xn"AQ,?\[m(˩)(o7K⟧]~;pGW 5 j)㙮k80l;qP孂BNe/2чI"Il.zef(YE]kTNsc-c9u|k9K^-CG-';I9"_c~9Uƕ3).NZ3GT9fyo f"?>f!eMmxo|f@089od t*<8|F-t>];g-&u0ԲSڧSHis^ zrQk)`tmi$ͧ% .`n qlWޮW3!ugɄ.gF+AN]DD} Q*Ys>';U[꡻P 0*ޮHY r׽I\0Zc3|GP=sHT%=e6f9l?,l~E;ᩡ9z"N̶*)9"L|e_mUm*q(l5cCIcy/NJ4W uG?<#ly_!H*ifsfK3$By$M5% %{h9a)3{DV4SWc\Ep5[|}? ^w|QӷS˔?Sq/sZn'|=pw7(mSd,]kWY)~@242A[2 F3[|1N$"wI?R}dn$$rscpHu~L^kZy>GOm\FHTY0;`xmT/?ĻqҡǙ~W(qgo^0вQ}}F~!2O]UJ"˿1{ quWYK__cvy~lgԷM+--U8o(llFE$D@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDZ;z**}5#*b?w,s>J\anA168%Iqdz.6>4:I,sTSF.M5{?w6KQ44p#`Af3{4,{C!bj8R;Vж1oWJ&ד7ϲ-542앺A% 449 Yǵvgjc$kq;N8>rp3Xv tR4|QL([:4:9a}ǭ\x*9X߯u/QMn,`cQQ76X3mU%2'E? ^Eu1izbc}Z_44lZ>SVrfccP𭽮vig-!f\o}?.^O:_c;% 1wC?d,^ָ@j~ϼ $F8Ed*c_7F!|Z,D~8ēumd4|aQCiT1D\m??3<wkHg'<={,d71ϙQ i3/_ا>˥v]uunV:_cYr%SIp c8Ɠn2Wu&HiՎn1=mo1kH8{?m5pKajds DpsH]z~%岏sK<`=Zd&CK$u1z'i8w䲔 4#ȃFywQ;ƧT<ξ"@m4w:Gfm=#5l~U`M>|J [ni>X%{Yu+r9ÿe۽=Ed~(# GBa8v[Gc1nr8? CSk߈cdiiK~et/doҹ r.$|V- ᷦZ?"O|40kE$`)vh{Ly;~Q{ @'UQ0X"o?Qpu[xj4 {5ܞ[dF\:81G8 kEbF&-s3~)ӗq-mcGFZ! DD """ """ """ """ """ """ """ """ """ """ ""UaּIUjQgSwtnZDu=<"6P>r?~sIwV1UH?SO[r(u3JoђMe 4n>-gաEoȃQ]n4jgei?4v]-j_#:;x--9Q$ӞG K/<*F9`}i8鑘 stSS3hVowCN~q7(ܛk#rFH`4N3MMʗYm.oZ9Ѯp:Fyp!~.lv,v^>#QLjG>I@aZ݆3zeIuTsL$p$st(i&&+_1h_dr9 Xq9YndmdǛK@MS8^ߊLV{T?[{`LE$j2X:R"DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@jquery-goodies-8/slides/examples/Product/img/1144953-3-2x.jpg000066400000000000000000003122771207406311000235170ustar00rootroot00000000000000JFIFHHC       C " P !1A"Q2aq#B3R$brC%Dcs 4STң+1!AQaq2"B ?S)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@A|>y! )^E O0צPa' On{zWi,o֐-zӾ(h}Q=vELI 2Ҝp*.OʛvjS\*uH%KY)+ek"4S4͆i@P)%`}X_]!tڲђsPBc" JRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJVWk-;+;c0=(OU=I Ҕ$j JFI' i8Wp̩)% / i*~vȡB𷇻G y>ԥuQ^S1.&d9pҕۜ a#޳jdMfN-GuX.Z֪31 Лnp.wbr3@zvs~H_YIq}Xq:AgkXyџ6#LO1”S`rUɩR`G3-)TpmlE`mRďq>m"5)TrQ9p%M͕NQi2ڒRgBWye)e5ni}KR]%&ޘN&,`㬸Ѕ*+M:!VBФ$+Vy). i(HebNsg=\e*rW;Jy'8ڳ5=”eХ)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@]r]ioj$\n=#Ŀ:˧GW;yK ޫjUjAgHIX!i?„JG &L ]Ren$Jkj,[(O.8y IFH$T&J HNq҇e6O% RzVBА!#?XCnRYqԝJ%Kqd7e )ЖVҐ V@9T (wQ-ݎ-Ϭ%ܯҬ֫pYQ} W (9ǫK,O-jgGԳޓ5yiIցAսŕ}LC@n{ˑyyJ =~STZlq)Ox<5SU4ta)I1\mJHJpR{ҭ R򢣁{tk%-2`I8[ "kcW̬ljSR }/bJ֦QR@n✫<3R{ 5Il+l}^Wi\&B4TLinMBato!Jq޾gb a'rZLHQ*=z3y- 9m)%,8 sչśͿԺVji2 ^d(o' kHm%j=@ =0zv1o) ܠԇ Dd 2J9Ug%Nh .jHkYbծ-oHycn(Xy * kla=i +dNGZ&MH#8^>`x]<&5^ 1 b4z㼧,0LnV+mwvq2}OvDx$:ZJDcrr cp9])CR)RG2#*D7nuM&Ka"+JS8$I՜md[׭jd?3Cj%-4%>R0 HW+bՓPÀnqj=;1<(R=J%A2F* 75HYLul.<]󔔸zwA$ b;~Vg۵>ܛ2e9"Է0S$ NsTE2 [VŅrbEy,uP QRrkerR!AY(*?n$!hğS6QmzKCQ/;S55L5e/q;rJy;O9sxܯiX Lb=23)REMJT- JA P)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@+Su-HX&j+_C@RTHJRIWx ZFBrBt7؟uvO2ԿLb"@P}s~cZCSOAlzmMljkԷ7i2r}d&%_|(JVV?OEqn8!)FBڰ:)%dSz=GYax0`hɶ*㱄Hi~R=NQ $QԇCvQJBBwH$J}.8%$c?/Ztvc_6֤6x NQztdK*m2!.:/1F[F N X*,'yO9n#tIQ=P[;&MMtNA,E( {]w[_^J$6$%D$`wGv6)nu*gϸ1%[[cGz!Ƒj0n_%Q{ȐՓxO=52eCDָv>)Hrs֦&CCw=HQ %1\ pZX꼶eI[ԛ ʥy uג+v q{KyV S bI7q ʼ-/U7"b@ImK?X#`wegvk/ZVnm:Rw)DnZ}X[ M캥 ާΉr=Uoyp6JI%#ksÍ'c%rz|f9g }nSan)[QtˎRx2jL- AJGN:t=My%T]or2},mjZﺶ / tac!$a=wp[F:Uq|+>u5Y<D AXq̨c@wڽ9ivحFa KI  g:՚[%Y({eqzoø$Lh Wb&[[BJ-\o٠NЉHim)I뚉/9 B4qMOU-%c7 ҨoRCdr>9  3LJҺ3^a>A@t)^II>#>Ê_],&.%_ci%*g?JPPGzLYu<dF&t`wsҝ@ۯVI.,A)#.`$ќؖ]}pĹ'Kl+kHsH⼒51˦Lj]sn{䧞NJQ so2*lhsGN}兏Ieػ$5-T{J7)+ZN2dwVm#βؽ@Xt B{_)^@>حD+˶Sa sOKf/iVTARE9RWwMZ(myϤ}kܼNAR9c+Ɋl7^$kO?p$Box{Wo n!@^oqPPH>ùf",~Ή[F?Њ&W5w.W".3IVO;qd&uՊp*Se !@wUy KԸ^B\mi9JFA؃Ij2R)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J+Mw^wDԼ}2GVJF%P ld)}FI?LPo+Y|L2r$SW^5~)QELϔ!('+jSV)1uŇOʃʀ}G #5;>߶o Bavf-jmZ>?ďTxrp6Vmi *9ڃퟵyEKڴOŲB'GX%G):20;b#19<斔Nќq׏݋>:-q[q?KąvHPYN޷5ƻ=M*w[A B$c t׸N6='nKlI)) #AsvqV 9cLDXepr<ͤt\=pjrˮLx5oNo6GAd_AZC [;vs"QYv,p3w9kK-_y?~&yeRrP GD3sWYP;lϔx-8khwP=OJK]͌|9`'=zWIYz}V\"\HRB0p68JBG~^l2\Ȥ%lxVH<*ja"¦BPqco$xOȶ-+bԲ-` zs:ØYnjS"*&208R2Q:"@almBV@oDoG +8#$8RR(+ j-mrUÒOjֶN>h9'~3iaM$)DH\]q`SrG=!>ڶ~'JWٜ(_y8py ݾ.tu %mFKRV~`[N|=3$XkF=*ǧ HC$D1㺻9-':"!<T?ێfl)(J\[ N}*v^%+Ҽe:m*Ru?^.<;Vg۰d-]mu%3⹴-n%ĺ,t(i ~;/FVJ2S;zHKԚ5q[*lZ-9HtA*=R Iһ(2=ХԌ)Z蟉jr`\"F}AA9GB?:5dskÊM*BaM'ҿRT\z̨ ܘ;BA[N'G}ҳZ)shUIH$-X ՝bf3OZ-okcMKAMT{?)ʸ_Npq֩RVAm5FuEّAܠOW=n>~֗+]Ɯ%-)q\qMg1s'=!]4噈ygk̓ϩ'GFR R R R R R R R R R R6n˜[|6F\~KmԢ GaҖ8ˏp!#R{_;xni;]xqك}M|mW C&{$!,fϹ47JoI/ rrw,t>Kg;?W=8Iun6SzT +u\+qj=JrIdq+%E7nqRnRrFO_c6{ )Jp_|aùuvפ`# $C~ù4Λ[[vSE,Եz_uTk>;lnnh9+?3N;9oJ$欌Gx9cYS9M*T +#ܚLÀʤYJ3QMIӶۼΊPbY?1)铽W \Kk%=@?g=UƔvZ !c > b+yS lHP:W~ϷuHsj.,yoO-Ji\pTҙ~gXBGx*wۮ)KvWT_mv$Lj}Yln[(%)䞕e)tv1PCxoŦx[nLuTU>O> h,#X-BT7T][VT㞥-D7%D61r>bsIӨ(PKH _ڰ> M ˝^CM pxH7]K-[qJFYmĀ =Sv !lBjBs8皱 DRd)'+'?ηǖ%w>O[8| VuM& xW_) uD +~n9w4Li1 uImMĞ'i6ҙZI}T3%\`cAǔ؀!İeO6 %4xNpVsꗛC3IR0coNA5X.pk7lyN˩ (\yӧzސ*Lă_ABnC 6$5 ;n9*Ss|. -wyjZ% (xZ|CFaBJRV~B y0N-KAIQI #Ҭ]\:=P|KSz 3oBPҰ0H'1 BRq|ͬR:bڛ ($'v`{ܚ#@.ilHZH#5ii)@)R #³ִMH~>~-*eՠ$U9:~DxR.0姁[>BFydPxF $&ڄ>՜X uvt_R|CrF$VxܦȨO!/=_^x]fD6`_ N2Ƈ#QE|efGJ不W/mKl%;sǫ?ҙ.tj+n.1cC<.V"c̶N?{҂Cr+m͆iEšg@ m=)Oڲߔ}{Jtg iS y2=#])JP)JP)JP)JP)JP)JP)Xʍ ;HiIS {xk^h[uG=*م짉%_jjk[x:R¶%C-< +_ |MfiF'd}XP|xՓ.3_ݮ2%xq.OI4O(ď۠!.NpG $JY*y4ܵsxPWpS0YY􆑵Cvp*<-=r+p룠#QDzvA-S(zzIǐZ+f$Ga28KM{VM~J?">5-Vիo-YRr1V$-/.%}ktmpsפBhB1Z9e!$8hܕdV~Z׸?KݞMuJ^r܅cWu''=ڟ8o C><+hփ::%|:זkOVgN%;H;ZopU}ƼA5ךzAHl)M8@XGMiSKܝ{eJPR=(OOgmjNJm&IP\+)hv6>ka|qC:dAZFs+pN{PzJkmְFBX[4b+PW\9=xNv9_- .嶔VG!X{ʽCxf1ċ5-ծ|!i?'=1_&Q[jL42Gx Ǵd( cqI{~"lgA}eM(r8GnzV R% Cn <C_ |Zk2SHv,8ڦBck)ǣ8ËRf R78 }9dOrRSu*ZVSQNz~xGbٌ);NHHZG;xjfȑ!yeon@Kdp8w:V8ԏĭee)D% *Pܩ[ڬN9u3|^08x{$0r3$dg98Zc]m9o oG∊C`qr:,hE!9VRx}j]e;L$ܙɐCsԕ|>N0Z VGf[q1|]HRF i-yP8QS[yjҞ ;}*$Gmۊx=)sW$+:wyr8M.\IX B x~W=68}ZiR/v"НBۈB9=LԱeO.-!p O;%O̓i'= JKci쬧[sڴZoT1DT%φJԜ4:p[^]g !JKL=ˌHY۞298&ºF.mI ,OC8peŷ_|>uϡ[!DpPsWw^.tuV~55SoHm\`qs}=z{t2|%  t)9I}gnPr8WȸkU2%+J~b` ''%Թ.o2v%mc֢ˤlq[IҢ8ӿ5G4RO`}?ε9(_1cR1!#Wz`Z["fisXKKhHB@ qP<3k6_YZ8 g. Y,o*K-G$HXuɨ%֐p ~un$/*BIJGQZK4{ oZ>2C-n)RB֑x=ė"kRZ:4$T$0?E(+?ÝJ6 5,Mog"+%+|~l*MFY5W=!BX̕gfI (Z2z>]l/7I2%KXˌT8g8Ca䷹A ^9$)noO+5s$l̿#8>$uZghWN9jjZI:q̈p]lIq^?ZE.ЦTˌ|*ܑA<;WM#O^[Ɂ6B ZKEB9>pJ}c{ \P=սZH(w nuop53Pkr ! J'3C%]m7^aPNjG5fDZAO7ETџ߉ZA-kUh(-J"Ys[Xԫ43Wea 'P)sťm{? g'ӭJ=^3{˘׷:5FRPjbWO nC(\gY8W[0eб% !ՒYP9Mj堕 c51g'PI+ ?>?0>ViUP&j}5nW ClRM~Ojwҷ3汯Q$Q||$f:IrRoI?A)CcB}f?~mHGwQ+y2m_f\O@YmK^Y?ne53tݪΓ\Ky?QEOoZ7TqZoSڷUϹ$XAuʾ\3L'F*뢟zRRpЃ\{Tʜ*xkK6a[e($ ÎdyVD¡0Fzֹe@BqUS$NKHyr;;Yh!=ɮ/ZM]o^m̯PY~Hm'??kkEէm,ۋi3D*=Է억;D4=@n`Ȓ ۸'ޭ)BFG5\EL3f+CU+$=Qm.|$ʔ}kEn-xT.8xںM)ዿ/Lq#)l{x^46 @eV1;M  N 5 !; #WRpNȬnjIJۜq.*8STPc{g~A9 ʀjB|w0@I9*ťJ)8$g}+q *X*oٹ*Z :Fmj/ًP7"sӎ->ly׺pI+jFJR((((((((((((((((c}c2CM6j)$+126-< YȺV(RH)O_Nx^]\y8 KX HT-wxSli+&#`w9Q}qj.<>ʜI8%'ã\m6Sl /}n檩IlzYW\|lwې Hq )?RTV|rkWn8Bڐ JOU2IʙV쟪h)\d2նmmNgXVxm'08֭i lD"Y ˊdڽ}PR3Gn;* yKa +33VoyȹCe-# :#8ĝߚRIYerQ ,m;Nڮ_iസb@KOL?>.M<|[V p8JuV֦ nHpۚ8[ʺJ V쒇]){+NYqҸI"^ޔ~-8ؔK|Ңxbwۃ)p>Wͩՠdds|DHk0ruDᘫ ;?'GMNSlk5p\n8HHR2jXN\툋kP1Z#nsOSjl#mPRUm%e= G=՚Ԙk#2f8^2wuO?}o-K<GR@--e6WjM},1K:%\ ԳV_ӿ ̘6ARR>l ރJ\V&#@laVFh:oIeFS:ʶsQ[&֋lo\T`828 ?ZD ,F8D֩mB㒜@pGzD=Ejcul&o͆gbQ:^1HyRrL},;S8Vs5 Nmr&.DW_%?<d`gVն.D䴭CzGj˩WzyT ynFp+I@=Y[1RJ9+jr=cԦ^zTĨaZ"20AqgriV"ya\:jkziّgZ)|S78_p*NP+}zsڴ-zmpIkhy% ݭdpH9ʂ2pɩfҦY^ӟf%MߪRsVIRqZµED{  .*=w\nWS/\l\iwgng)#1X52.۵LM?>s49jQ JT7\qVKz\eFY؜mۘ1.:yhx>lws{^f9&%-Ho)p3E'ִiC-6TEST ۅUsF>Va=yS%n1[B_(,,(zUr3O<4֍A|}~ * ϶1Ǜ9ojF@sK6uVjϑjԮ'Znٓ!kVhHE>R7f6+Slڠg˶()a@y`(V6> -fք)۝nqcO3T-%z )%Vfrm#iZ*cj[ Trvc޵fzV0iQZl-8$d'Fj߶^eoERi ,$B9/j ˳|;Hd~$+8 JӮxɭ7ūSNK7'cSZğ9ϤE{[%~% rޕ$6p#0I{Q{;{WM*];)BBraKd ;Ь-\:)k 4$!Nʙw鞩WZv.n%@} oFǙfֶ#.B瘮.%# C޸M୞\7%*6OniG٧zW~>fmHW&5I[)ѸଶK֥էM68@R%?SuNʻܒAK{s:A=ǰ]`6iډ<8-}T~mP@GTڌ2JOuS^nBTIP}gTu?iY,۴L$q% c'q @u7{Ϛ=pϻi_ܼED?zvV-1GB9H?Sui㷱 4VV87SWJyD?JVWڱ:wy #GZ3e[v;9+*T$vA RV9ڥ43x隊m$LJ'2WHPH~tXٲ#vT9;zyA(Aqk[g⇖IB(ֶB)``p?E׮d/_$U|BI[kA5-ŐCrCGʼn*JRJRJRJRJRJRJRJRJRJRJRJRJRJTyZ9:)E+k[anZ4!D)sy-膯Fq>YQP=Gv`eGqq3YpzkMdloiIVY )}ՒIVpw?h$~[! Am`G^+i3Lõh&~KyF!O+h R:xMEj Ɠ-,'bO9MJ+70f8wX@<Ĥ}Hu8;.RJqϸ_ټײ}Z<CjqNn%c9Lχ~yy)m°:=pN{Jׯ-;!ȅ*)$Js|dZRȆ닁sd2V֔ !yP5qmmuMV2#pvS)y6O3;P0d`昉_.# 50cj uSTtXq/z 'IV=IjS@9#5%4K6KnT(ҽ82#քyҐڢ%6~:qMPH^H. VWo+i'姐~רY->y ' XPg>⳴F-؎!2YY1RJs1VOԵq,mu;cEgL$k&eݯҲ[QăЁtq%ApsjWw$=؏62ˌWZ#$;Ƿ_FcnPm[="J $ z:s\ѱD%! 6FyZTxuv໏-iiܺuu=iRu_ 9R+ʵ,>T^J#HCf϶a%^Z7u*WͺQIr2}(XT3sY'^vzDu'_mĀFBFaU%n[ޏ%jR_[B,#Q)N<hZQFtQl!\#)9 ܓɯ Ԛ'Ekl[fZFy"$`ʂU6A&qy)e@Cc+qV`+`u-vfrq"Fh!-o! PVO~Bq*;Zc@˚c~ՌpT,0x@uƚmԔpZ5[w 6t^z!/5K$jYҚk.(A1,3"?4*uKGD rH=k{A>Սg$P5vхdcݫ*Va5!–[Jfo]ٹ[7׈ $d 1l'3[?"DAKL #>à֒*˾iš{rXqP?¹==x6 Eb}Dˑט3'4ϻ [_L Uҕ5r+um! ]8>mW+ @6ørC8"p0y&"޸vjmJ'J}E:=5l~.Jnq@ :Vr9 㚍N6AǀVw7$t팇]QKh $~]jK-qؔ%`+҄ ;yQ~w Q-DLBҜx,/ Z6nN )JGN x`޲}jsZݷͳȆKmP(ݜprq%nfK!D~n1%^I#ܸfnʥ\nyƤ:ۅw _L`}_gT{Fތ[ì,a Sެ'ԃ'sDX kfȊK)ِ;GCV ֻm\(pubQ W:FUOxž)5+^J@ڂmlIS귯 /yAc(HJXڕvWLs7!A(.. n+Ŷ$1qֶcaj?M-2uBAl4UuQ]M1f߂nSjRAX`G'm3~$oÇmY p]-M yTK⡅Kua sV 5 ը rR\Nv>s֘mo6ҢTSӜu5u~Oml-;{fDք%G!>IO$!YDV:yef8BH!/j~hi&dbgr:n1)QV}mIF0f%/mv%d;ox8qV?C\Dg1Q_-iM~JR6 oZcDMʼnO:CRV @ HRIUrto22amj}5$qv3S+S2CO?ү[dWOe^ ]- տna$!=T(V9W7ßQV]n(̂UJj.oޱ W9 g=PF,geUQX_kV]umNH?#Vy=:^_r~S'd5뷈 U%n(:i|p|AkUSpXKc?ʺC噩ˋv#P|gu+&̸,ma>̊58j $۳ʣ؟?W.fDGJ@% j֝au n]%(ք2[@}ZC`Z[2GY8{MsHίO&gwx(2qeXyE9_`}<6iџ.]tՇ 89H's !* A=j#5xvʛ'R?xH80+mZqE\iߌDQ Jط8`in3eJ^cO:YBTӱX+u3䴕B ʮKvGǡS|SJC P rʉ r9q=]z>9bIFW%IH3j̕6H܂w\ H9PڛF`cySjuVsCrǔ\odՋ-92zmJ]ݽCsN{kd<j25.Ai*%2' |p恴}BnٱgwQ3SS,HAy*C•c Jf-4?1*SgM$$e(=DDR  8O6'ȦT.pÇzQ}ECeiyqJDy6Kh^^uVp'*-B[ 𐣀qrztܔF J z (svfJ۹-'-HH0O8 >Xftśc 6HR1g$}غ#ëSwf^m%a!e䠜c>*mEdBdDST8 ²_}xFV{ ,T: 5vvҔ)J)J)J)J)J)J)J)J)J)J)J)J)^mⷈӨ]в2Vp8sS՞#4\T6r< r~g^*ߜǒI G !>=;k*uiZ*Q*sܚ呛ގY8qQ- +k_Sى5o%NsNZrec I*9%!J@8Zw[Qױxa٭7"Db%+I*)\pEoymř%BSiQ t=+RCRMI6fn}м7QpK8duIum ? ÞCj'W8ڧ73.'IsRRGΎZ#˸oskdHzPeMI9 qWZoShml̈ﰖyn[Q<W+uGy R\Iڼ5ve8VAAh= #Lh|-_ a y JrF8?zטKŹ7IJTT 88AڵV=QjvgBȅ _QQSK*.,8)1/%D8$;S/Ip%Q!J$ $sִRT=_dTzW+0dhAȎYJ##9WK Dnrcӌ඿~J\׬\\2EFwJX}iR51VYJZH)QTaYܐdn9*_S|)Fޏ0u'zOvcl.i1Ll4IzTIP;xOҵb¶f*;aa })HO4|X.::PB SF3j^[nD!{LrIvC$%qG;G=#s^$5Ҩ^o*[3ow(FZoRIXJ@joٶ8%\l qYXuC8W[|z na.CZBp`+׮ejFI*^rBG% 8#=ug¹p$QNM~ed</Jv^5Wz e퀥`1ҥ(O<hN\b312mIwA9p8.4r.KHOw&w\aR n8-X'O)Vmv-[`!R$'U61؊(P/%JP # 3>3m.QP$@TeD,28ȾƷÁnǔx,oi@BH:*tS6Kּh]2mozS`[;\ƬC].3]%cp0Tvy?{L;ψt"c+-ԠU$OWiE鶧\.:R% yQIl 'Z HNw bTڜ99 c㞕;PN}T蹲a2HZNw(GdalZc2gμJ8Emv)HI]nZ5>_n"7$J?=sEwFK:[\I5[q)IJA )I)}')C2ͽϲ*)q;IQIs-IuoF57XV4Rm|gRoJl'V^tYc6:E IJ jZzժxwS^gf՞B_F\Pa (TrY$[/W?c3"(ZjQZ d9Sq AJTr=j⫌OQp68gy_,:`A$g*ORqqؤ~͋S=i1 [aI7'AZ)r3m6䉑HTh(tnQXBP莇|OK]\bďmG˞b7dьvEہumw [gҺ)o!P !J<ۮjNm2m'#Z.m,평e3x$$`g=kA/ /"'rqR;VMFשu-ӑe#) @$6$g89=FTi-|ш٭ 7{B1Ya6wA)czfwHNřiM#-pũE 9 *3~\v#.ڣH>aPDL6Ƒ>)R`]!nnt v^"X}$)idG$ڱ=板*ߨmwvT\~[RH(m6 gյ) c@]ȕhM.'h8R4M[Z͑q[cYleAAb@݌A\^hPݾoW=CSvKjPZR@ I+$<1naJL6\HD%ʀ-p=C_]NKU ,%S-Uy(RF9?zͫ@zynp|F8FH֘VXYz"EnYU"6v Nt>= [ݻL|bLN$#vXo=:Lvnralh Oz[H rܛ?qL[A/1=][IN8AqGw`1fTvxY%V%0ep8*%ɔ\McZm6cmrֽXilh98ϤIJ6뎗v+U)ZQ+^r ǹah *- mp[ݨR>tp,EϳŽ{7veMҖ!$͠JA3ҭڡ Nes~%J7mJQ zs:> !PfKHAR|̌ 2@FI8ٞlE znRVcӅOK0酪ib?b(4ڔ^d$sV2J1.˹S|%1;T%Grc0*ld~ ~lo/@:<۹^Fܓ'$'ڱڧz|eg?md<%>:+V{ZVs* jD t̳s$ ׿52 ٣0FKOŠT{s^j&&mʲ4\Ҳ2d~5#-=Gcd$kiIS2 ' %=Olyp˷N<MrHЙթ#yJ 'yH 0#]=OnܸrP\J*Ii4/vLh=gqJCRה%9P1x%,|2XL MKka\=U 6RTL@X$J9H'qal8[` 9VH . vQ K>L)cP;r)גV_ mRQc9^GLZ$/;}8n$ L'%JGb 89 *g<_뷃VsC![s _x.G[鹌. H#HRH - l'>L .US'nO5˔ϨT*RRRRRRRRRRRR^iO#FwJAJc41SO@yzTŭ|Ez6&%0!YzBQ}7)wrQ+_'_'mM_^5NJN?v8J{w6)m%z|A\5)KdDtYW5 LQf4)eDaX8cZYE&̈@5$6:|Ԛձ.cJ}[h>G%H@qLa? 樃;M'&tke!)AjREwkU6iiLLya!YKEy }zW:K|]lR\m$(5,=qivJ BϨ~ݷ>1~Sᑀ'\ |%R*{GmTVv),y,!@,TI±fDs.޵-Jg*V9YI01u lIqeB}DIϽTۭP<܌ I'W>HGSWgت/) ul-x~U ;HqL Ilĥ! SmmA𱃞8~Kj"Ͳc-Jp^RFېwgzV:9 (4)XNF㎵*Bc9--O 'I=FO4uz(!M9 OEj2ƽ*|,8R)NҼ;՝UY *K4Y.RyM׉Y' 'xfkM=]\Wnf|%[KiJZ*_jp9ɭxLϟ$Fx5d!*@$8КuObTNĆK°vђ9%#!̝^R# 4Rʊ:`B°Ǥ?ҧH IMt+LWVBJ+#ycZ ۺiU5uV`z SnŴ(H#jNF^j̘ >^!Rlү@I.8!+F r*˕eOPFl4u[/͑+IQ۹IS)F8J@خAӾ/%ʛ.%y\y W'A xOmj֚6ab#K2&%hN _2;c޴:Ebxd,?v~( [Df՗ 3YoV:{W*c ˗!Ѽ,'N|cM SV:ͮ3m7t )HHP]HӛCw= K1)Jpkcx˵9vvVR֕){)A=Q~YcFC.jOދ+j8$,Sc?)U5pxU*oI3c.Rs{VT8IW蘭<-jHt:c޵zVDhNUq0+m-K[ wڬ+nAʁ zDC ikwιq58*1w5UAUT1 65Y-2Aʒ[Q;Bs\KiZ6 J7V\;p;X9}WTs׬*ue5-)C+·6S]{Ӳ k4{vt{MĦSJyĺ[-C黴->*ړc.ۚtTrbG*r뻃 '!j 䵷\zvm_uӌYZ;J -$67OV{_NoGTjeL]J_3 )œ4pFq#mv 3R)#kvI;AFܵMסu14ȳc;-PT+rmX=Tzs4(׭Mmѣj=;zFԕ[ /QqqPSqq_¶ܼI^_^$вT@fik6nG LLHNIP8؜u5_m;llZr{oz:RWȹeTT6w+r={9lM3Ӛ6ׇ5 2;VĂ ^$: ij bAϧ ?.~cM5XNnjUlk#)LbpR{>ƠlZRb\>yԎ6㧄UOSԯ%pRƖݮ%"bۀ20'?jm\ڿL.-m0l*޹;pIv2x_Z2IHRV'q˘V%#Sjk(ʵieaZvSR bm6YaR$ *H{rj„:Myj#vu)JSѕRp 'l<j9z6Kj} -jN)'U p9kv[׈n7…%J!$$ '<5ξxxKқj.JHXp+#fHyhrW]Vרu[Ғe mܙ^%ާ=:=1#jae'vG`F .{9u-{3VZeA+Pݎn+SKsa)1lrHq!+R%E[RHUjUSa6qY2F3Pe9FoYb)ˎ#x$pIwB,:RvkX)mɹNoFv9S]ɘ*ްeƶYN lE-Qӟkm6=njWߎl%qO@rHVD‘ * 8ZAD1:EMZDnUm#rH䥾 0Hy[h6u^$, 8=jU)/.dRۦ3k"ޒuڥ.7]MvGfe;Q9#҄LeD\!MKh)[|j5T_" ,R+lz[F~R'y*=RjmC+H)j4AIl'瓄ʱ饻vN}A)m 7%D#c'LiL]cAUlҡix:TrsJNyX 3{UٍJیwmݜnp*aj2M.SKkZnJ cEHOBAbvXA)RҵAz*eT&emLR(BI'x<1!ORlp\`QNЮ Xӑ5[S"5JJ(ؤ`m*A8 ~+l253KD Y;d ૞jˤ=rp _! [n):4ůVDIbu@@ HYIMՅ :&*\dRR -CROSʅ ms%MTSwp2JvYIX8F\S15C,jÈRC{8) JOok lʺ|j# (lV䔀giS`^C.S!IuŒ i"G*63w29"T6ӏ$ +h1Dv\2&J": sskeCrmƜZ2*fVDP3O$7hѠBdŇ&36ԼtRp'eM[.ɑ+ v`.-KVA#Jں6mě=a R׌Se)E "#L!)VAܬmΥkC6_TN}t^3U)II>Q7&:LyNj1Pˏr1STKvSaKZdGL`)sF @![33VY9qbK;$ &K\\+c ӝ>[YI V sVqN@@t;)48xHA89s Tt%IOP |UA~Lq"Sn\pʞ^N UcOaw a2Ӝ/BO"#t2(pHW+[+ ;z+zvq_Yò9uD*<{+INpp~fAO5%96畵^ҭޣ*!\yWn?}KJRJRJRJRJRJRJRJRJRJRJRJW c~?T fdKY9،6e4g[m,eی͐ !hB@OAz_ZMIIa}R\e qהNZ*ugȍW&uKehIZ$d'<۰WMio -D'dҘn\y(TN82N)'fמϷjqRa]SձՑ$t)FIk긗ȎT+`0ʓ'%#rkKv}E?-)IRTv2#$5bح e/Ryn䞀'gv=>j 3Oo% Sy$ ~Ւre%+l8qQkj!}y&MqQJN ܔ +9';s޵{/NJêۚS bnk5 &iR"&rJd26 mlV~!2a8ַXuEIq)$yloS[HGVHh$#@έQfawC\FҜpz?1vWI/Q‹FfZc,JJTHVGlbKmD,[dƼN3(⋉)+ x0{VY †1o)LIagqj; )Kf0<(^27c\q{zvu@m q  SNv#ϵa-7)'qzV[Vy(lyc?T:dK'&&,Ii[*IkO` }kej GX)uB?RZl=u>j\HqZya-Kl͝}үktdsA=3jGtvKK7 r묯yT:ֆ/?۞S:ƻP~J PǨ8ibf%y{P$t>Xڜ5WK *[&(Vl/G3Uj2T5KmQZl#sk% % HN}J*;zǥdd\5N@ZPg~ЩT}ګ $6QhdĬHvU[ۺ˺9e&J`wp%:.ϑ wBħ=H*#gd]LK}lmǎ{~Q@pn JvBiojU*Td v%A mۭQn.W%} yD^p/RmJe P7cXWx+8)Qu`~՝ޣY'uBCM!)JJ@a3u.I@OV =p9ʘZv)4U  A㚖40s5r.31 w+?RZDc'<ڪR$dq$m p!>5Ddvgd}8olP#\JkQⶌzf׬,+S‡ 䦷WⶶǐA#03-ڍ qCܠ@ڼЦXJm{BϖɎޔi"ACVyKu(N:BW0k gv]?$}KiBS!Bgu~|-Gt"?dhn@.9ʒ G?tW>[+&o$8GK#R|֑$3c<NNxL껅8֒SjsCqpAt,=:W={yw[FUtVqb+riIBJ (-OzO }-ٞI)[mD+v~ZG!.֗?Kk tTf! T4wy-~R `sPv-L\aI[n2PϨuD"tŮJ/!ƑݹJ;)N0HUZnz&dkOKN6܄)99W m<@d5S{[^UK;|G(ciaHK!iJX .) r>V' Fy;nr}Yuj32^u.;FFFGn1%:(ꔅ5f;)UgaԍCfۼ9VH'=ͯ\BBCejOU``K])Hm9'iJ$sqӭhUЗ7vrboK( OyL,wH>[4LK!{w7Kڕdg[u/0Uml\uo>8u[q9'jp muK_n Kf=;N-[[X FBIP@3ֵ\BTmEKVi)enNЅ|SuL1oLKPf""RҔ+~)rYӲHK$%QA`IH}ՊWs>>4َ3%j (j9=žnM:2k~s2dyE@dP6TpJHHl>"2oW)%ƋN@pWynƞ2S%^?!zkm핥(pࠟt8tjb[9HF6aY9Qj >Jk/ɡ̆TAH.=1VW.ԍphpIm.,}jX)H5F/cQ#vcY@JC#$Gj|; F VkgI}kJRAQ;N09~68YZ"dbԬò xy 9;ҕ q2jyuuG[xFqS.ϡ-Nndc;*8t*\Һ:Eѩc8`7A*>]x^X-+ m!OANP pRAG5 K PtvU%pd(6 *??JǠrD \Zԕ(dkҹW FGs¿Ï ? n$=vz֘5BߦTVTP)qO%$$!A'ԟ{ROYzyժvE庰v)D䑁q[+V߉ ycr^塴#(7T ;q.7zY[j%TK+BRWRY̕'DɷXhL)Bʁ`s_˩WVDgJ!(aŢ)RWp;T +M!e*:=ϖIJ-cQ稭u)_+j{ O%# `NV6_nZRJi.<-kZ>\*OOhvFUH_.ɮ6JZBB ;ҔHܯd;c綧ow=@6V$R˜^=l N;ݮ&2`yy^T NzAQKbc6,Äơzl ,J$uQEd{m]b.qCp@)F<6soҫ)yeq=( #p* '?~=U nm⨫QܟQ[IVi: rŖ@wl’9Q'tcSI;I% A'iI%;w7j+q ^!PZI ;)5&X/c>6=4"C-VTpPSA_ٯ[2nSJBB@p,CT2zdqnD; wMݛeAJV#)[&GӞGp NTˌ?zAi+}?B-BVJZB[s/() Fp9Yn흩o_WKlyE8 䧝G)j Rl[tZe*QNUNr”NIY!M(IlӾc-!Ԥ8⒄x*ƤjÈ7ͱK@QIOr}8_puW-E {j0Vv'x'A*@gAǵ>?~ 2%hCJ:l,jC~Rʈ9_k`HoLLU!&TȈCo~0y{<) ݧnQYxٚa ۂwO <p++ہ4Y.kbqؐS=Ck^\H8%8qCd4Z{H@RQl8C!SkgȐr+ZԘ`n()9 !CMblc:JC*Q Pܬ+ <_I\l/նN!DG'QumO.D%d"'vSr15'bmrD3We=sJPډIʎxMgLClrKa,z2AQHڵ Lc"ۡCHujuÐA( zsB1\P}lAu9lEN&akQ N@%9@$R3_c@T\lȷ|BTrŞyշ{Q`| &AJBvsJF۩Q Qw:Ef# p%x1ά'F#?Wȉ~bARvR Scpo7jsrD05B*!];%D|z&%9|uL:@m89|z8aw+1'lUo̒ڔxNr.Lk״raKQ!CQ'!Y<}~]Kn-(%Jw*^a + ?")s4pԧ$ARNqM@: ߭ cfcc*A*䐠 P[[bǑgT(bMecRFpQΠZ}2۹(9u<+5v +Rq! Kdn(Sۥwz7--/؜ qHK`؞qniJQ R R R R R R R R RZTX4WMCtfq.RϲR9QAxeŵ Rx~{;G$~غ-==fp%`/;1Cx]/QݦIfyu=>'(KzdfnJ\qO%+rH}7u=XOx>=*H *i# : 4{M[qI8 JARe u8rie/-鯵1i*ѣ!@ >7+Uy&;\ kkbԸ £:SW銾u~-ŻӐ[H@=k_Ts;')=B1^\^cRAV<3“Ђ;db$nj3Q[] (*e'ߑU' +W[bYn <JTA"/S-թ_z;YqԀJ@?Lz Υno78JOjVM][Pu@4.nsKiE/7$n'I+I +SX]mN_֬#]n)n$u\ʪyA2%+Ԗ#J5ݯKiTK89P?JgڛSvLBϫ@NZcE6q8SOǟt*#8c([HRTA= }7_e{_syҤ̶OmqS(+12^62wsV+o[ۙs=BWj@i(Tܓ%'ނd%dK2 ڞɈ-qS=#ODQz,,|oan R%쇟q ݽ׷G>-Ŝw`K̷Pmp x =29?JĶezz\w7i-y6R,a*oQ-͉. .Oj_)bvX5ۂKI@V̤(aI%h%  _ v㩩WMͧ|ˏJ="Ki|5)$,o$ة3rf+K)5 h2ѐRA1 .$j}?>h_p!]&i9B4 ו>CPKJN9yHȍ-PG}5H^Q +3kb+1-Q $ I=yC^x7Gg,PuG$8To$%D8W#i~)-!')N@YVR8u!Xp8U9;AAJќ_PYlp''5r@;F;g5jvcj1gۥdB'=q/6C02Knn) 2/ m'ۥ.<8 5[NK/ڼOSbhs m Pn BF9.t̙=.\X`aoZP+ @, Mlu3ę"|Xj]ji+ՑvNo_6tߜc> Ja%^Rqx=^T}[f^jh F%HY F=Xn]I J^RvrGڴ UYZTJoJ5Љraa zekkG%/ڊFJ?1[&SW*VZ8 /Gr֧`me7I]69LuAI]pe@z0 EEnM\k.C)+q>r(p#zl-"O}?^3\Eana.| -}^I i.U zf۲^!NJ.6BSTϨ >urnx[f&$tom )`r8-L=G㖈ƚCeq!8;rrKPV p}R--xn[>%6BBvyj_ Hrs]bct_$CGъ>)l1IS)# $5H&2|(K}lٗK^n-#iOC߶uGZKcI8:!BS<)^a!CЎ1Ptr!/¨fI) >, @&z@Ez6?o!5 :CiqS{YՎanMb[U6K \R@ GqߚQ.ܻNaAMA sk W*;ӿklCZE7/c!*vRejHhzppjRq4jR[IR`  rF?C2"Fxo&ڻh:-%xޢrR'}JdlG= M}TqH+I[AפM2^'ٚ[Xm%] GzZݻO鋝dfabҗIIBܠz.q]<-RtKaP\k{jJR61CHׄύbַ&߼!z:UHN76VF7lJQ+>ؕtM*JlݩJ bH##p2(|r55t. NFmLI8QP]>z2Tv\aIJPԥY}E]vLuEW ئU(-{R`q{նծ󡕨_-BR3)%#Od~L[nyݏ9›@io!IIړ}kWaE=K\]xCCfǚPN`p+o& b6SwŌ WNi`1*%?{X m%M@z0ŷMRmnu2ş@K %^ 9݌mܻw矔|bl4 RAYoH>`H/wH2%wqVA21pkhnp ,YB! GAZ \ܶCЖ˗\g\.>-`$Rx$㊛ggκk*.i#HY۶Ƃۭ ;IZ2؋vfW7U5NB\N0$3\ӊ~i߶H*ڈ܈)mi'yq#562Cc# MIDdn!A `rpTdZVMc$wۗ+AZBz}k#l1lIu.P y Hp{]ܛ=ŏٹݖ[wKLެI= bvdasrU>f IrrZ4Gr[$+ G 랴VW.fUc!KPֲup'X.Q޷#0<(I;CQͽ`D38 tpR`n*sBೖ_f 7Gb}JpvyGm ʅdOf,yA堧 JsXd͉xaj&ǀ@Cl+$BrH ENeLL%99i%־BrTp@ʙb22MϹ%2^53R'4T;d]-h#C)!+R+Sd]m r|L,R`I'n6^4ŎZ^m%fy%opm8+#CACr첾5ɀȐ7$sC51K-ٷ}6Ǯ3ﬦCn%h/;ڕTj.&ii)OI* K;w LhȊ?qX_CU\Z_}~r6nʉ'9銾wV\k H.8RUrJrsDUԸr)bc vHN܎Tke aȒc]x&.U1M n;`@uzl( RJ+zsUMR[`je/G-(m*QScqA+JQk1J#n! VxŠ;*]sCjfmEJ[F 2SIl4j863q~_z+(O}#n♖oƍtpL(gaVz +fZnD3Sc"xqR1hr5 ս4 --ejS]z泮RsYv:> ly:&M7u+1xsd+DMC~FGh;:WݿiHiq\+~H(oSSa<ۍןq+_}ԡ?5OnjWJ)!?l6q7A:k\89[+Wy>Қb+_nRvO$ZXWvԷw&H# m?B:%?AZE-9Jsk8Ts~i^M~1l0R t4IO}JܑN:B@%H8HH'MsV޵3}En}wjxО}*+)U%)mˊ)|r9Iɞj}G-E 5uR+V7'9 qp1]bD8LpCz>Y6WnZVmaF-kJ)% %EDSQ$Z7d;L'%+u r7+ u8)PVG#b.FP*H'e Q P8㚒ۡX#(.쵧2sB qO)#C/D0[q )9خmFԆ’I'C[\`amgtZe_Nvkeo sږ2ACTq f3n(OASI$t+mD) "{i vFOI]uJ:k)TJqiyI&:R&>Z $?J%Ȍ?Rk~HPD{s'G*h]q06󟘎Fˍ*3RW!D(qsX^R  eI V3XaSʷqՕ@ǵlq.Gb,&Yy JX QI^U^1Hv+vDɭCJWd7Ӿ=X Ny0kL3Qr QfC#Wz ubtLaPܤ;l)JΥfE,I)m߽iR+8 A 8ڔӍM+*GϬPnZ<[DHۢc%e-(+* cYVNcO;z൨M&[r%hCw!g5-r&-bm /%Ei@%xwǽj};R󓨏種Vp)(~d)VNнQsj_۬S^bXΕ!r.O(#ϫw#v-*u'l͝."ߟ咅/bQIY p1MGűκi2Z]u%m`ydRʊ n wS ys4͓SiEǥ8%*O2RPVQMn. AQZ5*:3Pn"]}-m%(!+ H=958JLDkgm` {- $ )3܀*eM@]!4!6rjPu!sҶQbNjFE) pEk pZ[ ]bܭRl* 2ZnFOG#z\nqm- PÉG)J}4=zj˫nlRJN`^D+]5ѤfZu;ƙuHiK{$ +_1ǽc)4m,]F$.l$II1MddhZm A\>ZT( @[* 2L;UD}I kqi))yI8U>YnE:+-"2HyC4?2 h!j!\xâ0n-iM9k KgwTaiG* P H'$g5IX I";pj;;塠5*t)Dg`s[S,;*[8K;ԭ0`+(GSPWu%<AJ,E!C]H*{\ FkV}؎imoCTf@-9wS'$ܲA9uY$ GB8to:UpH#w+jIR8=R:}$GH?ήFB]F0~Ȣl'оqbP%Y<!i*!HBVQGҬ)@9(RNq #zIGjZ.1 (dj'^ӋehPJqDrD[|&,d`\n9cl83IqU(BPzp9tM[%'Cޅ$)g#2y{vCE4h,黄0I%)mNR@*IP!jd H8Fg}'EfMnN!a;J9J9pDTm9)*PuU-XRRH-J~Gj<zVX3zh^J!(%I $)[r3un#PAZ}vb% INԧnЎjFZ5Mf%4.%AFy NG̒Q\ʝu6]r `H⊔A>^FSR7.Dj`YVBRjPGwOJbu;~m$KTR *N*^7vF,(-%DڧRRW`vqۄt v4D.N7( IhͲme+]%n<#(K$' ڑJ;U gMl6;30Am(?(N N1S7kqYˍ7S̕Kj*ҭvB.fl9=RIp+r@^/JjyMKL(.rbH!!(2q'dɵk+n+kDQ@m nQd xng\kvДm@'ӡj}C3Y1шC03RK² bOkc 7 YB7#F@BPpTzV G?kj-6, i>}]+m7oaYbZ$;(%Zi3A~tjIK}֒To)VRH HC{&~$5H\wmEJ P6m#튗#]B]zIVHI*)F}81&"l"ԻjStaĄ+Vp1zQ? sL&e TF⒥sʀ$s)7clz F7n%.('>F3X+]rfHwF.  Si! JB@>Nr7Aeo{H[/˅tuvIpۓNp*>(m0- >G* H$ʇ]+9Ru0Sub+"Vc %9m}p=;{h:ꤱ5L3oi&15$raRw Pq\t)M__ʑtT[K/ KD[-Nl'ڏ5Q}/e\uC6]rcJPqĂj hvxkW1%j'Q%i(UI BW@kT< DHK6qۀPc}~(\zb"FɿǴ&7j2&]ۍxkPBr*brũe pd+=тޛF0PVڳ{p)HU/rCx07yjKdGuƂ5*e\l[cWEHyH^܏VTqN2R.yqV{$Ĵ=q)Sipr2/ή-6 Oq1 <{ (e2 IRJG InEuj6֯/!6+ڃ<۵2_n BqmHJ%}jsWn( =y f:U9*KnUETTZ[HTZ9[wވDKrЏ.6\ #G]*!u0JvIhB8?*D"ď ="y)8*7D5 MűLIDt|r" pNlJJ.Z`Hpn@|IfNErdf:S. iEABOXVɄaL$s kXx,uOPKn b'jRHRw鷦gSk RZU<)Gx>׹WbQ+fQD!NJ[9NHuTح^ *2 #r 1ֳopoWPH9 ޱ#@]:r)PPS9rO)QJR R R er$l-kPJRrOW㆓ɕDyo+NZq_?;zŝs<5 v[(azY55-zmKkupDR>*{R~:TՠĴ2rߘ>^F~ q_2VTD ퟽MgɻA/oCX83?:*8 bǘOڭ\+DұyG9隨duI"#b8̖1#h8k7\. Km֦<(tEW QPqj N}#oNiJ]2eA%k I8OZ崭ʽ^fąp#qJuߊeaIRʕke˹bVAg)X+_:=hˎ"{=J@ItԋlPv- {yX ʒN3NLqZMU*ͦړxv 6 Bi.^О$zYv_W"L̒,$)pN`1*Z N;+*_jֹ!a"#yUOqʊ2*qtFv]ԉ%E棼 <Vx 3g*cnNnZn+b )Rdy⮎>m [ℜNrEJ LK~Cq %Tu+[ZH㜜w:6aKXI(@RGVeŔȌsHua+juERcA)l -)*ܲ>tPRxV㞕czOm$%D:Mޛ[;p6#ZBVT4BbNOl WUp*g⤶ׇֻݽV#Ȉ)$Pη<8JR2c8~WEj#l q 'Fҷh$m _꧚ۿ&iXk*KIAAs*HVqLw VFvQ˫JOw[BrJ-׀[Q!rP'<Hm%hnsjbɦ[J\ո Ӆ*NW9v`?.)( K{Ґ`dH>9qA]rE"\"Q_mWT@v־~Ո]hp<섺s]u <#pJ'ޕpluvvηp0: Q)57OD[E7./ۜej{˷ k\$$g+_gN*|{! 髬WaN 6 9Ol4r%DyGܚKxRKB$>ZAW[em#nOuҴ֑imXC;J8dUWܳǺAԙKsS t'Q/;{Z_شmNlt5e,إ-R9ʂO njQkƛ%9.r_?uoyZZ7 JCcSNU[KQ`Gy%RIg`״<ˉ/lCB\)|pItHldtz%WhZ2!(d{[S8Ѵ9!{ 6rnZ 7k@hiXPIۃ^y1xMjWo_ r\T$`!! Vz(eUD{]@ MyzϯޑM`yfiX EKuLJLR1rΣJㆢ7.G*Ag8SsX-ȚwM7yuEDcbJla06 <'KFɬE\I(6!@n8MWgFvۖ[ZS 4!*FrN1nnDQhagUi GuĠ97)YR9ۚxs"m^Grkn))Cn6 )V7sA4N FqRJKFŽOG8i .Nvqѓ2Yq<̗Rx!;TpӄDsMp]~ǫ;PY\IlRSmVBG^k7;C#o\*Zҝ>@ mH d%❆iOxǻmةp"q`Rp`V9OMO}t)85(>cV=ԭЕH59#wa:gRI%?Ѳ2i?*RT:e]>UTvnIҖ6elrwBX#4%"ȍ L1P-nYVQ 0jvf{7 L#K1 ѣא qC9p+Ԟ^]nLʶN,2i$:2 ;Ƕ+ԟmZEE]$2YZRTA'qJWI˫cq fk[GHzv$,u(( 䄒O޴A7[/ ۸[YzdĠPd'i ZI9F<ד[+ 7`.k(DlKH ぁXHsȌ[kQfoތ$ p '#b;j[[N^r$e7FdIi[%"Yq;Ut{_L—ap֪ңP|΃n7nIy=vexwIĿN!-maW>sތҝZeJJR caOly@s摎Ve ,GhmН?GyO^ҖLj5Z-,' z:V `%Iy>5ܴΏW#Oy i)Vz,ok^Ƿ \`J 7#r\C/hǝmFaIܡ8#W]%۴O)N9BpCBJS ףǁ勤tF;L*lnYz.F@$]p \7>x`c*~`D ho띊y-U' IpcUTO ?VδЖ={RF]€ '=UFJVl^ZR^CRxHfexe5oh.z –z2qoɫ4YY qS;) Wҵڎ9N"܋md%' 2vm #ާ."̵ͭn2TJIJpHAǨ8=h|iFёkbkI %xBTi^f=9$qb:MaklPMTqi߼,nmGj-6\lH0KT,$!hJ0O~2[<,`bD:qv6WuBGץ:*";/JfѷiJ?+rY4"h(MKTu Hmg.k@p{4jغX#MT8R𓒒J9>Bj 4$[3ĉ~!nA yJq/KES:<߅^J]qIOBX:ěeo9r)< -ISdA8㠪Ǔ棆m$* 8X$8#|ao :ͥFӀB?*~T ;kfU<.X,f:WQmՏFEJg79SdkʐÊ)Z=HDƮlv9r^є@)Бd- I9ܣڢKʤ\DB5psϖӖFFݻrO'vչ.:ۺ?PʐTRTrQִ-K%/-˭kG4*1SmOօ0 j]6|M6ۧ:AДrF9=:1Z"z^-Dm|bcғX5/m,HvrRB9l$* ૪N:UL|L.Dg.[~1:rE^~rkPZᰌv2rIBE<ʭ\*؝ *N8 |\enjlh-zA)TQ$[l~z]ѻPIo8Qs[w[ˇ'H4U!C! }W?,;\Y ySKJ*IZvHS"OsbM斁 ۄҴۖhF@H'9US᳤cse[n)R`?.+=WUfegB S2^bLyd( ‚W6@隅1ЦjGJSXpȠ845>{Y΋+yEY{ q\ct_-K%[CR}'t?Jcp XőXIfCujsc<Glv֗ VMdJlgQeEj>ZjeA FTFqYdw- rQp2PʶT(I=NIjLwdk1n b2a^8A9KgMIՌL,kRtyniSR1H.);[zfpp{YGa-2-HSHR,q"Lnvz֋jmt/V\I7% HJ}DGB~u4s%s! Drpj2pG‰?L;JkX^P ![Z()IeEHQQ{ną5qg$w C7'ܹA\tҐࣶV <|}//SjDHJU*)@rzF#)&vg&`NMw43ek7\)O@(`):+/#!O$Nex m)9Ǡzw>*-*S)mߌN^ uK jTH!nqaJ #s!)=}CR-[1bCG6ڷ3<0Ç*PHPؒ0::wʔDaj769*c A;H5XGvtYكlK}I h 5S|PWۗt3 #@yp2Jw^UsI}P&nr3vpFsԜNm}m%Ů{%Tct@xGdQW[T::p2[(y(K\*tm}%=EMg^)R @ JPHҹ/T/ԕ-aGQTH灒WV%dVjp )Rv%'Z|!JyJ9wso R R R{'ұ(C.7) T+F4R~Z\\K5`ˑե!ĥ JFO$ZۣZFby^Q GiRJS:uԜO?5ֶ;Ja[`pNs#c*1nKm6';SʔJ眎AcNj41GfΰXjIҡ^dmwp:ּ/ݙx3:}Li$LC!)ʶ?U![TKmvR%d j D*S)ph7uYH4Ͻ[gT ݯmasZ)! J=*+6mn.=ٲ۬)BpRzW-\@HbeK\0ZF6WyJ*zTV֮C)ŪT74 I`F}봷˒/1J aC%D NsRR5$5FeТôGGɌk˵\K¯nKnM IW)H(9ֲԉ3Jz%yE/+v7drvLZRFv31F)G se9gdC6_Wڋ .g[炒~;)qQwl)^  8q Tpj7.9L%6+-k}xFqk)JjoZ?h!ԟ-KpI>}ɉ7ݙ2mXk6A(rsAjn} ICV-85q7H9L@T!+ޔ(@n%MPn&mBPZFrv5|e[{G\ )ː¿v|2[o\|K/[̴)* )-J#V[9ykNґn>[EJHSmJ׃ީgfvZÖ[\mSJXEN@" Tm\S5ot){ޕcA;SsUE{bkB]aNTHH>LMdW`]"XúZ޷0P\ W*?R3RdKab,nQ%A8qc;TW' [/H&2$GQaW?cD؋|P(Yu2툴%ଭi@ %#[WӯZ[vd(4FY%O*vjI?c͑*>Lm ŠTBTҠ`x}W)UBTeL_-)  Zv{{TK[5X)b9(kp%hl$(+)SV=a[-iBiPܕn (Ҥp?UR$3k?v?vZBBŠ!dw4[,M\Qn:"/ISq!a7'*qEY.cOfYZA&RmAaŬ (ZJ@II9[. _Z-ZRSK lR7#@ɬ۲b j pS NV69:eCʁnZ i3< qe9IdjpzDnK3:~U!k(#jBQ'*<3ԈiCniQKvص:BU#$X2߅`%tmBe-m9BGX<6k쫵N6-)qJZšR7('^rG%&-i*KmJz,XSI[JAJFppOL@LMT!uy1=0ێ,ؠwckdtjtUswhd\S,vҐP SH8sFS;.6eiӈR)$IOssD&chNoMHuxGiP-';̸ӔU!HCٱnv=OnDbߌS(e患''cj5D'oFԭ6FXnyJqEHXٔ w pk>tg6d&M7>:$-'a}!j ~A9^*޻im[rTEO$'.,%9$a\FU>-MXhtK}략~&ͥ/͞>!PR PQܥ  USc)з\moqKn4%!J!ܥqkկ}R#CwINyœ5ov@*YYPOrũ^OI k 1[1Щ)á(VPw P<”sҶ(7pܒ-%EAI3ߎM5 [1f7"R/ Q*HH=OsxsZ_LPũfKIqJZ'rmP'hpjB:lg9LdRs# Im5K?Y]EJB2)a?!vI@ֳS+Y6;XP賔"*TH0߸w:=c@M01DDŀ:mҦGJz%N-N Z@AI$d`$u#Y(F"m_JlP$I<%=j.[j{)-TxQ8b{0b$7R$R;+RtDI 5}m (9$3E[Y v שj K098YNob{aMn:Nw c~r08be|eiF,v0$`p%Y8>!(thzTTPڦF*= lR&ZStBH$O'ɼZ…|[o'H($'u6oq PE"R.G2xHbO>u$$ri(+fzkQ%7"r'k(^|plrp(KIgBd=nO+!rT A @`xZdKwf r]Ta*qgh5[6;v!L3OIqJ}a(mA8Rz? PCJ7%%)V ֝g򭶢dVlOأ>-aR@BD9#nku Xxݩ '–v`mxJ2L4\FVPROn] ٧ⶸ2t`d$#$PR9 Ud2MZi:LR[R+jIbپwܶljZ_ow%>Yڤ3QbrwDkhnp@V@wQP[c[,IBg15.)JQ8V ucSFfb Qwa@>e瑞vDE-pw3ms$`s欷\.f̩ =d-JY$$a@|QoG*,D(עFrRudW1{elvf3ݪGjA8]P[% 2iFT TArR5'Z&J# -\.D-,q\JC#.-'KJpf,ļw˴mSʸH }e\5D+dGs͜r (88Ȫ":his|#rA RnH829И:Nz L(ـDTO=__̻ir֋||QV6IʕQ?sV؞M79"$w4љa@B@ARJH<%=WN)d9zK)e60P'X0w/,ğ*ߜP8'NI:u.oi$N(p6҃eҜ~NFqR<7LM˅ZnyRՖ4:1K:W(Ε?|sמju5k=W~5-f8W ?*{qKɌu\XK~]TH^}JC#Q59zz̲ajSڬ)H;V[3*q(S1Rڃm# %8 װ永Hrn{S[-K;T 1qijΓo6V;n(iE@#‰KONyZ;N*2Usf0# (P$k%Vm&u" (38P8Iܵ2~_\MfUdq+ 𤣦A dlҊ%)ȯK0f ;x;2rY&tS4"[Q/.BA؞7WN\r̈́mLIsnXV̷ͭmM\'1$8$t8֢zfm(;pkX1#|1{Fd6[R伦Q}>p-7}w浉!GKqBkJGx8 18ˆVw[V7(%[ϸ_+xÅ {]^s󁎕~V$B!AKm|ݏldVkjkYJ[JA\c^*iS!ukeЀ~ ?W R R^.n48OYz&10( WfR3rc:2g'*gb9~k"Ty*oڭq\YB9Vl8YS2r N:ë>dA. F^I?x~Iuڢ‰W܏*K\Ǜ\`ܭk$8vB~~ة:kSvøGy$j`/:*FTx銢 béDqx q.8C늀A;JN HT%:p}CS!ޠF8Z CGqjȗFI9 }9cY4D1^ax:Ӧރ ! 6H=]ie+xHHܣykXJe Yoo-/K +%1kX9E3Z޽sXiچ\C, aA^C`(JMȮ[Q;5M۵ܦ,mus奴2y9WtnCA!_ vj|XZm.< [յ,E*%' V-V( kzv﩮Gedan|T$\pׯ'LilM\kja6!A+?1DsSEE:P1uv;.򃊌KIRd 1鞳cS1 HJsֆA*G:A zծGӲٸnb򄭗X I ZFgAoFsSʰ21{"K-2ږR0T Br0rx; 3-#M"\|ߊwRʞRH`*εbP -4";iK:IIJRz9t-zWdKKsKBFR PNpTG%IK݇Na۴+-N-Rz [UL8vauipV>_+ՔsYmv}+-[;mmJH—'s"̆!\hܝ`VS"ڃi+/[\!meX 1RͱLBʱZq^KeX?Ŝ+=.N#ƴ\mpP =>ϫx51β uw @KVmM=ܢCQkm>m\SbFdiȿ9iIq[Oem)<(z}:-ɢ;ǔR*@ۥcSwPuS7I7=XyJ[peJ9Bc^nբde/6!iT!) BT';q8D;IL=i}yew(;T'9'檳L\mkFd-~1O IJ##75M+IȺu ٵ)ӕ$ߚkrT:RTFO8V{Y\ ̍9&%;VBQϨ{e|6#sUһpu`"7y7yo*qߜF;e#Nf]ʐ- %k*JT8H{ Rַu$iHBANҤ-^BcRô=^&15Kf 3^nՐP'W Rm6h{wp0!zꗹ'I }䕳 ƭy&֤}je gj,n`ryK] S{wB[Jpyk;?vڃk2{w|MS1q/w+C)oޔ Yڮ9 SrDnZ2I$=Gu.Dhv"1zCnB.츶-KuZjJ 8wcB\pZgǷmԕ#2TIRSJSzJ%o H\dsS\搥ǔjN:ϖERF-OXC7VJF6Y9Vn:.") BB6om>X +,j Y`낯si0X*RҔKH9ޮ2qjrݧ4܉Bmi@mAA+p)R4EeRuբB^^mdQm*;\YVԉ>j`! e-a.('ސw%;y EsMZڡ-28@u}e[UI3lf Z<Mq-Zh5'vV ܈'iao $-.dtW>o(jR [mH; _ҭVmkuEQai7"ɆQM㛱E8^0II-]mAM$6m6 c95z T-n(*D?>Ke*#myӜBT 5\RRמ+f%BTXRFAJ=G-ZPqy>d` 'p v?Jpq iA@oGnޒyJ&݈vs'y犱KIsr Zp$IQZq^A)eiG Y1-IfB -<';dt}As$6y)>Eτ/PĔ%.09CnYǭX{s\O!Fjd^EOR#qiJ@PW=9\,[͂k`x6uC RlnIV? bn%VK&HRZ zZ[lpSӀI^t”J厷3,IM u[k>򶠥MIN5Sҭis+ܑAz[nMƷC\xn.\JԂ YI zc_`{I~5JT== 6P=X!XRKW8578S'93U~BnV/K5BM dd@5d鋌/Tq to8-vH Ž~ek.*})F J ~ʧ֧Z8NP@pqXonŝbgǗhxqo [ B0:>pjZn\'QM|#)1jI!8۟cRo=IcrkD&*ؔyY>~NΧM{>&]q!n"'8 *ڼY.8WbU*HRG#nxfS;EDF#+ ʷT#:]^r몮 A~>mMlRd #czTMC!#̌(LUGXpa'&;dYviVʑ~T%)NrO<[HU~ԗ7GXn8A{ZRO })Z1.\ݮ,9:&Q,$'JkwJG~ AJ D6Ǹ#Jґ?{oʈYLp҄B0\00l. ^ ǹZ\m4Kp1>bRJiI;w+z,ӎmsC{h.LiDfrR\(X$n>Gn{'5ReHb8ZBݤd12Ѝ*b*D.}[c@WIN9@䎽`}&7$Kr) ceA ~n,1o8>\z"x~B=J+`ҬɄ u$OT)YuJ< IޫcbȻ*#3**Q#`sۚЇӾKN6NTyHȑ3L ǖ-k*}Edd]hCq:sj7+yݻLҳT;LmZLbc7QO&BvpF0xJG<8f!ڭm":TzHߤ¸\96iry$cp'@kc^ 2yI+S8 f.&M&Mͦ4W A<`iL5Cfm)oxcYX<꜓ m&t7`FLt}e ;% K^Rv%":ǔr9#)}ƧCT#-ka(NT}C9Gft tB&D<!>qz۞:i}OdM\k?R?]֞!(Ϸa`LjIlڞ3~]X:(;*IVS1J,ˆv?jΗP9~F-yO$kW=xRpBFScCsIjbr=>ϩ+Q yg[ȋh΄ P7"JB p[p#Z6.|3[/%*Ok/ "'ҼwJ @wk˻[-9<~8Fe ) 'ZҖsBm$?r֘쉖NF5 \+3R˫"@[Zx ¬G%+`t-*43m!խkR@)R̕=JS(~CYN<|$4r IGz,rxj+"3 >y=B uWғc]-zeKj@6C@*@{֠RT X$c2c5EnӍ"|Xblt2аLAk*l6=cߵ\_aI tF䐢52 Hu4ur}6V_çӂN3߭vw҈K_PBEjqC){R^B{딙,×Qʕ{Î;V_\gz Rb$>ѹ>dᢢ^;{Uen:I32dR[Je(,ݥ)鷞YJXu/+Zړ\\i2fJS* aJ[ `(Jn\ |cȠ6RNB1x&|Υ ɺ%" a!>[p<pncN}F)DC!e( -PFzk1dvۛqjł7%E')PI BsmvRaސy 7F @Ϥ8݂?Zp[vnػXnrLKq(⃐0?:6m;;֥-ZQ?8FGn"#DTCzb{7Bq8I>n"a`; Rf2Z} MxNJRq#;Me#;uvɂ;mJeD'`XUG~6W"[鷙Z]Hl@#>YTl0߸DTRn.!@,{ rA~I D"-m^S aԥ( J2㟭Ep[Oĸ3D/)m*_AF glYn,k|Zqpm7RV;7=偁(iI=iMًvE Rq|kABԀPJwxZrE!bt;oC]g <d +Z7ZYzfrSA!il !VF}Vv JBnj!k.#mn%* 'ь)]҆6Lƽq3f['x {J9Q?nMxƝhT0KiJmHIN2,y5Ţu&.k~PE6[u)ZN%$XN;HW %jgl>K.)h%qAE&u.KRIIS(8$+qxƤHvW{e52y^Ť)K9,@jqnۨUz,ǘԕl<9"Eə7ڊiZ c//,Ik<ʸ_vzxhKAQE-$du7V`ɝpV "ͷq Yl e'#*5`٧ڦCpR![rFaQ1X/Ɉ4źmSrH)J$$i€}$/M."!(JQPu*9T1yZV]?e]-ĶӋ(i)q 'OQzγPG˴~*-aˈqݘJJVpUgFl:[ng;–qgTH/o}KI*Bma+'HcH7ttz.iyVDt2_[+N)J$ʲxZ6yZ%L-CZjOVc䟦9uݮ]Kߢd9؎z3)Yobʰ1I$n%dۈYoPngj),)*w''dG!ie_| aʹn(ڢv2\KFwcVH>| z[ۀIۙڧ;v)P@͖&9 Q[y~^,* $gܓ{eȲ":pR %µ[ bR.@S@ԲȌm>%ť[p'hgKN&MS*pB7::H@d$!H8юJ~2Gߎ:lPx%p I ToHK{zb]ۨ PM%N4)@AC{[,_-xҷ9Cb F-JJRG ccWK\G\r4 yiq YC+[@ lc]w/5-!|JP~096RUpղ: -`1 @8sI&]Sj+<ŘtJ[v<d$-GjR2c 93uЮJQ*]B-+h lqey#q7dA '.ѯRTf-HJF]^|G89*$[]F $K3PRnKR\HP3 6tDnbt~ HC%N)a*1${ agf"l1=,)Ip)-ҡ%N/hIp'o֒e3 K[+sjDqe*}*Y=0y}5bj}-*×S%BVZP)4\Wʔz0ŻWGB~ҙN)B3LХ4dcc$$>{|[~iğc<v66CI*#M 놭-.e[m M[5)ZRۇrރ'+c\?29"bƔ /E$NIX&`ɗVjLh[J|!(RT3I 6ܤE7 +i)3 wmi1O\MRZb8p4yW9Lȹwq*@*Bӎ(+VJ79hQީxKoZVIPz^ưjb=062ѕ8=)կ[hɲz#DjIT 4jOTTq'5gԉ-*k 2G vugNQO7};-9q%V"56Ce#[aJ(UۯZ{n'\ffy!Ki>mWR>LNӟn~*!۹PI$)JR?Qk/̋l,[|X>$4}J^ҦI*J/bŬ4ͻU%[7ӫJ *ݨRa]aBT@uI )9;{ ^BT23tL[QyiV R8Pkh,'lկ&!Xy\ZY)HQ\dF^g.#kx.=<(SwpZ8޲y8@@A:-3zl3soY%wۮ#8ک?jO8\ sYE (PѿY- & _ѹErӊp0*kM3'RB nŸZ:RxR I IP*Fokq5quh. QRRw'h*ۑϰ#[}m^ Y6]bGvz$rNry*ӭ4d:Eh y.6V^U rsRe*UcZ$j1iP[pB B9HrwmC2 ЫidSmAc$.]Ly 6(NsJ!œ+8PX횛1.60[UO6êqRB8'hzBӭ:]}S^rT k{H.$$0O<X %w+>fKθ7!0T>Tԭ7zi0Ȗ>慨w:?ң߁b-2tBT pʺwXn*&u4?yТqUR)ZK_ŊġJмqԻhvw L%EQ/srT# qV^TB/GZm-My*y:'io9pӗK>,-.L  mPNTOOWڻiixZify[I% 9ў#K!}pم;v%*8# #pVNjԫemFmlSV6gj'ib5΋jlC,Ν.OyV};V{ZۺEQ-ȼ}PғjB7$Q;]b7N*DZi,CLe$N$(@p #Dc$Ijm;TRssץAj^q6ej~eFj QR9ۥGYEM͙zj Sl ;OR-ϷJ.:.O͑.K(+qچB@g=8ed<k7yQ9$sҩot;e[wwD{ 15䲅\m(eDrzfLqr=q}$_'딸P kbVV''g٥^?*R$#nBx B~ĄOnm/Xɑ"b\+YJ@T&Gyz3l Ԟe{n u n5}KX J! 1qǽinnL=]k^̲e(%;V '<ǯZ)lEOC.?ĸjN ?T'QyVer 1RۅIB#zdZ`ޮ̀aKv#aE^R#i'>!&Ke2V7IT >՟O6!]:y,ġ9P9QGSۊ0[ -5* sq-+`5 iܮ*>ձ ;7 U'Hv Ґc(raV6d׵E\(^i\ڪK\!<8"ﲞ6MKy/%Q, C;Wx/Kb`j+hI;J d88Pf[|f~*@HJ *ښG2 IreD%+R3WA:mѷ#Lm Y98$b=Lh7A*JA³ySRLf\F 4vʉJ=@';`Uv"RHcHLDbϨoN G$tq^|(U@J葏!>h9^X(r,p?)uیt2]ֵ穲 p@Wc @d(#=sҥ*c{S+ AP@?*Ke@;#/,#_\iĞ֥)*LR%9\IQ ¸;RN|?ʻ.'3ql}y5b tҔYdHUp)#9UQXe;ⲅ%iIJH=i;vd\}zɹ{H?sDeS+ ,U}J!#>Uw*;FUĭ՜|CX6=!'#*ȗVH9BAn $aKy|e#nΉoT;#,MZOzW_gu%$vwTJ59F!AKJPF஘PjAJmwqTļe|Ѩs{E"I>t3@{1IKRR$$?#_b6ÂTv5h7yݱT_Hr9/HQrmBczPi(K8[x+J Q#܎:jZGSry([#i^['>c$~`U7lw-HIG֠0I 2G7_XW.Ff7"왞@4HR^sNR?.+ۅVd(5IgLۈEpgUhJnqV8JH;K'GKо@bdZ[Td812TzT.O1=H5j܀zD&NR6{zm:m:v ÉBĩ 0rN8]-ž[e^l.4ӛGBl}I !Nة4[ْ\[*)R'~1z%0#HCB9'Ԓjm 1nN\FTrY͹8l8y%AEc)sU~,.Zn]Ml9˙JJ+sH$j{%#K^rB(<Z.=:r }޶)(.O9yO[4B󍼅B 6T J7mBTCUʗt *$EKJKB*TjCV.t8[\uJSnqXնKpXzJB z +ɑ')3zuH" o|S+6((2w=5xDҧRPJln!Aۧ5za 20mw&4[Rs[6UΡ:mM&:S3ygzP)'v'I] 3WE@c0l NFRGKks8w 1Dy_a"ʋ%Ayl,q)|#rH+ 5.MtHWw6.;'R`@^ ܨI[MPBi ,w4<95l7;X±1Leɇ9C%Jp#IQ;UNGP1pfRw9rۜA+^.)~ၚW6M,pdȍv~+<Xڅ 烹$ ƴRdS~hkkۂpJ6u5d:j}\ԅ^Q$8qjr֔ ~&T{O+.!*u){V)c 9 X'oVKTT3q7JR60T xP.zdkRvag!K PN6dn] pGܦ\%Lެ4€lT++'>blC͎C:$BPPVPU+>;GS)]UYi%B6(΅x9+K_JvݩL4 7 Rzc>no\q NC(ta( m@6A*l&O-m\aIBKymRlW{dc2p˓ZP,%]I;}'wλv0Ó[p$6rBH8$ulplnZ]K$眞U1nZOGz lC_^0*uHWre;w 7V|,wf%֣zj@RVqu[f礵2mX5*f !JsORp0\mHKȊTJH'zPӦ-l1kk[Y)}ĵ.^};[ :I5».k+V˳F iJ[O<=[9< euæW9,1*d-)%^Y@Zk}Sz'O?1 XsHJ\*@m'rRt?J5sѷ<<[޷ Ϊη]+nS-)dMq8<`jt>#BHVb^JR\ZNR AN\Ɖԭ}Q>6Ʀta_fV۔`~t'jHj%ow-BzӅ4Q'yVѻ:TU(,@k&N]Q&bC,K8 `z(ך721ix`cz͊&ɇ}%+r 1,qm`((%@ 54٬1*qԥpVSJ0=}x'ŏs" { i.$*id`8!I+X3~xLZR|EPl GBFO\_q*Mss:li.)X JW)W9xȬlZߗMZ5S@8{Vݨ-2]ޖڑɓM! J@ Nyj׺Zj֛m,=O3P^ukNm +|rU6CMXiMg9X-w:ƬLf2m %c$n2zlW_Ci:y9*f#W:~YBv8ۨleqoWx\aCp5mV Q!c Vy82X~45[!&k(HR*)9#WX#8-DODkKޢrCP<VFn1VALk ; N% #5[[!itWqVKhJ\{'ˆNL`߼elXR1kذ`ڵԙN]ƣA)h1;W4@ wI+<#Fd'4\2(Odc){,+-bf;ER@i0z<5"5Nķs~ۥrIJe[Rr3S`d 6ݖn#y1(('?]xs8tUk۲b\"ZZP8qi+H<#%֗l\ 3[m(lܔs=C J< zQRS`99|+H $Mpˍ-L!R8 J1j^xupmqӬKLVDfY k }1O"F}` +z8̲IfA(I!7zkMev˕eK[z.d.T I{R|$k:Aٓmy7ʥcp4K# JۑTȶ<_kSoz z\ج/)PRBH_vז k{EW2; E P9'#fE팠6ݶ:?2:ڲ 2le# 7l{ƪKef?FC!@mۜ+R?gC PgT%1^ =U<1嶹ڦ/G5mC猯ZXۣhX֤&e*  )@yILZ $c^dݏ[ cinR*9Ikp5.~ַKVb2rjb(oR+'^Tv>\.3R_Ὺ!/8pO <:ԵhKri @SlӓVSN+FjzfRI4 dɼ8ʢ& 9ppS(gڥ&l-1 ({v[:*yGCҦ.(X&,쥱! %;GJʙ/d"7 teKOeyW񚎂ȒFE!$I%DvV;+*]Nr+8z]X#)w)E%'ċ*Xj9S)C+Q?aT*sárӓxǽguAec>|7^ }79>FŒx@}2 +7/OFD:U}S럄%ڂ+DVtBT_^0RR=!_.:ø\peB_=7±B9^L{nDvH@q*k5ƠyٰhJu>QW@ R[Rmkf-\K mvDm_*W{';!Rsi's{K&S۫ڧB]a`+vXAs8)QҮJ0Z #OE/+Z W: \5THmsm|Bv+sy!>-?[U8 3U?#S9_ڟ=\2q mGH:45ݩ6ؐ/6aB Bumoҷqk2f;x} 5P%,($q9*5娬QaBZԂl(`rpHz f۞eE`7,{5JZbmn!a{s2N0y}M^/βFrU1VגYA ռU$9ahHR1H# Nr^[y#)'3ޛ?2tlZ߄gAq/ʷew%ǵ%7hZ]QRvjNPʇs]'C4ˍ%L>^k[xN]!yFT׎ܤHGCO+b룖=LY!2EZ6ߘT<*)RHԨw&.uud+%J_ٽH#T"% 귐$B0CZ{H2zTtC,m8VʲFJqLm H‚lv$۫[%ԠRF9!Agުi5ק޴L}DTeyl[@R2 T^EkZҾ(Z-K&ù&[K P7%8ٜ+:*XNΣbwKJTJڒ) O(do=#Y4_MI+#Y*MUj{54,yw2aK(yMjB;Ԝ>q5ϼ`j71mQ-œSI'=1ҭ'Zi;%TRGl%%% )ܞS8OՉ(:Rh\m9k%/6YR N6=- ǿ5:HTy DVu{YQKjG pOә.֫&ֻ FEjڭ!ಽP VJ `V}mY0AaLUR$w#H'\W5"JJNj.ۊۋ QZV ԓ-ܓ)2MjQ%?2٨y *BJ RڒNՀUM&jMW3SceNV5.JJJRvkwJR.tȅNmG RcS/m=RɒXrȫ{ʹ!!i8NrM<=7VemAYo]imkq6 %^:e]LBkkJH$qR"lW}˩ZT8RO{rA9#ʸpr*t>e?%$g)Sh ~ޮd<$LFL(rsx I8<ԯi(B+nt~+*|?i60c/.Q-$+#ςoy۠:-sc?Ja4w%:v I @Z kqC)Tϑvi3q\F[Fj꼇xP R Pvb4\.k= y{r"fF;s*na5 :zݖCn2AzRwנ(-y Մ}_M^jX7d8com~rovR )'wˌWP4Ka+[e}z c9IV6LۏVNݬhqFB<1g6Fj,LG,%;dnK cc n̹,]ZNk6/W">gtnDTgq9={v{Lv3i݄3ӭN@=31"6pHSQQH\*'Ú3+rj>U3Lm*5s1ެ/T9~1W=:f '8:ROQpְ*I4FUVv("3N- ۪:Bm3SUBs2 ɋƃFF%T| Pz1O.Ii=?#ꄧW(iT~~/8 Ԍ> IYۀ3TS]wk-r?mgs'EҮvB0qG**5{S>2ei<4).?kqZ{̐O# U4ƟH0P8 %s[<NLzU'ӿU+_V4S:HdP),a$?];&r&5sB`ʅW?{ o [ ]ǟ2j.rq_uO 2Ų2]{\%־ww)>$m+5ߣ7!jS͟9-A{jV2zr>Cx_id p7g>lV|ݏ>x' Fx4@イ횯OBF'<ېWz@GӵP$g'I0@H8J=8>pe\QDT(uP$,'<8Iqug!89Q= yNByGU,:Vx d9?WzHސJByQ6-)Y3YRBO{V S${@*BxAތIǨsW)yr1X ~)b/U=DҭJ9Jr}HgYq k QRw)*O&J|ĤԜUR{ԀwV8,zAjVꪶ,lR@Pe'jAE'x0V=(K(=21%3(^_Vv)BeM#l|4)e[)A+!$Ef2ݩ(I>1/_XztO16c#򭡰Dx?Su| $I?uŌm#x_-?)z)K\G5bItn2 9VFzc:8g]FĻISji P&K{XV|WDަvOTFR6IWu>Ux ╽*Z,LO@0dWr\ҍoJz%6}C*f^U[_09j I:E'*qWyI/QimA?N] LsKIBЂZ䃜uOn]RPI8 HZ7A Y)KB[./$ d$}*KRqeIU]q}ؗcWZ %[!|;UW bbsTMZIuw `#j&(&($ Nj.ǧ74T59QHʰ1jVSTLTyPRP={W<{bTzS>(DA34 PONj"ZEJQnZ# 9;UĒ02;g()2A8Q }s#nN8^RzL:Ɑ ϱ*1pqC9|%I~ubTAUɦ*U$ w皘,9TIPQ²q5\WOA)ݹo*L;^S5hr ϳ07c QUpIq8FGHaP\9Ozʮtg5o^Rסt[Ns"DhKMk]nzypk>[-`JZ(CB?A_c_;okNjh.+䂲gm{d -%Aa _+ܾmÌVU[}hL.a+O6 O}꼞?kӉ= ?QιIQ{2[pPFG 8kZެ$m*\vܜVG''cU1]*ដdۻ<`11UҢ*F~D}G֪JH?J@x)$}(x q2yTH>T_Z`qg}}(`Aoo*#wq֪*zޮVr0i$n⫝̸E/t@'sUE%)=BUNWQTݜ+h.P$#WZ#?ʱ9ܼWp:TvR=* rzBI+[c늢XSؠ7zGU$g#< U10jdnV6ҬZr$r΃ !$  FEBANTr+pQhU!e'iO#?h<}a*/Y>g!PI|mCP_oy܇)/4[u !CʾEDEz+t?qE'8զ4w.6}SUceQu%犀ėc85tKkR=Q=Rc4ePLݧ=+젓5{ VxՏiKR#rR\>r>Wֱ%1}.N$- }NS׏V[S*U3i=d/wM(+(be6{p{ }ѵ)!):i| רF1wQQy?jJ4ƴsw/\@w_m++WrQ=|Vބ!Ґƀ(~ Cּ+e@\Q+Si'zbIj6.)K@!'Zm_W'HqSYeo]Nc OFk\{6/>*L;.1_5VgIT[2p{Di9OPˮ  Q^;W=*<773W=v2ۜTeq#\z8:Sx[?*m:콣Z!O/o$kٱ\{/yc?rc?/qQ |\_Ozҩib<ɲvmGm% n& 'dTW Zo醒1 #>C")H$z*ݸ)'T<ŸTgE3p{P[~jګAN*OΔu8>Ux4()֫"AB^)⫎8S g}rjAN(ʝ}ChNrJh;j>橃3gO9NMxV68T22AПsTXhu6m#za7@BA<qT iO*tz<`8:rzTsSAӷ48ME:ZUh,{c~y?.\q;IKd$CHI ASlI;Z~*o/;{3cq㕶)^)@R#GjC(q'k-(9GnWl{rۇ?l+kE&,j尶ՓÌWU-V*uu@r0xOj 3ںiR;!G'jI'Z )X쏠ej]X2z~OPy\ՀAE9#vy"9$hz DN?cޭ< 7jH*I 09 qcWGʹp8UJz21J&y|򪌃_=*܏F5a]35Q9Vpj$<+'#ޭFw nH?$oҊPNۓǵU$zB8m;uT(#r3s"4cpGމRIRRI~Hb0P9QJ̓ABJ0z`C$Bq$Q8IP4ŠFRyUx;H T :fTzf2uR)觻ڧGU?Wd8Yٯd3 #Xz iA6r:?@~a>J׎x,\ҽml^p.EJL+lNGПjr;]e|{.\7*cЏcZr(+csZ7Sv( rQ -WHp+eum!zkY I * gWx[YJU1HU8U?z UQsJ'0(y P9=Tg#xciȫf9:S\b 'ENx_ ()TJ*>~wsT }HJ:sߓAO3ފn8{E)ڮTD:UESU֊hyiʃ?*US[UVU>Z!sTbS;ӡs׏zsijz+8LӚ QCsAp1@EPӽ^O:T$a$QWf@AGި>z'9zv}3΂ޕLuN{sLU>*9ӵ[ czUipRpvC*] IH'qPi!K$HWJ.Z@uґ =^9Jފ1='Q  )s@wI>j8( P@)ٵXD$@ N@H 3APs8Iڮ?Z;rB=CZHQm¾\w(d#uE2TRQp:(f8 )'Bv a>G5AnA늢+JE))O#n=R0Z$)*#I)#QGj8 Qܢ J@#<Bv`3T@!'9<t)W ҬM1. %/\W*(#bqE)ӊȪރj(NU WG&ڂ ꇸJ *9=y4jUɧ^h) {JcpE:q9NN=*|P1((}qU늡:SU*tc4U~:)fUguƝT&@ryڪ4zZ_zTg )ިMiҭ*U93ڙ9q?pI?|f=V$| Pu$AZL9>+(-g߭g뒺@{F?^=CKu'h#g7}*`}O8 >qMހӓ[aYk#zbqK4橞?J'J<˂-IA[ l69ҡ֩{u"jOXۿZtZ F;gW%E@B ![B~,qE)9|RX]#M$H@]})1\<ɖT6SJp45;ܰ?H)J)J)J)J)J)J)J)J)Jk=AN{d$҃^1nS3:pSJWʸt b qi,e/CS[P8w/b֥/jz,I d ލJJ$GmԞh Ρ/*I\SW\ՒVU@*tni8ao 改$H޽܂'VRy<9EJ@5)%[PUhPsXWo#!p$+ ʆ)q#GW,X*XOH\J;RS֭VTΨU@3T8N͠cb}[0}J˅ u ]':{6v+fc ig۞TA؊Y$+ߤΨӳ] `֜ M})Vo|˝rHG_58:f*3hm[#E(פn\saG>}k 8@!'=WvLԈ%֝@q Ii# jׅx /E>ddGg9S#~i͙]_qm|zʴmWCPc 85-*'wb9 I)#GҲHo#_bJ8>\MTq[ۭTs4X'2}*Py#4:]CjM3ڂ15@h9ANz}+کu;A_U>3z s=)qEu4*9ӥS=]cv`wȪf˻ڠ$} dmdT?~Ro/1wHWU2qT֧DӊJbX vI(O!IT?N1? 6Y]x5 !Iw}aCAP۽CK#$v|4;f_,9y}4 ]6UK~GZlOM|1*[ cu()UfA7snuLxoUlXYn[-2G@I@B 5kZiy*(wLѣbjkwO4"{psL Ԧ|^ϑ+ꍩޑJ&GN>Zwԧ6bvu_kZ7hgw]*iLiKϮnl{n/G)%'KJm5NcJ|DikzG+ܰ3[SMXV՗O_FAe_ʕ4׋cjeg?G?tSiM6UlP)J0`06+=(2yKHdtZP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP+ 0VV=k5(5Wni')/ismM]} XFP0+􄠅MH򮞕tΘLKI5dd"rO#)i[J<Q}CJ٫V!vEɬF?kPΌ_nR|8߅2iٱE28iLzl!G ={;I&Udo̔yjad%DqЂ3^V_ BUᒕ"r@'{ EY?y']|i':_a+jsʓè?TUP%YRv1ӝ/KSbu1I?c U0k:NĢbħF?VdBFeꪺqa]9OXi~hp-_M5t5PkOWէOZ«is@{WIx/ji2Y )M5N~y,I?Wg=gk:RMDV=:*ұ;_-?kyJm6*vw|D]G ~REQr4(&k]N* bPZ tUiQ R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R Rjquery-goodies-8/slides/examples/Product/img/1144953-4-2x.jpg000066400000000000000000001124311207406311000235060ustar00rootroot00000000000000JFIFHHC       C " I!1A"Qa2q#BR3br $CS%4s01!AQ2aqB"Cb ?Sž.gR]?ZO*Oqqϻ1"~M1w)yvr{y|7Q馎bcO2zQޥFT{yund/Dže뫽Q/ݩE?^v[/q뿽XjBR4q4ߝ^CGSTe6ίU*RR~6E6~GKו{WOYG#i89WjN0M.c[PNoG{ˢ \Fv$$on$j]N?욱苝%+Ͷ$k^=g|,p}W[I[<ۇ|G|su7SI76(ZHeoV~NVD]sB2KKv5mM7;yZmg3ۮ9Zm%decUp\5h`e2Q-_kg=/#J /.][ћ^oƅw؋U?,lY'.tm}ׯmKN9Tu86:r_J씣wI'yϲUs$ η|Nd\aDݥY8J1W1.;>6o(19Ojj?IMk~[?E~>1kG\U]T9B;kՑk˫GOGf=:'d|C?J=6/[0??+a/u~E >)Mt6]~ho`j^<`eZ/K`rJkғH* NkĜ_}p+2%Ri( kN3Ҕe$~@83->:TWB̲ ϻBMF1}ޛܓIkaþ_ik\_>BIُEs5)Oc>8l~ \]k.~'_SȎŦIv!\wO ,NP(J=e6f88<%Pr+_WmSLg|Ev3,Ȝ{Oż%(O޵.SSYf+Y; %uVÎ,lRnvּ}=y-aso곧ܨƥ_x+מFdiFMԫuQպykoJM^Ӷ}fr~>:(KI9w祿k|EGe2ɲJ.Ɯ4 K#cF켔mRUM$wVDrXbx-͵8˷Ğk^]`r|EsZ]RkN)y%۷oQq76VI2af,J ݮin j>scWiwKqO^ ȹG}RyFb8iws3ܠד[zq%mz$&KkokM(ɴT,g.rkA QlVG (FX{L>O_G|r<7}WWVq7'cerU]޾_ћyXf:Uo'gO[7mI;ׂ݋:oyO0-j*UeATomg?iׇkӏl"Ա&_\u\N4"O|MWY,Jl|EߒTOaϼQs\Oܚ}2MF~q7-bS̢K J/4an@0ʶ5SD%mmIҼuwR{2.==Yx/vG}BImvН9V?ׅ)9-Ew~}?KO 3?uUcifS'SJ1'$=n+Kߕlh1&>gb1}{7:?95,w5jQiu6k[gn+?-Y#NFw#]x^4mQz^dzJ^{9'?ӑLُ\n5ܭwGW 6aRbpՏJԽ\wuN1QKմ伙ĔUmVNxЩ&n§ Hs+eNS4e(MM$Qg?y]Z J޶ym&[{9^ۜlnIRqܻkrOr%շ+-EtA?|c1VnMJSJ^IkAN> K[P}mw_ޔ֣0=// Jޤ}_8\L^btII|0wo9o0>}ߩN=VbKI,~;woNm/ )j+Gd<Ǎx c\jRȱ)Kv/1{5[Z^ۼqe^$,sV_?G;'lA?~1s8\XNa\PI6OVg_h^"_ \S`⢾Mm?3>b7mmɷ&F\+'nVTrM5}45[Bu{=_~ꚃKc=7)YmJw蒎-G?_#3.;}P{rrMzֿD|׹yFQWNh|"N{(tbӒi7vEUSQă~C{oߧ|M'moFA`s*uF[ߖ|/`?jUu1QnQPi>Md)*,Vԧ5}//|ω$]nKZ|UvO"]]?w2[/RO ~,6 ﯢ>ωL뒛O.Q\'CSsMJ3k tcmv6WĻvz+"܉G1myH8^i-KA̒QmkmjȨY(ql,eO7>8B4i[&Q.mR =6kH%5(|MkZkΕ`Ժt亻o#F_+qsq[Dv(NJ rVjÌZ:)=?guryxpf_p1RJ2N;a8䫩C=s֥٥FL9<(drf,ʖԣ]i5ok3XM39z?JDžUIwgcDJ?FSϋǚ[} Լ?uvB9u|?&a_q<}*~C&&k]6^ȳQ+??-FԿ5Fz3%((&L%)kHx~vtQ\ZL"G|YOxnWͱ{%qQ{UVJ^YIхpmcQ5%6NB}|Z$ƙ.TW&ssabʺԟiGrl8|TR>Rm4Wn#7[ћdWh7nO.snskSܖonninNM%?~}3f)_˿&VZ%6dfR[{^,ܷe9͗<]} ČfvKp/O[E?м#Z彶{F.6w#8LǪVIM߰_pyܨcuc'/rz_bq|?8\,N>Pƪ5/E-f_}{Rd/ ZڳpyO&υRl7T.1Gsĵk${#O]_]uW"dEůQpSkz=.#/ǜ-KqnR;-\[mmB˯}֗euW[2?>K=Fm}#bU7y:aee+^Q{uW6ַv77mR\VW慩JMM6krNI/~?i0IL_M=g%ϮyIoOag9vNVVX~߅M-q)~[߯r?[^^٤Iskmw%ceJwzO6}⟯ CpOTf&^٣sȄv E]ٓAOzw޾KEi4ʮ#)N ]U."%-wpdyRÛ{ ~zL<,8Yފ~|1ºz/SiN3Z[{b!uqBiJ2Oi;uV6VNM/sTg4/F#gx'6|x+,ku6{)G2:c4 kiWv'n5dEgrjMk)}"leռ/fۋC!MBZZPLI?Cmo<#~K>J溕W.6ԭykg|!n7ϯ/ÍqS)eJ⬵FVFpSry91d_G!5,|K}M.ξK]^g4_imKOy~t*]UEF5y$}ϯ"s_YǫݥؽDoKTwQ|_[2}sLSoKc8IV&5"ƺ*r?eohw]PGKR/OOvGb9(õ]Zmy_/| QƍUTT+¸Dd7E;\cpI. oi5r\|9;ב8|ݝ|oۓ]P]ۜktZݱg(?qż#åSEjsɳmTuS$Cf{ͥ~7O+VEq]N6ǩ~mzn#y]I<{$G7_"kxfx7bN6s]Ey><'dx|m$ezJ/Q~]7߆/qWy %QsO=y6O'88UytGS$i+S+9xFRQ;Of(a~.4]wnXyj]].Mm\I]ɹV/cYnɭIGkNꢎ$Z{{wrTI}~8vOoUQf$elZ[b˲=Gq=afO]n%2a^ߤRN rd+dA ֺ^^o'ٷ'Ymu?0 3i̹Fu9HcھNݸJ(í>JOѷWI|p3M Q\Ev[8étz]oRs %\own}$/8ǎ?w?H7|,D3J=-ά*ዏlB9956ddZ}ه?5ŔrCacZ 2]?Ÿk׽{0_ſ0rsUɦ 5^)S6/E]7)kF>|qKn."JN9+ٮ?0 ëMp#Nyj KoƷ<쿊Q(/(/fՑ&/DGɗJK~윘NuvKvC'/Uv v&}бIU'[ze)6o]sQo'$bOo/24vJ2QQ֧_d뚒,FcQ.m*jS[m5%,ԥNIt)$_R[5Qq'roO vNm_dk-Lmcd`T&DTdܥ/zu^:}Kp_FQd4u}m %W5$l z\j1qoM~ԞOk^[jWZK[{Ț6||]>+}9xiSih\o?Kds/ޡ7+/]IEp}ZcfMFPOV;qr^ obSzF={5Q#ic~ڽx<8Jr9{LcV/cܾ3Wx' 9%џZݟKYR^|Sxr!n֬M>weܫ/ۥ|f</qY'#~mVV/=5/_s??͜w//'q/wdD~m5FKtU3qAu+]u:;eẚx0+26ܚ'Ϳ4o.GK. c'){G(O񩻎z}%?f)Jwƌ\a<*TaKncڽ09|+7]0Dz?\%B\_eN2|u]xY7fBPuع'ޓ%ӯ5ۻ}_<!B5cdfn{oq#98WwQ~mmyPչKPZJ?ꤒ_DG&T%SYcx_˄O;'?k~ݘ>#̎vʫa-5%ֿMCװ9r_`~?K#1_ P_b7Iz v5/\" _z1ӋR_}Z3X.[lr~%Jk)5;O?g{mS4wR~1v'5&fߑe{RiIm4cK֒oAT픛qQh"c$ZzSmy=l+zvErMIM$S9()?t%or{ܞDQ٥t%i?O2N4hvFZڗJm&n)um4޿2`#!TR[6 l I]sz烈4JpҞM:=MN:kM3LIڧ~tӱoM,5ºeҗyҗԙG)m5v mec|cbqjOw̕wb3q۔N̪6.ԟSz2LԵ=&d4N˩oש"n1R[z t>m|/9xNLlN>V UW[>d[(4Kṟj_sa=z:.~^p4xK9nX<95Ri+k&vs֗eZg;q>UNܕsJNQenx nR!9~.|_Oxy8F:z}7>]ũɾѲJq]wW7xuNU7m5krJM/.^wn^ƌx.f;$9n+!So~~f㻱'mKqn3?8qZ,rSm1oٞx,+OkĖH8//.3WrˠsoVKCRX=ޞE{'T.>Gخ2?K SfoLSԒ{OO|#Nϐ^OiڭeS:~Lc(![Z)O [m9NKJI?T1dbbޚi˥)ƴN|"&u9~idNvJS?/=>W%o^YWFݨkiT}eli5In)duNPֻ%ZR(,;"w M%b992I׋:uJ[nt?x铋эSV^~(z6?mI*4dڡ(I۩iI;kd"ghRMyؘBV\)4UQ_oK]3i5ŦrF6{STFUx̉B[}}Tؗԥ-ǮQj)Ozyڱ\hQm'8I|8pj9ukj(X Xx.+-ےm6]3Rs#/#_ܺ?ʡ[.DQ_NV.~_kS} vm=?5ƟuR]>rR{}ˏLS]z&r%[qi%u˴Z{uuPRi.\;rm2>eWuשv&7Q=b;Z[wCgTQ贝Z}ז(vg3M<|iʙЫW]ku)z+n 0\ӯ-z'cQ:Ti('.9-mK_TlVE+#YVS-p!yKb&Zdn[OiH<Ts^?6#W('d?g-]pk )=;QԳӇ=OEII`Ս >Jj.pܓM(>]k~cu 4:\-vəE.u&ړzK{m=[M78?t*.!ڤ]m rs;.%rRn1qm{|lEn6B?ӭJ-'/'̶>UYNP'%vOOjAߣ\P/+>V8eҝj)I}Z[1\5:Pv|? J],Oĺ)dS8KqSIӻٙxB*.}ND#%8k%PN>ł5,y^<~r2Nr>6WVjƜGOh*=WSxTfT9;+V(cNP)4Ri-|mwd\,\Fg_PʶM).}]2Q6޼ I} r#b]SFvMi-/QF&UVUuub5|b9?Ew4t_."t2߾r^E jD6UK4d#7EtROMǥמMk{/T̲__T=:]$ѝxۚX(%lL{&oo2*NŮU9 uҗJǽ^;E|N >Jko-.mw.ZRmo7%/2F)>BRIoj}-?28Gqm[:$z咷~ܜfZ_l&RnɧIk]O_n<1>CMȫzܮWCKD,p^gkŻ.VM[wW}=y朷m͆r^kzi}3w])=pޫI"]KPs'M&R'䮈kjI7%;oI=<Y*i<w^ҏ{%6W=\1' tBsxGnݥZ芔[Oriyl]QJʳk5JQO[1F˜iܼn_|c%)$=K Kdi^y5VY8^R}-v3=aN8W1{TkNpI~}ٷ_:ꍱ8xnՋ J-)wOGylUN1MUd>pn1m)k~r-{WѩɔjTK?Uvart*qc,K˥*y|Dʾ,0fyMMվ>zZ[ف' .YqsXؒ竦XЪvdI8QV&И_vxi߅;"8)֥ԟEopȆ|mxS`[Q8 ӝW 23-ݙk߾{On)ZGdab*:Uwݟ|d4EE'dIdK込yYp"0jLjodN/}~"Em'$rs¦acJrvJprz]2]}FoI&=bynEk"-qQwOt]w?· ͸־6ɥeu[KK]/w_s{3W38U򩓍}na(-{y\l.)ëk_ ~޾Mꧦ^9'~Ϸcglzef<'8y9鷧nKSUX~_B1RҗOžﶞߚJIU[%1U^MؒRi~k荕UP^Mi5ކ=.˲ܫ+)v{➻z ex;ƿ+'ViCT#{d8Gk]"7nqq|f|Y,6Lju+&_\Ծ.[I;,kS**8l>|܌Hg+[Niv{],ǔkm"&%\R޺3|' o 8r\MTJWWlqrFQP{L>< +?+:8[riPԿy%o]~Վ]icaxV9vj!ABҴڌ]ӏ<_-xc]MuC]]IMOo&S0nBR la-/U?ޭ4:هM-br%8MO<6V>6|r%QrPJ/m=/S-몌UͿud'oLatEǦ(5 m;eE47/{MJ.I'Ҕ})=]Y&=6!7k_.췯%}Qe$Z_!Wtlrj:m2fa_^膞+|eJέ{V1ܠ== äkѳ?g?.jm:x-yK_1u:tUťd%z߽T%oN0#ݾ;:--NX͔_[ouin. %p`_OLe=9Vִ7%N:sǖʧԔOϷEC*Jj I-Eޣ5&kl1j-Xpryu$ڝo]"^?dz 9#L%*mQ=u}iX?z6}1]zʏ~6~%c3O&3믑΋Uh]FcdK"*ʋɲc~; *:^_z1tbdڸNo!;g>,WI (->m_vJpin<'%$ޥosg¼e]Ï#\z?߾o@߳\Rɪ9Y~6=srrP"32RԻEhn]Xv Sחj1nZiI]Fk7yUgQǬ\XJUzccM~[[w]JK9[N/ *%%ۻkkMX뿑˧}?#N TidRQ[݇sl`UQDgԖK&ʬ8HZĻ:n g{^֚NNom&sJgǺpjȹؿ}d9IvD˅'g;0pG߱JNRJME.bC&V] #T Fw(--Mz޷ة.l[[Rː{Cimo.Ay};"5u=7ز@.חƜtKi*2cëƅg O1nKׁUSˍULVηIrQ6]Lr񨻟|6]r8QgeEr2^[O5QyE<;ï#&U(O%?[}/c! >̅TcӜ'=)JO*R{z}؃O/󸘗f\.oKȾ\c2}8j |2dG<_mp4k7[pkNRm3mx̾7.q6_c ҕϼ]rQįÐO6Zʿ0sn YMm$G فUt}ׇtBVJNPrz^Y[mYܖ6uҍn2+5mwik=)ҩ}MBUkb[MU+ݖ;jK_( pKo}e&s<V-|*/VљS iy-^E~m(u9J=w>URPPkqqwɭk`GZVVZ{Uj QKѐTQ^˸N{z>fhzK{}a5'Ng䫧N-(#O1sm/U~}~=1G7k֥5'b]z#\T>$w._q.]>u/(tzzMܤ葉mo6OmkF&R[ƿzy%^}ѕY ZmA'4}lcMu)RmN_$>bgxnJ8J]2*}8Q^I !]4+mQgMB/UW&u 3eyEQm]WV%J68:UV]׬p'd88iWTa%_iv}lQ NTᏗ 3uY>KmtƷ;ExXRҜI.mzΏ*dr86cTZi5Cŕ%R3ٵ? 1]IE~e+%Zw[ /̻>snV))jnonOY|W:x8Ȳ)ǢS""eO?˯;dx㒜gtkN^ߓEm/_Rw;N%Y\(Ū>kz^{52*ּepzmiB-?RmǷimw9uJ)|+{#ZֻMPTqבa!]餻lQUΘi|[̅LSE1rkE70VQ9[ddٙl!({kd s8>[!])-NdkI oy>9vVfEYZ!Qg孿3sUu\tj:꧋Lܺ~kQDzmIFqUC3^/,|DxF1}NpRyLW8? yxo G>YyQUspN֣}ܲl],kƣ/-RrPzJ2ܼí&ȞVw7}xx#+âr} SxɪV^8wqp#FCOkZRh>]תmΦ8XޓQUn3^.êcُO"ޫ+jSě7߷nbqK˿;%̺.Sv" ZɮEJݯ&at֪Z{*J뫪Qŷp1KIȱ*stFJNFnCI$egYBu:WT-%._ЉM1{٧R'JQ޻9iIN6vpOӧv2U[N5۔]Qm൩'>duZ{WMv]%"ȩT:t?-$#={*J)TJצ%%]iB2M}d쑉(Q- }P]Z[5GUfmn?-ygz^?FzM?_3m0VMXfdثm~QVHsn\ԸgR/ y?).ŹS䮶="C\v,薷л_VW }-zO?}}P&ԧ+ze--o^m̵ڝ e_.idl%9ܵ4 Qa5UYT)[ute5_[IHS|qڌӃTj).%~hBm8RiC[$חLQov d[m6Nn%˲J9vEoVEcf UFUw&&ޓFc̫=FXɶ 8[oh Ww٘N:bq7)_w+gY9(5[}Xʳ yEוl9Ljn.X8|nCqq*ޥoSpZRk}ދ߉29Y=#)5n-vVRĆw#<<9<*!|\#OJ]W~f-񦪰[qrhu&ADIc˓J)=ԓkMZOweήZ,&|Ʈ.QBn;UoJԚM-I&,YjC?ڂmi>2' Wr\Yeْ Nin=Ron=>my(C ?hfWzw$:\"`ʗhJ-yi}~qemvM"߿[nכ2ߧ}/}=k~S]Iۺ{,㮙k|_R[n?ܷJiާ%NjLߜbo괚(ry ܞe.6ߑ'Nz]ތ|xȻx+భ4]UQ}aٮ|>m|*lSM==I싰\aǼ^/+̶}Zʲ|.Ȥ[{M~k-dhV%(=m1rjsõG&j*IJ]OQgLEؔݕӕwޯRrIâ2O]/rKvJWM9ʥDӣmĵ'R.}udPɲ2K̝$/'Fٹ~[t՛M%-I-4uBǶ1Q}n3=6bo^[~~m0-9BJn^YZRraJ'D9ceV-z"4lUI'vs~-rޤW(r\v_uOfzO?5x[_#MoB8W/ פ_S?*N~@2mS}E.-~'-%Kpع{e$J,n(E8vkKq]<ֿ[K]ןo>϶?S7VBUU3ZOO06ߙn|ӽAC"ΞRJɤo9wMWoꔓIkѭesj[Jky/>=C첥ӷ^OpROOWSלROoѸfvvFyev>{4dxuQ,j'\zzs~&Ԝ%UN8늶Ƹw |]%Nk)xڟ!S}Ȩ.MMlE0x}XjnSq=a[qu=&=yt7g}xueX}V5;/wceUYG9QTp˜I/]u}TE㰲ju;[҂mϺd^EpOz+Ⱥ3koO;}}oe' 锫q0/U]K]_=:%n-RazJ]}O}Ыc`w ɾJpTrk}OG>žv[;2%=+J]]ެxXJ p8i?}zz'?R5vqE  z&9ϴЙsao5g=|^ӮW*iĺm-v&?3W_9|=Ʌ}d}^{$ ՁCϏχ T(5|R~m㸼HYrGT2S뎷8&Xd*+>/~ˌLdWK7ow߻ά/7v}x܇1>s=ed=lM$RjZߗs1|/q+y ƚl\wW=|}-h]0m]Sx8eޔWL}%ҽwݒo\n'FGlf*gAAm]n)E[`1T35Q]ОMcʹtI]6N5Gr;Q˒vW.O.B-̄ dNaDf¸CAKR}gqlcK C|{85=Rҗw_Ĵr/}gLeB[XMQpiߙ]VCqqMNZ]R}-dIY]X28knk=½7o_'QUTsԩ"䫫"rDZm/~}/-uF*ƊI-̛\e\e#?wk8F)[4WGr_yU4Ӌ'yJ]mkmI59}_g.=yLXb]qU+HΘ>2sѐ01rSp_Sx%uJ36l'/{⏧)]r7vA˭y}W/_ ]v(JܗeRzBdmUߏ8ǐϛ87-KŕIYY{.j~>qjHлI]| #3wWs>E%~KbU`]Fn[IY^;m-Hs7Y ^>4+RSnzNM~}L{Ͽ-rnyY\V]VJ ԷԿ%ko1Y`b 6NQ;:=F)?-D#ōk*;'}riCmy~-Ds*2<4/gۡ/U?)mM |n|:Qr}oMW}xC?7ʫCU]uAV= rz'/̑N6tdc/y57oͲ?1aźRQ6˺oo/d$2=-&ۮ-*j]1{gd~nʌ1n[ŽwFGt񼇴rW),7'zuEn 1m%6olK+#QSv+cQy|ͯ8 !^!laL1UsnSJ{/-7'eAcbf?5IFPm];n;M^3Tcc?[Ub0ʝFSORoһO.~g/_]etGWKK7+^z+yXX^ V"6kuWִ6'ƴ\o/q8ٿ$eYYU:&vK)%( zdddȪUY5t} b{%̓hp2诼zoޚَuF`ڦcUgM2ECÕQ{1IM4wMЙ5ũэU/[#Enc:a_FQ_me5Q*.[?\-/3xզ6f_,K齯soj\J'/irSO?bqqyu)|awz嵿̽l]IPQnItIE._Sv>j=XQi.nKh9Vܥ*aL8t>-FQɵFDy"[~JRa%{Ibsӎ-Y,xF[}Km|W2{^J6J[ک~㏚_ruBC'2{2ZZMe'nL/#([ .]UZKw19Py Ţwvܢw5ש*T9:li2,PR12K##ͫ2l&7So?mz-}~~&W]Fj^~kqH~iwR^]XKJ%BJ=2M&KێPk{i|pik^^-0-da`UWgY)_(Ed-қtJu40=qN| rrt\g%8tu==&teߵ.Ɇ~Dom B>{:ŏ ,Zyld[dD[}۪1|Ŕ|'Sv?%ש8]Z^Ddb[ *~#?TAUV;O℥KxFtrDz2R-)YM7ܝ_C<_/b<W~+!nO~#:L!V?g8?gpxxWNSuҟw2q/O#cWnF\% c(2n[_e^_:+xUmriB :zK} >.3xw.VD3VeVN$#|N䖾}3x>,3ɺbSS#$ ԶϞepӎF-u}jzkIEĄ8zܚs00XBm%өGV4o]`gN&u%5:1ʜrr__q+.[lɢKu[PߗN*3+qݔ]RT\L[)~?,3jXU/kIG$Zt,P/ :fn.5翑NK!.2P:覻l}e8{OWJo&KW\wy'٨=jeƸ&e뾗n0sFU3Q/{})(>FQTMm5ռW̊mL^_';'GηҾ:/#W#S:M+k-cxlj /?'TcUӋJOTڛm]&^.jX|fl\=ܭNu)Ft54#{<#O"Soλqgd _9tK}z|r3xO_ \*[jN?E862ąƷ-jniyyҲs8qkX<}8J*m]ut٤R~O/\q"3?mgN# 4[RE-o~a[w~NEsYvJS-6.Z^'T<$eYOLҒKե=b1G<2#lՊũ-)X5‘QP+Ȓ{q5)E>T;%$7plX56q*٧o=_sgmyY7ӄh,zc.r}1]ڎ6l xwǿ:2˕p!)]=-mKi?ͫ轅CxM[[J;}ޒ/-%|D|7#eՑdMOǶܶHZz[}сVIkԮ >h%/-Ȩ(izWj)]w.M%Q~tKDc6̏_uO\VzG[ߨƯ}Q}=s\f֟y{,o'}寞V>:v]Wޔ1tW?1Վ|vJŻpT5bQ~7Ǐ^*'!2$T m'Vx~ qƯ,B:}'ؕx1,|~=wʮ}N2딥~/=c8J/<[E}wMoqo.g" '?O3+wms_egK>9g?(AmE4'k]M8*jr' K]=kre7{C?x[ 2,q mF1^%O&yJW4*KQ]_t.x 2ry:K>{627%&W:Ɔ6?eaK'wӌW,hM?]Ay x }[=%WTWB^m~-?\rxJOqqIUǥk[uȺr`SZi.e(YrqbYhx"U;-|{=$..ϲ]]ȆD772կml(oćyX_Zq봲#fݿ-+rs>3>ԿW5sa'ѫ^ߛQ&QJpPoNAuvߋ(RCwz|^m4%lRG΅EOO_#΂æͼ5X>^G |k*f}jJn>,Ϗ=kŏ3لePKiJIK[dmm"/>HBqxǻ+0~+"vF[ږĻd+iX_TWhRy#~%VМmT!!QioLT?0&SZs#)Ƕ}ztOe`{*ǡ=]T%,hU7%7Ӕ{^RI:H~cxսRrKOsfM|حt}~Q4eKJiZh/Ǟ6v%94ص*킔dͼ|)ũG3(t_s<=]-kG3Ke2<1T^[/&jeMh6%O,OO}o xx/Ƃ]_;_'~٪] >r_/2ڃt4s/\\_M&F2Z޻J|z̳+fW'C};.B߽}J$Խ*M?¼ğ&Ի} oO+}=޼ R\_6ebI=y!5oAg|ʣgv(bEy-[?2uDMuzw,5єٔԛI~eu-|'ziȸ?jw?"Q㱯iZDOֽ 4IJON/Mx 'h+F%qt[=r_w[j7TnrQ:y%>{ϷUxt[o\C)ȶT_ zkq-Y~/'6OUV>]W:Wf]%{ptM:X]pa1IE~wnc>+ϻS^zE*8Uu׹(xN|=FPqכKflZSrY/XJ23RߧX%rZ,1{Mv$:2_Wj1ۊ{w PU\?~4,cmKiz艭c˹ 9eo{R4k\ٳ.Le*9|iISR_;kz<$g9+;7YxuNQ{RPc|>6>7W+#9YY_e!Y>ܥZiFWoOV$4qw-wwag5T.pyxV֝vrZ5hM ϥQ~ݚ>׍7.I_ |Dž.YG7u/Dn%5G?[qD2+2knKaKF}:|{Ev>~ |_fX^+xTqQy=^zu>?QZVGlS К'wv~8iP_uoo1{x1'.J U_olKQV-/ͧu쯴XFve#BVgN$$&m>ѯ!M٬|+*[sܔ$2R"_>ə*~',ԟ.*9O\uʒ sYmvX9/z0?Ϗ /ƿvoNr(,pt_Fcՙm9;u٪xVh<wf^d"P4G&a*ebJiy.GI;SOo7ļVC//|c-̔SNYYv{iC~dQU?.))-fF{4پkW)kl`EՍTi$HZߦϺFqSK_}J߻E֕:]>)[""mw>[Լ[)Ix9gUɶDfaI$ZK>eE:Fwo)'u*tI0X}̱/$XFImqv_̥wEU]^m]{c{a"q?ǨGty\q6dF?ᗧxWswv_7tO8~zqZrT/i47*یȢ79dzo/fҾ5.+7.OȋŔT[˲Ȧ 9Y:LOy_GR!al,i|uNJ+u^vB﵍B܄(Ȃv)yma84E5IY9 igιmؗeȷ+%W9FRŸeԉRJצދ+2K]2nV}/*:mJrŷrO3ޫ7;|-6' vlg}ac\oGR~^oZ_EXiz)ꌒzˏi>M23F8(ՉwܺO@Oכ8wҵ/Ŧ4.%z|χ?x}g7rzӚu<˗ndz/]]K^_i>5Ir\^QDq7Eғ.꛸VZ|,z6]NZhܫV-O*RfКXӵK}KZ5XHNJ K?3ZVDT*=-'ie/vMm'W8TbNP]UJ Kk} 4ʒO6pSµٴ[w/1EySqMF +mLzffoݪQI7Y)xÎ_Vpu&s5-N? p^Mu'O;:(cfֳY^:nb.Oϥ+&QRÔIt4{8XC񒏼ۓo+˓X^-KK_b [1>ɮ-2gcM4.]?j=_cS?k_oqm/?32gD~DŽ=Mkc珵wCzL~ocmyGS~l?~ EK39Wф99'wfE~ R3R |c8M'-4QfevwiǼMOgG1\8BNE.;O_5fo7œ>beob21W/ud_*mŜ;,a^>&2_uΨ/U0!p ħ/>1r[N.24:xYs?k)f柉mC6ʩ=mE4Yy߅e⟰.VRs<+%8Er9/gw5%@iz6%?%w~moz<1NJ'$zz~hJScvM7=S)q#mk{k!׋-QpX>-Ɵssskve-3N;7v ׷l~f:sՆ6߲[RMϿ5-)3яˇ=z_ØoRQiy}=N6Iꎛ_SۅJ>|EFC})w[GkwǟDV_K׼9/V~o~&}~Pat޷ͣ%xG]ݜ_ wK|l;xy^^][To᭲42Ʒvº')KK-yhߜqkn mW^sQiʜ,Zqa/SGK~y'_uo߾}I|lMN˖飹.˿cZ}O 3ۍqqǮ۝ns)ImMS}?^.>?}/\q'}uFN>]4E.ֿ!ϓ5٬瓯֚_GMl4W%9c%/td+Zy9AtczM}uq02j rZ_3Tw$huz"ƓZki@kN\_1~]˹?{HMIJoq98ni܏ds].ފ1W'zk3<7>kϺf"]>婎낒.-]1.pR屺uOg>(q~ W! qgoUo~'xHTxǏPn^]uS{<6lgfQr⤽,KWz\}]U4uWRq6V6V^u<:d^)7[MG脴U_e8oaԬQU6'\ŽJұ 殯m_qOo <8l H8e=3_H_}H: 5-Vԧx I^8/ҔRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR˰x@4i~Y!Ki cT>unjjT9ll.<|?֍1`CO[ >ƾhL;:Kx8E'Ch F?N8ʉ e܃iaO<ЃIGrB=8PL Zirk;y WIFkOrLeJ=nFLj:s!^$YV+]˧d8$HBPC|HB@}7ϗ}.gk%Rʑ1-#TTTOW/&ywWtjf1@i)sҶY csPaj#^Oq[K-+BRTz{=OAT'Grڹ(?NJGDղ#&!߮iuҔ((((((((((((((((((((((((((((((((((((((((((((((((((((((EZ]dɄÒ]IQB{q槌JZXUHTenq@yNxD.ZV]gKn),K<N1q$v25<۟+&¯c0NprsEZk}闕qM)\¼Iˆ-ce{؛1K[IڦVT$8W[tMw}E~ۡDjD8)A()*88t[nZ^ܹ:gDTrP@sT+AtlsLjz^0He񀖳eC9Ol}4Z?H2b>ܥܢC9W3¿IoP[[)L[[O x_4nHLaݭSk>Z64nBRTQYo"\kz<263ITuTc::fr˃q<)E(*cIyL 6#Њ5:QPm+[8A8 ?^3R-菨8Ұ=+㔐zֵ.Ycڴ{ջU>vGķ\{W{R5Uk Q)>+TO>ӈܕg'tzGZ_U7K2@qeM= =+j%Z.g -<8ZA[V_u4-Նسm  5#E/#k!HJ]:9v}-eR܅~zi5Qxc[S[SQ)I uG!_^\ bd;i\Җݎ-GҼ*d)'4&+jBK/@RO*8^GvYi]. -K4B<'p#ҙ} w }QrR')y/0*ިw-*BYBwgdVȐ<dhS9QBp'ğj:M⛴$1o⌵"\[P;)5c ܳް>;Rޛ`ost]~9nNvSG)Y>vng=k;*˝U89/RWZn vltϨ%8[m)n0JqLO +Qڸt,N}4[+GVT=7Mnc\ouw29Oc:ԈB78U쮙:^b֚.M:kiJyZ)#OҼ u)PJ)Gi'ʒ"2hbYws~w/y9VI'N.>gI.C~$Ĵ/Еn|No>';5|'bۨv[TNo!+jڶCywd:-6mZ1" PC(Ss޲tipܧ۬ ,!jc$ϭLO D]mW_m[+Q# '5(pFޜrhnt\)Z6;rR&3WT*q\*wjϫLuoUn|yԨq9rsykS֘Z`y0c*4dJ12GMԮuPP=v$$h# vxL>k .1a5 3hZ\J=!AG<+8vLm蚷~6:%{K' l$dT%^jq-mm2Ogo '[p2jY#֌*$KMKGJ! Zs}{vul%נ* gu #kִNq3ظ[_Ta$`>ڱdW-x筜p 3q?YMtOZXsz2BYy; W!Z^kNtl~ 5H| !;32B"qޚP)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@8ƻ&zpNq8@9Iz6?Z2zb!-˄خ{p>>~ؚ'\>KZnC^a>\e8 2EP>X3A-sjRI*NBPytOp}I D>Xh(R0 9"VJJ\u-r@G'Nx/,[1?e>RyeII5-R\8 VR3\З*) +mv#=r!a.GZt+JRRRRRRRRRRRRRRRRRRRRRRRRRRREIi6خH)7=)Rp޿3HݮYڢ{ə5pI*'8 :`_rۼ3E {xr-n[ISJ<1YMm֑!i¿ K#nN}O4.~W.:6x?@I:aж\HR<j1cbA^fӭjhRT0úT+c'#AڶLnqx. ) eP J[++j OzuΏ1[) (*f$ !aIRN%@GY^ :@;?< Q<ڊR3!$B}_A_VkOus qz]ꜙpp2?0g,5ŹJqϹm/!~e+?2x]eNAR6%N8N庾֮t}7o$;%y{}ʖ5$RS;[ |RO dgayE)Y!\sX$0[:3U1&e1b;~6;dT6A[mUAx\fJքJcA::pޙ JW{rr3ַŨ?5}qMA\B#$GONkPF63aR[ГD[&ʡ&·C$+6;ڸQo5l!jCdEGG,t~xpFTuu"eF嬅mQI*V:^m}:=Jmn( mVBJWi;WߑEqBbCB8R=5:T޴K{lg0'vą]9S9iY/u%iTk8_ؤ+>޸[9O3oZaa0ʰe ZԎsgG %\[rT#:_VOuɩ+yq"25d!A+A#x]l[lF]ȄwNJp$CqJTA.8@inO1}+܅L%۲tJG&F0_q."\p%)r:iCjÎN:ZE/0j(S.2VWb?R)d==m)ߖB:d9'N+i)dIme!LÎ?)NrpzGuʛ˜!&aN%iYPN8>O_ %N%ȔV\(!TR16\IZ_D.mFpКi}<]7I^*U%&>Hmp<+#qU$ϵFq.!QX r~%K8dܙ'l_l Fyg!G01hIf<%ޢ^#8kdu6m\BKO ƳkjWB|_OrEt9Cg /;M LwnC\g:O*Hެ,\) ˃(q%CEf)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)Jl {eLHNpٵeybRg+SjS|^ \?e_y u]SnMmZVsV]k[/E ;קyƩЗ4]MN^>YH ?tVAW4?Lj ͧxا+ ʡ}9S]>WDEjt LɌByi= T8#+y_}k|3^g,9/j"ϙ|~RֳN_oWϞVmկxOq]8s|X~&4ˇ!u!me)@)@)@)@)@)@)@)@)ҁ^'#c+O#^w5G^hݥ8d)|kDK3>Q^o}y1[8^JARR<ڷkP%OR068IvTqt7Dao0ZyթTe`JBce폇Jĩ*y1HzX_BT줄C g]Ŷn1t2 tI=AAYkFo;ql1ˆ$2%uNS+.Nw,D'(P:NI5ZDG9f%n9U%$`O8Uci'8\ _lq֞/4 5Ki+2,vgf~Rڢ@9$&`}y h_=T֪oP2kVeu.uPϩ(9ܓ^frwIa J)1H􌜑ZYkym>'OB[۠4EԜ)g@8Ze~nKCC!E0}KʏbrU vjǘSbB[ u?j&:W%VXR\YVA%J Qyr-A-I1zg1KqJy_#Úq s<'qd&dwa v{.S1  m1k.{:ؓ, Tp2O/6e.+((0)8yυQv)4&LC+>FyWk?WbOjf`))Io'pm>[t..-V^AZ,)K>W=>!4= KeJ!@zJ[Jfv,֗*`_F\Q R; RzXF8UaLis=JOOQa]-%}4nIiԯ#5*JRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRPoinwMO=G۝RR}Q uVDq5T+`ʲwd[y.ydHAJ) #$nVH -EICN;*"HWD@+* {ØєTyTH*?Ҫ$ZTŵ mI\uotˢ`-IHO/QںKkXQSJܒ@ԘZuI$N1WG[6-;vjJaBHVNz_4.!XOv =A5\ѻZovԞZQĖ}p~w1ܲh5jԪ[K`a2R=.㳃~jW4)qeEj' m]’yIZ\^=Y阝<fiʁytpEc?Wvn}"$^N0R'+5}?g.\+ḩI0h~`VkX ^v3l@+}^^̣}[He#h.~Uq1oV2uݯ<:}+zDV n62+F־xx [cOÿ{M]?lZ_8I*z9>G~[=/t'=GQVg~_Qo\;˪&7>pCg(~3mğANo׊WƋ|^ӈmW ޿ Q5Wҳ:Fn^/Aq2'v#jNRy|"ۯm8Gw&Cd̆UӁi?b8Lԥ((ZXJR2I8P]Jo^2Q!Yu3bjX͵7kfnŤp|y҃hk]i% ԒzW:ַ )֞%F[ i«uߋUF֓%B t7 #Fo)rkڏcºh'- m$v[ iIFMkCvrIA_9ѴjvcMƐQma3X THCM3('=6W}bi-ěDuwu3^%a)Z! <֧o7J[jyW뛚AIiS" vcnRF)9$`+vYionZnbwnl<zY2iqr5_ZISiNBUQZ(iK;p.,$)wBpzf/i9~3y$ŰJڸ}CEKAmez4. (UBZ0vzgusaiԻ嶶BJ$#V.eؘ蒟9ĬN:s[k=~@"BBZ䔐F3IRP)JyR3XahFޟ\rAK#GHR00SX4Š^n޸_B~`IFMVqxd$$?£Faze\Koژ !-M-sМu76VS*T(!J #r=JÙrܐKqZ+ZREڧ_!i1dw-ne-v$IؐN>'\[)n/$ICdzN*P(<se$ Pw#QHNv֢g+ 8藙՗h(R6R+$H#g]ց6R1d"*[HK儓 $O$՜s^\h&vYL*ҒB9ֵ6 {aɳQS3?`8DJv@bݺh }n?a;RO~⥼P O 洲lKJ J`*^u4h m^QuhV-DckP8r28NFS8y6Dw/4=j{(Ha=2%Zo,,%M68$fM{6զdI\\NLV+|ǹ8뢹Ni%?Ee;[R$:[j pF9+DgtCkcn*+>aIgouF-N.)pHS$ǵskL%ۃ.~ۂ=#&ErR mB͏'R8H9@ c8py8(`- #g8etn 5Kʒ} Js|ddTj+!NJtT $vWwڊ=u}G ˃r 0@#&BnV8=zJG\ֱG[vޜMONG%$={yiwE҉H$qMM%ԝ_ޠuA҄n8# v3tJ-8up9AGjg%wQo^(*C 'e#G5yG1ICRV H z#yU3i7 Dqz3GlKl$ jWI\"d֓碓Cx-Yg^s$$.^q Vv'qɮOޞ*+zE>B^5j% JA {R]WVϰdĤ1 8rOeAr-%A_6D[UǨ-s5NJ9yU!DAH֩ B}DZzrk${Q+fe#h9LyfR=n'qFA 5u՝.M'(!c8Pk`#SGK\6JꟿJf)8;IHR @sʓ~5RF]bB]B G b\|;j H[-)0f%Ee@?qM֫DpZroq$; 8h>r@ݎe7U|6Jͺr2#$tW߃(Ԟj}*T I.0*F?QQuɤs2Qw6!c_@UY#[Ed^yS)O;D"JQ)O+x$9e}IE]]h\;U~ը_>fSxDgZDZE=.};e mc^[5 wb1y V1ivexJ1SJ:ϕ r}M(}r+oSڻדS1^i|Z^$H;Xߵ6?@5*/JңԄ_)sZԩVfѺi݌@qRՂNqrGQd7[6| D-]9m(_!$pG_QץJim{zEpStHL@*!+p Jl#N閜zì-.RBה0Z^aY*)N\nz-mZ0Q:B|9ڕ'#.rqֻ:gK]+X%z_DuKH prJQnS )2#-IN06aW-UHvg+($p0J 5nq2ݥ/N3 :>p))X_m)NECKS;^vKh!I HuXm@( NMC[vdl Mu3!_ĐVh!)z;j$a,7sbnė6 )mh)[^jHrX[SM:r]Jw,J8WɟD]HB1kbj/JwcR*I=SG6=2 4(v;axRH ^d6-I9Ivkn\.=˺aoq72y)ljkԉcn)VW$pjcBPpPBFWNkf+KLٯ=yݿvx! p!@k;jAߨ["yzf֑”0Jbܮ#Wݴ6D±XZ3-ƝmVա((s{|[8kL(!ةpjBR2V]N|B?qk]1+[Xq͡JprAch1 MۭWkZS(vr:5 ˜~rwy&hĴU*Ek/Z/n{i] qpY*”R'}BYnk%%Sm/\n>!$+vFįq\ɿZwkPեQ0cU巰'v3@5r7QfƳ`VP`:Vyq{K~l^%Lh.M7eD v^z#K)DL\A$uX[#[Sv}5kC?"K`-;ց)}[@8:?[Ӛn؈˓\"RQRJ%eJ*s ooKަӭ!aRwnJ]HjѭVmikPCR H){gήƵ<츷4? h޴%[;N `yV> Nƒ;J--yens% VUA=@J0$6B 6ZCsRqVfJim5 IVt(dLzFRNH9Ε|vӆJTIg2#)X~UM+lҋ2p)LSk<:*o!Tj ԫ_j}Go;Q*eΗ}<&&$4?{lGeEs=AR[ O'rkTgTs>%J qԞjuD)(98*?j QnA8W \b%%m\9Ҳ]cAI=MhuEMbi} _uugfkZ֣IYp!?7^YbUΨYpɎhI I9瞵ORiSҟfCRm%ӍP)9O;rsG_ xt7cix)ʀzHAvEoz7d7ҷ:H R@Q%J)?s[k\y f?)CPI< '$O־NaM] >x)5zQj$ğݱ`|ǃ(`` ^;W/:L{ʌT9$ qӊ-WGrKi ޠ)1)B|ۜwB}J'uV("8i(8`k'+- 6Ty+b8OcJڶXyi @U}:{{W;&i[!TĀK$ʽ2hPG +2'_j{%;$%l`13n%֕%C)RNA4-xK- |BTPr^ z#Qi^ W}޿e׉-g87oWT}1v"<&+˩ C)*pEQ?Xԉպ|ܮk* Ji% ]R`@+OKxń;QTOx\ IPK5&Lgд"j(*BҬ)$28T(N7:[iDКT)t(9Cz9 nr| M,*Stzw\^V XCr*ZT)*QN(nϰ+QyPے0S$t}˶}I5mi!;pܫhZpr@3S5M]-W<#_J=|&Y XgIh{4-Vrf޸Rhz(RIIX+C/ˍ3Iح;|r.3)gz `_cj !DiTBR 9?Wu!lɐW'aA Y% Iu֚mc"]&n3q!BjMNxqJ@N.col-w=hd68HpϦ+Y5=/h~-ơ\*.0oJJ!~dKzLe=HrNa*ZVB1X/FkM8핉t)oLChp,%$yMYȳkkQmVˤ4X0Jo)G+dò4&[bWè) pJ<("-quNΠrUe0%(mH@Kj*D] m]Bbrt(y͸N5)+P;hL?rqʐ]* <uH`/^$KSM ey(m<xHzS(ƅ)bZu BUJ(W5> h(\:9apS˪AsJJFz rvsW8vѻ}:-(z;.`cPJPr'7Di[jG?\+!e e‡qUr/SPRMմ'x.jwV9фrES -rUݐV5SKzŲ+m?kv{g@[dNHqH)PKh (Q<+hm:b˜OKj_^,%h,I qJ'$⮚*zzyvo\㥄a)-!PX5K[oWdIz$;mOq{ѿ)tڳEkrѮ[/]~Qe! C%8 RRNsl.7Wi7nlrcKܥ2Bp0{Wo,}?iYn·p)N6B #J ‚*Ex׽Ehx_5wjYZKk[r\qˏ'+ӫL]VJWd qEv0o0& -_m@%C} am[EƂ_P\ՆHd>=V$JIsXƓv~nUD(cbpj1~o~.-9=.@ 8=C$`\ dȝ_L4,Oaǧ# Vԯ5T%/4u6T8(' z8ˎ&Q$6BFN1`m9 ׎zڵRRyk8P=I5*e; d$cU5' J ך֨:tZiH!* Jw}q8NLa/[/԰I[D6 G<0x={ ?nvwe%@Zs 9 = Okm@i{6]8tyP8?YF2w*D6$2 i*'=F_܅ڡ Ъi/R0RPVPl{,:2KWF> h ŝ.ksGqGl2V0IQ jq)G[1'ް"(*N 5hTFgԂUH?ZI)HO8-n9{e6UqڲGHamdJP?VkKpJZrP)l9=:|,h^: I:/Ph۽)\(+-((tOrO;o4Z^._nx1^ tI^]=ҽ1&ڕ,g6HO eUhձceLn)YRsv8_AӰ!~Yq 6 zu+I$qִ)N)L)ޔFskoڠ< FCJ :(sk[| Ov(>ĺqT1S9nUt C*Q(r}0NiS^v gyO@`ur9 JsTq caGi }0HNOqs%.03v="tpP[uZJʐ {Nўk[6}蚣;:>4)sH:y5 W|Lq.40_} \ pkoMպQ*-ƌU:~׮iHѬ6K)A@}%NVImf=o(.A dpIe*3v-IixLK!9FA= }l45j ZG²ڜ8rlRb6}:xJc HHOg\n^c 8ֲyR~[_ h|$-8\yj*HW8p=Jb:Je>V Jrrr:qZu?O]ŨR>?#*IpAEۺC-!,JF 7Sr]J I'?t+P:VZw\V~)EJ4ɟm%rmA$eF{6ətL=!omoI=}~jG?WgѤF|a_1]~hڷXZRkL/)S=r;W~5KRp7ǔiC8 d3Gjm?G^q᷌}pe k])J)J)J)J)J)J)J)J)J)J)J)J)J)J~@~k{utE%.+߀~\_2+mN+쑓+}(9%6%PcՕ:?Z͞\Y[2aɵ-Ib[|)JJx;R1ۑZbj20qPR4:-(2IA۱޲ iK#AHPi4璂W HNI XWr++ہSmu9BpRTɿz`[*I9 =z]vlvOn)q#!1ZS lW;T b2;:WәmT:yH9#Ӹc'Vo 6]r噟 D:'ql8$ f\V$3P_UiSvi2fXSL?xAGI%Sj2عi6c(G)ֲj˫Y/mo0kugd+‚8 qY^ \nn.zdk'1n3 f*f<ԧ]tcb\KxBTO8&rҺ/Ub%5oEHuc-p}\)';3v֖],M^:%RNVp:W:ڢwrYiELK u+C$nd[/oNǵe1bݑnSm)aJqD,ks0]LEeïۂ)mCDAD$s&y{<l/ ml.#I`SJ3*=j["4zzsS'?l!ޝm ׼%DǎMߚҚ[* Gӷ#XT6c9?bҧJ>,uWLs{md,x*j1ZC )̌4n p\Tڭٗ5*crm 7{@8Guqբl05GvZS{w[HJJ G''O8⳰-EO&΄EZz+IB!))+=TH-&U:'=2B|3& 7-*N>y5`D=R.M褳ob{Im)ayڬe)GG#5޸v4{T ɯ!)Ѱvz5uMCq<q׽ Y P ʲF1ɠ'ߕhPub2bm`4ZspBJԢVIe}xD6á&U*q8! +~ZpPx-hZ.Ku9A((R\P;)Kz;pwQp ǹ$!AcHJJRQP:lM22\%%\ VIN'BBrNy+;^ɈQ#϶ҡ)JV%J$ B}XЧixnf$VJЗX-%-vA$uV>6L C)Vt!|l$<) pPz`∟ip,v6Us0KjI$)9+QP 8[cE_%ۃТ^C)eXԄm@ -9'aD&evv;Xu  a)9Rsmv;4{kwIqZfkhFؒEAH$C!۔;q: R(UQRܸ}fր'XڛRyq)R kO dV2d:f>_"tn *A y%)(pzXzvJUl&eZmJ[*aœ)JVHX<N>9C=hQ߄аkZPaE^>QVFiR6DG~CuqIHSAXA;HQP.o[gS#O٥75ŵ3YyZ9(m(VNғ ܥ^nIr>m4۰B\qe.e'r}CCV[14DKum̌܄!9F=yPX$`z4ɐ\/ZPiMꔥrBpiXV뮔TF[ߖ&A RIXVr<&)6,r}rviBPBvrAI9CAFMT}AeoЌU$܎js K >Žk39kyjJfߞ}7=RHj$9 G` f-[ C̎ ДjV@vSEHBgs|@}j]tjmp?%] Zdx#8R T;\ +2%!akQO*o5:-|3m[~.- q(8<Wd̽iq. .bK8HJ@z2SRfjyNs Nɨ% S>'z'sG<޹IŻnoT5R\d&oWh`GJScSF̴XnS*ݦ[.ypdԧz7@7t}W&o77f^6dQ^@G޲j;];;Uj0skffȝ6C;Vr J-LyujG#aJCJ$! P $ޛd'IPjlvѩV>,74ۙZ]pR % ;vqzO"[XLn^ygy)m) e-%`^TlI;a>Qm1%;\q].hSsn]%BwdIuA J29#N]HK O̸CڤMk:ԛ 8L%N6*(,Ǹi˔(J %ԭo(Kj@q^Z-acң}kNb:lzG$SiunHA)*I<Rѱ7jlAGPK-NP I`N3V3Z{]mxM bʝBpSQw}|EǸ#NJ@ťBS^Tׁ[Kl/+:2eVIqKBT0;dlz>.jNr{NԂT-VFdR%jhj5ˆMn8XԕOc.VXm'5%myVm;Ҥ%z~]t6`!FE[x'T!AJ]']'-36yA!9^6OY0Y n8ٲ6zRwvӒ*JLwwƦԂ;BVӁ9@h%GqR-*N±HM'=Dh(K@sqP5dOjZ5{r/w O\FY@p)d8)gFhM=KceKEiz۝=IfzBjyWk1,Us # g >JG9=++FU$OVm TO,oܐ1X@vm!IiP;AC+zֿZhSO=wie9XI=!gkh?rwG/ۆ4bK2Ǹ\E* #8u6ڮ=l(iSc8e[g4 iI#ӥ4kٗ+K1L3fOO]q8JS J9ۑںfrnnoKɕ%|<6aE?2GBz^uLxceŸ;m2-MW8tW ܀@p啨T9^EqZVe3-oY\N0H{}}}i(rOAAn9ʆ b޲8={n?1o4׈67:qEA2Lp%\ނՖudl Srۋ1Q}޽,cF rzwe.uq9R74#Wrw{c mKL:/79e;-)@@WMv`)ͩi+fmȈol[%[% ܓ$)_AX&&3ʻN@d6iBČ$Gy arXyB\yP;9W?jDe|IBI퓓Y[k:ZȰǥMtaO)DRxGpRndEι weAgpTWWSVS9@~ku [<֤mI~ *=S0$nVJmⅰTz(p?c5Vܘv$u*i+- RT=5υj\&Gp'Gh ղڈb3~S,\ p78>`K/h[fJBcʅ2 Mq^.jMiu,6*RJ@_]b/ǐ-(uIV6c0}Kǯ)Qt婛Z#biaUc;r'-ߗtɖ}=D܅2D2+xSnݩ$UTG_WOz~<⍮R%CK@wwV n, K (s ;gPRTJ u|+mi~Z#k ߨmQ6K#z #v ڵ.JRRRRRRRRRRRRR 2'7(-GW9Q\#fɅf.G9ݳ8JxŸJƒ% %ĄCy.2PV9ra".h@m(;H2JpN8ju8.o  >SRN׊JFp>w D[ٺGZ[(tJH8TiN-[^ط-Sq)@fIQ$Q\L;u-)rf%*;$0~W ۾sm c* ;R0z7m>KL9 ߣ9ܣiD)w'FZ$)JQ;@Nc޳FJUs<6 !g){&ryy/|ąX*9PN@9qxڸ!u`wrpBq##F3d4ۆN3 !Cxl(3Nv+Ȝ5QU_JARWFҵ-̅$m7%LKBR<p0ۥL\loA'KrpKLy H `D|SHwVpB!;*)r^o%P=nԟ4#b@2ztfzDÛeb;V0p /rAPV_oNjL(;IBTnsDK\&nI90HJ7n2nr-X Y['L-)pI! B(d\TKo5lu?Z· mڝsR-Ih|)DGBRN )߳ AD ݵw*t~{qR7TR=9)25 "U- B!HCH_ u@.úrl~`J2OMJPT %D(vs* &R̎]Y+^RJB&ߙsMs? >yzDw SiqiFH x8OM~Gv-v*X$4 TMG*jk4fVI\CAM}- ުqLV,yN $BO $De~q9*KA\9; IǨrjnuJ;8͓̤u@'` nzT]8oN6̋{NL5-86i8'nkD#L>}sZ8gHY—>' j5)N2-BmqBPui<=:qQ,4.2+e Qܠ[)Iv*h9Z_u++|ku<RK3–FHճnlS\v$! Zh4IJROO0bM?.4kv6(^f=rYl)@ܢr1ߞVȷGKVZ7KR@tgcCpgwHBp99֫sw+Mlo O9JozBRߖʏWCl62֟ӷaR7D'ڐeIQV֞iv=&auiq/Nu%9xj<5 'eznDD]}Ը6仴H5i`iusPRPS)GFk/R[zkij|ݭK6 WZZޛsjʙCm;V' Nlr<'kՎޚvS%*JAYVp;w)-jvv؍ܚ[8*q*J[^x5";p jXڗpYLliZ +JnA玼CȿYiױϽ{Lޕz\+qT}DeY95-^jK{tHZ+qu V2ʔ1Izc=5,2u J!eA*T'JlԴ)|~c)*NթnKHV=]IFt[3u+zVm >$-J+u lz􏖥-PzMX#2-ɋ-o*vJZJZQ9OqQ߬ڽW vd]D@zBm9W$% "塛3f-ZXUy, ))p}_LSFXtcWʾ]ѤApN>cK:}vڋ*bKoRgXrdߩlOGDДVD%H=j5ܨ d۬˜f--JHOEYm++t(^&I}`G[L[jjطR$ JԧIc\+^Q<+y1VKCsR I rrq]&뵾kҵR ĐK,d)@%) (fdJreOK*| +'(JT+:\.lxvs\ݢN^]ce;6BOѷ; =jv.Fz~Kz?7)I Vp5i \-Q3"GLfCL Sai  53N52n [Evo1c($BIGSU童O 84XCA+(+88Ei5t&6}ak188ZdԀ#=LTilNa! oFTztƠnWY~Nj3,QJVyIk$m i[=pZsW8.c-eKsi1!@39i[e=6*ܞ>+SxؐPJVNxTNćm9v}nC J!fLU7ܳ1ΡdL[.c$`t8+or XR )X9F;_XpN2`\2Dy,ޝ-#&F7xYvQOCp]fZRg4vӂ8&Ei^Su꛵I^v|$ٷ8pV4RRRRRRRRRRRRڙko=\Jð7+8h=3_x)F-]өoA I'}ׁZԌ FRZ#VlyE{qaMҰ#3t`cjp?ƻKt@yǚS@(2NY'ÞO58Qa`p9 #[!mJRRzYl^آH@Zk Czco%mjPXZލqע>䩍o uHYyXhRZeA4(8ʒ{'`y=El^B] ]iR:P[2@uNe=x*=kvJb k NprrJެ/N wC>'yn)rrѼm-H'ǹԛ H~LHDֆJCq۞;˺rvQY>cAĒR >a\nw Gd1)mMQIIE!D[I3`%DF2rwa%J:)ii27'jWvЖТ#A}sV\.ܯܷLf2RpP6'z{&1ͷ͢Yŵ邕-[ S;JN0N=_)eɃȭITpK<'$$ysC/[5;mQ:^H+TuҲ.,GLũ>+?[IJU8zcMeHY:/Ș.)rY;F9 Hҧ\^@uF A;S[d+Πb(m\#[o|QS.ެaD/rzhmLF ѦBy7+ۀegPK}n@sir%hRh[h S8R)d }ry[xIn<+L'vj F̐T1W[_ ǤCu=N%2dXAh 4Yw)L;\D9SdzRqS.J"|߽b'86zJ?|b٩. k+qT5'Rwo袣b/[ٷK/@57%+L(%ZHsnfr6 o$>9"n:<9Ot)*i˾Z%Y8Zz mnC*DcoAJD+ ۭVbuկ[y 6-–6j ' D&Ù:I}Z|\(900+ @I…vvJ887e(TI8I ֲ_1nf'-sqIܯYgȵ@cMÒŝqfBYyjNKCi+8dqTLRǵz5rG3'vpHZ8 @=eŘMU7UMy2!t$XS! OW +'a+lͅ !rCq)l,RO@k V{Ru[W#ݮJle m) KVS'j WLڔťZiy[ju$䒥'ҭOn\1:n ͍cuN<lU8VNzzqX/M.,1aPkc$sN*KS.AlfL}*񖅺ZN#A Ȉ7vl룓dP GLX%5WΤBqW-BĴڧCD86)jϚHدA889U$-`cpϔSR ^{ڱfٝBo:RAm))J6'Pf-nzoif L7-RԠ6[Zs$qR*iI.6vŧݥKJڠFgp $VDMYM~5bčTpjA+RWTH+WU&髓taRx0PlG>n-KAFOIn,ۙW TMjRŖqK}(\QYr8]j530! 262y$:zI$ p+j 9T$Ogl<wNi6ڛT??זd4۾KViekm -I'<gS2q1.[ - @-By+Tڴe̩1S$?QTMtK}a#ųLF[ܽRO8>1U4F*éBl9%>ýD8ձrLc sd)lKI{d1W5&MZZD(<5EwН-3CMG2%RRUP@yNnu Хˏyq)7zS8StTM%፮ke& [avrʾrkgǶCb 6ZC(@5&F#%KGg-Hܴ)JO`J\TS)O8m|ش,#~ߛcqYSB'냌ֳ$IGkV >g$gC6n sPlD\$*G=zϭe RIۦxZ-@3tzA)Jҭ8*b$8HPZ3?>PJVsԊ=֚&lyn |3eŷjTWxMɽ:oy &lwp*d%Nqil:\Bmmj7 1O85R)oad+EJSO4q0~ƣ3qIJn{9(sROnq=h7qW1'rP) XPIxj+?^ U,V!Όն);  VnJn 6Y >ܔg,$P_ &@?LYʖ?vZ:g0~u,da#V~ ]Թ \v-%)_qǷQYTAP8w4TOti-3:C1o$%@ LvX *P2y4=^2P?tI_}+KjEُSJ$U$Hs]З-IPڠzzQwKfm״oA #x$gyVCJj]H. qmH a? Oڭiޔխ;iuҠys޻O|&&hjS)=!IRpT p2ˮ)@)@)@)@)@)@)@)@)@)A㿵̖xRr jRP0ePp:>1*Dh+CJK[qd!.Ĕ}ymf?$M N OsWɞ.B1)I"CN2: =u8_^RrJ1rҳcGթ2qR[rr$-@pq`'89̒%EJT!ϖ:ǩ'j e -)`-T_ےR<޻G%&bn\Ȍ/aJjb%~RvDJӹn 95$$GpB{Am 00N*I*omƚ@RN VӒRZ#Kpf2] 3]rqmHBv)$RFjơ!-#@BS~1ICl6m% ܎0yW[]fNKXJAl(cjJӔԒA1< Ԗ%li*` rp@(_Cۥ"a ]C~q>!@sY# r鼽{=]Rґ/(J?ZqNl- lNͪqI Z*LXrb-1@rJ3Ĩ #iNIHN}ڧ]#JA:@H# G*QF7n<0L[B; G b$|$%SsAqÐ) ^ NJM_nkn~j2.\o8pIP X)Wf];}ݭbmķT)C!-i~=&*!i,&An5o$[܋n7З8Mojtnsya$n.j}Em[cIZ) ì' )S JJpFf-3{5޵Liq \H mK` zsH?Ţ |\FiR'9=OJ{Nܮr 3mfAHNk+ ^/}5h`E[ DŽfM%9JZBFva#?Jv!1sك"~dxRY)'j`ڊ c[JbەgFYK.-R! %g's[}ʽ3Eސ0JT msjJp`\nѢe˽No-i(xj%m!D$)#~j.?cnej%A8Z?yNe?I w;)RA̱)e;xv5emb#6y2bS%nmZJW@JRANOjhbMۧ[.Q VӍWCvD,Y!Ӥl7 '-p}hnNŵA?  v9=S-gl\##͏[6wղo)nnJ#ʒyӳ)B0 l+آۮqǤq, gpQmEiƮw!Ĭ%yޥJ%'8IKgXEXj,0e SRP)ŒzSni)R帵8$i݁zܫ]̲)ZN)(A¾&6KZϷ:R ҥ-^z4µ_4Lt[D_YfZpU+ZP($\TI:[ISJ0P%jq@!Rz[5<+VluzqA[d8gNw'9f \?!l&JTįz**$辗_zk+R`޿15"Rx*]u >UHSJm 1Aԉz_[ˋK@Lv0XPij^~m7)o#D,HYJZYQ`r0'Xcj$]Wzn6-j\BSn@%(`zbەx>Kҗ8@@+ pRpI횕!]l"A_ p\((qK*=H ^/N7hHb,ɏku7j!I NAOYk;ӉR\jB} Cl!%-[n։7Y]./:˅/rQrp1Z6fa6HXq2\V\2VHZ%9$grvv8\1Ҩ8(Ԉ~BN)מ9[L|6ʔFxPs OAka:x%EMjRyw>XzV٨ ȄH :hMp NJ]}qvͪcxɒSm\>XJDv̧.|2bpl T|Óۥt1/]os;Bm>ٗ䔥e~`JRc s9$qYo?׭w.=1۵pJH^XIozn}H[O5lNpB! ʋ W$# Ve +'-.4 GEg9%Q*wָȸH!Z˥~`N@8#8h]5o-.?^~S_RیC@,%)#@A'${-NeoML/$Բ#a^weY檷hKw{d)I?7s}xZVpݣ g5-k&gdoʄnhan fpHA$p +#HJ#aQl6J[$TĐsFwRUA p}nju]p €*JH9cBvǹ8zI$t 9?*9q!X*V:ҮJ '۱MKBN21k*-Ϳ.H9WZJBqcڋy`De]I}@rqRz:VD(s8PWt՜YеI*AO](V^E@H9>|׎j_)>ľdD'ge%7H d|F#bs.PqO@m|#lI[._Bin QVE$s"stWw>FPܬmm=޵q}Kbr*f[)IK` Vr29 *J+HGzn|W 'jۿ)^uh*V1ԍ9jz9f:9H`WYl4Met횗|"ǎ6SwUmX.eGHop#oQXr]3o8dS( Gr:fh*!Yڠ"|n%i ’r3ju[׸ڊɓE),ob`Q\NJxҧ9#TJRwpF9LNCXkk?] [ Ot'>r+4-. s58 ~|/Qi#$L )-I8\#=Jtl|>xy>c.a{ }>㦿MR!hPRT29{k j՚%Hb.PdIo9m*iRՂR]WҼ <5*m`:-#h;3HWV4/:èqA_@)@)@)@)@)@)@)Ao%|5%†͹ݰ28SҾi>0#)0TW1ƴFVHa* кx [vjВqTcg8w9LT]SlVڒSjFF;ZցBn߹qi2K nڂ.9+R"STFzEj䇣8Bؑ>ܗ !Hv]c3 &޷o?%@S7 )z{m̏yJˌ(v)m8@8;T0s[m!f"4]bVmg*P(w ֭&\[y0D%pOO%2-[v%)ŵ%Am>8S+ ҈kG$"Ɯi]!A[IRJI9RRRF?*t[&\}-×2'Q*K Z*II$ ;s-I.ژ3o*R1Q^6ͩoenkO,,%JPRp;U:cbKJݏx.NyYR 4 NM˭4Zս#oRº[*oۺm~cN%̫pZ![RV*ޭ-۟sZ@ΆtiDaIT'ܷ{9&%%"6 څn%ڠ6/ 2K :ԗn.)Lԕ.grpZũzt"u띭! +YiH!¥e)#{{Pثmɏ:5#gҌ` !?J$#nEӲm`e0w<ĎH)E 3f@rRڊ VAAI>LmrY^Jn{-$Ў8R\& Q2rQ$YRFCK(^PeiI$w"f5(bߔO[o4z-RyaA@Z-n@Mb|beǹ4JARQPZe1WZ3m*u!J?QQ9mC#*J+xYm[VKp(V-9 G\Qkf 5׷_)tϜS[hHBpBt6Z>ˮw wu-E*ryoFmAD7>u"jeÞ@*A´6I)<\u6C6h@ơO JTpq֥'Ӣ)ۛ]6[[zٖqv#~䞜sR.2-wvع 3A?'7mH+ l >e-\vW:Tˊv:TR2x'J?!v_f6ԫ%MSm$zIrr$wWJj !~3)KS;ߖ^R^玙]9>-mw̭%!JSXܥA*N052Krٲ䍭·#iF9JEajywgf3LGi*eB2-tȥkk R N w95F]Iŵ J(@ JԕtӄR$5z>HTFLy+@KRTypzGREg`@]|$yҮ0k94N7|w%*N;Pؗ}YMSvsn\$)^\ܥ$X !$Vxd ywKDZ:ChC-QRWv閭Gt618Fm KDJ9YB 8\W+OD֥Dn-ՄHIA` wQFEѨ@e -*H)IH!\ۤ9NJ7;niSִv D?^N*H۫'H c@.dGnF9N=jJ}f[QiZWRArۦHUk,n^+I QUj89^v :chqן+RBPB'*'!]١s_Rě%*JcKR;JJQIޫMvE*!b&]DeT FxLDm5iRΝ K L+q)KyIE'*녻^Oʹ[&lXJJJ-9^>Vݱ?ۑlp~y+pRBNDJ}aAy6Y\m.)D(:TZ=lҍZj㎼r6ꖝ[Oê'_q3-c0"!d%,$!>,G$gc5*Zn8aGiTQN)kRRvr;hDbIJM6셥Ej WAj襨t4[MP+Te!^)@BB2j.mj'6?o4)umzSF:sם%7R>ĥ-N,j8[+)1tۜPFD=kq%$^rqr<_rt,)nZY1 Gr\pa8􁓒Eu-u.ˏzord)M% !Gj *מi;XjtnיL/<]m,z@A: +O#Xl-0цbǰm98$U){v=(j2THW+S#'4\U(`U~i~lmo*m"L TFW*#޺M[~IiȐ1E !(vFj.t.덱Ɛ;IHZU6:vfc"ԑmrz:%\}\{VƉNW"6c<YcaYp' P<9ܤ3f u4hK J m͉R͌j`xqsȌi%LEJAlfI\c\]YCj#m!np~֧ !N N cH l.3Zb[ScM9[@qi@T3DB>3MٮwsT:CDp%K󔢒I)I~[[E6,oag>r xIV dmwZ_ֻLg`Lfenܞpm”=g<#itfF.|&Jt #r֢@8HH! T ڼM>!ASH%6J@l$|aIگ֦"IIwT`u@z$f ?T+lX}#9֩d xb:8$3ZwS$*ᒜKׯj|LjOD-+.gs#pJ>j-6oVݾ4 jV*ϥrdՋK^|=;4+J; )ÊOj}9ζIާs6AQq5l0IJԷy:fz|bӡM:f$%|G -muhNy)u'*h.mʔޤb#X-2[[֗HܶϤa0NN: YL5 ' 7%$RJ@Bw`-J9mfdmϪop[Yia4'Oma6` mQ֡ikoݷ %Kﶍ9ҕiRH˧l:[$hP-5N ZB9nlţ].[˷\#m̵i8C3#.i:y҅GVV~U "j |T saT[j[$4Xl RaqLn0HsW֮4P@! B>lZ 'H$ S)Gkl q* #g4;F[z#q7_ @P:t! 88aHn)HrN9oZ8ᐕ⏤t\zzKZr&Bm eX$4%NE>ZPJTX;HJzޱ%i;)fCnM[|%Dci z0r-B4drRϊwlH$( p฾NIp+MYmg=NIGDWHJNN搐? ]ZiMIl! rBVH |W!۵+zf1q"DI=9#(߭niuO[ؒ{4V2vqZSԑZSH^#rTt$4|J!ACmcr2>bC8IV@R$~4[h-Ɏ9+Lݒ J* JR &lrXj?kTw7xerJutzB GHr*D]>u`LtR.0TG`#unwG:;Q VG϶1_-3jaZb/,~zҵhqC!]6W~m0FSv3em8ӭy qǧ5&65W۠ N8t;o_AimjihcS}\wjBTsLrk]yM"^m,.5lokSk+ ϖR9۸]o:2P^RJRRT#f;f@q%W度{{OĒ}ȯqO VxQɫ|YqgGDRZÃ(qCV֚H$ܨ*Tזl*{yMז8OI(H?j TK]{=^C)'.RRRR`58 "8BQe JNzgr'->̴Z6ږy  QW^iҽM`,K~YVxW5n:! PFJʲ<}H{8wX@2m(Za/RHSO~ڐԆ-hb"% POڶq6[iJ|yCؐO@ֽJCFz6֗::d(Wq}TC _*&'`qurwBȏIa|EԽ$+9 g)#%<j\X㳬\. Ț#? t *kR @Vun3, dPÔV Ve9)Q `Ehlvps\Q }(X8x*Xq\u$&4K#&:7| J񀠮v-W[4]$cbwyc*0RBE@`)@#CR}ݭ>jpU.$Pĸ`BijRW9e}L" Y3u(DԥC$/s11%}"![G%AM-~b!9)J¹uYONBeF1lyIP@ Y9@#sQ:JClW4[A|Gu9 NэdYZ]cvn9![$g)H 9MJ&uc:|\( Sm4TI9@Q &j )QY<u Ē:`uQ`k;Ry . dz*UK{zя=e阨[ VC) +qsܦiЍ6W)Q+q8o' QꞹI2܍-)9 VFJI8VGN^EF竧r.6d02V%6))Ik-3e_GޕgƞuM:KENzԢFⓐMmynwY !.%e,nR1؂N=i23ɾ8VIVBҕGR`O>5ӎ;*Z~[ Ft%d)~S$s۵C孋T(v) AHVޘ)B9w)}jǐK[;i8#mSiޕH~6TgB8 ٕz'ҋ{r@uJ#bB~gRD$`Ab ZZ.̵A,{-%@de!Y.vthrA@Wn$rpkm|CPX_[r31ǐg 77 ǒ\'N-A}sLC#_gquŔ'!8)^4[V{ VHp5٪ @CM4 w8[{4{ҭ}n:)ԗPFќp: u4F&~"mB \`J3s^!˼?ҲnbRI gT)\Qۉ,D-NK.`y$%q]ֱa&ۙkT$ɸ:׵% eK lP$JPcѦKMqj,g杠J\Qq(%I*Qpy|rLDkҩ.9IsGiQJ}]'m^q&w-! Hlgo 8*&i6?sϸ(Sx60O_nn;RkMpwKH[H!60:m:->VXe@yQ)M瘠Gr z7E5-/ʘ@TH쒀v%+* z֛^jy, jzuF\ K Z![I;9'mB_q3|M! FT! /AZ&~22RK(_CJ'呩6M8f4tBAI屎V4eVAB*ܒ 9jg{21yUp1sTN(_8#$qߵ(*W'=GNxVF}Jg!"l[]Uj4F'%#$ᛗUHxL5OΏr@uvy#iT9*>~vԾ}ݣ!Ef\uHe72BN7+%?Ìqzd{-_i{RxA*C V[ )F6pH8okP1FDG,JRTN6Oy^F7FKqAn!-{$8U=~RvJ^zK(BJp;ֆ)<=v#P4|U{l:wpWkl$Z.f\Co.!ԥ@o> OP[hor6EKy!)\Y@g ā=1Yqv/rI[zOU&+mŠPNԞZsJԵ7:JJ(o*JIni:G^,Z6t)Z9pƓRkkbkeJeXk巴 |ƭVKD||;nA¾e('+[hL#s܁bi~LfVZĻNp՟l䉰978dZ_CmI$1.+;SC m>b2' V4ֵCa߀WݚK) ZNJvG+=kew{ZCvebE0i) [H)RН)ؒx듚bmźyU k֚eqǞ T`P;LMxfLڛK &>%*'I5ZVD'Ͳ&Q.cl@xZؓsA6K;T^"5M߈| A$cГsB\"iKˏxXiK<2X8ON;݅,խYj>]C,%|HJ7&?-r有{l/(~A5*FLYJ(jԦ:$$5R]4W/:A)+YN } '>,\o\Kպi%nzBgcnbjEEWim%o>nqRۥ_t̛=Tg6Ϻ׵JJ׀ nzV$6v P'W-P Y%i Hl8+W먲pe7oae!`JHۑ1v߸i`ݖ]CmԜ`U֠if.6f֫mz~$27jIlp$(prjnӬ HpLGԔrR.#[ `oYر\55WpA( Pܓ6sR%O/\Yovqq mZ*)~]j$"sSjIj}w ntse-kB)m=2Q9سҶ/۝oi'Z@*۽NBZCћܣ.LEپZr:Rk'*Y~`jCeˉ.-J\Ait3^Q.m ]ac7:O6`;(Vܜ0+mmE͂}9}bviSo?nBvJ)G$5c]ƘCm]h)ҧFYJKC zⅮ $iW23aOП-zV 'rwc@ei[{Qg_KTBZbBrĩ;#שݚh\oqfY-:<؜9]2k]%lKə{iyW0|YY $`c'5'.r%k]6<*| ^LuDx d7V2AIF(͈#)r#EiS*Ԅxv۵ǵh"9>D<GzG=;gG }J @xt=5)ՎbTZCfDrnJy#8_VXuS[f"DgAI'AƚcJRRRGcIiG%W2ㅰ/-pA56BĤ:\H9Jh)o:W8ӭtĠ~H*rý3%--v*Jw#ye!鴒`{ӇwR.-n\ꔍcWֵjdbT=)_+Q@AVKO*uq 9ԡri[JARSυF}确(L}ʌC,)C-V>n*%9!bh7(p1WC1mCaI<-gvgy5SEMQ`: #''wY-\$C(FIܵ9 u~ NXqK.T()ic%[Uެ"K鸪:B-ѥGNHPH'iVrW)_stG/M}$Ok~!rm,?"ܶRrw5B+,-몮Pï88R7 f;2b.Ps{ H*O`R;հcpl )n&RAp$ ':O5rԛQ!BVԤDa%HقNx3jt%c!iH )RFT@ $TJpnWK/.9RIx><ɑ ~uSy+ $'qUPZkOVoeh HJ  丠38b&)NôoDX@ؿZ2@w <Ԩ ]2B+Pؕ'r0Srƭt*| G AB{ J[ Ja;R5q:ڹg.5*iԲrMhJ@ Z!_f#9*C`%+JB\;$c&flA{YBہbӄaJփJV ۊqsW ]%7j<()!է`+a<5fۭvvSa6uPm\sr6$ad]^nW!oOvn;L7-{^d!(IN9ǰR8:Q7FY-\pVqDj 3 Z6DR+)ڢ n=eF 4P(JR2TA9R򉥻P9ձЈ(Ptc8 P4Z:MX-Eٖ{;Pޞ[iv)~RңWlO:*5CZx) 8@$T]L5,W Bbe6+qpxXBRJ1#V8sdfqC5wgҕAOpNC bm.,AԢcw+%tm㲛)Pj#j;tK^3-Sd3yOʥ.oKҰ^u\@u:l/''v6r5:9xLy:%L>RRS+DxI~1RPm+V} z'dXtڑ.m},CPIW# *EkѺεe["Jin` %EX vg[62z^FRYSyk(Y\;jg0$Hj$- RTv%)pY}P6LbQ$qW%Lpa= p"nC,6کev4%u]YCB ڐpz{)ڵ,M/ |xu3,Գ'{Plv᮵*[But( AD'qWCk;Ka [qNRBw@ݎչw[ޱ?˶Ÿ\K,kNҢ39NfEDV؄g>W}5=3~Z`ua!8O?:9\cڳU9s'9Rvx$r8FQ<j ]ۅ:JqG{W ی0 ݮ`8ܥ0lOK8 yD=}--7v۳ڧ&MH DRujyG;{pǷJ^ rFڌk\grnUO]ݵCp!R6e#w>=5̵|3mmmar IŽ:r{T %V;%Ѫ[[wm*׵HEi*6ŠYgH[-VwgSz->TM6x%4>T+v(00J(HAS'bH*ܓx9$|PŤd󞂨Oq\@Oߥ2zMǰ=jWdgPPs5},/w'Ym6y$*<SmUj'JmFλ#?kVM EJn|ܣ!IHg{Y6Ҳ4[ݯO栿0g2$J'bHtC FzWoV14IZK%Km҅FlN*>Y5 hK?2Sd8#y=Z== Y- ~M٧;3H89]fD[D\w+n)E))7Pxy%{29%nRa7d Vqj 3'ِ3vj9p;@Vt|u9[KHךZة$]-L\\ZP8yQﻟz֑ܵǸ~jb<+rZĩaRjZ"KRlL6OAJ܄@`(JB6jA2u.\iO;)́Jp䒒V΀ c&v_b-Ejd @ZKcIŽzq֠jHF-Bmmd%rOV{Whזk_Ǧ%Hy-)ŏZ} W; M7ezdz4`d|fKjguFm3q-+SLZ}H) j-0퓴R(q qԐrO<+5ΤfxϥNiKHXݹ HsVn,޵6j$cB`v he) Zvp (>µv9J-V=8IwyX8{'jJD%.tin[\y(mJR=k*!Bbץn {f*X^ A6HQLb2ljVm-I!no Yh$36W0Z&X34&0)(O.3yi6!ˮܧ<;ƛDW [I%hRt:tq]I{"T;~ C%$)-]n+%.F],]?O? -9-$B8.qq΂\ᴈVM@&[RqE[B9? 23ilӺ3U]"0aԮۼ]XJ HPVʇʓ [,:\v;&bdFZ`0))t1$sְmjșjTVqY899ۏϹXPm;ՃoϠ(jR538?\vhwb;kʐ/@9Zh~pG2fR^ŬbN/oZ9LPHm8Zi肫n 69j$?"2x>i(K9sםX% `]SHqPlӶ;]ת߆#[)mJD0pg8vG6["UխlTސʏΰ;c|2d2dKj mO _Ƚ*TN>3rdiSwP|lGRީ/č+ N~4+¥-n,\P%Dђ?)bu3N\]~Tp`@n# 1'j/4lPń)qY@'*#a ŦBKW&̹E>bZ,$TG%G难W~itw/ @G"MKAVz qϦ ̯ vDyvv2+q ~ޔ}k,HF! Yڂ]SN%RB‚rwc"Fq3UW!bj]cm.yJ,, )C7ni9 د,Sq.|(m)8ޜyKէ tֳ Df>k+ ZP)N0ךbhyC$Qee2v)dUZKkJT`t"]?'Rm^$Xe0̦K cΈT\<*ݸuCڧBթ,yRp vW۷鉗6IvmZejIq;ФN0+o*CoB JT$\9|VX*:Y<+Vď1qo;o9ڢ6 |=+*_$nIߵj?dPOC#ՙ$O*+z%! 5D]Cq>>h??z\fcw m[YPH°zzֆcavgg.E+ngg9 `p}v&ZdӮL2aIJ~9W⴮튌U2Tpx;@HOAqZ3H-mCWI[Ȧ1 d$dGlTˏ0ʓm JA?bEB39HC@mJ@B@<$NjԼ~!|Z퍻&"S4[(QrS ^pz{--:cĉr6Pl@0sRbtƣ"GiNTFw%Oz"]ٴ4XbT+lRP; 9Y-]+HҙH).Bմc. $feGOcDaRRtAJ JR2F 3Q8VqRTJq{}E52gĨywU7md:pJX;$ޣ]MZ9YSZnHveҭF9ڰ&2X-b#7`%r%EOٖLU5ջRs\^%jY zUơE^\'=f;OBB m pH2k6UyN')RUc #8=sY@lwYK-:%-LKHO&)1N]߸MΛJj#`mΘrm Ͻk|'g["3f6Dp;x;Ɲ'jga?ٶvBYPm%YO99S˶]΅knƐA8Qʜ(O͜ݺPi4H+Fo8qr'h J2G9!YV PZ%*jefF[{۽xlS/|;B3_Q!$ (`*#1gD+smʔk\e*.9ZP~z>TozvTo^BʊRdd&RquoP5*U%-Ԅ=2< ׺~>:qLߜKe̶ l|5eߪ q[m_!c 5'r8!51-y? Zy cA{Q!\s=ƭ8"Jw ?ǘLL֎\^A;BǿҲ3kP^Ye)'+ H$svͤ\Жm=W!ɛ+j2AAv6ؐuT: Nd()G9=sxx|nO$T9'sc$xɫm/&˧[yΥ^3b$qT[*۬'jc1vgnR˗mQ#lhr:ϖ;H;u5,zwQcI ZNm5+Hג5"&=.حAѐ]ZEcV[c8NML-+ehBQ @Zx#N6=yDDNє7;ͷ i4ΓRT0ҔW9Jק=Pb>d߇}RTd($ӌ%|;v4hWA:dDmm$AK %.6p柎+J 6A1 a'x_qޭD%]dwHCI8I'WP&dfԌ PԥoH)8RH94?\T j HQl -iR#:nLin㭘dv}vҷׯE[:[O@ݞu!ѓERc镗%aa*;FR޴3]h51ڦUCn;.B 8H N(dFHOޱj}x֍ݻ-|k|ŒN9$)jiKvX6UjwGΈeIuKx2*ʶpyJ{m?טsoMX\9-d²l 2k6Y>[ l3WO-rw(Jp2NH $֨a`Ucj{FOS5vtOQU>tZ ZmehBd:$O $rIⷊ[M4亖in-jP2T}=/%5Z.MoK+gnNi=6i,'.Sbe) -e`c'%GTSM[zN-R^QCiKhe\a\rp;+g%˹?Α&jڥ \96խpmV(FqE, > ]!o/'RWBBˠzَI%dm([ʍ,FّMAc7˸gַ;WZ_b#kANu1$yE % %)ұdiҪzNq*UnjDZ@PGLc#i냃 H=6?NEt}~Lqz#դqZ  : I#8ړMj,Fˎ+aO@*'UKۑe$nD|4V۪[#O"MI߈6|\ٱJRz$iȩ-Nu BT3`Q CJ\aY~lkJ:H<{nZ \u7q T{ *cҍ1mtͪ+y^}JJJU+*HQҳz$gc[YXǜCVCz Q{Q_,V߆C3DלYRTҾC8WM~p5CG6K(ZZҕ$p҉bc[_D~cp"+i+*FT9RO sՆknIҗ|(3ˬ"Bм-┕'yQj 3KuķyI!+jG$^$^%Z@n;!Z׶e RW+`*<檧%ļ+ď*6[ m<ťJpp=Fr8'9yO]uۻ" # yRP)cyHǤsGI7 ޭuɳZ(өLvT46ЂRwrFьpSXN3s:u޴]Pĉ,9i9F=gY DEӒS*׍A"D~\hXBCލ)'Qkj3MˌǭZ$(FVQV$(Üb3W! 'ێ' ^ӯ{U-cSx1* ->h;R?=_Xn(R]T:9aKsbXZV~TJ5&LdfMDzQhĮ3.ˎWc ppw~ ~4+ݕaa𢁰p*$3WC5sG1, g>n|1iGNPMD5ʗh)Tv2zktӐ!=-]]!؍ R8ARδU,leəP߹*TPHqaҤ@CVr҂)M;9i+84\wYt]Hw(XiYm<Ҧj~e,ő:u$LR dzq#+_c|Qʉ!ʚ)%K)*@R? |Q+Un=pѬJ@*(CݱdlHN۴=z; KH8 V-( O3WJ"ew0[%@)nIq}UIrUDۭ.S4H}K) (ا8 5?oMi)̏&cS\mϩCD2.ɡղ$+f[H;V$'_TvR*Lն[cBʲ ݷQROzV]sF͡ f!C78[ZT'TXZL)jž$y*uHorT09*H9_Xc2XŅT+ 8RxAR0WI]Xl7V*.LcrR (5Q5l?_NCZv,Kn mi@<#5;$o!khD,X]Q! J=~a?^]˥&kG▝o8nnYUmP!_a0F5L&C3MIf0P "AJ*#3Z#5v* =5N:ZB6NNДT'Q, .N @%8J=Wh T:\@;#ִC9RN8:̶u-# .kNpJU#2{];nٮnKҦ/cPB;hJU-IիJ[RMɫf@.D%Ⱁs7,.6tmHjCx!sn9YjtGXug|Tw-Bd{TL*  VXR*cR.ݽ1.pk<2;ݣ!]pj޷OĽڞ̷Шm%$P*Sj<O8x/PQgf/$58Tۊd \zkze=4f3gy.%LH2vXn wAv~!-4>%M%Ed'W˖Ԗez\hWn>#b gأ.ahJ]L6Rj*p H;ϵd(M?YπnJJHI =-HuL6)U.e/BRI d Aڂi4Ɵ ӯ7)RђV˻yIS{sR.܄nq!JBR@)=EE]'C[8."DP\%)9c8dk{O.R{)*Sĸ֝RPQA<=Fuەu~;:DGۄ6` ǩ=SiI3-&ɉ%%J޿-DqA>xV7%uQ[9mAMw}7=]J7-IY9x]r,i;`.9l:OED;^?=3PmDqY=S1 x 7fNJj B#81fo4f8R)'mOl_CҜTxLIV *n+l# =o4ގza6K,JRJGԬf}Z1aJho <]PKM%(n#x?^Z )UؤMԳsu)UuxJIChINTkA-H0UooΔ[.Ad߃X”\N0x#l)U1qFE'%'9+# AAUUp9u6[PRV{Uӯnʸt?kmY`+C5CJh.4\7u1 5@BIǾ~wr(OkI=|1G:o6EF@CPNJ-$(~Fi yeBenհF*,Ȅt.*9JE0j6+_ mqT8䒥OW#Mm&.D ,IRJz'ҳBCksqגܟxެmԌ 4iO,T@%*|۔n*#Zͫ-DLHD`v秿J6-*PMM"SeNJ ޳8sԻ!]v(RnQ9QXk'c Ҡ_mNinZ;RJFО;j;0џ~x+fC #$%)li,I11nJ0͸(؀wB0{{)#+vLhYSd^e +ӄIHǹҶݻ\~Dܝ2m3;\Rsj#i#4.MO|LH jJxKyH f۷;eHRr+z;qҰ5 h/զ4w˲$u )RSsNՂ6ݮ$\Mjw YNrHkH2MQĴZ#Nfzp@R<njWzԸ\*Q-*HA!#r9;Y_wJH5;Ej"=HJ0{ f)1h5ÎV>ڞR8܎GZLdSڍ),|%,aDn{*5 # .ZXn}Aeƞ. $qlӭFDY:}n_[VةfsnyyJ=D\uv-9p(|U꣆$Js=~SM>*ӦcYL/NoZׯKj}^l)!Ԥar2T1ПҮ][mκӀzxXv. '+TxNR sEϤPǝrjZXP"<(;RRR3L.{>1A*uhPYy9vZ[¶pљ#? W0s:ͯ/h(zExpmHj#'9W:jZ9m#B|>6g(aw9c#rOlt;TH!-omKIڍhqִ^q7 6=6HS/.ByF0xqnտJڪv?jdO@j#dF1ҴZRHӶ'ř JmHB*w';ڞ5.whi;G~!K-@(MuV]kjEN:Bg kX-uW8zJ4HSE/J)*nW#oХ?ڑ?cRZ"@$(r2J&9Ӣh6cÕh2rNR]%*;6uH5#d{c& >VJV:@QPUCIIrX>#ݴmI*9Q j*rӊhjEml #*w9띣Aڪ-tʹDB[%ɊqH>g;TO fҒ<ضr%98d$$ISMEsVt{Nj`/֍>7rwDg!Z$!$p3 dk6nksqH\ %-)JYʷZLXDsH#`}~Ssb1oޘ'MWPQzzuB2 \wsj%)&juc]yņR}@(+h) Ԉ5MrRmn0`8ӻnS;=鉟qKzBPu?ĂӁ/RX-Nٖ.q@$dRTp }Ugz#Vm 6G\|) P[w%@$GN¸ݴd[cq#-pC!+#w?vr:5<ӶDg/6iPR}[Is4f-T/ げ$|7hqCaAi(ҖP6$R88pt+ \zî*RReE ,vY%!TXpQdi2X*KCK d%Y'ʈ0\;u豢=/4(xI8'ʠip%S4N6VHN;ԫd]of ,]m%i//b֌e#wuJgjZR/ؓ\3ec*qUI |殿Kp<;FcҵQAJf:/|$6KC +~ }zzq :lKRRug !v.Syc-jld Z\!Fs&L CQB [#{pa@P$Oc#'S.ݤ\K-8 mEmRR@zRIMFXw8L8'DZ!)P@蔒 ]8 RhylH^}j,U8?ՄjUHmQjL FohHy{R ܿJ81'O&uю̓ahJ[Qp J=}jl/Mxnː/rP>[ < Ԩl.Qڏ`#76^-ĥBT>D'".>k6+OwA =Sf"6 3֌-n8$%i$:t=(?UU_6x1K͵!jH IZ*#$c֡q[9LUseҹO[p@+lA >+g!-A_vBNsݴp޶N*juT6F?쉎E‚d`ʩj 9WO-Ye"\d)Y%Awޢi&N0X} AԲuzʁT OGSJۣML@>ka>14\tlsVe֙KhqD!I;})PiW5b-kIQe1JZp)C"jM⌄ōeRQ ǖ2}[Zy%1O3YG*[ʊҤz\K)>)ݗ*e3DvR@ڐT8N~D[---´W2Jv `JGmp2eh3*r;iIڄ HϨ8=rRNqb+m8%8JCP7z9ՂޒttL[hBڒW='tɣ\)}1e{-^}jBJ PO gb2?[gH'Hd'E0ʊOĸЙqƒBґ’T=9ˊ|Vmuh+I69Qqlzl\A]vۀMPĩIRRpOt zbе+FēoRdzh6I$dSZMVm0ՏbMM1u,sz@PI m$\ۍex*3Jiip8 b"V.=vhYZRʛq+CD#jr+;|jZﺓPjm#t~5< LL $sY4w.2X6tJ6$[BI ^RS8[>W\&9@Zu,RT2 M4Fص;$9g9=iͲh]H@7gFW@NJR)9^ eM[:LZ<I%X)P'p kӣiF{ ۅV P*Ns֧ m)ъm.kʬNjgy/ZR"do( g>".\ω-Ëuťn*.qq^9J]5bj(EW"L3rAwW~l΍Z& rbL@*+ ҵ% Q;@01瀖H1Z7 ƚ3Ȯ5ng,ÊqM wU]E_/aܯr D tӴHLM=KjHujOkbDn`GǖIhc $dWYi t. ܹl})uIAHڡOOXrnVdqcIvJ |Uw $9xx*GV>lox` [?cvG0?`k⾨Ӛv3 V1r92xh^<.)qn3epYWI%Y>L `.~[ofJ|BJn F0B>Qݫy"kQ210A i#PI88s]Q~ptNG)/Lv#G 6X dPrNy#83i]POcL%vzqO5O"W«eL?vjd{|Qx-kw JrNF(?rusV/K_ 4: g S/#3e\5=]%"+oB|y),qtEĦmZb\1[bnKd-R 'i65eG#jy@}{mu륵|r&q̨WluNB[u;Us@in)y]9=s^ZNq֨Y 5}Ef]۶drك)-X ٸH:d sPZmM Ve62NIMF:jloN4M4'ߖ<"(+)ͣ<֢I֐!wXcG%=nCeK%h NU^|ѧ|Z ϘO)@{s\v]ypODj cq!H.ێCa}R-.@SɊej|e# gͥOQz m7J;+߶i㐭-Hq^-!JS W_Ҩ㰧YDb$;kZ):⃠{JF\6k sqE g0RQ'52w]nW%m;Iq-䒐JJ0j Ko7 Mc Qǧ޶5HS'oMaiZ $%dn7|U=.㫻ie&7NnJHjZTUb.=g\ R#9}!)i#\P1ձ;%!h+*@ **D֧OKIu\XR,c49h *TSĄN)u4Q9QFZh5>ڢZm]K~)/RR@H%G&hJv 'huLHQp7G8HJ%v-VثJ||{ '*B}XRq[$]hi?@%8x /e.Z]swV8@[0O#=;uHa`vu^oh'x*Gq(qRFyn- f@!E_9nbk [ǭ3e2 ^6 %8$וTwW7֝w~ͪ3&*[/- H~<E#t/ "X+1Se| O9`Jnz{A;rVKZu)/JYqdEuDXkJ4ڧ\J w8Eev$^'^dY[v㎼&]hiB^d1,P@Hֺ4mMkOv a ))NRJO>* ^뒮:p+R TM3_j;SD^C=6=*B=TڍT˺FeoY_ma JF:+]mf)\"7#Cj i*JRAP;':WFDž) ..HLgJ[`thj_mv#q\yYOɗt :S1ڔ)%( y=kkaZ6,թ) ^A)QKBT?=6KCmym.J^`^5-n(a0ƽlcw:pIHRy♫87c@lpqIOrҕ-# qVp'f` 43`8*0$$)Ĝ# Tsz'xO9X=@+8@#(IVsTZI8UPWV)'{U #*PAQE3p99)Ѐ sT=I=Hba@{W@^A{U2xPW\{S* {9{xIN -$vPWoIq]f"<@Ѻh_@{cL d  -oS=+KA-J]'^?Wxsߦ/wC[KܖTBEKP u饜rU-orAae)U??O/0w')9Ϥ\5sDd;JN p3~~ݒɵ8sRVS\Z$5* 7>!I'W Պq`=uYm{VB@uI8CZCqu&!u8#}*ƪSd} EsUk(?UDqZmslsb !sS!⢹ƥDP6|he!@zwW3f!AuV}qg<GLC)HPO 'n -AZKm^"=ɓoIRZeMrҕ!?dQO8eyhPxRN~)χ1*[\->]Fq9\׆, W] @證yDƬpU/=s[`zshqօ/yMn?T-G* uȫVA#JH:r75=ԦSxƄ=CU$H<[|񙓴ūCgk \mC?S&5~T9Kз@p8GWQC45cy5v"zge:S1tE)Y,8 o^bE?(JT2M`jӫ-#y)NrD5cjpu C髺U tk*Bq^ 0\\@\AEE2yjn78:֣ع)Z'#4RF=co ~UPFj~7q}wg쮔VIЂ*QpxOkPľzj8VxMl~_=*(}1Tr*y>f~eUw:MR)#V?3VT8F)!\E(+I+)'W}T{I|U A+urj഑D%9ڡBUUw1L9qsV:A:Lz|)"J`qjBx9+'zO# <~> YO=<}^mh?F~nětgFrF1[t7{hZbB ug&NGug8OAl3T~ȹ6n>Ӳ0-`+Gz+$Soܨ8%DNÐN+?T6{1+^"<՗g)m zFь@h KqyMrp7\$Z_`nj5 tXYHi/Df"FK86}Yi+Hۜzt3o7R1"p}[,Mوv{1y#FЄzQM k2m}n-W,@l# zvJDぞj{j7e;stȕ Ԃ<+֯;t'QL<%{=n859T:a_=ͧX<[llBn I!Admkq#H-i"V8V*$& [XQŃr%*/U/6T$S&6JtC,sR?Xj4mG֣+?k"pS$T9؁c~)g qUWs׽ZeKc7g:B1#!WWi bԋ<̝)j=;mN?*_d kpO'?ucQ`5JqwVIynibAX{10:ȼ+eQ^۬+XWSo)$Pz>XRQ!AT: )hNԨ(qSʬ4k ~){BG}qHκm3++dr[-&:VHi'V9**O(<sOޯq0ؤi(V?uvߕ`[8 4ē/1ީIHȫN3yYPRT#jV=:%C4P!@mq*Փ rOz $Ԍ\ ?DnT*BJT'wLAL%d@\)Gwjo!GSU V QPH*“j@ws-\T ⠿I0zNjҝopyCv\I8V;y5pV U9b$R9:tWUQO=DSo_@bGz~`F@jP)IOujgZ}e#k !|31lsly6[T=_f^Fk8/.L~B)?dW}k?{C2j-댆)Hl5}?~IKi9$x⩞r*>SNiUz{R(-IޔiCWUD3ߎ;UI=)L 1(8m=*GJJ` v?J\=1UCUi֝$9֫ɪ}jӽW|sWvU?N()\sΫNJ#֩}A?\OUO ߿ҭR}E]O˭L fF*c +&hrsS PTVH=rX[HKY ֫"DV;R:*,#0A@8En>GNdE߅AڞQٻt2Ӟ2G7f`w}Zq8֩tN>$nnn*#;tuiLeW;~R%HWӧξgUsWoxGGru.me dR/qХ9պ'r:m_K{ŦtY?k 4Mw0R[Gג+O&Sm;Bڞ/5GJV=4t߈HVl(~TH~-p6|Bt޿J?#*4(t]ob#(ۦo?z` H u6|Jlzz88?k<صQ'F^G\_W[GWkgJo#ƾ6^J%^5T7鋾{f 对uFTb6sH|.ϙzQMmAȲ[# aC~+c>=1{UZ^cqO8c8<~uD_ + ':' -p*Z:IQ{N@Y)H[a#a9Jd<gSfƈF0Q<=QikJv$|}4Kmw!)O8W7jc2ԥ kOlPS{|-m_أ`|yS%kv5f'Ε-1gjp; W~t:^ԝAxN }<Ĭz\vvG$zj$?lt5;GvХ$`9c RzdѦB3`sUd{V-H >P8RP(Fԫn\;a#A*ǔByRqc󪬠 #%h*:%AA8$U= Xs2`$Vv5` %N |j!pwwqTs_: ?* =IJT)Y*HV NR989JT'Nӻ) Gz$x0FpW_r*V'U׵GI#Fp ps@<:t8‡@9 @UJ ‡8VᑎҩUHNJRNHN$q=TJ@OZ%AAz/DAJק^IqҫT Aj+Ww뚴*J 1tGޮިg5^*"qҟ~p*h}*ZҔujwA(O\sT* 'ugJ'gN09&)W9$c()_|8@s(}i tddzp=ΉɧB<EPmrq5vBAT$sqI1n)RUM^p$$T#i~t8ۂC'pT@=B檞G'sDzs$`򞇌 P] `qTn 9=}V-G9;?N8˂G|T*H9OtnFr lP] g* q۽Z 愧( ":c4}?VCn ihI=.'1U 9"tň}_0HV.TdJ(nzr9OYcǑ4(ÊPxNJm^I~XD䄍};[6v`T>aS)SRJR)@)@)@)@)AE%+IJPFEjLaG;O[ZP6Orp[ kFUut%qb?*YV=)M5ŝ=yH8Ļ=ٿ`C])%œ %7Z~" ׭5uj:Rqz]Yk0mOU5n]v|lT*? SM,֛?­/\-0 G?M57Wnm6 UZilq[jdv'JZdSs~*]\tD2N~ $yi!TviZ>?ֲm@mz68rG*99BجǞzK-,MzVy<w}՚JO,g\Q/*xt^Zk Fc4u&Jyzʇp:WG|`y_I*? +g4x>6ZXJHejbF%+֯ '2#{*m<.3u}'=Wq[SF6M}J{>O|g${&܃YMg||Ihk1vʉsMGơ,xiBAqzF+}k9dŕnlH WDyZwKdPQWgzRRT>d?QTPkJ:t򪫏V*~MU9`S$n@$AQ`%]3V!AGG sU/$r$4rwTmWkpPk?5:p뚠X;T1`Z^OYe)qS< SSdspI 5n ;5m(;]?8GLfl0ԠjiZI;A6A%s8xAJR bWSW JL  5DȘW^X7|t*j[j0V)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J)J oGbJ rmZBjd"l#b4ӹ, &2qJə!nڡ+ksFJIe?К,Etg_#zSWʸdi;U)㯜*oH {8ޔʸCdRƭ6AsߐUʸnmq&*½ O'%z #Ԧt\xFBmj>ٮZJZV֕Osg?OEʑSjYjPƝs*M42gQ\IQxZ^n j] o'eqzrYAAN瘸ĤcN^#QƯSN~NcQI=u;l_/\ʅ=]jZwJTjvIEEF|Ǻym~Ӥ:vkh/m:TSO1VRJQi"E[_zvIW)[#*w4?7D1yuY/Rtћԣ}ڱ~):t}7P^cy*Wu;{ѤI2|ߞd/,k:SjXqy\qyoi}:u W4O5ɯ?cUAT[24eIPOv0%eU~R}[ʝ>^)qy'JW]/׶NA!:f֢Q\Ryp(ӧs;.V_\\V0OYz'QkZ>5Zʄ a&+aҞ~"ukk N0wb޻k'ڜׇ@QxY}x5s=Bzm:U3Ӊ~R۪捇Wi*2(қMy|9Im_)Cj[ŶS^RJuІeq)JK)7L>_2GiMFRB4PN)8a,m5 J-FShZ1g,Iv8_j^Zk:5K7ͩ} 1$G?o{*jsu;w +rY3ǞNm6KjU"U8E33W~lVv3ؒ4cTXӜܧwyM9'G saj3pN;~W5+Z5*ѳ*Q[ FGQpX%+Uv<^8ƛQ\egkTcN^e?5]Kvπs(¢7MDŽ | G)xJ歳8;-;PbחgQEejEDd=oW[\RN&,΄뮟(u?MםKZҕ9BvԥR/״d'CoiU·R)jT*q,/R,qG]Z]ҽ R f3YM?K:]zTӡ4 4JXUjF n>iRw}75Yʵ8%a $c}OSN7mmzt.[O?/3:֝=3X'w8ݺMr\,5s!GH_j%JPn~VAG;s^9klWԪSi5z;gFm(49mewhZN޼c(ԋi٣@kjNڎyᵝ+iW+8U)/dXk)=ojz^7:]x*/Z*5eΜ~eS3 +MZ1էNU2aRTRomcItq~~~IW*r$V_{.׋ԵKi7iVr eWؤNvOIwxJZ g*k+͵-N){]Į''andh^WSUY-\-V&ZQq oyAUPthJ6Vֶ~\kTe(7;MJތ(ҍi+Xj5)B74S*0x^_2K )NwiΛ8/;9ڕ;9So(QRU1yаOb$Qr,+FS4BQ%ۅoYEe)MBZQTZ0|TQp9Nּ`*WGrqP^ܥ(:Mxj=IS^˅/(NrGGCBڌMB&b YIRr=Uv'ϧ8%}&ʮGCN5F˩.j0NKNmoN)mRfx>ʭCKYN;OR\4^j^&8@ TBTdq*YGYR0 (ZtnJ;mӌ*[/[M(sʉÔWxVnJjeBtkFig%j^gBB_tE5imiνnQeqw{wNzoܷFڒ,$+;^s~6glIQTԣ6e%`^s.OJ)^J_.p!&lЖ]Cdj**S$}=?G]W-9&ަqu'UrM{{ %t~Y.n=[NYS}X|<W>r^mg^s:I79dYVօHRsJqi9}U>_].Zm*u/2z}%ؿn.kVgqs\ywTఖyqԗ)|%߀x+<:3Jnn&)}rD7Z|G)U&rvLGnjNkUI}kWZe9ԔԜj)GrjOܦjzmzꭓvrozM9E{-/xԍ==]T7Su̓rPKۿ 3v}k )4:ڮӔt*iB_8:U喤ܶo?}zPu&ȹS~]Nv8ϗburc}FZM%Y絩EFQ*KkjOt˶?W SQv;hʤm`S^T<ĸ_{p]ζZ&dQ=KjvMWdCNx^jI^?|rYR5S3rw`acy/JZҞ(K̫?{S(MEn9.% MR+?-ԕ (ƍN1fOU F:R)QSlbZ@tJ[Y=2ooiG9ܽiSV&QR,epS[wɤবQn*Ti՞Wt6Rlh}O.{:kNrkVPqm85r<&ˍ)i-F.66ng <8/GJeR25)fm5-_8|rkyc*.6u+LU)QM$=^VkutVkwױPjp|,e>Y:_?:wukY9bv_m8G}S9^ 6=W5:J=S9F׺J׮:bյʕJSIRyky"ܓL~uU~)t.R[(_^9_TӚ[Aʔ2,c&ʝ̒Q >RN(V8ΝHBQyRO9x\YjFnSK||Ӕ?9?yso"^՘Q_ź𣧛Iej,*Vrp>m(kYɒ:_%wNWӳˌMU-hA݉b8?:M sp qY>phk*[*Դ/TO35kOv,Y}OItg)WrʽO' O~8P\i5k΅E:VQ-ʣsgLVBu)FU%JKNI'6~e'j)JU]R{Tm ?wR]BUΥpF(ҧc?1{nT-5IYP{%)]|eۓ ~ 3Qq*W{1rGQxwXQ﮵[SFҫ9'Kn1Oq}K9_Z1Ίԭ~n\>[[ҏ8̞cf \묺@(֕ k7ZX/j\w }IPt:e OeJp}eX/UNӕZ^M؝_O{:׭_\RS*NuVϟVQU-R)MeOj}gR]Mn;fMaG_yS$,J9&5nXtL_׸ҡJ A74m #fJݟI4|Q^Z~[MчRKT}e\v8AEVd\ӸO6(}e]K?._|sqZ*sUITp*0e=k^5ucJ\[iTR!QMI-ZI]T5 1MsO1?'gk*n3#\N/;6Vi*~wZ6i}wΜ˷v-[N1ܩGta'rԟU~xsZjGQYՍ7Rı&,.}mgO(TTc*ǩG.+ռSAI'(VӥB1~8腻-y'u~P:\RfӎZ„SQVi_QCu)Yt[,KWR}#1VJU*S < Q)Rܣ17YW\Gr~zjJޛRt)Ӌ|TOt?JhgWKOW{2g4Aӎp{ƭIӃ:[g S_aU;hƭ'It|Xi0t6Hڕ8qdo83̍+ Ga[(%5G#9;*CV^YXSx->ݞ_lJۅl]`)-ֆZ/xzESөҽU^kՔҹ攞Rse'ý*ڐ6y6/ViϏ_zVJ&qoo*O/ /+6kNݸW:u|4ܳq(QK] SM>T%Gɋ)UKuLn=Ұ`IjMFKYRo[jROήMeKbn(lcxSThߟ|G|IkZWBZTtcNIןa\i^V^ݾF8VS_qEƜM6<D!z'YZִj6n/l[k8itMZօ}:/MEɶ[nrs߇? ͫyW4ogNm_۵:rk}󌵓6KQ='հwZXҭ4SߞeឫNx:xͫh9B J#ؓ1O ]t*#ztZJMJjO|qfk6}#.hnu8ת3_nf~cCoKf=Fҕe)kZhU=a )+njTa)ٶou[Nj^Ykgsi$u[R tt :QhmInrf5RuƛM5΢K{,s߹79\SXJ+=]ĎI/iRO%vxEXW7T]f|E7 um-js JO><噓Hq_N{. J?.ՠܒaیq۹Mׄ5Qn.5䷬aKr'Im {MFG XQԦtԸc'+~*|5WO֯mkNRNrIʜ֓)}> &3]wV.' AIp^<ϗ-1^^jU(o pS?%Q)~U[M7m9%ťO{}-:+5"_:+{Ժĩ8մQgo{T. ݶ:fK{ lf(ӥf= +&bdz=6-^=-nzWU֡alԃK2U!kK\[XJkhQħĹ81:Qt=6 Fڭ:is[a_9/Z:[U/mFu.Z失~cS^Ukm9:~bjJ\{qGvZ[嬩eEPr{'_<&QkT^jοaAcݟXcnRJ2cԚr58leIW>1K'Rn89I~ɩekmNUjpӦ_,!wUZQG[SN:U'<'' 5GUQgڪ.N.^ǻB+jS{!*mޮvZXVgU(9FKG#YzjU|ZД9,nO|gAޏz}\Fxg};.؟9r-/ m>uRG Rz^suoFNu#O ?L[鮔WӱGjU-P5^o:GFu *qz3Y~︙&_e=VʗN\_Iv񅥼;9}_oΥ P;ӹM<},G_?? aRڵeTsmOЗg2/Ν*.c:.6٬JH:g'_BZReV a85Kd2З.tF'iԩJ m[+ZΫm:{?zM0tz6һ[Nڪn wU"0X]= =:ѾӠQPIO T)2U=smBnV4/J_jͦۭ7q y^?F+=\.W;V. J QzZ3%( YWtJg~۩ky[>)jTҥ;:;ޙRSRIޯIpuÇO_B2Izڞ .>[jI5&Hr2(:R]RqNJyխN#+Um:zn1UguF:ua V+yW~+EguֶzSS -+<:+KOn-̥*3Ma/n 8_Tqw6(0JPy~U[z8B4۩U)EW5Eߊ[?/>ъf0kѧ }:ʚ 4ls^հh/-9M7ӓx]u.v?yF7.{V!=hռJuh]+qqB1q]'SRXVyyy3}t'L[jѣ[VqJ2Mnu7Gu*?]iQz)ҩFTXK18юtς.(] ~j:^uT} )jk3oD.]x)1PrYJQik\rk/qP~}Z,?T(rNtk'ݽZT՝՚ w5J['l.KT#y{u5SrkŒģvo%L7vuWt۩U_visYx=;^R(bZR8Ύ~8 TiQiFJsn1&8q%ơu.Wu*tlkKz-v_Qhǧo]-v הD.Z*{5q$%g.xu7KUףvNinim,Ɯ[mަo,vnu[u Z. \՞ISGV(FSc,+.aoNu7[ΛczR ZOT_TqJ\p).R- >mIyYF旛NSGwEwL"{5hM|cdmQBU<(po:ժnu6^Q#Gյ/+$Y}&\¯^P%ܓ?oꊎ1|K-<{thQR֥Z[*MAUYZUQII';zzQQ.i2an"Ӹ~JYJbRx:7fߓVJXFX K %;b7.oQZZs:8xג)Ռ]i;YKoI*~LcܺuIOU=ї^_JQ3}Bӿi}'V*Y31lOwvw'03k~JuNO*:m\vnٳWíl(kΔ¥Hc1ٞenaeMuUkXRu7%]96u!--E¤3,}\ӧ$oC.^V _ޯ ڶR_F{F\3hUJdo59߻_,h)~f5嗉8RKk?u49iN>u$+jyqO 3iKuհ_У%]87R_duzW*5[jR6Tˊxk~:IԄx>篩R8\9N yRx٧~?T!Bra{/ve뎕[]Ԯ*RS7'Dz1C: 9UZNⳭZN6爦vz&K/,l+yfRQqU'3eݿU>2$ٹ~ێ=&Yp q~Eãp9UZ7 Ӕ7+.KضՔj[yS(aݜ?:M 2iRS*YԧJOҖi|;i_֣CSQ-kNۤMcw96m RWe;JYӞR~}B*5 ["q7߉vzͭKB捥U3?]8Խ-y1RUu.}c)FN*[q5&I5٤7.U-h պ𼶩;ݰ\r{t k^jTtzѩ\lSB⋏~f]C$]=SҺn}Z#Ԫn%7{{%*뱍ƟU%IOvܪɘ"Սzߒ:M !B֔ڒisPTQiˎddG5qת׷ B*i(Exx1lӴ/a}R+W5]_,5o>!SۣNQQRx6JK|{&tL.:B΍V:3nw9ҞWQw?*l/15I-^зTt+]2)*Ty)FO)]ѣ}yssSlXx\'%K-OXNVZ)f6˸y{e${^kaiъk R8=iT>+9G֍ t'7$Vy[WkJYy_^*Qjr5Ĺv:mTQ~Ty9ԓ ʹ5ѺlhBҧZhU\1'&|K{ 2k˭BediQ\8KRו@Zh*hMUqaN/s|m jSPK˨&𲲟ЖJs¤iQS/1PIr2{ܥzf9ϨkYi;xwZģ5H8 >9kv_˕7]©!oR7:3VQ)E',&71ڕF)tcnm9Yg`Uq5*ZsY|?0-,.(R獉2_8SvԳ+pIՓsKpĩRuJ\MnGњ6 nwVT?EM )/{ƥ8+I\*V;S6[(RzIV\B48.՜N9()ɷ]'r{UKy\R⬿iy8b,H\Ye [ӕJ9ÔZO0- VV4vFIMtj+%gSuZ~_o+w(jy QP(:G :mkyT1Jvvr*h4`IFpr`_qWͥ*2 TW/5>S$Qi%V {k FU\^V=ߣ٥jS/>^+:tyžی>IJ^ԼRT)^ыn.8XX/yWm`GWrˊr3G,aז5/6U%{,d2/!:u.he^['v'jrJSQ?Urv\>#/~M2jަ nbC¥4H UtmiQ':E/|n-Xrx]P•P(NTU{MҗeQ}ҩVrQWj˛֊tjf5?Ԝb&.>J75S9b]q9 9R]9ʭ'JѸvBR3W .mb]$fS[esJi\48 ܡ)Q[Ums^X'x||sVwU ni9ӊ&E<뫉µ*q[ʗ-v,(J2ֽiʭ8JM_ʜJWFIXϳX}ˈ'u~bj攩\=a~|OyVjqV VHs]*m~a&Ǐ<+2n_VZTZ]AT泌ɢ}>5Vu=+t|K+/fAέZRI8o>WݒPn)ҋ&ӒklȆSZꗕBTWT\q%)[ѪuiN5\wnqVa,.e%?~e[3q!J1q[yj9?Tw*Y B~L3̵Be{ ~ӔV*E=4}J5zJ+׺ZqV0M¾#Or ҍ:UTV~8ʌ_8<ޣN- InN8pҔ}:YXNZm7MN=_XkVeEU?CK5t[dAv>2o[kӼݽۜ$|I|K5+ ^iN 5UY]4^ѝM+%V*w4\w~(t?3)e&M7~_GCT,ޥ*xZS^ ^uV̼PҌ4υMƚaUӃF'#KtO(J9i'=_szԚk)Ը'ni*zVZ.m1JpmKo=lUӼq-jx|ns%7~'O^5 #IjT|cɧQz:'{2[:V \*0UvTm{cܶZ niRwZ]The8/VZiݵƝ :j*ЭVSۗKo2McEqvct^kh^+\)yrMmv;Ÿnt:֜F[v|XWGR] ’G-I{:gUTk5FZt[\T%(T4܍ZKti[lV KZWI{ ~u?*\[<9WqfI߶R< ]M}WV }To{& Jhe >m{F*E:ph8Zˏ^uƼc=e ѫG-e8NK /Z|>_^nMBo) g>9/bޤCPK[*rNu1ǥY= &Yi(T/sB^m%GO7 's͘[Y]\ƎW)gF?}kogZ}9WiB4*N]-dTwqkRiNi6iOҩYURzXuɯeI"YXitU+{F6R˭oUԩ*UK4J.['Ggџ(u+-dW]sMհZҜ9Nڔ!)=ݣ.Y6ÏkSWVeZjW l[njK4=RkK]XJϜP<)ny$Xy:nnkV)RF֌She(-.x|3Biz]KSsUʥ *\g- r#F8jikڰ[SGgS,tʔkӰ١]FNH}IHݻh*6QROB^P}W=9ZORiZTVڍ:ZducVT4/Bdl]FG:NnhKEiהЂ iUIFmiiYLhQ-ֽun]өNUq>c,8[U5 `5h:Ɲ.{[6ӥRK'٥gFJԭnkm;cS;4eMMI{S|'Y6-2JU [56?ۏ4'2Wm>noy*:N]jTum9[\ײj-ޫO3Yfn\'b_]MGWT5KRasmR:)FJY~Njo VձsCX+wzP*TO O9I9wFýh: WVֆ zN'qme0˝*_zhh֪*ubTFPJqRR^L#GxT?OU8mE,)8J^?'P_YY'wcQY]9(\Jٹ%?<.KżO;I w a)?w&}ZwFޗq(5Je,w7Nik*Gɸlv.V~<iRi+XU!]9|^RgNK)FzT:iʧQ<8*k2M}8,,4imQdN\ӅmJ6ʔTVPotx_C$JiQ(Ɯ$8?e|<BkX?*SsYg{4cZN'o5?o |5hChk[Fyj=3-2c.s]ϥt뻙F]8G;.J-7>*xxKkCt~*׈:vN_c9gNFj ֌sMInn+;Wdj-R:%_'VQ({B+Ea/3wi▧=o-}s*+ԜiӡA<:m3\4Xi61Vzq5eRqo"yĮ*VZSQjڝ]SմH_鴪F 6 q mšQWrU(\궺k΅JRm>ĕ +b.{xcĠy=._#"'5ԡV㨬mj5jϝ'/n+&ekXX|zKJZUʽ!5mF.Qn*?vx:tJ֎NoFT]JqTe6(-ؒM&I[YR.l^̒UdnOM2/mm\[kz9+jeiMSm&ݎ؛~{֖"OQFT\f⯫bOc+ɴ=>ٗ:}*W5vա]5Ǝ)8>j~AXPygJ]ջu={8gk)A5Z f-f_]Sj\9b)oQRfXUGCmUlyPZWJ)wEgk u;FT'_0e (3\5a΢F}-םmb.Zw1{jym{ↇ->}~–ם+} ƙ5R]c(6off͎oWZJf(P\z^Ϋ5)6z+IY{lhtg>] ?8C_I zPs.xٞccZߩzNw'6%E4ˎkz]-w\IF7 )%R-apㄏFP/mV|*R=7WU}jTJġѹNJIӖ{W8إi Y)\][ѝqJXss8_[QNJN &r2^Wb{UY\[ҌԕyOvg~BMUwB6bU7aT5!}?,kI8ҕERR{S~7qJkIjQQc=fI|տn89IAԧ)Eъ'+Og\RX̟3i+{mM_n*q/*΄8oz}:WR=ѧgr]%#8TjSdi0(%ZҝjQ8JOK nKUJg:5Z9ʩ?<@ՒV7ʥ5VW76"DV~rtF1h_q18N.TmϷc"kœ!J nh#IBK8cieCZRyFJ1eE)BPPio{Q 'ic1ц:pl*{wԏ;cU%61M_Swugo+]-4ړ}ܪBNO9o?R4jR%p1#;J?EvK3Tt^D<۝`,yx}Ғ%2Mɨ:rM'qo9]~v r$[XMgvZ3[F2pX}|fBJݎs)vz -a4LK;4NPke [t\iwjmZ3'M(F^e/FK˺VR4NUaeJq_8x_K*ut9Ռ\UX{orĖ#'Mo~ :ЮJ.ӝE2N<>bku|F-]x/£4xY&#eRqW?1]=ZګoZaӥBcʔea%#-M9uj(շ$3]3cui޻kki4zY߼c'c&rVngyo;*1-/;g6FCeZΕĨΆJQ(f P]T7Lg jUg nE RJ~ry*\$ JT(Lҵ8Tu9sIW-QMalJvI5+=)TLS|%*F+M7p*?^ I ozOSꤕ[ʞ}Nf2_n_%R 'IE>5/qQYI*A6׹$O>o8xF֧Vmܴ:epSԹj2k>/] ZjTVv7Omrm?.+tdr="|1ꛎ:>EͭGMU=.aU)4ܶln_˩?g5ifjPrg߷qUmoFģRI:VdGt?Uӷn]Ҧ|?+*()II<86IYfknΙWzueF&xܖ}㌼>|k^(Ƥ|[bf''䒟^bH*ʞ)Œ5̲-/S&P;j[T!J9%2eԄa:2x85Ig9Ĕ:(p&%{K~~ e^cK)gDUpV9XmO*+wTI~J̩k=f˾I^*k 4yRIgA4v.5xykoElcq&^E$^[M9rO~ V}~tV):{_ 4`#Q]ucJMYQUUekZ暌i.8 =زޖյ:Z[գ}k ҟ*7^18?~V;4:JJӦu_έ2J9k(>TRӋ/{TBu\NN '{e&i:i\Z t劔OHѿ,uݥXU=JޤC6򦚩q~^٦8icĜR:R.WKu>?htJTnmClpyMFQy[Z=Ԗ+ZvMWRN9kxR).NI{Ro}No5,K%9SMm^ҌW)[/}l=;=rӕ\oҒvԮ(ӸR5)U'(\%B4Rs?&R˖xo;#&:5G:,o>a%2lPW= }]6hu˖VHŃ5I]-lr%w &N1q O='.!#>W|dxwJ Yة6qWl7䤫F|'BukxeƊu,uZ2;\,>TBK52ql>xU%?f5 ƤO'6?FéOLw pT$*IfZhp$D'k/+mq<Sm/kXE{ /.#UzY"d\ W5KSs ?̚FTkjuTykkGAS.ו_6[cJQ].y^Dyr2.W"ugQ{BkНܧR1 $g֓3Iլi5SPCcRo "ے tU6קyrոj?RW#c'Z/9sܯ6(O + o2֤U.ܢy}6vs QMc댏iִ MJv:Tj\NGA]RcsgZ{%a]OGDKg랎*tӌ/'RڴiM_o\^ƥm}mUK{*ds4˹ӷkR' q89f GTc z矯~tO SUsN M )azKf:.c7)b^۱ԃKW-tMlk?pJ9iMz}DTk8[dET2wLIv}Q|.F_2I SU]>\%1T-%8e8򹄹y&^cQwЕ)R)AkNJIwbwAJ2KHʞW8pQ:O+0yK2X$7&qNMˍ_9u% P寒.nP&u~J$ &*Rw2^ӌ@Ue5(N/8RssN%ĒE?-aT'Tޢ5( :Q(݌IR2{v$'֚lj/wiLO%:\4ة3ӆSQKn)g iɼ ƵI:U%Zn-FRaSqQ-na§ued&fGv=IKmGp.2o!UiAK8 %SYx%8[a'T&q鄳/o6|A5/wrM.7ɼ_-d?TJ>^yix"熾pY&]|aG9RܥmeK~՜3I8Ab Rk#,qdxMw%o8Dz"NmF XҏQr-F5Gt}GV-…GnIacM\PRwҒr ea"~*'{ԃVtK쿉#i{%K~@9KL|/ Ì[nn=[e]Ioz92\_tx(={6ǛIMcdfɼv~~0$c+ۜ 1AmO3xϿԕR8zmnkv{n%/!Vkoc lcNBӭMH7)0]rkwRgg7RR n\H8>}헏;n|SK2m?VWuԾ$3^r)8Kߗ*]WrIFQiea[\mj8#Jis@v=o(BKj/Yp !yw-'+mk~0$6T4Ԩ򳄢e'%Ғ,YtpN65`.Y"+z%+(Vz:tH *i|b |euM3MU|?F%ߟc=mݍ{vKp`IF3#O̻GN9$q,^\$K&~܇1^<$l˰{^#&$=I >S|Rڟ)Q.g^nM5, b_3$`ʩ,FM䗅,"OYE<ל5N^ְ/ ۝"W1mzpdEMꋋ{5-іrA4SI7˰%4 Q9by\w f?8!“݉,qqkjeԟК))z_SX'Oy'M98\l7 I"i)~x(IMǧ &䛷*? M,G"ԑMmQmEg ݵG;eI{KkM*)O"nXJK _b\6s;ߩE9 Gӄ|O>q%~ӟL<mrĽ]y~/^Ě q߫J߾?Rce톟%I d*),wI/Jtw+ LzWݜJcyL5›_ R9{K#e2xYYIܔR~ߩ1qܢovmg,'`$Sm,5.V;Mr^kP#"e >^ל8ܿOdc!<ۇ ž6}䲖%lv\>;2/8+_)$T*85oRn_ *fSKe}%(•9JM(ǟOBPhZTQ~?/ѱWT/J:v g Ϊ\,c_F&-!~ɎtNMףۣߜ#1vcX-*N?oe*/1[ ;+sbg@]t7-EtRB$ ԔjSm5~Mrod=T ԗLvnZ]kptɱ;5c'J:mJ^Ж9x "#erO^L?`骔,Q˔bMBQTSvkԃ^dd/R߱R==]N1\L2!O3bʑ,u+s?#6a_ǪYYЖV/W4jquery-goodies-8/slides/examples/Product/img/1144953-p-2x.jpg000066400000000000000000004421241207406311000236070ustar00rootroot00000000000000JFIFHHC       C " R!1A"Q2aq#B3Rb$r%C &4ScDs56du҃+!1AQaq2" ?S)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@+MWm+sRw֥,P07H8i>G&5uЖ9X_"mG$H^@p =|'oM»C68RݯM?(vSLNIEpJ^*jg5/2(PdjF-ͨOEI(9}RC"(ujܒcǐ :ͬ꺏ǝ[~֚ܘiȱ*ll{lUSJ̕i BrJ"lY>ܩHBN)IoS].IqqeCw⚚T~`~"2D{2!%#$n]sqt='uNU ),*kJ[$9Wtx;@kj'?;`ǵll%3ĄNr>,'ѽ;Q5:fCi+2Vyl[\N9nts"df۫dƖ򦷜g|;LݘNF9ycCjiнʺG=k8la?rG'CP%N$F:r{WlƜ,Wf/ԓڶN-]}D=$Pu2\R$DycN+!#8ߊݥ^m1-m4Bڬi3֩*cOouZPΜd$SV~c/Shxm.7{eq\\F+9f *CsKCjSssxM YZ)%w\W{M K{ P6uP' P^X>L~궊ZS^D$m{<> Z$$zq޼_N3- 1 qF9* SڳCzare*Z[%8<'/溗'[ro^;hI}jZ5oU49eA;PO?vfW ƔYm*:0fj:֡ ~q$>{L[!$$q7`tmȏt*E})8y(89~} 5׍MpYПIgqRs2Gf=??I;a.-X|=7#5c!޳BpȚYxvJDnDkI_B~ }kveS[gy3֭G6KCCnu5l5)a 8(3[Ep~,9Wn.fR qkK;#^ԗ%GÄSbX4>r:d+{'JY[49~: |:‘JOҿ(2bKiPqd =~z֚ƻӊ(n?$(ciBvuRqpk{xᖠ@]^ؤWD+WD/#OؤoQ,aƳ%?% ښ3Li }3?zk5Z}èqhP pEW_:*Q}N:JV(zV[W>߶Ii7m lJڮZGAk/"J|*G9iXWֶRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRWLGL㨷z2&81PHΚ+]p!ҹ҇ }G}?S|%T%W6]V+BʔBJ@3׏~j[wk .vrS>4m;ڌ!iԓu݃Vrfwȟ5[en!5-W2b.0ڑ)[M^T h6km2j˭IHpG|ivfOh^4Jdrr:u5ՕoN7-,\_qL2)%rPPpr+&XsXm,T^JYeQjg.'Imȋ'rXJ]A@I|Iq7ʔoxaµ$ oн2C %֤ 2DVUwrQQqv2/nHl "IC?9qZRGԷ\Q-_oc Y^Zv`56IΑD3YY*rc$csg3~v-:\gA2TOPJ۷p.H8U@׫!AM<;FZ.3qS;)֒n滍P[nv]]Aز(qcyOӒbk3Lvs\FM`+1YP x~wa.Vc++dt (ZUʼN_ʳVU "iyJBpTJAIT[b+:֖[)i >k>M\ٵe[ctr>t}xl^#i]^f5HRY}$w +x 9h6CiYN=Kk $*ǫ 8K̾%B gշ 9ejkxc<9?6O9z+_?>t5/s}8]O=E/~Ғ%t-)=F==zb]YS.;R:@<]|ť:"#D:l-:߂8?zɺ lBJc#+!ws_[4#TFF|JuWn`PP?pF){Uim@6?i^c?_EI b[ QiYI[Om1 VвJ8~U[t3'۟FUiOCAE rO[ژ݆e4Rߒ2 <շu6&ᶭjN OH=+x-]4/QN..#C  ΰ:ZgىpH\mP;OEuB} OKHPG~v? jyJawh#tK:K8Wʖ$iڞU嗖mg9i\#PV[A>M *?FtG)ƯSQ'L]saVAi>Ҥ!hPRT29WsJEi{=QFj(CMj$J$ .#2ZV~Sj)JRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJR_4~^Wr~*BHX4GGO9_“zs_Q+@hWZsTJc̓,i4;{A ("CH~[}<(QʔJ9$mQ:Sʖr)GNI5ˢE^PLێ7+NI '?ZFG%Xܵ7߉>R :VB<uQ5M\>8!S䷅:I!T;W-LB䞁 $rz+֧YJ>>hyJÊRSs;v[q98J{G֠/C6H_}jC(;rޣ, +>n<~UU 51)iVKcx Sm ]S{ҐBp0j;X qG*Ԧԥ~hl:}kabe~qʉ>X+uE)+<ǿy @'q'ziQʖ|Qk=ٸiԺPw!a\c>5ڮEW B8WKUNK -QU}.mN̨:ӀPgc+fѓŹZ7͙n+*akԕeh)*PH [.\>1qe$bR)D _úz X -$`ЁڶxZߡ\)&J8U8##<島ke6tT̛]L1!)ד`$u8J~#y:ԫC隉*nȗ[FcYXVQ#..ǝr]"ӨJSļ0*9ڔ6=U<>b^\R(ao ,OJg_0~Kϡr2AzVmAFa=fujduA 00?Z/\[r^>uzYmuS+}! R% ڱEU:?6p8SVV;ɌZtTzkQBxmԾ=H'Ֆ#9,YJsu*q#-K[1 U/o0I!d>oׅz_Kպ K XIumΩՠ6˃!d n5Cc+jq+h$x%_)'֋UZ@<};T=bOޭP N;s+}ecsP<1NܫZcSVG<=N֔GlZLc q]6SSl5a"9ԏQeGʈʊskx=xvu.5L!.pI -3Z|!iH^!9ֆj|hwFȂ)XNNG$(g^ ~W>o-\ML Kܔ'A Z&מ!hrlGwZKftl;\QNpU۹)[oT u#<ſgFj*4Ls˟W^}U]]KJа$zkE585XVG@{tv?}^jX%ŀ%''34tm_}ƽi'H![{oGYmwL-|5(' e#r }]]u|NҾؿԲyq!7?-0'FTxI>ҭi}n?.u{czCalng8?ʧqguVک>ş0Eհq2IOT' y*$;MFa!- tzw ۔8}/Pʓru g}KVнJG;WNXHzS\Jn$ׇlclש rϡOCӶm6'QOԚL;GU=&96&e6mo ǑH)YJ INN8^8=I¿|cwu-hSY+sqH\-eyDos3Գ./5PTRR (85jXmͶ-FvvmX/qP+䃐ztzڝR45ei)@# }_G0wku)$d}>5l;^n e3V[}IQG =@u VJmIGO= ~VkUa3(lڐ=yұse&[rAd:O#ԬHM5OIIiGGO4ڜ`~QzNV;֤ =*f`wl ؞IT=|%>POS_\Vɰlh .7A )v U@$z%<$nFxJcV#4ȓlc-8JDAWvn^Ӓf[Zԃy0QAcP{c}ŢIp$(aXϸ%sWymVk&a:[_P sqs;K]9:3nW[Hڸ-BqHIȲ1pDˮp'vH! +$5VK1iTHZ\Uy#m2ݿP9SrfmpbNRmKkyVW4cܞAvD%qh7pIk/gjBBo̷)xZP># {:춦 ꠿!ƙFb^Ҕm(gvdxGj{XbWaYշQnH9*/8e++ŭ2\vo0ǕrӛƉQ*'"%st)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)JP)P>v]a۠2o?̥_7}Mr3XLGlsWP>Nҿ4u㞧[YtUe!tP~ꐚD+:Q\TzE'd>Q6?c_Kj̙.kvҞqD-J]¡+Z+vM{*Zk.QdbsXf)m'1EoM]}q(B؀ڹ}C7p8f27rܡXZ?pqG]Su[QFoAyA7pJVʈyqTyo NU#*ѐz=֑*3cJCv8j JUԣ$OQp@׮@#vҊŜ֭UGPH94@s9>qP7cnkx'Uސw>3 z?֗:s' xӅ(av%#h` t:@YFSP H au;kpʖ >#D8BÐIY:y@==[" h++P%|TJxZ$9+BUJ}9 l1+**Um~)#};r? PyQOdxCb]ChzXA ?jtZG/|OE;\&z G_+#O#ͥ-{Ԕ.PC->6y9J3K8FC$ *ݻNYpT-cDy[a!HNW9FrIa5,,NKnN68݈ftLonZL< ::n*<(rNz,tROt̻-+PFTөA#?0ҵ.F+@\q@!R޺-BpQN1W@+n֐s|khXC J3{NUBF}Fk zvePC@k2JCTr[/ - IBGLmJHfC-3A8}P;<>jq$UËy85?GNv3'!IA((*S*q)bfCkʔ( ǿD88gl$[+Y08_U]f+pTzr#j棱Ȅ~D[>B[{ֹ{"5۬8=HYN6~=xG/[.1U+ԇI+?0<-#H TXŜT856pTJ[}p*$]b601XCӾCp?hsn0Sr:XuI:^&\ k7{*7 %$ mLfIZ;Jwu5-5-(a{pzҺM˴!o)l8_ ~3޵t 1 `$ގ>e+O^{qp$ਚݡ[upsYwRa@R脓OxJ:P) 4Yq%K!{Y@^50vld.-u]N= }8[EDI<CD+ `)_7DTޥh~Heioim0}jv8TI x{3XɈ&K+LK|BD$H R}{w\֘ufw:П@k xxFKTpqe*&+˺PHM’w8iC*{zGq8(j*=85WVO~*_"*^gzZ(FpOڼtׇz$5zb:rd4~ֱ-n8B!)HQ<}E7v>{cY+XwՑ-`[=5:0T{_Sްբ3k+ K T8y"[x1W!Nr;nCU{Z=j|n Rq`/lQJBKัܞb/}YW8C pqƣ%.ku*K gF23V|mt<֤!1ȪzR׏P[!*n)W?zJ8G?`:An4f؋xvcJAᶝR!#|ǥ̒OC鑏P}Dz:IUIKScշV0cQpIp~Ryp=BqT@u=sҭy |{TUIB\t,)crTj1KGz8~^?1QD)$AA<9:%Y' <zPHymd0Q!$FqŊoCKI; THؗIfJ7 nǽTȳv۠ޭ^)a֩Kd09枋sX=F.}My %ihINFHPS*m%ƕ-e%=*e6~AXcn:=R)ϸBQ1AHރpsڪ ׉I2 =-JJ VzuNS$'IU `#%N@iD8!q$ⳎIe[>rЀV#k ܱm02xBr>ߤs 9':r5[_fIT2RO*J{cglV8#W\ 8&sՄQHlχILaݼm܉.?H?B kDv2l3P1#/)m )Zg[{ 2% y-C>}h:Y2%3gf4vRV,!HTS_xb{>h')+ ^=`bk>(Ӹ1Vc?Z&DE< hz=P/T[D[*C:n|>J?JSdSFۜA5I>a'$kg_HQt7k=*|Sҥ:]pj$ֱMJ b]ҎBҰSo|λFGֻ>A Yc$\9$jҬ&RJ |Z}T +r(zgUtrN(V=o)kpqԫ$JxWM, VJ1⻮phV~##jFF?ZGNI@#8UO>&d.MU--X MJOG(>g}_znT2Y3&#}pPTS.tmVE)tԒ ) ?*SvU)JP+ ]i u*ǧ:D2$fPZ}Cw} hv& 72 u'rqj'޿:]G,(cΧn5u-'(PP r:R9jhRiyAq^?ZұQm>bJFjz)8뚯 G(@Ij\ZB=n#9r_n{҂ٔTPkxksx;>'ʺ_H>(늧)B)W b+ rLI%jG>R~Tƥ~h«Pέݴ)adp=7ѓ*^y*b ?1_R']laUP}KǙXP)~ԟ<'^iяfBtSNQbe/C;JM PH(y #*a~jYOʤGLVU(5õP Emz](͔U))l~h5)P$8_J*V:U _SFO{Z*X@!^r.$Ճެ˪gqnr @\Hc$UTZIu ɣk!U%H#K5S\<O 9LH[Njg;sWR֭:tu !JQo*Bʕ: TI>~jj*ˡ cBxgJ jOޥj<+*S`W('V?k[n6T,EĬ/[ )k{mictn)ԲOڪi Žm(B:+X}uwK61|!Á,灚ܟ~HD۬#j㶦_wd<[iP%JQz'Wk;+0A:Fby3yj*F +ZmOYZDy֝JFm侌嶎 RN~ `׶%f7>=kKAAڥgqZ jmɕLlΖV~2;a Z$v82͖LXdF`6)a(qiV1ǽk,6US",6i&C@qHO$r1^<{2qRLssbeflfy0$v*Hl쑖nL6ym)p7rp=ZgJLj6Ix)*JոzxILv{s+uնj=Ns--+QWF $3xS) ~*ʢ8(EG*^toG[wV<ȭ#6RKoޕaE*AU$ԕ)(@M0鷹2օ%YZRGl:Z%lu\#bz+῅70Zj<-8 )KeGxO5a5#FFgKe(Oy4KMXiUiXbre0Ŵm+HwREPgQSq'5/V)ZzjZBq?JZgLt3%7GKm5jڔ,Qϫ%r1vqf\KhOMݏj6D{Te0cR؊[OT ꔓz!m+ʵ*r4|#>? ?;Bva)Mʄ8y pjACsqmRIaJc:ϗke_9*Vyb- -*["8YZd=GJRā BTo ')NNzR`LvtI&B$HaL>Š_Xsv]2j\6P"b#;JJFጄ}n駣۞6]v߸&T&Cm u*Oi) Ynp> :JޥIq򜅷$=ǁ2acĸiF] "a4%HZ>Yiˎsl3ڜDF$PڀXO WL eʸ76 6/c$7(@䁞Vc j-l ha6-O?t@c@253f95[w e'tr\  ?9^6xܲ1dI!>c`aiRHRT8 zuFo㏇R)^^2{r Q [c"\P=`tL43A?38]#z} t jדʔcq UE@t9h}8d]tΚ\Tƌ/I[i 䞀w&]OmW%V!QЕڔFc1ޱ&fvUmeӒI';zkl^-nRveH"*>sV5JXiRq/L *S (U$uVsT-]|=k&& 9 rn3P ;?y+ii+MSlXڍ&ukCt{_΅DRqJ8aXź^e>i&$=-Z)B8J@#5Dmm]ʗkZnM -zdGIq>NēocJnC].d)Y3H<-ԑ}Fv7F%_6"rt qnTw >rBR~9 [c^\S"〨\"ZiXׅ+8 ҟ'*:W$Brk7vT"HO'W0ڀl_ABP@8m PB ؑYwC]!]c-9nSG/PszYV[+|m ͧS؜S26e uUu)JP)ZKM(|@re[r]Ssm[u9E}Hh>|A]]+gExc.˟M$cW߶UN_wtEjA |s]VGPjHZR֣(y5]rWuzpgޠvJ ְn ϿJ˹ܞ~F&Sk.wVDQJQ'v~pee]@vQ<%Յ[ >3Q| dT` g-*YDD2] V2)U5O(Uܬ5U$/'梷-tijˆ7l?mhY܇Qd5_c~G5'ScT:ǝ%LBvB;R:H٬IR{Us?v' XJ{O굏ʾ䶔?bF ֖[-] &K`U?q_j7cҔ(>XHli[I d$﯑}B8%A\q_Hw6,b[_3H|;['<~u#<)Y%yqXƙ_PLw)<[dwI?Z\s~03?j.:\X@AI`O+A'ӀTB1,)eJIРB}q$%&!1JN\d$fӖkoK S*ǙιO;{Zյf*8گvq뤦⓸:\aW\8n&\r1mKz \3-&~ӥ (A%e aC;՛:^.%;s*WMӐ_SG%]I,0R[XZJHQFFI#\V 1'V^2-1KiJRs*r[mWK6"DU!IY  _J&9GV8jz+E9[[ q>+15{xbZJi@-ZI BIіŢ-)%I *;Aҥ+{)n; wΒK |c?Rv%Rmت8íz¶ O5#։I$%1iy$ien}@>A>+i1v6%{O%YJRn x[S⠶inIV1}e9\͡CkrByGߚB]ڂ@)}=SJO֯oW5\qU$d-v{ܓ 1[hN'hea Hkl*BAʔsGI7oQ㷾+jm>\b/% (ChjYlsW5}K;*W;6+.ICROIL\xmˑ.܍Ѧ8q @p3_B2mKqHHmh@m`cx]ùGk&P(P Zұ gl$v0=Ќ3T-NaBnⒶҮ9֯@dKcM{qh[4yKq<}皖íIIiEm6l4$>T8N $Z`E->{fJ^-c-6s->͢4.laSdKa Tr Fqg'Tm=KcODبWg.j gb )DzUФj3dV;q*pHaÃmnxBtt2d?'$8qq\T) L8y$))*V;Xu9dB> o3ϕ"~tT2@ x+ f^.ʽKnq˨#JVC `8]PޛNV i*8Iy9Mcv]"mI~bKH}ۓ000 U\]a`~ edL}..B$x䕅w+5K(kɷD~T7 2V˳=*Ⴄݫq|ʭ5/S(T$k8%e*Oce]bn :V]V6HlԱ ;邒\̪dd[#͹AknS60PPyy $oNL:o*K\m+;3{Km[95ar37l?DW+jOgjVOXСE i[51TWһ֜EԤ9FB'P[/}/y^їV\r9`ˍ-.DRNЀP=YY w ✋.yJ)%{?Z{]u`E]N6[Jn#$rI(O*(i$T[/\a%:5 ʂ}CH' cnV|hKTI~>X#IF/!k-BZtRw7b\Ւ []=Mc ,$p2jNNOqʸWz Zw\8םP?E~7oOgݸ$qXHX'c^N@ c"+>Y.EuR}V=٪^y=iJ*ʺ/AH<ܜ*|Bn <)QU%F/jw%UenQ_@UcI;.y⠾'ExVUMw%DǷW8Vs5K"ZΫ4-~uONkx]`0xP7~}jVuѭQhJհB@{V:ăY Ռ*Q dR,i2rY$ '=k$dZX^` }:- g *Z0;Ik~ƭ:,oTw0?P+) =+~3e-@mpQc")JP~ڛNZE{m(RIP3<^C˒G_}ki(1s:P)>okz>jk{! 81yMĉ 13 ns[\( RT@*_a='kj]Ж\-B@RRx[( <ٶKv)!ƈRhs𤓞=r1X5qLQKÝ$i皡!*2TgtȮ|7naz/ẰďoMr [q H*ܵ3gbۅo )AP#'5ʾd鉯[wA[eRۀp7)CrGܘzo\xBzK^[qj(KԩJܐ'v3ˆbKM~TIzBRR%#.)-g%CqUdV&nߒ+meo)QVN FEZy0] őrW% pO J1g.$5:ܛ,ԡP!- Y<(m@xBKLy}:cXii* PJRry5 rMtw6K-,%XZ@~1icssK.2S$OV\AܵG~FG' DqhM33\!qc! 8Nrd8ҋ۶6ۋb *JNVG*@mXnjlB uՆMjy\d:%]JH55ae0rTW%*JGלբDT?J:\dH!l8 [fW\rxVNDX-cJؓQw Xuy8qI '^.Pr%bY(wJOcelZfԋMF-yR%wŗ00ҥFaq,Gin$S4چ6!6HxwWXJդZJy@Fk ˳ZԼۛ 5j4,S7W=~ )zWG3c5歖) B49޵;t+\M+tnVѧgKLpb*eKW%_JyWZ޶xOc@[)D2mҜ_9jhDJۭ[6rJ sl%GzN yWX`3师w8 'ڗ MEK꛴K#|[{#iۃtMOimvҭmz$ <$Tڰ-pn44`~m1SX'JR ?5Q5E{H>.ljO4R!BJp N@@US6PÇ%6,=2IQҿӯ)RFO$t7+[2n&, HzeCkm$ ##9R VMPo+v^1ať0qbzmN-u:~+$ΗyE.ەJN+i)R#A@uFyY676z+ X$ڏNi#"QsҜ$-]v їLS).ˑ]#;:T4}&G4 rmJZIun8md a9kw)ѨL ۛiz3@zThs*;zft֊%tuް[j>Ȕ%;Tp%#h *Ȭ0, StfHl"]aQGRɭ j:⹬0G@۸!dcre{S;XZ}R AEgLAq6S(NݟjץM)>E o OCg8`+؍+&N;l1OR𕴂p  sn56R5D{k?Hu@ J՟Rg`O5Rb0B%+J߈Ub?9 (NPq>pYY:Ɛޢ@gg֧+iJ%ܻYFn\ (;<泐[]Xoqvw/b{ Ugs܅(Mx^1zU_Eyq!ZZsQpnU*g?\׀nT:V5y8$#;ݙR|LjO_AY`%Д008i~sk-L9S]BpfyTحa)ryKݾ*ငQV` V7Pk0ԥp3L[T~; L:Va =OY-81ޥ) 0A nǵn^T;ZkD)[sӭfд~V{V?OA kGORվi1gI!N24~euTh [$_;;­Wu;V(o~h(G ͻː䷝RxG?XX@sYAc@1P]BIRH*sG:R=$xVTXKCg@էږQ z{ҭR@֯8@Fr{QU,NF(<ʷq0=HO(I ^6؜7,DJI8wiPP†Rz yҨβTa$@>JZ{(6I #Z<š%DBV63~Ք$-RРY߻=6tZhM5{BzT|Éϲ#fBڙnŠ0x*@H8B܎*1iH ~H Ee5rClSN+=D׭ q$;$ȱmI$w)?Zj@Z^:~3Z1mXR*+QiyxQ~u6/l,+h G!]|/ї-6Y$t*Ԯ0w*שGQ*>rH[ V8)8yVN6JiYN ֱb*F%ZutG΃!_} YIKJj|?%tGU"zXl}8ҾsϪ9_@qb+'D}(7KVt ?R}g5㯪km͎Oh |9Ws:~5v3[wRBc#UOj͠nғqBeand|6?E\>UjŠ#,XwVMNl|L6+7떡ԍge:/S^v݌NOs[ Z'BE{mvU5u=NlJT+%g'5~5N YO{Lm/͊숯Ih)$ Wi_IFyQ9 ͽC%I>j=xtȷ#Q1Km͢CՆYVZ NJ@54V:mwum2m*Z %| ԐI.IVt拒%ˎB@SeI V̸8rix.ZZK&rY@c᩻~ru?bi[HNz$zqz4ić=yXR})Q³8gj\rO*U%wSJq e#`rtzV&rcvQҧ@~ ;7HڔxWssԶĪ>b4ȭ $$'=1Z|V}j-O8IsRp$# ǥ'prM]PYsy˕3vmj;9r #kRS mSYY3 u** H5 ۃˑmrGKm㓄 "qoCm0)8RT3n=zc5dLu/RSp[ꈍ1(SH}#G5awyv.A}٨BJ!HBT:q[ف ŞPk.eGC`gV8zl.tRJse6ʙmᐐw$d¡;rgG}EWK{^X%[^ry9"zIDeߣŻ-޷E} i`jJ*=96 $1[GJhpr:}z#Γrw{-IL'CQ`Wknؕ;vL3w7cV?gWN)̯z,"8 (O#g>V$? [ɍ qڛ-.CPvKy@c X@`cl-y*0iV\( ±ߥg./Mb((";&YGPHIɪm %?.{AuL m`-A@ɭgMgsuL FDHv? ;꓌ҌVMX۸ʇ1u]w8aoð *IjǨqR- #8K<+6Y/ .s[u:w3xe y~a(rwp*ӆxMJ0ETCP>V;R@J8'q޳.&[lFRPxjT Q+PUSfZ"b˒:$ 223J*VUڽ:ULW+Nӷf}J CO/9VpRj]i9i[Zl)Ɛ=HH;V1H '?]E۲T)vW-i$nbJ(—jC{r.j5= `-]"#]a?*;py*Zf-{K~Ztnu2rTv='ۧ%i@R؜qA8bGQ-CeQ5aYyw(69b$PbC^s侠qIO5U^ˮrgMiIwjۅ(\wv~gMY??L\U;Jq z0JrRTMM+kk|+/H2|z]qGAʁ9P#&"ی5[Ksn"Mթ>|d9ϰ 'Ӏ}m5o#rz='27Km6,5.Lfp"Bq@-X}J> ߙ.KlpW=kfKJ4 3hǺ+lwe6~B@,AcL^/W$qIOyY O:o9i+n}0@Ă+!>$$t Sg:h] F6Z- =+5Sv/I)~@O sҺ GjY98UڵudyدJAIMU<nCM0 6 >T}K-jeORcc>c+RO%S׋i+u H2rF1?z>p̨rއ2;ie.4sΣA5IVxIQTT*zڨR:յV{؏ւbs~mnޣx抭nDq׎+X^rFȫ$A9L5AE8#שLj$RzVᮖ]⛔YNz-ߐVdKYEO OsWѺ_Og( '}}-^J@5HHVbGUzlۢJ<BluZAU$%>9mjDv$V3J> ,&ï2zm-F1֧Bp'@ p; *$ UM+Y?Rhі /sWcyzsϫjrF}c}IRS$O:ʑ) RiGL 4b0ǁikD y?\2 &Ѱ}PB@~yqOG8*-qLNԞM~޶һ$l( K JR# IqkQ@PrnjT*ï!KihCg)cwHsXM4S e_֨ucc8ԜJ+{cn*%%9##JJIR@U$*`95}Đ@*9(Xޒ3h(R2<~BCRUq@!Xd=QY 9@뎄 ׯZ Hn9Thy'Ž?NKkKeA>5Hט2߭cTv*;@+(-'p<Z䨪aJ^_=pk `őYJ}Ax;Z2\(J HTSjyҳ)v Cd+kh18bJAʬQWAʕӓ⼛& (JAQ ':J nyjp)#s%U@R/-% #$vyjJ.$) A|.n' d9°/h_/ȖuTC!`Z7)J֧ݯPlpܝt[BsK' I$^7T6j[V9)դ O\|:^p1XKj:q)@TRR26B?g\~+:ƨ,.P+X$q&IioGקm; }I.yT A޿5 _Ӧˉ ZbnzIvkeJ A$qWn|C{Ӓ/u-hHP@yĀ0G@nl1/.HFejZSY#9O*MkkVg^s3Q3k\% ̒Xy8HQ$dAB6/N)S:pk|;H)gz{Yς.m5|r6! H;VChnQ *] 6k:|p\O$j(RF@ˊYE1{_QNZVʖtMcDh(,2ZZkpyVvwNf Ns4+l|BS2})'DNYY}mJ^'ilL_ʖRr>cBjD"yԌ˵.g鈛V#1eJ9H=҈`r.^^8qPtS`U(Ǟ V+uCJeR[IR3JqX0Z̹ZN.P iQ**X%$U^9qOEܛqǃnBNN}Yb}=OL nkvZKd5XdGEČyO=+wx"/Euw(vId7=(bsdp,jKfY|,$m-RHJI툂[=eQEd)|)Nd!Hn #H.[//HNjL^sbA$) P9X锩Z2EB BVkIzkIlMIJe┳}cp=cd^\To),lġ1imNԕNpN1BtȚ88)iZE$HlJ+NfĆ,KW&MZ@u½M7Nȗo-&NkZ6$gw'6#-YSNF2CL7,Ԅ7S$fOטrz:’=@NU܁Z*l[}\fN0 @ܮc"-eh[ş+9IʀHO g(zTW"[KD4hayRp R^ђ@FK4]yJ8k~nm[-L}qPT9NFN;d*ACjNSSլDBC@Hb0xN%.ܕϗ6 $)C r~zP"V ^KkSjR=:Ju- cr*tD#~qDIaQm;Dx)Y @ nLmfT)rbSh}7I=m!3CCPgy9J)#yaOujH4iޖ7qL}j7-B+}kHˊ*~8]ߏIV8y H!'Vͣ<3 f c&S،g=X+VBCBݧ5mj&r%ƙXH$VIOʷ52U.b ږ=|򖒡̣]%lJ4kt'6.tc./H 㞃jO@i.a]5;\~ nڌ48% R6AV6($1\2(_%yO_5UidEv <)sFNbgӱ4n N*[*[|7r3֕d(tګd HϘz`{p"Pӱ^[ ˧V!.Xz[* x yJ8NҲkTƶ7XbAKHPqv6nW$qWp8K7{SA8Kfpt 6d+.#"͵>. }9RjzC1l\o{DE*Ry  }:199&t-ME;k.Ӫ.Meo,gS$`ksk{ΠO!;KI # wȭ&ۮ#auRvgr6}NMj:6oҺd\;:4UJr $+ZtZ_RGfHe7 [ d$R!nF䞝+ $l#Eq'*] Fq+&Ԛb[6%$-aDh9ArkuY*VJJ7w7ҵIOn2*#~ũ*AB̓ 8N9}ioQ*L 80 H'yʈN%Ķ)**#8nJ9NVeX<};u̵͟k;nCIJ쌐{>HQechS-C{V[HuaGӞ*5/vƣ-Hu]IRBGXrZuX3-%/vDd4FO̬+rw)Jbm%t̷EErH*Cn\9h߀F+7kIS+}.C[RBA@mNZAV2;)\s]'oria$XP|$$Oj6*娛. u fm@Oj tN9 kvrUeї}k!3:---1=#Ӯ2%S‘)v(%sZ!#Z#0Fkq2.#RJfa8հ&X#ʟgidC @*Uksι_YR-Յ1}3NPPpF7+V?Pg=Up=uH1#>BI>BG\5xԡJJMnHP D#M{oK,.H-# u>+Exۂ"Ƒ9ۊmڐ7:Enbź^+>cNB[4i!d'#2PJZn-aM>#H?9h =Gs4#dfڒWo@ nA?6*N:Zlл5(K$%c{TsZ/\0n$zg\+$0^?Ҍ%P}?Jպnb]z*( RH9rq+ Fq0OļIpJփP+"Kޏ19J.,zVRzcdsӽc75AUvIS穬#Fs T@RvT{?PciSJl[{8K0Cp6+hRO c8'5/B PIJ)Q##¯]WdVTwL~nVs7P^ 㧔R{9D9=ޔ%(WOSw9BABxH{⠵.$Ѥ4WKn~`yذ9J-qOOήm3S ߷=҈GO9"gA8v J%)R3:ܤ>uO9ڬp^)!;wudA$-*Z]) Sgr2Hj{7 I'-AܶPpq=?!qsV;.8SPs9jQ%J Ia;%=&-"%*XJJTx>"ey x_+.+ '#楸%.MSH!~n\)[ с+*=P=qu3ǕepiHBR))D9$m<:bu;L"V}Klp''<XF.n4 3&C `jRcO~xkȹ֘b]tCD@_"ԁyIZrOikD Ɂ+t{Nթ-Z98d w8.UqJZ+CdB^Ai둬ڻY~q1~g!Jez pO1tƎw\idV (80JMUc*gɬmN4s*=2=rv\Ts I8Ok?N}ÿ;j3 \$ڜ2|~b)H T3W97R^?u*m3ޑ$s=W9FڋPAp [²JCh$OR 77_i9[*”-x@-]P Mbh- %GelnJx H⯪\ܦ\ [u7D_=%.cb}Y*9(㕞*ڮ%LնŇδe*wzr cl)^!0)pb 9*y% ؿ$䎘iE%7uXzD$Q76peCgk7˼Ews֠<`Ȇ# R#sT˺>`*#-r%:mA99sZ$6]8Hi(X}=%zTy sɬֱ2[?}Zeԡre*%<ppxQ[aɫMnUG2NIQj#Νjd.; ,FW*$y8ٟ%ӋL6O>ҔBRqs*mnfK.UGeB'@+;lG4樹Dڷ)o9蜞=+h eT_TĩyOެ咽Һ[]WNĕ,}o%-ǩ]ھ8 ĸS$  3M3vd1ZJCiJH淋^]S]n+ڥ㚚Uf RԔ$jf˒<0J]F!IǷRы.pʀ'zc5$cՑN2AnDPyg ?jRAk`ԇr\5$d10-NVq 5!χ^ 8VJ 3~pn~&9J[yidy*ufN]n]7qɶQ9kZv0c M\*j{ \:ߨ!7G6) P۟`pj7 kiN+}/6n1 sp:QT=S|^\qQzyʷ*ϭE^!Dn -Jj[0}Yma8K`A)RGMj"-N@v-J/V C -NImH)*E=hUxҌ IHKOSةC]s$1~9wƨ}-[,쌴-jIBmѯM-L U'6yjw"nlUF01-dRrGL[ҒD[ I`- ؀yqY\d%ⶊ:C(c?pt{Pyl8/6iBvBB!NtA~EW|kBԬˮ9;>RIϡ@#|fD\yĂ¥8rr;+q&Ӱ[ƾε*iZI2 q<sߪ=Y5_1 1#*! V b쭾儂D X?cG־Rf m)uhqi$%$OWF5I{qaR<ӹMpAI<'{YPv6e-K J_I +RNPq=~U.XKzA[%2+}>AHdm!J811<[3N~:]NՌ ~LXR} B+q(aEHV{gzqZކ taNO)\c.$6~*xv+qhbB /d <Yj.DeSl)qj1l=bygl8+j=r#qqӭe[Ze¦ yG 1S1wLik\}3#7!! pBw|O\Vn"+ Q&ӑo[ y/ ǐZH9O|`׺սV}ƝwN#$'pS׽<'me il۞u!\ԗ Nm=$〡j^NhG PXK;2\v\]@[n@BB7N=\<>!--Ȉd"PlG|?Br;WZKGUԫTeė Q- V9_X9iIK7v]㜏R>kyɇX K^tXCC;|U_T@85uVm@گ"C87G~} s[R3Y u)]NOE5q^jQ*;*J;Sد9jF{h)kSWD2B"aoZOƬJ 0-iOUp*mj*,;R~53֩VI1ܧ}?־b8ͳ@M}\c\JU&*^ Y[8u+҉u^j% t͒ 3UqV!t fu^ZP DZUF[  'cK-7Y9m d!BpTՕnRp7$:X=T4t.5Z0j+APVJ~ؾg3&1s)$::)\\~6-x;JG8OJAgKzk$%c0%ذFNr28b½?ȉEyVJ!`#akdn BBBBI?Z@7hCo͖[mŰV`#~w\xfNmPS\J)!\V nȭSP#k[ZBEDhIu>Y^NG5~m!Q| q@;RڌVz`1lauzETz$'Td>/1qgwjϋ*5SKx sq26qʜh( qnk/W--A!fΨ̉ mFWk;Tz)ɗZd]oZ*J.B>fLO{ VR MF-:wQJ73$y6BJ 2k'Cr9"ͫnv%@V6v;sRC!|js|׈\eJti% Nx2.0ɵnO[fωi~9}RTH!a$S?SQ[d6~T"Sv{ )HI$D*޴* *l-ùJz֯MT]5znsɐ.R3*ld!Iq$,KT"б͏4g{DT+(q?k>d`\AR<?tM9zUZ{OLqwt[h>|enba)Cgh9pҰ%OXiN)6šrqҥU/!Uo m񄌕yQC'7ճmm*iCaZ Q!=yRDvG2ڰLs[RQZtHPɷTGT6Hu>b8 'G}v`L>s((N76ޫCϹ1[oȋ cih:te'Sћ}-π0+wT62ʉ[mŷ܉M" [FsN(ɟ 6b"L1=좦\BǨ0^pzT-о9 [ )mM2Vܔ8q)G**uv[X,*fKSj'IT.۟lC t)`gxA9r|";ra"_Mz3X.eOm%9A q Tc+nD 2"!b")9댒?PsT&Q %/<~2[\܅avrNOګFJR܃m:Wu*pÐl}xcUSL.-䌚ӧ{ }-AqhBG>svԧ})BURN9#Z?u+,. H$8Gm8@- bR= uAmTH6|ϯ6=k7qӴ6MX枆 ,a%RV(rz.Jy-. RAużF!vuA W?z壧z :xxY$ uŷ6![8Giw{s﮺aINRqq89Ed/KHG_־W:wUjgS\j'5WfUIO#k{"4ė"g-SV%B[ua9=[4cVZl6rv]U4$kKa!i’qAl7>9c]\zP*eR\v% yL zYB[ۜq B[QܑgRʂ3"sRH$:dWI$c\$ӷ_jr.R(P@9h;҅Y;qrWLX^Sad*stDEGQrsrS\ _x}5Mjz6{%.!hN8'}+Z@<ۨi{1mQ39=Z6rLQV1WBk;lCNim8%HI*VS;~ƙ,6A %)ҬJZR) m(n)P9YR<ħd8%I猃8J8ˍ Zt6[.(Np0GR)UGjsJe+!/7yATs,['غ7']m'S?<ɨ1SaݎBTN߸eIi4˫is$[~x3Y(kOzMζ۵% 3IFqe$fR 3؎H=:yLp  Wn x^mzNDt9-.z HW ?1]x3Wȝk1WƗ& 6`@E 7>-4 IH!GҐ[Re-#cj%NwtW=i #[t]I iJQ˺j^28*^7BA5GݤܬʷK}+pCb>]w gߞ}]Y(4۷0X+@7Qjx:O5OW+Ҭspy&r STgA߅9ƵKC+SQ֦TnJZ r9$gyNX$Xح]?JdF(<յKV XW9 ~rt%lR`FNI9`[Tjү!6T+Nd$7,v84^1>M RKaS9 H@[oumiΖ1m+m!_$VOpkZuԛ+S)iKɒJ }+)n+Db|:X#7$gt:~ͪa3EHqo7F}#Fp9=MLAil]ʷ6rqp3d*DvP6ëaqOY'c;Av'sdΎ%(M8qҬݪ {rcL#ۍCL~J <ړjrvvMe\TD4N/̒ r{ssBqP)^L32g=)RSoَA[ ,F;?A=d7-8@=~CZ7жd<ꁼHqެɐ֬ڟ$eOᆤ򃌍s#89lv*2aaq=+ijB'{TXCd}ۜ_s)SFY9*aNH]^r^ N:`FM\&4C)q~aVM;S{ @%#d@'ӎSiCYݴ QʶEvCGF{dCX6RXLRHj>&Iu˼ 1pms$W!(d<65j<8rqE;O8Z)ݸ AT\NLmviѮvT r6q/7p1ޯ4oHJ]|j(;)ޤ1T7.d5䆚=A%2xW19S"5*oz&Ķϗ@SOAd'\,Ħ9n+NUJR%gv5ff:vH-"֖r sjI er1d8ҒG+96 ~l9! fHBH$8QHEDu]ːa*C]'p+9ZWŤ?כ*m[~2so7|R^? )AH8p;zz|CKJm*KHO ʚG^d|++u\Wҷ!:u 6'4VCPn[nuOwd+j0+#.MU±DY%iyJB+-$&"u::|Ff伖i$u[jPzG50Y@.EmrXf29X*Y'Y Cb񋞵pE{̒*iJXs7v8*Κ5m8.Dha.mASX8?qɷ"m~#Y-8$9+!_f^2PJTw'$nF8i,ZlL{dWb 2RT R0;r1m.mQ+.w6sEX1>(wlm*yBBZVNXU%\WAan<߭.=9Q]dT>إsFCu~`q'wm NO^*ҷyɶ%_ʔ{QR@N;T5Ȉͧϕmt%/ւp7cqj<&1LH- `tJFH>Hv`T7܃5ImtpeNtySc\" f->te+!ym# i 9'|'8b@'-+#X7#}EC͂iԌ:FFN?Fa\y< pUOn;'5u 4SMG6GlxڟS(Gw桓0up3Lx8h$^'8I,#̮\ ?4^cX6-V%#ZEֱ-Gq~o_iG jPOggҕ Hk ܚK%@^͔Wc~xjNz}j~MHvmxn\4MK=hrZO1c\B/_!9#[R񂠱:\qi.mo%D}1\pW>"myr.Ǘq&e.xSIL)#a;V60T2v~?M]u2m*VJTO#,pyBLT֧z+ Ɉcs8!!$@+Ցi}R筗&Lhm)@C6vUy&Fܔ-+6O''rkkpUSKƪS [Kz;8(eD 9J m/|Dj#%(wPi)OQ*̶%%9p$unJ@ԓnf|2pyMfBm*@,Ս'Jj[P]ݷ5qQWUqBq}o2ն2Q2ǫEbޠtKRI grw.^ܓwh8JH(Q@=O5TIi:W"ʯsD$jSi R!(RUKl댯"IYsNZӤi! nO%JڇͲ1rp^b!^Zm'k8ǡ S578H_q.Ee|-J9 RR){'9{S"o˗jܷe5yK@ޢN(I*=8O?-V,=my)kR@BԑӎRBt'YX!q25 R[(I7IP`XsreLBVH;Ghz5Ӧӗ4̫}u8yYO8$ӦBᷧk"ZS[&Sl+nI8'5[کNeH)$OBn/b;d8v#znrm~eȒ/:FL(2l4}X l5"qpEj,Ur R}hWXK MBP6w% X t痣!nrߦ$ޭ-+.OŒ  Â6FϡzY˂X1ݻw̖@ Bw8W<.hz2W( Kn [)+R6shiTx+Jƅq0a*J\tٰLNwOMXgƒң ܢ1̥ø gv̵̔Y^^~%峴)M:'U O\c،: C$T7m>~kd]!rE3ʆԥ9P)*+"jl$ӗ;*i)%(BV(Fs.ضe\5bnڨ:nk)QXq^=I*N~a#O|'57Iv'QUgr܂Aj)SL=>/?v-,=<Hs nNKk[DBBYB'$:`dX˃mɽٙDi >6/qdwK&7,)W6{XsjBH P 9ɬ\WZ \re>9($2L+J;pjǔmJiKHm#rEOv;2"tS)4Cn|`ZwqԲߝ.[\k x9+ؓq Y*.CֹGrdi) eB7qۓ *UFLwR2B*QʺgqWo\Tķm[q:]Vq8*RJ!Jcɑ:JVH+ی߷J鮉o-$"<`u?ӸTYS YDlF%*BڂzOQfkI&;6m8=YQ 3" 9\At8%q %ZV:s>([N> q<sެvԩ<<ˀ9?x[SnKKmȀRY%JVOC\u,MN5!i$<5D7@ %4Cx:Tr%Ă(e$t~ט7 t)7!9=wTHJV_CʖR;L*ؐ}l)%Kq?QZ[2 'K *\ROԜt}=῅v}?nD L H29n+_.w8^|7ȹS[6>PI$?JzroGi0w$c*$s}P&[e`;DGBa # Nޘ9gkO.:c4D$[K)OHvjz]D'.7.Hh?݂Iڄܞ2M^7 yqiRvFӚ˷xe_S sjqv0WN2+a>=XvDIL) q`39}qg";OB}2qtH?v 8Ϲl Ʈ_6ؤZm28R7!@`tIW"H FФfa h/a$}3U!:&[dlE!Y'8uWIr3#/A^N3$ʴIl\BƦ!tOեKWI؄*J2q׭mɼ4YbqLm`=g8mKeh&Գpqi$S VܥDbŽؒ?2,;!7':c)uǎp[?thĦQoKOg@IҒX mo^nR.v;RRvTznA9 J.|cwY[1PfM(+=U}z C}Q)*-BFz%n+i'Ax "l[%Ki zu\R*C%);B䁌ZވlU> K{9e+`zQ>[*|LųI-W$'Zv"խs}mMpYCZ󐔔sqY6/&.lp[jU$%$|<+b`8椩[xxһib[/WA'ε0pcNFRa yIk{ipH:l5NLʚ+҇BTQzV[ve{Zؼ'*8'޵6@o#ISq+Q sFEqIjuSųiq֢/6S 0zj"%;f40*[vojYp\Rn@ zG8Ww}I`&πBK(}xfVVè<&#*#ВzTq[ҟW$^F#8 GZ:X2[CZ e;xfcS$a2=8󫥕%ƒ%Re \źXӶۛQ%@yiiPg(#@9ҰgKnNrv\ҶǚД[nmZ9NԂ?*8W y3!6RP IP]xh=˂i>)ҖZBy Aqm])t*b1}g#JKjKO))[eGsyNpHbZ.T7--%Jh i=I^i$WE76}IB[*[8 JzW"Zc  JߐBʰ WBO2c ڵ5=mLzgsSuD'GVU.T IR[KH@B@%)(RIRZyKw>u _!KR899ޘ;UN8~X×{BԔ#A׷ИDd``t]*v)JF^zuſRœƖ .g '߅a]:VND!a?%%¤Imgzqn9CbJbl}Qe"C)[$JB>M}K{m,Sje)) l lmp1cJeNV㱈*I^ăqk {6nD'[յiCeAD+Cud2 H)\,>d!*HP+]e=\+%.ZIw Nx֐ϧ|V7IXB J \J"_ eMd${g5'Y( [iJnAVR^/hnH*-C8Yt{-)Ӝ:ՠ3TDA"طrpse^jec&FjBTҕGP:}j#N၎" ˓x\"ڗ哀"*!is8R0A85%L6%Kh9ǵSkjswwOuj_q+H$U7d @H2&O}̯/r{4 PsX+< kۭݹ)}30B@靹9bk6)9sĊiK+RWvs5-0cO[mQYlu <H9>HA.}LzC1-# q@#>Üf\XED7@*Osr3I0^Jj4_⬡ŷnPX(wHL[[vŐQ'zR#jB e)'U1vۿęk/.Fb|6<g $!8I;&5XYpmܶZm”%e!%$;wq .5cIDGRuCԱ+J<3WYy|ΡҲ$Ɍkvl%'԰JHݐFSߚ?kmYEӶ |W2%1 !A>Tf$ĒŸ˅$4o*O`VyzSmO=ȑ4e@)VRq߽_v6uL9СnE|:7 'u1,Knc[+B66q#56sO@r-6%2֖OʂJ98GCi7Vڼ~0 ;*1SA -j^ SU7)Q}sM KJP 'A?ARAX1"%ޤ4! ƱAO^'DZ?~{-,I#)EMnlݹ$%9c5C-rb _ա +I0ga`rjK=.~:0JU,d7`obw+:aH ݴr`MFD:v{|le;‚y ICI\wڕ|1& Chm?$ee I݂150]lK.AUa1[wSz$'b~R "LLT˗'P.NҼךCJp3$ G[kXe^]O÷{*!?qRO9X^X6c2q%SC) ِp?l .2BvfiR:+u,C[MrT]M⡹aho ?Xؚ&ݳ["$H<CyEpd$zת9w6zI=&TTzfHS'E\B~E=ȓĘih$3FG9QKR|zioÌTrn8֬ fC,N,Z1.,?GQxj\ )Ǚw)ԥ jA(.;!\Hź i`nQZV}]>C&@"\rá%*L I]~|as7$Э3ƕC )  *nuxkZ1[TCJ#)GܡR`VF gfd$ cH'W$cU&$?x^/|8NimJOF3Tg5{ʸk:J|B)퀒sqKN\/EԐeI0cD Yy_ڤ ';s<ږcJsu2a*d`6ԔnOns<"pju m~X^U``[ŚC ^Lzqqy@4rS\c$KʶGQK܄(2ӷgήM`&t5D$~쀖r6HlCLaJ*)O(v9AVW%ua͡HIl-^/(PJWMZSn`Dh;V{ CRGZZ/K 9$o(%*ڑŽT;TSO5oZtlӶ6WٶIsDGJW9ʂ!4{F2-sRʔ(%RQw$=jͫ݊`N{;yd8 @AC $bʝ kI\p.l Ap$¹G'@G"J]toS1+in<|>aGϽRXVĭ;9^-<2ܠ75Dw֋SC-(\7`e$);=Ս^ 㪡Ye&o+RQCJBw ,z'ⓥDLKulwkuے쵺`p*Q $ 7ɰW<Xl!2Bӄ\U ~T!=2Oqڎꜙ1ͼP8UDi_Ǐbے5KoMG2G1Ay*zkQEOi* \RNyR1'U:ٶHև"$wVg-w$gDX<#̇spbr]dPI% a@өL!:YW0X}w՟>{I rBrAsJ]kdZgگlϸLKr-𬃸uUHLi2 khZ>t$)RFz*EܖlaS_Cؖ F}Ng#Z>qt_!I8^\bZB.+v_]-պqA`dxV1^j$_1M .+DVR2}$zF;M}d~ ()>3JI eZ>XNj%IO:FG@]H6$]tip })yL5\L;C`z $%):[I)pT*6,@u/+s-cFVOaQU)_v|?=AZiJT*EC:K߇o }>֢Hq%Q來czd)lByheq̣jϽYnn,Ɩr7r:RR-^\?zSl@+Ĕ%`,((cu-A=:֫q5L 3ڼ8imyM%I=>oQr2"㉴JIIJ29W튚4G)hZN!jp(;O.6yGu'gvM'sHsWJ}'8uw5dz)q%jLH'V@S#Vo9MsM%/7-QKk q^wk\Gp;⾓NHy2>+|+-=runl^L[lfKiKe aI28ͺWeŦ3M1/rms!I'Y^QȈVW)sAM^&B% 882p9W+JZg1d Ewf;Rc<Tr??Bj2Ӽl5rg>+mЈ[rڏ5E?}+p`7$px9viegLjŶZ>q߮*pBpE}KyiLxJk+{Y5曞$FN`lRhSzƲX8ہ*Q809IU) .0#Oj[ku.3''?b#jkWm|+;0{-֜|܋s{q7’qcA&T8Zq$?+wLJBZ EV͒)6spx]L6T=Gb}3Wc14y+RF8Ϩg'jԧ髭b{ĿNmsIqDdr(grLvkBtf;9"tgwG! PIqzӰ%.G^\fe~8T.rvpG-6arft`ӟ H6i1{nr*SGxgs֦7ǐO6bIaQ.>K?}+{䛻7ҖaNt> *C- BR#tHcWѾ7j0p+k [O (r{d+'ޛ /%I1^JJ@<G۠>)-թQ[%Wʄ $kΟgn+A2%3g)J=\6F#`nܞt樸=Wu JJ 54~׬cJ&IKoB iͣrq{R5Uv%<qN+ =:ȭSpܙmMkA`5C*e. }gzz)ax:i-afԔőAAdܑG,mwӄr=.K-ꑹnnVNpvElwhQE:K G8/XcBZrs?ӥUhnqxKZ]iGGpzێ Ćt)H+ܞ#t,aD)/k"WV5/ Ipƥ*\IښeS-(wI<)5ڼ19ځˑIP{sWWJK9 g"C-o#stZWEl(PB@_Ͽگ[!ɛ=˚Ф%ԥ cjI9>JRP#RNյÂRgi^@RSp}'\+߅iS grFE^XI#'}#U:!kS2S-rCg9R [Ij>1ޟi-yBy! #h;zioVt$>鋐RC䜞# lVYH\vڶIfL.2Wl~uȺĊikn;-mM(Ig;V RV[- IFe-QW 2N>5FԨ3ЇbzV\m`(ea$'gw|ޤ6ꤡV9M󛟕XI!GO9*zRۍ } 2d$ 8y5zP=.Gm qdvg EvjT[MSkRU=\wqzDřl @YuہXIx`aS .|;E d%`T,C`;g[v]E打H1Aʖ]=^GCwt\-tRK` H= J5fTq{4)o BJI@8;T:#hrd-1Q[IP;|oJhݶMVF'יnU)32A*%i!@ɔݗSlkޡ) %E ՌObى}ܧtfnva:V;[Ž^lҡ=Uj}jGڎ ]zsD-Mɳ|k5hLhV0@RN @ U-iq69sE@JCJRҬ,$~aYE!O=eFvuQj8u,vIDxPs1:`)nPœ*pk8%NG45Pls:r;nܬhkĩ{|yTEmi :}PV]$y (+m TxzVSRKq͈m=dĽ[젧ۻRJOEzʲɛxI3$@lύm?/cH+ ZR `tJ~:".lBő_M2# PoYOʹ<{"2 XZ~%[ns{K*?"GSn.g}J%SSN@FFJsޱ 4=QF^`Kז=Y8{YOCvyu0BkqrDc Ҳu8DO0Q4%EZW))9ˆ+4"Ƒ^kn4ABA$  MUR)bb Q1(JP+=s^aBY"lީ'jurK\\ 6 Ǭ#;5*uBq3ݬzGO=yTӭBH<=f4?yqqȂҲ`tkµÂ6c1L|I'tjŦk[!NLNnRWCPWZK߅\x/Ցv<[I._B'i^;p}x^ .I djx\ 9+˓1% Zu<ߟ*esW^=~55B`]SWhc-'! ؞-߳Yk?T(܍LBg͌D:("pL   5'^Ylv$w-%לì*"Bz-+s=uʵ,KkoNA0@:$ #~ʸ9w. Rj&bH@>N AoW34+O"Ǐ"eI@%$-9I՛53rҐPK%X#=)Qx%"VqRT/Hj-=-p R9+x8)GqyۄU-Gc)i^I$ΰc5or$2*P@1Lo& ث e[|lԟlߧ$XnbXe)6q() ʹkyešu+@s+mT9Z2dtOa^=hLp\߰}}#nI皾_j:&[8q휃'X7З$9@; (ǽNbcuˍxgh+ zNp>h$ G[W lHsH 8䫡:4.rb\ͷlO8p Jz`bc(N% Cq yED;''emq,8GIlG'+BbwRۭoLLwxVܨ/P 0 @Hj՛U5&ؖ%66hmʜ' Q#]iV' ڕH)’9-vYw_JP2Jտ%8%Cӹ){_gtg^u,ĊU-eUϤ IP[4>2[oZ BN1ֵmK>&̑o%s^yHm*R蔤uc-]Afǣۦmu¤/90R@}j/+[Kco.90E]=s3ZbuwK4reyH(ys#9W;CvX2KIPrPU,qZOԝ5|v_23$"B)9`qXz]a9Թ.H%,y?.pD+c!m@-*<\JÒ՝ pqZf_Hi6qc8?zZE:mr!Hi2~gb((<޺̘l9EI mDyOsSf%wdz?֖,0dz}}*eS2M{ӑ~jfEYHq)q λ'd;@X #?c5.Z] ?WGԁ]"2ޘR]BH Gefb:Py>ճ_Z=sb(aJRS`\FTj !D~՟TUlS fHܒOUFI?A?Z *:ϽA[ 'm dG]\#1ԎQ&$Ѣ:P[^ dMQfvo]/7!)ZB[llQܼ 9A2-UH\E1!aDrTO#$-7PAaW(#]+Coqn|3ܑ௰$zga?fi-SǪQ>Չ3ަXcҲ: vJIʌ趄Imd: HeN,! gK5^W>܈޶Le[~sUڹ^sZi7d8'%F Rd6mあ9ީ.*^`ûG>nw #Х`@N24jk{VKrGV`%IC-jUL$Ka։. מV0zRS =(/V;cJ 4@ZRFR't5ET BBfuźm'ݕ+Xw 0/֙)\n/m o6V$_~oPՆnzn=ܣKZϘ^J6|AklKu߽Cy nB(ZP2Rc+3bs Ec-!.BQ  -݅g&3YbDv& ɶAa# %P)Zӑ*'>U[n2ml4B.RI.ȬLۖO+:=KHC(Z<`U1[.1fPFi0텄@;tWwɷj *#w x)Զ8S‚OªN!] Td(❬^mZsuKnL`\bAO)p#֫:ZFYz[hȊZC;*W=zqXR֡rS2[3ʔ>-*U(`T!Fj'9Mܕ$"C"+qӟ!L$gq_^A~TDyI(HFxO#!\nܴ[$d)BQ䳹) d8*zo9(ۣ u~_$s:m1΢jEJe[BHFp/FN*͌؉m7(^[aKmj*=v#1R\e)ni<jt'2<ǎd+s?*#\mhs!r_aaO0™ed~$s1k^ceӌzRwPʪ$5&KF \%VCjkil-TULH-nR~n#$ޮ%j}C>UG ʕМ6"[-:®1P8q.-@V{ȯC95)qzKhqԃI--)N~TqqEPԅD UJHˑוU)(pQZ猩<}U}P˹WDI;wc}XKkG [eMpPy;O,~hBicsVhV:d2Y<0VzЖSzW=շ-hsCq:U?i@Y-bRz(8?%tOP:JQII)@@-sKmq$jO-q cJm[z!(뷀ڮJCj܌Uo .8+r2V6vZVͦ~쫊%hochZ\"-ަ\-3QbZBP2t*ZII:HoVEsIsYLqӏ-N*rBVmVO!w*R3T;52퐚S[!ܠ$x;!*WtB؂&3j&\lc1%|Oo4Ƥ`or!)E(Yri<*faVKELn-Oh!ReHNtGi_!ŝ,z%3.R[N,#'`g m\(Z>IjMGIs)VZLEZQs%RЏP)Ť)>?ݯn[uW  O!I)ڟkU"%vjH_rAqmi+bH9RALCך^%^fC?|L׼жQJRS u)ykJMOdnn3)1RO ьOުgV]%%QJPNIܥr3:hQ-JuZn{?<?1.kˬ[S7HyRmI'9[-C=;9%9Jd+_C3Vd’6XmYy {6ǸxХ:DKJ+F 9#أAmwIؖwp9OϠÈLe) NRpUORjK HFϤyA'[C;V@RpcFҞmŖRSèڝD)G.mml]mTT**HϵM H>TՔ+r}J Iʁp?J$mQ;JF@J v@NkKhqEb3hC+=yPdXYU /*dgܷ|;}Dw5Eƈ~ehRPIqJ1c<9P9gMqbCXۼ'mX9 g Ŵ8.Ԅ8!I+buH5Uٯ9d,ְܥdV pN)ObjhZ˭MW!NHuXlJi'\bB)T9 ; T͕Y&%BRAD+* IY3qrЩ+%RTy( ;j˃vo7UD'Sch*R<$e( PJMPSYXՖpop$S.z*VH!9I>T[Iq=|jmU#JTa*)>khxO{U[C!m+ R(n+Hm_Όڜr$pRzco;j-3VD@E@ې[9OT8PL'Sl-g*lwHdRiwmIhP {zEQqC9ܡN<''ׂtRݐ2 %+NRv+w_aj36+ vI67´ZϬ)+n$Cy*rVRJ8)IJ.$U̝6ךf6D+d/:RB3NGCT*r)ZMM>Oȹ Df$aO t]}ZnhjҼ6V -Me@)J@4qwXG^r-vqS0ߚWZOni땺_YO"KHszQ-QIoziPM[D|/$2 p UtO".TߖXW)ٳ9(qӚmUDu޴l {mD飼r8j7 @^ZW9ӜmxB![gnÖkQD6T=pQ JTZۭp _nBb[7"c7(Xx#fp[*ڐg:+T=c*3֫+._G9i¹:)T-m*mˆ3 [ąu [oiuBCM9$VZL&Uj{oe'ܘJARVH$Ϧ.=+l}hp%Y$yG) w5\p-ϵ/ʽB ia)tsWŐJ{N\.U N0uԃۆ ˲ɔ6J*>eX)OU$Gܥ1k|oM!Gzi0͗bb\\Jz+oI!(OE^Sb!:uڵ2rRKMnS|03ȩ+D9[& NR&rZ2RWuշV3I7Xm;!bsvφ&:XqhwmKZC`I˙ہXi?t>"MH؅BQ W9G?QL>Kwz\'$d5uJv}ƕ2 Jz+⋋-%FӨH\܂Jc.X'ڥgn)J*9i Iq4OnmDp-gbP0F#z,^vE=ji:<whqOP>zt́5dܧFr^)wt=:frL)gYc5<ap* )J=v۟ķ;|v%[ls=sҼb3bD8[Iiۮ5qG\&E-T-AeŖ |G#:vLL=+>byp3-&< z@N0N~Soy-^H8q<?*BqԟTUmrs%Ƙu;^XH|j&Ug吗 H22uCx+_7~۷7h6:mB~?ltm܏Y$_0Ȇ -x8VRzsV$ lszgIp53[' T0b:WaJԇUW&kP@?5ddޯ饤? _% Q܁T#KUC&Yl) IiKtT{*萒$[c)WWU><)z2THW1Ei;H'TH1Vj漫cKMɉ%ɐ(^7n{f⿓"!-2F'*A1֜#ג98*Ea)2. nR=8B ǰPqioɐR1q!`2O\GzDy.M=..V\p!XVU\~uъY}F;S/sn<[m(7CAV%DңͿԇ\!Җ[jv u2\Dʊ>R֣c!d%?BBmODuI}ˆ̬)@ {ը̥Zt3z}hIpo*HPh<t5isz2$(|sێ~QHC+XVᔅp}^_f*^EPHGNiffYam/}+Zt`! R:;\mmRlDt4ԕ zS=,ߗYӳ" 5L3pWqBSёУ 9_x%GU&ȻގJE؆[":ChW=Fx~0'B^5g cmR)˧zPw$d ?FsFwG sXƎʞt %JmQR@^*&+.:H)4-ʃiV'ҰyԆY]nm_ZImϘZ,/qNCCWNnbU6I6ȌԀGo|}K2l+l[Vh:_>ZQ#A)zuޛmFڶJj\)K\ɗRN3'<ҎˍqT;z} <#m*!*2@^;s_oa!ZtmtGK}EC)I JJ@N=}ֹ׫Kk0-i*u̺Aޣ.n6i.N5rRܓq+[>BV%dmϒnfEś#JSS+yo‡J8OոGدEΙ zTO)t9wXKښTpK$|ϽfNIwPĸH0GA۵b.2K<Ǒ'Z"c%'_aRDSqiv:]HܦҜ'X⤽Ň$>x{RqVj*SÚ 8Rw8B~-y8™y#=YIc'q*5ac)ڒS}Ey(1 Oj bl e{|sERKncIμzCm%ԕ̐(u<穫`l6;q$SU!{\2 iKy?e,6+椸c=@RR}N+BGDU%d3PQAVzz400!;z[jjR(y Aa !) PIQج 1L[a< ",ˊTRXQH*)NRz}7-Kd<6\9iV4i)x+ٔ @Wx)- VCv?m;*# kLs+Wy-90 I$u[ChXnB))JVqڼ9tR~˗J$ 8='i۬a ȊOAh/.y+\ |>W'Ձ&rW yS̀r <7SED&l,KHO~>^]xMLwu 3m%J@+m*931ޮ!B$4rbC% Z& ?j!-Jc*JdVp98Z[h좐r :~np1"6ĸc22s#ޢdI^v9 /&CjY*qVw+p_ ➣]\[ЄgTm$ Jwdr8)'%ìmfeqp6!l[% h߄#\AN `FCw1kǦ-g>s9:~W Kh5^-c]ROyuI |CSřYRFWDVHqoX(aZ1R7wK Bk*Kdo;sQ ͇Nq5[JH =ǩ<)*# "=;nTɬ)#Ls9'b24%[Hzõ)V0EC ˸OB8V Wk'8mBۿryW@?)=KimBIڔ '89zv*re3Tc$rrFszͶ5m!E"@ּ+*$$5IW}q}>j{ޡ)!*^!#iۧ)6W^-kz=ގ(CY}g#q稬?w~q lQ`%03}8VnȮbj\ǧ]Gkiי-򙴹2Hp+9IHh(պnֹ ?crZ8 SEwNA8HtK$O^[HETBd$ INP8 uCottV[7F%Y- q⒖d|}&ۦTt>FFjA\sִ[o.l:N-B5-shsPy㑜\q^U!X矵Q=UrF0pDjz탧`KD~( AܠVP0r mڣI@xş~e6c%@R/pXT) mԅi)RU=Aj]iKn]MH,WNO8Vᄀ+\onK}ɭGӷO'Ɨ=wxθ][+ 'j8iCEmR#ZZ p G lxp1Wv2m׸MBMOq@S8%K8O$U]#V["t)ŘEǎBS% NJ2I5ѕ۟ 3ԥm pdpzHK~i$J/mmFB8I^'i[Sv'vPTI AvcwafTnIV꓏(5j lVdm}P ȑ\vSJ/ !< _w2ʎS"{!I'pz˂gB,Q[۹DEyM<W֥rs|GfL~L{k>YWPc-9?;VeFiĭk6cyyi7PGnTNTY*i[i0>}S| -$$%*ܸ: ζn𒲼 T{#!K𐄐 66ghqKT1};H1Kҡ#QYTOt*uũE*XBSgDפFJ#&H6`ˁA o)JU9 e7ns#s%sJR$gQ5{ *9?ϠuYNRFp8}.SnRʹqBd\9IHd}&R$yt ĸ-)_t;sN*nqȭ< [c8B:gQ8Hs۸}+ y JY99qҷWSf< *kw-!6K֏1=g)f]jn ' Z؀R3հJ@,x3jb+рQKKl%>yCZI[ؘr"q*Zv)!cT޲ᨣuFT! !*kiwr}GՓqWߌ>m,:vko!\BVħ'>TWܖudWdCRF=AXy>ݫVgVCd^52^SjYmYҴHgǘ.Kc"[wJ ߝu&Ÿ{mr!Z#):.yH @p*epV=ݗ ! ԬȨ.ntY.k-p\iT^^ ($j8zuU>bd DKD)-<"2œkiA*Z_Q~vjB2-ȏȶ9l<% +ʣ[QXtʉjܥ[ܜ˭ӄ%}Qp%WY.4vLf(-IYKi;{-IHI?:uT]BKoʋtfa$#O ui8 rAtAN"@RrP G֟p~EV 8 #iMwGZ)hļ)R'8R#ӽK24v[jh-8c!DGJ*;:T]XS !l%Ag^p>mj IR1H1!0dǃ7&]N|Zj=T.%5A(N~LCiڞM᧕miȫ[e֒JUv'j /Tϴ$@mcO 9?jő#R9v INvtb#NH9 X+P$e4ܴ?"E(W~Oך#.:g1w;h< jЉ 2`#Мt@_j;-.9CnZdKTbcZݸpOӚ75;SrĊӨO]srʇ9L(=rȐRc`Shy֤ǫ980cܮ|ز[;k5N[V #%+yq'*5!wK\y@~{ 66Qv6=/niAd}O޺e1# ĀI*#OGSjgj-@k(FAʕܜ *Qf קnCh^Fx{yuūu:sn+8$rOzűv"GRϰ!JRwӐF2qPXvLÎ_->\ZH IO8@&uUPmHKJN@%YX՘*Bʁ$8~ay'X ys׸ֱno2-W$6|c Q I Gj϶['Jלd%Xq޲׈mJ1!>CZg69m@Rwim <`B9mJ,:h:S`+B~hIp/)!)c<ߚ iQ ubDiZkTE}'ˊȥ=RQIk?{Q۵Y@{ B<۔P=+:lϋ[_Zz-!RBR> %YQp6R%]?)mmm}s ԧ 30:[MNxw}3CϦEI[YCi *QYzJIGnG9m>Ïկ6=eq#h~OxͶDhg'& *@ʶ;3%:Ѐ2qޱ0*)N5Z׏$`ck2']iR\{TT)I* +)8=:f1 $?Oԍ[qe2Sat6JI=ጠMD&O?{peHlHm>t7O`3yPc[w;;Ly }l9'q}9Hj 3!ԴXcQ%-NzsI泵sQwl2gP,F2:H>Ƕ.騯G@nBJRu P <-ܑ=wtk!J q~inἱJ%AT)  Τ5)FԠ wmA겎JGu$ͻS$.m̔+jЬpA۟5󒯭u|6毼ʴA0c Ч$F"OF̻Ţ\pN nRBpmI ; 2V.l+tTdr3R4 VvVkOOȃڱ"mVBq$,B>$+"*@vdhEnDlJNNl0m7;}˹XR$ XۍoWj q/I-s*^@ې8ǃ֫km:{DM"ĒTY,{i*5٧I[tMC^[rFہ ;:v.QnG\W7\m䅶}A@q]bRnl4TŴ"/T [JNҢxZ5$2vBU[rY5eAJi95Ip5"w{wǺBӓE%5/)-H߻BN T$d\>|FԐ<\5>+6Cܼjҕ,1[ź49nEUu;t7FA%: “@3uXoj YB0!XT2]svR7/%C{VFtpB0^n,[i55&AGk`(ךgT۵T.-\֯0F`9` )-1ՒzK 3mV$)E ~'ՅyVn;kzm}(Pך )\j7XΛ$1V(,Ď[sdJ>u9,Í> h/U11뒟 m-(J $1V싖ێϳo [AeѲN$)C#ONGqZx 3ĸN%;'jTr:l)Ț-Y^9.$e)V@ɫEnHL[R H SmNUJj.\7(& RW(jʁWSU [#3ə![$:%CAeܭ2vH"VfBRMeRjo!>6ƒܹjbn~+jpqԩZ[JpWjd(O%ei !M6!JQ˜ TBҚvd;r-!J6Kԥ6rwsQq@ bKlc\5x OV9皢vkMJv" 3ڤ$*Q-**qڨcΚv.O--C%./l)CwF Dʳ\cjc:l\W͏- JJPum_%n6l$aBg[i<<*}[,rȺlҲ OU4Dߣq`"ܖ\v㶣Ȏ˙ %$uJɑd}/e-CiNG ~z rJ$8ѝ NYĴ‡~ݪ OۛJR^FPWOHftfz58ZJwlғ?zq[K{!Ziϯjy**͖֮žf$%2hZK! x+'/T:)!I$)$`C#XO:W>!YYcPfk8D9{+\ mkWca[iRHW]ꙋ{UZ0|)'\#'*+BQK;']"3pAR$ TE<$K#+ qAEBT0|֒+?%8)bh @0@gⱵCQRFOLEjnѵJCIIS~}2t.J?"S!:R)=oRԑ< VML5IӚJHË%CL|4% Z2Rv ՙ-a).zx>ђJjPڅ$9 zqLZ ZEL|c@e86ڇLeG=IO:2cH~̹uФ#nrIs[( wms9"&xM}02[Q\'MIBZ)J@: Bjh.-nB̕:\BOҷ#Q_,t5qZZQnjUh)ґi_T1iz | n ," $,䌨g\T a$zxݩԿ*|%wP9{-o!liRTV+9=y&ʗ ))D8̰ %-*Nr\V~+QJA㷽!VJ~ WUn=*}q5v m[p-\!a 2>;gχڧW3vf XodIQG*Yd]"`i3k*:Bԋy`z$mO`fӯّ䥄;(BZ^J8>cPɶskaZ"Ï&4uP-Ő8g]IZRMdnn8Djbg|L yBK?Nv 3'ޱkԲ6KY'[S}#Hehuk-iOhNJvuB^e@VwK]s\ae.=iӍ|JB_OV8#ܞEonËnޥ%D⥯8! !XTr38m»o\1[NPR` gs`U# <R a2 ʢ%GhQt'k.ؐ-)QaˀXrrl0Tp:x2;q ÂX|;LiRA I=\yZԣZWKDl'pzcMЖZOsk0ݽ2IyjqSq#-@yqzFs=˺ DIa ]2ne6ta! =r]>TxȸZ;ziծIPLV”$H)|L$H(T\n qI[މnsbޤҧsq*o"*BgOJ`ȶl[=E 'TjS2.1\. (RVH]y`cW0v3W,nF+K:H}ÐO(ֻ& ;-鰡Ŵγ[^{pd#w?N+n[dDSл=Y-T<<ސId+v ঠk<1k-8?Pqv#ޢƑ>T" u}jqjqWn-oWȲm)*;E wCIN=^٩/Cx.LH\\Yb\& ̯ ߜVqruwT"5B.j1:+B2^_!\6ɚ_9$2;B_2zk X=$rT)}(Q$Ix%{cʼiu7$z]*:0:yK HuVPyEI}A'ұf+T,!ێ1y #<, Ll/iA hjfjplJ.;O*#v=NjaTU2#4g(u[U)C AZtpy%~O2AN99O륟Ipܴ8|9kSL3D:'=+DS-1ЖPRRR*Ax<`dң @r1!JTsi:Jfwܱ!J*p=IN5c*ApaUQ)N%a%eL= ##51RmYr7qQ[5ӷ y: (}Vݤ'$^RRJB6895j !JKN # $5+{T8ۣ\q{{_Pp!grsϥylP\t-R'G ts{U(`؏j=a~2?rgڜ}Rt$!m w ~ZM!N})J'23Vk8nѷ2Yi m/0[ P$WbEyUKiuպpyjM+oX9J'#j Mԩ#nEw <ߡ5UլF) 7Ai}B$}?z#3&*Hl~10z渦OVmj\ <']nII,<=*|g> !č#}m6iMT2zֳkQ[p$jRa@ϥXO&2kVBj{s'zɼ^T6⢭b?Îڨ˷ƘҘ.$KL9b2bPYe qNj[>zQQ1ԥXP=%I =ּ;r&S-$Z}8.  qDjGAn#L2% $ VG+;,:2mFC6c G? Aœs sQ4Ih^d,*;錤CjQIVI㰬n5 ;F}KqpIԢOM T;ݳQNwf?%BHD' 85%Jy):vC{8=w3?Rs-@iX9V⧇;嫴ޠKqڒ$ۤ`%(IU?mCX'Ե'돿ngZݒJ ;zp:։楃xl;J!ADmP졌BlFp~lNp3*> )E)9=Pr܁ֈ$`U`yRzW;N1ch8ɢ#9<^'9$ׇC8Ѹ+^pur.|RAdzpQJq`(~[_S׸>u &{lm JS*Qvn RJCYmhԈK~r N'i]QڋkAa5ȲڤzV0THI[ܷ\-v]tˈ2@OI%(KVon75WGoӑUZCIQ 񴀕l;nY3K]MhaEIZ*WzU2Ԏ3*l52Ѣ(U\!jvRޞׯmE3v!ՒH+v#SnsZux7&1Sk7&8#k+fBfZNA.=x_"GU]$-M)@ %#r^mi/rmԲbDW$'i8$$ccjwvIqaӂ g=O CSڴ,d)=\ f,Bsm2}ƕ5*HY%!!rv Y$ۯZuZ7[*d. z:^CƊҒpA5e=g.avͰf\f)y')PVqIڕrn5S2 [;yڥ{V5T -0]AD#W=Y5Ĉ%~.̮M-njQ( @Qyp+"#tq̣>ըJ@VZTݗm*yP^b#vG1 [;z\]s1#BfH0<#27s9n(1-ڹC0.˻h8K+m;++מ-!ܣ*9,[~䨠P4zDfKJTWT0HI$ qQV.ˉHCSJDTҬ`Ғv{s^Zգ?ͭ*!J+%[BPi+SDSWUd3RD 6H=A*Zdt[6ɱ5Cly-CiI*RnLUϧDrJ 䆒B{{MHJeiզr D~ChAQQ* H8状۰e1q>Z^R״┌?W.cP|Kh7re=M# gp#DmT-&QnBe5v\hcTF\) Iw4rK@oZrR"ȓCL=Z%yU&ԝpoqJEFvjI2Cw[2[R|ȭxKiZ;wx~_sDiˤOAy/v␠j&,ZT*u,~V[Q*RVƭ0y~R$$c,z\yKľԵ)@r=jjifaH8èKd9 Tw': oڝ%ð`})~5')%ElGlP4͎!sQ 21r_n`sӧjʒHʉǶjj0/YuY\&BH$meBԵnQ<:UEY!#8| GsSubPJ԰:%-񵴟~U<; *j/;e#ntI .FjB=lh @ 4R1m)J:Uròk,!N}I@>n2m9LFI %!_[j^ZY;ǹ4Z"?LlD /n(~U3 'JiJ%{]j =lWզx᥻ '7 `@x}PPz?_ϯ?Tт?(. G.Es#}zbѾ#[ZrahfXܔ(ur>)%̛u$dgkcK%*#s[3䐍9u2A@m2}<{O8*:뗏zKr]$EFlGd}:I'o\Լ53Hj5Bӄj8i2Ὲ12j\ܙAIƿǧ.<ɮʲ8I #} st=J]rjZf$ө`K#!QW>5Ȗ`8T8࿉֮\&W>Vr C[O_>*?R1MrJz9Kͨ`j'\(%-Ga94ŗ'jOۺ![<ǐ>`w0xq%ٍ[-̉{Ԁ# r%+#_Dm|ElI-Bʏ٠x+A٧V;9e ;:R!Chچ' !$@'98[d:.j8o%)Tj8BrxNg )Jή*xw}DiYJKHg0\K["47 A8 +X$en6aF.x u?kS#5nH7:j[!CPq2t>'CŔkf"d4|+ 'bArH8 yqG G{AŨo:݉E,"RPGQŀ}$dEnr,@7*s-ƷD~ uG̶ciX'o(H`W˶vZsf9`yPAQn56$7,!Cjk/2b LҡQT@I5]eBҭDVXi oL\ AN<u"9LBu/κ=6} 0TBce) 3\ ojFge 'áhH-+_GDh𜵻i!D*>OclF#nwd~)p"Je]*0p.pcL[1o^gC·jVIJ2 ǵIrB;hKnS6,hR|,f&~zC^DyVLJÛio).#= ** T'f@i$Go%s-HeC(W8;B2v}Kِoja pB3N{V˷-&Nf!j@W:jUH* g Ҥ2ZeR۪x~mY}sy d0vvԫqQLI#ĤU ԫC@5`ZUnmϧғ`fzp,By˛9nmsr{ o[Z#7OCxBJ:g P88tK.ar'ܣ<%ǠBABOeP+xjƧ_KH1F:8uڱufnpur,Fա*AP(l*0~޶l9%W'-+QJI\_Ҭ雥X%5Ԥ)OˇhW91/-uђv1J}^J򠁵_QjLJH|!0H8!Y=Eh~7mFҗK$RO]=Z'qY\ PԒڼ2SBpEx +4E 8R$6zY(;RS KaB'r@35(OPu!Js W\y֙rDωcKJ|R09NN0)4N^kHpPqֽb\d-`/aIڿ'󮓨AD7kM œa%<`%6?J3cxBAY'ʽYyblm}A.@+)"^N% SB@~=bYݷղhÉOi0Gn&FH8Rsvn[e@PHWe$#ޓi׮Vz6Nī8Fzc<n^/,yƆ*r;W@UhyS"Ȓ Iad*KN$$Yn9SEd2YYJZ/B}T@ֳ-F1IrJʔD92'4dFx*Bq92q8%[WG I<}j|Uy[/z²3T]@grT a)[j clfɈuaBՂ㄁<5[D&%)nb7ICc@HqL"=)a`u?A'XHH]>lZRs s|VPocfj97%u(l<]0 n Vsd&+ m855dCƇ }b8 B QVTOLUNGgC.3YFrWʐ'ڬTLe^b0ŚRƴKTHq gF0vi}_3f .0oXiI%~JA+ p98WdwPjiދ5"eǷ8̩ lYHSapU~VZGcĭ9 AnFRFVo$T>WRT9~"Zf5{ݧW!`Ŕ(:@nm*US[vLTC )l獨Lumrխ;sʏP.Bרn㔥+s<  oÕJ >{[MLѠu\][m%X+Go8qU,抸ZBo+U[ۺݙJV/k O9璘0Ziԅ )6#۔(HB'M)*c>JR ;ryГV]$|թI:cL>KQ(C$|;):[!IV'iV*H$Kd~ 8 <>q !8)r~泈3}Mx^ <3z𥰞l^mP^%@_pY* #Q#yJ%dЕm}*oRx F(xl%al-Pzd3hN'.Keĥ5+n1ؤh ) I18'+WZ{ JeӬ8FՎ@#ˊϽiX"_Xm.kξCo-zr>eqdq-7{- GKqJ#p,$JMb#Y_~82hw!*%t@JMS [ k!䡤 RyA*SӷIubY\i+=E 6*_BW/X^ݭV[]=/\mhl%^FymY 3YjmwvC5j-"䷥e!(2-3ceIK65a[nr !NN%D<8OۛhwFmS A'o)s؎n5`N* ~#ZlW(n :HAC)IpR8NEHW\{m+JQgƷlxв8Ҭ1^z㹨K0 EXyh2P’NF37vbԓ]0"1󔳳(oH(ֵ.$;ǔ-n)0G 8RZgYy C~[a*fCތ=JQ#V9ҙYk[SMH\9H= cZ8RPs險afKkO8- $~\j+.$Jo6arHZj@4=\ :UlwI<h4v߯%@y¶[/)O-$RH)W["2-\yMW@l~ּ.n/+\X-CP$몚ߗ Rl 9*ZOͷhN<6|,b?g|T/-qc,R hֱ*P^VKO9@-+ΞO$(GfsYځAQ-s% 2C󐦿vP0WRS F:.}S<\YJjJ, )X!'X8QݱIӖB+NVVUH^kLkQEZ/l-rUJXpq'Sa9 3:́*;70J I wCڽeԑfC؂<ZJRU lp= %q*Yp4<!-`t9x-mZ-6Wm3lͩmi[aR_u pyJqc5L+/HYiJݻqo;sdd8Ny9b7Pd~uPIW]6DvXBHH$cǵdHJF: veblnga`De ֲ%8P< U dW1Lwc6u* ?C~uk A9⶟ adMH߷>-ȕҔ!JR hS\ǎiWYL⺔V$A<=?q\=FQܒV\'Ӹqɯ~Ji=Zc)JJn93 %C iJ ;U:gߛǝMx!~r>vͩ{ӺmX|;@$u&TX i i.pyH+צ2hI(_Evҙg',MNkWlRH  u_ YDr :‘5>pRA?z|eb=~I|Vҭ៛qG-}qOJBGx?qެ$zpjt(־Rt3nuim_zgJU nh)HŠoӮyH8pThR<wiH<<8>jI/pAH =Z\)@9"yjg_ yg ]1P_x~N<=МpH> O#hm$y2[R犊oea"ikPMAأ1}ߏ6B*N=pWOmTW^(Zq/qT''k$.AtOVMm%KR@I\T!S9`G6}8^Dv.+>Sݵ/ȉ;gQ#xz˯:unN(cF1f 9ҤHUSVPWB#P Gl'O?|UFs$$P;P,duX)p0 IBS4`wo [Oq.Zz(z OJl%}J&!G6Ĉ߆Ō}S (;(I Vq+鰡X-B׷CPg T)E''Uǐ!]lm8'= dtMs~ n%6W?"?BMm^TNAŠ@9oE)zYW[s`"cZR$e!)?Z7Sd @j7q%BqBIQ)Hcz6̵.$+S<`uanQ[rfn/B.;cPX^ʐʱi9Ҙv;w:F{n`XHas7lm?lSX*wrnacwNpjl״3ezե-v縟P$4Hy 5g6-[N0'JN*ƸPBrrdiu\6BFTGJR#[ (Y0 t ⱷq+<EP]1Xz+M' AR9O5x}쓮6RbٓḿxeKr# Vc*Է&tՑ\ Yv5.%Co. J@ T#Nܦ Jb34] @ppQ>{BJ+r"q8hm;w5Hٓ%Vol8 GSp+y [øܤNr3^_rNU9VOJL6eks)Gm|M{:3kN[% = V=qؘ&ĺ@XjC>C" }+aTvR%L| %iHZMǚìDrk'}N(mqӕ'crVvyhe)3 R898gNէ5",-0$y{%+qT;l)/4#$& 䔓t#wU\2|U;ҦgI5B;+La!Q-)X;A $#+b.[IJJG)9I#;V,x7t I?Sݱ%#2T'2%jPsS,fCN N $-i9Z1vn#Hqҥ 02}=?QQcߡJ2\*ZadTweE( J <<jZIZ'$g WwY+Qd9H$q׊)?am3Z>Dh 'ǔ)[9B[H2F?ï-0)AtխYQ=%[nHr>#!KV57[X [K|BTNW#ڢ,icSu,6-~r-Vr>}HDP#xb;Զ[q!;KFڛ\$jr m04v +  <ޣYnԉ87ra0p# syʉ*$kT(,Zr%qc8K܄pz}nqO.[1ZdTC FQ*B$2xJ#?mCbsζAi{o ND9 0JA%!)p 98W2D1;lҚ<~5Ғ\Po( O)#&:hLDvYCMj8QzT; -Vóβǽ0y[ ڜH+%]8$~kvߵ4'UiVuJ Hʷ/}WOviÍ08; cjF1ҡi۳ kaGRczdYqmJJBBrWn Tdl2de%YsÆ*}KGzEHuZ6-~TB֤ 8H MQ[OZD-۶v*ce>b=#+>qTjKj׬4Xi3DRSDgh+c;S|1],[V !mJ] ;Fr rym5,qPHV.̢K.))J M9tMlk|mm%kB0RG0&ahO4Hi)Q@+ sAUW[66d+ Ҟ[ 2i ЕdJ@Hn<t=F+(7 lUf4 ! mc)' $hSkk H='{7QmsL"=Jܮ nCrlm#iܔs܎hT膘[jk)P^9 sW:x0A#*LtʔZ'ӊ9 u=psE3Ψ#S@VڈqZqJ5͆ K3 gV_0*$g#]ZM4Uvf5.zClomm+F2{aYAz+_ғ)vOR"ˣ vԶ% 8PYTpzc5%l~5켛Q6sm*Kag<mʺXTp2`ƛ? -ʒ)% 'W&όԝXkvy6I+Xl@!}5a.fKw4ᦔ``!J#I TUK+cR.*$m!+V HrSn4^"u[ܤذ--eD۽Lj4KskR-(33[Zs7o<=y#g{V>)&Y 8彴5 W+zgNSa:[JGCޤL^EnC!*A  "S\p/iV>跬WOכju#Ԩ"8IJ&'G90GOW"a33L~k\r9@ΤZ֜tcګ Ȫe͹XY@KFҐ )sMYvuR!1|2%o<`n>lfz2n6y%$JI#u3nn0񌴮+ɖ1x)8IO`%bnP-%CdVrpzγQp%+i7/[|juSYu֛I*XkXfUqAsDDTQoWV %U=9TSMI_/ V\W^?1Wݪk[k^?k{nZ [2@H`8BP6 t N.!?fe!wʼ~ßkX>VD88m~`95s?\ȥ-46БT:EyR[b- >jKC?=*WOס9=(:Qm׋=^I5A5O{QѰ?ӱǓF,ʴ)o%Q7x?n],ge)JRj}5bzv=sb2ZJTs__Z׎ dNWE8<9\V0o )=PUqZ>hotdpJq@;^i}[q98P#H?M}/?S)TݏӡD}jyq#o]M\"M!J]oscS5 RxI0)Bx#Yxܨ2<֔D$kC|YEő5 +jcoVGK^di͓P%۶>NEqG㿛r|\nY_аzԒkY7&ZXډJI:o<2D;jcǹι탞W${ c)|<eI 2I1R4A$VzX m|VHk:ň_vצCr5ÒUiG}n6)YLv5Z(P1VA^ՂC U|7v cTb8қI')AgnZ(p=כHЁTT]Ci8i=WR=*i8a`W~E00AB9Đs@Zr8ZHGSR\gR&ZW)qNG8cFRH9m]S"]X wIHD1jjؤ7)x > V)Jjf4 m4[=Ǽi8Āꗇ F>X\m] Bj.i~DR mkN|ąg=3YyGj[S/% nʞ)q ]٬_04Wo,XLrCZf@ԥZRH5͹bmW;/:-ǻC,0?ֶ[ VX7n@v|Onsm$EĻIX+ZyR-ii.ޡ|6h*V][dsqRBSMɥaGo.m;Y9w/ֻ&qmXy7'<}k qr+ZIic4[͹Gi}ucwTK1ˁ2O<\y]דPU禣ڮHZU)Z PJqؚ\>_zysCeqR PBrB@>. @精 gEj1Rmմ(dgy!FSQ6RۘߴG&Rԩ@'o##_ml;JUZ4))jywP=.LWP~`I~j<-H%R'֧㞶2#7d)n@nRiD݀ҞKF3ҒV z+pFz YmyslڿT0׹m351P̔v>;eqԵ8FX$1Hed^Qp1%BX#D./ c'ED;U*ep%<Im'JS-TԢ+OQh ^AOZw7![*aG}.c؜rYlu&K7))ʿyP(oY>uc4\HwiRsA#@[m>;Ⲭ&Cv'I#A9?"s$TO&CSr<ɒr\{.:s ;/>ˉiaVR@'=@M\Z/z)bdQRnF9J9࡬$=D1)Rqe_TNJ<~\üӬEn^!ImVPڝ9ԣcegxlEr7}ϼYhߘd IAWKɴB2%Ө%iA+K*BVUڭnr$O n4:3/y![@ش~$pIQ&cQ ge0Y\#bY`)|)92wO$BH p0+_ |%*~ Sv֯.TP_K~ZB[ؕQsV?֭Wrj6ō $(S(֮@KVM*\DjLfK3RG t+'}JC\"\[qui%ÖP0UL6w;{ZR|_tƫjKhaDt!Gqfd||Hz=1 j Rg2m[~_z[h(p#h+3Hy#M^PʊR,cxW]j`EYۖ=gԇIuk̶)end@ NqV>ps; (7suNT-rrO\⠦[NdnPGy<҅Wzʧ-h1k{;YuR6Ho*PB@ 0JzVt2wiw E+ڒN qشv;'ػLy`~4fRKq\; 9^@ݦa9dr6ՓQsW*QRB8SxSjF jYNKapD]xv>aS5N|:L|3na RTT9+P|Y)88 ^S䍿{׌׀ w&3T'ҽbrp  ƽT)@?đ{␼\$;YKXIJ07mY?ZF$tYֆ P涒ˍmQ.LgF ;ݸhR~ -V ͞ %^SAZȐH>Շ4IRZg읮MxT2qY;&:pX()~d Cr.!ZZ{fձUM$\eVL2Ҿk G뻉0OuCv !N0Ps[@KhJR:0gkw}QQ"J0K~G<WBlnjqBko=WQڨV0֫۞(T['#SД;* {I㸯Cy5pf<Ί _>bSݿ::ϸh=$C***>֯-soRDHHֲ=-rҲL̾(=2usң*W~jV}$e\T2JAt=8ߌ'vQ::ԅAY^dӔ<2{|+\, q僱ܚ042䑑|f:vO/~֕T 7u!_+L&V91c@7UdCYk%#$WusR]9c<ޯ;QC BzT/n#AA y#54r:h 3sM P+$ ^(F{sRJ~^([G?ZddAk,ڽ)=qEh8Oay ƵYTVs3(2}ϖre{U{5SvuӺv>ՖڥG}y,7D⇡ ӣK 6eMU% Hn>z9<ӕI]1jM.=1!aNI Txg޶Σd}B$ݼ ܆Z8ZD=oBDvݢm9ʡyΥ#W+sWxzE8`$X!$N ՂROqnd^i*9Oҧ|EeL M@uᆍscUy%[vn<{_ެ|>F[O 1+./0.oSn>0CI(Jr+e&U1{xI݄.'gjȘ87tG̔1@[θ4ʉ@~W"bj eqqn%[՜Vn*ʨļ GJC8` $M\L(z+Sܠou@ ‘G8{^ԏJ-V"v2룏SWq'Q*nK1+(ݎHGjͻR6{U]?%䡠RjPYT@5gfvJ5;9xw [r2 qc珹ȇZTP6VgRj{JMPX k1 o[@Z $I)8ZOSnRTt.R1mEӱ֖AH $`9.˝-Ʒ7WCbB)qRUcr>Br1QZ#īQn dKJKYBBCE)RY(N YӺMu j"LH<*%#rwC%у58OkB%´i QtEmӨ%[>I)QZѱ +Vĝgv<Oݭ7oy*(ojw}9ۚ ?\/1c_k~k@ JZNrjuVp_ic|I_8 p9&چ/ڛHiɫ|*m9kke谘Mc0ޡ~[yFR@Q#!gj>;w p1jV@8;Su__{>&Ђ ؄Vp21Yq6>7n9[yH (ݹ7,9P-@V:{jF/)jkkaHPI'P 䌃A"}㥭G|ҙaWCjHQZ+ YtmO*F“-j;sn&[Km,NH>$w5z;O1t/H^2l ?H qX1֫[`cXieEd^2.ʑ1@+XB90IEYm16ht=]6_¼ p8w|-K[vdw4qiP@J '5<Bψ,Ž)'J9N9Vwޮ1P},zSdSqD [`%;S3h}}H6˅7CG%IJ=[[=TuuΞr+JuIe1 8X=HpƔ\= 6 wV. }9W4}tLJnLZ3 Sed e2Ǝ z-wD)=hʷ3%jys:mOo" J~T NGMg⑭ȸlD(2pe[B.gjz\˄ip\l IiT|CYR$N QeBy д%e ~W2DMJ@yN'ƥG5[ Pe([LUJe\fii6%[.[d Jr9 *A w C-zJkjkbRChRCg瓓P_eZy3m}5n%i9*6 .@OzZN*sm 6%BmNYJVIՅ(>r*)lq,wiljl}1rcOqBۛ6đHBVȕu_܊-ZG[Ӕ%<'($X=qi렸@\f1NɌ) d y%A\ANH\i:#6!kPRFT`tBk}:$'p:ktNRF,+3~m'WiڇMESOe)s5,Y)Oܶ (yi0pyv5|p+Hr:|,H|VSҥESE\ʚI$rc[N%I F+UZ#01~uPp~悌c u9Uv#NO⃑^{~< [j>>cԟ߹O~Lq q20k!r tsj- zWJ|\Ise\`՗YP  4v,V9Jt k~Bq/h- eE `U/Vz5-pHKcMt6ҚeD!eYW=8US&VYlgII+-sj8̨7?ty*+'/$e'G Eㅔ8miꕃLz2[N>«Ρ[&8TƼL6jxW3bbrIN8^Q3YIo4ҿ 9 [b[joq]VDⱺf=۟qgIPۀeE_^jN;jv!w{3H Q.I)$璔f^^ۖF>CYž|$JG*OZ5*u/qQh$7ʈ>jȕ;VD@O3:%ACyXD/ۦ K>RBqj1+#yj&i۷HI:嬦sv !)0995D;vcoIv )SxQB\3O5>F[%ޭޠ*c2RTFp2 IQ*YwWZnQn4[gxzDu:)+tR3BF Q ՖtiCk+t( *S5%d >C|L7b7b蛐Jry HGJqsRh_֬vu-5!!9@q$rFz\{E^oWBDv|ċ,~% mܒRQ0kU[ķ:OBҥe@)8m)'[ -.F.m\ZB*i5%S3`Y!n+9V[]#.2nĤnq!,~bGRMAca}*)݉-I*RIw2HH,Yn)G~ \gtuRTHi EHz:e[e _4=HRdPJKDm6k jQ0eIV){jņt9|Jc+Yh)I#(YVFOJ [ڶ"wěB.P^'~bIB\XV K` ՛EҚH\E]4VPJRxj'#8 +I~ {ޅGr3lm,cj !@BS'>YW16[-j+B[Cy%''UC6Wi=2ghkԹo 'qPWP@Y+^.vc>PCe%{ZQ=*br][DA%@*3I:CjBLG=FJB+$Զ15n7vvɩԐXFQs\xWXq}b)-%1gj !_6Wj2J3#θr^79Ռ %[Ǡ焜>'fp&u}4nK-nW!RnQ]j[n[m2WVZ%%AY 9 ʕ *ڶ%GB@%:Gog4 ti{u3#k (rTv*qC{j MiIcd;v!<—f:^ƽDd5 e+_0 Pç0SoS|-2T=Su(I p8zRoyڒjfNv#>rSKw0x$ F:l`tx7-:|)=iP؜'[cV81sB,j(-;HoUUU姬7xnOCj8j8mQڍt_24]$`-[G4BRɢI^nڎN‡lfj$@'#dgIz-Rnm}kbnD'^ZR_o*ڰJY j<+ɺoXd *JҽzUx)O9ꬒjMܴ&7Ŗ+)Zg@XQ 9NT@#uQZ)n·ZDl=p[0JpIZ+RRpT#)VK-ͧ6'=*C.q;?֤pʅMB> g1V Jؠ.7.8t?ρ TZ@GFtݶ)z[,+l r<1dcjy?su&u Ru0u[PJ}5]`>BKC@ALcN! P:* G*R֫Jv8"Y3I;4|lLpFqצJIO!M8lMIPI)Hw%g"X^Wr%_#S_>^_b\%7Бp_Oj!:cLaL>>M )8섥ݸq +=p3{ӜsPDhQ`KN?;^5).${VLLN+}\ I' #:UEJF1^'Zbxy8<n䀠1T\^7^׎$W=EVe;H=y v1T)G8 q}A ĩ*1 u0qDzyowA$ٖOܝZL$2O#KW'A+/ȇSUnl9#''xܑuMRV[Sr ӄ|%ER}Z[Xrع]COPllmI)D1ZLF]7>&KV)_i" ((VIGNoBmCv)[!ǚ}\d!92pHć&k|L__m (QRBr9'jN:&* &5 PJ >>lf}٫o>-`nmT#*HUk'LjW#rD!K { J@DgG֊m}wذ Gc<)NJV %Ds'Yd'$iCIlS%F2A ORN]ENZB5,rS}#LvW3ӂ3j)˶7mݜn:yAE%eKHJV=ԒjɷGɓkI6 - I8VԄiRc1{\Z+2%[IݴrAQEEW);5o~ݧfJ[Br6$QQ^ɵ<33mh}Mi_Q[J QQ5|QXXOڵgC䅩 +GM=jD~MM+{k$%ZqSAj=AyPYE^.Rͷo)X㩨KLiԆۊڴިRnQA{.4oQ\V=@cL1d?krpR<8rI e,jwz#o8gV@[͇3[ ۜqD,~*boTu.~ Ųu- %ޒRF+JSʎ9WWklK1aI[mgh}p=Ir1.bŭGݱ #p$ٟswD/Bε4M4J8M4Ӛ[Sƞ-N+PqԌ#ڐ GTY-5/&W8TR`n$P~Lt-{!!(*A^6Jx*ԴyȨu!Rv$@q8$ Sn6%J1튽YġPHVR2pq^B^[|y |5rـ%!- 798Py jEuɈNێ);Z.:zrjU]Q`=4 \ rdfs,s*8`xZ.2u{[c1ʐA @橾0D2B%wRv})}G$1ڮnۗ٫]Z3"搙d9\RQƐxB[C@=m=.fix h =JrJ$\zIa~QQqѶRj᚞i [=\x#[l;eߗm OO5 khfL )?+տoS Ϥ'! <jJ*f9QڭA Fߔ`a*>5Þc8I*Qo:Sa  *PˊO~z'm9֖MyV[R~m6` t8!ҩJڊcxu?mufCc8iKN?Ҭc]d9%IFޟ& *RPEWНē${\ TTrp?7nBuϸI#ph8^~$BRT [~T:hJԈr].2e^[:Cl$o j:= -Nc_CbXu0WJA# ,·nP9>BIWC]!Ilz\1&EASjP2S5yzNAjɌj3kXDT R1DHJ ◳Rr\LvD|gIOtu^z Loz6mP ޜ6–IfZ|Ziu 9.<]q'r) tu ﺲ|kگUZzleJ JJJԲ |q{:s5w6CgsjMD*)I9>YŰk6ڵ-id<%8;WJH*'=jfe˛wkr4B[)px@~?lLYdXS~an -K[P6zکfWw뀵tm].|$C@ ʗzw$86 FX~穩;pVHFcuZ.i*6)Gnڭ;55lǏHVY#XY$n53zj#;k%$=:jΖd ןxぃۏ4}jחraoan@<~fޒJi7 XΑ AT՜u:+VꢓgUC:Z?u<s#ǾkƁ%! xrN*w[qie:#B! @YՑp* >Pq}΂ 1Uuy9Tp}^z~=Dz ^nS #~G ?d\Vm6@*Vr#sR i0Ξ":bR}AYz1\:ސ6hJR0UYk D#aOJf؏2<6?„W)YB-|xc"0[h^ .я|~?5g>'r?Nƣy 9 ϷL}M$yv#j{Rӌ"$m@QWm>EͪA[I@Z*)ZR1w}*OԏjmJdZ`xTF3jtqrdھb& OyaI BQ=@oBäRz~T͚ndiɱloDW4A miIJ#_p%j*9 tCpFfC'텥_px43x)yi+<tZr___| ٸ LӨ#<i~d1>Mqi??,SM 'Qcb Y?QJPv[H&@Zkllw o6[PNia!9Ȃ N+}qQۖʔ[. kO<J[N`uYۼx 料7YJ: jۨ%\ }׭O#ݢXrPRZppA֮ɺeGor#^jdئ\T=%#? jӷX%I]2AM"ۊyVT{m5~6*t8ׯʔr<% 䵑77KT^#mCliD*) -@I>w]#*צ]Aq6+nkRZe!•Bsyu$5 ֔^!ٟ\"*B2Nw%YP+;os;~56mNe!1IpjZj;ȑlEls@jRjBR-:ZSL'p KȖTJj:xtFw9UH$=}1IO瓸@$1Vn69;}]=)/MoSڗ߆-`mʖ7Oz _e Pl Z#<]$2V NIlۢ{.h)f+`z+=)dG uvgfoiP\e!аJ+6BRHBMыڴt-d/~Bee夨Ӫ?jq6,Ikz| ).8v7*+%a=.cW:t3h%Dg 5GE٪skùQ ˋiTMW`~hYc3=ZXٍpmNrc) !`|'"+Y*Ti=!.W6AJRNN>n\}OFLYA: DXX+V]qdrCamچ\2%)7;5{o3-8G=$'=j=ͫVӶ~.p|Dg6H s \NQ1%폝-qfCO0+p ;9A, {ET:T\%+!#Qn0Pj?k 6˽j[CG%-^Z8ɩRAtk^.G! N(;bЯ텖C23xJF!;N95q&4/׫sm -BF`w6-im_`%0VpH)#P T-oLJKbp^q1]pA+$6?mJI kӱzL7n-zaTV67;;I9nAc i!e\5㌌q?9trtEޡ6VюB-D'%@c'Ցc">n0]%$a;Z8(4mZ՚*!KGV{X7:3݄_Z>Qw,R^l}8.:[bT3ֳa֍Z'+N"Ɗ7j \ӊ]iӶH [qEtjp}FoM6wtv 1ZBJ嫾zbpp[4컢&~2\pZCѝRAsv$pIsZRZm֭[ẃ%ZCgox*'ɫw_.2.6Im%Ȑq2[AN7%#q; (fQ2(0-u~Kܵ$nSiUʲrzqWE2-f1*PShBTFdI `owCqj]N\lQeZoMBPTӜB 9潷A .3WZ8mp 9(z* >zj|`;SR/3,Ѯ_\04)d=x]z9n5myJu`Kj@~0ZYtf2*P,;u60; iMZ] Ke(!Ysbe(gP@[ 헴\q)O;$%< d؋e+yyh#4 ARB\2rIݧYF m%#?`+ V*@/MED"l2y -!98Sޯ<4f>kyjgo) yj'5]MSOi*njk!IϱYm Z$t~#")j1Tx''T$ң[ / Y)1xV<5׺h3O #2%{>WPҿt(H֗Z\ޖcx]Jqgkf>c)AZ 4Q";vSNz:{Fi51VXт{! k S~̺f3h{P\e*lc`kX~,,xB'fꂬif)@ڄaҫV `s^ MUzǂ?=XԒH*=jNNN3Ր@uq3}+M.Iϱx %'#ڬ”9=~P)?1Q%8?2;\JB؊T@>HQ;>r1߽TI KJQk!%YڟV=:$ p?:(R# ū=U@RFjykڴ+͎DR Brx^BIVԍ c6Q!?))󢮥 )#V.mF[NhR$4 %- ăxVH♣G :yM9I+N~v.i]1 &0SH v²#!$c8;US?Le|vK 9,@*+ŗPi=6C*@0#_r%[UE3!:d!I# ;K}>Dԑ9 1/¸>bA}A.xo}[hRW [l+[jٷG.m.ui9$C?Oh5qW$@ҐX#z'Us_Xľ)@Y8/>,:䁐)1ZE '1m`.8{|Sv՞$ErLv Z[%N9 V~՘6pV#%;RJFxHj\><ym8Ed5d/fvl" i'5y`@f![JRB=;blJ5lX֙b&5m-)L ]iHH')j <VɚsAj+\"Mɵ<6J6͠j Sk՗WNX`Zy:9ԓٺ* JhtʉuT 'niq+Ek[Abj$HmR \DU!jy$1ۿRWj2|%X}K'q o h$s4tlQh0ģxۋBHڕnQ%kaPYnFLs^\Tʈ\$siH ?^1H Hӱ-H]K-a wr5;2%:'ԢzZJzJ4 YmD9$8p3[AA0I9;Nّԛv\KJd%~s#i Q^q7H6TiN5npe6[BѻHrY?K#="+HϤ;Z5 +%mTR@IN{zlѹjz=Agw&̿3QI[ 㹪TrϽLcy6fXZ\tFVw yR {RfS-W#'b;ټ`y#o\nq0h7? ͫ1mwbM^JrjEûՓc)p Bb(L%8 c'+O瘣ޮ !^E K[[-5h8 Ռq B,̹oqNFD}&.y!r2LpO(`=$ -s^BzBorL+6H ^$ \ưYQqldIi#ӥILxkL uJJpq ㎧j:'ҒC]ޑB}^s S_}ByN*.oPjTRΩ+N*B. f.KM}E{V;$u[,(}x7԰= ڷ/&J {Ogں-c0]\$?γ_|"S!<]kgxu&OkrZ`xe*ϵ}U;_fӰs47}zG)gSmjqKヂXU%sޫQT(Z I~AQ5W$RExzdJIZ#2i*Zuhҗ 7G[*[}dž6JHrգ.1))OcِQnԿÕ8y?O^I}kqWq_u8)YBڻ֙o{i#Ef)AF 9UՔxⶍee*ݬBOkUAl޴_ܔO>pn`UV$QO*TNQZ6'dd}% A}hqHNF?!>QUm g#UajShT-@H⺨c#w)ISF[aĂldT[JRr8^Sy=jRB3D.' T^%.b0j?z9˃ҫI(8$9P}*%Hڀݪʇ#D9ppOPsҤ'8+**?)S;!M95PVH%Z%'y9~)%YH“޼ Kj?o97#ο+lx}z+@ l#VB$[r^g>^Uolq$XxI\F墠%#hKq_cZs ߵD 4|#[Զdw}9v oq)H*?b (<.80(d>|p|8f4 B.@j-ykW (pI>98S2xT0O9X]PvO; ή,c^l'JH#%RO5,E?L>ݜ2~Hio(!%$1Ujˊm)'*BtO~^h^KHe~C z"ɔFXU*x_ZךaHE{C^V=CqWOֳc;N9(ރ+x#gX4Ty`EQ\ث|>v7pz9]䴭 zkiÔ% RuK%|0JpsH;x'G~͞"5uvk~+)kZW<#( =k1^wd`1R_ʵ|k`cZqғ5ufѬ wI= XǶz`x#ᅸ+ICpxI&/Y¾FnR_sˌfTDrۢ$4Ԭ<~}g6`[cCcjCm=mqN/-_Lj"ۭ#'txuZeSC:T͖2C)S]נ{7gM-8ò<Y>Vp~حŘ 5H ۩3iEryGZu<}Fq^GszA9Lu#@VI$c+* 6?_֩'~UI9z }+aABlxPV NIFHGKMTGΖ}aD6U ح%: Wߗ[Tlk^T(i'U=MI^_X}R=JU)YBJV)* +jkA'Ot> kG!Ko{NqG`H<OU+%<V69ʛsnC}ZANFd)i\q$Npzz)+ԂCZzH8o*9s8wקnR 'SRP~'(UqDVK?ץ J1?֩I+G'$`H"a+W O?:;2{Tg Q I1BIA'BOI$bNw' ?89OJ pR;<m%+8+I Y8I{V!g<#p^ RSּ HITàh@(*Oeu9) 8 QHP Nx AQ%ܤ(sx 83rIR1 1:APm8p0sW$H*I@9$*JJM$^Hٕ${U e[J6T`\ hm8P J=(҄7*VJm@*)^y᭨Z < O .m9B༁q+ $UI-83sARTNWlRq皣vZpBSz[KJ:MEX  kҌO5Iyg(;P9Pg5G9 ~ xTRQJ+H4+9+AW@#Dqoom8 xJ3JGn5aӭpA|{◇rCI*vd=:cb#T0VKA6N9aYyˆnK#_sZasաuT[oDkಣ _Z6jH[n%hZB$`6u/ N>LZ7CZ?Rb=VߧkJҽ$ӡ@WҢOej{WP3TsI;WyКA'8xOszI<}=xiv48 j'L瞜T^d=(='J<y2Ojrh<< 8j-eǕ섒[ Qު݅ $cւ+< :tR}`'2su?7Gj#ҠH2ǨUW ҩ *){"763B0ܞ:TE *ux427X *:NRSӊI$$gM^鷬%ΆO,>ղv))>U l 6˓ b\7 /4zCUy*QeC jzP>v:I''_;@RW;1)b@O\b-.p:ҽ'~q8WF0MV_]}ao6zRv9S/0kjm@ |ᆺsA KQܔg^Q}r'!@ (j“f>y Amhج~OLf);(`=yJp{P;׵Ny4Q{י x׸z~߭ '.|*,UOzTz+ԂJz$I@*#|+9 vŌk7biˬ2#qYJ-KO?rʚZaChUҕ)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)AX-72*"|rO_ֽ?EKlJKw cVJaʄ[׻_#V² 􎩮->i*h}Aq2@As?銿#ZJ9(q$^cnUl/hy=P3Z ?X,|npd֥C%|(֪QV 'nU[#kkRSh R@$T8 Y %'{UJ \G5h:,OdPŐ.w6#`sIVʒwiVI!8Ow*rOR+rJGJ  ʂs4I ARԠ?Aʰ%9؃_]IR:8w_~rlR4iGE`zk6֯qꫵ}*tcʕ 2;Tp9ZrXK¾R1].1gɗpQu銑dm)\0OEzhn3iKBn+CF9,̟q"ܛS\Jps$k.n Q#B@XY?1[#2 s΂7j8"qt%@oמ8N-%>˟OFJz9J^wGҷt\yISJ51c{M2?bA֍ VJ*l==jw?wҲ])JRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRh 6ZAȌ_4 t梻D{J+_]jRwrzր<((n \pКt]p&FPv$ N}^nf?yZ*i;HPm)?ėz bq%KO98QP oj5~'9ʰ0X]1+H}6Ez @9I sU.ͤvI W [vPTIOz=!] 3WӦQ|lF;zY*ېN+@NA*W5F(fN]N| DJ ^ sҶhxw1d*t> Ido<_bҟ*|cy4۴2֗),6*R~UA[շ;$ 2|6% S%;O8BSRc#iC[Pk"i! (H0UJJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRJRjquery-goodies-8/slides/examples/Product/img/arrow-next.png000066400000000000000000000012111207406311000242670ustar00rootroot00000000000000PNG  IHDRtEXtSoftwareAdobe ImageReadyqe<+IDATxڬjQGQ\eG&t@%.?TZvRp !Pe_ Е@V#hqF;w4s瞹ߜ{d|LU{,m fER*^Jݠr| d2gĻ)g~YZ=nhdZ-{<A'- 4}] ~ &G t: ^_j$e` Wp6h$);I|w hz=gp8@CЃUCv7v;U5sշ-l/-:Wrdw6Ӂutҫ(ĨfU屗]4dN2`.^ʀB BRM^S_qC+[2 $rpw H tsM   bhιǾ0b S+!Af728[ƙk \M}I*f(/b4מ*u_"KVIENDB`jquery-goodies-8/slides/examples/Product/img/arrow-prev.png000066400000000000000000000011751207406311000242760ustar00rootroot00000000000000PNG  IHDRtEXtSoftwareAdobe ImageReadyqe<IDATxڬGCa9;ڋf#"nJ,,&n5M#eruٟ^;[ߧٜlS?=;KHRnñ lzQuUl6l ]0Xl5Jyyiږ$IZ@;mT*VK~n%'P5 qfsoۡt:F)GvFA/h΢,ˏV> 3iBNgЮ)zSUu$7F.+hJJUfT*M8,1>9b7Ar!moF=8fj`m9?P4:Ɲf2q(&2j4^t E>L(Dm&`2'x1$uy0MVSg b2sTpnf?S+wz8{7q]ˁCI[O8]C^ <٫!6X`ާ(>"bH9 /Z6?!*Βt%h }[6Uݓ0u[փW -IENDB`jquery-goodies-8/slides/examples/Product/index.html000066400000000000000000000054741207406311000227130ustar00rootroot00000000000000 Slides, A Slideshow Plugin for jQuery
    1144953 3 2x 1144953 1 2x 1144953 2 2x 1144953 4 2x 1144953 5 2x 1144953 6 2x 1144953 P 2x
    • 1144953 3 2x
    • 1144953 1 2x
    • 1144953 2 2x
    • 1144953 4 2x
    • 1144953 5 2x
    • 1144953 6 2x
    • 1144953 P 2x
    jquery-goodies-8/slides/examples/Simple/000077500000000000000000000000001207406311000205155ustar00rootroot00000000000000jquery-goodies-8/slides/examples/Simple/index.html000066400000000000000000000045201207406311000225130ustar00rootroot00000000000000 Slides, A Slideshow Plugin for jQuery

    Slide 1

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Slide 2

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Slide 3

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Slide 4

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    jquery-goodies-8/slides/examples/Standard/000077500000000000000000000000001207406311000210245ustar00rootroot00000000000000jquery-goodies-8/slides/examples/Standard/css/000077500000000000000000000000001207406311000216145ustar00rootroot00000000000000jquery-goodies-8/slides/examples/Standard/css/global.css000066400000000000000000000055311207406311000235720ustar00rootroot00000000000000/* Resets defualt browser settings reset.css */ html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td { margin:0; padding:0; border:0; outline:0; font-weight:inherit; font-style:inherit; font-size:100%; font-family:inherit; vertical-align:baseline; } :focus { outline:0; } a:active { outline:none; } body { line-height:1; color:black; background:white; } ol,ul { list-style:none; } table { border-collapse:separate; border-spacing:0; } caption,th,td { text-align:left; font-weight:normal; } blockquote:before,blockquote:after,q:before,q:after { content:""; } blockquote,q { quotes:"" ""; } /* Page style */ body { font:normal 62.5%/1.5 Helvetica, Arial, sans-serif; letter-spacing:0; color:#434343; background:#efefef url(../img/background.png) repeat top center; padding:20px 0; position:relative; text-shadow:0 1px 0 rgba(255,255,255,.8); -webkit-font-smoothing: subpixel-antialiased; } #container { width:580px; padding:10px; margin:0 auto; position:relative; z-index:0; } #example { width:600px; height:350px; position:relative; } #ribbon { position:absolute; top:-3px; left:-15px; z-index:500; } #frame { position:absolute; z-index:0; width:739px; height:341px; top:-3px; left:-80px; } /* Slideshow */ #slides { position:absolute; top:15px; left:4px; z-index:100; } /* Slides container Important: Set the width of your slides container Set to display none, prevents content flash */ .slides_container { width:570px; overflow:hidden; position:relative; display:none; } /* Each slide Important: Set the width of your slides If height not specified height will be set by the slide content Set to display block */ .slides_container a { width:570px; height:270px; display:block; } .slides_container a img { display:block; } /* Next/prev buttons */ #slides .next,#slides .prev { position:absolute; top:107px; left:-39px; width:24px; height:43px; display:block; z-index:101; } #slides .next { left:585px; } /* Pagination */ .pagination { margin:26px auto 0; width:100px; } .pagination li { float:left; margin:0 1px; list-style:none; } .pagination li a { display:block; width:12px; height:0; padding-top:12px; background-image:url(../img/pagination.png); background-position:0 0; float:left; overflow:hidden; } .pagination li.current a { background-position:0 -12px; } /* Footer */ #footer { text-align:center; width:580px; margin-top:9px; padding:4.5px 0 18px; border-top:1px solid #dfdfdf; } #footer p { margin:4.5px 0; font-size:1.0em; } /* Anchors */ a:link,a:visited { color:#599100; text-decoration:none; } a:hover,a:active { color:#599100; text-decoration:underline; }jquery-goodies-8/slides/examples/Standard/index.html000066400000000000000000000067671207406311000230410ustar00rootroot00000000000000 Slides, A Slideshow Plugin for jQuery
    New Ribbon
    Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7
    Example Frame
    jquery-goodies-8/slides/examples/images-with-captions/000077500000000000000000000000001207406311000233205ustar00rootroot00000000000000jquery-goodies-8/slides/examples/images-with-captions/css/000077500000000000000000000000001207406311000241105ustar00rootroot00000000000000jquery-goodies-8/slides/examples/images-with-captions/css/global.css000066400000000000000000000061211207406311000260620ustar00rootroot00000000000000/* Resets defualt browser settings reset.css */ html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td { margin:0; padding:0; border:0; outline:0; font-weight:inherit; font-style:inherit; font-size:100%; font-family:inherit; vertical-align:baseline; } :focus { outline:0; } a:active { outline:none; } body { line-height:1; color:black; background:white; } ol,ul { list-style:none; } table { border-collapse:separate; border-spacing:0; } caption,th,td { text-align:left; font-weight:normal; } blockquote:before,blockquote:after,q:before,q:after { content:""; } blockquote,q { quotes:"" ""; } /* Page style */ body { font:normal 62.5%/1.5 Helvetica, Arial, sans-serif; letter-spacing:0; color:#434343; background:#efefef url(../img/background.png) repeat top center; padding:20px 0; position:relative; text-shadow:0 1px 0 rgba(255,255,255,.8); -webkit-font-smoothing: subpixel-antialiased; } #container { width:580px; padding:10px; margin:0 auto; position:relative; z-index:0; } #example { width:600px; height:350px; position:relative; } #ribbon { position:absolute; top:-3px; left:-15px; z-index:500; } #frame { position:absolute; z-index:0; width:739px; height:341px; top:-3px; left:-80px; } /* Slideshow */ #slides { position:absolute; top:15px; left:4px; z-index:100; } /* Slides container Important: Set the width of your slides container Set to display none, prevents content flash */ .slides_container { width:570px; overflow:hidden; position:relative; display:none; } /* Each slide Important: Set the width of your slides If height not specified height will be set by the slide content Set to display block */ .slides_container div.slide { width:570px; height:270px; display:block; } /* Next/prev buttons */ #slides .next,#slides .prev { position:absolute; top:107px; left:-39px; width:24px; height:43px; display:block; z-index:101; } #slides .next { left:585px; } /* Pagination */ .pagination { margin:26px auto 0; width:100px; } .pagination li { float:left; margin:0 1px; list-style:none; } .pagination li a { display:block; width:12px; height:0; padding-top:12px; background-image:url(../img/pagination.png); background-position:0 0; float:left; overflow:hidden; } .pagination li.current a { background-position:0 -12px; } /* Caption */ .caption { z-index:500; position:absolute; bottom:-35px; left:0; height:30px; padding:5px 20px 0 20px; background:#000; background:rgba(0,0,0,.5); width:540px; font-size:1.3em; line-height:1.33; color:#fff; border-top:1px solid #000; text-shadow:none; } /* Footer */ #footer { text-align:center; width:580px; margin-top:9px; padding:4.5px 0 18px; border-top:1px solid #dfdfdf; } #footer p { margin:4.5px 0; font-size:1.0em; } /* Anchors */ a:link,a:visited { color:#599100; text-decoration:none; } a:hover,a:active { color:#599100; text-decoration:underline; }jquery-goodies-8/slides/examples/images-with-captions/index.html000066400000000000000000000111361207406311000253170ustar00rootroot00000000000000 Slides, A Slideshow Plugin for jQuery
    New Ribbon
    Slide 1

    Happy Bokeh Thursday!

    Slide 2

    Taxi

    Slide 3

    Happy Bokeh raining Day

    Slide 4

    We Eat Light

    Slide 5

    “I must go down to the sea again, to the lonely sea and the sky...”

    Slide 6

    twelve.inch

    Slide 7

    Save my love for loneliness

    Example Frame
    jquery-goodies-8/slides/examples/multiple/000077500000000000000000000000001207406311000211175ustar00rootroot00000000000000jquery-goodies-8/slides/examples/multiple/index.html000066400000000000000000000151341207406311000231200ustar00rootroot00000000000000 Slides, A Slideshow Plugin for jQuery

    Slide 1

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Slide 2

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Slide 3

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Slide 4

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.


    Slide 1

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Slide 2

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Slide 3

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Slide 4

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.


    Slide 1

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Slide 2

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Slide 3

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Slide 4

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    jquery-goodies-8/slides/source/000077500000000000000000000000001207406311000167465ustar00rootroot00000000000000jquery-goodies-8/slides/source/slides.jquery.js000066400000000000000000000441111207406311000221060ustar00rootroot00000000000000/* * Slides, A Slideshow Plugin for jQuery * Intructions: http://slidesjs.com * By: Nathan Searles, http://nathansearles.com * Version: 1.1.9 * Updated: September 5th, 2011 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ (function($){ $.fn.slides = function( option ) { // override defaults with specified option option = $.extend( {}, $.fn.slides.option, option ); return this.each(function(){ // wrap slides in control container, make sure slides are block level $('.' + option.container, $(this)).children().wrapAll('
    '); var elem = $(this), control = $('.slides_control',elem), total = control.children().size(), width = control.children().outerWidth(), height = control.children().outerHeight(), start = option.start - 1, effect = option.effect.indexOf(',') < 0 ? option.effect : option.effect.replace(' ', '').split(',')[0], paginationEffect = option.effect.indexOf(',') < 0 ? effect : option.effect.replace(' ', '').split(',')[1], next = 0, prev = 0, number = 0, current = 0, loaded, active, clicked, position, direction, imageParent, pauseTimeout, playInterval; // is there only one slide? if (total < 2) { // Fade in .slides_container $('.' + option.container, $(this)).fadeIn(option.fadeSpeed, option.fadeEasing, function(){ // let the script know everything is loaded loaded = true; // call the loaded funciton option.slidesLoaded(); }); // Hide the next/previous buttons $('.' + option.next + ', .' + option.prev).fadeOut(0); return false; } // animate slides function animate(direction, effect, clicked) { if (!active && loaded) { active = true; // start of animation option.animationStart(current + 1); switch(direction) { case 'next': // change current slide to previous prev = current; // get next from current + 1 next = current + 1; // if last slide, set next to first slide next = total === next ? 0 : next; // set position of next slide to right of previous position = width*2; // distance to slide based on width of slides direction = -width*2; // store new current slide current = next; break; case 'prev': // change current slide to previous prev = current; // get next from current - 1 next = current - 1; // if first slide, set next to last slide next = next === -1 ? total-1 : next; // set position of next slide to left of previous position = 0; // distance to slide based on width of slides direction = 0; // store new current slide current = next; break; case 'pagination': // get next from pagination item clicked, convert to number next = parseInt(clicked,10); // get previous from pagination item with class of current prev = $('.' + option.paginationClass + ' li.'+ option.currentClass +' a', elem).attr('href').match('[^#/]+$'); // if next is greater then previous set position of next slide to right of previous if (next > prev) { position = width*2; direction = -width*2; } else { // if next is less then previous set position of next slide to left of previous position = 0; direction = 0; } // store new current slide current = next; break; } // fade animation if (effect === 'fade') { // fade animation with crossfade if (option.crossfade) { // put hidden next above current control.children(':eq('+ next +')', elem).css({ zIndex: 10 // fade in next }).fadeIn(option.fadeSpeed, option.fadeEasing, function(){ if (option.autoHeight) { // animate container to height of next control.animate({ height: control.children(':eq('+ next +')', elem).outerHeight() }, option.autoHeightSpeed, function(){ // hide previous control.children(':eq('+ prev +')', elem).css({ display: 'none', zIndex: 0 }); // reset z index control.children(':eq('+ next +')', elem).css({ zIndex: 0 }); // end of animation option.animationComplete(next + 1); active = false; }); } else { // hide previous control.children(':eq('+ prev +')', elem).css({ display: 'none', zIndex: 0 }); // reset zindex control.children(':eq('+ next +')', elem).css({ zIndex: 0 }); // end of animation option.animationComplete(next + 1); active = false; } }); } else { // fade animation with no crossfade control.children(':eq('+ prev +')', elem).fadeOut(option.fadeSpeed, option.fadeEasing, function(){ // animate to new height if (option.autoHeight) { control.animate({ // animate container to height of next height: control.children(':eq('+ next +')', elem).outerHeight() }, option.autoHeightSpeed, // fade in next slide function(){ control.children(':eq('+ next +')', elem).fadeIn(option.fadeSpeed, option.fadeEasing); }); } else { // if fixed height control.children(':eq('+ next +')', elem).fadeIn(option.fadeSpeed, option.fadeEasing, function(){ // fix font rendering in ie, lame if($.browser.msie) { $(this).get(0).style.removeAttribute('filter'); } }); } // end of animation option.animationComplete(next + 1); active = false; }); } // slide animation } else { // move next slide to right of previous control.children(':eq('+ next +')').css({ left: position, display: 'block' }); // animate to new height if (option.autoHeight) { control.animate({ left: direction, height: control.children(':eq('+ next +')').outerHeight() },option.slideSpeed, option.slideEasing, function(){ control.css({ left: -width }); control.children(':eq('+ next +')').css({ left: width, zIndex: 5 }); // reset previous slide control.children(':eq('+ prev +')').css({ left: width, display: 'none', zIndex: 0 }); // end of animation option.animationComplete(next + 1); active = false; }); // if fixed height } else { // animate control control.animate({ left: direction },option.slideSpeed, option.slideEasing, function(){ // after animation reset control position control.css({ left: -width }); // reset and show next control.children(':eq('+ next +')').css({ left: width, zIndex: 5 }); // reset previous slide control.children(':eq('+ prev +')').css({ left: width, display: 'none', zIndex: 0 }); // end of animation option.animationComplete(next + 1); active = false; }); } } // set current state for pagination if (option.pagination) { // remove current class from all $('.'+ option.paginationClass +' li.' + option.currentClass, elem).removeClass(option.currentClass); // add current class to next $('.' + option.paginationClass + ' li:eq('+ next +')', elem).addClass(option.currentClass); } } } // end animate function function stop() { // clear interval from stored id clearInterval(elem.data('interval')); } function pause() { if (option.pause) { // clear timeout and interval clearTimeout(elem.data('pause')); clearInterval(elem.data('interval')); // pause slide show for option.pause amount pauseTimeout = setTimeout(function() { // clear pause timeout clearTimeout(elem.data('pause')); // start play interval after pause playInterval = setInterval( function(){ animate("next", effect); },option.play); // store play interval elem.data('interval',playInterval); },option.pause); // store pause interval elem.data('pause',pauseTimeout); } else { // if no pause, just stop stop(); } } // 2 or more slides required if (total < 2) { return; } // error corection for start slide if (start < 0) { start = 0; } if (start > total) { start = total - 1; } // change current based on start option number if (option.start) { current = start; } // randomizes slide order if (option.randomize) { control.randomize(); } // make sure overflow is hidden, width is set $('.' + option.container, elem).css({ overflow: 'hidden', // fix for ie position: 'relative' }); // set css for slides control.children().css({ position: 'absolute', top: 0, left: control.children().outerWidth(), zIndex: 0, display: 'none' }); // set css for control div control.css({ position: 'relative', // size of control 3 x slide width width: (width * 3), // set height to slide height height: height, // center control to slide left: -width }); // show slides $('.' + option.container, elem).css({ display: 'block' }); // if autoHeight true, get and set height of first slide if (option.autoHeight) { control.children().css({ height: 'auto' }); control.animate({ height: control.children(':eq('+ start +')').outerHeight() },option.autoHeightSpeed); } // checks if image is loaded if (option.preload && control.find('img:eq(' + start + ')').length) { // adds preload image $('.' + option.container, elem).css({ background: 'url(' + option.preloadImage + ') no-repeat 50% 50%' }); // gets image src, with cache buster var img = control.find('img:eq(' + start + ')').attr('src') + '?' + (new Date()).getTime(); // check if the image has a parent if ($('img', elem).parent().attr('class') != 'slides_control') { // If image has parent, get tag name imageParent = control.children(':eq(0)')[0].tagName.toLowerCase(); } else { // Image doesn't have parent, use image tag name imageParent = control.find('img:eq(' + start + ')'); } // checks if image is loaded control.find('img:eq(' + start + ')').attr('src', img).load(function() { // once image is fully loaded, fade in control.find(imageParent + ':eq(' + start + ')').fadeIn(option.fadeSpeed, option.fadeEasing, function(){ $(this).css({ zIndex: 5 }); // removes preload image $('.' + option.container, elem).css({ background: '' }); // let the script know everything is loaded loaded = true; // call the loaded funciton option.slidesLoaded(); }); }); } else { // if no preloader fade in start slide control.children(':eq(' + start + ')').fadeIn(option.fadeSpeed, option.fadeEasing, function(){ // let the script know everything is loaded loaded = true; // call the loaded funciton option.slidesLoaded(); }); } // click slide for next if (option.bigTarget) { // set cursor to pointer control.children().css({ cursor: 'pointer' }); // click handler control.children().click(function(){ // animate to next on slide click animate('next', effect); return false; }); } // pause on mouseover if (option.hoverPause && option.play) { control.bind('mouseover',function(){ // on mouse over stop stop(); }); control.bind('mouseleave',function(){ // on mouse leave start pause timeout pause(); }); } // generate next/prev buttons if (option.generateNextPrev) { $('.' + option.container, elem).after('Prev'); $('.' + option.prev, elem).after('Next'); } // next button $('.' + option.next ,elem).click(function(e){ e.preventDefault(); if (option.play) { pause(); } animate('next', effect); }); // previous button $('.' + option.prev, elem).click(function(e){ e.preventDefault(); if (option.play) { pause(); } animate('prev', effect); }); // generate pagination if (option.generatePagination) { // create unordered list if (option.prependPagination) { elem.prepend('
      '); } else { elem.append('
        '); } // for each slide create a list item and link control.children().each(function(){ $('.' + option.paginationClass, elem).append('
      • '+ (number+1) +'
      • '); number++; }); } else { // if pagination exists, add href w/ value of item number to links $('.' + option.paginationClass + ' li a', elem).each(function(){ $(this).attr('href', '#' + number); number++; }); } // add current class to start slide pagination $('.' + option.paginationClass + ' li:eq('+ start +')', elem).addClass(option.currentClass); // click handling $('.' + option.paginationClass + ' li a', elem ).click(function(){ // pause slideshow if (option.play) { pause(); } // get clicked, pass to animate function clicked = $(this).attr('href').match('[^#/]+$'); // if current slide equals clicked, don't do anything if (current != clicked) { animate('pagination', paginationEffect, clicked); } return false; }); // click handling $('a.link', elem).click(function(){ // pause slideshow if (option.play) { pause(); } // get clicked, pass to animate function clicked = $(this).attr('href').match('[^#/]+$') - 1; // if current slide equals clicked, don't do anything if (current != clicked) { animate('pagination', paginationEffect, clicked); } return false; }); if (option.play) { // set interval playInterval = setInterval(function() { animate('next', effect); }, option.play); // store interval id elem.data('interval',playInterval); } }); }; // default options $.fn.slides.option = { preload: false, // boolean, Set true to preload images in an image based slideshow preloadImage: '/img/loading.gif', // string, Name and location of loading image for preloader. Default is "/img/loading.gif" container: 'slides_container', // string, Class name for slides container. Default is "slides_container" generateNextPrev: false, // boolean, Auto generate next/prev buttons next: 'next', // string, Class name for next button prev: 'prev', // string, Class name for previous button pagination: true, // boolean, If you're not using pagination you can set to false, but don't have to generatePagination: true, // boolean, Auto generate pagination prependPagination: false, // boolean, prepend pagination paginationClass: 'pagination', // string, Class name for pagination currentClass: 'current', // string, Class name for current class fadeSpeed: 350, // number, Set the speed of the fading animation in milliseconds fadeEasing: '', // string, must load jQuery's easing plugin before http://gsgd.co.uk/sandbox/jquery/easing/ slideSpeed: 350, // number, Set the speed of the sliding animation in milliseconds slideEasing: '', // string, must load jQuery's easing plugin before http://gsgd.co.uk/sandbox/jquery/easing/ start: 1, // number, Set the speed of the sliding animation in milliseconds effect: 'slide', // string, '[next/prev], [pagination]', e.g. 'slide, fade' or simply 'fade' for both crossfade: false, // boolean, Crossfade images in a image based slideshow randomize: false, // boolean, Set to true to randomize slides play: 0, // number, Autoplay slideshow, a positive number will set to true and be the time between slide animation in milliseconds pause: 0, // number, Pause slideshow on click of next/prev or pagination. A positive number will set to true and be the time of pause in milliseconds hoverPause: false, // boolean, Set to true and hovering over slideshow will pause it autoHeight: false, // boolean, Set to true to auto adjust height autoHeightSpeed: 350, // number, Set auto height animation time in milliseconds bigTarget: false, // boolean, Set to true and the whole slide will link to next slide on click animationStart: function(){}, // Function called at the start of animation animationComplete: function(){}, // Function called at the completion of animation slidesLoaded: function() {} // Function is called when slides is fully loaded }; // Randomize slide order on load $.fn.randomize = function(callback) { function randomizeOrder() { return(Math.round(Math.random())-0.5); } return($(this).each(function() { var $this = $(this); var $children = $this.children(); var childCount = $children.length; if (childCount > 1) { $children.hide(); var indices = []; for (i=0;i= (c.totalPages-1)) { c.page = (c.totalPages-1); } moveToPage(table); } function moveToPrevPage(table) { var c = table.config; c.page--; if(c.page <= 0) { c.page = 0; } moveToPage(table); } function moveToPage(table) { var c = table.config; if(c.page < 0 || c.page > (c.totalPages-1)) { c.page = 0; } renderTable(table,c.rowsCopy); } function renderTable(table,rows) { var c = table.config; var l = rows.length; var s = (c.page * c.size); var e = (s + c.size); if(e > rows.length ) { e = rows.length; } var tableBody = $(table.tBodies[0]); // clear the table body $.tablesorter.clearTableBody(table); for(var i = s; i < e; i++) { //tableBody.append(rows[i]); var o = rows[i]; var l = o.length; for(var j=0; j < l; j++) { tableBody[0].appendChild(o[j]); } } fixPosition(table,tableBody); $(table).trigger("applyWidgets"); if( c.page >= c.totalPages ) { moveToLastPage(table); } updatePageDisplay(c); } this.appender = function(table,rows) { var c = table.config; c.rowsCopy = rows; c.totalRows = rows.length; c.totalPages = Math.ceil(c.totalRows / c.size); renderTable(table,rows); }; this.defaults = { size: 10, offset: 0, page: 0, totalRows: 0, totalPages: 0, container: null, cssNext: '.next', cssPrev: '.prev', cssFirst: '.first', cssLast: '.last', cssPageDisplay: '.pagedisplay', cssPageSize: '.pagesize', seperator: "/", positionFixed: true, appender: this.appender }; this.construct = function(settings) { return this.each(function() { config = $.extend(this.config, $.tablesorterPager.defaults, settings); var table = this, pager = config.container; $(this).trigger("appendCache"); config.size = parseInt($(".pagesize",pager).val()); $(config.cssFirst,pager).click(function() { moveToFirstPage(table); return false; }); $(config.cssNext,pager).click(function() { moveToNextPage(table); return false; }); $(config.cssPrev,pager).click(function() { moveToPrevPage(table); return false; }); $(config.cssLast,pager).click(function() { moveToLastPage(table); return false; }); $(config.cssPageSize,pager).change(function() { setPageSize(table,parseInt($(this).val())); return false; }); }); }; } }); // extend plugin scope $.fn.extend({ tablesorterPager: $.tablesorterPager.construct }); })(jQuery); jquery-goodies-8/tablesorter/changelog000066400000000000000000000023151207406311000203640ustar00rootroot00000000000000tablesorter changelog ====================== http://tablesorter.com Changes in version 2.0.3 (2008-03-17) ------------------------------------- Bug fixes * Missing semicolon, broke the minified version Changes in version 2.0.2 (2008-03-14) ------------------------------------- General * Added support for the new metadata plugin * Added support for jQuery 1.2.3 * Added support for decimal numbers and negative and positive digits * Updated documenation and website with new examples * Removed packed version. Bug fixes * Sort force (Thanks to David Lynch) Changes in version 2.0.1 (2007-09-17) ------------------------------------- General * Removed the need for Dimensions plugin when using the pagnation plugin thanks to offset being included in the jQuery 1.2 core. * Added support for jQuery 1.2 * Added new Minified version of tablesorter * Updated documenation and website with new examples Bug fixes * If row values are identical the original order is kept (Thanks to David hull) * If thead includes a table $('tbody:first', table) breaks (Thanks to David Hull) Speed improvements: * appendToTable, setting innerHTML to "" before appending new content to table body. * zebra widget. (Thanks to James Dempster)jquery-goodies-8/tablesorter/docs/000077500000000000000000000000001207406311000174415ustar00rootroot00000000000000jquery-goodies-8/tablesorter/docs/assets/000077500000000000000000000000001207406311000207435ustar00rootroot00000000000000jquery-goodies-8/tablesorter/docs/assets/ajax-content.html000066400000000000000000000013751207406311000242320ustar00rootroot00000000000000 Peter Parker 28 $9.99 20% Jul 6, 2006 8:14 AM John Hood 33 $19.99 25% Dec 10, 2002 5:14 AM Clark Kent 18 $15.89 44% Jan 12, 2003 11:14 AM Bruce Almighty 45 $153.19 44% Jan 18, 2001 9:12 AM Bruce Evans 22 $13.19 11% Jan 18, 2007 9:12 AM jquery-goodies-8/tablesorter/docs/css/000077500000000000000000000000001207406311000202315ustar00rootroot00000000000000jquery-goodies-8/tablesorter/docs/css/jq.css000066400000000000000000000037211207406311000213600ustar00rootroot00000000000000body,div,h1{font-family:'trebuchet ms', verdana, arial;margin:0;padding:0;} body{background-color:#fff;color:#333;font-size:small;margin:0;padding:0;} h1{font-size:large;font-weight:400;margin:0;} h2{color:#333;font-size:small;font-weight:400;margin:0;} pre{background-color:#eee;border:1px solid #ddd;border-left-width:5px;color:#333;font-size:small;overflow-x:auto;padding:15px;} pre.normal{background-color:transparent;border:none;border-left-width:0;overflow-x:auto;} #logo{background:url(images/jq.png);display:block;float:right;height:31px;margin-right:10px;margin-top:10px;width:110px;} #main{margin:0 20px 20px;padding:0 15px 15px 0;} #content{padding:20px;} #busy{background-color:#e95555;border:1px ridge #ccc;color:#eee;display:none;padding:3px;position:absolute;right:7px;top:7px;} hr{height:1px;} code{font-size:108%;font-style:normal;padding:0;} ul{color:#333;list-style:square;} #banner{margin:20px;padding-bottom:10px;text-align:left;} #banner *{color:#232121;font-family:Georgia, Palatino, Times New Roman;font-size:30px;font-style:normal;font-weight:400;margin:0;padding:0;} #banner h1{display:block;float:left;} #banner h1 em{color:#6cf;} #banner h2{float:right;font-size:26px;margin:10px 10px -10px -10px;} #banner h3{clear:both;display:block;font-size:12px;margin-top:-20px;} #banner a{border-top:1px solid #888;display:block;font-size:14px;margin:5px 0 0;padding:10px 0 0;text-align:right;width:auto;} a.external{background-image:url(../img/external.png);background-position:center right;background-repeat:no-repeat;padding-right:12px;} form{font-size:10pt;margin-bottom:20px;width:auto;} form fieldset{padding:10px;text-align:left;width:140px;} div#main h1{border-bottom:1px solid #CDCDCD;display:block;margin-top:20px;padding:10px 0 2px;} table#tablesorter-demo {margin: 10px 0 0 0;} table#options *{font-size:small;} p.tip em {padding: 2px; background-color: #6cf; color: #FFF;} p.tip.update em {background-color: #FF0000;} div.digg {float: right;}jquery-goodies-8/tablesorter/docs/example-ajax.html000066400000000000000000000062421207406311000227070ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Appending table data with ajax

        Demo

        First Name Last Name Age Total Discount Date
        Peter Parker 28 $9.99 20% Jul 6, 2006 8:14 AM
        John Hood 33 $19.99 25% Dec 10, 2002 5:14 AM
        Clark Kent 18 $15.89 44% Jan 12, 2003 11:14 AM
        Bruce Almighty 45 $153.19 44% Jan 18, 2001 9:12 AM
        Bruce Evans 22 $13.19 11% Jan 18, 2007 9:12 AM
        Append new table data

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-empty-table.html000066400000000000000000000054121207406311000242050ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Initializing tablesorter on a empty table

        Demo

        First Name Last Name Age Total Discount Date
        Append new table data

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-extending-defaults.html000066400000000000000000000056761207406311000255700ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Extending default options

        Demo

        First Name Last Name Age Total Discount Date
        Peter Parker 28 $9.99 20% Jul 6, 2006 8:14 AM
        John Hood 33 $19.99 25% Dec 10, 2002 5:14 AM
        Clark Kent 18 $15.89 44% Jan 12, 2003 11:14 AM
        Bruce Almighty 45 $153.19 44% Jan 18, 2001 9:12 AM
        Bruce Evans 22 $13.19 11% Jan 18, 2007 9:12 AM

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-meta-headers.html000066400000000000000000000055731207406311000243310ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Disable headers using metadata

        Demo

        First Name Last Name Age Total Discount Date
        Peter Parker 28 $9.99 20% Jul 6, 2006 8:14 AM
        John Hood 33 $19.99 25% Dec 10, 2002 5:14 AM
        Clark Kent 18 $15.89 44% Jan 12, 2003 11:14 AM
        Bruce Almighty 45 $153.19 44% Jan 18, 2001 9:12 AM
        Bruce Evans 22 $13.19 11% Jan 18, 2007 9:12 AM

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-meta-parsers.html000066400000000000000000000054371207406311000243740ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Setting column parser using metadata

        Demo

        First Name Last Name Age Total Discount Date
        Peter Parker 28 $9.99 20% Jul 6, 2006 8:14 AM
        John Hood 33 $19.99 25% Dec 10, 2002 5:14 AM
        Clark Kent 18 $15.89 44% Jan 12, 2003 11:14 AM
        Bruce Almighty 45 $153.19 44% Jan 18, 2001 9:12 AM
        Bruce Evans 22 $13.19 11% Jan 18, 2007 9:12 AM

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-meta-sort-list.html000066400000000000000000000056141207406311000246520ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Setting initial sorting order with metadata

        Demo

        First Name Last Name Age Total Discount Date
        Peter Parker 28 $9.99 20% Jul 6, 2006 8:14 AM
        John Hood 33 $19.99 25% Dec 10, 2002 5:14 AM
        Clark Kent 18 $15.89 44% Jan 12, 2003 11:14 AM
        Bruce Almighty 45 $153.19 44% Jan 18, 2001 9:12 AM
        Bruce Evans 22 $13.19 11% Jan 18, 2007 9:12 AM

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-option-debug.html000066400000000000000000000056241207406311000243630ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Enabling debug mode

        NOTE! If firebug is installed the debuging information will be displayed in the firebug console.

        Demo

        First Name Last Name Age Total Discount Date
        Peter Parker 28 $9.99 20% Jul 6, 2006 8:14 AM
        John Hood 33 $19.99 25% Dec 10, 2002 5:14 AM
        Clark Kent 18 $15.89 44% Jan 12, 2003 11:14 AM
        Bruce Almighty 45 $153.19 44% Jan 18, 2001 9:12 AM
        Bruce Evans 22 $13.19 11% Jan 18, 2007 9:12 AM

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-option-digits.html000066400000000000000000000051571207406311000245610ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Enabling debug mode

        Demo

        First Name Last Name Age Total Discount Diff
        Peter Parker 28 9.99 20.3% +3.0
        John Hood 33 19.99 25.1% -7
        Clark Kent 18 15.89 44.2% -15
        Bruce Almighty 45 153.19 44% +19
        Bruce Evans 56 153.19 23% +9

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-option-sort-force.html000066400000000000000000000053441207406311000253570ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Force a default sorting order

        Demo

        First Name Last Name Age Total Discount Date
        Peter Parker 28 $9.99 20% Jul 6, 2006 8:14 AM
        John Hood 33 $19.99 25% Dec 10, 2002 5:14 AM
        Clark Kent 18 $15.89 44% Jan 12, 2003 11:14 AM
        Bruce Almighty 45 $153.19 44% Jan 18, 2001 9:12 AM
        Bruce Evans 22 $13.19 11% Jan 18, 2007 9:12 AM

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-option-sort-key.html000066400000000000000000000055201207406311000250450ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Change multi-column sorting key

        Demo

        First Name Last Name Age Total Discount Date
        Peter Parker 28 $9.99 20% Jul 6, 2006 8:14 AM
        John Hood 33 $19.99 25% Dec 10, 2002 5:14 AM
        Clark Kent 18 $15.89 44% Jan 12, 2003 11:14 AM
        Bruce Almighty 45 $153.19 44% Jan 18, 2001 9:12 AM
        Bruce Evans 22 $13.19 11% Jan 18, 2007 9:12 AM

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-option-sort-list.html000066400000000000000000000054731207406311000252370ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Set a initial sorting order

        Demo

        First Name Last Name Age Total Discount Date
        Peter Parker 28 $9.99 20% Jul 6, 2006 8:14 AM
        John Hood 33 $19.99 25% Dec 10, 2002 5:14 AM
        Clark Kent 18 $15.89 44% Jan 12, 2003 11:14 AM
        Bruce Almighty 45 $153.19 44% Jan 18, 2001 9:12 AM
        Bruce Evans 22 $13.19 11% Jan 18, 2007 9:12 AM

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-option-sort-order.html000066400000000000000000000054451207406311000253760ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Set a initi <link rel="stylesheet" href="css/jq.css" type="text/css" media="print, projection, screen" /> <link rel="stylesheet" href="../themes/blue/style.css" type="text/css" id="" media="print, projection, screen" /> <script type="text/javascript" src="../jquery-latest.js"></script> <script type="text/javascript" src="../jquery.tablesorter.js"></script> <script type="text/javascript" src="../addons/pager/jquery.tablesorter.pager.js"></script> <script type="text/javascript" src="js/chili/chili-1.8b.js"></script> <script type="text/javascript" src="js/docs.js"></script> <script type="text/javascript" src="js/examples.js"></script> <script type="text/javascript" id="js">$(document).ready(function() { // call the tablesorter plugin $("table").tablesorter({ // change the default sorting order from 'asc' to 'desc' sortInitialOrder: 'desc' }); }); </script> </head> <body> <div id="banner"> <h1>table<em>sorter</em></h1> <h2>Set a initial sorting order</h2> <h3>Flexible client-side table sorting</h3> <a href="index.html">Back to documentation</a> </div> <div id="main"> <h1>Demo</h1> <div id="demo"> <table cellspacing="1" class="tablesorter"> <thead> <tr> <th>First Name</th> <th>Last Name</th> <th>Age</th> <th>Total</th> <th>Discount</th> <th>Date</th> </tr> </thead> <tbody> <tr> <td>Peter</td> <td>Parker</td> <td>28</td> <td>$9.99</td> <td>20%</td> <td>Jul 6, 2006 8:14 AM</td> </tr> <tr> <td>John</td> <td>Hood</td> <td>33</td> <td>$19.99</td> <td>25%</td> <td>Dec 10, 2002 5:14 AM</td> </tr> <tr> <td>Clark</td> <td>Kent</td> <td>18</td> <td>$15.89</td> <td>44%</td> <td>Jan 12, 2003 11:14 AM</td> </tr> <tr> <td>Bruce</td> <td>Almighty</td> <td>45</td> <td>$153.19</td> <td>44%</td> <td>Jan 18, 2001 9:12 AM</td> </tr> <tr> <td>Bruce</td> <td>Evans</td> <td>22</td> <td>$13.19</td> <td>11%</td> <td>Jan 18, 2007 9:12 AM</td> </tr> </tbody> </table> </div> <h1>Javascript</h1> <div id="javascript"> <pre class="javascript"></pre> </div> <h1>HTML</h1> <div id="html"> <pre class="html"></pre> </div> </div> <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script> <script type="text/javascript"> _uacct = "UA-2189649-2"; urchinTracker(); </script> </body> </html> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jquery-goodies-8/tablesorter/docs/example-option-text-extraction.html�������������������������������0000664�0000000�0000000�00000005334�12074063110�0026435�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us"> <head> <title>jQuery plugin: Tablesorter 2.0 - Dealing with markup inside cells

        Demo

        First Name Last Name Age Total Discount Date
        Peter Parker 28 $9.99 20% Jul 6, 2006 8:14 AM
        John Hood 33 $19.99 25% Dec 10, 2002 5:14 AM

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-options-headers.html000066400000000000000000000060741207406311000250730ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Disable headers using options

        Demo

        First Name Last Name Age Total Discount Date
        Peter Parker 28 $9.99 20% Jul 6, 2006 8:14 AM
        John Hood 33 $19.99 25% Dec 10, 2002 5:14 AM
        Clark Kent 18 $15.89 44% Jan 12, 2003 11:14 AM
        Bruce Almighty 45 $153.19 44% Jan 18, 2001 9:12 AM
        Bruce Evans 22 $13.19 11% Jan 18, 2007 9:12 AM

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-pager.html000066400000000000000000003301501207406311000230600ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Pager plugin

        Javascript

        $(document).ready(function() {
        	$("table")
        	.tablesorter({widthFixed: true, widgets: ['zebra']})
        	.tablesorterPager({container: $("#pager")});
        });
        

        Demo

        Name Major Sex English Japanese Calculus Geometry
        Name Major Sex English Japanese Calculus Geometry
        Student01 Languages male 80 70 75 80
        Student02 Mathematics male 90 88 100 90
        Student03 Languages female 85 95 80 85
        Student04 Languages male 60 55 100 100
        Student05 Languages female 68 80 95 80
        Student06 Mathematics male 100 99 100 90
        Student07 Mathematics male 85 68 90 90
        Student08 Languages male 100 90 90 85
        Student09 Mathematics male 80 50 65 75
        Student10 Languages male 85 100 100 90
        Student11 Languages male 86 85 100 100
        Student12 Mathematics female 100 75 70 85
        Student13 Languages female 100 80 100 90
        Student14 Languages female 50 45 55 90
        Student15 Languages male 95 35 100 90
        Student16 Languages female 100 50 30 70
        Student17 Languages female 80 100 55 65
        Student18 Mathematics male 30 49 55 75
        Student19 Languages male 68 90 88 70
        Student20 Mathematics male 40 45 40 80
        Student21 Languages male 50 45 100 100
        Student22 Mathematics male 100 99 100 90
        Student23 Languages female 85 80 80 80
        student23Mathematicsmale8277079
        student24Languagesfemale100911382
        student25Mathematicsmale22968253
        student26Languagesfemale37295659
        student27Mathematicsmale86826923
        student28Languagesfemale4425431
        student29Mathematicsmale77472238
        student30Languagesfemale19352310
        student31Mathematicsmale90271750
        student32Languagesfemale60753338
        student33Mathematicsmale4313715
        student34Languagesfemale77978144
        student35Mathematicsmale5815195
        student36Languagesfemale70617094
        student37Mathematicsmale6036184
        student38Languagesfemale6339011
        student39Mathematicsmale50463238
        student40Languagesfemale5175253
        student41Mathematicsmale43342878
        student42Languagesfemale11896095
        student43Mathematicsmale48921888
        student44Languagesfemale8225973
        student45Mathematicsmale91733739
        student46Languagesfemale481210
        student47Mathematicsmale8910611
        student48Languagesfemale90322118
        student49Mathematicsmale42494972
        student50Languagesfemale56376754
        student51Mathematicsmale48315563
        student52Languagesfemale38917174
        student53Mathematicsmale26385100
        student54Languagesfemale75811623
        student55Mathematicsmale65521553
        student56Languagesfemale23527994
        student57Mathematicsmale80226112
        student58Languagesfemale5357979
        student59Mathematicsmale96323517
        student60Languagesfemale16766527
        student61Mathematicsmale20572223
        student62Languagesfemale19838778
        student63Mathematicsmale258330
        student64Languagesfemale021993
        student65Mathematicsmale20861396
        student66Languagesfemale28358757
        student67Mathematicsmale36502910
        student68Languagesfemale6090966
        student69Mathematicsmale34614398
        student70Languagesfemale13379183
        student71Mathematicsmale47805782
        student72Languagesfemale69433737
        student73Mathematicsmale54609421
        student74Languagesfemale71143446
        student75Mathematicsmale89963117
        student76Languagesfemale28482994
        student77Mathematicsmale100652024
        student78Languagesfemale11969033
        student79Mathematicsmale53559339
        student80Languagesfemale11008444
        student81Mathematicsmale63789643
        student82Languagesfemale41698235
        student83Mathematicsmale9498139
        student84Languagesfemale94729177
        student85Mathematicsmale71324525
        student86Languagesfemale9896437
        student87Mathematicsmale8917367
        student88Languagesfemale43416879
        student89Mathematicsmale7382237
        student90Languagesfemale94839337
        student91Mathematicsmale8284261
        student92Languagesfemale46413069
        student93Mathematicsmale47198583
        student94Languagesfemale39146462
        student95Mathematicsmale71314628
        student96Languagesfemale90944540
        student97Mathematicsmale468925
        student98Languagesfemale41434799
        student99Mathematicsmale71908973
        student100Languagesfemale31641856
        student101Mathematicsmale52136999
        student102Languagesfemale86398318
        student103Mathematicsmale23659880
        student104Languagesfemale781005766
        student105Mathematicsmale69214397
        student106Languagesfemale2727838
        student107Mathematicsmale86964634
        student108Languagesfemale13846664
        student109Mathematicsmale35959881
        student110Languagesfemale30286254
        student111Mathematicsmale60313585
        student112Languagesfemale19811969
        student113Mathematicsmale6659854
        student114Languagesfemale38804016
        student115Mathematicsmale5849697
        student116Languagesfemale59976954
        student117Mathematicsmale0347949
        student118Languagesfemale1871285
        student119Mathematicsmale9387759
        student120Languagesfemale42232690
        student121Mathematicsmale17396689
        student122Languagesfemale26759018
        student123Mathematicsmale34237780
        student124Languagesfemale5267742
        student125Mathematicsmale5628581
        student126Languagesfemale51356744
        student127Mathematicsmale64644434
        student128Languagesfemale67917982
        student129Mathematicsmale4261579
        student130Languagesfemale7210369
        student131Mathematicsmale9477511
        student132Languagesfemale27958548
        student133Mathematicsmale92114061
        student134Languagesfemale4185660
        student135Mathematicsmale8422652
        student136Languagesfemale7604721
        student137Mathematicsmale51813090
        student138Languagesfemale5861673
        student139Mathematicsmale48383731
        student140Languagesfemale33265660
        student141Mathematicsmale84842975
        student142Languagesfemale7235654
        student143Mathematicsmale31427082
        student144Languagesfemale94875035
        student145Mathematicsmale91528026
        student146Languagesfemale78657979
        student147Mathematicsmale50905971
        student148Languagesfemale15686633
        student149Mathematicsmale17363413
        student150Languagesfemale30956973
        student151Mathematicsmale20534958
        student152Languagesfemale19896060
        student153Mathematicsmale5282203
        student154Languagesfemale66985366
        student155Mathematicsmale5852258
        student156Languagesfemale3443688
        student157Mathematicsmale4309114
        student158Languagesfemale34186731
        student159Mathematicsmale79733452
        student160Languagesfemale15613727
        student161Mathematicsmale74771545
        student162Languagesfemale52621958
        student163Mathematicsmale77602795
        student164Languagesfemale9619357
        student165Mathematicsmale51637519
        student166Languagesfemale32447299
        student167Mathematicsmale82845763
        student168Languagesfemale53128567
        student169Mathematicsmale4916846
        student170Languagesfemale39341665
        student171Mathematicsmale10068884
        student172Languagesfemale14256352
        student173Mathematicsmale74261560
        student174Languagesfemale1158892
        student175Mathematicsmale6247231
        student176Languagesfemale65263242
        student177Mathematicsmale83786924
        student178Languagesfemale14100743
        student179Mathematicsmale2835897
        student180Languagesfemale1483962
        student181Mathematicsmale1442469
        student182Languagesfemale6452722
        student183Mathematicsmale15262785
        student184Languagesfemale9149407
        student185Mathematicsmale87894287
        student186Languagesfemale75766188
        student187Mathematicsmale11486630
        student188Languagesfemale7379272
        student189Mathematicsmale98365815
        student190Languagesfemale8028656
        student191Mathematicsmale3633974
        student192Languagesfemale5923390
        student193Mathematicsmale9461933
        student194Languagesfemale82497242
        student195Mathematicsmale8059830
        student196Languagesfemale89179027
        student197Mathematicsmale4622667
        student198Languagesfemale65757377
        student199Mathematicsmale77975413
        student200Languagesfemale78195796
        student201Mathematicsmale92211180
        student202Languagesfemale45499340
        student203Mathematicsmale74258753
        student204Languagesfemale1571234
        student205Mathematicsmale82979573
        student206Languagesfemale82605898
        student207Mathematicsmale266411100
        student208Languagesfemale6496045
        student209Mathematicsmale96819663
        student210Languagesfemale2439069
        student211Mathematicsmale8664710
        student212Languagesfemale764507
        student213Mathematicsmale59122677
        student214Languagesfemale21259382
        student215Mathematicsmale22186451
        student216Languagesfemale92419828
        student217Mathematicsmale32481417
        student218Languagesfemale62368556
        student219Mathematicsmale33379087
        student220Languagesfemale24436084
        student221Mathematicsmale6593751
        student222Languagesfemale9197576
        student223Mathematicsmale86293227
        student224Languagesfemale63596891
        student225Mathematicsmale57739568
        student226Languagesfemale38545987
        student227Mathematicsmale53627264
        student228Languagesfemale62847273
        student229Mathematicsmale1308358
        student230Languagesfemale35658087
        student231Mathematicsmale76202850
        student232Languagesfemale9176633
        student233Mathematicsmale9229961
        student234Languagesfemale47699839
        student235Mathematicsmale21443882
        student236Languagesfemale19865178
        student237Mathematicsmale28454936
        student238Languagesfemale78194981
        student239Mathematicsmale72694720
        student240Languagesfemale17436656
        student241Mathematicsmale901944
        student242Languagesfemale618251
        student243Mathematicsmale1377213
        student244Languagesfemale8005854
        student245Mathematicsmale8331859
        student246Languagesfemale90992912
        student247Mathematicsmale89238159
        student248Languagesfemale7226283
        student249Mathematicsmale28105047
        student250Languagesfemale8914894
        student251Mathematicsmale15233769
        student252Languagesfemale27821036
        student253Mathematicsmale49456423
        student254Languagesfemale79756374
        student255Mathematicsmale2566475
        student256Languagesfemale36262958
        student257Mathematicsmale17226673
        student258Languagesfemale70919745
        student259Mathematicsmale34307830
        student260Languagesfemale77578677
        student261Mathematicsmale1259687
        student262Languagesfemale11609771
        student263Mathematicsmale12303558
        student264Languagesfemale46152340
        student265Mathematicsmale4481926
        student266Languagesfemale15683215
        student267Mathematicsmale5585098
        student268Languagesfemale42303224
        student269Mathematicsmale781009957
        student270Languagesfemale55338725
        student271Mathematicsmale25972993
        student272Languagesfemale39351843
        student273Mathematicsmale35179958
        student274Languagesfemale86522724
        student275Mathematicsmale97387376
        student276Languagesfemale206198
        student277Mathematicsmale9336947
        student278Languagesfemale423152
        student279Mathematicsmale6118962
        student280Languagesfemale99898794
        student281Mathematicsmale4895900
        student282Languagesfemale60473130
        student283Mathematicsmale64241076
        student284Languagesfemale9937468
        student285Mathematicsmale0986869
        student286Languagesfemale66824959
        student287Mathematicsmale86143717
        student288Languagesfemale27489327
        student289Mathematicsmale8489668
        student290Languagesfemale9902057
        student291Mathematicsmale50967242
        student292Languagesfemale9822792
        student293Mathematicsmale1994287
        student294Languagesfemale9897922
        student295Mathematicsmale75307764
        student296Languagesfemale5198553
        student297Mathematicsmale25958672
        student298Languagesfemale20753735
        student299Mathematicsmale4924111
        student300Languagesfemale2832891
        student301Mathematicsmale4163425
        student302Languagesfemale29167790
        student303Mathematicsmale89415182
        student304Languagesfemale40912434
        student305Mathematicsmale7474978
        student306Languagesfemale6375562
        student307Mathematicsmale30733490
        student308Languagesfemale82919593
        student309Mathematicsmale6247382
        student310Languagesfemale39101257
        student311Mathematicsmale89642067
        student312Languagesfemale56369241
        student313Mathematicsmale99809974
        student314Languagesfemale31796493
        student315Mathematicsmale5327055
        student316Languagesfemale35152960
        student317Mathematicsmale31476960
        student318Languagesfemale88281366
        student319Mathematicsmale65121640
        student320Languagesfemale28171940
        student321Mathematicsmale241004470
        student322Languagesfemale20598352
        student323Mathematicsmale17608291
        student324Languagesfemale95994337
        student325Mathematicsmale30189931
        student326Languagesfemale3478386
        student327Mathematicsmale9863435
        student328Languagesfemale54239846
        student329Mathematicsmale97934518
        student330Languagesfemale2774077
        student331Mathematicsmale9704137
        student332Languagesfemale52377620
        student333Mathematicsmale74186819
        student334Languagesfemale77100339
        student335Mathematicsmale38537718
        student336Languagesfemale18132610
        student337Mathematicsmale90478770
        student338Languagesfemale38493674
        student339Mathematicsmale100641372
        student340Languagesfemale74254152
        student341Mathematicsmale37131613
        student342Languagesfemale24341583
        student343Mathematicsmale2056728
        student344Languagesfemale4522572
        student345Mathematicsmale19117535
        student346Languagesfemale6583115
        student347Mathematicsmale16663611
        student348Languagesfemale1239540
        student349Mathematicsmale752742
        student350Languagesfemale88926055
        student351Mathematicsmale92709145
        student352Languagesfemale74765944
        student353Mathematicsmale63696094
        student354Languagesfemale3685548
        student355Mathematicsmale39962148
        student356Languagesfemale4134275
        student357Mathematicsmale6434733
        student358Languagesfemale95146355
        student359Mathematicsmale701001382
        student360Languagesfemale522410021
        student361Mathematicsmale040869
        student362Languagesfemale024932
        student363Mathematicsmale23108694
        student364Languagesfemale1538649
        student365Mathematicsmale7623310
        student366Languagesfemale35357894
        student367Mathematicsmale294243100
        student368Languagesfemale668510
        student369Mathematicsmale74155683
        student370Languagesfemale7543908
        student371Mathematicsmale4060470
        student372Languagesfemale62421749
        student373Mathematicsmale31464454
        student374Languagesfemale30344787
        student375Mathematicsmale9694152
        student376Languagesfemale85432992
        student377Mathematicsmale7904025
        student378Languagesfemale36407285
        student379Mathematicsmale5368882
        student380Languagesfemale87783879
        student381Mathematicsmale89978338
        student382Languagesfemale21194910
        student383Mathematicsmale47126850
        student384Languagesfemale37124995
        student385Mathematicsmale8408851
        student386Languagesfemale89612748
        student387Mathematicsmale10478761
        student388Languagesfemale1692656
        student389Mathematicsmale57331347
        student390Languagesfemale90357775
        student391Mathematicsmale31474753
        student392Languagesfemale942412
        student393Mathematicsmale6119817
        student394Languagesfemale457577
        student395Mathematicsmale6729212
        student396Languagesfemale516456
        student397Mathematicsmale93147714
        student398Languagesfemale1893427
        student399Mathematicsmale93775791
        student400Languagesfemale67778032
        student401Mathematicsmale5889417
        student402Languagesfemale3056053
        student403Mathematicsmale28253259
        student404Languagesfemale62348164
        student405Mathematicsmale29842623
        student406Languagesfemale7086377
        student407Mathematicsmale8654799
        student408Languagesfemale9381089
        student409Mathematicsmale84214658
        student410Languagesfemale21841849
        student411Mathematicsmale2796340
        student412Languagesfemale9301991
        student413Mathematicsmale31928743
        student414Languagesfemale53259843
        student415Mathematicsmale36758089
        student416Languagesfemale37681254
        student417Mathematicsmale25891253
        student418Languagesfemale922846
        student419Mathematicsmale11286058
        student420Languagesfemale1373517
        student421Mathematicsmale67303885
        student422Languagesfemale68793441
        student423Mathematicsmale72459341
        student424Languagesfemale56464538
        student425Mathematicsmale8621840
        student426Languagesfemale99854119
        student427Mathematicsmale7135389
        student428Languagesfemale22911216
        student429Mathematicsmale1532693
        student430Languagesfemale35463474
        student431Mathematicsmale33839720
        student432Languagesfemale9920326
        student433Mathematicsmale48428318
        student434Languagesfemale4442530
        student435Mathematicsmale78486045
        student436Languagesfemale4757890
        student437Mathematicsmale881210053
        student438Languagesfemale4805160
        student439Mathematicsmale70898516
        student440Languagesfemale71943433
        student441Mathematicsmale68137218
        student442Languagesfemale7539721
        student443Mathematicsmale65366087
        student444Languagesfemale43212434
        student445Mathematicsmale85776528
        student446Languagesfemale61907891
        student447Mathematicsmale9207812
        student448Languagesfemale33306290
        student449Mathematicsmale8616745
        student450Languagesfemale100862423
        student451Mathematicsmale1425645
        student452Languagesfemale86399888
        student453Mathematicsmale72687719
        student454Languagesfemale94523100
        student455Mathematicsmale34678979
        student456Languagesfemale9204745
        student457Mathematicsmale64582698
        student458Languagesfemale439359100
        student459Mathematicsmale82359781
        student460Languagesfemale183524100
        student461Mathematicsmale79804351
        student462Languagesfemale56101767
        student463Mathematicsmale36441485
        student464Languagesfemale2640692
        student465Mathematicsmale59934378
        student466Languagesfemale7884883
        student467Mathematicsmale41378060
        student468Languagesfemale44279777
        student469Mathematicsmale29196482
        student470Languagesfemale50962746
        student471Mathematicsmale49155145
        student472Languagesfemale38353178
        student473Mathematicsmale1802365
        student474Languagesfemale91172376
        student475Mathematicsmale57393563
        student476Languagesfemale33736214
        student477Mathematicsmale96168840
        student478Languagesfemale30631613
        student479Mathematicsmale74393787
        student480Languagesfemale26369479
        student481Mathematicsmale19586512
        student482Languagesfemale73362248
        student483Mathematicsmale7894757
        student484Languagesfemale5951935
        student485Mathematicsmale677110085
        student486Languagesfemale33301546
        student487Mathematicsmale12191637
        student488Languagesfemale80982914
        student489Mathematicsmale70511431
        student490Languagesfemale95381592
        student491Mathematicsmale60317412
        student492Languagesfemale62569068
        student493Mathematicsmale63112991
        student494Languagesfemale4112520
        student495Mathematicsmale6053144
        student496Languagesfemale1135528
        student497Mathematicsmale11964237
        student498Languagesfemale16727974
        student499Mathematicsmale9212266
        student500Languagesfemale34226434
        student501Mathematicsmale50938661
        student502Languagesfemale50224044
        student503Mathematicsmale383917
        student504Languagesfemale98169355
        student505Mathematicsmale86893628
        student506Languagesfemale16531350
        student507Mathematicsmale5757338
        student508Languagesfemale34796977
        student509Mathematicsmale241659
        student510Languagesfemale606299100
        student511Mathematicsmale65525295
        student512Languagesfemale5873941
        student513Mathematicsmale39752876
        student514Languagesfemale4666478
        student515Mathematicsmale5160998
        student516Languagesfemale17201297
        student517Mathematicsmale72179673
        student518Languagesfemale92216227
        student519Mathematicsmale5042433
        student520Languagesfemale5237157
        student521Mathematicsmale58403554
        student522Languagesfemale9385753
        student523Mathematicsmale79201818
        student524Languagesfemale149427
        student525Mathematicsmale95412998
        student526Languagesfemale3459921
        student527Mathematicsmale39664129
        student528Languagesfemale328125
        student529Mathematicsmale33443785
        student530Languagesfemale69255979
        student531Mathematicsmale13504952
        student532Languagesfemale54834531
        student533Mathematicsmale15249751
        student534Languagesfemale7516963
        student535Mathematicsmale9183856
        student536Languagesfemale50137480
        student537Mathematicsmale54757410
        student538Languagesfemale76397046
        student539Mathematicsmale84723940
        student540Languagesfemale10047214
        student541Mathematicsmale426111
        student542Languagesfemale57716561
        student543Mathematicsmale7854134
        student544Languagesfemale14763647
        student545Mathematicsmale15196396
        student546Languagesfemale27823356
        student547Mathematicsmale70239690
        student548Languagesfemale612278
        student549Mathematicsmale22376436
        student550Languagesfemale75969440
        student551Mathematicsmale4382921
        student552Languagesfemale7968718
        student553Mathematicsmale65765244
        student554Languagesfemale41627354
        student555Mathematicsmale25982140
        student556Languagesfemale17709682
        student557Mathematicsmale43912743
        student558Languagesfemale33372433
        student559Mathematicsmale87871031
        student560Languagesfemale48409774
        student561Mathematicsmale63759155
        student562Languagesfemale66825995
        student563Mathematicsmale21955838
        student564Languagesfemale9299745
        student565Mathematicsmale5979420
        student566Languagesfemale64952412
        student567Mathematicsmale70463674
        student568Languagesfemale16259149
        student569Mathematicsmale73332488
        student570Languagesfemale9619527
        student571Mathematicsmale18127646
        student572Languagesfemale61714963
        student573Mathematicsmale46328517
        student574Languagesfemale42421137
        student575Mathematicsmale49764120
        student576Languagesfemale22278012
        student577Mathematicsmale76341866
        student578Languagesfemale96772917
        student579Mathematicsmale62516772
        student580Languagesfemale96672254
        student581Mathematicsmale77112388
        student582Languagesfemale6282433
        student583Mathematicsmale392312100
        student584Languagesfemale10212071
        student585Mathematicsmale11277100
        student586Languagesfemale40349778
        student587Mathematicsmale2518319
        student588Languagesfemale18763025
        student589Mathematicsmale24574681
        student590Languagesfemale2103194
        student591Mathematicsmale91847513
        student592Languagesfemale79449710
        student593Mathematicsmale42606730
        student594Languagesfemale61577535
        student595Mathematicsmale42468171
        student596Languagesfemale92637574
        student597Mathematicsmale86374051
        student598Languagesfemale5210473
        student599Mathematicsmale100281476
        student600Languagesfemale31762043
        student601Mathematicsmale402766
        student602Languagesfemale587921
        student603Mathematicsmale754691
        student604Languagesfemale2830153
        student605Mathematicsmale38939892
        student606Languagesfemale43968991
        student607Mathematicsmale43491483
        student608Languagesfemale50617298
        student609Mathematicsmale4499983
        student610Languagesfemale5367382
        student611Mathematicsmale40849954
        student612Languagesfemale29966569
        student613Mathematicsmale1276599
        student614Languagesfemale4783494
        student615Mathematicsmale3727224
        student616Languagesfemale94394924
        student617Mathematicsmale0752141
        student618Languagesfemale5936418
        student619Mathematicsmale2266133
        student620Languagesfemale4387448
        student621Mathematicsmale100155152
        student622Languagesfemale63719917
        student623Mathematicsmale143444100
        student624Languagesfemale2385727
        student625Mathematicsmale23143240
        student626Languagesfemale34497254
        student627Mathematicsmale21168126
        student628Languagesfemale54693434
        student629Mathematicsmale72116331
        student630Languagesfemale8798947
        student631Mathematicsmale43525358
        student632Languagesfemale5014420
        student633Mathematicsmale89836787
        student634Languagesfemale079916
        student635Mathematicsmale59178458
        student636Languagesfemale94953660
        student637Mathematicsmale39426346
        student638Languagesfemale019610
        student639Mathematicsmale50164171
        student640Languagesfemale8604613
        student641Mathematicsmale45855936
        student642Languagesfemale8335057
        student643Mathematicsmale8306014
        student644Languagesfemale76807338
        student645Mathematicsmale2614582
        student646Languagesfemale9316422
        student647Mathematicsmale85947616
        student648Languagesfemale57453216
        student649Mathematicsmale16169013
        student650Languagesfemale4331887
        student651Mathematicsmale16243244
        student652Languagesfemale5998334
        student653Mathematicsmale73184783
        student654Languagesfemale992510093
        student655Mathematicsmale0739784
        student656Languagesfemale0289475
        student657Mathematicsmale65905863
        student658Languagesfemale84358641
        student659Mathematicsmale4539599
        student660Languagesfemale32103162
        student661Mathematicsmale61285461
        student662Languagesfemale70961454
        student663Mathematicsmale6392298
        student664Languagesfemale41104623
        student665Mathematicsmale81918021
        student666Languagesfemale79716568
        student667Mathematicsmale47691890
        student668Languagesfemale2616700
        student669Mathematicsmale66109335
        student670Languagesfemale66682713
        student671Mathematicsmale86792645
        student672Languagesfemale50532574
        student673Mathematicsmale9753914
        student674Languagesfemale28796942
        student675Mathematicsmale607259
        student676Languagesfemale53213943
        student677Mathematicsmale37654591
        student678Languagesfemale76806027
        student679Mathematicsmale85273455
        student680Languagesfemale66114117
        student681Mathematicsmale27618982
        student682Languagesfemale402613
        student683Mathematicsmale2516695
        student684Languagesfemale63448563
        student685Mathematicsmale97957883
        student686Languagesfemale5121387
        student687Mathematicsmale63928723
        student688Languagesfemale22965959
        student689Mathematicsmale33801523
        student690Languagesfemale34751924
        student691Mathematicsmale36684854
        student692Languagesfemale32362012
        student693Mathematicsmale68917450
        student694Languagesfemale87919637
        student695Mathematicsmale239144
        student696Languagesfemale9462977
        student697Mathematicsmale1474575
        student698Languagesfemale73921990
        student699Mathematicsmale8207978
        student700Languagesfemale763510039
        student701Mathematicsmale27518949
        student702Languagesfemale0647237
        student703Mathematicsmale93469487
        student704Languagesfemale6922172
        student705Mathematicsmale1752113
        student706Languagesfemale1325219
        student707Mathematicsmale75617273
        student708Languagesfemale8437736
        student709Mathematicsmale81194514
        student710Languagesfemale62173927
        student711Mathematicsmale8869681
        student712Languagesfemale53825929
        student713Mathematicsmale83347134
        student714Languagesfemale9552614
        student715Mathematicsmale6715313
        student716Languagesfemale8297825
        student717Mathematicsmale65503146
        student718Languagesfemale27462537
        student719Mathematicsmale98423544
        student720Languagesfemale9014444
        student721Mathematicsmale3168293
        student722Languagesfemale3434370
        student723Mathematicsmale59771421
        student724Languagesfemale16535759
        student725Mathematicsmale7914416
        student726Languagesfemale108199
        student727Mathematicsmale89487916
        student728Languagesfemale8872387
        student729Mathematicsmale17539584
        student730Languagesfemale65523961
        student731Mathematicsmale44309672
        student732Languagesfemale70793233
        student733Mathematicsmale30474611
        student734Languagesfemale761001649
        student735Mathematicsmale39369089
        student736Languagesfemale1941929
        student737Mathematicsmale23737887
        student738Languagesfemale87714464
        student739Mathematicsmale22198220
        student740Languagesfemale94526739
        student741Mathematicsmale14175187
        student742Languagesfemale5663983
        student743Mathematicsmale99924698
        student744Languagesfemale19768388
        student745Mathematicsmale15776881
        student746Languagesfemale48814838
        student747Mathematicsmale2913861
        student748Languagesfemale7163030
        student749Mathematicsmale19683053
        student750Languagesfemale91182762
        student751Mathematicsmale73333836
        student752Languagesfemale99387550
        student753Mathematicsmale55713490
        student754Languagesfemale52409883
        student755Mathematicsmale1463611
        student756Languagesfemale1319496
        student757Mathematicsmale49665592
        student758Languagesfemale0198082
        student759Mathematicsmale2635873
        student760Languagesfemale8287639
        student761Mathematicsmale52118357
        student762Languagesfemale83688425
        student763Mathematicsmale1725670
        student764Languagesfemale1758084
        student765Mathematicsmale7564785
        student766Languagesfemale76329339
        student767Mathematicsmale20758465
        student768Languagesfemale25471289
        student769Mathematicsmale86947945
        student770Languagesfemale65815535
        student771Mathematicsmale62414143
        student772Languagesfemale1446243
        student773Mathematicsmale17557278
        student774Languagesfemale9546356
        student775Mathematicsmale7205648
        student776Languagesfemale30881956
        student777Mathematicsmale42448856
        student778Languagesfemale42695663
        student779Mathematicsmale7857783
        student780Languagesfemale15862498
        student781Mathematicsmale4684369
        student782Languagesfemale67981552
        student783Mathematicsmale33326357
        student784Languagesfemale35951653
        student785Mathematicsmale78545482
        student786Languagesfemale8185914
        student787Mathematicsmale42412314
        student788Languagesfemale591008636
        student789Mathematicsmale1926012
        student790Languagesfemale10034570
        student791Mathematicsmale381217
        student792Languagesfemale3155193
        student793Mathematicsmale11339877
        student794Languagesfemale461786
        student795Mathematicsmale5786727
        student796Languagesfemale5746236
        student797Mathematicsmale57676661
        student798Languagesfemale93888725
        student799Mathematicsmale59966441
        student800Languagesfemale6276923
        student801Mathematicsmale35833255
        student802Languagesfemale42581583
        student803Mathematicsmale41904012
        student804Languagesfemale8143837
        student805Mathematicsmale87773320
        student806Languagesfemale53873037
        student807Mathematicsmale13358516
        student808Languagesfemale20829034
        student809Mathematicsmale5821614
        student810Languagesfemale14282356
        student811Mathematicsmale4997368
        student812Languagesfemale31461163
        student813Mathematicsmale7497643
        student814Languagesfemale42839575
        student815Mathematicsmale2654529
        student816Languagesfemale79596988
        student817Mathematicsmale68182684
        student818Languagesfemale39139915
        student819Mathematicsmale2248716
        student820Languagesfemale12538811
        student821Mathematicsmale33908029
        student822Languagesfemale3795486
        student823Mathematicsmale9178851
        student824Languagesfemale31586731
        student825Mathematicsmale22305098
        student826Languagesfemale55585610
        student827Mathematicsmale56765753
        student828Languagesfemale1129881
        student829Mathematicsmale67926671
        student830Languagesfemale30614449
        student831Mathematicsmale0414461
        student832Languagesfemale72524585
        student833Mathematicsmale60991294
        student834Languagesfemale83587542
        student835Mathematicsmale9505377
        student836Languagesfemale33287062
        student837Mathematicsmale3982755
        student838Languagesfemale411004547
        student839Mathematicsmale81692729
        student840Languagesfemale9012649
        student841Mathematicsmale45382034
        student842Languagesfemale325311
        student843Mathematicsmale55778649
        student844Languagesfemale61609176
        student845Mathematicsmale8085749
        student846Languagesfemale63897371
        student847Mathematicsmale79159742
        student848Languagesfemale99187343
        student849Mathematicsmale30523856
        student850Languagesfemale65866734
        student851Mathematicsmale7343655
        student852Languagesfemale42435173
        student853Mathematicsmale870980
        student854Languagesfemale29411245
        student855Mathematicsmale5739090
        student856Languagesfemale80529654
        student857Mathematicsmale43838246
        student858Languagesfemale7917131
        student859Mathematicsmale6813707
        student860Languagesfemale51441552
        student861Mathematicsmale9170178
        student862Languagesfemale4116578
        student863Mathematicsmale20635585
        student864Languagesfemale5938726
        student865Mathematicsmale4894432
        student866Languagesfemale26679839
        student867Mathematicsmale48793866
        student868Languagesfemale1632153
        student869Mathematicsmale13205085
        student870Languagesfemale4922039
        student871Mathematicsmale8262353
        student872Languagesfemale6607464
        student873Mathematicsmale66483914
        student874Languagesfemale43833100
        student875Mathematicsmale214990
        student876Languagesfemale79807180
        student877Mathematicsmale84252688
        student878Languagesfemale38466660
        student879Mathematicsmale35279851
        student880Languagesfemale5759267
        student881Mathematicsmale7687788
        student882Languagesfemale2140817
        student883Mathematicsmale5046866
        student884Languagesfemale83863092
        student885Mathematicsmale63466694
        student886Languagesfemale7671262
        student887Mathematicsmale7418686
        student888Languagesfemale65774488
        student889Mathematicsmale67326119
        student890Languagesfemale85968541
        student891Mathematicsmale1487705
        student892Languagesfemale81284528
        student893Mathematicsmale9191883
        student894Languagesfemale407024
        student895Mathematicsmale18195189
        student896Languagesfemale70352512
        student897Mathematicsmale7290741
        student898Languagesfemale8417186
        student899Mathematicsmale1423886
        student900Languagesfemale7837601
        student901Mathematicsmale66953168
        student902Languagesfemale23608065
        student903Mathematicsmale76896396
        student904Languagesfemale3469070
        student905Mathematicsmale65449679
        student906Languagesfemale6877865
        student907Mathematicsmale86619943
        student908Languagesfemale88953213
        student909Mathematicsmale531005982
        student910Languagesfemale3579535
        student911Mathematicsmale230177
        student912Languagesfemale9687263
        student913Mathematicsmale23923996
        student914Languagesfemale9497658
        student915Mathematicsmale49312971
        student916Languagesfemale21577957
        student917Mathematicsmale03510089
        student918Languagesfemale64827552
        student919Mathematicsmale16666968
        student920Languagesfemale92951127
        student921Mathematicsmale16888590
        student922Languagesfemale56152698
        student923Mathematicsmale78274017
        student924Languagesfemale95104432
        student925Mathematicsmale99855218
        student926Languagesfemale73317149
        student927Mathematicsmale21791063
        student928Languagesfemale92718012
        student929Mathematicsmale23293388
        student930Languagesfemale4189884
        student931Mathematicsmale97177921
        student932Languagesfemale72409392
        student933Mathematicsmale7558326
        student934Languagesfemale15982728
        student935Mathematicsmale7688806
        student936Languagesfemale84234292
        student937Mathematicsmale71568671
        student938Languagesfemale7395822
        student939Mathematicsmale1555460
        student940Languagesfemale2031308
        student941Mathematicsmale97544181
        student942Languagesfemale83418664
        student943Mathematicsmale7195327
        student944Languagesfemale0273091
        student945Mathematicsmale99751722
        student946Languagesfemale92531090
        student947Mathematicsmale4449432
        student948Languagesfemale0974879
        student949Mathematicsmale97557974
        student950Languagesfemale6598932
        student951Mathematicsmale56733881
        student952Languagesfemale84946150
        student953Mathematicsmale4820770
        student954Languagesfemale39981420
        student955Mathematicsmale4152465
        student956Languagesfemale78229231
        student957Mathematicsmale28382654
        student958Languagesfemale49613554
        student959Mathematicsmale81152817
        student960Languagesfemale5480582
        student961Mathematicsmale7523537
        student962Languagesfemale5565120
        student963Mathematicsmale86427036
        student964Languagesfemale54455480
        student965Mathematicsmale38186992
        student966Languagesfemale33894683
        student967Mathematicsmale4395576
        student968Languagesfemale13261286
        student969Mathematicsmale94228559
        student970Languagesfemale9358610
        student971Mathematicsmale35728536
        student972Languagesfemale37519693
        student973Mathematicsmale71107959
        student974Languagesfemale71317393
        student975Mathematicsmale80268697
        student976Languagesfemale69216769
        student977Mathematicsmale38861039
        student978Languagesfemale48903981
        student979Mathematicsmale9083342
        student980Languagesfemale1919184
        student981Mathematicsmale98255046
        student982Languagesfemale38882116
        student983Mathematicsmale71481843
        student984Languagesfemale79851816
        student985Mathematicsmale51669068
        student986Languagesfemale100956591
        student987Mathematicsmale6742424
        student988Languagesfemale93809435
        student989Mathematicsmale65785794
        student990Languagesfemale27922191
        student991Mathematicsmale77152676
        student992Languagesfemale28845167
        student993Mathematicsmale3786250
        student994Languagesfemale59772074
        student995Mathematicsmale6266875
        student996Languagesfemale88703343
        student997Mathematicsmale73334253
        student998Languagesfemale6410231
        student999Mathematicsmale91931635
        student1000Languagesfemale30689540
        student1001Mathematicsmale2524832
        student1002Languagesfemale50775381
        student1003Mathematicsmale67441065
        student1004Languagesfemale29533486
        student1005Mathematicsmale77692275
        student1006Languagesfemale48829540
        student1007Mathematicsmale30712963
        student1008Languagesfemale4531471
        student1009Mathematicsmale81122044
        student1010Languagesfemale17668242
        student1011Mathematicsmale15113218
        student1012Languagesfemale27345919
        student1013Mathematicsmale18672514
        student1014Languagesfemale24645224
        student1015Mathematicsmale36874846
        student1016Languagesfemale3317068
        student1017Mathematicsmale4826380
        student1018Languagesfemale53638557
        student1019Mathematicsmale5873024
        student1020Languagesfemale8590810
        student1021Mathematicsmale69285276
        student1022Languagesfemale7522752
        jquery-goodies-8/tablesorter/docs/example-parsers.html000066400000000000000000000055501207406311000234440ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Writing custom parsers

        Demo

        Name Major Gender English Japanese Calculus Overall grades
        Student01 Languages male 80 70 75 bad
        Student02 Mathematics male 90 88 100 good
        Student03 Languages female 85 95 80 medium

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-trigger-sort.html000066400000000000000000000061671207406311000244220ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Sort table using a link outside the table

        Demo

        First Name Last Name Age Total Discount Date
        Peter Parker 28 $9.99 20% Jul 6, 2006 8:14 AM
        John Hood 33 $19.99 25% Dec 10, 2002 5:14 AM
        Clark Kent 18 $15.89 44% Jan 12, 2003 11:14 AM
        Bruce Almighty 45 $153.19 44% Jan 18, 2001 9:12 AM
        Bruce Evans 22 $13.19 11% Jan 18, 2007 9:12 AM
        Sort first and third columns

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-triggers.html000066400000000000000000003301161207406311000236120ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Triggers sortStart and sortEnd

        Demo

        Please wait...
        Name Major Sex English Japanese Calculus Geometry
        Name Major Sex English Japanese Calculus Geometry
        Student01 Languages male 80 70 75 80
        Student02 Mathematics male 90 88 100 90
        Student03 Languages female 85 95 80 85
        Student04 Languages male 60 55 100 100
        Student05 Languages female 68 80 95 80
        Student06 Mathematics male 100 99 100 90
        Student07 Mathematics male 85 68 90 90
        Student08 Languages male 100 90 90 85
        Student09 Mathematics male 80 50 65 75
        Student10 Languages male 85 100 100 90
        Student11 Languages male 86 85 100 100
        Student12 Mathematics female 100 75 70 85
        Student13 Languages female 100 80 100 90
        Student14 Languages female 50 45 55 90
        Student15 Languages male 95 35 100 90
        Student16 Languages female 100 50 30 70
        Student17 Languages female 80 100 55 65
        Student18 Mathematics male 30 49 55 75
        Student19 Languages male 68 90 88 70
        Student20 Mathematics male 40 45 40 80
        Student21 Languages male 50 45 100 100
        Student22 Mathematics male 100 99 100 90
        Student23 Languages female 85 80 80 80
        student23Mathematicsmale8277079
        student24Languagesfemale100911382
        student25Mathematicsmale22968253
        student26Languagesfemale37295659
        student27Mathematicsmale86826923
        student28Languagesfemale4425431
        student29Mathematicsmale77472238
        student30Languagesfemale19352310
        student31Mathematicsmale90271750
        student32Languagesfemale60753338
        student33Mathematicsmale4313715
        student34Languagesfemale77978144
        student35Mathematicsmale5815195
        student36Languagesfemale70617094
        student37Mathematicsmale6036184
        student38Languagesfemale6339011
        student39Mathematicsmale50463238
        student40Languagesfemale5175253
        student41Mathematicsmale43342878
        student42Languagesfemale11896095
        student43Mathematicsmale48921888
        student44Languagesfemale8225973
        student45Mathematicsmale91733739
        student46Languagesfemale481210
        student47Mathematicsmale8910611
        student48Languagesfemale90322118
        student49Mathematicsmale42494972
        student50Languagesfemale56376754
        student51Mathematicsmale48315563
        student52Languagesfemale38917174
        student53Mathematicsmale26385100
        student54Languagesfemale75811623
        student55Mathematicsmale65521553
        student56Languagesfemale23527994
        student57Mathematicsmale80226112
        student58Languagesfemale5357979
        student59Mathematicsmale96323517
        student60Languagesfemale16766527
        student61Mathematicsmale20572223
        student62Languagesfemale19838778
        student63Mathematicsmale258330
        student64Languagesfemale021993
        student65Mathematicsmale20861396
        student66Languagesfemale28358757
        student67Mathematicsmale36502910
        student68Languagesfemale6090966
        student69Mathematicsmale34614398
        student70Languagesfemale13379183
        student71Mathematicsmale47805782
        student72Languagesfemale69433737
        student73Mathematicsmale54609421
        student74Languagesfemale71143446
        student75Mathematicsmale89963117
        student76Languagesfemale28482994
        student77Mathematicsmale100652024
        student78Languagesfemale11969033
        student79Mathematicsmale53559339
        student80Languagesfemale11008444
        student81Mathematicsmale63789643
        student82Languagesfemale41698235
        student83Mathematicsmale9498139
        student84Languagesfemale94729177
        student85Mathematicsmale71324525
        student86Languagesfemale9896437
        student87Mathematicsmale8917367
        student88Languagesfemale43416879
        student89Mathematicsmale7382237
        student90Languagesfemale94839337
        student91Mathematicsmale8284261
        student92Languagesfemale46413069
        student93Mathematicsmale47198583
        student94Languagesfemale39146462
        student95Mathematicsmale71314628
        student96Languagesfemale90944540
        student97Mathematicsmale468925
        student98Languagesfemale41434799
        student99Mathematicsmale71908973
        student100Languagesfemale31641856
        student101Mathematicsmale52136999
        student102Languagesfemale86398318
        student103Mathematicsmale23659880
        student104Languagesfemale781005766
        student105Mathematicsmale69214397
        student106Languagesfemale2727838
        student107Mathematicsmale86964634
        student108Languagesfemale13846664
        student109Mathematicsmale35959881
        student110Languagesfemale30286254
        student111Mathematicsmale60313585
        student112Languagesfemale19811969
        student113Mathematicsmale6659854
        student114Languagesfemale38804016
        student115Mathematicsmale5849697
        student116Languagesfemale59976954
        student117Mathematicsmale0347949
        student118Languagesfemale1871285
        student119Mathematicsmale9387759
        student120Languagesfemale42232690
        student121Mathematicsmale17396689
        student122Languagesfemale26759018
        student123Mathematicsmale34237780
        student124Languagesfemale5267742
        student125Mathematicsmale5628581
        student126Languagesfemale51356744
        student127Mathematicsmale64644434
        student128Languagesfemale67917982
        student129Mathematicsmale4261579
        student130Languagesfemale7210369
        student131Mathematicsmale9477511
        student132Languagesfemale27958548
        student133Mathematicsmale92114061
        student134Languagesfemale4185660
        student135Mathematicsmale8422652
        student136Languagesfemale7604721
        student137Mathematicsmale51813090
        student138Languagesfemale5861673
        student139Mathematicsmale48383731
        student140Languagesfemale33265660
        student141Mathematicsmale84842975
        student142Languagesfemale7235654
        student143Mathematicsmale31427082
        student144Languagesfemale94875035
        student145Mathematicsmale91528026
        student146Languagesfemale78657979
        student147Mathematicsmale50905971
        student148Languagesfemale15686633
        student149Mathematicsmale17363413
        student150Languagesfemale30956973
        student151Mathematicsmale20534958
        student152Languagesfemale19896060
        student153Mathematicsmale5282203
        student154Languagesfemale66985366
        student155Mathematicsmale5852258
        student156Languagesfemale3443688
        student157Mathematicsmale4309114
        student158Languagesfemale34186731
        student159Mathematicsmale79733452
        student160Languagesfemale15613727
        student161Mathematicsmale74771545
        student162Languagesfemale52621958
        student163Mathematicsmale77602795
        student164Languagesfemale9619357
        student165Mathematicsmale51637519
        student166Languagesfemale32447299
        student167Mathematicsmale82845763
        student168Languagesfemale53128567
        student169Mathematicsmale4916846
        student170Languagesfemale39341665
        student171Mathematicsmale10068884
        student172Languagesfemale14256352
        student173Mathematicsmale74261560
        student174Languagesfemale1158892
        student175Mathematicsmale6247231
        student176Languagesfemale65263242
        student177Mathematicsmale83786924
        student178Languagesfemale14100743
        student179Mathematicsmale2835897
        student180Languagesfemale1483962
        student181Mathematicsmale1442469
        student182Languagesfemale6452722
        student183Mathematicsmale15262785
        student184Languagesfemale9149407
        student185Mathematicsmale87894287
        student186Languagesfemale75766188
        student187Mathematicsmale11486630
        student188Languagesfemale7379272
        student189Mathematicsmale98365815
        student190Languagesfemale8028656
        student191Mathematicsmale3633974
        student192Languagesfemale5923390
        student193Mathematicsmale9461933
        student194Languagesfemale82497242
        student195Mathematicsmale8059830
        student196Languagesfemale89179027
        student197Mathematicsmale4622667
        student198Languagesfemale65757377
        student199Mathematicsmale77975413
        student200Languagesfemale78195796
        student201Mathematicsmale92211180
        student202Languagesfemale45499340
        student203Mathematicsmale74258753
        student204Languagesfemale1571234
        student205Mathematicsmale82979573
        student206Languagesfemale82605898
        student207Mathematicsmale266411100
        student208Languagesfemale6496045
        student209Mathematicsmale96819663
        student210Languagesfemale2439069
        student211Mathematicsmale8664710
        student212Languagesfemale764507
        student213Mathematicsmale59122677
        student214Languagesfemale21259382
        student215Mathematicsmale22186451
        student216Languagesfemale92419828
        student217Mathematicsmale32481417
        student218Languagesfemale62368556
        student219Mathematicsmale33379087
        student220Languagesfemale24436084
        student221Mathematicsmale6593751
        student222Languagesfemale9197576
        student223Mathematicsmale86293227
        student224Languagesfemale63596891
        student225Mathematicsmale57739568
        student226Languagesfemale38545987
        student227Mathematicsmale53627264
        student228Languagesfemale62847273
        student229Mathematicsmale1308358
        student230Languagesfemale35658087
        student231Mathematicsmale76202850
        student232Languagesfemale9176633
        student233Mathematicsmale9229961
        student234Languagesfemale47699839
        student235Mathematicsmale21443882
        student236Languagesfemale19865178
        student237Mathematicsmale28454936
        student238Languagesfemale78194981
        student239Mathematicsmale72694720
        student240Languagesfemale17436656
        student241Mathematicsmale901944
        student242Languagesfemale618251
        student243Mathematicsmale1377213
        student244Languagesfemale8005854
        student245Mathematicsmale8331859
        student246Languagesfemale90992912
        student247Mathematicsmale89238159
        student248Languagesfemale7226283
        student249Mathematicsmale28105047
        student250Languagesfemale8914894
        student251Mathematicsmale15233769
        student252Languagesfemale27821036
        student253Mathematicsmale49456423
        student254Languagesfemale79756374
        student255Mathematicsmale2566475
        student256Languagesfemale36262958
        student257Mathematicsmale17226673
        student258Languagesfemale70919745
        student259Mathematicsmale34307830
        student260Languagesfemale77578677
        student261Mathematicsmale1259687
        student262Languagesfemale11609771
        student263Mathematicsmale12303558
        student264Languagesfemale46152340
        student265Mathematicsmale4481926
        student266Languagesfemale15683215
        student267Mathematicsmale5585098
        student268Languagesfemale42303224
        student269Mathematicsmale781009957
        student270Languagesfemale55338725
        student271Mathematicsmale25972993
        student272Languagesfemale39351843
        student273Mathematicsmale35179958
        student274Languagesfemale86522724
        student275Mathematicsmale97387376
        student276Languagesfemale206198
        student277Mathematicsmale9336947
        student278Languagesfemale423152
        student279Mathematicsmale6118962
        student280Languagesfemale99898794
        student281Mathematicsmale4895900
        student282Languagesfemale60473130
        student283Mathematicsmale64241076
        student284Languagesfemale9937468
        student285Mathematicsmale0986869
        student286Languagesfemale66824959
        student287Mathematicsmale86143717
        student288Languagesfemale27489327
        student289Mathematicsmale8489668
        student290Languagesfemale9902057
        student291Mathematicsmale50967242
        student292Languagesfemale9822792
        student293Mathematicsmale1994287
        student294Languagesfemale9897922
        student295Mathematicsmale75307764
        student296Languagesfemale5198553
        student297Mathematicsmale25958672
        student298Languagesfemale20753735
        student299Mathematicsmale4924111
        student300Languagesfemale2832891
        student301Mathematicsmale4163425
        student302Languagesfemale29167790
        student303Mathematicsmale89415182
        student304Languagesfemale40912434
        student305Mathematicsmale7474978
        student306Languagesfemale6375562
        student307Mathematicsmale30733490
        student308Languagesfemale82919593
        student309Mathematicsmale6247382
        student310Languagesfemale39101257
        student311Mathematicsmale89642067
        student312Languagesfemale56369241
        student313Mathematicsmale99809974
        student314Languagesfemale31796493
        student315Mathematicsmale5327055
        student316Languagesfemale35152960
        student317Mathematicsmale31476960
        student318Languagesfemale88281366
        student319Mathematicsmale65121640
        student320Languagesfemale28171940
        student321Mathematicsmale241004470
        student322Languagesfemale20598352
        student323Mathematicsmale17608291
        student324Languagesfemale95994337
        student325Mathematicsmale30189931
        student326Languagesfemale3478386
        student327Mathematicsmale9863435
        student328Languagesfemale54239846
        student329Mathematicsmale97934518
        student330Languagesfemale2774077
        student331Mathematicsmale9704137
        student332Languagesfemale52377620
        student333Mathematicsmale74186819
        student334Languagesfemale77100339
        student335Mathematicsmale38537718
        student336Languagesfemale18132610
        student337Mathematicsmale90478770
        student338Languagesfemale38493674
        student339Mathematicsmale100641372
        student340Languagesfemale74254152
        student341Mathematicsmale37131613
        student342Languagesfemale24341583
        student343Mathematicsmale2056728
        student344Languagesfemale4522572
        student345Mathematicsmale19117535
        student346Languagesfemale6583115
        student347Mathematicsmale16663611
        student348Languagesfemale1239540
        student349Mathematicsmale752742
        student350Languagesfemale88926055
        student351Mathematicsmale92709145
        student352Languagesfemale74765944
        student353Mathematicsmale63696094
        student354Languagesfemale3685548
        student355Mathematicsmale39962148
        student356Languagesfemale4134275
        student357Mathematicsmale6434733
        student358Languagesfemale95146355
        student359Mathematicsmale701001382
        student360Languagesfemale522410021
        student361Mathematicsmale040869
        student362Languagesfemale024932
        student363Mathematicsmale23108694
        student364Languagesfemale1538649
        student365Mathematicsmale7623310
        student366Languagesfemale35357894
        student367Mathematicsmale294243100
        student368Languagesfemale668510
        student369Mathematicsmale74155683
        student370Languagesfemale7543908
        student371Mathematicsmale4060470
        student372Languagesfemale62421749
        student373Mathematicsmale31464454
        student374Languagesfemale30344787
        student375Mathematicsmale9694152
        student376Languagesfemale85432992
        student377Mathematicsmale7904025
        student378Languagesfemale36407285
        student379Mathematicsmale5368882
        student380Languagesfemale87783879
        student381Mathematicsmale89978338
        student382Languagesfemale21194910
        student383Mathematicsmale47126850
        student384Languagesfemale37124995
        student385Mathematicsmale8408851
        student386Languagesfemale89612748
        student387Mathematicsmale10478761
        student388Languagesfemale1692656
        student389Mathematicsmale57331347
        student390Languagesfemale90357775
        student391Mathematicsmale31474753
        student392Languagesfemale942412
        student393Mathematicsmale6119817
        student394Languagesfemale457577
        student395Mathematicsmale6729212
        student396Languagesfemale516456
        student397Mathematicsmale93147714
        student398Languagesfemale1893427
        student399Mathematicsmale93775791
        student400Languagesfemale67778032
        student401Mathematicsmale5889417
        student402Languagesfemale3056053
        student403Mathematicsmale28253259
        student404Languagesfemale62348164
        student405Mathematicsmale29842623
        student406Languagesfemale7086377
        student407Mathematicsmale8654799
        student408Languagesfemale9381089
        student409Mathematicsmale84214658
        student410Languagesfemale21841849
        student411Mathematicsmale2796340
        student412Languagesfemale9301991
        student413Mathematicsmale31928743
        student414Languagesfemale53259843
        student415Mathematicsmale36758089
        student416Languagesfemale37681254
        student417Mathematicsmale25891253
        student418Languagesfemale922846
        student419Mathematicsmale11286058
        student420Languagesfemale1373517
        student421Mathematicsmale67303885
        student422Languagesfemale68793441
        student423Mathematicsmale72459341
        student424Languagesfemale56464538
        student425Mathematicsmale8621840
        student426Languagesfemale99854119
        student427Mathematicsmale7135389
        student428Languagesfemale22911216
        student429Mathematicsmale1532693
        student430Languagesfemale35463474
        student431Mathematicsmale33839720
        student432Languagesfemale9920326
        student433Mathematicsmale48428318
        student434Languagesfemale4442530
        student435Mathematicsmale78486045
        student436Languagesfemale4757890
        student437Mathematicsmale881210053
        student438Languagesfemale4805160
        student439Mathematicsmale70898516
        student440Languagesfemale71943433
        student441Mathematicsmale68137218
        student442Languagesfemale7539721
        student443Mathematicsmale65366087
        student444Languagesfemale43212434
        student445Mathematicsmale85776528
        student446Languagesfemale61907891
        student447Mathematicsmale9207812
        student448Languagesfemale33306290
        student449Mathematicsmale8616745
        student450Languagesfemale100862423
        student451Mathematicsmale1425645
        student452Languagesfemale86399888
        student453Mathematicsmale72687719
        student454Languagesfemale94523100
        student455Mathematicsmale34678979
        student456Languagesfemale9204745
        student457Mathematicsmale64582698
        student458Languagesfemale439359100
        student459Mathematicsmale82359781
        student460Languagesfemale183524100
        student461Mathematicsmale79804351
        student462Languagesfemale56101767
        student463Mathematicsmale36441485
        student464Languagesfemale2640692
        student465Mathematicsmale59934378
        student466Languagesfemale7884883
        student467Mathematicsmale41378060
        student468Languagesfemale44279777
        student469Mathematicsmale29196482
        student470Languagesfemale50962746
        student471Mathematicsmale49155145
        student472Languagesfemale38353178
        student473Mathematicsmale1802365
        student474Languagesfemale91172376
        student475Mathematicsmale57393563
        student476Languagesfemale33736214
        student477Mathematicsmale96168840
        student478Languagesfemale30631613
        student479Mathematicsmale74393787
        student480Languagesfemale26369479
        student481Mathematicsmale19586512
        student482Languagesfemale73362248
        student483Mathematicsmale7894757
        student484Languagesfemale5951935
        student485Mathematicsmale677110085
        student486Languagesfemale33301546
        student487Mathematicsmale12191637
        student488Languagesfemale80982914
        student489Mathematicsmale70511431
        student490Languagesfemale95381592
        student491Mathematicsmale60317412
        student492Languagesfemale62569068
        student493Mathematicsmale63112991
        student494Languagesfemale4112520
        student495Mathematicsmale6053144
        student496Languagesfemale1135528
        student497Mathematicsmale11964237
        student498Languagesfemale16727974
        student499Mathematicsmale9212266
        student500Languagesfemale34226434
        student501Mathematicsmale50938661
        student502Languagesfemale50224044
        student503Mathematicsmale383917
        student504Languagesfemale98169355
        student505Mathematicsmale86893628
        student506Languagesfemale16531350
        student507Mathematicsmale5757338
        student508Languagesfemale34796977
        student509Mathematicsmale241659
        student510Languagesfemale606299100
        student511Mathematicsmale65525295
        student512Languagesfemale5873941
        student513Mathematicsmale39752876
        student514Languagesfemale4666478
        student515Mathematicsmale5160998
        student516Languagesfemale17201297
        student517Mathematicsmale72179673
        student518Languagesfemale92216227
        student519Mathematicsmale5042433
        student520Languagesfemale5237157
        student521Mathematicsmale58403554
        student522Languagesfemale9385753
        student523Mathematicsmale79201818
        student524Languagesfemale149427
        student525Mathematicsmale95412998
        student526Languagesfemale3459921
        student527Mathematicsmale39664129
        student528Languagesfemale328125
        student529Mathematicsmale33443785
        student530Languagesfemale69255979
        student531Mathematicsmale13504952
        student532Languagesfemale54834531
        student533Mathematicsmale15249751
        student534Languagesfemale7516963
        student535Mathematicsmale9183856
        student536Languagesfemale50137480
        student537Mathematicsmale54757410
        student538Languagesfemale76397046
        student539Mathematicsmale84723940
        student540Languagesfemale10047214
        student541Mathematicsmale426111
        student542Languagesfemale57716561
        student543Mathematicsmale7854134
        student544Languagesfemale14763647
        student545Mathematicsmale15196396
        student546Languagesfemale27823356
        student547Mathematicsmale70239690
        student548Languagesfemale612278
        student549Mathematicsmale22376436
        student550Languagesfemale75969440
        student551Mathematicsmale4382921
        student552Languagesfemale7968718
        student553Mathematicsmale65765244
        student554Languagesfemale41627354
        student555Mathematicsmale25982140
        student556Languagesfemale17709682
        student557Mathematicsmale43912743
        student558Languagesfemale33372433
        student559Mathematicsmale87871031
        student560Languagesfemale48409774
        student561Mathematicsmale63759155
        student562Languagesfemale66825995
        student563Mathematicsmale21955838
        student564Languagesfemale9299745
        student565Mathematicsmale5979420
        student566Languagesfemale64952412
        student567Mathematicsmale70463674
        student568Languagesfemale16259149
        student569Mathematicsmale73332488
        student570Languagesfemale9619527
        student571Mathematicsmale18127646
        student572Languagesfemale61714963
        student573Mathematicsmale46328517
        student574Languagesfemale42421137
        student575Mathematicsmale49764120
        student576Languagesfemale22278012
        student577Mathematicsmale76341866
        student578Languagesfemale96772917
        student579Mathematicsmale62516772
        student580Languagesfemale96672254
        student581Mathematicsmale77112388
        student582Languagesfemale6282433
        student583Mathematicsmale392312100
        student584Languagesfemale10212071
        student585Mathematicsmale11277100
        student586Languagesfemale40349778
        student587Mathematicsmale2518319
        student588Languagesfemale18763025
        student589Mathematicsmale24574681
        student590Languagesfemale2103194
        student591Mathematicsmale91847513
        student592Languagesfemale79449710
        student593Mathematicsmale42606730
        student594Languagesfemale61577535
        student595Mathematicsmale42468171
        student596Languagesfemale92637574
        student597Mathematicsmale86374051
        student598Languagesfemale5210473
        student599Mathematicsmale100281476
        student600Languagesfemale31762043
        student601Mathematicsmale402766
        student602Languagesfemale587921
        student603Mathematicsmale754691
        student604Languagesfemale2830153
        student605Mathematicsmale38939892
        student606Languagesfemale43968991
        student607Mathematicsmale43491483
        student608Languagesfemale50617298
        student609Mathematicsmale4499983
        student610Languagesfemale5367382
        student611Mathematicsmale40849954
        student612Languagesfemale29966569
        student613Mathematicsmale1276599
        student614Languagesfemale4783494
        student615Mathematicsmale3727224
        student616Languagesfemale94394924
        student617Mathematicsmale0752141
        student618Languagesfemale5936418
        student619Mathematicsmale2266133
        student620Languagesfemale4387448
        student621Mathematicsmale100155152
        student622Languagesfemale63719917
        student623Mathematicsmale143444100
        student624Languagesfemale2385727
        student625Mathematicsmale23143240
        student626Languagesfemale34497254
        student627Mathematicsmale21168126
        student628Languagesfemale54693434
        student629Mathematicsmale72116331
        student630Languagesfemale8798947
        student631Mathematicsmale43525358
        student632Languagesfemale5014420
        student633Mathematicsmale89836787
        student634Languagesfemale079916
        student635Mathematicsmale59178458
        student636Languagesfemale94953660
        student637Mathematicsmale39426346
        student638Languagesfemale019610
        student639Mathematicsmale50164171
        student640Languagesfemale8604613
        student641Mathematicsmale45855936
        student642Languagesfemale8335057
        student643Mathematicsmale8306014
        student644Languagesfemale76807338
        student645Mathematicsmale2614582
        student646Languagesfemale9316422
        student647Mathematicsmale85947616
        student648Languagesfemale57453216
        student649Mathematicsmale16169013
        student650Languagesfemale4331887
        student651Mathematicsmale16243244
        student652Languagesfemale5998334
        student653Mathematicsmale73184783
        student654Languagesfemale992510093
        student655Mathematicsmale0739784
        student656Languagesfemale0289475
        student657Mathematicsmale65905863
        student658Languagesfemale84358641
        student659Mathematicsmale4539599
        student660Languagesfemale32103162
        student661Mathematicsmale61285461
        student662Languagesfemale70961454
        student663Mathematicsmale6392298
        student664Languagesfemale41104623
        student665Mathematicsmale81918021
        student666Languagesfemale79716568
        student667Mathematicsmale47691890
        student668Languagesfemale2616700
        student669Mathematicsmale66109335
        student670Languagesfemale66682713
        student671Mathematicsmale86792645
        student672Languagesfemale50532574
        student673Mathematicsmale9753914
        student674Languagesfemale28796942
        student675Mathematicsmale607259
        student676Languagesfemale53213943
        student677Mathematicsmale37654591
        student678Languagesfemale76806027
        student679Mathematicsmale85273455
        student680Languagesfemale66114117
        student681Mathematicsmale27618982
        student682Languagesfemale402613
        student683Mathematicsmale2516695
        student684Languagesfemale63448563
        student685Mathematicsmale97957883
        student686Languagesfemale5121387
        student687Mathematicsmale63928723
        student688Languagesfemale22965959
        student689Mathematicsmale33801523
        student690Languagesfemale34751924
        student691Mathematicsmale36684854
        student692Languagesfemale32362012
        student693Mathematicsmale68917450
        student694Languagesfemale87919637
        student695Mathematicsmale239144
        student696Languagesfemale9462977
        student697Mathematicsmale1474575
        student698Languagesfemale73921990
        student699Mathematicsmale8207978
        student700Languagesfemale763510039
        student701Mathematicsmale27518949
        student702Languagesfemale0647237
        student703Mathematicsmale93469487
        student704Languagesfemale6922172
        student705Mathematicsmale1752113
        student706Languagesfemale1325219
        student707Mathematicsmale75617273
        student708Languagesfemale8437736
        student709Mathematicsmale81194514
        student710Languagesfemale62173927
        student711Mathematicsmale8869681
        student712Languagesfemale53825929
        student713Mathematicsmale83347134
        student714Languagesfemale9552614
        student715Mathematicsmale6715313
        student716Languagesfemale8297825
        student717Mathematicsmale65503146
        student718Languagesfemale27462537
        student719Mathematicsmale98423544
        student720Languagesfemale9014444
        student721Mathematicsmale3168293
        student722Languagesfemale3434370
        student723Mathematicsmale59771421
        student724Languagesfemale16535759
        student725Mathematicsmale7914416
        student726Languagesfemale108199
        student727Mathematicsmale89487916
        student728Languagesfemale8872387
        student729Mathematicsmale17539584
        student730Languagesfemale65523961
        student731Mathematicsmale44309672
        student732Languagesfemale70793233
        student733Mathematicsmale30474611
        student734Languagesfemale761001649
        student735Mathematicsmale39369089
        student736Languagesfemale1941929
        student737Mathematicsmale23737887
        student738Languagesfemale87714464
        student739Mathematicsmale22198220
        student740Languagesfemale94526739
        student741Mathematicsmale14175187
        student742Languagesfemale5663983
        student743Mathematicsmale99924698
        student744Languagesfemale19768388
        student745Mathematicsmale15776881
        student746Languagesfemale48814838
        student747Mathematicsmale2913861
        student748Languagesfemale7163030
        student749Mathematicsmale19683053
        student750Languagesfemale91182762
        student751Mathematicsmale73333836
        student752Languagesfemale99387550
        student753Mathematicsmale55713490
        student754Languagesfemale52409883
        student755Mathematicsmale1463611
        student756Languagesfemale1319496
        student757Mathematicsmale49665592
        student758Languagesfemale0198082
        student759Mathematicsmale2635873
        student760Languagesfemale8287639
        student761Mathematicsmale52118357
        student762Languagesfemale83688425
        student763Mathematicsmale1725670
        student764Languagesfemale1758084
        student765Mathematicsmale7564785
        student766Languagesfemale76329339
        student767Mathematicsmale20758465
        student768Languagesfemale25471289
        student769Mathematicsmale86947945
        student770Languagesfemale65815535
        student771Mathematicsmale62414143
        student772Languagesfemale1446243
        student773Mathematicsmale17557278
        student774Languagesfemale9546356
        student775Mathematicsmale7205648
        student776Languagesfemale30881956
        student777Mathematicsmale42448856
        student778Languagesfemale42695663
        student779Mathematicsmale7857783
        student780Languagesfemale15862498
        student781Mathematicsmale4684369
        student782Languagesfemale67981552
        student783Mathematicsmale33326357
        student784Languagesfemale35951653
        student785Mathematicsmale78545482
        student786Languagesfemale8185914
        student787Mathematicsmale42412314
        student788Languagesfemale591008636
        student789Mathematicsmale1926012
        student790Languagesfemale10034570
        student791Mathematicsmale381217
        student792Languagesfemale3155193
        student793Mathematicsmale11339877
        student794Languagesfemale461786
        student795Mathematicsmale5786727
        student796Languagesfemale5746236
        student797Mathematicsmale57676661
        student798Languagesfemale93888725
        student799Mathematicsmale59966441
        student800Languagesfemale6276923
        student801Mathematicsmale35833255
        student802Languagesfemale42581583
        student803Mathematicsmale41904012
        student804Languagesfemale8143837
        student805Mathematicsmale87773320
        student806Languagesfemale53873037
        student807Mathematicsmale13358516
        student808Languagesfemale20829034
        student809Mathematicsmale5821614
        student810Languagesfemale14282356
        student811Mathematicsmale4997368
        student812Languagesfemale31461163
        student813Mathematicsmale7497643
        student814Languagesfemale42839575
        student815Mathematicsmale2654529
        student816Languagesfemale79596988
        student817Mathematicsmale68182684
        student818Languagesfemale39139915
        student819Mathematicsmale2248716
        student820Languagesfemale12538811
        student821Mathematicsmale33908029
        student822Languagesfemale3795486
        student823Mathematicsmale9178851
        student824Languagesfemale31586731
        student825Mathematicsmale22305098
        student826Languagesfemale55585610
        student827Mathematicsmale56765753
        student828Languagesfemale1129881
        student829Mathematicsmale67926671
        student830Languagesfemale30614449
        student831Mathematicsmale0414461
        student832Languagesfemale72524585
        student833Mathematicsmale60991294
        student834Languagesfemale83587542
        student835Mathematicsmale9505377
        student836Languagesfemale33287062
        student837Mathematicsmale3982755
        student838Languagesfemale411004547
        student839Mathematicsmale81692729
        student840Languagesfemale9012649
        student841Mathematicsmale45382034
        student842Languagesfemale325311
        student843Mathematicsmale55778649
        student844Languagesfemale61609176
        student845Mathematicsmale8085749
        student846Languagesfemale63897371
        student847Mathematicsmale79159742
        student848Languagesfemale99187343
        student849Mathematicsmale30523856
        student850Languagesfemale65866734
        student851Mathematicsmale7343655
        student852Languagesfemale42435173
        student853Mathematicsmale870980
        student854Languagesfemale29411245
        student855Mathematicsmale5739090
        student856Languagesfemale80529654
        student857Mathematicsmale43838246
        student858Languagesfemale7917131
        student859Mathematicsmale6813707
        student860Languagesfemale51441552
        student861Mathematicsmale9170178
        student862Languagesfemale4116578
        student863Mathematicsmale20635585
        student864Languagesfemale5938726
        student865Mathematicsmale4894432
        student866Languagesfemale26679839
        student867Mathematicsmale48793866
        student868Languagesfemale1632153
        student869Mathematicsmale13205085
        student870Languagesfemale4922039
        student871Mathematicsmale8262353
        student872Languagesfemale6607464
        student873Mathematicsmale66483914
        student874Languagesfemale43833100
        student875Mathematicsmale214990
        student876Languagesfemale79807180
        student877Mathematicsmale84252688
        student878Languagesfemale38466660
        student879Mathematicsmale35279851
        student880Languagesfemale5759267
        student881Mathematicsmale7687788
        student882Languagesfemale2140817
        student883Mathematicsmale5046866
        student884Languagesfemale83863092
        student885Mathematicsmale63466694
        student886Languagesfemale7671262
        student887Mathematicsmale7418686
        student888Languagesfemale65774488
        student889Mathematicsmale67326119
        student890Languagesfemale85968541
        student891Mathematicsmale1487705
        student892Languagesfemale81284528
        student893Mathematicsmale9191883
        student894Languagesfemale407024
        student895Mathematicsmale18195189
        student896Languagesfemale70352512
        student897Mathematicsmale7290741
        student898Languagesfemale8417186
        student899Mathematicsmale1423886
        student900Languagesfemale7837601
        student901Mathematicsmale66953168
        student902Languagesfemale23608065
        student903Mathematicsmale76896396
        student904Languagesfemale3469070
        student905Mathematicsmale65449679
        student906Languagesfemale6877865
        student907Mathematicsmale86619943
        student908Languagesfemale88953213
        student909Mathematicsmale531005982
        student910Languagesfemale3579535
        student911Mathematicsmale230177
        student912Languagesfemale9687263
        student913Mathematicsmale23923996
        student914Languagesfemale9497658
        student915Mathematicsmale49312971
        student916Languagesfemale21577957
        student917Mathematicsmale03510089
        student918Languagesfemale64827552
        student919Mathematicsmale16666968
        student920Languagesfemale92951127
        student921Mathematicsmale16888590
        student922Languagesfemale56152698
        student923Mathematicsmale78274017
        student924Languagesfemale95104432
        student925Mathematicsmale99855218
        student926Languagesfemale73317149
        student927Mathematicsmale21791063
        student928Languagesfemale92718012
        student929Mathematicsmale23293388
        student930Languagesfemale4189884
        student931Mathematicsmale97177921
        student932Languagesfemale72409392
        student933Mathematicsmale7558326
        student934Languagesfemale15982728
        student935Mathematicsmale7688806
        student936Languagesfemale84234292
        student937Mathematicsmale71568671
        student938Languagesfemale7395822
        student939Mathematicsmale1555460
        student940Languagesfemale2031308
        student941Mathematicsmale97544181
        student942Languagesfemale83418664
        student943Mathematicsmale7195327
        student944Languagesfemale0273091
        student945Mathematicsmale99751722
        student946Languagesfemale92531090
        student947Mathematicsmale4449432
        student948Languagesfemale0974879
        student949Mathematicsmale97557974
        student950Languagesfemale6598932
        student951Mathematicsmale56733881
        student952Languagesfemale84946150
        student953Mathematicsmale4820770
        student954Languagesfemale39981420
        student955Mathematicsmale4152465
        student956Languagesfemale78229231
        student957Mathematicsmale28382654
        student958Languagesfemale49613554
        student959Mathematicsmale81152817
        student960Languagesfemale5480582
        student961Mathematicsmale7523537
        student962Languagesfemale5565120
        student963Mathematicsmale86427036
        student964Languagesfemale54455480
        student965Mathematicsmale38186992
        student966Languagesfemale33894683
        student967Mathematicsmale4395576
        student968Languagesfemale13261286
        student969Mathematicsmale94228559
        student970Languagesfemale9358610
        student971Mathematicsmale35728536
        student972Languagesfemale37519693
        student973Mathematicsmale71107959
        student974Languagesfemale71317393
        student975Mathematicsmale80268697
        student976Languagesfemale69216769
        student977Mathematicsmale38861039
        student978Languagesfemale48903981
        student979Mathematicsmale9083342
        student980Languagesfemale1919184
        student981Mathematicsmale98255046
        student982Languagesfemale38882116
        student983Mathematicsmale71481843
        student984Languagesfemale79851816
        student985Mathematicsmale51669068
        student986Languagesfemale100956591
        student987Mathematicsmale6742424
        student988Languagesfemale93809435
        student989Mathematicsmale65785794
        student990Languagesfemale27922191
        student991Mathematicsmale77152676
        student992Languagesfemale28845167
        student993Mathematicsmale3786250
        student994Languagesfemale59772074
        student995Mathematicsmale6266875
        student996Languagesfemale88703343
        student997Mathematicsmale73334253
        student998Languagesfemale6410231
        student999Mathematicsmale91931635
        student1000Languagesfemale30689540
        student1001Mathematicsmale2524832
        student1002Languagesfemale50775381
        student1003Mathematicsmale67441065
        student1004Languagesfemale29533486
        student1005Mathematicsmale77692275
        student1006Languagesfemale48829540
        student1007Mathematicsmale30712963
        student1008Languagesfemale4531471
        student1009Mathematicsmale81122044
        student1010Languagesfemale17668242
        student1011Mathematicsmale15113218
        student1012Languagesfemale27345919
        student1013Mathematicsmale18672514
        student1014Languagesfemale24645224
        student1015Mathematicsmale36874846
        student1016Languagesfemale3317068
        student1017Mathematicsmale4826380
        student1018Languagesfemale53638557
        student1019Mathematicsmale5873024
        student1020Languagesfemale8590810
        student1021Mathematicsmale69285276
        student1022Languagesfemale7522752

        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-update-cell.html000066400000000000000000000063061207406311000241640ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Appending table data with ajax

        Demo

        First Name Last Name Age Total Discount Date
        Peter Parker 28 $9.99 20% Jul 6, 2006 8:14 AM
        John Hood 33 $19.99 25% Dec 10, 2002 5:14 AM
        Clark Kent 18 $15.89 44% Jan 12, 2003 11:14 AM
        Bruce Almighty 45 $153.19 44% Jan 18, 2001 9:12 AM
        Bruce Evans 22 $13.19 11% Jan 18, 2007 9:12 AM


        Javascript

        
        	

        HTML

        
        	
        jquery-goodies-8/tablesorter/docs/example-widgets.html000066400000000000000000000165471207406311000234430ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0 - Writing custom widgets

        Javascript

        // add new widget called repeatHeaders
        $.tablesorter.addWidget({
        	// give the widget a id
        	id: "repeatHeaders",
        	// format is called when the on init and when a sorting has finished
        	format: function(table) {
        		// cache and collect all TH headers
        		if(!this.headers) {
        			var h = this.headers = []; 
        			$("thead th",table).each(function() {
        				h.push(
        					"" + $(this).text() + ""
        				);
        				
        			});
        		}
        		
        		// remove appended headers by classname.
        		$("tr.repated-header",table).remove();
        		
        		// loop all tr elements and insert a copy of the "headers"	
        		for(var i=0; i < table.tBodies[0].rows.length; i++) {
        			// insert a copy of the table head every 10th row
        			if((i%5) == 4) {
        				$("tbody tr:eq(" + i + ")",table).before(
        					$("").html(this.headers.join(""))
        				
        				);	
        			}
        		}
        	}
        });
        
        // call the tablesorter plugin and assign widgets with id "zebra" (Default widget in the core) and the newly created "repeatHeaders"
        $("table").tablesorter({
        	widgets: ['zebra','repeatHeaders']
        });
        

        Demo

        Name Major Sex English Japanese Calculus Geometry
        Name Major Sex English Japanese Calculus Geometry
        Student01 Languages male 80 70 75 80
        Student02 Mathematics male 90 88 100 90
        Student03 Languages female 85 95 80 85
        Student04 Languages male 60 55 100 100
        Student05 Languages female 68 80 95 80
        Student06 Mathematics male 100 99 100 90
        Student07 Mathematics male 85 68 90 90
        Student08 Languages male 100 90 90 85
        Student09 Mathematics male 80 50 65 75
        Student10 Languages male 85 100 100 90
        Student11 Languages male 86 85 100 100
        Student12 Mathematics female 100 75 70 85
        Student13 Languages female 100 80 100 90
        Student14 Languages female 50 45 55 90
        Student15 Languages male 95 35 100 90
        Student16 Languages female 100 50 30 70
        Student17 Languages female 80 100 55 65
        Student18 Mathematics male 30 49 55 75
        Student19 Languages male 68 90 88 70
        Student20 Mathematics male 40 45 40 80
        Student21 Languages male 50 45 100 100
        Student22 Mathematics male 100 99 100 90
        Student23 Languages female 85 80 80 80
        jquery-goodies-8/tablesorter/docs/img/000077500000000000000000000000001207406311000202155ustar00rootroot00000000000000jquery-goodies-8/tablesorter/docs/img/external.png000066400000000000000000000002451207406311000225460ustar00rootroot00000000000000PNG  IHDR ?PLTEf3̙ffDtRNSKF8IDATW%A@A"OT$xl:rBΞ!/Y5fIENDB`jquery-goodies-8/tablesorter/docs/index.html000066400000000000000000000504511207406311000214430ustar00rootroot00000000000000 jQuery plugin: Tablesorter 2.0

        Author: Christian Bach
        Version: 2.0.5 (changelog)
        Licence: Dual licensed under MIT or GPL licenses.

        Update! New version!, and the tablesorter docs are now available in russian, head over to tablesorter.ru

        Helping out! If you like tablesorter and you're feeling generous, take a look at my Amazon Wish List

        Comments and love letters can be sent to: .

        Contents

        1. Introduction
        2. Demo
        3. Getting started
        4. Examples
        5. Configuration
        6. Download
        7. Compatibility
        8. Support
        9. Credits

        Introduction

        tablesorter is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell. It has many useful features including:

        • Multi-column sorting
        • Parsers for sorting text, URIs, integers, currency, floats, IP addresses, dates (ISO, long and short formats), time. Add your own easily
        • Support secondary "hidden" sorting (e.g., maintain alphabetical sort when sorting on other criteria)
        • Extensibility via widget system
        • Cross-browser: IE 6.0+, FF 2+, Safari 2.0+, Opera 9.0+
        • Small code size

        Demo

        First Name Last Name Age Total Discount Difference Date
        Peter Parker 28 $9.99 20.9% +12.1 Jul 6, 2006 8:14 AM
        John Hood 33 $19.99 25% +12 Dec 10, 2002 5:14 AM
        Clark Kent 18 $15.89 44% -26 Jan 12, 2003 11:14 AM
        Bruce Almighty 45 $153.19 44.7% +77 Jan 18, 2001 9:12 AM
        Bruce Evans 22 $13.19 11% -100.9 Jan 18, 2007 9:12 AM
        Bruce Evans 22 $13.19 11% 0 Jan 18, 2007 9:12 AM

        TIP! Sort multiple columns simultaneously by holding down the shift key and clicking a second, third or even fourth column header!

        Getting started

        To use the tablesorter plugin, include the jQuery library and the tablesorter plugin inside the <head> tag of your HTML document:

        <script type="text/javascript" src="/path/to/jquery-latest.js"></script>
        <script type="text/javascript" src="/path/to/jquery.tablesorter.js"></script>
        

        tablesorter works on standard HTML tables. You must include THEAD and TBODY tags:

        <table id="myTable" class="tablesorter">
        <thead>
        <tr>
        	<th>Last Name</th>
        	<th>First Name</th>
        	<th>Email</th>
        	<th>Due</th>
        	<th>Web Site</th>
        </tr>
        </thead>
        <tbody>
        <tr>
        	<td>Smith</td>
        	<td>John</td>
        	<td>jsmith@gmail.com</td>
        	<td>$50.00</td>
        	<td>http://www.jsmith.com</td>
        </tr>
        <tr>
        	<td>Bach</td>
        	<td>Frank</td>
        	<td>fbach@yahoo.com</td>
        	<td>$50.00</td>
        	<td>http://www.frank.com</td>
        </tr>
        <tr>
        	<td>Doe</td>
        	<td>Jason</td>
        	<td>jdoe@hotmail.com</td>
        	<td>$100.00</td>
        	<td>http://www.jdoe.com</td>
        </tr>
        <tr>
        	<td>Conway</td>
        	<td>Tim</td>
        	<td>tconway@earthlink.net</td>
        	<td>$50.00</td>
        	<td>http://www.timconway.com</td>
        </tr>
        </tbody>
        </table>
        	

        Start by telling tablesorter to sort your table when the document is loaded:

        $(document).ready(function()
        	{
        		$("#myTable").tablesorter();
        	}
        );
        	

        Click on the headers and you'll see that your table is now sortable! You can also pass in configuration options when you initialize the table. This tells tablesorter to sort on the first and second column in ascending order.

        $(document).ready(function()
        	{
        		$("#myTable").tablesorter( {sortList: [[0,0], [1,0]]} );
        	}
        );
        	

        NOTE! tablesorter will auto-detect most data types including numbers, dates, ip-adresses for more information see Examples

        Examples

        These examples will show what's possible with tablesorter. You need Javascript enabled to run these samples, just like you and your users will need Javascript enabled to use tablesorter.

        Basic Metadata - setting inline options Advanced Companion plugins

        Configuration

        tablesorter has many options you can pass in at initialization to achieve different effects:

        Property Type Default Description Link
        sortList Array null An array of instructions for per-column sorting and direction in the format: [[columnIndex, sortDirection], ... ] where columnIndex is a zero-based index for your columns left-to-right and sortDirection is 0 for Ascending and 1 for Descending. A valid argument that sorts ascending first by column 1 and then column 2 looks like: [[0,0],[1,0]] Example
        sortMultiSortKey String shiftKey The key used to select more than one column for multi-column sorting. Defaults to the shift key. Other options might be ctrlKey, altKey.
        Reference: http://developer.mozilla.org/en/docs/DOM:event#Properties
        Example
        textExtraction String Or Function simple Defines which method is used to extract data from a table cell for sorting. Built-in options include "simple" and "complex". Use complex if you have data marked up inside of a table cell like: <td><strong><em>123 Main Street</em></strong></td>. Complex can be slow in large tables so consider writing your own text extraction function "myTextExtraction" which you define like:
        var myTextExtraction = function(node) 
        { 
        	// extract data from markup and return it 
        	return node.childNodes[0].childNodes[0].innerHTML;
        }
        $(document).ready(function()
        	{
        		$("#myTable").tableSorter( {textExtraction: myTextExtraction} );
        	}
        );
        
        tablesorter will pass a jQuery object containing the contents of the current cell for you to parse and return. Thanks to Josh Nathanson for the examples.
        Example
        headers Object null An object of instructions for per-column controls in the format: headers: { 0: { option: setting }, ... } For example, to disable sorting on the first two columns of a table: headers: { 0: { sorter: false}, 1: {sorter: false} } Example
        sortForce Array null Use to add an additional forced sort that will be appended to the dynamic selections by the user. For example, can be used to sort people alphabetically after some other user-selected sort that results in rows with the same value like dates or money due. It can help prevent data from appearing as though it has a random secondary sort. Example
        widthFixed Boolean false Indicates if tablesorter should apply fixed widths to the table columns. This is useful for the Pager companion. Requires the jQuery dimension plugin to work. Example
        cancelSelection Boolean true Indicates if tablesorter should disable selection of text in the table header (TH). Makes header behave more like a button.
        cssHeader String "header" The CSS style used to style the header in its unsorted state. Example from the blue skin:
        th.header {
        	background-image: url(../img/small.gif);	
        	cursor: pointer;
        	font-weight: bold;
        	background-repeat: no-repeat;
        	background-position: center left;
        	padding-left: 20px;
        	border-right: 1px solid #dad9c7;
        	margin-left: -1px;
        }
        
        cssAsc String "headerSortUp" The CSS style used to style the header when sorting ascending. Example from the blue skin:
        th.headerSortUp {
        	background-image: url(../img/small_asc.gif);
        	background-color: #3399FF;
        }
        
        cssDesc String "headerSortDown" The CSS style used to style the header when sorting descending. Example from the blue skin:
        th.headerSortDown {
        	background-image: url(../img/small_desc.gif);
        	background-color: #3399FF;
        }
        
        debug Boolean false Boolean flag indicating if tablesorter should display debuging information usefull for development. Example

        Download

        Full release - Plugin, Documentation, Add-ons, Themes jquery.tablesorter.zip

        Pick n choose - Place at least the required files in a directory on your webserver that is accessible to a web browser. Record this location.

        Required: Optional/Add-Ons: Widgets: Themes:
        • Green Skin - Images and CSS styles for green themed headers
        • Blue Skin - Images and CSS styles for blue themed headers (as seen in the examples)

        Browser Compatibility

        tablesorter has been tested successfully in the following browsers with Javascript enabled:

        • Firefox 2+
        • Internet Explorer 6+
        • Safari 2+
        • Opera 9+
        • Konqueror

        jQuery Browser Compatibility

        Support

        Support is available through the jQuery Mailing List.

        Access to the jQuery Mailing List is also available through Nabble Forums.

        Credits

        Written by Christian Bach.

        Documentation written by Brian Ghidinelli, based on Mike Alsup's great documention.

        John Resig for the fantastic jQuery

        jquery-goodies-8/tablesorter/jquery.tablesorter.js000066400000000000000000001177221207406311000227250ustar00rootroot00000000000000/* * * TableSorter 2.0 - Client-side table sorting with ease! * Version 2.0.5b * @requires jQuery v1.2.3 * * Copyright (c) 2007 Christian Bach * Examples and docs at: http://tablesorter.com * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * */ /** * * @description Create a sortable table with multi-column sorting capabilitys * * @example $('table').tablesorter(); * @desc Create a simple tablesorter interface. * * @example $('table').tablesorter({ sortList:[[0,0],[1,0]] }); * @desc Create a tablesorter interface and sort on the first and secound column column headers. * * @example $('table').tablesorter({ headers: { 0: { sorter: false}, 1: {sorter: false} } }); * * @desc Create a tablesorter interface and disableing the first and second column headers. * * * @example $('table').tablesorter({ headers: { 0: {sorter:"integer"}, 1: {sorter:"currency"} } }); * * @desc Create a tablesorter interface and set a column parser for the first * and second column. * * * @param Object * settings An object literal containing key/value pairs to provide * optional settings. * * * @option String cssHeader (optional) A string of the class name to be appended * to sortable tr elements in the thead of the table. Default value: * "header" * * @option String cssAsc (optional) A string of the class name to be appended to * sortable tr elements in the thead on a ascending sort. Default value: * "headerSortUp" * * @option String cssDesc (optional) A string of the class name to be appended * to sortable tr elements in the thead on a descending sort. Default * value: "headerSortDown" * * @option String sortInitialOrder (optional) A string of the inital sorting * order can be asc or desc. Default value: "asc" * * @option String sortMultisortKey (optional) A string of the multi-column sort * key. Default value: "shiftKey" * * @option String textExtraction (optional) A string of the text-extraction * method to use. For complex html structures inside td cell set this * option to "complex", on large tables the complex option can be slow. * Default value: "simple" * * @option Object headers (optional) An array containing the forces sorting * rules. This option let's you specify a default sorting rule. Default * value: null * * @option Array sortList (optional) An array containing the forces sorting * rules. This option let's you specify a default sorting rule. Default * value: null * * @option Array sortForce (optional) An array containing forced sorting rules. * This option let's you specify a default sorting rule, which is * prepended to user-selected rules. Default value: null * * @option Boolean sortLocaleCompare (optional) Boolean flag indicating whatever * to use String.localeCampare method or not. Default set to true. * * * @option Array sortAppend (optional) An array containing forced sorting rules. * This option let's you specify a default sorting rule, which is * appended to user-selected rules. Default value: null * * @option Boolean widthFixed (optional) Boolean flag indicating if tablesorter * should apply fixed widths to the table columns. This is usefull when * using the pager companion plugin. This options requires the dimension * jquery plugin. Default value: false * * @option Boolean cancelSelection (optional) Boolean flag indicating if * tablesorter should cancel selection of the table headers text. * Default value: true * * @option Boolean debug (optional) Boolean flag indicating if tablesorter * should display debuging information usefull for development. * * @type jQuery * * @name tablesorter * * @cat Plugins/Tablesorter * * @author Christian Bach/christian.bach@polyester.se */ (function ($) { $.extend({ tablesorter: new function () { var parsers = [], widgets = []; this.defaults = { cssHeader: "header", cssAsc: "headerSortUp", cssDesc: "headerSortDown", cssChildRow: "expand-child", sortInitialOrder: "asc", sortMultiSortKey: "shiftKey", sortForce: null, sortAppend: null, sortLocaleCompare: true, textExtraction: "simple", parsers: {}, widgets: [], widgetZebra: { css: ["even", "odd"] }, headers: {}, widthFixed: false, cancelSelection: true, sortList: [], headerList: [], dateFormat: "us", decimal: '/\.|\,/g', onRenderHeader: null, selectorHeaders: 'thead th', debug: false }; /* debuging utils */ function benchmark(s, d) { log(s + "," + (new Date().getTime() - d.getTime()) + "ms"); } this.benchmark = benchmark; function log(s) { if (typeof console != "undefined" && typeof console.debug != "undefined") { console.log(s); } else { alert(s); } } /* parsers utils */ function buildParserCache(table, $headers) { if (table.config.debug) { var parsersDebug = ""; } if (table.tBodies.length == 0) return; // In the case of empty tables var rows = table.tBodies[0].rows; if (rows[0]) { var list = [], cells = rows[0].cells, l = cells.length; for (var i = 0; i < l; i++) { var p = false; if ($.metadata && ($($headers[i]).metadata() && $($headers[i]).metadata().sorter)) { p = getParserById($($headers[i]).metadata().sorter); } else if ((table.config.headers[i] && table.config.headers[i].sorter)) { p = getParserById(table.config.headers[i].sorter); } if (!p) { p = detectParserForColumn(table, rows, -1, i); } if (table.config.debug) { parsersDebug += "column:" + i + " parser:" + p.id + "\n"; } list.push(p); } } if (table.config.debug) { log(parsersDebug); } return list; }; function detectParserForColumn(table, rows, rowIndex, cellIndex) { var l = parsers.length, node = false, nodeValue = false, keepLooking = true; while (nodeValue == '' && keepLooking) { rowIndex++; if (rows[rowIndex]) { node = getNodeFromRowAndCellIndex(rows, rowIndex, cellIndex); nodeValue = trimAndGetNodeText(table.config, node); if (table.config.debug) { log('Checking if value was empty on row:' + rowIndex); } } else { keepLooking = false; } } for (var i = 1; i < l; i++) { if (parsers[i].is(nodeValue, table, node)) { return parsers[i]; } } // 0 is always the generic parser (text) return parsers[0]; } function getNodeFromRowAndCellIndex(rows, rowIndex, cellIndex) { return rows[rowIndex].cells[cellIndex]; } function trimAndGetNodeText(config, node) { return $.trim(getElementText(config, node)); } function getParserById(name) { var l = parsers.length; for (var i = 0; i < l; i++) { if (parsers[i].id.toLowerCase() == name.toLowerCase()) { return parsers[i]; } } return false; } /* utils */ function buildCache(table) { if (table.config.debug) { var cacheTime = new Date(); } var totalRows = (table.tBodies[0] && table.tBodies[0].rows.length) || 0, totalCells = (table.tBodies[0].rows[0] && table.tBodies[0].rows[0].cells.length) || 0, parsers = table.config.parsers, cache = { row: [], normalized: [] }; for (var i = 0; i < totalRows; ++i) { /** Add the table data to main data array */ var c = $(table.tBodies[0].rows[i]), cols = []; // if this is a child row, add it to the last row's children and // continue to the next row if (c.hasClass(table.config.cssChildRow)) { cache.row[cache.row.length - 1] = cache.row[cache.row.length - 1].add(c); // go to the next for loop continue; } cache.row.push(c); for (var j = 0; j < totalCells; ++j) { cols.push(parsers[j].format(getElementText(table.config, c[0].cells[j]), table, c[0].cells[j])); } cols.push(cache.normalized.length); // add position for rowCache cache.normalized.push(cols); cols = null; }; if (table.config.debug) { benchmark("Building cache for " + totalRows + " rows:", cacheTime); } return cache; }; function getElementText(config, node) { var text = ""; if (!node) return ""; if (!config.supportsTextContent) config.supportsTextContent = node.textContent || false; if (config.textExtraction == "simple") { if (config.supportsTextContent) { text = node.textContent; } else { if (node.childNodes[0] && node.childNodes[0].hasChildNodes()) { text = node.childNodes[0].innerHTML; } else { text = node.innerHTML; } } } else { if (typeof(config.textExtraction) == "function") { text = config.textExtraction(node); } else { text = $(node).text(); } } return text; } function appendToTable(table, cache) { if (table.config.debug) { var appendTime = new Date() } var c = cache, r = c.row, n = c.normalized, totalRows = n.length, checkCell = (n[0].length - 1), tableBody = $(table.tBodies[0]), rows = []; for (var i = 0; i < totalRows; i++) { var pos = n[i][checkCell]; rows.push(r[pos]); if (!table.config.appender) { //var o = ; var l = r[pos].length; for (var j = 0; j < l; j++) { tableBody[0].appendChild(r[pos][j]); } // } } if (table.config.appender) { table.config.appender(table, rows); } rows = null; if (table.config.debug) { benchmark("Rebuilt table:", appendTime); } // apply table widgets applyWidget(table); // trigger sortend setTimeout(function () { $(table).trigger("sortEnd"); }, 0); }; function buildHeaders(table) { if (table.config.debug) { var time = new Date(); } var meta = ($.metadata) ? true : false; var header_index = computeTableHeaderCellIndexes(table); $tableHeaders = $(table.config.selectorHeaders, table).each(function (index) { this.column = header_index[this.parentNode.rowIndex + "-" + this.cellIndex]; // this.column = index; this.order = formatSortingOrder(table.config.sortInitialOrder); this.count = this.order; if (checkHeaderMetadata(this) || checkHeaderOptions(table, index)) this.sortDisabled = true; if (checkHeaderOptionsSortingLocked(table, index)) this.order = this.lockedOrder = checkHeaderOptionsSortingLocked(table, index); if (!this.sortDisabled) { var $th = $(this).addClass(table.config.cssHeader); if (table.config.onRenderHeader) table.config.onRenderHeader.apply($th); } // add cell to headerList table.config.headerList[index] = this; }); if (table.config.debug) { benchmark("Built headers:", time); log($tableHeaders); } return $tableHeaders; }; // from: // http://www.javascripttoolbox.com/lib/table/examples.php // http://www.javascripttoolbox.com/temp/table_cellindex.html function computeTableHeaderCellIndexes(t) { var matrix = []; var lookup = {}; var thead = t.getElementsByTagName('THEAD')[0]; var trs = thead.getElementsByTagName('TR'); for (var i = 0; i < trs.length; i++) { var cells = trs[i].cells; for (var j = 0; j < cells.length; j++) { var c = cells[j]; var rowIndex = c.parentNode.rowIndex; var cellId = rowIndex + "-" + c.cellIndex; var rowSpan = c.rowSpan || 1; var colSpan = c.colSpan || 1 var firstAvailCol; if (typeof(matrix[rowIndex]) == "undefined") { matrix[rowIndex] = []; } // Find first available column in the first row for (var k = 0; k < matrix[rowIndex].length + 1; k++) { if (typeof(matrix[rowIndex][k]) == "undefined") { firstAvailCol = k; break; } } lookup[cellId] = firstAvailCol; for (var k = rowIndex; k < rowIndex + rowSpan; k++) { if (typeof(matrix[k]) == "undefined") { matrix[k] = []; } var matrixrow = matrix[k]; for (var l = firstAvailCol; l < firstAvailCol + colSpan; l++) { matrixrow[l] = "x"; } } } } return lookup; } function checkCellColSpan(table, rows, row) { var arr = [], r = table.tHead.rows, c = r[row].cells; for (var i = 0; i < c.length; i++) { var cell = c[i]; if (cell.colSpan > 1) { arr = arr.concat(checkCellColSpan(table, headerArr, row++)); } else { if (table.tHead.length == 1 || (cell.rowSpan > 1 || !r[row + 1])) { arr.push(cell); } // headerArr[row] = (i+row); } } return arr; }; function checkHeaderMetadata(cell) { if (($.metadata) && ($(cell).metadata().sorter === false)) { return true; }; return false; } function checkHeaderOptions(table, i) { if ((table.config.headers[i]) && (table.config.headers[i].sorter === false)) { return true; }; return false; } function checkHeaderOptionsSortingLocked(table, i) { if ((table.config.headers[i]) && (table.config.headers[i].lockedOrder)) return table.config.headers[i].lockedOrder; return false; } function applyWidget(table) { var c = table.config.widgets; var l = c.length; for (var i = 0; i < l; i++) { getWidgetById(c[i]).format(table); } } function getWidgetById(name) { var l = widgets.length; for (var i = 0; i < l; i++) { if (widgets[i].id.toLowerCase() == name.toLowerCase()) { return widgets[i]; } } }; function formatSortingOrder(v) { if (typeof(v) != "Number") { return (v.toLowerCase() == "desc") ? 1 : 0; } else { return (v == 1) ? 1 : 0; } } function isValueInArray(v, a) { var l = a.length; for (var i = 0; i < l; i++) { if (a[i][0] == v) { return true; } } return false; } function setHeadersCss(table, $headers, list, css) { // remove all header information $headers.removeClass(css[0]).removeClass(css[1]); var h = []; $headers.each(function (offset) { if (!this.sortDisabled) { h[this.column] = $(this); } }); var l = list.length; for (var i = 0; i < l; i++) { h[list[i][0]].addClass(css[list[i][1]]); } } function fixColumnWidth(table, $headers) { var c = table.config; if (c.widthFixed) { var colgroup = $(''); $("tr:first td", table.tBodies[0]).each(function () { colgroup.append($('').css('width', $(this).width())); }); $(table).prepend(colgroup); }; } function updateHeaderSortCount(table, sortList) { var c = table.config, l = sortList.length; for (var i = 0; i < l; i++) { var s = sortList[i], o = c.headerList[s[0]]; o.count = s[1]; o.count++; } } /* sorting methods */ function multisort(table, sortList, cache) { if (table.config.debug) { var sortTime = new Date(); } var dynamicExp = "var sortWrapper = function(a,b) {", l = sortList.length; // TODO: inline functions. for (var i = 0; i < l; i++) { var c = sortList[i][0]; var order = sortList[i][1]; // var s = (getCachedSortType(table.config.parsers,c) == "text") ? // ((order == 0) ? "sortText" : "sortTextDesc") : ((order == 0) ? // "sortNumeric" : "sortNumericDesc"); // var s = (table.config.parsers[c].type == "text") ? ((order == 0) // ? makeSortText(c) : makeSortTextDesc(c)) : ((order == 0) ? // makeSortNumeric(c) : makeSortNumericDesc(c)); var s = (table.config.parsers[c].type == "text") ? ((order == 0) ? makeSortFunction("text", "asc", c) : makeSortFunction("text", "desc", c)) : ((order == 0) ? makeSortFunction("numeric", "asc", c) : makeSortFunction("numeric", "desc", c)); var e = "e" + i; dynamicExp += "var " + e + " = " + s; // + "(a[" + c + "],b[" + c // + "]); "; dynamicExp += "if(" + e + ") { return " + e + "; } "; dynamicExp += "else { "; } // if value is the same keep orignal order var orgOrderCol = cache.normalized[0].length - 1; dynamicExp += "return a[" + orgOrderCol + "]-b[" + orgOrderCol + "];"; for (var i = 0; i < l; i++) { dynamicExp += "}; "; } dynamicExp += "return 0; "; dynamicExp += "}; "; if (table.config.debug) { benchmark("Evaling expression:" + dynamicExp, new Date()); } eval(dynamicExp); cache.normalized.sort(sortWrapper); if (table.config.debug) { benchmark("Sorting on " + sortList.toString() + " and dir " + order + " time:", sortTime); } return cache; }; function makeSortFunction(type, direction, index) { var a = "a[" + index + "]", b = "b[" + index + "]"; if (type == 'text' && direction == 'asc') { return "(" + a + " == " + b + " ? 0 : (" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : (" + a + " < " + b + ") ? -1 : 1 )));"; } else if (type == 'text' && direction == 'desc') { return "(" + a + " == " + b + " ? 0 : (" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : (" + b + " < " + a + ") ? -1 : 1 )));"; } else if (type == 'numeric' && direction == 'asc') { return "(" + a + " === null && " + b + " === null) ? 0 :(" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : " + a + " - " + b + "));"; } else if (type == 'numeric' && direction == 'desc') { return "(" + a + " === null && " + b + " === null) ? 0 :(" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : " + b + " - " + a + "));"; } }; function makeSortText(i) { return "((a[" + i + "] < b[" + i + "]) ? -1 : ((a[" + i + "] > b[" + i + "]) ? 1 : 0));"; }; function makeSortTextDesc(i) { return "((b[" + i + "] < a[" + i + "]) ? -1 : ((b[" + i + "] > a[" + i + "]) ? 1 : 0));"; }; function makeSortNumeric(i) { return "a[" + i + "]-b[" + i + "];"; }; function makeSortNumericDesc(i) { return "b[" + i + "]-a[" + i + "];"; }; function sortText(a, b) { if (table.config.sortLocaleCompare) return a.localeCompare(b); return ((a < b) ? -1 : ((a > b) ? 1 : 0)); }; function sortTextDesc(a, b) { if (table.config.sortLocaleCompare) return b.localeCompare(a); return ((b < a) ? -1 : ((b > a) ? 1 : 0)); }; function sortNumeric(a, b) { return a - b; }; function sortNumericDesc(a, b) { return b - a; }; function getCachedSortType(parsers, i) { return parsers[i].type; }; /* public methods */ this.construct = function (settings) { return this.each(function () { // if no thead or tbody quit. if (!this.tHead || !this.tBodies) return; // declare var $this, $document, $headers, cache, config, shiftDown = 0, sortOrder; // new blank config object this.config = {}; // merge and extend. config = $.extend(this.config, $.tablesorter.defaults, settings); // store common expression for speed $this = $(this); // save the settings where they read $.data(this, "tablesorter", config); // build headers $headers = buildHeaders(this); // try to auto detect column type, and store in tables config this.config.parsers = buildParserCache(this, $headers); // build the cache for the tbody cells cache = buildCache(this); // get the css class names, could be done else where. var sortCSS = [config.cssDesc, config.cssAsc]; // fixate columns if the users supplies the fixedWidth option fixColumnWidth(this); // apply event handling to headers // this is to big, perhaps break it out? $headers.click( function (e) { var totalRows = ($this[0].tBodies[0] && $this[0].tBodies[0].rows.length) || 0; if (!this.sortDisabled && totalRows > 0) { // Only call sortStart if sorting is // enabled. $this.trigger("sortStart"); // store exp, for speed var $cell = $(this); // get current column index var i = this.column; // get current column sort order this.order = this.count++ % 2; // always sort on the locked order. if(this.lockedOrder) this.order = this.lockedOrder; // user only whants to sort on one // column if (!e[config.sortMultiSortKey]) { // flush the sort list config.sortList = []; if (config.sortForce != null) { var a = config.sortForce; for (var j = 0; j < a.length; j++) { if (a[j][0] != i) { config.sortList.push(a[j]); } } } // add column to sort list config.sortList.push([i, this.order]); // multi column sorting } else { // the user has clicked on an all // ready sortet column. if (isValueInArray(i, config.sortList)) { // revers the sorting direction // for all tables. for (var j = 0; j < config.sortList.length; j++) { var s = config.sortList[j], o = config.headerList[s[0]]; if (s[0] == i) { o.count = s[1]; o.count++; s[1] = o.count % 2; } } } else { // add column to sort list array config.sortList.push([i, this.order]); } }; setTimeout(function () { // set css for headers setHeadersCss($this[0], $headers, config.sortList, sortCSS); appendToTable( $this[0], multisort( $this[0], config.sortList, cache) ); }, 1); // stop normal event by returning false return false; } // cancel selection }).mousedown(function () { if (config.cancelSelection) { this.onselectstart = function () { return false }; return false; } }); // apply easy methods that trigger binded events $this.bind("update", function () { var me = this; setTimeout(function () { // rebuild parsers. me.config.parsers = buildParserCache( me, $headers); // rebuild the cache map cache = buildCache(me); }, 1); }).bind("updateCell", function (e, cell) { var config = this.config; // get position from the dom. var pos = [(cell.parentNode.rowIndex - 1), cell.cellIndex]; // update cache cache.normalized[pos[0]][pos[1]] = config.parsers[pos[1]].format( getElementText(config, cell), cell); }).bind("sorton", function (e, list) { $(this).trigger("sortStart"); config.sortList = list; // update and store the sortlist var sortList = config.sortList; // update header count index updateHeaderSortCount(this, sortList); // set css for headers setHeadersCss(this, $headers, sortList, sortCSS); // sort the table and append it to the dom appendToTable(this, multisort(this, sortList, cache)); }).bind("appendCache", function () { appendToTable(this, cache); }).bind("applyWidgetId", function (e, id) { getWidgetById(id).format(this); }).bind("applyWidgets", function () { // apply widgets applyWidget(this); }); if ($.metadata && ($(this).metadata() && $(this).metadata().sortlist)) { config.sortList = $(this).metadata().sortlist; } // if user has supplied a sort list to constructor. if (config.sortList.length > 0) { $this.trigger("sorton", [config.sortList]); } // apply widgets applyWidget(this); }); }; this.addParser = function (parser) { var l = parsers.length, a = true; for (var i = 0; i < l; i++) { if (parsers[i].id.toLowerCase() == parser.id.toLowerCase()) { a = false; } } if (a) { parsers.push(parser); }; }; this.addWidget = function (widget) { widgets.push(widget); }; this.formatFloat = function (s) { var i = parseFloat(s); return (isNaN(i)) ? 0 : i; }; this.formatInt = function (s) { var i = parseInt(s); return (isNaN(i)) ? 0 : i; }; this.isDigit = function (s, config) { // replace all an wanted chars and match. return /^[-+]?\d*$/.test($.trim(s.replace(/[,.']/g, ''))); }; this.clearTableBody = function (table) { if ($.browser.msie) { function empty() { while (this.firstChild) this.removeChild(this.firstChild); } empty.apply(table.tBodies[0]); } else { table.tBodies[0].innerHTML = ""; } }; } }); // extend plugin scope $.fn.extend({ tablesorter: $.tablesorter.construct }); // make shortcut var ts = $.tablesorter; // add default parsers ts.addParser({ id: "text", is: function (s) { return true; }, format: function (s) { return $.trim(s.toLocaleLowerCase()); }, type: "text" }); ts.addParser({ id: "digit", is: function (s, table) { var c = table.config; return $.tablesorter.isDigit(s, c); }, format: function (s) { return $.tablesorter.formatFloat(s); }, type: "numeric" }); ts.addParser({ id: "currency", is: function (s) { return /^[£$€?.]/.test(s); }, format: function (s) { return $.tablesorter.formatFloat(s.replace(new RegExp(/[£$€]/g), "")); }, type: "numeric" }); ts.addParser({ id: "ipAddress", is: function (s) { return /^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s); }, format: function (s) { var a = s.split("."), r = "", l = a.length; for (var i = 0; i < l; i++) { var item = a[i]; if (item.length == 2) { r += "0" + item; } else { r += item; } } return $.tablesorter.formatFloat(r); }, type: "numeric" }); ts.addParser({ id: "url", is: function (s) { return /^(https?|ftp|file):\/\/$/.test(s); }, format: function (s) { return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\/\//), '')); }, type: "text" }); ts.addParser({ id: "isoDate", is: function (s) { return /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(s); }, format: function (s) { return $.tablesorter.formatFloat((s != "") ? new Date(s.replace( new RegExp(/-/g), "/")).getTime() : "0"); }, type: "numeric" }); ts.addParser({ id: "percent", is: function (s) { return /\%$/.test($.trim(s)); }, format: function (s) { return $.tablesorter.formatFloat(s.replace(new RegExp(/%/g), "")); }, type: "numeric" }); ts.addParser({ id: "usLongDate", is: function (s) { return s.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/)); }, format: function (s) { return $.tablesorter.formatFloat(new Date(s).getTime()); }, type: "numeric" }); ts.addParser({ id: "shortDate", is: function (s) { return /\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s); }, format: function (s, table) { var c = table.config; s = s.replace(/\-/g, "/"); if (c.dateFormat == "us") { // reformat the string in ISO format s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$1/$2"); } else if (c.dateFormat == "uk") { // reformat the string in ISO format s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1"); } else if (c.dateFormat == "dd/mm/yy" || c.dateFormat == "dd-mm-yy") { s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/, "$1/$2/$3"); } return $.tablesorter.formatFloat(new Date(s).getTime()); }, type: "numeric" }); ts.addParser({ id: "time", is: function (s) { return /^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(s); }, format: function (s) { return $.tablesorter.formatFloat(new Date("2000/01/01 " + s).getTime()); }, type: "numeric" }); ts.addParser({ id: "metadata", is: function (s) { return false; }, format: function (s, table, cell) { var c = table.config, p = (!c.parserMetadataName) ? 'sortValue' : c.parserMetadataName; return $(cell).metadata()[p]; }, type: "numeric" }); // add default widgets ts.addWidget({ id: "zebra", format: function (table) { if (table.config.debug) { var time = new Date(); } var $tr, row = -1, odd; // loop through the visible rows $("tr:visible", table.tBodies[0]).each(function (i) { $tr = $(this); // style children rows the same way the parent // row was styled if (!$tr.hasClass(table.config.cssChildRow)) row++; odd = (row % 2 == 0); $tr.removeClass( table.config.widgetZebra.css[odd ? 0 : 1]).addClass( table.config.widgetZebra.css[odd ? 1 : 0]) }); if (table.config.debug) { $.tablesorter.benchmark("Applying Zebra widget", time); } } }); })(jQuery);jquery-goodies-8/tablesorter/themes/000077500000000000000000000000001207406311000177765ustar00rootroot00000000000000jquery-goodies-8/tablesorter/themes/blue/000077500000000000000000000000001207406311000207255ustar00rootroot00000000000000jquery-goodies-8/tablesorter/themes/blue/asc.gif000066400000000000000000000000661207406311000221640ustar00rootroot00000000000000GIF89a#-0!,  ڛgk$-;jquery-goodies-8/tablesorter/themes/blue/bg.gif000066400000000000000000000001001207406311000217730ustar00rootroot00000000000000GIF89a #-0!,  bxT2W>e`U;jquery-goodies-8/tablesorter/themes/blue/desc.gif000066400000000000000000000000661207406311000223340ustar00rootroot00000000000000GIF89a#-0!, ɭT2Y;jquery-goodies-8/tablesorter/themes/blue/style.css000066400000000000000000000016201207406311000225760ustar00rootroot00000000000000/* tables */ table.tablesorter { font-family:arial; background-color: #CDCDCD; margin:10px 0pt 15px; font-size: 8pt; width: 100%; text-align: left; } table.tablesorter thead tr th, table.tablesorter tfoot tr th { background-color: #e6EEEE; border: 1px solid #FFF; font-size: 8pt; padding: 4px; } table.tablesorter thead tr .header { background-image: url(bg.gif); background-repeat: no-repeat; background-position: center right; cursor: pointer; } table.tablesorter tbody td { color: #3D3D3D; padding: 4px; background-color: #FFF; vertical-align: top; } table.tablesorter tbody tr.odd td { background-color:#F0F0F6; } table.tablesorter thead tr .headerSortUp { background-image: url(asc.gif); } table.tablesorter thead tr .headerSortDown { background-image: url(desc.gif); } table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp { background-color: #8dbdd8; } jquery-goodies-8/tablesorter/themes/green/000077500000000000000000000000001207406311000210765ustar00rootroot00000000000000jquery-goodies-8/tablesorter/themes/green/asc.png000066400000000000000000000051511207406311000223540ustar00rootroot00000000000000PNG  IHDR,!TJf-gAMA7tEXtSoftwareAdobe ImageReadyqe<PLTEdmcePZfpֲZKQS}TZM^oEc;=@Innn.,FMYhJ&T-VNjUY Bj+(rJb_$'IDQJ(&BO; 5wՌw ݱ;1#mUČ_͸}!z{-bhS j%9"FRj8|a*qO޻}o FcChv T5; `1\e2\Va4 DQ$5,b"0YL6ݳ{v ?,9&FY#dz595 Uure$Q$5,b"0q\KnT\ܐQ#wkֆ-}\e宵DE=!* )Z+[g!8JtA4b"0uVkvv~?m_;}uuu֮Nkc~~'ulkg~~vvcWFvF j̰v5w18JtDPLvF]44=nݿ3|:ťKKK/>?>=/j/_բׂ_] $q G)=0̒y%yGdϘs#JerISRlR.C@yMMMʼɁR9'E%:I"^RJ8{aZm6IǪ^8vEG>zх7g7zɤM x%+&D _v Q$x K)=0L\.ΒgE7<-ăDDmAg5]_t_ֶ>y9o,kh]V| (IB i6>CB}t6w9<b%t)lpnw 6;"QRJ? 0wRM`v:66휰b%ǙW{Yp楰29NX` kz=8JtDp0b#'FƮ.6זUVV,ⲉ mk7!DENװôn 7aܞY݄d=gʤ$ b"0+f n},ǑH\! )cx/.#oDa(%&tl,PQ3.T\*O(3IENDB`jquery-goodies-8/tablesorter/themes/green/bg.png000066400000000000000000000051371207406311000222020ustar00rootroot00000000000000PNG  IHDR,!TJf-gAMA7tEXtSoftwareAdobe ImageReadyqe<PLTEcePZfpֲZKQS}TZM^oEc;=@InnnFMYhY_7-Ou>op$ KB]a+F㓛{ Fc2Chv T7;ˌ`1]el6VVU FDzjQ$x K)=0,999WV# ;x /YdܚY O֠+T l.,7Yzinr%:I"^RJ(&BO; o˳E?f5냏^|{k,QQPK-QQyxO,H D-FmȓmX%:Ii4b"0 MVkNNA?co֏'N!`6ta-ȱv4ufd֎LkgSA D'IkXJ Dia+ӿ/oGyoW-)++[V8XB]UAJ׫&@(IRB1zah\-ώGDmAgף]_t_>yKo,]v| (IB i6>CBd疿t:<^a%t)lpnw 6;"QRJ 0wMj}MMM]{!Ǚך{Yp529N@Z3{8q$x K)ia"#3c#3bc#c/.6˫b/* Ѷjcȑ1(IRB1zaaMXV:/* [݄f=`"ȕE%9I"^;] SH\:d]vڑnmoݚmmnD֎v@ 6GNװhƗ_w|tQiiǣDzeZӵZQ@ZӵKQ$FQJ(&BO; |rJ^ʼe폟3C枇d+%yJQ p*gU566*JƒϜep$x K) iaj$Uz1qcݤWT&ޮ6)EԮ(V =L>UAިv Q$x K)=0L\.ΒgE?M#7E]鉖@鑃%ϪG螬{罱@vYYlENװHH)ꝻDq-Y,N]<ûxI t1.|+]$x C)=0gs0 š.PQsQ?DWeIENDB`jquery-goodies-8/tablesorter/themes/green/style.css000066400000000000000000000014411207406311000227500ustar00rootroot00000000000000table.tablesorter { font-size: 12px; background-color: #4D4D4D; width: 1024px; border: 1px solid #000; } table.tablesorter th { text-align: left; padding: 5px; background-color: #6E6E6E; } table.tablesorter td { color: #FFF; padding: 5px; } table.tablesorter .even { background-color: #3D3D3D; } table.tablesorter .odd { background-color: #6E6E6E; } table.tablesorter .header { background-image: url(bg.png); background-repeat: no-repeat; border-left: 1px solid #FFF; border-right: 1px solid #000; border-top: 1px solid #FFF; padding-left: 30px; padding-top: 8px; height: auto; } table.tablesorter .headerSortUp { background-image: url(asc.png); background-repeat: no-repeat; } table.tablesorter .headerSortDown { background-image: url(desc.png); background-repeat: no-repeat; }jquery-goodies-8/tipsy/000077500000000000000000000000001207406311000153335ustar00rootroot00000000000000jquery-goodies-8/tipsy/LICENSE000066400000000000000000000021151207406311000163370ustar00rootroot00000000000000The MIT License Copyright (c) 2008 Jason Frame (jason@onehackoranother.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. jquery-goodies-8/tipsy/README000066400000000000000000000024451207406311000162200ustar00rootroot00000000000000tipsy - Facebook-style tooltip plugin for jQuery (c) 2008-2010 Jason Frame (jason@onehackoranother.com) Released under The MIT License. == DESCRIPTION: tipsy is a simple jQuery plugin for generating Facebook-style tooltips. It's used by Twitter, Github and Bitbucket, amongst others. == HOMEPAGE: http://onehackoranother.com/projects/jquery/tipsy == SOURCE: Hosted at GitHub; browse at: http://github.com/jaz303/tipsy/tree/master Or clone from: git://github.com/jaz303/tipsy.git == USAGE: 1. Copy the contents of src/{images,javascripts,stylesheets} to the corresponding asset directories in your project. If the relative path of your images directory from your stylesheets directory is not "../images", you'll need to adjust tipsy.css appropriately. 2. Insert the neccesary elements in your document's section, e.g.: Remember to include jquery.tipsy.js *after* including the main jQuery library. 3. Initialise Tipsy in your document.onload, e.g.: Please refer to the docs directory for more examples and documentation. jquery-goodies-8/tipsy/src/000077500000000000000000000000001207406311000161225ustar00rootroot00000000000000jquery-goodies-8/tipsy/src/images/000077500000000000000000000000001207406311000173675ustar00rootroot00000000000000jquery-goodies-8/tipsy/src/images/tipsy.gif000066400000000000000000000000721207406311000212250ustar00rootroot00000000000000GIF89a !,  oJe>!U;jquery-goodies-8/tipsy/src/javascripts/000077500000000000000000000000001207406311000204535ustar00rootroot00000000000000jquery-goodies-8/tipsy/src/javascripts/jquery.tipsy.js000066400000000000000000000161621207406311000235050ustar00rootroot00000000000000// tipsy, facebook style tooltips for jquery // version 1.0.0a // (c) 2008-2010 jason frame [jason@onehackoranother.com] // releated under the MIT license (function($) { function fixTitle($ele) { if ($ele.attr('title') || typeof($ele.attr('original-title')) != 'string') { $ele.attr('original-title', $ele.attr('title') || '').removeAttr('title'); } } function Tipsy(element, options) { this.$element = $(element); this.options = options; this.enabled = true; fixTitle(this.$element); } Tipsy.prototype = { show: function() { var title = this.getTitle(); if (title && this.enabled) { var $tip = this.tip(); $tip.find('.tipsy-inner')[this.options.html ? 'html' : 'text'](title); $tip[0].className = 'tipsy'; // reset classname in case of dynamic gravity $tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).appendTo(document.body); var pos = $.extend({}, this.$element.offset(), { width: this.$element[0].offsetWidth, height: this.$element[0].offsetHeight }); var actualWidth = $tip[0].offsetWidth, actualHeight = $tip[0].offsetHeight; var gravity = (typeof this.options.gravity == 'function') ? this.options.gravity.call(this.$element[0]) : this.options.gravity; var tp; switch (gravity.charAt(0)) { case 'n': tp = {top: pos.top + pos.height + this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2}; break; case 's': tp = {top: pos.top - actualHeight - this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2}; break; case 'e': tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth - this.options.offset}; break; case 'w': tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width + this.options.offset}; break; } if (gravity.length == 2) { if (gravity.charAt(1) == 'w') { tp.left = pos.left + pos.width / 2 - 15; } else { tp.left = pos.left + pos.width / 2 - actualWidth + 15; } } $tip.css(tp).addClass('tipsy-' + gravity); if (this.options.fade) { $tip.stop().css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: this.options.opacity}); } else { $tip.css({visibility: 'visible', opacity: this.options.opacity}); } } }, hide: function() { if (this.options.fade) { this.tip().stop().fadeOut(function() { $(this).remove(); }); } else { this.tip().remove(); } }, getTitle: function() { var title, $e = this.$element, o = this.options; fixTitle($e); var title, o = this.options; if (typeof o.title == 'string') { title = $e.attr(o.title == 'title' ? 'original-title' : o.title); } else if (typeof o.title == 'function') { title = o.title.call($e[0]); } title = ('' + title).replace(/(^\s*|\s*$)/, ""); return title || o.fallback; }, tip: function() { if (!this.$tip) { this.$tip = $('
        ').html('
        '); } return this.$tip; }, validate: function() { if (!this.$element[0].parentNode) this.hide(); }, enable: function() { this.enabled = true; }, disable: function() { this.enabled = false; }, toggleEnabled: function() { this.enabled = !this.enabled; } }; $.fn.tipsy = function(options) { if (options === true) { return this.data('tipsy'); } else if (typeof options == 'string') { return this.data('tipsy')[options](); } options = $.extend({}, $.fn.tipsy.defaults, options); function get(ele) { var tipsy = $.data(ele, 'tipsy'); if (!tipsy) { tipsy = new Tipsy(ele, $.fn.tipsy.elementOptions(ele, options)); $.data(ele, 'tipsy', tipsy); } return tipsy; } function enter() { var tipsy = get(this); tipsy.hoverState = 'in'; if (options.delayIn == 0) { tipsy.show(); } else { setTimeout(function() { if (tipsy.hoverState == 'in') tipsy.show(); }, options.delayIn); } }; function leave() { var tipsy = get(this); tipsy.hoverState = 'out'; if (options.delayOut == 0) { tipsy.hide(); } else { setTimeout(function() { if (tipsy.hoverState == 'out') tipsy.hide(); }, options.delayOut); } }; if (!options.live) this.each(function() { get(this); }); if (options.trigger != 'manual') { var binder = options.live ? 'live' : 'bind', eventIn = options.trigger == 'hover' ? 'mouseenter' : 'focus', eventOut = options.trigger == 'hover' ? 'mouseleave' : 'blur'; this[binder](eventIn, enter)[binder](eventOut, leave); } return this; }; $.fn.tipsy.defaults = { delayIn: 0, delayOut: 0, fade: false, fallback: '', gravity: 'n', html: false, live: false, offset: 0, opacity: 0.8, title: 'title', trigger: 'hover' }; // Overwrite this method to provide options on a per-element basis. // For example, you could store the gravity in a 'tipsy-gravity' attribute: // return $.extend({}, options, {gravity: $(ele).attr('tipsy-gravity') || 'n' }); // (remember - do not modify 'options' in place!) $.fn.tipsy.elementOptions = function(ele, options) { return $.metadata ? $.extend({}, options, $(ele).metadata()) : options; }; $.fn.tipsy.autoNS = function() { return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n'; }; $.fn.tipsy.autoWE = function() { return $(this).offset().left > ($(document).scrollLeft() + $(window).width() / 2) ? 'e' : 'w'; }; })(jQuery); jquery-goodies-8/tipsy/src/stylesheets/000077500000000000000000000000001207406311000204765ustar00rootroot00000000000000jquery-goodies-8/tipsy/src/stylesheets/tipsy.css000066400000000000000000000020641207406311000223620ustar00rootroot00000000000000.tipsy { padding: 5px; font-size: 10px; position: absolute; z-index: 100000; } .tipsy-inner { padding: 5px 8px 4px 8px; background-color: black; color: white; max-width: 200px; text-align: center; } .tipsy-inner { border-radius: 3px; -moz-border-radius:3px; -webkit-border-radius:3px; } .tipsy-arrow { position: absolute; background: url('../images/tipsy.gif') no-repeat top left; width: 9px; height: 5px; } .tipsy-n .tipsy-arrow { top: 0; left: 50%; margin-left: -4px; } .tipsy-nw .tipsy-arrow { top: 0; left: 10px; } .tipsy-ne .tipsy-arrow { top: 0; right: 10px; } .tipsy-s .tipsy-arrow { bottom: 0; left: 50%; margin-left: -4px; background-position: bottom left; } .tipsy-sw .tipsy-arrow { bottom: 0; left: 10px; background-position: bottom left; } .tipsy-se .tipsy-arrow { bottom: 0; right: 10px; background-position: bottom left; } .tipsy-e .tipsy-arrow { top: 50%; margin-top: -4px; right: 0; width: 5px; height: 9px; background-position: top right; } .tipsy-w .tipsy-arrow { top: 50%; margin-top: -4px; left: 0; width: 5px; height: 9px; } jquery-goodies-8/treetable/000077500000000000000000000000001207406311000161325ustar00rootroot00000000000000jquery-goodies-8/treetable/CHANGELOG000066400000000000000000000042371207406311000173520ustar00rootroot00000000000000== 2.3.0 - 16 March 2010 * Added GPL-LICENSE. The jQuery treeTable plugin is now dual-licensed under both the MIT and GPLv2 license. * Added reveal function to expand a tree to a given node. * Verified compatibility with jQuery 1.4.2. == 2.2.3 - 18 August 2009 * Further optimized performance by eliminating most calls to jQuery's css function == 2.2.2 - 25 July 2009 * Optimized performance of tree initialization (with initialState is collapsed) * Added option 'clickableNodeNames' to make entire node name clickable to expand branch * Updated jQuery to version 1.3.2 * Updated jQuery UI components to version 1.7.2 (Core, Draggable, Droppable) == 2.2.1 - 15 February 2009 * Updated jQuery to version 1.3.1 * Updated jQuery UI components to 1.6rc6 (Core, Draggable, Droppable) == 2.2 - 18 January 2009 * Fixed expander icon not showing on lazy-initialized nodes * Fixed drag and drop example code to work for tables within tables * Updated jQuery to version 1.3.0 * Updated jQuery UI components to 1.6rc5 (Core, Draggable, Droppable) == 2.1 - 16 November 2008 * Optimized for faster initial loading (Issue #1) * Implemented lazy initialization of nodes (Issue #1) * Added information about the order of the rows in the HTML table to the documentation (Issue 2) * Added performance.html with an example of a large table with drag and drop == 2.0 - 12 November 2008 * Renamed plugin from ActsAsTreeTable to treeTable * Added a minified version of the source code (jquery.treeTable.min.js) * Added appendBranchTo function for easier manipulation of the tree with drag & drop (see docs for an example) * Added option 'childPrefix' to allow customisation of the prefix used for node classes (default: 'child-of-') * Renamed option 'default_state' to 'initialState' * Changed initialState from 'expanded' to 'collapsed' * Refactored collapse/expand behavior * Moved private function bodies to their respective public function == 1.2 - 3 November 2008 * Added option 'default_state' * Expose additional functions: collapse, expand and toggleBranch == 1.1 - 21 October 2008 * Fix JavaScript errors in IE7 due to comma-madness * Fix collapse/expand behavior in IE7 == 1.0 - 2 October 2008 * Public releasejquery-goodies-8/treetable/GPL-LICENSE000066400000000000000000000353721207406311000175710ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.jquery-goodies-8/treetable/MIT-LICENSE000066400000000000000000000020751207406311000175720ustar00rootroot00000000000000Copyright (c) 2010 Ludo van den Boom, http://cubicphuse.nl Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.jquery-goodies-8/treetable/README.markdown000066400000000000000000000004551207406311000206370ustar00rootroot00000000000000jQuery treeTable plugin ======================= Display a data tree in a table, i.e. a directory structure or a nested list. Branches can be expanded/collapsed to show/hide nodes. Documentation ------------- See the file doc/index.html for documentation or visit http://blog.cubicphuse.nl/projects.jquery-goodies-8/treetable/doc/000077500000000000000000000000001207406311000166775ustar00rootroot00000000000000jquery-goodies-8/treetable/doc/images/000077500000000000000000000000001207406311000201445ustar00rootroot00000000000000jquery-goodies-8/treetable/doc/images/bg-table-thead.png000066400000000000000000000054241207406311000234170ustar00rootroot00000000000000PNG  IHDRD pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_F?IDATxl1 0@HiakU;" j`$lEmV;{LԂz;G+E IENDB`jquery-goodies-8/treetable/doc/images/folder.png000077500000000000000000000010311207406311000221230ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8œA[EtQg7wALCWA0P017p2=:A3cb2'pܪ$Vme@ ݬ2OTO1W/`z8% ;O;9P#9B}^nO;Ǫo~ d~E dpɳ__j jQuery treeTable Plugin Documentation

        jQuery treeTable Plugin Documentation

        Simple treeTable Example
        TreeColumn Additional data
        Node 1: Click on the icon in front of me to expand this branch. I live in the second column.
        Node 1.1: Look, I am a table row and I am part of a tree! Interesting.
        Node 1.1.1: I am part of the tree too! That's it!

        See the Examples chapter for more examples. To download releases of this plugin, visit treeTable's project page. The source code of this plugin and this documentation is available on GitHub: http://github.com/ludo/jquery-plugins/tree/master/treeTable.

        Table of Contents

        1. Introduction
        2. Installation
        3. Usage
          1. Include the plugin in your html document
          2. Representing your tree in a table
          3. Configuration
        4. Examples
          1. A complex tree
          2. A tree that is not collapsable
          3. Dragging and dropping example
          4. A large, complex table with drag and drop

        1. Introduction

        treeTable is a plugin for jQuery, the 'Write Less, Do More, JavaScript Library'. With this plugin you can display a tree in a table, i.e. a directory structure or a nested list. Why not use a list, you say? Because lists are great for displaying a tree, and tables are not. Oh wait, but this plugin uses tables, doesn't it? Yes. Why do I use a table to display a list? Because I need multiple columns to display additional data besides the tree.

        This plugin is released under the MIT license by Ludo van den Boom.

        Unobtrusiveness

        I wanted this plugin to be as unobtrusive as possible. Being 'unobtrusive' is very cool nowadays, so that was an important requirement. But it is cool for a reason: it keeps your html documents clean and it allows my code to degrade nicely when JavaScript is not available.

        Unfortunately, the treeTable plugin requires that you add class and id attributes to every row that is part of the tree. It would have been great if this weren't necessary, because it doesn't look pretty in your html, but the plugin needs to know what your tree looks like. Otherwise, it would have to guess the structure of the tree and it wouldn't be very successful in doing that. See the Usage chapter for more information on how to describe a tree.

        Features

        • It can display a tree of data in a table column.
        • It does this as unobtrusively as possible.
        • It allows branches to be collapsed and expanded (think of how a directory structure works in most file explorers).
        • It allows unlimited tree depth.
        • It uses the lightweight jQuery JavaScript libray.

        NOTE: This plugin was originally released under the name ActsAsTreeTable, but has been renamed to treeTable with version 2.0.

        2. Installation

        Installing this plugin is straight-forward. You will have to copy several files and, if necessary, adjust some paths so that every file is available to the plugin.

        1. Add jQuery to your project. See their website for instructions on doing this. You need at least version 1.2.6.
        2. Add src/javascripts/jquery.treeTable.js (or the minified version) to your project.
        3. Add the stylesheet src/stylesheets/jquery.treeTable.css to your project.
        4. Copy the images in src/images to your project.
        5. Adjust the paths to background-images in the stylesheet jquery.treeTable.css to point to the image files that you have just copied.

        That's it! You are now ready to start using the plugin in your project.

        3. Usage

        Note: This chapter assumes that you have already installed jQuery as described on their website.

        3.1 Include the plugin in your html document

        Paste the following code between the head tags in your html document, underneath the part where you include jQuery. Change the red parts to reflect your situation.

        <link href="path/to/jquery.treeTable.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="path/to/jquery.treeTable.js"></script>
        <script type="text/javascript">
          
        $(document).ready(function()  {
          $("#your_table_id").treeTable();
        });
          
        </script>
        

        3.2 Representing your tree in a table

        When you pasted the above code and adjusted it to reflect your situation, you enabled the possibility of displaying a tree in your table. To make the tree actually display as a tree you have to add id and class attributes to your table rows (tr).

        How to do this?

        First, you should add a unique id to each of the rows in your table, for example 'node-x' where x is a number. Then you add a class attribute to each child of a node, give this class a name of 'child-of-node-x'. The node-x part should be the same as the id of its parent. Do you still follow me? Let me show you an example of a very simple tree: a single parent with a single child. For more examples you should view the source code of this page, where you find several tables for the examples in the Examples chapter.

        <table id="tree">
          <tr id="node-1">
            <td>Parent</td>
          </tr>
          <tr id="node-2" class="child-of-node-1">
            <td>Child</td>
          </tr>
          <tr id="node-3" class="child-of-node-2">
            <td>Child</td>
          </tr>
        </table>
        

        Please note that the plugin expects the rows in the HTML table to be in the same order in which they should be displayed in the tree. For example, suppose you have three nodes: A, B (child of node A) and C (child of node B). If you create rows for these nodes in your HTML table in the following order A - C - B, then the tree will not display correctly. You have to make sure that the rows are in the order A - B - C.

        3.3 Configuration

        There are several settings that let you adjust the behavior of the plugin. Each of these settings is described in this section. See Example 3 for an example of how to change these settings.

        Setting Type Default Description
        childPrefix string "child-of-" Customize the prefix used for node classes.
        clickableNodeNames bool false Set to true to expand branches not only when expander icon is clicked but also when node name is clicked.
        expandable bool true Should the tree be expandable? An expandable tree contains buttons to make each branch with children collapsable/expandable.
        indent int 19 The number of pixels that each branch should be indented with.
        initialState string "expanded" Possible values: "expanded" or "collapsed".
        treeColumn int 0 The number of the column in the table that should be displayed as a tree.

        4. Examples

        The examples in this chapter all use the treeTable plugin to display a tree in a table, with collapsable branches. View the source code of this file to see how it is done and read the Usage chapter for further details.

        4.1 A complex tree

        Example 1: A complex tree.
        Node 1
        Node 1.1
        Node 1.2
        Node 1.3
        Node 2
        Node 2.1
        Node 2.1.1
        Node 2.2
        Node 2.2.1
        Node 2.2.1.1
        Node 2.2.2

        4.2 A tree that is not collapsable

        $("#example3").treeTable({
          expandable: false
        });
        
        Example 2: A tree that is not collapsable.
        Tree column Column 2
        Node 1 Second column
        Node 1.1 Second column
        Node 1.2 Second column
        Node 1.3 Second column
        Node 2 Second column
        Node 2.1 Second column
        Node 2.1.1 Second column
        Node 2.2 Second column
        Node 2.2.1 Second column
        Node 2.2.2 Second column

        4.3 Draging and dropping example

        This example uses the jQuery UI components Draggable and Droppable to create a tree that can be manipulated by dragging and dropping of the nodes. You can drag a node by clicking on it's title and drag it to a different position. This behavior requires a bit more coding than the simple trees above, but it is still pretty straight-forward. The code for this example is listed below. The most interesting line in this code, from the plugin's point of view is $($(ui.draggable).parents("tr")).appendBranchTo(this);. Here the appendBranchTo function is called to move the selected branch to a new location.

        Example 3: Dragging and dropping example.
        Title Size Kind
        CHANGELOG 4 KB Plain text
        doc -- Folder
        images -- Folder
        bg-table-thead.png 52 KB Portable Network Graphics image
        folder.png 4 KB Portable Network Graphics image
        page_white_text.png 4 KB Portable Network Graphics image
        index.html 4 KB HTML document
        javascripts -- Folder
        jquery.js 56 KB JavaScript source
        stylesheets -- Folder
        master.css 4 KB CSS style sheet
        MIT-LICENSE 4 KB Plain text
        README.markdown 4 KB Markdown document
        src -- Folder
        images -- Folder
        bullet_toggle_minus.png 4 KB Portable Network Graphics image
        bullet_toggle_plus.png 4 KB Portable Network Graphics image
        stylesheets -- Folder
        jquery.treeTable.css 4 KB CSS style sheet
        jquery.treeTable.js 8 KB JavaScript source
        /* NOTE: Do not forget to download the jQuery UI Draggable and Droppable
         * components if you want to enable dragging and dropping behavior!
         */
          
        // Configure draggable nodes
        $("#dnd-example .file, #dnd-example .folder").draggable({
          helper: "clone",
          opacity: .75,
          refreshPositions: true, // Performance?
          revert: "invalid",
          revertDuration: 300,
          scroll: true
        });
        
        // Configure droppable rows
        $("#dnd-example .folder").each(function() {
          $(this).parents("tr").droppable({
            accept: ".file, .folder",
            drop: function(e, ui) { 
              // Call jQuery treeTable plugin to move the branch
              $($(ui.draggable).parents("tr")).appendBranchTo(this);
            },
            hoverClass: "accept",
            over: function(e, ui) {
              // Make the droppable branch expand when a draggable node is moved over it.
              if(this.id != $(ui.draggable.parents("tr")[0]).id && !$(this).is(".expanded")) {
                $(this).expand();
              }
            }
          });
        });
        
        // Make visible that a row is clicked
        $("table#dnd-example tbody tr").mousedown(function() {
          $("tr.selected").removeClass("selected"); // Deselect currently selected rows
          $(this).addClass("selected");
        });
        
        // Make sure row is selected when span is clicked
        $("table#dnd-example tbody tr span").mousedown(function() {
          $($(this).parents("tr")[0]).trigger("mousedown");
        });
        
        jquery-goodies-8/treetable/doc/performance.html000066400000000000000000002216131207406311000220730ustar00rootroot00000000000000 jQuery treeTable Plugin Documentation

        jQuery treeTable Performance Test With D&D

        This is an example to demonstrate the performance of using the treeTable jQuery plugin with large tables. See ‘jQuery treeTable 2.0’ for more information. Dragging and dropping of nodes is enabled. There are 459 nodes in this example.

        For more information on how to use the treeTable plugin, see the documentation.

        Name Kind Size
        Acknowledgements.rtfFile480.95 KB
        CHUDFolder--
        amberFolder--
        AmberTraceFormats.pdfFile124.46 KB
        BigTopFolder--
        BigTopUserGuide.pdfFile1314.71 KB
        SaturnFolder--
        SaturnUserGuide.pdfFile694.29 KB
        SharkFolder--
        SharkUserGuide.pdfFile12902.51 KB
        simg4Folder--
        simg4_plusFolder--
        simg5Folder--
        DocSetsFolder--
        com.apple.ADC_Reference_Library.CoreReference.docsetFolder--
        ContentsFolder--
        Info.plistFile1.23 KB
        ResourcesFolder--
        docSet.dsidxFile41504 KB
        docSet.skidxFile43072 KB
        DocumentsFolder--
        documentationFolder--
        AccessibilityFolder--
        ReferenceFolder--
        AccessibilityCarbonRefFolder--
        CarbonAXRefRevisionsFolder--
        CarbonAXRefRevisions.htmlFile7.44 KB
        IndexFolder--
        index_of_book.htmlFile174.1 KB
        index.htmlFile1.1 KB
        ReferenceFolder--
        reference.htmlFile196.28 KB
        toc.htmlFile15.92 KB
        AccessibilityLowlevelFolder--
        accessibilityFolder--
        CompositePage.htmlFile5.7 KB
        index.htmlFile1.67 KB
        toc.htmlFile2.87 KB
        accessibility-constants.htmlFile26.94 KB
        accessibility-datatypes.htmlFile11.02 KB
        accessibility-functions.htmlFile15.55 KB
        accessibility-mpindex.htmlFile9.87 KB
        AXActionConstantsFolder--
        CompositePage.htmlFile15.08 KB
        index.htmlFile1.67 KB
        toc.htmlFile4.9 KB
        AXAttributeConstantsFolder--
        AXErrorFolder--
        AXNotificationConstantsFolder--
        AXRoleConstantsFolder--
        AXTextAttributedStringFolder--
        AXUIElementFolder--
        AXValueFolder--
        AXValueConstantsFolder--
        index.htmlFile10.1 KB
        UniversalAccessFolder--
        adcstyle.cssFile15.86 KB
        AppleApplicationsFolder--
        ReferenceFolder--
        AddressBookC_CollectionFolder--
        IndexFolder--
        index_of_book.htmlFile153.98 KB
        index.htmlFile13.62 KB
        IntroductionFolder--
        Introduction.htmlFile5.41 KB
        RevisionHistory.htmlFile4.66 KB
        AddressBookRefUpdateFolder--
        ArticlesFolder--
        AddressBook_10.1-10.2_SymbolChanges.htmlFile80.84 KB
        AddressBook_10.2-10.3_SymbolChanges.htmlFile54.2 KB
        AddressBook_10.3-10.4_SymbolChanges.htmlFile14.78 KB
        AddressBook_10.4-10.5_SymbolChanges.htmlFile11.03 KB
        Introduction.htmlFile7.3 KB
        RevisionHistory.htmlFile6.19 KB
        index.htmlFile1.08 KB
        toc.htmlFile2.84 KB
        AMWorkflow_classFolder--
        AMWorkflowController_classFolder--
        AMWorkflowView_ClassFolder--
        AppleApp_Aperture_002Folder--
        Automator_constantsFolder--
        AutomatorFrameworkFolder--
        AutomatorReferenceFolder--
        AutomatorRefUpdateFolder--
        CalendarStoreFrameworkFolder--
        CalendarStoreReferenceFolder--
        CalendarStoreRefUpdateFolder--
        Dashboard_RefFolder--
        FinalCutPro_XMLFolder--
        InstantMessageFrameworkFolder--
        InstantMessageFrameworkRefFolder--
        InstantMessageRefUpdateFolder--
        iSyncJavaScriptRefFolder--
        iSyncManualTestSuiteRefFolder--
        iSyncSyncMLRefFolder--
        MessageFrameworkReferenceFolder--
        Motion_FXPlug_RefFolder--
        SafariCSSRefFolder--
        SafariHTMLRefFolder--
        SyncServicesRefUpdateFolder--
        SyncServicesSchemaRefFolder--
        WebKitDOMRefFolder--
        AppleScriptFolder--
        ReferenceFolder--
        StudioReferenceFolder--
        artFolder--
        boxes.gifFile11.52 KB
        browser.gifFile26.04 KB
        button_in_window.gifFile8.17 KB
        cc_app_info_window.gifFile24.36 KB
        circular_prog_indicator.gifFile0.65 KB
        color_panel.jpgFile24.91 KB
        color_well.gifFile7.58 KB
        combobox.gifFile1.44 KB
        comboboxlist.gifFile4.12 KB
        display_alert.gifFile28.69 KB
        display_dialog.gifFile28.42 KB
        doc_exp_groups.gifFile22.52 KB
        drawer.gifFile34.4 KB
        drawer_content_view.gifFile8.21 KB
        drawer_instances_in_nib.gifFile20.97 KB
        drawers_in_palette.gifFile17.34 KB
        files_owner_in_nib.gifFile15.24 KB
        font_panel.gifFile17.16 KB
        hw_exp_grps_files.gifFile15.35 KB
        ib_number_formatter.gifFile1.46 KB
        image_tab_mainmenu_nib.gifFile12.33 KB
        image_view_from_app.gifFile17.18 KB
        matrix.gifFile7.36 KB
        menu_item.gifFile16.85 KB
        menu_showing_file_menu.gifFile17 KB
        movie_view.gifFile34.76 KB
        number_formatter_info.gifFile24.8 KB
        open_panel.gifFile32.06 KB
        outline_view.gifFile18.7 KB
        popup_button.gifFile6.76 KB
        progindindet.gifFile3.78 KB
        save_panel.gifFile39.43 KB
        secure_text_field.gifFile9.91 KB
        simple_toolbar.gifFile10.4 KB
        sliders.gifFile11.01 KB
        sounds_in_nib_window.gifFile22.26 KB
        split_view.gifFile15.73 KB
        stepper.gifFile1.08 KB
        table_app.gifFile22.72 KB
        table_view.gifFile14.55 KB
        tabview.gifFile24.86 KB
        text_fields.gifFile7.1 KB
        text_view.gifFile12.18 KB
        to_do_outline.gifFile15.4 KB
        window.gifFile6.41 KB
        IndexFolder--
        index.htmlFile1.13 KB
        sr10_panel_suiteFolder--
        sr10_pplugin_suiteFolder--
        sr11_textview_suiteFolder--
        sr1_aboutFolder--
        sr2_fundamentalsFolder--
        sr3_app_suiteFolder--
        sr4_container_suiteFolder--
        sr5_control_suiteFolder--
        sr6_data_suiteFolder--
        sr7_doc_suiteFolder--
        sr8_drag_drop_suiteFolder--
        sr9_menu_suiteFolder--
        sr_historyFolder--
        toc.htmlFile132.84 KB
        CarbonFolder--
        CocoaFolder--
        CoreFoundationFolder--
        cssFolder--
        DarwinFolder--
        DeveloperToolsFolder--
        DeviceDriversFolder--
        GamesFolder--
        GraphicsImagingFolder--
        HardwareFolder--
        HardwareDriversFolder--
        imagesFolder--
        index-date.htmlFile74.06 KB
        index-date0.htmlFile284.1 KB
        index-date2.htmlFile73.94 KB
        index-date3.htmlFile74.4 KB
        index-date4.htmlFile75.11 KB
        index-date5.htmlFile41.11 KB
        index-rev-date.htmlFile49.03 KB
        index-rev-revision.htmlFile49.01 KB
        index-rev-title.htmlFile49.03 KB
        index-rev-topic.htmlFile71.41 KB
        index-rev-topic0.htmlFile93.76 KB
        index-rev-topic2.htmlFile29.61 KB
        index-title.htmlFile73.91 KB
        index-title0.htmlFile284.11 KB
        index-title2.htmlFile74.7 KB
        index-title3.htmlFile73 KB
        index-title4.htmlFile74.15 KB
        index-title5.htmlFile42.91 KB
        index-topic.htmlFile72.46 KB
        index-topic0.htmlFile601.26 KB
        index-topic10.htmlFile74.41 KB
        index-topic2.htmlFile73.6 KB
        index-topic3.htmlFile72.47 KB
        index-topic4.htmlFile71.89 KB
        index-topic5.htmlFile73.89 KB
        index-topic6.htmlFile73.1 KB
        index-topic7.htmlFile70.55 KB
        index-topic8.htmlFile71.25 KB
        index-topic9.htmlFile72.56 KB
        index.htmlFile20.65 KB
        InternationalizationFolder--
        InternetWebFolder--
        iPhoneFolder--
        jsFolder--
        LegacyTechnologiesFolder--
        MacOSXFolder--
        MacOSXServerFolder--
        MusicAudioFolder--
        NetworkingFolder--
        OpenSourceFolder--
        PerformanceFolder--
        PortingFolder--
        PrintingFolder--
        QuickTimeFolder--
        ResourcesFolder--
        ScriptingAutomationFolder--
        SecurityFolder--
        StorageFolder--
        TextFontsFolder--
        UserExperienceFolder--
        WebObjectsFolder--
        referencelibraryFolder--
        adc.cssFile1.46 KB
        base.cssFile1.08 KB
        imagesFolder--
        body_bg.gifFile0.24 KB
        main_bgbottom.gifFile2.35 KB
        main_bgtop.gifFile6.88 KB
        main_bgtop_stroke.gifFile7.62 KB
        UpdateBanner_core.pngFile24.25 KB
        index.htmlFile1.15 KB
        version.plistFile0.44 KB
        com.apple.ADC_Reference_Library.DeveloperTools.docsetFolder--
        ContentsFolder--
        Info.plistFile1.33 KB
        ResourcesFolder--
        docSet.dsidxFile2752 KB
        docSet.skidxFile5664 KB
        DocumentsFolder--
        documentationFolder--
        adcstyle.cssFile15.86 KB
        AppleApplicationsFolder--
        AppleApplications.htmlFile0.22 KB
        ConceptualFolder--
        Dashcode_UserGuideFolder--
        ContentsFolder--
        ResourcesFolder--
        de.lprojFolder--
        AdvancedFolder--
        chapter_8_section_1.htmlFile6.71 KB
        chapter_8_section_2.htmlFile7.93 KB
        chapter_8_section_3.htmlFile6.38 KB
        ArtFolder--
        apple_birthday_widget.jpgFile33.5 KB
        canvas_inspector.jpgFile71.75 KB
        countdown_attributes.jpgFile46.69 KB
        project_window.jpgFile107.57 KB
        source_code_inspector.jpgFile76.19 KB
        webapp_add_code.jpgFile85.65 KB
        webapp_add_part.jpgFile108.16 KB
        webapp_first_test.jpgFile86.82 KB
        webapp_project_window.jpgFile152.27 KB
        chapter_999_section_1.htmlFile6.3 KB
        CodeAndDebuggingFolder--
        Dashcode_UserGuide.pdfFile1875.27 KB
        DebuggingSharingFolder--
        DesignToolsFolder--
        index.htmlFile1.11 KB
        IntroductionFolder--
        MakingaWebAppFolder--
        MakingaWidgetwithDashcodeFolder--
        PartsReferenceFolder--
        TemplatesFolder--
        toc.htmlFile38.57 KB
        WidgetProjectsFolder--
        en.lprojFolder--
        AdvancedFolder--
        chapter_8_section_1.htmlFile6.6 KB
        chapter_8_section_2.htmlFile7.4 KB
        chapter_8_section_3.htmlFile6.24 KB
        ArtFolder--
        chapter_999_section_1.htmlFile6.2 KB
        CodeAndDebuggingFolder--
        Dashcode_UserGuide.pdfFile1087.36 KB
        DebuggingSharingFolder--
        DesignToolsFolder--
        index.htmlFile1.09 KB
        IntroductionFolder--
        MakingaWebAppFolder--
        MakingaWidgetwithDashcodeFolder--
        PartsReferenceFolder--
        TemplatesFolder--
        toc.htmlFile38.11 KB
        WidgetProjectsFolder--
        es.lprojFolder--
        fr.lprojFolder--
        it.lprojFolder--
        ja.lprojFolder--
        nl.lprojFolder--
        zh.lprojFolder--
        Dashboard-date.htmlFile10.88 KB
        Dashboard-rev-date.htmlFile8.85 KB
        Dashboard-rev-revision.htmlFile8.83 KB
        Dashboard-rev-title.htmlFile8.85 KB
        Dashboard-title.htmlFile10.71 KB
        index-date.htmlFile11.79 KB
        index-rev-date.htmlFile9.38 KB
        index-rev-revision.htmlFile9.36 KB
        index-rev-title.htmlFile9.37 KB
        index-rev-topic.htmlFile9.37 KB
        index-title.htmlFile11.78 KB
        index-topic.htmlFile12.39 KB
        index.htmlFile7.24 KB
        iSync-date.htmlFile8.17 KB
        iSync-title.htmlFile8 KB
        CarbonFolder--
        Carbon.htmlFile0.21 KB
        DesignGuidelines-date.htmlFile9.93 KB
        DesignGuidelines-rev-date.htmlFile7.45 KB
        DesignGuidelines-rev-revision.htmlFile7.44 KB
        DesignGuidelines-rev-title.htmlFile7.45 KB
        DesignGuidelines-title.htmlFile9.77 KB
        index-date.htmlFile19.66 KB
        index-rev-date.htmlFile12.35 KB
        index-rev-revision.htmlFile12.33 KB
        index-rev-title.htmlFile12.34 KB
        index-rev-topic.htmlFile12.98 KB
        index-title.htmlFile19.65 KB
        index-topic.htmlFile22.64 KB
        index.htmlFile10.96 KB
        IntelBasedMacs-date.htmlFile10.5 KB
        IntelBasedMacs-title.htmlFile10.33 KB
        Performance-date.htmlFile9.14 KB
        Performance-title.htmlFile8.98 KB
        Porting-date.htmlFile8.78 KB
        Porting-title.htmlFile8.63 KB
        Tools-date.htmlFile16.03 KB
        Tools-rev-date.htmlFile10.85 KB
        Tools-rev-revision.htmlFile10.83 KB
        Tools-rev-title.htmlFile10.84 KB
        Tools-title.htmlFile15.88 KB
        UserExperience-date.htmlFile8.85 KB
        UserExperience-title.htmlFile8.69 KB
        CocoaFolder--
        CoreFoundationFolder--
        cssFolder--
        DarwinFolder--
        DeveloperToolsFolder--
        GraphicsImagingFolder--
        HardwareDriversFolder--
        imagesFolder--
        index-date.htmlFile38.14 KB
        index-rev-date.htmlFile20.91 KB
        index-rev-revision.htmlFile20.89 KB
        index-rev-title.htmlFile20.9 KB
        index-rev-topic.htmlFile45.06 KB
        index-title.htmlFile38.14 KB
        index-topic.htmlFile77.78 KB
        index.htmlFile17.08 KB
        InternationalizationFolder--
        InternetWebFolder--
        JavaFolder--
        jsFolder--
        LegacyTechnologiesFolder--
        MacOSXFolder--
        OpenSourceFolder--
        PerformanceFolder--
        PortingFolder--
        ResourcesFolder--
        ScriptingAutomationFolder--
        UserExperienceFolder--
        XcodeFolder--
        featuredarticlesFolder--
        adcstyle.cssFile15.86 KB
        AppleApplicationsFolder--
        idxDashboard-date.htmlFile8.35 KB
        idxDashboard-title.htmlFile8.24 KB
        index-date.htmlFile8.52 KB
        index-title.htmlFile8.51 KB
        index-topic.htmlFile8.51 KB
        index.htmlFile6.46 KB
        CarbonFolder--
        CocoaFolder--
        cssFolder--
        DeveloperToolsFolder--
        GamesFolder--
        imagesFolder--
        index-date.htmlFile16.03 KB
        index-title.htmlFile16.03 KB
        index-topic.htmlFile19.32 KB
        index.htmlFile10.98 KB
        jsFolder--
        LegacyTechnologiesFolder--
        ScriptingAutomationFolder--
        UserExperienceFolder--
        index.htmlFile0.23 KB
        qaFolder--
        referenceFolder--
        referencelibraryFolder--
        releasenotesFolder--
        samplecodeFolder--
        technicalnotesFolder--
        technicalqasFolder--
        technotesFolder--
        version.plistFile0.44 KB
        iPhone SDK License.rtfFile37.93 KB
        PerlFolder--
        wxPerlFolder--
        INSTALL.podFile8.26 KB
        todo.txtFile2.3 KB
        PythonFolder--
        PyObjCFolder--
        announcement.txtFile2.33 KB
        api-notes-macosx.htmlFile30.09 KB
        api-notes-macosx.txtFile18.37 KB
        C-API.htmlFile11 KB
        C-API.txtFile8.67 KB
        coding-style.htmlFile4.53 KB
        coding-style.txtFile2.92 KB
        gnustep.htmlFile1.96 KB
        gnustep.txtFile1.52 KB
        index.htmlFile2.75 KB
        index.txtFile2.64 KB
        intro.htmlFile44.82 KB
        intro.txtFile38.38 KB
        protocols.htmlFile3.48 KB
        protocols.txtFile2.79 KB
        PyObjCTools.htmlFile10.96 KB
        PyObjCTools.txtFile7.9 KB
        QuartzFolder--
        api-notes.txtFile1.47 KB
        release-process.htmlFile3.83 KB
        release-process.txtFile2.65 KB
        structure.htmlFile6.55 KB
        structure.txtFile5.1 KB
        TODO.htmlFile13.49 KB
        TODO.txtFile9.06 KB
        tutorialFolder--
        tutorial_embedFolder--
        tutorial_reading.htmlFile12.85 KB
        tutorial_reading.txtFile11.12 KB
        website.lstFile0.58 KB
        wrapping.htmlFile6.04 KB
        wrapping.txtFile5.2 KB
        xcodeFolder--
        Xcode-Templates.htmlFile13.97 KB
        wxPythonFolder--
        RubyCocoaFolder--
        wxWidgetsFolder--
        Xcode Tools License.rtfFile18.79 KB
        jquery-goodies-8/treetable/doc/stylesheets/000077500000000000000000000000001207406311000212535ustar00rootroot00000000000000jquery-goodies-8/treetable/doc/stylesheets/master.css000066400000000000000000000026761207406311000232730ustar00rootroot00000000000000body { background: #fff; color: #000; font-family: Helvetica, Arial, sans-serif; font-size: .8em; line-height: 1.5; } pre.listing { background: #eee; border: 1px solid #ccc; margin: .3em auto; padding: .1em .3em; width: 90%; } pre.listing b { color: #f00; } /* TABLE * ========================================================================= */ table { border: 1px solid #888; border-collapse: collapse; line-height: 1; margin: 1em auto; width: 90%; } /* Caption * ------------------------------------------------------------------------- */ table caption { font-size: .9em; font-weight: bold; } /* Header * ------------------------------------------------------------------------- */ table thead { background: #aaa url(../images/bg-table-thead.png) repeat-x top left; font-size: .9em; } table thead tr th { border: 1px solid #888; font-weight: normal; padding: .3em 1.67em .1em 1.67em; text-align: left; } /* Body * ------------------------------------------------------------------------- */ table tbody tr td { cursor: default; padding: .3em 1.5em; } table tbody tr.even { background: #f3f3f3; } table tbody tr.odd { background: #fff; } table span { background-position: center left; background-repeat: no-repeat; padding: .2em 0 .2em 1.5em; } table span.file { background-image: url(../images/page_white_text.png); } table span.folder { background-image: url(../images/folder.png); }jquery-goodies-8/treetable/examples/000077500000000000000000000000001207406311000177505ustar00rootroot00000000000000jquery-goodies-8/treetable/examples/ajax_php_sqlite/000077500000000000000000000000001207406311000231235ustar00rootroot00000000000000jquery-goodies-8/treetable/examples/ajax_php_sqlite/db/000077500000000000000000000000001207406311000235105ustar00rootroot00000000000000jquery-goodies-8/treetable/examples/ajax_php_sqlite/db/database.sqlite3000066400000000000000000000040001207406311000265540ustar00rootroot00000000000000SQLite format 3@ q  DROD#_triggertree_updateitemsCREATE TRIGGER tree_update after update on items begin update items set path = case when parent_id isnull then '/' else (select path from items where id = new.parent_id) || parent_id || '/' end where id = new.id; endWtriggeritem_initemsCREATE TRIGGER item_in after insert on items begin update items set path = case when parent_id isnull then '/' else (select path from items where id = new.parent_id) || parent_id || '/' end where id = new.id; end+5tableitemsitemsCREATE TABLE items ( id INTEGER PRIMARY KEY, parent_id INTEGER, title VARCHAR(256), status VARCHAR(32), kind VARCHAR(32), path TEXT )  ]~<zR+& $DrinksDraftCategory/1/4/6/!ContactPublishedPage/1/4/% !Large MenuDraftProduct/1/4/6/& #Medium MenuDraftProduct/1/4/6/! !Small MenuDraftProduct/1/4/6/& #Large DrinkDraftProduct/1/4/7/' %Medium DrinkDraftProduct/1/4/7/&#Small DrinkDraftProduct/1/4/7/ DrinksDraftCategory/1/4/MenusDraftCategory/1/4/NewsPublishedPage/1//1/ ProductsDraftCategory/1/AboutPublishedPageAboutPublishedPage/1/4/!HomepagePublishedHomepage/jquery-goodies-8/treetable/examples/ajax_php_sqlite/db/schema.sql000066400000000000000000000042351207406311000254750ustar00rootroot00000000000000-- Use this file to create a (sqlite) database to test the ajax/php example of -- the jQuery treeTable plugin. CREATE TABLE items ( id INTEGER PRIMARY KEY, parent_id INTEGER, title VARCHAR(256), status VARCHAR(32), kind VARCHAR(32), path TEXT ); -- Triggers to support tree display -- Idea from http://www.mail-archive.com/sqlite-users@sqlite.org/msg13225.html begin update items set path = case when parent_id isnull then '/' else (select path from items where id = new.parent_id) || parent_id || '/' end where id = new.id; end; create trigger tree_update after update on items begin update items set path = case when parent_id isnull then '/' else (select path from items where id = new.parent_id) || parent_id || '/' end where id = new.id; end; -- Populate table with sample data DELETE FROM items; INSERT INTO items (id, parent_id, title, status, kind) VALUES (1, NULL, 'Homepage', 'Published', 'Homepage'); INSERT INTO items (id, parent_id, title, status, kind) VALUES (2, 1, 'News', 'Published', 'Page'); INSERT INTO items (id, parent_id, title, status, kind) VALUES (3, 1, 'About', 'Published', 'Page'); INSERT INTO items (id, parent_id, title, status, kind) VALUES (4, 1, 'Products', 'Draft', 'Category'); INSERT INTO items (id, parent_id, title, status, kind) VALUES (5, 1, 'Contact', 'Published', 'Page'); INSERT INTO items (id, parent_id, title, status, kind) VALUES (6, 4, 'Menus', 'Draft', 'Category'); INSERT INTO items (id, parent_id, title, status, kind) VALUES (7, 4, 'Drinks', 'Draft', 'Category'); INSERT INTO items (id, parent_id, title, status, kind) VALUES (8, 7, 'Small Drink', 'Draft', 'Product'); INSERT INTO items (id, parent_id, title, status, kind) VALUES (9, 7, 'Medium Drink', 'Draft', 'Product'); INSERT INTO items (id, parent_id, title, status, kind) VALUES (10, 7, 'Large Drink', 'Draft', 'Product'); INSERT INTO items (id, parent_id, title, status, kind) VALUES (11, 6, 'Small Menu', 'Draft', 'Product'); INSERT INTO items (id, parent_id, title, status, kind) VALUES (12, 6, 'Medium Menu', 'Draft', 'Product'); INSERT INTO items (id, parent_id, title, status, kind) VALUES (13, 6, 'Large Menu', 'Draft', 'Product');jquery-goodies-8/treetable/examples/ajax_php_sqlite/index.php000066400000000000000000000062001207406311000247410ustar00rootroot00000000000000 jQuery treeTable Plugin Documentation query("SELECT id, parent_id, title, status, kind FROM items ORDER BY (path || id)") as $item): ?> >
        Title Status Kind Id Parent Id
        ">
        jquery-goodies-8/treetable/examples/ajax_php_sqlite/move.php000066400000000000000000000007161207406311000246060ustar00rootroot00000000000000prepare('UPDATE items SET parent_id = :parent_id WHERE id = :id'); $passed = $sth->execute(array(':parent_id' => (int) $parent_id, ':id' => (int) $id)); echo $passed ? "Moving {$id} to {$parent_id}" : var_dump($sth->errorInfo()); ?>jquery-goodies-8/treetable/src/000077500000000000000000000000001207406311000167215ustar00rootroot00000000000000jquery-goodies-8/treetable/src/images/000077500000000000000000000000001207406311000201665ustar00rootroot00000000000000jquery-goodies-8/treetable/src/images/toggle-collapse-dark.png000066400000000000000000000055061207406311000247020ustar00rootroot00000000000000PNG  IHDRa pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FqIDATxb?%B8.3008so JFb0XqAIyee)EO8 (JmmmS2`k_GCKIENDB`jquery-goodies-8/treetable/src/images/toggle-collapse-light.png000066400000000000000000000054601207406311000250670ustar00rootroot00000000000000PNG  IHDRa pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_F[IDATxb?%B8. b_0G cS4 MrBpơI!݂xIENDB`jquery-goodies-8/treetable/src/images/toggle-expand-dark.png000066400000000000000000000055161207406311000243600ustar00rootroot00000000000000PNG  IHDRa pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FyIDATxS[ 0&p60X5dXI33C#ZLZp% L2`Ϊ q<9$`"9}ay#IENDB`jquery-goodies-8/treetable/src/images/toggle-expand-light.png000066400000000000000000000054571207406311000245520ustar00rootroot00000000000000PNG  IHDRa pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FZIDATxb?%q `?6܀C㒀J "d02\ D#3ct8`{#ɝqIENDB`jquery-goodies-8/treetable/src/jquery.treeTable.css000066400000000000000000000024141207406311000226610ustar00rootroot00000000000000/* jQuery TreeTable Core 2.0 stylesheet * * This file contains styles that are used to display the tree table. Each tree * table is assigned the +treeTable+ class. * ========================================================================= */ /* jquery.treeTable.collapsible * ------------------------------------------------------------------------- */ .treeTable tr td .expander { background-position: left center; background-repeat: no-repeat; cursor: pointer; padding: 0; zoom: 1; /* IE7 Hack */ } .treeTable tr.collapsed td .expander { background-image: url(images/toggle-expand-dark.png); } .treeTable tr.expanded td .expander { background-image: url(images/toggle-collapse-dark.png); } /* jquery.treeTable.sortable * ------------------------------------------------------------------------- */ .treeTable tr.selected, .treeTable tr.accept { background-color: #3875d7; color: #fff; } .treeTable tr.collapsed.selected td .expander, .treeTable tr.collapsed.accept td .expander { background-image: url(images/toggle-expand-light.png); } .treeTable tr.expanded.selected td .expander, .treeTable tr.expanded.accept td .expander { background-image: url(images/toggle-collapse-light.png); } .treeTable .ui-draggable-dragging { color: #000; z-index: 1; } jquery-goodies-8/treetable/src/jquery.treeTable.js000066400000000000000000000154121207406311000225070ustar00rootroot00000000000000/* * jQuery treeTable Plugin 2.3.0 * http://ludo.cubicphuse.nl/jquery-plugins/treeTable/ * * Copyright 2010, Ludo van den Boom * Dual licensed under the MIT or GPL Version 2 licenses. */ (function($) { // Helps to make options available to all functions // TODO: This gives problems when there are both expandable and non-expandable // trees on a page. The options shouldn't be global to all these instances! var options; var defaultPaddingLeft; $.fn.treeTable = function(opts) { options = $.extend({}, $.fn.treeTable.defaults, opts); return this.each(function() { $(this).addClass("treeTable").find("tbody tr").each(function() { // Initialize root nodes only if possible if(!options.expandable || $(this)[0].className.search(options.childPrefix) == -1) { // To optimize performance of indentation, I retrieve the padding-left // value of the first root node. This way I only have to call +css+ // once. if (isNaN(defaultPaddingLeft)) { defaultPaddingLeft = parseInt($($(this).children("td")[options.treeColumn]).css('padding-left'), 10); } initialize($(this)); } else if(options.initialState == "collapsed") { this.style.display = "none"; // Performance! $(this).hide() is slow... } }); }); }; $.fn.treeTable.defaults = { childPrefix: "child-of-", clickableNodeNames: false, expandable: true, indent: 19, initialState: "collapsed", treeColumn: 0 }; // Recursively hide all node's children in a tree $.fn.collapse = function() { $(this).addClass("collapsed"); childrenOf($(this)).each(function() { if(!$(this).hasClass("collapsed")) { $(this).collapse(); } this.style.display = "none"; // Performance! $(this).hide() is slow... }); return this; }; // Recursively show all node's children in a tree $.fn.expand = function() { $(this).removeClass("collapsed").addClass("expanded"); childrenOf($(this)).each(function() { initialize($(this)); if($(this).is(".expanded.parent")) { $(this).expand(); } // this.style.display = "table-row"; // Unfortunately this is not possible with IE :-( $(this).show(); }); return this; }; // Reveal a node by expanding all ancestors $.fn.reveal = function() { $(ancestorsOf($(this)).reverse()).each(function() { initialize($(this)); $(this).expand().show(); }); return this; }; // Add an entire branch to +destination+ $.fn.appendBranchTo = function(destination) { var node = $(this); var parent = parentOf(node); var ancestorNames = $.map(ancestorsOf($(destination)), function(a) { return a.id; }); // Conditions: // 1: +node+ should not be inserted in a location in a branch if this would // result in +node+ being an ancestor of itself. // 2: +node+ should not have a parent OR the destination should not be the // same as +node+'s current parent (this last condition prevents +node+ // from being moved to the same location where it already is). // 3: +node+ should not be inserted as a child of +node+ itself. if($.inArray(node[0].id, ancestorNames) == -1 && (!parent || (destination.id != parent[0].id)) && destination.id != node[0].id) { indent(node, ancestorsOf(node).length * options.indent * -1); // Remove indentation if(parent) { node.removeClass(options.childPrefix + parent[0].id); } node.addClass(options.childPrefix + destination.id); move(node, destination); // Recursively move nodes to new location indent(node, ancestorsOf(node).length * options.indent); } return this; }; // Add reverse() function from JS Arrays $.fn.reverse = function() { return this.pushStack(this.get().reverse(), arguments); }; // Toggle an entire branch $.fn.toggleBranch = function() { if($(this).hasClass("collapsed")) { $(this).expand(); } else { $(this).removeClass("expanded").collapse(); } return this; }; // === Private functions function ancestorsOf(node) { var ancestors = []; while(node = parentOf(node)) { ancestors[ancestors.length] = node[0]; } return ancestors; }; function childrenOf(node) { return $("table.treeTable tbody tr." + options.childPrefix + node[0].id); }; function getPaddingLeft(node) { var paddingLeft = parseInt(node[0].style.paddingLeft, 10); return (isNaN(paddingLeft)) ? defaultPaddingLeft : paddingLeft; } function indent(node, value) { var cell = $(node.children("td")[options.treeColumn]); cell[0].style.paddingLeft = getPaddingLeft(cell) + value + "px"; childrenOf(node).each(function() { indent($(this), value); }); }; function initialize(node) { if(!node.hasClass("initialized")) { node.addClass("initialized"); var childNodes = childrenOf(node); if(!node.hasClass("parent") && childNodes.length > 0) { node.addClass("parent"); } if(node.hasClass("parent")) { var cell = $(node.children("td")[options.treeColumn]); var padding = getPaddingLeft(cell) + options.indent; childNodes.each(function() { $(this).children("td")[options.treeColumn].style.paddingLeft = padding + "px"; }); if(options.expandable) { cell.prepend(''); $(cell[0].firstChild).click(function() { node.toggleBranch(); }); if(options.clickableNodeNames) { cell[0].style.cursor = "pointer"; $(cell).click(function(e) { // Don't double-toggle if the click is on the existing expander icon if (e.target.className != 'expander') { node.toggleBranch(); } }); } // Check for a class set explicitly by the user, otherwise set the default class if(!(node.hasClass("expanded") || node.hasClass("collapsed"))) { node.addClass(options.initialState); } if(node.hasClass("expanded")) { node.expand(); } } } } }; function move(node, destination) { node.insertAfter(destination); childrenOf(node).reverse().each(function() { move($(this), node[0]); }); }; function parentOf(node) { var classNames = node[0].className.split(' '); for(key in classNames) { if(classNames[key].match(options.childPrefix)) { return $("#" + classNames[key].substring(9)); } } }; })(jQuery); jquery-goodies-8/uploadify/000077500000000000000000000000001207406311000161575ustar00rootroot00000000000000jquery-goodies-8/uploadify/Change Log.txt000066400000000000000000000010351207406311000206060ustar00rootroot00000000000000Uploadify Change Log Copyright (c) 2012 by Reactive Apps, Ronnie Garcia v3.2 - Added a new option for itemTemplate where you can create an HTML template for the items that are added to the queue v3.1.1 - Fixed issue with incorrect queueLength v3.1.0 - Switched to the preferred jQuery plugin pattern - Added references to all elements - Removed flash based image - Added fallback method - Fixed onInit event - Added onDisable and onEnable events - Added SWFObject for flash detection - Added indication of cancelled filesjquery-goodies-8/uploadify/check-exists.php000066400000000000000000000006521207406311000212650ustar00rootroot00000000000000 */ // Define a destination $targetFolder = '/uploads'; // Relative to the root and should match the upload folder in the uploader script if (file_exists($_SERVER['DOCUMENT_ROOT'] . $targetFolder . '/' . $_POST['filename'])) { echo 1; } else { echo 0; } ?>jquery-goodies-8/uploadify/index.php000066400000000000000000000017251207406311000200040ustar00rootroot00000000000000 UploadiFive Test

        Uploadify Demo

        jquery-goodies-8/uploadify/jquery.uploadify.js000066400000000000000000001033141207406311000220310ustar00rootroot00000000000000/* Uploadify v3.2 Copyright (c) 2012 Reactive Apps, Ronnie Garcia Released under the MIT License */ (function($) { // These methods can be called by adding them as the first argument in the uploadify plugin call var methods = { init : function(options, swfUploadOptions) { return this.each(function() { // Create a reference to the jQuery DOM object var $this = $(this); // Clone the original DOM object var $clone = $this.clone(); // Setup the default options var settings = $.extend({ // Required Settings id : $this.attr('id'), // The ID of the DOM object swf : 'uploadify.swf', // The path to the uploadify SWF file uploader : 'uploadify.php', // The path to the server-side upload script // Options auto : true, // Automatically upload files when added to the queue buttonClass : '', // A class name to add to the browse button DOM object buttonCursor : 'hand', // The cursor to use with the browse button buttonImage : null, // (String or null) The path to an image to use for the Flash browse button if not using CSS to style the button buttonText : 'SELECT FILES', // The text to use for the browse button checkExisting : false, // The path to a server-side script that checks for existing files on the server debug : false, // Turn on swfUpload debugging mode fileObjName : 'Filedata', // The name of the file object to use in your server-side script fileSizeLimit : 0, // The maximum size of an uploadable file in KB (Accepts units B KB MB GB if string, 0 for no limit) fileTypeDesc : 'All Files', // The description for file types in the browse dialog fileTypeExts : '*.*', // Allowed extensions in the browse dialog (server-side validation should also be used) height : 30, // The height of the browse button itemTemplate : false, // The template for the file item in the queue method : 'post', // The method to use when sending files to the server-side upload script multi : true, // Allow multiple file selection in the browse dialog formData : {}, // An object with additional data to send to the server-side upload script with every file upload preventCaching : true, // Adds a random value to the Flash URL to prevent caching of it (conflicts with existing parameters) progressData : 'percentage', // ('percentage' or 'speed') Data to show in the queue item during a file upload queueID : false, // The ID of the DOM object to use as a file queue (without the #) queueSizeLimit : 999, // The maximum number of files that can be in the queue at one time removeCompleted : true, // Remove queue items from the queue when they are done uploading removeTimeout : 3, // The delay in seconds before removing a queue item if removeCompleted is set to true requeueErrors : false, // Keep errored files in the queue and keep trying to upload them successTimeout : 30, // The number of seconds to wait for Flash to detect the server's response after the file has finished uploading uploadLimit : 0, // The maximum number of files you can upload width : 120, // The width of the browse button // Events overrideEvents : [] // (Array) A list of default event handlers to skip /* onCancel // Triggered when a file is cancelled from the queue onClearQueue // Triggered during the 'clear queue' method onDestroy // Triggered when the uploadify object is destroyed onDialogClose // Triggered when the browse dialog is closed onDialogOpen // Triggered when the browse dialog is opened onDisable // Triggered when the browse button gets disabled onEnable // Triggered when the browse button gets enabled onFallback // Triggered is Flash is not detected onInit // Triggered when Uploadify is initialized onQueueComplete // Triggered when all files in the queue have been uploaded onSelectError // Triggered when an error occurs while selecting a file (file size, queue size limit, etc.) onSelect // Triggered for each file that is selected onSWFReady // Triggered when the SWF button is loaded onUploadComplete // Triggered when a file upload completes (success or error) onUploadError // Triggered when a file upload returns an error onUploadSuccess // Triggered when a file is uploaded successfully onUploadProgress // Triggered every time a file progress is updated onUploadStart // Triggered immediately before a file upload starts */ }, options); // Prepare settings for SWFUpload var swfUploadSettings = { assume_success_timeout : settings.successTimeout, button_placeholder_id : settings.id, button_width : settings.width, button_height : settings.height, button_text : null, button_text_style : null, button_text_top_padding : 0, button_text_left_padding : 0, button_action : (settings.multi ? SWFUpload.BUTTON_ACTION.SELECT_FILES : SWFUpload.BUTTON_ACTION.SELECT_FILE), button_disabled : false, button_cursor : (settings.buttonCursor == 'arrow' ? SWFUpload.CURSOR.ARROW : SWFUpload.CURSOR.HAND), button_window_mode : SWFUpload.WINDOW_MODE.TRANSPARENT, debug : settings.debug, requeue_on_error : settings.requeueErrors, file_post_name : settings.fileObjName, file_size_limit : settings.fileSizeLimit, file_types : settings.fileTypeExts, file_types_description : settings.fileTypeDesc, file_queue_limit : settings.queueSizeLimit, file_upload_limit : settings.uploadLimit, flash_url : settings.swf, prevent_swf_caching : settings.preventCaching, post_params : settings.formData, upload_url : settings.uploader, use_query_string : (settings.method == 'get'), // Event Handlers file_dialog_complete_handler : handlers.onDialogClose, file_dialog_start_handler : handlers.onDialogOpen, file_queued_handler : handlers.onSelect, file_queue_error_handler : handlers.onSelectError, swfupload_loaded_handler : settings.onSWFReady, upload_complete_handler : handlers.onUploadComplete, upload_error_handler : handlers.onUploadError, upload_progress_handler : handlers.onUploadProgress, upload_start_handler : handlers.onUploadStart, upload_success_handler : handlers.onUploadSuccess } // Merge the user-defined options with the defaults if (swfUploadOptions) { swfUploadSettings = $.extend(swfUploadSettings, swfUploadOptions); } // Add the user-defined settings to the swfupload object swfUploadSettings = $.extend(swfUploadSettings, settings); // Detect if Flash is available var playerVersion = swfobject.getFlashPlayerVersion(); var flashInstalled = (playerVersion.major >= 9); if (flashInstalled) { // Create the swfUpload instance window['uploadify_' + settings.id] = new SWFUpload(swfUploadSettings); var swfuploadify = window['uploadify_' + settings.id]; // Add the SWFUpload object to the elements data object $this.data('uploadify', swfuploadify); // Wrap the instance var $wrapper = $('
        ', { 'id' : settings.id, 'class' : 'uploadify', 'css' : { 'height' : settings.height + 'px', 'width' : settings.width + 'px' } }); $('#' + swfuploadify.movieName).wrap($wrapper); // Recreate the reference to wrapper $wrapper = $('#' + settings.id); // Add the data object to the wrapper $wrapper.data('uploadify', swfuploadify); // Create the button var $button = $('
        ', { 'id' : settings.id + '-button', 'class' : 'uploadify-button ' + settings.buttonClass }); if (settings.buttonImage) { $button.css({ 'background-image' : "url('" + settings.buttonImage + "')", 'text-indent' : '-9999px' }); } $button.html('' + settings.buttonText + '') .css({ 'height' : settings.height + 'px', 'line-height' : settings.height + 'px', 'width' : settings.width + 'px' }); // Append the button to the wrapper $wrapper.append($button); // Adjust the styles of the movie $('#' + swfuploadify.movieName).css({ 'position' : 'absolute', 'z-index' : 1 }); // Create the file queue if (!settings.queueID) { var $queue = $('
        ', { 'id' : settings.id + '-queue', 'class' : 'uploadify-queue' }); $wrapper.after($queue); swfuploadify.settings.queueID = settings.id + '-queue'; swfuploadify.settings.defaultQueue = true; } // Create some queue related objects and variables swfuploadify.queueData = { files : {}, // The files in the queue filesSelected : 0, // The number of files selected in the last select operation filesQueued : 0, // The number of files added to the queue in the last select operation filesReplaced : 0, // The number of files replaced in the last select operation filesCancelled : 0, // The number of files that were cancelled instead of replaced filesErrored : 0, // The number of files that caused error in the last select operation uploadsSuccessful : 0, // The number of files that were successfully uploaded uploadsErrored : 0, // The number of files that returned errors during upload averageSpeed : 0, // The average speed of the uploads in KB queueLength : 0, // The number of files in the queue queueSize : 0, // The size in bytes of the entire queue uploadSize : 0, // The size in bytes of the upload queue queueBytesUploaded : 0, // The size in bytes that have been uploaded for the current upload queue uploadQueue : [], // The files currently to be uploaded errorMsg : 'Some files were not added to the queue:' }; // Save references to all the objects swfuploadify.original = $clone; swfuploadify.wrapper = $wrapper; swfuploadify.button = $button; swfuploadify.queue = $queue; // Call the user-defined init event handler if (settings.onInit) settings.onInit.call($this, swfuploadify); } else { // Call the fallback function if (settings.onFallback) settings.onFallback.call($this); } }); }, // Stop a file upload and remove it from the queue cancel : function(fileID, supressEvent) { var args = arguments; this.each(function() { // Create a reference to the jQuery DOM object var $this = $(this), swfuploadify = $this.data('uploadify'), settings = swfuploadify.settings, delay = -1; if (args[0]) { // Clear the queue if (args[0] == '*') { var queueItemCount = swfuploadify.queueData.queueLength; $('#' + settings.queueID).find('.uploadify-queue-item').each(function() { delay++; if (args[1] === true) { swfuploadify.cancelUpload($(this).attr('id'), false); } else { swfuploadify.cancelUpload($(this).attr('id')); } $(this).find('.data').removeClass('data').html(' - Cancelled'); $(this).find('.uploadify-progress-bar').remove(); $(this).delay(1000 + 100 * delay).fadeOut(500, function() { $(this).remove(); }); }); swfuploadify.queueData.queueSize = 0; swfuploadify.queueData.queueLength = 0; // Trigger the onClearQueue event if (settings.onClearQueue) settings.onClearQueue.call($this, queueItemCount); } else { for (var n = 0; n < args.length; n++) { swfuploadify.cancelUpload(args[n]); $('#' + args[n]).find('.data').removeClass('data').html(' - Cancelled'); $('#' + args[n]).find('.uploadify-progress-bar').remove(); $('#' + args[n]).delay(1000 + 100 * n).fadeOut(500, function() { $(this).remove(); }); } } } else { var item = $('#' + settings.queueID).find('.uploadify-queue-item').get(0); $item = $(item); swfuploadify.cancelUpload($item.attr('id')); $item.find('.data').removeClass('data').html(' - Cancelled'); $item.find('.uploadify-progress-bar').remove(); $item.delay(1000).fadeOut(500, function() { $(this).remove(); }); } }); }, // Revert the DOM object back to its original state destroy : function() { this.each(function() { // Create a reference to the jQuery DOM object var $this = $(this), swfuploadify = $this.data('uploadify'), settings = swfuploadify.settings; // Destroy the SWF object and swfuploadify.destroy(); // Destroy the queue if (settings.defaultQueue) { $('#' + settings.queueID).remove(); } // Reload the original DOM element $('#' + settings.id).replaceWith(swfuploadify.original); // Call the user-defined event handler if (settings.onDestroy) settings.onDestroy.call(this); delete swfuploadify; }); }, // Disable the select button disable : function(isDisabled) { this.each(function() { // Create a reference to the jQuery DOM object var $this = $(this), swfuploadify = $this.data('uploadify'), settings = swfuploadify.settings; // Call the user-defined event handlers if (isDisabled) { swfuploadify.button.addClass('disabled'); if (settings.onDisable) settings.onDisable.call(this); } else { swfuploadify.button.removeClass('disabled'); if (settings.onEnable) settings.onEnable.call(this); } // Enable/disable the browse button swfuploadify.setButtonDisabled(isDisabled); }); }, // Get or set the settings data settings : function(name, value, resetObjects) { var args = arguments; var returnValue = value; this.each(function() { // Create a reference to the jQuery DOM object var $this = $(this), swfuploadify = $this.data('uploadify'), settings = swfuploadify.settings; if (typeof(args[0]) == 'object') { for (var n in value) { setData(n,value[n]); } } if (args.length === 1) { returnValue = settings[name]; } else { switch (name) { case 'uploader': swfuploadify.setUploadURL(value); break; case 'formData': if (!resetObjects) { value = $.extend(settings.formData, value); } swfuploadify.setPostParams(settings.formData); break; case 'method': if (value == 'get') { swfuploadify.setUseQueryString(true); } else { swfuploadify.setUseQueryString(false); } break; case 'fileObjName': swfuploadify.setFilePostName(value); break; case 'fileTypeExts': swfuploadify.setFileTypes(value, settings.fileTypeDesc); break; case 'fileTypeDesc': swfuploadify.setFileTypes(settings.fileTypeExts, value); break; case 'fileSizeLimit': swfuploadify.setFileSizeLimit(value); break; case 'uploadLimit': swfuploadify.setFileUploadLimit(value); break; case 'queueSizeLimit': swfuploadify.setFileQueueLimit(value); break; case 'buttonImage': swfuploadify.button.css('background-image', settingValue); break; case 'buttonCursor': if (value == 'arrow') { swfuploadify.setButtonCursor(SWFUpload.CURSOR.ARROW); } else { swfuploadify.setButtonCursor(SWFUpload.CURSOR.HAND); } break; case 'buttonText': $('#' + settings.id + '-button').find('.uploadify-button-text').html(value); break; case 'width': swfuploadify.setButtonDimensions(value, settings.height); break; case 'height': swfuploadify.setButtonDimensions(settings.width, value); break; case 'multi': if (value) { swfuploadify.setButtonAction(SWFUpload.BUTTON_ACTION.SELECT_FILES); } else { swfuploadify.setButtonAction(SWFUpload.BUTTON_ACTION.SELECT_FILE); } break; } settings[name] = value; } }); if (args.length === 1) { return returnValue; } }, // Stop the current uploads and requeue what is in progress stop : function() { this.each(function() { // Create a reference to the jQuery DOM object var $this = $(this), swfuploadify = $this.data('uploadify'); // Reset the queue information swfuploadify.queueData.averageSpeed = 0; swfuploadify.queueData.uploadSize = 0; swfuploadify.queueData.bytesUploaded = 0; swfuploadify.queueData.uploadQueue = []; swfuploadify.stopUpload(); }); }, // Start uploading files in the queue upload : function() { var args = arguments; this.each(function() { // Create a reference to the jQuery DOM object var $this = $(this), swfuploadify = $this.data('uploadify'); // Reset the queue information swfuploadify.queueData.averageSpeed = 0; swfuploadify.queueData.uploadSize = 0; swfuploadify.queueData.bytesUploaded = 0; swfuploadify.queueData.uploadQueue = []; // Upload the files if (args[0]) { if (args[0] == '*') { swfuploadify.queueData.uploadSize = swfuploadify.queueData.queueSize; swfuploadify.queueData.uploadQueue.push('*'); swfuploadify.startUpload(); } else { for (var n = 0; n < args.length; n++) { swfuploadify.queueData.uploadSize += swfuploadify.queueData.files[args[n]].size; swfuploadify.queueData.uploadQueue.push(args[n]); } swfuploadify.startUpload(swfuploadify.queueData.uploadQueue.shift()); } } else { swfuploadify.startUpload(); } }); } } // These functions handle all the events that occur with the file uploader var handlers = { // Triggered when the file dialog is opened onDialogOpen : function() { // Load the swfupload settings var settings = this.settings; // Reset some queue info this.queueData.errorMsg = 'Some files were not added to the queue:'; this.queueData.filesReplaced = 0; this.queueData.filesCancelled = 0; // Call the user-defined event handler if (settings.onDialogOpen) settings.onDialogOpen.call(this); }, // Triggered when the browse dialog is closed onDialogClose : function(filesSelected, filesQueued, queueLength) { // Load the swfupload settings var settings = this.settings; // Update the queue information this.queueData.filesErrored = filesSelected - filesQueued; this.queueData.filesSelected = filesSelected; this.queueData.filesQueued = filesQueued - this.queueData.filesCancelled; this.queueData.queueLength = queueLength; // Run the default event handler if ($.inArray('onDialogClose', settings.overrideEvents) < 0) { if (this.queueData.filesErrored > 0) { alert(this.queueData.errorMsg); } } // Call the user-defined event handler if (settings.onDialogClose) settings.onDialogClose.call(this, this.queueData); // Upload the files if auto is true if (settings.auto) $('#' + settings.id).uploadify('upload', '*'); }, // Triggered once for each file added to the queue onSelect : function(file) { // Load the swfupload settings var settings = this.settings; // Check if a file with the same name exists in the queue var queuedFile = {}; for (var n in this.queueData.files) { queuedFile = this.queueData.files[n]; if (queuedFile.uploaded != true && queuedFile.name == file.name) { var replaceQueueItem = confirm('The file named "' + file.name + '" is already in the queue.\nDo you want to replace the existing item in the queue?'); if (!replaceQueueItem) { this.cancelUpload(file.id); this.queueData.filesCancelled++; return false; } else { $('#' + queuedFile.id).remove(); this.cancelUpload(queuedFile.id); this.queueData.filesReplaced++; } } } // Get the size of the file var fileSize = Math.round(file.size / 1024); var suffix = 'KB'; if (fileSize > 1000) { fileSize = Math.round(fileSize / 1000); suffix = 'MB'; } var fileSizeParts = fileSize.toString().split('.'); fileSize = fileSizeParts[0]; if (fileSizeParts.length > 1) { fileSize += '.' + fileSizeParts[1].substr(0,2); } fileSize += suffix; // Truncate the filename if it's too long var fileName = file.name; if (fileName.length > 25) { fileName = fileName.substr(0,25) + '...'; } // Create the file data object itemData = { 'fileID' : file.id, 'instanceID' : settings.id, 'fileName' : fileName, 'fileSize' : fileSize } // Create the file item template if (settings.itemTemplate == false) { settings.itemTemplate = '
        \
        \ X\
        \ ${fileName} (${fileSize})\
        \
        \
        \
        '; } // Run the default event handler if ($.inArray('onSelect', settings.overrideEvents) < 0) { // Replace the item data in the template itemHTML = settings.itemTemplate; for (var d in itemData) { itemHTML = itemHTML.replace(new RegExp('\\$\\{' + d + '\\}', 'g'), itemData[d]); } // Add the file item to the queue $('#' + settings.queueID).append(itemHTML); } this.queueData.queueSize += file.size; this.queueData.files[file.id] = file; // Call the user-defined event handler if (settings.onSelect) settings.onSelect.apply(this, arguments); }, // Triggered when a file is not added to the queue onSelectError : function(file, errorCode, errorMsg) { // Load the swfupload settings var settings = this.settings; // Run the default event handler if ($.inArray('onSelectError', settings.overrideEvents) < 0) { switch(errorCode) { case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED: if (settings.queueSizeLimit > errorMsg) { this.queueData.errorMsg += '\nThe number of files selected exceeds the remaining upload limit (' + errorMsg + ').'; } else { this.queueData.errorMsg += '\nThe number of files selected exceeds the queue size limit (' + settings.queueSizeLimit + ').'; } break; case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT: this.queueData.errorMsg += '\nThe file "' + file.name + '" exceeds the size limit (' + settings.fileSizeLimit + ').'; break; case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE: this.queueData.errorMsg += '\nThe file "' + file.name + '" is empty.'; break; case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT: this.queueData.errorMsg += '\nThe file "' + file.name + '" is not an accepted file type (' + settings.fileTypeDesc + ').'; break; } } if (errorCode != SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) { delete this.queueData.files[file.id]; } // Call the user-defined event handler if (settings.onSelectError) settings.onSelectError.apply(this, arguments); }, // Triggered when all the files in the queue have been processed onQueueComplete : function() { if (this.settings.onQueueComplete) this.settings.onQueueComplete.call(this, this.settings.queueData); }, // Triggered when a file upload successfully completes onUploadComplete : function(file) { // Load the swfupload settings var settings = this.settings, swfuploadify = this; // Check if all the files have completed uploading var stats = this.getStats(); this.queueData.queueLength = stats.files_queued; if (this.queueData.uploadQueue[0] == '*') { if (this.queueData.queueLength > 0) { this.startUpload(); } else { this.queueData.uploadQueue = []; // Call the user-defined event handler for queue complete if (settings.onQueueComplete) settings.onQueueComplete.call(this, this.queueData); } } else { if (this.queueData.uploadQueue.length > 0) { this.startUpload(this.queueData.uploadQueue.shift()); } else { this.queueData.uploadQueue = []; // Call the user-defined event handler for queue complete if (settings.onQueueComplete) settings.onQueueComplete.call(this, this.queueData); } } // Call the default event handler if ($.inArray('onUploadComplete', settings.overrideEvents) < 0) { if (settings.removeCompleted) { switch (file.filestatus) { case SWFUpload.FILE_STATUS.COMPLETE: setTimeout(function() { if ($('#' + file.id)) { swfuploadify.queueData.queueSize -= file.size; swfuploadify.queueData.queueLength -= 1; delete swfuploadify.queueData.files[file.id] $('#' + file.id).fadeOut(500, function() { $(this).remove(); }); } }, settings.removeTimeout * 1000); break; case SWFUpload.FILE_STATUS.ERROR: if (!settings.requeueErrors) { setTimeout(function() { if ($('#' + file.id)) { swfuploadify.queueData.queueSize -= file.size; swfuploadify.queueData.queueLength -= 1; delete swfuploadify.queueData.files[file.id]; $('#' + file.id).fadeOut(500, function() { $(this).remove(); }); } }, settings.removeTimeout * 1000); } break; } } else { file.uploaded = true; } } // Call the user-defined event handler if (settings.onUploadComplete) settings.onUploadComplete.call(this, file); }, // Triggered when a file upload returns an error onUploadError : function(file, errorCode, errorMsg) { // Load the swfupload settings var settings = this.settings; // Set the error string var errorString = 'Error'; switch(errorCode) { case SWFUpload.UPLOAD_ERROR.HTTP_ERROR: errorString = 'HTTP Error (' + errorMsg + ')'; break; case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL: errorString = 'Missing Upload URL'; break; case SWFUpload.UPLOAD_ERROR.IO_ERROR: errorString = 'IO Error'; break; case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR: errorString = 'Security Error'; break; case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED: alert('The upload limit has been reached (' + errorMsg + ').'); errorString = 'Exceeds Upload Limit'; break; case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED: errorString = 'Failed'; break; case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND: break; case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED: errorString = 'Validation Error'; break; case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED: errorString = 'Cancelled'; this.queueData.queueSize -= file.size; this.queueData.queueLength -= 1; if (file.status == SWFUpload.FILE_STATUS.IN_PROGRESS || $.inArray(file.id, this.queueData.uploadQueue) >= 0) { this.queueData.uploadSize -= file.size; } // Trigger the onCancel event if (settings.onCancel) settings.onCancel.call(this, file); delete this.queueData.files[file.id]; break; case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED: errorString = 'Stopped'; break; } // Call the default event handler if ($.inArray('onUploadError', settings.overrideEvents) < 0) { if (errorCode != SWFUpload.UPLOAD_ERROR.FILE_CANCELLED && errorCode != SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED) { $('#' + file.id).addClass('uploadify-error'); } // Reset the progress bar $('#' + file.id).find('.uploadify-progress-bar').css('width','1px'); // Add the error message to the queue item if (errorCode != SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND && file.status != SWFUpload.FILE_STATUS.COMPLETE) { $('#' + file.id).find('.data').html(' - ' + errorString); } } var stats = this.getStats(); this.queueData.uploadsErrored = stats.upload_errors; // Call the user-defined event handler if (settings.onUploadError) settings.onUploadError.call(this, file, errorCode, errorMsg, errorString); }, // Triggered periodically during a file upload onUploadProgress : function(file, fileBytesLoaded, fileTotalBytes) { // Load the swfupload settings var settings = this.settings; // Setup all the variables var timer = new Date(); var newTime = timer.getTime(); var lapsedTime = newTime - this.timer; if (lapsedTime > 500) { this.timer = newTime; } var lapsedBytes = fileBytesLoaded - this.bytesLoaded; this.bytesLoaded = fileBytesLoaded; var queueBytesLoaded = this.queueData.queueBytesUploaded + fileBytesLoaded; var percentage = Math.round(fileBytesLoaded / fileTotalBytes * 100); // Calculate the average speed var suffix = 'KB/s'; var mbs = 0; var kbs = (lapsedBytes / 1024) / (lapsedTime / 1000); kbs = Math.floor(kbs * 10) / 10; if (this.queueData.averageSpeed > 0) { this.queueData.averageSpeed = Math.floor((this.queueData.averageSpeed + kbs) / 2); } else { this.queueData.averageSpeed = Math.floor(kbs); } if (kbs > 1000) { mbs = (kbs * .001); this.queueData.averageSpeed = Math.floor(mbs); suffix = 'MB/s'; } // Call the default event handler if ($.inArray('onUploadProgress', settings.overrideEvents) < 0) { if (settings.progressData == 'percentage') { $('#' + file.id).find('.data').html(' - ' + percentage + '%'); } else if (settings.progressData == 'speed' && lapsedTime > 500) { $('#' + file.id).find('.data').html(' - ' + this.queueData.averageSpeed + suffix); } $('#' + file.id).find('.uploadify-progress-bar').css('width', percentage + '%'); } // Call the user-defined event handler if (settings.onUploadProgress) settings.onUploadProgress.call(this, file, fileBytesLoaded, fileTotalBytes, queueBytesLoaded, this.queueData.uploadSize); }, // Triggered right before a file is uploaded onUploadStart : function(file) { // Load the swfupload settings var settings = this.settings; var timer = new Date(); this.timer = timer.getTime(); this.bytesLoaded = 0; if (this.queueData.uploadQueue.length == 0) { this.queueData.uploadSize = file.size; } if (settings.checkExisting) { $.ajax({ type : 'POST', async : false, url : settings.checkExisting, data : {filename: file.name}, success : function(data) { if (data == 1) { var overwrite = confirm('A file with the name "' + file.name + '" already exists on the server.\nWould you like to replace the existing file?'); if (!overwrite) { this.cancelUpload(file.id); $('#' + file.id).remove(); if (this.queueData.uploadQueue.length > 0 && this.queueData.queueLength > 0) { if (this.queueData.uploadQueue[0] == '*') { this.startUpload(); } else { this.startUpload(this.queueData.uploadQueue.shift()); } } } } } }); } // Call the user-defined event handler if (settings.onUploadStart) settings.onUploadStart.call(this, file); }, // Triggered when a file upload returns a successful code onUploadSuccess : function(file, data, response) { // Load the swfupload settings var settings = this.settings; var stats = this.getStats(); this.queueData.uploadsSuccessful = stats.successful_uploads; this.queueData.queueBytesUploaded += file.size; // Call the default event handler if ($.inArray('onUploadSuccess', settings.overrideEvents) < 0) { $('#' + file.id).find('.data').html(' - Complete'); } // Call the user-defined event handler if (settings.onUploadSuccess) settings.onUploadSuccess.call(this, file, data, response); } } $.fn.uploadify = function(method) { if (methods[method]) { return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); } else if (typeof method === 'object' || !method) { return methods.init.apply(this, arguments); } else { $.error('The method ' + method + ' does not exist in $.uploadify'); } } })($); jquery-goodies-8/uploadify/license.txt000066400000000000000000000021141207406311000203400ustar00rootroot00000000000000Uploadify Copyright (c) 2012 Reactive Apps, Ronnie Garcia Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.jquery-goodies-8/uploadify/uploadify-cancel.png000066400000000000000000000056201207406311000221070ustar00rootroot00000000000000PNG  IHDRa pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FIDATxē10 E_KЈ.0!ua ,9\$K"q/[), i@t3=-sRw O^P'p50!"%r"*<\[ cUA1ԭ)qfk äN{)Js;YY7N c2)֨IENDB`jquery-goodies-8/uploadify/uploadify.css000066400000000000000000000047571207406311000207020ustar00rootroot00000000000000/* Uploadify Copyright (c) 2012 Reactive Apps, Ronnie Garcia Released under the MIT License */ .uploadify { position: relative; margin-bottom: 1em; } .uploadify-button { background-color: #505050; background-image: linear-gradient(bottom, #505050 0%, #707070 100%); background-image: -o-linear-gradient(bottom, #505050 0%, #707070 100%); background-image: -moz-linear-gradient(bottom, #505050 0%, #707070 100%); background-image: -webkit-linear-gradient(bottom, #505050 0%, #707070 100%); background-image: -ms-linear-gradient(bottom, #505050 0%, #707070 100%); background-image: -webkit-gradient( linear, left bottom, left top, color-stop(0, #505050), color-stop(1, #707070) ); background-position: center top; background-repeat: no-repeat; -webkit-border-radius: 30px; -moz-border-radius: 30px; border-radius: 30px; border: 2px solid #808080; color: #FFF; font: bold 12px Arial, Helvetica, sans-serif; text-align: center; text-shadow: 0 -1px 0 rgba(0,0,0,0.25); width: 100%; } .uploadify:hover .uploadify-button { background-color: #606060; background-image: linear-gradient(top, #606060 0%, #808080 100%); background-image: -o-linear-gradient(top, #606060 0%, #808080 100%); background-image: -moz-linear-gradient(top, #606060 0%, #808080 100%); background-image: -webkit-linear-gradient(top, #606060 0%, #808080 100%); background-image: -ms-linear-gradient(top, #606060 0%, #808080 100%); background-image: -webkit-gradient( linear, left bottom, left top, color-stop(0, #606060), color-stop(1, #808080) ); background-position: center bottom; } .uploadify-button.disabled { background-color: #D0D0D0; color: #808080; } .uploadify-queue { margin-bottom: 1em; } .uploadify-queue-item { background-color: #F5F5F5; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; font: 11px Verdana, Geneva, sans-serif; margin-top: 5px; max-width: 350px; padding: 10px; } .uploadify-error { background-color: #FDE5DD !important; } .uploadify-queue-item .cancel a { background: url('../img/uploadify-cancel.png') 0 0 no-repeat; float: right; height: 16px; text-indent: -9999px; width: 16px; } .uploadify-queue-item.completed { background-color: #E5E5E5; } .uploadify-progress { background-color: #E5E5E5; margin-top: 10px; width: 100%; } .uploadify-progress-bar { background-color: #0099FF; height: 3px; width: 1px; }jquery-goodies-8/uploadify/uploadify.php000066400000000000000000000015361207406311000206710ustar00rootroot00000000000000 */ // Define a destination $targetFolder = '/uploads'; // Relative to the root $verifyToken = md5('unique_hash' . $_POST['timestamp']); if (!empty($_FILES) && $_POST['token'] == $verifyToken) { $tempFile = $_FILES['Filedata']['tmp_name']; $targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder; $targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name']; // Validate the file type $fileTypes = array('jpg','jpeg','gif','png'); // File extensions $fileParts = pathinfo($_FILES['Filedata']['name']); if (in_array($fileParts['extension'],$fileTypes)) { move_uploaded_file($tempFile,$targetFile); echo '1'; } else { echo 'Invalid file type.'; } } ?>