{ "cells": [ { "cell_type": "markdown", "id": "973828e9-2682-47a4-8bcd-f60c31923fb3", "metadata": {}, "source": [ "Large Image Frame Selector in Jupyter\n", "=====================================\n", "\n", "The large_image library has some convenience features for use in Jupyter Notebooks and Jupyter Lab. The same widgets that can allow compositing frames together in Girder and HistomicsUI can also be used in Jupyter." ] }, { "cell_type": "markdown", "id": "7a2f5860-a87b-4b19-92c7-4e1459024c0c", "metadata": {}, "source": [ "Installation\n", "------------\n", "\n", "The large_image library has a variety of tile sources to support a wide range of file formats. The example used in \n", "this notebook can just be pip installed. We also install ipyleafleft to allow interactivity with the images." ] }, { "cell_type": "code", "execution_count": 1, "id": "610cc0b1-2694-41e9-a4e8-9bbb2e01bd7b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ] } ], "source": [ "# We just ask for the tifffile source; the tiff source might be faster, but isn't available on as many platforms\n", "!pip install large_image[tifffile] 'ipyleaflet>=0.19'" ] }, { "cell_type": "markdown", "id": "d83999b5-1677-485b-9b0e-6f6972778cc6", "metadata": {}, "source": [ "**Get a Sample File**\n", "\n", "Now we get a file to show off some of the capabilities. The sample file is an extract from a much larger file but is sufficient for demonstration purposes." ] }, { "cell_type": "code", "execution_count": 2, "id": "ee56c700-71dd-47a6-b9c5-1ad88cac88c6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "** Resuming transfer from byte position 51446408\n", " % Total % Received % Xferd Average Speed Time Time Time Current\n", " Dload Upload Total Spent Left Speed\n", " 0 49.0M 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\n" ] } ], "source": [ "# Get a file so we can use it locally\n", "!curl -L -C - -o wd-extract.jpeg.tiff https://data.kitware.com/api/v1/file/hashsum/sha512/ab0e68399f924484b96e2268e3ac277875b10619a673dcf3951380a5e5f0c9bb2b37139a8c522dacc0f40036fcb438a30143b69874454299af64ebb8062b272a/download" ] }, { "cell_type": "markdown", "id": "ae130fa8-db4d-42b5-8c6d-d941423b3c38", "metadata": {}, "source": [ "**Load the file in python**\n", "\n", "When we open a file, it just reads the metadata. Actual pixel data is read as needed." ] }, { "cell_type": "code", "execution_count": 3, "id": "1440e8a9-e883-4c7d-9628-65a18a4f2ce0", "metadata": {}, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKBwYHCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgr/wAARCACQAQADAREAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD8htP1f4h3lnq914kW4ke/DyRajfxoiXTqftBtleVDvG4xz+WhViFIYkECgDY8I+Fb2SO31jxL4jubi71aJ3gOuXaxwT+XdCSR41dgLjmJj5RKZBJPBoAw7/WbZbC51XTrqyhOpamZLmbU1gaEBt4ceSPMkjO2RCyfLtyQhAQkAGf4Q8HeOfEGpt9k8KLeLcmG1kjt7wJAwKK26UhyvA8pyjKQ2FGMgigDLvF1rwvqWqW+qPIwuftFjdxxz+VtZQFO4lWVmUbWwucEkZUigDQuf+Efs2vb3wR4zWyM+mLJDb26Sq0IctvtPtLcsqhV3Mcb2l2DIBFADfOuPFelWWmaDpc8djDdQxxLp9gY5Uu/IIE33iu0+VuYswbhiNoDEAC+IPBtxc+G4vHaT2985Q/2vMt5iSOTzZAWYMxEm5UUgpjhx8pYMKAGR/E7xDpS32gauF1Ky/sMWAW02oEtUUGLJ2biF+UkN8x6MTjFAEcUryaZPqOkQOtit3EI0uYWCGeQEPHnkHYGUAqVLF0JxwAAa+laRrVg9n4r0LWVs4rRd8CW2vfZr+zhhfePNjQLIcyFmicsXIxj7tAHf+NdZ8A6bJJrn7RX7OOoXmoy34jEtjPcae2p3Ai3ZuJZAyy7nOTGsSybHf58gMADnYF+HPjALo+oaZZaNbxJOkF3bz3Mg+2lFRLSPz9xWMupKnayINiswBBABzWpeBvEE8ES3ry6jcM8t5cwQyIjSwq7lpdoBVioViwXcoxIoJKlVAK3i3XbzVPDUej6veMt9b3j408oqoygErIg52xkmRMA7UKjCgPQB1un+KJvAeq6dp17pmkXulW86OI9aO6OYfKWiik6hcp8iktjAbAwaAMLTI/hz4ltnj8jVcXM6m7S2sI5hdjdlSY+kbBQxbDD5xkHawFAGU/hrU9dubHw3JpcB1LUbwCG23JCxMjM+wyBtkRKRhVGMYPH3TkAXTNIuptJsdUl1yznkudRbTG0U2nMY8uSUrHKFMOPujaGDBpEO3ByQCXQ/GGjX8LaR5UOnQ3UiRSs9sHWIFJUFzlyWiXY0SNGGIcpknIFAFy28Eaj4os30fSNRju7N9o0jTre4DmZpJF4gyFMrBhJuYhcLjJC4FAGP4q8aaF4H8dS3vw0udQi0u3svsVtDdcXECFUE/zrwjFkJDLuADDv0AKk3iH/AISHWjFdeHri3WGJX0qIwxRutr5jsyxgKI2+8G3Y42kk4WgBbOCd5J9Fu9bgje1MptJprYsgVMsxAVCdrbQuCBnzFIzg4AMPWPHniLVNaHiPWp3aWU74jBAqvuAwYxt/1adioAGecUASSaB4u1uzF74d0drOK3PnMramsssx3Md6dC21WUFRzxnGc4AO40TxTrWpeTIviFIrzTraKCbVdStvOaKCMAeYqlSDtGERANxGOCckAG/rXxbtLXw3qXhj4a6QLGx12ZrafVLuSUOxSUTQukatuR8xKQW8wqwVwVYcAHMQo/jG6k029urWD9xI0Fnptqo3XSDLKGDfICm5y+CoPUE80AdJ4e0Twdc2dl4D0vVH1K6vrUXOqQLru9IgQjEYSJi0sZQMyHdkABQGXcwByHxR8S3Fnr2nPZeAbVdLSIJpFrdzXSWtzB5mwlVklZljEocDEg/2ud1AHI6vpd74Wtc21vPCtxbmCaWSH+M9Y9xXacYJBQn5WXJzmgD3Hw74F1vwLpt3p3ir7NAVsbi607RtZe3kSSEqsdzNEhZ5DvdVEbRBnkNsWU7QdoBbtrTSLy+sb7ULrV7qKa7H9pajDbbLOSeaEsZWZiXgWH5pCjnDKXGV3blAObh1jWJ20+5vdW0mXS7ua+s7e0WxdAIi00qsqrucxM75JBOHUBicbqAHeN5dbsJNS+Estmulw2Fkq2dhDJCZLm4VYzNmePCyRkYnKuMsQuCOcAGTL4gsfFGl3V5e6BiBGZIrmw0tXthLKYyWkkkYvbl1jwCAcHcVzuIoAp2PhptJ1W9bW9Hu7L7HbTXEOltd+Z8p3SRRsMfxADGAwIQswHOACZZLzSYYYr/XbOfTJJnuTqFk04l5AjWVkODIqvIxXgbnWTawyRQBTS68PXtjqd55JmeNVXS7GBiZbdSp3S+YVIZAVOIjkqGPIwWIBoaX4d8MSX8+sG8uYrTR7NZ7uCaEQNAi/u4pDuC75FkkQY28sCcgECgCvongrxVL4dj8U6ZdwXVpNM1pOsuo5ayuZJEzJLCpzDvLRlSQ27LZxxQA6SDVvB+j6fLoN+895qNzdafLPFcNKl7blYjCkEMiAgfvZFZWI37ip4JJAOw8A/ETxt4q8UHw/wCGE1/xRYwQT3+oaSYxPeQRQq8ks8aspjtniYMyMuGTzAqPwSQD1T9uX4V6BL8R9L+KWq6xq99qHjrQ7e5FrqM9ol/EVtVY3U9paKY4QVVdkeRvjZZHZCCKAPEtT8ZR+dBo3gzwreaVqNvpculXUN8kM/yytMJIUaMJsidnVd20bAAN2T8wBl6r4IvfAGr2N5PLpssMYW5sbfXbcrDPp+CCssPz4YvkFFcujcnGUIAKN74a1fwu40dP7Ra6lh82bT8LEwBlVTiRmbzlaMMAy8hhjOQcgBe2t1ea5FPrOq3kZldzqVtNerE7CLCTMxUAEEgBSM528Z5agCK3kvluoL280e7mEa/bL+TGZLaMDy13OhJQBS2IyBtGDyOQAN0bVtb16/tNC0+eYJa67FLpdpKilpHMcceXc7QojjiUqSu0FyDjLEgGtLc29hHdX2hrdi4vbRZZ5tRswAgt5TtRUAZXLxlD8xPzjcNuQAAbJ8Y6ra+BY9JsdJvlWbyrqbUbKZEksA/nB7eFI9pEFwhif96WVTkqMyMzAGXrett4q+JcOqv4ctLdNVTy47ZbVXaaS4Z8u23CmUNICSoXGM7c9QCnHqdzokVlZ2VhYXtzp0++zDWxnKQujbhLJGQzxjHEWf4m+XOSQBy+GfFDTNovjDV7TTNUNurTLbTJ5jWvk+bEzRw5Q7hwG3M5LKD0GACnP4X1mz8N3eu3niiO6litWaxtrZfMW3jkX5p2YgqAWBVkX5g20sRigBvgvV7PwOTZHxFDPYXtikFzNpkI8wiQKZLdWkVljKt95zySmAeeQBfC3hWPVfF17a+MdRe1tyWtyfs2Q84IZowVDiPCB2EpDAbVyMtwAPvdR0e6vZPDPh6PXb+SyVYf9CxcRzSoZWkkjkUAxxZG5cKSQWYnPNAGvpfhXWvFmiWOvWM1jHpl7fpbRabbgxeZEEdj59wFUugUMmV4B3d13EArLLp9/wCOfD/hrw9oNmjJeqtxcacqiSRJn+zlVYsGm/dspQFgQS24fMxoAl+OKWumRal4c0+4t7+y0i9uLbQJmtGLw6WzlEk8vGzdMAJCxIkB2sAMgkAit5PF3xR8TaJ4M8e+LDdXmsy2fneI9RlDw6bCDlWhLOI3BjLBi3LOojygQkgHf6T8aNVvNb0e20DU3a4tJEg+xyb1nhSPZcTyi2DL5MBIaQO7OzNuyMsSQCS71DV4fhtd33hrx1pk3hmbxPOuopBbvCly0kE55MyBQiLG2VIyouEJVy43AHmGjapBa6JdaRpHiqeZvLu7i5s44T5SGPBjPzuofI3swVQVIzhskKAFwND0+7stDg1SS9t41d7iXeIFubYyGQNArkGGSRCQVJBDDqOgAKml3954cZtWstbjhN3LGt2bjy5TExdZGIiy3mpgDkgZxjGeKAN3T5vBFhoun69caLqN1eLNfQXsN3CTZ3MWFaCROjRRfvBlTuRSVYE5KUAO0yJ/EekSaZpN9YxXdlJbSW8t7AI4beVo97rC0YCiR5OCWHIEe0/KWABDoGt6zaeLZrfww11PdXunNEzuPs8l5JI7MWfcSG3EAlSQjNwSeQwBD8QNc8Z/8JDc6h4w1aLUdS1JHXUXku2LtNJuVllUj93JGVAIxn7p75oA6zXvBHiWf4O3fi+916S/trMxp5Fl4iLSiLMeXli2Mwg86ZmDMysWYqBgcAHKPp+mR+IdP1HV4L20sLpY7XWHQNLNalAkUrruU4YBS+AAdocAnOSAa3h+abS7jzvC8UTaTM3kXNxZO8TXnlsI0kkCSI8EMjiBxFIdyN6igDc8FeKtPW/guvCEeq6jBoWjLea7oerWMJgvLSG5geWOCQYf5mDs8gCkoHJkLMcAGBc2fh1PE91o8mqWun3d9btA2l3rO6xTBSd0twY3BVwD8qhgH27NqlXUAwl02TS0i+z6NdXyXVmYoLHV7djJBKoWNjtUgKGdSFIO4FFBGQQQCxaG/l0LSpCo07UtIvhDFetEzuUnlJjlDZPmgMVVVwMgnhgeACz4v8PyP4s1x9Wmhe+s72FEnS6DG481MncyExhcqH2s28K+C2ckAHcfsy6TY+FNd1j4tfEfwXLqGl6P4C16bSkmsluVu7/91ZpPh5BFJJHJdsQ4J8ttjcnAIB5FpXhvUbi5k0a41y2B2sG8+LzpLiRWAkROPmPyEnJGQvqcUAdXog0ax1JG0/RYNYhstLeW0tbqCdY7yRZC3lmNTkMBjdGWBO3g4cAgFGx1W30TxPf6/r/2S+iZ3mv41gWK3uppBloAGK7gjkKyKCCqkA420AZ8V9qniLQDrSeDNR8mS+YXOo2Rl8okAAQJIyFEODgLk7VK8GgB1vor6TdtrmqWi6jaw2sc2pxW0DMFVhtU7W5aIYQFjggSDABxgA76x8AeC/HOl29r8P8AS7/U9Ys/DA1LWZtds/7Ms9GMc7qLdGkOZ1EZTDkqrO7BVO3DAHnMd/4t8Z62+geI/PguNRmeSzVmX7KkYUtIT842pHEoIQZyABgZ+YAk8AXfhex1WPVNV8TwrNHD5E0KOqRwRSR4Hlh42J5dlYqpZTyrADdQA3VvD3jHxFKZPEh02xMdvIkFlBAIyqJGsjOIlUZVlbezZY8k4A4oAnsItEmt/EKeEry80a40uNpL5Z7zy9xMyBbeKOJD5oLB2CMFCbRl2GQQC78NfC0uo6ZJ4j1zUNSn1Sx1Ax/2RdrJATLMZECFijIkTOTySrK+7CHmgAbwFplxos/iTStPntY7x5Ft7jxBujX7Wi+Y6wnAAkZ2TBbcuHOCpChgDuvCXiDT/DeoeH7Xw18LJ/Fmq7GmtvDcNmSkcUG95r54xIUVZ1JVlcSb4oSfMXeNoBdu/BOq+JLC08aXfxD0PULq9sYdR0Hwp4f0yCW2tY5Q7R28plxDbFQC0kKKUQM5JB27gDnfht4Y+J/i2XVPBOn6Euo6aLuC71mC8aJYxEZA7ojsu7LRom4BkQbCGU7cqAQfErx5pHimWTwnoFhcRW2j28kkVzatJOFuHEaqirlUjUBSN/zbzgkkBcAHHapd6j4rt1u5be2FxIsawxRWv3YooZNqs3DAt97OTnjn5AAAT3Ep0a/v9N0uxCvLZGHS57+F/OjhjnMgRA4/dyHYpDh8KquM/OVoAb4Ys5NdkOnaJo01z9jtTrGppCi+bHBFETMSzEAKEYBhgZGCQSCSAadtrvh/S/D91p+uaDNqkdxbvZaVFLq+yXSZnSMEyQABWClDsfADljknHygFyf8A4QbxfbWnh7S7PU9D1WW4fOu310oLWqBC8cmAFuCsiSkDIYqIowCwywBagj1ZbXWdLuPFTy6ZoV0RFf6dYW0kQhEDsJnid90fylDtG5dzlDhyFIBU8V/FqDxxE1z4iv7A2EFsNO06KxihgXMSJskkK72kzsQmRiz73ccigCLQ9TvfDGnTXGi+JdLS/bV7baqXKSXYYRSyKo+UIbfDOHAYhmC4UjBAA2x8XeGYdQv9c8P29zpWpazdSWMVvp8qxWdrYTqRMuxiZlfaWHHyhDxzkEAq658StLv/ABjLef6zTjOUlg02d4be4hjiRI2SNowSwILBnzktnao+WgClomo3lvd3E0N1biK4k2NLeXJd4wzszRzFWTzCVwrE4wRjaPmFAHQ+NJfDPibTYvE92Bc65p9na6drl1BfELLcvIRDdxK5UyFYx5THmMtF5hJMi4AM2A2Gvm61bxF4oFvMl1FcMmrbZoWEit5iExfO8pdOWHOCCQGOQAbnhifT4vCN74P1nR9J07UbC9F9aeJJ3kmaA7o/JidSXWWJHWMMXzt84AqxIwAZ9/dWXgq2W3+yXllNfXBnuTqtstzLJFL++EyvEqqCvy7RgOA4OFzigCHRfEmi+Evh9feEx4pymtX0Frqdu1qZYpYYitxkupDBWZ4S0QwVa3Gd2doAK2n32veEbRNS09orae6sSs7eSAGi2YLlFQlRtkUF924HDHHAABf8LWeofEW9j8F6NoY1O5sdMS8VtIcykvAjSytKzuuF27mkZGBO3g8GgB/hzwNaeIIb3xL4j0u6t9Hghnn0/VJG2rJMXcK4JQrs3um7IL8YBBIAAC9t/E3hbwhax2vi43Mcuopc7NPGyCZpSSzMjbd5OAvQ4KuuRjFAEPw5t/AenaJr3jLx1r108tvdwyWfhS3mJbUwWfc9y8cqmKPeqoyjDHzM5G0ZAOg+Dmi/Eb476p/whvg3SrPVbuTQ1tbDw5pFyLbz7hp3YQOWObuc7GkG/coIBA3KFIB5hFo1+LhNG02G61OK0d47vTDDhXuEBMiARszMRtBLgjd7YoAqaJJqXiOFru28JXkksbKdJltdPEsUrR43RyFuNqrhs8gH7ww2QAW5/DlvqsNprFnbz6bZzWrrPayXZaa4OSbhkZItkUYIJKsM7SflcA0AdL4QvvA/hey/s7wfqRizay3F9PdsJ2uVKlNiQlSqsUwQSu5A7/N3oA6Tw98UPiNN4Im0saYFt7zyksILuS2ENvZxmRWln3kkMXlUJKcumGKupOSAc3eT61d6VpEer6nqFydJjjWPTNYTyUQOqFTuCnzQ5JCliWCBc8ABQDvfhJ4Y8RTJpvju38W3+nLbXGbOS3mMTgw7meSEg54UYIUMAGUYDcAA3ND8PeI/A9hKtjrkflaoALhruTyZLhdhR93lqXkh2MDgMWY4HHzCgDyTxxq7X8Fjo9qlrbyRztJe3LX5kSa4MYC7MjcQFULt5+ZyM8mgCbXRf6DdreJrkdtLcwB77TIbaWOGIDy13AqMNDI27bkbAFYdQMgGXpnw/vJbmynHiLT7V7i4LiKGVpZWhG4iZYiAMKoGFYh2DoQD82ABmi3kHiq+mtNVeZ3uZrmSyIszcFXcA4Qb0yWIAI5ALBgueKAHalfal4N1W40jwLq10ttDI0K30EpRpu4ViSCU2gDY+QSrEZzkgFXRYJ0LWN1eWjxnPnw3qGQCNV3SMrIcrk44UqxGDng0AdF8O9Z8JWNhDF4p8GpIqkXNrewag8ciSgS7T826Mj5kV0ZenQjdkAHaWukX+n2N38WfAVuG8PW18JbK00TUxNdWLh4FBmG1slvMmUOYSAsTYb5QCAYfif8AaR8bfEPzLrxPqVnLZzT+ZrEtrpVpA01s/wArokaxBTMQzhnOXO1CpAQ0AY2ra5o954bu7CGV9O0i2uJNRsobLS4fP3uVCSm58sSHbtAK7git0yTQA3VlvtRWZfE2qySaq5jnvL7W5FheMSlnjmhiVRIWDEBwdwyT8rDDUAZfgn4aa546kn0nwxPpdxcJb7NOsdRcx3t7KxUNBZRfMJp1ZvlRef4scgUAbvw08GWL+NZPDfjtby0g0WKe81RrW1Md0IYixk/1mVSVnxAA6scMcLuChgC4fFWkXGpHxHc+GYXtdMjawn0WEOIr9ZVO628wRq0BY5L4jUK8OVI3kAANO+C1x4ykS68OeJ7W+0hY4LmeDR4v31sziYtEbZVZ4ZkVApQ5G5kwz7loA5fWZ9e/ti7+HOnvJbXfk29nqVmYZPOgRG3PEqyYY/NtLIF52BuNvABT8TatNpuiOviDRLhr0kJBeW6Oih49uJdzDDEhWVwAG3J1xkUAaWsv4e0fUbXSPCUDMtzp0MOrPHcpMLlmZXUo4jQDeAjOqAhAcB2wcAHqPwL+DkOp2CeMPiA954U0u9A8nWohGpZAAY9ls5M1+XKxBAiIFZss/wC7YUAclqVz4j0fSfEvh3W9Xvzp02uxNrUEtu1ut+/lyJGXjUKgKox2kpwWzgEkEAxNV8U+MNdvIpJU1LVNWuLWRrizEMsqOxYuI0RAOMjcdo2cZAAAFAHZTeEJNNS0g0jwXd3msavbwara21xa24062mCGTy2Vw/mQou5juYjBwcncAAebeHbW+0rxTPrEOrNdXNkwuGY2qojK6Eys0wRhEu5tm4jhioG3jABX0q8bSjp2oePXvLjTdO+0wWsWmX6Q3VuWyxAkwScnc3IIySAc5oA2fhZ4ZurrTbbxbb3+tWelaQBLcw6RchJ7sl2EixK7gbTEsgLryz5RUbkkA3riD4nfFa1Og3/iXR/DGj+GtKMOkQixKOyCRjsjWEHZNgL5hZlcjGQ3AABr/ErwX8RrGHSZfiD8GdbMk+i29zqS+NBNBNqM8QZGmt1YpshMYUExqARFhssAWALmi/shfFuT4QaF8U9R8EahpvgDxNq11Dp2rwCMWgvoYckM6szvFxsBwrEhgfuGgDH1XwbpVp4ek8E+Ik03Try01PbezW19JJYqkg3EwE8lk2hSuWDrOrhsCgDpX+Dni7UrqW38XzQxaLY6LDdRNLdy7tkbiOIQx53ByZN4WUx4WU4JBJIBb0vw34A8F6VM0MVqbq0vntYbr7S5SC9V/wB+D5gTLLIF5TGQdwLgbqAM2K58ZjT49WufGSTRTBJby3meSSSESOYzLuJAZDIuQNq7VK5HLZAOEuNJ1Xwr4t1DQdN0uWW8spZjFNJawyrPayDy45ZYhI+0oGCGMbj8+WAKEUAQeD/Ftx4Xkg8Ry3V3OohNrc3LSvLDeWyPte2ZG4ZTGY8K/wAmCvQngA1W0ew0LQreXxT4ks5LHUbcXt9bTXkbyWpQDyEZEBkSRkDRqF2rjyyTGSAoBzx8KaZdalq2oa+x09rYNOtrCwbdGWQgxOzMspCSKSu4NtwRuOaANHwpFp1o+opfC/jsY5N1pMtvl7mWNv3UQZgwWTJLKcgvgjIwNoBde08uD+z4/DqTRajYfa7K91KcJMqEKNrlCQ+ShTbwxYZAVtwoAxrHQ7Kzurbwvq1he3V6sbm2skl2FAyEgAMjCVnkI+XAwV2DduyADY8H6tffC3xZD/amlXEcM+jG31zS3nkkZ7NySbZ1UfKsmzPzhiM/OvymgDC1CK21G1mtNMsrKG3eYy6jcxW7PJDEHXEjHcwQZOxmUBeAPlViGANLUV0f+x5rKfxNcO0ht7OOG30t0e8tokdt3mqrq33IlCqSOQ55GCAZmpaOZ7QxeHYrmW2SEsTG/mmdlgEhYttOMRqxYL/q/lU85JAKkNrc2Fhp+oaRZuLiwkQRTpIpiuZNyybVOQWZQwztyQNvY5ABNq/jn4l6zYrpniC4meK9t3t7KebJKrGI1aNGJOVIRQcljySPvZIBp+HPCWp6xaQeIDOnlTTQWNytuViY3Ll5ESUsPmZxG75AwNo3EZzQBq6T8LfGGs6roGp6l420ix/ti1ukGpXWomS4ItZPs7xEQjzOWT93G2VZSpyAQaAKXxL8UJ47uj4p12yKvNamPT5ZCkUsYQYZBJEi/uck7U5O0gbmPUAl8A/E/wCGOsWGpP47sPFE2taprZl1i90q3iuYTp5GZRIZ3Ms3zBDgnICkhssQQDO0W/0Twp4wt/FdlYrc6Tb3LxTve24meMKu2F3QvlkfKgxglMZGdwGACC98W6ubK11ey1O5g1WZUs7m5a/ledzuAjDvIf3QYYJGew7DgA2vDN74e1x7Hwz48h1o2smoSG8n05oZmkiQSNIySSuV3IxH7vaQ4JIIZgpAOpsfE3hfVNH0q88P+GNNu9S0/wC1QadaRWLxSzzF41E9zKkscnmozSGOMIqLHEudwOQAc9plv4m8Q2yw33iY/Y9KEvmRzX6wi1IVzIq7iAMAfNjOFYAZIK0AR+JPEvgj4teK9IuvFfmaXpulQ21jdaZpumxxSXjfNK8CfMoTc+QrNhMtvIyhDAHUaf4Qv/iL4ivLfwl4Mt9bu76783TNDj05buCwjYSvlTcyKblljRgM/KW3MQMEEA7fRv2ffEHgrSofEetLpWltp1xcERPOkV9bx+Wiq0jxBmRV+VoUiONpkIZAykgFjxT4L+Hnw+0GN28K3Gp6roKzNa6lpFoFjVWZikspkmJLZYPhA2Mo5zl8AGt42/ar+KPxj8I6Xa/GjWdOmuvDC3DWAtJJUudRZohHPM0rkiN2wFYISDIxY5JyADPu/GureG/hdbeH9I8URXNlcpZyXDi8LvHmeS8uZ3UEoswmJhTOGAL4+8aAMufx3e3/AIPstTsPECT3KXaPbXFpabore6Lb3mU3H3WG3YAc7WJA4KhQDnteu/EU13rWr+IdRlsv7eewf+0yCxlSG2FvIgwDgK7InLE8sfmwKALOqWVjYX11rMt1Zww6r4ijup4Z7tAUlVdk23zGwG80dBywPPUYAOI+LPi3UvA2s+GfFWnajcXDYu457K5G6Ce2Mu85Axw29kwc8x5B4oAxvANgviv4l2ll4yjuo7DUZCDbWyPeOYztG4gsGaErubdkgbfQYoAPE3hLwNf+IdRPww8RSzWQuA2maLcRMcW4Khw0pKkKwdghAbg7cgAMQDo5vCviLwA8Vxr3i2wutBRHa91nwhq63M7JMx2x+ZJESzZjKFTkAKxJ4yQBsnib4eeGdBtNL8M+ArPVLkqhguru9naW0EkgEqupKrMJBGzjKL5e9+OFIAMN/Exh8PprWqi3huftk1sdNSykWOWGUybpfOyyuscigBSC6sxKtwAADB02GztruOFtVnS4tprZbsx7wkSrId8xQfvGCoAcqQRuJBB+WgDe8QeG7zw20kepeJoDbtc3Aj1OW2naCd1lKrKu7eDxGUw2Ccn723JANL7d4nWzS98VaTqkNxrFv5GuXtxBNGZg7I1vE3B86PaqlVViSM8gg5AM83nhzSbG08H2envJexSMbqO+kMkc5R2BjWNcMFJ3yHcQ4yVBIwaAI9RNzJJZ61fxtBFHBGEeK4Yf2Wsm4KMSscAhGZQME7jz8uSAaXgF9S8V2U/wz+H+s38/2wQzJaXutw2sMm1VUqsVwdjMQHjCBsyfL8rfdIBFBrHifwlNLpGoaxYzwraXcU2kXFtFFDaTpcDfCUhIMDyPAm5lCSMF5BBGQB/hzw34UuNBsG1eA3hF95txa6nrIhjvI0dNsEbohks5iJpGLtlDGFIBKcgD9J1LQvC+pX2kSmwtDf3CPa31ux+0acFn3rMtyIw8ioyoeNm4IwGN5oAp+AvHuneAvH1x4isNPs9TgfSpEW9uow6w3kgJa4Ku5EkiAMoYbgok37cjBAKfxG8bz362HiPTrl9Cm05RAkDSbRcSSMzIYf4zBEmMlhkbgSNzHcAec2ms6xpcN74c8MXTXTXSbTc2Iccbju5wDtOPQA55oAqzeG71Dm/1NPMjPzp8zbWzgLk8EnHT0oA1Xg1a+1myu7S6nv7qOJJ71o4CixOThEWRfUBOeOTjtQB7r4K+H9xH8PLktqVq8/hW4XVb+7tIXuLqzkgSecRR3IcxJJI/mcnKZAHLgqADxS1utWt/EMvm69FKkzGaC1tLmR47xt33cj5o8n5iWAHfGCMgG5qmvXmhaXHaae7XxmVHQ3cKmcSB+RGAzgKHD5c8NxyelAH0F+zj8CV13wDqnxj+K2n2ieFrqRPsHkSC2NwRlXSGMAuyh2w+VCnICkIGyAdfrfxttoFv/DvgHw7ZeHtO1Rg66bpMaRLKUGIjKdu4ugLlS+cM5PfBAOE1TxPe6hq0ms6heNFLNDsnnd2Yo6AsWC9NwVGwQM5UADtQByNrdDXL/S/FGk2sN9JC0tzYXcF0ypPlPLlMsWDvZSIt0Y2t82DlTmgCOy8ceHbnxhqHwn8M6LbNBo+lzpBr8czxXPnQRYZhtYgREq6+WAcgqSSQTQBPcS+GZNYsvD/i5ryC41+eSCyezk2wSbXIE8pcK0kZlwEPDAbmJGQSARr/AMJR4o1T/hMbK3tbTQ20W/sbyya/LCwmZnIfY7FyHfY6kbssx9MUAUfHFjp3iXT5dB03RJ7e+uNI2WxQ4iWQFOWwcYJQAScEeZhs4zQBt2FhC91pr+M7OS5trW4ElzbSIjobryNzjcCAD5ibTjgnJBOeADmviB4a0b4mfDW68S/D+9D6dpjSXVnbzsEkgCL/AKRbMP7xHlumBhghxyGyAcfpE+oaZf20trrE0N1YyRP9qlVljsZS6nIkibKqURCzd8FQOM0AWtSuvh1p1tJaWHh1pxD5qG6a6eQXsj/MjDckYiiQ5P3S7ZwcAYAAXjaTYxrp+k6ZfQWcmJbu2v5E82BztCv84Uqu1lXdk4BBGAxDADtT0XVdLNxa6zA11cSwxSXdlZ7ZBFFyPleN9pZvkYbRtdWY84OQCJF0Xz5oIWtbi0t4UitrN7ss6xtulMhkTCMwDSArjhn2qMjNAFfUri30yGKG0037FY71gInhcXUG3YzOd24IWYhjg8njC/LQBp/Dmx0ZYr3WNR8RotyXEMLXOBBegM4KqZIm3TfMpVBkruLEgBqAHSeLrnW4JfC2q3l0oFshjiiLA+YrrtMKOBucRgFVHlgsxIJHBAKOpQaTretxeHdEgjkUXKpDKU2RzTgCMIEwAFGMFiSxJOWJoAp2/hG6ub14vD+n/ZppZt+L2WKJY1WMkqku4DDM2AuM/wCr+bPUA6Pw4mueFPDF7qDeDba5kv1ZY21JEl2xxKouUEZ5VhhP3rn5F37QSS6gFOee61mzj8USWaWyakpt3WG4V1/cBTKMMpZXk2hgygjDPyx3AAEN7ql+NGml0MtqenWoj8uG5jEiKiqIw8h+RiRJMwU4HVuuDgAg8R+Ntaj8Pw61plvNY225VWGRMRJNHEqxsmAD5hVi+SxYk7umDQA7Rl/tmWWDwtd3V1HDpMl2tv8A2dJM1wEVkPmIgIjYCRsnITkZwW5AOU8ePceKL+Cexs1giFugtxJeI2QEA5CgDecZORuOeWY5YgG54U0fRPDmmm/8H+OLa6vru0Yy6Rd6c/2iFkYbfnAKBSNz7gwIVCCPmAIBm6341tba5ltdPszKs8rMkBlDBWdSpIYgFieMMRnofegDWsvCdv4C0i+0nXtTEV3HPuntHu8W8s1u7N5YCf6zPGW3DAb5c5yAC54f8HeOfiZqdx4UixJFd36IdUebbFLKsoVI1kdghUSS4IPC795OOaALU2geH9J1W58K2H2a4vNHge31jXNJvFubO7kiYhTbHMe8lD5RwXVzlhkkbgD2j4Mfsr+GNH8D2/7Q3xDsIZtAv9Jkl0/Tr69YXusSGQIgCqFSGHzAybgxIPJUDggG74y1q4vpklbTdP0y4lD28QsLnykto2bHluCzI8ZESKe5wMYoA88uXsZbSC01OGGOO6lkb96yhSFABYbWz0UjHABAx1oAtW1nd65pd7pyG4gMLJMqOd2CinaNu4bg4ADL0IY59SAZNrZ/D/w/qEPhPw/rVtZzXUkt/ClvM03mk4w6OyDyVXytyrkE7TuOBggF3SPh34O0TUNV8TGQ6XPrEcsl+13Kvl6fa43TsqAEsrHOCcEHCgHJJAItc8GeHfiVJYa63j5be10O5+2Q31w5ka7sH2HcrMozN50cmY2GQHAye4Bm6h4zT/hYtv4K/wCEesorbWI7yaWGazBcTFp/KIYZaNh5ceduR8zHnJoAqr4wd/iTrfgF9Pit4baPzdFjtVCoSiLIQQwPmB1G/Jy3DYI3HAB2enaF5l0ZrfQ3MMUYcz/Z2HlMqPIyAk/Puz0B3MCchQBQB5f4K8S3vwH+I97pGqQqmkavsDm9tSxSLcWgnaIEE7dxVk53KZEIOOQCvd6b4q0jUHtb+4VywgF79qZZUDXCs6xEsAAQZJGfDbTljnIzQBoWdta22jWdl4m8C+VZWkBkurtXCSFizLFLJtZWkALbSVKnou4gGgCRNFv00yW80fVbJb65aJhNNJbsyERJGUR5N0jjbKh2jDDcGwcggAj8OaRZJpqlp9Pkhk050a1trpwI5lKiNbhQjElpYFby1VvMDdUHzUAW9I8S6NovhKTw9HcPqX2nUCrwXkTRabZxmF47d8JtmlZlLqRsHA7t0AMjRdRhtLVI5tTgiFyJ5HkvHAuLkOMLGZHDjAAPzYbYSD1yQATyQ2WsfZoJNJ0+K3R4oJLK6Ek4MQy6p+7ABCKhdn+V28zbyFwACzb6/c6Xdzz6f4fg0e+1F20+zXR4Sw81XSPaEkDSQMNufMUli5XjigCLUotH0DXJxq0F1ANPuv8ARrR5kcxR75P9bgBZCXcqOAwxjqpAAIJvEmmx6l9ui161sL57YLPdiGeSwSANIDIA2+QNmSMB0C48phsYNkgF3xf4Ot/D0Av9Rv4xZXd0XXV49MjljkjZME7I5Sse1jLtTfufh8Lg0AZWsaDpmj+H4PEvhe6ksJV1I20TX0xhklZY23usWPlClgGJOBvA5LUAVrnwJrOnLeGeVIPtFtBPa7bjcrGSYLHkqoWJSwLh2KoAvfjIBah8X6lpUtpF4dRNYXT7qN7eDXLGKf7TcNuV/wB22dyZkcbSx3hVPQAAA6Hx38Yviz4+lvPC+uahpWnaLPfz30un6BYpAjPdOmTItsikqrRqsEbKFRWxGBuJIBwOv6KdC8Rvp51qe5s7aMx2i3Sj5GLZbym4AXduGceoxQBhWniG8mvH0bwUwt5L/wDctbQbQkrSDa2XbGFx2JwPbGSAdRb6LoXhbWF8K+G9Ji8S6lLNaKGhg+1PNOkZNwkIUbXgWQOvo6qGPAJoA+qPh7/wTF1LWPhxbX/7QPx/8O+D9WnuZls9Bl0aa5dYNhkAeOEL8onBjX522oRhRk4AMr42XX7K/wAE7RvDf7P/AI11fxP4qj0KTS9V1+8+yQaefPHlz2tjZhWCxiPrKBuDEAsSASAY/wAPPg74utgvxG8VTWumTrftcaK0tzbae6TF8/cZocTKCXVI1JKsAdisBQB0PxL8e61480Ww0zWNKuFbSJfsvkPqhkVgkagbQEXYpiCtkAFyPmJxkgHnYurfVFtLe7uluNixmQuoCptDDgnKnfuVu45OO9AFXw95sUTG9hKQzM0FzLcSHEQG9SuTkj7obPUHPIAIoAvaVHYJ4Hu7rTY/NS9a22QsHby4UcKSu7+Ffv8AbIJPU0Aed6z4m8Kr4v8ADfxM1q/ia6sVEfiLR4UaKXfGzB2jDjYwwxOAcZ4wMUAdp8UnlvvhV4g11dTszNFp1jBNdhBE18GeEI+MAhmjCMy9mD575AMj9n+/E3gu2v3S4u7jTNdmgjjjYooNxAGR3baVKCQHO8/x4HJ4AOmtL7wjqWqHxEmsWevajpErtJf6dAFMF44KKGBXDRMx3BgcB8nJ8w0AYOmaJ8PbXxjoH/CVarLpuuW0AKxR5kN5bIWjWKXeQvmOqsvDDjaCCRyAUfiX4u8afDG60+XRJ5YbPTpzFNYTqypPFIqSRh1PJBCOu4Z2+WCGIIyAdP8AEHwtpX7QWm2mqeFrRwZtJl1M6vezBzbKJNrJI3UrnIbA+VlyAfmyAcbpjN4lvbK08R+IdO0SPTLVZ01HUUu449Ridid3lxqzvLl2A2AAgEAE5JAMfXrawtm1LRrB1vRZTSRadLZmZ444wztIqKwzFnG9Q4BGGDAYNAFy08e+Fru2i8OeI/B07QW9uYbP+yrmPaCx3LI4dGEhVWbHKkfLlvkyQCC2tdYsNEGp6JdJc2I1Jo50iLRXLN5RzKY/vFFQlABuG5CAMHcwAngi0m1029qyz3RxI7xLZNcJKUjnIlcrtxsBjG9iTECXw2FWgDqPDej3EHhlPHGraFJPZJNJbafqWoW6l72PeqyGNJiBIByTIw4ZlBGSxoA5uHTLuB7jU/CV5d+YtwlvaT+cWkdZctGzlMqD5aTE7iQ+SNuACQC9A/ieHTJrfxYLKfTbTUlubkXEu24Uh13hIvvRGUmKMvsyVRsHKncAVtVvfEbeMEvdB0zzriK2jNszzkzSIEXY4yzeWpQ5KoVG1vlxyKAI73UrCTxNdveTQy2OmoyeVbqsAKmXexUkEu3mHdkgkk445NAF3wlb+ARoB1q8g1aX+yJIbq80zSYCITAbjYbyVjlPMETCIjClndMMQpoA2fDcV94ytrn4keF/CmkXunadqY06y0TWbeF3aJhJKhntXnQTMEQ5dVYNIQzFWwSAWvF+s+CtE0vw5p/jzT9S8Q6i1rbWmpGz1EiNHckQ26Ou5PLhtEThBuMkjKx/dFQAeQ6rrGrT63B4S0eIy/2GZore5tot0s+HZt7FDjIHRgcBFFAHQ+EPD918WLmz8LeD7qeS7jlEYEtu58qKWQZlkkRSAiu4yzkAFhg8gUAO1vwd4ag8Xv8ADdtDbVL6O9mszqUmpSorMjFFeOMKFCkAuuSQdyDOByAchrutade2smkeHNDitrTzALKFIWaaUk8q5JJOWzjuOByOKAPt79gj9nBvhj8BE/ae8aWd5a+JfEWoRtoMt3Gsks2nws6zKNzbYklkVMO3znySMbeaAIPip8Ybz4kX2oeHH+IN/bRzXGNYuIn2grJudIftHy5lZd6jAKqCWLAn5gDz63tdF0Px1f3U3hsPp9zKtzpLPZLLHbmKLyw0kbYznIYYwp2A9waAM74gaBofxCvbDVfHOm6pqsNtdST6dq2n600LzRSyq0kb+dE4JVjlWTny8KQ2xSQCHUvEPhuC90200lrezv49OWHStOW6kMsNlubDElAZGbBfBYsVHCjOKAH32lW2rWZh+XkbmKT7XAyGz2IDAdAuQTjg8UAVW07TWlEbaaGkI3vG5LEnHXHAJA24J5xn8QC7Hfz3ECLo+sQnULa5V2KS712o20oNoPJIAI6fN6CgDxr4o6HqMvxakjbTHxqjxH7JACGfdhCF3crl1YZPI4JoA9o8QeBR448Gar8OYdc0u2uUKz21rHdiaaAIwMXmKuWClQyk87MhipBBoAofC3wjefCPT4vDesaiAJLprzV9Tt4N9vanb5McSMyjLru3s4PynaOTzQB5t8DNI1aw+McmgXPlpst7u31EXIG1F2Mvz4OCC+zByexHbIBvfGXwLqfiXwPB450eAT/Yd328qrIVyB5kgU5O0MocnJI8w5A7gG14N/sv41+BtG0/Xv3H2mWXTdQuhKgBeOPesmXIwQCjjJwNjgZyFABS8DeHdb+Hd/eaPe+L2bTgzppULRSI7B22MYthwu443DLIQCWGQKAK8tzeaZ4dWz1nT5rRLnTPtejajBp1vMnnhi7NHKjSIkSl2VokKYwNyllJoAyhpt5p8NvqlloxWO2s/J8vUbRYIrtkLecrMqgzlHZMu2TkoCu0igCjJ4Wi0iQyeK9O+ytJZiWAGy8souEKyyqcqVYHJ288fNtBJoAvRyeZZX1kusO91ZKJhqQuyk0JRmD4QkFSxcsFXOAxwQRyAabXmu6Va2OlaLrnk2Uybkuvs/kiaFhtM3lry3IDMQCAUVt27GQDovD2q/274TmudWNgDavp6zQ39is04edmWSaJYyrCL9zs8rcud/OOGABmaQf7V8Y6t4c8N+LLrT7KK7+3amuqvBFF5cZZYWSCLLTyCKYqIkJyCQvHQArfEfVtH0DwdFB4VcQR3CrFHOt7snaDcskTtbbmMYdRvzk7CRGcsGNAGbP4w1d7JoYtUvkl8kzGzjQh2RAXgZQFLCTPmySZbYAQPQgAy7y30eytdMWHVI5HuIUu3a31AuIwflCyHYNuADv3DjP8WckAqvrXinSLF9H0yaewjubea1UkeUbu0Z95jdFBLIzeXhT/ALO04FAG1o19b+DrS4ms9XuzPfLlrO3hVyzhHBDSGLdCC2MYORzksc0AVta8dX+raoRHc6XpcOs6eLW9sdEhEMP7sbFMqMCqyMYw+RksXznk0AWfBnhW48Uy/wDEl8Esl1HpLqt1b2pWxS2t9qT3lw5DM67mIcrghmBA/goAs+Pb7wh8O9V1L4c/CHxHd32kz6NFZeI9SlkXbq8qMZXZNqqUiDlV2DO/yxywPIAS6/efAv4WQ31kiweKvFxf7HJb3Ci4sdIMOxxkZMLzGRlxjdhTgjGAAM/YO/Z4179pf9ozQ/AOl6Nb3Vlprrq/iCV5xHFHYwMpaORicBXcxoSPmAf24APov9tb9o3xbq/hey+DU+s+HrjxRFZt/wAJHP4R04x2NmhkKw2UEY/1ciRIpeX5flCrtQ8sAeW2+l+JfD3gPTvBkeoXudReSXUZZ8L9rPAKb25jVVVQMEb1VgpIzgAim8T6dpWp+HPBOrXcjTayyrprWySeTA4cwD7zF8O4IyobAKt8xwKAKnivQvH7+L7vW/DOrR2+owQiDVdL1W4Q21+IiI2Z2UmJHwB8rkE/fVgSQAC5eaXa658QdK1i2trnZotwLqybTYo3F0q7XFuZX2OESXeiuAwIycZ5oA4mLxrdx/EWXT5fNeSDSoLrTUtV3vJLsE8kJOWJBikaMZyMxqeooA6vxZ460jRrGz1a9uA0UtqbmaVFCsW5ZAPmI2sARuxgMMc0AZnh/VtZuI7+xtNPjFxaJ9rhjgtS3m2snMaswHIO0qSQOBnOSKANj4M65d+NPD9l4tvdItmuLaVo4rd9OV4o3AMTSeaSJIwVccIWO5ec7aAPP/Afwm+Nmi/FGy1jV/Dt/pTQ6isl1rWoW8scABZ9x8zA8zeAwULktxgHmgDb+NHiz4lfDvxXp/i7wpqmqW+jfZi2mvNdNPCZm3GVZMjZKw3chxkrjtQB6L8PY9J+JXw+h1sywLeauLYyWFnsV1VJWAiZlHmeRugmwryfKAMZA4AOCsPiD4qsfiZceArnT4ra01CBv7Hj8tYyYnj3Jvcf6zftH7w7mDd8ZBANTxn468GWGsWnw68Ravd+G7OC2S8a+stBQiaaeJXWcqCpdRv28jkDPUCgDQ8V/CL9onwppGnfEPwte6Jqmh30Rhe+luI4Ib0Mx+ZzcSKwMgKDG5T6DBzQB5vd2/irTbXU7DUrZBdaPdB7m/spZJpZLuQsIyGjby2IJJJUjIIPz7cUAX9Mgn05dQ8Ia5bajdQXdnbTxW96djeVIRLHcJHG3z5DfLHuLOJchflNAFfUvFmr2lpqIl0PZfyRxW9vPql5JNPZJGGjFuqNkF1A2b2wwBPyAnIAM/8As3QV0GzvLu0097g3CtMsjSq7qMK8bbQVJ+Vn3dRuzt4FAHSfDvR9U1q3kum1SI6V4dv4dSvbdUkimuIZWRVMbBGZdzLHnOAu5ZMgUAdKPi7baVoGvaNNptlEvie1hWbU7aeQwgRIfOVIcfNumaMmUnKsh28uWAB5p4Wi0q0v5Li61Au+pTi5uLidj5m4Mw2qYsvETnPmEd/usCKALd7oehWukDVNOzcyhklCQ6bH9nLKGZxmQmSXaoOeChxnYcZoAqzxavrGkNr8mrP5iSJaXt4JnC5DSBPOYnui/KF4ZFI6r8wBuX0Og+BtA/tvwr4lu7y6i8gxSLGDZ2Rl3gkbw3m4RgAPkAyMigDE03X57ewaS70NCq2kdvp8iX7RBZsqIXwwwxCDcVzj51OQMYAM/wAa6zqtvIVvr5Zby9naeZpZw+JGZmbzAcDOfm5zgsCDk0ATape6+NQGt+JNYuTdx20zfbEtlkdSdpDylem7dgMQMKM5IoAv2Fronw90eazsJWvdRvwX/tJb0qsceUMREW0FDncfnZiB2RhwAafw9GgeC7ZvjZ8RfDY1PTdPumTRtOv4Jlt9XvwVLxGWNhsMSssjHBxkDhiuQDznxJ8QtV8eahPf65aSanql88ai8uJneUYCoscYHLLtUIFYscYxg5JAPr39nPQ9Y/YH+Fw+JOqalJpfjHxSYoWia3jnihiZhJHaTxFsyRnYZHXb8xiCZBxuAODg0STxm3iXU/Fut3o1XVoJ9l5aLFFBulLSfvJHJxGMFy3DDOQSRkAGt8QfFPifRPDtleeP7y713+zwrW2rSQyNAxjt8HySoEThUTGSSArH1OQDI1Dx14X8OeMpvBF3fz2WrRzRul5xHBdM6KwaK4yTC5VgPMwFbJzjANACWukfEL/hIta1O98WW0mlL50OiEQhLq0dnVPL8sqPkMbMjksVbg5LdACpCr3mp399rvjqa+tdTmjjs9LRC5s5Fk8t3RyNsSmMFR8oPzAMMAFgDK+H3haDxwk3jxfDlvpF3pP2iGOxvJZFEQEZDmPgNKAzghT91mI5XigDR8Qx6bZadpmjQahZ+fKFjtDr9oJUjYRomBHKSThi2FXK/Mw53CgC7eSy+E9EnsrpRe69r9wr3Je6CSPEDtQKSyrGNpXCBlA49eQDC8N+JvGfjLXYNY00vbaPc6bNBczbkjeyIBjye3BGQQM7snI6EAk+F1l4a+Gfji60b4i/Hxb25urOWz/s1Li5WKOSQDDTSv8AIh5XoTjJDMuOQBfBPxi+Id98RZPhF8WPBei3c1zMUWx1DS4Fiju41lZHIZSpVj8pcckNu3MCQQDi/DGr/EfUPANvrHwf1i9t49Hunl1Sx0dVjuIJ5mBWcrCA0sRYBFOMR7FGPmyQDtPh5+0d8Ndb0i38J/Fvw6mka3ZyosHjK0tUu9sjFo5JbizlG37m0M0JViFJALc0AdRd/DPXrP4kr8Ofif4K0HW7zT9LjaxW7ub6YahEEEiz2k0ZzMrwozgZCEMFADjAALXjz4oaNNZ2vxT+I3hrW77w3pGtDTrDQvDT/Y7K0YQRsjSSyRvG24A4i5fKMHbqAAXvh7of7PHxh+HD+F2mvPD/AIuHiU6xaaVpwMkeuWxkjhTTIQA0dvdoonmQTfuWjAxhlO4A8Z8Y6VceEJ72w8m60jUTI8F1b3ttHZzkA8xGP5QeWRmbAJPKjaMgAZoWi2F9ZqZ761nlWb/iape+YA5dlCyxOjFHYfMVAwxLNvBB4AKF/Y6n/bEmhWGn6mtpbTIkOl6giwTT+Y3Ecu0gq7YYDqQpHPSgDdN5daNpEEumeKpNOna5Nxc6fb30wuFkUrKd6yjBAP3fv5KsykjOQCppU2ieFpprk/aNeuygit7W/keF1Un5buONdxykgchQ5G4AksMggGjoOg+LfiS2p+FfCttPqUun2zqkLafm5aFZd0jQBQHllDfvGUZAwc5B4AMma7s/D2kT6VaWttdXUrQSXFvcNIm1mQIGiDYLsoDBpFYhS5I+WgBNb1TxVepDajw7JaWFuzXE2l2wxDE5DFpiWJG4qT67RgjnigCrHY+HJby9s7eK4udPijuLiy1KZnhMsSr8iLCpbgPgEAnIJOSEBIBbuNK0zU/Eu281RNQFzG8t7PZQmK3tYlAl8zy1jYx7I43DLsHAU5wDkAyrDStD8Sx3uqRa6lzBpk0sdpBNCzZD5/eruAUZI4yd2cHacHABneIrrxP4N8X3Nl4otHt/syItzY3aF/tKqEZY2QMN0ZUrj+EjHUUAdje2vw5n1C48c3vj19U0aCeHEMsoiv8AUuE4jUKAgJ3LuO1UEZGTgAgHL/GDW01a0h0jTNZ87TbSF20lrxgp+zK6qLeMAZZlcvl2AZ9m7JG0AA7r/gnR4E8Ma7+0doPiPx14Sj1yyh1JIbDSJ2wl3ctwHfDoQkQPmkgjBC8nGCAeyfG+DTP2jv2u9U8RahZJZ+HodVl0yPxFHfRta3C2y4aZ3H3nkVJnUbj5uUVWLYLAGR4xsNH0+51/RtGee+8Mzxy6fDeXjLY3LWgmWVZFLZVT0Vgy5bPOBtAAMbTtD0LwpYv4D0fSVfTY9Ztry8W7ufOuf3YkUJcCNsQAgtlAnPCkk8UAc5438RfCv4f3Gn6Z410s62lnZmTRbB7ATNbwSDMQeV5ACgGCse0kLsBwQcgFzwf8RdI+Ki3OlaTq+qW1zIm2ZtXKq8TPmNLhJYht+WST7pXI3AggE0AMv/CXiu08KQeGL3x/qen6jo+oyNcXVxEjNIdrARzBZeQqfKA553EbTQBJ4p0G/uNDvo/AnisW1r9q8uyd2Jax2GNvIdugAyQ3J27ON2eQDM1TwTD4sl0r/hMrq7vLiyhCwXlvGYoZpkIMqncvzRkKhLAq2WbjBoAd4lujfa3ZeJbW7EtxpUaXMxu22ec7y7EREAwVPKjJJGHBOcigDo/AQ1GSHUtaufCsayyX5mW4YYgbdMkoTMecghWB64yGIHO4A8z1v9nTxJrXiuaPS9esGjmuX2zXLzI2WlKsHTYfnDttPO0nvzQB3/izxx4x+HVtp2j/AAy8NWevtFpkcF1rF5am5u22wrGY4nzuRSo3AITgELxg5APN/iH4L8d+D0b4rQ6efBt+byNbiyhvthLbNwlRQd6sZFYshB2lgflXNAHMan8WtM8T6Rf3HjXwVFqHiW9umlPiOK5+zuoI+60MaiNyWLEtgEgjnjJAO4sf22fEzeA/DvgXxV8J/CevQ+F3f+y7rXbKeaVIyEURNsmRWQCMAAj1bqSSAYfxv/av+JPx00bR/DXiR7Cz0jw9aNb6Lomh6ctnZWaMzE7Ylzk/NjLEnFAGj4W17QfDTWV94v0E6hp90ZJTaz/LBujZtqKEkDKnQMny8Bc5XAIBs6z+0R8TmvpJLuO2lt3uXezXVbVTNYZTY6w7SHgA3gjbt+6mDxigCxYfFGfxo95feL4Zr/WmiEWm6hpd0tuLUIr5823VVQrIABIxIbZGuQcEsAVNcm8Z/EOxh8Uf2MhBtw9/KdPhiEatOIYWXZGFRWYgAEkMN+0ZHIBlah4I8QPdXGmGae5n0y+Ed7b2ltjycs+4F2H7raVbhiVIwc/LigCnDcJZ3d74dkt4pTLEI0jjzIkThhuxuYlHOM7snpjOGoA3dOm0TVLKbR9H1zXbmTS4ZLiyMVwYd8G3lbaIgtFPl9oXlXjZmONtAGBFZeBNShS903WdTglFqDIyWnmpGVh/1SKzh3UnYu5mwu4sFKlRQBKQRpk+l3Nu9uGeS90kTRyxBy5JO/B3feCKGPHGRxkkA2PD8Ph+08IpcfZpLGG0sl+0XcliqiVisuDteTdO7LMr7V2rhPl6hiAcDrVxDD4dS9SyjhWS7mDSRqVYxE42A5JZPl4yTzvzxQB0nwX0DXdXtXh1G3iv/DPhoPrfiFRqy28EURVEAMxBHmvIYolQAksSvGSQAcM9y3j3xhLqF+PJk1G5kebZGz7OGbCqoJOBhQMdh0AJoA7ib+xPhn4TS4vZguoaj9pS5sXKOzKAChdUciMAHaMgncWIIMZJAOAik8QfEnxpbx6nfz3N9ql5Db+cweV+SsSAKoLNtXaoVRkBVUDoKAPsr47+HPg9+zdbaL4F/ZN+IS6xr88Mmmatrek2EytINmJLVRKqhWE7zrK0eVIQKeVZqAMnVtH8UQeDvDVl4K8OaJq96k7Ra/d6oIRaaZbFEfzykcioInzKPOOT+5YDBYYAKXjP/hKNI0fUZfAvh9NWspZxd6TaS6o0qtGsz58sq6u0ioY22El2BDANg0AYugS+DdJmf4jalZT6Zq/iLS3k1S21e7kO0LKZJ2ZAoPzrEHRjgkEkKDyQBtlp3wF+OviiLXk0ie6uWl8oSR6i9vHOApMcUsQUyK6KDgqVDBQNxK5IBb+GU/gPXdOmvfAnwzg0WEag9i7PaMr3bRI0oJdndshlRSh4BILZ7AHOeGPA3hv4f+K7zxz4q8Zh4tUleK3juNsLSb5dxd3Ztjuu0N8vX72cHFAGdo/gzWPg54c1zXPD13b63c3FxGdOggV32wJI26WZABnqBgEj7xzjGQDT0zwt4v0z4RXt7oBurC/1q6Nx9iuI2X+zpF4ceY+SpkVsjOCmVyerUATarN4ts/hvpPgjUdW06z12cAGXVAfJnLP9zBUoG2sqlyOSTyQxNAGzPpi6VBaQXV5CZbpI3GnQXoRHuNgO2JJXDugz/qyDgBRjIAoAzPEfxI0axgXw/Y+NbazkvrDGlm5V7iKBtwCytuUbMlJPlkDFcg4GMEA0PhzqnxvgFxF4+8dQvKbiI2MlpdpcXCeYGjkkaGIgqixrv3fKw2qBndgAHS2fwx+HHibw/HD8RvhTrni2eCxW0t9f0XW4rPULJmlPlQxwzZjnUPMWZXUOqAAgEA0AeU/Hz9k7w/4K+HUHxp+HWs6hDpE1+2nz6H4jt1j1Czu40DSqWjzHNHghw64+V160AeIwyTwqsV6kogZw+wMV3EZH54yM0ANW0JHn+S2xmwvIz/nFAHq2jG90KQ+I7PTFjt7mZv7KuHijJZ/vArGTI7FQFwuTsycsTyQCb/hYPiTxDcadqHiyG81OKGVnkeSCJnlY/LsDlC7IBGAFYttbIAGcEA2NM8CJP4dvPFp8BXtxpls9hHeTadbTW8Fm0gIijmLAiR5QGwQx835sZ4wATeJ/Dr6vdajDYeCptE0y30+2hVLqMvIELyBvKSQhpmyMdAQBgAdwCnZ3Gq2V5d+Ep5p1vY55x9husWpEsbrhJVIAbIV18uTaE5ADFyCAVJdW8YQWN3rujWNjHbWapBfw6RpsShJGWZQ7QqCrRGNXDuMjLqfvEGgCx4M1iy8L6VrfhnxKupQRXOhS2Rv7ZGZ7N5HEoKFHKsJRG0TF925XdVC9QAYvh3UxoPg6TRr2G+nhuL1L6ZbNkEavEjBG3Ahx95idpABC9cYIBHDoniDWLLULiZsSaHFG98puAzSW/mbDIAxHmFXKg46deOgAI9Y8b+MJ5Dq1z4jgM32V41hi2ozoInjX5Y8ZykrLn0bB5AwAZ+lX9ppFtBqU8umTQW0aNFDNG0kU82VYgxk5O07lJwuQrAE55AOYu7nQ7VbhxZCa5nkDtHEXS2tlEhYoFzufgY5OACepGQAdJ8GtE8G6l4lvv+Ei12COCPSPNtjJ5qbrp8IsYEbK+AzkswJAVSSCmaAIPitLqD3t9B4wjmm15NUIn1K9lKXE6FAf3kOCFbPOc5HmbSO9AHt//BPT9nbwlr2la9+0r8Y7pbbwv4ZhIs1Fq8lzczx4lkkt1QjDxqoJLYXa0p5KYIB6Vr2q6b4m/aS1jUvh74ftLHTNDsG0fRLY6TBmCV8rH5UbPsnYzSvIYwUViow2zggHDfERNR8TaXp6+HPEll4t1rwlqcdp4l166ML38kd1MVjg8sL5TKkuVQrKzIZGXdtwAAU77UPiqJNPh0jwouvrd37r4hEyPFNEWOI9uWxbx+SciUA/PuzjAUgGT46+NngDwZ4tj8Fv4Ie/ghlQ3V5elI55G2umDtUooKudwCgNlc524oAf4C8NeEfB2r3/AIg+H3iSEtM1rANJuys0ksxbcFg3kJIcEnaSTlSA2QcgFz9oaz+K2oaPZa38PNQ1GdbeQwavPpyyQSJLJO7RBxuzt3A5P3d2M5BDEAy/iZZeEfHQ0rwn4i1aIatbp5jxacFikl3qC5C7WRgxRiqgggDjKsCQDXEfjBfEmneCb3QoYtMNmVluIrti0DGMGMFCyswKRxklRubk8FSCAV9H0HXND1L/AITPUPiDdyafbwxWS6SbvJWRkKgjc+DvKYHfL4J2EEgFbw5rui+NdO1bxdpOnNZmwlae6trqMu9nPGrHdGu7aSwBUD5SM8nPzUAZx0XwR8d7VPF6Xtw1zaXIgnEsot2y5Z0V+HUD5Xwyn1OA3BAOm1KL4MeJvEk2nX9vbnxBbpstrRYlBDgkgoHz82wKdnPOWADZBAGa/wCH/EOswQeKdJ+Ih8LQ7o2ZMxJbLKyn52V9oZiAoLbmDbSMcEgA0hoeqz+IbvX9Ozc6dK8TzXFnegR+WGHNsgyjSSMdvmZ2ghlUHZmgDkP2otUOseBdBjtYS9g+t6nczalFctJBDcPIkb2zkjLyosSnzDyyydOOQBP2ydI+AGkfC/4eQ/C7wxFbaxN4agl1nUNOLfZr1yvJZmP7ycMTuZQqj7uCeaAPB7R5IrNW2sIk4Z2PHJNAHt7D4XfCS9fwp4lj1XVNWjsHgvdQsbu3ayspXyyIihS02CEDt5iYbJUfLucAx9D1B9U8RNZaj4TvrqaWRpbe2t9SkAzlmDmOEBi3VumcMCAOpAO4+I/xT+J2l/Dlv2aNd8RiHRdC1BnTSI7iOF1liYslzKrHY7MH++rEkZBAJYkA4XUPEWraZ4kMNxqRFxpECrpbXJQNEgBYFSJZFBLEkhd5+cnIYcAFXUB44tsTeIbe6s5nuXmu5NTHlTmSd2GZZCPMkY5+83rjI4NAE0Gm6kIZ7MzWomtxGtrd2qBpJd7q2BtO5gPkQIvH73JI60ATWuja6Z49Ztr26upWuleG3YSMYgBLLgoufNQ4Ug5BDOAAxoA7FfgX400SeKbXfsi6bFbf6Mmq6nbWklxIm1HhXbI8rKqyCQYXdtwThgQQDG+HfhTXtZ8VDwD4A0KHWrmYXVpJPp2oy241R33IsKXLEorE7Nq4BlyI2AY8gHnfjTx9qr6fB4W1GWSKzil2TaTAnlGOWIbATkfLyq5Gf4TnnFAGNqFhbWXh6AXl3B5sti0ypBPyD5iKsbgr97h2K5HrnjBAOfmS3igiMN35jyITMnlEeWQxAGT97gA8euO1AHZ/Bq71GwfUNS0hdF86whW7RNYgjk+0FNymBA+d4YOcqBxtDEjYCAB/xEn+JvjfxzY/Dq9tUvL60dbbS9I0nTkjMMkxEhtlSNFyyuxXBzgg4JHJAPsDxD408cfsy/s4R/sg6do8EMsdrFL4h1PTbmKKJ5ZA0txZTSJveSRsfZ3UlM4ZGjVWLMAc/IWS0tNHsNZvBr80y30+pQWpil1HUgHlidUb/WIhDESsFiVASDtXNAHL6PdXHifTNY1HwTbeDZri2mF3q8GgNPFH5hITz/KI2zlXkKqQ+xfMO1TwxAOd8RX/AMc28ZQeH/A/htJdGgggNvcT2kZWaJsCQ+cwzGoZmBCFRHg4G4ZIA/40fBrwjc69p9vpXiNI76ZDbKss0Sv8pZPL8pijMNu1VK5brnJxQBk+Pfgv4d8DaNpKeM9fni0/zzHKqh99nLjhwVBVixGBHw20FsjBwAa/wb8K+J9I8aa1pej+IoZ9BtLtbu1t31Uv9naNww35ZcOUDr1yxbgMOaANPxN8KvCWm/Eu6+LfjPxHPbWtlOJpleH5iygKHcDOxSxACnJI5G7pQBjvoniX4l/EXTviJ8NNZjvdIiiMl7ZllSSAK53iRCSGbLJh2ORlQTxQBNY+Bbi+1fWbHxwn22xnZZbe1nXy7iNFABRWCFQynGOBwTzyRQBR8E/FOwvfiDF8L7LwZCLdLxc/Z4cvN5akEsF+bzSMkncxyAp68AF+T4geC/BPiWH4c6J4S8ua5Qs8qWcaGWWT5lVgpwfl2g5GD0zjkAF7WR8KPCktp8QPE1hFZay7NHbveW7kzPGFyxRN3VGVd5+6cYLNzQBc+IHwz1H43/D9v+ECSynitprZdOfTtTinikuwjqlu6jBgDxs2zcoAdCDwflAOC/Zv+I/w+8H2mvfD74z65qml2vl+bYXlioNxZXaEpJGY2U71cFd0ZwN0YOMigDY8UftD/s+fDnwhrPhX4L+HtZ8Q6lq6I9rrvii3tYoNPmDD/SFtVEgluQgdFlZlCpL9zcNxAPDfEeva7rt//bfizWbq+upY+HupizYycDk/Ko7DgensAZcC3d4HhSRiWwTGufmOeAAOp54/H1oA+lPij4W0Lx3psXjRtM1nS9Ykv4LbVY9R0IQWSkpgz7oUykYLIfI2lkUrzubaoBjeI7DxL8LLSX4deF9QuYr0SsNYkeILdPLHLiPyipIMS7cjDEgyEN12qAZUvhSz0Se4tfHMc5nm0v7VbQRB45S8gSQLKCuEDlncDBwdpOVcmgCzoFp4Ms53ktvDkTQxXISbVp5Bvt3MZCL5ZYxqS2MSkZ3bjtAIAAM8arZW9/qMctgbrz7I/aIfMSdrtBIqeVNI65jKBSA6r5oJb5sGgC5rE/inVPEllqN/czxgxpHNcQ2/KbXYDO5Qc48wfKd3yhckjFAGh4f+INxDfx3nhhpNT1SK980RT3AljvJnWZ5Lr5Nj71YRsmHIVkyQcgAAoWyaEdXXWfC4WNoLeGG6iup4BLJJKvLRvtXzNwVjvA3qxBJ5WgDS0qLU9Pv4vD2laxpBjl0n7dLNY6jDFDATFiFP3g8uK7O15WfcPmdQ207loA8N1poLi7kKmQME3x+Ycs2WJ+b1bbtz75oA6DytR1jQLH/hHYILe6hsngmEWFNwmNxcbmLNIwLBiABhQB3oA41iSxzQB7d4L1z4Zab+yquj3Ogyya1d+Ko7h7jexh/do6DzASFUKjyEDDEkYxgkqAaNj4FsPBX7TgvIvAtobaLQZNY0rRrjWD5McMkJ+ySm4lUfaB+8SXgDIHHAxQB9PXfwng+JPxn8NabLYaTp3ifWZ7jVNd1BLJ1iEDgEK4DkSxSOzlVBaTamCxBQ0Aef3ctsNf0X4yfDT4tt40tLrTdQsrs+LtCFiwiCfZ5oSI5GKwukgCOrsyk8seTQByngzwdoPh1baPQtOgsrPVdRDT2i35uWldIZJx5sgVHeKIJIwgRAS6qSzH7oB5R4g+OuoXfi5pfD2kKLMuIzLfIDNdSBv9cyjCK2DwoBCkAksQWIB7B4f8N6b448jx34m0uxu9T0nU5pUvJi8TALKWRi0ROQHB+8CWYnkUAeR/H/AE74meJfiJc6SmiandW7PE0MEFrIY3dolGVUDaDz6D6YOaAPYvDdofC/hdtM1nw7JBLe2tu96yypmaaFQgkKlSZAuWyWOEOM4PUA8U8dT/Fu18WXOgxWF9HBK3lWthZo5t5rc/cwBw6suDk9eTxgUAek6T8N7T4Y/DS+bwb4ktrnXbrTkuJLSdxHJYznIaPLHaQm3ocl93OBQBVsfhb468U6HpvxB8Ta4LK50+WR72GefcJyHOI2UtgsQqpsOAAewGQAWvEWtaXd+DYtf+D9rb32qWLBL99PMjXAyv3Q8bnOcFumGw2DxigC4l14WvvDi+OvihDcW2oWsRlW4/syIzxoSflAdQAwIwSVPOGVclgQCHw14b8L/GD4eSf25fJLoMWqO9i2nH7JLYziMh7ZFMb8MhV/mB3+WxznAIBl/wDDFvivxUlzJ+zb4ruNQ1COOaO+8J6lcpb6rGFQOPLAIS7jeIllKEE7G+QfKCAfPWpm9GoTi+unkmErea8hO5myck7uc5z15oA0NC0GN9MufEOsXCxW0EJ8tZ43xcSHISNdoySxB9BhWyRgAgFrwT4I+JHx28dw+HPDNjPqmq3W0Ak/dVVwCT0VQAB+QoA+tPh/4A+C37Imk6CnirwCfFPjLUphL5MdoJDZIA2WZGO0sMHBOME5B4oA8Pn+IHiWH7L4i1Y3MrLCYbZZ42aCUmNUO2N243Lkk/cwwUKAKAF0nUtQiawuvC3huytbqKGSG3hjlJHntIZhKyP8se35QFyqZj5HUkA2LLxV4o+Jd2dB1a40qZJ47G2l8Q3ukxQS25iWTZH5waPJYM0bu+7cFXJJANAGB4o1HV4ruTQr7S7ezt4Ts8hLpjEikyqYQwxuOScuSN3GPSgC34hj0C41uG4j8LWOkz21gba6t7eBmjuGSMjeAxDNOw3Bgyqu5AexJAM2LUpL+V9RvLWR7t51SfTobYfZzGxJJWNeMApuAB6qDnIO4Al1weGfDnhGz1HRZzeXt95pvLlLUiNVhk2KRwu8sTIXPcOqrypagCvp3hTVtT0YjRvCLztcQNM3mzkFIUVGkcMvHkqwBLMBtwoycUAdL8Uks/DegajotpaaU7XOpR2z2lpcJcTR21tbwoPIk8vCxZM6gNyCzYVsbqAPCjcgXCPAWSZGbfKXyWyeOPYcd80Aba+I/wCx/D72lvYv5VzaiFZpUG5ZQQzMh6qORnByQcZwTkA5nIHBYfnQB2Xhh5f+Fd3crzw4hvInt43YLITmTlB/HjByCDjIII5BAPXvgN4x8a/D74761cWljearJqPgufTLm0tbff8AaLO4khEkUrs26CPy8/P/AALt6JnAB7vay+JfhZ8Qtb8P6x9v1KPwezWlxr8muxpOZ4JSLe2klSQbE2Qx7VAkfhiGy+0gHmutTX3xN+HNz8QfhZ4q0ObzNfmsC2s3Ftaf2ZEIklkn+y7hzLIz7WVCF2HgsdwAI9J07WG8L6HP4o8SDUtRN1JJearZWyiFoQnlG0lAEbSoNz7peMebhD6gHBWX7Nul6Jrseq3/AIhfy3u2a2zseGFVLbi8gJVmRto4xliM4zQB2njrQPCnj7TbLRtf8SXkC20LSJZae8cU8x2iNWdCAJABHkMoO4c55DUASaPrS6vNrXw4tvDeo6XHp2kGyttYu3TfcTIBGmxnXh9pLBw4GOWAXGADB8T/AAn8Q2vwO0v4faR4maPTX1Sa7vrs3CTQ3MxwG3eW52qoCtk8HJz82KANv4feJfBH9jR/CnwZ4qsdUnt9MkgbUZLiZJZYcscIUj+5lgAoPyg8/wAQIB5zr3xS8H+AfHFzd+C9PfVLkExXd1qEoltXYNjMMDLyRjG9ycnkKM8AHoHibV38MabL4j03RXtPD9zoi61faasnmRTXEiiJIiBgBDK6ksMbUZwC20mgDy79mr4q6L8IfjHofj/Xr/W00uwuG+0QaFdLBPPHz+78xsjZuwTuByPpmgDu/GvxE+Cbz3HivS/iXq2pG8ku1OgaroUQvRvaRwk84Jhkj3SlzkEsUQYG3IAOp034jfsn6f4Q8Lan8MPi1feDrjRrZoPEFrqOhyTyaldvGu+9gWF2O4soGHZFAyAdpKkA4q4/aX+FfwV8PajpH7MWj6v/AG9rFqkd3481+dI721jJLSRWltGWS2Zm6uXY4+7txQB4ZezX3iHVDq2raoJrm9maS7ubqUks5OWdmbkk8kk8kn60AQIs+v31npWnwuXLLDDHuzlmbt6ZyPxoA+sPhhF4Z/Y0g1GK90xLnV9IWK48Q6kNj5um3Jb6dAc/Lhy0jPj5tn+zkgGkvje0+Neq2PxY1LS4bYJpzxS2UUqjaVnb95vcnanyjLEMNyjjBNAH/9k=", "text/plain": [ "ImageBytes<23936> (image/jpeg)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import large_image\n", "\n", "source = large_image.open('wd-extract.jpeg.tiff')\n", "# The thumbnail method returns a tuple with an image or numpy array and a mime type\n", "source.getThumbnail()[0]" ] }, { "cell_type": "markdown", "id": "343eefbd-6157-48d7-b1e3-2b0329c9001b", "metadata": {}, "source": [ "**Show the Image Interactively**\n", "\n", "If ipyleafleft is available, you can zoom in on the image. Since this is a multi-frame image (there are 24 image channels), you also get controls to look at different frames.\n", "\n", "Try these:\n", "\n", "- Switch the Image Control Mode to \"Channel Compositing\".\n", "- Switch the Image Control Mode to \"Axis\" and click \"Max Merge\".\n", "- On Channel Compositing, turn off all channels except \"Antigen Ki67\" and click \"Auto Range\"" ] }, { "cell_type": "code", "execution_count": 4, "id": "3bb38770-2917-49db-aefc-eb525c7c7b3e", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8f1dd862cac64862978b75ba9bf75226", "version_major": 2, "version_minor": 0 }, "text/plain": [ "VBox(children=(FrameSelector(colors={'channel': {'^BRIGHTFIELD.*$': '#FFFFFF', '^DAPI.*$': '#0000FF', '^A594(|…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Just end your cell on the source variable, and an interactive image will appear\n", "source" ] }, { "cell_type": "code", "execution_count": null, "id": "4ee10dba-27fc-4aa5-8bd7-615d428c0a20", "metadata": {}, "outputs": [], "source": [] } ], "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.11.12" } }, "nbformat": 4, "nbformat_minor": 5 }