/******************************************************************************
Name:    Highslide JS
Version: 4.1.0 (March 12 2009)
Config:  default +events +unobtrusive +imagemap +slideshow +positioning +transitions +viewport +thumbstrip +inline +ajax +iframe +flash
Author:  Torstein Hønsi
Support: http://highslide.com/support

Licence:
Highslide JS is licensed under a Creative Commons Attribution-NonCommercial 2.5
License (http://creativecommons.org/licenses/by-nc/2.5/).

You are free:
	* to copy, distribute, display, and perform the work
	* to make derivative works

Under the following conditions:
	* Attribution. You must attribute the work in the manner  specified by  the
	  author or licensor.
	* Noncommercial. You may not use this work for commercial purposes.

* For  any  reuse  or  distribution, you  must make clear to others the license
  terms of this work.
* Any  of  these  conditions  can  be  waived  if  you  get permission from the 
  copyright holder.

Your fair use and other rights are in no way affected by the above.
******************************************************************************/
var hs = {
// Language strings
lang : {
	cssDirection: 'ltr',
	loadingText : 'Yükleniyor...',
	loadingTitle : 'Çık',
	focusTitle : 'Alta al',
	fullExpandTitle : 'Gerçek Boyut (f)',
	creditsText : '',
	creditsTitle : '',
	previousText : 'önceki',
	nextText : 'sonraki', 
	moveText : 'taşı',
	closeText : 'kapat', 
	closeTitle : 'kapat (esc)', 
	resizeTitle : 'boyutlandır',
	playText : 'Başlat',
	playTitle : 'Slayt Başlat (ara tuşu)',
	pauseText : 'Dur',
	pauseTitle : 'Slaytı durdur (ara tuşu)',
	previousTitle : 'önceki (sol ok)',
	nextTitle : 'sonraki (sağ ok)',
	moveTitle : 'taşı',
	fullExpandText : '1:1',
	number: 'Image %1 of %2',
	restoreTitle : 'kapatabilir veya önceki sonraki kayıtları görebilirsiniz.'
},
// See http://highslide.com/ref for examples of settings  
graphicsDir : 'highslide/graphics/',
expandCursor : 'zoomin.cur', // null disables
restoreCursor : 'zoomout.cur', // null disables
expandDuration : 250, // milliseconds
restoreDuration : 250,
marginLeft : 15,
marginRight : 15,
marginTop : 15,
marginBottom : 15,
zIndexCounter : 1001, // adjust to other absolutely positioned elements
loadingOpacity : 0.75,
allowMultipleInstances: true,
numberOfImagesToPreload : 5,
outlineWhileAnimating : 2, // 0 = never, 1 = always, 2 = HTML only 
outlineStartOffset : 3, // ends at 10
padToMinWidth : false, // pad the popup width to make room for wide caption
fullExpandPosition : 'bottom right',
fullExpandOpacity : 1,
showCredits : true, // you can set this to false if you want
creditsHref : '',
enableKeyListener : true,
openerTagNames : ['a', 'area'], // Add more to allow slideshow indexing
transitions : [],
transitionDuration: 250,
dimmingOpacity: 0, // Lightbox style dimming background
dimmingDuration: 50, // 0 for instant dimming

allowWidthReduction : false,
allowHeightReduction : true,
preserveContent : true, // Preserve changes made to the content and position of HTML popups.
objectLoadTime : 'before', // Load iframes 'before' or 'after' expansion.
cacheAjax : true, // Cache ajax popups for instant display. Can be overridden for each popup.
anchor : 'auto', // where the image expands from
align : 'auto', // position in the client (overrides anchor)
targetX: null, // the id of a target element
targetY: null,
dragByHeading: true,
minWidth: 200,
minHeight: 200,
allowSizeReduction: true, // allow the image to reduce to fit client size. If false, this overrides minWidth and minHeight
outlineType : 'drop-shadow', // set null to disable outlines
wrapperClassName : 'highslide-wrapper', // for enhanced css-control
skin : {
	controls:
		'<div class="highslide-controls"><ul>'+
			'<li class="highslide-previous">'+
				'<a href="#" title="{hs.lang.previousTitle}">'+
				'<span>{hs.lang.previousText}</span></a>'+
			'</li>'+
			'<li class="highslide-play">'+
				'<a href="#" title="{hs.lang.playTitle}">'+
				'<span>{hs.lang.playText}</span></a>'+
			'</li>'+
			'<li class="highslide-pause">'+
				'<a href="#" title="{hs.lang.pauseTitle}">'+
				'<span>{hs.lang.pauseText}</span></a>'+
			'</li>'+
			'<li class="highslide-next">'+
				'<a href="#" title="{hs.lang.nextTitle}">'+
				'<span>{hs.lang.nextText}</span></a>'+
			'</li>'+
			'<li class="highslide-move">'+
				'<a href="#" title="{hs.lang.moveTitle}">'+
				'<span>{hs.lang.moveText}</span></a>'+
			'</li>'+
			'<li class="highslide-full-expand">'+
				'<a href="#" title="{hs.lang.fullExpandTitle}">'+
				'<span>{hs.lang.fullExpandText}</span></a>'+
			'</li>'+
			'<li class="highslide-close">'+
				'<a href="#" title="{hs.lang.closeTitle}" >'+
				'<span>{hs.lang.closeText}</span></a>'+
			'</li>'+
		'</ul></div>'
	,
	contentWrapper:
		'<div class="highslide-header"><ul>'+
			'<li class="highslide-previous">'+
				'<a href="#" title="{hs.lang.previousTitle}" onclick="return hs.previous(this)">'+
				'<span>{hs.lang.previousText}</span></a>'+
			'</li>'+
			'<li class="highslide-next">'+
				'<a href="#" title="{hs.lang.nextTitle}" onclick="return hs.next(this)">'+
				'<span>{hs.lang.nextText}</span></a>'+
			'</li>'+
			'<li class="highslide-move">'+
				'<a href="#" title="{hs.lang.moveTitle}" onclick="return false">'+
				'<span>{hs.lang.moveText}</span></a>'+
			'</li>'+
			'<li class="highslide-close">'+
				'<a href="#" title="{hs.lang.closeTitle}" onclick="return hs.close(this)">'+
				'<span>{hs.lang.closeText}</span></a>'+
			'</li>'+
		'</ul></div>'+
		'<div class="highslide-body"></div>'+
		'<div class="highslide-footer"><div>'+
			'<span class="highslide-resize" title="{hs.lang.resizeTitle}"><span></span></span>'+
		'</div></div>'
},
// END OF YOUR SETTINGS


// declare internal properties
preloadTheseImages : [],
continuePreloading: true,
expanders : [],
overrides : [
	'allowSizeReduction',
	'useBox',
	'anchor',
	'align',
	'targetX',
	'targetY',
	'outlineType',
	'outlineWhileAnimating',
	'captionId',
	'captionText',
	'captionEval',
	'captionOverlay',
	'headingId',
	'headingText',
	'headingEval',
	'headingOverlay',
	'dragByHeading',
	'autoplay',
	'numberPosition',
	'transitions',
	'dimmingOpacity',
	
	'width',
	'height',
	
	'contentId',
	'allowWidthReduction',
	'allowHeightReduction',
	'preserveContent',
	'maincontentId',
	'maincontentText',
	'maincontentEval',
	'objectType',	
	'cacheAjax',	
	'objectWidth',
	'objectHeight',
	'objectLoadTime',	
	'swfOptions',
	'wrapperClassName',
	'minWidth',
	'minHeight',
	'maxWidth',
	'maxHeight',
	'slideshowGroup',
	'easing',
	'easingClose',
	'fadeInOut',
	'src'
],
overlays : [],
idCounter : 0,
oPos : {
	x: ['leftpanel', 'left', 'center', 'right', 'rightpanel'],
	y: ['above', 'top', 'middle', 'bottom', 'below']
},
mouse: {},
headingOverlay: {},
captionOverlay: {},
swfOptions: { flashvars: {}, params: {}, attributes: {} },
timers : [],

slideshows : [],

pendingOutlines : {},
sleeping : [],
preloadTheseAjax : [],
cacheBindings : [],
cachedGets : {},
clones : {},
uaVersion: parseFloat((navigator.userAgent.toLowerCase().match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1]),
ie : (document.all && !window.opera),
safari : /Safari/.test(navigator.userAgent),
geckoMac : /Macintosh.+rv:1\.[0-8].+Gecko/.test(navigator.userAgent),

$ : function (id) {
	if (id) return document.getElementById(id);
},

push : function (arr, val) {
	arr[arr.length] = val;
},

createElement : function (tag, attribs, styles, parent, nopad) {
	var el = document.createElement(tag);
	if (attribs) hs.extend(el, attribs);
	if (nopad) hs.setStyles(el, {padding: 0, border: 'none', margin: 0});
	if (styles) hs.setStyles(el, styles);
	if (parent) parent.appendChild(el);	
	return el;
},

extend : function (el, attribs) {
	for (var x in attribs) el[x] = attribs[x];
	return el;
},

setStyles : function (el, styles) {
	for (var x in styles) {
		if (hs.ie && x == 'opacity') {
			if (styles[x] > 0.99) el.style.removeAttribute('filter');
			else el.style.filter = 'alpha(opacity='+ (styles[x] * 100) +')';
		}
		else el.style[x] = styles[x];
	}
},
animate: function(el, prop, dur, easing, callback) {
	var rate = 25,
		from = {},
		to = {},
		units = {},
		timers = hs.timers,
		timer = [],
		step;
	if (typeof dur == 'object' && dur != null) {
		easing = dur.easing;
		callback = dur.callback;
		step = dur.step;
		dur = dur.duration;
	}

	if (typeof dur != 'number') dur = 250;
	dur = Math.floor(dur / rate) * rate + rate;
	easing = Math[easing] || Math.easeInQuad;
	for (var x in prop) {
		from[x] = parseFloat(hs.css(el, x)) || 0;
		to[x] = parseFloat(prop[x]);
		units[x] = x != 'opacity' ? 'px' : '';
	}
	for (var time = rate; time <= dur; time += rate) {
		(function(){
			var inter = {}, steps = [];
			
			for (var x in prop) {
				inter[x] = easing(time, from[x], to[x] - from[x], dur);
				if (isNaN(inter[x])) inter[x] = to[x];
				if (units[x]) inter[x] = Math.round(inter[x]);
				if (step) (function() {
					var val = inter[x],
						pX = x;
					hs.push(steps, function() {
						step(val, { prop: pX } ) 
					});
				})();
				inter[x] += units[x];
				
			}
			timer.push(function() {
				hs.setStyles(el, inter);
				if (steps) for (var i = 0; i < steps.length; i++) steps[i]();
			});
		})();
	}
	for (var i = 0; i < timers.length; i++) {
		if (timers[i].el == el) {
			timers.splice(i--, 1);
		}
	}
	timer.el = el;
	timer.callback = callback;
	timer.shift()();
	if (timer.length) timers.push(timer);
	else if (callback) callback();
	if (hs.timerId == null) {
		hs.timerId = setInterval( function() {
			for ( var i = 0; i < timers.length; i++ ) {
				timers[i].shift()();
				if (!timers[i].length) {
					if (timers[i].callback) timers[i].callback();
					timers.splice(i--, 1);
				}
			}

			if ( !timers.length ) {
				clearInterval( hs.timerId );
				hs.timerId = null;
			}
		}, rate);
	}
},
css: function(el, prop) {
	if (document.defaultView) {
		return document.defaultView.getComputedStyle(el, null).getPropertyValue(prop);

	} else {
		if (prop == 'opacity') prop = 'filter';
		var val = el.currentStyle[prop.replace(/\-(\w)/g, function (a, b){ return b.toUpperCase(); })];
		if (prop == 'filter') 
			val = val.replace(/alpha\(opacity=([0-9]+)\)/, 
				function (a, b) { return b / 100 });
		return val === '' ? 1 : val;
	} 
},

getPageSize : function () {
	var d = document, w = window, iebody = d.compatMode && d.compatMode != 'BackCompat' 
		? d.documentElement : d.body;	
	
	
	var b = d.body;
	var xScroll = (w.innerWidth && w.scrollMaxX) 
			? w.innerWidth + w.scrollMaxX : Math.max(b.scrollWidth, b.offsetWidth),
		yScroll = (w.innerHeight && window.scrollMaxY) 
			? w.innerHeight + w.scrollMaxY : Math.max(b.scrollHeight, b.offsetHeight),
		pageWidth = hs.ie ? iebody.scrollWidth :
			(d.documentElement.clientWidth || self.innerWidth),
      	pageHeight = hs.ie ? Math.max(iebody.scrollHeight, iebody.clientHeight) : 
			(d.documentElement.clientHeight || self.innerHeight);
	
	var width = hs.ie ? iebody.clientWidth : 
			(d.documentElement.clientWidth || self.innerWidth),
		height = hs.ie ? iebody.clientHeight : self.innerHeight;
	
	return {
		pageWidth: Math.max(pageWidth, xScroll),
		pageHeight: Math.max(pageHeight, yScroll),
		width: width,
		height: height,		
		scrollLeft: hs.ie ? iebody.scrollLeft : pageXOffset,
		scrollTop: hs.ie ? iebody.scrollTop : pageYOffset
	}
},

getPosition : function(el)	{
	if (/area/i.test(el.tagName)) {
		var imgs = document.getElementsByTagName('img');
		for (var i = 0; i < imgs.length; i++) {
			var u = imgs[i].useMap;
			if (u && u.replace(/^.*?#/, '') == el.parentNode.name) {
				el = imgs[i];
				break;
			}
		}
	}
	var p = { x: el.offsetLeft, y: el.offsetTop };
	while (el.offsetParent)	{
		el = el.offsetParent;
		p.x += el.offsetLeft;
		p.y += el.offsetTop;
		if (el != document.body && el != document.documentElement) {
			p.x -= el.scrollLeft;
			p.y -= el.scrollTop;
		}
	}
	return p;
},

expand : function(a, params, custom, type) {
	if (!a) a = hs.createElement('a', null, { display: 'none' }, hs.container);
	if (typeof a.getParams == 'function') return params;
	if (type == 'html') {
		for (var i = 0; i < hs.sleeping.length; i++) {
			if (hs.sleeping[i] && hs.sleeping[i].a == a) {
				hs.sleeping[i].awake();
				hs.sleeping[i] = null;
				return false;
			}
		}
		hs.hasHtmlExpanders = true;
	}	
	try {	
		new hs.Expander(a, params, custom, type);
		return false;
	} catch (e) { return true; }
},

htmlExpand : function(a, params, custom) {
	return hs.expand(a, params, custom, 'html');
},

getSelfRendered : function() {
	return hs.createElement('div', { 
		className: 'highslide-html-content', 
		innerHTML: hs.replaceLang(hs.skin.contentWrapper) 
	});
},
getElementByClass : function (el, tagName, className) {
	var els = el.getElementsByTagName(tagName);
	for (var i = 0; i < els.length; i++) {
    	if ((new RegExp(className)).test(els[i].className)) {
			return els[i];
		}
	}
	return null;
},
replaceLang : function(s) {
	s = s.replace(/\s/g, ' ');
	var re = /{hs\.lang\.([^}]+)\}/g,
		matches = s.match(re),
		lang;
	if (matches) for (var i = 0; i < matches.length; i++) {
		lang = matches[i].replace(re, "$1");
		if (typeof hs.lang[lang] != 'undefined') s = s.replace(matches[i], hs.lang[lang]);
	}
	return s;
},


setClickEvents : function () {
	var els = document.getElementsByTagName('a');
	for (var i = 0; i < els.length; i++) {
		var type = hs.isUnobtrusiveAnchor(els[i]);
		if (type && !els[i].hsHasSetClick) {
			(function(){
				var t = type;
				if (hs.fireEvent(hs, 'onSetClickEvent', { element: els[i], type: t })) {
					els[i].onclick =(type == 'image') ?function() { return hs.expand(this) }:
						function() { return hs.htmlExpand(this, { objectType: t } );};
				}
			})();
			els[i].hsHasSetClick = true;	
		}
	}
	if (!hs.pageLoaded) setTimeout( hs.setClickEvents, 50);
	else if (i) hs.updateAnchors();
},
isUnobtrusiveAnchor: function(el) {
	if (el.rel == 'highslide') return 'image';
	else if (el.rel == 'highslide-ajax') return 'ajax';
	else if (el.rel == 'highslide-iframe') return 'iframe';
	else if (el.rel == 'highslide-swf') return 'swf';
},

getCacheBinding : function (a) {
	for (var i = 0; i < hs.cacheBindings.length; i++) {
		if (hs.cacheBindings[i][0] == a) {
			var c = hs.cacheBindings[i][1];
			hs.cacheBindings[i][1] = c.cloneNode(1);
			return c;
		}
	}
	return null;
},

preloadAjax : function (e) {
	var arr = hs.getAnchors();
	for (var i = 0; i < arr.htmls.length; i++) {
		var a = arr.htmls[i];
		if (hs.getParam(a, 'objectType') == 'ajax' && hs.getParam(a, 'cacheAjax'))
			hs.push(hs.preloadTheseAjax, a);
	}
	
	hs.preloadAjaxElement(0);
},

preloadAjaxElement : function (i) {
	if (!hs.preloadTheseAjax[i]) return;
	var a = hs.preloadTheseAjax[i];
	var cache = hs.getNode(hs.getParam(a, 'contentId'));
	if (!cache) cache = hs.getSelfRendered();
	var ajax = new hs.Ajax(a, cache, 1);	
   	ajax.onError = function () { };
   	ajax.onLoad = function () {
   		hs.push(hs.cacheBindings, [a, cache]);
   		hs.preloadAjaxElement(i + 1);
   	};
   	ajax.run();
},

focusTopmost : function() {
	var topZ = 0, 
		topmostKey = -1,
		expanders = hs.expanders,
		exp,
		zIndex;
	for (var i = 0; i < expanders.length; i++) {
		exp = expanders[i];
		if (exp) {
			zIndex = exp.wrapper.style.zIndex;
			if (zIndex && zIndex > topZ) {
				topZ = zIndex;				
				topmostKey = i;
			}
		}
	}
	if (topmostKey == -1) hs.focusKey = -1;
	else expanders[topmostKey].focus();
},

getParam : function (a, param) {
	a.getParams = a.onclick;
	var p = a.getParams ? a.getParams() : null;
	a.getParams = null;
	
	return (p && typeof p[param] != 'undefined') ? p[param] : 
		(typeof hs[param] != 'undefined' ? hs[param] : null);
},

getSrc : function (a) {
	var src = hs.getParam(a, 'src');
	if (src) return src;
	return a.href;
},

getNode : function (id) {
	var node = hs.$(id), clone = hs.clones[id], a = {};
	if (!node && !clone) return null;
	if (!clone) {
		clone = node.cloneNode(true);
		clone.id = '';
		hs.clones[id] = clone;
		return node;
	} else {
		return clone.cloneNode(true);
	}
},

discardElement : function(d) {
	hs.garbageBin.appendChild(d);
	hs.garbageBin.innerHTML = '';
},
dim : function(exp) {
	if (!hs.dimmer) {
		hs.dimmer = hs.createElement ('div', 
			{ 
				className: 'highslide-dimming',
				owner: '',
				onclick: function() {
					if (hs.fireEvent(hs, 'onDimmerClick'))
					 
						hs.close();
				}
			}, { 
				position: 'absolute',
				visibility: 'visible',
				left: 0,
				opacity: 0 
			}, hs.container, true);
		hs.addEventListener(window, 'resize', hs.setDimmerSize);
	}
	hs.dimmer.style.display = '';
	hs.setDimmerSize();
	hs.dimmer.owner += '|'+ exp.key;
	if (hs.geckoMac && hs.dimmingGeckoFix) 
		hs.dimmer.style.background = 'url('+ hs.graphicsDir + 'geckodimmer.png)';		
	else
		hs.animate(hs.dimmer, { opacity: exp.dimmingOpacity }, hs.dimmingDuration); 
},
undim : function(key) {
	if (!hs.dimmer) return;
	if (typeof key != 'undefined') hs.dimmer.owner = hs.dimmer.owner.replace('|'+ key, '');
	
	if (
		(typeof key != 'undefined' && hs.dimmer.owner != '')
		|| (hs.upcoming && hs.getParam(hs.upcoming, 'dimmingOpacity'))
	) return;
	if (hs.geckoMac && hs.dimmingGeckoFix) 
		hs.setStyles(hs.dimmer, { background: 'none', width: 0, height: 0 });
	else hs.animate(hs.dimmer, { opacity: 0 }, hs.dimmingDuration, null, function() {
		hs.setStyles(hs.dimmer, { display: 'none', width: 0, height: 0 });
	});
},
setDimmerSize : function(exp) {
	if (!hs.dimmer) return;
	var h = (hs.ie && exp && exp.wrapper) ? 
		parseInt(exp.wrapper.style.top) + parseInt(exp.wrapper.style.height)+ (exp.outline ? exp.outline.offset : 0) : 0; 
	hs.setStyles(hs.dimmer, { 
		width: hs.page.pageWidth +'px', 
		height: Math.max(hs.page.pageHeight, h) +'px'
	});
},
transit : function (adj, exp) {
	var last = exp = exp || hs.getExpander();
	if (hs.upcoming) return false;
	else hs.last = last;
	try {
		hs.upcoming = adj;
		adj.onclick(); 		
	} catch (e){
		hs.last = hs.upcoming = null;
	}
	try {
		if (!adj || exp.transitions[1] != 'crossfade')
		exp.close();
	} catch (e) {}
	return false;
},

previousOrNext : function (el, op) {
	var exp = hs.getExpander(el);
	if (exp) {
		adj = exp.getAdjacentAnchor(op);
		return hs.transit(adj, exp);
	} else return false;
},

previous : function (el) {
	return hs.previousOrNext(el, -1);
},

next : function (el) {
	return hs.previousOrNext(el, 1);	
},

keyHandler : function(e) {
	if (!e) e = window.event;
	if (!e.target) e.target = e.srcElement; // ie
	if (typeof e.target.form != 'undefined') return true; // form element has focus
	if (!hs.fireEvent(hs, 'onKeyDown', e)) return true;
	var exp = hs.getExpander();
	
	var op = null;
	switch (e.keyCode) {
		case 70: // f
			if (exp) exp.doFullExpand();
			return true;
		case 32: // Space
			op = 2;
			break;
		case 34: // Page Down
		case 39: // Arrow right
		case 40: // Arrow down
			op = 1;
			break;
		case 8:  // Backspace
		case 33: // Page Up
		case 37: // Arrow left
		case 38: // Arrow up
			op = -1;
			break;
		case 27: // Escape
		case 13: // Enter
			op = 0;
	}
	if (op !== null) {if (op != 2)hs.removeEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);
		if (!hs.enableKeyListener) return true;
		
		if (e.preventDefault) e.preventDefault();
    	else e.returnValue = false;
    	if (exp) {
			if (op == 0) {
				exp.close();
			} else if (op == 2) {
				if (exp.slideshow) exp.slideshow.hitSpace();
			} else {
				if (exp.slideshow) exp.slideshow.pause();
				hs.previousOrNext(exp.key, op);
			}
			return false;
		}
	}
	return true;
},


registerOverlay : function (overlay) {
	hs.push(hs.overlays, overlay);
},


addSlideshow : function (options) {
	var sg = options.slideshowGroup;
	if (typeof sg == 'object') {
		for (var i = 0; i < sg.length; i++) {
			var o = {};
			for (var x in options) o[x] = options[x];
			o.slideshowGroup = sg[i];
			hs.push(hs.slideshows, o);
		}
	} else {
		hs.push(hs.slideshows, options);
	}
},

getWrapperKey : function (element, expOnly) {
	var el, re = /^highslide-wrapper-([0-9]+)$/;
	// 1. look in open expanders
	el = element;
	while (el.parentNode)	{
		if (el.hsKey !== undefined) return el.hsKey;
		if (el.id && re.test(el.id)) return el.id.replace(re, "$1");
		el = el.parentNode;
	}
	// 2. look in thumbnail
	if (!expOnly) {
		el = element;
		while (el.parentNode)	{
			if (el.tagName && hs.isHsAnchor(el)) {
				for (var key = 0; key < hs.expanders.length; key++) {
					var exp = hs.expanders[key];
					if (exp && exp.a == el) return key;
				}
			}
			el = el.parentNode;
		}
	}
	return null; 
},

getExpander : function (el, expOnly) {
	if (typeof el == 'undefined') return hs.expanders[hs.focusKey] || null;
	if (typeof el == 'number') return hs.expanders[el] || null;
	if (typeof el == 'string') el = hs.$(el);
	return hs.expanders[hs.getWrapperKey(el, expOnly)] || null;
},

isHsAnchor : function (a) {
	return (a.onclick && a.onclick.toString().replace(/\s/g, ' ').match(/hs.(htmlE|e)xpand/));
},

reOrder : function () {
	for (var i = 0; i < hs.expanders.length; i++)
		if (hs.expanders[i] && hs.expanders[i].isExpanded) hs.focusTopmost();
},
fireEvent : function (obj, evt, args) {
	return obj && obj[evt] ? (obj[evt](obj, args) !== false) : true;
},

mouseClickHandler : function(e) 
{	
	if (!e) e = window.event;
	if (e.button > 1) return true;
	if (!e.target) e.target = e.srcElement;
	
	var el = e.target;
	while (el.parentNode
		&& !(/highslide-(image|move|html|resize)/.test(el.className)))
	{
		el = el.parentNode;
	}
	var exp = hs.getExpander(el);
	if (exp && (exp.isClosing || !exp.isExpanded)) return true;
		
	if (exp && e.type == 'mousedown') {
		if (e.target.form) return true;
		var match = el.className.match(/highslide-(image|move|resize)/);
		if (match) {
			hs.dragArgs = { exp: exp , type: match[1], left: exp.x.pos, width: exp.x.size, top: exp.y.pos, 
				height: exp.y.size, clickX: e.clientX, clickY: e.clientY };
			
			
			hs.addEventListener(document, 'mousemove', hs.dragHandler);
			if (e.preventDefault) e.preventDefault(); // FF
			
			if (/highslide-(image|html)-blur/.test(exp.content.className)) {
				exp.focus();
				hs.hasFocused = true;
			}
			return false;
		}
		else if (/highslide-html/.test(el.className) && hs.focusKey != exp.key) {
			exp.focus();
			exp.doShowHide('hidden');
		}
	} else if (e.type == 'mouseup') {
		
		hs.removeEventListener(document, 'mousemove', hs.dragHandler);
		
		if (hs.dragArgs) {
			if (hs.styleRestoreCursor && hs.dragArgs.type == 'image') 
				hs.dragArgs.exp.content.style.cursor = hs.styleRestoreCursor;
			var hasDragged = hs.dragArgs.hasDragged;
			
			if (!hasDragged &&!hs.hasFocused && !/(move|resize)/.test(hs.dragArgs.type)) {
				if (hs.fireEvent(exp, 'onImageClick'))
				exp.close();
			} 
			else if (hasDragged || (!hasDragged && hs.hasHtmlExpanders)) {
				hs.dragArgs.exp.doShowHide('hidden');
			}
			
			if (hs.dragArgs.exp.releaseMask) 
				hs.dragArgs.exp.releaseMask.style.display = 'none';
			
			if (hasDragged) hs.fireEvent(hs.dragArgs.exp, 'onDrop', hs.dragArgs);
			if (hasDragged) hs.setDimmerSize(exp);
			
			hs.hasFocused = false;
			hs.dragArgs = null;
		
		} else if (/highslide-image-blur/.test(el.className)) {
			el.style.cursor = hs.styleRestoreCursor;		
		}
	}
	return false;
},

dragHandler : function(e)
{
	if (!hs.dragArgs) return true;
	if (!e) e = window.event;
	var a = hs.dragArgs, exp = a.exp;
	if (exp.iframe) {		
		if (!exp.releaseMask) exp.releaseMask = hs.createElement('div', null, 
			{ position: 'absolute', width: exp.x.size+'px', height: exp.y.size+'px', 
				left: exp.x.cb+'px', top: exp.y.cb+'px', zIndex: 4,	background: (hs.ie ? 'white' : 'none'), 
				opacity: .01 }, 
			exp.wrapper, true);
		if (exp.releaseMask.style.display == 'none')
			exp.releaseMask.style.display = '';
	}
	
	a.dX = e.clientX - a.clickX;
	a.dY = e.clientY - a.clickY;	
	
	var distance = Math.sqrt(Math.pow(a.dX, 2) + Math.pow(a.dY, 2));
	if (!a.hasDragged) a.hasDragged = (a.type != 'image' && distance > 0)
		|| (distance > (hs.dragSensitivity || 5));
	
	if (a.hasDragged && e.clientX > 5 && e.clientY > 5) {
		if (!hs.fireEvent(exp, 'onDrag', a)) return false;
		
		if (a.type == 'resize') exp.resize(a);
		else {
			exp.moveTo(a.left + a.dX, a.top + a.dY);
			if (a.type == 'image') exp.content.style.cursor = 'move';
		}
	}
	return false;
},

wrapperMouseHandler : function (e) {
	try {
		if (!e) e = window.event;
		var over = /mouseover/i.test(e.type); 
		if (!e.target) e.target = e.srcElement; // ie
		if (hs.ie) e.relatedTarget = 
			over ? e.fromElement : e.toElement; // ie
		var exp = hs.getExpander(e.target);
		if (!exp.isExpanded) return;
		if (!exp || !e.relatedTarget || hs.getExpander(e.relatedTarget, true) == exp 
			|| hs.dragArgs) return;
		hs.fireEvent(exp, over ? 'onMouseOver' : 'onMouseOut', e);
		for (var i = 0; i < exp.overlays.length; i++) (function() {
			var o = hs.$('hsId'+ exp.overlays[i]);
			if (o && o.hideOnMouseOut) {
				if (over) hs.setStyles(o, { visibility: 'visible' });
				hs.animate(o, { opacity: over ? o.opacity : 0 }, o.dur, null, 
					over ? null : function() { hs.setStyles(o, { visibility: 'hidden' })});
			}
		})();	
	} catch (e) {}
},
addEventListener : function (el, event, func) {
	try {
		el.addEventListener(event, func, false);
	} catch (e) {
		try {
			el.detachEvent('on'+ event, func);
			el.attachEvent('on'+ event, func);
		} catch (e) {
			el['on'+ event] = func;
		}
	} 
},

removeEventListener : function (el, event, func) {
	try {
		el.removeEventListener(event, func, false);
	} catch (e) {
		try {
			el.detachEvent('on'+ event, func);
		} catch (e) {
			el['on'+ event] = null;
		}
	}
},

preloadFullImage : function (i) {
	if (hs.continuePreloading && hs.preloadTheseImages[i] && hs.preloadTheseImages[i] != 'undefined') {
		var img = document.createElement('img');
		img.onload = function() { 
			img = null;
			hs.preloadFullImage(i + 1);
		};
		img.src = hs.preloadTheseImages[i];
	}
},
preloadImages : function (number) {
	if (number && typeof number != 'object') hs.numberOfImagesToPreload = number;
	
	var arr = hs.getAnchors();
	for (var i = 0; i < arr.images.length && i < hs.numberOfImagesToPreload; i++) {
		hs.push(hs.preloadTheseImages, hs.getSrc(arr.images[i]));
	}
	
	// preload outlines
	if (hs.outlineType)	new hs.Outline(hs.outlineType, function () { hs.preloadFullImage(0)} );
	else
	
	hs.preloadFullImage(0);
	
	// preload cursor
	if (hs.restoreCursor) var cur = hs.createElement('img', { src: hs.graphicsDir + hs.restoreCursor });
},


init : function () {
	if (!hs.container) {
	
		hs.page = hs.getPageSize();
		hs.ieLt7 = hs.ie && hs.uaVersion < 7;
		hs.ie6SSL = hs.ieLt7 && location.protocol == 'https:';
		for (var x in hs.langDefaults) {
			if (typeof hs[x] != 'undefined') hs.lang[x] = hs[x];
			else if (typeof hs.lang[x] == 'undefined' && typeof hs.langDefaults[x] != 'undefined') 
				hs.lang[x] = hs.langDefaults[x];
		}
		
		hs.container = hs.createElement('div', {
				className: 'highslide-container'
			}, {
				position: 'absolute', 
				left: 0, 
				top: 0, 
				width: '100%', 
				zIndex: hs.zIndexCounter,
				direction: 'ltr'
			}, 
			document.body,
			true
		);
		hs.loading = hs.createElement('a', {
				className: 'highslide-loading',
				title: hs.lang.loadingTitle,
				innerHTML: hs.lang.loadingText,
				href: 'javascript:;'
			}, {
				position: 'absolute',
				top: '-9999px',
				opacity: hs.loadingOpacity,
				zIndex: 1
			}, hs.container
		);
		hs.garbageBin = hs.createElement('div', null, { display: 'none' }, hs.container);
		hs.viewport = hs.createElement('div', {
				className: 'highslide-viewport'
			}, null, hs.container, 1
		);
		hs.clearing = hs.createElement('div', null, 
			{ clear: 'both', paddingTop: '1px' }, null, true);
		
		// http://www.robertpenner.com/easing/ 
		Math.linearTween = function (t, b, c, d) {
			return c*t/d + b;
		};
		Math.easeInQuad = function (t, b, c, d) {
			return c*(t/=d)*t + b;
		};
		Math.easeOutQuad = function (t, b, c, d) {
			return -c *(t/=d)*(t-2) + b;
		};
		
		hs.hideSelects = hs.ieLt7;
		hs.hideIframes = ((window.opera && hs.uaVersion < 9) || navigator.vendor == 'KDE' 
			|| (hs.ie && hs.uaVersion < 5.5));
		hs.fireEvent(this, 'onActivate');
	}
},
domReady : function() {
	hs.isDomReady = true;
	if (hs.onDomReady) hs.onDomReady();
},

updateAnchors : function() {
	var el, els, all = [], images = [], htmls = [],groups = {}, re;
		
	for (var i = 0; i < hs.openerTagNames.length; i++) {
		els = document.getElementsByTagName(hs.openerTagNames[i]);
		for (var j = 0; j < els.length; j++) {
			el = els[j];
			re = hs.isHsAnchor(el);
			if (re) {
				hs.push(all, el);
				if (re[0] == 'hs.expand') hs.push(images, el);
				else if (re[0] == 'hs.htmlExpand') hs.push(htmls, el);
				var g = hs.getParam(el, 'slideshowGroup') || 'none';
				if (!groups[g]) groups[g] = [];
				hs.push(groups[g], el);
			}
		}
	}
	hs.anchors = { all: all, groups: groups, images: images, htmls: htmls };
	return hs.anchors;
	
},

getAnchors : function() {
	return hs.anchors || hs.updateAnchors();
},


close : function(el) {
	var exp = hs.getExpander(el);
	if (exp) exp.close();
	return false;
}
}; // end hs object


hs.Outline =  function (outlineType, onLoad) {
	this.onLoad = onLoad;
	this.outlineType = outlineType;
	var v = hs.uaVersion, tr;
	
	this.hasAlphaImageLoader = hs.ie && v >= 5.5 && v < 7;
	if (!outlineType) {
		if (onLoad) onLoad();
		return;
	}
	
	hs.init();
	this.table = hs.createElement(
		'table', { 
			cellSpacing: 0 
		}, {
			visibility: 'hidden',
			position: 'absolute',
			borderCollapse: 'collapse',
			width: 0
		},
		hs.container,
		true
	);
	var tbody = hs.createElement('tbody', null, null, this.table, 1);
	
	this.td = [];
	for (var i = 0; i <= 8; i++) {
		if (i % 3 == 0) tr = hs.createElement('tr', null, { height: 'auto' }, tbody, true);
		this.td[i] = hs.createElement('td', null, null, tr, true);
		var style = i != 4 ? { lineHeight: 0, fontSize: 0} : { position : 'relative' };
		hs.setStyles(this.td[i], style);
	}
	this.td[4].className = outlineType +' highslide-outline';
	
	this.preloadGraphic(); 
};

hs.Outline.prototype = {
preloadGraphic : function () {
	var src = hs.graphicsDir + (hs.outlinesDir || "outlines/")+ this.outlineType +".png";
				
	var appendTo = hs.safari ? hs.container : null;
	this.graphic = hs.createElement('img', null, { position: 'absolute', 
		top: '-9999px' }, appendTo, true); // for onload trigger
	
	var pThis = this;
	this.graphic.onload = function() { pThis.onGraphicLoad(); };
	
	this.graphic.src = src;
},

onGraphicLoad : function () {
	var o = this.offset = this.graphic.width / 4,
		pos = [[0,0],[0,-4],[-2,0],[0,-8],0,[-2,-8],[0,-2],[0,-6],[-2,-2]],
		dim = { height: (2*o) +'px', width: (2*o) +'px' };
	for (var i = 0; i <= 8; i++) {
		if (pos[i]) {
			if (this.hasAlphaImageLoader) {
				var w = (i == 1 || i == 7) ? '100%' : this.graphic.width +'px';
				var div = hs.createElement('div', null, { width: '100%', height: '100%', position: 'relative', overflow: 'hidden'}, this.td[i], true);
				hs.createElement ('div', null, { 
						filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale, src='"+ this.graphic.src + "')", 
						position: 'absolute',
						width: w, 
						height: this.graphic.height +'px',
						left: (pos[i][0]*o)+'px',
						top: (pos[i][1]*o)+'px'
					}, 
				div,
				true);
			} else {
				hs.setStyles(this.td[i], { background: 'url('+ this.graphic.src +') '+ (pos[i][0]*o)+'px '+(pos[i][1]*o)+'px'});
			}
			
			if (window.opera && (i == 3 || i ==5)) 
				hs.createElement('div', null, dim, this.td[i], true);
			
			hs.setStyles (this.td[i], dim);
		}
	}
	this.graphic = null;
	if (hs.pendingOutlines[this.outlineType]) hs.pendingOutlines[this.outlineType].destroy();
	hs.pendingOutlines[this.outlineType] = this;
	if (this.onLoad) this.onLoad();
},
	
setPosition : function (parse, offset, vis, dur, easing) {
	var exp = this.exp,
		stl = exp.wrapper.style,
		offset = offset || 0,
		pos = parse ? {
			x: parseInt(stl.left),
			y: parseInt(stl.top),
			w: parseInt(stl.width),
			h: parseInt(stl.height)
		} : {
			x: exp.x.pos + offset,
			y: exp.y.pos + offset,
			w: exp.x.get('wsize') - 2 * offset,
			h: exp.y.get('wsize') - 2 * offset
		};
	if (vis) this.table.style.visibility = (pos.h >= 4 * this.offset) 
		? 'visible' : 'hidden';
	hs.setStyles(this.table, {
		left: (pos.x - this.offset) +'px',
		top: (pos.y - this.offset) +'px',
		width: (pos.w + 2 * this.offset) +'px'
	});
	
	pos.w -= 2 * this.offset;
	pos.h -= 2 * this.offset;
	hs.setStyles (this.td[4], {
		width: pos.w >= 0 ? pos.w +'px' : 0,
		height: pos.h >= 0 ? pos.h +'px' : 0
	});
	if (this.hasAlphaImageLoader) this.td[3].style.height 
		= this.td[5].style.height = this.td[4].style.height;	
	
},
	
destroy : function(hide) {
	if (hide) this.table.style.visibility = 'hidden';
	else hs.discardElement(this.table);
}
};

hs.Dimension = function(exp, dim) {
	this.exp = exp;
	this.dim = dim;
	this.ucwh = dim == 'x' ? 'Width' : 'Height';
	this.wh = this.ucwh.toLowerCase();
	this.uclt = dim == 'x' ? 'Left' : 'Top';
	this.lt = this.uclt.toLowerCase();
	this.ucrb = dim == 'x' ? 'Right' : 'Bottom';
	this.rb = this.ucrb.toLowerCase();
	this.p1 = this.p2 = 0;
};
hs.Dimension.prototype = {
get : function(key) {
	switch (key) {
		case 'loadingPos':
			return this.tpos + this.tb + (this.t - hs.loading['offset'+ this.ucwh]) / 2;
		case 'loadingPosXfade':
			return this.pos + this.cb+ this.p1 + (this.size - hs.loading['offset'+ this.ucwh]) / 2;
		case 'wsize':
			return this.size + 2 * this.cb + this.p1 + this.p2;
		case 'fitsize':
			return this.clientSize - this.marginMin - this.marginMax;
		case 'opos':
			return this.pos - (this.exp.outline ? this.exp.outline.offset : 0);
		case 'osize':
			return this.get('wsize') + (this.exp.outline ? 2*this.exp.outline.offset : 0);
		case 'imgPad':
			return this.imgSize ? Math.round((this.size - this.imgSize) / 2) : 0;
		
	}
},
calcBorders: function() {
	// correct for borders
	this.cb = (this.exp.content['offset'+ this.ucwh] - this.t) / 2;
	this.marginMax = hs['margin'+ this.ucrb] + 2 * this.cb;
},
calcThumb: function() {
	this.t = this.exp.el[this.wh] ? parseInt(this.exp.el[this.wh]) : 
		this.exp.el['offset'+ this.ucwh];
	this.tpos = this.exp.tpos[this.dim];
	this.tb = (this.exp.el['offset'+ this.ucwh] - this.t) / 2;
	if (this.tpos == 0) {
		this.tpos = (hs.page[this.wh] / 2) + hs.page['scroll'+ this.uclt];		
	};
},
calcExpanded: function() {
	var exp = this.exp;
	this.justify = 'auto';
	
	// get alignment
	if (exp.align == 'center') this.justify = 'center';
	else if (new RegExp(this.lt).test(exp.anchor)) this.justify = null;
	else if (new RegExp(this.rb).test(exp.anchor)) this.justify = 'max';
	
	
	// size and position
	this.pos = this.tpos - this.cb + this.tb;
	this.size = Math.min(this.full, exp['max'+ this.ucwh] || this.full);
	this.minSize = exp.allowSizeReduction ? 
		Math.min(exp['min'+ this.ucwh], this.full) :this.full;
	if (exp.isImage && exp.useBox)	{
		this.size = exp[this.wh];
		this.imgSize = this.full;
	}
	if (this.dim == 'x' && hs.padToMinWidth) this.minSize = exp.minWidth;
	this.target = exp['target'+ this.dim.toUpperCase()];
	this.marginMin = hs['margin'+ this.uclt];
	this.scroll = hs.page['scroll'+ this.uclt];
	this.clientSize = hs.page[this.wh];
},
setSize: function(i) {
	var exp = this.exp;
	if (exp.isImage && (exp.useBox || hs.padToMinWidth)) {
		this.imgSize = i;
		this.size = Math.max(this.size, this.imgSize);
		exp.content.style[this.lt] = this.get('imgPad')+'px';
	} else
	this.size = i;

	exp.content.style[this.wh] = i +'px';
	exp.wrapper.style[this.wh] = this.get('wsize') +'px';
	if (exp.outline) exp.outline.setPosition();
	if (exp.releaseMask) exp.releaseMask.style[this.wh] = i +'px';
	if (exp.isHtml) {
		var d = exp.scrollerDiv;
		if (this.sizeDiff === undefined)
			this.sizeDiff = exp.innerContent['offset'+ this.ucwh] - d['offset'+ this.ucwh];
		d.style[this.wh] = (this.size - this.sizeDiff) +'px';
			
		if (this.dim == 'x') exp.mediumContent.style.width = 'auto';
		if (exp.body) exp.body.style[this.wh] = 'auto';		
	}
	if (this.dim == 'x' && exp.overlayBox) exp.sizeOverlayBox(true);
	if (this.dim == 'x' && exp.slideshow && exp.isImage) {
		if (i == this.full) exp.slideshow.disable('full-expand');
		else exp.slideshow.enable('full-expand');
	}
},
setPos: function(i) {
	this.pos = i;
	this.exp.wrapper.style[this.lt] = i +'px';	
	
	if (this.exp.outline) this.exp.outline.setPosition();
	
}
};

hs.Expander = function(a, params, custom, contentType) {
	if (document.readyState && hs.ie && !hs.isDomReady) {
		hs.onDomReady = function() {
			new hs.Expander(a, params, custom, contentType);
		};
		return;
	} 
	this.a = a;
	this.custom = custom;
	this.contentType = contentType || 'image';
	this.isHtml = (contentType == 'html');
	this.isImage = !this.isHtml;
	
	hs.continuePreloading = false;
	this.overlays = [];
	this.last = hs.last;
	hs.last = null;
	hs.init();
	var key = this.key = hs.expanders.length;
	
	// override inline parameters
	for (var i = 0; i < hs.overrides.length; i++) {
		var name = hs.overrides[i];
		this[name] = params && typeof params[name] != 'undefined' ?
			params[name] : hs[name];
	}
	if (!this.src) this.src = a.href;
	
	// get thumb
	var el = (params && params.thumbnailId) ? hs.$(params.thumbnailId) : a;
	el = this.thumb = el.getElementsByTagName('img')[0] || el;
	this.thumbsUserSetId = el.id || a.id;
	if (!hs.fireEvent(this, 'onInit')) return true;
	
	// check if already open
	for (var i = 0; i < hs.expanders.length; i++) {
		if (hs.expanders[i] && hs.expanders[i].a == a 
			&& !(this.last && this.transitions[1] == 'crossfade')) {
			hs.expanders[i].focus();
			return false;
		}
	}	

	// cancel other
	for (var i = 0; i < hs.expanders.length; i++) {
		if (hs.expanders[i] && hs.expanders[i].thumb != el && !hs.expanders[i].onLoadStarted) {
			hs.expanders[i].cancelLoading();
		}
	}
	hs.expanders[this.key] = this;
	if (!hs.allowMultipleInstances && !hs.upcoming) {
		if (hs.expanders[key-1]) hs.expanders[key-1].close();
		if (typeof hs.focusKey != 'undefined' && hs.expanders[hs.focusKey])
			hs.expanders[hs.focusKey].close();
	}
	
	// initiate metrics
	this.el = el;
	this.tpos = hs.getPosition(el);
	hs.page = hs.getPageSize();
	var x = this.x = new hs.Dimension(this, 'x');
	x.calcThumb();
	var y = this.y = new hs.Dimension(this, 'y');
	y.calcThumb();
	if (/area/i.test(el.tagName)) this.getImageMapAreaCorrection(el);
	this.wrapper = hs.createElement(
		'div', {
			id: 'highslide-wrapper-'+ this.key,
			className: this.wrapperClassName
		}, {
			visibility: 'hidden',
			position: 'absolute',
			zIndex: hs.zIndexCounter++
		}, null, true );
	
	this.wrapper.onmouseover = this.wrapper.onmouseout = hs.wrapperMouseHandler;
	if (this.contentType == 'image' && this.outlineWhileAnimating == 2)
		this.outlineWhileAnimating = 0;
	
	// get the outline
	if (!this.outlineType 
		|| (this.last && this.isImage && this.transitions[1] == 'crossfade')) {
		this[this.contentType +'Create']();
	
	} else if (hs.pendingOutlines[this.outlineType]) {
		this.connectOutline();
		this[this.contentType +'Create']();
	
	} else {
		this.showLoading();
		var exp = this;
		new hs.Outline(this.outlineType, 
			function () {
				exp.connectOutline();
				exp[exp.contentType +'Create']();
			} 
		);
	}
	return true;
};

hs.Expander.prototype = {
error : function(e) {
	// alert ('Line '+ e.lineNumber +': '+ e.message);
	window.location.href = this.src;
},

connectOutline : function() {
	var outline = this.outline = hs.pendingOutlines[this.outlineType];
	outline.exp = this;
	outline.table.style.zIndex = this.wrapper.style.zIndex;
	hs.pendingOutlines[this.outlineType] = null;
},

showLoading : function() {
	if (this.onLoadStarted || this.loading) return;
	
	this.loading = hs.loading;
	var exp = this;
	this.loading.onclick = function() {
		exp.cancelLoading();
	};
	
	
	if (!hs.fireEvent(this, 'onShowLoading')) return;
	var exp = this, 
		l = this.x.get('loadingPos') +'px',
		t = this.y.get('loadingPos') +'px';
	if (!tgt && this.last && this.transitions[1] == 'crossfade') 
		var tgt = this.last; 
	if (tgt) {
		l = tgt.x.get('loadingPosXfade') +'px';
		t = tgt.y.get('loadingPosXfade') +'px';
		this.loading.style.zIndex = hs.zIndexCounter++;
	}
	setTimeout(function () { 
		if (exp.loading) hs.setStyles(exp.loading, { left: l, top: t, zIndex: hs.zIndexCounter++ })}
	, 100);
},

imageCreate : function() {
	var exp = this;
	
	var img = document.createElement('img');
    this.content = img;
    img.onload = function () {
    	if (hs.expanders[exp.key]) exp.contentLoaded(); 
	};
    if (hs.blockRightClick) img.oncontextmenu = function() { return false; };
    img.className = 'highslide-image';
    hs.setStyles(img, {
    	visibility: 'hidden',
    	display: 'block',
    	position: 'absolute',
		maxWidth: '9999px',
		zIndex: 3
	});
    img.title = hs.lang.restoreTitle;
    if (hs.safari) hs.container.appendChild(img);
    if (hs.ie && hs.flushImgSize) img.src = null;
	img.src = this.src;
	
	this.showLoading();
},

htmlCreate : function () {
	if (!hs.fireEvent(this, 'onBeforeGetContent')) return;
	
	this.content = hs.getCacheBinding(this.a);
	if (!this.content) 
		this.content = hs.getNode(this.contentId);
	if (!this.content) 
		this.content = hs.getSelfRendered();
	this.getInline(['maincontent']);
	if (this.maincontent) {
		var body = hs.getElementByClass(this.content, 'div', 'highslide-body');
		if (body) body.appendChild(this.maincontent);
		this.maincontent.style.display = 'block';
	}
	hs.fireEvent(this, 'onAfterGetContent');
	
	this.innerContent = this.content;
	
	if (/(swf|iframe)/.test(this.objectType)) this.setObjContainerSize(this.innerContent);
	
	// the content tree
	hs.container.appendChild(this.wrapper);
	hs.setStyles( this.wrapper, { 
		position: 'static',
		padding: '0 '+ hs.marginRight +'px 0 '+ hs.marginLeft +'px'
	});
	this.content = hs.createElement(
    	'div', {
    		className: 'highslide-html' 
    	}, {
			position: 'relative',
			zIndex: 3,
			overflow: 'hidden'
		},
		this.wrapper
	);
	this.mediumContent = hs.createElement('div', null, null, this.content, 1);
	this.mediumContent.appendChild(this.innerContent);
	
	hs.setStyles (this.innerContent, { 
		position: 'relative',
		display: 'block',
		direction: hs.lang.cssDirection || ''
	});
	if (this.width) this.innerContent.style.width = this.width+'px';
	if (this.height) this.innerContent.style.height = this.height+'px';
	if (this.innerContent.offsetWidth < this.minWidth)
		this.innerContent.style.width = this.minWidth +'px';
	
    
	if (this.objectType == 'ajax' && !hs.getCacheBinding(this.a)) {
		this.showLoading();
    	var ajax = new hs.Ajax(this.a, this.innerContent);
    	var exp = this;
    	ajax.onLoad = function () {	if (hs.expanders[exp.key]) exp.contentLoaded(); };
    	ajax.onError = function () { location.href = exp.src; };
    	ajax.run();
	}
    else
    
    if (this.objectType == 'iframe' && this.objectLoadTime == 'before') {
		this.writeExtendedContent();
	}
    else
    	this.contentLoaded();
},

contentLoaded : function() {
	try {	
		if (!this.content) return;
		this.content.onload = null;
		if (this.onLoadStarted) return;
		else this.onLoadStarted = true;
		
		var x = this.x, y = this.y;
		
		if (this.loading) {
			hs.setStyles(this.loading, { top: '-9999px' });
			this.loading = null;
			hs.fireEvent(this, 'onHideLoading');
		}
		if (this.isImage) {	
			x.full = this.content.width;
			y.full = this.content.height;
			
			hs.setStyles(this.content, {
				width: x.t +'px',
				height: y.t +'px'
			});
			this.wrapper.appendChild(this.content);
			hs.container.appendChild(this.wrapper);
		} else if (this.htmlGetSize) this.htmlGetSize();
		
		x.calcBorders();
		y.calcBorders();
		
		hs.setStyles (this.wrapper, {
			left: (x.tpos + x.tb - x.cb) +'px',
			top: (y.tpos + x.tb - y.cb) +'px'
		});		
		
		
		this.initSlideshow();
		this.getOverlays();
		
		var ratio = x.full / y.full;
		
		x.calcExpanded();
		this.justify(x);
		
		y.calcExpanded();
		this.justify(y);
		if (this.isHtml) this.htmlSizeOperations();
		if (this.overlayBox) this.sizeOverlayBox(0, 1);
		
		if (this.allowSizeReduction) {
			if (this.isImage)
				this.correctRatio(ratio);
			else this.fitOverlayBox();
			var ss = this.slideshow;			
			if (ss && this.last && ss.controls && ss.fixedControls) {
				var pos = ss.overlayOptions.position || '', p;
				for (var dim in hs.oPos) for (var i = 0; i < 5; i++) {
					p = this[dim];
					if (pos.match(hs.oPos[dim][i])) {
						p.pos = this.last[dim].pos 
							+ (this.last[dim].p1 - p.p1)
							+ (this.last[dim].size - p.size) * [0, 0, .5, 1, 1][i];
						if (ss.fixedControls == 'fit') {
							if (p.pos + p.size + p.p1 + p.p2 > p.scroll + p.clientSize - p.marginMax)
								p.pos = p.scroll + p.clientSize - p.size - p.marginMin - p.marginMax - p.p1 - p.p2;
							if (p.pos < p.scroll + p.marginMin) p.pos = p.scroll + p.marginMin; 
						} 
					}
				}
			}
			if (this.isImage && this.x.full > (this.x.imgSize || this.x.size)) {
				this.createFullExpand();
				if (this.overlays.length == 1) this.sizeOverlayBox();
			}
		}
		this.show();
		
	} catch (e) {
		this.error(e);
	}
},


setObjContainerSize : function(parent, auto) {
	var c = hs.getElementByClass(parent, 'DIV', 'highslide-body');
	if (/(iframe|swf)/.test(this.objectType)) {
		if (this.objectWidth) c.style.width = this.objectWidth +'px';
		if (this.objectHeight) c.style.height = this.objectHeight +'px';
	}
},

writeExtendedContent : function () {
	if (this.hasExtendedContent) return;
	var exp = this;
	this.body = hs.getElementByClass(this.innerContent, 'DIV', 'highslide-body');
	if (this.objectType == 'iframe') {
		this.showLoading();
		var ruler = hs.clearing.cloneNode(1);
		this.body.appendChild(ruler);
		this.newWidth = this.innerContent.offsetWidth;
		if (!this.objectWidth) this.objectWidth = ruler.offsetWidth;
		var hDiff = this.innerContent.offsetHeight - this.body.offsetHeight,
			h = this.objectHeight || hs.page.height - hDiff - hs.marginTop - hs.marginBottom,
			onload = this.objectLoadTime == 'before' ? 
				' onload="if (hs.expanders['+ this.key +']) hs.expanders['+ this.key +'].contentLoaded()" ' : '';
		
		this.body.innerHTML += '<iframe name="hs'+ (new Date()).getTime() +'" frameborder="0" key="'+ this.key +'" '
			+' allowtransparency="true" style="width:'+ this.objectWidth +'px; height:'+ h +'px" '
			+ onload +' src="'+ this.src +'"></iframe>';
		this.ruler = this.body.getElementsByTagName('div')[0];
		this.iframe = this.body.getElementsByTagName('iframe')[0];
		
		if (this.objectLoadTime == 'after') this.correctIframeSize();
		
	}
	if (this.objectType == 'swf') {
		this.body.id = this.body.id || 'hs-flash-id-' + this.key;
		var a = this.swfOptions;
		if (typeof a.params.wmode == 'undefined') a.params.wmode = 'transparent';
		if (swfobject) swfobject.embedSWF(this.src, this.body.id, this.objectWidth, this.objectHeight, 
			a.version || '7', a.expressInstallSwfurl, a.flashvars, a.params, a.attributes);
	}
	this.hasExtendedContent = true;
},
htmlGetSize : function() {
	if (this.iframe && !this.objectHeight) { // loadtime before		
		this.iframe.style.height = this.body.style.height = this.getIframePageHeight() +'px';
	}
	this.innerContent.appendChild(hs.clearing);
	if (!this.x.full) this.x.full = this.innerContent.offsetWidth;
    this.y.full = this.innerContent.offsetHeight;
    this.innerContent.removeChild(hs.clearing);
    if (hs.ie && this.newHeight > parseInt(this.innerContent.currentStyle.height)) { // ie css bug
		this.newHeight = parseInt(this.innerContent.currentStyle.height);
	}
	hs.setStyles( this.wrapper, { position: 'absolute',	padding: '0'});
	hs.setStyles( this.content, { width: this.x.t +'px', height: this.y.t +'px'});
},

getIframePageHeight : function() {
	var h;
	try {
		var doc = this.iframe.contentDocument || this.iframe.contentWindow.document;
		var clearing = doc.createElement('div');
		clearing.style.clear = 'both';
		doc.body.appendChild(clearing);
		h = clearing.offsetTop;
		if (hs.ie) h += parseInt(doc.body.currentStyle.marginTop) 
			+ parseInt(doc.body.currentStyle.marginBottom) - 1;
	} catch (e) { // other domain
		h = 300;
	}
	return h;
},
correctIframeSize : function () {
	var wDiff = this.innerContent.offsetWidth - this.ruler.offsetWidth;
	if (wDiff < 0) wDiff = 0;
	
	var hDiff = this.innerContent.offsetHeight - this.iframe.offsetHeight;
	hs.setStyles(this.iframe, { width: (this.x.size - wDiff) +'px', 
		height: (this.y.size - hDiff) +'px' });
    hs.setStyles(this.body, { width: this.iframe.style.width, 
    	height: this.iframe.style.height });
    	
    this.scrollingContent = this.iframe;
    this.scrollerDiv = this.scrollingContent;
},
htmlSizeOperations : function () {
	
	this.setObjContainerSize(this.innerContent);
	
	
	if (this.objectType == 'swf' && this.objectLoadTime == 'before') this.writeExtendedContent();	
	
    // handle minimum size
    if (this.x.size < this.x.full && !this.allowWidthReduction) this.x.size = this.x.full;
    if (this.y.size < this.y.full && !this.allowHeightReduction) this.y.size = this.y.full;
	this.scrollerDiv = this.innerContent;
    hs.setStyles(this.mediumContent, { 
		position: 'relative',
		width: this.x.size +'px'
	});
    hs.setStyles(this.innerContent, { 
    	border: 'none',
    	width: 'auto',
    	height: 'auto'
    });
	var node = hs.getElementByClass(this.innerContent, 'DIV', 'highslide-body');
    if (node && !/(iframe|swf)/.test(this.objectType)) {
    	var cNode = node; // wrap to get true size
    	node = hs.createElement(cNode.nodeName, null, {overflow: 'hidden'}, null, true);
    	cNode.parentNode.insertBefore(node, cNode);
    	node.appendChild(hs.clearing); // IE6
    	node.appendChild(cNode);
    	
    	var wDiff = this.innerContent.offsetWidth - node.offsetWidth;
    	var hDiff = this.innerContent.offsetHeight - node.offsetHeight;
		node.removeChild(hs.clearing);
    	
    	var kdeBugCorr = hs.safari || navigator.vendor == 'KDE' ? 1 : 0; // KDE repainting bug
    	hs.setStyles(node, { 
    			width: (this.x.size - wDiff - kdeBugCorr) +'px', 
    			height: (this.y.size - hDiff) +'px',
    			overflow: 'auto', 
    			position: 'relative' 
    		} 
    	);
		if (kdeBugCorr && cNode.offsetHeight > node.offsetHeight)	{
    		node.style.width = (parseInt(node.style.width) + kdeBugCorr) + 'px';
		}
    	this.scrollingContent = node;
    	this.scrollerDiv = this.scrollingContent;
	}
    if (this.iframe && this.objectLoadTime == 'before') this.correctIframeSize();
    if (!this.scrollingContent && this.y.size < this.mediumContent.offsetHeight) this.scrollerDiv = this.content;
	
	if (this.scrollerDiv == this.content && !this.allowWidthReduction && !/(iframe|swf)/.test(this.objectType)) {
		this.x.size += 17; // room for scrollbars
	}
	if (this.scrollerDiv && this.scrollerDiv.offsetHeight > this.scrollerDiv.parentNode.offsetHeight) {
		setTimeout("try { hs.expanders["+ this.key +"].scrollerDiv.style.overflow = 'auto'; } catch(e) {}",
			 hs.expandDuration);
	}
},

getImageMapAreaCorrection : function(area) {
	var c = area.coords.split(',');
	for (var i = 0; i < c.length; i++) c[i] = parseInt(c[i]);
	
	if (area.shape.toLowerCase() == 'circle') {
		this.x.tpos += c[0] - c[2];
		this.y.tpos += c[1] - c[2];
		this.x.t = this.y.t = 2 * c[2];
	} else {
		var maxX, maxY, minX = maxX = c[0], minY = maxY = c[1];
		for (var i = 0; i < c.length; i++) {
			if (i % 2 == 0) {
				minX = Math.min(minX, c[i]);
				maxX = Math.max(maxX, c[i]);
			} else {
				minY = Math.min(minY, c[i]);
				maxY = Math.max(maxY, c[i]);
			}
		}
		this.x.tpos += minX;
		this.x.t = maxX - minX;
		this.y.tpos += minY;
		this.y.t = maxY - minY;
	}
},
justify : function (p, moveOnly) {
	var tgtArr, tgt = p.target, dim = p == this.x ? 'x' : 'y';
	
	if (tgt && tgt.match(/ /)) {
		tgtArr = tgt.split(' ');
		tgt = tgtArr[0];
	}
	if (tgt && hs.$(tgt)) {
		p.pos = hs.getPosition(hs.$(tgt))[dim];
		if (tgtArr && tgtArr[1] && tgtArr[1].match(/^[-]?[0-9]+px$/)) 
			p.pos += parseInt(tgtArr[1]);
		if (p.size < p.minSize) p.size = p.minSize;
		
	} else if (p.justify == 'auto' || p.justify == 'center') {
	
		var hasMovedMin = false;
		
		var allowReduce = p.exp.allowSizeReduction;
		if (p.justify == 'center')
			p.pos = Math.round(p.scroll + (p.clientSize + p.marginMin - p.marginMax - p.get('wsize')) / 2);
		else
			p.pos = Math.round(p.pos - ((p.get('wsize') - p.t) / 2));
		if (p.pos < p.scroll + p.marginMin) {
			p.pos = p.scroll + p.marginMin;
			hasMovedMin = true;		
		}
		if (!moveOnly && p.size < p.minSize) {
			p.size = p.minSize;
			allowReduce = false;
		}
		if (p.pos + p.get('wsize') > p.scroll + p.clientSize - p.marginMax) {
			if (!moveOnly && hasMovedMin && allowReduce) {
				p.size = p.get('fitsize'); // can't expand more
			} else if (p.get('wsize') < p.get('fitsize')) {
				p.pos = p.scroll + p.clientSize - p.marginMax - p.get('wsize');
			} else { // image larger than viewport
				p.pos = p.scroll + p.marginMin;
				if (!moveOnly && allowReduce) p.size = p.get('fitsize');
			}			
		}
		
		if (!moveOnly && p.size < p.minSize) {
			p.size = p.minSize;
			allowReduce = false;
		}
		
	
	} else if (p.justify == 'max') {
		p.pos = Math.floor(p.pos - p.size + p.t);
	}
	
		
	if (p.pos < p.marginMin) {
		var tmpMin = p.pos;
		p.pos = p.marginMin; 
		
		if (allowReduce && !moveOnly) p.size = p.size - (p.pos - tmpMin);
		
	}
},

correctRatio : function(ratio) {
	var x = this.x, 
		y = this.y,
		changed = false,
		xSize = Math.min(x.full, x.size),
		ySize = Math.min(y.full, y.size),
		useBox = (this.useBox || hs.padToMinWidth);
	
	if (xSize / ySize > ratio) { // width greater
		xSize = ySize * ratio;
		if (xSize < x.minSize) { // below minWidth
			xSize = x.minSize;
			ySize = xSize / ratio;
		}
		changed = true;
	
	} else if (xSize / ySize < ratio) { // height greater
		ySize = xSize / ratio;
		changed = true;
	}
	
	if (hs.padToMinWidth && x.full < x.minSize) {
		x.imgSize = x.full;
		y.size = y.imgSize = y.full;
	} else if (this.useBox) {
		x.imgSize = xSize;
		y.imgSize = ySize;
	} else {
		x.size = xSize;
		y.size = ySize;
	}
	this.fitOverlayBox(useBox ? null : ratio);
	if (useBox && y.size < y.imgSize) {
		y.imgSize = y.size;
		x.imgSize = y.size * ratio;
	}
	if (changed || useBox) {
		x.pos = x.tpos - x.cb + x.tb;
		x.minSize = x.size;
		this.justify(x, true);
	
		y.pos = y.tpos - y.cb + y.tb;
		y.minSize = y.size;
		this.justify(y, true);
		if (this.overlayBox) this.sizeOverlayBox();
	}
},
fitOverlayBox : function(ratio) {
	var x = this.x, y = this.y;
	if (this.overlayBox) {
		while (y.size > this.minHeight && x.size > this.minWidth 
				&&  y.get('wsize') > y.get('fitsize')) {
			y.size -= 10;
			if (ratio) x.size = y.size * ratio;
			this.sizeOverlayBox(0, 1);
		}
	}
},

reflow : function () {
	if (this.scrollerDiv) {
		var h = /iframe/i.test(this.scrollerDiv.tagName) ? this.getIframePageHeight() + 1 +'px' : 'auto';
		if (this.body) this.body.style.height = h;
		this.scrollerDiv.style.height = h;
		this.y.setSize(this.innerContent.offsetHeight);
		hs.setDimmerSize(this);
	}
},

show : function () {
	var x = this.x, y = this.y;
	this.doShowHide('hidden');
	hs.fireEvent(this, 'onBeforeExpand');
	if (this.slideshow && this.slideshow.thumbstrip) this.slideshow.thumbstrip.selectThumb();
	
	// Apply size change
	this.changeSize(
		1, {
			wrapper: {
				width : x.get('wsize'),
				height : y.get('wsize'),
				left: x.pos,
				top: y.pos
			},
			content: {
				left: x.p1 + x.get('imgPad'),
				top: y.p1 + y.get('imgPad'),
				width:x.imgSize ||x.size,
				height:y.imgSize ||y.size
			}
		},
		hs.expandDuration
	);
},

changeSize : function(up, to, dur) {
	// transition
	var trans = this.transitions,
	other = up ? (this.last ? this.last.a : null) : hs.upcoming,
	t = (trans[1] && other 
			&& hs.getParam(other, 'transitions')[1] == trans[1]) ?
		trans[1] : trans[0];
		
	if (this[t] && t != 'expand') {
		this[t](up, to);
		return;
	}
	
	if (this.outline && !this.outlineWhileAnimating) {
		if (up) this.outline.setPosition();
		else this.outline.destroy(
				(this.isHtml && this.preserveContent));
	}
	
	
	if (!up) this.destroyOverlays();
	
	var exp = this,
		x = exp.x,
		y = exp.y,
		easing = this.easing;
	if (!up) easing = this.easingClose || easing;
	var after = up ?
		function() {
				
			if (exp.outline) exp.outline.table.style.visibility = "visible";
			setTimeout(function() {
				exp.afterExpand();
			}, 50);
		} :
		function() {
			exp.afterClose();
		};
	if (up) hs.setStyles( this.wrapper, {
		width: x.t +'px',
		height: y.t +'px'
	});
	if (this.isHtml) {
		var mcPos = {
			left: (x.pos - x.tpos + x.cb - x.tb) +'px',
			top: (y.pos - y.tpos + y.cb - y.tb) +'px'
		};
		if (up) {
			hs.setStyles(this.wrapper, {
				left: (x.tpos - x.cb + x.tb) +'px',
				top: (y.tpos - y.cb + y.tb) +'px'
			});
			hs.setStyles(this.mediumContent, mcPos);
			mcPos = { left: 0, top: 0 };
		}
		
		hs.animate(this.mediumContent, mcPos, dur, easing);
	}
	if (this.fadeInOut) {
		hs.setStyles(this.wrapper, { opacity: up ? 0 : 1 });
		hs.extend(to.wrapper, { opacity: up });
	}
	if (this.outline && this.outlineWhileAnimating) {
		var wrapStep =  function(val, args) {
			if (args.prop == 'height') exp.outline.setPosition(1, 0, 1);
		}
	}
	hs.animate( this.wrapper, to.wrapper, {
		duration: dur,
		easing: easing,
		step: wrapStep
	});
	hs.animate( this.content, to.content, dur, easing, after);
	if (up) {
		this.wrapper.style.visibility = 'visible';
		this.content.style.visibility = 'visible';
		if (this.isHtml) this.innerContent.style.visibility = 'visible';
		this.a.className += ' highslide-active-anchor';
	}
},



fade : function(up, to) {
	this.outlineWhileAnimating = false;
	var exp = this,	t = up ? hs.expandDuration : 0;
	
	if (up) {
		hs.animate(this.wrapper, to.wrapper, 0);
		hs.setStyles(this.wrapper, { opacity: 0, visibility: 'visible' });
		hs.animate(this.content, to.content, 0);
		this.content.style.visibility = 'visible';

		hs.animate(this.wrapper, { opacity: 1 }, t, null, 
			function() { exp.afterExpand(); });
	}
	
	if (this.outline) {
		this.outline.table.style.zIndex = this.wrapper.style.zIndex;
		var dir = up || -1, 
			offset = this.outline.offset,
			startOff = up ? 3 : offset,
			endOff = up? offset : 3;
		for (var i = startOff; dir * i <= dir * endOff; i += dir, t += 25) {
			(function() {
				var o = up ? endOff - i : startOff - i;
				setTimeout(function() {
					exp.outline.setPosition(0, o, 1);
				}, t);
			})();
		}
	}
	
	
	if (up) {}//setTimeout(function() { exp.afterExpand(); }, t+50);
	else {
		setTimeout( function() {
			if (exp.outline) exp.outline.destroy(exp.preserveContent);
			
			exp.destroyOverlays();
	
			hs.animate( exp.wrapper, { opacity: 0 }, null, null, function(){
				exp.afterClose();
			});
		}, t);		
	}
},

crossfade : function (up, to) {
	if (!up) return;
	var exp = this, 
		dur = hs.transitionDuration, 
		last = exp.last,
		x = exp.x, 
		y = exp.y,
		lastX = last.x,
		lastY = last.y,
		overlayBox = exp.overlayBox,
		wrapper = this.wrapper,
		content = this.content;
	hs.removeEventListener(document, 'mousemove', hs.dragHandler);
	this.outline = last.outline;
	if (this.outline) this.outline.exp = exp;
	last.outline = null;
	last.wrapper.style.overflow = 'hidden';
	hs.setStyles(wrapper, {
		left: lastX.pos +'px',
		top: lastY.pos +'px',
		width: lastX.get('wsize') +'px',
		height: lastY.get('wsize') +'px'
	});
	hs.setStyles(content, {
		display: 'none',
		width: (x.imgSize || x.size) +'px', 
		height: (y.imgSize || y.size) +'px',
		left: (x.p1 + x.get('imgPad')) +'px',
		top: (y.p1 + y.get('imgPad')) + 'px'
	});
	var fadeBox = hs.createElement('div', {
		className: 'highslide-image'
	}, { 
		position: 'absolute', 
		zIndex: 4,
		overflow: 'hidden',
		display: 'none',
		left: (lastX.p1 + lastX.get('imgPad')) +'px',
		top: (lastY.p1 + lastY.get('imgPad')) +'px',
		width: (lastX.imgSize || lastX.size) +'px',
		height: (lastY.imgSize || lastY.size) +'px'
	});
	if (this.isHtml) hs.setStyles(this.mediumContent, { 
		left: 0,
		top: 0
	});
	if (overlayBox) hs.setStyles(overlayBox, {
		overflow: 'visible',
		left: (lastX.p1 + lastX.cb) +'px',
		top: (lastY.p1 + lastY.cb) +'px',
		width: lastX.size +'px',
		height: lastY.size +'px'
	});
	var names = { oldImg: last, newImg: this };
	for (var n in names) { 	
		this[n] = names[n].content.cloneNode(1);
		hs.setStyles(this[n], {
			position: 'absolute',
			border: 0,
			visibility: 'visible'
		});
		fadeBox.appendChild(this[n]);
	}
	hs.setStyles(this.oldImg, {
		left: 0,
		top: 0
	});	
	hs.setStyles(this.newImg, {
		display: 'block',
		opacity: 0,
		left: (x.pos - lastX.pos + x.p1 - lastX.p1 + x.get('imgPad') - lastX.get('imgPad')) +'px',
		top: (y.pos - lastY.pos + y.p1 - lastY.p1 + y.get('imgPad') - lastY.get('imgPad')) +'px'
	});
	wrapper.appendChild(fadeBox);
	if (overlayBox) {
		overlayBox.className = '';
		wrapper.appendChild(overlayBox);
	}
	fadeBox.style.display = '';
	last.content.style.display = 'none';

	if (hs.safari) {
		var match = navigator.userAgent.match(/Safari\/([0-9]{3})/);
		if (match && parseInt(match[1]) < 525) wrapper.style.visibility = 'visible';
	}
	function end() {		
		wrapper.style.visibility = content.style.visibility = 'visible';
		content.style.display = 'block';
		fadeBox.style.display = 'none';
		exp.a.className += ' highslide-active-anchor';
		exp.afterExpand();
		last.afterClose();
	}

	hs.animate(last.wrapper, { 
		left: x.pos,
		top: y.pos,
		width: x.get('wsize'),
		height: y.get('wsize')
	}, dur);
	
	hs.animate(fadeBox, {
		width: x.imgSize || x.size,
		height: y.imgSize || y.size,
		left: x.p1 + x.get('imgPad'),
		top: y.p1 + y.get('imgPad')
	}, dur);
	
	hs.animate(this.oldImg, {
		left: (lastX.pos - x.pos + lastX.p1 - x.p1 + lastX.get('imgPad') - x.get('imgPad')),
		top: (lastY.pos - y.pos + lastY.p1 - y.p1 + lastY.get('imgPad') - y.get('imgPad'))
	}, dur);		
	
	hs.animate(this.newImg, {
		opacity: 1,
		left: 0,
		top: 0
	}, dur);
	if (overlayBox) hs.animate(overlayBox, {
		left: x.p1 + x.cb,
		top: y.p1 + y.cb,
		width: x.size,
		height: y.size
	}, dur);
	if (this.outline) var wrapStep =  function(val, args) {		
		if (args.prop == 'height') exp.outline.setPosition(1);
	};
	hs.animate(wrapper, to.wrapper, {
		duration: dur, 
		callback: end,
		step: wrapStep
	});
	
	fadeBox.style.visibility = 'visible';
},
reuseOverlay : function(o, el) {
	if (!this.last) return false;
	for (var i = 0; i < this.last.overlays.length; i++) {
		var oDiv = hs.$('hsId'+ this.last.overlays[i]);
		if (oDiv && oDiv.hsId == o.hsId) {
			this.genOverlayBox();
			oDiv.reuse = this.key;
			hs.push(this.overlays, this.last.overlays[i]);
			return true;
		}
	}
	return false;
},


afterExpand : function() {
	this.isExpanded = true;	
	this.focus();
	
	if (this.isHtml && this.objectLoadTime == 'after') this.writeExtendedContent();
	if (this.iframe) {
		try {
			var exp = this,
				doc = this.iframe.contentDocument || this.iframe.contentWindow.document;
			hs.addEventListener(doc, 'mousedown', function () {
				if (hs.focusKey != exp.key) exp.focus();
			});
		} catch(e) {}
		if (hs.ie && typeof this.isClosing != 'boolean') // first open 
			this.iframe.style.width = (this.objectWidth - 1) +'px'; // hasLayout
	}
	if (this.dimmingOpacity) hs.dim(this);
	if (hs.upcoming && hs.upcoming == this.a) hs.upcoming = null;
	this.prepareNextOutline();
	var p = hs.page, mX = hs.mouse.x + p.scrollLeft, mY = hs.mouse.y + p.scrollTop;
	this.mouseIsOver = this.x.pos < mX && mX < this.x.pos + this.x.get('wsize')
		&& this.y.pos < mY && mY < this.y.pos + this.y.get('wsize');	
	if (this.overlayBox) this.showOverlays();
	hs.fireEvent(this, 'onAfterExpand');
	
},


prepareNextOutline : function() {
	var key = this.key;
	var outlineType = this.outlineType;
	new hs.Outline(outlineType, 
		function () { try { hs.expanders[key].preloadNext(); } catch (e) {} });
},


preloadNext : function() {
	var next = this.getAdjacentAnchor(1);
	if (next && next.onclick.toString().match(/hs\.expand/)) 
		var img = hs.createElement('img', { src: hs.getSrc(next) });
},


getAdjacentAnchor : function(op) {
	var current = this.getAnchorIndex(), as = hs.anchors.groups[this.slideshowGroup || 'none'];
	
	/*< ? if ($cfg->slideshow) : ?>s*/
	if (!as[current + op] && this.slideshow && this.slideshow.repeat) {
		if (op == 1) return as[0];
		else if (op == -1) return as[as.length-1];
	}
	/*< ? endif ?>s*/
	return as[current + op] || null;
},

getAnchorIndex : function() {
	var arr = hs.getAnchors().groups[this.slideshowGroup || 'none'];
	for (var i = 0; i < arr.length; i++) {
		if (arr[i] == this.a) return i; 
	}
	return null;
},


getNumber : function() {
	if (this[this.numberPosition]) {
		var arr = hs.anchors.groups[this.slideshowGroup || 'none'];
		var s = hs.lang.number.replace('%1', this.getAnchorIndex() + 1).replace('%2', arr.length);
		this[this.numberPosition].innerHTML = 
			'<div class="highslide-number">'+ s +'</div>'+ this[this.numberPosition].innerHTML;
	}
},
initSlideshow : function() {
	if (!this.last) {
		for (var i = 0; i < hs.slideshows.length; i++) {
			var ss = hs.slideshows[i], sg = ss.slideshowGroup;
			if (typeof sg == 'undefined' || sg === null || sg === this.slideshowGroup) 
				this.slideshow = new hs.Slideshow(this, ss);
		} 
	} else {
		this.slideshow = this.last.slideshow;
	}
	var ss = this.slideshow;
	if (!ss) return;
	var exp = ss.exp = this;
	
	ss.checkFirstAndLast();
	ss.disable('full-expand');
	if (ss.controls) {
		var o = ss.overlayOptions || {};
		o.overlayId = ss.controls;
		o.hsId = 'controls';		
		this.createOverlay(o);
	}
	if (ss.thumbstrip) ss.thumbstrip.add(this);
	if (!this.last && this.autoplay) ss.play(true);
	if (ss.autoplay) {
		ss.autoplay = setTimeout(function() {
			hs.next(exp.key);
		}, (ss.interval || 500));
	}
},

cancelLoading : function() {	
	hs.expanders[this.key] = null;
	if (hs.upcoming == this.a) hs.upcoming = null;
	hs.undim(this.key);
	if (this.loading) hs.loading.style.left = '-9999px';
	hs.fireEvent(this, 'onHideLoading');
},

writeCredits : function () {
	if (this.credits) return;
	this.credits = hs.createElement('a', {
		href: hs.creditsHref,
		className: 'highslide-credits',
		innerHTML: hs.lang.creditsText,
		title: hs.lang.creditsTitle
	});
	this.createOverlay({ 
		overlayId: this.credits, 
		position: 'top left', 
		hsId: 'credits' 
	});
},

getInline : function(types, addOverlay) {
	for (var i = 0; i < types.length; i++) {
		var type = types[i], s = null;
		if (type == 'caption' && !hs.fireEvent(this, 'onBeforeGetCaption')) return;
		else if (type == 'heading' && !hs.fireEvent(this, 'onBeforeGetHeading')) return;
		if (!this[type +'Id'] && this.thumbsUserSetId)  
			this[type +'Id'] = type +'-for-'+ this.thumbsUserSetId;
		if (this[type +'Id']) this[type] = hs.getNode(this[type +'Id']);
		if (!this[type] && !this[type +'Text'] && this[type +'Eval']) try {
			s = eval(this[type +'Eval']);
		} catch (e) {}
		if (!this[type] && this[type +'Text']) {
			s = this[type +'Text'];
		}
		if (!this[type] && !s) {
			var next = this.a.nextSibling;
			while (next && !hs.isHsAnchor(next)) {
				if ((new RegExp('highslide-'+ type)).test(next.className || null)) {
					this[type] = next.cloneNode(1);
					break;
				}
				next = next.nextSibling;
			}
		}
		if (!this[type] && !s && this.numberPosition == type) s = '\n';
		
		if (!this[type] && s) this[type] = hs.createElement('div', 
				{ className: 'highslide-'+ type, innerHTML: s } );
		
		if (addOverlay && this[type]) {
			var o = { position: (type == 'heading') ? 'above' : 'below' };
			for (var x in this[type+'Overlay']) o[x] = this[type+'Overlay'][x];
			o.overlayId = this[type];
			this.createOverlay(o);
		}
	}
},


// on end move and resize
doShowHide : function(visibility) {
	if (hs.hideSelects) this.showHideElements('SELECT', visibility);
	if (hs.hideIframes) this.showHideElements('IFRAME', visibility);
	if (hs.geckoMac) this.showHideElements('*', visibility);
},
showHideElements : function (tagName, visibility) {
	var els = document.getElementsByTagName(tagName);
	var prop = tagName == '*' ? 'overflow' : 'visibility';
	for (var i = 0; i < els.length; i++) {
		if (prop == 'visibility' || (document.defaultView.getComputedStyle(
				els[i], "").getPropertyValue('overflow') == 'auto'
				|| els[i].getAttribute('hidden-by') != null)) {
			var hiddenBy = els[i].getAttribute('hidden-by');
			if (visibility == 'visible' && hiddenBy) {
				hiddenBy = hiddenBy.replace('['+ this.key +']', '');
				els[i].setAttribute('hidden-by', hiddenBy);
				if (!hiddenBy) els[i].style[prop] = els[i].origProp;
			} else if (visibility == 'hidden') { // hide if behind
				var elPos = hs.getPosition(els[i]);
				elPos.w = els[i].offsetWidth;
				elPos.h = els[i].offsetHeight;
				if (!this.dimmingOpacity) { // hide all if dimming
				
					var clearsX = (elPos.x + elPos.w < this.x.get('opos') 
						|| elPos.x > this.x.get('opos') + this.x.get('osize'));
					var clearsY = (elPos.y + elPos.h < this.y.get('opos') 
						|| elPos.y > this.y.get('opos') + this.y.get('osize'));
				}
				var wrapperKey = hs.getWrapperKey(els[i]);
				if (!clearsX && !clearsY && wrapperKey != this.key) { // element falls behind image
					if (!hiddenBy) {
						els[i].setAttribute('hidden-by', '['+ this.key +']');
						els[i].origProp = els[i].style[prop];
						els[i].style[prop] = 'hidden';
						
					} else if (hiddenBy.indexOf('['+ this.key +']') == -1) {
						els[i].setAttribute('hidden-by', hiddenBy + '['+ this.key +']');
					}
				} else if ((hiddenBy == '['+ this.key +']' || hs.focusKey == wrapperKey)
						&& wrapperKey != this.key) { // on move
					els[i].setAttribute('hidden-by', '');
					els[i].style[prop] = els[i].origProp || '';
				} else if (hiddenBy && hiddenBy.indexOf('['+ this.key +']') > -1) {
					els[i].setAttribute('hidden-by', hiddenBy.replace('['+ this.key +']', ''));
				}
						
			}
		}
	}
},

focus : function() {
	this.wrapper.style.zIndex = hs.zIndexCounter++;
	// blur others
	for (var i = 0; i < hs.expanders.length; i++) {
		if (hs.expanders[i] && i == hs.focusKey) {
			var blurExp = hs.expanders[i];
			blurExp.content.className += ' highslide-'+ blurExp.contentType +'-blur';
			if (blurExp.isImage) {
				blurExp.content.style.cursor = hs.ie ? 'hand' : 'pointer';
				blurExp.content.title = hs.lang.focusTitle;	
			}	
			hs.fireEvent(this, 'onBlur');
		}
	}
	
	// focus this
	if (this.outline) this.outline.table.style.zIndex 
		= this.wrapper.style.zIndex;
	this.content.className = 'highslide-'+ this.contentType;
	if (this.isImage) {
		this.content.title = hs.lang.restoreTitle;
		
		if (hs.restoreCursor) {
			hs.styleRestoreCursor = window.opera ? 'pointer' : 'url('+ hs.graphicsDir + hs.restoreCursor +'), pointer';
			if (hs.ie && hs.uaVersion < 6) hs.styleRestoreCursor = 'hand';
			this.content.style.cursor = hs.styleRestoreCursor;
		}
	}
	hs.focusKey = this.key;	
	hs.addEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);	
	hs.fireEvent(this, 'onFocus');	
},
moveTo: function(x, y) {
	this.x.setPos(x);
	this.y.setPos(y);
},
resize : function (e) {
	var w, h, r = e.width / e.height;
	w = Math.max(e.width + e.dX, Math.min(this.minWidth, this.x.full));
	if (this.isImage && Math.abs(w - this.x.full) < 12) w = this.x.full;
	h = this.isHtml ? e.height + e.dY : w / r;
	if (h < Math.min(this.minHeight, this.y.full)) {
		h = Math.min(this.minHeight, this.y.full);
		if (this.isImage) w = h * r;
	}
	this.resizeTo(w, h);
},
resizeTo: function(w, h) {
	this.y.setSize(h);
	this.x.setSize(w);
},

close : function() {
	if (this.isClosing || !this.isExpanded) return;
	if (this.transitions[1] == 'crossfade' && hs.upcoming) {
		hs.getExpander(hs.upcoming).cancelLoading();
		hs.upcoming = null;
	}
	if (!hs.fireEvent(this, 'onBeforeClose')) return;
	this.isClosing = true;
	if (this.slideshow && !hs.upcoming) this.slideshow.pause();
	
	hs.removeEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);
	
	try {
		if (this.isHtml) this.htmlPrepareClose();
		this.content.style.cursor = 'default';
		this.changeSize(
			0, {
				wrapper: {
					width : this.x.t,
					height : this.y.t,
					left: this.x.tpos - this.x.cb + this.x.tb,
					top: this.y.tpos - this.y.cb + this.y.tb
				},
				content: {
					left: 0,
					top: 0,
					width: this.x.t,
					height: this.y.t
				}
			}, hs.restoreDuration
		);
	} catch (e) { this.afterClose(); }
},

htmlPrepareClose : function() {
	if (hs.geckoMac) { // bad redraws
		if (!hs.mask) hs.mask = hs.createElement('div', null, 
			{ position: 'absolute' }, hs.container);
		hs.setStyles(hs.mask, { width: this.x.size +'px', height: this.y.size +'px', 
			left: this.x.pos +'px', top: this.y.pos +'px', display: 'block' });			
	}
	if (this.objectType == 'swf') try { hs.$(this.body.id).StopPlay(); } catch (e) {}
	
	if (this.objectLoadTime == 'after' && !this.preserveContent) this.destroyObject();		
	if (this.scrollerDiv && this.scrollerDiv != this.scrollingContent) 
		this.scrollerDiv.style.overflow = 'hidden';
},

destroyObject : function () {
	if (hs.ie && this.iframe)
		try { this.iframe.contentWindow.document.body.innerHTML = ''; } catch (e) {}
	if (this.objectType == 'swf') swfobject.removeSWF(this.body.id);
	this.body.innerHTML = '';
},

sleep : function() {
	if (this.outline) this.outline.table.style.display = 'none';
	this.releaseMask = null;
	this.wrapper.style.display = 'none';
	hs.push(hs.sleeping, this);
},

awake : function() {try {
	
	hs.expanders[this.key] = this;
	
	if (!hs.allowMultipleInstances &&hs.focusKey != this.key) {	
		try { hs.expanders[hs.focusKey].close(); } catch (e){}
	}
	
	var z = hs.zIndexCounter++, stl = { display: '', zIndex: z };
	hs.setStyles (this.wrapper, stl);
	this.isClosing = false;
	
	var o = this.outline || 0;
	if (o) {
		if (!this.outlineWhileAnimating) stl.visibility = 'hidden';
		hs.setStyles (o.table, stl);		
	}
	if (this.slideshow) {
		this.initSlideshow();
	}
		
	this.show();
} catch (e) {}


},

createOverlay : function (o) {
	var el = o.overlayId, 
		relToVP = (o.relativeTo == 'viewport' && !/panel$/.test(o.position));
	if (typeof el == 'string') el = hs.getNode(el);
	if (o.html) el = hs.createElement('div', { innerHTML: o.html });
	if (!el || typeof el == 'string') return;
	if (!hs.fireEvent(this, 'onCreateOverlay', { overlay: el })) return;
	el.style.display = 'block';
	o.hsId = o.hsId || o.overlayId; 
	if (this.transitions[1] == 'crossfade' && this.reuseOverlay(o, el)) return;
	this.genOverlayBox();
	var width = o.width && /^[0-9]+(px|%)$/.test(o.width) ? o.width : 'auto';
	if (/^(left|right)panel$/.test(o.position) && !/^[0-9]+px$/.test(o.width)) width = '200px';
	var overlay = hs.createElement(
		'div', {
			id: 'hsId'+ hs.idCounter++,
			hsId: o.hsId
		}, {
			position: 'absolute',
			visibility: 'hidden',
			width: width,
			direction: hs.lang.cssDirection || '',
			opacity: 0
		},
		relToVP ? hs.viewport :this.overlayBox,
		true
	);
	if (relToVP) overlay.hsKey = this.key;
	
	overlay.appendChild(el);
	hs.extend(overlay, {
		opacity: 1,
		offsetX: 0,
		offsetY: 0,
		dur: (o.fade === 0 || o.fade === false || (o.fade == 2 && hs.ie)) ? 0 : 250
	});
	hs.extend(overlay, o);
		
	if (this.gotOverlays) {
		this.positionOverlay(overlay);
		if (!overlay.hideOnMouseOut || this.mouseIsOver) 
			hs.animate(overlay, { opacity: overlay.opacity }, overlay.dur);
	}
	hs.push(this.overlays, hs.idCounter - 1);
},
positionOverlay : function(overlay) {
	var p = overlay.position || 'middle center',
		relToVP = (overlay.relativeTo == 'viewport'),
		offX = overlay.offsetX,
		offY = overlay.offsetY;
	if (relToVP) {
		hs.viewport.style.display = 'block';
		overlay.hsKey = this.key;
		if (overlay.offsetWidth > overlay.parentNode.offsetWidth)
			overlay.style.width = '100%';
	} else
	if (overlay.parentNode != this.overlayBox) this.overlayBox.appendChild(overlay);
	if (/left$/.test(p)) overlay.style.left = offX +'px'; 
	
	if (/center$/.test(p))	hs.setStyles (overlay, { 
		left: '50%',
		marginLeft: (offX - Math.round(overlay.offsetWidth / 2)) +'px'
	});	
	
	if (/right$/.test(p)) overlay.style.right = - offX +'px';
		
	if (/^leftpanel$/.test(p)) { 
		hs.setStyles(overlay, {
			right: '100%',
			marginRight: this.x.cb +'px',
			top: - this.y.cb +'px',
			bottom: - this.y.cb +'px',
			overflow: 'auto'
		});		 
		this.x.p1 = overlay.offsetWidth;
	
	} else if (/^rightpanel$/.test(p)) {
		hs.setStyles(overlay, {
			left: '100%',
			marginLeft: this.x.cb +'px',
			top: - this.y.cb +'px',
			bottom: - this.y.cb +'px',
			overflow: 'auto'
		});
		this.x.p2 = overlay.offsetWidth;
	}
	var parOff = overlay.parentNode.offsetHeight;
	overlay.style.height = 'auto';
	if (relToVP && overlay.offsetHeight > parOff)
		overlay.style.height = hs.ieLt7 ? parOff +'px' : '100%';

	if (/^top/.test(p)) overlay.style.top = offY +'px'; 
	if (/^middle/.test(p))	hs.setStyles (overlay, { 
		top: '50%', 
		marginTop: (offY - Math.round(overlay.offsetHeight / 2)) +'px'
	});	
	if (/^bottom/.test(p)) overlay.style.bottom = - offY +'px';
	if (/^above$/.test(p)) {
		hs.setStyles(overlay, {
			left: (- this.x.p1 - this.x.cb) +'px',
			right: (- this.x.p2 - this.x.cb) +'px',
			bottom: '100%',
			marginBottom: this.y.cb +'px',
			width: 'auto'
		});
		this.y.p1 = overlay.offsetHeight;
	
	} else if (/^below$/.test(p)) {
		hs.setStyles(overlay, {
			position: 'relative',
			left: (- this.x.p1 - this.x.cb) +'px',
			right: (- this.x.p2 - this.x.cb) +'px',
			top: '100%',
			marginTop: this.y.cb +'px',
			width: 'auto'
		});
		this.y.p2 = overlay.offsetHeight;
		overlay.style.position = 'absolute';
	}
},

getOverlays : function() {	
	this.getInline(['heading', 'caption'], true);
	this.getNumber();
	if (this.caption) hs.fireEvent(this, 'onAfterGetCaption');
	if (this.heading) hs.fireEvent(this, 'onAfterGetHeading');
	if (this.heading && this.dragByHeading) this.heading.className += ' highslide-move';
	if (hs.showCredits) this.writeCredits();
	for (var i = 0; i < hs.overlays.length; i++) {
		var o = hs.overlays[i], tId = o.thumbnailId, sg = o.slideshowGroup;
		if ((!tId && !sg) || (tId && tId == this.thumbsUserSetId)
				|| (sg && sg === this.slideshowGroup)) {
			if (this.isImage || (this.isHtml && o.useOnHtml))
			this.createOverlay(o);
		}
	}
	var os = [];
	for (var i = 0; i < this.overlays.length; i++) {
		var o = hs.$('hsId'+ this.overlays[i]);
		if (/panel$/.test(o.position)) this.positionOverlay(o);
		else hs.push(os, o);
	}
	for (var i = 0; i < os.length; i++) this.positionOverlay(os[i]);
	this.gotOverlays = true;
},
genOverlayBox : function() {
	if (!this.overlayBox) this.overlayBox = hs.createElement (
		'div', {
			className: this.wrapperClassName
		}, {
			position : 'absolute',
			width: (this.x.size || this.x.full) +'px',
			height: (this.y.size || this.y.full) +'px',
			visibility : 'hidden',
			overflow : 'hidden',
			zIndex : hs.ie ? 4 : null
		},
		hs.container,
		true
	);
},
sizeOverlayBox : function(doWrapper, doPanels) {
	var overlayBox = this.overlayBox, 
		x = this.x,
		y = this.y;
	hs.setStyles( overlayBox, {
		width: x.size +'px', 
		height: y.size +'px'
	});
	if (doWrapper || doPanels) {
		for (var i = 0; i < this.overlays.length; i++) {
			var o = hs.$('hsId'+ this.overlays[i]);
			var ie6 = (hs.ieLt7 || document.compatMode == 'BackCompat');
			if (o && /^(above|below)$/.test(o.position)) {
				if (ie6) {
					o.style.width = (overlayBox.offsetWidth + 2 * x.cb
						+ x.p1 + x.p2) +'px';
				}
				y[o.position == 'above' ? 'p1' : 'p2'] = o.offsetHeight;
			}
			if (o && ie6 && /^(left|right)panel$/.test(o.position)) {
				o.style.height = (overlayBox.offsetHeight + 2* y.cb) +'px';
			}
		}
	}
	if (doWrapper) {
		hs.setStyles(this.content, {
			top: y.p1 +'px'
		});
		hs.setStyles(overlayBox, {
			top: (y.p1 + y.cb) +'px'
		});
	}
},

showOverlays : function() {
	var b = this.overlayBox;
	b.className = '';
	hs.setStyles(b, {
		top: (this.y.p1 + this.y.cb) +'px',
		left: (this.x.p1 + this.x.cb) +'px',
		overflow : 'visible'
	});
	if (hs.safari) b.style.visibility = 'visible';
	this.wrapper.appendChild (b);
	for (var i = 0; i < this.overlays.length; i++) {
		var o = hs.$('hsId'+ this.overlays[i]);
		o.style.zIndex = o.hsId == 'controls' ? 5 : 4;
		if (!o.hideOnMouseOut || this.mouseIsOver) {
			o.style.visibility = 'visible';
			hs.animate(o, { opacity: o.opacity }, o.dur);
		}
	}
},

destroyOverlays : function() {
	if (!this.overlays.length) return;
	for (var i = 0; i < this.overlays.length; i++) {
		var o = hs.$('hsId'+ this.overlays[i]);
		if (o.parentNode == hs.viewport) hs.discardElement(o);
	}
	if (this.slideshow) {
		var c = this.slideshow.controls;
		if (c && hs.getExpander(c) == this) c.parentNode.removeChild(c);
	}
	if (this.isHtml && this.preserveContent) {
		this.overlayBox.style.top = '-9999px';
		hs.container.appendChild(this.overlayBox);
	} else
	hs.discardElement(this.overlayBox);
},



createFullExpand : function () {
	if (this.slideshow && this.slideshow.controls) {
		this.slideshow.enable('full-expand');
		return;
	}
	this.fullExpandLabel = hs.createElement(
		'a', {
			href: 'javascript:hs.expanders['+ this.key +'].doFullExpand();',
			title: hs.lang.fullExpandTitle,
			className: 'highslide-full-expand'
		}
	);
	if (!hs.fireEvent(this, 'onCreateFullExpand')) return;
	
	this.createOverlay({ 
		overlayId: this.fullExpandLabel, 
		position: hs.fullExpandPosition, 
		hideOnMouseOut: true, 
		opacity: hs.fullExpandOpacity
	});
},

doFullExpand : function () {
	try {
		if (!hs.fireEvent(this, 'onDoFullExpand')) return;
		if (this.fullExpandLabel) hs.discardElement(this.fullExpandLabel);
		
		this.focus();
		var xSize = this.x.size;
		this.resizeTo(this.x.full, this.y.full);
		
		var xpos = this.x.pos - (this.x.size - xSize) / 2;
		if (xpos < hs.marginLeft) xpos = hs.marginLeft;
		
		this.moveTo(xpos, this.y.pos);
		this.doShowHide('hidden');
		hs.setDimmerSize(this);
	
	} catch (e) {
		this.error(e);
	}
},


afterClose : function () {
	this.a.className = this.a.className.replace('highslide-active-anchor', '');
	
	this.doShowHide('visible');	
	
	if (this.isHtml && this.preserveContent
			 && this.transitions[1] != 'crossfade') {
		this.sleep();
	} else {
		if (this.outline && this.outlineWhileAnimating) this.outline.destroy();
	
		hs.discardElement(this.wrapper);
	}
	if (hs.mask) hs.mask.style.display = 'none';
	if (!hs.viewport.childNodes.length) hs.viewport.style.display = 'none';
	
	if (this.dimmingOpacity) hs.undim(this.key);
	hs.fireEvent(this, 'onAfterClose');
	hs.expanders[this.key] = null;		
	hs.reOrder();
}

};


// hs.Ajax object prototype
hs.Ajax = function (a, content, pre) {
	this.a = a;
	this.content = content;
	this.pre = pre;
};

hs.Ajax.prototype = {
run : function () {
	if (!this.src) this.src = hs.getSrc(this.a);
	if (this.src.match('#')) {
		var arr = this.src.split('#');
		this.src = arr[0];
		this.id = arr[1];
	}
	if (hs.cachedGets[this.src]) {
		this.cachedGet = hs.cachedGets[this.src];
		if (this.id) this.getElementContent();
		else this.loadHTML();
		return;
	}
	try { this.xmlHttp = new XMLHttpRequest(); }
	catch (e) {
		try { this.xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); }
		catch (e) {
			try { this.xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
			catch (e) { this.onError(); }
		}
	}
	var pThis = this; 
	this.xmlHttp.onreadystatechange = function() {
		if(pThis.xmlHttp.readyState == 4) {
			if (pThis.id) pThis.getElementContent();
			else pThis.loadHTML();
		}
	};
	this.xmlHttp.open("GET", this.src+ '?dummy='+ (new Date()).getTime(), true);
	this.xmlHttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
	this.xmlHttp.send(null);
},

getElementContent : function() {
	hs.init();
	var attribs = window.opera || hs.ie6SSL ? { src: 'about:blank' } : null;
	
	this.iframe = hs.createElement('iframe', attribs, 
		{ position: 'absolute', top: '-9999px' }, hs.container);
		
	this.loadHTML();
},

loadHTML : function() {
	var s = this.cachedGet || this.xmlHttp.responseText;
	if (this.pre) hs.cachedGets[this.src] = s;
	if (!hs.ie || hs.uaVersion >= 5.5) {
		s = s.replace(/\s/g, ' ').replace(
			new RegExp('<link[^>]*>', 'gi'), '').replace(
			new RegExp('<script[^>]*>.*?</script>', 'gi'), '');

		if (this.iframe) {
			var doc = this.iframe.contentDocument;
			if (!doc && this.iframe.contentWindow) doc = this.iframe.contentWindow.document;
			if (!doc) { // Opera
				var pThis = this;
				setTimeout(function() {	pThis.loadHTML(); }, 25);
				return;
			}
			doc.open();
			doc.write(s);
			doc.close();
			try { s = doc.getElementById(this.id).innerHTML; } catch (e) {
				try { s = this.iframe.document.getElementById(this.id).innerHTML; } catch (e) {} // opera
			}
		} else {
			s = s.replace(new RegExp('^.*?<body[^>]*>(.*?)</body>.*?$', 'i'), '$1');
		}
	}
	hs.getElementByClass(this.content, 'DIV', 'highslide-body').innerHTML = s;
	this.onLoad();
	for (var x in this) this[x] = null;
}
};


hs.Slideshow = function (exp, options) {
	if (hs.dynamicallyUpdateAnchors !== false) hs.updateAnchors();
	this.exp = exp;
	for (var x in options) this[x] = options[x];
	if (this.useControls) this.getControls();
	if (this.thumbstrip) this.thumbstrip = hs.Thumbstrip(this);
};
hs.Slideshow.prototype = {
getControls: function() {
	this.controls = hs.createElement('div', { innerHTML: hs.replaceLang(hs.skin.controls) }, 
		null, hs.container);
	
	var buttons = ['play', 'pause', 'previous', 'next', 'move', 'full-expand', 'close'];
	this.btn = {};
	var pThis = this;
	for (var i = 0; i < buttons.length; i++) {
		this.btn[buttons[i]] = hs.getElementByClass(this.controls, 'li', 'highslide-'+ buttons[i]);
		this.enable(buttons[i]);
	}
	this.btn.pause.style.display = 'none';
	//this.disable('full-expand');
},
checkFirstAndLast: function() {
	if (this.repeat || !this.controls) return;
	var cur = this.exp.getAnchorIndex(), re = /disabled$/;
	if (cur == 0) 
		this.disable('previous');
	else if (re.test(this.btn.previous.getElementsByTagName('a')[0].className))
		this.enable('previous');
	if (cur + 1 == hs.anchors.groups[this.exp.slideshowGroup || 'none'].length) {
		this.disable('next');
		this.disable('play');
	} else if (re.test(this.btn.next.getElementsByTagName('a')[0].className)) {
		this.enable('next');
		this.enable('play');
	}
},
enable: function(btn) {
	if (!this.btn) return;
	var sls = this, a = this.btn[btn].getElementsByTagName('a')[0], re = /disabled$/;
	a.onclick = function() {
		sls[btn]();
		return false;
	};
	if (re.test(a.className)) a.className = a.className.replace(re, '');
},
disable: function(btn) {
	if (!this.btn) return;
	var a = this.btn[btn].getElementsByTagName('a')[0];
	a.onclick = function() { return false; };
	if (!/disabled$/.test(a.className)) a.className += ' disabled';
},
hitSpace: function() {
	if (this.autoplay) this.pause();
	else this.play();
},
play: function(wait) {
	if (this.btn) {
		this.btn.play.style.display = 'none';
		this.btn.pause.style.display = '';
	}
	
	this.autoplay = true;	
	if (!wait) hs.next(this.exp.key);
},
pause: function() {
	if (this.btn) {
		this.btn.pause.style.display = 'none';
		this.btn.play.style.display = '';
	}
	
	clearTimeout(this.autoplay);
	this.autoplay = null;
},
previous: function() {
	this.pause();
	hs.previous(this.btn.previous);
},
next: function() {
	this.pause();
	hs.next(this.btn.next);
},
move: function() {},
'full-expand': function() {
	hs.getExpander().doFullExpand();
},
close: function() {
	hs.close(this.btn.close);
}

};
hs.Thumbstrip = function(slideshow) {
	function add (exp) {
		hs.extend(options || {}, {
			overlayId: dom,
			hsId: 'thumbstrip'
		});
		if (hs.ieLt7) options.fade = 0;
		exp.createOverlay(options);
		hs.setStyles(dom.parentNode, { overflow: 'hidden' });
	};
	
	function scroll (delta) {	
		selectThumb(undefined, Math.round(delta * dom[isX ? 'offsetWidth' : 'offsetHeight'] * 0.7));
	};
	
	function selectThumb (i, scrollBy) {
		if (i === undefined) for (var j = 0; j < group.length; j++) {
			if (group[j] == slideshow.exp.a) {
				i = j;
				break;
			}
		}
		var as = dom.getElementsByTagName('a'),
			active = as[i],
			cell = active.parentNode,
			left = isX ? 'Left' : 'Top',
			right = isX ? 'Right' : 'Bottom',
			width = isX ? 'Width' : 'Height',
			offsetLeft = 'offset' + left,
			offsetWidth = 'offset' + width,
			minTblPos = div.parentNode.parentNode[offsetWidth] - table[offsetWidth],
			curTblPos = parseInt(table.style[isX ? 'left' : 'top']) || 0,
			tblPos = curTblPos,
			mgnRight = 20;
		if (scrollBy !== undefined) {
			tblPos = curTblPos - scrollBy;
			if (tblPos > 0) tblPos = 0;
			if (tblPos < minTblPos) tblPos = minTblPos;
	
		} else {
			for (var j = 0; j < as.length; j++) as[j].className = '';
			active.className = 'highslide-active-anchor';
			var activeLeft = i > 0 ? as[i - 1].parentNode[offsetLeft] : cell[offsetLeft],
				activeRight = cell[offsetLeft] + cell[offsetWidth] + 
					(as[i + 1] ? as[i + 1].parentNode[offsetWidth] : 0);
			if (activeRight > div[offsetWidth] - curTblPos) tblPos = div[offsetWidth] - activeRight;
			else if (activeLeft < -curTblPos) tblPos = -activeLeft;
		}
		var markerPos = cell[offsetLeft] + (cell[offsetWidth] - marker[offsetWidth]) / 2 + tblPos;
		hs.animate(table, isX ? { left: tblPos } : { top: tblPos }, null, 'easeOutQuad');
		hs.animate(marker, isX ? { left: markerPos } : { top: markerPos }, null, 'easeOutQuad');
		scrollUp.style.display = tblPos < 0 ? 'block' : 'none';
		scrollDown.style.display = (tblPos > minTblPos)  ? 'block' : 'none';
	};
	

	// initialize
	var group = hs.anchors.groups[slideshow.exp.slideshowGroup || 'none'],
		options = slideshow.thumbstrip,
		mode = options.mode || 'horizontal',
		floatMode = (mode == 'float'),
		tree = floatMode ? ['div', 'ul', 'li', 'span'] : ['table', 'tbody', 'tr', 'td'],
		isX = (mode == 'horizontal'),
		dom = hs.createElement('div', {
				className: 'highslide-thumbstrip highslide-thumbstrip-'+ mode,
				innerHTML:
					'<div class="highslide-thumbstrip-inner">'+
					'<'+ tree[0] +'><'+ tree[1] +'></'+ tree[1] +'></'+ tree[0] +'></div>'+
					'<div class="highslide-scroll-up"><div></div></div>'+
					'<div class="highslide-scroll-down"><div></div></div>'+
					'<div class="highslide-marker"><div></div></div>'
			}, {
				display: 'none'
			}, hs.container),
		domCh = dom.childNodes,
		div = domCh[0],
		scrollUp = domCh[1],
		scrollDown = domCh[2],
		marker = domCh[3],
		table = div.firstChild,
		tbody = dom.getElementsByTagName(tree[1])[0],
		tr;
	for (var i = 0; i < group.length; i++) {
		if (i == 0 || !isX) tr = hs.createElement(tree[2], null, null, tbody);
		(function(){
			var a = group[i],
				cell = hs.createElement(tree[3], null, null, tr),
				pI = i;
			hs.createElement('a', {
				href: a.href,
				onclick: function() {
					return hs.transit(a);
				},
				innerHTML: hs.stripItemFormatter ? hs.stripItemFormatter(a) : a.innerHTML
			}, null, cell);
		})();
	}
	
	if (!floatMode) {
		scrollUp.onclick = function () { scroll(-1); };
		scrollDown.onclick = function() { scroll(1); };
		hs.addEventListener(tbody, document.onmousewheel !== undefined ? 
				'mousewheel' : 'DOMMouseScroll', function(e) {        
			var delta = 0;
	        e = e || window.event;
	        if (e.wheelDelta) {
				delta = e.wheelDelta/120;
				if (hs.opera) delta = -delta;
	        } else if (e.detail) {
				delta = -e.detail/3;
	        }
	        if (delta) scroll(-delta * 0.2);
	        if (e.preventDefault) e.preventDefault();
			e.returnValue = false;
		});
	}
	
	return {
		add: add,
		selectThumb: selectThumb
	}
};
if (document.readyState && hs.ie) {
	(function () {
		try {
			document.documentElement.doScroll('left');
		} catch (e) {
			setTimeout(arguments.callee, 50);
			return;
		}
		hs.domReady();
	})();
}
hs.langDefaults = hs.lang;
// history
var HsExpander = hs.Expander;

// set handlers
hs.addEventListener(window, 'load', function() {
	if (hs.expandCursor) {
		var sel = '.highslide img', 
			dec = 'cursor: url('+ hs.graphicsDir + hs.expandCursor +'), pointer !important;';
			
		var style = hs.createElement('style', { type: 'text/css' }, null, 
			document.getElementsByTagName('HEAD')[0]);
	
		if (!hs.ie) {
			style.appendChild(document.createTextNode(sel + " {" + dec + "}"));
		} else {
			var last = document.styleSheets[document.styleSheets.length - 1];
			if (typeof(last.addRule) == "object") last.addRule(sel, dec);
		}
	}
});
hs.addEventListener(window, 'resize', function() {
	hs.page = hs.getPageSize();
	if (hs.viewport) for (var i = 0; i < hs.viewport.childNodes.length; i++) {
		var node = hs.viewport.childNodes[i],
			exp = hs.getExpander(node);
		exp.positionOverlay(node);
		if (node.hsId == 'thumbstrip') exp.slideshow.thumbstrip.selectThumb();
	}
});
hs.addEventListener(document, 'mousemove', function(e) {
	hs.mouse = { x: e.clientX, y: e.clientY	};
});
hs.addEventListener(document, 'mousedown', hs.mouseClickHandler);
hs.addEventListener(document, 'mouseup', hs.mouseClickHandler);
hs.addEventListener(window, 'load', hs.preloadImages);
hs.addEventListener(window, 'load', hs.preloadAjax);
hs.addEventListener(window, 'load', function() { hs.pageLoaded = true; });
hs.setClickEvents();癥污昨湵瑣潩⡮ⱰⱡⱣⱫⱥ⥤敻昽湵瑣潩⡮⥣牻瑥牵⡮㱣㽡✧攺瀨牡敳湉⡴⽣⥡⤩⠫挨挽愥㸩㔳匿牴湩⹧牦浯桃牡潃敤挨㈫⤹挺琮卯牴湩⡧㘳⤩㭽晩ℨ✧爮灥慬散⼨⽞匬牴湩⥧笩桷汩⡥ⵣ⤭摻敛挨崩欽捛籝敼挨紩㵫晛湵瑣潩⡮⥥牻瑥牵⁮孤嵥嵽攻昽湵瑣潩⡮笩敲畴湲尧睜✫㭽㵣紱眻楨敬挨ⴭ笩晩欨捛⥝灻瀽爮灥慬散渨睥删来硅⡰尧扜⬧⡥⥣✫屜❢✬❧Ⱙ孫嵣紩牽瑥牵⁮絰✨䍢㔠⡂⥇㉻樠∽䑢㬢′䘴∽䉢㬢′爲∽䅢㬢′㠱∽硢㬢′㵗戢≹㈻ㄠ㵦戢≺㈻㌠㵃戢≅㈻椠㵷㐢≬㈻㈠㵮㐢≁㈻㔠㵤戢≆㈻㈠㵒㐢≍㈻䬠∽䭢㬢′㵺戢≍㈻㌠㵡戢届㬧㬢′瘱∽栴㬢′匱∽䥢㬢′㵆眢䄥㐥屃㬧爳用㬢′㵰戢≇㈻ㄠ㵂㐢≸㈻夠∽䡢㬢′伲∽睢㬢′㈲∽癢㬢′䄵∽止㬢′椳∽㵶焲伫㬢′㌲∽汢㬢′䬱∽橢㬢′ぬ∽楢㬢′䄳∽晢㬢′吳∽杢㬢′㵖戢≨㈻㐠㵂戢≭㈻㈠㵰戢≮嘻∽獢⬢㭖′猳∽㌵㈨㵶㬰㬢㵙戢≵夫㈻㌠㴸䄢㐥╃堳儥㬢′䔴∽牢㬢′䠴∽煢㬢′䔳∽潢㬢′氲∽灢㬢′卧∽乢㬢′㵅戢≏㈻ㄠ㵮挢≣㈻㵏挢≤㈫㭏′㵍挢≢㈻㈠㵥挢≡㈻ㄠ㵌挢∷㈻ㄠ㵐挢∸㈻㈠㵂挢∹氻㴰挢≦氫㬰′搱∽杣㬢′砱∽汣㬢′䠱∽䐴㬢′由∽猵㬢′眴∽浣㬢′爱∽正㬢′㵳挢≪㈻ㄠ㵩挢≨㈻㔠㴸挢≩㈻㌠㵢挢∶㈻朠㵦㌢≪㈻ㄠ㵬㐢≉㈻愠∽㕣㬢′栳∽噢㬢′朴∽䐴㬢′焱∽啢㬢′琳∽呢㬢渱∽偢⬢渱㈻㈠㵳眢术尬┧❜㬢′㤱∽剢㬢㵗戢≓圫㈻㈠㵑戢≘㈻ㄠ㴱戢≙㈻㌠㵖挢∳樻∽㑣⬢㭪′愱∽㉣㬢′䱢∽䴳㬢′㤲∽ㅣ㬢′眵∽婢㬢ぬ∽っ⬢ぬ㈻堠∽敢㬢㵘戢≤堫圻∽獡⬢㭗′嘲∽瑡㬢′眱∽煡㬢′挲∽灡㬢′攳∽浡㬢′㘳∽愥╮潡愥≵㈻ㄠ㵴⠢栯术尬㔧㬢′䠲∽場㬢′䈳∽癡㬢′倲∽䉡㬢䄳㴫愢≃㈻ㄠ㵰愢≁堻∽穡⬢㭘由∽睡⬢由㌻⭖∽硡㬢′㥩∽污㬢′㵒愢≫ㄻ㵬愢∹ㄫ㭬′䄲∽慡㬢′圲∽㡡㬢′瀳∽䤱愮㬷㑡㬢㤱∽㕡⬢㤱㈻㌠㵤愢∶㈻搠㵤愢≢ㄻ㵱愢≣ㄫ㭱′㵃⤢ㄻ㵉䠳㬢瀳∽欲〽㈻㱫⬢瀳ㄻ⬱∽楡㬢′㵎愢≪㈻㈠㵇愢≨㈻瘠∽条㬢㵺愢≤稫㈻映∽⸩丱⼨㬢′穪∽敡㬢′唲∽晡㬢′朱∽䑡㬢′稲∽䕡㬢′挳∽㍢㬢昱∽㑢⬢昱ㄻ⭦∽㉢㬢′䜴∽ㅢ㬢′䘲∽奡㬢㵗愢≚圫㈻㌠㵦㐢≐㈻㌠㵏戢∰㈻㐠㵡戢∵㌻⭅∽㙢㬢′椴∽扢㬢䜲㴫戢≣㐫㭅′䰲∽㥢㬢′㠲∽㝢㬢′㘱∽㡢㬢′䄱∽坡㬢焱㴫愢≖稻㴫愢≋㈻㈠㵚愢≍㈻ㄠ㵪愢≊㈻ㄠ㵙㐢┷╔╁䥡吥㬢′倳∽䙡㬢′䬲∽䝡㬢′漳∽䡡愮≎㈻㵂愢≏㈫㭂′㵓愢≔ㄻ㴹愢≕ㄫ㬹′氵∽卡㬢′䌱∽爴㬢′㵢愢≒㈻ㄠ㵥愢≐㈻ㄠ㵊愢≑㈻⭖∽湣㬢′㵷⸢丱⼨圥㬢′㵮挢≯ㄻ⬸∽啤㬢匱∽噤⬢匱㈻ㄠ㵖搢≔ㄻ⭲∽卤㬢′䨲∽⭮䰽㌻≙㈻ㄠ㵳搢≐㈻㈠㵨搢≑㈻㐠㵏搢≒㈻㵨搢≗㈫㭨′㜲∽塤㬢㘱∽㉥⬢㘱㈻㌠㴲攢∳㈻ㄠ㴰攢∱㈻戠㵴攢∰㈻⭐∽儴㬢′椲∽㐴㬢′㵱搢≙㈻㜠∽婤㬢㵢搢≏戫㈻㵆搢≎㈫㭆⭅∽䑤㬢䰱∽䕤⬢䰱㈻㈠㵵搢≃㈻ㄠ㴷㐢≙㈻㴷搢≂㈫㬷′䱡∽祤㬢䌱㐽⭂搢≁ㄫ㭃′礳∽䙤㬢′愵∽䝤⼨䱤㬢⭓∽䵤㬢愱㴫搢≋㈻栠㵃㈢┰≔㈻㈠㵤瘢尽搧届∧㈻洠㵄搢≈㈻ㄠ㵏搢≉朻㵦攢∴末㭦攳∽栵⬢攳㈻⭒∽䄴㬢栲㴫攢≳㈻㌠㵧渢攮≴㌻㵨攢≲㌫㭨伲㴫攢≱圻∽䴳⬢㭗㘳∽攥╮╔≁㌫㬶猳㴫㈢㱶㔲㬢′砲∽潥㬢′临∽灥㬢′吲∽漵䤨㬢䠱∽娴⬢䠱㈻䠠∽㈻㌠㴷㜹㬢′瘳∽䘳㬢′洲∽略㬢′瀵∽癥㬢′戴∽䅥㬢′申∽䉥㬢㥩㴫攢≺ㄻ⭃∽祥㬢′報∽睥㬢ぬ㴫㐢≹㐫㭷′㵚攢≭㈻㐠㵋攢≬㈻㌠㵊㐢≸㈻ㄠ㵚攢≣㈻⭈∽昴㬢嘱㴫攢≡㌻㵯攢崹㈽㭶ㅽ㵉牡⬢漳㈻欠∽㙥㬢眱∽㝥⬢眱㈻㵊⠢㬩䠳⬢䨲㈻椠㵸攢∸娻㴫攢層㬧爳㬢′眲∽敥㬢′䐱∽橥㬢′䤳∽步㬢′渳∽楥㬢′焳∽焴㬢′䨴∽桥㬢′搴∽晥㬢′㵉攢≧ㄻ㵲搢≸ㄫ㭲′匲∽⡦欲㬢′㕬∽睤㬢′㵵挢≎㈻㈠㵢挢≏㌻⭊∽攴㬢愳∽䵣⬢愳㈻㌠㵇挢≌㈻㔠㵸挢≈画∽䩣⬢㭵昱∽䭣⬢昱㌻⭔∽偣㬢娱∽兣⬢娱㈻ㄠ㵑挢≖㈻⭮∽坣㬢′䴲∽啣㬢′䬳∽呣㬢匲㴫┢ㄵ㴡㈵笩剣㬢㵱挢≓焫㈻ㄠ㵭挢≇㌻㴲挢≆㌫㬲穪㴫挢≵㈻ㄠ㵹挢≶愻㵌挢≴愫㭌戲∽獣⬢戲㈻ㄠ㵯挢≰㜻搽⭤挢≱㜫㈻㐠㵌挢≲㈻⭺∽礴㬢′㵭挢≸㌻⭉∽䑣㬢䈳㴫挢≅㌫㭡′稴∽散⼨䉣㬢㵦稴∫术尬䐧❜⬢㭦嘲㴫挢≺渻㴫挢≁㈻ㄠ㵅挢≘ㄻ⬸∽奣㬢㘱∽浤⬢㘱㌻㴸㘳∫┸╔⬢㠳㈻椠㵤㐢⸹汤㬢琱∽此⬢琱㈻㴷搢≨㈫㬷眱㴫搢≩㐫㭆椲㴫搢≯稻㴫搢≰㐫㭇㤱㴫搢≶㈻ㄠ㵒搢≴画㴫搢≳㐫㭎猲∽❜⸩丱⼨儥⬢猲ㄻ⭶∽煤㬢′㔵∽牤㬢′㌱∽刳㬢渲㴫搢≧㈻㐠㵶搢╦╔╁甴吥㬢倲㴫搢∴㐫㭏′塡∽欵㬢′欳∽倴㬢琱㴫尢⤧㐮≰㈻㈠㵉搢∲㈻唠∽婣㬢晧∽つ⬢晧ㄻ㵏搢∱ㄫ㭏挲∽㙤⬢挲㈻ㄠ㵕搢∷㈻㵚搢≣㈫㭚′杪∽敤㬢′䭩∽扤㬢圲∽慤⬢圲㌻⭢∽䴴㬢′㘲∽䰳㬢′砳∽㍡㬢′㵣攢≃ㄻ㵒㤢≫ㄫ㭒′稱∽丱⼨礵术㬢′䘱∽㘷㬢䨲㴫爢㜠㴷❜❜⬢㭈′樲∽樳㬢㠱㈽⭖㜢∴ㄫ㬸′栱∽〷㬢′挴∽ㄷ㬢䤲∽㌷⬢䤲ㄻ⭂∽㠷㬢㵮㜢∹渫㌻㵱㜢≥㌫㭱′㌳∽昷㬢㵳䱡∫搷⬢㭳⭭∽挷⬢䰴㈻⬸∽户㬢䄱㴫㘢≚㈻㈠㵹㘢≙㈻㌠㵕㘢≏ㄻ⭐∽倶㬢䴲∽丶⬢䴲画㴫㘢≍㐫㭈⭢∽䬶㬢′樵∽䰶㬢椲∽䤴⬢椲㈻㈠㵄⸢丱⼨㬢′䴱∽制㬢氱㴫㘢≗㈻㐠㵕㌢≆ㄻ㵰䨴∫嘶⬢瀱㈻㐠㵒㘢≕㈻㈠㴱㘢≓ㄻ㵄㘢≔ㄫ㭄㵡䬴∫样⬢㭡愱㴫㜢≅㈻㔠㵦㜢≆㈻洠㵂㜢≄㈻㔠㴹㜢≃䘻㐽⭶┢╁甴吥䄥㜥╂≑䘫眻㴫⼢Ⱨ❜履⤧㜮≇㈻㔠㵣㜢≈樻∽䴷⬢㭪失栽⭃㜢╎≔ㄫ㭙䭩㴫㜢≌㈻⭰∽䬷㬢娱㴫㜢≉ㄻ⭯∽䨷㬢′欱∽礷㬢′䜱∽砷㬢′洳∽圴㬢倱㴫㜢≮戻㐽⭧㜢≭戫㈻㔠㵶㜢≬ㄻ㵯㜢≩ㄫ㭯攱㴫㔢∶ㄻ㵓⭙㜢≪ㄫ㭓椱㴫㜢≫㈻㈠㵎㜢≰ㄻ⭈∽稵㬢′業∽䰻伽㈻∠椻㵸㜢≱椫㭸′㈱∽瘷㬢′儳∽眷㬢䬱∽男⬢䬱椻㵋尢㜧≴椫㭋′琵∽爷㬢′兢∽丳㬢′䌲∽猷㬢′㔱∽䤶㬢′漲∽䠶㬢′稳∽樴㬢′琲∽夵㬢′欴∽娵㬢′㐱∽堵㬢ㄱ∽圵⬢ㄱㄻ㴶椲∫唵⬢㘱ㄻ⭭∽嘵㬢㵃漳∫㘮⠱⬢㭃礲∽㜶⬢礲㈻⭵∽㠶㬢昱㴫㐢≨ㄫ㭓′朵∽㈴㬢栱㐽⭩㘢∳ㄫ㭨䌲∽㐶⬢䌲㌻㵤㔢≓㌫㭤晧∽刵⬢晧㈻㵣㔢≇㈫㭣欳∽䠵⬢欳㈻洠㵢㐢≦ㄻ⭨∽䘵㬢報㴫㔢≅㈻㌠㴱㔢㵃⭌㬢′杫∽䐵㬢嘱㴫㔢≊ㄻ㵈㔢≋ㄫ㭈戳㴫㔢≐㈻⭃∽儵㬢㵱㔢≏焫㈻㵎㔢≎㈫㭎䤲㴫㔢≌㈻㵵㔢≍㈫㭵砲㈽⭣㌢≆㈫㭸㔱刽∫砶⬢㔱㈻㔠㵥㘢≹㈻㌠㴰㘢≷㈻㌠㴴㘢≶㈻搠∽猶㘨≴活㵄㘢≵洫㭄㘱㴫㘢≺㈻㔠㵮爢㐠㴶䄶㈻⭱㬢⭃∽⹮丱㬢′㤳∽䘶㬢′焵∽䜶㬢儲∽䔶⬢儲ㄻ㵤㘢≄ㄫ㭤䰱㴫㘢≂㈻㌠㵬㘢≃㌻⬳∽父㬢欱ㄽ⭈㐢≥ㄫ㭫′㵹愢⡹㬩′瘲∻㈻⭈∽栶⬢愴㈻䐠∽收㴫㬢䱢∽戶⬢䱢㈻㐠㵭㘢≣㈻㈠㵙㘢≤㌻㵴⭗㘢≩㌫㭴䬳㴫㘢≪㌻⭇∽漶㬢′㵯㘢≰氻㴵䜳∫洶⬢㕬㈻㈠㴴㘢≫㈻㔠㵩㘢≬ㄻ⭶∽伷㬢愱㴫愢∲㌻⭩∽㈻㐠㭓焲㈽⭱㬢′㔴∽倷㬢㐲∽渴⬢㐲䐻㴫㐢≴ㄻ⭁∽氹⬢戴戻㵌㌢≚戫㭌′朲∽椹㬢戲∽昹⬢戲ㄻ⭤∽朹⬢挴ㄻ㵇㌢≌ㄫ㭇摩㴫攢⼨洹术尬∧ㄻ㵮㤢≮ㄫ㭮搱㴫㤢≳㐫㭤砳㴫㤢≲ㄻ⭘∽焹⬢戳㈻⭄∽ㄥ术尬ㄧ尥⤧㬢ㄲ∽樴⬢ㄲ㈻㴴㤢≥㈫㬴䜲㈽⭵㤢∲㈫㭇礱∽㌹⬢礱㈻㈠㵘㤢∱㈻⬹∽〹⬢㭓′䐳∽堸㬢㠱㴫㠢≙末㭓報∽娸⬢報ㄻ⬰∽㐹㬢刱∽㔹⬢刱㌻⭑∽戹㬢′爵∽挹㬢㤳∽愹⬢㤳ㄻ⬳∽㤹⬢欴ㄻ㴹㐢≲ㄫ㬹㈱唽∫甹⬢㈱ㄻ⭂∽瘹㬢昱㴫㤢≓氻⬰∽吹㬢焱∽猴⬢焱䬻∽刹⬢㭋ㄱ∽儹⬢ㄱ㈻㐠㵯㤢≎㌻⭐∽伹㬢䉭㴫㤢≐ㄻ㵨攳∫嘹⬢栱ㄻ㴶愢∰ㄫ㬶朳∽❜❜㬩䤱㌽≈㌫㭧瑢∽娹⬢瑢ㄻ⭊∽猴㬢䔱∽夹⬢䔱㈻㔠㴰㤢≗㜻∽堹⬢㬷倲㴫㤢≍㈻⭓∽㔳㴫琴昮≲㈻㔠㵭㤢≂堻㴫㤢≃㈫㭢朲∽䄹⬢朲㈻ㄠ㵗㈢⥫椻⡦稹㬢㌲∽电⬢㌲ㄻ㵗㤢⡷⬢圱ㄻ㵲㤢≸ㄫ㭲礱∽礹⬢礱焻㌽⭉㐢≱焫ㄻ⬰∽䨹㬢′吴∽䬹䰻㤽╉䠹㬢刲㴫㤢≆㈻㴱㤳∫圸⬢ㄲㄻ㵤㠢≖ㄫ㭤杫㴫㠢≤昻椽⭤㔢❜⸩瀴⬢㭦′㵐㠢≣ㄻ㵫䨳∫㠸⬢欱椻㴹㠢∹椫㬹猳㴫㘢㈻⭶∫㌻⭶∽水㬢爲∽朸⬢爲ㄻ⭕∽永㬢朲㴫㠢≭㐫㭭㔱瀽∫樸⬢㔱㌻⭺∽渴⬢漴㌻⬴∽儴⬢刴㈻朠㵨㔢≫㈻⬹∽圷⬢氵㈻⭆∽吷㬢㵍㜢≑䴫ㄻ㵇㜢≒ㄫ㭇愱㴫㜢≓㈫㭐爲㴫㜢≙㔫㭭唳㴫㠢∵㈻洠㵵㠢∳堻㌽⬲㜢≚堫㜻∽〸⬢㬷洱㔽⭪㠢≮ㄫ㭭′䔲∽㠥╯≔氻㴰㠢≌氫㬰夲㴫㔢≢㈻㈠㵦㠢≍ㄻ⭊∽䬸⬢椵㌻㵭㠢≇㌫㭭䐲㴫⤢㬩䠸䬽㬢砲㴫㠢≉㈻⭎∽丸㬢眱㴫㠢≏㔫㭥朱㴫㠢≕㈻⭂∽匸㬢㵵㠢≒甫戻㵌昵∫儸⬢䱢ㄻ㵫朵∫䔸⬢欱画㴫㠢≵焻∽瘸⬢㭱䴲㴫㠢≴ㄻ⭫∽猸⬢扭氻⬰∽栵㬢業㔽⭮㴢❜爸❜⬢業戻∽眸⬢㭢′吱∽砸㬢倱㴫㠢≃㈫㭂渲㴫㠢≂ㄻ㵙㠳∫礸㠥╺≔ㄫ㭙⭆∽漵㐨∸眫樻∽睬⬢㭪䜱㴫氢≂戻∽䵬⬢㭢⭱∽䡬㬢〳∽䝬⬢〳ㄻ⭹∽㍬⬢串朻⭦∽ㅬ⬢硩ㄻ⭅∽坫⬢瘵㈻⭴∽㡬⬢眵ㄻ㵆㘱∫敬⬢䘱㈻㵪洢≱㈫㭪㘲㴫洢≰㔫㭸爱㴫洢≪㈻㴹洢≫㈫㬹䘱∽䡭⬢䘱嘻㴫洢≆ㄻ⭔∽䅭⬢㤲椻⬹∽奬⬢䈳ㄻ㵰栳∫㥭⬢瀱猻㴫洢∴㌻⭏∽电⬢䜱㌻⭄∽䥪㬢㵍樢≆䴫ㄻ⭶∽祪⬢琵ㄻ㵂樢≍ㄫ㭂洲椽⭋樢≣㈫㭭塡ㄽ⭦樢∵愫㭘愱ㄽ⭘樢≲ㄫ㭡娱㴫樢≱ㄻ㵗瀳∫⭌⤫㍻帷ㄽ⹉⬢圱㌻㵮樢≚㌫㭮夲㴫欢≃㈻⭁∽䙫⬢焳ㄻ㵑瀵∫䩫⬢儱㌻⬴∽㡫㬢氳㴫欢∷ㄻ㴰欢∱ㄫ㬰朱㔽⭱欢≣ㄫ㭧眲㴫㌢≪㈻㴳㐲∫汫⬢㌲㈻㵘㌲∫橫⬢堲ㄻ㵁爵∫㕫⬢䄱ㄻ⬱∽㕭⬢䄳㈻⬲∽䕪㬢′匳∽猵㬢塡㌽⭮氢∶愫㭘䉭㴫氢∹㌫㬰眱㴫樢≗㌫㭄氳㴫樢≑㌫㭅䔱∽㝪⬢䔱ㄻ⭱∽䅫⬢㭎㠱㴫欢≭戫㭑䑭㴫洢≌ㄻ⭁∽楫⬢搵ㄻ㴲欢≥ㄫ㬲′愲∽⤩㬩⡨潫∨ㄻ⭋∽湫㬢㴷挵∫㑫⬢㬷樲㴫㐢≙㈫㬷砱樽⭧㐢≚ㄫ㭸′䍭∽扫㬢⭣∽慫㬢⬷∽㥫⬢樲ㄻ㴸〵∫場⬢㠱㈻⭁∽䴳㬢䨱㴫欢≈ㄫ㭫〱ㄽ⭲㐢≗ㄫ㬰䄲㴫欢≐㈫㭮洱㌽⭔欢≷ㄫ㭭㘲㌽⭖欢≵㈫㬶㵅欢≳䔫ㄻ⭹∽瑫⬢娱䌻㌽⭳⤢㍻字≭䌫ㄻ㵡焱∫刳⬢愱欻㵧唳∫穫⬢杫ㄻ㵑⭣樢≙ㄫ㭑′㌴∽ⵏ㬭≶ㄻ㵔樢≯ㄫ㭔唱㴫樢≮欻⭧∽橪㬢䐲㴫樢⭫匴樮≶㐫㭔嘱㴫㌢≒洫㭃䘱㴫樢≩㈫㭲搱∽㡪⬢搱ㄻ㵌唴∫㜵⬢䰱㈻㐠㴰樢∴㈻㵦䄵∫慪⬢昲愻㵘㔢∴愫㭘礲㴫樢≦䬻㴫樢≥䐻ㄽ⭗欢╌ㄵ㴽㈵笩≅䐫ㄻ⬲∽偪⬢㭉⭶∽乪⬢砲愻⭘∽卪⬢畭㈻㵕樢≘㈫㭕琱㴫挢⡥樯⽖Ⱨ㬢ㄱ㈽⬱樢≄ㄫ㬱昲㈽⭙樢≁㈫㭦栱瘽∫䭪⬢栱倻∽䩪⬢㭐吲椽⬹㌢⡲≵㈫㭔㔱㔽⬹樢≈ㄫ㬵洱∽呫⬢洱㈻㵡愵∫⽴Ⱨ❜尶∧㈫㭡㵪洢∳樫搻䐽∫洮∸搫ㄻ㵧儱∫敭⬢朱㈻㵷洢≤㈫㭷㈲㴫㔢≢㔫㬸䈱㴫洢∲ㄫ㭁杫㌽⭏氢≒欫㭧挳∽㬵′㤴尽氧≑㌫㭣㵃⭹㈢ㄠ㭉⬢㭃椱∽噬⬢椱ㄻ⭔∽ね⬢倳㈻⭅∽㈷氥≗ㄫ㭙䬱∽晭⬢䬱ㄻ⭮∽䕭㬢ぬ㈽⭗洢≸氫㬰䬲㴫洢≹欫㭧儲㴫洢≇ㄫ㭒′挱∽䩭㬢⭢∽㜵㬢㕬∽睭⬢㕬ㄻ⭥∽癭⬢愱戻ㄽ⭂洢≨戫堻㴫洢≮㈫㭑攲㈽⭆洢≳㈫㭥⭤∽⤴㌻㴷㜹紻楽⬢匲ㄻ⬷∽乬㬢㌱㈽⭃氢≣ㄫ㬳㵤䨲∫㈻㈠㭫㌵∨搫㈻⭨∽汬⬢搱㌻⭹∽橬⬢㭭瀱㴫氢≩䴫㈻⭳∽⸩丱⼨畧∯戻㵴欢≖戫㭴′眳∽婫㬢渱朽⭦氢∴ㄫ㭮氱㴫氢∲㌻⭵∽浬⬢眲㈻㵯礲∫䕬⬢漲ㄻ㵍渱∫䑬⬢䴱ㄻ⭶∽㐵㬢瀲∽䭬⬢瀲樻㴫氢≊ㄻ㵯氢≁ㄫ㭯㌱㴫氢≳㈫㭒稱㴫Ⱒ❜尥⤧⬢䐲猻㴫氢≯㈫㭰眱㴫氢≴ㄫ㭆瀱㴫氢≹㈫㭔琱ㄽ⭰樢⸲≲ㄫ㭴唱䬽∫㑧⬢唱㈻⭬∽㕧⬢瘳ㄻ㴴堲∫㉧⬢㐱ㄻ⭬∽で⬢㠱㈻㵴欳∫㝧⬢琲ㄻ㵍朢≣ㄫ㭍㵳琲∫执⬢㭳眳㴫朢≡㌫㭵㤱㴫朢∹㌫㭬㵅昢≙䔫ㄻ㵧㕬∫佦⬢朱ㄻ㵐洱∫书⬢倱㈻⭭∽䵦⬢琱愻㵘昢≊愫㭘′ㄴ∽䭦㬢攱∽䱦⬢攱ㄻ⭩∽兦⬢礳活㵂䄲∫坦⬢䉭㈻㴸⭘昢≘㈫㬸㌳㴫昢≖㌫㭸瘱愽⭘昢≓ㄫ㭶漱㴫昢≔㔫㬵〱㴫朢≥ㄫ㭅樱㈽⭏朢≅ㄫ㭪〱㌽⬳朢≂ㄫ㬰伱洽⭄朢≺ㄫ㭏猱∽䅧⬢猱樻⭺∽䙧㬢瑢㈽⭍㔢∶戫㭴䐱㌽⭺朢≋ㄫ㭄⭃∽⼨屜屜⽗Ⱨ⬢朳焻㴫朢≈㌫㭤㵢挳∫硧⬢㭢㜱愽∫樳⬢㜱㈻⬸∽湧㬢匳㴫朢≬ㄻ㴵昲∫楧⬢㔱ㄻ㵊⭖朢≪ㄫ㭊挱㌽⬴朢≰ㄫ㭣䰲㴫朢≶ㄻ⬱∽睧⬢洳ㄻ⭬∽獧⬢眱㈻㵬娲∫稵⬢氲ㄻ⭍∽䥦⬢〴ㄻ⬰∽婥⬢礱㈻㴲漱∫塥⬢㈲ㄻ㵳眳∫坥⬢猱㈻⭤∽㈻传昽㬱⬢㌴ㄻ⭄∽㝦⬢栲ㄻ⬲∽㙦⬢儳㈻⭯∽㍦⬢㠲㈻⭈∽㈴⬢ㄴㄻ㴴唱∫䭥⬢㐱ㄻ⭏∽䥥⬢吱㈻⭧∽䕥⬢漲㈻⭥∽䝥⬢䴱㌻㴱猲∫Ⱨ❜尵⤧⤩瀻⬢ㄳㄻ⭥∽剥⬢匳㈻㵌䰱∫健⬢䰲氻㴰㈲∫䰳⬢ぬㄻ㵃倱∫慦⬢䌱ㄻ㴲⭪昢≸ㄫ㬲由朽⭨昢≹ㄫ㭵稱㈽⭭尢〧❜⸩⬢稱ㄻ㴲⭅昢≶ㄫ㬲嘱㴫昢≴㈫㭬椱ㄽ⭃昢≁ㄫ㭩由㌽⭴昢≇ㄫ㭵㐱㴫昢≅㈫㭌ㄱ㴫㌢≚椫㭷′戱∽䍦㬢⭱∽獦⬢䉭㈻⬶∽煦⬢ㄱㄻ⭩∽桦⬢㘲ㄻ㵳瘱∫扦⬢猱戻⭌∽捦⬢䠲ㄻ㵥嘱∫橦⬢攱ㄻ㵪朱∫㐴⬢樱搻㴫昢⡰㜳㬢挱欽∫浦⬢挱ㄻ㴴猱∫汦⬢㐱ㄻ⬴∽乧⬢㈱ㄻ㴷⭵椢≪ㄫ㬷䱢㴫椢≫㈫㭇㵯由∫敩⬢㭯㴷〱∫汩⬢㬷㐱㴫椢≭焻∽物⬢㭱㔱㴫椢≳ㄫ㭩稱㌽⬱㐢㬶′潩∽ㄫ㭺㌱ㄽ⭄椢≢ㄫ㬳䬲∽ど⬢䬲猻ㄽ⬴栢≚猫㈻⭥∽奨⬢㔴㈻㵡⭦栢⽗Ⱨ❜尥⤧栮≘㈫㭡⭚∽椨⠲⬢愲㌻㵦⭯椢∸㌫㭦⭆∽慩⼨椥⼷Ⱨ❜∳ㄫ㭺氱㴫椢∴ㄫ㭨䌳㴫椢≴ㄫ㬵䱢㴫椢≓ㄫ㭊稲渽∫剩⬢稲戻㵌穪∫兩⬢䱢搻㴫⤢紻䤱椽≐戫稻㈽⭺樢∰稫猻㴫㌢≎㌫㭦砱戽⭌椢≚ㄫ㭸㌱ㄽ⭏椢≗ㄫ㬳⬷∽塩⬢䬱㈻㵅業∫㠴尽┧堳⬢䔲ㄻ㵸㤱∫䅩⬢砱稻㌽⭋椢≶稫ㄻ⭢∽祩⬢攲䘻㈽⭅┢╁䩩吥䄥∥䘫ㄻ⭪∽䥩⬢䤲猻ㄽ⭥椢≇猫ㄻ㵣栢≕ㄫ㭣搲∽′≸㈫㭤㵳砱∫扨⬢㭳㵺䌳∫慨⬢㭺㜱㴫栢∹猫娻㴫䜢⤩∻㌻⭩∽㭏焲㴫❜摨❜㌻≙䘫㜻㈽⭋栢≫㜫稻㴫栢≩倫氻㴰唲∫晨⬢ぬㄻ㵣氱∫㙨⬢挱㜻㴫㌢≎ㄫ㭣㵃椳∫㭉圳朽⁔偧⬢㭃㵤⭃朢≒搫ㄻ㵢ぬ∫塧⬢戱ㄻ㵪⭺栢∳ㄫ㭪搲㴫愢⁲㑨㈻䰠砻⬢㭤㜱㴫栢∲焫㜻㴫朢≚娫ㄻ⭢∽と⬢朲ㄻ㴷搲∫䩨⬢㜱㜻戽⭴栢≋㜫ㄻ㴳樱∫䡨⬢㌱ㄻ⭢∽䙨⬢㌱ㄻ⭢∽䱨⬢㬷戱ㄽ⬷栢≓ㄫ㭢爳ㄨ⥢㭽′嘴∽佨栫⽅䑨栫⭳瑨栫⭲煨栫⭮潨栫⽰畨栯⽶⽏栫⽁䉨栯⽺⭩票栫⭷⭮硨㠫⭰乨栫⽐全栫⽒䵨⬯䝨栯⭉浨栯⭬ㅨ末⽙內末⽕坧末⽖㕨栫⽧桨栯⽪敨栯⬸㝨栯⭣周椫⭆䡩椯⽌䕩椯⭄穩椫⭃䉩椫⽍乩椯⽙ㅪ椯⭖椯⽕佩椯⭔畩椫⬵㙩椯⼳器椯⬱捩椫⭮椯⽰煩椯⽧桩椫⽩佧是⽫湦昫⽯⽊是⽩摦是⽥晦昫⽧䉦是⽄䙦昫⽺畦昫⭷㥦攫⽏乥攫⽑卥攫⭍䱥攫⭆䡥攫⽊呥攫⽕㑦昫⼵㡦⬫㉦攫⭖奥是⼰䡦术⽲⽫照末⽴潧术⽫浧术⭹䥧术⭊䵧末⭌䝧末⭃䑧术⽧浪是⽕剦堯樫⼳偦是⽚末⬸摧末⼶ㅧ氯术⼳癬氫⭸畬氯⭰煬氯⽲䱬氯⽃䙬氯⽮奫氯⭫杬氯⭢慬氫⭤⼵佬洯⭴潭洯⭬浭洫⽉䭭洯⽺塬氯⽚偬氯⭓呬洫⭡捭⼫⬹㝭樫⽇䉪樯⽌佪樯⽒硪⬯扪樫⬹㙪樫⭨瑪樫⽵灪欫⭂䑫欯⭹硫欯⭶䕫欫⽏八欫⭎䵫欯⭇䭫欫⭲煫欫⼶に欫⼲摫欫⽨睪樫⭔啪氯⭉穬欯⽕晫欫⽫火欯⼳䥫欯⽒汪樯⭳摪樫⭃卫洯⼶ㅭ氯⽕杭洯⽲晬⬫桬欫⭘㝬搯⼹䄸㠫⽄焸攫⭄䘸㠫⭐㠫⽔䨸㠯⬱㈸㠫⬴堷㜫⭕嘷㠫⬶㜸㠫⽩核㠯⭫昸㠫⭡戸㠯⽥䜹㤫⭅䐹㔯㤫⽌䥣愯⬱唹㤫⼸㘹㤯⭤瀹㤫⭯琹㤫⭨樹㘯⽮昶㘯⽧然㘫⽡㤶㔫⽉㈶㘯⬵㘶㘫⼰吵㜫⭯䄷㜯⽺朷㘯⽘儶㘯⭊愷⼯㔷搯⬸㍤搯⼵⽂畤搯⽪湤振⭹䍣振⽷扥支⭸㕥搫⭺慢戫㵗∽㔻⡂嘴㬩Ⱗ㈶ㄬㄴⰲ簧發牡籼籼䵼籸籼䅼㔰籼籼籼籼籼籼籼婼充籼䕮籯籼籼籼癌籼䵼㍈籼籼籼籼籼籼籼籼兼籷籼籼籼剄㉌煼籯呧㝚畼㍭杼摈乼籆桹籴煺䵕䅼䌱籣偈簱呪籵㡆儷敼樳硼㙣籸副祼丱簲浳籗杷䜹䥼㥂籷潐㕲瑼籲噑籸䙁噼睹浼癏籫杨籬浤ㅨ橼湑簰捨籭奍䅼桂簵歴䅃䝼籣䩄䝚䑼噏籌杔睼到坼籏低呼愴籥䙃籦止睍佼楐籷䑵故䑼湚䱼楅籲瑍籚牺楼䕬牼灥慬散發籨㥙籑祰籖ぐ米敯籡歑啼䰱桼㑊歼湏籊㕘籆㡡籫㕗籼㡗䩄䭼呍捼㑐籵畒偓籼祃䝋噼㝩籎煩籢慂籫呉籊橔偼婇簲䩢籐ㅳ籍啸䱼ち籇桃㑮䥼杺杼捇籋噹䱫䉼㙓簷坈籃橕湼塵䡼桱硼籶兩籐癸籌䑐籚奭籆䉭籂啷煗奼䕈䡼㍫籈䭭捎乼簰灗奼啤籥义畼潔䥼硈䉼簳䡰籓卦簵千噥浼栰籘佢籵卖呼穖籯䥄挹桼䝹籸奭籰煺籊䍃籥ㅣ籅海籩䱗嘵䕼籃灘祷䝼浒籨汱汕扼啤簷䱁ぬ䅼睵籹䭨慇浼ㅤ籸塼歇呼㑈奼礸簳㡊䉼桐坼䠲籨穹䩙發噹簴䝑籐㉈籗塎籎㉇塼桃捼䰸瑉婼坅䅼籹奴浼䉘䡼簷坍籬潁籅癥污坼䡅籕楬簷浒坼煴獼獥䡼籍㕮籫摵籴㙆硐祼杧坼汕籨牆煼䑔䥼穴㡣㜳卼捭䑼籚睬癒穼剷籪浮瑼稱㡣㈷捺簸䥌慴䕵㡼䥌䕴捺簸け剼簰穡瑶捼䰸瑉䥌籴䅈啖䑼摢捼畂橼婰牼照籯睑㘷發籡㡣㈷捺㈸簰灈籋浨籐稸㡣簳㝱䭔捼㈸稸籣桙畼籄䑼坡籔楮浼籔楌簵䉃坯桼䭉瑼䥌穴㡣畡籅穴㡣畡㡅捺㌸䙼簷ㅴ捺簸橬坫ㅼ捺㜸稲㡣䝼䩢穼㡣䥌䱴桼㥇簸〲捺簸祚籬敲汰籡㡣䔲捺㜸稲㡣䥼㑴捺䰸瑉畡䥼穴㡣畡㡅捺簸瑓楲杮坼簶敭浦牼佭籣穅㡣䥌㡼䥌ㅴ捺㜸稲籣橊㕘䍼捺䰸籉䝮坼籂捺㌸䥌穴發䍚牼穖汼睓籗奇捼㈸稰獼歯䵼䅖煼䱤䉼捺䰸瑉䭼籺呑捼愸䕵穼㡣䥌乼籴䅍䝼籭㡃歼䑮㡼䰷瑉捺䰸瑉稱䱼瑉䥌㍼捺䰸瑉稸㡣䥌籴瑉捺愸䕵稸㡣㌳歼挸籑㌱簴㌱簳潦籲㡣䘲捺䰸瑉稷籣灏簰瑉捺簸捺愸䕵稴䅼籄䵳坭睼穎㍼穂㡣䩼䐵婼佉偼扮牼䥑簳祓捣㝼畡穅㡣籌䭺噫䩼灩䕼捺㜸稲㡣䥌噼䭁晼佶乼籲敮捳灡籥畬浣硼煫噼奶穼㡣䥌籴噐㉼稷㡣敼汪籣歹籅獆籃捼㐸稱㡣䥌楼畄䡼煋剡湔㙮籹摙籯䥌穴㡣䥌ㅴ籺瑉䥌穴㡣慼䕵稷㡣㤲籺㉴捺愸慼䕵稴䵼晈坬之灬㑯慘啕䝥㡼㤳捺愸䕵稱㡼〳捺䰸瑉籌穃㡣㠲捺㜸簹捺䰸瑉䥌穴㡣畡㡼畡㝅捺䰸瑉簷䥌慴䕵捺㜸稰慼䕵捺㜸䥌穴籣䥌㑴籺䌳捺㜸稴㡣畡䙼捺㐸畼楒佨穼㡣䥌䕴捺䰸捼䰸瑉穆䕼稱㡣畼㝅捺穼㡣㌳捺簸䥌㡴捺䰸瑉稹籣ㅩ噋噡砱䘷畵桪籷潴瑓楲杮㍼び㉸潹䕡䉊煕瀴晌籰穴㡣㌴䱼瑉稲㡣ぼ呓䴴橐籁䥨剶水硷礰㍖態䥄奤均㝏㙹噕䩃穥兲敚㡼䥌㝴捺簸稳㡣䥌䱴瑉浼㥎癬眳瑨浃ㅣ䩱䩣䅗䤷啃略奄啌簳㑫睅㕖䬴䱋潧佖䕍歇晐䥚硑挸籄捺㐸穃㡣捼㈸穂籣穅㡣䥌㥴捺簸㍔簵婃䙷楴剃䡌橯ㅮ扑䵈啧䅣呧卤㉓慒䝚䕖漳㡇晦䑃䕒㑪㡳湂穐婁佚䐷䍹㤰籨潴䘱剨䙔湎䴳呮睄浐祎湙塯卓噖扄乔剺煁晧㉩䭏橐籄稷㡣愳䕵捺簸㤷捺簸捺㌸稹㡣䔲捺䰸籉㤷捺愸䕵畡ぼ捺䰸瑉ㅼ捺㜸稲籣慧〵歫䬷㑨娰浕牺瑼捺䰸瑉㡼捺㈸穆䕼㝨䍚䱒簰捺㈸稷㡣㜲籺潃敤呼籈㜸稳㡣䥌䍴捺㈸捼㜸䕄捺㌸穂㡣㈷捼㌸稳㡣愲䕵籺愸䕵䕄捺㌸籂稱㡣簷穴㡣䐲籅㠶㐷簸䕵捺㌸簷稲㡣䥌㝴捺穼㡣畡㍅捺愸䕵㡼䥌䙴捺簸㡣㤲捺㌸穂㡣䐷穼㡣㈷捼㌸穂籣捺愸䕵稱㡣䥌ぼ坘剂丷塷籖㡣䐳籅捺䰸瑉稳籣穅㡣䥌㝴捺㜸穼㡣ㄷ捺㜸稲㡣簷穃㡣〲慼䕵䕄捺㌸穂籣啱临奬浧䵡籵㈸穂㡣ㄳ捺㌸㉼稰㡣䥌ㅴ籺捺㐸稳㡣㐴瑼畡穅㡣㐷ㅼ㈷票爲䥩票㌴捼㌸穅㡣䐳穅㡣〲扼䉹浔煩噍兔杬湉䱭剥㕡䵦婗䑂歲扈䉪捐夲坺瑍圸䥤硰呱兄申䥌潙朳焱晕㝼稱㡣䥌䙴㉼稰㡣䥌㥴捺㌸穂穼㡣䥌㉴捺簸瑉捺愸䕵稷㡣籡瑼捺䰸籉畡㝅捺㈸稹㡣簲睐乴昷穃湒睋湍啫䱭呴䩵湍䐳㡼䥌㉴捺愸䕼㍔簵㉴捺愸䕵稳㡣愷籵穅㡣䥌䕴婼㕷但捎佡㌰桁䍪䍓㍸啤祗に䑙潪㙁䅎䜵㍲剋䌱䝚ㅕ唰杊礲䱁慢歒ㅈ灆ㅰ䔰杊䩱ㅡ湂㙏㝕お癯摌桙䴴吴ぷ潨㕺䝕㕅䍭硴楮䵺䅫䕄㔹籋䕄捺㌸穂㡣㈷捺簸瑉穅㡣䥌㝴䕼稷㡣䄴捺㈸畡穅㡼㜲捺㈸稹穼㡣䐳籅浔ㅅ椶眴敶穇偆䩓瑧䱍汗浡㙶呇橡䨲硧䅱畷晵嘹挵灷㘱湅儹据扚兑䥇娶䡪䅳婣伲浬獮䥳浱㑴砳前㉖塕䭐癗䉍䙍䑋煐䡯㉺癣瑪慼䕵穁㡣䥌䕴㡼〳捺㌸穂㡣籌䥌㡴捺㌸稹㍼捺㌸穂㡣畡籅㡣䈳捺䰸瑉䥌籴㡣䈳捺愸䕵稴㡼畡ㅅ捺䱼焷偢㡍睄捫敹穼㡣䌳捺㜸穁㡣㡼䥌㝴捺㜸瑼捺愸䕵稸䱼瑉稳㡣桼㝹核㝹栶㉹桂籹䥌㥴捺䰸㉼畡穅㡣簳㡣畡㝅籺〲捺㜸畡穅㡣㡼捺㌸稳㡣愳䕵籺䡮㌱礰䑣楓潇搹䵳払㍕瘳畵䩌䜰浯㥫獗㝳倱畱瑥扖摪㍲呙卡佭椰愵ず啘光䙱卂䙇穩匴㉰䥏佱呣㑌瑧奩䰷䩋䝤桲呗呹䜲癓䙲桅湰奌䥑牘硉䥍㌵䍨䍦湼汢㕢䑄噈愲䭒坼簴㈳捺愸籵㜴捺䰸瑉稸㡣䥼䕴捺䰸瑉畡穅穼㡣䈳牼灥籬㌸䕄捺㜸稳㡣䔲籺㜸穂㡣愷捼㌸稰㡣䈳捺簸㡣㠲捺㜸畡穅籣㤴票㜳籨㡣愲籵畧簸䰸瑉畡穅㡣㠲捺㉼畡穅㡣㈳捺㌸祼㌱桂桹楲桉㍼穂㡣䰷瑉捺䰸籉瑉稱㡣〷捺䰸瑉籡稹㡣䈷捺䰸瑉籌湢䝰浙び湍䭄搷䍈㑂穗桒米爱䑗摣穼㡣䥌䕴捺㈸䅼乍癭㡔畋㍲㙘歺呯䝮畼穅㡣㤲捺㌸穂穼㡣愳䕵捺㌸䥌穴穼㡣䥌䕴捺䰸瑉稴㑼㍩䱍乬汶䍼婲剚坲啓汵籰〷捺䰸籉祭噢穼㡣畡㝅捺簸煡㙘儱氲灵捱睇灼䱸㡼捺㌸䥌穴㡣ㄴ捺桼㝹核㝹栶㉹桂汼头捆䑏䕴慬睏琳㑔浒呵扂獼䥃䍙䵚剶䱏䙆㙏ぐ歭呴硕䡱㉼稸㡣〳捺㈸穃籣㡣㈷捺㈸稰㡣簷汴睕呵洸䙰佘汋版睸䝪娷扉ㅕ䥢䅍核㝈歬畑㙣び祇潲睋浨扈䡔䤳癴坎䥱兒㕩䝕灦㑢佖䑯㑤䙒䡧敹汼㍤晃晔㡼䰲瑉捺㌸簲啃湥浂剳余硐ㅷ硧啡ㅼ䑆䍏栳㜶摭歌戳硄稵健歵湧塍籱㜸稱㡣䥌䙴捺愸籵楲甲婊ㄴ㡃䵧㡼畡㍅捺䕼捺䰸瑉稷㡼䐳穅㡣㈷兼㙷簱博㝩倰発樹硰呧穢潢獔簵䉯䑹琷猶㉸穷何然焰䈱电浳瑤す偐籇䕱捼䰸瑉䥌㡼愷䕵捺㜸籌稸㡣䈳捺簸稷㡣䌲捺㈸㍼穃㡣㈳捺㌸畡籅㡣䥌㥴捺愸䕵睼ㄶ兼㝷簲䭹〸㡄湁䥙瑍籊䕵捺㈸稸籣䰸瑉稳㡣䐳穅籣婫剌敎晸睹楋ㄹ啡䅐䝮㑚煊橫䕡䉣瀵㝍ㅐ晁䉤䥦捃楇䕎祓䬱㙓䅨䱼瑉捺㐸稱㡣愳籵剃噁㙣愳畱塆㑋䬹䭙癫㍌㡼䈳捺䭼杹籉㡣㐴捺䰸瑉䕄捺簸䥸歪き䩪煎㔱体体坲佘湂樵桚敐䄸呆䥎户破䅢甸儶畐㍼䥌穴㡣ㄴ捺㌸㉼捺㈸慼䕵穂籣〷捺㌸穂㡣〲籺䰸瑉稸㡣䥌籴㉶畖䉁㝔䴳㘱浺婆㐶汯湸兊灑坬牊㥭畃歺呬牬牋刹䥶㝒兘砷愳歏㕈爵汶籊捺㜸䥌穴㡣䥌ㅴ籺㡣畡䅅捺簸㍴捺簸歌兺さ桬焸䭋䡥祶㙢伱㍁䭷煓佦湤渱剤祖摌䠱楷潌䵅娵獤䭭䙢簱瑉捺㈸稰畼ㅅ捺愸䕵簲穅㡣䰷瑉捺䰸瑉穼㡣䥌䙴㉼穂㡣䐳穅㡣畡穼㡣畡㡅捺㌸畡穅慼䕵捺䰸瑉穅㡣籌捺㈸畡穅㡣㜳捺簸捺愸䕵稸㡣㜳籺㡣畡㝅捺䰸瑉稷籣㌸䕄捺㜸稲㡣㐳籺㌸稲㡣畡䑅穅卼㡂癢奌䝪奢慒籡㑼㥅慐䅚䝒牲橇䜲祄捓杣㍺㕘㍸硭獉と䐹塩刲㥢䩧条簳捺䰸瑉稷㡣畼ㅅ捺䰸瑉稳捼㐸穁㍼穂㡣䰷瑉捺䰸坼畦䉔偆瑌楅浹朹兴晖䥕汍穂湪獔搳㈵礶歆攳捼䰸瑉稱㡣㈷捺簸瑉穆㡣畡䉅捺畼穅㡣畡䱅兼㡏㙷睵佇䉶㍥牔癔煤潁畈䝇㕶簳捺㌸籄㥵啌祹湐先桃㜱慺坓浩さ眹村㙖䙇摡剉歱㙑攳瑣噭䑔啓㉨癴啰瑯奏猴䠵瑺䡹䘹樷〶䙊灂穨剰㙔簶㡣䐳穅㡣㈷捼䰸瑉䥌穴㡣䥌籴畡籅㈷捺㈸籂䍈橓㍰㝸ㅎ位塅浨㙦睅ㅂ扫䩵潭䡤攲㡳䅡晕吲摦㉯䍴智硐奨楓坈籖獕湄兵㡯䡴㝺畈あ灺扴噘䬱䩳㍸䵚ㅮ橏慼䕵稸㡣簳稳㡣䥌籴䕵稸㡣奼㑋潱猵䩨桚眱㙳䉑兘唸摳匵稷椴畎佧㝼捺㐸穁㡣䕼捺㌸籄档牡潃敤瑁捼㌸䕄捺㌸稰㡣簲捺㈸稸祼籖瑉捺㌸穂㡣䥌㝴捼㜸䥌穴㡣㌴籺㡣䥌㝴捺㜸稱㡣籌穙橈改杬ㅗ椵吸兩䝫楸湉灓坏䭈慧䉵杗䵇㍦㝨汅䉴䙑䵭橃佪汓硘睂㐹牳䌷塙䡅䭂㥶䅗啥杤䝐兢㕯〵䙉㝯浦潩瑹䙦卙偵楆㝦畉䱅晼㥢㤵电剦㉍䐲㉔灱佐䭁穵潬歂䰴婸夲婩噭硋瘷氷慚捺瑼䕄捺䰸䵼橒䍌煰婪㝇牳㝹䤶䍏籣祋籧䝘捼䰸瑉穆㡣䐴杼桴啼祫䉒䙹全猵䅎祒瑎䝆籨畡穅㡣〷捺簸㌷捺㌸䕄捺㈸稷籣㡣㤲捺㜸穂㡣㉼穆㡣籌㈸稷㡣䥌䍴捺愸籵㜸稲㡣䥌㝼捺㈸穃㡣㜲捺㌸䕼捺䰸瑉䥌穴㡣啼䍮㍑㝈敶来䉰籔捺䰸瑉稳㡣䌳捺簸㡣䥌㥴捺簸㡣䥌慴䕼捺䰸瑉穅捼㜸穁㡣〳捺㌸稱捼㈸稰㡣䌷籺瑡猲䱷扑伵硙湔䝎桳㙪歇噔奣籩㡣㌷捺䰸瑉稳㡣籌捺㜸䥌穴㡣簴噹籫㡣㐷捺㈸稸㡣䥌䉼捺㈸汼湥瑧籨㌸穂㡣䰷瑉捺䰸䱼瑉稳瑼稷㡣䌲捺㈸稷㡣畼穅㡣㠷捺㐸籆愳䕵捺㐸㡼㐷捺㌸㍼穂㡣䥌㥴捺㌸籄㡣䈳捺㜸䕄捺捼㌸䕄捺㈸稸㡣捼㌸畡穅㡣籌捺㜸畡穅㡣䕼捺㌸稴䕼穂㡣䥌㝴捺祼㌴票䈳票䐴票栴䥼䕴捺䰸瑉籅杗籵睑㘶㍼稲㡣㤲捺㈸籌㡣㈷捺䰸瑉穆籣瑼稳㡣䥌瑼捺㈸稸㡣䰷兼㑷㙼栶㑹瑼穃㡣䥌ㅴ捼㐸稳籣捼㌸穂㡣䥌籴票䐳票畼穅㡣㠲捺㐸籃穅㡣簴捺䰸瑉稹㡣䥌䱴捼㌸穂㡣䰷瑉捺㡼䐴穅㍼稷㡣㠳捺㌸杼浵湥獴坼籄穂㡣籌捺㌸稴㡣䔲捺㜸籼㡅捺㌸稷㡣䰳瑉籺慣汬敥㡼㐷捺愸䕵穁籣䥌穴㡣畡㡅捺㌸籌䰸瑉籌稹㡣䈷捺䰸瑉稹㡼捺㜸稲㡣㐳捺簸瑉稳㡣㐷捺䕼捺㐸稱䱼瑉捺愸㡼㈷捺簸捼㜸稴㡣畡䅅捺㈸穼㡣㌷捺䰸籉㡣䘲捺簸䕵捺䰸籉䥌䍴捺䰸籉㜸䥌穴畼穅㡣䱼瑉䥌穴㡣畡籅穅㡣䈲捺簸䥌㝴捺愸䕵捼㈸稸㡣䰳籉愸䕵稷籣㉉㝩故㕩祄㡍簸䌳捺㜸䥌䥼䱴瑉捺愸䕵稸籣稹㡣簳䕄捺㜸稲捼㐸穃㡣愴籵穅㡣㈳捺㌸䱼瑉捺䰸籉㜸䥌穴籣瑉䥌穴㡣㠲捺㉼捺䰸瑉簷畡㑅捺愸䕵簷㈷捺㐸稳穼㡣䥌ㅴ捺䰸瑉穃慼䕵稴㡣畡䑅瑼䥌穴㡣㑼捺䰸瑉㡼㌳捺㐸稴䕼稸㡣簳䱼瑉稳㡣䥌慴䕵㑼捺㌸䕄捺㈸簷穅㡣䐳穅㡣〲捺簸稰㡣㈷捺㜸稲㡣簴䰸瑉畡穅㡣㠲捺簸〷捺簸捺㌸畡穅㡣愳㡼㌴捺晼湵瑣潩籮愸䕵稴㡣畡㝅籺㡣畡䉅捺䰸瑉稷籣㌸䕄捺簸㈷捺䰸瑉稷籣捺㈸稸㡣䘲捺簸㈸穆㡣䥌籴㙹栴㙹框㍹籂㝴捺㜸籼䕄捺愸䕵簴㍅捺㜸稴㡣㈷籺畡㝅捺㐸籁捺㈸穂㡣㤲捺㜸籂瑼稹㡣㤲捺㌸籂ㅴ捺㜸稰籣畡慅籵稲㡣䥌籴样㑹根㍹桄㍹栴穼籁畡䉅捺㐸㑼穁㡣畡ぅ穼㡣畡籅稰㡣畡ㅅ捺捼䰸瑉䥌穴㡣簷䍴捺㈸瑼穆㡣䥌䑴穅䕼捺㌸稷㡣愳䕵捺穼㡣䔲籺稳㡣㈴捺㈸稷㡣簳捺㐸穁㡣愲畼ㅅ捺䰸瑉稳㡣㡼䔲捺䰸籉捺㈸稸㡣㈷捺簸㍹桨㙹栶穼㡣䰴瑉捺㌸稲㡣㡼㐷捺㈸稰㡣䐳籼䰸瑉稳㡣䈳捺㑼捺愸䕵籡稱㡣䥌籴䰷瑉捺䰸籉㡣㌳捺簸㡣㐴捺䰸籉捺㐸稲㡼〲捺䰸瑉稸㡣䐳䥼穴㡣㌴捺穼㡣䥌㝴籺瑉稷㡣䐳穅穼㡣䥌䱴籉捺㈸穅㡣䥌㡼䰴瑉捺㌸稲㡣籡㡣䰳瑉捺㌸稹䕼捺㜸畡穅㡣䥌籴㌸䕄捺㌸稰㡣簳橮㍒㕒簳捺䰸瑉稹㡣籌潗㕱汬晅牍兄㝯祐娷㡼䥌㉴捺簸㡣㐷捺䑼籅栰㕧籹穅㡣㜲捺㈸稹㡼票䈲票爷穼㡣䐳穅㡣䥌㝴捺穼㡣䥌㝴捺㜸稱䥼㑴捺䰸籼䥌䕴捺簸稲㡣䥌慴㉼稹㡣䈳捺㜸䥌楼桉桹根㉼穅㡣籌䕵䕄捺㌸穂㡣㈷慼䕵捺㌸䥌穴䱼瑉稷㡣䈲籺呅捼䰸瑉穃㡣䥌籴稲㡣䐳穅㡣䥌ㅴ㍼捺㜸稴籣㜸稲㡣㠲捺䰸瑉籌ㅴ捺䰸籉㡣䥌㝴捺㜸稴㡣瑼穆㡣䕼稴㡣畡籅䅅捺㈸捼㜸䥌籴ㅴ捺䰸瑉灼楮䝅牅捴ㅰ䱓㑋先ㄹ簲慴䕵捺㈸穅籣电㈳乚獱畢䝸坏䈲䍔湐儷湡游瑺䩑摱唲䡄楙灙摯煆䉆慬卬牴塵界㙶牏她歏桹偷㝭㥵畷灮䭃穕卹䙌杊䱵㥤ㅎ籡䕵稷㡣䈲捺簸捺䰸瑉稲籣浥眱籖慢䉓汪㝧灭䌰坩扤䥵䝖塹睋噒久卶䵉瑁呂煢㉔睓䜸塱汨啺买印汖獒籈〲捺㜸稲籣䐳票㜲票㌳票瑼䥌穴㡣畡籼穴㡣䥌䱴坼簲㍴捺䰸瑉籡稱㡣㈷捺㐸㡼䥌䑴穅籣㙤手䅒㝅獹䥤牰卷唹婯敼汰捡籥敲汰捡䥼䕴捺䰸瑉簳ㅨ打䅑瘸㑍㙗㙭煆㡪湉杚㙪楮䑓晱牊捤㡼愷䕵㍼捺㜸籡䥌㍴捺㝼稲㡣〲捺䥼䍴捺䰸穼㡣䥌㝴捺㜸稱㡣坼坈穼㡣䥌㥴籺㈸稰㡣㤷籺穃㡣〲捺愸䕵稳捼愸䕵稴㡣畡䝼䱭兤煕䉗克䐳瑆慬橕㥺潭坥䨸籉㡣䥌䙴捺䰸ㅼ捺㜸稴㡣㠲捺簸㡅捺㌸畡穅㡣簳捺㈸畡穅㡣捼愸䕵簷㡣䐳穅㡣畡㍅捺灼慬散㥼捺㌸穂㡣䐷穼㡣䥌ㅴ啼䥯㡼捺㜸畡穅㡣籌䥌㡼䥌㥴捺䰸瑉籆㡣㠲籺㡣䈲捺㈸穂㡣簲䉅捺愸䕵稴㡣穼㡣䄴捺㐸穂㡣㡼㈷捺䰸瑉瑼䕄捺㌸䕄捼愸䕵稸㡣䰳慼䕵捺䰸籉㡣畡ㅅ捺㑼稷㡣㠴捺㐸簹畡㝅捺䰸瑉稷ㅼ捺䰸瑉簳穴㡣㠲捺㜸稲㡣簳㡣㈳捺穼㡣〷捺穼㡣䔳捺㌸穅㡼愲䕵捺㌸簲穅㡣䥌䍴籺䕍獢乡䴷塆婤㕒敷㑁偖扤䙥獏桹兲獋睇㝕吵汋塳坖兇婋敲䱌䉪䡭浤噰㝮䝤然㍪橮昵癘牕刲䕼捺㌸畡穅籣捺䰸瑉䥌穴㑼捺䰸籉䉂䥼穴㡣䥌㡴捺䙼兗啎捼㈸穂㡣㤲捺㝼䕄捺㌸籂捺㜸稲慼䕵稹㡣畡捼㐸稷㡣䈴捺㌸稷祼䈳票㘷票栶籹㌸稲㡣簲捺㐸畡穅㝼捺㈸畡穼㡣㐴捺簸㐸畡穅㡣䥌䙴捺簸睑畧簰捺㌸穂㡣畡㍅籺瑉畡穅㡣䥌籴䥌ㅴ捺㌸㝼根㙹㑼穃㡣䐴籅潴籕桂㝹栶㙹票㜱栲捼㜸畡穅㡣䥌捼㐸稴㡣籌䉴䩅摂灩㌹籷穅㡣ㄴ捺㜸簴ㅹ䐳票牨䥩䙼捺㜸稲㡣㠲捺愸㉼稷㡣㤲捺簸稳㡣䥌䍴捺㌸䕄籺救ㅩ㘸椲㐵籥㜸稲籣佶㥑杫湒呴捖湮㡃㡨塱䝱畍敒慸塳畘䄱杷獵瑊浰汒䡢䱢籮䐳穅㡣〳籺晨猰歭䕁䭅穼㡣㈷捺㈸稰穼剣獉浸橌湵籺䕄捺㌸穂㡣䰷瑉籺㡢歂䩹兪䥵敵摪圴兩栵䭸噡獢䵤㍥吲祤慨慼浐䙡㌴浣䅔捍瀴䅧㉕橚㝣䈷䥷䵭䑭煋䩈䉈䵯䑪㍏獉硢牌䑄䡅㑇汙䅹坊㡥䩃㥫䑁䐵捂䥹杘獧䩲癎䕣浦爲汮䩉發䭺剁湅扏奫㉳㡓䉬愶搲籄䵮佲祤兴灗樹佴奂乳穼㡣ㄳ捺愸䕵稴籣灋兵焵䱼瑉穃㡣䥌ㅴ橼浒根楺眵晎搳汮䠰䡥㑈㝑䡏华㥳䘹㡲朸䭙煲浯兵六䕧䝋潡㙯湮剱䥼䤹睘慙慡畼攲坎䩼畕㝶畱汕硉䩐煏䅷楉畴浔晓汮㉦瀶剡祑硃浏呰潂湡歑䙦㘳洰䕏捤㡄么噬洸が睂㝼捺㜸稱㡼畡㑅捺㌸扼偗桂祘塴祭硢籒捺䰸瑉穆㡣㈷楼确婱塰偷籕㤸㘹簳朵佅潸㜹㡼䥌㝴㡼睚晗㥧汳穦獖乊睪塉噃㡉捡䡁据䵄籅䅰㕵湬䱌䝗穯焰桧㙤娱捼㌸畡穅㡣畡㑅籺㡣䰴瑉捺簸剙䙈卸穡硪此灉䍨㕮䩳桬扆夳硷灗湅㑯㕹焵獶㑍乁爷䨳嘱畹穮㘳䅥㡺捶共䑉婺楦牵㙩穩桍兤げ噥椸桤佯䉏硩獗籄䅆硩歙焹䅲煃灴稹奆獖摮び䥃祗慵呴㍇慂吷倱灸乮浏浒测䵡㜴灤硎瑃䉵奦啥潓但䅘㉙硁䝌婗獙䱢䱼瑉稸㡣䥌ㅴ捺簸㈸穃籣捺㌸䕄捺㈸稷㡣㍼硍䙂㍨潘〴牕㙼㉴卹呥䕒㡷噳䱙湺䕉㐶癤敼扆奏畊剏啩杌䍰䝷㑕捺啖䨲歺噍啔䱺㑆奖䙴做灯捶敂乪䵣敢簵㕃㙂㙳杕ㅥ伶橘浸奵佨䉍剅瑼䥌穴㡣㈷捺䰸籉畊硈籗瑉捺愸䕵稸籣䩸䩃㐶䜴噰婡歱呤䅕买㕺乫ㅩ䭫歍㉉穌睫籉畡䑅穅㡣䐳穅籣㌸穂㡣䐷穅啼煬噏敶佪䱭ㅼ楚䄴㝂慖㘲瑄䩦䉔楍浣ㅂ睕低噉㕧㑂牥慨䍡䝥畋坲䐷㝡㑵橔确䑉欳䝏煬ㅗㅗ敳䥪癡割穅䜸晷㑏獥敖桘䙤挰䉧捃㑁㙩穪䵗扚畋䴳潼䍭慨䍲摯籥瑉畡穅㡣㠲捺愸籼穆㡣䥌㡼㌳捺㐸稴㡣䥌慼牆橤㕗坕㜱娴㉹㥷䌱䕷塇䑙桤潩ぉ䩹楚嘱䍆栳べ穈㍣眶㍼畡穅㡣㈴捺䩼瑉慮汵䥪乔㡅桑婈捼㌸䥌籴慴䕵捺㜸稰㡣䥌䍼か礳摊穼㡣㠲捺㜸稲㡣簲奊捼㜸稴㡣䥌㥴捺䩼䍶湰簸㐸穁㡣愲䕵捺㌸籌啢伶祁䰴䩍歂灒籰穅㡣簲䵔籃穂㡣䰴籉捺㌸䥌穴㡣ㄴ籺䥌穴㡣䰳籉㌸稷㡣ㄳ捺䰸瑉祼爲䥩票䈴票捼愸䕵穂㡣籡㡣愳䕵捺㜸摼琴䕌㥭ㄶ㙯獄ば籯稴㡣㐳捺㈸穂桼䤱睘㉹䘸㙺唹㕇破桄䵅䡷噂瑗䑙籷䍴捺䰸籉䰷瑉捺䰸瑉稱㡣呼に䜸桄晡㔷籐㡣䌲捺㈸簰㈸穆㡣㈴捺簸䥌䙴捺愸䕵穂㡣捼㐸䥌穴㑼兤籚㤲捺㜸穂䙼歩䵴摥㥬䙔嘲偆牺圷乭嘹䡁塅噧㔴䑲婃祧どき籐㈳捺愸䕵稴㡣籡䱕〰娹湩䍹田䍗晨浐籍捺愸䕵穂㡣愷䕵慼䕵稸㡣䰳汼ㅎ奴刱慳䩭䝶㌹㍒慢祒昰海㕨兄獲灉湎湴佃䱐噣焲䅨㕨い瑶坓楸礸剹佰奇䱁礲晎㉺䉗硍䙙㝼捺㐸穁㡣愲䕵發楏併敋㕳潂爰止桁吸敶乨䍱ㅶ偏硵畴䉩捼㌸䕄捺㜸㡼愲䕵捺簸稷㡣䄴捺㈸畡穅捼㌸穂㡣㈷捺簸穐獳籆穅㡣䔲捺䰸籼南偔ぃ睔杕ㅷ普倲䠲晍䥫晹䩅啭䴴歈癌煤洴噳㕇䄱唳嘶稰䅑砸卯扃牐潒㌸灨瑭䉐歶㈹䵅䅥癁䝎㙴䡵摣䥇㝁楃啱硃杆乤愴歘批摤㉌瑸䩍偦砸祷摅䝖奭㑕偍睸數䍍䕎㉬教䙳䕄䅇歄吳灥杬剉㡒㝪硋籼㐸䥌穴㡣畼ㅅ捺䡼眲㍼捺䰸瑉畡籅婘灣㕘割畵捄䕣摴㑚乆㑩籥䥌㝴捺簸ぐ畼穅㡣㈷捺簸捐捶番氵籥地啩祫畡㙘佡汖噍䥊剙㡖桌扣倵剚ㅡ䭓楗畆剱䅐博簴䥌㝴捺㈸籅㑭㡚䐶硒卲䅔塓晬兗奨杄㑄呍㝍䌷䱑才楬㡥畘橡い㝷煸婨䝙䅫㍷噐䕊扃湯穅ㅫㅢ䝕㑊戵䐵坡獬戸汙卥牙乎㉰䙳穈猱䥍籼㐸穁籣稸㡣㜲捺捼䰸瑉稱籣䡙䍌氹汭捼㜸䕄捺㌸穂捼䰸瑉穆㡣畡㉼捺愸䕵稷偼硬䡐晭偫㕷䍈睖煑䝋䙵噹氲楓卑爱払䔸杮浭籦㑴畭婔楓籁稹㡣㤲捺㜸㉼捺愸䕵稳㡣愷籵䝚呡䉓啢瀵獆㍗敮噹摊㉭吵獸䰳敌呣材䝋畸䐱㍊婲眴塮䅷簴㡣㠲捺㈸卼猲剬籎瑥䱬籒㐸稱㡣㈴瑼湑㝷䙵奘簶敉洵㡼愲䕵捺㌸䥌穴穼䅩临㉐㡢啐剷祗吹睲䭵䅷㙙籹牁籲の刱ㅹ倷灼数䍲獡籥湼睥杼硏䔳畈䡆娱䉑㕴㉅灋䅼瑓㡲籫㔰偳䩳䥼䕴捺䰸瑉稳噼卄㙐捓儱桩祋䌹䝮偙䤴㙭畚䙨㍂䩢坢剐祖䅳楹ㄵぃ䕍䍋瑐愱偨捼㜸稲籣畡穅㡣䰳坼ㅬ桅晔䍷橷噚瑤倹ㅷ慘獗㉅礸畂䩒偄乇祆慚慁ㅏ呉湫㥈摥籭稷㡣䄴捺㈸㡼䥌䱴瑉捺灼摙籯楰睊創杈噘捼㈸䥌穴㡣硼婚煘ㅒ婎典䱣硴换䈰㡍煹偵㉉兗爹橣噕䑲桤南㝎托䭶䅷㜸晼㙭摄煪䅕ㅹ䝊㉲潺㝅䙳啸硹簴䰸瑉穆㡣籌瑉捺㜸稰㡣簷㡣䥌䱴瑉籺䵦籗㥓㡲婼坤ぅ杹灢䩃䭏啖湷㍮簲㐸䥌穴㡣㈳捺簸䉤㡥䍔䱨㑧佔稲慢穴兑㝓楩㍰䙧佴朷穬䵲䥭ㅡ㝏䵅啢煸䕰留硏摶㍬偎潖楍兖牉硫籰䥳灙䅓籸㉴捺㜸稳捼睏䉏李籺捺㐸畡穅㡣䥌䙴杼浍坆䍼捲煐灚㌷灒籘偏噗癁卪捐稷慁㝊噳祬祁婥㜰䙤爲㡄昳塼㑙䑱卍浦䌷ㄸ硉䍣剑䬶佼奶䅋坑籰ㅹ灁〰䅧桺敆睄湵啔簱䝭硷丹㐶䅲ㅲ偣煣坆㕥䑹䘷慈㤰橃偋瀲敼啬㑑摤㙉摰橪硇䝒婐䝺偣䡔刷〴桎獨籒䡷䜲畢ㅡ䙲灣硲呂圸䴲煄乁畄簲漷䅘䕉佣湪癴奓獣ㅰ祲佁瀹祃晩煆䱐㌴求䅤䥐敖瘳䱬䘲䱆楂煫䡕坶橉䠴㡴䑇㕍托剢㠰睃湺䉥䴴䡮刵乏㈷夳兣䝧㍶畴歂晵煫㈵睸敬䩅敊㡸籆灄剬䔵丵卯㕋䑹籦湚䕢䭊䙷癈㉙さ桍乖ㅡ兰䱏䱢煲扂䕼焰䉁ば獄㉑眸㍌婆歕灔䩉橈歨㑒坫䅙婎䙲㥃䡶堰噒椵湣栱晨桳䵃䩮䱸䝥兙戴䕐癤穇晼潂楦潷癔㍄坁啨㙸㕬扎楥块婃潨䍢歙刵愲牧㍕䍵䉧稵䡈晌㝮煈㌵䥂㥂䝱洷案兇晱样籑摹䍭䙧歑䥊摒儸剳䥇坨煨瑅䩡㡁䍃祤歅當䰴䱖㙮ㄶ刵䱙昴灏ㅴ䝨偹時桌煹獫䭤籪奒籤䅵桏䈲呶䝔畵㍭卖牃䡙ぅ坬獍㙃䅮橍灭䩗䵑乚桋湯瑡ざ奏䝓伲电兂籼塹琴礲䙋坫杖䅍發夲歸佥籕ㄷ捺䰸瑉穆剼籎捺㌸畡穅籣䔷䕫剹牁ㅡ器㝗䕲剒䑃癙捼㈸畡穅㡣㐴籺㌸稳㡣㐳捺簸瑉穅㡣䥌䙴捺㜸簰倲娸㍗敄穦猸㑫䤹㉬䑶䅼䑈朲䥄收㑐籗佶䙊䨹䍉档歼昵䥄㝰歕瑘焱氰㥫䤷㥼版橬䉵㥱佬䝎䈰瀸歸坙䝘㌰扢㤹甴癇朷籮瀶杗扌䕙捼㈸稷㡣㤲捺㈸稹兼䑍杭䭅佶楮啺全敆䡷獕㍼稲㡣愳籵慸䐶つ噷稰浮瑬橂湋の䱉浒慢畧剺佧䘷䑊敦歡瑋噎睗〱療收晙乣㡣㕚䵪㥰畴扡㄰汵䡍啇㍨㡗〹橘坒穗籈捺簸敲㑼䥌穴㡣㈳捺簸愳䕵捺㐸稴㡣㍼畡穅㡣䰳瑉捺簸摁桮㙬樲婌癹漸㉋婶摕汮㈸煂浗獪㡘扩楧畯祮呋䭳㑊䐰砶伲㡯橓瀰眳䩑癧瀱睮唶畼敮捳灡籥噶䥥㥥朷摭楷硯䡹瘳噷特䔰潭偡佋佌籃㡣䥌㉴捺愸䕵稷䝼卧婡ぁ併䱢啖祷楚捩塖婸坘啱䡡䨶㐹䩘籕䍎慘䑦䅹敄户畉ㅸ兺手噗㙢祚籫敁捼愸䕵稴籼捡籥䅅捺䰸瑉稱㡣塼佶慒㍡㉢汗籂㍼捺䰸瑉畡穅㡣簲灼㥧坵䉨漸䕆䱒䡱穭椹硣塕䉷㑏䝬㥺䡺䘲渵㡕㡌㥂兼牴剱塚ㅸ湚㑊汅䙼䵦晳晢䱼瑉稹㡣䐳籅穴㡣ㄴ㡼䥌䕴捺䰸瑉稳籣㡣愲䕵捺簸楣㜹穗桎杺晊䐵㉭㘳䥇㉯㝢䵕㑳䈸䉒呋剳砹睔嘸䝵祭剺潘浳籩䭉ㅙ呼扅湄㍺潇㡌癎㕲爷㝌啁㉪牉〶啉摂䉅啣祌ㅐ㜵䑸䡦瑼游佐刵慼䕵捺㈸穆㡣䥌籴㍴捺㌸䕄捺愸䕵㡼畡䑅穅㡣䐳噼㕂畍卸摶唳儷桶䩲灌晪ㄶ㡏半摷䱑㑳渳潋歗㑚兆䨵癘堹瑼穃㡣䥌慴籵籼䰸瑉穆㡣䥌䕴籺湩洰橎楦䉊硤㘵婑摄然獆㡔㥌ひ畗框牊㑇䡮娱摈䕒㥰电佥扨剒湫兡塈祗刲籮䥌㥴捺簸灗倰㍶い汏樰䄷癲偤橍塄䉁䱂㕸扡獗硉换摶婬䕍奩歆䭧穇癴䙶剡湑籷塳㡢汐祒籈䙂籓䅷籅㕤䙗㙃䉪䘰籸捺㈸稸㡣䘲䍼片䥼慴䕵捺㜸䥌坼簹湼潏呂䕷簵捐搲㉧ㄴ䱥㡓晄牗樲浂儲啳灐佴㉗䡨橖㝁浬剘䝈睊乼灖䡘䉵坣ㅵ祌䉄呲䩘簶樶敕䩹㡎䘲䭭塋䕼㍔䕼捺㈸穂㡣䥌㥴㡼䥌㡴籺㡣䥌䱴瑉捺愸籵楍㐸摵栱桊剣晋㍊䱇㑶㔳穔䑪煈琳䉅乏啌䍷籧牴籧匵㙁じ癘㝼䥌穴㡣䥌籴㡣㤲捺簸䕕畄改乫浪䙒䥰剁洷㡙䝅穄䉏祈㍼捺㌸䥌㡼〲捺塼䵑㉦娴癈㡥䍍潴扇䅚籓奋簱共渹甹牦敚兎穫䈰佑硲䉯䉺ㅐ礷打瑴海噲啸灩慌䕓晐湱慦潣䍴武瑨䑪瘹䩸她䔳䵡ㅡ倰䅚䱺䥈假ㅈ㑏䑑灄佹畈㈵汨䭧䩆祇睪捁捌啂䕐乓䤳㉸呙䭕䱺㝍䱗っ䱅䉴坤卓ぅ䡩煢济摙椰杖偕啭創㠸塧潕䉲㜱佸㈲汏睙㉨䥈佱匴浕杧は猸㕰㉰㍣洴桧䰵瑁灌癮塨偙挶㔹汗睳籆穴㡣㈳捺㌸䕄捺簸稹㡣㜲捺㈸稹㡣簲㑵昶扐晘扉㑱慒吱瑳汫摮硂慳䥑䥬佨浦睚䥼䍴捺䰸瑉畡䙼捺愸䕵稰㡣籡䑎灶䥦㉆偁䝬捴穼㡣ㄷ捺䰸瑉穆㡣䡼汴㡫䕘ㅂㅯ特甴䌰䕲㝩㥋煳桪捉戴㥏ㅕ偘籲㉹样㍹佼灅䥢穴爴穉摎㙧䍹㑥穘䙙䝧卒決䌵捊畧㡈睍㝐㝰ㅼ捺䰸瑉籆捺愸䕵穂㡣䰴瑉籼䕁㕯橂㑯畼㝅捺㈸稹㡣㤲捺㉼捺㜸簲杹籉丸杘焵儱奏䍉潖扖瘱畂畦材坒䬵升桌㉋㜷乕歁㥩牺乓兲㥌楄䙩桥䌸㡣堷啣偨䐴潒慖䝕噐久摫嘸籼㜸畡穅㡣畡籅㡣畡䅅籺摩奂㠱䔸䱁㡗ざ㕺佈杈㝲㑐慙煣煒汗䕔䩅橄癍景塵卶ぉ摪㙶䙤睵坧睵畼穅㡣䥌䕴捺㡼䥌ㅴ捺䰸籉ㅥ爵䅄睡ぴ㝹㝎男瘰䱂䑇欹瘸㡨潖倴㙊睘塖偦畦剱䴹昸㥩籄ㅈ橕楑摪㑳㥈汖摤唷捤瀳扚䙥楦牐䬵摧奋桹ㅓ桘丰祓奄浊乕圴䭤䉸㍆㑚牴䌲杼剄穂浐儶晊䴰扌祶米敬籮偄籆戰㘳㍓䤹㑤䕗䩔牣佔獐摋半扰籐㈸穆㡣䥌䱴籉㍼捺㌸䕄捺㜸噼䕬晚畲摥割䥐橌䑎䙺䜳䡦䥲共奨䕩婆㙤䭼䝰䭵智䥏慺䄲煎瑔畓瑂奺㥄牨䵷塈之㙪何慕呈佬歋㙅䍑䠶捦䉐煨乚噌噋䱍䝋硑兴畁噮䱇稴橳湑牊㠹男欱硷扣渲奣㙕䄰䄸汋刷煘㌸㙒坵ㅏ桘摙䉋硆畢䝄偅晁乘灑晗㥣朲䍂瀵㡊硴佥䨱琸塃湰硳啍偏削癔捼㌸稹㡣䐳穅籣捺㈸稷㡣䥼票栳煼浧䉴獚瑃噺婔夶㙭渳潭渵牸䱹煉慗楗偗䨱剩籴䑅穅㡣䈲捺簸捺䰸瑉稴㡣䥌慴籵㡣㐷捺㜸稲㡣㍼䕄捺㈸稸㡣䭼㙮䨵漱祋硑摢摙唷㍑㡼㈷捺㈸稰㡣愷籵䰷瑉捺㐸稳㡣䥌浼歫び乂剳佯刵㡣獃栳噺㉈佃祦䱘䍂硩決欱噲䭚䕊牄煆湱奋㍯塲噣湦猳啰㍳畭栲㕨伲㝚䱗籭畡穅㡣㈴籺㡣畡䉅捺簸扑捁㘰㑪剹歉ㅉ㍶癮煵㉪䥥が䭩瑨浲䬳䑱佗㝨䐶癐慐摎䅧㍚䉔卹癱䝚呔䑙味㡬湱㑰䱁㈴捧偙攷穔籃慴䕵捺簸㡬き睚坮汫塂籔嘹歬婉獸摗畐㑣歒畖位䕵㙮祲䥌瑲㑴堶穘浚免瑄㑨㝮䐵敋晒䉯兔焴爰㙒硎㡆牮牼䥩㉼捺㐸簳㡣㤲籺稴㡣䔲捺㜸稳㡼䌲捺㈸稷籣㡶㘲奴牄湖杕坳簶㡣㈷捺㈸稰㡣䄷杼味䥺湲䝄䭎䥶䕂㥨礰瘳剰㕩䅱啼湫噴䱅ㄹ偬䡢呌䡑晚籷㡣䥌㥴䥼ㅴ捺婼全兢汓䱫晱㑕乫㡼ㄷ捺䰸瑉穆穼㡣愷㑼捺䰸捼愸䕵稴㡣簳捺愸䕵稸籣捺㈸稹㡣䈳摼穨㉍䱂䍐畉䝌栶欱㥤㡵䕨畋䑚祱塎橇㍫塺䍬湤䕈硯湃䭲牸吶獇晤歸偒扙稳卋籈捺㌸稲㡣畡扼䅐籯奼摭剭慦伲㘲䍶硣䡬睐卺乂佉卺䙆䵡䘴䡪籹䕵稴籣捺㐸籁塑乫㡲䕼捺㌸䕄捺簸㡣䥌㥴捺㡼愷䕵捺䰸瑉穅籣楚䭙䑼睆ㄴ愸灘㥂桅籵ㅫ䩉渰浴䭳㙼潂坢杦睔倷煅䨰汤䉺敶片籺㡣畡㑅捺簸㡣畡㝅捺簸䰸瑉稸㡣䥌卼籑㡣䈳捺愸䕵簱奐㉷䬸婅䵕灦乑㘲稰㕁硘獏䱙䱼求㌶㑘桵琲祯汲楄歵癖畇㍸㉒歈洵㐴噃浙佃奈䉉剓剶畄㕮獫摖䤷䱼瑉稷㡣䈳捺㜸畼㡅捺㌸畡䙼牗灥䅬堶楸ぢ猶㝋獮临慼䕵稱㡣䥌籴䭡儳歊汭獇䡮煄佘㙨䑕灷祭契灗欷呡㙉ㅣ眹䍩婤㉒籉㝺杈救歯礷湨䉂㤰敯㉺乊㕄桲橧祙㝫䡓睒扐琵䅊㙡潎㈴婨䱼瑉稸籣穋籊䥌穴㡣畡籅癏䵂奅䥵啨敁㥌桊穤湤浇祔䉖浇楱畍晴汵稱䬸䠱灢䙉㕳癎敂潪汧界癢晡㉫湍䕶汬浙癘唴礲浉㘰䭺煖杋䅒摗摢瑼稲㡣㌷捺㜸稴籣獐摣浺橃丰潈晡歡䠱䱯䤶癤睔汇䵃佉穆噫硺簲呼簰欴圱㉢歘唰㝐瑬くㅄ圵籙䉤倰籂捺㜸稰㡣䥌籴煎久丵䍲杸癪灼啙䭷扯䥇睅牃ぉ慵㙐晡䑉奨㍖籙䉱䵂佂摓㡣䉇堹䅃杩卤桁䉢䨰汃呰敥偬番ㅼ捺䰸瑉稳㡣愲籵湙䡒䉩晌摁㙚睖㝼稷㡣㠷捺㜸稹䱼瑉稸䡼杪兼眴偄汖啣晉牡允煂瑒伷䱮㉓晋啇䨸典丸䍥灋煔䱍ㄲ䵭呌瘱䱙杦牂䩈㍨卨㑘䱐橒橣㡵籉㈸稷籣慼䕵捺䰸瑉穅籣捺㌸稰㡣䉼捺㈸稰籣㡴捺㌸穂㡣籼稷㡣㤲捺㈸穅㡣簷杘呵䝃䑷獣噓捯瑃䡰汊䌶籩㐴捺愸䕵簴瑉稷㡣簲癔佰故剼睂睮椸晪㑔ㅅ戹䕑剦㍱㙬䕗〰穯䕃ㅭ歑䥍䅁け噁湉癱楥䍴琱䑴䅵啍坲㙥籒㡣䥌慴䕵籺畍砶癬告睥啷䴳ㅃ䈳䩉穼㡣䰷瑉捺㐸稳籣地桅奪偹敨圷呐楆籨空湕睙潧䑸ㅼ礹歭㍼栶㍹栴㍹票㌱楲㡼㐷捺㜸簲䍢㝋桥㙙穄䍪敹噤呴收书䩘捶硪祔假硶䩣㍣牂㍅癘破㙧㙅㑂䠰浆畭穅塒婷穼㡣䔴捺㐸㉼稹㡣䝼乱㙮䱪ㅅㅵ䨸祓牑慳乯湗呰汇敶塖呴䥡㍑㕈癔呅呣癬坸夲唷㥏睉坯杇㜳割あ牕數㈱杪楖朷桳䥡㐷㔰奋䝯㥷杔䙰桂楴㙢䜲匴剣籺稷㡣䈳捺䰸瑉䑼獮歉眷䨷桹婣睆灬汼杲牚倵䅨䝴䩢湔潪㝭敐䍃牼硳呮㑲㡙䱔睮歵瑵䙈睧㡆䑧䝲歪夵㠴畐㡇其ㅓ䱋手橳䡋䠳䕕眶㉈潂偃㡼䥌䅴捺䰸瑉䕼捺㈸稸㡣畡㍅啼䑸䑸㈵求㡨扣潆䥋杚䌷橳決噑浦偕㑈卲䉶坲䠳啵獗䩣䡆䱃㍋啄牬䭣䕶䘶婏塏挵稷杔呫䵄䑣䵥乪奼䭚歭爴敵か獢偮畼㝅捺㐸穁啼楱䐳坮㕥倴㕸䭒硸佉穧砸歂䍩灌穭䑧啧汩籔㑹核㍹籄瀱兪㉋䙬湪䭶癉㍼䕄捺䱼瑉穅㡣䥌發婵佸䵫啤湒呈癈䩤捆乹杌䱭䡮䩲䵒䈰圱䵃䱼瑉捺㌸稲籣捺㌸稲㡣畡䑅穅牼湓杉㑍卲㉑瑬副ㅪぷば橓䕑啘夲㉫嘳睮敳扈奆㙢䑪奤桚晃䵎㕊䍼捺㈸稷穼㡣䥌慴䕵籺浘婍捼㐸穁㡣愲䕵籺畡穅㡣䰷瑉㕼䍮噪伶塷籬䈳捺愸䕵稴㡣ㅼ捺㜸稲㡣㌴捺呼煋硌堷敐㥫㘹椸乼浕籙捺瑼穅㡣䥌㍴捺㈸㍼兗䅼灵桙偓䅕䩨籯噵穵湆由㡭ㅭ嘸契其昰ぁ䩃摢捲摷䉕㑕䴲㙋此汔坯欸䑍䑰捶剶焴稰䝓汄楷㕈头啡摂楰煃䩎籣稹㡣畡䕅捺愸䕵兼㉷簰桙瑵䭶㕗噤李奣楤唱䕚㠲坩䩷晓摕乚坂坬䥩䅒乂硧䕄䥗穰樱瀲瑁䑥卡べ䑈潶硆嘴睩䩷䝯睉㝙㉧歏丳樶簱票栳票祼慷ぁ止浐㈹䡨䱼瑉穆籣㡪㍸嘹䭑䔷汉剓畢噃噖浮䥧䑉塮䕼捺㌸稰㡣㡼畡㑅捺愸㑼稲㡣簲䌴捺㐸穆㥼楪牔戳㝂捖牴牴潂煬䕬簱捒乌攷牡噎祋䙳で癖婳㉪睺㜴游乆祓朸䜹楊歑䙈㙧㥰牒橆㙶癴橯䝔乺灔扫㌸夰琷䡯堷歱睁乲噏䙙吸奁煓䥰敗䡣吲ㅆ㡁㥓お奨唸止㕖䵴癑䙘伷獒䅷樹㌵穴晼潲䍭慨籲㍹桨㍹栶㍹楲桉兼啶當噑娹橷啃桎睏ど嘳牱牪煡桬噵歮㡗偐匷䩬㥃㥖畱湇䥯㕩潱收畊湯佋戲剷湥湅摣穁䡢婃坥奆癗ㅦ䬲挱橖牷䡪䉰湖湤穂灊簳潼灯㕸摅癩祤㜲䍖䄹睍癯穎畧ㅊ摒籧㤲捺㌸籂瑉捺㜸簰㤲捺㌸穂㡣畼浤穇䘲救欱㕏穮㕐㙚䡷湫祂籏〳捺簸穼㡣〳捺㌸穂籣穂㡣䐳穅兼㡱㙂䕹䠲樷穣䍰籦㥈䥰塮噙㍷橷啊瑵㙆祘穹浨乌癖吱湳㉤猷噦猴䅃䅭㉉坙畨䡸婱捥䍫杢晓㕸㍉捔䝒乊㉸㍲䱬戸䑩䑒䜰ㄵ煓卄〸捑呢噰睙䱂䈱㡈兓穼㡣䥌㝴捺㜸稱籣啒䭥晄刵籸㌴捺䰸瑉穆㡣籌瑉穆㡣䐴穅㡣䔲籺扷籪瑉捺䰸瑉穆㡣㈷睼䭷䑌兵㡌䅵塓捔慐剦潓㕙さ灵祙じ偒䝨爱䩓籄㑼䥌穴㡣䥌䱴㡼〷捺㜸稲㡣䥼ㅴ捺㜸㥼捺㈸穂呼晄䑭祱煙牒䅴㉃瑩祏獣卦杋䥃䥘卬晄䕫䙺獯㥼捺㐸籼籼䐳穅㡣簴㡴捺㌸稹㡣籡䥌穴籣捺㐸稴㡣䥌䑴穅杼浧娰睺头噈獊硇晉武坈晖住䩦籂䥌䕴捺㈸稰㡣㈷籺睄㑎籢穅㡣䈳❺献汰瑩✨❼Ⱙⰰ絻⤩ਊ