Revert "Merge branch 'feat/it17535090' into 'develop'"

This reverts merge request !53
parent 6bea4fd1
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Python 3.9 (mlenv)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TestRunnerService">
<option name="PROJECT_TEST_RUNNER" value="pytest" />
</component>
</module>
\ No newline at end of file
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (mlenv)" project-jdk-type="Python SDK" />
<component name="PyCharmProfessionalAdvertiser">
<option name="shown" value="true" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/__pycache__.iml" filepath="$PROJECT_DIR$/.idea/__pycache__.iml" />
</modules>
</component>
</project>
\ No newline at end of file
import cv2
import numpy as np
class Helpers:
def __init__(self):
pass
def resize(image, width=None, height=None, inter=cv2.INTER_AREA):
dim = None
(h, w) = image.shape[:2]
if width is None and height is None:
return image
if width is None:
r = height / float(h)
dim = (int(w * r), height)
else:
r = width / float(w)
dim = (width, int(h * r))
resized = cv2.resize(image, dim, interpolation=inter)
return resized
def grab_contours(cnts):
if len(cnts) == 2:
cnts = cnts[0]
elif len(cnts) == 3:
cnts = cnts[1]
else:
raise Exception('The length of the contour must be 2 or 3.')
return cnts
def orders(pts):
rect = np.zeros((4, 2), dtype="float32")
s = pts.sum(axis=1)
rect[0] = pts[np.argmin(s)]
rect[2] = pts[np.argmax(s)]
diff = np.diff(pts, axis=1)
rect[1] = pts[np.argmin(diff)]
rect[3] = pts[np.argmax(diff)]
return rect
def transform(image, pts):
rect = Helpers.orders(pts)
(tl, tr, br, bl) = rect
widthA = np.sqrt(((br[0] - bl[0]) ** 2) + ((br[1] - bl[1]) ** 2))
widthB = np.sqrt(((tr[0] - tl[0]) ** 2) + ((tr[1] - tl[1]) ** 2))
maxWidth = max(int(widthA), int(widthB))
heightA = np.sqrt(((tr[0] - br[0]) ** 2) + ((tr[1] - br[1]) ** 2))
heightB = np.sqrt(((tl[0] - bl[0]) ** 2) + ((tl[1] - bl[1]) ** 2))
maxHeight = max(int(heightA), int(heightB))
dst = np.array([
[0, 0],
[maxWidth - 1, 0],
[maxWidth - 1, maxHeight - 1],
[0, maxHeight - 1]], dtype="float32")
M = cv2.getPerspectiveTransform(rect, dst)
warped = cv2.warpPerspective(image, M, (maxWidth, maxHeight))
return warped
from flask import Flask
app = Flask(__name__)
app.secret_key = "secret key"
\ No newline at end of file
from tabnanny import check
from app import app
from flask import Flask, flash, request, redirect, render_template, jsonify
from werkzeug.utils import secure_filename
import cv2
import numpy as np
import io
from PIL import Image
import base64
from Helpers import *
from pptx import Presentation
from pptx.enum.shapes import MSO_SHAPE_TYPE
import language_tool_python
tool = language_tool_python.LanguageTool('en-US')
text = "Your the best but their are allso good!"
matches = tool.check(text)
print(len(matches))
ALLOWED_EXTENSIONS = set(['ppt', 'pptx'])
def allowed_file(filename):
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@app.route('/')
def upload_form():
return render_template('upload.html')
@app.route('/', methods=['POST'])
def upload_image():
global i, n, images, text_runs
i = 0
n = 0
images = []
text_runs = []
f = request.files.getlist("file[]")[0]
prs = Presentation(f)
iter_picture_shapes(prs)
get_text(prs)
print(images)
#print(images[1][0])
#base64img = getbase64_image(images[1][0])
page = []
for x, y in zip(text_runs, images):
img1 = []
text1 = []
for k in x:
check = tool.check(k)
if len(check) > 0:
text1.append(check)
for k in y:
print(k)
img = cv2.imread(k)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
laplacian = cv2.Laplacian(gray, cv2.CV_64F)
fm = laplacian.var()
result = "Not Blurry"
if fm < 250:
result = "Blurry"
print(result, fm)
sharpness_value = "{:.0f}".format(fm)
message = [result, sharpness_value]
img1.append([message, getbase64_image(k)])
if (len(img1) > 0 or len(text1) > 0):
page.append([img1, text1])
print(len(page))
return render_template('upload.html', pages=page)
n = 0
i = 0
filename = 'test.pptx'
images = []
page = []
def write_image(shape):
global n, i
image = shape.image
# ---get image "file" contents---
image_bytes = image.blob
# ---make up a name for the file, e.g. 'image.jpg'---
image_filename = 'img/image{:03d}.{}'.format(n, image.ext)
n += 1
# print(image_filename)
page.append(image_filename)
with open(image_filename, 'wb') as f:
f.write(image_bytes)
def visitor(shape):
if shape.shape_type == MSO_SHAPE_TYPE.GROUP:
for s in shape.shapes:
visitor(s)
if shape.shape_type == MSO_SHAPE_TYPE.PICTURE:
write_image(shape)
def iter_picture_shapes(prs):
global i, page
for slide in prs.slides:
page = []
i += 1
# print(i)
for shape in slide.shapes:
visitor(shape)
images.append(page)
iter_picture_shapes(Presentation(filename))
def getbase64_image(image):
img = img = cv2.imread(image)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
file_object = io.BytesIO()
img = Image.fromarray(Helpers.resize(img, width=500))
img.save(file_object, 'PNG')
return "data:image/png;base64,"+base64.b64encode(file_object.getvalue()).decode('ascii')
text_runs = []
prs = Presentation(filename)
def get_text(prs):
for slide in prs.slides:
text1 = []
for shape in slide.shapes:
if not shape.has_text_frame:
continue
for paragraph in shape.text_frame.paragraphs:
for run in paragraph.runs:
text1.append(run.text)
text_runs.append(text1)
get_text(prs)
if __name__ == "__main__":
app.run(debug=True)
print(images)
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "30d9652b",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import cv2\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "41a8fb0d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import language_tool_python\n",
"tool = language_tool_python.LanguageTool('en-US')\n",
"\n",
"text = \"Your the best but their are allso good!\"\n",
"matches = tool.check(text)\n",
"len(matches)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "ef7a3c3e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1\n",
"2\n",
"img/image000.png\n",
"img/image001.png\n",
"img/image002.png\n",
"img/image003.png\n",
"img/image004.png\n",
"3\n",
"4\n",
"img/image005.jpg\n"
]
},
{
"data": {
"text/plain": [
"[[],\n",
" ['img/image000.png',\n",
" 'img/image001.png',\n",
" 'img/image002.png',\n",
" 'img/image003.png',\n",
" 'img/image004.png'],\n",
" [],\n",
" ['img/image005.jpg']]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from pptx import Presentation\n",
"from pptx.enum.shapes import MSO_SHAPE_TYPE\n",
"\n",
"n=0\n",
"i=0\n",
"filename = 'test.pptx'\n",
"images=[]\n",
"page=[]\n",
"def write_image(shape):\n",
" global n,i\n",
" image = shape.image\n",
" # ---get image \"file\" contents---\n",
" image_bytes = image.blob\n",
" # ---make up a name for the file, e.g. 'image.jpg'---\n",
" image_filename = 'img/image{:03d}.{}'.format(n, image.ext)\n",
" n += 1\n",
" print(image_filename)\n",
" page.append(image_filename)\n",
" with open(image_filename, 'wb') as f:\n",
" f.write(image_bytes)\n",
"\n",
"def visitor(shape):\n",
" if shape.shape_type == MSO_SHAPE_TYPE.GROUP:\n",
" for s in shape.shapes:\n",
" visitor(s)\n",
" if shape.shape_type == MSO_SHAPE_TYPE.PICTURE:\n",
" write_image(shape)\n",
"\n",
"def iter_picture_shapes(prs):\n",
" global i,page\n",
" for slide in prs.slides:\n",
" page=[]\n",
" i+=1\n",
" print(i)\n",
" for shape in slide.shapes:\n",
" visitor(shape)\n",
" images.append(page)\n",
"\n",
"iter_picture_shapes(Presentation(filename))\n",
"images"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "d528258d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[['Project Speed Cycles Sri Lanka', 'Hero Experience Agency'],\n",
" ['Our Team'],\n",
" ['Purpose',\n",
" '- ',\n",
" 'to find out issues with the current website and ',\n",
" '- to provide recommendations',\n",
" ' in order to rebuild the website to ',\n",
" 'increase sales',\n",
" ' through the website '],\n",
" ['There is cats']]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from pptx import Presentation\n",
"\n",
"prs = Presentation(filename)\n",
"\n",
"# text_runs will be populated with a list of strings,\n",
"# one for each text run in presentation\n",
"text_runs = []\n",
"# i=0\n",
"for slide in prs.slides:\n",
"# i+=1\n",
"# print(i)\n",
" text1=[]\n",
" for shape in slide.shapes:\n",
" \n",
" \n",
" if not shape.has_text_frame:\n",
" continue\n",
" for paragraph in shape.text_frame.paragraphs:\n",
" for run in paragraph.runs:\n",
" text1.append(run.text)\n",
" text_runs.append(text1)\n",
"text_runs"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "1017a7d1",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Project Speed Cycles Sri Lanka\n",
"[]\n",
"Hero Experience Agency\n",
"[]\n",
"Our Team\n",
"[]\n",
"img/image000.png\n",
"Not Blurry 1298.8642254950346\n",
"img/image001.png\n",
"Not Blurry 1490.0164488611354\n",
"img/image002.png\n",
"Not Blurry 1504.4147008202476\n",
"img/image003.png\n",
"Not Blurry 2057.951858730446\n",
"img/image004.png\n",
"Not Blurry 1810.5483755674986\n",
"Purpose\n",
"[]\n",
"- \n",
"[Match({'ruleId': 'DASH_RULE', 'message': 'Consider using an m-dash in dialogues and enumerations.', 'replacements': ['—'], 'offsetInContext': 0, 'context': '- ', 'offset': 0, 'errorLength': 1, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': '-'})]\n",
"to find out issues with the current website and \n",
"[Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'This sentence does not start with an uppercase letter.', 'replacements': ['To'], 'offsetInContext': 0, 'context': 'to find out issues with the current websit...', 'offset': 0, 'errorLength': 2, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': 'to find out issues with the current website and'})]\n",
"- to provide recommendations\n",
"[Match({'ruleId': 'DASH_RULE', 'message': 'Consider using an m-dash in dialogues and enumerations.', 'replacements': ['—'], 'offsetInContext': 0, 'context': '- to provide recommendations', 'offset': 0, 'errorLength': 1, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': '- to provide recommendations'})]\n",
" in order to rebuild the website to \n",
"[Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'This sentence does not start with an uppercase letter.', 'replacements': ['In'], 'offsetInContext': 1, 'context': ' in order to rebuild the website to ', 'offset': 1, 'errorLength': 2, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': 'in order to rebuild the website to'})]\n",
"increase sales\n",
"[Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'This sentence does not start with an uppercase letter.', 'replacements': ['Increase'], 'offsetInContext': 0, 'context': 'increase sales', 'offset': 0, 'errorLength': 8, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': 'increase sales'})]\n",
" through the website \n",
"[Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'This sentence does not start with an uppercase letter.', 'replacements': ['Through'], 'offsetInContext': 1, 'context': ' through the website ', 'offset': 1, 'errorLength': 7, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': 'through the website'})]\n",
"There is cats\n",
"[Match({'ruleId': 'THERE_S_MANY', 'message': 'Did you mean “There are cats”?', 'replacements': ['There are cats'], 'offsetInContext': 0, 'context': 'There is cats', 'offset': 0, 'errorLength': 13, 'category': 'GRAMMAR', 'ruleIssueType': 'grammar', 'sentence': 'There is cats'})]\n",
"img/image005.jpg\n",
"Blurry 18.57491369641204\n"
]
}
],
"source": [
"laplacian=0\n",
"for x ,y in zip(text_runs,images):\n",
"# print(x,y)\n",
" for k in x:\n",
" print(k)\n",
" print(tool.check(k))\n",
" for k in y:\n",
" print(k)\n",
" img = cv2.imread(k) \n",
" gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n",
" laplacian=cv2.Laplacian(gray, cv2.CV_64F)\n",
" fm=laplacian.var()\n",
" result = \"Not Blurry\"\n",
"\n",
" if fm < 100:\n",
" result = \"Blurry\"\n",
" print(result,fm)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "4ff141e1",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAVwAAACECAYAAADcDJPaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAB+rElEQVR4nOz9baxtW7fnBf1a672PMedae599znmeW7fuvVUUBguhPqAhRoQIfkANJJJKjKkYJLwoidEEEgN+EMNLmRiiIZIgaIyKRiARLXxDXiJqIDEpIMEAYqjEwrp1674+b+fsl7XWHKP33pofWh9zzb2e9br3Pufsc5/dnmedtfacY47Rx5hjtN76v/3bv4m788k+2Sf7ZJ/smzf9rgfwyT7ZJ/tkvyj2yeF+sk/2yT7Zt2SfHO4n+2Sf7JN9S/bJ4X6yT/bJPtm3ZJ8c7if7ZJ/sk31L9snhfrJP9sk+2bdknxzuE01E/j4R+Z9/6G0fsS8Xkf/wh9jXJ/tkd5mI/MXjXsvvuZ9/SUT+tg81rt8vJr/oPFwR+duBvwf4S4BXwP8B+G+7+9ff4bB+zkTEgT/q7n/2ux7LJ/t4TER+Hfg73f3/9oH29xcDfw4o7t4+xD4/2bX9Qke4IvL3AP994L8FvAD+k8AfAf4VEZlu2f69Zv1P9sk+2S+2/cI6XBH5DPiTwN/l7v+yu1d3/3XgTxBO928RkX9IRP6UiPzTIvIK+NvHa//0yX7+VhH58yLyUxH5+0Xk10XkPzPeO257slT720TkN0TkJyLy3znZz39CRP60iHwtIr8jIv/4bU7/k32yh0xEvhCR/4uI/FhEvhp//6GT9/9VEfmHReTfFJGXIvJ/EpEv79jX3yEi/76IvBaR/5+I/NduvP/HReTfFpFXIvIfiMjfcHKMv3P8/ZeIyP9jPCM/EZF/RkQ+P9nHr4vI3ysi/+4Yzz8rIrtv5OJ8x/YL63CBvwbYAf/70xfd/Q3wLwH/2fHSHwf+FPA58M+cbisifwz4HwP/ZeBXiCj51x447n8K+I8Afz3wD4jIXz5e78B/E/gh8FeP9/8bTz+tT/bJUOB/SQQOfxFwBfzjN7b5W4H/CvCrQAP+sTv29SPgPw98BvwdwD8qIn8lRJAA/K+JFeLnwF8H/Pot+xDgHx7H+suBPwz8Qze2+RPA3wD8h4C/AvjbHzzL76H9IjvcHwI/uQOn+p3xPsCfdvf/o7ubu1/d2O6/CPzz7v7/dPcV+AeAh0DxP+nuV+7+7wD/DvAfBXD3f8vd/3V3byPS/p8C/+l3O7VP9ots7v5Td//n3P3S3V8D/z1+/l76p9z933P3C+DvB/6EiKRb9vUvuPt/4GH/GvB/Bf7a8fZ/Ffgn3f1fGc/Hb7n7n7llH392bLO4+4+B/+Et4/nH3P233f1nwD8P/Mfe4xJ8tPaLjEn+BPihiORbnO6vjPcB/sI9+/jV0/fd/VJEfvrAcX/35O9L4BmAiPylxI34HwfOiO/m33roJD7ZJ7tpInIG/KNExPjFePm5iCR37+Pfp/f1nwcK10HG6b7+RuAfBP5SIkA7A/7f4+0/DPyLjxjPHyAi6L8WeD7289WNzW4+F7/60H6/j/aLHOH+aWAB/gunL4rIOfA3Av/38dJ9EevvAKfY2B74wTuO538C/BmCifAZ8PcRS7FP9smean8PAVv9VeNe+uvG66f30x8++fsvAirXQUZsLDID/xzwjwC/7O6fEw52289fINg9D9k/TDxHf8UYz9/CL+i9/QvrcN39JZE0+x+JyN8gImVQYv53wG8C/9QjdvOngL9JRP6akeD6k7z7jfScoKW9EZG/DPivv+N+PtkvnhUR2W0/RFR7BXw9kmH/4C2f+VtE5I+NaPi/C/ypk+h3swmYgR8DbUS7/7mT9/8XwN8hIn+9iKiI/Nq4d2/ac+DNGM+vEZjvL6T9wjpcAHf/HxCR5D9COLt/g5i1/3p3Xx7x+f8P8HcB/xsi2n1NJBke/Owt9vcCf/PYx/8M+GffYR+f7BfT/kXCwW4/nwN7ImL914F/+ZbP/FPA/4pYyu+Av/vmBgP//buB/y0BAfzNwP/55P1/k5FIA14C/xqRqLtpfxL4K8c2/wI3EtW/SPYLX/jwIU1EngFfE7DAn/uOh/PJPtmtJiL/KvBPu/sHqYL8ZI+3X+gI90OYiPxNInI2sN9/hEgo/Pp3O6pP9sk+2cdonxzu+9sfB357/PxR4L/kn5YNn+yTfbJb7BOk8Mk+2Sf7ZN+SfYpwP9kn+2Sf7FuyJxU+TLvJ98/3QJDqrHdqbfEPAUQQAZHBjHIQBNXw6yIS712/De7gTkTaAgjd+vX2COj22dhEJPZ53N+tQbofXxaROMx41WOoY2fjH9u4RUAU0URKGREFERRIIuMH0hhtjNqP5yPj5NwdJ/aloiTV43ubCYJK/IiAItfnOfa+LUD8xknG+cQZGWDumBnNO92M2ivNOs07tXesG1hca/A4JoLGEMlyMm4zRKCkhEh8RASmrMx5QiSNSyao6PE76NYwq9RWMTNqjx85ji/2L0BKwsuvD1y+Wb5zPuZ+v/fnz59/18P4ZL+P7Mc//vFP3P2Xbr7+JIe7f77jr/7jfxXuztIaL796zddfv8S6olnQopQSjgrAu5HJPDt7Hs5XhJQUEogK3o2+NNZ1BYSUd0hOvL54Q0qQcybnTJoyZVIQJ0/K2dk5Kelwugo4MpyV4xiG00EcUFwKook8TZCUpTVqX6AoOiUkZ8iJNBV03pHOXzDtP+f5sy9IZYc5zCnxLCufJeWzJDwDdnTEO4rh1hCEnCZWdy5qI6U90/Scs3LGs2lmV2bcwnGKCPtcOC8T+1woKTOlREkpnPNx0gq3asSkZG64Gd2N5k6ns/TKm7ryajnw48s3/Pjwih9d/Jhff/1jfufyJS9fvmR5fYFdVVJrpN7RbuwSzDmxnwvPd4ndpPT1wLosTMCvfPGCnBOtGZo7f/QPfs4f+eJXONt9jjuoO3POTNMeMbi8+ilfvfwdfvPHv8lPX13yo5cLP3m1ULJi3lmXznpwaMLurPDP/ZN/+t3v6A9oz58/50/8iT/x1msxSd8Nt52+f9e2p6+bGSmlO/cpIvTej8HJQ7bte/ttZscg5KGxvI99qP18U3bb+LZrs71/ep2fct0f851v9k/8E//En7/t9Sc5XHdordFa43JZOBwO9NZHhJlGRKrg1xFjrRXrnaI5HIUZ3kFE8d5pV/F+yhOqCTNQTcNxKyknUkoRCSbhbNohHXrrSBZEI2Y1iajYge4Nx0g5gTjuRk4ZTYrkxNlUaBQOdQFVNCVclJQzZb9H53PKdEaaJtCEG6wOh+5kOtmdBDiNiYZgVKuYJBLOwTqrw873ZBdsi+C33yJkVcrmYNM4V9X4e4vet7B8nJc5uBmmLeYSdwTHPFFUEUl0hCuElw4/E+HCnNVhQTAXMhLfxbpSD401N2pbaD3xmU1M3qmtUVvlctlxpntqc9q6staV2hbMO+5CbyutXdJsRV04rG+4WF7zs4vX/PjNwk/fVF4eOiqQcZarRj041oWLg9HMnnL7fXS2Pch3ObjH2ulD/1hHv22z/d4cRu/9Lce+jeN0n6cO6LH2Lp/5ruz02t+8ltt7pxPUXfvYJrLNUrqWmjjd78199H6zfuTanuZwcdZeWdbKqzcHDodKXQ0RR4siGst/kh89RFtWaloo5wkzi4GagDrWxlKXsWxXWNYlnGzOaBYkQSpKSco8ZwTFLaK+3vtYuhuddrxAjqEaC3hLoAlICgqu4GqkkpnnRLWGZ5BpQnd7NM9oKVASJkoaMMBqzmrGVYdVOwsH5nZJpoEYqzcWN8wVQ5nzM56zw+uBRkwiWTIrDiok0TEWMAknnFRJaExa8U2OKH2YGSh0AxsAhftAaEQwMZo4Vw4vXXjjcPBOM8NccJTVwVxIacZ74tCM2pzLZeXi4ornsyPV6XXlR/qKH0jHXVnWzu+9fMMf2L/hfH4OKdP6Qm8ra72E/oY3Vxf85le/x2+8fM2Pfrbw1SunVRBJnJWOr44tTu1OTcY99+X3wh5yQPdFtzcj1G1fD0WPt+3j5pgeisJujvsxUettk8HHGO3enGhiVZ3e+i5ubr+9f9ukoqrHz9w2id31mbvsSQ7XzHl1dWA9NOqy0GuFbpg7PQtlSogmxMMZWjN6d66uDsy7+ThwlYiCrXs4FxFEEmtdab2TpwlRJSVBUmCc01RQHSDuOGlXoQOtdcz6uCCOeUcQWnPSTkkFXIyu48IhFE2UnLHmtARpniKizRlXpbmzmJETuCidwDbXbrxpB3L/KckviXA9Xr9qjknibDrjy32jy0rTA7TGa6983XekVHhezjhjwB9udHf6wGI3JBuPhcLpjXH8kok5y9zpDLjBnNoaP+tX/Nb6Fb+7fMWb5Q2HWllbwwYuayjeHVxJZQYzWmssKyyr8vLNAV2vaOuB3/nJa/7A5ef80otnnGXl97664Mvzr0lz4vnuC7qt1HpFq2+4uPoZv/HTn/BnfvcNv/1V5fJKY2LoTq2Vl9Y5F2XGWbvQzTD7uB5WeNqy8a7l6M2I57YH8NTZ3rf/bdvbxvhYyOMhe8wYbtrxWf6Wot7bHNt953hXZAsBVZrZ8RxSSse/T1ctp+d4W9R86swfuwJ4mlqYO6wdqR264a0j3cCdXittSdC3WRZ6M5SMdefly5fsdjtyypASmKOSQcN5tGasywGdypZ2AgQf0UGE8368UTVnKPEaKrRVaK1i3egWS+1EQk0D9+wrvXlgtZrpZogJogrquEDDSThuHbeO9cacSnyxInSc2iuXF69ohwusHzDvaAZRxSUmnDUpy9r4WX9DXi/pAlknvtw944vdZ/xBMpoSloSuyrkmkjvNjeR2TDYeU2Uns3O3TrVOJ1YLrTfe1IXfuHzNv/fqx/w7r3+X33j9e7w5vKEeDtRlCUgDUBHQjEvHUPpIeLmCN6d1x/tEXVfWA7R15fXVK179wHj+PFYXP3n16/yxP/w1f+TLzzmfC1cXr/j69Vf85NUFf/Z3L/itnzYuTVDNmCdqN5a1YYvzs7WSEMRioqwfEaRw21J9S8re9lBvr6WUfs7p3uUgn/raNobT92/b/232GId+0x6CQW46mptj/iai3c2R3RZhP+V4t13r0+8s50xr7XhMuJ5M7rvu23U+hRvusyc5XBU4z87FsnA41HC+BilLYLLmuI20tzv0WO+aOPUQmO/5+Tm7OS5eOBDnUFcMSCWTRICOm+E9cOEpZXDFPRbSmjLTbk+aSzidqbGkBb+8xJojI4PvFhGIr46ajH0HxcDN0WagjqrT2oGeBEkZsYZ4R3onW0AmJtBsYV1e09cr1grWM+7BgEg5knKeMwdg6R2hk1w4Lzu+yM+o7LjsiVe9o7WiKbFLThvYtqnT3Y4wQcycPlyvsXrn0BtrB3FjsZU368pvXb3k3/jqt/h/ff3b/OjVz1iWC/rhCu898CTr2NjplBRpihk0d8RAXGOqsYqaE8BGAhPeXLxhqQfOXu8opfAjT/zuT3+bX/7idzkrAvXA68uVr193Xl/AxWpoSkyTIOJIN3RE5ajSuwCKZTaqyEdhty2V70twnTqZmxETvB0VvY8jOnW6T93Puxz3Kc4crp3TkTH0jse9zW7irI/Z71MmstPv+RRaOP3cQ/u+Oa6HJrkn6+FmoLjT28BMHZJkSp6DBrUBk359sXrvtBZfzJs3lxyu6jY8kITkRCqFXBKiAQmoK2bCbrc7OmcRCfxznpj3e9I04TjFjJQmFAUuWQ9XRwqWdcOqgUFRiUTauEittXjmPUVCik6SjqiBdPBKkhVNTquV9XBJXxesg7siUnA2bDrhnrEuCAmRRM4T+/KMF7vP+Gw6Yy+Z52XiXAt7KUwaycDmzpV13JQ9kKzTBPpG6zKjmrFa52CdbuC987Ie+HNXP+Pf/ulf4N999Vt8/eY1/fIKW66wwxXWe9DNJJBhAdwU96Bz9drx1klyRI2PuDgjQecd1quVXiuuglrhpz+FP//bRlaF3qEHTa6IBeauitpIAmpE/aqVXhQriqmguwL540vC3MRWb7ObD9jp0vSu7e7bx7afh7Z9bKT8lPdPt7l53rf9fZfzu4lvvovdxFdvc7YPOd/bxvjQNbttFXGfk75rX4+51k9yuAJgRjIiQy4bjzShkukGkiJbLiiegqtrzbAeEEHEr7EESznjg66Vp0LSHlGsXPNsp2m6vogipGni/Plzds+e4egxsjBXZovoqdc1lgfuR6ehKtvKPCaK1rCxdE+eAaF5x6UhsmJdIRutdUqa6G3F20pvjd4c8QAtYs5wXBOVhKOoFkrZkaZznp1/xmfzOec6c56Uz6fC56nwvBT2OSMEVHGwzqE5V6rgcGmdi9Z50zqva+Xr3njdG1e9cdVXLutLfvPVb/IbL3+bn168oR8arcYY5XDAlyvMenCAU8JJaFesCtkKGHEOBt0M1BAPnL63TmsN64b0wKd688Dek+NbRlwE74nkPaAhVfZ54vzsnP1+hwys3g2W5YqL1lgdehba2cfpcG+zxzrfhxz1qdO6Dft9ChZ42/FvO9ZjoIW7lukPRXNPGc9j7Of4+vy8E36MvcsY75pATsdziuuejvmmg79vzO/gcJ0enK9IoquiSVFJ+MAydDgNPOFtjShoG4SAaEbTBCmjkig5kdNWPqARqZqQUkbRcJpJSaVw/uwFzz77HEl5YICRIEuieClYn2C72ZpDkzhLSVgXvAaVzNQjutYSzII+nE/qqC6R0LKV2i7AhUky2sHWgBrcPbBfFTxlPCcsC14yMk34tGOad5znmZ1k9iKcpcQ+Dz5vVooKJtDdqb3RR90FLlwa/Ghd+Z1D4y/Uhd+rB17Xlct2YFkvWa++5uuvfpfl8jW2XCFtxfsKvcFS8dbBKmCIglAwK9DA1TEKSVLgxQMbFjPcwJthiyGrHKNdECzZYFAkKpBc0MGiSJI43+052+0pOSOpHGERVeEsf0bJwkGMC1vQ8wlJH4/DvS96vBnVPMZ53ba/03+fYpKnD/NdznZjOjzWHoN1PiU6ex9H+tAkdPM4T0mG3XWMu/ZxW4T80NhOv5u7EqCnx/xgLAWQ4084VQmn8vycaXeOpEzKkWRqvbEuK1fdWP1w5KbFoBM5R/IspUwaFU29R3TrnOI3imh8rkyF3bNz8lQwUbLFBajregSuVRNugX2qOFgPL9YMFsNpdAOSoimjScK5m9DdcSqtgzTDROgSFCy0MKUJ7JjDOp6PpEQXOdILmhsiHaNTaXR1Uo6JyUcCbsMvndifudO6Ud1pCK8M/nzv/Jla+e1l4c2y4t2gQa2dq8PKshreHK9RQOJ1gdqQWpFu4UC90YAujkpg7kinpDMAUombpNeO1Yq0FngyYAQFTSRF0g1DSEA6stWiKi2x3z9jnqbraGC7U7Z/i6BT4uxsTyrnvEmB9X6MdvNBuw+bfSqud99y9rYH9T7H8VgneNOx31xC34dXfwi7z/Hd9v5d43nKBHjX9b8PLrlv7I9ZdWwc6A/Gw0Ugl4yzcLbfU8qeeT5j2k0gEdWkPCEq7ADbd+ZcsFpZl8vAYcsUBQgDUkg5k5Li4qiO4gmJE0wpkXJCVchlokxzPKTjplcCJhDRUd0W9LDeI7m2la52M6QHFGKHGpiuJjQLjAq5NCneK9YrsgtYRBUMC7xToTaPBJPFsjqp4qpBzbJOr5H0UpyWhJeqTK3w+bwHdVBGua2O5FhMXvGdRgHHas7Bna+68Vu18rvWuWoerBBrNFtZauVqWYONYYKY4s3w1dDakeaD46qo5KBFu9OoRzaEYeR8HpxcMZBwnr01unVcZRR9WDjbMVGmNIXTHZRrVWdXClOZY2UyIKFrl+sgSqeH003C2b6gkwya38dhN7G/+yKa7YG6LVP/mOPc9vdjtr9tvLdhrKefOY2M78I038UeG1HeZU/Ft0+d8H0O9qGVxW2vPRarf+j87iqCObUnOlynqrN7/oIzS6zVkKRUwvkVzXGTbjeiCtM08+z8OawLry4uMdPIWI8EGCq46PhcBq/x0I79qCY0JVKJGv7eGt46qolqAQOoZro63hvrsuBGMCVE6GqBNSq4tdi+OZoE70FvE3e6NVpbYU7kXPC1YcqIRoPtusoaATOKloJkDRiiN4xOpweh3zLmK3t1Xs+FK3/O6s4knUziTWskHHIOPE+E5sLBYRXjshu/3Sq/2ypX1mi+0q3S2kJdrljXC6wd0F7D0TYLOl4HuuA2Uoaj2EE2FQkXzIM3ndRJveIu1NbRFiXDmMU1QZCc0MFvTimhOQfPWvWo7KCizPuz4ASL4WIYnYxc84jHJGS10yM7yS5v9L+Pw24u60/xxJsP0c0ihYeKFh6D6d73oN4FNTyUDDod20N2Gw55X8R9EwL5tiPk2+ypTv8hqONm1d6HOO4TCx9Ayp48TayvrmgWJZ45ZVIeia63dAAESU7KxrwrPNdnVAvdg5tiLJoSmsC7xXHGUlRUmc/27J89gxQZ7qVVcnbMNXBkMbDGerjk6vINAEkHb3eLtFxotQeDQMEkxq5a6D14rdYiOuvaoo42xw3bB8ZpErSxPlJ/q1c8KdWHaAyNnqFbwn2CYrxchd+e9pQygyVcYLXOy155XpXnqeCqrC4s3Xntnd9oK//usvA7hyin7cslfrik1St6XbD1Ej+8gasFlhVqRVqwBXxURcgG/7hjeCQQB/aeNCOSMUDcMGk0N1RsUObis0LAJQLIwOZlrDzMg642lYlUCtYrq3WygDQfbIWASlTC+Vpt2GFFdomyQcMfiW0O5OYDdt+DdJrYeUx0c1vme/v9UPb9vuz/+0abt33+LrL/qZ065IeSfTeLCL4JB/0Y6OWxk9zN7+ZDjfeJpb0CacdSK7U11h6lpomTG2ZsuznL/X6i6J7znVENajMuLu2tTCQCmkLYppuS1CNKFiFPhf3zc+azPZJzVAWLYiJR02+duixcvX7N61dfU5dlfKkbPhrHiaqm4AtHjW9E4JsYjGsKF+MSUaN3bO2QlNZb8GFLxothafCM3TAPmKD3Rifw0kikVdYqvF6V31zPeJ0mfqPNZAmClnvnGc4PU2FOmYPBV+b8uK38ZDnw6tCobWVZ38D6Grk64GvF+4rVhX51gKsVX4KZ4OuKN0Mszi2SXWNa04BdtuuiGhxbd8MEpMS5ixqiCaSMpJtRVOmtRzUb1xMhHnxnEaFZH6pjSu0dmqHJYnUAoIaroSIx7mRIEuQjqzR7DNF9e//mQ3zqdO9a3j512XtzXA/hko/Z1+lnH6J4nY73PjrU6Rhvg2W292/Dvh+61u9rD53bfXZ63W+O8+b1f+x5PI2lIIr1FpGQbwidb2+CCJaEnIVdyeynxK5M0ATpZ7gKzeGrlyuvLlcONeQHI+K0qPKKcCowxKmQzvbobkLmjIuQt8QYTl8bh8sLrl6+4vVPf8bl5QFMUY0Iy8Xx4bg3yUE4Tcg53TrqDJqUg3e8dupquIKmqDxDBRv7lZzBG24KCDrUu0hCygJJR8R8oLUdV+sFTuF12qOSUYLRQV9J/YBQaa4sljmY0XswDvq6wOGKvlxEZFgNqRVbDti6wFKxtULvWDW0xznGl26jWJhYaWyRhSqeEkkdTEKTISuaHGmC1ETiQB83kQzGiYyI9vggxd0FvQcKlGLSVAk2tPaOZkU1tCx8iPiUZshFpdoB6sclpnAa4d4WUd722l0O9eZ7dyV8HrKHnOJj7L7o9zHO+aF93Hx9c9C3sSpuc3gP7eubhCseaw9d/9Pv/j42yRPVwnz7I5amKZJGIo5I4ILzpDx/PvPi+Y7n+5n9ZIjNkZhJCVflcHB+/NUbvnp54OtXC4c1uLpNt4dc0CmT58HPnSckh9pX0hRRqYML1Fp5/eo1l5cHrG0jNQRHciyBj69aOCIRBgc1ChzUKu4NcPpqNB/R2QY94HiOZJ13C0eRINJGwUPOKaFFsBLUMpGBc7WKtYU1LWQpUWQggniimbOsFVvfIG64KDYmtV4X+uECXw6wVDiseO34stLXFasNqQ1vDcwiWvRroMZV2PTlXTSibpW4hiXH5Nh7VJa5j+8wB/vAMrQGEhoNjIheRuTce4AqYk6T0AdGCBqfhpON623H1UVo6A4GSjWEGhj698AeG71smN/pZ7bPPcZp3MVg+FAO5zHO9rEO+b4o/ebEchvWvL3+0GrgrjGebvcujI27zuF97aFJ9cmVZhDSiClnkmhUfmVFE+zPZr78/Jwvvtzz+YsdL873nM2Q5RlJMp4URKnW+cGbAz97dclPvrrk9370kq9+dkHrQ1VrKuiuMO13lFFRlkpBRpKJ3uhDJnJZFg7LEoksDUGcbkZSOWo6wPWyr1kjaR54Z9DE3D2c6SiOiH/Hkrd73fwqYmmUwmZUSyhmjeOkotikVO2YLwhRdOCSWT2xkkg+xMtlo9clkCi6qHVBCKfbe8fbAvUCaSu0DuuAD5Z6dPraDOuG90463jcxGWpKaI7o/ojJMaJ4FWQqqGVYK9Q2oAeN72j89taDY60FG8nKiHLHjeVO650pJ3ozUpIT3Qsb0bCTUhz/KC/ZDdo6lOI+HjvFbx/zUN6WoLrpdG5zmk9Jrj0mMXbb6w/BFnft510TRPfBJ/eN5T6M9a7x3Lavd3Ge933H7xNh37f9Ex2uj8y+I2WKiCZFYuVsf86LFzM/+HLmyy/O+OLzM148f8bZnMnJKSkN4ZREQ3ixLHz25g3PP79gt99Tyk/4+meXdCZ0Tszzjt35c6Znzyi7c1JOuENzo2FU7xzqgatlCXpUUsQNiDBXyg7J5XiCZo57o3vwY62FQ9gW31oy4gn3DbcxjIZ5GzCHoNlIRNWaaAFNTDlhecJLwrMjHlq1KxXXGdIOyTNoic+kmZ7KIK0l3BrWJtCG2SHgi1ahHaKIoXuMgRWzFfPrbhimKciybnivRzlK1yivtZyQeTrCApihFgLtQg8qnUb06iOqlyzQNRgYrQVUkEOUyK9acJY9olYnEoBz70GhM8NLOHSNYSEqlFKCVTJEj3qrrEdpzo/b3icCeoyDe4p9yIjsXffzlMnirtfvm0SeMuHd3Odjtv0QMMVdMMvp/u+yp0EKBq0aqczkMiESjmzOE8/Pd7x4sePzF2d8/vmez1+c8/mz55zv9sy5RLuaXEAyTkS5n7+45PlnX1FKCeqVJN4cBEvKtN+xf/6M3dk58/5ZFDjUitqKWESrh8OBWuvxhH2oieVpYp7nEKIZ3N7eOr4uMMqBe2/Hi2PrGqW/slGnQjYxwtngrCKgU8H7SemxFjQXPE9YSjQ6KkJOYEkgTZDC2brkcEQJSAFXqCTcZ1qbcQ8VNu8VJ1rVmLVxXQwpGt5UBGtRSitjRWCD9bFxZhHBE8ixo0WJstyh8OatohCaFRjmHbMWGDkhiSk54VnRFBFKzpmeEq2HIM+G57o7a6uUKWEozZxqPTpsFKXMmTKXuFfcMFOaCctQMfuY7Jtczp/u87bXt+PcR8e6z94l6rstifWQPeW63IwSb4san4oNP+X7eB9nfR+k8S4rg82eXNorkijzTJnio9aNqWT2u8zzZxOffbbj+bM9z8/3fHZ+zvnuGXPeRQVamsJJaaa78/y8sj97QU470MTqv0P70RWdzNnz58y7PZonUp7IeUs0OU6n1UpdV+q6xuAssEVNGs5WokpNtRyTRTmB24rZgvU+oAcli2K1E2154kQ3YpSP3zCQhWNRRhRuiBZMCyDkAZmoKOQMKWNDspFNllIdJIoATIc62bQDNZQGNDwL3qIEebvmtjXSSIa0FNehOVI7WQuuHa8tEn1F0SlD1nDUpSCpRNXd2iKRZVEkEkyP4CAniXJqJ46lJYdUpTsQZcwmca11OFvVmDzFInnofby+U0rJSEl4DnhGkoBGonKtlY/JHrtUfqydshYeolfd5mxvYo13ffY+eyhKfGjpft8+n7Ltfc7roX2/yxhvfvYxk9FD3/1jx/DQ/fJEWhiUeWLez6SSg6HgUObEfAZnc+FsP3M27znfPWe/O2OaduQ8UfJEyntS3qM6gcC+d/K8R1QxnDfLwquLH9P8jPNnn1PKHvENQBVEGUvSlXq4wpYKLfBL6x0zY9rtCSrBSJhtCbZRTAEeSamBA0sKmMMllLVIwSeTUZQRWt0yEkGObBVWo9hDGI5dEoYjKXQiPBld48JHUipYAyKCS8c9BZMhGVIKSWdUVjoLYokpT5g4rdeobNIoqu3SgjLXwdOQHzeQUpAUBQmigkgGDaxZcyHljJmOpo/A1UKyTm8hBK51VJu5DIHyHgyNjfXQgoK3qYh1DBXi+opRe4MqZM0wkqmeMm2I12RX1t64XFdeLZc0/bjghPeJWm6zm/q4d/F0b6NOve9YnsJEeNdzfJ9l+YeeOB7a72NpeDed6qljfgyW/hgmytMiXBXKrpD3E6lEJRcOc8nRBmdK7KbEflfYz5kyynZVlaSFkmdK2aNpx9a6QnMBolvBT16+5Dd++w0Le8puh5ZCB9Z1pXVY1iusrfS1Ruuew4p0gR691rZy4EHxB4Zod49yX/fIJLdasRraBA60JKjlgQMTSSPZOhCH/05pizg79IZ4A2uIFdQF0Y0jDE18CNuAayTFrBuuoTIGgg1mh4mRVUgy4ZyhZlhv0NegWKUpxsxKNxlhrgaVWJxeHZcQ8SFddzLeKvVSSsdiBR14rQwYoq0Vr6GBOy5WYPTNQ3BIndA5DtzVraEqQfeSjHQPXFiuZTgPq7BTpQ+ZTg/fTZVoPHpxOESptXw8wjX32fvifQ8VBJw62dv6bD0EJXxXtKlv45i3OcDHfu6xn3lo29si7LsUwx4zvifycIW0y6QpkabARlWEkhMpS5SLKmTxIMLL+IxmUirkPFPyHA5XNBzQcJCHZwe++OwFu/2O2jIyNBNAooXOWlnWK6Q31sMV61U426yZjpFzHvxcgspkPcpcXY4CJO7QW2O5usJ7AwHTcGLiEiD1oFIlzbE8l0hCIR4O1w3rK/QZSVGyKjhJoIuO40Rr8KwSImndEe14GlxWIWhrbGrxiho0nZHS8X6Fu8IiAzMe8pKjZsOOM77FmNQZfC5E87jwUb3nXDtgcYeUkWx4iiaV3odKWOtY7xHpOxHhEqsaH5OV45CglBR6xdGtDRniPHEzOuvakbQgQ7w9nDQgkOdCbTUoeR+xfUiH8ljJxduKAx4ay6kTeEwZ6n32bTrvxya43nf/D7E3Hovxbp+F25tJfiMYLklIe0VyFABoknBySYicUIiHR8AUfNqUcgja5B05z+Q8o5o5tjc36GXP2Xwe3SD2E5dvUhDt3WOZO9gR0o22Vq7eHLDqzGWPZ6PPc7STqRWTUY7ROrhgHuI11juYc/XmFcvh8qhApiZojyQRFpxiH6Ww0V0iWgABg7NqSG9YW9GccY9uFL1HqXEXEHVyB6lplB90kAXPKZgQSOhHbOwHwD2cvKQMqeA6YXlwYVuDDB7SZcPhBkwxBBSQHkpg6hBgdUAAwnWZphMRt2RH54lyKLTDAVoPvfUW0ItLFCt0xiQ0JhCH0L6YBO0e1WoWEwhJcW+knhGLFkq1tsHLFZJ4TMop9tS6HVvG/3620yaEd9l9Gf67aFWndlO68ZtY6n9oZ/wu0eq77PvmxPUuOP19Sb6n8nqf1mInCXoW2KNolPXmkklDtGaLJCPyHUpVkslaAsPViSQFlXJ0AKhScmc3n3E275gnR7yHIpc7eGgc2GhYWWultUYuM3kOx23WWa/e4K9eIz14nuYWlCokFLB6p9fKcnEZvFYFNGqx+rZqS0qShKZgUohGxj6N30Yj8mqOLcJWRiUio9AiaHJKtCTHPZJF3SJKrDUieg3B8o3tgAl2LAtNQSHLU7T6Gf9Doh8Y7iSJiFTziL4JLQlqdOLQMhTCdEW04CVfS0KOpBZJYS5wlXG7QvzEOYwy6Jh0PP7tWzQ+Chg0VNaiNDr4uSnnmJRJUDu1G/MusT+bSVmIVpl9RMMjQfmR2Ltk7B9jTxHQvouz+xCscLrtXft9Xwf3Ia7HfWyDpyT2nsKouMvJPmW8NzHd07Hd9pn77GmQQlLOPj+j1RblujpKcIVBpRrLR9XQxk3T9Y+W4ZgTOjpCbANMWpjSzK5M5NTprdPbHukpKFC94b3RaiSQcpnYzQWRKIQwN1IJMe3l1SvWZcG6odro5vThqJfLS9qysiWaXLdlPcdoPCaCkRzqFk54SD+6SQi+ADQl9RV8QiiB7fqIViWRVTHN+OAeiwfGGdxaCVhBEnosZw4A2C2R8gS+j3G1FSwHM0EqIGirdByao0OngAEruHloLqCkVKBVrJYQ3pGhFeGOiYSo+1TwnOnLYUwc438WjjbgkU1B7Lq8NxThoo29qpNLIeX4LrJnZAUczvZ7pimBeLRRmhPm0XLpY5RnfIozeKq96zL61Endto+74Ir3dTiPtafQr05/3/bezf2evv/U83ns5HmbI7/NcZ6uJLaOHbfh7x+MpSBJOPvBOX7orBfx0ESf29MkzVD7T3M42jx+pxEJkxDfsKqtf0AiaWHOhbOcMTtEu5ihR4u1iGLrCq7kvItIeeC24IgG3lnXA8vLn0FzvDutL9TVWA4L1tt4qDZ5wYAs0FA1c0bG3rduuQE3bGVcLiPyG40nXTrdG1AHmyIaZqLEhFMKlBnXjMoWxUb7cLFR4mvgI4lmEp0rmk60LINKdsD7imrBdaWlBA0SHWuCFEF2inrGko9WbI7VRk4VmSe6NbBIcnrcOSFQPmQYLYV4jQ1tAxuNH8WDj6xYTBTeIaVjZ2UXI+8SMs9MpaDu1GXBraOTsptDUxh38j4jRVirI3Ph7Pl5MEE+EruLkgXvz1Z4KMp9jCO5LzK8a4w3l793vXdzHE+1b8qh38YseBeK2GMhg/u+8+NqlGvWyel+N/z8w7IUcsKfzTAZOXV409GegscvEomxNP3cT0qFJAWRBFwnBrZhRZSrlFKYdzuSXtK90ltwNukBCZg5OU/DYSt5dJdwj5lnmibmqYBV6mAxrIcDtVqIkufoNKGJIwadcorS4SmWw3nK6KSj35YG08DtSP+SgW+mLCH4khpGHXq+IbBNCrySHMIwG03KcqKLRqtwIs8l40L0sXJXSaQ0k1VplmgUXFa6rLiuqOaoMCMdMW4VBTkMjm60wrE1+raltaJTCkqaBnNAzKG1UX0XjqanFKW7rYcgjROsBbdIGBJaCgmiatDAijM9n9ifnaEIfVmPjnufZ/ZnM5qg7BP5WUGKBg1NGk5/9FL527D7klrvE+FuzvYp0MBddrN0eLOnZOLve/19Hee7XKfHTATvY0/Z380o9Way8z689uYq5C57MqSQPjtHlhZOxVfs9UhuuZDzNNgIm6MdzlZL0IiOrmZc6JFci/+Gru48FTRDtxb6qU5QldzJuUS2vsfHREKMpbV4/2w/cfYHvuC8/ArL5YGXP33Jj38nKGTKoEflRC45knwJpt0O3e2QIpS5UPZzNL8c1WVIJN5ENZJeqlFYkCOhJuqQovmkRyYOzUKaNBzuqPiSlLEc5cCqsTjvJ/dCIpS7uihdMlkEleDnQuDS1RqpV3pbsPIGz6+Q/Jqmr0biqkMFTZFI82r0wyESblOOlYgPR20h2B4yjI7mhFeNZpm1Ie4ooWWrGr+TJJKDtKh8K89nzr58xlxm6rJiCEUnZA1nOp9P5EnJU0LOCzoldiaUEp08PlZm2M1o8puMcB8TfW1jCAaMH6OtxyaB7kvKPcYeG1V+iOj4rmX9NwXznO77prO9a0y3NQC9bYy32ZMcblJlOtsjOpb3ecVxrCdkl6AkyImUC1kLmvKgKaVjdPh2oiQy1ht2NunEbjehxenNQ/F8YLAq27Y+EkU+VMMM85VnZxN/4PPP2Okz7Fc/w8x4/eolv/Vbv8Wv/9nf5ic/ekVXJc+D1jaEVuazPV1BspLmgkwFySNBFq0jRtJMMVVyTkxzhjkhZXQmLiDFQ4emhB6BJ0jJ0eQjt5ZGH7WEJsXMaeY0d8xCf0HHF2IaqmEJoUn0WrMCeMAd3Rq9foavL6D8FEkTTDt6q9jVClcLoiv9InRy5cJx32EEqWG7saQ2aIatPToxI9HBdxkdzVLQ4oSgdWVRkglaG+VsojwvzPsJJUFP5P2MzBN2OGDdSDslzQmZFPaxakg2DdhJo8jkI7VvItK6Gfk81tluD/ipIzhd1t423sdiio8d+7dlt8EI8PNJze21+xJpD1HCbtrN908hhFP89r5uIA9RAJ/GUhBlTjOWG31yWkoc1gNpFeT8/DjzRi+yPBgJ0Zn37TPbfvsxyhVR8oAFUlJqN5webAOcbo6tjawpHnBaZMcV9rvMr/zSC375s2fss5MkEmFXh0t+6Zd+wA9+8AX//p/5//J7P30T2q8lHvhpiv5rSRQdDpQiSFGyFmzTW8g58Gt1ns3KbpeROdOzsGbhKgtWEpIFmaJXWhqww0aF0hRfVN60HSTGqW40sxChkXDsLlFCmzRRROk4jVjOd3daL1gqtLRDdU8un9HqK3I9YFcX2NUbuFiocoG9OiC1oZcHrETnYd24uc3w6oH5Lg1qJ1WPFcOmeZwhiZJFKAoQPN0sTk4EvitGLkqaM60esBwylDzLMCV8UnSXB6k5ZDM3psrHalsQ8C5tuh9rj41sTx/g7e+NEXRTe3VzAjf7mN22/4ey/t8mL/c2eyzc8dgWRKf20DnfdKqnOslPbWV/ak90uEKWxEoPgZMk4Ry2RoMio6qpvAUlqIwqp5vP18n5CrFsL6WQSwpdABmZ92Di09rKslZ0JNk0FeY58+IHP+CHn53xwxfPeT7vKDlm9nVdef7sBWUqHNqBVX+Dy3Ud0ezMNM0jgRZ4q04JmRNaFMlC7xJOXYQpC19k4bNZ2J0lZM5YTiwp80oLlznRNgnJPJxuVnJSctbRDDMclwSnIYomPLqOxfJ6yBiq0lXomkIfV4QsoYPW3Jh6x7vQcsLmQu9ntPYDfL3ELl9i89cwv6GlwmqvqG+ukKsVvQrxHveANMRAVkOqHR2u9GAyQETmZc6UIuQ8xr5R5fLWv9fRKbPPoaXbTOkenX99p9FOZzchUw4mS2uYGau3cMAfsX2bzuY2B3Df8Teo4ia74rEwyIeEHL5tu4mXPtX53WR83Add3HY97+vj9lCrpSeL17g1xDtFjNUCO43aeo+ILO0oaSbrNJztaY8z3nK64UaHNCCOEJoEssknbLKCLcpo23rF4fIK6QxBnMy+7Hk2w4v9xIuzc17sn0XGXJXWGmf7MyRV3hy+5mdvvub3fvZ1QAuTkqYcx9AhzzgVmIP9EA25KlgjifFM4EWGL2dhyoZkx6dEnwo7SfxEE280ChZEgvMaXYMjITilFBPSKKwIqlVHrTP5iV6txCRWdbAaBvWuEwUYzROWFPPoNdbxUbrc6e2cNu3pZU+bfoaipN7QVrHLA/XNGrO1Ftw1snRmgZW3IWY+EnGenPyskJ8FBS+n0IRQDQw87ZQpFaaUj7h4Lpmue7o3WluOhR22m8iqQzy90ZZKq/VjouEe7X2il/exx1KYNrst8n4qP/UhTunHbqfQAtxPLTtlENx0ok+BHd4Xy32yHq54Q71Tl5W2hq5BGn3DVHQUOJRIkI2Zl+332Ef8fzvZPqCDfh2y+2AVyNbmvNHbQl0uWS4voDtNrgBjl16Q+WXOdoUX5895Pj8nb0pm5kzTRPNLvvrhL/HlDz/joh1YzTFx8sQRS0zThJQJnybyPCE50XtDaewS/MAaX9LZFShpdKXICS2ZWSdMlIawqI9uC5vwd7QhV4ykCfeYpKJlTUMxsiaSjptDQETZiwbPeUAMXULbQUVxyvGabvznbp3aGkueeKMTLU+UfEYqZ7yRiZcH59WbGq2DpMfxJUqak8exTC3ghNTJzwrpxUx5fkaegi8852hxVHJmnjN5N5PnGc+xIpjOd3gp1F7xRZBWSfuJmjX0b2ulHQ70w0qvy9NuvW/JvgtnC28niG7ygW+bBE4LjU7hg8dABR8iGfiu9j4wxU3nub32EHvg5mfvG89jknM3YYeb290HQz2ta68b1hbaUlkvr+iH6KelWkgaGXqRhBOiJWZR8aUWktcqgtGP5HonSoG7N2pbWOtCby2kE3sNZoBFUsl6jR+rWLUQ4+4L/cVEUWdXCvt5xzzt0AEp4E5OyvP9c7787AVffPGMr69es5rReiSFGHxXnQqeMmme0bmMCFeZ8o5nCb7oCy+8ImqUnIPulQfmmjNnktlRqJJgdDiIrhNRghvONb6g7tGaXawjHhKRk0aZtKRMToWydU4YohQqQpHELiUmzSRJEYlGLRjmRrPK1bxwOe0pZ58hV1cs5Q0/S5/zlZzz4/wX+NHvfoUtjkgG0aGn4JgmejI8NdI0Ub6Ymb88Y3e2IyeYkjJnp6TMrhTmnAe2PTp5lEKaMrrfoz7Tk9DWA/v9zLQrXB0OdA2ltvVwxXq4+igj3G/T3gc73ZzwfQ/3Y/Dbb8oecvbvYvft7+aEddeK4alUuMdix7eN4zZ7Ypv0zvr6FfXS6JcVPziZzFQKSTRoTea03mheg0vbR2bPA8MMiCEHX9OdZp1DP3C1XvLm6hWH5YDVKBdVGWpfPmrvIYResoSYtjnEYju0XLd2NxuMIeA0Si6c7/Z8/vyMH7w4p1qn1spVd0wdnSIJ5WkizwUrGkmrVJCUmFSYM0wey/6UBM1D3DxPMJ2xS4WJQpGM4iQNx5lVyOLMwByrdZoIVUFUqC4h+JMSSTNTKszDoRWNirUsQiGx18xZLuw1kTYIYutb5tC9Q2rk2ZFWWZYDr84u+enunB+XM35nd848/To/+9HPMJlBSujiLle0Q6UlYd4X9Fwpv7xjen7GhDAVYz/P5Kw8m3Y8n/akJDQ3VrMQAEqJpImpFIoGLt5KgeRkYpJYkrHYyuHNJa3Vj5YWdmrfpHN6zIP/1KTdbQ7mscd6yB6T5LyLRfBN2m3R7U244ea2p9vfxoC46zOn291cdTzm+jzN4bbO4euv6ZewvjHqlQBT0JK00F3pVmm2RoVXFxAjeTkmzmIJoEeHW3vjsl7w+uorvnrzFa8vL4kk+dAQaA7VkS6IhaA4Q9RFLDKHrVVqW2i9Rr3+wA7djNbX6ILrxpQyn+/3uDtrX3l1tdBI0ZGg7OhaaCrUEYeTEkWDe0uGiTxEyB1NGfJEKjvS7pyzVHjuhUknskBOE7s0Ie4kh2dp5ny01qlmXLrxkpWL3oKeljJJE7ucmTUxSWKnmbOU2KPstbDXSE7tNZPGUip76PJCRLmanOwRSR7KzGXZ8UuS+WGa+WJ6zvNyxp89+x0uPZHSDmpluXjN8uoltVfK2YR+NpO/nAJKWCtT6ZyfnfP87AWfn3/G87JHcZZ24PXhNVd9wcWZtTDpjJSoKOwtuhuLtaD3tU5bK+vlEjftRxrjfmhs866l523HPF0ub5+9zek+VKhx274ey6e9yx6z3L5v+2/Kbkaa2/W69jd3V+g9BEHcZe963k9zuL1z9dUr2iW0K8X7LrrVpoLkGUNY20qtB9b1ChGj92AVMHi4stU7EBVcS114fXgTCa2vfsTXry+itJQBJzSj14Z3QyUxTzuESlsXumd671xdXnB1eM3l4U0I5Vi0lHF3lnpgWa+odSGhnKWJpLCG3CvdC67BkbVSqCnRUrT56YySXIhEWxGmWMBH94Y0kcqeVM44SxNfkDCd2KXMlCb2UlCEAjzTQkYZJQms7nxG5uu2csBJElKTs2j8qHKeEs8kcSbKTiNK3GlmJ4mio+rNYwIb3xDJIbnTRUg4yRw526H2jJ0qZ9NE3X3Ob766jJG1ynz2Av/iyygN3k9Mz56hZ4KK4/UNc2p8/uwzvjj/IZ/tnnGe5+FwL5kuv+bl4Q1LvWQ/zezKHp+iq4fljPcawkOsXDZnqsah+hGr/ljstkjoXWhrpw/7TbvNAT609H2Mnu5tdtt+H+sAHxuZ3sduuMvRfRN21NYeDvam+PtNbPXm+7fZYx3vts03Ayl043Cx0K+EvmamkpimOZygzghK7Y21HliWhPkFqwjeO93q+Gl0v9anXXvj9dXK15dX/PjVK16+vgBr+JAhNOsIFo0RU5TlqitgeG+Ydy4uXvP1q5/xxbMvKSljPh95c7Ud6NZIKnw2nVHOOnjnchUKmWYTPWV6niPRVCZ6ihY5hrD0iM5WlCuBoiHc4gLkGdIeZKbIxHnOlDRzniZmLWRJFFd2KbHTkCxcR8+vPc6zojxPha/6SgcmVbIqRcNJnwE7cWYVJhEmJByqDviZa3zXnUiAEfQ8JPizSZQyKvie+Y5VjS9r5Wc90TvQE9Oc2O2/JO1nFjfSlKI6TBxNz/kiZz7bn/F8+oxnZWafQ0uh2Tln5Yz9/JrXyyt0gjnvWXVoPKSMmNFY0bWyZ6b1wloV30WS9WOxhxJND9npw3wXg+ChY9987X0oT3ft9zH2PpDDd5mQu2k3J63HONp3sac45yc2kTT6oWE1dF3nacc07ZjnmVxCYbo3p9aVRaGuV7it1PWSq+UVF5evuby6oK5r3JSSgkbExNITry47dWmoJ8QafV2DrkSIQ6QSVC7F0KxBKaNxcbji1euveHXxE/b7iZy/CL4ooU1Q8p7z6Ut+6XNh3b9kXS7YXb5hqY21KZaUlmfWXFhzoeeEqdIcMKPTcBVeD/7qjjww3omSCoKSJfNcZ87znnMtZM0UCcrYTgclTJ3unaV1mhsixnnKzApLbxSNVKK6URz2ntkZzDiTQFEoFmLnqqPHGpuerh+ZH8dikpPvLqVELoXcCzlnpnmirg1UmfKez148Q+aJN+sBiESeqvHZ/Bm/+vw5z3d7lIk5ZfYpk1xwnzlPO3KZKaXQpEJOuHZ2RDWfOjRfyK1zVZ6x6ivmNCElf1QR7m12F13o5oN10zHexcX8EA/5XVHxU5f7d23zPlHpYxKA31TU+9DEdNtx71uNbPaUVcFjtn+aw3Wn1454ZppmdvOe/W7PbrejlFHgQBoMhSGCYpW2HlivFq7eXPDm1ddcXV5GF11RmJ8j0+c09rTmqBZyMVKLCrOoNIvotkwlSkWxISAuaF/owNVyRffGlHfspudMZQIUy07Oz0j6jGn+jF5fs1x+zeX0Ey6vLllXWHHWFE5SUqIK0WLHI2Gngxh8MEEk0VPGHTIZ87iIGWWWzAudmCSRJTNpYkdhHmphMjjHszeqd1yMvTsJY5GgmjGaXyaEbEZWJbmTcbJbUPDckFGZBo5LMBXcgw/txOToHiW6oXUReghO+OMSHTXBM7td4fnZHk+JZo1qjawRge5S4Xk54/l0BmSKKrNG5O5e6FpYvFOtUn2lJ0HFmJNSJHQbmkyIGRf7F9TzC/rzA3IWmPXHZHdFKHcVJdznPO5zMo/BB7dtbmom3BZB3vb3+0ACH9Juu27fhN3seHEzuj39vk6v7VPsoe/7w0e4HqWlU4oW2JqFaS7Mu5lpKkylME0zU5njgdZoB+AYa+uUckUuBVGlew8RmmR4ciyn0EtVIVlDWyNbDrFuD3FrTSF07oDnTJIdhcx8PnP27AU//OLX+PL5r3K2/4ycJvCIgue+UuZz9stzbP2MtTyjpEzSH3OVlqNEYiM4s4aABB1NraIIyUJcx1HaUV4ynGORqASbPCLRSTUwWfGIxsWPFWbuAwbw4NaaO7uBJyPhkDcJMbElhHG8HJ2rjVJal6hGO41j3YKTi8dxzVr80OneuWwLF1apdLJ6qL+5k0siZcVC2GxQ0+JazCUx5cQ8KgfzKOIonkZNSmXXD1wOjDpPsc2cS+zTjHUN/Pzw7ED7fKEfKn4mP1eW+l3bY5zn6b9v/r6toOC+zz9lXN9VQQZ8e2yD97Gb1+ZDRe53JSBv2+auf5/aEyvNBJU8VMEEEQv5vRLR536/ZzfvKXkiD/0AXKMyLS/RRDJP5FyotWO+RWahZ6tDUFyyo5MOpkJoLIjItoYGHyeVEzknXnzxJX/k1/4yfvWHf5QXz3+JkvZDnUxRN2pplLTjkh2rTmje03DqekFrldWG9KAb07hgDnRvJGuIKNmFgjJJJKXUldmFnTnz+Gz2TrJGkRxRrzlKi3NjuyHCGQogPYR5Sg8+bhQdpOOXZgOnRjtdO2ohDlS90EfUffO7tdEpQ4hOuld14XW94ut24CfLBW9ap40+aBPQLYpZvK+UPDNPIQ6fFZI4syayKEWVXZooGsyNJAMjN2GXd+zyiopznkNIfj9PZM2YGTVVznSHm5B7TF6XZf2oItwP4VSekmh77JJ/K254jLN9ilN+Ck/2fa/Lt+Gwb4r1nBYn3NaC6CkJ0YfG/pTVyxO79irz/oykIfriYiFTmDO7MjNPe6YpHGrOQ4zRBTFjKgemMlFKCV2BFNLjromtGa2JgAo6ZTIF7QtujuQhR2eD8iE+2pgnpvOJX/uVv4i/+Ff/KF8++4Oc5TNEJrYm5lF0kKBocISpqAp5eg4p0aijnY6SJQo2BKd5o2D46K4bS/r4Eesh0F0VzZUkK2l0e+goMmkIb8vWYlLw0XoHi0KQCESN1ms0W7ROAtyiuWXMqEZDAutOiTqKIXSorzm8VbVnFisQ27Qneueqrny9XPKTq0t+fLjiojeaFlKKeBl3al24OjjPpohM3RzxIULOiJhdyBJYdQBH0ZPOJVFy4WzagxtFCyXtmHRmrxkTp9Lo7nx51pEXhntn5uqjcrjwYehgH8o5nTrbx9qp4MqHGMv72M0E2jftdE8FwLdjntq74shPGfNjtn2Sw81l4stf/UOIKakp03TOfHbGtNuxm3YDSsjknEP+EEFdoy6/XEYblq0br4KYggTP1Ta3oXIUBpeko924H6NbE6JNNw4J9p894w/90h/iB8//APtyTpFovbOZDddQ1Cm5kPo8nHhhFeGyVxohhJNEj2Wy0o3C4PJ5NJAcgEKMXRWqYSI0Ay0V7xNrWrnqFcpZaEkQ4uM+Chms29GZ9m60uoT2r9tIdjUcp/eGeVyTLsLBHQbVRjyoakbIIbShONbcWL1z8EYjXlta5dVa+fqwctE6VYTdtCeTMCqtX7FeXVBrgezsz14M2csGGK3DZV/Zt0bJo1rOiVLsMTE5zqQJdx0KZ4lErFbGHENKiX2eOUznnJ19xqRno1vHx2FPiVLusg/h6E6jr8ckdW7abQpiN8d43/L4fW0b89b7Dt5ejt+8Ro+91vfR5+6yd8Vq39U+OIarqXD+2S+DC8kT+3LO+fyMeY4sdSkTU5mZS2ZKhCaWN5Ibqe3IZUcaTjmlhHloBagGPzUyQQSgWQRLjmfHUgeNjgWSEuQoCybB2bMzXnz2OfM0YAS5XpI7jAhNhjBOIfr2KC6JqpmrUf1WRpuZ7QvNBC2tjalAGV1xJfp6iUvQ1dagZPVeIR0wLdhyRZ8uA3qRRFZhJQS88dGc0kdiywxrbUQ0DjJaixNJLzeLcYwEXuB5oaMbnF5l7cbSG6tVrmzl4JWDdZbeqdZp3WkxU7GnkOuBrDD1Sm5XpH6BtExad0y7MopGKuIdbYa1lbUvtJ7ZJHNW8eiGbNEdWAczYqOk4SHRs9l4vEJxLs1IHn3TP0J7Snb/tofsQxdOPMbuSszddFS3Ob6HIr77zue2Jfx929+VfLxpN1+/q3Ls5jnddR73dW/4Nu1pDlcTZTqPRFGamdOOnGY0J1JSplLYz2c8O9szpwQYeKPNh+gkmxKSQqB82r2M1jcys8iOhYKjrKNLYzfH1PACph1PSi4Z3c0klYiw1JnP9szTLlqMb18KMNbab9twCp1IWLWU0LILbDnN4MEMaD10eE2ERvCPQ6YxOuZuqarsoL0BK3gHS6Ad98rqC9YmkmSaaDgiC60JVQ2Me5C6Ugrhb/eOSDhiGYpigoVO94hs3ZymhhoYjlgI42Sc5pGnTA6Tx/bFo02QpDh2GuwLxrEsZ2yOjhc7b+zXC6IS0BA3ZkucWWOyUTGmoVQW0pKGeQjhJIagD6MFnA/pSQnOsA7IRXGK6uhA/M737bdmdzEUbv79mJLQ030+ZO+SWLv577uSeqfb3JbwuctJ33fc089srz1FBP0uB/uQ3cXWON3nu/CZn2qPHe8T1cJktIjRwGNz/ExTZj/vOZv2nO+ecTY/Y8oTWQSXjlnlbP6cs90PONv9Es+e/5A3F19xtVxwqMZlEy4jN8TSGr5WrBvMwfA3seiwOztpl6IduTuiIKVgHhoOLp1QaL0uGxWgdeNyPXDVFpa1sZhzsE5FKfk587Sn5JlEiLn03rHeafmKng94M3pvEdmOLy8E0/OoogvnRgPXrUX76HW2Je/0OsmVcqb3RJLI/COKppiQukUyEULcWyRumpIUXOjdjzBCJ+CP5gEn7M0474XVK9VsOPFgXRxvCNui5IAwPCmeBVdlSplJRhJtXLsdQWObvZJ7DWFxbES0HbdGsbje6pEaLBgFI284OkolYZJoKeOlBJviI7KnLldv2lOxvsfu+zH80seO4b6E2LtWpZ2O4+ZnbhN2uW8M7xNx3jZRvCt88S52OvYP1vEBAS0ZJFqKT9PEbtrxbNrx2f4Zn519xn5+zjydM2lgokhEbl3OSfmcXM7Z7c8423/J5eEVl4dLSl2RdaHXhbk6ykr3SFiRJSrTEMhtNFS0o9D5KnDRFpa+sPou+m5xzcczPMTHvXGwzsE6V61yWTume7Q403zGed4zDd4oQOudbgd6vaKtFevrYFPo6PMV8ZpICigAj2SXRSIKh96d5nUk74Y4+3C8rhJKZR70MtjEfaJbggNiPiCFoIq5bJrBQSfrKmzlH9UjMm/WqV4jQh/jMuHIZ/Zug6PrdPeo6uv1WFyS09AIJpJxJSk77+RWUV2Hvi+jo29HW3RD1hSptKLTcLaGWHTeUHNmAzeoDm1wiD+msofbltbf5JLzptN9auYc7nZyd+3rNnWrm8d/KCo/3fd9UeljruddRRzvYrc57YcSZw/ZU8f1mO2fxlIQIZURsZVMKcG9LYOhcDY9YzedU3SOnmayEfM7OuVoDT4UvUQnNM2k9AqrlyMLD8U7lhqHtLBKxyZBZSZJSBd6jmaO0YJ9oip8tb7mTX3DeQlth0F1BYTWO4e2cNlXLjEurXLZVg69IzJH48l5x5nOTCPBJoOH2/oVq06scsC8HpdL1zOYAOkEswwHGYwtxzRoWiIS3YIlIZLJOSGayKmQNAo0ci7BvHAhpxI34jhCayHW072z5daSCEWFnPToPM36kGlsEdmOKLbLgEjcQmVtvBec3Qw+jRvFj7AP4+bJ6qg1tF4SR+5onoNx0SvUBW8rXYVUpoj2deDhFok+Wkf7ivZK7o2pryAa+PovkN3Hz70Ng33sMvhmi/eb+95ePy0MuDmem4m0m5HiXTDKbdHjbc7vPmjmvn18U/aY/X+oyeDUnhzh5pJRNi1UHVl0Q1I4jayZrEEdCp8XEZw5ZJ3x5EwlBMfNLYoiVKgIi8LOO2LRClyYkTRFsozhoHIsw0ue2OkOTRNf9yt+urziLO/wQjj7wS6orXPRDrxuK6975dAri1UaRsmFZ1o43+3YSSFb0J1EQMTpNroiAC7TkZb21qzOqAQaMIaZRSdfPGhuHp2FSylEN7HRbkc0OM2jQKPkggxubcklKvUIwfGkPTr9ugXkMK5rzvH1bcrzIj4i20hmbXrE3Svd49+cvBeCFZEU9M0hQyQvh7cPrLYhZtAMp9LbAdPRRbaFsBAmdIJP7H2lp3LsZefudFuxdgX9itkrFv3n3+2u/Ybsrgjsmz7O9tptTvcx+OljHPPpfm4mkO5aip/+/Vgs+6FxPxbP/SbsrsTiUz931zaP2fbJhQ9JEzq0AayHzkBtK+YNUUd1LJ+vY8WBB0YiKOmoWMoTk+3ovjJ5Z3Znn4xJG0UreYqkm+vQltXClGdmjY4SU5rYa4h+NzJfrxfs08842MJO52OEu3bj1brwZq0s3mjuNGl0NaZU2Kc9z+Yz9mkmDUJwCOtEVDlPe1TTW7inputyS9Vt++AGn3ZVdRuAfY7oQiJ7NSCJFH3fJB+jWpEtwp3oDIeritPGyuDtpoZJU3TZHRjqbrfDPcZy7XiNTg2h9x6Mghj7cLZje+f67yCceThEicSXqF7DKdsmCCVlXHxsKogFr9hqxTUwa3dw62Rr7JIAoSz3MUEK34adLsGf4sDus3eZFE5hhbsi4oeSa/eN4V0d5m2f+5CT3m2Twm2/T7e/jx1xut1jx/jkjg+H9YBKwlMH7bQepaNrW2PJC8efY9rKnS26i8TRdbZeNUfUapUsE8X37MSiVHhQtmaZmNIcbdR1IsuofpLQMDBXvl4PqBkXyxuKpKMaWfPESmLpkWSqOEZHxcNpT3v2Zc8+zaGNsOGb1kg9qtyWdcF6H4UGJ9JzXFeyQLzeezBkt+Or6rEDhUoaThh0CJSLaFRg5Xx0uMGjjKlq46qqRot2c4+Ikki+FR9VcilTTsjf5j1YHmZ0lzgfFDQNxzq0Fo7ROUA4zrccoVzDQDp0HmQUtGw3m9EDFz5CBDL2GHeCAzlyfpgokgoOH5Va2LdtH8qh3oXF3refh7DT25znU8Zw39hvc3L3jfObspvnddd5fuho+4kdH4yLi5eIKD3vsN0ZNU1Qnat2GE7XBqUqqELXvcvA6JiP+v7exvI4tpCUUJ3ZJeX5VPjcKkImSWYSpUghE6IwWYQiSkZQd5LB0p2vlysur95gvQbuiSA6U3Oha4pOuALZnWcqzGVinnJUT2km6zSSWkHsry2ztgOq0d/sdCbbboabylBbJZyNaDGYDbFPFUXytQg7oqN5ZDixIIvHtvkEk0u5HI+lBDPjmIgDSiknN2o4TfN+hA7Ewll2qXg3bBRXOLrNiqi8PfsHrBIOVrdxjugcts6+HKPjbaJC+vH1t37TYUxo8i08UE+1uyK9D21P3f990eVd+7rLiZ4KubzLWJ5qd0W99x3/Q0TK37Xdd18/DcN1p60HRISrHhUtqkqjslpj9dC89ZxhK/2MsJCtUWR0hIiuEL1Xeu9skVzgtBM7Zr50EKKMtYiQUNTCCUV77sHrdEaRQGNxZ7FGbyu9NQC6rBya0jXhORzGuSg+RNNVBvNAN6cSFytJwtN0jARPoYP7Lm7c0DFGTiI+3vr36SUd0aWcJg/efn87zvHhu14+vJ1ciVYXsYzHjg9Zt6DmdctYi35x5u0asyWw2pvnpCrxHQwa3OZ8kejgu43Pj+M7jXJvWj7CPBIf/Cgj3O+KEH+f3RXxPdURf1fiN79o9sEwXAjXaWY4K4d2RZ4zDWVhofZK6yutR9IKCc+wLXHbcLbd1mh9Y+EURTPiQYZPYhTJ0f9LEoUg2SePSDDisqF1GzWmdCKibBDeKmVsPMxHuUJhLJ2DsN/NMavx4MMxygyGwljOy/VS2geMEFHlNcf3tFjKjxdbjuf99hcxsNFxHRkJMBcbHSq2DL+OIchx62NUfIKjh2O9jnQ56kfIMXpVcZJ2zBPmhZ4qZjki4DHZHUe/PdgnY950G+L46fpYW0R8xKzb0eEeHQTXjkIGHzn+/vgi3JtO7aES2W/LPiR16pO9m92F677L9/FkloIkobdQ8ffq2KGzsz2v1omL9QsO7TklT6MgIAYbjSBHZNsjut2y8IEJxu+j1MvxoY5IVkRQGxHo4HwFIctxcaI4LRwpkiGFuEwE10b2UN1arOPeWa1zUGfRzFoXbGqRTCJhunUUtlDrGk7kmBg7uRwngeYRt37rcv1cVnQkkPyaFeAWi+2jm96wUt04uteVMrGkH1+ZOIxCAx+OWXGQaxhnGwOj+EARyKA2cGeNCeA6aRZO9/Qcr52kHFkHb92AgxtsKnQDdz3uh00VTTSmSdEbTvbjcbjwdqb5Y4kGn7r8/+SYP7x9SFz3yQ6XEiWcoo5rZ/EDh/XA12viTf8hSz8w2y6EW8SH0IpFax1rdKsD59ycbDjakCxsx+gRAbdwqMeT9FCt2vipWaIAQJDoq2YO2bE+xGGs49KCCkVE5c1W1raSpHMpyjI9p7YzJolCDfFrhdkjZvvW8tlP8E4B34oEbgMMfh6TuubARnugtx6osf/rAQy8dBR5lDyT1EEMNuEf9EhVG7H8zy89VVEfURvRzeIof3PEfa95xDGEI/p+dLjw88vSGOG4jXTDCh1kmwDD3fvR2W4Mlo/TbstMf98c2HftdO/L/N+079u1fV97osMV8m4aTQod1YEVitGks3ob1KtN9HpEuD74Ab4la2KJGdxSULdwur5hg/FZTFjNI4E0svEKY3kP1Q0sojD3oC8xWs/03nERukOjhiaCO9Yra7tC+8pFc66m59T5jK4TfWCU4nqdeNpoU77pzJ62sonIMBzk3aId158/pWH5SEyd3pyxz9Nj4mAW1xAckiNS2FBitA32gAA5ZCHfGovAwGrjtYBoXKMv3ObkZatEExsvj24R21RyfHCuVyDHM/TtOON7GmuOt54ztxOHKx9bcAs8nLH+ZI+zp1zH73py+LbtyZVmZbcDYeClHaOTVcjzjEvCBp5qWw3/0UXFolkl+KdypG456pVkUZ9vfaX5wuKQTHFXrCeK5BPq0qA90VFXsqTBiAgkdvgpXEIEp1pntcZSF3x5gy2voTWucudN2XGeZwrRckY9knehHGbXzS8Hq+LaocRYjpDvCX4qod94jfHKNu4+Iu0t+fbzCTj3Y5cyGHq8EXl2WlvHR5yUMt4d19EgL42KNwu+rPipQLnf4eCOKOuAKDbMfYNS2tu4sxjq+lbEe6ShDWpc/G+DJ/pw6CDiRLcLENdRPvxxP2jfN0fwMWHij7Xv2zV+X3tahKsCc1CUEoCk0IcVkJQxuVYLcjum6okYNMSoVeLhVxwTA+uoRVRrZrS+sPTXLDbEUExJPbi0RU4bDzpCD90EKbhkNsFvGLhx73TCYS7tiov6Bl1ew+E1qTcOtfI6KbsUYjjdVnKZyTohshU7jESf16MYzCbKvUWpcYYjetMASWS0hfcBe/gWuW5VXice8ObSdXNgp1l/k44eI99OskKSgqZEJuESzlklIS4j2RU48MZsuDea8NPjNtwbNjRxfSu2cBlVfxxxdEasu7X2cexkn/0oLynHySmWIWpvY80fo32fo6+Hqr1us7s4so+9Dt/X6/VtjvsdtBRCL3XjAHQXGo0uHpxa3xyHw0mCC0kkHctoi86u4pGlTz70VK3T2oHLw9e8XFbUo/NDsZlCpmo+yjCKbHFgj0hbMx0NfqiAYTTvNF+p7UBrV7R6idYr1npF7o2DGJeXmcu8Y04zOY3eYWkItIiMSDUhYqg6175Hjvgn479xH9sWhHJkKmw/G61sbHDkzd5IxW0VYuHch2lEoSIco0jzDuZU70iXo6MPZsXoDKGj0ETl6IDjy+Q4liiA2DQWfDjcPsbQB31sjDLozcdofouijwI+btfYrzvmjd7bgH4C22XrWPGEbga/H+ybxoRvMi0eU0V21z7ehQ/7fXS28O2O+8kYbkqDkH9kAQxFK+uDebDhlXBMkGwP6HE/ds0sEA1fguO905cD9fIN69UVWCYz4TLjUjDNyJCHTBJqDQZUj/1EL7EMkvBElB33ytouWNcL+uENtrzC1zfMPiElsTFQA7Pdxj2c2lDyCh1ZB72Br47zP35iRJEyzufo3LjmI0fWfnzJct1C5fq4J1HwuMYqAp4QSdfO2wdD46SUONoJBaasYzUQ7IYS121Qu+Kb2f5DrEaO5xVauUfni50UcfiGjgwOrR6ZF9tEsUXEscqJQpduFXrFrAE97gvREUF/3PZtRT8f4jg3I9fvqwM8tY/9nE4ntcd8h0/k4TrIyKwLx66wYh4i0+PA19HeGBQyosQtujqdRVv4DwsdWm8NDit+cYX3RJdKyytJJywVJOfoWDscQETG4XTycLiiShejeiTILuobLpZXtOUlUz3wTDLzbsdc9pSyQzXEz7txXZ01orEjRunXkeep+IuMCeY0qhA5TVLxloM+RrUDkjgm02xwDHwI+1hEiEJoNwj5ZOLSY1z81nHx0NI1H1oMbXwR7RjlBrVr68xwAmt4375h9CTJ5sgxIo//Xyf4tqTfW8tQi9xZcLW3ccXnAguv1wm6jyzC/Tad66m9NYG/5/4+Nof0vnbb+XxM57vd96fP4QcrfBCik2scJFgKW3KmkCLpNYp1t4XlGNYJZLmhnaNJmY8eWUPJCjNS76QWPb1EFO8Z09iresdsodYV76HlSm947zBKWF2hemPtB7qvHPqBZgeEyqwzu2kXWO00k/IMOrHVrvlIeHF6AY+i3Y51ow0+71Er8Ygcn2Tmr4PbiEb9hHu7Lf3iAOHMNwdsLX58Y0UIaomUA15wyWA9aFZqR6hAGFHwUSE3Dh5zY4zXjRPOr7yFt+ox5agjEh43jm4TxfjmNicsDAgpSodFx0pG9YhzqwQ3FxLJM54mAKxXPsaE2YfkWz7lOKd21wP7EMXqu3Y836Z9bOf6lPE8zeE6keywWPoSua4Qyu52lC/cWApvJUW2fmUef59SpMIJRYJFOkympA7WO5KHvuzmxFune6O1hVYvaesV6+ECsTqEYTImBK7sHddO19hHkoyW0NHNeUI1oykkEo/Y8JFWcB2dmkfHh9Yqta30Hupo1w6X4WDiLznVJdgiQ4/IuI8+ZsjbD08/QjPtBJphsDqmwKoRkpSQrpSOb2I4qifR8vbTT5z29bXuJ+XJTg84QGJ1ohodLPSkku0Ub+74yaSyXZ/gZ1zDJxtLxInKNEMkx/0iOaQrfUuYfdxZ9Q+NuT7ESb15rLsqnB5jH0MCa9NueEr79u+7fdAIFxEKBROjGrhFVGkW0n9bFv/INR2FC45H3LUty71jXo/4Xmsrta3U1pAmTK1QumAtCiLQFi3DvNPo1L6wrpfU9TVtuaIuV6jFgx0Pd4oGlAroRMrRCThLQvOOnPdMecdu2jOVHSlFT7bNv/golDhWyVkf5cgLtV7S6hXm7dgEcqNAidjAM7cl+RbPQ2CcfTjvEXES0MGxmeTWFofQMQjd35mp7MiyR1OK41KO+4S3Ex3XEEg/Hs97jy7AFj3moqzXrpNhIkiK4oqkZYj4XCfcro+xFazIWyW/oKjeyGxDwEgMZkpS0IJ4Q9NgtnxEXXu/TXvoobwNcnjqMvqpzvYmFvku+775ua00+rYS6Q81GXwME8upfVAMN2T5FO8WFVldQkO2x1LTzPAuR35ok1jGBsXehoO55rbWtrK2K5a2sNSV1lbcOkmUnc641CFyfaCa4upUQq+htoXewnn0jdDviaQFSRMkifbkqpAkSlpFwpnkHaXsIsodmOaRhmU9hLS3sI9BaRpXIJbUTu8x1m49NBFGlwU5TjjHr2BgunKkk23dbntvMVH1wQgYSapIdqUQJbdxrSWTtNGlkVqjjyaRrnYsBXaXkcTcGAORiDSroaDWK95rtGU/RtKjFXzKeJ4g9VhRpDwod3Eu5iMhNxy0iZI0uli46qCFvYUcAaH7KyZ4ti09ecSvryl+v1h2VxR72/v3vXZq7+t43oWVcN8+tjHd9/6HsI/J2T7GnqgWRrTJMcXcSB5MAREhkXGP7rOtN6quIMLk0Vg7kkHB7QyBm5W1Laxt4Wq9YqmXrO1A6x1QsmSKhJBgPy6PT1euGhGSZkRHpkYSkguaCq4aHSmS4CEvRlKlaBlCMSMKHLSlPhTMpIUTc/JRgrBbpfuCsdA9RHd6D7pZON6G9RoObOuOwAmBgS15tEEWPuhXFs0yhxg4vjlKHSwEwbTStJF6xVqja6NpjX0C7imEvrdChy1O9y3KHKwGjOA6h1pYt/XIcIjmj5sSmUQ0iuEeWPaWNMRPHLQIJMO1YAxY4UgVG1GwyzHBeuQDw6gw9FPeykdpT13Gv+sxPqb9PGRPgQe+TWf4fSkffnrHB4vWNRxpQglJRk4TglL7ytLX0QixR4Q5YITIUq/UfmBtB9a6sNbK5XrFxXrFoV5Ra0MsUaRgGtKLqzqertWvnIR6w0VGkkyjRblkfPygKWr7ww8PhxtFAd06tS1UUVoSKpll9NjquZLTRPbpKP5t1q6Fd1plbQt1vWJdLml1wdoamHJfsbZAH/oNm2YEjqagdYmmk+W6HKEXGDfGtlzXiRClydH5mD7oVWuwFgZOnNwwl7coX7GvkyKUE8qaqpJIiBa2aBMCUtjGYNZoGGISXXoHBr1pHYcgeWgEp9SQ0b9OhnRjQA5CknSNcctW+XbteD9yf/u9tPuSbh/C7lNQ+y4d28fkVO+zJ0e4yaK4QI+RTCzVi06AU31laQekG60tFBFaW2l2FU6uLdR2ybIMh9tXlhYKXgtOMwVVSpkiSdZXzBPNo4VNch3UJxldbSPslaGmdfpgmwieHM0hthM9uXoIcGvB27bcPtARmupRBDxppuQZ1bhEzSq1LmS9JGnmEugdrI2OBy5BAehCbx7Sh97YOK2qIfG4iY4nTaNQQU4vb/BbcyZEEXKwFHwUdIwos/d65L+6R+ue0K7tx6h6S5yF4HtEtpvzDVrY1k4+ItCQpQgxS9fGUTfhmByzY9sePxGliQRbDpHyFFBI0kJKUaSSNMfEJU4sNU6Sbt+DZ+RDP8jfhGO4jX74Pse9C+a4mUS8yZy4rUrt+2jf5PifrIcrIysdfNcRWXmUszZzDnVFutPkQBZQGuvhDVfLa5b1kmW5ZGlvWA4H1nXFEHoqWCow7fG0w1OhbFHqKvS20FqNhoW+OclGb5H8gY0T6huVIhxwElKJBo4pCTl1igt5cFXNIkruSWgDMzULepRqHr3XZlSUglHyTCkTJU/HZpaLJmpN6KJUTXQRXEIdC9tob9cVZluZLQOv5ebNrYxE3HV111FABmerCOvdQMcSn1Gk4ScOFz9219hat7v7UEMbEu6y6Tpwvd9TSpoIbGwUfOzf306MjuPpmKw0ZXKeg/mRy2CAFDQHG0Q1B1Tx+9juK4u96aTuS0A95aH/kA7isU77bW75NzOWu5KFT70+j4nwT8/nsUnKp47jyR0faB0RCSx06AbgkbBZu3PwRmdl8U72Tm9veP3qx1xevOJwuOTqcMF6OLAsC621aB9z/pz8/AVzOaOUmWk6Y5JEbSvpcIEvr7GrC2iBAYs1EhZEqUHgVx0dIJKDdlycXCbyfiaNrPt+Es5dmJujhyiyaOJDyyH6gqU803M/LvPH3D067G6JwxMowEFTGk0hMy0lZD3Q0kpvird6dIQq1328gsEQvkxOnKSb4boxFoICJ15JXuLcSYQc4jXheoMKtqgxItnAta8LF7YzOeEKu4weZwT7YRQkXFevGUrwjc2HotjGqPBrxzxifCqCaCaliVJmUonfJe9QJrp1spbjKuJj11K4z+7CMh8iwN90UndVKj3EBLgryXWXg38fuxm5fpuFBx8iYn/f7e9L/j11v090uAatoqmg4iPZklANp9dcuHLj0A709QI/vMYvfszrn/2YizevWQ5XrIcDbWksa6WZk/Z7Jsvsdy/InplkIusOTTnKd4f6oRpcesdaZYg5hn5tSpA20e6Mp4QDuUxM+zN0mpikRNdfh9QstHcligy6Os0cr52UE7nsIou/RaUSSZ7N6Uaiyph8j3u0iVmnmdbO6O0wsN3Ad3u9pNXD0BJo10FqfFNHLrNLSE9uhQUbXuA9zrfLQpXEhpoL0QnYZFvOx7Vio3CN78os9IU3PQSzHru2AS2IgGwgw1Y9doItO/SThpMyijK6tWiqObDdzVGLCqQQvoFOtUZrjZorKU2klMk5RHdEObIkPma7axl92o7pvs8+9EA+5eF9DC/4tiX9+/KJ74v8vs/wwV0TyTcZsT/J4bqH3KEO4dmsY/mY87E5ndmK+cpajfXigv7VV1x89TXL5Rv6stKWlaVW1hZc3qSZ1MFdh/pqRGWGHOlRSTI5RbIpSPPhdHIKMW2S4yq4ZiRFC/Z52jPPwV0tkkmuJHeSG1mcOSm7nCNeVCXlHEvi6/DveLHjARsOaeCWJQdmrZqYpn0wFVqj9pVaL1mX16zLG9blgroesLZiPRxVyDwOzQQfhQnjeEdsHI7O3c3wXkP+UtOgupXrCNFlJOT0upxgo4jpiE7NQCzGsDlctn5qo9zjyCLQG47XjuXOIQhviF03qbzm3m4au6HHgC9sQvCqa/CdayK0kBnaCh+H3RXF3PbwPbaM87vCf2+Lnr+JMXyfnS38/Hf80Krisfu8b/unsRRUmPfnlDyzTzNTCawusDml985SFdOG6MxU9vSyo89nKE7LJZzzuiJrQ5ojabQH33JOOM392NTQjpjhtfbAtj5Xiey6ZceSgmbIE1rOoOzQsmOvhUw41iKwx9gZ7L2z907RRMmZlCP6yjmTtoh5y+qnt1vLJHdcnZwCD+1WIiJOhtqK5h2S9uRyTp4uqOsldbnC2gHrK7Vedy6OJXpg00Aky06+MDNHRimxeENs9CQzQ/20ASWMEDW+eDtpIDl6zXWreFuOLc3ltO3NSDaemqqCF46SlCqYDad8qrcwbrKUEqRCShNZC6SMjr9F01s34pbE+1jsqXjpbc7mfWhk34Tz+q6W+7/f7DuLcEUS8/SMuezYp4mcIgOtUiJRpCAaySTyjOzOkeefs5POWs/odWG5uuRwuGI6LCy1sWohqZDMyYT8oCmIWFS0qVG9UYfwCd5QGa3Is2AZJAuaclQypTKqmhLIREp7ZilMKHuHM3VK6xRrZOnMJY/zUFJSUh7Z9qTXmXaJ83RCw1dEkNFpIkR5anS1UEcsMFYlUTWjWkg6UdKOVq9o7YCW6CpsrUaH4a4n7XYiAdaICrEQZR8Rbl7JvZK9EaXSkSScRtS5fZ3moTPcerBCej3Q64L1FbOKW+DwrjpKeLeqMeXt+Hr87dtf0T0ZMq42koscBcVTCh50ONwJTWUkF9MJZc3pbkiv3HTw3ye7z+nC06KiD831/b5Hnu9q34fzfnJpr+SCiNIH3pgkxLENWEcrdMWZkjLt9ihfQFasd+p6YNm94eLqgnJ1ybRWLg086eB2Bp7patGUEMPU0AQpgSZD5tAscHEkK54cSwKq+CZA7uG13QRG9VmRxOTOBBTr5JwoGGlwSnNKpJTIOpN1pqR5JHy2CH7j5HZaD2F0kYZI22oK2DitIbzecQrOLh7OjYOqCekF0ZUu6Rq3PVac1UEzc5r0gFVEqE2pqVBqpVgdmCxH4panjqYCyBA6r7S6UOuBtl7R2nKUSDxikLkAStJNX3hk8o59ka+/96ii27i2Tpd8kjSKFYFq4OgiCTbM2Z1uUfaMjzZH3kN0yD8utbAPbd+VA7h5zG8CWngXe4w2xGPH+H2loD2ZFtbcUQ/FrNQZLVdCWqVZB6ucibHLiT370LotO8xWej2wzHt0GgIyywGa0cpMSkqXjkgHdTQTnQs0U4noNaczZsusVnEqXRumRg+wE5HAfvFwttahDTaDSXTo6s1IDTanoqLhVHNEulPeM+UzSt5TdBoMhxIlwMKgVA0n54TDp9H729HNBkV0z2gOlayUEqXs6F5Z1ytWvQoaWVNc2mh4CeLtBBvtR8flroMSl7C24mkNbFgzNqhdxyjVBgQxqvtCe3ZjIozOFBKT0TahbNzbY2PMLbE3zvUY88rQOR7dgrc8n8ggsA2mBO4n5zGEijZR87ock23fV/tQD/q77Ocpjuabcki3sRUeG63ftd1jz+s23PW7dryPGfvTkmbA2hqWhti1CaISjs+V3CN6VJw5ZWYJ6liZ93hr1HIVTAIAUrTlaZ01zXjOWFK8CJaMLoZnoSelSw5+bnaomeSV1g5silsiTvfouKsu2KC3Jgturq2V6p0FSN1Jg1oqSUZpsg7B7jKi3a2zRB40rLcLKlQGtDA0F2QIcTM64YbziWhZcibrBFNIWsKGq66sNXjJdb2IXm69R5XaYBi8pUYmxLJdMylPpDKjSUEiKu5s2XMZwjXtGOH2ttDbyrazoPKFgvEmkxmOMpykD4rYpvnLwM5tEyO3iFqP7AQH90hoQo/Vhg99ihEFx7QXSUDrPUqiv0eRyVPtJqvhPruLGvaY/X+Xdh/tDe6OQh/D7rhr/x+zPZR8gyezFJylXVItqro20ZTVKwbsUBJ9VBtlBGXKOyYVyB1t6dgyvXlExdYMTTM+n8N0huYZ8kxP0bXBPPAEHZxOGRVqUypgBaWhWDS1jK6RYINAJT4qy5TmndWc1I3koeubEboWUo+qNBHovilydUa4yfa/uA22YgEbuhALrS3UdqC2NSLtILKBCDllctq4p3ENNzHznXXa2Uqrl4Gv9o61ayWxTYAcABlJQh1VZdvPJhThYLbQemhV9Nqo6xL6FDWEfnRjeqgHjWwUfkRwrKNYwkeEHUpmDL4tN6LUTY0MBm1PMqYFzSmoYRKdNxiMh2PjHfdjK6XvMw/3sXbb8v4+3Pf75mTus+1ceu9vcZY/5Dl+bNfsofE80eF2rpbXYwYS0kgkLRzoXrnyDlp4Nj2jc4ZrSCEWyTSpCB0tO/K0kntnMseTIWlGds+Q6TlSzqHs8VLw5NFt1zrWFjozVfakdKD1ldQOrH1FvZO2qIsoZBAM70b3TiOSXNWMXI3FOqIVq05flV2dmac9ucx064OGNpFSQS0wVHcdDSEtIkpf6bay9isO6wXLesW6HoDQld2YGyoR4W4tb7YvxMTpapFYkkTvNSQTs4228v2Yutogik0YPMp4BwZmMlTL6uDtdnqt1Bpc4LUeaLUeHW4pkdCKFvY5nGy3MVdt0pHhoLt13PpROlJHF17b+p9tEXjSAU0UtORr5krKkZhLI5oe/OLeK70uv+8x3NvssTSym9Vqj/n8ffYujulD4aTvq4V7V0T8rlDMu372qce4zZ7kcFuvvHz5e0HSl1h6duussrD2S2bN7PZfsp5ZLLZ3u1heaiK5kSyTdELTRMozaeqUtCI6o2WHpwnTMqhFBU8CZMwraMF0ZsoLrnt6bxzygbU11k3mcAjMdDO8yeAMdyqGd49oujW8rXg/0Km0Ivhuxvo5k53h3jkkJZdBD9s0YSUP+GBEz+6BmXqPBFW7ZK2XWHdSmui5j7JWICvqievbbktORYWe67bEj9fVwUeLzC3ZppJIQ68gyaZlIUgKzYRuid4S5pCs0hoRifeG1wPeKr2C+B5Po3qMQrJov6NE9VSUS0cVYDjdOtTROvTKkRf8VrmyjqKGHFV3eQqmQi7kMqNlc8ChHNfb0BN+8q387dljS3Af+vy72vtgk7dxit91H4/lHH+Tdh8/9qkTwm3b3Qd5PGb7x4x1syc53N4qr37220iH0P8PMZguleYHfNrzxhKHfEaf4YgNCsixVFaOiZqSOiaKp4IkpYsTDSY33HBLyoTzSTqRDZAC6hTOqXQWGguVxkrzla4L1hvSbEAYBs3x2pAail7er0JzgURNoCkjKUWWfQkNhSnvmUowD67LaBXxAmlbYo9OEOnAwlVADD2W5J4bpgX3gD1SmhgiuxFZmuFeo3rO2hEz3SQVZcAcIqMseOMey3Vhgoyy6gBPKlsjSfHQ6RVr4BX3GsyH1fEcLAHtQXcTlXDyG2+3NXqvtLZJObbQbhjJvK0d0nUEFhm10FJIgw42M5VzcusUc7wE9U8Eam0D7/14aGG3RSVPwVbvikg/tN08zlOy/U+ZPG5zQB/b8v0xmOlT9nPfPfDQ64/lYD/N4Vrjan3JpKE3iwSOWfuBq+UltS58Pj+jmlE7x3Y7fvJwbmpS87QHEXoLAXETH5hopbdRppqUNjokiEV7n+QZsSiFTThZnZKNmUYjs1qikjBdcIvCgmSOmqFWkb4ibQVvoSBmwXPdula0tiBpovd2HcVx/YUIimg5XjjLTp8sZBvLcsR0extOLxWwFbGKph0y1MeiB5mNgoSFa23cfnRDm0i3qtKT4YTCWAiDb913DfNKbQttDQpYXS6p6xW9RqFFYMJb54oovTXJsL594xzbs1sPcaDjv7dWSNc3+CnUAXINd5BQCf6xagr2xxCuyblg1pmnXUA/H5EA+V0P7bYcfuih/qaz5fc5y9MJ4Zuofnufgo5vw25OjE+xD/m9PebzT3K45p3X/RW7vCPNE1kKbhlp0c4cM9Zju5zK2jtTa2TVkXkXrHt0jUBxzXgKFlIVo7GydKN1I4mjPdMdmsHUlWzBQkieQmch+k/iOC01Wk+smjhoojWh98A1kY54RxpkCfwWgygnzpiE5GNoswStTAdD4ZgvIhJUoorrKDJwJ+VGtj3TtDK3A2u7otY1ijSs4l1oKFWiKENHZZ0M6lRo5kai7NhIc+sHN9q0J1U0DzUuyfRUBrtAETfMRgeMekVdL1kPl7T1MqhXo8ghijgSfXSUSBoCOLHcBAYmfC0jKXjvgxbWwDpqinvc4Em3yFtxCUqZ6CiA0ImiURizFY9ISpiCuZBk4lhZ95HYXVHiY2GF25alH9LxPsQI+FDR3n3Hv8+ZbYJH8P6Y7UN228rjtBT9fYpOvukI/omlvcr8/JwyTZSyj6QIgttM7hPJMt0Sl9a46CtzPcQDmWMh3a3TcEyd1Y1FnFXhgLPSqK2yWKL2hueGShD5xRPJMnlUdqmMWi7Z4AbCqbFRlGJZrSJ0GrhigEg0YjyCG1t1lQ7Svtz8kWOJ77gC8d+xrE+aMCvk1JnKnrmcs+RLDnJBsytaraGxYBYZ/wGVbHvSjU42mBDWbSSpTspehxMMtsNMyTNplFQHbc1x2VYGC60dRncKB41rpccxy+iYoQNLT0PoBrZOxbol9SwkIHuLAoqoVushWoMfW51vZdnXkMvNn5EopEWPOh0cab++Fh+T3fbAmdmDD/FdzINv294HX3zs/m+zU2HybzLCv2kfAx/3KbS3JzncnCdefPlr5JTImrEMLTlmFfqeZBO5GVWUKzfetAMbGV7R0aqmUX1l9cYqjUWVgxsXvXGhlU6mWmjfJi2IJ/ZkimcykUyLh7iPyqcgbImBdomuwj5aPbhGxVmP3mqhkkUkvGRLXF1HeVs2vrXAZVs7KUAIKPetixolsSkW+RLlu1M+Cw2JWkc2vlHrgVoXrB0Qi6X6EauNEopjNOXWR682H1FgjC3nYBjM056ye8a8e8Zc9qQ8jwqv0EbIaUIdumasbJBIDDy6Y0QlnkpG8zw0DnTQuK4nl01z19qoVFuv6OshovcWOhDuG9nLjtfHzTHp9NbR1CNJKSvUZWgtBGMhmBgfj91FzXrfh/e25e6HyPzfZU+Jwt9334/FN99lPB/LBHafbRKdTxnrkxyupsyzF3+Q3TRRVLi0lZVQn1pboxloNa5a5o1XSl2hR8VXTgnzSMAsUqkWdK2KB5NWMotVqkbnBaxTTElDFHvxHJzQ1hBdEc3RLlxHGaqB9BbykaMKjj5KfD0FJY1jjBrwQRoOrjdqW0CCrgXGYSnsd3tq24XWQkqhHTAq64YHjySVBOc39AQKOc2oJHoIQQbvtndajcowuh2daUTab3+J3kdXXatHjYUu0MpEb52dAS64ORNOyRPqQTsLqcoEZkdWxFamG2I0px0xIsGV8xwQAoHBIn7Ec9tWADJ4tUbCOYxrOLR+B4cXk/hs73QWvBrNVuzKY5IeqnJCPk4uH5vd5Qzf9YG/zdG+z/4esm8zsfVNQyYfu6WUnjzup0W4mvn8/IdoTuxTYqbxZr1i7R1nyC76yoLwpq6jH1llqZWpTEAPXqz0KCtQoQk0EiaJhGOWIkI1HwkiGZHnytpXmkMFZg1MUmXU8aNHDVu1RnYnqWA5Y+b0rYMvMDgCtN5DR2Aluu1aRdtKTwviHvKTUZcViac8kyRaf7uPogqrWF/o/QrrB9zWUYG2SRS24++taWU4qdPM6I2IYHBtNynK8RLAiMA7qVZi4BqdkcVCsIetZ1iOsmqJajLZeLB6fYOYyGCaWOjqjoRXVPCFQERKGbcMuWC90FNFe8J1tBXaOlewkdgCHulu1GU9kt7T0KrYxuNjEvoYrff+Tg/TXfZtLncfmzA7NhD9hvHW++y2ZfjNCe9jY0ZsdjOKf2zi7kkOt2jhl+cvqaOMNanRc8LsEHot5ix9RWtHmrH2K2aPlue76YyUQww7WpIJpERPShNnMccpocxFOILQsBUYxP5Qugrh8upCkRQFAZoomv//7Z1Ld+PIDYW/QhVJd89Jskiyzv//WVnNIudkpl8WWVUAskBRVju22+qH25PwnuNeSKRUalEgCri4d/iaSbAZSJCirjuWdu64ox3XjSQK5mivtBr0qF0vYV7+zVrfsa2/8+c//Y23b/7CPN8w5+UzLzJzDRfito2JsZBh1L4F/aw3XGuoffkQjzGNcu4F3Sy+NEaTzoN2dfFl7g2qu+ZAHHu2d8dJFsHbx/H4qNkmw4PLF1koca6KQ5LYGo36cFDl4I6ZwflC2uUxd28z7TqGLvr5WJFBUdMYmMihOgSmuKbPLszXqqXw0DbxEj8iCHyvIYOnXv8SPzPQPoTHbkqvNdh+7Q7oqoCbSfySZmoyGuGKIOYktXBU1I53o22dtTmneqI050YmcvnIsixMpVBEQnBmKngudOt0S2SZSWNF4qPzDSNIRm3Te8W8Ua2RLS6cUkIQPKWZRLALClErbGpY61it0De8rdh6AltpyXGBnoIillJkuubOmjNWb6HeYvU9/Ze/8vbNn9H5l2GcKJFdumOmUdtswQ5o20da/ci6fUL7ivctWAu614Kj5ippr+L6qJmOILQHo1HnjfcKBa6w+GH8+d2xycY4coxn6AiQ+F6qHs/fsdwiw90bg7LS+zQscJaQo/Q71sQlR1h2iphrjAcPBTJwqrWg8UkID3lyMoZ5HuWYUeDY1/cHxDU0rOcG0JdmGXzv7vy30LFeCtdm9Y81w66hCN7H1TbpxUBRuvfQd62ncDTYKmlTyqawdtraYP1Ea0qlRG0xZ26WhWVZYnspMmqD4SU2l7QPYJEHdcoGD1drQ1vYkaue0H6i9xM5Z+Z5iUDBTPEp5BVTQVwwB1fDRkD09RY93WK+hdzB0FwJMbAIKGahQFaLU5dM3Qp1KswlkVNsv6PRxFkXofeN1j5R23tqe0et71m3j2irJBtfdspM0xR6u2noGsDIHBXVmAwzbUOqcQjYxPzsOft1a7htmBJ8XzScdneObwpWhu20Jie4teyCOLsYzXCxGJQuyWWUFMrY/sdAREzwhT6DdwuNh1G79p2L3dro5vtwJZZxgwj62mcX5MjC/6uU8gfEY0H3W3ir93/Yz/2hP4eD+y0Z9FNB+mcxA54aQLi/pstA+xiN7dKr7v7rP/czfreSAu5QY2vcdWW9/RBZXN3w28ZUodQTujZsrVi7xQyMxjQcXbV11nVjzoVJMkxvKbMwp8Syczlz1G5xp6uxtY62hrcW4iy9UVulayebUU0RSdz4xMICqZHShHhICKKKji2/r7fodkK8ITkhUyLlUXtMhuqY+MJYT51lTry5KbQ2U6sgySgl6GqeRsJ4ke2JG4WgrYUze7AM9ptLjLyWYSUewRf8fGNBK9YavTW6bqjWkV3Gl62qNFbMO6KVrGFJXob4eh5mljEYkc6NQk8RKJ1RS1bF1M8Xng6rdyEP14m4cMyiDKTWYnJPO9YrbTAVTOu5pJBzMDdkaAzDEDhCRmNxPD6GIl7btva5uJy8uv/YfVwbiB4KFj+qfHHt8U9lyd87Q/7aLPKx2up9XNLYnnr8az7Xd8tw3Yzt9paTdd7X99x+fE+/PcFtha1Dd3LbQJXUlTIEW3IWlpzCYnyaKDIcFmT4W3keQw2G2FAWMo+pKG0kGxQwD00C84nmE0pMhyXdSN7j46Q2ts8FIaQgvUfA1fqBvr6HdmIuRBPNLmlZOvzDYkKuodS5sC0TN2WiSR7eZgsiZVDLYkjCRUglasezCTcWppqePuHmw1K+hP16DjW1LDv7IeqwWTKWZPApQgLSkpPHxNyejUIK/VuNrbxJx3JnKh0pcyifTXeOFfuuwYcTxG6507uivWK9kVQHu4CweN+zzzMvV+9E0jWaf4ZGSUIKJEaJJOro7HXkwTNOWZAhcEOOG8+dC8Trx2PB5bGBhy9luI8FmIcy5Z9dx3wo+L/EYMdzbmKPfReXvZHnvt9L4LpJM1PWd7+ztUr99I7+4QO2rqRTo+jQPhCYs5CGn9U0FaZpYiol6rclbFd2qcGUJjxNJIm5flIefNnIMiUT2bGA5ERqGU2waWdzxXqI0uRWUe/ExtmGj1mOBk9r9G3F6idSPzFnGxoPgiWJWugQxsbvKFHaodVKa1voJfRG6Rp26eEnFBnd4LBayUyAzc5sxo2DkdGuwTwYAxV7wN2zvNBOsDB6HB1895CRBCLopSGFOKLYXQMtpu5Cw3dGyg1ljr+8u1WcfcsAtXOJoLdKr2G/03p8xlAIu7tQh6oF5nZh534HH2va6XbsgyXjnz2z3afYIsPN55LFa8Q12epjzZNvydC+R1Z8/7nv8T6XeImAde17/BG4u9ephbXGb7/+yratfFpX6mnFVclD6yDnCVkKUx5Z3DSxLAvzvJDLzDSHZCESpo0pRaZmCGqRKSURTABCY3fn2FIie1KbmNyYchsDCh3boNZQBIvzHDqjdtnx1rFWEavMopGNBdeAIhL2ZxLjxtgecIelOJwbTYk7sfJYa2y/Je2OEDEAoMUpxZkmZ16EHhYT59rmHnhyLueA60N3QnoLAZiWSZLRJlgXXNpYUwLfqV53WbOkuMHlfEPOb8jlDdO0UMpyHuvdz90Fyq1vowZ/ovaPrNuJ1hreYzIumAkEwwBISc9by8/C7jguDZqF3cuCzCxYLB5Tf5IkaHGv7AfxUBb70hnmU0HzfrPuS+d96fW+Bq8h434OXusarxOvUeXdb7+j50C3RQPH9yzGyJoo80SZCvM8MS8LuSyUMjOVadCEZlLOeALxRMfDRcAJbqsbiRoSfkMbtutQrDJHurIMO/XqQtKM60zqQelSBavtLCMo2kAbQg+OrEdDR0ohTxOl7PXEsMsJx9vwEM5lJuUJzxMyvSEvb5HlLZJnkuRhohlV2+xOmWbKdIPkGZcwyGGt0fYaAuC7EHjOJUZv0y4g3tDS0TLTy4SUQhNBJYZH0MuL3SLDHswETwLiJBnMjSRRR04ZkdCmlTEkEs03Q/MNUm6QaUG2iSQ3SD5F5tv6EA3ayznhIGzmZ53hc/Adugi9hwfbGSlhQxXMzPASo8sydHRf04/iflD7kVNhDzXFrg2Y98+9Zo0PHfelJtLl8/eP+V/HU/+3D928nmStXFk8/xfwz2efcODA0/iHu//9Zy/iuK4P/AA8eG1fFXAPHDhw4MDX4/9nX3DgwIEDPxlHwD1w4MCBF8IRcA8cOHDghXAE3AMHDhx4IRwB98CBAwdeCEfAPXDgwIEXwhFwDxw4cOCFcATcAwcOHHghHAH3wIEDB14I/wH0aetMCCEw2QAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5) # x\n",
"sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5) # y\n",
"\n",
"plt.subplot(2,2,1),plt.imshow(img,cmap = 'gray')\n",
"plt.title('Original'), plt.xticks([]), plt.yticks([])\n",
"plt.subplot(2,2,2),plt.imshow(laplacian,cmap = 'gray')\n",
"plt.title('Laplacian'), plt.xticks([]), plt.yticks([])\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "30d9652b",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import cv2\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "41a8fb0d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import language_tool_python\n",
"tool = language_tool_python.LanguageTool('en-US')\n",
"\n",
"text = \"Your the best but their are allso good!\"\n",
"matches = tool.check(text)\n",
"len(matches)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "ef7a3c3e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1\n",
"2\n",
"img/image000.png\n",
"img/image001.png\n",
"img/image002.png\n",
"img/image003.png\n",
"img/image004.png\n",
"3\n",
"4\n",
"img/image005.jpg\n"
]
},
{
"data": {
"text/plain": [
"[[],\n",
" ['img/image000.png',\n",
" 'img/image001.png',\n",
" 'img/image002.png',\n",
" 'img/image003.png',\n",
" 'img/image004.png'],\n",
" [],\n",
" ['img/image005.jpg']]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from pptx import Presentation\n",
"from pptx.enum.shapes import MSO_SHAPE_TYPE\n",
"\n",
"n=0\n",
"i=0\n",
"filename = 'test.pptx'\n",
"images=[]\n",
"page=[]\n",
"def write_image(shape):\n",
" global n,i\n",
" image = shape.image\n",
" # ---get image \"file\" contents---\n",
" image_bytes = image.blob\n",
" # ---make up a name for the file, e.g. 'image.jpg'---\n",
" image_filename = 'img/image{:03d}.{}'.format(n, image.ext)\n",
" n += 1\n",
" print(image_filename)\n",
" page.append(image_filename)\n",
" with open(image_filename, 'wb') as f:\n",
" f.write(image_bytes)\n",
"\n",
"def visitor(shape):\n",
" if shape.shape_type == MSO_SHAPE_TYPE.GROUP:\n",
" for s in shape.shapes:\n",
" visitor(s)\n",
" if shape.shape_type == MSO_SHAPE_TYPE.PICTURE:\n",
" write_image(shape)\n",
"\n",
"def iter_picture_shapes(prs):\n",
" global i,page\n",
" for slide in prs.slides:\n",
" page=[]\n",
" i+=1\n",
" print(i)\n",
" for shape in slide.shapes:\n",
" visitor(shape)\n",
" images.append(page)\n",
"\n",
"iter_picture_shapes(Presentation(filename))\n",
"images"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "d528258d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[['Project Speed Cycles Sri Lanka', 'Hero Experience Agency'],\n",
" ['Our Team'],\n",
" ['Purpose',\n",
" '- ',\n",
" 'to find out issues with the current website and ',\n",
" '- to provide recommendations',\n",
" ' in order to rebuild the website to ',\n",
" 'increase sales',\n",
" ' through the website '],\n",
" ['There is cats']]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from pptx import Presentation\n",
"\n",
"prs = Presentation(filename)\n",
"\n",
"# text_runs will be populated with a list of strings,\n",
"# one for each text run in presentation\n",
"text_runs = []\n",
"# i=0\n",
"for slide in prs.slides:\n",
"# i+=1\n",
"# print(i)\n",
" text1=[]\n",
" for shape in slide.shapes:\n",
" \n",
" \n",
" if not shape.has_text_frame:\n",
" continue\n",
" for paragraph in shape.text_frame.paragraphs:\n",
" for run in paragraph.runs:\n",
" text1.append(run.text)\n",
" text_runs.append(text1)\n",
"text_runs"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "1017a7d1",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Project Speed Cycles Sri Lanka\n",
"[]\n",
"Hero Experience Agency\n",
"[]\n",
"Our Team\n",
"[]\n",
"img/image000.png\n",
"Not Blurry 1298.8642254950346\n",
"img/image001.png\n",
"Not Blurry 1490.0164488611354\n",
"img/image002.png\n",
"Not Blurry 1504.4147008202476\n",
"img/image003.png\n",
"Not Blurry 2057.951858730446\n",
"img/image004.png\n",
"Not Blurry 1810.5483755674986\n",
"Purpose\n",
"[]\n",
"- \n",
"[Match({'ruleId': 'DASH_RULE', 'message': 'Consider using an m-dash in dialogues and enumerations.', 'replacements': ['—'], 'offsetInContext': 0, 'context': '- ', 'offset': 0, 'errorLength': 1, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': '-'})]\n",
"to find out issues with the current website and \n",
"[Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'This sentence does not start with an uppercase letter.', 'replacements': ['To'], 'offsetInContext': 0, 'context': 'to find out issues with the current websit...', 'offset': 0, 'errorLength': 2, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': 'to find out issues with the current website and'})]\n",
"- to provide recommendations\n",
"[Match({'ruleId': 'DASH_RULE', 'message': 'Consider using an m-dash in dialogues and enumerations.', 'replacements': ['—'], 'offsetInContext': 0, 'context': '- to provide recommendations', 'offset': 0, 'errorLength': 1, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': '- to provide recommendations'})]\n",
" in order to rebuild the website to \n",
"[Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'This sentence does not start with an uppercase letter.', 'replacements': ['In'], 'offsetInContext': 1, 'context': ' in order to rebuild the website to ', 'offset': 1, 'errorLength': 2, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': 'in order to rebuild the website to'})]\n",
"increase sales\n",
"[Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'This sentence does not start with an uppercase letter.', 'replacements': ['Increase'], 'offsetInContext': 0, 'context': 'increase sales', 'offset': 0, 'errorLength': 8, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': 'increase sales'})]\n",
" through the website \n",
"[Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'This sentence does not start with an uppercase letter.', 'replacements': ['Through'], 'offsetInContext': 1, 'context': ' through the website ', 'offset': 1, 'errorLength': 7, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': 'through the website'})]\n",
"There is cats\n",
"[Match({'ruleId': 'THERE_S_MANY', 'message': 'Did you mean “There are cats”?', 'replacements': ['There are cats'], 'offsetInContext': 0, 'context': 'There is cats', 'offset': 0, 'errorLength': 13, 'category': 'GRAMMAR', 'ruleIssueType': 'grammar', 'sentence': 'There is cats'})]\n",
"img/image005.jpg\n",
"Blurry 18.57491369641204\n"
]
}
],
"source": [
"laplacian=0\n",
"for x ,y in zip(text_runs,images):\n",
"# print(x,y)\n",
" for k in x:\n",
" print(k)\n",
" print(tool.check(k))\n",
" for k in y:\n",
" print(k)\n",
" img = cv2.imread(k) \n",
" gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n",
" laplacian=cv2.Laplacian(gray, cv2.CV_64F)\n",
" fm=laplacian.var()\n",
" result = \"Not Blurry\"\n",
"\n",
" if fm < 100:\n",
" result = \"Blurry\"\n",
" print(result,fm)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "4ff141e1",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAVwAAACECAYAAADcDJPaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAB+rElEQVR4nOz9baxtW7fnBf1a672PMedae599znmeW7fuvVUUBguhPqAhRoQIfkANJJJKjKkYJLwoidEEEgN+EMNLmRiiIZIgaIyKRiARLXxDXiJqIDEpIMEAYqjEwrp1674+b+fsl7XWHKP33pofWh9zzb2e9br3Pufsc5/dnmedtfacY47Rx5hjtN76v/3bv4m788k+2Sf7ZJ/smzf9rgfwyT7ZJ/tkvyj2yeF+sk/2yT7Zt2SfHO4n+2Sf7JN9S/bJ4X6yT/bJPtm3ZJ8c7if7ZJ/sk31L9snhfrJP9sk+2bdknxzuE01E/j4R+Z9/6G0fsS8Xkf/wh9jXJ/tkd5mI/MXjXsvvuZ9/SUT+tg81rt8vJr/oPFwR+duBvwf4S4BXwP8B+G+7+9ff4bB+zkTEgT/q7n/2ux7LJ/t4TER+Hfg73f3/9oH29xcDfw4o7t4+xD4/2bX9Qke4IvL3AP994L8FvAD+k8AfAf4VEZlu2f69Zv1P9sk+2S+2/cI6XBH5DPiTwN/l7v+yu1d3/3XgTxBO928RkX9IRP6UiPzTIvIK+NvHa//0yX7+VhH58yLyUxH5+0Xk10XkPzPeO257slT720TkN0TkJyLy3znZz39CRP60iHwtIr8jIv/4bU7/k32yh0xEvhCR/4uI/FhEvhp//6GT9/9VEfmHReTfFJGXIvJ/EpEv79jX3yEi/76IvBaR/5+I/NduvP/HReTfFpFXIvIfiMjfcHKMv3P8/ZeIyP9jPCM/EZF/RkQ+P9nHr4vI3ysi/+4Yzz8rIrtv5OJ8x/YL63CBvwbYAf/70xfd/Q3wLwH/2fHSHwf+FPA58M+cbisifwz4HwP/ZeBXiCj51x447n8K+I8Afz3wD4jIXz5e78B/E/gh8FeP9/8bTz+tT/bJUOB/SQQOfxFwBfzjN7b5W4H/CvCrQAP+sTv29SPgPw98BvwdwD8qIn8lRJAA/K+JFeLnwF8H/Pot+xDgHx7H+suBPwz8Qze2+RPA3wD8h4C/AvjbHzzL76H9IjvcHwI/uQOn+p3xPsCfdvf/o7ubu1/d2O6/CPzz7v7/dPcV+AeAh0DxP+nuV+7+7wD/DvAfBXD3f8vd/3V3byPS/p8C/+l3O7VP9ots7v5Td//n3P3S3V8D/z1+/l76p9z933P3C+DvB/6EiKRb9vUvuPt/4GH/GvB/Bf7a8fZ/Ffgn3f1fGc/Hb7n7n7llH392bLO4+4+B/+Et4/nH3P233f1nwD8P/Mfe4xJ8tPaLjEn+BPihiORbnO6vjPcB/sI9+/jV0/fd/VJEfvrAcX/35O9L4BmAiPylxI34HwfOiO/m33roJD7ZJ7tpInIG/KNExPjFePm5iCR37+Pfp/f1nwcK10HG6b7+RuAfBP5SIkA7A/7f4+0/DPyLjxjPHyAi6L8WeD7289WNzW4+F7/60H6/j/aLHOH+aWAB/gunL4rIOfA3Av/38dJ9EevvAKfY2B74wTuO538C/BmCifAZ8PcRS7FP9smean8PAVv9VeNe+uvG66f30x8++fsvAirXQUZsLDID/xzwjwC/7O6fEw52289fINg9D9k/TDxHf8UYz9/CL+i9/QvrcN39JZE0+x+JyN8gImVQYv53wG8C/9QjdvOngL9JRP6akeD6k7z7jfScoKW9EZG/DPivv+N+PtkvnhUR2W0/RFR7BXw9kmH/4C2f+VtE5I+NaPi/C/ypk+h3swmYgR8DbUS7/7mT9/8XwN8hIn+9iKiI/Nq4d2/ac+DNGM+vEZjvL6T9wjpcAHf/HxCR5D9COLt/g5i1/3p3Xx7x+f8P8HcB/xsi2n1NJBke/Owt9vcCf/PYx/8M+GffYR+f7BfT/kXCwW4/nwN7ImL914F/+ZbP/FPA/4pYyu+Av/vmBgP//buB/y0BAfzNwP/55P1/k5FIA14C/xqRqLtpfxL4K8c2/wI3EtW/SPYLX/jwIU1EngFfE7DAn/uOh/PJPtmtJiL/KvBPu/sHqYL8ZI+3X+gI90OYiPxNInI2sN9/hEgo/Pp3O6pP9sk+2cdonxzu+9sfB357/PxR4L/kn5YNn+yTfbJb7BOk8Mk+2Sf7ZN+SfYpwP9kn+2Sf7FuyJxU+TLvJ98/3QJDqrHdqbfEPAUQQAZHBjHIQBNXw6yIS712/De7gTkTaAgjd+vX2COj22dhEJPZ53N+tQbofXxaROMx41WOoY2fjH9u4RUAU0URKGREFERRIIuMH0hhtjNqP5yPj5NwdJ/aloiTV43ubCYJK/IiAItfnOfa+LUD8xknG+cQZGWDumBnNO92M2ivNOs07tXesG1hca/A4JoLGEMlyMm4zRKCkhEh8RASmrMx5QiSNSyao6PE76NYwq9RWMTNqjx85ji/2L0BKwsuvD1y+Wb5zPuZ+v/fnz59/18P4ZL+P7Mc//vFP3P2Xbr7+JIe7f77jr/7jfxXuztIaL796zddfv8S6olnQopQSjgrAu5HJPDt7Hs5XhJQUEogK3o2+NNZ1BYSUd0hOvL54Q0qQcybnTJoyZVIQJ0/K2dk5Kelwugo4MpyV4xiG00EcUFwKook8TZCUpTVqX6AoOiUkZ8iJNBV03pHOXzDtP+f5sy9IZYc5zCnxLCufJeWzJDwDdnTEO4rh1hCEnCZWdy5qI6U90/Scs3LGs2lmV2bcwnGKCPtcOC8T+1woKTOlREkpnPNx0gq3asSkZG64Gd2N5k6ns/TKm7ryajnw48s3/Pjwih9d/Jhff/1jfufyJS9fvmR5fYFdVVJrpN7RbuwSzDmxnwvPd4ndpPT1wLosTMCvfPGCnBOtGZo7f/QPfs4f+eJXONt9jjuoO3POTNMeMbi8+ilfvfwdfvPHv8lPX13yo5cLP3m1ULJi3lmXznpwaMLurPDP/ZN/+t3v6A9oz58/50/8iT/x1msxSd8Nt52+f9e2p6+bGSmlO/cpIvTej8HJQ7bte/ttZscg5KGxvI99qP18U3bb+LZrs71/ep2fct0f851v9k/8E//En7/t9Sc5XHdordFa43JZOBwO9NZHhJlGRKrg1xFjrRXrnaI5HIUZ3kFE8d5pV/F+yhOqCTNQTcNxKyknUkoRCSbhbNohHXrrSBZEI2Y1iajYge4Nx0g5gTjuRk4ZTYrkxNlUaBQOdQFVNCVclJQzZb9H53PKdEaaJtCEG6wOh+5kOtmdBDiNiYZgVKuYJBLOwTqrw873ZBdsi+C33yJkVcrmYNM4V9X4e4vet7B8nJc5uBmmLeYSdwTHPFFUEUl0hCuElw4/E+HCnNVhQTAXMhLfxbpSD401N2pbaD3xmU1M3qmtUVvlctlxpntqc9q6staV2hbMO+5CbyutXdJsRV04rG+4WF7zs4vX/PjNwk/fVF4eOiqQcZarRj041oWLg9HMnnL7fXS2Pch3ObjH2ulD/1hHv22z/d4cRu/9Lce+jeN0n6cO6LH2Lp/5ruz02t+8ltt7pxPUXfvYJrLNUrqWmjjd78199H6zfuTanuZwcdZeWdbKqzcHDodKXQ0RR4siGst/kh89RFtWaloo5wkzi4GagDrWxlKXsWxXWNYlnGzOaBYkQSpKSco8ZwTFLaK+3vtYuhuddrxAjqEaC3hLoAlICgqu4GqkkpnnRLWGZ5BpQnd7NM9oKVASJkoaMMBqzmrGVYdVOwsH5nZJpoEYqzcWN8wVQ5nzM56zw+uBRkwiWTIrDiok0TEWMAknnFRJaExa8U2OKH2YGSh0AxsAhftAaEQwMZo4Vw4vXXjjcPBOM8NccJTVwVxIacZ74tCM2pzLZeXi4ornsyPV6XXlR/qKH0jHXVnWzu+9fMMf2L/hfH4OKdP6Qm8ra72E/oY3Vxf85le/x2+8fM2Pfrbw1SunVRBJnJWOr44tTu1OTcY99+X3wh5yQPdFtzcj1G1fD0WPt+3j5pgeisJujvsxUettk8HHGO3enGhiVZ3e+i5ubr+9f9ukoqrHz9w2id31mbvsSQ7XzHl1dWA9NOqy0GuFbpg7PQtlSogmxMMZWjN6d66uDsy7+ThwlYiCrXs4FxFEEmtdab2TpwlRJSVBUmCc01RQHSDuOGlXoQOtdcz6uCCOeUcQWnPSTkkFXIyu48IhFE2UnLHmtARpniKizRlXpbmzmJETuCidwDbXbrxpB3L/KckviXA9Xr9qjknibDrjy32jy0rTA7TGa6983XekVHhezjhjwB9udHf6wGI3JBuPhcLpjXH8kok5y9zpDLjBnNoaP+tX/Nb6Fb+7fMWb5Q2HWllbwwYuayjeHVxJZQYzWmssKyyr8vLNAV2vaOuB3/nJa/7A5ef80otnnGXl97664Mvzr0lz4vnuC7qt1HpFq2+4uPoZv/HTn/BnfvcNv/1V5fJKY2LoTq2Vl9Y5F2XGWbvQzTD7uB5WeNqy8a7l6M2I57YH8NTZ3rf/bdvbxvhYyOMhe8wYbtrxWf6Wot7bHNt953hXZAsBVZrZ8RxSSse/T1ctp+d4W9R86swfuwJ4mlqYO6wdqR264a0j3cCdXittSdC3WRZ6M5SMdefly5fsdjtyypASmKOSQcN5tGasywGdypZ2AgQf0UGE8368UTVnKPEaKrRVaK1i3egWS+1EQk0D9+wrvXlgtZrpZogJogrquEDDSThuHbeO9cacSnyxInSc2iuXF69ohwusHzDvaAZRxSUmnDUpy9r4WX9DXi/pAlknvtw944vdZ/xBMpoSloSuyrkmkjvNjeR2TDYeU2Uns3O3TrVOJ1YLrTfe1IXfuHzNv/fqx/w7r3+X33j9e7w5vKEeDtRlCUgDUBHQjEvHUPpIeLmCN6d1x/tEXVfWA7R15fXVK179wHj+PFYXP3n16/yxP/w1f+TLzzmfC1cXr/j69Vf85NUFf/Z3L/itnzYuTVDNmCdqN5a1YYvzs7WSEMRioqwfEaRw21J9S8re9lBvr6WUfs7p3uUgn/raNobT92/b/232GId+0x6CQW46mptj/iai3c2R3RZhP+V4t13r0+8s50xr7XhMuJ5M7rvu23U+hRvusyc5XBU4z87FsnA41HC+BilLYLLmuI20tzv0WO+aOPUQmO/5+Tm7OS5eOBDnUFcMSCWTRICOm+E9cOEpZXDFPRbSmjLTbk+aSzidqbGkBb+8xJojI4PvFhGIr46ajH0HxcDN0WagjqrT2oGeBEkZsYZ4R3onW0AmJtBsYV1e09cr1grWM+7BgEg5knKeMwdg6R2hk1w4Lzu+yM+o7LjsiVe9o7WiKbFLThvYtqnT3Y4wQcycPlyvsXrn0BtrB3FjsZU368pvXb3k3/jqt/h/ff3b/OjVz1iWC/rhCu898CTr2NjplBRpihk0d8RAXGOqsYqaE8BGAhPeXLxhqQfOXu8opfAjT/zuT3+bX/7idzkrAvXA68uVr193Xl/AxWpoSkyTIOJIN3RE5ajSuwCKZTaqyEdhty2V70twnTqZmxETvB0VvY8jOnW6T93Puxz3Kc4crp3TkTH0jse9zW7irI/Z71MmstPv+RRaOP3cQ/u+Oa6HJrkn6+FmoLjT28BMHZJkSp6DBrUBk359sXrvtBZfzJs3lxyu6jY8kITkRCqFXBKiAQmoK2bCbrc7OmcRCfxznpj3e9I04TjFjJQmFAUuWQ9XRwqWdcOqgUFRiUTauEittXjmPUVCik6SjqiBdPBKkhVNTquV9XBJXxesg7siUnA2bDrhnrEuCAmRRM4T+/KMF7vP+Gw6Yy+Z52XiXAt7KUwaycDmzpV13JQ9kKzTBPpG6zKjmrFa52CdbuC987Ie+HNXP+Pf/ulf4N999Vt8/eY1/fIKW66wwxXWe9DNJJBhAdwU96Bz9drx1klyRI2PuDgjQecd1quVXiuuglrhpz+FP//bRlaF3qEHTa6IBeauitpIAmpE/aqVXhQriqmguwL540vC3MRWb7ObD9jp0vSu7e7bx7afh7Z9bKT8lPdPt7l53rf9fZfzu4lvvovdxFdvc7YPOd/bxvjQNbttFXGfk75rX4+51k9yuAJgRjIiQy4bjzShkukGkiJbLiiegqtrzbAeEEHEr7EESznjg66Vp0LSHlGsXPNsp2m6vogipGni/Plzds+e4egxsjBXZovoqdc1lgfuR6ehKtvKPCaK1rCxdE+eAaF5x6UhsmJdIRutdUqa6G3F20pvjd4c8QAtYs5wXBOVhKOoFkrZkaZznp1/xmfzOec6c56Uz6fC56nwvBT2OSMEVHGwzqE5V6rgcGmdi9Z50zqva+Xr3njdG1e9cdVXLutLfvPVb/IbL3+bn168oR8arcYY5XDAlyvMenCAU8JJaFesCtkKGHEOBt0M1BAPnL63TmsN64b0wKd688Dek+NbRlwE74nkPaAhVfZ54vzsnP1+hwys3g2W5YqL1lgdehba2cfpcG+zxzrfhxz1qdO6Dft9ChZ42/FvO9ZjoIW7lukPRXNPGc9j7Of4+vy8E36MvcsY75pATsdziuuejvmmg79vzO/gcJ0enK9IoquiSVFJ+MAydDgNPOFtjShoG4SAaEbTBCmjkig5kdNWPqARqZqQUkbRcJpJSaVw/uwFzz77HEl5YICRIEuieClYn2C72ZpDkzhLSVgXvAaVzNQjutYSzII+nE/qqC6R0LKV2i7AhUky2sHWgBrcPbBfFTxlPCcsC14yMk34tGOad5znmZ1k9iKcpcQ+Dz5vVooKJtDdqb3RR90FLlwa/Ghd+Z1D4y/Uhd+rB17Xlct2YFkvWa++5uuvfpfl8jW2XCFtxfsKvcFS8dbBKmCIglAwK9DA1TEKSVLgxQMbFjPcwJthiyGrHKNdECzZYFAkKpBc0MGiSJI43+052+0pOSOpHGERVeEsf0bJwkGMC1vQ8wlJH4/DvS96vBnVPMZ53ba/03+fYpKnD/NdznZjOjzWHoN1PiU6ex9H+tAkdPM4T0mG3XWMu/ZxW4T80NhOv5u7EqCnx/xgLAWQ4084VQmn8vycaXeOpEzKkWRqvbEuK1fdWP1w5KbFoBM5R/IspUwaFU29R3TrnOI3imh8rkyF3bNz8lQwUbLFBajregSuVRNugX2qOFgPL9YMFsNpdAOSoimjScK5m9DdcSqtgzTDROgSFCy0MKUJ7JjDOp6PpEQXOdILmhsiHaNTaXR1Uo6JyUcCbsMvndifudO6Ud1pCK8M/nzv/Jla+e1l4c2y4t2gQa2dq8PKshreHK9RQOJ1gdqQWpFu4UC90YAujkpg7kinpDMAUombpNeO1Yq0FngyYAQFTSRF0g1DSEA6stWiKi2x3z9jnqbraGC7U7Z/i6BT4uxsTyrnvEmB9X6MdvNBuw+bfSqud99y9rYH9T7H8VgneNOx31xC34dXfwi7z/Hd9v5d43nKBHjX9b8PLrlv7I9ZdWwc6A/Gw0Ugl4yzcLbfU8qeeT5j2k0gEdWkPCEq7ADbd+ZcsFpZl8vAYcsUBQgDUkg5k5Li4qiO4gmJE0wpkXJCVchlokxzPKTjplcCJhDRUd0W9LDeI7m2la52M6QHFGKHGpiuJjQLjAq5NCneK9YrsgtYRBUMC7xToTaPBJPFsjqp4qpBzbJOr5H0UpyWhJeqTK3w+bwHdVBGua2O5FhMXvGdRgHHas7Bna+68Vu18rvWuWoerBBrNFtZauVqWYONYYKY4s3w1dDakeaD46qo5KBFu9OoRzaEYeR8HpxcMZBwnr01unVcZRR9WDjbMVGmNIXTHZRrVWdXClOZY2UyIKFrl+sgSqeH003C2b6gkwya38dhN7G/+yKa7YG6LVP/mOPc9vdjtr9tvLdhrKefOY2M78I038UeG1HeZU/Ft0+d8H0O9qGVxW2vPRarf+j87iqCObUnOlynqrN7/oIzS6zVkKRUwvkVzXGTbjeiCtM08+z8OawLry4uMdPIWI8EGCq46PhcBq/x0I79qCY0JVKJGv7eGt46qolqAQOoZro63hvrsuBGMCVE6GqBNSq4tdi+OZoE70FvE3e6NVpbYU7kXPC1YcqIRoPtusoaATOKloJkDRiiN4xOpweh3zLmK3t1Xs+FK3/O6s4knUziTWskHHIOPE+E5sLBYRXjshu/3Sq/2ypX1mi+0q3S2kJdrljXC6wd0F7D0TYLOl4HuuA2Uoaj2EE2FQkXzIM3ndRJveIu1NbRFiXDmMU1QZCc0MFvTimhOQfPWvWo7KCizPuz4ASL4WIYnYxc84jHJGS10yM7yS5v9L+Pw24u60/xxJsP0c0ihYeKFh6D6d73oN4FNTyUDDod20N2Gw55X8R9EwL5tiPk2+ypTv8hqONm1d6HOO4TCx9Ayp48TayvrmgWJZ45ZVIeia63dAAESU7KxrwrPNdnVAvdg5tiLJoSmsC7xXHGUlRUmc/27J89gxQZ7qVVcnbMNXBkMbDGerjk6vINAEkHb3eLtFxotQeDQMEkxq5a6D14rdYiOuvaoo42xw3bB8ZpErSxPlJ/q1c8KdWHaAyNnqFbwn2CYrxchd+e9pQygyVcYLXOy155XpXnqeCqrC4s3Xntnd9oK//usvA7hyin7cslfrik1St6XbD1Ej+8gasFlhVqRVqwBXxURcgG/7hjeCQQB/aeNCOSMUDcMGk0N1RsUObis0LAJQLIwOZlrDzMg642lYlUCtYrq3WygDQfbIWASlTC+Vpt2GFFdomyQcMfiW0O5OYDdt+DdJrYeUx0c1vme/v9UPb9vuz/+0abt33+LrL/qZ065IeSfTeLCL4JB/0Y6OWxk9zN7+ZDjfeJpb0CacdSK7U11h6lpomTG2ZsuznL/X6i6J7znVENajMuLu2tTCQCmkLYppuS1CNKFiFPhf3zc+azPZJzVAWLYiJR02+duixcvX7N61dfU5dlfKkbPhrHiaqm4AtHjW9E4JsYjGsKF+MSUaN3bO2QlNZb8GFLxothafCM3TAPmKD3Rifw0kikVdYqvF6V31zPeJ0mfqPNZAmClnvnGc4PU2FOmYPBV+b8uK38ZDnw6tCobWVZ38D6Grk64GvF+4rVhX51gKsVX4KZ4OuKN0Mszi2SXWNa04BdtuuiGhxbd8MEpMS5ixqiCaSMpJtRVOmtRzUb1xMhHnxnEaFZH6pjSu0dmqHJYnUAoIaroSIx7mRIEuQjqzR7DNF9e//mQ3zqdO9a3j512XtzXA/hko/Z1+lnH6J4nY73PjrU6Rhvg2W292/Dvh+61u9rD53bfXZ63W+O8+b1f+x5PI2lIIr1FpGQbwidb2+CCJaEnIVdyeynxK5M0ATpZ7gKzeGrlyuvLlcONeQHI+K0qPKKcCowxKmQzvbobkLmjIuQt8QYTl8bh8sLrl6+4vVPf8bl5QFMUY0Iy8Xx4bg3yUE4Tcg53TrqDJqUg3e8dupquIKmqDxDBRv7lZzBG24KCDrUu0hCygJJR8R8oLUdV+sFTuF12qOSUYLRQV9J/YBQaa4sljmY0XswDvq6wOGKvlxEZFgNqRVbDti6wFKxtULvWDW0xznGl26jWJhYaWyRhSqeEkkdTEKTISuaHGmC1ETiQB83kQzGiYyI9vggxd0FvQcKlGLSVAk2tPaOZkU1tCx8iPiUZshFpdoB6sclpnAa4d4WUd722l0O9eZ7dyV8HrKHnOJj7L7o9zHO+aF93Hx9c9C3sSpuc3gP7eubhCseaw9d/9Pv/j42yRPVwnz7I5amKZJGIo5I4ILzpDx/PvPi+Y7n+5n9ZIjNkZhJCVflcHB+/NUbvnp54OtXC4c1uLpNt4dc0CmT58HPnSckh9pX0hRRqYML1Fp5/eo1l5cHrG0jNQRHciyBj69aOCIRBgc1ChzUKu4NcPpqNB/R2QY94HiOZJ13C0eRINJGwUPOKaFFsBLUMpGBc7WKtYU1LWQpUWQggniimbOsFVvfIG64KDYmtV4X+uECXw6wVDiseO34stLXFasNqQ1vDcwiWvRroMZV2PTlXTSibpW4hiXH5Nh7VJa5j+8wB/vAMrQGEhoNjIheRuTce4AqYk6T0AdGCBqfhpON623H1UVo6A4GSjWEGhj698AeG71smN/pZ7bPPcZp3MVg+FAO5zHO9rEO+b4o/ebEchvWvL3+0GrgrjGebvcujI27zuF97aFJ9cmVZhDSiClnkmhUfmVFE+zPZr78/Jwvvtzz+YsdL873nM2Q5RlJMp4URKnW+cGbAz97dclPvrrk9370kq9+dkHrQ1VrKuiuMO13lFFRlkpBRpKJ3uhDJnJZFg7LEoksDUGcbkZSOWo6wPWyr1kjaR54Z9DE3D2c6SiOiH/Hkrd73fwqYmmUwmZUSyhmjeOkotikVO2YLwhRdOCSWT2xkkg+xMtlo9clkCi6qHVBCKfbe8fbAvUCaSu0DuuAD5Z6dPraDOuG90463jcxGWpKaI7o/ojJMaJ4FWQqqGVYK9Q2oAeN72j89taDY60FG8nKiHLHjeVO650pJ3ozUpIT3Qsb0bCTUhz/KC/ZDdo6lOI+HjvFbx/zUN6WoLrpdG5zmk9Jrj0mMXbb6w/BFnft510TRPfBJ/eN5T6M9a7x3Lavd3Ge933H7xNh37f9Ex2uj8y+I2WKiCZFYuVsf86LFzM/+HLmyy/O+OLzM148f8bZnMnJKSkN4ZREQ3ixLHz25g3PP79gt99Tyk/4+meXdCZ0Tszzjt35c6Znzyi7c1JOuENzo2FU7xzqgatlCXpUUsQNiDBXyg7J5XiCZo57o3vwY62FQ9gW31oy4gn3DbcxjIZ5GzCHoNlIRNWaaAFNTDlhecJLwrMjHlq1KxXXGdIOyTNoic+kmZ7KIK0l3BrWJtCG2SHgi1ahHaKIoXuMgRWzFfPrbhimKciybnivRzlK1yivtZyQeTrCApihFgLtQg8qnUb06iOqlyzQNRgYrQVUkEOUyK9acJY9olYnEoBz70GhM8NLOHSNYSEqlFKCVTJEj3qrrEdpzo/b3icCeoyDe4p9yIjsXffzlMnirtfvm0SeMuHd3Odjtv0QMMVdMMvp/u+yp0EKBq0aqczkMiESjmzOE8/Pd7x4sePzF2d8/vmez1+c8/mz55zv9sy5RLuaXEAyTkS5n7+45PlnX1FKCeqVJN4cBEvKtN+xf/6M3dk58/5ZFDjUitqKWESrh8OBWuvxhH2oieVpYp7nEKIZ3N7eOr4uMMqBe2/Hi2PrGqW/slGnQjYxwtngrCKgU8H7SemxFjQXPE9YSjQ6KkJOYEkgTZDC2brkcEQJSAFXqCTcZ1qbcQ8VNu8VJ1rVmLVxXQwpGt5UBGtRSitjRWCD9bFxZhHBE8ixo0WJstyh8OatohCaFRjmHbMWGDkhiSk54VnRFBFKzpmeEq2HIM+G57o7a6uUKWEozZxqPTpsFKXMmTKXuFfcMFOaCctQMfuY7Jtczp/u87bXt+PcR8e6z94l6rstifWQPeW63IwSb4san4oNP+X7eB9nfR+k8S4rg82eXNorkijzTJnio9aNqWT2u8zzZxOffbbj+bM9z8/3fHZ+zvnuGXPeRQVamsJJaaa78/y8sj97QU470MTqv0P70RWdzNnz58y7PZonUp7IeUs0OU6n1UpdV+q6xuAssEVNGs5WokpNtRyTRTmB24rZgvU+oAcli2K1E2154kQ3YpSP3zCQhWNRRhRuiBZMCyDkAZmoKOQMKWNDspFNllIdJIoATIc62bQDNZQGNDwL3qIEebvmtjXSSIa0FNehOVI7WQuuHa8tEn1F0SlD1nDUpSCpRNXd2iKRZVEkEkyP4CAniXJqJ46lJYdUpTsQZcwmca11OFvVmDzFInnofby+U0rJSEl4DnhGkoBGonKtlY/JHrtUfqydshYeolfd5mxvYo13ffY+eyhKfGjpft8+n7Ltfc7roX2/yxhvfvYxk9FD3/1jx/DQ/fJEWhiUeWLez6SSg6HgUObEfAZnc+FsP3M27znfPWe/O2OaduQ8UfJEyntS3qM6gcC+d/K8R1QxnDfLwquLH9P8jPNnn1PKHvENQBVEGUvSlXq4wpYKLfBL6x0zY9rtCSrBSJhtCbZRTAEeSamBA0sKmMMllLVIwSeTUZQRWt0yEkGObBVWo9hDGI5dEoYjKXQiPBld48JHUipYAyKCS8c9BZMhGVIKSWdUVjoLYokpT5g4rdeobNIoqu3SgjLXwdOQHzeQUpAUBQmigkgGDaxZcyHljJmOpo/A1UKyTm8hBK51VJu5DIHyHgyNjfXQgoK3qYh1DBXi+opRe4MqZM0wkqmeMm2I12RX1t64XFdeLZc0/bjghPeJWm6zm/q4d/F0b6NOve9YnsJEeNdzfJ9l+YeeOB7a72NpeDed6qljfgyW/hgmytMiXBXKrpD3E6lEJRcOc8nRBmdK7KbEflfYz5kyynZVlaSFkmdK2aNpx9a6QnMBolvBT16+5Dd++w0Le8puh5ZCB9Z1pXVY1iusrfS1Ruuew4p0gR691rZy4EHxB4Zod49yX/fIJLdasRraBA60JKjlgQMTSSPZOhCH/05pizg79IZ4A2uIFdQF0Y0jDE18CNuAayTFrBuuoTIGgg1mh4mRVUgy4ZyhZlhv0NegWKUpxsxKNxlhrgaVWJxeHZcQ8SFddzLeKvVSSsdiBR14rQwYoq0Vr6GBOy5WYPTNQ3BIndA5DtzVraEqQfeSjHQPXFiuZTgPq7BTpQ+ZTg/fTZVoPHpxOESptXw8wjX32fvifQ8VBJw62dv6bD0EJXxXtKlv45i3OcDHfu6xn3lo29si7LsUwx4zvifycIW0y6QpkabARlWEkhMpS5SLKmTxIMLL+IxmUirkPFPyHA5XNBzQcJCHZwe++OwFu/2O2jIyNBNAooXOWlnWK6Q31sMV61U426yZjpFzHvxcgspkPcpcXY4CJO7QW2O5usJ7AwHTcGLiEiD1oFIlzbE8l0hCIR4O1w3rK/QZSVGyKjhJoIuO40Rr8KwSImndEe14GlxWIWhrbGrxiho0nZHS8X6Fu8IiAzMe8pKjZsOOM77FmNQZfC5E87jwUb3nXDtgcYeUkWx4iiaV3odKWOtY7xHpOxHhEqsaH5OV45CglBR6xdGtDRniPHEzOuvakbQgQ7w9nDQgkOdCbTUoeR+xfUiH8ljJxduKAx4ay6kTeEwZ6n32bTrvxya43nf/D7E3Hovxbp+F25tJfiMYLklIe0VyFABoknBySYicUIiHR8AUfNqUcgja5B05z+Q8o5o5tjc36GXP2Xwe3SD2E5dvUhDt3WOZO9gR0o22Vq7eHLDqzGWPZ6PPc7STqRWTUY7ROrhgHuI11juYc/XmFcvh8qhApiZojyQRFpxiH6Ww0V0iWgABg7NqSG9YW9GccY9uFL1HqXEXEHVyB6lplB90kAXPKZgQSOhHbOwHwD2cvKQMqeA6YXlwYVuDDB7SZcPhBkwxBBSQHkpg6hBgdUAAwnWZphMRt2RH54lyKLTDAVoPvfUW0ItLFCt0xiQ0JhCH0L6YBO0e1WoWEwhJcW+knhGLFkq1tsHLFZJ4TMop9tS6HVvG/3620yaEd9l9Gf67aFWndlO68ZtY6n9oZ/wu0eq77PvmxPUuOP19Sb6n8nqf1mInCXoW2KNolPXmkklDtGaLJCPyHUpVkslaAsPViSQFlXJ0AKhScmc3n3E275gnR7yHIpc7eGgc2GhYWWultUYuM3kOx23WWa/e4K9eIz14nuYWlCokFLB6p9fKcnEZvFYFNGqx+rZqS0qShKZgUohGxj6N30Yj8mqOLcJWRiUio9AiaHJKtCTHPZJF3SJKrDUieg3B8o3tgAl2LAtNQSHLU7T6Gf9Doh8Y7iSJiFTziL4JLQlqdOLQMhTCdEW04CVfS0KOpBZJYS5wlXG7QvzEOYwy6Jh0PP7tWzQ+Chg0VNaiNDr4uSnnmJRJUDu1G/MusT+bSVmIVpl9RMMjQfmR2Ltk7B9jTxHQvouz+xCscLrtXft9Xwf3Ia7HfWyDpyT2nsKouMvJPmW8NzHd07Hd9pn77GmQQlLOPj+j1RblujpKcIVBpRrLR9XQxk3T9Y+W4ZgTOjpCbANMWpjSzK5M5NTprdPbHukpKFC94b3RaiSQcpnYzQWRKIQwN1IJMe3l1SvWZcG6odro5vThqJfLS9qysiWaXLdlPcdoPCaCkRzqFk54SD+6SQi+ADQl9RV8QiiB7fqIViWRVTHN+OAeiwfGGdxaCVhBEnosZw4A2C2R8gS+j3G1FSwHM0EqIGirdByao0OngAEruHloLqCkVKBVrJYQ3pGhFeGOiYSo+1TwnOnLYUwc438WjjbgkU1B7Lq8NxThoo29qpNLIeX4LrJnZAUczvZ7pimBeLRRmhPm0XLpY5RnfIozeKq96zL61Endto+74Ir3dTiPtafQr05/3/bezf2evv/U83ns5HmbI7/NcZ6uJLaOHbfh7x+MpSBJOPvBOX7orBfx0ESf29MkzVD7T3M42jx+pxEJkxDfsKqtf0AiaWHOhbOcMTtEu5ihR4u1iGLrCq7kvItIeeC24IgG3lnXA8vLn0FzvDutL9TVWA4L1tt4qDZ5wYAs0FA1c0bG3rduuQE3bGVcLiPyG40nXTrdG1AHmyIaZqLEhFMKlBnXjMoWxUb7cLFR4mvgI4lmEp0rmk60LINKdsD7imrBdaWlBA0SHWuCFEF2inrGko9WbI7VRk4VmSe6NbBIcnrcOSFQPmQYLYV4jQ1tAxuNH8WDj6xYTBTeIaVjZ2UXI+8SMs9MpaDu1GXBraOTsptDUxh38j4jRVirI3Ph7Pl5MEE+EruLkgXvz1Z4KMp9jCO5LzK8a4w3l793vXdzHE+1b8qh38YseBeK2GMhg/u+8+NqlGvWyel+N/z8w7IUcsKfzTAZOXV409GegscvEomxNP3cT0qFJAWRBFwnBrZhRZSrlFKYdzuSXtK90ltwNukBCZg5OU/DYSt5dJdwj5lnmibmqYBV6mAxrIcDtVqIkufoNKGJIwadcorS4SmWw3nK6KSj35YG08DtSP+SgW+mLCH4khpGHXq+IbBNCrySHMIwG03KcqKLRqtwIs8l40L0sXJXSaQ0k1VplmgUXFa6rLiuqOaoMCMdMW4VBTkMjm60wrE1+raltaJTCkqaBnNAzKG1UX0XjqanFKW7rYcgjROsBbdIGBJaCgmiatDAijM9n9ifnaEIfVmPjnufZ/ZnM5qg7BP5WUGKBg1NGk5/9FL527D7klrvE+FuzvYp0MBddrN0eLOnZOLve/19Hee7XKfHTATvY0/Z380o9Way8z689uYq5C57MqSQPjtHlhZOxVfs9UhuuZDzNNgIm6MdzlZL0IiOrmZc6JFci/+Gru48FTRDtxb6qU5QldzJuUS2vsfHREKMpbV4/2w/cfYHvuC8/ArL5YGXP33Jj38nKGTKoEflRC45knwJpt0O3e2QIpS5UPZzNL8c1WVIJN5ENZJeqlFYkCOhJuqQovmkRyYOzUKaNBzuqPiSlLEc5cCqsTjvJ/dCIpS7uihdMlkEleDnQuDS1RqpV3pbsPIGz6+Q/Jqmr0biqkMFTZFI82r0wyESblOOlYgPR20h2B4yjI7mhFeNZpm1Ie4ooWWrGr+TJJKDtKh8K89nzr58xlxm6rJiCEUnZA1nOp9P5EnJU0LOCzoldiaUEp08PlZm2M1o8puMcB8TfW1jCAaMH6OtxyaB7kvKPcYeG1V+iOj4rmX9NwXznO77prO9a0y3NQC9bYy32ZMcblJlOtsjOpb3ecVxrCdkl6AkyImUC1kLmvKgKaVjdPh2oiQy1ht2NunEbjehxenNQ/F8YLAq27Y+EkU+VMMM85VnZxN/4PPP2Okz7Fc/w8x4/eolv/Vbv8Wv/9nf5ic/ekVXJc+D1jaEVuazPV1BspLmgkwFySNBFq0jRtJMMVVyTkxzhjkhZXQmLiDFQ4emhB6BJ0jJ0eQjt5ZGH7WEJsXMaeY0d8xCf0HHF2IaqmEJoUn0WrMCeMAd3Rq9foavL6D8FEkTTDt6q9jVClcLoiv9InRy5cJx32EEqWG7saQ2aIatPToxI9HBdxkdzVLQ4oSgdWVRkglaG+VsojwvzPsJJUFP5P2MzBN2OGDdSDslzQmZFPaxakg2DdhJo8jkI7VvItK6Gfk81tluD/ipIzhd1t423sdiio8d+7dlt8EI8PNJze21+xJpD1HCbtrN908hhFP89r5uIA9RAJ/GUhBlTjOWG31yWkoc1gNpFeT8/DjzRi+yPBgJ0Zn37TPbfvsxyhVR8oAFUlJqN5webAOcbo6tjawpHnBaZMcV9rvMr/zSC375s2fss5MkEmFXh0t+6Zd+wA9+8AX//p/5//J7P30T2q8lHvhpiv5rSRQdDpQiSFGyFmzTW8g58Gt1ns3KbpeROdOzsGbhKgtWEpIFmaJXWhqww0aF0hRfVN60HSTGqW40sxChkXDsLlFCmzRRROk4jVjOd3daL1gqtLRDdU8un9HqK3I9YFcX2NUbuFiocoG9OiC1oZcHrETnYd24uc3w6oH5Lg1qJ1WPFcOmeZwhiZJFKAoQPN0sTk4EvitGLkqaM60esBwylDzLMCV8UnSXB6k5ZDM3psrHalsQ8C5tuh9rj41sTx/g7e+NEXRTe3VzAjf7mN22/4ey/t8mL/c2eyzc8dgWRKf20DnfdKqnOslPbWV/ak90uEKWxEoPgZMk4Ry2RoMio6qpvAUlqIwqp5vP18n5CrFsL6WQSwpdABmZ92Di09rKslZ0JNk0FeY58+IHP+CHn53xwxfPeT7vKDlm9nVdef7sBWUqHNqBVX+Dy3Ud0ezMNM0jgRZ4q04JmRNaFMlC7xJOXYQpC19k4bNZ2J0lZM5YTiwp80oLlznRNgnJPJxuVnJSctbRDDMclwSnIYomPLqOxfJ6yBiq0lXomkIfV4QsoYPW3Jh6x7vQcsLmQu9ntPYDfL3ELl9i89cwv6GlwmqvqG+ukKsVvQrxHveANMRAVkOqHR2u9GAyQETmZc6UIuQ8xr5R5fLWv9fRKbPPoaXbTOkenX99p9FOZzchUw4mS2uYGau3cMAfsX2bzuY2B3Df8Teo4ia74rEwyIeEHL5tu4mXPtX53WR83Add3HY97+vj9lCrpSeL17g1xDtFjNUCO43aeo+ILO0oaSbrNJztaY8z3nK64UaHNCCOEJoEssknbLKCLcpo23rF4fIK6QxBnMy+7Hk2w4v9xIuzc17sn0XGXJXWGmf7MyRV3hy+5mdvvub3fvZ1QAuTkqYcx9AhzzgVmIP9EA25KlgjifFM4EWGL2dhyoZkx6dEnwo7SfxEE280ChZEgvMaXYMjITilFBPSKKwIqlVHrTP5iV6txCRWdbAaBvWuEwUYzROWFPPoNdbxUbrc6e2cNu3pZU+bfoaipN7QVrHLA/XNGrO1Ftw1snRmgZW3IWY+EnGenPyskJ8FBS+n0IRQDQw87ZQpFaaUj7h4Lpmue7o3WluOhR22m8iqQzy90ZZKq/VjouEe7X2il/exx1KYNrst8n4qP/UhTunHbqfQAtxPLTtlENx0ok+BHd4Xy32yHq54Q71Tl5W2hq5BGn3DVHQUOJRIkI2Zl+332Ef8fzvZPqCDfh2y+2AVyNbmvNHbQl0uWS4voDtNrgBjl16Q+WXOdoUX5895Pj8nb0pm5kzTRPNLvvrhL/HlDz/joh1YzTFx8sQRS0zThJQJnybyPCE50XtDaewS/MAaX9LZFShpdKXICS2ZWSdMlIawqI9uC5vwd7QhV4ykCfeYpKJlTUMxsiaSjptDQETZiwbPeUAMXULbQUVxyvGabvznbp3aGkueeKMTLU+UfEYqZ7yRiZcH59WbGq2DpMfxJUqak8exTC3ghNTJzwrpxUx5fkaegi8852hxVHJmnjN5N5PnGc+xIpjOd3gp1F7xRZBWSfuJmjX0b2ulHQ70w0qvy9NuvW/JvgtnC28niG7ygW+bBE4LjU7hg8dABR8iGfiu9j4wxU3nub32EHvg5mfvG89jknM3YYeb290HQz2ta68b1hbaUlkvr+iH6KelWkgaGXqRhBOiJWZR8aUWktcqgtGP5HonSoG7N2pbWOtCby2kE3sNZoBFUsl6jR+rWLUQ4+4L/cVEUWdXCvt5xzzt0AEp4E5OyvP9c7787AVffPGMr69es5rReiSFGHxXnQqeMmme0bmMCFeZ8o5nCb7oCy+8ImqUnIPulQfmmjNnktlRqJJgdDiIrhNRghvONb6g7tGaXawjHhKRk0aZtKRMToWydU4YohQqQpHELiUmzSRJEYlGLRjmRrPK1bxwOe0pZ58hV1cs5Q0/S5/zlZzz4/wX+NHvfoUtjkgG0aGn4JgmejI8NdI0Ub6Ymb88Y3e2IyeYkjJnp6TMrhTmnAe2PTp5lEKaMrrfoz7Tk9DWA/v9zLQrXB0OdA2ltvVwxXq4+igj3G/T3gc73ZzwfQ/3Y/Dbb8oecvbvYvft7+aEddeK4alUuMdix7eN4zZ7Ypv0zvr6FfXS6JcVPziZzFQKSTRoTea03mheg0vbR2bPA8MMiCEHX9OdZp1DP3C1XvLm6hWH5YDVKBdVGWpfPmrvIYResoSYtjnEYju0XLd2NxuMIeA0Si6c7/Z8/vyMH7w4p1qn1spVd0wdnSIJ5WkizwUrGkmrVJCUmFSYM0wey/6UBM1D3DxPMJ2xS4WJQpGM4iQNx5lVyOLMwByrdZoIVUFUqC4h+JMSSTNTKszDoRWNirUsQiGx18xZLuw1kTYIYutb5tC9Q2rk2ZFWWZYDr84u+enunB+XM35nd848/To/+9HPMJlBSujiLle0Q6UlYd4X9Fwpv7xjen7GhDAVYz/P5Kw8m3Y8n/akJDQ3VrMQAEqJpImpFIoGLt5KgeRkYpJYkrHYyuHNJa3Vj5YWdmrfpHN6zIP/1KTdbQ7mscd6yB6T5LyLRfBN2m3R7U244ea2p9vfxoC46zOn291cdTzm+jzN4bbO4euv6ZewvjHqlQBT0JK00F3pVmm2RoVXFxAjeTkmzmIJoEeHW3vjsl7w+uorvnrzFa8vL4kk+dAQaA7VkS6IhaA4Q9RFLDKHrVVqW2i9Rr3+wA7djNbX6ILrxpQyn+/3uDtrX3l1tdBI0ZGg7OhaaCrUEYeTEkWDe0uGiTxEyB1NGfJEKjvS7pyzVHjuhUknskBOE7s0Ie4kh2dp5ny01qlmXLrxkpWL3oKeljJJE7ucmTUxSWKnmbOU2KPstbDXSE7tNZPGUip76PJCRLmanOwRSR7KzGXZ8UuS+WGa+WJ6zvNyxp89+x0uPZHSDmpluXjN8uoltVfK2YR+NpO/nAJKWCtT6ZyfnfP87AWfn3/G87JHcZZ24PXhNVd9wcWZtTDpjJSoKOwtuhuLtaD3tU5bK+vlEjftRxrjfmhs866l523HPF0ub5+9zek+VKhx274ey6e9yx6z3L5v+2/Kbkaa2/W69jd3V+g9BEHcZe963k9zuL1z9dUr2iW0K8X7LrrVpoLkGUNY20qtB9b1ChGj92AVMHi4stU7EBVcS114fXgTCa2vfsTXry+itJQBJzSj14Z3QyUxTzuESlsXumd671xdXnB1eM3l4U0I5Vi0lHF3lnpgWa+odSGhnKWJpLCG3CvdC67BkbVSqCnRUrT56YySXIhEWxGmWMBH94Y0kcqeVM44SxNfkDCd2KXMlCb2UlCEAjzTQkYZJQms7nxG5uu2csBJElKTs2j8qHKeEs8kcSbKTiNK3GlmJ4mio+rNYwIb3xDJIbnTRUg4yRw526H2jJ0qZ9NE3X3Ob766jJG1ynz2Av/iyygN3k9Mz56hZ4KK4/UNc2p8/uwzvjj/IZ/tnnGe5+FwL5kuv+bl4Q1LvWQ/zezKHp+iq4fljPcawkOsXDZnqsah+hGr/ljstkjoXWhrpw/7TbvNAT609H2Mnu5tdtt+H+sAHxuZ3sduuMvRfRN21NYeDvam+PtNbPXm+7fZYx3vts03Ayl043Cx0K+EvmamkpimOZygzghK7Y21HliWhPkFqwjeO93q+Gl0v9anXXvj9dXK15dX/PjVK16+vgBr+JAhNOsIFo0RU5TlqitgeG+Ydy4uXvP1q5/xxbMvKSljPh95c7Ud6NZIKnw2nVHOOnjnchUKmWYTPWV6niPRVCZ6ihY5hrD0iM5WlCuBoiHc4gLkGdIeZKbIxHnOlDRzniZmLWRJFFd2KbHTkCxcR8+vPc6zojxPha/6SgcmVbIqRcNJnwE7cWYVJhEmJByqDviZa3zXnUiAEfQ8JPizSZQyKvie+Y5VjS9r5Wc90TvQE9Oc2O2/JO1nFjfSlKI6TBxNz/kiZz7bn/F8+oxnZWafQ0uh2Tln5Yz9/JrXyyt0gjnvWXVoPKSMmNFY0bWyZ6b1wloV30WS9WOxhxJND9npw3wXg+ChY9987X0oT3ft9zH2PpDDd5mQu2k3J63HONp3sac45yc2kTT6oWE1dF3nacc07ZjnmVxCYbo3p9aVRaGuV7it1PWSq+UVF5evuby6oK5r3JSSgkbExNITry47dWmoJ8QafV2DrkSIQ6QSVC7F0KxBKaNxcbji1euveHXxE/b7iZy/CL4ooU1Q8p7z6Ut+6XNh3b9kXS7YXb5hqY21KZaUlmfWXFhzoeeEqdIcMKPTcBVeD/7qjjww3omSCoKSJfNcZ87znnMtZM0UCcrYTgclTJ3unaV1mhsixnnKzApLbxSNVKK6URz2ntkZzDiTQFEoFmLnqqPHGpuerh+ZH8dikpPvLqVELoXcCzlnpnmirg1UmfKez148Q+aJN+sBiESeqvHZ/Bm/+vw5z3d7lIk5ZfYpk1xwnzlPO3KZKaXQpEJOuHZ2RDWfOjRfyK1zVZ6x6ivmNCElf1QR7m12F13o5oN10zHexcX8EA/5XVHxU5f7d23zPlHpYxKA31TU+9DEdNtx71uNbPaUVcFjtn+aw3Wn1454ZppmdvOe/W7PbrejlFHgQBoMhSGCYpW2HlivFq7eXPDm1ddcXV5GF11RmJ8j0+c09rTmqBZyMVKLCrOoNIvotkwlSkWxISAuaF/owNVyRffGlHfspudMZQIUy07Oz0j6jGn+jF5fs1x+zeX0Ey6vLllXWHHWFE5SUqIK0WLHI2Gngxh8MEEk0VPGHTIZ87iIGWWWzAudmCSRJTNpYkdhHmphMjjHszeqd1yMvTsJY5GgmjGaXyaEbEZWJbmTcbJbUPDckFGZBo5LMBXcgw/txOToHiW6oXUReghO+OMSHTXBM7td4fnZHk+JZo1qjawRge5S4Xk54/l0BmSKKrNG5O5e6FpYvFOtUn2lJ0HFmJNSJHQbmkyIGRf7F9TzC/rzA3IWmPXHZHdFKHcVJdznPO5zMo/BB7dtbmom3BZB3vb3+0ACH9Juu27fhN3seHEzuj39vk6v7VPsoe/7w0e4HqWlU4oW2JqFaS7Mu5lpKkylME0zU5njgdZoB+AYa+uUckUuBVGlew8RmmR4ciyn0EtVIVlDWyNbDrFuD3FrTSF07oDnTJIdhcx8PnP27AU//OLX+PL5r3K2/4ycJvCIgue+UuZz9stzbP2MtTyjpEzSH3OVlqNEYiM4s4aABB1NraIIyUJcx1HaUV4ynGORqASbPCLRSTUwWfGIxsWPFWbuAwbw4NaaO7uBJyPhkDcJMbElhHG8HJ2rjVJal6hGO41j3YKTi8dxzVr80OneuWwLF1apdLJ6qL+5k0siZcVC2GxQ0+JazCUx5cQ8KgfzKOIonkZNSmXXD1wOjDpPsc2cS+zTjHUN/Pzw7ED7fKEfKn4mP1eW+l3bY5zn6b9v/r6toOC+zz9lXN9VQQZ8e2yD97Gb1+ZDRe53JSBv2+auf5/aEyvNBJU8VMEEEQv5vRLR536/ZzfvKXkiD/0AXKMyLS/RRDJP5FyotWO+RWahZ6tDUFyyo5MOpkJoLIjItoYGHyeVEzknXnzxJX/k1/4yfvWHf5QXz3+JkvZDnUxRN2pplLTjkh2rTmje03DqekFrldWG9KAb07hgDnRvJGuIKNmFgjJJJKXUldmFnTnz+Gz2TrJGkRxRrzlKi3NjuyHCGQogPYR5Sg8+bhQdpOOXZgOnRjtdO2ohDlS90EfUffO7tdEpQ4hOuld14XW94ut24CfLBW9ap40+aBPQLYpZvK+UPDNPIQ6fFZI4syayKEWVXZooGsyNJAMjN2GXd+zyiopznkNIfj9PZM2YGTVVznSHm5B7TF6XZf2oItwP4VSekmh77JJ/K254jLN9ilN+Ck/2fa/Lt+Gwb4r1nBYn3NaC6CkJ0YfG/pTVyxO79irz/oykIfriYiFTmDO7MjNPe6YpHGrOQ4zRBTFjKgemMlFKCV2BFNLjromtGa2JgAo6ZTIF7QtujuQhR2eD8iE+2pgnpvOJX/uVv4i/+Ff/KF8++4Oc5TNEJrYm5lF0kKBocISpqAp5eg4p0aijnY6SJQo2BKd5o2D46K4bS/r4Eesh0F0VzZUkK2l0e+goMmkIb8vWYlLw0XoHi0KQCESN1ms0W7ROAtyiuWXMqEZDAutOiTqKIXSorzm8VbVnFisQ27Qneueqrny9XPKTq0t+fLjiojeaFlKKeBl3al24OjjPpohM3RzxIULOiJhdyBJYdQBH0ZPOJVFy4WzagxtFCyXtmHRmrxkTp9Lo7nx51pEXhntn5uqjcrjwYehgH8o5nTrbx9qp4MqHGMv72M0E2jftdE8FwLdjntq74shPGfNjtn2Sw81l4stf/UOIKakp03TOfHbGtNuxm3YDSsjknEP+EEFdoy6/XEYblq0br4KYggTP1Ta3oXIUBpeko924H6NbE6JNNw4J9p894w/90h/iB8//APtyTpFovbOZDddQ1Cm5kPo8nHhhFeGyVxohhJNEj2Wy0o3C4PJ5NJAcgEKMXRWqYSI0Ay0V7xNrWrnqFcpZaEkQ4uM+Chms29GZ9m60uoT2r9tIdjUcp/eGeVyTLsLBHQbVRjyoakbIIbShONbcWL1z8EYjXlta5dVa+fqwctE6VYTdtCeTMCqtX7FeXVBrgezsz14M2csGGK3DZV/Zt0bJo1rOiVLsMTE5zqQJdx0KZ4lErFbGHENKiX2eOUznnJ19xqRno1vHx2FPiVLusg/h6E6jr8ckdW7abQpiN8d43/L4fW0b89b7Dt5ejt+8Ro+91vfR5+6yd8Vq39U+OIarqXD+2S+DC8kT+3LO+fyMeY4sdSkTU5mZS2ZKhCaWN5Ibqe3IZUcaTjmlhHloBagGPzUyQQSgWQRLjmfHUgeNjgWSEuQoCybB2bMzXnz2OfM0YAS5XpI7jAhNhjBOIfr2KC6JqpmrUf1WRpuZ7QvNBC2tjalAGV1xJfp6iUvQ1dagZPVeIR0wLdhyRZ8uA3qRRFZhJQS88dGc0kdiywxrbUQ0DjJaixNJLzeLcYwEXuB5oaMbnF5l7cbSG6tVrmzl4JWDdZbeqdZp3WkxU7GnkOuBrDD1Sm5XpH6BtExad0y7MopGKuIdbYa1lbUvtJ7ZJHNW8eiGbNEdWAczYqOk4SHRs9l4vEJxLs1IHn3TP0J7Snb/tofsQxdOPMbuSszddFS3Ob6HIr77zue2Jfx929+VfLxpN1+/q3Ls5jnddR73dW/4Nu1pDlcTZTqPRFGamdOOnGY0J1JSplLYz2c8O9szpwQYeKPNh+gkmxKSQqB82r2M1jcys8iOhYKjrKNLYzfH1PACph1PSi4Z3c0klYiw1JnP9szTLlqMb18KMNbab9twCp1IWLWU0LILbDnN4MEMaD10eE2ERvCPQ6YxOuZuqarsoL0BK3gHS6Ad98rqC9YmkmSaaDgiC60JVQ2Me5C6Ugrhb/eOSDhiGYpigoVO94hs3ZymhhoYjlgI42Sc5pGnTA6Tx/bFo02QpDh2GuwLxrEsZ2yOjhc7b+zXC6IS0BA3ZkucWWOyUTGmoVQW0pKGeQjhJIagD6MFnA/pSQnOsA7IRXGK6uhA/M737bdmdzEUbv79mJLQ030+ZO+SWLv577uSeqfb3JbwuctJ33fc089srz1FBP0uB/uQ3cXWON3nu/CZn2qPHe8T1cJktIjRwGNz/ExTZj/vOZv2nO+ecTY/Y8oTWQSXjlnlbP6cs90PONv9Es+e/5A3F19xtVxwqMZlEy4jN8TSGr5WrBvMwfA3seiwOztpl6IduTuiIKVgHhoOLp1QaL0uGxWgdeNyPXDVFpa1sZhzsE5FKfk587Sn5JlEiLn03rHeafmKng94M3pvEdmOLy8E0/OoogvnRgPXrUX76HW2Je/0OsmVcqb3RJLI/COKppiQukUyEULcWyRumpIUXOjdjzBCJ+CP5gEn7M0474XVK9VsOPFgXRxvCNui5IAwPCmeBVdlSplJRhJtXLsdQWObvZJ7DWFxbES0HbdGsbje6pEaLBgFI284OkolYZJoKeOlBJviI7KnLldv2lOxvsfu+zH80seO4b6E2LtWpZ2O4+ZnbhN2uW8M7xNx3jZRvCt88S52OvYP1vEBAS0ZJFqKT9PEbtrxbNrx2f4Zn519xn5+zjydM2lgokhEbl3OSfmcXM7Z7c8423/J5eEVl4dLSl2RdaHXhbk6ykr3SFiRJSrTEMhtNFS0o9D5KnDRFpa+sPou+m5xzcczPMTHvXGwzsE6V61yWTume7Q403zGed4zDd4oQOudbgd6vaKtFevrYFPo6PMV8ZpICigAj2SXRSIKh96d5nUk74Y4+3C8rhJKZR70MtjEfaJbggNiPiCFoIq5bJrBQSfrKmzlH9UjMm/WqV4jQh/jMuHIZ/Zug6PrdPeo6uv1WFyS09AIJpJxJSk77+RWUV2Hvi+jo29HW3RD1hSptKLTcLaGWHTeUHNmAzeoDm1wiD+msofbltbf5JLzptN9auYc7nZyd+3rNnWrm8d/KCo/3fd9UeljruddRRzvYrc57YcSZw/ZU8f1mO2fxlIQIZURsZVMKcG9LYOhcDY9YzedU3SOnmayEfM7OuVoDT4UvUQnNM2k9AqrlyMLD8U7lhqHtLBKxyZBZSZJSBd6jmaO0YJ9oip8tb7mTX3DeQlth0F1BYTWO4e2cNlXLjEurXLZVg69IzJH48l5x5nOTCPBJoOH2/oVq06scsC8HpdL1zOYAOkEswwHGYwtxzRoWiIS3YIlIZLJOSGayKmQNAo0ci7BvHAhpxI34jhCayHW072z5daSCEWFnPToPM36kGlsEdmOKLbLgEjcQmVtvBec3Qw+jRvFj7AP4+bJ6qg1tF4SR+5onoNx0SvUBW8rXYVUpoj2deDhFok+Wkf7ivZK7o2pryAa+PovkN3Hz70Ng33sMvhmi/eb+95ePy0MuDmem4m0m5HiXTDKbdHjbc7vPmjmvn18U/aY/X+oyeDUnhzh5pJRNi1UHVl0Q1I4jayZrEEdCp8XEZw5ZJ3x5EwlBMfNLYoiVKgIi8LOO2LRClyYkTRFsozhoHIsw0ue2OkOTRNf9yt+urziLO/wQjj7wS6orXPRDrxuK6975dAri1UaRsmFZ1o43+3YSSFb0J1EQMTpNroiAC7TkZb21qzOqAQaMIaZRSdfPGhuHp2FSylEN7HRbkc0OM2jQKPkggxubcklKvUIwfGkPTr9ugXkMK5rzvH1bcrzIj4i20hmbXrE3Svd49+cvBeCFZEU9M0hQyQvh7cPrLYhZtAMp9LbAdPRRbaFsBAmdIJP7H2lp3LsZefudFuxdgX9itkrFv3n3+2u/Ybsrgjsmz7O9tptTvcx+OljHPPpfm4mkO5aip/+/Vgs+6FxPxbP/SbsrsTiUz931zaP2fbJhQ9JEzq0AayHzkBtK+YNUUd1LJ+vY8WBB0YiKOmoWMoTk+3ovjJ5Z3Znn4xJG0UreYqkm+vQltXClGdmjY4SU5rYa4h+NzJfrxfs08842MJO52OEu3bj1brwZq0s3mjuNGl0NaZU2Kc9z+Yz9mkmDUJwCOtEVDlPe1TTW7inputyS9Vt++AGn3ZVdRuAfY7oQiJ7NSCJFH3fJB+jWpEtwp3oDIeritPGyuDtpoZJU3TZHRjqbrfDPcZy7XiNTg2h9x6Mghj7cLZje+f67yCceThEicSXqF7DKdsmCCVlXHxsKogFr9hqxTUwa3dw62Rr7JIAoSz3MUEK34adLsGf4sDus3eZFE5hhbsi4oeSa/eN4V0d5m2f+5CT3m2Twm2/T7e/jx1xut1jx/jkjg+H9YBKwlMH7bQepaNrW2PJC8efY9rKnS26i8TRdbZeNUfUapUsE8X37MSiVHhQtmaZmNIcbdR1IsuofpLQMDBXvl4PqBkXyxuKpKMaWfPESmLpkWSqOEZHxcNpT3v2Zc8+zaGNsOGb1kg9qtyWdcF6H4UGJ9JzXFeyQLzeezBkt+Or6rEDhUoaThh0CJSLaFRg5Xx0uMGjjKlq46qqRot2c4+Ikki+FR9VcilTTsjf5j1YHmZ0lzgfFDQNxzq0Fo7ROUA4zrccoVzDQDp0HmQUtGw3m9EDFz5CBDL2GHeCAzlyfpgokgoOH5Va2LdtH8qh3oXF3refh7DT25znU8Zw39hvc3L3jfObspvnddd5fuho+4kdH4yLi5eIKD3vsN0ZNU1Qnat2GE7XBqUqqELXvcvA6JiP+v7exvI4tpCUUJ3ZJeX5VPjcKkImSWYSpUghE6IwWYQiSkZQd5LB0p2vlysur95gvQbuiSA6U3Oha4pOuALZnWcqzGVinnJUT2km6zSSWkHsry2ztgOq0d/sdCbbboabylBbJZyNaDGYDbFPFUXytQg7oqN5ZDixIIvHtvkEk0u5HI+lBDPjmIgDSiknN2o4TfN+hA7Ewll2qXg3bBRXOLrNiqi8PfsHrBIOVrdxjugcts6+HKPjbaJC+vH1t37TYUxo8i08UE+1uyK9D21P3f990eVd+7rLiZ4KubzLWJ5qd0W99x3/Q0TK37Xdd18/DcN1p60HRISrHhUtqkqjslpj9dC89ZxhK/2MsJCtUWR0hIiuEL1Xeu9skVzgtBM7Zr50EKKMtYiQUNTCCUV77sHrdEaRQGNxZ7FGbyu9NQC6rBya0jXhORzGuSg+RNNVBvNAN6cSFytJwtN0jARPoYP7Lm7c0DFGTiI+3vr36SUd0aWcJg/efn87zvHhu14+vJ1ciVYXsYzHjg9Zt6DmdctYi35x5u0asyWw2pvnpCrxHQwa3OZ8kejgu43Pj+M7jXJvWj7CPBIf/Cgj3O+KEH+f3RXxPdURf1fiN79o9sEwXAjXaWY4K4d2RZ4zDWVhofZK6yutR9IKCc+wLXHbcLbd1mh9Y+EURTPiQYZPYhTJ0f9LEoUg2SePSDDisqF1GzWmdCKibBDeKmVsPMxHuUJhLJ2DsN/NMavx4MMxygyGwljOy/VS2geMEFHlNcf3tFjKjxdbjuf99hcxsNFxHRkJMBcbHSq2DL+OIchx62NUfIKjh2O9jnQ56kfIMXpVcZJ2zBPmhZ4qZjki4DHZHUe/PdgnY950G+L46fpYW0R8xKzb0eEeHQTXjkIGHzn+/vgi3JtO7aES2W/LPiR16pO9m92F677L9/FkloIkobdQ8ffq2KGzsz2v1omL9QsO7TklT6MgIAYbjSBHZNsjut2y8IEJxu+j1MvxoY5IVkRQGxHo4HwFIctxcaI4LRwpkiGFuEwE10b2UN1arOPeWa1zUGfRzFoXbGqRTCJhunUUtlDrGk7kmBg7uRwngeYRt37rcv1cVnQkkPyaFeAWi+2jm96wUt04uteVMrGkH1+ZOIxCAx+OWXGQaxhnGwOj+EARyKA2cGeNCeA6aRZO9/Qcr52kHFkHb92AgxtsKnQDdz3uh00VTTSmSdEbTvbjcbjwdqb5Y4kGn7r8/+SYP7x9SFz3yQ6XEiWcoo5rZ/EDh/XA12viTf8hSz8w2y6EW8SH0IpFax1rdKsD59ycbDjakCxsx+gRAbdwqMeT9FCt2vipWaIAQJDoq2YO2bE+xGGs49KCCkVE5c1W1raSpHMpyjI9p7YzJolCDfFrhdkjZvvW8tlP8E4B34oEbgMMfh6TuubARnugtx6osf/rAQy8dBR5lDyT1EEMNuEf9EhVG7H8zy89VVEfURvRzeIof3PEfa95xDGEI/p+dLjw88vSGOG4jXTDCh1kmwDD3fvR2W4Mlo/TbstMf98c2HftdO/L/N+079u1fV97osMV8m4aTQod1YEVitGks3ob1KtN9HpEuD74Ab4la2KJGdxSULdwur5hg/FZTFjNI4E0svEKY3kP1Q0sojD3oC8xWs/03nERukOjhiaCO9Yra7tC+8pFc66m59T5jK4TfWCU4nqdeNpoU77pzJ62sonIMBzk3aId158/pWH5SEyd3pyxz9Nj4mAW1xAckiNS2FBitA32gAA5ZCHfGovAwGrjtYBoXKMv3ObkZatEExsvj24R21RyfHCuVyDHM/TtOON7GmuOt54ztxOHKx9bcAs8nLH+ZI+zp1zH73py+LbtyZVmZbcDYeClHaOTVcjzjEvCBp5qWw3/0UXFolkl+KdypG456pVkUZ9vfaX5wuKQTHFXrCeK5BPq0qA90VFXsqTBiAgkdvgpXEIEp1pntcZSF3x5gy2voTWucudN2XGeZwrRckY9knehHGbXzS8Hq+LaocRYjpDvCX4qod94jfHKNu4+Iu0t+fbzCTj3Y5cyGHq8EXl2WlvHR5yUMt4d19EgL42KNwu+rPipQLnf4eCOKOuAKDbMfYNS2tu4sxjq+lbEe6ShDWpc/G+DJ/pw6CDiRLcLENdRPvxxP2jfN0fwMWHij7Xv2zV+X3tahKsCc1CUEoCk0IcVkJQxuVYLcjum6okYNMSoVeLhVxwTA+uoRVRrZrS+sPTXLDbEUExJPbi0RU4bDzpCD90EKbhkNsFvGLhx73TCYS7tiov6Bl1ew+E1qTcOtfI6KbsUYjjdVnKZyTohshU7jESf16MYzCbKvUWpcYYjetMASWS0hfcBe/gWuW5VXice8ObSdXNgp1l/k44eI99OskKSgqZEJuESzlklIS4j2RU48MZsuDea8NPjNtwbNjRxfSu2cBlVfxxxdEasu7X2cexkn/0oLynHySmWIWpvY80fo32fo6+Hqr1us7s4so+9Dt/X6/VtjvsdtBRCL3XjAHQXGo0uHpxa3xyHw0mCC0kkHctoi86u4pGlTz70VK3T2oHLw9e8XFbUo/NDsZlCpmo+yjCKbHFgj0hbMx0NfqiAYTTvNF+p7UBrV7R6idYr1npF7o2DGJeXmcu8Y04zOY3eYWkItIiMSDUhYqg6175Hjvgn479xH9sWhHJkKmw/G61sbHDkzd5IxW0VYuHch2lEoSIco0jzDuZU70iXo6MPZsXoDKGj0ETl6IDjy+Q4liiA2DQWfDjcPsbQB31sjDLozcdofouijwI+btfYrzvmjd7bgH4C22XrWPGEbga/H+ybxoRvMi0eU0V21z7ehQ/7fXS28O2O+8kYbkqDkH9kAQxFK+uDebDhlXBMkGwP6HE/ds0sEA1fguO905cD9fIN69UVWCYz4TLjUjDNyJCHTBJqDQZUj/1EL7EMkvBElB33ytouWNcL+uENtrzC1zfMPiElsTFQA7Pdxj2c2lDyCh1ZB72Br47zP35iRJEyzufo3LjmI0fWfnzJct1C5fq4J1HwuMYqAp4QSdfO2wdD46SUONoJBaasYzUQ7IYS121Qu+Kb2f5DrEaO5xVauUfni50UcfiGjgwOrR6ZF9tEsUXEscqJQpduFXrFrAE97gvREUF/3PZtRT8f4jg3I9fvqwM8tY/9nE4ntcd8h0/k4TrIyKwLx66wYh4i0+PA19HeGBQyosQtujqdRVv4DwsdWm8NDit+cYX3RJdKyytJJywVJOfoWDscQETG4XTycLiiShejeiTILuobLpZXtOUlUz3wTDLzbsdc9pSyQzXEz7txXZ01orEjRunXkeep+IuMCeY0qhA5TVLxloM+RrUDkjgm02xwDHwI+1hEiEJoNwj5ZOLSY1z81nHx0NI1H1oMbXwR7RjlBrVr68xwAmt4375h9CTJ5sgxIo//Xyf4tqTfW8tQi9xZcLW3ccXnAguv1wm6jyzC/Tad66m9NYG/5/4+Nof0vnbb+XxM57vd96fP4QcrfBCik2scJFgKW3KmkCLpNYp1t4XlGNYJZLmhnaNJmY8eWUPJCjNS76QWPb1EFO8Z09iresdsodYV76HlSm947zBKWF2hemPtB7qvHPqBZgeEyqwzu2kXWO00k/IMOrHVrvlIeHF6AY+i3Y51ow0+71Er8Ygcn2Tmr4PbiEb9hHu7Lf3iAOHMNwdsLX58Y0UIaomUA15wyWA9aFZqR6hAGFHwUSE3Dh5zY4zXjRPOr7yFt+ox5agjEh43jm4TxfjmNicsDAgpSodFx0pG9YhzqwQ3FxLJM54mAKxXPsaE2YfkWz7lOKd21wP7EMXqu3Y836Z9bOf6lPE8zeE6keywWPoSua4Qyu52lC/cWApvJUW2fmUef59SpMIJRYJFOkympA7WO5KHvuzmxFune6O1hVYvaesV6+ECsTqEYTImBK7sHddO19hHkoyW0NHNeUI1oykkEo/Y8JFWcB2dmkfHh9Yqta30Hupo1w6X4WDiLznVJdgiQ4/IuI8+ZsjbD08/QjPtBJphsDqmwKoRkpSQrpSOb2I4qifR8vbTT5z29bXuJ+XJTg84QGJ1ohodLPSkku0Ub+74yaSyXZ/gZ1zDJxtLxInKNEMkx/0iOaQrfUuYfdxZ9Q+NuT7ESb15rLsqnB5jH0MCa9NueEr79u+7fdAIFxEKBROjGrhFVGkW0n9bFv/INR2FC45H3LUty71jXo/4Xmsrta3U1pAmTK1QumAtCiLQFi3DvNPo1L6wrpfU9TVtuaIuV6jFgx0Pd4oGlAroRMrRCThLQvOOnPdMecdu2jOVHSlFT7bNv/golDhWyVkf5cgLtV7S6hXm7dgEcqNAidjAM7cl+RbPQ2CcfTjvEXES0MGxmeTWFofQMQjd35mp7MiyR1OK41KO+4S3Ex3XEEg/Hs97jy7AFj3moqzXrpNhIkiK4oqkZYj4XCfcro+xFazIWyW/oKjeyGxDwEgMZkpS0IJ4Q9NgtnxEXXu/TXvoobwNcnjqMvqpzvYmFvku+775ua00+rYS6Q81GXwME8upfVAMN2T5FO8WFVldQkO2x1LTzPAuR35ok1jGBsXehoO55rbWtrK2K5a2sNSV1lbcOkmUnc641CFyfaCa4upUQq+htoXewnn0jdDviaQFSRMkifbkqpAkSlpFwpnkHaXsIsodmOaRhmU9hLS3sI9BaRpXIJbUTu8x1m49NBFGlwU5TjjHr2BgunKkk23dbntvMVH1wQgYSapIdqUQJbdxrSWTtNGlkVqjjyaRrnYsBXaXkcTcGAORiDSroaDWK95rtGU/RtKjFXzKeJ4g9VhRpDwod3Eu5iMhNxy0iZI0uli46qCFvYUcAaH7KyZ4ti09ecSvryl+v1h2VxR72/v3vXZq7+t43oWVcN8+tjHd9/6HsI/J2T7GnqgWRrTJMcXcSB5MAREhkXGP7rOtN6quIMLk0Vg7kkHB7QyBm5W1Laxt4Wq9YqmXrO1A6x1QsmSKhJBgPy6PT1euGhGSZkRHpkYSkguaCq4aHSmS4CEvRlKlaBlCMSMKHLSlPhTMpIUTc/JRgrBbpfuCsdA9RHd6D7pZON6G9RoObOuOwAmBgS15tEEWPuhXFs0yhxg4vjlKHSwEwbTStJF6xVqja6NpjX0C7imEvrdChy1O9y3KHKwGjOA6h1pYt/XIcIjmj5sSmUQ0iuEeWPaWNMRPHLQIJMO1YAxY4UgVG1GwyzHBeuQDw6gw9FPeykdpT13Gv+sxPqb9PGRPgQe+TWf4fSkffnrHB4vWNRxpQglJRk4TglL7ytLX0QixR4Q5YITIUq/UfmBtB9a6sNbK5XrFxXrFoV5Ra0MsUaRgGtKLqzqertWvnIR6w0VGkkyjRblkfPygKWr7ww8PhxtFAd06tS1UUVoSKpll9NjquZLTRPbpKP5t1q6Fd1plbQt1vWJdLml1wdoamHJfsbZAH/oNm2YEjqagdYmmk+W6HKEXGDfGtlzXiRClydH5mD7oVWuwFgZOnNwwl7coX7GvkyKUE8qaqpJIiBa2aBMCUtjGYNZoGGISXXoHBr1pHYcgeWgEp9SQ0b9OhnRjQA5CknSNcctW+XbteD9yf/u9tPuSbh/C7lNQ+y4d28fkVO+zJ0e4yaK4QI+RTCzVi06AU31laQekG60tFBFaW2l2FU6uLdR2ybIMh9tXlhYKXgtOMwVVSpkiSdZXzBPNo4VNch3UJxldbSPslaGmdfpgmwieHM0hthM9uXoIcGvB27bcPtARmupRBDxppuQZ1bhEzSq1LmS9JGnmEugdrI2OBy5BAehCbx7Sh97YOK2qIfG4iY4nTaNQQU4vb/BbcyZEEXKwFHwUdIwos/d65L+6R+ue0K7tx6h6S5yF4HtEtpvzDVrY1k4+ItCQpQgxS9fGUTfhmByzY9sePxGliQRbDpHyFFBI0kJKUaSSNMfEJU4sNU6Sbt+DZ+RDP8jfhGO4jX74Pse9C+a4mUS8yZy4rUrt+2jf5PifrIcrIysdfNcRWXmUszZzDnVFutPkQBZQGuvhDVfLa5b1kmW5ZGlvWA4H1nXFEHoqWCow7fG0w1OhbFHqKvS20FqNhoW+OclGb5H8gY0T6huVIhxwElKJBo4pCTl1igt5cFXNIkruSWgDMzULepRqHr3XZlSUglHyTCkTJU/HZpaLJmpN6KJUTXQRXEIdC9tob9cVZluZLQOv5ebNrYxE3HV111FABmerCOvdQMcSn1Gk4ScOFz9219hat7v7UEMbEu6y6Tpwvd9TSpoIbGwUfOzf306MjuPpmKw0ZXKeg/mRy2CAFDQHG0Q1B1Tx+9juK4u96aTuS0A95aH/kA7isU77bW75NzOWu5KFT70+j4nwT8/nsUnKp47jyR0faB0RCSx06AbgkbBZu3PwRmdl8U72Tm9veP3qx1xevOJwuOTqcMF6OLAsC621aB9z/pz8/AVzOaOUmWk6Y5JEbSvpcIEvr7GrC2iBAYs1EhZEqUHgVx0dIJKDdlycXCbyfiaNrPt+Es5dmJujhyiyaOJDyyH6gqU803M/LvPH3D067G6JwxMowEFTGk0hMy0lZD3Q0kpvird6dIQq1328gsEQvkxOnKSb4boxFoICJ15JXuLcSYQc4jXheoMKtqgxItnAta8LF7YzOeEKu4weZwT7YRQkXFevGUrwjc2HotjGqPBrxzxifCqCaCaliVJmUonfJe9QJrp1spbjKuJj11K4z+7CMh8iwN90UndVKj3EBLgryXWXg38fuxm5fpuFBx8iYn/f7e9L/j11v090uAatoqmg4iPZklANp9dcuHLj0A709QI/vMYvfszrn/2YizevWQ5XrIcDbWksa6WZk/Z7Jsvsdy/InplkIusOTTnKd4f6oRpcesdaZYg5hn5tSpA20e6Mp4QDuUxM+zN0mpikRNdfh9QstHcligy6Os0cr52UE7nsIou/RaUSSZ7N6Uaiyph8j3u0iVmnmdbO6O0wsN3Ad3u9pNXD0BJo10FqfFNHLrNLSE9uhQUbXuA9zrfLQpXEhpoL0QnYZFvOx7Vio3CN78os9IU3PQSzHru2AS2IgGwgw1Y9doItO/SThpMyijK6tWiqObDdzVGLCqQQvoFOtUZrjZorKU2klMk5RHdEObIkPma7axl92o7pvs8+9EA+5eF9DC/4tiX9+/KJ74v8vs/wwV0TyTcZsT/J4bqH3KEO4dmsY/mY87E5ndmK+cpajfXigv7VV1x89TXL5Rv6stKWlaVW1hZc3qSZ1MFdh/pqRGWGHOlRSTI5RbIpSPPhdHIKMW2S4yq4ZiRFC/Z52jPPwV0tkkmuJHeSG1mcOSm7nCNeVCXlHEvi6/DveLHjARsOaeCWJQdmrZqYpn0wFVqj9pVaL1mX16zLG9blgroesLZiPRxVyDwOzQQfhQnjeEdsHI7O3c3wXkP+UtOgupXrCNFlJOT0upxgo4jpiE7NQCzGsDlctn5qo9zjyCLQG47XjuXOIQhviF03qbzm3m4au6HHgC9sQvCqa/CdayK0kBnaCh+H3RXF3PbwPbaM87vCf2+Lnr+JMXyfnS38/Hf80Krisfu8b/unsRRUmPfnlDyzTzNTCawusDml985SFdOG6MxU9vSyo89nKE7LJZzzuiJrQ5ojabQH33JOOM392NTQjpjhtfbAtj5Xiey6ZceSgmbIE1rOoOzQsmOvhUw41iKwx9gZ7L2z907RRMmZlCP6yjmTtoh5y+qnt1vLJHdcnZwCD+1WIiJOhtqK5h2S9uRyTp4uqOsldbnC2gHrK7Vedy6OJXpg00Aky06+MDNHRimxeENs9CQzQ/20ASWMEDW+eDtpIDl6zXWreFuOLc3ltO3NSDaemqqCF46SlCqYDad8qrcwbrKUEqRCShNZC6SMjr9F01s34pbE+1jsqXjpbc7mfWhk34Tz+q6W+7/f7DuLcEUS8/SMuezYp4mcIgOtUiJRpCAaySTyjOzOkeefs5POWs/odWG5uuRwuGI6LCy1sWohqZDMyYT8oCmIWFS0qVG9UYfwCd5QGa3Is2AZJAuaclQypTKqmhLIREp7ZilMKHuHM3VK6xRrZOnMJY/zUFJSUh7Z9qTXmXaJ83RCw1dEkNFpIkR5anS1UEcsMFYlUTWjWkg6UdKOVq9o7YCW6CpsrUaH4a4n7XYiAdaICrEQZR8Rbl7JvZK9EaXSkSScRtS5fZ3moTPcerBCej3Q64L1FbOKW+DwrjpKeLeqMeXt+Hr87dtf0T0ZMq42koscBcVTCh50ONwJTWUkF9MJZc3pbkiv3HTw3ye7z+nC06KiD831/b5Hnu9q34fzfnJpr+SCiNIH3pgkxLENWEcrdMWZkjLt9ihfQFasd+p6YNm94eLqgnJ1ybRWLg086eB2Bp7patGUEMPU0AQpgSZD5tAscHEkK54cSwKq+CZA7uG13QRG9VmRxOTOBBTr5JwoGGlwSnNKpJTIOpN1pqR5JHy2CH7j5HZaD2F0kYZI22oK2DitIbzecQrOLh7OjYOqCekF0ZUu6Rq3PVac1UEzc5r0gFVEqE2pqVBqpVgdmCxH4panjqYCyBA6r7S6UOuBtl7R2nKUSDxikLkAStJNX3hk8o59ka+/96ii27i2Tpd8kjSKFYFq4OgiCTbM2Z1uUfaMjzZH3kN0yD8utbAPbd+VA7h5zG8CWngXe4w2xGPH+H2loD2ZFtbcUQ/FrNQZLVdCWqVZB6ucibHLiT370LotO8xWej2wzHt0GgIyywGa0cpMSkqXjkgHdTQTnQs0U4noNaczZsusVnEqXRumRg+wE5HAfvFwttahDTaDSXTo6s1IDTanoqLhVHNEulPeM+UzSt5TdBoMhxIlwMKgVA0n54TDp9H729HNBkV0z2gOlayUEqXs6F5Z1ytWvQoaWVNc2mh4CeLtBBvtR8flroMSl7C24mkNbFgzNqhdxyjVBgQxqvtCe3ZjIozOFBKT0TahbNzbY2PMLbE3zvUY88rQOR7dgrc8n8ggsA2mBO4n5zGEijZR87ock23fV/tQD/q77Ocpjuabcki3sRUeG63ftd1jz+s23PW7dryPGfvTkmbA2hqWhti1CaISjs+V3CN6VJw5ZWYJ6liZ93hr1HIVTAIAUrTlaZ01zXjOWFK8CJaMLoZnoSelSw5+bnaomeSV1g5silsiTvfouKsu2KC3Jgturq2V6p0FSN1Jg1oqSUZpsg7B7jKi3a2zRB40rLcLKlQGtDA0F2QIcTM64YbziWhZcibrBFNIWsKGq66sNXjJdb2IXm69R5XaYBi8pUYmxLJdMylPpDKjSUEiKu5s2XMZwjXtGOH2ttDbyrazoPKFgvEmkxmOMpykD4rYpvnLwM5tEyO3iFqP7AQH90hoQo/Vhg99ihEFx7QXSUDrPUqiv0eRyVPtJqvhPruLGvaY/X+Xdh/tDe6OQh/D7rhr/x+zPZR8gyezFJylXVItqro20ZTVKwbsUBJ9VBtlBGXKOyYVyB1t6dgyvXlExdYMTTM+n8N0huYZ8kxP0bXBPPAEHZxOGRVqUypgBaWhWDS1jK6RYINAJT4qy5TmndWc1I3koeubEboWUo+qNBHovilydUa4yfa/uA22YgEbuhALrS3UdqC2NSLtILKBCDllctq4p3ENNzHznXXa2Uqrl4Gv9o61ayWxTYAcABlJQh1VZdvPJhThYLbQemhV9Nqo6xL6FDWEfnRjeqgHjWwUfkRwrKNYwkeEHUpmDL4tN6LUTY0MBm1PMqYFzSmoYRKdNxiMh2PjHfdjK6XvMw/3sXbb8v4+3Pf75mTus+1ceu9vcZY/5Dl+bNfsofE80eF2rpbXYwYS0kgkLRzoXrnyDlp4Nj2jc4ZrSCEWyTSpCB0tO/K0kntnMseTIWlGds+Q6TlSzqHs8VLw5NFt1zrWFjozVfakdKD1ldQOrH1FvZO2qIsoZBAM70b3TiOSXNWMXI3FOqIVq05flV2dmac9ucx064OGNpFSQS0wVHcdDSEtIkpf6bay9isO6wXLesW6HoDQld2YGyoR4W4tb7YvxMTpapFYkkTvNSQTs4228v2Yutogik0YPMp4BwZmMlTL6uDtdnqt1Bpc4LUeaLUeHW4pkdCKFvY5nGy3MVdt0pHhoLt13PpROlJHF17b+p9tEXjSAU0UtORr5krKkZhLI5oe/OLeK70uv+8x3NvssTSym9Vqj/n8ffYujulD4aTvq4V7V0T8rlDMu372qce4zZ7kcFuvvHz5e0HSl1h6duussrD2S2bN7PZfsp5ZLLZ3u1heaiK5kSyTdELTRMozaeqUtCI6o2WHpwnTMqhFBU8CZMwraMF0ZsoLrnt6bxzygbU11k3mcAjMdDO8yeAMdyqGd49oujW8rXg/0Km0Ivhuxvo5k53h3jkkJZdBD9s0YSUP+GBEz+6BmXqPBFW7ZK2XWHdSmui5j7JWICvqievbbktORYWe67bEj9fVwUeLzC3ZppJIQ68gyaZlIUgKzYRuid4S5pCs0hoRifeG1wPeKr2C+B5Po3qMQrJov6NE9VSUS0cVYDjdOtTROvTKkRf8VrmyjqKGHFV3eQqmQi7kMqNlc8ChHNfb0BN+8q387dljS3Af+vy72vtgk7dxit91H4/lHH+Tdh8/9qkTwm3b3Qd5PGb7x4x1syc53N4qr37220iH0P8PMZguleYHfNrzxhKHfEaf4YgNCsixVFaOiZqSOiaKp4IkpYsTDSY33HBLyoTzSTqRDZAC6hTOqXQWGguVxkrzla4L1hvSbEAYBs3x2pAail7er0JzgURNoCkjKUWWfQkNhSnvmUowD67LaBXxAmlbYo9OEOnAwlVADD2W5J4bpgX3gD1SmhgiuxFZmuFeo3rO2hEz3SQVZcAcIqMseOMey3Vhgoyy6gBPKlsjSfHQ6RVr4BX3GsyH1fEcLAHtQXcTlXDyG2+3NXqvtLZJObbQbhjJvK0d0nUEFhm10FJIgw42M5VzcusUc7wE9U8Eam0D7/14aGG3RSVPwVbvikg/tN08zlOy/U+ZPG5zQB/b8v0xmOlT9nPfPfDQ64/lYD/N4Vrjan3JpKE3iwSOWfuBq+UltS58Pj+jmlE7x3Y7fvJwbmpS87QHEXoLAXETH5hopbdRppqUNjokiEV7n+QZsSiFTThZnZKNmUYjs1qikjBdcIvCgmSOmqFWkb4ibQVvoSBmwXPdula0tiBpovd2HcVx/YUIimg5XjjLTp8sZBvLcsR0extOLxWwFbGKph0y1MeiB5mNgoSFa23cfnRDm0i3qtKT4YTCWAiDb913DfNKbQttDQpYXS6p6xW9RqFFYMJb54oovTXJsL594xzbs1sPcaDjv7dWSNc3+CnUAXINd5BQCf6xagr2xxCuyblg1pmnXUA/H5EA+V0P7bYcfuih/qaz5fc5y9MJ4Zuofnufgo5vw25OjE+xD/m9PebzT3K45p3X/RW7vCPNE1kKbhlp0c4cM9Zju5zK2jtTa2TVkXkXrHt0jUBxzXgKFlIVo7GydKN1I4mjPdMdmsHUlWzBQkieQmch+k/iOC01Wk+smjhoojWh98A1kY54RxpkCfwWgygnzpiE5GNoswStTAdD4ZgvIhJUoorrKDJwJ+VGtj3TtDK3A2u7otY1ijSs4l1oKFWiKENHZZ0M6lRo5kai7NhIc+sHN9q0J1U0DzUuyfRUBrtAETfMRgeMekVdL1kPl7T1MqhXo8ghijgSfXSUSBoCOLHcBAYmfC0jKXjvgxbWwDpqinvc4Em3yFtxCUqZ6CiA0ImiURizFY9ISpiCuZBk4lhZ95HYXVHiY2GF25alH9LxPsQI+FDR3n3Hv8+ZbYJH8P6Y7UN228rjtBT9fYpOvukI/omlvcr8/JwyTZSyj6QIgttM7hPJMt0Sl9a46CtzPcQDmWMh3a3TcEyd1Y1FnFXhgLPSqK2yWKL2hueGShD5xRPJMnlUdqmMWi7Z4AbCqbFRlGJZrSJ0GrhigEg0YjyCG1t1lQ7Svtz8kWOJ77gC8d+xrE+aMCvk1JnKnrmcs+RLDnJBsytaraGxYBYZ/wGVbHvSjU42mBDWbSSpTspehxMMtsNMyTNplFQHbc1x2VYGC60dRncKB41rpccxy+iYoQNLT0PoBrZOxbol9SwkIHuLAoqoVushWoMfW51vZdnXkMvNn5EopEWPOh0cab++Fh+T3fbAmdmDD/FdzINv294HX3zs/m+zU2HybzLCv2kfAx/3KbS3JzncnCdefPlr5JTImrEMLTlmFfqeZBO5GVWUKzfetAMbGV7R0aqmUX1l9cYqjUWVgxsXvXGhlU6mWmjfJi2IJ/ZkimcykUyLh7iPyqcgbImBdomuwj5aPbhGxVmP3mqhkkUkvGRLXF1HeVs2vrXAZVs7KUAIKPetixolsSkW+RLlu1M+Cw2JWkc2vlHrgVoXrB0Qi6X6EauNEopjNOXWR682H1FgjC3nYBjM056ye8a8e8Zc9qQ8jwqv0EbIaUIdumasbJBIDDy6Y0QlnkpG8zw0DnTQuK4nl01z19qoVFuv6OshovcWOhDuG9nLjtfHzTHp9NbR1CNJKSvUZWgtBGMhmBgfj91FzXrfh/e25e6HyPzfZU+Jwt9334/FN99lPB/LBHafbRKdTxnrkxyupsyzF3+Q3TRRVLi0lZVQn1pboxloNa5a5o1XSl2hR8VXTgnzSMAsUqkWdK2KB5NWMotVqkbnBaxTTElDFHvxHJzQ1hBdEc3RLlxHGaqB9BbykaMKjj5KfD0FJY1jjBrwQRoOrjdqW0CCrgXGYSnsd3tq24XWQkqhHTAq64YHjySVBOc39AQKOc2oJHoIQQbvtndajcowuh2daUTab3+J3kdXXatHjYUu0MpEb52dAS64ORNOyRPqQTsLqcoEZkdWxFamG2I0px0xIsGV8xwQAoHBIn7Ec9tWADJ4tUbCOYxrOLR+B4cXk/hs73QWvBrNVuzKY5IeqnJCPk4uH5vd5Qzf9YG/zdG+z/4esm8zsfVNQyYfu6WUnjzup0W4mvn8/IdoTuxTYqbxZr1i7R1nyC76yoLwpq6jH1llqZWpTEAPXqz0KCtQoQk0EiaJhGOWIkI1HwkiGZHnytpXmkMFZg1MUmXU8aNHDVu1RnYnqWA5Y+b0rYMvMDgCtN5DR2Aluu1aRdtKTwviHvKTUZcViac8kyRaf7uPogqrWF/o/QrrB9zWUYG2SRS24++taWU4qdPM6I2IYHBtNynK8RLAiMA7qVZi4BqdkcVCsIetZ1iOsmqJajLZeLB6fYOYyGCaWOjqjoRXVPCFQERKGbcMuWC90FNFe8J1tBXaOlewkdgCHulu1GU9kt7T0KrYxuNjEvoYrff+Tg/TXfZtLncfmzA7NhD9hvHW++y2ZfjNCe9jY0ZsdjOKf2zi7kkOt2jhl+cvqaOMNanRc8LsEHot5ix9RWtHmrH2K2aPlue76YyUQww7WpIJpERPShNnMccpocxFOILQsBUYxP5Qugrh8upCkRQFAZoomv//7Z1Ld+PIDYW/QhVJd89Jskiyzv//WVnNIudkpl8WWVUAskBRVju22+qH25PwnuNeSKRUalEgCri4d/iaSbAZSJCirjuWdu64ox3XjSQK5mivtBr0qF0vYV7+zVrfsa2/8+c//Y23b/7CPN8w5+UzLzJzDRfito2JsZBh1L4F/aw3XGuoffkQjzGNcu4F3Sy+NEaTzoN2dfFl7g2qu+ZAHHu2d8dJFsHbx/H4qNkmw4PLF1koca6KQ5LYGo36cFDl4I6ZwflC2uUxd28z7TqGLvr5WJFBUdMYmMihOgSmuKbPLszXqqXw0DbxEj8iCHyvIYOnXv8SPzPQPoTHbkqvNdh+7Q7oqoCbSfySZmoyGuGKIOYktXBU1I53o22dtTmneqI050YmcvnIsixMpVBEQnBmKngudOt0S2SZSWNF4qPzDSNIRm3Te8W8Ua2RLS6cUkIQPKWZRLALClErbGpY61it0De8rdh6AltpyXGBnoIillJkuubOmjNWb6HeYvU9/Ze/8vbNn9H5l2GcKJFdumOmUdtswQ5o20da/ci6fUL7ivctWAu614Kj5ippr+L6qJmOILQHo1HnjfcKBa6w+GH8+d2xycY4coxn6AiQ+F6qHs/fsdwiw90bg7LS+zQscJaQo/Q71sQlR1h2iphrjAcPBTJwqrWg8UkID3lyMoZ5HuWYUeDY1/cHxDU0rOcG0JdmGXzv7vy30LFeCtdm9Y81w66hCN7H1TbpxUBRuvfQd62ncDTYKmlTyqawdtraYP1Ea0qlRG0xZ26WhWVZYnspMmqD4SU2l7QPYJEHdcoGD1drQ1vYkaue0H6i9xM5Z+Z5iUDBTPEp5BVTQVwwB1fDRkD09RY93WK+hdzB0FwJMbAIKGahQFaLU5dM3Qp1KswlkVNsv6PRxFkXofeN1j5R23tqe0et71m3j2irJBtfdspM0xR6u2noGsDIHBXVmAwzbUOqcQjYxPzsOft1a7htmBJ8XzScdneObwpWhu20Jie4teyCOLsYzXCxGJQuyWWUFMrY/sdAREzwhT6DdwuNh1G79p2L3dro5vtwJZZxgwj62mcX5MjC/6uU8gfEY0H3W3ir93/Yz/2hP4eD+y0Z9FNB+mcxA54aQLi/pstA+xiN7dKr7v7rP/czfreSAu5QY2vcdWW9/RBZXN3w28ZUodQTujZsrVi7xQyMxjQcXbV11nVjzoVJMkxvKbMwp8Syczlz1G5xp6uxtY62hrcW4iy9UVulayebUU0RSdz4xMICqZHShHhICKKKji2/r7fodkK8ITkhUyLlUXtMhuqY+MJYT51lTry5KbQ2U6sgySgl6GqeRsJ4ke2JG4WgrYUze7AM9ptLjLyWYSUewRf8fGNBK9YavTW6bqjWkV3Gl62qNFbMO6KVrGFJXob4eh5mljEYkc6NQk8RKJ1RS1bF1M8Xng6rdyEP14m4cMyiDKTWYnJPO9YrbTAVTOu5pJBzMDdkaAzDEDhCRmNxPD6GIl7btva5uJy8uv/YfVwbiB4KFj+qfHHt8U9lyd87Q/7aLPKx2up9XNLYnnr8az7Xd8tw3Yzt9paTdd7X99x+fE+/PcFtha1Dd3LbQJXUlTIEW3IWlpzCYnyaKDIcFmT4W3keQw2G2FAWMo+pKG0kGxQwD00C84nmE0pMhyXdSN7j46Q2ts8FIaQgvUfA1fqBvr6HdmIuRBPNLmlZOvzDYkKuodS5sC0TN2WiSR7eZgsiZVDLYkjCRUglasezCTcWppqePuHmw1K+hP16DjW1LDv7IeqwWTKWZPApQgLSkpPHxNyejUIK/VuNrbxJx3JnKh0pcyifTXeOFfuuwYcTxG6507uivWK9kVQHu4CweN+zzzMvV+9E0jWaf4ZGSUIKJEaJJOro7HXkwTNOWZAhcEOOG8+dC8Trx2PB5bGBhy9luI8FmIcy5Z9dx3wo+L/EYMdzbmKPfReXvZHnvt9L4LpJM1PWd7+ztUr99I7+4QO2rqRTo+jQPhCYs5CGn9U0FaZpYiol6rclbFd2qcGUJjxNJIm5flIefNnIMiUT2bGA5ERqGU2waWdzxXqI0uRWUe/ExtmGj1mOBk9r9G3F6idSPzFnGxoPgiWJWugQxsbvKFHaodVKa1voJfRG6Rp26eEnFBnd4LBayUyAzc5sxo2DkdGuwTwYAxV7wN2zvNBOsDB6HB1895CRBCLopSGFOKLYXQMtpu5Cw3dGyg1ljr+8u1WcfcsAtXOJoLdKr2G/03p8xlAIu7tQh6oF5nZh534HH2va6XbsgyXjnz2z3afYIsPN55LFa8Q12epjzZNvydC+R1Z8/7nv8T6XeImAde17/BG4u9ephbXGb7/+yratfFpX6mnFVclD6yDnCVkKUx5Z3DSxLAvzvJDLzDSHZCESpo0pRaZmCGqRKSURTABCY3fn2FIie1KbmNyYchsDCh3boNZQBIvzHDqjdtnx1rFWEavMopGNBdeAIhL2ZxLjxtgecIelOJwbTYk7sfJYa2y/Je2OEDEAoMUpxZkmZ16EHhYT59rmHnhyLueA60N3QnoLAZiWSZLRJlgXXNpYUwLfqV53WbOkuMHlfEPOb8jlDdO0UMpyHuvdz90Fyq1vowZ/ovaPrNuJ1hreYzIumAkEwwBISc9by8/C7jguDZqF3cuCzCxYLB5Tf5IkaHGv7AfxUBb70hnmU0HzfrPuS+d96fW+Bq8h434OXusarxOvUeXdb7+j50C3RQPH9yzGyJoo80SZCvM8MS8LuSyUMjOVadCEZlLOeALxRMfDRcAJbqsbiRoSfkMbtutQrDJHurIMO/XqQtKM60zqQelSBavtLCMo2kAbQg+OrEdDR0ohTxOl7PXEsMsJx9vwEM5lJuUJzxMyvSEvb5HlLZJnkuRhohlV2+xOmWbKdIPkGZcwyGGt0fYaAuC7EHjOJUZv0y4g3tDS0TLTy4SUQhNBJYZH0MuL3SLDHswETwLiJBnMjSRRR04ZkdCmlTEkEs03Q/MNUm6QaUG2iSQ3SD5F5tv6EA3ayznhIGzmZ53hc/Adugi9hwfbGSlhQxXMzPASo8sydHRf04/iflD7kVNhDzXFrg2Y98+9Zo0PHfelJtLl8/eP+V/HU/+3D928nmStXFk8/xfwz2efcODA0/iHu//9Zy/iuK4P/AA8eG1fFXAPHDhw4MDX4/9nX3DgwIEDPxlHwD1w4MCBF8IRcA8cOHDghXAE3AMHDhx4IRwB98CBAwdeCEfAPXDgwIEXwhFwDxw4cOCFcATcAwcOHHghHAH3wIEDB14I/wH0aetMCCEw2QAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5) # x\n",
"sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5) # y\n",
"\n",
"plt.subplot(2,2,1),plt.imshow(img,cmap = 'gray')\n",
"plt.title('Original'), plt.xticks([]), plt.yticks([])\n",
"plt.subplot(2,2,2),plt.imshow(laplacian,cmap = 'gray')\n",
"plt.title('Laplacian'), plt.xticks([]), plt.yticks([])\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.1/css/bootstrap.min.css">
</head>
<body>
<div class="card text-center mt-5 shadow-lg p-3 bg-white rounded"
style="width: 36rem;margin: auto;text-transform: uppercase;">
<h4 class="card-title mb-0">Detecting Grammer & Blurred Photo</h4>
<div>
{% if pages %}
{% for page in pages %}
<blockquote class="blockquote">
<p>page {{loop.index}}</p>
</blockquote>
<div class="card-body">
<div>
{% if page[0] %}
{% for image in page[0] %}
<div class="alert alert-dark mb-0 mt-4">
{{ image[0][0] }}
<br>
Sharpness Value: {{ image[0][1] }}
</div>
<img src="{{image[1]}}" class="mt-0">
{% endfor %}
{% endif %}
</div>
<div class="card-body">
<div>
{% if page[1] %}
{% for text in page[1] %}
{% if (text|length > 0) %}
<div class="alert alert-dark mb-0 mt-4">
{% for t in text %}
<br>
{{ t.message }}
<br>
{{ t.sentence }}
<br>
{% for r in t.replacements %}
{{'Suggestion/Corrections : ' + r}}
{% endfor %}
<!-- {{ t.replacements }}-->
<br>
{% endfor %}
</div>
{% endif %}
{% endfor %}
{% endif %}
</div>
</div>
</div>
{% endfor %}
{% endif %}
</div>
<form class="validated" method="post" action="/" enctype="multipart/form-data">
<div class="custom-file mb-3">
<input type="file" name="file[]" class="custom-file-input" id="document" multiple required>
<label class="custom-file-label" for="document">Choose Pptx...</label>
<div class="invalid-feedback">Example invalid custom file feedback</div>
</div>
<button type="submit" class="btn btn-block btn-danger">
EXTRACT
</button>
</form>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.1/js/bootstrap.min.js"></script>
</body>
</html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment