Spaces:
Sleeping
Sleeping
File size: 62,202 Bytes
b004dac |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 |
{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"from fastai.vision.all import *\n",
"import gradio as gr\n",
"def is_cat(x): return x[0].isupper()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"from duckduckgo_search import ddg_images\n",
"from fastdownload import download_url\n",
"\n",
"def search_images(term, max_images=30):\n",
" print(f\"Searching for '{term}'\")\n",
" return L(ddg_images(term, max_results=max_images)).itemgot('image')\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Searching for 'dog'\n",
"Searching for 'cat'\n"
]
},
{
"data": {
"text/plain": [
"Path('cat.jpg')"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"urls = search_images('dog', max_images=1)\n",
"dest = 'dog.jpg'\n",
"download_url(urls[0], dest, show_progress=False)\n",
"\n",
"urls = search_images('cat', max_images=1)\n",
"dest = 'cat.jpg'\n",
"download_url(urls[0], dest, show_progress=False)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAMAAAABsCAIAAACzYCrFAACO1klEQVR4nMz9acxt23UdiI0x11p779N87e1fz0eKFDtRlEh1lswqyZXYimW7YgM2XEicBEghQBIEyJ/8CvI3iCt/CkgBFVSCJAiCBIErsWNXwRW4KdtyWRLVUBQptq9/77Zfe5rdrLXmyI/93UdSohynEivawL2493znO/ucs+eezZhjjkmp4o/rkOTyWkblnnUHFdQnVv+B1XfJ3wS+hmAg4JHeysv+ernZf2y//2y7/kJqT3LZTeOY2kW3WgZGOfM07a8vt5vN4Ud+6u6Ln21TIglg/lvS/Pf83z9w/OEHNR9e4YXQ/BCEWidIZBQYgiFEmN38lCQpACAIkgSBH3K67zuFw3PNWWUa95dP3v2NzbPHza0H9z/604dHL1iI88sJgoryQFXV4tOl+m+U+pDLH2sWH0VqjBEQITFCQnV5cYemZ7b5n8D/HpkZCJMEZe732F1y2KlZo2nYdFCVgGnA2IOCObyiFITANiJGgRAoxzQQiCU3pQ6x88X6o6k9Wd77RkrX8f8XhvH/wUGApBFAhQXEV+l/kTpD/TPQ/xX8u8SRRKHAEUOMfLfWF1BdtTeU2B62Jx+P3Uo11zy679UEHdv66EGMgeT3mwXJP8p6/iWHkbAgM0CQIAXS3ec3jxAYAmgAZuPUbGqYnz6b1B/98UmJEFSnYffw/INvnL377XG/5/XTxcFR25zEFGKIAAn3Omm6YN3SB05v1PKurb4Ylz9qsXl+jtl0AyAYIJMXoRFvmYkxQA5BBWOv/gqlhyrqhElyAURMYGJnQIVcZZQqBVWxDAgJTQu/uR+CBQXW1J0u1i/HxeOmXQr7P24DAmgAg9EWsg7WQgfSfZVLFqJ8E/kDgCgjSpvCom0nYKyeQy1slovjTy2PXo0hCO6et5vzcXh2dPyJxeLkh1612YY+/O/329MfsK3vPc0AGEkogBAEGkqBZDHAEr73WyQhd8hBPn/cJfujjOjmpKRBoaJVaEJSYB43myffOL33OavtZKPNt4IKSlad4Oe1vKnubrP6cYYECDRhvuwVcMJAEwNYCaMFWsPQygzlgnI4KcghR8kQJTB2EFirKNBAwkkXckZx+Yi6x3IFk6ZJhANgdItm8RnD+1KFHf1xG5AgwAFTPIS1s+eHlghHNd7ScMzxb0b/F1AQBetpUfpgmj5oFz9my5cXBy80TSQoMISwOrg15FeW8ThQ9sOu1h/+9+xLzOzDB7/fyEgAYX6jN4+AYqA5JDD88GgoAXA5AdBg/7IoNr80aWahXR0ulotodejz8Oyd88dfvvPCzwQFF0JArRVuUAtviDuh+5zFlnAxiPMpAlRQMywJFAEG4SnwDkNASOAScUNNKaFpkAeME5CREtsGITJneZFECiQkICAmCPCCfot9VmOz8eQmkJWWL9yjeVbtzF794zMgCfKsck4J4QDWkob5LiYkggfe/elan4b974C76kuvzTBN1R8Nw2/kFE9vfaJtF8HC/GqAgoWsCSoGCuIfMprvT4YAuddSRwIhtsb4g6mSA6IR+oNZFIAbB2Pf+9H3DjPIXQ64RJCggB8SOj98G4CkCsiCNU1UtZCpgmff+mf7/eXh7R9dr+51aJVHeKbcwgl4H+yAD13dhy9uUFbJTqpWn97S7j8M+rawAneUBAcQIlJC28Ea1qqmQQqQywgjs1Ac0RAarJdqW6sZu2uVgutr1Ig2METBvFSFMRe/jnrNhwPYsz9GA/KiumMdCMBW/MF7lCRhIYLd55FPoY86/2slp8L3rva/tbn4ZnfcPnj9rwSLz+9gEAbj5fnXuXjx8Oje91+hDy+8BNK+Zw0qpkwEyudE7MN3RwjQH+U5bryUgB/igYgQWQsEmOEPJUHfZzcAAHfPe5+u4TnnbS7bPG2kQqjuh/d/7x+/t/7Nj3/u3z5dvRKYKQcgthZaq1euyWzxvZf2AlWAkqM48lnY/6rVJ2w+Izyl3hRFJaEyolkCwCJAglfFRAsoQk4IBeOI6mhbLFcWCTQKYBQWSdUVA2KDWgAxgKXPNeRa3gx8+sdkQPN3aIwKQZ4gAc45WDz/lgnICFsp/LLsz8sfeOgj9qf3PzHt/g93jl5dNCfPrWe+QjTw9uHLzLnkoQ0LmQjcJL8gaN+fVpMWYmchwfU8C/6+t8c5SxDgJD90PbNnkqpcZAB/iJHdmBZI45zj/ZAvwAvKvuYzlb3ylIfd9vLR4/e/W4cLevZaq7NUn4ZxHIanD79+8JH7NJI2Zy5koXrkM/AOrAEEVdQ93AmDKsqO5dLiCewzsg+IRJ6LbwMVBgSFxNSBJhDVEYJCgFWaQcA0qU1oO5opBEBoO1DqWuz3CIaQUCIiEz1o6sZd41igX/4xGRAJWIAtUUAUMUMZDH/gWXAHUo1/FTiVxHi6OH7xzuKeAhpUr9P3OwnJg4W7d7/g097zWIwWTAxmgWagkcY/ZChkRMCHhqjvs5QbM+f8tOdlvBeoqkzulUailW7c0PeHS5KmKvFDJ/V9PxU8o0w+PtX296f+6W67vT6/unh2dnG1Sak9WHdOTiUP47i53o7C2bu/d7C6fefWxyiROU8fdGkXF69Y3SOfwZZggBfUiZjDVE/fgSPisfQA2AJbyaEBDlSBgIFBICwxGGCEECiJ0dBEmiEE0G4+H4NSAwLJASBEBMAIiF4PVG/Bb499+uMLYSSFAOvIEQJRbrLpH6iGBC5DuoOawSbEA7OWob394FfK9KTPV63u8/vMjmRsGic09pRUnIEICQwfRq4/+B5urusPpjhz2Jtrdd6gPxACAS+qA/JDeUV8HRZBm0u1H3xpiAECUSEHTTfJnUNFniEnAmR12pf9Vb+9nMZRpV7vN9thkDAMu36/311PVd6lh0/Tr5bNB6vFYrGIbdqGcI8eKKJm+RaMEOgFMMKlDDpCAJfUgeox9Uy6ojS7KhoQYIFOMM6GAAgMtIoY1HZ0n/NUVsIAGm7SOpIBFuCQpRJpZVpU72QDVP9YqzACsAiAijcJL/15EQNAkBsNoYWqccHYgWZeUmzFu8V3OY+pXXxf/kTSRCAEmtECLID8A47nw+P7LeYHH683FRkgF1RVR/rkBHDJ8l7wTBygDGJEaOZI8OFZaAAMBlSnT1IVDBZAg1eocvauPsBCTMumGdt2H+MQTfJpc7bdjWUcxmEa86Q2WtlP2/PHHfeLo8MYbi26+9GOKJNEF1iBSkiY6BMYgEpmocIyvMKifAu/lgNOmoC5+v1DqT1lhphubmSfi3xnziojx0HJGOYvtYGJFkVWeuE0lnxd8tkfO5BIShEWf/Du9+euYX4wwIKFDmYuNzI1rVwl15JziC3DD3wLOY9WJmtagLVWQsnCD3ES3zvdh/HLJRfktc43K2agwSeWEb4HRuI7kFMrI6HiZaCqrGGI3zuFPoT1BEllL+9JEyKtmUs7lWv5lrAQupi6Zbcoy54egKBiZdKQ67gvBq4WXUIjT4mxs6YNKYWFhSWQIAMBVWgCMjDAz4RHYAsckL38AroC3oN+DbVHJQQ45fDZG0FyQt+r5ObPHQKrC5W1YOh19Yx5UojsFlqu4IaxggYvCCzgk4rrcdrmkv/4gcTnKfAP3AoVBHyufuEaqQ11IETclLthyvucz1bL23O0eV5YIZfc908XaooqYxIod7MYQvPhq/8Bx/P8d716rtO+lkyJDMYwgykqE+o2YE+ckSNwTyjwneuaXIKRtA8TuJtXu/kDByQ338A/EFayEyDK96gZPhEiLYW4WHS1tGaLGBioIPhU6lACrQ0RYkBs42EMXYDRR9QRTKy93AhJvXgFXYhvAV+HgnifXABX0BPoO+Szm3BaBec0QQYLlCsJ+DDAFniBCxZvqtBakXuMvSDEhNChEu4oAggTgkF1o7zxil3P/z8Y0A85SIigU0GoUGX9OmwFLGmRQCl52r/dX//qwfqFoDsfGkTxenb1xvTB321v/1SIr3ruK8VwMOXQgCH8kE/3fT7c7Dl+RgtkuEkBIPedj+95fWThYbUHMCMoVbcxtC0twcIfKNcJCj5fAsIAoX6VvhEPwRfoR64gL3CHnIaQbLFamFVTUWEe6qprurtHR7dfuvXSx47vvHB4695ytQrKgTsPjnSI0FIVXqEMDcA1+BbsTeApsIPOwBPgCnwH9m3UQlIUAXfFRJGCDPCqGaqasz1GJCMMLhYChBFNQwOaFm0LS3CHZ1QhEKVClSVjN+DyGn8yDGjG7mzGKKLsoPJFooO8OnxOTvzbGP7WtP10DF+y0IGQ101/9c7v/+3l5a8fxtbKB45tDSEuf1FhUb3wB8t4/CAGSNJCY11Aabxm3oD5GV5oOehp7r+zL8+YFNo7ZII1WJwabC4E7Q+DParwQp+b04aaIBA98FDaQNG0dASwwCpNwZgCStedLF85euVBXL94cOvVg5MXLCbC5O5yA53w2eUSkhsBZcqR32Z+j/UaOId2sLeEDnYFG4BBsz8JBGTGudzy545+GuWVISK1DOnGklKCV9QAi2hbEIiNUouYUCqK4AXVaEStmpxjVal/MjzQ964rCWsQ17V+jJVQ0VxuAonvpcXbC3/DhlOEQ1fIxcr11s8un27yyY7UmeIO7QMnm9iYfa+3+kd1pgjKAmJrNMApyQiB4RDdCza9tb8YwIv26IPQveLeRMQgzGHu+4+5x053yXlj7hO0hD+GnnltXBQb8Ei+rjyw1WvN0WlC6GSH6Tgt78W0ACG5l1KnQbWCBkIwqcB9RkQRoxvJRJotPoX2NYyvoXwduED9DvV1cDPXtjQgQS6ECCesGMQCACgwY54gqFndtGJJhIgYOTiqEIJCRLNkCLhBDyPl2PYigcJSUZww/YkwoB88aEzFVj6NVAZuWBJtSKG9ats3Lf4EeA1PMSyrTVV9KdNmu7Nwpw0n0BqiIHvet/qXd+MJiobYAFKdSxgDW+FOaF/uVhf9Fnnz2IerKvMmpebWnPJ8rwkPSK46ygtqkY/0HesFFIGl6tMynbubbI3YsflEWP9UaO4Ipuqa+Rjykkev1Wv2aVApFgIszm1XEKhFZXREqgXNgpP0ahYXtvjz4K9QjvoM+3+P/h+RvYygEDiH55t0B2Dk3LYPFTTERBrEOaLdFKEGhABrERNDVHXOoGytGidAmCbQUR1TxlT+hISw7zvmi17BCjYKpNOMmhK/23Ri/E8Qfgl8jcGTlzY9DnoTeZr683pw333h0xjKRn4q+L+kEPvBMxpmkzCAcz5pjB3iUdd91M9+w/oNbYp+4bvfmpavtMtTzhHiQ1PyCfka9UJylkHlkrqGMiTpkOg83rbVL4X1j1g4qtXz2D9vUglyhgQ4XCojar6xezkhVZ+pHRBAeS1EcGmmNMDdiRCCSPIUq/8ZhhP6/xIsQguIHEEHWzHjeaWoCjmigYSqbpDzGUMVgqEJKA6DoqFobqYgBQSgOBoDCHMZWMq/5hD2X4KOA4BkUT6//u7d44+m2AqOfJ3i68H+LOKXxX+P+G8Ba+GtqH9k5b2xP8zjleehZBLu43VdTDE1kpP2r/geCDqMTABkJJJZiuFoEU/r07/N6aHFbenfr5cHNfy8pVsKrWaERZn1gnoEXcEnaFLdet0RG/CuVr9k4XYTOuvuSxh3V17cQpBLpEoOMRoBoUx7jQP6pwEFy9tsVpLJK7zKIkh5FSkCeTKQISpGCKXkECOsiIHd/xD6Ev0t1a9AX4HeAZ7CAPmcU8+JPg0hEC5UglCY0XKWCRDsBkGFnLAbZ1srUNAAiwWqMJFYavzXXYX9l7AeABCipXF4lvs7tjgKBtqRt3/R9ROBvwf8L4j/sXRA37L61L+ep6aOUx7OQjxu27vRjuBVXh1mhj8KVPzDhxl1A7Tow0dS80DrH7Grt4AppWfa/h1Lb2PxGtNrtAQOwCVVqSoC7MFMZKmv9iKWP8XuHqwJhlrrtN/maQqxkUuSaoFkZB13/cVTTaONZ7x+R020k4nrB2jWAAXAq+YOi8uR6e5wwkGZMsZttRjXtxnMPbr9XGx+jvlHMb1BvSvnTWZWRcABBsSOyigZqDfwu8Q6YezhFaXCDHCUIhlgLIJnbwK7Fm2LXOUjuoRV8ycvhAEQEC2dHH0qogkQGchG9qJP1WqkfQz4MrGH7Pp6/fRxQyQ467Dn6l5ILzCuOWcY9LlFi39VUya+r496w9gymi2Ng9erqj6EjPIvLP8WdILQIgxiBVrxhDySSATZJARvPhoWD8ys7M/yOFZrSy20OBuovMo9BKtlysPGvMCn6ezd4eHvCWV9/zLdz+HwARnEgNDe9GvlAKCqMsgrakbecfcOwUJau0ZoZKWgSekz8P++8j3UL6N8RY65lWWGm5YzmQK8SJW1cBo1DZxGzVSkmXSZKwSoyh1mWCwQjYQisWyxn2D8E2lAMzraWEfSYqKlmQla7H72Jk5HRqik3XX7O79x5+G76e49jn3xoxZ2IOvmele13Dh8gH+wa/svPfeH/+Jc/9FwXuuTod/3vSGmo1hj45AAUS3YA1ewQf4EgBhpAemnbPGykeX87f6D38t2yMMXkRpLkKrpw1eXmTWx9TTUfuq3m8ePHwffVmuOVncNUGiZFuiOEBYQXYLkeeRwLbkra//Ez79pedOMA+//GLs1lUreKabY/KzZ51T/N9RbwNX3Pp8RAVBAdsrpmLKPOw69aoEDzQLmAJiz0wGjV8yAQqliBYkmwjsen/xJrMIgecmDcYjN4dwWBQg4bZHLenP2if3Zt7bXy7e/3Xz9qwZX32u/GxG9WXQxiKyE4NWLALfQ6Ic1Vv+IcwPzXY6bTofqQwxfLsN22ObqDc3lUllaXMIXUqUItsIIbeb+pPgj1n5WcV2efmvz7lc2z57ZyeuLVREBr8GsgiAsNsGC91fj1Vl/fTZtrvsSp3QnYT1omXa9NTkkAoGpMhkQCIe7QHn28YqA57EqlFwxFA6bmBrQDCpXjxUtHd1l91dQr1D/L7AzcK8QEZOQKSge06/gJQY2DcdeXuFAzhyyQlQwinDHVGAZsUEV5qkCGBAV4588D+TupU6+/+fJoy1+lvZ9dDBC7pfnL37t11559sQ3l6Xk2jYws6NjHh71TbONYR84BGtoJlVVlwX8q33MGc4x7eRXhEEF04X1/6hMv5/zVEqtUBMncEEYFIUEBRWQkWEjZKinXvP459h+sjz75vm3f/X8YtpfX947/fi0vwjtwkKoIYExpiZRfvnu5ul7z95+481vfPd3v/nmNE1Jw93j+ODF/d2+3FM4fPARCy1pZiaLqllEbJdeD1j6Ou3L2INptNubx1er8bvrB1NzfIftsuZ9vr4GLR3eYveXMEr4O7T3EQieAL3YAEIwVsZgNMWEWjA7odQSJhA5Y5hQCiyDmSkIAalBcZTKUv6EeaD5EqqcL/03iUblNdg9t0A5vFIlsiRWL10e9sGsaxEiDw5w554t2yna+9GWMRzTdsQoVK8mM1n4V3JCFFXhe/jb8gv4ntNj1d+C53Eah3HnxugkOwQIBZ7JBliqFJQWlmCT8Ek2HxvPvnP2tX9wca2rs6ft4V0LVB1NSXlQCaFdB+uGZ+/83j/5u+Nm889//St/7ze+oZPXUsTlB2/92Ev3fvRJ/6ntJjaL9e37tjhWbGaPCIIWSLPlsXv23ZPt07fz7uqrX3337//We16nv/xLX/g3//Jfiw8+YbEZNpcCEUKzeEC9yHICOrghD8UlZLB3aAUGJm9aUDSTJsaVmg6eUSqCITjzBK/YjqKjOyQSVKSiJv3J80CgAktoeuqx8rdEgx3NnUuDG54crncnt+zpEzHTAlLyowOul2zbPqUnMUYLDXgITNBE3HVfqSaRsPRH2JA0Ry4V+jX8A+ACGoAe4QnDE0tXTXsxnV9MWc3KzAJCC87JcIQCfOb9EDxG83oZ8pPf+o/PHn5wcbZ79PDs07/4V8bhWdvcg0+ee5VsJZfx6nf/0d/7W/+3/+yDi93XHl0GC0e6PrD2nWJXZVltfXExjX1xN0cwaxASCUMLQILFCPfYHlw+fP9rX33vn3z7arj1yUfvfPV/+r/6P/0HB/ziX/53tbhXq8rj77LscffVdvXT0FeA3wUb0aAMnwCDUQRMMcFIRkWJLUnVAE5IxkQwq5/okw2D9xXTiOUCMDL8CfNAAIgAXIFPwTP4/xO1AV6FRWrg9L7Gt9pwfnJKS2al0mlmFmGxhKRg1cIzWiu7CwQimHqph3eqdsOq+vBEpDRzqLLgREXdSF+j3rthkWovXEA749h2l6nb7PZsUzA8VnFLGWilggqoEglYSLdpHzn/xj9+57d/9eHDq9//zuPTj3ymDfs8jKuTFzX1eXc+bZ/CEWLzwiuv/jf/2//OO29/8Ou/8+1vvPHORd/D7Es/+umP3L/1iZcPTk5Xdz/6KXaHCNGMFiJjJPA9lIFHOv0IFq/uysVULt/51j/vsPN29X/++795+NI//pEv/aW0Pn76zX9cL94sl+80n/0C7UeIc+EMKNAWuoCKqgMJLJaEWFNzQyUjUSKaCFWMpuU6obIfSbhqcaIaahH+dVdh86gnoDkR/n8XQwSYNJj+EcOXpcfA71KPkD8KnkBkgbQ1PolNDUQIRirQSoGLchCJDGIPjFQHtoRbPauQ2W16QCBoeD6GITlRiQIVapLeh78nnQFGuXwH3wEuDV7GJmq1Dl3TGhK9hbs4EM8HBa0BEsNP5LE+/f1/+viD7bfeuNr76t/41Ku7x185eOHTKiNJelEtnovLlyd3b732yY9+9ie/+LMP3/nWt87PLi22u91weHhweLhYn54e3H05LI9CuwrdkiF+OHrmcgjWLptbr7z0+Z/3qb7w2iv//He++ejs+pe/9Jmf+MxL7fq4XL/XrQ4VTh/+/m/ef3139NFPxYMqORTgW7jTgzRCABw2OyMaMA8tkAguj0AlyqLaarm4B89D/sBCTi1jA/L/i1aG3OeZaHJm285tSz7nLMvl7gWauUyDMIAdraV1Mzvih1lbACaW/xD692EG3AOFek6thY5MUk+8a2aEgxYImjPYMNh+i7atMi6apaUWHAAXHKpUsLyREps1kMD4fALKiQoVYU59rqH3qQKvwrVEoAIDtJGegtlMTRNR77k3xkao0ADsoRaI8AwQ4e7+8Qe7p4/zmHaZd++fLni+vzw7fOUnVaeSe6/j8uSV/dWzUsd+fy5YXNxu1rde++RnX+iHqdTiHgOrsD69H4/uhuVh6BaiOWRm7l5L9VpJMyC2y+NP/2zoDl589sGnPvfZkvujk5OTl1+3ti37pyzPTl/56LPvfvnpd7968qmfPViduCK5APdQEDpoC+CGjDX3zqAbwLrCQLqqAnQMdaQ3TWEcx4o4Cg2bBnJE94rn7MwbOvA8IfVDiKF6PkBXvYyqhaogGTuENLubWt291pK95IAhog/m5nvgmnRZg+ZH0NwR53Tkw/kbQi49Q/nfs/5HQCcckmvxErYRLsEOWCJeom6cfS0pmtNmZhn6Pl9d1rZT9jE0aENFW8EMEL6acXmohxvYYJ7HgwOFhFCAIl2B34W+DfSAQVV+RT6FHgMAogUxAKzjaO14HJMDhjC4P6V3sAg5+Cp4b//on7A0Y/XR/bWXj7fX71uzUC3y4mWiLap7WBwF+e7iLR93qXgILUKy1aqtTAQtNN266Tofd1lijCG2AId92e+maSpGa9oYQiZLSKl95bPt7ZeaJ28zb2PXldhFgs2qbt5NNq5v/8j+vd/oH7158MrH6B34GHB4oLIgOAHAbsbZxBvoGwZU1cJSCrCz1EY+83qVQh4n5Am7S8XEhojTsJUxxjbYPE2v6pPKAIAhmaWbsSN3+XyxXaXACySwAK4yCHJHKSxO9wopwi3kYKNpMpvAAuyhgnwFfhThyEmqhQqwAbbwJ/RfBf4huILOpW8Dr4ArhBEm6Foz4YktUNdH+3ZV9qORigEh6OI6r06no4Xt9yV2OcZWRqgD1vAiPyOWMCdmTMikARjECivQHnwKvQE+lnoI0EA8RR3oUTh29ymPu03OORm2tCakJiDDJQe4NySyBQ9rtf2jd3LFNteYCqbzh+++3x3eulsmIFhMIa6KVwrGsGiXU39Z90+Lm7XLtLwdlmuEFNtVZM3bM1hoThfBYp6mxx9cVqVaqakyFx/7mgeoLg4PFsdHi4PV6tXP5ItHdf+UPmmaEBZAVD1XHVU1XjzV9FnwAHwCXsInqX8OlAI6Bidp93zkHxTkLAXTCNSN+6Z6JNtFa0qjJ2DSZo82Io6bh45Kayy1ZlSd4L3qABetsdAZO7E1m3mc8+D4TMebm5RBcwIiDwwky/OxcpvnakKWjeQe3MF7qOf0JqySPRDhUci0UTgD3wduQdfwK6jC0g3vkkvwNpFAA0OwYX1YFgd58yzQvFmkxaG1q5J9n7VNasq0D3GLcEKcOIp8ggp8By/AAsiCyAYhATOboSNuC8+g94EKVqCHgDqpuGr0sirDfZZh2NZ+l/f5IdPxyo8ttkBk2ApjCLcZXi7jlHc7l+3HHJGfPn44DtdrX6LUMm1Ds0LTheqAorVoD/aX7+Q8AClMB9XZ3T5arE/MULfPvJTu1v3u8M7U7588OXv4zsWiO7z84PL62ZNQxmS1a1GG3eLgqL119/jF++Pu6PjOSb16E16QWizvqDlynQMjyP76WRk9hiqMjFuYgz4LQUgLaEGMJOGSYY78ZUIZsdtAEEXiHtNp070XwlRMFkhDyYje99VH90yKIaQAWgXdRfpELwrGmGZZjZtwg3ncc3Z/ziC5G0CTu6y6vNoNxVbkAF4Ce6mACXPqoAxM0jmqwFYUYNAKKlQrr8QKWJPPaLfnlrEQGVqlHdOQ2l2zHCvbGBDaMa3L4Ymvjzx1T1NrZCvfEhuB5B0XiQS41KMWIIOniA+AZpYvASqUqJfk70MZrJCAHbCDr+EdzWK0rl3sd9vrfjteDqTcD9pF03RswgFtgj2S9T5kr1WxudgPXQoXm/7yqn76pZMYo9ec0oKWvPSQVAeQMXZeSy691xLXJ4vlOjVNnXZi6G691J7ez+N+d3H21je+/e6339w83Tx+/9F7j9486sKnX3/11slxnfLVs2b6Dq1rXvrkj/3IF39i3bY4/64OX2RoYLE/f0RLq5PbIYQ6eUhW/dLqZO0sLzBn5S0wShEeAM0EDhWUif1emy2qq2m5aCg+DN01HGaoLUpFrojmoqx6ESsDYTPFiuHGUgqQZ7bKPMry3Pc4AaJKBcjGKqOUaNE4J1EgxJvujYhANmAQC9RBjXykB9TmxpjhqkugCMknEivYFnwH4SnCRlyAJ2KGuTX7pjtfrwItAYzNtFhiuZ4ODprFqknJzI5IAx5C3wZ+mnipqhqjVQnvg2cM94QVsQQi0QCSRmgFPAC28C28hxM4ga3pTG27WMY6lTGnq6GWnEuZpmlvTe5CZGgZjGwR7pVxX2tBu7wavZcvg9zS7fsvh5QsNAIoWWzg2ad9zQN9KsOmFlvf+/jRndeMGK8eoRZrl2F15K48jRfPnr3zrW9+7WtfefTuO+89ffze+bXRHp29/6kX7xGB9LefnX3n4dMX79z7a3/9b/ybv/jJ8dm3F4vbAe6I73/3zWGzPzxoEVZ1mGozwgxhrnfx3B/sxOZGqKYCojtyj3GPfsR+hINM6jgatqENVq0f4aW4yx0xwQUPcFmVwQiawTCnVa4MjUAWohw3ZkURIiagN2Qhg5kK0FzKJhGqzll5RAm+ogXIgQxBSihVJapG0hGiGOAdeAij6lAmjvsW3DdNaZcX0F2EDKvATNIzY9OtN7CFPISIRTc1bV4d5K4rZBXPgb30gbSp9etFP0c7hi7Bh+QBeQAC9Rw8kWyeCIQHKEIr6BB1gByKQII1sAJ5aLqQBoJ53KeuxFRc1zGFEE7IRGvJjyD+6Hj22/31dWhv7di99eTi4yfx7u3jWy++HpulBavTnqsuhA51zLXQYnv8anca0+ELcXmoMuXrxwBDuwrtQlLJUy11sy+Xm+Fb3/3202fPctVQfcjld95/HAOC0Jf8628/ATXV8ju//s9+4b/ys9YcQaLnyvi13/rqwSIufvSjU57GzW5xp1HZzRMl4jykLaEAx/RGOlPJVfDCaWDfa8pgooRqKvBFPIF7cdTi0/5yGKahMEa4fBJKxdxE9FlryyxIhCqY5SMswYIR5IydVGAeDBiAHeRAR7ZkA0SXZjKUVBEaklIAd6g9fKYnCSXAG1kCFmSLkGAtNKle51LHwXI+CfGlI9S2iwgVoQJBRd43mtomXZBWXQam6IcHtWsrg4sJjPBRpZ/yMPnbRW+30WguIoTXaR+H7qBeiddUq5m/IcAnaYQTJaBG2BFYQYcB3gJWinLeBTTyUOsk0HggrVTXsKzmRa/t2VtfncqEZXf35Oj88eOmXd558eWT+6+lg7u5jjetfQIMYXncnLxksfU61JKnzSOLnYUutms2C2s6mJVxHPtdLbWUdD3axT4TorBKTZeax9veXe7V4Q1tN4y9BTt+IfEXOEub0cbR1V9NfQ/D/tkHh698zpqW6GGgJAMkKnjdwCEf5IQ4DBoGnzJj5CpiEmJAny+CvRK0LKWWcj6MNY+oBdGUocmVRWmOTZRZmFUhAg0o7iPZgpE38asSRZqgvbSBtvBAZoWBFBRMK6/JqxCS0FDVkCACO/jMaBnIjLCEncI6WEe2gqQeoNkIy5t9t706ur7obp+erNaHqUsglTvkRFkeFnAK2O5LasNqLdpCcxNDEewB8xolr+6IboFGEO/BJazJF6E3EAaGQzjkW+gxPMMd1eUdGYAJyoABJg+1wMimbcYaN9s9gjfNKtgitWY8Dsuf2Lz7zfN3vubpcMx6cPcW+rvHq/jglY+tju/lvB/7c2tv29TnskeZ0uLQyTJc0V21xrRisNAcMDa0SMa83479fuzHJsVuHRaLg/t3X4lIk4/RB6/DbpxqxSu3jm4d337vfP/Rlx587id+viIsb3/M+3NXaRr76Gd+9NG3vtkPeSo17y6n648tH3wE/DpcEmhB3gAT2QvyymkSHDUjV/jNOK1QEROL103/dsBqv+XlxW7fu8AaEK320CDLFqlQYYVGocgnqSHkmsUsuhCDQZBICBO0gTao2xuIJRWSUoFaUOTCsRA61DRzdg0mjeSlaiaK7BbstrggG9BEAwvowkYkQ5A3Z0/bzbPFcH1062hxfHvRLkkW927XLy/PRcCIUkKISOkEYUUkcUE04B46MKZkg2wXY4lxpo5Ptb45Ts+CFMOnxUuzO4FLaIRGqIAAO4YCimjlVJ1QWYuDIaSUUupL2O1z8TOvK1lZadsefAn53ru//h+ICzt4sHu6efrkyThNU6qr1VKG8eL9vr9KhyaNrCWmpZdc8pTaZVweMjTyoloYWutWsDD222lzVUrxqQ79ZVR/tIi14Hpzebho+/2+lDKUQnEYx1un68++/tqt09PbL7xAFLfkliRjubr18qvDkNPxbTW3xGbccYF/AwzgCRCkXnhIvMsAiA7ImQtyRak0ohaUDAGlICTm4vvd9dOHdnkFI5YduhYRdSdOFoICZQWY5NXl7sFQRK9OqloTgwDUGVAkr6CdfIKAegC63OEVEg3iCEbHGp4YIiVDKxqwlnYQXfdgp+AthCRLYCELMIAjLZoFMxKh5GYaahtKRIkxzzKW+93q8ZPj7ZmAHsDhoVq2JTM1LkQqCQEu+d3ALtiYwgcWnjIUwmcBwGHa7Ha/mXiU7MUmWBv7GIvZyDgCRrQyI2e1zYxKVC81O0qpyqX0w+R04+7y6hFtrP7yneMvbB69NQ0jD+5fXl6fP338waPHqe5evvfy4ek9L2N/8d6kUowB92vO3fKkDhuXxxCnemlpEawpeQhtMFjeXORhN+2vK9LQT3nYN8wv3VmR08Ozx5dXz4yo7jSL5HuX1w+vtrS3f/nP/vnb9058Gj0txaDS592TPE3Tdle7VR5zaVS356insA+Al6AB/I5p8+HUUK0ojlJQK4b9TBKHGWJDS6oOEi7LBTQeH+Jo7W3HCO8RJSPgUiYHaXB3r8HpJKAwR0rJTJ1ogqgRXlkneYA6GKAKOlAlUbXkWioYGEEjyCQatYIdwA1aCgtwBWtpgebACAlMYGtzXRObFBd9HUqpudTNDrmaK1xf4ekTnwYDTdDhcsWax80QY0YaZRQ6+oHFOzS4j2aw0IADeG4YgxDQqXRmj4LaiGqW6GCYue0Em3mUBizzwOnUT/1m3F3vry+udturaRh2fZ1q2y6K4N3yNKRb0+a7tZaxTKje77aY8mYYDo5ur46Opt3jYfck17poDsb+0mKbp16OtDgc9teQx/awMEneHN4dd9fT9mLqt9WBGGsZ8ziEGO8/uL/pp9cevPDmO+9uhx5EECrRC8H8Yy++9LGPfMSnvky9WjMLedpq98jMsji56lRVNG2eKR/QMuoVdSLehQf4s1qQC6aM/QA46oSpJx3tGkyIrRhnBSrWgtToqOX9Uxwdo2kRhfyhyBsxwHfSIBnQEJkwIhBVStQeykQUoFpQ57JFYpgnYkWRWSo5K48QHCxShNmNYiwa2JFb6+qABCZjIp8XlBqJBEtmbYhN27btot1fjzN/eCxed+bO7Q79oOIAFKEyYRxst83tSim24opoGFZkEkFOkIAG6KURmIxoQne0uBU9JRuaODLOHDtBJE0mMGEeu1H2Ou030/Z83O3y0I/j1E/jvpR6fT2miSlmYCPW4eoRPVizrn5RSh5LPu9r9ilg0rQ3WmqWkc24e7Y4fbWUUSrbR+/VPDTdcXIiLpcnL4gBqlANqZmGMW8v++0mBq0OlhfXqW2aRYy3Dg8JTiWPJcPCsmvv3br1qY9/YrU+SMlM2etkzcLLlPdnuR/cWXLJtXg1VcHXyrcpkx4BG/dJtR2HfrtDztztACH3KpPaQIOadqbvg8A0yDPWSx50uPeC2qTYIMon2E3tZZgH3VyYCBiXwSKRiGjmwBVEaAU31gmQeAhOxI2yFzTJpzJp6GMVYFVe5EUeZQBcSsSRK1Q1ZtEsQhSMPiMEHdiQwSyl2LXtYrHqzng5jzC4q4RaXS4UeS2F8uL+7GI8PAmHpyvjQjglTwXIr1BG+DGwkCK9YRiEa+qiOpMdxHYZ0IbYwhbgcp7uE+dh6AoUYYIXePapTn3eXI9XV9thnMahiPXkkLm4ezV41x0GmJcRlqZpGseB1K3D9nhhDad+8ySEInhql7X2FlLTHuwu3rt+9u08bA9v/0h3/FrxAq+15Ly/2jx50+sEhnG/LaWS8Lzvd9syDFdXV5dXl4BWy2VbC/uhaeLJan28Wi0X3TjtUgpmpGefarAw9vHJ2x+0TTftp2kaSzH3Aj9juZbfVr7nbiFel3HYXL/X977rsd0jOVRxfIj1Gqnj5JoAA1JEG1ABNxyd6uhEgWRAVC034c6DGJ2BMgPJJloXQmsWBTMKHCRDjZBLA2QILVgBoQJyeMl5mIZYfQZ5C1FcxeuMG0FIQqiYKYJhJtjdsNM5G3CENQxtCIuY2rZrU4pjzmOeEKaExr3WWr1UuM9NrcvLvNvZYnFAihjntj+sFfbIcK68NkINFHhXOoNn432La/IY8Q7CAmbSLD/hkMsnMNMLNHndT8O42UxX17unT3dF+2rDem1tQIJoXIQ8Tt+Qb0Po6rCrVXAPsMPlwtiM++3ZB989Ol2M/TmY4kG7OHyh5OnZu7+9u3q/Xd6O6cBVUnsc0kJ1ckMgx/562O/KNExjyfHw8uxZyePlxTnNzCzEZMonq6M7R0e7aTxYrwDUWlVzHveGgppRWbePnz2+9gpI1rYsXicnI2qfxy1rP00bL8taNZTri3NeXGO3x25SG/jKXR7eUtcqNWyEqaIfYYbacDMhBRwcKXU3qkIRKJwh5QwoWGhANyzBjhZCCpybFDfcqxFqwB4otANxhF3BFgytyuRl9HpD4ndVYiIiKisCYWQEoxTkJG1WwiBmrab54hWAQCI7WGuWUtM0TUKdsW2HZCGmpo2pC2EItVSGWuAliQVxlAWYMxxCC3hBLdNu3F5Zu2oXGlI6ET6mOhBrppZcyBJiIIuQZ71cVQETbEIdVfcqUx53wepiUe7crlX7EEO3aMms6sUNGvfXg6vtjm7VPPpE5RzM3EXzYXd9/uTttrm/XNwZp+tV+3EpDJuH26uHeVdWB7fzsE/L3kNjZortuH02jlcWosWODs+l1Lo4PN4OzxBiLrWWmppmvVq89sKtwPr+k13TLazkZDo5OY7RaAmU8n64fPzO138/JLNmGUIs/VVf+3r3vjvHfhz2b+dpm8ercfJ+KpsdLq857LnrrV2KLyElkCpVoUEUPKMfuL3k/kpHR4gBIQJRNEagwoMKgGok2DA0TsGChcRgsFn5r8AL6v6GC0HCKsIlg4uTvIBOmGcrbtmre2UohinAgMYZjIEWNCvLSlSd3RLhDBXKQMZNFTe7JUZrU+qKPDVtSinGZBarDharXZmG6hmaTCxyi9UCRIcZQou5HPNhPPfzR2F1EKEjX0YLxWgMLbiUBYQIUqjQCEzUpFJUJwYIE+qeKl2H09O6XqvkOuxo6aBbhuL9sB/cObkNI/e7J6p5v99mr6pqAtpkdZzGvpTJ99trLxO6w+745d32rE5XV1fb777v6+HqE+HuavON4zsP1icvuiD3/fXD8fq8siuVm+2I2A2Z4zA2bbdYtC+9cOv27eOry6uvfvvbh8vmtVfuNminsVkdLI9Pj1arpaZdtcLaP377rWGznfbTyUsvEQW1Vx5UJ69xv8f11cbHZhjdMc6B+GDJxtgPlne6ui63TmktagED3TXucfYMmwudP2adEUITDQqIXjIDAJoZSiFbYm69R6YWce65F2GEbWF7aKQ6scIm2hphCQjIAKgI2lSYC6pEr1HZY3CY2AQL1PcEVgmZJpsZcapAER3UjZyuQFlkahedfAzGEJKFZGRgaFLXdV2u41QLkjvLOGqlluEIjNCV/ALlwouRR03TmlYswdQaEUKVrWlrYc6UR2gPn1C38l7u1AIlixPZsK1t2DULB3Luw36zcnYhhqZaiu7ocu58L9W6v3q8315nTlBMhi7F3aBaOQwDtN5tz7p0zLgOYYjyp1fdr37jvdXDN86ucwz8xZ+7nZpLbS5C04R2GbppGnbjKNVyvbnONYzjGHxINr5/9uhrb735zuOrKfsi2XtPzj/x8umLtw+OVvfML5GPfMqhCQjp2fvn02YTUpo25+2izfk6t06qlGHfr/oeeY9xZLvyEGoDhKBIO151+53tN/vtLhshVxFKxW7Dp49wdYG33on3J/858+fNdcWas/k86E+DgdVJyCwEzoxrTkJPBsFgC6iFAjAqRLCjNbOoKc1hLAXjyOIuECbVGpUtmmbm0EwmvNFUB1A1a/CzgpksQtU8NqlgCjHERVoUK7XIq5vNDGS3QIQQLcVggdFHPXs6tau6DtfiHrVHnTASdZ3SyepwtVi0y4MYF3A6WIlGnkCjF6GHn6H2qNk9a+oMFXQ2QHIEwgf6lupSy4MulIw8iU3LJKhLLWQHXXuwPXuah4FdssqoErzmPKUmDsMEMDWHeSy78/e89HUsRc3VJn/z/bd/79vvnxydfuu97d/4Cz93uCghqNYyjdNmu7/e9E+fnD18ch2j7frhW+9dfOud68ttT1qVDlprAi82wz/6nfdfuNO4lbunDPnshRdfx3oVl7dKP9Bz0y49j24ZdbcbxmnYoL7C+jORl5e771Yv3QpNwwTlQnpcxG5ke33RXJxdkTkEXJ9xs+f5Bc+3eHoW3n2yfOGVfZyZRATJKK/VQSjQLSbAiCTOzcVC7cQtsAZXUAQcDLCGqBDFAIVZZh6qAHLxnCkEpyiFuVf5fLAbcgfCLODFAhaa30hxoAA3QoVSNKRoTQyRAHzeQ1NcleBMeYQgWrBGKOOAsyfWLTcxPuvYwTqVLKe0guJyjeUBQkukRBwDE909V7gYHNyo9qi9vE455u2iay0tJ0QijLDtXOFLa7a3YrO1fGX7WmoNviaRrFiIgRg3V3AZHChVYzJXcYNi1NBP65NbjKm/fC9a2V09PF6l61670U8Ou8dn5/vt/n/+8P2//Es/9vIpc9lNeRjH+PTJxcOL/fuP++2Yv/v+5nKfAYvBiisaPnE/7Ht898Inr28+7KfprZPleLrOw+GqbR7shw8Obp3unq5ik2opPvU173KdhotHZbynetyEw2DXZk+oEAwWZTQVY1DN6fIq7vq4Ot7GNG2u7PHjxeWGlzucX7sF3bld+0s1HWIEpOheHMUyg1VzUElulEEOn+cWImmQqMVcboERaECfddJm85AqBC9WnZI7EQwwn8X0QTMCxpkySxNZyAqKdMDBOmuNA6BIWiCj0Qy1eikll2KhSJimqZbqXiU3oytOGc+eoHgzTvX+C/vFcgOZ6tHQGwq6drJIWMRN0YdZ171O6PMeNkmsOeYpTUNrHlP0xCrfE1ewDJuAu+CrZAc7Z0DkY+2y4sIQgJxSktRfX0j0MkGKwaRq1DAMMa77flwcM1rYnL+16NoyXd6/tYwhLNt0vE5t1Ptn+0dvXB3p6vWXloyHt09Xt47bNx9dvfek/8Z7mzz5WBSeD6UHItGarC7hOy4JKfDJxfTV75x/5pOXH/nIiP7q0Te/CfDgzr3d2dNgRot5QGQMhlIdiKS3XTcVVqUpexvNGKFmyjWXcnUVd4+76o2zeOHQ83ooI2sVV+vJqM0F2iVWLZgYHUXMjugy98JSafOOj5tE5PnyJb/pJKuZ9dx4o75TKconFvcxeCFdPrs3IcCNshDCPCpygxjWGW96vlYCH/LU5uFTAIQZLZrFaITncQo2qsrl0zjUcSrjVEqh0YRSlDe8uFq88ebixVfKqx/ZLbo09CdTv7x3qy7biWawEQTlKnsW1YnT6Pt9zSXU2u57ekFibJvibpBYe/g1dA5F2stgI3PEBjygPwzNmdexTneDamwWqD7221JyYDVDCk3tR8K3u1IRiuf9ZpOGzbh7Vo/uLBbrJq0+eu/gdz/YfvpHXvn6N97e7M8XKQW4cv/rv3eW7GC9ju8/22b3MlUju0hR0RhEuNbJ1kkfvVO/9lSjown24LR95+n4+HpxdHD81m//2tX7j1xxdXRn9/i9ihxinIaMaN3JvVlHUBDMhZAnutPJwHW/t773vs9lCmXPnFUZ5Mi5RvOUbHJGD9sdNju0FwyN2hUimMEiovikenO5g0C3G8VIDyqgVaYZUzb5BC8QMQtTOjBVVNbBUSzNildEoIxmwYKRFPBcU0kOdwRyVrkEn0tjCU74DSBEJrMYU7QUylDyOHp1QKwz/9rxYf9BGkf0o/XZH18sv/5mt1oQsDutH/7YcLieVDNtD5fYIysPy+1O0xi8hlpsHKHSBoH0MpXtpjZNH9NWfm1+jrREO8B24IIhiRXNgH6CrkpuhIPQrmu/7a+veTN33OV+d3q/XezrN757trm+Pjl+sV0cBxPd8zi23cFqvfjMq0dffzi98f7l7du3Dz64vN5NVQd3T49TKEdNq8GPQ7Oto6IVV5O4apJXTVUrC6+u20/eO33thXj7O29eXdWXb63aJmThF774+amf3vmd3yhDOTy9n0Nc37p99s63RHqeilvJQ86jF5aS971XsZbRgL5vAprNFfut9zvm3lXopRJQZaiyoDrWCJZsb73bPjgdUpRbWA4eQ3InBS+egWDWmBVp9BotB1SXnG6wLCbGAE2qVcVt1i1yeHE6UDHsnVWRc2U805kJBnCWPsdzpRW/ocNSN8YDzeI3N9IqToEOiWqalFKYdoN7RIEkU4gWQkwugZrpIzFA83upevaUz2Srha1u14vzcnzCkBQMYIFPu8vFdjNtdgpoU4oAmhii0atL7nm8Ou9V9oeHA7iPiykdEuESaY2byYwTxGOGZ1Ou/XgeFBbL42m3reNAI2q+evJo/eDkz/71/9Fv//3/4ztvPxmHnWFbyza2q3Zx2HAqtdD40oP1ybr/9ttPP/X6yz/16U/+w1//Cpvlz/+Zf+vy8j959iRGMkGNqctlUu3CrCXLk0VaGl85PfrkR37k9c9+5t+5892/+b/9O4vULOLyJz736oPbp2F5+rGf+unf+rt/24uduKf1+uDk1vX5WfVA1GB9v99sdvtn5++fX+4QhthVlWh15WO7vSzbjefBieKAWKLHmkWXSaXKzSv51nsdqBfulsXCTo4shshZ1B5ymNMmyQTCTRXwTFRQcPNxQIZKrTXIjWDNtYyVIGUAS54tRPOomG40rM0ZDfFmTsjdiGA3yyjEG7mcuQckVczcSkk31CGzQLBCbqScUhVvBpFcAgEFMoSQWUyoDDTQgo+qZ9d1+ZS3UZqpgtpveP607MZSHKtFsqBI4zxBhiJN7uM0jA8347Oz6bLPsY2f/SSWd58gNuAanFtsI6Nq4eV1aeJi0f4Eeif7YE0Zy8G99c/+tf9Bd/T6+mh1sPQ6jWaDymVYLGFGJTly8Y+8eO+F4/PNtvng6eWf+9M/9ca7H7z2yv2Tey8tAlZd89KtW6vw9Hy/zdXhZRFsn6dHm3yyaI6a9ODOnfWtu6u7r//Y0WmX/lOz9fHp/Z/7qZ8Mcenev/qTP7Nopv/i7/xn50/Kg+VrB6e3NhcXQ79fLz11eHb2zqOH715fX/dTHqZYQ0xGTEnZx02tpcBlVJsoeB1QHGANs1SjQIQyhK99G7/3xrTqyvGxIkJ1d9AtNkB1n+AMiBbnWmreaDFIe+W2KnpJFN2pUnwunhBuRHVkPouPiPMyzxukEAbMxGeYKcgJp9mc6+BGvljATAipQJ33BNLirInk9OozUhxqLWPNuVSX5pVNMoquAMFV3WUWUaVdP52fqU7h8tJjMi+22fow1BqQmghMwYJiMKrWUkqudaplnPJ0cbV9+uZ+k/nqa800+DK/z9blDbiQHkOPKXjl1VU6vv2nmoMvGb4Z09WzR5uXPv2ZH//z/11bvzJtnyxXq9unzfk+9/14vMpTftYtH3hBjG0pfuv48LUHdV9Ovv7G+//gn/36Fz/1o3/qpz/fHt37+Oe/8Gv/9JsvvPxaDGl59mzM47oJy2RevLz75O764N7B6t79F45uP4jdqi1q22Vqbr356OHx0RqEhos+6ujTX/z5Zfsb//f/9OzhG93BXblUt8e3F+locf3Bo5Kzey2lltzkMe5yYc2eSyxqUs65VgcQY+DEUilJVQYiypyQ+bwcMUbf9zW6JrGYGRm8OmIxo8XI+Lw4n/duSlITFG78lbsLpln0dpboRoQXItfgN6nNjCkDmtfpaSZ0h5sFeaLpOZpAKUBlbqhJdZ78QEBIEUHuNXt2Wa2lZB9LmYpLiCTN5qU8gSSry0uRCli4zflcdRjj1YYWCXKqtYggU1PnLaOLFEOQVKe8G/ut52Hox6vttuvGj7wSXnmdq9UkRWiH+ibg4MjJa+Y4YBhW66PP09r29uc++yv/vZfe++ZrX/irI1bDbmP7s2a1WB4tr4b91fnu1h2WOtS6jfHQGIf+movVj3385W+8+24K7eVl+adf/r0fe+kEn7714oPjw2W3Pr3bxG61PMjDbt3F5brjUKxd7frp7p17R3de6I7ugCGl9mMvvrwbh/04gkaTmc6vHj88e+Pk8OhP/42/8t5XfvubX/72ftLh3fCjv/innmyHZ882IN0xZZ+Ku8ydsy6Qm9zL5Dkbas3F077akAmgIRNn6FCLLndHw+qodGuNvSJZyQwGKJgZLYUw73Jxk4lpHtYkgklQDQigGyWzG35zkeuG9tHRi2NyAoE2e6NKlIASqGAw1Hmf0A/uO+DNRK0KPMsrhXliev5xVoErIngNufg41Sn7LK6abmaqg6mYYsljGSan0Sw0trV5S2FEixCsQpMIQkOdvPTTuIwhGaipn7bjtNNUhykbyqv37fXX0sFhSamF1iiAZ+AKRT6yDGmaDu689G+f3P9ZpKSQHnzx373z2avrZw/LfkOEUkYL7fro9uH+0diXfrtfHBy7CoOXvFMZ+235+Iv3VuHtQL9zev9yc/H2d59szw5C89qz9/+B/2Q8vv1iSM20267buD5aNd0iHd565613bt17+eD0QVweNuvjg2b8yY//xN/7L/7JIuLxxfln40vydHH2xpMPvvP4Az+799pHv/hzL37ms8XD+tb9x5dPvvv1L59dXodgynUcfVQNzCFZdRRWVcBknbfR5djtpSGNTjhdqNGChRh5fCsfnZTFqS9WKAXRMcLyfL/TgoXObAFGOGRzChw5V0Z0eaECLJCCuwFgMkC1kkajeW2pCTbOmbmDcEM15mAKnLe9Os3mvZDzvPTNquzni5Fnd2cSRElmCcA4jgPkE4exTrnCmCKDhXlfrNEBqbpPtQyTyGaRmhCDA8VKqE5ZQ5kVhcm9z+Wq98vrTQJhOWLykl2llDrm8vItv3snrFdTZFUtrInTJBK+0tjWmop/8vj+L907+Jm4uguL7iq17ne7PPTIPWNXiou2WC5iCq7S7y5S0zbtOgTArcY47bZKzV//Mx95/Le+cb29fPXO628/fToRd15/sFyv3v/g0ec+93mk1pe7ZOrW3erk2LqjXa/QrJiWjB1ie3p6T1337PLpl376s7/wMz8Oo0O1bhurufjZ47evz5699NLrq6MX33//zbff/urV1WY7DKWo5DKVWsPYprRsEqPMVAvDwk9u12AqBedXZTdU36ecWcAUmrZj24WTk3B4LE9QRLdEnFTpJVoQhmAMcY1wMzsIi8+V/DCjPkQGeaNPgIQQMW+usps4BXg0b2XVWRxykdmYbZa05gwCPZ8PulnR81wFYVYFRpzXrhDBGARJ1UAvKmUcevVDlattGoshAGZGMAQBBvfoCo7U4HgVT4/aJkWYZRWHuVgrqtUKTNXLVC/GsU4l15KsdlAItRbsert14JGFoQAjalUfynA8FRvzyuLHY/PTaflT0SPSgs3CYdXrNPVeSmiWebi0PJSpemWTsFq0WSlPZdz33VGodWTqIpKrGYaL24frn/746h9+5fLx5aNG5bu/9ps/+aXPff6Ln//93337x3/8i+vbDzBMmvpu3cVuuW4O7rw0oMjiIjTr6iG1ixBx2OLP/MJrITFw2k5XhtqEduz3YB7z5o03ftvD71azYbjOeT/PpU+YkNyMQnWG0ESrwdphdZoPjqDCfo9V0kGLJ2CuaBJCZEhEQLNytje7rBAQhzHHWK2RWQBEFmEEKyzCjJDqIAUoEkkcb/Zezxw12rxwSgDKDEYXQzAoQjSmxBRK5BChcCOF4QDlBRY4yx7Q9XyrzA2iSCOiWWpCFyxVCTKD7Hmgo+bFYDPMRIiVZkQMYdHFrrGDdbx752i9ahnM3bfT2NcyuqpR5KzRPHrdjGUayjiWALVEAunoB77xvj7/MT85ZeqgQq9hP55s80fD8vPr7gtNOC7DRfWhWRyLsZZShVIcFq09Yjdq98Q035WrYGzaJWPe7frT0IXYIi4RmlBzmfpcLr/wyQdvnfdn13z2bPuf//PfvXN8+7O/9MtvvfG/21xf37/zgtZW99tm2TaLBYiju0N/cc3QoOncQVow3LudPvPZu0FDrZfT9DZRU4rRMNV901lqJsUc23bbXjGO3SH6rLHKinmlVxKQUwFN17SLQk65IFefiiijMFUtSATRbELoFduIakDFVBjHcYLJqsMWxlBRiVEsZACyfPyQ3Ck46DfTUnPj1csNL0wOA2rlHEjlghstBhg9cDJzYJ5Fn1fyzI0F3Ujwq8pvxPZ1s/527qCFMItsms9PjgFdEwxhTp0DY2CoBIAQ2bbBFFJMh8fd4UHbtDGEIDdrYtntNuNY3eSaSsmleMXs/VDYF01CqBJUit54N/zmN3Lb2YN7KUBjfYDuS8dHvxCa+5i2u2e/w5C62x9TWrh7rdUFhMS0QHVb3PIyGt5BLTEuDw5Pq9nycPHsg/f22+u7p58YcgnNOt0s3708OeBP/Mit33sTXuMbo37tK1//Sz/z2c9+6aenTQZijE1YkMGa9TGDLY6GYVu8ggyhXRTwV/7rf/HFO7v14tBik8so7RYHbWr75UEZ8n4qPao3S60P9otpbBfIwgoY96jbmEfLlc6YM72k6rFklQbFBZRaS66YCkpQbUphcFpkd32t9ckEH4uwGxWHnGOTilEcYU10Bp9QLBhMLie8kztluNkSFMDmhgJmgJvmOmueF7wRlJLJZ4nv59qEBZwVZmcAsXLGcG6kgsSZDXhDW5t7r04v0bCITYxxVpAzY0pAdUZaZIwWQpAQAlKInkpiartweNAuuiamKKHSzQnRs7tJMHcVL47aWGCoDFaKVDQWSe4VtdqXf29Rh/zg9nR4e/n6p/4bt05/gV41PNmfv1vzsHzwWXbHHprqXr1CNEuOQZ5DTEpLhZi6pju8H9tFznuaHZ1meGRcNmaTx7hYhbDo67S9eO/lo+UHi36X9KTff/mdJxd/83/9k5/7zIOPf365OpCruAcAsNAtDu7cuz7fWEzD1Ta4Ldbruw9eeuWlk8ODE3bHNn6wWKd2sczjfhqCs04q28vSNVx2dXWAo4qzrcOsb5rerN8ETMnVyq2WMI1xs2ub5NAEGS1WD7nGQE9hcmoUVxbqfnl1NnYLz8y7HvG6rwhxJQWNAGVJFoLsZiBMyb3S11IhAjBLAgpyeJ0phbPRyCWF6qo+75jRrFYUGHgT7OZGpua9OIDNRFmQcsEr3GfUgNJNu8MLao4WU2rMrFbeYIdCgDXBAkmz4BAVooUUaZjbt2ZGC6WWXHwY8zjWMinTGSR4qMZCgwuhBqXAqYpuKjBDQ+y24ctf1YuvvPxLr/+lk+Ofp1cfzsbrx7S0uv2irW6JdLHWjLkImLW1Sk80lpbh6LXW1RyNZSrT7nzcPes8VDPK2u6ECqUMXhr3cdifHya9fGfx5Gn+2OmyH/NvvnOWvfnv/PyvrBbLKecgKk9lP6TFIrbdYnlAr6Fpai75ctvcOvrMF/9CwjuMR9FtuWpd4xhllotr2XIVrYwy865lcg2Vk4PLiBJqDhVtmRrJSsFUub9qxpzXjaa9bXoNuYuwLumgsVqVS6mtzOruyjbXjTU+eon9KGCSEAuKI7JvLVsEawMWwb0uWYeI+7AWbAHKxdn7z3uKfXYWcIVp5ivXWsUYY5i3ajHcqJgBkt9ox0NUAUw+Q9YFqrPRyOs8qiSXgcFCCCEE1oIb/DncLLUNIdgMRgZaiBaqq1b6VL24UMs05d1uvO7z5fWwmzKDKVanrLJibp4YABNRkQvoaIytRK8f++Qn/+Kv/OVXX/6M123eXU27Z0amw/s8eokheRmqjc7GQK8T55Bc9kAhrF0cRbw+Xr7j9Sq1XRmbtjua8jBsni7gjIequborrCyuri8ffuTkpYu79pV33oO3h2s2x6skDWdniA0AixEyH0po0vL4OG83JkKaNlvrUlrcYtxY3YhVqTduonvJ0qRgbLtwPZQUOFN3U8BQZYExBUsxecw5lKrJaz/WfamPr61VLENsQ4dqbZpi9MQFOY1T7ePUrgqnGoMDCsYIym3qi5tj8NwKYKFlh2JwefRKlFOz1qwh4owxA4AmVKpW91jdqqNWywWlePZQgPDh8iwYGW4iIG+wQ3idl+7OUCdqhQpU4I6bHXMO1hAbmt0o1NwoOgEyMpqZBTIYAFS/wZYoh3bj5NilFPb9dHkxXPd5yCpFipVpHtwhq+eaa6VnqKJUQW5gcND0Mz/zhV/55b966/RBGc/LcJ2Ha8ZVaFdhfYch1ZpVJ8cOTSpl8vEK4zWdLMUDyUZ0msW08lrdlbq1fMO8358/jTGygYUuxDa1BzF1ZnG3ff8LH3213w3fOa/70ffjJg97Q4uo0LY3zrs4Q01NqjQVF1RcPo2eoqNFuYDtq58zFIZiQUCXhybEbRkhoQFcHCdt9wSmSZxk2T1jnFxj1TCwz3XMvpukYvcPuwa5DXAaSjCzXDwWG8dwsNb6YIrR+wlx3bqFmkIMkZnuLvcwTUXYh1ADj7x25suKhJrMg2ajUJHnWRVoBp2lOGvcVedUvSKozop3c3QjbF4uDMgJlzl9HiESvN7IYkGgo2agkGWORzHGlBLNHMUC4QwKKVoIATQyGMwCSJlZMJNzHPLQZwH7vXbbOoxFN7JXNqNi2UsuXrzUAdPopVZUD45Qq7X8U1/6U3/pl//6+uCkjJuyf1byaGnJtODiwOKyjhsweKl1upSSIJVBwy5vPjBrbP3AujUsIMawPEpwedbiSO6umoerOm7hYnOoMqmMgIcITB5S/cUvfDp/+e33N9XaVZc6okGItBhiQM51mrwWY0BRSICqWfD9iOVSPGTMwrKUvpZrw14mV9xelW1N45UPg6+OYw46G8p5D1fpM5RZJ1WHmFSCe/VaVetM5OFNO5tBiNFKhQvjWMNU7y991Sk0MEM8aMjGGEpKEYEuMzTGpZemFjMuI9e0IFJujjR7fKnINW8sN2OpoBxOL9VrKO6g1YKaXbXKATfYPEDooIR5vY0DjuckbbmDGcywbLU4YWYMjI01bTJYYHAiWAgIcNSppubDtHyGE61tmzAzUqWxzyNyY8wQ6U3bpEWDhtmsCvtcFpEH8bCK+2kQbGFp3a5eefXVX/jin1mvDsp4PW2e1HEXFschrUSP7YGP11JBXEjQuC/TB7IEDJaWtryHMmi68rKDkyqmkfAYF6oVXSl5yLA89BFhGnfVx5q3qV20i1W/v7y6fvzaxz770z/xs/+P//w3To6OY2rdWpVCr3U/kowp+jSLPXgtzlK8FrVNnXJol0pi/MR4/R9v9+9ZLMhpu8+breo1feQ0YJvdO1wWDJghnBLTrlnTZWnXxqZLqynuvBbVwmnMy0MsT+yg9gfH+eA4jFPdjAwpsK0v3Z0Wq7pcYb9HjNzHVGUx0lJqisNgpk6IkosLS10MZgQ8uEcBKOMcZGxOhepExZo5jrUf4DJQEz3U6iWgOhyoc9U2T6BVaBIKUHFDPptxSBcymcU8W5scIEOIsU0xtoUCnndraYGB88DITMI3hBRSCIs2xSYSqBVHtyym47Q67VZH3WK9XB+27YHFljSXQkyLtAhmFTKGEEJMXQpJ40Xpz6bN0zz1aXXf2lUetrFpVUbPe1gjl8tBatyUmsPyWDHZ8oh2FzX7cCFNQp43WtRpCtYotiE0qT2gX9TxulY5Jp8GIsa0OjgqteSiszt37n76lVdff/lVQci5Trl4ZS3N8eEcv1ULyDoNnPI816jVArktftA2n1D6xL58q46CT3tMQwuuomaHEL0utG5wENG1SI0Olt5EVLHkuN9f74YyVQlQVqk46naHK6xW6jqFeNOzdA8McdGGriGRx4LYNrKYq6pZMFoyzkooskZe7GZfImZihURJJYuyADK4xFpNrlpqdSNv9nwCqrX6VDybzCRQFSHIKlhm0SrOECL0XB12IvM8/yU285pQRLMYmtSmlCbL84LAYCHSCMhNFW7uqiBSTKtFWh+slwfH7fJ+u7rTrR60q7upPQwhztSPeZXP9xoozz8bVOemmsaND898fzXur5vDe3F1O0970GK78jrJXd6X6rAWDLFZeX/p456hYWjFgBAs3ocXlEFxaRb3F489T/OOX9LMgpSbZlXVqjpgaBkNU/9sf/nO/R//r75y2dy/dSfAqleUgmn0PHoMvpalVGqueax9H0oprqndsk2xafKwag6Xy6OfW9V/PJU+1327rKq+jHmVDKqyGFvGWBk8BC0aNQnRCFmuGiYfcpU4ZU0F0diYLzqsOsYIUsZANK5jMqUYjEG6EHIEshkBzFaTojG0DBEWg819KXcFAbRcBCjIEhRQCYeUSplXcxq80s14M1UvqZSSxxBYKZkMMsYCFqHQ5lGySZj8pknSuyTNzPpEBEfxmTvPEMxI0eYZWc7jiPJavVTNTHvv1uvbD149vffR1dFr7eJuSB2sASkvqvkGaqjTTDS6EfAkhXkFs1MVdazDhYbLsb9mXKTDBx4XZX8VMZE27Z7VqQ/NAm2n2N4wn2ouwzbvzsPqdkjNPFFi8xJW2yGm1C6HPEmM7do9+7hDLTEtKScT7dr9Chqb9lB1V4a3P/tv/YXw9NIsILAKtVaVmutUL8d0sKxTUc2eM4bRzSzn0I+1zz56QVqsP3UvfTL727lYxRTN29QkOwBlPAzBCScH4IqcSECJWrurSfuubEutY4aEGBVNTUQbkWJHnkJH5FJYAdWsAwXdAhiLBriJSyJEs5hWIZ7CGgDV98DoUFEh3JALAYkh0KPMqodag+gqpRSfNaJDCtNNoQV3TlMNRqIEiS5q7oMZZjIqBYjI4l4+usai7G7yztB5teK5uLt/GLXcHNFsZhN5rQjMlbXi8PTeax/7wt0XPtkublns5p2ANe9VR5QRtThIi5g5a4AsMCQE0itV51y+9k807sfd+TRO7a1X0Z4WhyyZYp2upv2z2BwiJDEIJnOI1qwCbNo+Faju0FLD2ElUnSqk0LBdxDLlcYKDcRVK62VXpsEWxwgK4IJNnaKHkPcf5Cf/4v6P//XUHE8fXCo7S1YtXir2PRLLHnm/p5tKgdynnLfbEJrc7eMi+W4Vjl5cLj8vX1R/RIuBNTCAt2lLsgEdAjEIF+AGCHATpqAu8Yr2fqhXMQGSUWaWwjKFpdnLtNeBBSDOGx1vXPcE1FjhKscp3Q8WQ4oxvhDSA4YDWKT30o5+fVNaK7uiq5CAKEayLS7VWnKtpXjNcneFaVbwsOghVaWpCMagbDWbEJrIQDhEn9teUpaKI9c65jrVAtUCoFbLU56mkvMkOWA2D6DRJaCQDb166tYPXvzkq6//9NHJi5YWgrxOKmOtFV6VB9RRXiHIIimGBgyc5fpqUR6qT7So3Jf9Ve4vS79DbMPBXQ9JXkJszae8v4ztEUPrtXoodMeHsERojFHTfix9iMlCCs3SvJCGtAgrA8y1AazkYu1a0zNLrcPEsDh8YBpzvyhD27Skdte//e8vVn+uwX15Qa3MGZ7lBg+IqZIqE2ue+sEClUu4uo5NSoumXO3jwdqal01XQadgMc5qKivaCRjmTrYwAbeAPUQGAQPQRfb0VYofuEapNZ4GPqA1NKfdJU5FA6YbYWkCFqBC1Gi2Mtzy2pFdxB3iNu2Q4cjCARmlCcrC1usul60qq4NBVcg1mqIXz2PxrFJ9yoNntxALqWBmqbItiHRX0VzjRRY3BACChWAWAQMdXEi50nItubgXEaFklsnHMU/j6H6zUQfBEGZIqDjj8f3XX/rYz53efb1dnIDmZVLpPY+o00zoRs3yPIu3GEAZVYCKminz0vvUSyWEpg6Xpb9WdQHN0Qvh4MUiQ75iuZayZmzHS60jECBHWNJm6XuExWEZtsmi2Aj0kr1OdJcAz2CwGOEptmvLGzSLsQ6hO2kXp0oNlUOzKu1BHdqIwfr3wLfR3EuSaOhaZfisJkDGdpH7cdrtkIs1S/XDtB8txGa59OHQnbQ1cGDqZmEmIZAtbAUlooBZGp+va5nTzzVAGgJuARZwQNwFXgIjGcAC7oSO4KzXA8zs8jzjr7EJp1Wty1kJLDUrrSKSkdZCjQDiNAQhXInPxLHksVbBDc6SMU2oxWuZdv3WFGMsshhC6ww+K+aRgKqTaGVUjRWwmOINiuxgYTgIXMIuqmdpXyy77yHUSbmWXDMoRcWFr9Z+sF7I6zQtjk+/+OC1P70+epEGqSr3Pm2Ve7jLs577rXlxc7BmbtjNM0WCvFTVwUAwqQylv3YvEtiu0+2PuawMO/RPMV07Qxk3AtAduYC8h4sJSGZxoVBhlmB1upYqQ6p5tDLMtM0y7FQL5zoWlWmZulUIB7Y4lFlql1DO8AhPbdtEanhq2KFksxDNVJEl1uzVcZ7dbNZhzrudRSK2Zo27+27QMMGdtiROoAoSaMh5UrSdp/cAkDupCCTbm3jkghktQA+IW+RtMcl7Wie5tIeuhaW0BQvRElfue4lSjLmIoc7rnUupKRl8FgvWc2aFkcGhGG+LUTyfplIL4ai55KKpeJ7G/f5st7ls0kET2m7RMsXQRLYWGotBFmUwSNWMxmAtUwOrCEQAWYCOoFVZLN0CrtF9qsWn9RjSWKDJae4Hx/notBweNGYvN+FPd/+vnt7r2dMuu+9aa+29n/DLvxO7+3TufvuNkwPyaOQZaWxkBQcZG5exXRRFueAG3/mC4gquDBdAUVxBYTDlMkgEy8ZlZGRJI81IM5r05thv59N98vnFJ+yw1uLiOa//gJOfU/vZ3/D5Fp+zxRhRmVuIAVLLsQFOqKySQBku/NzPACCdAUdGVVATcEQFRVRJEiqOvjNh8p2XqNyIwgqMqZawEhaOLRChDEAhJY9ChjLKEGxnCGdIVkEg1hprbpdqHEKU5AEMmgzRGZOznINHskMRTaEuxhPjct94Red6m4YUNaKxRoXXS2O3sVCBiHUUgtisgYic0xAhBpMbQbBFLtrZQaA+aWgVDcFUO7waFKoBoKPtdnVQVY0KI+h4Kd1hQIrQQ939DJUyBLRoSlUBaEEdKKt60YCwRuwnWSU+Fm1A+5aKS6GdgxqU5KM3LioxIVPHzSCDn8XLVBkht3aE6EMIoAqCnFJIbd2u6rpat03f5GUOro95X8u+Zj1yFi2pISAkUaPAqEpkyDoyBknQOEABsKAJoDZ2w2AOqKARpJF0Xvab3qiebJFgmxfc72eFuwL6q4ivIVnlVtiDJFBR5YuMCCeVBJ+97SHRRSPbWJUk3KAEAABh6RSHWLFfR79SETO4nI2vs3aMRBWO7NcSI4Ci60tso1+hHQFFFa9pjURKGZJFAtObmJDFeu5626Ac2zNlEWHVREYRHdk8NYrCiTXr9Y3LmaMA2XwMymRQuTb5mLTh8Ix54oYjyLMk4pu1hKiEIEoKlBVKTgFS02T9IRABkUD3a5wqHYACYK6KoFYhqtZIPQABSaAJgRALUFV0gAagK/MZ7SLwkC4WsYBR1iIrVRJlkRni2gAnWTRxIXImYOzm3l8/PPqXzfJJlpmaj2MdS+UMuriEEPU7lxkumjeCarJ8kJUrSYwCooliUIxAWA7y0SQbbuBgpHkv5Ll1mSUyrntQsGuMuG7Kg0iJiFAUBAgRnGoJtAHIABEQUSPAyphJ6XbzYiEba8CECAg7kn5e5DWATFOrqe5AQ6qs3DFovHDS7qJOiGSIjCIp2W7FGlURSDhK8qqKIOLXYXWS2pUgZf0tMDnHloE41hIbZU6pRgVClzgKiJGgsXPlhCgHa6CDIrueAkD0JFE5ARg0JRKqqJJFykxWJDCgWZbnZGxsl2Ayl/X1gn3LZEtQo4L5VOLpU5tecoNBSQArpyEmEEJrmCErweYiEBZzCGxKJGfBEeYF82Wih0AIMAbwACyqIAZUEb3CZ48IAGADyqAlgFUQ0NAxCBQa1BwxiLQsD6PMFLZBoug5IQNQSDJvTqt4YjGzee/eZGdV+fcSHkbVhvtNc3mAVwpz2dGOlamhAQF1hGiiBBoybEYmpphiSOCC0DriWqx3BOMNGY5Tr895AdaxsZ6oC0srABIYAHch3KECUqdKgxogAsoQustCF5ZOCjVggxLJslEA8Kpew23RuwpWJSAwGqsAKqwaOk1QtcssOnIFkOlS1gDd9Eu3n66aAqcACkAkqeXgOXpOwZQT05+KRAFVytDmiDYlH8PSkgvryuRjdGVMDUpmVEGZbE9VwRagpBBVkYoxsNdWjOsDGEM2pSii5AogoqIf/cKpSlirKWyZXdR2Vcj2jSGQ1mhuLJpdbp8/6NmXs9EoIaS6VU4IaJJP64q5gqy01jmblaMxkppJBrkRyVUKNH3EvmpSXYNUKoCURDtQZKf7VaoLgAxhhGQBVGQBUsbkfZwr1EmOVJs2PU3sEL0jYn1OmKtmwuWiGcz8aW7IUmYHtLt3daRy39hNBQNQWVMTLQCSwNKYTaQ+UglIFlkkGMuaQeKU4jqltugve5NV8C0glUVZlrEsk+tmMwipA5yhAFiEHBBBOhIZKhlQC7JWrQF2kAoAq+hQu8EORh0CslLnxwKiIivLJgiphs5OuZh4UUEg1c5hIDSOspJs0aX2uxw3IoKyqKCKKpMxKJwkcWiFGcmRzfPJNSqnqgBoILXSzlK7jLHl4JlXMYVMNTM5WovkQFU5pvaMhFFFKVN0SJ2K2AMwQJWKB9CMCmYGQnRZ1t/gZqXaaPImGxBaIpMEsmJorJOu9yIeyIABs13Hw8eufKXcvoSaRe8RRZezyBLmc5NRNpmW/b4BtkWb7w5QVBSZxEACqFSR2XNqktQAlWpIcmCo50zJciJyLGIVNjK7RTgKqVXxTQx1Wyc5jfpiFZ6sY5NECzoe5kPEmeouqAcwdTQso1XKLNqYGdrY+BzoAHAE2AcYI45V+yIZqKJpAVukCWAPIaEiQA/UuU4y1kwFQQ1zndhY2jBuk2wPTQnYR8y6BD6qKhilHJTAJNSoF89QDtCBp4yCRShAMwXCjhsM2YXNgV1kEVWsJCMcUBkAVFnl4riWriAtgmTIliYroLt4EIHJEEk5XlhvXc1NQgpe5eIzKKDtb7vJdTBWJEpUFlZOSlZNIYCSEmgCSJiVNhsBoqYgEiHIxWJbbtEavQCgA2UFWqep5XYGcY0AiiWA2qKX97fC6hCJrHGAiEhZUaDNCRWFgUURFUQTm76B0Tw++iB/4+tmZye1rQinrNThpp0EyrNiY2yWM6pe9F9+lTKnHAFN1dSFmyNY1ayNqyo8SxJEzpOEOjztF7Ywgzqsq3AUY3LmxqAIBXATRUFY8jrA0sdapI4hqbYaDPlJWFgjOQ0sGNZVYK86TDqwQGuABHQd8TKAVTCgFrCPWlAX+gGPxHBRuSkReoAKEEAL1ACQQMcKwWrKVUENmAnQQDEHKD9bZ0mKiuAUMwTTGU8AggiKGWAfLvToHCBDtN3fGBQUCP4N8gUQtdv+6vob0jXIOg9WVYGDRA8qxuaUl0hWWQEVTaZEpKrKEoOCKhoFIwIX7VjjlCyWG7Ycoi2ARZhFkYxTW4DN0fTQ5IpBkY3LXNbHrITuBxDW5CWuEMhmQ1BBUwioxAvuPZqczEAwaGxQiVwJVt1gHP1KuZHQGpMjIUiUEMgVIi2wN9ZyZEne5KW51AuLg/WPv1vc+0K2vcsh2uHQRRHvgVDnJ2n+qP+5q3YyVhFAQcD5uhJ53s+nrLpoj9ZxpuqUfRuXScerMDdU161r407OUmST5Mek6hmVLKE2qV169Toifc3BeSuPg8pMZGCnZDeCpKDnqjExAu9YoAogAWwDAGAOGkDXoEnRAhUX4UEk1QTQgDLiWNEAWMAcQD6DYzKAgLYqHihDzAAdgtOLAkfspAZQBHCdHobAn8FcDCoCJgBWiN3yIgICCAB3tWgABCVNwk2rMYqk7r6gqqoowhJb5QCq1mXoMjRWBEXTBQCEo0jS5AFY0QA6RadkEUkhAgC5HqgCGQVWiSIJTa4dC9IUZC2QU+ogpAbEG7uJNkcdS2rEL1kiEUBqwGaEiqoJQDl1b/bkcpWxQcupQW6VjOkNSt5pZy+SbyjrQ2qVCI3RtAYA40pVZY1kqMNw99643ny8v/zTf0Yb16g/YVuqGoitnh8aORm9upFfHoOaz1oKcr6cH9XPR/2oMl+nY4Cho9LIqEkinNWBrTMcnaSJM7FnBm3gebOMSJnJjUEwk9wVEh+Xdgd0SLAKPPNsOU0Yr4jmLUfW2oekUS1SBkCgDoABMoCIsFJdgtlEHCg46AbvoQI+BAAgCzgAyC/ehQEAI0ICEFWLwKoewCIYJUFFAFZdd9Uy0FzRAKh2Si4kRFJJKh7JACwBS9AGwF2gPDUgGsUCwIFAWjfcrjV6FlYgQFBOwklFODWoSMYBEplMFIAjqKCCpJaQRAJzdzsVkS7nRiIgKalEURZOpLlyBIlknHSYK1soOdXu1cKiqsSIiDYr0JaoqsgJBoYytJkooiTggOSsywVQklcN2CkFYMj0hFvV1rjClv0sjPyqlVibzBrTA+MQyVgDaCBF4woiBlaVpFQMvvRq/1Ufjuf1i8N42pJxxTgzVxduWpgeyPKIiikaC0BKBDhsYrmYrQlnCU8QV5O8n1Gm6prISdyICotQcxXNkMGv04ezWOf2dgE7SDazAwNbRDMUQelN7SuVPolpJVy2YAo3zcg1nlJcSiKrSoDdgF1AsAC1SqV8gjhR6iNlCgQXzmejugQskBCgAMy1O48u3kBSx9QAngN6oIDaAOWgFfApogFkJYeqqgmAVTyqVyRItcpSKUA3kIMKNFUsUJNKo0SII9AJtzZVlfhKOCogkBUWiQ1zq9x9YVRC24WLEkvySNQNxQgnDg3HGsAodhCHpCySGgmtKoMAuR7ZHNGg7bGwcEKbAzlyA3B9k08QbajPYmKT9U02IHKcvNq+sQNyGZDlxMoAIoAMgEgGTIYKyv6ziygC5SgAMSiwKQYFCLdLjQ3lQzQ5GEIkEUabEWagCTCpiAgrOBr0epPtweu5Yq4AWs/j2SNNHhA1LDTO0TglIMr7+bWhmwHIIlUoeSOnPTt0OAWdCwRD0wyyNt23OHG0lZijmQ161RRfZ7ZeK0Op7yzAeOn3CcMQB2V+I4ezBHuNZC3PDJQZXCaTM5UWpEWy3RKl6hJloVxpWiOuEWoAxG6nUuYgEbQFPAZIAAQ4AhwCGACPsgKoQFh4HcMx89pZa90EcMpyinJKREB7QEuAcReoB44iVSegivgmHfsQAA77hc/dS0SbIguWGWKB5gZJP1XMba3Ji6SueiYpcEp60SZThYu9vBQqTgEByDghC4ocawkNdIvriAAokiR5bhcgjLYAa4GsABJ1GHUh60BVJJEtbNaHYswI0TeM5MoxZQMQBVIgQmONK7jbiaQOTSOIhowBUGboNtA1eQBlEWMyiRVKa13BAAgioVL2hoZgrCoiXYDZlJNCREpoLNmMbK4qmlS0leo0nj0AMNTbRGPVWIhenVcAFdvLdqzJSXxGhmjIDNYsHTRoZ4ot4TbQPlJMKYVIBuw42zPo2WvSNsp5nY43yp8DGLWpXIdHDdG43OznNxctt74SWveyqdAlBBQhq/FjNCPAAnSp6ZS5VjlTPlHYJpmiSYAJMSofajpHrBFE0qlKg2aHzJ4ioUaQE5GZSB4CnyzO583+uFeNexFwV9UZrC1ZooDwzJiRpZFqHtnFtFRtFLkKq3mlKeWEce2fDlzI7Z7AMvCJoVHP3TZsuG4kxQsSlQSNUVg6BR8VOCUApSxXEA4BNBEZSaIQOHlJAYHAFCIMHBRUOXbGBaIBMHCxIKPCESUhWhFQZSACY8GVZHOOpc2GNje23ESyohFNBhKRDKARQbD2Ip/SRXdTZGYAEAWOQSWqKAKk2ICyUUVkchnRKEnL1Ykr+phNFR0nb0ynlgGgEnTAboOuQA7CCWKI8/1Ynbh8E0TAAmaFABnxiFYk9vONQT8/Wx4QYW5GZV5eGWShfbKOzwu74wzWer8NE9IrgdlZP7K3EFfzmJAykySz4IwXKK9Nf3XWjI6q39rNbxS4XaU3B3rVWNzoVau6rLwae26b6g+K/C7ZSymtfTgO4cxQS5BSPDaEzm3mLgJ4Hz8mqgxMNbV1fOzj0pqtfn4HaajqQ7qfeOXjXt0Wy6ad1e15czpplv2sce6myobFgHgg6dBZ3y+uA1yOPAmpUmxUsQ15hrd6xSWBVeUHoT3N7b5Q9Pqkb98oYVsiS6hVokpiYWEP3JViCdh3pjsSEQJwEmHkJMQCKCwpdhPmucZGOIIkkYRgAa2iBRUODWUFGispQGyMGwABoFWyygkoM26AdiEuajEqR1PKhgIIJlONSBmiFQU09kIiEBGRDn+jgCqYmEXBGKsQVVhjzRzVGkitNQCUud40Naft7FGRDwEVlUERzcVMdged+DcahIa1VDO/eAwx4rAEsgpdTIElesACYpvnk63B1bPlJ0nDtrvey9uxe/6kejwLMsp2jZmTLnO7l5vNgkZIM8U16zrCWT+/buytwi1DXEfO9na+ttW/42jhcKtJC8A4cKPcDq15Z2NgUIdDl9lZ9VERDx29VIdzH4VABT9OujLYIygZXwwzY6ls0ynSSc8Ri67auo7nCgc9d+7MZtQmpAeqUIeU4pQlABLpZusRIVKqWDYcTiI3LT9YxcMy+2BgXnfupigDxL673HevF/SKwZ6CDuhqFe/P/NtRFyw4GFw3qcehFg7dmcKcOHrliMZChymOUQAdFaCSQiMpIIDaXFRT8MKhmx/v+iHAEZSVjIiAsnSRCSCJUSFqa9H10ZVKXXkIwVhwfcj6lIKlLB9f7YCvqgpkjM0BSMCAJhAGxA7BfaFCQGf8W3KlRDakMdQELBK7YAypkFFwmdGRnz1KZx9nG7fBZF1gEk0GakAiaEQElajRa6hidaIs1g3V5GgdGAPKmlpFQolIADrIzDR36xjXhE8Znh609x/Wqx337e3eq0oPkIu82HTGsSk5Asi510eD/KVJcZtMHtOn8/pF9OvV+NnUTbaLV0/WbzFKaa7O64UVW8Nso386zIuBm9u2vbP2c4V3DFagg5g2olqGU4A/CTpG2ajszZ61aKaqEl2bYNaEddLG87OVr0R3AMCZA4A6Jcscu51DS8MmnXl45oiNXo6IIebnfvewOR1kbq+nJQclMDAa23s9umdw0PU1CDZdNrZm79n6j3ygPF0FSJq8ArBwEkmcuOsfckQ0IpGjIFl1IpxERJL/zP+y3cOhoMoC0BFnRLTrvHpQ7MKJwglQWdWkYDgCGiUA57q3dbA5UE6mQGdsOe1oEoiWXI5kVBWZhQFARQTQIVlQAVFCFBGyTmLSDuvVtUxSI2nNqoKQ5S6jAWT9bLAVlk+Mc2Z0DcmCEFoLYAG12xwAVVCJ65O4PgFO4owIm84ZBRCugXITlmhIsykh94q1cU2iP45SLz2i4sTxTn7tND6KMhzbPtGnef6q4rQNfjPbtXRXCTNTcNxMsTLgl8ufQG8jyRnzfLf/xtIfn6zeHWY3x7ZpQo1kA76wMW5FVKFPgpwYfkVSnmDT2jOGRwo7pJd94pjmWVY5Kjm2gBYAmZuk1bxtG39qyI2LBiGq3lc5UNmOOiTZCjJWbjJjQI4MZCE1wW8V8noPBkiXgmQcC0c9KjZRUNKK27WqmqxvsuHI3b02HM7pHacj5qgAioYhJaWUBDjBZ50yERFlVFJAUWGOzAmFncng35QJkABQOEgKwlGRQFsNVTciw8xkBY1FNJxCapfoAtoeAIHNQQRUiDJxJdqCbKFAaDIyGZIVERHu9CiGji3JrKKcAJBj29VtlZNK18q2CGKM07hS9lEAYWhNhsaZYgLcxPoYXUnlJiIgFkAOkD9D7VhJnJpFqg5NPkJTaFejgyDMSgVKUF9D1gMgEVeY3Tx7s+a2ilB5GDqJ+iikH4X0rpUbp/6hLZ5fz24pOs8AZKIuUM9XzUHVrpD6u9O8jh88Xqym+QTMUcuFZifTQcGC/WwLQOu26pXWghaqAxUUiT6OMrjr3IJ1yXKe2ZQ7E1ma2Pi2KazLnRDlBHtJDlmKqO3C1w4hihJCgoqlAj11eKW0VwG2mDeqdAS6RjhlqYKmItu1LmPgIC5w36aialYFn2tTxXqJ1Hc97wis2Rpnez07dn4hzAqoQAIEaJEch0o4dbQhZlERIAEA4Sid/IMGVFRYkgdJzIFZQEU4IQCYDDhJiopWhAHxIjdICBxDPbNZD20gtIAGkVBRbY4qJsuNK8n2gCyR0c+G+lRBAFVEhVU6i45EOlaDiCRE6vwWYwwIoXVock2VEZZAraai10Nyrr/L7ZnUJ4gGTAYSQAVUPhv+FQ41N3MiS/lUrQUE5UaTKIApcuQVJK9uoECEpdfHhZlNTQERzqVM5tzSWBmG9laJ916038spz3ALYOjMtIYfT+yNdfPpYf2h4mqn/x3C+HT9+55L0e0BnTxZHQ57l69NL+8v9lIiY8ZNekAxs55PPKcgQ6VtgAnjCKFxbkviF3IaZDQSyElYxSSpgMlpxiqBHeoO6lnNtSQda2bJnceKFa2mzMyz3OfZTlRt0xp1mdmzhKdisoBsMTqwCJuitkr1uZ/nOBB/GpdtXhooco0zJXFuqzAjcMI878Jg2O3Gk1XKRQTEc2pVEMkaRRBOEpgTEXX2Moc6hVpSUk6dV4Lc3dsUOIp2pQqLxikoyAVehlMNkkxuNCVjBFCFE1Cm6NE4tCXYjNAAkaQkzCwCxiBahCjSdN+pKiBo4gQX48iMZLpurSogOZcNWHwKR6AxSRFA8/4Qs54zV0RakBZ5DdK7QG+RVY4SW6nnCGJ625QPGRC4klYELbmhaoIYAa1SKaiEOrAv5Xgp8veMmr7tObMu4BbA5cwOmLNbm6+hWQi36/aD1ovk2svosPlI43A4Pi7osG56GrdZF88Xn2yUvKzFywH0L5fZ8Lg5meRlYb4yq39oT5s/ZC1yujrIXle9JpAQfUatmonRG6AGtCnssInPgz4M0bKWTTw32Oa2r1zNQj2v9RYPdvtbId5vEixbKm3dG789LGzmLg3snZZPARuUgUbf6ipxhnqbsDRoCtez1pzz/mr9oVn2Ns3YyERSquWTga76xW0FQLSqnZh2cR6hcaBJNIiSCKMkJKsACt36M4kI+yqGwNwVrwnUAKpCUBGEKKkR6CCLosKgmjiCESQHICl5NY3lqKlVFUVDSADgiqHNex16S7qQNhCisnRPnxIZ6eBGIJICIaGxSJQUjDHEyLGxxiA6VtZsbMIqtecqEsjakCEZkw0Rc5v1kbqwkblgaQtraCQsTbEBiGgMpEZTHYFsuUUmt2SJDORbYnJIgeDp0B2zHp778xfrEBJd7V9hc4A5rMMhy04/e0p4c1a/E1PWcsJIa/2wtDcd3jay4ePlnK5R+MjoLLPDT9dnI8Db/dunDRTuQZtesH2DdHvdruxh9biXjzbyr/fM3ajsuSFzKDAXGa4SZFIJtpmxAM9a/ShxbP2o8sXAFdGkVbCtz+qkrLdZC2tOq3b+eKaXcvGD54q0l/0VU2zNUn5UP3U4cK4kPnSURTZJV8ySuwHAeuGfP60/GrtruTkDPx7gRoRQwac9uwVglKywFw5JPIAh7IQ7Vg5oCTWoMnREz86gly6d1YVyCYBAQVFAUZRFWJkhBQVEcsIJQq1ECtZkGRmjKslXImDyCUsUULI9AAXEvL9BNhNAFhUWZlZl5tQdWiIJyaCipu6SaFAv0H2IasgoWMr7JBWxqDrVgvo7hJFjSDEyizTznCwWU3ADU04VhZSVLAKoEpsGCamYCHsApVSJRupfMcWWyXuGDKJj2+/aaiJPRT4UdAJ2Lxuf8ewcFjeyYWaPDhY/GbmsiZsGXzttPkbZnjXplv07iRuwzvvc2Z29nV/y1f4wv7xB0ywbDNPiif/poP8Sy+yw+iRIhfq5Ek+vDF6xVSoYV2f2LcBpbieEXtVHkZBsG069nJd5Hth7fu51FRmW3vlqd1Dc5Kxtmw/vmBtX+2XprvfyfNstHRTW26HpW/t8lZ6e+ncKvCt47qgJPBtk50aOm7TXxEkCVW5PYltnC6/vSa+NsHsUPzZ5v4ANVhd5odIAlgy1CiBaxaViMLjBMSoxkUsJAA0SaQcJ6v5ZO2+C9aLHQQwmQnIiSaTrFFJHdRRlkaQcUB3aTIWjeEkehQHq2MzAlmhz0FY0lcNNVwy6yq2KcPSakgh/JsMAkQMFvcgBg6QAKgaBUzDGCbcIaLMhhggaXV5aaxMBaiQ61RRZBFh08TQ3ueQjUcR8CiZDBBAPzKYQ6G0JM0XVuEJVyrft4LrtTazLUaKAUSQgA6Axjlb1DtldSWnYuxRRl7qM6WC23n9/qa9Pk9TN0+pfFrAR49N3zl6gdXcHP69CmU1gNgpzfcE/Hg55ar+m2OSptpn/6Pzx7fzyDu01eulkfX5nMLhRfsWypwbxg9V7r4K9kX2d2cY0jYCJR4pnAscObwI+bvg4KiiCsM1hz+IGwSrjayEkylubfZDb4SBfbJW9iRk62LTlai6L5eqtsekPi5nCAcPBwHnHsvTHCFcETJJlpu6ofjO5hy639+cnt7OvX9rZa4MXKURZxasKywJxitYil16fFW4Q4Rwlc/kYtIpwwbQX7caACFVUkooIBxACSik/It1UyVW75SAjAsAeRBENowFW4BqSZyISJfEsqM3KFIiiaiIh5qMtshkzfyYvRRVhThdxJDDacdlAu0ETADIu05TImG42uAPZAjkQi8aCJrKZuqElgLCKaQ1Uhhj09JOeLRJaQoJiSlmBtoDUYIqYDaBdo3gEwfENcVuUjUw+QEKIrOSga0sSqU6rlgb5m43fnwy/NbWvHZ/9k6U5O64yl3ojR/Nq0Xra3fmri/nzq/btPl5a8qeF8UKfI3qpaQ8X9cPMzEb9dhnebOSdUX5b0+Z5u8xwsGyffrJ4VoLLbbK+iZmFM5FV8bBiG7ggva56R6QNcZbScWld5h4rNIExs+qs72ejWzsvNfIja5eH6sQ+2R4UG8PtvnsNxQCczv3PBuUKGBK1JYAxGcsTq0HiQOI4JRJ4anG3tBOQGcN5I1CFxJImve1h7/J5+7AJq3FeqiJIEEhEoEoEpY91SvsImrmpgTGiBcKUvHJsYW7AkFpDBsmwMAuDO8G4pU0/UXTUF1VJATgKR40BOAEZUIwcQVkgI5OjxNjUatGaBoxDTmKycjQtB1vduZViYI7dnQsUEOkzL1e1ix1Kl4E2mkAxQUoqciElJG8I1RQqHgEJCbJCQrI5amiTKFI/xXV7/iDfIFGRFKkY2axPNjc2TylqWAIY09+DYgvNAJAkNmisiCgwkAMyAIh4VeDLQVaS9v/4+W8e1VJy/domWvPy7TIZfvQ8FHvZl29mX/tp+/DN2cNyMnnV/UagP5pOtst8Q2LMzRecvcQyCHGS0yWF/rV8fFw/fBFndbQTuPnh0yfr9Y5FMVbcZRuaWB+tDwbm2sBtRKE6HBysPxI6FTobawgJY6IMcZCnnV6/wCVmB875rfKqh9TrjUa9bxa25HQ4Sh94OuvlMIAryl80EBIsh9JnjlE2Elzb7U2Lcvus/jAHr9gu6vUEyaPmZfao+t7gPC2r2ao5vzX66o59CVUDeIes6kR1nV6MnSvgLpq+pRIADaDIMiUWVsWQgUMyosAq7Nz55u/0m2+N/Rttu2CNwl45KgfmOgVvXc+YTBURRCSJ2FYOnxXfnRbXNtuXTQxCNbg+KLreyNiMRVKKnLxyEhYgAsBO0VaRC151il1Gsos0KTMCKlK3fHVxhl6kkrt6pQWyqs7mFmJISQH6MXhcHxtO5FeOW04DyAfGOIAE5Ex/BzBjIYQIChwrNcbkI0VDxna8vTKD3H33o8V7p5FSxA9Pmi/26Hcewdh+fGnIizq9vP3vP1+c/OTBfyHBvjooJxS2Rvq8wpP1w7w6ETCKde5unNX9NR+18nxi3zgN+1LcDO37MT/aKrbeW9TPXvyuLbLcN2a7tzVr1nW93OtnpkxBDhfr5w/P5wNXDrLCZTPg3AchxEkebfGD8zQx5sOyyNDeHdjcuakzmTUm8c8y+3izh4CaY7TmOpnX1uF5SuOB/Z4hl9FgUt6+Ov7VQ//Jp8f/IqRTB1JatJk6sPeXRz85/Kc7ZYkUaukv/ZdKLtZwWOTG4O7CH1eNveLeAMg7BBLZzAqIi5yicFLw1hhRBKVT2l8XcVP/3EP3w920nMR7zAySlEPUc7Er6zela+uhITKEIqymdafFid/++KB+787JXx7W21iQ7Zf9ydUqrDmJBSusIgKalAHQonJXJ+ryXIjdSh+ABOUISIiAIqqJk0dF0QRdpA4BSEAEyakkToFs3n0wIvlqkYkCEgo7TapR8wGWu2QniBibmkPFYVGUORpEV4At0PYQDRAhWnKbSe0YTd9BtSj7Vd0U8OkMcpc8aoJ8SPMPz568Msh+cvDOl3fhtHnr/nw1tl96sv7NPr4xzNy0Z4Q3ZgEX4WytnJdxFtZb5Z/fKidH1Y/WeD7dBruOdpGqhwuzsS6NDV6rtf/ZtfFZj1a5jp3eFJ0ZcETYhJ5v6gBhkLPgJ4vYnxgYlDPN7jtzBfGsjn+yaGc+fbCOXDhwhJFPav6fMPwZgr/ozN8QHSC8raaf25dbcM5eGuXf3o/fA/pAqdgtvtG315b82zb1cyoAH+UwbtPaRFjI02N5sOW+OQuflDg1OFJQTZ7BCxhFRMrUZSx1sf1WmN+JzRYBIsk78f/6WvgP1/TS1dV2HZ4ioouTFNtoWk6qEoW7P7xBNUpxPnrRDA/6Lhlv6vzo0/Efvn76a7SOva29crj55OSD2Xz/7u7PqXTjIRczVXgRssNuagiQAASBQQHQIHaZgaScUFUkokQAEFBERDSInFLQGFNsKSvAZCIKrKqRY0Nkk193mEh1PTQZcozVIq4W85MnLncGRq4cQkbSZX6RjMnVWEd7RL9O+mhsy7OFO3hH3VdRFI5bdaeoUnz6+O27e688O1u+WE0+vzdpGuoN/+LD2ffXejoojxFeDf5pYvvJ6Z9sby3Wq1dqHud0rfYzB9uxvhUgjIr86XLfrkROghwdz6YTYcGclxbeH2RQ0Oa0N9F8HSkICGTBpddyy0mfKqzG+eedvZ30I4H3gUeoadHOT5qnTaoH9lJJfYCVT8eLGKfWT4tegv5h9SvMNwuszpp9xuLU/94yPUIsJ/nESwQeNxKnbrBT/tp5fJdkoZo37C0MKz799Py7u3Zxd/rnSFzLs0z6ACGlhfBQBYKmZ+Z+P0/r8o/ykyH6MsXKafGFwXdslr7i/yxkq3n605U82oVvqxrioXAdgkcyKKy2bsuzwl/+tP+jee8YmLYTVvWOzQ8eTt9/afHl8fZVQnM6+2i5PqjG98psUxGgezUWViBCVEldhxENIqJE1gtHlEBFOBB0gCZBIITOcvGESsrKIYU1J59EyBYAJMAEmILPcgL2moJIQFGJPlQraarF6cHJ4YtL12+JGkArYEEUWYijkFVRMnx96y9tDl87PHvv7PSfffyuyMTaERQRtA9vLVauXY5j+DTmX3v1r+S5++j5e9PsqfrhWbh32jy6OcCxm0g4KMVOza0nzf4x/u8v5uPBxqV7vW9eH33p8arJtLzU27KbBd7d1WecZi1Ydntb1whOVrw+S7Ot4clwgKTaJuiX/bH9xaFxl0buUf3fcXwygDHTZYaPc5pJyr3fzvV1wHfHdAcYKn5vHQZNWA/yZlr0Gv7THZMteafVtA4HhVmnsLlO/zdAHricx9mq/l1Il7ytbT8pXE8BaxgEOAsKJiuH9tv1Sofu+swf51QKOoTk9Rn5ayIUwD8M88q9tXOwc3kFfUzY25S8P1qStHLmvwfgGeslH27ZCgxJhXN3vGXvArhYL+P24w8HP/z887/9BfoPfpb+l7w8elGZxaK917v+JP/jy7tfGm/diTGsfIgSU6zUTfAzSg2iAeWU1iBgbS6SEFAkdSsOKmyNiT4osxqALiUtSbjtYpMhzB0pSPDVgoUZo81ZAY01oqq+cWShsMaVhDY2C79ccFtD9PPFgmwfMBPMWZwGYQmaKsiACmMydSq9bHfUuzkpX/l9/G1Tw9mnUO7ITPK9l2nWa3Icfv/903OO/V6Mqfj4+GFhJ7fK168Uu4fpvjf66fniMO5/ZXxvYL5S0j9FORg6fvHiwd72l1u/jn66hA+alNmnL+DWTZzc0vkqTeHOa9t/45B/3DPvKa0uDbfBzGtJa6mNzMbyqcrnQtoOYWfdGOW6ih+giaVpDZRVmvToWq/YAtA23c/s3YG914ZnJ+18Yh4a+sjC0Z3+Nx7WV078mIzPoM+Cp42dmlEvb47jgn1pdfOnq9+8QrfF757Vjy4Vvj+4nrKtz0/+1oH9wdofsGKVFkZ6ObhVepYHPAvVnOt72aW//+D9v3n9N671p6la28yu1OKGhuapP3/ooF/GbeFsAUeDG0e8eplt5QdSH6/nqyfDVx4m8sejg9fMSzdOv7a4/P1G6xUsD/dng6vuXf+vr59/Z2twx0ChxghwTCeGBmQGoJ02DiprMkNDVhFVmIyVlGIIziKogKoxVrnR1C1ZKScmREBIqfarM5eV0a+9bwAyjh6NiUDGZMJ13huQzYzNFWyzmHHbIIeQJEEhJElt6zWlNWAQqKk/7e1sG1dY0+1iQ+JQFnvf+rf+k5/+4O+loVy+M9kcFx8/O83d6Ntf/PU/MP+PnKcPXjxHpHHfPFz7O1uva/V9Sdlu74uLs98ehMHx+XyZfgg4PTpf741+rc2ev/vsg0HR93Y15XHuD+zvvaV/kQavvLy1MzzVuA75vAmCNN/rv7RdfvEsPXu5/8pcT96b/XYKP7TOJu933Y5wEBmn1Atx7nExzId9M81MBVhFucpwWfCtvr3X5pOaX5zGYwEVTGtYtrFhaVZpNLIbS98/quZbG1f+zLX/+V/v/5eLeJjZTEL1NHy8Y+5dm/xK3f7hWfXJH7/4foGf3B58KUk7LK/N9LDn7hlN87YehaMsjx+3Pxyvbv1HV39jDFf3l38wgo10NJDybLL5kvr9UXyljme+aXO4LYMh9J+vi4eY4ql70y33AObBHk0Jfpd+VJ6MVrrsmeicLAnXxy9+fvr6ER59/6P/7UvXf7nLFPk0dyYYU5KxiISgCowRsmJo0AlfUF1EpWOrgqgxBiQmZk1eRIgUhINfAfiaj7CNsVkvZ8+f1A8azK8WewM3YBaiHEFtNi6GAmAFi+gDVzOTlUFdVg6qZVgum9L7WJ+TKZLqzqvfhBQ5NKo5shcONh8miF989c997Rdf/ejNRzcmg3GBjbvyhZsvFXr46nU63kJRs2Hz89hwyb/zyf+6qOpfufGFevVkmGwbqvfWizv42tXBr1r6Vx8cvHvv6p9tTXr4+M1i0t6+9rcLeddmSC9O/ZVrjc3zfv/wLP2m6ha4epnCRC9ZPF3FJwPz6q55/VAPirImeDgwq1HxxMeKaFqaheK6jgcK99HcNnYf48clvcTx7mSQ97LiRX1fUh78LabtFe0EPld5lASO/a2h/UtD+5uNLx6enEIDDpzLd3vxdC6HaP06LvbXjzJz7Gg6otPT+fNPVh8M7XBro3xte1dlS+y1uawwVK+U7hTitfI6LJwff/OgvR/9OzcuX/nu0ffvzx795d5WmbJYLVsOtDXv1bfbye/o8nUon9fUcgBjdMflK50/8R9n0g6w+blsFIy8DcsHh4ev3xkfN29/8GI4GV1SaKOsVAcAYI0zxiAgcwUyt7CLElUDqUsxECJaRFZljxo5VBIa5SgcRQLHVmKVUsW9HpD38+fnh0fqObnqpHxkd1+rThepTZk1Jh8MNm6YJETKPsS2CVo2wZ+enaxns9IslrP9g4Mnd65fufTyV8nYGAMVfQFwXXNNhRScHX3+tV/6rd/6b6q767+w9c2vDOzx/qd1ue6NBQPODvvXtm/84q0vfkQfBVvP+On3jp7eqisAiVE2uQhrM4NlgX8++n/+4aPfu7b3hjPg2nJ5UvWyL9ivfQ2wiRYPfciG5aCfn1axjoFaedY3h+Pe7fP4D6F64agk2wDdd3Itqm90nnC8kX2TJY4N/nR5P4W3Lo+ebZg9Y8bsD1B/voo8LW4MzV+b+ad919TCx+vayrx02cQOHzU/KPGX707+rvgf/O7Hf/+c8K/d/s/vXv7lP37+X//0wf+wgj8hqoblF7+0+Z1yMLi/+kfLI2uyu0T9/dmbS/9/bE+3S3sFNRuWn+8Pv03w6cHsnUvTX47Lmpd+PF0EuVPA6A7F5+c/sfVGez4bl7nJBkXxzeHmGU2/8ej5v+IrH5mz3fNVxrSd8PlD//7e6dXR9d5oyF+q37jPP3t6fnrtUoLsaOlv5E026AFzU/tPrRtYyqv600ezf7KXfattP4ElqxccJVfcQNM3xiixNrPoKwk+1MsUgioLr9GlUHlNMUrgvL8+fzxrH81XR9Uc+sNBXOlidNa/3qs/8W0b7fl84waYKPXiyep0XxInv/Ke63V7+GL/4MXxcj2/d/2SYDbYuZNisqMCXW6dJSIV7hq3qnh1+ws3fwHXj+H//eTdN67YD2Z1BfnWtcWTubtCetA8Ks6zanl25ab9uTR492i+H1zi+PqNr+7klxbeKkITzYDuofvZafVHNKa0HH//zf+vbk/sz9+RxaqfZ6tptjO2f6vGf+aKD6W2Y3JNSuAfZJwN6NJMj3O7WuL6sH2RZ2y0wPgda0fr9uVZOGvT4xwDQmtTvY7D6AeTvF55rsKzeXutjUeG3rzev/1hjefx3S/3v5Ekztf7T+M//PL0P65xLvLjvcE39/ovx5iOm/y9I3g5P53u/t687b0Z4+XtG6Dh8s6XD4sPfvrgB0wn35jckiqv87XpNQNTHpx/MFusBehFvW+i9kbb2firy/ZLLw1WZ+k8sNv/5Pg0nbzxyt5z/UkJr+3An3/64vfLekev/+xo9MHjY8qmpyowGNxNJ6Y67LvBYtyzN4qtR+sXz2fhS7e3D+u3R+2lUVEWprTWzprvV/7R/YN/MCzu2WIaE2qeRZ1Z3fWy6Pd3RRRIUKaYNFbrupr59kWzCC3vw/AcXuyuVwuY9PHEHN//+Fge5SNuagpzzvLy8P4DeqXd3trxD3LK0nrlF+H+w8Pvbq0voxt68U3Vvnj27NmzF4smfP5zX3jl9o2i7JtiaPtjVw7JWrJdnhpAuCtojsdX7lydnswXV26UGy/jtZPkT15/9Z7eWhyU/f2qcpSqzWZS1EXU3hf6eOzrjUvJ6uGRV7KZzeZ9K1fzDbDZs8cTt6PrVNGz+fz4mbWMN8cDk6dWz0X9KP+7RP/VfnN4GuNGviHND5bt+sboQ8/TxKSgD9p6zDqky4cnTxZ2Nuh/Yc07E+sC/mGSeQyXSthMwImfreLhQX2ayb+tuGPosearN4q7v9+s3ll9z8rU19tH9Uffj//tq8O/eWf4d8ZZc7q8L2t/fPh28BB149HT9av9/sQcfvrweNJL+/n/6dzGV+/95Tr92LunML86Ki5V+uJo+X6P9nY37pTF9bcP/1ADbI03Ddxy9Kc3t77l8n/vTP9wYyfJmdreZHdy792n/+KrV79195VfuP/+J0cPXl5uL3u94ynrGouZuFifyvPkr7TD4mNne61gU9XXJq+c10eHq48H7gtuY5wRv/vkH6/x4KXRd+5s/6ciEWhqe9dNb0vFt+lovvqwV7xiTG7H1+3oWr7Vlu0yhBftOiyrpz69b6ev5XW15BdxraNXd7Z6vzSYTM1Aad3Psz5baPJ2bAvzuo1ta13+cPHe0fIZzXLKUkjm7OR0dn46W1Uv3bl35+bLNi9mi7MNm7ne0DprrKMOpoIWyLAwqvTslXuTl/f+zLurlbMnw1/Y+7ndr3zjxf0P3n7rp+MvDjczOAlJRnWqsOilJTYVV3cn4eykzlJzefPlCfY+vP/TcvfHWdH/5L7++it/733+B4+aB2/c/oaNIALFELdX8XCUL7aL75D/d7z7HwUuj1KjcZ9bfK7meXq8QpmOCAUs6qLVsRmdwo8b/VDMVs8aZ1KJL7XtF8kWjR7H9FGDO3nx+fVyHxXKongQ37lni4n0Pjibjaherqq+bl0z91q/f948f+vxT5+t/9Uv3v6rz/efDDH7jTt//b//8e+8+ezgP/vaxu988P5r927G3ccPHx3dvRLe2v+wVxx+fet67Vdgm33/Ya+pimkmMb1+6S8IFYFfzGdvSnlw0lSL5kdr9/woPx69/PL27nfq9snO3vQHy3/++fjr+8dP3eD19uhN07/phqspnh7Ae2ej+Kr9elP1rg/7wx2ftXp0gm/v/+DV3XvvPnu4rG4+OX/n9uaY034jC3QrRQIwvfwOWQc6No4E2scHv3f76qalqbAHILDODbacbAy33DZ+fTm7Npr8nEo4fv6zrd03EC112RMRIuToVdSSS7FBEEIhhBvm67752/PDg+Pn+/tPny2eN8eLeW+0sbu7E/y6Xh+37crkhc0LNBYvFvWUjOkIiQKAaAfT5eEhrQ51ed5wbEP6R3/wo3fzmA8L4eRT8ezhae8bmaWUyklvJOtygrOPziRe+eKd8Tuf/uMGt8aDCFL3xqvjg0fw4sre3aM7W2Sd+4Uj/+l5qBMVKAe3p+YUvpqZH/bdFujbMeZJKt8szrmJFqPA5gCGlj5dnW8WPyXDo/6A4SikhICR1t6aQV6acJba063+FwfDv3IC3z1ZfXju319KpOxjv4xtC4DchJOXhztc0Y/bH1mr83k1P8YH2Xu//+Hp3e0ikqzXzbuPwx9svRjAeG/08+89KPZXf9ygnJw8/9zexox+PKJfwjC55r70uP4wrZaPQhiIpeXvrwuTm7FNwx/PfvdT/963xte+/rlfW7QWzGh78OU6Vgx/8LT+2c69bx02f5rPhtuDyaL5/nTcXrt87TGFb939lcP1zz5afm8yuTqsaDTFZwftdvHwyrXEiwdtO3hwsg/k8pgvwoNl+9bQfT4zQwkt2UyULW736cbzF//y5rV/VyQgZtCl9lNtXK5gQ6hiswj+3Pu5CCp7IpSULhASChwTd5MkAgmUQI2asn+p//LVvbufez3G9Xrx5Mmj0+fH66cPom84+aI37k+2jbXWWeOMMmvXFlBRUCIk4zS5nu9fffnPBoaCrqzr2d6t3PK17f6Wk+0r+VNND69vbMD6sIKtYgoi+zcu54buDHYH8AiW4fnt4m5fX9Gzn/3w+T/69te/NRy+Mhy//f8Dn/fNKRnN2CsAAAAASUVORK5CYII=",
"text/plain": [
"PILImage mode=RGB size=192x108"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"im = PILImage.create('dog.jpg')\n",
"im.thumbnail((192,192))\n",
"im"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"learn = load_learner('model.pkl')"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: total: 250 ms\n",
"Wall time: 48.6 ms\n"
]
},
{
"data": {
"text/plain": [
"('False', tensor(0), tensor([1.0000e+00, 2.6030e-07]))"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time learn.predict(im)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"categories = ('dog', 'cat')\n",
"\n",
"def classify_image(img):\n",
" pred, idx, probs = learn.predict(img)\n",
" return dict(zip(categories, map(float, probs)))\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'dog': 0.9999997615814209, 'cat': 2.603025848202378e-07}"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"classify_image(im)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\Users\\rafae\\miniconda3\\lib\\site-packages\\gradio\\inputs.py:257: UserWarning: Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your component from gradio.components\n",
" warnings.warn(\n",
"c:\\Users\\rafae\\miniconda3\\lib\\site-packages\\gradio\\deprecation.py:40: UserWarning: `optional` parameter is deprecated, and it has no effect\n",
" warnings.warn(value)\n",
"c:\\Users\\rafae\\miniconda3\\lib\\site-packages\\gradio\\outputs.py:197: UserWarning: Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components\n",
" warnings.warn(\n",
"c:\\Users\\rafae\\miniconda3\\lib\\site-packages\\gradio\\deprecation.py:40: UserWarning: The 'type' parameter has been deprecated. Use the Number component instead.\n",
" warnings.warn(value)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Running on local URL: http://127.0.0.1:7860\n",
"\n",
"To create a public link, set `share=True` in `launch()`.\n"
]
},
{
"data": {
"text/plain": []
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/html": [
"\n",
"<style>\n",
" /* Turns off some styling */\n",
" progress {\n",
" /* gets rid of default border in Firefox and Opera. */\n",
" border: none;\n",
" /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
" background-size: auto;\n",
" }\n",
" progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
" background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
" }\n",
" .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
" background: #F44336;\n",
" }\n",
"</style>\n"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"<style>\n",
" /* Turns off some styling */\n",
" progress {\n",
" /* gets rid of default border in Firefox and Opera. */\n",
" border: none;\n",
" /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
" background-size: auto;\n",
" }\n",
" progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
" background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
" }\n",
" .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
" background: #F44336;\n",
" }\n",
"</style>\n"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" <div>\n",
" <progress value='0' class='' max='1' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
" \n",
" </div>\n",
" "
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"<style>\n",
" /* Turns off some styling */\n",
" progress {\n",
" /* gets rid of default border in Firefox and Opera. */\n",
" border: none;\n",
" /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
" background-size: auto;\n",
" }\n",
" progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
" background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
" }\n",
" .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
" background: #F44336;\n",
" }\n",
"</style>\n"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" <div>\n",
" <progress value='0' class='' max='1' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
" \n",
" </div>\n",
" "
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"<style>\n",
" /* Turns off some styling */\n",
" progress {\n",
" /* gets rid of default border in Firefox and Opera. */\n",
" border: none;\n",
" /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
" background-size: auto;\n",
" }\n",
" progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
" background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
" }\n",
" .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
" background: #F44336;\n",
" }\n",
"</style>\n"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" <div>\n",
" <progress value='0' class='' max='1' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
" \n",
" </div>\n",
" "
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"<style>\n",
" /* Turns off some styling */\n",
" progress {\n",
" /* gets rid of default border in Firefox and Opera. */\n",
" border: none;\n",
" /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
" background-size: auto;\n",
" }\n",
" progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
" background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
" }\n",
" .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
" background: #F44336;\n",
" }\n",
"</style>\n"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" <div>\n",
" <progress value='0' class='' max='1' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
" \n",
" </div>\n",
" "
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"<style>\n",
" /* Turns off some styling */\n",
" progress {\n",
" /* gets rid of default border in Firefox and Opera. */\n",
" border: none;\n",
" /* Needs to be in here for Safari polyfill so background images work as expected. */\n",
" background-size: auto;\n",
" }\n",
" progress:not([value]), progress:not([value])::-webkit-progress-bar {\n",
" background: repeating-linear-gradient(45deg, #7e7e7e, #7e7e7e 10px, #5c5c5c 10px, #5c5c5c 20px);\n",
" }\n",
" .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
" background: #F44336;\n",
" }\n",
"</style>\n"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" <div>\n",
" <progress value='0' class='' max='1' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
" 0.00% [0/1 00:00<?]\n",
" </div>\n",
" "
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"image = gr.inputs.Image(shape=(192,192))\n",
"label = gr.outputs.Label()\n",
"exemple = [\"dog.jpg\", \"cat.jpg\"]\n",
"\n",
"intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=exemple)\n",
"intf.launch(inline=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"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.10.9"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}
|