diff --git a/src/packages/server/accounts/create-account.ts b/src/packages/server/accounts/create-account.ts index 0768be410c..f2bf486908 100644 --- a/src/packages/server/accounts/create-account.ts +++ b/src/packages/server/accounts/create-account.ts @@ -85,3 +85,4 @@ export default async function createAccount({ throw error; // re-throw to bubble up to higher layers if needed } } + diff --git a/src/packages/server/messages/send.ts b/src/packages/server/messages/send.ts index a118de7593..f4b53886f5 100644 --- a/src/packages/server/messages/send.ts +++ b/src/packages/server/messages/send.ts @@ -6,11 +6,11 @@ import isValidAccount from "@cocalc/server/accounts/is-valid-account"; import getPool from "@cocalc/database/pool"; import { getServerSettings } from "@cocalc/database/settings/server-settings"; import { updateUnreadMessageCount } from "@cocalc/database/postgres/messages"; -import getAdmins from "@cocalc/server/accounts/admins"; import basePath from "@cocalc/backend/base-path"; import { join } from "path"; import type { Message } from "@cocalc/util/db-schema/messages"; import { getUser } from "@cocalc/server/purchases/statements/email-statement"; +import { getSupportAccountId } from "./support-account"; export async function name(account_id: string) { const { name: name0, email_address } = await getUser(account_id); @@ -49,12 +49,10 @@ export default async function send({ // validate sender -- if not given, assumed internal and tries to send // from support or an admin if (!from_id) { - const { support_account_id } = await getServerSettings(); - from_id = support_account_id ? support_account_id : (await getAdmins())[0]; + from_id = await getSupportAccountId(); } if (!from_id) { - // if support not configured, just make message be **from the user.** - // this is better than nothing... + // this should be impossible, but just in case. from_id = to_ids[0]; } if (!(await isValidAccount(from_id))) { diff --git a/src/packages/server/messages/support-account.ts b/src/packages/server/messages/support-account.ts new file mode 100644 index 0000000000..b24c9ce82f --- /dev/null +++ b/src/packages/server/messages/support-account.ts @@ -0,0 +1,56 @@ +import { getServerSettings } from "@cocalc/database/settings/server-settings"; +import createAccount from "@cocalc/server/accounts/create-account"; +import { uuid } from "@cocalc/util/misc"; +import { randomBytes } from "crypto"; +import getPool from "@cocalc/database/pool"; +import { callback2 } from "@cocalc/util/async-utils"; +import { db } from "@cocalc/database"; + +export async function getSupportAccountId() { + const { support_account_id } = await getServerSettings(); + if (support_account_id) { + return support_account_id; + } + return await createSupportAccount(); +} + +async function createSupportAccount() { + let email = ""; + const account_id = uuid(); + const password = randomBytes(20).toString("hex"); + const pool = getPool(); + + const { help_email } = await getServerSettings(); + if (help_email) { + const { rows } = await pool.query( + "SELECT COUNT(*) AS count FROM accounts WHERE email_address=$1", + [help_email], + ); + if (rows[0].count == 0) { + email = help_email; + } + } + await createAccount({ + email, + password, + firstName: "CoCalc", + lastName: "Support", + account_id, + noFirstProject: true, + }); + await callback2(db().set_server_setting, { + name: "support_account_id", + value: account_id, + }); + await pool.query("UPDATE accounts SET profile=$1 WHERE account_id=$2", [ + PROFILE, + account_id, + ]); + return account_id; +} + +// this is the cocalc logo as a profile image... +const PROFILE = { + image: + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAAAXNSR0IArs4c6QAAIABJREFUeF7tnYd7G1eS7atJEATBHJVlZckep/F40k7Yndn4/uP33r7dmZ1oz9gzTrItybJkZYk5k0j9vt+pviBMS+gGCQZJuJ/boAgQ6L6ornDqVFUUx3FsndXZgQPagagjgAe0852P1Q50BLAjCAe6Ax0BPNDt73x4RwA7MnCgO9ARwAPd/s6HdwSwIwMHugMvlQACOIE51WqxVao1q1R5jK3Mz5XYKrXYqtXYqrWaVfm5ZtaTi6zY223F3pzle7osn+uyXHeU+qWVKjUrV2q2Wa7Z2mbV1jerVotj644i6+6KrLvbH3mvXHeXPodH/bsrsijiSP2Y5/4FL5UAIgC1mkkwEAodGxVb3fDHjVLNNspV2ywhOFUJz0AxZ0dHC3ZktNeGij02VMxZsZBr+sUj6MvrZVteq9jCStkez2/Yk4VNCXtvIsSFfJf15rutL99t/X3d1l/ISdD7OPLdEs6XQQhfGgFEKNBqaL/1UtUWVsu2uFKWgMwvl/S4vF6xleRY3ajY2mbFxod67eKJAbt4csCmRnptcqTXRgfyTQUQQZ9ZLNnM4qY9mN2wr+6v2FcPViT4QZsO9OUk3Ag07zc62GMjAwh4jw3390gTdkWRdXW92GrwhRJAN7GxlSuxbZaqtlGuyfTpKG09rm1UbXWzYnpE0JJHXq+/SzQgZvTIaMFePT1oV04PSQsihFkEcHqhZNMLm3ZvZs2+vLusY32j6ma8p8sKPd2GFiz0ov22NGCjJmzUiIVEW/aiOXtcQ5r/91yvF0oA0TxxzaS5FlYrtrhatrmlks0tl1zLrbrGQ+iCj1aWH4i/hs+XHPID/Tg50Wevnx2yN84M25Gxgh1BAAfTNeCT+U2Z3btP1uzT20v22e1FW1qrWHeXuQ8YDvw//L5cZD3d7mNyDPfn9DmuHfM2Jg2Zt2HcgP4ey+deDBP93ApgyGBLUBCimgsRZm5prWyzSyUdCAGaaHpxsy6MaL9a7MFIWiL89FTR3jo3bG+dG7FjYwWbGu21sYwC+Hhh0755vGof3Vy0T75esPmVclNtRdAhwYwimeOJoV6bGM7bxLBrXh757LGhvPzEnpwLbwhqMNnPm1Z8LgUQ4UN40HhoFZx9hA7ttrBasiX8u+R3PIdfh38XAg60HxwMhDBt7bcARobvZ/IV+/ETC+4rDvb5oUCov8dG+t1XRFD1XDFnfb05/e3zFLw8lwIoGIWjEivCfDS3YQ/nNuzB7Lrdn92wxdWSrW3W5PcFuMXhFT8QXFRfBvmz/RRAJeeT/wUTTTDS3eXwDKa5H0io0G2Tw712YqLPjo/3yTfFV0U7ErR4BJ12ax2O558bAURwMK+YWeAT/Dg02+P5TXs0v2GPEUKEcX5Dvy+VHYfLImTNvor9FsBm54Jg9eYIQrpkhnEJgIimEphoYigviAgohyDHcUv3FQ/rei4EEIWFQC2ulWVenyxuSushfAQaCyslmdyVNYdSNiu1BFDerfjZvmvAZoKCHAFSA1hjooFyML0yxRyDeQVJaEfgI5npgZw06GGVwedGANF4QdvderhqNx6s2M0HKwKLN0pVRbXyDZPopF0028OkARtNtHzFLvf3CsA6+W5hiueODdi5o/12arLPjo1jogvKsmDcD6MQHkoBDL6aItoApywnEe3iZt3fw++rYJYT/24vzMxhE8CnXaPDOK4VMcn1Y8x9QwIVtORgsUcwEH6iIuZDsA6lAKLN0GxovTuP1+z241V7OLthc8tlYXqkuVbWq7ayAZzi2Y12abzt38nzIIAuUCYcEVAbPxDziynGLzw11WevHCnaiYmi44w9XQ5kH4J1aARQgWkCjQAkE0iAm31+e8k+/2bJ7k6vObSyWlYE3O4Vok9BGBisJMtwaqpob54dtjfPDbvDnxWITvDHbx6v2Se3wAEXbX6lpNP2a/WszV7dOOCEowPuG5JGfO2VIbt0ckDCCbGCQIZrPGhNeGgEkCAjpMcAj4lmCTTuz6zrQPMpnVaqSeO1a7mguX/ElyKyQEIYAOgF6rh8csAunxq08UGyIJ6vbbYQKmVfVkrS3NfuLesgG1MCLCflx5EwZrjxAlOnXdfFuQuySczy8YmCHZ/oc2LFSMHB7OT5g9SGh0YA0XhkLkjg33q0ajcfrMr0wlThOVgqwTdsp9bAEoWkfwB7AYDB2jj4ws4c7bezR4oSPKJONEiaAIoNwzVxPYkbQVqQvDM5YZ4TOB6yMokQtksAuSbHECOZZSJm/MALxwd0EKSMDpHiy8ssH9Q6UAFEk+HvceDfPZxdtwcz6/Z1IoB3ptfqDJbdKL2g5fSFiH+XcPAaHvkSEK6hvh5lHtyX6haccXSsV4KINink3Xw1FUAz20gIEGRogjYHMhLxYR0BLCuLs7peURAFJzHkpQNPsQpPMbnw3dx0IVXHeQcBPHOk6DjiWEHCicY8CEE8UAHEDKEVZpc27cHchhL3d6bXpQVnlqBIlZQuCyZqJ3dp8HPAz0SBCjQoYWg9dR5eI/MExklw1hHEwT7XfJ57zUZIFWheBSKq1bmBuBDlcixM090JZ+gEbqJShmCd22hhAV7aqRAqPQd+2BV5YDKc1w1FgHVqslj3a9GG+x0cH5gAspls/O1HbmpvP1qT6eWAFkUKDZObNWX2LOFUaioyCVTY/MkRJ5hOjRSch9eft6H+nOWSlFdIZUl4G5grjf5i2s3QGFQFHqLYOsIqzYJ24yYUL3HVCRRPFgDYN/wmXHRCRTWJ9HdvBUxwDbANzJrzx/p1vHKk34VxqlgPwNKur13P77sAEj5gdoBY2FwE7uuHq3Zvet1TaXMbLng7WCERD/AKMEs6SqY0yRqISZKwScLP+HVoRXh4ALv4TvuhBQI7G3MbyBLksAledCw5hWxuBbONr+iaEtAdrcrf7TSK5vrYE/LIJ8bRhP125mjRzh7t1z6wZ+zffqz9F8DY7D6+HsSB6XX75smaAVVwx4Pr4ZjvxNQEU4v2IpgYH8rLf5tM6Ez8m81F2PDtgCmIAgNFXv5PInz7gZAFGIYSAfnBZHTKbpIRMnBOblL2g72BTjYrjejuCa+RJt3hzSqfN3FHEER8QvmF433yC8dTKGftEs59E0DptCRV9uWdZfvi7pLduL8izceB8O1mhagP8+Lga9FOTxbt9JGizMux8YLMMH7cQcIOWa8RFwTIBkG7g2/8eE2Pd6fX9YhgiunTBhCeMoNXpooCq8EKL50ctFMTxX2xBPsmgNzN8PWIBBE8aiTQfMHk4AvtZIXgAd4cwCvsYQQQf4+NRQui/YYHeuSEEwUfNPia5ToD0ZZAJpBrgXTQhOCkjjOWhTWGqrud7iEBFnsEAfb88X5Fygij6lOKPcJF92rtmwCyabqTn6wp8AAbw9/jDmfjdmJKMLvBlyNDgaZD67GZwbzIF8x3S/s9T2TNEPniK1Klxz4haCsQcNfL2jsQAzJECCgCCayzk4VVUH1Kvlt+4LmjRWGflCOcnCxqL/dq7akAsnmiy1djCR6FOWQEyGxQLcamtbJCukx1tN2RzGnAstisc8fYvH7VUXDX9pBuauUDDvlrwU25WfEXH805XsoBKePR3Kb8Q5Ul7AJBcKHz3PGlE4MyyViRgCW2ez/3VAAFMaw6h4+NupYIIL/jIMuRdYUgg0dgE7AszCwOMwc8OGomRMrszdUB56zv/zy8Djw0gNQA3Cr9XNoUTQ3ohhoU6l8IWthbKYAWgxSYM7gykFyvnBy0K6cGdZODmUL3aneZ6J4KIPACmo7sBj4f2u/6fa+PZSNb2ZxAxuROJD974fig/BVRj8Y9agN+wdS+yEXdgbChjg5JFgn35sk8JQkb8q85ZpdLjqUKrsm+ArUL349y1FdPD0kbap/HCpm6QmT/tD3oD4jvEuowMLHkdCGO3k6iONJrraxANQLT4w6kIAf0HuE7dxTzkLfxYff52rcAwGvJUTWLw5H8znjkaw1H+GQnfjqVBscdaKe74Qj/bq9TT3DHXqP9IOpSCI+PGBjkpPiyFmGFKwGmCtggfqF8w2P98hNDjrkd+912DYjaR/0T9T6a3bCr3yzZ53eWtSFUrLFZWRffo1JfucjGBvK6EzmOj1GI49kMpxc5nte2hfDVShbXSmbVDT9qHOWto1Eo6/LXIGxdPWY6es26Czqirnzy7+Z1xa1eR0jpAc14gZZDW6AMHAQv6n9Tza4L2XdqkWHNANFA5+KA0OA58fYA1W0XQMyqF4KXFe3+7asFHdyNKqVswSdBAD2j4bSot8+P2PcvjMj3Q+PBWmklPZb5i42rFlfWzKprZuUVs8qyWXlJghhX1xOBTIQRYQ2rK+dCF/WY5foskuAVzXoGzXIcAxbl+sxyxVD/lvmUmr0wgNqYW2fZlCV4f/9qwT76alH+tnretAB11WuUuyJZnB9cHLF3L44K2gLSSqOkZb2wtglggA2I0DC3FGTferRWx/ygHbGyZDlCSSJaDU0HxAJ96AI9Wk4M6OIRzB1rPZnXilmtkggVwoZgJcJVXd8SQH5XSZ5DIwbNWMMsV759QZhdhDDqTrRd3qwbDVg06+7zI1e0CAGUcPI7F9JIP/eaRQgx7kTr8SbWJ7QVISi5cX9V5pgomRwzQUvoABZqZ5oJim7uKLKp4bxdPDEoXqSgrqmi0njh+d2kLtsmgAE4Rd3D/v3k1oJyvFz09NKmoIOsi0ACrUfaDCIoyDwXTVqNO5DeKLvyQyR46xZjWktzZpszOmJ+Ls1bXFpMhHFNAidBlbBt9wWf4gPWfb8G/09C2ZMII4JWtCg/apYftah33Kx3wo+eoUQQC4kPmXXH/HXegMlNLQEgoPX0In74il2/u2w3H656EVeZeul0cxxgL6zNlLozeJ+c188O63tBUQQfvbUz3Xp12wTQc5nO7Hjvy1l7/4s5EQ3E/C3X6tVqaXccz5PV4KJB5t++MGLvXByRGfDGPADKrWiHZKNlpxIBqm5aLLO6bLbxyOK1e2Zr9y3eeGzxxiOzzTmzWqIN+Zt2Lcwzmq6rYFHhiFnhiEV9x8yKJyzqO5EI4aBFmGwEVgGM56hb1YgIWGgxR0kD5vizW96fBjONEGZlGhEZh+ZIb50fsR9fGZMrFChrWfolPmsL2yaAoPFEYQ/m1u2z20t29faiYIFAskwzvQiVm16TesfkovXOHvMIDIyPC8U5bk3+3NTG1U3XdtJwPKL55v3fZR4XzMqLFuPrVVY92Ig5smvuVDlFoIKPiLbrGTbjyI/UNaJrxTGzPMeo/z6YZf4+48LXDntPQBKobnefrBtIBH56VoY530voQ4M1euPssDRh6F2DpdrpapsA4vSC9XE4x89TRI21us1OkosMnaGunOYih3SRZDVItxHt7qiIBm2Hqa0sW7xyy2z1tmu8jSc6YgKNxLerCx0m91tQy063d/vfNcAzIWBRZJx3n7FnyKx3yqwwZVH/Kxb1nzXrP+0RNL4iwptxNfIRCULIGQNQ4x59emtJQhg6TaT5g2HfSWWSmgOOQTGcT6AZlMNO164EEGyJNrbcbaTZqP764s6SkuUc+CFZFgYGahTgJ2H+984MqSMVgkgXUTDAltS8AgyPUuPyollp0eLNWbOVry1e+dps/Z7Fid+n17UE1Wa5op28hrYHRbPeSYvwB/vPWDSAAJ61KI+mHLGop98sQmAxz9lhp0D14vv4+OtF+/jmgvzB0MSJ2up0j9CviUwTbeqwUq+fGdJxYryvXmvcknXa7aAasKWQKKf/HXAL5jd0Gc0S9ofyx/Hh3oSThsndSoaHvG9LKaDKqsWlxLyuP3D/jkeEkGCjvGBWAV5Zdb/wsCy0YG7ALNdvESYYQSxMyj+MiifMCke3zDWvzbg8fee+uEzxQ2eew8XEUkF4VTiVQQrhVMKewSrhB75zYUTfG4Gh/PMW6413pQFhaAh3WivbRzcX7P0v5+3TW4stFRIFhgr+3vcvDNv3L4wKduECqWltvdUYjWTmLV69a/HaXbPl6xYvXbd49VaiFUtJRBuyGhl2PeMXvfuXJSY6+IpJ0BINXrZo6IrZ4DmLiictKp7yYCYjVLNFfo3r1C7hhDcX9L2RHAjlAmnX4CUKMKpz9uMro/bjK+OCxgKrvCVLtVsNiG9BJRs40+d36ALqJNMsdxIXysmKpVzI2dljNIIcsbfOD8sU83vMcrYF07ViVlmyWJHtY4tXv7F49Y7Z6h2L1+6YrT/cI78u2xm2/qogjDn5g/iCUfG0P/Lv/JhHywDcGaNkvhd1FduoqF75468XZJLp5srvMrtMSY0NwQiuEvxBEUJGCy1js7vSgICdoljdXRbyDuWK6rasi9AepgUHNCqwJQ4Ej7ZimN/0lbQZqK5tCd1aov3Qgphb/EBMbj1/m/6uB/+KBGpCGxIx4wdikounpAG3hPF04g+mQzXoeoriKQEgQLxOwfzdZfEKSd8hlFntAcrjzBGvlyYouXjSqVsojlbWjgWQE0Xo/vrlnP312rxATyq7oAllXWB9gXNGVyfyvCTAW6LMCyapCkapzX9i8cInHmwQ6a7fP1w+XtaNedbrcv1m+IN9Jy0avmzRyJsWjb7pMI2ID1luWH9zXKdvHnmuGOTi+n3nama1XpjicXLFg3kJ4ruXRu2di6NqhNTKalkA8RWIqriLyHQgfH+9Nic/QtTwUrpTHzAlTv71M8OCXPABA66UzZFNNB9BBRHt+gOLg7+HuSUIAd9rJ47Xys7uxWshNgRsEJhm6JJFg5e2Ime0pFY6UI//HkZJ4DbhPn16e9Ebe2YgLuC7B/cJAusPL49KCIFkWilyb1kAQ5pnZaNsX91ftb9ccw1IJJW1TZrPyuiWz/CDi6P2g0sjCusD2p4eyof+ulUPMJavmy3flK8nvw+zKybL5iGBWNokjQpOyC3nLeo9UvcLo6GLZoOXPDjJ6A9CXEBZIIjX763Yhzfm7cPr87aaDO8hq9VsIeKhxhgX6kdXxuxHl0flC3ppZzZT3LIAovm8c8Gm3bi3Ume7tJLr9ToO5/WRZkMIyfGGJkGpX5cwPqdKxQsfWzz3kcXL1ywGXN584myVF331DFvUO+mgtUzx29KIgNo6MmRNAlgNJvg3CeCCzS57wVMr9SWwk969NCINCKV/bCh9kkD4eloWQOpWYbqAH918uGLX7uI/OMs5y+IGFcFRzuuAGC5EUQDQmUcMlBYsRtDIZCx+bvHiFxav3nbaFMGGwOUXfJEZEcVr0KLhKxYNvWrR4EXHDcmmiPLVfAV/jwAkTHOCwQRGCLKRdUHhJ2nw6qlBFTNRGEZZbJbVsgDivJLcpm8fJ3qP9mmz65nYFfJOIhOv7+3zw6o3mBouSPtlh1zMA4zlGxZzrNx087vx0AMOpdGyxnJZtuiQvkYkhYT6NXDOooHzZoMXJIQSRHLIGRdwmmevgGY8U/LVg9WMf23CAE9Pkr8vChOUMJ4eyvT3mQUw5HQ5WanrGwvShKjr2WUnmzZbYTIk+V4cVo5XTw3VGwbhuDZdEq4kvbZy0+KFTy1e/Ez4nrIcBB0v6YrIkPQdtwiMcOQNs5E3nG0jc0xU2jwowRcMjZE+uL5gH1yfsy/uLNcLoNJyxfjupOg4GGlGhuT750ecyJPSmzqzAMKcIACh9O+9L+bsvS9mVaUf5q6lhe+c5AB96go5ezeJmGBWZG4ZW9sUK1lslaUvLZ7/yOL5j7doVRBHX9aFGQaUxh/EFxx926x42iLIDRwp/iBRLz48qTqUywfX5+2Lb5YFThOUpLlX0LVCTxlo+z95ddx+8upYfRxZM1QjswA2VmD97tMZ+90n0zK99DbJUt2m6nuYLUN5UbvfuTQq3y+Y5VTZIb8rv++xa7+5Dyye+7ub2+cKYE690h28ICmEArAee9eisR9YhDlOOIeOE6b7g9TP/f3GgiLiq7eXbG6FgveyIuVmq7EvD+SEf3xzUkd9lFiT+cqZBdBzvqRw1u29L10D0njRI6m0y7M6rR4/QdMnTw2pADp1CccjvzvnPl9y2BL+31epf/5SvaC7T7igfMDEF9TPBCwZ4RkyI/TuAZhu7EOTto+Bnk8g8tPXxu2nr47V3atmBUyZBZBMxwzTH6fXlcSGYQsUk5VVC9DMyeEjQDblSOeRhfLIqvy8eO5Di2c/NCPVhjYEgO6srR3A3+udcnhm8KJ1jaMN3xW7ps6uTtkvNYuaoX3Kmqh1VDRm6WAR6Pvnjw0IWoMlQ2KBktlmBUyZBRDBuzf97RMLXd/T1DPPk3ID7+PkQo++9FpeihyoydgUzBI/+b3VnvzObHPaQWZKJTtrawdUFAVxteAmeOqX1jX1S1G4tgKS5humnoTLJc3cA5j+4Ma8ui60omi+pxLOQTs5wWiIPtVuP2tlFkB1tEq6WgV6dxpYWe9m0B3Za6eHVEvwo8tjKqfM1ASRyHdzzin0KzetNvuBxbN/9RSbCoVeAryvpRuMlq5eFqqIePyHFo390KzvWEL5H0l9N9gy1HUjdO9/OafaHnz9UHSW5m2RCQmdV88fHzA0Iq3xdi2A8Pw+u7UkBgWMF8DLtN4uWzT7SHUEP3t9wv7htfFkQHOGPn0wmkmtkWJb/srihc8sXvy0gdmSDfxO3fUX6QWhKq/vqEXDb1g08npC7T9lUd/x1CsN5FXYMn/4bMb+eHVWLKfQTD7N36dFCloPljTMdqJiSCa7EkA+NOQKAaF9YtGmquCaLaIgoBdCdAa9/DQJz4PD2nw3ML+bW5kO8r2wXFa/fjlSbamikvIC+IID553WT5ZkmEzJhVRM0AUsFrnkz5/P2p8+n1XWS5DMujc8arZonyLfbygvdgy+INmuXQtgOBnCc4GWkA9S0m9kN9TFaqjXXn1lSOAkWRBWc8JBElpX1iye+6vVMLswXUKu92VIte1WAKH2gwtSYwI2iDkeeath458NTiNjsNwJNv92Y0EZLwJO2DNpkBvf+ZCGa/fYT14bEyZIxutZ33eqD+h0bhPu99uPp1VVFdRx2smA/XnE661fgV44mdQVoJfystUe/9biJ7+xeOnaVrH4i0SxSt2MHb5AdH7vyBBN/Ni6jvzKoomfJrzBdPIqviDZkC++WVJrvRCEwnhqavW6vXab45dvTNov35yQ+/UspdNUALfaxMYSwP/5ZNo+vb1UHzGQ5g9ATtRglBM4o17fy5G6kgg3JgB58juLn/zWc76hOdDLkOtN3aSUF6io3XvVSPtN/ZN1Tf7U6VyKlJuD05BO4HtyQDqhyxnEVZRPsxVSroy8QPh++caE3C9vcOldahtXUwHU1MpkPhsOKQfdrrIOj8EPICTnYBbFCeaVjWcAn0m3USS+/sjimT9bPPMnZ7uElmkdAcwgnmRHvLOCTPDkzxQRe4nncFLU9Oy3IS1HJ1ugN4TvKpjgN0upDY62aogj+/nr4/aL1yfsjXPDqpqjDfB2tntTAeQuCCWWOKMc1IBkXVS3vXNhVL4fWQ91MB3OUE64OW3x+mMHnJVy+8AZMJ21ox2Ihl+3CFB69B1vB1KY8hxxk4V/r94yC5tixoTkQ1parvEtQTz+4XvjMsFwAIDetpNOmgogwkc0xMisv1ybF/sZPDDrgikL9kfpHljQcNJgMvXv1+55gRFR7+Jngl/o4dJZO9sBUbRgyAx/zwwqP9V1NEVqsoBjQntlvvP3rzkmmKXkIrwtmO+ProzKAjKZCc7n9o5mTQWQEwh1AxSd//2reVXUZ13gQb98fcJ+/vqE6Pd9vd6JPW3J31u6psBD+N/KDS8q76wd7YDKOMmMDFy0aIga48vShM0W9DpvfFmzG/eX7fefzdjvP51R3U/WBQQDFPPa6UGj8QB0re3ff1MBJC1D93XYsQDRtFwDE0pboWkkk7p/9daU/eqtSZleyiyzFC6L5Ux1G8Az2pC6XkorO2tHOyC+YD+lnK9YNPqWGRT+4smm79XYapmakd98/MR+8/G06oqzpuUIPhj2DfKhOcVjPnG0cTUVQGo/YDyToCYpHSaXNztzghyNRO2KVOn2T29N6hgbpNW/D/9LW+L6zf5VnD9qPIT/QbXvrJ3tQH5cfp8yIUTEHP1nUgUwdNknBQsEhwDiloWuWmkn4zlhn9ROrQgB6PZOWk0FkPb/qv94tCZ6DncCecGmAphUzUM0pWdI4IYxwYiVXvFmFs/+xeLpP1g8+0HSMm2hk/1I+7abPQ9hFUJC74RFkz/3Q1mR5ivAbMAvCCAHdd+gI1kaXF4+SVfVQdH0GZlGr2mw4cwaENP7NV3uExyIx7RiFRQcaLi6rB/pt1+84T5g9oLl2OLpPzn2N/Ne0io36deXtmOd55++A2r/611ZIwDpI//kfmCG+mHeECwQ/+93n04rKMU3zNJ4KgzH9okG3tJNxWcNq6kGBAcKcyd8vNaqhqI0WzSaRMoHCzlVSP30tTERFLd/8NPfw1Nw8fTvrfbo/wn/C3SsQ9XF6nkT9KRbP7T96Oi/WnT0X1RFl5WkyjznP1+dsz99PqOWHphhqPppy8d++XiHUP24XRE1FUDmkIkhS/8QzXlbFzbUbAE00tWKsJs2a4TiP7wymqGr+ha1Pn78W6s9/N8SxA74nPY1Z3g+MGRyRes69h8WHf8PAxv0dh7pPjnfPd0v/vLlvCrnvAVLeu9HTK663Nb7/gyo4WhmDaj5buQD7yzZ3RkfjAcskyaAYYAgH0yx8g8uIYApdQnKcngPZ8xv7eH/sXj6j52ajwzylf6SpGaku88F8Ni/uwCq0wJRaXMh5HsXOfXavMaBQVhFCNMWHAC4AMgBpZpEw8hGSwJI5Ev6TWmZmXWp4DQBDD1e+GCnZ49+x/n8zns0ll0++R+rPfq/boLDoOG0q+08n7IDkWpDuhC+o//mAijTTG1x85JYvve/J607Hs17VwxGxaYtDT6cYPBhvxjSRMQtCSCdk2g2TuMaTTjPMOESE0wKjrZAbv02AAAgAElEQVT+CCBd7jlS6fcwnCm9hAP45HdWe4wP+Oe0a+w838oOdPVa17F/s+jIv4qoKpq+ZpM0F0CUz0dKRCz4zJFF14JpC1Lq8fGCBBByKrDMdnp+Ux+QwAPho72/s6DTR6wCNDNP4ggCeKxfHRDePJ9FAMv1sVi16d9b/Oi/LJ59L+0aO8+3sgNdvQpAuo78iwughuQggM2zUyifj28uSgj5+fEio2HTBfA4vR/H+wS/vH6WftLDrQkgRMRP1VV9USWYCGCa6kUAj4wU7Oioa0DmSoCIp7byZwJRMpFIGODj/7Z49v1Wtrfz2rQdkAD+s0VHfi0TrOlMjA5LFcAN++TrBfvk5qJw4GCG0z6O7Ad8AHrFwIihDd/2SsimGrBRADUUeT6bAB5FA44WFH4rHdOSAK45CP34Nx0BTPuGW30+CODUr7xWBMJqBgGkcyoCSN8YzHHrAthnb5wbaV0AMcEQUKUBWzDBaEAGSGOCQ9/ndA2ICfa5bDLBHQ3Yqnilv75ugl0DSvhUtJ7NBNO0iOFDj5k7l8EEh/bLboLRgC2aYIgHjF+gGo4qOD48zfncvQ+4Lg1Y6/iA6QLV6isIQgRE/7MLYDJGNi0Iwe9j6iYd9fmZICSTDzjuBGQEkCCkZR+QKLgRhsH+p31wiIJpWggKriiYICQVB2SAIMXmRMFkQv6zEwW3KmBprweGAYJBCCWAoZllehRMBByiYJIRaYqIU4GO5zCMzxsmCm4JhgGIVmHKnSUxYgREZ8IB83I2d4UDPkxwwA79Pk2ssj9fxwH/3du4hSmeKdkQcEC6Zv3t+oLigKw4YChIkwCeHhIY3ZIA7jQVR3EyH0QqTt3TlQlJ6Z7emAl5/JtvZ0I6QphdyJ76yiTTIQH8X1upOLIg8v+aZ0JQPrRs+/D6nAKQrJkQ0nCYXzgBZEEun2oxFUfEo1kS93wOCD4hnTSbLfh+5IKH+3N29ki//fhVb8cxtI0F8d33CI2IahYrE/KfYsX4nF6OTheEHUthqJDL9TsQrUzI9zKPgsUS/iVp0xHGcdAtLW1Bx0P4sIRwAukP1BIZAYcz9IQBkqE+NAsbhoh3sM/pWBSlZGPDbM31dTbMf21jw6RfcNqGvLTPq1Nqr1nPoHXBhGmZDbNmf746a3+6Oqsm5lnZMJqqebRfJblQs86fGJByalxNcUDxAakNfbCiWhCIiWl8QNwJaNfwAUnBOB9wXOyYdN6Fnxo5YBWkz7xvVl1N5vemI+8vrYClXbgA536znlEvUK/zAdP+0FPxDDekJBdOIB3RqBPRwOuUhdBBRlVN+DGnZm23hE0FEHN75/GapipCy8IU45A2WwhgGFSC/YeO/49vThiM6LR+weF9YUJLCMWI9qmXwgg7a2c7oFa9o07Lpz544h8sGjyf+l71MQ4PVtWU4LefTKtSrlxhGHa6S4Tfx4HppT6IzvnbOQFNBRDIBT/w/syGXf1mUawY/IG0hR8IMZXo59dvT9qv354yAhO1r8vAP1PvZ2qBqQ3ZeKy2vJ2akLRdb/K8akKO+Jgv6oM5UmpCeDcq42hCQFXcf380bf/90ROZX9oypzUp4u/B/WjZCy0fUgKludsH2DQVQOjX9InD7wuTFfEF05bLWCQuGBVx1IVMDue9Z3BaN3xMMHM/1AX/qrdmC9OP0j648/zTd6BwLJm4+YoPtaFGmPnDTRbDyEtougplmSvSftSEqCou42xhH8cxopbMsKOeNo6jqQDSE3qWMQxLm5qiQ4s2/MAsCyEEBcf/+/n3qAvu1YzZLPNAVJBeH8FFX+jrnXa8WTb9Wa+hGF29o5PZckMXXSM2WVS+MQFhbbMiAaRP4B+uzhjdMtJ6AoW3BYLjAIDGBWOgTUt1wcx/W1yraLQ7jcmpjMcPzLq2OiOMSQWDBabDMQyiuW+meb+3XBMufNrpjJB105/yOg00VGcEmlUmc4d7x5q+Y+iMgM+HCYaOT8fUVjojMKqBnpCY4cFij7JhVEs2rqYacLNc9TkgGxXdARwMps6qgiGmhp6AmGNUcHpjclMXBGqB4/V7Xh9Mf0Cmn/sn7+KreNn+1HEHmVwaE43RGyZpYs5ckSaL0kv6whCIYvXIA3NslNKHGAYXDOv3s6Q3jJCR3tx3GhM0FcBK1YeXMMTkf5LZIBBU8Q9SBiPp0gg8yAGShgGUPDHZp/xg6qqsmpWX1QmfvLBatNEZ9aWfB5K6c9te4LUgmh0y+Qv1B/Qp6wNORGiyNks1dcsnC0JzIu+Y30p3LKv3B4QR1ZOLpP22NyZoKoCqjK/GqoQPhcmf3FqsV8an+QKAjjSqvgAGdGzAqA8FD0pdoQ9gad5q0LIApZkJosbkL8ksuNRNSnmB5mR5j8Bo/CfWdfTXKkj3OpD0aZr4emC/Nx+sbNWGP1zN1h+wi2n3kTcleGuy3h8QBGQ7CNJUAMN8OMJxmeDPZkTRV9OaUjW1Op6MyMlxb1hNHhBtSKve1JVUx6EFa9N/VHUcA2qsQt/ApRdrCnrqZuzwBcp8+KiurrF3LJr4mVpyuFB638BmC7eLdswcJCNgQmUZSkn3q/7enJIRIQsGFSv0Bd+ejMjWojeOvT3bF3PCAhfXygIk07plkg2hCAVTTCQEKYFBdukrqRGurmkwTW3uw6RH9CPHBJkV3FnNd4BRrnTKpx8g0Avju2DAaCZueote6n7D3Digt7klhlKm94imDyD53tH+HnuXmvDLo8ZMQPmiT0mFpQogf4jb/3HCByMjAiER5zQtIsLmKy9c6BYjVnNCrowJjO5STXRKco4KOQYTgguqS/5Nb9WrgdSdYOTZEhip/59GuNIpf4h5wpcz9YPB7QJopiekD6WcU38guuSvZOiSj9tFOQaM+FAPRE74WSuTAPLHNKuGG0iDIpxTmlZzUs0W5NTQsBpUnPlhsGPyPV2Wz3Wnt2pjTsj6fYdlmBFHhmThI7MyWCQC2BHC7+5/ot0Y35pMzgR6URak72iq3VAD+nJN2O+fP6cdh09FLZWrtlmppWKAEJGhYTE/mKb0l08PKiGxawGkSZE3rV5RVPTVwxWZ4WZLWyGNHwkLwiegbWsIybd3y/zOe9ElobzsY1pXvrL4yR+8XQe9AkMn/dQtfdle4O02ov6zFk39wgMPoBf8QaLflEUDSsBnsl+wX/54dUb14CAfaUEnbw3ee/H4oHrBwAcl6KQ6btcCCDXrwcyGeIGffePF6s+iZdMhC6Ej7YawcZCUDkPsQMM5UtNyioI2LIaIsHrHu2XNvrfVLxC4prO2doDgAiHL9fuQGmCXiZ9oVlxEZ3xqgFMWPaAZQIQGDDR8oBimYiGYANTNYDjy/2+c8RLMY2N9yv9uZ0E3nkJmE4yw0TFV7NhkqDHkxO13RWhQifkl8YwvQKE6EMxlWLEnB+o54e0d07+7Nwgg0AvTMh9avPCxGQQFmpevP/SApLO2dqAr72a2cFQjWzW4euQtixBK0e/T2yMjYOR/IZyqM9q9FRFQoOJTGQkNi9c8bUYM1u7i8QENJP/hpdEk/ZZvWhOeWQBRzWBD8AH/dHXG/nB1VpVyYV5waMtLdK8p6LkuGxvI25mjRRFT8QvwBeiW72yZDEFIo3AxL1j5YfpG33CfcPnrji+oPUqCuVyf94Gm+SR5X/WDvuRk1IwrQG8A0XzXzIeGjhfmhADPKDmR+IMMuea/4GrRA4bcPxmQ4Grh8+/aBAfnFK3HsGocVKhapOtQ2ZhU2vCj9YBdSD7TlJoaYVJyzI1FFTsv0IUvLQj+1klXVjQ3xDYeevPywJZJxrk6QP2SLjGeeyzqGfGcL8fAOZ+SSX9owOeMK0zGQgvi4y+ulFWEhPYL9SBYQoipKxs+xoOMGd8/Pj1ZL3LAHMwGwc1q1hc8swYEjK7Gsc0vl1UfQL84VDN4EeqaBpQ0IkfYaMWAxuNnYJiBvh7ry3cp+uWkdM9mpUeHjSM7gs9XXfUBhuSI5/5mMb2jK8svdwtffL7ufrPCpEXjP/K8L53xYUFrWHVz0Hm7bAYialA6wG1AMAgbVg9SMsqHQAXTjEak/R5kE6hXPwT/uzTqli6FA5pZAMNJ0iOYRjVUyXMi/BvGDIAz0Q5RECaX3C/EA0wxecBUzC/1Dm0oWmJw4eyHFs//3QzSAtPT1UV/q8ll6ts99y9oAJTp/cxQwr6TFo3/wKek9x1Lio7S/b60rUD5yDesxhLAu08chgst+3DPUEAjxR5Fv7RioRdMFh3TsgDCjgGKIU9IYAJmBD4E+o3JHR/qlanFDDOYWjPCulo0t0/dkQbhYoTXym3RtdwXvCG8ULPkGGL9MlTQNc6CI+Il6BDwfM5HtNKUXFmP1rTf07YejUjQgSCicGhQhRkmIQFjhtjA8d5uRb2hH3SaYMsSxsTULSwELmRCmCOHZiOggOvFXYDJ7el2rYcKzloHkv0UYrPKmtgyVlq02hx0rb94pgS4hoNc8ou+RCpwaIU0Wxdml1LL+iw4Ao8sOijbRgXfsFr1DvmYZ1m/1XKdpIooYYYnRnoNQDrLalkA+XB8PubJVmqx5oGg4WA6E/VkmYSU5cSavkbNLEvezHLhE8EzipA3p804qmtJb+kXTRATjYb2A1iW6Z3woAO4ZfBiQ9PJ3ZveZt8BAgkuiPbDBwwasjffrcKj1GZUyZu3LIDkCgNHkJ8Dxca1XrZJSLsWwNBFoVZxTBCyKgxqfEPR9+dcQEVaaEnB7/rU9vQNVNWV1PiSahPF/qJFxVM+CQmafUa2y27Pk12tVGrCDFFEIXBhJGsvMFwT6KXxs1sWwPDH9dbNiZZvn7JvZWtis/KqR8LrD602+77Msa0/cC2IqX6hBDDnQ6jB+waveMQ7/iMVnEc9kEwzkH1b2d6Mr63f4vyAks74dzvyAVt479SXunO7NXUnYIOBLZOlhFNmmN7Sm/MCqQ0tiEZcf2wxEzZhzvD8c0vhork4Q6Z7zZh4pEzHEeF8qvVAC4ZWuxnwvlBqyaPyuwkmK1equxXRSf16M71gxxow07unvIhNcHNeFcUfX5LAJQw1zDLYMIx2IPiIN2ZUPceoVyNjsnTDYgrbIbE+t7PmqPQfdjKBUmxkOC6ZMfcN/68w4ZPRM5BM+TpkMquxzKaEsRZL8IhgU8kh7fjSt73HvgtgY0hPJEVqR8XOcSzBw5esBzS93dnVOX6huuyXNF2TGcNhznC8OWNWmkvmkDQ2OjqM/mHwaZjhgWD1COMzcD78vGHPdGjeb+jvl1Ew2GMvtawaCAa4HlkMsFogM7JYQRPK+rRoTjOexrdetm8CGJxUNmFxtaIQfmHZ0zxM5eSuVDon3yUWBcVL1BI/i8r93YsNxIWKgpB4/YHzCCExbEBceGQxwQmCKN+QwThUeB0mIWyMcoc1202CRmE5aTW0Hry+4nFnvai9WsoAoKSIHGPLHj8gizG7roFDMF/IcoBeCLsd6hWeSx8fItmQr285a9WCJO6bADrT1lkU0Lo0d0TTl3wcLL1GuAOLhW579TTtXIfU2Ca0+ci0CUGg8Pcq607jWoPQetc7LAi8vm1Wmj2cBU4qJELr5VzQBs54C43iKdd+vVMeaKixOK9Lp9YjC+w9CgB3h7kv1HlAq1teLwtSo2aXDBaNBMJ0IxhMQRtm2vsWhK4tUXCWz0PgUPP4HT592zll9JrRnTjjfadDsYu4g4VuFS9RygeHMBAcsob19fNKSjg1axgtSGS8cssFkNRdZc1iImUFKGUPUgTv7JNWDPPbNC4rqVTrLiSd64tmpNUGzpj1n0m03zEzyAZJ25Ms+x9ew76vbtJgoKJu9zSdv/VoLaHZV6TtoNEfHSuIsUQun5+DQsA3VFuV7q7Wc/gpJ7qnGpA7jq4KmFtYNNSRcARuISkdf96HIIe8MT3laO1FLQGmmKq6oX5MTSspvcS0llcsJgjhIEDZnPU2H/xc4nHeA5XSQoIdksrbB2ZNEDqyGYxR1TzfcYvyEwou9HPy6DDLUFLLmz1S9RxXrD3H6pC7p8icUstAIsAPR8C8p2OPF5ENeYtluJwIJuZZZIP+HgWK7Vx7JoBCyjcqulBYE4z8hFP29aMV9ZdDI5LWC1O5hQklAsaFM2Hn1ESfN7c+MyRmTcsULu0/Go0Apbo1Cgw/EIa1QOx7Zmv3XEOiETHb+wHZaIZvnzIakfy6E25qi6dlbr14HPgl1PBmm2zZKByBRs++02yeqae4PvD8GDYYnsfEBlcHP7yvt8tG+vMiEdPb7yQakUKj0YKoVe00yW0XQAQv0Lop5aOiCkIjd1+4+NBfjqL3py0xK/p7lE+EQX3p1GCiBXt0JxIttx6hEaT4NE7oW/HGdMKk8fSdImXoXsA1QQiVTSlbHAriQ72yHjn37W0qEp+sXhSe1OB25SyKMLOJqeUxoc5LAKXpJi0qEO1OqY9ffYRWBhbzt4XOtR4tNLA8mF3II9fuUcuzooHTcPmIhJ+2yOFjanGFjo/5rDf8Qqj2sJwwywSK7YJs2i6AmFJd5HJJ/h3NjOgzTXd94BYq6QL+9Kz2HlwcdyI1pjS55OLFqJ7q0yP1xiE6bskcfCtIIYOCxksyJhX+TQHUsvMLaQ0iriEcRAbo4C96/tli/MVEmBu5HI2CB3CsYYAFs1wxCR4GPGNBzS4tMhA+aTqyG7ymaBGP4vCRy21d64WAg7LKO4/XxdlEAfBIsAelHuF8VoNJNCF4ND6fczlz3ljgJE3GB8V4GhlEEWQnuTb7jtougIT69BSEQatRX7cWNW2JVm9AAa1wb8LcOeAY7j6K2zHHMG94rrurHU6xU8qlzai+w1fEH6QEAFNdWqxX5tVNtDTkU5qnK6Bw7G5L6Pq9H4u6FIxYRFeqPAfg8rALm9bufCsVqSatVPgO2H91NmDULsNl5jdteql5g/ntghJucoYOvnnWR64RKWOKIR+3Y7VdANFudE5A9VM//OktH/VFt1VA52ep/qddDA5vYNpq9Bcd14/1yzkeH+6Vsxz4htub3rS2OaETw4a0naJjmWPXfjHpPAYpBoJD4ByK9tXoRqCxkp4sIg0kxAFFt4kmTFjKmtMWUmi7FD6sDgd1HI6rloQyoAA4FOytOeSSdXlRmZdYYIKpcqPajT0nGMnKdkn7vLYLIBoO2IXoiunajHpFAPH/MMNpk5YaT1j9pru9wAmtJ6hgpFet/y8c94ZHwDPtYeEghAQqmNZEu8G20c/B3CYwTR2q2V4cH3xAHhuEMWGoRNKOuURLhvTZ7mlTYb+xMlSyEeWCr2KJQgeLrH2dw/6zp3S1xQ/nxgeXpbkAGZPgJ6YJV5bn2y6AjR+Ks3v97opdv79stx9B43YqdwCls7R4C++HXzicNLg8d7SYlHgO1v0U0nfkNHNtMctZtu5gXyOaPJqvGrtvvV5RLe8Xd1fUUJ4bHngLzfe0EspnnX3wAenl90ricwOHXTwxaBdPDnynweRud2FPBRBzG3pMc1cSkFy7u1KvpOPOzbrw+QQR5Lt1Z/okxj4BpvwMboVZ0B16AKyOrNfRrteBNKhQCKiLirU5h1cYrSqYZaVs6wo4srfU5dy8aUCXjQ7khUCQDKC7PTCYsiNt3ts9FUDuPCIuSje5K6m0Z+q2GNXrldTmRtvNsdO0EERvATZQ6LYLJxgDMKBIGSHEOd4XVna7JGmH74N2I4eOvwe8coNpVk/W5GPja+MCYWHQlK2sus89WtC0++9fGBUUE2o+2okBKvRqtSaklYup9xeMTfNGvrzjYGgAp8mIuBnxzcq6cJDRcvgpwDSnj/RrKqPfpb3KmoRhOWCGmOZ2I/hZz7Udr/NOBPjVsdKZHOwdka1muQhqWdW+4uvx+ixjFMK5sTdoNg4AZ6wK4HOY8zE2lBcxIRM/s8UL3lMB5FwCC2ZuuWxPFjwrQtNrnGVwqazNLhuvS5uR1KIE0JqCdxxmzDOmAuhmKunMH4qmW9ybQ/HyOrBfqsqfY/+eEFwslpTepCqNrAbFQfiBqs3I2Eio0b/2Hj45ZT8ggRB4TCVt1gCl219c5p++5wIYLjL0HCH99revFtT8ELOsLvxr6c0um0kDZoE6hIkhh2YAqy+e6FeNKgIK22P7gJRDIV0ZTgIBpACMPVLD8Pue0cDXA1XgaBVf3f6xwC2k3tgrGogy4xm3xgkI7vbs1do3AQxULASRNm/gU7cfJa1fZzaEHQpOKNd2xNDDfMDq4IDXhgbEnIDah80NbBsCmeDTULnfGsmh/V+Flzy66YTAAZ63vumYKQTShdWSggoGBT6e824E/Bs/Gq3XgvdSP3nMrnr49AC39MqFgfghrPVoUbn49tV0P3vP9k0AtwipplwkZFQ28su7S/blnWWZFnXh3AB7a/1Lxj8JndgxuUHYaJDkZEtneHCMJakkfEV8xJYbJbV+ek3/IpjMjc1qfS4LeClBBtCKDwsq6SatM5rLVfl7aW2Sn/XBaLfBgt+wBHCk2RgoTfQLKRVEITsZeOcbsm8C2HiKwammz4xSdbcWhQ/iWLPZof1XqxHc07aB6Tx0aUArCroZp1kSFKMew7lGE5LSQ4OqxDTpZZIw0usMnND9KysJItxEofAn3IChm5iw0KQdbqVWE55H9Dq7VFY/5tAODYhFArjsmaTdrqDVuEF1Uw7m5arQQplDwUhSm7Pbz8ry9wcigF6ZxYZX6/1FfCiiH9zpmkm7sfvCcjYa/w9iAz4OWo9EOpkV7n5vIeYOuOOMXUZxdeAmBiImvlCIprP4RGG8hQqAqiT/XVvhZjhBt+aU+CSqhajL9XrRv/vFBBbwJfk9hFLM824WN1G4dm7KYHbFuUwOFYa12rlsFyd1IAIYiJJ8OY5bVdWHDueag7ueNF4rabtn7YHu+OSuJq2XSwamBB8Q3Et1EJryzpGXcDb6iwEAl1D2ZCu+x5cNPm2I9HkMJlStz5IDf05RbNJ7LxQMhQo2IttWoZWn7Qd7AcRydLRXMAsR74VjA3JRdBPuYbT7rO/nQAQwnIwYdclIUPwduIOk7KQJZ9cliEFTiD4UiCu7uOP4U+7wgHuhGdGK0o5FF0I0I1+IjqSdcIHG6o15Z7TENg6LM1I8oChLAF3rOT8ylCQQYDikEjSckzfKtlbCFG91GtjlZboPZ94oPvRvpEEomo/shmOoRVmIvcL50q7hQAWQkwtgNZqB4EQ8wjmvGYFP6KD1hsyS+01pl5T+vBjASVYF+IbMSsAKw2MYLYvpRVjRnsIeE1A7YJGNAIUyD4lfF3qlNJpgmeJEKNFyNPaUcCY/0+oCjm47fN/Ga4TDFxjNJya8+AiUIAQc3Fh7hfOlfRsHLoDhBMMXx+YjdAjfvek1jYUghwwGFqCcNsigPvY7gUZSEhB+r27zeuFWLVDo7qrsQdKAMVwDSnqrf/IW9zG0MQmcvXDjhWbf9d+3ScMHLR9cD2AVhsUAMMNyPjpekNux3/7e04Tx0Ahg48nhExERY5aVZnq8piwKDjo5UHwp1xy7c8rT7s5n+i2Y8af0PfQusu3RYDs5N7RyPulw0N/bbcMDPWIQYXZfmeoXo1xtkgfy8vcOwzqUAki0F0o4McnAEvQkRCvC9IB0ye8gWh7UCiau8fODJtsJjtmO68BVEGWt2KOcOIJHmSXYJ5AL6UqxXRJfth2fudv3OJQCWA9SVExNGwmfW6HpjQ9X6wVOBCmB8RGc/4P68nf7RbT693XXIGkQSsUgwcaU8uFMK+qT2b10akDllvi5oT93q5+1l68/9AKI445fBS7YWFsc2L5EjwE3VBoraZa4l5t2GN6bIAlNhtBBkUfrASVBRyMnjhAeHfO6Xh8K5E2fDts61ALIZilNRb1QtaaokegR06s01WLJx4iqY/uGLSU+YitE18P2hWQ9H3BKwUbFnKLa45N9yvSE/txgmQG/JBh5msuQ9bP28nWHXgCfdvGkpJhfAQ0pdGyne7uaZ6+UBW6re2fCo2uc7PO8mOit6NthoBDR5hKGClhlCCjw88D1SDMGLLNddbt7KXy893MpgGQZQq8ZImZqYBHGkFHwn/13IaVHl4aA0z0PQtjIeVR9LsQBsjZka5S5ydezN8rkDOalDcMcvnZT5/dKEJ9LARR+RreN2FNUTmPy7ELgzdEACdOM30hKD5Bb5YtiC+/VdrbvfQNLGd/Nfbq8CKIUiWNyQ78WuI4hq4OWFMC+j7nc3V7xcymAT7tohAsth/kFQxRzODRCWikp7UU0rUClgRQQMhXBTIcMRkir7XaDt/99ALmdleLlAkGACBLytMbIeXARCoSglAGhAKUArzD+TPlq2tn1Hg48b6f79MIIINpQta9J7pXE/uq6dwMN5M5A4AyME/rjkQJ0zJFxA0nbiqSgJ1Cpdrq5TxM+aSczMW6IYr0ZkPMXqejDt4MgEdpihLw0bB3AY/K2MJg1hy2pi2nX+R3E+7wwAviszQvUL4TT28JtdWXFPAe/ka6tLrSeaQmz8drpL4aEfxhlG4TMWTi0RgNG6bXJEZ82hebD32upaftBSNEuPvOFF8BABMW0Mt0x9KSG3BA0YBhFG4gBmGlgH1WYJW0vGhsq1XO4dJpv2PwAddQfk7G0gQQqUkPS6DEQIAJ7Gy1ImSk+HRrQNZ1rvR1NF92FUOznn77wAshmBiEM3VrDI1Qp4BqELAQzzliBpQLu6D0MA4MlBDGhIwGlko0aMuSHGzmICJ2TWyG6Ah57H+z6JICGqQBqeZHMWg7tRrzIvr09+fZTwNI+66UQwLRNCM83FgcFtnLIrvAYsjIKWJIMTSN1ygOKxsDCq8qc/JoEFQnHsD7ge+8KzrJe9oG+riOADdsfaFMe0HiDpS3NmMzVoAVafcaGt0QLy+fj+vDGRm3YGOU6z3AvhjgeqBzt+MM7AviUrQsk2cZKvnpEnHD2guB9qz9lwkAO/MHGqrLwsyrwNEW0s9iBjgB25OBAd6AjgAe6/Z0P76u7iUAAAAAVSURBVAhgRwYOdAc6Anig29/58P8PA1uRiFq1mvsAAAAASUVORK5CYII=", +};