/*
Script: Core.js
	MooTools - My Object Oriented JavaScript Tools.

License:
	MIT-style license.

Copyright:
	Copyright (c) 2006-2008 [Valerio Proietti](http://mad4milk.net/).

Code & Documentation:
	[The MooTools production team](http://mootools.net/developers/).

Inspiration:
	- Class implementation inspired by [Base.js](http://dean.edwards.name/weblog/2006/03/base/) Copyright (c) 2006 Dean Edwards, [GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)
	- Some functionality inspired by [Prototype.js](http://prototypejs.org) Copyright (c) 2005-2007 Sam Stephenson, [MIT License](http://opensource.org/licenses/mit-license.php)
*/

var MooTools = {
	'version': '1.2.3',
	'build': '4980aa0fb74d2f6eb80bcd9f5b8e1fd6fbb8f607'
};

var Native = function(options){
	options = options || {};
	var name = options.name;
	var legacy = options.legacy;
	var protect = options.protect;
	var methods = options.implement;
	var generics = options.generics;
	var initialize = options.initialize;
	var afterImplement = options.afterImplement || function(){};
	var object = initialize || legacy;
	generics = generics !== false;

	object.constructor = Native;
	object.$family = {name: 'native'};
	if (legacy && initialize) object.prototype = legacy.prototype;
	object.prototype.constructor = object;

	if (name){
		var family = name.toLowerCase();
		object.prototype.$family = {name: family};
		Native.typize(object, family);
	}

	var add = function(obj, name, method, force){
		if (!protect || force || !obj.prototype[name]) obj.prototype[name] = method;
		if (generics) Native.genericize(obj, name, protect);
		afterImplement.call(obj, name, method);
		return obj;
	};

	object.alias = function(a1, a2, a3){
		if (typeof a1 == 'string'){
			var pa1 = this.prototype[a1];
			if ((a1 = pa1)) return add(this, a2, a1, a3);
		}
		for (var a in a1) this.alias(a, a1[a], a2);
		return this;
	};

	object.implement = function(a1, a2, a3){
		if (typeof a1 == 'string') return add(this, a1, a2, a3);
		for (var p in a1) add(this, p, a1[p], a2);
		return this;
	};

	if (methods) object.implement(methods);

	return object;
};

Native.genericize = function(object, property, check){
	if ((!check || !object[property]) && typeof object.prototype[property] == 'function') object[property] = function(){
		var args = Array.prototype.slice.call(arguments);
		return object.prototype[property].apply(args.shift(), args);
	};
};

Native.implement = function(objects, properties){
	for (var i = 0, l = objects.length; i < l; i++) objects[i].implement(properties);
};

Native.typize = function(object, family){
	if (!object.type) object.type = function(item){
		return ($type(item) === family);
	};
};

(function(){
	var natives = {'Array': Array, 'Date': Date, 'Function': Function, 'Number': Number, 'RegExp': RegExp, 'String': String};
	for (var n in natives) new Native({name: n, initialize: natives[n], protect: true});

	var types = {'boolean': Boolean, 'native': Native, 'object': Object};
	for (var t in types) Native.typize(types[t], t);

	var generics = {
		'Array': ["concat", "indexOf", "join", "lastIndexOf", "pop", "push", "reverse", "shift", "slice", "sort", "splice", "toString", "unshift", "valueOf"],
		'String': ["charAt", "charCodeAt", "concat", "indexOf", "lastIndexOf", "match", "replace", "search", "slice", "split", "substr", "substring", "toLowerCase", "toUpperCase", "valueOf"]
	};
	for (var g in generics){
		for (var i = generics[g].length; i--;) Native.genericize(natives[g], generics[g][i], true);
	}
})();

var Hash = new Native({

	name: 'Hash',

	initialize: function(object){
		if ($type(object) == 'hash') object = $unlink(object.getClean());
		for (var key in object) this[key] = object[key];
		return this;
	}

});

Hash.implement({

	forEach: function(fn, bind){
		for (var key in this){
			if (this.hasOwnProperty(key)) fn.call(bind, this[key], key, this);
		}
	},

	getClean: function(){
		var clean = {};
		for (var key in this){
			if (this.hasOwnProperty(key)) clean[key] = this[key];
		}
		return clean;
	},

	getLength: function(){
		var length = 0;
		for (var key in this){
			if (this.hasOwnProperty(key)) length++;
		}
		return length;
	}

});

Hash.alias('forEach', 'each');

Array.implement({

	forEach: function(fn, bind){
		for (var i = 0, l = this.length; i < l; i++) fn.call(bind, this[i], i, this);
	}

});

Array.alias('forEach', 'each');

function $A(iterable){
	if (iterable.item){
		var l = iterable.length, array = new Array(l);
		while (l--) array[l] = iterable[l];
		return array;
	}
	return Array.prototype.slice.call(iterable);
};

function $arguments(i){
	return function(){
		return arguments[i];
	};
};

function $chk(obj){
	return !!(obj || obj === 0);
};

function $clear(timer){
	clearTimeout(timer);
	clearInterval(timer);
	return null;
};

function $defined(obj){
	return (obj != undefined);
};

function $each(iterable, fn, bind){
	var type = $type(iterable);
	((type == 'arguments' || type == 'collection' || type == 'array') ? Array : Hash).each(iterable, fn, bind);
};

function $empty(){};

function $extend(original, extended){
	for (var key in (extended || {})) original[key] = extended[key];
	return original;
};

function $H(object){
	return new Hash(object);
};

function $lambda(value){
	return ($type(value) == 'function') ? value : function(){
		return value;
	};
};

function $merge(){
	var args = Array.slice(arguments);
	args.unshift({});
	return $mixin.apply(null, args);
};

function $mixin(mix){
	for (var i = 1, l = arguments.length; i < l; i++){
		var object = arguments[i];
		if ($type(object) != 'object') continue;
		for (var key in object){
			var op = object[key], mp = mix[key];
			mix[key] = (mp && $type(op) == 'object' && $type(mp) == 'object') ? $mixin(mp, op) : $unlink(op);
		}
	}
	return mix;
};

function $pick(){
	for (var i = 0, l = arguments.length; i < l; i++){
		if (arguments[i] != undefined) return arguments[i];
	}
	return null;
};

function $random(min, max){
	return Math.floor(Math.random() * (max - min + 1) + min);
};

function $splat(obj){
	var type = $type(obj);
	return (type) ? ((type != 'array' && type != 'arguments') ? [obj] : obj) : [];
};

var $time = Date.now || function(){
	return +new Date;
};

function $try(){
	for (var i = 0, l = arguments.length; i < l; i++){
		try {
			return arguments[i]();
		} catch(e){}
	}
	return null;
};

function $type(obj){
	if (obj == undefined) return false;
	if (obj.$family) return (obj.$family.name == 'number' && !isFinite(obj)) ? false : obj.$family.name;
	if (obj.nodeName){
		switch (obj.nodeType){
			case 1: return 'element';
			case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : 'whitespace';
		}
	} else if (typeof obj.length == 'number'){
		if (obj.callee) return 'arguments';
		else if (obj.item) return 'collection';
	}
	return typeof obj;
};

function $unlink(object){
	var unlinked;
	switch ($type(object)){
		case 'object':
			unlinked = {};
			for (var p in object) unlinked[p] = $unlink(object[p]);
		break;
		case 'hash':
			unlinked = new Hash(object);
		break;
		case 'array':
			unlinked = [];
			for (var i = 0, l = object.length; i < l; i++) unlinked[i] = $unlink(object[i]);
		break;
		default: return object;
	}
	return unlinked;
};


/*
Script: Browser.js
	The Browser Core. Contains Browser initialization, Window and Document, and the Browser Hash.

License:
	MIT-style license.
*/

var Browser = $merge({

	Engine: {name: 'unknown', version: 0},

	Platform: {name: (window.orientation != undefined) ? 'ipod' : (navigator.platform.match(/mac|win|linux/i) || ['other'])[0].toLowerCase()},

	Features: {xpath: !!(document.evaluate), air: !!(window.runtime), query: !!(document.querySelector)},

	Plugins: {},

	Engines: {

		presto: function(){
			return (!window.opera) ? false : ((arguments.callee.caller) ? 960 : ((document.getElementsByClassName) ? 950 : 925));
		},

		trident: function(){
			return (!window.ActiveXObject) ? false : ((window.XMLHttpRequest) ? 5 : 4);
		},

		webkit: function(){
			return (navigator.taintEnabled) ? false : ((Browser.Features.xpath) ? ((Browser.Features.query) ? 525 : 420) : 419);
		},

		gecko: function(){
			return (document.getBoxObjectFor == undefined) ? false : ((document.getElementsByClassName) ? 19 : 18);
		}

	}

}, Browser || {});

Browser.Platform[Browser.Platform.name] = true;

Browser.detect = function(){

	for (var engine in this.Engines){
		var version = this.Engines[engine]();
		if (version){
			this.Engine = {name: engine, version: version};
			this.Engine[engine] = this.Engine[engine + version] = true;
			break;
		}
	}

	return {name: engine, version: version};

};

Browser.detect();

Browser.Request = function(){
	return $try(function(){
		return new XMLHttpRequest();
	}, function(){
		return new ActiveXObject('MSXML2.XMLHTTP');
	});
};

Browser.Features.xhr = !!(Browser.Request());

Browser.Plugins.Flash = (function(){
	var version = ($try(function(){
		return navigator.plugins['Shockwave Flash'].description;
	}, function(){
		return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version');
	}) || '0 r0').match(/\d+/g);
	return {version: parseInt(version[0] || 0 + '.' + version[1], 10) || 0, build: parseInt(version[2], 10) || 0};
})();

function $exec(text){
	if (!text) return text;
	if (window.execScript){
		window.execScript(text);
	} else {
		var script = document.createElement('script');
		script.setAttribute('type', 'text/javascript');
		script[(Browser.Engine.webkit && Browser.Engine.version < 420) ? 'innerText' : 'text'] = text;
		document.head.appendChild(script);
		document.head.removeChild(script);
	}
	return text;
};

Native.UID = 1;

var $uid = (Browser.Engine.trident) ? function(item){
	return (item.uid || (item.uid = [Native.UID++]))[0];
} : function(item){
	return item.uid || (item.uid = Native.UID++);
};

var Window = new Native({

	name: 'Window',

	legacy: (Browser.Engine.trident) ? null: window.Window,

	initialize: function(win){
		$uid(win);
		if (!win.Element){
			win.Element = $empty;
			if (Browser.Engine.webkit) win.document.createElement("iframe"); //fixes safari 2
			win.Element.prototype = (Browser.Engine.webkit) ? window["[[DOMElement.prototype]]"] : {};
		}
		win.document.window = win;
		return $extend(win, Window.Prototype);
	},

	afterImplement: function(property, value){
		window[property] = Window.Prototype[property] = value;
	}

});

Window.Prototype = {$family: {name: 'window'}};

new Window(window);

var Document = new Native({

	name: 'Document',

	legacy: (Browser.Engine.trident) ? null: window.Document,

	initialize: function(doc){
		$uid(doc);
		doc.head = doc.getElementsByTagName('head')[0];
		doc.html = doc.getElementsByTagName('html')[0];
		if (Browser.Engine.trident && Browser.Engine.version <= 4) $try(function(){
			doc.execCommand("BackgroundImageCache", false, true);
		});
		if (Browser.Engine.trident) doc.window.attachEvent('onunload', function() {
			doc.window.detachEvent('onunload', arguments.callee);
			doc.head = doc.html = doc.window = null;
		});
		return $extend(doc, Document.Prototype);
	},

	afterImplement: function(property, value){
		document[property] = Document.Prototype[property] = value;
	}

});

Document.Prototype = {$family: {name: 'document'}};

new Document(document);


/*
Script: Array.js
	Contains Array Prototypes like each, contains, and erase.

License:
	MIT-style license.
*/

Array.implement({

	every: function(fn, bind){
		for (var i = 0, l = this.length; i < l; i++){
			if (!fn.call(bind, this[i], i, this)) return false;
		}
		return true;
	},

	filter: function(fn, bind){
		var results = [];
		for (var i = 0, l = this.length; i < l; i++){
			if (fn.call(bind, this[i], i, this)) results.push(this[i]);
		}
		return results;
	},

	clean: function() {
		return this.filter($defined);
	},

	indexOf: function(item, from){
		var len = this.length;
		for (var i = (from < 0) ? Math.max(0, len + from) : from || 0; i < len; i++){
			if (this[i] === item) return i;
		}
		return -1;
	},

	map: function(fn, bind){
		var results = [];
		for (var i = 0, l = this.length; i < l; i++) results[i] = fn.call(bind, this[i], i, this);
		return results;
	},

	some: function(fn, bind){
		for (var i = 0, l = this.length; i < l; i++){
			if (fn.call(bind, this[i], i, this)) return true;
		}
		return false;
	},

	associate: function(keys){
		var obj = {}, length = Math.min(this.length, keys.length);
		for (var i = 0; i < length; i++) obj[keys[i]] = this[i];
		return obj;
	},

	link: function(object){
		var result = {};
		for (var i = 0, l = this.length; i < l; i++){
			for (var key in object){
				if (object[key](this[i])){
					result[key] = this[i];
					delete object[key];
					break;
				}
			}
		}
		return result;
	},

	contains: function(item, from){
		return this.indexOf(item, from) != -1;
	},

	extend: function(array){
		for (var i = 0, j = array.length; i < j; i++) this.push(array[i]);
		return this;
	},

	getLast: function(){
		return (this.length) ? this[this.length - 1] : null;
	},

	getRandom: function(){
		return (this.length) ? this[$random(0, this.length - 1)] : null;
	},

	include: function(item){
		if (!this.contains(item)) this.push(item);
		return this;
	},

	combine: function(array){
		for (var i = 0, l = array.length; i < l; i++) this.include(array[i]);
		return this;
	},

	erase: function(item){
		for (var i = this.length; i--; i){
			if (this[i] === item) this.splice(i, 1);
		}
		return this;
	},

	empty: function(){
		this.length = 0;
		return this;
	},

	flatten: function(){
		var array = [];
		for (var i = 0, l = this.length; i < l; i++){
			var type = $type(this[i]);
			if (!type) continue;
			array = array.concat((type == 'array' || type == 'collection' || type == 'arguments') ? Array.flatten(this[i]) : this[i]);
		}
		return array;
	},

	hexToRgb: function(array){
		if (this.length != 3) return null;
		var rgb = this.map(function(value){
			if (value.length == 1) value += value;
			return value.toInt(16);
		});
		return (array) ? rgb : 'rgb(' + rgb + ')';
	},

	rgbToHex: function(array){
		if (this.length < 3) return null;
		if (this.length == 4 && this[3] == 0 && !array) return 'transparent';
		var hex = [];
		for (var i = 0; i < 3; i++){
			var bit = (this[i] - 0).toString(16);
			hex.push((bit.length == 1) ? '0' + bit : bit);
		}
		return (array) ? hex : '#' + hex.join('');
	}

});


/*
Script: Function.js
	Contains Function Prototypes like create, bind, pass, and delay.

License:
	MIT-style license.
*/

Function.implement({

	extend: function(properties){
		for (var property in properties) this[property] = properties[property];
		return this;
	},

	create: function(options){
		var self = this;
		options = options || {};
		return function(event){
			var args = options.arguments;
			args = (args != undefined) ? $splat(args) : Array.slice(arguments, (options.event) ? 1 : 0);
			if (options.event) args = [event || window.event].extend(args);
			var returns = function(){
				return self.apply(options.bind || null, args);
			};
			if (options.delay) return setTimeout(returns, options.delay);
			if (options.periodical) return setInterval(returns, options.periodical);
			if (options.attempt) return $try(returns);
			return returns();
		};
	},

	run: function(args, bind){
		return this.apply(bind, $splat(args));
	},

	pass: function(args, bind){
		return this.create({bind: bind, arguments: args});
	},

	bind: function(bind, args){
		return this.create({bind: bind, arguments: args});
	},

	bindWithEvent: function(bind, args){
		return this.create({bind: bind, arguments: args, event: true});
	},

	attempt: function(args, bind){
		return this.create({bind: bind, arguments: args, attempt: true})();
	},

	delay: function(delay, bind, args){
		return this.create({bind: bind, arguments: args, delay: delay})();
	},

	periodical: function(periodical, bind, args){
		return this.create({bind: bind, arguments: args, periodical: periodical})();
	}

});


/*
Script: Number.js
	Contains Number Prototypes like limit, round, times, and ceil.

License:
	MIT-style license.
*/

Number.implement({

	limit: function(min, max){
		return Math.min(max, Math.max(min, this));
	},

	round: function(precision){
		precision = Math.pow(10, precision || 0);
		return Math.round(this * precision) / precision;
	},

	times: function(fn, bind){
		for (var i = 0; i < this; i++) fn.call(bind, i, this);
	},

	toFloat: function(){
		return parseFloat(this);
	},

	toInt: function(base){
		return parseInt(this, base || 10);
	}

});

Number.alias('times', 'each');

(function(math){
	var methods = {};
	math.each(function(name){
		if (!Number[name]) methods[name] = function(){
			return Math[name].apply(null, [this].concat($A(arguments)));
		};
	});
	Number.implement(methods);
})(['abs', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'exp', 'floor', 'log', 'max', 'min', 'pow', 'sin', 'sqrt', 'tan']);


/*
Script: String.js
	Contains String Prototypes like camelCase, capitalize, test, and toInt.

License:
	MIT-style license.
*/

String.implement({

	test: function(regex, params){
		return ((typeof regex == 'string') ? new RegExp(regex, params) : regex).test(this);
	},

	contains: function(string, separator){
		return (separator) ? (separator + this + separator).indexOf(separator + string + separator) > -1 : this.indexOf(string) > -1;
	},

	trim: function(){
		return this.replace(/^\s+|\s+$/g, '');
	},

	clean: function(){
		return this.replace(/\s+/g, ' ').trim();
	},

	camelCase: function(){
		return this.replace(/-\D/g, function(match){
			return match.charAt(1).toUpperCase();
		});
	},

	hyphenate: function(){
		return this.replace(/[A-Z]/g, function(match){
			return ('-' + match.charAt(0).toLowerCase());
		});
	},

	capitalize: function(){
		return this.replace(/\b[a-z]/g, function(match){
			return match.toUpperCase();
		});
	},

	escapeRegExp: function(){
		return this.replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1');
	},

	toInt: function(base){
		return parseInt(this, base || 10);
	},

	toFloat: function(){
		return parseFloat(this);
	},

	hexToRgb: function(array){
		var hex = this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);
		return (hex) ? hex.slice(1).hexToRgb(array) : null;
	},

	rgbToHex: function(array){
		var rgb = this.match(/\d{1,3}/g);
		return (rgb) ? rgb.rgbToHex(array) : null;
	},

	stripScripts: function(option){
		var scripts = '';
		var text = this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
			scripts += arguments[1] + '\n';
			return '';
		});
		if (option === true) $exec(scripts);
		else if ($type(option) == 'function') option(scripts, text);
		return text;
	},

	substitute: function(object, regexp){
		return this.replace(regexp || (/\\?\{([^{}]+)\}/g), function(match, name){
			if (match.charAt(0) == '\\') return match.slice(1);
			return (object[name] != undefined) ? object[name] : '';
		});
	}

});


/*
Script: Hash.js
	Contains Hash Prototypes. Provides a means for overcoming the JavaScript practical impossibility of extending native Objects.

License:
	MIT-style license.
*/

Hash.implement({

	has: Object.prototype.hasOwnProperty,

	keyOf: function(value){
		for (var key in this){
			if (this.hasOwnProperty(key) && this[key] === value) return key;
		}
		return null;
	},

	hasValue: function(value){
		return (Hash.keyOf(this, value) !== null);
	},

	extend: function(properties){
		Hash.each(properties || {}, function(value, key){
			Hash.set(this, key, value);
		}, this);
		return this;
	},

	combine: function(properties){
		Hash.each(properties || {}, function(value, key){
			Hash.include(this, key, value);
		}, this);
		return this;
	},

	erase: function(key){
		if (this.hasOwnProperty(key)) delete this[key];
		return this;
	},

	get: function(key){
		return (this.hasOwnProperty(key)) ? this[key] : null;
	},

	set: function(key, value){
		if (!this[key] || this.hasOwnProperty(key)) this[key] = value;
		return this;
	},

	empty: function(){
		Hash.each(this, function(value, key){
			delete this[key];
		}, this);
		return this;
	},

	include: function(key, value){
		if (this[key] == undefined) this[key] = value;
		return this;
	},

	map: function(fn, bind){
		var results = new Hash;
		Hash.each(this, function(value, key){
			results.set(key, fn.call(bind, value, key, this));
		}, this);
		return results;
	},

	filter: function(fn, bind){
		var results = new Hash;
		Hash.each(this, function(value, key){
			if (fn.call(bind, value, key, this)) results.set(key, value);
		}, this);
		return results;
	},

	every: function(fn, bind){
		for (var key in this){
			if (this.hasOwnProperty(key) && !fn.call(bind, this[key], key)) return false;
		}
		return true;
	},

	some: function(fn, bind){
		for (var key in this){
			if (this.hasOwnProperty(key) && fn.call(bind, this[key], key)) return true;
		}
		return false;
	},

	getKeys: function(){
		var keys = [];
		Hash.each(this, function(value, key){
			keys.push(key);
		});
		return keys;
	},

	getValues: function(){
		var values = [];
		Hash.each(this, function(value){
			values.push(value);
		});
		return values;
	},

	toQueryString: function(base){
		var queryString = [];
		Hash.each(this, function(value, key){
			if (base) key = base + '[' + key + ']';
			var result;
			switch ($type(value)){
				case 'object': result = Hash.toQueryString(value, key); break;
				case 'array':
					var qs = {};
					value.each(function(val, i){
						qs[i] = val;
					});
					result = Hash.toQueryString(qs, key);
				break;
				default: result = key + '=' + encodeURIComponent(value);
			}
			if (value != undefined) queryString.push(result);
		});

		return queryString.join('&');
	}

});

Hash.alias({keyOf: 'indexOf', hasValue: 'contains'});


/*
Script: Event.js
	Contains the Event Native, to make the event object completely crossbrowser.

License:
	MIT-style license.
*/

var Event = new Native({

	name: 'Event',

	initialize: function(event, win){
		win = win || window;
		var doc = win.document;
		event = event || win.event;
		if (event.$extended) return event;
		this.$extended = true;
		var type = event.type;
		var target = event.target || event.srcElement;
		while (target && target.nodeType == 3) target = target.parentNode;

		if (type.test(/key/)){
			var code = event.which || event.keyCode;
			var key = Event.Keys.keyOf(code);
			if (type == 'keydown'){
				var fKey = code - 111;
				if (fKey > 0 && fKey < 13) key = 'f' + fKey;
			}
			key = key || String.fromCharCode(code).toLowerCase();
		} else if (type.match(/(click|mouse|menu)/i)){
			doc = (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;
			var page = {
				x: event.pageX || event.clientX + doc.scrollLeft,
				y: event.pageY || event.clientY + doc.scrollTop
			};
			var client = {
				x: (event.pageX) ? event.pageX - win.pageXOffset : event.clientX,
				y: (event.pageY) ? event.pageY - win.pageYOffset : event.clientY
			};
			if (type.match(/DOMMouseScroll|mousewheel/)){
				var wheel = (event.wheelDelta) ? event.wheelDelta / 120 : -(event.detail || 0) / 3;
			}
			var rightClick = (event.which == 3) || (event.button == 2);
			var related = null;
			if (type.match(/over|out/)){
				switch (type){
					case 'mouseover': related = event.relatedTarget || event.fromElement; break;
					case 'mouseout': related = event.relatedTarget || event.toElement;
				}
				if (!(function(){
					while (related && related.nodeType == 3) related = related.parentNode;
					return true;
				}).create({attempt: Browser.Engine.gecko})()) related = false;
			}
		}

		return $extend(this, {
			event: event,
			type: type,

			page: page,
			client: client,
			rightClick: rightClick,

			wheel: wheel,

			relatedTarget: related,
			target: target,

			code: code,
			key: key,

			shift: event.shiftKey,
			control: event.ctrlKey,
			alt: event.altKey,
			meta: event.metaKey
		});
	}

});

Event.Keys = new Hash({
	'enter': 13,
	'up': 38,
	'down': 40,
	'left': 37,
	'right': 39,
	'esc': 27,
	'space': 32,
	'backspace': 8,
	'tab': 9,
	'delete': 46
});

Event.implement({

	stop: function(){
		return this.stopPropagation().preventDefault();
	},

	stopPropagation: function(){
		if (this.event.stopPropagation) this.event.stopPropagation();
		else this.event.cancelBubble = true;
		return this;
	},

	preventDefault: function(){
		if (this.event.preventDefault) this.event.preventDefault();
		else this.event.returnValue = false;
		return this;
	}

});


/*
Script: Class.js
	Contains the Class Function for easily creating, extending, and implementing reusable Classes.

License:
	MIT-style license.
*/

function Class(params){

	if (params instanceof Function) params = {initialize: params};

	var newClass = function(){
		Object.reset(this);
		if (newClass._prototyping) return this;
		this._current = $empty;
		var value = (this.initialize) ? this.initialize.apply(this, arguments) : this;
		delete this._current; delete this.caller;
		return value;
	}.extend(this);

	newClass.implement(params);

	newClass.constructor = Class;
	newClass.prototype.constructor = newClass;

	return newClass;

};

Function.prototype.protect = function(){
	this._protected = true;
	return this;
};

Object.reset = function(object, key){

	if (key == null){
		for (var p in object) Object.reset(object, p);
		return object;
	}

	delete object[key];

	switch ($type(object[key])){
		case 'object':
			var F = function(){};
			F.prototype = object[key];
			var i = new F;
			object[key] = Object.reset(i);
		break;
		case 'array': object[key] = $unlink(object[key]); break;
	}

	return object;

};

new Native({name: 'Class', initialize: Class}).extend({

	instantiate: function(F){
		F._prototyping = true;
		var proto = new F;
		delete F._prototyping;
		return proto;
	},

	wrap: function(self, key, method){
		if (method._origin) method = method._origin;

		return function(){
			if (method._protected && this._current == null) throw new Error('The method "' + key + '" cannot be called.');
			var caller = this.caller, current = this._current;
			this.caller = current; this._current = arguments.callee;
			var result = method.apply(this, arguments);
			this._current = current; this.caller = caller;
			return result;
		}.extend({_owner: self, _origin: method, _name: key});

	}

});

Class.implement({

	implement: function(key, value){

		if ($type(key) == 'object'){
			for (var p in key) this.implement(p, key[p]);
			return this;
		}

		var mutator = Class.Mutators[key];

		if (mutator){
			value = mutator.call(this, value);
			if (value == null) return this;
		}

		var proto = this.prototype;

		switch ($type(value)){

			case 'function':
				if (value._hidden) return this;
				proto[key] = Class.wrap(this, key, value);
			break;

			case 'object':
				var previous = proto[key];
				if ($type(previous) == 'object') $mixin(previous, value);
				else proto[key] = $unlink(value);
			break;

			case 'array':
				proto[key] = $unlink(value);
			break;

			default: proto[key] = value;

		}

		return this;

	}

});

Class.Mutators = {

	Extends: function(parent){

		this.parent = parent;
		this.prototype = Class.instantiate(parent);

		this.implement('parent', function(){
			var name = this.caller._name, previous = this.caller._owner.parent.prototype[name];
			if (!previous) throw new Error('The method "' + name + '" has no parent.');
			return previous.apply(this, arguments);
		}.protect());

	},

	Implements: function(items){
		$splat(items).each(function(item){
			if (item instanceof Function) item = Class.instantiate(item);
			this.implement(item);
		}, this);

	}

};


/*
Script: Class.Extras.js
	Contains Utility Classes that can be implemented into your own Classes to ease the execution of many common tasks.

License:
	MIT-style license.
*/

var Chain = new Class({

	$chain: [],

	chain: function(){
		this.$chain.extend(Array.flatten(arguments));
		return this;
	},

	callChain: function(){
		return (this.$chain.length) ? this.$chain.shift().apply(this, arguments) : false;
	},

	clearChain: function(){
		this.$chain.empty();
		return this;
	}

});

var Events = new Class({

	$events: {},

	addEvent: function(type, fn, internal){
		type = Events.removeOn(type);
		if (fn != $empty){
			this.$events[type] = this.$events[type] || [];
			this.$events[type].include(fn);
			if (internal) fn.internal = true;
		}
		return this;
	},

	addEvents: function(events){
		for (var type in events) this.addEvent(type, events[type]);
		return this;
	},

	fireEvent: function(type, args, delay){
		type = Events.removeOn(type);
		if (!this.$events || !this.$events[type]) return this;
		this.$events[type].each(function(fn){
			fn.create({'bind': this, 'delay': delay, 'arguments': args})();
		}, this);
		return this;
	},

	removeEvent: function(type, fn){
		type = Events.removeOn(type);
		if (!this.$events[type]) return this;
		if (!fn.internal) this.$events[type].erase(fn);
		return this;
	},

	removeEvents: function(events){
		var type;
		if ($type(events) == 'object'){
			for (type in events) this.removeEvent(type, events[type]);
			return this;
		}
		if (events) events = Events.removeOn(events);
		for (type in this.$events){
			if (events && events != type) continue;
			var fns = this.$events[type];
			for (var i = fns.length; i--; i) this.removeEvent(type, fns[i]);
		}
		return this;
	}

});

Events.removeOn = function(string){
	return string.replace(/^on([A-Z])/, function(full, first) {
		return first.toLowerCase();
	});
};

var Options = new Class({

	setOptions: function(){
		this.options = $merge.run([this.options].extend(arguments));
		if (!this.addEvent) return this;
		for (var option in this.options){
			if ($type(this.options[option]) != 'function' || !(/^on[A-Z]/).test(option)) continue;
			this.addEvent(option, this.options[option]);
			delete this.options[option];
		}
		return this;
	}

});


/*
Script: Element.js
	One of the most important items in MooTools. Contains the dollar function, the dollars function, and an handful of cross-browser,
	time-saver methods to let you easily work with HTML Elements.

License:
	MIT-style license.
*/

var Element = new Native({

	name: 'Element',

	legacy: window.Element,

	initialize: function(tag, props){
		var konstructor = Element.Constructors.get(tag);
		if (konstructor) return konstructor(props);
		if (typeof tag == 'string') return document.newElement(tag, props);
		return document.id(tag).set(props);
	},

	afterImplement: function(key, value){
		Element.Prototype[key] = value;
		if (Array[key]) return;
		Elements.implement(key, function(){
			var items = [], elements = true;
			for (var i = 0, j = this.length; i < j; i++){
				var returns = this[i][key].apply(this[i], arguments);
				items.push(returns);
				if (elements) elements = ($type(returns) == 'element');
			}
			return (elements) ? new Elements(items) : items;
		});
	}

});

Element.Prototype = {$family: {name: 'element'}};

Element.Constructors = new Hash;

var IFrame = new Native({

	name: 'IFrame',

	generics: false,

	initialize: function(){
		var params = Array.link(arguments, {properties: Object.type, iframe: $defined});
		var props = params.properties || {};
		var iframe = document.id(params.iframe);
		var onload = props.onload || $empty;
		delete props.onload;
		props.id = props.name = $pick(props.id, props.name, iframe ? (iframe.id || iframe.name) : 'IFrame_' + $time());
		iframe = new Element(iframe || 'iframe', props);
		var onFrameLoad = function(){
			var host = $try(function(){
				return iframe.contentWindow.location.host;
			});
			if (!host || host == window.location.host){
				var win = new Window(iframe.contentWindow);
				new Document(iframe.contentWindow.document);
				$extend(win.Element.prototype, Element.Prototype);
			}
			onload.call(iframe.contentWindow, iframe.contentWindow.document);
		};
		var contentWindow = $try(function(){
			return iframe.contentWindow;
		});
		((contentWindow && contentWindow.document.body) || window.frames[props.id]) ? onFrameLoad() : iframe.addListener('load', onFrameLoad);
		return iframe;
	}

});

var Elements = new Native({

	initialize: function(elements, options){
		options = $extend({ddup: true, cash: true}, options);
		elements = elements || [];
		if (options.ddup || options.cash){
			var uniques = {}, returned = [];
			for (var i = 0, l = elements.length; i < l; i++){
				var el = document.id(elements[i], !options.cash);
				if (options.ddup){
					if (uniques[el.uid]) continue;
					uniques[el.uid] = true;
				}
				returned.push(el);
			}
			elements = returned;
		}
		return (options.cash) ? $extend(elements, this) : elements;
	}

});

Elements.implement({

	filter: function(filter, bind){
		if (!filter) return this;
		return new Elements(Array.filter(this, (typeof filter == 'string') ? function(item){
			return item.match(filter);
		} : filter, bind));
	}

});

Document.implement({

	newElement: function(tag, props){
		if (Browser.Engine.trident && props){
			['name', 'type', 'checked'].each(function(attribute){
				if (!props[attribute]) return;
				tag += ' ' + attribute + '="' + props[attribute] + '"';
				if (attribute != 'checked') delete props[attribute];
			});
			tag = '<' + tag + '>';
		}
		return document.id(this.createElement(tag)).set(props);
	},

	newTextNode: function(text){
		return this.createTextNode(text);
	},

	getDocument: function(){
		return this;
	},

	getWindow: function(){
		return this.window;
	},

	id: (function(){

		var types = {

			string: function(id, nocash, doc){
				id = doc.getElementById(id);
				return (id) ? types.element(id, nocash) : null;
			},

			element: function(el, nocash){
				$uid(el);
				if (!nocash && !el.$family && !(/^object|embed$/i).test(el.tagName)){
					var proto = Element.Prototype;
					for (var p in proto) el[p] = proto[p];
				};
				return el;
			},

			object: function(obj, nocash, doc){
				if (obj.toElement) return types.element(obj.toElement(doc), nocash);
				return null;
			}

		};

		types.textnode = types.whitespace = types.window = types.document = $arguments(0);

		return function(el, nocash, doc){
			if (el && el.$family && el.uid) return el;
			var type = $type(el);
			return (types[type]) ? types[type](el, nocash, doc || document) : null;
		};

	})()

});

if (window.$ == null) Window.implement({
	$: function(el, nc){
		return document.id(el, nc, this.document);
	}
});

Window.implement({

	$$: function(selector){
		if (arguments.length == 1 && typeof selector == 'string') return this.document.getElements(selector);
		var elements = [];
		var args = Array.flatten(arguments);
		for (var i = 0, l = args.length; i < l; i++){
			var item = args[i];
			switch ($type(item)){
				case 'element': elements.push(item); break;
				case 'string': elements.extend(this.document.getElements(item, true));
			}
		}
		return new Elements(elements);
	},

	getDocument: function(){
		return this.document;
	},

	getWindow: function(){
		return this;
	}

});

Native.implement([Element, Document], {

	getElement: function(selector, nocash){
		return document.id(this.getElements(selector, true)[0] || null, nocash);
	},

	getElements: function(tags, nocash){
		tags = tags.split(',');
		var elements = [];
		var ddup = (tags.length > 1);
		tags.each(function(tag){
			var partial = this.getElementsByTagName(tag.trim());
			(ddup) ? elements.extend(partial) : elements = partial;
		}, this);
		return new Elements(elements, {ddup: ddup, cash: !nocash});
	}

});

(function(){

var collected = {}, storage = {};
var props = {input: 'checked', option: 'selected', textarea: (Browser.Engine.webkit && Browser.Engine.version < 420) ? 'innerHTML' : 'value'};

var get = function(uid){
	return (storage[uid] || (storage[uid] = {}));
};

var clean = function(item, retain){
	if (!item) return;
	var uid = item.uid;
	if (Browser.Engine.trident){
		if (item.clearAttributes){
			var clone = retain && item.cloneNode(false);
			item.clearAttributes();
			if (clone) item.mergeAttributes(clone);
		} else if (item.removeEvents){
			item.removeEvents();
		}
		if ((/object/i).test(item.tagName)){
			for (var p in item){
				if (typeof item[p] == 'function') item[p] = $empty;
			}
			Element.dispose(item);
		}
	}
	if (!uid) return;
	collected[uid] = storage[uid] = null;
};

var purge = function(){
	Hash.each(collected, clean);
	if (Browser.Engine.trident) $A(document.getElementsByTagName('object')).each(clean);
	if (window.CollectGarbage) CollectGarbage();
	collected = storage = null;
};

var walk = function(element, walk, start, match, all, nocash){
	var el = element[start || walk];
	var elements = [];
	while (el){
		if (el.nodeType == 1 && (!match || Element.match(el, match))){
			if (!all) return document.id(el, nocash);
			elements.push(el);
		}
		el = el[walk];
	}
	return (all) ? new Elements(elements, {ddup: false, cash: !nocash}) : null;
};

var attributes = {
	'html': 'innerHTML',
	'class': 'className',
	'for': 'htmlFor',
	'defaultValue': 'defaultValue',
	'text': (Browser.Engine.trident || (Browser.Engine.webkit && Browser.Engine.version < 420)) ? 'innerText' : 'textContent'
};
var bools = ['compact', 'nowrap', 'ismap', 'declare', 'noshade', 'checked', 'disabled', 'readonly', 'multiple', 'selected', 'noresize', 'defer'];
var camels = ['value', 'type', 'defaultValue', 'accessKey', 'cellPadding', 'cellSpacing', 'colSpan', 'frameBorder', 'maxLength', 'readOnly', 'rowSpan', 'tabIndex', 'useMap'];

bools = bools.associate(bools);

Hash.extend(attributes, bools);
Hash.extend(attributes, camels.associate(camels.map(String.toLowerCase)));

var inserters = {

	before: function(context, element){
		if (element.parentNode) element.parentNode.insertBefore(context, element);
	},

	after: function(context, element){
		if (!element.parentNode) return;
		var next = element.nextSibling;
		(next) ? element.parentNode.insertBefore(context, next) : element.parentNode.appendChild(context);
	},

	bottom: function(context, element){
		element.appendChild(context);
	},

	top: function(context, element){
		var first = element.firstChild;
		(first) ? element.insertBefore(context, first) : element.appendChild(context);
	}

};

inserters.inside = inserters.bottom;

Hash.each(inserters, function(inserter, where){

	where = where.capitalize();

	Element.implement('inject' + where, function(el){
		inserter(this, document.id(el, true));
		return this;
	});

	Element.implement('grab' + where, function(el){
		inserter(document.id(el, true), this);
		return this;
	});

});

Element.implement({

	set: function(prop, value){
		switch ($type(prop)){
			case 'object':
				for (var p in prop) this.set(p, prop[p]);
				break;
			case 'string':
				var property = Element.Properties.get(prop);
				(property && property.set) ? property.set.apply(this, Array.slice(arguments, 1)) : this.setProperty(prop, value);
		}
		return this;
	},

	get: function(prop){
		var property = Element.Properties.get(prop);
		return (property && property.get) ? property.get.apply(this, Array.slice(arguments, 1)) : this.getProperty(prop);
	},

	erase: function(prop){
		var property = Element.Properties.get(prop);
		(property && property.erase) ? property.erase.apply(this) : this.removeProperty(prop);
		return this;
	},

	setProperty: function(attribute, value){
		var key = attributes[attribute];
		if (value == undefined) return this.removeProperty(attribute);
		if (key && bools[attribute]) value = !!value;
		(key) ? this[key] = value : this.setAttribute(attribute, '' + value);
		return this;
	},

	setProperties: function(attributes){
		for (var attribute in attributes) this.setProperty(attribute, attributes[attribute]);
		return this;
	},

	getProperty: function(attribute){
		var key = attributes[attribute];
		var value = (key) ? this[key] : this.getAttribute(attribute, 2);
		return (bools[attribute]) ? !!value : (key) ? value : value || null;
	},

	getProperties: function(){
		var args = $A(arguments);
		return args.map(this.getProperty, this).associate(args);
	},

	removeProperty: function(attribute){
		var key = attributes[attribute];
		(key) ? this[key] = (key && bools[attribute]) ? false : '' : this.removeAttribute(attribute);
		return this;
	},

	removeProperties: function(){
		Array.each(arguments, this.removeProperty, this);
		return this;
	},

	hasClass: function(className){
		return this.className.contains(className, ' ');
	},

	addClass: function(className){
		if (!this.hasClass(className)) this.className = (this.className + ' ' + className).clean();
		return this;
	},

	removeClass: function(className){
		this.className = this.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)'), '$1');
		return this;
	},

	toggleClass: function(className){
		return this.hasClass(className) ? this.removeClass(className) : this.addClass(className);
	},

	adopt: function(){
		Array.flatten(arguments).each(function(element){
			element = document.id(element, true);
			if (element) this.appendChild(element);
		}, this);
		return this;
	},

	appendText: function(text, where){
		return this.grab(this.getDocument().newTextNode(text), where);
	},

	grab: function(el, where){
		inserters[where || 'bottom'](document.id(el, true), this);
		return this;
	},

	inject: function(el, where){
		inserters[where || 'bottom'](this, document.id(el, true));
		return this;
	},

	replaces: function(el){
		el = document.id(el, true);
		el.parentNode.replaceChild(this, el);
		return this;
	},

	wraps: function(el, where){
		el = document.id(el, true);
		return this.replaces(el).grab(el, where);
	},

	getPrevious: function(match, nocash){
		return walk(this, 'previousSibling', null, match, false, nocash);
	},

	getAllPrevious: function(match, nocash){
		return walk(this, 'previousSibling', null, match, true, nocash);
	},

	getNext: function(match, nocash){
		return walk(this, 'nextSibling', null, match, false, nocash);
	},

	getAllNext: function(match, nocash){
		return walk(this, 'nextSibling', null, match, true, nocash);
	},

	getFirst: function(match, nocash){
		return walk(this, 'nextSibling', 'firstChild', match, false, nocash);
	},

	getLast: function(match, nocash){
		return walk(this, 'previousSibling', 'lastChild', match, false, nocash);
	},

	getParent: function(match, nocash){
		return walk(this, 'parentNode', null, match, false, nocash);
	},

	getParents: function(match, nocash){
		return walk(this, 'parentNode', null, match, true, nocash);
	},

	getSiblings: function(match, nocash) {
		return this.getParent().getChildren(match, nocash).erase(this);
	},

	getChildren: function(match, nocash){
		return walk(this, 'nextSibling', 'firstChild', match, true, nocash);
	},

	getWindow: function(){
		return this.ownerDocument.window;
	},

	getDocument: function(){
		return this.ownerDocument;
	},

	getElementById: function(id, nocash){
		var el = this.ownerDocument.getElementById(id);
		if (!el) return null;
		for (var parent = el.parentNode; parent != this; parent = parent.parentNode){
			if (!parent) return null;
		}
		return document.id(el, nocash);
	},

	getSelected: function(){
		return new Elements($A(this.options).filter(function(option){
			return option.selected;
		}));
	},

	getComputedStyle: function(property){
		if (this.currentStyle) return this.currentStyle[property.camelCase()];
		var computed = this.getDocument().defaultView.getComputedStyle(this, null);
		return (computed) ? computed.getPropertyValue([property.hyphenate()]) : null;
	},

	toQueryString: function(){
		var queryString = [];
		this.getElements('input, select, textarea', true).each(function(el){
			if (!el.name || el.disabled || el.type == 'submit' || el.type == 'reset' || el.type == 'file') return;
			var value = (el.tagName.toLowerCase() == 'select') ? Element.getSelected(el).map(function(opt){
				return opt.value;
			}) : ((el.type == 'radio' || el.type == 'checkbox') && !el.checked) ? null : el.value;
			$splat(value).each(function(val){
				if (typeof val != 'undefined') queryString.push(el.name + '=' + encodeURIComponent(val));
			});
		});
		return queryString.join('&');
	},

	clone: function(contents, keepid){
		contents = contents !== false;
		var clone = this.cloneNode(contents);
		var clean = function(node, element){
			if (!keepid) node.removeAttribute('id');
			if (Browser.Engine.trident){
				node.clearAttributes();
				node.mergeAttributes(element);
				node.removeAttribute('uid');
				if (node.options){
					var no = node.options, eo = element.options;
					for (var j = no.length; j--;) no[j].selected = eo[j].selected;
				}
			}
			var prop = props[element.tagName.toLowerCase()];
			if (prop && element[prop]) node[prop] = element[prop];
		};

		if (contents){
			var ce = clone.getElementsByTagName('*'), te = this.getElementsByTagName('*');
			for (var i = ce.length; i--;) clean(ce[i], te[i]);
		}

		clean(clone, this);
		return document.id(clone);
	},

	destroy: function(){
		Element.empty(this);
		Element.dispose(this);
		clean(this, true);
		return null;
	},

	empty: function(){
		$A(this.childNodes).each(function(node){
			Element.destroy(node);
		});
		return this;
	},

	dispose: function(){
		return (this.parentNode) ? this.parentNode.removeChild(this) : this;
	},

	hasChild: function(el){
		el = document.id(el, true);
		if (!el) return false;
		if (Browser.Engine.webkit && Browser.Engine.version < 420) return $A(this.getElementsByTagName(el.tagName)).contains(el);
		return (this.contains) ? (this != el && this.contains(el)) : !!(this.compareDocumentPosition(el) & 16);
	},

	match: function(tag){
		return (!tag || (tag == this) || (Element.get(this, 'tag') == tag));
	}

});

Native.implement([Element, Window, Document], {

	addListener: function(type, fn){
		if (type == 'unload'){
			var old = fn, self = this;
			fn = function(){
				self.removeListener('unload', fn);
				old();
			};
		} else {
			collected[this.uid] = this;
		}
		if (this.addEventListener) this.addEventListener(type, fn, false);
		else this.attachEvent('on' + type, fn);
		return this;
	},

	removeListener: function(type, fn){
		if (this.removeEventListener) this.removeEventListener(type, fn, false);
		else this.detachEvent('on' + type, fn);
		return this;
	},

	retrieve: function(property, dflt){
		var storage = get(this.uid), prop = storage[property];
		if (dflt != undefined && prop == undefined) prop = storage[property] = dflt;
		return $pick(prop);
	},

	store: function(property, value){
		var storage = get(this.uid);
		storage[property] = value;
		return this;
	},

	eliminate: function(property){
		var storage = get(this.uid);
		delete storage[property];
		return this;
	}

});

window.addListener('unload', purge);

})();

Element.Properties = new Hash;

Element.Properties.style = {

	set: function(style){
		this.style.cssText = style;
	},

	get: function(){
		return this.style.cssText;
	},

	erase: function(){
		this.style.cssText = '';
	}

};

Element.Properties.tag = {

	get: function(){
		return this.tagName.toLowerCase();
	}

};

Element.Properties.html = (function(){
	var wrapper = document.createElement('div');

	var translations = {
		table: [1, '<table>', '</table>'],
		select: [1, '<select>', '</select>'],
		tbody: [2, '<table><tbody>', '</tbody></table>'],
		tr: [3, '<table><tbody><tr>', '</tr></tbody></table>']
	};
	translations.thead = translations.tfoot = translations.tbody;

	var html = {
		set: function(){
			var html = Array.flatten(arguments).join('');
			var wrap = Browser.Engine.trident && translations[this.get('tag')];
			if (wrap){
				var first = wrapper;
				first.innerHTML = wrap[1] + html + wrap[2];
				for (var i = wrap[0]; i--;) first = first.firstChild;
				this.empty().adopt(first.childNodes);
			} else {
				this.innerHTML = html;
			}
		}
	};

	html.erase = html.set;

	return html;
})();

if (Browser.Engine.webkit && Browser.Engine.version < 420) Element.Properties.text = {
	get: function(){
		if (this.innerText) return this.innerText;
		var temp = this.ownerDocument.newElement('div', {html: this.innerHTML}).inject(this.ownerDocument.body);
		var text = temp.innerText;
		temp.destroy();
		return text;
	}
};


/*
Script: Element.Event.js
	Contains Element methods for dealing with events, and custom Events.

License:
	MIT-style license.
*/

Element.Properties.events = {set: function(events){
	this.addEvents(events);
}};

Native.implement([Element, Window, Document], {

	addEvent: function(type, fn){
		var events = this.retrieve('events', {});
		events[type] = events[type] || {'keys': [], 'values': []};
		if (events[type].keys.contains(fn)) return this;
		events[type].keys.push(fn);
		var realType = type, custom = Element.Events.get(type), condition = fn, self = this;
		if (custom){
			if (custom.onAdd) custom.onAdd.call(this, fn);
			if (custom.condition){
				condition = function(event){
					if (custom.condition.call(this, event)) return fn.call(this, event);
					return true;
				};
			}
			realType = custom.base || realType;
		}
		var defn = function(){
			return fn.call(self);
		};
		var nativeEvent = Element.NativeEvents[realType];
		if (nativeEvent){
			if (nativeEvent == 2){
				defn = function(event){
					event = new Event(event, self.getWindow());
					if (condition.call(self, event) === false) event.stop();
				};
			}
			this.addListener(realType, defn);
		}
		events[type].values.push(defn);
		return this;
	},

	removeEvent: function(type, fn){
		var events = this.retrieve('events');
		if (!events || !events[type]) return this;
		var pos = events[type].keys.indexOf(fn);
		if (pos == -1) return this;
		events[type].keys.splice(pos, 1);
		var value = events[type].values.splice(pos, 1)[0];
		var custom = Element.Events.get(type);
		if (custom){
			if (custom.onRemove) custom.onRemove.call(this, fn);
			type = custom.base || type;
		}
		return (Element.NativeEvents[type]) ? this.removeListener(type, value) : this;
	},

	addEvents: function(events){
		for (var event in events) this.addEvent(event, events[event]);
		return this;
	},

	removeEvents: function(events){
		var type;
		if ($type(events) == 'object'){
			for (type in events) this.removeEvent(type, events[type]);
			return this;
		}
		var attached = this.retrieve('events');
		if (!attached) return this;
		if (!events){
			for (type in attached) this.removeEvents(type);
			this.eliminate('events');
		} else if (attached[events]){
			while (attached[events].keys[0]) this.removeEvent(events, attached[events].keys[0]);
			attached[events] = null;
		}
		return this;
	},

	fireEvent: function(type, args, delay){
		var events = this.retrieve('events');
		if (!events || !events[type]) return this;
		events[type].keys.each(function(fn){
			fn.create({'bind': this, 'delay': delay, 'arguments': args})();
		}, this);
		return this;
	},

	cloneEvents: function(from, type){
		from = document.id(from);
		var fevents = from.retrieve('events');
		if (!fevents) return this;
		if (!type){
			for (var evType in fevents) this.cloneEvents(from, evType);
		} else if (fevents[type]){
			fevents[type].keys.each(function(fn){
				this.addEvent(type, fn);
			}, this);
		}
		return this;
	}

});

Element.NativeEvents = {
	click: 2, dblclick: 2, mouseup: 2, mousedown: 2, contextmenu: 2, //mouse buttons
	mousewheel: 2, DOMMouseScroll: 2, //mouse wheel
	mouseover: 2, mouseout: 2, mousemove: 2, selectstart: 2, selectend: 2, //mouse movement
	keydown: 2, keypress: 2, keyup: 2, //keyboard
	focus: 2, blur: 2, change: 2, reset: 2, select: 2, submit: 2, //form elements
	load: 1, unload: 1, beforeunload: 2, resize: 1, move: 1, DOMContentLoaded: 1, readystatechange: 1, //window
	error: 1, abort: 1, scroll: 1 //misc
};

(function(){

var $check = function(event){
	var related = event.relatedTarget;
	if (related == undefined) return true;
	if (related === false) return false;
	return ($type(this) != 'document' && related != this && related.prefix != 'xul' && !this.hasChild(related));
};

Element.Events = new Hash({

	mouseenter: {
		base: 'mouseover',
		condition: $check
	},

	mouseleave: {
		base: 'mouseout',
		condition: $check
	},

	mousewheel: {
		base: (Browser.Engine.gecko) ? 'DOMMouseScroll' : 'mousewheel'
	}

});

})();


/*
Script: Element.Style.js
	Contains methods for interacting with the styles of Elements in a fashionable way.

License:
	MIT-style license.
*/

Element.Properties.styles = {set: function(styles){
	this.setStyles(styles);
}};

Element.Properties.opacity = {

	set: function(opacity, novisibility){
		if (!novisibility){
			if (opacity == 0){
				if (this.style.visibility != 'hidden') this.style.visibility = 'hidden';
			} else {
				if (this.style.visibility != 'visible') this.style.visibility = 'visible';
			}
		}
		if (!this.currentStyle || !this.currentStyle.hasLayout) this.style.zoom = 1;
		if (Browser.Engine.trident) this.style.filter = (opacity == 1) ? '' : 'alpha(opacity=' + opacity * 100 + ')';
		this.style.opacity = opacity;
		this.store('opacity', opacity);
	},

	get: function(){
		return this.retrieve('opacity', 1);
	}

};

Element.implement({

	setOpacity: function(value){
		return this.set('opacity', value, true);
	},

	getOpacity: function(){
		return this.get('opacity');
	},

	setStyle: function(property, value){
		switch (property){
			case 'opacity': return this.set('opacity', parseFloat(value));
			case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat';
		}
		property = property.camelCase();
		if ($type(value) != 'string'){
			var map = (Element.Styles.get(property) || '@').split(' ');
			value = $splat(value).map(function(val, i){
				if (!map[i]) return '';
				return ($type(val) == 'number') ? map[i].replace('@', Math.round(val)) : val;
			}).join(' ');
		} else if (value == String(Number(value))){
			value = Math.round(value);
		}
		this.style[property] = value;
		return this;
	},

	getStyle: function(property){
		switch (property){
			case 'opacity': return this.get('opacity');
			case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat';
		}
		property = property.camelCase();
		var result = this.style[property];
		if (!$chk(result)){
			result = [];
			for (var style in Element.ShortStyles){
				if (property != style) continue;
				for (var s in Element.ShortStyles[style]) result.push(this.getStyle(s));
				return result.join(' ');
			}
			result = this.getComputedStyle(property);
		}
		if (result){
			result = String(result);
			var color = result.match(/rgba?\([\d\s,]+\)/);
			if (color) result = result.replace(color[0], color[0].rgbToHex());
		}
		if (Browser.Engine.presto || (Browser.Engine.trident && !$chk(parseInt(result, 10)))){
			if (property.test(/^(height|width)$/)){
				var values = (property == 'width') ? ['left', 'right'] : ['top', 'bottom'], size = 0;
				values.each(function(value){
					size += this.getStyle('border-' + value + '-width').toInt() + this.getStyle('padding-' + value).toInt();
				}, this);
				return this['offset' + property.capitalize()] - size + 'px';
			}
			if ((Browser.Engine.presto) && String(result).test('px')) return result;
			if (property.test(/(border(.+)Width|margin|padding)/)) return '0px';
		}
		return result;
	},

	setStyles: function(styles){
		for (var style in styles) this.setStyle(style, styles[style]);
		return this;
	},

	getStyles: function(){
		var result = {};
		Array.flatten(arguments).each(function(key){
			result[key] = this.getStyle(key);
		}, this);
		return result;
	}

});

Element.Styles = new Hash({
	left: '@px', top: '@px', bottom: '@px', right: '@px',
	width: '@px', height: '@px', maxWidth: '@px', maxHeight: '@px', minWidth: '@px', minHeight: '@px',
	backgroundColor: 'rgb(@, @, @)', backgroundPosition: '@px @px', color: 'rgb(@, @, @)',
	fontSize: '@px', letterSpacing: '@px', lineHeight: '@px', clip: 'rect(@px @px @px @px)',
	margin: '@px @px @px @px', padding: '@px @px @px @px', border: '@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)',
	borderWidth: '@px @px @px @px', borderStyle: '@ @ @ @', borderColor: 'rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)',
	zIndex: '@', 'zoom': '@', fontWeight: '@', textIndent: '@px', opacity: '@'
});

Element.ShortStyles = {margin: {}, padding: {}, border: {}, borderWidth: {}, borderStyle: {}, borderColor: {}};

['Top', 'Right', 'Bottom', 'Left'].each(function(direction){
	var Short = Element.ShortStyles;
	var All = Element.Styles;
	['margin', 'padding'].each(function(style){
		var sd = style + direction;
		Short[style][sd] = All[sd] = '@px';
	});
	var bd = 'border' + direction;
	Short.border[bd] = All[bd] = '@px @ rgb(@, @, @)';
	var bdw = bd + 'Width', bds = bd + 'Style', bdc = bd + 'Color';
	Short[bd] = {};
	Short.borderWidth[bdw] = Short[bd][bdw] = All[bdw] = '@px';
	Short.borderStyle[bds] = Short[bd][bds] = All[bds] = '@';
	Short.borderColor[bdc] = Short[bd][bdc] = All[bdc] = 'rgb(@, @, @)';
});


/*
Script: Element.Dimensions.js
	Contains methods to work with size, scroll, or positioning of Elements and the window object.

License:
	MIT-style license.

Credits:
	- Element positioning based on the [qooxdoo](http://qooxdoo.org/) code and smart browser fixes, [LGPL License](http://www.gnu.org/licenses/lgpl.html).
	- Viewport dimensions based on [YUI](http://developer.yahoo.com/yui/) code, [BSD License](http://developer.yahoo.com/yui/license.html).
*/

(function(){

Element.implement({

	scrollTo: function(x, y){
		if (isBody(this)){
			this.getWindow().scrollTo(x, y);
		} else {
			this.scrollLeft = x;
			this.scrollTop = y;
		}
		return this;
	},

	getSize: function(){
		if (isBody(this)) return this.getWindow().getSize();
		return {x: this.offsetWidth, y: this.offsetHeight};
	},

	getScrollSize: function(){
		if (isBody(this)) return this.getWindow().getScrollSize();
		return {x: this.scrollWidth, y: this.scrollHeight};
	},

	getScroll: function(){
		if (isBody(this)) return this.getWindow().getScroll();
		return {x: this.scrollLeft, y: this.scrollTop};
	},

	getScrolls: function(){
		var element = this, position = {x: 0, y: 0};
		while (element && !isBody(element)){
			position.x += element.scrollLeft;
			position.y += element.scrollTop;
			element = element.parentNode;
		}
		return position;
	},

	getOffsetParent: function(){
		var element = this;
		if (isBody(element)) return null;
		if (!Browser.Engine.trident) return element.offsetParent;
		while ((element = element.parentNode) && !isBody(element)){
			if (styleString(element, 'position') != 'static') return element;
		}
		return null;
	},

	getOffsets: function(){
		if (this.getBoundingClientRect){
			var bound = this.getBoundingClientRect(),
			html = document.id(this.getDocument().documentElement),
			scroll = html.getScroll(),
			isFixed = (styleString(this, 'position') == 'fixed');
			return {
				x: parseInt(bound.left, 10) + ((isFixed) ? 0 : scroll.x) - html.clientLeft,
				y: parseInt(bound.top, 10) +  ((isFixed) ? 0 : scroll.y) - html.clientTop
			};
		}

		var element = this, position = {x: 0, y: 0};
		if (isBody(this)) return position;

		while (element && !isBody(element)){
			position.x += element.offsetLeft;
			position.y += element.offsetTop;

			if (Browser.Engine.gecko){
				if (!borderBox(element)){
					position.x += leftBorder(element);
					position.y += topBorder(element);
				}
				var parent = element.parentNode;
				if (parent && styleString(parent, 'overflow') != 'visible'){
					position.x += leftBorder(parent);
					position.y += topBorder(parent);
				}
			} else if (element != this && Browser.Engine.webkit){
				position.x += leftBorder(element);
				position.y += topBorder(element);
			}

			element = element.offsetParent;
		}
		if (Browser.Engine.gecko && !borderBox(this)){
			position.x -= leftBorder(this);
			position.y -= topBorder(this);
		}
		return position;
	},

	getPosition: function(relative){
		if (isBody(this)) return {x: 0, y: 0};
		var offset = this.getOffsets(), scroll = this.getScrolls();
		var position = {x: offset.x - scroll.x, y: offset.y - scroll.y};
		var relativePosition = (relative && (relative = document.id(relative))) ? relative.getPosition() : {x: 0, y: 0};
		return {x: position.x - relativePosition.x, y: position.y - relativePosition.y};
	},

	getCoordinates: function(element){
		if (isBody(this)) return this.getWindow().getCoordinates();
		var position = this.getPosition(element), size = this.getSize();
		var obj = {left: position.x, top: position.y, width: size.x, height: size.y};
		obj.right = obj.left + obj.width;
		obj.bottom = obj.top + obj.height;
		return obj;
	},

	computePosition: function(obj){
		return {left: obj.x - styleNumber(this, 'margin-left'), top: obj.y - styleNumber(this, 'margin-top')};
	},

	setPosition: function(obj){
		return this.setStyles(this.computePosition(obj));
	}

});


Native.implement([Document, Window], {

	getSize: function(){
		if (Browser.Engine.presto || Browser.Engine.webkit) {
			var win = this.getWindow();
			return {x: win.innerWidth, y: win.innerHeight};
		}
		var doc = getCompatElement(this);
		return {x: doc.clientWidth, y: doc.clientHeight};
	},

	getScroll: function(){
		var win = this.getWindow(), doc = getCompatElement(this);
		return {x: win.pageXOffset || doc.scrollLeft, y: win.pageYOffset || doc.scrollTop};
	},

	getScrollSize: function(){
		var doc = getCompatElement(this), min = this.getSize();
		return {x: Math.max(doc.scrollWidth, min.x), y: Math.max(doc.scrollHeight, min.y)};
	},

	getPosition: function(){
		return {x: 0, y: 0};
	},

	getCoordinates: function(){
		var size = this.getSize();
		return {top: 0, left: 0, bottom: size.y, right: size.x, height: size.y, width: size.x};
	}

});

// private methods

var styleString = Element.getComputedStyle;

function styleNumber(element, style){
	return styleString(element, style).toInt() || 0;
};

function borderBox(element){
	return styleString(element, '-moz-box-sizing') == 'border-box';
};

function topBorder(element){
	return styleNumber(element, 'border-top-width');
};

function leftBorder(element){
	return styleNumber(element, 'border-left-width');
};

function isBody(element){
	return (/^(?:body|html)$/i).test(element.tagName);
};

function getCompatElement(element){
	var doc = element.getDocument();
	return (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;
};

})();

//aliases
Element.alias('setPosition', 'position'); //compatability

Native.implement([Window, Document, Element], {

	getHeight: function(){
		return this.getSize().y;
	},

	getWidth: function(){
		return this.getSize().x;
	},

	getScrollTop: function(){
		return this.getScroll().y;
	},

	getScrollLeft: function(){
		return this.getScroll().x;
	},

	getScrollHeight: function(){
		return this.getScrollSize().y;
	},

	getScrollWidth: function(){
		return this.getScrollSize().x;
	},

	getTop: function(){
		return this.getPosition().y;
	},

	getLeft: function(){
		return this.getPosition().x;
	}

});


/*
Script: Selectors.js
	Adds advanced CSS Querying capabilities for targeting elements. Also includes pseudoselectors support.

License:
	MIT-style license.
*/

Native.implement([Document, Element], {

	getElements: function(expression, nocash){
		expression = expression.split(',');
		var items, local = {};
		for (var i = 0, l = expression.length; i < l; i++){
			var selector = expression[i], elements = Selectors.Utils.search(this, selector, local);
			if (i != 0 && elements.item) elements = $A(elements);
			items = (i == 0) ? elements : (items.item) ? $A(items).concat(elements) : items.concat(elements);
		}
		return new Elements(items, {ddup: (expression.length > 1), cash: !nocash});
	}

});

Element.implement({

	match: function(selector){
		if (!selector || (selector == this)) return true;
		var tagid = Selectors.Utils.parseTagAndID(selector);
		var tag = tagid[0], id = tagid[1];
		if (!Selectors.Filters.byID(this, id) || !Selectors.Filters.byTag(this, tag)) return false;
		var parsed = Selectors.Utils.parseSelector(selector);
		return (parsed) ? Selectors.Utils.filter(this, parsed, {}) : true;
	}

});

var Selectors = {Cache: {nth: {}, parsed: {}}};

Selectors.RegExps = {
	id: (/#([\w-]+)/),
	tag: (/^(\w+|\*)/),
	quick: (/^(\w+|\*)$/),
	splitter: (/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),
	combined: (/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)(["']?)([^\4]*?)\4)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)
};

Selectors.Utils = {

	chk: function(item, uniques){
		if (!uniques) return true;
		var uid = $uid(item);
		if (!uniques[uid]) return uniques[uid] = true;
		return false;
	},

	parseNthArgument: function(argument){
		if (Selectors.Cache.nth[argument]) return Selectors.Cache.nth[argument];
		var parsed = argument.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);
		if (!parsed) return false;
		var inta = parseInt(parsed[1], 10);
		var a = (inta || inta === 0) ? inta : 1;
		var special = parsed[2] || false;
		var b = parseInt(parsed[3], 10) || 0;
		if (a != 0){
			b--;
			while (b < 1) b += a;
			while (b >= a) b -= a;
		} else {
			a = b;
			special = 'index';
		}
		switch (special){
			case 'n': parsed = {a: a, b: b, special: 'n'}; break;
			case 'odd': parsed = {a: 2, b: 0, special: 'n'}; break;
			case 'even': parsed = {a: 2, b: 1, special: 'n'}; break;
			case 'first': parsed = {a: 0, special: 'index'}; break;
			case 'last': parsed = {special: 'last-child'}; break;
			case 'only': parsed = {special: 'only-child'}; break;
			default: parsed = {a: (a - 1), special: 'index'};
		}

		return Selectors.Cache.nth[argument] = parsed;
	},

	parseSelector: function(selector){
		if (Selectors.Cache.parsed[selector]) return Selectors.Cache.parsed[selector];
		var m, parsed = {classes: [], pseudos: [], attributes: []};
		while ((m = Selectors.RegExps.combined.exec(selector))){
			var cn = m[1], an = m[2], ao = m[3], av = m[5], pn = m[6], pa = m[7];
			if (cn){
				parsed.classes.push(cn);
			} else if (pn){
				var parser = Selectors.Pseudo.get(pn);
				if (parser) parsed.pseudos.push({parser: parser, argument: pa});
				else parsed.attributes.push({name: pn, operator: '=', value: pa});
			} else if (an){
				parsed.attributes.push({name: an, operator: ao, value: av});
			}
		}
		if (!parsed.classes.length) delete parsed.classes;
		if (!parsed.attributes.length) delete parsed.attributes;
		if (!parsed.pseudos.length) delete parsed.pseudos;
		if (!parsed.classes && !parsed.attributes && !parsed.pseudos) parsed = null;
		return Selectors.Cache.parsed[selector] = parsed;
	},

	parseTagAndID: function(selector){
		var tag = selector.match(Selectors.RegExps.tag);
		var id = selector.match(Selectors.RegExps.id);
		return [(tag) ? tag[1] : '*', (id) ? id[1] : false];
	},

	filter: function(item, parsed, local){
		var i;
		if (parsed.classes){
			for (i = parsed.classes.length; i--; i){
				var cn = parsed.classes[i];
				if (!Selectors.Filters.byClass(item, cn)) return false;
			}
		}
		if (parsed.attributes){
			for (i = parsed.attributes.length; i--; i){
				var att = parsed.attributes[i];
				if (!Selectors.Filters.byAttribute(item, att.name, att.operator, att.value)) return false;
			}
		}
		if (parsed.pseudos){
			for (i = parsed.pseudos.length; i--; i){
				var psd = parsed.pseudos[i];
				if (!Selectors.Filters.byPseudo(item, psd.parser, psd.argument, local)) return false;
			}
		}
		return true;
	},

	getByTagAndID: function(ctx, tag, id){
		if (id){
			var item = (ctx.getElementById) ? ctx.getElementById(id, true) : Element.getElementById(ctx, id, true);
			return (item && Selectors.Filters.byTag(item, tag)) ? [item] : [];
		} else {
			return ctx.getElementsByTagName(tag);
		}
	},

	search: function(self, expression, local){
		var splitters = [];

		var selectors = expression.trim().replace(Selectors.RegExps.splitter, function(m0, m1, m2){
			splitters.push(m1);
			return ':)' + m2;
		}).split(':)');

		var items, filtered, item;

		for (var i = 0, l = selectors.length; i < l; i++){

			var selector = selectors[i];

			if (i == 0 && Selectors.RegExps.quick.test(selector)){
				items = self.getElementsByTagName(selector);
				continue;
			}

			var splitter = splitters[i - 1];

			var tagid = Selectors.Utils.parseTagAndID(selector);
			var tag = tagid[0], id = tagid[1];

			if (i == 0){
				items = Selectors.Utils.getByTagAndID(self, tag, id);
			} else {
				var uniques = {}, found = [];
				for (var j = 0, k = items.length; j < k; j++) found = Selectors.Getters[splitter](found, items[j], tag, id, uniques);
				items = found;
			}

			var parsed = Selectors.Utils.parseSelector(selector);

			if (parsed){
				filtered = [];
				for (var m = 0, n = items.length; m < n; m++){
					item = items[m];
					if (Selectors.Utils.filter(item, parsed, local)) filtered.push(item);
				}
				items = filtered;
			}

		}

		return items;

	}

};

Selectors.Getters = {

	' ': function(found, self, tag, id, uniques){
		var items = Selectors.Utils.getByTagAndID(self, tag, id);
		for (var i = 0, l = items.length; i < l; i++){
			var item = items[i];
			if (Selectors.Utils.chk(item, uniques)) found.push(item);
		}
		return found;
	},

	'>': function(found, self, tag, id, uniques){
		var children = Selectors.Utils.getByTagAndID(self, tag, id);
		for (var i = 0, l = children.length; i < l; i++){
			var child = children[i];
			if (child.parentNode == self && Selectors.Utils.chk(child, uniques)) found.push(child);
		}
		return found;
	},

	'+': function(found, self, tag, id, uniques){
		while ((self = self.nextSibling)){
			if (self.nodeType == 1){
				if (Selectors.Utils.chk(self, uniques) && Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self);
				break;
			}
		}
		return found;
	},

	'~': function(found, self, tag, id, uniques){
		while ((self = self.nextSibling)){
			if (self.nodeType == 1){
				if (!Selectors.Utils.chk(self, uniques)) break;
				if (Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self);
			}
		}
		return found;
	}

};

Selectors.Filters = {

	byTag: function(self, tag){
		return (tag == '*' || (self.tagName && self.tagName.toLowerCase() == tag));
	},

	byID: function(self, id){
		return (!id || (self.id && self.id == id));
	},

	byClass: function(self, klass){
		return (self.className && self.className.contains(klass, ' '));
	},

	byPseudo: function(self, parser, argument, local){
		return parser.call(self, argument, local);
	},

	byAttribute: function(self, name, operator, value){
		var result = Element.prototype.getProperty.call(self, name);
		if (!result) return (operator == '!=');
		if (!operator || value == undefined) return true;
		switch (operator){
			case '=': return (result == value);
			case '*=': return (result.contains(value));
			case '^=': return (result.substr(0, value.length) == value);
			case '$=': return (result.substr(result.length - value.length) == value);
			case '!=': return (result != value);
			case '~=': return result.contains(value, ' ');
			case '|=': return result.contains(value, '-');
		}
		return false;
	}

};

Selectors.Pseudo = new Hash({

	// w3c pseudo selectors

	checked: function(){
		return this.checked;
	},

	empty: function(){
		return !(this.innerText || this.textContent || '').length;
	},

	not: function(selector){
		return !Element.match(this, selector);
	},

	contains: function(text){
		return (this.innerText || this.textContent || '').contains(text);
	},

	'first-child': function(){
		return Selectors.Pseudo.index.call(this, 0);
	},

	'last-child': function(){
		var element = this;
		while ((element = element.nextSibling)){
			if (element.nodeType == 1) return false;
		}
		return true;
	},

	'only-child': function(){
		var prev = this;
		while ((prev = prev.previousSibling)){
			if (prev.nodeType == 1) return false;
		}
		var next = this;
		while ((next = next.nextSibling)){
			if (next.nodeType == 1) return false;
		}
		return true;
	},

	'nth-child': function(argument, local){
		argument = (argument == undefined) ? 'n' : argument;
		var parsed = Selectors.Utils.parseNthArgument(argument);
		if (parsed.special != 'n') return Selectors.Pseudo[parsed.special].call(this, parsed.a, local);
		var count = 0;
		local.positions = local.positions || {};
		var uid = $uid(this);
		if (!local.positions[uid]){
			var self = this;
			while ((self = self.previousSibling)){
				if (self.nodeType != 1) continue;
				count ++;
				var position = local.positions[$uid(self)];
				if (position != undefined){
					count = position + count;
					break;
				}
			}
			local.positions[uid] = count;
		}
		return (local.positions[uid] % parsed.a == parsed.b);
	},

	// custom pseudo selectors

	index: function(index){
		var element = this, count = 0;
		while ((element = element.previousSibling)){
			if (element.nodeType == 1 && ++count > index) return false;
		}
		return (count == index);
	},

	even: function(argument, local){
		return Selectors.Pseudo['nth-child'].call(this, '2n+1', local);
	},

	odd: function(argument, local){
		return Selectors.Pseudo['nth-child'].call(this, '2n', local);
	},

	selected: function(){
		return this.selected;
	},

	enabled: function(){
		return (this.disabled === false);
	}

});


/*
Script: Domready.js
	Contains the domready custom event.

License:
	MIT-style license.
*/

Element.Events.domready = {

	onAdd: function(fn){
		if (Browser.loaded) fn.call(this);
	}

};

(function(){

	var domready = function(){
		if (Browser.loaded) return;
		Browser.loaded = true;
		window.fireEvent('domready');
		document.fireEvent('domready');
	};

	if (Browser.Engine.trident){
		var temp = document.createElement('div');
		(function(){
			($try(function(){
				temp.doScroll(); // Technique by Diego Perini
				return document.id(temp).inject(document.body).set('html', 'temp').dispose();
			})) ? domready() : arguments.callee.delay(50);
		})();
	} else if (Browser.Engine.webkit && Browser.Engine.version < 525){
		(function(){
			(['loaded', 'complete'].contains(document.readyState)) ? domready() : arguments.callee.delay(50);
		})();
	} else {
		window.addEvent('load', domready);
		document.addEvent('DOMContentLoaded', domready);
	}

})();


/*
Script: JSON.js
	JSON encoder and decoder.

License:
	MIT-style license.

See Also:
	<http://www.json.org/>
*/

var JSON = new Hash({

	$specialChars: {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\'},

	$replaceChars: function(chr){
		return JSON.$specialChars[chr] || '\\u00' + Math.floor(chr.charCodeAt() / 16).toString(16) + (chr.charCodeAt() % 16).toString(16);
	},

	encode: function(obj){
		switch ($type(obj)){
			case 'string':
				return '"' + obj.replace(/[\x00-\x1f\\"]/g, JSON.$replaceChars) + '"';
			case 'array':
				return '[' + String(obj.map(JSON.encode).clean()) + ']';
			case 'object': case 'hash':
				var string = [];
				Hash.each(obj, function(value, key){
					var json = JSON.encode(value);
					if (json) string.push(JSON.encode(key) + ':' + json);
				});
				return '{' + string + '}';
			case 'number': case 'boolean': return String(obj);
			case false: return 'null';
		}
		return null;
	},

	decode: function(string, secure){
		if ($type(string) != 'string' || !string.length) return null;
		if (secure && !(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''))) return null;
		return eval('(' + string + ')');
	}

});

Native.implement([Hash, Array, String, Number], {

	toJSON: function(){
		return JSON.encode(this);
	}

});


/*
Script: Cookie.js
	Class for creating, loading, and saving browser Cookies.

License:
	MIT-style license.

Credits:
	Based on the functions by Peter-Paul Koch (http://quirksmode.org).
*/

var Cookie = new Class({

	Implements: Options,

	options: {
		path: false,
		domain: false,
		duration: false,
		secure: false,
		document: document
	},

	initialize: function(key, options){
		this.key = key;
		this.setOptions(options);
	},

	write: function(value){
		value = encodeURIComponent(value);
		if (this.options.domain) value += '; domain=' + this.options.domain;
		if (this.options.path) value += '; path=' + this.options.path;
		if (this.options.duration){
			var date = new Date();
			date.setTime(date.getTime() + this.options.duration * 24 * 60 * 60 * 1000);
			value += '; expires=' + date.toGMTString();
		}
		if (this.options.secure) value += '; secure';
		this.options.document.cookie = this.key + '=' + value;
		return this;
	},

	read: function(){
		var value = this.options.document.cookie.match('(?:^|;)\\s*' + this.key.escapeRegExp() + '=([^;]*)');
		return (value) ? decodeURIComponent(value[1]) : null;
	},

	dispose: function(){
		new Cookie(this.key, $merge(this.options, {duration: -1})).write('');
		return this;
	}

});

Cookie.write = function(key, value, options){
	return new Cookie(key, options).write(value);
};

Cookie.read = function(key){
	return new Cookie(key).read();
};

Cookie.dispose = function(key, options){
	return new Cookie(key, options).dispose();
};


/*
Script: Swiff.js
	Wrapper for embedding SWF movies. Supports (and fixes) External Interface Communication.

License:
	MIT-style license.

Credits:
	Flash detection & Internet Explorer + Flash Player 9 fix inspired by SWFObject.
*/

var Swiff = new Class({

	Implements: [Options],

	options: {
		id: null,
		height: 1,
		width: 1,
		container: null,
		properties: {},
		params: {
			quality: 'high',
			allowScriptAccess: 'always',
			wMode: 'transparent',
			swLiveConnect: true
		},
		callBacks: {},
		vars: {}
	},

	toElement: function(){
		return this.object;
	},

	initialize: function(path, options){
		this.instance = 'Swiff_' + $time();

		this.setOptions(options);
		options = this.options;
		var id = this.id = options.id || this.instance;
		var container = document.id(options.container);

		Swiff.CallBacks[this.instance] = {};

		var params = options.params, vars = options.vars, callBacks = options.callBacks;
		var properties = $extend({height: options.height, width: options.width}, options.properties);

		var self = this;

		for (var callBack in callBacks){
			Swiff.CallBacks[this.instance][callBack] = (function(option){
				return function(){
					return option.apply(self.object, arguments);
				};
			})(callBacks[callBack]);
			vars[callBack] = 'Swiff.CallBacks.' + this.instance + '.' + callBack;
		}

		params.flashVars = Hash.toQueryString(vars);
		if (Browser.Engine.trident){
			properties.classid = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
			params.movie = path;
		} else {
			properties.type = 'application/x-shockwave-flash';
			properties.data = path;
		}
		var build = '<object id="' + id + '"';
		for (var property in properties) build += ' ' + property + '="' + properties[property] + '"';
		build += '>';
		for (var param in params){
			if (params[param]) build += '<param name="' + param + '" value="' + params[param] + '" />';
		}
		build += '</object>';
		this.object = ((container) ? container.empty() : new Element('div')).set('html', build).firstChild;
	},

	replaces: function(element){
		element = document.id(element, true);
		element.parentNode.replaceChild(this.toElement(), element);
		return this;
	},

	inject: function(element){
		document.id(element, true).appendChild(this.toElement());
		return this;
	},

	remote: function(){
		return Swiff.remote.apply(Swiff, [this.toElement()].extend(arguments));
	}

});

Swiff.CallBacks = {};

Swiff.remote = function(obj, fn){
	var rs = obj.CallFunction('<invoke name="' + fn + '" returntype="javascript">' + __flash__argumentsToXML(arguments, 2) + '</invoke>');
	return eval(rs);
};


/*
Script: Fx.js
	Contains the basic animation logic to be extended by all other Fx Classes.

License:
	MIT-style license.
*/

var Fx = new Class({

	Implements: [Chain, Events, Options],

	options: {
		/*
		onStart: $empty,
		onCancel: $empty,
		onComplete: $empty,
		*/
		fps: 50,
		unit: false,
		duration: 500,
		link: 'ignore'
	},

	initialize: function(options){
		this.subject = this.subject || this;
		this.setOptions(options);
		this.options.duration = Fx.Durations[this.options.duration] || this.options.duration.toInt();
		var wait = this.options.wait;
		if (wait === false) this.options.link = 'cancel';
	},

	getTransition: function(){
		return function(p){
			return -(Math.cos(Math.PI * p) - 1) / 2;
		};
	},

	step: function(){
		var time = $time();
		if (time < this.time + this.options.duration){
			var delta = this.transition((time - this.time) / this.options.duration);
			this.set(this.compute(this.from, this.to, delta));
		} else {
			this.set(this.compute(this.from, this.to, 1));
			this.complete();
		}
	},

	set: function(now){
		return now;
	},

	compute: function(from, to, delta){
		return Fx.compute(from, to, delta);
	},

	check: function(){
		if (!this.timer) return true;
		switch (this.options.link){
			case 'cancel': this.cancel(); return true;
			case 'chain': this.chain(this.caller.bind(this, arguments)); return false;
		}
		return false;
	},

	start: function(from, to){
		if (!this.check(from, to)) return this;
		this.from = from;
		this.to = to;
		this.time = 0;
		this.transition = this.getTransition();
		this.startTimer();
		this.onStart();
		return this;
	},

	complete: function(){
		if (this.stopTimer()) this.onComplete();
		return this;
	},

	cancel: function(){
		if (this.stopTimer()) this.onCancel();
		return this;
	},

	onStart: function(){
		this.fireEvent('start', this.subject);
	},

	onComplete: function(){
		this.fireEvent('complete', this.subject);
		if (!this.callChain()) this.fireEvent('chainComplete', this.subject);
	},

	onCancel: function(){
		this.fireEvent('cancel', this.subject).clearChain();
	},

	pause: function(){
		this.stopTimer();
		return this;
	},

	resume: function(){
		this.startTimer();
		return this;
	},

	stopTimer: function(){
		if (!this.timer) return false;
		this.time = $time() - this.time;
		this.timer = $clear(this.timer);
		return true;
	},

	startTimer: function(){
		if (this.timer) return false;
		this.time = $time() - this.time;
		this.timer = this.step.periodical(Math.round(1000 / this.options.fps), this);
		return true;
	}

});

Fx.compute = function(from, to, delta){
	return (to - from) * delta + from;
};

Fx.Durations = {'short': 250, 'normal': 500, 'long': 1000};


/*
Script: Fx.CSS.js
	Contains the CSS animation logic. Used by Fx.Tween, Fx.Morph, Fx.Elements.

License:
	MIT-style license.
*/

Fx.CSS = new Class({

	Extends: Fx,

	//prepares the base from/to object

	prepare: function(element, property, values){
		values = $splat(values);
		var values1 = values[1];
		if (!$chk(values1)){
			values[1] = values[0];
			values[0] = element.getStyle(property);
		}
		var parsed = values.map(this.parse);
		return {from: parsed[0], to: parsed[1]};
	},

	//parses a value into an array

	parse: function(value){
		value = $lambda(value)();
		value = (typeof value == 'string') ? value.split(' ') : $splat(value);
		return value.map(function(val){
			val = String(val);
			var found = false;
			Fx.CSS.Parsers.each(function(parser, key){
				if (found) return;
				var parsed = parser.parse(val);
				if ($chk(parsed)) found = {value: parsed, parser: parser};
			});
			found = found || {value: val, parser: Fx.CSS.Parsers.String};
			return found;
		});
	},

	//computes by a from and to prepared objects, using their parsers.

	compute: function(from, to, delta){
		var computed = [];
		(Math.min(from.length, to.length)).times(function(i){
			computed.push({value: from[i].parser.compute(from[i].value, to[i].value, delta), parser: from[i].parser});
		});
		computed.$family = {name: 'fx:css:value'};
		return computed;
	},

	//serves the value as settable

	serve: function(value, unit){
		if ($type(value) != 'fx:css:value') value = this.parse(value);
		var returned = [];
		value.each(function(bit){
			returned = returned.concat(bit.parser.serve(bit.value, unit));
		});
		return returned;
	},

	//renders the change to an element

	render: function(element, property, value, unit){
		element.setStyle(property, this.serve(value, unit));
	},

	//searches inside the page css to find the values for a selector

	search: function(selector){
		if (Fx.CSS.Cache[selector]) return Fx.CSS.Cache[selector];
		var to = {};
		Array.each(document.styleSheets, function(sheet, j){
			var href = sheet.href;
			if (href && href.contains('://') && !href.contains(document.domain)) return;
			var rules = sheet.rules || sheet.cssRules;
			Array.each(rules, function(rule, i){
				if (!rule.style) return;
				var selectorText = (rule.selectorText) ? rule.selectorText.replace(/^\w+/, function(m){
					return m.toLowerCase();
				}) : null;
				if (!selectorText || !selectorText.test('^' + selector + '$')) return;
				Element.Styles.each(function(value, style){
					if (!rule.style[style] || Element.ShortStyles[style]) return;
					value = String(rule.style[style]);
					to[style] = (value.test(/^rgb/)) ? value.rgbToHex() : value;
				});
			});
		});
		return Fx.CSS.Cache[selector] = to;
	}

});

Fx.CSS.Cache = {};

Fx.CSS.Parsers = new Hash({

	Color: {
		parse: function(value){
			if (value.match(/^#[0-9a-f]{3,6}$/i)) return value.hexToRgb(true);
			return ((value = value.match(/(\d+),\s*(\d+),\s*(\d+)/))) ? [value[1], value[2], value[3]] : false;
		},
		compute: function(from, to, delta){
			return from.map(function(value, i){
				return Math.round(Fx.compute(from[i], to[i], delta));
			});
		},
		serve: function(value){
			return value.map(Number);
		}
	},

	Number: {
		parse: parseFloat,
		compute: Fx.compute,
		serve: function(value, unit){
			return (unit) ? value + unit : value;
		}
	},

	String: {
		parse: $lambda(false),
		compute: $arguments(1),
		serve: $arguments(0)
	}

});


/*
Script: Fx.Tween.js
	Formerly Fx.Style, effect to transition any CSS property for an element.

License:
	MIT-style license.
*/

Fx.Tween = new Class({

	Extends: Fx.CSS,

	initialize: function(element, options){
		this.element = this.subject = document.id(element);
		this.parent(options);
	},

	set: function(property, now){
		if (arguments.length == 1){
			now = property;
			property = this.property || this.options.property;
		}
		this.render(this.element, property, now, this.options.unit);
		return this;
	},

	start: function(property, from, to){
		if (!this.check(property, from, to)) return this;
		var args = Array.flatten(arguments);
		this.property = this.options.property || args.shift();
		var parsed = this.prepare(this.element, this.property, args);
		return this.parent(parsed.from, parsed.to);
	}

});

Element.Properties.tween = {

	set: function(options){
		var tween = this.retrieve('tween');
		if (tween) tween.cancel();
		return this.eliminate('tween').store('tween:options', $extend({link: 'cancel'}, options));
	},

	get: function(options){
		if (options || !this.retrieve('tween')){
			if (options || !this.retrieve('tween:options')) this.set('tween', options);
			this.store('tween', new Fx.Tween(this, this.retrieve('tween:options')));
		}
		return this.retrieve('tween');
	}

};

Element.implement({

	tween: function(property, from, to){
		this.get('tween').start(arguments);
		return this;
	},

	fade: function(how){
		var fade = this.get('tween'), o = 'opacity', toggle;
		how = $pick(how, 'toggle');
		switch (how){
			case 'in': fade.start(o, 1); break;
			case 'out': fade.start(o, 0); break;
			case 'show': fade.set(o, 1); break;
			case 'hide': fade.set(o, 0); break;
			case 'toggle':
				var flag = this.retrieve('fade:flag', this.get('opacity') == 1);
				fade.start(o, (flag) ? 0 : 1);
				this.store('fade:flag', !flag);
				toggle = true;
			break;
			default: fade.start(o, arguments);
		}
		if (!toggle) this.eliminate('fade:flag');
		return this;
	},

	highlight: function(start, end){
		if (!end){
			end = this.retrieve('highlight:original', this.getStyle('background-color'));
			end = (end == 'transparent') ? '#fff' : end;
		}
		var tween = this.get('tween');
		tween.start('background-color', start || '#ffff88', end).chain(function(){
			this.setStyle('background-color', this.retrieve('highlight:original'));
			tween.callChain();
		}.bind(this));
		return this;
	}

});


/*
Script: Fx.Morph.js
	Formerly Fx.Styles, effect to transition any number of CSS properties for an element using an object of rules, or CSS based selector rules.

License:
	MIT-style license.
*/

Fx.Morph = new Class({

	Extends: Fx.CSS,

	initialize: function(element, options){
		this.element = this.subject = document.id(element);
		this.parent(options);
	},

	set: function(now){
		if (typeof now == 'string') now = this.search(now);
		for (var p in now) this.render(this.element, p, now[p], this.options.unit);
		return this;
	},

	compute: function(from, to, delta){
		var now = {};
		for (var p in from) now[p] = this.parent(from[p], to[p], delta);
		return now;
	},

	start: function(properties){
		if (!this.check(properties)) return this;
		if (typeof properties == 'string') properties = this.search(properties);
		var from = {}, to = {};
		for (var p in properties){
			var parsed = this.prepare(this.element, p, properties[p]);
			from[p] = parsed.from;
			to[p] = parsed.to;
		}
		return this.parent(from, to);
	}

});

Element.Properties.morph = {

	set: function(options){
		var morph = this.retrieve('morph');
		if (morph) morph.cancel();
		return this.eliminate('morph').store('morph:options', $extend({link: 'cancel'}, options));
	},

	get: function(options){
		if (options || !this.retrieve('morph')){
			if (options || !this.retrieve('morph:options')) this.set('morph', options);
			this.store('morph', new Fx.Morph(this, this.retrieve('morph:options')));
		}
		return this.retrieve('morph');
	}

};

Element.implement({

	morph: function(props){
		this.get('morph').start(props);
		return this;
	}

});


/*
Script: Fx.Transitions.js
	Contains a set of advanced transitions to be used with any of the Fx Classes.

License:
	MIT-style license.

Credits:
	Easing Equations by Robert Penner, <http://www.robertpenner.com/easing/>, modified and optimized to be used with MooTools.
*/

Fx.implement({

	getTransition: function(){
		var trans = this.options.transition || Fx.Transitions.Sine.easeInOut;
		if (typeof trans == 'string'){
			var data = trans.split(':');
			trans = Fx.Transitions;
			trans = trans[data[0]] || trans[data[0].capitalize()];
			if (data[1]) trans = trans['ease' + data[1].capitalize() + (data[2] ? data[2].capitalize() : '')];
		}
		return trans;
	}

});

Fx.Transition = function(transition, params){
	params = $splat(params);
	return $extend(transition, {
		easeIn: function(pos){
			return transition(pos, params);
		},
		easeOut: function(pos){
			return 1 - transition(1 - pos, params);
		},
		easeInOut: function(pos){
			return (pos <= 0.5) ? transition(2 * pos, params) / 2 : (2 - transition(2 * (1 - pos), params)) / 2;
		}
	});
};

Fx.Transitions = new Hash({

	linear: $arguments(0)

});

Fx.Transitions.extend = function(transitions){
	for (var transition in transitions) Fx.Transitions[transition] = new Fx.Transition(transitions[transition]);
};

Fx.Transitions.extend({

	Pow: function(p, x){
		return Math.pow(p, x[0] || 6);
	},

	Expo: function(p){
		return Math.pow(2, 8 * (p - 1));
	},

	Circ: function(p){
		return 1 - Math.sin(Math.acos(p));
	},

	Sine: function(p){
		return 1 - Math.sin((1 - p) * Math.PI / 2);
	},

	Back: function(p, x){
		x = x[0] || 1.618;
		return Math.pow(p, 2) * ((x + 1) * p - x);
	},

	Bounce: function(p){
		var value;
		for (var a = 0, b = 1; 1; a += b, b /= 2){
			if (p >= (7 - 4 * a) / 11){
				value = b * b - Math.pow((11 - 6 * a - 11 * p) / 4, 2);
				break;
			}
		}
		return value;
	},

	Elastic: function(p, x){
		return Math.pow(2, 10 * --p) * Math.cos(20 * p * Math.PI * (x[0] || 1) / 3);
	}

});

['Quad', 'Cubic', 'Quart', 'Quint'].each(function(transition, i){
	Fx.Transitions[transition] = new Fx.Transition(function(p){
		return Math.pow(p, [i + 2]);
	});
});


/*
Script: Request.js
	Powerful all purpose Request Class. Uses XMLHTTPRequest.

License:
	MIT-style license.
*/

var Request = new Class({

	Implements: [Chain, Events, Options],

	options: {/*
		onRequest: $empty,
		onComplete: $empty,
		onCancel: $empty,
		onSuccess: $empty,
		onFailure: $empty,
		onException: $empty,*/
		url: '',
		data: '',
		headers: {
			'X-Requested-With': 'XMLHttpRequest',
			'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
		},
		async: true,
		format: false,
		method: 'post',
		link: 'ignore',
		isSuccess: null,
		emulation: true,
		urlEncoded: true,
		encoding: 'utf-8',
		evalScripts: false,
		evalResponse: false,
		noCache: false
	},

	initialize: function(options){
		this.xhr = new Browser.Request();
		this.setOptions(options);
		this.options.isSuccess = this.options.isSuccess || this.isSuccess;
		this.headers = new Hash(this.options.headers);
	},

	onStateChange: function(){
		if (this.xhr.readyState != 4 || !this.running) return;
		this.running = false;
		this.status = 0;
		$try(function(){
			this.status = this.xhr.status;
		}.bind(this));
		this.xhr.onreadystatechange = $empty;
		if (this.options.isSuccess.call(this, this.status)){
			this.response = {text: this.xhr.responseText, xml: this.xhr.responseXML};
			this.success(this.response.text, this.response.xml);
		} else {
			this.response = {text: null, xml: null};
			this.failure();
		}
	},

	isSuccess: function(){
		return ((this.status >= 200) && (this.status < 300));
	},

	processScripts: function(text){
		if (this.options.evalResponse || (/(ecma|java)script/).test(this.getHeader('Content-type'))) return $exec(text);
		return text.stripScripts(this.options.evalScripts);
	},

	success: function(text, xml){
		this.onSuccess(this.processScripts(text), xml);
	},

	onSuccess: function(){
		this.fireEvent('complete', arguments).fireEvent('success', arguments).callChain();
	},

	failure: function(){
		this.onFailure();
	},

	onFailure: function(){
		this.fireEvent('complete').fireEvent('failure', this.xhr);
	},

	setHeader: function(name, value){
		this.headers.set(name, value);
		return this;
	},

	getHeader: function(name){
		return $try(function(){
			return this.xhr.getResponseHeader(name);
		}.bind(this));
	},

	check: function(){
		if (!this.running) return true;
		switch (this.options.link){
			case 'cancel': this.cancel(); return true;
			case 'chain': this.chain(this.caller.bind(this, arguments)); return false;
		}
		return false;
	},

	send: function(options){
		if (!this.check(options)) return this;
		this.running = true;

		var type = $type(options);
		if (type == 'string' || type == 'element') options = {data: options};

		var old = this.options;
		options = $extend({data: old.data, url: old.url, method: old.method}, options);
		var data = options.data, url = options.url, method = options.method.toLowerCase();

		switch ($type(data)){
			case 'element': data = document.id(data).toQueryString(); break;
			case 'object': case 'hash': data = Hash.toQueryString(data);
		}

		if (this.options.format){
			var format = 'format=' + this.options.format;
			data = (data) ? format + '&' + data : format;
		}

		if (this.options.emulation && !['get', 'post'].contains(method)){
			var _method = '_method=' + method;
			data = (data) ? _method + '&' + data : _method;
			method = 'post';
		}

		if (this.options.urlEncoded && method == 'post'){
			var encoding = (this.options.encoding) ? '; charset=' + this.options.encoding : '';
			this.headers.set('Content-type', 'application/x-www-form-urlencoded' + encoding);
		}

		if (this.options.noCache){
			var noCache = 'noCache=' + new Date().getTime();
			data = (data) ? noCache + '&' + data : noCache;
		}

		var trimPosition = url.lastIndexOf('/');
		if (trimPosition > -1 && (trimPosition = url.indexOf('#')) > -1) url = url.substr(0, trimPosition);

		if (data && method == 'get'){
			url = url + (url.contains('?') ? '&' : '?') + data;
			data = null;
		}

		this.xhr.open(method.toUpperCase(), url, this.options.async);

		this.xhr.onreadystatechange = this.onStateChange.bind(this);

		this.headers.each(function(value, key){
			try {
				this.xhr.setRequestHeader(key, value);
			} catch (e){
				this.fireEvent('exception', [key, value]);
			}
		}, this);

		this.fireEvent('request');
		this.xhr.send(data);
		if (!this.options.async) this.onStateChange();
		return this;
	},

	cancel: function(){
		if (!this.running) return this;
		this.running = false;
		this.xhr.abort();
		this.xhr.onreadystatechange = $empty;
		this.xhr = new Browser.Request();
		this.fireEvent('cancel');
		return this;
	}

});

(function(){

var methods = {};
['get', 'post', 'put', 'delete', 'GET', 'POST', 'PUT', 'DELETE'].each(function(method){
	methods[method] = function(){
		var params = Array.link(arguments, {url: String.type, data: $defined});
		return this.send($extend(params, {method: method}));
	};
});

Request.implement(methods);

})();

Element.Properties.send = {

	set: function(options){
		var send = this.retrieve('send');
		if (send) send.cancel();
		return this.eliminate('send').store('send:options', $extend({
			data: this, link: 'cancel', method: this.get('method') || 'post', url: this.get('action')
		}, options));
	},

	get: function(options){
		if (options || !this.retrieve('send')){
			if (options || !this.retrieve('send:options')) this.set('send', options);
			this.store('send', new Request(this.retrieve('send:options')));
		}
		return this.retrieve('send');
	}

};

Element.implement({

	send: function(url){
		var sender = this.get('send');
		sender.send({data: this, url: url || sender.options.url});
		return this;
	}

});


/*
Script: Request.HTML.js
	Extends the basic Request Class with additional methods for interacting with HTML responses.

License:
	MIT-style license.
*/

Request.HTML = new Class({

	Extends: Request,

	options: {
		update: false,
		append: false,
		evalScripts: true,
		filter: false
	},

	processHTML: function(text){
		var match = text.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
		text = (match) ? match[1] : text;

		var container = new Element('div');

		return $try(function(){
			var root = '<root>' + text + '</root>', doc;
			if (Browser.Engine.trident){
				doc = new ActiveXObject('Microsoft.XMLDOM');
				doc.async = false;
				doc.loadXML(root);
			} else {
				doc = new DOMParser().parseFromString(root, 'text/xml');
			}
			root = doc.getElementsByTagName('root')[0];
			if (!root) return null;
			for (var i = 0, k = root.childNodes.length; i < k; i++){
				var child = Element.clone(root.childNodes[i], true, true);
				if (child) container.grab(child);
			}
			return container;
		}) || container.set('html', text);
	},

	success: function(text){
		var options = this.options, response = this.response;

		response.html = text.stripScripts(function(script){
			response.javascript = script;
		});

		var temp = this.processHTML(response.html);

		response.tree = temp.childNodes;
		response.elements = temp.getElements('*');

		if (options.filter) response.tree = response.elements.filter(options.filter);
		if (options.update) document.id(options.update).empty().set('html', response.html);
		else if (options.append) document.id(options.append).adopt(temp.getChildren());
		if (options.evalScripts) $exec(response.javascript);

		this.onSuccess(response.tree, response.elements, response.html, response.javascript);
	}

});

Element.Properties.load = {

	set: function(options){
		var load = this.retrieve('load');
		if (load) load.cancel();
		return this.eliminate('load').store('load:options', $extend({data: this, link: 'cancel', update: this, method: 'get'}, options));
	},

	get: function(options){
		if (options || ! this.retrieve('load')){
			if (options || !this.retrieve('load:options')) this.set('load', options);
			this.store('load', new Request.HTML(this.retrieve('load:options')));
		}
		return this.retrieve('load');
	}

};

Element.implement({

	load: function(){
		this.get('load').send(Array.link(arguments, {data: Object.type, url: String.type}));
		return this;
	}

});


/*
Script: Request.JSON.js
	Extends the basic Request Class with additional methods for sending and receiving JSON data.

License:
	MIT-style license.
*/

Request.JSON = new Class({

	Extends: Request,

	options: {
		secure: true
	},

	initialize: function(options){
		this.parent(options);
		this.headers.extend({'Accept': 'application/json', 'X-Request': 'JSON'});
	},

	success: function(text){
		this.response.json = JSON.decode(text, this.options.secure);
		this.onSuccess(this.response.json, text);
	}

});
MooTools.More = {
	'version': '1.2.3.1'
};

/*
Script: MooTools.Lang.js
	Provides methods for localization.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
*/

(function(){

	var data = {
		language: 'en-US',
		languages: {
			'en-US': {}
		},
		cascades: ['en-US']
	};

	var cascaded;

	MooTools.lang = new Events();

	$extend(MooTools.lang, {

		setLanguage: function(lang){
			if (!data.languages[lang]) return this;
			data.language = lang;
			this.load();
			this.fireEvent('langChange', lang);
			return this;
		},

		load: function() {
			var langs = this.cascade(this.getCurrentLanguage());
			cascaded = {};
			$each(langs, function(set, setName){
				cascaded[setName] = this.lambda(set);
			}, this);
		},

		getCurrentLanguage: function(){
			return data.language;
		},

		addLanguage: function(lang){
			data.languages[lang] = data.languages[lang] || {};
			return this;
		},

		cascade: function(lang){
			var cascades = (data.languages[lang] || {}).cascades || [];
			cascades.combine(data.cascades);
			cascades.erase(lang).push(lang);
			var langs = cascades.map(function(lng){
				return data.languages[lng];
			}, this);
			return $merge.apply(this, langs);
		},

		lambda: function(set) {
			(set || {}).get = function(key, args){
				return $lambda(set[key]).apply(this, $splat(args));
			};
			return set;
		},

		get: function(set, key, args){
			if (cascaded && cascaded[set]) return (key ? cascaded[set].get(key, args) : cascaded[set]);
		},

		set: function(lang, set, members){
			this.addLanguage(lang);
			langData = data.languages[lang];
			if (!langData[set]) langData[set] = {};
			$extend(langData[set], members);
			if (lang == this.getCurrentLanguage()){
				this.load();
				this.fireEvent('langChange', lang);
			}
			return this;
		},

		list: function(){
			return Hash.getKeys(data.languages);
		}

	});

})();

/*
Script: Log.js
	Provides basic logging functionality for plugins to implement.

	License:
		MIT-style license.

	Authors:
		Guillermo Rauch
*/

var Log = new Class({

	log: function(){
		Log.logger.call(this, arguments);
	}

});

Log.logged = [];

Log.logger = function(){
	if(window.console && console.log) console.log.apply(console, arguments);
	else Log.logged.push(arguments);
};

/*
Script: Class.Refactor.js
	Extends a class onto itself with new property, preserving any items attached to the class's namespace.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
*/

Class.refactor = function(original, refactors){

	$each(refactors, function(item, name){
		var origin = original.prototype[name];
		if (origin && (origin = origin._origin) && typeof item == 'function') original.implement(name, function(){
			var old = this.previous;
			this.previous = origin;
			var value = item.apply(this, arguments);
			this.previous = old;
			return value;
		}); else original.implement(name, item);
	});

	return original;

};

/*
Script: Class.Binds.js
	Automagically binds specified methods in a class to the instance of the class.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
*/

Class.Mutators.Binds = function(binds){
    return binds;
};

Class.Mutators.initialize = function(initialize){
	return function(){
		$splat(this.Binds).each(function(name){
			var original = this[name];
			if (original) this[name] = original.bind(this);
		}, this);
		return initialize.apply(this, arguments);
	};
};

/*
Script: Class.Occlude.js
	Prevents a class from being applied to a DOM element twice.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
*/

Class.Occlude = new Class({

	occlude: function(property, element){
		element = document.id(element || this.element);
		var instance = element.retrieve(property || this.property);
		if (instance && !$defined(this.occluded)){
			this.occluded = instance;
		} else {
			this.occluded = false;
			element.store(property || this.property, this);
		}
		return this.occluded;
	}

});

/*
Script: Chain.Wait.js
	Adds a method to inject pauses between chained events.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
*/

(function(){

	var wait = {
		wait: function(duration){
			return this.chain(function(){
				this.callChain.delay($pick(duration, 500), this);
			}.bind(this));
		}
	};

	Chain.implement(wait);

	if (window.Fx){
		Fx.implement(wait);
		['Css', 'Tween', 'Elements'].each(function(cls){
			if (Fx[cls]) Fx[cls].implement(wait);
		});
	}

	try {
		Element.implement({
			chains: function(effects){
				$splat($pick(effects, ['tween', 'morph', 'reveal'])).each(function(effect){
					effect = this.get(effect);
					if (!effect) return;
					effect.setOptions({
						link:'chain'
					});
				}, this);
				return this;
			},
			pauseFx: function(duration, effect){
				this.chains(effect).get($pick(effect, 'tween')).wait(duration);
				return this;
			}
		});
	} catch(e){}

})();

/*
Script: Array.Extras.js
	Extends the Array native object to include useful methods to work with arrays.

	License:
		MIT-style license.

	Authors:
		Christoph Pojer

*/
Array.implement({

	min: function(){
		return Math.min.apply(null, this);
	},

	max: function(){
		return Math.max.apply(null, this);
	},

	average: function(){
		return this.length ? this.sum() / this.length : 0;
	},

	sum: function(){
		var result = 0, l = this.length;
		if (l){
			do {
				result += this[--l];
			} while (l);
		}
		return result;
	},

	unique: function(){
		return [].combine(this);
	}

});

/*
Script: Date.js
	Extends the Date native object to include methods useful in managing dates.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
		Nicholas Barthelemy - https://svn.nbarthelemy.com/date-js/
		Harald Kirshner - mail [at] digitarald.de; http://digitarald.de
		Scott Kyle - scott [at] appden.com; http://appden.com

*/

(function(){

if (!Date.now) Date.now = $time;

Date.Methods = {};

['Date', 'Day', 'FullYear', 'Hours', 'Milliseconds', 'Minutes', 'Month', 'Seconds', 'Time', 'TimezoneOffset',
	'Week', 'Timezone', 'GMTOffset', 'DayOfYear', 'LastMonth', 'LastDayOfMonth', 'UTCDate', 'UTCDay', 'UTCFullYear',
	'AMPM', 'Ordinal', 'UTCHours', 'UTCMilliseconds', 'UTCMinutes', 'UTCMonth', 'UTCSeconds'].each(function(method){
	Date.Methods[method.toLowerCase()] = method;
});

$each({
	ms: 'Milliseconds',
	year: 'FullYear',
	min: 'Minutes',
	mo: 'Month',
	sec: 'Seconds',
	hr: 'Hours'
}, function(value, key){
	Date.Methods[key] = value;
});

var zeroize = function(what, length){
	return new Array(length - what.toString().length + 1).join('0') + what;
};

Date.implement({

	set: function(prop, value){
		switch ($type(prop)){
			case 'object':
				for (var p in prop) this.set(p, prop[p]);
				break;
			case 'string':
				prop = prop.toLowerCase();
				var m = Date.Methods;
				if (m[prop]) this['set' + m[prop]](value);
		}
		return this;
	},

	get: function(prop){
		prop = prop.toLowerCase();
		var m = Date.Methods;
		if (m[prop]) return this['get' + m[prop]]();
		return null;
	},

	clone: function(){
		return new Date(this.get('time'));
	},

	increment: function(interval, times){
		interval = interval || 'day';
		times = $pick(times, 1);

		switch (interval){
			case 'year':
				return this.increment('month', times * 12);
			case 'month':
				var d = this.get('date');
				this.set('date', 1).set('mo', this.get('mo') + times);
				return this.set('date', d.min(this.get('lastdayofmonth')));
			case 'week':
				return this.increment('day', times * 7);
			case 'day':
				return this.set('date', this.get('date') + times);
		}

		if (!Date.units[interval]) throw new Error(interval + ' is not a supported interval');

		return this.set('time', this.get('time') + times * Date.units[interval]());
	},

	decrement: function(interval, times){
		return this.increment(interval, -1 * $pick(times, 1));
	},

	isLeapYear: function(){
		return Date.isLeapYear(this.get('year'));
	},

	clearTime: function(){
		return this.set({hr: 0, min: 0, sec: 0, ms: 0});
	},

	diff: function(d, resolution){
		resolution = resolution || 'day';
		if ($type(d) == 'string') d = Date.parse(d);

		switch (resolution){
			case 'year':
				return d.get('year') - this.get('year');
			case 'month':
				var months = (d.get('year') - this.get('year')) * 12;
				return months + d.get('mo') - this.get('mo');
			default:
				var diff = d.get('time') - this.get('time');
				if (Date.units[resolution]() > diff.abs()) return 0;
				return ((d.get('time') - this.get('time')) / Date.units[resolution]()).round();
		}

		return null;
	},

	getLastDayOfMonth: function(){
		return Date.daysInMonth(this.get('mo'), this.get('year'));
	},

	getDayOfYear: function(){
		return (Date.UTC(this.get('year'), this.get('mo'), this.get('date') + 1)
			- Date.UTC(this.get('year'), 0, 1)) / Date.units.day();
	},

	getWeek: function(){
		return (this.get('dayofyear') / 7).ceil();
	},

	getOrdinal: function(day){
		return Date.getMsg('ordinal', day || this.get('date'));
	},

	getTimezone: function(){
		return this.toString()
			.replace(/^.*? ([A-Z]{3}).[0-9]{4}.*$/, '$1')
			.replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/, '$1$2$3');
	},

	getGMTOffset: function(){
		var off = this.get('timezoneOffset');
		return ((off > 0) ? '-' : '+') + zeroize((off.abs() / 60).floor(), 2) + zeroize(off % 60, 2);
	},

	setAMPM: function(ampm){
		ampm = ampm.toUpperCase();
		var hr = this.get('hr');
		if (hr > 11 && ampm == 'AM') return this.decrement('hour', 12);
		else if (hr < 12 && ampm == 'PM') return this.increment('hour', 12);
		return this;
	},

	getAMPM: function(){
		return (this.get('hr') < 12) ? 'AM' : 'PM';
	},

	parse: function(str){
		this.set('time', Date.parse(str));
		return this;
	},

	isValid: function(date) {
		return !!(date || this).valueOf();
	},

	format: function(f){
		if (!this.isValid()) return 'invalid date';
		f = f || '%x %X';
		f = formats[f.toLowerCase()] || f; // replace short-hand with actual format
		var d = this;
		return f.replace(/%([a-z%])/gi,
			function($1, $2){
				switch ($2){
					case 'a': return Date.getMsg('days')[d.get('day')].substr(0, 3);
					case 'A': return Date.getMsg('days')[d.get('day')];
					case 'b': return Date.getMsg('months')[d.get('month')].substr(0, 3);
					case 'B': return Date.getMsg('months')[d.get('month')];
					case 'c': return d.toString();
					case 'd': return zeroize(d.get('date'), 2);
					case 'H': return zeroize(d.get('hr'), 2);
					case 'I': return ((d.get('hr') % 12) || 12);
					case 'j': return zeroize(d.get('dayofyear'), 3);
					case 'm': return zeroize((d.get('mo') + 1), 2);
					case 'M': return zeroize(d.get('min'), 2);
					case 'o': return d.get('ordinal');
					case 'p': return Date.getMsg(d.get('ampm'));
					case 'S': return zeroize(d.get('seconds'), 2);
					case 'U': return zeroize(d.get('week'), 2);
					case 'w': return d.get('day');
					case 'x': return d.format(Date.getMsg('shortDate'));
					case 'X': return d.format(Date.getMsg('shortTime'));
					case 'y': return d.get('year').toString().substr(2);
					case 'Y': return d.get('year');
					case 'T': return d.get('GMTOffset');
					case 'Z': return d.get('Timezone');
				}
				return $2;
			}
		);
	},

	toISOString: function(){
		return this.format('iso8601');
	}

});

Date.alias('diff', 'compare');
Date.alias('format', 'strftime');

var formats = {
	db: '%Y-%m-%d %H:%M:%S',
	compact: '%Y%m%dT%H%M%S',
	iso8601: '%Y-%m-%dT%H:%M:%S%T',
	rfc822: '%a, %d %b %Y %H:%M:%S %Z',
	'short': '%d %b %H:%M',
	'long': '%B %d, %Y %H:%M'
};

var nativeParse = Date.parse;

var parseWord = function(type, word, num){
	var ret = -1;
	var translated = Date.getMsg(type + 's');

	switch ($type(word)){
		case 'object':
			ret = translated[word.get(type)];
			break;
		case 'number':
			ret = translated[month - 1];
			if (!ret) throw new Error('Invalid ' + type + ' index: ' + index);
			break;
		case 'string':
			var match = translated.filter(function(name){
				return this.test(name);
			}, new RegExp('^' + word, 'i'));
			if (!match.length)    throw new Error('Invalid ' + type + ' string');
			if (match.length > 1) throw new Error('Ambiguous ' + type);
			ret = match[0];
	}

	return (num) ? translated.indexOf(ret) : ret;
};


Date.extend({

	getMsg: function(key, args) {
		return MooTools.lang.get('Date', key, args);
	},

	units: {
		ms: $lambda(1),
		second: $lambda(1000),
		minute: $lambda(60000),
		hour: $lambda(3600000),
		day: $lambda(86400000),
		week: $lambda(608400000),
		month: function(month, year){
			var d = new Date;
			return Date.daysInMonth($pick(month, d.get('mo')), $pick(year, d.get('year'))) * 86400000;
		},
		year: function(year){
			year = year || new Date().get('year');
			return Date.isLeapYear(year) ? 31622400000 : 31536000000;
		}
	},

	daysInMonth: function(month, year){
		return [31, Date.isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
	},

	isLeapYear: function(year){
		return new Date(year, 1, 29).get('date') == 29;
	},

	parse: function(from){
		var t = $type(from);
		if (t == 'number') return new Date(from);
		if (t != 'string') return from;
		from = from.clean();
		if (!from.length) return null;

		var parsed;
		Date.parsePatterns.some(function(pattern){
			var r = pattern.re.exec(from);
			return (r) ? (parsed = pattern.handler(r)) : false;
		});

		return parsed || new Date(nativeParse(from));
	},

	parseDay: function(day, num){
		return parseWord('day', day, num);
	},

	parseMonth: function(month, num){
		return parseWord('month', month, num);
	},

	parseUTC: function(value){
		var localDate = new Date(value);
		var utcSeconds = Date.UTC(localDate.get('year'),
		localDate.get('mo'),
		localDate.get('date'),
		localDate.get('hr'),
		localDate.get('min'),
		localDate.get('sec'));
		return new Date(utcSeconds);
	},

	orderIndex: function(unit){
		return Date.getMsg('dateOrder').indexOf(unit) + 1;
	},

	defineFormat: function(name, format){
		formats[name] = format;
	},

	defineFormats: function(formats){
		for (var name in formats) Date.defineFormat(name, formats[f]);
	},

	parsePatterns: [],

	defineParser: function(pattern){
		Date.parsePatterns.push( pattern.re && pattern.handler ? pattern : build(pattern) );
	},

	defineParsers: function(){
		Array.flatten(arguments).each(Date.defineParser);
	},

	define2DigitYearStart: function(year){
		yr_start = year % 100;
		yr_base = year - yr_start;
	}

});

var yr_base = 1900;
var yr_start = 70;

var replacers = function(key){
	switch(key){
		case 'x': // iso8601 covers yyyy-mm-dd, so just check if month is first
			return (Date.orderIndex('month') == 1) ? '%m[.-/]%d([.-/]%y)?' : '%d[.-/]%m([.-/]%y)?';
		case 'X':
			return '%H([.:]%M)?([.:]%S([.:]%s)?)?\\s?%p?\\s?%T?';
		case 'o':
			return '[^\\d\\s]*';
	}
	return null;
};

var keys = {
	a: /[a-z]{3,}/,
	d: /[0-2]?[0-9]|3[01]/,
	H: /[01]?[0-9]|2[0-3]/,
	I: /0?[1-9]|1[0-2]/,
	M: /[0-5]?\d/,
	s: /\d+/,
	p: /[ap]\.?m\.?/,
	y: /\d{2}|\d{4}/,
	Y: /\d{4}/,
	T: /Z|[+-]\d{2}(?::?\d{2})?/
};

keys.B = keys.b = keys.A = keys.a;
keys.m = keys.I;
keys.S = keys.M;

var lang;

var build = function(format){
	if (!lang) return {format: format}; // wait until language is set

	var parsed = [null];

	var re = (format.source || format) // allow format to be regex
	 .replace(/%([a-z])/gi,
		function($1, $2){
			return replacers($2) || $1;
		}
	).replace(/\((?!\?)/g, '(?:') // make all groups non-capturing
	 .replace(/ (?!\?|\*)/g, ',? ') // be forgiving with spaces and commas
	 .replace(/%([a-z%])/gi,
		function($1, $2){
			var p = keys[$2];
			if (!p) return $2;
			parsed.push($2);
			return '(' + p.source + ')';
		}
	);

	return {
		format: format,
		re: new RegExp('^' + re + '$', 'i'),
		handler: function(bits){
			var date = new Date().clearTime();
			for (var i = 1; i < parsed.length; i++)
				date = handle.call(date, parsed[i], bits[i]);
			return date;
		}
	};
};

var handle = function(key, value){
	if (!value){
		if (key == 'm' || key == 'd') value = 1;
		else return this;
	}

	switch(key){
		case 'a': case 'A': return this.set('day', Date.parseDay(value, true));
		case 'b': case 'B': return this.set('mo', Date.parseMonth(value, true));
		case 'd': return this.set('date', value);
		case 'H': case 'I': return this.set('hr', value);
		case 'm': return this.set('mo', value - 1);
		case 'M': return this.set('min', value);
		case 'p': return this.set('ampm', value.replace(/\./g, ''));
		case 'S': return this.set('sec', value);
		case 's': return this.set('ms', ('0.' + value) * 1000);
		case 'w': return this.set('day', value);
		case 'Y': return this.set('year', value);
		case 'y':
			value = +value;
			if (value < 100) value += yr_base + (value < yr_start ? 100 : 0);
			return this.set('year', value);
		case 'T':
			if (value == 'Z') value = '+00';
			var offset = value.match(/([+-])(\d{2}):?(\d{2})?/);
			offset = (offset[1] + '1') * (offset[2] * 60 + (+offset[3] || 0)) + this.getTimezoneOffset();
			return this.set('time', (this * 1) - offset * 60000);
	}

	return this;
};

Date.defineParsers(
	'%Y([-./]%m([-./]%d((T| )%X)?)?)?', // "1999-12-31", "1999-12-31 11:59pm", "1999-12-31 23:59:59", ISO8601
	'%Y%m%d(T%H(%M%S?)?)?', // "19991231", "19991231T1159", compact
	'%x( %X)?', // "12/31", "12.31.99", "12-31-1999", "12/31/2008 11:59 PM"
	'%d%o( %b( %Y)?)?( %X)?', // "31st", "31st December", "31 Dec 1999", "31 Dec 1999 11:59pm"
	'%b %d%o?( %Y)?( %X)?', // Same as above with month and day switched
	'%b %Y' // "December 1999"
);

MooTools.lang.addEvent('langChange', function(language){
	if (!MooTools.lang.get('Date')) return;

	lang = language;
	Date.parsePatterns.each(function(pattern, i){
		if (pattern.format) Date.parsePatterns[i] = build(pattern.format);
	});

}).fireEvent('langChange', MooTools.lang.getCurrentLanguage());

})();

/*
Script: Date.Extras.js
	Extends the Date native object to include extra methods (on top of those in Date.js).

	License:
		MIT-style license.

	Authors:
		Aaron Newton

*/

Date.implement({

	timeDiffInWords: function(relative_to){
		return Date.distanceOfTimeInWords(this, relative_to || new Date);
	}

});

Date.alias('timeDiffInWords', 'timeAgoInWords');

Date.extend({

	distanceOfTimeInWords: function(from, to){
		return Date.getTimePhrase(((to - from) / 1000).toInt());
	},

	getTimePhrase: function(delta){
		var suffix = (delta < 0) ? 'Until' : 'Ago';
		if (delta < 0) delta *= -1;

		var msg = (delta < 60) ? 'lessThanMinute' :
				  (delta < 120) ? 'minute' :
				  (delta < (45 * 60)) ? 'minutes' :
				  (delta < (90 * 60)) ? 'hour' :
				  (delta < (24 * 60 * 60)) ? 'hours' :
				  (delta < (48 * 60 * 60)) ? 'day' :
				  'days';

		switch(msg){
			case 'minutes': delta = (delta / 60).round(); break;
			case 'hours':   delta = (delta / 3600).round(); break;
			case 'days': 	delta = (delta / 86400).round();
		}

		return Date.getMsg(msg + suffix, delta).substitute({delta: delta});
	}

});


Date.defineParsers(

	{
		// "today", "tomorrow", "yesterday"
		re: /^tod|tom|yes/i,
		handler: function(bits){
			var d = new Date().clearTime();
			switch(bits[0]){
				case 'tom': return d.increment();
				case 'yes': return d.decrement();
				default: 	return d;
			}
		}
	},

	{
		// "next Wednesday", "last Thursday"
		re: /^(next|last) ([a-z]+)$/i,
		handler: function(bits){
			var d = new Date().clearTime();
			var day = d.getDay();
			var newDay = Date.parseDay(bits[2], true);
			var addDays = newDay - day;
			if (newDay <= day) addDays += 7;
			if (bits[1] == 'last') addDays -= 7;
			return d.set('date', d.getDate() + addDays);
		}
	}

);


/*
Script: Hash.Extras.js
	Extends the Hash native object to include getFromPath which allows a path notation to child elements.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
*/

Hash.implement({

	getFromPath: function(notation){
		var source = this.getClean();
		notation.replace(/\[([^\]]+)\]|\.([^.[]+)|[^[.]+/g, function(match){
			if (!source) return null;
			var prop = arguments[2] || arguments[1] || arguments[0];
			source = (prop in source) ? source[prop] : null;
			return match;
		});
		return source;
	},

	cleanValues: function(method){
		method = method || $defined;
		this.each(function(v, k){
			if (!method(v)) this.erase(k);
		}, this);
		return this;
	},

	run: function(){
		var args = arguments;
		this.each(function(v, k){
			if ($type(v) == 'function') v.run(args);
		});
	}

});

/*
Script: String.Extras.js
	Extends the String native object to include methods useful in managing various kinds of strings (query strings, urls, html, etc).

	License:
		MIT-style license.

	Authors:
		Aaron Newton
		Guillermo Rauch

*/

(function(){

var special = ['À','à','Á','á','Â','â','Ã','ã','Ä','ä','Å','å','Ă','ă','Ą','ą','Ć','ć','Č','č','Ç','ç', 'Ď','ď','Đ','đ', 'È','è','É','é','Ê','ê','Ë','ë','Ě','ě','Ę','ę', 'Ğ','ğ','Ì','ì','Í','í','Î','î','Ï','ï', 'Ĺ','ĺ','Ľ','ľ','Ł','ł', 'Ñ','ñ','Ň','ň','Ń','ń','Ò','ò','Ó','ó','Ô','ô','Õ','õ','Ö','ö','Ø','ø','ő','Ř','ř','Ŕ','ŕ','Š','š','Ş','ş','Ś','ś', 'Ť','ť','Ť','ť','Ţ','ţ','Ù','ù','Ú','ú','Û','û','Ü','ü','Ů','ů', 'Ÿ','ÿ','ý','Ý','Ž','ž','Ź','ź','Ż','ż', 'Þ','þ','Ð','ð','ß','Œ','œ','Æ','æ','µ'];

var standard = ['A','a','A','a','A','a','A','a','Ae','ae','A','a','A','a','A','a','C','c','C','c','C','c','D','d','D','d', 'E','e','E','e','E','e','E','e','E','e','E','e','G','g','I','i','I','i','I','i','I','i','L','l','L','l','L','l', 'N','n','N','n','N','n', 'O','o','O','o','O','o','O','o','Oe','oe','O','o','o', 'R','r','R','r', 'S','s','S','s','S','s','T','t','T','t','T','t', 'U','u','U','u','U','u','Ue','ue','U','u','Y','y','Y','y','Z','z','Z','z','Z','z','TH','th','DH','dh','ss','OE','oe','AE','ae','u'];

var tidymap = {
	"[\xa0\u2002\u2003\u2009]": " ",
	"\xb7": "*",
	"[\u2018\u2019]": "'",
	"[\u201c\u201d]": '"',
	"\u2026": "...",
	"\u2013": "-",
	"\u2014": "--",
	"\uFFFD": "&raquo;"
};

String.implement({

	standardize: function(){
		var text = this;
		special.each(function(ch, i){
			text = text.replace(new RegExp(ch, 'g'), standard[i]);
		});
		return text;
	},

	repeat: function(times){
		return new Array(times + 1).join(this);
	},

	pad: function(length, str, dir){
		if (this.length >= length) return this;
		str = str || ' ';
		var pad = str.repeat(length - this.length).substr(0, length - this.length);
		if (!dir || dir == 'right') return this + pad;
		if (dir == 'left') return pad + this;
		return pad.substr(0, (pad.length / 2).floor()) + this + pad.substr(0, (pad.length / 2).ceil());
	},

	stripTags: function(){
		return this.replace(/<\/?[^>]+>/gi, '');
	},

	tidy: function(){
		var txt = this.toString();
		$each(tidymap, function(value, key){
			txt = txt.replace(new RegExp(key, 'g'), value);
		});
		return txt;
	}

});

})();

/*
Script: String.QueryString.js
	...

	License:
		MIT-style license.

	Authors:
		Sebastian Markbåge, Aaron Newton, Lennart Pilon, Valerio Proietti
*/

String.implement({

	parseQueryString: function(){
		var vars = this.split(/[&;]/), res = {};
		if (vars.length) vars.each(function(val){
			var index = val.indexOf('='),
				keys = index < 0 ? [''] : val.substr(0, index).match(/[^\]\[]+/g),
				value = decodeURIComponent(val.substr(index + 1)),
				obj = res;
			keys.each(function(key, i){
				var current = obj[key];
				if(i < keys.length - 1)
					obj = obj[key] = current || {};
				else if($type(current) == 'array')
					current.push(value);
				else
					obj[key] = $defined(current) ? [current, value] : value;
			});
		});
		return res;
	},

	cleanQueryString: function(method){
		return this.split('&').filter(function(val){
			var index = val.indexOf('='),
			key = index < 0 ? '' : val.substr(0, index),
			value = val.substr(index + 1);
			return method ? method.run([key, value]) : $chk(value);
		}).join('&');
	}

});

/*
Script: URI.js
	Provides methods useful in managing the window location and uris.

	License:
		MIT-style license.

	Authors:
		Sebastian Markb�ge, Aaron Newton
*/

var URI = new Class({

	Implements: Options,

	/*
	options: {
		base: false
	},
	*/

	regex: /^(?:(\w+):)?(?:\/\/(?:(?:([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)?(\.\.?$|(?:[^?#\/]*\/)*)([^?#]*)(?:\?([^#]*))?(?:#(.*))?/,
	parts: ['scheme', 'user', 'password', 'host', 'port', 'directory', 'file', 'query', 'fragment'],
	schemes: { http: 80, https: 443, ftp: 21, rtsp: 554, mms: 1755, file: 0 },

	initialize: function(uri, options){
		this.setOptions(options);
		var base = this.options.base || URI.base;
		uri = uri || base;
		if (uri && uri.parsed)
			this.parsed = $unlink(uri.parsed);
		else
			this.set('value', uri.href || uri.toString(), base ? new URI(base) : false);
	},

	parse: function(value, base){
		var bits = value.match(this.regex);
		if (!bits) return false;
		bits.shift();
		return this.merge(bits.associate(this.parts), base);
	},

	merge: function(bits, base){
		if ((!bits || !bits.scheme) && (!base || !base.scheme)) return false;
		if (base){
			this.parts.every(function(part){
				if (bits[part]) return false;
				bits[part] = base[part] || '';
				return true;
			});
		}
		bits.port = bits.port || this.schemes[bits.scheme.toLowerCase()];
		bits.directory = bits.directory ? this.parseDirectory(bits.directory, base ? base.directory : '') : '/';
		return bits;
	},

	parseDirectory: function(directory, baseDirectory) {
		directory = (directory.substr(0, 1) == '/' ? '' : (baseDirectory || '/')) + directory;
		if (!directory.test(URI.regs.directoryDot)) return directory;
		var result = [];
		directory.replace(URI.regs.endSlash, '').split('/').each(function(dir){
			if (dir == '..' && result.length > 0) result.pop();
			else if (dir != '.') result.push(dir);
		});
		return result.join('/') + '/';
	},

	combine: function(bits){
		return bits.value || bits.scheme + '://' +
			(bits.user ? bits.user + (bits.password ? ':' + bits.password : '') + '@' : '') +
			(bits.host || '') + (bits.port && bits.port != this.schemes[bits.scheme] ? ':' + bits.port : '') +
			(bits.directory || '/') + (bits.file || '') +
			(bits.query ? '?' + bits.query : '') +
			(bits.fragment ? '#' + bits.fragment : '');
	},

	set: function(part, value, base){
		if (part == 'value'){
			var scheme = value.match(URI.regs.scheme);
			if (scheme) scheme = scheme[1];
			if (scheme && !$defined(this.schemes[scheme.toLowerCase()])) this.parsed = { scheme: scheme, value: value };
			else this.parsed = this.parse(value, (base || this).parsed) || (scheme ? { scheme: scheme, value: value } : { value: value });
		} else if (part == 'data') {
			this.setData(value);
		} else {
			this.parsed[part] = value;
		}
		return this;
	},

	get: function(part, base){
		switch(part){
			case 'value': return this.combine(this.parsed, base ? base.parsed : false);
			case 'data' : return this.getData();
		}
		return this.parsed[part] || undefined;
	},

	go: function(){
		document.location.href = this.toString();
	},

	toURI: function(){
		return this;
	},

	getData: function(key, part){
		var qs = this.get(part || 'query');
		if (!$chk(qs)) return key ? null : {};
		var obj = qs.parseQueryString();
		return key ? obj[key] : obj;
	},

	setData: function(values, merge, part){
		if ($type(arguments[0]) == 'string'){
			values = this.getData();
			values[arguments[0]] = arguments[1];
		} else if (merge) {
			values = $merge(this.getData(), values);
		}
		return this.set(part || 'query', Hash.toQueryString(values));
	},

	clearData: function(part){
		return this.set(part || 'query', '');
	}

});

['toString', 'valueOf'].each(function(method){
	URI.prototype[method] = function(){
		return this.get('value');
	};
});


URI.regs = {
	endSlash: /\/$/,
	scheme: /^(\w+):/,
	directoryDot: /\.\/|\.$/
};

URI.base = new URI($$('base[href]').getLast(), { base: document.location });

String.implement({

	toURI: function(options){ return new URI(this, options); }

});

/*
Script: URI.Relative.js
	Extends the URI class to add methods for computing relative and absolute urls.

	License:
		MIT-style license.

	Authors:
		Sebastian Markbåge
*/

URI = Class.refactor(URI, {

	combine: function(bits, base){
		if (!base || bits.scheme != base.scheme || bits.host != base.host || bits.port != base.port)
			return this.previous.apply(this, arguments);
		var end = bits.file + (bits.query ? '?' + bits.query : '') + (bits.fragment ? '#' + bits.fragment : '');

		if (!base.directory) return (bits.directory || (bits.file ? '' : './')) + end;

		var baseDir = base.directory.split('/'),
			relDir = bits.directory.split('/'),
			path = '',
			offset;

		var i = 0;
		for(offset = 0; offset < baseDir.length && offset < relDir.length && baseDir[offset] == relDir[offset]; offset++);
		for(i = 0; i < baseDir.length - offset - 1; i++) path += '../';
		for(i = offset; i < relDir.length - 1; i++) path += relDir[i] + '/';

		return (path || (bits.file ? '' : './')) + end;
	},

	toAbsolute: function(base){
		base = new URI(base);
		if (base) base.set('directory', '').set('file', '');
		return this.toRelative(base);
	},

	toRelative: function(base){
		return this.get('value', new URI(base));
	}

});

/*
Script: Element.Forms.js
	Extends the Element native object to include methods useful in managing inputs.

	License:
		MIT-style license.

	Authors:
		Aaron Newton

*/

Element.implement({

	tidy: function(){
		this.set('value', this.get('value').tidy());
	},

	getTextInRange: function(start, end){
		return this.get('value').substring(start, end);
	},

	getSelectedText: function(){
		if (this.setSelectionRange) return this.getTextInRange(this.getSelectionStart(), this.getSelectionEnd());
		return document.selection.createRange().text;
	},

	getSelectedRange: function() {
		if ($defined(this.selectionStart)) return {start: this.selectionStart, end: this.selectionEnd};
		var pos = {start: 0, end: 0};
		var range = this.getDocument().selection.createRange();
		if (!range || range.parentElement() != this) return pos;
		var dup = range.duplicate();
		if (this.type == 'text') {
			pos.start = 0 - dup.moveStart('character', -100000);
			pos.end = pos.start + range.text.length;
		} else {
			var value = this.get('value');
			var offset = value.length - value.match(/[\n\r]*$/)[0].length;
			dup.moveToElementText(this);
			dup.setEndPoint('StartToEnd', range);
			pos.end = offset - dup.text.length;
			dup.setEndPoint('StartToStart', range);
			pos.start = offset - dup.text.length;
		}
		return pos;
	},

	getSelectionStart: function(){
		return this.getSelectedRange().start;
	},

	getSelectionEnd: function(){
		return this.getSelectedRange().end;
	},

	setCaretPosition: function(pos){
		if (pos == 'end') pos = this.get('value').length;
		this.selectRange(pos, pos);
		return this;
	},

	getCaretPosition: function(){
		return this.getSelectedRange().start;
	},

	selectRange: function(start, end){
		if (this.setSelectionRange) {
			this.focus();
			this.setSelectionRange(start, end);
		} else {
			var value = this.get('value');
			var diff = value.substr(start, end - start).replace(/\r/g, '').length;
			start = value.substr(0, start).replace(/\r/g, '').length;
			var range = this.createTextRange();
			range.collapse(true);
			range.moveEnd('character', start + diff);
			range.moveStart('character', start);
			range.select();
		}
		return this;
	},

	insertAtCursor: function(value, select){
		var pos = this.getSelectedRange();
		var text = this.get('value');
		this.set('value', text.substring(0, pos.start) + value + text.substring(pos.end, text.length));
		if ($pick(select, true)) this.selectRange(pos.start, pos.start + value.length);
		else this.setCaretPosition(pos.start + value.length);
		return this;
	},

	insertAroundCursor: function(options, select){
		options = $extend({
			before: '',
			defaultMiddle: '',
			after: ''
		}, options);
		var value = this.getSelectedText() || options.defaultMiddle;
		var pos = this.getSelectedRange();
		var text = this.get('value');
		if (pos.start == pos.end){
			this.set('value', text.substring(0, pos.start) + options.before + value + options.after + text.substring(pos.end, text.length));
			this.selectRange(pos.start + options.before.length, pos.end + options.before.length + value.length);
		} else {
			var current = text.substring(pos.start, pos.end);
			this.set('value', text.substring(0, pos.start) + options.before + current + options.after + text.substring(pos.end, text.length));
			var selStart = pos.start + options.before.length;
			if ($pick(select, true)) this.selectRange(selStart, selStart + current.length);
			else this.setCaretPosition(selStart + text.length);
		}
		return this;
	}

});

/*
Script: Element.Measure.js
	Extends the Element native object to include methods useful in measuring dimensions.

	Element.measure / .expose methods by Daniel Steigerwald
	License: MIT-style license.
	Copyright: Copyright (c) 2008 Daniel Steigerwald, daniel.steigerwald.cz

	License:
		MIT-style license.

	Authors:
		Aaron Newton

*/

Element.implement({

	measure: function(fn){
		var vis = function(el) {
			return !!(!el || el.offsetHeight || el.offsetWidth);
		};
		if (vis(this)) return fn.apply(this);
		var parent = this.getParent(),
			toMeasure = [],
			restorers = [];
		while (!vis(parent) && parent != document.body) {
			toMeasure.push(parent.expose());
			parent = parent.getParent();
		}
		var restore = this.expose();
		var result = fn.apply(this);
		restore();
		toMeasure.each(function(restore){
			restore();
		});
		return result;
	},

	expose: function(){
		if (this.getStyle('display') != 'none') return $empty;
		var before = this.style.cssText;
		this.setStyles({
			display: 'block',
			position: 'absolute',
			visibility: 'hidden'
		});
		return function(){
			this.style.cssText = before;
		}.bind(this);
	},

	getDimensions: function(options){
		options = $merge({computeSize: false},options);
		var dim = {};
		var getSize = function(el, options){
			return (options.computeSize)?el.getComputedSize(options):el.getSize();
		};
		if (this.getStyle('display') == 'none'){
			dim = this.measure(function(){
				return getSize(this, options);
			});
		} else {
			try { //safari sometimes crashes here, so catch it
				dim = getSize(this, options);
			}catch(e){}
		}
		return $chk(dim.x) ? $extend(dim, {width: dim.x, height: dim.y}) : $extend(dim, {x: dim.width, y: dim.height});
	},

	getComputedSize: function(options){
		options = $merge({
			styles: ['padding','border'],
			plains: {
				height: ['top','bottom'],
				width: ['left','right']
			},
			mode: 'both'
		}, options);
		var size = {width: 0,height: 0};
		switch (options.mode){
			case 'vertical':
				delete size.width;
				delete options.plains.width;
				break;
			case 'horizontal':
				delete size.height;
				delete options.plains.height;
				break;
		}
		var getStyles = [];
		//this function might be useful in other places; perhaps it should be outside this function?
		$each(options.plains, function(plain, key){
			plain.each(function(edge){
				options.styles.each(function(style){
					getStyles.push((style == 'border') ? style + '-' + edge + '-' + 'width' : style + '-' + edge);
				});
			});
		});
		var styles = {};
		getStyles.each(function(style){ styles[style] = this.getComputedStyle(style); }, this);
		var subtracted = [];
		$each(options.plains, function(plain, key){ //keys: width, height, plains: ['left', 'right'], ['top','bottom']
			var capitalized = key.capitalize();
			size['total' + capitalized] = 0;
			size['computed' + capitalized] = 0;
			plain.each(function(edge){ //top, left, right, bottom
				size['computed' + edge.capitalize()] = 0;
				getStyles.each(function(style, i){ //padding, border, etc.
					//'padding-left'.test('left') size['totalWidth'] = size['width'] + [padding-left]
					if (style.test(edge)){
						styles[style] = styles[style].toInt() || 0; //styles['padding-left'] = 5;
						size['total' + capitalized] = size['total' + capitalized] + styles[style];
						size['computed' + edge.capitalize()] = size['computed' + edge.capitalize()] + styles[style];
					}
					//if width != width (so, padding-left, for instance), then subtract that from the total
					if (style.test(edge) && key != style &&
						(style.test('border') || style.test('padding')) && !subtracted.contains(style)){
						subtracted.push(style);
						size['computed' + capitalized] = size['computed' + capitalized]-styles[style];
					}
				});
			});
		});

		['Width', 'Height'].each(function(value){
			var lower = value.toLowerCase();
			if(!$chk(size[lower])) return;

			size[lower] = size[lower] + this['offset' + value] + size['computed' + value];
			size['total' + value] = size[lower] + size['total' + value];
			delete size['computed' + value];
		}, this);

		return $extend(styles, size);
	}

});

/*
Script: Element.Pin.js
	Extends the Element native object to include the pin method useful for fixed positioning for elements.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
*/

(function(){
	var supportsPositionFixed = false;
	window.addEvent('domready', function(){
		var test = new Element('div').setStyles({
			position: 'fixed',
			top: 0,
			right: 0
		}).inject(document.body);
		supportsPositionFixed = (test.offsetTop === 0);
		test.dispose();
	});

	Element.implement({

		pin: function(enable){
			if (this.getStyle('display') == 'none') return null;

			var p;
			if (enable !== false){
				p = this.getPosition();
				if (!this.retrieve('pinned')){
					var pos = {
						top: p.y - window.getScroll().y,
						left: p.x - window.getScroll().x
					};
					if (supportsPositionFixed){
						this.setStyle('position', 'fixed').setStyles(pos);
					} else {
						this.store('pinnedByJS', true);
						this.setStyles({
							position: 'absolute',
							top: p.y,
							left: p.x
						});
						this.store('scrollFixer', (function(){
							if (this.retrieve('pinned'))
								this.setStyles({
									top: pos.top.toInt() + window.getScroll().y,
									left: pos.left.toInt() + window.getScroll().x
								});
						}).bind(this));
						window.addEvent('scroll', this.retrieve('scrollFixer'));
					}
					this.store('pinned', true);
				}
			} else {
				var op;
				if (!Browser.Engine.trident){
					if (this.getParent().getComputedStyle('position') != 'static') op = this.getParent();
					else op = this.getParent().getOffsetParent();
				}
				p = this.getPosition(op);
				this.store('pinned', false);
				var reposition;
				if (supportsPositionFixed && !this.retrieve('pinnedByJS')){
					reposition = {
						top: p.y + window.getScroll().y,
						left: p.x + window.getScroll().x
					};
				} else {
					this.store('pinnedByJS', false);
					window.removeEvent('scroll', this.retrieve('scrollFixer'));
					reposition = {
						top: p.y,
						left: p.x
					};
				}
				this.setStyles($merge(reposition, {position: 'absolute'}));
			}
			return this.addClass('isPinned');
		},

		unpin: function(){
			return this.pin(false).removeClass('isPinned');
		},

		togglepin: function(){
			this.pin(!this.retrieve('pinned'));
		}

	});

})();

/*
Script: Element.Position.js
	Extends the Element native object to include methods useful positioning elements relative to others.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
*/

(function(){

var original = Element.prototype.position;

Element.implement({

	position: function(options){
		//call original position if the options are x/y values
		if (options && ($defined(options.x) || $defined(options.y))) return original ? original.apply(this, arguments) : this;
		$each(options||{}, function(v, k){ if (!$defined(v)) delete options[k]; });
		options = $merge({
			relativeTo: document.body,
			position: {
				x: 'center', //left, center, right
				y: 'center' //top, center, bottom
			},
			edge: false,
			offset: {x: 0, y: 0},
			returnPos: false,
			relFixedPosition: false,
			ignoreMargins: false,
			allowNegative: false
		}, options);
		//compute the offset of the parent positioned element if this element is in one
		var parentOffset = {x: 0, y: 0};
		var parentPositioned = false;
		/* dollar around getOffsetParent should not be necessary, but as it does not return
		 * a mootools extended element in IE, an error occurs on the call to expose. See:
		 * http://mootools.lighthouseapp.com/projects/2706/tickets/333-element-getoffsetparent-inconsistency-between-ie-and-other-browsers */
		var offsetParent = this.measure(function(){
			return document.id(this.getOffsetParent());
		});
		if (offsetParent && offsetParent != this.getDocument().body){
			parentOffset = offsetParent.measure(function(){
				return this.getPosition();
			});
			parentPositioned = true;
			options.offset.x = options.offset.x - parentOffset.x;
			options.offset.y = options.offset.y - parentOffset.y;
		}
		//upperRight, bottomRight, centerRight, upperLeft, bottomLeft, centerLeft
		//topRight, topLeft, centerTop, centerBottom, center
		var fixValue = function(option){
			if ($type(option) != 'string') return option;
			option = option.toLowerCase();
			var val = {};
			if (option.test('left')) val.x = 'left';
			else if (option.test('right')) val.x = 'right';
			else val.x = 'center';
			if (option.test('upper') || option.test('top')) val.y = 'top';
			else if (option.test('bottom')) val.y = 'bottom';
			else val.y = 'center';
			return val;
		};
		options.edge = fixValue(options.edge);
		options.position = fixValue(options.position);
		if (!options.edge){
			if (options.position.x == 'center' && options.position.y == 'center') options.edge = {x:'center', y:'center'};
			else options.edge = {x:'left', y:'top'};
		}

		this.setStyle('position', 'absolute');
		var rel = document.id(options.relativeTo) || document.body;
		var calc = rel == document.body ? window.getScroll() : rel.getPosition();
		var top = calc.y;
		var left = calc.x;

		if (Browser.Engine.trident){
			var scrolls = rel.getScrolls();
			top += scrolls.y;
			left += scrolls.x;
		}

		var dim = this.getDimensions({computeSize: true, styles:['padding', 'border','margin']});
		if (options.ignoreMargins){
			options.offset.x = options.offset.x - dim['margin-left'];
			options.offset.y = options.offset.y - dim['margin-top'];
		}
		var pos = {};
		var prefY = options.offset.y;
		var prefX = options.offset.x;
		var winSize = window.getSize();
		switch(options.position.x){
			case 'left':
				pos.x = left + prefX;
				break;
			case 'right':
				pos.x = left + prefX + rel.offsetWidth;
				break;
			default: //center
				pos.x = left + ((rel == document.body ? winSize.x : rel.offsetWidth)/2) + prefX;
				break;
		}
		switch(options.position.y){
			case 'top':
				pos.y = top + prefY;
				break;
			case 'bottom':
				pos.y = top + prefY + rel.offsetHeight;
				break;
			default: //center
				pos.y = top + ((rel == document.body ? winSize.y : rel.offsetHeight)/2) + prefY;
				break;
		}

		if (options.edge){
			var edgeOffset = {};

			switch(options.edge.x){
				case 'left':
					edgeOffset.x = 0;
					break;
				case 'right':
					edgeOffset.x = -dim.x-dim.computedRight-dim.computedLeft;
					break;
				default: //center
					edgeOffset.x = -(dim.x/2);
					break;
			}
			switch(options.edge.y){
				case 'top':
					edgeOffset.y = 0;
					break;
				case 'bottom':
					edgeOffset.y = -dim.y-dim.computedTop-dim.computedBottom;
					break;
				default: //center
					edgeOffset.y = -(dim.y/2);
					break;
			}
			pos.x = pos.x + edgeOffset.x;
			pos.y = pos.y + edgeOffset.y;
		}
		pos = {
			left: ((pos.x >= 0 || parentPositioned || options.allowNegative) ? pos.x : 0).toInt(),
			top: ((pos.y >= 0 || parentPositioned || options.allowNegative) ? pos.y : 0).toInt()
		};
		if (rel.getStyle('position') == 'fixed' || options.relFixedPosition){
			var winScroll = window.getScroll();
			pos.top = pos.top.toInt() + winScroll.y;
			pos.left = pos.left.toInt() + winScroll.x;
		}

		if (options.returnPos) return pos;
		else this.setStyles(pos);
		return this;
	}

});

})();

/*
Script: Element.Shortcuts.js
	Extends the Element native object to include some shortcut methods.

	License:
		MIT-style license.

	Authors:
		Aaron Newton

*/

Element.implement({

	isDisplayed: function(){
		return this.getStyle('display') != 'none';
	},

	toggle: function(){
		return this[this.isDisplayed() ? 'hide' : 'show']();
	},

	hide: function(){
		var d;
		try {
			//IE fails here if the element is not in the dom
			if ('none' != this.getStyle('display')) d = this.getStyle('display');
		} catch(e){}

		return this.store('originalDisplay', d || 'block').setStyle('display', 'none');
	},

	show: function(display){
		return this.setStyle('display', display || this.retrieve('originalDisplay') || 'block');
	},

	swapClass: function(remove, add){
		return this.removeClass(remove).addClass(add);
	}

});


/*
Script: FormValidator.js
	A css-class based form validation system.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
*/
var InputValidator = new Class({

	Implements: [Options],

	options: {
		errorMsg: 'Validation failed.',
		test: function(field){return true;}
	},

	initialize: function(className, options){
		this.setOptions(options);
		this.className = className;
	},

	test: function(field, props){
		if (document.id(field)) return this.options.test(document.id(field), props||this.getProps(field));
		else return false;
	},

	getError: function(field, props){
		var err = this.options.errorMsg;
		if ($type(err) == 'function') err = err(document.id(field), props||this.getProps(field));
		return err;
	},

	getProps: function(field){
		if (!document.id(field)) return {};
		return field.get('validatorProps');
	}

});

Element.Properties.validatorProps = {

	set: function(props){
		return this.eliminate('validatorProps').store('validatorProps', props);
	},

	get: function(props){
		if (props) this.set(props);
		if (this.retrieve('validatorProps')) return this.retrieve('validatorProps');
		if (this.getProperty('validatorProps')){
			try {
				this.store('validatorProps', JSON.decode(this.getProperty('validatorProps')));
			}catch(e){
				return {};
			}
		} else {
			var vals = this.get('class').split(' ').filter(function(cls){
				return cls.test(':');
			});
			if (!vals.length){
				this.store('validatorProps', {});
			} else {
				props = {};
				vals.each(function(cls){
					var split = cls.split(':');
					if (split[1]) {
						try {
							props[split[0]] = JSON.decode(split[1]);
						} catch(e) {}
					}
				});
				this.store('validatorProps', props);
			}
		}
		return this.retrieve('validatorProps');
	}

};

var FormValidator = new Class({

	Implements:[Options, Events],

	Binds: ['onSubmit'],

	options: {/*
		onFormValidate: $empty(isValid, form, event),
		onElementValidate: $empty(isValid, field, className, warn),
		onElementPass: $empty(field),
		onElementFail: $empty(field, validatorsFailed) */
		fieldSelectors: 'input, select, textarea',
		ignoreHidden: true,
		useTitles: false,
		evaluateOnSubmit: true,
		evaluateFieldsOnBlur: true,
		evaluateFieldsOnChange: true,
		serial: true,
		stopOnFailure: true,
		warningPrefix: function(){
			return FormValidator.getMsg('warningPrefix') || 'Warning: ';
		},
		errorPrefix: function(){
			return FormValidator.getMsg('errorPrefix') || 'Error: ';
		}
	},

	initialize: function(form, options){
		this.setOptions(options);
		this.element = document.id(form);
		this.element.store('validator', this);
		this.warningPrefix = $lambda(this.options.warningPrefix)();
		this.errorPrefix = $lambda(this.options.errorPrefix)();
		if (this.options.evaluateOnSubmit) this.element.addEvent('submit', this.onSubmit);
		if (this.options.evaluateFieldsOnBlur || this.options.evaluateFieldsOnChange) this.watchFields(this.getFields());
	},

	toElement: function(){
		return this.element;
	},

	getFields: function(){
		return (this.fields = this.element.getElements(this.options.fieldSelectors));
	},

	watchFields: function(fields){
		fields.each(function(el){
			if (this.options.evaluateFieldsOnBlur)
				el.addEvent('blur', this.validationMonitor.pass([el, false], this));
			if (this.options.evaluateFieldsOnChange)
				el.addEvent('change', this.validationMonitor.pass([el, true], this));
		}, this);
	},

	validationMonitor: function(){
		$clear(this.timer);
		this.timer = this.validateField.delay(50, this, arguments);
	},

	onSubmit: function(event){
		if (!this.validate(event) && event) event.preventDefault();
		else this.reset();
	},

	reset: function(){
		this.getFields().each(this.resetField, this);
		return this;
	},

	validate: function(event){
		var result = this.getFields().map(function(field){
			return this.validateField(field, true);
		}, this).every(function(v){ return v;});
		this.fireEvent('formValidate', [result, this.element, event]);
		if (this.options.stopOnFailure && !result && event) event.preventDefault();
		return result;
	},

	validateField: function(field, force){
		if (this.paused) return true;
		field = document.id(field);
		var passed = !field.hasClass('validation-failed');
		var failed, warned;
		if (this.options.serial && !force){
			failed = this.element.getElement('.validation-failed');
			warned = this.element.getElement('.warning');
		}
		if (field && (!failed || force || field.hasClass('validation-failed') || (failed && !this.options.serial))){
			var validators = field.className.split(' ').some(function(cn){
				return this.getValidator(cn);
			}, this);
			var validatorsFailed = [];
			field.className.split(' ').each(function(className){
				if (className && !this.test(className, field)) validatorsFailed.include(className);
			}, this);
			passed = validatorsFailed.length === 0;
			if (validators && !field.hasClass('warnOnly')){
				if (passed){
					field.addClass('validation-passed').removeClass('validation-failed');
					this.fireEvent('elementPass', field);
				} else {
					field.addClass('validation-failed').removeClass('validation-passed');
					this.fireEvent('elementFail', [field, validatorsFailed]);
				}
			}
			if (!warned){
				var warnings = field.className.split(' ').some(function(cn){
					if (cn.test('^warn-') || field.hasClass('warnOnly'))
						return this.getValidator(cn.replace(/^warn-/,''));
					else return null;
				}, this);
				field.removeClass('warning');
				var warnResult = field.className.split(' ').map(function(cn){
					if (cn.test('^warn-') || field.hasClass('warnOnly'))
						return this.test(cn.replace(/^warn-/,''), field, true);
					else return null;
				}, this);
			}
		}
		return passed;
	},

	test: function(className, field, warn){
		var validator = this.getValidator(className);
		field = document.id(field);
		if (field.hasClass('ignoreValidation')) return true;
		warn = $pick(warn, false);
		if (field.hasClass('warnOnly')) warn = true;
		var isValid = validator ? validator.test(field) : true;
		if (validator && this.isVisible(field)) this.fireEvent('elementValidate', [isValid, field, className, warn]);
		if (warn) return true;
		return isValid;
	},

	isVisible : function(field){
		if (!this.options.ignoreHidden) return true;
		while(field != document.body){
			if (document.id(field).getStyle('display') == 'none') return false;
			field = field.getParent();
		}
		return true;
	},

	resetField: function(field){
		field = document.id(field);
		if (field){
			field.className.split(' ').each(function(className){
				if (className.test('^warn-')) className = className.replace(/^warn-/, '');
				field.removeClass('validation-failed');
				field.removeClass('warning');
				field.removeClass('validation-passed');
			}, this);
		}
		return this;
	},

	stop: function(){
		this.paused = true;
		return this;
	},

	start: function(){
		this.paused = false;
		return this;
	},

	ignoreField: function(field, warn){
		field = document.id(field);
		if (field){
			this.enforceField(field);
			if (warn) field.addClass('warnOnly');
			else field.addClass('ignoreValidation');
		}
		return this;
	},

	enforceField: function(field){
		field = document.id(field);
		if (field) field.removeClass('warnOnly').removeClass('ignoreValidation');
		return this;
	}

});

FormValidator.getMsg = function(key){
	return MooTools.lang.get('FormValidator', key);
};

FormValidator.adders = {

	validators:{},

	add : function(className, options){
		this.validators[className] = new InputValidator(className, options);
		//if this is a class (this method is used by instances of FormValidator and the FormValidator namespace)
		//extend these validators into it
		//this allows validators to be global and/or per instance
		if (!this.initialize){
			this.implement({
				validators: this.validators
			});
		}
	},

	addAllThese : function(validators){
		$A(validators).each(function(validator){
			this.add(validator[0], validator[1]);
		}, this);
	},

	getValidator: function(className){
		return this.validators[className.split(':')[0]];
	}

};

$extend(FormValidator, FormValidator.adders);

FormValidator.implement(FormValidator.adders);

FormValidator.add('IsEmpty', {

	errorMsg: false,
	test: function(element){
		if (element.type == 'select-one' || element.type == 'select')
			return !(element.selectedIndex >= 0 && element.options[element.selectedIndex].value != '');
		else
			return ((element.get('value') == null) || (element.get('value').length == 0));
	}

});

FormValidator.addAllThese([

	['required', {
		errorMsg: function(){
			return FormValidator.getMsg('required');
		},
		test: function(element){
			return !FormValidator.getValidator('IsEmpty').test(element);
		}
	}],

	['minLength', {
		errorMsg: function(element, props){
			if ($type(props.minLength))
				return FormValidator.getMsg('minLength').substitute({minLength:props.minLength,length:element.get('value').length });
			else return '';
		},
		test: function(element, props){
			if ($type(props.minLength)) return (element.get('value').length >= $pick(props.minLength, 0));
			else return true;
		}
	}],

	['maxLength', {
		errorMsg: function(element, props){
			//props is {maxLength:10}
			if ($type(props.maxLength))
				return FormValidator.getMsg('maxLength').substitute({maxLength:props.maxLength,length:element.get('value').length });
			else return '';
		},
		test: function(element, props){
			//if the value is <= than the maxLength value, element passes test
			return (element.get('value').length <= $pick(props.maxLength, 10000));
		}
	}],

	['validate-integer', {
		errorMsg: FormValidator.getMsg.pass('integer'),
		test: function(element){
			return FormValidator.getValidator('IsEmpty').test(element) || (/^(-?[1-9]\d*|0)$/).test(element.get('value'));
		}
	}],

	['validate-numeric', {
		errorMsg: FormValidator.getMsg.pass('numeric'),
		test: function(element){
			return FormValidator.getValidator('IsEmpty').test(element) ||
				(/^-?(?:0$0(?=\d*\.)|[1-9]|0)\d*(\.\d+)?$/).test(element.get('value'));
		}
	}],

	['validate-digits', {
		errorMsg: FormValidator.getMsg.pass('digits'),
		test: function(element){
			return FormValidator.getValidator('IsEmpty').test(element) || (/^[\d() .:\-\+#]+$/.test(element.get('value')));
		}
	}],

	['validate-alpha', {
		errorMsg: FormValidator.getMsg.pass('alpha'),
		test: function(element){
			return FormValidator.getValidator('IsEmpty').test(element) ||  (/^[a-zA-Z]+$/).test(element.get('value'));
		}
	}],

	['validate-alphanum', {
		errorMsg: FormValidator.getMsg.pass('alphanum'),
		test: function(element){
			return FormValidator.getValidator('IsEmpty').test(element) || !(/\W/).test(element.get('value'));
		}
	}],

	['validate-date', {
		errorMsg: function(element, props){
			if (Date.parse){
				var format = props.dateFormat || '%x';
				return FormValidator.getMsg('dateSuchAs').substitute({date: new Date().format(format)});
			} else {
				return FormValidator.getMsg('dateInFormatMDY');
			}
		},
		test: function(element, props){
			if (FormValidator.getValidator('IsEmpty').test(element)) return true;
			var d;
			if (Date.parse){
				var format = props.dateFormat || '%x';
				d = Date.parse(element.get('value'));
				var formatted = d.format(format);
				if (formatted != 'invalid date') element.set('value', formatted);
				return !isNaN(d);
			} else {
				var regex = /^(\d{2})\/(\d{2})\/(\d{4})$/;
				if (!regex.test(element.get('value'))) return false;
				d = new Date(element.get('value').replace(regex, '$1/$2/$3'));
				return (parseInt(RegExp.$1, 10) == (1 + d.getMonth())) &&
					(parseInt(RegExp.$2, 10) == d.getDate()) &&
					(parseInt(RegExp.$3, 10) == d.getFullYear());
			}
		}
	}],

	['validate-email', {
		errorMsg: FormValidator.getMsg.pass('email'),
		test: function(element){
			return FormValidator.getValidator('IsEmpty').test(element) || (/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i).test(element.get('value'));
		}
	}],

	['validate-url', {
		errorMsg: FormValidator.getMsg.pass('url'),
		test: function(element){
			return FormValidator.getValidator('IsEmpty').test(element) || (/^(https?|ftp|rmtp|mms):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i).test(element.get('value'));
		}
	}],

	['validate-currency-dollar', {
		errorMsg: FormValidator.getMsg.pass('currencyDollar'),
		test: function(element){
			// [$]1[##][,###]+[.##]
			// [$]1###+[.##]
			// [$]0.##
			// [$].##
			return FormValidator.getValidator('IsEmpty').test(element) ||  (/^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/).test(element.get('value'));
		}
	}],

	['validate-one-required', {
		errorMsg: FormValidator.getMsg.pass('oneRequired'),
		test: function(element, props){
			var p = document.id(props['validate-one-required']) || element.parentNode;
			return p.getElements('input').some(function(el){
				if (['checkbox', 'radio'].contains(el.get('type'))) return el.get('checked');
				return el.get('value');
			});
		}
	}]

]);

Element.Properties.validator = {

	set: function(options){
		var validator = this.retrieve('validator');
		if (validator) validator.setOptions(options);
		return this.store('validator:options');
	},

	get: function(options){
		if (options || !this.retrieve('validator')){
			if (options || !this.retrieve('validator:options')) this.set('validator', options);
			this.store('validator', new FormValidator(this, this.retrieve('validator:options')));
		}
		return this.retrieve('validator');
	}

};

Element.implement({

	validate: function(options){
		this.set('validator', options);
		return this.get('validator', options).validate();
	}

});

/*
Script: FormValidator.Inline.js
	Extends FormValidator to add inline messages.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
*/

FormValidator.Inline = new Class({

	Extends: FormValidator,

	options: {
		scrollToErrorsOnSubmit: true,
		scrollFxOptions: {
			transition: 'quad:out',
			offset: {
				y: -20
			}
		}
	},

	initialize: function(form, options){
		this.parent(form, options);
		this.addEvent('onElementValidate', function(isValid, field, className, warn){
			var validator = this.getValidator(className);
			if (!isValid && validator.getError(field)){
				if (warn) field.addClass('warning');
				var advice = this.makeAdvice(className, field, validator.getError(field), warn);
				this.insertAdvice(advice, field);
				this.showAdvice(className, field);
			} else {
				this.hideAdvice(className, field);
			}
		});
	},

	makeAdvice: function(className, field, error, warn){
		var errorMsg = (warn)?this.warningPrefix:this.errorPrefix;
			errorMsg += (this.options.useTitles) ? field.title || error:error;
		var cssClass = (warn) ? 'warning-advice' : 'validation-advice';
		var advice = this.getAdvice(className, field);
		if(advice) {
			advice = advice.clone(true, true).set('html', errorMsg).replaces(advice);
		} else {
			advice = new Element('div', {
				html: errorMsg,
				styles: { display: 'none' },
				id: 'advice-' + className + '-' + this.getFieldId(field)
			}).addClass(cssClass);
		}
		field.store('advice-' + className, advice);
		return advice;
	},

	getFieldId : function(field){
		return field.id ? field.id : field.id = 'input_' + field.name;
	},

	showAdvice: function(className, field){
		var advice = this.getAdvice(className, field);
		if (advice && !field.retrieve(this.getPropName(className))
				&& (advice.getStyle('display') == 'none'
				|| advice.getStyle('visiblity') == 'hidden'
				|| advice.getStyle('opacity') == 0)){
			field.store(this.getPropName(className), true);
			if (advice.reveal) advice.reveal();
			else advice.setStyle('display', 'block');
		}
	},

	hideAdvice: function(className, field){
		var advice = this.getAdvice(className, field);
		if (advice && field.retrieve(this.getPropName(className))){
			field.store(this.getPropName(className), false);
			//if Fx.Reveal.js is present, transition the advice out
			if (advice.dissolve) advice.dissolve();
			else advice.setStyle('display', 'none');
		}
	},

	getPropName: function(className){
		return 'advice' + className;
	},

	resetField: function(field){
		field = document.id(field);
		if (!field) return this;
		this.parent(field);
		field.className.split(' ').each(function(className){
			this.hideAdvice(className, field);
		}, this);
		return this;
	},

	getAllAdviceMessages: function(field, force){
		var advice = [];
		if (field.hasClass('ignoreValidation') && !force) return advice;
		var validators = field.className.split(' ').some(function(cn){
			var warner = cn.test('^warn-') || field.hasClass('warnOnly');
			if (warner) cn = cn.replace(/^warn-/, '');
			var validator = this.getValidator(cn);
			if (!validator) return;
			advice.push({
				message: validator.getError(field),
				warnOnly: warner,
				passed: validator.test(),
				validator: validator
			});
		}, this);
		return advice;
	},

	getAdvice: function(className, field){
		return field.retrieve('advice-' + className);
	},

	insertAdvice: function(advice, field){
		//Check for error position prop
		var props = field.get('validatorProps');
		//Build advice
		if (!props.msgPos || !document.id(props.msgPos)){
			if(field.type.toLowerCase() == 'radio') field.getParent().adopt(advice);
			else advice.inject(document.id(field), 'after');
		} else {
			document.id(props.msgPos).grab(advice);
		}
	},

	validateField: function(field, force){
		var result = this.parent(field, force);
		if (this.options.scrollToErrorsOnSubmit && !result){
			var failed = document.id(this).getElement('.validation-failed');
			var par = document.id(this).getParent();
			while (par != document.body && par.getScrollSize().y == par.getSize().y){
				par = par.getParent();
			}
			var fx = par.retrieve('fvScroller');
			if (!fx && window.Fx && Fx.Scroll){
				fx = new Fx.Scroll(par, this.options.scrollFxOptions);
				par.store('fvScroller', fx);
			}
			if (failed){
				if (fx) fx.toElement(failed);
				else par.scrollTo(par.getScroll().x, failed.getPosition(par).y - 20);
			}
		}
		return result;
	}

});


/*
Script: FormValidator.Extras.js
	Additional validators for the FormValidator class.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
*/
FormValidator.addAllThese([

	['validate-enforce-oncheck', {
		test: function(element, props){
			if (element.checked){
				var fv = element.getParent('form').retrieve('validator');
				if (!fv) return true;
				(props.toEnforce || document.id(props.enforceChildrenOf).getElements('input, select, textarea')).map(function(item){
					fv.enforceField(item);
				});
			}
			return true;
		}
	}],

	['validate-ignore-oncheck', {
		test: function(element, props){
			if (element.checked){
				var fv = element.getParent('form').retrieve('validator');
				if (!fv) return true;
				(props.toIgnore || document.id(props.ignoreChildrenOf).getElements('input, select, textarea')).each(function(item){
					fv.ignoreField(item);
					fv.resetField(item);
				});
			}
			return true;
		}
	}],

	['validate-nospace', {
		errorMsg: function(){
			return FormValidator.getMsg('noSpace');
		},
		test: function(element, props){
			return !element.get('value').test(/\s/);
		}
	}],

	['validate-toggle-oncheck', {
		test: function(element, props){
			var fv = element.getParent('form').retrieve('validator');
			if (!fv) return true;
			var eleArr = props.toToggle || document.id(props.toToggleChildrenOf).getElements('input, select, textarea');
			if (!element.checked){
				eleArr.each(function(item){
					fv.ignoreField(item);
					fv.resetField(item);
				});
			} else {
				eleArr.each(function(item){
					fv.enforceField(item);
				});
			}
			return true;
		}
	}],

	['validate-reqchk-bynode', {
		errorMsg: function(){
			return FormValidator.getMsg('reqChkByNode');
		},
		test: function(element, props){
			return (document.id(props.nodeId).getElements(props.selector || 'input[type=checkbox], input[type=radio]')).some(function(item){
				return item.checked;
			});
		}
	}],

	['validate-required-check', {
		errorMsg: function(element, props){
			return props.useTitle ? element.get('title') : FormValidator.getMsg('requiredChk');
		},
		test: function(element, props){
			return !!element.checked;
		}
	}],

	['validate-reqchk-byname', {
		errorMsg: function(element, props){
			return FormValidator.getMsg('reqChkByName').substitute({label: props.label || element.get('type')});
		},
		test: function(element, props){
			var grpName = props.groupName || element.get('name');
			var oneCheckedItem = $$(document.getElementsByName(grpName)).some(function(item, index){
				return item.checked;
			});
			var fv = element.getParent('form').retrieve('validator');
			if (oneCheckedItem && fv) fv.resetField(element);
			return oneCheckedItem;
		}
	}],

	['validate-match', {
		errorMsg: function(element, props){
			return FormValidator.getMsg('match').substitute({matchName: props.matchName || document.id(props.matchInput).get('name')});
		},
		test: function(element, props){
			var eleVal = element.get('value');
			var matchVal = document.id(props.matchInput) && document.id(props.matchInput).get('value');
			return eleVal && matchVal ? eleVal == matchVal : true;
		}
	}],

	['validate-after-date', {
		errorMsg: function(element, props){
			return FormValidator.getMsg('afterDate').substitute({
				label: props.afterLabel || (props.afterElement ? FormValidator.getMsg('startDate') : FormValidator.getMsg('currentDate'))
			});
		},
		test: function(element, props){
			var start = document.id(props.afterElement) ? Date.parse(document.id(props.afterElement).get('value')) : new Date();
			var end = Date.parse(element.get('value'));
			return end && start ? end >= start : true;
		}
	}],

	['validate-before-date', {
		errorMsg: function(element, props){
			return FormValidator.getMsg('beforeDate').substitute({
				label: props.beforeLabel || (props.beforeElement ? FormValidator.getMsg('endDate') : FormValidator.getMsg('currentDate'))
			});
		},
		test: function(element, props){
			var start = Date.parse(element.get('value'));
			var end = document.id(props.beforeElement) ? Date.parse(document.id(props.beforeElement).get('value')) : new Date();
			return end && start ? end >= start : true;
		}
	}],

	['validate-custom-required', {
		errorMsg: function(){
			return FormValidator.getMsg('required');
		},
		test: function(element, props){
			return element.get('value') != props.emptyValue;
		}
	}],

	['validate-same-month', {
		errorMsg: function(element, props){
			var startMo = document.id(props.sameMonthAs) && document.id(props.sameMonthAs).get('value');
			var eleVal = element.get('value');
			if (eleVal != '') return FormValidator.getMsg(startMo ? 'sameMonth' : 'startMonth');
		},
		test: function(element, props){
			var d1 = Date.parse(element.get('value'));
			var d2 = Date.parse(document.id(props.sameMonthAs) && document.id(props.sameMonthAs).get('value'));
			return d1 && d2 ? d1.format('%B') == d2.format('%B') : true;
		}
	}]

]);

/*
Script: OverText.js
	Shows text over an input that disappears when the user clicks into it. The text remains hidden if the user adds a value.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
*/

var OverText = new Class({

	Implements: [Options, Events, Class.Occlude],

	Binds: ['reposition', 'assert', 'focus'],

	options: {/*
		textOverride: null,
		onFocus: $empty()
		onTextHide: $empty(textEl, inputEl),
		onTextShow: $empty(textEl, inputEl), */
		element: 'label',
		positionOptions: {
			position: 'upperLeft',
			edge: 'upperLeft',
			offset: {
				x: 4,
				y: 2
			}
		},
		poll: false,
		pollInterval: 250
	},

	property: 'OverText',

	initialize: function(element, options){
		this.element = document.id(element);
		if (this.occlude()) return this.occluded;
		this.setOptions(options);
		this.attach(this.element);
		OverText.instances.push(this);
		if (this.options.poll) this.poll();
		return this;
	},

	toElement: function(){
		return this.element;
	},

	attach: function(){
		var val = this.options.textOverride || this.element.get('alt') || this.element.get('title');
		if (!val) return;
		this.text = new Element(this.options.element, {
			'class': 'overTxtLabel',
			styles: {
				lineHeight: 'normal',
				position: 'absolute'
			},
			html: val,
			events: {
				click: this.hide.pass(true, this)
			}
		}).inject(this.element, 'after');
		if (this.options.element == 'label') this.text.set('for', this.element.get('id'));
		this.element.addEvents({
			focus: this.focus,
			blur: this.assert,
			change: this.assert
		}).store('OverTextDiv', this.text);
		window.addEvent('resize', this.reposition.bind(this));
		this.assert(true);
		this.reposition();
	},

	startPolling: function(){
		this.pollingPaused = false;
		return this.poll();
	},

	poll: function(stop){
		//start immediately
		//pause on focus
		//resumeon blur
		if (this.poller && !stop) return this;
		var test = function(){
			if (!this.pollingPaused) this.assert(true);
		}.bind(this);
		if (stop) $clear(this.poller);
		else this.poller = test.periodical(this.options.pollInterval, this);
		return this;
	},

	stopPolling: function(){
		this.pollingPaused = true;
		return this.poll(true);
	},

	focus: function(){
		if (!this.text.isDisplayed() || this.element.get('disabled')) return;
		this.hide();
	},

	hide: function(suppressFocus){
		if (this.text.isDisplayed() && !this.element.get('disabled')){
			this.text.hide();
			this.fireEvent('textHide', [this.text, this.element]);
			this.pollingPaused = true;
			try {
				if (!suppressFocus) this.element.fireEvent('focus').focus();
			} catch(e){} //IE barfs if you call focus on hidden elements
		}
		return this;
	},

	show: function(){
		if (!this.text.isDisplayed()){
			this.text.show();
			this.reposition();
			this.fireEvent('textShow', [this.text, this.element]);
			this.pollingPaused = false;
		}
		return this;
	},

	assert: function(suppressFocus){
		this[this.test() ? 'show' : 'hide'](suppressFocus);
	},

	test: function(){
		var v = this.element.get('value');
		return !v;
	},

	reposition: function(){
		this.assert(true);
		if (!this.element.getParent() || !this.element.offsetHeight) return this.stopPolling().hide();
		if (this.test()) this.text.position($merge(this.options.positionOptions, {relativeTo: this.element}));
		return this;
	}

});

OverText.instances = [];

OverText.update = function(){

	return OverText.instances.map(function(ot){
		if (ot.element && ot.text) return ot.reposition();
		return null; //the input or the text was destroyed
	});

};

if (window.Fx && Fx.Reveal) {
	Fx.Reveal.implement({
		hideInputs: Browser.Engine.trident ? 'select, input, textarea, object, embed, .overTxtLabel' : false
	});
}

/*
Script: Fx.Elements.js
	Effect to change any number of CSS properties of any number of Elements.

	License:
		MIT-style license.

	Authors:
		Valerio Proietti
*/

Fx.Elements = new Class({

	Extends: Fx.CSS,

	initialize: function(elements, options){
		this.elements = this.subject = $$(elements);
		this.parent(options);
	},

	compute: function(from, to, delta){
		var now = {};
		for (var i in from){
			var iFrom = from[i], iTo = to[i], iNow = now[i] = {};
			for (var p in iFrom) iNow[p] = this.parent(iFrom[p], iTo[p], delta);
		}
		return now;
	},

	set: function(now){
		for (var i in now){
			var iNow = now[i];
			for (var p in iNow) this.render(this.elements[i], p, iNow[p], this.options.unit);
		}
		return this;
	},

	start: function(obj){
		if (!this.check(obj)) return this;
		var from = {}, to = {};
		for (var i in obj){
			var iProps = obj[i], iFrom = from[i] = {}, iTo = to[i] = {};
			for (var p in iProps){
				var parsed = this.prepare(this.elements[i], p, iProps[p]);
				iFrom[p] = parsed.from;
				iTo[p] = parsed.to;
			}
		}
		return this.parent(from, to);
	}

});

/*
Script: Fx.Accordion.js
	An Fx.Elements extension which allows you to easily create accordion type controls.

	License:
		MIT-style license.

	Authors:
		Valerio Proietti
*/

var Accordion = Fx.Accordion = new Class({

	Extends: Fx.Elements,

	options: {/*
		onActive: $empty(toggler, section),
		onBackground: $empty(toggler, section),*/
		display: 0,
		show: false,
		height: true,
		width: false,
		opacity: true,
		fixedHeight: false,
		fixedWidth: false,
		wait: false,
		alwaysHide: false,
		trigger: 'click',
		initialDisplayFx: true
	},

	initialize: function(){
		var params = Array.link(arguments, {'container': Element.type, 'options': Object.type, 'togglers': $defined, 'elements': $defined});
		this.parent(params.elements, params.options);
		this.togglers = $$(params.togglers);
		this.container = document.id(params.container);
		this.previous = -1;
		if (this.options.alwaysHide) this.options.wait = true;
		if ($chk(this.options.show)){
			this.options.display = false;
			this.previous = this.options.show;
		}
		if (this.options.start){
			this.options.display = false;
			this.options.show = false;
		}
		this.effects = {};
		if (this.options.opacity) this.effects.opacity = 'fullOpacity';
		if (this.options.width) this.effects.width = this.options.fixedWidth ? 'fullWidth' : 'offsetWidth';
		if (this.options.height) this.effects.height = this.options.fixedHeight ? 'fullHeight' : 'scrollHeight';
		for (var i = 0, l = this.togglers.length; i < l; i++) this.addSection(this.togglers[i], this.elements[i]);
		this.elements.each(function(el, i){
			if (this.options.show === i){
				this.fireEvent('active', [this.togglers[i], el]);
			} else {
				for (var fx in this.effects) el.setStyle(fx, 0);
			}
		}, this);
		if ($chk(this.options.display)) this.display(this.options.display, this.options.initialDisplayFx);
	},

	addSection: function(toggler, element){
		toggler = document.id(toggler);
		element = document.id(element);
		var test = this.togglers.contains(toggler);
		this.togglers.include(toggler);
		this.elements.include(element);
		var idx = this.togglers.indexOf(toggler);
		toggler.addEvent(this.options.trigger, this.display.bind(this, idx));
		if (this.options.height) element.setStyles({'padding-top': 0, 'border-top': 'none', 'padding-bottom': 0, 'border-bottom': 'none'});
		if (this.options.width) element.setStyles({'padding-left': 0, 'border-left': 'none', 'padding-right': 0, 'border-right': 'none'});
		element.fullOpacity = 1;
		if (this.options.fixedWidth) element.fullWidth = this.options.fixedWidth;
		if (this.options.fixedHeight) element.fullHeight = this.options.fixedHeight;
		element.setStyle('overflow', 'hidden');
		if (!test){
			for (var fx in this.effects) element.setStyle(fx, 0);
		}
		return this;
	},

	display: function(index, useFx){
		useFx = $pick(useFx, true);
		index = ($type(index) == 'element') ? this.elements.indexOf(index) : index;
		if ((this.timer && this.options.wait) || (index === this.previous && !this.options.alwaysHide)) return this;
		this.previous = index;
		var obj = {};
		this.elements.each(function(el, i){
			obj[i] = {};
			var hide = (i != index) || (this.options.alwaysHide && (el.offsetHeight > 0));
			this.fireEvent(hide ? 'background' : 'active', [this.togglers[i], el]);
			for (var fx in this.effects) obj[i][fx] = hide ? 0 : el[this.effects[fx]];
		}, this);
		return useFx ? this.start(obj) : this.set(obj);
	}

});

/*
Script: Fx.Move.js
	Defines Fx.Move, a class that works with Element.Position.js to transition an element from one location to another.

	License:
		MIT-style license.

	Authors:
		Aaron Newton

*/

Fx.Move = new Class({

	Extends: Fx.Morph,

	options: {
		relativeTo: document.body,
		position: 'center',
		edge: false,
		offset: {x: 0, y: 0}
	},

	start: function(destination){
		return this.parent(this.element.position($merge(this.options, destination, {returnPos: true})));
	}

});

Element.Properties.move = {

	set: function(options){
		var morph = this.retrieve('move');
		if (morph) morph.cancel();
		return this.eliminate('move').store('move:options', $extend({link: 'cancel'}, options));
	},

	get: function(options){
		if (options || !this.retrieve('move')){
			if (options || !this.retrieve('move:options')) this.set('move', options);
			this.store('move', new Fx.Move(this, this.retrieve('move:options')));
		}
		return this.retrieve('move');
	}

};

Element.implement({

	move: function(options){
		this.get('move').start(options);
		return this;
	}

});


/*
Script: Fx.Reveal.js
	Defines Fx.Reveal, a class that shows and hides elements with a transition.

	License:
		MIT-style license.

	Authors:
		Aaron Newton

*/

Fx.Reveal = new Class({

	Extends: Fx.Morph,

	options: {/*
		onShow: $empty(thisElement),
		onHide: $empty(thisElement),
		onComplete: $empty(thisElement),
		heightOverride: null,
		widthOverride: null, */
		styles: ['padding', 'border', 'margin'],
		transitionOpacity: !Browser.Engine.trident4,
		mode: 'vertical',
		display: 'block',
		hideInputs: Browser.Engine.trident ? 'select, input, textarea, object, embed' : false
	},

	dissolve: function(){
		try {
			if (!this.hiding && !this.showing){
				if (this.element.getStyle('display') != 'none'){
					this.hiding = true;
					this.showing = false;
					this.hidden = true;
					var startStyles = this.element.getComputedSize({
						styles: this.options.styles,
						mode: this.options.mode
					});
					var setToAuto = (this.element.style.height === ''||this.element.style.height == 'auto');
					this.element.setStyle('display', 'block');
					if (this.options.transitionOpacity) startStyles.opacity = 1;
					var zero = {};
					$each(startStyles, function(style, name){
						zero[name] = [style, 0];
					}, this);
					var overflowBefore = this.element.getStyle('overflow');
					this.element.setStyle('overflow', 'hidden');
					var hideThese = this.options.hideInputs ? this.element.getElements(this.options.hideInputs) : null;
					this.$chain.unshift(function(){
						if (this.hidden){
							this.hiding = false;
							$each(startStyles, function(style, name){
								startStyles[name] = style;
							}, this);
							this.element.setStyles($merge({display: 'none', overflow: overflowBefore}, startStyles));
							if (setToAuto){
								if (['vertical', 'both'].contains(this.options.mode)) this.element.style.height = '';
								if (['width', 'both'].contains(this.options.mode)) this.element.style.width = '';
							}
							if (hideThese) hideThese.setStyle('visibility', 'visible');
						}
						this.fireEvent('hide', this.element);
						this.callChain();
					}.bind(this));
					if (hideThese) hideThese.setStyle('visibility', 'hidden');
					this.start(zero);
				} else {
					this.callChain.delay(10, this);
					this.fireEvent('complete', this.element);
					this.fireEvent('hide', this.element);
				}
			} else if (this.options.link == 'chain'){
				this.chain(this.dissolve.bind(this));
			} else if (this.options.link == 'cancel' && !this.hiding){
				this.cancel();
				this.dissolve();
			}
		} catch(e){
			this.hiding = false;
			this.element.setStyle('display', 'none');
			this.callChain.delay(10, this);
			this.fireEvent('complete', this.element);
			this.fireEvent('hide', this.element);
		}
		return this;
	},

	reveal: function(){
		try {
			if (!this.showing && !this.hiding){
				if (this.element.getStyle('display') == 'none' ||
					 this.element.getStyle('visiblity') == 'hidden' ||
					 this.element.getStyle('opacity') == 0){
					this.showing = true;
					this.hiding = false;
					this.hidden = false;
					var setToAuto, startStyles;
					//toggle display, but hide it
					this.element.measure(function(){
						setToAuto = (this.element.style.height === '' || this.element.style.height == 'auto');
						//create the styles for the opened/visible state
						startStyles = this.element.getComputedSize({
							styles: this.options.styles,
							mode: this.options.mode
						});
					}.bind(this));
					$each(startStyles, function(style, name){
						startStyles[name] = style;
					});
					//if we're overridding height/width
					if ($chk(this.options.heightOverride)) startStyles.height = this.options.heightOverride.toInt();
					if ($chk(this.options.widthOverride)) startStyles.width = this.options.widthOverride.toInt();
					if (this.options.transitionOpacity) {
						this.element.setStyle('opacity', 0);
						startStyles.opacity = 1;
					}
					//create the zero state for the beginning of the transition
					var zero = {
						height: 0,
						display: this.options.display
					};
					$each(startStyles, function(style, name){ zero[name] = 0; });
					var overflowBefore = this.element.getStyle('overflow');
					//set to zero
					this.element.setStyles($merge(zero, {overflow: 'hidden'}));
					//hide inputs
					var hideThese = this.options.hideInputs ? this.element.getElements(this.options.hideInputs) : null;
					if (hideThese) hideThese.setStyle('visibility', 'hidden');
					//start the effect
					this.start(startStyles);
					this.$chain.unshift(function(){
						this.element.setStyle('overflow', overflowBefore);
						if (!this.options.heightOverride && setToAuto){
							if (['vertical', 'both'].contains(this.options.mode)) this.element.style.height = '';
							if (['width', 'both'].contains(this.options.mode)) this.element.style.width = '';
						}
						if (!this.hidden) this.showing = false;
						if (hideThese) hideThese.setStyle('visibility', 'visible');
						this.callChain();
						this.fireEvent('show', this.element);
					}.bind(this));
				} else {
					this.callChain();
					this.fireEvent('complete', this.element);
					this.fireEvent('show', this.element);
				}
			} else if (this.options.link == 'chain'){
				this.chain(this.reveal.bind(this));
			} else if (this.options.link == 'cancel' && !this.showing){
				this.cancel();
				this.reveal();
			}
		} catch(e){
			this.element.setStyles({
				display: this.options.display,
				visiblity: 'visible',
				opacity: 1
			});
			this.showing = false;
			this.callChain.delay(10, this);
			this.fireEvent('complete', this.element);
			this.fireEvent('show', this.element);
		}
		return this;
	},

	toggle: function(){
		if (this.element.getStyle('display') == 'none' ||
			 this.element.getStyle('visiblity') == 'hidden' ||
			 this.element.getStyle('opacity') == 0){
			this.reveal();
		} else {
			this.dissolve();
		}
		return this;
	}

});

Element.Properties.reveal = {

	set: function(options){
		var reveal = this.retrieve('reveal');
		if (reveal) reveal.cancel();
		return this.eliminate('reveal').store('reveal:options', $extend({link: 'cancel'}, options));
	},

	get: function(options){
		if (options || !this.retrieve('reveal')){
			if (options || !this.retrieve('reveal:options')) this.set('reveal', options);
			this.store('reveal', new Fx.Reveal(this, this.retrieve('reveal:options')));
		}
		return this.retrieve('reveal');
	}

};

Element.Properties.dissolve = Element.Properties.reveal;

Element.implement({

	reveal: function(options){
		this.get('reveal', options).reveal();
		return this;
	},

	dissolve: function(options){
		this.get('reveal', options).dissolve();
		return this;
	},

	nix: function(){
		var params = Array.link(arguments, {destroy: Boolean.type, options: Object.type});
		this.get('reveal', params.options).dissolve().chain(function(){
			this[params.destroy ? 'destroy' : 'dispose']();
		}.bind(this));
		return this;
	},

	wink: function(){
		var params = Array.link(arguments, {duration: Number.type, options: Object.type});
		var reveal = this.get('reveal', params.options);
		reveal.reveal().chain(function(){
			(function(){
				reveal.dissolve();
			}).delay(params.duration || 2000);
		});
	}


});

/*
Script: Fx.Scroll.js
	Effect to smoothly scroll any element, including the window.

	License:
		MIT-style license.

	Authors:
		Valerio Proietti
*/

Fx.Scroll = new Class({

	Extends: Fx,

	options: {
		offset: {x: 0, y: 0},
		wheelStops: true
	},

	initialize: function(element, options){
		this.element = this.subject = document.id(element);
		this.parent(options);
		var cancel = this.cancel.bind(this, false);

		if ($type(this.element) != 'element') this.element = document.id(this.element.getDocument().body);

		var stopper = this.element;

		if (this.options.wheelStops){
			this.addEvent('start', function(){
				stopper.addEvent('mousewheel', cancel);
			}, true);
			this.addEvent('complete', function(){
				stopper.removeEvent('mousewheel', cancel);
			}, true);
		}
	},

	set: function(){
		var now = Array.flatten(arguments);
		this.element.scrollTo(now[0], now[1]);
	},

	compute: function(from, to, delta){
		return [0, 1].map(function(i){
			return Fx.compute(from[i], to[i], delta);
		});
	},

	start: function(x, y){
		if (!this.check(x, y)) return this;
		var offsetSize = this.element.getSize(), scrollSize = this.element.getScrollSize();
		var scroll = this.element.getScroll(), values = {x: x, y: y};
		for (var z in values){
			var max = scrollSize[z] - offsetSize[z];
			if ($chk(values[z])) values[z] = ($type(values[z]) == 'number') ? values[z].limit(0, max) : max;
			else values[z] = scroll[z];
			values[z] += this.options.offset[z];
		}
		return this.parent([scroll.x, scroll.y], [values.x, values.y]);
	},

	toTop: function(){
		return this.start(false, 0);
	},

	toLeft: function(){
		return this.start(0, false);
	},

	toRight: function(){
		return this.start('right', false);
	},

	toBottom: function(){
		return this.start(false, 'bottom');
	},

	toElement: function(el){
		var position = document.id(el).getPosition(this.element);
		return this.start(position.x, position.y);
	},

	scrollIntoView: function(el, axes, offset){
		axes = axes ? $splat(axes) : ['x','y'];
		var to = {};
		el = document.id(el);
		var pos = el.getPosition(this.element);
		var size = el.getSize();
		var scroll = this.element.getScroll();
		var containerSize = this.element.getSize();
		var edge = {
			x: pos.x + size.x,
			y: pos.y + size.y
		};
		['x','y'].each(function(axis) {
			if (axes.contains(axis)) {
				if (edge[axis] > scroll[axis] + containerSize[axis]) to[axis] = edge[axis] - containerSize[axis];
				if (pos[axis] < scroll[axis]) to[axis] = pos[axis];
			}
			if (to[axis] == null) to[axis] = scroll[axis];
			if (offset && offset[axis]) to[axis] = to[axis] + offset[axis];
		}, this);
		if (to.x != scroll.x || to.y != scroll.y) this.start(to.x, to.y);
		return this;
	}

});


/*
Script: Fx.Slide.js
	Effect to slide an element in and out of view.

	License:
		MIT-style license.

	Authors:
		Valerio Proietti
*/

Fx.Slide = new Class({

	Extends: Fx,

	options: {
		mode: 'vertical'
	},

	initialize: function(element, options){
		this.addEvent('complete', function(){
			this.open = (this.wrapper['offset' + this.layout.capitalize()] != 0);
			if (this.open && Browser.Engine.webkit419) this.element.dispose().inject(this.wrapper);
		}, true);
		this.element = this.subject = document.id(element);
		this.parent(options);
		var wrapper = this.element.retrieve('wrapper');
		this.wrapper = wrapper || new Element('div', {
			styles: $extend(this.element.getStyles('margin', 'position'), {overflow: 'hidden'})
		}).wraps(this.element);
		this.element.store('wrapper', this.wrapper).setStyle('margin', 0);
		this.now = [];
		this.open = true;
	},

	vertical: function(){
		this.margin = 'margin-top';
		this.layout = 'height';
		this.offset = this.element.offsetHeight;
	},

	horizontal: function(){
		this.margin = 'margin-left';
		this.layout = 'width';
		this.offset = this.element.offsetWidth;
	},

	set: function(now){
		this.element.setStyle(this.margin, now[0]);
		this.wrapper.setStyle(this.layout, now[1]);
		return this;
	},

	compute: function(from, to, delta){
		return [0, 1].map(function(i){
			return Fx.compute(from[i], to[i], delta);
		});
	},

	start: function(how, mode){
		if (!this.check(how, mode)) return this;
		this[mode || this.options.mode]();
		var margin = this.element.getStyle(this.margin).toInt();
		var layout = this.wrapper.getStyle(this.layout).toInt();
		var caseIn = [[margin, layout], [0, this.offset]];
		var caseOut = [[margin, layout], [-this.offset, 0]];
		var start;
		switch (how){
			case 'in': start = caseIn; break;
			case 'out': start = caseOut; break;
			case 'toggle': start = (layout == 0) ? caseIn : caseOut;
		}
		return this.parent(start[0], start[1]);
	},

	slideIn: function(mode){
		return this.start('in', mode);
	},

	slideOut: function(mode){
		return this.start('out', mode);
	},

	hide: function(mode){
		this[mode || this.options.mode]();
		this.open = false;
		return this.set([-this.offset, 0]);
	},

	show: function(mode){
		this[mode || this.options.mode]();
		this.open = true;
		return this.set([0, this.offset]);
	},

	toggle: function(mode){
		return this.start('toggle', mode);
	}

});

Element.Properties.slide = {

	set: function(options){
		var slide = this.retrieve('slide');
		if (slide) slide.cancel();
		return this.eliminate('slide').store('slide:options', $extend({link: 'cancel'}, options));
	},

	get: function(options){
		if (options || !this.retrieve('slide')){
			if (options || !this.retrieve('slide:options')) this.set('slide', options);
			this.store('slide', new Fx.Slide(this, this.retrieve('slide:options')));
		}
		return this.retrieve('slide');
	}

};

Element.implement({

	slide: function(how, mode){
		how = how || 'toggle';
		var slide = this.get('slide'), toggle;
		switch (how){
			case 'hide': slide.hide(mode); break;
			case 'show': slide.show(mode); break;
			case 'toggle':
				var flag = this.retrieve('slide:flag', slide.open);
				slide[flag ? 'slideOut' : 'slideIn'](mode);
				this.store('slide:flag', !flag);
				toggle = true;
			break;
			default: slide.start(how, mode);
		}
		if (!toggle) this.eliminate('slide:flag');
		return this;
	}

});


/*
Script: Fx.SmoothScroll.js
	Class for creating a smooth scrolling effect to all internal links on the page.

	License:
		MIT-style license.

	Authors:
		Valerio Proietti
*/

var SmoothScroll = Fx.SmoothScroll = new Class({

	Extends: Fx.Scroll,

	initialize: function(options, context){
		context = context || document;
		this.doc = context.getDocument();
		var win = context.getWindow();
		this.parent(this.doc, options);
		this.links = this.options.links ? $$(this.options.links) : $$(this.doc.links);
		var location = win.location.href.match(/^[^#]*/)[0] + '#';
		this.links.each(function(link){
			if (link.href.indexOf(location) != 0) {return;}
			var anchor = link.href.substr(location.length);
			if (anchor) this.useLink(link, anchor);
		}, this);
		if (!Browser.Engine.webkit419) {
			this.addEvent('complete', function(){
				win.location.hash = this.anchor;
			}, true);
		}
	},

	useLink: function(link, anchor){
		var el;
		link.addEvent('click', function(event){
			if (el !== false && !el) el = document.id(anchor) || this.doc.getElement('a[name=' + anchor + ']');
			if (el) {
				event.preventDefault();
				this.anchor = anchor;
				this.toElement(el);
				link.blur();
			}
		}.bind(this));
	}

});

/*
Script: Fx.Sort.js
	Defines Fx.Sort, a class that reorders lists with a transition.

	License:
		MIT-style license.

	Authors:
		Aaron Newton

*/

Fx.Sort = new Class({

	Extends: Fx.Elements,

	options: {
		mode: 'vertical'
	},

	initialize: function(elements, options){
		this.parent(elements, options);
		this.elements.each(function(el){
			if (el.getStyle('position') == 'static') el.setStyle('position', 'relative');
		});
		this.setDefaultOrder();
	},

	setDefaultOrder: function(){
		this.currentOrder = this.elements.map(function(el, index){
			return index;
		});
	},

	sort: function(newOrder){
		if ($type(newOrder) != 'array') return false;
		var top = 0;
		var left = 0;
		var zero = {};
		var vert = this.options.mode == 'vertical';
		var current = this.elements.map(function(el, index){
			var size = el.getComputedSize({styles: ['border', 'padding', 'margin']});
			var val;
			if (vert){
				val = {
					top: top,
					margin: size['margin-top'],
					height: size.totalHeight
				};
				top += val.height - size['margin-top'];
			} else {
				val = {
					left: left,
					margin: size['margin-left'],
					width: size.totalWidth
				};
				left += val.width;
			}
			var plain = vert ? 'top' : 'left';
			zero[index] = {};
			var start = el.getStyle(plain).toInt();
			zero[index][plain] = start || 0;
			return val;
		}, this);
		this.set(zero);
		newOrder = newOrder.map(function(i){ return i.toInt(); });
		if (newOrder.length != this.elements.length){
			this.currentOrder.each(function(index){
				if (!newOrder.contains(index)) newOrder.push(index);
			});
			if (newOrder.length > this.elements.length)
				newOrder.splice(this.elements.length-1, newOrder.length - this.elements.length);
		}
		top = 0;
		left = 0;
		var margin = 0;
		var next = {};
		newOrder.each(function(item, index){
			var newPos = {};
			if (vert){
				newPos.top = top - current[item].top - margin;
				top += current[item].height;
			} else {
				newPos.left = left - current[item].left;
				left += current[item].width;
			}
			margin = margin + current[item].margin;
			next[item]=newPos;
		}, this);
		var mapped = {};
		$A(newOrder).sort().each(function(index){
			mapped[index] = next[index];
		});
		this.start(mapped);
		this.currentOrder = newOrder;
		return this;
	},

	rearrangeDOM: function(newOrder){
		newOrder = newOrder || this.currentOrder;
		var parent = this.elements[0].getParent();
		var rearranged = [];
		this.elements.setStyle('opacity', 0);
		//move each element and store the new default order
		newOrder.each(function(index){
			rearranged.push(this.elements[index].inject(parent).setStyles({
				top: 0,
				left: 0
			}));
		}, this);
		this.elements.setStyle('opacity', 1);
		this.elements = $$(rearranged);
		this.setDefaultOrder();
		return this;
	},

	getDefaultOrder: function(){
		return this.elements.map(function(el, index){
			return index;
		});
	},

	forward: function(){
		return this.sort(this.getDefaultOrder());
	},

	backward: function(){
		return this.sort(this.getDefaultOrder().reverse());
	},

	reverse: function(){
		return this.sort(this.currentOrder.reverse());
	},

	sortByElements: function(elements){
		return this.sort(elements.map(function(el){
			return this.elements.indexOf(el);
		}, this));
	},

	swap: function(one, two){
		if ($type(one) == 'element') one = this.elements.indexOf(one);
		if ($type(two) == 'element') two = this.elements.indexOf(two);

		var newOrder = $A(this.currentOrder);
		newOrder[this.currentOrder.indexOf(one)] = two;
		newOrder[this.currentOrder.indexOf(two)] = one;
		this.sort(newOrder);
	}

});

/*
Script: Drag.js
	The base Drag Class. Can be used to drag and resize Elements using mouse events.

	License:
		MIT-style license.

	Authors:
		Valerio Proietti
		Tom Occhinno
		Jan Kassens
*/

var Drag = new Class({

	Implements: [Events, Options],

	options: {/*
		onBeforeStart: $empty(thisElement),
		onStart: $empty(thisElement, event),
		onSnap: $empty(thisElement)
		onDrag: $empty(thisElement, event),
		onCancel: $empty(thisElement),
		onComplete: $empty(thisElement, event),*/
		snap: 6,
		unit: 'px',
		grid: false,
		style: true,
		limit: false,
		handle: false,
		invert: false,
		preventDefault: false,
		modifiers: {x: 'left', y: 'top'}
	},

	initialize: function(){
		var params = Array.link(arguments, {'options': Object.type, 'element': $defined});
		this.element = document.id(params.element);
		this.document = this.element.getDocument();
		this.setOptions(params.options || {});
		var htype = $type(this.options.handle);
		this.handles = ((htype == 'array' || htype == 'collection') ? $$(this.options.handle) : document.id(this.options.handle)) || this.element;
		this.mouse = {'now': {}, 'pos': {}};
		this.value = {'start': {}, 'now': {}};

		this.selection = (Browser.Engine.trident) ? 'selectstart' : 'mousedown';

		this.bound = {
			start: this.start.bind(this),
			check: this.check.bind(this),
			drag: this.drag.bind(this),
			stop: this.stop.bind(this),
			cancel: this.cancel.bind(this),
			eventStop: $lambda(false)
		};
		this.attach();
	},

	attach: function(){
		this.handles.addEvent('mousedown', this.bound.start);
		return this;
	},

	detach: function(){
		this.handles.removeEvent('mousedown', this.bound.start);
		return this;
	},

	start: function(event){
		if (this.options.preventDefault) event.preventDefault();
		this.mouse.start = event.page;
		this.fireEvent('beforeStart', this.element);
		var limit = this.options.limit;
		this.limit = {x: [], y: []};
		for (var z in this.options.modifiers){
			if (!this.options.modifiers[z]) continue;
			if (this.options.style) this.value.now[z] = this.element.getStyle(this.options.modifiers[z]).toInt();
			else this.value.now[z] = this.element[this.options.modifiers[z]];
			if (this.options.invert) this.value.now[z] *= -1;
			this.mouse.pos[z] = event.page[z] - this.value.now[z];
			if (limit && limit[z]){
				for (var i = 2; i--; i){
					if ($chk(limit[z][i])) this.limit[z][i] = $lambda(limit[z][i])();
				}
			}
		}
		if ($type(this.options.grid) == 'number') this.options.grid = {x: this.options.grid, y: this.options.grid};
		this.document.addEvents({mousemove: this.bound.check, mouseup: this.bound.cancel});
		this.document.addEvent(this.selection, this.bound.eventStop);
	},

	check: function(event){
		if (this.options.preventDefault) event.preventDefault();
		var distance = Math.round(Math.sqrt(Math.pow(event.page.x - this.mouse.start.x, 2) + Math.pow(event.page.y - this.mouse.start.y, 2)));
		if (distance > this.options.snap){
			this.cancel();
			this.document.addEvents({
				mousemove: this.bound.drag,
				mouseup: this.bound.stop
			});
			this.fireEvent('start', [this.element, event]).fireEvent('snap', this.element);
		}
	},

	drag: function(event){
		if (this.options.preventDefault) event.preventDefault();
		this.mouse.now = event.page;
		for (var z in this.options.modifiers){
			if (!this.options.modifiers[z]) continue;
			this.value.now[z] = this.mouse.now[z] - this.mouse.pos[z];
			if (this.options.invert) this.value.now[z] *= -1;
			if (this.options.limit && this.limit[z]){
				if ($chk(this.limit[z][1]) && (this.value.now[z] > this.limit[z][1])){
					this.value.now[z] = this.limit[z][1];
				} else if ($chk(this.limit[z][0]) && (this.value.now[z] < this.limit[z][0])){
					this.value.now[z] = this.limit[z][0];
				}
			}
			if (this.options.grid[z]) this.value.now[z] -= ((this.value.now[z] - (this.limit[z][0]||0)) % this.options.grid[z]);
			if (this.options.style) this.element.setStyle(this.options.modifiers[z], this.value.now[z] + this.options.unit);
			else this.element[this.options.modifiers[z]] = this.value.now[z];
		}
		this.fireEvent('drag', [this.element, event]);
	},

	cancel: function(event){
		this.document.removeEvent('mousemove', this.bound.check);
		this.document.removeEvent('mouseup', this.bound.cancel);
		if (event){
			this.document.removeEvent(this.selection, this.bound.eventStop);
			this.fireEvent('cancel', this.element);
		}
	},

	stop: function(event){
		this.document.removeEvent(this.selection, this.bound.eventStop);
		this.document.removeEvent('mousemove', this.bound.drag);
		this.document.removeEvent('mouseup', this.bound.stop);
		if (event) this.fireEvent('complete', [this.element, event]);
	}

});

Element.implement({

	makeResizable: function(options){
		var drag = new Drag(this, $merge({modifiers: {x: 'width', y: 'height'}}, options));
		this.store('resizer', drag);
		return drag.addEvent('drag', function(){
			this.fireEvent('resize', drag);
		}.bind(this));
	}

});


/*
Script: Drag.Move.js
	A Drag extension that provides support for the constraining of draggables to containers and droppables.

	License:
		MIT-style license.

	Authors:
		Valerio Proietti
		Tom Occhinno
		Jan Kassens*/

Drag.Move = new Class({

	Extends: Drag,

	options: {/*
		onEnter: $empty(thisElement, overed),
		onLeave: $empty(thisElement, overed),
		onDrop: $empty(thisElement, overed, event),*/
		droppables: [],
		container: false,
		precalculate: false,
		includeMargins: true,
		checkDroppables: true
	},

	initialize: function(element, options){
		this.parent(element, options);
		this.droppables = $$(this.options.droppables);
		this.container = document.id(this.options.container);
		if (this.container && $type(this.container) != 'element') this.container = document.id(this.container.getDocument().body);

		var position = this.element.getStyle('position');
		if (position=='static') position = 'absolute';
		if ([this.element.getStyle('left'), this.element.getStyle('top')].contains('auto')) this.element.position(this.element.getPosition(this.element.offsetParent));
		this.element.setStyle('position', position);

		this.addEvent('start', this.checkDroppables, true);

		this.overed = null;
	},

	start: function(event){
		if (this.container){
			var ccoo = this.container.getCoordinates(this.element.getOffsetParent()), cbs = {}, ems = {};

			['top', 'right', 'bottom', 'left'].each(function(pad){
				cbs[pad] = this.container.getStyle('border-' + pad).toInt();
				ems[pad] = this.element.getStyle('margin-' + pad).toInt();
			}, this);

			var width = this.element.offsetWidth + ems.left + ems.right;
			var height = this.element.offsetHeight + ems.top + ems.bottom;

			if (this.options.includeMargins) {
				$each(ems, function(value, key) {
					ems[key] = 0;
				});
			}
			if (this.container == this.element.getOffsetParent()) {
				this.options.limit = {
					x: [0 - ems.left, ccoo.right - cbs.left - cbs.right - width + ems.right],
					y: [0 - ems.top, ccoo.bottom - cbs.top - cbs.bottom - height + ems.bottom]
				};
			} else {
				this.options.limit = {
					x: [ccoo.left + cbs.left - ems.left, ccoo.right - cbs.right - width + ems.right],
					y: [ccoo.top + cbs.top - ems.top, ccoo.bottom - cbs.bottom - height + ems.bottom]
				};
			}

		}
		if (this.options.precalculate){
			this.positions = this.droppables.map(function(el) {
				return el.getCoordinates();
			});
		}
		this.parent(event);
	},

	checkAgainst: function(el, i){
		el = (this.positions) ? this.positions[i] : el.getCoordinates();
		var now = this.mouse.now;
		return (now.x > el.left && now.x < el.right && now.y < el.bottom && now.y > el.top);
	},

	checkDroppables: function(){
		var overed = this.droppables.filter(this.checkAgainst, this).getLast();
		if (this.overed != overed){
			if (this.overed) this.fireEvent('leave', [this.element, this.overed]);
			if (overed) this.fireEvent('enter', [this.element, overed]);
			this.overed = overed;
		}
	},

	drag: function(event){
		this.parent(event);
		if (this.options.checkDroppables && this.droppables.length) this.checkDroppables();
	},

	stop: function(event){
		this.checkDroppables();
		this.fireEvent('drop', [this.element, this.overed, event]);
		this.overed = null;
		return this.parent(event);
	}

});

Element.implement({

	makeDraggable: function(options){
		var drag = new Drag.Move(this, options);
		this.store('dragger', drag);
		return drag;
	}

});


/*
Script: Slider.js
	Class for creating horizontal and vertical slider controls.

	License:
		MIT-style license.

	Authors:
		Valerio Proietti
*/

var Slider = new Class({

	Implements: [Events, Options],

	Binds: ['clickedElement', 'draggedKnob', 'scrolledElement'],

	options: {/*
		onTick: $empty(intPosition),
		onChange: $empty(intStep),
		onComplete: $empty(strStep),*/
		onTick: function(position){
			if (this.options.snap) position = this.toPosition(this.step);
			this.knob.setStyle(this.property, position);
		},
		snap: false,
		offset: 0,
		range: false,
		wheel: false,
		steps: 100,
		mode: 'horizontal'
	},

	initialize: function(element, knob, options){
		this.setOptions(options);
		this.element = document.id(element);
		this.knob = document.id(knob);
		this.previousChange = this.previousEnd = this.step = -1;
		var offset, limit = {}, modifiers = {'x': false, 'y': false};
		switch (this.options.mode){
			case 'vertical':
				this.axis = 'y';
				this.property = 'top';
				offset = 'offsetHeight';
				break;
			case 'horizontal':
				this.axis = 'x';
				this.property = 'left';
				offset = 'offsetWidth';
		}
		this.half = this.knob[offset] / 2;
		this.full = this.element[offset] - this.knob[offset] + (this.options.offset * 2);
		this.min = $chk(this.options.range[0]) ? this.options.range[0] : 0;
		this.max = $chk(this.options.range[1]) ? this.options.range[1] : this.options.steps;
		this.range = this.max - this.min;
		this.steps = this.options.steps || this.full;
		this.stepSize = Math.abs(this.range) / this.steps;
		this.stepWidth = this.stepSize * this.full / Math.abs(this.range) ;

		this.knob.setStyle('position', 'relative').setStyle(this.property, - this.options.offset);
		modifiers[this.axis] = this.property;
		limit[this.axis] = [- this.options.offset, this.full - this.options.offset];

		this.bound = {
			clickedElement: this.clickedElement.bind(this),
			scrolledElement: this.scrolledElement.bindWithEvent(this),
			draggedKnob: this.draggedKnob.bind(this)
		};

		var dragOptions = {
			snap: 0,
			limit: limit,
			modifiers: modifiers,
			onDrag: this.bound.draggedKnob,
			onStart: this.bound.draggedKnob,
			onBeforeStart: (function(){
				this.isDragging = true;
			}).bind(this),
			onComplete: function(){
				this.isDragging = false;
				this.draggedKnob();
				this.end();
			}.bind(this)
		};
		if (this.options.snap){
			dragOptions.grid = Math.ceil(this.stepWidth);
			dragOptions.limit[this.axis][1] = this.full;
		}

		this.drag = new Drag(this.knob, dragOptions);
		this.attach();
	},

	attach: function(){
		this.element.addEvent('mousedown', this.bound.clickedElement);
		if (this.options.wheel) this.element.addEvent('mousewheel', this.bound.scrolledElement);
		this.drag.attach();
		return this;
	},

	detach: function(){
		this.element.removeEvent('mousedown', this.bound.clickedElement);
		this.element.removeEvent('mousewheel', this.bound.scrolledElement);
		this.drag.detach();
		return this;
	},

	set: function(step){
		if (!((this.range > 0) ^ (step < this.min))) step = this.min;
		if (!((this.range > 0) ^ (step > this.max))) step = this.max;

		this.step = Math.round(step);
		this.checkStep();
		this.fireEvent('tick', this.toPosition(this.step));
		this.end();
		return this;
	},

	clickedElement: function(event){
		if (this.isDragging || event.target == this.knob) return;

		var dir = this.range < 0 ? -1 : 1;
		var position = event.page[this.axis] - this.element.getPosition()[this.axis] - this.half;
		position = position.limit(-this.options.offset, this.full -this.options.offset);

		this.step = Math.round(this.min + dir * this.toStep(position));
		this.checkStep();
		this.fireEvent('tick', position);
		this.end();
	},

	scrolledElement: function(event){
		var mode = (this.options.mode == 'horizontal') ? (event.wheel < 0) : (event.wheel > 0);
		this.set(mode ? this.step - this.stepSize : this.step + this.stepSize);
		event.stop();
	},

	draggedKnob: function(){
		var dir = this.range < 0 ? -1 : 1;
		var position = this.drag.value.now[this.axis];
		position = position.limit(-this.options.offset, this.full -this.options.offset);
		this.step = Math.round(this.min + dir * this.toStep(position));
		this.checkStep();
	},

	checkStep: function(){
		if (this.previousChange != this.step){
			this.previousChange = this.step;
			this.fireEvent('change', this.step);
		}
	},

	end: function(){
		if (this.previousEnd !== this.step){
			this.previousEnd = this.step;
			this.fireEvent('complete', this.step + '');
		}
	},

	toStep: function(position){
		var step = (position + this.options.offset) * this.stepSize / this.full * this.steps;
		return this.options.steps ? Math.round(step -= step % this.stepSize) : step;
	},

	toPosition: function(step){
		return (this.full * Math.abs(this.min - step)) / (this.steps * this.stepSize) - this.options.offset;
	}

});

/*
Script: Sortables.js
	Class for creating a drag and drop sorting interface for lists of items.

	License:
		MIT-style license.

	Authors:
		Tom Occhino
*/

var Sortables = new Class({

	Implements: [Events, Options],

	options: {/*
		onSort: $empty(element, clone),
		onStart: $empty(element, clone),
		onComplete: $empty(element),*/
		snap: 4,
		opacity: 1,
		clone: false,
		revert: false,
		handle: false,
		constrain: false
	},

	initialize: function(lists, options){
		this.setOptions(options);
		this.elements = [];
		this.lists = [];
		this.idle = true;

		this.addLists($$(document.id(lists) || lists));
		if (!this.options.clone) this.options.revert = false;
		if (this.options.revert) this.effect = new Fx.Morph(null, $merge({duration: 250, link: 'cancel'}, this.options.revert));
	},

	attach: function(){
		this.addLists(this.lists);
		return this;
	},

	detach: function(){
		this.lists = this.removeLists(this.lists);
		return this;
	},

	addItems: function(){
		Array.flatten(arguments).each(function(element){
			this.elements.push(element);
			var start = element.retrieve('sortables:start', this.start.bindWithEvent(this, element));
			(this.options.handle ? element.getElement(this.options.handle) || element : element).addEvent('mousedown', start);
		}, this);
		return this;
	},

	addLists: function(){
		Array.flatten(arguments).each(function(list){
			this.lists.push(list);
			this.addItems(list.getChildren());
		}, this);
		return this;
	},

	removeItems: function(){
		return $$(Array.flatten(arguments).map(function(element){
			this.elements.erase(element);
			var start = element.retrieve('sortables:start');
			(this.options.handle ? element.getElement(this.options.handle) || element : element).removeEvent('mousedown', start);

			return element;
		}, this));
	},

	removeLists: function(){
		return $$(Array.flatten(arguments).map(function(list){
			this.lists.erase(list);
			this.removeItems(list.getChildren());

			return list;
		}, this));
	},

	getClone: function(event, element){
		if (!this.options.clone) return new Element('div').inject(document.body);
		if ($type(this.options.clone) == 'function') return this.options.clone.call(this, event, element, this.list);
		return element.clone(true).setStyles({
			margin: '0px',
			position: 'absolute',
			visibility: 'hidden',
			'width': element.getStyle('width')
		}).inject(this.list).position(element.getPosition(element.getOffsetParent()));
	},

	getDroppables: function(){
		var droppables = this.list.getChildren();
		if (!this.options.constrain) droppables = this.lists.concat(droppables).erase(this.list);
		return droppables.erase(this.clone).erase(this.element);
	},

	insert: function(dragging, element){
		var where = 'inside';
		if (this.lists.contains(element)){
			this.list = element;
			this.drag.droppables = this.getDroppables();
		} else {
			where = this.element.getAllPrevious().contains(element) ? 'before' : 'after';
		}
		this.element.inject(element, where);
		this.fireEvent('sort', [this.element, this.clone]);
	},

	start: function(event, element){
		if (!this.idle) return;
		this.idle = false;
		this.element = element;
		this.opacity = element.get('opacity');
		this.list = element.getParent();
		this.clone = this.getClone(event, element);

		this.drag = new Drag.Move(this.clone, {
			snap: this.options.snap,
			container: this.options.constrain && this.element.getParent(),
			droppables: this.getDroppables(),
			onSnap: function(){
				event.stop();
				this.clone.setStyle('visibility', 'visible');
				this.element.set('opacity', this.options.opacity || 0);
				this.fireEvent('start', [this.element, this.clone]);
			}.bind(this),
			onEnter: this.insert.bind(this),
			onCancel: this.reset.bind(this),
			onComplete: this.end.bind(this)
		});

		this.clone.inject(this.element, 'before');
		this.drag.start(event);
	},

	end: function(){
		this.drag.detach();
		this.element.set('opacity', this.opacity);
		if (this.effect){
			var dim = this.element.getStyles('width', 'height');
			var pos = this.clone.computePosition(this.element.getPosition(this.clone.offsetParent));
			this.effect.element = this.clone;
			this.effect.start({
				top: pos.top,
				left: pos.left,
				width: dim.width,
				height: dim.height,
				opacity: 0.25
			}).chain(this.reset.bind(this));
		} else {
			this.reset();
		}
	},

	reset: function(){
		this.idle = true;
		this.clone.destroy();
		this.fireEvent('complete', this.element);
	},

	serialize: function(){
		var params = Array.link(arguments, {modifier: Function.type, index: $defined});
		var serial = this.lists.map(function(list){
			return list.getChildren().map(params.modifier || function(element){
				return element.get('id');
			}, this);
		}, this);

		var index = params.index;
		if (this.lists.length == 1) index = 0;
		return $chk(index) && index >= 0 && index < this.lists.length ? serial[index] : serial;
	}

});


/*
Script: Request.JSONP.js
	Defines Request.JSONP, a class for cross domain javascript via script injection.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
		Guillermo Rauch
*/

Request.JSONP = new Class({

	Implements: [Chain, Events, Options, Log],

	options: {/*
		onRetry: $empty(intRetries),
		onRequest: $empty(scriptElement),
		onComplete: $empty(data),
		onSuccess: $empty(data),
		onCancel: $empty(),*/
		url: '',
		data: {},
		retries: 0,
		timeout: 0,
		link: 'ignore',
		callbackKey: 'callback',
		injectScript: document.head
	},

	initialize: function(options){
		this.setOptions(options);
		this.running = false;
		this.requests = 0;
		this.triesRemaining = [];
	},

	check: function(){
		if (!this.running) return true;
		switch (this.options.link){
			case 'cancel': this.cancel(); return true;
			case 'chain': this.chain(this.caller.bind(this, arguments)); return false;
		}
		return false;
	},

	send: function(options){
		if (!$chk(arguments[1]) && !this.check(options)) return this;

		var type = $type(options), old = this.options, index = $chk(arguments[1]) ? arguments[1] : this.requests++;
		if (type == 'string' || type == 'element') options = {data: options};

		options = $extend({data: old.data, url: old.url}, options);

		if (!$chk(this.triesRemaining[index])) this.triesRemaining[index] = this.options.retries;
		var remaining = this.triesRemaining[index];

		(function(){
			var script = this.getScript(options);
			this.log('JSONP retrieving script with url: ' + script.get('src'));
			this.fireEvent('request', script);
			this.running = true;

			(function(){
				if (remaining){
					this.triesRemaining[index] = remaining - 1;
					if (script){
						script.destroy();
						this.send(options, index);
						this.fireEvent('retry', this.triesRemaining[index]);
					}
				} else if(script && this.options.timeout){
					script.destroy();
					this.cancel();
					this.fireEvent('failure');
				}
			}).delay(this.options.timeout, this);
		}).delay(Browser.Engine.trident ? 50 : 0, this);
		return this;
	},

	cancel: function(){
		if (!this.running) return this;
		this.running = false;
		this.fireEvent('cancel');
		return this;
	},

	getScript: function(options){
		var index = Request.JSONP.counter, data;
		Request.JSONP.counter++;

		switch ($type(options.data)){
			case 'element': data = document.id(options.data).toQueryString(); break;
			case 'object': case 'hash': data = Hash.toQueryString(options.data);
		}

		var src = options.url +
			 (options.url.test('\\?') ? '&' :'?') +
			 (options.callbackKey || this.options.callbackKey) +
			 '=Request.JSONP.request_map.request_'+ index +
			 (data ? '&' + data : '');
		if (src.length > 2083) this.log('JSONP '+ src +' will fail in Internet Explorer, which enforces a 2083 bytes length limit on URIs');

		var script = new Element('script', {type: 'text/javascript', src: src});
		Request.JSONP.request_map['request_' + index] = function(data){ this.success(data, script); }.bind(this);
		return script.inject(this.options.injectScript);
	},

	success: function(data, script){
		if (script) script.destroy();
		this.running = false;
		this.log('JSONP successfully retrieved: ', data);
		this.fireEvent('complete', [data]).fireEvent('success', [data]).callChain();
	}

});

Request.JSONP.counter = 0;
Request.JSONP.request_map = {};

/*
Script: Request.Queue.js
	Controls several instances of Request and its variants to run only one request at a time.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
*/

Request.Queue = new Class({

	Implements: [Options, Events],

	Binds: ['attach', 'request', 'complete', 'cancel', 'success', 'failure', 'exception'],

	options: {/*
		onRequest: $empty(argsPassedToOnRequest),
		onSuccess: $empty(argsPassedToOnSuccess),
		onComplete: $empty(argsPassedToOnComplete),
		onCancel: $empty(argsPassedToOnCancel),
		onException: $empty(argsPassedToOnException),
		onFailure: $empty(argsPassedToOnFailure),*/
		stopOnFailure: true,
		autoAdvance: true,
		concurrent: 1,
		requests: {}
	},

	initialize: function(options){
		this.setOptions(options);
		this.requests = new Hash;
		this.addRequests(this.options.requests);
		this.queue = [];
		this.reqBinders = {};
	},

	addRequest: function(name, request){
		this.requests.set(name, request);
		this.attach(name, request);
		return this;
	},

	addRequests: function(obj){
		$each(obj, function(req, name){
			this.addRequest(name, req);
		}, this);
		return this;
	},

	getName: function(req){
		return this.requests.keyOf(req);
	},

	attach: function(name, req){
		if (req._groupSend) return this;
		['request', 'complete', 'cancel', 'success', 'failure', 'exception'].each(function(evt){
			if(!this.reqBinders[name]) this.reqBinders[name] = {};
			this.reqBinders[name][evt] = function(){
				this['on' + evt.capitalize()].apply(this, [name, req].extend(arguments));
			}.bind(this);
			req.addEvent(evt, this.reqBinders[name][evt]);
		}, this);
		req._groupSend = req.send;
		req.send = function(options){
			this.send(name, options);
			return req;
		}.bind(this);
		return this;
	},

	removeRequest: function(req){
		var name = $type(req) == 'object' ? this.getName(req) : req;
		if (!name && $type(name) != 'string') return this;
		req = this.requests.get(name);
		if (!req) return this;
		['request', 'complete', 'cancel', 'success', 'failure', 'exception'].each(function(evt){
			req.removeEvent(evt, this.reqBinders[name][evt]);
		}, this);
		req.send = req._groupSend;
		delete req._groupSend;
		return this;
	},

	getRunning: function(){
		return this.requests.filter(function(r){ return r.running; });
	},

	isRunning: function(){
		return !!this.getRunning().getKeys().length;
	},

	send: function(name, options){
		var q = function(){
			this.requests.get(name)._groupSend(options);
			this.queue.erase(q);
		}.bind(this);
		q.name = name;
		if (this.getRunning().getKeys().length >= this.options.concurrent || (this.error && this.options.stopOnFailure)) this.queue.push(q);
		else q();
		return this;
	},

	hasNext: function(name){
		return (!name) ? !!this.queue.length : !!this.queue.filter(function(q){ return q.name == name; }).length;
	},

	resume: function(){
		this.error = false;
		(this.options.concurrent - this.getRunning().getKeys().length).times(this.runNext, this);
		return this;
	},

	runNext: function(name){
		if (!this.queue.length) return this;
		if (!name){
			this.queue[0]();
		} else {
			var found;
			this.queue.each(function(q){
				if (!found && q.name == name){
					found = true;
					q();
				}
			});
		}
		return this;
	},

	runAll: function() {
		this.queue.each(function(q) {
			q();
		});
		return this;
	},

	clear: function(name){
		if (!name){
			this.queue.empty();
		} else {
			this.queue = this.queue.map(function(q){
				if (q.name != name) return q;
				else return false;
			}).filter(function(q){ return q; });
		}
		return this;
	},

	cancel: function(name){
		this.requests.get(name).cancel();
		return this;
	},

	onRequest: function(){
		this.fireEvent('request', arguments);
	},

	onComplete: function(){
		this.fireEvent('complete', arguments);
	},

	onCancel: function(){
		if (this.options.autoAdvance && !this.error) this.runNext();
		this.fireEvent('cancel', arguments);
	},

	onSuccess: function(){
		if (this.options.autoAdvance && !this.error) this.runNext();
		this.fireEvent('success', arguments);
	},

	onFailure: function(){
		this.error = true;
		if (!this.options.stopOnFailure && this.options.autoAdvance) this.runNext();
		this.fireEvent('failure', arguments);
	},

	onException: function(){
		this.error = true;
		if (!this.options.stopOnFailure && this.options.autoAdvance) this.runNext();
		this.fireEvent('exception', arguments);
	}

});


/*
Script: Request.Periodical.js
	Requests the same url at a time interval that increases when no data is returned from the requested server

	License:
		MIT-style license.

	Authors:
		Christoph Pojer

*/

Request.implement({

	options: {
		initialDelay: 5000,
		delay: 5000,
		limit: 60000
	},

	startTimer: function(data){
		var fn = (function(){
			if (!this.running) this.send({data: data});
		});
		this.timer = fn.delay(this.options.initialDelay, this);
		this.lastDelay = this.options.initialDelay;
		this.completeCheck = function(j){
			$clear(this.timer);
			if (j) this.lastDelay = this.options.delay;
			else this.lastDelay = (this.lastDelay+this.options.delay).min(this.options.limit);
			this.timer = fn.delay(this.lastDelay, this);
		};
		this.addEvent('complete', this.completeCheck);
		return this;
	},

	stopTimer: function(){
		$clear(this.timer);
		this.removeEvent('complete', this.completeCheck);
		return this;
	}

});

/*
Script: Assets.js
	Provides methods to dynamically load JavaScript, CSS, and Image files into the document.

	License:
		MIT-style license.

	Authors:
		Valerio Proietti
*/

var Asset = {

	javascript: function(source, properties){
		properties = $extend({
			onload: $empty,
			document: document,
			check: $lambda(true)
		}, properties);

		var script = new Element('script', {src: source, type: 'text/javascript'});

		var load = properties.onload.bind(script), check = properties.check, doc = properties.document;
		delete properties.onload; delete properties.check; delete properties.document;

		script.addEvents({
			load: load,
			readystatechange: function(){
				if (['loaded', 'complete'].contains(this.readyState)) load();
			}
		}).set(properties);

		if (Browser.Engine.webkit419) var checker = (function(){
			if (!$try(check)) return;
			$clear(checker);
			load();
		}).periodical(50);

		return script.inject(doc.head);
	},

	css: function(source, properties){
		return new Element('link', $merge({
			rel: 'stylesheet', media: 'screen', type: 'text/css', href: source
		}, properties)).inject(document.head);
	},

	image: function(source, properties){
		properties = $merge({
			onload: $empty,
			onabort: $empty,
			onerror: $empty
		}, properties);
		var image = new Image();
		var element = document.id(image) || new Element('img');
		['load', 'abort', 'error'].each(function(name){
			var type = 'on' + name;
			var event = properties[type];
			delete properties[type];
			image[type] = function(){
				if (!image) return;
				if (!element.parentNode){
					element.width = image.width;
					element.height = image.height;
				}
				image = image.onload = image.onabort = image.onerror = null;
				event.delay(1, element, element);
				element.fireEvent(name, element, 1);
			};
		});
		image.src = element.src = source;
		if (image && image.complete) image.onload.delay(1);
		return element.set(properties);
	},

	images: function(sources, options){
		options = $merge({
			onComplete: $empty,
			onProgress: $empty,
			onError: $empty,
			properties: {}
		}, options);
		sources = $splat(sources);
		var images = [];
		var counter = 0;
		return new Elements(sources.map(function(source){
			return Asset.image(source, $extend(options.properties, {
				onload: function(){
					options.onProgress.call(this, counter, sources.indexOf(source));
					counter++;
					if (counter == sources.length) options.onComplete();
				},
				onerror: function(){
					options.onError.call(this, counter, sources.indexOf(source));
					counter++;
					if (counter == sources.length) options.onComplete();
				}
			}));
		}));
	}

};

/*
Script: Color.js
	Class for creating and manipulating colors in JavaScript. Supports HSB -> RGB Conversions and vice versa.

	License:
		MIT-style license.

	Authors:
		Valerio Proietti
*/

var Color = new Native({

	initialize: function(color, type){
		if (arguments.length >= 3){
			type = 'rgb'; color = Array.slice(arguments, 0, 3);
		} else if (typeof color == 'string'){
			if (color.match(/rgb/)) color = color.rgbToHex().hexToRgb(true);
			else if (color.match(/hsb/)) color = color.hsbToRgb();
			else color = color.hexToRgb(true);
		}
		type = type || 'rgb';
		switch (type){
			case 'hsb':
				var old = color;
				color = color.hsbToRgb();
				color.hsb = old;
			break;
			case 'hex': color = color.hexToRgb(true); break;
		}
		color.rgb = color.slice(0, 3);
		color.hsb = color.hsb || color.rgbToHsb();
		color.hex = color.rgbToHex();
		return $extend(color, this);
	}

});

Color.implement({

	mix: function(){
		var colors = Array.slice(arguments);
		var alpha = ($type(colors.getLast()) == 'number') ? colors.pop() : 50;
		var rgb = this.slice();
		colors.each(function(color){
			color = new Color(color);
			for (var i = 0; i < 3; i++) rgb[i] = Math.round((rgb[i] / 100 * (100 - alpha)) + (color[i] / 100 * alpha));
		});
		return new Color(rgb, 'rgb');
	},

	invert: function(){
		return new Color(this.map(function(value){
			return 255 - value;
		}));
	},

	setHue: function(value){
		return new Color([value, this.hsb[1], this.hsb[2]], 'hsb');
	},

	setSaturation: function(percent){
		return new Color([this.hsb[0], percent, this.hsb[2]], 'hsb');
	},

	setBrightness: function(percent){
		return new Color([this.hsb[0], this.hsb[1], percent], 'hsb');
	}

});

var $RGB = function(r, g, b){
	return new Color([r, g, b], 'rgb');
};

var $HSB = function(h, s, b){
	return new Color([h, s, b], 'hsb');
};

var $HEX = function(hex){
	return new Color(hex, 'hex');
};

Array.implement({

	rgbToHsb: function(){
		var red = this[0], green = this[1], blue = this[2];
		var hue, saturation, brightness;
		var max = Math.max(red, green, blue), min = Math.min(red, green, blue);
		var delta = max - min;
		brightness = max / 255;
		saturation = (max != 0) ? delta / max : 0;
		if (saturation == 0){
			hue = 0;
		} else {
			var rr = (max - red) / delta;
			var gr = (max - green) / delta;
			var br = (max - blue) / delta;
			if (red == max) hue = br - gr;
			else if (green == max) hue = 2 + rr - br;
			else hue = 4 + gr - rr;
			hue /= 6;
			if (hue < 0) hue++;
		}
		return [Math.round(hue * 360), Math.round(saturation * 100), Math.round(brightness * 100)];
	},

	hsbToRgb: function(){
		var br = Math.round(this[2] / 100 * 255);
		if (this[1] == 0){
			return [br, br, br];
		} else {
			var hue = this[0] % 360;
			var f = hue % 60;
			var p = Math.round((this[2] * (100 - this[1])) / 10000 * 255);
			var q = Math.round((this[2] * (6000 - this[1] * f)) / 600000 * 255);
			var t = Math.round((this[2] * (6000 - this[1] * (60 - f))) / 600000 * 255);
			switch (Math.floor(hue / 60)){
				case 0: return [br, t, p];
				case 1: return [q, br, p];
				case 2: return [p, br, t];
				case 3: return [p, q, br];
				case 4: return [t, p, br];
				case 5: return [br, p, q];
			}
		}
		return false;
	}

});

String.implement({

	rgbToHsb: function(){
		var rgb = this.match(/\d{1,3}/g);
		return (rgb) ? rgb.rgbToHsb() : null;
	},

	hsbToRgb: function(){
		var hsb = this.match(/\d{1,3}/g);
		return (hsb) ? hsb.hsbToRgb() : null;
	}

});


/*
Script: Group.js
	Class for monitoring collections of events

	License:
		MIT-style license.

	Authors:
		Valerio Proietti
*/

var Group = new Class({

	initialize: function(){
		this.instances = Array.flatten(arguments);
		this.events = {};
		this.checker = {};
	},

	addEvent: function(type, fn){
		this.checker[type] = this.checker[type] || {};
		this.events[type] = this.events[type] || [];
		if (this.events[type].contains(fn)) return false;
		else this.events[type].push(fn);
		this.instances.each(function(instance, i){
			instance.addEvent(type, this.check.bind(this, [type, instance, i]));
		}, this);
		return this;
	},

	check: function(type, instance, i){
		this.checker[type][i] = true;
		var every = this.instances.every(function(current, j){
			return this.checker[type][j] || false;
		}, this);
		if (!every) return;
		this.checker[type] = {};
		this.events[type].each(function(event){
			event.call(this, this.instances, instance);
		}, this);
	}

});


/*
Script: Hash.Cookie.js
	Class for creating, reading, and deleting Cookies in JSON format.

	License:
		MIT-style license.

	Authors:
		Valerio Proietti
		Aaron Newton
*/

Hash.Cookie = new Class({

	Extends: Cookie,

	options: {
		autoSave: true
	},

	initialize: function(name, options){
		this.parent(name, options);
		this.load();
	},

	save: function(){
		var value = JSON.encode(this.hash);
		if (!value || value.length > 4096) return false; //cookie would be truncated!
		if (value == '{}') this.dispose();
		else this.write(value);
		return true;
	},

	load: function(){
		this.hash = new Hash(JSON.decode(this.read(), true));
		return this;
	}

});

Hash.each(Hash.prototype, function(method, name){
	if (typeof method == 'function') Hash.Cookie.implement(name, function(){
		var value = method.apply(this.hash, arguments);
		if (this.options.autoSave) this.save();
		return value;
	});
});

/*
Script: IframeShim.js
	Defines IframeShim, a class for obscuring select lists and flash objects in IE.

	License:
		MIT-style license.

	Authors:
		Aaron Newton
*/

var IframeShim = new Class({

	Implements: [Options, Events, Class.Occlude],

	options: {
		className: 'iframeShim',
		display: false,
		zIndex: null,
		margin: 0,
		offset: {x: 0, y: 0},
		browsers: (Browser.Engine.trident4 || (Browser.Engine.gecko && !Browser.Engine.gecko19 && Browser.Platform.mac))
	},

	property: 'IframeShim',

	initialize: function(element, options){
		this.element = document.id(element);
		if (this.occlude()) return this.occluded;
		this.setOptions(options);
		this.makeShim();
		return this;
	},

	makeShim: function(){
		if(this.options.browsers){
			var zIndex = this.element.getStyle('zIndex').toInt();

			if (!zIndex){
				zIndex = 1;
				var pos = this.element.getStyle('position');
				if (pos == 'static' || !pos) this.element.setStyle('position', 'relative');
				this.element.setStyle('zIndex', zIndex);
			}
			zIndex = ($chk(this.options.zIndex) && zIndex > this.options.zIndex) ? this.options.zIndex : zIndex - 1;
			if (zIndex < 0) zIndex = 1;
			this.shim = new Element('iframe', {
				src:'javascript:false;document.write("");',
				scrolling: 'no',
				frameborder: 0,
				styles: {
					zIndex: zIndex,
					position: 'absolute',
					border: 'none',
					filter: 'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)'
				},
				'class': this.options.className
			}).store('IframeShim', this);
			var inject = (function(){
				this.shim.inject(this.element, 'after');
				this[this.options.display ? 'show' : 'hide']();
				this.fireEvent('inject');
			}).bind(this);
			if (Browser.Engine.trident && !IframeShim.ready) window.addEvent('load', inject);
			else inject();
		} else {
			this.position = this.hide = this.show = this.dispose = $lambda(this);
		}
	},

	position: function(){
		if (!IframeShim.ready) return this;
		var size = this.element.measure(function(){ return this.getSize(); });
		if ($type(this.options.margin)){
			size.x = size.x - (this.options.margin * 2);
			size.y = size.y - (this.options.margin * 2);
			this.options.offset.x += this.options.margin;
			this.options.offset.y += this.options.margin;
		}
		if (this.shim) {
			this.shim.set({width: size.x, height: size.y}).position({
				relativeTo: this.element,
				offset: this.options.offset
			});
		}
		return this;
	},

	hide: function(){
		if (this.shim) this.shim.setStyle('display', 'none');
		return this;
	},

	show: function(){
		if (this.shim) this.shim.setStyle('display', 'block');
		return this.position();
	},

	dispose: function(){
		if (this.shim) this.shim.dispose();
		return this;
	},

	destroy: function(){
		if (this.shim) this.shim.destroy();
		return this;
	}

});

window.addEvent('load', function(){
	IframeShim.ready = true;
});

/*
Script: Scroller.js
	Class which scrolls the contents of any Element (including the window) when the mouse reaches the Element's boundaries.

	License:
		MIT-style license.

	Authors:
		Valerio Proietti
*/

var Scroller = new Class({

	Implements: [Events, Options],

	options: {
		area: 20,
		velocity: 1,
		onChange: function(x, y){
			this.element.scrollTo(x, y);
		},
		fps: 50
	},

	initialize: function(element, options){
		this.setOptions(options);
		this.element = document.id(element);
		this.listener = ($type(this.element) != 'element') ? document.id(this.element.getDocument().body) : this.element;
		this.timer = null;
		this.bound = {
			attach: this.attach.bind(this),
			detach: this.detach.bind(this),
			getCoords: this.getCoords.bind(this)
		};
	},

	start: function(){
		this.listener.addEvents({
			mouseenter: this.bound.attach,
			mouseleave: this.bound.detach
		});
	},

	stop: function(){
		this.listener.removeEvents({
			mouseenter: this.bound.attach,
			mouseleave: this.bound.detach
		});
		this.timer = $clear(this.timer);
	},

	attach: function(){
		this.listener.addEvent('mousemove', this.bound.getCoords);
	},

	detach: function(){
		this.listener.removeEvent('mousemove', this.bound.getCoords);
		this.timer = $clear(this.timer);
	},

	getCoords: function(event){
		this.page = (this.listener.get('tag') == 'body') ? event.client : event.page;
		if (!this.timer) this.timer = this.scroll.periodical(Math.round(1000 / this.options.fps), this);
	},

	scroll: function(){
		var size = this.element.getSize(),
			scroll = this.element.getScroll(),
			pos = this.element.getOffsets(),
			scrollSize = this.element.getScrollSize(),
			change = {x: 0, y: 0};
		for (var z in this.page){
			if (this.page[z] < (this.options.area + pos[z]) && scroll[z] != 0)
				change[z] = (this.page[z] - this.options.area - pos[z]) * this.options.velocity;
			else if (this.page[z] + this.options.area > (size[z] + pos[z]) && scroll[z] + size[z] != scrollSize[z])
				change[z] = (this.page[z] - size[z] + this.options.area - pos[z]) * this.options.velocity;
		}
		if (change.y || change.x) this.fireEvent('change', [scroll.x + change.x, scroll.y + change.y]);
	}

});

/*
Script: Tips.js
	Class for creating nice tips that follow the mouse cursor when hovering an element.

	License:
		MIT-style license.

	Authors:
		Valerio Proietti
		Christoph Pojer
*/

var Tips = new Class({

	Implements: [Events, Options],

	options: {
		onShow: function(tip){
			tip.setStyle('visibility', 'visible');
		},
		onHide: function(tip){
			tip.setStyle('visibility', 'hidden');
		},
		title: 'title',
		text: function(el){
			return el.get('rel') || el.get('href');
		},
		showDelay: 100,
		hideDelay: 100,
		className: null,
		offset: {x: 16, y: 16},
		fixed: false
	},

	initialize: function(){
		var params = Array.link(arguments, {options: Object.type, elements: $defined});
		if (params.options && params.options.offsets) params.options.offset = params.options.offsets;
		this.setOptions(params.options);
		this.container = new Element('div', {'class': 'tip'});
		this.tip = this.getTip();

		if (params.elements) this.attach(params.elements);
	},

	getTip: function(){
		return new Element('div', {
			'class': this.options.className,
			styles: {
				visibility: 'hidden',
				display: 'none',
				position: 'absolute',
				top: 0,
				left: 0
			}
		}).adopt(
			new Element('div', {'class': 'tip-top'}),
			this.container,
			new Element('div', {'class': 'tip-bottom'})
		).inject(document.body);
	},

	attach: function(elements){
		var read = function(option, element){
			if (option == null) return '';
			return $type(option) == 'function' ? option(element) : element.get(option);
		};
		$$(elements).each(function(element){
			var title = read(this.options.title, element);
			element.erase('title').store('tip:native', title).retrieve('tip:title', title);
			element.retrieve('tip:text', read(this.options.text, element));

			var events = ['enter', 'leave'];
			if (!this.options.fixed) events.push('move');

			events.each(function(value){
				element.addEvent('mouse' + value, element.retrieve('tip:' + value, this['element' + value.capitalize()].bindWithEvent(this, element)));
			}, this);
		}, this);

		return this;
	},

	detach: function(elements){
		$$(elements).each(function(element){
			['enter', 'leave', 'move'].each(function(value){
				element.removeEvent('mouse' + value, element.retrieve('tip:' + value) || $empty);
			});

			element.eliminate('tip:enter').eliminate('tip:leave').eliminate('tip:move');

			if ($type(this.options.title) == 'string' && this.options.title == 'title'){
				var original = element.retrieve('tip:native');
				if (original) element.set('title', original);
			}
		}, this);

		return this;
	},

	elementEnter: function(event, element){
		$A(this.container.childNodes).each(Element.dispose);

		['title', 'text'].each(function(value){
			var content = element.retrieve('tip:' + value);
			if (!content) return;

			this[value + 'Element'] = new Element('div', {'class': 'tip-' + value}).inject(this.container);
			this.fill(this[value + 'Element'], content);
		}, this);

		this.timer = $clear(this.timer);
		this.timer = this.show.delay(this.options.showDelay, this, element);
		this.tip.setStyle('display', 'block');
		this.position((!this.options.fixed) ? event : {page: element.getPosition()});
	},

	elementLeave: function(event, element){
		$clear(this.timer);
		this.tip.setStyle('display', 'none');
		this.timer = this.hide.delay(this.options.hideDelay, this, element);
	},

	elementMove: function(event){
		this.position(event);
	},

	position: function(event){
		var size = window.getSize(), scroll = window.getScroll(),
			tip = {x: this.tip.offsetWidth, y: this.tip.offsetHeight},
			props = {x: 'left', y: 'top'},
			obj = {};

		for (var z in props){
			obj[props[z]] = event.page[z] + this.options.offset[z];
			if ((obj[props[z]] + tip[z] - scroll[z]) > size[z]) obj[props[z]] = event.page[z] - this.options.offset[z] - tip[z];
		}

		this.tip.setStyles(obj);
	},

	fill: function(element, contents){
		if(typeof contents == 'string') element.set('html', contents);
		else element.adopt(contents);
	},

	show: function(el){
		this.fireEvent('show', [this.tip, el]);
	},

	hide: function(el){
		this.fireEvent('hide', [this.tip, el]);
	}

});

/*
Script: Date.English.US.js
	Date messages for US English.

	License:
		MIT-style license.

	Authors:
		Aaron Newton

*/

MooTools.lang.set('en-US', 'Date', {

	months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
	days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
	//culture's date order: MM/DD/YYYY
	dateOrder: ['month', 'date', 'year'],
	shortDate: '%m/%d/%Y',
	shortTime: '%I:%M%p',
	AM: 'AM',
	PM: 'PM',

	/* Date.Extras */
	ordinal: function(dayOfMonth){
		//1st, 2nd, 3rd, etc.
		return (dayOfMonth > 3 && dayOfMonth < 21) ? 'th' : ['th', 'st', 'nd', 'rd', 'th'][Math.min(dayOfMonth % 10, 4)];
	},

	lessThanMinuteAgo: 'less than a minute ago',
	minuteAgo: 'about a minute ago',
	minutesAgo: '{delta} minutes ago',
	hourAgo: 'about an hour ago',
	hoursAgo: 'about {delta} hours ago',
	dayAgo: '1 day ago',
	daysAgo: '{delta} days ago',
	lessThanMinuteUntil: 'less than a minute from now',
	minuteUntil: 'about a minute from now',
	minutesUntil: '{delta} minutes from now',
	hourUntil: 'about an hour from now',
	hoursUntil: 'about {delta} hours from now',
	dayUntil: '1 day from now',
	daysUntil: '{delta} days from now'

});

/*
Script: FormValidator.English.js
	Date messages for English.

	License:
		MIT-style license.

	Authors:
		Aaron Newton

*/

MooTools.lang.set('en-US', 'FormValidator', {

	required:'This field is required.',
	minLength:'Please enter at least {minLength} characters (you entered {length} characters).',
	maxLength:'Please enter no more than {maxLength} characters (you entered {length} characters).',
	integer:'Please enter an integer in this field. Numbers with decimals (e.g. 1.25) are not permitted.',
	numeric:'Please enter only numeric values in this field (i.e. "1" or "1.1" or "-1" or "-1.1").',
	digits:'Please use numbers and punctuation only in this field (for example, a phone number with dashes or dots is permitted).',
	alpha:'Please use letters only (a-z) with in this field. No spaces or other characters are allowed.',
	alphanum:'Please use only letters (a-z) or numbers (0-9) only in this field. No spaces or other characters are allowed.',
	dateSuchAs:'Please enter a valid date such as {date}',
	dateInFormatMDY:'Please enter a valid date such as MM/DD/YYYY (i.e. "12/31/1999")',
	email:'Please enter a valid email address. For example "fred@domain.com".',
	url:'Please enter a valid URL such as http://www.google.com.',
	currencyDollar:'Please enter a valid $ amount. For example $100.00 .',
	oneRequired:'Please enter something for at least one of these inputs.',
	errorPrefix: 'Error: ',
	warningPrefix: 'Warning: ',

	//FormValidator.Extras

	noSpace: 'There can be no spaces in this input.',
	reqChkByNode: 'No items are selected.',
	requiredChk: 'This field is required.',
	reqChkByName: 'Please select a {label}.',
	match: 'This field needs to match the {matchName} field',
	startDate: 'the start date',
	endDate: 'the end date',
	currendDate: 'the current date',
	afterDate: 'The date should be the same or after {label}.',
	beforeDate: 'The date should be the same or before {label}.',
	startMonth: 'Please select a start month',
	sameMonth: 'These two dates must be in the same month - you must change one or the other.'

});/*
Script: Clientcide.js
	The Clientcide namespace.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
var Clientcide = {
	version: '2.1.0',
	setAssetLocation: function(baseHref) {
		var clean = function(str){
			return str.replace(/\/\//g, '/');
		};
		if (window.StickyWin && StickyWin.UI) {
			StickyWin.UI.implement({
				options: {
					baseHref: clean(baseHref + '/stickyWinHTML/')
				}
			});
			if (StickyWin.Alert) {
				StickyWin.Alert.implement({
					options: {
						baseHref: baseHref + "/simple.error.popup"
					}
				});
			}
			if (StickyWin.UI.Pointy) {
				StickyWin.UI.Pointy.implement({
					options: {
						baseHref: clean(baseHref + '/PointyTip/')
					}
				});
			}
		}
		if (window.TagMaker) {
			TagMaker.implement({
			    options: {
			        baseHref: clean(baseHref + '/tips/')
			    }
			});
		}
		if (window.ProductPicker) {
			ProductPicker.implement({
			    options:{
			        baseHref: clean(baseHref + '/Picker')
			    }
			});
		}

		if (window.Autocompleter) {
			Autocompleter.Base.implement({
					options: {
						baseHref: clean(baseHref + '/autocompleter/')
					}
			});
		}

		if (window.Lightbox) {
			Lightbox.implement({
			    options: {
			        assetBaseUrl: clean(baseHref + '/slimbox/')
			    }
			});
		}

		if (window.Waiter) {
			Waiter.implement({
				options: {
					baseHref: clean(baseHref + '/waiter/')
				}
			});
		}
	},
	preLoadCss: function(){
		if (window.StickyWin && StickyWin.ui) StickyWin.ui();
		if (window.StickyWin && StickyWin.pointy) StickyWin.pointy();
		Clientcide.preloaded = true;
		return true;
	},
	preloaded: false
};
(function(){
	if (!window.addEvent) return;
	var preload = function(){
		if (window.dbug) dbug.log('preloading clientcide css');
		if (!Clientcide.preloaded) Clientcide.preLoadCss();
	};
	window.addEvent('domready', preload);
	window.addEvent('load', preload);
})();
setCNETAssetBaseHref = Clientcide.setAssetLocation;

/*
Script: dbug.js
	A wrapper for Firebug console.* statements.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
var dbug = {
	logged: [],
	timers: {},
	firebug: false,
	enabled: false,
	log: function() {
		dbug.logged.push(arguments);
	},
	nolog: function(msg) {
		dbug.logged.push(arguments);
	},
	time: function(name){
		dbug.timers[name] = new Date().getTime();
	},
	timeEnd: function(name){
		if (dbug.timers[name]) {
			var end = new Date().getTime() - dbug.timers[name];
			dbug.timers[name] = false;
			dbug.log('%s: %s', name, end);
		} else dbug.log('no such timer: %s', name);
	},
	enable: function(silent) {
		var con = window.firebug ? firebug.d.console.cmd : window.console;

		if((!!window.console && !!window.console.warn) || window.firebug) {
			try {
				dbug.enabled = true;
				dbug.log = function(){
						(con.debug || con.log).apply(con, arguments);
				};
				dbug.time = function(){
					con.time.apply(con, arguments);
				};
				dbug.timeEnd = function(){
					con.timeEnd.apply(con, arguments);
				};
				if(!silent) dbug.log('enabling dbug');
				for(var i=0;i<dbug.logged.length;i++){ dbug.log.apply(con, dbug.logged[i]); }
				dbug.logged=[];
			} catch(e) {
				dbug.enable.delay(400);
			}
		}
	},
	disable: function(){
		if(dbug.firebug) dbug.enabled = false;
		dbug.log = dbug.nolog;
		dbug.time = function(){};
		dbug.timeEnd = function(){};
	},
	cookie: function(set){
		var value = document.cookie.match('(?:^|;)\\s*jsdebug=([^;]*)');
		var debugCookie = value ? unescape(value[1]) : false;
		if((!$defined(set) && debugCookie != 'true') || ($defined(set) && set)) {
			dbug.enable();
			dbug.log('setting debugging cookie');
			var date = new Date();
			date.setTime(date.getTime()+(24*60*60*1000));
			document.cookie = 'jsdebug=true;expires='+date.toGMTString()+';path=/;';
		} else dbug.disableCookie();
	},
	disableCookie: function(){
		dbug.log('disabling debugging cookie');
		document.cookie = 'jsdebug=false;path=/;';
	}
};

(function(){
	var fb = !!window.console || !!window.firebug;
	var con = window.firebug ? window.firebug.d.console.cmd : window.console;
	var debugMethods = ['debug','info','warn','error','assert','dir','dirxml'];
	var otherMethods = ['trace','group','groupEnd','profile','profileEnd','count'];
	function set(methodList, defaultFunction) {
		for(var i = 0; i < methodList.length; i++){
			dbug[methodList[i]] = (fb && con[methodList[i]])?con[methodList[i]]:defaultFunction;
		}
	};
	set(debugMethods, dbug.log);
	set(otherMethods, function(){});
})();
if ((!!window.console && !!window.console.warn) || window.firebug){
	dbug.firebug = true;
	var value = document.cookie.match('(?:^|;)\\s*jsdebug=([^;]*)');
	var debugCookie = value ? unescape(value[1]) : false;
	if(window.location.href.indexOf("jsdebug=true")>0 || debugCookie=='true') dbug.enable();
	if(debugCookie=='true')dbug.log('debugging cookie enabled');
	if(window.location.href.indexOf("jsdebugCookie=true")>0){
		dbug.cookie();
		if(!dbug.enabled)dbug.enable();
	}
	if(window.location.href.indexOf("jsdebugCookie=false")>0)dbug.disableCookie();
}

/*
Script: ToElement.js
	Defines the toElement method for a class.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
Class.ToElement = new Class({
	toElement: function(){
		return this.element;
	}
});
var ToElement = Class.ToElement;

/*
Script: StyleWriter.js

Provides a simple method for injecting a css style element into the DOM if it's not already present.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/

var StyleWriter = new Class({
	createStyle: function(css, id) {
		window.addEvent('domready', function(){
			try {
				if (document.id(id) && id) return;
				var style = new Element('style', {id: id||''}).inject($$('head')[0]);
				if (Browser.Engine.trident) style.styleSheet.cssText = css;
				else style.set('text', css);
			}catch(e){dbug.log('error: %s',e);}
		}.bind(this));
	}
});

/*
Script: StickyWin.js

Creates a div within the page with the specified contents at the location relative to the element you specify; basically an in-page popup maker.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/

var StickyWin = new Class({
	Binds: ['destroy', 'hide', 'togglepin', 'esc'],
	Implements: [Options, Events, StyleWriter, Class.ToElement],
	options: {
//		onDisplay: $empty,
//		onClose: $empty,
//		onDestroy: $empty,
		closeClassName: 'closeSticky',
		pinClassName: 'pinSticky',
		content: '',
		zIndex: 10000,
		className: '',
//		id: ... set above in initialize function
/*  	these are the defaults for Element.position anyway
		************************************************
		edge: false, //see Element.position
		position: 'center', //center, corner == upperLeft, upperRight, bottomLeft, bottomRight
		offset: {x:0,y:0},
		relativeTo: document.body, */
		width: false,
		height: false,
		timeout: -1,
		allowMultipleByClass: false,
		allowMultiple: true,
		showNow: true,
		useIframeShim: true,
		iframeShimSelector: '',
		destroyOnClose: false,
		closeOnClickOut: false,
		closeOnEsc: false
	},

	css: '.SWclearfix:after {content: "."; display: block; height: 0; clear: both; visibility: hidden;}'+
		 '.SWclearfix {display: inline-table;} * html .SWclearfix {height: 1%;} .SWclearfix {display: block;}',

	initialize: function(options){
		this.options.inject = this.options.inject || {
			target: document.body,
			where: 'bottom'
		};
		this.setOptions(options);
		this.id = this.options.id || 'StickyWin_'+new Date().getTime();
		this.makeWindow();

		if (this.options.content) this.setContent(this.options.content);
		if (this.options.timeout > 0) {
			this.addEvent('onDisplay', function(){
				this.hide.delay(this.options.timeout, this)
			}.bind(this));
		}
		//add css for clearfix
		this.createStyle(this.css, 'StickyWinClearFix');
		if (this.options.closeOnClickOut || this.options.closeOnEsc) this.attach();
		if (this.options.destroyOnClose) this.addEvent('close', this.destroy);
		if (this.options.showNow) this.show();
	},
	attach: function(attach){
		var method = $pick(attach, true) ? 'addEvents' : 'removeEvents';
		var events = {};
		if (this.options.closeOnClickOut) events.click = this.esc;
		if (this.options.closeOnEsc) events.keyup = this.esc;
		document[method](events);
	},
	esc: function(e) {
		if (e.key == "esc") this.hide();
		if (e.type == "click" && this.element != e.target && !this.element.hasChild(e.target)) this.hide();
	},
	makeWindow: function(){
		this.destroyOthers();
		if (!document.id(this.id)) {
			this.win = new Element('div', {
				id:		this.id
			}).addClass(this.options.className).addClass('StickyWinInstance').addClass('SWclearfix').setStyles({
			 	display:'none',
				position:'absolute',
				zIndex:this.options.zIndex
			}).inject(this.options.inject.target, this.options.inject.where).store('StickyWin', this);
		} else this.win = document.id(this.id);
		this.element = this.win;
		if (this.options.width && $type(this.options.width.toInt())=="number") this.win.setStyle('width', this.options.width.toInt());
		if (this.options.height && $type(this.options.height.toInt())=="number") this.win.setStyle('height', this.options.height.toInt());
		return this;
	},
	show: function(suppressEvent){
		this.showWin();
		if (!suppressEvent) this.fireEvent('display');
		if (this.options.useIframeShim) this.showIframeShim();
		this.visible = true;
		return this;
	},
	showWin: function(){
		if (!this.positioned) this.position();
		this.win.show();
	},
	hide: function(suppressEvent){
		if ($type(suppressEvent) == "event" || !suppressEvent) this.fireEvent('close');
		this.hideWin();
		if (this.options.useIframeShim) this.hideIframeShim();
		this.visible = false;
		return this;
	},
	hideWin: function(){
		this.win.setStyle('display','none');
	},
	destroyOthers: function() {
		if (!this.options.allowMultipleByClass || !this.options.allowMultiple) {
			$$('div.StickyWinInstance').each(function(sw) {
				if (!this.options.allowMultiple || (!this.options.allowMultipleByClass && sw.hasClass(this.options.className)))
					sw.retrieve('StickyWin').destroy();
			}, this);
		}
	},
	setContent: function(html) {
		if (this.win.getChildren().length>0) this.win.empty();
		if ($type(html) == "string") this.win.set('html', html);
		else if (document.id(html)) this.win.adopt(html);
		this.win.getElements('.'+this.options.closeClassName).each(function(el){
			el.addEvent('click', this.hide);
		}, this);
		this.win.getElements('.'+this.options.pinClassName).each(function(el){
			el.addEvent('click', this.togglepin);
		}, this);
		return this;
	},
	position: function(options){
		this.positioned = true;
		this.setOptions(options);
		this.win.position({
			allowNegative: $pick(this.options.allowNegative, this.options.relativeTo != document.body),
			relativeTo: this.options.relativeTo,
			position: this.options.position,
			offset: this.options.offset,
			edge: this.options.edge
		});
		if (this.shim) this.shim.position();
		return this;
	},
	pin: function(pin) {
		if (!this.win.pin) {
			dbug.log('you must include element.pin.js!');
			return this;
		}
		this.pinned = $pick(pin, true);
		this.win.pin(pin);
		return this;
	},
	unpin: function(){
		return this.pin(false);
	},
	togglepin: function(){
		return this.pin(!this.pinned);
	},
	makeIframeShim: function(){
		if (!this.shim){
			var el = (this.options.iframeShimSelector)?this.win.getElement(this.options.iframeShimSelector):this.win;
			this.shim = new IframeShim(el, {
				display: false,
				name: 'StickyWinShim'
			});
		}
	},
	showIframeShim: function(){
		if (this.options.useIframeShim) {
			this.makeIframeShim();
			this.shim.show();
		}
	},
	hideIframeShim: function(){
		if (this.shim) this.shim.hide();
	},
	destroy: function(){
		if (this.win) this.win.destroy();
		if (this.options.useIframeShim && this.shim) this.shim.destroy();
		if (document.id('modalOverlay')) document.id('modalOverlay').destroy();
		this.fireEvent('destroy');
	}
});


/*
Script: StickyWin.ui.js

Creates an html holder for in-page popups using a default style.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
StickyWin.UI = new Class({
	Implements: [Options, Class.ToElement, StyleWriter],
	options: {
		width: 300,
		css: "div.DefaultStickyWin {font-family:verdana; font-size:11px; line-height: 13px;}"+
			"div.DefaultStickyWin div.top_ul{background:url({%baseHref%}full.png) top left no-repeat; height:30px; width:15px; float:left}"+
			"div.DefaultStickyWin div.top_ur{position:relative; left:0px !important; left:-4px; background:url({%baseHref%}full.png) top right !important; height:30px; margin:0px 0px 0px 15px !important; margin-right:-4px; padding:0px}"+
			"div.DefaultStickyWin h1.caption{clear: none !important; margin:0px !important; overflow: hidden; padding:0 !important; font-weight:bold; color:#555; font-size:14px !important; position:relative; top:8px !important; left:5px !important; float: left; height: 22px !important;}"+
			"div.DefaultStickyWin div.middle, div.DefaultStickyWin div.closeBody {background:url({%baseHref%}body.png) top left repeat-y; margin:0px 20px 0px 0px !important;	margin-bottom: -3px; position: relative;	top: 0px !important; top: -3px;}"+
			"div.DefaultStickyWin div.body{background:url({%baseHref%}body.png) top right repeat-y; padding:8px 30px 8px 0px !important; margin-left:5px !important; position:relative; right:-20px !important; z-index: 1;}"+
			"div.DefaultStickyWin div.bottom{clear:both;}"+
			"div.DefaultStickyWin div.bottom_ll{background:url({%baseHref%}full.png) bottom left no-repeat; width:15px; height:15px; float:left}"+
			"div.DefaultStickyWin div.bottom_lr{background:url({%baseHref%}full.png) bottom right; position:relative; left:0px !important; left:-4px; margin:0px 0px 0px 15px !important; margin-right:-4px; height:15px}"+
			"div.DefaultStickyWin div.closeButtons{text-align: center; background:url({%baseHref%}body.png) top right repeat-y; padding: 4px 30px 8px 0px; margin-left:5px; position:relative; right:-20px}"+
			"div.DefaultStickyWin a.button:hover{background:url({%baseHref%}big_button_over.gif) repeat-x}"+
			"div.DefaultStickyWin a.button {background:url({%baseHref%}big_button.gif) repeat-x; margin: 2px 8px 2px 8px; padding: 2px 12px; cursor:pointer; border: 1px solid #999 !important; text-decoration:none; color: #000 !important;}"+
			"div.DefaultStickyWin div.closeButton{width:13px; height:13px; background:url({%baseHref%}closebtn.gif) no-repeat; position: absolute; right: 0px; margin:10px 15px 0px 0px !important; cursor:pointer;top:0px}"+
			"div.DefaultStickyWin div.dragHandle {	width: 11px;	height: 25px;	position: relative;	top: 5px;	left: -3px;	cursor: move;	background: url({%baseHref%}drag_corner.gif); float: left;}",
		cornerHandle: false,
		cssClass: '',
		baseHref: 'http://www.cnet.com/html/rb/assets/global/stickyWinHTML/',
		buttons: [],
		cssId: 'defaultStickyWinStyle',
		cssClassName: 'DefaultStickyWin',
		closeButton: true
/*	These options are deprecated:
		closeTxt: false,
		onClose: $empty,
		confirmTxt: false,
		onConfirm: $empty	*/
	},
	initialize: function() {
		var args = this.getArgs(arguments);
		this.setOptions(args.options);
		this.legacy();
		var css = this.options.css.substitute({baseHref: this.options.baseHref}, /\\?\{%([^}]+)%\}/g);
		if (Browser.Engine.trident4) css = css.replace(/png/g, 'gif');
		this.createStyle(css, this.options.cssId);
		this.build();
		if (args.caption || args.body) this.setContent(args.caption, args.body);
	},
	getArgs: function(){
		return StickyWin.UI.getArgs.apply(this, arguments);
	},
	legacy: function(){
		var opt = this.options; //saving bytes
		//legacy support
		if (opt.confirmTxt) opt.buttons.push({text: opt.confirmTxt, onClick: opt.onConfirm || $empty});
		if (opt.closeTxt) opt.buttons.push({text: opt.closeTxt, onClick: opt.onClose || $empty});
	},
	build: function(){
		var opt = this.options;

		var container = new Element('div', {
			'class': opt.cssClassName
		});
		if (opt.width) container.setStyle('width', opt.width);
		this.element = container;
		this.element.store('StickyWinUI', this);
		if (opt.cssClass) container.addClass(opt.cssClass);


		var bodyDiv = new Element('div').addClass('body');
		this.body = bodyDiv;

		var top_ur = new Element('div').addClass('top_ur');
		this.top_ur = top_ur;
		this.top = new Element('div').addClass('top').adopt(
				new Element('div').addClass('top_ul')
			).adopt(top_ur);
		container.adopt(this.top);

		if (opt.cornerHandle) new Element('div').addClass('dragHandle').inject(top_ur, 'top');

		//body
		container.adopt(new Element('div').addClass('middle').adopt(bodyDiv));
		//close buttons
		if (opt.buttons.length > 0){
			var closeButtons = new Element('div').addClass('closeButtons');
			opt.buttons.each(function(button){
				if (button.properties && button.properties.className){
					button.properties['class'] = button.properties.className;
					delete button.properties.className;
				}
				var properties = $merge({'class': 'closeSticky'}, button.properties);
				new Element('a').addEvent('click', button.onClick || $empty)
					.appendText(button.text).inject(closeButtons).set(properties).addClass('button');
			});
			container.adopt(new Element('div').addClass('closeBody').adopt(closeButtons));
		}
		//footer
		container.adopt(
			new Element('div').addClass('bottom').adopt(
					new Element('div').addClass('bottom_ll')
				).adopt(
					new Element('div').addClass('bottom_lr')
			)
		);
		if (this.options.closeButton) container.adopt(new Element('div').addClass('closeButton').addClass('closeSticky'));
		return this;
	},
	makeCaption: function(caption) {
		if (!caption) return this.destroyCaption();
		this.caption = caption;
		var opt = this.options;
		var h1Caption = new Element('h1').addClass('caption');
		if (opt.width) h1Caption.setStyle('width', (opt.width-(opt.cornerHandle?55:40)-(opt.closeButton?10:0)));
		if (document.id(this.caption)) h1Caption.adopt(this.caption);
		else h1Caption.set('html', this.caption);
		this.top_ur.adopt(h1Caption);
		this.h1 = h1Caption;
		if (!this.options.cornerHandle) this.h1.addClass('dragHandle');
		return this;
	},
	destroyCaption: function(){
		if (this.h1) {
			this.h1.destroy();
			this.h1 = null;
		}
		return this;
	},
	setContent: function(){
		var args = this.getArgs.apply(this, arguments);
		var caption = args.caption;
		var body = args.body;
		if (this.h1) this.destroyCaption();
		this.makeCaption(caption);
		if (document.id(body)) this.body.empty().adopt(body);
		else this.body.set('html', body);
		return this;
	}
});
StickyWin.UI.getArgs = function(){
	var input = $type(arguments[0]) == "arguments"?arguments[0]:arguments;
	var cap = input[0], bod = input[1];
	var args = Array.link(input, {options: Object.type});
	if (input.length == 3 || (!args.options && input.length == 2)) {
		args.caption = cap;
		args.body = bod;
	} else if (($type(bod) == 'object' || !bod) && cap && $type(cap) != 'object'){
		args.body = cap;
	}
	return args;
};

StickyWin.ui = function(caption, body, options){
	return document.id(new StickyWin.UI(caption, body, options))
};


/*
Script: StickyWin.UI.Pointy.js

Creates an html holder for in-page popups using a default style - this one including a pointer in the specified direction.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
StickyWin.UI.Pointy = new Class({
	Extends: StickyWin.UI,
	options: {
		theme: 'dark',
		themes: {
			dark: {
				bgColor: '#333',
				fgColor: '#ddd',
				imgset: 'dark'
			},
			light: {
				bgColor: '#ccc',
				fgColor: '#333',
				imgset: 'light'
			}
		},
		css: "div.DefaultPointyTip {vertical-align: auto; position: relative;}"+
		"div.DefaultPointyTip * {text-align:left !important}"+
		"div.DefaultPointyTip .pointyWrapper div.body{background: {%bgColor%}; color: {%fgColor%}; left: 0px; right: 0px !important;padding:  0px 10px !important;margin-left: 0px !important;font-family: verdana;font-size: 11px;line-height: 13px;position: relative;}"+
		"div.DefaultPointyTip .pointyWrapper div.top {position: relative;height: 25px; overflow: visible;}"+
		"div.DefaultPointyTip .pointyWrapper div.top_ul{background: url({%baseHref%}{%imgset%}_back.png) top left no-repeat;width: 8px;height: 25px; position: absolute; left: 0px;}"+
		"div.DefaultPointyTip .pointyWrapper div.top_ur{background: url({%baseHref%}{%imgset%}_back.png) top right !important;margin: 0 0 0 8px !important;height: 25px;position: relative;left: 0px !important;padding: 0;}"+
		"div.DefaultPointyTip .pointyWrapper h1.caption{color: {%fgColor%};left: 0px !important;top: 4px !important;clear: none !important;overflow: hidden;font-weight: 700;font-size: 12px !important;position: relative;float: left;height: 22px !important;margin: 0 !important;padding: 0 !important;}"+
		"div.DefaultPointyTip .pointyWrapper div.middle, div.DefaultPointyTip .pointyWrapper div.closeBody{background:  {%bgColor%};margin: 0 0px 0 0 !important;position: relative;top: 0 !important;}"+
		"div.DefaultPointyTip .pointyWrapper div.bottom {clear: both; width: 100% !important; background: none; height: 6px} "+
		"div.DefaultPointyTip .pointyWrapper div.bottom_ll{font-size:1; background: url({%baseHref%}{%imgset%}_back.png) bottom left no-repeat;width: 6px;height: 6px;position: absolute; left: 0px;}"+
		"div.DefaultPointyTip .pointyWrapper div.bottom_lr{font-size:1; background: url({%baseHref%}{%imgset%}_back.png) bottom right;height: 6px;margin: 0 0 0 6px !important;position: relative;left: 0 !important;}"+
		"div.DefaultPointyTip .pointyWrapper div.noCaption{ height: 6px; overflow: hidden}"+
		"div.DefaultPointyTip .pointyWrapper div.closeButton{width:13px; height:13px; background:url({%baseHref%}{%imgset%}_x.png) no-repeat; position: absolute; right: 0px; margin:0px !important; cursor:pointer; z-index: 1; top: 4px;}"+
		"div.DefaultPointyTip .pointyWrapper div.pointyDivot {background: url({%divot%}) no-repeat;}",
		baseHref: 'http://github.com/anutron/clientcide/raw/master/Assets/PointyTip/',
		divot: '{%baseHref%}{%imgset%}_divot.png',
		divotSize: 22,
		direction: 12,
		cssId: 'defaultPointyTipStyle',
		cssClassName: 'DefaultPointyTip'
	},
	initialize: function() {
		var args = this.getArgs(arguments);
		this.setOptions(args.options);
		$extend(this.options, this.options.themes[this.options.theme]);
		this.options.divot = this.options.divot.substitute(this.options, /\\?\{%([^}]+)%\}/g);
		if (Browser.Engine.trident4) this.options.divot = this.options.divot.replace(/png/g, 'gif');
		this.options.css = this.options.css.substitute(this.options, /\\?\{%([^}]+)%\}/g);
		if (args.options && args.options.theme) {
			while (!this.id) {
				var id = $random(0, 999999999);
				if (!StickyWin.UI.Pointy[id]) {
					StickyWin.UI.Pointy[id] = this;
					this.id = id;
				}
			}
			this.options.css = this.options.css.replace(/div\.DefaultPointyTip/g, "div#pointy_"+this.id);
			this.options.cssId = "pointyTipStyle_" + this.id;
		}
		if ($type(this.options.direction) == 'string') {
			var map = {
				left: 9,
				right: 3,
				up: 12,
				down: 6
			};
			this.options.direction = map[this.options.direction];
		}

		this.parent(args.caption, args.body, this.options);
		if (this.id) document.id(this).set('id', "pointy_"+this.id);
	},
	build: function(){
		this.parent();
		var opt = this.options;
		this.pointyWrapper = new Element('div', {
			'class': 'pointyWrapper'
		}).inject(document.id(this));
		document.id(this).getChildren().each(function(el){
			if (el != this.pointyWrapper) this.pointyWrapper.grab(el);
		}, this);

		var w = opt.divotSize;
		var h = w;
		var left = (opt.width - opt.divotSize)/2;
		var orient = function(){
			switch(opt.direction) {
				case 12: case 1: case 11:
					return {
						height: h/2
					};
				case 5: case 6: case 7:
					return {
						height: h/2,
						backgroundPosition: '0 -'+h/2+'px'
					};
				case 8: case 9: case 10:
					return {
						width: w/2
					};
				case 2: case 3: case 4:
					return {
						width: w/2,
						backgroundPosition: '100%'
					};
			};
		};
		this.pointer = new Element('div', {
			styles: $extend({
				width: w,
				height: h,
				overflow: 'hidden'
			}, orient()),
			'class': 'pointyDivot pointy_'+opt.direction
		}).inject(this.pointyWrapper);
	},
	expose: function(){
		if (document.id(this).getStyle('display') != 'none' && document.id(document.body).hasChild(document.id(this))) return $empty;
		document.id(this).setStyles({
			visibility: 'hidden',
			position: 'absolute'
		});
		var dispose;
		if (!document.body.hasChild(document.id(this))) {
			document.id(this).inject(document.body);
			dispose = true;
		}
		return (function(){
			if (dispose) document.id(this).dispose();
			document.id(this).setStyles({
				visibility: 'visible',
				position: 'relative'
			});
		}).bind(this);
	},
	positionPointer: function(options){
		if (!this.pointer) return;
		var opt = options || this.options;
		var pos;
		var d = opt.direction;
		switch (d){
			case 12: case 1: case 11:
				pos = {
					edge: {x: 'center', y: 'bottom'},
					position: {
						x: d==12?'center':d==1?'right':'left',
						y: 'top'
					},
					offset: {
						x: (d==12?0:d==1?-1:1)*opt.divotSize,
						y: 1
					}
				};
				break;
			case 2: case 3: case 4:
				pos = {
					edge: {x: 'left', y: 'center'},
					position: {
						x: 'right',
						y: d==3?'center':d==2?'top':'bottom'
					},
					offset: {
						x: -1,
						y: (d==3?0:d==4?-1:1)*opt.divotSize
					}
				};
				break;
			case 5: case 6: case 7:
				pos = {
					edge: {x: 'center', y: 'top'},
					position: {
						x: d==6?'center':d==5?'right':'left',
						y: 'bottom'
					},
					offset: {
						x: (d==6?0:d==5?-1:1)*opt.divotSize,
						y: -1
					}
				};
				break;
			case 8: case 9: case 10:
				pos = {
					edge: {x: 'right', y: 'center'},
					position: {
						x: 'left',
						y: d==9?'center':d==10?'top':'bottom'
					},
					offset: {
						x: 1,
						y: (d==9?0:d==8?-1:1)*opt.divotSize
					}
				};
				break;
		};
		var putItBack = this.expose();
		this.pointer.position($extend({
			relativeTo: this.pointyWrapper
		}, pos, options));
		putItBack();
	},
	setContent: function(a1, a2){
		this.parent(a1, a2);
		this.top[this.h1?'removeClass':'addClass']('noCaption');
		if (Browser.Engine.trident4) document.id(this).getElements('.bottom_ll, .bottom_lr').setStyle('font-size', 1); //IE6 bullshit
		if (this.options.closeButton) this.body.setStyle('margin-right', 6);
		this.positionPointer();
		return this;
	},
	makeCaption: function(caption){
		this.parent(caption);
		if (this.options.width && this.h1) this.h1.setStyle('width', (this.options.width-(this.options.closeButton?25:15)));
	}
});

StickyWin.UI.pointy = function(caption, body, options){
	return document.id(new StickyWin.UI.Pointy(caption, body, options));
};
StickyWin.ui.pointy = StickyWin.UI.pointy;

/*
Script: StickyWin.PointyTip.js
	Positions a pointy tip relative to the element you specify.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
StickyWin.PointyTip = new Class({
	Extends: StickyWin,
	options: {
		point: "left",
		pointyOptions: {}
	},
	initialize: function(){
		var args = this.getArgs(arguments);
		this.setOptions(args.options);
		var popts = this.options.pointyOptions;
		var d = popts.direction;
		if (!d) {
			var map = {
				left: 9,
				right: 3,
				up: 12,
				down: 6
			};
			d = map[this.options.point];
			if (!d) d = this.options.point;
			popts.direction = d;
		}
		if (!popts.width) popts.width = this.options.width;
		this.pointy = new StickyWin.UI.Pointy(args.caption, args.body, popts);
		this.options.content = null;
		this.setOptions(args.options, this.getPositionSettings());
		this.parent(this.options);
		this.win.empty().adopt(document.id(this.pointy));
		this.attachHandlers(this.win);
		if (this.options.showNow) this.position();
	},
	getArgs: function(){
		return StickyWin.UI.getArgs.apply(this, arguments);
	},
	getPositionSettings: function(){
		var s = this.pointy.options.divotSize;
		var d = this.options.point;
		switch(d) {
			case "left": case 8: case 9: case 10:
				return {
					edge: {
						x: 'left',
						y: d==10?'top':d==8?'bottom':'center'
					},
					position: {x: 'right', y: 'center'},
					offset: {
						x: s
					}
				};
			case "right": case 2:  case 3: case 4:
				return {
					edge: {
						x: 'right',
						y: d==2?'top':d==4?'bottom':'center'
					},
					position: {x: 'left', y: 'center'},
					offset: {x: -s}
				};
			case "up": case 11: case 12: case 1:
				return {
					edge: {
						x: d==11?'left':d==1?'right':'center',
						y: 'top'
					},
					position: {	x: 'center', y: 'bottom' },
					offset: {
						y: s,
						x: d==11?-s:d==1?s:0
					}
				};
			case "down": case 5: case 6: case 7:
				return {
					edge: {
						x: d==7?'left':d==5?'right':'center',
						y: 'bottom'
					},
					position: {x: 'center', y: 'top'},
					offset: {
						y: -s,
						x: d==7?-s:d==5?s:0
					}
				};
		};
	},
	setContent: function() {
		var args = this.getArgs(arguments);
		this.pointy.setContent(args.caption, args.body);
		[this.pointy.h1, this.pointy.body].each(this.attachHandlers, this);
		if (this.visible) this.position();
		return this;
	},
	showWin: function(){
		this.parent();
		this.pointy.positionPointer();
	},
	position: function(options){
		this.parent(options);
		this.pointy.positionPointer();
	},
	attachHandlers: function(content) {
		if (!content) return;
		content.getElements('.'+this.options.closeClassName).addEvent('click', function(){ this.hide(); }.bind(this));
		content.getElements('.'+this.options.pinClassName).addEvent('click', function(){ this.togglepin(); }.bind(this));
	}
});

/*
Script: Waiter.js

Adds a semi-transparent overlay over a dom element with a spinnin ajax icon.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
var Waiter = new Class({
	Implements: [Options, Events, Chain, Class.Occlude],
	options: {
		baseHref: 'http://www.cnet.com/html/rb/assets/global/waiter/',
		containerProps: {
			styles: {
				position: 'absolute',
				'text-align': 'center'
			},
			'class':'waiterContainer'
		},
		containerPosition: {},
		msg: false,
		msgProps: {
			styles: {
				'text-align': 'center',
				fontWeight: 'bold'
			},
			'class':'waiterMsg'
		},
		img: {
			src: 'waiter.gif',
			styles: {
				width: 24,
				height: 24
			},
			'class':'waiterImg'
		},
		layer:{
			styles: {
				width: 0,
				height: 0,
				position: 'absolute',
				zIndex: 999,
				display: 'none',
				opacity: 0.9,
				background: '#fff'
			},
			'class': 'waitingDiv'
		},
		useIframeShim: true,
		fxOptions: {},
		injectWhere: null
//	iframeShimOptions: {},
//	onShow: $empty
//	onHide: $empty
	},
	property: 'Waiter',
	initialize: function(target, options){
		this.element = document.id(target)||document.id(document.body);
		if (this.occlude()) return this.occluded;
		this.setOptions(options);
		this.build();
		this.place(target);
	},
	build: function(){
		this.waiterContainer = new Element('div', this.options.containerProps);
		if (this.options.msg) {
			this.msgContainer = new Element('div', this.options.msgProps);
			this.waiterContainer.adopt(this.msgContainer);
			if (!document.id(this.options.msg)) this.msg = new Element('p').appendText(this.options.msg);
			else this.msg = document.id(this.options.msg);
			this.msgContainer.adopt(this.msg);
		}
		if (this.options.img) this.waiterImg = document.id(this.options.img.id) || new Element('img', $merge(this.options.img, {
			src: this.options.baseHref + this.options.img.src
		})).inject(this.waiterContainer);
		this.waiterOverlay = document.id(this.options.layer.id) || new Element('div').adopt(this.waiterContainer);
		this.waiterOverlay.set(this.options.layer);
		try {
			if (this.options.useIframeShim) this.shim = new IframeShim(this.waiterOverlay, this.options.iframeShimOptions);
		} catch(e) {
			dbug.log("Waiter attempting to use IframeShim but failed; did you include IframeShim? Error: ", e);
			this.options.useIframeShim = false;
		}
		this.waiterFx = this.waiterFx || new Fx.Elements($$(this.waiterContainer, this.waiterOverlay), this.options.fxOptions);
	},
	place: function(target, where){
		var where = where || this.options.injectWhere || target == document.body ? 'inside' : 'after';
		this.waiterOverlay.inject(target, where);
	},
	toggle: function(element, show) {
		//the element or the default
		element = document.id(element) || document.id(this.active) || document.id(this.element);
		this.place(element);
		if (!document.id(element)) return this;
		if (this.active && element != this.active) return this.stop(this.start.bind(this, element));
		//if it's not active or show is explicit
		//or show is not explicitly set to false
		//start the effect
		if ((!this.active || show) && show !== false) this.start(element);
		//else if it's active and show isn't explicitly set to true
		//stop the effect
		else if (this.active && !show) this.stop();
		return this;
	},
	reset: function(){
		this.waiterFx.cancel().set({
			0: { opacity:[0]},
			1: { opacity:[0]}
		});
	},
	start: function(element){
		this.reset();
		element = document.id(element) || document.id(this.element);
		this.place(element);
		var start = function() {
			var dim = element.getComputedSize();
			this.active = element;
			this.waiterOverlay.setStyles({
				width: this.options.layer.width||dim.totalWidth,
				height: this.options.layer.height||dim.totalHeight,
				display: 'block'
			}).position({
				relativeTo: element,
				position: 'upperLeft'
			});
			this.waiterContainer.position($merge({
				relativeTo: this.waiterOverlay
			}, this.options.containerPosition));
			if (this.options.useIframeShim) this.shim.show();
			this.waiterFx.start({
				0: { opacity:[1] },
				1: { opacity:[this.options.layer.styles.opacity]}
			}).chain(function(){
				if (this.active == element) this.fireEvent('onShow', element);
				this.callChain();
			}.bind(this));
		}.bind(this);

		if (this.active && this.active != element) this.stop(start);
		else start();

		return this;
	},
	stop: function(callback){
		if (!this.active) {
			if ($type(callback) == "function") callback.attempt();
			return this;
		}
		this.waiterFx.cancel();
		this.waiterFx.clearChain();
		//fade the waiter out
		this.waiterFx.start({
			0: { opacity:[0]},
			1: { opacity:[0]}
		}).chain(function(){
			this.active = null;
			this.waiterOverlay.hide();
			if (this.options.useIframeShim) this.shim.hide();
			this.fireEvent('onHide', this.active);
			this.callChain();
			this.clearChain();
			if ($type(callback) == "function") callback.attempt();
		}.bind(this));
		return this;
	}
});

if (window.Request) {
	Request = Class.refactor(Request, {
		options: {
			useWaiter: false,
			waiterOptions: {},
			waiterTarget: false
		},
		initialize: function(options){
			this._send = this.send;
			this.send = function(options){
				if (this.waiter) this.waiter.start().chain(this._send.bind(this, options));
				else this._send(options);
				return this;
			};
			this.previous(options);
			if (this.options.useWaiter && (document.id(this.options.update) || document.id(this.options.waiterTarget))) {
				this.waiter = new Waiter(this.options.waiterTarget || this.options.update, this.options.waiterOptions);
				['onComplete', 'onException', 'onCancel'].each(function(event){
					this.addEvent(event, this.waiter.stop.bind(this.waiter));
				}, this);
			}
		}
	});
}

Element.Properties.waiter = {

	set: function(options){
		var waiter = this.retrieve('waiter');
		return this.eliminate('waiter').store('waiter:options', options);
	},

	get: function(options){
		if (options || !this.retrieve('waiter')){
			if (options || !this.retrieve('waiter:options')) this.set('waiter', options);
			this.store('waiter', new Waiter(this, this.retrieve('waiter:options')));
		}
		return this.retrieve('waiter');
	}

};

Element.implement({

	wait: function(options){
		this.get('waiter', options).start();
		return this;
	},

	release: function(){
		var opt = Array.link(arguments, {options: Object.type, callback: Function.type});
		this.get('waiter', opt.options).stop(opt.callback);
		return this;
	}

});

/*
Script: MooScroller.js

Recreates the standard scrollbar behavior for elements with overflow but using DOM elements so that the scroll bar elements are completely styleable by css.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
var MooScroller = new Class({
	Implements: [Options, Events],
	options: {
		maxThumbSize: 10,
		mode: 'vertical',
		width: 0, //required only for mode: horizontal
		scrollSteps: 10,
		wheel: true,
		scrollLinks: {
			forward: 'scrollForward',
			back: 'scrollBack'
		},
		hideWhenNoOverflow: true
//		onScroll: $empty,
//		onPage: $empty
	},

	initialize: function(content, knob, options){
		this.setOptions(options);
		this.horz = (this.options.mode == "horizontal");

		this.content = document.id(content).setStyle('overflow', 'hidden');
		this.knob = document.id(knob);
		this.track = this.knob.getParent();
		this.setPositions();

		if (this.horz && this.options.width) {
			this.wrapper = new Element('div');
			this.content.getChildren().each(function(child){
				this.wrapper.adopt(child);
			}, this);
			this.wrapper.inject(this.content).setStyle('width', this.options.width);
		}


		this.bound = {
			'start': this.start.bind(this),
			'end': this.end.bind(this),
			'drag': this.drag.bind(this),
			'wheel': this.wheel.bind(this),
			'page': this.page.bind(this)
		};

		this.position = {};
		this.mouse = {};
		this.update();
		this.attach();

		var clearScroll = function (){
			$clear(this.scrolling);
		}.bind(this);
		['forward','back'].each(function(direction) {
			var lnk = document.id(this.options.scrollLinks[direction]);
			if (lnk) {
				lnk.addEvents({
					mousedown: function() {
						this.scrolling = this[direction].periodical(50, this);
					}.bind(this),
					mouseup: clearScroll.bind(this),
					click: clearScroll.bind(this)
				});
			}
		}, this);
		this.knob.addEvent('click', clearScroll.bind(this));
		window.addEvent('domready', function(){
			try {
				document.id(document.body).addEvent('mouseup', clearScroll.bind(this));
			}catch(e){}
		}.bind(this));
	},
	setPositions: function(){
		[this.track, this.knob].each(function(el){
			if (el.getStyle('position') == 'static') el.setStyle('position','relative');
		});

	},
	toElement: function(){
		return this.content;
	},
	update: function(){
		var plain = this.horz?'Width':'Height';
		this.contentSize = this.content['offset'+plain];
		this.contentScrollSize = this.content['scroll'+plain];
		this.trackSize = this.track['offset'+plain];

		this.contentRatio = this.contentSize / this.contentScrollSize;

		this.knobSize = (this.trackSize * this.contentRatio).limit(this.options.maxThumbSize, this.trackSize);

		if (this.options.hideWhenNoOverflow) {
			this.hidden = this.knobSize == this.trackSize;
			this.track.setStyle('opacity', this.hidden?0:1);
		}

		this.scrollRatio = this.contentScrollSize / this.trackSize;
		this.knob.setStyle(plain.toLowerCase(), this.knobSize);

		this.updateThumbFromContentScroll();
		this.updateContentFromThumbPosition();
	},

	updateContentFromThumbPosition: function(){
		this.content[this.horz?'scrollLeft':'scrollTop'] = this.position.now * this.scrollRatio;
	},

	updateThumbFromContentScroll: function(){
		this.position.now = (this.content[this.horz?'scrollLeft':'scrollTop'] / this.scrollRatio).limit(0, (this.trackSize - this.knobSize));
		this.knob.setStyle(this.horz?'left':'top', this.position.now);
	},

	attach: function(){
		this.knob.addEvent('mousedown', this.bound.start);
		if (this.options.scrollSteps) this.content.addEvent('mousewheel', this.bound.wheel);
		this.track.addEvent('mouseup', this.bound.page);
	},

	wheel: function(event){
		if (this.hidden) return;
		this.scroll(-(event.wheel * this.options.scrollSteps));
		this.updateThumbFromContentScroll();
		event.stop();
	},

	scroll: function(steps){
		steps = steps||this.options.scrollSteps;
		this.content[this.horz?'scrollLeft':'scrollTop'] += steps;
		this.updateThumbFromContentScroll();
		this.fireEvent('onScroll', steps);
	},
	forward: function(steps){
		this.scroll(steps);
	},
	back: function(steps){
		steps = steps||this.options.scrollSteps;
		this.scroll(-steps);
	},

	page: function(event){
		var axis = this.horz?'x':'y';
		var forward = (event.page[axis] > this.knob.getPosition()[axis]);
		this.scroll((forward?1:-1)*this.content['offset'+(this.horz?'Width':'Height')]);
		this.updateThumbFromContentScroll();
		this.fireEvent('onPage', forward);
		event.stop();
	},


	start: function(event){
		var axis = this.horz?'x':'y';
		this.mouse.start = event.page[axis];
		this.position.start = this.knob.getStyle(this.horz?'left':'top').toInt();
		document.addEvent('mousemove', this.bound.drag);
		document.addEvent('mouseup', this.bound.end);
		this.knob.addEvent('mouseup', this.bound.end);
		event.stop();
	},

	end: function(event){
		document.removeEvent('mousemove', this.bound.drag);
		document.removeEvent('mouseup', this.bound.end);
		this.knob.removeEvent('mouseup', this.bound.end);
		event.stop();
	},

	drag: function(event){
		var axis = this.horz?'x':'y';
		this.mouse.now = event.page[axis];
		this.position.now = (this.position.start + (this.mouse.now - this.mouse.start)).limit(0, (this.trackSize - this.knobSize));
		this.updateContentFromThumbPosition();
		this.updateThumbFromContentScroll();
		event.stop();
	}

});


/*
Script: DatePicker.js
	Allows the user to enter a date in many popuplar date formats or choose from a calendar.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
var DatePicker;
(function(){
	var DPglobal = function() {
		if (DatePicker.pickers) return;
		DatePicker.pickers = [];
		DatePicker.hideAll = function(){
			DatePicker.pickers.each(function(picker){
				picker.hide();
			});
		};
	};
 	DatePicker = new Class({
		Implements: [Options, Events, StyleWriter],
		options: {
			format: "%x",
			defaultCss: 'div.calendarHolder {height:177px;position: absolute;top: -21px !important;top: -27px;left: -3px;width: 100%;}'+
				'div.calendarHolder table.cal {margin-right: 15px !important;margin-right: 8px;width: 205px;}'+
				'div.calendarHolder td {text-align:center;}'+
				'div.calendarHolder tr.dayRow td {padding: 2px;width: 22px;cursor: pointer;}'+
				'div.calendarHolder table.datePicker * {font-size:11px;line-height:16px;}'+
				'div.calendarHolder table.datePicker {margin: 0;padding:0 5px;float: left;}'+
				'div.calendarHolder table.datePicker table.cal td {cursor:pointer;}'+
				'div.calendarHolder tr.dateNav {font-weight: bold;height:22px;margin-top:8px;}'+
				'div.calendarHolder tr.dayNames {height: 23px;}'+
				'div.calendarHolder tr.dayNames td {color:#666;font-weight:700;border-bottom:1px solid #ddd;}'+
				'div.calendarHolder table.datePicker tr.dayRow td:hover {background:#ccc;}'+
				'div.calendarHolder table.datePicker tr.dayRow td {margin: 1px;}'+
				'div.calendarHolder td.today {color:#bb0904;}'+
				'div.calendarHolder td.otherMonthDate {border:1px solid #fff;color:#ccc;background:#f3f3f3 !important;margin: 0px !important;}'+
				'div.calendarHolder td.selectedDate {border: 1px solid #20397b;background:#dcddef;margin: 0px !important;}'+
				'div.calendarHolder a.leftScroll, div.calendarHolder a.rightScroll {cursor: pointer; color: #000}'+
				'div.datePickerSW div.body {height: 160px !important;height: 149px;}'+
				'div.datePickerSW .clearfix:after {content: ".";display: block;height: 0;clear: both;visibility: hidden;}'+
				'div.datePickerSW .clearfix {display: inline-table;}'+
				'* html div.datePickerSW .clearfix {height: 1%;}'+
				'div.datePickerSW .clearfix {display: block;}',
			calendarId: false,
			stickyWinOptions: {
				draggable: true,
				dragOptions: {},
				position: "bottomLeft",
				offset: {x:10, y:10},
				fadeDuration: 400
			},
			stickyWinUiOptions: {},
			updateOnBlur: true,
			additionalShowLinks: [],
			showOnInputFocus: true,
			useDefaultCss: true,
			hideCalendarOnPick: true,
			weekStartOffset: 0,
			showMoreThanOne: true,
			stickyWinToUse: StickyWin
/*		onPick: $empty,
			onShow: $empty,
			onHide: $empty */
		},

		initialize: function(input, options){
			DPglobal(); //make sure controller is setup
			if (document.id(input)) this.inputs = $H({start: document.id(input)});
	    	this.today = new Date();
			this.setOptions(options);
			if (this.options.useDefaultCss) this.createStyle(this.options.defaultCss, 'datePickerStyle');
			if (!this.inputs) return;
			this.whens = this.whens || ['start'];
			if (!this.calendarId) this.calendarId = "popupCalendar" + new Date().getTime();
			this.setUpObservers();
			this.getCalendar();
			this.formValidatorInterface();
			DatePicker.pickers.push(this);
		},
		formValidatorInterface: function(){
			this.inputs.each(function(input){
				var props;
				if (input.get('validatorProps')) props = input.get('validatorProps');
				if (props && props.dateFormat) {
					dbug.log('using date format specified in validatorProps property of element to play nice with FormValidator');
					this.setOptions({ format: props.dateFormat });
				} else {
					if (!props) props = {};
					props.dateFormat = this.options.format;
					input.set('validatorProps', props);
				}
			}, this);
		},
		calWidth: 280,
		inputDates: {},
		selectedDates: {},
		setUpObservers: function(){
			this.inputs.each(function(input) {
				if (this.options.showOnInputFocus) input.addEvent('focus', this.show.bind(this));
				input.addEvent('blur', function(e){
					if (e) {
						this.selectedDates = this.getDates(null, true);
						this.fillCalendar(this.selectedDates.start);
						if (this.options.updateOnBlur) this.updateInput();
					}
				}.bind(this));
			}, this);
			this.options.additionalShowLinks.each(function(lnk){
				document.id(lnk).addEvent('click', this.show.bind(this))
			}, this);
		},
		getDates: function(dates, getFromInputs){
			var d = {};
			if (!getFromInputs) dates = dates||this.selectedDates;
			var getFromInput = function(when){
				var input = this.inputs.get(when);
				if (input) d[when] = this.validDate(input.get('value'));
			}.bind(this);
			this.whens.each(function(when) {
				switch($type(dates)){
					case "object":
						if (dates) d[when] = dates[when]?dates[when]:dates;
						if (!d[when] && !d[when].format) getFromInput(when);
						break;
					default:
						getFromInput(when);
						break;
				}
				if (!d[when]) d[when] = this.selectedDates[when]||new Date();
			}, this);
			return d;
		},
		updateInput: function(){
			var d = {};
			$each(this.getDates(), function(value, key){
				var input = this.inputs.get(key);
				if (!input) return;
				input.set('value', (value)?this.formatDate(value)||"":"");
			}, this);
			return this;
		},
		validDate: function(val) {
			if (!$chk(val)) return null;
			var date = Date.parse(val.trim());
			return isNaN(date)?null:date;
		},
		formatDate: function (date) {
			return date.format(this.options.format);
		},
		getCalendar: function() {
			if (!this.calendar) {
				var cal = new Element("table", {
					'id': this.options.calendarId || '',
					'border':'0',
					'cellpadding':'0',
					'cellspacing':'0',
					'class':'datePicker'
				});
				var tbody = new Element('tbody').inject(cal);
				var rows = [];
				(8).times(function(i){
					var row = new Element('tr').inject(tbody);
					(7).times(function(i){
						var td = new Element('td').inject(row).set('html', '&nbsp;');
					});
				});
				var rows = tbody.getElements('tr');
				rows[0].addClass('dateNav');
				rows[1].addClass('dayNames');
				(6).times(function(i){
					rows[i+2].addClass('dayRow');
				});
				this.rows = rows;
				var dayCells = rows[1].getElements('td');
				dayCells.each(function(cell, i){
					cell.firstChild.data = Date.getMsg('days')[(i + this.options.weekStartOffset) % 7].substring(0,3);
				}, this);
				[6,5,4,3].each(function(i){ rows[0].getElements('td')[i].dispose() });
				this.prevLnk = rows[0].getElement('td').setStyle('text-align', 'right');
				this.prevLnk.adopt(new Element('a').set('html', "&lt;").addClass('rightScroll'));
				this.month = rows[0].getElements('td')[1];
				this.month.set('colspan', 5);
				this.nextLnk = rows[0].getElements('td')[2].setStyle('text-align', 'left');
				this.nextLnk.adopt(new Element('a').set('html', '&gt;').addClass('leftScroll'));
				cal.addEvent('click', this.clickCalendar.bind(this));
				this.calendar = cal;
				this.container = new Element('div').adopt(cal).addClass('calendarHolder');
				this.content = StickyWin.ui('', this.container, $merge(this.options.stickyWinUiOptions, {
					cornerHandle: this.options.stickyWinOptions.draggable,
					width: this.calWidth
				}));
				var opts = $merge(this.options.stickyWinOptions, {
					content: this.content,
					className: 'datePickerSW',
					allowMultipleByClass: true,
					showNow: false,
					relativeTo: this.inputs.get('start')
				});
				this.stickyWin = new this.options.stickyWinToUse(opts);
				this.stickyWin.addEvent('onDisplay', this.positionClose.bind(this));
				this.container.setStyle('z-index', this.stickyWin.win.getStyle('z-index').toInt()+1);
			}
			return this.calendar;
		},
		positionClose: function(){
			if (this.closePositioned) return;
			var closer = this.content.getElement('div.closeButton');
			if (closer) {
				closer.inject(this.container, 'after').setStyle('z-index', this.stickyWin.win.getStyle('z-index').toInt()+2);
				(function(){
					this.content.setStyle('width', this.calendar.getSize().x + (this.options.time ? 240 : 40));
					closer.position({relativeTo: this.stickyWin.win.getElement('.top'), position: 'upperRight', edge: 'upperRight'});
				}).delay(3, this);
			}
			this.closePositioned = true;
		},
		hide: function(){
			this.stickyWin.hide();
			this.fireEvent('onHide');
			return this;
		},
		hideOthers: function(){
			DatePicker.pickers.each(function(picker){
				if (picker != this) picker.hide();
			});
			return this;
		},
		show: function(){
			this.selectedDates = {};
			var dates = this.getDates(null, true);
			this.whens.each(function(when){
				this.inputDates[when] = dates[when]?dates[when].clone():dates.start?dates.start.clone():this.today;
		    this.selectedDates[when] = !this.inputDates[when] || isNaN(this.inputDates[when])
						? this.today
						: this.inputDates[when].clone();
				this.getCalendar(when);
			}, this);
			this.fillCalendar(this.selectedDates.start);
			if (!this.options.showMoreThanOne) this.hideOthers();
			this.stickyWin.show();
			this.fireEvent('onShow');
			return this;
		},
		handleScroll: function(e){
			if (e.target.hasClass('rightScroll')||e.target.hasClass('leftScroll')) {
				var newRef = e.target.hasClass('rightScroll')
					?this.rows[2].getElement('td').refDate - Date.units.day()
					:this.rows[7].getElements('td')[6].refDate + Date.units.day();
				this.fillCalendar(new Date(newRef));
				return true;
			}
			return false;
		},
		setSelectedDates: function(e, newDate){
			this.selectedDates.start = newDate;
		},
		onPick: function(){
			this.updateSelectors();
			this.inputs.each(function(input) {
				input.fireEvent("change");
				input.fireEvent("blur");
			});
			this.fireEvent('onPick');
			if (this.options.hideCalendarOnPick) this.hide();
		},
		clickCalendar: function(e) {
			if (this.handleScroll(e)) return;
			if (!e.target.firstChild || !e.target.firstChild.data) return;
			var val = e.target.firstChild.data;
			if (e.target.refDate) {
				var newDate = new Date(e.target.refDate);
				this.setSelectedDates(e, newDate);
				this.updateInput();
				this.onPick();
			}
		},
		fillCalendar: function (date) {
			if ($type(date) == "string") date = new Date(date);
			var startDate = (date)?new Date(date.getTime()):new Date();
			var hours = startDate.get('hours');
			startDate.setDate(1);
			startDate.setTime((startDate.getTime() - (Date.units.day() * (startDate.getDay()))) +
			                  (Date.units.day() * this.options.weekStartOffset));
			var monthyr = new Element('span', {
				html: Date.getMsg('months')[date.getMonth()] + " " + date.getFullYear()
			});
			document.id(this.rows[0].getElements('td')[1]).empty().adopt(monthyr);
			var atDate = startDate.clone();
			this.rows.each(function(row, i){
				if (i < 2) return;
				row.getElements('td').each(function(td){
					atDate.set('hours', hours);
					td.firstChild.data = atDate.getDate();
					td.refDate = atDate.getTime();
					atDate.setTime(atDate.getTime() + Date.units.day());
				}, this);
			}, this);
			this.updateSelectors();
		},
		updateSelectors: function(){
			var atDate;
			var month = new Date(this.rows[5].getElement('td').refDate).getMonth();
			this.rows.each(function(row, i){
				if (i < 2) return;
				row.getElements('td').each(function(td){
					td.className = '';
					atDate = new Date(td.refDate);
					if (atDate.format("%x") == this.today.format("%x")) td.addClass('today');
					this.whens.each(function(when){
						var date = this.selectedDates[when];
						if (date && atDate.format("%x") == date.format("%x")) {
							td.addClass('selectedDate');
							this.fireEvent('selectedDateMatch', [td, when]);
						}
					}, this);
					this.fireEvent('rowDateEvaluated', [atDate, td]);
					if (atDate.getMonth() != month) td.addClass('otherMonthDate');
					atDate.setTime(atDate.getTime() + Date.units.day());
				}, this);
			}, this);
		}
	});
})();

/*
Script: DatePicker.Extras.js
	Extends DatePicker to allow for range selection and time entry.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
DatePicker = Class.refactor(DatePicker, {
	options:{
		extraCSS: 'a.finish {position: relative;height: 13px !important;top: -31px !important;left: 85px !important;top: -34px;left: 77px;height: 16px;display:block;float: left;padding: 1px 12px 3px !important;}'+
			'div.calendarHolder div.time {border: #999 1px solid;width: 55px;position: relative;left: 3px;height: 17px;}'+
			'div.calendarHolder td.timeTD {width: 140px;} div.calendarHolder td.label{width:35px; text-align:right}'+
			'div.calendarHolder div.time select {font-size: 10px !important; font-size: 15px;padding: 0px;left:60px;position:absolute;top:-1px !important; width: auto !important;}'+
			'div.calendarHolder div.time input {width: 16px !important;width: 12px;padding: 2px;height: 13px;border: none !important;border: 1px solid #fff;}'+
			'div.calendarHolder div.timeSub {clear:both;position: relative;width: 65px;}'+
			'div.calendarHolder div.timeSub span {text-align: center;color: #999;margin: 5px;}'+
			'div.calendarHolder span.seperator {position:relative;top:-3px;}'+
			'div.calendarHolder table.stamp {position:relative;top: 35px !important;top: 50px;left: 0px;}'+
			'div.calendarHolder table.stamp a {left:123px;position:relative;top:9px;}'+
			'div.calendarHolder table.stamp td {border: none !important;}'+
			'div.calendarHolder td.selected_end {border-width: 1px 1px 1px 0px !important;margin: 0px 0px 0px 1px !important;}'+
			'div.calendarHolder td.selected_start {border-width: 1px 0px 1px 1px !important;margin: 0px 1px 0px 0px !important;}'+
			'div.calendarHolder table.datePicker td.range {background: #dcddef;border: solid #20397b;border-width: 1px 0px;margin: 0px 1px !important;}',
		range: false,
		time: false
	},
	initialize: function(inputs, options){
		if (options && (options.range || options.time)) {
			options = $merge({
				hideCalendarOnPick: false
			}, options);
		}
		if (options && options.time && !options.format) {
			options.format = "%x %X";
		}
		this.setOptions(options);
		this.whens = (this.options.range)?['start', 'end']:['start'];
		if ($type(inputs) == 'object') {
			this.inputs = $H(inputs);
		} else if ($type(document.id(inputs)) == "element") {
			this.inputs = $H({'start': document.id(inputs)});
		} else if ($type(inputs) == "array"){
			inputs = $$(inputs);
			this.inputs = $H({});
			this.whens.each(function(when, i){
				this.inputs.set(when, inputs[i]);
			}, this);
		}
		if (this.options.time) this.calWidth = 460;
		this.previous(inputs, this.options);
		this.createStyle(this.options.extraCSS, 'datePickerPlusStyle');
		this.addEvent('rowDateEvaluated', function(atDate, td){
			if (this.options.range && this.selectedDates.start.diff(atDate, 'minute') > 0
					&& this.selectedDates.end.diff(atDate, 'minute') < 0) td.addClass('range');
		}.bind(this));
		this.addEvent('selectedDateMatch', function(td, when){
			if (this.options.range) td.addClass('selected_'+when);
		}.bind(this));
	},
	updateInput: function(){
		this.previous();
		if (this.options.time) this.updateView();
	},
	updateView: function() {
		this.whens.each(function(when){
			var stamp = this.stamps[when];
			var date = this.getDates()[when];
			stamp.date.set('html', date?date.format("%b. %d, %Y"):"");
			if (stamp.hr) {
				stamp.hr.set('value', date?date.format("%I"):"");
				stamp.min.set('value', date?date.format("%M"):"");
			}
		}, this);
	},
	stamps: {},
	setupWideView: function(){
		var timeStampMap = {
			hr: '%I',
			'min': '%M'
		};
		timeSetMap = {
			hr: 'setHours',
			'min':'setMinutes'
		};
		var dates = this.getDates();

		if (!this.options.range && !this.options.time) return;
		this.stamps.table = new Element('table', {
			'class':'stamp'
		}).inject(this.container);
		this.stamps.tbody = new Element('tbody').inject(this.stamps.table);
		this.whens.each(function(when){
			this.stamps[when] = {};
			var s = this.stamps[when]; //saving some bytes
			s.container = new Element('tr').addClass(when+'_stamp').inject(this.stamps.tbody);
			s.label = new Element('td').inject(s.container).addClass('label');
			if (this.whens.length == 1) {
				s.label.set('html', 'date:');
			} else {
				s.label.set('html', when=="start"?"from:":"to:");
			}
			s.date = new Element('td').inject(s.container);
			if (this.options.time) {
				currentWhen = dates[when]||new Date();
				s.time = new Element('tr').inject(this.stamps.tbody);
				new Element('td').inject(s.time);
				s.timeTD = new Element('td').inject(s.time);
				s.timeInputs = new Element('div').addClass('time clearfix').inject(s.timeTD);
				s.timeSub = new Element('div', {'class':'timeSub'}).inject(s.timeTD);
				['hr','min'].each(function(t, i){
					s[t] = new Element('input', {
						type: 'text',
						'class': t,
						name: t,
						events: {
							focus: function(){
								this.select();
							},
							change: function(){
								this.selectedDates[when][timeSetMap[t]](s[t].get('value'));
								this.selectedDates[when].setAMPM(s.ampm.get('value'));
								this.updateInput();
							}.bind(this)
						}
					}).inject(s.timeInputs);
					s[t].set('value', currentWhen.format(timeStampMap[t]));
					if (i < 1) s.timeInputs.adopt(new Element('span', {'class':'seperator'}).set('html', ":"));
					new Element('span', {
						'class': t
					}).set('html', t).inject(s.timeSub);
				}, this);
				s.ampm = new Element('select').inject(s.timeInputs);
				['AM','PM'].each(function(ampm){
					var opt = new Element('option', {
						value: ampm,
						text: ampm.toLowerCase()
					}).set('html', ampm).inject(s.ampm);
					if (ampm == currentWhen.format("%p")) opt.selected = true;
				});
				s.ampm.addEvent('change', function(){
					var date = this.getDates()[when];
					var ampm = s.ampm.get('value');
					if (ampm != date.format("%p")) {
						date.setAMPM(ampm);
						this.updateInput();
					}
				}.bind(this));
			}
		}, this);
		new Element('tr').inject(this.stamps.tbody).adopt(new Element('td', {colspan: 2}).adopt(new Element('a', {
			'class':'closeSticky button',
			events: {
				click: function(){
					this.hide();
				}.bind(this)
			}
		}).set('html', 'Ok')));
	},
	show: function(){
		this.previous();
		if (this.options.time) {
			if (!this.stamps.table) this.setupWideView();
			this.updateView();
		}
	},
	startSet: false,
	onPick: function(){
		if ((this.options.range && this.selectedDates.start && this.selectedDates.end) || !this.options.range) {
			this.previous();
		}
	},
	setSelectedDates: function(e, newDate) {
		if (this.options.range) {
			if (this.selectedDates.start && this.startSet) {
				if (this.selectedDates.start.getTime() > newDate.getTime()){
					this.selectedDates.end = new Date(this.selectedDates.start);
					this.selectedDates.start = newDate;
				} else {
					this.selectedDates.end = newDate;
				}
				this.startSet = false;
			} else {
				this.selectedDates.start = newDate;
				if (this.selectedDates.end && this.selectedDates.start.getTime() > this.selectedDates.end.getTime())
					this.selectedDates.end = new Date(newDate);
				this.startSet = true;
			}
		} else {
			this.previous(e, newDate);
		}
		if (this.options.time) {
			this.whens.each(function(when){
				var hr = this.stamps[when].hr.get('value').toInt();
				if (this.stamps[when].ampm.get('value') == "PM" && hr < 12) hr += 12;
				this.selectedDates[when].setHours(hr);
				this.selectedDates[when].setMinutes(this.stamps[when]['min'].get('value')||"0");
				this.selectedDates[when].setAMPM(this.stamps[when].ampm.get('value')||"AM");
			}, this);
		}
	}
});

FormValidator.Tips = new Class({
	Extends: FormValidator.Inline,
	options: {
		pointyTipOptions: {
			point: "left",
			width: 250
		}
//		tipCaption: ''
	},
	showAdvice: function(className, field){
		var advice = this.getAdvice(field);
		if (advice && !advice.visible){
			advice.show();
			advice.position();
			advice.pointy.positionPointer();
		}
	},
	hideAdvice: function(className, field){
		var advice = this.getAdvice(field);
		if (advice && advice.visible) advice.show();
	},
	getAdvice: function(className, field) {
		var params = Array.link(arguments, {field: Element.type});
		return params.field.retrieve('PointyTip');
	},
	advices: [],
	makeAdvice: function(className, field, error, warn){
		if (!error && !warn) return;
		var advice = field.retrieve('PointyTip');
		if (!advice){
			var cssClass = warn?'warning-advice':'validation-advice';
			var msg = new Element('ul', {
				styles: {
					margin: 0,
					padding: 0,
					listStyle: 'none'
				}
			});
			var li = this.makeAdviceItem(className, field);
			if (li) msg.adopt(li);
			field.store('validationMsgs', msg);
			advice = new StickyWin.PointyTip(this.options.tipCaption, msg, $merge(this.options.pointyTipOptions, {
				showNow: false,
				relativeTo: field,
				inject: {
					target: this.element
				}
			}));
			this.advices.push(advice);
			advice.msgs = {};
			field.store('PointyTip', advice);
			document.id(advice).addClass(cssClass).set('id', 'advice-'+className+'-'+this.getFieldId(field));
		}
		field.store('advice-'+className, advice);
		this.appendAdvice(className, field, error, warn);
		advice.pointy.positionPointer();
		return advice;
	},
	validateField: function(field, force){
		var advice = this.getAdvice(field);
		var anyVis = this.advices.some(function(a){ return a.visible; });
		if (anyVis && this.options.serial) {
			if (advice && advice.visible) {
				var passed = this.parent(field, force);
				if (!field.hasClass('validation-failed')) advice.hide();
			}
			return passed;
		}
		var msgs = field.retrieve('validationMsgs');
		if (msgs) msgs.getChildren().hide();
		if (field.hasClass('validation-failed') || field.hasClass('warning')) if (advice) advice.show();
		if (this.options.serial) {
			var fields = this.element.getElements('.validation-failed, .warning');
			if (fields.length) {
				fields.each(function(f, i) {
					var adv = this.getAdvice(f);
					if (adv) adv.hide();
				}, this);
			}
		}
		return this.parent(field, force);
	},
	makeAdviceItem: function(className, field, error, warn){
		if (!error && !warn) return;
		var advice = this.getAdvice(field);
		var errorMsg = this.makeAdviceMsg(field, error, warn);
		if (advice && advice.msgs[className]) return advice.msgs[className].set('html', errorMsg);
		return new Element('li', {
			html: errorMsg,
			style: {
				display: 'none'
			}
		});
	},
	makeAdviceMsg: function(field, error, warn){
		var errorMsg = (warn)?this.warningPrefix:this.errorPrefix;
			errorMsg += (this.options.useTitles) ? field.title || error:error;
		return errorMsg;
	},
	appendAdvice: function(className, field, error, warn) {
		var advice = this.getAdvice(field);
		if (advice.msgs[className]) return advice.msgs[className].set('html', this.makeAdviceMsg(field, error, warn)).show();
		var li = this.makeAdviceItem(className, field, error, warn);
		if (!li) return;
		li.inject(field.retrieve('validationMsgs')).show();
		advice.msgs[className] = li;
	},
	insertAdvice: function(advice, field){
		//Check for error position prop
		var props = field.get('validatorProps');
		//Build advice
		if (!props.msgPos || !document.id(props.msgPos)) {
			switch (field.type.toLowerCase()) {
				case 'radio':
					var p = field.getParent().adopt(advice);
					break;
				default:
					document.id(advice).inject(document.id(field), 'after');
			};
		} else {
			document.id(props.msgPos).grab(advice);
		}
		advice.position();
	}
});

/*
Script: InputFocus.js
	Adds a focused css class to inputs when they have focus.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
var InputFocus = new Class({
	Implements: [Options, Class.Occlude, Class.ToElement],
	Binds: ['focus', 'blur'],
	options: {
		focusedClass: 'focused',
		hideOutline: false
	},
	initialize: function(input, options) {
		this.element = document.id(input);
		if (this.occlude('focuser')) return this.occluded;
		this.setOptions(options);
		this.element.addEvents({
			focus: this.focus,
			blur: this.blur
		});
	},
	focus: function(){
		if (this.options.hideOutline) {
			(function(){
				if (Browser.Engine.trident) document.id(this).set('hideFocus', true);
				else document.id(this).setStyle('outline', '0');
			}).delay(500, this);
		}
		document.id(this).addClass(this.options.focusedClass);
	},
	blur: function(){
		document.id(this).removeClass(this.options.focusedClass);
	}
});

/**
 * Autocompleter
 *
 * @version		1.1.1
 *
 * @todo: Caching, no-result handling!
 *
 *
 * @license		MIT-style license
 * @author		Harald Kirschner <mail [at] digitarald.de>
 * @copyright	Author
 */
var Autocompleter = {};

var OverlayFix = IframeShim;

Autocompleter.Base = new Class({

	Implements: [Options, Events],

	options: {
		minLength: 1,
		markQuery: true,
		width: 'inherit',
		maxChoices: 10,
//		injectChoice: null,
//		customChoices: null,
		className: 'autocompleter-choices',
		zIndex: 42,
		delay: 400,
		observerOptions: {},
		fxOptions: {},
//		onSelection: $empty,
//		onShow: $empty,
//		onHide: $empty,
//		onBlur: $empty,
//		onFocus: $empty,

		autoSubmit: false,
		overflow: false,
		overflowMargin: 25,
		selectFirst: false,
		filter: null,
		filterCase: false,
		filterSubset: false,
		forceSelect: false,
		selectMode: true,
		choicesMatch: null,

		multiple: false,
		separator: ', ',
		autoTrim: true,
		allowDupes: false,

		cache: true,
		relative: false
	},

	initialize: function(element, options) {
		this.element = document.id(element);
		this.setOptions(options);
		this.options.separatorSplit = new RegExp("\s*["+this.options.separator.trim()+"]\s*/");
		this.build();
		this.observer = new Observer(this.element, this.prefetch.bind(this), $merge({
			'delay': this.options.delay
		}, this.options.observerOptions));
		this.queryValue = null;
		if (this.options.filter) this.filter = this.options.filter.bind(this);
		var mode = this.options.selectMode;
		this.typeAhead = (mode == 'type-ahead');
		this.selectMode = (mode === true) ? 'selection' : mode;
		this.cached = [];
	},

	/**
	 * build - Initialize DOM
	 *
	 * Builds the html structure for choices and appends the events to the element.
	 * Override this function to modify the html generation.
	 */
	build: function() {
		if (document.id(this.options.customChoices)) {
			this.choices = this.options.customChoices;
		} else {
			this.choices = new Element('ul', {
				'class': this.options.className,
				'styles': {
					'zIndex': this.options.zIndex
				}
			}).inject(document.body);
			this.relative = false;
			if (this.options.relative || this.element.getOffsetParent() != document.body) {
				this.choices.inject(this.element, 'after');
				this.relative = this.element.getOffsetParent();
			}
			this.fix = new OverlayFix(this.choices);
		}
		if (!this.options.separator.test(this.options.separatorSplit)) {
			this.options.separatorSplit = this.options.separator;
		}
		this.fx = (!this.options.fxOptions) ? null : new Fx.Tween(this.choices, $merge({
			'property': 'opacity',
			'link': 'cancel',
			'duration': 200
		}, this.options.fxOptions)).addEvent('onStart', Chain.prototype.clearChain).set(0);
		this.element.setProperty('autocomplete', 'off')
			.addEvent((Browser.Engine.trident || Browser.Engine.webkit) ? 'keydown' : 'keypress', this.onCommand.bind(this))
			.addEvent('click', this.onCommand.bind(this, [false]))
			.addEvent('focus', this.toggleFocus.create({bind: this, arguments: true, delay: 100}));
			//.addEvent('blur', this.toggleFocus.create({bind: this, arguments: false, delay: 100}));
		document.addEvent('click', function(e){
			if (e.target != this.choices) this.toggleFocus(false);
		}.bind(this));
	},

	destroy: function() {
		if (this.fix) this.fix.dispose();
		this.choices = this.selected = this.choices.destroy();
	},

	toggleFocus: function(state) {
		this.focussed = state;
		if (!state) this.hideChoices(true);
		this.fireEvent((state) ? 'onFocus' : 'onBlur', [this.element]);
	},

	onCommand: function(e) {
		if (!e && this.focussed) return this.prefetch();
		if (e && e.key && !e.shift) {
			switch (e.key) {
				case 'enter':
					if (this.element.value != this.opted) return true;
					if (this.selected && this.visible) {
						this.choiceSelect(this.selected);
						return !!(this.options.autoSubmit);
					}
					break;
				case 'up': case 'down':
					if (!this.prefetch() && this.queryValue !== null) {
						var up = (e.key == 'up');
						this.choiceOver((this.selected || this.choices)[
							(this.selected) ? ((up) ? 'getPrevious' : 'getNext') : ((up) ? 'getLast' : 'getFirst')
						](this.options.choicesMatch), true);
					}
					return false;
				case 'esc': case 'tab':
					this.hideChoices(true);
					break;
			}
		}
		return true;
	},

	setSelection: function(finish) {
		var input = this.selected.inputValue, value = input;
		var start = this.queryValue.length, end = input.length;
		if (input.substr(0, start).toLowerCase() != this.queryValue.toLowerCase()) start = 0;
		if (this.options.multiple) {
			var split = this.options.separatorSplit;
			value = this.element.value;
			start += this.queryIndex;
			end += this.queryIndex;
			var old = value.substr(this.queryIndex).split(split, 1)[0];
			value = value.substr(0, this.queryIndex) + input + value.substr(this.queryIndex + old.length);
			if (finish) {
				var space = /[^\s,]+/;
				var tokens = value.split(this.options.separatorSplit).filter(space.test, space);
				if (!this.options.allowDupes) tokens = [].combine(tokens);
				var sep = this.options.separator;
				value = tokens.join(sep) + sep;
				end = value.length;
			}
		}
		this.observer.setValue(value);
		this.opted = value;
		if (finish || this.selectMode == 'pick') start = end;
		this.element.selectRange(start, end);
		this.fireEvent('onSelection', [this.element, this.selected, value, input]);
	},

	showChoices: function() {
		var match = this.options.choicesMatch, first = this.choices.getFirst(match);
		this.selected = this.selectedValue = null;
		if (this.fix) {
			var pos = this.element.getCoordinates(this.relative), width = this.options.width || 'auto';
			this.choices.setStyles({
				'left': pos.left,
				'top': pos.bottom,
				'width': (width === true || width == 'inherit') ? pos.width : width
			});
		}
		if (!first) return;
		if (!this.visible) {
			this.visible = true;
			this.choices.setStyle('display', '');
			if (this.fx) this.fx.start(1);
			this.fireEvent('onShow', [this.element, this.choices]);
		}
		if (this.options.selectFirst || this.typeAhead || first.inputValue == this.queryValue) this.choiceOver(first, this.typeAhead);
		var items = this.choices.getChildren(match), max = this.options.maxChoices;
		var styles = {'overflowY': 'hidden', 'height': ''};
		this.overflown = false;
		if (items.length > max) {
			var item = items[max - 1];
			styles.overflowY = 'scroll';
			styles.height = item.getCoordinates(this.choices).bottom;
			this.overflown = true;
		};
		this.choices.setStyles(styles);
		this.fix.show();
	},

	hideChoices: function(clear) {
		if (clear) {
			var value = this.element.value;
			if (this.options.forceSelect) value = this.opted;
			if (this.options.autoTrim) {
				value = value.split(this.options.separatorSplit).filter($arguments(0)).join(this.options.separator);
			}
			this.observer.setValue(value);
		}
		if (!this.visible) return;
		this.visible = false;
		this.observer.clear();
		var hide = function(){
			this.choices.setStyle('display', 'none');
			this.fix.hide();
		}.bind(this);
		if (this.fx) this.fx.start(0).chain(hide);
		else hide();
		this.fireEvent('onHide', [this.element, this.choices]);
	},

	prefetch: function() {
		var value = this.element.value, query = value;
		if (this.options.multiple) {
			var split = this.options.separatorSplit;
			var values = value.split(split);
			var index = this.element.getCaretPosition();
			var toIndex = value.substr(0, index).split(split);
			var last = toIndex.length - 1;
			index -= toIndex[last].length;
			query = values[last];
		}
		if (query.length < this.options.minLength) {
			this.hideChoices();
		} else {
			if (query === this.queryValue || (this.visible && query == this.selectedValue)) {
				if (this.visible) return false;
				this.showChoices();
			} else {
				this.queryValue = query;
				this.queryIndex = index;
				if (!this.fetchCached()) this.query();
			}
		}
		return true;
	},

	fetchCached: function() {
		return false;
		if (!this.options.cache
			|| !this.cached
			|| !this.cached.length
			|| this.cached.length >= this.options.maxChoices
			|| this.queryValue) return false;
		this.update(this.filter(this.cached));
		return true;
	},

	update: function(tokens) {
		this.choices.empty();
		this.cached = tokens;
		if (!tokens || !tokens.length) {
			this.hideChoices();
		} else {
			if (this.options.maxChoices < tokens.length && !this.options.overflow) tokens.length = this.options.maxChoices;
			tokens.each(this.options.injectChoice || function(token){
				var choice = new Element('li', {'html': this.markQueryValue(token)});
				choice.inputValue = token;
				this.addChoiceEvents(choice).inject(this.choices);
			}, this);
			this.showChoices();
		}
	},

	choiceOver: function(choice, selection) {
		if (!choice || choice == this.selected) return;
		if (this.selected) this.selected.removeClass('autocompleter-selected');
		this.selected = choice.addClass('autocompleter-selected');
		this.fireEvent('onSelect', [this.element, this.selected, selection]);
		if (!selection) return;
		this.selectedValue = this.selected.inputValue;
		if (this.overflown) {
			var coords = this.selected.getCoordinates(this.choices), margin = this.options.overflowMargin,
				top = this.choices.scrollTop, height = this.choices.offsetHeight, bottom = top + height;
			if (coords.top - margin < top && top) this.choices.scrollTop = Math.max(coords.top - margin, 0);
			else if (coords.bottom + margin > bottom) this.choices.scrollTop = Math.min(coords.bottom - height + margin, bottom);
		}
		if (this.selectMode) this.setSelection();
	},

	choiceSelect: function(choice) {
		if (choice) this.choiceOver(choice);
		this.setSelection(true);
		this.queryValue = false;
		this.hideChoices();
	},

	filter: function(tokens) {
		return (tokens || this.tokens).filter(function(token) {
			return this.test(token);
		}, new RegExp(((this.options.filterSubset) ? '' : '^') + this.queryValue.escapeRegExp(), (this.options.filterCase) ? '' : 'i'));
	},

	/**
	 * markQueryValue
	 *
	 * Marks the queried word in the given string with <span class="autocompleter-queried">*</span>
	 * Call this i.e. from your custom parseChoices, same for addChoiceEvents
	 *
	 * @param		{String} Text
	 * @return		{String} Text
	 */
	markQueryValue: function(str) {
		return (!this.options.markQuery || !this.queryValue) ? str
			: str.replace(new RegExp('(' + ((this.options.filterSubset) ? '' : '^') + this.queryValue.escapeRegExp() + ')', (this.options.filterCase) ? '' : 'i'), '<span class="autocompleter-queried">$1</span>');
	},

	/**
	 * addChoiceEvents
	 *
	 * Appends the needed event handlers for a choice-entry to the given element.
	 *
	 * @param		{Element} Choice entry
	 * @return		{Element} Choice entry
	 */
	addChoiceEvents: function(el) {
		return el.addEvents({
			'mouseover': this.choiceOver.bind(this, [el]),
			'click': this.choiceSelect.bind(this, [el])
		});
	}
});


/**
 * Autocompleter.Local
 *
 * @version		1.1.1
 *
 * @todo: Caching, no-result handling!
 *
 *
 * @license		MIT-style license
 * @author		Harald Kirschner <mail [at] digitarald.de>
 * @copyright	Author
 */
Autocompleter.Local = new Class({

	Extends: Autocompleter.Base,

	options: {
		minLength: 0,
		delay: 200
	},

	initialize: function(element, tokens, options) {
		this.parent(element, options);
		this.tokens = tokens;
	},

	query: function() {
		this.update(this.filter());
	}

});


/**
 * Autocompleter.Remote
 *
 * @version		1.1.1
 *
 * @todo: Caching, no-result handling!
 *
 *
 * @license		MIT-style license
 * @author		Harald Kirschner <mail [at] digitarald.de>
 * @copyright	Author
 */

Autocompleter.Ajax = {};

Autocompleter.Ajax.Base = new Class({

	Extends: Autocompleter.Base,

	options: {
		postVar: 'value',
		postData: {},
		ajaxOptions: {},
		onRequest: $empty,
		onComplete: $empty
	},

	initialize: function(element, options) {
		this.parent(element, options);
		var indicator = document.id(this.options.indicator);
		if (indicator) {
			this.addEvents({
				'onRequest': indicator.show.bind(indicator),
				'onComplete': indicator.hide.bind(indicator)
			}, true);
		}
	},

	query: function(){
		var data = $unlink(this.options.postData);
		data[this.options.postVar] = this.queryValue;
		this.fireEvent('onRequest', [this.element, this.request, data, this.queryValue]);
		this.request.send({'data': data});
	},

	/**
	 * queryResponse - abstract
	 *
	 * Inherated classes have to extend this function and use this.parent(resp)
	 *
	 * @param		{String} Response
	 */
	queryResponse: function() {
		this.fireEvent('onComplete', [this.element, this.request, this.response]);
	}

});

Autocompleter.Ajax.Json = new Class({

	Extends: Autocompleter.Ajax.Base,

	initialize: function(el, url, options) {
		this.parent(el, options);
		this.request = new Request.JSON($merge({
			'url': url,
			'link': 'cancel'
		}, this.options.ajaxOptions)).addEvent('onComplete', this.queryResponse.bind(this));
	},

	queryResponse: function(response) {
		this.parent();
		this.update(response);
	}

});

Autocompleter.Ajax.Xhtml = new Class({

	Extends: Autocompleter.Ajax.Base,

	initialize: function(el, url, options) {
		this.parent(el, options);
		this.request = new Request.HTML($merge({
			'url': url,
			'link': 'cancel',
			'update': this.choices
		}, this.options.ajaxOptions)).addEvent('onComplete', this.queryResponse.bind(this));
	},

	queryResponse: function(tree, elements) {
		this.parent();
		if (!elements || !elements.length) {
			this.hideChoices();
		} else {
			this.choices.getChildren(this.options.choicesMatch).each(this.options.injectChoice || function(choice) {
				var value = choice.innerHTML;
				choice.inputValue = value;
				this.addChoiceEvents(choice.set('html', this.markQueryValue(value)));
			}, this);
			this.showChoices();
		}

	}

});


/*
Script: Autocompleter.JSONP.js
	Implements Request.JSONP support for the Autocompleter class.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/

Autocompleter.JSONP = new Class({

	Extends: Autocompleter.Ajax.Json,

	options: {
		postVar: 'query',
		jsonpOptions: {},
//		onRequest: $empty,
//		onComplete: $empty,
//		filterResponse: $empty
		minLength: 1
	},

	initialize: function(el, url, options) {
		this.url = url;
		this.setOptions(options);
		this.parent(el, options);
	},

	query: function(){
		var data = $unlink(this.options.jsonpOptions.data||{});
		data[this.options.postVar] = this.queryValue;
		this.jsonp = new Request.JSONP($merge({url: this.url, data: data},	this.options.jsonpOptions));
		this.jsonp.addEvent('onComplete', this.queryResponse.bind(this));
		this.fireEvent('onRequest', [this.element, this.jsonp, data, this.queryValue]);
		this.jsonp.send();
	},

	queryResponse: function(response) {
		this.parent();
		var data = (this.options.filter)?this.options.filter.run([response], this):response;
		this.update(data);
	}

});
Autocompleter.JsonP = Autocompleter.JSONP;

/**
 * Observer - Observe formelements for changes
 *
 * @version		1.0rc3
 *
 * @license		MIT-style license
 * @author		Harald Kirschner <mail [at] digitarald.de>
 * @copyright	Author
 */
var Observer = new Class({

	Implements: [Options, Events],

	options: {
		periodical: false,
		delay: 1000
	},

	initialize: function(el, onFired, options){
		this.setOptions(options);
		this.addEvent('onFired', onFired);
		this.element = document.id(el) || $$(el);
		/* Clientcide change */
		this.boundChange = this.changed.bind(this);
		this.resume();
	},

	changed: function() {
		var value = this.element.get('value');
		if ($equals(this.value, value)) return;
		this.clear();
		this.value = value;
		this.timeout = this.onFired.delay(this.options.delay, this);
	},

	setValue: function(value) {
		this.value = value;
		this.element.set('value', value);
		return this.clear();
	},

	onFired: function() {
		this.fireEvent('onFired', [this.value, this.element]);
	},

	clear: function() {
		$clear(this.timeout || null);
		return this;
	},
	/* Clientcide change */
	pause: function(){
		$clear(this.timeout);
		$clear(this.timer);
		this.element.removeEvent('keyup', this.boundChange);
		return this;
	},
	resume: function(){
		this.value = this.element.get('value');
		if (this.options.periodical) this.timer = this.changed.periodical(this.options.periodical, this);
		else this.element.addEvent('keyup', this.boundChange);
		return this;
	}

});

var $equals = function(obj1, obj2) {
	return (obj1 == obj2 || JSON.encode(obj1) == JSON.encode(obj2));
};

/*
Script: AutoCompleter.Clientcide.js
	Adds Clientcide css assets to autocompleter automatically.

License:
	http://www.clientcide.com/wiki/cnet-libraries#license
*/
(function(){
	Autocompleter.Base = Class.refactor(Autocompleter.Base, {
		options: {
			baseHref: 'http://www.cnet.com/html/rb/assets/global/autocompleter/'
		},
		initialize: function(a1,a2,a3) {
			this.previous(a1,a2,a3);
			this.writeStyle();
		},
		writeStyle: function(){
			window.addEvent('domready', function(){
				if (document.id('AutocompleterCss')) return;
				new Element('link', {
					rel: 'stylesheet',
					media: 'screen',
					type: 'text/css',
					href: this.options.baseHref+'Autocompleter.css',
					id: 'AutocompleterCss'
				}).inject(document.head);
			}.bind(this));
		}
	});
})();
if (window._JSON) {
	JSON.stringify = _JSON.stringify;
	JSON.parse = _JSON.parse;
}

String.implement({
	startsWith: function(s) {
		return this.substr(0,s.length)==s;
	},
	replaceAll: function(searchValue, replaceValue, regExOptions) {
		return this.replace(new RegExp(searchValue, $pick(regExOptions,"gi")), replaceValue);
	},
	gsub: function(search, replace) {
		return this.split(search).join(replace);
	},
	urlEncode: function() {
		if (this.indexOf("%") > -1) return this;
		else return escape(this);
	},
	htmlEntitiesEncode: function() {
		var enc = this.toString();
		enc = enc.gsub("&","&amp;");
		enc = enc.gsub("<","&lt;");
		enc = enc.gsub(">","&gt;");
		return enc;
	},
	injectHTML: function(inside) {
		var container = new Element("DIV", {"html": this.toString()});
		var children = container.getChildren();
		children.each(function(child) { child.inject(inside); });
		container.dispose();
		return children;
	},
	toClipboard: function() {
		try {
			document.execCommand('Copy', this.toString());
		} catch(e) {
			try {
				netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
			} catch(e) {
				if (Browser.Engine.gecko)
					alert("Browser security settings doesn't allow this action to be taken.\n\nSet the 'signed.applets.codebase_principal_support' property in the 'about:config' page to true/1 if you want to enable this feature.");
				return this;
			}
			try {
				clip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);
			} catch(e) {
				return this;
			}
			try {
				transf = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
			} catch(e) {
				return this;
			}
			transf.addDataFlavor("text/unicode");
			suppstr = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
			suppstr.data = this.toString();
			transf.setTransferData("text/unicode",suppstr,this.length*2);
			try {
				clipi = Components.interfaces.nsIClipboard;
			} catch(e) {
				return this;
			}
			clip.setData(transf,null,clipi.kGlobalClipboard);
		}
		return this;
	}
});

Element.tDataRegExp = new RegExp("_\\|JS:(.*)\\|_");

Element.implement({
	searchAttachedData: function() {
		this.getElements("[title]").each( function(elem) {
			elem.storeAttachedData();
		} );
	},

	// Cerca dati json inclusi nel parametro title e ne fa lo store in "tData". I dati json devono essere racchiusi tra "_|JS:" e "|_"
	storeAttachedData: function() {
		var t = this.get("title");
		var matches = Element.tDataRegExp.exec(t);
		try {
			var data = JSON.decode(matches[1]);
			this.store("tData", data);
			this.set("title", t.gsub(matches[0],""));
		} catch(e) {
			dbug.log(e);
		}
	},

	isVisible: function(recursive) {
		if (recursive && this.getParent()) {
			var parent=this.getParent();
			var element=this;
			var result=true;

			while (parent && !element.isBody() && result) {
				var visible = ((element.getStyle('display') != 'none') && (element.getStyle('visibility') != 'hidden') && (element.getStyle('opacity') != 0));
				if (!visible) result=false;
				element=element.getParent();
				parent=element.getParent();
			}

			return result;
		} else {
			return this.getStyle('display') != 'none';
		}
	},

	inlineEdit: function(options) {
		return new InlineEdit(this, options);
	},

	hide: function() {
		var d;
		try {
			d = this.getStyle('display');
			if (d=='none') d = '';
		} catch(e){}
		this.store('originalDisplay', d||'');
		this.setStyle('display','none');
		return this;
	},

	show: function(display) {
		original = this.retrieve('originalDisplay')?this.retrieve('originalDisplay'):this.get('originalDisplay');
		this.setStyle('display',(display || original || ''));
		return this;
	},

	getCells: function() {
		if ($defined(this.cells))
			return this.cells;
		else
			return this.getElements("td");
	},

	getSiblings: function() {
		return this.getAllPrevious().extend(this.getAllNext());
	},

	toQueryString: function(){
		var queryString = [];
		this.getElements('input, select, textarea', true).each(function(el){
			if (!el.name || el.disabled || el.type == 'submit' || el.type == 'reset' || el.type == 'file') return;
			var value = el.value;
			if (el.tagName.toLowerCase() == 'select') {
				value = Element.getSelected(el).map(function(opt){
					return opt.value;
				});
			} else if ((el.type == 'radio' || el.type == 'checkbox') && !el.checked) {
				value = el.type == 'checkbox' ? '' : null;
			}
			$splat(value).each(function(val){
				if (typeof val != 'undefined') queryString.push(el.name + '=' + encodeURIComponent(val));
			});
		});
		return queryString.join('&');
	},

	toHash: function(){
		var hash = {};
		this.getElements('input[name][type!=submit], select[name], textarea[name]').each(function(el){
			if (el.disabled) return;
			var value = (el.tagName.toLowerCase() == 'select') ? Element.getSelected(el).map(function(opt){
				return opt.value;
			}) : ((el.type == 'radio' || el.type == 'checkbox') && !el.checked) ? null : el.value;
			hash[el.name] = value;
		});
		return hash;
	},

	cloneWithEvents: function(contents, keepid, type) {
		return this.clone(contents, keepid).cloneEvents(this, type);
	},

	isBody: function() {
		return (/^(?:body|html)$/i).test(this.tagName);
	},

	getOffsetParent: function(){
		var element = this;
		if (element.isBody()) return null;
		if (!Browser.Engine.trident && !Browser.Engine.gecko19) return element.offsetParent;
		while ((element = element.parentNode) && !element.isBody()){
			if (Element.getComputedStyle(element, 'position') != 'static') return element;
		}
		return null;
	},

	fxBlindDown: function(options) {
		options = $merge({
			direction: 'auto'
		}, options);

		if (!this.fullHeight) this.fullHeight = this.getDimensions().y;

		if (options.direction == 'auto')
			options.direction = this.getHeight() == 0 ? 'down' : 'up';

		var dim;
		if (options.direction == 'down')
			dim = [0, this.fullHeight];
		else
			dim = [this.fullHeight, 0];

		return this.setStyles({height: dim[0]+"px", overflow: 'hidden'}).show().tween('height', dim);
	},

	highlightOpacity: function() {
		var fx = this.retrieve("highlightOpacityFx");
		if (!fx) {
			fx = new Fx.Morph(this, {
				link: "cancel",
				duration:500
			});
			fx.addEvent("onChainComplete", function() {
				this.start({
					'opacity':1
				});
			}.bind(fx));
			this.store("highlightOpacityFx", fx);
		}
		fx.start({
			'opacity':0
		});
		return this;
	},
	blinkFx: function(index){
		(function(){
			if (this.hasClass('blinked')){
				this.removeClass('blinked');
			} else {
				this.addClass('blinked');
			}
			index--;
			if (index>0)
				this.blinkFx(index);
		}).delay(150,this);
	},
	getFxFadedShowHide: function() {
		var fx = this.retrieve("fxFadedShowHide");
		if (!fx) {
			fx = new Fx.Morph(this, {
				link: "cancel"
			}).addEvent("onChainComplete", function() {
				if (this.getStyle("opacity") == 0) {
					this.hide();
				} else {
					this.setStyle("height","");
				}
			}.bind(this));
			this.store("fxFadedShowHide", fx);
		}
		return fx;
	},
	fxFadedHide: function() {
		if (this.isVisible()) {
			this.store("fxFadedShowHide-Height", this.getSize().y);
			this.getFxFadedShowHide().start({
				opacity: 0,
				height: 0
			});
		}
		return this;
	},
	fxFadedShow: function() {
		if (!this.isVisible()) {
			var h = $pick( this.retrieve("fxFadedShowHide-Height"), 0 );
			this.store("fxFadedShowHide-Height", 0);
			var morph = {opacity:1};
			if (h>0)
				morph.height = h;
			this.setStyles({
				display: '',
				opacity: 0
			}).getFxFadedShowHide().start(morph);
		}
		return this;
	}
});

if (typeof(StickyWin) != 'undefined') {
	//Fix per aggiungere scrolls al posizionamento delle finestre
	StickyWin.implement({
		position: function(options){
			this.positioned = true;
			this.setOptions(options);

			//FIX
			if (this.options.relativeTo != document.body) {
				if (!this.originalOffset) this.originalOffset = this.options.offset;
				var scrolls = this.options.relativeTo.getScrolls();
				this.options.offset.x = this.originalOffset.x + scrolls.x;
				this.options.offset.y = this.originalOffset.y + scrolls.y -5; // offset di 10px inspiegabile
			}

			this.win.position({
				allowNegative: $pick(this.options.allowNegative, this.options.relativeTo != document.body),
				relativeTo: this.options.relativeTo,
				position: this.options.position,
				offset: this.options.offset,
				edge: this.options.edge
			});
			if (this.shim) this.shim.position();
			return this;
		}
	});
}

var CustomTips = new Class({
	Extends: Tips,
	options: {
		onShow: function(tip){
			tip.getElement('.tip').tween('margin-top','0');
			tip.tween('opacity',1);
		},
		onHide: function(tip){
			tip.getElement('.tip').tween('margin-top','10');
			tip.tween('opacity',0);
		}
	},
	initialize: function(){
		var params = Array.link(arguments, {options: Object.type, elements: $defined});
		this.setOptions(params.options || null);

		this.tip = new Element('div').inject(document.body);

		if (this.options.className) this.tip.addClass(this.options.className);

		var top = new Element('div', {'class': 'tip-top'}).inject(this.tip);
		this.container = new Element('div', {'class': 'tip'}).inject(this.tip);
		var bottom = new Element('div', {'class': 'tip-bottom'}).inject(this.tip);

		this.tip.setStyles({position: 'absolute', top: 0, left: 0,visibility: 'visible', opacity:0});
		this.container.setStyles({'margin-top': 10});
	}
});

Number.format_regex = /(\d+)(\d{3})/;
Number.implement({
	format: function(precision, decimal_point, thousands_sep) {
		decimal_point = $pick(decimal_point, ".");
		thousands_sep = $pick(thousands_sep, "");

		var x = this.toFloat().round(precision).toString().split("."), x1, x2;
		x1 = x[0];
		if (precision > 0) {
			if (x.length > 1) {
				if (x[1].length < precision)
					x[1] += "0".repeat( precision-x[1].length )
				x2 = x.length > 1 ? decimal_point + x[1] : "";
			} else {
				x2 = decimal_point+"0".repeat(precision);
			}
		} else {
			x2 = "";
		}
		if (thousands_sep != "") {
			while (Number.format_regex.test(x1)) {
				x1 = x1.replace(Number.format_regex, "$1" + thousands_sep + "$2");
			}
		}
		return x1 + x2;
	},

	humanize: function(precision, options) {
		options = $merge({startUnit: "", machineK: false, unitType: ""}, options);

		precision = $pick(precision, 0);
		num = this.toFloat();

		var units = ["","K","M","G","T","P"];
		var unitX = units.indexOf(options.startUnit);
		var divisor = options.machineK ? 1024 : 1000;

		while (num>=divisor && unitX<units.length) {
			unitX++;
			num /= divisor;
		}
		return num.localized()+units[unitX]+options.unitType;
	},

	localized: function (monetary) {
		var n = "", num = this.toFloat(), sign, sign_posn, sep_by_space, cs_precedes;
		if (num>=0) {
			sign = localeconv['positive_sign'];
			sign_posn = localeconv['p_sign_posn'];
			sep_by_space = localeconv['p_sep_by_space'];
			cs_precedes = localeconv['p_cs_precedes'];
		} else {
			sign = localeconv['negative_sign'];
			sign_posn = localeconv['n_sign_posn'];
			sep_by_space = localeconv['n_sep_by_space'];
			cs_precedes = localeconv['n_cs_precedes'];
		}

		if (monetary) {
			var symbol = localeconv['currency_symbol'];
			//-€ -#- €-
			//012345678
			var a = new Array(9);

			switch(sign_posn) {
				case 1: a[3] = sign; break;
				case 2: a[5] = sign; break;
				case 3: symbol = sign+symbol; break;
				case 4: symbol += sign; break;
				default: n += " [error sign_posn="+sign_posn+"&nbsp;!]";
			}

			if (cs_precedes) {
				a[1] = symbol;
				if (sep_by_space) a[2] = " ";
			} else {
				if (sep_by_space) a[6] = " ";
				a[7] = symbol;
			}
			a[4] = Math.abs(num).format(localeconv['frac_digits'], localeconv['mon_decimal_point'], localeconv['mon_thousands_sep']);
			n = a.join("");
		} else {
			n = Math.abs(num).format(localeconv['frac_digits'], localeconv['decimal_point'], localeconv['thousands_sep']);
			switch(sign_posn) {
				case 0: n = "("+n+")"; break;
				case 2: case 4: n += sign; break;
				case 1: case 3: n = sign+n; break;
				default: n += " [error sign_posn="+sign_posn+"&nbsp;!]";
			}
		}

		return n;
	}
});

Window.implement({
	getMedia: function() {
		var el = new Element("DIV", {"class": "no_print", styles: {"height":"0","width":"0"}}).inject(this.document.documentElement);
		var media = (el.getStyle("display") == "none") ? "print" : "screen";
		el.dispose();
		return media;
	}
});

Element.Events.valuechange = {
	base: "keyup",
	condition: function(event) {
		if ($pick( event.target.retrieve("last_value"), "") != event.target.value) {
			event.target.store("last_value", event.target.value);
			return true;
		} else return false;
	}
}

if (typeof(Sortables) != 'undefined') {
	Sortables.implement({
		getClone: function(element){
			if (!this.options.clone) return new Element('div').inject(document.body);
			if ($type(this.options.clone) == 'function') return this.options.clone.call(this, event, element, this.list);
			return element.clone(true).setStyles({
				'margin': '0px',
				'position': 'absolute',
				'display': 'none',
				'width': element.getStyle('width')
			}).inject(this.list).position(element.getPosition(element.offsetParent));
		},

		serialize: function() {
			var serial = [];
			this.list.getChildren().each(function(el, i){
				serial.push( "ids[]="+el.id.replace(/\D+/,"") );
			}, this);
			return serial.join("&");
		}
	});
}

Tips.implement({
	position: function(event){
		var size = window.getSize(), scroll = window.getScroll();
		var tip = {x: this.tip.offsetWidth, y: this.tip.offsetHeight};

		var alignOffsets = {x:0,y:0};
		if ($pick(this.options.alignment, 'right') == 'left')
			alignOffsets.x = -this.tip.getSize().x;
		if ($pick(this.options.verticalAlignment, 'bottom') == 'top')
			alignOffsets.y = -this.tip.getSize().y;

		var props = {x: 'left', y: 'top'};
		for (var z in props){
			var pos = event.page[z] + this.options.offsets[z] + alignOffsets[z];
			this.tip.setStyle(props[z], pos);
		}
	}
});

if (!document.getElementsByClassName) {
	Native.implement([Document, Element], {
		getElementsByClassName: function(className) {
			return this.getElements("."+className);
		}
	});
}

// http://blog.kassens.net/outerclick-event
(function(){
	var events;
	var check = function(e){
		var target = $(e.target);
		var parents = target.getParents();
		events.each(function(item){
			var element = item.element;
			if (element != target && !parents.contains(element))
				item.fn.call(element, e);
		});
	};
	Element.Events.outerClick = {
		onAdd: function(fn){
			if(!events) {
				window.addEvent('click', check);
				events = [];
			}
			events.push({element: this, fn: fn});
		},
		onRemove: function(fn){
			events = events.filter(function(item){
				return item.element != this || item.fn != fn;
			}, this);
			if (!events.length) {
				window.removeEvent('click', check);
				events = null;
			}
		}
	};
})();


var InlineEdit = new Class({Implements: [Options, Events],
	options: {
		type: "input"
	},
	initialize: function(element,options){
		this.setOptions(options);
		if (element.get("tag") != this.options.type.toLowerCase()){
			this.element = element;
			this.oldContent = this.element.get("html");
			var content = this.oldContent.trim().replace(new RegExp("<br />", "gi"), "\n");
			this.inputBox = new Element(this.options.type, { value: content }).setStyles({
				margin: 0,
				backgroundColor: "transparent",
				//width: this.element.getSize().x,
				width: "99.5%",
				fontSize: "1em",
				borderWidth: 0
			});
			if (!this.inputBox.get("value")) this.inputBox.set("html", content);
			this.setAllStyles();
			this.element.set("html", "");
			this.inputBox.inject(this.element);
			this.inputBox.focus.delay(300, this.inputBox);
			this.inputBox.addEvent("change",this.onSave.bind(this));
			this.inputBox.addEvent("blur",this.onSave.bind(this));
			this.inputBox.addEvent("keyup",this.onKeyUp.bindWithEvent(this));
		}
	},
	onKeyUp: function(e){
		if("enter" == e.key) this.onSave();
	},
	onSave: function(){
		this.inputBox.removeEvents();
		this.newContent = this.inputBox.get("value").trim().replace(new RegExp("\n", "gi"), "<br />");
		this.element.set("html", this.newContent);
		this.fireEvent("onComplete", [this.element, this.oldContent, this.newContent]);
	},
	setAllStyles: function() {
		["text-align", "font", "font-family", "font-weight", "line-height", "letter-spacing", "color"].each(function (property) {
			if (this.element.getStyle(property)) this.inputBox.setStyle(property, this.element.getStyle(property));
		}.bind(this));
	}
});

var InlineSelect = new Class({Implements: [Options, Events],
	value: 0,

	initialize: function(options) {
		this.setOptions(options);
		if (!this.options.element || !this.options.url) return null;
		this.build();
	},

	build: function() {
		this.element = $(this.options.element).addEvent("click", this.onClick.bind(this));
		document.documentElement.addEvent("click", this.documentClick.bindWithEvent(this));
		this.request = new Request({
			url: this.options.url,
			onSuccess: this.fillOptions.bind(this),
			onFailure: function() {
				onAjaxFailure();
				this.waiter.stop();
			}.bind(this)
		});

		this.optionsContainer = new Element("DIV", {
			"class": "inlineSelect"
		}).hide().inject(this.element, "after");
		if (this.options.className)
			this.optionsContainer.addClass(this.options.className);
		this.waiter = new Waiter(this.element);
	},

	onClick: function() {
		if (this.optionsContainer.isVisible())
			this.hideOptions();
		else
			this.showOptions();
	},

	documentClick: function(e) {
		e = new Event(e);
		if (e.target != this.element && !e.target.getParents().contains(this.element))
			this.hideOptions();
	},

	showOptions: function() {
		this.optionsContainer.set("html","").show();
		this.waiter.start();
		this.request.send(this.options.requestOptions);
	},

	hideOptions: function() {
		this.optionsContainer.hide();
		this.waiter.stop();
		this.request.cancel();
	},

	fillOptions: function(response) {
		var options = JSON.decode(response);
		options.each(function(option) {
			var optionDiv = new Element("DIV", {
				"class": "option",
				"html": option.text
			}).store("value", option.value).inject(this.optionsContainer);

			optionDiv.addEvent("click", this.onOptionClick.bind(this, [optionDiv]));
		}, this);
		if (tooltips) tooltips.init(this.optionsContainer);
		this.waiter.stop();
	},

	onOptionClick: function(option) {
		this.value = option.retrieve("value");
		this.fireEvent("change", [option]);
	}
});

var InlineSelectStatic = new Class({Implements: [Options, Events],
	value: 0,

	initialize: function(options) {
		this.setOptions(options);
		if (!this.options.element) return null;
		this.build();
	},

	build: function() {
		this.element = $(this.options.element).addEvent("click", this.elementClick.bind(this));
		document.documentElement.addEvent("click", this.documentClick.bindWithEvent(this));

		this.optionsContainer = new Element("DIV", {
			"class": "inlineSelect"
		}).hide().inject(this.element, "after");
		if (this.options.className)
			this.optionsContainer.addClass(this.options.className);
	},

	elementClick: function() {
		if (this.optionsContainer.isVisible())
			this.hideOptions();
		else
			this.showOptions();
	},

	documentClick: function(e) {
		e = new Event(e);
		if (e.target != this.element && !e.target.getParents().contains(this.element))
			this.hideOptions();
	},

	showOptions: function() {
		this.optionsContainer.set("html","").show();
		this.fillOptions( this.element.retrieve("inlineSelectData") );
	},

	hideOptions: function() {
		this.optionsContainer.hide();
	},

	fillOptions: function(options) {
		options = $pick(options, []);
		options.each(function(option) {
			var optionDiv = new Element("DIV", {
				"class": "option",
				"html": option
			}).inject(this.optionsContainer);

			optionDiv.addEvent("click", this.onOptionClick.bindWithEvent(this, [optionDiv]));
		}, this);
		if (tooltips) tooltips.init(this.optionsContainer);
	},

	onOptionClick: function(e, option) {
		e = new Event(e);
		e.stop();
		this.hideOptions();
		this.value = option.get("html");
		this.fireEvent("change", [option]);
	}
});

/*FormValidator.implement({
	watchFields: function(){
		this.getFields().each(function(el){
				el.addEvent('focus', function(){
					el.addClass('validation-passed').removeClass('validation-failed');
					if ($defined(el.getParent().getElement('.validation-advice')))
						this.hideAdvice('required',el);
				}.bind(this));
				el.addEvent('blur', this.validateField.pass([el, false], this));
			if (this.options.evaluateFieldsOnChange)
				el.addEvent('change', this.validateField.pass([el, true], this));
		}, this);
	}
});*/
FormValidator.implement({
	validate: function(event){
		var result = this.getFields().map(function(field){
			return field.isVisible(true) ? this.validateField(field, true) : true;
		}, this).every(function(v){ return v;});
		this.fireEvent('formValidate', [result, this.element, event]);
		if (this.options.stopOnFailure && !result && event) event.preventDefault();
		return result;
	}
});

dbug.enable(true);

MooTools.lang.set('it-IT', 'Date', {

	months: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'],
	days: ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato'],
	dateOrder: ['date', 'month', 'year'],
	shortDate: '%d/%m/%Y',
	shortTime: '%H:%M',
	AM: 'AM',
	PM: 'PM',
	ordinal: $lambda(''),

	lessThanMinuteAgo: 'meno di un minuto fa',
	minuteAgo: 'circa un minuto fa',
	minutesAgo: '{delta} minuti fa',
	hourAgo: 'circa un\'ora fa',
	hoursAgo: 'circa {delta} ore fa',
	dayAgo: '1 giorno fa',
	daysAgo: '{delta} giorni fa',
	lessThanMinuteUntil: 'menu di un minuto da ora',
	minuteUntil: 'circa un minuto da ora',
	minutesUntil: '{delta} minuti da ora',
	hourUntil: 'circa un\'ora da ora',
	hoursUntil: 'circa {delta} ore da ora',
	dayUntil: '1 giorno da ora',
	daysUntil: '{delta} giorni da ora'

});
MooTools.lang.setLanguage("it-IT");

Clientcide.setAssetLocation("/images/clientcide");
/*
 * Smoothbox v20080623 by Boris Popoff (http://gueschla.com)
 * To be used with mootools 1.2
 *
 * Based on Cody Lindley's Thickbox, MIT License
 *
 * Licensed under the MIT License:
 *   http://www.opensource.org/licenses/mit-license.php
 */

// on page load call TB_init
window.addEvent('domready', TB_init);

// prevent javascript error before the content has loaded
TB_WIDTH = 0;
TB_HEIGHT = 0;
var TB_doneOnce = 0;

// add smoothbox to href elements that have a class of .smoothbox
function TB_init(){
    $$("a.smoothbox").each(function(el){
        el.onclick = TB_bind
    });
}

function TB_bind(event){
    var event = new Event(event);
    // stop default behaviour
    event.preventDefault();
    // remove click border
    this.blur();
    // get caption: either title or name attribute
    var caption = this.title || this.name || "";
    // get rel attribute for image groups
    var group = this.rel || false;
    // display the box for the elements href
    TB_show(caption, this.href, group);
    this.onclick = TB_bind;
    return false;
}

// called when the user clicks on a smoothbox link
function TB_show(caption, url, rel){

    // create iframe, overlay and box if non-existent

    if (!$("TB_overlay")) {
        new Element('iframe').setProperty('id', 'TB_HideSelect').injectInside(document.body);
        $('TB_HideSelect').setOpacity(0);
        new Element('div').setProperty('id', 'TB_overlay').injectInside(document.body);
        $('TB_overlay').setOpacity(0);
        TB_overlaySize();
        new Element('div').setProperty('id', 'TB_load').injectInside(document.body);
        $('TB_load').innerHTML = "<img src='loading.gif' />";
        TB_load_position();

        $('TB_overlay').set('tween', {
            duration: 400
        });
        $('TB_overlay').tween('opacity', 0, 0.6);

    }

    if (!$("TB_load")) {
        new Element('div').setProperty('id', 'TB_load').injectInside(document.body);
        $('TB_load').innerHTML = "<img src='loading.gif' />";
        TB_load_position();
    }

    if (!$("TB_window")) {
        new Element('div').setProperty('id', 'TB_window').injectInside(document.body);
        $('TB_window').setOpacity(0);
    }

    $("TB_overlay").onclick = TB_remove;
    window.onscroll = TB_position;

    // check if a query string is involved
    var baseURL = url.match(/(.+)?/)[1] || url;

    // regex to check if a href refers to an image
    var imageURL = /\.(jpe?g|png|gif|bmp)/gi;

    // check for images
    if (baseURL.match(imageURL)) {
        var dummy = {
            caption: "",
            url: "",
            html: ""
        };

        var prev = dummy, next = dummy, imageCount = "";

        // if an image group is given
        if (rel) {
            function getInfo(image, id, label){
                return {
                    caption: image.title,
                    url: image.href,
                    html: "<span id='TB_" + id + "'>&nbsp;&nbsp;<a href='#'>" + label + "</a></span>"
                }
            }

            // find the anchors that point to the group
            var imageGroup = [];
            $$("a.smoothbox").each(function(el){
                if (el.rel == rel) {
                    imageGroup[imageGroup.length] = el;
                }
            })

            var foundSelf = false;

            // loop through the anchors, looking for ourself, saving information about previous and next image
            for (var i = 0; i < imageGroup.length; i++) {
                var image = imageGroup[i];
                var urlTypeTemp = image.href.match(imageURL);

                // look for ourself
                if (image.href == url) {
                    foundSelf = true;
                    imageCount = "Image " + (i + 1) + " of " + (imageGroup.length);
                }
                else {
                    // when we found ourself, the current is the next image
                    if (foundSelf) {
                        next = getInfo(image, "next", "Next &gt;");
                        // stop searching
                        break;
                    }
                    else {
                        // didn't find ourself yet, so this may be the one before ourself
                        prev = getInfo(image, "prev", "&lt; Prev");
                    }
                }
            }
        }

        imgPreloader = new Image();
        imgPreloader.onload = function(){
            imgPreloader.onload = null;

            // Resizing large images
            var x = window.getWidth() - 150;
            var y = window.getHeight() - 150;
            var imageWidth = imgPreloader.width;
            var imageHeight = imgPreloader.height;
            if (imageWidth > x) {
                imageHeight = imageHeight * (x / imageWidth);
                imageWidth = x;
                if (imageHeight > y) {
                    imageWidth = imageWidth * (y / imageHeight);
                    imageHeight = y;
                }
            }
            else
                if (imageHeight > y) {
                    imageWidth = imageWidth * (y / imageHeight);
                    imageHeight = y;
                    if (imageWidth > x) {
                        imageHeight = imageHeight * (x / imageWidth);
                        imageWidth = x;
                    }
                }
            // End Resizing

            // TODO don't use globals
            TB_WIDTH = imageWidth + 30;
            TB_HEIGHT = imageHeight + 60;

            // TODO empty window content instead
            $("TB_window").innerHTML += "<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='" + url + "' width='" + imageWidth + "' height='" + imageHeight + "' alt='" + caption + "'/></a>" + "<div id='TB_caption'>" + caption + "<div id='TB_secondLine'>" + imageCount + prev.html + next.html + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a></div>";

            $("TB_closeWindowButton").onclick = TB_remove;

            function buildClickHandler(image){
					if ((typeof(image.url)!=undefined)&&(image.url!=''))
						return function(){
							$("TB_window").dispose();
							new Element('div').setProperty('id', 'TB_window').injectInside(document.body);
							TB_show(image.caption, image.url, rel);
							return false;
						};
					else return function(){ return false; };
            }
            var goPrev = buildClickHandler(prev);
            var goNext = buildClickHandler(next);
            if ($('TB_prev')) {
                $("TB_prev").onclick = goPrev;
            }

            if ($('TB_next')) {
                $("TB_next").onclick = goNext;
            }

            document.onkeydown = function(event){
                var event = new Event(event);
                switch (event.code) {
                    case 27:
                        TB_remove();
                        break;
                    case 190:
                        if ($('TB_next')) {
                            document.onkeydown = null;
                            goNext();
                        }
                        break;
                    case 188:
                        if ($('TB_prev')) {
                            document.onkeydown = null;
                            goPrev();
                        }
                        break;
                }
            }

            // TODO don't remove loader etc., just hide and show later
				$("TB_ImageOff").onclick = goNext;//TB_remove;
            TB_position();
            TB_showWindow();
        }
        imgPreloader.src = url;

    }
    else { //code to show html pages
        var queryString = url.match(/\?(.+)/)[1];
        var params = TB_parseQuery(queryString);

        TB_WIDTH = (params['width'] * 1) + 30;
        TB_HEIGHT = (params['height'] * 1) + 40;

        var ajaxContentW = TB_WIDTH - 30, ajaxContentH = TB_HEIGHT - 45;

        if (url.indexOf('TB_iframe') != -1) {
            urlNoQuery = url.split('TB_');
            $("TB_window").innerHTML += "<div id='TB_title'><div id='TB_ajaxWindowTitle'>" + caption + "</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a></div></div><iframe frameborder='0' hspace='0' src='" + urlNoQuery[0] + "' id='TB_iframeContent' name='TB_iframeContent' style='width:" + (ajaxContentW + 29) + "px;height:" + (ajaxContentH + 17) + "px;' onload='TB_showWindow()'> </iframe>";
        }
        else {
            $("TB_window").innerHTML += "<div id='TB_title'><div id='TB_ajaxWindowTitle'>" + caption + "</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a></div></div><div id='TB_ajaxContent' style='width:" + ajaxContentW + "px;height:" + ajaxContentH + "px;'></div>";
        }

        $("TB_closeWindowButton").onclick = TB_remove;

        if (url.indexOf('TB_inline') != -1) {
            $("TB_ajaxContent").innerHTML = ($(params['inlineId']).innerHTML);
            TB_position();
            TB_showWindow();
        }
        else
            if (url.indexOf('TB_iframe') != -1) {
                TB_position();
                if (frames['TB_iframeContent'] == undefined) {//be nice to safari
                    $(document).keyup(function(e){
                        var key = e.keyCode;
                        if (key == 27) {
                            TB_remove()
                        }
                    });
                    TB_showWindow();
                }
            }
            else {
                var handlerFunc = function(){
                    TB_position();
                    TB_showWindow();
                };

				new Request.HTML({
                    method: 'get',
                    update: $("TB_ajaxContent"),
                    onComplete: handlerFunc
                }).get(url);
            }
    }

    window.onresize = function(){
        TB_position();
        TB_load_position();
        TB_overlaySize();
    }

    document.onkeyup = function(event){
        var event = new Event(event);
        if (event.code == 27) { // close
            TB_remove();
        }
    }

}

//helper functions below

function TB_showWindow(){
    //$("TB_load").dispose();
    //$("TB_window").setStyles({display:"block",opacity:'0'});

    if (TB_doneOnce == 0) {
        TB_doneOnce = 1;

        $('TB_window').set('tween', {
            duration: 250,
            onComplete: function(){
                if ($('TB_load')) {
                    $('TB_load').dispose();
                }
            }
        });
        $('TB_window').tween('opacity', 0, 1);

    }
    else {
        $('TB_window').setStyle('opacity', 1);
        if ($('TB_load')) {
            $('TB_load').dispose();
        }
    }
}

function TB_remove(){
    $("TB_overlay").onclick = null;
    document.onkeyup = null;
    document.onkeydown = null;

    if ($('TB_imageOff'))
        $("TB_imageOff").onclick = null;
    if ($('TB_closeWindowButton'))
        $("TB_closeWindowButton").onclick = null;
    if ($('TB_prev')) {
        $("TB_prev").onclick = null;
    }
    if ($('TB_next')) {
        $("TB_next").onclick = null;
    }


    $('TB_window').set('tween', {
        duration: 250,
        onComplete: function(){
            $('TB_window').dispose();
        }
    });
    $('TB_window').tween('opacity', 1, 0);



    $('TB_overlay').set('tween', {
        duration: 400,
        onComplete: function(){
            $('TB_overlay').dispose();
        }
    });
    $('TB_overlay').tween('opacity', 0.6, 0);

    window.onscroll = null;
    window.onresize = null;

    $('TB_HideSelect').dispose();
    TB_init();
    TB_doneOnce = 0;
    return false;
}

function TB_position(){
    $('TB_window').set('morph', {
        duration: 75
    });
    $('TB_window').morph({
		width: TB_WIDTH + 'px',
		left: (window.getScrollLeft() + (window.getWidth() - TB_WIDTH) / 2) + 'px',
		top: (window.getScrollTop() + (window.getHeight() - TB_HEIGHT) / 2) + 'px'
	});
}

function TB_overlaySize(){
    // we have to set this to 0px before so we can reduce the size / width of the overflow onresize
    $("TB_overlay").setStyles({
        "height": '0px',
        "width": '0px'
    });
    $("TB_HideSelect").setStyles({
        "height": '0px',
        "width": '0px'
    });
    $("TB_overlay").setStyles({
        "height": window.getScrollHeight() + 'px',
        "width": window.getScrollWidth() + 'px'
    });
    $("TB_HideSelect").setStyles({
        "height": window.getScrollHeight() + 'px',
        "width": window.getScrollWidth() + 'px'
    });
}

function TB_load_position(){
    if ($("TB_load")) {
        $("TB_load").setStyles({
            left: (window.getScrollLeft() + (window.getWidth() - 56) / 2) + 'px',
            top: (window.getScrollTop() + ((window.getHeight() - 20) / 2)) + 'px',
            display: "block"
        });
    }
}

function TB_parseQuery(query){
    // return empty object
    if (!query)
        return {};
    var params = {};

    // parse query
    var pairs = query.split(/[;&]/);
    for (var i = 0; i < pairs.length; i++) {
        var pair = pairs[i].split('=');
        if (!pair || pair.length != 2)
            continue;
        // unescape both key and value, replace "+" with spaces in value
        params[unescape(pair[0])] = unescape(pair[1]).replace(/\+/g, ' ');
    }
    return params;
}
window.jsTemplates = {};
var overtext=new Array();

var AdvancedFormValidator = new Class({
	Extends: FormValidator,

	makeAdvice: function(className, field, error, warn){
		var advice = this.parent(className, field, error, warn);

		if (["text", "password"].contains(field.get("type")) || field.get("tag") == "select") {
			advice.reveal = null;
			advice.addClass("validation-overfield");
			advice.setStyle("width", field.getSize().x-2);
		}

		advice.addEvent("click", function() {
			this.resetField(field);
			field.focus();
		}.bind(this));

		return advice;
	},

	insertAdvice: function(advice, field){
		if (field.hasClass("datePicker")) {
			advice.inject( field.getNext(), 'after' );
		} else {
			this.parent(advice, field);
		}
	}
});
/**Link esterni, apre una nuova pagina*/
function NewPage() {
	if(!document.getElementsByTagName ) { return; }
	var anchors = document.getElementsByTagName( "a" );
	for( var loop = 0; loop < anchors.length; loop++ ) {
		var anchor = anchors[ loop ];
		if( anchor.getAttribute( "href" ) && anchor.getAttribute( "rel" ) == "external" ) {
			anchor.target = "_blank";
		}
	}
}
function initLoad(){
	NewPage();
	$$('input[type="text"][title]').each(function(e) {
		overtext.include(new OverText(e));
	});
	$$('textarea[title]').each(function(e) {
		overtext.include(new OverText(e));
	});
	//if ($defined(overtext)) overtext.each(function(ar){ ar.repositionAll(); });
}
function initElementsDom() {
	window.scroller = new Fx.Scroll(window);
	window.smoothScroll = new Fx.SmoothScroll();
	$$('.waiter').each(function(elemW){
		elemW.store("waiter", new Waiter(elemW));
	});
	$$("form").each(function(elem) {
		//Security token
		var secToken = elem.getElement(".security");
		if (secToken && secToken.get("tag")=="input")
			new Request({
				url: "/antibotkey.ajax",
				data: {name: secToken.get("name")},
				onSuccess: function(key) {
					secToken.set("value", key);
				}
			}).send();

		//Validator
		elem.store("validator", new AdvancedFormValidator(elem, {
			warningPrefix: "",
			errorPrefix: ""
		}));
		if (elem.hasClass("target-blank")) elem.target = "_blank";
		if (elem.hasClass("waiter")) elem.store("waiter", new Waiter(elem));
		elem.addEvent("submit", function(e) {
			e = new Event(e);
			if (this.retrieve("validator").validate()) {
				var waiter = this.retrieve("waiter");
				if (waiter) waiter.start();
				return true;
			} else {
				e.stop();
				return false;
			}
		}.bindWithEvent(elem));
	});
	$$('a').each(function(e){
		var href=e.get('href');
		if ((href.indexOf('http://')==0)&&(href.indexOf('actg.ch')==-1))
			e.set('rel','external');
	});
	$$('.menuNavbar li').each(function(li){
		if (li.getElement('ul')) {
			li.addEvent('mouseenter',function(){
				li.getElement('ul').removeClass('hide');
			})
			li.addEvent('mouseleave',function(){
				li.getElement('ul').addClass('hide');
			})
		}
	});
}
window.addEvent('load', initLoad);
window.addEvent('domready', initElementsDom);
 
/*
 * Copyright (c) 2009 Simo Kinnunen.
 * Licensed under the MIT license.
 *
 * @version 1.06
 */
 

var Cufon=(function(){var m=function(){return m.replace.apply(null,arguments)};var x=m.DOM={ready:(function(){var C=false,E={loaded:1,complete:1};var B=[],D=function(){if(C){return}C=true;for(var F;F=B.shift();F()){}};if(document.addEventListener){document.addEventListener("DOMContentLoaded",D,false);window.addEventListener("pageshow",D,false)}if(!window.opera&&document.readyState){(function(){E[document.readyState]?D():setTimeout(arguments.callee,10)})()}if(document.readyState&&document.createStyleSheet){(function(){try{document.body.doScroll("left");D()}catch(F){setTimeout(arguments.callee,1)}})()}q(window,"load",D);return function(F){if(!arguments.length){D()}else{C?F():B.push(F)}}})(),root:function(){return document.documentElement||document.body}};var n=m.CSS={Size:function(C,B){this.value=parseFloat(C);this.unit=String(C).match(/[a-z%]*$/)[0]||"px";this.convert=function(D){return D/B*this.value};this.convertFrom=function(D){return D/this.value*B};this.toString=function(){return this.value+this.unit}},addClass:function(C,B){var D=C.className;C.className=D+(D&&" ")+B;return C},color:j(function(C){var B={};B.color=C.replace(/^rgba\((.*?),\s*([\d.]+)\)/,function(E,D,F){B.opacity=parseFloat(F);return"rgb("+D+")"});return B}),fontStretch:j(function(B){if(typeof B=="number"){return B}if(/%$/.test(B)){return parseFloat(B)/100}return{"ultra-condensed":0.5,"extra-condensed":0.625,condensed:0.75,"semi-condensed":0.875,"semi-expanded":1.125,expanded:1.25,"extra-expanded":1.5,"ultra-expanded":2}[B]||1}),getStyle:function(C){var B=document.defaultView;if(B&&B.getComputedStyle){return new a(B.getComputedStyle(C,null))}if(C.currentStyle){return new a(C.currentStyle)}return new a(C.style)},gradient:j(function(F){var G={id:F,type:F.match(/^-([a-z]+)-gradient\(/)[1],stops:[]},C=F.substr(F.indexOf("(")).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);for(var E=0,B=C.length,D;E<B;++E){D=C[E].split("=",2).reverse();G.stops.push([D[1]||E/(B-1),D[0]])}return G}),quotedList:j(function(E){var D=[],C=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,B;while(B=C.exec(E)){D.push(B[3]||B[1])}return D}),recognizesMedia:j(function(G){var E=document.createElement("style"),D,C,B;E.type="text/css";E.media=G;try{E.appendChild(document.createTextNode("/**/"))}catch(F){}C=g("head")[0];C.insertBefore(E,C.firstChild);D=(E.sheet||E.styleSheet);B=D&&!D.disabled;C.removeChild(E);return B}),removeClass:function(D,C){var B=RegExp("(?:^|\\s+)"+C+"(?=\\s|$)","g");D.className=D.className.replace(B,"");return D},supports:function(D,C){var B=document.createElement("span").style;if(B[D]===undefined){return false}B[D]=C;return B[D]===C},textAlign:function(E,D,B,C){if(D.get("textAlign")=="right"){if(B>0){E=" "+E}}else{if(B<C-1){E+=" "}}return E},textShadow:j(function(F){if(F=="none"){return null}var E=[],G={},B,C=0;var D=/(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;while(B=D.exec(F)){if(B[0]==","){E.push(G);G={};C=0}else{if(B[1]){G.color=B[1]}else{G[["offX","offY","blur"][C++]]=B[2]}}}E.push(G);return E}),textTransform:(function(){var B={uppercase:function(C){return C.toUpperCase()},lowercase:function(C){return C.toLowerCase()},capitalize:function(C){return C.replace(/\b./g,function(D){return D.toUpperCase()})}};return function(E,D){var C=B[D.get("textTransform")];return C?C(E):E}})(),whiteSpace:(function(){var D={inline:1,"inline-block":1,"run-in":1};var C=/^\s+/,B=/\s+$/;return function(H,F,G,E){if(E){if(E.nodeName.toLowerCase()=="br"){H=H.replace(C,"")}}if(D[F.get("display")]){return H}if(!G.previousSibling){H=H.replace(C,"")}if(!G.nextSibling){H=H.replace(B,"")}return H}})()};n.ready=(function(){var B=!n.recognizesMedia("all"),E=false;var D=[],H=function(){B=true;for(var K;K=D.shift();K()){}};var I=g("link"),J=g("style");function C(K){return K.disabled||G(K.sheet,K.media||"screen")}function G(M,P){if(!n.recognizesMedia(P||"all")){return true}if(!M||M.disabled){return false}try{var Q=M.cssRules,O;if(Q){search:for(var L=0,K=Q.length;O=Q[L],L<K;++L){switch(O.type){case 2:break;case 3:if(!G(O.styleSheet,O.media.mediaText)){return false}break;default:break search}}}}catch(N){}return true}function F(){if(document.createStyleSheet){return true}var L,K;for(K=0;L=I[K];++K){if(L.rel.toLowerCase()=="stylesheet"&&!C(L)){return false}}for(K=0;L=J[K];++K){if(!C(L)){return false}}return true}x.ready(function(){if(!E){E=n.getStyle(document.body).isUsable()}if(B||(E&&F())){H()}else{setTimeout(arguments.callee,10)}});return function(K){if(B){K()}else{D.push(K)}}})();function s(D){var C=this.face=D.face,B={"\u0020":1,"\u00a0":1,"\u3000":1};this.glyphs=D.glyphs;this.w=D.w;this.baseSize=parseInt(C["units-per-em"],10);this.family=C["font-family"].toLowerCase();this.weight=C["font-weight"];this.style=C["font-style"]||"normal";this.viewBox=(function(){var F=C.bbox.split(/\s+/);var E={minX:parseInt(F[0],10),minY:parseInt(F[1],10),maxX:parseInt(F[2],10),maxY:parseInt(F[3],10)};E.width=E.maxX-E.minX;E.height=E.maxY-E.minY;E.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")};return E})();this.ascent=-parseInt(C.ascent,10);this.descent=-parseInt(C.descent,10);this.height=-this.ascent+this.descent;this.spacing=function(L,N,E){var O=this.glyphs,M,K,G,P=[],F=0,J=-1,I=-1,H;while(H=L[++J]){M=O[H]||this.missingGlyph;if(!M){continue}if(K){F-=G=K[H]||0;P[I-1]-=G}F+=P[++I]=~~(M.w||this.w)+N+(B[H]?E:0);K=M.k}P.total=F;return P}}function f(){var C={},B={oblique:"italic",italic:"oblique"};this.add=function(D){(C[D.style]||(C[D.style]={}))[D.weight]=D};this.get=function(H,I){var G=C[H]||C[B[H]]||C.normal||C.italic||C.oblique;if(!G){return null}I={normal:400,bold:700}[I]||parseInt(I,10);if(G[I]){return G[I]}var E={1:1,99:0}[I%100],K=[],F,D;if(E===undefined){E=I>400}if(I==500){I=400}for(var J in G){if(!k(G,J)){continue}J=parseInt(J,10);if(!F||J<F){F=J}if(!D||J>D){D=J}K.push(J)}if(I<F){I=F}if(I>D){I=D}K.sort(function(M,L){return(E?(M>=I&&L>=I)?M<L:M>L:(M<=I&&L<=I)?M>L:M<L)?-1:1});return G[K[0]]}}function r(){function D(F,G){if(F.contains){return F.contains(G)}return F.compareDocumentPosition(G)&16}function B(G){var F=G.relatedTarget;if(!F||D(this,F)){return}C(this,G.type=="mouseover")}function E(F){C(this,F.type=="mouseenter")}function C(F,G){setTimeout(function(){var H=d.get(F).options;m.replace(F,G?h(H,H.hover):H,true)},10)}this.attach=function(F){if(F.onmouseenter===undefined){q(F,"mouseover",B);q(F,"mouseout",B)}else{q(F,"mouseenter",E);q(F,"mouseleave",E)}}}function u(){var C=[],D={};function B(H){var E=[],G;for(var F=0;G=H[F];++F){E[F]=C[D[G]]}return E}this.add=function(F,E){D[F]=C.push(E)-1};this.repeat=function(){var E=arguments.length?B(arguments):C,F;for(var G=0;F=E[G++];){m.replace(F[0],F[1],true)}}}function A(){var D={},B=0;function C(E){return E.cufid||(E.cufid=++B)}this.get=function(E){var F=C(E);return D[F]||(D[F]={})}}function a(B){var D={},C={};this.extend=function(E){for(var F in E){if(k(E,F)){D[F]=E[F]}}return this};this.get=function(E){return D[E]!=undefined?D[E]:B[E]};this.getSize=function(F,E){return C[F]||(C[F]=new n.Size(this.get(F),E))};this.isUsable=function(){return !!B}}function q(C,B,D){if(C.addEventListener){C.addEventListener(B,D,false)}else{if(C.attachEvent){C.attachEvent("on"+B,function(){return D.call(C,window.event)})}}}function v(C,B){var D=d.get(C);if(D.options){return C}if(B.hover&&B.hoverables[C.nodeName.toLowerCase()]){b.attach(C)}D.options=B;return C}function j(B){var C={};return function(D){if(!k(C,D)){C[D]=B.apply(null,arguments)}return C[D]}}function c(F,E){var B=n.quotedList(E.get("fontFamily").toLowerCase()),D;for(var C=0;D=B[C];++C){if(i[D]){return i[D].get(E.get("fontStyle"),E.get("fontWeight"))}}return null}function g(B){return document.getElementsByTagName(B)}function k(C,B){return C.hasOwnProperty(B)}function h(){var C={},B,F;for(var E=0,D=arguments.length;B=arguments[E],E<D;++E){for(F in B){if(k(B,F)){C[F]=B[F]}}}return C}function o(E,M,C,N,F,D){var K=document.createDocumentFragment(),H;if(M===""){return K}var L=N.separate;var I=M.split(p[L]),B=(L=="words");if(B&&t){if(/^\s/.test(M)){I.unshift("")}if(/\s$/.test(M)){I.push("")}}for(var J=0,G=I.length;J<G;++J){H=z[N.engine](E,B?n.textAlign(I[J],C,J,G):I[J],C,N,F,D,J<G-1);if(H){K.appendChild(H)}}return K}function l(D,M){var C=D.nodeName.toLowerCase();if(M.ignore[C]){return}var E=!M.textless[C];var B=n.getStyle(v(D,M)).extend(M);var F=c(D,B),G,K,I,H,L,J;if(!F){return}for(G=D.firstChild;G;G=I){K=G.nodeType;I=G.nextSibling;if(E&&K==3){if(H){H.appendData(G.data);D.removeChild(G)}else{H=G}if(I){continue}}if(H){D.replaceChild(o(F,n.whiteSpace(H.data,B,H,J),B,M,G,D),H);H=null}if(K==1){if(G.firstChild){if(G.nodeName.toLowerCase()=="cufon"){z[M.engine](F,null,B,M,G,D)}else{arguments.callee(G,M)}}J=G}}}var t=" ".split(/\s+/).length==0;var d=new A();var b=new r();var y=new u();var e=false;var z={},i={},w={autoDetect:false,engine:null,forceHitArea:false,hover:false,hoverables:{a:true},ignore:{applet:1,canvas:1,col:1,colgroup:1,head:1,iframe:1,map:1,optgroup:1,option:1,script:1,select:1,style:1,textarea:1,title:1,pre:1},printable:true,selector:(window.Sizzle||(window.jQuery&&function(B){return jQuery(B)})||(window.dojo&&dojo.query)||(window.Ext&&Ext.query)||(window.YAHOO&&YAHOO.util&&YAHOO.util.Selector&&YAHOO.util.Selector.query)||(window.$$&&function(B){return $$(B)})||(window.$&&function(B){return $(B)})||(document.querySelectorAll&&function(B){return document.querySelectorAll(B)})||g),separate:"words",textless:{dl:1,html:1,ol:1,table:1,tbody:1,thead:1,tfoot:1,tr:1,ul:1},textShadow:"none"};var p={words:/\s/.test("\u00a0")?/[^\S\u00a0]+/:/\s+/,characters:"",none:/^/};m.now=function(){x.ready();return m};m.refresh=function(){y.repeat.apply(y,arguments);return m};m.registerEngine=function(C,B){if(!B){return m}z[C]=B;return m.set("engine",C)};m.registerFont=function(D){if(!D){return m}var B=new s(D),C=B.family;if(!i[C]){i[C]=new f()}i[C].add(B);return m.set("fontFamily",'"'+C+'"')};m.replace=function(D,C,B){C=h(w,C);if(!C.engine){return m}if(!e){n.addClass(x.root(),"cufon-active cufon-loading");n.ready(function(){n.addClass(n.removeClass(x.root(),"cufon-loading"),"cufon-ready")});e=true}if(C.hover){C.forceHitArea=true}if(C.autoDetect){delete C.fontFamily}if(typeof C.textShadow=="string"){C.textShadow=n.textShadow(C.textShadow)}if(typeof C.color=="string"&&/^-/.test(C.color)){C.textGradient=n.gradient(C.color)}else{delete C.textGradient}if(!B){y.add(D,arguments)}if(D.nodeType||typeof D=="string"){D=[D]}n.ready(function(){for(var F=0,E=D.length;F<E;++F){var G=D[F];if(typeof G=="string"){m.replace(C.selector(G),C,true)}else{l(G,C)}}});return m};m.set=function(B,C){w[B]=C;return m};return m})();Cufon.registerEngine("canvas",(function(){var b=document.createElement("canvas");if(!b||!b.getContext||!b.getContext.apply){return}b=null;var a=Cufon.CSS.supports("display","inline-block");var e=!a&&(document.compatMode=="BackCompat"||/frameset|transitional/i.test(document.doctype.publicId));var f=document.createElement("style");f.type="text/css";f.appendChild(document.createTextNode(("cufon{text-indent:0;}@media screen,projection{cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;"+(e?"":"font-size:1px;line-height:1px;")+"}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden;text-indent:-10000in;}"+(a?"cufon canvas{position:relative;}":"cufon canvas{position:absolute;}")+"}@media print{cufon{padding:0;}cufon canvas{display:none;}}").replace(/;/g,"!important;")));document.getElementsByTagName("head")[0].appendChild(f);function d(p,h){var n=0,m=0;var g=[],o=/([mrvxe])([^a-z]*)/g,k;generate:for(var j=0;k=o.exec(p);++j){var l=k[2].split(",");switch(k[1]){case"v":g[j]={m:"bezierCurveTo",a:[n+~~l[0],m+~~l[1],n+~~l[2],m+~~l[3],n+=~~l[4],m+=~~l[5]]};break;case"r":g[j]={m:"lineTo",a:[n+=~~l[0],m+=~~l[1]]};break;case"m":g[j]={m:"moveTo",a:[n=~~l[0],m=~~l[1]]};break;case"x":g[j]={m:"closePath"};break;case"e":break generate}h[g[j].m].apply(h,g[j].a)}return g}function c(m,k){for(var j=0,h=m.length;j<h;++j){var g=m[j];k[g.m].apply(k,g.a)}}return function(V,w,P,t,C,W){var k=(w===null);if(k){w=C.alt}var A=V.viewBox;var m=P.getSize("fontSize",V.baseSize);var B=0,O=0,N=0,u=0;var z=t.textShadow,L=[];if(z){for(var U=z.length;U--;){var F=z[U];var K=m.convertFrom(parseFloat(F.offX));var I=m.convertFrom(parseFloat(F.offY));L[U]=[K,I];if(I<B){B=I}if(K>O){O=K}if(I>N){N=I}if(K<u){u=K}}}var Z=Cufon.CSS.textTransform(w,P).split("");var E=V.spacing(Z,~~m.convertFrom(parseFloat(P.get("letterSpacing"))||0),~~m.convertFrom(parseFloat(P.get("wordSpacing"))||0));if(!E.length){return null}var h=E.total;O+=A.width-E[E.length-1];u+=A.minX;var s,n;if(k){s=C;n=C.firstChild}else{s=document.createElement("cufon");s.className="cufon cufon-canvas";s.alt=w;n=document.createElement("canvas");s.appendChild(n);if(t.printable){var S=document.createElement("cufontext");S.appendChild(document.createTextNode(w));s.appendChild(S)}}var aa=s.style;var H=n.style;var j=m.convert(A.height);var Y=Math.ceil(j);var M=Y/j;var G=M*Cufon.CSS.fontStretch(P.get("fontStretch"));var J=h*G;var Q=Math.ceil(m.convert(J+O-u));var o=Math.ceil(m.convert(A.height-B+N));n.width=Q;n.height=o;H.width=Q+"px";H.height=o+"px";B+=A.minY;H.top=Math.round(m.convert(B-V.ascent))+"px";H.left=Math.round(m.convert(u))+"px";var r=Math.max(Math.ceil(m.convert(J)),0)+"px";if(a){aa.width=r;aa.height=m.convert(V.height)+"px"}else{aa.paddingLeft=r;aa.paddingBottom=(m.convert(V.height)-1)+"px"}var X=n.getContext("2d"),D=j/A.height;X.scale(D,D*M);X.translate(-u,-B);X.save();function T(){var x=V.glyphs,ab,l=-1,g=-1,y;X.scale(G,1);while(y=Z[++l]){var ab=x[Z[l]]||V.missingGlyph;if(!ab){continue}if(ab.d){X.beginPath();if(ab.code){c(ab.code,X)}else{ab.code=d("m"+ab.d,X)}X.fill()}X.translate(E[++g],0)}X.restore()}if(z){for(var U=z.length;U--;){var F=z[U];X.save();X.fillStyle=F.color;X.translate.apply(X,L[U]);T()}}var q=t.textGradient;if(q){var v=q.stops,p=X.createLinearGradient(0,A.minY,0,A.maxY);for(var U=0,R=v.length;U<R;++U){p.addColorStop.apply(p,v[U])}X.fillStyle=p}else{X.fillStyle=P.get("color")}T();return s}})());Cufon.registerEngine("vml",(function(){var e=document.namespaces;if(!e){return}e.add("cvml","urn:schemas-microsoft-com:vml");e=null;var b=document.createElement("cvml:shape");b.style.behavior="url(#default#VML)";if(!b.coordsize){return}b=null;var h=(document.documentMode||0)<8;document.write(('<style type="text/css">cufoncanvas{text-indent:0;}@media screen{cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}cufoncanvas{position:absolute;text-align:left;}cufon{display:inline-block;position:relative;vertical-align:'+(h?"middle":"text-bottom")+";}cufon cufontext{position:absolute;left:-10000in;font-size:1px;}a cufon{cursor:pointer}}@media print{cufon cufoncanvas{display:none;}}</style>").replace(/;/g,"!important;"));function c(i,j){return a(i,/(?:em|ex|%)$|^[a-z-]+$/i.test(j)?"1em":j)}function a(l,m){if(m==="0"){return 0}if(/px$/i.test(m)){return parseFloat(m)}var k=l.style.left,j=l.runtimeStyle.left;l.runtimeStyle.left=l.currentStyle.left;l.style.left=m.replace("%","em");var i=l.style.pixelLeft;l.style.left=k;l.runtimeStyle.left=j;return i}function f(l,k,j,n){var i="computed"+n,m=k[i];if(isNaN(m)){m=k.get(n);k[i]=m=(m=="normal")?0:~~j.convertFrom(a(l,m))}return m}var g={};function d(p){var q=p.id;if(!g[q]){var n=p.stops,o=document.createElement("cvml:fill"),i=[];o.type="gradient";o.angle=180;o.focus="0";o.method="sigma";o.color=n[0][1];for(var m=1,l=n.length-1;m<l;++m){i.push(n[m][0]*100+"% "+n[m][1])}o.colors=i.join(",");o.color2=n[l][1];g[q]=o}return g[q]}return function(ac,G,Y,C,K,ad,W){var n=(G===null);if(n){G=K.alt}var I=ac.viewBox;var p=Y.computedFontSize||(Y.computedFontSize=new Cufon.CSS.Size(c(ad,Y.get("fontSize"))+"px",ac.baseSize));var y,q;if(n){y=K;q=K.firstChild}else{y=document.createElement("cufon");y.className="cufon cufon-vml";y.alt=G;q=document.createElement("cufoncanvas");y.appendChild(q);if(C.printable){var Z=document.createElement("cufontext");Z.appendChild(document.createTextNode(G));y.appendChild(Z)}if(!W){y.appendChild(document.createElement("cvml:shape"))}}var ai=y.style;var R=q.style;var l=p.convert(I.height),af=Math.ceil(l);var V=af/l;var P=V*Cufon.CSS.fontStretch(Y.get("fontStretch"));var U=I.minX,T=I.minY;R.height=af;R.top=Math.round(p.convert(T-ac.ascent));R.left=Math.round(p.convert(U));ai.height=p.convert(ac.height)+"px";var F=Y.get("color");var ag=Cufon.CSS.textTransform(G,Y).split("");var L=ac.spacing(ag,f(ad,Y,p,"letterSpacing"),f(ad,Y,p,"wordSpacing"));if(!L.length){return null}var k=L.total;var x=-U+k+(I.width-L[L.length-1]);var ah=p.convert(x*P),X=Math.round(ah);var O=x+","+I.height,m;var J="r"+O+"ns";var u=C.textGradient&&d(C.textGradient);var o=ac.glyphs,S=0;var H=C.textShadow;var ab=-1,aa=0,w;while(w=ag[++ab]){var D=o[ag[ab]]||ac.missingGlyph,v;if(!D){continue}if(n){v=q.childNodes[aa];while(v.firstChild){v.removeChild(v.firstChild)}}else{v=document.createElement("cvml:shape");q.appendChild(v)}v.stroked="f";v.coordsize=O;v.coordorigin=m=(U-S)+","+T;v.path=(D.d?"m"+D.d+"xe":"")+"m"+m+J;v.fillcolor=F;if(u){v.appendChild(u.cloneNode(false))}var ae=v.style;ae.width=X;ae.height=af;if(H){var s=H[0],r=H[1];var B=Cufon.CSS.color(s.color),z;var N=document.createElement("cvml:shadow");N.on="t";N.color=B.color;N.offset=s.offX+","+s.offY;if(r){z=Cufon.CSS.color(r.color);N.type="double";N.color2=z.color;N.offset2=r.offX+","+r.offY}N.opacity=B.opacity||(z&&z.opacity)||1;v.appendChild(N)}S+=L[aa++]}var M=v.nextSibling,t,A;if(C.forceHitArea){if(!M){M=document.createElement("cvml:rect");M.stroked="f";M.className="cufon-vml-cover";t=document.createElement("cvml:fill");t.opacity=0;M.appendChild(t);q.appendChild(M)}A=M.style;A.width=X;A.height=af}else{if(M){q.removeChild(M)}}ai.width=Math.max(Math.ceil(p.convert(k*P)),0);if(h){var Q=Y.computedYAdjust;if(Q===undefined){var E=Y.get("lineHeight");if(E=="normal"){E="1em"}else{if(!isNaN(E)){E+="em"}}Y.computedYAdjust=Q=0.5*(a(ad,E)-parseFloat(ai.height))}if(Q){ai.marginTop=Math.ceil(Q)+"px";ai.marginBottom=Q+"px"}}return y}})());
/*!
 * Copyright Â© 1993 Bigelow & Holmes Inc. All rights reserved. Pat. Des.
 * 289,420. Pats. Pend.
 */
Cufon.registerFont({"w":286,"face":{"font-family":"Lucida Sans Unicode","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 6 2 3 5 4 2 2 4","ascent":"288","descent":"-72","x-height":"4","bbox":"-221 -412 498 158","underline-thickness":"17.9297","underline-position":"-27.0703","unicode-range":"U+0020-U+FEFF"},"glyphs":{" ":{"w":113},"!":{"d":"40,0r0,-35r34,0r0,35r-34,0xm44,-69r-4,-191r34,0r-4,191r-26,0","w":113},"\"":{"d":"24,-191r-4,-87r34,0r-4,87r-26,0xm85,-191r-5,-87r35,0r-4,87r-26,0","w":134},"#":{"d":"36,0r19,-78r-52,0r4,-22r54,0r15,-60r-57,0r4,-22r58,0r20,-78r22,0r-19,78r46,0r19,-78r23,0r-20,78r53,0r-4,22r-54,0r-15,60r57,0r-5,22r-58,0r-19,78r-23,0r20,-78r-46,0r-20,78r-22,0xm83,-100r46,0r16,-60r-47,0","w":227},"$":{"d":"185,-73v0,39,-26,66,-60,73r0,22r-18,0r0,-22v-21,0,-43,-5,-69,-15r0,-29v26,12,49,18,69,18r0,-93v-37,-26,-59,-34,-61,-79v-2,-36,26,-60,61,-62r0,-22r18,0r0,22v17,0,35,4,56,12r0,28v-22,-10,-41,-15,-56,-16r0,92v30,22,60,28,60,71xm125,-28v27,-8,38,-36,24,-60v-4,-5,-11,-12,-24,-21r0,81xm107,-155r0,-80v-29,8,-38,35,-25,59v4,6,13,13,25,21","w":227},"%":{"d":"4,7r205,-274r27,0r-205,274r-27,0xm113,-195v0,37,-21,65,-56,65v-35,0,-55,-28,-55,-65v0,-37,19,-65,55,-65v36,0,56,28,56,65xm57,-243v-40,1,-39,95,0,96v39,0,42,-96,0,-96xm239,-65v0,37,-21,65,-56,65v-35,0,-55,-28,-55,-65v0,-37,20,-65,55,-65v35,0,56,28,56,65xm183,-113v-40,1,-39,95,0,96v39,0,42,-96,0,-96","w":240},"&":{"d":"122,-267v32,-1,59,22,58,53v0,26,-19,49,-57,68v17,31,38,59,61,86v13,-18,17,-45,16,-78r34,0v0,38,-11,71,-34,99v11,13,23,26,36,39r-49,0r-13,-15v-56,47,-161,15,-161,-62v0,-40,21,-68,63,-82v-35,-50,-12,-107,46,-108xm88,-138v-69,20,-40,122,24,118v16,0,32,-5,47,-16v-25,-30,-49,-64,-71,-102xm120,-241v-37,0,-30,44,-10,73v25,-11,37,-27,37,-46v1,-16,-12,-27,-27,-27","w":251},"'":{"d":"28,-182r-8,-96r43,0r-9,96r-26,0","w":82},"(":{"d":"104,-254v-64,57,-65,225,0,282r0,24v-69,-41,-109,-167,-60,-259v16,-30,35,-54,60,-71r0,24","w":117},")":{"d":"13,28v65,-57,64,-225,0,-282r0,-24v69,42,109,168,60,260v-16,30,-35,53,-60,70r0,-24","w":117},"*":{"d":"146,-227r8,25r-53,12v0,-7,-1,-11,-5,-15xm137,-147r-22,15r-27,-47v6,-1,10,-4,12,-9xm58,-132r-21,-15r36,-41v2,5,7,8,13,9xm19,-202r8,-25r50,22v-4,3,-6,10,-4,15xm74,-260r26,0r-6,54v-4,-3,-11,-2,-15,0","w":173},"+":{"d":"134,0r0,-95r-95,0r0,-18r95,0r0,-95r18,0r0,95r95,0r0,18r-95,0r0,95r-18,0"},",":{"d":"35,56r0,-13v12,-2,18,-20,17,-43r-17,0r0,-43r44,0v3,50,-2,99,-44,99","w":113},"-":{"d":"26,-95r0,-22r156,0r0,22r-156,0","w":208},".":{"d":"35,0r0,-43r44,0r0,43r-44,0","w":113},"\/":{"d":"39,52r92,-312r19,0r-93,312r-18,0","w":188},"0":{"d":"114,-267v122,0,123,274,0,274v-122,0,-123,-274,0,-274xm114,-20v36,0,54,-36,54,-110v0,-74,-18,-111,-54,-111v-36,0,-54,37,-54,111v0,74,18,110,54,110","w":227},"1":{"d":"94,0r0,-234r-41,0r0,-22r76,-6r0,262r-35,0","w":227},"2":{"d":"36,-250v59,-33,150,-19,150,55v0,76,-107,103,-114,165r113,0r0,30r-155,0v-12,-90,119,-112,119,-194v0,-59,-70,-56,-113,-26r0,-30","w":227},"3":{"d":"188,-72v1,74,-78,93,-151,70r0,-32v54,26,111,18,114,-38v2,-41,-36,-56,-90,-54r0,-24v51,2,84,-13,84,-51v0,-50,-67,-46,-105,-25r0,-30v57,-21,141,-15,140,50v0,31,-19,52,-55,65v42,10,63,33,63,69","w":227},"4":{"d":"136,0r0,-74r-118,0r0,-26r118,-160r32,0r0,158r35,0r0,28r-35,0r0,74r-32,0xm52,-102r86,0r0,-116","w":227},"5":{"d":"185,-75v1,69,-71,95,-141,76r0,-31v46,21,104,10,104,-46v0,-49,-47,-63,-100,-58r0,-126r132,0r0,30r-101,0r0,69v61,0,106,28,106,86","w":227},"6":{"d":"24,-124v1,-81,26,-141,106,-143v16,0,35,3,58,10r0,30v-76,-32,-127,-12,-126,92v41,-61,140,-28,140,49v0,52,-37,93,-87,93v-64,0,-92,-59,-91,-131xm118,-20v32,0,49,-26,49,-60v0,-36,-18,-62,-50,-62v-28,-1,-54,23,-54,50v0,40,18,72,55,72","w":227},"7":{"d":"54,0v17,-92,80,-153,119,-228r-134,0r0,-32r167,0r0,32v-67,98,-104,175,-112,228r-40,0","w":227},"8":{"d":"117,7v-47,0,-86,-27,-86,-71v0,-31,18,-57,52,-78v-23,-17,-37,-26,-38,-58v0,-42,35,-67,78,-67v38,0,72,20,72,56v0,25,-17,48,-49,69v39,19,59,45,59,75v0,46,-40,74,-88,74xm119,-241v-35,-2,-57,36,-32,60v7,8,21,17,40,28v46,-23,51,-85,-8,-88xm118,-20v39,0,66,-36,43,-67v-9,-11,-41,-30,-59,-41v-23,20,-35,26,-36,59v-1,30,22,49,52,49","w":227},"9":{"d":"204,-140v-2,78,-30,147,-110,147v-14,0,-31,-4,-53,-9r0,-29v77,34,130,-11,125,-93v-44,65,-139,24,-139,-50v0,-50,36,-93,86,-93v63,0,93,58,91,127xm111,-241v-32,0,-49,26,-49,61v0,36,17,63,50,64v29,1,53,-23,53,-51v0,-39,-18,-74,-54,-74","w":227},":":{"d":"40,0r0,-35r34,0r0,35r-34,0xm40,-156r0,-35r34,0r0,35r-34,0","w":113},";":{"d":"40,56v-1,-22,15,-23,12,-56r-12,0r0,-35r34,0v2,43,-2,87,-34,91xm40,-156r0,-35r34,0r0,35r-34,0","w":113},"<":{"d":"247,0r-208,-104r208,-104r0,19r-169,85r169,85r0,19"},"=":{"d":"39,-63r0,-17r208,0r0,17r-208,0xm39,-128r0,-17r208,0r0,17r-208,0"},">":{"d":"39,0r0,-19r169,-85r-169,-85r0,-19r208,104"},"?":{"d":"44,0r0,-35r35,0r0,35r-35,0xm7,-257v67,-28,165,1,132,76v-15,34,-72,49,-60,112r-35,0v-11,-64,64,-91,64,-138v0,-44,-65,-39,-101,-21r0,-29","w":151},"@":{"d":"36,-103v0,73,84,113,150,77r6,18v-79,41,-178,-8,-176,-93v1,-87,71,-164,165,-166v63,-1,115,49,115,111v0,54,-41,103,-91,104v-43,1,-27,-39,-18,-61r-3,0v-21,41,-44,61,-68,61v-21,0,-34,-17,-34,-39v0,-65,41,-127,120,-115r24,0r-23,123v0,8,5,11,14,11v33,0,60,-46,60,-81v0,-54,-44,-94,-99,-94v-71,0,-142,71,-142,144xm195,-181v-57,-25,-85,30,-85,82v0,38,23,27,42,5v16,-19,41,-47,43,-87","w":309},"A":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113","w":248},"B":{"d":"192,-65v0,43,-29,65,-82,65r-76,0r0,-260v67,0,148,-8,148,57v0,35,-24,57,-54,67v43,13,64,37,64,71xm153,-69v0,-36,-40,-57,-83,-54r0,95v51,1,83,-1,83,-41xm70,-146v42,2,72,-10,74,-49v1,-30,-32,-40,-74,-38r0,87","w":207},"C":{"d":"57,-130v0,99,94,135,172,85r0,32v-96,50,-211,4,-211,-117v0,-117,98,-162,211,-125r0,34v-95,-40,-172,-12,-172,91","w":249},"D":{"d":"251,-136v0,82,-43,138,-130,136r-87,0r0,-260r86,0v89,-4,131,43,131,124xm212,-133v1,-83,-50,-107,-142,-100r0,205r48,0v69,1,92,-40,94,-105","w":269},"E":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-153,0","w":195},"F":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,88r92,0r0,27r-92,0r0,118r-36,0","w":193},"G":{"d":"57,-130v0,80,58,128,135,102r0,-84r37,0r0,105v-111,38,-214,-3,-211,-123v2,-84,45,-138,129,-137v26,0,53,4,82,12r0,34v-94,-41,-172,-12,-172,91","w":260},"H":{"d":"34,0r0,-260r36,0r0,110r124,0r0,-110r37,0r0,260r-37,0r0,-123r-124,0r0,123r-36,0","w":264},"I":{"d":"33,0r0,-260r37,0r0,260r-37,0","w":103},"J":{"d":"-32,16v43,15,75,5,75,-48r0,-228r37,0r0,227v2,69,-46,96,-112,81r0,-32","w":111},"K":{"d":"34,0r0,-260r34,0r0,128r105,-128r38,0r-102,124r120,136r-47,0r-114,-132r0,132r-34,0","w":235},"L":{"d":"34,0r0,-260r36,0r0,232r118,0r0,28r-154,0","w":191},"M":{"d":"34,0r0,-260r51,0r72,201r74,-201r46,0r0,260r-35,0r0,-212r-71,195r-36,0r-70,-195r0,212r-31,0","w":310},"N":{"d":"34,0r0,-260r36,0r131,201r0,-201r31,0r0,260r-36,0r-131,-201r0,201r-31,0","w":265},"O":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109","w":279},"P":{"d":"193,-192v-2,64,-52,93,-123,89r0,103r-36,0r0,-260v78,0,161,-11,159,68xm154,-189v0,-43,-38,-45,-84,-44r0,102v49,3,84,-13,84,-58","w":198},"Q":{"d":"140,-267v137,0,163,216,55,262v30,13,61,22,93,28r-23,29v-41,-13,-75,-29,-103,-47v-91,15,-144,-51,-144,-135v0,-78,46,-137,122,-137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109","w":279},"R":{"d":"190,-196v-1,38,-23,62,-53,74r87,122r-45,0r-74,-110r-35,0r0,110r-36,0r0,-260v73,-1,159,-10,156,64xm70,-138v47,2,80,-11,82,-54v2,-34,-38,-44,-82,-41r0,95","w":227},"S":{"d":"163,-110v38,53,-10,117,-78,117v-18,0,-40,-4,-67,-12r0,-36v57,39,145,18,111,-48v-32,-34,-110,-48,-110,-109v0,-65,78,-83,141,-59r0,34v-49,-22,-96,-27,-106,20v2,33,36,41,61,57v22,14,40,24,48,36","w":193},"T":{"d":"95,0r0,-233r-92,0r0,-27r222,0r0,27r-93,0r0,233r-37,0","w":227},"U":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102","w":249},"V":{"d":"105,0r-99,-260r37,0r81,213r77,-213r33,0r-95,260r-34,0","w":235},"W":{"d":"67,0r-67,-260r36,0r53,205r49,-205r36,0r46,203r57,-203r30,0r-73,260r-36,0r-46,-201r-48,201r-37,0","w":307},"X":{"d":"3,0r86,-131r-82,-129r44,0r62,98r66,-98r35,0r-83,126r85,134r-44,0r-66,-103r-68,103r-35,0","w":225},"Y":{"d":"90,0r0,-109r-87,-151r42,0r68,117r72,-117r35,0r-93,151r0,109r-37,0","w":224},"Z":{"d":"17,0r0,-30r139,-203r-131,0r0,-27r176,0r0,27r-140,203r140,0r0,30r-184,0","w":217},"[":{"d":"35,52r0,-330r69,0r0,26r-39,0r0,278r39,0r0,26r-69,0","w":117},"\\":{"d":"150,52r-19,0r-92,-312r18,0","w":188},"]":{"d":"82,-278r0,330r-69,0r0,-26r39,0r0,-278r-39,0r0,-26r69,0","w":117},"^":{"d":"114,-202r-66,133r-30,0r96,-191r95,191r-29,0","w":227},"_":{"d":"15,26r0,-26r150,0r0,26r-150,0","w":180},"`":{"d":"152,-226r-26,0r-57,-56r41,0","w":221},"a":{"d":"35,-181v53,-23,128,-24,128,45r0,87v1,23,6,31,25,29r2,19v-25,10,-52,6,-57,-23v-39,44,-115,36,-115,-24v0,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38","w":198},"b":{"d":"207,-101v0,86,-84,139,-138,79r-4,24r-30,0r0,-280r34,0r0,123v14,-27,36,-40,64,-40v50,0,74,41,74,94xm69,-46v45,47,101,19,101,-52v0,-83,-64,-82,-101,-35r0,87","w":226},"c":{"d":"59,-95v0,62,56,89,108,59r0,30v-80,32,-147,-12,-147,-91v0,-80,66,-113,145,-92r0,29v-60,-25,-106,2,-106,65","w":184},"d":{"d":"20,-89v0,-86,83,-141,137,-80r0,-109r35,0r0,278r-35,0r0,-36v-14,27,-35,40,-63,40v-49,0,-74,-40,-74,-93xm157,-145v-45,-47,-101,-19,-101,52v0,81,64,83,101,36r0,-88","w":226},"e":{"d":"103,-195v54,1,76,44,72,105r-120,0v6,69,60,81,120,56r0,28v-81,31,-155,-8,-155,-90v0,-53,32,-100,83,-99xm56,-116r85,0v0,-36,-14,-53,-40,-53v-27,0,-42,17,-45,53","w":200},"f":{"d":"143,-249v-37,-11,-71,-15,-67,32r0,26r48,0r0,26r-48,0r0,165r-35,0r0,-165r-27,0r0,-26r27,0v-9,-73,35,-107,102,-85r0,27","w":132},"g":{"d":"192,-191v-7,115,35,265,-93,265v-22,0,-44,-4,-64,-11r4,-30v48,25,123,23,118,-47r0,-30v-10,23,-32,39,-62,40v-50,1,-75,-41,-75,-93v0,-80,85,-132,137,-72r0,-22r35,0xm157,-145v-38,-46,-101,-20,-101,48v0,76,67,77,101,31r0,-79","w":224},"h":{"d":"156,-126v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-278r34,0r0,123v29,-56,122,-54,122,18r0,137r-35,0r0,-126","w":223},"i":{"d":"35,0r0,-191r34,0r0,191r-34,0xm35,-226r0,-34r34,0r0,34r-34,0","w":104},"j":{"d":"-27,37v38,19,67,17,67,-37r0,-191r35,0r0,191v3,67,-49,88,-102,65r0,-28xm40,-226r0,-34r35,0r0,34r-35,0","w":109},"k":{"d":"35,0r0,-278r34,0r0,180r81,-93r37,0r-77,89r93,102r-44,0r-90,-98r0,98r-34,0","w":210},"l":{"d":"35,0r0,-278r34,0r0,278r-34,0","w":104},"m":{"d":"187,-155v24,-56,117,-55,117,16r0,139r-35,0r0,-133v-6,-57,-57,-32,-82,5r0,128r-35,0r0,-133v-7,-56,-57,-33,-83,5r0,128r-34,0r0,-191r34,0r0,36v27,-49,99,-58,118,0","w":336},"n":{"d":"156,-126v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-191r34,0r0,36v29,-56,122,-54,122,18r0,137r-35,0r0,-126","w":223},"o":{"d":"202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74","w":221},"p":{"d":"207,-101v0,86,-84,139,-138,79r0,91r-34,0r0,-260r34,0r0,36v14,-27,36,-40,64,-40v50,0,74,41,74,94xm69,-46v45,47,101,19,101,-52v0,-83,-64,-82,-101,-35r0,87","w":226},"q":{"d":"20,-89v0,-86,83,-141,137,-80r0,-22r35,0r0,260r-35,0r0,-105v-14,27,-35,40,-63,40v-49,0,-74,-40,-74,-93xm157,-145v-45,-47,-101,-19,-101,52v0,81,64,83,101,36r0,-88","w":226},"r":{"d":"35,0r0,-191r34,0r0,36v16,-30,37,-43,71,-39r0,32v-33,-10,-52,6,-71,36r0,126r-34,0","w":147},"s":{"d":"144,-86v41,67,-42,113,-116,79r0,-31v23,11,42,16,59,16v18,0,34,-11,34,-28v0,-19,-30,-32,-48,-38v-68,-22,-52,-107,22,-107v12,0,33,2,47,6r0,29v-34,-11,-74,-19,-80,15v1,30,70,37,82,59","w":183},"t":{"d":"120,0v-46,14,-84,-7,-84,-53r0,-112r-24,0r0,-26r24,0r0,-35r35,-3r0,38r50,0r0,26r-50,0r0,106v-1,32,20,42,49,35r0,24","w":134},"u":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126","w":223},"v":{"d":"74,0r-71,-191r35,0r55,149r59,-149r32,0r-75,191r-35,0","w":186},"w":{"d":"57,0r-55,-191r34,0r42,148r45,-148r35,0r39,148r48,-148r30,0r-62,191r-35,0r-41,-148r-45,148r-35,0","w":277},"x":{"d":"15,0r73,-99r-70,-92r41,0r55,74r51,-74r34,0r-66,97r71,94r-41,0r-57,-76r-56,76r-35,0","w":220},"y":{"d":"46,69r31,-69r-74,-191r37,0r55,144r58,-144r33,0r-104,260r-36,0","w":188},"z":{"d":"22,0r0,-26r118,-139r-113,0r0,-26r155,0r0,26r-118,139r121,0r0,26r-163,0","w":206},"{":{"d":"93,52v-55,1,-73,-47,-56,-99v9,-28,3,-60,-33,-53r0,-26v77,6,-4,-101,43,-135v12,-9,26,-16,46,-17r0,26v-47,-2,-26,46,-25,84v0,22,-9,40,-26,55v34,25,27,73,19,117v1,14,14,24,32,22r0,26","w":117},"|":{"d":"59,52r0,-330r17,0r0,330r-17,0","w":134},"}":{"d":"24,-278v54,0,73,47,56,99v-9,27,-3,60,33,53r0,26v-77,-5,4,101,-43,136v-12,9,-26,15,-46,16r0,-26v50,3,25,-45,25,-84v0,-22,9,-40,26,-55v-35,-24,-27,-75,-18,-117v-1,-14,-16,-23,-33,-22r0,-26","w":117},"~":{"d":"79,-107v-20,-12,-35,9,-35,29r-26,0v-1,-49,44,-74,87,-45v23,15,77,48,78,-7r26,0v-1,92,-89,48,-130,23","w":227},"\u00c4":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113xm74,-282r0,-30r30,0r0,30r-30,0xm143,-282r0,-30r30,0r0,30r-30,0","w":248},"\u00c5":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113xm164,-321v0,21,-18,39,-39,39v-22,0,-40,-17,-40,-39v0,-22,18,-40,40,-40v22,0,39,18,39,40xm100,-321v0,13,12,24,25,24v13,0,24,-11,24,-24v0,-13,-11,-25,-24,-25v-14,0,-25,11,-25,25","w":248},"\u00c7":{"d":"57,-130v0,99,94,135,172,85r0,32v-96,50,-211,4,-211,-117v0,-117,98,-162,211,-125r0,34v-95,-40,-172,-12,-172,91xm176,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":249},"\u00c9":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-153,0xm80,-282r43,-56r40,0r-57,56r-26,0","w":195},"\u00d1":{"d":"34,0r0,-260r36,0r131,201r0,-201r31,0r0,260r-36,0r-131,-201r0,201r-31,0xm79,-282v-2,-46,42,-47,67,-27v15,12,26,8,28,-14r22,0v2,46,-41,48,-67,28v-15,-11,-26,-9,-28,13r-22,0","w":265},"\u00d6":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109xm90,-282r0,-30r30,0r0,30r-30,0xm159,-282r0,-30r30,0r0,30r-30,0","w":279},"\u00dc":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102xm75,-282r0,-30r30,0r0,30r-30,0xm144,-282r0,-30r30,0r0,30r-30,0","w":249},"\u00e1":{"d":"35,-181v53,-23,128,-24,128,45r0,87v1,23,6,31,25,29r2,19v-25,10,-52,6,-57,-23v-39,44,-115,36,-115,-24v0,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm74,-226r43,-56r40,0r-57,56r-26,0","w":198},"\u00e0":{"d":"35,-181v53,-23,128,-24,128,45r0,87v1,23,6,31,25,29r2,19v-25,10,-52,6,-57,-23v-39,44,-115,36,-115,-24v0,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm127,-226r-26,0r-57,-56r41,0","w":198},"\u00e2":{"d":"35,-181v53,-23,128,-24,128,45r0,87v1,23,6,31,25,29r2,19v-25,10,-52,6,-57,-23v-39,44,-115,36,-115,-24v0,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm39,-226r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":198},"\u00e4":{"d":"35,-181v53,-23,128,-24,128,45r0,87v1,23,6,31,25,29r2,19v-25,10,-52,6,-57,-23v-39,44,-115,36,-115,-24v0,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm50,-226r0,-30r30,0r0,30r-30,0xm119,-226r0,-30r30,0r0,30r-30,0","w":198},"\u00e3":{"d":"35,-181v53,-23,128,-24,128,45r0,87v1,23,6,31,25,29r2,19v-25,10,-52,6,-57,-23v-39,44,-115,36,-115,-24v0,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm41,-226v-2,-46,42,-47,67,-27v15,12,26,8,28,-14r22,0v2,46,-41,48,-67,28v-15,-11,-26,-9,-28,13r-22,0","w":198},"\u00e5":{"d":"35,-181v53,-23,128,-24,128,45r0,87v1,23,6,31,25,29r2,19v-25,10,-52,6,-57,-23v-39,44,-115,36,-115,-24v0,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm139,-265v0,21,-18,39,-39,39v-22,0,-40,-17,-40,-39v0,-22,18,-40,40,-40v22,0,39,18,39,40xm75,-265v0,13,12,24,25,24v13,0,24,-11,24,-24v0,-13,-11,-25,-24,-25v-14,0,-25,11,-25,25","w":198},"\u00e7":{"d":"59,-95v0,62,56,89,108,59r0,30v-80,32,-147,-12,-147,-91v0,-80,66,-113,145,-92r0,29v-60,-25,-106,2,-106,65xm144,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":184},"\u00e9":{"d":"103,-195v54,1,76,44,72,105r-120,0v6,69,60,81,120,56r0,28v-81,31,-155,-8,-155,-90v0,-53,32,-100,83,-99xm56,-116r85,0v0,-36,-14,-53,-40,-53v-27,0,-42,17,-45,53xm74,-226r43,-56r40,0r-57,56r-26,0","w":200},"\u00e8":{"d":"103,-195v54,1,76,44,72,105r-120,0v6,69,60,81,120,56r0,28v-81,31,-155,-8,-155,-90v0,-53,32,-100,83,-99xm56,-116r85,0v0,-36,-14,-53,-40,-53v-27,0,-42,17,-45,53xm126,-226r-26,0r-57,-56r41,0","w":200},"\u00ea":{"d":"103,-195v54,1,76,44,72,105r-120,0v6,69,60,81,120,56r0,28v-81,31,-155,-8,-155,-90v0,-53,32,-100,83,-99xm56,-116r85,0v0,-36,-14,-53,-40,-53v-27,0,-42,17,-45,53xm41,-226r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":200},"\u00eb":{"d":"103,-195v54,1,76,44,72,105r-120,0v6,69,60,81,120,56r0,28v-81,31,-155,-8,-155,-90v0,-53,32,-100,83,-99xm56,-116r85,0v0,-36,-14,-53,-40,-53v-27,0,-42,17,-45,53xm54,-226r0,-30r30,0r0,30r-30,0xm123,-226r0,-30r30,0r0,30r-30,0","w":200},"\u00ed":{"d":"35,0r0,-191r34,0r0,191r-34,0xm26,-226r43,-56r40,0r-57,56r-26,0","w":104},"\u00ec":{"d":"35,0r0,-191r34,0r0,191r-34,0xm78,-226r-26,0r-57,-56r41,0","w":104},"\u00ee":{"d":"35,0r0,-191r34,0r0,191r-34,0xm-10,-226r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":104},"\u00ef":{"d":"35,0r0,-191r34,0r0,191r-34,0xm2,-226r0,-30r30,0r0,30r-30,0xm71,-226r0,-30r30,0r0,30r-30,0","w":104},"\u00f1":{"d":"156,-126v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-191r34,0r0,36v29,-56,122,-54,122,18r0,137r-35,0r0,-126xm59,-226v-2,-46,42,-47,67,-27v15,12,26,8,28,-14r22,0v2,46,-41,48,-67,28v-15,-11,-26,-9,-28,13r-22,0","w":223},"\u00f3":{"d":"202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74xm84,-226r43,-56r40,0r-57,56r-26,0","w":221},"\u00f2":{"d":"202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74xm137,-226r-26,0r-57,-56r41,0","w":221},"\u00f4":{"d":"202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74xm49,-226r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":221},"\u00f6":{"d":"202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74xm61,-226r0,-30r30,0r0,30r-30,0xm130,-226r0,-30r30,0r0,30r-30,0","w":221},"\u00f5":{"d":"202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74xm52,-226v-2,-46,42,-47,67,-27v15,12,26,8,28,-14r22,0v2,46,-41,48,-67,28v-15,-11,-26,-9,-28,13r-22,0","w":221},"\u00fa":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126xm84,-226r43,-56r40,0r-57,56r-26,0","w":223},"\u00f9":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126xm137,-226r-26,0r-57,-56r41,0","w":223},"\u00fb":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126xm49,-226r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":223},"\u00fc":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126xm61,-226r0,-30r30,0r0,30r-30,0xm130,-226r0,-30r30,0r0,30r-30,0","w":223},"\u2020":{"d":"97,52r4,-199r-61,4r0,-26r61,4r-4,-95r34,0r-4,95r61,-4r0,26r-61,-4r4,199r-34,0","w":227},"\u00b0":{"d":"89,-228v0,21,-18,39,-39,39v-21,0,-39,-19,-39,-39v0,-20,19,-39,39,-39v20,-1,39,18,39,39xm29,-228v0,12,10,22,21,22v12,0,21,-11,22,-22v0,-11,-10,-21,-22,-21v-12,0,-21,9,-21,21","w":99},"\u00a2":{"d":"36,-130v0,-56,31,-92,81,-98r0,-32r17,0r0,32v16,1,32,3,50,8r0,30v-21,-7,-37,-12,-50,-13r0,148v16,0,33,-4,50,-12r0,26v-17,7,-34,11,-50,11r0,30r-17,0r0,-30v-47,-4,-81,-47,-81,-100xm117,-57r0,-144v-28,3,-43,26,-43,72v0,39,15,63,43,72","w":227},"\u00a3":{"d":"115,-126v1,48,-1,76,-30,96r107,0r0,30r-149,0r0,-30v38,-10,39,-49,37,-96r-31,0r0,-26r31,0v-5,-65,9,-116,69,-115v12,0,26,2,40,6r0,29v-34,-15,-74,-15,-74,32r0,48r38,0r0,26r-38,0","w":227},"\u00a7":{"d":"194,-2v0,65,-91,73,-155,48r0,-32v28,12,52,19,72,19v34,0,65,-24,44,-51v-29,-23,-115,-41,-115,-90v0,-18,8,-35,25,-52v-55,-38,-8,-107,58,-107v18,0,38,3,61,9r0,28v-44,-14,-103,-22,-112,22v1,27,35,30,55,41v62,16,85,69,38,118v19,11,29,27,29,47xm148,-60v26,-33,8,-57,-26,-72r-39,-17v-24,32,-15,57,27,73","w":227},"\u2022":{"d":"146,-103v0,18,-14,33,-32,33v-18,0,-33,-15,-33,-33v0,-18,15,-33,33,-33v18,0,32,15,32,33","w":227},"\u00b6":{"d":"38,-203v0,-69,76,-56,143,-57r0,312r-22,0r0,-291r-26,0r0,291r-21,0r0,-182v-43,-3,-74,-28,-74,-73","w":227},"\u00df":{"d":"118,-111v-52,-35,10,-77,10,-118v0,-18,-10,-27,-30,-27v-19,0,-29,13,-29,39r0,217r-34,0r0,-202v0,-55,13,-79,64,-80v33,0,64,14,64,46v5,18,-32,59,-36,77v10,35,78,61,78,106v0,56,-64,69,-111,47r0,-30v21,9,37,14,49,14v36,1,36,-46,9,-60","w":215},"\u00ae":{"d":"192,-189v0,43,-35,78,-78,78v-43,0,-78,-35,-78,-78v0,-42,36,-78,78,-78v42,0,78,36,78,78xm53,-189v0,33,28,61,61,61v33,0,61,-28,61,-61v0,-33,-28,-60,-61,-60v-33,0,-61,28,-61,60xm82,-141r0,-93v28,-1,63,-2,63,24v0,11,-6,20,-19,27r22,42r-20,0r-20,-38r-8,0r0,38r-18,0xm100,-192v27,7,38,-30,8,-29r-8,0r0,29","w":227},"\u00a9":{"d":"291,-130v0,74,-64,137,-137,137v-73,0,-137,-64,-137,-137v0,-74,63,-137,137,-137v74,0,137,63,137,137xm37,-130v0,61,53,117,117,117v64,0,117,-56,117,-117v0,-61,-53,-117,-117,-117v-64,0,-117,56,-117,117xm110,-130v0,53,51,72,94,48r0,21v-60,26,-121,-6,-121,-68v0,-65,55,-90,121,-73r0,22v-46,-24,-94,-3,-94,50","w":307},"\u2122":{"d":"55,-130r0,-112r-46,0r0,-18r120,0r0,18r-47,0r0,112r-27,0xm151,-130r0,-130r36,0r31,91r32,-91r32,0r0,130r-26,0r0,-98r-31,89r-22,0r-31,-91r0,100r-21,0","w":290},"\u00b4":{"d":"69,-226r43,-56r40,0r-57,56r-26,0","w":221},"\u00a8":{"d":"61,-226r0,-30r30,0r0,30r-30,0xm130,-226r0,-30r30,0r0,30r-30,0","w":221},"\u2260":{"d":"102,-9r18,-54r-81,0r0,-17r87,0r16,-48r-103,0r0,-17r109,0r18,-55r18,0r-18,55r81,0r0,17r-87,0r-16,48r103,0r0,17r-108,0r-19,54r-18,0"},"\u00c6":{"d":"3,0r152,-260r155,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-154,0r0,-73r-85,0r-42,73r-34,0xm95,-100r69,0r0,-118","w":326},"\u00d8":{"d":"193,-219v-61,-51,-136,2,-136,89v0,27,5,50,15,69xm87,-41v60,51,135,-2,135,-89v0,-28,-4,-50,-14,-69xm230,-228v66,77,26,235,-90,235v-29,0,-52,-8,-72,-23r-17,23r-31,0r30,-39v-66,-77,-28,-235,90,-235v28,0,51,7,72,22r17,-22r31,0","w":279},"\u221e":{"d":"236,-30v-39,-3,-47,-24,-70,-57v-19,38,-42,57,-67,57v-33,1,-60,-35,-60,-70v0,-40,27,-78,63,-78v41,0,48,25,72,59v22,-39,43,-59,65,-59v34,-1,60,34,60,71v0,40,-25,80,-63,77xm98,-151v-53,2,-53,106,3,104v22,0,40,-16,57,-49v-24,-37,-43,-55,-60,-55xm241,-56v54,-2,52,-105,-4,-103v-20,0,-39,16,-56,49v24,36,44,54,60,54","w":338},"\u00b1":{"d":"39,0r0,-17r208,0r0,17r-208,0xm134,-52r0,-69r-95,0r0,-18r95,0r0,-69r18,0r0,69r95,0r0,18r-95,0r0,69r-18,0"},"\u2264":{"d":"39,0r0,-17r208,0r0,17r-208,0xm247,-208r0,19r-161,64r161,65r0,18r-208,-83"},"\u2265":{"d":"247,0r-208,0r0,-17r208,0r0,17xm39,-208r208,83r-208,83r0,-18r161,-65r-161,-64r0,-19"},"\u00a5":{"d":"95,0r0,-61r-52,0r0,-26r52,0r0,-17r-52,0r0,-26r52,0r-81,-130r41,0r63,101r69,-101r31,0r-88,130r52,0r0,26r-52,0r0,17r52,0r0,26r-52,0r0,61r-35,0","w":227},"\u00b5":{"d":"35,69r0,-260r34,0r0,126v5,59,65,40,87,-2r0,-124r35,0r0,191r-35,0r0,-36v-22,38,-50,50,-87,32r0,73r-34,0","w":225},"\u2202":{"d":"39,-57v0,-74,91,-171,147,-91v7,-102,-78,-130,-139,-79v18,-36,43,-55,74,-55v56,0,76,57,76,122v0,80,-37,161,-105,164v-33,1,-53,-27,-53,-61xm72,-72v0,28,10,54,34,54v46,0,74,-63,79,-114v-13,-24,-28,-36,-47,-36v-38,0,-66,53,-66,96","w":235},"\u2211":{"d":"225,-215v-6,-13,6,-31,-14,-31r-124,0r101,113r-130,108r158,-1v18,1,15,-15,16,-31r20,0r0,57r-213,0r0,-25r118,-98r-109,-121r0,-16r196,0r0,45r-19,0","w":290},"\u220f":{"d":"200,-11v17,-2,31,3,31,-17r1,-218r-130,0r0,200v-2,31,5,35,32,35r0,11r-95,0v1,-4,-3,-12,3,-11v25,-1,31,-6,30,-35v-2,-63,5,-139,-4,-195v-3,-7,-18,-8,-29,-8r0,-11r256,0v-1,4,3,12,-3,11v-15,2,-29,-2,-29,17r0,204v-1,20,15,15,32,17r0,11r-95,0r0,-11","w":333},"\u03c0":{"d":"68,0r0,-160v-22,-1,-38,3,-55,12r0,-34v69,-20,171,-5,255,-9r0,31r-46,0v3,56,-10,123,14,160r-37,0v-20,-42,-8,-103,-11,-160r-85,0r0,160r-35,0","w":280},"\u222b":{"d":"91,-1v5,-108,-31,-266,52,-283v28,-6,37,40,10,42v-16,1,-20,-20,-9,-27v-18,-7,-27,7,-27,33v0,92,18,293,-52,288v-28,6,-37,-41,-10,-42v16,-1,20,18,9,27v19,8,26,-8,27,-38","w":208},"\u00aa":{"d":"22,-192v0,-30,30,-42,66,-40v7,-38,-32,-36,-56,-21r0,-19v33,-14,85,-12,82,28v4,22,-11,69,14,66r1,15v-17,6,-35,4,-39,-13v-21,26,-68,20,-68,-16xm88,-217v-38,-7,-56,31,-24,38v8,0,15,-4,24,-11r0,-27","w":151},"\u00ba":{"d":"136,-220v0,37,-21,60,-57,60v-36,0,-57,-24,-57,-60v0,-37,21,-60,57,-60v36,0,57,24,57,60xm79,-177v20,0,29,-15,29,-43v0,-28,-9,-43,-29,-43v-20,0,-30,15,-30,43v0,28,10,43,30,43","w":151},"\u2126":{"d":"282,-151v-4,64,-36,86,-82,128v30,-4,75,13,69,-32r19,0r0,55r-104,0r0,-23v39,-43,59,-85,59,-127v1,-56,-33,-104,-85,-104v-53,0,-86,48,-86,104v0,42,20,84,59,127r0,23r-104,0r0,-55r20,0v0,16,-2,31,16,31r52,1v-46,-43,-79,-64,-82,-127v-3,-67,55,-117,125,-117v68,0,128,49,124,116","w":315},"\u00e6":{"d":"18,-48v1,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29v42,-17,91,-23,119,7v56,-47,136,-14,127,84r-118,0v2,70,61,80,118,56r0,27v-56,18,-111,17,-139,-27v-22,26,-45,38,-69,38v-32,0,-55,-22,-55,-52xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm164,-114r80,0v0,-37,-13,-55,-38,-55v-25,0,-39,18,-42,55","w":306},"\u00f8":{"d":"179,-166v47,59,19,170,-68,170v-20,0,-39,-5,-54,-15r-11,15r-26,0r22,-29v-47,-58,-18,-170,69,-170v21,0,38,5,53,15r12,-15r26,0xm76,-34v41,33,89,-5,89,-61v0,-16,-3,-30,-8,-43xm145,-156v-41,-34,-89,4,-89,60v0,17,3,32,8,44","w":221},"\u00bf":{"d":"108,-191r0,35r-35,0r0,-35r35,0xm145,66v-67,27,-164,0,-133,-76v14,-34,73,-49,61,-111r35,0v10,64,-65,90,-65,137v0,44,66,39,102,21r0,29","w":151},"\u00a1":{"d":"74,-191r0,35r-34,0r0,-35r34,0xm70,-121r4,190r-34,0r4,-190r26,0","w":113},"\u00ac":{"d":"230,-52r0,-69r-191,0r0,-18r208,0r0,87r-17,0"},"\u221a":{"d":"36,-88r-5,-10r47,-23r69,138r136,-340r12,0r-143,358r-16,0r-69,-139","w":290},"\u0192":{"d":"151,-249v-36,-12,-70,-14,-67,32r0,26r48,0r0,26r-48,0r0,171v3,61,-47,79,-101,62r0,-28v35,13,67,15,67,-31r0,-174r-31,0r0,-26r31,0v-9,-73,34,-107,101,-85r0,27","w":140},"\u2248":{"d":"80,-77v-18,0,-31,18,-30,38r-11,0v3,-109,120,-14,168,-14v17,0,26,-13,29,-38r11,0v-5,109,-117,14,-167,14xm128,-140v-42,-23,-74,-23,-78,23r-11,0v3,-109,120,-14,168,-14v17,0,26,-13,29,-38r11,0v-1,80,-75,54,-119,29"},"\u2206":{"d":"39,0r0,-24r119,-238r12,0r112,238r0,24r-243,0xm53,-25r195,0r-94,-201","w":320},"\u00ab":{"d":"176,-160r-52,65r52,65r-18,13r-69,-78r69,-78xm106,-160r-52,65r52,65r-17,13r-69,-78r69,-78","w":188},"\u00bb":{"d":"13,-30r52,-65r-52,-65r17,-13r70,78r-70,78xm82,-30r52,-65r-52,-65r18,-13r69,78r-69,78","w":188},"\u2026":{"d":"43,0r0,-35r34,0r0,35r-34,0xm163,0r0,-35r34,0r0,35r-34,0xm283,0r0,-35r34,0r0,35r-34,0","w":360},"\u00a0":{"w":113},"\u00c0":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113xm151,-282r-26,0r-57,-56r41,0","w":248},"\u00c3":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113xm65,-282v-2,-46,42,-47,67,-27v15,12,26,8,28,-14r22,0v2,46,-41,48,-67,28v-15,-11,-26,-9,-28,13r-22,0","w":248},"\u00d5":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109xm81,-282v-2,-46,42,-47,67,-27v15,12,26,8,28,-14r22,0v2,46,-41,48,-67,28v-15,-11,-26,-9,-28,13r-22,0","w":279},"\u0152":{"d":"18,-130v0,-101,93,-171,180,-120r0,-10r146,0r0,27r-109,0r0,84r91,0r0,27r-90,0r-1,94r116,0r0,28r-153,0r0,-10v-87,51,-180,-19,-180,-120xm140,-21v66,2,58,-73,58,-139v-1,-49,-12,-79,-59,-79v-57,0,-82,48,-82,109v-1,62,27,107,83,109","w":360},"\u0153":{"d":"309,-7v-54,18,-113,16,-137,-24v-44,71,-163,25,-152,-64v-10,-88,105,-137,151,-65v14,-23,36,-35,64,-35v49,0,74,35,74,105r-119,0v2,70,62,81,119,56r0,27xm56,-95v0,41,16,73,54,73v30,0,45,-25,45,-76v0,-47,-15,-71,-45,-71v-39,0,-54,33,-54,74xm192,-114r80,0v0,-37,-13,-55,-38,-55v-25,0,-39,18,-42,55","w":334},"\u2013":{"d":"18,-95r0,-22r144,0r0,22r-144,0","w":180},"\u2014":{"d":"17,-95r0,-22r326,0r0,22r-326,0","w":360},"\u201c":{"d":"115,-278v1,23,-16,23,-13,57r13,0r0,34r-35,0v-2,-44,3,-86,35,-91xm54,-278v1,22,-15,24,-12,57r12,0r0,34r-34,0v-2,-43,3,-87,34,-91","w":134},"\u201d":{"d":"20,-187v-1,-22,15,-23,12,-56r-12,0r0,-35r34,0v2,43,-2,87,-34,91xm80,-187v-1,-23,16,-22,13,-56r-13,0r0,-35r35,0v2,44,-3,87,-35,91","w":134},"\u2018":{"d":"79,-278r0,13v-12,2,-18,21,-17,44r17,0r0,43r-44,0v-3,-50,2,-99,44,-100","w":113},"\u2019":{"d":"35,-178r0,-13v12,-3,18,-20,17,-43r-17,0r0,-44r44,0v3,50,-2,100,-44,100","w":113},"\u00f7":{"d":"126,-17r0,-35r34,0r0,35r-34,0xm39,-95r0,-18r208,0r0,18r-208,0xm126,-156r0,-35r34,0r0,35r-34,0"},"\u25ca":{"d":"136,7r-97,-137r97,-137r96,137xm136,-23r75,-107r-75,-107r-76,107","w":271},"\u00ff":{"d":"46,69r31,-69r-74,-191r37,0r55,144r58,-144r33,0r-104,260r-36,0xm47,-226r0,-30r30,0r0,30r-30,0xm116,-226r0,-30r30,0r0,30r-30,0","w":188},"\u0178":{"d":"90,0r0,-109r-87,-151r42,0r68,117r72,-117r35,0r-93,151r0,109r-37,0xm62,-282r0,-30r30,0r0,30r-30,0xm131,-282r0,-30r30,0r0,30r-30,0","w":224},"\u2215":{"d":"39,52r92,-312r19,0r-93,312r-18,0","w":188},"\u00a4":{"d":"67,-68r-34,34r-16,-15r35,-34v-22,-27,-21,-67,0,-94r-35,-34r16,-16r34,35v29,-21,65,-21,94,0r34,-35r15,16r-34,34v21,27,21,67,0,94r34,34r-15,15r-34,-34v-29,22,-65,21,-94,0xm62,-130v0,29,23,52,52,52v29,0,52,-23,52,-52v0,-29,-23,-52,-52,-52v-29,0,-52,23,-52,52","w":227},"\u2039":{"d":"106,-160r-52,65r52,65r-17,13r-69,-78r69,-78","w":119},"\u203a":{"d":"13,-30r52,-65r-52,-65r17,-13r70,78r-70,78","w":119},"\u2021":{"d":"97,52r4,-95r-61,4r0,-26r61,4r0,-86r-61,4r0,-26r61,4r-4,-95r34,0r-4,95r61,-4r0,26r-61,-4r0,86r61,-4r0,26r-61,-4r4,95r-34,0","w":227},"\u2219":{"d":"101,-42v-33,0,-62,-29,-62,-62v0,-33,29,-62,62,-62v33,0,62,29,62,62v0,33,-29,62,-62,62","w":201},"\u201a":{"d":"35,52r0,-13v12,-3,18,-17,17,-39r-17,0r0,-43r44,0v3,49,-2,94,-44,95","w":113},"\u201e":{"d":"20,56v-1,-22,15,-23,12,-56r-12,0r0,-35r34,0v2,43,-2,87,-34,91xm80,56v-1,-23,16,-22,13,-56r-13,0r0,-35r35,0v2,44,-3,87,-35,91","w":134},"\u2030":{"d":"4,7r205,-274r27,0r-205,274r-27,0xm113,-195v0,37,-21,65,-56,65v-35,0,-55,-28,-55,-65v0,-37,19,-65,55,-65v36,0,56,28,56,65xm57,-243v-40,1,-39,95,0,96v39,0,42,-96,0,-96xm239,-65v0,37,-21,65,-56,65v-35,0,-55,-28,-55,-65v0,-37,20,-65,55,-65v35,0,56,28,56,65xm183,-113v-40,1,-39,95,0,96v39,0,42,-96,0,-96xm362,-65v0,37,-20,65,-55,65v-35,0,-55,-27,-55,-65v0,-38,20,-65,55,-65v35,0,55,28,55,65xm278,-65v0,25,7,48,29,48v40,-1,39,-95,0,-96v-21,0,-29,23,-29,48","w":364},"\u00c2":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113xm63,-282r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":248},"\u00ca":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-153,0xm47,-282r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":195},"\u00c1":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113xm98,-282r43,-56r40,0r-57,56r-26,0","w":248},"\u00cb":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-153,0xm60,-282r0,-30r30,0r0,30r-30,0xm129,-282r0,-30r30,0r0,30r-30,0","w":195},"\u00c8":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-153,0xm135,-282r-26,0r-57,-56r41,0","w":195},"\u00cd":{"d":"33,0r0,-260r37,0r0,260r-37,0xm25,-282r43,-56r40,0r-57,56r-26,0","w":103},"\u00ce":{"d":"33,0r0,-260r37,0r0,260r-37,0xm-10,-282r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":103},"\u00cf":{"d":"33,0r0,-260r37,0r0,260r-37,0xm2,-282r0,-30r30,0r0,30r-30,0xm71,-282r0,-30r30,0r0,30r-30,0","w":103},"\u00cc":{"d":"33,0r0,-260r37,0r0,260r-37,0xm78,-282r-26,0r-57,-56r41,0","w":103},"\u00d3":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109xm113,-282r43,-56r40,0r-57,56r-26,0","w":279},"\u00d4":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109xm78,-282r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":279},"\u00d2":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109xm166,-282r-26,0r-57,-56r41,0","w":279},"\u00da":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102xm101,-282r43,-56r40,0r-57,56r-26,0","w":249},"\u00db":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102xm66,-282r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":249},"\u00d9":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102xm153,-282r-26,0r-57,-56r41,0","w":249},"\u0131":{"d":"35,0r0,-191r34,0r0,191r-34,0","w":104},"\u02c6":{"d":"49,-226r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":221},"\u02dc":{"d":"52,-226v-2,-46,42,-47,67,-27v15,12,26,8,28,-14r22,0v2,46,-41,48,-67,28v-15,-11,-26,-9,-28,13r-22,0","w":221},"\u02c9":{"d":"54,-226r0,-26r113,0r0,26r-113,0","w":221},"\u02d8":{"d":"169,-278v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":221},"\u02d9":{"d":"93,-226r0,-34r35,0r0,34r-35,0","w":221},"\u02da":{"d":"150,-265v0,21,-18,39,-39,39v-22,0,-40,-17,-40,-39v0,-22,18,-40,40,-40v22,0,39,18,39,40xm86,-265v0,13,12,24,25,24v13,0,24,-11,24,-24v0,-13,-11,-25,-24,-25v-14,0,-25,11,-25,25","w":221},"\u00b8":{"d":"151,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":221},"\u02dd":{"d":"42,-226r42,-56r34,0r-57,56r-19,0xm104,-226r42,-56r33,0r-56,56r-19,0","w":221},"\u02db":{"d":"148,60v-22,11,-61,4,-60,-23v0,-17,15,-40,46,-37v-15,9,-22,19,-22,31v0,17,22,20,36,15r0,14","w":221},"\u02c7":{"d":"172,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":221},"\u0141":{"d":"34,0r0,-109r-39,21r0,-30r39,-22r0,-120r36,0r0,100r39,-21r0,31r-39,21r0,101r118,0r0,28r-154,0","w":191},"\u0142":{"d":"34,0r0,-119r-39,21r0,-30r39,-21r0,-129r35,0r0,110r39,-20r0,29r-39,21r0,138r-35,0","w":104},"\u0160":{"d":"163,-110v38,53,-10,117,-78,117v-18,0,-40,-4,-67,-12r0,-36v57,39,145,18,111,-48v-32,-34,-110,-48,-110,-109v0,-65,78,-83,141,-59r0,34v-49,-22,-96,-27,-106,20v2,33,36,41,61,57v22,14,40,24,48,36xm162,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":193},"\u0161":{"d":"144,-86v41,67,-42,113,-116,79r0,-31v23,11,42,16,59,16v18,0,34,-11,34,-28v0,-19,-30,-32,-48,-38v-68,-22,-52,-107,22,-107v12,0,33,2,47,6r0,29v-34,-11,-74,-19,-80,15v1,30,70,37,82,59xm153,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":183},"\u017d":{"d":"17,0r0,-30r139,-203r-131,0r0,-27r176,0r0,27r-140,203r140,0r0,30r-184,0xm176,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":217},"\u017e":{"d":"22,0r0,-26r118,-139r-113,0r0,-26r155,0r0,26r-118,139r121,0r0,26r-163,0xm164,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":206},"\u00a6":{"d":"59,52r0,-130r17,0r0,130r-17,0xm59,-147r0,-131r17,0r0,131r-17,0","w":133},"\u00d0":{"d":"252,-136v0,81,-43,138,-131,136r-87,0r0,-119r-39,0r0,-28r39,0r0,-113r86,0v89,-4,132,44,132,124xm212,-133v0,-82,-49,-108,-141,-100r0,86r58,0r0,28r-58,0r0,91r47,0v69,1,93,-39,94,-105","w":269},"\u00f0":{"d":"19,-95v0,-63,46,-108,111,-93v-9,-17,-23,-32,-43,-44r-30,30r-15,-15r26,-26v-14,-6,-31,-9,-49,-9r0,-26v26,0,49,5,70,14r30,-30r15,15r-25,26v49,32,86,81,88,152v1,60,-33,105,-89,105v-55,0,-89,-43,-89,-99xm56,-94v0,40,16,72,53,72v35,-1,53,-33,53,-74v0,-47,-17,-70,-52,-70v-38,0,-54,32,-54,72","w":216},"\u00dd":{"d":"90,0r0,-109r-87,-151r42,0r68,117r72,-117r35,0r-93,151r0,109r-37,0xm86,-282r43,-56r40,0r-57,56r-26,0","w":224},"\u00fd":{"d":"46,69r31,-69r-74,-191r37,0r55,144r58,-144r33,0r-104,260r-36,0xm68,-226r43,-56r40,0r-57,56r-26,0","w":188},"\u00de":{"d":"193,-140v0,64,-52,93,-123,88r0,52r-36,0r0,-260r36,0r0,51v68,-2,123,3,123,69xm154,-138v0,-43,-38,-44,-84,-43r0,102v51,4,84,-13,84,-59","w":198},"\u00fe":{"d":"207,-101v0,86,-84,139,-138,79r0,91r-34,0r0,-347r34,0r0,123v14,-27,36,-40,64,-40v50,0,74,41,74,94xm69,-46v45,47,101,19,101,-52v0,-83,-64,-82,-101,-35r0,87","w":226},"\u2212":{"d":"39,-95r0,-18r208,0r0,18r-208,0"},"\u00d7":{"d":"39,-12r92,-92r-92,-92r12,-12r92,92r92,-92r12,12r-92,92r92,92r-12,12r-92,-92r-92,92"},"\u00b9":{"d":"72,-104r0,-139r-26,0r0,-15r52,-4r0,158r-26,0","w":151},"\u00b2":{"d":"30,-255v47,-27,120,7,88,59v-11,19,-58,46,-62,70r69,0r0,22r-99,0v-7,-57,72,-69,72,-116v0,-34,-43,-30,-68,-14r0,-21","w":151},"\u00b3":{"d":"28,-127v30,14,66,14,69,-19v2,-24,-22,-34,-55,-32r0,-17v30,2,52,-8,51,-29v-1,-29,-41,-27,-63,-14r0,-20v34,-12,89,-8,89,31v0,18,-11,31,-33,39v26,6,38,20,38,42v0,45,-53,53,-96,41r0,-22","w":151},"\u00bd":{"d":"44,-104r0,-139r-26,0r0,-15r52,-4r0,158r-26,0xm18,7r191,-274r24,0r-192,274r-23,0xm176,-151v47,-27,120,7,88,59v-11,19,-58,46,-62,70r69,0r0,22r-99,0v-7,-57,72,-69,72,-116v0,-34,-43,-30,-68,-14r0,-21","w":288},"\u00bc":{"d":"44,-104r0,-139r-26,0r0,-15r52,-4r0,158r-26,0xm27,7r191,-274r24,0r-192,274r-23,0xm225,0r0,-43r-71,0r0,-20r71,-93r24,0r0,93r22,0r0,20r-22,0r0,43r-24,0xm177,-63r48,0r0,-64","w":288},"\u00be":{"d":"18,-127v30,14,66,14,69,-19v2,-24,-22,-34,-55,-32r0,-17v30,2,52,-8,51,-29v-1,-29,-41,-27,-63,-14r0,-20v34,-12,89,-8,89,31v0,18,-11,31,-33,39v26,6,38,20,38,42v0,45,-53,53,-96,41r0,-22xm44,7r191,-274r24,0r-192,274r-23,0xm225,0r0,-43r-71,0r0,-20r71,-93r24,0r0,93r22,0r0,20r-22,0r0,43r-24,0xm177,-63r48,0r0,-64","w":288},"\u20a3":{"d":"51,0r0,-52r-37,0r0,-22r37,0r0,-186r145,0r0,27r-108,0r0,88r91,0r0,27r-91,0r0,44r37,0r0,22r-37,0r0,52r-37,0","w":227},"\u011e":{"d":"57,-130v0,80,58,128,135,102r0,-84r37,0r0,105v-111,38,-214,-3,-211,-123v2,-84,45,-138,129,-137v26,0,53,4,82,12r0,34v-94,-41,-172,-12,-172,91xm199,-334v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":260},"\u011f":{"d":"192,-191v-7,115,35,265,-93,265v-22,0,-44,-4,-64,-11r4,-30v48,25,123,23,118,-47r0,-30v-10,23,-32,39,-62,40v-50,1,-75,-41,-75,-93v0,-80,85,-132,137,-72r0,-22r35,0xm157,-145v-38,-46,-101,-20,-101,48v0,76,67,77,101,31r0,-79xm164,-278v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":224},"\u0130":{"d":"33,0r0,-260r37,0r0,260r-37,0xm34,-282r0,-34r35,0r0,34r-35,0","w":103},"\u015e":{"d":"163,-110v38,53,-10,117,-78,117v-18,0,-40,-4,-67,-12r0,-36v57,39,145,18,111,-48v-32,-34,-110,-48,-110,-109v0,-65,78,-83,141,-59r0,34v-49,-22,-96,-27,-106,20v2,33,36,41,61,57v22,14,40,24,48,36xm129,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":193},"\u015f":{"d":"144,-86v41,67,-42,113,-116,79r0,-31v23,11,42,16,59,16v18,0,34,-11,34,-28v0,-19,-30,-32,-48,-38v-68,-22,-52,-107,22,-107v12,0,33,2,47,6r0,29v-34,-11,-74,-19,-80,15v1,30,70,37,82,59xm127,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":183},"\u0106":{"d":"57,-130v0,99,94,135,172,85r0,32v-96,50,-211,4,-211,-117v0,-117,98,-162,211,-125r0,34v-95,-40,-172,-12,-172,91xm115,-282r43,-56r40,0r-57,56r-26,0","w":249},"\u0107":{"d":"59,-95v0,62,56,89,108,59r0,30v-80,32,-147,-12,-147,-91v0,-80,66,-113,145,-92r0,29v-60,-25,-106,2,-106,65xm78,-226r43,-56r40,0r-57,56r-26,0","w":184},"\u010c":{"d":"57,-130v0,99,94,135,172,85r0,32v-96,50,-211,4,-211,-117v0,-117,98,-162,211,-125r0,34v-95,-40,-172,-12,-172,91xm206,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":249},"\u010d":{"d":"59,-95v0,62,56,89,108,59r0,30v-80,32,-147,-12,-147,-91v0,-80,66,-113,145,-92r0,29v-60,-25,-106,2,-106,65xm170,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":184},"\u0111":{"d":"20,-89v0,-86,83,-141,137,-80r0,-48r-45,0r0,-22r45,0r0,-39r35,0r0,39r35,0r0,22r-35,0r0,217r-35,0r0,-36v-14,27,-35,40,-63,40v-49,0,-74,-40,-74,-93xm157,-145v-45,-47,-101,-19,-101,52v0,81,64,83,101,36r0,-88","w":226},"\u00ad":{"d":"20,-95r0,-26r78,0r0,26r-78,0","w":117},"\u00af":{"d":"15,-256r0,-26r150,0r0,26r-150,0","w":180},"\u00b7":{"d":"92,-82r0,-44r44,0r0,44r-44,0","w":227},"\u0100":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113xm68,-282r0,-26r113,0r0,26r-113,0","w":248},"\u0101":{"d":"35,-181v53,-23,128,-24,128,45r0,87v1,23,6,31,25,29r2,19v-25,10,-52,6,-57,-23v-39,44,-115,36,-115,-24v0,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm40,-226r0,-26r113,0r0,26r-113,0","w":198},"\u0102":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113xm182,-334v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":248},"\u0103":{"d":"35,-181v53,-23,128,-24,128,45r0,87v1,23,6,31,25,29r2,19v-25,10,-52,6,-57,-23v-39,44,-115,36,-115,-24v0,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm162,-278v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":198},"\u0104":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113xm237,60v-22,11,-61,4,-60,-23v0,-17,15,-40,46,-37v-15,9,-22,19,-22,31v0,17,22,20,36,15r0,14","w":248},"\u0105":{"d":"35,-181v53,-23,128,-24,128,45r0,87v1,23,6,31,25,29r2,19v-25,10,-52,6,-57,-23v-39,44,-115,36,-115,-24v0,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm184,60v-22,11,-61,4,-60,-23v0,-17,15,-40,46,-37v-15,9,-22,19,-22,31v0,17,22,20,36,15r0,14","w":198},"\u0108":{"d":"57,-130v0,99,94,135,172,85r0,32v-96,50,-211,4,-211,-117v0,-117,98,-162,211,-125r0,34v-95,-40,-172,-12,-172,91xm84,-282r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":249},"\u0109":{"d":"59,-95v0,62,56,89,108,59r0,30v-80,32,-147,-12,-147,-91v0,-80,66,-113,145,-92r0,29v-60,-25,-106,2,-106,65xm46,-226r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":184},"\u010a":{"d":"57,-130v0,99,94,135,172,85r0,32v-96,50,-211,4,-211,-117v0,-117,98,-162,211,-125r0,34v-95,-40,-172,-12,-172,91xm128,-282r0,-34r35,0r0,34r-35,0","w":249},"\u010b":{"d":"59,-95v0,62,56,89,108,59r0,30v-80,32,-147,-12,-147,-91v0,-80,66,-113,145,-92r0,29v-60,-25,-106,2,-106,65xm96,-226r0,-34r35,0r0,34r-35,0","w":184},"\u010e":{"d":"251,-136v0,82,-43,138,-130,136r-87,0r0,-260r86,0v89,-4,131,43,131,124xm212,-133v1,-83,-50,-107,-142,-100r0,205r48,0v69,1,92,-40,94,-105xm193,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":269},"\u010f":{"d":"20,-89v0,-86,83,-141,137,-80r0,-109r35,0r0,278r-35,0r0,-36v-14,27,-35,40,-63,40v-49,0,-74,-40,-74,-93xm157,-145v-45,-47,-101,-19,-101,52v0,81,64,83,101,36r0,-88xm227,-198r0,-10v10,-2,15,-16,14,-35r-14,0r0,-34r35,0v2,39,-2,79,-35,79","w":278},"\u0110":{"d":"252,-136v0,81,-43,138,-131,136r-87,0r0,-119r-39,0r0,-28r39,0r0,-113r86,0v89,-4,132,44,132,124xm212,-133v0,-82,-49,-108,-141,-100r0,86r58,0r0,28r-58,0r0,91r47,0v69,1,93,-39,94,-105","w":269},"\u0112":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-153,0xm55,-282r0,-26r113,0r0,26r-113,0","w":195},"\u0113":{"d":"103,-195v54,1,76,44,72,105r-120,0v6,69,60,81,120,56r0,28v-81,31,-155,-8,-155,-90v0,-53,32,-100,83,-99xm56,-116r85,0v0,-36,-14,-53,-40,-53v-27,0,-42,17,-45,53xm48,-226r0,-26r113,0r0,26r-113,0","w":200},"\u0114":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-153,0xm168,-334v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":195},"\u0115":{"d":"103,-195v54,1,76,44,72,105r-120,0v6,69,60,81,120,56r0,28v-81,31,-155,-8,-155,-90v0,-53,32,-100,83,-99xm56,-116r85,0v0,-36,-14,-53,-40,-53v-27,0,-42,17,-45,53xm163,-278v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":200},"\u0116":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-153,0xm91,-282r0,-34r35,0r0,34r-35,0","w":195},"\u0117":{"d":"103,-195v54,1,76,44,72,105r-120,0v6,69,60,81,120,56r0,28v-81,31,-155,-8,-155,-90v0,-53,32,-100,83,-99xm56,-116r85,0v0,-36,-14,-53,-40,-53v-27,0,-42,17,-45,53xm84,-226r0,-34r35,0r0,34r-35,0","w":200},"\u0118":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-153,0xm180,60v-22,11,-61,4,-60,-23v0,-17,15,-40,46,-37v-15,9,-22,19,-22,31v0,17,22,20,36,15r0,14","w":195},"\u0119":{"d":"103,-195v54,1,76,44,72,105r-120,0v6,69,60,81,120,56r0,28v-81,31,-155,-8,-155,-90v0,-53,32,-100,83,-99xm56,-116r85,0v0,-36,-14,-53,-40,-53v-27,0,-42,17,-45,53xm154,60v-22,11,-61,4,-60,-23v0,-17,15,-40,46,-37v-15,9,-22,19,-22,31v0,17,22,20,36,15r0,14","w":200},"\u011a":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-153,0xm171,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":195},"\u011b":{"d":"103,-195v54,1,76,44,72,105r-120,0v6,69,60,81,120,56r0,28v-81,31,-155,-8,-155,-90v0,-53,32,-100,83,-99xm56,-116r85,0v0,-36,-14,-53,-40,-53v-27,0,-42,17,-45,53xm161,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":200},"\u011c":{"d":"57,-130v0,80,58,128,135,102r0,-84r37,0r0,105v-111,38,-214,-3,-211,-123v2,-84,45,-138,129,-137v26,0,53,4,82,12r0,34v-94,-41,-172,-12,-172,91xm84,-282r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":260},"\u011d":{"d":"192,-191v-7,115,35,265,-93,265v-22,0,-44,-4,-64,-11r4,-30v48,25,123,23,118,-47r0,-30v-10,23,-32,39,-62,40v-50,1,-75,-41,-75,-93v0,-80,85,-132,137,-72r0,-22r35,0xm157,-145v-38,-46,-101,-20,-101,48v0,76,67,77,101,31r0,-79xm49,-226r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":224},"\u0120":{"d":"57,-130v0,80,58,128,135,102r0,-84r37,0r0,105v-111,38,-214,-3,-211,-123v2,-84,45,-138,129,-137v26,0,53,4,82,12r0,34v-94,-41,-172,-12,-172,91xm128,-282r0,-34r35,0r0,34r-35,0","w":260},"\u0121":{"d":"192,-191v-7,115,35,265,-93,265v-22,0,-44,-4,-64,-11r4,-30v48,25,123,23,118,-47r0,-30v-10,23,-32,39,-62,40v-50,1,-75,-41,-75,-93v0,-80,85,-132,137,-72r0,-22r35,0xm157,-145v-38,-46,-101,-20,-101,48v0,76,67,77,101,31r0,-79xm90,-226r0,-34r35,0r0,34r-35,0","w":224},"\u0122":{"d":"57,-130v0,80,58,128,135,102r0,-84r37,0r0,105v-111,38,-214,-3,-211,-123v2,-84,45,-138,129,-137v26,0,53,4,82,12r0,34v-94,-41,-172,-12,-172,91xm180,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":260},"\u0123":{"d":"192,-191v-7,115,35,265,-93,265v-22,0,-44,-4,-64,-11r4,-30v48,25,123,23,118,-47r0,-30v-10,23,-32,39,-62,40v-50,1,-75,-41,-75,-93v0,-80,85,-132,137,-72r0,-22r35,0xm157,-145v-38,-46,-101,-20,-101,48v0,76,67,77,101,31r0,-79xm123,-305r0,10v-10,2,-15,16,-14,35r14,0r0,34r-35,0v-2,-39,2,-79,35,-79","w":224},"\u0124":{"d":"34,0r0,-260r36,0r0,110r124,0r0,-110r37,0r0,260r-37,0r0,-123r-124,0r0,123r-36,0xm71,-282r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":264},"\u0125":{"d":"156,-126v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-278r34,0r0,123v29,-56,122,-54,122,18r0,137r-35,0r0,-126xm-10,-295r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":223},"\u0126":{"d":"204,-150r0,-41r-124,0r0,41r124,0xm241,0r-37,0r0,-123r-124,0r0,123r-37,0r0,-191r-34,0r0,-26r34,0r0,-43r37,0r0,43r124,0r0,-43r37,0r0,43r34,0r0,26r-34,0r0,191","w":284},"\u0127":{"d":"156,-126v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-217r-35,0r0,-22r35,0r0,-39r34,0r0,39r52,0r0,22r-52,0r0,62v29,-56,122,-54,122,18r0,137r-35,0r0,-126","w":223},"\u0128":{"d":"33,0r0,-260r37,0r0,260r-37,0xm-7,-282v-2,-46,42,-47,67,-27v15,12,26,8,28,-14r22,0v2,46,-41,48,-67,28v-15,-11,-26,-9,-28,13r-22,0","w":103},"\u0129":{"d":"35,0r0,-191r34,0r0,191r-34,0xm-7,-226v-2,-46,42,-47,67,-27v15,12,26,8,28,-14r22,0v2,46,-41,48,-67,28v-15,-11,-26,-9,-28,13r-22,0","w":104},"\u012a":{"d":"33,0r0,-260r37,0r0,260r-37,0xm-5,-282r0,-26r113,0r0,26r-113,0","w":103},"\u012b":{"d":"35,0r0,-191r34,0r0,191r-34,0xm-5,-226r0,-26r113,0r0,26r-113,0","w":104},"\u012c":{"d":"33,0r0,-260r37,0r0,260r-37,0xm110,-334v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":103},"\u012d":{"d":"35,0r0,-191r34,0r0,191r-34,0xm110,-278v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":104},"\u012e":{"d":"33,0r0,-260r37,0r0,260r-37,0xm84,60v-22,11,-61,4,-60,-23v0,-17,15,-40,46,-37v-15,9,-22,19,-22,31v0,17,22,20,36,15r0,14","w":103},"\u012f":{"d":"35,0r0,-191r34,0r0,191r-34,0xm35,-226r0,-34r34,0r0,34r-34,0xm83,60v-22,11,-61,4,-60,-23v0,-17,15,-40,46,-37v-15,9,-22,19,-22,31v0,17,22,20,36,15r0,14","w":104},"\u0132":{"d":"33,0r0,-260r37,0r0,260r-37,0xm71,16v43,15,75,5,75,-48r0,-228r37,0r0,227v2,69,-46,96,-112,81r0,-32","w":214},"\u0133":{"d":"35,0r0,-191r34,0r0,191r-34,0xm35,-226r0,-34r34,0r0,34r-34,0xm72,37v38,19,67,17,67,-37r0,-191r35,0r0,191v3,67,-49,88,-102,65r0,-28xm139,-226r0,-34r35,0r0,34r-35,0","w":208},"\u0134":{"d":"-32,16v43,15,75,5,75,-48r0,-228r37,0r0,227v2,69,-46,96,-112,81r0,-32xm0,-282r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":111},"\u0135":{"d":"-27,37v38,19,67,17,67,-37r0,-191r35,0r0,191v3,67,-49,88,-102,65r0,-28xm-4,-226r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":109},"\u0136":{"d":"34,0r0,-260r34,0r0,128r105,-128r38,0r-102,124r120,136r-47,0r-114,-132r0,132r-34,0xm154,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":235},"\u0137":{"d":"35,0r0,-278r34,0r0,180r81,-93r37,0r-77,89r93,102r-44,0r-90,-98r0,98r-34,0xm144,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":210},"\u0138":{"d":"35,0r0,-191r34,0r0,93r81,-93r37,0r-77,89r93,102r-44,0r-90,-98r0,98r-34,0","w":210},"\u0139":{"d":"34,0r0,-260r36,0r0,232r118,0r0,28r-154,0xm30,-282r43,-56r40,0r-57,56r-26,0","w":191},"\u013a":{"d":"35,0r0,-278r34,0r0,278r-34,0xm26,-295r43,-56r40,0r-57,56r-26,0","w":104},"\u013b":{"d":"34,0r0,-260r36,0r0,232r118,0r0,28r-154,0xm143,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":191},"\u013c":{"d":"35,0r0,-278r34,0r0,278r-34,0xm86,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":104},"\u013d":{"d":"34,0r0,-260r36,0r0,232r118,0r0,28r-154,0xm122,-181r0,-10v10,-2,15,-16,14,-35r-14,0r0,-34r35,0v2,39,-2,79,-35,79","w":191},"\u013e":{"d":"35,0r0,-278r34,0r0,278r-34,0xm104,-198r0,-10v10,-2,15,-16,14,-35r-14,0r0,-34r35,0v2,39,-2,79,-35,79","w":104},"\u013f":{"d":"34,0r0,-260r36,0r0,232r118,0r0,28r-154,0xm130,-113r0,-34r35,0r0,34r-35,0","w":191},"\u0140":{"d":"35,0r0,-278r34,0r0,278r-34,0xm104,-122r0,-34r35,0r0,34r-35,0","w":104},"\u0143":{"d":"34,0r0,-260r36,0r131,201r0,-201r31,0r0,260r-36,0r-131,-201r0,201r-31,0xm107,-282r43,-56r40,0r-57,56r-26,0","w":265},"\u0144":{"d":"156,-126v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-191r34,0r0,36v29,-56,122,-54,122,18r0,137r-35,0r0,-126xm82,-226r43,-56r40,0r-57,56r-26,0","w":223},"\u0145":{"d":"34,0r0,-260r36,0r131,201r0,-201r31,0r0,260r-36,0r-131,-201r0,201r-31,0xm162,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":265},"\u0146":{"d":"156,-126v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-191r34,0r0,36v29,-56,122,-54,122,18r0,137r-35,0r0,-126xm151,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":223},"\u0147":{"d":"34,0r0,-260r36,0r131,201r0,-201r31,0r0,260r-36,0r-131,-201r0,201r-31,0xm194,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":265},"\u0148":{"d":"156,-126v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-191r34,0r0,36v29,-56,122,-54,122,18r0,137r-35,0r0,-126xm174,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":223},"\u0149":{"d":"199,-126v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-191r34,0r0,36v29,-56,122,-54,122,18r0,137r-35,0r0,-126xm13,-198r0,-10v10,-2,15,-16,14,-35r-14,0r0,-34r35,0v2,39,-2,79,-35,79","w":223},"\u014a":{"d":"150,43v27,12,57,3,51,-36r-136,-208r0,201r-31,0r0,-260r36,0r131,201r0,-201r31,0r0,276v2,46,-38,68,-82,54r0,-27","w":265},"\u014b":{"d":"156,-126v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-191r34,0r0,36v29,-56,122,-54,122,18r0,153v2,46,-39,68,-83,54r0,-27v26,12,48,2,48,-33r0,-136","w":223},"\u014c":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109xm83,-282r0,-26r113,0r0,26r-113,0","w":279},"\u014d":{"d":"202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74xm54,-226r0,-26r113,0r0,26r-113,0","w":221},"\u014e":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109xm198,-334v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":279},"\u014f":{"d":"202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74xm169,-278v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":221},"\u0150":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109xm100,-282r42,-56r34,0r-57,56r-19,0xm162,-282r42,-56r33,0r-56,56r-19,0","w":279},"\u0151":{"d":"202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74xm70,-226r42,-56r34,0r-57,56r-19,0xm132,-226r42,-56r33,0r-56,56r-19,0","w":221},"\u0154":{"d":"190,-196v-1,38,-23,62,-53,74r87,122r-45,0r-74,-110r-35,0r0,110r-36,0r0,-260v73,-1,159,-10,156,64xm70,-138v47,2,80,-11,82,-54v2,-34,-38,-44,-82,-41r0,95xm83,-282r43,-56r40,0r-57,56r-26,0","w":227},"\u0155":{"d":"35,0r0,-191r34,0r0,36v16,-30,37,-43,71,-39r0,32v-33,-10,-52,6,-71,36r0,126r-34,0xm57,-226r43,-56r40,0r-57,56r-26,0","w":147},"\u0156":{"d":"190,-196v-1,38,-23,62,-53,74r87,122r-45,0r-74,-110r-35,0r0,110r-36,0r0,-260v73,-1,159,-10,156,64xm70,-138v47,2,80,-11,82,-54v2,-34,-38,-44,-82,-41r0,95xm146,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":227},"\u0157":{"d":"35,0r0,-191r34,0r0,36v16,-30,37,-43,71,-39r0,32v-33,-10,-52,6,-71,36r0,126r-34,0xm93,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":147},"\u0158":{"d":"190,-196v-1,38,-23,62,-53,74r87,122r-45,0r-74,-110r-35,0r0,110r-36,0r0,-260v73,-1,159,-10,156,64xm70,-138v47,2,80,-11,82,-54v2,-34,-38,-44,-82,-41r0,95xm166,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":227},"\u0159":{"d":"35,0r0,-191r34,0r0,36v16,-30,37,-43,71,-39r0,32v-33,-10,-52,6,-71,36r0,126r-34,0xm150,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":147},"\u015a":{"d":"163,-110v38,53,-10,117,-78,117v-18,0,-40,-4,-67,-12r0,-36v57,39,145,18,111,-48v-32,-34,-110,-48,-110,-109v0,-65,78,-83,141,-59r0,34v-49,-22,-96,-27,-106,20v2,33,36,41,61,57v22,14,40,24,48,36xm75,-282r43,-56r40,0r-57,56r-26,0","w":193},"\u015b":{"d":"144,-86v41,67,-42,113,-116,79r0,-31v23,11,42,16,59,16v18,0,34,-11,34,-28v0,-19,-30,-32,-48,-38v-68,-22,-52,-107,22,-107v12,0,33,2,47,6r0,29v-34,-11,-74,-19,-80,15v1,30,70,37,82,59xm61,-226r43,-56r40,0r-57,56r-26,0","w":183},"\u015c":{"d":"163,-110v38,53,-10,117,-78,117v-18,0,-40,-4,-67,-12r0,-36v57,39,145,18,111,-48v-32,-34,-110,-48,-110,-109v0,-65,78,-83,141,-59r0,34v-49,-22,-96,-27,-106,20v2,33,36,41,61,57v22,14,40,24,48,36xm36,-282r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":193},"\u015d":{"d":"144,-86v41,67,-42,113,-116,79r0,-31v23,11,42,16,59,16v18,0,34,-11,34,-28v0,-19,-30,-32,-48,-38v-68,-22,-52,-107,22,-107v12,0,33,2,47,6r0,29v-34,-11,-74,-19,-80,15v1,30,70,37,82,59xm31,-226r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":183},"\u0162":{"d":"95,0r0,-233r-92,0r0,-27r222,0r0,27r-93,0r0,233r-37,0xm150,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":227},"\u0163":{"d":"120,0v-46,14,-84,-7,-84,-53r0,-112r-24,0r0,-26r24,0r0,-35r35,-3r0,38r50,0r0,26r-50,0r0,106v-1,32,20,42,49,35r0,24xm123,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":134},"\u0164":{"d":"95,0r0,-233r-92,0r0,-27r222,0r0,27r-93,0r0,233r-37,0xm175,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":227},"\u0165":{"d":"120,0v-46,14,-84,-7,-84,-53r0,-112r-24,0r0,-26r24,0r0,-35r35,-3r0,38r50,0r0,26r-50,0r0,106v-1,32,20,42,49,35r0,24xm101,-222r0,-10v10,-2,15,-16,14,-35r-14,0r0,-34r35,0v2,39,-2,79,-35,79","w":207},"\u0166":{"d":"132,0r-37,0r0,-126r-53,0r0,-26r53,0r0,-81r-92,0r0,-27r222,0r0,27r-93,0r0,81r54,0r0,26r-54,0r0,126","w":227},"\u0167":{"d":"120,0v-46,14,-84,-7,-84,-53r0,-47r-32,0r0,-21r32,0r0,-44r-24,0r0,-26r24,0r0,-35r35,-3r0,38r50,0r0,26r-50,0r0,44r50,0r0,21r-50,0v-3,44,-2,91,49,76r0,24","w":134},"\u0168":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102xm66,-282v-2,-46,42,-47,67,-27v15,12,26,8,28,-14r22,0v2,46,-41,48,-67,28v-15,-11,-26,-9,-28,13r-22,0","w":249},"\u0169":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126xm52,-226v-2,-46,42,-47,67,-27v15,12,26,8,28,-14r22,0v2,46,-41,48,-67,28v-15,-11,-26,-9,-28,13r-22,0","w":223},"\u016a":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102xm71,-282r0,-26r113,0r0,26r-113,0","w":249},"\u016b":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126xm54,-226r0,-26r113,0r0,26r-113,0","w":223},"\u016c":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102xm186,-334v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":249},"\u016d":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126xm169,-278v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":223},"\u016e":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102xm164,-317v0,21,-18,39,-39,39v-22,0,-40,-17,-40,-39v0,-22,18,-40,40,-40v22,0,39,18,39,40xm100,-317v0,13,12,24,25,24v13,0,24,-11,24,-24v0,-13,-11,-25,-24,-25v-14,0,-25,11,-25,25","w":249},"\u016f":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126xm150,-265v0,21,-18,39,-39,39v-22,0,-40,-17,-40,-39v0,-22,18,-40,40,-40v22,0,39,18,39,40xm86,-265v0,13,12,24,25,24v13,0,24,-11,24,-24v0,-13,-11,-25,-24,-25v-14,0,-25,11,-25,25","w":223},"\u0170":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102xm87,-282r42,-56r34,0r-57,56r-19,0xm149,-282r42,-56r33,0r-56,56r-19,0","w":249},"\u0171":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126xm67,-226r42,-56r34,0r-57,56r-19,0xm129,-226r42,-56r33,0r-56,56r-19,0","w":223},"\u0172":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102xm178,60v-22,11,-61,4,-60,-23v0,-17,15,-40,46,-37v-15,9,-22,19,-22,31v0,17,22,20,36,15r0,14","w":249},"\u0173":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126xm186,60v-22,11,-61,4,-60,-23v0,-17,15,-40,46,-37v-15,9,-22,19,-22,31v0,17,22,20,36,15r0,14","w":223},"\u0174":{"d":"67,0r-67,-260r36,0r53,205r49,-205r36,0r46,203r57,-203r30,0r-73,260r-36,0r-46,-201r-48,201r-37,0xm94,-282r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":307},"\u0175":{"d":"57,0r-55,-191r34,0r42,148r45,-148r35,0r39,148r48,-148r30,0r-62,191r-35,0r-41,-148r-45,148r-35,0xm79,-226r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":277},"\u0176":{"d":"90,0r0,-109r-87,-151r42,0r68,117r72,-117r35,0r-93,151r0,109r-37,0xm54,-282r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":224},"\u0177":{"d":"46,69r31,-69r-74,-191r37,0r55,144r58,-144r33,0r-104,260r-36,0xm35,-226r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":188},"\u0179":{"d":"17,0r0,-30r139,-203r-131,0r0,-27r176,0r0,27r-140,203r140,0r0,30r-184,0xm84,-282r43,-56r40,0r-57,56r-26,0","w":217},"\u017a":{"d":"22,0r0,-26r118,-139r-113,0r0,-26r155,0r0,26r-118,139r121,0r0,26r-163,0xm72,-226r43,-56r40,0r-57,56r-26,0","w":206},"\u017b":{"d":"17,0r0,-30r139,-203r-131,0r0,-27r176,0r0,27r-140,203r140,0r0,30r-184,0xm96,-282r0,-34r35,0r0,34r-35,0","w":217},"\u017c":{"d":"22,0r0,-26r118,-139r-113,0r0,-26r155,0r0,26r-118,139r121,0r0,26r-163,0xm86,-226r0,-34r35,0r0,34r-35,0","w":206},"\u0180":{"d":"207,-101v0,86,-84,139,-138,79r-4,24r-30,0r0,-219r-35,0r0,-22r35,0r0,-39r34,0r0,39r46,0r0,22r-46,0r0,62v14,-27,36,-40,64,-40v50,0,74,41,74,94xm69,-46v45,47,101,19,101,-52v0,-83,-64,-82,-101,-35r0,87","w":226},"\u0181":{"d":"237,-65v0,43,-29,65,-82,65r-77,0r0,-233v-42,-6,-54,22,-41,54r-29,0v-14,-52,12,-81,70,-81v67,0,149,-9,148,57v0,35,-23,57,-53,67v43,13,64,37,64,71xm198,-69v0,-36,-40,-57,-83,-54r0,95v52,1,83,-1,83,-41xm115,-146v42,2,72,-11,74,-49v1,-29,-31,-41,-74,-38r0,87","w":251},"\u0182":{"d":"192,-79v2,74,-73,83,-158,79r0,-260r145,0r0,27r-109,0r0,84v71,-5,120,12,122,70xm155,-77v0,-43,-38,-45,-85,-44r0,94v50,2,84,-8,85,-50","w":209},"\u0183":{"d":"207,-101v0,86,-84,139,-138,79r-4,24r-30,0r0,-280r137,0r0,26r-103,0r0,97v14,-27,36,-40,64,-40v50,0,74,41,74,94xm69,-46v45,47,101,19,101,-52v0,-83,-64,-82,-101,-35r0,87","w":226},"\u0184":{"d":"192,-79v2,74,-73,83,-158,79r0,-260r36,0r0,111v71,-5,120,12,122,70xm155,-77v0,-43,-38,-45,-85,-44r0,94v50,2,84,-8,85,-50","w":204},"\u0185":{"d":"36,0r0,-191r34,0r0,77v56,-3,92,15,92,56v0,53,-62,62,-126,58xm70,-26v32,2,55,-8,55,-32v0,-22,-23,-31,-55,-29r0,61","w":177},"\u0186":{"d":"192,-131v0,-99,-94,-134,-172,-84r0,-32v96,-50,211,-4,211,117v0,117,-98,162,-211,125r0,-35v94,42,172,13,172,-91","w":249},"\u0187":{"d":"57,-130v0,99,94,135,172,85r0,32v-96,50,-211,4,-211,-117v0,-105,78,-157,184,-131v-4,-58,29,-83,81,-69r0,28v-31,-12,-54,-3,-54,39r0,42v-95,-40,-172,-12,-172,91","w":249},"\u0188":{"d":"20,-97v0,-69,46,-106,119,-97v-6,-65,22,-102,81,-84r0,26v-30,-11,-55,-4,-55,38r0,54v-60,-25,-106,2,-106,65v0,62,56,89,108,59r0,30v-80,32,-147,-12,-147,-91","w":191},"\u0189":{"d":"252,-136v0,81,-43,138,-131,136r-87,0r0,-119r-39,0r0,-28r39,0r0,-113r86,0v89,-4,132,44,132,124xm212,-133v0,-82,-49,-108,-141,-100r0,86r58,0r0,28r-58,0r0,91r47,0v69,1,93,-39,94,-105","w":269},"\u018a":{"d":"296,-136v0,82,-43,138,-131,136r-87,0r0,-233v-42,-6,-54,22,-41,54r-29,0v-14,-52,12,-81,70,-81r87,0v89,-4,131,44,131,124xm257,-133v1,-82,-50,-107,-142,-100r0,205r47,0v69,1,94,-40,95,-105","w":314},"\u018b":{"d":"17,-79v2,-58,51,-75,122,-70r0,-84r-109,0r0,-27r146,0r0,260v-85,4,-161,-4,-159,-79xm54,-77v1,42,34,52,85,50r0,-94v-46,-1,-85,1,-85,44","w":209},"\u018c":{"d":"20,-89v0,-86,83,-141,137,-80r0,-83r-103,0r0,-26r138,0r0,278r-35,0r0,-36v-14,27,-35,40,-63,40v-49,0,-74,-40,-74,-93xm157,-145v-45,-47,-101,-19,-101,52v0,81,64,83,101,36r0,-88","w":226},"\u018d":{"d":"106,-282v50,0,87,40,87,88v0,41,-23,71,-67,88v32,18,61,28,61,62v0,50,-76,55,-127,43r0,-29v27,9,84,17,92,-11v-27,-51,-132,-62,-132,-150v0,-52,36,-91,86,-91xm105,-256v-45,0,-62,67,-39,103v6,10,18,20,35,30v37,-13,55,-37,55,-72v0,-32,-21,-61,-51,-61","w":212},"\u018e":{"d":"162,-260r0,260r-146,0r0,-28r109,0r0,-83r-91,0r0,-27r91,0r0,-95r-116,0r0,-27r153,0","w":195},"\u018f":{"d":"189,-132v2,-55,-36,-105,-88,-104v-26,0,-52,6,-79,19r0,-33v98,-46,204,5,204,120v0,75,-41,136,-111,137v-67,1,-98,-51,-95,-139r169,0xm186,-103r-126,0v-8,80,60,105,102,60v13,-15,20,-35,24,-60","w":243},"\u0190":{"d":"65,-72v2,54,62,62,113,38r0,32v-71,23,-152,3,-152,-70v0,-35,22,-62,49,-72v-66,-32,-48,-123,35,-123v23,0,44,4,63,11r0,28v-38,-18,-102,-20,-102,28v0,34,30,47,69,46r0,27v-41,-1,-77,17,-75,55","w":189},"\u0191":{"d":"71,-118v-4,86,29,223,-88,187r0,-28v30,12,51,7,51,-36r0,-265r145,0r0,27r-108,0r0,88r91,0r0,27r-91,0","w":193},"\u0193":{"d":"57,-130v0,80,58,128,135,102r0,-84r37,0r0,105v-111,38,-211,-3,-211,-123v0,-105,78,-157,184,-131v-4,-58,29,-83,81,-69r0,28v-31,-12,-54,-3,-54,39r0,42v-94,-41,-172,-12,-172,91","w":260},"\u0194":{"d":"118,74v-66,-5,-49,-73,-16,-119r-100,-215r38,0r81,172r81,-172r32,0r-97,209v12,19,29,54,31,79v1,26,-24,48,-50,46xm118,-17v-7,16,-16,39,-16,47v0,12,5,18,16,18v12,0,17,-7,17,-19v0,-9,-5,-25,-17,-46","w":236},"\u0195":{"d":"219,-25v61,-1,65,-113,46,-166r37,0v20,87,-10,195,-94,195v-62,0,-52,-68,-52,-130v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-278r34,0r0,123v29,-56,122,-54,122,18v0,41,-17,112,28,112","w":327},"\u0196":{"d":"67,-84v-5,56,20,69,65,54r0,29v-62,23,-102,-7,-102,-81r0,-178r37,0r0,176","w":144},"\u0197":{"d":"48,-125r-44,0r0,-27r44,0r0,-108r37,0r0,108r43,0r0,27r-43,0r0,125r-37,0r0,-125","w":132},"\u0198":{"d":"68,-133v35,-61,77,-130,146,-130v12,0,24,3,34,9r0,32v-66,-43,-111,39,-142,84r123,138r-48,0r-113,-132r0,132r-34,0r0,-260r34,0r0,127","w":239},"\u0199":{"d":"121,-256v-67,-1,-49,90,-52,158r81,-93r37,0r-77,89r93,102r-44,0r-90,-98r0,98r-34,0r0,-173v-3,-93,55,-125,134,-102r0,31v-16,-8,-31,-12,-48,-12","w":210},"\u019a":{"d":"48,-128r-44,0r0,-26r44,0r0,-124r34,0r0,124r44,0r0,26r-44,0r0,128r-34,0r0,-128","w":130},"\u019b":{"d":"20,-278v49,1,64,10,80,47r44,-19r9,20r-44,19r58,131v13,30,26,55,41,80r-39,0v-26,-41,-44,-90,-65,-136r-63,136r-33,0r80,-173r-10,-24r-44,19r-9,-20r44,-19v-10,-21,-19,-31,-49,-30r0,-31","w":213},"\u019c":{"d":"243,-27v32,0,55,-25,69,-49r0,-184r37,0r0,260r-37,0r0,-38v-32,55,-120,66,-138,-3v-23,32,-50,48,-82,48v-46,0,-63,-30,-62,-87r0,-180r37,0r0,181v1,32,5,52,33,52v25,0,49,-16,71,-49r0,-184r37,0r0,181v1,33,5,52,35,52","w":382},"\u019d":{"d":"-15,43v27,12,49,2,49,-34r0,-269r36,0r131,201r0,-201r32,0r0,260r-36,0r-132,-201r0,217v3,46,-37,68,-80,54r0,-27","w":265},"\u019e":{"d":"156,-126v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-191r34,0r0,36v29,-56,122,-54,122,18r0,206r-35,0r0,-195","w":223},"\u019f":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm58,-120v3,57,26,99,82,99v56,0,79,-42,82,-99r-164,0xm222,-149v2,-76,-88,-120,-139,-66v-15,15,-22,37,-25,66r164,0","w":279},"\u01a0":{"d":"140,-267v31,1,90,22,89,-22v0,-9,-2,-17,-6,-25r29,0v10,35,0,67,-31,77v27,24,41,60,41,107v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-79,45,-139,122,-137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109","w":279},"\u01a1":{"d":"110,-195v31,1,84,16,80,-26v0,-9,-2,-17,-5,-25r27,0v8,38,1,70,-34,78v49,58,22,172,-67,172v-58,0,-91,-40,-91,-99v0,-59,33,-101,90,-100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74","w":225},"\u01a2":{"d":"18,-131v0,-78,47,-137,123,-136v31,0,57,9,78,27v46,-44,132,-38,132,50r0,259r-37,0r0,-252v7,-61,-41,-66,-77,-37v57,85,15,227,-97,227v-76,0,-122,-60,-122,-138xm57,-130v0,63,26,108,83,109v57,0,83,-47,83,-109v0,-62,-27,-110,-83,-110v-57,0,-83,48,-83,110","w":381},"\u01a3":{"d":"56,-95v-1,41,18,73,55,73v37,0,54,-33,54,-74v1,-41,-18,-73,-55,-73v-39,0,-54,32,-54,74xm20,-96v0,-87,95,-128,153,-76v42,-43,116,-26,116,54r0,187r-35,0r0,-176v7,-61,-32,-72,-65,-44v34,67,0,155,-78,155v-58,0,-91,-40,-91,-100","w":321},"\u01a4":{"d":"237,-192v-2,64,-51,93,-122,89r0,103r-37,0r0,-233v-42,-6,-54,22,-41,54r-29,0v-14,-52,12,-81,70,-81v78,0,161,-11,159,68xm198,-189v0,-43,-36,-46,-83,-44r0,102v49,3,83,-13,83,-58","w":243},"\u01a5":{"d":"207,-101v0,86,-84,139,-138,79r0,91r-34,0r0,-242v-3,-93,55,-125,134,-102r0,31v-16,-8,-31,-12,-48,-12v-49,1,-52,44,-52,101v14,-27,36,-40,64,-40v50,0,74,41,74,94xm69,-46v45,47,101,19,101,-52v0,-83,-64,-82,-101,-35r0,87","w":226},"\u01a6":{"d":"190,-196v-1,38,-23,62,-53,74r87,175r-41,0r-78,-164r-35,0r0,111r-36,0r0,-295r36,0r0,35v64,-3,122,3,120,64xm70,-138v46,2,79,-12,81,-54v2,-35,-37,-44,-81,-41r0,95","w":228},"\u01a7":{"d":"64,-89v-24,28,2,68,40,68v19,0,43,-6,72,-20r0,36v-73,27,-156,10,-158,-64v-3,-79,107,-70,122,-134v-10,-46,-58,-42,-106,-20r0,-34v63,-23,141,-7,141,59v0,62,-80,73,-111,109","w":193},"\u01a8":{"d":"90,-79v-41,13,-32,57,7,57v17,0,36,-5,59,-16r0,31v-57,22,-126,13,-128,-46v-1,-41,35,-52,68,-65v34,-13,34,-52,-8,-51v-11,0,-27,3,-46,9v2,-11,-6,-31,7,-31v52,-12,103,0,106,49v2,30,-34,53,-65,63","w":183},"\u01a9":{"d":"9,0r0,-33r100,-97r-92,-103r0,-27r179,0r0,27r-130,0r88,97r-107,103r155,0r0,33r-193,0","w":209},"\u01aa":{"d":"136,-17v0,60,25,78,71,56r0,29v-64,19,-106,-6,-106,-85r0,-158v-39,31,-94,-2,-94,-48v0,-34,27,-59,61,-59v100,0,68,168,68,265xm33,-223v0,36,48,44,68,20v1,-33,-10,-54,-35,-53v-18,0,-33,14,-33,33","w":189},"\u01ab":{"d":"120,-24v9,66,-19,113,-83,94r0,-27v29,13,53,-1,48,-39v-72,-4,-44,-100,-49,-169r-24,0r0,-26r24,0r0,-35r35,-3r0,38r50,0r0,26r-50,0r0,106v-1,32,20,42,49,35","w":134},"\u01ac":{"d":"8,-178v-14,-53,11,-82,70,-82r161,0r0,27r-92,0r0,233r-37,0r0,-233v-36,1,-80,-7,-79,29v0,9,2,18,6,26r-29,0","w":241},"\u01ad":{"d":"118,-251v-38,-19,-54,14,-47,60r50,0r0,26r-50,0r0,106v-1,32,20,42,49,35r0,24v-46,14,-84,-7,-84,-53r0,-112r-24,0r0,-26r24,0v-9,-63,21,-105,82,-87r0,27","w":134},"\u01ae":{"d":"183,69v-50,15,-88,-5,-88,-65r0,-237r-92,0r0,-27r222,0r0,27r-93,0r0,238v-6,43,22,48,51,36r0,28","w":227},"\u01af":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165v36,-2,81,8,79,-29v0,-9,-2,-17,-6,-25r29,0v14,52,-11,86,-70,81r0,138v2,69,-28,100,-91,102","w":296},"\u01b0":{"d":"154,-191v36,-2,82,10,78,-30v0,-9,-2,-17,-5,-25r26,0v13,49,-6,83,-64,81r0,165r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124","w":263},"\u01b1":{"d":"141,-21v53,0,83,-39,82,-95v0,-51,-19,-90,-59,-117r0,-27r107,0r0,27r-71,0v42,32,62,71,62,119v1,69,-51,121,-121,121v-70,0,-122,-52,-121,-121v0,-48,20,-87,62,-119r-71,0r0,-27r107,0r0,27v-79,40,-87,213,23,212","w":281},"\u01b2":{"d":"122,7v-63,-4,-92,-40,-92,-116r0,-151r37,0r0,158v-3,50,18,81,59,81v104,0,78,-176,40,-239r44,0v37,93,32,274,-88,267","w":256},"\u01b3":{"d":"-6,-254v79,-36,110,51,130,110r71,-116r35,0r-93,151r0,109r-37,0r0,-103v-18,-37,-40,-159,-106,-116r0,-35","w":229},"\u01b4":{"d":"73,0r-73,-191r38,0r54,143v30,-64,49,-154,92,-201v16,-17,43,-17,69,-10r0,31v-53,-22,-64,22,-81,64r-93,233r-37,0","w":241},"\u01b5":{"d":"17,0r0,-30r63,-92r-40,0r0,-27r59,0r57,-84r-131,0r0,-27r176,0r0,27r-58,84r43,0r0,27r-62,0r-63,92r140,0r0,30r-184,0","w":217},"\u01b6":{"d":"182,-165r-46,54r40,0r0,22r-58,0r-54,63r121,0r0,26r-163,0r0,-26r53,-63r-39,0r0,-22r58,0r46,-54r-113,0r0,-26r155,0r0,26","w":206},"\u01b7":{"d":"177,-74v0,77,-90,95,-161,72r0,-33v47,23,122,21,122,-36v0,-44,-50,-63,-98,-54r0,-26r88,-77r-110,0r0,-32r151,0r0,32r-86,74v50,-1,94,33,94,80","w":200},"\u01b8":{"d":"63,-71v0,57,74,60,121,36r0,33v-71,22,-160,5,-160,-72v0,-47,44,-81,93,-80r-86,-74r0,-32r151,0r0,32r-109,0r87,77r0,26v-48,-9,-97,12,-97,54","w":200},"\u01b9":{"d":"54,-2v0,56,65,59,116,38r0,29v-73,23,-153,2,-153,-69v0,-49,41,-77,93,-80r-86,-81r0,-26r143,0r0,28r-103,0r85,79r0,24v-51,-1,-95,15,-95,58","w":184},"\u01ba":{"d":"148,62v-42,19,-127,20,-127,-31v0,-46,75,-50,104,-73v17,-23,-3,-39,-45,-38v-15,0,-29,1,-41,4r0,-27r84,-62r-101,0r0,-26r145,0r0,26r-79,59v56,-13,101,42,65,83v-13,15,-68,34,-90,46v-12,13,-2,26,23,25v18,0,39,-6,62,-15r0,29","w":186},"\u01bb":{"d":"36,-250v59,-33,151,-19,150,55v0,25,-10,46,-30,65r29,0r0,26v-22,2,-52,-6,-65,6v-28,24,-44,47,-48,68r113,0r0,30r-155,0v-3,-57,24,-64,58,-104r-54,0r0,-26r82,0v44,-35,48,-108,-16,-111v-18,0,-40,7,-64,21r0,-30","w":227},"\u01bc":{"d":"185,-75v1,69,-71,95,-141,76r0,-31v46,21,104,10,104,-46v0,-49,-47,-63,-100,-58r0,-126r132,0r0,30r-101,0r0,69v61,0,106,28,106,86","w":227},"\u01bd":{"d":"143,-55v1,54,-59,69,-114,56r0,-27v31,9,83,5,78,-30v3,-30,-34,-44,-74,-39r0,-96r106,0r0,31r-80,0r0,38v48,-1,84,22,84,67","w":170},"\u01be":{"d":"17,-35v37,18,102,24,103,-24v1,-47,-81,-69,-76,-128r-35,0r0,-26r35,0r0,-65r35,0r0,65r56,0r0,26r-56,0v-3,37,14,40,33,62v27,29,41,31,42,69v3,64,-81,70,-137,49r0,-28","w":164},"\u01bf":{"d":"202,-137v0,71,-68,110,-133,141r0,65r-34,0r0,-260r34,0r0,35v37,-54,133,-54,133,19xm69,-24v55,-30,96,-71,96,-106v0,-21,-11,-33,-33,-33v-21,0,-42,12,-63,35r0,104","w":217},"\u01c0":{"d":"39,0r0,-278r24,0r0,278r-24,0","w":101},"\u01c1":{"d":"39,0r0,-278r24,0r0,278r-24,0xm98,0r0,-278r23,0r0,278r-23,0","w":160},"\u01c2":{"d":"128,-91r0,91r-24,0r0,-91r-78,0r0,-22r78,0r0,-52r-78,0r0,-22r78,0r0,-91r24,0r0,91r78,0r0,22r-78,0r0,52r78,0r0,22r-78,0","w":232},"\u01c3":{"d":"40,0r0,-35r34,0r0,35r-34,0xm44,-69r-4,-191r34,0r-4,191r-26,0","w":113},"\u01c4":{"d":"251,-136v0,82,-43,138,-130,136r-87,0r0,-260r86,0v89,-4,131,43,131,124xm212,-133v1,-83,-50,-107,-142,-100r0,205r48,0v69,1,92,-40,94,-105xm256,0r0,-30r139,-203r-131,0r0,-27r176,0r0,27r-140,203r140,0r0,30r-184,0xm413,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":456},"\u01c5":{"d":"251,-136v0,82,-43,138,-130,136r-87,0r0,-260r86,0v89,-4,131,43,131,124xm212,-133v1,-83,-50,-107,-142,-100r0,205r48,0v69,1,92,-40,94,-105xm278,0r0,-26r118,-139r-113,0r0,-26r155,0r0,26r-118,139r121,0r0,26r-163,0","w":462},"\u01c6":{"d":"20,-89v0,-86,83,-141,137,-80r0,-109r35,0r0,278r-35,0r0,-36v-14,27,-35,40,-63,40v-49,0,-74,-40,-74,-93xm157,-145v-45,-47,-101,-19,-101,52v0,81,64,83,101,36r0,-88xm227,0r0,-26r118,-139r-113,0r0,-26r155,0r0,26r-118,139r121,0r0,26r-163,0","w":411},"\u01c7":{"d":"34,0r0,-260r36,0r0,232r118,0r0,28r-154,0xm156,16v43,15,75,5,75,-48r0,-228r37,0r0,227v2,69,-46,96,-112,81r0,-32","w":300},"\u01c8":{"d":"34,0r0,-260r36,0r0,232r118,0r0,28r-154,0xm157,37v38,19,67,17,67,-37r0,-191r35,0r0,191v3,67,-49,88,-102,65r0,-28xm224,-226r0,-34r35,0r0,34r-35,0","w":293},"\u01c9":{"d":"35,0r0,-278r34,0r0,278r-34,0xm54,37v38,19,67,17,67,-37r0,-191r35,0r0,191v3,67,-49,88,-102,65r0,-28xm121,-226r0,-34r35,0r0,34r-35,0","w":190},"\u01ca":{"d":"34,0r0,-260r36,0r131,201r0,-201r31,0r0,260r-36,0r-131,-201r0,201r-31,0xm219,16v43,15,75,5,75,-48r0,-228r37,0r0,227v2,69,-46,96,-112,81r0,-32","w":362},"\u01cb":{"d":"34,0r0,-260r36,0r131,201r0,-201r31,0r0,260r-36,0r-131,-201r0,201r-31,0xm219,37v38,19,67,17,67,-37r0,-191r35,0r0,191v3,67,-49,88,-102,65r0,-28xm286,-226r0,-34r35,0r0,34r-35,0","w":355},"\u01cc":{"d":"156,-126v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-191r34,0r0,36v29,-56,122,-54,122,18r0,137r-35,0r0,-126xm176,37v38,19,67,17,67,-37r0,-191r35,0r0,191v3,67,-49,88,-102,65r0,-28xm243,-226r0,-34r35,0r0,34r-35,0","w":312},"\u01cd":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113xm186,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":248},"\u01ce":{"d":"35,-181v53,-23,128,-24,128,45r0,87v1,23,6,31,25,29r2,19v-25,10,-52,6,-57,-23v-39,44,-115,36,-115,-24v0,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm163,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":198},"\u01cf":{"d":"33,0r0,-260r37,0r0,260r-37,0xm113,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":103},"\u01d0":{"d":"35,0r0,-191r34,0r0,191r-34,0xm113,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":104},"\u01d1":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109xm201,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":279},"\u01d2":{"d":"202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74xm172,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":221},"\u01d3":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102xm189,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":249},"\u01d4":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126xm172,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":223},"\u01d5":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102xm78,-282r0,-30r30,0r0,30r-30,0xm147,-282r0,-30r30,0r0,30r-30,0xm71,-339r0,-26r113,0r0,26r-113,0","w":249},"\u01d6":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126xm61,-226r0,-30r30,0r0,30r-30,0xm130,-226r0,-30r30,0r0,30r-30,0xm54,-282r0,-26r113,0r0,26r-113,0","w":223},"\u01d7":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102xm78,-282r0,-30r30,0r0,30r-30,0xm147,-282r0,-30r30,0r0,30r-30,0xm101,-339r43,-56r40,0r-57,56r-26,0","w":249},"\u01d8":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126xm61,-226r0,-30r30,0r0,30r-30,0xm130,-226r0,-30r30,0r0,30r-30,0xm84,-282r43,-56r40,0r-57,56r-26,0","w":223},"\u01d9":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102xm78,-282r0,-30r30,0r0,30r-30,0xm147,-282r0,-30r30,0r0,30r-30,0xm189,-395r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":249},"\u01da":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126xm61,-226r0,-30r30,0r0,30r-30,0xm130,-226r0,-30r30,0r0,30r-30,0xm172,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":223},"\u01db":{"d":"127,7v-67,2,-96,-35,-96,-103r0,-164r37,0r0,164v0,48,16,75,61,75v46,0,57,-24,57,-74r0,-165r32,0r0,165v2,69,-28,100,-91,102xm78,-282r0,-30r30,0r0,30r-30,0xm147,-282r0,-30r30,0r0,30r-30,0xm153,-339r-26,0r-57,-56r41,0","w":249},"\u01dc":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,191r-35,0r0,-36v-29,56,-121,56,-121,-18r0,-137r34,0r0,126xm61,-226r0,-30r30,0r0,30r-30,0xm130,-226r0,-30r30,0r0,30r-30,0xm137,-282r-26,0r-57,-56r41,0","w":223},"\u01dd":{"d":"98,4v-54,0,-78,-46,-72,-105r120,0v-6,-67,-60,-82,-119,-56r0,-28v81,-31,154,9,154,90v0,53,-32,99,-83,99xm144,-75r-84,0v0,36,13,53,40,53v26,0,41,-17,44,-53","w":200},"\u01de":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113xm74,-282r0,-30r30,0r0,30r-30,0xm143,-282r0,-30r30,0r0,30r-30,0xm67,-339r0,-26r113,0r0,26r-113,0","w":248},"\u01df":{"d":"35,-181v53,-23,128,-24,128,45r0,87v1,23,6,31,25,29r2,19v-25,10,-52,6,-57,-23v-39,44,-115,36,-115,-24v0,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm50,-226r0,-30r30,0r0,30r-30,0xm119,-226r0,-30r30,0r0,30r-30,0xm43,-282r0,-26r113,0r0,26r-113,0","w":198},"\u01e0":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113xm106,-282r0,-34r35,0r0,34r-35,0xm67,-339r0,-26r113,0r0,26r-113,0","w":248},"\u01e1":{"d":"35,-181v53,-23,128,-24,128,45r0,87v1,23,6,31,25,29r2,19v-25,10,-52,6,-57,-23v-39,44,-115,36,-115,-24v0,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm93,-222r0,-34r35,0r0,34r-35,0xm43,-282r0,-26r113,0r0,26r-113,0","w":198},"\u01e2":{"d":"3,0r152,-260r155,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-154,0r0,-73r-85,0r-42,73r-34,0xm95,-100r69,0r0,-118xm164,-282r0,-26r113,0r0,26r-113,0","w":326},"\u01e3":{"d":"18,-48v1,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29v42,-17,91,-23,119,7v56,-47,136,-14,127,84r-118,0v2,70,61,80,118,56r0,27v-56,18,-111,17,-139,-27v-22,26,-45,38,-69,38v-32,0,-55,-22,-55,-52xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm164,-114r80,0v0,-37,-13,-55,-38,-55v-25,0,-39,18,-42,55xm95,-226r0,-26r113,0r0,26r-113,0","w":306},"\u01e4":{"d":"57,-130v0,80,58,128,135,102r0,-34r-43,0r0,-28r43,0r0,-39r37,0r0,39r43,0r0,28r-43,0r0,55v-111,38,-214,-3,-211,-123v2,-84,45,-138,129,-137v26,0,53,4,82,12r0,34v-94,-41,-172,-12,-172,91","w":289},"\u01e5":{"d":"192,-96v3,97,2,170,-93,170v-22,0,-44,-4,-64,-11r4,-30v48,25,123,23,118,-47r0,-30v-10,23,-32,39,-62,40v-50,1,-75,-41,-75,-93v0,-80,85,-132,137,-72r0,-22r35,0r0,73r43,0r0,22r-43,0xm157,-145v-38,-46,-101,-20,-101,48v0,76,67,77,101,31r0,-30r-47,0r0,-22r47,0r0,-27","w":252},"\u01e6":{"d":"57,-130v0,80,58,128,135,102r0,-84r37,0r0,105v-111,38,-214,-3,-211,-123v2,-84,45,-138,129,-137v26,0,53,4,82,12r0,34v-94,-41,-172,-12,-172,91xm207,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":260},"\u01e7":{"d":"192,-191v-7,115,35,265,-93,265v-22,0,-44,-4,-64,-11r4,-30v48,25,123,23,118,-47r0,-30v-10,23,-32,39,-62,40v-50,1,-75,-41,-75,-93v0,-80,85,-132,137,-72r0,-22r35,0xm157,-145v-38,-46,-101,-20,-101,48v0,76,67,77,101,31r0,-79xm167,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":224},"\u01e8":{"d":"34,0r0,-260r34,0r0,128r105,-128r38,0r-102,124r120,136r-47,0r-114,-132r0,132r-34,0xm175,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":235},"\u01e9":{"d":"35,0r0,-278r34,0r0,180r81,-93r37,0r-77,89r93,102r-44,0r-90,-98r0,98r-34,0xm187,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":210},"\u01ea":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109xm183,60v-22,11,-61,4,-60,-23v0,-17,15,-40,46,-37v-15,9,-22,19,-22,31v0,17,22,20,36,15r0,14","w":279},"\u01eb":{"d":"202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74xm150,60v-22,11,-61,4,-60,-23v0,-17,15,-40,46,-37v-15,9,-22,19,-22,31v0,17,22,20,36,15r0,14","w":221},"\u01ec":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109xm183,60v-22,11,-61,4,-60,-23v0,-17,15,-40,46,-37v-15,9,-22,19,-22,31v0,17,22,20,36,15r0,14xm83,-282r0,-26r113,0r0,26r-113,0","w":279},"\u01ed":{"d":"202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74xm150,60v-22,11,-61,4,-60,-23v0,-17,15,-40,46,-37v-15,9,-22,19,-22,31v0,17,22,20,36,15r0,14xm54,-226r0,-26r113,0r0,26r-113,0","w":221},"\u01ee":{"d":"177,-74v0,77,-90,95,-161,72r0,-33v47,23,122,21,122,-36v0,-44,-50,-63,-98,-54r0,-26r88,-77r-110,0r0,-32r151,0r0,32r-86,74v50,-1,94,33,94,80xm155,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":200},"\u01ef":{"d":"167,-4v0,71,-81,92,-153,69r0,-29v51,20,116,18,116,-38v0,-43,-44,-59,-94,-58r0,-24r84,-79r-103,0r0,-28r143,0r0,26r-85,81v52,3,92,31,92,80xm150,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":184},"\u01f0":{"d":"-27,37v38,19,67,17,67,-37r0,-191r35,0r0,191v3,67,-49,88,-102,65r0,-28xm119,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":109},"\u0250":{"d":"164,-10v-52,23,-128,25,-128,-45r0,-87v-1,-23,-6,-31,-25,-29r-2,-19v25,-10,52,-6,57,23v38,-44,115,-35,115,24v0,51,-51,66,-110,65v-2,32,1,58,34,56v18,0,38,-6,59,-17r0,29xm146,-137v0,-38,-49,-37,-75,-11r0,50v37,2,75,-8,75,-39","w":198},"\u0251":{"d":"20,-70v0,-67,51,-144,130,-121r34,0r0,191r-34,0r0,-57v-13,29,-41,60,-76,61v-35,1,-54,-35,-54,-74xm87,-28v30,0,48,-37,63,-65r0,-74v-57,-23,-95,36,-94,90v0,33,11,49,31,49","w":219},"\u0252":{"d":"200,-121v1,67,-52,144,-131,121r-34,0r0,-191r34,0r0,57v13,-29,41,-61,76,-61v35,0,55,36,55,74xm132,-163v-30,0,-48,37,-63,65r0,74v55,26,95,-36,94,-90v0,-33,-11,-49,-31,-49","w":219},"\u0253":{"d":"207,-101v0,86,-84,139,-138,79r-4,24r-30,0r0,-175v-3,-93,55,-125,134,-102r0,31v-16,-8,-31,-12,-48,-12v-49,1,-52,44,-52,101v14,-27,36,-40,64,-40v50,0,74,41,74,94xm69,-46v45,47,101,19,101,-52v0,-83,-64,-82,-101,-35r0,87","w":226},"\u0254":{"d":"126,-95v0,-62,-57,-90,-109,-60r0,-30v79,-32,148,13,148,91v0,81,-67,113,-146,92r0,-29v60,24,107,-2,107,-64","w":184},"\u0255":{"d":"20,-99v0,-78,69,-111,145,-90r0,29v-54,-23,-109,-3,-109,61v0,20,5,37,15,50v15,-21,42,-40,73,-41v24,-1,47,17,46,41v0,49,-73,67,-115,42v-6,14,-10,28,-10,42r-26,0v0,-21,5,-39,14,-56v-22,-19,-33,-45,-33,-78xm91,-32v25,19,73,11,73,-17v0,-10,-7,-15,-20,-15v-17,0,-35,11,-53,32","w":200},"\u0256":{"d":"157,-145v-45,-47,-101,-19,-101,52v0,81,64,83,101,36r0,-88xm240,70v-44,13,-83,-8,-83,-54r0,-52v-14,27,-35,40,-63,40v-49,0,-74,-40,-74,-93v0,-86,83,-141,137,-80r0,-109r35,0r0,288v-4,35,21,45,48,33r0,27","w":226},"\u0257":{"d":"157,-145v-45,-47,-101,-19,-101,52v0,81,64,83,101,36r0,-88xm20,-89v0,-86,83,-141,137,-80v-3,-59,-2,-116,57,-113v9,0,17,2,26,4r0,27v-26,-12,-48,-2,-48,33r0,218r-35,0r0,-36v-14,27,-35,40,-63,40v-49,0,-74,-40,-74,-93","w":226},"\u0258":{"d":"181,-96v0,81,-74,121,-155,90r0,-28v59,25,114,12,120,-56r-121,0v-3,-61,19,-104,73,-105v51,-1,83,46,83,99xm144,-116v-3,-36,-18,-53,-44,-53v-27,0,-40,17,-40,53r84,0","w":200},"\u0259":{"d":"98,4v-54,0,-78,-46,-72,-105r120,0v-6,-67,-60,-82,-119,-56r0,-28v81,-31,154,9,154,90v0,53,-32,99,-83,99xm144,-75r-84,0v0,36,13,53,40,53v26,0,41,-17,44,-53","w":200},"\u025a":{"d":"180,-102v13,84,-83,141,-136,82v-14,-15,-19,-40,-19,-68r117,-31v-13,-53,-64,-61,-117,-38r0,-28v74,-24,132,-4,150,57r69,-19v0,37,-7,97,38,71r0,27v-44,17,-68,-10,-64,-64xm145,-93r-86,23v2,29,14,48,40,48v30,0,46,-24,46,-71","w":284},"\u025b":{"d":"54,-55v0,41,64,39,96,21r0,28v-54,22,-129,9,-130,-48v-1,-27,23,-46,46,-52v-62,-25,-35,-89,32,-89v21,0,36,2,47,6v-1,8,3,22,-2,26v-28,-8,-76,-14,-80,16v1,27,33,33,67,32r0,26v-37,-2,-76,4,-76,34","w":171},"\u025c":{"d":"152,-54v-1,55,-77,71,-130,48r0,-28v32,17,95,21,95,-20v0,-31,-39,-38,-76,-35r0,-26v41,1,67,-10,67,-32v0,-29,-55,-23,-82,-16r0,-26v39,-12,115,-9,115,39v0,17,-12,32,-36,44v24,6,47,25,47,52","w":171},"\u025d":{"d":"152,-54v-1,55,-77,71,-130,48r0,-28v32,17,95,21,95,-20v0,-31,-39,-38,-76,-35r0,-26v41,1,67,-10,67,-32v0,-29,-55,-23,-82,-16r0,-26v27,-10,90,-9,105,12r69,-18v0,36,-9,95,38,71r0,27v-45,15,-68,-10,-64,-64r-33,9v1,21,-11,32,-36,46v24,6,47,25,47,52","w":240},"\u025e":{"d":"189,-147v0,21,-16,39,-34,45v72,31,26,106,-44,106v-59,0,-91,-37,-91,-96v0,-62,33,-103,94,-103v40,-1,75,14,75,48xm110,-22v26,0,44,-14,46,-35v2,-25,-33,-32,-69,-30r0,-26v34,1,70,0,70,-29v0,-19,-22,-27,-45,-27v-42,0,-65,31,-65,76v0,44,21,71,63,71","w":208},"\u025f":{"d":"-13,37v38,19,67,17,67,-37r0,-95r-43,0r0,-26r43,0r0,-70r35,0r0,70r44,0r0,26r-44,0v-1,74,14,175,-62,169v-12,0,-26,-3,-40,-9r0,-28","w":142},"\u0260":{"d":"20,-97v0,-80,85,-132,137,-72v-3,-60,-2,-117,59,-113v8,0,17,2,25,4r0,26v-28,-9,-56,-5,-49,35v-10,120,42,291,-93,291v-22,0,-44,-4,-64,-11r4,-30v48,25,123,23,118,-47r0,-30v-10,23,-32,39,-62,40v-50,1,-75,-41,-75,-93xm157,-145v-38,-46,-101,-20,-101,48v0,76,67,77,101,31r0,-79","w":224},"\u0261":{"d":"192,-191v-7,115,35,265,-93,265v-22,0,-44,-4,-64,-11r4,-30v48,25,123,23,118,-47r0,-30v-10,23,-32,39,-62,40v-50,1,-75,-41,-75,-93v0,-80,85,-132,137,-72r0,-22r35,0xm157,-145v-38,-46,-101,-20,-101,48v0,76,67,77,101,31r0,-79","w":224},"\u0262":{"d":"56,-94v0,56,35,83,94,72r0,-61r35,0r0,78v-86,25,-165,0,-165,-90v0,-90,80,-116,164,-92r0,27v-70,-21,-128,-8,-128,66","w":211},"\u0263":{"d":"104,-88v30,-44,50,-55,51,-103r32,0v1,55,-37,76,-70,128v19,34,28,61,28,82v1,32,-22,55,-52,55v-69,0,-52,-88,-12,-133v-26,-54,-37,-87,-81,-105r16,-27v46,13,62,56,88,103xm73,20v0,17,7,30,22,30v13,0,19,-8,19,-23v0,-14,-7,-36,-19,-65v-15,19,-22,38,-22,58","w":194},"\u0264":{"d":"89,4v-66,-7,-58,-64,-14,-114v-28,-38,-42,-59,-66,-52r0,-27v37,-11,51,13,88,56v32,-41,51,-60,86,-59r0,25v-32,1,-51,30,-70,54v16,24,31,53,30,68v-1,27,-25,52,-54,49xm89,-20v42,-2,16,-56,0,-71v-15,18,-23,34,-23,49v1,13,9,22,23,22","w":191},"\u0265":{"d":"67,-65v0,26,5,40,27,40v21,0,41,-14,60,-42r0,-124r35,0r0,260r-35,0r0,-105v-29,56,-121,56,-121,-18r0,-137r34,0r0,126","w":223},"\u0266":{"d":"156,-126v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-173v-3,-93,55,-125,134,-102r0,31v-16,-8,-31,-12,-48,-12v-49,1,-52,44,-52,101v29,-56,122,-54,122,18r0,137r-35,0r0,-126","w":223},"\u0267":{"d":"156,-126v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-173v-3,-93,55,-125,134,-102r0,31v-16,-8,-31,-12,-48,-12v-49,1,-52,44,-52,101v29,-56,122,-54,122,18r0,153v2,46,-39,68,-83,54r0,-27v26,12,48,2,48,-33r0,-136","w":223},"\u0268":{"d":"52,0r0,-95r-43,0r0,-26r43,0r0,-70r35,0r0,70r43,0r0,26r-43,0r0,95r-35,0xm52,-226r0,-34r35,0r0,34r-35,0","w":138},"\u0269":{"d":"68,-70v-5,44,23,57,55,41r0,26v-49,19,-89,0,-89,-64r0,-124r34,0r0,121","w":133},"\u026a":{"d":"22,0r0,-26r34,0r0,-139r-34,0r0,-26r104,0r0,26r-35,0r0,139r35,0r0,26r-104,0","w":147},"\u026b":{"d":"7,-111v-3,-43,26,-67,67,-55r0,-112r34,0r0,123v24,12,43,4,42,-27r26,0v1,49,-28,67,-68,54r0,128r-34,0r0,-138v-23,-9,-42,-9,-41,27r-26,0","w":182},"\u026c":{"d":"4,-161v3,-49,66,-54,91,-12r0,-105r35,0r0,141r52,0r0,26r-52,0r0,111r-35,0r0,-111v-53,2,-94,-11,-91,-50xm30,-161v0,27,30,23,65,24v-11,-18,-30,-39,-51,-39v-9,0,-14,5,-14,15","w":186},"\u026d":{"d":"117,70v-44,14,-82,-8,-82,-54r0,-294r34,0r0,288v-4,35,21,45,48,33r0,27","w":107},"\u026e":{"d":"183,-5v1,-40,-35,-56,-79,-55r0,-27r74,-78r-109,0r0,165r-34,0r0,-278r34,0r0,87r145,0r0,26r-77,81v47,2,84,28,83,75v0,64,-69,99,-142,77r0,-29v51,20,104,7,105,-44","w":236},"\u026f":{"d":"150,-36v-25,55,-117,56,-117,-16r0,-139r34,0r0,134v0,22,9,32,26,32v18,0,37,-12,57,-38r0,-128r34,0r0,134v7,57,57,32,83,-6r0,-128r34,0r0,191r-34,0r0,-36v-27,49,-99,58,-117,0","w":336},"\u0270":{"d":"150,-36v-25,55,-117,56,-117,-16r0,-139r34,0r0,134v0,22,9,32,26,32v18,0,37,-12,57,-38r0,-128r34,0r0,134v7,57,57,32,83,-6r0,-128r34,0r0,260r-34,0r0,-105v-27,49,-99,58,-117,0","w":336},"\u0271":{"d":"221,43v26,12,48,2,48,-33r0,-143v-6,-57,-57,-32,-82,5r0,128r-35,0r0,-133v-7,-56,-57,-33,-83,5r0,128r-34,0r0,-191r34,0r0,36v27,-49,99,-58,118,0v24,-56,117,-55,117,16r0,155v2,46,-39,68,-83,54r0,-27","w":336},"\u0272":{"d":"-10,43v26,12,48,2,48,-33r0,-201r35,0r0,36v29,-56,121,-54,121,18r0,137r-35,0r0,-126v-1,-25,-4,-38,-26,-39v-21,0,-41,13,-60,41v-5,86,31,224,-83,194r0,-27","w":226},"\u0273":{"d":"156,-126v0,-25,-4,-38,-27,-39v-21,0,-41,13,-60,41r0,124r-34,0r0,-191r34,0r0,36v29,-56,122,-54,122,18r0,147v-4,35,21,45,48,33r0,27v-44,13,-83,-8,-83,-54r0,-142","w":227},"\u0274":{"d":"35,0r0,-191r30,0r95,137r0,-137r31,0r0,191r-31,0r-95,-137r0,137r-30,0","w":225},"\u0275":{"d":"57,-85v3,42,21,63,54,63v33,0,50,-21,53,-63r-107,0xm164,-111v-4,-39,-21,-58,-53,-58v-32,0,-50,19,-54,58r107,0xm202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100","w":221},"\u0276":{"d":"20,-96v0,-73,62,-117,135,-92r0,-3r116,0r0,26r-82,0r0,53r69,0r0,25r-69,0r0,61r85,0r0,26r-119,0r0,-4v-72,28,-135,-19,-135,-92xm56,-96v0,43,18,74,58,74v44,0,41,-50,41,-96v0,-34,-14,-51,-42,-51v-39,0,-57,31,-57,73","w":291},"\u0277":{"d":"271,-81v0,77,-86,117,-126,52v-39,65,-125,25,-125,-52v0,-71,53,-114,125,-114v73,0,126,43,126,114xm53,-83v-2,39,31,72,62,47v7,-6,13,-14,17,-24v-10,-23,-9,-46,0,-69r26,0v10,23,11,46,0,69v7,17,21,33,41,33v26,0,39,-26,38,-56v-1,-50,-34,-86,-93,-86v-56,0,-89,36,-91,86","w":290},"\u0278":{"d":"256,-95v0,56,-44,90,-102,89r0,75r-35,0r0,-75v-58,1,-102,-33,-102,-89v0,-56,44,-90,102,-89r0,-94r35,0r0,94v58,-1,102,33,102,89xm119,-158v-63,-5,-87,71,-48,109v12,12,28,17,48,17r0,-126xm154,-32v59,7,87,-70,50,-108v-11,-11,-28,-17,-50,-18r0,126","w":273},"\u0279":{"d":"112,-191r0,191r-34,0r0,-36v-16,30,-37,43,-71,39r0,-32v33,10,52,-6,71,-36r0,-126r34,0","w":147},"\u027a":{"d":"112,-278r0,278r-34,0r0,-36v-16,30,-37,43,-71,39r0,-32v33,10,52,-6,71,-36r0,-213r34,0","w":147},"\u027b":{"d":"160,70v-44,14,-82,-8,-82,-54r0,-52v-16,30,-37,43,-71,39r0,-32v33,10,52,-6,71,-36r0,-126r34,0r0,201v-4,35,21,45,48,33r0,27","w":153},"\u027c":{"d":"35,69r0,-260r34,0r0,36v16,-30,37,-43,71,-39r0,32v-33,-10,-52,6,-71,36r0,195r-34,0","w":147},"\u027d":{"d":"117,70v-44,14,-82,-8,-82,-54r0,-207r34,0r0,36v16,-30,37,-43,71,-39r0,32v-33,-10,-52,6,-71,36r0,136v-4,35,21,45,48,33r0,27","w":147},"\u027e":{"d":"103,-169v-34,2,-34,24,-34,65r0,104r-34,0v0,-82,-14,-195,67,-195v13,0,26,2,39,7r0,28v-13,-6,-26,-9,-38,-9","w":148},"\u027f":{"d":"79,-104v-1,-41,0,-63,-34,-65v-12,0,-25,3,-38,9r0,-28v62,-21,106,5,106,84r0,104r-34,0r0,-104","w":148},"\u0280":{"d":"35,0r0,-191v56,1,130,-11,130,47v0,25,-11,44,-35,55r61,89r-42,0r-53,-78r-27,0r0,78r-34,0xm130,-140v0,-30,-30,-24,-61,-25r0,61v35,2,61,-6,61,-36","w":198},"\u0281":{"d":"35,-191r34,0r0,78r27,0r53,-78r42,0r-61,90v24,11,35,29,35,54v0,58,-74,46,-130,47r0,-191xm69,-26v31,-1,61,5,61,-25v0,-29,-26,-39,-61,-36r0,61","w":198},"\u0282":{"d":"54,1v-6,44,20,56,54,43r0,26v-48,13,-82,-6,-80,-63r0,-45v23,11,42,16,59,16v18,0,34,-11,34,-28v0,-19,-30,-32,-48,-38v-68,-22,-52,-107,22,-107v12,0,33,2,47,6r0,29v-34,-11,-74,-19,-80,15v9,41,98,34,94,92v-3,45,-50,66,-102,54","w":183},"\u0283":{"d":"124,-256v-33,3,-32,23,-34,65v-6,110,38,305,-105,259r0,-29v45,21,71,3,71,-56v0,-110,-37,-308,106,-258r0,29v-13,-6,-26,-10,-38,-10","w":152},"\u0284":{"d":"-6,37v38,19,74,16,67,-37r0,-52r-43,0r0,-22r43,0r0,-60r-43,0r0,-22r43,0v-2,-62,-7,-129,56,-126v9,0,17,2,26,4r0,27v-26,-12,-47,-2,-47,33r0,62r43,0r0,22r-43,0r0,60r43,0r0,22r-43,0v4,65,-2,126,-63,126v-12,0,-25,-3,-39,-9r0,-28","w":156},"\u0285":{"d":"91,-86v-5,58,25,76,71,56r0,28v-64,19,-105,-6,-105,-85r0,-104v-1,-42,-1,-65,-34,-65v-12,0,-25,4,-38,10r0,-29v62,-21,106,5,106,84r0,105","w":161},"\u0286":{"d":"150,-256v-33,3,-33,23,-34,65r0,169r52,0r0,26r-52,0v9,69,-123,101,-123,24v0,-41,38,-53,89,-50v5,-109,-35,-302,106,-253r0,29v-13,-6,-26,-10,-38,-10xm44,48v24,0,39,-18,38,-44v-28,-1,-63,0,-63,23v0,14,8,21,25,21","w":187},"\u0287":{"d":"15,-191v46,-14,84,7,84,53r0,112r24,0r0,26r-24,0r0,35r-35,3r0,-38r-50,0r0,-26r50,0r0,-106v1,-32,-20,-42,-49,-35r0,-24","w":134},"\u0288":{"d":"118,70v-44,14,-82,-8,-82,-54r0,-181r-24,0r0,-26r24,0r0,-35r35,-3r0,38r50,0r0,26r-50,0r0,175v-4,35,21,45,47,33r0,27","w":134},"\u0289":{"d":"76,-95v1,32,-5,71,27,70v21,0,41,-14,60,-42r0,-28r-87,0xm163,-36v-29,56,-123,55,-122,-18r0,-41r-34,0r0,-26r34,0r0,-70r35,0r0,70r87,0r0,-70r34,0r0,70r35,0r0,26r-35,0r0,95r-34,0r0,-36","w":238},"\u028a":{"d":"119,4v-90,0,-125,-101,-69,-169r-35,0r0,-26r68,0r0,26v-43,42,-33,143,36,143v68,1,78,-101,35,-143r0,-26r68,0r0,26r-35,0v56,68,23,169,-68,169","w":237},"\u028b":{"d":"95,-32v58,-7,78,-95,58,-159r38,0v16,97,-26,190,-122,191r-61,-191r36,0","w":214},"\u028c":{"d":"112,-191r71,191r-34,0r-56,-148r-59,148r-32,0r76,-191r34,0","w":186},"\u028d":{"d":"221,-191r54,191r-33,0r-42,-148r-45,148r-35,0r-40,-148r-48,148r-30,0r63,-191r35,0r40,148r46,-148r35,0","w":277},"\u028e":{"d":"142,-260r-31,69r74,191r-37,0r-55,-144r-58,144r-33,0r105,-260r35,0","w":188},"\u028f":{"d":"69,0r0,-80r-67,-111r39,0r49,82r52,-82r30,0r-69,111r0,80r-34,0","w":174},"\u0290":{"d":"185,-26v2,35,-9,79,30,75v9,0,16,-2,24,-5r0,26v-50,14,-84,-9,-80,-70r-137,0r0,-26r118,-139r-113,0r0,-26r155,0r0,26r-118,139r121,0","w":206},"\u0291":{"d":"246,-56v-2,52,-55,56,-118,56v-8,17,-12,34,-14,52r-27,0v2,-19,6,-36,13,-52r-78,0r0,-27r116,-138r-112,0r0,-26r155,0r0,26r-117,138r50,0v28,-46,57,-70,88,-70v25,-1,44,17,44,41xm220,-55v-1,-10,-7,-18,-17,-18v-17,-2,-40,20,-59,46v43,1,78,-7,76,-28","w":251},"\u0292":{"d":"167,-4v0,71,-81,92,-153,69r0,-29v51,20,116,18,116,-38v0,-43,-44,-59,-94,-58r0,-24r84,-79r-103,0r0,-28r143,0r0,26r-85,81v52,3,92,31,92,80","w":184},"\u0293":{"d":"10,20v0,-62,91,-46,119,1v31,-49,-12,-94,-85,-84r0,-27r87,-75r-105,0r0,-26r144,0r0,26r-90,78v79,-7,129,84,66,133v9,15,15,35,16,59r-27,0v-1,-16,-4,-30,-11,-44v-43,29,-114,8,-114,-41xm36,21v0,28,48,35,73,17v-16,-22,-34,-32,-53,-32v-14,0,-20,5,-20,15","w":193},"\u0294":{"d":"15,-271v57,-21,136,-15,137,49v1,65,-87,64,-75,145r0,77r-35,0v1,-39,-3,-97,7,-123v8,-22,72,-64,69,-96v-4,-47,-66,-42,-103,-24r0,-28","w":159},"\u0295":{"d":"144,-243v-37,-18,-103,-24,-103,24v0,53,76,66,76,141r0,78r-35,0v-5,-55,16,-121,-25,-145v-25,-28,-49,-36,-49,-77v-1,-65,80,-70,136,-49r0,28","w":159},"\u0296":{"d":"10,-35v40,19,100,22,104,-27v2,-31,-58,-80,-70,-103v-14,-27,-5,-75,-7,-113r35,0v2,52,-12,115,26,136v25,26,51,61,51,82v0,64,-82,76,-139,53r0,-28","w":159},"\u0297":{"d":"54,-57v0,81,48,138,114,95r0,31v-86,42,-148,-33,-148,-126v0,-93,60,-167,148,-127r0,31v-66,-43,-114,15,-114,96","w":174},"\u0298":{"d":"219,-95v0,55,-46,99,-100,99v-54,0,-99,-45,-99,-99v0,-55,44,-100,99,-100v55,0,100,45,100,100xm46,-95v0,40,33,73,73,73v40,0,74,-34,74,-73v0,-40,-34,-74,-74,-74v-39,0,-73,34,-73,74xm100,-76r0,-39r39,0r0,39r-39,0","w":238},"\u0299":{"d":"169,-48v0,58,-75,48,-134,48r0,-191v54,1,126,-10,127,42v0,23,-13,39,-37,49v30,9,44,27,44,52xm133,-51v0,-29,-30,-39,-64,-36r0,61v34,-2,65,5,64,-25xm69,-110v32,2,59,-5,57,-32v3,-21,-30,-25,-57,-23r0,55","w":188},"\u029a":{"d":"98,4v-72,0,-115,-80,-44,-106v-18,-6,-34,-23,-34,-45v0,-34,35,-48,74,-48v61,0,95,42,95,103v0,59,-32,96,-91,96xm51,-142v0,28,36,30,70,29r0,26v-35,-2,-69,4,-69,30v0,21,21,36,46,35v42,-1,64,-27,64,-71v1,-44,-23,-76,-65,-76v-23,0,-46,8,-46,27","w":208},"\u029b":{"d":"239,-252v-30,-11,-55,-4,-55,38r0,54v-70,-21,-128,-8,-128,66v0,56,35,83,94,72r0,-61r35,0r0,78v-86,25,-165,0,-165,-90v0,-78,59,-112,138,-97v-6,-65,21,-105,81,-86r0,26","w":213},"\u029c":{"d":"35,0r0,-191r34,0r0,78r86,0r0,-78r35,0r0,191r-35,0r0,-87r-86,0r0,87r-34,0","w":224},"\u029d":{"d":"-7,28v0,-41,38,-53,89,-50r0,-169r34,0r0,169r52,0r0,26r-52,0v9,69,-123,101,-123,24xm82,-226r0,-34r34,0r0,34r-34,0xm44,48v24,0,39,-18,38,-44v-28,-1,-63,0,-63,23v0,14,8,21,25,21","w":174},"\u029e":{"d":"176,-191r0,260r-35,0r0,-162r-81,93r-37,0r77,-89r-93,-102r44,0r90,98r0,-98r35,0","w":210},"\u029f":{"d":"35,0r0,-191r34,0r0,165r88,0r0,26r-122,0","w":165},"\u02a0":{"d":"157,-145v-45,-47,-101,-19,-101,52v0,81,64,83,101,36r0,-88xm20,-89v0,-86,83,-141,137,-80v-3,-59,-2,-116,57,-113v9,0,17,2,26,4r0,27v-26,-12,-48,-2,-48,33r0,287r-35,0r0,-105v-14,27,-35,40,-63,40v-49,0,-74,-40,-74,-93","w":226},"\u02a1":{"d":"21,-271v56,-21,136,-16,136,49v0,62,-78,63,-75,131r57,0r0,26r-57,0r0,65r-34,0r0,-65r-36,0r0,-26r36,0v-6,-58,76,-80,76,-128v0,-48,-66,-42,-103,-24r0,-28","w":164},"\u02a2":{"d":"144,-243v-37,-18,-102,-24,-103,24v-1,47,81,69,76,128r36,0r0,26r-36,0r0,65r-35,0r0,-65r-56,0r0,-26r56,0v4,-37,-14,-40,-33,-62v-27,-29,-40,-30,-41,-69v-2,-65,80,-70,136,-49r0,28","w":164},"\u02a3":{"d":"20,-89v0,-86,83,-141,137,-80r0,-109r35,0r0,87r161,0r0,26r-118,139r120,0r0,26r-198,0r0,-36v-14,27,-35,40,-63,40v-49,0,-74,-40,-74,-93xm157,-145v-45,-47,-101,-19,-101,52v0,81,64,83,101,36r0,-88xm192,-165r0,139r118,-139r-118,0","w":374},"\u02a4":{"d":"306,-5v0,-39,-35,-56,-79,-55r0,-27r73,-78r-108,0r0,165r-35,0r0,-36v-14,27,-35,40,-63,40v-49,0,-74,-40,-74,-93v0,-86,83,-141,137,-80r0,-109r35,0r0,87r144,0r0,26r-77,81v48,2,84,28,84,75v0,63,-69,99,-142,77r0,-29v51,20,105,7,105,-44xm157,-145v-45,-47,-101,-19,-101,52v0,81,64,83,101,36r0,-88","w":358},"\u02a5":{"d":"416,-56v-2,52,-55,56,-117,56v-8,17,-13,34,-15,52r-26,0v2,-19,5,-36,12,-52r-113,0r0,-36v-14,27,-35,40,-63,40v-49,0,-74,-40,-74,-93v0,-86,83,-141,137,-80r0,-109r35,0r0,87r159,0r0,26r-117,138r50,0v28,-46,58,-70,89,-70v24,0,43,17,43,41xm157,-145v-45,-47,-101,-19,-101,52v0,81,64,83,101,36r0,-88xm192,-165r0,138r117,-138r-117,0xm390,-55v-1,-10,-7,-18,-17,-18v-17,-2,-40,20,-59,46v43,1,78,-7,76,-28","w":421},"\u02a6":{"d":"120,0v-46,14,-84,-7,-84,-53r0,-112r-24,0r0,-26r24,0r0,-35r35,-3r0,38r97,0v24,-7,51,-4,77,2r0,29v-34,-11,-73,-18,-79,15v9,41,98,34,93,92v-5,58,-72,68,-128,46r0,-31v23,11,42,16,59,16v18,0,35,-11,35,-28v0,-18,-31,-30,-48,-38v-38,-16,-54,-41,-40,-77r-66,0r0,106v-1,32,20,42,49,35r0,24","w":285},"\u02a7":{"d":"120,0v-46,14,-84,-7,-84,-53r0,-112r-24,0r0,-26r24,0r0,-35r35,-3r0,38v28,-2,63,4,87,-2v-3,-77,45,-103,106,-82r0,29v-13,-6,-26,-10,-38,-10v-33,3,-32,23,-34,65v-5,110,37,305,-105,259r0,-29v45,21,71,3,71,-56r0,-148r-87,0r0,106v-1,32,20,42,49,35r0,24","w":252},"\u02a8":{"d":"120,0v-46,14,-84,-7,-84,-53r0,-112r-24,0r0,-26r24,0r0,-35r35,-3r0,38r128,0v26,-6,58,-5,82,2r0,29v-54,-23,-109,-2,-109,61v0,20,6,37,16,50v15,-21,41,-40,72,-41v24,-1,47,17,46,41v0,49,-73,67,-115,42v-6,14,-10,28,-10,42r-26,0v0,-21,5,-39,14,-56v-39,-30,-45,-105,-11,-144r-87,0r0,106v-1,32,20,42,49,35r0,24xm207,-32v25,19,73,11,73,-17v0,-10,-7,-15,-20,-15v-17,0,-35,11,-53,32","w":316},"\u02b0":{"d":"46,-256v16,-33,73,-33,73,11r0,83r-26,0r0,-75v-2,-37,-34,-22,-47,1r0,74r-26,0r0,-167r26,0r0,73","w":137},"\u02b1":{"d":"103,-307v-41,-16,-63,4,-57,54v16,-34,74,-34,73,11r0,80r-26,0r0,-73v-2,-36,-34,-21,-47,2r0,71r-26,0v-1,-80,-14,-201,83,-164r0,19","w":137},"\u02b2":{"d":"2,-142v21,10,40,10,40,-20r0,-116r26,0v-5,67,26,187,-66,155r0,-19xm42,-304r0,-23r26,0r0,23r-26,0","w":88},"\u02b3":{"d":"20,-162r0,-116r26,0r0,22v9,-18,23,-27,43,-23r0,23v-20,-6,-32,2,-43,19r0,75r-26,0","w":93},"\u02b4":{"d":"75,-278r0,116r-26,0r0,-22v-9,18,-21,25,-42,24r0,-24v19,6,32,-2,42,-19r0,-75r26,0","w":95},"\u02b5":{"d":"75,-166v-4,28,15,32,36,25r0,20v-43,12,-70,-12,-62,-63v-9,18,-21,25,-42,24r0,-24v19,6,32,-2,42,-19r0,-75r26,0r0,112","w":115},"\u02b6":{"d":"20,-278r26,0r0,46r12,0r32,-46r32,0r-37,53v31,10,31,62,-13,62r-52,0r0,-115xm46,-215r0,35v17,1,35,-1,35,-15v0,-17,-15,-22,-35,-20","w":126},"\u02b7":{"d":"37,-162r-32,-116r24,0r24,85r26,-85r24,0r23,86r26,-86r20,0r-36,116r-25,0r-23,-84r-25,84r-26,0","w":176},"\u02b8":{"d":"24,-121r22,-41r-44,-116r28,0r31,82r35,-82r21,0r-67,157r-26,0","w":119},"\u02b9":{"d":"22,-173r34,-105r39,0r-52,105r-21,0","w":104},"\u02ba":{"d":"22,-173r34,-105r39,0r-52,105r-21,0xm100,-173r34,-105r39,0r-52,105r-21,0","w":182},"\u02bb":{"d":"79,-278r0,13v-12,2,-18,21,-17,44r17,0r0,43r-44,0v-3,-50,2,-99,44,-100","w":113},"\u02bc":{"d":"35,-178r0,-13v12,-3,18,-20,17,-43r-17,0r0,-44r44,0v3,50,-2,100,-44,100","w":113},"\u02bd":{"d":"79,-178v-42,0,-47,-50,-44,-100r44,0r0,44r-17,0v-1,23,5,41,17,43r0,13","w":113},"\u02be":{"d":"90,-228v0,31,-25,55,-61,50r0,-22v23,3,40,-9,40,-28v0,-18,-17,-32,-40,-28r0,-22v35,-4,61,19,61,50","w":112},"\u02bf":{"d":"44,-228v0,18,17,32,40,28r0,22v-36,4,-61,-19,-61,-50v0,-31,26,-54,61,-50r0,22v-23,-3,-40,9,-40,28","w":112},"\u02c0":{"d":"15,-274v36,-11,87,-10,89,29v1,30,-49,43,-40,83r-26,0v-7,-32,38,-54,38,-80v-1,-28,-40,-22,-61,-11r0,-21","w":117},"\u02c1":{"d":"37,-206v-38,-23,-27,-74,26,-74v12,0,25,2,39,6r0,21v-21,-12,-60,-16,-61,11v-1,24,44,46,38,80r-26,0v1,-21,-2,-31,-16,-44","w":117},"\u02c2":{"d":"119,-170r-112,-56r112,-56r0,24r-64,32r64,32r0,24","w":144},"\u02c3":{"d":"26,-170r0,-24r63,-32r-63,-32r0,-24r112,56","w":144},"\u02c4":{"d":"16,-170r56,-112r56,112r-24,0r-32,-63r-31,63r-25,0","w":144},"\u02c5":{"d":"128,-282r-56,112r-56,-112r25,0r32,63r31,-63r24,0","w":144},"\u02c8":{"d":"30,-173r0,-105r26,0r0,105r-26,0","w":86},"\u02ca":{"d":"69,-226r43,-56r40,0r-57,56r-26,0","w":221},"\u02cb":{"d":"152,-226r-26,0r-57,-56r41,0","w":221},"\u02cc":{"d":"30,74r0,-91r26,0r0,91r-26,0","w":86},"\u02cd":{"d":"54,61r0,-26r113,0r0,26r-113,0","w":221},"\u02ce":{"d":"152,91r-26,0r-57,-56r41,0","w":221},"\u02cf":{"d":"69,91r43,-56r40,0r-57,56r-26,0","w":221},"\u02d0":{"d":"113,0r-78,0r39,-78xm35,-191r78,0r-39,78","w":147},"\u02d1":{"d":"35,-191r78,0r-39,78","w":147},"\u02d2":{"d":"82,-106v0,30,-25,54,-60,50r0,-22v23,3,39,-9,39,-28v0,-20,-16,-31,-39,-28r0,-22v36,-4,60,19,60,50","w":104},"\u02d3":{"d":"43,-106v0,18,17,31,39,28r0,22v-35,4,-60,-19,-60,-50v0,-31,25,-55,60,-50r0,22v-22,-2,-39,9,-39,28","w":104},"\u02d4":{"d":"26,-82r0,-22r48,0r0,-52r21,0r0,52r48,0r0,22r-117,0","w":169},"\u02d5":{"d":"143,-156r0,22r-48,0r0,52r-21,0r0,-52r-48,0r0,-22r117,0","w":169},"\u02d6":{"d":"143,-113r0,22r-48,0r0,48r-21,0r0,-48r-48,0r0,-22r48,0r0,-47r21,0r0,47r48,0","w":169},"\u02d7":{"d":"26,-69r0,-65r22,0r0,21r73,0r0,-21r22,0r0,65r-22,0r0,-22r-73,0r0,22r-22,0","w":169},"\u02de":{"d":"52,-147v0,37,-7,97,38,71r0,27v-44,17,-68,-10,-64,-64r-47,13r0,-27","w":94},"\u02e0":{"d":"131,-278v4,29,-30,68,-45,87v26,37,28,84,-18,90v-47,-6,-37,-55,-10,-88v-15,-34,-26,-60,-58,-69r13,-20v22,1,43,24,63,67v22,-31,36,-49,32,-67r23,0xm69,-168v-11,14,-20,42,-1,47v19,-5,10,-30,1,-47","w":136},"\u02e1":{"d":"20,-162r0,-167r26,0r0,167r-26,0","w":66},"\u02e2":{"d":"70,-231v51,15,39,73,-11,71v-12,0,-25,-2,-39,-6r0,-21v15,7,27,10,38,10v26,1,26,-26,4,-32v-21,-6,-43,-21,-41,-38v-3,-32,42,-38,74,-29r0,19v-19,-7,-47,-12,-49,8v-1,8,15,15,24,18","w":124},"\u02e3":{"d":"20,-162r41,-59r-40,-57r30,0r29,41r27,-41r23,0r-38,58r41,58r-30,0r-30,-42r-30,42r-23,0","w":152},"\u02e4":{"d":"33,-248v-37,-25,-27,-79,26,-75v12,0,25,3,39,7r0,20v-22,-11,-60,-15,-61,12v-1,22,38,48,38,74r0,48r-26,0v-2,-36,9,-69,-16,-86","w":117},"\u02e5":{"d":"7,-239r0,-21r116,0r0,260r-24,0r0,-239r-92,0","w":157},"\u02e6":{"d":"7,-179r0,-22r92,0r0,-59r24,0r0,260r-24,0r0,-179r-92,0","w":157},"\u02e7":{"d":"7,-119r0,-22r92,0r0,-119r24,0r0,260r-24,0r0,-119r-92,0","w":157},"\u02e8":{"d":"7,-59r0,-22r92,0r0,-179r24,0r0,260r-24,0r0,-59r-92,0","w":157},"\u02e9":{"d":"123,0r-116,0r0,-22r92,0r0,-238r24,0r0,260","w":157},"\u0300":{"d":"-84,-226r-26,0r-57,-56r40,0","w":0},"\u0301":{"d":"-136,-226r42,-56r40,0r-56,56r-26,0","w":0},"\u0302":{"d":"-172,-226r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":0},"\u0303":{"d":"-169,-226v-2,-46,42,-47,67,-27v15,12,26,8,29,-14r21,0v2,46,-41,48,-67,28v-15,-11,-26,-9,-28,13r-22,0","w":0},"\u0304":{"d":"-160,-226r0,-26r100,0r0,26r-100,0","w":0},"\u0305":{"d":"-221,-282r0,-26r221,0r0,26r-221,0","w":0},"\u0306":{"d":"-52,-278v0,47,-64,67,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,71,35,74,0r21,0","w":0},"\u0307":{"d":"-128,-226r0,-34r35,0r0,34r-35,0","w":0},"\u0308":{"d":"-160,-226r0,-30r30,0r0,30r-30,0xm-91,-226r0,-30r31,0r0,30r-31,0","w":0},"\u0309":{"d":"-101,-226v-5,-1,-15,3,-17,-2v-3,-20,15,-29,20,-40v-2,-10,-20,-8,-30,-4r0,-16v36,-14,64,18,33,41v-6,5,-6,11,-6,21","w":0},"\u030a":{"d":"-71,-265v0,22,-18,39,-40,39v-21,0,-39,-18,-39,-39v0,-22,17,-40,39,-40v22,0,40,18,40,40xm-135,-265v0,13,11,24,24,24v13,0,25,-11,25,-24v0,-14,-11,-25,-25,-25v-13,0,-24,12,-24,25","w":0},"\u030b":{"d":"-163,-226r43,-56r35,0r-56,56r-22,0xm-101,-226r42,-56r36,0r-56,56r-22,0","w":0},"\u030c":{"d":"-49,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":0},"\u030d":{"d":"-97,-226r-26,0r0,-65r26,0r0,65","w":0},"\u030e":{"d":"-128,-226r-26,0r0,-65r26,0r0,65xm-67,-226r-26,0r0,-65r26,0r0,65","w":0},"\u030f":{"d":"-58,-226r-22,0r-56,-56r35,0xm-120,-226r-22,0r-56,-56r36,0","w":0},"\u0310":{"d":"-49,-282r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0xm-128,-294r0,-35r35,0r0,35r-35,0","w":0},"\u0311":{"d":"-169,-226v1,-46,65,-68,98,-37v10,10,17,21,19,37r-21,0v-3,-34,-71,-35,-74,0r-22,0","w":0},"\u0312":{"d":"-93,-305r0,10v-10,2,-15,16,-14,35r14,0r0,34r-35,0v-2,-39,2,-79,35,-79","w":0},"\u0313":{"d":"-128,-226r0,-10v10,-2,15,-16,14,-35r-14,0r0,-34r35,0v2,39,-2,79,-35,79","w":0},"\u0314":{"d":"-93,-226v-33,0,-37,-39,-35,-79r35,0r0,34r-14,0v-1,19,4,34,14,35r0,10","w":0},"\u0315":{"d":"-34,-226r0,-10v10,-1,13,-16,13,-35r-13,0r0,-34r34,0v2,39,-1,80,-34,79","w":0},"\u0316":{"d":"-68,91r-26,0r-57,-56r40,0","w":0},"\u0317":{"d":"-153,91r43,-56r40,0r-57,56r-26,0","w":0},"\u0318":{"d":"-158,74r0,-18r47,0r0,-39r18,0r0,96r-18,0r0,-39r-47,0","w":0},"\u0319":{"d":"-119,113r0,-96r17,0r0,39r48,0r0,18r-48,0r0,39r-17,0","w":0},"\u031a":{"d":"-21,-191r0,-67r-65,0r0,-20r86,0r0,87r-21,0","w":0},"\u031b":{"d":"-73,-191v44,6,56,-20,44,-55r26,0v12,52,-9,84,-70,81r0,-26","w":0},"\u031c":{"d":"-117,75v0,16,13,25,31,22r0,17v-29,4,-48,-15,-49,-39v0,-24,20,-44,49,-40r0,17v-18,-2,-31,7,-31,23","w":0},"\u031d":{"d":"-158,100r0,-18r39,0r0,-47r17,0r0,47r39,0r0,18r-95,0","w":0},"\u031e":{"d":"-63,35r0,17r-39,0r0,48r-17,0r0,-48r-39,0r0,-17r95,0","w":0},"\u031f":{"d":"-63,74r0,17r-39,0r0,39r-17,0r0,-39r-39,0r0,-17r39,0r0,-39r17,0r0,39r39,0","w":0},"\u0320":{"d":"-158,87r0,-52r17,0r0,17r61,0r0,-17r17,0r0,52r-17,0r0,-18r-61,0r0,18r-17,0","w":0},"\u0321":{"d":"-82,43v30,14,54,-2,48,-43r34,0v7,56,-30,85,-82,70r0,-27","w":0},"\u0322":{"d":"0,70v-50,15,-90,-12,-82,-70r34,0v-5,39,16,58,48,43r0,27","w":0},"\u0323":{"d":"-128,69r0,-34r35,0r0,34r-35,0","w":0},"\u0324":{"d":"-160,65r0,-30r30,0r0,30r-30,0xm-91,65r0,-30r31,0r0,30r-31,0","w":0},"\u0325":{"d":"-71,75v0,22,-18,39,-40,39v-21,0,-39,-18,-39,-39v0,-22,17,-40,39,-40v22,0,40,18,40,40xm-135,75v0,13,11,24,24,24v13,0,25,-11,25,-24v0,-14,-11,-25,-25,-25v-13,0,-24,12,-24,25","w":0},"\u0326":{"d":"-128,114r0,-10v10,-2,15,-16,14,-35r-14,0r0,-34r35,0v2,39,-2,79,-35,79","w":0},"\u0327":{"d":"-64,47v0,27,-34,35,-61,25r0,-14v11,5,37,6,37,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-11,19v16,-1,34,13,34,28","w":0},"\u0328":{"d":"-73,60v-22,11,-60,4,-60,-23v0,-17,16,-41,47,-37v-15,9,-23,19,-23,31v0,17,22,20,36,15r0,14","w":0},"\u0329":{"d":"-97,100r-26,0r0,-65r26,0r0,65","w":0},"\u032a":{"d":"-158,91r0,-56r95,0r0,56r-17,0r0,-39r-61,0r0,39r-17,0","w":0},"\u032b":{"d":"-34,35v-1,43,-57,64,-76,21v-20,44,-76,20,-76,-21r21,0v3,32,44,32,44,0r21,0v1,32,41,32,44,0r22,0","w":0},"\u032c":{"d":"-49,35r-42,56r-39,0r-42,-56r26,0r36,35r35,-35r26,0","w":0},"\u032d":{"d":"-172,91r42,-56r39,0r42,56r-26,0r-36,-35r-35,35r-26,0","w":0},"\u032e":{"d":"-52,35v0,47,-64,67,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,71,35,74,0r21,0","w":0},"\u032f":{"d":"-169,87v1,-46,64,-68,98,-38v11,9,17,22,19,38r-21,0v-3,-34,-71,-35,-74,0r-22,0","w":0},"\u0330":{"d":"-169,76v-2,-47,42,-48,67,-28v15,12,26,8,29,-13r21,0v2,48,-41,47,-67,28v-15,-11,-26,-9,-28,13r-22,0","w":0},"\u0331":{"d":"-167,61r0,-26r113,0r0,26r-113,0","w":0},"\u0332":{"d":"-221,102r0,-26r221,0r0,26r-221,0","w":0},"\u0333":{"d":"-221,98r0,-22r221,0r0,22r-221,0xm-221,158r0,-21r221,0r0,21r-221,0","w":0},"\u0334":{"d":"-124,-97v-28,-22,-49,-15,-51,19r-26,0v-3,-46,42,-74,81,-46v12,9,41,27,52,27v15,-1,22,-15,23,-32r26,0v2,45,-44,74,-82,46","w":0},"\u0335":{"d":"-201,-85r0,-26r182,0r0,26r-182,0","w":0},"\u0336":{"d":"-221,-85r0,-26r221,0r0,26r-221,0","w":0},"\u0337":{"d":"-191,0r-30,0r191,-191r30,0","w":0},"\u0338":{"d":"-205,35r165,-330r24,0r-165,330r-24,0","w":0},"\u0339":{"d":"-90,67v0,21,-17,36,-41,33r0,-20v23,8,31,-25,9,-26r-9,0r0,-19v24,-3,41,11,41,32","w":0},"\u033a":{"d":"-63,35r0,56r-95,0r0,-56r17,0r0,39r61,0r0,-39r17,0","w":0},"\u033b":{"d":"-158,108r0,-73r95,0r0,73r-95,0xm-141,91r61,0r0,-39r-61,0r0,39","w":0},"\u033c":{"d":"-186,80v1,-43,57,-64,76,-21v19,-44,77,-20,76,21r-22,0v-3,-32,-43,-32,-44,0r-21,0v0,-32,-42,-32,-44,0r-21,0","w":0},"\u033d":{"d":"-156,-223r33,-34r-33,-34r24,0r22,22r21,-22r24,0r-33,34r33,34r-24,0r-21,-22r-22,22r-24,0","w":0},"\u033e":{"d":"-105,-226r-20,0v36,-24,-29,-40,11,-65r21,0v-38,24,26,42,-12,65","w":0},"\u033f":{"d":"-221,-282r0,-26r221,0r0,26r-221,0xm-221,-339r0,-26r221,0r0,26r-221,0","w":0},"\u0340":{"d":"-139,-312r-26,0r-56,-57r40,0","w":0},"\u0341":{"d":"-82,-312r42,-57r40,0r-56,57r-26,0","w":0},"\u0344":{"d":"-180,-226r0,-30r31,0r0,30r-31,0xm-123,-226r-5,-56r35,0r-4,56r-26,0xm-71,-226r0,-30r30,0r0,30r-30,0","w":0},"\u0345":{"d":"-61,67v-32,19,-60,0,-52,-45r27,0v-3,22,8,35,25,23r0,22","w":0},"\u0374":{"d":"26,-156r35,-104r39,0r-52,104r-22,0","w":117},"\u0375":{"d":"26,0r35,-104r39,0r-52,104r-22,0","w":117},"\u037a":{"d":"148,69v-33,19,-61,-1,-52,-47r27,0v-2,22,7,37,25,25r0,22","w":221},"\u037e":{"d":"40,56v-1,-22,15,-23,12,-56r-12,0r0,-35r34,0v2,43,-2,87,-34,91xm40,-156r0,-35r34,0r0,35r-34,0","w":113},"\u0384":{"d":"98,-226r-5,-56r35,0r-4,56r-26,0","w":221},"\u0385":{"d":"41,-226r0,-30r31,0r0,30r-31,0xm98,-226r-5,-56r35,0r-4,56r-26,0xm150,-226r0,-30r30,0r0,30r-30,0","w":221},"\u0386":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113xm23,-204r-5,-56r35,0r-4,56r-26,0","w":248},"\u0388":{"d":"72,0r0,-260r145,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-153,0xm7,-204r-5,-56r35,0r-4,56r-26,0","w":233},"\u0389":{"d":"72,0r0,-260r36,0r0,110r124,0r0,-110r37,0r0,260r-37,0r0,-123r-124,0r0,123r-36,0xm7,-204r-5,-56r35,0r-4,56r-26,0","w":302},"\u038a":{"d":"71,0r0,-260r37,0r0,260r-37,0xm7,-204r-5,-56r35,0r-4,56r-26,0","w":142},"\u038c":{"d":"293,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm88,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109xm7,-204r-5,-56r35,0r-4,56r-26,0","w":310},"\u038e":{"d":"290,-234v-53,14,-97,83,-96,150r0,84r-34,0v6,-105,-4,-222,-90,-230v2,-9,-3,-25,2,-30v57,0,94,35,110,105v17,-50,56,-97,108,-105r0,26xm7,-204r-5,-56r35,0r-4,56r-26,0","w":294},"\u038f":{"d":"173,-240v-53,0,-83,40,-82,96v0,51,19,90,59,117r0,27r-107,0r0,-27r72,0v-42,-32,-63,-71,-63,-119v-1,-69,51,-121,121,-121v70,0,123,52,122,121v0,48,-21,87,-63,119r71,0r0,27r-107,0r0,-27v40,-27,60,-66,60,-116v1,-57,-29,-97,-83,-97xm7,-204r-5,-56r35,0r-4,56r-26,0","w":314},"\u0390":{"d":"69,-70v-5,44,23,57,55,41r0,26v-49,19,-89,0,-89,-64r0,-124r34,0r0,121xm-18,-226r0,-30r31,0r0,30r-31,0xm39,-226r-5,-56r35,0r-4,56r-26,0xm91,-226r0,-30r30,0r0,30r-30,0","w":132},"\u0391":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113","w":248},"\u0392":{"d":"192,-65v0,43,-29,65,-82,65r-76,0r0,-260v67,0,148,-8,148,57v0,35,-24,57,-54,67v43,13,64,37,64,71xm153,-69v0,-36,-40,-57,-83,-54r0,95v51,1,83,-1,83,-41xm70,-146v42,2,72,-10,74,-49v1,-30,-32,-40,-74,-38r0,87","w":207},"\u0393":{"d":"34,0r0,-260r145,0r0,30r-109,0r0,230r-36,0","w":183},"\u0394":{"d":"9,0r0,-33r99,-227r36,0r99,227r0,33r-234,0xm40,-33r164,0r-82,-187","w":252},"\u0395":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-153,0","w":195},"\u0396":{"d":"17,0r0,-30r139,-203r-131,0r0,-27r176,0r0,27r-140,203r140,0r0,30r-184,0","w":217},"\u0397":{"d":"34,0r0,-260r36,0r0,110r124,0r0,-110r37,0r0,260r-37,0r0,-123r-124,0r0,123r-36,0","w":264},"\u0398":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109xm91,-120r0,-29r98,0r0,29r-98,0","w":279},"\u0399":{"d":"33,0r0,-260r37,0r0,260r-37,0","w":103},"\u039a":{"d":"34,0r0,-260r34,0r0,128r105,-128r38,0r-102,124r120,136r-47,0r-114,-132r0,132r-34,0","w":235},"\u039b":{"d":"3,0r95,-260r34,0r99,260r-37,0r-82,-217r-79,217r-30,0","w":234},"\u039c":{"d":"34,0r0,-260r51,0r72,201r74,-201r46,0r0,260r-35,0r0,-212r-71,195r-36,0r-70,-195r0,212r-31,0","w":310},"\u039d":{"d":"34,0r0,-260r36,0r131,201r0,-201r31,0r0,260r-36,0r-131,-201r0,201r-31,0","w":265},"\u039e":{"d":"7,0r0,-33r206,0r0,33r-206,0xm34,-119r0,-33r151,0r0,33r-151,0xm16,-228r0,-32r187,0r0,32r-187,0","w":219},"\u039f":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109","w":279},"\u03a0":{"d":"38,0r0,-233r-24,0r0,-27r245,0r0,27r-24,0r0,233r-36,0r0,-233r-124,0r0,233r-37,0","w":273},"\u03a1":{"d":"193,-192v-2,64,-52,93,-123,89r0,103r-36,0r0,-260v78,0,161,-11,159,68xm154,-189v0,-43,-38,-45,-84,-44r0,102v49,3,84,-13,84,-58","w":198},"\u03a3":{"d":"11,0r0,-33r101,-97r-92,-103r0,-27r178,0r0,27r-129,0r87,97r-107,103r155,0r0,33r-193,0","w":213},"\u03a4":{"d":"95,0r0,-233r-92,0r0,-27r222,0r0,27r-93,0r0,233r-37,0","w":227},"\u03a5":{"d":"225,-234v-53,14,-97,83,-96,150r0,84r-34,0v6,-105,-4,-222,-90,-230v2,-9,-3,-25,2,-30v57,0,94,35,110,105v17,-50,56,-97,108,-105r0,26","w":229},"\u03a6":{"d":"243,-129v0,50,-46,93,-99,90r0,39r-34,0r0,-39v-54,4,-99,-41,-99,-90v0,-54,45,-93,99,-92r0,-39r34,0r0,39v55,-1,99,38,99,92xm110,-194v-58,-5,-80,75,-45,111v11,11,26,17,45,17r0,-128xm144,-66v59,6,80,-74,45,-110v-11,-12,-26,-18,-45,-18r0,128","w":253},"\u03a7":{"d":"3,0r86,-131r-82,-129r44,0r62,98r66,-98r35,0r-83,126r85,134r-44,0r-66,-103r-68,103r-35,0","w":225},"\u03a8":{"d":"113,0r0,-110v-54,-4,-70,-35,-76,-89v-3,-28,-7,-34,-35,-34r0,-27v76,-13,56,73,82,112v6,8,16,12,29,11r0,-123r38,0r0,123v73,1,9,-137,110,-123v-1,8,3,22,-2,27v-52,-5,-22,84,-58,105v-11,10,-28,16,-50,18r0,110r-38,0","w":263},"\u03a9":{"d":"143,-240v-53,0,-83,40,-82,96v0,51,19,90,59,117r0,27r-107,0r0,-27r72,0v-42,-32,-63,-71,-63,-119v-1,-69,51,-121,121,-121v70,0,123,52,122,121v0,48,-21,87,-63,119r71,0r0,27r-107,0r0,-27v40,-27,60,-66,60,-116v1,-57,-29,-97,-83,-97"},"\u03aa":{"d":"33,0r0,-260r37,0r0,260r-37,0xm2,-282r0,-30r30,0r0,30r-30,0xm71,-282r0,-30r30,0r0,30r-30,0","w":103},"\u03ab":{"d":"225,-234v-53,14,-97,83,-96,150r0,84r-34,0v6,-105,-4,-222,-90,-230v2,-9,-3,-25,2,-30v57,0,94,35,110,105v17,-50,56,-97,108,-105r0,26xm67,-282r0,-30r30,0r0,30r-30,0xm136,-282r0,-30r30,0r0,30r-30,0","w":229},"\u03ac":{"d":"102,-195v45,4,48,39,73,87v14,-25,22,-53,22,-83r36,0v-5,36,-20,71,-45,107v20,37,38,65,52,84r-40,0r-34,-57v-30,41,-57,61,-82,61v-98,0,-68,-206,18,-199xm97,-168v-44,7,-56,146,-6,146v16,0,37,-18,63,-56v-17,-35,-29,-79,-57,-90xm121,-226r-5,-56r35,0r-4,56r-26,0","w":258},"\u03ad":{"d":"56,-87v-2,64,59,78,112,54r0,27v-76,30,-148,-8,-148,-90v0,-83,66,-114,146,-93r0,29v-54,-19,-108,-8,-110,47r99,0r0,26r-99,0xm100,-226r-5,-56r35,0r-4,56r-26,0","w":189},"\u03ae":{"d":"70,-155v36,-58,121,-56,121,30r0,194r-34,0r0,-189v-1,-66,-64,-47,-87,-5r0,125r-35,0v-3,-66,9,-141,-11,-191r38,0v3,10,6,22,8,36xm103,-226r-5,-56r35,0r-4,56r-26,0","w":223},"\u03af":{"d":"69,-70v-5,44,23,57,55,41r0,26v-49,19,-89,0,-89,-64r0,-124r34,0r0,121xm39,-226r-5,-56r35,0r-4,56r-26,0","w":132},"\u03b0":{"d":"109,4v-51,-1,-76,-29,-76,-92r0,-103r34,0v6,63,-22,171,43,169v76,-3,56,-124,27,-169r35,0v37,73,29,197,-63,195xm37,-226r0,-30r31,0r0,30r-31,0xm94,-226r-5,-56r35,0r-4,56r-26,0xm146,-226r0,-30r30,0r0,30r-30,0","w":219},"\u03b1":{"d":"102,-195v45,4,48,39,73,87v14,-25,22,-53,22,-83r36,0v-5,36,-20,71,-45,107v20,37,38,65,52,84r-40,0r-34,-57v-30,41,-57,61,-82,61v-98,0,-68,-206,18,-199xm97,-168v-44,7,-56,146,-6,146v16,0,37,-18,63,-56v-17,-35,-29,-79,-57,-90","w":258},"\u03b2":{"d":"200,-75v2,62,-69,95,-131,72r0,72r-34,0r0,-254v-1,-56,26,-97,77,-97v38,-1,68,23,68,58v0,30,-16,52,-48,69v35,11,66,39,68,80xm165,-74v-1,-41,-37,-63,-83,-60r0,-26v37,3,62,-28,63,-62v0,-21,-13,-35,-35,-34v-27,0,-41,22,-41,65r0,158v38,24,97,8,96,-41","w":216},"\u03b3":{"d":"85,-19v-12,-50,-56,-132,-84,-172r40,0v26,40,47,83,64,131v15,-39,47,-99,68,-131r32,0v-29,39,-60,101,-89,169v10,30,9,59,-4,91v-10,-2,-27,4,-29,-5v-10,-38,-9,-44,2,-83","w":205},"\u03b4":{"d":"106,4v-49,0,-87,-39,-86,-88v0,-41,22,-71,66,-88v-32,-18,-60,-28,-60,-62v0,-49,77,-54,127,-43r0,29v-27,-9,-84,-17,-92,11v25,52,132,62,132,150v0,52,-36,91,-87,91xm107,-22v44,0,62,-67,39,-102v-6,-10,-17,-21,-34,-31v-37,13,-56,37,-56,72v-1,31,20,61,51,61","w":212},"\u03b5":{"d":"56,-87v-2,64,59,78,112,54r0,27v-76,30,-148,-8,-148,-90v0,-83,66,-114,146,-93r0,29v-54,-19,-108,-8,-110,47r99,0r0,26r-99,0","w":189},"\u03b6":{"d":"224,18v-1,47,-55,62,-107,54r0,-28v33,8,79,6,79,-23v0,-28,-37,-21,-63,-21v-64,0,-98,-26,-98,-88v0,-46,25,-96,50,-123v-29,1,-50,-2,-77,-12r0,-31v31,16,60,22,99,21v36,-30,70,-47,103,-49r8,24v-23,23,-62,41,-101,47v-23,30,-44,76,-45,121v-1,51,28,60,82,60v47,0,70,16,70,48","w":228},"\u03b7":{"d":"70,-155v36,-58,121,-56,121,30r0,194r-34,0r0,-189v-1,-66,-64,-47,-87,-5r0,125r-35,0v-3,-66,9,-141,-11,-191r38,0v3,10,6,22,8,36","w":223},"\u03b8":{"d":"111,4v-66,0,-87,-62,-87,-140v0,-80,19,-146,87,-146v66,0,87,66,86,143v0,78,-20,143,-86,143xm160,-154v1,-48,-11,-102,-49,-102v-38,0,-50,55,-50,102r99,0xm61,-128v0,51,10,106,49,106v39,0,51,-56,50,-106r-99,0","w":221},"\u03b9":{"d":"69,-70v-5,44,23,57,55,41r0,26v-49,19,-89,0,-89,-64r0,-124r34,0r0,121","w":132},"\u03ba":{"d":"35,0r0,-191r34,0r0,94v20,-24,55,-70,74,-84v9,-7,21,-10,34,-10r0,31v-35,0,-45,35,-70,58r78,102r-41,0r-75,-97r0,97r-34,0","w":196},"\u03bb":{"d":"88,-173v-18,-30,-18,-78,-68,-74r0,-31v56,0,64,13,84,56r63,142v13,30,26,55,41,80r-39,0v-26,-41,-44,-90,-65,-136r-63,136r-33,0","w":213},"\u03bc":{"d":"114,-29v26,0,31,-15,43,-38r0,-124r35,0v3,63,-8,145,10,191r-38,0r-7,-36v-16,48,-59,53,-88,15r0,73r-34,0r0,-243r34,0v4,65,-19,162,45,162","w":227},"\u03bd":{"d":"181,-191v18,54,-54,158,-66,191r-34,0v-16,-53,-57,-148,-81,-191r37,0v22,43,50,104,66,157v36,-74,56,-101,44,-157r34,0","w":197},"\u03be":{"d":"202,18v-3,46,-55,62,-107,54r0,-28v31,8,82,6,80,-22v3,-20,-30,-24,-58,-22v-55,1,-93,-25,-93,-71v0,-38,30,-64,63,-76v-35,-12,-66,-56,-35,-94v-17,0,-35,-4,-54,-12r0,-28v21,10,51,15,83,18v29,-17,55,-23,91,-17r5,17v-23,17,-55,26,-91,22v-37,49,18,97,86,85r0,26v-61,-5,-109,9,-111,58v-4,76,146,8,141,90","w":208},"\u03bf":{"d":"202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74","w":221},"\u03c1":{"d":"200,-113v0,72,-57,133,-131,107r0,75r-34,0v3,-112,-25,-264,87,-264v48,0,78,33,78,82xm118,-169v-52,0,-50,70,-49,129v45,38,96,-9,96,-67v0,-34,-17,-62,-47,-62","w":223},"\u03c2":{"d":"201,18v-1,46,-55,63,-107,54r0,-27v30,7,83,4,79,-24v3,-18,-31,-23,-59,-21v-61,3,-92,-31,-94,-82v-3,-77,76,-130,161,-109r0,27v-66,-18,-126,11,-126,79v0,45,28,55,76,55v46,0,70,16,70,48","w":209},"\u03c3":{"d":"20,-95v0,-68,48,-115,119,-96r114,0r0,31r-70,0v43,64,12,164,-72,164v-58,0,-91,-40,-91,-99xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74","w":242},"\u03c4":{"d":"91,0v-20,-37,-9,-104,-12,-160v-27,0,-52,-2,-72,8r0,-32v47,-14,121,-4,180,-7r0,31r-74,0v3,55,-9,125,14,160r-36,0","w":194},"\u03c5":{"d":"109,4v-51,-1,-76,-29,-76,-92r0,-103r34,0v6,63,-22,171,43,169v76,-3,56,-124,27,-169r35,0v37,73,29,197,-63,195","w":219},"\u03c6":{"d":"258,-95v0,56,-44,90,-102,89r0,75r-35,0r0,-75v-58,1,-101,-33,-101,-89v0,-56,43,-90,101,-89r0,-94r35,0r0,94v58,-1,102,33,102,89xm121,-158v-63,-5,-87,71,-48,109v12,12,28,17,48,17r0,-126xm156,-32v59,7,87,-70,50,-108v-11,-11,-28,-17,-50,-18r0,126","w":277},"\u03c7":{"d":"79,-64r-55,-97v-8,-13,-14,-23,-20,-30r40,0v17,24,39,62,55,92r54,-92r31,0r-70,119r83,141v-13,-2,-34,4,-42,-3v-29,-44,-38,-64,-61,-104r-62,107r-31,0","w":197},"\u03c8":{"d":"252,-191v31,84,13,195,-92,191r0,69r-34,0r0,-69v-83,-5,-105,-49,-101,-140v0,-20,-3,-38,-9,-51r35,0v23,36,-7,128,35,151v14,8,26,14,40,14r0,-200r34,0r0,200v75,7,84,-107,57,-165r35,0","w":284},"\u03c9":{"d":"225,-24v68,-9,45,-130,13,-167r36,0v15,22,29,66,30,100v2,51,-30,96,-79,95v-28,0,-48,-17,-63,-54v-30,96,-142,51,-142,-41v0,-35,14,-78,29,-100r36,0v-32,38,-55,155,13,167v28,-2,43,-29,48,-58v-12,-29,-12,-61,0,-90r32,0v10,29,11,61,0,90v4,30,19,56,47,58","w":323},"\u03ca":{"d":"69,-70v-5,44,23,57,55,41r0,26v-49,19,-89,0,-89,-64r0,-124r34,0r0,121xm2,-226r0,-30r30,0r0,30r-30,0xm71,-226r0,-30r30,0r0,30r-30,0","w":132},"\u03cb":{"d":"109,4v-51,-1,-76,-29,-76,-92r0,-103r34,0v6,63,-22,171,43,169v76,-3,56,-124,27,-169r35,0v37,73,29,197,-63,195xm54,-226r0,-30r30,0r0,30r-30,0xm123,-226r0,-30r30,0r0,30r-30,0","w":219},"\u03cc":{"d":"202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74xm98,-226r-5,-56r35,0r-4,56r-26,0","w":221},"\u03cd":{"d":"109,4v-51,-1,-76,-29,-76,-92r0,-103r34,0v6,63,-22,171,43,169v76,-3,56,-124,27,-169r35,0v37,73,29,197,-63,195xm95,-226r-5,-56r35,0r-4,56r-26,0","w":219},"\u03ce":{"d":"225,-24v68,-9,45,-130,13,-167r36,0v15,22,29,66,30,100v2,51,-30,96,-79,95v-28,0,-48,-17,-63,-54v-30,96,-142,51,-142,-41v0,-35,14,-78,29,-100r36,0v-32,38,-55,155,13,167v28,-2,43,-29,48,-58v-12,-29,-12,-61,0,-90r32,0v10,29,11,61,0,90v4,30,19,56,47,58xm149,-226r-5,-56r35,0r-4,56r-26,0","w":323},"\u03d0":{"d":"98,-191v37,0,55,-65,13,-65v-25,0,-39,29,-47,53v12,8,23,12,34,12xm168,-231v0,52,-65,87,-109,52v-6,23,-8,55,-4,81v37,-46,117,-29,117,33v0,38,-34,72,-73,69v-122,-9,-96,-288,17,-286v30,0,52,20,52,51xm106,-22v45,0,41,-78,-1,-77v-18,0,-34,9,-46,27v5,25,22,50,47,50","w":186},"\u03d1":{"d":"177,-128v2,64,-29,129,-84,132v-45,2,-57,-45,-70,-82r31,0v9,18,13,59,39,56v37,-4,49,-56,47,-106v-68,4,-120,-5,-120,-65v0,-43,36,-89,77,-89v46,0,72,42,80,124r37,0r0,30r-37,0xm50,-195v0,43,45,37,90,37v1,-46,-10,-98,-45,-98v-25,0,-45,32,-45,61","w":224},"\u03d2":{"d":"228,-234v-106,-2,-99,125,-99,234r-35,0r0,-84v-2,-81,-44,-140,-93,-176r50,0v24,21,51,64,64,98v17,-55,39,-101,113,-98r0,26","w":229},"\u03d3":{"d":"290,-234v-106,-2,-99,125,-99,234r-35,0r0,-84v-2,-81,-44,-140,-93,-176r50,0v24,21,51,64,64,98v17,-55,39,-101,113,-98r0,26xm7,-204r-5,-56r35,0r-4,56r-26,0","w":294},"\u03d4":{"d":"228,-234v-106,-2,-99,125,-99,234r-35,0r0,-84v-2,-81,-44,-140,-93,-176r50,0v24,21,51,64,64,98v17,-55,39,-101,113,-98r0,26xm66,-282r0,-30r30,0r0,30r-30,0xm135,-282r0,-30r30,0r0,30r-30,0","w":229},"\u03d5":{"d":"153,-146v23,-88,141,-45,135,35v-5,67,-48,106,-118,111r0,69r-34,0r0,-69v-70,-6,-117,-43,-119,-111v-1,-45,32,-85,75,-84v30,0,51,17,61,49xm93,-168v-55,5,-47,100,-12,123v14,9,31,17,55,19v1,-57,6,-146,-43,-142xm254,-110v1,-29,-15,-56,-41,-58v-48,-4,-44,85,-43,142v53,-3,82,-33,84,-84","w":305},"\u03d6":{"d":"273,-165v33,63,19,167,-55,169v-23,0,-42,-13,-57,-40v-16,27,-35,40,-57,40v-73,-1,-87,-107,-54,-169v-17,0,-32,2,-47,8r0,-27v86,-16,204,-3,303,-7r0,26r-33,0xm215,-27v52,-11,46,-91,22,-138r-152,0v-26,47,-29,129,24,139v19,-1,32,-19,40,-36v-12,-27,-12,-49,-1,-77r26,0v12,28,10,49,-1,77v11,23,25,35,42,35","w":318},"\u03da":{"d":"146,-33v51,-3,88,6,91,51v3,45,-52,61,-114,55r0,-26v37,4,86,-1,84,-26v-2,-26,-35,-21,-66,-21v-83,0,-119,-29,-121,-103v-3,-108,92,-190,207,-157r0,28v-96,-35,-175,33,-172,124v2,54,26,79,91,75","w":241},"\u03dc":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,88r92,0r0,27r-92,0r0,118r-36,0","w":193},"\u03de":{"d":"106,0r41,-114r-130,0r54,-146r28,0r-42,113r131,0r-54,147r-28,0","w":191},"\u03e0":{"d":"0,-268v133,-1,243,131,198,275r-26,-9v11,-37,13,-71,1,-110r-97,66r-17,-23r103,-70v-8,-16,-18,-30,-29,-43r-104,72r-16,-23r98,-68v-34,-26,-71,-39,-111,-39r0,-28","w":225},"\u03ee":{"d":"95,0r0,-184r-91,0r0,-28r91,0r0,-48r37,0r0,48r91,0r0,28r-91,0r0,184r-37,0","w":227},"\u03ef":{"d":"81,-165r-69,0r0,-26r69,0r0,-87r35,0r0,87r69,0r0,26r-69,0r0,234r-35,0r0,-234","w":197},"\u03f0":{"d":"15,-191v56,-18,68,31,65,93v11,-12,24,-21,37,-29v5,-32,20,-55,46,-68r18,13v-7,26,-20,48,-39,66v-2,40,-4,97,39,85r0,31v-50,18,-67,-22,-66,-92v-11,9,-22,20,-35,33v-4,26,-19,47,-46,63r-19,-11v6,-26,19,-49,38,-67v1,-43,7,-94,-38,-85r0,-32","w":196},"\u03f1":{"d":"58,-19v-1,65,69,59,135,58r0,30r-54,0v-89,-1,-108,-44,-111,-139v-2,-77,24,-122,87,-125v48,-2,78,31,78,79v0,70,-66,127,-135,97xm110,-169v-49,2,-49,65,-47,121v46,32,93,-9,93,-61v0,-33,-15,-60,-46,-60","w":216},"\u03f2":{"d":"56,-95v0,60,59,89,111,59r0,30v-80,32,-147,-12,-147,-91v0,-80,66,-113,145,-92r0,29v-61,-25,-109,2,-109,65","w":184},"\u0401":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-153,0xm60,-282r0,-30r30,0r0,30r-30,0xm129,-282r0,-30r30,0r0,30r-30,0","w":195},"\u0402":{"d":"234,-84v0,-59,-68,-68,-104,-27r0,111r-37,0r0,-233r-91,0r0,-27r219,0r0,27r-91,0r0,88v54,-47,143,-17,143,57v0,56,-42,100,-102,88r0,-26v37,8,63,-24,63,-58"},"\u0403":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,233r-36,0xm70,-282r43,-56r40,0r-57,56r-26,0","w":183},"\u0404":{"d":"58,-123v-4,78,74,126,144,85r0,34v-100,37,-184,-21,-184,-127v0,-99,82,-163,180,-126r0,30v-73,-35,-137,5,-140,77r98,0r0,27r-98,0","w":216},"\u0405":{"d":"163,-110v38,53,-10,117,-78,117v-18,0,-40,-4,-67,-12r0,-36v57,39,145,18,111,-48v-32,-34,-110,-48,-110,-109v0,-65,78,-83,141,-59r0,34v-49,-22,-96,-27,-106,20v2,33,36,41,61,57v22,14,40,24,48,36","w":193},"\u0406":{"d":"33,0r0,-260r37,0r0,260r-37,0","w":103},"\u0407":{"d":"33,0r0,-260r37,0r0,260r-37,0xm2,-282r0,-30r30,0r0,30r-30,0xm71,-282r0,-30r30,0r0,30r-30,0","w":103},"\u0408":{"d":"-32,16v43,14,75,6,75,-48r0,-228r37,0r0,227v2,69,-46,96,-112,81r0,-32","w":111},"\u0409":{"d":"304,-77v0,-43,-38,-45,-85,-44r0,94v50,2,84,-8,85,-50xm340,-79v2,75,-73,83,-158,79r0,-233r-78,0v-3,115,3,173,-43,214v-12,11,-32,17,-56,19r0,-33v25,-4,41,-17,50,-40v8,-21,13,-104,12,-187r152,0r0,111v70,-5,120,11,121,70","w":353},"\u040a":{"d":"335,-79v2,74,-73,83,-158,79r0,-123r-107,0r0,123r-36,0r0,-260r36,0r0,110r107,0r0,-110r37,0r0,111v71,-5,119,12,121,70xm298,-77v1,-43,-38,-45,-84,-44r0,94v50,2,84,-7,84,-50","w":348},"\u040b":{"d":"223,0v-5,-58,20,-141,-45,-141v-22,0,-43,9,-60,27r0,114r-37,0r0,-233r-78,0r0,-27r193,0r0,27r-78,0r0,86v52,-44,154,-27,142,61r0,86r-37,0","w":274},"\u040c":{"d":"70,-120r0,120r-36,0r0,-260r36,0v2,36,-4,80,2,112v61,-3,46,-116,120,-112r0,27v-38,5,-48,83,-82,97v54,17,61,90,92,136r-39,0v-20,-38,-45,-103,-75,-120r-18,0xm83,-282r43,-56r40,0r-57,56r-26,0","w":213},"\u040e":{"d":"103,-83r-90,-177r41,0r70,138r76,-138r34,0r-107,195v-27,48,-38,64,-103,65r0,-30v49,2,61,-19,79,-53xm181,-334v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":230},"\u040f":{"d":"34,0r0,-260r36,0r0,232r124,0r0,-232r37,0r0,260r-81,0r0,56r-35,0r0,-56r-81,0","w":264},"\u0410":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113","w":248},"\u0411":{"d":"192,-79v2,74,-73,83,-158,79r0,-260r145,0r0,27r-109,0r0,84v71,-5,120,12,122,70xm155,-77v0,-43,-38,-45,-85,-44r0,94v50,2,84,-8,85,-50","w":209},"\u0412":{"d":"192,-65v0,43,-29,65,-82,65r-76,0r0,-260v67,0,148,-8,148,57v0,35,-24,57,-54,67v43,13,64,37,64,71xm153,-69v0,-36,-40,-57,-83,-54r0,95v51,1,83,-1,83,-41xm70,-146v42,2,72,-10,74,-49v1,-30,-32,-40,-74,-38r0,87","w":207},"\u0413":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,233r-36,0","w":183},"\u0414":{"d":"34,-33v40,-65,54,-123,52,-227r142,0r0,227r35,0r0,89r-35,0r0,-56r-179,0r0,56r-36,0r0,-89r21,0xm191,-33r0,-200r-68,0v0,79,-15,145,-47,200r115,0","w":274},"\u0415":{"d":"34,0r0,-260r145,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-153,0","w":195},"\u0416":{"d":"115,-123v-38,18,-45,78,-67,123r-38,0v26,-47,33,-119,84,-137v-33,-15,-33,-88,-74,-96r0,-27v58,-2,61,75,91,105v4,4,11,7,19,7r0,-112r35,0r0,112v30,-2,35,-39,48,-60v19,-31,22,-50,61,-52r0,27v-42,7,-39,82,-74,96v51,18,59,89,84,137r-38,0v-23,-41,-26,-101,-68,-123r-13,0r0,123r-35,0r0,-123r-15,0","w":294},"\u0417":{"d":"180,-74v0,74,-98,97,-169,70r0,-33v54,22,130,27,130,-34v0,-43,-39,-55,-88,-54r0,-26v44,1,80,-12,81,-50v1,-48,-76,-44,-118,-25r0,-30v60,-21,156,-16,156,52v0,31,-19,52,-57,63v37,5,65,28,65,67","w":194},"\u0418":{"d":"34,0r0,-260r36,0r0,207r126,-207r37,0r0,260r-37,0r0,-207r-126,207r-36,0","w":266},"\u0419":{"d":"34,0r0,-260r36,0r0,207r126,-207r37,0r0,260r-37,0r0,-207r-126,207r-36,0xm190,-334v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":266},"\u041a":{"d":"70,-120r0,120r-36,0r0,-260r36,0v2,36,-4,80,2,112v61,-3,46,-116,120,-112r0,27v-38,5,-48,83,-82,97v54,17,61,90,92,136r-39,0v-20,-38,-45,-103,-75,-120r-18,0","w":213},"\u041b":{"d":"5,0r0,-33v25,-4,41,-17,50,-40v8,-21,13,-104,12,-187r152,0r0,260r-37,0r0,-233r-78,0v-3,115,3,173,-43,214v-12,11,-32,17,-56,19","w":252},"\u041c":{"d":"34,0r0,-260r50,0r73,201r74,-201r46,0r0,260r-35,0r0,-212r-72,195r-35,0r-70,-195r0,212r-31,0","w":310},"\u041d":{"d":"34,0r0,-260r36,0r0,110r124,0r0,-110r37,0r0,260r-37,0r0,-123r-124,0r0,123r-36,0","w":264},"\u041e":{"d":"262,-130v0,78,-47,137,-122,137v-76,0,-122,-59,-122,-137v0,-78,46,-137,122,-137v75,0,122,60,122,137xm57,-130v0,62,27,109,83,109v56,0,82,-47,82,-109v0,-63,-26,-109,-82,-109v-56,0,-83,47,-83,109","w":279},"\u041f":{"d":"34,0r0,-260r197,0r0,260r-37,0r0,-233r-124,0r0,233r-36,0","w":264},"\u0420":{"d":"193,-192v-2,64,-52,93,-123,89r0,103r-36,0r0,-260v78,0,161,-11,159,68xm154,-189v0,-43,-38,-45,-84,-44r0,102v49,3,84,-13,84,-58","w":198},"\u0421":{"d":"57,-130v0,99,94,135,172,85r0,32v-96,50,-211,4,-211,-117v0,-117,98,-162,211,-125r0,34v-95,-40,-172,-12,-172,91","w":249},"\u0422":{"d":"95,0r0,-233r-92,0r0,-27r222,0r0,27r-93,0r0,233r-37,0","w":227},"\u0423":{"d":"103,-83r-90,-177r41,0r70,138r76,-138r34,0r-107,195v-27,48,-38,64,-103,65r0,-30v49,2,61,-19,79,-53","w":230},"\u0424":{"d":"239,-129v0,48,-46,93,-97,90r0,39r-35,0r0,-39v-51,3,-96,-42,-96,-90v-1,-51,43,-94,96,-92r0,-39r35,0r0,39v53,-2,98,41,97,92xm107,-194v-56,-3,-77,74,-42,110v11,12,25,18,42,18r0,-128xm142,-66v54,5,78,-73,44,-109v-10,-11,-25,-18,-44,-19r0,128","w":249},"\u0425":{"d":"3,0r86,-131r-82,-129r44,0r62,98r66,-98r35,0r-83,126r85,134r-44,0r-66,-103r-68,103r-35,0","w":225},"\u0426":{"d":"34,0r0,-260r36,0r0,227r124,0r0,-227r37,0r0,227r35,0r0,89r-35,0r0,-56r-197,0","w":276},"\u0427":{"d":"51,-260v5,59,-22,141,49,141v20,0,39,-6,56,-16r0,-125r37,0r0,260r-37,0r0,-105v-59,33,-154,17,-142,-69r0,-86r37,0","w":226},"\u0428":{"d":"34,0r0,-260r36,0r0,227r83,0r0,-227r37,0r0,227r82,0r0,-227r37,0r0,260r-275,0","w":342},"\u0429":{"d":"34,0r0,-260r36,0r0,227r83,0r0,-227r37,0r0,227r82,0r0,-227r37,0r0,227r35,0r0,89r-35,0r0,-56r-275,0","w":354},"\u042a":{"d":"231,-79v2,74,-73,83,-158,79r0,-233r-70,0r0,-27r107,0r0,111v70,-5,119,12,121,70xm194,-77v1,-43,-38,-45,-84,-44r0,94v50,2,84,-7,84,-50","w":243},"\u042b":{"d":"192,-79v2,74,-73,83,-158,79r0,-260r36,0r0,111v71,-5,120,12,122,70xm155,-77v0,-43,-38,-45,-85,-44r0,94v50,2,84,-8,85,-50xm219,0r0,-260r37,0r0,260r-37,0","w":289},"\u042c":{"d":"192,-79v2,74,-73,83,-158,79r0,-260r36,0r0,111v71,-5,120,12,122,70xm155,-77v0,-43,-38,-45,-85,-44r0,94v50,2,84,-8,85,-50","w":204},"\u042d":{"d":"198,-135v4,101,-80,171,-183,131r0,-33v78,36,145,-7,144,-86r-98,0r0,-27r98,0v4,-77,-75,-113,-141,-74r0,-29v19,-9,40,-14,64,-14v80,-1,114,54,116,132","w":216},"\u042e":{"d":"220,7v-68,0,-105,-54,-108,-123r-42,0r0,116r-36,0r0,-260r36,0r0,116r42,0v4,-72,38,-123,108,-123v72,0,108,60,108,137v0,78,-36,137,-108,137xm220,-240v-95,0,-95,221,0,219v51,-1,69,-50,69,-109v0,-59,-19,-110,-69,-110","w":347},"\u042f":{"d":"35,-188v0,-49,33,-77,96,-72r59,0r0,260r-37,0r0,-111r-24,0v-21,19,-53,75,-77,111r-48,0v30,-33,56,-94,92,-117v-33,-7,-61,-34,-61,-71xm74,-187v0,41,34,51,79,49r0,-95v-46,-3,-79,6,-79,46","w":223},"\u0430":{"d":"35,-181v53,-23,128,-24,128,45r0,87v1,23,6,31,25,29r2,19v-25,10,-52,6,-57,-23v-39,44,-115,36,-115,-24v0,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38","w":198},"\u0431":{"d":"20,-124v1,-98,20,-153,109,-154v17,0,33,-3,47,-9r0,28v-30,12,-87,0,-101,30v-11,15,-18,41,-21,80v18,-28,41,-42,70,-42v47,0,74,43,73,94v0,56,-34,102,-90,101v-58,0,-87,-42,-87,-128xm109,-22v35,-1,51,-34,51,-73v0,-81,-71,-78,-106,-30v-1,65,16,104,55,103","w":214},"\u0432":{"d":"169,-48v0,58,-75,48,-134,48r0,-191v54,1,126,-10,127,42v0,23,-13,39,-37,49v30,9,44,27,44,52xm133,-51v0,-29,-30,-39,-64,-36r0,61v34,-2,65,5,64,-25xm69,-110v32,2,59,-5,57,-32v3,-21,-30,-25,-57,-23r0,55","w":188},"\u0433":{"d":"35,0r0,-191r138,0r0,31r-104,0r0,160r-34,0","w":177},"\u0434":{"d":"31,-30v30,-39,39,-88,37,-161r124,0r0,161r35,0r0,73r-35,0r0,-43r-144,0r0,43r-35,0r0,-73r18,0xm103,-165v1,58,-9,99,-31,135r85,0r0,-135r-54,0","w":241},"\u0435":{"d":"103,-195v54,1,76,44,72,105r-120,0v6,69,60,81,120,56r0,28v-81,31,-155,-8,-155,-90v0,-53,32,-100,83,-99xm56,-116r85,0v0,-36,-14,-53,-40,-53v-27,0,-42,17,-45,53","w":200},"\u0436":{"d":"148,-85r0,85r-34,0r0,-85v-39,-3,-35,38,-58,65r-10,20r-37,0v22,-32,30,-82,68,-97v-24,-8,-25,-60,-52,-68v1,-8,-3,-22,2,-26v54,-3,31,84,87,83r0,-83r34,0r0,83v53,4,32,-87,89,-83r0,26v-28,8,-27,60,-52,68v39,15,44,65,68,97v-23,1,-44,3,-48,-20v-14,-26,-25,-51,-41,-65r-16,0","w":261},"\u0437":{"d":"153,-56v0,57,-78,72,-138,52r0,-29v35,15,99,20,102,-23v2,-24,-22,-36,-60,-35r0,-22v64,10,78,-57,11,-56v-15,0,-32,4,-50,10r0,-28v46,-14,129,-15,129,38v0,18,-12,35,-35,47v27,8,41,23,41,46","w":172},"\u0438":{"d":"35,0r0,-191r32,0r0,145r89,-145r35,0r0,191r-33,0r0,-144r-89,144r-34,0","w":225},"\u0439":{"d":"35,0r0,-191r32,0r0,145r89,-145r35,0r0,191r-33,0r0,-144r-89,144r-34,0xm178,-278v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":225},"\u043a":{"d":"69,-81r0,81r-34,0r0,-191r34,0r0,84v57,-1,34,-92,98,-84r0,26v-36,3,-28,59,-62,69v39,11,47,68,71,96r-38,0v-12,-25,-37,-68,-51,-81r-18,0","w":193},"\u043b":{"d":"7,0r0,-30v22,-2,27,-14,34,-36v9,-30,13,-78,12,-125r124,0r0,191r-35,0r0,-165r-55,0v-2,86,-9,159,-80,165","w":211},"\u043c":{"d":"35,0r0,-191r37,0r58,149r56,-149r41,0r0,191r-36,0r0,-145r-49,132r-34,0r-46,-120r0,133r-27,0","w":261},"\u043d":{"d":"35,0r0,-191r34,0r0,78r87,0r0,-78r35,0r0,191r-35,0r0,-87r-87,0r0,87r-34,0","w":225},"\u043e":{"d":"202,-95v0,58,-33,99,-91,99v-58,0,-91,-40,-91,-99v0,-60,33,-100,91,-100v57,0,91,41,91,100xm56,-95v0,41,17,73,55,73v38,0,54,-32,54,-73v0,-42,-15,-74,-54,-74v-39,0,-55,33,-55,74","w":221},"\u043f":{"d":"35,0r0,-191r156,0r0,191r-35,0r0,-160r-87,0r0,160r-34,0","w":225},"\u0440":{"d":"207,-101v0,86,-84,139,-138,79r0,91r-34,0r0,-260r34,0r0,36v14,-27,36,-40,64,-40v50,0,74,41,74,94xm69,-46v45,47,101,19,101,-52v0,-83,-64,-82,-101,-35r0,87","w":226},"\u0441":{"d":"59,-95v0,62,56,89,108,59r0,30v-80,32,-147,-12,-147,-91v0,-80,66,-113,145,-92r0,29v-60,-25,-106,2,-106,65","w":184},"\u0442":{"d":"72,0r0,-160r-70,0r0,-31r174,0r0,31r-70,0r0,160r-34,0","w":177},"\u0443":{"d":"81,-12r-79,-179r34,0r61,138r54,-138r35,0r-73,187v-26,57,-28,72,-99,73r0,-30v48,2,50,-16,67,-51","w":189},"\u0444":{"d":"200,-195v90,2,92,197,0,199v-14,0,-26,-5,-37,-17r0,82r-35,0r0,-82v-50,49,-113,-16,-106,-81v-8,-66,57,-133,106,-84r0,-82r35,0r0,82v9,-12,20,-17,37,-17xm101,-167v-60,2,-61,141,0,143v8,0,17,-3,27,-8r0,-127v-10,-6,-18,-8,-27,-8xm189,-24v61,0,60,-141,1,-143v-9,0,-18,2,-27,8r0,127v10,5,18,8,26,8","w":290},"\u0445":{"d":"15,0r73,-99r-70,-92r41,0r55,74r51,-74r34,0r-66,97r71,94r-41,0r-57,-76r-56,76r-35,0","w":220},"\u0446":{"d":"35,0r0,-191r34,0r0,161r87,0r0,-161r35,0r0,161r35,0r0,73r-35,0r0,-43r-156,0","w":240},"\u0447":{"d":"49,-191v3,43,-13,100,35,100v13,0,25,-3,35,-9r0,-91r35,0r0,191r-35,0r0,-75v-58,23,-114,3,-105,-73r0,-43r35,0","w":188},"\u0448":{"d":"35,0r0,-191r34,0r0,161r65,0r0,-161r35,0r0,161r65,0r0,-161r35,0r0,191r-234,0","w":303},"\u0449":{"d":"35,0r0,-191r34,0r0,161r65,0r0,-161r35,0r0,161r65,0r0,-161r35,0r0,161r35,0r0,73r-35,0r0,-43r-234,0","w":318},"\u044a":{"d":"55,0r0,-165r-52,0r0,-26r87,0r0,77v57,-3,96,14,96,56v0,55,-66,62,-131,58xm149,-58v0,-30,-27,-30,-59,-30r0,62v33,2,59,-6,59,-32","w":201},"\u044b":{"d":"35,0r0,-191r34,0r0,77v57,-3,96,14,96,56v0,54,-65,62,-130,58xm191,0r0,-191r35,0r0,191r-35,0xm128,-58v0,-30,-27,-31,-59,-30r0,62v33,2,59,-6,59,-32","w":260},"\u044c":{"d":"36,0r0,-191r34,0r0,77v57,-3,96,14,96,56v0,54,-65,62,-130,58xm129,-58v0,-30,-27,-31,-59,-30r0,62v33,2,59,-6,59,-32","w":182},"\u044d":{"d":"164,-99v0,81,-70,124,-149,94r0,-31v49,23,108,16,113,-49r-67,0r0,-26r67,0v1,-57,-59,-72,-106,-45r0,-29v71,-29,142,5,142,86","w":183},"\u044e":{"d":"189,-169v-35,0,-48,34,-48,74v0,40,13,73,48,73v35,0,48,-33,48,-73v0,-41,-12,-74,-48,-74xm189,4v-50,-1,-81,-36,-84,-86r-36,0r0,82r-34,0r0,-191r34,0r0,83r36,0v3,-50,33,-86,84,-87v55,0,85,44,85,100v0,56,-31,99,-85,99","w":293},"\u044f":{"d":"26,-138v-1,-53,59,-56,123,-53r0,191r-35,0r0,-77v-45,-3,-47,54,-69,77r-38,0v18,-25,35,-74,59,-86v-21,-7,-39,-27,-40,-52xm114,-165v-30,-2,-51,7,-51,30v0,23,20,34,51,32r0,-62","w":183},"\u0451":{"d":"103,-195v54,1,76,44,72,105r-120,0v6,69,60,81,120,56r0,28v-81,31,-155,-8,-155,-90v0,-53,32,-100,83,-99xm56,-116r85,0v0,-36,-14,-53,-40,-53v-27,0,-42,17,-45,53xm54,-226r0,-30r30,0r0,30r-30,0xm123,-226r0,-30r30,0r0,30r-30,0","w":200},"\u0452":{"d":"156,-95v0,-25,-4,-40,-27,-40v-21,0,-41,14,-60,42r0,93r-34,0r0,-200r-35,0r0,-21r35,0r0,-57r34,0r0,57r66,0r0,21r-66,0r0,75v29,-56,123,-54,122,18v-1,83,24,207,-83,177r0,-27v26,12,48,2,48,-33r0,-105","w":223},"\u0453":{"d":"35,0r0,-191r138,0r0,31r-104,0r0,160r-34,0xm69,-226r43,-56r40,0r-57,56r-26,0","w":177},"\u0454":{"d":"56,-87v-2,64,59,78,112,54r0,27v-76,30,-148,-8,-148,-90v0,-83,66,-114,146,-93r0,29v-54,-19,-108,-8,-110,47r67,0r0,26r-67,0","w":183},"\u0455":{"d":"144,-86v41,67,-42,113,-116,79r0,-31v23,11,42,16,59,16v18,0,34,-11,34,-28v0,-19,-30,-32,-48,-38v-68,-22,-52,-107,22,-107v12,0,33,2,47,6r0,29v-34,-11,-74,-19,-80,15v1,30,70,37,82,59","w":183},"\u0456":{"d":"35,0r0,-191r34,0r0,191r-34,0xm35,-226r0,-34r34,0r0,34r-34,0","w":104},"\u0457":{"d":"35,0r0,-191r34,0r0,191r-34,0xm2,-226r0,-30r30,0r0,30r-30,0xm71,-226r0,-30r30,0r0,30r-30,0","w":104},"\u0458":{"d":"-27,37v38,19,67,17,67,-37r0,-191r35,0r0,191v3,67,-49,88,-102,65r0,-28xm40,-226r0,-34r35,0r0,34r-35,0","w":109},"\u0459":{"d":"7,0r0,-30v22,-2,27,-14,34,-36v9,-30,13,-78,12,-125r124,0r0,77v57,-3,95,14,95,56v0,54,-65,62,-130,58r0,-165r-55,0v-2,86,-9,159,-80,165xm235,-58v0,-30,-26,-31,-58,-30r0,62v33,2,58,-6,58,-32","w":288},"\u045a":{"d":"35,0r0,-191r34,0r0,77r87,0r0,-77r35,0r0,77v56,-3,95,14,95,56v0,54,-65,62,-130,58r0,-88r-87,0r0,88r-34,0xm249,-58v0,-30,-26,-31,-58,-30r0,62v33,2,58,-6,58,-32","w":302},"\u045b":{"d":"156,-95v0,-25,-4,-40,-27,-40v-21,0,-41,14,-60,42r0,93r-34,0r0,-200r-35,0r0,-21r35,0r0,-52r34,0r0,52r66,0r0,21r-66,0r0,75v29,-56,122,-54,122,18r0,107r-35,0r0,-95","w":223},"\u045c":{"d":"69,-81r0,81r-34,0r0,-191r34,0r0,84v57,-1,34,-92,98,-84r0,26v-36,3,-28,59,-62,69v39,11,47,68,71,96r-38,0v-12,-25,-37,-68,-51,-81r-18,0xm73,-226r43,-56r40,0r-57,56r-26,0","w":193},"\u045e":{"d":"81,-12r-79,-179r34,0r61,138r54,-138r35,0r-73,187v-26,57,-28,72,-99,73r0,-30v48,2,50,-16,67,-51xm152,-278v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":189},"\u045f":{"d":"35,0r0,-191r34,0r0,161r87,0r0,-161r35,0r0,191r-61,0r0,43r-35,0r0,-43r-60,0","w":225},"\u0462":{"d":"187,-77v0,-43,-38,-45,-85,-44r0,94v50,2,84,-8,85,-50xm223,-79v2,74,-73,83,-158,79r0,-198r-65,0r0,-28r65,0r0,-34r37,0r0,34r69,0r0,28r-69,0r0,49v70,-5,120,11,121,70","w":236},"\u0463":{"d":"87,-26v33,2,58,-6,58,-32v0,-23,-26,-31,-58,-29r0,61xm52,0r0,-169r-48,0r0,-22r48,0r0,-87r35,0r0,87r56,0r0,22r-56,0r0,55v57,-3,95,14,95,56v0,54,-65,62,-130,58","w":198},"\u046a":{"d":"152,-142r78,-91r-170,0r77,91r15,0xm242,0v-21,-44,-29,-105,-67,-123r-13,0r0,123r-34,0r0,-123r-13,0v-38,18,-45,78,-67,123r-38,0v28,-50,32,-129,95,-139r-80,-94r0,-27r240,0r0,27r-80,94v63,10,66,90,95,139r-38,0","w":289},"\u046b":{"d":"128,-104r5,0r60,-61r-125,0xm245,0v-23,1,-44,3,-48,-20v-14,-26,-25,-51,-41,-65r-12,0r0,85r-34,0r0,-85v-38,1,-39,57,-64,85r-37,0v25,-34,30,-91,80,-99r-66,-66r0,-26r206,0r0,26r-66,66v51,8,56,64,82,99","w":252},"\u0490":{"d":"34,0r0,-260r110,0r0,-52r35,0r0,79r-109,0r0,233r-36,0","w":183},"\u0491":{"d":"35,0r0,-191r104,0r0,-43r34,0r0,74r-104,0r0,160r-34,0","w":177},"\u0492":{"d":"43,0r0,-118r-39,0r0,-27r39,0r0,-115r146,0r0,27r-109,0r0,88r65,0r0,27r-65,0r0,118r-37,0","w":202},"\u0493":{"d":"35,0r0,-80r-26,0r0,-22r26,0r0,-89r138,0r0,31r-104,0r0,58r61,0r0,22r-61,0r0,80r-34,0","w":177},"\u0494":{"d":"173,-55v0,-71,-57,-97,-103,-52r0,107r-36,0r0,-260r130,0r0,27r-94,0r0,92v64,-46,143,-4,143,78v0,64,-46,127,-112,112r0,-28v45,17,72,-29,72,-76","w":225},"\u0495":{"d":"101,26v50,1,58,-111,5,-113v-11,0,-23,4,-37,13r0,74r-34,0r0,-191r118,0r0,26r-84,0r0,61v53,-36,110,3,110,68v0,52,-33,94,-86,87r0,-25r8,0","w":196},"\u0496":{"d":"246,0v-21,-43,-30,-105,-66,-123r-15,0r0,123r-35,0r0,-123r-15,0v-38,18,-45,78,-67,123r-38,0v26,-47,33,-119,84,-137v-33,-15,-33,-88,-74,-96r0,-27v58,-2,61,75,91,105v4,4,11,7,19,7r0,-112r35,0r0,112v30,-2,35,-39,48,-60v19,-31,22,-50,61,-52r0,27v-42,7,-39,82,-74,96v43,11,51,69,71,107r35,0r0,82r-35,0r0,-52r-25,0","w":314},"\u0497":{"d":"114,0r0,-85v-39,-3,-35,38,-58,65r-10,20r-37,0v22,-32,30,-82,68,-97v-24,-8,-25,-60,-52,-68v1,-8,-3,-22,2,-26v54,-3,31,84,87,83r0,-83r34,0r0,83v53,4,32,-87,89,-83r0,26v-28,8,-27,60,-52,68v28,9,38,42,51,67r35,0r0,73r-35,0r0,-43v-30,7,-30,-27,-42,-41v-20,-26,-11,-44,-46,-44r0,85r-34,0","w":281},"\u0498":{"d":"180,-74v0,74,-98,97,-169,70r0,-33v54,22,130,27,130,-34v0,-43,-39,-55,-88,-54r0,-26v44,1,80,-12,81,-50v1,-48,-76,-44,-118,-25r0,-30v60,-21,156,-16,156,52v0,31,-19,52,-57,63v37,5,65,28,65,67xm116,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":194},"\u0499":{"d":"153,-56v0,57,-78,72,-138,52r0,-29v35,15,99,20,102,-23v2,-24,-22,-36,-60,-35r0,-22v64,10,78,-57,11,-56v-15,0,-32,4,-50,10r0,-28v46,-14,129,-15,129,38v0,18,-12,35,-35,47v27,8,41,23,41,46xm107,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":172},"\u049a":{"d":"187,0v-9,-1,-25,4,-26,-5v-19,-37,-44,-99,-73,-115r-18,0r0,120r-36,0r0,-260r36,0v2,36,-4,80,2,112v61,-3,46,-116,120,-112r0,27v-38,5,-48,83,-82,97v45,13,53,66,77,106r34,0r0,86r-34,0r0,-56","w":229},"\u049b":{"d":"138,0v-14,-26,-35,-65,-51,-81r-18,0r0,81r-34,0r0,-191r34,0r0,84v57,1,33,-90,98,-84r0,26v-38,3,-27,62,-62,69v33,9,33,36,53,66r35,0r0,73r-35,0r0,-43r-20,0","w":203},"\u049c":{"d":"70,-120r0,120r-36,0r0,-260r36,0r0,112r27,0r0,-52r21,0v2,16,-4,40,2,52v53,-9,45,-115,115,-112r0,27v-38,5,-47,83,-82,97v53,18,62,90,93,136v-14,-2,-37,5,-42,-5v-18,-37,-43,-99,-72,-115r-14,0r0,52r-21,0r0,-52r-27,0","w":261},"\u049d":{"d":"35,0r0,-191r34,0r0,84r26,0r0,-39r22,0v1,12,-2,29,1,39v54,-4,32,-93,96,-84r0,26v-37,2,-28,59,-62,69v39,11,47,68,71,96r-39,0v-13,-25,-36,-69,-51,-81r-16,0r0,39r-22,0r0,-39r-26,0r0,81r-34,0","w":240},"\u049e":{"d":"39,0r0,-200r-36,0r0,-26r36,0r0,-34r37,0r0,34r36,0r0,26r-36,0v2,16,-4,40,2,52v61,-2,46,-115,119,-112v-1,8,3,22,-2,27v-35,8,-47,83,-80,97v54,16,62,92,93,136v-14,-2,-37,5,-42,-5v-18,-37,-43,-99,-72,-115r-18,0r0,120r-37,0","w":218},"\u049f":{"d":"35,0r0,-213r-35,0r0,-21r35,0r0,-44r34,0r0,44r46,0r0,21r-46,0r0,106v57,-1,34,-92,98,-84r0,26v-36,3,-28,59,-62,69v39,11,47,68,71,96r-38,0v-12,-25,-37,-68,-51,-81r-18,0r0,81r-34,0","w":193},"\u04a0":{"d":"106,-120r0,120r-37,0r0,-233r-69,0r0,-27r106,0v2,36,-4,80,2,112v61,-3,46,-116,120,-112r0,27v-39,4,-48,84,-83,97v54,16,62,92,93,136r-39,0v-20,-38,-45,-103,-75,-120r-18,0","w":249},"\u04a1":{"d":"89,-81r0,81r-35,0r0,-165r-52,0r0,-26r87,0r0,84v57,-2,32,-92,98,-84r0,26v-37,3,-31,60,-62,69v38,11,47,70,70,96r-38,0v-13,-26,-34,-66,-51,-81r-17,0","w":212},"\u04a2":{"d":"34,0r0,-260r36,0r0,110r124,0r0,-110r37,0r0,233r35,0r0,83r-35,0r0,-56r-37,0r0,-123r-124,0r0,123r-36,0","w":276},"\u04a3":{"d":"35,0r0,-191r34,0r0,78r86,0r0,-78r35,0r0,161r34,0r0,73r-34,0r0,-43r-35,0r0,-87r-86,0r0,87r-34,0","w":237},"\u04a4":{"d":"231,0r-37,0r0,-123r-124,0r0,123r-36,0r0,-260r36,0r0,110r124,0r0,-110r106,0r0,27r-69,0r0,233","w":304},"\u04a5":{"d":"190,0r-35,0r0,-87r-86,0r0,87r-34,0r0,-191r34,0r0,78r86,0r0,-78r87,0r0,26r-52,0r0,165","w":246},"\u04a6":{"d":"261,25v70,3,78,-154,6,-155v-17,0,-34,8,-53,23r0,107r-37,0r0,-233r-107,0r0,233r-36,0r0,-260r180,0r0,119v63,-47,142,-3,142,78v0,65,-46,128,-112,112r0,-28v6,2,11,4,17,4","w":368},"\u04a7":{"d":"223,26v49,2,57,-112,5,-113v-11,0,-23,4,-37,13r0,74r-35,0r0,-160r-87,0r0,160r-34,0r0,-191r156,0r0,87v53,-37,109,4,109,68v0,52,-33,94,-85,87r0,-25r8,0","w":317},"\u04a8":{"d":"193,-184v-57,10,-36,123,-7,150v26,-20,38,-51,38,-93v1,-30,-7,-55,-31,-57xm20,-130v0,-78,45,-137,120,-137v47,0,80,25,98,74v47,53,12,151,-34,181v19,16,41,25,68,27r0,28v-49,-3,-66,-14,-93,-42v-92,27,-159,-40,-159,-131xm159,-24v-46,-45,-53,-190,37,-188v-12,-18,-29,-27,-52,-27v-59,0,-85,45,-85,109v0,67,34,120,100,106","w":278},"\u04a9":{"d":"146,-29v16,-14,24,-36,24,-64v0,-22,-6,-33,-18,-33v-31,1,-26,76,-6,97xm20,-95v0,-101,132,-138,165,-49v37,34,10,116,-26,133v19,20,39,31,60,31r0,26v-34,-3,-63,-19,-85,-45v-69,16,-114,-30,-114,-96xm119,-22v-30,-48,-28,-127,32,-130v-37,-37,-100,-12,-95,57v4,52,20,75,63,73","w":223},"\u04aa":{"d":"57,-130v0,99,94,135,172,85r0,32v-96,50,-211,4,-211,-117v0,-117,98,-162,211,-125r0,34v-95,-40,-172,-12,-172,91xm177,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":249},"\u04ab":{"d":"59,-95v0,62,56,89,108,59r0,30v-80,32,-147,-12,-147,-91v0,-80,66,-113,145,-92r0,29v-60,-25,-106,2,-106,65xm146,47v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":184},"\u04ac":{"d":"95,0r0,-233r-92,0r0,-27r222,0r0,27r-93,0r0,203r35,0r0,86r-35,0r0,-56r-37,0","w":227},"\u04ad":{"d":"72,0r0,-160r-70,0r0,-31r174,0r0,31r-70,0r0,130r35,0r0,73r-35,0r0,-43r-34,0","w":177},"\u04ae":{"d":"90,0r0,-109r-87,-151r42,0r68,117r72,-117r35,0r-93,151r0,109r-37,0","w":224},"\u04af":{"d":"69,0r0,-80r-67,-111r39,0r49,82r52,-82r30,0r-69,111r0,80r-34,0","w":174},"\u04b0":{"d":"90,0r0,-55r-65,0r0,-26r65,0r0,-28r-87,-151r42,0r68,117r72,-117r35,0r-93,151r0,28r65,0r0,26r-65,0r0,55r-37,0","w":224},"\u04b1":{"d":"69,0r0,-40r-50,0r0,-22r50,0r0,-18r-67,-111r39,0r49,82r52,-82r30,0r-69,111r0,18r50,0r0,22r-50,0r0,40r-34,0","w":174},"\u04b2":{"d":"3,0r86,-131r-82,-129r44,0r62,98r66,-98r35,0r-83,126r64,101r35,0r0,89r-35,0r0,-56r-23,0r-66,-103r-68,103r-35,0","w":238},"\u04b3":{"d":"15,0r73,-99r-70,-92r41,0r55,74r51,-74r34,0r-66,97r48,64r35,0r0,73r-35,0r0,-43r-18,0r-57,-76r-56,76r-35,0","w":226},"\u04b4":{"d":"72,0r0,-233r-70,0r0,-27r167,0r0,27r-61,0r0,200r124,0r0,-227r37,0r0,227r35,0r0,89r-35,0r0,-56r-197,0","w":314},"\u04b5":{"d":"46,0r0,-165r-44,0r0,-26r122,0r0,26r-44,0r0,135r87,0r0,-161r35,0r0,161r34,0r0,73r-34,0r0,-43r-156,0","w":249},"\u04b6":{"d":"51,-260v5,58,-20,141,46,141v23,0,42,-9,59,-27r0,-114r37,0r0,233r35,0r0,83r-35,0r0,-56r-37,0r0,-113v-52,45,-154,27,-142,-61r0,-86r37,0","w":238},"\u04b7":{"d":"49,-191v2,42,-11,99,32,99v14,0,26,-5,38,-15r0,-84r35,0r0,161r35,0r0,73r-35,0r0,-43r-35,0r0,-80v-51,30,-115,10,-105,-68r0,-43r35,0","w":201},"\u04b8":{"d":"91,-89v-50,-1,-77,-27,-77,-85r0,-86r37,0v6,54,-22,138,40,140r0,-58r22,0r0,57v18,-5,32,-13,43,-25r0,-114r37,0r0,260r-37,0r0,-113v-11,10,-25,16,-43,21r0,51r-22,0r0,-48","w":226},"\u04b9":{"d":"73,-66v-60,1,-62,-58,-59,-125r35,0v4,38,-13,93,24,98r0,-37r22,0r0,36v10,-3,17,-7,24,-13r0,-84r35,0r0,191r-35,0r0,-80v-7,5,-15,9,-24,11r0,43r-22,0r0,-40","w":188},"\u04ba":{"d":"176,0v-4,-58,19,-141,-46,-141v-23,0,-43,9,-60,27r0,114r-36,0r0,-260r36,0r0,113v52,-45,154,-27,143,61r0,86r-37,0","w":226},"\u04bb":{"d":"140,0v-2,-42,10,-101,-32,-99v-14,0,-27,6,-39,16r0,83r-34,0r0,-191r34,0r0,80v51,-31,116,-10,106,68r0,43r-35,0","w":188},"\u04bc":{"d":"81,-155v8,-63,44,-111,109,-112v67,-2,98,51,95,139r-169,0v-2,55,36,105,88,104v26,0,52,-6,79,-19r0,33v-98,47,-211,-6,-204,-118v-57,2,-81,-32,-67,-81r29,0v-13,31,-3,61,40,54xm119,-155r127,0v8,-81,-60,-109,-103,-62v-13,15,-21,36,-24,62","w":308},"\u04bd":{"d":"161,-195v54,0,76,44,73,105r-121,0v6,68,61,82,120,56r0,28v-80,30,-152,-6,-155,-84v-60,3,-85,-29,-70,-81r26,0v-13,34,-1,63,46,55v7,-45,33,-79,81,-79xm115,-116r84,0v0,-36,-14,-53,-40,-53v-27,0,-41,17,-44,53","w":259},"\u04be":{"d":"81,-155v8,-63,44,-111,109,-112v67,-2,98,51,95,139r-169,0v-2,55,36,105,88,104v26,0,52,-6,79,-19r0,33v-98,47,-211,-6,-204,-118v-57,2,-81,-32,-67,-81r29,0v-13,31,-3,61,40,54xm119,-155r127,0v8,-81,-60,-109,-103,-62v-13,15,-21,36,-24,62xm230,60v-22,11,-61,4,-60,-23v0,-17,15,-40,46,-37v-15,9,-22,19,-22,31v0,17,22,20,36,15r0,14","w":308},"\u04bf":{"d":"161,-195v54,0,76,44,73,105r-121,0v6,68,61,82,120,56r0,28v-80,30,-152,-6,-155,-84v-60,3,-85,-29,-70,-81r26,0v-13,34,-1,63,46,55v7,-45,33,-79,81,-79xm115,-116r84,0v0,-36,-14,-53,-40,-53v-27,0,-41,17,-44,53xm194,60v-22,11,-61,4,-60,-23v0,-17,15,-40,46,-37v-15,9,-22,19,-22,31v0,17,22,20,36,15r0,14","w":259},"\u04c0":{"d":"33,0r0,-260r37,0r0,260r-37,0","w":103},"\u04c1":{"d":"115,-123v-38,18,-45,78,-67,123r-38,0v26,-47,33,-119,84,-137v-33,-15,-33,-88,-74,-96r0,-27v58,-2,61,75,91,105v4,4,11,7,19,7r0,-112r35,0r0,112v30,-2,35,-39,48,-60v19,-31,22,-50,61,-52r0,27v-42,7,-39,82,-74,96v51,18,59,89,84,137r-38,0v-23,-41,-26,-101,-68,-123r-13,0r0,123r-35,0r0,-123r-15,0xm206,-334v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":294},"\u04c2":{"d":"148,-85r0,85r-34,0r0,-85v-39,-3,-35,38,-58,65r-10,20r-37,0v22,-32,30,-82,68,-97v-24,-8,-25,-60,-52,-68v1,-8,-3,-22,2,-26v54,-3,31,84,87,83r0,-83r34,0r0,83v53,4,32,-87,89,-83r0,26v-28,8,-27,60,-52,68v39,15,44,65,68,97v-23,1,-44,3,-48,-20v-14,-26,-25,-51,-41,-65r-16,0xm189,-278v-1,46,-64,68,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,70,35,73,0r22,0","w":261},"\u04c3":{"d":"159,-47v0,-50,-35,-76,-89,-73r0,120r-36,0r0,-260r36,0v2,36,-4,80,2,112v61,-3,46,-116,120,-112r0,27v-34,1,-52,81,-77,94v45,-1,83,44,83,91v0,56,-40,110,-98,98r0,-28v39,13,59,-27,59,-69","w":215},"\u04c4":{"d":"137,-28v0,-36,-28,-55,-68,-53r0,81r-34,0r0,-191r34,0r0,84v57,-1,34,-92,98,-84r0,26v-35,2,-28,59,-61,68v36,3,65,32,65,71v0,44,-32,84,-80,77r0,-26v33,7,46,-22,46,-53","w":193},"\u04c7":{"d":"143,41v30,12,51,7,51,-36r0,-128r-124,0r0,123r-36,0r0,-260r36,0r0,110r124,0r0,-110r37,0r0,264v6,60,-37,80,-88,65r0,-28","w":264},"\u04c8":{"d":"107,43v27,12,48,2,48,-34r0,-96r-86,0r0,87r-34,0r0,-191r34,0r0,78r86,0r0,-78r35,0r0,207v2,46,-39,67,-83,54r0,-27","w":224},"\u04cb":{"d":"51,-260v5,58,-20,141,46,141v23,0,42,-9,59,-27r0,-114r37,0r0,260r-37,0r0,56r-35,0r0,-83r35,0r0,-86v-52,45,-154,27,-142,-61r0,-86r37,0","w":226},"\u04cc":{"d":"49,-191v2,42,-11,99,32,99v14,0,26,-5,38,-15r0,-84r35,0r0,191r-35,0r0,43r-34,0r0,-73r34,0r0,-50v-51,30,-115,10,-105,-68r0,-43r35,0","w":188},"\u05b0":{"d":"128,17r21,22r-21,21r-22,-21xm128,78r21,21r-21,22r-22,-22","w":0},"\u05b1":{"d":"68,17r21,22r-21,21r-22,-21xm98,78r21,21r-21,22r-22,-22xm128,17r21,22r-21,21r-22,-21xm188,17r22,22r-22,21r-21,-21xm188,78r22,21r-22,22r-21,-22","w":0},"\u05b2":{"d":"54,39r7,-22r81,0r-8,22r-80,0xm180,17r22,22r-22,21r-21,-21xm180,78r22,21r-22,22r-21,-22","w":0},"\u05b3":{"d":"87,100r0,-61r-34,0r8,-22r81,0r-8,22r-26,0r0,61r-21,0xm181,17r21,22r-21,21r-22,-21xm181,78r21,21r-21,22r-22,-22","w":0},"\u05b4":{"d":"128,17r21,22r-21,21r-22,-21","w":0},"\u05b5":{"d":"98,17r21,22r-21,21r-22,-21xm158,17r21,22r-21,21r-22,-21","w":0},"\u05b6":{"d":"98,17r21,22r-21,21r-22,-21xm158,17r21,22r-21,21r-22,-21xm128,78r21,21r-21,22r-22,-22","w":0},"\u05b7":{"d":"84,39r7,-22r81,0r-8,22r-80,0","w":0},"\u05b8":{"d":"117,100r0,-61r-33,0r7,-22r81,0r-7,22r-26,0r0,61r-22,0","w":0},"\u05b9":{"d":"0,-268r22,21r-22,21r-21,-21","w":0},"\u05bb":{"d":"68,17r21,22r-21,21r-22,-21xm128,47r21,22r-21,21r-22,-21xm188,78r22,21r-22,22r-21,-22","w":0},"\u05bc":{"d":"82,-89r0,-35r34,0r0,35r-34,0","w":0},"\u05bd":{"d":"117,76r0,-59r22,0r0,59r-22,0","w":0},"\u05be":{"d":"17,-173r12,-35r105,0r-11,35r-106,0","w":151},"\u05bf":{"d":"84,-243r7,-22r81,0r-8,22r-80,0","w":0},"\u05c0":{"d":"30,4r0,-186r31,-31r0,187","w":91},"\u05c1":{"d":"224,-268r22,21r-22,21r-21,-21","w":0},"\u05c2":{"d":"32,-268r22,21r-22,21r-21,-21","w":0},"\u05c3":{"d":"45,-51r28,28r-28,27r-28,-27xm45,-213r28,28r-28,28r-28,-28","w":89},"\u05d0":{"d":"48,-213v29,23,75,69,99,99v19,-25,26,-54,25,-94r33,0v1,47,-12,78,-42,115v21,24,38,50,51,77r-26,20v-21,-41,-57,-88,-108,-142v-21,27,-29,79,-27,138r-32,0v-1,-63,12,-112,40,-157v-11,-12,-24,-24,-39,-35","w":232},"\u05d1":{"d":"85,-208v68,2,77,12,78,84r0,89r26,0r-11,35r-171,0r11,-35r115,0r0,-82v-2,-53,3,-55,-48,-56r-63,0r12,-35r51,0","w":202},"\u05d2":{"d":"18,4r-14,-30v27,-14,55,-34,82,-58v-3,-25,-4,-67,-14,-81v-4,-5,-19,-15,-37,-20r15,-28v35,15,57,22,63,73r7,61v4,36,8,62,13,79r-34,0r-9,-52v-21,22,-46,40,-72,56","w":153},"\u05d3":{"d":"111,0r0,-173r-109,0r12,-35r165,0r-11,35r-27,0r0,173r-30,0","w":180},"\u05d4":{"d":"40,0r0,-139r30,0r0,139r-30,0xm145,-208v68,2,77,12,78,84r0,124r-30,0r0,-117v-2,-53,2,-56,-48,-56r-132,0r12,-35r120,0","w":255},"\u05d5":{"d":"18,-213v49,8,65,24,65,83r0,130r-31,0r0,-126v-1,-45,-9,-46,-50,-57","w":115},"\u05d6":{"d":"71,-151v-23,30,-8,102,-12,151r-30,0v3,-57,-10,-131,18,-162r-44,-20r13,-31r92,43r-13,31","w":114},"\u05d7":{"d":"194,-117v-2,-53,2,-56,-48,-56r-76,0r0,173r-30,0r0,-173r-27,0r12,-35r121,0v68,2,77,12,78,84r0,124r-30,0r0,-117","w":256},"\u05d8":{"d":"128,-210v85,-24,108,86,61,143v-31,37,-75,67,-144,67r-25,-202r29,-11r22,178v66,-2,108,-36,112,-99v3,-39,-30,-53,-66,-43","w":230},"\u05d9":{"d":"23,-213v67,6,74,55,54,122r-31,0v14,-56,18,-84,-38,-91","w":114},"\u05da":{"d":"125,52r0,-225r-120,0r12,-35r138,0r0,260r-30,0","w":190},"\u05db":{"d":"85,-208v104,-11,110,99,73,173r-11,35r-140,0r11,-35r110,0v30,-53,40,-148,-45,-138r-60,0r11,-35r51,0","w":205},"\u05dc":{"d":"48,-208v59,1,120,-9,120,54v0,81,-69,146,-142,158r13,-37v57,-5,97,-52,97,-111v0,-43,-73,-25,-119,-29r0,-98r31,-11r0,74","w":191},"\u05dd":{"d":"146,-208v68,2,77,12,78,84v0,45,4,94,-11,124r-173,0r0,-173r-26,0r12,-35r120,0xm194,-35v-8,-57,29,-138,-47,-138r-77,0r0,138r124,0","w":256},"\u05de":{"d":"20,0r27,-139v0,-16,-11,-34,-31,-55r28,-19v9,10,18,24,28,42v29,-41,78,-60,108,-23v25,30,23,108,31,159r-12,35r-105,0r12,-35r75,0v-10,-46,-3,-140,-48,-143v-58,-5,-69,118,-83,178r-30,0","w":237},"\u05df":{"d":"17,-213v34,15,63,24,63,79r0,186r-31,0r0,-182v3,-40,-22,-43,-47,-54","w":112},"\u05e0":{"d":"54,-213v33,16,66,23,62,79v-3,47,5,102,-11,134r-98,0r11,-35r68,0r0,-95v2,-39,-21,-44,-47,-54","w":148},"\u05e1":{"d":"15,-208v76,10,208,-32,201,55v-7,91,-63,152,-165,153r-21,-173r-27,0xm183,-143v2,-47,-74,-24,-123,-30r17,138v64,1,103,-49,106,-108","w":239},"\u05e2":{"d":"99,-40v59,-32,63,-77,64,-168r32,0v1,66,-13,130,-46,164v-41,42,-92,65,-154,68r12,-36v20,0,42,-5,64,-14r-40,-176r29,-11","w":216},"\u05e3":{"d":"60,-94v-72,4,-53,-73,-31,-119v48,22,127,9,127,81r0,184r-30,0v-3,-63,8,-147,-7,-197v-9,-12,-55,-21,-76,-28v-11,23,-12,53,26,49","w":188},"\u05e4":{"d":"77,-94v-72,3,-53,-73,-31,-119v48,22,130,9,127,81v-2,47,5,100,-11,132r-153,0r11,-35r123,0v-2,-34,5,-88,-6,-110v-10,-12,-55,-21,-77,-28v-11,23,-11,53,27,49","w":206},"\u05e5":{"d":"163,-208v0,71,-28,102,-76,134r0,126r-31,0v-4,-52,9,-113,-10,-153r-45,-102r29,-10r50,113v35,-24,52,-52,51,-108r32,0","w":174},"\u05e6":{"d":"110,-103v32,-30,41,-48,41,-105r32,0v1,52,-17,88,-56,124v22,24,40,41,53,51r-11,33r-164,0r11,-33r113,0v-41,-34,-95,-114,-111,-169r31,-11v13,39,33,76,61,110","w":206},"\u05e7":{"d":"39,52r0,-190r30,0r0,190r-30,0xm25,-208v75,8,194,-30,191,55v-3,79,-60,137,-128,157r12,-37v43,-8,83,-60,83,-110v0,-27,-32,-30,-65,-30r-105,0","w":239},"\u05e8":{"d":"73,-208v68,2,77,12,78,84r0,124r-30,0r0,-117v-2,-53,2,-56,-48,-56r-63,0r11,-35r52,0","w":183},"\u05e9":{"d":"240,-208v4,138,-61,206,-194,208r-25,-200r29,-13r15,121v48,-7,50,-56,49,-116r32,0v3,81,-11,132,-78,141r4,32v107,-2,139,-60,136,-173r32,0","w":257},"\u05ea":{"d":"84,-173v-15,37,-26,100,-2,138r-11,35r-67,0r12,-35r32,0v-17,-44,-13,-96,4,-138r-27,0r12,-35r102,0v68,2,77,12,78,84r0,124r-30,0r0,-117v-3,-53,3,-56,-48,-56r-55,0","w":249},"\u05f0":{"d":"18,-213v49,8,65,24,65,83r0,130r-31,0r0,-126v-1,-45,-9,-46,-50,-57xm124,-213v49,8,65,24,65,83r0,130r-30,0r0,-126v-1,-45,-9,-46,-50,-57","w":221},"\u05f1":{"d":"23,-213v67,6,74,55,54,122r-31,0v14,-56,18,-84,-38,-91xm124,-213v48,9,65,23,65,83r0,130r-30,0r0,-126v-1,-45,-9,-46,-50,-57","w":221},"\u05f2":{"d":"23,-213v67,6,74,55,54,122r-31,0v14,-56,18,-84,-38,-91xm125,-213v67,7,74,56,53,122r-31,0v14,-56,18,-84,-38,-91","w":215},"\u05f3":{"d":"22,-173r29,-87r36,0r-44,87r-21,0","w":99},"\u05f4":{"d":"22,-173r29,-87r36,0r-44,87r-21,0xm94,-173r29,-87r36,0r-43,87r-22,0","w":172},"\u2000":{"w":180},"\u2001":{"w":360},"\u2002":{"w":180},"\u2003":{"w":360},"\u2004":{"w":120},"\u2005":{"w":90},"\u2006":{"w":59},"\u2007":{"w":227},"\u2008":{"w":113},"\u2009":{"w":45},"\u200a":{"w":20},"\u200b":{"w":0},"\u200c":{"w":0},"\u200d":{"w":0},"\u200e":{"w":0},"\u200f":{"w":0},"\u2010":{"d":"20,-95r0,-26r78,0r0,26r-78,0","w":117},"\u2011":{"d":"20,-95r0,-26r78,0r0,26r-78,0","w":117},"\u2012":{"d":"43,-95r0,-22r141,0r0,22r-141,0","w":227},"\u2015":{"d":"17,-95r0,-22r326,0r0,22r-326,0","w":360},"\u2016":{"d":"59,52r0,-330r17,0r0,330r-17,0xm132,52r0,-330r18,0r0,330r-18,0","w":208},"\u2017":{"d":"15,22r0,-22r150,0r0,22r-150,0xm15,74r0,-22r150,0r0,22r-150,0","w":180},"\u201b":{"d":"79,-178v-42,0,-47,-50,-44,-100r44,0r0,44r-17,0v-1,23,5,41,17,43r0,13","w":113},"\u201f":{"d":"115,-187v-32,-5,-37,-47,-35,-91r35,0r0,35v-5,1,-15,-3,-13,4v-2,32,14,29,13,52xm54,-187v-32,-5,-36,-47,-34,-91r34,0r0,35v-4,1,-14,-3,-12,4v-2,32,13,30,12,52","w":134},"\u2023":{"d":"102,-103r-67,67r0,-135","w":128},"\u2024":{"d":"43,0r0,-35r34,0r0,35r-34,0","w":120},"\u2025":{"d":"43,0r0,-35r34,0r0,35r-34,0xm163,0r0,-35r34,0r0,35r-34,0","w":239},"\u2027":{"d":"39,-87r0,-39r39,0r0,39r-39,0","w":117},"\u2028":{"w":0},"\u2029":{"w":0},"\u202a":{"w":0},"\u202b":{"w":0},"\u202c":{"w":0},"\u202d":{"w":0},"\u202e":{"w":0},"\u2031":{"d":"4,7r205,-274r27,0r-205,274r-27,0xm113,-195v0,37,-21,65,-56,65v-35,0,-55,-28,-55,-65v0,-37,19,-65,55,-65v36,0,56,28,56,65xm57,-243v-40,1,-39,95,0,96v39,0,42,-96,0,-96xm239,-65v0,37,-21,65,-56,65v-35,0,-55,-28,-55,-65v0,-37,20,-65,55,-65v35,0,56,28,56,65xm183,-113v-40,1,-39,95,0,96v39,0,42,-96,0,-96xm362,-65v0,37,-20,65,-55,65v-35,0,-55,-27,-55,-65v0,-38,20,-65,55,-65v35,0,55,28,55,65xm278,-65v0,25,7,48,29,48v40,-1,39,-95,0,-96v-21,0,-29,23,-29,48xm486,-65v0,37,-21,65,-56,65v-35,0,-55,-28,-55,-65v0,-37,20,-65,55,-65v35,0,56,28,56,65xm430,-113v-40,1,-39,95,0,96v39,0,42,-96,0,-96","w":487},"\u2032":{"d":"26,-173r35,-105r39,0r-52,105r-22,0","w":117},"\u2033":{"d":"26,-173r35,-105r39,0r-52,105r-22,0xm104,-173r35,-105r39,0r-52,105r-22,0","w":195},"\u2034":{"d":"26,-173r35,-105r39,0r-52,105r-22,0xm104,-173r35,-105r39,0r-52,105r-22,0xm182,-173r35,-105r39,0r-52,105r-22,0","w":273},"\u2035":{"d":"91,-173r-22,0r-52,-105r39,0","w":117},"\u2036":{"d":"169,-173r-22,0r-52,-105r39,0xm91,-173r-22,0r-52,-105r39,0","w":195},"\u2037":{"d":"247,-173r-21,0r-53,-105r40,0xm169,-173r-22,0r-52,-105r39,0xm91,-173r-22,0r-52,-105r39,0","w":273},"\u2038":{"d":"4,69r59,-118r60,118r-25,0r-35,-69r-34,69r-25,0","w":126},"\u203b":{"d":"130,-145r84,-85r16,16r-84,84r84,84r-16,16r-84,-85r-84,85r-15,-16r84,-84r-84,-84r15,-16xm65,-130v1,10,-9,20,-19,19v-10,1,-20,-9,-20,-19v0,-10,10,-20,20,-20v10,0,20,10,19,20xm234,-130v1,10,-10,20,-20,19v-10,1,-19,-10,-19,-19v0,-10,9,-20,19,-20v11,-1,20,10,20,20xm150,-214v0,10,-10,19,-20,19v-9,0,-20,-9,-19,-19v-1,-10,9,-20,19,-20v10,0,21,10,20,20xm150,-46v0,10,-10,20,-20,20v-10,0,-20,-10,-19,-20v-1,-10,9,-20,19,-19v10,-1,20,9,20,19","w":260},"\u203c":{"d":"39,0r0,-35r35,0r0,35r-35,0xm43,-69r-4,-191r35,0r-5,191r-26,0xm113,0r0,-35r34,0r0,35r-34,0xm117,-69r-4,-191r34,0r-4,191r-26,0","w":186},"\u203d":{"d":"44,0r0,-35r35,0r0,35r-35,0xm7,-257v67,-28,165,1,132,76v-15,34,-72,49,-60,112r-35,0v4,-47,-1,-92,0,-141r35,0r-1,58v37,-33,46,-87,-15,-89v-18,0,-36,4,-56,13r0,-29","w":151},"\u203e":{"d":"15,-282r0,-26r150,0r0,26r-150,0","w":180},"\u2040":{"d":"13,-295r-11,0v47,-75,161,-75,208,0r-10,0v-37,-46,-150,-47,-187,0","w":212},"\u2041":{"d":"4,69r130,-260r25,0r-83,166r47,94r-25,0r-35,-69r-34,69r-25,0","w":167},"\u2042":{"d":"229,-218r-55,27r55,27r-8,15r-52,-34r5,62r-18,0r5,-62r-52,34r-8,-15r55,-27r-55,-27r8,-15r52,35r-5,-62r17,0r-4,62r52,-35xm300,-97r-56,28r56,27r-9,15r-52,-35r5,62r-18,0r5,-62r-52,35r-8,-15r55,-27r-55,-28r8,-15r52,35r-5,-62r18,0r-5,62r52,-35xm159,-97r-55,28r55,27r-8,15r-52,-35r5,62r-18,0r5,-62r-52,35r-9,-15r56,-27r-56,-28r9,-15r52,35r-5,-62r18,0r-5,62r52,-35","w":329},"\u2043":{"d":"20,-87r0,-39r78,0r0,39r-78,0","w":117},"\u2044":{"d":"-108,7r191,-274r24,0r-192,274r-23,0","w":0},"\u2070":{"d":"133,-182v0,43,-20,82,-57,82v-37,0,-58,-39,-58,-82v0,-44,20,-82,58,-82v38,0,57,38,57,82xm76,-118v20,0,30,-21,30,-64v0,-43,-10,-65,-30,-65v-20,0,-30,22,-30,65v0,43,10,64,30,64","w":151},"\u2074":{"d":"88,-104r0,-43r-71,0r0,-20r71,-93r24,0r0,93r22,0r0,20r-22,0r0,43r-24,0xm40,-167r48,0r0,-64","w":151},"\u2075":{"d":"123,-149v0,42,-46,57,-90,45r0,-21v28,14,62,9,62,-24v0,-27,-27,-39,-60,-34r0,-77r85,0r0,21r-64,0r0,38v38,0,66,17,67,52","w":151},"\u2076":{"d":"20,-179v-2,-64,41,-101,104,-79r0,20v-44,-20,-77,-8,-76,52v25,-35,87,-15,85,30v-1,32,-23,56,-55,56v-40,-1,-57,-35,-58,-79xm79,-118v18,0,28,-15,28,-34v0,-20,-9,-34,-28,-35v-16,-1,-30,13,-30,29v0,22,11,40,30,40","w":151},"\u2077":{"d":"35,-104v8,-54,49,-90,72,-134r-80,0r0,-22r103,0r0,22v-41,56,-63,101,-66,134r-29,0","w":151},"\u2078":{"d":"75,-100v-57,0,-73,-66,-23,-88v-40,-23,-21,-76,27,-76v51,0,59,53,18,75v56,21,36,89,-22,89xm83,-197v25,-14,25,-49,-7,-50v-16,0,-24,6,-24,19v0,9,11,20,31,31xm77,-118v37,0,37,-39,3,-53r-14,-8v-30,17,-25,61,11,61","w":151},"\u2079":{"d":"132,-188v0,64,-41,100,-105,80r0,-21v44,19,78,10,77,-52v-25,36,-87,15,-85,-30v1,-31,23,-56,54,-56v40,1,59,35,59,79xm73,-249v-18,0,-28,15,-28,34v0,20,9,35,28,36v15,1,30,-15,30,-30v0,-22,-11,-40,-30,-40","w":151},"\u207a":{"d":"67,-125r0,-48r-48,0r0,-18r48,0r0,-48r18,0r0,48r48,0r0,18r-48,0r0,48r-18,0","w":151},"\u207b":{"d":"133,-173r-114,0r0,-18r114,0r0,18","w":151},"\u207c":{"d":"19,-153r0,-18r114,0r0,18r-114,0xm19,-193r0,-17r114,0r0,17r-114,0","w":151},"\u207d":{"d":"70,-72v-43,-25,-72,-102,-38,-157v10,-18,22,-32,38,-42r0,17v-36,36,-36,129,0,165r0,17","w":81},"\u207e":{"d":"11,-271v43,25,72,102,38,157v-10,18,-22,32,-38,42r0,-17v36,-36,36,-129,0,-165r0,-17","w":81},"\u207f":{"d":"46,-198v18,-34,74,-32,73,12r0,82r-26,0r0,-75v-2,-36,-34,-22,-47,1r0,74r-26,0r0,-115r26,0r0,21","w":137},"\u2080":{"d":"133,-78v0,43,-20,82,-57,82v-37,0,-58,-39,-58,-82v0,-44,20,-82,58,-82v37,0,57,38,57,82xm76,-14v20,0,30,-21,30,-64v0,-43,-10,-65,-30,-65v-20,0,-30,22,-30,65v0,43,10,64,30,64","w":151},"\u2081":{"d":"72,0r0,-139r-26,0r0,-14r52,-5r0,158r-26,0","w":151},"\u2082":{"d":"30,-151v47,-27,120,7,88,59v-12,20,-58,47,-62,71r69,0r0,21r-99,0v-6,-57,72,-70,72,-116v0,-35,-43,-29,-68,-14r0,-21","w":151},"\u2083":{"d":"124,-42v0,45,-53,53,-96,41r0,-21v30,13,66,12,69,-20v2,-24,-22,-34,-55,-32r0,-17v30,2,52,-8,51,-29v-1,-29,-41,-27,-63,-14r0,-19v33,-13,89,-9,89,30v0,18,-11,31,-33,39v26,6,38,20,38,42","w":151},"\u2084":{"d":"88,0r0,-43r-71,0r0,-19r71,-94r24,0r0,93r22,0r0,20r-22,0r0,43r-24,0xm40,-63r48,0r0,-64","w":151},"\u2085":{"d":"123,-45v0,42,-46,57,-90,45r0,-21v28,14,62,9,62,-24v0,-27,-27,-39,-60,-34r0,-77r85,0r0,21r-64,0r0,38v38,0,66,17,67,52","w":151},"\u2086":{"d":"20,-75v-2,-64,41,-101,104,-79r0,20v-44,-20,-77,-8,-76,52v25,-35,87,-15,85,30v-1,32,-23,56,-55,56v-40,-1,-57,-35,-58,-79xm79,-14v17,0,28,-15,28,-33v0,-20,-9,-35,-28,-36v-16,-1,-30,13,-30,29v0,22,11,40,30,40","w":151},"\u2087":{"d":"35,0v8,-54,49,-90,72,-134r-80,0r0,-22r103,0r0,22v-41,56,-63,101,-66,134r-29,0","w":151},"\u2088":{"d":"75,4v-57,0,-73,-66,-23,-88v-40,-23,-21,-76,27,-76v51,0,59,53,18,75v56,21,36,89,-22,89xm83,-93v25,-15,25,-49,-7,-50v-16,0,-24,6,-24,19v0,9,11,20,31,31xm77,-14v16,0,29,-8,29,-23v0,-14,-26,-29,-40,-38v-30,17,-25,60,11,61","w":151},"\u2089":{"d":"132,-82v0,65,-42,102,-105,80r0,-20v45,18,78,9,77,-52v-25,35,-87,15,-85,-30v1,-31,23,-56,54,-56v40,1,59,34,59,78xm73,-142v-17,0,-28,15,-28,33v0,20,9,35,28,36v16,1,30,-14,30,-29v0,-22,-11,-40,-30,-40","w":151},"\u208a":{"d":"67,-21r0,-48r-48,0r0,-18r48,0r0,-48r18,0r0,48r48,0r0,18r-48,0r0,48r-18,0","w":151},"\u208b":{"d":"133,-69r-114,0r0,-18r114,0r0,18","w":151},"\u208c":{"d":"19,-49r0,-18r114,0r0,18r-114,0xm19,-89r0,-17r114,0r0,17r-114,0","w":151},"\u208d":{"d":"70,32v-43,-25,-72,-102,-38,-157v10,-18,22,-32,38,-42r0,17v-36,36,-36,129,0,165r0,17","w":81},"\u208e":{"d":"11,-167v43,25,72,102,38,157v-10,18,-22,32,-38,42r0,-17v36,-36,36,-129,0,-165r0,-17","w":81},"\u20a0":{"d":"52,-172v3,45,18,72,68,70r0,-74r96,0r0,26r-61,0r0,48r61,0r0,26r-61,0r0,50r61,0r0,26r-96,0r0,-76v-67,3,-101,-36,-103,-96v-2,-75,64,-111,138,-89r0,29v-51,-22,-107,-3,-103,60","w":250},"\u20a1":{"d":"41,-48v-45,-91,-10,-229,110,-219r14,-28r24,0r-15,29v12,1,24,3,36,6r18,-35r24,0v-10,21,-24,38,-20,74r-15,-5r-98,198v41,14,74,3,114,-17r0,32v-38,19,-84,26,-129,14r-17,34r-24,0r21,-42v-11,-6,-20,-12,-28,-21r-32,63r-24,0xm161,-239r-86,172v6,11,14,21,24,29r97,-194v-12,-4,-24,-6,-35,-7xm137,-238v-62,5,-86,74,-72,143","w":254},"\u20a2":{"d":"153,-142v18,-22,28,-34,63,-35r0,34v-28,-4,-45,7,-63,31r0,91v25,-4,46,-10,63,-19r0,32v-26,10,-53,15,-81,15v-81,0,-113,-61,-115,-139v-2,-79,40,-137,122,-135v27,0,52,4,74,12r0,30v-30,-11,-56,-16,-79,-16v-107,0,-104,201,-19,220r0,-152r35,0r0,31","w":247},"\u20a4":{"d":"80,-173v-8,-74,40,-110,109,-88r0,29v-34,-15,-78,-15,-74,32r0,27r38,0r0,22r-38,0r0,26r38,0r0,21r-38,0v0,39,-8,54,-30,74r107,0r0,30r-149,0r0,-30v31,-9,40,-35,37,-74r-34,0r0,-21r34,0r0,-26r-34,0r0,-22r34,0","w":227},"\u20a5":{"d":"218,-187v39,-21,86,0,86,48r0,139r-35,0r0,-133v-4,-52,-53,-35,-76,-3r-6,13r0,123r-35,0r0,-54r-45,89r-24,0r69,-137v1,-30,3,-64,-27,-64v-17,0,-36,12,-56,38r0,128r-34,0r0,-191r34,0r0,36v24,-46,91,-57,114,-10r48,-95r24,0","w":336},"\u20a6":{"d":"180,-113r35,0r0,-34r-58,0xm194,-91r21,32r0,-32r-21,0xm100,-169r-21,-32r0,32r21,0xm79,-113r58,0r-23,-34r-35,0r0,34xm79,-91r0,91r-31,0r0,-91r-35,0r0,-22r35,0r0,-34r-35,0r0,-22r35,0r0,-91r36,0r59,91r72,0r0,-91r31,0r0,91r35,0r0,22r-35,0r0,34r35,0r0,22r-35,0r0,91r-36,0r-59,-91r-72,0","w":294},"\u20a7":{"d":"191,-192v-2,63,-51,93,-121,89r0,103r-34,0r0,-260v76,-1,157,-9,155,68xm154,-189v0,-43,-38,-45,-84,-44r0,102v49,3,84,-13,84,-58xm307,0v-45,14,-83,-7,-83,-53r0,-112r-18,0r0,-26r18,0r0,-35r34,-3r0,38r50,0r0,26r-50,0v7,55,-27,158,49,141r0,24xm435,-86v30,41,-6,90,-58,90v-16,0,-36,-4,-58,-11r0,-31v22,11,42,16,59,16v18,0,35,-11,35,-28v0,-18,-30,-32,-48,-38v-69,-22,-53,-107,21,-107v12,0,33,2,47,6r0,29v-34,-11,-73,-18,-80,15v2,29,67,39,82,59","w":474},"\u20a8":{"d":"190,-196v-1,38,-23,62,-53,74r73,122r-45,0r-60,-110r-35,0r0,110r-36,0r0,-260v73,-1,159,-10,156,64xm70,-138v47,2,80,-11,82,-54v2,-34,-38,-44,-82,-41r0,95xm323,-86v42,68,-43,113,-117,79r0,-31v23,11,43,16,60,16v18,0,34,-11,34,-28v0,-19,-30,-31,-48,-38v-30,-12,-44,-31,-44,-54v-2,-53,62,-62,112,-47r0,29v-33,-11,-73,-18,-79,15v1,30,70,37,82,59","w":365},"\u20a9":{"d":"123,-55r19,-79r-39,0xm237,-134r17,77r22,-77r-39,0xm196,-156r-8,-35r-4,0r-8,35r20,0xm232,-156r50,0r10,-35r-68,0xm148,-156r8,-35r-68,0r9,35r51,0xm138,0r-36,0r-35,-134r-58,0r0,-22r53,0r-9,-35r-44,0r0,-22r38,0r-12,-47r35,0r12,47r79,0r11,-47r36,0r11,47r79,0r14,-47r30,0r-14,47r40,0r0,22r-46,0r-9,35r55,0r0,22r-61,0r-38,134r-37,0r-31,-134r-31,0","w":376},"\u20aa":{"d":"221,-147v1,-65,-1,-78,-66,-79r-86,0r0,226r-30,0r0,-260r116,0v85,-1,98,22,97,104r0,69r-31,0r0,-60xm343,-105v1,82,-13,105,-97,105r-116,0r0,-173r30,0r0,138r86,0v65,0,67,-13,66,-78r0,-147r31,0r0,155","w":381},"\u2100":{"d":"3,0r239,-260r28,0r-239,260r-28,0xm9,-168v0,-45,42,-105,94,-90r26,0r-23,116r-26,0r10,-48v-13,22,-32,50,-58,50v-15,0,-23,-12,-23,-28xm99,-239v-37,-18,-61,30,-63,65v0,7,2,10,7,10v11,0,28,-17,52,-52xm240,-97v-40,-21,-70,16,-70,54v0,36,40,22,60,10r-4,23v-35,16,-83,17,-83,-30v0,-49,47,-95,101,-76","w":270},"\u2101":{"d":"3,0r239,-260r28,0r-239,260r-28,0xm9,-168v0,-45,42,-105,94,-90r26,0r-23,116r-26,0r10,-48v-13,22,-32,50,-58,50v-15,0,-23,-12,-23,-28xm99,-239v-37,-18,-61,30,-63,65v0,7,2,10,7,10v11,0,28,-17,52,-52xm200,-73v34,23,35,76,-18,73v-12,0,-25,-2,-39,-8r4,-20v15,7,27,10,37,10v35,-2,8,-31,-2,-39v-34,-25,-15,-64,25,-63v11,0,21,1,32,5r-4,20v-25,-18,-67,1,-35,22","w":270},"\u2102":{"d":"93,-133v0,60,15,122,73,122v26,0,52,-7,78,-20r0,21v-97,47,-220,-7,-220,-120v0,-111,108,-162,218,-126r0,21v-27,-10,-52,-14,-74,-14v-59,1,-75,56,-75,116xm116,-244v-65,19,-99,119,-55,184v13,20,32,35,55,44v-54,-46,-53,-182,0,-228","w":265},"\u2103":{"d":"95,-228v0,21,-18,39,-39,39v-21,0,-39,-19,-39,-39v0,-20,19,-39,39,-39v20,-1,39,18,39,39xm35,-228v0,12,10,22,21,22v12,0,21,-11,22,-22v0,-11,-10,-21,-22,-21v-12,0,-21,9,-21,21xm140,-130v0,99,94,135,172,85r0,32v-96,50,-211,4,-211,-117v0,-117,98,-162,211,-125r0,34v-95,-40,-172,-12,-172,91","w":332},"\u2104":{"d":"20,-144v0,-50,28,-85,73,-90r0,-26r35,0r0,26v9,0,23,2,43,7r0,29v-13,-4,-28,-9,-43,-10r0,130v14,-1,28,-4,43,-9r0,29v-10,3,-24,5,-43,6r0,26r87,0r0,26r-122,0r0,-52v-46,-4,-73,-40,-73,-92xm94,-205v-26,5,-40,26,-40,65v0,33,13,52,39,59","w":233},"\u2105":{"d":"3,0r239,-260r28,0r-239,260r-28,0xm123,-236v-39,-23,-70,14,-70,53v0,36,39,22,60,11r-5,22v-35,17,-84,16,-83,-30v1,-48,47,-95,102,-76xm248,-82v1,42,-31,82,-72,82v-25,0,-41,-14,-41,-38v-1,-42,31,-82,72,-82v25,0,41,14,41,38xm202,-102v-23,0,-41,32,-40,58v0,17,6,26,19,26v24,0,41,-32,40,-59v0,-17,-6,-25,-19,-25","w":270},"\u2106":{"d":"3,0r239,-260r28,0r-239,260r-28,0xm123,-236v-39,-23,-70,14,-70,53v0,36,39,22,60,11r-5,22v-35,17,-84,16,-83,-30v1,-48,47,-95,102,-76xm204,0r9,-47v-19,33,-38,50,-57,50v-18,0,-21,-19,-18,-36r16,-82r26,0r-17,86v0,4,2,7,6,7v9,0,26,-18,50,-54r8,-39r26,0r-23,115r-26,0","w":270},"\u2107":{"d":"130,-7v37,0,47,-14,49,-49r17,0r0,46v-65,35,-166,16,-166,-60v0,-46,34,-67,79,-77v-31,-8,-60,-28,-60,-60v0,-62,82,-70,143,-51r0,38r-17,0v-2,-23,-15,-36,-46,-36v-29,-1,-49,19,-48,48v0,42,28,58,73,56r0,18v-54,-5,-89,22,-89,65v0,35,29,63,65,62","w":226},"\u2108":{"d":"198,-135v4,101,-80,171,-183,131r0,-33v78,36,145,-7,144,-86r-98,0r0,-27r98,0v4,-77,-75,-113,-141,-74r0,-29v19,-9,40,-14,64,-14v80,-1,114,54,116,132","w":216},"\u2109":{"d":"95,-228v0,21,-18,39,-39,39v-21,0,-39,-19,-39,-39v0,-20,19,-39,39,-39v20,-1,39,18,39,39xm35,-228v0,12,10,22,21,22v12,0,21,-11,22,-22v0,-11,-10,-21,-22,-21v-12,0,-21,9,-21,21xm122,0r0,-260r145,0r0,27r-109,0r0,88r92,0r0,27r-92,0r0,118r-36,0","w":280},"\u210a":{"d":"36,-85v0,-72,102,-162,138,-73r6,-33r35,0r-33,168v39,-14,67,-38,87,-71r7,4v-23,37,-55,63,-96,77v-17,84,-57,130,-122,130v-27,0,-52,-16,-52,-39v0,-35,46,-67,139,-93r8,-38v-29,64,-117,36,-117,-32xm72,-75v0,24,12,44,32,46v36,3,64,-56,64,-109v0,-23,-12,-46,-34,-46v-37,1,-62,64,-62,109xm33,77v-1,18,17,31,36,31v35,0,63,-43,74,-113v-73,21,-110,48,-110,82","w":278},"\u210b":{"d":"335,-60v-14,30,-36,62,-67,67v-46,-2,-35,-88,-24,-136r-68,2v-10,70,-47,131,-119,134v-49,2,-65,-56,-25,-82v17,-11,34,-18,56,-18r-2,7v-51,-4,-70,81,-12,81v55,0,50,-67,65,-122v-6,0,-11,1,-16,3v1,-10,7,-15,18,-15r22,-110v-39,-6,-82,16,-82,48v0,15,18,33,36,27v2,8,-7,6,-13,7v-25,1,-49,-13,-49,-36v11,-55,72,-57,147,-57r-24,121r68,0v12,-67,46,-143,109,-143v56,0,42,87,8,114v-22,17,-47,32,-81,37v-7,26,-12,66,-12,81v0,19,0,31,14,33v18,-3,37,-28,45,-47xm284,-142v50,-7,79,-50,79,-107v0,-17,-4,-24,-14,-24v-36,11,-56,81,-65,131","w":403},"\u210c":{"d":"169,54v-20,-4,-38,-3,-44,12r-10,0v5,-17,11,-30,17,-39v18,-3,24,-2,40,1v25,-52,21,-138,-20,-171v-2,-2,-4,-6,-8,-13v-21,15,-45,44,-47,74v-2,17,-14,35,-37,54v20,0,33,1,51,6r-15,29v-29,-11,-60,-7,-92,0r13,-30v7,-2,15,-4,27,-6v51,-37,-9,-110,4,-170v19,-28,54,-55,86,-68v30,0,54,7,71,20r-25,29v-23,-19,-42,-26,-72,-25v-40,21,-27,85,-13,127v12,-32,34,-58,67,-79v16,45,55,60,55,119v0,41,-16,85,-48,130","w":231},"\u210d":{"d":"111,-126r0,126r-70,0r0,-260r70,0r0,117r95,0r0,-117r69,0r0,260r-69,0r0,-126r-95,0xm59,-17r34,0r0,-226r-34,0r0,226xm223,-17r35,0r0,-226r-35,0r0,226","w":316},"\u210e":{"d":"182,-195v27,1,30,29,25,57r-21,112v0,7,4,11,11,11v12,0,29,-12,52,-38r-3,16v-26,28,-49,41,-69,41v-29,0,-26,-26,-21,-56r19,-103v0,-9,-4,-14,-11,-14v-22,0,-53,35,-93,106r-12,63r-35,0r49,-257v1,-10,-19,-8,-29,-10r3,-11r67,0r-36,183r2,0v16,-34,60,-100,102,-100","w":253},"\u210f":{"d":"182,-195v27,1,30,29,25,57r-21,112v0,7,4,11,11,11v12,0,29,-12,52,-38r-3,16v-26,28,-49,41,-69,41v-29,0,-26,-26,-21,-56r19,-103v0,-9,-4,-14,-11,-14v-22,0,-53,35,-93,106r-12,63r-35,0r38,-193r-45,13r3,-15r45,-14v4,-24,23,-64,-21,-58r3,-11r67,0r-12,58r75,-22r-3,16r-75,22v-5,35,-19,77,-19,109v16,-34,60,-100,102,-100","w":253},"\u2110":{"d":"17,8v-10,23,6,48,30,46v58,-5,58,-63,75,-135v-39,2,-70,-15,-74,-47v-6,-53,102,-106,154,-139v-18,45,-27,113,-39,167v30,-10,62,-40,62,-76v5,0,11,-2,9,5v-2,40,-38,70,-73,82v-12,81,-50,152,-125,154v-21,1,-47,-14,-47,-33v0,-10,10,-17,28,-24xm81,-136v0,24,19,45,44,43r26,-133v-47,25,-70,55,-70,90","w":242},"\u2111":{"d":"128,-17v72,0,43,-97,30,-149v0,-15,14,-41,41,-75v-45,40,-79,20,-120,2v-31,4,-9,45,6,51v27,27,14,36,-12,67r-8,-8v32,-33,-35,-48,-32,-80v21,-27,45,-47,72,-58v44,27,65,36,105,9r10,9v-55,41,-13,98,-11,157v1,49,-57,91,-103,99v-37,-7,-63,-24,-79,-51r29,-23v10,27,38,50,72,50","w":253},"\u2112":{"d":"7,-24v2,-40,57,-43,99,-31r21,-103v-42,-3,-81,-38,-68,-84r9,0v-13,41,21,71,60,75v9,-53,44,-100,99,-100v49,0,46,55,8,79v-21,13,-43,24,-71,28v-10,39,-15,77,-28,114v50,15,112,49,132,-16r7,2v-7,29,-36,65,-65,67v-20,1,-66,-20,-91,-29v-22,19,-46,29,-70,29v-22,-1,-43,-10,-42,-31xm235,-230v0,-15,-8,-26,-22,-26v-23,-5,-40,46,-48,88v37,-7,67,-26,70,-62xm18,-23v6,40,73,16,80,-8v-20,-9,-37,-15,-51,-15v-14,0,-31,9,-29,23","w":283},"\u2113":{"d":"105,-13v27,0,54,-51,61,-81r9,3v-14,45,-41,92,-86,95v-45,3,-35,-60,-26,-100v-16,7,-39,11,-63,14r2,-9v25,-4,46,-8,63,-15v21,-76,23,-191,105,-202v57,12,40,88,8,129v-21,27,-46,50,-77,67r-13,73v0,18,6,26,17,26xm103,-124v43,-23,85,-81,85,-143v0,-46,-34,-39,-48,-7v-12,27,-27,105,-37,150","w":212},"\u2114":{"d":"333,-101v0,85,-84,140,-138,79r-4,24r-31,0r0,-223r-86,0r0,221r-35,0r0,-221r-28,0r0,-22r28,0r0,-35r35,0r0,35r86,0r0,-35r35,0r0,35r39,0r0,22r-39,0r0,66v14,-27,36,-40,64,-40v50,0,74,41,74,94xm195,-46v45,47,101,19,101,-52v0,-83,-64,-82,-101,-35r0,87","w":352},"\u2115":{"d":"59,-169r0,169r-18,0r0,-260r25,0r170,170r0,-170r18,0r0,260r-25,0xm236,-17r0,-49r-177,-177r0,49","w":294},"\u2116":{"d":"339,-156v0,38,-22,65,-58,65v-36,0,-59,-27,-59,-65v0,-38,22,-65,59,-65v37,0,58,27,58,65xm281,-113v19,0,28,-14,28,-43v0,-29,-9,-44,-28,-44v-19,0,-28,15,-28,44v0,29,9,43,28,43xm233,-39r0,-26r96,0r0,26r-96,0xm63,-198r0,198r-29,0r0,-260r31,0r102,197r0,-197r29,0r0,260r-31,0","w":348},"\u2117":{"d":"291,-130v0,74,-64,137,-137,137v-73,0,-137,-64,-137,-137v0,-74,63,-137,137,-137v74,0,137,63,137,137xm37,-130v0,61,53,117,117,117v64,0,117,-56,117,-117v0,-61,-53,-117,-117,-117v-64,0,-117,56,-117,117xm214,-166v0,40,-31,56,-74,54r0,61r-24,0r0,-156v47,1,98,-8,98,41xm140,-130v51,12,70,-60,14,-59r-14,0r0,59","w":307},"\u2118":{"d":"79,-84v31,52,35,158,-36,158v-23,0,-34,-14,-34,-40v0,-25,15,-58,45,-100v-33,-70,-22,-116,51,-151r5,9v-50,26,-55,63,-34,114v52,-67,94,-101,128,-101v26,0,39,22,39,50v0,60,-47,136,-98,138v-15,1,-28,-10,-28,-24v0,-9,6,-20,17,-19v16,-2,21,15,14,28v39,12,62,-74,62,-113v0,-51,-45,-35,-74,-10v-19,15,-38,35,-57,61xm43,61v48,-11,34,-71,15,-117v-26,37,-39,66,-39,88v0,19,8,29,24,29","w":261},"\u2119":{"d":"241,-191v-3,62,-54,92,-130,89r0,102r-70,0r0,-260v88,3,204,-21,200,69xm59,-17r34,0r0,-226r-34,0r0,226xm171,-183v0,-36,-23,-61,-60,-60r0,124v38,2,60,-27,60,-64xm162,-123v76,-10,88,-125,-3,-120v40,24,39,91,3,120","w":253},"\u211a":{"d":"163,-267v80,0,138,57,138,137v0,65,-31,108,-94,131v39,20,76,32,112,34r-17,18v-50,-10,-91,-26,-121,-47v-93,12,-156,-52,-157,-136v-1,-82,59,-137,139,-137xm116,-244v-65,19,-99,119,-55,184v13,20,32,35,55,44v-54,-46,-53,-182,0,-228xm163,-249v-95,6,-94,232,0,238v92,-7,93,-231,0,-238xm209,-16v65,-19,99,-119,55,-184v-13,-20,-32,-35,-55,-44v54,46,53,182,0,228","w":325},"\u211b":{"d":"327,-59v-5,41,-53,90,-88,53v-28,-29,-9,-121,-64,-123v-7,74,-50,133,-118,136v-49,2,-65,-56,-24,-82v17,-11,34,-18,55,-18r-2,7v-49,-2,-69,80,-11,81v42,-8,43,-29,56,-88r32,-160v-35,2,-73,20,-74,52v-1,17,16,32,35,27v1,9,-11,7,-16,8v-22,1,-48,-15,-46,-35v5,-52,73,-66,142,-66v62,0,93,18,93,53v0,47,-46,72,-95,81v47,4,45,32,54,77v6,29,14,43,25,43v21,0,31,-27,38,-49xm177,-139v44,1,85,-28,85,-70v0,-31,-21,-47,-62,-47","w":337},"\u211c":{"d":"70,-242v-33,3,-17,46,2,54v24,22,17,38,-12,67r-8,-8v32,-34,-36,-46,-31,-81v19,-27,43,-46,71,-57v27,4,46,21,57,52v15,-21,36,-39,63,-52v22,8,19,58,43,66r0,12v-24,13,-56,37,-85,58v20,-5,38,-7,53,-7v16,23,37,85,55,105v8,-4,17,-10,26,-17r7,8v-25,21,-42,37,-52,49v-21,-15,-45,-87,-64,-118v-20,-4,-30,-4,-51,0v-11,34,-27,62,-47,84v21,-2,41,-1,57,4v-9,7,-16,18,-20,30v-27,-8,-59,-10,-90,0r13,-28v50,-11,59,-59,61,-120v1,-46,-13,-97,-48,-101xm148,-128v18,-17,51,-41,73,-59v-13,-12,-17,-33,-27,-48v-15,6,-29,18,-42,33v4,31,5,44,-4,74","w":327},"\u211d":{"d":"232,-194v0,36,-23,59,-51,70r87,124r-87,0r-70,-117r0,117r-70,0r0,-260r115,-1v43,0,76,26,76,67xm59,-17r34,0r0,-226r-34,0r0,226xm163,-186v0,-31,-20,-59,-52,-57r0,111v35,3,52,-22,52,-54xm152,-130v46,-1,87,-66,46,-99v-11,-9,-27,-14,-46,-14v39,23,36,93,0,113xm191,-17r43,0r-68,-100r-36,0","w":281},"\u211e":{"d":"70,-138v47,2,80,-11,82,-54v2,-34,-38,-44,-82,-41r0,95xm190,-196v-1,38,-23,62,-53,74r26,36r27,-36r27,0r-41,55r48,67r-45,0r-25,-37r-28,37r-27,0r42,-56r-36,-54r-35,0r0,110r-36,0r0,-260v73,-1,159,-10,156,64","w":227},"\u211f":{"d":"70,-110r0,97r43,-85r-8,-12r-35,0xm70,-138v47,2,80,-11,82,-54v2,-34,-38,-44,-82,-41r0,95xm34,-260v56,2,126,-11,145,28r15,-28r-66,-33r10,-19r85,42r-34,67v5,33,-16,60,-36,74r-9,17r80,112r-45,0r-52,-77r-65,129r-19,-10r21,-42r-30,0r0,-260","w":227},"\u2120":{"d":"76,-207v50,17,38,80,-18,80v-10,0,-22,-1,-36,-4r0,-23v22,10,55,18,58,-8v-3,-23,-65,-38,-58,-66v-1,-36,42,-40,78,-31r0,21v-21,-9,-48,-15,-52,7v-2,8,17,19,28,24xm138,-130r0,-130r36,0r31,91r32,-91r32,0r0,130r-26,0r0,-98r-31,89r-22,0r-31,-91r0,100r-21,0","w":290},"\u2121":{"d":"103,0r0,-167r-68,0r0,-24r170,0r0,24r-68,0r0,167r-34,0xm223,0r0,-191r114,0r0,24r-79,0r0,56r65,0r0,24r-65,0r0,63r85,0r0,24r-120,0xm378,0r0,-191r34,0r0,167r86,0r0,24r-120,0","w":532},"\u2123":{"d":"6,-260r37,0r53,140r70,-140r-65,-33r10,-19r85,42r-89,178r17,45r77,-213r33,0r-95,260r-34,0r-19,-50r-51,102r-20,-10r60,-120","w":235},"\u2124":{"d":"20,0r0,-20r118,-223r-112,0r0,-17r187,0r0,21r-117,222r117,0r0,17r-193,0xm37,-17r39,0r119,-226r-39,0","w":232},"\u2125":{"d":"168,0v0,69,-85,88,-153,65r0,-29v52,19,116,20,116,-34v0,-41,-45,-60,-94,-57r0,-24r85,-72r-105,0r0,-26r98,-72r-98,0r0,-29r143,0r0,29r-98,72r98,0r0,26r-82,72v50,4,90,29,90,79","w":184},"\u2127":{"d":"33,-110v3,-63,36,-85,82,-127v-29,5,-77,-15,-68,32r-20,0r0,-55r104,0r0,23v-39,43,-59,85,-59,127v0,56,34,103,86,103v52,0,86,-48,85,-103v0,-42,-20,-84,-59,-127r0,-23r104,0r0,55v-6,-1,-18,3,-20,-3v8,-39,-34,-27,-68,-29v46,42,79,63,82,126v4,68,-55,118,-124,118v-68,0,-128,-51,-125,-117","w":315},"\u2128":{"d":"186,-92v-1,53,-50,85,-99,99v-29,-2,-56,-15,-79,-37r29,-24v36,46,115,52,119,-16v5,-62,-73,-77,-122,-54r4,-15v30,-15,73,-55,91,-85v-34,5,-90,-34,-111,11r-6,-3v5,-17,16,-33,33,-50v46,-3,101,35,142,2r6,5v-24,34,-80,81,-118,107v58,-11,112,6,111,60","w":209},"\u2129":{"d":"76,-120v5,-44,-21,-59,-54,-42r0,-26v49,-19,89,1,89,64r0,124r-35,0r0,-120","w":144},"\u212a":{"d":"34,0r0,-260r34,0r0,128r105,-128r38,0r-102,124r120,136r-47,0r-114,-132r0,132r-34,0","w":235},"\u212b":{"d":"77,-99r88,0r-44,-113xm124,-318v30,0,44,41,19,58r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0r103,-260v-24,-17,-12,-58,18,-58xm106,-286v-1,9,9,19,18,18v10,1,20,-8,19,-18v1,-10,-10,-19,-19,-19v-9,0,-19,9,-18,19","w":248},"\u212c":{"d":"7,-25v0,-40,59,-42,91,-23v19,-64,29,-138,44,-206v-36,3,-73,20,-74,53v-1,19,18,31,36,27v2,10,-14,7,-17,8v-24,1,-46,-15,-46,-36v0,-79,225,-98,225,-3v0,38,-33,60,-68,68v35,11,67,32,67,72v0,68,-100,95,-158,50v-25,28,-100,34,-100,-10xm230,-206v0,-35,-16,-46,-51,-49r-23,115v45,1,75,-23,74,-66xm145,-21v42,38,84,9,84,-41v0,-41,-34,-63,-75,-68v-6,34,-16,77,-30,95xm17,-25v8,27,56,21,70,-3v-24,-17,-61,-25,-70,3","w":287},"\u212d":{"d":"45,-151v-5,97,109,168,183,96r6,7v-28,31,-43,41,-88,55v-88,0,-156,-85,-133,-183v23,-37,59,-65,104,-76v10,-21,46,-1,62,-1v17,0,32,-5,46,-14v-3,28,-14,49,-47,49v-26,0,-47,-6,-65,-18v-43,46,74,77,29,132v-7,10,-18,18,-30,26r-3,-8v48,-35,-27,-71,-33,-113v7,-13,17,-27,31,-42v-39,17,-59,40,-62,90","w":244},"\u212e":{"d":"17,-123v0,-110,126,-185,218,-116v29,22,54,73,55,109r-234,0v-10,81,29,119,98,119v47,0,67,-22,97,-52r13,12v-34,39,-71,58,-113,58v-73,0,-134,-56,-134,-130xm154,-249v-62,0,-103,34,-98,102r195,0v5,-69,-35,-102,-97,-102","w":307},"\u212f":{"d":"164,-159v1,46,-59,83,-108,81v-5,36,6,67,35,67v18,0,35,-13,53,-41r9,3v-14,28,-41,53,-77,53v-37,0,-56,-32,-56,-74v0,-58,51,-125,104,-125v23,0,40,14,40,36xm58,-87v42,2,73,-31,72,-72v0,-17,-5,-25,-16,-25v-30,0,-53,60,-56,97","w":175},"\u2130":{"d":"50,-65v0,31,25,52,58,52v30,0,55,-19,75,-57r7,3v-17,40,-51,73,-102,74v-41,1,-76,-25,-76,-65v0,-44,35,-73,73,-83v-56,-13,-46,-75,-11,-98v-15,-22,-8,-50,8,-71r7,4v-13,19,-18,40,-8,61v20,-15,44,-22,70,-22v28,0,42,9,42,27v0,43,-73,46,-102,17v-30,40,5,91,53,72v2,15,-8,20,-26,19v-37,0,-68,30,-68,67xm168,-237v-10,-33,-57,-21,-72,7v16,11,31,15,44,15v13,0,29,-11,28,-22","w":206},"\u2131":{"d":"261,-168v10,35,-45,39,-88,32v-9,77,-46,140,-118,143v-48,2,-65,-56,-25,-82v17,-11,35,-18,56,-18r-2,7v-48,-6,-72,81,-12,81v54,0,51,-77,64,-131v-12,0,-18,1,-28,6v-4,-12,9,-15,31,-18r19,-98v-45,-5,-79,17,-81,51v-1,19,17,31,36,27v4,9,-11,8,-16,9v-23,0,-48,-15,-46,-36v6,-64,105,-65,186,-65v46,0,73,-1,87,-25v2,2,3,5,3,7v-4,52,-79,47,-133,38r-17,87v30,-2,73,4,84,-15","w":297},"\u2132":{"d":"200,-260r0,260r-161,0r0,-22r135,0r0,-101r-131,0r0,-21r131,0r0,-116r26,0","w":238},"\u2133":{"d":"17,-200v15,-30,36,-64,69,-67v33,-3,29,42,24,73v20,-34,43,-70,82,-73v33,-2,36,43,26,73v21,-34,44,-67,82,-73v40,3,33,46,25,90r-27,147v0,9,3,13,10,13v20,0,35,-28,45,-47r5,4v-14,30,-36,62,-67,67v-40,-4,-30,-49,-21,-93r25,-135v0,-12,-5,-18,-14,-18v-76,21,-83,153,-102,239r-36,7r44,-226v0,-12,-5,-18,-15,-18v-33,8,-66,59,-76,111r-25,126r-38,7r45,-237v0,-9,-4,-13,-11,-13v-20,0,-34,28,-44,47","w":375},"\u2134":{"d":"187,-118v0,58,-49,122,-105,122v-38,0,-62,-35,-62,-76v0,-57,50,-123,103,-123v40,0,64,35,64,77xm120,-187v-45,0,-65,74,-65,125v0,39,11,58,32,58v45,0,66,-75,66,-126v0,-37,-11,-57,-33,-57","w":206},"\u2135":{"d":"21,0v18,-49,1,-97,38,-142v-12,-14,-21,-29,-27,-43v11,-9,12,-28,32,-28v-13,39,56,81,88,114v15,-21,24,-46,26,-74v-14,-1,-32,3,-35,-8r12,-40r12,0r0,13v17,2,42,-6,48,7v-6,40,-24,77,-55,110v22,21,39,44,50,68v-11,9,-12,29,-34,27v-1,-69,-73,-94,-110,-138v-15,29,-17,65,-6,99r31,0r-10,35r-60,0","w":243},"\u2136":{"d":"102,-208v78,2,88,8,88,85r0,88r26,0r-11,35r-182,0r11,-35r137,0r0,-82v-1,-53,-6,-56,-59,-56r-74,0v-14,-12,4,-32,7,-48r11,0r0,13r46,0","w":239},"\u2137":{"d":"13,0r11,-35v51,7,55,-30,75,-59v-9,-33,-5,-68,-40,-74v-13,-5,-31,-5,-33,-21r10,-32r9,0r0,13v34,9,59,20,64,62v6,52,19,103,38,146r-21,0v-9,-21,-17,-47,-24,-78r-45,78r-44,0","w":166},"\u2138":{"d":"140,-173r-121,0r-7,-8r15,-45r10,0r0,18r166,0r-11,35r-32,0r0,121r4,52r-28,4v6,-55,4,-117,4,-177","w":218},"\u2190":{"d":"39,-104r75,-43r-17,34r202,0r0,18r-202,0r17,34","w":338},"\u2191":{"d":"95,-260r44,75r-35,-17r0,202r-17,0r0,-202r-35,17","w":190},"\u2192":{"d":"299,-104r-75,43r18,-34r-203,0r0,-18r203,0r-18,-34","w":338},"\u2193":{"d":"95,0r-43,-75r35,17r0,-202r17,0r0,202r35,-17","w":190},"\u2194":{"d":"97,-95r17,34r-75,-43r75,-43r-17,34r240,0r-17,-34r75,43r-75,43r17,-34r-240,0","w":433},"\u2195":{"d":"104,16r35,-17r-44,75r-43,-75r35,17r0,-240r-35,17r43,-75r44,75r-35,-17r0,240","w":190},"\u2196":{"d":"39,-222r84,22r-37,13r143,143r-12,12r-143,-143r-12,37","w":268},"\u2197":{"d":"229,-222r-22,84r-13,-37r-143,143r-12,-12r143,-143r-37,-13","w":268},"\u2198":{"d":"229,-32r-84,-22r37,-13r-143,-143r12,-12r143,143r13,-37","w":268},"\u2199":{"d":"39,-32r23,-84r12,37r143,-143r12,12r-143,143r37,13","w":268},"\u219a":{"d":"184,-95r-87,0r17,34r-75,-43r75,-43r-17,34r93,0r17,-52r19,0r-18,52r91,0r0,18r-96,0r-18,52r-18,0","w":338},"\u219b":{"d":"39,-113r97,0r17,-52r19,0r-18,52r88,0r-18,-34r75,43r-75,43r18,-34r-93,0r-18,52r-18,0r17,-52r-91,0r0,-18","w":338},"\u219c":{"d":"68,-100r-17,35r-12,-86r81,33r-38,7v30,45,44,42,68,7v35,-52,54,-31,97,19r-14,10v-35,-50,-49,-50,-75,-11v-33,48,-55,32,-90,-14"},"\u219d":{"d":"218,-100v-38,62,-71,45,-101,0v-23,-35,-32,-10,-64,25r-14,-10v44,-65,72,-57,106,-6v22,33,32,12,60,-20r-38,-7r80,-33r-12,86"},"\u219e":{"d":"39,-104r75,-43r-17,34v37,0,50,-24,77,-34r-17,34r142,0r0,18r-142,0r17,34v-26,-11,-40,-34,-77,-34r17,34","w":338},"\u219f":{"d":"95,-260r44,75r-35,-17v0,37,24,50,35,77r-35,-17r0,142r-17,0r0,-142r-35,17v11,-27,35,-40,35,-77r-35,17","w":190},"\u21a0":{"d":"299,-104r-75,43r18,-34v-38,0,-51,24,-78,34r17,-34r-142,0r0,-18r142,0r-17,-34v27,11,40,34,78,34r-18,-34","w":338},"\u21a1":{"d":"95,0r-43,-75r35,17v0,-37,-24,-50,-35,-77r35,17r0,-142r17,0r0,142r35,-17v-11,27,-35,40,-35,77r35,-17","w":190},"\u21a2":{"d":"39,-104r75,-43r-17,34r143,0r35,-34r24,0r-43,43r43,43r-24,0r-35,-34r-143,0r17,34","w":338},"\u21a3":{"d":"299,-104r-75,43r18,-34r-144,0r-34,34r-25,0r43,-43r-43,-43r25,0r34,34r144,0r-18,-34","w":338},"\u21a4":{"d":"39,-104r75,-43r-17,34r185,0r0,-37r17,0r0,91r-17,0r0,-36r-185,0r17,34","w":338},"\u21a5":{"d":"95,-260r44,75r-35,-17r0,185r37,0r0,17r-91,0r0,-17r37,0r0,-185r-35,17","w":190},"\u21a6":{"d":"299,-104r-75,43r18,-34r-186,0r0,36r-17,0r0,-91r17,0r0,37r186,0r-18,-34","w":338},"\u21a7":{"d":"95,0r-43,-75r35,17r0,-185r-37,0r0,-17r91,0r0,17r-37,0r0,185r35,-17","w":190},"\u21a8":{"d":"104,-92r35,-18r-44,75r-43,-75r35,18r0,-110r-35,17r43,-75r44,75r-35,-17r0,110xm26,-17r139,0r0,17r-139,0r0,-17","w":190},"\u21a9":{"d":"299,-132v0,20,-17,37,-37,37r-165,0r17,34r-75,-43r75,-43r-17,34r165,0v13,0,20,-6,20,-19v0,-12,-7,-19,-20,-20r0,-17v20,0,37,17,37,37","w":338},"\u21aa":{"d":"76,-95v-31,1,-50,-42,-26,-63v7,-7,16,-11,26,-11r0,17v-13,1,-20,8,-20,20v0,13,7,19,20,19r166,0r-18,-34r75,43r-75,43r18,-34r-166,0","w":338},"\u21ab":{"d":"299,-132v0,27,-24,41,-56,37r0,34r-17,0r0,-34r-129,0r17,34r-75,-43r75,-43r-17,34r129,0v-16,-62,73,-75,73,-19xm243,-113v20,1,40,2,39,-19v0,-13,-7,-20,-20,-20v-21,-1,-20,19,-19,39","w":338},"\u21ac":{"d":"76,-169v27,0,41,24,37,56r129,0r-18,-34r75,43r-75,43r18,-34r-129,0r0,34r-18,0r0,-34v-61,16,-75,-74,-19,-74xm95,-113v1,-20,2,-40,-19,-39v-13,0,-20,7,-20,20v-1,21,19,20,39,19","w":338},"\u21ad":{"d":"39,-104r75,-43r-17,34v37,-5,48,18,71,29v23,-14,42,-94,71,-42v12,11,19,50,39,38v18,-11,30,-29,63,-25r-17,-34r75,43r-75,43r17,-34v-35,-6,-48,26,-73,32v-24,-9,-30,-44,-49,-58v-22,14,-30,77,-67,48v-14,-12,-27,-26,-55,-22r17,34","w":438},"\u21ae":{"d":"97,-95r17,34r-75,-43r75,-43r-17,34r114,0r17,-52r18,0r-17,52r108,0r-17,-34r75,43r-75,43r17,-34r-114,0r-17,52r-19,0r18,-52r-108,0","w":433},"\u21af":{"d":"86,-35r37,13r-84,22r23,-84r12,37r83,-83r-118,0r130,-130r12,12r-100,101r118,0","w":237},"\u21b0":{"d":"39,-217r75,-43r-17,34r98,0r0,226r-17,0r0,-208r-81,0r17,35","w":247},"\u21b1":{"d":"208,-217r-75,44r17,-35r-81,0r0,208r-17,0r0,-226r98,0r-17,-34","w":247},"\u21b2":{"d":"39,-43r75,-44r-17,35r81,0r0,-208r17,0r0,225r-98,0r17,35","w":247},"\u21b3":{"d":"208,-43r-75,43r17,-35r-98,0r0,-225r17,0r0,208r81,0r-17,-35","w":247},"\u21b4":{"d":"152,0r-44,-75r35,17r0,-185r-104,0r0,-17r121,0r0,202r35,-17","w":247},"\u21b5":{"d":"39,-43r75,-44r-17,35r185,0r0,-208r17,0r0,225r-202,0r17,35","w":338},"\u21b6":{"d":"65,-128v24,-79,150,-109,212,-42v24,26,38,56,38,92r-18,0v8,-111,-163,-155,-210,-56v-4,9,-6,12,-6,13r38,-3r-69,53r-11,-86","w":353},"\u21b7":{"d":"169,-191v-61,0,-115,52,-113,113r-17,0v-2,-70,60,-132,130,-130v60,1,101,34,120,80r26,-29r-12,86r-68,-53v21,4,33,6,38,3v-18,-45,-57,-70,-104,-70","w":353},"\u21b8":{"d":"39,-243r0,-17r260,0r0,17r-260,0xm74,-208r84,22r-37,13r143,143r-12,12r-143,-143r-12,37","w":338},"\u21b9":{"d":"74,-163r75,-43r-18,35r168,0r0,17r-168,0r18,35xm39,-117r0,-91r17,0r0,91r-17,0xm265,-46r-76,44r18,-35r-168,0r0,-17r168,0r-18,-35xm299,0r-17,0r0,-91r17,0r0,91","w":338},"\u21ba":{"d":"169,-17v96,0,152,-127,80,-193r-12,37r-23,-84r84,23r-37,12v82,78,19,222,-92,222v-111,0,-175,-145,-92,-222r12,12v-72,67,-16,193,80,193","w":338},"\u21bb":{"d":"169,0v-111,0,-175,-144,-92,-222r-37,-12r84,-23r-22,84v-8,-23,-7,-45,-20,-29v-60,73,-4,185,87,185v96,0,153,-126,80,-193r12,-12v82,77,19,222,-92,222","w":338},"\u21bc":{"d":"39,-95r90,-52r-17,34r187,0r0,18r-260,0","w":338},"\u21bd":{"d":"39,-113r260,0r0,18r-187,0r17,34","w":338},"\u21be":{"d":"52,-260r52,90r-35,-17r0,187r-17,0r0,-260","w":156},"\u21bf":{"d":"104,-260r0,260r-17,0r0,-187r-35,17","w":156},"\u21c0":{"d":"299,-95r-260,0r0,-18r187,0r-17,-34","w":338},"\u21c1":{"d":"299,-113r-90,52r17,-34r-187,0r0,-18r260,0","w":338},"\u21c2":{"d":"52,0r0,-260r17,0r0,187r35,-17","w":156},"\u21c3":{"d":"104,0r-52,-90r35,17r0,-187r17,0r0,260","w":156},"\u21c4":{"d":"299,-147r-75,43r18,-35r-203,0r0,-17r203,0r-18,-35xm39,-61r75,-43r-17,35r202,0r0,17r-202,0r17,35","w":338},"\u21c5":{"d":"182,0r-43,-75r34,17r0,-202r18,0r0,202r35,-17xm95,-260r44,75r-35,-17r0,202r-17,0r0,-202r-35,17","w":277},"\u21c6":{"d":"39,-147r75,-44r-17,35r202,0r0,17r-202,0r17,35xm299,-61r-75,44r18,-35r-203,0r0,-17r203,0r-18,-35","w":338},"\u21c7":{"d":"39,-147r75,-44r-17,35r202,0r0,17r-202,0r17,35xm39,-61r75,-43r-17,35r202,0r0,17r-202,0r17,35","w":338},"\u21c8":{"d":"95,-260r44,75r-35,-17r0,202r-17,0r0,-202r-35,17xm182,-260r44,75r-35,-17r0,202r-18,0r0,-202r-34,17","w":277},"\u21c9":{"d":"299,-147r-75,43r18,-35r-203,0r0,-17r203,0r-18,-35xm299,-61r-75,44r18,-35r-203,0r0,-17r203,0r-18,-35","w":338},"\u21ca":{"d":"182,0r-43,-75r34,17r0,-202r18,0r0,202r35,-17xm95,0r-43,-75r35,17r0,-202r17,0r0,202r35,-17","w":277},"\u21cb":{"d":"39,-121r90,-52r-17,34r187,0r0,18r-260,0xm299,-87r-90,52r17,-34r-187,0r0,-18r260,0","w":338},"\u21cc":{"d":"299,-121r-260,0r0,-18r187,0r-17,-34xm39,-87r260,0r0,18r-187,0r17,34","w":338},"\u21cd":{"d":"99,-130r-32,26r32,26r107,0r17,-52r-124,0xm147,-17r-108,-87r108,-87r11,14r-37,30r108,0r20,-61r19,0r-20,61r51,0r0,17r-57,0r-18,52r75,0r0,17r-81,0r-20,61r-18,0r20,-61r-79,0r37,30","w":338},"\u21ce":{"d":"121,-61r37,30r-11,14r-108,-87r108,-87r11,14r-37,30r101,0r20,-61r19,0r-21,61r73,0r-38,-30r11,-14r109,87r-109,87r-11,-14r38,-30r-102,0r-20,61r-18,0r20,-61r-72,0xm99,-78r100,0r17,-52r-117,0r-32,26xm217,-78r117,0r33,-26r-33,-26r-99,0","w":433},"\u21cf":{"d":"115,-78r124,0r33,-26r-33,-26r-107,0xm109,-61r-20,61r-18,0r20,-61r-52,0r0,-17r58,0r17,-52r-75,0r0,-17r81,0r20,-61r18,0r-20,61r79,0r-37,-30r11,-14r108,87r-108,87r-11,-14r37,-30r-108,0","w":338},"\u21d0":{"d":"299,-61r-178,0r37,30r-11,14r-108,-87r108,-87r11,14r-37,30r178,0r0,17r-200,0r-32,26r32,26r200,0r0,17","w":338},"\u21d1":{"d":"95,0r0,-178r-29,37r-14,-11r87,-108r87,108r-14,11r-30,-37r0,178r-17,0r0,-200r-26,-33r-26,33r0,200r-18,0","w":277},"\u21d2":{"d":"39,-61r0,-17r200,0r33,-26r-33,-26r-200,0r0,-17r178,0r-37,-30r11,-14r108,87r-108,87r-11,-14r37,-30r-178,0","w":338},"\u21d3":{"d":"182,-260r0,178r30,-37r14,11r-87,108r-87,-108r14,-11r29,37r0,-178r18,0r0,200r26,32r26,-32r0,-200r17,0","w":277},"\u21d4":{"d":"121,-61r37,30r-11,14r-108,-87r108,-87r11,14r-37,30r192,0r-38,-30r11,-14r109,87r-109,87r-11,-14r38,-30r-192,0xm99,-130r-32,26r32,26r235,0r33,-26r-33,-26r-235,0","w":433},"\u21d5":{"d":"95,-200r-29,37r-14,-10r87,-109r87,109r-14,10r-30,-37r0,192r30,-38r14,11r-87,109r-87,-109r14,-11r29,38r0,-192xm165,-222r-26,-32r-26,32r0,235r26,33r26,-33r0,-235","w":277},"\u21d6":{"d":"192,0r-126,-126r6,48r-18,1r-15,-138r138,16r-2,17r-47,-5r126,126r-12,12r-142,-141r-41,-5r4,41r142,142","w":292},"\u21d7":{"d":"100,0r-12,-12r141,-142r5,-41r-41,5r-142,141r-12,-12r126,-126r-48,5r-2,-17r139,-16r-16,138r-17,-1r5,-48","w":292},"\u21d8":{"d":"39,-153r12,-13r142,142r41,4r-5,-41r-141,-141r12,-13r126,126r-5,-47r17,-2r16,138r-138,-15r1,-18r48,6","w":292},"\u21d9":{"d":"254,-153r-126,126r47,-6r2,18r-138,15r15,-138r18,2r-6,47r126,-126r13,13r-142,141r-4,41r41,-4r142,-142","w":292},"\u21da":{"d":"142,-26r0,-35r157,0r0,18r-140,0r0,59r-120,-120r120,-120r0,59r140,0r0,18r-157,0r0,-35r-70,69r227,0r0,18r-227,0","w":338},"\u21db":{"d":"197,-26r69,-69r-227,0r0,-18r227,0r-69,-69r0,35r-158,0r0,-18r140,0r0,-59r120,120r-120,120r0,-59r-140,0r0,-18r158,0r0,35","w":338},"\u21dc":{"d":"97,-95r17,34r-75,-43r75,-43r-17,34v37,-5,48,18,71,29v25,-13,40,-95,71,-42v8,14,16,30,28,40v21,-17,32,-79,67,-49v15,13,30,27,61,22r0,18v-38,7,-52,-15,-77,-29v-23,12,-40,90,-69,45v-9,-15,-18,-30,-30,-43v-17,18,-25,48,-49,59v-23,-5,-37,-38,-73,-32","w":433},"\u21dd":{"d":"337,-95v-35,-6,-48,25,-73,32v-24,-11,-31,-41,-49,-59v-16,18,-27,47,-48,59v-19,-5,-33,-50,-51,-61v-23,11,-37,37,-77,29r0,-18v38,8,53,-24,79,-32v24,10,31,42,49,59v21,-16,40,-93,67,-40v13,11,20,51,40,38v18,-11,30,-29,63,-25r-17,-34r75,43r-75,43","w":433},"\u21de":{"d":"87,0r0,-58r-37,0r0,-17r37,0r0,-35r-37,0r0,-17r37,0r0,-75r-35,17r44,-75r43,75r-35,-17r0,75r37,0r0,17r-37,0r0,35r37,0r0,17r-37,0r0,58r-17,0","w":190},"\u21df":{"d":"104,-260r0,58r37,0r0,17r-37,0r0,35r37,0r0,17r-37,0r0,75r35,-17r-44,75r-43,-75r35,17r0,-75r-37,0r0,-17r37,0r0,-35r-37,0r0,-17r37,0r0,-58r17,0","w":190},"\u21e0":{"d":"39,-104r75,-43r-17,34r29,0r0,18r-29,0r17,34xm147,-113r22,0r0,18r-22,0r0,-18xm191,-113r22,0r0,18r-22,0r0,-18xm234,-113r22,0r0,18r-22,0r0,-18xm278,-113r21,0r0,18r-21,0r0,-18","w":338},"\u21e1":{"d":"95,-260r44,75r-35,-17r0,29r-17,0r0,-29r-35,17xm104,-152r0,22r-17,0r0,-22r17,0xm104,-108r0,21r-17,0r0,-21r17,0xm104,-65r0,22r-17,0r0,-22r17,0xm104,-22r0,22r-17,0r0,-22r17,0","w":190},"\u21e2":{"d":"299,-104r-75,43r18,-34r-29,0r0,-18r29,0r-18,-34xm191,-113r0,18r-22,0r0,-18r22,0xm147,-113r0,18r-21,0r0,-18r21,0xm104,-113r0,18r-22,0r0,-18r22,0xm61,-113r0,18r-22,0r0,-18r22,0","w":338},"\u21e3":{"d":"95,0r-43,-75r35,17r0,-29r17,0r0,29r35,-17xm104,-108r-17,0r0,-22r17,0r0,22xm104,-152r-17,0r0,-21r17,0r0,21xm104,-195r-17,0r0,-22r17,0r0,22xm104,-239r-17,0r0,-21r17,0r0,21","w":190},"\u21e4":{"d":"74,-104r75,-43r-18,34r168,0r0,18r-168,0r18,34xm39,-59r0,-91r17,0r0,91r-17,0","w":338},"\u21e5":{"d":"265,-104r-76,43r18,-34r-168,0r0,-18r168,0r-18,-34xm299,-59r-17,0r0,-91r17,0r0,91","w":338},"\u21e6":{"d":"282,-78r0,-52r-152,0r0,-25r-63,51r63,51r0,-25r152,0xm299,-61r-152,0r0,44r-108,-87r108,-87r0,44r152,0r0,86","w":338},"\u21e7":{"d":"95,0r0,-152r-43,0r87,-108r87,108r-44,0r0,152r-87,0xm113,-17r52,0r0,-152r25,0r-51,-64r-51,64r25,0r0,152","w":277},"\u21e8":{"d":"56,-78r152,0r0,25r64,-51r-64,-51r0,25r-152,0r0,52xm39,-61r0,-86r152,0r0,-44r108,87r-108,87r0,-44r-152,0","w":338},"\u21e9":{"d":"165,-243r-52,0r0,152r-25,0r51,63r51,-63r-25,0r0,-152xm182,-260r0,152r44,0r-87,108r-87,-108r43,0r0,-152r87,0","w":277},"\u21ea":{"d":"95,74r0,-74r87,0r0,74r-87,0xm113,56r52,0r0,-39r-52,0r0,39xm95,-17r0,-135r-43,0r87,-108r87,108r-44,0r0,135r-87,0xm113,-35r52,0r0,-134r25,0r-51,-64r-51,64r25,0r0,134","w":277},"\u2200":{"d":"252,-260r28,0r-104,260r-33,0r-104,-260r28,0r28,69r129,0xm104,-169r56,139r56,-139r-112,0","w":319},"\u2201":{"d":"129,24v39,0,61,-27,64,-64r26,0v-4,53,-37,89,-90,90v-48,1,-90,-42,-90,-90r0,-180v-6,-74,98,-121,152,-67v16,16,25,38,28,67r-26,0v-4,-37,-25,-64,-64,-64v-35,0,-64,29,-64,64r0,180v4,37,25,64,64,64","w":258},"\u2203":{"d":"200,-260r0,260r-161,0r0,-22r135,0r0,-101r-131,0r0,-21r131,0r0,-95r-135,0r0,-21r161,0","w":238},"\u2204":{"d":"174,-239r-15,0r-32,95r47,0r0,-95xm39,0r0,-22r29,0r34,-101r-59,0r0,-21r66,0r31,-95r-101,0r0,-21r108,0r12,-35r18,0r-11,35r34,0r0,260r-121,0r-13,39r-18,0r13,-39r-22,0xm174,-123r-54,0r-34,101r88,0r0,-101","w":238},"\u2205":{"d":"278,-220v79,84,9,227,-102,227v-34,0,-65,-11,-91,-34r-27,27r-12,-12r27,-28v-80,-84,-9,-227,103,-227v34,0,63,11,90,34r28,-27r12,12xm254,-220v-74,-68,-198,-8,-198,90v0,30,10,55,29,78xm98,-40v72,68,197,7,197,-90v0,-29,-10,-55,-29,-78","w":351},"\u2207":{"d":"282,-260r0,24r-119,238r-12,0r-112,-238r0,-24r243,0xm268,-235r-195,0r94,201","w":320},"\u2208":{"d":"57,-95v1,42,43,79,86,78r104,0r0,17r-104,0v-57,2,-104,-47,-104,-104v0,-56,47,-104,104,-104r104,0r0,17v-62,3,-127,-12,-162,23v-16,16,-26,33,-28,55r190,0r0,18r-190,0"},"\u2209":{"d":"39,-104v0,-56,47,-105,104,-104r51,0r13,-39r19,0r-13,39r34,0r0,17r-40,0r-26,78r66,0r0,18r-72,0r-26,78r98,0r0,17r-104,0r-13,39r-18,0r13,-41v-47,-6,-86,-50,-86,-102xm57,-113r105,0r26,-78v-71,-9,-125,19,-131,78xm57,-95v3,39,37,71,74,77r26,-77r-100,0"},"\u220a":{"d":"39,-75v0,-78,74,-142,161,-114r-4,20v-58,-19,-98,-2,-114,63r91,0r-3,13r-91,0v-7,41,6,76,43,76v18,0,38,-3,60,-11r-6,22v-70,25,-137,6,-137,-69","w":239},"\u220b":{"d":"247,-104v0,57,-47,104,-104,104r-104,0r0,-17v62,-3,128,12,163,-23v16,-16,25,-33,27,-55r-190,0r0,-18r190,0v-1,-42,-43,-79,-86,-78r-104,0r0,-17r104,0v57,-2,104,47,104,104"},"\u220c":{"d":"229,-113v-3,-39,-36,-72,-74,-77r-25,77r99,0xm124,-95r-26,78v71,4,126,-19,131,-78r-105,0xm247,-104v0,57,-47,106,-104,104r-51,0r-13,39r-18,0r13,-39r-35,0r0,-17r40,0r26,-78r-66,0r0,-18r72,0r26,-78r-98,0r0,-17r104,0r13,-39r18,0r-13,40v47,7,86,51,86,103"},"\u220d":{"d":"200,-116v0,78,-74,142,-161,114r4,-20v58,19,99,2,115,-63r-92,0r3,-13r92,0v5,-43,-7,-76,-44,-76v-18,0,-38,3,-60,11r6,-22v70,-24,137,-6,137,69","w":239},"\u220e":{"d":"39,0r0,-208r208,0r0,208r-208,0"},"\u2210":{"d":"39,-11v26,0,34,-5,33,-35v-2,-63,5,-139,-4,-195v-3,-7,-18,-8,-29,-8r0,-11r95,0v-1,4,3,12,-3,11v-24,1,-29,4,-29,34r0,201r130,0r0,-201v2,-31,-5,-34,-32,-34r0,-11r95,0v-1,4,3,12,-3,11v-15,2,-29,-2,-29,17r0,204v-1,20,15,15,32,17r0,11r-256,0r0,-11","w":333},"\u2213":{"d":"247,-208r0,17r-208,0r0,-17r208,0xm152,-156r0,69r95,0r0,18r-95,0r0,69r-18,0r0,-69r-95,0r0,-18r95,0r0,-69r18,0"},"\u2214":{"d":"126,-191r0,-35r34,0r0,35r-34,0xm152,-156r0,69r95,0r0,18r-95,0r0,69r-18,0r0,-69r-95,0r0,-18r95,0r0,-69r18,0"},"\u2216":{"d":"150,52r-19,0r-92,-312r18,0","w":188},"\u2217":{"d":"240,-145r-84,41r84,41r-13,22r-78,-52r7,93r-26,0r6,-93r-77,52r-13,-22r84,-41r-84,-41r13,-22r77,52r-6,-93r26,0r-7,93r78,-53"},"\u2218":{"d":"101,-42v-33,0,-62,-29,-62,-62v0,-33,29,-62,62,-62v33,0,62,29,62,62v0,33,-29,62,-62,62xm101,-149v-24,0,-45,21,-45,45v0,23,22,44,45,44v23,0,44,-21,44,-44v0,-23,-21,-45,-44,-45","w":201},"\u221b":{"d":"36,-88r-5,-10r47,-23r69,138r136,-340r12,0r-143,358r-16,0r-69,-139xm195,-205v0,45,-52,53,-96,41r0,-22v29,13,69,16,69,-19v1,-24,-22,-34,-55,-32r0,-17v30,2,52,-8,51,-29v-1,-29,-41,-27,-63,-14r0,-20v34,-12,89,-8,89,31v0,18,-11,31,-33,39v26,6,38,20,38,42","w":290},"\u221c":{"d":"36,-88r-5,-10r47,-23r69,138r136,-340r12,0r-143,358r-16,0r-69,-139xm149,-167r0,-43r-71,0r0,-19r71,-94r24,0r0,93r19,0r0,20r-19,0r0,43r-24,0xm100,-230r50,0r0,-65","w":290},"\u221d":{"d":"240,-30v-44,-4,-46,-22,-74,-57v-19,38,-42,57,-67,57v-33,1,-60,-35,-60,-70v0,-40,27,-78,63,-78v41,0,48,25,72,59v35,-61,52,-62,125,-59r0,15v-33,2,-72,-7,-90,12v-8,8,-18,21,-28,41v41,59,47,56,118,54r0,26r-59,0xm98,-151v-53,2,-53,106,3,104v22,0,40,-16,57,-49v-24,-37,-43,-55,-60,-55","w":338},"\u221f":{"d":"39,0r0,-208r17,0r0,191r191,0r0,17r-208,0"},"\u2220":{"d":"39,0r208,-208r0,24r-166,167r166,0r0,17r-208,0"},"\u2221":{"d":"194,-17r53,0r0,17r-52,0v0,19,-4,39,-12,60r-16,-7v7,-18,11,-36,11,-53r-139,0r98,-98v-13,-13,-28,-23,-45,-30r7,-16v19,9,35,20,50,34r98,-98r0,24r-86,87v19,24,29,51,33,80xm177,-17v-3,-25,-14,-48,-28,-68r-68,68r96,0"},"\u2222":{"d":"189,-61r58,24r-6,16r-58,-23v-9,19,-20,36,-34,50r-12,-12v12,-13,22,-28,30,-45r-128,-53r128,-53v-8,-17,-17,-32,-30,-45r12,-12v14,15,26,31,34,50r58,-24r6,16r-58,25v8,30,8,56,0,86xm173,-67v6,-24,7,-50,0,-74r-88,37"},"\u2223":{"d":"59,52r0,-330r17,0r0,330r-17,0","w":134},"\u2224":{"d":"82,-92r-43,43r0,-25r43,-43r0,-161r18,0r0,144r43,-44r0,25r-43,43r0,162r-18,0r0,-144","w":182},"\u2225":{"d":"59,52r0,-330r17,0r0,330r-17,0xm132,52r0,-330r18,0r0,330r-18,0","w":208},"\u2226":{"d":"82,-53r-43,43r0,-25r43,-43r0,-200r18,0r0,183r56,-57r0,-126r17,0r0,109r44,-43r0,24r-44,44r0,196r-17,0r0,-179r-56,56r0,123r-18,0r0,-105","w":255},"\u2227":{"d":"39,0r104,-208r104,208r-19,0r-85,-169r-85,169r-19,0"},"\u2228":{"d":"39,-208r19,0r85,169r85,-169r19,0r-104,208"},"\u2229":{"d":"143,-191v-46,0,-88,41,-87,87r0,104r-17,0r0,-104v-1,-56,47,-104,104,-104v57,0,104,47,104,104r0,104r-17,0r0,-104v2,-47,-41,-87,-87,-87"},"\u222a":{"d":"143,-17v46,0,87,-40,87,-87r0,-104r17,0r0,104v2,57,-47,104,-104,104v-57,0,-104,-47,-104,-104r0,-104r17,0r0,104v-1,46,41,87,87,87"},"\u222c":{"d":"91,-1v5,-108,-31,-266,52,-283v28,-6,37,40,10,42v-16,1,-20,-20,-9,-27v-18,-7,-27,7,-27,33v0,92,18,293,-52,288v-28,6,-37,-41,-10,-42v16,-1,20,18,9,27v19,8,26,-8,27,-38xm191,-1v4,-107,-31,-268,52,-283v28,-6,37,40,10,42v-15,1,-20,-19,-10,-27v-18,-7,-27,7,-27,33v1,91,19,292,-51,288v-28,6,-37,-41,-10,-42v16,-1,20,18,9,27v19,8,27,-8,27,-38","w":307},"\u222d":{"d":"91,-1v5,-108,-31,-266,52,-283v28,-6,37,40,10,42v-16,1,-20,-20,-9,-27v-18,-7,-27,7,-27,33v0,92,18,293,-52,288v-28,6,-37,-41,-10,-42v16,-1,20,18,9,27v19,8,26,-8,27,-38xm191,-1v4,-107,-31,-268,52,-283v28,-6,37,40,10,42v-15,1,-20,-19,-10,-27v-18,-7,-27,7,-27,33v1,91,19,292,-51,288v-28,6,-37,-41,-10,-42v16,-1,20,18,9,27v19,8,27,-8,27,-38xm291,-1v3,-106,-31,-267,52,-283v28,-6,37,40,10,42v-15,1,-20,-19,-10,-27v-18,-7,-27,7,-27,33v1,91,19,292,-51,288v-28,6,-37,-41,-10,-42v15,-1,18,18,9,27v19,8,27,-8,27,-38","w":407},"\u222e":{"d":"182,-116v0,36,-27,64,-58,70v-3,62,-22,99,-52,98v-28,6,-37,-41,-10,-42v15,-1,18,18,9,27v19,8,28,-8,27,-38r-1,-45v-31,-6,-58,-34,-58,-70v0,-36,27,-64,58,-70v1,-60,20,-100,53,-98v28,-6,37,40,10,42v-16,1,-21,-19,-10,-27v-19,-7,-28,8,-27,37r1,46v31,6,58,34,58,70xm96,-59r0,-114v-58,13,-59,101,0,114xm125,-173r0,114v58,-13,59,-101,0,-114","w":221},"\u222f":{"d":"225,-69v58,-23,59,-72,0,-94v2,30,2,64,0,94xm225,-55v-5,60,-8,100,-54,107v-29,5,-36,-41,-9,-42v15,-1,18,18,9,27v19,8,26,-8,26,-38r-1,-46v-25,4,-48,4,-71,-1v-4,66,-22,100,-53,100v-28,6,-37,-41,-10,-42v15,-1,18,18,9,27v19,8,28,-8,27,-38r-2,-54v-77,-27,-75,-95,0,-122v3,-72,22,-107,54,-107v28,-6,37,40,10,42v-16,1,-21,-19,-10,-27v-19,-7,-28,8,-27,37r2,48v23,-5,48,-5,71,0v3,-66,21,-100,53,-100v28,-6,37,40,10,42v-16,1,-20,-20,-9,-27v-19,-7,-28,8,-27,37r2,55v77,25,75,95,0,122xm196,-61v-2,-32,-2,-76,0,-110v-23,-5,-48,-5,-71,0r1,110v25,5,45,5,70,0xm96,-69v-2,-30,-2,-64,0,-94v-58,22,-59,72,0,94","w":320},"\u2230":{"d":"225,-58v21,0,44,-3,70,-9r0,-98v-26,-6,-49,-9,-70,-9r0,116xm95,-76r0,-80v-58,20,-57,60,0,80xm196,-58r0,-116v-22,0,-46,3,-71,9v2,31,1,65,1,98v26,6,49,9,70,9xm325,-76v58,-20,59,-60,0,-80r0,80xm125,-54v-6,59,-7,99,-53,106v-28,5,-37,-41,-10,-42v15,-1,18,18,9,27v19,8,28,-8,27,-38r-2,-62v-77,-25,-75,-82,0,-106v0,-76,18,-116,54,-115v28,-6,37,40,10,42v-16,1,-21,-19,-10,-27v-19,-7,-28,8,-27,37r2,54v25,-6,49,-9,71,-9v4,-64,21,-97,53,-97v28,-6,37,40,10,42v-16,1,-20,-20,-9,-27v-19,-7,-28,8,-27,37r1,45v22,0,46,3,71,9v4,-71,22,-106,54,-106v28,-6,37,40,10,42v-16,1,-20,-20,-9,-27v-19,-7,-28,8,-27,37r2,63v77,25,75,81,0,106v-5,65,-5,107,-54,115v-28,5,-37,-41,-10,-42v16,-1,20,18,9,27v19,8,27,-8,27,-38r-1,-53v-27,6,-51,9,-72,9v-5,64,-22,97,-53,97v-29,0,-36,-41,-9,-42v15,-1,18,18,9,27v19,8,26,-8,26,-38r-1,-44v-20,0,-44,-3,-71,-9","w":420},"\u2231":{"d":"40,-102v-7,-45,22,-76,57,-84v4,-65,21,-98,53,-98v28,-6,37,40,10,42v-16,1,-21,-19,-10,-27v-18,-7,-27,7,-27,33r1,50v29,6,48,24,56,53r23,0r-30,52r-30,-52r23,0v-6,-20,-20,-33,-41,-40r1,86v0,92,-18,139,-54,139v-28,6,-37,-41,-10,-42v15,-1,18,18,9,27v19,8,27,-8,27,-38r-2,-172v-32,10,-48,32,-43,68","w":221},"\u2232":{"d":"97,-46v-48,-6,-78,-74,-42,-115v11,-13,25,-21,42,-25v4,-65,21,-98,53,-98v28,-6,37,40,10,42v-16,1,-21,-19,-10,-27v-18,-7,-27,7,-27,33r1,50v29,6,48,24,56,53r24,0v-22,33,-35,79,-80,87v-3,62,-22,99,-52,98v-28,6,-37,-41,-10,-42v15,-1,18,18,9,27v19,8,28,-9,27,-39xm96,-59r0,-114v-58,13,-59,101,0,114xm143,-133r23,0v-6,-20,-20,-33,-41,-40r1,114v19,-6,32,-18,39,-36","w":221},"\u2233":{"d":"96,-59r0,-114v-58,13,-59,101,0,114xm126,-59v21,-7,36,-18,40,-40r-23,0v7,-14,17,-25,22,-40v-6,-17,-20,-28,-40,-34xm97,-46v-48,-6,-78,-74,-42,-115v11,-13,25,-21,42,-25v4,-65,21,-98,53,-98v28,-6,37,40,10,42v-16,1,-21,-19,-10,-27v-18,-7,-27,7,-27,33r1,50v45,8,58,54,79,87r-23,0v-8,29,-27,47,-56,53v-3,62,-22,99,-52,98v-28,6,-37,-41,-10,-42v15,-1,18,18,9,27v19,8,28,-9,27,-39","w":221},"\u2234":{"d":"39,0r0,-35r35,0r0,35r-35,0xm213,0r0,-35r34,0r0,35r-34,0xm126,-173r0,-35r34,0r0,35r-34,0"},"\u2235":{"d":"247,-208r0,35r-34,0r0,-35r34,0xm74,-208r0,35r-35,0r0,-35r35,0xm160,-35r0,35r-34,0r0,-35r34,0"},"\u2236":{"d":"59,0r0,-35r34,0r0,35r-34,0xm59,-87r0,-34r34,0r0,34r-34,0xm59,-173r0,-35r34,0r0,35r-34,0","w":151},"\u2237":{"d":"39,0r0,-35r35,0r0,35r-35,0xm213,0r0,-35r34,0r0,35r-34,0xm39,-173r0,-35r35,0r0,35r-35,0xm213,-173r0,-35r34,0r0,35r-34,0"},"\u2238":{"d":"39,-95r0,-18r208,0r0,18r-208,0xm126,-160r0,-35r34,0r0,35r-34,0"},"\u2239":{"d":"213,-13r0,-35r34,0r0,35r-34,0xm39,-95r0,-18r156,0r0,18r-156,0xm213,-160r0,-35r34,0r0,35r-34,0"},"\u223a":{"d":"213,-13r0,-35r34,0r0,35r-34,0xm39,-13r0,-35r35,0r0,35r-35,0xm39,-95r0,-18r208,0r0,18r-208,0xm213,-160r0,-35r34,0r0,35r-34,0xm39,-160r0,-35r35,0r0,35r-35,0"},"\u223b":{"d":"126,-13r0,-35r34,0r0,35r-34,0xm126,-160r0,-35r34,0r0,35r-34,0xm80,-116v-18,0,-31,18,-30,38r-11,0v3,-109,120,-14,168,-14v17,0,26,-13,29,-38r11,0v-5,109,-117,14,-167,14"},"\u223c":{"d":"80,-116v-18,0,-31,18,-30,38r-11,0v3,-109,120,-14,168,-14v17,0,26,-13,29,-38r11,0v-5,109,-117,14,-167,14"},"\u223d":{"d":"236,-78v-7,-85,-109,4,-151,4v-29,0,-44,-19,-46,-56r11,0v7,90,108,-4,151,-4v29,0,44,19,46,56r-11,0"},"\u223e":{"d":"230,-104v0,-21,-24,-43,-46,-32r-6,-16v37,-16,68,15,69,48v2,51,-71,71,-97,26v-12,-21,-33,-61,-59,-61v-19,-1,-35,17,-35,35v0,22,23,41,46,33r6,16v-36,12,-69,-15,-69,-49v-1,-29,23,-52,52,-52v30,0,58,43,73,69v18,31,67,17,66,-17"},"\u223f":{"d":"91,-191v-30,11,-28,41,-43,87r-18,0v15,-55,18,-95,61,-104v46,3,49,65,62,108v10,32,16,53,22,65v20,36,39,15,51,-28r13,-41r17,0v-11,43,-19,72,-28,84v-32,43,-67,13,-85,-50r-23,-83v-7,-25,-17,-38,-29,-38"},"\u2240":{"d":"98,-180v0,-24,-16,-42,-39,-43r0,-11v61,1,69,68,44,120v-22,46,-46,120,16,129r0,11v-73,-5,-66,-82,-39,-141v14,-31,18,-54,18,-65","w":177},"\u2241":{"d":"39,-78v3,-65,50,-66,100,-40r19,-58r18,0r-21,65v44,20,72,36,81,-19r11,0v-6,65,-46,67,-99,39r-19,58r-19,0r22,-65v-40,-23,-79,-29,-82,20r-11,0"},"\u2242":{"d":"247,-163r0,18r-208,0r0,-18r208,0xm128,-68v-42,-23,-74,-23,-78,22r-11,0v3,-109,119,-14,168,-14v17,0,26,-13,29,-38r11,0v-1,81,-74,55,-119,30"},"\u2243":{"d":"39,-46r0,-17r208,0r0,17r-208,0xm80,-149v-18,0,-31,18,-30,38r-11,0v3,-109,119,-14,168,-14v17,0,26,-13,29,-38r11,0v-5,109,-118,14,-167,14"},"\u2244":{"d":"247,-163v-2,58,-43,68,-88,44r-18,56r106,0r0,17r-112,0r-15,44r-18,0r15,-44r-78,0r0,-17r83,0r21,-63v-37,-20,-91,-43,-93,15r-11,0v5,-73,58,-61,111,-35r16,-47r18,0v-5,18,-15,39,-17,55v41,19,61,22,69,-25r11,0"},"\u2245":{"d":"39,-13r0,-17r208,0r0,17r-208,0xm39,-78r0,-17r208,0r0,17r-208,0xm128,-166v-42,-23,-74,-23,-78,23r-11,0v3,-109,120,-14,168,-14v17,0,26,-13,29,-38r11,0v-1,80,-75,54,-119,29"},"\u2246":{"d":"39,-13r0,-17r208,0r0,17r-208,0xm39,-78r0,-17r208,0r0,17r-208,0xm128,-166v-42,-23,-74,-23,-78,23r-11,0v3,-109,120,-14,168,-14v17,0,26,-13,29,-38r11,0v-1,80,-75,54,-119,29xm112,13r44,-134r19,0r-45,134r-18,0"},"\u2247":{"d":"175,-167v33,18,56,14,61,-28r11,0v-2,53,-36,66,-79,48r-17,52r96,0r0,17r-102,0r-16,48r118,0r0,17r-124,0r-13,39r-18,0r13,-39r-66,0r0,-17r72,0r16,-48r-88,0r0,-17r94,0r19,-59v-35,-19,-101,-52,-102,11r-11,0v3,-79,70,-58,120,-31r17,-52r18,0"},"\u2249":{"d":"166,-145v38,19,63,24,70,-24r11,0v-3,58,-41,67,-88,44r-15,48v41,17,85,49,92,-14r11,0v-2,74,-65,59,-110,34r-17,48r-18,0r19,-55v-38,-22,-69,-17,-71,25r-11,0v2,-58,42,-66,88,-45r16,-48v-35,-21,-92,-42,-93,15r-11,0v4,-72,59,-62,111,-35r16,-48r18,0"},"\u224a":{"d":"39,-7r0,-17r208,0r0,17r-208,0xm80,-110v-17,0,-32,18,-30,38r-11,0v3,-109,119,-14,168,-14v17,0,26,-13,29,-38r11,0v-5,109,-118,14,-167,14xm80,-188v-18,0,-31,18,-30,38r-11,0v3,-109,119,-14,168,-14v17,0,26,-13,29,-38r11,0v-5,109,-118,14,-167,14"},"\u224b":{"d":"80,-116v-18,0,-31,18,-30,38r-11,0v3,-109,120,-14,168,-14v17,0,26,-13,29,-38r11,0v-5,109,-117,14,-167,14xm128,-179v-42,-23,-74,-23,-78,23r-11,0v3,-109,120,-14,168,-14v17,0,26,-13,29,-38r11,0v-1,80,-75,54,-119,29xm80,-38v-17,0,-32,18,-30,38r-11,0v3,-109,120,-14,168,-14v17,0,26,-13,29,-38r11,0v-5,109,-117,14,-167,14"},"\u224c":{"d":"39,0r0,-17r208,0r0,17r-208,0xm39,-65r0,-17r208,0r0,17r-208,0xm39,-178v1,-32,33,-64,69,-48r-5,16v-23,-11,-47,11,-47,32v0,39,51,48,71,10v13,-25,41,-62,68,-62v29,0,53,24,52,52v0,34,-31,60,-68,50r5,-17v23,8,47,-11,46,-33v-2,-38,-52,-49,-69,-10v-17,24,-33,62,-70,62v-28,0,-53,-24,-52,-52"},"\u224d":{"d":"50,-26r-11,0v48,-75,161,-75,208,0r-11,0v-37,-46,-149,-47,-186,0xm236,-182r11,0v-47,75,-161,75,-208,0r11,0v37,46,149,47,186,0"},"\u224e":{"d":"143,-176v-22,1,-34,21,-30,48r-74,0r0,-17r56,0v4,-32,20,-48,48,-48v28,0,44,16,48,48r56,0r0,17r-74,0v4,-28,-7,-48,-30,-48xm143,-33v23,1,34,-19,30,-47r74,0r0,17r-56,0v-4,32,-20,48,-48,48v-28,0,-44,-16,-48,-48r-56,0r0,-17r74,0v-3,27,7,47,30,47"},"\u224f":{"d":"247,-80r0,17r-208,0r0,-17r208,0xm143,-176v-22,1,-34,21,-30,48r-74,0r0,-17r56,0v4,-32,20,-48,48,-48v28,0,44,16,48,48r56,0r0,17r-74,0v4,-28,-7,-48,-30,-48"},"\u2250":{"d":"39,-63r0,-17r208,0r0,17r-208,0xm39,-128r0,-17r208,0r0,17r-208,0xm126,-180r0,-35r34,0r0,35r-34,0"},"\u2251":{"d":"126,7r0,-35r34,0r0,35r-34,0xm39,-63r0,-17r208,0r0,17r-208,0xm39,-128r0,-17r208,0r0,17r-208,0xm126,-180r0,-35r34,0r0,35r-34,0"},"\u2252":{"d":"213,7r0,-35r34,0r0,35r-34,0xm39,-63r0,-17r208,0r0,17r-208,0xm39,-128r0,-17r208,0r0,17r-208,0xm39,-180r0,-35r35,0r0,35r-35,0"},"\u2253":{"d":"39,7r0,-35r35,0r0,35r-35,0xm39,-63r0,-17r208,0r0,17r-208,0xm39,-128r0,-17r208,0r0,17r-208,0xm213,-180r0,-35r34,0r0,35r-34,0"},"\u2254":{"d":"74,-153r0,35r-35,0r0,-35r35,0xm247,-144r0,17r-139,0r0,-17r139,0xm74,-92r0,35r-35,0r0,-35r35,0xm247,-83r0,17r-139,0r0,-17r139,0"},"\u2255":{"d":"213,-153r34,0r0,35r-34,0r0,-35xm39,-144r139,0r0,17r-139,0r0,-17xm213,-92r34,0r0,35r-34,0r0,-35xm39,-83r139,0r0,17r-139,0r0,-17"},"\u2256":{"d":"39,-63r0,-17r71,0v-10,-13,-11,-35,0,-48r-71,0r0,-17r208,0r0,17r-70,0v10,13,9,35,0,48r70,0r0,17r-208,0xm143,-128v-13,0,-24,11,-24,24v0,13,11,24,24,24v13,0,24,-11,24,-24v0,-13,-11,-24,-24,-24"},"\u2257":{"d":"39,0r0,-17r208,0r0,17r-208,0xm39,-65r0,-17r208,0r0,17r-208,0xm143,-126v-25,0,-45,-20,-45,-45v0,-25,20,-46,45,-46v25,0,46,21,46,46v0,24,-21,45,-46,45xm143,-200v-15,0,-28,14,-28,29v0,15,13,28,28,28v15,0,28,-13,28,-28v0,-15,-14,-29,-28,-29"},"\u2258":{"d":"39,0r0,-17r208,0r0,17r-208,0xm39,-65r0,-17r208,0r0,17r-208,0xm50,-134r-11,0v48,-76,161,-76,208,0r-11,0v-37,-46,-149,-47,-186,0"},"\u2259":{"d":"39,0r0,-17r208,0r0,17r-208,0xm39,-65r0,-17r208,0r0,17r-208,0xm78,-130r65,-130r65,130r-19,0r-46,-91r-46,91r-19,0"},"\u225a":{"d":"39,-65r0,-17r208,0r0,17r-208,0xm39,0r0,-17r208,0r0,17r-208,0xm221,-260r-78,156r-78,-156r19,0r59,117r59,-117r19,0"},"\u225b":{"d":"39,0r0,-17r208,0r0,17r-208,0xm39,-65r0,-17r208,0r0,17r-208,0xm73,-208r54,0r16,-51r17,51r53,0r-43,31r17,51r-44,-31r-43,31r16,-51"},"\u225c":{"d":"39,0r0,-17r208,0r0,17r-208,0xm39,-65r0,-17r208,0r0,17r-208,0xm218,-130r-150,0r75,-130xm188,-147r-45,-79r-45,79r90,0"},"\u225d":{"d":"39,0r0,-17r208,0r0,17r-208,0xm39,-65r0,-17r208,0r0,17r-208,0xm41,-158v-4,-34,33,-57,56,-33r0,-44r15,0r0,114r-15,0r0,-15v-15,28,-61,19,-56,-22xm97,-181v-18,-18,-41,-13,-41,21v0,33,25,35,41,15r0,-36xm125,-161v0,-22,13,-40,34,-40v22,0,31,15,30,43r-50,0v2,29,25,33,49,23r0,11v-33,13,-63,-4,-63,-37xm140,-169r34,0v0,-15,-5,-22,-16,-22v-11,0,-17,7,-18,22xm206,-121r0,-68r-12,0r0,-11r12,0v-4,-30,13,-43,41,-35r0,12v-19,-9,-30,1,-27,23r19,0r0,11r-19,0r0,68r-14,0"},"\u225e":{"d":"39,0r0,-17r208,0r0,17r-208,0xm39,-65r0,-17r208,0r0,17r-208,0xm76,-121r0,-92r17,0r0,17v13,-24,50,-29,59,0v12,-27,58,-29,58,9r0,66r-17,0r0,-64v-3,-28,-29,-16,-41,3r0,61r-18,0r0,-64v-3,-28,-29,-16,-41,3r0,61r-17,0"},"\u225f":{"d":"39,0r0,-17r208,0r0,17r-208,0xm39,-65r0,-17r208,0r0,17r-208,0xm134,-113r0,-17r18,0r0,17r-18,0xm134,-147v-6,-29,32,-47,33,-69v1,-21,-34,-19,-51,-11r0,-14v29,-10,69,-6,69,25v0,25,-41,34,-33,69r-18,0"},"\u2261":{"d":"39,-30r0,-18r208,0r0,18r-208,0xm39,-95r0,-18r208,0r0,18r-208,0xm39,-160r0,-18r208,0r0,18r-208,0"},"\u2262":{"d":"39,-30r0,-18r76,0r16,-47r-92,0r0,-18r98,0r16,-47r-114,0r0,-18r120,0r14,-43r18,0r-14,43r70,0r0,18r-76,0r-16,47r92,0r0,18r-98,0r-16,47r114,0r0,18r-119,0r-15,43r-18,0r14,-43r-70,0"},"\u2263":{"d":"39,0r0,-17r208,0r0,17r-208,0xm39,-65r0,-17r208,0r0,17r-208,0xm39,-130r0,-17r208,0r0,17r-208,0xm39,-195r0,-18r208,0r0,18r-208,0"},"\u2266":{"d":"39,-65r0,-17r208,0r0,17r-208,0xm247,-273r0,18r-161,65r161,65r0,18r-208,-83xm39,0r0,-17r208,0r0,17r-208,0"},"\u2267":{"d":"247,-65r-208,0r0,-17r208,0r0,17xm39,-273r208,83r-208,83r0,-18r161,-65r-161,-65r0,-18xm247,0r-208,0r0,-17r208,0r0,17"},"\u2268":{"d":"133,-82r13,-39r18,0r-13,39r96,0r0,17r-102,0r-16,48r118,0r0,17r-124,0r-13,39r-18,0r13,-39r-66,0r0,-17r72,0r16,-48r-88,0r0,-17r94,0xm247,-273r0,18r-161,65r161,65r0,18r-208,-83"},"\u2269":{"d":"148,-82r13,-39r18,0r-13,39r81,0r0,17r-87,0r-16,48r103,0r0,17r-108,0r-13,39r-19,0r13,-39r-81,0r0,-17r87,0r16,-48r-103,0r0,-17r109,0xm39,-273r208,83r-208,83r0,-18r161,-65r-161,-65r0,-18"},"\u226a":{"d":"247,0r-208,-104r208,-104r0,19r-169,85r169,85r0,19xm364,0r-209,-104r209,-104r0,19r-170,85r170,85r0,19","w":402},"\u226b":{"d":"155,0r0,-19r169,-85r-169,-85r0,-19r209,104xm39,0r0,-19r169,-85r-169,-85r0,-19r208,104","w":402},"\u226c":{"d":"100,26v-14,11,-29,20,-44,26r0,-11v11,-6,22,-14,33,-26v-66,-72,-67,-184,0,-256v-11,-12,-22,-20,-33,-26r0,-11v15,6,30,14,44,26v14,-11,28,-20,43,-26r0,11v-11,6,-21,14,-32,26v66,71,65,185,0,256v11,12,21,20,32,26r0,11v-15,-6,-29,-15,-43,-26xm100,3v46,-52,45,-180,0,-232v-46,52,-47,180,0,232","w":199},"\u226d":{"d":"134,-60v-38,3,-65,14,-84,34r-11,0v24,-35,56,-54,95,-56v-1,-14,2,-32,-1,-44v-39,-2,-70,-21,-94,-56r11,0v19,20,46,31,84,34r0,-78r18,0r0,78v38,-3,66,-14,84,-34r11,0v-24,35,-55,54,-95,56r0,44v39,2,71,21,95,56r-11,0v-19,-20,-46,-31,-84,-34r0,77r-18,0r0,-77"},"\u226e":{"d":"121,-63r-82,-41r115,-58r20,-59r18,0r-16,48r71,-35r0,19r-78,40r-26,77r104,53r0,19r-110,-55r-23,68r-18,0xm127,-79r20,-60r-69,35"},"\u226f":{"d":"165,-145r82,41r-115,58r-20,59r-18,0r16,-49r-71,36r0,-19r79,-40r26,-78r-105,-52r0,-19r110,55r23,-68r18,0xm159,-129r-19,59r68,-34"},"\u2270":{"d":"125,-68r12,-37r-98,-39r129,-51r20,-61r18,0r-17,52r58,-23r0,18r-65,27r-23,67r88,36r0,18r-94,-37r-12,37r106,42r0,19r-111,-45r-22,66r-19,0r25,-72r-81,-32r0,-19xm160,-174r-74,30r57,23"},"\u2271":{"d":"112,-29r-20,59r-18,0r17,-51r-52,21r0,-19r59,-23r16,-49r-75,30r0,-18r82,-33r19,-56r-101,-41r0,-18r106,42r21,-63r19,0r-24,70r86,34r-112,45r-16,48r128,-51r0,19xm142,-121r58,-23r-44,-18"},"\u2272":{"d":"247,-234r0,18r-161,65r161,65r0,18r-208,-83xm80,-38v-17,0,-32,18,-30,38r-11,0v3,-109,120,-14,168,-14v17,0,26,-13,29,-38r11,0v-5,109,-117,14,-167,14"},"\u2273":{"d":"39,-234r208,83r-208,83r0,-18r161,-65r-161,-65r0,-18xm80,-38v-17,0,-32,18,-30,38r-11,0v3,-109,120,-14,168,-14v17,0,26,-13,29,-38r11,0v-5,109,-117,14,-167,14"},"\u2274":{"d":"103,-32v-28,-16,-54,2,-53,32r-11,0v1,-48,30,-65,71,-52r21,-62r-92,-37r120,-48r20,-61r19,0r-18,53r67,-27r0,18r-74,30r-21,62r95,38r0,18r-100,-40r-20,63v41,14,102,65,109,-7r11,0v-2,86,-83,50,-128,26r-14,43r-18,0xm152,-177r-66,26r50,20"},"\u2275":{"d":"92,-36v-24,-8,-43,11,-42,36r-11,0v2,-42,22,-61,59,-55r14,-42r-73,29r0,-18r80,-32r19,-58r-99,-40r0,-18r105,42r22,-68r19,0r-25,74r87,35r-114,46v-5,18,-16,39,-18,56v42,9,114,75,121,-3r11,0v-3,92,-92,43,-139,22r-16,47r-18,0xm140,-127r60,-24r-46,-18"},"\u2276":{"d":"39,-140r208,84r-208,83r0,-19r161,-64r-161,-65r0,-19xm247,-260r0,18r-161,65r161,65r0,18r-208,-83"},"\u2277":{"d":"247,-140r0,19r-161,65r161,64r0,19r-208,-83xm39,-260r208,83r-208,83r0,-18r161,-65r-161,-65r0,-18"},"\u2278":{"d":"134,-139r-95,-38r95,-38r0,-63r18,0r0,56r95,-38r0,18r-95,39r0,53r95,38r0,18r-95,-38r0,37r95,39r-95,38r0,61r-18,0r0,-54r-95,38r0,-19r95,-38r0,-53r-95,-38r0,-19r95,39r0,-38xm134,-158r0,-39r-48,20xm152,-76r0,39r48,-19"},"\u2279":{"d":"152,-83r0,53r95,38r0,19r-95,-38r0,54r-18,0r0,-61r-95,-38r95,-39r0,-37r-95,38r0,-18r95,-38r0,-53r-95,-39r0,-18r95,38r0,-56r18,0r0,63r95,38r-95,38r0,38r95,-39r0,19xm134,-76r-48,20r48,19r0,-39xm152,-158r48,-19r-48,-20r0,39"},"\u227a":{"d":"39,-113v87,1,166,-35,189,-95r19,0v-17,52,-78,98,-140,104v63,5,123,52,140,104r-19,0v-23,-61,-101,-97,-189,-95r0,-18"},"\u227b":{"d":"247,-95v-89,-2,-165,34,-188,95r-20,0v17,-52,78,-98,140,-104v-62,-6,-123,-52,-140,-104r20,0v23,60,101,96,188,95r0,18"},"\u227c":{"d":"39,-113v87,1,166,-35,189,-95r19,0v-17,52,-78,98,-140,104v63,5,123,52,140,104r-19,0v-23,-61,-101,-97,-189,-95r0,-18xm190,26v-18,-52,-77,-81,-151,-78r0,-17v85,-1,153,32,170,95r-19,0"},"\u227d":{"d":"247,-95v-89,-2,-165,34,-188,95r-20,0v17,-52,78,-98,140,-104v-62,-6,-123,-52,-140,-104r20,0v23,60,101,96,188,95r0,18xm247,-52v-73,-2,-133,26,-150,78r-20,0v17,-63,85,-96,170,-95r0,17"},"\u227e":{"d":"39,-187v88,2,166,-34,189,-95r19,0v-17,52,-77,99,-140,104v62,6,123,52,140,104r-19,0v-23,-60,-102,-96,-189,-95r0,-18xm80,-38v-17,0,-32,18,-30,38r-11,0v3,-109,120,-14,168,-14v17,0,26,-13,29,-38r11,0v-5,109,-117,14,-167,14"},"\u227f":{"d":"247,-169v-87,-1,-165,35,-188,95r-20,0v17,-52,78,-98,140,-104v-63,-5,-123,-52,-140,-104r20,0v22,61,100,97,188,95r0,18xm80,-38v-17,0,-32,18,-30,38r-11,0v3,-109,120,-14,168,-14v17,0,26,-13,29,-38r11,0v-5,109,-117,14,-167,14"},"\u2280":{"d":"165,-67v-33,-19,-75,-28,-126,-28v1,-6,-3,-16,2,-18v50,0,91,-9,124,-28r0,-85r17,0r0,74v23,-17,38,-36,46,-56r19,0v-11,32,-32,59,-65,77v1,17,-2,39,1,54v32,19,53,45,64,77r-19,0v-8,-20,-23,-39,-46,-56r0,73r-17,0r0,-84xm164,-87v2,-8,2,-26,0,-34v-19,9,-38,15,-57,17v19,2,38,8,57,17"},"\u2281":{"d":"247,-95v-49,0,-90,7,-122,26r0,86r-18,0r0,-75v-23,18,-40,38,-48,58r-20,0v11,-33,33,-59,68,-79r0,-50v-34,-20,-57,-46,-68,-79r20,0v8,21,24,41,48,58r0,-76r18,0r1,87v32,17,72,26,121,26r0,18xm125,-120r0,32v15,-10,35,-14,54,-16v-19,-2,-37,-8,-54,-16"},"\u2282":{"d":"56,-104v0,46,41,88,87,87r104,0r0,17r-104,0v-57,2,-104,-47,-104,-104v0,-56,47,-104,104,-104r104,0r0,17r-104,0v-46,-1,-87,41,-87,87"},"\u2283":{"d":"247,-104v0,57,-47,104,-104,104r-104,0r0,-17r104,0v46,1,87,-40,87,-87v0,-47,-41,-87,-87,-87r-104,0r0,-17r104,0v57,-2,104,47,104,104"},"\u2284":{"d":"39,-104v0,-56,47,-105,104,-104r51,0r13,-39r19,0r-13,39r34,0r0,17r-40,0r-58,174r98,0r0,17r-104,0r-13,39r-18,0r13,-41v-47,-7,-86,-49,-86,-102xm188,-191v-100,-20,-168,71,-111,143v13,17,32,26,54,30"},"\u2285":{"d":"247,-104v0,57,-47,106,-104,104r-51,0r-13,39r-18,0r13,-39r-35,0r0,-17r40,0r58,-174r-98,0r0,-17r104,0r13,-39r18,0r-13,40v47,7,86,51,86,103xm98,-17v101,21,168,-71,111,-144v-13,-17,-32,-25,-54,-29"},"\u2286":{"d":"247,-17r0,17r-208,0r0,-17r208,0xm56,-134v0,30,27,56,57,56r134,0r0,17r-134,0v-40,1,-74,-34,-74,-73v0,-40,34,-74,74,-74r134,0r0,17r-134,0v-31,0,-57,26,-57,57"},"\u2287":{"d":"39,-17r208,0r0,17r-208,0r0,-17xm247,-134v0,40,-34,73,-74,73r-134,0r0,-17r134,0v30,0,57,-26,57,-56v0,-31,-26,-57,-57,-57r-134,0r0,-17r134,0v40,-1,74,33,74,74"},"\u2288":{"d":"39,-134v1,-60,56,-83,127,-74r13,-39r19,0r-13,39r62,0r0,17r-68,0r-38,113r106,0r0,17r-112,0r-14,44r126,0r0,17r-132,0r-13,39r-18,0r13,-39r-58,0r0,-17r64,0r14,-44v-44,3,-78,-32,-78,-73xm56,-134v0,34,29,60,67,56r37,-113v-56,-6,-104,7,-104,57"},"\u2289":{"d":"247,-134v0,60,-56,82,-127,73r-15,44r142,0r0,17r-147,0r-13,39r-18,0r13,-39r-43,0r0,-17r48,0r15,-44r-63,0r0,-17r69,0r37,-113r-106,0r0,-17r112,0r13,-39r18,0r-13,39v44,-3,79,32,78,74xm230,-134v0,-34,-28,-61,-67,-57r-37,113v56,6,104,-7,104,-56"},"\u228a":{"d":"147,0r-13,39r-18,0r13,-39r-90,0r0,-17r96,0r8,-26r19,0r-9,26r94,0r0,17r-100,0xm56,-134v0,30,27,56,57,56r134,0r0,17r-134,0v-40,1,-74,-34,-74,-73v0,-40,34,-74,74,-74r134,0r0,17r-134,0v-31,0,-57,26,-57,57"},"\u228b":{"d":"135,-17r8,-26r19,0r-9,26r94,0r0,17r-100,0r-13,39r-18,0r13,-39r-90,0r0,-17r96,0xm247,-134v0,40,-34,73,-74,73r-134,0r0,-17r134,0v30,0,57,-26,57,-56v0,-31,-26,-57,-57,-57r-134,0r0,-17r134,0v40,-1,74,33,74,74"},"\u228c":{"d":"143,0v-57,0,-104,-47,-104,-104r0,-104r17,0r0,104v-2,65,80,113,137,71v21,-16,35,-39,37,-71r-65,0r0,26r-35,-35r35,-34r0,26r65,0r0,-87r17,0r0,104v2,57,-47,104,-104,104"},"\u228d":{"d":"126,-104r0,-35r34,0r0,35r-34,0xm143,-17v46,0,87,-40,87,-87r0,-104r17,0r0,104v2,57,-47,104,-104,104v-57,0,-104,-47,-104,-104r0,-104r17,0r0,104v-1,46,41,87,87,87"},"\u228e":{"d":"134,-61r0,-43r-43,0r0,-17r43,0r0,-44r18,0r0,44r43,0r0,17r-43,0r0,43r-18,0xm143,-17v46,0,87,-40,87,-87r0,-104r17,0r0,104v2,57,-47,104,-104,104v-57,0,-104,-47,-104,-104r0,-104r17,0r0,104v-1,46,41,87,87,87"},"\u228f":{"d":"39,0r0,-208r208,0r0,17r-191,0r0,174r191,0r0,17r-208,0"},"\u2290":{"d":"247,0r-208,0r0,-17r191,0r0,-174r-191,0r0,-17r208,0r0,208"},"\u2291":{"d":"39,0r0,-17r208,0r0,17r-208,0xm39,-61r0,-147r208,0r0,17r-191,0r0,113r191,0r0,17r-208,0"},"\u2292":{"d":"247,0r-208,0r0,-17r208,0r0,17xm247,-61r-208,0r0,-17r191,0r0,-113r-191,0r0,-17r208,0r0,147"},"\u2293":{"d":"39,0r0,-208r208,0r0,208r-17,0r0,-191r-174,0r0,191r-17,0"},"\u2294":{"d":"247,-208r0,208r-208,0r0,-208r17,0r0,191r174,0r0,-191r17,0"},"\u2295":{"d":"252,-104v0,58,-50,108,-109,108v-59,0,-108,-49,-108,-108v0,-59,50,-109,108,-109v59,0,109,50,109,109xm152,-95r0,82v43,-4,78,-39,82,-82r-82,0xm134,-113r0,-82v-43,4,-77,39,-81,82r81,0xm152,-113r82,0v-3,-43,-39,-79,-82,-82r0,82xm134,-95r-82,0v4,43,40,77,82,82r0,-82"},"\u2296":{"d":"252,-104v0,58,-50,108,-109,108v-59,0,-108,-49,-108,-108v0,-59,50,-109,108,-109v59,0,109,50,109,109xm234,-113v-2,-68,-98,-111,-152,-59v-17,16,-27,36,-29,59r181,0xm52,-95v2,69,100,110,152,58v16,-17,28,-34,30,-58r-182,0"},"\u2297":{"d":"143,4v-59,0,-108,-49,-108,-108v0,-59,50,-109,108,-109v59,0,109,50,109,109v0,58,-50,108,-109,108xm143,-92r-58,58v32,28,84,28,116,0xm143,-116r58,-58v-33,-28,-83,-28,-116,0xm155,-104r58,58v28,-32,28,-84,0,-116xm131,-104r-58,-58v-28,32,-28,84,0,116"},"\u2298":{"d":"252,-104v0,58,-50,108,-109,108v-59,0,-108,-49,-108,-108v0,-59,50,-109,108,-109v59,0,109,50,109,109xm201,-174v-57,-51,-149,-2,-149,70v0,22,7,41,21,58xm85,-34v57,50,149,3,149,-70v0,-22,-7,-41,-21,-58"},"\u2299":{"d":"252,-104v0,58,-50,108,-109,108v-59,0,-108,-49,-108,-108v0,-59,50,-109,108,-109v59,0,109,50,109,109xm52,-104v0,48,43,91,91,91v48,0,91,-42,91,-91v0,-49,-43,-91,-91,-91v-48,0,-91,43,-91,91xm124,-85r0,-39r39,0r0,39r-39,0"},"\u229a":{"d":"252,-104v0,58,-50,108,-109,108v-59,0,-108,-49,-108,-108v0,-59,50,-109,108,-109v59,0,109,50,109,109xm52,-104v0,48,43,91,91,91v48,0,91,-42,91,-91v0,-49,-43,-91,-91,-91v-48,0,-91,43,-91,91xm184,-104v0,22,-19,41,-41,41v-22,0,-41,-19,-41,-41v0,-22,19,-41,41,-41v22,0,41,19,41,41xm119,-104v0,13,11,24,24,24v13,0,24,-11,24,-24v0,-13,-11,-24,-24,-24v-13,0,-24,11,-24,24"},"\u229b":{"d":"252,-104v0,58,-50,108,-109,108v-59,0,-108,-49,-108,-108v0,-59,50,-109,108,-109v59,0,109,50,109,109xm52,-104v0,48,43,91,91,91v48,0,91,-42,91,-91v0,-49,-43,-91,-91,-91v-48,0,-91,43,-91,91xm134,-52r5,-45r-37,26r-8,-15r40,-18r-40,-19r8,-15r37,26r-5,-44r18,0r-5,44r37,-26r8,15r-40,19r40,18r-8,15r-37,-26r5,45r-18,0"},"\u229c":{"d":"55,-82r177,0v3,-17,3,-27,0,-44r-177,0v-4,17,-4,27,0,44xm61,-143r164,0v-28,-70,-136,-69,-164,0xm252,-104v0,58,-50,108,-109,108v-59,0,-108,-49,-108,-108v0,-59,50,-109,108,-109v59,0,109,50,109,109xm61,-65v28,70,136,69,164,0r-164,0"},"\u229d":{"d":"247,-104v0,57,-47,104,-104,104v-57,0,-104,-47,-104,-104v0,-57,47,-104,104,-104v57,0,104,47,104,104xm56,-104v0,46,41,87,87,87v46,0,87,-40,87,-87v0,-47,-41,-87,-87,-87v-46,0,-87,41,-87,87xm82,-95r0,-18r122,0r0,18r-122,0"},"\u229e":{"d":"39,0r0,-208r208,0r0,208r-208,0xm230,-95r-78,0r0,78r78,0r0,-78xm134,-17r0,-78r-78,0r0,78r78,0xm56,-113r78,0r0,-78r-78,0r0,78xm152,-113r78,0r0,-78r-78,0r0,78"},"\u229f":{"d":"39,0r0,-208r208,0r0,208r-208,0xm230,-17r0,-78r-174,0r0,78r174,0xm230,-113r0,-78r-174,0r0,78r174,0"},"\u22a0":{"d":"39,0r0,-208r208,0r0,208r-208,0xm56,-30r75,-74r-75,-75r0,149xm69,-191r74,75r75,-75r-149,0xm155,-104r75,74r0,-149xm218,-17r-75,-75r-74,75r149,0"},"\u22a1":{"d":"39,0r0,-208r208,0r0,208r-208,0xm56,-17r174,0r0,-174r-174,0r0,174xm126,-87r0,-34r34,0r0,34r-34,0"},"\u22a2":{"d":"39,0r0,-208r17,0r0,95r191,0r0,18r-191,0r0,95r-17,0"},"\u22a3":{"d":"247,0r-17,0r0,-95r-191,0r0,-18r191,0r0,-95r17,0r0,208"},"\u22a4":{"d":"39,-208r208,0r0,17r-95,0r0,191r-18,0r0,-191r-95,0r0,-17"},"\u22a5":{"d":"247,0r-208,0r0,-17r95,0r0,-191r18,0r0,191r95,0r0,17"},"\u22a6":{"d":"52,0r0,-208r17,0r0,95r87,0r0,18r-87,0r0,95r-17,0","w":208},"\u22a7":{"d":"52,0r0,-208r17,0r0,61r87,0r0,17r-87,0r0,52r87,0r0,17r-87,0r0,61r-17,0","w":208},"\u22a8":{"d":"39,0r0,-208r17,0r0,61r191,0r0,17r-191,0r0,52r191,0r0,17r-191,0r0,61r-17,0"},"\u22a9":{"d":"39,0r0,-208r17,0r0,208r-17,0xm91,0r0,-208r17,0r0,95r139,0r0,18r-139,0r0,95r-17,0"},"\u22aa":{"d":"91,0r0,-208r17,0r0,208r-17,0xm143,0r0,-208r17,0r0,95r87,0r0,18r-87,0r0,95r-17,0xm39,0r0,-208r17,0r0,208r-17,0"},"\u22ab":{"d":"91,0r0,-208r17,0r0,61r139,0r0,17r-139,0r0,52r139,0r0,17r-139,0r0,61r-17,0xm39,0r0,-208r17,0r0,208r-17,0"},"\u22ac":{"d":"133,-113r36,-108r18,0r-36,108r96,0r0,18r-101,0r-37,108r-18,0r36,-108r-71,0r0,95r-17,0r0,-208r17,0r0,95r77,0"},"\u22ad":{"d":"144,-147r25,-74r18,0r-24,74r84,0r0,17r-90,0r-17,52r107,0r0,17r-113,0r-25,74r-18,0r25,-74r-60,0r0,61r-17,0r0,-208r17,0r0,61r88,0xm139,-130r-83,0r0,52r65,0"},"\u22ae":{"d":"159,-113r36,-108r18,0r-36,108r70,0r0,18r-75,0r-37,108r-18,0r36,-108r-45,0r0,95r-17,0r0,-208r17,0r0,95r51,0xm39,0r0,-208r17,0r0,208r-17,0"},"\u22af":{"d":"142,-61r-34,0r0,61r-17,0r0,-208r17,0r0,61r63,0r24,-74r18,0r-24,74r58,0r0,17r-64,0r-17,52r81,0r0,17r-87,0r-25,74r-18,0xm147,-78r18,-52r-57,0r0,52r39,0xm39,0r0,-208r17,0r0,208r-17,0"},"\u22b0":{"d":"247,-225v0,52,-93,82,-156,95v64,13,149,43,156,95v4,29,-34,45,-61,28r8,-16v14,10,37,8,36,-12v-1,-40,-150,-92,-191,-86r0,-18v42,5,188,-47,191,-85v1,-20,-21,-23,-36,-14r-8,-15v28,-17,61,-2,61,28"},"\u22b1":{"d":"39,-35v0,-52,93,-82,156,-95v-64,-13,-149,-43,-156,-95v-4,-29,34,-45,61,-28r-8,15v-14,-10,-37,-5,-36,13v2,38,150,91,191,86r0,18v-43,-6,-188,47,-191,85v-1,20,22,24,36,13r8,16v-28,17,-61,2,-61,-28"},"\u22b2":{"d":"39,0r0,-208r208,104xm56,-28r152,-76r-152,-76r0,152"},"\u22b3":{"d":"247,0r-208,-104r208,-104r0,208xm230,-28r0,-152r-152,76"},"\u22b4":{"d":"39,0r0,-17r208,0r0,17r-208,0xm247,-42r-208,-83r208,-83r0,166xm230,-67r0,-116r-144,58"},"\u22b5":{"d":"39,0r0,-17r208,0r0,17r-208,0xm39,-42r0,-166r208,83xm56,-67r145,-58r-145,-58r0,116"},"\u22b6":{"d":"299,-104v0,53,-84,59,-90,9r-80,0v-4,19,-21,36,-44,36v-25,1,-46,-20,-46,-45v0,-25,21,-46,46,-46v25,0,39,13,44,37r80,0v6,-54,90,-44,90,9xm85,-132v-15,0,-29,14,-29,28v0,15,14,28,29,28v16,0,28,-13,28,-28v0,-15,-12,-28,-28,-28","w":338},"\u22b7":{"d":"299,-104v0,53,-84,59,-90,9r-80,0v-4,19,-21,36,-44,36v-25,1,-46,-20,-46,-45v0,-25,21,-46,46,-46v25,0,39,13,44,37r80,0v6,-54,90,-44,90,9xm254,-76v15,0,28,-13,28,-28v0,-15,-13,-28,-28,-28v-15,0,-28,13,-28,28v0,15,13,28,28,28","w":338},"\u22b8":{"d":"247,-104v0,53,-84,59,-90,9r-118,0r0,-18r118,0v6,-54,90,-44,90,9xm202,-76v15,0,28,-13,28,-28v0,-15,-13,-28,-28,-28v-15,0,-29,14,-29,28v0,15,14,28,29,28"},"\u22b9":{"d":"134,0r0,-69r18,0r0,69r-18,0xm39,-113r69,0r0,18r-69,0r0,-18xm152,-208r0,69r-18,0r0,-69r18,0xm247,-95r-69,0r0,-18r69,0r0,18"},"\u22ba":{"d":"39,-117r148,0r0,26r-61,0r0,167r-26,0r0,-167r-61,0r0,-26","w":225},"\u22bb":{"d":"31,0r0,-17r208,0r0,17r-208,0xm213,-208r-78,156r-78,-156r19,0r59,117r59,-117r19,0"},"\u22bc":{"d":"39,-191r0,-17r208,0r0,17r-208,0xm65,0r78,-156r78,156r-19,0r-59,-117r-58,117r-20,0"},"\u22bd":{"d":"39,-191r0,-17r208,0r0,17r-208,0xm221,-156r-78,156r-78,-156r20,0r58,117r59,-117r19,0"},"\u22be":{"d":"56,-145v69,4,124,59,128,128r63,0r0,17r-208,0r0,-208r17,0r0,63xm167,-17v-5,-60,-50,-107,-111,-111r0,111r111,0"},"\u22bf":{"d":"39,0r208,-208r0,208r-208,0xm89,-30r128,0r0,-128"},"\u22c0":{"d":"247,0r-39,0r-65,-130r-65,130r-39,0r104,-208"},"\u22c1":{"d":"39,-208r39,0r65,130r65,-130r39,0r-104,208"},"\u22c2":{"d":"143,-208v57,0,104,47,104,104r0,104r-34,0r0,-104v1,-36,-33,-69,-70,-69v-37,0,-69,32,-69,69r0,104r-35,0r0,-104v-1,-56,47,-104,104,-104"},"\u22c3":{"d":"143,0v-57,0,-104,-47,-104,-104r0,-104r35,0r0,104v-2,37,32,69,69,69v37,0,70,-33,70,-69r0,-104r34,0r0,104v2,57,-47,104,-104,104"},"\u22c4":{"d":"143,0r-104,-104r104,-104r104,104xm143,-25r80,-79r-80,-80r-79,80"},"\u22c5":{"d":"59,-82r0,-44r43,0r0,44r-43,0","w":160},"\u22c6":{"d":"44,-136r82,9r17,-81r16,81r83,-9r-72,41r34,75r-61,-56r-61,56r34,-75"},"\u22c7":{"d":"126,-17r0,-35r34,0r0,35r-34,0xm39,-95r0,-18r83,0r-83,-83r12,-12r92,92r92,-92r12,12r-83,83r83,0r0,18r-83,0r83,83r-12,12r-92,-92r-92,92r-12,-12r83,-83r-83,0xm126,-156r0,-35r34,0r0,35r-34,0"},"\u22c8":{"d":"39,0r0,-208r140,94r141,-94r0,208r-141,-94xm56,-32r108,-72r-108,-72r0,144xm303,-32r0,-144r-108,72","w":359},"\u22c9":{"d":"131,-104r-75,-75r0,149xm39,-208r12,0r92,92r92,-92r12,12r-92,92r92,92r-12,12r-92,-92r-92,92r-12,0r0,-208"},"\u22ca":{"d":"155,-104r75,74r0,-149xm247,-208r0,208r-12,0r-92,-92r-92,92r-12,-12r92,-92r-92,-92r12,-12r92,92r92,-92r12,0"},"\u22cb":{"d":"39,-12r92,-92r-92,-92r12,-12r196,196r-12,12r-92,-92r-92,92"},"\u22cc":{"d":"39,-12r196,-196r12,12r-92,92r92,92r-12,12r-92,-92r-92,92"},"\u22cd":{"d":"247,-46r-208,0r0,-17r208,0r0,17xm236,-111v-8,-86,-108,4,-151,4v-29,0,-44,-19,-46,-56r11,0v7,90,109,-4,151,-4v29,0,44,19,46,56r-11,0"},"\u22ce":{"d":"134,0v2,-88,-34,-166,-95,-189r0,-19v52,17,98,78,104,140v6,-61,52,-124,104,-140r0,19v-61,24,-97,100,-95,189r-18,0"},"\u22cf":{"d":"152,-208v-1,87,35,165,95,188r0,20v-51,-17,-98,-78,-104,-140v-5,63,-52,123,-104,140r0,-20v61,-23,97,-99,95,-188r18,0"},"\u22d0":{"d":"56,-104v0,46,41,88,87,87r104,0r0,17r-104,0v-57,2,-104,-47,-104,-104v0,-56,47,-104,104,-104r104,0r0,17r-104,0v-46,-1,-87,41,-87,87xm108,-104v0,54,87,30,139,35r0,17r-104,0v-28,1,-52,-24,-52,-52v0,-28,24,-52,52,-52r104,0r0,17v-53,5,-139,-20,-139,35"},"\u22d1":{"d":"230,-104v0,-46,-41,-88,-87,-87r-104,0r0,-17r104,0v57,-2,104,47,104,104v0,57,-47,104,-104,104r-104,0r0,-17r104,0v46,1,87,-41,87,-87xm178,-104v0,-55,-86,-30,-139,-35r0,-17r104,0v28,-1,52,24,52,52v0,28,-24,52,-52,52r-104,0r0,-17v53,-5,139,20,139,-35"},"\u22d2":{"d":"143,-17v46,0,87,-40,87,-87r0,-104r17,0r0,104v2,57,-47,104,-104,104v-57,0,-105,-48,-104,-104r0,-104r17,0r0,104v-1,46,41,87,87,87xm143,-69v54,0,30,-86,35,-139r17,0r0,104v1,28,-24,52,-52,52v-28,0,-52,-24,-52,-52r0,-104r17,0v5,53,-19,139,35,139"},"\u22d3":{"d":"143,-191v-46,0,-88,41,-87,87r0,104r-17,0r0,-104v-1,-56,47,-104,104,-104v57,0,104,47,104,104r0,104r-17,0r0,-104v2,-47,-41,-87,-87,-87xm143,-139v-54,0,-30,86,-35,139r-17,0r0,-104v-1,-28,24,-52,52,-52v28,0,52,24,52,52r0,104r-17,0v-5,-53,20,-139,-35,-139"},"\u22d4":{"d":"39,-104v0,-56,43,-99,95,-104r0,-70r18,0r0,70v52,5,95,48,95,104r0,104r-17,0v-3,-62,12,-128,-23,-163v-16,-16,-33,-25,-55,-27r0,190r-18,0r0,-190v-42,1,-79,43,-78,86r0,104r-17,0r0,-104"},"\u22d5":{"d":"39,-128r0,-17r63,0r0,-63r17,0r0,63r48,0r0,-63r17,0r0,63r63,0r0,17r-63,0r0,48r63,0r0,17r-63,0r0,63r-17,0r0,-63r-48,0r0,63r-17,0r0,-63r-63,0r0,-17r63,0r0,-48r-63,0xm119,-80r48,0r0,-48r-48,0r0,48"},"\u22d6":{"d":"247,0r-208,-104r208,-104r0,19r-169,85r169,85r0,19xm195,-87r0,-34r35,0r0,34r-35,0"},"\u22d7":{"d":"39,0r0,-19r169,-85r-169,-85r0,-19r208,104xm91,-87r-35,0r0,-34r35,0r0,34"},"\u22d8":{"d":"247,0r-208,-104r208,-104r0,19r-169,85r169,85r0,19xm364,0r-209,-104r209,-104r0,19r-170,85r170,85r0,19xm480,0r-208,-104r208,-104r0,19r-169,85r169,85r0,19","w":518},"\u22d9":{"d":"272,0r0,-19r169,-85r-169,-85r0,-19r208,104xm155,0r0,-19r169,-85r-169,-85r0,-19r209,104xm39,0r0,-19r169,-85r-169,-85r0,-19r208,104","w":518},"\u22da":{"d":"39,-91r208,84r-208,83r0,-19r161,-65r-161,-64r0,-19xm247,-309r0,18r-161,65r161,65r0,18r-208,-83xm39,-108r0,-17r208,0r0,17r-208,0"},"\u22db":{"d":"247,-91r0,19r-161,65r161,64r0,19r-208,-83xm39,-309r208,83r-208,83r0,-18r161,-65r-161,-65r0,-18xm247,-108r-208,0r0,-17r208,0r0,17"},"\u22dc":{"d":"247,-167r0,19r-161,65r161,64r0,19r-208,-83xm247,-204r-208,83r0,-18r208,-84r0,19"},"\u22dd":{"d":"39,-167r208,84r-208,83r0,-19r161,-64r-161,-65r0,-19xm39,-204r0,-19r208,84r0,18"},"\u22de":{"d":"39,-113v88,2,166,-34,189,-95r19,0v-17,52,-78,98,-140,104v62,6,123,52,140,104r-19,0v-23,-61,-100,-97,-189,-95r0,-18xm39,-156v74,2,133,-26,151,-78r19,0v-17,63,-85,96,-170,95r0,-17"},"\u22df":{"d":"247,-95v-88,-2,-166,34,-188,95r-20,0v17,-52,78,-98,140,-104v-62,-6,-123,-52,-140,-104r20,0v22,61,100,97,188,95r0,18xm97,-234v17,52,77,81,150,78r0,17v-85,1,-153,-32,-170,-95r20,0"},"\u22e0":{"d":"247,-252v-11,33,-33,58,-65,78v1,17,-2,39,1,54v32,19,53,45,64,77r-19,0v-8,-20,-23,-39,-46,-56r0,82r65,0r0,17r-65,0r0,52r-17,0r0,-52r-126,0r0,-17r126,0r0,-94v-33,-19,-75,-28,-126,-28v1,-5,-3,-15,2,-17v50,0,91,-9,124,-28r0,-85r17,0r0,73v23,-17,38,-36,46,-56r19,0xm165,-130r0,-35v-18,10,-39,16,-58,18v19,2,40,7,58,17"},"\u22e1":{"d":"247,-139v-49,0,-90,8,-122,27r0,95r122,0r0,17r-122,0r0,52r-18,0r0,-52r-68,0r0,-17r68,0r-1,-84v-24,17,-39,37,-47,58r-20,0v11,-32,33,-59,68,-80r0,-49v-35,-20,-57,-47,-68,-80r20,0v8,21,23,42,48,58r0,-75r18,0r1,87v32,17,72,26,121,26r0,17xm179,-147v-19,-2,-37,-9,-54,-16r0,31v17,-8,35,-13,54,-15"},"\u22e2":{"d":"108,-17r15,-44r-84,0r0,-147r133,0r13,-39r18,0r-13,39r57,0r0,17r-62,0r-38,113r100,0r0,17r-106,0r-14,44r120,0r0,17r-126,0r-13,39r-18,0r13,-39r-64,0r0,-17r69,0xm166,-191r-110,0r0,113r73,0"},"\u22e3":{"d":"121,0r-13,39r-18,0r13,-39r-64,0r0,-17r69,0r15,-44r-84,0r0,-17r90,0r37,-113r-127,0r0,-17r133,0r13,-39r18,0r-13,39r57,0r0,147r-106,0r-14,44r120,0r0,17r-126,0xm147,-78r83,0r0,-113r-45,0"},"\u22e4":{"d":"39,0r0,-17r208,0r0,17r-208,0xm39,-61r0,-147r208,0r0,17r-191,0r0,113r191,0r0,17r-208,0xm116,39r27,-82r19,0r-28,82r-18,0"},"\u22e5":{"d":"247,0r-208,0r0,-17r208,0r0,17xm247,-61r-208,0r0,-17r191,0r0,-113r-191,0r0,-17r208,0r0,147xm116,39r27,-82r19,0r-28,82r-18,0"},"\u22e6":{"d":"39,0v3,-65,50,-66,100,-40r13,-40r18,0r-15,47v44,20,72,36,81,-19r11,0v-3,66,-51,65,-99,39r-14,41r-18,0r16,-48v-40,-22,-79,-29,-82,20r-11,0xm247,-234r0,18r-161,65r161,65r0,18r-208,-83"},"\u22e7":{"d":"39,0v3,-65,50,-66,100,-40r13,-40r18,0r-15,47v44,20,72,36,81,-19r11,0v-3,66,-51,65,-99,39r-14,41r-18,0r16,-48v-40,-22,-79,-29,-82,20r-11,0xm39,-234r208,83r-208,83r0,-18r161,-65r-161,-65r0,-18"},"\u22e8":{"d":"39,0v3,-65,50,-66,100,-40r13,-40r18,0r-15,47v44,20,72,36,81,-19r11,0v-3,66,-51,65,-99,39r-14,41r-18,0r16,-48v-40,-22,-79,-29,-82,20r-11,0xm39,-180v88,1,166,-35,189,-96r19,0v-17,52,-77,98,-140,104v62,6,123,52,140,104r-19,0v-23,-60,-102,-96,-189,-95r0,-17"},"\u22e9":{"d":"39,0v3,-65,50,-66,100,-40r13,-40r18,0r-15,47v44,20,72,36,81,-19r11,0v-3,66,-51,65,-99,39r-14,41r-18,0r16,-48v-40,-22,-79,-29,-82,20r-11,0xm247,-163v-87,-1,-165,35,-188,95r-20,0v17,-52,78,-98,140,-104v-63,-6,-123,-52,-140,-104r20,0v22,61,101,97,188,96r0,17"},"\u22ea":{"d":"144,-52r-28,87r-19,0r32,-94r-90,-45r126,-63r25,-76r18,0r-21,65r60,-30r0,208xm150,-68r80,40r0,-152r-51,25xm134,-76r23,-68r-79,40"},"\u22eb":{"d":"142,-157r29,-86r18,0r-31,94r89,45r-125,63r-26,76r-18,0r22,-65r-61,30r0,-208xm136,-140r-80,-40r0,152r52,-26xm152,-132r-23,67r79,-39"},"\u22ec":{"d":"115,-17r22,-69r-98,-39r129,-51r22,-67r18,0r-19,58r58,-23r0,166r-93,-37r-21,62r114,0r0,17r-120,0r-13,39r-18,0r13,-39r-70,0r0,-17r76,0xm159,-96r71,29r0,-116r-48,20xm143,-102r17,-53r-74,30"},"\u22ed":{"d":"72,-17r19,-45r-52,20r0,-166r97,38r30,-73r19,0r-34,80r96,38r-134,54r-23,54r157,0r0,17r-164,0r-17,39r-18,0r17,-39r-26,0r0,-17r33,0xm129,-154r-73,-29r0,116r44,-18xm144,-147r-22,53r79,-31"},"\u22ee":{"d":"126,0r0,-35r34,0r0,35r-34,0xm126,-87r0,-34r34,0r0,34r-34,0xm126,-173r0,-35r34,0r0,35r-34,0"},"\u22ef":{"d":"39,-87r0,-34r35,0r0,34r-35,0xm126,-87r0,-34r34,0r0,34r-34,0xm213,-87r0,-34r34,0r0,34r-34,0"},"\u22f0":{"d":"39,0r0,-35r35,0r0,35r-35,0xm126,-87r0,-34r34,0r0,34r-34,0xm213,-173r0,-35r34,0r0,35r-34,0"},"\u22f1":{"d":"39,-173r0,-35r35,0r0,35r-35,0xm126,-87r0,-34r34,0r0,34r-34,0xm213,0r0,-35r34,0r0,35r-34,0"},"\u2306":{"d":"39,-178r0,-17r208,0r0,17r-208,0xm39,-243r0,-17r208,0r0,17r-208,0xm65,0r78,-156r78,156r-19,0r-59,-117r-59,117r-19,0"},"\u2308":{"d":"95,52r-26,0r0,-330r87,0r0,13r-61,0r0,317","w":190},"\u2309":{"d":"95,52r0,-317r-60,0r0,-13r86,0r0,330r-26,0","w":190},"\u230a":{"d":"156,52r-87,0r0,-330r26,0r0,317r61,0r0,13","w":190},"\u230b":{"d":"35,52r0,-13r60,0r0,-317r26,0r0,330r-86,0","w":190},"\u2322":{"d":"50,-76r-11,0v47,-75,161,-75,208,0r-11,0v-37,-46,-149,-47,-186,0"},"\u2323":{"d":"236,-132r11,0v-47,75,-161,75,-208,0r11,0v37,46,149,45,186,0"},"\u2400":{"d":"24,0r0,-130r20,0r50,91r0,-91r16,0r0,130r-20,0r-50,-93r0,93r-16,0xm232,-130v-4,54,19,133,-42,133v-60,0,-41,-78,-44,-133r22,0v5,39,-16,118,22,118v39,0,18,-79,23,-118r19,0xm268,0r0,-130r22,0r0,115r61,0r0,15r-83,0","w":360},"\u2401":{"d":"82,-71v48,19,29,79,-23,74v-10,0,-22,-1,-37,-5r0,-19v26,11,61,16,65,-12v-5,-28,-65,-32,-65,-66v0,-37,46,-39,79,-29r0,17v-20,-8,-59,-14,-59,9v0,16,28,22,40,31xm230,-65v0,38,-15,68,-50,68v-35,0,-51,-30,-51,-68v0,-38,16,-67,51,-68v35,0,50,30,50,68xm180,-12v18,0,27,-18,27,-53v0,-35,-9,-53,-27,-53v-18,0,-27,18,-27,53v0,35,9,53,27,53xm256,0r0,-130r22,0r0,54r43,0r0,-54r22,0r0,130r-22,0r0,-60r-43,0r0,60r-22,0","w":360},"\u2402":{"d":"80,-71v48,19,29,79,-23,74v-10,0,-22,-1,-37,-5r0,-19v26,11,61,16,65,-12v-5,-28,-65,-32,-65,-66v0,-37,46,-38,79,-29r0,17v-20,-8,-59,-14,-59,9v0,16,28,22,40,31xm166,0r0,-115r-42,0r0,-15r105,0r0,15r-42,0r0,115r-21,0xm242,0r41,-65r-38,-65r25,0r27,46r28,-46r19,0r-38,61r40,69r-24,0r-30,-50r-31,50r-19,0","w":360},"\u2403":{"d":"24,0r0,-130r79,0r0,15r-57,0r0,39r48,0r0,15r-48,0r0,46r61,0r0,15r-83,0xm166,0r0,-115r-42,0r0,-15r105,0r0,15r-42,0r0,115r-21,0xm242,0r41,-65r-38,-65r25,0r27,46r28,-46r19,0r-38,61r40,69r-24,0r-30,-50r-31,50r-19,0","w":360},"\u2404":{"d":"24,0r0,-130r79,0r0,15r-57,0r0,39r48,0r0,15r-48,0r0,46r61,0r0,15r-83,0xm287,0r0,-115r-41,0r0,-15r104,0r0,15r-41,0r0,115r-22,0xm233,-65v0,38,-15,68,-50,68v-35,0,-51,-30,-51,-68v0,-38,16,-67,51,-68v35,0,50,30,50,68xm183,-12v18,0,27,-18,27,-53v0,-35,-9,-53,-27,-53v-18,0,-27,18,-27,53v0,35,9,53,27,53","w":360},"\u2405":{"d":"22,0r0,-130r78,0r0,15r-57,0r0,39r49,0r0,15r-49,0r0,46r62,0r0,15r-83,0xm131,0r0,-130r21,0r49,91r0,-91r16,0r0,130r-19,0r-51,-93r0,93r-16,0xm290,-133v61,-3,64,107,23,131v10,6,22,10,36,12r-15,16v-16,-3,-27,-17,-44,-23v-35,0,-50,-30,-50,-68v0,-39,15,-67,50,-68xm263,-65v0,35,9,53,27,53v18,0,27,-18,27,-53v0,-35,-9,-53,-27,-53v-18,0,-27,18,-27,53","w":360},"\u2406":{"d":"7,0r43,-130r22,0r40,130r-23,0r-11,-35r-43,0r-12,35r-16,0xm40,-50r34,0r-17,-53xm153,-64v0,42,37,64,74,43r0,18v-52,19,-97,-8,-97,-62v0,-54,43,-79,96,-64r0,19v-39,-21,-73,2,-73,46xm259,0r0,-130r22,0r0,62r47,-62r20,0r-45,60r50,70r-26,0r-46,-64r0,64r-22,0","w":360},"\u2407":{"d":"24,0r0,-130v35,0,80,-6,80,29v0,14,-8,24,-24,32v20,7,30,19,30,36v0,37,-47,34,-86,33xm46,-75v38,8,53,-41,9,-40r-9,0r0,40xm87,-35v-1,-19,-18,-28,-41,-26r0,46v21,1,42,-2,41,-20xm149,0r0,-130r79,0r0,15r-57,0r0,39r48,0r0,15r-48,0r0,46r61,0r0,15r-83,0xm271,0r0,-130r22,0r0,115r61,0r0,15r-83,0","w":360},"\u2408":{"d":"76,0r0,-130v35,0,81,-6,81,29v0,14,-8,24,-24,32v20,7,29,19,29,36v0,37,-47,34,-86,33xm98,-75v39,7,54,-41,9,-40r-9,0r0,40xm139,-35v-1,-19,-18,-28,-41,-26r0,46v21,1,42,-2,41,-20xm257,-71v48,19,29,79,-23,74v-10,0,-22,-1,-37,-5r0,-19v26,11,61,16,65,-12v-5,-28,-65,-32,-65,-66v0,-37,46,-38,79,-29r0,17v-20,-8,-59,-14,-59,9v0,16,28,22,40,31","w":360},"\u2409":{"d":"72,0r0,-130r22,0r0,54r43,0r0,-54r22,0r0,130r-22,0r0,-60r-43,0r0,60r-22,0xm239,0r0,-115r-41,0r0,-15r104,0r0,15r-41,0r0,115r-22,0","w":360},"\u240a":{"d":"77,0r0,-130r21,0r0,115r61,0r0,15r-82,0xm204,0r0,-130r85,0r0,15r-63,0r0,44r53,0r0,15r-53,0r0,56r-22,0","w":360},"\u240b":{"d":"89,0r-41,-130r23,0r32,102r34,-102r17,0r-43,130r-22,0xm217,0r0,-115r-41,0r0,-15r104,0r0,15r-41,0r0,115r-22,0","w":320},"\u240c":{"d":"79,0r0,-130r85,0r0,15r-64,0r0,44r54,0r0,15r-54,0r0,56r-21,0xm203,0r0,-130r85,0r0,15r-63,0r0,44r53,0r0,15r-53,0r0,56r-22,0","w":360},"\u240d":{"d":"86,-64v0,43,36,64,73,43r0,18v-51,19,-97,-8,-97,-62v0,-54,43,-79,96,-64r0,19v-39,-21,-72,1,-72,46xm202,0r0,-130v37,-1,80,-4,80,32v0,16,-8,29,-25,38r37,60r-25,0r-33,-54r-13,0r0,54r-21,0xm259,-97v1,-20,-17,-18,-36,-18r0,45v22,2,35,-8,36,-27","w":360},"\u240e":{"d":"120,-71v47,19,30,79,-22,74v-10,0,-23,-1,-38,-5r0,-19v26,12,61,16,66,-12v-6,-27,-66,-33,-66,-66v0,-36,46,-39,79,-29r0,17v-20,-8,-59,-14,-59,9v0,16,28,22,40,31xm292,-65v0,38,-15,68,-50,68v-35,0,-51,-30,-51,-68v0,-38,16,-67,51,-68v35,0,50,30,50,68xm242,-12v18,0,27,-18,27,-53v0,-35,-9,-53,-27,-53v-18,0,-27,18,-27,53v0,35,9,53,27,53","w":360},"\u240f":{"d":"127,-71v47,19,30,79,-22,74v-10,0,-23,-1,-38,-5r0,-19v26,12,61,16,66,-12v-6,-27,-66,-33,-66,-66v0,-36,46,-39,79,-29r0,17v-20,-8,-58,-14,-58,9v0,16,28,22,39,31xm204,0r0,-15r30,0r0,-100r-30,0r0,-15r82,0r0,15r-30,0r0,100r30,0r0,15r-82,0","w":360},"\u2410":{"d":"26,0r0,-130v56,-3,94,2,94,62v0,60,-35,73,-94,68xm96,-66v0,-38,-11,-49,-48,-49r0,100v36,2,49,-14,48,-51xm160,0r0,-130r22,0r0,115r61,0r0,15r-83,0xm264,0r0,-130r79,0r0,15r-57,0r0,39r48,0r0,15r-48,0r0,46r61,0r0,15r-83,0","w":360},"\u2411":{"d":"26,0r0,-130v56,-3,94,2,94,62v0,60,-35,73,-94,68xm96,-66v0,-38,-11,-49,-48,-49r0,100v36,2,49,-14,48,-51xm203,-118v-53,2,-51,107,3,105v9,0,19,-3,31,-8r0,18v-52,19,-97,-8,-97,-62v0,-54,43,-79,96,-64r0,19v-13,-5,-23,-8,-33,-8xm263,0r0,-15r30,0r0,-98r-30,3r0,-13r52,-10r0,118r30,0r0,15r-82,0","w":360},"\u2412":{"d":"26,0r0,-130v56,-3,94,2,94,62v0,60,-35,73,-94,68xm96,-66v0,-38,-11,-49,-48,-49r0,100v36,2,49,-14,48,-51xm203,-118v-53,2,-51,107,3,105v9,0,19,-3,31,-8r0,18v-52,19,-97,-8,-97,-62v0,-54,43,-79,96,-64r0,19v-13,-5,-23,-8,-33,-8xm270,-127v30,-13,73,-5,73,29v0,29,-48,54,-54,80r53,0r0,18r-76,0v-6,-44,53,-58,53,-97v0,-27,-29,-24,-49,-13r0,-17","w":360},"\u2413":{"d":"26,0r0,-130v56,-3,94,2,94,62v0,60,-35,73,-94,68xm96,-66v0,-38,-11,-49,-48,-49r0,100v36,2,49,-14,48,-51xm203,-118v-53,2,-51,107,3,105v9,0,19,-3,31,-8r0,18v-52,19,-97,-8,-97,-62v0,-54,43,-79,96,-64r0,19v-13,-5,-23,-8,-33,-8xm310,-70v49,12,30,73,-17,73v-9,0,-18,-1,-27,-4r0,-17v23,11,49,7,50,-18v1,-19,-14,-26,-38,-25r0,-15v23,1,37,-7,36,-24v0,-23,-28,-20,-46,-12r0,-16v27,-10,68,-6,67,25v0,15,-8,27,-25,33","w":360},"\u2414":{"d":"26,0r0,-130v56,-3,94,2,94,62v0,60,-35,73,-94,68xm96,-66v0,-38,-11,-49,-48,-49r0,100v36,2,49,-14,48,-51xm203,-118v-53,2,-51,107,3,105v9,0,19,-3,31,-8r0,18v-52,19,-97,-8,-97,-62v0,-54,43,-79,96,-64r0,19v-13,-5,-23,-8,-33,-8xm305,0r0,-35r-53,0r0,-18r51,-77r21,0r0,78r18,0r0,17r-18,0r0,35r-19,0xm269,-52r36,0r0,-53","w":360},"\u2415":{"d":"24,0r0,-130r20,0r50,91r0,-91r16,0r0,130r-20,0r-50,-93r0,93r-16,0xm132,0r43,-130r22,0r40,130r-22,0r-11,-35r-44,0r-12,35r-16,0xm165,-50r34,0r-16,-53xm259,0r0,-130r22,0r0,62r47,-62r20,0r-45,60r50,70r-26,0r-46,-64r0,64r-22,0","w":360},"\u2416":{"d":"80,-71v48,19,29,79,-23,74v-10,0,-22,-1,-37,-5r0,-19v26,11,61,16,65,-12v-5,-28,-65,-32,-65,-66v0,-37,46,-38,79,-29r0,17v-20,-8,-59,-14,-59,9v0,16,28,22,40,31xm165,0r0,-55r-42,-75r25,0r31,56r32,-56r19,0r-44,75r0,55r-21,0xm253,0r0,-130r20,0r50,91r0,-91r15,0r0,130r-19,0r-51,-93r0,93r-15,0","w":360},"\u2417":{"d":"24,0r0,-130r79,0r0,15r-57,0r0,39r48,0r0,15r-48,0r0,46r61,0r0,15r-83,0xm166,0r0,-115r-42,0r0,-15r105,0r0,15r-42,0r0,115r-21,0xm255,0r0,-130v35,0,80,-6,80,29v0,14,-8,24,-24,32v20,7,29,19,29,36v0,37,-47,34,-85,33xm276,-75v39,7,54,-41,9,-40r-9,0r0,40xm317,-35v-1,-19,-18,-28,-41,-26r0,46v21,1,42,-2,41,-20","w":360},"\u2418":{"d":"43,-64v0,43,36,64,73,43r0,18v-51,19,-96,-7,-96,-62v0,-54,43,-79,95,-64r0,19v-39,-21,-72,2,-72,46xm126,0r44,-130r21,0r41,130r-23,0r-11,-35r-43,0r-12,35r-17,0xm159,-50r35,0r-17,-53xm253,0r0,-130r20,0r50,91r0,-91r15,0r0,130r-19,0r-51,-93r0,93r-15,0","w":360},"\u2419":{"d":"67,0r0,-130r79,0r0,15r-57,0r0,39r48,0r0,15r-48,0r0,46r61,0r0,15r-83,0xm200,0r0,-130r25,0r22,66r21,-66r25,0r0,130r-17,-1r0,-106r-22,72r-17,0r-22,-71r0,106r-15,0","w":360},"\u241a":{"d":"82,-71v48,19,29,79,-23,74v-10,0,-22,-1,-37,-5r0,-19v26,11,61,16,65,-12v-5,-28,-65,-32,-65,-66v0,-37,46,-39,79,-29r0,17v-20,-8,-59,-14,-59,9v0,16,28,22,40,31xm221,-130v-4,54,19,133,-42,133v-60,0,-40,-79,-43,-133r22,0v5,39,-16,118,22,118v39,0,18,-79,23,-118r18,0xm252,0r0,-130v35,0,81,-5,81,29v0,14,-9,24,-25,32v20,7,30,19,30,36v0,37,-47,34,-86,33xm274,-75v38,8,53,-41,9,-40r-9,0r0,40xm315,-35v-1,-19,-18,-28,-41,-26r0,46v21,1,43,-2,41,-20","w":360},"\u241b":{"d":"24,0r0,-130r79,0r0,15r-57,0r0,39r48,0r0,15r-48,0r0,46r61,0r0,15r-83,0xm195,-71v47,19,30,79,-22,74v-10,0,-23,-1,-38,-5r0,-19v26,12,61,16,66,-12v-6,-27,-66,-33,-66,-66v0,-36,46,-39,79,-29r0,17v-20,-8,-58,-14,-58,9v0,16,28,22,39,31xm315,-118v-53,2,-51,107,3,105v9,0,19,-3,31,-8r0,18v-52,19,-96,-7,-96,-62v0,-54,43,-79,95,-64r0,19v-12,-5,-23,-8,-33,-8","w":360},"\u241c":{"d":"79,0r0,-130r85,0r0,15r-64,0r0,44r54,0r0,15r-54,0r0,56r-21,0xm259,-71v48,19,29,79,-23,74v-10,0,-22,-1,-37,-5r0,-19v26,12,61,16,66,-12v-6,-27,-66,-32,-66,-66v0,-37,46,-39,79,-29r0,17v-20,-8,-59,-14,-59,9v0,16,28,22,40,31","w":360},"\u241d":{"d":"83,-64v0,31,19,56,51,50r0,-45r22,0r0,56v-51,19,-96,-7,-96,-62v0,-54,42,-79,95,-64r0,19v-37,-21,-72,1,-72,46xm264,-71v47,19,30,79,-22,74v-10,0,-23,-1,-38,-5r0,-19v26,12,61,16,66,-12v-6,-27,-66,-33,-66,-66v0,-36,46,-39,79,-29r0,17v-20,-8,-59,-14,-59,9v0,16,28,22,40,31","w":360},"\u241e":{"d":"264,-71v47,19,30,79,-22,74v-10,0,-23,-1,-38,-5r0,-19v26,12,61,16,66,-12v-6,-27,-66,-33,-66,-66v0,-36,46,-39,79,-29r0,17v-20,-8,-59,-14,-59,9v0,16,28,22,40,31xm67,0r0,-130v37,-1,81,-4,81,32v0,16,-8,29,-25,38r37,60r-26,0r-32,-54r-13,0r0,54r-22,0xm125,-97v1,-19,-16,-18,-36,-18r0,45v22,2,36,-8,36,-27","w":360},"\u241f":{"d":"155,-130v-4,54,19,133,-42,133v-60,0,-40,-79,-43,-133r21,0v5,39,-16,118,22,118v39,0,18,-79,23,-118r19,0xm267,-71v48,19,29,79,-23,74v-10,0,-23,-1,-38,-5r0,-19v26,11,62,17,66,-12v-5,-28,-65,-32,-65,-66v0,-37,46,-38,79,-29r0,17v-20,-8,-59,-14,-59,9v0,16,28,22,40,31","w":360},"\u2420":{"d":"123,-71v47,20,28,79,-23,74v-10,0,-23,-1,-38,-5r0,-19v26,11,62,17,66,-12v-5,-28,-65,-32,-65,-66v0,-37,46,-38,79,-29r0,17v-20,-8,-59,-14,-59,9v0,16,28,22,40,31xm206,0r0,-130v40,-1,86,-5,86,35v0,33,-25,45,-64,43r0,52r-22,0xm228,-67v41,11,61,-48,14,-48r-14,0r0,48","w":360},"\u2421":{"d":"26,0r0,-130v56,-3,94,2,94,62v0,60,-35,73,-94,68xm96,-66v0,-38,-11,-49,-48,-49r0,100v36,2,49,-14,48,-51xm267,0r0,-130r21,0r0,115r61,0r0,15r-82,0xm152,0r0,-130r79,0r0,15r-57,0r0,39r48,0r0,15r-48,0r0,46r61,0r0,15r-83,0","w":360},"\u2422":{"d":"301,-101v0,84,-84,140,-138,79r-4,24r-31,0r0,-83r-54,81r-26,0r80,-120r0,-158r35,0r0,106r73,-110r26,0r-61,91v62,-18,100,28,100,90xm163,-46v45,47,101,19,101,-52v0,-82,-65,-83,-101,-35r0,87","w":360},"\u2423":{"d":"0,52r0,-52r17,0r0,35r80,0r0,-35r17,0r0,52r-114,0","w":113},"\u2424":{"d":"72,0r0,-130r20,0r50,91r0,-91r16,0r0,130r-20,0r-50,-93r0,93r-16,0xm220,0r0,-130r22,0r0,115r60,0r0,15r-82,0","w":360},"\u2500":{"d":"0,-91r0,-26r360,0r0,26r-360,0","w":360},"\u2501":{"d":"0,-87r0,-34r360,0r0,34r-360,0","w":360},"\u2502":{"d":"167,-284r26,0r0,360r-26,0r0,-360","w":360},"\u2503":{"d":"163,76r0,-360r34,0r0,360r-34,0","w":360},"\u2504":{"d":"13,-91r0,-26r94,0r0,26r-94,0xm133,-91r0,-26r94,0r0,26r-94,0xm253,-91r0,-26r94,0r0,26r-94,0","w":360},"\u2505":{"d":"13,-87r0,-34r94,0r0,34r-94,0xm133,-87r0,-34r94,0r0,34r-94,0xm253,-87r0,-34r94,0r0,34r-94,0","w":360},"\u2506":{"d":"167,-31r26,0r0,94r-26,0r0,-94xm167,-151r26,0r0,94r-26,0r0,-94xm167,-271r26,0r0,94r-26,0r0,-94","w":360},"\u2507":{"d":"163,-31r34,0r0,94r-34,0r0,-94xm163,-151r34,0r0,94r-34,0r0,-94xm163,-271r34,0r0,94r-34,0r0,-94","w":360},"\u2508":{"d":"13,-91r0,-26r64,0r0,26r-64,0xm103,-91r0,-26r64,0r0,26r-64,0xm193,-91r0,-26r64,0r0,26r-64,0xm283,-91r0,-26r64,0r0,26r-64,0","w":360},"\u2509":{"d":"13,-87r0,-34r64,0r0,34r-64,0xm103,-87r0,-34r64,0r0,34r-64,0xm193,-87r0,-34r64,0r0,34r-64,0xm283,-87r0,-34r64,0r0,34r-64,0","w":360},"\u250a":{"d":"167,-1r26,0r0,64r-26,0r0,-64xm167,-91r26,0r0,64r-26,0r0,-64xm167,-181r26,0r0,64r-26,0r0,-64xm167,-271r26,0r0,64r-26,0r0,-64","w":360},"\u250b":{"d":"163,-1r34,0r0,64r-34,0r0,-64xm163,-91r34,0r0,64r-34,0r0,-64xm163,-181r34,0r0,64r-34,0r0,-64xm163,-271r34,0r0,64r-34,0r0,-64","w":360},"\u250c":{"d":"167,-117r193,0r0,26r-167,0r0,167r-26,0r0,-193","w":360},"\u250d":{"d":"167,-121r193,0r0,34r-167,0r0,163r-26,0r0,-197","w":360},"\u250e":{"d":"163,-117r197,0r0,26r-163,0r0,167r-34,0r0,-193","w":360},"\u250f":{"d":"360,-87r-163,0r0,163r-34,0r0,-197r197,0r0,34","w":360},"\u2510":{"d":"0,-91r0,-26r193,0r0,193r-26,0r0,-167r-167,0","w":360},"\u2511":{"d":"0,-87r0,-34r193,0r0,197r-26,0r0,-163r-167,0","w":360},"\u2512":{"d":"0,-91r0,-26r197,0r0,193r-34,0r0,-167r-163,0","w":360},"\u2513":{"d":"0,-87r0,-34r197,0r0,197r-34,0r0,-163r-163,0","w":360},"\u2514":{"d":"167,-284r26,0r0,167r167,0r0,26r-193,0r0,-193","w":360},"\u2515":{"d":"167,-284r26,0r0,163r167,0r0,34r-193,0r0,-197","w":360},"\u2516":{"d":"360,-91r-197,0r0,-193r34,0r0,167r163,0r0,26","w":360},"\u2517":{"d":"360,-87r-197,0r0,-197r34,0r0,163r163,0r0,34","w":360},"\u2518":{"d":"0,-91r0,-26r167,0r0,-167r26,0r0,193r-193,0","w":360},"\u2519":{"d":"0,-87r0,-34r167,0r0,-163r26,0r0,197r-193,0","w":360},"\u251a":{"d":"0,-91r0,-26r163,0r0,-167r34,0r0,193r-197,0","w":360},"\u251b":{"d":"0,-87r0,-34r163,0r0,-163r34,0r0,197r-197,0","w":360},"\u251c":{"d":"167,-284r26,0r0,167r167,0r0,26r-167,0r0,167r-26,0r0,-360","w":360},"\u251d":{"d":"167,-284r26,0r0,163r167,0r0,34r-167,0r0,163r-26,0r0,-360","w":360},"\u251e":{"d":"197,-284r0,167r163,0r0,26r-167,0r0,167r-26,0r0,-193r-4,0r0,-167r34,0","w":360},"\u251f":{"d":"193,-284r0,167r167,0r0,26r-163,0r0,167r-34,0r0,-167r4,0r0,-193r26,0","w":360},"\u2520":{"d":"163,76r0,-360r34,0r0,167r163,0r0,26r-163,0r0,167r-34,0","w":360},"\u2521":{"d":"167,76r0,-163r-4,0r0,-197r34,0r0,163r163,0r0,33r-167,0r0,164r-26,0","w":360},"\u2522":{"d":"163,76r0,-197r4,0r0,-163r26,0r0,163r167,0r0,34r-163,0r0,163r-34,0","w":360},"\u2523":{"d":"163,76r0,-360r34,0r0,163r163,0r0,34r-163,0r0,163r-34,0","w":360},"\u2524":{"d":"0,-91r0,-26r167,0r0,-167r26,0r0,360r-26,0r0,-167r-167,0","w":360},"\u2525":{"d":"0,-87r0,-34r167,0r0,-163r26,0r0,360r-26,0r0,-163r-167,0","w":360},"\u2526":{"d":"0,-91r0,-26r163,0r0,-167r34,0r0,167r-4,0r0,193r-26,0r0,-167r-167,0","w":360},"\u2527":{"d":"0,-91r0,-26r167,0r0,-167r26,0r0,193r4,0r0,167r-34,0r0,-167r-163,0","w":360},"\u2528":{"d":"0,-91r0,-26r163,0r0,-167r34,0r0,360r-34,0r0,-167r-163,0","w":360},"\u2529":{"d":"0,-87r0,-34r163,0r0,-163r34,0r0,197r-4,0r0,163r-26,0r0,-163r-167,0","w":360},"\u252a":{"d":"0,-87r0,-34r167,0r0,-163r26,0r0,163r4,0r0,197r-34,0r0,-163r-163,0","w":360},"\u252b":{"d":"163,76r0,-163r-163,0r0,-34r163,0r0,-163r34,0r0,360r-34,0","w":360},"\u252c":{"d":"0,-91r0,-26r360,0r0,26r-167,0r0,167r-26,0r0,-167r-167,0","w":360},"\u252d":{"d":"0,-87r0,-34r167,0r0,4r193,0r0,26r-167,0r0,167r-26,0r0,-163r-167,0","w":360},"\u252e":{"d":"0,-91r0,-26r193,0r0,-4r167,0r0,34r-167,0r0,163r-26,0r0,-167r-167,0","w":360},"\u252f":{"d":"0,-87r0,-34r360,0r0,34r-167,0r0,163r-26,0r0,-163r-167,0","w":360},"\u2530":{"d":"0,-91r0,-26r360,0r0,26r-163,0r0,167r-34,0r0,-167r-163,0","w":360},"\u2531":{"d":"0,-87r0,-34r197,0r0,4r163,0r0,26r-163,0r0,167r-34,0r0,-163r-163,0","w":360},"\u2532":{"d":"0,-91r0,-26r163,0r0,-4r197,0r0,34r-163,0r0,163r-34,0r0,-167r-163,0","w":360},"\u2533":{"d":"0,-87r0,-34r360,0r0,34r-163,0r0,163r-34,0r0,-163r-163,0","w":360},"\u2534":{"d":"0,-91r0,-26r167,0r0,-167r26,0r0,167r167,0r0,26r-360,0","w":360},"\u2535":{"d":"0,-87r0,-34r167,0r0,-163r26,0r0,167r167,0r0,26r-193,0r0,4r-167,0","w":360},"\u2536":{"d":"0,-91r0,-26r167,0r0,-167r26,0r0,163r167,0r0,34r-167,0r0,-4r-193,0","w":360},"\u2537":{"d":"0,-87r0,-34r167,0r0,-163r26,0r0,163r167,0r0,34r-360,0","w":360},"\u2538":{"d":"0,-91r0,-26r163,0r0,-167r34,0r0,167r163,0r0,26r-360,0","w":360},"\u2539":{"d":"0,-87r0,-34r163,0r0,-163r34,0r0,167r163,0r0,26r-163,0r0,4r-197,0","w":360},"\u253a":{"d":"0,-91r0,-26r163,0r0,-167r34,0r0,163r163,0r0,34r-197,0r0,-4r-163,0","w":360},"\u253b":{"d":"0,-87r0,-34r163,0r0,-163r34,0r0,163r163,0r0,34r-360,0","w":360},"\u253c":{"d":"0,-91r0,-26r167,0r0,-167r26,0r0,167r167,0r0,26r-167,0r0,167r-26,0r0,-167r-167,0","w":360},"\u253d":{"d":"0,-87r0,-34r167,0r0,-163r26,0r0,167r167,0r0,26r-167,0r0,167r-26,0r0,-163r-167,0","w":360},"\u253e":{"d":"0,-91r0,-26r167,0r0,-167r26,0r0,163r167,0r0,34r-167,0r0,163r-26,0r0,-167r-167,0","w":360},"\u253f":{"d":"0,-87r0,-34r167,0r0,-163r26,0r0,163r167,0r0,34r-167,0r0,163r-26,0r0,-163r-167,0","w":360},"\u2540":{"d":"0,-91r0,-26r163,0r0,-167r34,0r0,167r163,0r0,26r-167,0r0,167r-26,0r0,-167r-167,0","w":360},"\u2541":{"d":"0,-91r0,-26r167,0r0,-167r26,0r0,167r167,0r0,26r-163,0r0,167r-34,0r0,-167r-163,0","w":360},"\u2542":{"d":"0,-91r0,-26r163,0r0,-167r34,0r0,167r163,0r0,26r-163,0r0,167r-34,0r0,-167r-163,0","w":360},"\u2543":{"d":"0,-87r0,-34r163,0r0,-163r34,0r0,167r163,0r0,26r-167,0r0,167r-26,0r0,-163r-167,0","w":360},"\u2544":{"d":"0,-91r0,-26r163,0r0,-167r34,0r0,163r163,0r0,34r-167,0r0,163r-26,0r0,-167r-167,0","w":360},"\u2545":{"d":"0,-87r0,-34r167,0r0,-163r26,0r0,167r167,0r0,26r-163,0r0,167r-34,0r0,-163r-163,0","w":360},"\u2546":{"d":"0,-91r0,-26r167,0r0,-167r26,0r0,163r167,0r0,34r-163,0r0,163r-34,0r0,-167r-163,0","w":360},"\u2547":{"d":"0,-87r0,-34r163,0r0,-163r34,0r0,163r163,0r0,34r-167,0r0,163r-26,0r0,-163r-167,0","w":360},"\u2548":{"d":"0,-87r0,-34r167,0r0,-163r26,0r0,163r167,0r0,34r-163,0r0,163r-34,0r0,-163r-163,0","w":360},"\u2549":{"d":"0,-87r0,-34r163,0r0,-163r34,0r0,167r163,0r0,26r-163,0r0,167r-34,0r0,-163r-163,0","w":360},"\u254a":{"d":"0,-91r0,-26r163,0r0,-167r34,0r0,163r163,0r0,34r-163,0r0,163r-34,0r0,-167r-163,0","w":360},"\u254b":{"d":"0,-87r0,-34r163,0r0,-163r34,0r0,163r163,0r0,34r-163,0r0,163r-34,0r0,-163r-163,0","w":360},"\u254c":{"d":"13,-91r0,-26r154,0r0,26r-154,0xm193,-91r0,-26r154,0r0,26r-154,0","w":360},"\u254d":{"d":"13,-87r0,-34r154,0r0,34r-154,0xm193,-87r0,-34r154,0r0,34r-154,0","w":360},"\u254e":{"d":"167,-91r26,0r0,154r-26,0r0,-154xm167,-271r26,0r0,154r-26,0r0,-154","w":360},"\u254f":{"d":"163,-91r34,0r0,154r-34,0r0,-154xm163,-271r34,0r0,154r-34,0r0,-154","w":360},"\u2550":{"d":"0,-117r0,-26r360,0r0,26r-360,0xm0,-65r0,-26r360,0r0,26r-360,0","w":360},"\u2551":{"d":"141,76r0,-360r26,0r0,360r-26,0xm193,76r0,-360r26,0r0,360r-26,0","w":360},"\u2552":{"d":"163,76r0,-219r197,0r0,26r-171,0r0,26r171,0r0,26r-171,0r0,141r-26,0","w":360},"\u2553":{"d":"141,76r0,-193r219,0r0,26r-141,0r0,167r-26,0r0,-167r-26,0r0,167r-26,0","w":360},"\u2554":{"d":"360,-143r0,26r-193,0r0,193r-26,0r0,-219r219,0xm360,-65r-141,0r0,141r-26,0r0,-167r167,0r0,26","w":360},"\u2555":{"d":"0,-117r0,-26r193,0r0,219r-26,0r0,-141r-167,0r0,-26r167,0r0,-26r-167,0","w":360},"\u2556":{"d":"141,76r0,-167r-141,0r0,-26r219,0r0,193r-26,0r0,-167r-26,0r0,167r-26,0","w":360},"\u2557":{"d":"0,-65r0,-26r167,0r0,167r-26,0r0,-141r-141,0xm0,-117r0,-26r219,0r0,219r-26,0r0,-193r-193,0","w":360},"\u2558":{"d":"141,-284r26,0r0,141r193,0r0,26r-193,0r0,26r193,0r0,26r-219,0r0,-219","w":360},"\u2559":{"d":"141,-284r26,0r0,167r26,0r0,-167r26,0r0,167r141,0r0,26r-219,0r0,-193","w":360},"\u255a":{"d":"360,-117r-167,0r0,-167r26,0r0,141r141,0r0,26xm360,-65r-219,0r0,-219r26,0r0,193r193,0r0,26","w":360},"\u255b":{"d":"0,-117r0,-26r167,0r0,-141r26,0r0,219r-193,0r0,-26r167,0r0,-26r-167,0","w":360},"\u255c":{"d":"141,-284r26,0r0,167r26,0r0,-167r26,0r0,193r-219,0r0,-26r141,0r0,-167","w":360},"\u255d":{"d":"0,-117r0,-26r141,0r0,-141r26,0r0,167r-167,0xm0,-65r0,-26r193,0r0,-193r26,0r0,219r-219,0","w":360},"\u255e":{"d":"167,-284r26,0r0,141r167,0r0,26r-167,0r0,26r167,0r0,26r-167,0r0,141r-26,0r0,-360","w":360},"\u255f":{"d":"141,76r0,-360r26,0r0,360r-26,0xm193,76r0,-360r26,0r0,167r141,0r0,26r-141,0r0,167r-26,0","w":360},"\u2560":{"d":"141,-284r26,0r0,360r-26,0r0,-360xm360,-117r-167,0r0,-167r26,0r0,141r141,0r0,26xm360,-65r-141,0r0,141r-26,0r0,-167r167,0r0,26","w":360},"\u2561":{"d":"0,-117r0,-26r167,0r0,-141r26,0r0,360r-26,0r0,-141r-167,0r0,-26r167,0r0,-26r-167,0","w":360},"\u2562":{"d":"141,76r0,-167r-141,0r0,-26r141,0r0,-167r26,0r0,360r-26,0xm193,76r0,-360r26,0r0,360r-26,0","w":360},"\u2563":{"d":"0,-65r0,-26r167,0r0,167r-26,0r0,-141r-141,0xm0,-117r0,-26r141,0r0,-141r26,0r0,167r-167,0xm193,-284r26,0r0,360r-26,0r0,-360","w":360},"\u2564":{"d":"0,-117r0,-26r360,0r0,26r-360,0xm0,-65r0,-26r360,0r0,26r-167,0r0,141r-26,0r0,-141r-167,0","w":360},"\u2565":{"d":"0,-91r0,-26r360,0r0,26r-141,0r0,167r-26,0r0,-167r-26,0r0,167r-26,0r0,-167r-141,0","w":360},"\u2566":{"d":"0,-117r0,-26r360,0r0,26r-360,0xm0,-65r0,-26r167,0r0,167r-26,0r0,-141r-141,0xm360,-65r-141,0r0,141r-26,0r0,-167r167,0r0,26","w":360},"\u2567":{"d":"0,-117r0,-26r167,0r0,-141r26,0r0,141r167,0r0,26r-360,0xm0,-65r0,-26r360,0r0,26r-360,0","w":360},"\u2568":{"d":"0,-91r0,-26r141,0r0,-167r26,0r0,167r26,0r0,-167r26,0r0,167r141,0r0,26r-360,0","w":360},"\u2569":{"d":"0,-117r0,-26r141,0r0,-141r26,0r0,167r-167,0xm360,-117r-167,0r0,-167r26,0r0,141r141,0r0,26xm0,-65r0,-26r360,0r0,26r-360,0","w":360},"\u256a":{"d":"0,-117r0,-26r167,0r0,-141r26,0r0,141r167,0r0,26r-167,0r0,26r167,0r0,26r-167,0r0,141r-26,0r0,-141r-167,0r0,-26r167,0r0,-26r-167,0","w":360},"\u256b":{"d":"141,76r0,-167r-141,0r0,-26r141,0r0,-167r26,0r0,167r26,0r0,-167r26,0r0,167r141,0r0,26r-141,0r0,167r-26,0r0,-167r-26,0r0,167r-26,0","w":360},"\u256c":{"d":"0,-65r0,-26r167,0r0,167r-26,0r0,-141r-141,0xm0,-117r0,-26r141,0r0,-141r26,0r0,167r-167,0xm360,-117r-167,0r0,-167r26,0r0,141r141,0r0,26xm360,-65r-141,0r0,141r-26,0r0,-167r167,0r0,26","w":360},"\u256d":{"d":"360,-91v-89,-3,-170,78,-167,167r-26,0v-3,-103,90,-197,193,-193r0,26","w":360},"\u256e":{"d":"167,76v3,-89,-78,-170,-167,-167r0,-26v103,-4,196,90,193,193r-26,0","w":360},"\u256f":{"d":"0,-117v89,3,170,-78,167,-167r26,0v3,103,-90,196,-193,193r0,-26","w":360},"\u2570":{"d":"193,-284v-3,89,78,170,167,167r0,26v-103,3,-196,-90,-193,-193r26,0","w":360},"\u2571":{"d":"351,-293r18,18r-360,360r-18,-18","w":360},"\u2572":{"d":"9,-293r360,360r-18,18r-360,-360","w":360},"\u2573":{"d":"162,-104r-171,-171r18,-18r171,170r171,-170r18,18r-170,171r170,171r-18,18r-171,-171r-171,171r-18,-18","w":360},"\u2574":{"d":"0,-91r0,-26r180,0r0,26r-180,0","w":360},"\u2575":{"d":"167,-104r0,-180r26,0r0,180r-26,0","w":360},"\u2576":{"d":"180,-91r0,-26r180,0r0,26r-180,0","w":360},"\u2577":{"d":"167,76r0,-180r26,0r0,180r-26,0","w":360},"\u2578":{"d":"0,-87r0,-34r180,0r0,34r-180,0","w":360},"\u2579":{"d":"163,-104r0,-180r34,0r0,180r-34,0","w":360},"\u257a":{"d":"180,-87r0,-34r180,0r0,34r-180,0","w":360},"\u257b":{"d":"163,76r0,-180r34,0r0,180r-34,0","w":360},"\u257c":{"d":"0,-91r0,-26r180,0r0,-4r180,0r0,34r-180,0r0,-4r-180,0","w":360},"\u257d":{"d":"163,76r0,-180r4,0r0,-180r26,0r0,180r4,0r0,180r-34,0","w":360},"\u257e":{"d":"0,-87r0,-34r180,0r0,4r180,0r0,26r-180,0r0,4r-180,0","w":360},"\u257f":{"d":"167,76r0,-180r-4,0r0,-180r34,0r0,180r-4,0r0,180r-26,0","w":360},"\u2580":{"d":"0,-284r360,0r0,180r-360,0r0,-180","w":360},"\u2582":{"d":"0,-14r360,0r0,90r-360,0r0,-90","w":360},"\u2583":{"d":"0,-59r360,0r0,135r-360,0r0,-135","w":360},"\u2584":{"d":"0,-104r360,0r0,180r-360,0r0,-180","w":360},"\u2585":{"d":"0,-149r360,0r0,225r-360,0r0,-225","w":360},"\u2586":{"d":"0,-194r360,0r0,270r-360,0r0,-270","w":360},"\u2587":{"d":"0,-239r360,0r0,315r-360,0r0,-315","w":360},"\u2588":{"d":"0,-284r360,0r0,360r-360,0r0,-360","w":360},"\u2589":{"d":"0,76r0,-360r315,0r0,360r-315,0","w":360},"\u258a":{"d":"0,76r0,-360r270,0r0,360r-270,0","w":360},"\u258b":{"d":"0,76r0,-360r225,0r0,360r-225,0","w":360},"\u258c":{"d":"0,76r0,-360r180,0r0,360r-180,0","w":360},"\u258d":{"d":"0,76r0,-360r135,0r0,360r-135,0","w":360},"\u258e":{"d":"0,76r0,-360r90,0r0,360r-90,0","w":360},"\u258f":{"d":"0,76r0,-360r45,0r0,360r-45,0","w":360},"\u2590":{"d":"180,76r0,-360r180,0r0,360r-180,0","w":360},"\u2591":{"d":"0,-266r0,-18r18,0r0,18r-18,0xm0,-230r0,-18r18,0r0,18r-18,0xm0,-194r0,-18r18,0r0,18r-18,0xm0,-158r0,-18r18,0r0,18r-18,0xm0,-122r0,-18r18,0r0,18r-18,0xm36,-266r0,-18r18,0r0,18r-18,0xm36,-230r0,-18r18,0r0,18r-18,0xm36,-194r0,-18r18,0r0,18r-18,0xm36,-158r0,-18r18,0r0,18r-18,0xm36,-122r0,-18r18,0r0,18r-18,0xm72,-266r0,-18r18,0r0,18r-18,0xm72,-230r0,-18r18,0r0,18r-18,0xm72,-194r0,-18r18,0r0,18r-18,0xm72,-158r0,-18r18,0r0,18r-18,0xm72,-122r0,-18r18,0r0,18r-18,0xm108,-266r0,-18r18,0r0,18r-18,0xm108,-230r0,-18r18,0r0,18r-18,0xm108,-194r0,-18r18,0r0,18r-18,0xm108,-158r0,-18r18,0r0,18r-18,0xm108,-122r0,-18r18,0r0,18r-18,0xm144,-266r0,-18r18,0r0,18r-18,0xm144,-230r0,-18r18,0r0,18r-18,0xm144,-194r0,-18r18,0r0,18r-18,0xm144,-158r0,-18r18,0r0,18r-18,0xm144,-122r0,-18r18,0r0,18r-18,0xm180,-266r0,-18r18,0r0,18r-18,0xm180,-230r0,-18r18,0r0,18r-18,0xm180,-194r0,-18r18,0r0,18r-18,0xm180,-158r0,-18r18,0r0,18r-18,0xm180,-122r0,-18r18,0r0,18r-18,0xm216,-266r0,-18r18,0r0,18r-18,0xm216,-230r0,-18r18,0r0,18r-18,0xm216,-194r0,-18r18,0r0,18r-18,0xm216,-158r0,-18r18,0r0,18r-18,0xm216,-122r0,-18r18,0r0,18r-18,0xm252,-266r0,-18r18,0r0,18r-18,0xm252,-230r0,-18r18,0r0,18r-18,0xm252,-194r0,-18r18,0r0,18r-18,0xm252,-158r0,-18r18,0r0,18r-18,0xm252,-122r0,-18r18,0r0,18r-18,0xm288,-266r0,-18r18,0r0,18r-18,0xm288,-230r0,-18r18,0r0,18r-18,0xm288,-194r0,-18r18,0r0,18r-18,0xm288,-158r0,-18r18,0r0,18r-18,0xm288,-122r0,-18r18,0r0,18r-18,0xm324,-266r0,-18r18,0r0,18r-18,0xm324,-230r0,-18r18,0r0,18r-18,0xm324,-194r0,-18r18,0r0,18r-18,0xm324,-158r0,-18r18,0r0,18r-18,0xm324,-122r0,-18r18,0r0,18r-18,0xm0,-86r0,-18r18,0r0,18r-18,0xm0,-50r0,-18r18,0r0,18r-18,0xm0,-14r0,-18r18,0r0,18r-18,0xm0,22r0,-18r18,0r0,18r-18,0xm0,58r0,-18r18,0r0,18r-18,0xm36,-86r0,-18r18,0r0,18r-18,0xm36,-50r0,-18r18,0r0,18r-18,0xm36,-14r0,-18r18,0r0,18r-18,0xm36,22r0,-18r18,0r0,18r-18,0xm36,58r0,-18r18,0r0,18r-18,0xm72,-86r0,-18r18,0r0,18r-18,0xm72,-50r0,-18r18,0r0,18r-18,0xm72,-14r0,-18r18,0r0,18r-18,0xm72,22r0,-18r18,0r0,18r-18,0xm72,58r0,-18r18,0r0,18r-18,0xm108,-86r0,-18r18,0r0,18r-18,0xm108,-50r0,-18r18,0r0,18r-18,0xm108,-14r0,-18r18,0r0,18r-18,0xm108,22r0,-18r18,0r0,18r-18,0xm108,58r0,-18r18,0r0,18r-18,0xm144,-86r0,-18r18,0r0,18r-18,0xm144,-50r0,-18r18,0r0,18r-18,0xm144,-14r0,-18r18,0r0,18r-18,0xm144,22r0,-18r18,0r0,18r-18,0xm144,58r0,-18r18,0r0,18r-18,0xm180,-86r0,-18r18,0r0,18r-18,0xm180,-50r0,-18r18,0r0,18r-18,0xm180,-14r0,-18r18,0r0,18r-18,0xm180,22r0,-18r18,0r0,18r-18,0xm180,58r0,-18r18,0r0,18r-18,0xm216,-86r0,-18r18,0r0,18r-18,0xm216,-50r0,-18r18,0r0,18r-18,0xm216,-14r0,-18r18,0r0,18r-18,0xm216,22r0,-18r18,0r0,18r-18,0xm216,58r0,-18r18,0r0,18r-18,0xm252,-86r0,-18r18,0r0,18r-18,0xm252,-50r0,-18r18,0r0,18r-18,0xm252,-14r0,-18r18,0r0,18r-18,0xm252,22r0,-18r18,0r0,18r-18,0xm252,58r0,-18r18,0r0,18r-18,0xm288,-86r0,-18r18,0r0,18r-18,0xm288,-50r0,-18r18,0r0,18r-18,0xm288,-14r0,-18r18,0r0,18r-18,0xm288,22r0,-18r18,0r0,18r-18,0xm288,58r0,-18r18,0r0,18r-18,0xm324,-86r0,-18r18,0r0,18r-18,0xm324,-50r0,-18r18,0r0,18r-18,0xm324,-14r0,-18r18,0r0,18r-18,0xm324,22r0,-18r18,0r0,18r-18,0xm324,58r0,-18r18,0r0,18r-18,0","w":360},"\u2592":{"d":"0,-266r0,-18r18,0r0,18r-18,0xm0,-230r0,-18r18,0r0,18r-18,0xm0,-194r0,-18r18,0r0,18r-18,0xm0,-158r0,-18r18,0r0,18r-18,0xm0,-122r0,-18r18,0r0,18r-18,0xm36,-266r18,0r0,-18r-18,0r0,18xm36,-230r18,0r0,-18r-18,0r0,18xm36,-194r18,0r0,-18r-18,0r0,18xm36,-158r18,0r0,-18r-18,0r0,18xm36,-122r18,0r0,-18r-18,0r0,18xm72,-266r18,0r0,-18r-18,0r0,18xm72,-230r18,0r0,-18r-18,0r0,18xm72,-194r18,0r0,-18r-18,0r0,18xm72,-158r18,0r0,-18r-18,0r0,18xm72,-122r18,0r0,-18r-18,0r0,18xm108,-266r18,0r0,-18r-18,0r0,18xm108,-230r18,0r0,-18r-18,0r0,18xm108,-194r18,0r0,-18r-18,0r0,18xm108,-158r18,0r0,-18r-18,0r0,18xm108,-122r18,0r0,-18r-18,0r0,18xm144,-266r18,0r0,-18r-18,0r0,18xm144,-230r18,0r0,-18r-18,0r0,18xm144,-194r18,0r0,-18r-18,0r0,18xm144,-158r18,0r0,-18r-18,0r0,18xm144,-122r18,0r0,-18r-18,0r0,18xm18,-248r18,0r0,-18r-18,0r0,18xm18,-212r18,0r0,-18r-18,0r0,18xm18,-176r18,0r0,-18r-18,0r0,18xm18,-140r18,0r0,-18r-18,0r0,18xm18,-104r18,0r0,-18r-18,0r0,18xm54,-248r18,0r0,-18r-18,0r0,18xm54,-212r18,0r0,-18r-18,0r0,18xm54,-176r18,0r0,-18r-18,0r0,18xm54,-140r18,0r0,-18r-18,0r0,18xm54,-104r18,0r0,-18r-18,0r0,18xm90,-248r18,0r0,-18r-18,0r0,18xm90,-212r18,0r0,-18r-18,0r0,18xm90,-176r18,0r0,-18r-18,0r0,18xm90,-140r18,0r0,-18r-18,0r0,18xm90,-104r18,0r0,-18r-18,0r0,18xm126,-248r18,0r0,-18r-18,0r0,18xm126,-212r18,0r0,-18r-18,0r0,18xm126,-176r18,0r0,-18r-18,0r0,18xm126,-140r18,0r0,-18r-18,0r0,18xm126,-104r18,0r0,-18r-18,0r0,18xm162,-248r18,0r0,-18r-18,0r0,18xm162,-212r18,0r0,-18r-18,0r0,18xm162,-176r18,0r0,-18r-18,0r0,18xm162,-140r18,0r0,-18r-18,0r0,18xm162,-104r18,0r0,-18r-18,0r0,18xm180,-266r18,0r0,-18r-18,0r0,18xm180,-230r18,0r0,-18r-18,0r0,18xm180,-194r18,0r0,-18r-18,0r0,18xm180,-158r18,0r0,-18r-18,0r0,18xm180,-122r18,0r0,-18r-18,0r0,18xm216,-266r18,0r0,-18r-18,0r0,18xm216,-230r18,0r0,-18r-18,0r0,18xm216,-194r18,0r0,-18r-18,0r0,18xm216,-158r18,0r0,-18r-18,0r0,18xm216,-122r18,0r0,-18r-18,0r0,18xm252,-266r18,0r0,-18r-18,0r0,18xm252,-230r18,0r0,-18r-18,0r0,18xm252,-194r18,0r0,-18r-18,0r0,18xm252,-158r18,0r0,-18r-18,0r0,18xm252,-122r18,0r0,-18r-18,0r0,18xm288,-266r18,0r0,-18r-18,0r0,18xm288,-230r18,0r0,-18r-18,0r0,18xm288,-194r18,0r0,-18r-18,0r0,18xm288,-158r18,0r0,-18r-18,0r0,18xm288,-122r18,0r0,-18r-18,0r0,18xm324,-266r18,0r0,-18r-18,0r0,18xm324,-230r18,0r0,-18r-18,0r0,18xm324,-194r18,0r0,-18r-18,0r0,18xm324,-158r18,0r0,-18r-18,0r0,18xm324,-122r18,0r0,-18r-18,0r0,18xm198,-248r18,0r0,-18r-18,0r0,18xm198,-212r18,0r0,-18r-18,0r0,18xm198,-176r18,0r0,-18r-18,0r0,18xm198,-140r18,0r0,-18r-18,0r0,18xm198,-104r18,0r0,-18r-18,0r0,18xm234,-248r18,0r0,-18r-18,0r0,18xm234,-212r18,0r0,-18r-18,0r0,18xm234,-176r18,0r0,-18r-18,0r0,18xm234,-140r18,0r0,-18r-18,0r0,18xm234,-104r18,0r0,-18r-18,0r0,18xm270,-248r18,0r0,-18r-18,0r0,18xm270,-212r18,0r0,-18r-18,0r0,18xm270,-176r18,0r0,-18r-18,0r0,18xm270,-140r18,0r0,-18r-18,0r0,18xm270,-104r18,0r0,-18r-18,0r0,18xm306,-248r18,0r0,-18r-18,0r0,18xm306,-212r18,0r0,-18r-18,0r0,18xm306,-176r18,0r0,-18r-18,0r0,18xm306,-140r18,0r0,-18r-18,0r0,18xm306,-104r18,0r0,-18r-18,0r0,18xm342,-248r18,0r0,-18r-18,0r0,18xm342,-212r18,0r0,-18r-18,0r0,18xm342,-176r18,0r0,-18r-18,0r0,18xm342,-140r18,0r0,-18r-18,0r0,18xm342,-104r18,0r0,-18r-18,0r0,18xm0,-86r0,-18r18,0r0,18r-18,0xm0,-50r0,-18r18,0r0,18r-18,0xm0,-14r0,-18r18,0r0,18r-18,0xm0,22r0,-18r18,0r0,18r-18,0xm0,58r0,-18r18,0r0,18r-18,0xm36,-86r18,0r0,-18r-18,0r0,18xm36,-50r18,0r0,-18r-18,0r0,18xm36,-14r18,0r0,-18r-18,0r0,18xm36,22r18,0r0,-18r-18,0r0,18xm36,58r18,0r0,-18r-18,0r0,18xm72,-86r18,0r0,-18r-18,0r0,18xm72,-50r18,0r0,-18r-18,0r0,18xm72,-14r18,0r0,-18r-18,0r0,18xm72,22r18,0r0,-18r-18,0r0,18xm72,58r18,0r0,-18r-18,0r0,18xm108,-86r18,0r0,-18r-18,0r0,18xm108,-50r18,0r0,-18r-18,0r0,18xm108,-14r18,0r0,-18r-18,0r0,18xm108,22r18,0r0,-18r-18,0r0,18xm108,58r18,0r0,-18r-18,0r0,18xm144,-86r18,0r0,-18r-18,0r0,18xm144,-50r18,0r0,-18r-18,0r0,18xm144,-14r18,0r0,-18r-18,0r0,18xm144,22r18,0r0,-18r-18,0r0,18xm144,58r18,0r0,-18r-18,0r0,18xm18,-68r18,0r0,-18r-18,0r0,18xm18,-32r18,0r0,-18r-18,0r0,18xm18,4r18,0r0,-18r-18,0r0,18xm18,40r18,0r0,-18r-18,0r0,18xm18,76r0,-18r18,0r0,18r-18,0xm54,-68r18,0r0,-18r-18,0r0,18xm54,-32r18,0r0,-18r-18,0r0,18xm54,4r18,0r0,-18r-18,0r0,18xm54,40r18,0r0,-18r-18,0r0,18xm54,76r0,-18r18,0r0,18r-18,0xm90,-68r18,0r0,-18r-18,0r0,18xm90,-32r18,0r0,-18r-18,0r0,18xm90,4r18,0r0,-18r-18,0r0,18xm90,40r18,0r0,-18r-18,0r0,18xm90,76r0,-18r18,0r0,18r-18,0xm126,-68r18,0r0,-18r-18,0r0,18xm126,-32r18,0r0,-18r-18,0r0,18xm126,4r18,0r0,-18r-18,0r0,18xm126,40r18,0r0,-18r-18,0r0,18xm126,76r0,-18r18,0r0,18r-18,0xm162,-68r18,0r0,-18r-18,0r0,18xm162,-32r18,0r0,-18r-18,0r0,18xm162,4r18,0r0,-18r-18,0r0,18xm162,40r18,0r0,-18r-18,0r0,18xm162,76r0,-18r18,0r0,18r-18,0xm180,-86r18,0r0,-18r-18,0r0,18xm180,-50r18,0r0,-18r-18,0r0,18xm180,-14r18,0r0,-18r-18,0r0,18xm180,22r18,0r0,-18r-18,0r0,18xm180,58r18,0r0,-18r-18,0r0,18xm216,-86r18,0r0,-18r-18,0r0,18xm216,-50r18,0r0,-18r-18,0r0,18xm216,-14r18,0r0,-18r-18,0r0,18xm216,22r18,0r0,-18r-18,0r0,18xm216,58r18,0r0,-18r-18,0r0,18xm252,-86r18,0r0,-18r-18,0r0,18xm252,-50r18,0r0,-18r-18,0r0,18xm252,-14r18,0r0,-18r-18,0r0,18xm252,22r18,0r0,-18r-18,0r0,18xm252,58r18,0r0,-18r-18,0r0,18xm288,-86r18,0r0,-18r-18,0r0,18xm288,-50r18,0r0,-18r-18,0r0,18xm288,-14r18,0r0,-18r-18,0r0,18xm288,22r18,0r0,-18r-18,0r0,18xm288,58r18,0r0,-18r-18,0r0,18xm324,-86r18,0r0,-18r-18,0r0,18xm324,-50r18,0r0,-18r-18,0r0,18xm324,-14r18,0r0,-18r-18,0r0,18xm324,22r18,0r0,-18r-18,0r0,18xm324,58r18,0r0,-18r-18,0r0,18xm198,-68r18,0r0,-18r-18,0r0,18xm198,-32r18,0r0,-18r-18,0r0,18xm198,4r18,0r0,-18r-18,0r0,18xm198,40r18,0r0,-18r-18,0r0,18xm198,76r0,-18r18,0r0,18r-18,0xm234,-68r18,0r0,-18r-18,0r0,18xm234,-32r18,0r0,-18r-18,0r0,18xm234,4r18,0r0,-18r-18,0r0,18xm234,40r18,0r0,-18r-18,0r0,18xm234,76r0,-18r18,0r0,18r-18,0xm270,-68r18,0r0,-18r-18,0r0,18xm270,-32r18,0r0,-18r-18,0r0,18xm270,4r18,0r0,-18r-18,0r0,18xm270,40r18,0r0,-18r-18,0r0,18xm270,76r0,-18r18,0r0,18r-18,0xm306,-68r18,0r0,-18r-18,0r0,18xm306,-32r18,0r0,-18r-18,0r0,18xm306,4r18,0r0,-18r-18,0r0,18xm306,40r18,0r0,-18r-18,0r0,18xm306,76r0,-18r18,0r0,18r-18,0xm342,-68r18,0r0,-18r-18,0r0,18xm342,-32r18,0r0,-18r-18,0r0,18xm342,4r18,0r0,-18r-18,0r0,18xm342,40r18,0r0,-18r-18,0r0,18xm342,76r0,-18r18,0r0,18r-18,0","w":360},"\u2593":{"d":"90,-212r18,0r0,-18r-18,0r0,18xm90,-176r18,0r0,-18r-18,0r0,18xm90,-140r18,0r0,-18r-18,0r0,18xm90,-248r18,0r0,-18r-18,0r0,18xm18,-248r18,0r0,-18r-18,0r0,18xm18,-212r18,0r0,-18r-18,0r0,18xm18,-176r18,0r0,-18r-18,0r0,18xm18,-140r18,0r0,-18r-18,0r0,18xm54,-248r18,0r0,-18r-18,0r0,18xm54,-212r18,0r0,-18r-18,0r0,18xm54,-176r18,0r0,-18r-18,0r0,18xm54,-140r18,0r0,-18r-18,0r0,18xm162,-248r18,0r0,-18r-18,0r0,18xm162,-212r18,0r0,-18r-18,0r0,18xm162,-176r18,0r0,-18r-18,0r0,18xm162,-140r18,0r0,-18r-18,0r0,18xm306,-104r18,0r0,-18r-18,0r0,18xm270,-104r18,0r0,-18r-18,0r0,18xm234,-104r18,0r0,-18r-18,0r0,18xm198,-104r18,0r0,-18r-18,0r0,18xm162,-104r18,0r0,-18r-18,0r0,18xm126,-104r18,0r0,-18r-18,0r0,18xm90,-104r18,0r0,-18r-18,0r0,18xm54,-104r18,0r0,-18r-18,0r0,18xm18,-104r18,0r0,-18r-18,0r0,18xm126,-248r18,0r0,-18r-18,0r0,18xm126,-212r18,0r0,-18r-18,0r0,18xm126,-176r18,0r0,-18r-18,0r0,18xm126,-140r18,0r0,-18r-18,0r0,18xm270,-212r18,0r0,-18r-18,0r0,18xm270,-176r18,0r0,-18r-18,0r0,18xm270,-140r18,0r0,-18r-18,0r0,18xm270,-248r18,0r0,-18r-18,0r0,18xm198,-248r18,0r0,-18r-18,0r0,18xm198,-212r18,0r0,-18r-18,0r0,18xm198,-176r18,0r0,-18r-18,0r0,18xm198,-140r18,0r0,-18r-18,0r0,18xm234,-248r18,0r0,-18r-18,0r0,18xm234,-212r18,0r0,-18r-18,0r0,18xm234,-176r18,0r0,-18r-18,0r0,18xm234,-140r18,0r0,-18r-18,0r0,18xm306,-248r18,0r0,-18r-18,0r0,18xm306,-212r18,0r0,-18r-18,0r0,18xm306,-176r18,0r0,-18r-18,0r0,18xm306,-140r18,0r0,-18r-18,0r0,18xm90,-32r18,0r0,-18r-18,0r0,18xm90,4r18,0r0,-18r-18,0r0,18xm90,40r18,0r0,-18r-18,0r0,18xm90,-68r18,0r0,-18r-18,0r0,18xm18,-68r18,0r0,-18r-18,0r0,18xm18,-32r18,0r0,-18r-18,0r0,18xm18,4r18,0r0,-18r-18,0r0,18xm18,40r18,0r0,-18r-18,0r0,18xm54,-68r18,0r0,-18r-18,0r0,18xm54,-32r18,0r0,-18r-18,0r0,18xm54,4r18,0r0,-18r-18,0r0,18xm54,40r18,0r0,-18r-18,0r0,18xm162,-68r18,0r0,-18r-18,0r0,18xm162,-32r18,0r0,-18r-18,0r0,18xm162,4r18,0r0,-18r-18,0r0,18xm162,40r18,0r0,-18r-18,0r0,18xm0,76r0,-360r360,0r0,18r-18,0r0,18r18,0r0,18r-18,0r0,18r18,0r0,18r-18,0r0,18r18,0r0,18r-18,0r0,18r18,0r0,18r-18,0r0,18r18,0r0,18r-18,0r0,18r18,0r0,18r-18,0r0,18r18,0r0,18r-18,0r0,18r18,0r0,18r-18,0r0,18r18,0r0,18r-18,0r0,18r-18,0r0,-18r-18,0r0,18r-18,0r0,-18r-18,0r0,18r-18,0r0,-18r-18,0r0,18r-18,0r0,-18r-18,0r0,18r-18,0r0,-18r-18,0r0,18r-18,0r0,-18r-18,0r0,18r-18,0r0,-18r-18,0r0,18r-18,0r0,-18r-18,0r0,18r-18,0r0,-18r-18,0r0,18r-18,0xm126,-68r18,0r0,-18r-18,0r0,18xm126,-32r18,0r0,-18r-18,0r0,18xm126,4r18,0r0,-18r-18,0r0,18xm126,40r18,0r0,-18r-18,0r0,18xm270,-32r18,0r0,-18r-18,0r0,18xm270,4r18,0r0,-18r-18,0r0,18xm270,40r18,0r0,-18r-18,0r0,18xm270,-68r18,0r0,-18r-18,0r0,18xm198,-68r18,0r0,-18r-18,0r0,18xm198,-32r18,0r0,-18r-18,0r0,18xm198,4r18,0r0,-18r-18,0r0,18xm198,40r18,0r0,-18r-18,0r0,18xm234,-68r18,0r0,-18r-18,0r0,18xm234,-32r18,0r0,-18r-18,0r0,18xm234,4r18,0r0,-18r-18,0r0,18xm234,40r18,0r0,-18r-18,0r0,18xm306,-68r18,0r0,-18r-18,0r0,18xm306,-32r18,0r0,-18r-18,0r0,18xm306,4r18,0r0,-18r-18,0r0,18xm306,40r18,0r0,-18r-18,0r0,18","w":360},"\u2594":{"d":"0,-284r360,0r0,45r-360,0r0,-45","w":360},"\u2595":{"d":"315,76r0,-360r45,0r0,360r-45,0","w":360},"\u25a0":{"d":"39,0r0,-208r208,0r0,208r-208,0"},"\u25a1":{"d":"39,0r0,-208r208,0r0,208r-208,0xm56,-17r174,0r0,-174r-174,0r0,174"},"\u25a2":{"d":"39,-146v0,-36,26,-62,62,-62r84,0v33,-1,62,29,62,62r0,84v1,33,-29,62,-62,62r-84,0v-33,1,-62,-29,-62,-62r0,-84xm185,-191v-56,1,-129,-13,-129,45v0,57,-11,129,45,129r84,0v24,1,45,-21,45,-45r0,-84v1,-24,-21,-46,-45,-45"},"\u25a3":{"d":"39,0r0,-208r208,0r0,208r-208,0xm56,-17r174,0r0,-174r-174,0r0,174xm91,-52r0,-104r104,0r0,104r-104,0"},"\u25a4":{"d":"39,0r0,-208r208,0r0,208r-208,0xm56,-17r174,0r0,-31r-174,0r0,31xm56,-65r174,0r0,-30r-174,0r0,30xm56,-113r174,0r0,-30r-174,0r0,30xm56,-160r174,0r0,-31r-174,0r0,31"},"\u25a5":{"d":"247,0r-208,0r0,-208r208,0r0,208xm230,-17r0,-174r-30,0r0,174r30,0xm182,-17r0,-174r-30,0r0,174r30,0xm134,-17r0,-174r-30,0r0,174r30,0xm87,-17r0,-174r-31,0r0,174r31,0"},"\u25a6":{"d":"39,0r0,-208r208,0r0,208r-208,0xm56,-17r31,0r0,-31r-31,0r0,31xm200,-65r30,0r0,-30r-30,0r0,30xm152,-65r30,0r0,-30r-30,0r0,30xm104,-65r30,0r0,-30r-30,0r0,30xm56,-65r31,0r0,-30r-31,0r0,30xm104,-113r30,0r0,-30r-30,0r0,30xm200,-113r30,0r0,-30r-30,0r0,30xm152,-113r30,0r0,-30r-30,0r0,30xm56,-113r31,0r0,-30r-31,0r0,30xm200,-160r30,0r0,-31r-30,0r0,31xm152,-160r30,0r0,-31r-30,0r0,31xm104,-160r30,0r0,-31r-30,0r0,31xm200,-17r30,0r0,-31r-30,0r0,31xm152,-17r30,0r0,-31r-30,0r0,31xm104,-17r30,0r0,-31r-30,0r0,31xm56,-160r31,0r0,-31r-31,0r0,31"},"\u25a7":{"d":"247,0r-208,0r0,-208r208,0r0,208xm218,-17r-162,-162r0,43r119,119r43,0xm150,-17r-94,-94r0,43r51,51r43,0xm83,-17r-27,-27r0,27r27,0xm230,-97r0,-43r-51,-51r-43,0xm230,-165r0,-26r-26,0xm230,-30r0,-43r-118,-118r-43,0"},"\u25a8":{"d":"39,0r0,-208r208,0r0,208r-208,0xm69,-17r43,0r118,-119r0,-43xm136,-17r43,0r51,-51r0,-43xm204,-17r26,0r0,-27xm56,-97r94,-94r-43,0r-51,51r0,43xm56,-165r27,-26r-27,0r0,26xm56,-30r162,-161r-43,0r-119,118r0,43"},"\u25a9":{"d":"39,0r0,-208r208,0r0,208r-208,0xm69,-17r14,0v-5,-7,-9,-7,-14,0xm211,-116v6,-9,17,-12,19,-24r-19,-19r-22,21xm211,-49v6,-8,17,-11,19,-24r-19,-19r-22,22xm56,-97v7,-5,7,-9,0,-14r0,14xm56,-140v2,12,14,15,20,24r21,-22r-21,-21xm76,-92v-6,9,-18,11,-20,24r20,19r21,-21xm56,-44r0,14v7,-5,7,-9,0,-14xm136,-191v5,7,9,7,14,0r-14,0xm155,-37v9,6,12,17,24,20r19,-20r-21,-21xm122,-70r21,21r22,-21r-22,-22xm88,-104r21,21r22,-21r-22,-22xm122,-138r21,22r22,-22r-22,-21xm155,-104r22,21r21,-21r-21,-22xm131,-172v-8,-6,-11,-17,-24,-19r-19,19r21,22xm230,-111v-7,5,-7,9,0,14r0,-14xm198,-172v-8,-6,-11,-17,-23,-19r-20,19r22,22xm150,-17v-5,-7,-9,-7,-14,0r14,0xm88,-37v9,6,11,18,24,20r19,-20r-22,-21xm56,-179r0,14v7,-5,7,-9,0,-14xm83,-191r-14,0v5,7,9,7,14,0xm218,-191r-14,0v5,7,9,7,14,0xm230,-165r0,-14v-7,5,-7,9,0,14xm230,-30r0,-14v-7,5,-7,9,0,14xm204,-17r14,0v-5,-7,-9,-7,-14,0"},"\u25aa":{"d":"39,-52r0,-104r104,0r0,104r-104,0","w":182},"\u25ab":{"d":"39,-52r0,-104r104,0r0,104r-104,0xm56,-69r70,0r0,-70r-70,0r0,70","w":182},"\u25ac":{"d":"39,-52r0,-104r208,0r0,104r-208,0"},"\u25ad":{"d":"39,-52r0,-104r208,0r0,104r-208,0xm56,-69r174,0r0,-70r-174,0r0,70"},"\u25ae":{"d":"39,0r0,-208r104,0r0,208r-104,0","w":182},"\u25af":{"d":"39,0r0,-208r104,0r0,208r-104,0xm56,-17r70,0r0,-174r-70,0r0,174","w":182},"\u25b0":{"d":"39,-52r52,-104r156,0r-52,104r-156,0"},"\u25b1":{"d":"39,-52r52,-104r156,0r-52,104r-156,0xm67,-69r117,0r35,-70r-117,0"},"\u25b2":{"d":"247,0r-208,0r104,-208"},"\u25b3":{"d":"247,0r-208,0r104,-208xm219,-17r-76,-152r-76,152r152,0"},"\u25b4":{"d":"159,-52r-120,0r60,-104","w":198},"\u25b5":{"d":"69,-69r60,0r-29,-52xm159,-52r-120,0r60,-104","w":198},"\u25b6":{"d":"39,0r0,-208r208,104"},"\u25b7":{"d":"39,0r0,-208r208,104xm56,-28r152,-76r-152,-76r0,152"},"\u25b8":{"d":"47,-44r0,-120r104,60","w":198},"\u25b9":{"d":"65,-134r0,60r52,-30xm47,-44r0,-120r104,60","w":198},"\u25ba":{"d":"39,-44r0,-120r240,60","w":318},"\u25bb":{"d":"39,-44r0,-120r240,60xm56,-142r0,76r152,-38","w":318},"\u25bc":{"d":"39,-208r208,0r-104,208"},"\u25bd":{"d":"39,-208r208,0r-104,208xm67,-191r76,152r76,-152r-152,0"},"\u25be":{"d":"39,-156r120,0r-60,104","w":198},"\u25bf":{"d":"129,-139r-60,0r30,52xm39,-156r120,0r-60,104","w":198},"\u25c0":{"d":"247,-208r0,208r-208,-104"},"\u25c1":{"d":"247,-208r0,208r-208,-104xm230,-180r-152,76r152,76r0,-152"},"\u25c2":{"d":"151,-164r0,120r-104,-60","w":198},"\u25c3":{"d":"134,-74r0,-60r-52,29xm151,-164r0,120r-104,-60","w":198},"\u25c4":{"d":"279,-44r-240,-60r240,-60r0,120","w":318},"\u25c5":{"d":"279,-44r-240,-60r240,-60r0,120xm262,-142r-151,38r151,38r0,-76","w":318},"\u25c6":{"d":"143,0r-104,-104r104,-104r104,104"},"\u25c7":{"d":"143,0r-104,-104r104,-104r104,104xm143,-25r80,-79r-80,-80r-79,80"},"\u25c8":{"d":"143,0r-104,-104r104,-104r104,104xm143,-25r80,-79r-80,-80r-79,80xm143,-64r-40,-40r40,-40r40,40"},"\u25c9":{"d":"247,-104v0,57,-47,104,-104,104v-57,0,-104,-47,-104,-104v0,-57,47,-104,104,-104v57,0,104,47,104,104xm56,-104v0,46,41,87,87,87v46,0,87,-40,87,-87v0,-47,-41,-87,-87,-87v-46,0,-87,41,-87,87xm195,-104v0,28,-24,52,-52,52v-28,0,-52,-24,-52,-52v0,-28,24,-52,52,-52v28,0,52,24,52,52"},"\u25cb":{"d":"247,-104v0,57,-47,104,-104,104v-57,0,-104,-47,-104,-104v0,-57,47,-104,104,-104v57,0,104,47,104,104xm56,-104v0,46,41,87,87,87v46,0,87,-40,87,-87v0,-47,-41,-87,-87,-87v-46,0,-87,41,-87,87"},"\u25cc":{"d":"82,-165r-13,-13v15,-14,34,-23,54,-28r3,17v-17,4,-31,12,-44,24xm230,-104r17,0v0,20,-5,39,-17,58r-15,-10v10,-16,15,-31,15,-48xm217,-30v-15,14,-33,23,-54,28r-3,-17v17,-4,31,-12,44,-24xm69,-30v-14,-15,-23,-33,-28,-54r17,-3v4,17,12,31,24,44xm143,-191r0,-17v20,0,39,5,58,17r-10,15v-16,-10,-31,-15,-48,-15xm204,-165r13,-13v14,15,23,33,28,54r-17,3v-4,-17,-12,-31,-24,-44xm143,-17r0,17v-20,0,-39,-6,-58,-18r10,-14v15,10,31,15,48,15xm56,-104r-17,0v0,-20,6,-39,18,-58r14,10v-10,15,-15,31,-15,48"},"\u25cd":{"d":"200,-38v40,-34,40,-98,0,-132r0,132xm152,-18v10,-1,20,-4,30,-9r0,-155v-9,-4,-19,-7,-30,-8r0,172xm104,-27v10,4,19,8,30,9r0,-172v-11,1,-21,4,-30,8r0,155xm247,-104v0,57,-47,104,-104,104v-57,0,-104,-47,-104,-104v0,-57,47,-104,104,-104v57,0,104,47,104,104xm87,-170v-41,34,-41,98,0,132r0,-132"},"\u25ce":{"d":"247,-104v0,57,-47,104,-104,104v-57,0,-104,-47,-104,-104v0,-57,47,-104,104,-104v57,0,104,47,104,104xm56,-104v0,46,41,87,87,87v46,0,87,-40,87,-87v0,-47,-41,-87,-87,-87v-46,0,-87,41,-87,87xm213,-104v0,36,-33,69,-70,69v-37,0,-69,-32,-69,-69v0,-37,32,-69,69,-69v37,0,70,33,70,69xm91,-104v0,28,24,52,52,52v28,0,52,-24,52,-52v0,-28,-24,-52,-52,-52v-28,0,-52,24,-52,52"},"\u25cf":{"d":"247,-104v0,57,-47,104,-104,104v-57,0,-104,-47,-104,-104v0,-57,47,-104,104,-104v57,0,104,47,104,104"},"\u25d0":{"d":"247,-104v0,57,-47,104,-104,104v-57,0,-104,-47,-104,-104v0,-57,47,-104,104,-104v57,0,104,47,104,104xm143,-17v73,4,117,-96,62,-148v-18,-16,-38,-26,-62,-26r0,174"},"\u25d1":{"d":"247,-104v0,57,-47,104,-104,104v-57,0,-104,-48,-104,-104v0,-56,47,-104,104,-104v57,0,104,47,104,104xm143,-191v-73,-3,-117,97,-61,148v18,16,37,26,61,26r0,-174"},"\u25d2":{"d":"143,-208v57,0,104,47,104,104v0,57,-47,104,-104,104v-57,0,-104,-48,-104,-104v0,-56,47,-104,104,-104xm230,-104v4,-74,-97,-117,-148,-61v-16,18,-26,37,-26,61r174,0"},"\u25d3":{"d":"143,0v-57,0,-104,-47,-104,-104v0,-57,47,-104,104,-104v57,0,104,47,104,104v0,57,-47,104,-104,104xm56,-104v-3,73,98,117,149,61v16,-18,25,-37,25,-61r-174,0"},"\u25d4":{"d":"247,-104v0,57,-47,104,-104,104v-57,0,-104,-48,-104,-104v0,-56,47,-104,104,-104v57,0,104,47,104,104xm56,-104v0,73,98,117,149,61v16,-18,25,-37,25,-61r-87,0r0,-87v-46,-1,-87,41,-87,87"},"\u25d5":{"d":"247,-104v0,57,-47,104,-104,104v-57,0,-104,-48,-104,-104v0,-56,47,-104,104,-104v57,0,104,47,104,104xm143,-104r0,-87v-46,-1,-88,41,-87,87r87,0"},"\u25d6":{"d":"143,0v-89,5,-139,-118,-73,-178v21,-19,44,-30,73,-30r0,208","w":182},"\u25d7":{"d":"39,-208v89,-6,139,117,74,178v-21,19,-45,30,-74,30r0,-208","w":182},"\u25d8":{"d":"180,-166v-33,0,-62,29,-62,62v0,33,29,62,62,62v33,0,62,-29,62,-62v0,-33,-29,-62,-62,-62xm0,-284r360,0r0,360r-360,0r0,-360","w":360},"\u25d9":{"d":"45,-104v0,73,63,135,135,135v72,0,135,-62,135,-135v0,-72,-62,-135,-135,-135v-73,0,-135,62,-135,135xm298,-104v0,62,-56,118,-118,118v-62,0,-118,-56,-118,-118v0,-62,56,-118,118,-118v62,0,118,56,118,118xm0,-284r360,0r0,360r-360,0r0,-360","w":360},"\u25da":{"d":"180,-239v-73,0,-137,62,-135,135r-45,0r0,-180r360,0r0,180r-45,0v2,-72,-62,-135,-135,-135xm62,-104v-5,-99,132,-159,201,-83v22,24,35,51,35,83r-236,0","w":360},"\u25db":{"d":"180,31v72,0,137,-62,135,-135r45,0r0,180r-360,0r0,-180r45,0v-1,72,63,135,135,135xm298,-104v5,99,-132,159,-201,83v-22,-24,-35,-51,-35,-83r236,0","w":360},"\u25dc":{"d":"174,-222v-62,-2,-120,56,-118,118r-17,0v-2,-73,62,-137,135,-135r0,17","w":213},"\u25dd":{"d":"157,-104v2,-62,-56,-120,-118,-118r0,-17v73,-2,137,62,135,135r-17,0","w":213},"\u25de":{"d":"39,14v62,2,120,-56,118,-118r17,0v2,73,-63,137,-135,135r0,-17","w":213},"\u25df":{"d":"56,-104v-2,62,56,120,118,118r0,17v-72,2,-137,-62,-135,-135r17,0","w":213},"\u25e0":{"d":"180,-222v-62,0,-120,56,-118,118r-17,0v-2,-73,62,-135,135,-135v73,0,137,63,135,135r-17,0v2,-62,-56,-118,-118,-118","w":360},"\u25e1":{"d":"180,14v62,0,120,-56,118,-118r17,0v6,115,-151,181,-230,95v-25,-27,-40,-58,-40,-95r17,0v-2,62,56,118,118,118","w":360},"\u25e2":{"d":"39,0r208,-208r0,208r-208,0"},"\u25e3":{"d":"39,0r0,-208r208,208r-208,0"},"\u25e4":{"d":"39,0r0,-208r208,0"},"\u25e5":{"d":"247,0r-208,-208r208,0r0,208"},"\u25e6":{"d":"101,-42v-33,0,-62,-29,-62,-62v0,-33,29,-62,62,-62v33,0,62,29,62,62v0,33,-29,62,-62,62xm101,-149v-24,0,-45,21,-45,45v0,23,22,44,45,44v23,0,44,-21,44,-44v0,-23,-21,-45,-44,-45","w":201},"\u25e7":{"d":"39,0r0,-208r208,0r0,208r-208,0xm143,-17r87,0r0,-174r-87,0r0,174"},"\u25e8":{"d":"39,0r0,-208r208,0r0,208r-208,0xm56,-17r87,0r0,-174r-87,0r0,174"},"\u25e9":{"d":"39,0r0,-208r208,0r0,208r-208,0xm56,-17r174,0r0,-174"},"\u25ea":{"d":"39,0r0,-208r208,0r0,208r-208,0xm56,-17r174,-174r-174,0r0,174"},"\u25eb":{"d":"39,0r0,-208r208,0r0,208r-208,0xm152,-17r78,0r0,-174r-78,0r0,174xm56,-17r78,0r0,-174r-78,0r0,174"},"\u25ec":{"d":"247,0r-208,0r104,-208xm219,-17r-76,-152r-76,152r152,0xm143,-45v-12,0,-22,-9,-22,-22v0,-12,9,-22,22,-22v12,0,22,9,22,22v0,12,-9,22,-22,22"},"\u25ed":{"d":"247,0r-208,0r104,-208xm219,-17r-76,-152r0,152r76,0"},"\u25ee":{"d":"247,0r-208,0r104,-208xm143,-17r0,-152r-76,152r76,0"},"\u266d":{"d":"137,-134v52,0,48,72,11,100v-20,15,-46,28,-79,34r0,-260r11,0r0,168v19,-28,38,-42,57,-42xm80,-12v47,-12,71,-36,71,-71v0,-53,-49,-32,-71,8r0,63","w":229},"\u266e":{"d":"144,52r0,-101r-69,33r0,-244r11,0r0,99r69,-34r0,247r-11,0xm86,-49r58,-30r0,-81r-58,28r0,83","w":229},"\u266f":{"d":"74,52r0,-67r-26,13r0,-29r26,-13r0,-83r-26,12r0,-28r26,-13r0,-61r11,0r0,56r60,-28r0,-71r11,0r0,65r26,-13r0,29r-26,13r0,83r26,-13r0,28r-26,13r0,64r-11,0r0,-58r-60,29r0,72r-11,0xm85,-49r60,-29r0,-83r-60,29r0,83","w":229},"\uf810":{"d":"251,-136v0,82,-43,138,-130,136r-87,0r0,-260r86,0v89,-4,131,43,131,124xm212,-133v1,-83,-50,-107,-142,-100r0,205r48,0v69,1,92,-40,94,-105xm269,-181r0,-10v10,-2,15,-16,14,-35r-14,0r0,-34r35,0v2,39,-2,79,-35,79","w":320},"\uf811":{"d":"20,-89v0,-86,83,-141,137,-80r0,-109r35,0r0,278r-35,0r0,-36v-14,27,-35,40,-63,40v-49,0,-74,-40,-74,-93xm157,-145v-45,-47,-101,-19,-101,52v0,81,64,83,101,36r0,-88xm236,-351r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":226},"\uf812":{"d":"34,0r0,-260r36,0r0,232r118,0r0,28r-154,0xm113,-338r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":191},"\uf813":{"d":"35,0r0,-278r34,0r0,278r-34,0xm113,-351r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":104},"\uf814":{"d":"95,0r0,-233r-92,0r0,-27r222,0r0,27r-93,0r0,233r-37,0xm259,-181r0,-10v10,-2,15,-16,14,-35r-14,0r0,-34r35,0v2,39,-2,79,-35,79","w":311},"\uf815":{"d":"120,0v-46,14,-84,-7,-84,-53r0,-112r-24,0r0,-26r24,0r0,-35r35,-3r0,38r50,0r0,26r-50,0r0,106v-1,32,20,42,49,35r0,24xm117,-299r-42,56r-39,0r-42,-56r26,0r36,36r35,-36r26,0","w":134},"\uf816":{"d":"163,-110v38,53,-10,117,-78,117v-18,0,-40,-4,-67,-12r0,-36v57,39,145,18,111,-48v-32,-34,-110,-48,-110,-109v0,-65,78,-83,141,-59r0,34v-49,-22,-96,-27,-106,20v2,33,36,41,61,57v22,14,40,24,48,36xm79,97r0,-10v10,-2,15,-16,14,-35r-14,0r0,-34r35,0v2,39,-2,79,-35,79","w":193},"\uf817":{"d":"144,-86v41,67,-42,113,-116,79r0,-31v23,11,42,16,59,16v18,0,34,-11,34,-28v0,-19,-30,-32,-48,-38v-68,-22,-52,-107,22,-107v12,0,33,2,47,6r0,29v-34,-11,-74,-19,-80,15v1,30,70,37,82,59xm74,97r0,-10v10,-2,15,-16,14,-35r-14,0r0,-34r35,0v2,39,-2,79,-35,79","w":183},"\uf818":{"d":"95,0r0,-233r-92,0r0,-27r222,0r0,27r-93,0r0,233r-37,0xm96,97r0,-10v10,-2,15,-16,14,-35r-14,0r0,-34r35,0v2,39,-2,79,-35,79","w":227},"\uf819":{"d":"120,0v-46,14,-84,-7,-84,-53r0,-112r-24,0r0,-26r24,0r0,-35r35,-3r0,38r50,0r0,26r-50,0r0,106v-1,32,20,42,49,35r0,24xm58,97r0,-10v10,-2,15,-16,14,-35r-14,0r0,-34r35,0v2,39,-2,79,-35,79","w":134},"\uf81a":{"d":"192,-191v-7,115,35,265,-93,265v-22,0,-44,-4,-64,-11r4,-30v48,25,123,23,118,-47r0,-30v-10,23,-32,39,-62,40v-50,1,-75,-41,-75,-93v0,-80,85,-132,137,-72r0,-22r35,0xm157,-145v-38,-46,-101,-20,-101,48v0,76,67,77,101,31r0,-79xm144,112v-1,26,-34,35,-61,25r0,-14v11,5,36,6,36,-10v0,-11,-11,-17,-33,-17r17,-31r17,0r-10,19v16,-1,34,14,34,28","w":224},"\uf81b":{"d":"206,-192v0,65,-53,91,-122,89r0,103r-35,0r0,-171r-41,0r0,-22r41,0r0,-67v77,-1,157,-10,157,68xm84,-131v46,1,72,-5,83,-40r-83,0r0,40xm169,-193v-1,-42,-39,-39,-85,-39r0,39r85,0","w":227},"\uf820":{"d":"29,-86v-6,0,-9,-2,-9,-9v0,-6,3,-10,9,-10v7,0,10,4,10,10v0,7,-3,9,-10,9xm26,-130v0,-6,4,-10,10,-10v7,0,10,4,10,10v0,7,-4,10,-10,10v-7,0,-10,-3,-10,-10xm46,-159v0,-7,3,-10,10,-10v7,0,9,4,9,10v0,7,-2,10,-9,10v-7,0,-10,-4,-10,-10xm75,-179v0,-6,4,-9,10,-9v7,0,10,3,10,9v0,7,-3,10,-10,10v-6,0,-10,-3,-10,-10xm109,-185v0,-6,3,-10,10,-10v7,0,10,4,10,10v0,7,-3,9,-10,9v-7,0,-10,-2,-10,-9xm154,-188v7,0,9,3,9,9v0,7,-2,10,-9,10v-7,0,-10,-3,-10,-9v0,-7,3,-10,10,-10xm183,-169v7,0,10,3,10,10v0,7,-3,10,-10,10v-7,0,-10,-3,-10,-10v0,-7,3,-10,10,-10xm202,-140v6,0,10,4,10,10v0,7,-3,10,-10,10v-7,0,-10,-3,-10,-10v0,-6,3,-10,10,-10xm209,-105v7,0,10,3,10,10v0,7,-3,9,-10,9v-7,0,-10,-2,-10,-9v0,-7,3,-10,10,-10xm212,-61v0,7,-3,10,-10,10v-6,0,-9,-3,-9,-10v0,-7,3,-10,9,-10v7,0,10,3,10,10xm193,-32v0,7,-3,10,-10,10v-6,0,-10,-3,-10,-10v0,-7,3,-10,10,-10v6,0,10,3,10,10xm163,-12v0,6,-2,10,-9,10v-6,0,-10,-3,-10,-10v0,-7,4,-10,10,-10v7,0,9,3,9,10xm129,-5v0,7,-3,9,-10,9v-6,0,-9,-2,-9,-9v0,-7,3,-10,9,-10v7,0,10,3,10,10xm85,-2v-6,0,-10,-3,-10,-10v0,-7,4,-10,10,-10v7,0,10,4,10,10v0,7,-3,10,-10,10xm56,-22v-7,0,-10,-3,-10,-10v0,-6,4,-9,10,-9v7,0,9,3,9,9v0,7,-3,10,-9,10xm36,-51v-6,0,-10,-3,-10,-10v0,-7,4,-10,10,-10v7,0,10,3,10,10v0,7,-3,10,-10,10","w":238},"\uf821":{"d":"0,-248r0,-36r36,0r0,36r-36,0xm0,-176r0,-36r36,0r0,36r-36,0xm0,-104r0,-36r36,0r0,36r-36,0xm0,-32r0,-36r36,0r0,36r-36,0xm0,40r0,-36r36,0r0,36r-36,0xm72,-248r0,-36r36,0r0,36r-36,0xm72,-176r0,-36r36,0r0,36r-36,0xm72,-104r0,-36r36,0r0,36r-36,0xm72,-32r0,-36r36,0r0,36r-36,0xm72,40r0,-36r36,0r0,36r-36,0xm144,-248r0,-36r36,0r0,36r-36,0xm144,-176r0,-36r36,0r0,36r-36,0xm144,-104r0,-36r36,0r0,36r-36,0xm144,-32r0,-36r36,0r0,36r-36,0xm144,40r0,-36r36,0r0,36r-36,0xm216,-248r0,-36r36,0r0,36r-36,0xm216,-176r0,-36r36,0r0,36r-36,0xm216,-104r0,-36r36,0r0,36r-36,0xm216,-32r0,-36r36,0r0,36r-36,0xm216,40r0,-36r36,0r0,36r-36,0xm288,-248r0,-36r36,0r0,36r-36,0xm288,-176r0,-36r36,0r0,36r-36,0xm288,-104r0,-36r36,0r0,36r-36,0xm288,-32r0,-36r36,0r0,36r-36,0xm288,40r0,-36r36,0r0,36r-36,0","w":360},"\uf822":{"d":"0,-248r0,-36r36,0r0,36r-36,0xm0,-176r0,-36r36,0r0,36r-36,0xm0,-104r0,-36r36,0r0,36r-36,0xm0,-32r0,-36r36,0r0,36r-36,0xm0,40r0,-36r36,0r0,36r-36,0xm72,-248r36,0r0,-36r-36,0r0,36xm72,-176r36,0r0,-36r-36,0r0,36xm72,-104r36,0r0,-36r-36,0r0,36xm72,-32r36,0r0,-36r-36,0r0,36xm72,40r36,0r0,-36r-36,0r0,36xm144,-248r36,0r0,-36r-36,0r0,36xm144,-176r36,0r0,-36r-36,0r0,36xm144,-104r36,0r0,-36r-36,0r0,36xm144,-32r36,0r0,-36r-36,0r0,36xm144,40r36,0r0,-36r-36,0r0,36xm216,-248r36,0r0,-36r-36,0r0,36xm216,-176r36,0r0,-36r-36,0r0,36xm216,-104r36,0r0,-36r-36,0r0,36xm216,-32r36,0r0,-36r-36,0r0,36xm216,40r36,0r0,-36r-36,0r0,36xm288,-248r36,0r0,-36r-36,0r0,36xm288,-176r36,0r0,-36r-36,0r0,36xm288,-104r36,0r0,-36r-36,0r0,36xm288,-32r36,0r0,-36r-36,0r0,36xm288,40r36,0r0,-36r-36,0r0,36xm36,-212r36,0r0,-36r-36,0r0,36xm36,-140r36,0r0,-36r-36,0r0,36xm36,-68r36,0r0,-36r-36,0r0,36xm36,4r36,0r0,-36r-36,0r0,36xm36,76r0,-36r36,0r0,36r-36,0xm108,-212r36,0r0,-36r-36,0r0,36xm108,-140r36,0r0,-36r-36,0r0,36xm108,-68r36,0r0,-36r-36,0r0,36xm108,4r36,0r0,-36r-36,0r0,36xm108,76r0,-36r36,0r0,36r-36,0xm180,-212r36,0r0,-36r-36,0r0,36xm180,-140r36,0r0,-36r-36,0r0,36xm180,-68r36,0r0,-36r-36,0r0,36xm180,4r36,0r0,-36r-36,0r0,36xm180,76r0,-36r36,0r0,36r-36,0xm252,-212r36,0r0,-36r-36,0r0,36xm252,-140r36,0r0,-36r-36,0r0,36xm252,-68r36,0r0,-36r-36,0r0,36xm252,4r36,0r0,-36r-36,0r0,36xm252,76r0,-36r36,0r0,36r-36,0xm324,-212r36,0r0,-36r-36,0r0,36xm324,-140r36,0r0,-36r-36,0r0,36xm324,-68r36,0r0,-36r-36,0r0,36xm324,4r36,0r0,-36r-36,0r0,36xm324,76r0,-36r36,0r0,36r-36,0","w":360},"\uf823":{"d":"180,-140r36,0r0,-36r-36,0r0,36xm180,-68r36,0r0,-36r-36,0r0,36xm180,4r36,0r0,-36r-36,0r0,36xm180,-212r36,0r0,-36r-36,0r0,36xm36,-212r36,0r0,-36r-36,0r0,36xm36,-140r36,0r0,-36r-36,0r0,36xm36,-68r36,0r0,-36r-36,0r0,36xm36,4r36,0r0,-36r-36,0r0,36xm108,-212r36,0r0,-36r-36,0r0,36xm108,-140r36,0r0,-36r-36,0r0,36xm108,-68r36,0r0,-36r-36,0r0,36xm108,4r36,0r0,-36r-36,0r0,36xm0,76r0,-360r360,0r0,36r-36,0r0,36r36,0r0,36r-36,0r0,36r36,0r0,36r-36,0r0,36r36,0r0,36r-36,0r0,36r36,0r0,36r-36,0r0,36r-36,0r0,-36r-36,0r0,36r-36,0r0,-36r-36,0r0,36r-36,0r0,-36r-36,0r0,36r-36,0r0,-36r-36,0r0,36r-36,0xm252,-212r36,0r0,-36r-36,0r0,36xm252,-140r36,0r0,-36r-36,0r0,36xm252,-68r36,0r0,-36r-36,0r0,36xm252,4r36,0r0,-36r-36,0r0,36","w":360},"\ufb1e":{"d":"186,-295v0,47,-64,67,-98,38v-11,-9,-17,-22,-19,-38r22,0v3,34,71,35,74,0r21,0","w":0},"\ufb01":{"d":"143,-249v-37,-11,-71,-15,-67,32r0,26r121,0r0,191r-34,0r0,-165r-87,0r0,165r-35,0r0,-165r-27,0r0,-26r27,0v-9,-73,35,-107,102,-85r0,27xm163,-226r0,-34r34,0r0,34r-34,0","w":232},"\ufb02":{"d":"164,-248v-44,-10,-88,-19,-87,30r0,27r48,0r0,26r-48,0r0,165r-35,0r0,-165r-28,0r0,-26r28,0v-8,-80,41,-103,119,-87r37,0r0,278r-34,0r0,-248","w":233},"\u017f":{"d":"143,-249v-37,-11,-67,-15,-67,32r0,217r-35,0r0,-165r-27,0r0,-26r27,0v-9,-73,35,-107,102,-85r0,27","w":125},"\u01fa":{"d":"3,0r103,-260r37,0r101,260r-40,0r-28,-72r-110,0r-29,72r-34,0xm77,-99r88,0r-44,-113xm98,-356r43,-56r40,0r-57,56r-26,0xm164,-300v0,21,-18,39,-39,39v-22,0,-40,-17,-40,-39v0,-22,18,-40,40,-40v22,0,39,18,39,40xm100,-300v0,13,12,24,25,24v13,0,24,-11,24,-24v0,-13,-11,-25,-24,-25v-14,0,-25,11,-25,25","w":248},"\u01fb":{"d":"35,-181v53,-23,128,-24,128,45r0,87v1,23,6,31,25,29r2,19v-25,10,-52,6,-57,-23v-39,44,-115,36,-115,-24v0,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm73,-310r43,-56r40,0r-57,56r-26,0xm139,-252v0,21,-18,39,-39,39v-22,0,-40,-17,-40,-39v0,-22,18,-40,40,-40v22,0,39,18,39,40xm75,-252v0,13,12,24,25,24v13,0,24,-11,24,-24v0,-13,-11,-25,-24,-25v-14,0,-25,11,-25,25","w":198},"\u01fc":{"d":"3,0r152,-260r155,0r0,27r-109,0r0,84r91,0r0,27r-91,0r0,94r117,0r0,28r-154,0r0,-73r-85,0r-42,73r-34,0xm95,-100r69,0r0,-118xm175,-282r43,-56r40,0r-57,56r-26,0","w":326},"\u01fd":{"d":"18,-48v1,-52,51,-66,110,-65v2,-33,-2,-58,-35,-56v-18,0,-37,6,-58,17r0,-29v42,-17,91,-23,119,7v56,-47,136,-14,127,84r-118,0v2,70,61,80,118,56r0,27v-56,18,-111,17,-139,-27v-22,26,-45,38,-69,38v-32,0,-55,-22,-55,-52xm53,-54v0,38,49,37,75,11r0,-49v-35,-4,-75,7,-75,38xm164,-114r80,0v0,-37,-13,-55,-38,-55v-25,0,-39,18,-42,55xm128,-226r43,-56r40,0r-57,56r-26,0","w":306},"\u01fe":{"d":"193,-219v-61,-51,-136,2,-136,89v0,27,5,50,15,69xm87,-41v60,51,135,-2,135,-89v0,-28,-4,-50,-14,-69xm230,-228v66,77,26,235,-90,235v-29,0,-52,-8,-72,-23r-17,23r-31,0r30,-39v-66,-77,-28,-235,90,-235v28,0,51,7,72,22r17,-22r31,0xm113,-282r43,-56r40,0r-57,56r-26,0","w":279},"\u01ff":{"d":"179,-166v47,59,19,170,-68,170v-20,0,-39,-5,-54,-15r-11,15r-26,0r22,-29v-47,-58,-18,-170,69,-170v21,0,38,5,53,15r12,-15r26,0xm76,-34v41,33,89,-5,89,-61v0,-16,-3,-30,-8,-43xm145,-156v-41,-34,-89,4,-89,60v0,17,3,32,8,44xm84,-226r43,-56r40,0r-57,56r-26,0","w":221},"\u1e80":{"d":"67,0r-67,-260r36,0r53,205r49,-205r36,0r46,203r57,-203r30,0r-73,260r-36,0r-46,-201r-48,201r-37,0xm174,-282r-26,0r-57,-56r41,0","w":307},"\u1e81":{"d":"57,0r-55,-191r34,0r42,148r45,-148r35,0r39,148r48,-148r30,0r-62,191r-35,0r-41,-148r-45,148r-35,0xm158,-226r-26,0r-57,-56r41,0","w":277},"\u1e82":{"d":"67,0r-67,-260r36,0r53,205r49,-205r36,0r46,203r57,-203r30,0r-73,260r-36,0r-46,-201r-48,201r-37,0xm138,-282r43,-56r40,0r-57,56r-26,0","w":307},"\u1e83":{"d":"57,0r-55,-191r34,0r42,148r45,-148r35,0r39,148r48,-148r30,0r-62,191r-35,0r-41,-148r-45,148r-35,0xm123,-226r43,-56r40,0r-57,56r-26,0","w":277},"\u1e84":{"d":"67,0r-67,-260r36,0r53,205r49,-205r36,0r46,203r57,-203r30,0r-73,260r-36,0r-46,-201r-48,201r-37,0xm106,-282r0,-30r30,0r0,30r-30,0xm175,-282r0,-30r30,0r0,30r-30,0","w":307},"\u1e85":{"d":"57,0r-55,-191r34,0r42,148r45,-148r35,0r39,148r48,-148r30,0r-62,191r-35,0r-41,-148r-45,148r-35,0xm91,-226r0,-30r30,0r0,30r-30,0xm160,-226r0,-30r30,0r0,30r-30,0","w":277},"\u1ef2":{"d":"90,0r0,-109r-87,-151r42,0r68,117r72,-117r35,0r-93,151r0,109r-37,0xm139,-282r-26,0r-57,-56r41,0","w":224},"\u1ef3":{"d":"46,69r31,-69r-74,-191r37,0r55,144r58,-144r33,0r-104,260r-36,0xm121,-226r-26,0r-57,-56r41,0","w":188},"\u215b":{"d":"44,-104r0,-139r-26,0r0,-15r52,-4r0,158r-26,0xm18,7r191,-274r24,0r-192,274r-23,0xm203,4v-57,0,-73,-66,-23,-88v-40,-23,-21,-76,27,-76v51,0,59,53,18,75v56,21,36,89,-22,89xm211,-93v25,-14,25,-49,-7,-50v-16,0,-24,6,-24,19v0,9,11,20,31,31xm205,-14v37,0,37,-39,3,-53r-14,-8v-30,17,-25,61,11,61","w":288},"\u215c":{"d":"18,-127v30,14,66,14,69,-19v2,-24,-22,-34,-55,-32r0,-17v30,2,52,-8,51,-29v-1,-29,-41,-27,-63,-14r0,-20v34,-12,89,-8,89,31v0,18,-11,31,-33,39v26,6,38,20,38,42v0,45,-53,53,-96,41r0,-22xm34,7r191,-274r24,0r-192,274r-23,0xm215,4v-57,0,-73,-66,-23,-88v-40,-23,-21,-76,27,-76v51,0,59,53,18,75v56,21,36,89,-22,89xm223,-93v25,-14,25,-49,-7,-50v-16,0,-24,6,-24,19v0,9,11,20,31,31xm217,-14v37,0,37,-39,3,-53r-14,-8v-30,17,-25,61,11,61","w":288},"\u215d":{"d":"108,-149v0,42,-46,57,-90,45r0,-21v28,14,62,9,62,-24v0,-27,-27,-39,-60,-34r0,-77r85,0r0,21r-64,0r0,38v38,0,66,17,67,52xm30,7r191,-274r24,0r-192,274r-23,0xm215,4v-57,0,-73,-66,-23,-88v-40,-23,-21,-76,27,-76v51,0,59,53,18,75v56,21,36,89,-22,89xm223,-93v25,-14,25,-49,-7,-50v-16,0,-24,6,-24,19v0,9,11,20,31,31xm217,-14v37,0,37,-39,3,-53r-14,-8v-30,17,-25,61,11,61","w":288},"\u215e":{"d":"26,-104v8,-54,49,-90,72,-134r-80,0r0,-22r103,0r0,22v-41,56,-63,101,-66,134r-29,0xm18,7r191,-274r24,0r-192,274r-23,0xm215,4v-57,0,-73,-66,-23,-88v-40,-23,-21,-76,27,-76v51,0,59,53,18,75v56,21,36,89,-22,89xm223,-93v25,-14,25,-49,-7,-50v-16,0,-24,6,-24,19v0,9,11,20,31,31xm217,-14v37,0,37,-39,3,-53r-14,-8v-30,17,-25,61,11,61","w":288},"\u2302":{"d":"282,0r-260,0r0,-130r130,-130r130,130r0,130xm256,-26r0,-94r-104,-103r-104,103r0,94r208,0","w":303},"\u2320":{"d":"124,-284v31,0,37,34,12,38v-11,1,-19,-10,-13,-20v-12,-3,-17,3,-23,15v-12,63,-5,238,-7,327r-34,0v2,-94,-8,-262,14,-318v11,-28,29,-42,51,-42","w":151},"\u2321":{"d":"27,76v-31,0,-36,-35,-11,-38v11,0,16,9,13,20v12,3,18,-3,23,-15v12,-64,5,-237,7,-327r34,0v-2,95,7,262,-15,318v-12,28,-29,42,-51,42","w":151},"\u263a":{"d":"288,-130v0,73,-63,137,-136,137v-74,0,-137,-63,-137,-137v0,-74,63,-137,137,-137v73,0,136,64,136,137xm41,-130v0,60,51,110,111,110v59,0,110,-51,110,-110v0,-60,-51,-111,-110,-111v-59,0,-111,51,-111,111xm236,-123v-2,69,-89,110,-141,60v-15,-15,-24,-35,-28,-60r20,0v9,35,30,54,65,54v35,0,56,-19,65,-54r19,0xm130,-173v0,12,-10,21,-22,21v-12,0,-21,-9,-21,-21v0,-12,9,-22,21,-22v12,0,23,9,22,22xm217,-173v0,11,-10,21,-22,21v-12,0,-22,-10,-22,-21v0,-12,10,-22,22,-22v12,0,22,10,22,22","w":303},"\u263b":{"d":"288,-130v0,73,-63,137,-136,137v-74,0,-137,-63,-137,-137v0,-74,63,-137,137,-137v73,0,136,64,136,137xm67,-123v2,69,89,110,141,60v15,-15,24,-35,28,-60r-19,0v-9,35,-30,54,-65,54v-35,0,-56,-19,-65,-54r-20,0xm87,-173v0,12,9,21,21,21v12,0,22,-9,22,-21v0,-12,-9,-23,-22,-22v-12,0,-21,10,-21,22xm173,-173v0,11,10,21,22,21v12,0,22,-10,22,-21v0,-12,-10,-22,-22,-22v-12,0,-22,10,-22,22","w":303},"\u263c":{"d":"123,4r0,-44v-14,-2,-29,-8,-42,-17r-31,31r-19,-18r32,-31v-9,-12,-15,-27,-18,-42r-44,0r0,-26r44,0v3,-15,9,-30,18,-42r-32,-31r19,-18r31,31v13,-9,28,-15,42,-17r0,-45r26,0r0,45v14,2,28,8,41,17r31,-31r18,18r-31,31v9,12,15,27,18,42r44,0r0,26r-44,0v-3,15,-9,30,-18,42r31,31r-18,18r-31,-31v-13,9,-27,15,-41,17r0,44r-26,0xm70,-130v0,35,31,65,66,65v35,0,65,-31,65,-65v0,-34,-31,-65,-65,-65v-35,0,-66,30,-66,65","w":271},"\u2640":{"d":"269,-165v0,62,-46,111,-104,116r0,49r79,0r0,26r-79,0r0,43r-26,0r0,-43r-79,0r0,-26r79,0r0,-49v-59,-5,-104,-54,-104,-116v0,-63,54,-117,117,-117v63,0,117,55,117,117xm61,-165v0,49,42,91,91,91v49,0,91,-43,91,-91v0,-48,-43,-91,-91,-91v-48,0,-91,42,-91,91","w":303},"\u2642":{"d":"7,-111v0,-93,117,-155,191,-90r55,-55r-66,0r0,-26r112,0r0,109r-26,0r0,-66r-56,56v61,78,-3,190,-94,190v-62,0,-116,-55,-116,-118xm124,-202v-48,0,-91,42,-91,91v0,49,42,91,91,91v49,0,91,-43,91,-91v0,-48,-43,-91,-91,-91","w":303},"\u2660":{"d":"272,-144v26,37,-2,91,-48,91v-23,0,-45,-13,-64,-38r20,91r-56,0r19,-91v-19,25,-40,38,-63,38v-46,0,-75,-54,-48,-91v28,-38,93,-71,120,-116v27,47,92,76,120,116","w":303},"\u2663":{"d":"282,-106v0,47,-58,75,-93,44v-10,-9,-20,-23,-28,-43r17,105r-52,0r16,-105v-14,33,-26,54,-65,56v-31,1,-55,-26,-55,-56v0,-44,40,-71,84,-56v-27,-43,-2,-99,46,-99v47,0,71,56,46,99v44,-14,84,12,84,55","w":303},"\u2665":{"d":"152,-221v35,-69,133,-38,130,39v-3,68,-79,150,-130,182v-52,-32,-128,-112,-130,-182v-3,-77,94,-108,130,-39","w":303},"\u2666":{"d":"282,-130v-52,35,-95,79,-130,130v-35,-52,-78,-95,-130,-130v52,-35,95,-78,130,-130v35,52,78,95,130,130","w":303},"\u266a":{"d":"21,-17v0,-30,41,-49,72,-36r0,-207r17,0v-8,42,92,79,89,120v0,12,-6,26,-19,42r-12,-10v35,-46,-36,-65,-58,-94v-4,84,23,209,-60,209v-15,0,-29,-9,-29,-24","w":227},"\u266b":{"d":"118,-32v0,-28,40,-48,71,-35r0,-152r-91,44v-6,87,27,224,-58,227v-16,1,-31,-10,-31,-25v1,-28,42,-48,72,-35r0,-198r126,-61r0,178v3,51,-19,77,-59,80v-17,1,-30,-8,-30,-23","w":227},"\ufeff":{"w":0},"\u20ac":{"d":"131,-239v-43,0,-64,36,-71,74r108,0r-6,26r-104,0r0,18r101,0r-5,26r-93,1v9,71,91,95,146,45r0,31v-23,15,-39,25,-74,25v-67,-1,-101,-47,-112,-102r-26,0r5,-26r18,0v1,-6,-1,-14,1,-18r-24,0r5,-26v6,-1,16,2,21,-1v10,-86,98,-126,186,-85r0,35v-27,-12,-44,-23,-76,-23","w":227}}});
