欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.NET下为百度文本编辑器UEditor增加图片删除功能示例

程序员文章站 2024-03-01 16:13:10
百度的这个编辑器,的确挺好,但也有些,让人不如意的,如每次更新,本来有功能给搞没了,旧版本的代码又不能直接拿过来组合用,对用户来很是不爽。今天下载了目前最新版1.2.5为版...
百度的这个编辑器,的确挺好,但也有些,让人不如意的,如每次更新,本来有功能给搞没了,旧版本的代码又不能直接拿过来组合用,对用户来很是不爽。今天下载了目前最新版1.2.5为版本看更新记录,主要是对表格做个修改,我下载用上,我靠,上传图片的删除功能给取消了。把旧版本的删除代码拿过来,不好使,还得我慢慢研究,闹心啊,闹心,折磨我半天。

1、首先修改服务器端ueditor\net下的文件imagemanager.ashx,增加图片删除的处理。如下代码的add部分所示:
复制代码 代码如下:

<%@ webhandler language="c#" class="imagemanager" %>
/**
* created by visual studio2010
* user: xuheng
* date: 12-3-7
* time: 下午16:29
* to change this template use file | settings | file templates.
*/
using system;
using system.web;
using system.io;
using system.text.regularexpressions;
public class imagemanager : ihttphandler
{
public void processrequest(httpcontext context)
{
context.response.contenttype = "text/plain";

string[] paths = { "upload", "upload1" }; //需要遍历的目录列表,最好使用缩略图地址,否则当网速慢时可能会造成严重的延时
string[] filetype = { ".gif", ".png", ".jpg", ".jpeg", ".bmp" }; //文件允许格式
string action = context.server.htmlencode(context.request["action"]);
if (action == "get")
{
string str = string.empty;
foreach (string path in paths)
{
directoryinfo info = new directoryinfo(context.server.mappath(path));
//目录验证
if (info.exists)
{
directoryinfo[] infoarr = info.getdirectories();
foreach (directoryinfo tmpinfo in infoarr)
{
foreach (fileinfo fi in tmpinfo.getfiles())
{
if (array.indexof(filetype, fi.extension) != -1)
{
str += path+"/" + tmpinfo.name + "/" + fi.name + "ue_separate_ue";
}
}
}
}
}
context.response.write(str);
}
//add start========================================================== 2013-05-12
//删除选中的文件
string pathdel = string.empty; //最好使用缩略图地址,否则当网速慢时可能会造成严重的延时
string filename = context.server.htmlencode(context.request["filename"]);
bool isdeleted = false;
if (action == "del")
{
try
{
string fullpath = string.empty;
foreach (string path in paths)
{
pathdel = context.server.mappath(path);
directoryinfo info = new directoryinfo(pathdel);
//目录验证
if (info.exists)
{
//获得c:\...\ueditor\net\upload目录下,以时间命名的目录。如:2013-05-12
directoryinfo[] infoarr = info.getdirectories();
foreach (directoryinfo tmpinfo in infoarr)
{
foreach (fileinfo fi in tmpinfo.getfiles())
{
//判断是否是指定的图片类型,因为长传的附件和图片在同一个目录
if (array.indexof(filetype, fi.extension) != -1)
{
if (fi.name.equals(filename))
{
fullpath = pathdel + "/" + tmpinfo.name + "/"+ filename;
file.delete(fullpath);
isdeleted = true;
break;
}
}
}
//已经删除,往外跳出
if (isdeleted == true)
break;
}
}
//已经删除,往外跳出
if (isdeleted == true)
break;
}
isdeleted = false;
context.response.write("success");
}
catch
{
context.response.write("error");
}
}
//add end============================================================ 2013-05-12
}
public bool isreusable
{
get
{
return false;
}
}
}

2、修改脚本ueditor\dialogs\image下的image.js文件。增加图片删除的处理的ajax调用。如下的add部分所示:
复制代码 代码如下:

/**
* created by jetbrains phpstorm.
* user: taoqili
* date: 12-01-08
* time: 下午2:52
* to change this template use file | settings | file templates.
*/
var imageuploader = {},
flashobj = null,
postconfig=[];
(function () {
var g = $g,
ajax = parent.baidu.editor.ajax,
maskiframe = g("maskiframe"); //tab遮罩层,用来解决flash和其他dom元素的z-index层级不一致问题
// flashobj; //flash上传对象
var flagimg = null, flashcontainer;
imageuploader.init = function (opt, callbacks) {
switchtab("imagetab");
createalignbutton(["remotefloat", "localfloat"]);
createflash(opt, callbacks);
var srcimg = editor.selection.getrange().getclosednode();
if (srcimg) {
showimageinfo(srcimg);
showpreviewimage(srcimg, true);
var tabelements = g("imagetab").children,
tabheads = tabelements[0].children,
tabbodys = tabelements[1].children;
for (var i = 0, ci; ci = tabheads[i++];) {
if (ci.getattribute("tabsrc") == "remote") {
clickhandler(tabheads, tabbodys, ci);
}
}
}
addurlchangelistener();
addoklistener();
addscrolllistener();
addsearchlistener();
$focus(g("url"));
};
imageuploader.setpostparams = function(obj,index){
if(index===undefined){
utils.each(postconfig,function(config){
config.data = obj;
})
}else{
postconfig[index].data = obj;
}
};
function insertimage(imgobjs) {
editor.fireevent('beforeinsertimage', imgobjs);
editor.execcommand("insertimage", imgobjs);
}
function searchimage() {
var imgsearchinput = $g("imgsearchtxt");
if (!imgsearchinput.getattribute("hasclick") || !imgsearchinput.value) {
selecttxt(imgsearchinput);
return;
}
g("searchlist").innerhtml = "<p class='msg'>" + lang.imageloading + "</p>";
var key = imgsearchinput.value,
type = $g("imgtype").value,
url = "http://image.baidu.com/i?ct=201326592&cl=2&lm=-1&st=-1&tn=baiduimagejson&istype=2&rn=32&fm=index&pv=&word=" + encodetogb2312(key) + type + "&" + +new date;
var reqcallback = function (data) {
try {
var imgobjs = data.data;
} catch (e) {
return;
}
var frg = document.createdocumentfragment();
if (imgobjs.length < 2) {
g("searchlist").innerhtml = "<p class='msg'>" + lang.tryagain + "</p>";
return;
}
for (var i = 0, len = imgobjs.length; i < len - 1; i++) {
var img = document.createelement("img"), obj = imgobjs[i], div = document.createelement("div");
img.src = obj.objurl; //obj.thumburl 为缩略图,只能针对百度内部使用
img.setattribute("sourceurl", obj.objurl);
var title = obj.frompagetitleenc.replace(/^\.\.\./i, "");
img.setattribute("title", lang.toggleselect + obj.width + "x" + obj.height);
img.onclick = function () {
changeselected(this);
};
scale(img, 100, obj.width, obj.height);
div.appendchild(img);
var p = document.createelement("p");
p.innerhtml = "<a target='_blank' href='" + obj.fromurl + "'>" + title + "</a>";
div.appendchild(p);
//settimeout(function(){
frg.appendchild(div);
//},0);
}
g("searchlist").innerhtml = "";
g("searchlist").appendchild(frg);
};
baidu.sio.callbyserver(url, reqcallback, {charset:"gb18030"});
}
function selecttxt(node) {
if (node.select) {
node.select();
} else {
var r = node.createtextrange && node.createtextrange();
r.select();
}
}
function addsearchlistener() {
g("imgsearchtxt").onclick = function () {
selecttxt(this);
this.setattribute("hasclick", true);
if (this.value == lang.searchinitinfo) {
this.value = "";
}
};
g("imgsearchtxt").onkeyup = function () {
this.setattribute("hasclick", true);
//只触发一次
this.onkeyup = null;
};
g("imgsearchbtn").onclick = function () {
searchimage();
};
g("imgsearchreset").onclick = function () {
var txt = g("imgsearchtxt");
txt.value = "";
txt.focus();
g("searchlist").innerhtml = "";
};
g("imgtype").onchange = function () {
searchimage();
};
domutils.on(g("imgsearchtxt"), "keyup", function (evt) {
if (evt.keycode == 13) {
searchimage();
}
})
}
/**
* 延迟加载
*/
function addscrolllistener() {
g("imagelist").onscroll = function () {
var imgs = this.getelementsbytagname("img"),
top = math.ceil(this.scrolltop / 100) - 1;
top = top < 0 ? 0 : top;
for (var i = top * 5; i < (top + 5) * 5; i++) {
var img = imgs[i];
if (img && !img.getattribute("src")) {
img.src = img.getattribute("lazy_src");
img.removeattribute("lazy_src");
}
}
}
}
/**
* 绑定确认按钮
*/
function addoklistener() {
dialog.onok = function () {
var currenttab = findfocus("tabheads", "tabsrc");
switch (currenttab) {
case "remote":
return insertsingle();
break;
case "local":
return insertbatch();
break;
case "imgmanager":
return insertsearch("imagelist");
break;
case "imgsearch":
return insertsearch("searchlist", true);
break;
}
};
dialog.oncancel = function () {
hideflash();
}
}
function hideflash() {
flashobj = null;
flashcontainer.innerhtml = "";
}
/**
* 将元素id下的所有图片文件插入到编辑器中。
* @param id
* @param catchremote 是否需要替换远程图片
*/
function insertsearch(id, catchremote) {
var imgs = $g(id).getelementsbytagname("img"), imgobjs = [];
for (var i = 0, ci; ci = imgs[i++];) {
if (ci.getattribute("selected")) {
var url = ci.getattribute("src", 2).replace(/(\s*$)/g, ""), img = {};
img.src = url;
img.data_ue_src = url;
imgobjs.push(img);
}
}
insertimage(imgobjs);
catchremote && editor.fireevent("catchremoteimage");
hideflash();
}
/**
* 插入单张图片
*/
function insertsingle() {
var url = g("url"),
width = g("width"),
height = g("height"),
border = g("border"),
vhspace = g("vhspace"),
title = g("title"),
align = findfocus("remotefloat", "name"),
imgobj = {};
if (!url.value) return;
if (!flagimg) return; //粘贴地址后如果没有生成对应的预览图,可以认为本次粘贴地址失败
if (!checknum([width, height, border, vhspace])) return false;
imgobj.src = url.value;
imgobj.data_ue_src = url.value;
imgobj.width = width.value;
imgobj.height = height.value;
imgobj.border = border.value;
imgobj.floatstyle = align;
imgobj.vspace = imgobj.hspace = vhspace.value;
imgobj.title = title.value;
imgobj.style = "width:" + width.value + "px;height:" + height.value + "px;";
insertimage(imgobj);
editor.fireevent("catchremoteimage");
hideflash();
}
/**
* 检测传入的所有input框中输入的长宽是否是正数
* @param nodes input框集合,
*/
function checknum(nodes) {
for (var i = 0, ci; ci = nodes[i++];) {
if (!isnumber(ci.value) || ci.value < 0) {
alert(lang.numerror);
ci.value = "";
ci.focus();
return false;
}
}
return true;
}
/**
* 数字判断
* @param value
*/
function isnumber(value) {
return /(0|^[1-9]\d*$)/.test(value);
}
/**
* 插入多张图片
*/
function insertbatch() {
if (imageurls.length < 1) return;
var imgobjs = [],
align = findfocus("localfloat", "name");
for (var i = 0, ci; ci = imageurls[i++];) {
var tmpobj = {};
tmpobj.title = ci.title;
tmpobj.floatstyle = align;
//修正显示时候的地址数据,如果后台返回的是图片的绝对地址,那么此处无需修正
tmpobj.data_ue_src = tmpobj.src = editor.options.imagepath + ci.url;
imgobjs.push(tmpobj);
}
insertimage(imgobjs);
hideflash();
}
/**
* 找到id下具有focus类的节点并返回该节点下的某个属性
* @param id
* @param returnproperty
*/
function findfocus(id, returnproperty) {
var tabs = g(id).children,
property;
for (var i = 0, ci; ci = tabs[i++];) {
if (ci.classname == "focus") {
property = ci.getattribute(returnproperty);
break;
}
}
return property;
}
/**
* 绑定地址框改变事件
*/
function addurlchangelistener() {
var value = g("url").value;
if (browser.ie) {
g("url").onpropertychange = function () {
var v = this.value;
if (v != value) {
createpreviewimage(v);
value = v;
}
};
} else {
g("url").addeventlistener("input", function () {
var v = this.value;
if (v != value) {
createpreviewimage(v);
value = v;
}
}, false);
}
}
/**
* 绑定图片等比缩放事件
* @param percent 缩放比例
*/
function addsizechangelistener(percent) {
var width = g("width"),
height = g("height"),
lock = g('lock');
width.onkeyup = function () {
if (!isnan(this.value) && lock.checked) {
height.value = math.round(this.value / percent) || this.value;
}
};
height.onkeyup = function () {
if (!isnan(this.value) && lock.checked) {
width.value = math.round(this.value * percent) || this.value;
}
}
}
/**
* 依据url中的地址创建一个预览图片并将对应的信息填入信息框和预览框
*/
function createpreviewimage(url) {
if (!url) {
flagimg = null;
g("preview").innerhtml = "";
g("width").value = "";
g("height").value = "";
g("border").value = "";
g("vhspace").value = "";
g("title").value = "";
$focus(g("url"));
return;
}
var img = document.createelement("img"),
preview = g("preview");
var imgtypereg = /\.(png|gif|jpg|jpeg)$/gi, //格式过滤
urlfilter = ""; //地址过滤
if (!imgtypereg.test(url) || url.indexof(urlfilter) == -1) {
preview.innerhtml = "<span style='color: red'>" + lang.imageurlerror + "</span>";
flagimg = null;
return;
}
preview.innerhtml = lang.imageloading;
img.onload = function () {
flagimg = this;
showimageinfo(this);
showpreviewimage(this,true);
this.onload = null;
};
img.onerror = function () {
preview.innerhtml = "<span style='color: red'>" + lang.imageloaderror + "</span>";
flagimg = null;
this.onerror = null;
};
img.src = url;
}
/**
* 显示图片对象的信息
* @param img
*/
function showimageinfo(img) {
if (!img.getattribute("src") || !img.src) return;
var wordimgflag = img.getattribute("word_img");
g("url").value = wordimgflag ? wordimgflag.replace("&", "&") : (img.getattribute('data_ue_src') || img.getattribute("src", 2).replace("&", "&"));
g("width").value = img.width || 0;
g("height").value = img.height || 0;
g("border").value = img.getattribute("border") || 0;
g("vhspace").value = img.getattribute("vspace") || 0;
g("title").value = img.title || "";
var align = editor.querycommandvalue("imagefloat") || "none";
updatealignbutton(align);
//保存原始比例,用于等比缩放
var percent = (img.width / img.height).tofixed(2);
addsizechangelistener(percent);
}
/**
* 将img显示在预览框,
* @param img
* @param needclone 是否需要克隆后显示
*/
function showpreviewimage(img, needclone) {
var tmpwidth = img.width, tmpheight = img.height;
var maxwidth = 262,maxheight = 262,
target = scaling(tmpwidth,tmpheight,maxwidth,maxheight);
target.border = img.border||0;
target.src = img.src;
flagimg = true;
if ((target.width + 2 * target.border) > maxwidth) {
target.width = maxwidth - 2 * target.border;
}
if ((target.height + 2 * target.border) > maxwidth) {
target.height = maxwidth - 2 * target.border;
}
var preview = g("preview");
preview.innerhtml = '<img src="' + target.src + '" width="' + target.width + '" height="' + target.height + '" border="' + target.border + 'px solid #000" />';
}
/**
* 图片缩放
* @param img
* @param max
*/
function scale(img, max, owidth, oheight) {
var width = 0, height = 0, percent, ow = img.width || owidth, oh = img.height || oheight;
if (ow > max || oh > max) {
if (ow >= oh) {
if (width = ow - max) {
percent = (width / ow).tofixed(2);
img.height = oh - oh * percent;
img.width = max;
}
} else {
if (height = oh - max) {
percent = (height / oh).tofixed(2);
img.width = ow - ow * percent;
img.height = max;
}
}
}
}
function scaling(width,height,maxwidth,maxheight){
if(width<maxwidth && height<maxheight) return {width:width,height:height};
var srcratio = (width/height).tofixed(2),
tarratio = (maxwidth/maxheight).tofixed(2),
w,h;
if(srcratio<tarratio){
h = maxheight;
w = h*srcratio;
}else{
w = maxwidth;
h = w/srcratio;
}
return {width:w.tofixed(0),height:h.tofixed(0)}
}
/**
* 创建flash实例
* @param opt
* @param callbacks
*/
function createflash(opt, callbacks) {
var i18n = utils.extend({}, lang.flashi18n);
//处理图片资源地址的编码,补全等问题
for (var i in i18n) {
if (!(i in {"lang":1, "uploadingtf":1, "imagetf":1, "textencoding":1}) && i18n[i]) {
i18n[i] = encodeuricomponent(editor.options.langpath + editor.options.lang + "/images/" + i18n[i]);
}
}
opt = utils.extend(opt, i18n, false);
var option = {
createoptions:{
id:'flash',
url:opt.flashurl,
width:opt.width,
height:opt.height,
errormessage:lang.flasherror,
wmode:browser.safari ? 'transparent' : 'window',
ver:'10.0.0',
vars:opt,
container:opt.container
}
};
flashcontainer = $g(opt.container);
option = utils.extend(option, callbacks, false);
flashobj = new baidu.flash.imageuploader(option);
}
/**
* 依据传入的align值更新按钮信息
* @param align
*/
function updatealignbutton(align) {
var aligns = g("remotefloat").children;
for (var i = 0, ci; ci = aligns[i++];) {
if (ci.getattribute("name") == align) {
if (ci.classname != "focus") {
ci.classname = "focus";
}
} else {
if (ci.classname == "focus") {
ci.classname = "";
}
}
}
}
/**
* 创建图片浮动选择按钮
* @param ids
*/
function createalignbutton(ids) {
for (var i = 0, ci; ci = ids[i++];) {
var floatcontainer = g(ci),
namemaps = {"none":lang.floatdefault, "left":lang.floatleft, "right":lang.floatright, "center":lang.floatcenter};
for (var j in namemaps) {
var div = document.createelement("div");
div.setattribute("name", j);
if (j == "none") div.classname = "focus";
div.style.csstext = "background:url(images/" + j + "_focus.jpg);";
div.setattribute("title", namemaps[j]);
floatcontainer.appendchild(div);
}
switchselect(ci);
}
}
function toggleflash(show) {
if (flashcontainer && browser.webkit) {
flashcontainer.style.left = show ? "0" : "-10000px";
}
}
/**
* tab点击处理事件
* @param tabheads
* @param tabbodys
* @param obj
*/
function clickhandler(tabheads, tabbodys, obj) {
//head样式更改
for (var k = 0, len = tabheads.length; k < len; k++) {
tabheads[k].classname = "";
}
obj.classname = "focus";
//body显隐
var tabsrc = obj.getattribute("tabsrc");
for (var j = 0, length = tabbodys.length; j < length; j++) {
var body = tabbodys[j],
id = body.getattribute("id");
body.onclick = function () {
this.style.zoom = 1;
};
if (id != tabsrc) {
body.style.zindex = 1;
} else {
body.style.zindex = 200;
//当切换到本地图片上传时,隐藏遮罩用的iframe
if (id == "local") {
toggleflash(true);
maskiframe.style.display = "none";
//处理确定按钮的状态
if (selectedimagecount) {
dialog.buttons[0].setdisabled(true);
}
} else {
toggleflash(false);
maskiframe.style.display = "";
dialog.buttons[0].setdisabled(false);
}
var list = g("imagelist");
list.style.display = "none";
//切换到图片管理时,ajax请求后台图片列表
if (id == "imgmanager") {
list.style.display = "";
//已经初始化过时不再重复提交请求
if (!list.children.length) {
ajax.request(editor.options.imagemanagerurl, {
timeout:100000,
action:"get",
onsuccess:function (xhr) {
//去除空格
var tmp = utils.trim(xhr.responsetext),
imageurls = !tmp ? [] : tmp.split("ue_separate_ue"),
length = imageurls.length;
g("imagelist").innerhtml = !length ? "  " + lang.nouploadimage : "";
for (var k = 0, ci; ci = imageurls[k++];) {
var img = document.createelement("img");
var div = document.createelement("div");
div.appendchild(img);
div.style.display = "none";
g("imagelist").appendchild(div);
img.onclick = function () {
changeselected(this);
};
//add start=============================== 2013-05-12
img.ondblclick = function(){
var me = this,src = me.getattribute("src",2);
if(!confirm("删除操作不可恢复,您确认要删除本图片么?")) return;
ajax.request(editor.options.imagemanagerurl,{
action:"del",
filename:src.substr(src.lastindexof("/")+1),
onsuccess:function(xhr){
if(xhr.responsetext=="success") {
me.parentnode.removechild(me);
}else{
alert("服务器删除图片失败,请重试!");
}
},
onerror:function(xhr){
}
});
};
//add end================================ 2013-05-12
img.onload = function () {
this.parentnode.style.display = "";
var w = this.width, h = this.height;
scale(this, 100, 120, 80);
this.title = lang.toggleselect + w + "x" + h;
this.onload = null;
};
img.setattribute(k < 35 ? "src" : "lazy_src", editor.options.imagemanagerpath + ci.replace(/\s+|\s+/ig, ""));
img.setattribute("data_ue_src", editor.options.imagemanagerpath + ci.replace(/\s+|\s+/ig, ""));
}
},
onerror:function () {
g("imagelist").innerhtml = lang.imageloaderror;
}
});
}
}
if (id == "imgsearch") {
selecttxt(g("imgsearchtxt"));
}
if (id == "remote") {
$focus(g("url"));
}
}
}
}
/**
* tab切换
* @param tabparentid tab的父节点id或者对象本身
*/
function switchtab(tabparentid) {
var tabelements = g(tabparentid).children,
tabheads = tabelements[0].children,
tabbodys = tabelements[1].children;
for (var i = 0, length = tabheads.length; i < length; i++) {
var head = tabheads[i];
if (head.classname === "focus")clickhandler(tabheads, tabbodys, head);
head.onclick = function () {
clickhandler(tabheads, tabbodys, this);
}
}
}
/**
* 改变o的选中状态
* @param o
*/
function changeselected(o) {
if (o.getattribute("selected")) {
o.removeattribute("selected");
o.style.csstext = "filter:alpha(opacity=100);-moz-opacity:1;opacity: 1;border: 2px solid #fff";
} else {
o.setattribute("selected", "true");
o.style.csstext = "filter:alpha(opacity=50);-moz-opacity:0.5;opacity: 0.5;border:2px solid blue;";
}
}
/**
* 选择切换,传入一个container的id
* @param selectparentid
*/
function switchselect(selectparentid) {
var select = g(selectparentid),
children = select.children;
domutils.on(select, "click", function (evt) {
var tar = evt.srcelement || evt.target;
for (var j = 0, cj; cj = children[j++];) {
cj.classname = "";
cj.removeattribute && cj.removeattribute("class");
}
tar.classname = "focus";
});
}
/**
* gb2312编码
* @param str
*/
function encodetogb2312(str) {
var strout = "";
for (var i = 0; i < str.length; i++) {
var c = str.charat(i),
code = str.charcodeat(i);
if (c == " ") strout += "+";
else if (code >= 19968 && code <= 40869) {
var index = code - 19968;
strout += "%" + z.substr(index * 4, 2) + "%" + z.substr(index * 4 + 2, 2);
} else {
strout += "%" + str.charcodeat(i).tostring(16);
}
}
return strout;
}
var z = 'd2bbb6a18140c6df814181428143cdf2d5c9c8fdc9cfcfc2d8a2b2bbd3eb8144d8a4b3f38145d7a8c7d2d8a7cac08146c7f0b1fbd2b5b4d4b6abcbbfd8a9814781488149b6aa814ac1bdd1cf814bc9a5d8ad814cb8f6d1bee3dcd6d0814d814eb7e1814fb4ae8150c1d98151d8bc8152cde8b5a4ceaad6f78153c0f6bed9d8af815481558156c4cb8157bec38158d8b1c3b4d2e58159d6aecedad5a7baf5b7a6c0d6815ac6b9c5d2c7c7815bb9d4815cb3cbd2d2815d815ed8bfbec5c6f2d2b2cfb0cfe7815f816081618162cae981638164d8c081658166816781688169816ac2f2c2d2816bc8e9816c816d816e816f817081718172817381748175c7ac8176817781788179817a817b817cc1cb817dd3e8d5f9817ecac2b6fed8a1d3dabff78180d4c6bba5d8c1cee5beae81818182d8a88183d1c7d0a9818481858186d8bdd9efcdf6bfba8187bdbbbaa5d2e0b2fabae0c4b68188cfedbea9cda4c1c18189818a818bc7d7d9f1818cd9f4818d818e818f8190c8cbd8e9819181928193d2dacab2c8cad8ecd8ead8c6bdf6c6cdb3f08194d8ebbdf1bde98195c8d4b4d381968197c2d88198b2d6d7d0cacbcbfbd5ccb8b6cfc98199819a819bd9dad8f0c7aa819cd8ee819db4fac1eed2d4819e819fd8ed81a0d2c7d8efc3c781a181a281a3d1f681a4d6d9d8f281a5d8f5bcfebcdb81a681a781a8c8ce81a9b7dd81aab7c281abc6f381ac81ad81ae81af81b081b181b2d8f8d2c181b381b4cee9bcbfb7fcb7a5d0dd81b581b681b781b881b9d6dad3c5bbefbbe1d8f181ba81bbc9a1ceb0b4ab81bcd8f381bdc9cbd8f6c2d7d8f781be81bfceb1d8f981c081c181c2b2aeb9c081c3d9a381c4b0e981c5c1e681c6c9ec81c7cbc581c8cbc6d9a481c981ca81cb81cc81cdb5e881ce81cfb5ab81d081d181d281d381d481d5cebbb5cdd7a1d7f4d3d381d6cce581d7bace81d8d9a2d9dcd3e0d8fdb7f0d7f7d8fed8fad9a1c4e381d981dad3b6d8f4d9dd81dbd8fb81dcc5e581dd81dec0d081df81e0d1f0b0db81e181e2bcd1d9a681e3d9a581e481e581e681e7d9acd9ae81e8d9abcab981e981ea81ebd9a9d6b681ec81ed81eeb3ded9a881efc0fd81f0cacc81f1d9aa81f2d9a781f381f4d9b081f581f6b6b181f781f881f9b9a981fad2c081fb81fccfc081fd81fec2c28240bdc4d5ecb2e0c7c8bfebd9ad8241d9af8242ceeabaee82438244824582468247c7d682488249824a824b824c824d824e824f8250b1e3825182528253b4d9b6edd9b48254825582568257bfa182588259825ad9dec7cec0fed9b8825b825c825d825e825fcbd7b7fd8260d9b58261d9b7b1a3d3e1d9b98262d0c58263d9b682648265d9b18266d9b2c1a9d9b382678268bcf3d0deb8a98269bee3826ad9bd826b826c826d826ed9ba826fb0b3827082718272d9c28273827482758276827782788279827a827b827c827d827e8280d9c4b1b68281d9bf82828283b5b98284bef3828582868287ccc8baf2d2d08288d9c38289828abde8828bb3ab828c828d828ed9c5beeb828fd9c6d9bbc4df8290d9bed9c1d9c0829182928293829482958296829782988299829a829bd5ae829cd6b5829dc7e3829e829f82a082a1d9c882a282a382a4bcd9d9ca82a582a682a7d9bc82a8d9cbc6ab82a982aa82ab82ac82add9c982ae82af82b082b1d7f682b2cda382b382b482b582b682b782b882b982babda182bb82bc82bd82be82bf82c0d9cc82c182c282c382c482c582c682c782c882c9c5bccdb582ca82cb82ccd9cd82cd82ced9c7b3a5bffe82cf82d082d182d2b8b582d382d4c0fc82d582d682d782d8b0f882d982da82db82dc82dd82de82df82e082e182e282e382e482e582e682e782e882e982ea82eb82ec82edb4f682eed9ce82efd9cfb4a2d9d082f082f1b4df82f282f382f482f582f6b0c182f782f882f982fa82fb82fc82fdd9d1c9b582fe8340834183428343834483458346834783488349834a834b834c834d834e834f83508351cff1835283538354835583568357d9d283588359835ac1c5835b835c835d835e835f836083618362836383648365d9d6c9ae8366836783688369d9d5d9d4d9d7836a836b836c836dcbdb836ebda9836f8370837183728373c6a7837483758376837783788379837a837b837c837dd9d3d9d8837e83808381d9d9838283838384838583868387c8e583888389838a838b838c838d838e838f839083918392839383948395c0dc8396839783988399839a839b839c839d839e839f83a083a183a283a383a483a583a683a783a883a983aa83ab83ac83ad83ae83af83b083b183b2b6f9d8a3d4ca83b3d4aad0d6b3e4d5d783b4cfc8b9e283b5bfcb83b6c3e283b783b883b9b6d283ba83bbcdc3d9eed9f083bc83bd83beb5b383bfb6b583c083c183c283c383c4bea483c583c6c8eb83c783c8c8ab83c983cab0cbb9abc1f9d9e283cbc0bcb9b283ccb9d8d0cbb1f8c6e4bedfb5e4d7c883cdd1f8bce6cade83ce83cfbcbdd9e6d8e783d083d1c4da83d283d3b8d4c8bd83d483d5b2e1d4d983d683d783d883d9c3b083da83dbc3e1daa2c8df83dcd0b483ddbefcc5a983de83df83e0b9da83e1daa383e2d4a9daa483e383e483e583e683e7d9fbb6ac83e883e9b7ebb1f9d9fcb3e5bef683eabff6d2b1c0e483eb83ec83edb6b3d9fed9fd83ee83efbebb83f083f183f2c6e083f3d7bcdaa183f4c1b983f5b5f2c1e883f683f7bcf583f8b4d583f983fa83fb83fc83fd83fe844084418442c1dd8443c4fd84448445bcb8b7b284468447b7ef84488449844a844b844c844dd9ec844ec6be844fbfadbbcb84508451b5ca8452dbc9d0d78453cdb9b0bcb3f6bbf7dbcabaaf8454d4e4b5b6b5f3d8d6c8d084558456b7d6c7d0d8d78457bfaf84588459dbbbd8d8845a845bd0ccbbae845c845d845eebbec1d0c1f5d4f2b8d5b4b4845fb3f584608461c9be846284638464c5d0846584668467c5d9c0fb8468b1f08469d8d9b9ce846ab5bd846b846cd8da846d846ed6c6cba2c8afc9b2b4ccbfcc846fb9f48470d8dbd8dcb6e7bcc1ccea847184728473847484758476cff78477d8ddc7b084788479b9d0bda3847a847bccde847cc6ca847d847e848084818482d8e08483d8de84848485d8df848684878488b0fe8489bee7848acaa3bcf4848b848c848d848eb8b1848f8490b8ee849184928493849484958496849784988499849ad8e2849bbdcb849cd8e4d8e3849d849e849f84a084a1c5fc84a284a384a484a584a684a784a8d8e584a984aad8e684ab84ac84ad84ae84af84b084b1c1a684b2c8b0b0ecb9a6bcd3cef1dbbdc1d384b384b484b584b6b6afd6fac5acbdd9dbbedbbf84b784b884b9c0f8bea2c0cd84ba84bb84bc84bd84be84bf84c084c184c284c3dbc0cac684c484c584c6b2aa84c784c884c9d3c284cac3e384cbd1ab84cc84cd84ce84cfdbc284d0c0d584d184d284d3dbc384d4bfb184d584d684d784d884d984dac4bc84db84dc84dd84dec7da84df84e084e184e284e384e484e584e684e784e884e9dbc484ea84eb84ec84ed84ee84ef84f084f1d9e8c9d784f284f384f4b9b4cef0d4c884f584f684f784f8b0fcb4d284f9d0d984fa84fb84fc84fdd9e984fedecbd9eb8540854185428543d8b0bbafb1b18544b3d7d8ce85458546d4d185478548bdb3bfef8549cfbb854a854bd8d0854c854d854eb7cb854f85508551d8d185528553855485558556855785588559855a855bc6a5c7f8d2bd855c855dd8d2c4e4855ecaae855fc7a78560d8a68561c9fdcee7bbdcb0eb856285638564bbaad0ad8565b1b0d7e4d7bf8566b5a5c2f4c4cf85678568b2a98569b2b7856ab1e5dfb2d5bcbfa8c2acd8d5c2b1856bd8d4ced4856cdae0856dcec0856e856fd8b4c3aed3a1cea38570bcb4c8b4c2d18571beedd0b68572dae18573857485758576c7e485778578b3a78579b6f2ccfcc0fa857a857bc0f7857cd1b9d1e1d8c7857d857e85808581858285838584b2de85858586c0e58587baf185888589d8c8858ad4ad858b858ccfe1d8c9858dd8cacfc3858eb3f8bec7858f859085918592d8cb8593859485958596859785988599dbcc859a859b859c859dc8a5859e859f85a0cfd885a1c8feb2ce85a285a385a485a585a6d3d6b2e6bcb0d3d1cbabb7b485a785a885a9b7a285aa85abcae585acc8a1cadcb1e4d0f085adc5d185ae85af85b0dbc5b5fe85b185b2bfdab9c5bee4c1ed85b3dfb6dfb5d6bbbdd0d5d9b0c8b6a3bfc9cca8dfb3cab7d3d285b4d8cfd2b6bac5cbbeccbe85b5dfb7b5f0dfb485b685b785b8d3f585b9b3d4b8f785badfba85bbbacfbcaab5f585bccdacc3fbbaf3c0f4cdc2cff2dfb8cfc585bdc2c0dfb9c2f085be85bf85c0befd85c1c1dfcdccd2f7b7cddfc185c2dfc485c385c4b7f1b0c9b6d6b7d485c5baacccfdbfd4cbb1c6f485c6d6a8dfc585c7cee2b3b385c885c9cefcb4b585cacec7baf085cbcee185ccd1bd85cd85cedfc085cf85d0b4f485d1b3ca85d2b8e6dfbb85d385d485d585d6c4c585d7dfbcdfbddfbec5bbdfbfdfc2d4b1dfc385d8c7baced885d985da85db85dc85ddc4d885dedfca85dfdfcf85e0d6dc85e185e285e385e485e585e685e785e8dfc9dfdaceb685e9bac7dfcedfc8c5de85ea85ebc9ebbaf4c3fc85ec85edbed785eedfc685efdfcd85f0c5d885f185f285f385f4d5a6bacd85f5beccd3bdb8c085f6d6e485f7dfc7b9bebfa785f885f9c1fcdfcbdfcc85fadfd085fb85fc85fd85fe8640dfdbdfe58641dfd7dfd6d7c9dfe3dfe4e5ebd2a7dfd28642bfa98643d4db8644bfc8dfd4864586468647cfcc86488649dfdd864ad1ca864bdfdeb0a7c6b7dfd3864cbae5864db6dfcddbb9fed4d5864e864fdfdfcfecb0a5dfe7dfd1d1c6dfd5dfd8dfd9dfdc8650bba98651dfe0dfe18652dfe2dfe6dfe8d3b486538654865586568657b8e7c5b6dfeac9dac1a8c4c486588659bfdecff8865a865b865cd5dcdfee865d865e865f866086618662b2b88663badfdfec8664dbc18665d1e48666866786688669cbf4b4bd866ab0a6866b866c866d866e866fdff1ccc6dff286708671dfed867286738674867586768677dfe986788679867a867bdfeb867cdfefdff0bbbd867d867edff386808681dff48682bba38683cadbcea8e0a7b3aa8684e0a6868586868687e0a186888689868a868bdffe868ccdd9dffc868ddffa868ebfd0d7c4868fc9cc86908691dff8b0a186928693869486958696dffd869786988699869adffbe0a2869b869c869d869e869fe0a886a086a186a286a3b7c886a486a5c6a1c9b6c0b2dff586a686a7c5be86a8d8c4dff9c4f686a986aa86ab86ac86ad86aee0a3e0a4e0a5d0a586af86b0e0b4cce486b1e0b186b2bfa6e0afceb9e0abc9c686b386b4c0aee0aebaedbab0e0a986b586b686b7dff686b8e0b386b986bae0b886bb86bc86bdb4ade0b986be86bfcfb2bac886c0e0b086c186c286c386c486c586c686c7d0fa86c886c986ca86cb86cc86cd86ce86cf86d0e0ac86d1d4fb86d2dff786d3c5e786d4e0ad86d5d3f786d6e0b6e0b786d786d886d986da86dbe0c4d0e186dc86dd86dee0bc86df86e0e0c9e0ca86e186e286e3e0bee0aac9a4e0c186e4e0b286e586e686e786e886e9cac8e0c386eae0b586ebcecb86eccbc3e0cde0c6e0c286ede0cb86eee0bae0bfe0c086ef86f0e0c586f186f2e0c7e0c886f3e0cc86f4e0bb86f586f686f786f886f9cbd4e0d586fae0d6e0d286fb86fc86fd86fe87408741e0d0bcce87428743e0d18744b8c2d8c587458746874787488749874a874b874cd0ea874d874ec2ef874f8750e0cfe0bd875187528753e0d4e0d387548755e0d78756875787588759e0dce0d8875a875b875cd6f6b3b0875dd7ec875ecbbb875f8760e0da8761cefb876287638764bad987658766876787688769876a876b876c876d876e876f8770e0e1e0ddd2ad87718772877387748775e0e287768777e0dbe0d9e0df87788779e0e0877a877b877c877d877ee0de8780e0e4878187828783c6f7d8acd4ebe0e6cac98784878587868787e0e587888789878a878bb8c1878c878d878e878fe0e7e0e887908791879287938794879587968797e0e9e0e387988799879a879b879c879d879ebabfcce7879f87a087a1e0ea87a287a387a487a587a687a787a887a987aa87ab87ac87ad87ae87af87b0cff987b187b287b387b487b587b687b787b887b987ba87bbe0eb87bc87bd87be87bf87c087c187c2c8c287c387c487c587c6bdc087c787c887c987ca87cb87cc87cd87ce87cf87d087d187d287d3c4d287d487d587d687d787d887d987da87db87dce0ec87dd87dee0ed87df87e0c7f4cbc487e1e0eebbd8d8b6d2f2e0efcdc587e2b6da87e387e487e587e687e787e8e0f187e9d4b087ea87ebc0a7b4d187ec87edcea7e0f087ee87ef87f0e0f2b9cc87f187f2b9facdbce0f387f387f487f5c6d4e0f487f6d4b287f7c8a6e0f6e0f587f887f987fa87fb87fc87fd87fe8840884188428843884488458846884788488849e0f7884a884bcdc1884c884d884ecaa5884f885088518852d4dadbd7dbd98853dbd8b9e7dbdcdbddb5d888548855dbda8856885788588859885adbdbb3a1dbdf885b885cbbf8885dd6b7885edbe0885f886088618862bef988638864b7bb8865dbd0ccaebfb2bbb5d7f8bfd38866886788688869886abfe9886b886cbce1ccb3dbdeb0d3ceebb7d8d7b9c6c2886d886ec0a4886fccb98870dbe7dbe1c6badbe38871dbe88872c5f7887388748875dbea88768877dbe9bfc088788879887adbe6dbe5887b887c887d887e8880b4b9c0acc2a2dbe2dbe48881888288838884d0cddbed88858886888788888889c0dddbf2888a888b888c888d888e888f8890b6e28891889288938894dbf3dbd2b9b8d4abdbec8895bfd1dbf08896dbd18897b5e68898dbebbfe58899889a889bdbee889cdbf1889d889e889fdbf988a088a188a288a388a488a588a688a788a8b9a1b0a388a988aa88ab88ac88ad88ae88afc2f188b088b1b3c7dbef88b288b3dbf888b4c6d2dbf488b588b6dbf5dbf7dbf688b788b8dbfe88b9d3f2b2ba88ba88bb88bcdbfd88bd88be88bf88c088c188c288c388c4dca488c5dbfb88c688c788c888c9dbfa88ca88cb88ccdbfcc5e0bbf988cd88cedca388cf88d0dca588d1ccc388d288d388d4b6d1ddc088d588d688d7dca188d8dca288d988da88dbc7b588dc88dd88deb6e988df88e088e1dca788e288e388e488e5dca688e6dca9b1a488e788e8b5cc88e988ea88eb88ec88edbfb088ee88ef88f088f188f2d1df88f388f488f588f6b6c288f788f888f988fa88fb88fc88fd88fe894089418942894389448945dca88946894789488949894a894b894ccbfaebf3894d894e894fcbdc89508951cbfe895289538954ccc189558956895789588959c8fb895a895b895c895d895e895fdcaa89608961896289638964cceedcab89658966896789688969896a896b896c896d896e896f897089718972897389748975dbd38976dcafdcac8977beb38978cafb8979897a897bdcad897c897d897e89808981898289838984c9cac4b989858986898789888989c7bddcae898a898b898cd4f6d0e6898d898e898f89908991899289938994c4abb6d589958996899789988999899a899b899c899d899e899f89a089a189a289a389a489a589a6dbd489a789a889a989aab1da89ab89ac89addbd589ae89af89b089b189b289b389b489b589b689b789b8dbd689b989ba89bbbabe89bc89bd89be89bf89c089c189c289c389c489c589c689c789c889c9c8c089ca89cb89cc89cd89ce89cfcabfc8c989d0d7b389d1c9f989d289d3bfc789d489d5baf889d689d7d2bc89d889d989da89db89dc89dd89de89dfe2ba89e0b4a689e189e2b1b889e389e489e589e689e7b8b489e8cfc489e989ea89eb89ecd9e7cfa6cde289ed89eed9edb6e089efd2b989f089f1b9bb89f289f389f489f5e2b9e2b789f6b4f389f7ccecccabb7f289f8d8b2d1ebbabb89f9caa789fa89fbcdb789fc89fdd2c4bfe4bcd0b6e189fedec58a408a418a428a43dec6dbbc8a44d1d98a458a46c6e6c4ceb7ee8a47b7dc8a488a49bffcd7e08a4ac6f58a4b8a4cb1bcdec8bdb1ccd7deca8a4ddec98a4e8a4f8a508a518a52b5ec8a53c9dd8a548a55b0c28a568a578a588a598a5a8a5b8a5c8a5d8a5e8a5f8a608a618a62c5aec5ab8a63c4cc8a64bce9cbfd8a658a668a67bac38a688a698a6ae5f9c8e7e5facdfd8a6bd7b1b8bec2e88a6cc8d18a6d8a6ee5fb8a6f8a708a718a72b6cabccb8a738a74d1fde6a18a75c3ee8a768a778a788a79e6a48a7a8a7b8a7c8a7de5fee6a5cdd78a7e8a80b7c1e5fce5fde6a38a818a82c4dde6a88a838a84e6a78a858a868a878a888a898a8ac3c38a8bc6de8a8c8a8de6aa8a8e8a8f8a908a918a928a938a94c4b78a958a968a97e6a2cabc8a988a998a9a8a9bbde3b9c3e6a6d0d5ceaf8a9c8a9de6a9e6b08a9ed2a68a9fbdaae6ad8aa08aa18aa28aa38aa4e6af8aa5c0d18aa68aa7d2cc8aa88aa98aaabca78aab8aac8aad8aae8aaf8ab08ab18ab28ab38ab48ab58ab6e6b18ab7d2f68ab88ab98abad7cb8abbcdfe8abccddec2a6e6abe6acbdbfe6aee6b38abd8abee6b28abf8ac08ac18ac2e6b68ac3e6b88ac48ac58ac68ac7c4ef8ac88ac98acac4c88acb8accbeeac9ef8acd8acee6b78acfb6f08ad08ad18ad2c3e48ad38ad48ad58ad68ad78ad88ad9d3e9e6b48adae6b58adbc8a28adc8add8ade8adf8ae0e6bd8ae18ae28ae3e6b98ae48ae58ae68ae78ae8c6c58ae98aeacdf1e6bb8aeb8aec8aed8aee8aef8af08af18af28af38af4e6bc8af58af68af78af8bbe98af98afa8afb8afc8afd8afe8b40e6be8b418b428b438b44e6ba8b458b46c0b78b478b488b498b4a8b4b8b4c8b4d8b4e8b4fd3a4e6bfc9f4e6c38b508b51e6c48b528b538b548b55d0f68b568b578b588b598b5a8b5b8b5c8b5d8b5e8b5f8b608b618b628b638b648b658b668b67c3bd8b688b698b6a8b6b8b6c8b6d8b6ec3c4e6c28b6f8b708b718b728b738b748b758b768b778b788b798b7a8b7b8b7ce6c18b7d8b7e8b808b818b828b838b84e6c7cfb18b85ebf48b868b87e6ca8b888b898b8a8b8b8b8ce6c58b8d8b8ebcdec9a98b8f8b908b918b928b938b94bcb58b958b96cfd38b978b988b998b9a8b9be6c88b9ce6c98b9de6ce8b9ee6d08b9f8ba08ba1e6d18ba28ba38ba4e6cbb5d58ba5e6cc8ba68ba7e6cf8ba88ba9c4db8baae6c68bab8bac8bad8bae8bafe6cd8bb08bb18bb28bb38bb48bb58bb68bb78bb88bb98bba8bbb8bbc8bbd8bbe8bbf8bc08bc18bc28bc38bc48bc58bc6e6d28bc78bc88bc98bca8bcb8bcc8bcd8bce8bcf8bd08bd18bd2e6d4e6d38bd38bd48bd58bd68bd78bd88bd98bda8bdb8bdc8bdd8bde8bdf8be08be18be28be38be48be58be68be78be88be98bea8beb8bece6d58bedd9f88bee8befe6d68bf08bf18bf28bf38bf48bf58bf68bf7e6d78bf88bf98bfa8bfb8bfc8bfd8bfe8c408c418c428c438c448c458c468c47d7d3e6dd8c48e6debfd7d4d08c49d7d6b4e6cbefe6dad8c3d7ced0a28c4ac3cf8c4b8c4ce6dfbcbeb9c2e6dbd1a78c4d8c4ebaa2c2cf8c4fd8ab8c508c518c52caebe5ee8c53e6dc8c54b7f58c558c568c578c58c8e68c598c5ac4f58c5b8c5ce5b2c4fe8c5dcbfce5b3d5ac8c5ed3eecad8b0b28c5fcbcecdea8c608c61baea8c628c638c64e5b58c65e5b48c66d7dab9d9d6e6b6a8cdf0d2cbb1a6cab58c67b3e8c9f3bfcdd0fbcad2e5b6bbc28c688c698c6acfdcb9ac8c6b8c6c8c6d8c6ed4d78c6f8c70baa6d1e7cffcbcd28c71e5b7c8dd8c728c738c74bfedb1f6cbde8c758c76bcc58c77bcc4d2fac3dcbfdc8c788c798c7a8c7bb8bb8c7c8c7d8c7ec3c28c80baaed4a28c818c828c838c848c858c868c878c888c89c7dec4afb2ec8c8ab9d18c8b8c8ce5bbc1c88c8d8c8ed5af8c8f8c908c918c928c93e5bc8c94e5be8c958c968c978c988c998c9a8c9bb4e7b6d4cbc2d1b0b5bc8c9c8c9dcad98c9eb7e28c9f8ca0c9e48ca1bdab8ca28ca3cebed7f08ca48ca58ca68ca7d0a18ca8c9d98ca98caab6fbe6d8bce28cabb3be8cacc9d08cade6d9b3a28cae8caf8cb08cb1decc8cb2d3c8decd8cb3d2a28cb48cb58cb68cb7dece8cb88cb98cba8cbbbecd8cbc8cbddecf8cbe8cbf8cc0caacd2fcb3dfe5eac4e1bea1ceb2c4f2bed6c6a8b2e38cc18cc2bed38cc38cc4c7fcccebbdeccedd8cc58cc6cabac6c1e5ecd0bc8cc78cc88cc9d5b98cca8ccb8ccce5ed8ccd8cce8ccf8cd0caf48cd1cdc0c2c58cd2e5ef8cd3c2c4e5f08cd48cd58cd68cd78cd88cd98cdae5f8cdcd8cdbc9bd8cdc8cdd8cde8cdf8ce08ce18ce2d2d9e1a88ce38ce48ce58ce6d3ec8ce7cbeac6f18ce88ce98cea8ceb8cece1ac8ced8cee8cefe1a7e1a98cf08cf1e1aae1af8cf28cf3b2ed8cf4e1abb8dae1ade1aee1b0b5bae1b18cf58cf68cf78cf88cf9e1b3e1b88cfa8cfb8cfc8cfd8cfed1d28d40e1b6e1b5c1eb8d418d428d43e1b78d44d4c08d45e1b28d46e1bab0b68d478d488d498d4ae1b48d4bbff98d4ce1b98d4d8d4ee1bb8d4f8d508d518d528d538d54e1be8d558d568d578d588d598d5ae1bc8d5b8d5c8d5d8d5e8d5f8d60d6c58d618d628d638d648d658d668d67cfbf8d688d69e1bde1bfc2cd8d6ab6eb8d6bd3f88d6c8d6dc7cd8d6e8d6fb7e58d708d718d728d738d748d758d768d778d788d79befe8d7a8d7b8d7c8d7d8d7e8d80e1c0e1c18d818d82e1c7b3e78d838d848d858d868d878d88c6e98d898d8a8d8b8d8c8d8db4de8d8ed1c28d8f8d908d918d92e1c88d938d94e1c68d958d968d978d988d99e1c58d9ae1c3e1c28d9bb1c08d9c8d9d8d9ed5b8e1c48d9f8da08da18da28da3e1cb8da48da58da68da78da88da98daa8dabe1cce1ca8dac8dad8dae8daf8db08db18db28db3effa8db48db5e1d3e1d2c7b68db68db78db88db98dba8dbb8dbc8dbd8dbe8dbf8dc0e1c98dc18dc2e1ce8dc3e1d08dc48dc58dc68dc78dc88dc98dca8dcb8dcc8dcd8dcee1d48dcfe1d1e1cd8dd08dd1e1cf8dd28dd38dd48dd5e1d58dd68dd78dd88dd98dda8ddb8ddc8ddd8dde8ddf8de08de18de2e1d68de38de48de58de68de78de88de98dea8deb8dec8ded8dee8def8df08df18df28df38df48df58df68df78df8e1d78df98dfa8dfbe1d88dfc8dfd8dfe8e408e418e428e438e448e458e468e478e488e498e4a8e4b8e4c8e4d8e4e8e4f8e508e518e528e538e548e55e1da8e568e578e588e598e5a8e5b8e5c8e5d8e5e8e5f8e608e618e62e1db8e638e648e658e668e678e688e69cea18e6a8e6b8e6c8e6d8e6e8e6f8e708e718e728e738e748e758e76e7dd8e77b4a8d6dd8e788e79d1b2b3b28e7a8e7bb9a4d7f3c7c9bedeb9ae8e7cced78e7d8e7eb2eedbcf8e80bcbad2d1cbc8b0cd8e818e82cfef8e838e848e858e868e87d9e3bded8e888e89b1d2cad0b2bc8e8acba7b7ab8e8bcaa68e8c8e8d8e8ecfa38e8f8e90e0f8d5cae0fb8e918e92e0fac5c1ccfb8e93c1b1e0f9d6e3b2afd6c4b5db8e948e958e968e978e988e998e9a8e9bb4f8d6a18e9c8e9d8e9e8e9f8ea0cfafb0ef8ea18ea2e0fc8ea38ea48ea58ea68ea7e1a1b3a38ea88ea9e0fde0fec3b18eaa8eab8eac8eadc3dd8eaee1a2b7f98eaf8eb08eb18eb28eb38eb4bbcf8eb58eb68eb78eb88eb98eba8ebbe1a3c4bb8ebc8ebd8ebe8ebf8ec0e1a48ec18ec2e1a58ec38ec4e1a6b4b18ec58ec68ec78ec88ec98eca8ecb8ecc8ecd8ece8ecf8ed08ed18ed28ed3b8c9c6bdc4ea8ed4b2a28ed5d0d28ed6e7dbbbc3d3d7d3c48ed7b9e3e2cf8ed88ed98edad7af8edbc7ecb1d38edc8eddb4b2e2d18ede8edf8ee0d0f2c2aee2d08ee1bfe2d3a6b5d7e2d2b5ea8ee2c3edb8fd8ee3b8ae8ee4c5d3b7cfe2d48ee58ee68ee78ee8e2d3b6c8d7f98ee98eea8eeb8eec8eedcda58eee8eef8ef08ef18ef2e2d88ef3e2d6cafcbfb5d3b9e2d58ef48ef58ef68ef7e2d78ef88ef98efa8efb8efc8efd8efe8f408f418f42c1aec0c88f438f448f458f468f478f48e2dbe2dac0aa8f498f4ac1ce8f4b8f4c8f4d8f4ee2dc8f4f8f508f518f528f538f548f558f568f578f588f598f5ae2dd8f5be2de8f5c8f5d8f5e8f5f8f608f618f628f638f64dbc88f65d1d3cda28f668f67bda88f688f698f6adec3d8a5bfaadbcdd2ecc6fac5aa8f6b8f6c8f6ddec48f6eb1d7dfae8f6f8f708f71cabd8f72dfb18f73b9ad8f74d2fd8f75b8a5baeb8f768f77b3da8f788f798f7ab5dcd5c58f7b8f7c8f7d8f7ec3d6cfd2bba18f80e5f3e5f28f818f82e5f48f83cde48f84c8f58f858f868f878f888f898f8a8f8bb5afc7bf8f8ce5f68f8d8f8e8f8fecb08f908f918f928f938f948f958f968f978f988f998f9a8f9b8f9c8f9d8f9ee5e68f9fb9e9b5b18fa0c2bce5e8e5e7e5e98fa18fa28fa38fa4d2cd8fa58fa68fa7e1ead0ce8fa8cdae8fa9d1e58faa8fabb2cab1eb8facb1f2c5ed8fad8faed5c3d3b08fafe1dc8fb08fb18fb2e1dd8fb3d2db8fb4b3b9b1cb8fb58fb68fb7cdf9d5f7e1de8fb8beb6b4fd8fb9e1dfbadce1e0bbb2c2c9e1e18fba8fbb8fbcd0ec8fbdcdbd8fbe8fbfe1e28fc0b5c3c5c7e1e38fc18fc2e1e48fc38fc48fc58fc6d3f98fc78fc88fc98fca8fcb8fcce1e58fcdd1ad8fce8fcfe1e6cea28fd08fd18fd28fd38fd48fd5e1e78fd6b5c28fd78fd88fd98fdae1e8bbd58fdb8fdc8fdd8fde8fdfd0c4e2e0b1d8d2e48fe08fe1e2e18fe28fe3bcc9c8cc8fe4e2e3ecfeecfddfaf8fe58fe68fe7e2e2d6becdfcc3a68fe88fe98feae3c38feb8fecd6d2e2e78fed8feee2e88fef8ff0d3c78ff18ff2e2ecbfec8ff3e2ede2e58ff48ff5b3c08ff68ff78ff8c4ee8ff98ffae2ee8ffb8ffcd0c38ffdbaf6e2e9b7debbb3ccaccbcbe2e4e2e6e2eae2eb8ffe90409041e2f790429043e2f4d4f5e2f390449045c5ad9046d5fac5c2b2c090479048e2ef9049e2f2c1afcbbc904a904bb5a1e2f9904c904d904ebcb1e2f1d0d4d4b9e2f5b9d6e2f6904f90509051c7d390529053905490559056e2f0905790589059905a905bd7dceda1905c905de2f8905eeda5e2fecad1905f906090619062906390649065c1b59066bbd090679068bfd69069bae3906a906bcba1906c906d906eeda6eda3906f9070eda29071907290739074bbd6eda7d0f490759076eda4badeb6f7e3a1b6b2ccf1b9a79077cfa2c7a190789079bfd2907a907bb6f1907ce2fae2fbe2fde2fcc4d5e3a2907dd3c1907e90809081e3a7c7c49082908390849085cfa490869087e3a9bab790889089908a908be3a8908cbbda908de3a3908e908f9090e3a4e3aa9091e3a69092cef2d3c690939094bbbc90959096d4c39097c4fa90989099eda8d0fce3a5909ac3f5909be3adb1af909ce3b2909d909e909fbcc290a090a1e3acb5bf90a290a390a490a590a690a790a890a9c7e9e3b090aa90ab90acbeaacdef90ad90ae90af90b090b1bbf390b290b390b4cce890b590b6e3af90b7e3b190b8cfa7e3ae90b9cea9bbdd90ba90bb90bc90bd90beb5ebbee5b2d2b3cd90bfb1b9e3abb2d1b5acb9dfb6e890c090c1cfebe3b790c2bbcc90c390c4c8c7d0ca90c590c690c790c890c9e3b8b3ee90ca90cb90cc90cdeda990ced3fad3e490cf90d090d1edaae3b9d2e290d290d390d490d590d6e3b590d790d890d990dad3de90db90dc90dd90deb8d0e3b390df90e0e3b6b7df90e1e3b4c0a290e290e390e4e3ba90e590e690e790e890e990ea90eb90ec90ed90ee90ef90f090f190f290f390f490f590f690f7d4b890f890f990fa90fb90fc90fd90fe9140b4c89141e3bb9142bbc59143c9f791449145c9e5914691479148c4bd9149914a914b914c914d914e914fedab9150915191529153c2fd9154915591569157bbdbbfae91589159915a915b915c915d915ecebf915f916091619162e3bc9163bfb6916491659166916791689169916a916b916c916d916e916f9170917191729173917491759176b1ef91779178d4f79179917a917b917c917de3be917e9180918191829183918491859186edad918791889189918a918b918c918d918e918fe3bfbaa9edac91909191e3bd91929193919491959196919791989199919a919be3c0919c919d919e919f91a091a1bab691a291a391a4b6ae91a591a691a791a891a9d0b891aab0c3edae91ab91ac91ad91ae91afedafc0c191b0e3c191b191b291b391b491b591b691b791b891b991ba91bb91bc91bd91be91bf91c091c1c5b391c291c391c491c591c691c791c891c991ca91cb91cc91cd91ce91cfe3c291d091d191d291d391d491d591d691d791d8dcb291d991da91db91dc91dd91deedb091dfb8ea91e0ceeceaa7d0e7caf9c8d6cfb7b3c9ced2bde491e191e2e3debbf2eaa8d5bd91e3c6ddeaa991e491e591e6eaaa91e7eaaceaab91e8eaaeeaad91e991ea91eb91ecbdd891edeaaf91eec2be91ef91f091f191f2b4c1b4f791f391f4bba791f591f691f791f891f9ece6ece5b7bfcbf9b1e291faece791fb91fc91fdc9c8ece8ece991fecad6ded0b2c5d4fa92409241c6cbb0c7b4f2c8d3924292439244cdd092459246bfb8924792489249924a924b924c924dbfdb924e924fc7a4d6b49250c0a9ded1c9a8d1efc5a4b0e7b3b6c8c592519252b0e292539254b7f692559256c5fa92579258b6f39259d5d2b3d0bcbc925a925b925cb3ad925d925e925f9260bef1b0d1926192629263926492659266d2d6cae3d7a59267cdb6b6b6bfb9d5db9268b8a7c5d79269926a926bded2bfd9c2d5c7c0926cbba4b1a8926d926ec5ea926f9270c5fbcca79271927292739274b1a7927592769277b5d692789279927ac4a8927bded3d1bab3e9927cc3f2927d927eb7f79280d6f4b5a3b2f0c4b4c4e9c0added49281b0e8c5c4c1e09282b9d59283bedccdd8b0ce9284cdcfded6bed0d7beded5d5d0b0dd92859286c4e292879288c2a3bcf09289d3b5c0b9c5a1b2a6d4f1928a928bc0a8cac3ded7d5fc928cb9b0928dc8adcba9928eded9bfbd928f929092919292c6b4d7a7cab0c4c39293b3d6b9d29294929592969297d6b8eafcb0b492989299929a929bbfe6929c929dccf4929e929f92a092a1cdda92a292a392a4d6bfc2ce92a5cececca2d0aec4d3b5b2ded8d5f5bcb7bbd392a692a7b0a492a8c5b2b4ec92a992aa92abd5f192ac92adeafd92ae92af92b092b192b292b3dedacda692b492b5cdec92b692b792b892b9cee6dedc92bacdb1c0a692bb92bcd7bd92bddedbb0c6bab4c9d3c4f3bee892be92bf92c092c1b2b692c292c392c492c592c692c792c892c9c0cccbf092cabcf1bbbbb5b792cb92cc92cdc5f592cedee692cf92d092d1dee3bedd92d292d3dedf92d492d592d692d7b4b7bddd92d892d9dee0c4ed92da92db92dc92ddcfc692deb5e092df92e092e192e2b6decadab5f4dee592e3d5c692e4dee1cccdc6fe92e5c5c592e692e792e8d2b492e9bef292ea92eb92ec92ed92ee92ef92f0c2d392f1ccbdb3b892f2bdd392f3bfd8cdc6d1dab4eb92f4dee4dedddee792f5eafe92f692f7c2b0dee292f892f9d6c0b5a792fab2f492fbdee892fcdef292fd92fe934093419342deed9343def193449345c8e0934693479348d7e1deefc3e8cce19349b2e5934a934b934cd2be934d934e934f9350935193529353deee9354deebced59355b4a79356935793589359935abfabbebe935b935cbdd2935d935e935f9360dee99361d4ae9362dede9363deea9364936593669367c0bf9368deecb2f3b8e9c2a79369936abdc1936b936c936d936e936fdef5def893709371b2abb4a493729373b4eac9a6937493759376937793789379def6cbd1937ab8e3937bdef7defa937c937d937e9380def9938193829383ccc29384b0e1b4ee93859386938793889389938ae5ba938b938c938d938e938fd0af93909391b2eb9392eba19393def493949395c9e3def3b0dad2a1b1f79396ccaf939793989399939a939b939c939ddef0939ecba4939f93a093a1d5aa93a293a393a493a593a6defb93a793a893a993aa93ab93ac93ad93aeb4dd93afc4a693b093b193b2defd93b393b493b593b693b793b893b993ba93bb93bcc3fec4a1dfa193bd93be93bf93c093c193c293c3c1cc93c4defcbeef93c5c6b293c693c793c893c993ca93cb93cc93cd93ceb3c5c8f693cf93d0cbbadefe93d193d2dfa493d393d493d593d6d7b293d793d893d993da93dbb3b793dc93dd93de93dfc1c393e093e1c7cbb2a5b4e993e2d7ab93e393e493e593e6c4ec93e7dfa2dfa393e8dfa593e9bab393ea93eb93ecdfa693edc0de93ee93efc9c393f093f193f293f393f493f593f6b2d9c7e693f7dfa793f8c7dc93f993fa93fb93fcdfa8eba293fd93fe944094419442cbd3944394449445dfaa9446dfa99447b2c194489449944a944b944c944d944e944f9450945194529453945494559456945794589459945a945b945c945d945e945f9460c5ca94619462946394649465946694679468dfab9469946a946b946c946d946e946f9470d4dc94719472947394749475c8c19476947794789479947a947b947c947d947e948094819482dfac94839484948594869487bef094889489dfadd6a7948a948b948c948deab7ebb6cad5948ed8fcb8c4948fb9a594909491b7c5d5fe94929493949494959496b9ca94979498d0a7f4cd9499949ab5d0949b949cc3f4949dbec8949e949f94a0ebb7b0bd94a194a2bdcc94a3c1b294a4b1d6b3a894a594a694a7b8d2c9a294a894a9b6d894aa94ab94ac94adebb8beb494ae94af94b0cafd94b1c7c394b2d5fb94b394b4b7f394b594b694b794b894b994ba94bb94bc94bd94be94bf94c094c194c294c3cec494c494c594c6d5abb1f394c794c894c9ecb3b0df94caecb594cb94cc94cdb6b794cec1cf94cff5fad0b194d094d1d5e594d2ced394d394d4bdefb3e294d5b8ab94d6d5b694d7edbd94d8b6cf94d9cbb9d0c294da94db94dc94dd94de94df94e094e1b7bd94e294e3ecb6caa994e494e594e6c5d494e7ecb9ecb8c2c3ecb794e894e994ea94ebd0fdecba94ececbbd7e594ed94eeecbc94ef94f094f1ecbdc6ec94f294f394f494f594f694f794f894f9cede94fabcc894fb94fcc8d5b5a9bec9d6bcd4e794fd94fed1aed0f1eab8eab9eababab59540954195429543cab1bff595449545cdfa9546954795489549954aeac0954bb0baeabe954c954dc0a5954e954f9550eabb9551b2fd9552c3f7bbe8955395549555d2d7cef4eabf955695579558eabc9559955a955beac3955cd0c7d3b3955d955e955f9560b4ba9561c3c1d7f29562956395649565d5d19566cac79567eac595689569eac4eac7eac6956a956b956c956d956ed6e7956fcfd495709571eacb9572bbce9573957495759576957795789579bdfac9ce957a957beacc957c957dc9b9cffeeacad4ceeacdeacf957e9580cded9581958295839584eac99585eace95869587ceee9588bbde9589b3bf958a958b958c958d958ec6d5beb0cefa958f95909591c7e79592bea7ead095939594d6c7959595969597c1c095989599959ad4dd959bead1959c959dcfbe959e959f95a095a1ead295a295a395a495a5caee95a695a795a895a9c5afb0b595aa95ab95ac95ad95aeead495af95b095b195b295b395b495b595b695b7ead3f4df95b895b995ba95bb95bcc4ba95bd95be95bf95c095c1b1a995c295c395c495c5e5df95c695c795c895c9ead595ca95cb95cc95cd95ce95cf95d095d195d295d395d495d595d695d795d895d995da95db95dc95dd95de95df95e095e195e295e3caef95e4ead6ead7c6d895e595e695e795e895e995ea95eb95ecead895ed95eeead995ef95f095f195f295f395f4d4bb95f5c7fad2b7b8fc95f695f7eac295f8b2dc95f995fac2fc95fbd4f8cce6d7ee95fc95fd95fe9640964196429643d4c2d3d0ebc3c5f39644b7fe96459646ebd4964796489649cbb7ebde964ac0ca964b964c964dcdfb964eb3af964fc6da965096519652965396549655ebfc9656c4be9657ceb4c4a9b1bed4fd9658caf59659d6ec965a965bc6d3b6e4965c965d965e965fbbfa96609661d0e096629663c9b19664d4d3c8a896659666b8cb9667e8bec9bc96689669e8bb966ac0eed0d3b2c4b4e5966be8bc966c966dd5c8966e966f967096719672b6c59673e8bdcaf8b8dcccf5967496759676c0b496779678d1eee8bfe8c29679967ababc967bb1adbddc967ceabde8c3967de8c6967ee8cb9680968196829683e8cc9684cbc9b0e59685bcab96869687b9b996889689e8c1968acdf7968be8ca968c968d968e968fcef69690969196929693d5ed9694c1d6e8c49695c3b69696b9fbd6a6e8c8969796989699cae0d4e6969ae8c0969be8c5e8c7969cc7b9b7e3969de8c9969ebfdde8d2969f96a0e8d796a1e8d5bcdcbccfe8db96a296a396a496a596a696a796a896a9e8de96aae8dab1fa96ab96ac96ad96ae96af96b096b196b296b396b4b0d8c4b3b8ccc6e2c8bec8e196b596b696b7e8cfe8d4e8d696b8b9f1e8d8d7f596b9c4fb96bae8dc96bb96bcb2e996bd96be96bfe8d196c096c1bced96c296c3bfc2e8cdd6f996c4c1f8b2f196c596c696c796c896c996ca96cb96cce8df96cdcac1e8d996ce96cf96d096d1d5a496d2b1ead5bbe8cee8d0b6b0e8d396d3e8ddc0b896d4caf796d5cba896d696d7c6dcc0f596d896d996da96db96dce8e996dd96de96dfd0a396e096e196e296e396e496e596e6e8f2d6ea96e796e896e996ea96eb96ec96ede8e0e8e196ee96ef96f0d1f9bacbb8f996f196f2b8f1d4d4e8ef96f3e8eee8ecb9f0ccd2e8e6cea6bff296f4b0b8e8f1e8f096f5d7c096f6e8e496f7cda9c9a396f8bbb8bddbe8ea96f996fa96fb96fc96fd96fe9740974197429743e8e2e8e3e8e5b5b5e8e7c7c5e8ebe8edbdb0d7ae9744e8f897459746974797489749974a974b974ce8f5974dcdb0e8f6974e974f9750975197529753975497559756c1ba9757e8e89758c3b7b0f09759975a975b975c975d975e975f9760e8f4976197629763e8f7976497659766b9a3976797689769976a976b976c976d976e976f9770c9d2977197729773c3cecee0c0e69774977597769777cbf39778ccddd0b59779977acae1977be8f3977c977d977e9780978197829783978497859786bcec9787e8f997889789978a978b978c978dc3de978ec6e5978fb9f79790979197929793b0f497949795d7d897969797bcac9798c5ef9799979a979b979c979dccc4979e979fe9a697a097a197a297a397a497a597a697a797a897a9c9ad97aae9a2c0e297ab97ac97adbfc397ae97af97b0e8feb9d797b1e8fb97b297b397b497b5e9a497b697b797b8d2ce97b997ba97bb97bc97bde9a397bed6b2d7b597bfe9a797c0bdb797c197c297c397c497c597c697c797c897c997ca97cb97cce8fce8fd97cd97ce97cfe9a197d097d197d297d397d497d597d697d7cdd697d897d9d2ac97da97db97dce9b297dd97de97df97e0e9a997e197e297e3b4aa97e4b4bb97e597e6e9ab97e797e897e997ea97eb97ec97ed97ee97ef97f097f197f297f397f497f597f697f7d0a897f897f9e9a597fa97fbb3fe97fc97fde9acc0e397fee9aa98409841e9b998429843e9b89844984598469847e9ae98489849e8fa984a984be9a8984c984d984e984f9850bface9b1e9ba98519852c2a5985398549855e9af9856b8c59857e9ad9858d3dce9b4e9b5e9b79859985a985be9c7985c985d985e985f98609861c0c6e9c598629863e9b098649865e9bbb0f19866986798689869986a986b986c986d986e986fe9bcd5a598709871e9be9872e9bf987398749875e9c198769877c1f198789879c8b6987a987b987ce9bd987d987e988098819882e9c29883988498859886988798889889988ae9c3988be9b3988ce9b6988dbbb1988e988f9890e9c0989198929893989498959896bcf7989798989899e9c4e9c6989a989b989c989d989e989f98a098a198a298a398a498a5e9ca98a698a798a898a9e9ce98aa98ab98ac98ad98ae98af98b098b198b298b3b2db98b4e9c898b598b698b798b898b998ba98bb98bc98bd98beb7ae98bf98c098c198c298c398c498c598c698c798c898c998cae9cbe9cc98cb98cc98cd98ce98cf98d0d5c198d1c4a398d298d398d498d598d698d7e9d898d8bae198d998da98db98dce9c998ddd3a398de98df98e0e9d498e198e298e398e498e598e698e7e9d7e9d098e898e998ea98eb98ece9cf98ed98eec7c198ef98f098f198f298f398f498f598f6e9d298f798f898f998fa98fb98fc98fde9d9b3c898fee9d399409941994299439944cff0994599469947e9cd99489949994a994b994c994d994e994f995099519952b3f79953995499559956995799589959e9d6995a995be9da995c995d995eccb4995f99609961cfad99629963996499659966996799689969996ae9d5996be9dce9db996c996d996e996f9970e9de99719972997399749975997699779978e9d19979997a997b997c997d997e99809981e9dd9982e9dfc3ca9983998499859986998799889989998a998b998c998d998e998f9990999199929993999499959996999799989999999a999b999c999d999e999f99a099a199a299a399a499a599a699a799a899a999aa99ab99ac99ad99ae99af99b099b199b299b399b499b599b699b799b899b999ba99bb99bc99bd99be99bf99c099c199c299c399c499c599c699c799c899c999ca99cb99cc99cd99ce99cf99d099d199d299d399d499d599d699d799d899d999da99db99dc99dd99de99df99e099e199e299e399e499e599e699e799e899e999ea99eb99ec99ed99ee99ef99f099f199f299f399f499f5c7b7b4cebbb6d0c0eca399f699f7c5b799f899f999fa99fb99fc99fd99fe9a409a419a42d3fb9a439a449a459a46eca49a47eca5c6db9a489a499a4abfee9a4b9a4c9a4d9a4eeca69a4f9a50eca7d0aa9a51c7b89a529a53b8e89a549a559a569a579a589a599a5a9a5b9a5c9a5d9a5e9a5feca89a609a619a629a639a649a659a669a67d6b9d5fdb4cbb2bdcee4c6e79a689a69cde19a6a9a6b9a6c9a6d9a6e9a6f9a709a719a729a739a749a759a769a77b4f59a78cbc0bcdf9a799a7a9a7b9a7ce9e2e9e3d1eae9e59a7db4f9e9e49a7ed1b3cae2b2d09a80e9e89a819a829a839a84e9e6e9e79a859a86d6b39a879a889a89e9e9e9ea9a8a9a8b9a8c9a8d9a8ee9eb9a8f9a909a919a929a939a949a959a96e9ec9a979a989a999a9a9a9b9a9c9a9d9a9eecafc5b9b6ce9a9fd2f39aa09aa19aa29aa39aa49aa59aa6b5ee9aa7bbd9ecb19aa89aa9d2e39aaa9aab9aac9aad9aaecee39aafc4b89ab0c3bf9ab19ab2b6bed8b9b1c8b1cfb1d1c5fe9ab3b1d09ab4c3ab9ab59ab69ab79ab89ab9d5b19aba9abb9abc9abd9abe9abf9ac09ac1eba4bac19ac29ac39ac4ccba9ac59ac69ac7eba59ac8eba79ac99aca9acbeba89acc9acd9aceeba69acf9ad09ad19ad29ad39ad49ad5eba9ebabebaa9ad69ad79ad89ad99adaebac9adbcacfd8b5c3f19adcc3a5c6f8ebadc4ca9addebaeebafebb0b7d59ade9adf9ae0b7fa9ae1ebb1c7e29ae2ebb39ae3baa4d1f5b0b1ebb2ebb49ae49ae59ae6b5aac2c8c7e89ae7ebb59ae8cbaee3df9ae99aead3c09aeb9aec9aed9aeed9db9aef9af0cda1d6adc7f39af19af29af3d9e0bbe39af4babae3e29af59af69af79af89af9cfab9afa9afb9afce3e0c9c79afdbab99afe9b409b41d1b4e3e1c8eab9afbdadb3d8cedb9b429b43ccc09b449b459b46e3e8e3e9cdf49b479b489b499b4a9b4bccad9b4cbcb39b4de3ea9b4ee3eb9b4f9b50d0da9b519b529b53c6fbb7da9b549b55c7dfd2caced69b56e3e4e3ec9b57c9f2b3c19b589b59e3e79b5a9b5bc6e3e3e59b5c9b5dedb3e3e69b5e9b5f9b609b61c9b39b62c5e69b639b649b65b9b59b66c3bb9b67e3e3c5bdc1a4c2d9b2d79b68e3edbba6c4ad9b69e3f0beda9b6a9b6be3fbe3f5bad39b6c9b6d9b6e9b6fb7d0d3cd9b70d6ced5d3b9c1d5b4d1d89b719b729b739b74d0b9c7f69b759b769b77c8aab2b49b78c3da9b799b7a9b7be3ee9b7c9b7de3fce3efb7a8e3f7e3f49b7e9b809b81b7ba9b829b83c5a29b84e3f6c5ddb2a8c6fc9b85c4e09b869b87d7a29b88c0e1e3f99b899b8ae3fae3fdcca9e3f39b8bd3be9b8cb1c3edb4e3f1e3f29b8de3f8d0bac6c3d4f3e3fe9b8e9b8fbde09b909b91e4a79b929b93e4a69b949b959b96d1f3e4a39b97e4a99b989b999b9ac8f79b9b9b9c9b9d9b9ecfb49b9fe4a8e4aec2e59ba09ba1b6b49ba29ba39ba49ba59ba69ba7bdf29ba8e4a29ba99baabae9e4aa9bab9bace4ac9bad9baeb6fdd6dee4b29bafe4ad9bb09bb19bb2e4a19bb3bbeecdddc7a2c5c99bb49bb5c1f79bb6e4a49bb7c7b3bdacbdbde4a59bb8d7c7b2e29bb9e4abbcc3e4af9bbabbebe4b0c5a8e4b19bbb9bbc9bbd9bbed5e3bfa39bbfe4ba9bc0e4b79bc1e4bb9bc29bc3e4bd9bc49bc5c6d69bc69bc7bac6c0cb9bc89bc99bcab8a1e4b49bcb9bcc9bcd9bced4a19bcf9bd0baa3bdfe9bd19bd29bd3e4bc9bd49bd59bd69bd79bd8cdbf9bd99bdac4f99bdb9bdccffbc9e69bdd9bded3bf9bdfcfd19be09be1e4b39be2e4b8e4b9cce99be39be49be59be69be7ccce9be8c0d4e4b5c1b0e4b6ced09be9bbc1b5d39beac8f3bda7d5c7c9acb8a2e4ca9beb9bece4ccd1c49bed9beed2ba9bef9bf0baad9bf19bf2bad49bf39bf49bf59bf69bf79bf8e4c3b5ed9bf99bfa9bfbd7cde4c0cffde4bf9bfc9bfd9bfec1dcccca9c409c419c429c43cae79c449c459c469c47c4d79c48ccd4e4c89c499c4a9c4be4c7e4c19c4ce4c4b5ad9c4d9c4ed3d99c4fe4c69c509c519c529c53d2f9b4e39c54bbb49c559c56c9ee9c57b4be9c589c599c5abbec9c5bd1cd9c5cccededb59c5d9c5e9c5f9c609c619c629c639c64c7e59c659c669c679c68d4a89c69e4cbd7d5e4c29c6abda5e4c59c6b9c6cd3e69c6de4c9c9f89c6e9c6fe4be9c709c71d3e59c729c73c7feb6c99c74d4fcb2b3e4d79c759c769c77cec29c78e4cd9c79cebc9c7ab8db9c7b9c7ce4d69c7dbfca9c7e9c809c81d3ce9c82c3ec9c839c849c859c869c879c889c899c8ac5c8e4d89c8b9c8c9c8d9c8e9c8f9c909c919c92cdc4e4cf9c939c949c959c96e4d4e4d59c97bafe9c98cfe69c999c9ad5bf9c9b9c9c9c9de4d29c9e9c9f9ca09ca19ca29ca39ca49ca59ca69ca79ca8e4d09ca99caae4ce9cab9cac9cad9cae9caf9cb09cb19cb29cb39cb49cb59cb69cb79cb89cb9cde5caaa9cba9cbb9cbcc0a39cbdbda6e4d39cbe9cbfb8c89cc09cc19cc29cc39cc4e4e7d4b49cc59cc69cc79cc89cc99cca9ccbe4db9ccc9ccd9ccec1ef9ccf9cd0e4e99cd19cd2d2e79cd39cd4e4df9cd5e4e09cd69cd7cfaa9cd89cd99cda9cdbcbdd9cdce4dae4d19cdde4e59cdec8dce4e39cdf9ce0c4e7e4e29ce1e4e19ce29ce39ce4b3fce4e89ce59ce69ce79ce8b5e19ce99cea9cebd7cc9cec9ced9ceee4e69cefbbac9cf0d7d2cccfebf89cf1e4e49cf29cf3b9f69cf49cf59cf6d6cde4d9e4dcc2fae4de9cf7c2cbc0c4c2d09cf8b1f5ccb29cf99cfa9cfb9cfc9cfd9cfe9d409d419d429d43b5ce9d449d459d469d47e4ef9d489d499d4a9d4b9d4c9d4d9d4e9d4fc6af9d509d519d52c6e19d539d54e4f59d559d569d579d589d59c2a99d5a9d5b9d5cc0ecd1dde4ee9d5d9d5e9d5f9d609d619d629d639d649d659d66c4ae9d679d689d69e4ed9d6a9d6b9d6c9d6de4f6e4f4c2fe9d6ee4dd9d6fe4f09d70cafe9d71d5c49d729d73e4f19d749d759d769d779d789d799d7ad1fa9d7b9d7c9d7d9d7e9d809d819d82e4ebe4ec9d839d849d85e4f29d86ceab9d879d889d899d8a9d8b9d8c9d8d9d8e9d8f9d90c5cb9d919d929d93c7b19d94c2ba9d959d969d97e4ea9d989d999d9ac1ca9d9b9d9c9d9d9d9e9d9f9da0ccb6b3b19da19da29da3e4fb9da4e4f39da59da69da7e4fa9da8e4fd9da9e4fc9daa9dab9dac9dad9dae9daf9db0b3ce9db19db29db3b3bae4f79db49db5e4f9e4f8c5ec9db69db79db89db99dba9dbb9dbc9dbd9dbe9dbf9dc09dc19dc2c0bd9dc39dc49dc59dc6d4e89dc79dc89dc99dca9dcbe5a29dcc9dcd9dce9dcf9dd09dd19dd29dd39dd49dd59dd6b0c49dd79dd8e5a49dd99ddae5a39ddb9ddc9ddd9dde9ddf9de0bca49de1e5a59de29de39de49de59de69de7e5a19de89de99dea9deb9dec9ded9deee4feb1f49def9df09df19df29df39df49df59df69df79df89df9e5a89dfae5a9e5a69dfb9dfc9dfd9dfe9e409e419e429e439e449e459e469e47e5a7e5aa9e489e499e4a9e4b9e4c9e4d9e4e9e4f9e509e519e529e539e549e559e569e579e589e599e5a9e5b9e5c9e5d9e5e9e5f9e609e619e629e639e649e659e669e679e68c6d99e699e6a9e6b9e6c9e6d9e6e9e6f9e70e5abe5ad9e719e729e739e749e759e769e77e5ac9e789e799e7a9e7b9e7c9e7d9e7e9e809e819e829e839e849e859e869e879e889e89e5af9e8a9e8b9e8ce5ae9e8d9e8e9e8f9e909e919e929e939e949e959e969e979e989e999e9a9e9b9e9c9e9d9e9eb9e09e9f9ea0e5b09ea19ea29ea39ea49ea59ea69ea79ea89ea99eaa9eab9eac9ead9eaee5b19eaf9eb09eb19eb29eb39eb49eb59eb69eb79eb89eb99ebabbf0ece1c3f09ebbb5c6bbd29ebc9ebd9ebe9ebfc1e9d4ee9ec0bec49ec19ec29ec3d7c69ec4d4d6b2d3ecbe9ec59ec69ec79ec8eac19ec99eca9ecbc2afb4b69ecc9ecd9eced1d79ecf9ed09ed1b3b49ed2c8b2bfbbecc09ed39ed4d6cb9ed59ed6ecbfecc19ed79ed89ed99eda9edb9edc9edd9ede9edf9ee09ee19ee29ee3ecc5bee6ccbfc5dabebc9ee4ecc69ee5b1fe9ee69ee79ee8ecc4d5a8b5e39ee9ecc2c1b6b3e39eea9eebecc3cbb8c0c3ccfe9eec9eed9eee9eefc1d29ef0ecc89ef19ef29ef39ef49ef59ef69ef79ef89ef99efa9efb9efc9efdbae6c0d39efed6f29f409f419f42d1cc9f439f449f459f46bfbe9f47b7b3c9d5ecc7bbe29f48ccccbdfdc8c89f49cfa99f4a9f4b9f4c9f4d9f4e9f4f9f50cde99f51c5eb9f529f539f54b7e99f559f569f579f589f599f5a9f5b9f5c9f5d9f5e9f5fd1c9bab89f609f619f629f639f64ecc99f659f66ecca9f67bbc0eccb9f68ece2b1bab7d99f699f6a9f6b9f6c9f6d9f6e9f6f9f709f719f729f73bdb99f749f759f769f779f789f799f7a9f7becccd1e6eccd9f7c9f7d9f7e9f80c8bb9f819f829f839f849f859f869f879f889f899f8a9f8b9f8c9f8d9f8eecd19f8f9f909f919f92ecd39f93bbcd9f94bce59f959f969f979f989f999f9a9f9b9f9c9f9d9f9e9f9f9fa09fa1eccf9fa2c9b79fa39fa49fa59fa69fa7c3ba9fa8ece3d5d5ecd09fa99faa9fab9fac9fadd6f39fae9faf9fb0ecd2ecce9fb19fb29fb39fb4ecd49fb5ecd59fb69fb7c9bf9fb89fb99fba9fbb9fbc9fbdcfa89fbe9fbf9fc09fc19fc2d0dc9fc39fc49fc59fc6d1ac9fc79fc89fc99fcac8db9fcb9fcc9fcdecd6cef59fce9fcf9fd09fd19fd2caececda9fd39fd49fd59fd69fd79fd89fd9ecd99fda9fdb9fdcb0be9fdd9fde9fdf9fe09fe19fe2ecd79fe3ecd89fe49fe59fe6ece49fe79fe89fe99fea9feb9fec9fed9fee9fefc8bc9ff09ff19ff29ff39ff49ff59ff69ff79ff89ff9c1c79ffa9ffb9ffc9ffd9ffeecdcd1e0a040a041a042a043a044a045a046a047a048a049ecdba04aa04ba04ca04dd4efa04eecdda04fa050a051a052a053a054dbc6a055a056a057a058a059a05aa05ba05ca05da05eecdea05fa060a061a062a063a064a065a066a067a068a069a06ab1aca06ba06ca06da06ea06fa070a071a072a073a074a075a076a077a078a079a07aa07ba07ca07da07ea080a081ecdfa082a083a084a085a086a087a088a089a08aa08bece0a08cd7a6a08dc5c0a08ea08fa090ebbcb0aea091a092a093bef4b8b8d2afb0d6b5f9a094d8b3a095cbaca096e3dda097a098a099a09aa09ba09ca09dc6acb0e6a09ea09fa0a0c5c6ebb9a0a1a0a2a0a3a0a4ebbaa0a5a0a6a0a7ebbba0a8a0a9d1c0a0aac5a3a0abeaf2a0acc4b2a0adc4b5c0cea0aea0afa0b0eaf3c4c1a0b1ceefa0b2a0b3a0b4a0b5eaf0eaf4a0b6a0b7c9fca0b8a0b9c7a3a0baa0bba0bcccd8cefea0bda0bea0bfeaf5eaf6cfacc0e7a0c0a0c1eaf7a0c2a0c3a0c4a0c5a0c6b6bfeaf8a0c7eaf9a0c8eafaa0c9a0caeafba0cba0cca0cda0cea0cfa0d0a0d1a0d2a0d3a0d4a0d5a0d6eaf1a0d7a0d8a0d9a0daa0dba0dca0dda0dea0dfa0e0a0e1a0e2c8aee1eba0e3b7b8e1eca0e4a0e5a0e6e1eda0e7d7b4e1eee1efd3cca0e8a0e9a0eaa0eba0eca0eda0eee1f1bff1e1f0b5d2a0efa0f0a0f1b1b7a0f2a0f3a0f4a0f5e1f3e1f2a0f6bafca0f7e1f4a0f8a0f9a0faa0fbb9b7a0fcbed1a0fda0feaa40aa41c4fcaa42baddbdc6aa43aa44aa45aa46aa47aa48e1f5e1f7aa49aa4ab6c0cfc1caa8e1f6d5f8d3fce1f8e1fce1f9aa4baa4ce1fac0eaaa4de1fee2a1c0c7aa4eaa4faa50aa51e1fbaa52e1fdaa53aa54aa55aa56aa57aa58e2a5aa59aa5aaa5bc1d4aa5caa5daa5eaa5fe2a3aa60e2a8b2fee2a2aa61aa62aa63c3cdb2c2e2a7e2a6aa64aa65e2a4e2a9aa66aa67e2abaa68aa69aa6ad0c9d6edc3a8e2acaa6bcfd7aa6caa6de2aeaa6eaa6fbaefaa70aa71e9e0e2ade2aaaa72aa73aa74aa75bbabd4b3aa76aa77aa78aa79aa7aaa7baa7caa7daa7eaa80aa81aa82aa83e2b0aa84aa85e2afaa86e9e1aa87aa88aa89aa8ae2b1aa8baa8caa8daa8eaa8faa90aa91aa92e2b2aa93aa94aa95aa96aa97aa98aa99aa9aaa9baa9caa9de2b3cca1aa9ee2b4aa9faaa0ab40ab41ab42ab43ab44ab45ab46ab47ab48ab49ab4aab4be2b5ab4cab4dab4eab4fab50d0feab51ab52c2caab53d3f1ab54cdf5ab55ab56e7e0ab57ab58e7e1ab59ab5aab5bab5cbec1ab5dab5eab5fab60c2eaab61ab62ab63e7e4ab64ab65e7e3ab66ab67ab68ab69ab6aab6bcde6ab6cc3b5ab6dab6ee7e2bbb7cfd6ab6fc1e1e7e9ab70ab71ab72e7e8ab73ab74e7f4b2a3ab75ab76ab77ab78e7eaab79e7e6ab7aab7bab7cab7dab7ee7ece7ebc9baab80ab81d5e4ab82e7e5b7a9e7e7ab83ab84ab85ab86ab87ab88ab89e7eeab8aab8bab8cab8de7f3ab8ed6e9ab8fab90ab91ab92e7edab93e7f2ab94e7f1ab95ab96ab97b0e0ab98ab99ab9aab9be7f5ab9cab9dab9eab9faba0ac40ac41ac42ac43ac44ac45ac46ac47ac48ac49ac4ac7f2ac4bc0c5c0edac4cac4dc1f0e7f0ac4eac4fac50ac51e7f6cbf6ac52ac53ac54ac55ac56ac57ac58ac59ac5ae8a2e8a1ac5bac5cac5dac5eac5fac60d7c1ac61ac62e7fae7f9ac63e7fbac64e7f7ac65e7feac66e7fdac67e7fcac68ac69c1d5c7d9c5fdc5c3ac6aac6bac6cac6dac6ec7edac6fac70ac71ac72e8a3ac73ac74ac75ac76ac77ac78ac79ac7aac7bac7cac7dac7eac80ac81ac82ac83ac84ac85ac86e8a6ac87e8a5ac88e8a7baf7e7f8e8a4ac89c8f0c9aaac8aac8bac8cac8dac8eac8fac90ac91ac92ac93ac94ac95ac96e8a9ac97ac98b9e5ac99ac9aac9bac9cac9dd1fee8a8ac9eac9faca0ad40ad41ad42e8aaad43e8ade8aead44c1a7ad45ad46ad47e8afad48ad49ad4ae8b0ad4bad4ce8acad4de8b4ad4ead4fad50ad51ad52ad53ad54ad55ad56ad57ad58e8abad59e8b1ad5aad5bad5cad5dad5ead5fad60ad61e8b5e8b2e8b3ad62ad63ad64ad65ad66ad67ad68ad69ad6aad6bad6cad6dad6ead6fad70ad71e8b7ad72ad73ad74ad75ad76ad77ad78ad79ad7aad7bad7cad7dad7ead80ad81ad82ad83ad84ad85ad86ad87ad88ad89e8b6ad8aad8bad8cad8dad8ead8fad90ad91ad92b9cfad93f0acad94f0adad95c6b0b0eac8bfad96cddfad97ad98ad99ad9aad9bad9cad9dcecdeab1ad9ead9fada0ae40eab2ae41c6bfb4c9ae42ae43ae44ae45ae46ae47ae48eab3ae49ae4aae4bae4cd5e7ae4dae4eae4fae50ae51ae52ae53ae54ddf9ae55eab4ae56eab5ae57eab6ae58ae59ae5aae5bb8cadfb0c9f5ae5cccf0ae5dae5ec9faae5fae60ae61ae62ae63c9fbae64ae65d3c3cba6ae66b8a6f0aeb1c2ae67e5b8ccefd3c9bcd7c9eaae68b5e7ae69c4d0b5e9ae6aeeaebbadae6bae6ce7deae6deeafae6eae6fae70ae71b3a9ae72ae73eeb2ae74ae75eeb1bde7ae76eeb0ceb7ae77ae78ae79ae7ac5cfae7bae7cae7dae7ec1f4dbceeeb3d0f3ae80ae81ae82ae83ae84ae85ae86ae87c2d4c6e8ae88ae89ae8ab7acae8bae8cae8dae8eae8fae90ae91eeb4ae92b3ebae93ae94ae95bbfbeeb5ae96ae97ae98ae99ae9ae7dcae9bae9cae9deeb6ae9eae9fbdaeaea0af40af41af42f1e2af43af44af45cae8af46d2c9f0daaf47f0dbaf48f0dcc1c6af49b8edbeceaf4aaf4bf0deaf4cc5b1f0ddd1f1af4df0e0b0ccbdeaaf4eaf4faf50af51af52d2dff0dfaf53b4afb7e8f0e6f0e5c6a3f0e1f0e2b4c3af54af55f0e3d5eeaf56af57ccdbbed2bcb2af58af59af5af0e8f0e7f0e4b2a1af5bd6a2d3b8beb7c8acaf5caf5df0eaaf5eaf5faf60af61d1f7af62d6ccbadbf0e9af63b6bbaf64af65cdb4af66af67c6a6af68af69af6ac1a1f0ebf0eeaf6bf0edf0f0f0ecaf6cbbbef0efaf6daf6eaf6faf70ccb5f0f2af71af72b3d5af73af74af75af76b1d4af77af78f0f3af79af7af0f4f0f6b4e1af7bf0f1af7cf0f7af7daf7eaf80af81f0faaf82f0f8af83af84af85f0f5af86af87af88af89f0fdaf8af0f9f0fcf0feaf8bf1a1af8caf8daf8ecec1f1a4af8ff1a3af90c1f6f0fbcaddaf91af92b4f1b1f1ccb1af93f1a6af94af95f1a7af96af97f1acd5cef1a9af98af99c8b3af9aaf9baf9cf1a2af9df1abf1a8f1a5af9eaf9ff1aaafa0b040b041b042b043b044b045b046b0a9f1adb047b048b049b04ab04bb04cf1afb04df1b1b04eb04fb050b051b052f1b0b053f1aeb054b055b056b057d1a2b058b059b05ab05bb05cb05db05ef1b2b05fb060b061f1b3b062b063b064b065b066b067b068b069b9efb06ab06bb5c7b06cb0d7b0d9b06db06eb06fd4edb070b5c4b071bdd4bbcaf0a7b072b073b8deb074b075f0a8b076b077b0a8b078f0a9b079b07acdeeb07bb07cf0aab07db07eb080b081b082b083b084b085b086b087f0abb088b089b08ab08bb08cb08db08eb08fb090c6a4b091b092d6e5f1e4b093f1e5b094b095b096b097b098b099b09ab09bb09cb09dc3f3b09eb09fd3dbb0a0b140d6d1c5e8b141d3afb142d2e6b143b144eec1b0bbd5b5d1cebce0bad0b145bff8b146b8c7b5c1c5ccb147b148caa2b149b14ab14bc3cbb14cb14db14eb14fb150eec2b151b152b153b154b155b156b157b158c4bfb6a2b159edecc3a4b15ad6b1b15bb15cb15dcfe0edefb15eb15fc5ceb160b6dcb161b162caa1b163b164ededb165b166edf0edf1c3bcb167bfb4b168edeeb169b16ab16bb16cb16db16eb16fb170b171b172b173edf4edf2b174b175b176b177d5e6c3dfb178edf3b179b17ab17bedf6b17cd5a3d1a3b17db17eb180edf5b181c3d0b182b183b184b185b186edf7bff4beecedf8b187ccf7b188d1dbb189b18ab18bd7c5d5f6b18cedfcb18db18eb18fedfbb190b191b192b193b194b195b196b197edf9edfab198b199b19ab19bb19cb19db19eb19fedfdbea6b1a0b240b241b242b243cbafeea1b6bdb244eea2c4c0b245edfeb246b247bddeb2c7b248b249b24ab24bb24cb24db24eb24fb250b251b252b253b6c3b254b255b256eea5d8baeea3eea6b257b258b259c3e9b3f2b25ab25bb25cb25db25eb25feea7eea4cfb9b260b261eea8c2f7b262b263b264b265b266b267b268b269b26ab26bb26cb26deea9eeaab26edeabb26fb270c6b3b271c7c6b272d6f5b5c9b273cbb2b274b275b276eeabb277b278cdabb279eeacb27ab27bb27cb27db27ed5b0b280eeadb281f6c4b282b283b284b285b286b287b288b289b28ab28bb28cb28db28edbc7b28fb290b291b292b293b294b295b296b297b4a3b298b299b29ac3acf1e6b29bb29cb29db29eb29fcab8d2d3b2a0d6aab340eff2b341bed8b342bdc3eff3b6ccb0abb343b344b345b346caafb347b348edb6b349edb7b34ab34bb34cb34dcef9b7afbff3edb8c2ebc9b0b34eb34fb350b351b352b353edb9b354b355c6f6bfb3b356b357b358edbcc5f8b359d1d0b35ad7a9edbaedbbb35bd1e2b35cedbfedc0b35dedc4b35eb35fb360edc8b361edc6edced5e8b362edc9b363b364edc7edbeb365b366c5e9b367b368b369c6c6b36ab36bc9e9d4d2edc1edc2edc3edc5b36cc0f9b36db4a1b36eb36fb370b371b9e8b372edd0b373b374b375b376edd1b377edcab378edcfb379cef8b37ab37bcbb6edccedcdb37cb37db37eb380b381cff5b382b383b384b385b386b387b388b389b38ab38bb38cb38dedd2c1f2d3b2edcbc8b7b38eb38fb390b391b392b393b394b395bcefb396b397b398b399c5f0b39ab39bb39cb39db39eb39fb3a0b440b441b442edd6b443b5efb444b445c2b5b0adcbe9b446b447b1aeb448edd4b449b44ab44bcdebb5e2b44cedd5edd3edd7b44db44eb5fab44fedd8b450edd9b451eddcb452b1ccb453b454b455b456b457b458b459b45ac5f6bceeeddaccbcb2eab45bb45cb45db45eeddbb45fb460b461b462c4ebb463b464b4c5b465b466b467b0f5b468b469b46aeddfc0dab4e8b46bb46cb46db46ec5cdb46fb470b471edddbfc4b472b473b474eddeb475b476b477b478b479b47ab47bb47cb47db47eb480b481b482b483c4a5b484b485b486ede0b487b488b489b48ab48bede1b48cede3b48db48ec1d7b48fb490bbc7b491b492b493b494b495b496bdb8b497b498b499ede2b49ab49bb49cb49db49eb49fb4a0b540b541b542b543b544b545ede4b546b547b548b549b54ab54bb54cb54db54eb54fede6b550b551b552b553b554ede5b555b556b557b558b559b55ab55bb55cb55db55eb55fb560b561b562b563ede7b564b565b566b567b568cabeeceac0f1b569c9e7b56aecebc6eeb56bb56cb56db56eececb56fc6edecedb570b571b572b573b574b575b576b577b578ecf0b579b57ad7e6ecf3b57bb57cecf1eceeecefd7a3c9f1cbeeecf4b57decf2b57eb580cfe9b581ecf6c6b1b582b583b584b585bcc0b586ecf5b587b588b589b58ab58bb58cb58db5bbbbf6b58eecf7b58fb590b591b592b593d9f7bdfbb594b595c2bbecf8b596b597b598b599ecf9b59ab59bb59cb59db8a3b59eb59fb5a0b640b641b642b643b644b645b646ecfab647b648b649b64ab64bb64cb64db64eb64fb650b651b652ecfbb653b654b655b656b657b658b659b65ab65bb65cb65decfcb65eb65fb660b661b662d3edd8aec0ebb663c7ddbaccb664d0e3cbbdb665cdbab666b667b8d1b668b669b1fcb66ac7efb66bd6d6b66cb66db66ebfc6c3ebb66fb670eff5b671b672c3d8b673b674b675b676b677b678d7e2b679b67ab67beff7b3d3b67cc7d8d1edb67dd6c8b67eeff8b680eff6b681bbfdb3c6b682b683b684b685b686b687b688bdd5b689b68ad2c6b68bbbe0b68cb68dcfa1b68eeffceffbb68fb690eff9b691b692b693b694b3ccb695c9d4cbb0b696b697b698b699b69aeffeb69bb69cb0deb69db69ed6c9b69fb6a0b740effdb741b3edb742b743f6d5b744b745b746b747b748b749b74ab74bb74cb74db74eb74fb750b751b752cec8b753b754b755f0a2b756f0a1b757b5bebcdabbfcb758b8e5b759b75ab75bb75cb75db75ec4c2b75fb760b761b762b763b764b765b766b767b768f0a3b769b76ab76bb76cb76dcbebb76eb76fb770b771b772b773b774b775b776b777b778b779b77ab77bb77cb77db77eb780b781b782b783b784b785b786f0a6b787b788b789d1a8b78abebfc7eef1b6f1b7bfd5b78bb78cb78db78eb4a9f1b8cdbbb78fc7d4d5adb790f1b9b791f1bab792b793b794b795c7cfb796b797b798d2a4d6cfb799b79af1bbbdd1b4b0bebdb79bb79cb79db4dcced1b79ebfdff1bdb79fb7a0b840b841bffaf1bcb842f1bfb843b844b845f1bef1c0b846b847b848b849b84af1c1b84bb84cb84db84eb84fb850b851b852b853b854b855c1feb856b857b858b859b85ab85bb85cb85db85eb85fb860c1a2b861b862b863b864b865b866b867b868b869b86acafab86bb86cd5beb86db86eb86fb870bebabeb9d5c2b871b872bfa2b873cdaff1b5b874b875b876b877b878b879bddfb87ab6cbb87bb87cb87db87eb880b881b882b883b884d6f1f3c3b885b886f3c4b887b8cdb888b889b88af3c6f3c7b88bb0cab88cf3c5b88df3c9cbf1b88eb88fb890f3cbb891d0a6b892b893b1caf3c8b894b895b896f3cfb897b5d1b898b899f3d7b89af3d2b89bb89cb89df3d4f3d3b7fbb89eb1bfb89ff3cef3cab5dab8a0f3d0b940b941f3d1b942f3d5b943b944b945b946f3cdb947bce3b948c1fdb949f3d6b94ab94bb94cb94db94eb94ff3dab950f3ccb951b5c8b952bdeef3dcb953b954b7a4bff0d6fecdb2b955b4f0b956b2dfb957f3d8b958f3d9c9b8b959f3ddb95ab95bf3deb95cf3e1b95db95eb95fb960b961b962b963b964b965b966b967f3dfb968b969f3e3f3e2b96ab96bf3dbb96cbfeab96db3efb96ef3e0b96fb970c7a9b971bcf2b972b973b974b975f3ebb976b977b978b979b97ab97bb97cb9bfb97db97ef3e4b980b981b982b2adbbfeb983cbe3b984b985b986b987f3edf3e9b988b989b98ab9dcf3eeb98bb98cb98df3e5f3e6f3eac2e1f3ecf3eff3e8bcfdb98eb98fb990cfe4b991b992f3f0b993b994b995f3e7b996b997b998b999b99ab99bb99cb99df3f2b99eb99fb9a0ba40d7adc6aaba41ba42ba43ba44f3f3ba45ba46ba47ba48f3f1ba49c2a8ba4aba4bba4cba4dba4eb8ddf3f5ba4fba50f3f4ba51ba52ba53b4dbba54ba55ba56f3f6f3f7ba57ba58ba59f3f8ba5aba5bba5cc0baba5dba5ec0e9ba5fba60ba61ba62ba63c5f1ba64ba65ba66ba67f3fbba68f3faba69ba6aba6bba6cba6dba6eba6fba70b4d8ba71ba72ba73f3fef3f9ba74ba75f3fcba76ba77ba78ba79ba7aba7bf3fdba7cba7dba7eba80ba81ba82ba83ba84f4a1ba85ba86ba87ba88ba89ba8af4a3bbc9ba8bba8cf4a2ba8dba8eba8fba90ba91ba92ba93ba94ba95ba96ba97ba98ba99f4a4ba9aba9bba9cba9dba9eba9fb2bef4a6f4a5baa0bb40bb41bb42bb43bb44bb45bb46bb47bb48bb49bcaebb4abb4bbb4cbb4dbb4ebb4fbb50bb51bb52bb53bb54bb55bb56bb57bb58bb59bb5abb5bbb5cbb5dbb5ebb5fbb60bb61bb62bb63bb64bb65bb66bb67bb68bb69bb6abb6bbb6cbb6dbb6ec3d7d9e1bb6fbb70bb71bb72bb73bb74c0e0f4ccd7d1bb75bb76bb77bb78bb79bb7abb7bbb7cbb7dbb7ebb80b7dbbb81bb82bb83bb84bb85bb86bb87f4cec1a3bb88bb89c6c9bb8ab4d6d5b3bb8bbb8cbb8df4d0f4cff4d1cbdabb8ebb8ff4d2bb90d4c1d6e0bb91bb92bb93bb94b7e0bb95bb96bb97c1b8bb98bb99c1bbf4d3beacbb9abb9bbb9cbb9dbb9eb4e2bb9fbba0f4d4f4d5beabbc40bc41f4d6bc42bc43bc44f4dbbc45f4d7f4dabc46bafdbc47f4d8f4d9bc48bc49bc4abc4bbc4cbc4dbc4eb8e2ccc7f4dcbc4fb2dabc50bc51c3d3bc52bc53d4e3bfb7bc54bc55bc56bc57bc58bc59bc5af4ddbc5bbc5cbc5dbc5ebc5fbc60c5b4bc61bc62bc63bc64bc65bc66bc67bc68f4e9bc69bc6acfb5bc6bbc6cbc6dbc6ebc6fbc70bc71bc72bc73bc74bc75bc76bc77bc78cec9bc79bc7abc7bbc7cbc7dbc7ebc80bc81bc82bc83bc84bc85bc86bc87bc88bc89bc8abc8bbc8cbc8dbc8ecbd8bc8fcbf7bc90bc91bc92bc93bdf4bc94bc95bc96d7cfbc97bc98bc99c0dbbc9abc9bbc9cbc9dbc9ebc9fbca0bd40bd41bd42bd43bd44bd45bd46bd47bd48bd49bd4abd4bbd4cbd4dbd4ebd4fbd50bd51bd52bd53bd54bd55bd56bd57bd58bd59bd5abd5bbd5cbd5dbd5ebd5fbd60bd61bd62bd63bd64bd65bd66bd67bd68bd69bd6abd6bbd6cbd6dbd6ebd6fbd70bd71bd72bd73bd74bd75bd76d0f5bd77bd78bd79bd7abd7bbd7cbd7dbd7ef4eabd80bd81bd82bd83bd84bd85bd86bd87bd88bd89bd8abd8bbd8cbd8dbd8ebd8fbd90bd91bd92bd93bd94bd95bd96bd97bd98bd99bd9abd9bbd9cbd9dbd9ebd9fbda0be40be41be42be43be44be45be46be47be48be49be4abe4bbe4cf4ebbe4dbe4ebe4fbe50be51be52be53f4ecbe54be55be56be57be58be59be5abe5bbe5cbe5dbe5ebe5fbe60be61be62be63be64be65be66be67be68be69be6abe6bbe6cbe6dbe6ebe6fbe70be71be72be73be74be75be76be77be78be79be7abe7bbe7cbe7dbe7ebe80be81be82be83be84be85be86be87be88be89be8abe8bbe8cbe8dbe8ebe8fbe90be91be92be93be94be95be96be97be98be99be9abe9bbe9cbe9dbe9ebe9fbea0bf40bf41bf42bf43bf44bf45bf46bf47bf48bf49bf4abf4bbf4cbf4dbf4ebf4fbf50bf51bf52bf53bf54bf55bf56bf57bf58bf59bf5abf5bbf5cbf5dbf5ebf5fbf60bf61bf62bf63bf64bf65bf66bf67bf68bf69bf6abf6bbf6cbf6dbf6ebf6fbf70bf71bf72bf73bf74bf75bf76bf77bf78bf79bf7abf7bbf7cbf7dbf7ebf80f7e3bf81bf82bf83bf84bf85b7b1bf86bf87bf88bf89bf8af4edbf8bbf8cbf8dbf8ebf8fbf90bf91bf92bf93bf94bf95bf96bf97bf98bf99bf9abf9bbf9cbf9dbf9ebf9fbfa0c040c041c042c043c044c045c046c047c048c049c04ac04bc04cc04dc04ec04fc050c051c052c053c054c055c056c057c058c059c05ac05bc05cc05dc05ec05fc060c061c062c063d7ebc064c065c066c067c068c069c06ac06bc06cc06dc06ec06fc070c071c072c073c074c075c076c077c078c079c07ac07bf4eec07cc07dc07ee6f9bec0e6fabaece6fbcfcbe6fcd4bcbcb6e6fde6febccdc8d2ceb3e7a1c080b4bfe7a2c9b4b8d9c4c9c081d7ddc2dab7d7d6bdcec6b7c4c082c083c5a6e7a3cfdfe7a4e7a5e7a6c1b7d7e9c9f0cfb8d6afd6d5e7a7b0ede7a8e7a9c9dcd2efbeade7aab0f3c8debde1e7abc8c6c084e7acbbe6b8f8d1a4e7adc2e7bef8bdcacdb3e7aee7afbeeed0e5c085cbe7ccd0bccce7b0bca8d0f7e7b1c086d0f8e7b2e7b3b4c2e7b4e7b5c9feceacc3e0e7b7b1c1b3f1c087e7b8e7b9d7dbd5c0e7bac2ccd7bae7bbe7bce7bdbceac3e5c0c2e7bee7bfbca9c088e7c0e7c1e7b6b6d0e7c2c089e7c3e7c4bbbab5dec2c6b1e0e7c5d4b5e7c6b8bfe7c8e7c7b7ecc08ae7c9b2f8e7cae7cbe7cce7cde7cee7cfe7d0d3a7cbf5e7d1e7d2e7d3e7d4c9c9e7d5e7d6e7d7e7d8e7d9bdc9e7daf3bec08bb8d7c08cc8b1c08dc08ec08fc090c091c092c093f3bfc094f3c0f3c1c095c096c097c098c099c09ac09bc09cc09dc09eb9decdf8c09fc0a0d8e8bab1c140c2deeeb7c141b7a3c142c143c144c145eeb9c146eeb8b0d5c147c148c149c14ac14beebbd5d6d7efc14cc14dc14ed6c3c14fc150eebdcaf0c151eebcc152c153c154c155eebec156c157c158c159eec0c15ac15beebfc15cc15dc15ec15fc160c161c162c163d1f2c164c7bcc165c3c0c166c167c168c169c16ab8e1c16bc16cc16dc16ec16fc1e7c170c171f4c6d0dff4c7c172cfdbc173c174c8bac175c176f4c8c177c178c179c17ac17bc17cc17df4c9f4cac17ef4cbc180c181c182c183c184d9fab8fec185c186e5f1d3f0c187f4e0c188ceccc189c18ac18bb3e1c18cc18dc18ec18ff1b4c190d2eec191f4e1c192c193c194c195c196cfe8f4e2c197c198c7ccc199c19ac19bc19cc19dc19eb5d4b4e4f4e4c19fc1a0c240f4e3f4e5c241c242f4e6c243c244c245c246f4e7c247bab2b0bfc248f4e8c249c24ac24bc24cc24dc24ec24fb7add2edc250c251c252d2abc0cfc253bfbceba3d5dfeac8c254c255c256c257f1f3b6f8cba3c258c259c4cdc25af1e7c25bf1e8b8fbf1e9bac4d4c5b0d2c25cc25df1eac25ec25fc260f1ebc261f1ecc262c263f1edf1eef1eff1f1f1f0c5d5c264c265c266c267c268c269f1f2c26ab6fac26bf1f4d2aedec7cbcac26cc26db3dcc26eb5a2c26fb9a2c270c271c4f4f1f5c272c273f1f6c274c275c276c1c4c1fbd6b0f1f7c277c278c279c27af1f8c27bc1aac27cc27dc27ec6b8c280bedbc281c282c283c284c285c286c287c288c289c28ac28bc28cc28dc28ef1f9b4cfc28fc290c291c292c293c294f1fac295c296c297c298c299c29ac29bc29cc29dc29ec29fc2a0c340edb2edb1c341c342cbe0d2dec343cbc1d5d8c344c8e2c345c0dfbca1c346c347c348c349c34ac34bebc1c34cc34dd0a4c34ed6e2c34fb6c7b8d8ebc0b8cec350ebbfb3a6b9c9d6abc351b7f4b7cac352c353c354bce7b7beebc6c355ebc7b0b9bfcfc356ebc5d3fdc357ebc8c358c359ebc9c35ac35bb7cec35cebc2ebc4c9f6d6d7d5cdd0b2ebcfceb8ebd0c35db5a8c35ec35fc360c361c362b1b3ebd2cca5c363c364c365c366c367c368c369c5d6ebd3c36aebd1c5dfebcecaa4ebd5b0fbc36bc36cbafac36dc36ed8b7f1e3c36febcaebcbebccebcdebd6e6c0ebd9c370bfe8d2c8ebd7ebdcb8ecebd8c371bdbac372d0d8c373b0b7c374ebddc4dcc375c376c377c378d6acc379c37ac37bb4e0c37cc37dc2f6bcb9c37ec380ebdaebdbd4e0c6eac4d4ebdfc5a7d9f5c381b2b1c382ebe4c383bdc5c384c385c386ebe2c387c388c389c38ac38bc38cc38dc38ec38fc390c391c392c393ebe3c394c395b8acc396cdd1ebe5c397c398c399ebe1c39ac1b3c39bc39cc39dc39ec39fc6a2c3a0c440c441c442c443c444c445ccf3c446ebe6c447c0b0d2b8ebe7c448c449c44ab8afb8adc44bebe8c7bbcdf3c44cc44dc44eebeaebebc44fc450c451c452c453ebedc454c455c456c457d0c8c458ebf2c459ebeec45ac45bc45cebf1c8f9c45dd1fcebecc45ec45febe9c460c461c462c463b8b9cfd9c4e5ebefebf0ccdacdc8b0f2c464ebf6c465c466c467c468c469ebf5c46ab2b2c46bc46cc46dc46eb8e0c46febf7c470c471c472c473c474c475b1ecc476c477ccc5c4a4cfa5c478c479c47ac47bc47cebf9c47dc47eeca2c480c5f2c481ebfac482c483c484c485c486c487c488c489c9c5c48ac48bc48cc48dc48ec48fe2dfebfec490c491c492c493cdceeca1b1dbd3b7c494c495d2dcc496c497c498ebfdc499ebfbc49ac49bc49cc49dc49ec49fc4a0c540c541c542c543c544c545c546c547c548c549c54ac54bc54cc54dc54eb3bcc54fc550c551eab0c552c553d7d4c554f4abb3f4c555c556c557c558c559d6c1d6c2c55ac55bc55cc55dc55ec55fd5e9becac560f4a7c561d2a8f4a8f4a9c562f4aabecbd3dfc563c564c565c566c567c9e0c9e1c568c569f3c2c56acae6c56bccf2c56cc56dc56ec56fc570c571e2b6cbb4c572cee8d6dbc573f4adf4aef4afc574c575c576c577f4b2c578babdf4b3b0e3f4b0c579f4b1bda2b2d5c57af4b6f4b7b6e6b2b0cfcff4b4b4acc57bf4b5c57cc57df4b8c57ec580c581c582c583f4b9c584c585cda7c586f4bac587f4bbc588c589c58af4bcc58bc58cc58dc58ec58fc590c591c592cbd2c593f4bdc594c595c596c597f4bec598c599c59ac59bc59cc59dc59ec59ff4bfc5a0c640c641c642c643f4dec1bcbce8c644c9abd1dee5f5c645c646c647c648dcb3d2d5c649c64adcb4b0acdcb5c64bc64cbddac64ddcb9c64ec64fc650d8c2c651dcb7d3f3c652c9d6dcbadcb6c653dcbbc3a2c654c655c656c657dcbcdcc5dcbdc658c659cedfd6a5c65adccfc65bdccdc65cc65ddcd2bde6c2abc65edcb8dccbdccedcbeb7d2b0c5dcc7d0bedcc1bba8c65fb7bcdcccc660c661dcc6dcbfc7dbc662c663c664d1bfdcc0c665c666dccac667c668dcd0c669c66aceaddcc2c66bdcc3dcc8dcc9b2d4dcd1cbd5c66cd4b7dcdbdcdfcca6dce6c66dc3e7dcdcc66ec66fbfc1dcd9c670b0fab9b6dce5dcd3c671dcc4dcd6c8f4bfe0c672c673c674c675c9bbc676c677c678b1bdc679d3a2c67ac67bdcdac67cc67ddcd5c67ec6bbc680dcdec681c682c683c684c685d7c2c3afb7b6c7d1c3a9dce2dcd8dcebdcd4c686c687dcddc688bea5dcd7c689dce0c68ac68bdce3dce4c68cdcf8c68dc68edce1dda2dce7c68fc690c691c692c693c694c695c696c697c698bcebb4c4c699c69ac3a3b2e7dcfac69bdcf2c69cdcefc69ddcfcdceed2f0b2e8c69ec8d7c8e3dcfbc69fdcedc6a0c740c741dcf7c742c743dcf5c744c745bea3dcf4c746b2ddc747c748c749c74ac74bdcf3bcf6dce8bbc4c74cc0f3c74dc74ec74fc750c751bcd4dce9dceac752dcf1dcf6dcf9b5b4c753c8d9bbe7dcfedcfdd3abdda1dda3dda5d2f1dda4dda6dda7d2a9c754c755c756c757c758c759c75abac9dda9c75bc75cddb6ddb1ddb4c75dc75ec75fc760c761c762c763ddb0c6cec764c765c0f2c766c767c768c769c9afc76ac76bc76cdcecddaec76dc76ec76fc770ddb7c771c772dcf0ddafc773ddb8c774ddacc775c776c777c778c779c77ac77bddb9ddb3ddadc4aac77cc77dc77ec780dda8c0b3c1abddaaddabc781ddb2bbf1ddb5d3a8ddbac782ddbbc3a7c783c784ddd2ddbcc785c786c787ddd1c788b9bdc789c78abed5c78bbefac78cc78dbacac78ec78fc790c791ddcac792ddc5c793ddbfc794c795c796b2cbddc3c797ddcbb2a4ddd5c798c799c79addbec79bc79cc79dc6d0ddd0c79ec79fc7a0c840c841ddd4c1e2b7c6c842c843c844c845c846ddceddcfc847c848c849ddc4c84ac84bc84cddbdc84dddcdccd1c84eddc9c84fc850c851c852ddc2c3c8c6bcceaeddccc853ddc8c854c855c856c857c858c859ddc1c85ac85bc85cddc6c2dcc85dc85ec85fc860c861c862d3a9d3aaddd3cff4c8f8c863c864c865c866c867c868c869c86adde6c86bc86cc86dc86ec86fc870ddc7c871c872c873dde0c2e4c874c875c876c877c878c879c87ac87bdde1c87cc87dc87ec880c881c882c883c884c885c886ddd7c887c888c889c88ac88bd6f8c88cddd9ddd8b8f0ddd6c88dc88ec88fc890c6cfc891b6adc892c893c894c895c896dde2c897baf9d4e1dde7c898c899c89ab4d0c89bdddac89cbffbdde3c89ddddfc89eddddc89fc8a0c940c941c942c943c944b5d9c945c946c947c948dddbdddcdddec949bdafdde4c94adde5c94bc94cc94dc94ec94fc950c951c952ddf5c953c3c9c954c955cbe2c956c957c958c959ddf2c95ac95bc95cc95dc95ec95fc960c961c962c963c964c965c966d8e1c967c968c6d1c969ddf4c96ac96bc96cd5f4ddf3ddf0c96dc96eddecc96fddefc970dde8c971c972d0eec973c974c975c976c8d8ddeec977c978dde9c979c97addeacbf2c97bddedc97cc97db1cdc97ec980c981c982c983c984c0b6c985bcbbddf1c986c987ddf7c988ddf6ddebc989c98ac98bc98cc98dc5eec98ec98fc990ddfbc991c992c993c994c995c996c997c998c999c99ac99bdea4c99cc99ddea3c99ec99fc9a0ca40ca41ca42ca43ca44ca45ca46ca47ca48ddf8ca49ca4aca4bca4cc3efca4dc2fbca4eca4fca50d5e1ca51ca52ceb5ca53ca54ca55ca56ddfdca57b2ccca58ca59ca5aca5bca5cca5dca5eca5fca60c4e8cadfca61ca62ca63ca64ca65ca66ca67ca68ca69ca6ac7beddfaddfcddfedea2b0aab1ceca6bca6cca6dca6eca6fdeacca70ca71ca72ca73dea6bdb6c8efca74ca75ca76ca77ca78ca79ca7aca7bca7cca7dca7edea1ca80ca81dea5ca82ca83ca84ca85dea9ca86ca87ca88ca89ca8adea8ca8bca8cca8ddea7ca8eca8fca90ca91ca92ca93ca94ca95ca96deadca97d4ccca98ca99ca9aca9bdeb3deaadeaeca9cca9dc0d9ca9eca9fcaa0cb40cb41b1a1deb6cb42deb1cb43cb44cb45cb46cb47cb48cb49deb2cb4acb4bcb4ccb4dcb4ecb4fcb50cb51cb52cb53cb54d1a6deb5cb55cb56cb57cb58cb59cb5acb5bdeafcb5ccb5dcb5edeb0cb5fd0bdcb60cb61cb62deb4caeddeb9cb63cb64cb65cb66cb67cb68deb8cb69deb7cb6acb6bcb6ccb6dcb6ecb6fcb70debbcb71cb72cb73cb74cb75cb76cb77bde5cb78cb79cb7acb7bcb7cb2d8c3eacb7dcb7edebacb80c5bacb81cb82cb83cb84cb85cb86debccb87cb88cb89cb8acb8bcb8ccb8dccd9cb8ecb8fcb90cb91b7aacb92cb93cb94cb95cb96cb97cb98cb99cb9acb9bcb9ccb9dcb9ecb9fcba0cc40cc41d4e5cc42cc43cc44debdcc45cc46cc47cc48cc49debfcc4acc4bcc4ccc4dcc4ecc4fcc50cc51cc52cc53cc54c4a2cc55cc56cc57cc58dec1cc59cc5acc5bcc5ccc5dcc5ecc5fcc60cc61cc62cc63cc64cc65cc66cc67cc68debecc69dec0cc6acc6bcc6ccc6dcc6ecc6fcc70cc71cc72cc73cc74cc75cc76cc77d5bacc78cc79cc7adec2cc7bcc7ccc7dcc7ecc80cc81cc82cc83cc84cc85cc86cc87cc88cc89cc8acc8bf2aebba2c2b2c5b0c2c7cc8ccc8df2afcc8ecc8fcc90cc91cc92d0e9cc93cc94cc95d3ddcc96cc97cc98ebbdcc99cc9acc9bcc9ccc9dcc9ecc9fcca0b3e6f2b0cd40f2b1cd41cd42caadcd43cd44cd45cd46cd47cd48cd49bae7f2b3f2b5f2b4cbe4cfbaf2b2cab4d2cfc2eccd4acd4bcd4ccd4dcd4ecd4fcd50cec3f2b8b0f6f2b7cd51cd52cd53cd54cd55f2becd56b2cfcd57cd58cd59cd5acd5bcd5cd1c1f2bacd5dcd5ecd5fcd60cd61f2bcd4e9cd62cd63f2bbf2b6f2bff2bdcd64f2b9cd65cd66f2c7f2c4f2c6cd67cd68f2caf2c2f2c0cd69cd6acd6bf2c5cd6ccd6dcd6ecd6fcd70d6fbcd71cd72cd73f2c1cd74c7f9c9dfcd75f2c8b9c6b5b0cd76cd77f2c3f2c9f2d0f2d6cd78cd79bbd7cd7acd7bcd7cf2d5cddccd7dd6ebcd7ecd80f2d2f2d4cd81cd82cd83cd84b8f2cd85cd86cd87cd88f2cbcd89cd8acd8bf2cec2f9cd8cd5ddf2ccf2cdf2cff2d3cd8dcd8ecd8ff2d9d3bccd90cd91cd92cd93b6eacd94caf1cd95b7e4f2d7cd96cd97cd98f2d8f2daf2ddf2dbcd99cd9af2dccd9bcd9ccd9dcd9ed1d1f2d1cd9fcdc9cda0cecfd6a9ce40f2e3ce41c3dbce42f2e0ce43ce44c0aff2ecf2dece45f2e1ce46ce47ce48f2e8ce49ce4ace4bce4cf2e2ce4dce4ef2e7ce4fce50f2e6ce51ce52f2e9ce53ce54ce55f2dfce56ce57f2e4f2eace58ce59ce5ace5bce5cce5dce5ed3acf2e5b2f5ce5fce60f2f2ce61d0abce62ce63ce64ce65f2f5ce66ce67ce68bbc8ce69f2f9ce6ace6bce6cce6dce6ece6ff2f0ce70ce71f2f6f2f8f2face72ce73ce74ce75ce76ce77ce78ce79f2f3ce7af2f1ce7bce7cce7dbafbce7eb5fbce80ce81ce82ce83f2eff2f7f2edf2eece84ce85ce86f2ebf3a6ce87f3a3ce88ce89f3a2ce8ace8bf2f4ce8cc8dace8dce8ece8fce90ce91f2fbce92ce93ce94f3a5ce95ce96ce97ce98ce99ce9ace9bc3f8ce9cce9dce9ece9fcea0cf40cf41cf42f2fdcf43cf44f3a7f3a9f3a4cf45f2fccf46cf47cf48f3abcf49f3aacf4acf4bcf4ccf4dc2ddcf4ecf4ff3aecf50cf51f3b0cf52cf53cf54cf55cf56f3a1cf57cf58cf59f3b1f3accf5acf5bcf5ccf5dcf5ef3aff2fef3adcf5fcf60cf61cf62cf63cf64cf65f3b2cf66cf67cf68cf69f3b4cf6acf6bcf6ccf6df3a8cf6ecf6fcf70cf71f3b3cf72cf73cf74f3b5cf75cf76cf77cf78cf79cf7acf7bcf7ccf7dcf7ed0b7cf80cf81cf82cf83f3b8cf84cf85cf86cf87d9f9cf88cf89cf8acf8bcf8ccf8df3b9cf8ecf8fcf90cf91cf92cf93cf94cf95f3b7cf96c8e4f3b6cf97cf98cf99cf9af3bacf9bcf9ccf9dcf9ecf9ff3bbb4c0cfa0d040d041d042d043d044d045d046d047d048d049d04ad04bd04cd04deec3d04ed04fd050d051d052d053f3bcd054d055f3bdd056d057d058d1aad059d05ad05bf4acd0c6d05cd05dd05ed05fd060d061d0d0d1dcd062d063d064d065d066d067cfced068d069bdd6d06ad1c3d06bd06cd06dd06ed06fd070d071bae2e1e9d2c2f1c2b2b9d072d073b1edf1c3d074c9c0b3c4d075d9f2d076cba5d077f1c4d078d079d07ad07bd6d4d07cd07dd07ed080d081f1c5f4c0f1c6d082d4acf1c7d083b0c0f4c1d084d085f4c2d086d087b4fcd088c5dbd089d08ad08bd08cccbbd08dd08ed08fd0e4d090d091d092d093d094cde0d095d096d097d098d099f1c8d09ad9f3d09bd09cd09dd09ed09fd0a0b1bbd140cfaed141d142d143b8a4d144d145d146d147d148f1cad149d14ad14bd14cf1cbd14dd14ed14fd150b2c3c1d1d151d152d7b0f1c9d153d154f1ccd155d156d157d158f1ced159d15ad15bd9f6d15cd2e1d4a3d15dd15ef4c3c8b9d15fd160d161d162d163f4c4d164d165f1cdf1cfbfe3f1d0d166d167f1d4d168d169d16ad16bd16cd16dd16ef1d6f1d1d16fc9d1c5e1d170d171d172c2e3b9fcd173d174f1d3d175f1d5d176d177d178b9d3d179d17ad17bd17cd17dd17ed180f1dbd181d182d183d184d185bad6d186b0fdf1d9d187d188d189d18ad18bf1d8f1d2f1dad18cd18dd18ed18fd190f1d7d191d192d193c8ecd194d195d196d197cdcaf1ddd198d199d19ad19be5bdd19cd19dd19ef1dcd19ff1ded1a0d240d241d242d243d244d245d246d247d248f1dfd249d24acfe5d24bd24cd24dd24ed24fd250d251d252d253d254d255d256d257d258d259d25ad25bd25cd25dd25ed25fd260d261d262d263f4c5bdf3d264d265d266d267d268d269f1e0d26ad26bd26cd26dd26ed26fd270d271d272d273d274d275d276d277d278d279d27ad27bd27cd27df1e1d27ed280d281cef7d282d2aad283f1fbd284d285b8b2d286d287d288d289d28ad28bd28cd28dd28ed28fd290d291d292d293d294d295d296d297d298d299d29ad29bd29cd29dd29ed29fd2a0d340d341d342d343d344d345d346d347d348d349d34ad34bd34cd34dd34ed34fd350d351d352d353d354d355d356d357d358d359d35ad35bd35cd35dd35ebcfbb9dbd35fb9e6c3d9cad3eae8c0c0bef5eae9eaeaeaebd360eaeceaedeaeeeaefbdc7d361d362d363f5fbd364d365d366f5fdd367f5fed368f5fcd369d36ad36bd36cbde2d36df6a1b4a5d36ed36fd370d371f6a2d372d373d374f6a3d375d376d377ecb2d378d379d37ad37bd37cd37dd37ed380d381d382d383d384d1d4d385d386d387d388d389d38ad9ead38bd38cd38dd38ed38fd390d391d392d393d394d395d396d397d398d399d39ad39bd39cd39dd39ed39fd3a0d440d441d442d443d444d445d446d447d448d449d44ad44bd44cd44dd44ed44fd450d451d452d453d454d455d456d457d458d459d45ad45bd45cd45dd45ed45ff6a4d460d461d462d463d464d465d466d467d468eebad469d46ad46bd46cd46dd46ed46fd470d471d472d473d474d475d476d477d478d479d47ad47bd47cd47dd47ed480d481d482d483d484d485d486d487d488d489d48ad48bd48cd48dd48ed48fd490d491d492d493d494d495d496d497d498d499d5b2d49ad49bd49cd49dd49ed49fd4a0d540d541d542d543d544d545d546d547d3feccdcd548d549d54ad54bd54cd54dd54ed54fcac4d550d551d552d553d554d555d556d557d558d559d55ad55bd55cd55dd55ed55fd560d561d562d563d564d565d566d567d568d569d56ad56bd56cd56dd56ed56fd570d571d572d573d574d575d576d577d578d579d57ad57bd57cd57dd57ed580d581d582d583d584d585d586d587d588d589d58ad58bd58cd58dd58ed58fd590d591d592d593d594d595d596d597d598d599d59ad59bd59cd59dd59ed59fd5a0d640d641d642d643d644d645d646d647d648d649d64ad64bd64cd64dd64ed64fd650d651d652d653d654d655d656d657d658d659d65ad65bd65cd65dd65ed65fd660d661d662e5c0d663d664d665d666d667d668d669d66ad66bd66cd66dd66ed66fd670d671d672d673d674d675d676d677d678d679d67ad67bd67cd67dd67ed680d681f6a5d682d683d684d685d686d687d688d689d68ad68bd68cd68dd68ed68fd690d691d692d693d694d695d696d697d698d699d69ad69bd69cd69dd69ed69fd6a0d740d741d742d743d744d745d746d747d748d749d74ad74bd74cd74dd74ed74fd750d751d752d753d754d755d756d757d758d759d75ad75bd75cd75dd75ed75fbeafd760d761d762d763d764c6a9d765d766d767d768d769d76ad76bd76cd76dd76ed76fd770d771d772d773d774d775d776d777d778d779d77ad77bd77cd77dd77ed780d781d782d783d784d785d786d787d788d789d78ad78bd78cd78dd78ed78fd790d791d792d793d794d795d796d797d798daa5bcc6b6a9b8bcc8cfbca5daa6daa7ccd6c8c3daa8c6fdd799d1b5d2e9d1b6bcc7d79abdb2bbe4daa9daaad1c8daabd0edb6efc2dbd79bcbcfb7edc9e8b7c3bef7d6a4daacdaadc6c0d7e7cab6d79cd5a9cbdfd5efdaaed6dfb4cadab0daafd79dd2ebdab1dab2dab3cad4dab4caabdab5dab6b3cfd6efdab7bbb0b5aedab8dab9b9eed1afd2e8dabab8c3cfeab2efdabbdabcd79ebdebcedcd3efdabdcef3dabed3d5bbe5dabfcbb5cbd0dac0c7ebd6eedac1c5b5b6c1dac2b7ccbfcedac3dac4cbaddac5b5f7dac6c1c2d7bbdac7ccb8d79fd2eac4b1dac8b5fdbbd1dac9d0b3dacadacbcebddaccdacddaceb2f7dad1dacfd1e8dad0c3d5dad2d7a0dad3dad4dad5d0bbd2a5b0f9dad6c7abdad7bdf7c3a1dad8dad9c3fdccb7dadadadbc0bec6d7dadcdaddc7b4dadedadfb9c8d840d841d842d843d844d845d846d847d848bbedd849d84ad84bd84cb6b9f4f8d84df4f9d84ed84fcde3d850d851d852d853d854d855d856d857f5b9d858d859d85ad85bebe0d85cd85dd85ed85fd860d861cff3bbbfd862d863d864d865d866d867d868bac0d4a5d869d86ad86bd86cd86dd86ed86fe1d9d870d871d872d873f5f4b1aab2f2d874d875d876d877d878d879d87af5f5d87bd87cf5f7d87dd87ed880bad1f5f6d881c3b2d882d883d884d885d886d887d888f5f9d889d88ad88bf5f8d88cd88dd88ed88fd890d891d892d893d894d895d896d897d898d899d89ad89bd89cd89dd89ed89fd8a0d940d941d942d943d944d945d946d947d948d949d94ad94bd94cd94dd94ed94fd950d951d952d953d954d955d956d957d958d959d95ad95bd95cd95dd95ed95fd960d961d962d963d964d965d966d967d968d969d96ad96bd96cd96dd96ed96fd970d971d972d973d974d975d976d977d978d979d97ad97bd97cd97dd97ed980d981d982d983d984d985d986d987d988d989d98ad98bd98cd98dd98ed98fd990d991d992d993d994d995d996d997d998d999d99ad99bd99cd99dd99ed99fd9a0da40da41da42da43da44da45da46da47da48da49da4ada4bda4cda4dda4eb1b4d5eab8bada4fb9b1b2c6d4f0cfcdb0dcd5cbbbf5d6cab7b7ccb0c6b6b1e1b9bad6fcb9e1b7a1bcfaeadaeadbccf9b9f3eadcb4fbc3b3b7d1bad8eaddd4f4eadebcd6bbdfeadfc1dec2b8d4dfd7caeae0eae1eae4eae2eae3c9deb8b3b6c4eae5caeac9cdb4cdda50da51e2d9c5e2eae6c0b5da52d7b8eae7d7acc8fcd8d3d8cdd4deda53d4f9c9c4d3aeb8d3b3e0da54c9e2f4f6da55da56da57bad5da58f4f7da59da5ad7dfda5bda5cf4f1b8b0d5d4b8cfc6f0da5dda5eda5fda60da61da62da63da64da65b3c3da66da67f4f2b3acda68da69da6ada6bd4bdc7f7da6cda6dda6eda6fda70f4f4da71da72f4f3da73da74da75da76da77da78da79da7ada7bda7ccccbda7dda7eda80c8a4da81da82da83da84da85da86da87da88da89da8ada8bda8cda8df4f5da8ed7e3c5bff5c0da8fda90f5bbda91f5c3da92f5c2da93d6baf5c1da94da95da96d4bef5c4da97f5ccda98da99da9ada9bb0cfb5f8da9cf5c9f5cada9dc5dcda9eda9fdaa0db40f5c5f5c6db41db42f5c7f5cbdb43bee0f5c8b8fadb44db45db46f5d0f5d3db47db48db49bfe7db4ab9f2f5bcf5cddb4bdb4cc2b7db4ddb4edb4fccf8db50bcf9db51f5cef5cff5d1b6e5f5d2db52f5d5db53db54db55db56db57db58db59f5bddb5adb5bdb5cf5d4d3bbdb5db3ecdb5edb5fcca4db60db61db62db63f5d6db64db65db66db67db68db69db6adb6bf5d7bee1f5d8db6cdb6dccdff5dbdb6edb6fdb70db71db72b2c8d7d9db73f5d9db74f5daf5dcdb75f5e2db76db77db78f5e0db79db7adb7bf5dff5dddb7cdb7df5e1db7edb80f5def5e4f5e5db81cce3db82db83e5bfb5b8f5e3f5e8cca3db84db85db86db87db88f5e6f5e7db89db8adb8bdb8cdb8ddb8ef5bedb8fdb90db91db92db93db94db95db96db97db98db99db9ab1c4db9bdb9cf5bfdb9ddb9eb5c5b2e4db9ff5ecf5e9dba0b6d7dc40f5eddc41f5eadc42dc43dc44dc45dc46f5ebdc47dc48b4dadc49d4eadc4adc4bdc4cf5eedc4db3f9dc4edc4fdc50dc51dc52dc53dc54f5eff5f1dc55dc56dc57f5f0dc58dc59dc5adc5bdc5cdc5ddc5ef5f2dc5ff5f3dc60dc61dc62dc63dc64dc65dc66dc67dc68dc69dc6adc6bc9edb9aadc6cdc6dc7fbdc6edc6fb6e3dc70dc71dc72dc73dc74dc75dc76ccc9dc77dc78dc79dc7adc7bdc7cdc7ddc7edc80dc81dc82dc83dc84dc85dc86dc87dc88dc89dc8aeaa6dc8bdc8cdc8ddc8edc8fdc90dc91dc92dc93dc94dc95dc96dc97dc98dc99dc9adc9bdc9cdc9ddc9edc9fdca0dd40dd41dd42dd43dd44dd45dd46dd47dd48dd49dd4add4bdd4cdd4ddd4edd4fdd50dd51dd52dd53dd54dd55dd56dd57dd58dd59dd5add5bdd5cdd5ddd5edd5fdd60dd61dd62dd63dd64dd65dd66dd67dd68dd69dd6add6bdd6cdd6ddd6edd6fdd70dd71dd72dd73dd74dd75dd76dd77dd78dd79dd7add7bdd7cdd7ddd7edd80dd81dd82dd83dd84dd85dd86dd87dd88dd89dd8add8bdd8cdd8ddd8edd8fdd90dd91dd92dd93dd94dd95dd96dd97dd98dd99dd9add9bdd9cdd9ddd9edd9fdda0de40de41de42de43de44de45de46de47de48de49de4ade4bde4cde4dde4ede4fde50de51de52de53de54de55de56de57de58de59de5ade5bde5cde5dde5ede5fde60b3b5d4feb9ecd0f9de61e9edd7aae9eec2d6c8edbae4e9efe9f0e9f1d6e1e9f2e9f3e9f5e9f4e9f6e9f7c7e1e9f8d4d8e9f9bdcede62e9fae9fbbdcfe9fcb8a8c1bee9fdb1b2bbd4b9f5e9fede63eaa1eaa2eaa3b7f8bcadde64cae4e0ced4afcfbdd5b7eaa4d5deeaa5d0c1b9bcde65b4c7b1d9de66de67de68c0b1de69de6ade6bde6cb1e6b1e7de6db1e8de6ede6fde70de71b3bdc8e8de72de73de74de75e5c1de76de77b1dfde78de79de7ac1c9b4efde7bde7cc7a8d3d8de7dc6f9d1b8de7eb9fdc2f5de80de81de82de83de84d3adde85d4cbbdfcde86e5c2b7b5e5c3de87de88bbb9d5e2de89bdf8d4b6cea5c1acb3d9de8ade8bccf6de8ce5c6e5c4e5c8de8de5cae5c7b5cfc6c8de8eb5fce5c5de8fcaf6de90de91e5c9de92de93de94c3d4b1c5bca3de95de96de97d7b7de98de99cdcbcbcdcacaccd3e5cce5cbc4e6de9ade9bd1a1d1b7e5cdde9ce5d0de9dcdb8d6f0e5cfb5ddde9ecdbede9fe5d1b6badea0df40cda8b9e4df41cac5b3d1cbd9d4ece5d2b7eadf42df43df44e5cedf45df46df47df48df49df4ae5d5b4fee5d6df4bdf4cdf4ddf4edf4fe5d3e5d4df50d2dddf51df52c2dfb1c6df53d3e2df54df55b6ddcbecdf56e5d7df57df58d3f6df59df5adf5bdf5cdf5db1e9df5eb6f4e5dae5d8e5d9b5c0df5fdf60df61d2c5e5dcdf62df63e5dedf64df65df66df67df68df69e5ddc7b2df6ad2a3df6bdf6ce5dbdf6ddf6edf6fdf70d4e2d5dadf71df72df73df74df75e5e0d7f1df76df77df78df79df7adf7bdf7ce5e1df7db1dcd1fbdf7ee5e2e5e4df80df81df82df83e5e3df84df85e5e5df86df87df88df89df8ad2d8df8bb5cbdf8ce7dfdf8ddaf5df8edaf8df8fdaf6df90daf7df91df92df93dafad0cfc4c7df94df95b0eedf96df97df98d0b0df99daf9df9ad3cabaaadba2c7f1df9bdafcdafbc9dbdafddf9cdba1d7dedafec1dadf9ddf9edba5df9fdfa0d3f4e040e041dba7dba4e042dba8e043e044bdbce045e046e047c0c9dba3dba6d6a3e048dba9e049e04ae04bdbade04ce04de04edbaedbacbac2e04fe050e051bfa4dbabe052e053e054dbaad4c7b2bfe055e056dbafe057b9f9e058dbb0e059e05ae05be05cb3bbe05de05ee05fb5a6e060e061e062e063b6bcdbb1e064e065e066b6f5e067dbb2e068e069e06ae06be06ce06de06ee06fe070e071e072e073e074e075e076e077e078e079e07ae07bb1c9e07ce07de07ee080dbb4e081e082e083dbb3dbb5e084e085e086e087e088e089e08ae08be08ce08de08edbb7e08fdbb6e090e091e092e093e094e095e096dbb8e097e098e099e09ae09be09ce09de09ee09fdbb9e0a0e140dbbae141e142d3cff4fac7f5d7c3c5e4f4fcf4fdf4fbe143bec6e144e145e146e147d0efe148e149b7d3e14ae14bd4cdccaae14ce14df5a2f5a1baa8f4fecbd6e14ee14fe150f5a4c0d2e151b3eae152cdaaf5a5f5a3bdb4f5a8e153f5a9bdcdc3b8bfe1cbe1f5aae154e155e156f5a6f5a7c4f0e157e158e159e15ae15bf5ace15cb4bce15dd7ede15eb4d7f5abf5aee15fe160f5adf5afd0d1e161e162e163e164e165e166e167c3d1c8a9e168e169e16ae16be16ce16df5b0f5b1e16ee16fe170e171e172e173f5b2e174e175f5b3f5b4f5b5e176e177e178e179f5b7f5b6e17ae17be17ce17df5b8e17ee180e181e182e183e184e185e186e187e188e189e18ab2c9e18bd3d4cacde18cc0efd6d8d2b0c1bfe18dbdf0e18ee18fe190e191e192e193e194e195e196e197b8aae198e199e19ae19be19ce19de19ee19fe1a0e240e241e242e243e244e245e246e247e248e249e24ae24be24ce24de24ee24fe250e251e252e253e254e255e256e257e258e259e25ae25be25ce25de25ee25fe260e261e262e263e264e265e266e267e268e269e26ae26be26ce26de26ee26fe270e271e272e273e274e275e276e277e278e279e27ae27be27ce27de27ee280e281e282e283e284e285e286e287e288e289e28ae28be28ce28de28ee28fe290e291e292e293e294e295e296e297e298e299e29ae29be29ce29de29ee29fe2a0e340e341e342e343e344e345e346e347e348e349e34ae34be34ce34de34ee34fe350e351e352e353e354e355e356e357e358e359e35ae35be35ce35de35ee35fe360e361e362e363e364e365e366e367e368e369e36ae36be36ce36dbcf8e36ee36fe370e371e372e373e374e375e376e377e378e379e37ae37be37ce37de37ee380e381e382e383e384e385e386e387f6c6e388e389e38ae38be38ce38de38ee38fe390e391e392e393e394e395e396e397e398e399e39ae39be39ce39de39ee39fe3a0e440e441e442e443e444e445f6c7e446e447e448e449e44ae44be44ce44de44ee44fe450e451e452e453e454e455e456e457e458e459e45ae45be45ce45de45ef6c8e45fe460e461e462e463e464e465e466e467e468e469e46ae46be46ce46de46ee46fe470e471e472e473e474e475e476e477e478e479e47ae47be47ce47de47ee480e481e482e483e484e485e486e487e488e489e48ae48be48ce48de48ee48fe490e491e492e493e494e495e496e497e498e499e49ae49be49ce49de49ee49fe4a0e540e541e542e543e544e545e546e547e548e549e54ae54be54ce54de54ee54fe550e551e552e553e554e555e556e557e558e559e55ae55be55ce55de55ee55fe560e561e562e563e564e565e566e567e568e569e56ae56be56ce56de56ee56fe570e571e572e573f6c9e574e575e576e577e578e579e57ae57be57ce57de57ee580e581e582e583e584e585e586e587e588e589e58ae58be58ce58de58ee58fe590e591e592e593e594e595e596e597e598e599e59ae59be59ce59de59ee59ff6cae5a0e640e641e642e643e644e645e646e647e648e649e64ae64be64ce64de64ee64fe650e651e652e653e654e655e656e657e658e659e65ae65be65ce65de65ee65fe660e661e662f6cce663e664e665e666e667e668e669e66ae66be66ce66de66ee66fe670e671e672e673e674e675e676e677e678e679e67ae67be67ce67de67ee680e681e682e683e684e685e686e687e688e689e68ae68be68ce68de68ee68fe690e691e692e693e694e695e696e697e698e699e69ae69be69ce69df6cbe69ee69fe6a0e740e741e742e743e744e745e746e747f7e9e748e749e74ae74be74ce74de74ee74fe750e751e752e753e754e755e756e757e758e759e75ae75be75ce75de75ee75fe760e761e762e763e764e765e766e767e768e769e76ae76be76ce76de76ee76fe770e771e772e773e774e775e776e777e778e779e77ae77be77ce77de77ee780e781e782e783e784e785e786e787e788e789e78ae78be78ce78de78ee78fe790e791e792e793e794e795e796e797e798e799e79ae79be79ce79de79ee79fe7a0e840e841e842e843e844e845e846e847e848e849e84ae84be84ce84de84ef6cde84fe850e851e852e853e854e855e856e857e858e859e85ae85be85ce85de85ee85fe860e861e862e863e864e865e866e867e868e869e86ae86be86ce86de86ee86fe870e871e872e873e874e875e876e877e878e879e87af6cee87be87ce87de87ee880e881e882e883e884e885e886e887e888e889e88ae88be88ce88de88ee88fe890e891e892e893e894eec4eec5eec6d5ebb6a4eec8eec7eec9eecac7a5eecbeecce895b7b0b5f6eecdeecfe896eecee897b8c6eed0eed1eed2b6dbb3aed6d3c4c6b1b5b8d6eed3eed4d4bfc7d5befbced9b9b3eed6eed5eed8eed7c5a5eed9eedac7aeeedbc7afeedcb2a7eeddeedeeedfeee0eee1d7eaeee2eee3bcd8eee4d3cbccfab2acc1e5eee5c7a6c3ade898eee6eee7eee8eee9eeeaeeebeeece899eeedeeeeeeefe89ae89beef0eef1eef2eef4eef3e89ceef5cdadc2c1eef6eef7eef8d5a1eef9cfb3eefaeefbe89deefceefdefa1eefeefa2b8f5c3faefa3efa4bdc2d2bfb2f9efa5efa6efa7d2f8efa8d6fdefa9c6cce89eefaaefabc1b4efaccffacbf8efaeefadb3fab9f8efafefb0d0e2efb1efb2b7e6d0bfefb3efb4efb5c8f1cce0efb6efb7efb8efb9efbad5e0efbbb4edc3aaefbce89fefbdefbeefbfe8a0cefdefc0c2e0b4b8d7b6bdf5e940cfc7efc3efc1efc2efc4b6a7bcfcbee2c3ccefc5efc6e941efc7efcfefc8efc9efcac7c2eff1b6cdefcbe942efccefcdb6c6c3beefcee943efd0efd1efd2d5f2e944efd3c4f7e945efd4c4f8efd5efd6b8e4b0f7efd7efd8efd9e946efdaefdbefdcefdde947efdebeb5efe1efdfefe0e948efe2efe3c1cdefe4efe5efe6efe7efe8efe9efeaefebefecc0d8e949efedc1adefeeefefeff0e94ae94bcfe2e94ce94de94ee94fe950e951e952e953b3a4e954e955e956e957e958e959e95ae95be95ce95de95ee95fe960e961e962e963e964e965e966e967e968e969e96ae96be96ce96de96ee96fe970e971e972e973e974e975e976e977e978e979e97ae97be97ce97de97ee980e981e982e983e984e985e986e987e988e989e98ae98be98ce98de98ee98fe990e991e992e993e994e995e996e997e998e999e99ae99be99ce99de99ee99fe9a0ea40ea41ea42ea43ea44ea45ea46ea47ea48ea49ea4aea4bea4cea4dea4eea4fea50ea51ea52ea53ea54ea55ea56ea57ea58ea59ea5aea5bc3c5e3c5c9c1e3c6ea5cb1d5cecab4b3c8f2e3c7cfd0e3c8bce4e3c9e3cac3c6d5a2c4d6b9ebcec5e3cbc3f6e3ccea5db7a7b8f3bad2e3cde3ced4c4e3cfea5ee3d0d1cbe3d1e3d2e3d3e3d4d1d6e3d5b2fbc0bbe3d6ea5fc0abe3d7e3d8e3d9ea60e3dae3dbea61b8b7dae2ea62b6d3ea63dae4dae3ea64ea65ea66ea67ea68ea69ea6adae6ea6bea6cea6dc8eeea6eea6fdae5b7c0d1f4d2f5d5f3bdd7ea70ea71ea72ea73d7e8dae8dae7ea74b0a2cdd3ea75dae9ea76b8bdbccac2bdc2a4b3c2daeaea77c2aac4b0bdb5ea78ea79cfdeea7aea7bea7cdaebc9c2ea7dea7eea80ea81ea82b1ddea83ea84ea85daecea86b6b8d4baea87b3fdea88ea89daedd4c9cfd5c5e3ea8adaeeea8bea8cea8dea8eea8fdaefea90daf0c1eaccd5cfddea91ea92ea93ea94ea95ea96ea97ea98ea99ea9aea9bea9cea9dd3e7c2a1ea9edaf1ea9feaa0cbe5eb40daf2eb41cbe6d2feeb42eb43eb44b8f4eb45eb46daf3b0afcfb6eb47eb48d5cfeb49eb4aeb4beb4ceb4deb4eeb4feb50eb51eb52cbedeb53eb54eb55eb56eb57eb58eb59eb5adaf4eb5beb5ce3c4eb5deb5ec1a5eb5feb60f6bfeb61eb62f6c0f6c1c4d1eb63c8b8d1e3eb64eb65d0dbd1c5bcafb9cdeb66eff4eb67eb68b4c6d3baf6c2b3fbeb69eb6af6c3eb6beb6cb5f1eb6deb6eeb6feb70eb71eb72eb73eb74eb75eb76f6c5eb77eb78eb79eb7aeb7beb7ceb7dd3eaf6a7d1a9eb7eeb80eb81eb82f6a9eb83eb84eb85f6a8eb86eb87c1e3c0d7eb88b1a2eb89eb8aeb8beb8cceedeb8dd0e8f6abeb8eeb8fcff6eb90f6aad5f0f6acc3b9eb91eb92eb93bbf4f6aef6adeb94eb95eb96c4deeb97eb98c1d8eb99eb9aeb9beb9ceb9dcbaaeb9ecfbceb9feba0ec40ec41ec42ec43ec44ec45ec46ec47ec48f6afec49ec4af6b0ec4bec4cf6b1ec4dc2b6ec4eec4fec50ec51ec52b0d4c5f9ec53ec54ec55ec56f6b2ec57ec58ec59ec5aec5bec5cec5dec5eec5fec60ec61ec62ec63ec64ec65ec66ec67ec68ec69c7e0f6a6ec6aec6bbeb8ec6cec6dbeb2ec6eb5e5ec6fec70b7c7ec71bfbfc3d2c3e6ec72ec73d8ccec74ec75ec76b8efec77ec78ec79ec7aec7bec7cec7dec7eec80bdf9d1a5ec81b0d0ec82ec83ec84ec85ec86f7b0ec87ec88ec89ec8aec8bec8cec8dec8ef7b1ec8fec90ec91ec92ec93d0acec94b0b0ec95ec96ec97f7b2f7b3ec98f7b4ec99ec9aec9bc7caec9cec9dec9eec9feca0ed40ed41becfed42ed43f7b7ed44ed45ed46ed47ed48ed49ed4af7b6ed4bb1deed4cf7b5ed4ded4ef7b8ed4ff7b9ed50ed51ed52ed53ed54ed55ed56ed57ed58ed59ed5aed5bed5ced5ded5eed5fed60ed61ed62ed63ed64ed65ed66ed67ed68ed69ed6aed6bed6ced6ded6eed6fed70ed71ed72ed73ed74ed75ed76ed77ed78ed79ed7aed7bed7ced7ded7eed80ed81cea4c8cded82baabe8b8e8b9e8babec2ed83ed84ed85ed86ed87d2f4ed88d4cfc9d8ed89ed8aed8bed8ced8ded8eed8fed90ed91ed92ed93ed94ed95ed96ed97ed98ed99ed9aed9bed9ced9ded9eed9feda0ee40ee41ee42ee43ee44ee45ee46ee47ee48ee49ee4aee4bee4cee4dee4eee4fee50ee51ee52ee53ee54ee55ee56ee57ee58ee59ee5aee5bee5cee5dee5eee5fee60ee61ee62ee63ee64ee65ee66ee67ee68ee69ee6aee6bee6cee6dee6eee6fee70ee71ee72ee73ee74ee75ee76ee77ee78ee79ee7aee7bee7cee7dee7eee80ee81ee82ee83ee84ee85ee86ee87ee88ee89ee8aee8bee8cee8dee8eee8fee90ee91ee92ee93ee94ee95ee96ee97ee98ee99ee9aee9bee9cee9dee9eee9feea0ef40ef41ef42ef43ef44ef45d2b3b6a5c7eaf1fccfeecbb3d0ebe7efcde7b9cbb6d9f1fdb0e4cbccf1fed4a4c2adc1ecc6c4beb1f2a1bcd5ef46f2a2f2a3ef47f2a4d2c3c6b5ef48cdc7f2a5ef49d3b1bfc5cce2ef4af2a6f2a7d1d5b6eef2a8f2a9b5dff2aaf2abef4bb2fcf2acf2adc8a7ef4cef4def4eef4fef50ef51ef52ef53ef54ef55ef56ef57ef58ef59ef5aef5bef5cef5def5eef5fef60ef61ef62ef63ef64ef65ef66ef67ef68ef69ef6aef6bef6cef6def6eef6fef70ef71b7e7ef72ef73eca9ecaaecabef74ecacef75ef76c6aeecadecaeef77ef78ef79b7c9cab3ef7aef7bef7cef7def7eef80ef81e2b8f7cfef82ef83ef84ef85ef86ef87ef88ef89ef8aef8bef8cef8def8eef8fef90ef91ef92ef93ef94ef95ef96ef97ef98ef99ef9aef9bef9cef9def9eef9fefa0f040f041f042f043f044f7d0f045f046b2cdf047f048f049f04af04bf04cf04df04ef04ff050f051f052f053f054f055f056f057f058f059f05af05bf05cf05df05ef05ff060f061f062f063f7d1f064f065f066f067f068f069f06af06bf06cf06df06ef06ff070f071f072f073f074f075f076f077f078f079f07af07bf07cf07df07ef080f081f082f083f084f085f086f087f088f089f7d3f7d2f08af08bf08cf08df08ef08ff090f091f092f093f094f095f096e2bbf097bca2f098e2bce2bde2bee2bfe2c0e2c1b7b9d2fbbda4caceb1a5cbc7f099e2c2b6fcc8c4e2c3f09af09bbdc8f09cb1fde2c4f09db6f6e2c5c4d9f09ef09fe2c6cfdab9dde2c7c0a1f0a0e2c8b2f6f140e2c9f141c1f3e2cae2cbc2f8e2cce2cde2cecad7d8b8d9e5cfe3f142f143f144f145f146f147f148f149f14af14bf14cf0a5f14df14edcb0f14ff150f151f152f153f154f155f156f157f158f159f15af15bf15cf15df15ef15ff160f161f162f163f164f165f166f167f168f169f16af16bf16cf16df16ef16ff170f171f172f173f174f175f176f177f178f179f17af17bf17cf17df17ef180f181f182f183f184f185f186f187f188f189f18af18bf18cf18df18ef18ff190f191f192f193f194f195f196f197f198f199f19af19bf19cf19df19ef19ff1a0f240f241f242f243f244f245f246f247f248f249f24af24bf24cf24df24ef24ff250f251f252f253f254f255f256f257f258f259f25af25bf25cf25df25ef25ff260f261f262f263f264f265f266f267f268f269f26af26bf26cf26df26ef26ff270f271f272f273f274f275f276f277f278f279f27af27bf27cf27df27ef280f281f282f283f284f285f286f287f288f289f28af28bf28cf28df28ef28ff290f291f292f293f294f295f296f297f298f299f29af29bf29cf29df29ef29ff2a0f340f341f342f343f344f345f346f347f348f349f34af34bf34cf34df34ef34ff350f351c2edd4a6cdd4d1b1b3dbc7fdf352b2b5c2bfe6e0cabbe6e1e6e2bed4e6e3d7a4cdd5e6e5bcdde6e4e6e6e6e7c2eef353bdbee6e8c2e6baa7e6e9f354e6eab3d2d1e9f355f356bfa5e6ebc6efe6ece6edf357f358e6eec6ade6eff359c9a7e6f0e6f1e6f2e5b9e6f3e6f4c2e2e6f5e6f6d6e8e6f7f35ae6f8b9c7f35bf35cf35df35ef35ff360f361f7bbf7baf362f363f364f365f7bef7bcbaa1f366f7bff367f7c0f368f369f36af7c2f7c1f7c4f36bf36cf7c3f36df36ef36ff370f371f7c5f7c6f372f373f374f375f7c7f376cbe8f377f378f379f37ab8dff37bf37cf37df37ef380f381f7d4f382f7d5f383f384f385f386f7d6f387f388f389f38af7d8f38bf7daf38cf7d7f38df38ef38ff390f391f392f393f394f395f7dbf396f7d9f397f398f399f39af39bf39cf39dd7d7f39ef39ff3a0f440f7dcf441f442f443f444f445f446f7ddf447f448f449f7def44af44bf44cf44df44ef44ff450f451f452f453f454f7dff455f456f457f7e0f458f459f45af45bf45cf45df45ef45ff460f461f462dbcbf463f464d8aaf465f466f467f468f469f46af46bf46ce5f7b9edf46df46ef46ff470bffdbbeaf7c9c6c7f7c8f471f7caf7ccf7cbf472f473f474f7cdf475cebaf476f7cef477f478c4a7f479f47af47bf47cf47df47ef480f481f482f483f484f485f486f487f488f489f48af48bf48cf48df48ef48ff490f491f492f493f494f495f496f497f498f499f49af49bf49cf49df49ef49ff4a0f540f541f542f543f544f545f546f547f548f549f54af54bf54cf54df54ef54ff550f551f552f553f554f555f556f557f558f559f55af55bf55cf55df55ef55ff560f561f562f563f564f565f566f567f568f569f56af56bf56cf56df56ef56ff570f571f572f573f574f575f576f577f578f579f57af57bf57cf57df57ef580f581f582f583f584f585f586f587f588f589f58af58bf58cf58df58ef58ff590f591f592f593f594f595f596f597f598f599f59af59bf59cf59df59ef59ff5a0f640f641f642f643f644f645f646f647f648f649f64af64bf64cf64df64ef64ff650f651f652f653f654f655f656f657f658f659f65af65bf65cf65df65ef65ff660f661f662f663f664f665f666f667f668f669f66af66bf66cf66df66ef66ff670f671f672f673f674f675f676f677f678f679f67af67bf67cf67df67ef680f681f682f683f684f685f686f687f688f689f68af68bf68cf68df68ef68ff690f691f692f693f694f695f696f697f698f699f69af69bf69cf69df69ef69ff6a0f740f741f742f743f744f745f746f747f748f749f74af74bf74cf74df74ef74ff750f751f752f753f754f755f756f757f758f759f75af75bf75cf75df75ef75ff760f761f762f763f764f765f766f767f768f769f76af76bf76cf76df76ef76ff770f771f772f773f774f775f776f777f778f779f77af77bf77cf77df77ef780d3e3f781f782f6cff783c2b3f6d0f784f785f6d1f6d2f6d3f6d4f786f787f6d6f788b1abf6d7f789f6d8f6d9f6daf78af6dbf6dcf78bf78cf78df78ef6ddf6decfcaf78ff6dff6e0f6e1f6e2f6e3f6e4c0f0f6e5f6e6f6e7f6e8f6e9f790f6eaf791f6ebf6ecf792f6edf6eef6eff6f0f6f1f6f2f6f3f6f4bea8f793f6f5f6f6f6f7f6f8f794f795f796f797f798c8faf6f9f6faf6fbf6fcf799f79af6fdf6fef7a1f7a2f7a3f7a4f7a5f79bf79cf7a6f7a7f7a8b1eef7a9f7aaf7abf79df79ef7acf7adc1dbf7aef79ff7a0f7aff840f841f842f843f844f845f846f847f848f849f84af84bf84cf84df84ef84ff850f851f852f853f854f855f856f857f858f859f85af85bf85cf85df85ef85ff860f861f862f863f864f865f866f867f868f869f86af86bf86cf86df86ef86ff870f871f872f873f874f875f876f877f878f879f87af87bf87cf87df87ef880f881f882f883f884f885f886f887f888f889f88af88bf88cf88df88ef88ff890f891f892f893f894f895f896f897f898f899f89af89bf89cf89df89ef89ff8a0f940f941f942f943f944f945f946f947f948f949f94af94bf94cf94df94ef94ff950f951f952f953f954f955f956f957f958f959f95af95bf95cf95df95ef95ff960f961f962f963f964f965f966f967f968f969f96af96bf96cf96df96ef96ff970f971f972f973f974f975f976f977f978f979f97af97bf97cf97df97ef980f981f982f983f984f985f986f987f988f989f98af98bf98cf98df98ef98ff990f991f992f993f994f995f996f997f998f999f99af99bf99cf99df99ef99ff9a0fa40fa41fa42fa43fa44fa45fa46fa47fa48fa49fa4afa4bfa4cfa4dfa4efa4ffa50fa51fa52fa53fa54fa55fa56fa57fa58fa59fa5afa5bfa5cfa5dfa5efa5ffa60fa61fa62fa63fa64fa65fa66fa67fa68fa69fa6afa6bfa6cfa6dfa6efa6ffa70fa71fa72fa73fa74fa75fa76fa77fa78fa79fa7afa7bfa7cfa7dfa7efa80fa81fa82fa83fa84fa85fa86fa87fa88fa89fa8afa8bfa8cfa8dfa8efa8ffa90fa91fa92fa93fa94fa95fa96fa97fa98fa99fa9afa9bfa9cfa9dfa9efa9ffaa0fb40fb41fb42fb43fb44fb45fb46fb47fb48fb49fb4afb4bfb4cfb4dfb4efb4ffb50fb51fb52fb53fb54fb55fb56fb57fb58fb59fb5afb5bc4f1f0afbca6f0b0c3f9fb5cc5b8d1bbfb5df0b1f0b2f0b3f0b4f0b5d1bcfb5ed1ecfb5ff0b7f0b6d4a7fb60cdd2f0b8f0baf0b9f0bbf0bcfb61fb62b8ebf0bdbae8fb63f0bef0bfbee9f0c0b6ecf0c1f0c2f0c3f0c4c8b5f0c5f0c6fb64f0c7c5f4fb65f0c8fb66fb67fb68f0c9fb69f0caf7bdfb6af0cbf0ccf0cdfb6bf0cefb6cfb6dfb6efb6ff0cfbad7fb70f0d0f0d1f0d2f0d3f0d4f0d5f0d6f0d8fb71fb72d3a5f0d7fb73f0d9fb74fb75fb76fb77fb78fb79fb7afb7bfb7cfb7df5bac2b9fb7efb80f7e4fb81fb82fb83fb84f7e5f7e6fb85fb86f7e7fb87fb88fb89fb8afb8bfb8cf7e8c2b4fb8dfb8efb8ffb90fb91fb92fb93fb94fb95f7eafb96f7ebfb97fb98fb99fb9afb9bfb9cc2f3fb9dfb9efb9ffba0fc40fc41fc42fc43fc44fc45fc46fc47fc48f4f0fc49fc4afc4bf4effc4cfc4dc2e9fc4ef7e1f7e2fc4ffc50fc51fc52fc53bbc6fc54fc55fc56fc57d9e4fc58fc59fc5acaf2c0e8f0a4fc5bbadafc5cfc5dc7adfc5efc5ffc60c4acfc61fc62f7ecf7edf7eefc63f7f0f7effc64f7f1fc65fc66f7f4fc67f7f3fc68f7f2f7f5fc69fc6afc6bfc6cf7f6fc6dfc6efc6ffc70fc71fc72fc73fc74fc75ede9fc76edeaedebfc77f6bcfc78fc79fc7afc7bfc7cfc7dfc7efc80fc81fc82fc83fc84f6bdfc85f6beb6a6fc86d8befc87fc88b9c4fc89fc8afc8bd8bbfc8cdcb1fc8dfc8efc8ffc90fc91fc92caf3fc93f7f7fc94fc95fc96fc97fc98fc99fc9afc9bfc9cf7f8fc9dfc9ef7f9fc9ffca0fd40fd41fd42fd43fd44f7fbfd45f7fafd46b1c7fd47f7fcf7fdfd48fd49fd4afd4bfd4cf7fefd4dfd4efd4ffd50fd51fd52fd53fd54fd55fd56fd57c6ebecb4fd58fd59fd5afd5bfd5cfd5dfd5efd5ffd60fd61fd62fd63fd64fd65fd66fd67fd68fd69fd6afd6bfd6cfd6dfd6efd6ffd70fd71fd72fd73fd74fd75fd76fd77fd78fd79fd7afd7bfd7cfd7dfd7efd80fd81fd82fd83fd84fd85b3ddf6b3fd86fd87f6b4c1e4f6b5f6b6f6b7f6b8f6b9f6bac8a3f6bbfd88fd89fd8afd8bfd8cfd8dfd8efd8ffd90fd91fd92fd93c1fab9a8ede8fd94fd95fd96b9ead9dffd97fd98fd99fd9afd9';
})();