diff --git a/.github/workflows/locustfile.py b/.github/workflows/locustfile.py index 34ac7bee02..96dd8e1990 100644 --- a/.github/workflows/locustfile.py +++ b/.github/workflows/locustfile.py @@ -1,6 +1,4 @@ -from locust import HttpUser, task, between, events -import json -import time +from locust import HttpUser, task, between class MyUser(HttpUser): @@ -10,7 +8,7 @@ class MyUser(HttpUser): def chat_completion(self): headers = { "Content-Type": "application/json", - "Authorization": f"Bearer sk-ZoHqrLIs2-5PzJrqBaviAA", + "Authorization": "Bearer sk-ZoHqrLIs2-5PzJrqBaviAA", # Include any additional headers you may need for authentication, etc. } diff --git a/cookbook/Benchmarking_LLMs_by_use_case.ipynb b/cookbook/Benchmarking_LLMs_by_use_case.ipynb index 80d96261bf..6ea6211bfb 100644 --- a/cookbook/Benchmarking_LLMs_by_use_case.ipynb +++ b/cookbook/Benchmarking_LLMs_by_use_case.ipynb @@ -1,757 +1,753 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "4Cq-_Y-TKf0r" + }, + "source": [ + "# LiteLLM - Benchmark Llama2, Claude1.2 and GPT3.5 for a use case\n", + "In this notebook for a given use case we run the same question and view:\n", + "* LLM Response\n", + "* Response Time\n", + "* Response Cost\n", + "\n", + "## Sample output for a question\n", + "![Screenshot 2023-09-07 at 4.45.37 PM.png](data:image/png;base64,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E/+YTvNV9zrZ8ssv/3nVxKaTgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQggRAUcFkLJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJjCcCCrjGE3h3KwEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAGXdUACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkMB4IqCAazyBd7cSkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQUcFkHxgmBGWecMcw///zhkUceCZ999tk42ac7mTQITDnllGGxxRYLI0eODO+///4kcdDzzDNPmGaaacJTTz01SRyvBykBCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKYmAko4JqYz24vObbZZ589HHHEEbE0d955Zzj//PN7Sckm7GLMNddcYciQIWHyyScPH3/8cRg+fHj473//O2EfVAulP+OMMwIirtGjR4ef//znLeQwbjYZPHhwFDHme6PM119/fb6o2+kNNtggbLjhhjHd8ccfHx5//PFutxkfCWaaaaaw5pprhimmmKK2+88//zzceuut4aWXXqotK5toZ9uy/FwmAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAIS6M0EFHC1eHbmnHPOsNBCC4XnnnsujBo1qsVcJozNFlxwwfD888+H//3vfy0VeMkllww//vGP47bwOvzww1vKx426Ejj00EMD9TDZSSedFB599NE0O85+260f7Rb0N7/5TZhsssnCJ598Enbdddd2s+uR7aeaaqpw+umnl+a9ww47lC6vt3DHHXcMyy+/fFx9zTXXhGuvvbZe0i7Lx/V52mOPPcLiiy/epQzMPPzww+GUU04Za3m+oJ1t83xamf7Sl74UVl555TDffPOFOeaYI8wwwwyBG+ULL7wQhg0bFj788MNWsnUbCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQQF0CCrjqohl7BSKRoUOHBgRJffr0qSXAqwzCpGOP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QAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQggUmGgAKuSeZUe6ASkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQQG8joICrt50RyyMBCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJTDIEFHBNMqfaA5WABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEehsBBVy97YxYHglIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhgkiGggGuSOdUeqAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCTQ2wgo4OptZ8TySEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAKTDAEFXJPMqfZAJSABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIIHeRkABV287I5ZHAhKQgAQkMJ4JfOUrXwkLLLBAGDlyZPjwww/Hc2ncvQQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAT+j4DjWNaEiZWAAq6J9cx6XBKQwCRBYM455wwrrrhimGaaaWrH+/nnn4c///nP4fXXX68t68TE0ksvHRZddNHQp0+fWnbs48Ybb6zNOzHhE/jGN74Rdt5553gg//rXv8Jee+014R+URyABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJDDBE3Aca4I/hR5AAwIKuBrAcZUEJCCB3k7gzDPPDFNMMcVYxbzrrrvCeeedN9byVhd87WtfC/vss0/p5jvssEPp8t60cJ555gkDBgwIo0aNCs8991xA5DYx2qyzzhpWXnnlKN678847WzrErbfeOqyyyipx288++yzstNNOLeXjRhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhLoJAHHsTpJc/znNd1004XFF188FuTFF18M//znP8OXv/zlsNxyy4URI0aE9957b/wX8osSDBw4MAwaNCg89NBD4ZlnnumRcing6hGsZioBCUyMBOgQfPOb3wxf+tKX4uFxwzjssMPCO++80+Vw11tvvbDOOuvUhFUff/xxOProo+MNp0vCDsycffbZYfLJJx8rp/vuuy+wrlO2zDLLhKFDh5Zm11sFXDPOOGPYe++9Q79+/cJkk01WKzvirbfffjuceOKJ4ZVXXqktnxgmTj311Nip4ViOPfbY8OSTTzZ9WN///vfDkCFD4nb//e9/a964ms7IDSQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSGCiJcDgOuMmU089dekx/u9//wsffPBB/LD6kksuCaNHjy5N58JJm4D1aOI//zvuuGNYdtllu0T4aXTUjOPhjOHII48sTeY4VimWCWoh47Y4kGD8OY27pwNgbJL7x5RTThnHc3/605+mVeP1F6HZCSecEMtAHaVe94TDEAVc4/U0u3MJSGBCInDWWWeNdRN59tlnwxFHHFE7DBTBp5xyShfBECs77REr7XD11VcPgwcPjp0ewikm67SAi3x33XXXwD5mnnnmMNVUU6Vdhd4o4EJot9122zXsDHJTveKKKyaqEJDnnntu7bxcf/31Yfjw4bX5qhMLLbRQDJtI5wkBWOqMVN3edBKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJDDxE/jlL38Z5p133koHyvv44447rqWPjivtwEQTLAHr0QR76ioX/KSTTgpf+cpXKqcnYSMHA45jNYWy1yWeffbZw7777hsQRHVnn376adhll126SzZO1uehO9nhgQce2COOQhRwjZPT6U4kIIGJgcB+++0XFlxwwS6HwkMHNw46EtgGG2wQNtxwwy5pmDn99NOjO8WxVnRwAcKxaaaZJubYEwKuVNQtt9wyrLbaamm21wm4ZplllnDUUUeNJaKrFbgwgRe1559/vrC0d8726dMnqs7rlS4XcN1www3hyiuvrJfU5RKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCCBlglssskmMRpJ1QyIVvKjH/2oavK20/GRMn94cplUjIgtn3322QR1uNaj3ne6Ol2PTjvttLqe+uodPeOvP/zhD+utdvkETKBM0Md1i2v1FFNM0eXIxrWAq1HdV8DV5dQ4IwEJSKB3EMCrEx6vcrvsssvCzTffHBchHJp11llrq+lg7L777uHDDz+sLWNivvnmC1tssUWYbbbZouqchwgUtW+99Va49tprw6OPPtolfT7DFy0r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CUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKoTEABV0VUCrgqgjKZBCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJFCZgAKuiqgUcFUEZTIJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIoDIBBVwVUSngqgjKZBKQgAQkIAEJ1AissMIKYfbZZw/PPvts+Pvf/15b3qmJeeedNyy99NIxu4ceeii8+OKL3Wa98MILh2WWWSamu/TSS7tN324C+lCrrrpqmGyyycL9998fXnnllZgl5eAPu/baa8P//ve/OO0/CUhg/BP40pe+FNZZZ53Qp0+fMGLEiPDPf/6z5UJNNdVUYe21147bP/jgg+Gll14Ka665Zvjyl78cnnvuufDoo4+GZZddNsw111wxTX6dKO6U6x3XPeypp56Kf8U0zH/1q18Niy66aFw1atSo8Le//S18+9vfDrPOOmt48803w0033VS2Wa9Y9s1vfjOW85133gm33357j5Rp+umnD0OGDInX5ZEjR4bHH3+80n46fd3+xje+Eeacc87w3nvvhVtuuaVSGcZnoqWWWioMHDgwlvnjjz+Odfmee+4Jo0eP7lKs1VdfPXzlK18Jqe59/etfD3PPPXf417/+FW699dYuaXvTzITSRrpjtuSSS9ba/7jo53RXnmbXV7lmkucCCywQllhiiZj9ddddF/773//G6XFxDWFH9fp39coVC9eD/7g3cO779+8fJp988vDqq6+Ghx9+OHCNyy3dR3gZ+pe//CXeU1j2+eefhz/+8Y81jvk2E9r0hN4GqvDmuWLdddcN9Fd66jmrSjlM838EJoU6N7Ge63buOeOyHda75/SGvmSjft9HH33U8fdBPf2OiWfAKaecMjTzLDLzzDOHwYMHx2Zy7733htdee62tJjO++hJtFfqLjcdlu+hEec1jwiMw9dRTh4033jg+y9922221d6yNjmRcPR80KoPrJCABCUigOQIKuCryUsBVEZTJJCABCUhAAhKoEfjRj34UB3sZ6P35z39eW96piS233DLw0hJDkMDAU3f2/e9/PwwaNCgm22OPPbpL3vZ6Bry32267mA9CrTRIn9iw4qc//Wn49NNPYxr/SWB8EGDwIgmIXn75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Rb4KuCqCMpkEJCABCUhAAl0ITD311FE4gHjhlltuCddee22X9f37949fKxLu5Xe/+12YYYYZwiqrrBLDu+CVBgECX5an0Ez5xp0QcA0ePDgOfvHV5Keffhpef/31WE72Wc/mGxMacsUVVwzzzDNP9JzDNo899lhAjFEUqNV72YrnkoUWWiiGsLnqqqvG2hWD3wjf2BdM8FxCme69994wevToWnry4Q/j63s8+pTZd7/73TDddNNFjwtwzq2Z48m3y6fx4EA+2I033hhefvnlOJ3/oz+56aabxkXPPvtsuP3222urZ5111rDuuuuGueaaK5aTc8G5v/POO8NDDz1US5cmvvOd70Qub7zxRrjuuuvS4trvEkssERBp/Pe//w14OOO3O9twww0DL1IJ+8WXs5y75ZdfPsw555zxK1o8J/3973+P2fDSaKWVVgrzzjtv9J7GV7YMjv7jH/8o3U2fPn1iiCK241g5vpEjR8Zz9txzz5Vuw0LaB1xmm2228OUvfzl62OABBibwK3puS8fwwgsvxHpM/cbTW79+/WJd48tnjg2RBUbYkM022ywKgygXhpcd2BMS7bXXXovLiv+a2a7Zc1vcV9k8dYkX93gfwcMfHD744IPIFK9NTJcZPDintCnOCeEKqau0wXyb7gRcyy67bM2DXr06mO+fr83ZXxJmESKRMnAurr766ph0p512Cossskicpt5feeWVeRbxi3XyePvtt+N1h2srobLwoJJbPoj417/+NQwfPjyuzsUpDLQwaM/APm2OfKgbhHd85ZVX8uxq01XrYjN1o5Z5NsHXsbRDykGbyg1mXEMQsnHeud7Cn2sf19+q1qqAq3jdbnSsnNshY8R0lLVe20rip48//jgg0CtaM9fmdC9FhME5x+sO9Z1rIe2DsKjw5F7COgYoBg4cGGaaaaZYp7ge/fGPfxzrmoIoa/LJJw9cd1LIvryc22+/fdwHyy6//PJwzz33hP333z8eM/cr7jff//73w6BBg+K1Be9z3RnXKzzOYfQZKC+eZuDIec77EZ2sl+22kWav82uvvXasH1yDuG8Syg4xDuEnYVjPYME1ij4ExrWLe+rDDz8cRowYEfJrAB6VEM9R5xdccMEo0mF/cKwXKrfZ6+tyyy0X98G1iesZ3p24znJuqDvcH2mjDOxWtSrXzHqDm8VrCO1wgQUWiNds+qK0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I2AEjIARMAJGwAjMLgRM4OpZHiZw9QTKjxkBI2AEjIARMAJGwAgYASNgBIyAETACRiBD4PGPf3yz4YYbNgsuuGBz9913NzfeeGPz5z//OXtq/j19zGMe06y++urpBW699dbml7/85ax8mfkln7MSPGfKCBgBI2AEjMA0IbD88ss3iy66aPO73/2u+d73vjdNqThaI2AEjIARMAJGwAgYgdmOgAlcPUvIBK6eQPkxI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBHojYAJXT6hM4OoJlB8zAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGoDcCJnD1hMoErp5A+TEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEeiNgAldPqEzg6gmUHzMCRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkagNwImcPWEygSunkD5MSNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYAR6I2ACV0+oTODqCZQfMwJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRqA3AiZw9YTKBK6eQPkxI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBHojYAJXT6hM4OoJlB8zAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGoDcCJnD1hMoErp5A+TEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEeiNgAldPqEzg6gmUHzMCRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkagNwImcPWEygSunkD5MSNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYAR6I2ACV0+oTODqCZQfMwJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRqA3AiZw9YTKBK6eQPkxI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBHojYAJXT6hM4OoJlB8zAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGoDcCJnD1hsoPGgEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEpgeB//7v/24WXHDBZoEFFmge9ahHpT+Odd431QXWWmutv/R92M8ZASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMQNOYwOVaYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARmEcImMA1j4B3skbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYARO4XAeMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMALzCAETuOYR8E7WCBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgApfrgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGYB4hYALXPALeyRoBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBEzgch0wAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAjMIwRM4JpHwDtZI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyACVyuA0bACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYgXmEgAlc8wh4J2sEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETCBy3XACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASMwjxAwgWseAe9kjYARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACJnC5DhgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBOYRAiZwzSPgnawRMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAELtcBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIzAPELABK55BLyTNQJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAImMDlOmAEjIARMAJGYD5H4OUvf3mz+OKLNz/72c+as846a9a+zQYbbNA89alPbR544IHm/PPPn7X5dMb+isCaa67ZLLPMMunkq1/9avP73//e0DzMEfjHf/zH5nnPe17zl7/8pTnmmGNm5ds+5jGPabbaaquUtyuuuKL58Y9/3GyxxRbNQgst1Nx2223Ntddem+6tsMIKzWqrrZaOTzvttOZ//ud/mgUWWKDZeuutm7/5m79pbr311ua6666btndceOGFm0033TSlefnllzf33ntvSmudddZpllpqqeZXv/pVc+65505b+ptttlnzd3/3d82dd97ZfOc732le+MIXNs94xjN6p/v3f//3zYYbbpjyd+mllzb33XfftOXVEY+HQG3fSl38h3/4h+b+++9v0PHjCu2S9hnb4bhxOvz4CNTWj/FT7hcDuvtVr3pV86hHPSrpROnKfqH9lBEwAkLgmc98ZrPGGmuk06uuuqq56667dKvq1+OAKthSoJLeXXnllZu11lor3T/66KN7R942nuwdwYQenB/mCLwqOK+yyirprb/85S83/+///b9qBGZy3lCdyRkMWKrXM5j8jCZVmq+1tcVHEi4zWgiPkMRG6SzWeldcccXmSU96UnPZZZc15513XvP85z+/WW655Zrf/OY3zTnnnDNfIsW6xMYbb9wsscQSab3kfe9733z5Hs60ETACRsAIGIHpRMAErulE13EbASNgBIyAEZgBBD796U83j3vc49IE/q1vfeu0p4iBdumll07p3H333c0f//jHXmkqn7/73e+affbZp1cYPzTvEPjwhz/cYLxBDjjggEQQVG5YMFpwwQWT4f8///M/ddm/8wkCbeX3T//0T81KK62U3mK33Xabkbdpy0tb4ksuuWTz/ve/P91mwfLUU09tPve5zyXj/49+9KPm4IMPTvfe9KY3pcVNTvbbb7+GSc/f/u3fNkcccUS6//3vf7/52Mc+lo75x+LhE57whPTcJMhKLKySB+RLX/rSFFnr3/7t35onPvGJzR/+8Idmr732Sven499nP/vZRFS75557mgMPPLA55JBDmsUWW6z505/+NJWvrnRf8pKXNDvttFN65KSTTmouvPDCrsfnm3tPfvKTm0UXXTQZ9G6//fb5Jt9dGa3tWz/4wQ8mUvWk+mQZpCFH0n9YZgcCtfVjpnIPifAd73hHSu7EE09sLrroopFJ145DR0bsB4zAfIzA61//+gbSAcIHPWecccbU29SMcR6u44ApUKbxoKR33/jGNzZ8HIMMGWO3jSenK/tt4/L5YY4AJjGfe+65Z/PnP/85QVUz/uuaN0wX/rM53lK9ns35HSdvpflaW1t8JOEyDqYOW0agTWfx9Hvf+970AZZC8vHZoYce2nz0ox9tFllkkd7zeoWfLb+Q1li3hiQrGdIvKox/RyNQ0/eNjtVPGAEjYASMwEwhYALXTCHtdIyAETACRsAITBMCWjTiC6yZIHBtueWWyeMNr/OZz3ym+e53v9vrzZTPSRmLeyXqh6oRaCNwQeqScf7qq6+eIsRUJ+SAM4pAV/nFBcSZWETryksbKHiV+sQnPpFuQ96CxCWyUiRlDSVwQezCUAMhERzGlbZF/pJBYNy0SuHRzZAcIClB1NECcF/9+3A13P7rv/5rs+yyyyYvc294wxtK0M1312r7VhO45ruirspwbf2oSqwiUA2Bq3YcWpE9BzEC8w0CXQSumjHOw3UcMBMFWtK78wOBq2tcPj/MESjbmM9I4KoZ/5nANXdrKdXruZ94+JyV5mttc7tHEi4PnxKePW/SprPwGM4ahwQD7iWXXNLgWXx+J3DtvffeU57S8ZL+29/+tnnb296mV/XvBBGo6fsmmLyjMgJGwAgYgTERMIFrTAAd3AgYASNgBIzAvEZAi0bzgsB12GGHTW1ZNgqHV7ziFWmrx1/84hfNmWeeOepx35/HCPQhcLE1W1xYmsdZdvI9EIjGmbz84gLiTBO48ry0vQpfah511FHp9uc///nmW9/6VoMeeuxjH5t0EcdIicBF2F133TV5j7v55psbtmCU1Bg3Fbb027bIXzIIlMKPe+2Tn/xk8ih20003Nf/+7//evPOd72zYVvLXv/51rwXSpz3taQ1bNiBs1cBWlQ8HeTguYtb2rSZwPRxq9Oh3qK0fo2OezBPjEriGjEMnk2PHYgRmJwKTJnA9XMcBM1F6Jb07vxG48nH5/DBHoGzZ6lFbqLMdvLZQrBn/dc0bZqIezbY0SvV6tuVxUvkpzdfa5naPJFwmha/j+T8E2nTWc5/73ORFnCevueaa5vDDD58KtOmmmzZLLbVU88tf/nIub5tTD8zyAxHQ/vKXv6Q1G3lKnOXZni+zV9P3zZcv6kwbASNgBB6mCJjA9TAtWL+WETACRsAIPHIQmF8IXI+cEnl4vKkJXA+PcszfYn4ncPE+ELgwqsgDoMhKl112WXPsscemVy4RuHIs4vnDjcDF9pC4zJeXvH333bdZddVVGwi0kLkeqeJFzP8reRO4/g8LH807BEzgmnfYO+WHFwKTJnA9vNCZ929jAtewMuiarwyL6a9Pe/xXg9ojN8wQAtcjFyW/+XQi8IIXvKDZY489UhJf/epXm6985SvTmdyMxq32BXELT4mW6UPAfd/0YeuYjYARMAIzgYAJXDOBstMwAkbACBgBIxAQWGWVVZr11lsvXbnooouaW265Jdxt0kQdl9lMaI888si57i222GLNtttum659/etfb+68884mErj++Z//uVlnnXUavhB8+tOfntxR8wzbjN17771zxaWTpZdeutlmm22Sd6yFFlqo+dOf/tTgzevKK69szj///KkvV9m67DWveU2z5JJLNuQDIc6f//zn6cuv++67T1EWf/k68SlPeUrzk5/8pPnmN7851zMQDXbZZZcU9xOe8ITm97//ffMf//EfKQ+QMiwzj0CJwPXa1762YUH92c9+dsoQA8lbb701fRV41VVX9crkwgsv3Gy33XbNcsst11Cn5Db9Bz/4QfLMRpxRXvrSlzZLLLFE8gB08cUXN2ussUaz9tprp23Q2A6O+v3FL34x1dlJhItxvPCFL0xfctOWIAzdddddactQvkrni8GSDH0/Fud4J9rcCSec0HC++eabN8Tzuc99rsGDEjKJNjKq/PKv6yH8gAGem/iC/Z577mloj23bpg5591F5KWGra+DyqEc9Km0fQL3RV5x4ijrllFPSYyUCF2HQMwhfsuKFa+ONN26e9axnpa/1KWPe8/rrr2/QZ2eccUZ6Vv+os+uvv36zzDLLNI9//OPTM9/73vcSJuisKG1faWvB8g9/+EOz1157pSDEh7cr6tRJJ52UtnJk66LVV1895Qe80Zl4z6JvYPuwlVZaKelTvrwFg9NPP31KVxPpIYcckvQ0Wy0cf/zxze67796stdZaSf++5z3viVktHvNV74YbbpjusWjM1pJRyN+LX/ziVC/B9YEHHkj1g7aYt+EYLh4TjnJC8KSGLtliiy2aFVdcsXnqU5+a4rzjjjuKekHx8HUy+aRfetzjHpf6PMqO7SWi17CVV145lR240c8h1157bepnjz766OZ///d/FWXn75prrtlstNFGCXu21qHcKYNvfOMbDXWhj0x6DNDVt4IxZcX702+TV96b/p16AM5t22oOqe+8NzgilCP9B97uaCe0KQiSJZ05CosUYfiHIYM2QP7RjWyDST4Zh3zoQx8KTzZJd/FV+xD9Td149atfneJE51IvaHcXXHBBw3itJH3rYB6WcIzXaGukQb/y7W9/O53jPeS//uu/kvc7wo3TVkr1g2uM/UYJ+TrxxBPneoy8bLbZZg3EK+oUY1V0EGVC2bfJM57xjGbddddN+hZde9ttt6X3ffSjH9284x3vSMFIqw1nHhgyDh2az1F9MXpt0nq6Dav8+iabbJL6g8UXXzzVf8qFsQ945X0P46VXvvKVKYovf/nL6XnaImVF/821PtJ3bpDHRTlvtdVWqd3R/v/4xz8m4jDpxvoxJJ/kfeutt05xPulJT0px0uYvvPDCpjT23H777ZtFF100bSF87rnnJh1Im6KfoO8FO8YLd999d8r+E5/4xGbnnXdOx8w96D9KQjksv/zySZfhAZTx8LyqE6X8lQhcQ8Y4eZwzMQ4QhqTNnJM56AYbbNA873nPS15Ef/rTnyY9wVimTWp0cM2YmrEJ9ZC6xRbVjNsZbzAfZ6wSpaR3cwIXfTNjCtoC701cjCUYm0ZpG0/GZ2rmKzE8x6PG5fPLHAFdzlgPTE8++eQ0/ll/zti9ZvxHP5LPGyJuQ+pEDNd2XKt3S/FFPYi+Y65JH0y7Rvcx7r7uuutSULABo2c+85lJv3GfeccPf/jDuaIu1Ws9UNOm+s4lJqEnho4JSvO1trZYwoX0JjHH6TtOVDmM+h2qL4eMu9vSHrI+0BZHfn0m6w51+2Uve1lqH4ssskjzq1/9KunpSy+9NM0/8rzpHF1Eu2LswZyR+RZzU9Z74rw611k8u+OOO6ZxGzoGoS9k3MxYm3bJXJR46Yfy9QqeZ62AdRz6K+oiY9gbb7wxrZmx9tZHRo2LtUZFXH3njPR5zB/os3hP5obgCDb5+LRvnKQ/ZEw5VBdEXdpnTEl+ovQdF8cwQ949hovHQ9Y+huqFmI6PjYARMAJGYHoRoA9fcMEFk02KPow/1tP447ivLDDHIFC2YvWNwc8ZASNgBIyAEXiEIMCEFaMjIvKBXp2Fs3/5l3/RafOBD3wgkUZ0YaeddkqGCM7xOnPDDTdMEbiY+GJIwxCRC0ZIDPoQUKIwIcUg0SYYOvbff/+0OMCC3/ve977ioxg7WMDuEhHNcmMxZDYWRxl8lASCG1uAaQuE0jO+NnkESgQutkvEeJ7L7bff3uDNZZSwQPz2t7+9taxZxPnEJz4xRVoiPpFzqDcYtDHk5cJCFHmDmCCpDUd4DMoYKlg8KQmGw/e///0PMZzWvJ+IRrz7WWedlchbShNvUhhcJ9VGRpVfNM5ARmHhrySQdDC0RRn67qPyEuPOjxUWAgqE0IMOOqhhqx8WMMEQEa4c77fffmnhkoVCiCTI97///QYvVeg0dFsuGJ3f/OY3T12G1MFiaUkwElH/I2GobZG/ZBBgERrdjrAwy+Jmrg+pHx/5yEfSV6olHQ+5jnfhOeS9731vw4IhxkAWRNV3/OhHP2oOPvjg9EzXv5gnSGUYyhEmjvQlGFNKQltE18dF3dJzXIvlgacwFhohYeXChJV+CB0QhX6U/rQk4IDBFyM70tXXvfWtb019XCmeeO3AAw9MBIJ4LR5T/m19ZHxuOscA++yzz1RSkJHID8TpXKjf/GFUyftknh1a3wmTE7hEIuQeXvPilqVcQ2L7k0e9v94p/1cakBqpL2ydilBHaOdIrf6GqEpdIHxJfvaznzUHHHDAXLeG1MEYkK/NMabmQr2FCCCSiMaK47SV0tgLXVKqF3l+0G0yQHKP/vdd73pXqjf5s5znW27pGfQJxqhcr3EfUg/YI6MIXH3HoTX5VJ9BGZT6YurFpPV0eumOf+hD8MZIVxL0LTru8ssvn7od+x7ItxDChTtzBuYOo6RLXxI2zg1iXMwnIOgrvXiPY4x0xx13XLrcN5+jxj/0afSrkcimOg8Zi+vLLrtsSjP+Y05BO8AgysIn4wp+KX/0aIxP4TT24BnGBy960YtmvE4oL6XfEoEr6tgYJh/jxHs6nolxAMS6vffeOyUJmQTiVqn+UE6M2XLDc40OHlWnSvPONp1NxqkPtDX+JKqDsX+NBC7m/xixS8K4X95kuR/bype+9KUGA7Kktr9T+Pir+h2vcaw53vwyR4j5pNwgtLatdYwa/8W+V/MG4TO0Tihc22+t3m2LT3UQggc6G8J+LtRD+gXSzoV6nc/JFWes14Qb2qaGziXG1RM1Y4LSfK2tLZZwiXWnZo7TVr8ol9I4MS+/0nmNvuwz7i6lpWtD1wcUru13pusOZY7uJt1cKAvGrRfP+cAwCn0YH2lRb0tCOLZD1Adxuc5ibkPbKwn95KGHHjq1PpaP0/nQgbVkiFslYa2YOXUkkJWe49qocTF9FTJkzkjazHFKsttuu01dHhIngWLb7Br71ugCte++Y8qpl5hzMGRcrHBD313h8t+uPiX2fTV6IU/L50bACBgBIzB9CJjANX3YOmYjYASMgBEwAkUEWABgkZTJfb4AhoFLXk8IzNePfD0qkUEUwwMeVRBNKvUMiwIYGjE+YOxiAQnhXIvknON1hq20yAdhMILgnQNvFSzyaaGCrzAhq/DF2dve9rbkAQEvWQhfoBEvBC59xZluFP4pn/GdMR6zQKY83H///YlkxnUMemKTszDC12qWmUOgROCivuD9QIvAGIDwvEPZt3ksUI75Wp3FKBnHWQSB8AARBOMk9xEWlli0lIiIpXN+SZNBLF/biVBGHWYxApIXUhuOsNG4DfkRT3O0B3m/4BnqPe2BhTOk9v20OEYcvANtQcd4msJgMKk2Mqr84gJiysScfyzwgTcLXmr33ONZLf7VvPuovCj90u9hhx2WiBtafILIxVfrkWgUce0icGGQZ3GZsgV7dCv6k3cGdyQubFFGWsAjjAhHXKfNYGRE4kJiNLiVDALRSJoCz/n329/+NuEb65zukRa6mraErpTEdPDGyFe7ItfiEQVDPobJj3/84wrS+hvzFHHFsI2BFaH948mEvC6zzDJThBDaDH2N2kZbItG4oWd4N0h53EPPqD3IgKjn5FGMc8JAYGN7SEhrEFMU7tRTT00eKCFN4SmFBW3pDL5mRiC00Z67BC+VeB1CMCBDOuH9SY++UelB/Ch9CR3jnq4xQOxbSQ/is+qH6gz1GwyUX57Lw9XUd+KRkQdsaAt4T3zVq17FrTS+yImDlAOESvICptomJAVo+ac08ttxa9Aa/Y3BA7yEC2V71113pXoI+UPXo2F9aB1UnqNu4hr405/RF2rMw3XKjLJAxmkrpbEX+rfNA5f6YtKNdQP9D0bKI22Gtkodi3Uqb6t46sOzi4Q40a+0U3nD071RBK4+49DafMZyAXuVOcf0xXiTEoFL+R1XTyuett84jmFshL5Fr6J3YtuGsEtZILHvifHyHnieFIk53ovHQ+cGCounhtiGIQ2glykzCNaST33qU8lbYZ984oVSnioJD3me8Rh9A+M/1cW8zqnOK02FBbvYp9LORdTGC5wINZEMrjgigUBk3dhP6rnprhNKp/RbInD1GeOU4uJafL/pGgdEXJUP+gPVnUhYp/5i9JbU6GDazdAxNV5/ZVhmfENbYxzIuDjqUdorhBhEdTDq0Ejg0jswj6ZeE1d8V+a8IgXEthLHecRR098p7fx31Lh8fpkjxHwynwS/2vFf7HsjgaumTuR4x/NavRvjyI9VB3WdPoB6yzuVPsJAH1Ifuac1IIhfUQcrzliva9rU0LnEOHqidkxQmq+1tcUSLrHuxDLoM8eJ4xHCgveocaLSaPut0ZfE1Wfc3ZZmzfpAW1y6PpN1By++GiOQPmNX5hu5vmZrw0jgjeVHu2POTtuLYzf6EtaRKNdcZzE/goTFGoP6BcZUjC8g7LOzgsaHjGtIT6J6y7n6K+oPHyVSJ5E4Z0oXWv7l75GPi/GAOnTOyHya9gyGjOGkl5ifykP40DjJfmyb8XXi2LdWF6h9x3jpt7vGlDw7dFxMmJp3J1xJ+qx91OqFUnq+ZgSMgBEwAtODAGMFxub0w/Sd/HGs876p2gNXX6T8nBEwAkbACBiBOQiIiAUYLEQwsUbkSSadzPmHgZl96yV4saCTlvGA63FSyeIbcbANA4JxjC+W5aUC7xGQExCO5WEIg37cypFwLABAEMgXBnDJzTZXCESK6PUoXWz5p3zGRb8YF6785S2FKKJBNYZpid6XJ4xAicBFEizscg9p87aRbmb/WDxn6xEkemHQY9FLAEYEFpcQLVBxzCIMZELqvyS2pbi4XhsuGqxYcCM9BswIC1+0Ly18xwW72veLi2OkgfEHA6uIaJNuI13lFxcQwZp8YDCToIvkySISVWrfvSsvSrP0i8EMHcUWAuQTYy5GYsimIuJEXLsIXIqfd6V8IaWBg4Q8sjUbehejIp62IHZIMFizQIdgXKd+IHEhMRrctLAajSKxzhE2bgWJHiSMDNXkASKM2kA0auA1DeM4Qr75w9hN/WXREkIv7UptKz3Y8i/mKRpuhROLwhh1IBVIIuYxjO7nv7lxA+zRLRB5EbbXg6SHRIIPW1nQvikT8kGZgL0kerhiQZg41IZVh6k3IscoXNcv3qEwRJAPvAgqPsLQJtRPxzrQFV/UW5MaA8R+cv05W3Zo2x+uo8eEK8QH8iuiTgxXW995Vxl5ROCKBC3KAeM1uEvwaMdXxgjbljJGGCVKg+coi2OOOSb1Q4o31tsh+hsjCh69kDi+4hx9I6OC2m1tHYz4kmfqAeR5hDb67ne/e6p/iXW0tq0Qb2nsxfWSxDIhfXSPxobUe22fjNcA2oSEOgWJSORI6pcIkugkyE9I1G2csy03njskowhcei72i/k4tDafUX+RTt4Xx7rF/fgutXqaeNoE706ve93r0m0Md4zZ1b9xMRpdqOuQdpHY93DOdouQ59VncK1LaucGsZzxyBtJ/ZEAS78N6aRPPvEWRrtAYj/KOf0+XopV5/BIoQ9JVOd5Dj1BXdUWt5QV/QdtCqHNMWeK/U3J214cH8mj4EzXiZThjn8lApceV9+dj3F0v/Qb3y/26YprEuOAOIYhDzkZj2195F0RnYT3DvqyWh0cdUffeafGDeSPuiOSFuexHkeCvOpg7F9zAhdzXvIgid4ymM8zxuKdYxqxHcTyGdLfKb3SL31U2xwvtgHyRT2YjXOEmE8IXBqnqhzJe9/xX+x74xxTcYFh3zpRwlvXavWuwpd+VQe5x9iFPlrj/7wuyquP4uGdmFchzHPQo4jijPW6pk0N1SG1eoI8144JSvO1trZYwiXWHfLRd45TO04kjTap1ZfEN2rc3ZYm12vXB7rinMm6o3IlP5FUyzljtF133TXNReNaKe2GMQ5zVHQNbSluRSoP2cQhfd6msyIBKB8fq43GtOPcjz6Euq9xI2u6jKn0IaU+giMfbTJqXBzrKjqi7xoJ6al9RV3C9do4Y9skntLYt1YXxHrQd0xJHoaOi2vfnbS6RP1V3veNoxe60vM9I2AEjIARmCwCrD2bwDVZTB2bETACRsAIGIGRCMRF2rggcOSRR6aOmQmWjNMssiEYzph4Iqeffnpz9tlnp+M4qeTL5LiYygNxshoNXUzm8LbF15YQZnLB4ItnpHyyFxfqYnx5+Pxc+YwT9Uh+4Ms1CDFRMO7yRTxfnLEYYpk5BCZN4Nphhx3S1/zUJzwdiKCkN+L+xhtvnE4pay12aYGKG7lHOq5FwynGJLWX2nAYASEHKZ8suEbha0jqMsLiEIZ/pPb94uIYX+WKKJAinfNv0m2ExaE+xpnc0wH52WCDDZqdd945ZS2S92rfvSsvKZEx/kVcxyFwRa8cMtrm2dICHXUGgxuLpnEhUQu0hNOCpYggXItGuJJxNdblSBokLIJ3GAheGGZKuvyvTw37H/MUDbciEfOO4CrDGLGzEPiWt7wlJcTWjaUt82IuonED7GhLEBWiRAO+PGDg3QtjDhKJhDEc+XjOc56TLrGFJPlB2hYx082Of/R1EAUgGkUPIAqivpsvcjEwj5LpGAPEvjV634LwJ5KQ8hW/Ko/haus78crIIwIX1/iCnK2hETDia21JJO3m20XrmfxXaXAdYqU83um5Gv2NMUNlSh8CoY76HYX8QVJCqFt4lKqpg7HultpyXEynTcjIXNtWyG9p7MX1XPDYR/kz9kSi3iJffAyA0EZFrEwXHvwXDUfqP9gOVn1yqX8jKPESP5IbqNLFwr+2cWhtPkki9hmlvEadOBN6OrZhkYxyKKJ+VD8X+x4MTdS5qKfzOPLzmrlBJM2WyE/0T7QxdKj6vlH5jHVHnoDzvK677rrJgMp1dAE6AVGd57jUb1N/IWwhcetWEXVjX54emvNP28uhIxiX8cxM1wnlpe13pghckxwHRGIG9XXfffd9iP6NZBPNA6IuHTIOqBlTRx1VaosY35mL0PcxXkJUB2P/Gt8jEu5jefJBFZ6OEQi+bJUW20rUyzX9XUyrdNw1Lo8kA+n4GMdsmSPEfE4XgaumTkSs8uMavZvHkZ+rDnI9X6+J7Q4CCF6G0GkSPgCgT0eYt9x8883pWHHGel3TpobqkJjfIXpinDFBab7W1hZLuNSO26JuGzJOTAXU8i/GOURfEt2ocXdLkuly7fpAV5wzVXfiBw05wVH5ix9/aA02egjDi2K+gwBzIuZGiAjtbTprKIErjhtLc6S4NV/sS/Q++e+ocfE4c0a1r6hLSL82ztg2S2PfcXSB2jf56zumrBkX1747+eqStrWPcfRCV3q+ZwSMgBEwApNFwASuyeLp2IyAETACRsAI9EKA7WZkaLjpppvStjTLzNmCioVhBA9FGCYQGTYxXuOyH5GhhmNNKqOxj+uS+OV7JIvpfvxlARpvE2uttVb609djMiLybJvhLMZTOlY+40Q931oHI83555+fSGhDDE6l9HxtPAQmTeAq5QYPMLiTZws7vtKUJ4U2AhcLG7ivz4W2RJtCWGxiMTqSXvqGY8EHMgyCq3stsKUL4Z8WyNranB7t835xcSwaEhXHpNtIX+MM74huigKBAX2EsJjP4lub9Hn3rry0xdv3esRV+jIupscv6YlTX/TmhnmVNR6E8HhSEgyOq666arolLyBxITEukmrBUkZsAkUjcNyiTWlBCFp++eXTKV/u4lUrigzLTOx410lIzFMkcEXCACQXSFoXXHDBlNfHIWnH8sADivq/GIcWHbkG/pSDvFfR/ijnUl8BGRTDARLJhopvVNtNAUf8Q+fQX26yySZTJKW+BK7pGAPEvlUGjrw+x1cSWSGGq63vxCsjTyRwRaJYJFig62lzjDFi+jF/pWOlAfFchHY9B0mkRn+zXbOIjyXyCfHj7QcyOfWP7UsgxbH9x9A6qLpLnOqrOI4iYluso7VthXhLY6+YHscYNuhH1QdfffXVqXz0XDREXHTRRYlopXv6RedTpxD6afrdaNiVbtTz+o0eGsYlcNXmk7zEPqPUF0edOBN6uk8b1la55F/4xr4nL0eeq5FRc4PoSa1ksCRN2hnbF9J2b7jhhrlIKaV8xjhz8oHeAe9c9ElI1HWq85HUrzD84kWYuQwS50WQPdZYY410PRJ/6d/p55HoZWmm60TKQMe/mSJwTXIcEIkZEI3zrXZ5XeYIGLgR4S9dOlQH14ypI+GPPuDGG29MH5TIO2HKWPZPdTD2b5HAxccaEEVz0XbXXNfYK7ZpjSdr+7s8vfy8a1weSQazeY4Q8zldBK6aOpFjPep8lN4dFV51MI4lFIZtDylDhDkFc4sor3zlK5tXvOIV6dLxxx/fXHLJJelYccZ6XdOmhuqQWj0xzpigNF8rtUWAKeFSO26TbiPeIeNEnm8TxTlUXxJf17i7Lb2u633WB7rCz1TdieQW8INMm0vcSpUPVPhQRVjzbIlExXWIWeyOwLonf206ayiBS+PGtjULPlhhjReBRMyHiF0yalw8zpxR7SvqEvJSG2dsm6Ux5Ti6QO17yJgyjmH7jotr372rDLnXtvahulqjF0al6ftGwAgYASMwOQRM4Joclo7JCBgBI2AEjMAgBDBIMHmX0V1fRTE5xMMDk0VEXxuLkJJ7P9CkEmM6X1DmstlmmzWQuJDcOIbRji1a+BqMvMjzQowjX/ibJIELN6BMHlkwzgVjDIsLeE7R1k/5Mz6fPgSmg8CFcZh6vvrqq6dtcTBAlKRE4MrrYQwHaYVtVhCFVXsZEg7iF4scEsKWJLYT2py8tdS8X1wc40vOfDFt0m2kr3FGpKf4/nHBX0Y03a959668KN7a34ir3iUupvclcMmzEvnoUx9OPvnkpLPjQqIMbsShBcs2Ald8lucRyCUYvxHItHk+ZpLAxQIoZOLYBsgX5Ee2D4R8DMGlj8Ty0FfIebj4NSrGT/pH9Z1sC8ECe0kg19C3IHFLvLZFzFIc+bVnPetZzU477ZSIO9qCIn+mL4GLcHqPSY0BtAgeyWGRNJXnFV35lKc8ZS4CVW19J24ZeSKBi+uqn3HhOxIfMAxiIOwjSgNDispX4eJWllzL24mei3UX/c0WfiL75VsDKkz+q7IbWgflMYX2ArmpJCKEkn+R52vbCvFrjKj6kadJH4M3EfQ7km/dzbUdd9yx2XDDDTlMMgpb4QJJAZIjIj2cTsK/uEVaPkYNj8112DYOrc0nkcc+o9QXxzo73Xo6EpPYro3xTEmikV3bFsa+J3rrLYVvuzZ0bhCJZLR3SLOjZFQ+Y5zoeW0DlMcr/RLblOp87GdjuJe+9KXNq171qnQp1jm8DuN9GIntIHoypiy0hd5M1omUqRH/ZorANclxQCRmfPvb357qR+KrMr6knBH1sbU6uGZMzXgCYi16OAp6kHqC4R4ie6yjqoNR70YCV2ksR9wRD23xGNuKdE9tf6f5SnyPeNw1Lo8kg5I+ny1zhJjP6SJw1dSJiHPpeKjeLcURr6kOlvRg7GP0IWEMG/uWUQSumjY1VIfEdjFET4wzJijN10ptEdyEdWzvteO22nFiLL/8uFZfEk/XuDtPp3Resz5QikfXZqruHHTQQc3Tnva0lGzbmJebmlNorCasuacPjzjukjadNYTA1eYhvivdUfdGjYvHmTOqfcU2Q35q44xtszT2HUcXqH2XdCl5Lo0p4xi277i49t3JQ5e0rX2ormrOVoqjbT2l9KyvGQEjYASMwPQgYALX9ODqWI2AETACRsAIjEQgbvHEBJnJFcYDGQ30hRnnfBnJ5I9FgiuvvHLKywSJaFKZE7uUgTYCF15Dtttuu6mFBz3PIgVbFrKNHItynMuIyDNthjOFb/tVPvOJuhZ2WJDhq7ySnHrqqc0555xTuuVr04TApAlceJjDkxDlnQsGBeoZJEJEJCyORcRqIyjyDCTEF73oRRwmbwx4d6gJx9fOGMCGiIwYte8XF8cUV57+JNtIX+OMtquLeWkzztS+e1deYro1xyVc42J6HwIX+pavWYeIjGtxIVHXiEcLlnERMBqBWSjHOBElErhK5SIDtohAMWztccyTvEAoLjwRsRCKRzYtXOsev/RF73rXu6aIjfFePI7l0badUInApS+Mo8eVGC/HMe577rmnOfDAA9MjbYuY6WbHP5Fq8kfQW7/85S+nSMgyLufPlc4nPQZQ3xq9xaALGUuURMYJhRunvhO/jDw5gStipy1GGNPgfRFp85CYbmb/2tLgsXXWWadKf2+99daJxEUcp512WgMRZpTU1kEtzreN10hX9SKOvWJ9HtJWiK9t7MU9JG5zSV3AkJQb+WMZ/jVU93/pN/XDPF3SXVyn/5D3vUim4V6btI1Da/NJOqU+I6YfdeJ062m2s8T4g0QPgjE/HMc8MUZmrNzW9+Rh285r5gb6ip84qb/5FtmltEbl84Mf/GDyfBfbQSke1e8SgautnZWMbYpbHhBIlzqBh0f1sfk4NOI/3XVC+ev6nSkCF3mY1DggEjOi17P8PaVz6W9pGzqvGQfUjKkXWWSRtF0n783cOBcIytRZiOyI6qX6V671IXA9+9nPnvIu2UXgqu3vGCd2Sde4PJIMSvp8tswRYj6ni8AFhkPrRBfuNXq3Kz7uqQ6W9GAkcOFR7hOf+MRc0Q0hcBGwpk0N0SG1emKcMUFpvtbWbwnr2N5rx22148S5CjA7GUdfdo27s2Qeclq7PvCQiLILM1F3tA6bJd16qg+RhHU+XmgNOOdGm84aQuCK3oRvv/321B91pdnnXte4eNw5o9pXbDPjxNnWNvWe4+gCte+SLiX+0phy6Lh4nHfXO7b9tq19qK7WjKPa0vJ1I2AEjIARmDwCJnBNHlPHaASMgBEwAkagFwJxosniyK677poWhc8777zmlFNOSdt1YIhlUZjFHCbRSO6Oe9SkskTggqiCkYLJIoKHEohh11577ZS3q9I2PjzbZjjjXpcon3Ginj/Pl264I8cjA2Q25Y/n2K6AibNlZhCYNIFLRjFyj5cp6htfrUOuwNU7ZMJNN900vVyJwNXmDp4AceGLekt9luF4SDgWoLVtIvk65phjUn7a/mEwZOs3pPb9uhbHSumO20amwzhT++5deSm9+5BrJVzjYnofAhfpsSUbnuLwzoZxbpSwFQl1Lur3hxuBSxjQXtgijy2n8E6FQUiSe2jT9fgby2MIKUVb/3V9MYrXH7z/IPRrfGWKtC1ippst/6KhFKM+24eiv/BaIKKCDPxDCFyxjkxiDKC+le3+VFfbtqTiVdVuFY5rtfWdsG1GHjx8Sq9i4Pj4xz8+RUjXVnuE7yNtaRA2pjNEf7NNEMZKRF6M0knHv9o6KM8KIjiVkigRV2rbCvF3jb122WWXZv3110/ZQG/RPthGMhc8z0FWQfAKO8rLHu0Cg0D0wEU/zbVcIO/rI4FxCVy1+SRPpT4j5nUmyTqRCCGvDjEvOpbnXs6ZJzCminol9j0K0/VbOzeIJEDIeBoXdaU1Kp9x6+AuD1wydjOuxHMaojo/xNimvEYvDczF2E4bcj2Sf0Azk3VC+ev6nUkCl/Ix7jggEjPatmfF4yXkX0TbvdXqYOVbvzVjasgDa665ZrPyyisnL5aKK/alqoPxWiRwaa6isPqNdarLo2ttf6d02n67xuVxrjWEwKWxBmkOmf915aUt/1yP+ZxOAlfMQ586EZ+Px7V6N8ZROlYdLOnBSRO4YvpD21QfHVKrJ8YZE4hgEsdrbf2WsI7tvXbcVjtOjGWQH4+jL7vG3Xk6+Xlt28/jaTufzrqjj1xIGzIOZO4u+cUvfpE8GgvrSCrvCse9Np01hMCFBz+86SLR83S6UPlv1Lh4nDmj2ldsM2SzNs62tqlXH0cXqH2XdCnxlwhcNePi2nfXO7b9tq19qK7WrKe0peXrRsAIGAEjMHkETOCaPKaO0QgYASNgBIxALwQgBWB4gKTERFveKLSoy+Iwi72I7pcWA0ZNKksEro033nhqy6A2Q7vcKudfv0+SwLXVVlulxe+77747GQUjcHzhDImIBQnk85//fMPXyJaZQWCSBC4Wp/V1L97d8NCAsThKdDVeInDxbJsBWAuEkawlAteQcNQ52iSir/zTSfbvZS97WfI+dT5r6gAAQABJREFUxKITBpZx3m/U4tik20iXQSQuIPY1zozz7l15ySAffFrCNS6m9yVwqW6hB9HHeb0lYxgW2BYUwWAOeaFtIVELltEgEA12LJTPVg9c9FEsUiJsT5CTMWKfRTvna9cuieUxhMAFiZltAikT0qAd5hIXas8666zmjDPOSI+0LWLm4eN51E0lgkkkWwwhcE16DBAXwfVVbbwW3wnsMYgz/ojP1NZ34u4y8micwhjmi1/8YrPzzjun7Hz1q19tvvKVr8SsdR53pVGrv6PHkzayjLxikTmIJRBFauqgvsim7rJ9I8TQXEQGjGOv2rZC3MI+ljPX8VqJ90rJpz71qbRttc7jL8R69Qlt2xdRlyCEkVe80Fx44YVzeZwRGSHGy3EknZTaV/48523j0Np8Emepz+C6ZKb1tNpwm8GIfEUDI/US/dPW9+g9un5r5wbRC2pbOUu3yCvFqHzyUcu6666bsgsWV1xxxUOyHkkszCO0/aHqfBt2JWObIo/6HLIQcaAjEPoPvCJLZrpOKN2239iWYr/H80cccURqm12eFvJ44/vJE+ekxwGRmNFGOI5jC5G8ascBQ8fUkFVf85rXpL4SgiTE7SjMUZmzaEt49Ah6XXUw6t1I4BKeMS6OY18DmRdPKqW2Utvf5enl513j8vlljhDzOR0ELkgjNXUix1rntXpX4dt+VQdLenCSBK6hbYrxwdC5RK2eGGdMUJqvldoi+Avr2N5rx22148S2esD1Wn1J2K5xN/fbZJz1gbY4a/qf2roTPTYxfsl1P3nkg5nNN988ZZe+gjlEXD8rbcdNn8EaFWNm9XltOmsIgYtMaNzYRsjhgw3G6QhzL+ZgXTJqXKxx3dA1EtJU+4pthuu1cba1TeJExtEFat8lXUrcpTFlzbi49t3JQ5e0rX2Moxe60vM9I2AEjIARmCwCJnBNFs/W2BicLbvsslP3WQwqLdhOPeADI2AEjMA0ILDRRhs1eKW4//77R07YpiF5R1lAIBpfuB0JWiwQsuBOHyLRRF/n/I6aVJYIXNtvv32Du37ksssua4499th0rH98Scq2Rkg0InIeDWd8ufPd736XyyNF+YwTdTxxPOlJT0qkCBa2SSsKeSSvCEbf888/P9728TQiEBegDjjggCmvHHFx/+qrr051dFQ2WHBjyyyELxTZEi4Ki3x8NUidR9oIXKWthOJ2Ydp+lDgigWtIOBEXiUNkSo4l0bOPyBrjvN+oxbFJt5Gu8osLiDLW6735jYZNET/HefeuvMR0a45LuMbF9DYC169+9aup7WtIN5J3coMo9zGiUWeIG3LXHnvskX7bFhK1YDk/ErjwtgXpBJERNZ2Ef2o/bYvH4dG5tjkcQuCKZXvppZc2xx13XIw2GVLZ+uJxj3tcus52jox7EC1iclyq41zPBT2w1FJLpcsYVu644465HolejKQT5nqg42SSY4DYt2oRmKQpE7yQRYmee2K42vpO3F1GnkjGoO6zXS79/V577fWQ7fpiPvPjrjR4VvWP4776G+8ujGUYa5XyhN6j3XKf+Tv1r7YO4kkIYxJSakMRpzj2irprSFshndLYi3UJvg7X+HKUIYetouhTEbwQ8P75eC1uuXTJJZc0xx9//FwGkxJxBP0J9ur7awhccRxam0/eK5ZpaTvjSGahHk430VZ9BXljHECfG4X+E+MLZRj7k7a+J4ZtO66dG8RxWMmrXiQLYrxH743KZzRcor/R47nEMUv0NqY6P8TYFuOORi28IFM/o4cvPTvTdULptv32IXDlY5y2uLge30+Eo0mPA6JxHawpZ+pQlDieP/jgg5PRO7bXIeOAoWPqCy64YOpjK7yxyZtkzF/sN6U7VAdj/xoJXNTNt7/97XN9FLDQQgs1EGkhg0U929ZWavq7mO/Scde4PLa30vhptswRYj5LBC7eu5T/Eh6x79W8IZLvh9SJUvxcq9W7bfHpuupgSQ9OksA1tE3RvofOJWr1xDhjAvXBffpXYR3be6w7Q8ZtteNElXvpt1ZfEteocXcpPa6Nsz7QFmdN/1NbdyKxss2jVdwOnn4KAtfuu+/erLXWWukVcq+dXKSPYKcBRGPvNp0Vx0H5+Fj9ouYlxKdrHJc+yojbQsa5Mc+XJNYb9W3xudj3DVkjIQ61r9hmuF4bZ1s/SZzIOLpA7bukS4m7ROCqGRfXvjt56JK2tY9YvkPGUV1p+Z4RMAJGwAhMHgETuCaPaTHGVVZZJW39pJsMnG644Qad+tcIGIEHEXjMYx6TCEac8iUtX+kOFSY6L37xi9P2a5ACWAzEEwTbtpxwwglFTw1dabDozARulEA+YFDfV/j6hq/3MfjydeVMiCZ1KH8mYZZ5j8A222zTQLCSaGsInVOv5IGKa6Uv20dNKksErrgAwsT/Ax/4QNryBIM3RL8ttthiyrCHkY7FCBnr4oI+i5ksIGOsHyXKZ5yox0WqG2+8MS02yMMNLviZyLIgjLC4kXt8GZWm79cj0Ebgoo5Qlgi6hEUBdKzKrZQiBkbcgstYLEIBxlvqIl+pYUSXsH3Addddl06lt3SPLa74o84RlsV5ffke20dtuPXWWy99WU169EHgQH+E4IWBOktfhcgr3DjvFxdPSotjk24jXeUXFxBLxo2ScWacd+/KSwJ4jH8lXONiugwxSkL6CT134IEHJn1InY5Gcu4xjpAnQHQzZET6coSvcyHOIG0LiVqwjAaBqFNnghiQMjjiX8yTDLeR6ALZGK964Ihg4OYrZLajQyA5QXbqklgeQ4wbGJ5IW/pEC+CkhQGUfgPDAXLrrbemNpxO5vyLdZztsfASxLt0CTqGbSIRSKIY99F9lDuGN3lf436JpML1NpnkGCD2rdFjCfUYkot0KmNa8i38Yrja+s77dRl5olFYWLQZRHS/9NuVBs/X6G/CxS+lGctDEoBsTF2DwLzYYovx2FQbr62DT3ziExMZR9hT/772ta81iy++eMOX8ZSbBH2jrQVr2wpxSbepnMk7/aP6XK7Thtrk4osvTm2EbaxZ00AwWkPC0diPcebWW2+d6hT5pg2KhCGdRzj0AsZe+lbygfELo4okN1Dpev4b9VM+Dq3NZ6nPiOnGNGdCT8c+hLksOk8kLnQP/RRESCSSl2K4eD2+S9vxOHODOGaMZQJZkA9CNG6C2AfBr08+RQwgv8RJ/woWjPl22GGHNF/hXuxPOVedH2JsI5wEL6vbbrutTtNvyTg5XXUivneJiDpXxsJJF4FLmORjnBD8IYfx/aZrHBCN62SAMiOvfLBEnYHktNxyy6W8SYdxUquDa8bUkRB96qmnNuecc07KD//IP2QU6qS8y3FdeMc8RwIXz0BmBFd+l1hiiTSe5L0Q0iAtpK2t1PZ3KdKWf13j8jh+ms1zhJjPSOCK1/uO/2Lfiw7SFmU1daIF8jSXFaFp6JpMW5xcVx0s6UHqGTYJhPUXeclOF+b8i4Rs6WzuKc5Yr4e2KdYMRJrvO5eo1RPkuXZMoLFL7F/a2mIJl1h3hsxxaseJvGub1OpL4hs17m5Lc5z1gbY4a+ah49SdSHjCCyhY0IeyfkWbfd7znpeyGtfWIxGXm3i5YpzPXAydzUc/YEM8eOiifUbdFHXWUAIXxDCt8TNWgsTF2gTpobPZshyJ+U0XWv6NGhePM2dU+4q6hGzUxtnWNuOr1eoCte+SLiX+EoGL60PHxbXvTlpdEutX7PvG0Qtd6fne7EGAseV73vOelCHm5tThcWVonMwlWB+kvqE70X2sETAXZG5VErwbsq6wzDLLpHUCjbFZZ/vyl7/c6jEc/YuHVNbsOWZMdc899yT+xTe+8Y0pe1aeZk246bIT53mrPUfvv/zlL2822GCDhD24/+xnP2tuvvnmBixq6kJtnDMdLseMMTtlzLoIa29twvox69l8sM86P5ix1sW6F3afn/zkJ3MFZd5NHe0rfERF31cj9Nu0H7CkPfDHsc77xrnAHIb53C4z+oZ8hDwXO25e2QSuR0jB+zUHI1Dr2UcJlRZcdY9fFDDt8bbbbouXO49ZONTWCV0PQmKI2yp0Pcs9fQlBnmSgGRVm3PsiNPSdtI2bnsOPRiB+DcTTccGW8/gVF+csFuTExlGTyhKBi86fSb2MP8TNIpq8IHDOgpXuswjAgOeb3/xmGgBq0Y/nkEic+euVh/5XPuNEHZIlgxgGIAjtgfcjHzEvbdsaPTQVX5kUAnHsEj1wEb/KUmnFRW1dy3/50u9Zz3rW1GUZ4Rh0ItQLDAcI9QCiO3VUeivdCP94RmG5DEkXz12S2nCEjx53OKdtkBbtRkI/ApFDUvt+oxbHpqONtJVfXODpa5zh/WvfnbBteeHeOFLCNS6m53U2vjvpRj0VvRVxj7pHnSA+CZM7FgbxmoC0LSRqwTIaBKKRdCaIAcpz12/Mkwy3PJ8bIFkYYVEaQ6vaI/hAzMgnuXl6sTyGGDeIZ7vttms23XTTqShJE50S+w3K4t3vfveU9y0eju+lwCXipO7xy2SexS+9H9dif5nXB9JljAcBaJRMcgwQ6yzp5nqMfCJ6D845zsPV1HfiHWXkyXUyWwXiHXGIjEqDuPL37qO/qYu0TfVBxEO91tiEc9osxhaNwWrrINsNacsV4s1F5cKv5gfjtBXpWJVzNPrnaZfOtQUMC18sgEW9R12nzalOET4nOKy88spJN8ZnYvuJx30JXNH4rDxrHFqbz1Kfobj5jbpjpvR09O5AHqiT1Is4Fsm9U7X1PYQfJePMDSDZMBaIbSZvQ9GLcJ98rrTSSonAk9cd8qlr4EF5xC0WVeeHGtuED3VcW8xyjTT22WefKcKinpuuOhGNxmwLqY8IlG7bbxeBq2uM0xZffL/pGgfkxnXlBcxVxlzjHCwg/kpqdHDNmDoSG0kbnYXuY44c8xg9RasOSu8SLh8/cQ3J3xVvb5AeGdMgXW2lpr9LkXb8U971iMbLsQ7N5jlCzGckQ8T6rHcbNf6Lfa9wIGxNnVCa+e84ejePK56rHEt6MPah4xK4atpU3hZGzSXG0RO1Y4LSfK2tLQrr2N5j3Rk6x6kZJ8ayLx3X6Evi6TPuLqXHtXHWB9rinMm6w0cLbGsrPY+uRvfrAwjyWOqbMJpDPpDwDKJ4OI4fH7XprKEELuKl72AnBUmeNud8YMV4bJSMGhcTvnbOqPYV24zyUxNnW9tUnPzW6gK175IuJd42AtfQcTFx1bw74bqkq++r1Qtd6fne7EGAnQHQIwh6ZhIfww+JE6+1bHffJvHjVz2z5JJLpnW3uKane/ot7a7Bx004JYjrFHqeX3mAjtc4rg03XXbiPH8158zF0fO8W0lYt6Z/xi7cV2rjnOlw+fvwoS0e/5EzzjijlTS4/PLLpw9p4jpGHhdk7DPPPHPqcvyYY+pixwFjXfrVGjGBqwa1HmGYhLEgDyMfQgoDhSgmcEU0fGwE/g+BSOCSh5b/u9t9FL0N8CSGM7wZ4cUHBrcmTBheWITVolh3rE3zwQ9+MIVnsoPCbROMe32MdQpvApeQ8K8mhSCBsfm+++6bAiV6cGzz7AHJ5fGPf3xxew8iKhG4uL7MHLY4A89osOQ6beO0005rrr/++uRhQYOY8847r+GrHYTFjOc85znpmH88j1ekLlE+84k6i3IssLYN0vlKgLAsmFtmDgFtIUOKeBmK+o2FKRYXVTfwIoiu7BIIHtRvdHIUdCt1DZ3PF8AsKiOQP9CrMvqju1lkZtFc+lzxQPBjAB3rSG04xRk9sugav+SX7cjY3hTjpKT2/eIkmK+Y5dFE8fI76TbSVn4Y6jG2I0OMM7XvTjpteeHeOFLCFR0DaQSJhhjOWezcd999p7yEUN/0RTz38ezJV7Oq81yTYFBER8VFkThZFLGA5+VVMerB9ed43iFupERqof2tsMIK6X6pXAjDu7UtLKaAA//FPEXDLXMc6klcHI5RQ3JhsT/fsi8+o+NYHtdcc00ymOuefuNCNIv2cezWVSZsZYgXpXxhgjkZBs+nPOUpSiKRS8CuS/h6bccdd3xI+VOOlD1bLO68885TUZBGNDRP3SgcTGoMEOsUyaAnWbBAf+TC9n0s6jDGyMPxbBe2pfpOmKOOOiqlmbct7iHRIFW7gDEqjb+mNLdHLV3jt01/c48FP9oaHoNyYT5BH0W9itKFU1sdJDxfydOW1d9xDZ3Dtnz0kbQv8ioC1zhtJR97xe3sSHeURAM340XapDzcxbCUKV/Snn322fFyOoa8zXgzX1RFX+DJiz+kL4GLZ7vGoTX5LPUZpCOJOnEm9TT1ZO2111Y25vplC3M8mURp63viM13H48wNqLssCMd6TVrUZTwAHnnkkVMk57755CtYjA75XIV4aTN4q8q3tVWdL217SLg2Yxv3JIw/SRuJxDPd53e66kRcEM7nhTH9/HjXXXdt1l133XQ5Goe5MGqMk8fFeXy/6RoHRGIG+o96oY+HlCfK+ZhjjmkYJ+RSo4NrxtR4y+RDwXz+QX6YC/A1O3Nhiepg7F/R53hA0TwbAz+6PQoGJuZTcawzqq0Mna/E9ErHbePy+WWOEPMZCVw147/Y9+Zjm6F1ooS1ro2jdxVH/qs6WNKDkcCFbsbzdZTogYtxlwiyijPWa8INbVND5xLj6omaMUFpvtbWFku4xLpTM8cZOk6M5dd2XKMv+467S2mOsz5Qio9rM113usYgtC36JkgIuUCaQOeT3yisVTFOxjOXpE1ndRG49KFlvl5BnDvttFP66EDx65c5MfmFUNhHRo2LFUdXvWqbM3YRuIh3aJxtbVN51G+NLlD7LulS4u0aUw4ZFyuPQ99d4dp+R/V9Xel1zWXb0vP12YEAa1dxbWoSBK4hcWrMCxrMA1mvZ74GsZEPdCTMeaRD8XqEDUJjY9YJGBfT9lgLjV6749iEuNROOUbPkhbrDqxZKL58HDdOuOmyE5OncSWSy8CedSzWOiHTiZ9Cf4BXNvqQPlIb50yHi+/Cmh5re1p/aiNw4fmUMZ/W+fEUy8dTzEcZn+s6WLJmddddd6VkqANtJLmYD80diRd7Q42YwFWDWo8wbBOkAi49bgJXCRVfMwJNIjyydRsylMBF57PiiiumsLlippPCmK/OCuVM591HyAeKG28wudehPuHbnjGBqw0ZX59JBOirID8ykGZAwdcM0WsKW6YxWGbQA8kmkktw88yAmMEgxo1IZhn6DixusDjHYhVfcjJAYaBJuxvi2W5oun6+HgH0KZMvBv2Uf6wbXbESBtIAi3qQPNDFDIYR6hn3iBsPV3iWiEQsCDVMwCBx4RmRusEiVKmO1IaLeaf+r7rqqqkN8MUl6bB9XheZd+j7xfS6jifdRmrLryuPte8+HXnpymfXPeofWLPgGAlZhOGLWwhu/FF/qZ8YHCO5sSvuh9M9iPGQCvhKjn4El9xMdOlD1J5n4n0pB3SBXKVDJmURaFSZMBlnkYiFydjndeUZgxeL6Szm0z/xriwoScCCPpHFJvTSOH2i4pzELwsLbAHJohdlBOkD49somXR9j4YI2o2+6h+Vj9r7NfqbtFjcR+8//elPT3WDbThp621SWweJD11DfaIOagEN4iFbKtaS3NryOcnrbJ8AiZ92pDHgVVdd1ZkE78oYjzEl5AT6/z4eALoiHTUOrclnV3rz6h4Li+DNPJd6gcdR9FyfdlyT53HmBqRHuTCmpw3eNWeRk/wyrq8V8sOXsfS9bGeKHuPjjr4k2Zp0o+eJaFyoiWs2heka4wzN5yTGAZGYofUbDJ7rrLNOGnPRp0N+6OpPa3RwzZhaYwB0GGmyBQxbs5C/2voNuZX+mT6Avrk2ntr+rq3Mp2NcPlvmCDXjvzacJlknxtW7bXmcqes1baqvDpmEngCH+XFMMOlxYo2+HLcO1bb9rnRnsu5gfGUMwhiW8Q1zTNYo++zqgQGZ8Rt9GEQExkPxg8OudxznHvWGMRP9Fds2QWYg/emSSc8Zyed0xKn3n2ldMHRcPB3v3tX3zQu9oLLw7+QQgLzJOJ81H5GWFHstgasmTsZGfJiN7mRdkI9tov2VLRUhiiPoJX3IFT9IYO2FXUDi+D/ej2SYjTfeuNlhhx1SfKyn8K6aI7PeB+EVnYjEjyxrwxHPdNmJiXscQdfwvgjYYxOh35GwY4k+ZD333HPTLju61/ZbG+dMhyP/2tqSd8w/CNI8M3/PTTbZpNl+++3TZdb9hB8XqMP7779/spdyfumllzbHHXcch73kwAMPTGuKlAVrfLX9MPND6jD5Yb7AH8c675WZOQ95C8UMKX2lkF2eOjWBawoKH8wnCDDA3WijjZLSogOFyMGexRi0UXZc48tDGfDp5BkwsLh8yy23pK9BWZxi0ZXFLq6xd7GMfBA22KsY4xfPIBjHMKyhZKNHojbI+HKMxab8izA9H7178YU48fYRtechYbriZSK1/hxvG0xkyS+CEQMsMWahlGGro4i5ri/eYpwMeDD4sBdv/NqTr2TA/corr0zYEw/EHHCEyS5CA8qfL33opPgil44VAwyLkLj/p4xKArmCgRETWHX6msD2xbMUr68ZASNgBNoQkN5iMhY9IrU9r+u14RTev0bACBgBIzA5BOJ2cGw3yrjzkSZ4cOFLZ4T5Re45iAV75jPMBRi7s2BkMQJGYGYRYA6Ol1Xm1NFAMLO5eGSkViJmPDLe3G9pBIxAXwQeSXrC48S+taLfc4+kutMPET9lBIzAwxWB6ME3f8daAldNnNh211tvvZSFCy64oPnCF74wV3biPAvbJN6+EXnm47htrUg7D/DM7rvvnmzRkZQEWQx7cxT61W233TZduvrqq9Mcj5PacISdtJ2YOCch0fPZZZdd1hx77LFzRQu5DzsJArkXD1mjpDbOmQ7He+Dhig8xS9JG4Io7PpR2RIlEND4ie//731+K/iHXYr3Dzn7++ec/5Jm+F0zg6ovUwOdgj8JglsD4REFJTOASEv6dHxBgz2y2jYl1WPnG5TaTIiR6zFJnxpexfEWOQSIXDDe4HMRAwdYzMKFL0mdrNuI//PDDU3Bcc6pDivFBVoJshrQp7vg8x1FR45Kzr7vhPJ54HvMRr/9/9s4E1rKi+P/nHzVoABlEBUQUEWUZR5BFdhj2TQhhkXVkUQkEQYRERhYBEZRREgIJCZDAzIAwA8g67MuAyCqyCIMIqMgmiKMYQhQTzX8+/eN7rdfTfe7Z7n1v5lUl792zdZ/uOt3V3VXfruKYSQrKYpWf9/HemDTRiHfny5sBOzgBiglxrEmRBTQAhmC3ZkyA8WbOnBmQxfbeKgt22TPpE+jM3uOY78nkbpC7oeN3+rlzwDmw+HPAyi0HcC3+39tr6BxwDiw+HGDOyOYONgugHIHsTsvFp6bVakJ4s4MXhDmD2IRBeDTtLGUnHesi1h7QjTfeWFx33XXh2P85B5wDg+eA5JVdq8ehCAdfivH1Bjeuj6/v7bV1DjThwHiSEz5PbNJC8mnGU9vJc8HvOAecA+OBA6xf8AYvwpmDbLFNAVxN8sR5BB7gcdhx1FFH9Rx9qFy5XzbP4DQCL4U4p0iRwhtzDw9d2JOJgoa9OpcOj2CKpiSHHzzfJB3vHYSdmHy7INmKyev73/9+MtKAnJ/wTAqwxHVLTfMcdjrKTKh6vDiL8Oo8YcKEcJrDAdA2aCPoLOFHTBavgPd4PGn1I7yEnnnmmaFdVk1TlqcDuMq40+E9K2DI1gFcHTLXsxooBwitdthhh/XewYA4f/78EHZGEwHdTAG4dI+BG0MFxgkEmcBgiiMOChiPUHjiQnBCoIERoAC4AIr1I1zQA37iPXHYI8KhYBRR3oAsq7gutOFeAFIRW50JEQBNvILhOhlPZHWIAWWXXXYJExrKCyn8FwMByuO2AK64PHjJIvavgBC6z3ch7BG7ixmUBDzl+tSpU3shiOAb4Cy+HwRYC+QxZSXEjNIRNogJmoxReo//OgecA86BphyQ3HIPXE056OmcA84B58DocAD5HW9kYtcac8jxSCglzzvvvKCcpP6sq/B6y4YL1kBaH+ERl40tzMednAPOgeFwgA1okPoh3rHZOODr2sHx343rg+Ot5+wcWFw4MJ7khM8Tu22146ntdMs5z8054BxY1DkAgIfIPVBTAFfMgyp5AozCdoiOgw18hJ/lD9shoREJ6UcouphOOumkoBPBVivnFPYZ8gTkhadydCR44MIOjK0TKvOOdP755we7JWs60hFetkk63jMIOzH5dkFypsIa9vDDD09mia0XvkHYoAEYlVHTPIedLlUHQnUSwQrKAbiIOLbMMssEOzch7WP67ne/W6y++urh8u23317Mnj07fmShc+GAaKf0gRijsFCCPhccwNWHQV3d1odTfg7gEif8d6xzACMD4CcoFnZHHHFEsf766/eqkANwAerBJSZGCggwEG4tBV664oorijvvvDPcs2EObX7hZs1/AKWYIOA5itjzApwRrgQkbBXae++9ix133LH0USYlxHdOCfqyhExOKBcCHdeSIuvSsqkHLvKC3xdffHHxyCOP9AxAAkJwnwEdZPyLL77IaZhg4QlAiH3LJ74fEy5o3rx5wbVpOFnwj8kT4DiFVCTkoxTgesZ/nQPOAedAUw5IbjmAqykHPZ1zwDngHBgdDkh+6+3M95n3j2dCSURoRK2vYl44eCvmiJ87B4bDASmaeRsKfrx7P/bYY8N5+Th9ixvXx+mH92o7B2pwYLzJCZ8n1mgcfR4db22nDzv8tnPAOTCOOFAFbFWXHf3yxMkDHp4gAFXYYfGCFBOesAiH+PTTT8e3suc2PJ6cgWyyySbF17/+9ZAmZz/lpg3PyPNN05HXIO3E5N+GBHzD6QYRnlJkbfkXXnhh8fDDD6ce611rmuew0/UKbA6qALjM4+EQz3XrrLNOcHICnkCRq2JsQ5xO5wceeGCx1VZbhdNUGEs9V+fXAVx1uNXiWQdwtWCeJx01DgCAErAoF+5ErgYppAVcWQUoIKHnn39+RD3sQgrvU4CZoC4BXKlYzRrkRxSm5OSYY44pJk2a1HsCsBWewZiELLnkkr3rhDLkWQAGVWnQAK4U360hjcH0gQceGFFcJluA9th5LGQ6u8BQYHMth+K2k7S6IIsRBfAT54BzwDkQcYDdDssvv3zwFEh42KrUNF3V/P0554BzwDngHCjnADsU2eHIZge81r7yyivlCcbRXXjDGoMNEHjCfeaZZwJYhLWKk3PAOTB8Duy8884FG6nYlAVwy/vi4L8BXrzx+A4hA/Ea7uQccA44BywHxquc8HmibQXNjsdr22nGLU/lHHAOLE4c6Ae2alLXfnkCQD799NMXyhoHE9hTsS+KOGdTG165yohNb4CRVl111d5jsneydttzzz3D9TKwDJ6mVlhhhfAceW222WaN0gGMGqSduFfBBgcAjbCDQ4rClMrGAoyIeHXzzTenHgvXmubJt2hSlqbpcnVoAuAiqhQALku01eOOO66vboD2jbc3vMVhPycko5zZ2PzqHjuAqy7HGj7vAK6GjPNko8qBKVOmFJMnTw5luOyyy4q5c+cuVB7iIe+www7hegrABbAJdG+KBPJSDGKeyQG4QMBuu+22qWyKyy+/vHj77bcXukeYRMI14iHKEgAsPEZVURDaQZ5QiTNmzOhlBTgAz1QKH/jss8+GEIWAmRgQFW6wl2DBAW5CUU5CgwRwUUcGl5gE4GIAycWUthMywkbgclWuRfHmBUo+RXx/QsAwsAn4l3rOrzkHnAPOAeeAc8A54BxwDjgHnAPOAeeAc8A54BxwDjgHnAPOAeeAc8A54BxwDjgHnAPdcMDa9oYVQnHixInFscce26uAIgPJyxOh6k455ZQQso6H3njjjeKEE07oPR8fEP5ut91269l1sTded911xZw5c8KjgLcAcUG33XZbceWVV4bj+B/2YXkCgxdbb711o3SEwmtiJ47LM4hz6kc9ITZNwucU7b///sU222wTbsWRtuLnm+bJxvsmZWmaTu0hLn8TANchhxxSbLTRRqHN4chERFsmhOfjjz+uSwv9Wt7SFmmTXZADuLrgYoU8HMBVgUn+yJjjAHFa11hjjVCu0047rXjppZcWKqN1O5kCcM2fP78gXmyK5L3LAn5yAC47KMd55cqm5xC4m2++ebHPPvsEgBHXn3jiieBpSs/kfldZ4C6RAYud8XgOiGm11VYLiHGuyztVDnHOMzZe7iABXDb8Ie8VCcBV5k4TYBe7vaCzzjorhHkEqAfZcJfhgvnH5EDhFwnF+Nprr5m7fugccA44B5wDzgHngHPAOeAccA44B5wDzgHngHPAOeAccA44B5wDzgHngHPAOeAccA50zYHRAHCttdZaI5xJWDux6vfRj3402Bo5t/Zg3ecXWzS2SYWv4xogFvJ77rnnOA0EEOuAAw4Ix/fee28xc+bM9+6M/LG4DEIoNk1Hrk3sxCNLM5gzIkURPQkqA8ZZmy+OVR588MFsgZrmCRCrSVmapsvVoQmAyzIDxy1f+9rXet7bymzpOHGhzu9///t7+ACbV5tjB3C14V6NtFZQkAzgSgoMUiNLf9Q5MHAOWIQyHpUYWGMCGHXwwQeHy3ZglnctQifi2jJFgIMYuO2APQgAl97NuygLgC7r9Uv3m/6ee+65vXCKuEdcdtllky5Dyb8rAJfiN8cezhRjmAkN/I1JAK6yUJKgjXEnCk2bNi2ENdhyyy3DObGsc2hjUOxrrrlmeM4BXIEN/s854BxwDjgHnAPOAeeAc8A54BxwDjgHnAPOAeeAc8A54BxwDjgHnAPOAeeAc8A5MFAOjAaAa+mlly7OOeecUC85uUhV8rzzzisIjQhNnTp1RBjFgw46qNhiiy16yf7zn/8ET0aE+4vpC1/4QgivyHXAP4SvS5HeJ/tz03SpvFPXYjvxP//5z9RjnV+TLb7M5mttt9iNLSAuVaCmeQ47XarsbQFc5Akwi3CQSy21VHgFkbgAVMWEpzgwDVBZ9Ko4XZVzB3BV4VIHzziAqwMmehZD54D1wEUMWEBPMdmBNQXgev3114sTTzwxThbONYDacH45ABcDOwCsFL366qvFLrvsUghkBEgrF0MZoSsEN2CrLgZR3vexj30sFI08AVWttNJKqaIWf/vb33qCvo0HLnhNuMJ4QlQVwGV5HheU0Iug5iFCKOJaUzGlZ82aVdxxxx1xknBOnGu8j0E5wF+46f+cA84B54BzwDngHHAOOAecA84B54BzwDngHHAOOAecA84B54BzwDngHHAOOAecA86BTjgwGgAuCi7gTpm3IiI14d0IOvPMMwuiCEHYVL/0pS+FY/49/fTTAZT17rvv9q7ZA2yxchpS5nXqoosuCkCcf/3rX8WRRx4ZbLhN0tl3lx3HduIubM9l79M9Qvx94AMfKP773/8W3/zmN3V5xK8NAZkDI9kETfMcdjpbZh33A3B9/vOfD57eeP7GG28s7rnnHiUd8WvbZS4yFQ5PPvShD4V0MShxRGYNThzA1YBpTZI4gKsJ1zzNaHPgwAMPLLbaaqtQDFDMoJljsmHzUgAuBllAQDEByAKRjDcsO8jmAFxx+vgcl4YCcF166aVZoZsK2xjnpfP111+/513slltuKW666SbdGvGrQakMFDUiwXsnOQAXHryQGdDvfve74AXrvSThZ4klluihypsCuMiI75KaBIlHGvDxqgVCG8qFnuQ7XnDBBSFGcFymkND/OQecA84B54BzwDngHHAOOAecA84B54BzwDngHHAOOAecA84B54BzwDngHHAOOAecA51zYLQAXNiPsVviOeuwww5L1gvQ1vLLLx/u8QzPTp48uZgyZUq4hj0SQMyTTz6ZTG8vYoskbB1pCA/IryVsu0cccUS4BCAMxx5Qk3SDthOHgrX4d9pppxWf/OQnQw6AyIiKZYmQiHwfbLjvvPNOcfTRR9vbyeOmeQ47XarwVQBcxx9/fEg6b968gmhXKTrmmGOKSZMmhVuESXz00UdHPLbiiisWRDGD/vrXvxbKc8RDLU4cwNWCeXWSOoCrDrf82bHCgY033jh4UqI8FmSl8q277roBuazzFICLewyKuA+0hIcm8ofuvvvu4mc/+1k4tgCuHGgsPBj9I+Qfof+gV155pQBYFpONxVxloLJI7pz7yR122KH46le/Gl6V4lFcBnsuABfXiMFsqQyxDkL6i1/8Yng8BktV9cBFYiZCgOgsWTeif/rTn4of/OAHYeLFt2WAZyIE8Iv3Wtp2222L/fbbL1xKgc7ss37sHHAOOAecA84B54BzwDngHHAOOAecA84B54BzwDngHHAOOAecA84B54BzwDngHHAOdMOB0QJw2ag+119/fXHDDTeMqJAFuxDpiYhPkHUQcvbZZxfPPPPMiHS5k+985zsFtkzo4YcfLi688MIRj5566qnFyiuvHK5ZO3OTdIO2E48oeIMTHJvg4AQiAhSRtSzttddexU477RQu/epXvypwSNKPmuY57HSpevQDcAH8A7MAYefG0xbOWSzhgAbQH89CgAGJvGVp7733Lnbcccdwac6cOcW1115rb7c+dgBXaxZWy8ABXNX45E+NPQ6APl1mmWVCwV544YVixowZQZhtvvnmQTgRC1aUA3AB+kEgPvbYYwXxhhFsAJ8gzgmxCPgJ2nrrrYsDDjggHP/2t78tyLOKq8n3ve99AZ0NmhgCRAQIigGLMm633XYhDCDPQbfeemtx1VVXhWP+CTAVe9Hi/YQqhF566aUAePr73/8e8tx5552L3XffPQCbuF8ldjDPiWzc4dmzZwcgmwYKy3dcOF555ZXFcsstF3i+6aabKovGIRSVAXnjWYw6Acg7/PDDQ924D3gLEBfE9Q022CAc4waVCRCgNoh0gLoAeEHf+973ir/85S/h2P+Vc4D2w84EUPH0D4hQoYSthO67777itddeC8eD+EdbAp3/1ltvhZjiekeqXLo3qF8mQ8Q5/9znPhfc2VKmP/7xjyFkZzw5GlQZPN/uObDeeusV66yzTpD1F198ceUXTJw4sbcIQ1bHu2gqZzRKDxLWd4UVVghjGxP4sUp42fz4xz8exspceNyxWnYv1+LHgdyY1GVNAZwzn3rxxReDgqfLvMdzXrvttlvPZfg111yzENBfvEE2LrXUUuH0rrvuCjvUdM/+Mh9AuQc99NBDYQ6+xx57BMXJc889Vzz++OP28eRx0/EnmZlfdA44B4bCgUGtg5A9hOqYMGFC8ctf/rK4/fbbh1KfsfySQfF6WHXucg6LHqPuGDOIehJ6Y9999w36mNtuuy1sTOQ9ZXX91Kc+VWy//fbFJz7xiaCPYce7KHWPd+y6667h2QcffDCMr3p+WL+joWsYVt14z5577hlkDZ4eMCY6FaG9jYU+1vRbMCdF/wsRnWGQOrqmZfR044sDY2XcGiTX8Xaz0UYbBf0wG/UJg5Yj9OqMLZDGNq1Prb6dkFkK0fbzn/+8Z6wvG2dz72xy/cMf/nCw6/D97r///t44Pww9SL/yfvnLXy4+85nPFNh8kHOrrrpqsANht2N9L3tVv3z8/tjgQFUAV84emqpFlTxp49g0aeO0HQBc6MTR6dOmsIXSX6HLLrusmDt3bjhWdCMiBdE3+hGh7MgTGxIh60S8j3UeoQQJI4gzDwiwGB6nKBPUNN0g7cShYC3+Yf/GQ5TARjjuuPzyy4P99itf+UrBHxTb4rkGaI51MsRaAhs41DTPYacLhY3+9QNw8bht08g+olKhK4YABtKGpL9k7nfyySeHe/bf6aefHtZhXBuETdwBXJbbAzx2ANcAmetZD5QDTG6JTczAmyKEvu7lAFxKp0FSz3MdYBLKKRFCEWFpKRdf1j7DsQV/6Z4tn66l3BnKc1Xs4nONNdYIkwtbZiYIDESWMCTh3rMOpcqr+MO4DZ28wH1ojlSvNh64bN7KT9fi+jC5OueccwoB5HgOXsEXywsmWXVAGnrfeP1Vu8MYCQAQsu0Cz3R4qIP4Bp/+9KfDMcC6VPjLcLPGPwEFFQdcSVPl0r1B/DKhBumuSbx9B4vEmTNnVprA23R+PFwOfPaznw0hVN98880ACNXbLVA19jSoZ1K/Nh0A0tjrXyrNsK+V9cnzzjuvYKcGCwB29gyayspS9m6V0+58Knt+UbmXa4+LSvnHazlzY1KX/EChwVwGhYQ1cnb5jvGYl1VkpTzvwpOll146zCXFn3vvvTeM7zq3v+QhxRPrAjZ1aIcgxwo1Tppcf7fjSJ3xx5ZjWMe5Ogzr/f6ewXEAUAXrWxRvo2XwbTpHGBxX8jnn1kH5FP3v2B3dPB2vc/vnsGg/kWuDg+D1MDmVm8Muu+yywdiLzoYNiFUII09ujKmSvqtn0D1pt7w1auXqyoYX1hlWV6XxLncPT+7onKCUZ4Su6lKWT07X0HQsbJqurIxt7skYivcIDGJtKdeH2+Y7zPRjpY/1q3OO11Ze0n4feOCBfln5/ZocaCK7a75isXp8UelTTZlOpBNt/CePfnq1lVZaKWxC51nAR1dffXUAfGGv+MMf/lCcccYZ3AreUwCGQbK/cJwbZ3MygTRNyIZzs/awYehB+pVXIc/k2MDapZib4CDBadHhgAWmoBfBcUOKNCeL7aGpZ6vmuf/++/ccEyif2O5ooyexqUQ2MT3f7xdHErKLWaBOKh3vJgLRb37zmxG3m6QbpJ14ROEanqy55poFXtDs2iDOykbC0j10bgIqWYce3G+a57DTqS76td8Xr1ipzfVsaCekZxm/yI/+QT9iLIoJcDFjjWRnfL/tuQO42nKwYvpp06aF3d56HNdr7MZxcg4sChxgICXeK95EJNAQSoBI8BqERy2Ido7nK0hKC57Bg5ViG4ebC/4xeIKIZsIak40tyz12Rdx8883xY8nzDTfcsDj00EN7Rh/7EO9kJ8b06dOD4LX3NGFJCVt2Z+CCEhR5TORJHZrs4mX3IxNkPEGIUMBpMCB2MzsgLPG+X/ziF4GfTBpiAJf4Hhu3lMdPfvKT4iMf+Ujx6quvBi9ZeMbRN9Uzd955ZwFoLibACMTxVTxle59yzZo1qyCtU3UOqN1VAXA1DS9aVprcIjFVrrJ82tzDBe2PfvSjXjukD9IHllxyyR6gi/YFol0e4dq8z9N2zwG72Ird8DY1oNt0YxXAVdYnpQDqp2jq6muUlaXsHSrn4gTgKmuPZbzwe6PPgdyY1GXJHMDVJTf/lxdKXealUMp1PdfxgIP3BdH8+fPDJhGd69f2YcZ/dr0B5koZ1+2zXY0/KsewfsvqMKwy+HsGxwHtJkZpztxmNKjpHGE0ymqN5HYjS9OyIDsUGoE8UICylka/MF4o1wa75vWw+Zmbw5500knBgwTjxze+8Y1KxRorhvC6AC42QMmTCGvod955pzj22GNDnXP3xiqAq+lY2DRdpYbR8CHp5LoCcOX6cMPijUqysdLH+lU+x2srL9GVOYCrHyfr328iu+u/ZfFJsaj0qaYcx24qGwxRWdAFY8/Ikd0oBHgLEJc2BFn7COGv6gC4cjIhV45+18cygAvPMauttloAxQCOwZukPA+OVZ1sP36P5/tEO8LjFcQatB+AK2UPjflXNU/SbbLJJsXBBx8cNnrH+eAN+ZJLLuldxkv+fvvt1zuvcmABXDxPNCc86cU2TupFWMVf//rXyWybpBuUnThZwAYXKR+yTlGolAVrI7zgp2y+VubiZSreeNYkT9477HSqK794HAPEBeUAXNwDqIs+U2MO1ywRHYgNq6k+tMoqq/S8cr3++ushyphN28WxA7i64KLn4RwYRxwAvINiSELrwAMPDAMkLLCIfCkttNMBFC8uYQGBMfF+9NFHgwI1xzoUMbh8x/hNHuygrEp4VsBzGO4weR8GItwfokBB6DUlwi6QJ+hcBjJAN+Rbp2ypdyPs2W1E2EGAVZZYlOGyEc9Lf/7zn4t58+a1qoPNm2MQwiwgqBeLmqeeeqqvpxsGtkmTJhWUG29mpAO4BxrZqR4HUkAp3LNj5IQABsptqTW+WG939d448umcsTxVrpEpuzvTLh9yZCKJe1fRYYcdVgDKhOgfLCidxh4HrOL8kUceGWEos0As7QivUgNCXzHRh/Dq11bOVnln3WfK+qSMSqMB4KojH1jQME4iy6+77rq6LBiTz5e1xzFZYC9UjwO5Man3QAcHDuDqgImJLKxhK+XpliR2xybnKJBQBqNUs7TTTjsVe+21V7iksR9FnBSAzIXZkAGV9fem40/IeIj/yuowxGL4qwbEga4NP02KWTZfaZLfINPk1kFN32nBKugfGAPGG+XaYNe8HjZfc3PYJiCA3Bgz7DrlAFy5umpzHuMphhrrsTh3jzFHYaasrmGYdU3pGpqOhU3TDbK+0oU6gOt/XB4rfex/JUof5eSlnec6gCvNu7ZXm8jutu9clNMvKn2qKY8lR//xj3/0gMllecEP0kBEcMDTszxE43iAYygH4MqNszmZEDJr8G8sA7hwKID9CZsfoebwgIYnNKiOLrcBWzzJYsoBAER4YcKGyDF2VBzasIF4EISNc+211y7WXXfdoGMCeHPffff1wibm3tk03aDsxLly1r1OSFTC0GKTx958zz33tOZ90zyHna4urxhDADxiH8fuzZoK/AL27jfeeKNudp0+7wCuTtnpmTkHFi8O4IpcuxaZ/N56660LVRDPOQCaUBqxQ55fSJNtAbgWSugXnAPOgSKlvMyxZRDGl5yxvE65cuWtel2yAnfMgEAtAcY8//zzww6KKu58bVo/Hh4HyhTni4oBvQm3yvrkogLgalLvsZ6mrD2O9bKP9/LlxqQu+eIAri65+b+88CqrUOKsBbR++N8TRW8XtL2WMoIRuh1lGISS6dJLL7VJRhyX9fdFZfwpq8OIyvrJIsmBrg0/TZhQNl9pkt+ilAZv1ni1hm644YYQMm5RKn8XZR0LbbCLelTNY1EGAeQAXLm6a94Ue2Xn+bJ7ufyGdT2la2g6FjZNN8i6Sr/hAK5BcnkweefkpQO4BsNvm+uiLLttPfy4Gw5onACA8cMf/rBSppK96JDxtqOQYNbbTw7AlXtBTibknu93fSwDuBQF5q233goh2HDCQISb3Nq+X139vnPAOeAccA6054ADuNrz0HNwDiy2HLDGGHbHA67Am4iIiRwTOghUKjFyRZo4O4BLHPFf58DCHNCi1IZQxMvdNttsEx7G0EDfI4TnSiut1AtFSqxwvFLgAtS6NWXXAC6OUf4SthRl7rPPPls89NBDYadDXAIpdv/1r38VRx55ZO92qlybbbZZ2MnAxGHGjBkFAE8UWeymAHyFG3l2NvBOFKl4EQO5TuhNyohnJkKWWALVTmhE6PHHH+8Zf+0zKiPX8Mi1KHh6w6PelClTwjdjpwMuv3GlyndAeZAivO3ts88+wWW1wqrixYQY7XznmAbxPew7Nt544wIvWCuvvHIA0OFtECUI31FAXZ4/6KCDwvdea621QnLaB+0ZLweE0YoN6OyGIW+8JOJV6+WXXw48id0ZY3Cjbf373/8e4d6XHWCE3XzhhReK2267LbRBPHXRP2jHKHjYTc6YlCLaHO6Zab+8/4knngjtknbLDjOuAVbmm+UI9+z9+qQFcAFGYKxEWQM/2dFGOXHrTl9OEV4XcVmOdyzGYvjA+EsbuuOOO3oeyaqUJZW/rrHTkPbGbpw4BC4ACsKdwe8lllgivJ++TEjj3//+98qi76/aKu159uzZYVff5ptvHsLbILPwMki9aFspqtM3+rXHVP7xNfiN+27aCH0ZmcPOTzwEzp07N348nOPhA7lNO0Tm8Y3hFSGa5EVRCakzikMIcDy8hB/0C1w2syONdyndlltuWWywwQYhb/LlebylyRMq+QwiT/IVtakf8mC33XYLgBwA/4wXqgPywpLkvcYk+iRu/KEbb7yxxxObBp4hbyHeRf8oozIAF55fd91115CcsZe5LPLOfq869VE5qvKPHa98b4i2huHPEkpVwoEhr3ADb4kxX16r6KPImLby0uZf5VhKcp4988wzR8gJvqO8aCJ3CeENpYybkp/cP+OMM4InXtq4vjPjC164+vX3puMP74XqyB6enzx5cjFx4sQgn1NefpCl2sV8/fXXB/nfrw7kmyPJ1i7nZXpX3bozZiOnGKcA3HFOX6J/XnTRRUGuKW/kKl7W2OFIWHeMBHxP5pDMbZsQ74P/yGDKzq5eZChlsbLS5o18YXcu4yz9CjlPv7nssssWmgPgdZh5LeMB4R4ot+QTIb+Z41GHOXPm9F6x/fbbh3kwcxR2dGrOwdgQz+sYbyg/7yE/nnnyySfD/MjORwhFIe+kGlN7L3zvgDAByANkGH0NT7ZV1hBxPvac/JgPMIeZMGFCCK3Ct7r77rvDXM8+yzHefXgnczzWMsxn+EYf/OAHi29/+9vx4yPO43WQvl9deUY72H///QMvBAjFm/Xzzz8f5hzsphV1XT+1F8YPwkBSFtZMtDfaAXNe5ly0OdoeADvmvMzH8BzO2u2aa67pzfVUTn7Zvc7cjbz4FrQt5gbM40hD2xH1a4M5Xit9Xb7U/UZ6T9PfeA6L/KUfwUvmchBeNxgzWduWrSFTY4wtF99viy22CPNCnmUuQ/ueNWtWI+/ozDeY+7FW5hvSLllLs3lJG5qQRZp3xnWlX7PeZ+5I+6KtIUMl+3L3rrrqqt46nfqxNkfuWaJs9GH6O/Lo3XffDZ56ScscSERZAWtTfvgsz5i6zy/lZk2DjLRhS2NdQ9OxsGo6eFRnnW3rkDtmfCNUD+2NY8Yc1jLoNBj34EtqjkN+VdfZ/fqwLVvVcYQ0rIcVUobvihw6eEGYI/o8ugq+lZ37drVWiedxlEVzGY1pzIXrrBPJo07deT5F/XiNDCDMEkT7ZQ2PTEAHonGbaAbMwXPURTnjvKvmWXf+QH9mXiOqqpvQ8/qtIk/ayu6u26rKzm/TOSsyGp0T4zryh7kc4zt6JuZ3luJ1fNW1Zm7catunGD+lU+aY8rChBhnHda4Rtl66CluX3HEdGcyciPkN/QuCd7wPfSS6kzJC9sIXPFAyl5InSvSD6KEg2gt6OYg5qfQR8TjbTyaEDN77V7Uf8ngdAFfcNrqQxbbc8TEymnmUPGCju8UTF/MndPFOzgHngHPAOTB8DjBOoQNgbcG4wB/HOq9aov+3wB3b/7ndqZrCn3MOOAcWCQ6ceuqpQXlDYVEMvfnmm0GxhNEY4QFhaGO3jBSsXHMAF1xwcg6UcyBWXvK0VQ6h9GfBTJjBFKFck5IIhdvUqVOzMZtRKF5wwQUjsomN5bqZKpc1hKJgRgkUE0pjPHAce+yxQREY3wdwc+WVV/YuozyUlw4ACYCVLKFMZMcTkxKUx8Q4H+uE8Z2FL2VOEYpcYotjwBGtssBgB39lbNB1/WIQJY1Vkgzie/A+lPHkjRIiRSzmAevKoEib4jvFBMAKD422nCirUAKkCAOIBV7YdITYwvgCybCPIYAy4IY3Jng7bdq0YAyx9+hbGPNS3wZlu4yi/UIQYvDq1ydVTvoEZV9mmWVsUcIxihBADiijLGEAwzCcI8ZcgBC0iyplyeXDdVvOo446qvcoPMcYnyLmAhhk+atC+pbUF0MUyswUpWLS1+0b/dpj6r32GsBCXMfTD1KE6+QTTjhhxC1kGIaYFMErjGO48RehwESuQfQTFOJciwklIwptDBkxIQ9pAxh/oUHkqXe2qR/KVuoAqC0mFqHUgT4iisckG6YbIALtNSbbX3ifeBs/p/McgIvvcOKJJ/bmtvfff38I32p5W7c+vLMO/2hHGhOldFa5AbtQPhHgZys7MCoh4yCAVIyn6t9N5KXeU+cXGSJgllWUk8chhxwSjHQc//jHPy54FoOXwHpchwCLsmsasspi+x0I3f3Tn/406dGLdG3HH/KoKxIoM/QAAB2xSURBVHtIw/fhO0GpMBP0ZeQLBIALGdpGZkm2kl9X8zLyalJ3GUOQeYCYBIQkPwBPAq9jtMAAoDUk90WkBbCAkagqMZ6zAUHjd5yOPOnzFiSOPGK+DMAoRQCfkNnIAJGdm/PtqB+Ks5iYs5911lnhsg0Rbp+L57MAhnPjIuBt5lKa/2EIJRSp5jGsEwBRiTAYysBC3ZEFxxxzjG6P+LVriBE3opN+81o2ayG7NS8kuWQ5IBcAeuoX3Ev1Da6LLK9t/erKM3QV55xzjrId8Ws3jQyifrYOANT5LvpmKgjfh7kq863UHBFwEG2I50SsE84+++wgJ3Ut/rVrrX5t0JbT8po8m/Cl7jeKy173XO9jHsGYYucDcV7IXubNOUqNMTyLrGKuzuakFCEvKAfg+6oE33PrEWQIc1HIArjiujJ/EsA9fi9jYO4e/c+GFdVYpDxYf+y9994LtVfdByQ2ffr0cAqQFeM4xBrv3HPPDcf2H20cAAOyTCAL7se6hqZjYZV0TcY0W4fUMXNG1gOpNTBgSnQc9PkYwFV3nd2vD6tsdcYR0lgAAXMRxjTJKOaPzMM0nx7EWkXzOMqiuUyTdSLp69adNCnqx2srL+nvqfUZ+XIPvU1MXZXT5lsnz7rzB+ZJgOqgMtnKfaub4FxUVZ6U5V9HdnfVVlX+pnNWa0NRXvaXOR3tTWTHnzprTZuuqz6Fbg0QMeuxmJjvIU+Z/6Z0y/HzOq8rg5E/qfczhmsdpbzjX40JzJWRxXjuIly01TNpzUJaC+CKx9l+MkHvrtMPSWPlL7px5m2Q5s52bWy/cdftO7w0+gewFyAbANVTTjklzN9Z38ZjeJTMT50DzgHngHNggBxwANcAmetZOwcWBw4wYWTyixIiRUwuY/AWzzmAK8Utv+YcGMmBWHnJXascQpmO0RpAFIYIvDlBGEMwlGB8wQjBdRRFMiZxjwUru0Hx+CCFHIs+DEGi1CKRe6lySbmmtPyyi4zFHN4L9A7dB0QD4JPdU3YBjiHp7bff1mOlvygP2EEMxcbs0oSjdBN+w1N4gcGF+mNg5zrKeH0fjJMKCRV/OxQTeI/CSMPOZ/EOWYtxQsCvQX0PKdphIYpUFu8YL+Shguu0L9ok3/74448P3xjPOhCGSQx2tEvaZ6qcgH15BtCh2jRpeVZAYJsuBeDieRGgMrVDKdJjA6k1apIOgwvtl12VMVinH4ALg0W/PikFkMpIewD8A+8AXTG2Qpx/61vf0mNhJz48VRtCUUY5aQvwWEZveb2sUpZe5okDlVPGLx4BnCkDK20AWQIAhO+FwUKknY06z/3ab6lnaOd8a+pkgYvUXcriJn2jX3vU+1O/yFjkqGQZbYj+y7dCmanr1gU/oaMXbGIJ2fGNMbhSfpTkGKyU5uqrrw4e13jQKuJUDtojPKY9AmqJCX7Rxm2eeA+hv0KDyJN8u6ofvKEdUU6+ufjSb0yCHwB1oLhPh4sL/mlnLecnn3zyCO8jesb+pgBcfF+Moepf7O4V6C7F26r1qcs/3o/iGf7YPkn5MfbKOyfneG+54oorOAyEgZk+yhjBeyH173Dy3r8q8tI+X+fYytnYOMF35HvS1vEkhtwT6Mb2ewtik/KYMtjvICNFv/6ekj1Vxp8msocyNgFw9asD+eYoVb+287KmdbfGEPqH+jjH7IbHIydePS0Qn3kA8pJ2awEsMaAgV3+ux++l/shSZDBzL4hxjDFbO+ytzABgjfcZ5KtNQ7kxXCC3IDs3DxcW/CMtHp14D3NdkYBRgCrxzKI5Mn2TeQD1Zq4IWYAn7xTYkjQCvnIdUBgeeiBrKLJ1Y74IgELzIIxCGAL7zVdCppl/eHmyHnqRH/RL5Di6Ac1rc7I8ztbKp/iezi2vf2YAanXlGXML+iR8VPtiLMVbFeA8vKAOqn62DqoX70X+2Pm07vGNabvMR9VuuWcNe5zTJmmnEO2ZNsF3Z15p02ks7NcGbTktr5vype43ChVp8U/v03jJ+IGnPNa+6gf0UQhvjsy5c5QaY3jWApOZhyAv+JYYpJmTQfRDxjTkSD/Cowheo0SUHZlAXnY+zP0yABde7RhDkZ/0Q8kP+hhgqtw99Ho5ABde8hRulPfTX5jXstbAAC5CzvCOLgFcTcfCfumajmmqa+oXMB9AdI1zzGtY81tZo3QxgKvuOrtfH+Y9TcYRCyBQWfmlHeHlFF2QAFy63+VaRfM48k7NZaqsE0nbpO6kS1E/Xlt5qfToZ/B6iPy1IM94Y1qX5dS7m+RZZ/4gUAleAulntHfaRz/dhMpXR57Qd7qQ3Xp327ZKPk3nrMhmvFRBlANQLmMHYzcyU3KDzQ7yxmrHn5BwwT943W/tbNN10adiXQhlYJ7O2IQstVQVwNVEBgPSYkzUuMPYyhwJfqQ8HNtyocfD26uAf4x56K/sHMeuHcoAXP1kAu9t0g+t/LXzvJRu3n5j1bOL9q284l9AlwAqNa9nPsV4p3lW/LyfOwecA84B58DgOeAArsHz2N/gHFgsOICSClfWKGwhDIcY6KXYjiupMAksaJn8OTkHnAMLcyAFlLLKIbvQxJU0YaigGGBy3HHHBfft3MPLgLxXcI6BBYW/FNkALqXMTi0SSZMql1WusZhHeSuPWSiJLQgFRTSLZSnK8QaAYVd54ymiH2EwwoAAsWgHzCXjW7+0o3XffiMLAKA8ViFiF8AoDVCkQ7ipl1GPc4z5AO5kIMCVPeBYaBDfw7Y9lCR42hLPUR6wg03KSWtg5Zo8TsTKnLicKINRDItoj/KiZRVZNl0OwIXygraOEQGCxxhmKSskAxbHMvJwbHfgcW6VOJzH/YtrKbLfO05j34fSDt4prA1KMMAMKJcgdnBj1NWxvJ/hZQHFv4h0tA8MfPQJyi0qK4ueSf2qnLZN2m8Sg7Sswik2SqTy55r9lsiOm266qaew5L52RnKMR0GM31DTvlHWHkPGmX8YufEWBcXgExR/yDRIuyIBo8AfFLEY7+irNgyNBaJgUEORSH+KFXG8C/CNvMxZcAHvmz59egiLwzEGAtoFxjqMG9qFOog8u6ofBmvkA8YtyHohog9bY2FqTCKt5A48tnNK+KFd7pYf4UWZfzGAi/7GLnMBEfBmw9grinlbtT5N+ScgFu/HcEzfhGw/4ZxxnL4q0sYJ23bVv3mmjrxUnnV/mWcg4+kTtGdkN4TMQlZzXeBTO2+w/d7KY3vdfgdrpCjr77HsqTr+NJU9TQBc8KesDtzPUVy/LuZlTetuvxvlBXQPvy1g37ZHQOz3GE9bhHs5eEH4JtpIPL7l6o8hDGM4aRhbkJ02LJ4Fu8hAwnvwBgchMxh/NVflmgVdMg8iBDJk50ecM/7Bb8ltjDw8A9k+yDl8oP0iO/hmIr67QAD0T+TbiwtAwyJkI+tpiLEFGSCy4wTGVMApdtNDXIamcwQbFlU8VBnQCeAJUOsLPPCiG4Akyznm22AIZt7It+1Hltd2HWTbTx15Zo3IFhBDOQZVP1sH3mM9EjJXhT8ac6gL349vBlnZaL0aAUIjHQSQjrYLb0V4Tdpxxx3DqZ2jcyHXBm05La+b8qXpN1Id6v7qfXYOSx6ax8IfjKtVKDfGiHfM81ibqs+Tp5V7ln9l70NuCKhv2wVpCM+O5zORba+5uqqvxTwgj9y9HIDLls2Ov+RlQQnaQNAlgIt3NB0Ly9I1HdMoT47seoE5DfM2+jGEvoNxhHEJsmsl29/qrLPJR+2wq3HErufIH4++eCyUHLL9gftc73KtYudx8Vym6jqxzRhKnXKU47X9fqTFw/KMGTN62dhxVnNdbg6inG3yrDt/YKxpopuoK0/gVVvZTR5dtFXykczluM6cVd6jkAnoaKVLIx90Xlq72Xld3N+qrjVtui76lNUpE6qPeanmGbR/6zky1vlRvxS1kcHSSVs5mnqHvYbOBp0Z4xRlZ67KWEWf1Hzfjt2UT99I3zweT3MyoWk/tPLXzq01ZkvXRL3sN+a8q/ZNXikCTAnYkDEK3Q1zVTYiwxOND6l0fs054BxwDjgHBscBxinsg6wvkMv8cazzqm/2EIpVOeXPOQecA84B54Bz4D0OaFFqQ65Y5ZBVBlulkAWLYCSWh5KcAXvy5MkhrB+vBTyjnUupRSLPpMpllWupBbuMx6RHMSGQGOfs3MNADlnvNeFC4p9VYKP8ADghgEvi8TFzyRrbCEeAAcUSux7xKMbObYyOLMj5Fky6rLHbpkEBgVEMsh5oBvE9eA/vQ9mBIRDlkSUW9Cg2IBS9KLAhlBdVAFy27YWEC/5ttdVWBWHSINuubP1yAC7aHKA2SwBaFNIABRqARgukscoym84aq2z/ss/Ex7k+yXNSAHHMN7agNa5ZBZl9H30Hb1t42WO3a0yA6gj7FBulysoS52HPVU6rqJKnHJ6zIDil49tggERuIaP6kf2WGHfVnpXOeiNQCLw2faOsPeqd8S8AE8lFjHQAZ+hvljBUyxspngTxoIChFbLgQ5uG5yZNmhQuXXXVVcWtt946QhHHd+QZKQ550AJeU+1VAB/bBqxyr6s8rYekNvVDTjA2WbL9Td7euJ8ak3Djjzt/6LHHHgsAy3Cy4J81WMceqfRM/Mt35nujhLz88ssDQEOGdBt6Suli3latT1P+2TAi1mBw4YUXhkU735cxg3aqUGlrrbVWkCmU+ZprrgkgSY7VvzmuKi95tg1Z+UHfZxyxfVzeiagDnpn4BdyKrIGsYQmvaAAVIPsdrJGirL9b2VN1/Gkje0YTwGXHz8CwBf/qzsva1N0aQ9jcI8CrykKIQOZAUGoc4Lo1iqfGTZ6xZD3jAAaTZ1M9Y8OOCnAA4FOeilLjG2mtfJJhx87NU3NtO4YwfjPGi3KGHwu4SvVP0ssASr8HPKJxCYMUYwH9B2IuxFwHYt7MXIhxXdRkjmA96lljtPLkl81dAO8gvEEBSIMkyzmOQSpcKyPLa7sOairPcgCuQdbP1iEGXFB3K+disBX3kY2MS3i+0Fxw9dVX7827AfYQys4SBjdAi1C8iSTXBm05xes2fGn6jWw96hzrfXYOS/q2IAA7xkiO0veQBxbAxRqcORzE/C5ek4Qb5p/lbUpO8qgdQ4cJ4LJrJdbcgDYs0R6RywA2ZVwe6wCuNmOarbs9Zi2MXEb2ImvxKsl8zJLVB1jgQdN1Nnnn+nDTccQCCKgHc1bbtu2cq6t1hc3T9jE7V0vND+wcUutEeNK07qQtoxyvrby0ehDlhTdEdA+QlfuDKGebPOvOH5roJprIE/jWVnZ31VbbzFnR6yAniaIg3QJ1E2k9x/qGdQ5k+wZ1qLrWtOna9imbV2q8o5xWz5Zad/CMJfKEB8jLurpO8pFO2spRm3/TY7tm0TyfvHJzipxMaNoPrfytA+Dqqn035Zuncw44B5wDzoHR4YADuEaH7/5W54BzwDngHHAO9BalbQBcVkEyd+7cEG4hZq1VKOEdi8UmJAOLFLFKp8WyLZdVrsWegUhnd5tZjyrcI7wDhibo6aef7nlMCReif3ZXMArR0047LevpL0o66qdWwUhhMHjdcccdAbxjlaIqKLuZZJgpU4KgCMJbE4t27STv+nugmMdgBBHCB0N0imT8tGWpakAnLd/fEoAYgDGQ9UBm65cCcFnwgs0PL3UYKiGBH6ZMmVJMXgBihKwxJFx4758FTVhAlX0mPi4ziEoBZPlk09ud7CqnvW+PAUuxm5BQffyhBIvzLSuLzSs+Vjmt8csq5/Ac9dRTT4VwbSjPmpD9lgDQ6BeWbPtRG2jTN2x+Zf3KlsG+L2W44lkU3gAw4Qnhl/CYgWzjW6AITPXx7bffvthnn33Cq1QWqyC1xlmVh7ALtA8oBSiyXmUEfhpEnhYo1rR+Fpij+vErBT3HeCqAp1BqTLLem1Ao2xBs1giOEdV6+wkZJv6hSCZPgLQY4gSAsEYhm8zytk59mvJPoQoog8bLVVZZpQdwwmgPaAJCduKxh3ZA6FMopYiuIy9DJi3+WQ9GUkpbBbctn3jE95fHCoG6Yi9M9jtYI0VZf7eyp+r4Y2WB+myKHalxeTQBXF3My9rU3RpDBJ62fLOARr47O/tjsuF7CbmIkauM1H54BuCQQgzaNPIIzbjDn8AY1rhqn+cYr1uAZSAM7hiUreE2Bxa1suXoo48O6fmXM/xoPqX230tgDshn7bXXDldUFt224FZd45cwrLRdS03mCHYzRW5eRGgcAG+Q5alkOeMjfZvfqmR5LVARaTVfqSvPcgCuQdbP1iG1cQWj7WqrrRZYwphOWEpLfEMMwChrkZk5Yu5O+ETGCIDOAie2AXC14UvTb5SrX7/rep+dw5JGc4x4rlyWX26MsYBO5iCAtO66666eV92yPON7FtgT92c9SxixPfbYI5zaNUuuruprMQ/IIHfPrrUFILTfPQWIJT/GCEKAAlLFC/dYB3C1GdOob4qsh7zcHMF6yxPwoM06m3J0PY5YAEFq/mv7wyDWKnYeZ+dqVdeJ8KTtGEoeKcrx2sp1vMlLX2bzkOxmjaF5wCDK2TbPOvMHWz8d99NNNJEn5N1WdnfVVrues7K2Q5dDeDo2F0A5AFedtabtp237lN1wK7kVCmr+WaB4Tv6Zx8OY0VTXST7qY7ny2HfVObZrFrsuzY2zOZnQtB9a+au1MuXXmG118/Ybd9W+6/DKn3UOOAecA86B0eeAA7hG/xt4CZwDzgHngHNgnHJAi1ILlLLKIWu4yBlfcGW9zTbb9DiYM5LISI3raJQSUGqRyPVUuaxyzS50eR6SMdMqrP7vTj0Alw0TxaI4Bvwoz7H4i0tTDIoYlGPCsEUoFHZoK5QYShyAQ9AVV1wRQDJxOs4tYEMeI7r+HtalO+/s1454BiAFxoyqBvRUu7Eh0KxyxtYvBeCyig3KItpuu+2KfffdN5zK8GHBAwACU+6/reE4Z6jUO/Sb65PclwIoBpworQXpqJy6x45+Qjyh4AO4p76r+/zGRqmysth08bHKaQ0/gJLgEwojS7wTz3oY1jFeyQ29fSZ1bL8lsidOZ73MqQ206Rtl7TFVPq5ZoFUchjaXRjLPytT4WQtepd2JrygCISv7ldbWfebMmcGThu7xa+VBCsDVVZ5d1E9eb2z5ObZ9Ei9SGOSh3Jhk68wYgWcyjAeEe4GsEjxcKPknkEX8SMqrDs9YxWmd+jTlH+9UWhnv8VzEbnD4BFCNfgsJSCIgW1wH9e868jJk3OKfDZFJGD3KJoC36qPsLXCW8R4vEAKYEyqT0B0i+x2skaKsv1vZU3X8sf2v7rg8mgCuVP3UjqrOy9rU3RpD8ByAdwpLdm6Xm1/wvMY7tR2bR3ys+nHdAkHj53RuwUZl+QOEwbgJKYyYnZvPnj07eJVSvvqVdxU7nnIvZ/iRFwaeyfFE/OCZVHu0fOUZQBUCVHEuajJHsEC21NitvGWwpv9qA4dkeW4OpLSpX8truw5qKs9yAK5B1s/WwRrnVF8MmoBLIDZmxN9fPI1lJs/juZZQiRMmTOiFr+S6pTYArjZ8afqNbNnrHOt9cZ9rCwKwYwwbpZhr2b5IGWnvzEUAVQPqr0J4JsSID6VkNtctuMquD3J1VV+LeUBeuXv2HQJw2e9O+4tBoOQX01gHcLUZ0+K66nz33Xcvdt1113Aqz7q6Z38FFta6ps06m3y7HkcsgMB6blUd7Jyrq3WFzdP2MTtXS401qXUi5exiDFV97W+O11au57695ru2Pw6inF3kWXX+AG/q6iaayBPe01Z2d9VWLW/i8ZlyijQuxHNKwFCE1kYPwKahFNm1q+0bddaaNl3bPmV1aKkNZNTBAlGrALjaymDppCVHU3xscs2uWexYnBtnczKhaT+08tfOETVm23W7/cZdte8mPPM0zgHngHPAOTB6HHAA1+jx3t/sHHAOOAecA+OcA1qU2sWYVQ5Zw0XO+GJ351dhp10QphaJ5JEql1WuCTRg3ydDWsrYYEEM8ihi09pj5RMbou0zY/mYHfMY21H44/ksRVdffXVxyy23FHZ3Ym4nNukt71MAri6+x6abbloceuihqeJmr0nhUdWAnipnUwBXrn1Y5ZMMH1YJlzKUUUEbBog2SKi2fpTrk6STAihXzhyAC0UXYeGkEFQZUB5ihEeJDVCQc3lj45mysiiP1K/KaRXNPIdRhrBIeJzifTEBJAFcgfGqH9n2m2oDKcV8m75R1h5zZbXvU4i33LO6LuOM9Tqie/q1SreXX365OPXUU0cAggB1EorFklV2Tp8+faEwSRbMJH7a93SV56DqR13rArgswFKh8KwXu5whxfJVxzGACyMschu6++67FwoL2o+3pEvVpyn/yA+QlkJvomTGoEHoVACUHMsjCOe0B4ytyIyHHnqo50mRfNS/c3IoJS9J14Yoh7xoIbPwVAewGYrBkXZugAcI5g+AEyCr0ObcfgdrpCjr7/1kT2r8sbKg7rjcD8BlgSQymlO3sjpwP0f96qf5VNV5WZu654whKrvarM77/eYMWDad+lhVkBBetTAqQmWGJzsPZ67GnM1eY46M942Y6gC46CeUvw7FfYK0tg1wngtX2GSOwBiP58l4vsF7LEnOpABcds1h05QdW17bdZDeU1ee2X6neSHvH2T9bB1S7cUCuDSOW56kAFwYgZGlGNJjgvfwhbkb1AbA1YYvTb9RXJ+q53pfPIdtCwKwYwxlYS7Mhim8Bsfzc+7D+6lTp/ZCnHItRQJbcy/13bm+ivG4adtrrq5ay8c8IK/cvRSAy3o0rOrRtAqAS2WIvWqmdA1Nx8JcujZjGvxLkfUyeskllxR42EuRDPsCHrRZZ5N/CkDQZhzJAQhUFzvn6mpdYfO0fcyOY6l+kVontqm76pj7TfGaZ/vJdZ6JAVyDKGdXeVq+U/bc/KGJbqKJPKEMbWV3V221zZw1p5tlLjV//vzeRs8cgCtVB3iTWmt22ae0WYh3peYtXK8L4GorgzVOSI5Shi4ot2bJjbMpmdCmH+bkr8ZLO3e23zjVNprojbrgoefhHHAOOAecA8PjgAO4hsdrf5NzwDngHHAOOAdGcECL0jYALnZ3oVCC8MbRbxcwIaYAHECpRSLXU+WySp6Ucq2uoZD3pEgGOULd4EZ/UaYVV1wxhLVCUY7xnYW+iDB1m222WS9U2qxZs0K4Rd23v4TJwmgACYDU9ffA25PCJgI0ufjii20RFjrGWISLdyinOOdev3KmDOhxupQHrjoGPKvwOuqoowqMHDEddNBBBSEwodECcOFRCC80aid4bAKQAZhMXtvw4ES4nNig2sQ4S11ziiruiTBcbbjhhsXEiROL5ZZbTpcDH+FnP+rXBlKKeQtwq9s3ytpjrqw2lIQ8ruSe1XUp6cs8cOFpAY8LEN+RtjUIRdwg8hxU/eCF7ZNVPHDRJzBoAyaUUnPatGmhPdIXUMSmQljyrpgE4CIdxlFAUAJ1cA2QLNdE/XjLc6n6NOUf+VnFLuMxYErqLuOKjAMAKTESUn8oDiOn/l1HXoaMWv4TAIBsCO0sUBZgRZTPlsQnysj8hLESig3I9jtYw19Zf+8ne1LjTxvZ0w/AZT393XDDDQUgLqisDuGBzL9+9as7L2tT95wxREW3QGoMe/36K2FCUmO18uNXbccCh+z9+Nh+79hbgn3WGrHoX3idrGK4rQPg4n0AHTGGAWygz/Qjwuwp3CzPrrfeeiNCynINGQao89VXX+W0R03mCDbMX8orijIXUAGva3hfg3LrC6Up+7W8HiSAa5D1s3VAhseAvyYALsl9eEf/AczMHJHQoYAYkZ1aN7UBcLXhy7DHHL0vBi+1BQHYMca2VcDe9LsNNtigwMMKXv1EVQzM1gMX8lvrceXBLxuAtEFjmAAuO35ps5AtV+q4CoBL4xBtlvWcKKVraDoW5tK1GdNUzvjXemi89tprizlz5sSPhHWcALpqF23W2bwgBSDgetNxxM4zU+BgO+fqCjRg87R9rN9cJrVObFN30pZRjtf95Dp5al5iZVLTb1RWxrZ5Vp0/NNVNNJEn1Let7O6qrTads1qgJvOxefPmhXGaDayscSABtMcagAtPz8x/oZynWXRCrHmhso0Q4YEF/9rKYI0TkqPKt+1vbs2Sm1PkZELTfpiTv6m5s5WbXbXvtvzz9M4B54BzwDkwXA50BeD6/wAAAP//JaFXhgAAQABJREFU7J0J3G1T+ccXka4KCXEN1zxkCmXI0DUWEkUliQYRKipSZioqqSgaZGxEyJA5YzLPQqZryJSM/2TW/35XnrfnXXetc/beZ59z3/fe3/P5vO85Z++11177u9Z61vA8e61pVl555f8EiQiIgAiIgAiIQGUCRx55ZAx7xx13hO985zvx+1prrRU+/vGPx++//vWvwwUXXBC/b7zxxuEDH/hA/H7YYYeF6667Ln5/97vfHT7zmc/E73/5y1+CxRkPvPZvmmmmCZ/4xCfC9NNPHyZMmDAU5/e///0w88wzh+effz7suOOOQ5dYHD5du+yyS1hiiSViGLvf0AUTv5CmN7zhDeFf//pX2Gmnnfyp8La3vS0ccMAB8dgtt9wSfvCDHww773985CMfCTPMMEMg3PXXX+9Pjfjvm2yySXjrW98a7rvvvnD++ecPS+/rXve6mMdvectb4vHjjjsu/OMf/whwRW644Ybwox/9KH73/8i7n/3sZ4HrX3rppfC5z30unm47P4j/5z//eYz78ccfD1/96ld9Moa+r7/++mHs2LHh3//+d/jtb38bj88222xD5feqq66K6bULuqVzpplmGioPt956azj44IPjpf46nplnR2A044wzhmeeeSZ86Utfisf8v3XXXTdsvvnm8dCvfvWrcOGFF4Ytt9wyrLnmmvHY4YcfHq699lp/Sfy+zz77hPnmmy9+9/VrkoDuQKlOEqRbOjfYYIOw6aabxtgsneutt1746Ec/Go95FvHAa/+snv3nP/8J22yzzdCpTmkZCpT5YukkP7/whS+E6aabLmy11VaBcnfllVfGeugvo/x+97vfDdNOO208vP3224cXX3zRB5nku8/LnO4YM2ZM+PGPfxyvs+dG13AdUrdudCqPMcLMv7e//e3hK1/5Sjxz++23h4MOOmiSUDvvvHNYeuml4/Gvf/3r4ctf/nKYffbZA3nxxS9+MdaJ9CJ0OTodOeOMM8Ipp5wS9fBPf/rTeOzGG28Mhx56aPxu/9773vcG9CByzDHHhEsvvdROxU9fVo0nur3tOL/97W/35fl4iF133TUsvvji8Xm23Xbb8Morr8TvpTaJk74cEQ7+CG3aN7/5zfi9yr+f/OQn4fWvf324//77w3777RcvIa4ll1wyfk/1Xze2XJR7nqb8iI/6hT6mHpJO002kl98rrbRSgBti519++eWw3XbbxWP2z+p3HX1p1/by6XUu6UKvUE8++9nPxk8ft2f36quvxmc3feTD+Xy47bbbwve+9714ulN992XG6oqPM9f+9KJ79thjj7DgggvGW6BPeQ4v9I2WWWaZeOi0004Lp556avze6Rn89en3bs9n7UXVflkvz05b8M53vjMmkefknl7Qkcsuu2w8RB+QPl4qc8wxR9hoo43i4csuuyygizsJ/WbYIdThp59+elhw2it0OfXonnvuCd/61rfCL37xi/i7VCeIAH0y11xzxbjQ9fTVfN+cPjL97VRox2jP0vKLbqb8Pvnkk0PtGtfCgTJI3aA+U/5TWW655cLyyy8fD59wwgnh//7v/+J37sP1xIsQt/Uv4WD6MZ6c+K9JH+GTn/xkWH311WMUcLv88sstuqFPyjvlHqHvu//++8fvnXR5DNDhn2ftx0FN9dmKK644pButv8Xt+/l8/hly5WW33XYLiy66aKSQ0030+9Gbvu5afaa80Ed/4oknhlH0fYeLL744MM4wKZVBn05j3QuXpnlk6az7afdL69yee+4ZFlhggVi3fF+5U/y5Noa2l3EFcvLJJ8d65uPwbfGzzz4b+4L+fPqdes41CGOodKzI8U9/+tNh1VVX5Wvw5bX0rFbXUgZcXzpHO2Rjddoh2qNPfepTYbXVVuOyYtpMZ73wwgthhx12iDrH2uK//e1vcXwQI3jtH+N5xl2IH8PyOzfX0LQtLF3XS5tGGnOCTv785z8fT/m+iA+71FJLDY1RbVzTyzibuEt12PKkbjtCe027jdC2nHPOOfG7/fP1oR9jFc+uW18mN04knU2f3Z6x9Fli7fVlTq8TH+Wdcu/rYz/S2UucdfoPTecmmugT+PWqu9sqq037rLTNiy22GI8yTH/HAxP/+XEHfUv6mEi3+kYYP16ysbO/rtc6tfDCCw+l5+qrrx6aV+DeJsxdMYeFpHN+FsZ/9qqDrZ0wPerj7uV7acxSamdLOqFpPSzpX2uz/dy8z+O2yncv7HStCIiACIjA4AkwJ8BYgnkt5or547v9rpqiaeTAVRWVwomACIiACIjAfwnYoNQ7SvnJIZtMJ7Q3vngnlFlnnXXI2YDJUQakTOJ5+eAHPxje//73x0OXXHJJOPbYY+P33CCRE7l0dZtcM8OCNzbEm0z8V8eBy64ZjZ84H80yyyzRCMfESpoP3rjyu9/9LpAXcKPTheGOyXBzVLLnX2eddcLHPvax+NNPjvcjPywPuZk5Clg6+Bw3blzYe++94yE/6eQnztMJn27p9BNZfnLGX9erA9cqq6wy5Oz06KOPht13390/VjSOegdGOJiD5LCAyY9SnSSYTQCVjMQ5By6cdigjyJ///Odw9NFHx+/2D4cXJu8QypY3SnVKi12f+7R02kSzdxx55JFHhgyz/lo/OZkz1PuwfPd5mTNU5ibmmfxuWjc6lcc0bfYbhx70KnURtpQHDFQmlFP0JedxWEPP+sk/nKyOmehs5QWWhxxySHQ45PjXvva18Nhjj3WdpPV6gjgnlwNXv54PFrlJaI6X2iTO+UlgJjZxGEYwdDOJXFVyDlyUwR/+8IfRYE48ZtDke7eJU8LknqcpP+JDvBMJv72DFoZ9JpMpjybmoGK/+bT6XdJDOYdXf33T796pw+J4+OGHo2HGftvnGmusEbbeemv7GT9zjt4+H7yRolN976Z7cu1PL7rHG95xwMMJ1oR+EA5ElmclB660DbXrc5/dns/a9Kr9sl6e3Zf3XLvgjYDeedI/l3dOxfGqmwMXDoET56BiFFdccUU44ogjfHTRQcEc5qxOm44hIH02+h1eKE84X5JP3oDi++Ylw203B66nnnpqyFGYe/q21Bx8fVqYpCMPKfv0EXHQNCcvjH4Y2xAcp3hJAmdg8hBJ26QmfQTv+ETbRRuWii+D3gnAOHuG6bWl3561Hwc11Wf+ObxDjD/e9vP5Z8iVlyYOXObURR8ldfijvKJf0DNIyYErLYM+nca6Fy5N86hUFrodt/tZH9bCmxMAv3P9TgvnP3NtzAorrBDHZoTjhRDKTyqmZ5977rkhx540jP32L12lDp2Eoc7TF6WNR3x5LT2r1bWUAdeXzuUcuHCwxWkBwTnQxhvxwMR/OHfhlIF4x/lOTrG0BaaD6zpw1WkLS/2AXtq0+KCZf29605tif5E6R13EWZu89/KNb3wjvuzEMT+2tbLC8TrjbMKbA0Fah5u2IyUHAu6F+PrQltOAj9P343w7kquvuXEiaWz67FzbSUqsvb7M6XXizDlw9SOdvcRZp//QdG6iqT7pVXe3VVab9lmp1/PMM08sXvTL7r777mFFjRdqx48fH4/5uTRfN3LPwAW5saa/rtc65ePixSrmQvy8JC8J0D+29qmKA1evOtjmpL0ejfB6/Fcas5Ta2ZJOaFoPS/rX2mzfd/b5kisbTeaNesSny0VABERABAZMQA5cAwau24mACIiACIiAEbBBaRUHLj9pxACdSUCbMGQlIt72RHC6wPBr53AU+dCHPhSNUUw0MtC0t7Zzg0TiyKWr2+SaTUpWNRRyn1QwptrKNxj4MEaMJuGNXN7MRW6++eZoTDNjG6s5wJ5nRODJ5D3OSe9617viMYzs++6779AqEqy6gFOXGXxtJQi7HocGJDfZ2SQ/3vOe98TVl4gT5xVWt8AwiLBCEc9nxkHe7MdAhLAiFhMeCPnP5BtvovPs3cpNzoBOPP66Xh24iM/KOt/vuuuu6MSIQwSrS7zvfe+LbzBwDoFdFQeuTnXSJoBKjhM5By5vKMJJCAPAQw89FPniyMcKfFYWqMt+NZtOafnvU+X/Wzq94cfeJuSK3//+9+Gss84aupjyTZnEOcnewB86Wfji8zJXVksT803rRqfyWEhiPOzfFibf0D///Oc/A8YanP7MMGrOJd6IQwTmIMB3non6bisneR3fj4m4fsTZr+eDT24SmuNWT/3EJcdNzDBiv71Tkx3r9plz4OIaX4eoX6QRHd2NLdfmnqcpP+JD/FvO/P773/8ecHAxYdULW3GHY7nVPKx+l/RQyYHLG/DT+9r9u33iwIQx2uTMM88MJ510kv0c+vTOk3YQ51WcWL34fPBGik71vZvuKbU/TXWP50YZpg1Fh9PGb7HFFkPOnDyXd+Dq9AyeQfq92/M16Qc0ffaSMcSnGYdW6gXCak70NalrlBPalXe84x3xXK4fGU8k/9CzOC3RHiEwPf3002Pfg/4MhjIzsrMiFfXAG00wUOG4aU5crKhIH8ycQ71DktcPpLvOClxWD3lW4qdM0D/yzmKc++UvfznUr6Ju4+RDmhBrd/junR6Jh2djZS7vlEG4Aw88MPZ3+O7Tn44hOF8SezGB81xH/wBuMGfFUPomSKqzu+nyeFHhn0+rORUR1Dj2os+8Qwxx9uv5/DPkyksTBy6fVhz0KC/kBY589K1Ywc4kNawau7QM+nR61v5edfLd7lM3j/z4o06bY/fzfVgYeN14/PHHx5Wn6S90klwb49snrkdfwAPBiM2KgfaCFIZ6W226032sbhCGa2BNfxrdSBvPi1kmvryWntXiSxkQR+mc1xW+7+pXNfR6gtXM6OfYGJAXwXgJyd+D7xdddFFczYnVqBlb2UpinKviwNW0Lex0XdM2jTSXBMcGWxmR8S7jNZxA0Yu0ZTYXwPXe8cCX8zrjbOKx/E/rcNN2xLeFvq3jXoivD205Dfg4KV+2epuvr3XGiU2f/b9PWP5fYu31ZU6vE6ONU3x97Ec6m8ZZt//Qy9xEE33iy0IT3d1WWSUvm/RZvb7hxRUcnujT0pfDGc70BvF7J15fN3LPQPjcWNNf10ad8rqNdOO49MADDwRehqStsz486Un7GRzLiWdC34B+sK2Y22muk7ioZ4jXo/FAj/9KYxar+77+cis73m/9a22271P7PM6VjaYOXJ4BKzDSDkhEQAREQARGJgHaZObMmNtivMEf3+131VRrBa6qpBROBERABERABF4jYINSb9z3k0N+Mp0BMxMJXsxgixELowoDPBMmSplcpkE3SZ0xcoNEwubS5SdUcpNrTQyFli77ZDKKyR6k9Da8hR2Jn29+85vjZDmdKYRBPhO05IO9rcZxv0Ubk+EYBDASmGCQSTtibCd01FFHWZBhxok288O/OcjNMFiQFm+Iv/POO+OE1FBiJn6xiQ07ZpNI3cpNyYDur2Pix94AtPvUNQ6xVQ0ONb4+WFr5JK/sXFUHrk51sls6cw5cMMYYbcZj0gV/X3aY0LHzlBMmW9iCpVNaiKcklk4/UeUna7mONMCf+xojjrOK3HnnncfXjuLzMldWSw5cTesGibHnsoRZebTfuU/0JzoRQ5AJxnGrzxyDP8Zy6jXy4Q9/OBqp4o+J/yhH5IvPM9jttddeUacRrh8Tcf2Ik7T24/mINzcJzfFSm8Q5xG8/xO9rrrkm4JBVR0oOXMSBw4MZwc2I3I0t15Wepwk/4kP86pr8xpGSNtzErz7EMYyGVi4tjNWDuvrSr7SBswnlt66kbQkOCzhE5iR1RmNSOd2a1edDWp/tOS1uO99N95Tan6a6B13mV3Kz9NgnusHaUu/AxfnSM9i1uc9uz9ekX9b02b0hILcCF+nnRQO2orV2BH2JfvT9H46xDR9O/FVkww03jC8pWFiuR+wefPcOCvz2K33xGz3PdZY3HEv7oL5vXjLcllbg8vlE3L69ZYVVc4LiHOmgzaW8m/BCBi9qwIoyS32xtJ544onh7LPPtqAxnL3QwX3gTblr2kfgRQG2F/Y8SR/3t2OkGSZ+i8VuunwowZkvnrUfB1kdqavPvGOld4jh1v16Pv8MufLSxIGLLcw322yzIWJpWad80PewfPGrKJXKoE+nZ92US9M88s9Wp82x+/k6BSD/XAaspJfsfKmNSfsdtE3oDHSlsSYv0CsPPvigRVf8ZLtm6rNdS0Df1/fffXktPavVtZQB8ZbOlRy4FlpoobjSnu/3pv3gdLVPv6IM90wFNjwr5ZPxnEluroFz9pwWztpz+136LF3XtE0r3YfjtPWw9W2X14v2zIRNHQ/SvhHXwcd0OtfkxtmlOkz4uu0I10wJDlxNn53rOkmJtdcrOb1OnDkHLo43ySOu6yR142zSf+D+TecmmugTz9ievY7ubtPBpUmflRe3WK2+pN/RDdR56+OhF3nxEYcmnKWQ3DNwPDfWLLVbvgzXmXtBpzGnbHNN3NeLb5+qOnD1ooOtnUj1qE9Tk++lMYu1I2l76nlyP3++bj3k+pL+tTZ7EA5cfoVM5hKxK0hEQAREQARGJgE5cI3MfFGqREAEREAEpgICtu2An5wcP358XDWAx/eT6fzGELP00kvzNQqrWbCqBYLTAQN7W/ElHnztH5PNbM/yxz/+0R+ORiDe8veDUALk0oXTApPOSG4iwAyFOcOK30Lx+uuvDxi5cuIN1qnxLBd+JB7jrVsmqL0Dh0/nX//61zgRxgSICXmHMceWXLfjfDLRg6MMA2sv/cwPvxKRvydpYWUqJpiY0PeCEXWTTTYZcnZhlSucIbqls2RA99d5By4mEd/4xjfGiS7CpFJaUYZwOAhSh+acc86hiTXygVXGeC6cLZDvfve7ge0qq0ipTnZLZ86Bi/vNP//80VjqnYg4jgGW+n7DDTfEFfbMuHLuuecG3lBFSmmJJwv/LJ2pDmD1HwxqfgLSoiDvMRjnVtOxMP7T52VOd5QcuIijSd3gulJ55FwnYSKUushqA6ng0IOeY8sDL7zNjAHL8sSfIywreTHgMkE3sBUSknNA8m9Soou9UZxrvPOB8exHnNwLafv5iDM3Cc1xc+RJyyPnEFYyZIVJE1ZGY1vUOmLGldw2bsTPSgpW7skndEOn/OLepefhXF1+XGNiE8n8xokKw7YJhgWMwIh/i9vO82n1G8NAHX3pt53NcfL3KH33K4j5iehceN/mlNLqy7jvMxFfqb530z2l9oc4m+qeueeeOxpjvGGX+Nj2iFXJcCRGUgeu0jPEwIV/3Z6vab+sybOzvR+OMgirddoqsGnS2YoZQ0jaxhGOvMdRndWm6gj3ZUthbwDnetp3+r2wTgXdyXZmObn22mujEdaf831z9AGGq1RKDlxsf8zWZBixEBwtcbg06aQjqH/UY+o4ssceewS2KEX89jvxwMR/tGGEt/Lnt2Nu0kcg3k55xrOwglC6TVA3XW7pzX161n4c1FSfdXLg6tfz+WfIlZeqDlzpmCp13DV+tIOs/sQ2rmxdhdBvxPkIKZVBn07Pmmua5HvTPPIOXOY8TRq6id0v7TPQr8RRhpWgTGgv4VmSUhuDXkHXwjAntG8Ymaus3GvXL7LIIrGvb0Z8O05c9HGsn+MduErPagbflAFxls75/kP6chf9ILZLxenTC2NAxvC0YzgdePH6344TnlW6mAOAXerAlZtr4NombWG365q0afYcpU9e2sLxgrGlF56bFwW22mqryDDneOD7POm1pXF2qQ7b9XXaEa5h5RtW20HshcD447V/vj70Y6zi+3Hd+jKdxokkt+6z++fMfS+x9voyp9eJy8YYufrYdjq5X504m/YfepmbqKtPetXdbZVV2CKd2sFSn3XNNdeMq+6m8wKUCfQ4831bbrnlf28w8T9tFeO7JmNNX0/bqlPESR+VOWd7BvQa/VD6uTioIelWzfFg4V9THdwvBy7fZvkxS6mdLekEe9w69ZBrSvo313f2edxm+Wb7X1v5uLRKtj2fPkVABERABCYvATlwTV7+ursIiIAIiIAI1CLARCFOWkxC8xZs6kgzduzYOOBmssXCXHnllbXuocC9EWCyH0cu3nBmgpfOFgaJm266KbCcekl83rFSCRMxOBJhhBm0YNjGCMTKVUy6k24matJVUXy6mHTjrX0MepTNkgHXXzO5vjN5xrYXZhRlIo0JNwRnDNtmtEr6utXJKnH4MEyWrbTSSoE3V0kjhmL/Vj95Q75g+MGhy3NuMy0YbzB8ci8MzzBhGX0mj7xDkk97v743qRu9lEcmGin/8847b2TPKok4lZYEPmwzyh/3xYERJ4TSikOleEbq8ZHyfDglYBzBwerxxx8fcoYZqdwsXSOFn6VnSvzspb534tFE9xAfRiv6AAiradAmdpN+PUO3+5bON332Unx2nPrLtm/woc1CT9I/glMvguMtBif6xRMmTIj9J+8sn8Y988wzx/CLLbZY7NvQ30JvY2Trh+A0Qf8Qpyzre9h90G28JMEf+oL2hm0a225DmvYR6JeQZ6QPhwwc33khgWeZEmQ0PR/1EuMfWzLhHIJTje+bk0f0EylD9EW8dCqDPpx9HyQX6gCOLzkDpaWn7idjYV5UwtnR96PrxkN4VufE6RMnXbjgNEc9oI+OcbuuoAvQgfSxGefhuFOlnah7n6bh0RWMZSlL9957b9Snnfr+jEkoXzg8MGZEP3QK3yldTdvCbtf1o03DoZbVVBBrQ6qM25uMs7lHpzo8qHaEdIw06cezd2Ld9Pn7kc5+xJk+Hzqv6dwEcdXVJ23q7vRZ6v5u0me1ORT0IXOAtBM4fJnQjjCfi9MuK26l87kWbnJ/km+UL3uBiLkpXp5C0tVtq6S1Hzq4yn3bCtNJJwyiHrb1HIpHBERABERgdBFgTMXYkT4JfTL++G6/qz6NtlCsSkrhREAEREAEREAEREAEBkaAySZW50BwQvPbDVkibOs0jDCscNDEGGNx6VMERKA/BPyqTr/85S/DRRdd1J8bKVYREAEREAEREIGBEbAth3Mrjw4sEbqRCIiACIiACEylBFj90V40wKE6la233jqu+sbxgw46KNx+++1pEP0WAREQAREQARFomYAcuFoGquhEQAREQAREQAREQARGDgHeyLZtO1mNgxW2/DYqbDmz6qqrxgTzNv3+++8/chKvlIjAVE6A+ssbymydyvamrE7DaiPbb7/9VE5Gjy8CIiACIiACo5/AaqutFthWjj46242ykq9EBERABERABERgcAQOOeSQoe1z2YKXlRRN/HbU6Za4FkafIiACIiACIiAC7ROQA1f7TBWjCIiACIiACIiACIjACCKw7777xu3wSBKra7G1DEuds8UlbxoiOInsueeek2xtFE/qnwiIwGQhsO2228atPFke2uTMM88MJ510kv3UpwiIgAiIgAiIwCglsMIKK4R11lknsLKmbdU0Sh9FyRYBERABERCBUUlgs802C+uvv/5Q2tnumy1hmS/jBSqEebRDDz00bn0+FFBfREAEREAEREAE+kZADlx9Q6uIRUAEREAEREAEREAERgKB6aefPuy9995h7Nix2eTIeSuLRQdFYLITwIFrpZVWGkrH/fffH/bbb7+h3/oiAiIgAiIgAiIgAiIgAiIgAiIgAiLQnMA222wTVl555eBfnLLYcN467LDDwvXXX2+H9CkCIiACIiACItBnAnLg6jNgRS8CIiACIiACIiACIjAyCMw///xh9dVXD3PMMUdM0N/+9rc4CfXggw+OjAQqFSIgAsMIjBs3Lm5xypZKt99++7DtHIYF1A8REAEREAEREAEREAEREAEREAEREIFGBGaaaaaw3nrrxRcfx4wZEyZMmBBX3GLeDCcuiQiIgAiIgAiIwOAIyIFrcKx1JxEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREYRkAOXMNw6IcIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIDI6AHLgGx1p3EgEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREIFhBOTANQyHfoiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIjA4AjIgWtwrHUnERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERhGQA5cw3DohwiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAgMjoAcuAbHWncSAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQgWEE5MA1DId+iIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiMDgCMiBa3CsdScREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAERGEZADlzDcOiHCIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACAyOgBy4BsdadxIBERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERCBYQTkwDUMh36IgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIwOAIyIFrcKx1JxEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREYRkAOXMNw6IcIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIDI6AHLi6sH7zm9/cJYROi4AIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiEA9Av/3f/8XL5ADVxducuDqAkinRUAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEahOQA1dFZHLgqghKwURABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABCoTkANXRVRy4KoISsFEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAQqE5ADV0VUcuCqCErBREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEKhOQA1dFVHLgqghKwURABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABCoTkANXRVRy4KoISsFEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAQqE5ADV0VUcuCqCErBREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEKhOQA1dFVHLgqghKwURABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABCoTkANXRVRy4KoISsFEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAQqE5ADV0VUcuCqCErBREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEKhOQA1dFVHLgqghKwURABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABCoTkANXRVRy4KoISsFEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAQqE5ADV0VUcuCqCErBREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEKhOQA1dFVHLgqghKwURABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABCoTkANXRVRy4KoISsFEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAQqE5ADV0VUcuCqCErBREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEKhOQA1dFVHLgqghKwURABERABERABIYRWHnllcOcc84Zj5166qnhP//5z7DzuR/TTDNN2HDDDcN0000X7r777nDzzTfngrVyjD7OWmutFbjnVVddFR566KEY74orrhjGjh0bnnnmmXDBBRe0cq+6kQySQ920dQuf4/fWt741rL766vHSK664IjzyyCPdoul4ft111w2zzz57eOyxx8J5553XMeyUcHLxxRcP/CGnnXZaePXVV3t6rEHzW3jhhcNSSy0V03z55ZeHRx99tFL6V1111ZjPTz75ZLj44osrXaNA3QmgXzfYYIMw7bTThuuuuy7cf//93S9SiKmGwHvf+96ob2adddYwZsyY8Pzzz4enn3463HPPPeGPf/xjePHFF6caFvagSy65ZFhkkUXCs88+O8W0OW9729vC2muvHR+Rvk7Vdrnt9twYT02f0sG95fbMM88cxwrEcuGFF4aHH364twhH4NUjfQy14IILhmWWWSaSO+OMM8LLL78cv+fGAIPCu8oqqwT0Wpvjx37E2SaP9dZbL8w444y12ibrkzOWOP300yuNz9tMM3FRTkjHE088Ec4+++y2o+8a35Q+vhg3blzgGZHf/va3kyWPu2bCKA/Qy1zN+9///jDTTDOF22+/PY7D+oWipKfbLP9N+5L9euY24u0lb3P3nxIZ5Z5Tx0RABERABESgTQJy4KpIUw5cFUEpmAiIgAiIgAiIwDAC3/jGN4L1I77yla+EV155Zdj53I/pp58+HHTQQfHUHXfcEQ4//PChYDiDMUn973//u7KhcejizJd3vOMd4ZOf/GQ8g1OMOWvtv//+cVLthRdeCLvttlvmyv4f6sSh/3fv7Q45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U65MnnNtlrnR4JAzJTlwffnLXw7zzTdfdOD60pe+NHkKUA93HQ3lpYfHq31p3T4LL3+wwiEOADgvtCH9iLONdBFHJweufrVpcuBqK/fK8fg+QhsOcawA6VdoxqGHlZJZqW5qkVJ9aJv1SOI5Why4cLrea6+9Irrrr78+HHvssSMJ46hNy2jvD41a8Eq4CIiACLxGQA5cFYuCHLgqglIwERABERABERABEahBYEp14DrqqKMqbetUA5WCViTA1g4YXljq/6yzzhq6qjTpOhSgD19KaenDrRpHiTPbW97ylmio/OpXv9q3lWmqJrCpA9doYF2VwUgP542hU7uuYxtgVvZLZaeddorby3Cc1QlYlTGVZ555JqyyyipaRSkFU+F3XQeuZZdddmhlP5yd+rWF4iDbGW8wlANXhUIz4CBtljm2xNt8883D6173unD77beHa665ZsBP0/12cuDqzmhQIUZDeRkUC+5Tt8+y0korhY997GMxid/+9rdbWbW3H3G2xXCkOHAxdqMvj1x00UXh73//e1uPWDmeun2LyhFPhoBt83z7298ett122/gkvKTGy2pTm5T6eG2zHklc5cA1knJj8GmRA9fgmeuOIiACIuAJyIHL0+jwXQ5cHeDolAiIgAiIgAiIgAg0JCAHrobgdFltAqVJ19oRTWEX2ApCbCnG1mKTW5o6cE3udE9N969rDJ2a2Nizss3I7LPPHn8efPDB4YEHHrBTwz7lhDMMR+UfI9XIOsh2RmWncnFRwAEQkAPXACDrFo0INOmz0G7jMHnTTTcFHNXbkH7E2Ua6RooDVxvP0mscI7Vv0etztXH9csstF7beeusY1dlnnx34m9pkkH28kcJWDlwjJScmTzrkwDV5uOuuIiACImAE5MBlJLp8yoGrCyCdFgEREAEREAERGFUE5p133rDhhhuGOeaYI4wZMya8+OKLgY7htddeGy6++OJJVqfYeOONA0uT33vvveGCCy4IGA6XXnrpMOecc4YXXngh3H///fFt2ZKRep555gm8fbzggguGaaedNtxzzz3hqquuCq9//evDjjvuGNnV2S6NC0jDyiuvHGaZZZYYJ1tdsMrJKaecEljWH1liiSXiCid8v/nmm8PVV1/N10mElQ1YReVf//pXOOGEE4bOV7nHm970pvCRj3wkzDXXXEMG+4cffjg89thj4cwzzxz25jbPvs466wQc1zDu4zRz5513xtUUYJKKcZ8wYULki4GMZx47dmx8M/kvf/lLfC6uI87VVlstjBs3LuYfby5fcskl4a677kqjLf7u5/14Xsrc3HPPHbcc49lh9Oc//zmWuzRRlpa6ZY63tymrDz30UHz+8ePHx3JHeWVVAlZeueWWW2K+kD9e1lprrViuqRdsFcEKOZRtyubzzz/vg8ayv8EGG8Rjp512WgxPOeI5r7zyysCxNC0Epu5x/JVXXgm/+93vYvldc801wwILLBDLIExYYePcc88ddj//Y4011ghLLrlkmHXWWQNljfvdeuutgcl1ygZpxuj0/+ydCdgtRXH+x7+JS/QB44qoeBEia1BBFNAoiIIgF1AERHABEcGIe6LgHhU31CCIgODCIotKUFBEFkFAEJSgKIsREVcEBfExmsQk/u+vue+X9/btPmemzzl3rXqe75s5Mz093dXd1TVVb1ePok022ST1GY5st/PnP/855fOHP/whld2fnTZfPO/8vBXAVeI14+3FL35xegXbfNx4443dtttu26299trdAx/4wO6OO+5IMo1IbZIZJEYu7bnnnqm/wMdStJNtttmmQ67deuutafsQzrkG0cdOPvnkJBvThYX/4DX9kK0qaSPGZx/qI4cmlXXwhPHJ2LnnPe+Z5oNbbrmlO++88xKPKOfyKOsYx89+9rNTX+ebnrb59a9/neQi277Q72dBrQAu5jCicq2zzjpJHvzqV79KY5t2qNGqq67abb311t28efOSPEFuIUMuv/zyVNfac6OuE2nhCU94QpIn5Md2JMyfzHP0YebKCxdEyMiJ55BPpEO3QJ7Qj84888xiFDI9v/HGG3dPfepTUzRA5NEf//jHtH3V+eef333/+99XsrnjUCcrshGeoq+gIzhNo4/Map7xcubnyIVddtklXSYC19C+AzgBuUmkKLYBZX6kvZhTvvSlLy2iuwCAYG6BvvCFL6QIl+mH/SMaHUAACJ3la1/7mt3tusc//vHpXegAEPoi8vWqq65qGoeM5/nz56e58z73uU8a28hxdKpcpi9SkMIP9FPmVOrPvMxYgr/oVeiW6KvMs+gtyEj4xpxNH6d/Mz6YY5xKfa51TuI59Ezo6quvTuObc+kTyDG2yKIvU+6NNtoo8YMoKcwzjGHu0Y6PfvSjk+5w++23J17R1qWIdEP6B2Vp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/evukksuWSyNX7jf/e7XbbnllunS9ddf3/EXtPJy4AlPeELqt7fffnv3la98JTHiAQ94QPd3f/d36fzyyy9P/a+FQ3/xF3/Rbb/99qlvXnXVVd1PfvKTlmzimRlw4KlPfWr313/916lNaJsVjR75yEd2T3rSk1K1Tj755O7Pf/7zilbFqE9wYBEO7LTTTh36wFD6z//8z+7ss89OesjWW2+dHr/gggt6y/1pzRdDy90nPfx41rOe1TEXoUNdc801fR6LNMsIB6bZfswHD3rQg5JeftFFF6Uarrvuut3GG2+czj/zmc/0rnWtzz/qUY/qNtpoo5TPWWed1f33f/93GpNLuw+W6t67sks5IX1g9913T3rktdde21199dVLuUTx+uDA0uPANGXi0qtF+5sf+9jHdptsskmHDP7lL3/ZnXDCCe2ZLYUnl9f222GHHZIe9c1vfjPxfRqsm0We0yhXngd9bosttkh97r73vW+a13/3u98lHZl5vmSby/OI34ty4GEPe1i31VZbpe8OxsShhx66aIIBv7Chtny7DHhFJA0OBAeCA8GBpcCBAHD1ZHoAuHoyKpIFB4IDwYHgQHAgOLDScuBv//Zvuxe/+MXd3e9+9yoPAA/gED3zzDMXS/Pud7+7u8997rPY9dKF2267rTvuuOMWcaxiTHrXu96VkqPkvuUtbyk9OncNIweALwhnJvkFrbwcePOb39w98IEP7P7whz90Bx98cGIE4K1ddtklnX/+85/vLr744iYGARB629velp4977zzOgydKxKtttpqCawJ7wBZLk/0/ve/v7vHPe7R/fznP+8+8IEPLE9F71XW5z3ved1mm22W0r7uda/r/ud//qfXc5EoOLC8cuCf//mfm4v+6le/OoF2JfcBs1xxxRW98pvWfNHrZQMT/eVf/uWcfPvBD37QHXnkkQNziORLkwPTbL/3vOc93b3vfe/uj3/8Y3fQQQelar3gBS9IYAB+MAb6Uq3P8y2Asxd605ve1P37v/97N6oOS0qHKNW9b11L6ZZUuXm38+/73/9+9/GPf7xUpLgWHOjFgVVXXTUBMfguv+mmm3o9sywl8vGwss1pO+64Y/e0pz1trjn62DzmEi8jJ8tr+2kOYcwcdthhU+HmLPKcSsEWZsKCxwMOOGDkIkuS/uhHP+qOOOKItOBymu9fUfMCOP+yl71skQUnffSvmt7h+tiQb5cVlb9Rr+BAcCA4sKJwIABcPVsyAFw9GRXJggPBgeBAcCA4EBxYKTmw2267pVV5XnmiWfz2t7/t7nWve3XoUkTGEl155ZXdSSedpJ/pOATAxQMAEd761rcmxxC/A8AFF4JaORAArlbOdQkYgDH+zjvvnAOqtee2ZJ8MANeS5Xe8LTgwaw4EgGtxDi+vztLFa7JyXplm+8lZvCwBuABPLwkdolT3SXrUkio3ZfQ+EACuSVotnoUDr33ta7s11lgjRWV9zWtes9wxxcfDygbgeuc735nsKjTaf/zHf3Q//elPu49+9KPLVRsur+33nOc8p3vKU56Sxs0b3vCG7r/+678m5vss8py4UJbB29/+9g4QlwhANgu2AIITad/te9MEtul9K+rxJS95ScfiV4gopfAUu+Y4qukdAeAax7m4HxwIDgQHlk8OBICrZ7sFgKsnoyJZcCA4EBwIDgQHggMrHQfYeu75z3/+XL0J5c8KPAw8Igx1u+66a0da0ac//enuX//1X/WzcwAXRjEntv1hK7B11lknGc4IMw65oSgAXM6xOB/KgRKAi3D0z3jGM1JWF154Yfezn/1saLYp/YoegatmTGxi1hJ+KABcS5jh8brgwIw5gO0GnSMnonKiO7Ads6J15mnYQrfVCTKt+SIv0zR+U2+i8REhle2iv/Wtb00j28hjCXFgmu2HTkNfZbsjtgyFWiNw1fp8KQLXqDosKR2iVPdJmnBJlZsyOuAhAFyTtFo8CweWdwDXKHmyorfwhz/84aTLsH1dH8DHssiP5bX9iBSP/kj5v/KVr6S/Sfk7izwnLZOe32677bptt902/QRgBFCQiNVO2PfYnlh08sknd2wxGTSaA0Rmxz5EFMR//Md/7P70pz+NfmDh3Zre0frt0uulkSg4EBwIDgQHlhoHAsDVk/UB4OrJqEgWHAgOBAeCA8GB4MBKx4H3vve9KcoWFf/2t7/dnXDCCVUeAPQSiAvnEatIRQ7gGhVC/G/+5m+6v//7v0+PsfIRowcUAK7EhvjXyIESgKsxq8UeCwDXYixZZi4EgGuZaYooSHBgphyQ05PonWwnWqNwgtQ4E9dXVA60Arhq/CgBuGppuV5zSI56Zlm4tyTLHQCuZaHFV5wyLO8ArhWnJYbXRFFGf/KTn3Qf+tCHhmcQT0zEgX/4h3/oHvawh3XTBNDNIs+JKrnwYWxsq6++evqFve+WW24pZutz/ne/+93uE5/4RDFdXPw/DvzTP/1Tt8oqqyTgFu3fl2p6R3y79OVgpAsOBAeCA8sXBwLA1bO9AsDVk1GRLDgQHAgOBAeCA8GBlYoD22yzTbf99tunOrNyjMhZRLeoEWHWDz300BRunRVnGCwIGw71BXCR9oMf/GCKJMH561//+pTH0gZwPeIRj0jRmqjX5z//+Y6oYRhTNtpoo8ST73znO93Xv/71ZPDj3jOf+czu0Y9+dHf/+9+/I+rHv/3bv3Vf+tKXqvybN29e2qaSLS8IWf+rX/2q+973vpdWObKFgtOsy/K0pz0thX1/8IMfnOqJERND8mc/+9m0nYOXZbXVVpvrI1/84hdTeiKBPOhBD+p++MMfplWspL/mmms6ttYsEemp8+9///vutNNOKyXpdY3+9+QnP7lbd9110/vvuOOOjnYBeEg/euADH5hC2B988MEpP4yWbJUAsdKWLUGdaN/NNtssbS1A3txnZeq//Mu/LBKBbhyAa9NNN50Lo3/rrbd2Z511lr9m0LnaHpDCKaecksq21VZbdWuuuWbi4W233ZYisHz1q1+t5tu3r2255Zbdox71qFR2ViMz9umTGHjZnol3Qqeeeuoi/CBqx7Oe9ax07xe/+MViK5gf+9jHdhtvvHHK7zOf+cwiW1RMq++xOpj+OArA10QJmwAAQABJREFUhYFeK4/h54knnpi2bk0FH/GPKDdE+njMYx6TjLPwhpXLRCdkjOcGcPoOxm/osssu62688cb03rXXXjv1Sfrpj3/84xQtxSMbpgcW/mMbBvj28Ic/vGP72muvvba74oorOmQ0fRQCtEI9RtEDHvCARaLOIddZWb3hhht2rBJH7jBOKWdOL3rRi5JcZjwR5WfPPffs6Eu//vWvu4985CNzyRn7tD/8lfGafnnJJZeksTiXMDshPfMNR+QBAF6AwF/4whe6H/3oR1nqu36uuuqq3dZbb53KwRYgyCrKdvnll6dylR4iHSvKH/rQh6Y6I18Zl0Qtqq0q7ysLSu/za2ylwvtrcoD55PGPf3ya8xgbmj/Jg3nl2c9+dgfIGfsF4xHeI2eRKcxNOQ3tq/48snGDDTZIcxh9G97Q7x73uMclhw9zAo6cnOgTW2yxRdq+adxclj87ye9WABcyffPNN08RQFVe6nneeectUpxpzReLZDrix/rrr58A8byXfk1EU8Ym/RZ5wHxJ5EgIGcNW19DVV1+dxsALX/jC1GcY4zXgPfJ9ywVyHvrGN76Rnks/Fvwjz6c//empvzGmyQc9hnFSG48tfVTv05E5gD4EnXPOOYtFg+A6/Z8xDCFPL7roonTOP4AwO++8c8oD/QtCjlx33XVJPqcL9g/5R/RXxs8nP/lJu3PXKTJzp512Sj/QE5jTRlEL39kiLG8/fwdzBTKVstzznvfsMPQyz9BHmTucmJtIRznRSaEcwIU8Yw5mrqZdkfsXXHDBIu3Pc7U+787cN73pTWn+L/VB+lZNh0DuTtLOlC+nUt1bdKZR5f7yl7+8yGuH6CyLPJj9yAFc6FXIJca6viNoa2R9/k2grJAZyG1kBNtfoZfQT84888xFxhE6MjIaYl6m/zmN6sPIgvnz56fk9D/mgRKtt956qfzca9X/h/AWfRRdGKqNU8YBfGbeUpTCUd8w0iNTpiP+9ZV7k8i2vu9Q2/L9ea973SuVmvoyztEpXEccoj+5HstcQV9E90RfQR6jd1188cVzkYzpX+is9EX6IemJCJh/Z9XYWpInnnZaOtkuu+yS+gTzww033JDqhI5DP0c35xrjp6RfUZ6h8yQRj+AJegfz2w477JBkMXId/qEfSqdnnDOfM8bguWjoHEd9+GPe4Duec759aDd0A8a/vlGm1ba19nviE5+Y9ErsImeccUaHnKC+yGn0VSJhMzY9grvqzZE+Lb2Ec+Z/ysxzXOcaz+ZRpDyPcefwh+8dCJtWHp27pQ6zyHNcPfrcf9/73pd0Cr4nAH3WiO8ygZD47ihFuR0irzUvLws2tVqd8+t967fJJpskvZkjY5U6MpcgB7FL1Gic3oHMQ15ByPK+3y7+viEy35+L8+BAcCA4EByYHQcCwNWTtyiuQcGB4EBwIDgQHAgOBAeCA4tywFfm9Q0lj1MIpw9GYkAkMhYPAXBhMMNYDQmUsLQBXG44AcBAPQFuOGGkOfzww5MhFOBCThhbqFtuCMYp/9SnPjVPnn4DYgAc4QbEWZUF5/WBBx6YjMulwtCWOJUAjogw0MvwSx/BKCy+YLCXgw5nM1GwcgKQArgKuvPOOztCzrcQRlv6qxy2ngeAF5wX9CEMaAJwOR8B5WE8hzAi45Qs5cV9QBXHHnvsnLNzFICLdqV9Idr9pJNOmnMcpYsD/3mZ4TcAHgzlOeFgd1CN7g/pawA2cTTkRJ/EqYFjEQLQ5g50DIyUE6LP5NFwDjrooOQ4hh/cw3A87b4HAOOYY46pArgwHhMJkLaG6NMYRMcR/YxVtfe4xz2qSXGEu5HWHbM4FgALUN+cAG8hJ+mjTvvss08Civo1zuEfzlm1kWRlns5/02YveclL0iWcqgC3NF49Hf3nyCOPXARApKgAgCJxEuJwgig34wXCaQewopQn92+++ebuYx/72GIOaByvO+64Y/U5AFkAFp2QPThk1YZ+D9587nOf6y699FK/PLZ8OLKOOuqo1Cd5cKgsWORlhR8CFNbkoUexpJ/h5IJwMtO+9KUSITsBMLlztKWvkjd98zWveU1yYObvom8y/nEyluT1EPmS5z3p7xYAF05n+nKJcOgeffTRc7dc9k4yX8xlOOIE5yEOv5zo18yrgBU4p50glzH0YcbuIYccMidn6NPUNSdFaeH68ccf31111VUpCc7rV73qVWnOzJ/hN3KMbbKdWvqoP69z364HwDBzbU7ICpxpkJcFuU4EV/p+iRh38ML1KXjIFt5QKTosDuaXvexl6X4fPbiF78hioi5Aar/0Y8G/Wl/gPn0AEADlEr3nPe9J4B1A1sy1kAO4AOEBAi0RTka2RxLV+jw6H/IXEoCr1AdH6RCAEbUt09B2VvnyY6nuXoe+OtOocisqcIvOkpfXfzv/+FZgPJXmNoz8OM/Ra50AVLNYoET0E0DZWiAB6GavvfZKSekPbJslYixIrnCNBTU//elPdTs5kKXfoWOha5UI4N4rX/nKdKs239X0/xbe8u0BOAZCl/PvlHRxwT/NEQBiFNlo1DeM9Eg9XzoOkXutsm3IO1w25uVlm2E5iYbqT94/b7rpprSYgGs5AcpBx0Vu5kSfRccFkDyO/H0uE6etk6lPMCewaKmk28Ozww47bLFFAS3zpKLyAA6DD5p74Af8kV7t/OH9tB3UMsdJXiMHsMto4Qr5Ie+Z9zX/TKtta+338pe/PC1u49sQ8GjN9sFimHPPPZcizhEL3F7xilcU24hvC3jD97DrBHMPDzyRrp7rgWTTWodZ5DmwWoslV3/kxnHHHZfAtoslWniBBSaMDwDfPie0yGufl5e2Ta1WX10fWj90Zy1wUx46lnRM3RundzjPhny7KP+hMl/PxTE4EBwIDgQHZssB6eZ8L6HnYkdFn+GPc/3uW4q7LUDG/7lv4uUpXQC4lqfWirIGB4IDwYHgQHAgOLCkOOCgK7ZDJIpBK3leowwYy+oWim44EQ9wZuMwV6QqXeeIoRTnO8ZYgEMiosl87Wtf088UxUZOF54hMguONyIjsIIe4jrAMEW9mFVZ3v72tyfHPO8E8ISBDoMyThbpy5QFIyQRWSB3fqQLC/+RjpXDGPHlTC31IXcsYqzFaNtC5O1lhPeUgUgUDibpA+Dad999E7CFclB/nD08h3FYoC6MzzhHATPUAFyAUhS5g7LgIMewPAmV2l4RNKg/qytFRGrwKDLu4KM84/oaQCxW8dO/4SFAKyIp4XgA7PbSl740vcqdK1wQQEvlyB2AOM74IOX9OLuhWfQ9AAYymOMQlYMCJwAGVjlHWb0tx6bKXDtqGwzuA1xiTDLGAa36OPetKNyRoXzhP+ArgKpEhlMfxXmCo0gE2EpAOa7h8OG9tInKr7RDAVx6DkAi0VoA5TjwFKCWR6QRgEvP6chYwwmAcR+wmYhV2uSLkwt5RptDeR19ZTr3MV7gTGNc8Zzo4x//ePf9738//ST62d57761bSQ5TDnjpdXDABeODcsJr+M98hoyj3dZaa6258gH6IkoBNFQWzBWocqL+WHNo1wBcOOzVv+gDyCTaHye5HH6MTeZZUUtf5Vl36PCb9zH2kS3qp1zPAVxD5Qt5TJPkiC2BRv09JRmKnGc8wmPmDJGDU/05B3BNu4/I2aoyoA8w5pl7NIa4Rx8W0MJljOSxgwVKTkj6D4By2hQZICA1kfiYT/UuooAw3zN+fD7Nx3FLH1Ud/Ug/e8c73pEuMb8KMONpfL6QrM3LzRhjfKN/ED1CjnnamjmKPg1NG8DVwvdS+1E2tiRHJkD0a9qBeRP5j14mAoADEAcqgZhcz9IzjF9kYC4zkX0Cvtb6vPfRUQCuUToEwIGWdlb5S8dS3b0OemaczjSq3AAAIe+DffVlvb909D6g+2pzxiogHsnfHHTl7YtcYN6lben3yA09RySh888/P80dGvsO9OO9RIlUZFp+E8Xt9NNP5zQR7c2czvgZFbGFxIzNFv2/hbfTAHDdVcO7/sNHvmFyoKqn4XyI3GuVbUPeAThPkei0EArABcQciTxv0Z9K/ZN5A3mE7gjIISccUowNdDn1QSKGHnHEEXnSxX77+zSnkWja8630BhWAdqdOzH+um6MHvfWtb1WyFL21ZZ7M9StlyHiinq73Mv/xvYXc/9SnPrXYO/vOcS6vqZ/agnMiDxOhTd9HKs+kbVtrP4Gf9B6O1ANbCvyWvOC62wzQzfjtZUfnJz1zv9M0AFySqchgdGnpC7yntQ6zyNPr3XK+//77zy1ioD/QB1mQhc7I7z7UIq9L8/LSsqmNq+PQ+hFVj+925knkCHxEptCHiHhWo3F6R4lnfb5deF+LzK+VM64HB4IDwYHgwHQ5EACunvyUs6dn8kgWHAgOBAeCA8GB4EBwYKXggIAWVHYU6KoPM0YBuHCs4cTnDwCXgAlEJWBFIITxDiM25KtR04XCP7bV0jYfnk8haa9LueGErYtYaQxRNoyycnhi8IN3gEYgj3oDAAEgAoQzlKhUGCQxlgLc8FWNbGNCpC/IV4zPoixsCbDHHnukd8Ff2su3aZHhkQQCbHCeA7gwcrMqXxEuHJDgwAieheRww8CFU9XfeVeK8f+J4oDTFMIACGBIYEOcXjhoBXLoA+DCkI3xmXZ84xvfmBwQKoUbwonwwwriEoDL+x91+8QnPjFyZavyH3fM255IWEQowUkCYQAkDeSgpda+Rj7ihwM26LPwmT7vPCU91zWG+e0OQLaCYgU1BLgMkNms+h7vEGBGvJg3b16KCqGxChANMEYfAhjEOIcAJzFG3MDtkQ8cOOSODJ6Fj0RHUx/1CC8OpMDZh+EYXvMewFTasg6ZCWDLAU4tAK4chMEWTPvttx/FTO9E5qqcDuBibBBNDkeJeOAyPgeq4phhfKtf+Epvj1ijPpEKsOAfhnC2RYHc8efPOOCAdPQntmWFbw4AYVtb/qActOfOIe/P6vt9ZUHKfMQ/9cchAC54p+iFOUiLfkzUQvoKxApuDPqtfdVlKbKY/ieZDPCRCI30Z8jlwSTyJWU2hX9yxNJWjIUa5TI0j+7m/YR5DKAD5M85gGuafQSwBZE2NOYZc0SWgHBSUi+BiBl3owBc3gd8HKTMFvzztnawpjsn/TrPMZ8C9BIwgPkbcEBLH1U5Skcc5aonehFySoTtDkcu5OMIuYX8gohOIKANv5E7AE+UJ9GfkF/QtAFcLXz3OcLBCh4hzUFalNt1L39GOpUDc1x/41kAy8hAkc9dyA/0HvpXrc+7HjQKwKX8NUZcZnCvpZ2VZ+lYqrvXgWf66kykrZW7VWchzxp5HyAN44rvCNoDQv7SV5EN6Hvazsr1BGQf44XvBRELRADXQjiQkS+KmomDGSIqLfMelAPwKQd8FUnOSqfS9dKxRf9v5e20AFz5N0ypXrrWIveG9vmWd1A+yQ6fJ1TuFv0p75+0P/OTvj3QFQByiYiYytwKIbMBa6KvuMxW2tLR3+fyTWNyWjqZ+jNlYKwhz9DDIeZcyq35DiCjtqVtmSfJ0wFctA0LuvheYI4WSddGVhGxVtQ6x7m8Ji8AoAATaQvIec3vabSt5+nt53yj/izc8m1pXf7498ABBxyQIrtRPqKQIud4Hnryk5+cvn2RjdA0AFzoCgLsebuTf2sdZpEn5ZmEkC/+baa84C3gQfRPImSiC2pcKA3HVnmdz8tL06bm9cnPW+tHPhrr/k2Z51/6LRmX60s5z/p+u/COFplfKltcCw4EB4IDwYHpcyAAXD15GgCunoyKZMGB4EBwIDgQHAgOrDQccOObOwtaGeDO/T55YCjCkCrnxbIE4MqNKtTHjdcO3lBdBYYDDCHnI1v9aCsbVsF+61vfUvK5o4wuGNNwqsEPN+JMqyyUSTqxIlrMFWLhibehnHbuRKTNMATKoM9jOPa19UO+gpmoRYquQfQT3ttCXnaM8XJ4Ky9feeiGNOejO+Rl0MegTj29PjgotJ0SW+XhCM4BXLTRs571rPR62g3AXm2bGZWx79HLXAIyAuwBJAJ532jta+RTMyZ6uH/6JkAPopQJPEHdMai7AxCQIAZRCMcIBmJvv2n2Pd4hwAwOCdoY8JjAWzhOABr1JcBnrFaGAO/JOaXnfTsgBwi5LIUnOAX0oa5nfWwJLOvRt9y4rWeIeMBzcloMBXDlMlb5urPfwXdyKpEOAJoiAvJ7k002Sdt0ce6gF36LFkTzTsAqfvMsebhzOQcnkY62ov8BwGBc0ed8W9IaONdXlRO5gEgaDogtyWi2/yPiHM5tRYgYKgso8yhSf6w5Md3hjfEfsKwDgB3Iq/cA8iXiBgSYkzmmta9qLNJPmbMcUEz+m2++ebf77rtzOjX5kjKbwj+11RAAVz4nUQzAvlol7zLUZe8k88WoqvqYL/VRB2vQRqMAXLwH4B8OOog+DQhS5BHaJHfJX1GRSvMLzzrwi3HF+GrpoypH6Uh/1hwKaBUAtMjBRkSKIEoaMpaxlYNb9AxHInVIx5As4fq0AVzkOZTvPke4s5u2EDhTbUT+IuZ1dGPalT4JlUBMLtN9EYHy4ejvQtbjJK/1eQcESBes1YG8azrE0HYmr1FUqrvXodSnazoT76mVW3KSNKV24brP6eIR12vk/GNsozcLYKFn/HtAY99lBtujORhCz6Gzaks7tndGd/Vx5CBoAfApA+PJ5SnzI+AFqLTFmd6nY4v+38rbaQC4St8wqkvp2CL3hvb5lndQ1hqAq1V/yvsnMg5dSeQypqSnMAYADPq8pWdLR3+fy0TN832/z0p5+zXlx7Vcr+Wa81/fMq3zJPkJ1MF5Sa/nunRtB3DBj9Y5zuU10byk3/AuyHlN+0yjbT1Pbz8HP5X0d9cxBcTyvJi7KZ9/l1MHl3F6juuTEDIYGeZ2G/JrqYPKMYs8lXfrke92IttJ1yjlQ7/AjgGYTYt6SNcqr31edj1b716SNjW9s3RsrR95aay73an0jvxaTe9wng35dmmV+Xm54ndwIDgQHAgOzIYDsgvz3YfNk+8vbKD8ca7ffd8eWyj25VSkCw4EB4IDwYHgQHAgOLACcECGzSUN4CK6DVsGYtQRLUsArm9+85sd2784sSXbmmuumS5hZGULEyeieLCKVyvfuSfDEKvia1uRsE3dBhtskLJS1Bo34kyrLGrrkiFN9QD8AjAAUlkcwFUzmrpjkHNAO5Ab/BXNKt0Y+K9P2QWccEOa89Ed8u54w1gMsI5ITYDMSuQALgAXivJBWvGp9FzLNS+znNd5PqW6tvY18q4ZEz1SjSJ6aPsd+vSNN96YAIruAFT0AW+HPu3X2vecF2xJygcwVOur6eaAf3xYP/ShD03RMbbffvs5EGQNwFUDKsrZxqs5h38aNxjOiXoDH3MC7DVv3rx0eSiAC6AjvM/Jt7F1x4ucSiUZsdtuu3VbbLFFygqwhSKFed5EM2BsQcrDnytF6CMt2wQSaYxncCC4w1pAA9I5+dZj3/72t7sTTjhhEfARaQEnAVADhJI7g5TXUFmg52pH9cchAC4HnpAv8pP+BYBQBp/a+/x6n74qoLGPT8+Dczn41YZcm0S+8Pw0SHLE5U0pX5ehV1xxRfeZz3xmsWSar50P/twk88ViL7MLcnJzCXCzR+VQMgFn3RHuDk4fs+64IYoCAD+I9PRF5KE7gth+a6+99kppiC7JvJyTA9zY9ghH27T6qN4FqAYnM+VzsBX3eZ8iveDIZSwhI175ylemx0fJdvKk/M67WQC4hvK91n7ulGZOYFsj5n3auEYlEJPrWvAAJ35O2223XQcIBlL/rvV5BwQInFSrA/nVdIih7Uxeo6hUd6/DEJ2J99TKLVnjMjAvV0lnydP4b+efR7n1NA66lJ4gmUGfRmaU5rItt9yy23nnnVNWV111VdrO28FViljnAHzmF0DXEDKf+dIBxmr3lGDEP+kxJOmj/7fydhoArlGyo1TFFrk3tM+3vIOySqd0Wcf1Vv3J+2cOaCFfIqUSMRUCIAhQ0AkdVtu+apGC38/P/X0+p01bJ1N/Y67VgqK8LEojfaB1niRfgTpoF9qIY07StR3ANckc5/KaSL5EU3JyXk+rbT1Pbz8HP0mueFk8SpXkktfdeeLPsV2sohIOHceej5/73IGOK+BSSx2U77TzBIiLDSInANjMd0OICKsA9AH7kqciJnse6CHojrKHaGwMnQudD9OyY83iO6S1fvBMY11yw/k46rymdzjPhny7tMr8UWWMe8GB4EBwIDgwPQ7InhcArjE8VbSBMcnidnAgOBAcCA4EB4IDwYGVigNyhlDpPgbXUcxxoyvG3ZwwCuFUIrQ/DsWcfJV8aRV9nt6NyXLg52mG/HbDiVaw+/M4DzEyQjgEc6OsHMIO4JIjnGfy9FyDBDjhnEgTGOSmXRYHVsB/tuopERExFOlFWxs4gKu2It+3QfOIPoomQNtj3Oc4lNwJpag+pTxKwCHnoxyWPEtUIBxVznuuszqfleU4tjCeiRzApWs61qJd6P7Qo5eZLTxZwZ0TESFw+rjRsLWvkXfNmMg3FAZTCMfy0UcfnaLEYQRmpTptra0teT9RsDjCV628nnXfE2AmFdL+1QA0lqR6ioGbLTJZrVwycPNgDcDl2wD6CzxCmoBY4nsOYPDn2BqJ/grpOb+fn3s0gZoBGKCpto0DTKuta+VUwjGgc+XvzmpFY9M9P0oOMpYY8/4cW7rgeBlHvsVKTW6Sh8avZBptxVZRyIyccD4AcGFukpOGNENlQZ5v/lv9sdb/3EGO8R9HPgSoBqdhTmyTRv0Yax5dSemG9FV3FJeiNChP+gOAanfYTCJflO+kRzlahgC4SnM55VA7uQx12TvJfDGqnpLdo+ogUDd9X1F4as5S+jxjjrHgDmoHdJxzzjnd2WefnYolAK7KWBtfGltEXWS8Q619VO/Kj+7wB1jI3OtAfpdNW221VbfTTjulLKQn5fnx2/NU5KRZALiG8r3WfkSsAVTAfSfahTkWMA5jX9uckkZ6e20LxZJ+ynM+N2j+qvV5BwQIyFOrA3lrLnOZwXXI22RcO9/1RP1/qe5ehyE6E28plXsSnaVe8kWj4NR0WV8oovleoEQfi/l76Ee0E4QeRr0gPavvEqJQAj5E/hApBh0dkt4u8GSfb7D04IJ/Q/T/SXg7DQBX7RtGdSkdW+Te0D7f8o4agKtVf/LxXeqfT3va01JUN3ikBR3OL69zH3uCv88BQNPWyaQ31ECT1EH2C825k8yTAnX4fOx84lz6tYOVJpnjXF7zLZzbWJzX02pbz9Pbz8FPpW8F10NVfwdE1yIns0CB+QOaFoCLPJGVzOduR2qpQyrYgn/TzlPfVMpfx1E6vNKMOxIlHRDvRhttNAea5xnNF5PIa5+XS3r4krSp1fgwSf3IU2PdvyNq7/LrJb2D++N4RprSt0urzCe/oOBAcCA4EByYPQcCwNWTxwHg6smoSBYcCA4EB4IDwYHgwErFAUV6oNI4RnAYjSMc8muttVZKdvzxx8855GUA5UYf423pPTK0jnJu6jmPOFAz+Cltn6MbTojY4QAenndjU6l+MrLJ8IUDlPoMIbZ7oy7TLgtRtWg3SKvzS+Xy955//vndmWee2TmAq2SEIx/f6k3RPohaRP+CSgbjdKPHP6KT4dCGiM5zzDHHFJ+SAcsNaV4fd8iTAVGIMNIDRpKz2jMGgAF4CXBNDuACiMYzeg5AHCCLaZCXudQPeYdAAKrrJH2N/GrGRO5pXKtfC8iBw4+tfCgLJIDJPvvsk36zrSTgtln3PRkz00sX/EN2YIyHiKpGu/clQKQ4QUvbTABIok8oMowc4OTtjowaoK8E4JK8E29L5XRHkhy6pXS65k762nglrd7tTi05lUrjlUg4bNUmB5felx/lYJcMh584lyFF08mfyX+rz+XXa78dNAc4DSc1YCgi8ZQIuYZ8Ew2RBXqmdlR/rAG49t57744tXyEHcPH7yU9+crfNNtt0q6yyCj8XI3eStfTVNdZYYy4SZK2f8lLxX2CMSeXLYhVpvKA+q75Vy6aPDFU7SYaSlz83yXxRKxfXJT9r/YM0isrkY81ljPcD0rtuwhgGgKn5kDxwojKPQQKHpR89/uXg0iF9dFz2HkVPWzU6GMTll0fyGxX10h2vfQFcj3vc47oXvehFqbilbS1r9RjC91Hth37BtqXIIc1d/k76+2GHHZYAblyXjB0K4PLt8TR/1fq8AwImBXANaWevd+m8VHevQ1+dSXmXdJ9JdBblWzp6H6jJ3xKAS3JP8nhc3g7gkizhGYCCgPvQzbVVnGQ9v5GJAoM6mKH0Pr82RP+fhLd9AFzSYXyLvz7fMF6f0vlQudfS54e+owbgUpuW6lG6Jv1pXP90ANcpp5yy2Bbj0wJwUcZp6mQaPyW9VvzQtneacyeZJwXqyOdOvYuj+qkATFybZI4ryWvyFM2ibT1P10l8Di7ZSkoALv/OqcnwWQC44M9+++3Xrb/++imyoSJ8tdRBvJ52nrItef6c9wFwIZu1oIWIWqXojcqXb0e+32XXYN5nrmi1HY2bl11/KvUT1Vvfx7P4DplkPoJvGuv+HSF+jjqW9A7Sj+MZaUrfLq0yn/yCggPBgeBAcGD2HAgAV08eB4CrJ6MiWXAgOBAcCA4EB4IDKxUH3JmsiDmjGIBDHKeYDDw4BLQFkBsQSsaYUfnqnpyb/K5tA6O0clDyW8An3Ws5jjOcDDU2UQZtVwWPPvKRj4wtFtsyAg6adlk8kpKi1ZQKo9X53AOcB9irr/PD24MVwPPnz5+LHCQwT+md464BGgH4AeGYluE7f06h9d2Q5nzMHfJ6HsAHq09x4hJhjRWZIhmlHcAFkAeHwBOf+MTuKU95SkqKIxVjZ0uEMb1LRy9zzZCdA7h4trWv8WzNmMg9dwzgRMbBCGFc/dnPfjYH9sABiEGZ/gIfcC5Bs+57MmbieGE7MMohgzPX4BXX+pA7bTB0sw0J22vedNNNCQDhoEQ5wMnXHRk1x2wJwCW+j1qp71sjDAVw1bZI82iH7gTQ2Co5utyxXFpVL/5KhgvIyVwwb+EWkAJUKG3t6LKEMjHmRhEgNMZ9TmzLSDQHnDO0neYt0uGwkzFFz/WRBUpbO6o/1gA69E2cBhAyy6OBKU9kEAA0HCqPfOQjF4nOo61oW/qqO87ktNU7/SiHpwMGJpEvnvck5yrX0gBwqdyT9hHJ7lHO3RJY0mWM5iWVif6NExJCZjFv8B76uwMZuL/LLrsk/YJzQLc5UJ3rTvRjtlHMqU8fzZ/Jf1M+5hFAS+KHImkiu9Ev5XD0iKujInAhmwBlQ4pENS4Cl0crGwLgGsL3Ue3nfAG4sMkmm3SArXyrZtdrSiAmX9DAvAKIJycAIs997nPT5dNPPz21v+sbriP5vD8pgGtIO+dlzn+X6u51GKIzkbfmYJd1k+gseXn9t/eBmp7g86zme80poyJw+daIbG/MNseQ6+/wBqAg443IrkQr0zyCTGUbYtod4nsFPaAv+Zw9Sv+fhLfjAFw+v7nccx44KLRv3TxdX7k3SZ/v+44agMvbYoj+NK5/LkkAl3g+6XxLPtIbbr311rmIc8pfR8kV6RaTzJMCdWhO0zv8KF3bAVyTzHGMW/o5JHnt75tF23qerpO0gJ88AlctiiJzI99R0LQicJEX234CPoQUJbilDimDhf+mmSf6DOMgJ4BNbLc+ith+kXELKar6qPT+vXbiiSd29E9F4R5qOxo3Ly9Jm1qtzpPMR+Spse76We1dfr2kd3B/HM9II33A39kq88kvKDgQHAgOBAdmzwHZHLGr8B3GdwLAdP441+++JbnbgvCZi2/Q3ffpZTgdE3NQcCA4EBwIDgQHggPBgeDAohzwyAM4zHAcYhSqkW+xhyKKE1w0DQDX2972thTtiDzHOdJkACHtOLAXacbROMNJi7FJW1HBW5wxJYAPTnr+IJwLKPazKIuM2DVgAe93IxBlZwujvs4PLzNRxAA4sfoTB6xWtfKOFlLZPeKE54MhGaMWHz9u1PIyyTmJYVXAKyJI5c5pnKc4QyHl5QAuRSbjvraI5Ly2XR33hpCXeYgzsrWvUTaNJXdiqszrrrtut//++6efALbgn5wcXBTAiGvIDqIHAUSkPURqv1n0PRkzPeoE5aXckEeYUnlqR203xHjFMJsbx32Lk2kAuLRdEeUpbXui63Lky6FbKz/XkSW0CVQDPHofv/TSS7vPfvazKb2cSiUA1/Oe97y01QYJTzrppO7KK69Mz/g/wEaAJSD6CuCMPfbYI8kCrtWAF+q7cnjJqcwzbNvJ9p05AewkWhVEWXAubLfddmn+oC+wFa0TxhJ4rOhqbAGEk3eoLPA8S+fqj6pLnsbnSQG4aI911lkngaEBaOXkQOvrr7++O+qoo+a2xhraVwXEKo113ouzCBAM5GnURkPnspTRlP5Jjrj8KWXdR4aqnSTjycefm2S+KJVJ13CuEpEOPhKhUgB43eeoyAOk0XiqOUv1nOpDv2OO2n777dMtgBwAOkQeGaY2ZzGPsjUuTkPGCEDQlj6qd446uqOUfq25xgEYPO/OW7ZCPfbYYxfLlnILEOZ6hwO42GKVNndSBA6ujdM7/TnO+/K91H7wl6grEGB5xrYT0R6RWRh3IS2YENjA9SEHcKnvel6cezQmwNgAk0t9nrQlQECpDqSFRukQ3O/bzqQdRaW6ex2G6Ey8p1ZuyZqhOsuosjv/hgC4PDoQ8iPvv7zTASdf/epXU3RUrtN3AFUzNqS/cZ16M0+6LsDvhz3sYYvod6TtQ94G4/T/Vt4y30uulUAefHOgb0AuP/p+w5TqOYnc69vnW99RA3C16k/j+ueSAHC1fJ+V2s2vqb/VFkp4BLnbbrstLUppnSd5r0AdNR2QNNK1HcA1yRxXkte8RzSLtvU8JwVwrbnmmnOLg2rgLI/OWUuj+g49qs307epjt7Qg0cGi3ob+3lnk6fn3OWdxmqJijwIwKi/XlfTtpfEzdC70OaE0Ly9Jm5rqVzq21o+81Mb+HVF6R36tpneM4xn5SOf0d7bK/Lxc8Ts4EBwIDgQHZsOBAHD15GsAuHoyKpIFB4IDwYHgQHAgOLDScUBGYCqOcomDNwcucA+w1wtf+MLkCOA3Tn+c/yJ3TJcMXko36ugRoDC24qwplcUdUaOMpKPeld8bZzhpMTZ5tJVzzz23+9KXvrTIawEVECkDQyjgLlaBcpxFWWRoogBHHnlkh8HViTD7APhw9DhP+zo/qAvOUz2v7cuICPLJT37SXzX4XOABHswd0lzzfuNGLeejnJpsXwYgAqpFKBKQRxEPHMDlq1jd4I6znbHz05/+NOXd+s/LXDJ6kq+iuHhdW/sa+dWMidyDFFXprl+Lbt3gIFDdBxiHE1E0y74nY6YDuDCuI4/ok1Bfp7zqWQKp0K9x/ms7wGkAuNzoWnJIOCCKegwFcAF0YezkMtSBshivb775ZrKfcyqVAFzezkSN0qrs9ODCfx5lTFERfQtUwJKA1pxKTtctt9yy23nnnVMyAcH8Gc59ux5tYfqOd7wjAbSQofCKdnRyAB5gMsozVBZ4fqVzABc1wN0WW2wxB9jgWQG42L4N/kI49gDeOeFgBCwKaRV8a1/lnbKNHHHEER2RuJwEFuCaA7gmkS+e/yTncrQsSQBXy3wxqo4CvJLGwZN6xoGSQwBcDuBh3kIGlhzWPpcBcgIUlI8TB+pffvnlHdtltfRR1WnU0edQ9A7pDYqEoWc9+ivjG/CbonMpDWBMtmKCPMLc85///A6HPESUIbaHEyHPkevId6jvXKHn+/K95Ox2cE3NuerjTpFVSiAmLwd6PDIePonoD8gQ3unt7vqGdCSeeXEhokupDsp/nA7Rt52VX+1YqrvXYYjOxDtq5W7VWWrl5rrzbwiAywG8Go/+HtqUeZ55AtK8ojS+MINrLj8BEcID9X/uow8ga4fQEP2/lbe+mCCPGA0PyPe+971vKva0AFyTyL2+fb71Hf7t7t/crfrTuP65JABc055v6QzSGzjP5xWu7bXXXiniKefadr11niQP9W//jua6UwnANckcV5LX/r5ZtK3nOSmAy/NCPrGIwOd3Fl6gmyoSVel7yes79PyZz3xmxx+6EHYQxiRRMCEfW8q3D4BrFnnq/X2PXk7qRjT0a6+9tvg4spO+iyyFBBhXf+baENvRuHl5SdrUKHuNWutHfnrWbTG19/j1mt4xjmfkIZuHv7NV5nuZ4jw4EBwIDgQHZseBAHD15K2MlD2TR7LgQHAgOBAcCA4EB4IDKw0H2K4BI4TADhjPcBKwqhBHMkZoVvFhWBWVnOrTAHChs+GElwEJBySAGSJIYMwjugxbYrFKXHTBBRekyFX6zdHLAqiI8o6jcYaTFmMTjnyMjjhHMJ4BegP4ARFd4cADD+wATkFEmWHFIzSLsjgQizbmXQJxUQaMdXKe+jYj/pxfTwXN/vn2L7oF2OiWW27Rz6a28SgBOCUBhOHAgTBc7bTTTnMOKDdqOR/lnGT7OABatAlbs8EHQBEQxmFW+SuyD/0fQ7sb8x3AxTO+UlfbxnEdmkU/JN8SgKu1r5GfnKL0UQyLtJc7fx0sQ3ofc+644x6EAZzVuiLvQ9PuezJmOoCL93rbUy/kSh5tTeXTUQAgfiMDGa+Ul9Xhe+65Z0fUJxERU9hmFHLnQ80x6+AmAbGQd8heOU/h61lnnZV4P2/evLQVpBwWvEfPcV4jj8BFGgwGRKvBKcv4PuCAAzryhjyCC7/lVCoBuLjv/GHMEDEH/iCvAVwpmlXuuHJQEM8dd9xxHSCTNdZYI9WRMQmdeuqp3WWXXZbOfeywjSVRv2hH+hsO7Q033DClI+obwAbIwTHIU5wV6sdsp4i8lYMXIBmyYqgsSC8a8c+d7fTJY445JvEIoBoRBNTWZCFHO9sl4kSE6KM4HAFPQczPOOeYhyFAwICBvS2G9FWXpbQdEb9whq233nrd1ltvnSLspRct+OcArknki5e173ysMvhRjljKzViokY/9GqBDcmMW80WtXFwnQiH8UD/AYQzYFSDRk570pBQRR8/T3/tG4OJ5jQM97zJK1zg6AB7gEMBjxiPENk4AuCgf70c+AQBt6aMpwx7/BJhWUuZlbWmkaxwd6IBcY65izoXQURl74iuAFiKIQg4+RTYdfvjhaY7jOuBvAV9IOxTA1ZfvPke4s9sBlWeeeWaKnkY5IGQ5dUK+OhhP87XLbwdw8SwAFsY2R6LqIfuQJZBHEfWxIh2JNMgc5m1IwLFaHUijMtFnSjoEafq2M2lrpPd43b0OtfFe0pl4h/LLy92qs9TKzXXnX01PcB1a8z3tRn9W3z777LO7c845J70KBz0gPyIXQaW52yPXkEZRZjiHXD7zW9trcj6EvOx6Ltf/ud7KW+Z+gMsQ7UVbA8ZkS2K+Afy7cFoArknlXp8+3/oO//YgIhkLUrTddIv+NK5/LgkAV8v3WeoQI/5JbyAJ+iB6OzYF+tD8+fPntpjjNyBXonBBLfMkzwnUkevB3BNJ186jN7XOcSV5rXdxnEXbep4+p3m/HAJ+IlIU8ziEXv+pT30qySrGB9/kmr+4nwO41MY13YFnRpH3O3QyvhcmBXDNIs9Rdajd8+8i0rBwgO8s2cWw/2BXg8eyvTmIt1Vej5uXl6RNrcYbrrfWj2c11v07guvjqKZ3jOMZ+Za+XbjeIvN5Lig4EBwIDgQHZs+BAHD15HEAuHoyKpIFB4IDwYHgQHAgOLBScgDnMpEf5CAYxQSc0kQ8wWDh5MaDktHO044633zzzbvdd999VJK5ewBNcBDk5EZzDP59oiKNM5y0GJsol0eH4jdGYoyMGD9FOE8BOWjF6azKkgNxMGZTHoH3KE8eXceNW+MAXDl4JAc0kX9L2/AcALPVV1+d00SUG1Kf5TfnbkhzPrpzMnd24hzleQyunh+Gsl/+8pcjAVw40Oj74iHbxxB9CGqpq5d5qDOypa9RTje489udo/zGqY8TUJQ75QDDAEiEatsszKrvyZiZA7goC0Ayga5oR9pjFAFgwaEjyvsY4xNAlfqIIkq5I6PmmC0BuHgPjkciQ4l4J+NS/Un9mvty6Cpt6ZiPQaXxfLjGb8A08E0kp1LJCUwaQET0FdWfawJw6Rr5ArYCdCUCMIb8lHOA69TRf7vDgPtE28CB5vnCf8aoiHch3+WIyFeQc5+xDS8dCKcoVuQzVBbo3bXj+uuv37ElW40ok+okABdpfQyRBucf5fZ5AtnGPAHPW/sq72J+pk3GkQO4SNsqX1w36Dsfl8omJ92SBHBRjmn3Ebb63HbbbUtVTNfURzj2BXDxYA7EcBCTv4w5i77nfSuXbaTPAUVD+6i/c9R5zt9a1E4AqJTbZQB9gfHksiTfGjKfo/OykIfk7VAAF3n14bvPEe7s9ogz5EVZaAvqKjnBdd9+Vs4/n6dzHvIMpL50168uAd4oL++BXN9wHakECKjVgXzG6RCkyctYa2fS1qhUd6/DUJ1pVLlbdJZaubnu/KvpCQ6C8vl+xx13nAOakBft6noC1+g36Gbo8E6+AIHrDuDjd94uRLdj/hlKue5R0v+VZytvARMCmiyR9/VpAbh4zyRyL+dtrc+3vMP7vfghsGWL/jSufy4JABf1yHk27vtMda8dpTf4ffoK5DI2/75tnScF6mgBcLXOcSV57fWdRdt6nj6nuUwt2YLgq+w2DmBjXmd+hwcl8nk6B3Dp24U0o8D9pXx1TbKXeRWb0aQALvKdRZ4qb98juhF8dQAcz5bGANeR264jcK1FXrt8Ks3LS9KmRh1GUUv9yE9j3e1Oo96jez5GuCZdbhzPSCubR/7OFplPfkHBgeBAcCA4MHsOBICrJ48DwNWTUZEsOBAcCA4EB4IDwYGVlgMY+Vmpp5XcOSMwjBH9gygxJcJZqOgmJaNd6ZnaNQwRGHFzg5PS47gAIIBRqEQOnOkb8YPoF7vuumvKrrTNQl9jEwo6TnYnQGnk7U5G3QdAQaQYjw40y7L4dkIqg44l5wIrYlkZC/VZma/Q8KT3SAH8hlrahucwtFMOnEQ5sfKcVaREkXGjlvPRnZM4a/fff/+5qDZ5fhjeAaGwShti+wYMmlAegYtrWy6IAqYt3zCKsmUNoLyWunqZS/2Q92H8xgjudeU6NLSv8QzAnH333XfOcO7RPrjPOASEAZVWOHufqkV94VlPx2+n1r4nY2YJwMUqarbikJOmxk8vR+480j1W5eMkoA5sCwjJWQA4CDkDlerB9RqAi3sAuHDQqpxcgwCd0bcll9yhe1eKxf+7ExUgAwCB3CFC+yI7r7766kUykKPLAU6LJFjw4xGPeERy1t/73vfObyWwFFts/HhB5LqcaAtkaC7TGS9E02NrMxzQTryLiGEeIUf3cTJQh+uvv16X0pH6E8XAAVuegPREJFOkiqGywPOqnW+22WYJhJy3J3zBcU+EIwinipztyC/4g6wpEdGEiBao6BCkaemryhsAESAwgWFoB5wIRO3ZbbfdknzhnczrTi3yxXWDHPzpeY87B/xFe2nc1dL3kaGSGy5D/blJ5otaufw6QD+i+vl4YFxeeeWV3YMf/OAkk2kTAbhcxriz1PN0YJjApX7fzxlTOJFK+h7lIMobf04tfdSfr50jG5gzRcw13s91nSPlJprUQx/6UL+czuEXkWguuuiixe6RHl6qvysBIEVkD1GMoBYAVx++j2o/wNGMxVxeUB50XUVm5DdElBj4IKcf17QNGGODKI7kKVAa9yFALYcddtgceItrtT7vkWCYQ9FnRtVhnA7Bu4a0M+lLVKq716E2x9d0pnHlHqqzlMqsa86/mp4ghz/P5PP9KNmLrGb+JnJNicQ37uUymO8t9GEoB+2miwP+jdP/PasW3jJ+WcwhYL7yQ3cgYipbqKIbO4Br6DeM8tRxErnXt8+3vIN6wgtt2Ux5+faUk2io/jSufzqA68QTT1wEpM+7HQTRxwbg7/M5bdo6mfRagP7owjkAkHmDhTcAuHJqmScF6HX5nOcrwJEDmJSmZY4ryWvlx9F5XZI9LW3reXr7IUuQKVCpH9QAXKQnT6JO8i0vewntgz7ziU98Yg6c5VvY85z4Wfo+5X4fArCFTgShq2uRw9A6+Ltmkafn3/ecMcV3JIs1S3oG+aA7sL0iW2aX5pGh8nrcvLwkbWp9+DS0fuTZCuCq6R3jeMY7S98uXIeGyvy7nor/wYHgQHAgODBrDkg3Z6EzczJzMXoOf5zrd99y3G2BsfGupQh9n1hO0gWAazlpqChmcCA4EBwIDgQHggNLnQM4FDEusG0YCiZRrnB6azuaJVlAnItslYWBGsM9RjyAGmybgWNrFOH4x3iGURnD1NImyr/OOuskwyYrV3Hc46y9/fbbl3jR2MYJA+laa62VQBM//OEP05aZOLMnJRm0MLriXMhBGeQ/Sdvg6GDrIwCHrJIFZNVabpxAbB2Ac5cPKLaTwsjP6l7KPw2apK6t72/tazKa/3/2zgRu06n847dSoj6hkkEyNGWZIiMMKkurrEVpUWlDkVFSIU2rFm2UPZElSyUxWcLYksmWLYNMQ4Qo26dC63++h9/zv+bMOfdz3+d5nvd93neu6/N53+d57uXc5/zOOde5znX97nPAgEDeIGSQba9f+WXLKYhAtA8CExCMIDVICE5AVqUPz507V4d7+iRoQ6ARByw6AXKVyD1tErYELm23RxBxvfXWCyuAkF8CON30Z90z6SsEN8CBYBjthUAUn92E/otOZ35O/0X3pIIFSgeHBmMRhBfGAbAhyMAqYTlh3AIH7qGecJYwjkGe+vOf/5y8rd+6gHxPnIcRYxDPZwxtUp+rrLJKR78RjCLfc+bM6WzzGme+17ZKMA3CEHWnNsGWetRxvCqanl2qX3T/WP3sdxsBB9oqdg71rFVv9t1331An6BzG0EEK7Yd+Qh5opwQuIeHWSds2WpcW52hPkJ3pM/RvbIhuQr4Zr9iGlX6FnqafdLP10IWUl2dxPW18GAS7e8qUKRXYQjJg20q2umMcqNOPdXknLVZQpW2h80vTqXtGfK7Ohiip5zj9Qf2uy/cw2Sy0DcYU/iBRM56zXfBozCNSddHE/rf3lWLLuA6RnnkAZC3sj2593z635HuJ3mvb5kuegc3ICrjM0SH9W0HPtbWf7P2j+b1f460IXIxtEH3QtdjDjAXYoE10bMk42St2pWNcr88dlvvl92H8QibOs6dFpkq9HDYs+R7mfDDPZOxAZ9C+0JmQ5fGr0Q80B8iVoVRf59Lr5fgg5iEjXb46u6MUm7Gs80vL7Pc5Ao6AIzDsCDiBq2ENOYGrIVB+mSPgCDgCjoAj4Ag4AuMAAQhSvHFOQJRt1FxGBgG2OFTAGcLC4YcfvsCDF6a6WZjKukBF+4FRQSBF4BqVjPhDhxIBVjdYYYUVArGWVePioDfkbVaLQ2bNmhXexh/KgozRTLHSEivpIKxiQlDZCkEptomD2JVaAc1eO16+s1oU2/QirKJz2WWXjZeieTkMAl7PBoxx+LWJ/T8Oi11bJG/ztfCMyMmYwDUiD/WHtEaAVTixeyATHXPMMQvc//a3v71idVvkkEMOyb7UsMCNfsARcAQcAUfAEXAEHIFRRMAJXA3BdwJXQ6D8MkfAEXAEHAFHwBFwBMYBAmxNhf3HFkCsQuMyOATY8oA3/lgtBvKWtjaKt2lRDhamulmYyqr69c/RRcAJXKOL/7A/fZdddgkrF5HPeBsaVkcjiIZORyAS5VYsCxf4v9YIEIAkEImw4iPjpFY9YNWz/fbbL2wHzPlzzz03bEPM9/EmrPwGwZ4VIaZPnx5W4RqJFcfGG47DXh6v52Gvod7y19b+7+1pY+Nub/PDVU9O4Bqu+sjlhq2TtaU0L3/xEpiEVbfZJhJhVe+9995bp/zTEXAEHAFHwBFwBByBoUbACVwNq8cJXA2B8sscAUfAEXAEHAFHwBEYBwjsvvvuYZutmTNnjoPSDHcRRBhhy0GIXAjbcbG6S0oWprpZmMqaqms/NvIIqD/yZG2hOPK58CcOKwKTJk0KK2xJV7P97KOPPhq244JMI7nooouq008/XT/9s08IaFVGPhGIz2wNzdZobAumemEVCsbQfm3l26fs9y2Zd7/73WHLQJWXhM8///xqxowZfXuGJzT6CHg9j34dDDIHsjea2v+DzMuwpO1tflhq4ol8OIFruOojl5utttqqYoVSycMPPxxWiMUuYmVSBD1z1FFHBf+OrvNPR8ARcAQcAUfAEXAEhhkBJ3A1rB0ncDUEyi9zBBwBR8ARcAQcAUfAEXAEWiCgAI5ugQxw4IEHVg888IAO+acj4AiMEAK2PzqBa4RAH2OPYQu/7bffPmxXk8r6JZdcUp122mmpU36sDwhMmDChmjZtWiDNpZIb7+QtygzJYZ111ukUv4703bnIv4w5BLyex1yVtcqwtTe40e1/122tGtAIXOwErhEAuU+P2HHHHYNdYIndShry1g9+8IPqhhtu0CH/dAQcAUfAEXAEHAFHYOgRcAJXwypyAldDoPwyR8ARcAQcAUfAEXAEHAFHoAUCbHnAW7NPfepTqzvuuCM4V9niwMURcARGHgFW8pkyZUp48K233lr99a9/HflM+BOHHgH09cYbb1ytuOKK1VJLLRW285s9e3ZY2YCt7FwGjwDbAq2++urVc57znIqV0G655ZYwfj7yyCODf/goP4F2t+6661a0tdtuu22+7ZJGOWv++D4i4PXcRzCHMCm3/xesFG/zC2IymkcYZ9nW8t57763mzp07mlnxZzdAgNjdJptsUkF0X3zxxYNf4aabbgp2wnhdkbQBLH6JI+AIOAKOgCPgCIxRBJzA1bDinMDVECi/zBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEGiPgBK6GUDmBqyFQfpkj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDRGwAlcDaFyAldDoPwyR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFojIATuBpC5QSuhkD5ZY6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj0BgBJ3A1hMoJXA2B8sscAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR6AxAk7gagiVE7gaAuWXOQKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao5AYwScwNUQKidwNQTKL3MEHAFHwBFwBBwBR8AR6IrASiutVG200UbhupNOOqn63//+1/WekbxgkUUWqbbYYotq0UUXrebMmVPdcMMN4fGrrLJKteaaa4bvM2bMqP7973/3PVvPfe5zq1e96lUh3VmzZlX33ntv359RlyBl32GHHaqnPOUp1U033VRde+21dZeP23OjXQ8Au/nmm1eLLbZY9Yc//KG6/vrrB471lltuWT372c+ubr755uqaa64Z+PP8AY5AWwSWX375asqUKdXEiROrCRMmVE9/+tOrRx99tHrggQeCrj7rrLOq//73v8lkad/o9Jz861//qu68886Qzt///vcFLltmmWU64xZ9hL86efGLX1xNnjw5XHLppZdWf/3rX+su93OOgCPgCDgCQ4BAbg4wBFlbaLNgx9O2IGA/z507t2huM1Jt4XWve12FjXH//fdX5513XgH4P0YAAEAASURBVNsitr5+vfXWq7CnHnnkkWrmzJmt7x/kDauttlrFH3LGGWdkbbo4D894xjOqN7/5zRV1dtFFF1V33313fMmo/8b3QT0/+OCD1cUXXzxfflZYYYVq0003rZZddtlQhm984xvznfcfjsDCjgB94zWveU2AAb010j6yhR1/L78j4Ag4AqOBgBO4GqLuBK6GQPlljoAj4Ag4Ao6AI+AIOAJdEXj7299eTZ06NVy31157Vf/5z3+63lN3wZJLLllBuIEIhpO+V3na055WHXjggSGZW2+9tTr00EPD95122ql6+ctfHr7vt99+VSrI3+uzIW9tt912IZmf/vSnFYF/BCIPzl3kT3/6U/X444+H7/3+Z8v+u9/9rjrqqKP6/YgxkV6uHkYy89/5znfC4yBwHXzwwQN/9Le//e0QNLjllluqww47bODP8wc4Am0Q2HrrravNNtus9hb04sknn1z99re/XeA69acFTiQOzJ49u/rhD39YPfbYY52zBA222mqr8BtS79FHH905l/oybdq0auWVVw6njj/++Orqq69OXebHHAFHwBEYGAKQXSHkQ3J96KGHBvYcmzDk2iWWWKL6xz/+MdQB1tzcwdrBdg5gy7gwfh+NtiScP/ShD3UI0TrW9BMCF2Ow5nVt5jYj1Ra+8pWvVIsvvnj1t7/9rfrMZz7TtGjF133hC18IL2xgM33qU58qTmcQN37kIx+pXvKSl4Sk99577wpyfROB5LfbbruFS3/84x9Xl112WZPb+n5N3Xxd9cyLB/vss0/n2RDWdtlllzAH08E999xTX/3TEVioEMjZENY386Mf/ai64oorBo5Lzk4Y+IP9AY6AI+AIOAIBASdwNWwITuBqCJRf5gg4Ao6AI+AIOAKOgCPQFYF+E7g+/vGPVy984QsDgetjH/tY1+d3uyDnsB9NAtcb3/jGij/kmGOOqa677rpuxSg6b8veJshR9LAhvsk6CS2RbiSzLMKJE7hGEnV/1rAhwCpbe+yxR/WCF7ygkzXIupADCHY+85nPDH+suiA59thjF1g9UP1J13T7ZMWsL37xi53LnMDVgcK/OAKOwBhAgBcb9t9//5BTSK2QUkdCIMpgSz788MPV9OnTR+KRRc/IzR2sHewEriegHa22pIp1ApeQ6M+nE7j6g2Mqlbr5eo7A9YEPfKB62cteFpJjdW/s289+9rOp5P2YIzDuEcjZENY3M1IErpydMO4rwQvoCDgCjsCQIOAEroYV4QSuhkD5ZY6AI+AIOAKOgCPgCDgCXREYdgIXRADy+NSnPjVsk3XVVVeFMo0EgYvl4dlKA2ELiLvuuit8tw7hH/zgBwPbUs8GrhZmAleuHkJljNA/EU6cwDVCgPtjhhKBOHB75ZVXVjju7da7z3nOcyoCYFqlkFUdCVBCIJCoPxEY+/znP6/D4ZOVLyZNmlSttdZanSAaJ9gq9/zzzw/XOIErwOD/HAFHYIwgMFqkm1zwddhgywVmc3OAYcv/SOZntNqSysj2eKzqFss222wTxm2OsxrLOeecE18SyDDYBCUrcI1UWxCxx1fgquazw7D1cttixxU9LCtw1c3Xmd8zv+QFgbPPPrtTBIiuSy+9dLBrP/nJTzZedayTgH9xBMYRAjkbwglc46iSvSiOgCPgCDREwAlcDYFyAldDoPwyR8ARcAQcAUfAEXAEHIGuCAw7gStXgJEgcOWeXecQzt1TctwJXCWoDeYeEU6cwDUYfD3V4UeAoDHbCWl1LVaQSW2PSEm4hmu5B5k1a1bYTjH8mPdP/Ymtb9kCNyd2fPrjH/9Yfetb3wqXOoErh5gfdwQcgWFEYLRIN7ng67BhlCNwDVs+hyE/o9WWupX9bW97W7XhhhuGyy655JLqtNNOS94y7HMbJ3Alq63VwbFA4MoVSCuisV0k20a6OAILMwI5G8IJXAtzq/CyOwKOwMKKgBO4Gta8E7gaAuWXOQKOgCPgCDgCjsBQILDGGmtUa665ZvXoo49WP//5z6uVV1652mCDDapVV1015O/uu++uzjvvvApihJUJEyZUb3rTm8KhM844o1p00UXDSkzLLLNM9Zvf/KbimIRnvPrVr66WW265itU7WNXj3nvvrc4888zqT3/6ky5b4HPttdeuNtpoo3Af6T/22GNhlaUf//jH1UMPPbTA9RyYOHFicFCzTSBvIP/5z3+ubrzxxpAn7k8Jq4lsscUWIZi92GKLVRi+5I/VRG6//fYFbiEvb37zmyscoNh+vPH6l7/8pbrtttvCKiR2tZMFbs4cYDuAl7/85WHrq8cff7y66aabwhvSr3/966upU6eGu/baa6+KN6OtLLnkkhXBcsq91FJLVY888khYCYuAPHmSrLbaagGXl7zkJRVvZyPXX399eHOVt3ZtulOmTKk23njj8IYrjnzaBnhfcMEFFStNWXnKU55SERRArr322vBsvtcRuPqF3/LLLx/aFc/jTXK2UiAvtDPaIXLPPfdU999/f3XWWWeFOg0Ha/61yVsc5DjllFNC36EuWeXmgQceCO2HlWlyba9p31D9kfVf/epXFVvVWHnPe94T+iAO7eOPP96eClhstdVW4RhtGqIF0qas4YbMv7ge1Dd5259AFn1o5syZFc5EsEF30MbJByun3XnnncmUaadvectbQtumndNG6ZsEni677LL57hHhxBK40B3oMfojW2nGQt7II0L7QddZoW+TBn2G76zwBiHmhhtuCEQVSDC33HJLddhhh9nbwvdXvOIV4c14rXJEGelv11xzzXyrIS1wY3RgxRVXDKvMUfaTTz459PFNN9006Gn0G2375ptvrn75y19Gdz7xk5XxeIud1ZKe/exnB+IO+pd+8Ytf/GKBPqHngRnbYdJGqDfGCPQc25GCP3qGc5AlwUft/fe//31IN7cKAHqKAGIb/ZwsWM1BxjAwQlL1yvF3v/vdYdsq6kSrBnIcaTsecA968LWvfW0YE9A99EOwIO147OT6zTffPOgpxr9zzz232nLLLSv0LuNPHWGKe3PClrgrrbRSOE1b/cY3vpG7NBxfZZVVwnaL/Ii371J/6kbgoi9/+tOfDunZa0eCwNVr/6ZdM7YyblJ/6C3q42c/+1lFWVJC/8BWeP7znx9smX/+859BJ1199dXVxRdfnF39ApywgWib9GVskssvvzyMWbRV+hvjazxOtG1XqTw3OSZdPXfu3KCTsUXABt1OW/r1r38d9B5pYfe88pWvDG2Nfs55dAL2T0ralmGQeaFvUn/oZfQh/RQdyphKHcZS108ZB9DBYABZMmX3dRu34+cx3tEe77vvvmBLxufRw4wt2DrYbXxKSsbztuODnsUn7Xny5MlB9zOeYPdjt2K3024Y39GvsYzEGKBnNtXlEFFZ0UXzHvr/nDlzgk3LmC3BDsCWoh+zHS11z7XoelaIifUGWPCH3cK8he9veMMbgj3BWPqsZz0r2ETYEqSFXmDugb1aOo5h19iVaWnj6MqXvvSlIc/MiViZEf3TRNSGc3MH2n1qDrD++uuH9oG9ge1CvaNz0R/oWlaAos2QP+WZMjNHBANsrbo89svGaoIB1zR9XtO21Ma+bZrHbteVEriazm3Q9am2oHw17Y+6PvdpCVysELreeut17G3aG7qH8TS26ZVe2zFJhCHmLZ/61KdCMmqz/GAe07afoeff+ta3BjsQXcLYj97HZqRfNBV0CnqLvGG7xMJ22vRF7D3KjT1K32O77d122y1cjm6K51RtMdK43XS+h+7rNl9Hj4Ez9YiNsc466wT9wSfzb3QPWFHnrMaGjkGwqVO+JfQ3mCPod2y2JtJW70v34QM4/fTTq9VXXz3YU9iPjLnYTNSzfcECvdFPe6KX9vne97435BObiPnlu971roAtPqWDDz64Axl1sO2224ZzzAERVkubPXt2mAd2Loy+lOi+pr4u+6iSPlaio9r2FfJYYq/ZsvF9k002Cf0av0rKhmC83W677cJt2Iv0Cfl35R/FZtPKyXH6/G7qD+xmJ1gfY+o5fswRcAQcAUegPwg4gashjhh3Lo6AI+AIOAKOgCPgCIwVBAhk4wxDcOrhCI0FJ9mFF144HymLAB8kHYQgOUEJHAgIDoEjjzwyfMfxs+6664bv8T/SxUF/6qmnzneKdN7//vfPtz2TvYD7jj322EAmsMchVUE8SgmBVhxPOM6s4KjCAZoSnoMjkPJJCMRCpMJxlRIC4d/+9rezBLPUPZSVwFwsPJ9ABoQkJCZwUQfUHw7BWLj3Jz/5Sccpu/XWW1ebbbZZfFn4vf/++4cAEz94m1Wkk9TF4GeJAZbEBKno0EMPDbfRNsgfAiFBga1+4medU5BNcMiynUJK7PZeqfMca5s3W3YcY9yfqgsmUl/60peCg90+u03fIHi04447htsJFh5yyCGdpCBtQN6QfPOb35yPFIUDD6wQ+iX9s21ZlXbqM66HSy+9NFymIAtBCYITkHZiIWj5ve99bwGSC8GGXXfdNQQZ4nv4TdD9y1/+cueUCCeWwGUJLXvuuWfnWn3Bqb7LLruEn/Rx289xtE+bNi04WXW9PglWgx96KiZwERT5yEc+Ehzaut5+4gCn/8REDXuN/W6xJX8QOnEWx2LLrXM4yQk8kaecQKyzZFv7PJz3OG+l15UGuuW73/1u0P+QIGKhL1BGrrNSop/t/U2/MxZBvEBwWjOuxYKOplwE+rRqFNe0HQ+4B1IIbYWAVEoI0kDwsKKA4IMPPhjIcCJecU2qrdp7c9/p99I/X/va1wJJL3etjhMggzRGPmwAT/0JvV1HKCNIxPiB2O2MRoLAVdq/wYgyKeAkLPQJKeb73/9+h4ys4wQoRQzUMftJABU9L8eZztGnIObE/YjzkIAIviDxdr8l7SokVPBPupq8U47nPe95C6TCuMPYAQ6x0NcZWwjcWSkpw6DyAnGU4G2qHsjzHXfcEci4VjfX9VPGIMqHnHjiiYEUE36YfwT7Zb9BIoa0Uydf//rXg762fcle/853vrNjo5M3AsRIyXheMj7wLAJ/9D2VnWMSAunY2gROY1Io14zUGMCz2uhyqzu5VwKh8aCDDgo/IR4xtufaD33giCOOmE9vyA7mHCRrxiYJJCZwigX8sGNLxzH0CVvkIugXiFupPGMzYK9bEmCcF353mzvQX7Tdnp0DgBWkLyQ3t6S9oPc+/OEPd8aucMOT/5h38mKRlX7bWDbt1Pe2z2vSltrat6l8lRwrIXC1mdvYOZFtC+S1TX/sVjaNEbQf2m/KDoUwgB0TvyBSMiZpHLAErl76WbexCOwOP/zwLCHc4mP7GfN3iGQSiNbM/3L9n3aIxASuEoxUJ03ne5B8u83XlSYvke2zzz7BzobkmRLsV4iqCERYbLhYrC5L2eXx9fwu0fuqE9og5PCcX4qXaHhBEsEm1ZjaD3uil/Yp+x97BWIOcwTEzgeYI0MAxI5ICTYMbTj2uZXovja+LuWlpI+V6KiSvlJir6lc9tPal/a4bAg7n4eIR12mBLsd2yWWNv5A27fidKyPMT7nvx0BR8ARcAT6i4D8UIzD+LywAfEd88d3/W761EXmvdE3v0e36Z1Dfp0TuIa8gjx7joAj4Ag4Ao6AIzAfApbApRM4RQlO4WSQ44ZzdksmS+DSfXwSqGAlJq61aXOctyh5Ow+CEMFTORVZiYu3ZSXve9/7wtu0So8gFfnhTVIFyXGMffazn+0QgywZhmfhRMTpt+yyy4Y3upUWxAMCFwhkNQJiCOlBzOA+VtfgWRLIMgQvEQK0ygOr0EAAwDjGKSWsYnKJ0kl9EmhRAJfzpImTjDwoGK/7LIGLFXXASUIwCJwIvFpntogpEID0Nitv/iG8iY9AZiAIwyowrCKDgAcrauAIor5YnUD1RSCKFQKQnMNegSuusQSufuJnnVMQuHDaQvqhfnijGSGISNkgcBHMqpO2ebNlV7pqR9SdSD6ci0lXbfsG6UGKoQ7kzNYzIQewGoaEN5Xt1ihyDEOWYhscpG1ZlXbqM66HmMBl74HARJuiX6p9y9mo66i/L37xi532xnn6Ge0WoovaIW9en3TSSeE2OZwtkamU4IFuwuGo51Cn5JuVIWzf4sExgQudJGII96HzKCf9Wf2O9sh1lKubWGx1LQEa+i7zTt5KlsQkRet8RaeADTqKwIl0GPd+9atf7azElXoe4wH6xZZBz0TXondI16ZJ0JXgq6REP+vetp+lge+S8QA9Q1sVqY66ZRyhbiA3qQ1ZIgDlUUAwLpvto/G5ut+0LRFraR/UfS+i/mQDNqn0IMQoaHb77bd3tl4cZgLXBz/4wUBqoDwEZNEttHECUrbvEjBUH2V8/+hHPxrqkzYP2QfSG32JMVe6LCY4Q4BkdUQJwWbuo9/GxEpL4CptV3pO208FSnWfbCjaFe04FnBhbAUvld0Gt7m+tAyDyAsEeYjyEvQ5upngG2OR+m+bfoqOg5CE2LavZ4AdxBZ0APX+iU98Qqeyn6UErpLxvGR8IOOx7sJmRW/RpqXvuC4mcI3kGNBWl++xxx5hbBdxkbbMmIfNyLjK+IaeV59lngCxhfZv50mx7rV2MH1K+PAdkgYELsZVjoMhcwf0A4Hv0nHMBu6pB4T2R3vnedaGIUCfWp30ibue+N9t7oCd043ApfSwFcBIZdZxPik/88NYN7LVL0EISb9tLKWb+2z7vG5tqcS+zeWt7fESApee0WRuY+dElsDVtj/qmbnP1BhB38H+gjBLPhB+a4VQfpeOSdJ5dowr7WfYhqRHn0cP0OYhmdEuXvSiF3XGIghJEKu6ichCXIdOp38hrLSzww47hO/800razOVj0o0lcJViFNcJz6yb75GPbvN1pak5Lz4KcGfcZsyWnYLuQGeyGhuCfZIih33uc5/rkGbtvCfclPhXqvdtnShZdBhjCmOMxZ9xhTYAyauf9kRp+yS/sv+Vd32iv2m7cRuhbLRhyoW/SOMk/QU7mvpBSnRfW18XzynpYyU6Ksah6fyvxF6jXLFAzoQkrfE0tiFS83nqhBdDqQtr27N6n12Rrq0/sJudADYujoAj4Ag4AoNHwAlcDTHGWHBxBBwBR8ARcAQcAUdgrCBgiSTk2b4RyG8boJUTjeMxgYsgDisw6G07nPA4y3BS4vjlLXYCpRJW5SKgg+B0gDBBsBinHg5zOTchT9mteQiCiVwlkgBOCJz83EOggmfZt24JoBJIRciDVlyBzKJVgSxJi+ts+eSIxvHGc5CYpIUzcfr06R1CBW/G4SipE4sRjkgCKdpyBgcYhC2CixJL4DrggAPCSgics85XfrN8P8vxg0fsyFSZeR4EFysKHlJf1AH1IQEnkX8shjmHvQ1cicDVb/yscwoCl4hDbOvGH2KD4ipL6rMkb7bspAmphralegczMKYebGDP1nubviEiFs/ad999A+mA7zhIbTshHzi+JVptiIAjgbaSsiqt1GeuHuR85x76Je1bW3DiPKS/KNBinek49fWmqPKs50KyoB8g4KztTORw7geByz4fPYI+If8IqxWyEhp1ilgCF2+7b7/99uE4jm5WYlAfopzUkwgiIlaGi2v+WWy5jOfxZrmCNHZ1NYsVQVoc7QhBFFYro89L7NuyNi/x8y6atzUMW4Ag1BlpiuxA26W981zEBgyo56OOOiocL9XP4eaCf6WBb+lGHtlkPOA6G6iJg+EE9hmvRNyjP4g0C44KpFMvkN2oBxGGSLuNQDAicIwwFqO/exH1pxSBi3wT7KC+7cphJ5xwQmc7ymEmcKED6Y+0X4K76kvgZcctVrBk9QSEVdEmTpwYvrNqDTaBhKAV9cmYHY+3dpyG9Gy3OrVEddKyY1Vpu1Ke2n5aXY1exRYgqIjENiKklqOPPrrzCBsUpb1LV5aWYRB5Qf8RbENkN6oAjIfoZhHRKJvI3nX91BK0sGEZl6yOhVQNuRrJrQiiPOhTNhgBUdmaOsdnagWukvG8dHyArKktqAjIUfcKzGHvQHLUmG4JXCM9BpTocvKo1QTj1Vl4+YGtNxG2J2dLQCuQBSBzIrQZxn/E6hN+Q+Tn5RZLSJI+snhxbek4Zsdh0olJiWzbvfPOO3MqtFeCyerr4WDmnzCN5w7UdzcCF/dgD7CCHxLnEdIaq0aqLVmdY1fRHISNlSluOFz6vLq2ZO1La7PxwJx9W5fHNudKCVxN5za5tqC2Q16b2lZ15bJjBGMudiikBITxGCIP5BsE3c98HSkdkzQO2DlH3Iab9jM7P2VrYrsCuSW4QCpnntdNbJksgcvaHtaOJz3bDvhtfQg2vTY2ra2TNvM9i4e1gciX0rS+J46rPmKMLNmSeRt1IiFOB1kKyY2vulafpXrfYojuY5UtvfRG2nbOzvZ1kIT7bU+Utk/yJ/uf79jJrAjGmCj7hvGDcQRhZSfIcxLsKHwVmuuyXS/3IyW6z7Zj205JL+frsm2qaR8r0VG2npv2lRJ7jbLWSc6GiOfzse1icYpfPpEtSv039QeSR+EY2wl1+fdzjoAj4Ag4Av1DwAlcDbF0AldDoPwyR8ARcAQcAUfAERgKBKyjHAcoRIpYbIAOUgKkBktwwlmHQ8oGQu3KUnbFJps225exjRnCNl5s52VXx0i9gWq3i4PYxfZrLOPOMveIDSKHA0/+kxMIpwJBWxyxOHkh0yCWQPLkLSFdHKo8B4KQdYhZEpOuhySGww+BZNEtKGIxih2spMFWNTifRRYRgcu+qRkHU7kPsY6yY489NqyKxvE65woBFJxvBBu5JxZtDQIhhKAPknPY28CVCFz9xs86p3olcJXkzZaddkXwzwbmwMe2OxHmbL236RuWdGMdmaoX8kBbweEmkhNvZ+JkRETOLClrSCDzL1cPcr5zW6pf2v6v7aUgQeA4RCgHAQz6qhX6L+QYRKszyOHcK4HL9jmeT2CWTyt2mwVL4EKHEDyiHtCZBGStkDbtAWlKsrHYMiFXgFnpWrxsAHjSpElBB3AdRBQct1YgwWpFGOvgts+z6eleOxZY4pfOE0iD4IXuU7CkVD8rzbafpYHvtuMBY4fe+E/VDfm2hAdWppReVQCKa1K6n+NtxAaaY0d8m3R0rfqTfnf7jEmjw0zgEqGVwC9jk7VbWKFG26pijxB8Qhg3IWjQJ9SuLSbayoS+Lz1vt71N2Qvcb4lFCl720q5sntp8t7pa+dD9drwAM8pKOSWW5E8gj4BeL2Xod14g3WLnIrm+MW93gEB65xo7hnTrp5bYd9xxx1XXXHMNSQSxpB7ZzTqX+1TQLBdgThG4bP2k2lnKLi0dH2j7+Dupf3S9fVGCMtlVX+z4MdJjQFtdTt7rSDfbbrtthY6l3KQd23mc32STTUgmzEn00om1g1mZERs7llzwtXQcs+2BuRk6Lrah7LwvXrE1zp9+5+YO1g7Wyy7cY4Pb9Av6hxXpYY7R50Vu5rclJNuVVgdhY/G8nJQ+L9eWrL3Wxr7N5a/tcUvcqat3W6e0+aZzG3ufbQsl/bGubHaMwKbCtrLClpyrrrpqOKTxrJcxSeNAjsDVpp/ZF8pSNjSrMDFvgzyPf6Ob2H4mApcd83J6x9aJ5pO9YGTrpOl8j7JZEonqSmVWmk0JXJZwxctwpCex82dWGmLFoW5SqvdtnaR8NHactGThftoTvYwD1v4/+OCDO6vWgxd9HDslfjHNYsk8GN2JqM+U6D7asVYlS+FI+ilfV0kfs/2BvIsQyjMQbBjrDyztK7ZemtprT+Qg/z9nQ9j5fMrnAMlVNom113hSiT+Q+3J2AudcHAFHwBFwBAaPgBO4GmLsBK6GQPlljoAj4Ag4Ao6AIzAUCFhH/tlnn12de+65C+SL1ZwIcCFalcISuKwDSjcTNGCZe5y/BLJskFTXEPDAQYbIwa/7OBY7jjiGrL322oEoQTCOAJKCSqyCgPMgJR/60IeqyZMnh1NaYcESSLh39uzZYQlxu7qGTcs6pTjOW+OQHyBHyFi213f7LocRGEGmiIki3G8deiJwWQIQjrbb521dFYtdDv7qq6+ujj/++HBJW+cKgQjeCqeutAJJKYGr3/hZ51SvBK6SvNlghbYWiOvBblME9rQztfG2fcMGhfTWq31jn3aofqqAsQ348lyCAiVljctlf+fqQc532rUIZfY+67hXAMEG7uJV7nQvb7BC2ATLK664IugYOZxt8B0ihVYIoh/FAnlUZA0FUqxzVTopvs+uXiICF6QlAtoI2yuJqBXfq60TqHsRPeJr7G+LbS7ooKB//Da6TYfv5JHtZVgp5U1velMIxHM8R+CygVOuQ6ZNm1atvPLK4TvPZVsmK2zjx5vkduWmUv1s023zvTTw3XY8sAQdVmpibIzFOsjZPgUCHKKAIO0AvcBnL2Lbcioo0DZt9acm90H4hYBpx69hJnBZ0hTBpauuuiqs3hgHbLqVnWAO+heCDG2BgJbt15bYJP0Wp7nNNttUm266aTis4GUv7SpOv+lv6Wqbf91rV65IBYNZmUjE9VNOOaW6/PLLAx6sVIi07Rv9zoslLQhjlU2frM5Fu0BsIKtbP7Xb+9ixx66m0U0vKw98Spe3IXD1azxvMj6IoFtXJhHKLY4jPQa01eVgb+2r1JyGa6yg29kuCrIF7V8ruEG6SBG4RFK3afA9F3wtHcesDcNWrxClYsF+IiCNWKJNfJ39nZs7WDvYpmVJDPGqhaSrtp6yD5k7Yq8izMuOOOKIYL8MwsYKD0n868Wmy7WlUvs2kb2iQ1YXNiVwtZnb5NpCSX+sK2DdGMF9dvsvjb29jKsaB0RG4Rml/cySd0gHHwZ1AQkt5Sfhmjqx/UwELktgkb8jTsOSnfqBkeok1Z95dmq+Fx+Px2el2ZTABUkI4gm2mK0rnoPtDUEf0Ys/4UfLf030vq0TzcXtY1idSqvkai7P+X7aE6Xtk3zI/rdjOMcRq8PqxknqAaxkU9r7ms7t2faaciBtfF0lfaytjirVJ/2y1wIoT/7L2RDWf4CvhNUsY9Gcvc6m0z3d/IFcl7MTlIZ/OgKOgCPgCAwWAcWk8CUwN8UmYk7DH9/1u2kuFpkXXOjNS9n0SSN8nRO4Rhhwf5wj4Ag4Ao6AI+AI9ISAJXDhJMdZHgvLlL/jHe8IhxXstwQurexj75Pzhi0xWDEnJdZJr60kdB/Xi/CSutceU8CIY7lAOMaqhDcvIUPwfMhlOJ2tkAZvg0PgwLGqbT24hqAkjptYcDCyPQrXK3gTXxP/ltMldjTa69hmku0mERG47PL7ufJyvcpMvti2AunmXMHJxrZsYIMzNCWlBC7S6id+1jnVK4GrJG82WGGDtxYzS3hR/amNt+0bpKt7RZDh7VRWZMNpzlvyIg4pOCOndbxC0EjUg5zvufZtV5JTAGETQ+qMtySwuMbf5XC29VBC4Np8883D1kWkr1UB42fxW6tHiMBltxjlfK5fqk9yTZNtVm0bZytDVmuKRatEpBywrAAFmYa3hRVgju+XTue4fV6q/GzTh45AwDcup5zBap9cV6qfubdESgPfbccDtkdjmzRJjIWOq85tf1dAMN5yT/e0/bRBgdSb1m3TU38ioKitaW0aHIccMGfOnAVWd+E6245yb87b9KyezAUc7fV8L+nf3Md4CrFV9cIxhFU0IL9BhCXYEQt9CDto4rytFAlMxfdzPW1AxEy76hBjvbYatelaorWCl720K5t2m+91utqSm2ywUemnCFy9lKHfedl9990rVpxCsEWtPacy8CndRTvQ6oRN+qnus4FruyIe7Snecs8+134XqaUNgYv7S8fzNuOD1TEpIp/KIZKyDf6O9BjQVpeT9xzpRuWClIe9teaaa4btOHGEpyRH4CJgj26ORfMAixfXlI5jNnCfC9pSFtotYu35cCDzLzd3sHZwjsCllwds0rJlU3YL9RcTuAZlY9k82e+9PC/XlkrtW5uvXr6XELisTW2fbcdszW1ybaGkP9pnxd/rxgiufe1rXxtIXHzX3KKXMUnjgJ3LlPYz7HBWFqaNxIIOgBDP6p/dVvDWvZYsJAIX9QG5HEn1PY7brVT7gVG3OknN98iHJXbJBuI4ojSbEri4h7GbFYYRCJ/YdJDttWp4U30XEpj3r0Tv2zpJ2Rx2LNUcUs/rlz1R2j7Jh+x/Xg7Ud+WPFw548QCRL03n7KetB+aoq622WueFzaZz+1JfV0kfa6ujetEnpfaaxdd+z9kQdh6Wms+ThmzO1Djc1h9Iejk7gXMujoAj4Ag4AoNHwAlcDTF2AldDoPwyR8ARcAQcAUfAERgKBCyBK+fos9uwaVtDS+BKOQZEcIiDErbQ1tkrApfuaxrYJoiaesPcPif+/vOf/7y68MILw+Gll1662mGHHcKKPimCA0G5gw46KDgBlQ7Bude//vUVK/GkxAYxUud1TGW1ZAed06d1EslJblcQ0XV1nxDKtBVDnXPFrlJm0yMozWpjvDWKWAeorUNbbrt1TNyu+oWfdU71g8BF2drkzZb9d7/7XXXUUUeRxHySCnKo3tv2DRK2b4lCPoQswKpK2sJMbYPfOOZwBtNH7CpsymCbsuqe1GeuHuR8zwWjUw59G2CaMWNGdf7556ceucAxOZltsKkbwYOV/NgOEdEKXFYfnnTSSRWrUKVEAWk53y0RI3V96ljcL1LXWGx5ezZFLEkRuCBfkj6kk1ggKFAnehs9R+BKPc8SuFKrmin4IJ3Wq36O897kd5PAt9pLvFpVm/Egpy9zebTBv1RAMHdf0+Nqk5aA0u1e+ijBJMSuAil8VI/d0onP2+CRdFN8jf0toinHcmQnez3fS/q30mAFGsZWtmJNEbHoH6waRJ0hBK3Ygie+lrGRwAcYYj9YApcNPpFXzsVit+5T8LKXdhWn3/R3na62BC6thmPTTRG4eilDv/PCahus2mjrxuZf3/VcS8Rq0k9tWbWdl115k5VWsZ+aiIJpuTHzfe97X1ilg7TIG6vjSNqM5yXjgyW05Owd8iIbRPbNaIwB5KONLuf6HOmGc5AhsOUI5sciHQGpE8kRuHLjfS74WjqOWd2bmpsp/7JDcyss6Tp95uYO1g62cwBLYkjZCiJwpcaYFIFrUDaWyhd/9vK8XFsqtW/jvJX+ts/XSx6ptGyd5vp6am5j77NtgWe07Y+pfOmYdHVOT6YIXFZPK526z272Wi/9TKQgXgaT3ojzcuaZZ1YXXHBBfHiB37aficBl7alU3yMRu3qzCFy9YNStTlLzPfLRbwKX7bfattyuyFanE8mPlVK9b+skhX8dgcvWQS/2RC/tU/a/nU8LF6tD6l62sBgwR+Vllw033DAk03RuL1tCz+72aX1dJX2sjY6y9dQtX5y3+oTfbew1rq+TnA3RxH8gmzMmcOXKhx2d8weSx5ydUJd/P+cIOAKOgCPQPwScwNUQSydwNQTKL3MEHAFHwBFwBByBoUDAEhZw2vDGXSwpJ0A3ApecAnbVkThd60C8/vrrKwKYuq9NEFrbukD6YtvFbsK2X2y/FgtB3XXWWSdsiSKyEtfEjg3dR2ATByyOMrZqw3kt0VaT+p36lNOljqxmt0sUgcsGhqkzsKoTAjSUAck5V6zTEwcNxBS2lmLFDZzkiAgCvRK4QmLz/vWKn22X/SJwtcmbDVa0CXKojbftG+TN9jsINpAPIQ6wMhMrNMnpRhCabTN32mmnUKTcdqScHFQ9lDj07bYekLdw9DaRlMO5G8HDroYgAhdbC0LORFIrC3LcBqRF4KL/8zwEMirkrzqhzzbZss228RShimekCFxqB5xntSTeeKY/z507NziSIf2xAhgySAIX6fdLP5NWE+kW+LbBk5jAZdPvNh6wUiH1gxAMTZHrbHroUbZRRJoQQ+y9Tb4rTa494YQTQn3X3cdKMmxRgsSBUPWnVHC9Lk2dYwUErWJkCTE6H39qbOE4q1NovIqvs79L+re9n+8EecABMidvm6MLJQpAs3oDZC6Rt9i6mdU56VNaJQMy7fLLLz8fSciuwJUrk92eWgSuXtqV8t72s05XgwmBNKQpgauXMvQ7L5ZokFoNQ1ipDdoV7NSn4uCb7uHT6n4CiIcddliHOG23TbX35L7LNoj7o663q4nRJtX+dJ7PJuN5yfhg9aYNlNpn813EIBG4ODbSYwDPtNJNl3NtjnTDOa0qxnfaB4R4dABjPXMJyJ2bbbYZp0eMwGXrw45jNnCf274UAh9tDalbTS1c8OS/3NzB2sHSmdxiA/gpEkNbApftZ/20sWwZ7fdenpdrS6X2rc1XL98t+WKkCVw23036o70+/l43RnBtisDVy5iUGgf61c+WXXbZsCooK2Jhl8vOoBysqqxAHL9TYvuZCFx29aPp06eHbYHje+0WcCJw9YJRtzoZKQIX+PEiCfNijdusfohPB98GtlrTrSpL9b6tk5Tus7pbc0jVj9U7vdgTvbRP2f8pApftW3UrcGFr8YIEgq3OfZD9kaZz+158XeFBT/4r6WPddFQvfcXmrYm9Zq9PfZcv0dpcXNfEfyCb0/o5S/2BPDNnJ3DOxRFwBBwBR2DwCMhuxJeALYRd5FsoJnB3AlcCFD/kCDgCjoAj4Ag4AkOLgCVw5QgLlkSEQwsCjyWSpN5oxPGIExuHGW+epwKy1gHyy1/+sjrrrLOCw5L7kNSWI6wow9ulGKOQzXA0ycnGsyA5pchZOLP4Q8gv5Bmc2QiBGIhKVlidhudrmxScfty/6qqrVhCuIGjFYldHSG01FF9v35JNlZXr5XjkuwhcNviW2/aSFSdERLnyyivD9o6kkXOu2MCgnLlcL8HGJWCIlBK4IMf1Ez/rnOqVwFWSNxu4akPgKu0bYE97JNBM+4dIoK0icOAR1KIc9GmE3yussELYXpG2Iykpq+5NfebqocShb1f7s1t/2ufaVcikj1IOZ0vwSBEodt5557CNCGmLwGWd3rnnsxXErrvuGrIk5zsTZOoFqVvRgu0McSazJQjO725isW1D4FJwFJ1I8CleAcZugzFoAleJfsbpUCroPYh4SGrbSbslsALfEHnajgeMgWzFh+S2qqKfvvWtbw1EIZ5FQB1JBQTDiR7+sZocRCTEklBySdogX7zNofpTKYGL/qDV/3h+jmzCORvsbkL24h6kpH+jL7XtJfaGCHVPpFjNpz8V0LBET/V3Xa9P29/IF0K9s0UdcswxxwTCV/hh/tmVmkTgssGTtu3KJN3qa52uLiFw9VKGfufFkuROPPHECnsoFhs0ZVyl7SJN+6nyTPs97bTTQt1zv8YVvjcRBdMUeI7vsStSqE+VjOe2vbYZH0TEigOFyicBWwK3iL1mJMeAEl2OTW/10G9/+9vqhz/8YSiH3X4LncCKbvEcw9rP/VqBq2QcI8PWhtEcKRTE/LN2olZVNqeTX3NzB2sHD5LANSgbK1nYeQd7eV6uLZXat7k8tj0+GgSu0v5YVzbp2xzR1ZJMNJ/tZUxKjQOl/Yxt2lnph/nZxRdfPF8xaXPM+bVy7qmnnhpesJjvouiHJQuJwGX9OoxHkPViwXYFE6QfGHWrk5EicFEei8nhhx/ema/J3ueabtKL3rfPb0vgIl/Cshd7orR98nzZ/ykCF8QmXk5A2O7z+9//fvhu/zHvEYkOshztskT3sWXx5MmTQ9JtfF1t+xh29kjN/0rsNYtt6nu/CVzWnpFusM/N+QO5Jmcn2Pv9uyPgCDgCjsDgEHACV0NsncDVECi/zBFwBBwBR8ARcASGAgHr6COYyXYvBP0lvCmIMwmHDMcVnOxG4LJkplmzZlUnn3yykgyfEFEI6iyxxBLht4JRNj+pbd9SpAvrbDjvvPPCyjn2YThFWaWGQAOBF60MIiLMfffdVx1wwAH2lvDdpgsJbfvtt+8EyHFwERyxQlmUTo78Ya+3RCwbMNI1NqjIMRG4bEDZBht1H582OH/IIYcsQODiGutYZDUe3v5FUmWzwehSApclGKSe0RY/S27JEbhygfNQUPOvJG82cNWGwFXaN5Rd+1YqxyzpgWAJzjz6q+SOO+6Yb5vRkrIqrdRnrh7khM4FWVIOfVaGILgsfUMwmGC2hLkWwRTO25XrUg5nG6BgNTL0iYQteiB1CScF2iEroJf0fLCG7GnFvllsCR0KinOtCHX2PrvioO1D9pr4u8W2DYFLq8mkSK2UjbKDATJoApfVo031cxwgj3Gp+20JdjExiXGH9kNwBlFAxxIjm44HtFVWN0AIUkDytWMnx+32cnYcTAUEub4Xoe8z/pAvRG/vox9isfqcPNPm7Wo+6k+lBC6eZ/sJ2yjSP+J6xb6gLWo74lTAKM67fpf077XWWqtC/yK51WnUj7VC4jbbbBO2UOQetlSNV9ezAS1rI9kVLu6///7OKlakg9gV0PgtAhfB3dJ2RTolUqerSwhcvZSh33mxW+XSxkVEtzjZ1dLsFttN+6kliTFesS0WbSEev+wzU99ThH1dx/ZDCjJyTDZzyXheOj7wTPk7LVFJeRQ5nd+WwDWSY0CJLkfP5Ug3kOAJQCOp9sNY8rl5L5WgfxGLy07zVkBlroS03UKxZBzjOTZwj+5Ht8cEbvQLfRRhxTRsxG6iwCzX2bmDtYMHSeDiudLNfO+XjUVaOSl9Xq4tldq3ufy1PT4aBK7S/lhXtroxgvtSBK5exqTUOFDaz/CxQNDCFmJOH9uM9uWKuhWOhI8lC4nAZclqVg/rHnwikIX5RETS6AWjbnWSmu/xbLuFYjxfV5q88MJcTKL6EMlex/VpbTKNx5yDlIuvpYn0ovdtnVhdqefWrcDFNf2wJ0rbJ8+X/Z+yx7Ft8Kcxj6QN4zuKVzTjJQm2KEe0WmeJ7iv1dbXtY5deemnnxbhBz/9K7LUAZM2/fhO4Sv2BZDFnJ9Rk3085Ao6AI+AI9BEBJ3A1BFMOjYaX+2WOgCPgCDgCjoAj4AiMKgKWMEVGcLZAFGAVGQL8OJ8I4CE2eNmNwGWJENx79tlnV+eeey5fK5xXBHS0epB1EnGOIDROXwRiBatz4SgigEXgWeQKgl0YqSyNT+BIx3FGQkpAWEnrox/9aAjO8NtuAWSDUWeeeWZ1wQUXcEkQnF8EesmHiCI2IAvZjcAHzlGE8hKswXGI5FYzCyef/GfJKByaOXNm2DKOsk6cODFgpKAQ50Xg4rtdiYGt0VhZAkcwDlny/dKXvpTLqjgAbx2LrE5DEJvt3KxTiWA7W+4pqEUAm2CzxDqEc8EbsIgDV/3Gz5JbLIHLHiegRGA8JuGoLPosyZstexsCV2nfUF633HLLEKDQb7YE1XY4HJPzUufjN7BLyqq0Up8Wb1sPcr63IXCR/jve8Y6KVZIQ+jfOZAKn4IY+EvHI9uWUw9kG7nHif/e73w3bFnKcN3tFHuU5InDxnW3l1N4JEBDs5vnoAvoWukFiCVw2wM7zCOTeeeed4VLePv7gBz/YIdc0ebOeGy22bQhctg1AHEInEsxdeeWVq3e9610VK/RJWIHwuOOOCz+7PW+PPfYIW81xcSowwVvX6Cyrd0r1M8+weo60Iax2E3QgdYagE8EN8t6kSZMqdBmBGYkIXPxuOx5wj10NDsc/K9RI12jLEI1LBJ0USFcAinairSxJD7HtKO7bT1yR/8/b6hCDJfQ96p8VIRnTabv0f8iEktR2JupPth51fdNPayNwD6TFCy+8sGK7ZNoEeWWFKvq1pG6rV12jz5L+bYNIjHu81Q/ZGqHdsuoNfwgEbXCwpC9sAeqY7U/RH/QXApDUMUJ7I4ChoKzqmXNsX3rKKaeE8Xbq1KlhyzXZOZwXgYvvpe2qtO3U6Wrqp+0Wir2UYRB5sfqQ+mZVDvQh+G+77badVdni/qj6i49TPiu0Z+xRKzlyvb0m/s74QntDWKHlyCOPDPlkPGTcVzvjvAhcJeO5xaPN+GBXbgI/VqIlIL766qtXrC4pm578WTtxpMeAEl1uXyBA79EOGf/py/R5Ya9+yjiDnYC9ItIs5T766KMriMNIyg4OJ8w/tXeeQyAW3cIcoHQcs4F7HoMNxSopkLQIvn/4wx8O8wvOxcQIjuUkN3ewdvCgCVxWv7WxsahbdBh1iN7XSzy5sup4L8/Tyzy2LVGvJfatbUfME1lFukRGg8BFPkv6Y1351Gdyc4sUgYv0SsfV1DhQ2s/siubMYY466qjQ38kfq/Pir9ALBhBD41VCuc6K7ZcicHFeeeY7tgxb+9JnGM9p/yJwcl4ELr6XYtStTnIELjvniOfrSjPWUypbjsBFOSz5kt9t+j3XoytK9b6tk9Q8qRuBqx/2RGn7pOyy/61vjuMS6y9ifGHcYtVfhDERO0bjJQRibH+kRPfZOWBTX1dJHyvRUSV9pcReC+DV/FM/iW0I27dy/gOt+mr7kq3fNv5AsmjbvvUx1mTfTzkCjoAj4Aj0EQHGZQQbmbkk4zH+Dv74rt9NH7nIPKfV/y/t0PSuMXCdE7jGQCV5Fh0BR8ARcAQcAUegg0BM4NIJHAFywHAMYxCSlMQGZ1NbKHLd1ltvHYKUuoc0FZjQMd7c420+CBKS173udWHlEv3mPsTmxxIuOAchAwehhHtw2BFckBBYpwx6W9AGZrmGgBTnCHLYZ9m3YHGoQgpDeAYOUYxj+xwcITyH9LqJXd1DaVqMeIbyYglcvJ2P80jnuI6820ASxyAyWNKDdegob6wMQJlw6io9zpF/yoaQlsWTZ+E0kvOOa2zwxgYc7MoD/cTPlsUSh2zAmXwhMYnpiaPz/2+bNxu4akPg4qmlfYN77VvS/IZ4CAFREvdpCCK0Uytty2rvjb/n6kFOxVyQJefQB1cCzJZgRZ+wZAfKQ8Bc5Uo5nHGS4/xVG47zbdu31SfcR4DA9iWu1cTX9klL4CJ9++Yqv6UDbB5yTnGuj8Vim3PAoj/Js3XAEkzfaqutOsmRZ0T9m/4LYUW/CRLRJro9r4TAxXNL9DP32SAMukyEOM7VCTpHRL/4Olt/lsBVMh6AO45/q/9jbHl+TBBWAIr2GxO4bN0RzKd+28iOO+4YSFpN7slt0af+1AuBi+dbQkq3/PAWPHq8qZT271g/QsqiTdDf1R/4TWDjnnvuCfqDYDx2gYSx0JKrqUedp89jE7E90iqrrBICskpX9+vTtkURQzhX2q5K206drrbjqSXNqgx2lTkIapdffnk4VVqGQeQFYj2BJVsPVqeTYeoCIjxBQkldP9U1+rRjKsfarPahNNZYY42KVWZzYtsLekd2s30219Ae6+xS2054FvcgwifWYRofuIaA9MR5Lxh0E0vg4tqRHANKdDl5VNvjO6KVdO24x/G47UAwWHzxxTkVsLzpppsCMSNnB4cLn/xnA54csmSFknEsDtzrWbbtcIzfkKIhCjYRaxvoevKH/iSAj9g5gC1XisSgsT01xjB2kzYS65wSG8tuh0bdMZdqKiXPI+1cWyqxb+3K04wrTbbfTpVvtAhcpf0xVQaLbW5ukSNwlY5JqXGgtJ/RFklP8xn6IX0IfW1tCumeHAY6bvuZJXDFPgKut3aL/W4JXKUYqb3n6iQ337P2hcqk+brStDqRa1Qfds6je/UZ23nXXXdd2Mpa55t8lup9Wycp3QfGsuvjOaTyZcd0jrW1J0rbJ8+S/Z+bq2LrYn/Ec2TsB7Vr0onnFyW6L27H9BfsE/tsjllfV0kfK9FRpX3F1i1572avgWWd2PbGdeovdszO+Q9SBC5ecirxB/KSkH2m8sxYzjjv4gg4Ao6AIzB4BJzA1RBjJ3A1BMovcwQcAUfAEXAEHIGhQMA6uVgl6w1veMN8DhgySZCIFQvYBkjCW3asVIPI2aZz9nODDTYIq2ZZp47O81Yeq1ilJvasrkEg2hIfuA/nO9twQbiIpe5ZBCl40zV+m5VVDQhmKXBl04Q0olWxdJytMXDqsQVCSigTq3pYrFLX2WNsmQChJ84DwWNWyGLVMcQSuPjNKiq8TW+JLhxHeBsShw0rr1jB4cRWX7zhKYFshrHPaijbbbfdAvWPMwjs2GJReeFegj8QDPhEbPDGvsHHNkJalaaf+JFf5ccSuMiLfTOS3zNmzKhYaaZO2uYNZ7vKnnMOT5s2Lax6xHPj+qtrr3V9g7QgFKjecQRTDxK79U4cRNU1bcuq+1KfuXpQHmmL8eokpJNz6HMORy9vor/whS/k53zCqkSQHfRWLyfRI/SfOOhBm2XbV+vs5XpwYVtFVgJELIGL3ziAWUnH9hOO42w99thjw1ZWBB5Sznf7ljH3SLiX1YdwxKNbmojFNufATxG4SNvqdvssdBMOeragYxUkREHNbs+zAY1UYIL+QL+ICb88o6695/SzgrzcT9qWjMqxnFDf6Dm70hjX4vgnWMX2HuhCS+DifNvxgHvohzjQ7eozHEcIzDFe8WdFK+DI0W7PWXIFYwAYtBUIK+hg2nFKeC59iP6SEgVwUsH11PV1xyBkY1fY4KS9HozYtu6yyy6zhxt9L+nf2BS77rprZ7XM+EEEUyDy0FcljLXUsUgaOk6/YWy58cYbwxY/snMuuuiiirfPEXQtAfjnP//5nTGe+yAj8gzGfsRuvcbvknZV2nbqdLUNsMZbkpJPS+A64YQT5iNAlZRhUHnJ1SFloA0eeuih1e3zViqxUtdP7XV833zzzUM75zvpoX9KhNXZdthhh05bURrkDaI4eCOWwFUynpeMD8oL/Zm2pnGVsQ2dwopckETQrYzPrL5hZSTHgBJdjq6iHtWPWTXvoIMOCuRM7AFWyLFCuen76FLKSl9BpLdzdrBNA13N6pwigNq2UzKO2cA9AXQC00pbz+UZzA+uvfZaHer6mZs7UO+yg+0cAB2LLYqkbAWN7SlbwRK4UjqnrY3FOKi2KFuna4HNBW2fx625tsS5tvYt7UOrKqdWzCTNJoLdw/ZmyCWXXBLm7qn7Suc29j7bFnhGSX9M5Y1jdWME53MELs6VjEmpcaCXfsa96IacTcS8nVXzIFl1E9vPLIGL+yCQ4yOgvVnBxmF1KW1LaAlcXFeCUbc6qZvv5ebrSjO2k5sQuNDVKh9l4mWeNn4Z7kFvluh9Wycp3Ycu7Ubg6tWe6KV95ubTYCKhjTBHxwaPhXER+xeyaSxtdR/3l/i6SvpYiY4q6Ssl9lqMo/2dsyG6zedJI0Xg4jj3tvUHMj/P2QkiFJC2iyPgCDgCjsDgEJC+9RW4umDsBK4uAPlpR8ARcAQcAUfAERgqBGwQZ/r06YHYgDOAFbZ4uxGCAtsq9iI4wdhCjD8CoARFeKuat7W6CQQOViVQwJO81Dk1CXisuuqqIXCAowjy2ZVXXln7LIIuU6ZMCc5O8so2V5BECG6kyGXkGccoJDNWQyI/EGjmzJmTDYh3KydOIEhxOKrAhWdrdYW6eyGtrDxvWzQwgmzCvbz9z5uTdcJzWHWLIBvBJomwgIwABmyPo6XxuQZnHW/n4QAmmNiUiKL09dlv/JSu/cRJRl6ZyLB9TNO8jkTelM9e+obS6OVzJMtakk/6BSQj2p36WJN+ET8LZz59hP5CP6U9NJGVVlopBEC5D91DYAVd1E2YE5Jv8EU/sA0BK9MQOB1JmTBhQtg2DyITATWCoTYPBFgJboIpennQUqKfCUAxdvBGcBPsbRkoG/WAnoasxXjWLQ3pQOqu6XjAM8GaNobuxGly+zzCBdtTlgg44VjPEUObpkm9M56TJ9oh7R4McuNa03RLriOgMnHeyj3UBQEexlnaJH+9Skn/Bpt111036BYIG2yBSQCCMY/8xcI12AmMt9hG1K0dO+nzL3rRi0KwlH4m0rJNZ/nllw/YQyBFtt9+++qVr3xl+E6QWFtshgNP/mvbrvrVdmweev3etgy9Pi93P3VIG0TvQRKhvukPTYmhuXQ5brf0jFeeqLsvdY7xhnyi99AljDtNxr2243mv4wPBOoiJ4Cf7CmIAOKNrCATHMpJjQIkup0zqMjQfAABAAElEQVTgzjiJDrf9GF3KdpGUAfIlBFjpCuYbtCvmONgYTerLYkO64AaW0g8632Ycs4F7beWOflxvvfWCbmKcZ1xRfekZTT9zc4em9/fruhIbC0II42DqhYJu+Sp5Xl1b4nn9sm+75X1Yzpf0x0Hlvdcxqdd+BpGcNLAZ6d/oeeY4zKuZL/RLeA7PwDbB9kVvNZ3/9IpRmzKUztdzz0BHQxJlLMUvAumrVAap93N56tWe6LV95vIVH6eNMHbhq2PMw55n/Os2z2qr+6jHtr6ukj5WqqNK+kpbey3GPv5dZ0PE1zb5LSxK/IHDYic0Kadf4wg4Ao7AeELACVwNa5OJnYsj4Ag4Ao6AI+AIOAJjBYEUgWus5N3z6Qg4Ao6AIzB+ESAoTtAVwuhnPvOZ8VvQqGTaYpWVoCAgu4w9BCDgsIoo8utf/zqs5hmXgjYNkQwSCCs9iAwSX9fmt7edNmj171oIpgS6EK1q2r/UhyMltkSFFM9Khqy6FAdpCXTvtttuIbOzZs2qTj755J4zvrCOAaXApQL3pWmNp/sg47MaKyumsbqRiyPQCwLez3pBb/D3spoSK7Eh8Qpjg39670/o1Z7w9tl7HXgKjoAj4Ag4Ao7AWEPACVwNa8wJXA2B8sscAUfAEXAEHAFHYCgQcALXUFSDZ8IRcAQcAUcgQoBtwphfswUhq4ksDLL++utXbNnESiH77bdfIK8tDOUeb2Vk9RVtk0NdssKWnGqUlS1MWRUHYTvFb37zm+F7L/+87fSCXvt7qWNWaLLEpXhb1vapDu8ddqsrSImnnnpqJ7OsoMKWVdoW7Ctf+UpfVpJZGMeADqgFXzxwvyBorPbCFmqs4sJWqf1Y9XHBp/iRhQkB72fDV9uMx7zsQX9nRXlW4WIlxdLtjEe6hP20J7x9jnTt+fMcAUfAEXAEHIHRR0C+Jt9CsUtdOIGrC0B+2hFwBBwBR8ARcASGCgEncA1VdXhmHAFHwBFwBJ5EYPfddw9bws6cOXOhwWSttdaqNt5440COYEsdl7GLwN577x1WLKIErK7FFjOsKMSWSWzvghBwZJW5eNu0cLLlP287LQHr8fLPfe5z1ZJLLhmIIUoKIh6EvPEokyZNCitsQYRB2Er00UcfDdsGEjSXXHTRRdXpp5+unz19LoxjQC+AeeB+QfQgRkybNq0655xzwvaRC17hRxyBdgh4P2uH10hcjT+Lba41PvHM888/v5oxY8ZIPL7nZ/TTnvD22XN1eAKOgCPgCDgCjsCYQ8AJXA2rzAlcDYHyyxwBR8ARcAQcAUdgKBBwAtdQVINnwhFwBBwBR8ARcATGEQKQtfbaa69qwoQJyVJB3mKlooceeih53g8ONwIEXJdaaqlOJi+55JLqtNNO6/wej1822GCDavvtt+8QEOMyLgwYxGUept8euB+m2vC8jFcEvJ8NX81afxa5u+uuu8JWv8OX03SO+mlPePtMY+xHHQFHwBFwBByB8YyAE7ga1q4TuBoC5Zc5Ao6AI+AIOAKOwFAgsMwyy1S8VY9ceeWVYdumociYZ8IRcAQcAUfAEXAEHIExjsCKK65YTZ06tcLeQn7/+99XN954Y3XPPfeM8ZIt3Nlfe+21g/384IMPhpUC77777oUCEFaPY5VA2jUEtvvuu6+aPXt2wIAtq1xGD4HFFlssrEJDDtgqkFX/XBwBR6C/CHg/6y+e/UiN8WjdddcN2ybedttt1c0339yPZEcsjX7aE94+R6za/EGOgCPgCDgCjsDQIOAEroZV4QSuhkD5ZY6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj0BgBJ3A1hMoJXA2B8sscAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR6AxAk7gagiVE7gaAuWXOQKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao5AYwScwNUQKidwNQTKL3MEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcgcYIOIGrIVRO4GoIlF/mCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKOgCPgCDgCjoAj4Ag4Ao6AI+AIOAKNEXACV0OonMDVECi/zBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEHAFHwBFwBBwBR8ARcAQcAUfAEXAEGiPgBK6GUDmBqyFQfpkj4Ag4Ao7AqCHwute9rlpmmWWq+++/vzrvvPNGLR/dHrzRRhuFfD744IPVxRdf3O1yPz/GENh8882rxRZbrPrDH/5QXX/99Y1zv95661WTJk2qHnjggeqcc87pet9qq61WTZkyJVz3ox/9qOv1g7zguc99bvWqV70qPGLWrFnVvffeO8jHjdm0F1lkkWqLLbaoFl100WrOnDnVDTfcMGbLMtIZf8YznlFttdVW1XLLLVctvvji1cknn1zdcccdI50Nf15DBF784hdXkydPrh5++OHqwgsvbHhX/WWDSLP+id3P0pfR+U996lPDxdgef//732tvfMpTnlJtueWWFZ+I68xauAZ2ciyOW69+9aurF7zgBdVf//rX6txzzx0YNk0SXnbZZavXvOY14dKZM2f6uN8ENL8mILDSSitVzIWQk046qfrf//4Xvtf9K53jjeU51zDoqNI5TV1d+rmFG4FhaNcLdw146dsi0NZH0zb9hf36sTxO5+oOvxi6rkSwqfF1lNjY41W/pmyRXFk33njjaumll67++Mc/Vtdcc01JFfg9joAj4Ag4AkOEgBO4GlaGE7gaAuWXOQKOgCPgCIwaAl/5ylfCZPdvf/tb9ZnPfGbg+YCks8IKK4Tn/OlPf6oef/zxRs9UPh999NFqn332aXSPXzR2EPjOd74TMguB6+CDD26ccdrs8573vOof//hHte+++3a9793vfne1zjrrhOv23HPPrtcP8gKcVNttt114xE9/+tPq0ksvHeTjhj7tJZdcMjjtCErOnTu3k9+nPe1p1YEHHhh+33rrrdWhhx7aOedf8gg8/elPr770pS9VfEpOOOGE6qqrrtJP/xwyBKxO+OIXvxgIJ71mcRBp9ponSJlf/vKXqyWWWCIkddttt1Xf+973apN9+9vfXk2dOjVc85///Kfab7/9qscee6z2Hj/ZfwRsexor49bnPve5aqmllgokQdrNSMiECRNC+8Y2seRsix8k8iuuuGIksrNQPyNnW4w1UKwO3GuvvSr0YDfR3KntHE/39TrnKp3zdStX3Xnbx0ZLR5XOaerKNRrnRqP+RqOcI/nMiRMnBiI6Lx499NBDjR89DO06l9nSMuXSG+vHS/tN6X3DildbH82wlmM081XXJvo1To9m+eJnMzd85jOfGR9u9Pu4444L98q31sbGHmb92qjwmYtStkiurF//+teDzwj/vPxumWT9sCPgCDgCjsAYQMAJXA0ryQlcDYHyyxwBR8ARcARGDQFN/ts690sz/MY3vrHiDznmmGOq6667rlFSymevwYRGD/OLRhyBlIOhSSbaOgedwNUE1dG55uMf/3j1whe+MKwq8bGPfayTCSdwdaBo9QWiIu0dgRSHjj/xxBOrm2++uVU6fvHIIcDqUjhNWZnq6quvro4//vieHz6INHvO1LwEWBlst9126yR1yCGHVL///e87v+0X3hZG10P8Qk477bTqkksusZf49xFCIOf4H6HHFz1mNAhc9GPGLlbTmz59eiffFr82waVOAv6lNQI526J1QqN8w1gkcJXO+XqB2vYxJ3D1gmQV5uslc/benjp+78aW2X///UMBf/vb31Y//OEPGxd2GNp1KrO9lCmV3ng4Vqr3Su8bVsza+miGtRyjma+6NjEefaNf+MIXqmc/+9lFkDuBa0HYUv7V3FjiBK4F8fMjjoAj4AiMZQScwNWw9pzA1RAov8wRcAQcAUdg1BDQ5H80CFw/+MEPGm+XxzYgbD3DFjhnn332qOHlDx4MAikHQ5MntXUODhOBi/ZMu0Yuuuii6q677mpS5HF7TS7ICmmDwCWkFshHvoJUsyaw4447Vq94xSvCxQSJCBa5DD8CO++8c7XGGmtU//rXv6q99967LxkeRJr9yNguu+xSrb766iGpOhsEHLRy53333VcdcMAB/Xi8p1GAwFgct5zAVVDR4+iWnG0x1oo4kgSufs25bPC5zZyvl7oZBh1VOqfppdyDuHc06m8Q5RiWNHshOw1Du07h2EuZUumNh2Ol/ab0vmHFrK2PZljLMZr5qmsT/RqnR7N88bOf8YxndFZntuemTZtWsZoqcvTRR1esEhXLI488Um2wwQad1e3bvCQxrPo1LmPb3ylbJFdWJ3C1RdevdwQcAUdguBFwAlfD+nECV0Og/DJHwBFwBByBUUNgrBC4Rg0gf/CIIJByMDR5cFvn4DARuJqUb2G6ZrwEWYelzt73vvdVa621VshOv7bjG5ayjed8QFQScYu3ia+55pqeizuINHvO1LwE2N4TMtaiiy4akjvnnHMq/qy8/OUvr3baaadwiJXk2BYUIreLI9AUASdwNUVqfF43XmyLkSRw9asl1AWf+/WMYUyndE4zbGVZWOtvUPUwHslO47FMvdZ/ab8pva/X/A7q/rY+mkHlYyynO97aRGldsP35MsssE27/5je/Wd15553JpOzqUm0IXMnExsHBNraIE7jGQYV7ERwBR8ARMAg4gcuAUffVCVx16Pg5R8ARcAQcgRIEVltttWrDDTcMt/7qV7+qbr311vmSec973hOCoazeEW+/xMR3q622Cteff/751R//+MfKErg+//nPV+utt14I+hPw/cc//hGuueCCC6q77757vufox4orrlhtscUW1fOf//xq8cUXr/75z39WGAps/3TxxRdX//3vf8Olz3rWs6q3ve1t1XLLLdeZgN9zzz3V/fffX5111lnVvffeqySTn7xlhpOQfMRbJy211FLVW9/61pD2M5/5zOqxxx6rWKWDlXp+85vfJNNbGA/yVttb3vKWauLEieEttv/85z+hrsDzsssuS0LCSjCvfvWrA7bUL22CujrzzDMXePuNYPy73vWusM3V9ddfn1wp6fWvf331ghe8INTPjBkzOs+sczCwBdgrX/nKirZPG37wwQfD1pu0sU984hPV8573vJCvfffdt5Ne7ktM4MLRM2XKlLC6G33mz3/+czVz5szabebAjz7Idn9LLLFEuOfGG28MbY2211SWX375gC3XQ1p46KGHwq3bbLNNaOtz584NK3NBYJg6dWrF9azS9etf/7q64YYbwrVsQwY2K620UuhrnKc+b7vttnBe/7bbbruwndPs2bOrW265JaS39tprd/DkGHUKQSIlTft5fC965E1velNYPQes0A+QL37+859Xf/jDH8Ll0mkveclLKtooQvuhPnC+kSd0B3Lttdd26mb99devJk+eXD3wwAPV6aefHlbyASfyympdYIEOyK08xbNe+9rXhq3c+D5nzpyALfdxnGPcm3rLM2TG/Nt4441DH8GhSP1QZ+hS2gjbvt5xxx0hj5pEmVs7X1ktC8IVmCGkBQ4QeOJ6oe74I70f//jH4fsb3vCGirkHbYk0Vl111WrppZcOaVGOxx9/vKLPsdKRpE3/5p73vve9ne39WA2N/k5/+Mtf/lIdfPDBleoEPXHyySeHc/Qx2int+4orrgj9hLpFn6PXV1555TB2oFfI5+WXX67szfdJ2Ri/uB49z9jy97//PWy7x6qMfLeivPTSPtrqS94Ofs1rXhPKzbjE28DgNGvWrICRzV/dd20hwXiHQ9UK+lCEJrCi3VL3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4xwBza3rK1Dzo3qMFEIIDBoBCFzzzz9/Jxm993eg0IEQEAJCQAi0REAEroaAicDVECgFEwJCQAgIASEgBISAEChGgC2gVl555bDAAgsEPPf89re/jYboJ554ojhOPSgEhMDwEZhzzjnDxhtvHJZaaqm4iMv2qHfccUf0CvSvf/1r+BkaYynOM888Ya211oq5uuuuu8Lf/va3MZZDZWcsI8D6zCabbBIgP0+aNCncd999sW/dfffd8lI5litOeRMCQkAICAEhUIiA5tb1wGl+VI+RQgiBQSLAeh5eAx999NH4bjJjxoxBJqe4hYAQEAJCYAIjIAJXw8oVgashUAomBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEQGMEROBqCJUIXA2BUjAhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEGiMgAldDqETgagiUggkBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASHQGAERuBpCJQJXQ6AUTAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICIHGCIjA1RAqEbgaAqVgQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACDRGQASuhlCJwNUQKAUTAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCoDECInA1hEoEroZAKZgQEAJCQAgIASEgBAaIwCte8Yqw9tprh5e+9KXhwQcfDKeddtoAUxs7Uc8xxxxhu+22C3PNNVe45557wvTp08dO5mZxTtZdd90wZcqU8Mgjj4TLL7+8dW6e97znhfXWWy8sv/zyYckllwzzzTdfeOaZZ8ITTzwRHnroofCjH/0o3H///dl4eWbVVVfN3rOLjz76aPj9738f/vjHP4b//e9/drnzu9FGG4UFFlggpnnRRRd1rucOaAfbbLNNmHvuucNf//rXcO211+aC6ZoQmGUIrLHGGp0+ceaZZ86yfCjh8YkA6y6bbbZZQNfd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y0a2KEDY3urEE0+M2wN0AupACAiB2QKBI488MpbT5hOQOT/5yU+23vZotgBrnBdyrIwHanPjvCEp+0JACAiBPiLAO/58880XP1CzaI844ojwwAMP2Gnnd4011ggbb7xx+O53vzuhP1zrFFgHQmA2QOAtb3lL3DrT3kUo8o9//ONwySWXzAalVxGFgBAQAkJgViAgAldD1EXgagiUggkBISAEhIAQEAJCYCYCRuAyMJ566qm47dEjjzxilybkrwhcE7JaVaghILDHHnuEtddee4RhxJKFvHXSSSeF6dOn2yX9CgEhMBshAJnGDCbPPPNMOOWUU8Ktt946GyEwexV1LIwHanOzV5tTaYWAEBAC3RCwd3wLc80114Tzzz/fTvUrBITABEcAAhdrFSazw8epVlb9CgEhIASEwKxBQASuhriLwNUQKAUTAkJACAgBISAEhMBMBNgODY86c845Z7jvvvsi8QKPGRNdpkyZEhZaaKHw5JNPhl//+tcTvbgqnxDoKwK8c22yySZh0UUXDZMmTYq64ze/+U24++67oweuviamyISAEBg3CGyxxRZh/vnnDw8++GCcTzzxxBPjJu/KaBkCs3o8UJsrqzc9JQSEgBCYiAiwpTvv+Y8++mj0BjxjxoyJWEyVSQgIgQoEllpqqbDOOusEtk1kbeLOO++sCKnLQkAICAEhIAT6g4AIXA1xFIGrIVAKJgSEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhEBjBETgagiVCFwNgVIwISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBBojIAJXQ6hE4GoIlIIJASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEh0BgBEbgaQiUCV0OgFEwICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAiBxgg0IXBNnjy5cXxzrL/++v9rHHocBRSBaxxVlrIqBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIATGCQJtCFzPe97zakslAlctRAogBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBB4FoGmBC7IWy94wQtqYROBqxYiBRACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACDyLgAhcDVuCtlBsCJSCCQEhIASEgBAQAkJACAgBISAEhIAQEAJ9Q2CllVYK/CEXXXRReOaZZ/oW97Aj2n777cO8884b7rzzznDzzTcPO/nwqle9Kiy00ELh0UcfDVdfffXQ0x90gksvvXQsI+mcddZZ4X//+1+jJPlic+rUqWGxxRYLkyZNCmeffXa47777Gj07kQPtvPPOYZ555gl33HFH+NWvfjXLi0o9ve51rwtzzDFHmDZtWpgxY0ajPJU+1yjyikCzuq9XZEuXxykC6667bpgyZUp45JFHwuWXXz5OS6FsC4HBIcC4sN1224W55por3HPPPWH69OmDS6zHmNuOD/PNN1/YZJNN4tj3u9/9Ltx+++2NcjCR5s+NCvxcoFmtL2dX3OvqaI011girrrpqDHbmmWfWBdd9ISAEhIAQmM0REIGrYQMQgashUAomBISAEBACQkAICAEhIASEgBAQAkJACPQNgfe///1hhRVWiPF9/OMfD//+97/jMcSSJZZYIh7/6U9/Ck8//XTf0hxUREceeWQ0wP32t78Nxx577KCSqYz3sMMOiwSlp556Kuy3336V4cbrjV133TWsv/76Mfsf/ehHw3//+9/aosw999zhkEMOCfyanH766eGmm26y09n219orBK7jjz9+luOw/PLLhw984AMxH+eee2647rrrGuWp9LlGkVcEMuxmVV+vyFbry+NRz7Yu5Dh44NOf/nRYcMEFw5NPPhn233//cZBjZXF2R2Dy5MmBLW0gHT722GMDh+P5z39++MpXvhLTueuuu8Ixxxwz8DRLE2g7Przyla8Me+yxR0yuzZhSNX8uzfd4eW5W68vZFfe69uFx2XfffeuC674QEAJCQAjM5giIwNWwAYjA1RAoBRMCQkAICAEhIASEgBAQAkJACAgBISAE+oaAX/D3BK7Xvva1gT/k5JNPDr/+9a/7luagImprtOt3PkTgGo3o2muvHd7ylrfEG3js+vvf/x7OOOOM6CVtdOjZ64q1VxG42te7YdfG2N4+lcE/MR717OBRGX4Ks5qQMPwSK8XxjMBLX/rScOCBB8Yi4L3x1FNPHXhxROAaDXHV/Hl0yIl1ZVbry9kV97pW5HERgasOLd0XAkJACAgBEbgatgERuBoCpWBCQAgIASEgBISAEBACQkAICAEhIASEQN8QYMuNl7/85TE+ttywLRQ9seCkk04Kt956a9/SHFREs5rUseWWW4ZFFlkk/O1vfwuXXXbZoIo5y+It8cCFVwu8WyAYmcfCVoGzDMAkYWuvInAlwDQ4NewmEoFrvOjZBtUz7oLMakLCuANMGZ6lCMwKAhdbKDIHmHPOOSMBeyx70Ww7PpR64KqaP8/SxjGExGe1vpxdca+rWhG46hDSfSEgBISAEPAIiMDl0ehyLAJXF3B0SwgIASEgBISAEBACQkAICAEhIASEgBAYKgIicA0V7nGRWAmB6x3veEfA2IZ8/vOfj+S2cVHYIWTSjMwicLUH27ATgas9dnpiNAKzmpAwOke6IgSqEZgVBK7q3Iy9O23Hh1IC19gr+XByJH05HJzbpiICV1vEFF4ICAEhMHsjIAJXw/oXgashUAomBISAEBACQkAICAEhIASEgBAQAkJgjCCw3nrrhVVXXTU8+eST4eyzzw6TJ08Or3nNa8Lyyy8fHnvssXDDDTeEX/ziF+Hf//53wOCGh6ZlllkmTJo0Kfz5z3+O3oiuv/76bGnYrmannXaKcS6wwAIxDJ6dIHtceumlo56xvDzyyCPhggsuCCuvvHJYf/31w1JLLRU9Jvzxj38MeExIPSCtueaaYcUVVwxPP/10+P73vx9e/OIXh1122SUstthiYaGFForpPPjgg+Hhhx8OP/jBD2K+LXHub7fddmGJJZYI8847bywn4a699trwy1/+0oJ1frfZZpsY75/+9KdwxRVXhO233z6stdZaYZ555gkHHHBAJ1y3A9ZPXvWqV4UVVlghcEy5KNP06dPDV7/61YCXiCpSB0Y6yETkF3nggQeiZ7Gbb745sL1fTqZMmRLLSP2RTxa6qLsf//jH4Q9/+MOIR6hfws2YMSNcc801I+5xstFGG8X2Qn2CKW3jN7/5TaAOFl988XD//fd3PJ1Rb8T33//+N7at+eefP2y66aax/bzwhS+M9XHnnXeGH/7wh6PSsQu0xw033DC87GUvCzzzl7/8Jdx2220x3X/+858WbNQvHtle8YpXhCWXXDK2C/JIW95qq61im+KBj370ozFvox5+7gL5p55oWy95yUviVeqJdnbJJZfErRTt2VVWWSViQ5ujb9CfwPjiiy8OtJVU3va2t8U2TRsDg9133z32k7/+9a/h61//eho8e/685z0vbLHFFrGv0o7po7/73e9iH/n9738/6pkdd9wx1u29994bpk2bFvGhf1FvtMGf/exnsQ3yIP3/1a9+dVh66aWjRzvu0x7uvvvuEfGakZk+fd5554Vtt902luNFL3pRePTRRwP5OP/88ytxblsGS5x6RV8su+yygThIh/qde+65wwc+8IEY7Nxzzw3XXXedPRJ/S58rzWcvfX1Ext0J+pl6oz+RL/Q0bQzd949//COGRHdusMEG8Ri9cuONN7oY/v8QQiP9im1Bv/vd73ZuNEmjjZ5ti98g2iqFm2uuucLrXve62L6pG7w10udo1/TpKh3aASY5wJMPOg6dzPiB7qbvoxsZ49ABXnrVieBIv1xppZXi2EYfY2tg9MjHPvaxsOCCC8b0999/f59s9njRRReN/ZWbF110UcSG9oAuQa9zzaRt/fFcKdabbbZZ9Ki58MILxzieeOKJOK7Qn1OdT39Hd4I7HjZzHpXQ+fT7hx56KNaxlampDmasRa/xS1/517/+FUm8F154YdQ7Fp//nW+++cLmm28edSH9lDKg53/+85/H9ubDtjkuyUubsYl6fvvb3x6zxLzunnvuCVtvvXVgDkHbor0xZ8A7p+kan3/K+sY3vjHOkRgDqC9wp15oUya0M8ZUxlaEuEjrlltuCcxlmE/wx1yFeueYfNBnTzvttBHbFzP/2njjjWN8zDmfeuqpqBOvvPLKcPvtt1uS8ZfyMTdESIs6QUrnnvHh5/6VzM36OT6UErjA1s+frUymg6nvn/zkJ/G9gHkVeoM5EHM95hHMQb28/vWvj2NT2t8szOqrrx49mv7nP/8J5jGXvkgfRqi3++67z4LHX+ZVfJDBM7QV5hRNpBd9Obnh3JN8MYdC0Am846Tyghe8IOy2227xMvOvq666KrbpHO72LPXC/JOyo0vpS8zD6A+M+Tlpmmf/bJv3A/+cHdOG6fMIffjqq6+2W/HX48N8mPcrL2xPTr9ljo5+TAlcvJ/Stpdbbrk4PjPXQZcw7lVJm74Izvw10TWD0utV5dB1ISAEhIAQqEdABK56jGIIBmyJEBACQkAICAEhIASEgBAQAkJACAgBITB+EPCL5RAg1l133VGZxyDN1lh77bVXJJ2kATBGYLjwgqEaIgWGi5xAGDjuuOOiQcLuW14g/ECgwiiXEwzjP/rRjzq37DkufPzjH48G6E984hOd+/4AIz3EJQRiEIYHMxz5cBxjRDr22GNHGI0/97nPRUM9hkyMshBcTPbdd187rPwFl3322ScaZNJAGP0xjpGflMCFoZpyYqDJCSSEww8/fEReCYdhDONETiArQEK7/PLLO7cPO+ywSEDCCLrffvt1rmO4/vCHP9whxHVuzDygfWDUxnj7+OOPh4MOOijehgSy8847x2PSwJCOQS0VyDc50hJEi6o2QHo8g0ErlXe+850BI2EqlBdCBQYxpI7AhQF+6tSpaTTx/PTTT++QBSAQrLPOOtlwpIkh3JNjCPi1r30thscIBRkDYh2CcbIJERCSBe0IEk1OIJqx3aMXq1sWOjHAYpBPBQIYhjSMt6lQlhNOOCESMO2eEbgwWlL/EFpSoS0dffTRo+qqpAzEDYGFdpXrt7QlSF1ISuAqfa40n6V9PWY+8w9saRtGhk2DYNz+1re+FUkJYLD33nvHIOhavI2kAqkF0g9i/bZNGhitm+jZEvwG0VbRrfR5jMU5AQPac5VxPH2GsY3xAN1cJRAfPBGqF51IeuCdq3/6MwRO9AH6uAmBC4KrkXXQzxBkrE+hA+jrSEn9lWDNGPOhD32oo59TTJkXnHPOOZGoafcgAdl4A1nnxBNPtFud38985jMRM8YM316b6GAIxzvssEMHl06kzx1AOID47gVcISXkdCE6FKJrSiz1z1cdl+Sl7dhE3/jKV74Ss8AYAsGEekmFceoLX/hCbGt2r24+ddddd8U5H6TJI444IosP5JajjjoqtktwBC8I3rRNk7POOqtDBmO+Z2R2u+9/mR8wLzLx5SM/xxxzTLxlc8i2c08eLp2b9Xt8KCVwWdkpC3iiRxDTwRCxIA9Bok+FuvzmN785gsj45S9/OWJSNe5AZLL3DPQnH2wwd7a5LfqLcY66N7F5N+dV/dzC2m8v+rLN3HPPPfeMczjS5R0KUloq3hswRFPep6pwRwczh7Vt4dO4wOWUU04ZRWBqk2eLs+37gT3nf2n/X/rSl6KOpJ186lOf8rfjRyk27+cjAE++4/2J9woEkvkZZ5wxAhfqGgJXTiCsp2Sxkr7IGNhE1wxKr+fKpmtCQAgIASHQHAERuBpiJQJXQ6AUTAgIASEgBISAEBACQkAICAEhIASEwBhBwBsRLEsYVDDi4AHDDLp2D4MNZA2+RPaGawgCGGwQPC+w1Zwt2nOdr/QxqGBss+cwOkMSIk4klxeexaAO2YTnTfxWdv45DFAYsTGq8EteEIzzGBcgcOGRBoIPRhITCFB4ncJYvcgii3TybgZFC+cNSXaNX8rwkY98xF8adYzh/cADD+xgirGQdPHYhPcWLymBy4zQhOE58oqB2LyUcJ3yEQ5DNYKRzL765xkIYhjjeAbyhgnkGog7iBntUgJXWm7Ia5SZduDbiBFBiMuTFThHaFd40WINiWdNPLGOa97wjMGKfJMn6ga8EK5/4xvfGGE8fNe73jXC8EU+MTZT5tSgXkfgwnCE8R5ikhGsyDsCkQCyEIb6tddeO14jP9QL/YN2Tn0bNngewLOEiZEH7Nx+6Xtg3U3S/kW9U7dgivc0SzNtu1a3FrfhincHnkuFdkR9Ug7Djj77yU9+shPUCFx2wdoZeYDEYc+lpJLSMuBV6k1vepMl1/G2ApHD6wcCeAJX6XOl+eylr3cKlxy8+93vDquttlq8Sj3gAQVcIQKQHgL+6FTq7otf/GIHE68vY8CZ/3zbhRALMbZNGmBTp2dL8RtEWz3kkEM6hEf0AvjRPiG7Wf/GOwjElCbiySPoGPQB8UBs88RK6sE8cfWiE6lDW3un76Ir+PV9nnynfa2qLBikMV6nQpx4J4IAWlp/JVgffPDBUdeSH8YJ5gy0c8YqX24IIug7pB8ErhiR+2c6GOIzBAcT5iIQgkiTccgE0ph5esITG1vumjB3IT7mL36MhzDnidMWvuq3JC++f1OnTcYmT3CyvPAs7ZdxgnLkxhfqh3GLe4RnDKT+6Ad4zrG5IMQ19DLkUvAwEjH1DFbMzZgL0C5pnwjxWZocQ57G4xzeT/FAiaD38KKH3mPspY7sGQhgeF5FfPlyBK4Y6Ll/TeaeBC2Zmw1ifBgUgctjwnwVjGn/NrZz7omRJQQuxm50Bm0MwcMSRD0EL76bbLJJPGYOyLsG9V0npfqy7dzTk6WrCPjM+22OZeNB+t5ixDm/ZTftHf3BuIQetHGF8tPuSA9pm2eeKXk/4LmceN0N+c7yBenPvxcxf2ZsN+EDGryMIcyJ8fbmcbFwzEP5aIb3M8YkE9L1hOuSvthE1wxKr1s59CsEhIAQEALlCIjA1RA7e5lqGFzBhIAQEAJCQAgIASEgBISAEBACQkAICIFZjIBfLMdYgDES7xsIX4BDiDFhAZ0vrSGMIN5AyFfnfH2OvPe97w1s24OwRQ2etkww+ngvMvbVNffTvEAqMMMb9yEmmOEUL1oY+hD/nPcg4L9654t3vnw3wUhvhgC8h+FFzASjImmZgerb3/52Z2s5T2QCL57DEIsRq078l/oYN/E0gdccBBLQHnvs0TE6egIXnoPe8IY3xHAYc/BeYQYSDJLk1Qgc3jCM4cS8JniSFhF54703ZBpxwhO4MLDYFinUPUYTawPEj9cU8oF0I3BRJjwEmaEKL0oQGhC2RTHPHxi6MNJhgAUfcAIvk7e+9a1x20rOIWGw7SQCIYy8mRH55JNP7tQ5pEEIW9Z+CF9H4CIM4g1q/hmfHgY18kl+TPDKhWENgeyGEc/qzRO4eBbPA3g8oU3ViW/vePCinCaQpvCqZIZQ6tNIZ1a3hMVgjqEVQzvi+zLnGNJp9ybgCpENIX5rt57ARVzUhZWR8LRNI8d4z3mlZTj00EM7HmGmzdy+ia1WTdgaCy8wJp7AVfpcaT5L+7rlPfdL/6Cf0V7wcmH9iLDeCImHHzwYek8nRpzw8Vp7oM1RT/TptmkQXzc9W4qf5Y34+9FW0enmhSwlaUEuwYuTEUohKJJmN4F8YkRLSA2MJ77vQvxkK0DE6+SUwNVUJ3odDEGLMcD6Ln0eLybWz0oJXJDa8LrlvRqW1F8J1mxh9+Y3vznihSEGPG2M4aLXT0aw4nq/CFw5Hex1hp9vkK4nD0EcwgsR4p/x+od7lJGtAxmfUtIL97uJj7dJXkrHJk9wIj+M53i6tLbG1qzve9/7YlYZA8yDn9cBbMXrPU5COoFMQ7l922ScZ0xEUo+RXp9xH4I5hEJIVSZGFKLuPJmF+5444ucIvnx+3uPbOf246dyzdG42iPFhkAQu6pp5hhEVqVN0ps37jJQE9lYv1JXpXK6b+HEJHUp/RvyclDpAx5Eu+tjmdMyxIPnUSam+LJ17+vEKIhpjggnvGUYKRsfSVhHf5uy9BX3GfSsv83a/bTX9zT6+sPeW0jyXvB9YmdJfP/ey+Qdh2E6TbddN6KvMoU1oH4wXXpd4XGgH9HsIxSY+356cWdoXm+gar3/7qdetTPoVAkJACAiBcgRE4GqInQhcDYFSMCEgBISAEBACQkAICAEhIASEgBAQAmMEAb9YfvPNN4fvfOc7I3LmCRoYKYwMQiD/5bl9MY9BBwMOBggIBhgmUuFreww+CIZy8+jj85ISSAjrveh4g59/zgwhhPdGRU/ggiyFQRhJt9iJF2f+W3/99aOxlXO/xZ8ncKUEEns298s2RBhxwAUjBh4L+PXitzPxBC6wAjOMGRBpMKp6IW4MDIg3EH32s5/tkBK8gc2eZYtLDHEYiL73ve/Fy2aI8gQu82RA+hB0PJmKh3y9VBG4WFwzY62lD6mKtoL458jX8ssvH6/7rQrjhef+mUGFPEFmoR1571u5uvF1QDSejOXjTo+rCFw+PW9I8s9j7MbojbCVGluqIZ7AhYGcNtZEMMxTr0gOU6574yWGr1NmbreDWN1y7PsD556sCbmAPgm2Jt5TAoRMiJmI6Yeqtuk9F+BFjXorLYPvt3jggUyaim/zZmgrfa40n76dte3raXn8uWFN/UCC9QQuyHJGrKCNQYz1BAmvF4jTb3+Idx3Tx23TIK4qPVuKH3H2u6369u0JHaSFrLXWWmHLLbeMx5BMjbASL2T+TZkyJXof4xYGa7bS84KR3cgtntDiCVy5/lulE00HkwZ1xPa+Xnw/8yQZHyY99oQJDOiQ+HybKq2/Eqx9+XJjFXln/DTStXl56ReBK9XBnnybEv7IC6Q/yI6QvG0Ow3a/bGOG5OYvXPfEHfSyJyZwPycleSkdmzzBCZ0OmcQMY5Y3Xw+2bbQnVXvCoj0DLiussEIk9xrZzesnP5/jGU+qqNL16H/wv+222zpjnKXHr23TCJkGUg3iy1dF4MrVnZ/j+LyWzM0GNT4MksCVm4f5uQ3kLsjkSCmBi2d9/2DMgvhuxPEcCZlncuL1SRt9WTr39AQmr+/JG9twsx034ueJufcW7wEzV16/5aARR0vz7OdKOZ2bez+Ihcj8w+udvev5j3YYU/hoAl3Cuw9Cv+QdgnPeJ/iFlGdzYo+Ln79asn5+22tfJM46XTMovW7l0a8QEAJCQAj0hoDNUyGOMy9kXGGezh/H/E2ePDmep966cynPMXMR8P9XQHIhxuk1EbjGacUp20JACAgBISAEhIAQEAJCQAgIASEw2yLgF8uPOeaYgFHLixlj0i+nCcN2FhhSkTvuuCMcf/zxI0hdfnE9BnL/ML7hMYSFfbyHID4vtsjvHolepuzrdW8k8M81IXB5Y0tKZLH0/FfznlxkBC7yzZfg/DYRb9TOEeWIw3t1MQIXi0/mYcoIMLn0bMsqj6c3sGEIo46uvvrqUXXs4zPihCdwkT756EYMMGOpx8qTFUj3+9//vk8qHlv78nGb8Y08g3FO3vOe9wS2OETMQ5oZpMAA8kRKkCMsBmcW8ZBeCVy0ffoA6UHI8+SHmMDMf5vM3PqHLYAQX+9mrPJ4xUA1/7yRFi9LkEdSoV8ZuYntZSD9IVa3vo3EGzP/saYH7kjOYL7ddtt1CC5sH3n99dfHsEb4YXsuI+PFG+6feXWyNlVaBk8SsDp3ycRDSDjkFTECV+lzpfks7esx013+eeIEpJGbbrop/PSnP+1sz5d71PoE9zjGiyLiPRp5jxklaVQRuErxI3/9bqueNEz84IChHeKVLfxzvRdBRy622GLR+8+2227b2fbPG/RLdaL1s276IqdLu5XHE7hyY3Vp/ZVg3aR8H/zgBwPEOcT6fz8IXDlM/RwhR6QgDxDYISfwPF5LPWkK/Q4pIRW/bRnbAJ522mmRLL7iiiumQeN4iw4ryUvp2OQJTp7Y6TPnPeBwzDjtCU6EhaBxzTXXRIJablwkTFMClycH8Vw3IU62lGXctXG+LYGr6dyzdG42qPHB91ebP3bDyu5VzZ9NB+fm/jzr9b6NtVw3PdTWAxfP4jmUMci8CXIN8fOYZ690/99En1g++zH39GTXtNw2BjPvso8NyH0Od+u33E9JpVxD2E4VHcvHJ/Sz0vlyyfvBsznI/8/hae8FEMohoiLohfPPPz9+2GCkcz8H8bjwTsl7ixc8ToIjYu+BpX2RODyBK6drSvU6cUuEgBAQAkJg8AjYe5wIXDVYi8BVA5BuCwEhIASEgBAQAkJACAgBISAEhIAQGGMI+MVyjAe2/Zll04hW3shh93IErk033TTsuOOOMQiEHYg7OfFbgdjX3z4vLND7LZSIwxuGvYHKP9eEwOUNwbl0LL+HH354NCj57T2MwNV2C6RtttkmbL311jFq74nJ0rJfMzxZ+fxWQITBCJQTvi40sS3AqB+IRRhlvRAHntQgFGFM8Tib0c7INh7zHLHH4jUCmTeGe7ICW93hFSsV82Dh25cZfQjbpLzWzowoZB5R0rQ4Z0tDMyT1SuCyvgF+ZlBK0/R9xG8TaQQujPx2nD6bO0+3pKnDx+fN6jaHjycsmlHMp19H4Mp5LbHnvQETsmZpGagvjPNITldxna1b2cIVMaNy6XOl+Szt6zHTXf7Rbtl+yvd1gqOf8CoFGcm2sbVo/FZvZjjlnnmwg3yBLuYXKUnDG/I9IbYUP/IxiLbKFrWQHFJB17FFG/j47arScLlzvIHgXQUDvm25m4arInA11Yme6OK9QabpQG5mK12vS9Mw/twTuPz2phaml/prg7XXPdQD24blxOsg20awHwSunA72cwS28ILgVifmbYZwVXqZe9Z/razMWfBgk4oRZ0ryUjo2eQKXefhJ8+U9/tgYStvff//9IykrDc+cAC9ZeAb0nu18u04JhJ5UQbvGG1NOINGxFTPjLN7rctKWwJWbE/p5UK9zM7ZWLZkL5srmrw2KwJWbL5Cu90xkYy3XjciTEpm4h1Rtofjs3RA9tTGnN6EvMb/0bcfu5X59u2qrL0vnnuQDD7OkjdjWkJ7YBdmK+E1y7y3Wbwlj5EgLX/VbmueS94OqPHDd6yneQRZeeOHOdol8BIJ3NbzP8e7B+G4kcuqX8LxTIR6X3DzPf2zQa1+kbdfpmlK9Hgujf0JACAgBITBwBETgagixCFwNgVIwISAEhIAQEAJCQAgIASEgBISAEBACYwQBv1hu2+H4rJlBAWIXi+lePDnFPHB5bxHmJcM/Y8c+3RyBK5eXnBGN+HxcTQhcn/70p8OCCy4Yjazm/cvy5X+NRGCGVO4ZgavKqOWf98dmrODaWWedFdhyMidmjDHDhPfYkQufu+aNHhi43/SmN8UtCXMEA8p21FFHRQIIcVmZjcDlCWS33357OPHEE3NJdra3qiJwnXnmmaPIJUSUErgwbkNiayMXXnhhuOqqqzrb+eXaqsXnSQlmfLZ7Vb9VWyga2c6XOY3DG8RzBK5uBsY0Ls6957Hc/fSab6dWtznDqidRWF/2cXnyRM4DF9sn4b0gJ2bYxFBHfystA57EbDulnH4gbQhe1CtiRuXS50rzWdrXY6Zr/rG1KG0YLxRGBPGPULd45KDeEb9dl22jiJcoDKZIrv21TaOKwFWKH/kaRFsl3le/+tVhq622it4OOU/Fb6uW3vPnkEXQsxjoU4FQRz1YW60icDXViXgaBEsET08nnHBCmmQ8N0NzCYErRyrupf7IUFOs8aqF8R/xXgrjBffPE4KvvPLKcPHFF4cmBC4bs1PStRFnc32AumV+gzBfoD7rxHuvqwvLfSNI1RG4SvJSOjb58apqvM8RuCgP3pPYKhEiUepBifsIdUbdIZ5o043A5ecz8cHn/lW1T8YZPOxBZkTaErhyY0tu7lk6N0N/s60v0mYuGB/o8m9QBK7cfIFslBK4/HzKiE6+WLQL+pyNb+hT2oCNaT5s7rhUX/Yy9yQfEPN22GGHmCXzjurnm6l3p9x7i/XbVFflysm1XvPc9v2gKh9c99vO066ZZ+AJz96fzOOXnRuxP/Wu5nHJ9cUcgau0L/Ku4AlcOV1Tqte7YaV7QkAICAEh0D8EROBqiKUIXA2BUjAhIASEgBAQAkJACAgBISAEhIAQEAJjBIG6xfK2BK4tttgi4PUFMc9IuaLi5QASAgKpA6NbXV5yRjSe9881IXDts88+YZllluHR6DnJe6CKF5/7Z2QqIz5w2YzBnhjjn6k6ZkstiANIztsJ170xxghcSy+9dGeLSQhAGEa6CcYutj7KCcQMDIcrrLBCx7hJOG/wN+KEEbg85mZwzsVthidPZvIG96ZkBeK2LRsxYrGNTJ2wfR8ehMwDVzfjl98OpVcCl3ma8F6u0rx6QtGtt94a8FCEdCMPpHH4c7yNgCuCx6DU45IPyzHGVwxkiNVtziDbK4Grm3c28/Zkbaq0DN5r30EHHRS3LosFc/+8EdsIXKXPleaztK+7YtQeQpZYffXV43ZKeKGh/kxSEpIRe7iPN5upU6d2vNBByISokZOmaVQRuErxIy+DaKu+jOBFW2E7M3Ss91Lot3Pyz/hjTx5hizgIjP/X3p2FWlX+fxxfafRLiixoABu0jCwIpCDSopkQioaL5oQGo+EiL7roIiL+ENVFV0aZhdEMJiVCYXNYRAkSWIZ1UYoUDVZeBZEN/3/v9e97+LrcwzrP3tvfOfp+QPe09hpea61nrXOez3kehrTcsmVLHTTIIblBA1yEjQk0UDr1FhXrFUNp5fo8Puv0mHvg6hTgGmT/5eX1s8Yuhm+NXqny9+M54SBCI5TnnnuuDnu1CXDFPQz7ifuDKL3qYIIDMQRfBMzje90e83nGvLkW9yrbt2+vr71sQz5/4ztxLS9Zl9Jr0yABrlhvHhlakt786BGRcyHCOHxGoJfGtkECXDmwwb0j90ucf/QeGWG7uH8bVYCr9N5sVNeHfO2L+0e8+5Vu98+96mDmWRrgyj01cd43e9bi2s45kUuve888Hc8HqS9L7z1ZLtdL7kE51uNnhqiTm3UP03dyj/OWc5/7ljZlkHXO82/z80Gevvk8bz/3FAQoOffj3jCfs9zX33nnnbVVc4ja7NI2wFV6LrIN/QJcpfV608fXCiiggAKjETDA1dLVAFdLKCdTQAEFFFBAAQUUUEABBRRQYIII9PtleTR+durVqFMPXDQC0EMDhWFzli9fvsuW0sDB8IT0CJUbNvqtSw4T5Qaq/L02Aa5rrrmm/mtxVuzFF1+s1q9fv8s65gaBb7/9tl5fJioNcBEUIDxE6dZIfeKJJ9bDjDBNbB9GNERSaPBl+Z0Kw3jRaEpIhuAcjSn0hkahVxMaNnOhdxjCHFOmTKnfZqhFgk/RaBdhGz6MBqIczsrzIogXQwjmaUoDXDEcIw2zhKxieLe8TDz5RyF8QKPt/6QemroNu8T70TPHoAGu3LMUf7lPcKJZcgjirbfeqtasWVNP0is80JxHfp0bwQhvEYxrFs6vK6+8sj4GGFqP3iAosW9HEeDKx0teH4IJ7E/W6aeffqp7aivdhtyz1apVq+oAW14Wz/PwTBHgKv1e6XqWnuvNbcmvjzrqqOrss8+u3+IYilBeTEMwk+2kNAM8+Tykp7rTTz+97pkr1718r3QZ3QJcpX6sy7CPVXzmzJlT13EEtJol9wrTaQjR5vRxXaSOok6mx59c8lDCgwa4mG8EZLudZwRvaPznPGvu/7xe+Xm/AFfp/iuxju3rVDfFOueGdOoUgjlcx6j3KZ1CHvQExb6iNI/3XnXwtddeW58nfK9bED2uUxHmzqG+J554oqInw2YhXBJBbu47uBfoV0rWpfTaVBrgYthYQjeEzJvDZnMPw3U3eqtbuXJlxTkxSIArh4Cins+OuZeeUQW4Su/NRnF9YNsnWoArzou8X3ieezRqBrhySJNgPOcvdRql2x8B1B82/ov6ZLz1ZZzT4733jMXnsCUhpcWLF9cfNXuY481OP7fEecvnne5hOYeo7zCJMG/JOmNb8vMB69WrxPpTj0+bNq3+GY97DnrJzXUL9UQMG8t1iz/CiJJd2ga4Ss9FlnnjjTdWXAspnXrgGlW9Xi/Q/xRQQAEFBhYwwNWS0ABXSygnU0ABBRRQQAEFFFBAAQUUUGCCCPT7ZXk0VLcNcNHgQo8VNDAQvGGoLhpOcyGIwNAilNzo2m9dBglw5eFLTjnllOqGG26ol89f/0fvH/Ub//6XhwmKIfr4qDTAlYMsNA7RGN3s+Sv3ShYBLpYZ+4Dn/IU/jR+55F6eorGSYBbBL/bDtm3bKnpBapbcCBoNFxGcyA1f0YsA33/00UfrfZbnFY02vDeMAFder7fffrvusSwvj8YajjEahDjG6KmAx9zQ0qnBLIfymN+gAa4c+li3bl21YsWKvJp1OI7GNYaxo+TGyl7hgZ1m0niRe5zhvCJ4x/GUSx7uMK9X7NtOIQmOTxpWKSVDKPI9tp/l5ZLDBxFgK92GHCjJx1ksj+OCxkAeKdGwX/q90vUc5FyPbWk+zp07t+J4o8TwTM1pop5o9giHB4FZ6gIa1WN4s+awl6XLyAGuXM+W+rFdwz5Wqe+p9ymcezR+58I5GnVkt4Btnj569+nU0I/zPffcMzYE3zACXNFIzzrQix+9+eWSgw/DCnCV7r8S67iusk1Lly6t6EUulzysWjMYEmENGnC4FuVy66231r1A8d54Alx5GLbmEF/MixAkdRuFkCwhZ4YLu/zyy+v3cui7fuPf/3JvgI899lirAFfJupRem3LIYjxDKMZwaFyHua42r0k50BiBuEECXNxX0rsPpdP5TID5zDPPrD+PeyJe5O3LPRWW3ntGncu8296bjeL6wPInSoCrV0j+jDPOGAsOsc75nogAMccO9SeFOpYe3AgHUhh6j3nzs0i/Ulpflt57xvrkcB7XYX5moXBvRYA9l3zMxR+e5LD5J598Uj3//PP5K1Wuz954442KfyXrzExLfj7YaWU6vMh/sBAf54BWruf5vFNvudmlbYCLeZWci3zvxj4BrlHV6yzbooACCigwuIABrpaGBrhaQjmZAgoooIACCiiggAIKKKCAAhNEoN8vy+OX4m0DXGxWbsDllyo0bDGkCIVhv2hcjEYaGlpoYKP0W5fxBrhyzzM01tHwHaGpaHBkuTTYL1u2rG4gIvhEI2z0dtNsLI4GiOb7zKdfufnmm+vtZzoa2WlAIUDGMjGJHqX4PAe4cqMXyyVE9c033zBZPRziLbfcUu2333716+jdghc5ePXqq69W7777bj0N/7EslsmycyNKBCdygCv37kMjGj3YEJA66aSTKnr+ouEtSg7WZP9uvScQxGK/5tABPWTREM8xQkMwQRxCEBR6XGHoFRp/KTlsxO+l2D9xbL333nvVa6+9Voe7Zs2aVTd00TNZlEEDXLkhlnm+/vrr1ZtvvlnPnm2iYS1sNm/evNNwkKUBLmZ+22231fY8J5xHeCCOa4YwJcAVdnhE70Cxb0cV4GJf0TMWPYPRkE+wh+ODwpBAhM14n1K6DXH+MQ9COI8//ngdSmJfEI4gdBIlAly8Lv1e6XqWnuux7s1Hzm/qYvYrlvTwE733cEzTq0/07INLHF8xnzxsbLzXHBqudBn5PG/Ws6V+wz5Wc7iBQA6hH+oqCscOjbj0HknpNsRt/eG//+XrB6FFjjXqRobmvf766+thvGJ6ekBkyD9KthpPnZjrYM4hgnIbN26s50kD82WXXTZW7+W6tJ6gy3/9euDiayX7r8Q6rwuOHN8R4qKup+6I4GFzuMd8bjMcF59TD5x//vkV4c0o4wlw8Z0cTOZce+qpp+p69phjjqnr9rjmvvTSS9XHH39cLyb3LsSQfvTwSb1IiJLr7cknn1xP1+l+qv6gy3/jXZfSa1MOOI0nwJWHJuaazNCsUdfTMyjX7AMPPLDeOnoQ4hzMoUk8OOc5dvke52OvXnHyPeaPP/5YX1uZB8cK5wL3mVHyPUnevmEEuErvzYZ9fWBb83nHNT7On3BoPhIy5B4p33dHkIhpe9XBfN5tCEWOc8LAFP7Y4Mknn6zrRkKPDK8e92d8HgEu3uNnAY5bSg4v5WOf+fHzRL9SWl+W3nvm9SGwFHUD7+fjL0/XyZ37RoLE3JdTCGgRfOec4FgjmBj3doTZ+PmqdJ1Lfj7I69/pee6Nl8+py7nPjpLPW97rFJbOLuMJcJWei/3qGtZzVPU687YooIACCgwmYICrpZ8BrpZQTqaAAgoooIACCiiggAIKKKDABBHo98vykgAXDa00DuRGDH6RT8NDNEyw+c0h4Pqty3gDXDQGRa9CwR1Dr9FYz/JyYxLryPrFezS80gBLQ2yUaCwuCXCx/ny/6RLLZHmx7BzgYtm5xwles66U6G2I582QUO5Rh8/5Do3Y7J9YDu9Hjxg8j0a7HODi/Tw0DK+7ldxYVRpWYN65RxleY0NwhQbYKISWaNxjm6LQeEtvH1H4Ho1f4ZSNBw1wsYxLL720Dgp0Wx7vs36EZQjrRYmATXOfxee9HjmOOL+yBcsgyJP3azO0F/t2VAGuXutM6C+GcmS60m1gmFFCJXk7OS4imJef5wBX6fdK13OQc72bY+6dg2kIXnI8U5+EB69pQP7+++93mk3uGYQPCNTSANwsJcvoVc+W+o3iWCU4QgCUghN1OPVCPo8IkFCnRP3a9InXBBMvueSSeFnPjxexH5rnY/TiNEidSIhpxowZXZcZddswA1yl+6/EOvdOxUZSb7NNUXfzXqceM3NvS0zTLOHCPiGgEqVfHUzolyHQ8j0L65Rfb926tQ4Dxjyb9QzLZrn5ms97hLcJ0LQtJetScm3KAafxBLgIZ3FvEzZsI/UT+y7qZra1GdiI8zwc4vN+oQqGX+N4ifON73POxrHC8vP9AvuAZcUfFDD9MAJczKfk3mwU14cc4GK9+pU4l/J99zACXPSaRU9R3Qr7JvZbBLgIvZ522mn1V6iX6aGWc41CKO/ee+8d+87q1aurtWvX1p/1+q+0viy994x1aYaUcrA/puGxm/uFF15Yh/BjWrwoYcbz6H2L55SSdS75+eD/l9b7/xxgawbucm+CzKVTiDm7jCfAxfxKzsV+dQ3zHVW9zrwtCiiggAKDCRjgaulngKsllJMpoIACCiiggAIKKKCAAgooMEEEbr/99vqX06xOp1+WR4CLX47QsJ3LYYcdVjH0HoXeQOihIgq9K9DrQgxzE+/zSIMEjTDvv/9+frvqty40ehGEoeSAU/5eboBiutyDCK/pkemdd97hacXQgzQWTJs2rX6d/6PxkaGc6M0ml+h5pRlwytP0ek5D51133VX/1XyeDpNnnnmmHl6GQETevpguD0cX7/HIdxlS69lnnx1r9IrP6fGAsEFu/InPaCCLXqriPf76n33XafsWLFhQzysao1ku0xHOueqqq+pQTh6uiCGMaFynsG702tUsnXrgimnmz59ffz8aheN9HmkYopcPghHNQoCLxuvmNhNqIUQU6zSMABfL7rWeeNDbD72D5BLDfkWDdf6szXP2Ecdu9PCVv8Oxy9CT/Msl9m2n8E4O4TTPZeaRh2V84YUXxkKNsR2EMel9iDohF44xjuvmkG9MU7INfO+4446r7rjjjp2CN7xPwy+9kdH4S8kBLl6Xfq90PQc511nfZiGcQF0XPUU1P2f7CZx2smZaei6JsFK3RuXSZfSqZ0v8RnGsEgQgkDN9+vQmXf2ac5Wen5pDXXWc+J83m2G3mI7vEw667rrrKhqsKYRLqG8GqROpz+i5J/fUGMukXmP76BWxbYCLXoqYHyWCzTG//Fiy/0qtMcu9ZuX1aA75mT9rhib4jOsTPWNRJ3HONANcUXf1qoPpPYpjhvoxF+ZNPckQZ8w3F+4rqJ9waxbqXkILX375ZfOjvq9L1mW81ybCVgy3SunmnYeXztdQjkv2Qw5s5Y1im5cvX14Hq+J9wioMkRfX+C1btlRLlizZqRdXhpaOHibjezxyLjFkW3w3PuOehHsD7j3jWs9nbNcPP/wwtn05wJXvITvdB3e794xlltybDfv6kIcGj/Xq9RgBrrzt+f65Vx3MfLv1wMVn8+bNq66++upd7sG4nyYYyP0EJYLo7OMo1MH04pbLRRddNNbDJPcUBHWa512enueD1Je9zpte954sN/dCRT1BkKzTunZzZx7sy4ULF44FEnmPwnWE+zoCXM1Sss7j/fmgucxOr3MAi5+1+JkrCvuEezQesSGE2QxLZ5dO5yLtzxw3lGH8nJSvHd3qGpY1qnqdeVsUUEABBcoFDHC1tDPA1RLKyRRQQAEFFFBAAQUUUEABBRTYSwRozKBRmWGHaDCi0ezrr7/e5Zf2o+SgMZkeG/gFDz1mxF/2s0wa/2b909MGf2FNQy+9YtAoMJ7eMUrWfebMmfUwMzRkfPXVV3WDbrMho9N8+d0LoQDCKPQwwfBBNFIT2ulWaHw+9dRT6+/Q+xZD6n333XfVhg0bdgkWdZtHfp/GzMMPP7w2CksaZbBs9kiSv1fynLDYnDlz6v1D+IRjaP369dX27dt7zo7GcwIKNLowLdvKd0dVcD3hhBPqfwQCaYimEbLfeg66Ppxf9HhBkIuetWggZci2/1bh2KAhkeP0888/r3uF67cuJdtA0Ijtnj17dl2XEFri2OtXSr/HfEvWk++Vnut8t1M59NBD695KCChwzjGMJvUVAUkaRbuV6D2wV6NyfLdkGb3qWeZb6hfrNKxH6k4ayBlmjzqUUAfXJII84y1sE8EVvLi2EerJdTHXFYIa1D3UCcMoOMf6M5Quxz6hrVGXkv1XYn3QQQfV9wyc2wQfuD5yTe63jVwf8KYu5LrId5rB2VIjzBn+kHoNc9ap17y5rhNopY5iiDOuA5s2bWpVH/Zbx/Guy+68NlG/cj6w3Rz3XJM4vwjtsE86Fa4ZXDs5b7h+dQprdfoe78W9DfucexrqwBium8+pI7n3I9zKOsT9Cp8Nu5Tcm7EOw74+DHu7SufHOTDrn3tr9i3HAQG+Ud6DdVvP0vqy9N6z23qUvM/PTZxL/GwQ9Q7XrG6lZJ3jHKKuHsbPB93WbXe+X3ou9lvHUdbr/Zbt5woooIACnQUMcHV22eVdLo4WBRRQQAEFFFBAAQUUUEABBRRQQIE9R+Cmm26qG0FpTKcXi2bQjN5N6JWDsm7dumrFihV7zsa7JQrsAQIMvUdPIBQa0pctW7YHbJWboIACCiiggAIKKKCAAgoosDcKGOBqudcNcLWEcjIFFFBAAQUUUEABBRRQQAEFFFBgkgjk4dE++uijauXKlWNrTu8GDFkXwyY99NBDXXvaGPuSTxRQYOQCnJP0GEGPHYS3Yjhbhi2lVxyLAgoooIACCiiggAIKKKCAApNRwABXy71mgKsllJMpoIACCiiggAIKKKCAAgoooIACk0Tg+OOPr3vYIgxCYSir3377rWKoQIYqjLJ27dpq9erV8dJHBRT4LwowlNmiRYvqYRXj3GWoRXrRsyiggAIKKKCAAgoooIACCigwWQUMcLXccwa4WkI5mQIKKKCAAgoooIACCiiggAIKKDCJBObPn19dccUV1dSpUzuu9QcffFCtWrWq42e+qYACu18gAlyxZEKXDz/8cLV9+/Z4y0cFFFBAAQUUUEABBRRQQAEFJp2AAa6Wu8wAV0soJ1NAAQUUUEABBRRQQAEFFFBAAQUmmQDhrXPOOac6+uijq4MPPrjatm1b9cUXX1SbNm2qduzYMcm2xtVVYM8WOOCAA6oLLrigDl1u3bq12rhxY/XHH3/s2Rvt1imggAIKKKCAAgoooIACCuzxAga4Wu5iA1wtoZxMAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFWgsY4GpJZYCrJZSTKaCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiigQGsBA1wtqQxwtYRyMgUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFGgtYICrJZUBrpZQTqaAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAKtBQxwtaQywNUSyskUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFCgtYABrpZUBrhaQjmZAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKtBYwwNWSygBXSygnU0ABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAgdYCBrhaUhngagnlZAoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKNBawABXSyoDXC2hnEwBBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQVaCxjgakllgKsllJMpoIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKBAawEDXC2pDHC1hHIyBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUaC1ggKsllQGullBOpoACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAq0FDHC1pDLA1RLKyRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUKC1gAGu1lROqIACCiiggAIKKKCAAgoooIACCiigdw4mPAAAAw5JREFUgAIKKKCAAgoooIACCiiggAIKKKCAAgqMRuDXX3+tpk6dWu2zzz7VlClT6n8859+sWbPq1/vvv3/fhe8zb968/+07lRMooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgqMCRjgGqPwiQIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiwewUMcO1eb5emgAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCowJGOAao/CJAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKLB7BQxw7V5vl6aAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKjAkY4Bqj8MkoBQ455JDq2GOPrT799NPqr7/+GuWinLcCCiiwVwtY3+7Vu9+NV0ABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUECBSShggGsS7rTJtspHHHFE9eCDD9ar/eGHH1ZPP/30ZNuECbm+Rx55ZHXuuedWU6dOrX7//ffqlVdeqf78888Jua7DWqkFCxZUHE+UDRs2VJ999tmwZj3y+Zx11ll1iDEv6Oeff67WrFmT32r9fN99960uvvjiavr06fV32Pcvv/xytWPHjtbzcMI9T8D6ds/bp26RAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgrs+QIGuAr38YwZM6o5c+ZUmzdvrrZu3Vo4l8nxtdmzZ1dbtmyp/v7776IVnjt3brV48eL6u3g98MADRfPxSzsL3H///RXHYZQlS5ZMqkBTrHfbx5kzZ1b33Xff2OS//PJLdffdd4+9nshP/vOf/1RLly7tuIqLFi3q+H6/N88777xq4cKFO032yCOP1L3c7fSmL/YqgdL6dtB6fq9CdmMVUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUECBIQsMK8D1f24uqiazdlIEAAAAAElFTkSuQmCC)" + ] }, - "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "O3ENsWYB27Mb" + }, + "outputs": [], + "source": [ + "!pip install litellm" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Pk55Mjq_3DiR" + }, + "source": [ + "## Example Use Case 1 - Code Generator\n", + "### For this use case enter your system prompt and questions\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "id": "_1SZYJFB3HmQ" + }, + "outputs": [], + "source": [ + "# enter your system prompt if you have one\n", + "system_prompt = \"\"\"\n", + "You are a coding assistant helping users using litellm.\n", + "litellm is a light package to simplify calling OpenAI, Azure, Cohere, Anthropic, Huggingface API Endpoints\n", + "--\n", + "Sample Usage:\n", + "```\n", + "pip install litellm\n", + "from litellm import completion\n", + "## set ENV variables\n", + "os.environ[\"OPENAI_API_KEY\"] = \"openai key\"\n", + "os.environ[\"COHERE_API_KEY\"] = \"cohere key\"\n", + "messages = [{ \"content\": \"Hello, how are you?\",\"role\": \"user\"}]\n", + "# openai call\n", + "response = completion(model=\"gpt-3.5-turbo\", messages=messages)\n", + "# cohere call\n", + "response = completion(\"command-nightly\", messages)\n", + "```\n", + "\n", + "\"\"\"\n", + "\n", + "\n", + "# qustions/logs you want to run the LLM on\n", + "questions = [\n", + " \"what is litellm?\",\n", + " \"why should I use LiteLLM\",\n", + " \"does litellm support Anthropic LLMs\",\n", + " \"write code to make a litellm completion call\",\n", + "]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AHH3cqeU3_ZT" + }, + "source": [ + "## Running questions\n", + "### Select from 100+ LLMs here: https://docs.litellm.ai/docs/providers" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "BpQD4A5339L3" + }, + "outputs": [], + "source": [ + "from litellm import completion, completion_cost\n", + "import os\n", + "import time\n", + "\n", + "# optional use litellm dashboard to view logs\n", + "# litellm.use_client = True\n", + "# litellm.token = \"ishaan_2@berri.ai\" # set your email\n", + "\n", + "\n", + "# set API keys\n", + "os.environ['TOGETHERAI_API_KEY'] = \"\"\n", + "os.environ['OPENAI_API_KEY'] = \"\"\n", + "os.environ['ANTHROPIC_API_KEY'] = \"\"\n", + "\n", + "\n", + "# select LLMs to benchmark\n", + "# using https://api.together.xyz/playground for llama2\n", + "# try any supported LLM here: https://docs.litellm.ai/docs/providers\n", + "\n", + "models = ['togethercomputer/llama-2-70b-chat', 'gpt-3.5-turbo', 'claude-instant-1.2']\n", + "data = []\n", + "\n", + "for question in questions: # group by question\n", + " for model in models:\n", + " print(f\"running question: {question} for model: {model}\")\n", + " start_time = time.time()\n", + " # show response, response time, cost for each question\n", + " response = completion(\n", + " model=model,\n", + " max_tokens=500,\n", + " messages = [\n", + " {\n", + " \"role\": \"system\", \"content\": system_prompt\n", + " },\n", + " {\n", + " \"role\": \"user\", \"content\": question\n", + " }\n", + " ],\n", + " )\n", + " end = time.time()\n", + " total_time = end-start_time # response time\n", + " # print(response)\n", + " cost = completion_cost(response) # cost for completion\n", + " raw_response = response['choices'][0]['message']['content'] # response string\n", + "\n", + "\n", + " # add log to pandas df\n", + " data.append(\n", + " {\n", + " 'Model': model,\n", + " 'Question': question,\n", + " 'Response': raw_response,\n", + " 'ResponseTime': total_time,\n", + " 'Cost': cost\n", + " })" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "apOSV3PBLa5Y" + }, + "source": [ + "## View Benchmarks for LLMs" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "CJqBlqUh_8Ws", + "outputId": "e02c3427-d8c6-4614-ff07-6aab64247ff6" + }, + "outputs": [ { - "cell_type": "markdown", - "source": [ - "# LiteLLM - Benchmark Llama2, Claude1.2 and GPT3.5 for a use case\n", - "In this notebook for a given use case we run the same question and view:\n", - "* LLM Response\n", - "* Response Time\n", - "* Response Cost\n", - "\n", - "## Sample output for a question\n", - "![Screenshot 2023-09-07 at 4.45.37 PM.png](data:image/png;base64,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E/+YTvNV9zrZ8ssv/3nVxKaTgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQggRAUcFkLJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJjCcCCrjGE3h3KwEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAGXdUACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkMB4IqCAazyBd7cSkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQUcFkHxgmBGWecMcw///zhkUceCZ999tk42ac7mTQITDnllGGxxRYLI0eODO+///4kcdDzzDNPmGaaacJTTz01SRyvBykBCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKYmAko4JqYz24vObbZZ589HHHEEbE0d955Zzj//PN7Sckm7GLMNddcYciQIWHyyScPH3/8cRg+fHj473//O2EfVAulP+OMMwIirtGjR4ef//znLeQwbjYZPHhwFDHme6PM119/fb6o2+kNNtggbLjhhjHd8ccfHx5//PFutxkfCWaaaaaw5pprhimmmKK2+88//zzceuut4aWXXqotK5toZ9uy/FwmAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAIS6M0EFHC1eHbmnHPOsNBCC4XnnnsujBo1qsVcJozNFlxwwfD888+H//3vfy0VeMkllww//vGP47bwOvzww1vKx426Ejj00EMD9TDZSSedFB599NE0O85+260f7Rb0N7/5TZhsssnCJ598Enbdddd2s+uR7aeaaqpw+umnl+a9ww47lC6vt3DHHXcMyy+/fFx9zTXXhGuvvbZe0i7Lx/V52mOPPcLiiy/epQzMPPzww+GUU04Za3m+oJ1t83xamf7Sl74UVl555TDffPOFOeaYI8wwwwyBG+ULL7wQhg0bFj788MNWsnUbCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQQF0CCrjqohl7BSKRoUOHBgRJffr0qSXAqwzCpGOP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QAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQggUmGgAKuSeZUe6ASkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQQG8joICrt50RyyMBCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJTDIEFHBNMqfaA5WABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEehsBBVy97YxYHglIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhgkiGggGuSOdUeqAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCTQ2wgo4OptZ8TySEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAKTDAEFXJPMqfZAJSABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIIHeRkABV287I5ZHAhKQgAQkMJ4JfOUrXwkLLLBAGDlyZPjwww/Hc2ncvQQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAT+j4DjWNaEiZWAAq6J9cx6XBKQwCRBYM455wwrrrhimGaaaWrH+/nnn4c///nP4fXXX68t68TE0ksvHRZddNHQp0+fWnbs48Ybb6zNOzHhE/jGN74Rdt5553gg//rXv8Jee+014R+URyABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJDDBE3Aca4I/hR5AAwIKuBrAcZUEJCCB3k7gzDPPDFNMMcVYxbzrrrvCeeedN9byVhd87WtfC/vss0/p5jvssEPp8t60cJ555gkDBgwIo0aNCs8991xA5DYx2qyzzhpWXnnlKN678847WzrErbfeOqyyyipx288++yzstNNOLeXjRhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhLoJAHHsTpJc/znNd1004XFF188FuTFF18M//znP8OXv/zlsNxyy4URI0aE9957b/wX8osSDBw4MAwaNCg89NBD4ZlnnumRcing6hGsZioBCUyMBOgQfPOb3wxf+tKX4uFxwzjssMPCO++80+Vw11tvvbDOOuvUhFUff/xxOProo+MNp0vCDsycffbZYfLJJx8rp/vuuy+wrlO2zDLLhKFDh5Zm11sFXDPOOGPYe++9Q79+/cJkk01WKzvirbfffjuceOKJ4ZVXXqktnxgmTj311Nip4ViOPfbY8OSTTzZ9WN///vfDkCFD4nb//e9/a964ms7IDSQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSGCiJcDgOuMmU089dekx/u9//wsffPBB/LD6kksuCaNHjy5N58JJm4D1aOI//zvuuGNYdtllu0T4aXTUjOPhjOHII48sTeY4VimWCWoh47Y4kGD8OY27pwNgbJL7x5RTThnHc3/605+mVeP1F6HZCSecEMtAHaVe94TDEAVc4/U0u3MJSGBCInDWWWeNdRN59tlnwxFHHFE7DBTBp5xyShfBECs77REr7XD11VcPgwcPjp0ewikm67SAi3x33XXXwD5mnnnmMNVUU6Vdhd4o4EJot9122zXsDHJTveKKKyaqEJDnnntu7bxcf/31Yfjw4bX5qhMLLbRQDJtI5wkBWOqMVN3edBKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJDDxE/jlL38Z5p133koHyvv44447rqWPjivtwEQTLAHr0QR76ioX/KSTTgpf+cpXKqcnYSMHA45jNYWy1yWeffbZw7777hsQRHVnn376adhll126SzZO1uehO9nhgQce2COOQhRwjZPT6U4kIIGJgcB+++0XFlxwwS6HwkMHNw46EtgGG2wQNtxwwy5pmDn99NOjO8WxVnRwAcKxaaaZJubYEwKuVNQtt9wyrLbaamm21wm4ZplllnDUUUeNJaKrFbgwgRe1559/vrC0d8726dMnqs7rlS4XcN1www3hyiuvrJfU5RKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCCBlglssskmMRpJ1QyIVvKjH/2oavK20/GRMn94cplUjIgtn3322QR1uNaj3ne6Ol2PTjvttLqe+uodPeOvP/zhD+utdvkETKBM0Md1i2v1FFNM0eXIxrWAq1HdV8DV5dQ4IwEJSKB3EMCrEx6vcrvsssvCzTffHBchHJp11llrq+lg7L777uHDDz+sLWNivvnmC1tssUWYbbbZouqchwgUtW+99Va49tprw6OPPtolfT7DFy0r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CUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKoTEABV0VUCrgqgjKZBCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJFCZgAKuiqgUcFUEZTIJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIoDIBBVwVUSngqgjKZBKQgAQkIAEJ1AissMIKYfbZZw/PPvts+Pvf/15b3qmJeeedNyy99NIxu4ceeii8+OKL3Wa98MILh2WWWSamu/TSS7tN324C+lCrrrpqmGyyycL9998fXnnllZgl5eAPu/baa8P//ve/OO0/CUhg/BP40pe+FNZZZ53Qp0+fMGLEiPDPf/6z5UJNNdVUYe21147bP/jgg+Gll14Ka665Zvjyl78cnnvuufDoo4+GZZddNsw111wxTX6dKO6U6x3XPeypp56Kf8U0zH/1q18Niy66aFw1atSo8Le//S18+9vfDrPOOmt48803w0033VS2Wa9Y9s1vfjOW85133gm33357j5Rp+umnD0OGDInX5ZEjR4bHH3+80n46fd3+xje+Eeacc87w3nvvhVtuuaVSGcZnoqWWWioMHDgwlvnjjz+Odfmee+4Jo0eP7lKs1VdfPXzlK18Jqe59/etfD3PPPXf417/+FW699dYuaXvTzITSRrpjtuSSS9ba/7jo53RXnmbXV7lmkucCCywQllhiiZj9ddddF/773//G6XFxDWFH9fp39coVC9eD/7g3cO779+8fJp988vDqq6+Ghx9+OHCNyy3dR3gZ+pe//CXeU1j2+eefhz/+8Y81jvk2E9r0hN4GqvDmuWLdddcN9Fd66jmrSjlM838EJoU6N7Ge63buOeOyHda75/SGvmSjft9HH33U8fdBPf2OiWfAKaecMjTzLDLzzDOHwYMHx2Zy7733htdee62tJjO++hJtFfqLjcdlu+hEec1jwiMw9dRTh4033jg+y9922221d6yNjmRcPR80KoPrJCABCUigOQIKuCryUsBVEZTJJCABCUhAAhKoEfjRj34UB3sZ6P35z39eW96piS233DLw0hJDkMDAU3f2/e9/PwwaNCgm22OPPbpL3vZ6Bry32267mA9CrTRIn9iw4qc//Wn49NNPYxr/SWB8EGDwIgmIXn75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Rb4KuCqCMpkEJCABCUhAAl0ITD311FE4gHjhlltuCddee22X9f37949fKxLu5Xe/+12YYYYZwiqrrBLDu+CVBgECX5an0Ez5xp0QcA0ePDgOfvHV5Keffhpef/31WE72Wc/mGxMacsUVVwzzzDNP9JzDNo899lhAjFEUqNV72YrnkoUWWiiGsLnqqqvG2hWD3wjf2BdM8FxCme69994wevToWnry4Q/j63s8+pTZd7/73TDddNNFjwtwzq2Z48m3y6fx4EA+2I033hhefvnlOJ3/oz+56aabxkXPPvtsuP3222urZ5111rDuuuuGueaaK5aTc8G5v/POO8NDDz1US5cmvvOd70Qub7zxRrjuuuvS4trvEkssERBp/Pe//w14OOO3O9twww0DL1IJ+8WXs5y75ZdfPsw555zxK1o8J/3973+P2fDSaKWVVgrzzjtv9J7GV7YMjv7jH/8o3U2fPn1iiCK241g5vpEjR8Zz9txzz5Vuw0LaB1xmm2228OUvfzl62OABBibwK3puS8fwwgsvxHpM/cbTW79+/WJd48tnjg2RBUbYkM022ywKgygXhpcd2BMS7bXXXovLiv+a2a7Zc1vcV9k8dYkX93gfwcMfHD744IPIFK9NTJcZPDintCnOCeEKqau0wXyb7gRcyy67bM2DXr06mO+fr83ZXxJmESKRMnAurr766ph0p512Cossskicpt5feeWVeRbxi3XyePvtt+N1h2srobLwoJJbPoj417/+NQwfPjyuzsUpDLQwaM/APm2OfKgbhHd85ZVX8uxq01XrYjN1o5Z5NsHXsbRDykGbyg1mXEMQsnHeud7Cn2sf19+q1qqAq3jdbnSsnNshY8R0lLVe20rip48//jgg0CtaM9fmdC9FhME5x+sO9Z1rIe2DsKjw5F7COgYoBg4cGGaaaaZYp7ge/fGPfxzrmoIoa/LJJw9cd1LIvryc22+/fdwHyy6//PJwzz33hP333z8eM/cr7jff//73w6BBg+K1Be9z3RnXKzzOYfQZKC+eZuDIec77EZ2sl+22kWav82uvvXasH1yDuG8Syg4xDuEnYVjPYME1ij4ExrWLe+rDDz8cRowYEfJrAB6VEM9R5xdccMEo0mF/cKwXKrfZ6+tyyy0X98G1iesZ3p24znJuqDvcH2mjDOxWtSrXzHqDm8VrCO1wgQUWiNds+qK0B/ps3N+4z+XWTJur178rKxd1g+UYfQnu0TDivMCb/h3X6+Sxgz4m+XP94PpMeu5t3LNyw8MW13CMUKXFvg71CcEW9uSTTwZCWXEN/eY3vxn7koT3pX4gsqQfjkizGSN/QgBTHwmZRNhKysi9BIFxmXXiOt7TbYByc27SPZJ5+k30sWljXGdzS31xrpNXXHFF7Jevueaa8dxedNFF8fym9FX79yl9vV/qFP03jLZffG6p2t+pl39a3my/Mm2XfjvdB+R+sPHGGwf607Qd2jPPRfS/eR7Izw19RJ4psT/96U+l/RvuT9Rdzm2ZFzPulYsttli8V3I9w4spbYlrXd7e2r3uJl7pt7s6ntLx28m6yv2Ea2in+xJ5ecumYct+aXM8r3Kt5trHMwl9k3rPIwMGDIjPSfQbuXfSBkmL91yum1Wt1XtOWTvsqXNX755T1pfsqT5hPZ7d9ft64n1QT+SZjq8VARfvC1ZeeeWYBdcb7oWN6gJ98EZ9OfoMnHMMvvlzKsuauZf0VB+EcpRZWbvI03Xq/pTyrPoskNKX/TZ6piu+E+H4CD1d9b1Od/39cd1e2703tnLdbZZZOkdzzz134DmDfjx58N7s/vvvD1NOOWUYOnRoTEa/66677kqb1P0tPh+QkDxpaxjPsDxP0X/jGGeZZZbwzjvvxHtJo/dLcWP/SUACEpBAjxCgb4/xDMbzAs8IXLv5YzrNV935ZGNewnR9kq+6ZS9Px4OxJgEJSEACEpCABFohsNdee0WxEy+eioOSvMDZZJNNYra87CJEGB2xovGwfvLJJ3dZ3K6AiwFrXryUGYObyTNOvp5BAwaryozwNZQxDcCRpt7L1vxFPwNwCHqSsQ0DCnROi8YLdYQd6SUFg3BJFMXgKS9xi8bLhwMOOCAuLoawavZ4inmn+TQgyDwDo7/5zW/SqtpvHoorfaHLSgYq2Z6Od5mNGjUqnHHGGV3EcYTx4sVNvXBwed2ACWy6szR4zwMCggq4FY0688QTTwQGtIrGuTn77LPjwE6+jsErQhzxYrDMchb5evaRBp7y5WmaMjL4mh5oWJ6OAVEL4hZEhkVjsOvUU0+NL8B42fyzn/2smCTOMxDGAEiZVd2ulXNbtr98GW2W9lOvvnAeGKTOBzNpS1x7EKuUGYNw1Nm0TSMBF+2fdoOxr0suuaR00C/fz7HHHhtFKIhXGIzCGyGiUV4IJ3EqorCtttoqbkaaXOiy8MILh1122SWuo+0zUMUyDFFNXgeSdy/WJY9ITKe6wYAYx8sAWdEYwGfQIgn80vpm6mLVupHyLv6mciIEgFOy7urSM888E8P1Ub+7MwY7t95665js6aefjteX7rZhffG6Tduu134QS6WBnGLeqW2VDbqltM1em/N7KQJPhBXFNkJ9PeWUU8J2Y15Ul51/hD3UVdIlI/whg9uIMbhHFy15XWD5QQcdFMO3ISThhXsSbXOPp3xcy1M40WI++Xx+32SfvEhPx8L1l+ss1ul6mepeK22klet8Ov8MDnBvRhCcrFEouySqS2nTL+Ljk046qUs95bwh0CkzhKu5kJo0rVxfU7vg+oH4tF4fiUH4m266qawoYy2rcs2kHpcNbqbzmK4hZd4L2SF9trz9Ntvm8nqKqJD6jpWVizaEBzCM80T7YFnREIUgzEMEVzTu+VzfqSvJ6Dtxn2egGA9cRUvetlj+hz/8IQqrEIUziIVIlr4U9Y6wvUUexbyK87l4rLiOefrCnMfcOnUd78k2QN+SOj3fFx8l5OVnGrEQx5V/sJHOOddO7ulcs5LxLJEExs3079P29X7zOsX97/TTT49Jm+3v1Ms/LU/tqWq/Mm3Hb3fnu6x/n29fnEbci8iwrO2QFq9y3GOS0JHzwMA5xsccDPoWLXleKoZ2o89Ou6C/VWY8t9EHTyFL03WQtM1ed8vy766Os01P1FXyTM/lnexLlB1jWoYQh/sh+65nqT+RryeEc/qIKV/ONG0RYXRZv6WYlvlW7zll7bCnzl29e07qS+QfA/RUn7CMHcuq9Pt64n1QT+TJ8bQi4MqZ8yEFouxGdYF7d9m7ntSXS/cVylMUcDV7L8nraSf7IJStzPL99eT9iX038yxQVta0rOrza0/09/O6My6uu+3cG1u57rbCjPPCx5Lcj9IzYDpX/PJuGFEXVlXAlfoz6fmAbfO6yjs5+uB8RFw03mPTB+cZUZOABCQggXFHIL3rVsDVDXMFXN0AcrUEJCABCUhAAnUJpK/7ScALsfyL2PyFRcqAl+J4taL/wdeFydKgd5rPRToMCjI42J0lTyB5Ol6+v/XWW1Gwkw9qF18GIK5AZIHxYpjBDF4AIMTAO1JazgB58qpU72Vr/qI/F3Dx5TEhb5IxCIH4CDFRXjZeSPOH2I2Xzkn0hjee4ouF733ve/HLNfLMObVyPKlcxV/OEwP5WL1BwIO/8DpEmqOOOip+IY13GDy4JGNgjEFFXvTANR1XepmZ0vWkgCvtI51jvvYvG8DhOKk7iILSC9j85Tn54CWIkGHpOBjwQ5xD3SbP9EKqeHy8kNp9993jesrBIBeD/LxcpC6k/RUHSNOLqXQM/MKUssIzbZfOEUIlhEEMVFFWjGOinLS35HEsrsj+Vdmu1XOb7WasSb6uh2ca5KENIjrhHDCwx3qMawjtKtkPf/jD6EGBec4RA3W0E754TaIuxAcIhmBTT8CFoI4XxRjn5be//W0lrzKIsShbElsxAMm+EWMieMB4gUi9pk4gsGIwJFk+CE9751iTACkXgeUvIYveVIp1g/LjaY1zjZcXtsWY33fffdOu48vRZupilbpRy7xkIpUzf7lKe2GACjaUm+s1IjPqLV6FUvtC3MZ1uzvrlICL/ddrP7d94YGrUdsqG3Sj7K1cm8vupdRx7iF48OM6lhscubdQLyljsmuuuSbceuutabbh75Ah/z9cZ15vdtttt/jlcrpnM4DOYEE+iNMo4/y+maejzHiaufDCC3ukXqa6l/ZZtY20ep1P5z/tL/0iQmRQsp4hqqM/kETGXNM4z1yvYZ73L1IeXNe5h3BvTdd61nFfTmKHVq+vZfvjBRv5UkYG55Nx/ab9dmdVrpn1BjfTeUzXEAZ/8HRBO+AaAl+uffA488wzY1FaaXN5PW1GwJWOnes89zA8UpUNFvGyknsZ19TUV8DLEALsKoZIjHtN2jYJLNN9LPU76Itwb+J6UfToWG8/eIvD+wTGvYZyce/EG1heXsRMyctZJ6/jPdUGOJ5f/vKXXfoF9EnpO+XXUa53pOOYsbwuct1IzJm++OKLo9fUZvv3MeMG//L7fX5tbba/02AXcVVqT3m6Rv3KlK4n+oAIptL9CiEjfTnODX3m1P+jbTPIirUzSJ1fn6nj9N25psw3RtiX+ktcy1JY4LLrYJXrbuJV/O2ujpO+J+oq16Ik4Epl6um+RC4GZZCcZ2jOJ8886XxTlvTsyHQK/cp0Oj9cT2mnXPuSJc+3ab7eb6v3nLJ22FPnrt49J9XV/Bl0XPcJq/T7euJ9UE/kSR3plICrUV3gutWoL5ffV3IBVyv3kryepjbQk32QfH89eX9q9X1JYpD/Vnl+7an+/rhur63eG1u57rbKbIUVVgibb7557RRx/+W5gvOUP1eQoPjOtrZRYSL1Z9LzAavzupqS03fDkyPPzjzHpD5d6jendP5KQAISkEDPE1DAVZExL1s0CUhAAhKQgAQk0CqB9GIUD0a8TE1WfGGBNxQ84TBohfESmTQYQo3kwYD5Tgi4hg0bFsPZkB+We4niRShCBh7iGeDCixUP8LzwwstF7qUmF1jkX3HXe9mav+jPBVxHHHFEbSCv+DIC9+G44qcMSYBDmfO8krCL5clSnhwHAhUGnlo9npRn2W8+kAAfXnIkoy+ZBjlyr1m5t6CicIAXJpQ3iY7wLpEERT0t4OLcs4800FwU/lGO3NsFg+AMwmJ5GKP83BCu6vzzz09IogiHtElYwUslhIsY3lcYJMLwqsDLz2T5l+p5PWB9ejHFNPWU/aUwRgyCMIDLiyosHwghRAx/2HnnnVc3FGdMkP1rtF2r5zbLfqxJvIbgPQRL4dnyRHhTYcAHY0AjeV7jusFxM8hDm07XF9LlL8iToIqXg7DC8EKGKIKQpoRtxGhLcEr1MS5s8A+xFueNQW62pW6zD64htMdkaRCG+VzowDRtKAnTaBMIubgW5CI+PBHwZSyWL2c+rxvUG8LFpJA0lA0BZhoA5dwxCIq1Whcb1Y2YcZ1/qZz5y9U8L8KPcd1ORr2GDyyqChA6JeBK9SgvX7H9NFqXznc+6Nbqtbl4L0VAlsJzwoh9JaEb7YDzzz0VI8zqDjvsEKe5XpxzzjlxutG/3PsjdTr3escxIIxE+MBgLC/vaZe0x3RNbZR3ft8kHQP1eN2iTifriXqZ6h77aKaNtHqdT+ef/cEQ4Rz3cPbdncE4hbQsenHMy0O+CN4QviVLHiuYzwU2rV5fi/tDKJ5EO+yD+zgCYixdT+NMg39Vrpn5tTsf3EznMb+GsKt0H0BUka7vLG+1zeX1tFkBF22PAeJ0Dcn7EJSJ0KPc4zCu/Vyfab95/ymurPOP9oZ4K/Wf8usBAg2EVqk9ki9CWHjlbaxO1nFx6oNxLaHvRztPhleRJEDM+8P5tbAT1/GeaAN4eyDkOAYfvKekY6MPQV1Oou+8v53XRbblWYd2x/lKlvrizFft36dty37zQcd8gDzV86r9nbK882WpPbGsmX5lp/uA9JuSN+FcpEW5qMO06fTRD173uK+2Okid39+4HlPHU1+NDwgQkqUPCZIwv3gdrHrdpfz1rFEd76m6Oq77EghYuBdiCAOpN9y3kuXP5Xmby+9jRZFWfm3O20bKs+y31XtOvXbYE+cuP678npP6EnlfclyfR463Sr+vJ94H9USenRJwUdca1YVG6/L7St7HaeVektdTytTTfZB8f3kb7PT9qdVnARjUs7yvUnymy6/zzbzXSW2UfZb198d1e2313tjKdbdVZnk9z/uwMCR8NB4+kxX7VGl58Tf1Z/Lng7yukp5nBCIqpOdVPOLuvPPOMSv6QPkHdsX8nZeABCQggc4TUMBVkakCroqgTCYBCUhAAhKQQCkBhEdjQk3HlxY8+DKwgOUvLOiYpQHJlAkvyBkowoqDbu0KuOoNVOchoZLHsKFDh9bCLfI1/YMPPpiKWPtNLxp4MYNIhBep9V625i8zkoArD81WFAilneDtJYVOu+CCC+Kg7IABAwJfvmK8/GZgIRmDeClEUC7oaPV4Ur5lv/ng76OPPhoFLild/gKekE2Ebho0aFAMFUmavGxpG36pM9QdLA+jmQYP6w1m5nWDl2ZJyBMzqvMvvdRhdfGFXS5wYDCHwaF8gCEPIYlHD0Lx5V7Jyuo2+8kHiRhg55xivCDj3FHnk/AtrvjiXwoJRRkI8ZIsP4ayesoLqBSaCXEXLx+xRi8rU95lv/W2a+fclu0nLdtoo42iO32Om3aaD46ShvVDxngFwvBSgmAKSyFyOHe8BE+D5qxDeJdezBGi5YEHHojiqjTAj+CAtpyEY+wbgQuh3DpteViCFG4McRViOyz/8pNrJS/+uZYyUI/lQkNCx9xwww1xOf/yupGuHbWVYyZ23XXXGDaAZXn9b7Uu1qsb+T7LplM585eruUA2H8BL2xP6DA87DLRX8U7TmwVcrV6b83tp8V4Jp1wgUsYQQReD4LlHkcS3+Mv1EM+JiOawS8aEEaXddMry+yYvyxFN5G2W/fREvUx1j/yrtpF2rvP5gE5xcIIyNLJGg355/yK/r6T88vtOLv5q9fqa76+s75J/RZ/vL5Wn1d96g5vpPObXEPaRBg6L7aPVNpfX03wwvaxc+QAR9xCEKEkYRNnya3cuemIdxn0L72nFe/7/re36n3sa6dkn9v/YOw9oS4qijzcGkh5ABYEl7BIkiSDg6hJEgqCL5CxBEBQRFcSEYNgPRfw+xbAoQRBRAQExICw5LCsiSbLCquCCREEJHkVR0W9/DXWt19s909Mz9777dqvOeW/mTujp+Xd1d3X1f6qxV7EHuhQmzCGHsWQ2dSUUWTZK26Rdt+P9qAP0tfS54Eybia5ogfyGrY9ALIXYg+gyD5dA5nypfc+9KdE6pSfIm9o7qfTluNQnfufalf2wAbUdHqsjLBvMOAThQyD6stJJah3pi4lciarsE5/9Ty+3Kh+f6HawSbsraca2VTreL10dpC3BOzOGlSXC+YhCiKuCB9G0ZMJcEz/1WF1/kCL30a5DXmccwHJ2XYiu50KoSdXDfpRdqs8RWyJF4Ar7PLDo0iZsgm0//EH9SHNYCVylfYnW037bIOiDfl4/+6fSsUCVzqbGr/209wfd7pb2jU3b3VLMtA0Rs6koP52Xrghc1A3sOiELiJ5oQjqkQRNDwBAwBAyBwSEgbTK+f/wP+CDxW/LHvvzOzdF8syeZ/vupSO5dY+A6I3CNgUKyLBoChoAhYAgYAkOMgP7C9vzzz3dXXHGFz612WAixJ3wNIeuE0VU0SUcvDRjer3/rSTImoHAKhCLLPXEcp+/VV1/tSTTYQ1VLG7373e92hPJHJFpUytmqHf1C4CICChMUiBDH/A/1T4cuv+mmm9xpp53mz8rXpzgemOyWL8X1hJmekJaIPk3fR2Vljl3IduQDA1o7kblQO4qZuMT41l/PacKITpjILThNEO2AFp3oB4ELDDUpimdT9kKkijmSIPfIxNHZZ5/trr32WqdJIiyTx8REKEQ8AjOEsPDglBImIvhCnEkq0gbnMK8y0aZJPTo97ZTUzi59PFUWOh3ZT93Xpmwl7dwtGBJNBAIPZSARRzSBSzve0E0mtKnXEoEqfJaOwAX5TyJucJ3U7fCeLn7rpUCEsKid9RAfaScRTRqUCUacjpLXkLgouhHqjORbL4mldUPO622OLqZ0Q6cT25d8avKFJoBwD5HLfvrTn3oCa0jsiaUZHtN1k6iPJ5xwQnhJ9Hes3ebCqnetOhebdCttm3Vfev3117szzzxzxDsccsghboUVVvDHaD+JjqWFiG5EA4RUwsRkSiA3UJ+kntXpSiqdquO632xC+Gmrl6J7TeqI1qWm7byUP89jEoptrlRNDms9JTLaXXfdNSJZlmCVZVIhG8sygiMuev5HTvuqnwdxR0cnJRnaJCG61D0vlofUsdhkOtdKOeo2hOMpAldpndN62oTAFSNJshwhbTACkZj0tEBgkGXB6iaPhNzL/RCsILMMQtBJbJRNZpOoJzwfQVQTuLpux7uuAziBIbIiLMUmRK0QOyH36HZC66Imx8u9bex7SSPcpibIm9o7Ybrhb6lPTezKftiAmsxOHlkCFUIPhB9x7Id5L52kFhJcaozEeIcJZoSPgSDz6Xawbbsr75HS8X7q6qBsCXnH2Jb3Y2lvovlttdVWfgzGdZrApT9IoZzo57CPIYv0S3Q9LyVwtSm7VJ8jtoQeew9DOcbKoR/+oH6kOawErtK+RPcX/bZBKHf9PE3g6rp/iulYzlggdp8cS43b+mnvD7q+lvaNTdvdUsy0/zLld9EfjuaORcWe0eMDrav4heSjOdEHtozR6I9knz7HxBAwBAwBQ2AwCMg4zwhcNXgbgasGIDttCBgChoAhYAgYArUIyDI6mqiiHRYs90QUilDkK+OuCVyQdGITpvorb3EWSzQB8ha7h+MQakSEaJFytmpHvxC4BB/SSD2Dc/IcvRzl29/+dscSi4hE7mFfiF2QHHiOSOn7yP2prZ5kZCKMr+RxpElUMD2ZR9QwvrxGmEwW0lmYthALdNjyfhK4tANc8qKJZLEJ6BiBa8cdd3Qbb7yxJJEsUylP3l8m1bmJrxYpVyZCmUSX63oJzt7RE4gcF8dU7B04r8lA2tmVclZyT5Wk7mtTtlXP4xwkE6IfrLXWWn5pNiZDYqIJXBMnTvRLroYYolPoKBOAN9xwQy8ZTeDqHXx+JxW5L7yu5Df5o96wFX3QxBtdT3RUAvL+ve99b0SkMYm8J/mo0w1NINC6wf0lupjSDclPaiv51M5VyEJHHHGEjzgW3gexE5ICpAcmJXJEO5SHjcBV2jbrvlSTSQSPgw8+2K244or+Z6zvk3a2jsCl2zXqDUu9dS2639T9WficrvVSdC/VfsbqiMaD/KX6bml7pF5zrUy6EhkwrK+cr5LUxD73aPtCJpl1WpqQHOp/Sfuqn6fbKHmmJl6Ez5NrSraxyXTSkXLUbQjHUwSu0jqn9VTXuVi+9ASRkHPJk8hmm23ml/Dmd7i0N8e0bVVF4NLLF2p7izS6FtoTljknMpgsJxc+Q+eh63a86zqgseM96uoy18hSfbrMIStC6NHSxr7X6eh9rVN6grypvaPTjO1LfUq1izG7sl824F577eU/YAjzSV1nTASxWyKvck3JJHUqylr4zPC3bgebtrthWvI7peP91NVB2RLyjrIlMiRLldOvC0FczslWxuT8pt2h36QeaKHeshz9zTff7PUhNbbU9+Tu63ouZZyqh/0ou1SfI7aErqOjVY45WEp72JU/iGd2neawErjkPXnnVB/FObE5xVek9bSfNgjPRvTz+tk/8aySsQD3pSQ1fu2nvT/o+lrSN4JX03a3FDMii/NBACJtrf+h/q2xxhrugAMO8EdCv4W6bMSu2DN6fKB1FfshFslbR+olb7KSxIjE7YchYAgYAoZAXxAwAlcmrEbgygTKLjMEDAFDwBAwBAyBJAIQjCCkIAygcbBqhwUEBE2ikIQGTeAikg+OeARnMU4BvsZuIrKkRsrZqh39QuDSXyXmPEs7GTThRCIHjB8/vhdJSkcxwalX+j51+dIRwmQJER3ZR09yEolr8cUXn4OEFD5DnC366/86Atc73/lOt/baa/ukcGw3WUIxFtVLE7j4ypuv67XECFw6Ipu+NrWvHe+bbrqpn8wVB6zcg7MWIiMT4kxw8FtHCxOsYu9AGrGJNo6nnJWcq5LUfW3Ktup5OPMgNEEyCAX8EMhuiCZw8ftVr3qVw5FI9JkQV86DGZFYSEfXJ87xpSX3yH3HHXecnyzkXNeio6dAhiBPOBf1ck3yTE1IIOqHTOzHnPN1uhEjp/CcUl1M6YbkPbWVfGrnKtcKsQTylZRxmIaO7hie07+HlcCFfpW2zXV9qSZwiZ5oTHIJXDqdfjmxU/2mzm8/9FJ0L9V+xupIm3Y+Numq37FqPzU5zD3avoiVdYrAVdq+1j1vmAlcbepcSk/rJvljJGBN4IIUGS4jlkvg0umkbOoqvco9l9J7bBIiI0kkSE3gIu0u2/Gu64C2X3NxkInFWJnrNNrY9zodva8nHfUEOdc0sXd0mrH9unYxZlf2ywYkfxtttJHbcsstHVF3YqKxyJmkFqKGLMsIMZF+DtHLVseepY/VtYOpdlenEe6ndLyfujooW0LeFfIn9QgSRih8ZEF/zLKwiCZw8RtbfbfddvP6HiN9MW6cOnWq/1CD69tKrJ6n6mE/yi7V58RsiUGXYxNsu/YH8eyu05R2Ifx4sOo9NeYSwZ3rU7pQdy6mb6V9idbTftoggo9+nm6TOd9l/1Q6FpB8xrap8WvK7omlwTHt14nVUX2f1p2Y7abHXjG7PncMJ88s6Rvl3ibtbilmRKSXdj/2vuSFMQvjUKQrAlesbpC+EbhAwcQQMAQMgdFBwAhcmbgbgSsTKLvMEDAEDAFDwBAwBCoRkEgHt912m4NwUOewILF+EbggPzz44INz5JfJgZ133tkf/9GPfuS/4CUqDpF+iJTBcmV1wvJUkD5Szlbt6BcCl/6qEschjusqgZSEY1FElk9jAo2oACwXKUsyMgEDYU6k9H3k/tSWyVCcSDjSxXGl88XX0rLkWSqyUJi26IwmsNQRuPTX/xBgciLzVE1SlRC4iEyBfiNEBYiRE/W7MknB18hELCPPQhZ64IEH/Jfk1Bl5D3AcN27c0BK42pStxiTcJ5Ib+CDoA8uI8pU99Zj6tu222zomsJGQwOUPzv7HBDLRu9ZZZx0fkYiyFREnsyZwUQ8h1TA5IBHVIBcx4dSPEPp66SGiSsn76CVTJb8a52uuucYRwQCRCIByHdsq/eZ8jJzSRhdTDnCeVSWSz5DApe9ZcsklHVFG+PqWZXakrnANBDgZ5Ot79P6wErjIY2nbXNeXduX8F6d6GNVR49t2P9VvSrr90kvRvSYErtJ2nnepm9CR941tqyYEtX0Rm/hIEQlK29e65w0zgQtsS+tcSk9jk656MjM2QaSJV20IXHqZcMoTAlXXoskj2JtEVWNZYqKTUncQsdtCApfOS9t2vOs6oD96wKYIl6HVeWcf20CWYY6Vub6+rX2v05J9rVNiu8g52ebYO3JtalvXLsYIXNo2iUXlk2eJnmj7Xs7VbbHd6MsZ51B24CHCkuUsaVs3Sa3bJiFwQSQ68sgjfVLoAWPFHKlrB1PtblXaKR3vp64OypaQ99YT/NgVjHVoTyDPMY7ExmNMi4QELkmDLaQQlrXkIywhkHK8CQGH66skVs9T9bAfZZfqc2K2xKDLsQq32Dmp+134gyT9LtMcVgJXaV+i9bSfNoiUhX5ev/qnNmMByWdsmxq/9tPeH3R9LekbY1jVtbulmOmPFqZMmeKIth2KHssbgStEx34bAoaAITD3ICC+XfwMzDPh+2Vujj/25XfuG883adKk/+RePJauMwLXWCoty6shYAgYAoaAITC8CEhkJImmVOew4E36ReDSX0dqxN7znve41Vdf3R/iy12cyDKxyWQVX3vFiBtMIghhikhTGJgpZ6t29AuBSzuxifBEpKdQiFjFl+fIjTfeOCIK0BZbbOGIBIXwfBxQfNmM0wPnh5bS99FppPb1u5144onuwAMP9JfK5Ijct/vuu7vZtrP/ecYZZ/j3kXOy1ZMUEJkghyFC4BKSmFwvW/2F6mgRuPQkpyxxJ/mTLYONXXbZxZOKwIcJp0022cRtv/32/pLUclOyNCb6OIwRuNqUrWATbnHUorcIEzJEeAjroSbuCYGLpQaFeHXhhRd6kpxOmwkfJr0lXZbq0wSuK664whHZCTn66KMdy+sgqTL1J1v8W2GFFXyUMZKgnZSoArGoX3riVF8rUUF0NuomYWMErja6mHKA6zzF9iWfmsA1efJkXyZMps6YMWPEbeADSVSiN8SWHxtxw+wf2umbqmPhPfzWbZu02xyveteqc7FJt9K2ua4v7YrABcGZCVWIGdOnT+f1O5dUvykP6pdeiu41IXCVtvO8S6z85R3rtqnJYe7TeppL4CptX3Oep0kSTepbHQaxyXTukXLUbQjHdcRCbROV1rmUnsbypScz+zl5utpqq3k7FNsAEks/RPezsUkzTVTRBK6u2/Gu6wB9CQQAhA8kqJ8xYZk3yGfoF2RpJFbm+t629r1OS/a1TskEeYm9I+mltlKfUu2itkNEH/phA2Krrbrqqv5Dmphuy/iS95ClzhkvbbXVVv7Vzj33XHfVVVf5ffmno/boMQqkfexzveSt3MMWsjy2O3LxxRf7v5J21ydQ8S+l4/3U1UHZEvLaejxDnSOCnxYi7Gy33Xb+kBC4ICbysQPCRxyUtxYit2AXyhLrfPTCB1htJVbPY/WQ5/Sj7FJ9TsyWGHQ5NsVW6msX/iB5dpdpDiuBq7Qv0XraTxtEykI/r1/9U5uxgOQztk2N2/pp7w+6vpb0jSXtLm3WHnvs4WG8TuJTAABAAElEQVRO+U1ivjD9MYJ8TBuWFelSJojYHuE14W+xZ/T4QOtqrG6QhkXgCpG034aAIWAIDA4BI3BlYm0Erkyg7DJDwBAwBAwBQ8AQqESASQ++HkT4uh2CEV9nIbGQ4RzvF4ELQ5BJPE0CYaIRkgZOX74ExunLRJiesLrsssvcBRdcQNZ6gjOdfOIEID2+HGObcrZqR78QAbQjSpOVeg+ZvaO/SAsJHTwbYpNMOvAuiEwu+B/P/yt9H51Gap+v8XB0IBCsZLmz73znO46lHEWIgLTPPvv4n0SWgmgVinaYyLKUXCNRvdgPl/HaYIMNeo59zo8WgUuTgLQukScRvfQiSyYReYOJCiYskOuvv36OKBAa334QuIiMxxfROaKdnPq+NmWbeu4yyyzjqCtITF8gIBAdCAcjIgQultLEqY9AkItN/MkEkkzW6bK7/PLL3bRp0/z9IfZEbrn//vv9uS7/yVfkkqZMcMhv2WpihBxLRRsQp2VqEjZG4GqjiyndkHymtpJP7VwlGgYELdpU6jt6r0VP8MWij+lr2e8ngUvXA55VhUNs0q20bR60859365ek+k15Xr/0UnSvSR3RbUWTdp53iZW/vGPdNjU5zH3avsglcJW2rznP0+3UMBK4SutcSk/rJvljE0RdReCq05suzhMNBxInwiT3vffe6/flH8QWiQapCVxdt+Nd1wHyL7YA+7EovXrJHv1usTInDZG29r2ko7d60lEmyEvsHZ1mbL+uXYwRuPphAzJeIF0kpneQ6xm/Ib/97W8dYyQIjfIRyR133OFOOeUUf55/jPNog7EdEU3gwpaU5ZtOPvlkR53VEvtIpKTd1WnG9qt0vF+6OmhbQuxd7LrwAynGs3xUscQSS3h4hMBF2XEf5x999NFeuWsMdbse+6hBX5u7H6vnsXpIev0ou1SfE7MlBl2OuRjKdV36g/qR5rASuEr7Eq2ng7BB9PP61T+1GQuIzsS2qXFbP+39QdfXkr6xpN3FzysfTDQZI2myXOxDVPyu+DzZIkbgimmyHTMEDAFDYO5AwAhcmeVoBK5MoOwyQ8AQMAQMAUPAEKhFQBzjLOkHoWK0CFxkFIc9hA62Sy21lPvABz7gZEk1HXmH5RhYmgtnMU5mHAU4khGc/NyHsxYhchYRtJCUs1U7+oXAxfV6UoAlJIhMxfNwUEBCWXPNNbnM/fWvf/VLuPkf6h/RmIhaJcK9TLaFXx6Xvo+kW7fVEwtcy1IzkM9CkQk9jjPhQsQuyCo4iYhCJZGTwkhb8pUt9xGV56STTvL38TX91ltv7cuJc8hoEbh4to7mxiQDhB9IQgiEGQhcolM44PnyXE/AUW7cwzI9TE7h4MOxyD0I5fuhD32oR2gpmWgjHe04xNH6rW99q5dPzqek6r7Ssk09i3cGC3l38nj77bf7usGSiG9/+9s9IVTuZ6KOCTuch+gj96GH1E10DYHsxVeoEtWOiWic9tpJqwlc3KPrbsmyP6RRJ3qCnGurlvFBv/VY7c477/T1IXxGnW7ECFxtdLFKN8K86d+ST03g2n///XvRDWlfmVAV4i2TQLS/MglL/8JSpFWiCVyQddD5KoFQy3KWuux1u131rlXnYpNupW2zfk6MDN1VBC4c8YsssojvU4SMXYVdyblUvylp9UsvRfeaELjIU0k7z32x8ud4jmiyAvYAeYe8Sb3QeppL4CptX8lr3fOGhcAl5Uu/CTmHfhW8SutcSk/rJvn7OXlKW8nSssjXvva1OchV/kTLf5pIgx3PsuLoIDYwE6r0xyJ64q3rdrzrOkCe9QcA2J0QwYWkzdJs73rXu3p2ho72GCtzwUC2be17SUe2sQnyEntH0kttpd6k2sUYgYu0urYBdb9NH0+ULFlWiXEbZQDJHuEjGz62YewkUdWo9/SNLEe98sore12FuCqiCVzUoQMOOMCfYkzyzW9+04/taCf33HNPTwLnpB6L1bWDOjJdLpG1Ssf7pauDsiUEd60nfMjC+BrMiUYL1kSeFiHa1ne/+13/U9u+RMllzC5CNGzGiYwlGUfxMVYXEqvnsXrIs/pRdqk+J2ZL9KscdXkRFRv7uFS68gfp53eVphC40MW6j5rQMT7A0pjrKO9VulB1LqZvvGtJX6L1tJ82iJSFfp4QuLrun9qMBSSfsa0ux9An0i97Xz+zn2M4ed/SvrGk3W2LGXnGP3PCCSf4D0Pp7/Ep4qsRMQKXIGFbQ8AQMATmPgSMwJVZpnpSIPMWu8wQMAQMAUPAEDAEDIEoAiw/ss022/hzONll2b+Yw4KL+hWBS2cOx74QQzgOMQMnJY47kR122MExUSHCPRBCcFKJQM6B6MVXZkjK2aod/ZoIwBdxODokLzyDtHB6iXCMCYmY01Q7s7j+vvvu85Mccq/elryPvr9qX4c+5zqcn0SmCYXJFrCQ9+U8mON0l2O8L0Q2CG0ienJFjukt98j9o0ngYuKa52sdoTwhDkn+yLeefMCpRhQBiVzGefRMIkvxW0c2Ay+WzGRpudKJNpxhOIS1pELW62uq7istW51+uK9JKJwLdQXSz0ILLeRvQwcgM0H2CfURZzvnqVdSDvzma86HH364ksBFmYIV5YSwjBzR4bqUbbfd1hGRRYSlHy+99FL5OWL7jne8w6277rq9Y6nlSOt0I0bgaqOLVbrRy2xkR/KpCVyQs5igol1AKCvKkPzpeiFRNyLJjjikJ4JHnEj8kIhvqXa76l2rzsUm3chCSds8KOe/LENHGejlWxPQFR1O9ZuSWL/0UnQvRVSI1RHyVNLOc1+q/DmXI5JfuVb0X+tpLoGLNErb17rnDQuBS+eT99VtTEmdS+lpbNJVT2b2c/IUQvfyyy/P6/kIREJW9gc6+gfphckz6TtJlr5Y+kTaBm0bY/Ogq7TZXbbjPLfrOkCaIYGad0Pk/dj/3e9+54lr7COxMn/uzH//t7Xv/5vSc3tap2SCnDNN7Z0w3fC3YJxqF1MErn7YgELOII/oGbYw5aJtbIisjMOk3Ii+JBGcwncjDdFjTeDiOh0BmN9ci8j1/IbkwTgL0e1Lk3bX31zxT/CXS6Sd53c/dHVQtoS8j/YJcCzEORwzQd5DD8LxLuXNtYydpIxILycqK9flSKyep+oh6XVddqk+J2ZL9KscNXkIX4QQXHPwC6/RZd/GH6TT7SpNIXDptFP76Cz2sMZcE7i4r0oXUudi+kZaJX2J1tN+2iDkD9HP61f/1GYs8Fwu4/+rxm39sve17sT8odo+j/UvkCkZD2tScfzt/nu0pG8saXdLMQv1nJxrf5jeNwLXf8vV9gwBQ8AQmNsQMAJXZokagSsTKLvMEDAEDAFDwBAwBGoRwOGCowEHK45o+WI6XGJPEkoRuHbffXc3adIkf9lFF13kLrnkErklud1rr738l9M4elkWjWhNelKGG3HiT506tef814mtv/76juVhhEigzxElB7KIjv5CJIL99tvPX6YJMSzpgWMC0QQufrNEy3vf+17/9S6/tUAsw7Ezc+ZMfXjEvkywc1CiEI24QP1o+j7q1spdvTQCF+Lwfeyxx6L38L5MfAjxRl/EhN/xxx8fjSJB2e+2224jHPXcy1d6OCeFGJhL4II0xZewsahK2pkXLsPCM/VSiKeffvoIshlp8n7LLrssl44Q3o8oAfxpSWEievvLX/7SL0UqenjVVVe5c8891xO/Uu9A+qmJNs7pLyT5Tf0g+lSdVN2Xeg/SrCrb1DOZmGGCGv3SgvMcTIjKddRRR/Wi6EHGIvoWdZw6J22Nvpd9JgEhPhHRC2G5PgicSBiBi2ObbLKJjxDHPs8mEpFEVuNYWyEa4Mc//vFeMkxGysC1d/D5HdoRWSKIvNCe4NQMpUq/uTZFTkmVYZ0ukmaVbnA+JpJPTa7gOiIqEPlFE7b0/bSJRMmIvbu+jn29vFN4LvZbCFxV7XbVu6bOSSSD8F3JQ9O2mSXL6JuQWF+a6/xHz9C3lEByhPgoE1ap69ocT/WbOs1+6KXoXqwP4NmpOsK5kna+qvxJs0622GILN3ny5J49MmvWLG+7aD2NTfSkIsGUtq91z+sXgUtHgqK9lDZYyjGsV7T/RFAScjR9kI7M0rTOpfQ0li/aLexeJEZo10sohjYE9+jls2NlyjWIjsIaLrP93BXd/Ke9IXqu2CCSKphjB7PEorRHnJNILV2246TbdR0gTYSInkR0DYV2DzuBNlaiQHJNrMzDe/lNu9XGvtdpap3SE+RN7R2dZmxf6lOqXayyK1PtNM8psQGJ8kZfho0WE5a1JMqqHm/QX1HPdSQn7oXsw6Tvjjvu6Em4IYGLa9BxJtZDYZKcsRhjDZG6djDV7sr9qW1Kx+X6rnV1ULaE5J9tSDqUc5QjRJo99tjDvfrVr/aHsT1ZahFhDA9hRxO2/InZ/6ifRE6VJdDleJttrJ6n6iHP6brsUn1OzJboVzkyxpKIt/hniGRZKl35g/Tzu0qzhMClMQ8JXFW6kDoX0zd516Z9idbTftogkj/9vH72T6k+JmeMKnmNbVPjNq7th72vdaefYzj9rqV9Y0m7W4IZeV1xxRW9zaRJ2hzHb0NUdokEnUvgEntGjw+0rsbqBs/ThG76H/TLxBAwBAwBQ2AwCIgfnI+JsPOw+/FB8Me+/M7NzXyzJ5Ke+ywn944xcp0RuMZIQVk2DQFDwBAwBAwBQ6AxAjgH+KoVJyQDdxzzVYLDY9VVV/UELBwKTO7feOON7vHHH6+6rdE5jFCWjyDSFMv7kDbRhPjqv2vpx/uQpixbR975OrhKML4nTJjgMeVLeaKLscRILMqYTgecuI+lbTDoIXFQHsMokHIoT4hc5BWiGcuBpARMiKyEHhBRgGshJIlgn6+00kr+K1dIZTJ5LedLtkyOEV2DQRJRBfQEZVV6VfeVlm3V85iIX3311T2RhMlUiKBMrCLUSUhNEALvueeeEfrABN7EiRP95DL5YllLdOyWW27p3V/13Hn1XBtdrNKNpngyYIcAQD1iAol6RLvNJCpLeY22VL1r1blUvvvRNqeeNRaPD4teauyatvP63pJ9yFH0f5Ah6FO66AdK29eS/I/GPfQd6A5tvyzBJvmwOidI1G8htmOjYNM89NBDvh+F5CMCiQt7gok22mixJ7pux/tRB3gHbCxII4wRIAbTx1x77bW+rsk7lmwHZd8Pi71DXcNOxy5rYt9XYUuZQMRmCSXKBjsAe68q4hw2A+XJPZC1GGPkTMKir4z5sLfRb4iy3D9IqdPxfunqIN+RvhP7Dr2F8MG4hn5NBP2hDBnjUQYi0g6hE5BzWYqe9ujWW2+tHc9LGv3czgtl10/85qa0q3Sh6lwKg0H1JanntzneZf/UZixQ9Q5147ZB2/tVeW1zrqRvLG13SzCjD2bcTx9Mn43fRyJftnlvu9cQMAQMAUNgbCBgBK7McjICVyZQdpkhYAgYAoaAIWAIGAKGgP8qmmglSO5XcQabIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAobAvImAEbgyy90IXJlA2WWGgCFgCBgChoAhYAjMowjw9SiRFgiTPmXKFB8dKVyiaB6Fxl7bEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUOgAgEjcFWAo08ZgUujYfuGgCFgCBgChoAhYAgYAiECe++9t19Oh5D+IpdffrmbNm2a/LStIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAITAHAkbgmgOS+AEjcMVxsaOGgCFgCBgChoAhYAgYAs8hAIFrvfXW68HxwAMPuGOOOab323YMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMgRgCRuCKoRI5ZgSuCCh2yBAwBAwBQ8AQMAQMAUOgh8Byyy3nJk6c6Fg28e6773YzZ87snbMdQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQyCFgBG4UsgEx43AFQBiPw0BQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDoDUCRuDKhNAIXJlA2WWGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIZCNgBG4MqEyAlcmUHaZIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAhkI2AErkyojMCVCZRdZggYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgC2QgYgSsTKiNwZQJllxkChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGQDYCRuDKhMoIXJlA2WWGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIZCNgBG4MqEyAlcmUHaZIWAIGAKGgCFgCAw1AltssYVbYokl3GOPPeYuu+yyoc6rZW50EXjta1/r1ltvPfeKV7zCPfzww+60004b3Qy1eDrv8MY3vtGncN1117lHHnmkRWrOvf71r3fjxo1zf/7zn92VV17ZKq1hvHn8+PFuww039Fk788wz3X/+8x8333zzube97W3uRS96kbvnnnvcHXfcMYxZH6o8DQNmg9bVQT9vtAp8scUWc5tssknR42lPr7/++qJ7w5uop/TpTzzxhJsxY0Z42n4PEQLYXyuttJJbdNFFfflfddVVQ5S7sZUV/HObbbaZ75duuOEG99BDD/kX6Lo+TJ482S2wwALud7/7nbv99tvHFkiW23kWAdoY7DVk+vTp3obvCozVVlvN8Yecd9557t///nfrpBdccEG3zTbbuKWXXtottNBC7qyzznL33Xdf63QHmUA/cKnKf8xOr7q+7bkuy2gYbOO2eFTdT9mss846/pKbbrrJ3X///VWX157regxb+8CCC7rUj4LH2y2zEdh6663dIoss4mbOnOluvvnmMYkJY8iVV17ZPf744+7iiy8ek+8QZjpml9JfrLvuuv7S733ve+Et9tsQMAQMAUPAEOghYASuHhTVO0bgqsbHzhoChoAhYAgYAobA8CDAZNMyyyzjM/Tggw+6Z555ppe5z3/+8945/pe//MV98pOf7B23nTgCTILgOIXAMmvWrPhFAzg6YcIE94IXvMA7tJ588sm+P3Hbbbf1k6PyIAYNn/rUp+TnmNtC3tppp518vn/4wx+6q6++utU7fOYzn/FOUurWYYcd1iqtYbx59913d5MmTfJZ+/CHP+yeffZZ9+IXv9h98Ytf9Md+85vfuOOPP34Ysz4qeUq1E8OA2aB1ddDPG5UCn/1QJhn22GOPosdD/Pz0pz9ddG94k/Tpf/vb39zhhx/eO73UUku5hRde2D399NNzEFarzvUSGIKdVL0agqw1zsJHPvIRt+yyy/bugwB7yimn9H4Pemes6EAKFwjm++67rz8NiUSI1Kn6UKVLVee++tWv+mdA4Dr22GNT2bHjQ4jAoO3mYYLgNa95jdt///19ls4++2x37bXXdpa9gw46yK2yyio+vY9+9KPun//8Z6u0559/fnfUUUc5tiKnn366+8UvfiE/x8S2a1zqXjpmp9fdU3q+tIxSbesw2MalWOTch22IjYjwsdwFF1zQu62k7+16DNvLTEc7VfqR0oGOHm3JKAS+8pWveFL7r3/9a3fCCSeoM+ndYesn8U0uvvjifuxyxBFHpDM+hs7E7NK9997bfyTJa3zwgx8cQ29jWTUEDAFDwBAYNAJG4MpE3AhcmUDZZYaAIWAIGAKGgCEw6gi89a1vdfwhp556qrvtttt6eRInghG4epBU7nzoQx9yyy+/vCdwHXrooZXX9uskBDIhT91yyy3uO9/5Tr8e1Uv3s5/9rBP79+9//7v/evi4447rnR9rO107v+d2kkpsYmhun3Bpo9OpdmIYMBu0rg76eW3Krc29w07ggmyJ/j311FNuypQpI1616tyIC0f5R6pejXK2Gj+eqIXHHHNM776//vWvnlAxbdq03rFB74wVHUjh0pTAVaVLVeeMwJUqgeE+Php28zAhMpYIXET6ZTIb4WMZxqdnnHGGjyIzTJjW5WVuJnCVllGqbR0G27iuPNucryJwlfS9XY9h27xb7N4q/UjpQCwdO9YOgaYErmHsJ43A1U4H7G5DwBAwBAyBuQ8BI3BllqlMYGVebpcZAoaAIWAIGAKGgCEwaghoAte3vvWtEcu+GIGrWbEMg+NxNBxs4gTsMlJMM+S7vXrJJZd0LF+FsGzVAw880OoBcztJJUbgYskTjr/whS/0E2tjLTpCqwKvuTnVTgwDZoPW1UE/r6Zo+nYaUg5LlYSy4oorur322ssf/uMf/xiNVEfEEnHEhPc3/U27Rvv2pz/9yV100UW926smCavO9RIYgp1UvRqCrDXKwhprrOEOOOAAfw+Eeoj1oy1jRQdSOKUIXKn6UKVLVeeMwJUqgeE+Php28zAh0k8C19prr+1IH2Hpp7ZLKNJfvu51r/Pp8YEKH6qMRekalzoMYnZ63T2l50vLKNW2DoNtXIpFzn1dE7i6HsPmvEOTa6r0I6UDTdK3a/MQEN9NbgSuYewn50YCV8wutQhceTptVxkChoAhYAi4nt+Qj1zwxWNHszoLf+zL71ys5pu91MZ/ci8eS9cZgWsslZbl1RAwBAwBQ8AQmLcRMAJXd+U/DI7H0XCwyaTl73//e/flL3+5O0DnkpTmdpLKICeG5gaVGIZ2IoXjoHV10M9LvfdoHYfAdfDBB/vH/+EPf3CQpkdDqgg6VedGI6+pZw5zvUrlOXZ8nXXWcfvss48/dfHFFzv+RlvGig6kcEoRuFLXV+lS1TmxhWwJxRSyw3l8NOzmYUKinwSurt/zne98p4P8hBD9FzKyST0Cg7TTS8uoqm2tf8Oxe0XXBK5hR6JKP+ZVHRiNMjMC12igXvZMI3CV4WZ3GQKGgCEwLyIgH34agaum9I3AVQOQnTYEDAFDwBAwBAyBUUfgpS99qdt1113d0ksv7ZZYYgmfn4cfftg99thj7sILL3SPPPKIn0xeaKGF/BIVRx55pGMZKBznyyyzjHv66acdhJ0rrrjCPfTQQ9H3geX/5je/2b3qVa/yzyCSyG9/+1tHNB4muEqEZ2+11VY+DwsvvLD7xz/+4R34P/nJT5JpbrbZZv4L8Fe+8pWOSChEiiLv55xzjmPJPy3ked999/WHrr32WnfPPfe4t7zlLW7llVd2iy++uHviiSfcvffe66OXsLQRstpqq7kNNtjArbLKKm7BBRf0x26//XbH+/LF+bPPPuuP8W/RRRd1m2++uZswYYJbbLHFfF5mzpzprrvuOkcEFpFll13Wbbnllv4nX6yfeeaZ7plnnpHTfssyBEy8/Otf//LvM27cOPeyl73Mrbrqqv48+SP/t956q7v55ptH3Jv6wVIV22+/vc/fy1/+cn8ZEyR33XWXu+CCC0bcBvmPd5j9UYY/DpY8C2x//vOfj7g29YOlHrifdMD+ySefdA8++KD78Y9/7ATf8F709W1ve5vXAaLagDN6+7Of/czddNNN4eW937m6A44bb7yxv4/Jc/KkZbnllvPPR5+oH+ggAyWePWPGjDkiDDQlqWgdBEf0DYyIOsA4A325+uqre5HB0D0mqKnL1EvRzzDf8g65OijXyxZd4znoJrp45513uhtuuMHrqejAhz/8Ya/vvAPtC4JOkGctvMc222zjVlhhBfeSl7zEY0Z50z4QGShV9jqNnP03velNHpf777/f6yT5px1jqdO//e1v7r777nPnnntu70ulMM2m+VxqqaV8+0Q65513nm9vmDhDZ3k3cEm1EywHVIUZbcuOO+7o6yZlSLuC3v30pz9111xzzYiscx116tFHH3WxpdfWWmstr0+0HbRRbJEqXeULLr4Mpg+g3vH1FvpGv0HbQJ+hpQqL66+/3uMTPo+2esLsthG55JJLfFvgf6h/lMkuu+zij9C+UedypEnbRnpveMMb3Ktf/Wr3+OOPex1ZffXVfT2k/oMFkfnoy9pEAKkjcEnfQn5o337zm9+w25N3vOMdXsdoA0877bTecXbQOeoYcvnll/t2mfKDrECfjd5ssskmjjxQtylP+ppf/vKXviwp29Q5bAQtlBntEPWKfhkyGulQzmEfm6MXOu26fcEoVa90/0t0K9p22krabt4RvT3//POjulb1bEhW6AHtPu3bnnvu6XWXfvzYY4/t3Uqdz7GD0M+ddtrJ2xnYGwg4zpo1y+vZ3Xff3ThNuWHy5Mn+nelbqVdbb721W3fddd0CCyzgPvGJT8hlc2yr9CPUgSZ21hwPihxo2t5EkugdShG4wvpQpUuUM/1clZ7VEbjow8WGJnP0S9iK2Ge0/7kibRP6e9ZZZ3m9w5bC1qbfp1+m7tEuUN95T/padB59p83Cvo1JaTvZj7yQvyaYCS5N2mz650HazbwTJE3+6L8Zh7DPOIO+jXY8tJe4JybUYWwc8k+5YdNQ/ozLfvWrX8VuiR4LCVyMc0gXW4/2C/sanYn1tXXtIO/GmASbEbs+lFx7lH53ww039Gnxvgh5Il1sHCYpUiJ1gPNE1aVekNaaa67p7U/a2RtvvDFZJ7gvN59ci7TFpbSvamKnP5fT+v+5eSkto6p2F/s0ZRvzPNo2zv/whz/0thDtIPYttgwRLLFzGPMz9mfMSvvN2JY2Apsc2zUVFa6JXVOPYvqKGIGrSd8bplw1hgWHHXbYwfcVtDe8OzYL9gX1qEk/JM/tQj9o82jPqvpXeV6Tukj7tW9Dn448J7Wdf/75vb2HzUz/HYswjf+G9jM2BmNsxhgGO5TxLzYy15EO/XZKmvSFkgZlTFsHruwzbqHdvOOOO/wHd7xDTgSu3H6yqf0g+azaUoYbbbSR97UxrqF/om5jk33kIx/xNjP2xxFHHDFHMiV1GPsbHxP9BjYy/TR2E+Mo/CsxyfUv5Yx/QruU54UELto56gvR9ujP6MOuvPLKStuhBIvYu+pjXdkgOk3bNwQMAUPAEGiHAP0WYgSuGhwxjEwMAUPAEDAEDAFDwBAYZgRw8H3sYx+LZhEnHo4KWUIRxwgT/LEloJgcZdKKiSgtOFkOOeQQB1EsJjiQWP6iiWy66aZu22239RPNsfsgQTGZJcJE8gc+8AHvJJNjekvezz77bD/ZJcdxPhFtAiGPTDyQTigQTD73uc/5CWDyxORlTD71qU/1yCFMIuKEYWIyFJymP/jBD3pEDJyspI/zCGHi/vjjj+/dhgNzypQpfnKFgxC8IH/E0mYCeOrUqb17Uzs4w9/3vvf1SGjhdQwCTjzxxB5x6P/+7/96+dPXMmjgvauEfDJxLCSx8Fr07Zvf/OYczihIAjg+cTrGBELOCSecMAdpoInu4BhjIh1hUgCylMh2223nSCslTCYdddRRvTLnupCkkrpXjmsdpOxwAnMsFIhH6CfEklDIB/rDxIWWJjqo79tvv/38pIg+xj56i2MTRzQiBC79DqHuMsl80EEHJcuQNL/xjW/MUfb+AQ3//c///I8nMtGGUWdpl0KhHaAtwhGvpSSfmigA+Y9JWdFViJA4hGNCfcGJL21PiBlEmgMPPNAxcRATJlgpb5EvfOEL/lrqLEtMhKInjNBPJrOQlK5CHuNc6vnci/MY0ppIFRaQ/0466aQ5nkfdZrIBgQBEGxCKbm9z+5GmbRvPREeZ9EA/IE8xoR0TJgAvu+yy2KnaY3UELiZsZIlFJhuPO+64Xprjx493hx56aO/3l770pRH9MG0YbRkC1mAufToT/Ycffrg77LDDenW3l9DsHSFGS70Oz2nbgcnAFDakA5lJL0Oboxf6eXX7Wh/Ca3X/C8Fq4sSJ4SX+N20OhJbvf//70fOxg0LWYSKJCWjpq2lnhBTVxA7CVqLviAmTbaeccoo/1SRNSUvqNRNf9AnojsgHP/hB2Z1jW6UfogMldtYcDwoOlLQ3QRIjfmqdo42irULC+lClS7QBTCLGRPRMdCKMwEW7SXvCBFpMmEA/5phj5rBbYtdyTNom9iFrQUoOhT6PZdHf+973Ru3C6dOnOz580NKmnSSdLvNSgpng0qTNpt0cpN0MThAK0EnanUsvvdTbCRxHsOWrJvGfu8q5j370o/4jBvkdbmlz0akc0QQuPsCAiBsTCKBf+9rXRuip6HyqHZQyIT3yzGSzCBjkjon48EUIyXK/bE8//fQoiULO6/ejLYW4JXaZXMOWess4Swjtcq5JPuWeNriU9lVN7XTJa9W2SV5Ky6iq3a2yjfVYDTIHZIKwXKlj6Cx1LubDQKepJ1ynpaldo+9tuq/tcWxJbMqcvjf1HI2LHsNCHmGMFhtPktZTTz3liMqU+vgn9ryu9AP7FCJYTKR/5VzTuqjHork+nVge9DEIpPhfEIiyJ598sj7t9z/96U97/wY2sNhKnKjzYTD2w8+iSYUlfSHPoj/HD4c/KRQ+vEEfqC85BK6cfrLEfgjzFf7GFgS/mK8IPwf9CbZzjMBVUoch3kI6jgltBB9AhFFxm/iX0F/aIiT0Eci4OLRLuVYTuBgL4p+ICbYDNkQoJViEaYS/u7RBwrTttyFgCBgChkA5AkbgysTOCFyZQNllhoAhYAgYAoaAITBqCOCAghCA44MvABGcd5AIIHDh5BYngmQS5wVEAa5hYlecgPz++Mc/Lpf59Fjagq/mEM7jLMJGgsAgDtZcYhFp4FDBsSICMYEJCt6DL9BEcKTJl+dC3uAcTh5IZjh8IMSIvcY7QXYgf4h29vkDs/9xDSQVnGBE4QrzzyS7fDEnjjK+hkNwhvL+RF1g2QARHKSQJkhPO5Vx6IhzCAcNhCoRmYTnt3bu8uXs17/+db8UF2mRJsK78hzKkjKtEnRAlxn4ghfOM74sFOIGaTLxj3MR/dH446hkghgsv/3tb1c9zr3rXe/ykyhcRJpMGuGAwwEojjom4XgW6SJ8Vc0EhQiTnkSSYUIbHRB9C/Wqqe6knN+QLSAEUv7oBGQx3hcyJJjLJGA4cSaT57wn5VYnMR1kQokvdPlyN0YoZKCGjlMeop+iF/K8Eh3k3v33399H6JF0IABAUiACmbyznKsjcEFyQM9En3gnJlAoc5zJQoLgXXAOthXdBkha1An0mzZM8k95MknAcaQ0n9o5K89jS/roOPWJNjDWTqDvMQIXbTSYSblSH0iLNCBiyHHtuO2awKUdtZQ9E51ghO6TP5H//d//9W0lv6uwICobpLmwbkBMJdojEk58+IOz/+ky1c+T8+G2pG0jDT3xLGmiH+gP9Z2yFKF8SpZyqiNwoZ9MLlLGQrqSZxJlTSIFcoxIEz/60Y/ktCcR0TbSVrMsDSJ9uqQFyQuSGnWZZ3AtfTztGtvUOSaYED15h45Tn0mb9phoPwjHmUCVqJs5euFvzPyX0//qyQ/yQ79BedG30fZIHSISF9FrckQm6MNr6dfR61Dv6uwg9AlCHriJTUC7Tr8IMYZ8NU1T8ib1TH7LVuuGHNPbKv0QHdD1MdfO0s+I7Ze0N7F05JjWuSoCV5UuEblnk9kR61LtN+UrOhESuGQyl/zQzqN/1G2JCstx7uc6sXc4lpJY24Tegb/UZX0v5Yy+075K38t5yL3S54W6xfE6G5A0+pEX0i3BLJaXujabJWwHaTfzbkzgopMI7ZG0P+xDRoKMUiVE0COqH4I+YeuhN7Rn2gaEHBZGyoulqwlOch57FT0Nx21EypG6z7Wi83KfbKUd1GVCvUZHkab2KNEwIfpgA4udKOMsPsSR/kWer7ex98Om5v1IT9pb7oGIduqpp/Zub5pPubEUl9K+qsROl7ymtk3zUlpGVe0uY+iUbazHavIO9JfYaLptlXPUL/QS/dF2K0RWCK0iJXaN3FuyjRG4cvre1LM0LprABUFc3ptxHOMI+iHsUKlT4ccgqWdwvEv9oN5R16r615K6GBtPowdVPp2qd+YcbWwJgYu2FFuM9p480CfTx1ImK620Us+HQURlIjOKlPSF2LWMaaVvoQ7hM9H2paSfQ+Cq6ydL7QfJQ2rL2Er766i/YKd9idwbErhK6jBEeOoiAl74shjT0JbgNxThQxpIVEhT/5K2RSU9tryTjIvDcRrndV3jN4LPFh0K/Yjojo7KXYLFc09I/+/aBkk/yc4YAoaAIWAINEXACFyZiImBkXm5XWYIGAKGgCFgCBgChsCoIcCSAvwhfK2vo9CIE4FzTA58+ctf7k3OM9nIRLs4/Yj+guMP0Q770BkOSYOQ50Jg4BnihPc3J/4dffTRPeIK0cE0IUk7EoS0wlIqb3/7231qGLHkjwkyEe0MkYkGzoXOPhwkRBDBSYIQ7eg973mP32cCgHcRYZKcL9dxxOjIKJzX+Q+dK+SV8PQ42kLSgs4nEypE9iBCDV/TIVzPJBxbBKcWTjskNzoN1x5wwAG9r1/DCRocvDpaFkuNnHHGGdzmRSYqcpyAcg9EFbDGSQb5TyZ1OK8nt4hKRuQLhDLESYiEDnccWJC9yCtCtBKIa4jGPkd3Us5vIpVMeD6CBl/p86WsCPUBxyyTo2EZyuR5KYELghMYC0Z6wpznE3WO6HMI4xDqJWQ2Ji519CWNQ64OMuHL88ThzMSWtBG8K4QtTaCsI3BBdGRpAiSMmMcxvrSFFISAG3WzjWisqJd8RayjAaHXkFwQHeGoNJ+hc5ZJEoiX+pmpdkK3PToCF0RJIvwg6IKQvPgN4RHMEa1fXRK4mNykLBAmAKiHYCmioydoAmoOFrG6oScriBwIIVME/cahj4T6LdeE29K2TfdjvC+REfRkOO2N6H7YroR5SP2uI3Bxn9ZRlghhogLRz+c3/Sj9qQgTn9RbrTPSpwuBS66V9pj+Tiam6s7R19C+8Az6QsqKySgRlnckIgbCRCH2A5KjF/7Chv9S9Uq3YfQ35JP8iBCViwkOBKIL/SckxTqRfo/rSJc+kT5X6obWnyZ2kJ4QCtvp0jSlnpFX8sdkNXVV7AaOV0lKP0rtrKpnlbY3VWlqnasicEkaKV3ifNU50QlN4CJq18477+yTpj+jDxL9os2nHgtpXbefkpfYVusB5cmHC0RvQEKyCmRMoqWK/attSpYngxyIdNVOdpGXUsxCXHLb7EHbzdrGBXtsDwjN9Gk5Iv077Q79pegT9zIGQUcR3e76A4l/oc7Qjn33u9/ttWVExnn3u9/t23qS0MRp0XmO17WDmsBVYo/yDD6EgciBiL3pf1T8C98v/MiD90P/EeoTRBcZ85XmswSX0r5K30f+c+30Csg82VNs/6b9ZkkZkZdU25qyjfVYjfsh2RKZGIEUQ78nH/bwDtgg2EOI1gkdRanUrvGJFv6LEbgkqVTfK+djW42LELgYI8t4MCRpgRF2H3qE8KER44kq0TrXpX6kdIC8lNRFrTuk0cSnw/UxKSVwaX/bz3/+8xERX9FX+VBHk5FK+0I9bsQux+7FTkfWW289H9kX2x3J9d1U9ZOl9oPPQOIfvi6iMiNggu0k7TK+RPxs4oPUmJXWYdE9nqdJWvzWNqQen2udDMeBMd+kTod0Yz6C2DhN223cR7RgdEhEj8Opu/jV6AtKsZB0U9uubZDUc+y4IWAIGAKGQHMEjMCViZkRuDKBsssMAUPAEDAEDAFDYNQR0A6lKgIXEZX4OkwLS7OwhBsi9+LUkwgqGI9CJtL3aacMaZJ2legJ1tDxyH04H3FyQt4REoP+ak9PNujnaEIQk+RMgmhnH84PJkfECJZ79X16+SFx/nCfJnCxvJQQriAVyVJIkh5b7WzTWONgYzJBiEtM9OgvNfkSHsKVSJWDTa4Jt7wzzhieBUmISZZQICiBIyIYyzUyUZHrBOQ+IRcwgQz2Qk7iHF/EC0mOpY4gjOFwxIGFhBGu/MHZ/yZNmuSJcPyWCdQS3Yk5v0mT8oVchANYSCQcF5GoaGH5y+R5iJvcF25DHcTprifotCMvNkEnhA+dj1Id1F/168kRyTPRwKgP4giWCTX9DtrZuf322/tlqMgb7UQ4Ycn5TWZHOUGIKgchs41oAteMGTPcj3/84xHJ6UkeJiGEDFWaT+2cxVnO5LzWbR6eaidimEGSo24i5A8CD3qkBUctzmwEXQFTca6mSE56wgj9FKJcTFdXXnll3z6RPoRKIQvyG+HLZCGy6kmJHCxiz9PkOciC9C0i2kkdK0+5TrZt2jZNBoi12+uvv77bbbfd/KOakGUlb2xzCFz6nTWhR5Y0oS5R/7T+EjmL/CN6icfYxADXVE0Sps4RHVKW8UgtYSWTG+QRPUV3c/SCPDWVVL3SbVgqIg39jSxFqwk+VXmQfo9rIHnrCDBt7KAUgatNmlLPyGusHed4laR0oNTOqnpWaXtTlabWOV2+qfqQ0iWeUXVOdELsD67HbsJ+og7QH2E/aKEPpZ4gTOZhc9aJbptuvvlmT7bR94h9xTHeUX8kodscidrYVTvZRV7IcylmGpcmbfag7WZN4CLKBwS7JsL1jHdYZjg2fpK+AcJ1allW/TxNZknZDHppKT6qwBZAROfZD9tBjukyEQJXqT1KeiXkIP1+2GXYyKEdpe1qiWbZJp8luJT2Vfq+WPuestPBMyU6zab9ZkkZkY9U2xqzjblej9Vi5HNt/8fIsRC68B9ACpExXaldQ35KRdvjsoSipJXqe+V8bKtxEQKXrgOxcSNke2xvhKXLhSgTS59j/dKPlA6U1kWtO/TBTXw6qXcvJXDpjxpi+oifCNud8T7jX6SkL9T1nXEBH0ax1aLb81zfTaqfbGM/6DyF+9q+xKYh6rkWHZFNE7hK6zA+CexsBNyJ0qaFdPEZ4JegXpX4l7QtmvIRxOxS3T9pwqnOn84//c+9997ro/iXjNN0urH9rm2Q2DPsmCFgCBgChkAZAjJ3xZiO8SJ+Quxd/tiX37mpzzd7kuW/n+7m3jUGrjMC1xgoJMuiIWAIGAKGgCFgCHgEcghcOL00IUmg01+XycQySyHstdde/hLt5Jd72PLFnExYsNQBTtYq2XXXXd0GG2zgLwlDy8t9TEoRDQUnLpEIZAIr5tSVe97//vc7JgsRidiknX04b3DihCIORo6zT9QO2Y9F4NKOTnGq+BvUPx26neVTTjvttN5ZouzwHIxtLeF1nEs52PR94b6e0KsiIlBmlF2oDzJRkesE5PmaBMdEyi9+8Qt39dVXz+Ewk7xqHRCyoJyTLSQ30kWk3PV9uboTc37LM8ItzjzKB+c3uk8ZhfjI5Dnv2XQJRT2xIM9m6RzqHgLBjQlpLZBpJNy/EAxLdVAcgrwT6YZOYJ6rI5PVEbh0PmUfnWLpHxzXTCBIFLWuCVy8C9FIQoFkSr1BcHSnotLk5FM7Z1N1SdqPUE902yOkN103Y+RV8syX9ThoaYeIpkK6XRK4eEYoOABYgpL2bquttuotcZEicKWwiNUNSGu0NdSlsM7oCTkhq4V50781fqk8cH2sbdMTz0yI6+hS3EPUHCFbhFELOZ8jOn9hBC25X7fp8hwdeQ1CHeRVRPKpJwSFnMz52MQAx6smCVPnZHIFvUOnY0LUFpZVQqSPzakjsbTqjqXqlSa0Ur9DQiXpbjKbNAppE4mRUPyJ4J/0e9LX6NNt7KAUgatNmlLPaBvAiW0TSelAqZ3V5Nlcm9PeVKWpdW6QBC7yLZHnWIpHiFphXmVpq7BPCK+T37ptCqOBco20/5rUKfcScZI6gdx1113uG9/4xggiaZt2sou8tMFM4yJtobw321SbrdvYqvfXaem2u+qeWN+iCVxESyJCX1vhHegXaMsmPB8ptoTAFbMpyZvGSOwTjle1g5zXZSIErlJ7lPRKyEGavAIJgHYrFL1kvbxfm3yW4FLaV5Xa6SEG+ndpXkijpIy4L9WHx2xjrtdjNSGjclzkkEMOcSussIL/SZvIkplaWJ6aaOAQZqRNLLVrdLpN97W91i8Cl/4Ii/wxFsJex36Uib4m+e6XfqR0oLQuat1p6tNJ4VFK4NIffZA2YwrIonzIGLNLS/tC3d6l7Fkd6TTXd6P7AN3ntekLUxhzPMe+FFtHE7hK67D+kINxDfYRHwrRH8SkxL+kbVGNoU4/Nk7TBC5sCojfoUyePNm95S1v8YeFuFmKRZh2zu82NkhO+naNIWAIGAKGQB4CYtcZgasGLyNw1QBkpw0BQ8AQMAQMAUNgaBDIIXCFk+iSeU0kEQLXjjvu6DbeeGO5JDlRKGQklnUhMkeVaKIVy4zg9KgSTeTRy6KF97CUm3xxKqHPtbNPlmMM79Nf9wlhhWtSjke91FXVxKlgEsvzTjvt5J3VkhcczhAYwvRSDja5L7bddNNN3XbbbedPEaEIh1VMNDFIf50oExW5TkDS5stFnNbyzvI8vkjk62CcyrK0D+e0DqAvshyQ3CdbcciTDvnV9+XoDunoSQFxgkn6fJ3J0pxMkEHoCfPPdeEkrEyep+qRpC1brYM6koec32yzzRxReZAwjD7HdDkJgatUB2XivirvLD9GeSJSH/Q7yGSYv2D2PyZM+NJ4rbXW8pHlcFLHpEsCV1gm+nl66Qf9zJJ8auesjnykn5dqJ2KYMRkrxJJwGTadZrgvTu1UNA09YYR+VkXgkrSJnLj55pv7L5SFZCfnZJsicKWwSNUNrcMQIGgTIEtKNJHciek2bZueeI61OXpCrEnbJ1ix1RMfKQIX1wkJQCYaqT9EJICgAQFRiCESOUSIbjhwdBTM2MQA6Us9j5GRUuckygv3h/0QxxDdPkrfklNHnru72f9UvRLsqmwNTWrRS05W5UD6vXtnf+Uu+3J9GzsoReBqk6bUs3B5X8lv3TamA23srLrncb5pe1OVpta5QRK49HJ25C+nnuQsX6XbJibSaRe0iM7rSU05r3VdCFxdtZNd5KUNZhqXJm32oO1mTeCCBEzktaZC38G4gPKE9ByT3H5ST/inoimSvkyoazK5tH2xdpB7dJkIgavUHiW9EnKQfj/GFSwdGgr2HuMHRHBrk88SXKTeNu2rpH1uaqeHGOjfpXkhjZIy4r5UHx6zjblej9V0u8455OCDD/Y2Fvt8hBa2vzJeFLuK60rtGu4tFW2P94vARd74uA4ieCgsqY3fAfsxN+pxv/QjpQOldVHrTlOfToiT/C4lcDFuIooy/U0o2N5EVIRAK9HPSvtCfARC5InVC3m2tOe545dUP9nGfpC8hFv9rJgfRK6n/4SYrW2d0jpMX8pHHuiMFtoNxmeQ4agj4n8q8S9pWzQ1Lo6N0zSBK9aWkV/dz8lYvBQL/f6p/S5tkNQz7LghYAgYAoZAcwSMwJWJmRG4MoGyywwBQ8AQMAQMAUNg1BHIIXClSAAxApeOuJHzclUOZ7lfvvTkd07UFaJq4VhBUl8fck47f6+44gp3/vnnj1hCMRWmvCmBS0eb4rl1EnMyEoGMr/1EUl+SaqdX6us+SUO2+itCiZIi5/RWT8S0JXCRLl+8MynN8m96ol+eid7x9SA6QrkTaQhHWiwanNwjji+JPNFUd0hH64UmcOGkhDgV5pU84TyE0IGDNsyjTJ7n6DrP1w7nmA5qAtdZZ501x5J2mvwiBK5SHRQHr57gII9aNLGgjsBFhAi+imeyLBTwQSDGIZpM5Q8U/BMiSxX2EPLe8IY3+NRPOukkH8GvNJ/aOZtynKcmKHS5C+lN181p06Y5iKY5Ukfg0hNsdQQuJoepR7K0hH4+REnqKcueIuI0Zj8Hi1Td0BEJZZldHfExhS3P1aLxa9q26fZO6pFOe5AELv1lOBMMtIFEQBPSl9RvflP2TEzSToVRGqV9ZMKOCTERmQDOJXCRNm1DE/nJT37ipk+fnqUXTdKVa1P1Stqw2LvJvbruNSVwxSaX2thBKQJXmzRT9Uzev24b0482dlbV80rbm6o0U21Rqj6kdIlnVJ0T0obohG7HqvKnz8VIUPo8+3Vtk0yux/rtGIGrn+1k07y0wawOl1SbPWi7WRO4cso7LP9UW4DtSWQdJrQRISKF94e/9cRv1YcO0pbqdEOdD9PWZSIELumvwmtTv/WYSNsuYm+m7pPj+v2qbAd5PwjttJlt8lmCizy/aV8l98Xqu2AQs9PlXGwraTbNC2mVlBH3pdpW3T+Lbcz1eqwGKU9/9MN5TeCK2XAhgauNXcPzSmVQBC7yt9FGG7ktt9zSEYEpJhrf2Hk51i/9SOlAaV3UuhMbT/M+KZ+OvGu4zSFwic0VkublwyCIdDLWDdPHF4VPqrQvpK6vt956PtkzzzzTEZ0uJkLuaUvgamM/xPLFMSL30s8hRNVnbB4TIfYJgattHaZsd9ttN++fin2ohG9p6tSp/qOiEv9SyhbV7xazS3MIXEQxp79FGIvzYS31tInIOK3unq5tkLrn2XlDwBAwBAyBfASMwJWJlRG4MoGyywwBQ8AQMAQMAUNg1BHomsClI0XxpVroUA1fmMl/llGsEhyvRDxCNHHIH4j8wxaD+IPEolnJLRLFhN/f/e53PdmrjbMv5XgUBxPPwakP6aFKmDzAGSXC+0BECZ1JMUdLyUSUJuJJlBR5tt4S0QCyFaK/AJSJilwnoE6TfRyaRGNi4pov+ojsISLOZL0URiyyglwvDkkiGvBlZlPdIR09KSAELqL/oFM4B5EHHnjA6wtRkeRrWYgV48aNG0oCV6kOysR96IT2IDz/Ty9tIRNquh5JGXK5LBXFPmUEwQSSJaQJliyAIAdBDemSwFW1zJueYOR9yUtpPnOcs6l2IoYZEQKJFIhIlED/o+ZfHYFLfzmMXosOy6SDJrxpRy3LfKDzLHk6a9YsT66ESCRLg3ZF4KKeMblGmyd5kS+tmaROLYUXwtKmbdN6EZv8S5EBwjxU/c6NwKX1iolKJhjA5qqrrnLnnnuun+hgwoPJBZbf3Xffff1jjz32WAeZRCQ2McA5qeexydrUOSKjET2PtoHn1AnLF1EP9btUTabXpReeT9UrqQtVUU30kpS33367Y5neOpF+T8g6+vo2dlCKwNUmzVi91vmt24/pQBs7q+p5pe1NVZopnUvVh5Qu8Yyqc6FOjB8/vkc4p19hMrVKsA0h59dJXdvUlDTVz3ayaV7aYFaHS6rNHrTdTPuMTiJNCVx6Up++ELub/pjldRlPIWIHa6KVP5H4pwlOkGwZW4Si7RM9rgp1PrxPl4kQuErtUdIuIQfp9/vZz37mfvCDH4TZ9FHM6CsQlqdCb9vkswSX0r5K2uemdvocIKgDpXkhiZIy4r5U26p1T48n9FitCwIXeSi1a7i3VAZJ4JI8Ms6GRETdoM0FYxHqB/WkSvqlHykdKK2LWncGSeCSfo8xE+1eTJZcckkfvXqNNdbwH2SIf4FriZwLEVc+WGtiP7CsPSQ9JBXlSROdcn03qX6yjf3gMxn5xwd7fLiHpKI7co7xK7aoELg41lUd5iNDiHAQo4QUTfryrBL/UsoWJV2RmF2qCVy09+hDKJAzd955Z3/4Rz/6kY8W1hUW+ln9sEF0+rZvCBgChoAh0A4BI3Bl4ocBYWIIGAKGgCFgCBgChsBYQKBrApce2KeWqsBxtMsuu3jiDktj1TkKdYScFMFICBcy2S9fhzKhIU6gsDy0Q5D7mexo4+xLOR71hOQ3vvENx7I1oeCsEofbjTfe6Ilnco0mTjHBLpFwmLxhYpYv7kVSDjY5H9vipOILVIQQ/t/85jfnuEwTe4PLFwAAQABJREFUKkKHpExU5DoBl1122d4ymxdeeOEcBD4cZjirEHGU7b777m7SpEn+2BlnnOHAKBQ98QfBCgJIie7oSQEhcOml7FLvKQ5bykWcruSx6eR5nQ6WROAq1UGJYMV7pJb6EWIN11QRuPQSeJQr9RJChxZNLOqSwMUzpkyZ4qg/oYgDWEhebfKZ45xNtRO63GWSSn9RqydN9Tvo6EzSjsnkirSH+nr29dfsdQQurddhe0NaevmMrghcpKsnfk888UR34IEHcth/+YxTOkfatG36+aNN4IIoxaQ87TBtG20oIo583Wbi2F9mmWU8mYv6qCU2MSDpoH9NCFzS59Le8ZywLpMuk4P8IZC16I9z6oi/oeG/VL1iIox+kXxClqDtCUWToy699FJHv1Qn0u/FCFxt7KAUgatNmk37oPDdhSAQ6kepnRWmr3+Xtjc6jXA/pXOp+pDSJdKtOhfqBCRL6i0iUX38j+AfS9MymUtkPGzcOqlrmwTDWESeWASufraTTfPSBrM6XLokcLXBrA2BS9tIsnS91hdNrCwhcIntodNkH/sbOxy55pprfHQP9kOd55gWXSZC4Cq1R0m3hBykCVwpMoDuQ+X92uSzBJfSvqrUTtflFO6X5qW0jLgv1bbGbGOu12O1rghcpXYN+SmVQRC40O9VV13VE+5jBEZdryCDYnNXSb/0I6UDpXVR605XBC4iDlPnEB0d0B+Y/Y/IWvR7iPaXTJ482RHhCRt9xowZ/rz8o99jLC3+ne9///s+claJ/aDbu9S4cbXVVuuNqVI+DcmbbFP+pTZ9oaQd24p9GUYMlmspW8a6jIvEV8S5kjrMBx5EEkP4qIw6oIUyp3wYiyF8RMS4QaJ35/omU7aoflbMLtUELvFL6XvY174AooTxkVUJFkIED9OX3/2wQSRt2xoChoAhYAi0R8AIXJkYGoErEyi7zBAwBAwBQ8AQMARGHQFN4Dr11FN9dBXJlDgRUiQo/dWdTCTo0PI4rnByMHGqhYgyRJZBrrvuOscycFWiQ6kTrUscZ3IPDhSIOgiEMCb3ZcKSY8cff7xjUkILjigIJDh+NMmhjbNPHI88R0/4a/KPEIt0XtjXy94dd9xxPQKXjsDD19VHHHGE+8AHPuC/mOU+IudAwBBJOdjkfGyLs5HIZmDBJDzRdCg7LRtvvLFf7pBjocNSJipynYBrr722n4QhrdTX8DLpJ1FT9KR2+M6kg+hlECQ6WYnu6EkBcZRtt912nqjCc1iOIIykoR2Yw0jgKtVB7TSPLcmpSXNgU0XgglQiXyLHyhDiFHVbllfsmsAVy7/WD1mOrk0+c5yzqXZCtz0yicpyYtQF6iZ6BZmT9kqEcSdtHed19IUYqU7uCZdjrSNwSTQPnh8SdXgubRKkAKRLApeuU7yzLDdStcSTvKNs27RteuJZt+eSdooMIOdztrkRuEhLE475LcvEsk+dgWRDeYjcd999cyyfIX16OCGSIuiQVuqcduJfdtll/kt/eTZbJqToV9Br+hX6OLY5dUSnk7ufqld6YjJmbzAhwyTHwgsv7B+l60PVs6XfixG42thBuq8Tu4p8tElT7CFt61S9W3gupQOSLtc3sbPC9PXv0vZGpxHup3QuVR9SukS6VediOiG2DPeCYxg5QUd/yyXc1LVN8sxcAlc/28mmeQEnuacpZnW4pNrsQdvNbQhc2OdEvUTQNwhJWvg4ZsMNN/SHcvVJT/jTRh999NH+gxadrhA2OMakOREVkZjO+xPP/9NlIgSuUnuUJHV7Lvamfl5sX78f/Sbtvf7whXsg+NPGIhAH6D/b5LMEF/1uTfqqUjvdv2ziX2leSE7fm1tG3JdqW2O2MdfrsVpXBK5Su4b8lMogCFz77LOPj3JNHmPtBvYP9R5JkX78yef/6TJuoqvcru8N9SOlA6V1UetOVwQu3kHIRUyS0jZqOeCAAxxRtRBN4DryyCM9QYs2lvcOfWP6YxghBJX0hURXo42TcSNjB3wpWvSHgbm+m1Q/2cZ+0HkK93kH/AIIUXGJjqtFR9HXBK6SOky62J5g9uijj/bqgn6eTpePQSbMXhmAthfJ9U2mbFH9nJhdqglc6Bz9FXokgm1D/WU8o32vOs9NxmmSbmzbDxsk9hw7ZggYAoaAIVCGgBG4MnEzAlcmUHaZIWAIGAKGgCFgCIw6AtoBCmkAJ4k4esSJ0ITAxQvpr8BwhECokjQhfUHgEscSE4ChIz0Gip48wLl4yimn+DSXX355h4MCogNy9tlnu2uvvXbEJDEOeyJfCYkLJxTEMiEE6GWc2jj79EQFy1pBTpLlEnXEG5Y7IYoUzjsmuXFmrrnmmj7/esKNfArJjJNCsMM5B27ci+il1bQTlrQoQxxb2tHjbwr+aecuRj8TjSxxh7C8IXkUcgBONSaGRGSiItcJqEkp4EPZUKYIRAQikUk0MianJH1xfnId1/OFMGWLw2r77bfvRfUKJ6mb6o6uE0Lg0qQziDLoNEsdgTfXQ4QUfChXnNDinJVJ7jBfvEdM6nSwJAIXzynRQU0QIo0rr7zSTZs2zesTzkvqnhCuOC/OeP0OQkYCH3ATnMQhix6jY5AwpR6TFnX8jjvuYNfjTP65F52BDJIjEML4claEusIf7RFlit7LF7Wy5ECbfOY4Z1PtRAwz8q2jyFE3qQ8Q4GgHIBYJeYrIftQlRE+QQBg46aSTfF2B7Lr11lv3yoBrNWElpqu63jFRA6mEerfCCiu4Pffc0xE9UIQvl1mOFsnBIvY8SYutnrzgd5Oy53qktG3T5TQMBC7Kjf5ThAl0JtJFdDlxTPRZzrOVPj0kcMlx2izafto26TNS51hShLaV+sJ96AUEPoQ6B9GYPgzRulmnF9p+oL2hf84RXV66/9WTWaRz0UUXuUsuucQnyaQHbZhENIuRsVLPln4pdY9+jyZ2UIrART5K06yrZ6l3lOMpHdBl2cTOknRjW63HTdqbWFpyTOdT23vyXmF9SOkS6VWdi+mEJsxiA0BMvv/++33WiLD4rne9q9fvEXVD6pDkPbbVeYi1TdJuantS0olF4OJcv9rJkryUYlaHS4rANWi7uQ2BS5cTpHOWr6WcaWv50ABbSiSMmCfHw60mOHGO9Piwhoi8tJ/77befX96cc9gT9BEiMZ2Xc2x1mQiBi+Ml9ij3adtG7E2OV0n4fthRRBqGpMU48L3vfa+bMNueRcK2oDSfJbiU9lWldrp/4cS/0ryQXEkZcZ/WFd2Hp2xjPVbrisBVateQf913EQGaD7ZypIrAJX1UzDZLpa1xkTEsyyXutdde/hbIJhCQJCIxZU2bxEcTSGrZPX/y+X/90o+UDvDYkrqodadLApfYVOSLiH3YFRBAGZ8TLVVEE7j233//XkRabOKTTz65Z2cTgRObWQhLjF0pp9K+kDZb+gJ8QJCTGDcy3qV+0iaK5PpuqvpJ3S819SFJPsKtjorIeAQfmPgEIPTR34k/QRO4SuswY2GZyz3//PPdFVdc0csSeIEb+OmPpZr6l1K2aO9Bs3ekzuu+SBO4uJaPVYmkx3appZbyukOdRMg3+UdKsfA3J/7psu7KBkk8yg4bAoaAIWAIFCBAP4wwh4efnb6S/os/9uV3btLzzQ7DPDIcQ+6dQ36ddPpDnk3LniFgCBgChoAhYAgYAt45j1NMi0z8ihOhKYGLSRIcITjORHBiQfQQZwvHQweJXBvb4lw/+OCDveEp53HoYIiKhBFHdFQrruF6nKBCfOJYGAmojbNPO01JG+ErPSZDCFfP5Ku8P/kAE01Y4RhONnH66ig64SSxdupxH5NkTLojUm7+x+x/OV/TMolBmen8MCEbGvixZTFloiLXCUi+QmcUDjHeg+drjCAoPPzww/5VcC7j3JXzHBQClxwjDchxkOREmuqOLkdxfqMzfN0opD/ShkyiyUtMzsp58oVDl2USxNE72gSuEh3kPXX0MX6DMXVJ6hG/BX+ZUNP1SAhc3EsdJuqQSFh+OCwXWmghf5p077zzTu/k1ssacg/PyZGQwCX36DxzLIwqV5rPHOes1i/JD+0EdUAmRjVmYMnEEM5zkbDtQ7doL9gifP3NV+Ap0e9fR+Biea9tttmmlxT3IlLmYdsuXyLnYFFXN8J24rbbbvNO/F5mMnZK2zY9kRQjSaTIABlZ6l3SJAKXjsBEAtpJz+8QK76SFn3gPCJ9g54Y4Lh+V37r81Xn9Bfw3Idu0C7qvh+yJJMc6AlSpxeHHHKIJwdyLe1nzpJyXJuqV/S/2267rZ9Y4zqEfOo2jGPkj4hh2AQ5Iv1e2DfLvaV2UBWBqzTNunomeU5tq3SgxM5KPYfjpe1NVZopnUvVhypdqjqX0gkdsYB80och0oeyn9IjzoWiyyPWNpWQpvrVTpbkhfctwawOl6o2W3RBsO6n3QxZAp1EZIwgz63bEiGUOif9L9ejT6JLYRtMu8a7sYRnSkKCk1xHWuFzGKNI9C2uS+m8pKHLRBO4Su3REnJQ7vvxvhBvdJS80nyW4lLaV5XY6VJGqW1pXkrKiDyk2taUbayv74rART5K7Bru0wQj6okQdTlXJVUELl1/SEPbZqk0NS4yhuVaPR5C17EPaTe0vQYRBntN+qjUMzjeD/3QeZdnSxtZUhf1WLRLApeOdCj51FtpO2l/JfI041hsMfFbcQ26TRloX0LY95T0hfR1PCv06cjkreSPPDfx3aT6yVL7QWMW2+djy3HjxvVOkW9E+iV5D03g4nxJHdYf6pEGdYDy493keRyX6GjsN/UvpWxR0hIRjHVdD8d3cq28v/zmw0v8Bbr+lmAh6cW2/bBBYs+xY4aAIWAIGAJlCBiBKxM3I3BlAmWXGQKGgCFgCBgChsBQIKCjOpAhIuwQpQbCCqQBHAKQA0KJLaEo13AfjkeJbCHH2eKwIpQ3f02ELxQhVshXZnIvDgy+yjvttNN6k8RyTjtG5ZhsY2QAnGg48JHYeY7rpfqEsMJxHGY4m/jiTQRHqBjRLJXDl96aiCHXgTEO6JkzZ/pDRKDaaqut/D6OGNLBQaVFT5xqIhrLLk6ePLnnJJw1a5abOnWqvjW6T774AlSWZ9EXgTFfRDOhHopMVDRxAuKwPPDAA3tf/IZp4liGiBWGzAdD9EpIPvo+9IplnO4NlpThmia6w/IzOGcR7fxOPZvyoc4QrYClCsQ5e9VVV3nM5Kts7YzziSf+1emgjsB1+umnjyCrkaTWi3Byt4kO6uyxtAPOeu3E5DzkOiLNCV5SH/Q7aDISjlCik1EeWtAv8CMqFxHepI6TPhPAbQlc6AZkMBy04TvgLCdyFcQTkdJ88sUzXz4jQoSVNGWbaifQD2l7NGbcxyQEdZOIg6EwmQpuOioe18z+WMrttttuc7wv9YOJDCIhIprAldLVlPP4scce8xO4tLMsR4lQH9CDHCxSz/MJzf6HnlCnRJgg45lNpaRto31iwggJ6xHHqsgAnM8R6qOQEWUJz6r7pE/mGshGQtrlN3klz0gq8orcH7ZFkGOJBITeI9QX+jKk6hzn119/fV//pd3jmAgT4UQZgNQnUqcXmsA1ffp0x3K4OZKqV9L/VuWTukNECsheuSJL6ISTbfr+EjuoisBF2iVp1tUznefYfp0ONLWzYs/Qx0raG31/uJ/SuVR9qNKlqnNVOqEjKer80fdh57A0LKTCHKlrm4Q0he5jO2rREbiwm4l0KdKPdrI0L+SpKWZ1uFS12YO0m3UEC5aykgjFUg51W2zUnXbaqWdryvW067S32PBik3GuLhqQJnwTeYuItmClhbaRCKohwbVK57lfl4kmcHGuxB4tIQdpAhcfoWAHSl9HPhD6PMZgt95663MH1P+SfLbBpbSvamqnq1dM7pbkpaSMyECqbU3ZxnqsFltaW3+IEbPhqBeMVWLtZNV7x+wa8q+XfAvtM86nZPfdd/f2Oud1hFB+1/W9XBOKxkWPYYnSByaLLrpoeIv/jR3EWKiJjV2FU8quqtKPlA6IHde0LuqxaFOfThQkdVC343KY/pwo8PSzlJ0mcHENbRH3ka+Y4AMiOqAej3Jd076Qexg3M97WPimOk8dvf/vbbtddd/Vj7Sa+m6p+ssR+ID9VwnidMTW4hYLvAZ1effXVvX/siCOOGHFJlW6m6jCRjvmIIPQTkDD2mUQh1w9q4l9K2aI6vZhdSvQ8ouiJv4l8Cmlb7iUaF74+rgmlBIswDf27axtEp237hoAhYAgYAu0QEJvJInDV4GgErhqA7LQhYAgYAoaAIWAIDB0COEH4qgqDj0hWuRNJdS9CaG8mByByYURCHmCZrTZCXllyEJuLL1yJnlM18brIIot4B89KK63knWlcj8MqJES1yZO+FwcjS0jhvJToUXIepxBLj4EJTjW+iodYQvSFLgUnKMvzMCkB5k0miCgzHGKQRZisgUxyzz33RJ1CbfPM8msTJ070E04QAFhqighkt9xyi3cyxtLnOr56hLCAk5TrKU+JXBa7R4411R25T7Y8e9111/VliP6gy7qM0Un0DMINk6NNcJdn9HtbqoM4Z3E+ot/oLRNd4WRebt5xbKNjfB3M5DUkCJzKCNhRtpD00Dv9DBybOLZjhNLYs+WLcyGk4DRn8o66AWEGIhPblJTmM5WePl7VTujr9D5lAFGKCVrIOyE++lr2KWvqCu9L+8vkgMYzvL7qN+0CTnTqLG0C+g2uIpQZEwakD2m0C0E/IADwHugcX5S3kUG2bW3yOVr3Uidp42hLZXkdyUvVOcpp1VVX9fWW+osO3HjjjZVRXyTd2FYmIGOTsrHr9bGqesWkPXWBP9oX9JSlbKqi0+i0S/f7YQf1I82696vSga7trNFob8L3r9KlqnNhOvIb+4D2m8h79GP0PUz26nZUrh3N7TC1k4PEbKzYzegGJHdsUcZWkLixmWXZc85jIzCm42MI7JymYzpsZSZ9uR9brwmpg+fnSqk9mps+12kClywPx6Q7S53RX9EPQO6owmgQ+dTvVNpXdWmnS35K8yL3N92WtK1Nn5Fzfdd2Tc4zU9dU9b2pe1LH6X8gihPVlX5IxhKMw0qkH/pRpQODrotVmMh4lXaY/hxfRJU/irQg3tAm4QdizMTYjDKoG4+W9oXjx4/vfbyE/4txYIzkU/We+lxdP9kP+4H+SHQWvx9+gxwfXkkdlr6VeoJuP/HEE76PpR+sKtu2/iWNcc4++SOiF7pD/1WVN9IrwaIqH4JTv2yQqmfbOUPAEDAEDIE0AkbgSmMz4gyGlYkhYAgYAoaAIWAIGAKGgCFgCBgChkA3COCEPvTQQ32kLr5QzpGQwJVzj10zPAjwlTGRHpFzzjnHXXPNNcOTOctJ3xCQZVPCiC19e6AlbAgYAoaAITBXIhAjcM2VL2ovZQgYAoaAIWAIGAKGgCFgCBgC8ywCRuDKLHojcGUCZZcZAoaAIWAIGAKGgCFgCBgChoAhUIMAUQVYPo8vr1kmkwhQOWIErhyUhusavu4m6gdlPmXKFP/VsERQG66cWm76gcD+++/voxOwHAhLdpkYAoaAIWAIGAKlCBiBqxQ5u88QMAQMAUPAEDAEDAFDwBAwBMYKAkbgyiwpI3BlAmWXGQKGgCFgCBgChoAhYAgYAoaAIVCDAKSeQw45xF188cV+qYCay3unjcDVg2LM7Oy9995+aSjIeiKXX365mzZtmvy07VyMwI477uiXR2b5RBNDwBAwBAwBQ6ANAkbgaoOe3WsIGAKGgCFgCBgChoAhYAgYAmMBASNwZZaSEbgygbLLDAFDwBAwBAwBQ8AQMAQMAUPAEOgTAkbg6hOwfUwWAtd6663Xe8IDDzzgjjnmmN5v2zEEDAFDwBAwBAwBQyAHASNw5aBk1xgChoAhYAgYAoaAIWAIGAKGwFhGwAhcmaVnBK5MoOwyQ8AQMAQMAUPAEDAEDAFDwBAwBPqEwMorr+yWWGIJ9/TTTzeK3NWn7FiyGQgst9xybuLEiY5lE++++243c+bMjLvsEkPAEDAEDAFDwBAwBEYisMACC/ionhxl+e0//elPIy+wX4aAIWAIGAKGgCFgCBgChoAhYAiMcQSMwJVZgEbgygTKLjMEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMgWwEjMCVCZURuDKBsssMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQyAbASNwZUJlBK5MoOwyQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBDIRsAIXJlQGYErEyi7zBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEshEwAlcmVEbgygTKLjMEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMgWwEjMCVCZURuDKBsssMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQyAbASNwZUJlBK5MoMboZVtssYVbYokl3GOPPeYuu+yyMfoWlu3RROAVr3iFe+Mb3+j+85//uCuvvNJtttlmbr755nM33HCDe+ihh3zWVlxxRbfWWmv5/WnTprl//etfo5lle/ZciMBYacs23HBD3+Y+8cQTbsaMGXNhSdgrpRCgXdxtt93cC17wAnfnnXe6W2+9NXXpmDiOfRhr78eCjm+99dZukUUWcTNnznQ333zzmMC7y0yOHz/eUU7ImWee6fvvLtPvKq0XvvCFbp111nGvf/3rHfr2ve99z91///1u22239fXonnvucXfccUdXj+ssHbGLSPC6665zjzzySGdpd50QfedKK63kFl10UXf99de7q666qutH1KZH+Y4bN879+c9/9nYkN9Bevu1tb3MvetGL3LCWc+2LzQUXoBeUAzJ9+nT38MMPd/ZWq622muMPOe+889y///3v1mkvuOCCbptttnFLL720W2ihhdxZZ53l7rvvvtbpzo0JWB3LL1UbY+RjNexXDkNZLrnkkm7zzTf3UOE7GQYbYSzY7sOoW/Q5O+ywg7dZsJ/E9zWMeZ2X8jTM/RtjUGxbbO6ubKp+pKn1RdLXx6r2//KXv7jLL7+86hI7N0QITJ482S2wwALud7/7nbv99tuHKGeWlXkVgS5tkrnNBzuv6oS9tyFgCMybCBiBK7Pc53UCF4bsMsss49F68MEH3TPPPJOJ3PBcVvUOn//8572Dm0HWJz/5yeHJtOUkG4EJEyb4iczHH3/cPfnkk9n3dXXh3nvv7dZbbz33j3/8w0+u7rvvvj5pJmNwSiIce+1rX+v3P/GJT7i//vWvft/+GQJdITDotqyqXa16J8nn3/72N3f44YdXXWrn5jIEXvziF7svfvGL/q1+9atfuZNPPnko3rC0D6FNj7X3Y0HHv/KVr/jJll//+tfuhBNOyCqHUpyyEh/wRbvvvrubNGmSf+qHP/xh9+yzzw44B/WPw9mGLjE5JnL66ae7X/ziF+6rX/2qP/Tb3/7WHXfccXJ64NulllrKLbzwwu7pp58eMQELqX2nnXby+fnhD3/orr766oHnLeeBH/nIR9yyyy7buxQy3CmnnNL7Paidz3zmM55QyRjrsMMO84/V7eVvfvMbd/zxxw8qO/YchcBrXvMat//++/sjZ599trv22mvV2Xa7Bx10kFtllVV8Ih/96EfdP//5z1YJzj///O6oo45ybEWkzZDftv0vAlbH/osFe1V2vdg1g/KXVOVlZK5H/pJ8zutjjCr8BKNBleXIEnrul7YRIKbz0dtoi+Ayr+tO03J41ate5d73vvf528455xx3zTXXNE3Crm+BACRzPprgQ9JZs2b1Uhrm/k3qGvmdOnVqL89tdvqRps6PjLv0sap97DnsOpOxgYCULwSuY489dmxk2nI5VyMgbVoXNonuD5r6YFN9zFwNvr2cIWAIGAJDhIARuDILY14ncL31rW91/CGnnnqqu+222zKRG57Lqt5BDKPRdGIND1JjLyc4LD71qU/5jN9yyy3uO9/5zsBf4uijj/YTmHfddZf/kiw2oW8EroEXyzz3wEG3ZVXtahX4ks8uBqNVz7Fzw4dAG+dBv96mTR8yLxG42uDUr7Jrk+5YIHARJUMi//CuEL9PO+00HzVNHM2jTeCCkEm9fuqpp9yUKVN6RaInZ4eVwMXX/8ccc0wvz+ALOYcoqYMWI3ANGvH8540lAhcfk/BRCcJkLmPbM844w7cZ+W8871ypbRIjSTrv70n5fMR2H5S/xMYY7ephFX6DLsvYm2gbwQhcMYTGzjEjcI1uWX3oQx9yyy+/vO/zDz300F5mhrl/23HHHd3GG2/s88xHC3wE21b6kabOk4y79LGqfSNwVaEzfOekfI3ANXxlM6/mSGy1Lnzmuj9oSuBK9THzarnYexsChoAhMGgEjMCVibgRuP5L4PrWt741JkPKaidW+A5iGA3KIZmpdnZZJgKjPamsn3/SSSf5r96NwJVZeHZZpwgMui2ralerXgxSAktn/OlPf3IXXXRR1aV2bi5DoI3zoF9Q6Da8KQk4ReAaCzreNAJXG5z6VXZt0h0LBK53vvOdbu211/avCTkd/RQRR/OwErho46kHCEvqPPDAA5L1odmuscYa7oADDvD54eMUPlIZLYkRuIjAhp6yjCZLnRJ5zWTwCPSTwEX9Jn0EEkPbJRT32msv97rXvc6nF7YZ/qD9G4GA1bERcIwgcI22v8TGGCPLpumvKvwGPV6M5X0YCVxjwXaPYTnax4zANbolkJpcH+b+7SUveYmPFkoeL774Yv/XFsV+pKnzJOOuv//97+7EE0/Up6L7ELhYvcRkbCAg5WsErrFRXvNCLru0Sdr4YFN9zLxQBvaOhoAhYAgMAwJG4MosBSNwGYErU1XsslFAYLQnlXfeeWe30UYb+eWXWIYpNaFvEbhGQTnmsUcO2iFfNTkwj0Fvr5uJQBvnQeYjGl/Wpg9JtfeNMzEKNxiBa/iXUNQErnB5NXE0j3bUmFQErlFQ6caPXGedddw+++zj7+tqAqlxJp6/IUbgKk3L7usWgX4SuLrNqXO6zfjsZz/rifJdP8PSm3sRqLLrbYwxtsp9mMoyhtwwErhi+bRj9QgYgaseo35eMVYn1xnXLLPMMu7Pf/6z+/SnP90JRP1IUzIm4y6i9X7iE5+Qw7adSxCQ8jUC11xSoPYaIxBo44Mdq33MCADshyFgCBgCYxgBI3BlFt68SuB66Utf6nbddVe39NJLuyWWWMKj9fDDD7vHHnvMXXjhhe6RRx7pIch5lnlhELbIIos4vjjhup/97Gfupptu6l0X7iy11FI+fPIKK6zgCTC//OUv/fIl//rXv9ymm27qwypfccUVji9dtLzgBS9wb37zmx0OA57N84hCwNfpGN0iOe+gHZJHHnmke/3rX+8jHvAuTz/9tPv973/vyMNDDz0kyY7Y5uZFbpo8ebLHlC9yLrnkErf11lu7dddd1y2wwAJzDAZxvq255pru5S9/uf8CnyhhLNN37rnnOjAKpWk5bLfddo7J61mzZvkICUxGT5o0yY0bN85HS/j5z3/u7rjjDv8YsIaoNH78eP+FONEUfvrTn7q77757RDZ22mknv5wO+fz1r3/t02OSjLw98cQT/tj555/vy1bfSNjrxRZbzD366KPR5WvWWmst/1U5781X6myJTPCyl73Mrbrqqj4pBtT33HOPu/XWW93NN9+sk/f38qU75Yrcf//9Ppoc17HMiBbyyx+N5DnnnOP33/KWtzjaAlm+SK5HZ1gXXAZ7qQn9OgIXOvCmN73Jvw8GNqFyn3zySa97hLnVgs6RHkIZ3XvvvR5nvronj0RquPrqq3sRLzbYYANPLKMuo9NcT+Qj0o9Jk7zE7rdjeQisttpqjrJBaCuZiNfyjne8w7HEE+0beqeF+rTNNtv4Q5dffrlvp9q2Zcstt5xvx1/5yle6hRZayIezpw7Qhs+YMaMXGSKnXdV5Dff5moh2hzaVNkQLbcAuu+zi20i+pKTtp02gbb/++uv1pbY/JAigozvssIPvj2l/iCDyxz/+0fcNLEWm29fQeXD22We79ddf30cgoZ97/PHHffvEfWG/L69L1ByWXaA9Q09p07BH6FdiX7pC0CCCDXpM27jnnnu6CRMm+DyiW7l9iDxfb1Ptfajj0qdwL7p8++2362R6+xCCsaF4p7POOqt3nB3a99w+TG6kPDbccEO3yiqr+L6BfpsoTvTrX/7ylx1fPtNPn3DCCXJLdFvX18r75fSZ9Jebb765LwPqO457yuW6667zZaIzoPs6lrajf6cvXnnlld3iiy/ubQrpz+j/YwL5gnJadtll3TPPPOPuvPNOd8MNN7gtt9zS95vcA/n62Wefjd3e+FgX/SdtMeWGbYN+IuSZukXdwBYUR3MqAhc6Tv/CsioLL7yw+8Mf/uCwsWlHU3WL5+Tet8kmm7gVV1zR1130iLyRPnWRMQJ2JPUUgRwl9obYnZTblVde6ZjEpYwYD1A+2NxE7MJGi0npuEGnRTuErYoOoUsI+GALUz+1XdvUxpfnNL0vRuAiDcZhCHYt9QR5wxve4F796lf79pLxwOqrr+51Gb2hraOe8x46Ypu/8fl/Cy64YG8MxT71CluS+xhbcYx7Y+2pTid3H7y33357r1u08wgROBknXHDBBXMk06Q9meNmdaCLukhyIYGLsQz2Om0KZcR4F7ywk0Kp6n+OPfZYP76gnqP7P/7xj8Pb/fgip72MtRnkiXSlzZgj8ciB3PaZd6cNRaj7Z555pn+WTpLlHMGO8Rr1GnuP/pvxHGOcn/zkJ47xPzaAjOOwCy+77LIRY3mdJvu5bRTX0l5stdVW7LrzzjvP29T0Z9jQtIVgE6tj/obn/zV5HuVA/09/Qh9OH4c/g/ekHUZXqMeXXnqpfsSI/aZj/6ZtzYiHPf8jx663McZzYKE/lCX98Pe///0RcErbxUH8C7TbWihb+kbaP/Rfy2abbebrC2Mw7GpsI+oNfoiwz67Sa55LPa7y37UtS51vvd9kPBASuOhvpC0QmwV7jTFuTOjrqGvYxdjN2CHYzvgq6Ve0n5L7qzCjLaB9CG137uuiTmML0WfT/5E/nse7oS/oA+WcGheQh5h0pS/y7rFnhMdo97E/sP1od/B9YZvOP//87n3ve5+/HH295pprRtza1D8pN+Ozo/1mi06wzJ7UHe3vpX2lnUWwN2M+W5YWxhYBZ+wjRMqWcSpLfaO/6CV9FP0akVnpt6iLnKP+Mp6S8Sr2N7rGtTFp0neA577P+/ZyxzviRyJP2G0I74ffCF8p7xXr34bFhkT/5SMKljPHBtVSks9+pCl5knFXGwJXlz4MbMgcaWIj4FukviLY6OiiFtrdPfbYw7e32Hbo/1NPPdW7pIndrXW+K382/kXacYSxJHWB8TTzKfgVGevdeOONc7wX10v5ik+fY1pK/DD6/ib7tEPMyWBDghNjaPpIxgkpf0fTdlbG413OA8k7NtE5uYdt6TuU+hRK86nzLPv9wDNmk8jz2DaxLUp8sHV9TFe+M/1Otm8IGAKGgCEwJwJG4JoTk+gRJsDmRcGh8LGPfSz66jg8xaHCBBET7jhOYnLffff5ycHQ+YRhCmkndh+Tizh9kTCEP4bdIYcc4nA2xgSHNctGIDnvIE4snD4MRHAChYJxglEfTig1yYukKZM0TADgEIAQJfLBD37Q7/Juhx56qCc5yDm9ZTBy1FFHjRgwlZSDvDuNAU5+JrNCwTmBkwmjNBQcAywbyABPRKJ6MAjHCYlTJxSeN3Xq1BGTtV/4whf8tamlLBksQq5DwJCJ/i996Ut+sipMn4EI6SM8/6CDDnI4UWIC0QCngdZPHChM+PJ+ONmZMBZhkgJnF0I5UQ7IGWec4QeEqQl9SZNr+WpLD77kazHOxQQsyaOINsB5VxxqHAuFiT0mRZjcC4Xy/tznPud1UJ9rmhd9r+03QwBHAMvdIOEkPO0CbYAIuq7bHyafaUMR6iB1VOpzSVtG/RbnpzxTb9EXdJ26m9Ou6nvDfcknE3iHH35473RdGwbBjZD1KUdpLyHbGRgCTIhAfom1P2QCpx59gpA3dNuFI4r7cQaGgp6hb+idFshXEydO1Id6+7TXOBrDCTVxyOGIxxEBWRqhDcbhHXu+7kN6D4jspNr7UMdxHmInIfRd9GGh0P9+8pOf9IexDeRr5JI+jESYmMBWYtIhFCaQwB77K4fAVdfXSv9W12eCF5MoMcy59wc/+MGIiR+tL9h29GdM4oRCWdKf0fZp2W+//fxEjD7GPs9ico8JTqQrAldX/SeEDSHo+gyqf6effrqffBK9DvsOLoVQCcEkJkyA4fQPJ0qa3nfYYYf18NPPIX3GDvRP9FMIE2OQyhGpG5AnsbsgmIVCG//1r399DhJH6bghTF/bbuE5xh+nnHKKP1xi43NjyX0yNqDNA1tE67+OtIZNy4QdYxPI36myZmIFMowW8H7/+98ftc0Zr9Fu4NDWYyl9f9N90mNiVyYXw/ux+enXtT7mtidhWvp3V3WRNDWBi4n2mM5yHX3a1772tRHjCamnsf6HsYCUJfeTZ8Z3Ik3ay5w2Q9JNbZs8j36FNlf6U62fpA+BZMqUKV6X+C1jJ9p/iF0IE/8yrvMHnv9H+zx9+nRPqNDH2W/atuk+mol9xnPid/h/9t4D3LKiSv+ubhqRIEERBBUaUAFhAMUAioqoKIiAGBDDYCQY8HHMOA4yjhhGnI8RUAQFCaIzioyoCIiALSISBgVB/wqIoJIkDdBkvvMreI/vra69zz51zrl9u7vW89y799mhwtpVq9Za9dYq9Ga2TSWKIJTWgWvD5udyj/wAudGfUspNEJbY/iWyJi0Lv7vo9ZLdS7qNQWQ7+QZTex6bhu2DISaK4ZkTwHnag+uB6DTvec97suMp7yLnWexAfxG1tWvaFgCbHMl/N8q3zKXLtWHtAe8rgBrRz3OEj+mwww6bcovxhDEz52PSgwDEAWWJ2niGLMCWFl/cPvVyDtun+bbY8vTTlOhH6EtM0GMrIS+70Ljbi+o+KG8WcaLTSX76897mUgDXINu+yU+MT2LHHXfM5kfeLPrQQhfkOgtkIYBL3lfixd4/+ScZw+mHkH9bFvkAPknrx3jEuI5ekvMRM+7jo+M5p2HHDtf3uto78AcgX44+/vGPR10kN75J75gJOqT8v7l+XlrOSaQJj6XPYXOWROAatw+jSxmG1REAjLAoH6JNo+fhKxdJP+c3+jvtTG1/WL3b2/y4/Nmur2PPAdxK+zRlR2YdeuihUxbE6/um+lmpH4Z8hiX8I3xXLXZJ32eu6ogjjugv6NH9Ejmr8W6c80CUZ9g2N446lPgUSsup8qbHSfBTabpOQr4luoX3t64+2EFjDG2nUuVA5UDlQOXA5DkgeYvuha6AboNPgT/O9btrSWb1UOJTLZeub87w5+SkmeHFHHvxWPW/1157RZAKKxYgHAxMuOAAQilmhRITZCIUfFY9oRDhwJLTMp0MxUAmuowIZRRAEw7f1BnjAC7KgeNM6VIWJiL5Rqy4kIKu/LrUQYqRyoIRwgpZ0mZyD2UH4vdHPvIRPRZXcQxTFr2oSRr91pEJK8KTQv4MxjV1RHGb2wMhqTysQCN/qPQ75OqOAoxjHn6mhKOJNoBRoQlYn2zieTlI9C78JE2+GRPU+kY+Qc2zMraHAXDts88+0Zki4BllAShA26SNQkyCywiCl7RPyq4VrjzDt+U56ge9ueekwdEHUX6VmXMmTxVVDgMXQ5frTADzDd1BiOMQByLkabrDlwhsRDyAKB+RHygHqw1pv8obIBlRLSBXwOOF3j/6EHzGEYhSnxICn4khT5O8mCQVlZRF79bj8BygHeL04xunhhngVkUvIWVWgJ5wwgn9TGhDyFmXG7n+3EWW4ehn8oBy0JZxpiKPmdChb6mvC0jYRa72C5o5UTm9zshw5J7KgHwDsMaE1nrrrdeX+azqxTlcaWZwAJAV3whCpuMYp73QpjSxSxvEAQjlZJfGON4TqIhnU2CKT/zSTpHltBNkJTJespJIXETNFMkhp986MoHGeIFDvm0M0fO5Y5O8T9s44x99XbrLvvvuuwDYaLfddosr28kH0AXgC6hkDIMfOFXFE3iMfkbEsnQCoguAa9BY6+Mb30b5cq4xkygJbO8lgvd8A3jvZWKCjD8o115IE/AVegrvKi/pfUr/bW97W38hANdonzjdGfsl0/TsOABc4xw/idSA04zxXP2I8Z26M5GLc1ntOu0nPkHA87yHrEUn5/tDXGdCinREw77HRB4gIvjJN2Asoq8zdgDI8YmxHIBL+XKkbaL3UEZ9G377IpJSu8Hz0TmTv0yqen9AR2JClYk/5Mew9obSLn1Per/r1N7+HVyiSS3lyRHdmT5Fn3CwFHYCchJCVvNbfYZ2QB/kedl58cHev3EAuFJeUEbGdfJDbsveo84AH2hDUBd5Eh9s+DfOvkgWPiGkLCkzY1BqfwJEoP2L1E/1W0cBOPxbOoBrWHmZkxkASCDJDOWdOw6bH2n4tln81mICzh3g6baGj+M8B9HvkB2M/5J3XGcxFu1QNKyM4j0fo5UOR9o+0ZGY7M9NcPNMSX4u90gDwvbiW9BW8HOIBKbRb8kAfksvarP90/41yCeifHLHLnq99Bq9Dw+XRBvD27CPbfDFwe58Q3QLEXoxuhQE8BbAOvSJT3wijvWc01aQkcgXFmfRZiB4jZ8EfxDU1q4B5DAOIO8l11P/Xem3jJk3/BvWHsj1FeqNfkfZ3Q9F1BGPcOhAAfQ6dBlkB3arbBKK+ZnPfKYfiauNZ8gC5I344vZprpwlfZryoIcyziEHNA5zfRgA17jbi+pOOZqIyGi77rpr/zb8Qd9Abri+wQMO4Cr1T3oUJdJEd8AHQX4CSHL98MMPD0SpHweAi/QgxiPq5n7Ch+481A8Zu2lr3s6IpgfoWFQydri+p3To9232DgsBFaFFi3U07uOPRQblxjfXO5TXwtIhJU8pK/1aeiDlKi3nJNKkPNLnSgBcKhPp8F3H4cNAZ2ijUh3Bgcg+30DEYhaAQOmYVKJ359r8qP7snL5OmvAbm9r9DSysAMQv0vdNAVwlfhilOezx7W9/ewSd8R7jIX41ZBKLYXw+g2+keYtSOavxTmXkm+IzGGUeqLTNjasO1KWLT6G0nOJV7jgJfipN10nI2+0FfnfRLXL9TbZGkw920BiD3VGpcqByoHKgcmDyHKgAro48lvOk4+OL3WOEi+YPcjAVv5mUlXMoNV5xHqFcajKGFe0Aa6ADDjigDzIBlOJbCTDBhyNZ5Hm6IZcq3Th+P/CBD/SjTaDwyIhtq4MUI/JDEWZVFsYyhFOCLfLkUKa+OCuh0rK4woWijMHPZKWUcI/UwTWMBilHTHbgINOkBxO0dOTS7+B1x0jAOaiJHjc0qS/fTlEJ+O0OJPiOcQQ5gIs0AZroHm0FfsrJACBFW6iVALjIDwcffIDSCSdWC7IlFYTDBccqRjeEEkv7lDHkk8Y+ecSzTJDi2MO54US0FNq5gC3ccwdhFwCX6o0CzbdW+UiLVf4C9fmKwVQBZxUFRicORci/Db9ZochKRQh5xjcASEB9FPGFeyVl4b1K5RwQEIsUHNThzhPuIcvoryL1M769nHPen4eRZUT+m/twhDpWozFRLEIGIrOQOaTpE+ptclXv544qpxujnhZh1D2KEk5STTrjxIBPlRY+B5B9kh+MiwJpUTLkC6vJNVnJZC7jQSq7aNeMudyDkHkAK5jYQJ7hzIVIB7nGdWQlERaRiSKicuEwh3D+MiZIlsohxz3ePa4XLZGxgvEXahtD4gMt/5rkfa6Nu87g442Sl15Euej/jPulYxjge0UzYDIQfmkcJvoJkf80edQFwEUZ2/jUZcxU/UjLJ3j4zTYZbEtEmVzOpO2FSS6iR0lPIbrknnvuSRKxfugikLcX+ImDVtvTIMuYVPVJoHEAuCYxfro+nJZR7doBXHwj+iR85Hvz3fn+IhZOAISCXKcofY90GH/4TukEpE96+iS3+gbvUka+jbaJRtYjN0gP8slXbz/D2A0xoYZ/PkmYtknvr8PYG6XvyTZAFnaNwEW1aN8APgXw55rrD0RL1oKGvffeu79VHdtN0D4kB9PoGqk+TbrD0h577BG3zOO9FNiEbYj+Ix2cLU2QzVAXeRIfbPg37r6YTgjBm6OPPrrPO7bEecc73tGXqd5u1U8pam788fbiAC5v72nbbJKX5NEmM7jfRKX5ua0omw87lugjEPIcmcQR8uf5nUaJI1Il70OuI5bKKB+jSZNJDoBmivjmY4yDJEvzc7lHfoyvREuQfebRc11/L7H9ve0MI6MoVxO5Lu7+F5532c337OovWdxsDAdieZtxm1389ejJbGVGlAxIMoK+DHgfkj9HPh+ueX8R6JPrg9o1z0ziW5JujkrsgbSveEQl8vDyu5+FCXjGS4iJWmwPjWNc84gRrmt34ZnauMuetJwlfZpvig2jb0tbYeGUdJ1Uf6IeOZpke8nlp2s+PpzZ25aMCO8ib9dc8/Gq1D/p+bkOQ/oOFBE4eFwALq8b+ijtTAtvGL+RechtyPUCdFjAZFDp2OFjEel0tXd4Fl8hbYp+4NHbPU2XVT52LGwdEh0Q/yfkfmF+l5ZzEmlSHtfnZIdyPUf4zdVP3CYdtw8jl7euOf+G0RGQsdhimsM5+eSTo51Bf9ZCIF9oRn4lere3T9IYhz/b+yVppou70NexTSDaPvMq+pb6vg7gKvXDxAwK/smmpp0QOEC6I0m5bQQAHCA4VCpnNd6RBvo731C8cN2D+13ngUrb3DjqMIxPobSc8KKJJsFPpek6idsLw+gWaX/r6oOlvk1jTBMv6vXKgcqByoHKgfFyoAK4OvKzArjyAC4mAVHuIHesOFvZu5tJOUjKsG8b5hNI/p4rcXIgYvwAPIFovALt+Huu0LCi7Kijjoq33Qmk9PSeFCN+8zzvOfmEh94dpSyapCEPdxQoT1/ByEQlfHPykNyA5nBGl3wH0vS6q27Kyw0gHLVMKLmDzJ3srDZncgYSsITzXPk9XQelyPBLQUWkA+W2UOQ6jhK1hXTCCQcpABTKjeMMZ4gTkapwEkHwUQ4EN5BY7frZz37WX4vngPpIn4lSXxnqDsIuAC7SxkC+5JJL+u3VM9NqXpyUtA3IFXDqxuSIwArcd6Mr18cEGuJdd/SUlIX8KpVzwB3N7vTUd+cb0cYw5LWSm6gnGJ6QT355f+4qy0gDo4xVy/QPRfXjukiRFNL20iZX9W7uqHK6MerAAne4633kHvWmnXvUON2vx+nngMvynJwBKMLKYIgJTJxCqexCdqfAWDnuvb15NCWPRui1Bsij7WJd9sohx7O5MaltDPH0c+dN8j7Xxn3lqstz0vXti1yfKhnDGNfQoSQ3AF0iP5x23333AHgFGjeAKzdmssWbJvRTJ6DK5aAzya+0vTBGy3jRe64vahtqby85Pct5RDopOEppD3OcxPjZBsZQu3YAF1vVERUH0laLaR28f+Ecxmlb+h5py9mcTkD6pGcTgCtXRu/HgLuYdCi1G9K6p7+bAFylOn7pe5RLtsGwAK5cf/JoGdKLvS+RB3qjTwxQBue93uN6CZEfej1yyMG4nhb6OTIO8np30cE9nfR83H3Rx7omG8VlqkfXUT+ljLnxxycRBOAqlZfk0SYzuJ+jUfLj+2KbaDEX8sijprp9SN5un7BYSt/fy4W9RqQESACYUhnlYzSTO4Abvd17v/AJ7tL8XO7lfBUAiOkXkMvMYW3/Cy+8sNgnEjNv+Nem10uv4VWN0Z5Mzl/C/cXRxpCN5otKFDlZdht19+jJ6Lvom/hUtBgGm0t+RvqCFhDyrsh1HOx37KBB7Zp3J/EtVab06DKyqz3gfcV9MEobPwuyHPK+gi6Nvggxia0FavFC7x+RywTm9wVBXXimNu72qZdzmD6tb0t7APjjYHrK6uO010/1yB2VJvfG3V5y+XHN/b05/Z5n8M+i/0DyZfh7btfEhx7+l/MT+4KcdHEQrwGoQu/Edya9YRwArtw38LEo55vgu1Ie7Fv5T0rHDh+LaDNd7R140jS57mn6+OZ6x0zQISUbnY/Uq6ScvAdNIk3X5x7Kpfm/9xW3Scftw2gqwSj2CGn6nArtEV+BFobl+mWJ3u3tkzzG4c/2sQidjzETOeHkeqiP0fq+mrPiHeRsyVyC5zfMueZR0BMou+ur6MVatMYOHyx8KZWzlEnjHefjmAcqbXPjqkNXn0JpOeFTG42bn+SlNF0nkR4wrG6R9reuPljK0TTGcK9S5UDlQOVA5cDkOaA5EHyR2ED44LBB+ONcv7uWpG6h2JVTi9hzTQ4gX3GVKn2qIg5dHE+QDGMH/sjI1/M67rTTTuGFL3xh/Km0fQLHneN6h6M7ewh/jeENNdWBe1KMUIIczMI9yFd6qbyjlEWTNOSHMsTRSYo7UUS4nxLOXxRdiBVf1E0rOsWr9J3cd+CZtrrjUJQzwo1Qpa3tA/nN9hznnHNOvKXyu4NS7+ioZ9zxOW4AF4IMxwpEOGABtVQGHeU09+/vk0eaQNTzOtI+aae8hyNWBpY7CB1E4GnKAau00iMOXkIlb7311mHuw5GRfMLfFfDU2UFabMlIu4Uw8CiHE45NHJyQJrz9vp8PKgvOt/XXX99fied8W/pLpXYOOHhEESr49gJr4ZiGx5AmshzM6G2prT/zfk6WcT1HrDylHIBwkHcoBN5HeKdNrubS1DWV041Rd2TzHI5unCoAatW39H49zgwO+OQ7JWLrNCZLaLNSMNOSuuzyaAL+HJPYbK8FMQYyFtLO2TI0lbf+HvJy5513jpeY3CRCCiSHnHSQeNH+eR900AL1Q19hLEmJ8Q5neJO8z7Vx0sDBiZ5CPRRli+sOYNTEaOkY5s5L5wP5iDyCwbgBXLkx053XfI8/9qL/pPSsZz0rArW5zjbFxxxzzBTAX9Nkv5xKvKf2oskk+Mx4lwLYeNajgowDwEWaKQ0aP9Pn099tYAy1awdwyanXpD+SPpGC2G4NUmTc0vdIoxTA5aBk0hH5uCKdu9RuUJpNxyYAV6mOX/oe5ZNtoAlJrrm8bJp8k17A8yKPPiC9wqPGNPV55K6iHrosVLrDHD2/trRcJsoGc305J0+GKYeeHaUvukzN6dTk4eOIfyv106bxxycoBeAqlZeUo01mcD9Ho+RHeuiKyF70RCfJcb/mE2dEdTjllFP8djxn4Zf0XkUZKJVRPkbn2mFTHyvNz8EebPnGAp+UZO+6DSy7uEl2p7Y/CxqIpAkN6xNJy+O/Xf6mPgXpNaktoPeXJBvD9Q6A0ERBUORDFqcxQYgOqYVq9A18EhxdPui7N8kHeMuWVYCWII3Zg9o1z07XtySvEnvA+wpbF7OdaUpsPU7Udu8r6TP8Rl9eY401YhSi7bffvg+KawJw5WQB6aiNu33q5RymTwvc01Z2AQHbvj/lEk2yvSiP9Oj2idpf+gyLdfALQtLbSv3E/t7ZZ5+d9SWhXxBFF76xZeg4AFznnntuOP7446dU7b3vfW9YZ5114jXkNtuwOal9AqrEToVKxw4fi4axd8hT8iiVzZ6myx3XO2aCDul9DP7h24RKyhlf7P2bRJrS5+BzCgpSvjoSHY7Fa9AkfRjKLz2OYo8oLXTytddeWz/jEdsNGxvQ7SAapHd7+yYdwGsAAEAASURBVByXP9v19auuuiouLE/L6dt/e7/Q9xWAq9QPk+Y3zG8HbNPGzj///DBv3rwsuJt0XV6mOpvyna55oNI2N446DONTKC2n+Nl0lP6QymGeL51XU5quk5TqFt7fhvHBUv6mMYZ7lSoHKgcqByoHJs8Bza9VANcAXmtl3IDHFtvbTQ4gdyjJeZVjgoxbVkEwkeYrk5j4UShqf9cn8qSMamWjnkM5ypEcyDjTKBfUVAfuSTHySROuixwMI6fEKGXRJE0O4NQUEUplyR1LvwNptdXdlX1NAHn+gwBcTYohacg4cQVXDu2m1e0OWoGHpA/5pIk75NKtDAa1F9LSNl8+ecQKuJyRqqhE6Sokd6p2BXDhiGJbDQAKOOlz1ATgkpHp72yzzTZxCwGusRUdDkynNgDXsGVxsIXn0WRI+TP1/CEOaAJTDkBF2YOHrI4R+FCrxLQiNF0J3NafySkny/QNmGxgG4+5PcAgABPJUd3n6P2V321ylftNpHK6MQqKnK0R6c8p4aAlQh0Tp3Lqpc/U3wuHA0wg4ghJiW8LsIQ2ixNT5M6DnOziOXeYC1ijPuLjutLUEfkpB7pvTSSHHKAhnesdjk1jCNsyS4fw5zk/88yHthBpkve5Ns579DG2QIE8ep7qB1hRAIrSMQz5z2QG5GNQvGD/NBHUBOawR+NpE5+4OWjM1MQmzzaNxdyT3BEoyduLtkrhOSfXKdVeBCpq0ut4ny03WekP6b34Y4R/w46fg7JqA2OoLYtXpKXJQM6b+Cwe84yih5a+RxridToB6ZMnuQhcTd/GowFJ5/ZvPIzdQPnaqAnAVarjl75HGWUbOF+8/fskg09q5ewvn0xX/3a+snU7EXxT8skK16fT57r81iIHnlU7y73n+qgiigySJ7l00mvj7Is+IZRb4a28JVPdLlA/bRp//FsKwFUqLylHm8xQOdPjKPkpLd8akGvos0RTSOWQA7gOO+ywcNlllymJ/tG3CRMAo1RG+RjtY64ya+pjpfm53GP7JHSFlBTRQcCOEtt/FFmTlsd/t+n10mtcRvm7S5KN4QsGvvnNb8aFC2oz6L2AS1jcJFsY0DTgaUgyxP0sPo47Tzl3f4u2kxvUrnlvUt+StHM0rD3gfaVJV5VvSH3F8yVCzIte9KIIlsOGzJHkB/e68Ext3O1TL2fXPu1jcG4RpMqqRYSp/qT7fpx0e/G8/Bz9GJAuhI2FbE/JtyWT3lbqn/T3vv71r8ct79P80t/jAHDl2uA+++wT0CUgwCzpeCYft/w3PCc5wHn6PNegnB7uY9Ew9g7pNU2ue5ozWYdE90S3px878Nv1o666LvyAJpGm9Dn/3g/l1v5fNv4kfBhNOY9DR0COIaMA0Yp80bau6Tis3u3tM+cTKvFnu77eBAymPvRdyP3r+r4qS6kfBh2plPBLMOfhMoK0mEcjuiWLJKmXyOVlro/oOckqzcdxXeNdTqfz8abrPFBpm5tUHaij274am0rLSXptNG5+kpfSlE4yim4xqL+RX84Hy/WmMYZ7lSoHKgcqByoHJs+BCuDqyOMK4MpvoYhjdtVVV43GqVZN51gqxUNOLHcU54xh0vCQ2gJwedSAXD7pNVdGuzixmoBDOYfkKGXJTdKo7Bg+OAugdM92PZMeS78D6ejb5OruijsOdhztTu5QdGNOExgyfvwdnSusNY4NtR056XJl4T2flOgC4HIQoPIddJRjyiePdM3fxcGAIYRxlYZUdwehO4Oa0mxqS/CGiDZEUoDcwHQFnChshx9+uBcvuMErx7I/4BNmHoGrpCwVwOWcLTv3bYuI5kafYCWxVm4L8Mhv+onanju5yLmtP3M/J8u4zkQrWzmmzgLaIE5zjEXavPdX3muTq9xvIpVTxqiew6ECeA1AECCyHJ100knh9NNPz92q1xYSB7baaquw7bbbBqI65cidxoNkF+/nnAcaV9omOTztHICraUxqAiZNAsC1yiqrhP322y+ySZEhWd2qcdBBE6VjGI4pRelkNTmrynOkSQYBPHLP+LUmPvFM0/im9yXD9HvQUZMX/k1zYx3pOLhHQCy1lzYnuzvw9N6gcrXdLxk/29Ljnus9aRnlaNbEL/Kbeg9DgHgAGJS8BwgIKgVwNel6OWdrqd0wiBdNAK6mb9mUnuyN0vdIN2cbePt3OeqTWq7DqXzu4FX/9vZOpBOfANB74wRw+Yrqpqgd5Ot1yQG4cjq4ytt0bPoObXp1U1pc9wmhtgllyR3X19VPm8Yfr78AXKXykrK2yQzu52iU/JQekaD55qKmCCIO4Gr6tr5NOBFYiMJVKqOabDKVM9fHSmUpMtHBHk39LAVwldj+TW1c9UqPklHp9fR3m14v3b1Jdi9JNobLWCIA/fCHP+xv24duRZTrXXfdNbKX39jljDfIIGxwfGK+rXZTtFQS8DaF/YMdNKhd894kviXpttEw9oDXq6mvyDfkAC4WuiE7WHiUEpPTtE9twdoE4HL/jKehNu72aZdypn3aJ/6bdFfylexts21Uvkm3F+WTHrVojOs5fYPrHjlck+Sl/km+LQtyINLgew6iLgAujcW+xeegb+sArlzdBYqQrTHK2OFjUVObydk78KZpct3TnOk65B577BEAAvpCJtePcvx3OSxd19vKuNNUG9L39rzazqUbtvVz/1bD+DCa8h2HjkB7RkYBMhfltgLnXlN+bXq31znX5kv82a6vN8l5yqtv4gvO9X2lr5f6YWgfoxARwrDZ8EPxDVJCJhKpDr2uVM6Spsa7nE5XMg/U1AbS8uu39NJJ1YF8cj6F0nKq3E3HcfOTfJSmdJJRdItB/Y38cj5YrjeNMdyrVDlQOVA5UDkweQ5UAFdHHlcAVx7A5QN8G+Jfk4REMSKakRufRFzBKZOSb58gAJev7mV1Y27ywdNBGWUbRWjcTqxRypKbpFG5fU9uN950P3cs/Q6kJaVwXIo7acog0uQ011JSvgL1cV9OulxZuO+rMzy8dtOksk+Kw8s0LDppOuH0Y8IBGjQZ7avD0wmIJqdqLk03DDFwcT4QKpmVLvABUv/xCaFBCniJwVtaFgAJGHkpOT/Te/X3VA54m8GJjdMfwBQT66z2laFJf2FbMdoSlDpR1K+a+lBucoWtEulPchBcc801gYmEX/3qV/1oV4DK1lxzzYkDuGKlHv7H6nVWoeHMA8ym8nEbAKgUGH+nni9cDiAHAN/hPEP+IqdE2gZpkOzieR/TBFrR+NC2etUnEH79618HdAcodcjFi/avaQyhD9L2cgS4Fged9113FKovyuHiaaAHAcxF5hPJkQlteAbxHkBNqHQMY/sYAHVQLuII1+lPmhDPOb15JqUmPvEcMgleQOmYyDUH4PA9GB/aCIcqumGX9uI6pdqLQEW5SKfK17cN03u6N+yxdPwclE8bGEPtWgAu0lJYferN+DCI2A6GLbtK3yN98TqdmPCJsVwErqZxKuds9W88jN0wqP5NAK5SHb/0PcqZsw28/Y86+eZ8bYoi4tuKOJh0EB9z913faIvAhf3IJAWkRT2D5EkuP12bRF/0CaGm6GX+rbxPqp9qQkjl1NEnKAXgKpWXpNkmM5RnehwlP9LCT8IkP2OmEwBRAT113QFc8IbIZCm57BCwo1RGNY3RytO/m/ex0vxyZVdeOqZgjxLbfxRZo3LkjuP2lyzONoZkNmMZtjtRueTXYBEKUVcgfFa0QxY5eHQ++g32F+QyI16wf4rKzCW2BsdGG9SueXbc35I0u1IXe6BLX5Hu7wAu2cSUBbAH9ir8Z+EjE8Lo7ejW0MICcDmwRAsSYoGSf/KZpfpT8lj8Oen2ksuTa77ojwUolDUl35JKAC635YbxEwPUmduLBg4J1B1/tPwbBODy7zFJABdFLB07fCzKgVlI23Vht1uaJtc9TR/fXO/oCoyatA4J6JW2BgkoX1LOmMDD/8adpvS5YQFckmOT8GF4ff18HDpCLqoifg0AN4x1olK929tnrs2X+LNdX2/aXhoQMN8E8giJ+r7S10v9MOLLqEcWtm6yySYR/A3Q3/3t6s+lcpayyVeVs8fJC/Ae1HUhf2mbm1QdKLvLLY1NpeUkvTYaNz/JS2nKn+hj2bC6xaD+Rn7+LbqMMbxTqXKgcqByoHJg8hzQ/CdjNj435nNYfMsf5/rdtSSzelGT8nvadU1hhj5XAVx5AJeDrI477rhw3nnnLfAFXfEFGMBKpde85jWBsOfQkUceGR0v6Yse1UcALjcOmkLi0mhJH4UXAx3FHRq3E2uUssjhp1UHad3lzGky8uAddYSI/sQqQyKWQcN8B56XUjguxZ00Vf6miVNW8WAQ8K3ckSnjtokvWqVIHl0AXAg1wE+Qr66JF+wf4fcBi6AYM8kEvXnAZLScSwAEmbRwanKq5tJ0UJqMCk/LnXWTBnCVlsXLW8/LOMCgS1ulTyAncThBTIwDPiSaDpNeEL8f//jH9ycJ4sWH/7X1Zx7xCVW1NyYcdt5555hCE5BDod8BnChSEC+0ydWYYMM/lVPGKI9tt912ATAg9TvrrLOmvElfBvSi1da5bUGnvFB/TAsHaJdsEYOsB6CVkk8kK/x6qfPAozYCEMoBv90hc+qpp8aICJQpdcil5WwDJqXPpr+b5H2ujevdl7zkJXFLHH4D+qIf4UxMJ3BKxzB3XjZNCm6wwQZhr732ikVq6vcqr45tfMqNb3qPo0+4NW2bRURXAc/QJyl7l/aSm9BgXFYEhqZtkAWko3zupOL3sDSp8dP7UFpGtWv/xtqOB1nN84CzUqJ98AfR/tD/St8jjekAcJXaDZSvjZoAXKU6ful7lDFnG3j7l7OeZ0smtdZZZ53omOX9JnDWDjvsEPWEtme414UcDMYWyEccccQCr6HzYBci6zzqwiB5skBCdmESfdFlqn8Hy3ZK5GiiRqFjQeqnmhDydzj3bykAV6m8JL02mcH9HI2SH+k5CI9xTLoacoh2DeBZ5ACuJoCxg2uRTbJ/AAMNK9uaxmiVp6mPlcrELqCUFMBFWWQ7d7X9sWvZZgca1icSX2r416bXS6/J+QxIbkmzMXxLbBatrbbaalMmg/FVYMfj60C/Qd6xFTzjrkjfvYmnPOcAS/WHQe2a98b9LUmziUrsgS59Rb4hB3C5TZrKF8rn2/cuLAAX5RCQJ9XtuQd5lN+mZx568u//J9le/p7L1DOX2SeccEIEJE59IkRZhP4Dyb9Q6if2ftUE/pZ8ls8Q24HFK1AOoO4LLycN4FLZhh2rfCzKgVmoW87e4fp0ALimQ4eUHsziEvq+60ddgWbww2mcaUqfGxbANUkfhtfVz0exR0jHdXjaMn0N8Ah08cUXByLrikr17kFtflQAFwsE9M1UVo7uV23T10v9MJ7XMOf4f5///OfHV4jqqUAESsPLrTGxVM6SZptOVwLgKm1zk6oDdcwBuErLSXptNG5+kpfSdJ95qW4xqL+RXwVwwYVKlQOVA5UDM48DFcDV8ZtUANffAVwOuPKJj7/97W/9VYTOVjc0tRLXV2k5gEfvsdLgrW99q37GKBpE0/Cth3D0ExUGg8LJt/Vjj3C2j4PcieV14J4UoybnWc4hOUpZZEjK6UAZnHzika3xMOKdUiAToVR33333+Mgw34EX2upeoriTppxLnGsFFeciX80zb968QGQGqG0yNd2aowuAizTl5ONcYBjORR6xRRME3Bs0eaSoWKyqxZnl1ORUzaXJClFFeMHATFei+6Sll2+QAl5i8JaWxetez8s54A56UtEqbs4BpNJ+cf6Lrrrqqn4EHV1r6888k5NlO+20U3R2c5+t1tJIdakDpwnAlcpV0msildON0f333z9O+gE4AHiQynZ3yDc5dJvyq9cnwwHGHfQAKCe/AOsecMAB8b5AJoNkFw/nnAc+Ke1je0y89w8QJE5zhfn3MULOu6YJ9DZgktJvOjbJ+1wbVxrwAMc0/ZnJWjlE0+14eb5kDGPshhekTz9CtpCPk0+4TweAy4GiAvN7eTj3Vf6HHHLISAAuByTkwCq+uIC8U3AU14ahSY2f3u7TMqpdq29RXnein3baaTECm9cDZzTgAdogshaecyx9j7SnA8BVajd43XPnbsdo0pHnSnX80vfIM2cbuLx04FDJpJanhX6BDMCWEgG6YZIJfQPK9Rs92+VIBBraGnKINkYf8fxIg4kKtgmBfCVxTl+OD3X4N4m+6AAu6sK4hk7upAk6riHfmYCE1E+bxh//lgJwlcpL8muTGdzP0Sj5OSAZMDcR8t7znvfECJLkldqlDgZgcgrdz/U9xkPGT41f0jlLZVTTGC0+eL/wPlaaXxdQSg7ANaztTzvUdszD+kRU99xx3P6SxdnGSPUI+OkALe+L4jVyHvCdSHKf34ceemigDTqhnxLthP7gfqNB7Zo0xv0tvVzpeYk90KWv5ABc8sEgN1KgOnxCBmkLvoUJ4BKAD14dfPDBcYxzvvmY0RXANcn24mXzc5/szpUTvZLvxBGSLuX6VToOKP2cn3ijjTaKiz54JrdQMgfG8kUpKbgE+xC+AQCGJg3gKh07fCwqBXBRPwc6eZo+vrne4c/zPuRRXmQjelqT0iEls+jbyD3kClsqQ13LGR+2f+NMU/rcsAAuHwvG7cOwqk45HcUewQ5gvgE9HjrllFMCCzEACiJjoa985SuB7YOhUr3b21SuzZf4s11fp53iD/FFBJQX3Qn+QMxb4FOF9H1dXy/xw8TECv5tuummUYfn1aboYSqPwP6lcpY85KvKzYGVzAOVtrlJ1YE65gBcpeUkvTYaNz/JS2m6z7xUtxjU38gv54PlukDCnOdkMdcrVQ5UDlQOVA5MjgMVwNWRt+MCcOFMmDt3bjTgU0WyY1EWymPuYMH4IyKWJgM16U7BmET68pe/HIEHGMtEddEqAnc68aw7IAh5/q1vfStuqUMkKZR13hcpAhe/99xzz7DhhhvGW6x2BIGusgBOAMAlpy95iM9tdZBilFNeySgHeuB6aVlU95QnpAmxZdgee+wRzzE8WLVO6Frq9YY3vCFuUcVNNx5Lv0Nb3UsUd8rlAC4czIT7B4CHMf6KV7wifl+e4zeTIID4IDduicKDYUj9cdQQFUAGI8/65LyDBOAJdWJVCnk78At+40C7+uqrSSI6BN7+9rfHyCf89qg+bZNHbhjyLd0RSzpNTtVcmu7wZNsstjyiDjhscXoDZhS502yQAl5i8JaWReWrx9E44JEvSEmrD5Wq93Gu5VbBtvVn3snJMncWMPmGTGUrUfoVchPHl/oefRYDjiPUJlfjAw3/VE43Rj3iAvIO8Cp9GCJCHhOCcr4y0ZWuSmvIql6eIAccVMH3QPYjpyDGD2QeAEBIkTYGyS6ezTkPHJTEMyeffHJ0KHKOoxmHuSLXueON+zmHHNdFbWOInmk6Nsn7XBv3NJiUZvJPRJ/CAUofdCodwwDBa/xgPGTCiwkUdCvGWsYxkZzz+t10bONTbnxL03HwOdvdEDGUejPpQ5k23njj+IrrNl3ai08ACeSE3s74LNnFpOr3v//9KFPQw2kvAqqQqd7j3HU7n4zlXhNNavx0vcjLSDnUrh3AxdacTApSb3jLRBoTmBARyZCj6BeQb4lQ+h7pqK2TH2Auxg9kt48Po26hSD7SnTkfxm7g+SZyp7EmHfWst4Nh7I3S91Q/tw28/Y86+Ua9XC7Qz4466qioayDLiWCBnBU5gIu+T/+lXbH9qba50bNNR+8XOB1oH7fddlt8HPlE+1YfZZJFoKgu8qRLnsPo1U3pcd31fn7DOxYIMaEFz+Ar25tA2C/UU6R+mo5Luu8TqQJwca9EXvJem8zgfhOV5OfgEtIVkB+e0J41of/jH/84yl+ecQAXvwHusU0ithR+EiYG1A59UUGpjGoao8kbaupjpfm53NP2jw/l9Pf/OQBXie1fKmv+XpIFz7z8qc9Hsn4Yf8nibmMQQdB1CSZX2ZIJShckus0jznv7xOdBhFL4DtG/WKyoSXTfptvf8+tKl+O4v6WnnZ6X2ANevqa+kgNwuT0MGIKxG94RIQg/GdHORGw3iR8K6sIztXH/Vl3KmevTHi2F8hGpmHEVPybR32WzUDb38fC7ibwO424vTXlyXfoJ5yw2/NKXvhQBhchq9AGBIbjvupR/q2H8xA5u4z2i/eDvZdEq+jtRiyH8x+ecc04ca7BzIHRR2tMFF1wQnvSkJ0V/GpHLRZMGcJWOHT4W5cAslD9n73Dd9QgikAH+QFfzNBemDkkZ5R9u0yH5rshQ9EIW+eL/GRXANc40pc+5nUrdBhH9RAureHacPoy2vEt1BOYh0EkgB1F6pCT8FYDsOLquP4ze7e0z1+ZL/Nmpvo7twVwKIC3G0r333jvM7fkBIJfz/Nb3dX291A9TYjd5W6WfoA8g/yD0DOw0RSpHDqu8pXJW411Op6PNYhdA7i+IF3r/PGiC5DD3StvcJOpAeXIArlHKybtNNAl+Kk1vq6W6xaD+Rr1yPliuN40x3KtUOVA5UDlQOTB5DlQAV0cejwLgQnljwgQDxEFJGN0YkABKOJ/J5AqcyinwAJOzDOhywHOf+lBXXcOQZqKOCTsRjm74omd0XUfe0T0HcDFRC3gHBUTEylOUWj3P9ZNOOimcfvrpeiQ6g6WE6qLqIMUop7zybA70wPXSssgJ4pM0pOfkBjrX4QekOvIbpV0rRkq/Q1vd/bsPo7jLQI8FfvhfWn4upw5Hd177uzr3NuEALu6rHnrWJzR9VRD31d80scA1N9T43TZ5hOHHtmFNxrs717yOuTRxKOH40nclb8qnslFnOWC4R1unrpoI49q4DN7SsqQANspUaXgO+Gog3kZ+IcdE6aQX7RoZ4qR+MIwso60BpNQEAenR5nxCgnx0n/ZJu2abQ5cRKofkqn7njiqnG6OAs5CNGidp+ziFKJ+Xxft2Lu16bXo5AJhOW9XxzWgrfDMfowEQ4Yyn7YziPNhxxx37AGBqSX4ARSQvuYaMZCIFsJJIDq5Uzus+R7VJXevazprkvdLzNq60OfqkJr9zEfW4DpWMYegn9CdNcpAO/JduBu807nQFcJGG6sU5JD7lxreHnvj7f1bI49hTvpSB7+Vl5BqTMETpgrq0F9eXHOTkkT9IK20vzgN/z51XyDltrUwaTTSp8bMNjKF2rW+gsr3yla+MDkv9pp6uR3CdiTD6JPwXlb7nTj3SUpv3Sc9xALhK7QbVL3dsA3CV6vil7+VsA2//45h8o6+hP2s8T3ni+qcDuBifmXyCeIb+0oXIh/y8j/M+MkBjPemkW8B1kSdN+U+iL6YTQsrbZQjXqBvyS9G3uKZ+2jT+eP9xAFeJvCS/NpnB/SYqyc8jJ6f180kv+MSkLODOVJdVeVJeYucgo5xKZFTTGK10m/oY90vyc7nXBErJgT3Iz8cyfsMTyMdMt/1LZU1MtOFfm16v8b/aGH9nnusLqWxExiEP9P1y9jop4QdwMA96Ld/edds0gtGgdk264/6WpNlGw9oDXfpKDsAF+IkFgaK0n6DXuF9QAIQuPFMblx5DHl3K2dSnAaQKLKDy5o5dAVy8O6n2kiuXrqXjA9fdV+DnDuAq9U/Cs3322WeKnkC/cL0htZs+9rGP9SOvqdw6+vgyaQAXeZaMHT4WNckKHyPcbvE2qjrDD/woApQvTB2SMkkXSuWkyqujZCp9kEW3owK4SHdcaaoOTT5g1SF3nKQPI5cf10p0BAce02+QwQIlM5ZhCzC2QLI/S/XuSfizu+rr1A0ANosuRPq+qT5b4ocptZtSHZk+TFmxo6RLpN+lVM5qvMvpdK4/DDMPVNLm4P8k6kC6TQCu0nKSZhNNgp9K03US8i/RLbqMMZKV5NFljEEWVppeDrD9tvww+I4E6siVgnb+2te+Ns5dco5+jI8CHYNFqsiSEkLnIAI3cgJbhXQInAKgnh0AcsTiCoCfAPGZO0CfQ76hozO3RJlSIpDH1ltvnV5e4DcRjFM+sKiDgDLkCyYDHZL2ysLWU089Nf5eIKHeBXyDW265ZVhzzTVj/dBZmMu4/PLL4wIFzpuohC9NaY3zOmMH3+u5z31uDIgALwiiwhwA7SDlXZe8S9OczvdYGOg7uzXVi/aA33MQCQdAe1eE+Nw76CHofOxuQP+gjdN+WJigYDK59wZd03dizCZdeEk/4o9z/R6Uju7P6kVPKpMASmGGHksBXLzH1jUIjCYC/IDRj/CayeRoespJJANW1EJsQ4cDetlll42//R/1QqCySiAlVhaywmO11VbrK6QISBo1EZto9FAadhx+kp87u5Q2+TFo5AaOpjoAXiBNVoXjjE6pCcDFcyVl0QqDVBFL833Vq14VnUbpdQYenMLpIFfyHdrq7op7Go6cMvnKi2OPPbYP0BOAiwlYJm8Uxl71QOCdccYZcaDWNR2JwLbrrrv224Ou036oL3lCKYCLAWm77bbrO3aIznDQQQfp9bDbbrvFSF79Cw+fUBbaGls9MpCJfCUR28woyhv3Fbo4nXDSu274OpilKU0GUr61O6VIi/ZBFCK2WGQrRRHGJpMgHKFf/epXcdW77nP0FUv+bfSMO/88DG5JWTTRrrTrsZwD6o+kwLjAdxbhPN1rr73izyZHr94fVpY1yQ7kMbKeKBOMZWqjZ555ZmCFJ9QkV+PNhn8qZyoDUXboJw7Y8iR++9vfxlV0OIorzQwOMI7jZEdBzRERVVhBqEiLfNs22UUaTc4D7mFQIQ/VFrkmIi/Gn9SZoDFJjkY978dBY4g/6+dN8r6pjfu7ONVxpkCsLmecbaJhxzDSwXlIxDxWgzsx7hF5B4OecX4YAFcTn5rGN8+Xc2QNxk9OL0ZuodvQz0Vd2kvThAZpsPUquiQGjRPOaFaoa2x1J5W3P3QVtv/uQpMYP9vAGHI0575fWz/BWY1ugTGZUsl7OF2JZipQEHo4UUPgh/jrAC71jaZxqsnZSllL7Ya0nvrdBuDimRIdv/S9nG3g7d8n39AF0Akg1+Hihd4/nHToEFDaPkiTdkUUEMlRZALtgQUzcgr61lOlExHkDw9ZsKPtwrkmIl90CYCSTl3lib/j5+Pui77AhMhbOAThsRPjDhFMHTzM/UHjj39LB3Dx7rDyknfaZAb322iY/IgCsP3228fk0BUBW6VOTbc1BEDxySmiULz0pS/tt0OVjWeJ6C29Qdc5DiujmsZopdnUx3R/2Pxc7mFb5hyCTWAP8hzW9i+VUapf7tik1w+S3U3+ksXZxthqq63Cq1/96sjGNPoeFx3k2Kbnvf71rw9sVZejnJ0/qF0rnXF/S6WbOw5rD3TpKzkAF3m7HPGyIDPQjeAnW/FByCfGtS48Uxt3+7RLOdv6NDIO0JmAzIx7pE9ELvRwxhLsF4GkvT5N55NqL035cR0QPfq77BY9y8Idxj78BJADuPjd1P+51+YnZvEz9iV2ihP8w1465phjpixCgL/onh6BjfeYsKRMbNcMrx3ANejbkr+ia+Z0LexZxhAmVVLA8bBjh49FuT5PXZrsHepF3d3eozy0M9ncC1OHpOyyWfDhoBs0EYAt/PwQ/t+5D0dLyvGfejfpup7+uNJUHdD3AMgNS21tYhQfRls5htURJHNJM7fdY7p1sLZSpC/NBH+2A7jw1bNgTvap+ITcwd9w0UUX6VI8tunrw/phSu0mJmWxC7Ctc4S8JTAC8xdOJXJW413OHi+dB6JMw7Y51WPcdSDdNp9CaTlV3vQ4CX4qTddJlO+wukWXMcZ9YO4baxpjBChQmepx8hxwHwkLJ3L+PEqBTs48ZqqzqYSuC+lal2O6i0T6Tg7wiQ+I9kQbbCJfOKhnBJjR76YjQEeiP4rYQYb+kfp/dR8MBnO6yFOndIGI3+Mc/fOLX/xiDP6R3ivhS5rGJH7j60NfoT3kiHlu5tbT+ZPcs7pWmuZ0v+c6vsqeO3qk+Nx9rqG/gVMQ5XRS7rXZZ7QfsDHMSZWQ5G0FcA3gXimAC0MK5OYgApjCZMpMJzo9KyxoOKx6csALnREDiwkFADuAOpg06ArugE8IDW2/hDMMpxjEpIa2QnQegT7GqQ6Qi0aMkUeo9DZqq0Pbe4PulZRlUJrcR4kn2tN6660XAWYAkxhsm2jU79CU7jDXZfzwPTB0MQBwSuKIAZyHsdQ2QDDQ0pYwtvmuTOamEyK58qBY8g5GGXk76Irn6cc483DE4DxgkAclzvMLm+DR05/+9NiWQcWjwGBMiVB66HsoGcgL73t6ZlzHmVSWcdWppjOYA8gO2iCrFZiEQ5ZqxR1v03+QQxgBOE69f41TriLzcL4g23F+IAMAstHuXTEfXKP6xHRyALkKGIJIcshXvhkrDUoV1Lay44hD1vMHcJxxEWNx1GiAg8aQtjJNx73SMQxnKw5Mxla2q2JMZUKrlEblE+VAztDHmWzgu1166aVZY7i0jP4eDjom7nAMkhc6yCCdQgZf0wS8p+/nM2n8ZDIL/RG9HLlNnc8777yB/aT0PQGC0Pulyztvxn1eYjeUlqFUxy99r7Scw75H/+N7CyyO7i2HhG/xonRxJCPfc4td9EzTEV7QRlh5SVtkMpExYhRZ1JQX1yfdF9F7cOaglyNTcmCjtvJ1vTfd8nLS+TnwYr/99ouygokqouOge+I7YJxqo1IZ1ZZm273pzm9Y25+yj1vWjFOvp3zVxoAL7bTiiitGGYmtBeiEfkB/SIGR7akseHfc33LBHKZemS57gDaPvQhgh/EE29R9Oug+2JGMN9gJC5vQnVm0io4kPw7AJ/pGGk2qS1kn1V7a8kY2obvTRhm7ARFQ9kE0in+S9ssW69hA+BHpF21+RL45/j7sUXym9KFJ6RmD6j3dYwd2DpEtAAO5D2dQOUvvD6tDluazOL03KR/GIB6NW0fI5TdpvTuXZ3rNAVw/+MEP4qJ+5iCYi8AWZiwAICkZnL7f9rvED1NqNzGuPfOZz4yLX5Cf119/fRw7mCNgEjhHo8jZXHqjXitpcwujDiXlHJU343x/3LpFW9mme4xpK8uSeE/+SdW9DcAl8B/P4rthfhQAFd8QXQ5qW9wcH0j+sU05cglCDvE+OiD+Iwedsngb3zyETgKgXHniN0E3Y64Te8G34Aaciq9SxDa9yELywi5qIoDcmgcgTcD3Iq6TH+MTuisyBkojLfrWpNzHdkCPYvygDPhHIOwMFiy4XlnCl5jYNPxzEBx8ZK4ZPAffDNkBoVMTzS0FtDUVrzTN6X6PRTJEhIfcPkzrha6QLib1Z2ijtGG1He7JX+rPpdFwaUP4WMGrKNgBugcYiTZMh6fp5xXA5dxoOUdZG5ZQzhEk6ui8z3ZYrGRgxSrCV4RAbVuJoucWlyPC4o1vfGOsDiu8CduXkgtrIkg0Karpe/X3wudACuBa+CWqJagcqByoHKgcqByoHKgc6MYBLcBII+J0e7s+NW4OVLthPBzF4YQDjUgxRx555AKJvu51rwtEwoUOOeSQKQBcrbonIucRRxyxwLv1QuVAFw7kAFxd3qvPVA5UDlQOLEocIBoii++YdCIKkk/2UA8mu4ioBOUi3cQb9V/lwAziwCg65AyqRi3KYsyBHIBrYVW32k0Li/OLd75Vt1i8v29aOyIbsgAOEIlAUHqmCcC1dW/bQaKFQ4ByCIiixSAASViIp7TQT7sEXQEARaRY8A3MzaeRhNilQbslAU5hgQLk0QsBtHzqU5+aAqD1+5Rx3333je/xTzsfsdCXaI9dyCMfpzspsPABnAHgeojdMLSN7rvf/e7wpCc9KV4X+Df+6P0D6ASvBXhyH1kpX5T2JI8sgFB0WL4Z5fZFcm28aipXaZrT/R7lVxRdAGolUVPFA+eTruUAXIrGzDNpVC8H+QEMpG0PSxXA1ZFjJQAuQvaxpZsoXVmlrTJ0H0c6qwGWBELwKdwx4DV4ocZI/T3sHCutDjzwwCWBLYtNHSuAa7H5lLUilQOVA5UDlQOVA0sUB972trfFqA7ufFiiGDADK1vthvF8FJxmOJogtqjz7Up9O0kmnAEviohix7s47XDYEe2kUuVACQcqgKuEa/WdyoHKgUWNA759pW9JTD2YyAAMo+1k0u1fFrW61vIuGRwo1SGXDO7UWs4EDswUAFe1m2ZCa1g8y1B1i8XzuzbVCtAUkUVz1ATgcsBJzm/jWwXmti7M5eXRjH7605+GE044Ycpj+IgAgwEMc8AMkZ0ATkGAiXzeXwnwnvRhgrcoQqLmlU877bQAqGoQkbewA+Qj8JK/51HMzj333HD88cfH2wLfpCAyvcu2jPxBp556avjhD38Yz0v5El+e8D8HDXldlS2gQKKhQ+yeoHPdzx1L05zu9yg79aGOABRpYyXk3xcwpLZkTgFcRCfeY489YhYAFdmWMiUBEgHTffjDH26NCpa+y2/1nbqFYo47dq0EwOX7B5NUuhUFyGm2tBGdf/754dhjj9XPxf7IxACr0iAaMI2csLYMTkID00EI/TgdW7Es9gyfxgpqoCVMJ+EBK1UOVA5UDlQOVA5UDlQOLAoc2GWXXeJWLWyfWGnmcKDaDaN/i1e84hUBp50I+4qoINheWo2ITXb44YfHbU31HAA67Nof/ehHS8xiI9W9HsfLgQrgGi8/a2qVA5UDM5MDrOQnwpZ2Y2BSaP78+XHrdyb3RWeeeWY48cQT9bMeKwdmLAdKdcgZW6FasMWOAzMFwFXtpsWuac2YClXdYsZ8imkpyI477hi3YFNmRKWXzyYH4ELnJPoVR3w873//+/Vq/8hiPgDZUBNgqf/wwyeAoVh8gJ+IBQh33XVX+kj2N1GumOdv23XMg9tQrhtuuCGwRTNANAi/1G9+85ts+n7Rt09ki++vfe1rfjue4/MCFAfdcsstMbIW/Pzc5z4XrzVtK7nTTjuFF77whfEZwFuAuKBSvsSXJ/zPgXyAh3Jbawu4RlE+8pGPDPyupWlO93vUh2/Kt73gggvCMcccw6WhyCMls+iVcZ3+B6UALg9CdPrpp8fd9+KD9g+bUFuNfvvb3w4/+9nP7O7g0wrgGsyj+EQJgIsQbY997GP7ORx88MFTwtW9+MUvDjvssEP/fpOg6D+wmJ0gxBlM2HM6R4C3WI2GUK20aHGgArgWre9VS1s5UDlQOVA5UDlQOVA5MJM5UO2G8XwdtrDffPPN+5PKnipOOZxdF198sV+u55UDY+NABXCNjZU1ocqByoEZzoEtt9wyvPrVr+4vTk2Lm4tikD5Tf1cOzCQOVB1yJn2NWpaUAzMFwJWWq/6uHBgnB6puMU5uLlppfeADH+gDunIALgcxte1mpWhARLsi6tUgAhQ2e/bsPuiJiEMbbbRRWHPNNcONN94YLr/88rgdeJoOaRO1iB3JvvGNb6S3Y5qAvAjigh+K5zl6ZHgAXJtsskkMAENa1157bVxoeM4550xJz99p2prco/rfc8894UMf+lBMA75Rhuuvv36BADIsugDfoSj28IKdGqBSvsSXJ/xP8/JpZH3PVtsMco3n+U5tVJrmdL8HgJE8oZ/85Cfx26611loxGhzBg6688sq4zSG8yRHtjChaAMAAK7L1JttsNgG4HP/De+SR0jbbbBMAZELz5s0L3/nOd9JHWn9XAFcre/5+swTAlYY6FJJUqW6xxRbhda97nX5GNGTJPpj9BBbRkyc+8YkBXgjsBpDtkksuyaJDF9EqLnHFZuBkYGRgRTBWqhyoHKgcqByoHKgcqByoHKgcGJUD1W4YlYMhRpjbeuut4yKaZZddNjprLr300rjQCKdZpcqBSXEAe5/V49B5550XV+ROKq+abuVA5UDlwMLmABNCL3jBCwK6y8orrxwnhy677LI4+cTkUaXKgUWNA8yNVB1yUftqS0Z5mXR9+tOfHivLdu+5SdQlgxO1los7B6pusbh/4Xz9BgG4nvWsZwWiAUFErQL8lCPf2jCNJpQ+76AnQGGAWlZfffX0sRjNi0hH6Lhd6R3veEcEgvH8bbfd1o+6BdAFwEsbEezlsMMO62MH0LEBtUF/bNgNykG+beC1ZzzjGREwhu4O8Ic6p+lOki8xsxH/aTcsttwDgJSjN7/5zWGzzTaLt44++uhw4YUX5h7rXytNc7rfW2ONNeI2hf2CZ06wwb75zW9m60yfAKyFX/Sggw6K7UnXSCrtM47/Se8pa/gMv6GmCHHxZsO/CuBqYEx6uQTApXBtSgtEHnvBitg+kW0URV33HNXz9Vg5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQObD4cGAQgMt3+jr33HPD8ccfn638vvvuG1ZbbbV4j20ABQ7JPcyuWWyvlxJbNAKCIkq+CMALYJZB4FmiWu25555h7bXX1qvhP//zP8MVV1wRf3Nvww037N8jXQBe5OXbkAPCofzs4AUdeOCB/WheBNEhOpiTA9dI833ve5/f7p87IEcXHWDGtUnwRXmNegTDQiQoiG+h8zRdogRvtdVW8fL3v//9GJUqfUa/S9OkHSr/YcpS+t6Pf/zjGCTIAybxrdkulDZLPbS9PXXzdsdvtspky0zII2W1AbiE/2lrUwDCBO4i0A3AsGFIfRRAHgBe6kBUPP441++uac7qRVJaLJftlgC4tNermIeApMGIHPnJtVQY6Ll6rByoHKgcqByoHKgcqByoHKgcqByoHKgcqByoHKgcqByoHKgcqByoHKgcqByoHKgcqByoHKgcqByoHKgcWPw5MAjAtcMOOwRAXBBbx33ve9/LMuWjH/1oP4rWfvvtt8C2gf7SBhtsEPbaa6/+JUAwbId4wQUXxGsrrrhioFwcoRtuuCEAnmqil7zkJeFlL3tZBKHwDKCXk08+OZx66qn9Vxxglm6HSCTvPfbYox8Vi128DjnkkPguwBsAOBDgMt5lW8BHP/rR4XnPe94U8FdbBC74s+qqq/bLGBPs/SPwDoAfgEjj5ovyGMeRCGnUAfrrX/8amnZ722WXXcLzn//8+NwPfvCDcNppp8Xz3L/SNIk2VVKW0veogwPTrrvuuvD5z38+aLvElVZaKW6HqF3g2CJRAEWu0fYAQ910000BwJ+oDcBF+nPmzIkAsfe///16ZcqRSG7arrQpQtyUF5IfFcCVMKTpZwmAC4GlPVJJN90H00Mbcp9G9elPf5rTSpUDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA0sYBwYBuAApvepVr4pc+fnPfx7+67/+K8uh/fffPwBkgRQVKPtg7+JTnvKU8M53vrN/+2tf+1rcAq5/oXcCQOpf/uVf4qWmKERPfvKTw+677x5WWGGF/qvsUvbVr361H3lLN9i6kAhX3L/00kt1uX9cZ511wnvf+974G2DOBz/4wf49B6f1Lz58QtkgADpE7frwhz/88J38ged6gYrCzjvvHNiiF7rkkkvCEUccMTa+5HMe7SpbPhIVCmoD1PE9nva0p8XnjjvuuHDeeefF89y/0jR/9atfFZWl9D3qQHskuhsR2375y18uUB3qQpQ1bY0JXgfAFv0CICLgPu5zTdQG4ALLs+yyy0YwYlNUt0022SS89a1vjcmpDSntLscK4OrCpd4zJQAuwvg95jGP6efAnp+g7EQelo1rf/jDH8LBBx+s2/VYOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDmwBHFgEICLbQfZfhACAHPkkUdmudMFcKIXAVwBZoFSsJSe4XjAAQf0I1ylAWzYzg4glIgoXmeccUZg275S8vyIoEQkJdHLX/7y8NznPjeCagBhkR/Rs4455piwzz77RADXMLugge3453/+5/je/PnzY0SpcfBF5Z3E8T/+4z8G1vNd73pXAFgHpVsJ5spUmuZ0v5cre3qNqHJEUYO+853vREDf61//+vgbcN+f/vSneK5/AMIE+CLqG/S73/0ubjsJeBHQGNQEiCTSGRHPoDZwZXwg868CuDJMyV0qAXCBuvP9XAldSAhD0Zve9Kaw+eab62f43//93/D1r3+9/7ueVA5UDlQOVA5UDlQOVA5UDlQOVA5UDlQOVA5UDoyPA7NiUg/2HFu9VZi987ges/fvwd6Fhxdnji+zmlLlwCLKgdmzHgzP3vj+sN3mc8IyD9zLkuVw9wOzw7V3zAkXXn5fuPj3D4Y758/u9ZmHetQiWs1a7MqByoHKgcqByoHKgcqByoHKgcqByoEZy4FBAC6ARgSTgdoiL33hC18Is2fP7hSFirQEwLn99tsjkIlrKb373e8ObG8IeQCbt73tbeEf/uEf+o9fdtll4aijjop59y8WnHjQnBTA5cmxMxqRvCDfBlBRkNjOccstt4z3tT1i/JH8A5QmbIjyG4UvSfJj//nv//7vMQJV21aRvlXlxz72sT6fmgpTmuZ0v9dUfr/uoMLvfve7EZz42te+1h8ZeA7Ii77EtolEjYMOOuigcOWVVy7wrm/reOKJJ4YzzzxzgWfaLlQAVxt37J46qV0aePqa17wmIj71IMi8L33pS/oZ6Bzac5OLIP7mzZvXv19PKgcqByoHKgcqByoHKgcqByoHKgcqByoHKgcqB0bnAICURy51f1jzUXeFDVa9I6z5mHvC8svPCvfd82C44eZZ4XfXLx8uv6Xn6Lt3Trj/wdmjZ1hTqBxYhDmw0doPhNc/59bw88uXDZdeu3RYatac8PiV7w8bP/6OsOHqc8L82Q+G0y6dE86+aOlwZ2/hcwVyLcIfuxa9cqByoHKgcqByoHKgcqByoHKgcmBGcmAQgItCH3jggWGppZaK28DxPAAep8022yy8+c1vjpd++9vfhi9/+ct+O3vOdnxEHyKSFWCVHDnGgWd4lihYYCMgysF2ib/5zW9yr/evUT7ANdDpp58eTjvttP49PxEoSGUi0hYRpQCmARLLvbfbbruFZz/72TEZQGQXXXRRALTznOc8J1777//+73D22Wd7Nv3zT33qUz2f0fJTtskr5Us/0QmesD3kGmusEXPIRdfie372s5+NUbruvPPOAJhrEJWmOZ3vsW3iv/7rv8Z6sQteU/v+p3/6p7DWWmvFKtOW2Dpx1113bWQBuCD6FXTLLbfEI9t7sk3pTjvtFNhlD6L90I5SokzkAcFreD4MVQBXR26VALhWXnnl8IlPfKKfA3utIkivueaasOmmm4a3vOUtU+4hWBE8lSoHKgcqByoHKgcqByoHKgcqByoHKgcqByoHKgdG5wDxgR71iHvD0x97U3jZZjeFjZ+xSnjE2k8NYYV1Q5izcu/u3SHMv7a3XPWycM1FV4TTz18m/OSK1cJ18x8ZHqjRhUb/ADWFRZIDuz337nDd/y0VfvLrOQuUf81Hzw7bbTonPOcpd4W/3DM/fPcXS4ff/GHpcPe9NRrXAsyqFyoHKgcqByoHKgcqByoHKgcqByoHKgcKOdAFwOVbw11wwQVx20DP7oMf/GB4/OMfHy+xxSJbLQ6ivffeO6y//vrxsZNPPjmccsopU17xyFbaYpAHvLyHHnpo+H//7/9NeS/3w6OINW1zuM0224Qdd9wxvu6RxhQRKwdIAtjzmc98JoJwwF7AB0BlALoAdkF/+ctfAqCslJ7ylKeEd77znfGyp13KlzT9SfwGlKaIUgCOHJ9Cfq94xSvCi170oph11x3hStOc7vcE7gOH89GPfnTK9ppUmGBKgKgA/bVFKIvMefifbzeZbpMIsA+AH0R6bKlItDoR0bkEfGQrz/3220+3Oh8rgKsjq0oAXCTNR1lllVWm5MKesQgOJ1CBhBisVDlQObBoc+BVr3pVWGaZZSLim0FwYRJA0Y022igW4Rvf+MbCLErNewAHtttuu9hurrjiivDrX/86Po3i+rznPS+e/+IXvwjXXtubWJwQPetZzwprrrlmQEH2rX5z5ZpQEfrJzpkzJ4awXWeddcKqq64a9yonNOlZZ50V7rnnnv5z9WTx4QAKrbaUxiCkDbzkJS+JFTz33HPDX//6135lt91227DccsvF8L65VTX9B+1E7ftvf/vbIhXpdCbK8B122CGuHGG11oUXXmhcHv50JtWPPemf8IQnBNpI6pAYvmZL9hs4hFiBhCMHo/jzn/98nyGsqKOvM77Rr4855pj+vcXhZHGsX04PGKSfIL/XW2+9sNJKKwVk+LAhwtO2QDj+jTfeOF4+77zzwp///Of0kdbfvU0Rw1or3B7+cbM/hee9pLfy7ak9h99KjDHr9f5W6v1hl7M6lZVw1/WwXOeFcO3/hD+fcWE4/MzVwwXXPSbcff9w0bi8zOecc0647rpeuh2Ilao4lW6++eao93R4pfER/Bc4OOmHv/zlL6NTsvHheqNyIMOBVz/z7nDeH5cJV92QufnwpXUft3R43bMfDBvPvT38/JoQjv3xI8Ktt7GtYvM7fge7GTkDnX/++XGx40tf+tKw7LLLBreL/J16XjmQ4wB6hyYjsGcnaTuT/6CxMFfGRfkaY8nLX/7yaKddfvnl4eKLL16Uq7PYlb3aMsN/0g022CA8/elPjy+O0186qb7SZmPlaj+p+uXyWpSuPe5xjwtbbLFFLPLPfvazcOONNy4SxceuQgZDZ5xxxhQf2aAK5Oy5Qe/U+8NxYEnTCYbjTn16HBxwQBSAHEUC8rTXXXfdsM8++/Qv/ehHP4q+GHAIb3rTmwJgJAigFSAWQC4iAaDuu+++CL7SdXwKimrE8/hLTz311AhWWXvttSO4CXsO8ihWAtIwj4NPaBCxlR0AGCJDKT38PocffnisK9G10PO333776N8gPY8uBU8IpgOR3/HHHx/PV1hhhQigET7jpz/9aTjhhBPiPaIqffrTn44Rxrjwhz/8IRx33HHRF0N+W2+9dZS7ir6EffG9730vvlvKl/jyhP9RdvivchP5jDoz54evjnkViO95wAEHxC03VaT9998/+vH4jS+XQERQaZrT/R7tn34A3XXXXTEKF7gbaMMNNwxvfetb+7gcbwvxgYZ/bQAuXgEohh0KMadAG8KPwfahRLzTd6CNM7c5LFUAV0eOlQK4mIBmH1h9qFx2CDKEEx+4UuXAks4BJv2Y1F1ttdWi45bBm/2K2UP22GOPjfvSduUR4BeFwuz6zsEHHzxl31+MO8IoEnqSEJOUBTAJDuYcQEsKDyE7DzvssK7ZTuQ5EOJSzlKE8EQy7CU6d+7cOKjfdNNNWWVyUvku6ukKwMsAjwIK0X4BBEK+xS6KrFZMoMzefXcvasSIpHCepEV4U1GuXLo3iSPtlT3Spax7HhgRhCdlEnJRIhwtGPMoxrm9sBeluqis426DrJ5hkhliVQwALRmd6QofydjUqFTZckcMMiYCWQXxz//8z7lHJn6tRDYuDBk+iBHif7oteNt7TXWfSfWTsc8YT/jvmUjj7neTqCMTBXvuuWffoUIe0j+8n3MdI/TjH/84p4sFLa71y+kBTfoJH9Idi/xmgpdw+aMQegHOD+gHP/hBNiR+U/qAt9Zf+dbw3hdcFdbbftMQ1npTCEv10iKq1oP3P/wa5z3n5SxAXL3z2QC6bgrh1h+GB875r/Cf310+/Piqx4V7HliqKZsFrnuZ3ZG5wIPJBY1XvnqVR7BHGBtZ9ZmCEpru+RYJOBodoJ9kW38uIRxoGo+bqv+Sje8LV/5tTvjD33H02UfnzJkdXrrZI8JuW8wPv7317vCNM5cOf/wz23dkH59yERtbtgdbZZx00knhC1/4QrQnr7rqqoDe0YWGrVuXNOszM5MDTTLPxybAGJO2GT0/t9VnJtdGLxWTf0wGQURRIJqCqPY/cWLqcTr5sijYMuJOUx/W/ek6MpmtRWSyV8a9lFNDAABAAElEQVSRd1tfKU2/zcZqSnNS9WvKj+sz5du2ldFl93SMFW1lGeYethD2BfStb30rsECkK+Xsua7v1ue6ccDb1ZKgE3TjSn1qnBxwP0sTgIv8AHpqQXQuf+YmAEWxBZyT5IS2JfR7u+yySwAo7kQ6AJZFLNAE3wA9+tGPjpGIdK/LEXuQOaknP/nJERTmaTM3DBDIKfUzsYAODIaIejBvwFyu0gL09slPfnLKDmjed/VuWjeug9vgXadh+eLvTvo8x8c0z3nz5sX5Rr+u7SK5xk5yV199df92aZrT+R4+MwIq+bwi3xNSO+AcMBv9iLY1iAYBuIjChW/7kY98ZGNSLOjE11dCFcDVkWulAC6SZ6L9ve99bx/N6VkyUYQRnEPN+nP1vHJgSeDA7rvvHp72tKc1VhWw4xe/+MUpg0fjw70bPnnS9pzfA8gC+AhiNRZGrwt4f5boL0wkOWlye0kEcAFS0WRs1xCczrsl+VyKchcA18te9rLAH9Q15O0g3s4EABftB3CN+hvKNgoVihAKN4TSxaSOK5CD6raw72tvbcr+vve9b2EXZyz5j7sNsoqGEL4QbYBvzgoGKHV+SMYuSgCuUtk4kwBO8WP0/on/XQFcbXWfSfVbFCY9xt3v9E3HeXS9iz4K2IQQ0hDODtlTrIRCjh9yyCHjzH6hprW41m8Y/YToiR5xDTuXyYXvf//7I30bb1fDALhwJ679qNvDh5//h7DeK57d+/HaEJZ6VAj39yJtzeqBsR5cpvc3p/cUzsCe4wYA16xepM8He8D4Wb3rs3sOmFvOD+HnR4XPfnulcOaf1wj3d9xO0cs8DgCXVrDmwq433asArpGa3WL3ctt43FTZp63zYA8CuVS46MrBjk3SeOoTHwz77nhfuH2pWeErp8wOv758ds9x3pT6Q9dZFf1v//Zv8QfgLUBcyBHkSQoSaUqppG5NadXrM58DTTLPJ2CmY1Le80vtlZnPxeFL2ARKqf0vz8vp5suiYMuIU019WPen6zgpgFNTXxmlXq5XpjZWU7qTql9TflyfKd+2rYwuu6djrGgryzD3KoBrGG5N/7PerpYEnWD6OVxzZD6BiFcQY34bloBgAFtttVV/fkXcY/wgCn5u60T5fZp87exsQYCLXJAaj3hFXi94wQvCK1/5SmXb6SgAFw8j78gLOzEl5lb+53/+J0YWS+9tueWWMRACdmRKBEAgYEIuCALzv294wxuydSM/osADnGWeKqVh+JK+O+nf8NEjQCk/6gR4S5HIdJ0jdrn4zgL7dPFgSZqkO53vEdGeeiv4Bfk70f6//vWvdwJv8d4gABfPEP3tQx/6UFx0yW8nIoCBZ8i1H3+u6bwCuJo4k1zXhENyeaifoE9prEQWQmiAFNUHGCqh+nDlwGLIgTe+8Y3hGc94RqwZA8n1118fwzTS90DqCtQxTMSG17/+9eGZz3zmQG4pbR4k8gYTTjhcHEzCNSJv0Y/pw3onXdGuye0K4PrfOBgOZH59IHJAirIDuAi/qVUTZ555Zj9sqU/if+1rX+tvuTgKK2cCgAtlnVX4UBrG1J1PhDjXRM8odZ6udxd3ANc42iBGFsYZBL+IlqU9xI8++ugpW/VJxjYZlbnviuGITEf3IqLXdFOpA38mAZzEM/G/ArjEkek7TkL2j7v02joePQ7jlW3jRWo7AHMF6tK9xeG4uNZvGP3kqU99athjjz3i58QpAsh8HOSTVsMAuB619L3hfU/7bdhq59VD2KA3xiy9bA/ANT880NsO8cG7Z/fwWcv2cFw9ENf9PajXUqzKuz88MB9w171h9iN6vyNmpQf4uvaccPtPvh8+cNKG4crbH9UDtAwmL/MwAC70PvQ/Vnj6eNU2IdZ0rwK4Bn+nJemJEl1kjVVmhSc+dnY47/f3xyB1Xfi14dx7w97bzA4rr/JA+OpPZoWfX7xUuPe+v6/OTtPApkZ+QkTa/fnPf97fOoNt5dEzB1FJ3QalWe/PXA40yTyfPJ2OSfkmW33mcm60ktFXX/e618XJLbZSJyI9VPtfnq/TzZcK4Mp/h7ar7mMaZwSupr7SVpZB99psrKZ3J1W/pvy43iSf296Z7ntrrbVWf/soQAA33NCyT/R0F64lP+YTsS+gGoGrhVEL6daSphMsJDbXbIfgABGrNtpoo4hFIMoQkY1/8YtfxIXxQyQz5VHAW+ycwlZ0nLPlIL5hFm5OgoiqxXZ4q666agQSsYU3C0HboiYRAAA/yBOf+MS4FSDzy9iUzOm2Ee+tt956YZ3ebmrM+xLcg7xYUMSccBtNN1/aypK7x7jHnDuL5YmUhr096jcrTXM63yMq6Prrrx/WXHPNGCCCOVf+ciC+HN9KrrFVJ7wGPMb8JfZSCoIbNl3hh9hVhraGnkn/5o9z/e6a7qzePtJdfJpd05sxz40DwDVjKlMLUjkwwziA8GGlLQKHST/Q4BdeeGG/lGxBxmQfz0Fy7vYfGOGEqC9Ef4GIEPDjH/84nhN2E0UBYr9fjyjgEyKgZ9///vfH5/inCbwK4KoArn6j6HCSmyBtem0Sk/gzAcClvsMqEhyQTijShOJFRqR9zp+biecVwDX4q7gzSs5T9Ykvf/nLgUkCkdrJMAAuvbuwjqUO/Argmr4vtihMekxC9o+bwxpLAG598IMfnJK8+jSOEyIpLm60uNZP9XKAedO3I4ou0XShH/3oR/Gv6dlhrjsYqiuAqwfRCs9d/frw8Z2vDmHzbcODK/YA4sveGx68Z6lw9yW9qEB/fUSYvdodYZlNHxXmLL9c7+n7w91/uDncd8kDYdYyc8IjNr0/zFm9BzqZf18vKFfP/rh8Xjj9uzeE/+/iDcLdPQDYIPIyDwPgakq3bUKs6Z7bK+mCk6Z86vXFlwMlusicXtPfaK3Z4Y/X9XYUvbNbFC44+MQ1HwzvfenssNbqd4Yvn7pU+OmvHhHuW3DBcp/Z0u0UWVhbN6SrufsvJCcldUuSqD8XIQ40ybzpBnAtQiybaFFr/8uzd7r5sijYMuJUUx/W/ek6LgyAU2nd2myspjQXRv1myrdt4smifN19ZhXAtSh/yVr2yoHKgcqByoHKge4cqACujryqAK6OjKqPVQ4UcMAnfJomiHbYYYfw4he/OKY+rlX9oGHZQxpQyO9///v+Vj78ZnKRI6huokgAFnBiW1RQ2ZCczZzLAQ2A69vf/nbYfvvtw9y5cyPK+eabb45IX0JUloZNJA8mcTfeeOMYDQxQGwhc8jvxxBOnlDOd/Ad5DwoYRDlAOaLR4BjPhU4lH+QeADfqCUobXoA6h1dEBXAEOqsxQRmDbIa4BzL+oosumgLGizfrvwU4kJsgBSGuPcaZCKUNvva1r41RqggHCoGcZ8XYD3/4wymIblDY9Bei1/Esk+l8N5Df9LGU5BAChU4kLFGuXM9+9rPjKg7Q+t/85jdj+8ZhTl6Ar375y1/GdkWeOC6JJkEbIqoSqHO212RLJSdQ8R/5yEfipXQfcz2nMvIb0OQofUhpTvK4wQYbhOc85zlxdYr2wWbVB3y54IILQg/wHrP/2c9+Fld0eFn+8R//MW4dw7MAWp34ntpuEMCpryIZ9rsr3a7vEUa3axtU2l2OrKjZZ599olzSNpOSpYBnAdGKdH0YABdtkLZIX2FrHghQICGSkfN8F60iVz4ct9122/CEJzwhRoRMtwAjPO5rXvOa2B+Rj2wJx8oe0kGuikaRjdMpw1Vejsj+5z73ubHtcg7/6bf0TY2NXSJwDar7qPWjrIxpm266aT80Miuk+J6AwBnnupJPegAY32mnnaJMI+omxhLjJWMs43gTlZQF2YksoD3RD5Gh5PXd7363P8aOq9+h86CTcFxuueUC21IT5YeVx7lxgXpus802/ejBhCEnehYyB0AKbV60+eabR35xZNsQeE8/YJwgH+onmcd76Aakw8ovpxIe8n7pe563n1OHnXfeOY5vtAEIXqFrpVtno5N1rZ/nwfm4x1P6HN8WfY2Q4Lk+oLGJ/HPjD9edcnpAqp+g8xGmn5WRWvxw3XXXhSuvvDLKRFZmirqON3qeo4OhugK4ll3qvvAvm18cNn/JquHe5TYJD965TJj1qLvDPX+aH2Zf8cyw1L2PDvOvPivM2v7OsOL2a4X5V9wcbj/8xrDc3ZuFpR/7uHDvaheFpTb7vzDrrkeFnjUQ5ix3fXjgovPDHt97arjmjuW9eNlzL/MwAC6NV3/5y19iNNKtt946rjpl0kZ2ySWXXBL1KfoX42fuHnphFwDXMH1n3O01yzi7OMn8hunjFGmSZSH9ku/AqmDGJVZAI19ZZYxdyJiNLsK4LRo0Huu53HH1lXurO3s3/npLdwAX6aw7d+nwrhfPCms+5sbwHyc9Mpx3GWNDPhIXugWygW11sVc0Jp/Zi0BMHduoa92G/eZtefq9rt8O3V32G2NJagvx7YgeTj9Hx0XWMe4iEyB4gV2AfoYfAN0TOcuWHmlaPA+YljSxOVgIgc47t+eTYCUw24c4da2Dv9NFf/Hnu+rN/k563iYPkXkpgAt9iii/+CcYG+HXpZde2l+wl6bPb3iE/cbqcL2DzEWncb2HZ9OxUFvZbLfddtE+IP9TTjkl4Mdia5ZlllkmRnvn3S7UtSxs3UKbgCQX0vRf/vKXxzGatqU2oWe66of0UexACD2OdtW1//HOMO1sSZa58AoaxhfH85Kb6GQltsywMhL/zgtf+EKyjoB99JaUABCRrmztQX04fT/3G7mGXMT+W3HFFaPMRB/CL4bcHCbKQQpwQobQV4mkg7xFZvzkJz+ZspiMMuG7wqaCAMgjq+kLyHhkBX6DtK/Eh+1f1/7dZmORdxuV1m9hfVvq0pUvPIveQ1vAL4hfknGGNkn5kd/4fpBTp556Ko/3yWX3GWecEb9z/2bvhO+IzEQ20sZoC6SF3YT8FHHv1a9+dfyJHyj1F+k5lQm7jMXo7kenvbHVGL50+sr8+fOjPwCf1W9+8xslEY8pgAu/BO/ir0I+U0Z0v7POOmvKe/zI2XP+0DDy2d9rO++aZukYhu0Jz9Cp8E2hCzO3xPeDN1xja+6cPUy5h7VJB43t3q7w30snEI+GzQ9/FD5Mtt5CDiGfaAPIH/z2+FLQDfF/5ajr2O7vEjyBAAf0Q/oTvh/6EFGb0B8rVQ5UDlQOVA5MPwcqgKsjzzGeKlUOVA5MhgMowi996Utj4gAScobPJptsEt761rfGZ9KIWCWlQnn+5Cc/GZ2fKL9snYhDC8IRvueee8ZzHG+sIkrJ93MmnOahhx4aHxG4gIk+FF4cDClhlOGgdlBC+kzuN5O4gBtQ4nOEYcnWcrfeemu87ZPjGH8AuHLERHFq5AHG4X2cyDnCCDrssMP6zowDDzwwW1cm7w466KBcEvWacSBnULsT+jvf+U4ExAEmzBF9RtHjMFgBGGrP6vR5jHomdp0EjuoC4PJ2BVgLgzslnGhsebL33ntn2wWOEkADIoxQJhYgwIE4151witEPaY9pGf25mXS+4447RvBDrkyAO+XscfAoz7KnvUBM/KZvuVGOo4K2AX3lK1/p86rku5PGMO/hlOjSBkl3GKIMyGCPrqbJPJzR7vyQjB0GwPXpT386AggBu7I1LoSTjK0IIOTj4YcfHs/9H85vwBsAULzeTOwA3mqSj4wJRA4DRDGKbPS+NmkZrnrjCEV+0OdSwjFOX6XeXQBcg+o+Sv0A4PH+3J5zKUc4mAD/pZNtuWe5RjtjzOZbI2Nyej/fE6crDiynkrKgG9DmBQ7y9DinfR9xxBFxjB1Hv8NxjExqarPUCce3CKf3e97znv62trquI32Vlb+MAZCD2vWMjvCTScuUMEI//vGPx8slPOTF0vfSsvhv+sC73vWuIOCt3+McOUL/lg5HdMhB9UvT0G/vA+MYT2lTyFPouOOOixP7yktH367YFyDofnrsop+gVzRtbeyg7GHGGy+Hg6G6ALjQXNdb4f/C57e9JDxijbXDnVduER657GbhgSvPDXdf/oewwopPCkvdc1+4569/DvNfeGdY4UNrhFtP/1u4/z/vCasss2aY85hHhztuvSbc/5hZYZmnbRfum3V3mLXCqWG5ZX8bDjt5pfDdPz6xB+nK68cqt5d5GACXxitshY9+9KMRVK/tpZU2RwEwm+4xZrUBuEr6zrjbq9cndz6p/Ibt45RtUmUZ5Tsgh5lMxCbNkfeVQeNx7n1dm91r6sssPSvMv6c7KFrvPmnd1cK7X3xjr//9LRz0vZXCb//Yi42XSYbxGr0DeYquQdtnAh1QTjrxqrR17FK3km+u9JuOw347JpmZEIawo4ky5pNhb37zm2Of5T7jDOMjoBxkCYQs5XduHAeEjS9Cvgyel+xmoRbAXY1TTBwzVkDD1oF3htFfeB4aRm9+6I38fx+//Anp6W47M+FIvXPEZC9+jJTYcr2pP5EHwDeN/bzr+WGrz5s3LyYpu5oJZCY/se1EijSs303HYcrC5D2Lm9Q2sDORDSIAAiwOgmh7jNf4qqBh9EMmyuUXk/+rS/8raWdLsszluwzri+OdUWyZEhmJ/xY/LtS0ZansdoAG2PaD+nBMrOUfujn9izbVRAAdBgGb9K4DnPDJwPccAco6/vjj+7dcvwKoAS/U//BjoV+nfaX/cu9kmP7dZmMNkiel9VsY3xb+DMMXnncZzHdg8R1+/pTSReL+Xtp2B41XbEH2pS99KfoYyAv9hSOyFd0l53uQnOQZ+gDjCUS0akA2TZTOeziAiz4F0DhHzGF88YtfnFIW6QQpL0rkcy5PvzZsmqVjmOQLfGK7s5xcwN/AfITrW5S1xCYdNLZ7u3KdoDQ/2YSAA2lXue+Nf+rggw9eYDHeMGO7vh1yDZmRm8Oi7aJbnH322Xq8HisHKgcqByoHpokDFcDVkdG5iZyOr9bHKgcqBwZwgJWkijR09NFHx+gT6Su77LJL/xlWvaRRadLnB/1mVSqrM6DUaGO1FIYbxKpJACUpseoVxyvEyiyUa0hGRPzR+4dzHUc0Bj0T31KGAbjsu+++eqzTUQYDDytdJniYwMahBuGMA5gGueMrXuj9A9yFMxGDhTqIcPgIJIGDlzRkAGEwYAQy0Uwd5AAGMKYtkoiewwokoi9ATNiSHs7mHCBP+dbjQxzIGdSpAcjq37322isCs/Tt+J4Yc/AYXnOdbyfHBfdof4xhAP/kWEqBdWpbKTgqV65cu2K1L+0Bw1l56NtiVNIuWc2jNsU9gDRMUHQhJtPlUEsBT13eXxjPsOKMyRr4LjAMsgJiAgDnObzSJK3K6LKOaz/96U8DUftEmqCHr2zPCJV+92HfA/Q0qA2qnMMcAYsccMABU4BSOD2Ra0RJ9AkpydiFBeCiL9Ff+HY4MmjbAOwATBLdUH0P5waT9qPIxlxfm5QM53sh45kwVB9mnMHZRfQ85LtTFwDXoLqX1o9yCFzHOeVk1TfjKzJI/Q35x3NykvJsE2nSQ/f5tqxiZawGIKFxj+vIWGSeqKQsb3/72/vREpC7OGHJiwkUgbqoF45g+uko/c6jnFJm5C6OTvozE+QiQIxa6ev8QLbTxiknDlbZRPDic5/7XBxjiC6BUxndQk5sdAfkFG3W8+J7oIcwNh111FEx+xIe8mLpezHTzL9UJsIr6s6EEQ52jWHwgm9D/fg2g+qXySpeyvWBUcZTX1zAal2N4cqfviEwdFcZqjTc4Z/qJ0SAAXjssgInA20aYBqryFPedtVPKDtRaQQW7wKG6knnsN3j/xLe+eIeQOu6x4YHf/eisPKqq4UHLulF5rvx2jB7Tm9bxN7WiPfceUe4c4elwgofWyPcfPot4d7P3Boee/cKYc6jlg4PsE3i8quEpf5h03Df8muG2+4+Kay4+WXh/ItC2P+CzcL9DZGExOtxAbgAbT/lKU/p61e0OWQTfYhj0z1Ahj7BmG6hWNJ3xt1exaum4yTyS9thlz5O+SZRFtId13egHthd2GEOPmW8Qk8ZNB5TllKa3dOHVlx+6Z6udn+4/a4F90nc4Mkrhw9tf3W4+d454cBvrxD+cv2CzwgIiw6C7ACMwniYAlFyZRxUt9JvnsvLr5V8OwHTSMdtdiIXvvvd747J+9jqk7XKG9mNzgPo3HWzNEK5ZLfe05ExBj0WKqnDMPoL4/2werPKmTu2yUNkno9Nep/xmog86Om+CC5dwMZComc+85nxNb4BOgw2GnoSYxvEdSbFGQ8hz88na2VXx4fsn9tudnmB05KyuP2I/si3BayH/orPSroxC6hYSAUNqx/mAFyD+h/5lLSzJVnmlvji4LPr7vymvXaxZUplZAnIZ1Afptxt5IAX2jd9EX6x2MUXL37mM5/pFInLAU7KF7sF+cx46jLW9U/Xr/QeR3hOdDr8y00ArmH7d5uNxdjZRqX1Wxjfdli+UG+XweIDdis+N8Ye/I8iX/Dq7/lcgC8a5z38IIy32LeMBfLzuC/V/ZQOnFe+Po47IMt3GEFmE62YMRN7E7tS/hhA7IDZIU9L6TPGUUbq6/5eQMyMiyLpBG7Pca9EPivNpmNJmiVjmPyCKofGbr4T/Vc8BEhNmUSpzOtqkw4a271duU5Qmp8AXCo3R9ok7YT2qLklfvti02HHdtIlouFb3vIWTiNhU6AvpnIQoCR/lSoHKgcqByoHpo8DFcDVkdearOj4eH2scqByYIwcQGkE7CSDiQk/DONSYjUmE26QO0+V3jve8Y5+tCo36HRfRxlBbhC4EUHarDRTiGQcrThuNRGcM/CUdnoE5EbEFwgFHQMEQwNiQhEwiCYW5fx2xxfGDFGXnG+AP7SKww1DXyGcRuUgP4wDnCQQRowmsjEYyRvKRXmKN+q/LAfUltygbjIA2a6JP4goV4SkF/k3Tx35gO8Aw8iBi0EoQJGMURwArAoT5crledCumPRXxKzUqcAEI44ltVV3IrX1LeXPkch7OFMg2v7+++/f71Px4gz/p34GrzyyloBYFB/5xkQ35JM7/HaAKL8lYzw6oH+TYb576XttbZAylhAAPdqJoo0xccckJIA9J9W/K/iAd+X8YIJz1AhcXne2fyMikwjHMZOlOIv4ngLplspG/z7TIcMZFxWtgO/AakX4DLF9wxvf+Ma+I6wLgIv32upeWr+tttqqH8GO8YdVrRpnmVyiDwkE1dXJ5JMeOH4BWaotonvQjwEvQQ6MKS2LAIo4bNk+ljxFHoXDJ6+97aWyX+/mjoAjAUlCaZRTdx7jOGYFJ9vW7LbbbvF5DEUm/iTDuehy3CeCuaexxNs/1yGNJ2nbKeVh6XsPlSb/f4899ghPfepT483U8Y2TFLmttgVoiShXoqb66X7umPaBUcdTB2gxUQwIAtkhYrEEDnIIUDhR3gaR6tVFP3GHsU90kYfXdZhxine9nXrkSe7lqLcOPrxpvSvCq55zQ7jjuhXDXSevER533zKht+l4L3xML5xQD3z14G13h/+746Yw/x/nhMe+53HhpnNvCzd//Prw+BtXDsut3pvwWboH4JrV4939c8Jds5YPt/5DDzCx1U3hit/dG97/82eF+x7opdNC4wJwKQvJDCYWFT1y0D2fYHQAV2nf8W84HfrfJPIr7eOTKMu4vsNpp53Wn9yjTbge6TK/bTxWW2o7zuqNhb1OER58YCoA66lzVwwvfvpq4cLfXR9+9pvbskm8eItHhvdt95fw/YufGI486a5w191T05DOxzhE28L2ZwKTcdjHn2zivYttdSv95k15cb302wEGoP9q0o1FYnw/xlmBhPiNjwBK7SqfNOY+4xX1g+CbR1aS7OYeugbjFfa5xoTSOkgWddVfXHfpqjdT5jZSGVJ56LYz76d+DC+LT6TTfrAP0N/Re9F/pQOSDtGriGIFKZIQ556fT9ZKF+IZ+A1gCn0UO3YQlZaFdF2XJUoMNpODC7zOPD+sfpgDcJFOW/8rbWdLsswt9cX59x/GlimVkSUgH9oL1NSHH7qb/4/8pG9BgBiQm5JnXPPo513tP7dpSAO7Hjkl8jTxk2GzkafrVzyLPxj9lD4GtfWVEllDmpIrORuL+zkqrd90f9tSuecymPpjY2LbyK72yPXuO/P33CdJmwJsAznYld/oJehXGr+/+tWvxgW0vnsHgEnScHIZzDiM/QixCAr/PWMpvn35MriHj14LNX3MSXUCxnQWwKsfoBMwlyHgkgMZpRO4PVcqnyljE42SpsuwLmOY/IKUhf6JnS7fFd8Rv7F83yyIZWEs5OPLMDap+iBp5MZ2b1euE5TmJx8m+VEvIvtpsR1+R/RJZA3k33rYsZ33/Z3Uhsc3xBaxtKsULMa7lSoHKgcqByoHJsuBCuDqyN8K4OrIqPpY5cCYOcCK+1133bVvKLG6BGNnFAJkhJEIofRjHDh5mGq2IyBEfI60xZcrsTIiUOgxQHAsOvnKBlZ2oih3IRyyWlXGxDKGl5OHm5ax6YYCwC2Ab04OCnPA1c477xwd09QBowfQgxP3t95663iJyV6c7VCb8y4+UP81ciBnUDcZgO589kl8VpjxvSAGd4HpPFP/5t4mZIwOC+C68MILo9PA81Af4JqDxPi97rrrxigAnKeh6LmWkkfDw2gFDIZjZFGiJgCXOwTdSPYQ6xjJOHWYhIeItEG/hgQALf3upe+Rd1Mb5N6kSe2L9gAgsQvJ+TEOAJdP4uScw8hivhNOOOQjVCobp1OGA/DB4ag2B1CXtufkkStTEI4/5+dtdS+tHw4qwH1N46wiulEOB1h7udJzdxi6I1fPkR/tCP54BIXSsqgdoz/gbJSjmfwAe2sbZ7YBkaO3pN8RTYIVzVDOqQw4jUkUnNGS/4AQZfe4MzAm8vA/d3BTfjmdNZbkJhc0zqVtp5SHpe95PfwcByj6Jd+Y76EIo/4M7YB8IfFL95vqp/u5o/eBcY2nbKcyd+7cmB1OfdIVOQCfscYnqPVMelS93OHfpJ80AbhGGW8oj+su6AFEb2uj2T3g1VuedHnY4RnX9lY5rBSuPemBsMx5S4fHPGKZsOwqvYmZ5R4Z7vvbHeGGR1wflvqn5cNq2z4m3PHn+eGqT10bHnv20mHVtdYMs5aZE8Itd4S7bpsfblv9rjDnlQ+G5de+J1xx6b3hn85+di8CF2CWZprJAK7SvjOJ9trMwakTLOPoH6P08UnUfRzfwbcoFS+33HLLaDvz2+27tvFY7zYdkYtPWH2FsMm6K4Q/XdsD298wP9x6+11h3ccvHd72mi3DZk95Qjjyv+aF/z7j6mwSs+b0tj1+xQPhhZveEz7/3ceFc399Q3/CMfvCkBeb6jbKN28rQum3I02XZ+gxjIkCz6fjtE/Wovcy3jL2OPkEvUftlezm2ZzvoLQOw+ovJXqz1y933gT+8LEpp/+xiE4Raxz85RPsxx57bDj//PMXyFaTm3wzQBx8B8/PJ2ulC5HImWeeGU488cQF0mu6UFoW0gNgQBuhv0LUg4jQEO0HkAD6GVSiH9Kf4D2kLRQ5b+p/3CttZ0uyzC31xZXYMqPIyOkG+RCpUItwWeCSbmnPQhv5BlKwKG0xRy4/AUawkCIl/GvosRBylYU8DuCibwHscVuuqa+M0r8lV3I2Vlpm/S6t33R/21K+uAzO+T8BSGnuwGW+vye7n8Vq8AtKwa7i5xZbbBGBLPx2u0hgLB8f9I58e/hVaJ88AzEWYX+zoOaoxE/Pfb0HWJG5AMh1AvdrxZsP/3N/DVvp0lcg6QRe7lL5/HBW2cMoaQ4zhpG59BHOc3qO80uLYkexSdUHyS83tnu7kk4wSn7yYZJfTjfBXwSAEALcBRitZGz3CN45u4L0faEn7dUDA3C/UuVA5UDlQOXA5DhQAVwdeauJjI6P18cqByoHRuQAyjuRdxTpieRwxGHoaKIQA2r99ddfICeMWgAROVpnnXUCAC1I0SbS5zCsFGkDYwzQWI5kVOUAXG1AMzkdtXUaE4JE11KEMc/rnHPOiQ4yGSc+cezPYZxidEI4H+CVO74OO+ywcNlll/krcTtEHJBQGmliyoO9Hzg8CecMMIFVgVp5VAFcKafKfucM6pwBSOpNk/g4aImQA7mxHi88/M8d14RFxtEHyRhtmpB2Q9/bVQ7gKAeGA49iJr1/hB/HsQzRHmmXTeSryknr85///MBJ26a0Fub1JgCXO7vV/4hAILAWTklkHKSJdt9GSqCJ0u9e+h7laWqD3Js0SRYuLACXT4xSVwAQTJjhxHDHrfPBv7VPpvozuXPva5OW4e7gyk2UUz5f+ZyCcHLl51pb3UvqxzgJeBpqA0EL9IyT1CPfxRcz/zTpkZNbelxbOvGbSIV879KyOAAKucsk27x581q3+yjpdw6C1baeqo+OAGsJw49jm2iK6mPu6NazOrLVExMpkFYgc66xJDe5oHHO207p9yx9jzI2kQOM2/opeihjadq2cvVrykvXvQ+Mazz1hQI+dnt0rtz3UZnSo+rlaTXpJ00ArlHGG8rj+gB9LwUwpGUGwPWGuZeHl2/257DSE1YN8+98ZPjzWbeE+fPuCivduExYedZyYf7se8P8HUN4wjtXC8us2PuevXf+fMqN4bZ/vzms+X8rh1nLLxVuXeq2cO8G94cVX7xiePS6s8Pdt/wt/P7SWeGj5z97kY3ANUrfmUR7Tb+d/x53fqP08XGXZVzfQfqh840ogdoqRvol99vGY38/dw4cZIN1etss77VpmLXiuuHaa64P11z9x7D+hk8Kc5++Y7juqsvDkUccF37yyytzr8dry/WiIbz/1deEdXrjzSeOWyFc/Zeb+xOZjS91vNFUt1G+eVPWo3w7pYlesvbaa+tnPKJ/ABTAhhe5bqZoFLqnIxFsmfyGHFQj2Z0by0epw7D6S4nerLo1HeVLSevmYxPb9zIxnxL2JOOhj4MCrjf5WUjDI7RL7/H8NFnLs9KF0BOwAzVhz71BVFoWpbvtttuG7bffXj/7RyKxo9uISvTDJlBKU/8bpZ0t6TJX30nHLr64ElsG/x7bYELD6r7TDfIRL/xIG2OreyIW0e41b1MC4EK/zy0Q2G677QJ1hdTPHcCV41tTXxmlf0uuuOxyXuTOHcA1TP2m+9uW8sVl8FlnnRXYGjcl+Sadb/6eAFwuE32RrKdHVCfGQMjHHwdNecTbjTbaKI4dPO/jM79zhCzFH7h1b7G0FuM0AbhY5EVeKbk89jylE8ieG0U+p3nq9zjS7DqGkad8Fj4fo7Lo+P+zdx7wdlVV/t/pBUghCYSEEiD0CApDVyABFKQqoNhGLAM4jiKK+gdULDMyMxYEBwRBZUQkoKL0Guk1gpAgIBISWgIECGQgneR/vxvWY72dve89Z99zb97LWyufvHPuKbv8dl/rd9aWZ6T8m1mTShtMje26Xklf0Ux8QuBK6ae0bkg+CNb1uKjuR390RD2BpBoKjhXQRSP33Xefu+CCC8JH7LchYAgYAoZAixAwAldBYGUhUPBxe8wQMAQyEWDSj7cI3NTL14NMkDEo43IYxZoI3hFQOoSSmuDynH6Hr0Oee672dX4gWmEU+5JDHpfFgP76Ra6lvlzgXfmKi3yhwGVrOyFSSdhy5MsOtjcUT12xr0nl2fCo8yFkD/0M/RqLZUQbVPmNYhNPMmxdx0KVcomJEbhiqJS/Fi6oCSG2AOS6Xqhp5QLbIrE9kkhKWSztii1JpN7JYrQsgStWr8S4LYtkSQ/HMgQuvQVMjLyiw+3K5ykCF2kWrCClgqV40qMPw4OatHv5ol4Us/oLw9xyz32PdKfqIPdaLdLHrioCF+RVtkZEORYKijy+okShxha6IlqRFlPyynPhsZ19uFZOa8VjmCbBPxwzwufkd7285+RPbylAHI36OZ4pQviItS3e1aK9SDA3oA7SvkXKpIWvI1GCSX8sYRAmWyVA4MT4qCWn3WmiVWi802HLuVZMs33pmWeeKbc6HQ844ABP5uai3qJLxpJY/y/jnK47ueUJ4SwX+04ZUT8mTpzoDjnkEH8FAwCGgJhokr+eR8byF3tfX2vUBmSMiOFZbzwVA7WeD+stLcJtpXSawnPJlyj8uZ+an6QIXM2MN8Sn58l4GGsktU3e3MFjn3IffMeTbuS4NV2/ISPcgoV93IuPznev3vuaW3TvYrd8YG+34VfXdetNqvXlS2sh1rZMXPDc6+6x/5ztlt690K2xdX83aOcBbui2Q9yQdQa43ktfdfPnzHPTHh7gTn1oh5oHrjc9nKTSopXholRPPauvi7JePvKQeynCAvdT97SBUfr13DbH/LBV9VXyGB6rjq+ZNl51WqoqB+bx4RaD2lOg7m/rjcch9rHfa60x0H3qQzu4Aw+pefQZuIFbsWC+6zW4trVw7+HuhX/c4n5+bm17mgfiHz1JeBO26uVOPvApd9vM3dzZlz5TW9e/6YlC7uceU3lrpsxTaWmm7CRMygiiuWztw/WLL77Y8eGWFk3gShGSCIM+H9GGXum7McTJuYTdTB7Kzl9y5s2SztQx1efpsUn6vDCMmDFfPsrj2SJzOZkj6PjEWEsYMheqZ1TmuZjkpkWHpdfQXIecz/ZuWsrOD3k3RUpJtb9m6llP73NzdHE5axmIpLlz33aTfKT+4sVw77339l6x5KNSuSfHHAIXetlY+9f9sISr51fiFV3i5phqK820b+lXYmsCHbc+1wSuMvlrd9nm4qL7YDwdojsPRTxCadz0e0Lg0n1ibG4l4coaS+uiIBGib0DE0xPnuh9jTc3aWgskc7Z5ZE3HB9kx0eO6rosxj0zyvuhrtFdPmQfIeq6Z/lniCY9VhVlkDCNuyefLL7/sx90wPfwW0jltmzbQzJpU2mBqbNf1SuYEzcQna8JQRy/51J6zZK2p63ER3Q9habxjfaDEJ3qrejoiedaOhoAhYAgYAtUhYASuglgagasgUPaYIdAEAni9YpHD9kciLIBwBxsjWmkyljzPURus9HVtANJfzOhnONdeblKTXu2OWS+MZBER7qWu45AtHGURodOln+OcRei0adM6voybOXOmO/3008PHor/1gjFm8EoRuPjqBy9lWqksEYjXA74CRIzAJcg0dwwX1IQWWwByPWXE118G81wj0QtBWYzqa7wfS1ejeiUGZyEl6XTUMzjr5ziXcDRBMnymO/yuR+DSbq/Z2gqlAgogUfyIwoHfGBxQGLFw1l895ZZ77ntgnqqD7SgP6WO10qxRvKL80HVp+PDh7pRTTvGvprZMkHYRKmlEqc4XddIXhmm44oor3JQpU/zllGEjfCf83aitVdmHawXvRRdd5Lc4DdPDb1GwaqNw7Dm5Vi/vOfnTX/9JHI2OMaJp+I4YPeqRpD/ykY+4nXfe2b/K2IeXE/kSMQwv9VunBa8ZKPWYA4hCTL9HfYVkLeNuTrsjPvpd5Bvf+MZKWyLr+DjHqxaKPyTliY17enyinlPfEWkzWknub9T+yHii605uefJFczPYS5r0UX+xKt419H051/W2SgJXbJ4m42DZ8VT377LNgZ4z8yHBvHnzJEt1j1JuovDnYV3+oqDmeorApdPDc40knIuIISw1vw/Dg1o1Ycg892/bT3ejNurv1hhe86g1eIR7o0bAXTBvoXtx+itueY20NWbPkW7Q6EG1vaVqJJLadworlr7h5tz5svu/Jxe4kVuu6dYat5brV3un1+JX3dLXXnEvPfO6u+KB9dwfnt7ELXfdk8CV2+aog7ruV1lfw/KT31XH10wbrzotrSyHVhG4GKc22bA2d/ryzm70ZtvVvvZZt9ZoauvBXn3dkldmuwfvuMVdd/OD7rZpL9eM4FKKnY+9+/ZyJ32ij9tm5Dz3jckj3Iynl3R+IPNXaq7RTJmnktJM2UmYYMkcX+s8Yh+NaWNtipBEmDI31kbMWN8t8Tebh7Lzl7LzZkln6liEwCVG+TCMkMBFWYBfGbnsssvcTTfdlBwLZS4UjmWN4mgmLTps3V9xHX1SuI1j2fkh4chYzLn27JJqf83UM52HKsabVqal6j43VxeXs5bho9nddtuNIu3kUddfUH90ecjctwjJR/ohPk4Rr8UEm2rDKsqVTtG/Um9lO0P9AHoB1k1sQ48I0Uo/EzvX698UwYkdCMg/IuFqAlesb461lWbbt/QrsTVWLG9cy81fO8u2GVz0eiTV5xclcLFOZhcQ0dGnMBW9Urgm0d6/0evhqVvIXrGxILU2In7WaOgZkBSBK2Wn4B2ZE+h3pS3Keq6ZPpE4YlJVmLq/IZ7YGMZ1yafkiWuhhLaXFO7he/Jbl520QX1NnuOo66Osj5uJT+qa1mHq+GIErpyxXXTOOux656mdbOq9Y/cMAUPAEDAE8hEwAldB7IzAVRAoe8wQyEQAbwosdOQrKgzmuGXFk1VKMMDjLSIUFvAxwhfbC6BwRGJfSkk42hNJyu3suHHjnCiT9ARWFhG438bwFhO86qCwla/ryTOkjZiweEPpibENefbZZ73CI/ZseE0vfCSt+pmU8V8WnzyLMRuyCIZc4sYD2sEHH+wmTZrkgzICl0Y0/zxcUBNSbAHI9ZQRn6+3eAfBY1PovcXfUH9YCLKNIpJajMbS1ahe5RqcVdL8qbSlZ555puPL8vCZ7vC7HoFLK/9QOn34wx/2faAoKWTBj4KI/vCoo47yWdZGntxyz32PBKTqoE9ci/9IvWgHgUvqMgo4yA8xYezCGwFbfNGPo4QUQWHERDtl2JDnUsdGba3KPpxtJ3BZj6TGR61g1SScVPq5Xi/vOfnjS3EU7AhjEmSzepKaD4TviNEjVMbq53R6+coW4lUVaWGMx9sl5Be+xNXzGm0gy2l3jP3MVxAxuPgfiT+6TtX7ulK8BRLMr3/9az9H4FzGkphxQcYTXXdyyzP3PdKYkn322ccdeOCB/rZ414g9y1fZlD2ijT2x/MXe19d0nYrN06QPKkvg0vgwR/3Zz37WQQDW2yfrtKTOJV9aOZ6an6QIXM2MN5Iu+n7WBvKFu1xPHdfqu8R9dev73cbjl7u11xnk+q0xpLYfeM2wN6BfzQpd89HVe4XrNbBvjbgFc6vGNvF9d+24eJlbsaRGz1pe68sXvVHzzvW6W75wnnv9lUVu3jOL3alTt3UzXquF1UC6qgcuXTfK9qGtqq8pKKuOr5k2XnVaWlkOVZMJdPmMHrWWO/W4YW7sZhs4N3inWrtZy7k+tbV4rzXcG4sW1NrI391dU25wV935nJv5Qq0tRZhcB+yzifvk9je7ax/e3P3hljfcq/+HC7zmJDXXaKbMUylqpuwkTLa85yMALegFMCAzDxHRBK7bb7/d/f73v5dbHUf9UZnWP8T6bnmpijwQVtH5i8TLsci8WT8fO0+RP/TYlDLmhwQuwodYgrdxxhjWWI1k9uzZXiei4xNjLe/KXChl5K0Xfm5aJEy9jbJcox2Sb+qHSNn5Ie/FSClcT7W/ZupZT+5zc3VxOWsZ6nDu3LcRyUePRVUQuEQvQp1jbc4Hs2xBzweutDXtBUmIVjxbTzTBiX6FeVEo2oPtpZfWPE3W9Gxah1OUwEW4zbRv6Vdia6wwzfI7N3/tLttcXHQfnOrzixK4+IB544039tDV88AlH7OFH31pT0sQZl944QV39NFH+/D0x5dc0EQn+mfWxtRltr1GR4tIPJqEpecEkIghE4ei+2m9lg/nBM30z2Gc8ruKMIuOYcQpekGwlp0LJC1yFBKU6HiaWZNKG0yN7bo+ypygmfgk7WUIXDlju/bART1Bf1ZP+FiAfsjEEDAEDAFDoD0IGIGrIM5G4CoIlD1mCGQiIKQmXmcRftZZZ/mFeWZw0dfkCxgWSRjjUxNTvnr7yle+4sPQ3rV0oBApWLgjl1xyif8ai3NZRAg5i2taMMyilMEQngpbPy/nEq7e9k7uccSV+BFHHOEvXXvttY7/jRRf2lArBtU111zTp4+AmJSjSNbbVnJdu+U1AheINC/hgpoQYwtArqeM+FoRkNpmg3pHPUHhjiINYwCSWozG0tWoXuUanH1C1B/c+WOUQJFRj8ipXumSp/UIXBgLUM5QLhDV8EKIiAJxhx128F9Ocg2FIlvGivKBa0huuee+R5ypOsi9Vov0hc0SuPhCF0U3okm4/kLtD561qMuIJnBB8IU8THmEW6xBxv3Wt77V8WWwjA0pw4YPvM6fRm2tyj5cKwS1sk8nb8stt3THHnusvyRjhr4fO6+X95z8gTFtBtGeJsK42VoDIyFjMWScRiJGD55LbbkoXycyJtKuc9NCO5ftbq+++uoOIq2kUbd7raTPaXfaa1iKlCSGIlFGShtLKQtJp1b08T7KZUTGEp1uf6P2R8YTXXdyMcx9T9ISO0Lwh+iPsBXqeeedt9Jj9NXMJYlf9ws8GMvfSgEEFxq1gWbGU1H6MmZgcArniEFSkj8lX80QuJoZbyRhzNtRXJx99tlyqe6xT42g9f51n3QHbfWMW3v9AW7IsIFuzot93d0PLnXrrLeGGz1mkBu8Rj83oH9v16tPjaxV424tXfJGbavFN9wrLy92Tzz+f26TMb3dhK1qnn0XLnYvzlnkHn28vzv9se1qvK4a8auBdFUCVzNtp5X1NQZn1fE108arTksry0EbzXV/W288juEfXhs0sJ879gOD3cTNp9X2NR3v+qz5Dtd30Djn+o6otaEakcvVvHEtW+Ceue9299OL/+H++o/5YRD+9xZbrO++dcQTbsH8pe6nVw9z0x5vHYGrmTKPJr52sZmyI0ydJnQSjL2UGcJ6Bw+QInpuFtsKkef0nEF/eBbruyXc3DzkzF9y5s2SztSxagKXzIMoD3RAoe6DdFAW/EcgbDBHSq3VZS4k8yr/UsE/uWkheOoRnlsx4CN4nBdvRSHZIGd+qIkB+gODVN+SW89Ie0/tc5vRxeWsZXR/VHbuy4c/fACExLavw2sx9QypgsAlc2LaKW0s9CSrt8zNIXAJ4cInWP3RHtPZCQFddS6Bq5n2Lf1KbI2lktvpVBO4yuSv3WWbi4vug5slcB155JFul1128fhdeOGFburUqZ2w5IcmKIUfmWq9DGRZ+twtttjCh8GaDI/6IlqfLlvfyT2OOqwUgUv3wfpd8kBekHpzgmb6Zx2fPm82zDJjGPGKziL0li9p4qN59Dfa9tLMmlTaYGps1/VR2lsz8claPqWTiXngyhnbNTn2nHPOcY888ohA2HHEO5187EnbQF9oYggYAoaAIdAeBIzAVRBnJlAmhoAh0BoE9BaCeM7iK5mqZcyYMd7DF+GGi61YXJpQxhaOfOElAqmERSbHkAwmiwienTx5srv77rvlNX/UE+rrr7/eYbwtIlohc+655zq2/NIihmWuobh76aWXGiq+9MJQFPwQRMTTDGEQlhaUSqQFAhBiBC6NTv55TMkeWwASgzbi67qpt4TDsIxHO+qnlgMOOMDtu+++/hJ1kzqKpBajsXRVrVD1CViN/wiBiyzGPKxoIgTPaIIW7QwjBUoHkSeffNIrK+R3brnnvke8qTooaWrlUfrYZglcpFHCYjKMtywtfDGJVy1EEzXwhogxBOMORp6wjWnlsRBmUoYNHV/svFFbq7IP1+Ri8kS9hDCsRXsekjFD34+d18t7Tv6IQxT4nAvZkXMRTcLWSk+5Hzsyrsm2G7EtNTV5Tc8hctKivyxNedSQcDVpO6fdsdUgSjkk5nkpZlyR8YB3INOjINZCmULupl8KFZjybsy4IONJWHckr8RRpjxz39N50eeQNpl/ki/aN0Q+2r4WiHd8YY2ExM9U/vT74XmjNiB5LOuBi3i0IYJyIn+0bdoxv4uK5KsZAlcz403RdMaeG9V/kfu3zR90Yzda5tYZs4Z7bVEv97vrX6sZURa7EcP6u959eru+vXu5XjUy9Yrav+VvLHfLamW/4PVlbmlt+nToPkPcFuP6uFdeWuwWzFniTntga/fI/LXhejWUrkrgIuFSrzgv0+ZaWV9JSyhVx9dMG686LeS1VeXQCgLXwJrnug/sPswdtPblrt/wxW75yFGu79BRbsDwjV3ffrU50ZJernevQa730DE1omNfd/avH3EPP/a2tx9dtmuPWNP98At93Iil/3A/v2oNd9UDK3vT1s8XOU/NNZop83rx5pYd83rW7KQLue666zxhmLWCzPV//vOfu4cfftjf1wQu1gfoH0LSAtuB08cizGtZJyCxvtvfeOtPTh5y5i8582adztg5/RZkIghKsh06z+m1c8qYH/PApY3pN9xQ8yB31VWdosUozfyAOJkfnHDCCf6o4xNjLS/KXCicI3UKNPEjNy0Epz3IPP300w6yCTotdFaIXvvnzA/LEriIM6ee8V5P7XOb0cXlrGWa6SP12igkn/KRGu0A3SFSBYFLPBIxlw2JlvSfJ510Use28TkELvQB9CeawMl4ShsiP1q/lkvgaqZ9S78SW2N5kCN/NIGrTP7aXba5uOg+ONXnF/XApb0Ix/TgwKt39JCtdDXsers+6hFjR0ie5XnWmLIDB2P1rFmzdDD+oxs+0Ea0LkPPCQifuikfUUkAkgZ+M97hMRKJzQly+2cfYOJPM2GWGcOIXnR5nMe2lNTeTm+77TbHON3MmlTaYGps1/VR5gTNxJdD4MoZ2/faay936KGHAmPSVsa8Rz42PvPMM43A5dGyP4aAIWAItAcBI3AVxNkIXAWBsscMgQwE9JaFGE7xqlFPMJppQlW9Z+We3u6nCHFKu0Dmiw62LOBLAzx6oFAaMuTN7VNCTyV6EYFyAa8HeENigYXxFa8gCOQDCDZaQSBpjR0hEogLZhS4eIbgywiUFR/72Mc6tmHQRr5Giq+Y8Z/wcGEtSuRf/vKXbtq0aX7xyRZPENBECUg6+UpYvCPxhQuLSIR0sOBAwVA0j/7FHvontqCOLQCBR1/HsE4ZCdFCfyGIK2nKUu6xjQgELsqWuskCVIwAqcVoLF2N6pUs2nVdlGIdNWqUO/nkk/1P6i9f+MSEuokCjbSigJZ0xJ7t6tc0XnydCmFDe/9j2wLKRgQlC8oWETF8yG9x3S+/OeaWe+579ergbrvt5j70oQ/55IV50WnOPZc+tgoCl9R70sIXinxRj5KFLWL5Wk5EE7i0UZ46DKFW+jjGhy984QsdymoU6ZBmcvtGXXdi5L+q+/BPf/rTfis/8k3fjaIcBSZK60996lMdnge4H5JwuBaTennPyR9x6DqGAg0iMf0Esvnmm7vPfvazHeOUeEHzN+v80UYPHqM+3Hjjjb78GPs++clPehy4By4SX05aGEPpJ+nfqMf0g/IVI8Zdvm6ULxxR6Er/V6/dka6UaEUu8TBuMy5suOGG3qOmjOkXX3yxu+uuuzp9Vc58g/QJiQsjOXMXMT6H24ZIm4oZFyQfYd3JwZC85r6XwonrlDMKfIRFMkZiFO8I9YB2IPMjDOlaaZ7Kn3858adRG2hmPF177bW9R0AdtSYf6uv1ziVfzRC4CD93vOHdww8/3O26666cOr6KZ1vvItKr1wr3rqEvuU9s/rAbPmaAGz5ioHtqrnO33/9/btGCmtebmvctyFi1KVGtXN/8v2zZCrdsRW/3zq3Wcu/cor9bsmCJe33uQnfFI2PcVbM3ckuW9ykStdNjBbgzJ6snbJ0CaUOU9aEnX7nO/I16yQcvMvak7qUMjLltp5X1NYZNK+LLbeOtSEuryiFF4Ko3Hsfw19fWHraGO+6wUW6tV//iXuo7xi3ovabbcPjTbuNhT7jeg4a5pfOXuxX9hrsBYzdzbu2t3ayn+rlL/jjL3XZn7Qv9WjvUMmhwf3fa19d2Y5ZMd7+6ur/741+H6ttZ5/Xyllvm9RKSW3b64wBNqtaEW/QOkKQ5amMt6WFcQgcASYtx+HOf+5wbN26cT2rYZ8T6bv/gW39y8pAzf9F9YdF5s05n7DzV5+l5UsqYHyNwMV4yV5I1Mh5RIIAgkPuZ2zP/NhC49wAAQABJREFUQfT6VccnxlqekblQysjLMynJTQtj5Ic//GEfLGMDHoHx2qF1SNwUD0Kcl50fpghc9dpfTj0jbT21z6UO5urictcyuX2k9rbD3IQ2x1Zx48ePd3hSh4wmEhK4Um1Yno8dtU4EMiLtlHUK296hD8VDjAjzRLZ4bySa4MSzpBO9L0c+Mqbty9b2U6ZMcVdccYUPMjW/kvhSbSW3fROu9CuxNZbEGx5z89fuss3FRffBqT6/KIEL7HQdY82M11/qGLoQCC7iQTvVt6PrP+iggzoVQ4wUrNscnrnYuhfdKeMMbYc1p4gmKodzAt7hg1y851FP0eVssskm/lW8xbNeEInNCXL7ZwkzdswNM2cME70g6WDco81ju6A/ohzQ6SH8xk7BDihI7ppU2mCq/HV91HOC3PiknyzjgYv8lR3beUc7BGBNynob3OgL0H9MmDCBx3w9FX2+v2B/DAFDwBAwBFqOgBG4CkJsBK6CQNljhkAGAscff7x3R1z01ZA0VeQ9JpmQRxAMYrg1biTac07sWYz6kExYRIvoRYRcix1RDMj2dbH7sWv6ix/uM6FGxJjIbxZm8uVtI8VXzPhPeF/84hc7Fn78lkWrxIOCeNCgQdzyacDgBIkBkUWG/1H7k1NW8m5POsYW1KkFIItzFlhahNQTup3mGeoppAApP66hfEIJJZJajMbS1aheNWNwlvToL+lTX8DJs139qMtR0kp/hMIF0V9l8VsrB/kdKt5i27vllnvue/XqoFZctcKjovSxVRC42FJMvm4E61DoU2k3msDFl8S0FxR5CM9gZEO5QTsTCfu+nL6xUVurug+nPpA3IfSQF93/Cx5cD0k4XEtJKu+5+SMe/eUqv0knQjmIaMKJXEsdQ6OHPKfzzLXwC3Ou5aQlbNfUIeICe+mr+Y2hUeYr9dod6UgJxl3GdamzPIeSU/8OPfvpryzledKj8Y31zTKWxIwLMp7E6k4OhqQr9z3ejQkGcTyPhm2AMtF4xbYprpe/WFxca9QGmh1Pw3od+zo5lTa5LvnS7UmPa1pBrb9eD7cEyR1vSIcmAIThSjpTx/6933C7jHjBHbHJ427Ndfu5IcMHuudf7eWm/WORm/fK4hq3BMMMfXmtXdSIWwMH9XNbbjLIbTa2r1taI3ktenmRu/Hxdd0Vz27k5i9904tJKi59XadZX0+d33PPPe6iiy7qmEeHZAxdVwhD30/dq2dgzGk7Op4YqbjZ+hpi04r4ctt4K9JCfltRDrQ1DJZI2N+mxmP/cJ0/fWtj6zojBrllSxa5xctqbaVXf7fDpr3dv+z4V+cWP+deG7C+67N0QG3bn4FuwMbruf5rb+xef2M9d/Pdr7mrb5jlZs5602hGFGM3WNf94It93Bov3efOv36w++P9zRO4CDeVt9wyJ8x6UrbsMMhiXEXC8Z0xBlIw4zwic8jQWOtv1v7wvswVuMZvtvfFYCsS67vlnhzL5oH3ys5fcufNksbYUbdH7kt/qMemlDE/RuAiDP2xH7/BlLUGRAwRyO8YRlkXIDo+PRbKXChl5JXwUseyaWE9wHgvc7SQXK+Nx2AFQZB5c9n5YYqUQj5S7Y97OfVMl3GV400r0lJ1n5uriwvnfGCPhP1FuJZppo/UOtY3Y3v7r443JHDp8uUNacNvv73ymdYxcJfwEekLQ52XJsn6ByN/wv5MHtFp5xofc0DukfVmvfkVz9drK2XbN+Eh0q/E1lhvPrHy39z8EVI7y5b4cnDRfXCqzy9D4GJLUeqm1CnSpXUh/KZuQG6B5BIK5c4YI+/zbMyrOeRG1tryHOEQj/ThvKfHH+o2fSzvsb4IJayvhMUHZ+J9i+dTc4KcPjGMP/xdNszcMUz0gjp+sEA0tuGYmLsmlTaYGtt1fdRzgtz4ZFwtS+AqO7aDF173mCsIbuBIvdM6Ea5Rr/gwycQQMAQMAUOgfQgYgasg1kwoTAwBQ6A1CMiiqmjootQs+jzPMdFkQYTREmJWEWHyintucRWr36HzZBGEAVOLLCIw7vE1mJDG5BniP//88/2XIXKtzPGwww7zysLwHcggLFr11orHHnusn4jzbEzxlTL+o8QBI7zJaGHCztc9eHzSSmaMyxhtELbnw6OaGDpnzpzpv/TU4dj5yghIvdF1G2IJBBNELwD5rRWx/L7yyiu9txjO+QoWxUOs3kIS4Csw/muRr81C5VksXY3qlRjwaCMoubVoD1yh8lA/p0lNMZKAfrarn7Ngx2MNXxaKgItMwLjGF2GUG0J/CPFJRLuw11/gyX055pQ77+a+l6qDWrmq+wZJZ7NHqZPUZXAtIvWUH/oLSAmLvg5PRNRXFHkoL2RrWZ7BoMZ7mrAl73J89NFHvYcEFG8iOX1jo7bWij4cQxv9v66v5AFMGLvwroaBMTQKSz5jx1Tec/MncegtieUaR9LK15eQVRhziwhkbPod6ixelfjKUBRY8v4tt9zi2BYzJmXTwnyE/FO/YoJiEOUw+dCSanf6mdg54zkGITEOyzNgRV98wQUXdBgk5d5HP/rRTp7o5DpHvKCyhW8ootiMGRdEcZyqO2UxlLhz35P3wyN9Il/cy9YW+j544UmRuhBKo/yFz/O7URtodjzVHm7L9Jk6rdLnFpmf1CNwEWbueKO9A5YlcBHvgBqJ613D5rqDN5jhRq2zwq05bIBb1ru/mz1vhZs7742aR7o3atvA9XbDhvR1Y9bu7YYOWOYWzV/slsxf5q56Yn335xfGliJvESdfK7PdWFERApfMB8L5GH0F3gWZoyO6PFP3NGFEiP46PWXbTqvrq04b562KL6eNtyot5LPqcqhHJkiNx6SjsdTc1KkNRIcNG+KO3GmZ23HI3e6aV95dMxQ+7w7Y8iW36ah+rteQ/m7gmPWcW2sj9/KC4W763xe4f8xc4hYv6efes33Nw93wB9ySZ592/3vzEHf5Q8MaR13giXp5yynzAlGWKjshDhGu3spO4tloo40cH7WJsJUicwUx1qJboE+RPkCeoy9AB/DAAw/IJX+M9d2dHnjrR9n6lzN/yZk3x9Iq11J9nl47pwjLUg6xeQoeQFh7ix5D4uMIOY4P1iCFiOj49Fo9ta6W94ocy6RFfwypt9uSeCAV8PGXGGJlvOF+mfkh6x6IggieWdlmW6Re++OZsvWsJ/e5ubq4ZtYyuX0kdYr1uPZ+RXmzdma+xq4GjEkhgSvVhnm3nqQISXjWYR7O2oUtxBBILOhy64lsscaz6NPwjE4fp4W047mOZ0Qaza/qtRXCKNO+Jc56ayx5Jjzm5o9w2l22xFkWF90Hp/p8sTXoPl8TbULi1wYbbOB1qfLBMukSYbyl35sVbHko9zlS5wgDCT+Q8hff+kPa0e2H4w3zf8Ya1qGiC+YV+l52AZFdOfC8hVcw2pcW7AJ48UvZKfR6Tt4r2z/Le/WOZcLMHcNkngOhiH4ztL2wbr/pppu8l/0wrTlr0kZju66Pek5A3DnxyZowtg0nYe65556e+Mh5uD4uM7bzPkK9xbMraQ2FNNBW0HOaGAKGgCFgCLQXAbEfQuhlnoqtgvkD/zmX30VT1WuXXXZ5k+5c9I1u8pwRuLpJQVkyDYEWIMCiaPvtt/eGVjpNXOfzv4jwLgtR+hDIT3gwaFborLfYYgu36aab+q/BIEmhWKhaUKxstdVWfvGOEZnFHosgBEUgxBIWtjNmzOi0QCTPbGPFApfFrWzhV3X6enp4eKniKyzqJMqBkKiA23e2TYDIxSBPWRTddqinY9uK/LMgZhsOFOuQRFolueWe816qDqLww0CSInm0Ku+pcOsRuHhH+jPaCm7sIZiIh7RUmPTDGKRoY5CeaGMQ7yDREkZM2t035vbhpB1DIoZCFgJsW4yyRiuuY/mrd61VeWdsRVHPdgEQ5sAe8h3jTzPCQoj8Ey5jH2M+xoh6kpMWDB477rijV9ISJ9usoYT861//2jHehnGm2l34XOw370JOI61sA0nZ1qvrKIqZBzDfIP88T/tACd4KycGQdOS+Vy8P9Inkna0mUYJjrGS+00w7qBdfK+5pQlXMa1gr4iwSZs54UyTces/0qW3jNnrg626fdZ9224140a01pJcbsGZf17tfX/fGipoCpHa/94rlbvGCpW7ZguXukRfWdNfMHueeeH1I4W0T68Vf1T3qJH0F/QSkbi317unn9Hkr2o4Ovyufd6U23s5yqGo8Zn6w/rpD3B47berue3Se+8eMmW7EWkvdQe9c4HYau8StNajm3W6Nfq7PsNqHkIOHu159B7sVy2tegRfUtv988Tm3qOYJ7ye3reumzuxsfGymzjTKWyvKvJVlpz1wXXXVVf4DHIxybPPN3BUdAHPtcA1YFsOcPJSdv+TMmxvlI6fPaxQmaxj0LOg5wJjxf+rUqe7ll19u9Grl99uZlrLzw1hmG7W/nHoWi6eKa+1MSyNcUvlpZh1HmDlrmdw+krUw6zE+hkEvyVqhyHw5pw2TRvpG+iDm5nyIotd9tF3SQ9uljywrrP3wsMW6nv613jqpbNj6+Xa2bx1v2fy1s2xJZztwqUfgIg20nXE1D9bUJUhBzLmp0xwbif6A45xzzqlrN+DDKuwM6KDwlsX6H6KMCCQu9L182IWOKTbW03djb+AZiNyyTaCEUfTYij6xFWHq/AiBCz03BE7wZH7EPAk9B3g0ar/0J+3Umbc7vrJjO3N7HBGACR90Mvdhx5Uq7Fi67OzcEDAEDAFDoDgCRuAqiBUTDxNDwBAwBAwBQ8AQMAQMgfoIHHzwwW7SpEnegxBGj1Ut4sUm5X58VafP4jcEDAFDoBUI6K0wQ8+PrYivq4eJ/6B+vZe7kf0XugnDXnZbrPmSGzpwsevfZ0Vt+8Re7rXFfdzjr6/tps0b6WYvHOwWL+9T8zfEWyaGgCEQQwBDT58+vWuG+uUdpOO+tfa08brL3G7jF7vt1l3qRvRf5nrXrvXuV/Ne0mupW1HjV69Y0sfdO3dNd+6tQ9yipdbGYthyLUbgSj1r1w0BQ8AQMAQMAUOgMQJ77bWX917Fk6EHrsZvp59gTvSDH/zAe2nXHr/Sb9idZhAICVzNhGXvGgKGgCFgCBgCXRUBI3AVLBkjcBUEyh4zBAwBQ8AQMAQMgR6LwM477+y3ycAb0sknn+y/BlxVYKBEGzNmjIPEwHkrtnRcVXmzeA0BQ8AQiCGApwc8n+K54fOf/7x/JNy6JvZeT7vWq0bN6t3BG6l5l8XBbG2cwNEspC1+mhgChkAeArWm5KmPI4a+4baq7SS0WY3IteEay91avVe4BW/0cg/P7eOuntbfvfJ6RyPMi2g1f8sIXKt5AVv2DAFDwBAwBNqKAFvtsTU7nhYRCFdskduMyNrrkEMOcRMnTvRBXXvttY7/Jq1DwAhcrcPWQjYEDAFDwBDoOggYgatgWRiBqyBQ9pghYAgYAoaAIWAI9FgE2HZuzz33dJdcconfemBVAvGjH/3I7w8uabjzzjt9uuS3HQ0BQ8AQWN0Q+Pa3v+2GDh3qSauSN/pCtpIwMQQMAUPAEOg+CBiBq/uUlaXUEDAEDAFDoGsjcNBBB7m99967I5Eral9tHH/88R2/c08gEiF8MIgsXbrUff3rX49ueegfsD+VIGAErkpgtEAMAUPAEDAEujgCRuAqWEBG4CoIlD1mCBgChoAhYAgYAoZAF0BAE7jmz5/vfvjDHzqOJoaAIWAIrK4IQOAaNmxYR/ZuvfVWd+mll3b8thNDwBAwBAyB7oGAEbi6RzlZKg0BQ8AQMAS6PgLaQxapveaaa9x1113XdMKFSERAy5cvd+eff76bNm1a0+FaAPURENxnzZrlfvKTn9R/2O4aAoaAIWAIGALdFAEjcBUsOCNwFQTKHjMEDAFDwBAwBAwBQ6ALILDrrru6/v37uxkzZnjX+HxlaWIIGAKGwOqMwLve9S43fvx4N2/ePPfwww+72bNnr87ZtbwZAoaAIbDaIsBWT9tvv73P32OPPeZeeuml1TavljFDwBAwBAwBQ6CVCIwePdpNmDDBzZ071z3++OPu9ddfryS6ffbZx388M2fOHDd9+nT7YLASVBsHwpqX7Sufe+45N3PmzMYv2BOGgCFgCBgChkA3RMAIXAULzQhcBYGyxwwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDoDACRuAqCJURuAoCZY8ZAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChkBhBIzAVRAqI3AVBMoeMwQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAyBwggYgasgVEbgKgiUPWYIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoURMAJXQaiMwFUQKHvMEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQKI2AEroJQGYGrIFD2mCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIFEbACFwFoTICV0Gg7DFDwBAwBAwBQ8AQ6FYIrLvuum7vvff2af7zn//snnvuuW6V/u22285ts802Ps2//e1vu0TaDzzwQDdkyBD36KOPuvvvvz+ZJp7r27evu+eee9ycOXOSz5W50YowU/GvscYabq+99nLbbrutY65MXpYuXermzp3rnnzySffYY4+5Rx55xC1fvjwVRLe/vv/++7sBAwa4J554wk2bNs3nBywmTZrkevXq5e699143e/bspvI5fvx4N2HCBB/GXXfd5Z5//vlC4e2+++5u1KhRbt68ee6WW24p9E69h2J5rfd8V7q35ZZbOv4jl19++WpdJ8lj1XWQMHNk4MCB7qCDDnLrrbeeGzRokJs8ebLvG3LC4p3uXAdz89zV3ys63nX1fEj66LcPOOAAP57NmDHDTZ8+3d/aY4893Prrr+9eeukld91118njduwiCOy0005uzJgxbv78+Y65rEjZPmN1LedUvRac2nUcMWKEe8973uOju/vuu1dac+y7775u0003dUOHDvVz45tvvtm9853vdOPGjXMor6dMmdKupFo8PRyBnjZvLFLcsh5hXXfFFVe4FStWFHmt8DOpuWu99czYsWPdxIkTHfoM+rkf/vCHheNbnR/caKONHLghF110UcOyqnqM6Ir6mTLlfdhhh/n1PXqMv/71r2VetWcNgVWGQNk57ypLqEVsCBgChoAhUBgBI3AVhIqFhIkhYAgYAoaAIWAIGALdFYHRo0e7wYMHuwULFnQymGBIQUmFQICCcNKd5F//9V/d5ptv7pP8pS99qUsk/bTTTvNK5L///e/uZz/7WTJNp556qic1zJw5051++unJ58rcaEWYsfj3228/9773vc/nM3ZfrmFM/fGPf+xeeeUVubRaHX/yk5/4/EDgOuOMM/w5xsajjjrKn0MW0sZkf7Hkn8985jPuHe94h3/rd7/7nbvjjjsKhSB1YeHChe7EE0/seAfDKEZUDC/UPS317sXyqt/tyue6n/jqV7/qiYZdOb3Npq3qOpiTnv79+7t///d/dxxFfvOb37i//OUv8rP0sTvXwdKZTbwAkaF3797u5Zdf7hL9atHxLpGdLne5X79+7gc/+IFPFyTks846y59/+9vfdsOGDXOvv/66O/nkk7tcunt6gr773e964vzixYvd17/+9Q44yvYZq6Kc29GmU/W6A6g2neg1xx/+8Ad32223dcR8wgkneJKkXIA8+Ytf/MKdcsopbvjw4W7JkiXua1/7mtzuFsd2lG23AGIVJzKnHHravLFIEX3iE59wO+ywg3+0FXPp1Nw1tZ6BZHfMMcd0Wot2FV1AETxb+cyRRx7pdtllFx/FV77yFffGG2/Uja7eGNFs++mOZSJzWwhc55xzTl3s7KYh0FUQKDvn7SrptnQYAoaAIWAIpBEwAlcam053jMDVCQ77YQgYAoaAIWAIGALdDAEMkijnXn31VW8MkeRrY4oRuASV5o6i9GtE4PrgBz/o8PYAkQaDI8apZqUVYYZpgpyEkl0LX2O/9tpr3msJnnb4klcEpTFGuIcfflgurTbHmKIsZYDIzXTVBK4vf/nLbsMNN/T17vjjj++UrHr3Ynnt9HIX/tHTDHFV18GcosXIh7EPoY+jf7jwwgu9Z8Kc8HinO9fB3Dzr9yBefvOb3/SX8Ajwv//7v/r2KjkvOt6tksRlRJoyYq4KYk9G8nvsK92VwNWuNp2q1+2uMHrNoQlceHDVnnMgSuJx9Morr+y2BK52lW27y7C7xZdbDj1t3likXA8//HD37ne/2z/aClJOau6aInDp9dGyZcv8R2rf+ta3imRltX+mKgJXFe2nFXWl1QUoc1sjcLUaaQu/SgR6+jq5SiwtLEPAEDAEugoCRuAqWBJG4CoIlD1mCBgChoAhYAgYAl0SASNwta9YROnXiMDFFoR4qIHsdO211/r/zaayFWHqNLHdJluiieDR7dxzz+3kyYn87Lbbbt6zG55iRDDOPfPMM/JztTjGFGUpA0RuhrWBoowHLrYiYksRtvy65pprOqKvR9Kqdy+W145Au/gJW3mIFzOIqqvztp4URdV1MKd4P/7xj7t/+qd/8q9CNKpiC5LuXAdzMAzfyTWkheFU+bvoeFdlnK0Mi/ELw2efPn082VA8xhmBq5WoNx+2EbjqY5iq1/Xfqv4ucxLmJgjbI8qccOutt3ZHH320v/7ggw+6X/3qV/6cP2xJzfaYeB28+uqrO6539ZOu2F93dcxakb7ccuhp88Yi2LM9F96XIeWHH4AUeb/RM6m5a2o9I975SA/e+ZYuXdooih5zvyyBKzVG5LYfTYA0AlePqXaW0VWMQE9fJ69i+C16Q8AQMARagoARuArCagSugkDZY4aAIWAIGAKGgCHQJREwAlf7iqWMQZstKMaOHevYarCqr4ZbESboodz9r//6r44t0Z588km/bWBqWwaUvijUBwwY4MHHUKc9LLSvRFoXU0xRljJA5KYil8CViq8eSavevVheU3HY9VWLQNV1MCc3n/rUpxwGUOR73/ueJxLmhKPf6el1MNeQpjGs+rzMeFd13O0Mzwhc7US7fFxG4CqPWVd6413vepf75Cc/6ZNU1QcNqzp/XbG/XtWYrIr4rRyqQx2v0Xh6Zt3HtnxVS9m5q/T7ELdY+5q8jUBZAtfbb3Y+y20/RuDqjKP9MgTagUBPXye3A2OLwxAwBAyBdiNgBK6CiBuBqyBQ9pghYAgYAoaAIWAIdCkE9tprL7fJJpt47zMQcPA889BDD7nnnnvOf8mutzPBM82zzz7rdt11V7fFFlu4wYMHu+eff95vfXfjjTcm8zVu3DjvcYlt2eQd4rjnnnvcokWLOt7jK3qeRa677jofl/+h/jDnOuKII/yVGTNmuFtuuUXdXfk0VBBus8023uvLpptu6r8QJj+kgy/6Y0J8eJTaeOONHd6rwIetW/7xj394r0Wcx4T3dt99d7f55ps7ziEn4WFm+vTp7sc//rEnOzXywEW42mgV81C18847O/KE54E//elPbquttnK77LKL22CDDbyHEOLFQ4j2btOKMEkr5XfwwQdz6pX3J510klu8eLH/nfqz7bbbuk9/+tMdtyGAjR492uebi6R92rRpHff1CVt1DBkyxG+JMXnyZH3L1yO8fDWqc7xEfO9///v9+5dffrnf5hHF9qhRo3zd4JrI9ttv7/bcc083fPhwv+XowoUL3SuvvOKmTJni/va3v8ljHceYoqysAaIjsMRJLoGLL9ZRvM+ePdvdeuutbsstt/TtlDo7cOBAHxvYY/i47777fL2K3aNfwFgTy6tOMt6WIOxASESefvppX7b333+/b4v6WanXeHCjbOkX6Is222wzj/e9997ry4a0kQfyQhtle076Luo72ysVFdoEfRr19Y9//GOn14YNG+b7nPXWW8/3AfRZL7zwgq+b9B1lBc89pBcsqL/0u+Rzzpw57qqrrvLpLxomXkloQ9TDyy67zGMg/TNhULY33HCDe+KJJzoF2agO0n8ccMABbp111vGYsn0rigHqAX2ueCgj/bRDBEzYziomEydO9GnDC8Idd9zhaEfgTTtCKC+w533i+tjHPuZxof6JhyMd7nvf+163/vrrrxRnozqow6CNMx6xdeMll1yib/n+hzqBUD8feOCBTvf3228/7/EF73XgLlKmbKse78gPeIIrwtjEGEnayYMIW6Udeuihvk2tvfba/jL5YBsY6l+ONDPelekXJG30BYxztE28ONIHM5bTdlNjMuXJmEw7Zjs22jHjI14LeV+k0XhAHf3Qhz7kHwfbRx991J9rAhdk60MOOcT3V2BM2yF9jNHz5s2TqFY60s8VHbdWejlyoUx9jLwevTR+/HjfN9DvQr4mb/S5zAFnzZrV6R0w4LmZM2d6b0r0O5Qb3pLA/s477/RzIl6ib2frrY022sj3L9xnXHr88cc7hSk/ivZR8rwY8uln2JJapEyfwTu55Uzdo23SB2rvUZIOcAIvBIISfXfRNi1hxI5F2wrtKFavdZiQM5hvUqcZrxj/2PqatkWZPvXUUx3zNcqHcY65AWM4bVXGAfrduXPn+rZz/fXX6yh8OMSDgAPt+bDDDnMjR4501D2EdQd1irGB+sGcjHbNhw4xD1xF274PvPan7Lxf5itl5uHNlK3E14r5UdnxoZVpoTzKjA+SlnaVA/UqNm+Ufo/+8M9//rOfu+LhlbGF/od2gnc55sBlhXUJczPm0cy/mAPTlm6//XY/PwvDazYt9Av77LOP75+Jm/hY/9L2wnklcTO3++d//mefT93PVjWPTs1dw/UMW3QzpnCkTtPv0l/RZvSajjRXPe4SZj0ps44E/6OOOsoHx5qGOR0ezugL6ROZT1DP8KKcmvtQ98CNOTP1jz6bNRTzaMZjBLJd6mMr/0DtT2yMaKYfW1X6maJjouQ7dZSPE5g7//73v/d6BOoSuiLKhfZx6aWXJnEt27YkHbR9dBYcGUtZM8laJNYmeY/1BvWANR3zX8ZK+iHmv1oPx7MydtNm2MaY58GMtSZrP/RlzM0Ig3ush9ANMC+g76V/YC0h60TC1FJ1e6tynpu7ptb5K4N1bnz9+/dvyTq57NyHMZD/rAOoS5zTPxHOBRdc0LE+0vjYuSFgCBgChkD1CNAPI+g1GRfRLzPP4D/n8rtozL1qE8QVRR/uTs8xQJkYAoaAIWAIGAKGgCHQ3RBAwYrhIxQUQnhHQmmD8QTBUAnJIyYosM4555yVbn3gAx/wxpWVbtQuEMcZZ5zRsUUKxCyMXAgEr/POO8+f6z8QhFCOIBj92XqrnmgFIQQbjE8xwfAbksFQ/vI+E96YoNwiz2LAlWdQfh133HFesSXX5IjRCyU+YRYhcPHef//3f3uvVjGMJX8oXlHgY8iKCco0iBwirQjzO9/5jhs6dKiPgriKkgFOPvlkT5biRcoAIoiQ9FAGYngNBcX1N77xDX859E5Wps4RgDYIYDBE+SRljqL75z//uY9HPJf5H5E/GJxDD2Ix47COD0MCBp5mJJfAdeqpp3pyDuSfE0880ZPvpG2F6aFuYVyPyTe/+U2vvIvlledRNFJPx9UU2zF58cUXPW5aiSz1mucxNOy0004rvYoh5pe//KX73Oc+5xeq4QM33XRTJ3JNeF//1vFRzhipEMgU1EWpD/odzh977DF39tlnJxXV4fMQ46jPYJIS6kNoYEo9+4lPfMIbqLifwol+Cix0mPXqIAY/DO0pwQDE1q4oClAKUOc5Eg/1SJejhPGjH/3IlxHPYGgSwqTcl+NvfvMbb6Bi2xuEPpstWEOBIIOxQMYpuZ+qg3JfH/H6JWt4+iBt/CIfbOWFQBagrWiBhEuedf9UtmyrHu8EY51OziE6nH766f4yY9PnP//5DoJm+CxKH+ozfVlRyR3vcvoFFFKUFWUfk2XLlvl5gx6TabuQhGWL1PA96uT555/fQeLWbSM2HkC+wWMpQvs/66yz/LkQe6iTtBGpW/7mW38waEEWvPvuu/Vlf1523FopgOBC2foYvB79iQckDDQxAUeI92AmImMMfQWYMG6HgrGPcVbIS/o+YTL+MvfRUqaPkveqJnCVLWe2E4OchsS2i4J8f8wxx/j7YMj/Im3avxD5U7atQHKI1WuCxkhM+iFwhMI4DBYQNF599VUnfbdeO5AXyAL0maFgcGYdIKLfw3jMPJ/xJiZ8EPGLX/zCxwl5NRwPyrZ94siZ98v8ocw8vJmylfhIb2rcz5kf5YwPrUpLzvggaVkV5aDnjdLvsZZhPsSHJKEwFvzP//xPlAQVPiu/G81H8Xr8s5/9rNMcrJm00N5Zy6655pqShE7H2BocIgflwHyKsRpplO4y82g9Puv1k+RT1jOkm486YqL736rH3Vh8+lrZdaTul8EbwiD9cSjg/R//8R+eoKbvMfeBeBMKYyvEa9H/FCFw6bTI3Keqfqwd+pmyY2KIWfhbCFyQpxj/CD8U6uOZZ5650pw6p20RNmsz9GCpNSlzS/1BG3XlC1/4Qkc5h+mjr7z44ov9OCL39BjMRzsQDsP4qD8//elP3VE1ciFE0lD4YIG1Ic9pqbq9VT3PzV1Tk8ccrHPjY74jc62q1sk5cx/Knz6ZcoaMj/5M5KKLLvKkWfltR0PAEDAEDIHWIWAEroLYxhR0BV+1xwwBQ8AQMAQMAUPAEFhlCEDOQuHKV3koaFAq8zUvXw9iyNWKHEkkhjgUfyh18RogEpKg8KKy4447+tss7lFmo8zCMI6nHESUQBhxIP9AAkJCQ4y/WPsjRlJ+/+d//mdDbzWi0Jf3OWJkIn8o0PhSUoSwxRMHniUw8AvRgrSjkMJwDAFLtv2D6IFCVoT7EFpE2YVyDIIK+Q2VXEUJXKLgISzi0l81xvKHEZ58YCxFuSWitylrRZhakfv//t//62REkDTEjniD2WuvvfwtDO8YbIUUwkU8eWGM0vKRj3zE8bU9osliZesc72uDAL9FqJt4WIEkeOCBB/qv0LlHOeD1gTrKF7Ao0qS8UWBpDxAxQomOTxsgJN6yx6oIXHg6kK/Y+aoWgbyC3FzzFkAZ0d7DeyixMVLF8sq7QrbhHOzwLIKiW74E5jrv8xyYIrF6DVmG9iZ9lX/wrT+0CZTo9CHSZrkFyY/20Eh0fGKIY32H0Z+ypS4QPh4T6Pfw4CfGaDxK8eVpEdHGGwwu9Hv0JXgv0UayIn0b8Uk71nHTVujDdT/FfeoxBiAkVQfxxoiyX/KMQZC+kvTRn4iBQpMVIQSh+EVCoijXIM5QRxHeg8CFAQKDh/SjUs8wJBBf1YppH3nwR2MHUeC2227reEL3ZdRZvRUQGH3xi1/0z0Js5Mt7pGzZVj3ekSbGGCHJME4zDkBywGsUYx1jgNRb2gX1mTGCfkzaDe9BYNPjjM9g5E8z411Ov/DZz37WTZgwwaeEdOJBgPoO8UBIXZQX6Ze+RG/VSTumH6F94I1C2hzvkB7apG4bOssyHuBxMEZ00XMT3uN54iF9GEmlrnOdciAdIjnjlrybOpatj6lw5Dok2o9+9KP+J3hBRmdeRH8MliIYKyFlIWJUl3vknXcYQ/TcUe5TZszPKEvpayhn7cklp48i/KoJXJLmouWcQ+Bq1KYlDbFj2bYSM85LuIKd/IY0T/9AHyZzH+6lCFzyHuM3fT1jK++K0D+JF1+95qBfnjp1qieP6Tk0SmraFeQlvJ8yXsQIXGXbPm00Z96v5w+Sp0bz8GbKNhZfs/Oj3PGhFWkBw5zxIZaWdpWDzBtJe9jvcY11IP0b61/p2/jNh1JFJPRWTHjMpVnHEqaM65qwTbi5aQnrA3N0+nzaLn23tPswPsY6+mvmcaznq55H6/FZr58kn0LgYs3G3BN8wEbGHvotPD0jrRh3fcCJPznrSN0vS7DkBR0M4yjzvVRZ6LUh79JvM8dhzJY6KGHmEriq7sdaqZ8pOyYKNqmjELjkvsyLKA/WX4IxYxV6DJHctgV5XrYRJiz6NtZUjH3ywQnX+egFUg+i56WMv8z5mVMxZ6NtItQnPuqjfSN6DPYXan/IA+sJvW6Xe7zP+MP4KXNq7uGdmI+HRFrR3qqe5+p1oaSbvDdaU/NsDta58VVN4Mqd+wiBi/xTD6Qv4pwPsiAAmhgChoAhYAi0HgEjcBXEWCY/BR+3xwwBQ8AQMAQMAUPAEOhSCGCQRFGoDTAkMFTkhF/34Tqd/4g26qPghTzBYh6vGHgA0dtFsMUCX/UhGGHxaIJopT3voBwWYb6FcQVBcSUemOR+7KgV+igUIDHo7bC+/OUvd3wdrck3EFnYpgIJ88w1lO6QGhCMW2KMPfbYYzu8lJFf8kD+EbZy+PjHP96h4ChK4MKYCS4I7vhxXS8S5g8ykyYQaU8yGMgwlCFVh4miEtIDgoIcXIsKuKDEQjDufv/73+9E4BFvFDo8nuFrR8qUPGJcyK1z2iBAHCi5IZFRn0XEY5k29Ms9vq6X/Oq6zP0YqUnHpw0QEl7Zo1bSQySCUFREQoOHvCNtAmwxOmupdy+WV7x2yRZ7tBHqCAYEhP6GshPihS7nsF6jkMZLC6IJQfzGUIRBhjqAaIUoZAuMvI1ExyeGON23sdWX3mYPJTV9Ef1bqJxPxQW5hr4CwfjG1/JgLKK9C2os5H7sqPPK/ZBApb08iWGL51J1EM8E497ylIZnIb6yF9FfOmvDo/Ycg5KbfGnRBK8LL7zQG+S5r43r2nhUtWJap0WfayKWeBPgvm7P8jz1VsYvthnDowQiRLvcsq16vKMPhECMhN4xjj76aMd2HQhEWQjaIvTf2rMVpAnKqpHkjne5/YLMU+iHIQljkBLRhgRIdZDrqEtgTDulrUEu0lvynXDCCR3kIzE26bZB2OF4oA2qut6Exhu8CkmdwYBM3ylEp1mzZnWMDbnjluQ7dsytj7Gw5Jr0/fzWJC1+a8w0JjLG8AxGQ8ZRiLBI2HeJNyV/s/ZH40k5yTwqp48iTCEhhYSw2LglaYgddbqof0XLOYfARfz12nQsfXKtbFtJ1Wu84opHVMZY8i9jLX0lhF/eRfT6IVw7MN/Fq660WT4e4RmEjyOEFKnf08RabbwO5zkxAldO28+d9+v5A/1M0Xl4btmG8VUxP8odH1qRltzxIUxLO8tB5o3UZ93v0W/htVEIFcwdqa/SZmQOwXv1hHkVxA9Exip5HhIPc2khjOCVjv4UyU2LxpIt0/S2r5BT6JPlYw7iEBI+aWBuhSEJklHV82g91uj1k+RTz3PJv/T74Ty9FeMu8dWTnHWk7pcJmz6WMUfGUT3/pq5RLggEWfpqmftQfmxJjkDWZ86tST96Du4fivzRadHjfFX9WKv1M2XHxAgEnS5pAhflgR5L1rd8oEKbFOK+Xpvlti3Re5AIrc/htyYHMsfFux8fufGxG0J7pA+RsZtreg7G+lzWp3oM5jk+4GL7b4T+i+eEMMpcnHwzhiN6fa49Q7WivbVinqsxIT+63PidWlPnYp0bX9Xr5Ny5j153gQ8fb9CO0dGaGAKGgCFgCLQPASNwFcTaCFwFgbLHDAFDwBAwBAwBQ6BLIiCKLW2AIaFakYMhU4hEkgmUU/I1q35XG+35Cusvf/mLvNJxFGUUBg+MsRjWtBIBZSNbpIloggNb7eHxq5FoRRnErfPPP7/TK9o4pQ3eeIXCiEDa+Io4VEZor1EoylCYQShCQYbCFKUWJC+OWvQWREUJXLyPUR4FGEpCIbFxXecvNIByf9ddd3Uf/vCHOV3JoF9lmHhAQQGMhIpyf7HOH4hw8hW6EPPGjx/v/u3f/s2/BdlFb6Gjn9ekwdw6pw0CKMBRuoqRUZJNHccwwdaeYR3iGfHYE6Y1ZhzW8WkDhMRV9tiVCVwYpyD+0I4wJtBHaKHN0A8gun/R9fr+++93v/71r/VrTivOtfGIhzQx55577nG48W8kOj4xxGmSaYxQxVYQeC9EYU8f0Eio0xBeEAgm4TZqkDvE+BISxlJha+UvxjLwDgXcMSYgQkRK1UFIGrQvykn3MxKmbLlLeWpynximdF8u70jboC8kfzyDrGoCF2mQtOk+64Mf/KDbY489fDrpyxFIs5BnEek3NYktt2yrHu9ShjQMb5QR+aFvo46HQjuV+hOSXMJn+d3MeJfbL0i7B3sIZ7qfpo7LFnRsQwoJTXtciHnKY0s7qcdi9NJtIzYepIyYup3FiKPgS19FGWiSc+64FSsTuZZbH+X92FFvkUz50d9oIR8Y98AR4g0iRnXOmcuJAZnf2tBHedK3SN/AfW0og2wo22Lm9lFiyA/rdmyMJv6U5JZzuwlcZdtKql4zDqDrpGww1AopUfDRc0y9BtBrB5TKQiyV9yAR0CchqfeaIXDltP2ceT/p1/OHMvPwVH9NmPVEx1fF/KiZ8aHqtJDv3PFBp6Xd5SDzRtKv+73Y+pdxCuINArEGglQ90R+56DWPfmeXXXZxRx55pL+ktyXNSYv2Dhpru0Si186xtbWkrep5tB6f9fpJ8lmUwNWKcVfynDrmrCN1v0wfjA5GjHQSjyb3yfaQel2oCTjyjp6/cW1VE7hidUjXsWb1M+Sx7JjIO/VEwqNcmBeE69vtttvOr3MIQz5Oy21beLPHgxUS+1AGQhV6PPQUMseRsZt3YnM2ruu6w5ya9aweu/XYzPOIngPF1sbME0iP1le1or21Yp6bu6bOxTo3vqoJXLlzH03gwoOb6IPfrCn21xAwBAwBQ6BdCMjcEFsKcwH0TYzF/OdcfhdNT6/awuLtz4yLvtUNnjMCVzcoJEuiIWAIGAKGgCFgCCQRKELgwpMNhslQ2O6OL3G1EVyUGdpQGb73L//yL26bbbbxl+WLYYw6KACYZIoSSt7TSqOcrdHOOecc98gjj0hw/siXxJDHkNArib+o/kBWY6spSBsY3pkcI0Lg0gbJmFGFZ/UXg2UIXFqhBrby9a02WAg5g3hEtKetMH9VhqlxRAGIIrCoaNz4ihtFPEI9AHOUo5Cq5MtRbRCATCUe1XLrnDYIaCVxo/RjfIO4tldta8Fxb3ktMgKX89sC8oU4C0YUuYgor2OYQs7D8E85C5lC1+vQExRhCGEIUpAQByVstkyR+kd7p903Eh2fGOK0YZr3MVxD5KG+aeJIo7Dr3QcjtpzBk8n73//+ji0tcghcbE143XXXrRQdRj2Me4h4JtJ1XhvBVnq5doGyoZ7jMZFtNumbdVnxjiam6vDo3+nnEf3FPr+7AoFLexWSbV/pa/BMQF+EsQXijfRL5J06zTHMD3nSUqRsqx7vUoQATWqs18fpPlfaos6TPtf9dpnxrpl+QRubmB9ADGfry5BMJOmkH6A/QOiTMGyHgmcfyhjDOG1ct40YVtqgquuAzE9ifZLESV9FW0IgLJGH3HFLwix6LFIf64WlSQfM6+hbIdKDQUrEqB72FzyvParGDD94QGWehbC16l133eXPY3+K9FFVE7jKlnO7CVxl20qqXosxVs/vwzIQIqw29ur5ZeqDCxnHddj6vWYIXDltP8wXvxvN+3lGzx/KzMNT/TVh1hMdXxXzo2bGh6rT0sz4oNPS7nKQeSPlJv1eqo/QXqlCb3KxctdeP0MirDyPdy7aPKLbYU5amOfhLRrR20T7C2/90R9vsbUa419Mqp5H6/FZzzUln0UJXO0ad2OY6GuN1pG6X059pKHnsZwzPgvhmrGXDyeoi6Fob5armsDVav0MeS87JoZ4hb+FwMVWpkJGDp8R3ZrUy9y2pfuA2McIxEs/ztqF9o/Hakmf7g/C9PGhHEQoRPRwegyOfQR13HHHuY033ti/Q77JvxbRCWpdULvaW7PzXE2oKrOmzsU6N76qCVy6/OS8yNxHE7iKkJElbDsaAoaAIWAIVIuAEbgK4mkEroJA2WOGgCFgCBgChoAh0CURECVTqOjRihytLNWZiBlhxKDDcygQY4IRXARvWhh5EJSNstUQxiO2pcNAJ16YQpKMhBE7aoU+Bh0USlq0ETEkVEFKw8vOtttu67euQDEUEyFw7b///u5973uffySFFTdF0RPGFwtbrhG3fF153333uQsuuMDf0vkTAoK8w1F7VQnjqzpMyVfKaKHTpc/f+973evIK11A6sn0hgut/3NIj2o29kAxCTzK5dU4bBHQ8PmL1B+Uo2/5ACIB4EZOwbsa8e+j46tWTWPixa/pL6yLGIAkjZfAQY0DM6F7vXpjXcCu6Iv2AkBp0vY61W6kD2vAr+aqKwAVB86STTvKe7yRsOdJP4o0NTz9CppR7jY58Vb733nt7cpCQQMN3cghcMQMI4eqtHSTcenUQ0hJtb1yNlIgCV/fTks6wbkBCo+wQITtxrssx3HatKxC49qqRL/nyGJk8ebL3iib9CGQ9jCFbbLGFN35h4NKEtJhnjZyyrXK8SxECJk6c6A455BCfTz3W+gvqj05L6ot9eTx3vGumX8ALwUc/+tGV6iSespgn4NVOb5kq/QRpFsOmpD911G0jNh5og2qMwJXyWEJ8mnwshDKpb9wv0kfWKz/C0JJTH/X7+px+FU+Z5F8LaabNQ+KjzQjRmmdkjAnJ+NzThIOQXM79egSunD6qagJX2XJuN4GrbFuJ1Ws9f4yR7CgnREjYev2g1w5sv4QXmFDE05Iex/V7zRC4cto+6Ss77+cdPc6VmYen+mvCrCc6virmR82MD1WnpZnxQael3eUQI3DF+j3Kdc899/RrS86LzNk1ySKWL8JBhDiht9Kr1wfzTiwt4oWU+0ijcYk+n3TFpOp5tB6f9fpJ8ilEGUmL9Pu6j+FeK8ddiTt2LLuO1P2yeAkNw9XejYSIJTqdVB0kDDw6MU4g8p7/kfij06LnPq3qx6rUz5ClsmNiAoaOy6LziHn7k4c0kY45QG7b0n0AW9TxcUE90fMrtrVj/RUTPc+SbRn1GKzbmLz/xS9+0ZPF+E2ewv5B+iFN4Gple6tynqsJVUXX1KwThDxbFuuc+C655BK/PTxb8SJ6q0p/4a0/eOvjI07tLZpboa5G3smZ+2gCF/HhSd3EEDAEDAFDoP0IGIGrIOZG4CoIlD1mCBgChoAhYAgYAl0SAVH2aQMMCdWKnNi2QDwTErgw+KPYKiOXXXaZu+mmm/wrO+20kzfS8kPc6h944IFun3328fdjCiV/I/JHK/RlawH9WEpBiJcMvjJEoREKClEEcgMiBC6tiGHbNr5cjIkoskJCVexZfe3oo492W2+9dactsBrlTxvgYvFVGabUA9IcMyrpvOhzrZiEEEP5IvoLQ/HgpLe80t5RmqlzKYOATqP2Fqevo7icN2+eV5Jx3Qhcb3vg0u1YY1bvXOpNo3otxlmtIJZwqyJwEZ4oNPlqWtq7xCPHK664wk2ZMkV+Jo+Q/sgf5INQMLjh8lq2OhSiVfhc+Fv3OYJd+AweA8ETkS+3U3UeQy5b1YakLeo5BjD6Ewxy/EZxr0WM+NyD6AHBUhT5MSNSMwQuMcoVVUzrdOpz3T9CHr366qs7trGkn4ZILFvQ8nvSpEkOj03kUXs1aKZsdTtpdrxLGdL01/vylb3GQc51u2tE4NJ1r8x4p/Mr8TY66rq92WabeSMYXh/Deko4tCO+9qfOiYEtrCf14ku1DXknZcTEAwntV28FK+/IUZOSmTfMmDGjqbmShBsem6mPYVj6N2My7YEyiJFPIW+ffvrpnkzHe2JUl62RdVjawBjzlKgNi9oDV24fJX1G2BeljFk6rfo8p5wxvDcicNGv4MkQ0dsSpdq0TlPqvExbidVrTaZJGQmJWzyb6PVDkbVDKwlcOW0/Z95P/nW/GVtn6HFGz8Nzy7ZRfGXnR82MD1WnpZnxoVFaWlkOMQJXrN+jvsRIU1xPCR6nR44cGZ136Xekv9Uf0ci1MmlJrXd0XPo87FP1Pc6rnEenxmfJZxECVzPrxTBvZX6ncGU+mVpH6n451QfHCFzS/8XWSJJmTSZa1QSuWL9ZpX5G8lxmTJR3UkfBmC1Q8T4UE9lyXdZMqToQe5dr0raYA7O2RYp4oMerFroVJOUhl3t6nGYdy3pWX4vp/TSBK1Zusu6Tuteq9taKea5e1+h1B1iJhGtqdFG5WOfEB+lX68dS/YLMecP1T2zOmzv30QSuFF6Cmx0NAUPAEDAEWoeAEbgKYmsEroJA2WOGgCFgCBgChoAh0CURqJLARQZl2xUUB3iaaCS4YMftP4KyBwUQBkJRXsmXZJoc0ChM7jdS6KcUhEJGIAwMsni9Qgn27LPP+nRCcsCYjwiBiy3Q8CaFxDx3cF0rsrQhh3uNBDIBpAFEvsBslL+UwULiqjJMMTIQdj2FocTNkfSheAcXRLyS+B+1P7rc8fCDsoutuxDew/OHSG6dSxkEJFxtUKL+UW5s3YXXEIwiiJDyjMD1NoFLk+1oN5A86gkkJtkKrVG9LmugrBcv93R82hCn38MbE19wQ6LE45TUWZ5BSS8LZ/2OPteKe8hNKP2pRzNnzvT9nPZilUPgQik7a9YsHaU/jynjY3UeL4cQXyRfbClHOyad4mUMYtaYMWOihkRtDMLjCqRLCKKI9hroL9T+NEPgkvIPvfDFFNMSX+ooSm7aMuWBVy4xgELaIy4E70Lgxja4c+fO7fjimnvNlC14VzXepQgBkJ8hQSP1PDjhRQNiFBL7st7feOtP7njXTL+g48cojHdMiC94tYAQJCLeIYRUrD2SyDOpY6xt6Ge1QVXi4b4Qe6Tu6HfkXPcz4m0wd9ySMGPHZupjLLzYNQyhO+ywg99Smq/8RbSnEzGqx8gDOQSuZvooaecyp5T0lu0zcsu5EYFLewOsisAleSzSVmL1Ws8fU95fiEMM2V2JwJXT9nPm/eRft+uYQVvjqOf9qf6aMOtJo/hkfBQDug4rRnBvZnyoOi3NjA+N0tLKctDzxnr9HmVRlsCltyyr54FL1iGaRJyTFjwNM29EmPdor5b+YvCH/p1tFItIs/Po1Pgs+SxC4CKdrRh36+U/dx2p++UUUSNG4BKdTkje0GnU3pu7E4Ert5/WeS8yJurnY+cy7tXzTvn973/fDR482Em9zG1bjCvjal6RkUYfV/CM1m3V8wqFl3n6I+TXv/61X/PF1oz+gbf+lCVw8Vor2lsr5rmaUFV0Tc0HCKydkbJY58RHf1yEwCXzgCLr5Nw2ZQQuX+z2xxAwBAyBVY6A6KGZk2NDQ7/Ibiv851x+F01or1122WVF0Ye703NG4OpOpWVpNQQMAUPAEDAEDIEQAVH2aQMMzzRS5PCMGEq04U6UARBeUAwKOYvnRSDiCBkHr0tMOEW0Iv7ss892xx57rL/FNkkogoqKDidmWNFKLjGs6O0ayRPEpDD92muUELjICwpRJKXE2XLLLTvyIvEVzQvPiRESwhu4N8pfymCh46wqzFBBfeKJJ3baTknHKedsh8V7SEh+4tq+++7rt1LinDqy3377+e0Lw3rK/dw6lzIIECaiyzq23YmuQ2EeYsbhRvG9GWvxv1oJH0tfKqSUwaPeNon17oV5ZfGIQQl5+eWXfd2NpYXtBDHqoOCGXII0qteimCxqoIzFq6/p+MQQxxZxKEkhn8n2rvIOeYNcKN602NIA0lU9kTTTJ9Lm+OJei97GKIfAlSKN6vpBG6GOxuqgJhCk+iadh9ADl24HGDQwIrL9IEJd02RLrqUIXHgxgiSBxEgDmlRVRDHtA6rzRwkbe8YAAEAASURBVHtFgnS2zjrrOG2QQTFP3iBt4QUDBYj2FEjQGpecstX1r5nxLkUIgGyDkQ9h68/zzjvPn+s/5EuIZCGu+jk5zx3vcvsFyMZ77LGHjx5PaaHBGDIRxhBE5iLi/YBrse09aL/UNfIO+ZE+LNY2eF9EG1RjBC6eE3KWvCNH8VTEfIK+FMkdtyTM2LHZ+hiGibETLz0IpE7Iy1pos+CLkhCB6InhWMaYqghczfRRMs+pisBFPsuUsyZwsTUvdVSLeEPlWrMErpy2kqrXYniNzblIK4RP2T5NP1Nk7dBKD1xl2z59Im0RKTPv53ndf8fWGal5eKq/Jsx60ig+af9F50fNjA9VpyV3fACvRmlpZTnIvJF01Ov3uF+WwHXkkUe6mh2FV92FF17opk6d6s/1H018g3zPWI7kpEWv5SAL4IUnFMbMI444wnvXYl1+++23h4/431XPo1Pjs+RTiDKSGOn3ZU4g11sx7krYsWPuOlL3y2UIXMxrxKNvbO5DGrku5OvuQuDK1c/kjImxctTXhMAV1jl5BpI69Yy2Ih995LYtvU5JfYQhdVrmOJK+2PxL0oiehvU3wvusDxuN3TkELklbrk5Q0quPMs51hTV1LtaawFVmDV/lOjm3TVEWRx11lF8zcW4euEDBxBAwBAyBVYOAEbgK4o5S18QQMAQMAUPAEDAEDIHuikDVBC6trLzhhhu8RyqNDUp6jDcoJzFm4llKk6S0QQFllGxfJp6ndFj1zhsp9DXpQEgLY8eOdSjjETzPyJd1Eg/KDpSjGDURIXBpZR0KpRiBSXs4kfgk3CJHCEz8J3yIZWy5gzt3pIzhSMdVZZiiLCd8FOZspxQSNyRu7cWMa4Kj3OdI/YCohgJ00aJF3mMX17WBk99Ibp1LGQTeDPVNIy3ekZDYF5kYMXbffXd/f3UicJGhsE4JgSt2LyRw8YwoWDmnj4EMpQW3/RgOEI1do3Yr4RY1UOo4Y+c6PjHEfec73/EELfol0kib06IJVymFun5evCMQTkhqpX5j1JctMnIIXBBaSLNOJwZLDFuEz3UhXcXq/CGHHOLIE8L2r6HHNN0n67B0HsVozn1wo5/X3iD0sykCF8+IMhxlBGFq0USHkGgUq4P63di5NnzKfU3Q0umU+/RzkBJFmi1bjW0z412KEMD4yXhLPaBcIJ6AnRbIUXhRQ2LEOf0s582Md9J+Cadov7Dddtt50h/vYCz+/e9/z2knkXAZKxhrtXEk5gVO1yUZU2JtQ0eiDaopAlfM0KrJ29rAnjtu6TSF583WxzA8iFmESf2R7YzDZ3Q+xJAjRvWYATHHA1czfZTMTcS4Kekv22dow3iZctZk9QsuuMB7JZQ00O/T/4MvInWR81Sb5l5KctpKql4LgZW4YnM06fO535UIXGXb/vTp07Pm/eRbzx/CORP3W0kcisUn/WDR+VEz40OjvJdNC3jJO5wXHR94tlFaWlkOMm8kHfX6Pe6XJXDp7VVja1LC1F6YLrvsMnfTTTdxOSst2rsL8wQIuXpeSbh6i9u7777bTZ48mcsrSdXz6NT4LJiHZBrp90MClx6vcnQUK2W0wQXmXDnrSN0vx8YbotVlL0Qs7Z2ILd7QnWgJ573ynn4mPNdp0XOfnDGKsBu11yr1MzljYpj/8LesU7hO/acdaNGkq+uvv95v0Z7btrbZZhvv6ZfwWesxD9Gy8847O+JD5ENHqftcO+ussxxlpoVyQ4/EvEPPi1pB4GpFe6t6ngs2et5QZk2di3VufKRV6l+z6+RcnSdpMAIXKJgYAoaAIbDqETACV8EyMAJXQaDsMUPAEDAEDAFDwBDokgiI8hMlLQpztjLD0NtIkUNmYh64+KoTww6KIcLEM5B4qOHLsS984QveMMX7uB8/55xzOO0kWonPjTLbIElAOQpC0ozXATGm/fKXv3TTpk3zZAS2bEJJ1r9/f4nC/eIXv3AYf5BPf/rTflsnzlEYo2BC4Y4BFCKAeBzjfkjgEmVMvXwSL7iQtttuu81/OdksgavKMNleTrZNI4+UPV9wz5gxw+cXA8qECRM8DuPe2g6A51J1gHvacwW/CRNlOB4+tOTWuZRBQMKGJIcBBYGMxjaPGMZQfmJQpk6IaAMm12LG4VR8u+22W4eXE/GwJuHWO2oPSxADMLDXE7aJe/jhhzsMO6HBQ7cZtsKDLEGdROrdi+VV5wkFMQbgp59+2odFvf3sZz/b0Za0FysdTxUGSh9hnT86PjHEaVypn+eee24HyZQvlunDIHMiKNNDj0BhdGLI4jqKfvpEtlvbeOON3cc+9jHv3UneKboFqVb+8i7EG7wlQC6CFAB2ECUQTcqK1UFt4KBt0QcyDrD9B+MARE/pE2mDkPk4asGb2kEHHaQvuZhxjAc0MSo0Hmll+B133OG972H4YNta8dhHGFUQuAgHbxVCyOU3fSxeuBDaN/26SNheuF5F2VYx3lFWbNmC0EcxrjMOMZbrfgwlD+M85DqEPFIeUr7yJb6/WedP7niX0y/ocYr+iDkDni4Ryo7ti2ULY/GmxXgDHuIZCmIMhjTwIA2Qb8kz9RhvFOASaxsagpQRkz5APF7wPPX2xhtv9P0C+IK/pIN5gfSDueOWTlN4XkV9DMPURJ4rrrjCTZkypeMR5jXUH/Knt2ySeWVVBK5m+ijpU7ShkgzExq2OjEVOcstZkzBIw09/+lPfv3KdbYxouyKawFWvTcvz4TGnraTqtfZsx3gFcRJCwFZbbeXo7/FsIqLnP0XWDq30wFW27VNHc+f9ev4Qm6+kiEM5ZQvWjeKTsaQogYswc8eHVqQlZ3wogksry0HmjaSjXr/H/bIELt7RfTrjHp46aY/0uYceemiHd8qwf8tNyzHHHOPbOHGzpqBtQIxG2HITApeMnfStoUdZ/2DtT9Xz6NT4LPkM52fS74cErmbGXY2NJvtLnmNH3b7KrCN1v1yGwIV9irzLnI50XnnllX7uw9obQo2e84Zz8FgedFo0gatV/ViMwEV+cvrpnDExhoG+JjobrjGHvPTSS72+g/kl6yXGR4T5KiRIriO6/pRpW5osTR+A7ok2ueGGG/ryJI/IxRdf7O66665Oc1n6CubMQuJCf0Ga5ONIPJxTR5BGY3eOB65m2ptPVOSP7hO70pq6DNa5a3jgkL6N82bWybltiniNwAUKJoaAIWAIrHoEjMBVsAyMwFUQKHvMEDAEDAFDwBAwBLokAloJTwJFCdpIkcOzMQIX1zFKoagWQcGFIgsloAjKJ5RSoTcQ7oeKjQcffND96le/klcLHXW+YoaVmIKQgLWCit+iKBdlKPgMGjSIW15xByEGggcGApQqokjjvn4XDCSMkMAlhkSeR5makuOOO86TPkgDRuBmCVzEU2WYfCmKMVcrh1N54TpGbhTLKdFGW5558skn/ZeHsedz6lzKICDh83UiHuKk3LhOGeFdCAnrNXUZYwIkGinTJ554whO/eD4Vnya/QJzBuFlEtIGkyPNC5EkZPHSbl/DEo0q9e7G88r7+8pzfYIcIfpxrfPjdqN3mGCgJNyU6PjHEQc6iLQvpgnKGnEC6dd1ObZcaxqXLl3uEh0i9ot4QrvyOfWXtX1B/wj5Sbul+hmss6ulnRWJ1kHxBdhGFPs/SX+u8YhyU+5QjSn+9vSR9u3jM433SEfNEyL16BC7t1Y5nQ5H8VUXgkv6PeML+l/IX70PcjxnRqijbsCxzxjvSJ+2ac0TqJ+UGCSccm6hvUsd5PrVlEvdCaWa8y+kXQoxoj9QF8iTtht/UQSHg6W14ST/3EXmec02YibUNnhFJGTFDYo88L3VVfkP2xvCmJWfc0u+H51XUxzDMcBymndD+qFcaS+2NUOpiVQSuZvooMXaFBIfUuBXmX37nljNthS009bgnYXIET7mn6yP3BEfOEWnTb/6K/y3bVlL1mtCZO2P0byRdicBFWsu2/dx5v54/xNYZKeIQacwp20bx5cyPcseHVqQFXHLGh0ZpaWU5yLxRl2ms3+N+DoELL53kT/e19BmM3XKNsYYtFvlIQ0TqV9m0gBXzBb1eD+eoxBGSeSVeOVY9j06Nz5JP0V1I/NLvhwQu7ueOu3q+yPxXtn6XOGPH3HWkkO0JMzb35HrMAxfXtcdKflM/IBHJOKPnJs0QuAhb8OccKTJGNWqvVetnyo6Jb+Yk/VcTuNJPOU961luM5rYtxmDGKD1fpzz171A/gu5Ck6x5nnKXOkC6Q69+ep3PB0GsCbTocTI23skHMSGBOLe96bj1eSvmuWEdkfh0W+FauKbmWg7WzcRX5TpZlyl5CceWlM7TCFygZWIIGAKGwKpHwAhcBcvACFwFgbLHDAFDwBAwBAwBQ6BLIoByGG84YpwXLwpsDYeSAEltX5gicPHOrrvu6t/XCiauI2ynBukp5bkGLzcY/0Uwfs2dO1d+Fjoee+yxjq2LkJiiKaUgBAc8zJAGLShxHnroIYdXLryUiHcbjMUYTRAU1rzLF4daePf888/3XpZ4L0XggjSBIiglELZQfCKzZs3qMKzF8lfPYKHDrzpM8scXvrJlhI5LziHvYWwQ72VyPXbEW4wYErTHs9izZeuc9rDDF7S33nrrSsHSDg477LBOilIeQqlFHSaf0k64jgITb1ii4NXK7FR8Whmp6xPh1RNNhKn3nNwTAhdkHb6cDg0e1Bm+zNX1F/IPC8N692J5lTj1VhJyjSNtAu929C3ydTLXG7VbMVDGlKh4noJwhsTIEv5G8EfHpw1xeJbhy3lNYtKvPvroo+68887r8FCm78XOU8pa+jWIBGyzBQESQYFaj8jJMzq8a665xr3vfe9bqY6inMdbg+47U3WQLS3pW4ScShwIaYFkSd9Hnyz9+c033+zw0qaFNBMOEhoT9HO63saMR9pjgbxHfeHLcsqYMSskcNWrgxJG7Pjud7/bHX744f4W4xL9jRa8M0l7SPU/uiz0u0XLtorxjnghLey///4dZTRz5ky/lS33aO94jov1y2BLWWpCHu80ktzxjnDL9gsYnWirlH1MIOcwptCnaMHL0cc//vFORivuU6/xEAdhRiTVNuQ+fQH9O6K9UJxyyikOL3H03WwHi6dJMazLu/WMvWXHLQkzdWy2PsbCPfDAA71XiTBfPEv/LV4+5F0ZY2LbqDJHYE6HxPppvUXXb37zmw5SQm4fJd4awvGubJ/RTDnT7vAoqkmU5B/iE9sqMmdCQgJXvTbtX4j8KdtWUvVagmZsYY4iaae/AEs8cn3oQx/ycwO9DXKRtUPMA5d+7w9/+IP3NEsatAczvFficUJE+ueQnCfvFW37ufN+PX8oOw/PKdtG8eXOj3LGh1alhbIrOz40Sku99VCz5aDnjfX6PfKVQ+DivVTfxz3W7GyTxppQSzNpoT4wH9QEEAmb+Bg7+d9IqpxHp8ZnyWfYv9cjcJHunHFXE7jYqpItK4tIzjqSj3lkvpEi9acIXKSJbdEPPvjgleYizFMgFcm6NTYHD/NUb4xotv3E+s2q9TNlx8Qw/+FvmTtAcMKTMusSLcyJ0PmE81GeyW1brBMg24juSeJjPGYexTyCdZEWvX2zvs55rE7pMTim99Nkn1i5CYErtj7PaW9hmvXvque5Orwya2pJU1msm42vqnVy7txHx8+29eKlUfCwoyFgCBgChkB7EDACV0GcjcBVECh7zBAwBAwBQ8AQMAS6NAJsi4JxHvIJRqUqBIPPFlts4YlUkHAgFEydOtV7KKoXPu9hiMBYiDcjFLHtFgzFYEJaUMJBxEFRhpAXyGGQHdgikHxp2WijjRxeK0g/W5tB9sBg3JOEurTJJpt4L2HrrLOO39YLHPgfKhmrxCW3ztVLAwrT7bff3hsz2OKQbYRkCzLewzjLV9YYEflSWhOS6oWr75FuCJExpap+rh3nGIvYEgyjLMp+LfXu6ef0OeslyEnUB0iKbCMCGQdDUFcWlP4YoNgeFLIKngwwqlDG5KGsjB492oc3cuRITwBB6a4xoE8hHvoTyDf1RCt/IRbQZ9Nn4aUAjwOQROl7yghtlnqOQYIw2M5Rlz/luOmmm/r+j7SHCltNzGLLDrafzBXpYzEggjX54avurirNlG2V4x2Gaki51CsMumEZkU7GNbZeoZ5BRGIMa2Z8yh3vcvoF2s6OO+7o+1zqK9vQMGehT5bxOVZHyC/tmHzivZK2QV/UCiFdjP/0d8wbaAeNxryqx61m6mMKExkHyRdGH7bOYjx84IEH2tY2m+2jUnnLuZ5TzhhhqYfMDWl3EF0bSaM2nXo/t62kwiMdzOVobzLHYUsrcKhH2E2F167rZdp+M/P+nPzklm1OXEXeacX4UCTe2DM540MsnCLXulo5xNJMOxtX88TDPBHCCO2QeRHHVgn1gf6KeRjzX+YUzAvLSNXz6DJxN3o2Z9wVkkuM4FIvPhk/wbJV68gwfshCEN9Yt6FLYawO9RXhOzm/291+cvvpqsdEwYr8Q1Ciz+JjFzxLN5LctsUWiHwkQFwyl623NhoyZIif87N2Yx7K3Jd+gzVeuyWnvdVLY5Xz3CrW1GWwriK+KtfJuW2qXvnYPUPAEDAEDIHWI2AEroIYM3EyMQQMAUPAEDAEDAFDwBCoDgG8Peyzzz4+wPCL++pisZAMga6DAF9KT5o0yXuRgeRoYgjUQyCm/K33fKvvQUjAexVf6se2rGl1/N05fBvvunPpWdoNgdUTAQi5ENMx+uJZIyR5YvDDAwxy9913u8mTJ6+eQFiuDAFDwBB4CwG8FI8ZM8Zpz2sGjiFgCHRvBNq9pm53fN27dCz1hoAhYAgYAikEjMCVQia4bgSuABD7aQgYAoaAIWAIGAKGQAYCfMGIByO+GMWjDF/q4UUEZamJIbA6I7Dzzjv7LWPwCMMWgLQDE0OgHgJdRflLv42Xp0MOOcRv2UKaw23A6uWjp96z8a6nlrzl2xDoHggcc8wx3nMHqb3zzjvdJZdc0pFwvICwpS6EXeTUU0/N8krZEaCdGAKGgCHQxRH4zGc+473oPvXUUw7vgyaGgCGweiDQ7jV1u+NbPUrJcmEIGAKGgCEQImAErhCRxG8jcCWAscuGgCFgCBgChoAhYAiUQABlBtt34clF5MYbb3RXXnml/LSjIbBaIsB2W3vuuac3kLJFn4kh0AiBrqL8Pe2003xSpd/GW8vXv/71ji22GuWjp9638a6nlrzl2xDoHgiMHz/ee9iSvh3PigsXLvRbh/OhhcjNN9/s/vSnP8lPOxoChoAhsFoi8MEPftBvXcf2iSaGgCGw+iDQ7jV1u+NbfUrKcmIIGAKGgCGgETACl0ajzrkRuOqAY7cMAUPAEDAEDAFDwBAoiIBWZvDKM88847dtKfi6PWYIGAKGQI9BQPeXeCx89dVXV0neIXCJgX/58uXu/PPPd9OmTVslaelOkeryI9023nWn0rO0GgI9A4Fdd93VHX744a5Pnz7RDN96663u0ksvjd6zi4aAIWAIGAKGgCFgCHR1BPSarB1r6nbH19Xxt/QZAoaAIWAI5CFgBK6CuBmBqyBQ9pghYAgYAoaAIWAIGAJ1ENhggw3cjjvu6LdNfPzxx92jjz5a52m7ZQgYAoZAz0Vg1KhRDg8pyNSpUx3bb64K2WeffdywYcPcnDlz3PTp0938+fNXRTK6XZw23nW7IrMEGwI9EgHIW3gIpc+ir3/hhRfcI4884h5++GE/X++RoFimDQFDwBAwBAwBQ2C1QKDda+p2x7daFJJlwhAwBAwBQ2AlBIzAtRIk8QtG4IrjYlcNAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQyAfASNwFcTOCFwFgbLHDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUOgMAJG4CoIlRG4CgJljxkChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGQGEEjMBVECojcBUEyh4zBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDIHCCBiBqyBURuAqCJQ9ZggYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAKGgCFgCBgChREwAldBqIzAVRAoe8wQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAojYASuglAZgasgUPaYIWAIGAKGgCFgCBgChoAhYAgYAoaAIWAIGAJtQmDs2LFu4sSJbt1113W9evVyP/zhD9sUc8+LZv/993cDBgxwTzzxhJs2bVrPA0DleN9993WjRo1yc+fOdTfccIO6Y6etRGCnnXZy48ePdy+//LK79tprWxmVhW0IVI4A49Tee+/tw/3zn//snnvuucrjWBUBvvOd73Q77LCDGzFihJszZ4674IILVkUyLM6KEWBOdcABB7i+ffu6GTNmuOnTp1ccgwVnCDg/d6+ynmHHnTRpkg/33nvvdbNnz16tYB44cKD7wAc+4PN38803d+Rv99139/PSefPmuVtuuWW1yrNlxhAwBAyBnoiAEbgKlroRuAoCZY8ZAoaAIWAIGAKGgCFgCBgChoAhYAgYAoaAIdAGBLbcckt3zDHHeCOGRPelL31JTu1YMQI/+clPfIgQuM4444yKQ+8c3OjRo93gwYPdggULuiTJ4dRTT3WDBg1yr732mvvGN77ROfH2q2UIgPXIkSN9vTjppJNaFo8F3BmBoUOHenLOihUr3MyZMzvftF+FEXjPe97jDjvsMP/8b3/7Wwe5YFVLs2V78MEHe7KE5ANj0ze/+U35acdujEC/fv3cD37wA5+Dxx57zJ111lndODeW9K6KQNX1DELpUUcd5bN7+eWXO8iyq5Nsttlm7vOf/7zP0u9+9zt3xx13+HOZly5cuNCdeOKJq1OWLS+GgCFgCPRIBIzAVbDYjcBVECh7zBAwBAwBQ8AQMAQMAUPAEDAEDAFDwBAwBAyBNiDwmc98xr3jHe/wMS1btsyTOr71rW+1IeaeGUU7CVwYjTHqvfrqq+6UU07pcoCLocwIXO0tGiNwtRdvie3LX/6y23DDDR0EruOPP14u27EkAl2RwNVs2X7ve99zYjdZtGiRe/rpp92ZZ55ZEhl7vCsiUDWxpivm0dK06hGoup4ZgcsIXKu+VlsKDAFDwBBoHgEjcBXEUBYiBR+3xwwBQ8AQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMARaiADEnuHDh3tSwde+9jW3dOnSFsZmQRuB6+06YASut7Fo55kRuNqJ9ttxNUvyeTuknn22OhK4TjvtNO8Fc/78+c4I1KtX/WYLxSOPPNL16dPHPfroo+4vf/nL6pVBy02XQKDqetZTCVxs7c02vS+99JK75pprukTZWiIMAUPAEDAE8hEwAldB7IzAVRAoe8wQMAQMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMgTYg8N3vftcNGTLEE7e++tWvtiHGnh2FEbjeLn8jcL2NRTvPjMDVTrTfjssIXG9j0czZ6kjgknHhqaeecj/+8Y+bgcfeNQQMAUOgaQR6KoGraeAsAEPAEDAEDIEuhYARuAoWhxG4CgJljxkChoAhYAgYAoaAIWAIGAKGgCFgCBgChkCXQmDixIlu44039mm6+OKL3euvv96RPr7WPuCAA/zv2bNnu2uvvbbjHicYQrbffnu3fPly99vf/tYtWbKk4z7X99xzT+8Fiy1QFi5c6F555RU3ZcoU97e//a3jua222srtuuuu/vf06dPd1KlTO+7pEzw9DB482LEt3SWXXKJvdTrfYYcd3GabbeY4Ei/bet1zzz1+C8XLL7+807OTJk3y2yyus846rm/fvg4vIRiaf/e73zm2e9IyevRo9/73v99fIhyeJ02jRo3y4Ydh63dHjBjh+Podufnmmz2pbPfdd3cTJkxwa6yxhnv++ed9vu+66y79WqfzoUOHur333tuNGzfODRs2zKcVrxd33323e/HFFzs9q39svfXWbo899nDrrbeeGzRokMfhueeec1dccYV79tln9aOumXSKof6JJ55wZ5xxRqdw+UG6d9ttN7/VGuVInh966CGPXYj1Si+/dWGvvfZym2yyiS8zvDJQ7wiD/Fx99dWdXitTtp1eTPwYP368bwtgNGDAAIfSlHhvvPFGN2vWrE5vaQLXd77zHbfTTju57bbbzo0dO9bjTx2jHdCmYrLBBhv4uKiXlBntivjuu+8+d8stt/h86/f2339/X76U53XXXecOPPBA3y5J58knn6wfraQcdIB4X6Fukz8Ik5TLggUL3Jw5c9xVV13lMdLPkzeef+ONN9zkyZN9XZY+iHoxd+5c783l+uuv1691nPfu3du9+93vdltuuaVve/PmzXMPPvigx+aEE05wI0eO9PGfdNJJHe8UOdlvv/18e1x77bW9Rxn6mUceecT96U9/cmzBGgp9y6GHHurx5B0Ezxa8Q75D2fn/s3cmcP9OZf6/ZaZSjUojQiFiRIlJREKElCVrWUpJlK1lmmKmUqF9poVI1pCUrSIhS5YQIVtlCZGmlKlm2mf+/X/vk88z1+849/297/P9Ps/v+fG5Xq/n+d7bWe7POec6y/W5r7Pmms3KK6/cPPDAAylO9N5aa63VgAcY3nvvvcmDzXXXXTdX0NpwMZLnP//5U/WP62xjd8MNNzTXXntt0o/xWR0/9rGPbbbeeuv0fugeyos6eMkllzSXX355eowyoE2vsMIKDc8jxIu3Q/oDwvSRvjpqtdVWa/hD8PZDWiXZdtttU12kHlLHoiwzQA+No/OVJrp6u+22S+0TXY+u+/nPf57yT78UJSdw0Z7pG1dcccXU96Ezb7nllqRzYrh4PETvdb3fbbfd1tDWasuW9sS7U8cR3vv6669P/eu3v/3tqSwPbUeqA9RF+mnON9lkk7RN4wknnNDceuutza677priJx10M3mgDWC/oc+89NJLU3vjIeov4xj6R+oLz+OdhrHKUOnbRy+11FLNxhtvnKKnDzv55JObP/7xj3Mlx/iFLaDRPfQXtDvGU+ST9su7kW/6FrYvZXx19913J90CNm0yRBf0wXr77bdPSVG2YJvLkPTG1XV9dFaeP+r4RhttlMaMjOXQXdR99AtjmZIw9nvlK1+ZwlCnKEPGYLfffntz1llnterUUly6NqTdjtuHKs3S75BxjsIPbcMK17e8KKOuejZ0DFJD4Npyyy3T+PjOO+9MY3jiQK8sscQSSZfQHpm/IMw/GKMsvfTSqW7Qt9N+qR8lqamDxIMeoc0wJiYO6ut3vvOd5tGPfnSz1157paTQkeqvGXcxfmXcSX5y6Ttny8P53AgYASNgBOYNAhrvMWelL2QOTn/AH8c675u7BeZ0bH/p+/D89JwJXPNTaTmvRsAIGAEjYASMgBEwAkbACBgBI2AEjIAQ2G233ZKhkPMzzjgjEUR0b5tttmkwKiMY49/+9rfrVvrdf//905YckKS4hyELweMVZJU2waDxsY99LN3G+LDvvvumYxag8KKTC4YKyBnIr3/964btEdtkv/32myKk5c+85S1vSZcgiuyzzz7JGJo/wznvCpkNY4gkGn0gsmE0ZmEMwah+5JFH6tGH/GKIBWcEIw/ELYWND2OA+cxnPvMQwghp77LLLmlxLj7PMdifeuqpU0aaeH+nnXZq1lhjjXhp6phwEMYiGW6cfHYRuDB2YnwuCeQkCF/UiVHyzne+s1hmxME2mUhN2Y5K97Wvfe0UcSR/FhwhTUVyowhcEAIwwENsyoU6BmYY46NgKITQ1CYY+g866KBEptEz8jYHmQkSIoZDieo855MqB8WNAZa0MRi2yYUXXthEcmMkqYAZRAYWmnMpEQFJj3IWYSqGAReM7094whMGEbh4/q1vfWsybMb4dEyc4I3ekWBAx0BKfkqCHjviiCPmqtNvfvObExmGcr/sssta2wPkr/PPP38q2tpwREC5EH6ZOaSlkkA6QA/nBEp08p577tlarpDsDj744GaLLbZoIB6U5N3vfvdcdbT0DNeG6ChIr5ChEIhw1L1cIPCpD8m37Rta/8fR+eQLchD5Lel67kM2op6o34xtAzIMBLmSQBL87Gc/O9etGr3X9X6QETH2l6RP2X74wx9ORNc8PMYmwiM17QhyFvlG70LypB+WQISClPjRj340XYJswdgBgkkuEDMhxkGkzAVdQv2m/vSVIX00BCDih2CLUA/o9yUQwRjjSC/yXpD9DjzwwESKo1+BaA/hKBf0y/HHH/8QcmONLhiCdf4ONemNo+v66qyIF/gxXqQPKAlkWrCMAumRsW6pTvEc/QTbhvYlANa026gnhvah8V3y46HjHMLXtGHCDSkvsFabzutZzRgk6j3GJoxRRonGdOgv9AP9TC4Q/5gLMIbLBX3FHAHdHaWmDhIeghjzs1LfwtgJfJFI4NI7QPZk7hZlyJwthvOxETACRsAIzDsETODqib0JXD2B8mNGwAgYASNgBIyAETACRsAIGAEjYASMwKxCAK8wu+++e8pTbhwRQUsZ/vjHPz4X4YQtkTAy4lHkkEMOSY/h/QePBgjGRL46h2ADoevJT37ylMEB46u8Jn3oQx+aIkN84AMfSJ5sUgQP/oO8hEcKBHJDycPNg48m70MQkTCMkDcMJ+QPIzlGZUSGUI4haECiwSiDsVdrPIT7yEc+kjwJ8Vw0+nAu4Tm8T+SGPt3nNxKjdB1iD1/C46UkEnzwJnTsscfqseQ553Wve93UOYZByAsYkGI4DHmRRBQxI4+khVGecoAAI8MPnrjwBoWMk882AlckaKgsMCDh3Q3vUgjXP/3pT7d6vEgPzfmHwQqPMHimIv+UKWQSiEsQIZCask0BW/7h4WTHHXdMd6nPeJaiPpEH6ovksMMOS547OJehTPd4P/IJUQYPKjL+cv6ud71LjyWjG8RC3o0weFTh3fDyQHnzdS0SCZCci8DFcRTwYXs7ZJLloDSi0Q9CAYZDSAnkNxrFad94K0Oi8Vnx0AbxLkTbg7wgwZsJHs4k6IbYPmkH4ATRRPWZZyE49PXAFbFT+VI/IT2pnGg3pI3gRYljkSsga6E/MCTTtkRmQ5+gP0XOETkhRfLgP8LSninbSAaLOrA2HEm85z3vmSK78W7oAOqQPA7yDHWQ59DRCOVG+sKT63gAgnQCMVDXIZRgsJZXD+4jlCMCiSEnhqUb4d9QHQXmEM6EPWVMWUd59atfnbyScC32FTX1fxydTz2lbqktU4eoJ+C73HLLTb0D3lEwsiOltkE9ou0QLhKqcrJ1jd7rej/KnDpJmjVlCwGQ/h49j1CP0GXoz+OOO666HYlURJy0fdVHjk888cREXBLZg2cQ+lp0Nn0thJlcMIChg+L4hHHLoYcemj9aPMf74NA+Gi898pJDpJA7IH8gkagc8xHLOD045x/6Az1Cv6L+ASwgyXFdUqMLhmCdjx1r0qvVdUN0FmQ4JNfj6CrqJu029ieQAD/5yU8KxkTmJT1EHlvBHcKMCHkiuE4F6jiIZdp3LFrSE3370Las1Ixzcgz79oVDy6uLwFUzBol6byiBS/jRxtAp6Maol3UffQeZTx49uY4up21Lcvz61kG8Mu6www6KZsq7MforjiN4oA+Bq2bONpW4D4yAETACRmCeIWACV0/otXjQ83E/ZgSMgBEwAkbACBgBI2AEjIARMAJGwAgYgVmBAAZQiFkYxXPiA9dlFCSzbLtx+umnp3yz1cree++djiFZQLZAID1BYoAwgBEvbsnIVj8ilGAghgCGQJDBgIREg3a6MOefCDEYTSBFjCIGEE7EjPyd2HIEIz/CwheeMGJ8kVQQvbxEow9hMd5hdO3jOSonRuVGQbYQe+Mb30i0ySiNxx8M/gjEOBmdozGGe7wL2zhShhiM5IUKEgyGQa5TDhggwVuCVy4IDQgEE4y9lNM4+SwRuDBs4Q2HfGBEJx/R49RrXvOatNUf+Yj1gfMuwUCPUS/3xlZbtl1pUV+pt0gkaXEe60Q0YKu+8gzlQj0XgQkDG9sqythL/cPgi+Ata5kHvSXhkYU4JYSjTtO2YllzX3WdY9rIRRddlMh8PIdMRzlAHiRdBE9OvAdpS6J3pkguzI3PP/zhD5ujjjoqESgIG73+sYWcyBjR+xJtGt2kNoJXFLxoCdO8zStP+W+ME6zQV9IF4Ew7FCFLXodop7RXBC9JIg5yjq5ky0p5CGM72JNOOolbyRMW5EMEnCAXicDKtUiWjfo0khqGhMNDB1sJIugx8JIupu2QnvIZywfijTw/RfyJB28r8sIYjdFqI+SPcugjtToq4hHzrTSlL8mL+ora+h/bN/EP0flsIcgfwvZa0dNhJDDEupq3DbbHjVtAxjgjibNW7/V5v5qyTS/94D/1C7Tzww8/fOpWbTuKpCIig0QIeVpkpUj24D51mDxAcEHoFyFyScAXnBHsO+hmxkLEJ09uerbtV3WO+337aJ6NYw3aE7oDnYSnOASdRB6kx2Peqd+06Tj+ILy8coEL/RVSqwuGYB37v9r0YtseoutqdFZMKyfN05/g8VXERfpziKkQbVUncpIWdQavaSIgQ9ShTLuktt3meqJvH9qVF7Vznuk7zqltw0PLK7bpWM9qxyBR79UQuChX5jkaf8R2DH542T366KM5TBLbLfWKsTBSUwcJF/XNxRdfnLZN5TrCVpN4fpREfaRxae6Bq2bOpvj9awSMgBEwAvMOARO4emJvAldPoPyYETACRsAIGAEjYASMgBEwAkbACBgBIzDrEIgeH/AIBIkhGusxpkHCwYiFEQCJnk4weuJdA8HLFUSGm266KXnaSBfDP5HCIH1AkEAwsGtbJYzkECkkePMRMQkSDN58+ohILdFATji8y2gdJ3oGinFCRuHreASjKMSHaPTBAAM5QEbhGLZ0HIlRhCXO3LgXjUAiyrHtoIy5uVFI6URjGJ5N8AYWt8WMns4Uht899thjavsoGbFq80l8MtTHre/wMIKnEQTvKNdcc006jv9kjKKOUfdyXOKzOm4jcNWWreIt/VK3ZZQt1RfeEUIGnlJOO+20FIUMZZyoTGLcb3rTm9L2XVw75phjpra7wohKfYeYxrvkonYKVpEoo7rO87lBj2vTUQ4QOKl7CFt4igSRLsz5F7c9jQSWaHxm4VntXuEgTGFQRCJBL5Yt3p3wThYlesHJ23x8Lh6jf+RNhW08qbtR4pZ7X/nKV9LWh+QNXUjbx/tHLhDtpKOoy/K4EY21pbYcvWrErbtqw5EH8kJdwYAMllEghdL2EOnciD3ETzxc5e2RNgrBAYHMANFFxv+8XqaHWv7V6qhIHI59CMnEviISnGrr/zg6P5JTS0Qz6haEPvoWeXqKbUNlEuGDoCgvkm1to6SjiKO2T6sp25hn9QuRwAUho7YdRVIRHpOEh9KMZA/qI3VUxEWeif1siTQsElTfulzbR5MX9Ag6SGMNSFfROxvkUEiikkgE+da3vpW2vNY9ftFl9AWQiWi/IlvW6ALiG4J1JNbUplej62p0FuNT+nWk1AdxPZJ7GVPRj8fxUanurL766skjIeEhJYvgw3lJYp82pN1GPVHKf8Qk6olSHnRt6Dintg3HvPXtY+iDROSO9ax2DBL1usa+wqHtN47p4piN52O9gGxJn4/+kLCNLvUJUZtmTFlTB/FEjA5DSvqP67Es+xC4auZspGMxAkbACBiBeYuACVw98dfCX8/H/ZgRMAJGwAgYASNgBIyAETACRsAIGAEjYARmDQLRsweeQiBcbL311s2LX/zi5KHpjjvuSEScaBTUFjl9yBIQtCCErb/++s0yD3oYyo3v0ejAsQhh0eAKUeSyyy7rhZtILXn+IH9gOO0ybOFZDOMQwpf0EC6i0ScSLPpkJhp4IJ6Qh1zilkoyUkWSA4bwu+66Kw+WPJdpi7/vfve7zQknnJAIYnjiwIgE+a1ENKMsttpqqxTftdde23z+85+fyxA1JJ9EIkN9JHDJQBm38stfgO072cYTEdb5M/l5G4Grtmzz+ON5JLrxHt///vcbjOeUUZvI2NdGAohb1kQDWyk+jPK0HYzDz3/+81PdzeNVXec6hAt+o0xXOcQ0OIY4wFZeeCzbbLPNpoiSbQSuEgmBeOQRIrbdPmVbCkd8baI42+onxmZt3XrzzTcnDyz77rtviq5LB2AQhWwTyymSEyCxRk90RIg3LBFXo2evmnCUg7wbss2TiFo5DiKwKZ9sA6b3yz3MKCxeaNBVYPad73wnvWMNyScSZYboKPIR8ZWXLa5H0lQkTtbW/3F0fiTkkTfKG2IuZJCSPuaZSMwA2y984QtcnkvYQhLPQEPbRm2f1la2a6211hQJNWaQfKHTJOoXIoEr1rOh7SiSithqGO9JUSKBCwINZR+F7Z3Rv8iFF17YQOCIgoccbY2LR8RRUttHK150OxgzJomivjxeiwSuOEaKz0CIZbyF0K4gjNfoAsIPwVpjllrdQ3o1ui7Wpb46C52+8847k2QaTzKuzCWSJdmmEuwjOZfnGaPSt0FelhE1j6frXP3P0LFo1BND+tCuvAwd50Tch7ThGK5veaHvSgSu0vv0GYNEvT6UwKW+MqaNXVh6pkSqevnLXz5F7DvllFOaK664Io3laupg7OPaxstsa0yaSBxfalyae+CK76LjPnM2PetfI2AEjIARmDcIaOzBxzSQ0xlL0g/yx7HO++ZugTmD+7lXEPqGnOXPmcA1ywvI2TMCRsAIGAEjYASMgBEwAkbACBgBI2AEWhGIBggIKp/97GeTNyQ8reB1C8MzX5EjkA/YlohfFoZK3mQw0rAVGiQiSBAlyQlckdQiD1SEk4cmCAMYV/ntIyK1REM3ni7wRILELYby+KLBRduZRaPP2WefnbZAy8O1nUcCV5thHiMVxnlE2EBOWGyxxdK1nJSTLj74j3JA9E4iOOBJDY85JaFsIFEg2iqtNp/EIUN9JHDJ2xr32/KvvPPMGWeckchRHHdJicA1Ttl2pQVOGMIhBkThfWgbkN+or9p6j2dkKIsemGLYSCKIBjaewTMD3u2WmUN0xIgc8VEcuRFRdR3vD+Q1l+kqB9LBs8SGG26Y8s3icUnaCFxnnnlmc/GcLYBykQcXtd3ooS/WrzzcEFJpyQNVHl9+vsEGGzRbbrllutxVVyMJRJ5VIjlBXg5j/JEcEMkuNeHiVrWk0aft4TUE0pFInfm2YjGv+XEbySd/Lp7X6ijiiN4foy5WnLl3tNr6P47Opy3gwUxkmvjuEDbwUAmBKHrpicSMNmJBTlIcR+/1eb+2ssX73JJLLhlfKx1HkjcX1C/EOj1OO4qkIto7nsqiRAJXSVe85CUvadjeFRFZPYaPbbcPgau2j45pxm1juY7HMDyH5e0WEhHbP+b6P8YVt7XDsxt9AmUoyePU9djPoAvou4ZgLQJXre4hvRpdt34govfVWfo4Qe8+CpM4joJ0A5E6F0gxjL8YC+CNc5SM026jnujbh47Kz9BxTm0bZnveoX1MbNOqZ/F9ho5Bot5r07Mxfo67xnSxLCP5WnHE+YQIXLV1EK96kD4Rxu/Ru6DSi1uyx/Gl3qFE4KqZsyk9/xoBI2AEjMC8QcAErp64m8DVEyg/ZgSMgBEwAkbACBgBI2AEjIARMAJGwAjMSgS0xRIGAQwDMnpjkPr6178+tS2YDFSvf/3r03t87nOfa/BOI4kelXSNX4xkeCzA0wwiklI6mfMPQgV5wJCo7aPw5qMtyErGWIUt/YrUIhIIz8Ttt+R1qhQ2GsguuOCC5mtf+9pcHrj6Gn0UdyRGdYWVR4YHHnggbYWkMlE8o34xHGK0VTxdnh2iUaxE4BqST/IlQ73KiXIkH0OEbeouuuiikUFKBK5xynZUgk9+8pObHXbYIXkeKpGUIC188pOfbNhWCZGhjC9iMcTn0kbgwigKuSAa0wlL26EeQ/Ihfc5LWyiWCGPTVQ4QM9ET2l4yviNeX3h3yAZIG4ELD0MQGnPJCVx4aEOvILfccktz5JFH5kHSucgUsc0XH5xzMXoCufPOO1P5tT2r69tvv32z9tprp9M27xfcjESEEoGrRAzpQ+DqG+4FL3hBI698yvuoX8oSQ7Pe76yzzmogr/aRNpJPV9haHUWctMf3vve9KXp5GFt66aWn2kT0CDNO/a8x9Md3hpTLVokQPiBjloS+hT4Gif1OW9vICVzj6L0+79dWtuMQuMZpR5FUVCIwxH6NcQnjkyiRwPXFL37xIVu/DiVw1fbRMU+0OTCRtG0VLQJXSc8rbCQ3oifx4FijCxgHDsFaxJpa3UN6UW/21XWxLvXVWW1jVGGY/+Z4v+hFL2o23njjZuGFF84fTefConjzwYvjtNs+eiLvQ7vyontDxjkR9yF9IV59h/YxsU1HbGvHIH30njDRb9eYLhK49AGMwvFbInDV1kHpAOIttRGuQ/DS9ql9CFxteRk1ZyMtixEwAkbACMw7BEzg6om9CVw9gfJjRsAIGAEjYASMgBEwAkbACBgBI2AEjMCsRCAa6yCj7LfffimfeIW69957E7kKQwVeh9gmBCNIvvVYNN6x+I/XjWuuuabhq3QIHYiIYTmBi3siYHCMd43NN9+8WWONNThNhthIFEsXO/6VCFzR05i8VZWiwOi+3nrrpVtsLQjZq8boo7gjgYstIEtb9mCMwjiPaBuWiAcEKYgxXQLxC/KKjPzRc0QeLhp5brjhhuaYY46ZawvFIfkk7pzAxTW2bsKNP15APvWpT3GpU+67775eHtZKBK5xyrYzU9lNto9jC6YVVlhhiozII5E01GXs49kSgQtDO9vwiLxFm6Pe4VVEXnrwrrXEEksMInCR3nSUQzT64fGIfNLWIUNh8I7ky3EJXGzbJyIc24iqrvFuUbRVXiyLeD8eQzxjGzJEBMZ4v3Qcy63LAxcetvBeiEC0QxfWkBMIXxMukpl4t5NPPpmoWgW9Amkkbr0kz4OtgcKNNpJPeOQhh7U6ShHJ2xrYQvJlq130LEL7o5+S1Nb/cXS+0tYvnhTpy/COQttQO+c+295hhOlDzBBuquPj6L0+79dWtpA9GA/korqk62qr0QPXOO0ojlNmA4Grto8WPpQfpIycGFwiM4u8kY+7FBe/UV/QT0IiFNl3iC4griFYi1hTq3vyvJfIKSWSa43Oih7P+CChRCImPxLGrmyjmAv1H3Imeof3hmgkGbXd9zjtto+eqCFwKe/8jhrn1LZhwkFoQvr2MW0ErtoxSB+9lzIY/nWN6WoIXLV1MBJMITHzkUYu1EltzziKwDXunC1P2+dGwAgYASMwcwiYwNUTawZdFiNgBIyAETACRsAIGAEjYASMgBEwAkbACMyvCLC1yZ577pmyD3lkqaWWauJ2SLvttlsyVHENbwl4H4BwI9IRAffee+/k5YrjaDjgHIlGqxKBKxqm8MS05pprJs9c+ZZYf42t+3+JwEUIeX5p847EM9Eoe9BBByVvYTVGH+JCIoGrjYACKQgSAnL55Zcn/KKBim0t+bo/F8gteINArr766rSND4QAtu6C3ICRG2N/LtGAdN555yUva7X5JG4Z6uWBi2tgBzGJfOARoLT9JWnyh+D1S0S/dKHlX4nAxaO1ZduSTDJ+yzMKZCqIiFHwMAWRBJIaAsEKslqXsY/novFT7SRuBRXJDjwv0RZx4CmjPPdU13NPIQo3HeUQ80L6eNeLErdYGpfARbwq29L2P9zHyIsughgjcgvXu0RxthEd2ZpJW8d+4xvfaO64445mr732SlGyBd5RRx31kOhJH9IrhIyotyKxoi85gchrwpE2RFlE3vzSSfaPrS8hFoEphDRIiaSHtBFc99hjj2allVZKz0g3tpF80kMt/2p1lKKLxA30xqabbpq26y15Hayt/+Po/Je97GXJUxikmW9961vKdvqlfNAb8l6nrfxi/9fXAxcRqh5PR59WU7bxZdUvRJ0GOaS2HQ0hFc2EB67aPloYRbIndVd1Ah2f61URuAjbRt4QiVUkr1pdQBpDsBaBa5z0anRdjc7C+6K8krVtaY0eR/dDgMOzJoR2xmgrrrhi6uNLJPzXve51zaqrrgp0aaxwxBFHpOO2f7Xtto+eGELg4h2HjnMgrNW04Zryol0w5kNUzziuHYPU6PWuMV0NgSsSp4bUQeYI1EPk9NNPT1t2ppPwj7pN/IjGlxzrHeIYatw5G/FajIARMAJGYN4gYAJXT9xN4OoJlB8zAkbACBgBI2AEjIARMAJGwAgYASNgBGYtAvKOpQzKExTnq622WvPa175Wt9IvWytC/pHgCQXvIgiGW8hKUTCIQYpASgQujH+QHzCeQUbRtlN49zn22GNjVCOPRWrJyRy6TgSf+cxnkkEoRgbxCW8/yoO2cKwx+ijeSIyCAAehICe8YJDFqwmCYe/uu+9uIqkHUh3Y5BK/yD/ssMMS8SIaEq+88sqGraKiQDgiD2xbiWD0xctTbT6JQ4b6SOCKxqHzzz+/Ofvss3l0SihvDI2QbzA48y4lktdUgAcP2ghctWWbx69zcKJNUBe0VZvu6Te+ozzCyFDWRqgoEbi23HLLBtITctVVVz3Ea1IkPQwlcMU8TqocpCtK5DzwOuCAA5pFF100vc8kCFwi4RAh3uLwGhcles3L23x8Lh5HQkS+FSzPxe3RaCOUJ/WV96OeohsgaUVhi6itt946XdKWppzUkBPGCSfjNnHQXiASRYke+KSL8QJION6PcoVcgh6WsP5NG+M+REUIi4hIPhyXyGlcz6VWRymeSNiDgId3HgSiHX9Rauv/ODof726QcagnkFfBM0okOMqbWx9iRu6Bizhr9V6f96sp2/ie6hcigYt+vbYdDSEVzQSBq7aPBqNIQqQ9oTP32Wef5M2J+/TJ6B1J1Fdxm1Ddj1vN4oGOfgip0QWEG4J1iVhDHH11D8/W6MganRW3YEV/o8fy9hm3vdMYivEv42CkNL5lPHXIIYek+20E2HTzwX+17baPnhhC4KoZ5+Bpr6YN15RXmweu2jFIH70Xy4njrjFdDYGrtg5G4leJrMyYmj6CX2QUgWvcOVtKxP+MgBEwAkZgniBgAldP2E3g6gmUHzMCRsAIGAEjYASMgBEwAkbACBgBI2AEZi0CkQxEJi+88MLkFYnjSK7iHIHoFD0mRQMXBkS2zcNbF6QoCCrPfe5z/xpwzv+S8YGbbN247LLLTj3HAYYitvgaIjKO5WSOaLyBTIVnK4yPCPnEmCfiGJ5dwACJ4eL1dHPEv0iM4lEW3PDeA0mLtN70pjc1yyyzTIolfh3PhUgiYYu6k046KRkbKQ9IEKusskoKB84QiBAMShBeIFog55xzTnPuueemY4gOEBrwsIZEwtU4+ZShPsa3yCKLpO3BRAjBmASZB8F7FcZqMEfwLkZZ9BEZ0zC6YiCmbkCUiGU0pGy70pRHE5752te+1lxwwQVTj4MXZYABNBJalL8hBC48dxAXQlxs+8Z7YRTGYIuHIZUn7w2xQkZn1fU2D1zTUQ4iqJBfDNyULZjTdnfaaacGz3ASvJexFSlSa3yOHuooawidN954Y4oTEgX6RfjkbT49VPjHdnZvfOMb0x3yTpukHhIP78BWREhsW1HH0Y6pf7/5zW/Sc+g3ylD5oA1CjkJqyAnjhFt77bWnvKpQLw499NDmnnvuSXnBC8ob3vCG5LGKC/IAxfGrX/3q5PmQY96Pdg2RBJ0COUukvNhe47s7NFy2AABAAElEQVSdeeaZyVvNqO1ea3UU+ZLghQ5PMBLaAwZp2k+U2vof9clQnS+PleQDrCAIUm8RvJ6h+/BOiEDMYYu2Pm2jROCK+Ryi92K4tverKdv0Ug/+U78QCVzcqm1HQ0hFM0Hg4l1q+uhIFCcO9BlEddoF+lwEjLjNXCRwEYZ7/EFgpP8AU/oiJHrnqdUFQ7COBK7a9GJdKxFBS1so8q41Oit6EoScTX8Ljoi2+UOPo1MoDwj3cWs62itEe8axCOUGXhCtEcjqkKW7JLa/Ie22j54YQuAijzXjnNo2PLS82ghctWOQiHub3svLrWtMR9mjA5DYLyqOSAY85ZRTmiuuuCLdqqmDBNR4j2M+kjn88MMT0Zp8MIfThyDcH0XgimU4dM4W9UOcK5KuxQgYASNgBKYfARO4emJsAldPoPyYETACRsAIGAEjYASMgBEwAkbACBgBIzBrEYiegchkTpyKBsQSOWXJJZdMBgQRGIgDw5SMkRjDMOxjkEHwfoBhhG2+JDmJCHIE200NFRk5SmSOnKiGYZ28KZ+klXu/qDH6KM/5O+k6aUasOMfLVvSWw9aWGHr0HM+AG54MJFzDGwFeuiRbbLFF85KXvESn6f14z/iOxEMZ867IOPmUoT4SuIgzekbinLzGOsA1DKdsqUZ++kg09PJ8JL3VlG1XmpFYxXPUZ/IJ8U5lwnV50eG4y9jH/djOZGCjXPDeIfIgz4ET2xtJolc68oHxke3ZVNfbCFyEn3Q5sP3e5ptvrqylcuVEmIARedc5Bm/0xzjGZ8iVSyyxRGua1C3SK7X5qUDZAdtAyejOLeJAlG/OqduQLRHKB2N3bH+UBc+LPMFz+bZIsc4OISfUhiMP0bsG5+QTiTogb6/oZgzj8s7H8+iN+G7UM3Qyv0gs03Rhzj95o9N56bdGR8V48rZJGUGqKElN/R9H50POol0KN+oRxDKwj206euqJOA7ZQpH3rdF7fd4v5km49ilbPat+ISdw1bajSBoo5SOSPWaKwFXTR9N+IBYieRuMBCjqDR60IPOiPyE+58Iz0lfci57/9GyNLhiCdSRwkWZNerW6rkZnQQZDj2ssSp7zPotrOWk7lgG4owNp0zEe+h/GM9K3xNMmNe02tsk2PTGUwJXrUvI+apxT24aHlhfPQ5RGYj2rHYP00Xt5eXWN6WoJXLV1MNc35DWOFeOxxpc8o3eI4+Vx5myQ3yHBI4xDGQNbjIARMAJGYOYQMIGrJ9YmcPUEyo8ZASNgBIyAETACRsAIGAEjYASMgBEwArMWgWiIwAiAcSnKjjvu2LCFBxK96sRn2CJxm222mTJc6x5GA7yQsMUiWylKICxF4hHXMdbIIBa9RylMn1+RWtrIHPFd8vhKWzbiXef1r399ejR6t8jDls4jMQpiB8aySNQhDMZ9jHHXX3/9Q6JguzO8dEVShR6C4Ea4H/zgB7o09fvCF74wYS0SwdSNOQd4BoLsgHchyTj5JC6MyJGQoHi78gFZjXoBwaevQLjBg5AwBDtt50YcQ8t2VLqveMUrGoyF0UiuMJBb8D5w1lln6VIiYlFWbeTDEoGLwJQzRuyFFlpoKi4OMKYS/0033dTsv//+U23r4osvbvB4JE8U0TA3VwQPnky6HHbZZZcGz1i53H///Yn0RDmwrRfCO7CVHPpB7f/4449v2AoslzbjM/jTBqmnuVx22WXJm9tKK600iMBFPOgrjOK50DZoWxBBolC2eFDSdrHxHkZ9ygSDZpQ999yzwfCKDCFw1YZT2tHbia7xSz7ZhpIyoA5HQffyfs94xjPi5XR83333pS0s5VmMixiiaX8ipHANAoMMC5y3SVedLOmoPJ7YVxx99NFTXtny5zjvSqukh8bR+aRHPcXDSSRscV2CzsbrG30t0qdtlDxwKb6heq/P+41TtuSrjcDFvZp2FD3GsMWnvCYRHwLW2mq41I9DaoY4iJx44okNXi2jREJNqZ3GZ+PxkD564403bjbbbLMUHL1IW2GcEiXmQ2RykYfo72655ZY0jsj7JPpfPFmqTsU4h+qCIVhHYo3SHJreOLpuqM4ij9Q/+lt5I1W++QVjPGjlXrTwnLbvvvum7VHj8zpGZ4E/fWBfGdpu++iJtj60K09DxznEVdOGCTekvGKbzutZzRikj94jj1Eg1/OupTFdnDfhFZR+KEr0wJXrnJo6SNzPfOYz05xA8ySlB6EQb3KME5FI4NI75OPE2jkbY3B5AI6eApUX/xoBI2AEjMD0IqB5Fh9VQiZnTMiaD38c67xvLhZYa6215t7wvW/IWf6cCVyzvICcPSNgBIyAETACRsAIGAEjYASMgBEwAkZgxhDAoLH66qsnwxgGf0gaGD4kEB/48htjA+SInEAg8hUkA4gBeAKYDll44YUbCB/LLbdcSgPPFXgKyY2p46YdiVHaWodttCDDYYC588470/ZJOQ4xXRbh2J6OL94hSuC1DCMu3ju6BJITW6bxBzGItNjmJXo9U/hJ5FNx5b94LFpxxRUTiYV3xih99dVXF/ORh207p+xYpIQAqK2M9Oyky1Z1GsMZmLKlEnUbwl0kwSn92l/eh7ZDWVMPIUr+9Kc/nYqONUjqKxhiLMwJDFMPthxMuhwWX3zxRFRhy0SMq+QJ47cE0hLeiChv6t4kBCP6aqutlrYKYltAiEjjtlkWvqmfYIuuIq8//vGPO7PLu1MHITrxfrz/HXfc0cvzSmfEE75JnYFIR92F2MFWSWzjFMuplCTGZcKhr/EAxLvxnm0CiQUPQZAYYp1te17Xh+gohan9nXT9H5UP6hV6Fb1NO8DIApb0e5TDpGXSek/5qy1bhe/6nV/aUdc7cK+2jx4Vr+5HAhfjIogtkMHp26lLfepUrS5QHob+znR6Q3UW70P9o31C5KJ93jVnWzr63S5Bl6oPQqdKP0Kgq5HpardD81I7zqltwzXllb8TaaNjZ3IMkudh3POaOkjfQr1lzAIRlHGQPIUOzY/KnTZQM2cbmp6fNwJGwAgYgfERMIGrJ4YMRi1GwAgYASNgBIyAETACRsAIGAEjYASMgBEwAuMhwBZp8qaEh5IjjjhivAhnQegSMWoWZOshWZhf8vmQjPuCETACRsAIGIGHMQI5geth/Kp+NSNgBIyAETACRsAIGIEOBEzg6gAn3jKBK6LhYyNgBIyAETACRsAIGAEjYASMgBEwAkbACPRHAE8SeK/AkwHkLW1NxjYweDaY32V+IUbNL/mc3+uD828EjIARMAJGYAgCJnANQcvPGgEjYASMgBEwAkbg4YuACVw9y9YErp5A+TEjYASMgBEwAkbACBgBI2AEjIARMAJGwAhkCIg4xJaJELkQtsX72Mc+lj05f57q/ci9tlCcjW8yv+RzNmLnPBkBI2AEjIARmC4ETOCaLmQdrxEwAkbACBgBI2AE5i8ETODqWV4mcPUEyo8ZASNgBIyAETACRsAIGAEjYASMgBEwAkYgQyASh7j1+9//vvnoRz/aPPDAA9mT8+dpfD8TuObPMnSujYARMAJGwAjMKwRM4JpXyDtdI2AEjIARMAJGwAjMLgRM4OpZHiZw9QTKjxkBI2AEjIARMAJGwAgYASNgBIyAETACRiBD4PGPf3yz4YYbNgsuuGBz9913NzfeeGPz5z//OXtq/j19zGMe06y++urpBW699dbml7/85ax8mfkln7MSPGfKCBgBI2AEjMA0IbD88ss3iy66aPO73/2u+d73vjdNqThaI2AEjIARMAJGwAgYgdmOgAlcPUvIBK6eQPkxI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBHojYAJXT6hM4OoJlB8zAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGoDcCJnD1hMoErp5A+TEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEeiNgAldPqEzg6gmUHzMCRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkagNwImcPWEygSunkD5MSNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYAR6I2ACV0+oTODqCZQfMwJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRqA3AiZw9YTKBK6eQPkxI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBHojYAJXT6hM4OoJlB8zAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGoDcCJnD1hMoErp5A+TEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEeiNgAldPqEzg6gmUHzMCRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkagNwImcPWEygSunkD5MSNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYAR6I2ACV0+oTODqCZQfMwJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRqA3AiZw9YTKBK6eQPkxI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBHojYAJXT6hM4OoJlB8zAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGoDcCJnD1hsoPGgEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEpgeB//7v/24WXHDBZoEFFmge9ahHpT+Odd431QXWWmutv/R92M8ZASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMQNOYwOVaYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARmEcImMA1j4B3skbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYARO4XAeMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMALzCAETuOYR8E7WCBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgApfrgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGYB4hYALXPALeyRoBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBEzgch0wAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAjMIwRM4JpHwDtZI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyACVyuA0bACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYgXmEgAlc8wh4J2sEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETCBy3XACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASMwjxAwgWseAe9kjYARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACJnC5DhgBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBOYRAiZwzSPgnawRMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAELtcBI2AEjIARMAJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIzAPELABK55BLyTNQJGwAgYASNgBIyAETACRsAIGAEjYASMgBEwAkbACBgBI2AEjIARMAJGwAgYASNgBIyAETACRsAImMDlOmAEjIARMAJGYD5H4OUvf3mz+OKLNz/72c+as846a9a+zQYbbNA89alPbR544IHm/PPPn7X5dMb+isCaa67ZLLPMMunkq1/9avP73//e0DzMEfjHf/zH5nnPe17zl7/8pTnmmGNm5ds+5jGPabbaaquUtyuuuKL58Y9/3GyxxRbNQgst1Nx2223Ntddem+6tsMIKzWqrrZaOTzvttOZ//ud/mgUWWKDZeuutm7/5m79pbr311ua6666btndceOGFm0033TSlefnllzf33ntvSmudddZpllpqqeZXv/pVc+65505b+ptttlnzd3/3d82dd97ZfOc732le+MIXNs94xjN6p/v3f//3zYYbbpjyd+mllzb33XfftOXVEY+HQG3fSl38h3/4h+b+++9v0PHjCu2S9hnb4bhxOvz4CNTWj/FT7hcDuvtVr3pV86hHPSrpROnKfqH9lBEwAkLgmc98ZrPGGmuk06uuuqq56667dKvq1+OAKthSoJLeXXnllZu11lor3T/66KN7R942nuwdwYQenB/mCLwqOK+yyirprb/85S83/+///b9qBGZy3lCdyRkMWKrXM5j8jCZVmq+1tcVHEi4zWgiPkMRG6SzWeldcccXmSU96UnPZZZc15513XvP85z+/WW655Zrf/OY3zTnnnDNfIsW6xMYbb9wsscQSab3kfe9733z5Hs60ETACRsAIGIHpRMAErulE13EbASNgBIyAEZgBBD796U83j3vc49IE/q1vfeu0p4iBdumll07p3H333c0f//jHXmkqn7/73e+affbZp1cYPzTvEPjwhz/cYLxBDjjggEQQVG5YMFpwwQWT4f8///M/ddm/8wkCbeX3T//0T81KK62U3mK33Xabkbdpy0tb4ksuuWTz/ve/P91mwfLUU09tPve5zyXj/49+9KPm4IMPTvfe9KY3pcVNTvbbb7+GSc/f/u3fNkcccUS6//3vf7/52Mc+lo75x+LhE57whPTcJMhKLKySB+RLX/rSFFnr3/7t35onPvGJzR/+8Idmr732Sven499nP/vZRFS75557mgMPPLA55JBDmsUWW6z505/+NJWvrnRf8pKXNDvttFN65KSTTmouvPDCrsfnm3tPfvKTm0UXXTQZ9G6//fb5Jt9dGa3tWz/4wQ8mUvWk+mQZpCFH0n9YZgcCtfVjpnIPifAd73hHSu7EE09sLrroopFJ145DR0bsB4zAfIzA61//+gbSAcIHPWecccbU29SMcR6u44ApUKbxoKR33/jGNzZ8HIMMGWO3jSenK/tt4/L5YY4AJjGfe+65Z/PnP/85QVUz/uuaN0wX/rM53lK9ns35HSdvpflaW1t8JOEyDqYOW0agTWfx9Hvf+970AZZC8vHZoYce2nz0ox9tFllkkd7zeoWfLb+Q1li3hiQrGdIvKox/RyNQ0/eNjtVPGAEjYASMwEwhYALXTCHtdIyAETACRsAITBMCWjTiC6yZIHBtueWWyeMNr/OZz3ym+e53v9vrzZTPSRmLeyXqh6oRaCNwQeqScf7qq6+eIsRUJ+SAM4pAV/nFBcSZWETryksbKHiV+sQnPpFuQ96CxCWyUiRlDSVwQezCUAMhERzGlbZF/pJBYNy0SuHRzZAcIClB1NECcF/9+3A13P7rv/5rs+yyyyYvc294wxtK0M1312r7VhO45ruirspwbf2oSqwiUA2Bq3YcWpE9BzEC8w0CXQSumjHOw3UcMBMFWtK78wOBq2tcPj/MESjbmM9I4KoZ/5nANXdrKdXruZ94+JyV5mttc7tHEi4PnxKePW/SprPwGM4ahwQD7iWXXNLgWXx+J3DtvffeU57S8ZL+29/+tnnb296mV/XvBBGo6fsmmLyjMgJGwAgYgTERMIFrTAAd3AgYASNgBIzAvEZAi0bzgsB12GGHTW1ZNgqHV7ziFWmrx1/84hfNmWeeOepx35/HCPQhcLE1W1xYmsdZdvI9EIjGmbz84gLiTBO48ry0vQpfah511FHp9uc///nmW9/6VoMeeuxjH5t0EcdIicBF2F133TV5j7v55psbtmCU1Bg3Fbb027bIXzIIlMKPe+2Tn/xk8ih20003Nf/+7//evPOd72zYVvLXv/51rwXSpz3taQ1bNiBs1cBWlQ8HeTguYtb2rSZwPRxq9Oh3qK0fo2OezBPjEriGjEMnk2PHYgRmJwKTJnA9XMcBM1F6Jb07vxG48nH5/DBHoGzZ6lFbqLMdvLZQrBn/dc0bZqIezbY0SvV6tuVxUvkpzdfa5naPJFwmha/j+T8E2nTWc5/73ORFnCevueaa5vDDD58KtOmmmzZLLbVU88tf/nIub5tTD8zyAxHQ/vKXv6Q1G3lKnOXZni+zV9P3zZcv6kwbASNgBB6mCJjA9TAtWL+WETACRsAIPHIQmF8IXI+cEnl4vKkJXA+PcszfYn4ncPE+ELgwqsgDoMhKl112WXPsscemVy4RuHIs4vnDjcDF9pC4zJeXvH333bdZddVVGwi0kLkeqeJFzP8reRO4/g8LH807BEzgmnfYO+WHFwKTJnA9vNCZ929jAtewMuiarwyL6a9Pe/xXg9ojN8wQAtcjFyW/+XQi8IIXvKDZY489UhJf/epXm6985SvTmdyMxq32BXELT4mW6UPAfd/0YeuYjYARMAIzgYAJXDOBstMwAkbACBgBIxAQWGWVVZr11lsvXbnooouaW265Jdxt0kQdl9lMaI888si57i222GLNtttum659/etfb+68884mErj++Z//uVlnnXUavhB8+tOfntxR8wzbjN17771zxaWTpZdeutlmm22Sd6yFFlqo+dOf/tTgzevKK69szj///KkvV9m67DWveU2z5JJLNuQDIc6f//zn6cuv++67T1EWf/k68SlPeUrzk5/8pPnmN7851zMQDXbZZZcU9xOe8ITm97//ffMf//EfKQ+QMiwzj0CJwPXa1762YUH92c9+dsoQA8lbb701fRV41VVX9crkwgsv3Gy33XbNcsst11Cn5Db9Bz/4QfLMRpxRXvrSlzZLLLFE8gB08cUXN2ussUaz9tprp23Q2A6O+v3FL34x1dlJhItxvPCFL0xfctOWIAzdddddactQvkrni8GSDH0/Fud4J9rcCSec0HC++eabN8Tzuc99rsGDEjKJNjKq/PKv6yH8gAGem/iC/Z577mloj23bpg5591F5KWGra+DyqEc9Km0fQL3RV5x4ijrllFPSYyUCF2HQMwhfsuKFa+ONN26e9axnpa/1KWPe8/rrr2/QZ2eccUZ6Vv+os+uvv36zzDLLNI9//OPTM9/73vcSJuisKG1faWvB8g9/+EOz1157pSDEh7cr6tRJJ52UtnJk66LVV1895Qe80Zl4z6JvYPuwlVZaKelTvrwFg9NPP31KVxPpIYcckvQ0Wy0cf/zxze67796stdZaSf++5z3viVktHvNV74YbbpjusWjM1pJRyN+LX/ziVC/B9YEHHkj1g7aYt+EYLh4TjnJC8KSGLtliiy2aFVdcsXnqU5+a4rzjjjuKekHx8HUy+aRfetzjHpf6PMqO7SWi17CVV145lR240c8h1157bepnjz766OZ///d/FWXn75prrtlstNFGCXu21qHcKYNvfOMbDXWhj0x6DNDVt4IxZcX702+TV96b/p16AM5t22oOqe+8NzgilCP9B97uaCe0KQiSJZ05CosUYfiHIYM2QP7RjWyDST4Zh3zoQx8KTzZJd/FV+xD9Td149atfneJE51IvaHcXXHBBw3itJH3rYB6WcIzXaGukQb/y7W9/O53jPeS//uu/kvc7wo3TVkr1g2uM/UYJ+TrxxBPneoy8bLbZZg3EK+oUY1V0EGVC2bfJM57xjGbddddN+hZde9ttt6X3ffSjH9284x3vSMFIqw1nHhgyDh2az1F9MXpt0nq6Dav8+iabbJL6g8UXXzzVf8qFsQ945X0P46VXvvKVKYovf/nL6XnaImVF/821PtJ3bpDHRTlvtdVWqd3R/v/4xz8m4jDpxvoxJJ/kfeutt05xPulJT0px0uYvvPDCpjT23H777ZtFF100bSF87rnnJh1Im6KfoO8FO8YLd999d8r+E5/4xGbnnXdOx8w96D9KQjks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YzLPQqZryJSM/2TW/35XnrfnXXetc/beZ59z3/fe3/P5vO85Z++11177u9Z61vA8e61pVl555f8EiQiIgAiIgAiIQGUCRx55ZAx7xx13hO985zvx+1prrRU+/vGPx++//vWvwwUXXBC/b7zxxuEDH/hA/H7YYYeF6667Ln5/97vfHT7zmc/E73/5y1+CxRkPvPZvmmmmCZ/4xCfC9NNPHyZMmDAU5/e///0w88wzh+effz7suOOOQ5dYHD5du+yyS1hiiSViGLvf0AUTv5CmN7zhDeFf//pX2Gmnnfyp8La3vS0ccMAB8dgtt9wSfvCDHww773985CMfCTPMMEMg3PXXX+9Pjfjvm2yySXjrW98a7rvvvnD++ecPS+/rXve6mMdvectb4vHjjjsu/OMf/whwRW644Ybwox/9KH73/8i7n/3sZ4HrX3rppfC5z30unm47P4j/5z//eYz78ccfD1/96ld9Moa+r7/++mHs2LHh3//+d/jtb38bj88222xD5feqq66K6bULuqVzpplmGioPt956azj44IPjpf46nplnR2A044wzhmeeeSZ86Utfisf8v3XXXTdsvvnm8dCvfvWrcOGFF4Ytt9wyrLnmmvHY4YcfHq699lp/Sfy+zz77hPnmmy9+9/VrkoDuQKlOEqRbOjfYYIOw6aabxtgsneutt1746Ec/Go95FvHAa/+snv3nP/8J22yzzdCpTmkZCpT5YukkP7/whS+E6aabLmy11VaBcnfllVfGeugvo/x+97vfDdNOO208vP3224cXX3zRB5nku8/LnO4YM2ZM+PGPfxyvs+dG13AdUrdudCqPMcLMv7e//e3hK1/5Sjxz++23h4MOOmiSUDvvvHNYeuml4/Gvf/3r4ctf/nKYffbZA3nxxS9+MdaJ9CJ0OTodOeOMM8Ipp5wS9fBPf/rTeOzGG28Mhx56aPxu/9773vcG9CByzDHHhEsvvdROxU9fVo0nur3tOL/97W/35fl4iF133TUsvvji8Xm23Xbb8Morr8TvpTaJk74cEQ7+CG3aN7/5zfi9yr+f/OQn4fWvf324//77w3777RcvIa4ll1wyfk/1Xze2XJR7nqb8iI/6hT6mHpJO002kl98rrbRSgBti519++eWw3XbbxWP2z+p3HX1p1/by6XUu6UKvUE8++9nPxk8ft2f36quvxmc3feTD+Xy4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PR/1EuMfWzLhHIJTje+bk0f0EylD9EW8dCqDPpx9HyQX6gCOLzkDpaWn7idjYV5UwtnR96PrxkN4VufE6RMnXbjgNEc9oI+OcbuuoAvQgfSxGefhuFOlnah7n6bh0RWMZSlL9957b9Snnfr+jEkoXzg8MGZEP3QK3yldTdvCbtf1o03DoZbVVBBrQ6qM25uMs7lHpzo8qHaEdIw06cezd2Ld9Pn7kc5+xJk+Hzqv6dwEcdXVJ23q7vRZ6v5u0me1ORT0IXOAtBM4fJnQjjCfi9MuK26l87kWbnJ/km+UL3uBiLkpXp5C0tVtq6S1Hzq4yn3bCtNJJwyiHrb1HIpHBERABERgdBFgTMXYkT4JfTL++G6/qz6NtlCsSkrhREAEREAEREAEREAEBkaAySZW50BwQvPbDVkibOs0jDCscNDEGGNx6VMERKA/BPyqTr/85S/DRRdd1J8bKVYREAEREAEREIGBEbAth3Mrjw4sEbqRCIiACIiACEylBFj90V40wKE6la233jqu+sbxgw46KNx+++1pEP0WAREQAREQARFomYAcuFoGquhEQAREQAREQAREQARGDgHeyLZtO1mNgxW2/DYqbDmz6qqrxgTzNv3+++8/chKvlIjAVE6A+ssbymydyvamrE7DaiPbb7/9VE5Gjy8CIiACIiACo5/AaqutFthWjj46242ykq9EBERABERABERgcAQOOeSQoe1z2YKXlRRN/HbU6Za4FkafIiACIiACIiAC7ROQA1f7TBWjCIiACIiACIiACIjACCKw7777xu3wSBKra7G1DEuds8UlbxoiOInsueeek2xtFE/qnwiIwGQhsO2228atPFke2uTMM88MJ510kv3UpwiIgAiIgAiIwCglsMIKK4R11lknsLKmbdU0Sh9FyRYBERABERCBUUlgs802C+uvv/5Q2tnumy1hmS/jBSqEebRDDz00bn0+FFBfREAEREAEREAE+kZADlx9Q6uIRUAEREAEREAEREAERgKB6aefPuy9995h7Nix2eTIeSuLRQdFYLITwIFrpZVWGkrH/fffH/bbb7+h3/oiAiIgAiIgAiIgAiIgAiIgAiIgAiLQnMA222wTVl555eBfnLLYcN467LDDwvXXX2+H9CkCIiACIiACItBnAnLg6jNgRS8CIiACIiACIiACIjAyCMw///xh9dVXD3PMMUdM0N/+9rc4CfXggw+OjAQqFSIgAsMIjBs3Lm5xypZKt99++7DtHIYF1A8REAEREAEREAEREAEREAEREAEREIFGBGaaaaaw3nrrxRcfx4wZEyZMmBBX3GLeDCcuiQiIgAiIgAiIwOAIyIFrcKx1JxEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREYRkAOXMNw6IcIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIDI6AHLgGx1p3EgEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREIFhBOTANQyHfoiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIjA4AjIgWtwrHUnERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERhGQA5cw3DohwiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAgMjoAcuAbHWncSAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQgWEE5MA1DId+iIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiMDgCMiBa3CsdScREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAERGEZADlzDcOiHCIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACAyOgBy4BsdadxIBERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERCBYQTkwDUMh36IgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIwOAIyIFrcKx1JxEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREYRkAOXMNw6IcIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIDI6AHLi6sH7zm9/cJYROi4AIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiEA9Av/3f/8XL5ADVxducuDqAkinRUAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEahOQA1dFZHLgqghKwURABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABCoTkANXRVRy4KoISsFEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAQqE5ADV0VUcuCqCErBREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEKhOQA1dFVHLgqghKwURABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABCoTkANXRVRy4KoISsFEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAQqE5ADV0VUcuCqCErBREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEKhOQA1dFVHLgqghKwURABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABCoTkANXRVRy4KoISsFEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAQqE5ADV0VUcuCqCErBREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEKhOQA1dFVHLgqghKwURABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABCoTkANXRVRy4KoISsFEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAQqE5ADV0VUcuCqCErBREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEKhOQA1dFVHLgqghKwURABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABCoTkANXRVRy4KoISsFEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAQqE5ADV0VUcuCqCErBREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEKhOQA1dFVHLgqghKwURABERABERABIYRWHnllcOcc84Zj5166qnhP//5z7DzuR/TTDNN2HDDDcN0000X7r777nDzzTfngrVyjD7OWmutFbjnVVddFR566KEY74orrhjGjh0bnnnmmXDBBRe0cq+6kQySQ920dQuf4/fWt741rL766vHSK664IjzyyCPdoul4ft111w2zzz57eOyxx8J5553XMeyUcHLxxRcP/CGnnXZaePXVV3t6rEHzW3jhhcNSSy0V03z55ZeHRx99tFL6V1111ZjPTz75ZLj44osrXaNA3QmgXzfYYIMw7bTThuuuuy7cf//93S9SiKmGwHvf+96ob2adddYwZsyY8Pzzz4enn3463HPPPeGPf/xjePHFF6caFvagSy65ZFhkkUXCs88+O8W0OW9729vC2muvHR+Rvk7Vdrnt9twYT02f0sG95fbMM88cxwrEcuGFF4aHH364twhH4NUjfQy14IILhmWWWSaSO+OMM8LLL78cv+fGAIPCu8oqqwT0Wpvjx37E2SaP9dZbL8w444y12ibrkzOWOP300yuNz9tMM3FRTkjHE088Ec4+++y2o+8a35Q+vhg3blzgGZHf/va3kyWPu2bCKA/Qy1zN+9///jDTTDOF22+/PY7D+oWipKfbLP9N+5L9euY24u0lb3P3nxIZ5Z5Tx0RABERABESgTQJy4KpIUw5cFUEpmAiIgAiIgAiIwDAC3/jGN4L1I77yla+EV155Zdj53I/pp58+HHTQQfHUHXfcEQ4//PChYDiDMUn973//u7KhcejizJd3vOMd4ZOf/GQ8g1OMOWvtv//+cVLthRdeCLvttlvmyv4f6sSh/3fv7Q45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U65MnnNtlrnR4JAzJTlwffnLXw7zzTdfdOD60pe+NHkKUA93HQ3lpYfHq31p3T4LL3+wwiEOADgvtCH9iLONdBFHJweufrVpcuBqK/fK8fg+QhsOcawA6VdoxqGHlZJZqW5qkVJ9aJv1SOI5Why4cLrea6+9Irrrr78+HHvssSMJ46hNy2jvD41a8Eq4CIiACLxGQA5cFYuCHLgqglIwERABERABERABEahBYEp14DrqqKMqbetUA5WCViTA1g4YXljq/6yzzhq6qjTpOhSgD19KaenDrRpHiTPbW97ylmio/OpXv9q3lWmqJrCpA9doYF2VwUgP542hU7uuYxtgVvZLZaeddorby3Cc1QlYlTGVZ555JqyyyipaRSkFU+F3XQeuZZdddmhlP5yd+rWF4iDbGW8wlANXhUIz4CBtljm2xNt8883D6173unD77beHa665ZsBP0/12cuDqzmhQIUZDeRkUC+5Tt8+y0korhY997GMxid/+9rdbWbW3H3G2xXCkOHAxdqMvj1x00UXh73//e1uPWDmeun2LyhFPhoBt83z7298ett122/gkvKTGy2pTm5T6eG2zHklc5cA1knJj8GmRA9fgmeuOIiACIuAJyIHL0+jwXQ5cHeDolAiIgAiIgAiIgAg0JCAHrobgdFltAqVJ19oRTWEX2ApCbCnG1mKTW5o6cE3udE9N969rDJ2a2Nizss3I7LPPHn8efPDB4YEHHrBTwz7lhDMMR+UfI9XIOsh2RmWncnFRwAEQkAPXACDrFo0INOmz0G7jMHnTTTcFHNXbkH7E2Ua6RooDVxvP0mscI7Vv0etztXH9csstF7beeusY1dlnnx34m9pkkH28kcJWDlwjJScmTzrkwDV5uOuuIiACImAE5MBlJLp8yoGrCyCdFgEREAEREAERGFUE5p133rDhhhuGOeaYI4wZMya8+OKLgY7htddeGy6++OJJVqfYeOONA0uT33vvveGCCy4IGA6XXnrpMOecc4YXXngh3H///fFt2ZKRep555gm8fbzggguGaaedNtxzzz3hqquuCq9//evDjjvuGNnV2S6NC0jDyiuvHGaZZZYYJ1tdsMrJKaecEljWH1liiSXiCid8v/nmm8PVV1/N10mElQ1YReVf//pXOOGEE4bOV7nHm970pvCRj3wkzDXXXEMG+4cffjg89thj4cwzzxz25jbPvs466wQc1zDu4zRz5513xtUUYJKKcZ8wYULki4GMZx47dmx8M/kvf/lLfC6uI87VVlstjBs3LuYfby5fcskl4a677kqjLf7u5/14Xsrc3HPPHbcc49lh9Oc//zmWuzRRlpa6ZY63tymrDz30UHz+8ePHx3JHeWVVAlZeueWWW2K+kD9e1lprrViuqRdsFcEKOZRtyubzzz/vg8ayv8EGG8Rjp512WgxPOeI5r7zyysCxNC0Epu5x/JVXXgm/+93vYvldc801wwILLBDLIExYYePcc88ddj//Y4011ghLLrlkmHXWWQNljfvdeuutgcl1ygZpxuj0/+ydCdgtRXH+x7+JS/QB44qoeBEia1BBFNAoiIIgF1AERHABEcGIe6LgHhU31CCIgODCIotKUFBEFkFAEJSgKIsREVcEBfExmsQk/u+vue+X9/btPmemzzl3rXqe75s5Mz093dXd1TVVb1ePok022ST1GY5st/PnP/855fOHP/whld2fnTZfPO/8vBXAVeI14+3FL35xegXbfNx4443dtttu26299trdAx/4wO6OO+5IMo1IbZIZJEYu7bnnnqm/wMdStJNtttmmQ67deuutafsQzrkG0cdOPvnkJBvThYX/4DX9kK0qaSPGZx/qI4cmlXXwhPHJ2LnnPe+Z5oNbbrmlO++88xKPKOfyKOsYx89+9rNTX+ebnrb59a9/neQi277Q72dBrQAu5jCicq2zzjpJHvzqV79KY5t2qNGqq67abb311t28efOSPEFuIUMuv/zyVNfac6OuE2nhCU94QpIn5Md2JMyfzHP0YebKCxdEyMiJ55BPpEO3QJ7Qj84888xiFDI9v/HGG3dPfepTUzRA5NEf//jHtH3V+eef333/+99XsrnjUCcrshGeoq+gIzhNo4/Map7xcubnyIVddtklXSYC19C+AzgBuUmkKLYBZX6kvZhTvvSlLy2iuwCAYG6BvvCFL6QIl+mH/SMaHUAACJ3la1/7mt3tusc//vHpXegAEPoi8vWqq65qGoeM5/nz56e58z73uU8a28hxdKpcpi9SkMIP9FPmVOrPvMxYgr/oVeiW6KvMs+gtyEj4xpxNH6d/Mz6YY5xKfa51TuI59Ezo6quvTuObc+kTyDG2yKIvU+6NNtoo8YMoKcwzjGHu0Y6PfvSjk+5w++23J17R1qWIdEP6B2Vp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/evukksuWSyNX7jf/e7XbbnllunS9ddf3/EXtPJy4AlPeELqt7fffnv3la98JTHiAQ94QPd3f/d36fzyyy9P/a+FQ3/xF3/Rbb/99qlvXnXVVd1PfvKTlmzimRlw4KlPfWr313/916lNaJsVjR75yEd2T3rSk1K1Tj755O7Pf/7zilbFqE9wYBEO7LTTTh36wFD6z//8z+7ss89OesjWW2+dHr/gggt6y/1pzRdDy90nPfx41rOe1TEXoUNdc801fR6LNMsIB6bZfswHD3rQg5JeftFFF6Uarrvuut3GG2+czj/zmc/0rnWtzz/qUY/qNtpoo5TPWWed1f33f/93GpNLuw+W6t67sks5IX1g9913T3rktdde21199dVLuUTx+uDA0uPANGXi0qtF+5sf+9jHdptsskmHDP7lL3/ZnXDCCe2ZLYUnl9f222GHHZIe9c1vfjPxfRqsm0We0yhXngd9bosttkh97r73vW+a13/3u98lHZl5vmSby/OI34ty4GEPe1i31VZbpe8OxsShhx66aIIBv7Chtny7DHhFJA0OBAeCA8GBpcCBAHD1ZHoAuHoyKpIFB4IDwYHgQHAgOLDScuBv//Zvuxe/+MXd3e9+9yoPAA/gED3zzDMXS/Pud7+7u8997rPY9dKF2267rTvuuOMWcaxiTHrXu96VkqPkvuUtbyk9OncNIweALwhnJvkFrbwcePOb39w98IEP7P7whz90Bx98cGIE4K1ddtklnX/+85/vLr744iYGARB629velp4977zzOgydKxKtttpqCawJ7wBZLk/0/ve/v7vHPe7R/fznP+8+8IEPLE9F71XW5z3ved1mm22W0r7uda/r/ud//qfXc5EoOLC8cuCf//mfm4v+6le/OoF2JfcBs1xxxRW98pvWfNHrZQMT/eVf/uWcfPvBD37QHXnkkQNziORLkwPTbL/3vOc93b3vfe/uj3/8Y3fQQQelar3gBS9IYAB+MAb6Uq3P8y2Asxd605ve1P37v/97N6oOS0qHKNW9b11L6ZZUuXm38+/73/9+9/GPf7xUpLgWHOjFgVVXXTUBMfguv+mmm3o9sywl8vGwss1pO+64Y/e0pz1trjn62DzmEi8jJ8tr+2kOYcwcdthhU+HmLPKcSsEWZsKCxwMOOGDkIkuS/uhHP+qOOOKItOBymu9fUfMCOP+yl71skQUn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fpkj4Ag4Ao7AqCHwute9rlpmmWWq+++/vzrvvPNGLR/dHrzRRhuFfD744IPVxRdf3O1yPz/GENh8882rxRZbrPrDH/5QXX/99Y1zv95661WTJk2qHnjggeqcc87pet9qq61WTZkyJVz3ox/9qOv1g7zguc99bvWqV70qPGLWrFnVvffeO8jHjdm0F1lkkWqLLbaoFl100WrOnDnVDTfcMGbLMtIZf8YznlFttdVW1XLLLVctvvji1cknn1zdcccdI50Nf15DBF784hdXkydPrh5++OHqwgsvbHhX/WWDSLP+id3P0pfR+U996lPDxdgef//732tvfMpTnlJtueWWFZ+I68xauAZ2ciyOW69+9aurF7zgBdVf//rX6txzzx0YNk0SXnbZZavXvOY14dKZM2f6uN8ENL8mILDSSitVzIWQk046qfrf//4Xvtf9K53jjeU51zDoqNI5TV1d+rmFG4FhaNcLdw146dsi0NZH0zb9hf36sTxO5+oOvxi6rkSwqfF1lNjY41W/pmyRXFk33njjaumll67++Mc/Vtdcc01JFfg9joAj4Ag4AkOEgBO4GlaGE7gaAuWXOQKOgCPgCIwaAl/5ylfCZPdvf/tb9ZnPfGbg+YCks8IKK4Tn/OlPf6oef/zxRs9UPh999NFqn332aXSPXzR2EPjOd74TMguB6+CDD26ccdrs8573vOof//hHte+++3a9793vfne1zjrrhOv23HPPrtcP8gKcVNttt114xE9/+tPq0ksvHeTjhj7tJZdcMjjtCErOnTu3k9+nPe1p1YEHHhh+33rrrdWhhx7aOedf8gg8/elPr770pS9VfEpOOOGE6qqrrtJP/xwyBKxO+OIXvxgIJ71mcRBp9ponSJlf/vKXqyWWWCIkddttt1Xf+973apN9+9vfXk2dOjVc85///Kfab7/9qscee6z2Hj/ZfwRsexor49bnPve5aqmllgokQdrNSMiECRNC+8Y2seRsix8k8iuuuGIksrNQPyNnW4w1UKwO3GuvvSr0YDfR3KntHE/39TrnKp3zdStX3Xnbx0ZLR5XOaerKNRrnRqP+RqOcI/nMiRMnBiI6Lx499NBDjR89DO06l9nSMuXSG+vHS/tN6X3DildbH82wlmM081XXJvo1To9m+eJnMzd85jOfGR9u9Pu4444L98q31sbGHmb92qjwmYtStkiurF//+teDzwj/vPxumWT9sCPgCDgCjsAYQMAJXA0ryQlcDYHyyxwBR8ARcARGDQFN/ts690sz/MY3vrHiDznmmGOq6667rlFSymevwYRGD/OLRhyBlIOhSSbaOgedwNUE1dG55uMf/3j1whe+MKwq8bGPfayTCSdwdaBo9QWiIu0dgRSHjj/xxBOrm2++uVU6fvHIIcDqUjhNWZnq6quvro4//vieHz6INHvO1LwEWBlst9126yR1yCGHVL///e87v+0X3hZG10P8Qk477bTqkksusZf49xFCIOf4H6HHFz1mNAhc9GPGLlbTmz59eiffFr82waVOAv6lNQI526J1QqN8w1gkcJXO+XqB2vYxJ3D1gmQV5uslc/benjp+78aW2X///UMBf/vb31Y//OEPGxd2GNp1KrO9lCmV3ng4Vqr3Su8bVsza+miGtRyjma+6NjEefaNf+MIXqmc/+9lFkDuBa0HYUv7V3FjiBK4F8fMjjoAj4AiMZQScwNWw9pzA1RAov8wRcAQcAUdg1BDQ5H80CFw/+MEPGm+XxzYgbD3DFjhnn332qOHlDx4MAikHQ5MntXUODhOBi/ZMu0Yuuuii6q677mpS5HF7TS7ICmmDwCWkFshHvoJUsyaw4447Vq94xSvCxQSJCBa5DD8CO++8c7XGGmtU//rXv6q99967LxkeRJr9yNguu+xSrb766iGpOhsEHLRy53333VcdcMAB/Xi8p1GAwFgct5zAVVDR4+iWnG0x1oo4kgSufs25bPC5zZyvl7oZBh1VOqfppdyDuHc06m8Q5RiWNHshOw1Du07h2EuZUumNh2Ol/ab0vmHFrK2PZljLMZr5qmsT/RqnR7N88bOf8YxndFZntuemTZtWsZoqcvTRR1esEhXLI488Um2wwQad1e3bvCQxrPo1LmPb3ylbJFdWJ3C1RdevdwQcAUdguBFwAlfD+nECV0Og/DJHwBFwBByBUUNgrBC4Rg0gf/CIIJByMDR5cFvn4DARuJqUb2G6ZrwEWYelzt73vvdVa621VshOv7bjG5ayjed8QFQScYu3ia+55pqeizuINHvO1LwE2N4TMtaiiy4akjvnnHMq/qy8/OUvr3baaadwiJXk2BYUIreLI9AUASdwNUVqfF43XmyLkSRw9asl1AWf+/WMYUyndE4zbGVZWOtvUPUwHslO47FMvdZ/ab8pva/X/A7q/rY+mkHlYyynO97aRGldsP35MsssE27/5je/Wd15553JpOzqUm0IXMnExsHBNraIE7jGQYV7ERwBR8ARMAg4gcuAUffVCVx16Pg5R8ARcAQcgRIEVltttWrDDTcMt/7qV7+qbr311vmSec973hOCoazeEW+/xMR3q622Cteff/751R//+MfKErg+//nPV+utt14I+hPw/cc//hGuueCCC6q77757vufox4orrlhtscUW1fOf//xq8cUXr/75z39WGAps/3TxxRdX//3vf8Olz3rWs6q3ve1t1XLLLdeZgN9zzz3V/fffX5111lnVvffeqySTn7xlhpOQfMRbJy211FLVW9/61pD2M5/5zOqxxx6rWKWDlXp+85vfJNNbGA/yVttb3vKWauLEieEttv/85z+hrsDzsssuS0LCSjCvfvWrA7bUL22CujrzzDMXePuNYPy73vWusM3V9ddfn1wp6fWvf331ghe8INTPjBkzOs+sczCwBdgrX/nKirZPG37wwQfD1pu0sU984hPV8573vJCvfffdt5Ne7ktM4MLRM2XKlLC6G33mz3/+czVz5szabebAjz7Idn9LLLFEuOfGG28MbY2211SWX375gC3XQ1p46KGHwq3bbLNNaOtz584NK3NBYJg6dWrF9azS9etf/7q64YYbwrVsQwY2K620UuhrnKc+b7vttnBe/7bbbruwndPs2bOrW265JaS39tprd/DkGHUKQSIlTft5fC965E1velNYPQes0A+QL37+859Xf/jDH8Ll0mkveclLKtooQvuhPnC+kSd0B3Lttdd26mb99devJk+eXD3wwAPV6aefHlbyASfyympdYIEOyK08xbNe+9rXhq3c+D5nzpyALfdxnGPcm3rLM2TG/Nt4441DH8GhSP1QZ+hS2gjbvt5xxx0hj5pEmVs7X1ktC8IVmCGkBQ4QeOJ6oe74I70f//jH4fsb3vCGirkHbYk0Vl111WrppZcOaVGOxx9/vKLPsdKRpE3/5p73vve9ne39WA2N/k5/+Mtf/lIdfPDBleoEPXHyySeHc/Qx2int+4orrgj9hLpFn6PXV1555TB2oFfI5+WXX67szfdJ2Ri/uB49z9jy97//PWy7x6qMfLeivPTSPtrqS94Ofs1rXhPKzbjE28DgNGvWrICRzV/dd20hwXiHQ9UK+lCEJrCi3VL3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4xwBza3rK1Dzo3qMFEIIDBoBCFzzzz9/Jxm993eg0IEQEAJCQAi0REAEroaAicDVECgFEwJCQAgIASEgBISAEChGgC2gVl555bDAAgsEPPf89re/jYboJ554ojhOPSgEhMDwEZhzzjnDxhtvHJZaaqm4iMv2qHfccUf0CvSvf/1r+BkaYynOM888Ya211oq5uuuuu8Lf/va3MZZDZWcsI8D6zCabbBIgP0+aNCncd999sW/dfffd8lI5litOeRMCQkAICAEhUIiA5tb1wGl+VI+RQgiBQSLAeh5eAx999NH4bjJjxoxBJqe4hYAQEAJCYAIjIAJXw8oVgashUAomBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEQGMEROBqCJUIXA2BUjAhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEGiMgAldDqETgagiUggkBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASHQGAERuBpCJQJXQ6AUTAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICIHGCIjA1RAqEbgaAqVgQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACDRGQASuhlCJwNUQKAUTAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCoDECInA1hEoEroZAKZgQEAJCQAgIASEgBAaIwCte8Yqw9tprh5e+9KXhwQcfDKeddtoAUxs7Uc8xxxxhu+22C3PNNVe45557wvTp08dO5mZxTtZdd90wZcqU8Mgjj4TLL7+8dW6e97znhfXWWy8sv/zyYckllwzzzTdfeOaZZ8ITTzwRHnroofCjH/0o3H///dl4eWbVVVfN3rOLjz76aPj9738f/vjHP4b//e9/drnzu9FGG4UFFlggpnnRRRd1rucOaAfbbLNNmHvuucNf//rXcO211+aC6ZoQmGUIrLHGGp0+ceaZZ86yfCjh8YkA6y6bbbZZQNfd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y0a2KEDY3urEE0+M2wN0AupACAiB2QKBI488MpbT5hOQOT/5yU+23vZotgBrnBdyrIwHanPjvCEp+0JACAiBPiLAO/58880XP1CzaI844ojwwAMP2Gnnd4011ggbb7xx+O53vzuhP1zrFFgHQmA2QOAtb3lL3DrT3kUo8o9//ONwySWXzAalVxGFgBAQAkJgViAgAldD1EXgagiUggkBISAEhIAQEAJCYCYCRuAyMJ566qm47dEjjzxilybkrwhcE7JaVaghILDHHnuEtddee4RhxJKFvHXSSSeF6dOn2yX9CgEhMBshAJnGDCbPPPNMOOWUU8Ktt946GyEwexV1LIwHanOzV5tTaYWAEBAC3RCwd3wLc80114Tzzz/fTvUrBITABEcAAhdrFSazw8epVlb9CgEhIASEwKxBQASuhriLwNUQKAUTAkJACAgBISAEhMBMBNgODY86c845Z7jvvvsi8QKPGRNdpkyZEhZaaKHw5JNPhl//+tcTvbgqnxDoKwK8c22yySZh0UUXDZMmTYq64ze/+U24++67oweuviamyISAEBg3CGyxxRZh/vnnDw8++GCcTzzxxBPjJu/KaBkCs3o8UJsrqzc9JQSEgBCYiAiwpTvv+Y8++mj0BjxjxoyJWEyVSQgIgQoEllpqqbDOOusEtk1kbeLOO++sCKnLQkAICAEhIAT6g4AIXA1xFIGrIVAKJgSEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhEBjBETgagiVCFwNgVIwISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBBojIAJXQ6hE4GoIlIIJASEgBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEh0BgBEbgaQiUCV0OgFEwICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACAiBxgg0IXBNnjy5cXxzrL/++v9rHHocBRSBaxxVlrIqBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIATGCQJtCFzPe97zakslAlctRAogBISAEBACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBB4FoGmBC7IWy94wQtqYROBqxYiBRACQkAICAEhIASEgBAQAkJACAgBISAEhIAQEAJCQAgIASEgBISAEBACQkAICAEhIASEgBAQAkJACDyLgAhcDVuCtlBsCJSCCQEhIASEgBAQAkJACAgBISAEhIAQEAJ9Q2CllVYK/CEXXXRReOaZZ/oW97Aj2n777cO8884b7rzzznDzzTcPO/nwqle9Kiy00ELh0UcfDVdfffXQ0x90gksvvXQsI+mcddZZ4X//+1+jJPlic+rUqWGxxRYLkyZNCmeffXa47777Gj07kQPtvPPOYZ555gl33HFH+NWvfjXLi0o9ve51rwtzzDFHmDZtWpgxY0ajPJU+1yjyikCzuq9XZEuXxykC6667bpgyZUp45JFHwuWXXz5OS6FsC4HBIcC4sN1224W55por3HPPPWH69OmDS6zHmNuOD/PNN1/YZJNN4tj3u9/9Ltx+++2NcjCR5s+NCvxcoFmtL2dX3OvqaI011girrrpqDHbmmWfWBdd9ISAEhIAQmM0REIGrYQMQgashUAomBISAEBACQkAICAEhIASEgBAQAkJACPQNgfe///1hhRVWiPF9/OMfD//+97/jMcSSJZZYIh7/6U9/Ck8//XTf0hxUREceeWQ0wP32t78Nxx577KCSqYz3sMMOiwSlp556Kuy3336V4cbrjV133TWsv/76Mfsf/ehHw3//+9/aosw999zhkEMOCfyanH766eGmm26y09n219orBK7jjz9+luOw/PLLhw984AMxH+eee2647rrrGuWp9LlGkVcEMuxmVV+vyFbry+NRz7Yu5Dh44NOf/nRYcMEFw5NPPhn233//cZBjZXF2R2Dy5MmBLW0gHT722GMDh+P5z39++MpXvhLTueuuu8Ixxxwz8DRLE2g7Przyla8Me+yxR0yuzZhSNX8uzfd4eW5W68vZFfe69uFx2XfffeuC674QEAJCQAjM5giIwNWwAYjA1RAoBRMCQkAICAEhIASEgBAQAkJACAgBISAE+oaAX/D3BK7Xvva1gT/k5JNPDr/+9a/7luagImprtOt3PkTgGo3o2muvHd7ylrfEG3js+vvf/x7OOOOM6CVtdOjZ64q1VxG42te7YdfG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AQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFCgtYABrpZUBrhaQjmZAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKtBYwwNWSygBXSygnU0ABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAgdYCBrhaUhngagnlZAoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKNBawABXSyoDXC2hnEwBBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQVaCxjgakllgKsllJMpoIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKBAawEDXC2pDHC1hHIyBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUaC1ggKsllQGullBOpoACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAq0FDHC1pDLA1RLKyRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUKC1gAGu1lROqIACCiiggAIKKKCAAgoooIACCiigdw4mPAAAAw5JREFUgAIKKKCAAgoooIACCiiggAIKKKCAAgqMRuDXX3+tpk6dWu2zzz7VlClT6n8859+sWbPq1/vvv3/fhe8zb968/+07lRMooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgqMCRjgGqPwiQIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiwewUMcO1eb5emgAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCowJGOAao/CJAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKLB7BQxw7V5vl6aAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKjAkY4Bqj8MkoBQ455JDq2GOPrT799NPqr7/+GuWinLcCCiiwVwtY3+7Vu9+NV0ABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUECBSShggGsS7rTJtspHHHFE9eCDD9ar/eGHH1ZPP/30ZNuECbm+Rx55ZHXuuedWU6dOrX7//ffqlVdeqf78888Jua7DWqkFCxZUHE+UDRs2VJ999tmwZj3y+Zx11ll1iDEv6Oeff67WrFmT32r9fN99960uvvjiavr06fV32Pcvv/xytWPHjtbzcMI9T8D6ds/bp26RAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgrs+QIGuAr38YwZM6o5c+ZUmzdvrrZu3Vo4l8nxtdmzZ1dbtmyp/v7776IVnjt3brV48eL6u3g98MADRfPxSzsL3H///RXHYZQlS5ZMqkBTrHfbx5kzZ1b33Xff2OS//PJLdffdd4+9nshP/vOf/1RLly7tuIqLFi3q+H6/N88777xq4cKFO032yCOP1L3c7fSmL/YqgdL6dtB6fq9CdmMVUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUECBIQsMK8D1f24uqiazdlIEAAAAAElFTkSuQmCC)" - ], - "metadata": { - "id": "4Cq-_Y-TKf0r" - } + "name": "stdout", + "output_type": "stream", + "text": [ + "Question: does litellm support Anthropic LLMs\n" + ] }, { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "O3ENsWYB27Mb" - }, - "outputs": [], - "source": [ - "!pip install litellm" + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelQuestionResponseResponseTimeCost
6togethercomputer/llama-2-70b-chatdoes litellm support Anthropic LLMsYes, litellm supports Anthropic LLMs.\\n\\nIn the example usage you provided, the `completion` function is called with the `model` parameter set to `\"gpt-3.5-turbo\"` for OpenAI and `\"command-nightly\"` for Cohere.\\n\\nTo use an Anthropic LLM with litellm, you would set the `model` parameter to the name of the Anthropic model you want to use, followed by the version number, if applicable. For example:\\n```\\nresponse = completion(model=\"anthropic-gpt-2\", messages=messages)\\n```\\nThis would call the Anthropic GPT-2 model to generate a completion for the given input messages.\\n\\nNote that you will need to set the `ANTHROPIC_API_KEY` environment variable to your Anthropic API key before making the call. You can do this by running the following command in your terminal:\\n```\\nos.environ[\"ANTHROPIC_API_KEY\"] = \"your-anthropic-api-key\"\\n```\\nReplace `\"your-anthropic-api-key\"` with your actual Anthropic API key.\\n\\nOnce you've set the environment variable, you can use the `completion` function with the `model` parameter set to an Anthropic model name to call the Anthropic API and generate a completion.21.5130090.001347
7gpt-3.5-turbodoes litellm support Anthropic LLMsNo, currently litellm does not support Anthropic LLMs. It mainly focuses on simplifying the usage of OpenAI, Azure, Cohere, and Huggingface API endpoints.8.6565100.000342
8claude-instant-1.2does litellm support Anthropic LLMsYes, litellm supports calling Anthropic LLMs through the completion function.\\n\\nTo use an Anthropic model with litellm:\\n\\n1. Set the ANTHROPIC_API_KEY environment variable with your Anthropic API key\\n\\n2. Pass the model name as the 'model' argument to completion(). Anthropic model names follow the format 'anthropic/<model_name>'\\n\\nFor example:\\n\\n```python \\nimport os\\nfrom litellm import completion\\n\\nos.environ[\"ANTHROPIC_API_KEY\"] = \"your_anthropic_api_key\"\\n\\nmessages = [{\"content\": \"Hello\", \"role\": \"user\"}]\\n\\nresponse = completion(model=\"anthropic/constitutional\", messages=messages)\\n```\\n\\nThis would call the Constitutional AI model from Anthropic.\\n\\nSo in summary, litellm provides a simple interface to call any Anthropic models as long as you specify the model name correctly and set the ANTHROPIC_API_KEY env variable.9.6981950.001342
" + ], + "text/plain": [ + "" ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" }, { - "cell_type": "markdown", - "source": [ - "## Example Use Case 1 - Code Generator\n", - "### For this use case enter your system prompt and questions\n" - ], - "metadata": { - "id": "Pk55Mjq_3DiR" - } + "name": "stdout", + "output_type": "stream", + "text": [ + "Question: what is litellm?\n" + ] }, { - "cell_type": "code", - "source": [ - "# enter your system prompt if you have one\n", - "system_prompt = \"\"\"\n", - "You are a coding assistant helping users using litellm.\n", - "litellm is a light package to simplify calling OpenAI, Azure, Cohere, Anthropic, Huggingface API Endpoints\n", - "--\n", - "Sample Usage:\n", - "```\n", - "pip install litellm\n", - "from litellm import completion\n", - "## set ENV variables\n", - "os.environ[\"OPENAI_API_KEY\"] = \"openai key\"\n", - "os.environ[\"COHERE_API_KEY\"] = \"cohere key\"\n", - "messages = [{ \"content\": \"Hello, how are you?\",\"role\": \"user\"}]\n", - "# openai call\n", - "response = completion(model=\"gpt-3.5-turbo\", messages=messages)\n", - "# cohere call\n", - "response = completion(\"command-nightly\", messages)\n", - "```\n", - "\n", - "\"\"\"\n", - "\n", - "\n", - "# qustions/logs you want to run the LLM on\n", - "questions = [\n", - " \"what is litellm?\",\n", - " \"why should I use LiteLLM\",\n", - " \"does litellm support Anthropic LLMs\",\n", - " \"write code to make a litellm completion call\",\n", - "]" + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelQuestionResponseResponseTimeCost
0togethercomputer/llama-2-70b-chatwhat is litellm?Litellm is a lightweight Python package that simplifies calling various AI API endpoints, including OpenAI, Azure, Cohere, Anthropic, and Hugging Face. It provides a convenient interface for making requests to these APIs, allowing developers to easily integrate them into their applications. With Litellm, developers can quickly and easily interact with multiple AI models and services, without having to handle the details of authentication, API calls, and response parsing. This makes it easier to build and deploy AI-powered applications, and can help developers save time and effort.13.4796440.000870
1gpt-3.5-turbowhat is litellm?litellm is a light package that provides a simplified interface for making API calls to various language models and APIs. It abstracts away the complexities of handling network requests, authentication, and response parsing, making it easier for developers to integrate powerful language models into their applications.\\n\\nWith litellm, you can quickly make API calls to models like OpenAI's GPT-3.5 Turbo, Azure's Text Analytics, Cohere's Command API, Anthropic's API, and Huggingface's models. It also supports additional functionality like conversational AI, summarization, translation, and more.\\n\\nBy using litellm, you can focus on your application logic without getting tangled in the details of API integration, allowing you to quickly build intelligent and conversational applications.8.3243320.000566
2claude-instant-1.2what is litellm?litellm is a Python library that simplifies calling various AI API endpoints like OpenAI, Azure, Cohere, Anthropic, and Huggingface. \\n\\nSome key things to know about litellm:\\n\\n- It provides a consistent interface for completing prompts and generating responses from different AI models through a single method called completion().\\n\\n- You specify the API (e.g. OpenAI, Cohere etc.) and model either by name or by setting environment variables before making the completion call.\\n\\n- This avoids having to use different SDKs or APIs for each provider and standardizes the call structure. \\n\\n- It handles things like setting headers, encoding inputs, parsing responses so the user doesn't have to deal with those details.\\n\\n- The goal is to make it easy to try different AI APIs and models without having to change code or learn different interfaces.\\n\\n- It's lightweight with no other dependencies required besides what's needed for each API (e.g. openai, azure SDKs etc.).\\n\\nSo in summary, litellm is a small library that provides a common way to interact with multiple conversational AI APIs through a single Python method, avoiding the need to directly use each provider's specific SDK.10.3164880.001603
" ], - "metadata": { - "id": "_1SZYJFB3HmQ" - }, - "execution_count": 21, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Running questions\n", - "### Select from 100+ LLMs here: https://docs.litellm.ai/docs/providers" - ], - "metadata": { - "id": "AHH3cqeU3_ZT" - } - }, - { - "cell_type": "code", - "source": [ - "import litellm\n", - "from litellm import completion, completion_cost\n", - "import os\n", - "import time\n", - "\n", - "# optional use litellm dashboard to view logs\n", - "# litellm.use_client = True\n", - "# litellm.token = \"ishaan_2@berri.ai\" # set your email\n", - "\n", - "\n", - "# set API keys\n", - "os.environ['TOGETHERAI_API_KEY'] = \"\"\n", - "os.environ['OPENAI_API_KEY'] = \"\"\n", - "os.environ['ANTHROPIC_API_KEY'] = \"\"\n", - "\n", - "\n", - "# select LLMs to benchmark\n", - "# using https://api.together.xyz/playground for llama2\n", - "# try any supported LLM here: https://docs.litellm.ai/docs/providers\n", - "\n", - "models = ['togethercomputer/llama-2-70b-chat', 'gpt-3.5-turbo', 'claude-instant-1.2']\n", - "data = []\n", - "\n", - "for question in questions: # group by question\n", - " for model in models:\n", - " print(f\"running question: {question} for model: {model}\")\n", - " start_time = time.time()\n", - " # show response, response time, cost for each question\n", - " response = completion(\n", - " model=model,\n", - " max_tokens=500,\n", - " messages = [\n", - " {\n", - " \"role\": \"system\", \"content\": system_prompt\n", - " },\n", - " {\n", - " \"role\": \"user\", \"content\": question\n", - " }\n", - " ],\n", - " )\n", - " end = time.time()\n", - " total_time = end-start_time # response time\n", - " # print(response)\n", - " cost = completion_cost(response) # cost for completion\n", - " raw_response = response['choices'][0]['message']['content'] # response string\n", - "\n", - "\n", - " # add log to pandas df\n", - " data.append(\n", - " {\n", - " 'Model': model,\n", - " 'Question': question,\n", - " 'Response': raw_response,\n", - " 'ResponseTime': total_time,\n", - " 'Cost': cost\n", - " })" - ], - "metadata": { - "id": "BpQD4A5339L3" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## View Benchmarks for LLMs" - ], - "metadata": { - "id": "apOSV3PBLa5Y" - } - }, - { - "cell_type": "code", - "source": [ - "from IPython.display import display\n", - "from IPython.core.interactiveshell import InteractiveShell\n", - "InteractiveShell.ast_node_interactivity = \"all\"\n", - "from IPython.display import HTML\n", - "import pandas as pd\n", - "\n", - "df = pd.DataFrame(data)\n", - "grouped_by_question = df.groupby('Question')\n", - "\n", - "for question, group_data in grouped_by_question:\n", - " print(f\"Question: {question}\")\n", - " HTML(group_data.to_html())\n" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "id": "CJqBlqUh_8Ws", - "outputId": "e02c3427-d8c6-4614-ff07-6aab64247ff6" - }, - "execution_count": 22, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Question: does litellm support Anthropic LLMs\n" - ] - }, - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "" - ], - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ModelQuestionResponseResponseTimeCost
6togethercomputer/llama-2-70b-chatdoes litellm support Anthropic LLMsYes, litellm supports Anthropic LLMs.\\n\\nIn the example usage you provided, the `completion` function is called with the `model` parameter set to `\"gpt-3.5-turbo\"` for OpenAI and `\"command-nightly\"` for Cohere.\\n\\nTo use an Anthropic LLM with litellm, you would set the `model` parameter to the name of the Anthropic model you want to use, followed by the version number, if applicable. For example:\\n```\\nresponse = completion(model=\"anthropic-gpt-2\", messages=messages)\\n```\\nThis would call the Anthropic GPT-2 model to generate a completion for the given input messages.\\n\\nNote that you will need to set the `ANTHROPIC_API_KEY` environment variable to your Anthropic API key before making the call. You can do this by running the following command in your terminal:\\n```\\nos.environ[\"ANTHROPIC_API_KEY\"] = \"your-anthropic-api-key\"\\n```\\nReplace `\"your-anthropic-api-key\"` with your actual Anthropic API key.\\n\\nOnce you've set the environment variable, you can use the `completion` function with the `model` parameter set to an Anthropic model name to call the Anthropic API and generate a completion.21.5130090.001347
7gpt-3.5-turbodoes litellm support Anthropic LLMsNo, currently litellm does not support Anthropic LLMs. It mainly focuses on simplifying the usage of OpenAI, Azure, Cohere, and Huggingface API endpoints.8.6565100.000342
8claude-instant-1.2does litellm support Anthropic LLMsYes, litellm supports calling Anthropic LLMs through the completion function.\\n\\nTo use an Anthropic model with litellm:\\n\\n1. Set the ANTHROPIC_API_KEY environment variable with your Anthropic API key\\n\\n2. Pass the model name as the 'model' argument to completion(). Anthropic model names follow the format 'anthropic/<model_name>'\\n\\nFor example:\\n\\n```python \\nimport os\\nfrom litellm import completion\\n\\nos.environ[\"ANTHROPIC_API_KEY\"] = \"your_anthropic_api_key\"\\n\\nmessages = [{\"content\": \"Hello\", \"role\": \"user\"}]\\n\\nresponse = completion(model=\"anthropic/constitutional\", messages=messages)\\n```\\n\\nThis would call the Constitutional AI model from Anthropic.\\n\\nSo in summary, litellm provides a simple interface to call any Anthropic models as long as you specify the model name correctly and set the ANTHROPIC_API_KEY env variable.9.6981950.001342
" - ] - }, - "metadata": {}, - "execution_count": 22 - }, - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Question: what is litellm?\n" - ] - }, - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "" - ], - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ModelQuestionResponseResponseTimeCost
0togethercomputer/llama-2-70b-chatwhat is litellm?Litellm is a lightweight Python package that simplifies calling various AI API endpoints, including OpenAI, Azure, Cohere, Anthropic, and Hugging Face. It provides a convenient interface for making requests to these APIs, allowing developers to easily integrate them into their applications. With Litellm, developers can quickly and easily interact with multiple AI models and services, without having to handle the details of authentication, API calls, and response parsing. This makes it easier to build and deploy AI-powered applications, and can help developers save time and effort.13.4796440.000870
1gpt-3.5-turbowhat is litellm?litellm is a light package that provides a simplified interface for making API calls to various language models and APIs. It abstracts away the complexities of handling network requests, authentication, and response parsing, making it easier for developers to integrate powerful language models into their applications.\\n\\nWith litellm, you can quickly make API calls to models like OpenAI's GPT-3.5 Turbo, Azure's Text Analytics, Cohere's Command API, Anthropic's API, and Huggingface's models. It also supports additional functionality like conversational AI, summarization, translation, and more.\\n\\nBy using litellm, you can focus on your application logic without getting tangled in the details of API integration, allowing you to quickly build intelligent and conversational applications.8.3243320.000566
2claude-instant-1.2what is litellm?litellm is a Python library that simplifies calling various AI API endpoints like OpenAI, Azure, Cohere, Anthropic, and Huggingface. \\n\\nSome key things to know about litellm:\\n\\n- It provides a consistent interface for completing prompts and generating responses from different AI models through a single method called completion().\\n\\n- You specify the API (e.g. OpenAI, Cohere etc.) and model either by name or by setting environment variables before making the completion call.\\n\\n- This avoids having to use different SDKs or APIs for each provider and standardizes the call structure. \\n\\n- It handles things like setting headers, encoding inputs, parsing responses so the user doesn't have to deal with those details.\\n\\n- The goal is to make it easy to try different AI APIs and models without having to change code or learn different interfaces.\\n\\n- It's lightweight with no other dependencies required besides what's needed for each API (e.g. openai, azure SDKs etc.).\\n\\nSo in summary, litellm is a small library that provides a common way to interact with multiple conversational AI APIs through a single Python method, avoiding the need to directly use each provider's specific SDK.10.3164880.001603
" - ] - }, - "metadata": {}, - "execution_count": 22 - }, - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Question: why should I use LiteLLM\n" - ] - }, - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "" - ], - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ModelQuestionResponseResponseTimeCost
3togethercomputer/llama-2-70b-chatwhy should I use LiteLLM\\nThere are several reasons why you might want to use LiteLLM:\\n\\n1. Simplified API calls: LiteLLM provides a simple and consistent API for calling various language models, making it easier to use multiple models and switch between them.\\n2. Environment variable configuration: LiteLLM allows you to set environment variables for API keys and model names, making it easier to manage and switch between different models and APIs.\\n3. Support for multiple models and APIs: LiteLLM supports a wide range of language models and APIs, including OpenAI, Azure, Cohere, Anthropic, and Hugging Face.\\n4. Easy integration with popular frameworks: LiteLLM can be easily integrated with popular frameworks such as PyTorch and TensorFlow, making it easy to use with your existing codebase.\\n5. Lightweight: LiteLLM is a lightweight package, making it easy to install and use, even on resource-constrained devices.\\n6. Flexible: LiteLLM allows you to define your own models and APIs, making it easy to use with custom models and APIs.\\n7. Extensive documentation: LiteLLM has extensive documentation, making it easy to get started and learn how to use the package.\\n8. Active community: LiteLLM has an active community of developers and users, making it easy to get help and feedback on your projects.\\n\\nOverall, LiteLLM can help you to simplify your workflow, improve your productivity, and make it easier to work with multiple language models and APIs.23.7778850.001443
4gpt-3.5-turbowhy should I use LiteLLMLiteLLM is a lightweight Python package that simplifies the process of making API calls to various language models. Here are some reasons why you should use LiteLLM:\\n\\n1. **Simplified API Calls**: LiteLLM abstracts away the complexity of making API calls to different language models. It provides a unified interface for invoking models from OpenAI, Azure, Cohere, Anthropic, Huggingface, and more.\\n\\n2. **Easy Integration**: LiteLLM seamlessly integrates with your existing codebase. You can import the package and start making API calls with just a few lines of code.\\n\\n3. **Flexibility**: LiteLLM supports a variety of language models, including GPT-3, GPT-Neo, chatGPT, and more. You can choose the model that suits your requirements and easily switch between them.\\n\\n4. **Convenience**: LiteLLM handles the authentication and connection details for you. You just need to set the relevant environment variables, and the package takes care of the rest.\\n\\n5. **Quick Prototyping**: LiteLLM is ideal for rapid prototyping and experimentation. With its simple API, you can quickly generate text, chat with models, and build interactive applications.\\n\\n6. **Community Support**: LiteLLM is actively maintained and supported by a community of developers. You can find help, share ideas, and collaborate with others to enhance your projects.\\n\\nOverall, LiteLLM simplifies the process of making API calls to language models, saving you time and effort while providing flexibility and convenience.12.1098810.000881
5claude-instant-1.2why should I use LiteLLMHere are some key reasons why you may want to consider using LiteLLM:\\n\\n- Simplifies calling multiple large language models - LiteLLM provides a unified API to call models from different providers like OpenAI, Azure, HuggingFace, Anthropic etc. This avoids having to deal with different APIs from each provider.\\n\\n- Easy to get started - LiteLLM is very lightweight and simple to install with just one pip install. It has minimal configuration needed with just API keys. This lowers the barrier to start experimenting with LLMs.\\n\\n- Standard interface - The completion API provides a standard way to send messages and get responses back regardless of underlying model. This keeps the code interface consistent. \\n\\n- Model agnostic - Your code doesn't need to change to switch between different models. You can easily compare performance of models from different providers.\\n\\n- Open source - As it is open source, the library can be expanded to support more models and providers over time via community contributions.\\n\\n- Cost effective - LiteLLM helps avoid vendor lock-in. You can optimize costs by testing multiple models and choosing the best suitable and cost-effective option for your needs.\\n\\nSo in summary, L12.6102590.001568
" - ] - }, - "metadata": {}, - "execution_count": 22 - }, - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Question: write code to make a litellm completion call\n" - ] - }, - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "" - ], - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ModelQuestionResponseResponseTimeCost
9togethercomputer/llama-2-70b-chatwrite code to make a litellm completion call\\nTo make a completion call using litellm, you can use the `completion` function from the litellm package. Here's an example of how to use it:\\n```\\nfrom litellm import completion\\n\\n# Set ENV variables\\nos.environ[\"OPENAI_API_KEY\"] = \"your_openai_api_key\"\\nos.environ[\"COHERE_API_KEY\"] = \"your_cohere_api_key\"\\n\\n# Define the messages to be completed\\nmessages = [\\n {\\n \"content\": \"Hello, how are you?\",\\n \"role\": \"user\"\\n }\\n]\\n\\n# Make a completion call using OpenAI\\nresponse = completion(model=\"gpt-3.5-turbo\", messages=messages)\\n\\n# Make a completion call using Cohere\\nresponse = completion(\"command-nightly\", messages)\\n```\\nIn this example, we first set the ENV variables for the OpenAI and Cohere API keys. Then, we define a list of messages to be completed, which in this case contains a single message with the content \"Hello, how are you?\" and the role \"user\".\\n\\nNext, we make two completion calls using the `completion` function from litellm. The first call uses the OpenAI model `gpt-3.5-turbo` and passes in the list of messages. The second call uses the Cohere model `command-nightly` and passes in the same list of messages.\\n\\nThe `completion` function returns a response object that contains the completed messages. You can then use the `response.messages` attribute to access the completed messages.\\n\\nHere's an example of how to access the completed messages:\\n```\\n# Print the completed messages\\nprint(response.messages)\\n```\\nThis will print the completed messages, which should look something like this:\\n```\\n[{'content': 'Hello, how are you?', 'role': 'user', 'completion': 'I am doing well, thanks for asking.'}]\\n```\\nNote that the `completion` attribute contains the completed message. You can use this attribute to retrieve the completed message and use it in your application.32.1924530.001821
10gpt-3.5-turbowrite code to make a litellm completion callSure! Here's an example code to make a completion call using the litellm package:\\n\\n```python\\nfrom litellm import completion\\n\\n# Set the model and messages\\nmodel = \"gpt-3.5-turbo\"\\nmessages = [\\n {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\\n {\"role\": \"user\", \"content\": \"Who won the world series in 2020?\"},\\n {\"role\": \"assistant\", \"content\": \"The Los Angeles Dodgers won the World Series in 2020.\"},\\n {\"role\": \"user\", \"content\": \"Where was it played?\"}\\n]\\n\\n# Make the completion call\\nresponse = completion(model=model, messages=messages)\\n\\n# Print the assistant's reply\\nassistant_reply = response[\"choices\"][0][\"message\"][\"content\"]\\nprint(\"Assistant: \", assistant_reply)\\n```\\n\\nMake sure you have the litellm package installed (`pip install litellm`) and set the necessary environment variables for the API keys before running this code.9.3771550.000686
11claude-instant-1.2write code to make a litellm completion callHere is an example of making a completion call using litellm:\\n\\n```python\\nimport os\\nfrom litellm import completion\\n\\n# Set API keys as environment variables\\nos.environ[\"OPENAI_API_KEY\"] = \"your openai api key\" \\n\\n# Conversation context \\nmessages = [{\\n \"content\": \"Hello, how can I help you today?\",\\n \"role\": \"assistant\"\\n}]\\n\\n# Make completion call with GPT-3 model\\nresponse = completion(\\n model=\"gpt-3.5-turbo\", \\n messages=messages\\n)\\n\\nprint(response)\\n```\\n\\nTo break it down:\\n\\n- Import completion from litellm\\n- Set the OPENAI_API_KEY env var \\n- Define a messages list with the conversation context\\n- Call completion(), specifying the model (\"gpt-3.5-turbo\") and messages\\n- It will return the response from the API\\n- Print the response\\n\\nThis makes a simple completion call to OpenAI GPT-3 using litellm to handle the API details. You can also call other models like Cohere or Anthropic by specifying their name instead of the OpenAI9.8399880.001578
" - ] - }, - "metadata": {}, - "execution_count": 22 - } + "text/plain": [ + "" ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" }, { - "cell_type": "markdown", - "source": [ - "## Use Case 2 - Rewrite user input concisely" - ], - "metadata": { - "id": "bmtAbC1rGVAm" - } + "name": "stdout", + "output_type": "stream", + "text": [ + "Question: why should I use LiteLLM\n" + ] }, { - "cell_type": "code", - "source": [ - "# enter your system prompt if you have one\n", - "system_prompt = \"\"\"\n", - "For a given user input, rewrite the input to make be more concise.\n", - "\"\"\"\n", - "\n", - "# user input for re-writing questions\n", - "questions = [\n", - " \"LiteLLM is a lightweight Python package that simplifies the process of making API calls to various language models. Here are some reasons why you should use LiteLLM:\\n\\n1. **Simplified API Calls**: LiteLLM abstracts away the complexity of making API calls to different language models. It provides a unified interface for invoking models from OpenAI, Azure, Cohere, Anthropic, Huggingface, and more.\\n\\n2. **Easy Integration**: LiteLLM seamlessly integrates with your existing codebase. You can import the package and start making API calls with just a few lines of code.\\n\\n3. **Flexibility**: LiteLLM supports a variety of language models, including GPT-3, GPT-Neo, chatGPT, and more. You can choose the model that suits your requirements and easily switch between them.\\n\\n4. **Convenience**: LiteLLM handles the authentication and connection details for you. You just need to set the relevant environment variables, and the package takes care of the rest.\\n\\n5. **Quick Prototyping**: LiteLLM is ideal for rapid prototyping and experimentation. With its simple API, you can quickly generate text, chat with models, and build interactive applications.\\n\\n6. **Community Support**: LiteLLM is actively maintained and supported by a community of developers. You can find help, share ideas, and collaborate with others to enhance your projects.\\n\\nOverall, LiteLLM simplifies the process of making API calls to language models, saving you time and effort while providing flexibility and convenience\",\n", - " \"Hi everyone! I'm [your name] and I'm currently working on [your project/role involving LLMs]. I came across LiteLLM and was really excited by how it simplifies working with different LLM providers. I'm hoping to use LiteLLM to [build an app/simplify my code/test different models etc]. Before finding LiteLLM, I was struggling with [describe any issues you faced working with multiple LLMs]. With LiteLLM's unified API and automatic translation between providers, I think it will really help me to [goals you have for using LiteLLM]. Looking forward to being part of this community and learning more about how I can build impactful applications powered by LLMs!Let me know if you would like me to modify or expand on any part of this suggested intro. I'm happy to provide any clarification or additional details you need!\",\n", - " \"Traceloop is a platform for monitoring and debugging the quality of your LLM outputs. It provides you with a way to track the performance of your LLM application; rollout changes with confidence; and debug issues in production. It is based on OpenTelemetry, so it can provide full visibility to your LLM requests, as well vector DB usage, and other infra in your stack.\"\n", - "]" + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelQuestionResponseResponseTimeCost
3togethercomputer/llama-2-70b-chatwhy should I use LiteLLM\\nThere are several reasons why you might want to use LiteLLM:\\n\\n1. Simplified API calls: LiteLLM provides a simple and consistent API for calling various language models, making it easier to use multiple models and switch between them.\\n2. Environment variable configuration: LiteLLM allows you to set environment variables for API keys and model names, making it easier to manage and switch between different models and APIs.\\n3. Support for multiple models and APIs: LiteLLM supports a wide range of language models and APIs, including OpenAI, Azure, Cohere, Anthropic, and Hugging Face.\\n4. Easy integration with popular frameworks: LiteLLM can be easily integrated with popular frameworks such as PyTorch and TensorFlow, making it easy to use with your existing codebase.\\n5. Lightweight: LiteLLM is a lightweight package, making it easy to install and use, even on resource-constrained devices.\\n6. Flexible: LiteLLM allows you to define your own models and APIs, making it easy to use with custom models and APIs.\\n7. Extensive documentation: LiteLLM has extensive documentation, making it easy to get started and learn how to use the package.\\n8. Active community: LiteLLM has an active community of developers and users, making it easy to get help and feedback on your projects.\\n\\nOverall, LiteLLM can help you to simplify your workflow, improve your productivity, and make it easier to work with multiple language models and APIs.23.7778850.001443
4gpt-3.5-turbowhy should I use LiteLLMLiteLLM is a lightweight Python package that simplifies the process of making API calls to various language models. Here are some reasons why you should use LiteLLM:\\n\\n1. **Simplified API Calls**: LiteLLM abstracts away the complexity of making API calls to different language models. It provides a unified interface for invoking models from OpenAI, Azure, Cohere, Anthropic, Huggingface, and more.\\n\\n2. **Easy Integration**: LiteLLM seamlessly integrates with your existing codebase. You can import the package and start making API calls with just a few lines of code.\\n\\n3. **Flexibility**: LiteLLM supports a variety of language models, including GPT-3, GPT-Neo, chatGPT, and more. You can choose the model that suits your requirements and easily switch between them.\\n\\n4. **Convenience**: LiteLLM handles the authentication and connection details for you. You just need to set the relevant environment variables, and the package takes care of the rest.\\n\\n5. **Quick Prototyping**: LiteLLM is ideal for rapid prototyping and experimentation. With its simple API, you can quickly generate text, chat with models, and build interactive applications.\\n\\n6. **Community Support**: LiteLLM is actively maintained and supported by a community of developers. You can find help, share ideas, and collaborate with others to enhance your projects.\\n\\nOverall, LiteLLM simplifies the process of making API calls to language models, saving you time and effort while providing flexibility and convenience.12.1098810.000881
5claude-instant-1.2why should I use LiteLLMHere are some key reasons why you may want to consider using LiteLLM:\\n\\n- Simplifies calling multiple large language models - LiteLLM provides a unified API to call models from different providers like OpenAI, Azure, HuggingFace, Anthropic etc. This avoids having to deal with different APIs from each provider.\\n\\n- Easy to get started - LiteLLM is very lightweight and simple to install with just one pip install. It has minimal configuration needed with just API keys. This lowers the barrier to start experimenting with LLMs.\\n\\n- Standard interface - The completion API provides a standard way to send messages and get responses back regardless of underlying model. This keeps the code interface consistent. \\n\\n- Model agnostic - Your code doesn't need to change to switch between different models. You can easily compare performance of models from different providers.\\n\\n- Open source - As it is open source, the library can be expanded to support more models and providers over time via community contributions.\\n\\n- Cost effective - LiteLLM helps avoid vendor lock-in. You can optimize costs by testing multiple models and choosing the best suitable and cost-effective option for your needs.\\n\\nSo in summary, L12.6102590.001568
" ], - "metadata": { - "id": "boiHO1PhGXSL" - }, - "execution_count": 23, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Run Questions" - ], - "metadata": { - "id": "fwNcC_obICUc" - } - }, - { - "cell_type": "code", - "source": [ - "import litellm\n", - "from litellm import completion, completion_cost\n", - "import os\n", - "import time\n", - "\n", - "# optional use litellm dashboard to view logs\n", - "# litellm.use_client = True\n", - "# litellm.token = \"ishaan_2@berri.ai\" # set your email\n", - "\n", - "os.environ['TOGETHERAI_API_KEY'] = \"\"\n", - "os.environ['OPENAI_API_KEY'] = \"\"\n", - "os.environ['ANTHROPIC_API_KEY'] = \"\"\n", - "\n", - "models = ['togethercomputer/llama-2-70b-chat', 'gpt-3.5-turbo', 'claude-instant-1.2'] # enter llms to benchmark\n", - "data_2 = []\n", - "\n", - "for question in questions: # group by question\n", - " for model in models:\n", - " print(f\"running question: {question} for model: {model}\")\n", - " start_time = time.time()\n", - " # show response, response time, cost for each question\n", - " response = completion(\n", - " model=model,\n", - " max_tokens=500,\n", - " messages = [\n", - " {\n", - " \"role\": \"system\", \"content\": system_prompt\n", - " },\n", - " {\n", - " \"role\": \"user\", \"content\": \"User input:\" + question\n", - " }\n", - " ],\n", - " )\n", - " end = time.time()\n", - " total_time = end-start_time # response time\n", - " # print(response)\n", - " cost = completion_cost(response) # cost for completion\n", - " raw_response = response['choices'][0]['message']['content'] # response string\n", - " #print(raw_response, total_time, cost)\n", - "\n", - " # add to pandas df\n", - " data_2.append(\n", - " {\n", - " 'Model': model,\n", - " 'Question': question,\n", - " 'Response': raw_response,\n", - " 'ResponseTime': total_time,\n", - " 'Cost': cost\n", - " })\n", - "\n", - "\n" - ], - "metadata": { - "id": "KtBjZ1mUIBiJ" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## View Logs - Group by Question" - ], - "metadata": { - "id": "-PCYIzG5M0II" - } - }, - { - "cell_type": "code", - "source": [ - "from IPython.display import display\n", - "from IPython.core.interactiveshell import InteractiveShell\n", - "InteractiveShell.ast_node_interactivity = \"all\"\n", - "from IPython.display import HTML\n", - "import pandas as pd\n", - "\n", - "df = pd.DataFrame(data_2)\n", - "grouped_by_question = df.groupby('Question')\n", - "\n", - "for question, group_data in grouped_by_question:\n", - " print(f\"Question: {question}\")\n", - " HTML(group_data.to_html())\n" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "id": "-3R5-2q8IiL2", - "outputId": "c4a0d9e5-bb21-4de0-fc4c-9f5e71d0f177" - }, - "execution_count": 20, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Question: Hi everyone! I'm [your name] and I'm currently working on [your project/role involving LLMs]. I came across LiteLLM and was really excited by how it simplifies working with different LLM providers. I'm hoping to use LiteLLM to [build an app/simplify my code/test different models etc]. Before finding LiteLLM, I was struggling with [describe any issues you faced working with multiple LLMs]. With LiteLLM's unified API and automatic translation between providers, I think it will really help me to [goals you have for using LiteLLM]. Looking forward to being part of this community and learning more about how I can build impactful applications powered by LLMs!Let me know if you would like me to modify or expand on any part of this suggested intro. I'm happy to provide any clarification or additional details you need!\n" - ] - }, - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "" - ], - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ModelQuestionResponseResponseTimeCost
3togethercomputer/llama-2-70b-chatHi everyone! I'm [your name] and I'm currently working on [your project/role involving LLMs]. I came across LiteLLM and was really excited by how it simplifies working with different LLM providers. I'm hoping to use LiteLLM to [build an app/simplify my code/test different models etc]. Before finding LiteLLM, I was struggling with [describe any issues you faced working with multiple LLMs]. With LiteLLM's unified API and automatic translation between providers, I think it will really help me to [goals you have for using LiteLLM]. Looking forward to being part of this community and learning more about how I can build impactful applications powered by LLMs!Let me know if you would like me to modify or expand on any part of this suggested intro. I'm happy to provide any clarification or additional details you need!\\nHere's a more concise version of the user input:\\n\\n\"Hi everyone! I'm [your name] and I'm working on [your project/role involving LLMs]. I recently discovered LiteLLM and I'm excited to use it to [build an app/simplify my code/test different models etc]. Before LiteLLM, I struggled with [describe any issues you faced working with multiple LLMs]. I'm looking forward to using LiteLLM's unified API and automatic translation to achieve my goals. I'm eager to learn more about building impactful applications powered by LLMs and to be part of this community. Let me know if you have any questions or need further clarification.\"\\n\\nIn this revised version, we've kept the essential information and removed some of the extraneous language. We've also rephrased some of the sentences to make them more concise and easier to read.18.3006200.001200
4gpt-3.5-turboHi everyone! I'm [your name] and I'm currently working on [your project/role involving LLMs]. I came across LiteLLM and was really excited by how it simplifies working with different LLM providers. I'm hoping to use LiteLLM to [build an app/simplify my code/test different models etc]. Before finding LiteLLM, I was struggling with [describe any issues you faced working with multiple LLMs]. With LiteLLM's unified API and automatic translation between providers, I think it will really help me to [goals you have for using LiteLLM]. Looking forward to being part of this community and learning more about how I can build impactful applications powered by LLMs!Let me know if you would like me to modify or expand on any part of this suggested intro. I'm happy to provide any clarification or additional details you need!User input: Hi, I'm [your name] and I'm excited about using LiteLLM to simplify working with different LLM providers. Before finding LiteLLM, I faced challenges working with multiple LLMs. With LiteLLM's unified API and automatic translation, I believe it will help me achieve my goals of [state your goals]. I look forward to being part of this community and learning how to build impactful applications with LLMs. Let me know if you need any further clarification or details.7.3854720.000525
5claude-instant-1.2Hi everyone! I'm [your name] and I'm currently working on [your project/role involving LLMs]. I came across LiteLLM and was really excited by how it simplifies working with different LLM providers. I'm hoping to use LiteLLM to [build an app/simplify my code/test different models etc]. Before finding LiteLLM, I was struggling with [describe any issues you faced working with multiple LLMs]. With LiteLLM's unified API and automatic translation between providers, I think it will really help me to [goals you have for using LiteLLM]. Looking forward to being part of this community and learning more about how I can build impactful applications powered by LLMs!Let me know if you would like me to modify or expand on any part of this suggested intro. I'm happy to provide any clarification or additional details you need!Here is a more concise rewrite of the user input:\\n\\nHi everyone, I'm [your name]. I'm currently [your project/role] and came across LiteLLM, which simplifies working with different LLMs through its unified API. I hope to [build an app/simplify code/test models] with LiteLLM since I previously struggled with [issues]. LiteLLM's automatic translation between providers will help me [goals] and build impactful LLM applications. Looking forward to learning more as part of this community. Let me know if you need any clarification on my plans to use LiteLLM.8.6282170.001022
" - ] - }, - "metadata": {}, - "execution_count": 20 - }, - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Question: LiteLLM is a lightweight Python package that simplifies the process of making API calls to various language models. Here are some reasons why you should use LiteLLM:\n", - "\n", - "1. **Simplified API Calls**: LiteLLM abstracts away the complexity of making API calls to different language models. It provides a unified interface for invoking models from OpenAI, Azure, Cohere, Anthropic, Huggingface, and more.\n", - "\n", - "2. **Easy Integration**: LiteLLM seamlessly integrates with your existing codebase. You can import the package and start making API calls with just a few lines of code.\n", - "\n", - "3. **Flexibility**: LiteLLM supports a variety of language models, including GPT-3, GPT-Neo, chatGPT, and more. You can choose the model that suits your requirements and easily switch between them.\n", - "\n", - "4. **Convenience**: LiteLLM handles the authentication and connection details for you. You just need to set the relevant environment variables, and the package takes care of the rest.\n", - "\n", - "5. **Quick Prototyping**: LiteLLM is ideal for rapid prototyping and experimentation. With its simple API, you can quickly generate text, chat with models, and build interactive applications.\n", - "\n", - "6. **Community Support**: LiteLLM is actively maintained and supported by a community of developers. You can find help, share ideas, and collaborate with others to enhance your projects.\n", - "\n", - "Overall, LiteLLM simplifies the process of making API calls to language models, saving you time and effort while providing flexibility and convenience\n" - ] - }, - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "" - ], - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ModelQuestionResponseResponseTimeCost
0togethercomputer/llama-2-70b-chatLiteLLM is a lightweight Python package that simplifies the process of making API calls to various language models. Here are some reasons why you should use LiteLLM:\\n\\n1. **Simplified API Calls**: LiteLLM abstracts away the complexity of making API calls to different language models. It provides a unified interface for invoking models from OpenAI, Azure, Cohere, Anthropic, Huggingface, and more.\\n\\n2. **Easy Integration**: LiteLLM seamlessly integrates with your existing codebase. You can import the package and start making API calls with just a few lines of code.\\n\\n3. **Flexibility**: LiteLLM supports a variety of language models, including GPT-3, GPT-Neo, chatGPT, and more. You can choose the model that suits your requirements and easily switch between them.\\n\\n4. **Convenience**: LiteLLM handles the authentication and connection details for you. You just need to set the relevant environment variables, and the package takes care of the rest.\\n\\n5. **Quick Prototyping**: LiteLLM is ideal for rapid prototyping and experimentation. With its simple API, you can quickly generate text, chat with models, and build interactive applications.\\n\\n6. **Community Support**: LiteLLM is actively maintained and supported by a community of developers. You can find help, share ideas, and collaborate with others to enhance your projects.\\n\\nOverall, LiteLLM simplifies the process of making API calls to language models, saving you time and effort while providing flexibility and convenienceHere's a more concise version of the user input:\\n\\nLiteLLM is a lightweight Python package that simplifies API calls to various language models. It abstracts away complexity, integrates seamlessly, supports multiple models, and handles authentication. It's ideal for rapid prototyping and has community support. It saves time and effort while providing flexibility and convenience.11.2942500.001251
1gpt-3.5-turboLiteLLM is a lightweight Python package that simplifies the process of making API calls to various language models. Here are some reasons why you should use LiteLLM:\\n\\n1. **Simplified API Calls**: LiteLLM abstracts away the complexity of making API calls to different language models. It provides a unified interface for invoking models from OpenAI, Azure, Cohere, Anthropic, Huggingface, and more.\\n\\n2. **Easy Integration**: LiteLLM seamlessly integrates with your existing codebase. You can import the package and start making API calls with just a few lines of code.\\n\\n3. **Flexibility**: LiteLLM supports a variety of language models, including GPT-3, GPT-Neo, chatGPT, and more. You can choose the model that suits your requirements and easily switch between them.\\n\\n4. **Convenience**: LiteLLM handles the authentication and connection details for you. You just need to set the relevant environment variables, and the package takes care of the rest.\\n\\n5. **Quick Prototyping**: LiteLLM is ideal for rapid prototyping and experimentation. With its simple API, you can quickly generate text, chat with models, and build interactive applications.\\n\\n6. **Community Support**: LiteLLM is actively maintained and supported by a community of developers. You can find help, share ideas, and collaborate with others to enhance your projects.\\n\\nOverall, LiteLLM simplifies the process of making API calls to language models, saving you time and effort while providing flexibility and convenienceLiteLLM is a lightweight Python package that simplifies API calls to various language models. Here's why you should use it:\\n1. Simplified API Calls: Works with multiple models (OpenAI, Azure, Cohere, Anthropic, Huggingface).\\n2. Easy Integration: Import and start using it quickly in your codebase.\\n3. Flexibility: Supports GPT-3, GPT-Neo, chatGPT, etc. easily switch between models.\\n4. Convenience: Handles authentication and connection details, just set environment variables.\\n5. Quick Prototyping: Great for rapid prototyping and building interactive applications.\\n6. Community Support: Actively maintained and supported by a developer community.9.7783150.000795
2claude-instant-1.2LiteLLM is a lightweight Python package that simplifies the process of making API calls to various language models. Here are some reasons why you should use LiteLLM:\\n\\n1. **Simplified API Calls**: LiteLLM abstracts away the complexity of making API calls to different language models. It provides a unified interface for invoking models from OpenAI, Azure, Cohere, Anthropic, Huggingface, and more.\\n\\n2. **Easy Integration**: LiteLLM seamlessly integrates with your existing codebase. You can import the package and start making API calls with just a few lines of code.\\n\\n3. **Flexibility**: LiteLLM supports a variety of language models, including GPT-3, GPT-Neo, chatGPT, and more. You can choose the model that suits your requirements and easily switch between them.\\n\\n4. **Convenience**: LiteLLM handles the authentication and connection details for you. You just need to set the relevant environment variables, and the package takes care of the rest.\\n\\n5. **Quick Prototyping**: LiteLLM is ideal for rapid prototyping and experimentation. With its simple API, you can quickly generate text, chat with models, and build interactive applications.\\n\\n6. **Community Support**: LiteLLM is actively maintained and supported by a community of developers. You can find help, share ideas, and collaborate with others to enhance your projects.\\n\\nOverall, LiteLLM simplifies the process of making API calls to language models, saving you time and effort while providing flexibility and convenienceHere is a concise rewrite of the user input:\\n\\nLiteLLM is a lightweight Python package that simplifies accessing various language models. It provides a unified interface for models from OpenAI, Azure, Cohere, Anthropic, Huggingface, and more. Key benefits include simplified API calls, easy integration, flexibility to use different models, automated handling of authentication, and support for quick prototyping. The actively maintained package saves time by abstracting away complexity while offering convenience and a collaborative community.7.6975200.001098
" - ] - }, - "metadata": {}, - "execution_count": 20 - }, - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Question: Traceloop is a platform for monitoring and debugging the quality of your LLM outputs. It provides you with a way to track the performance of your LLM application; rollout changes with confidence; and debug issues in production. It is based on OpenTelemetry, so it can provide full visibility to your LLM requests, as well vector DB usage, and other infra in your stack.\n" - ] - }, - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "" - ], - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ModelQuestionResponseResponseTimeCost
6togethercomputer/llama-2-70b-chatTraceloop is a platform for monitoring and debugging the quality of your LLM outputs. It provides you with a way to track the performance of your LLM application; rollout changes with confidence; and debug issues in production. It is based on OpenTelemetry, so it can provide full visibility to your LLM requests, as well vector DB usage, and other infra in your stack.\\nRewritten input: Traceloop is a platform for monitoring and debugging LLM outputs. It allows users to track performance, rollout changes confidently, and debug issues in production. It uses OpenTelemetry for full visibility into LLM requests, vector DB usage, and other infrastructure.9.0604440.000525
7gpt-3.5-turboTraceloop is a platform for monitoring and debugging the quality of your LLM outputs. It provides you with a way to track the performance of your LLM application; rollout changes with confidence; and debug issues in production. It is based on OpenTelemetry, so it can provide full visibility to your LLM requests, as well vector DB usage, and other infra in your stack.Traceloop is a platform for monitoring and debugging the quality of your LLM outputs. It helps track performance, rollout changes, and debug issues in production. It is based on OpenTelemetry, providing visibility to LLM requests, vector DB usage, and other infrastructure in your stack.7.3046610.000283
8claude-instant-1.2Traceloop is a platform for monitoring and debugging the quality of your LLM outputs. It provides you with a way to track the performance of your LLM application; rollout changes with confidence; and debug issues in production. It is based on OpenTelemetry, so it can provide full visibility to your LLM requests, as well vector DB usage, and other infra in your stack.Here is a more concise rewrite of the user input:\\n\\nTraceloop monitors and debugs LLM quality. It tracks LLM performance, enables confident changes, and debugs production issues. Based on OpenTelemetry, Traceloop provides full visibility into LLM requests, vector DB usage, and other stack infrastructure.7.9761580.000538
" - ] - }, - "metadata": {}, - "execution_count": 20 - } + "text/plain": [ + "" ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Question: write code to make a litellm completion call\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelQuestionResponseResponseTimeCost
9togethercomputer/llama-2-70b-chatwrite code to make a litellm completion call\\nTo make a completion call using litellm, you can use the `completion` function from the litellm package. Here's an example of how to use it:\\n```\\nfrom litellm import completion\\n\\n# Set ENV variables\\nos.environ[\"OPENAI_API_KEY\"] = \"your_openai_api_key\"\\nos.environ[\"COHERE_API_KEY\"] = \"your_cohere_api_key\"\\n\\n# Define the messages to be completed\\nmessages = [\\n {\\n \"content\": \"Hello, how are you?\",\\n \"role\": \"user\"\\n }\\n]\\n\\n# Make a completion call using OpenAI\\nresponse = completion(model=\"gpt-3.5-turbo\", messages=messages)\\n\\n# Make a completion call using Cohere\\nresponse = completion(\"command-nightly\", messages)\\n```\\nIn this example, we first set the ENV variables for the OpenAI and Cohere API keys. Then, we define a list of messages to be completed, which in this case contains a single message with the content \"Hello, how are you?\" and the role \"user\".\\n\\nNext, we make two completion calls using the `completion` function from litellm. The first call uses the OpenAI model `gpt-3.5-turbo` and passes in the list of messages. The second call uses the Cohere model `command-nightly` and passes in the same list of messages.\\n\\nThe `completion` function returns a response object that contains the completed messages. You can then use the `response.messages` attribute to access the completed messages.\\n\\nHere's an example of how to access the completed messages:\\n```\\n# Print the completed messages\\nprint(response.messages)\\n```\\nThis will print the completed messages, which should look something like this:\\n```\\n[{'content': 'Hello, how are you?', 'role': 'user', 'completion': 'I am doing well, thanks for asking.'}]\\n```\\nNote that the `completion` attribute contains the completed message. You can use this attribute to retrieve the completed message and use it in your application.32.1924530.001821
10gpt-3.5-turbowrite code to make a litellm completion callSure! Here's an example code to make a completion call using the litellm package:\\n\\n```python\\nfrom litellm import completion\\n\\n# Set the model and messages\\nmodel = \"gpt-3.5-turbo\"\\nmessages = [\\n {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\\n {\"role\": \"user\", \"content\": \"Who won the world series in 2020?\"},\\n {\"role\": \"assistant\", \"content\": \"The Los Angeles Dodgers won the World Series in 2020.\"},\\n {\"role\": \"user\", \"content\": \"Where was it played?\"}\\n]\\n\\n# Make the completion call\\nresponse = completion(model=model, messages=messages)\\n\\n# Print the assistant's reply\\nassistant_reply = response[\"choices\"][0][\"message\"][\"content\"]\\nprint(\"Assistant: \", assistant_reply)\\n```\\n\\nMake sure you have the litellm package installed (`pip install litellm`) and set the necessary environment variables for the API keys before running this code.9.3771550.000686
11claude-instant-1.2write code to make a litellm completion callHere is an example of making a completion call using litellm:\\n\\n```python\\nimport os\\nfrom litellm import completion\\n\\n# Set API keys as environment variables\\nos.environ[\"OPENAI_API_KEY\"] = \"your openai api key\" \\n\\n# Conversation context \\nmessages = [{\\n \"content\": \"Hello, how can I help you today?\",\\n \"role\": \"assistant\"\\n}]\\n\\n# Make completion call with GPT-3 model\\nresponse = completion(\\n model=\"gpt-3.5-turbo\", \\n messages=messages\\n)\\n\\nprint(response)\\n```\\n\\nTo break it down:\\n\\n- Import completion from litellm\\n- Set the OPENAI_API_KEY env var \\n- Define a messages list with the conversation context\\n- Call completion(), specifying the model (\"gpt-3.5-turbo\") and messages\\n- It will return the response from the API\\n- Print the response\\n\\nThis makes a simple completion call to OpenAI GPT-3 using litellm to handle the API details. You can also call other models like Cohere or Anthropic by specifying their name instead of the OpenAI9.8399880.001578
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" } - ] + ], + "source": [ + "from IPython.core.interactiveshell import InteractiveShell\n", + "InteractiveShell.ast_node_interactivity = \"all\"\n", + "from IPython.display import HTML\n", + "import pandas as pd\n", + "\n", + "df = pd.DataFrame(data)\n", + "grouped_by_question = df.groupby('Question')\n", + "\n", + "for question, group_data in grouped_by_question:\n", + " print(f\"Question: {question}\")\n", + " HTML(group_data.to_html())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "bmtAbC1rGVAm" + }, + "source": [ + "## Use Case 2 - Rewrite user input concisely" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "id": "boiHO1PhGXSL" + }, + "outputs": [], + "source": [ + "# enter your system prompt if you have one\n", + "system_prompt = \"\"\"\n", + "For a given user input, rewrite the input to make be more concise.\n", + "\"\"\"\n", + "\n", + "# user input for re-writing questions\n", + "questions = [\n", + " \"LiteLLM is a lightweight Python package that simplifies the process of making API calls to various language models. Here are some reasons why you should use LiteLLM:\\n\\n1. **Simplified API Calls**: LiteLLM abstracts away the complexity of making API calls to different language models. It provides a unified interface for invoking models from OpenAI, Azure, Cohere, Anthropic, Huggingface, and more.\\n\\n2. **Easy Integration**: LiteLLM seamlessly integrates with your existing codebase. You can import the package and start making API calls with just a few lines of code.\\n\\n3. **Flexibility**: LiteLLM supports a variety of language models, including GPT-3, GPT-Neo, chatGPT, and more. You can choose the model that suits your requirements and easily switch between them.\\n\\n4. **Convenience**: LiteLLM handles the authentication and connection details for you. You just need to set the relevant environment variables, and the package takes care of the rest.\\n\\n5. **Quick Prototyping**: LiteLLM is ideal for rapid prototyping and experimentation. With its simple API, you can quickly generate text, chat with models, and build interactive applications.\\n\\n6. **Community Support**: LiteLLM is actively maintained and supported by a community of developers. You can find help, share ideas, and collaborate with others to enhance your projects.\\n\\nOverall, LiteLLM simplifies the process of making API calls to language models, saving you time and effort while providing flexibility and convenience\",\n", + " \"Hi everyone! I'm [your name] and I'm currently working on [your project/role involving LLMs]. I came across LiteLLM and was really excited by how it simplifies working with different LLM providers. I'm hoping to use LiteLLM to [build an app/simplify my code/test different models etc]. Before finding LiteLLM, I was struggling with [describe any issues you faced working with multiple LLMs]. With LiteLLM's unified API and automatic translation between providers, I think it will really help me to [goals you have for using LiteLLM]. Looking forward to being part of this community and learning more about how I can build impactful applications powered by LLMs!Let me know if you would like me to modify or expand on any part of this suggested intro. I'm happy to provide any clarification or additional details you need!\",\n", + " \"Traceloop is a platform for monitoring and debugging the quality of your LLM outputs. It provides you with a way to track the performance of your LLM application; rollout changes with confidence; and debug issues in production. It is based on OpenTelemetry, so it can provide full visibility to your LLM requests, as well vector DB usage, and other infra in your stack.\"\n", + "]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "fwNcC_obICUc" + }, + "source": [ + "## Run Questions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "KtBjZ1mUIBiJ" + }, + "outputs": [], + "source": [ + "from litellm import completion, completion_cost\n", + "import os\n", + "import time\n", + "\n", + "# optional use litellm dashboard to view logs\n", + "# litellm.use_client = True\n", + "# litellm.token = \"ishaan_2@berri.ai\" # set your email\n", + "\n", + "os.environ['TOGETHERAI_API_KEY'] = \"\"\n", + "os.environ['OPENAI_API_KEY'] = \"\"\n", + "os.environ['ANTHROPIC_API_KEY'] = \"\"\n", + "\n", + "models = ['togethercomputer/llama-2-70b-chat', 'gpt-3.5-turbo', 'claude-instant-1.2'] # enter llms to benchmark\n", + "data_2 = []\n", + "\n", + "for question in questions: # group by question\n", + " for model in models:\n", + " print(f\"running question: {question} for model: {model}\")\n", + " start_time = time.time()\n", + " # show response, response time, cost for each question\n", + " response = completion(\n", + " model=model,\n", + " max_tokens=500,\n", + " messages = [\n", + " {\n", + " \"role\": \"system\", \"content\": system_prompt\n", + " },\n", + " {\n", + " \"role\": \"user\", \"content\": \"User input:\" + question\n", + " }\n", + " ],\n", + " )\n", + " end = time.time()\n", + " total_time = end-start_time # response time\n", + " # print(response)\n", + " cost = completion_cost(response) # cost for completion\n", + " raw_response = response['choices'][0]['message']['content'] # response string\n", + " #print(raw_response, total_time, cost)\n", + "\n", + " # add to pandas df\n", + " data_2.append(\n", + " {\n", + " 'Model': model,\n", + " 'Question': question,\n", + " 'Response': raw_response,\n", + " 'ResponseTime': total_time,\n", + " 'Cost': cost\n", + " })\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-PCYIzG5M0II" + }, + "source": [ + "## View Logs - Group by Question" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "-3R5-2q8IiL2", + "outputId": "c4a0d9e5-bb21-4de0-fc4c-9f5e71d0f177" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Question: Hi everyone! I'm [your name] and I'm currently working on [your project/role involving LLMs]. I came across LiteLLM and was really excited by how it simplifies working with different LLM providers. I'm hoping to use LiteLLM to [build an app/simplify my code/test different models etc]. Before finding LiteLLM, I was struggling with [describe any issues you faced working with multiple LLMs]. With LiteLLM's unified API and automatic translation between providers, I think it will really help me to [goals you have for using LiteLLM]. Looking forward to being part of this community and learning more about how I can build impactful applications powered by LLMs!Let me know if you would like me to modify or expand on any part of this suggested intro. I'm happy to provide any clarification or additional details you need!\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelQuestionResponseResponseTimeCost
3togethercomputer/llama-2-70b-chatHi everyone! I'm [your name] and I'm currently working on [your project/role involving LLMs]. I came across LiteLLM and was really excited by how it simplifies working with different LLM providers. I'm hoping to use LiteLLM to [build an app/simplify my code/test different models etc]. Before finding LiteLLM, I was struggling with [describe any issues you faced working with multiple LLMs]. With LiteLLM's unified API and automatic translation between providers, I think it will really help me to [goals you have for using LiteLLM]. Looking forward to being part of this community and learning more about how I can build impactful applications powered by LLMs!Let me know if you would like me to modify or expand on any part of this suggested intro. I'm happy to provide any clarification or additional details you need!\\nHere's a more concise version of the user input:\\n\\n\"Hi everyone! I'm [your name] and I'm working on [your project/role involving LLMs]. I recently discovered LiteLLM and I'm excited to use it to [build an app/simplify my code/test different models etc]. Before LiteLLM, I struggled with [describe any issues you faced working with multiple LLMs]. I'm looking forward to using LiteLLM's unified API and automatic translation to achieve my goals. I'm eager to learn more about building impactful applications powered by LLMs and to be part of this community. Let me know if you have any questions or need further clarification.\"\\n\\nIn this revised version, we've kept the essential information and removed some of the extraneous language. We've also rephrased some of the sentences to make them more concise and easier to read.18.3006200.001200
4gpt-3.5-turboHi everyone! I'm [your name] and I'm currently working on [your project/role involving LLMs]. I came across LiteLLM and was really excited by how it simplifies working with different LLM providers. I'm hoping to use LiteLLM to [build an app/simplify my code/test different models etc]. Before finding LiteLLM, I was struggling with [describe any issues you faced working with multiple LLMs]. With LiteLLM's unified API and automatic translation between providers, I think it will really help me to [goals you have for using LiteLLM]. Looking forward to being part of this community and learning more about how I can build impactful applications powered by LLMs!Let me know if you would like me to modify or expand on any part of this suggested intro. I'm happy to provide any clarification or additional details you need!User input: Hi, I'm [your name] and I'm excited about using LiteLLM to simplify working with different LLM providers. Before finding LiteLLM, I faced challenges working with multiple LLMs. With LiteLLM's unified API and automatic translation, I believe it will help me achieve my goals of [state your goals]. I look forward to being part of this community and learning how to build impactful applications with LLMs. Let me know if you need any further clarification or details.7.3854720.000525
5claude-instant-1.2Hi everyone! I'm [your name] and I'm currently working on [your project/role involving LLMs]. I came across LiteLLM and was really excited by how it simplifies working with different LLM providers. I'm hoping to use LiteLLM to [build an app/simplify my code/test different models etc]. Before finding LiteLLM, I was struggling with [describe any issues you faced working with multiple LLMs]. With LiteLLM's unified API and automatic translation between providers, I think it will really help me to [goals you have for using LiteLLM]. Looking forward to being part of this community and learning more about how I can build impactful applications powered by LLMs!Let me know if you would like me to modify or expand on any part of this suggested intro. I'm happy to provide any clarification or additional details you need!Here is a more concise rewrite of the user input:\\n\\nHi everyone, I'm [your name]. I'm currently [your project/role] and came across LiteLLM, which simplifies working with different LLMs through its unified API. I hope to [build an app/simplify code/test models] with LiteLLM since I previously struggled with [issues]. LiteLLM's automatic translation between providers will help me [goals] and build impactful LLM applications. Looking forward to learning more as part of this community. Let me know if you need any clarification on my plans to use LiteLLM.8.6282170.001022
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Question: LiteLLM is a lightweight Python package that simplifies the process of making API calls to various language models. Here are some reasons why you should use LiteLLM:\n", + "\n", + "1. **Simplified API Calls**: LiteLLM abstracts away the complexity of making API calls to different language models. It provides a unified interface for invoking models from OpenAI, Azure, Cohere, Anthropic, Huggingface, and more.\n", + "\n", + "2. **Easy Integration**: LiteLLM seamlessly integrates with your existing codebase. You can import the package and start making API calls with just a few lines of code.\n", + "\n", + "3. **Flexibility**: LiteLLM supports a variety of language models, including GPT-3, GPT-Neo, chatGPT, and more. You can choose the model that suits your requirements and easily switch between them.\n", + "\n", + "4. **Convenience**: LiteLLM handles the authentication and connection details for you. You just need to set the relevant environment variables, and the package takes care of the rest.\n", + "\n", + "5. **Quick Prototyping**: LiteLLM is ideal for rapid prototyping and experimentation. With its simple API, you can quickly generate text, chat with models, and build interactive applications.\n", + "\n", + "6. **Community Support**: LiteLLM is actively maintained and supported by a community of developers. You can find help, share ideas, and collaborate with others to enhance your projects.\n", + "\n", + "Overall, LiteLLM simplifies the process of making API calls to language models, saving you time and effort while providing flexibility and convenience\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelQuestionResponseResponseTimeCost
0togethercomputer/llama-2-70b-chatLiteLLM is a lightweight Python package that simplifies the process of making API calls to various language models. Here are some reasons why you should use LiteLLM:\\n\\n1. **Simplified API Calls**: LiteLLM abstracts away the complexity of making API calls to different language models. It provides a unified interface for invoking models from OpenAI, Azure, Cohere, Anthropic, Huggingface, and more.\\n\\n2. **Easy Integration**: LiteLLM seamlessly integrates with your existing codebase. You can import the package and start making API calls with just a few lines of code.\\n\\n3. **Flexibility**: LiteLLM supports a variety of language models, including GPT-3, GPT-Neo, chatGPT, and more. You can choose the model that suits your requirements and easily switch between them.\\n\\n4. **Convenience**: LiteLLM handles the authentication and connection details for you. You just need to set the relevant environment variables, and the package takes care of the rest.\\n\\n5. **Quick Prototyping**: LiteLLM is ideal for rapid prototyping and experimentation. With its simple API, you can quickly generate text, chat with models, and build interactive applications.\\n\\n6. **Community Support**: LiteLLM is actively maintained and supported by a community of developers. You can find help, share ideas, and collaborate with others to enhance your projects.\\n\\nOverall, LiteLLM simplifies the process of making API calls to language models, saving you time and effort while providing flexibility and convenienceHere's a more concise version of the user input:\\n\\nLiteLLM is a lightweight Python package that simplifies API calls to various language models. It abstracts away complexity, integrates seamlessly, supports multiple models, and handles authentication. It's ideal for rapid prototyping and has community support. It saves time and effort while providing flexibility and convenience.11.2942500.001251
1gpt-3.5-turboLiteLLM is a lightweight Python package that simplifies the process of making API calls to various language models. Here are some reasons why you should use LiteLLM:\\n\\n1. **Simplified API Calls**: LiteLLM abstracts away the complexity of making API calls to different language models. It provides a unified interface for invoking models from OpenAI, Azure, Cohere, Anthropic, Huggingface, and more.\\n\\n2. **Easy Integration**: LiteLLM seamlessly integrates with your existing codebase. You can import the package and start making API calls with just a few lines of code.\\n\\n3. **Flexibility**: LiteLLM supports a variety of language models, including GPT-3, GPT-Neo, chatGPT, and more. You can choose the model that suits your requirements and easily switch between them.\\n\\n4. **Convenience**: LiteLLM handles the authentication and connection details for you. You just need to set the relevant environment variables, and the package takes care of the rest.\\n\\n5. **Quick Prototyping**: LiteLLM is ideal for rapid prototyping and experimentation. With its simple API, you can quickly generate text, chat with models, and build interactive applications.\\n\\n6. **Community Support**: LiteLLM is actively maintained and supported by a community of developers. You can find help, share ideas, and collaborate with others to enhance your projects.\\n\\nOverall, LiteLLM simplifies the process of making API calls to language models, saving you time and effort while providing flexibility and convenienceLiteLLM is a lightweight Python package that simplifies API calls to various language models. Here's why you should use it:\\n1. Simplified API Calls: Works with multiple models (OpenAI, Azure, Cohere, Anthropic, Huggingface).\\n2. Easy Integration: Import and start using it quickly in your codebase.\\n3. Flexibility: Supports GPT-3, GPT-Neo, chatGPT, etc. easily switch between models.\\n4. Convenience: Handles authentication and connection details, just set environment variables.\\n5. Quick Prototyping: Great for rapid prototyping and building interactive applications.\\n6. Community Support: Actively maintained and supported by a developer community.9.7783150.000795
2claude-instant-1.2LiteLLM is a lightweight Python package that simplifies the process of making API calls to various language models. Here are some reasons why you should use LiteLLM:\\n\\n1. **Simplified API Calls**: LiteLLM abstracts away the complexity of making API calls to different language models. It provides a unified interface for invoking models from OpenAI, Azure, Cohere, Anthropic, Huggingface, and more.\\n\\n2. **Easy Integration**: LiteLLM seamlessly integrates with your existing codebase. You can import the package and start making API calls with just a few lines of code.\\n\\n3. **Flexibility**: LiteLLM supports a variety of language models, including GPT-3, GPT-Neo, chatGPT, and more. You can choose the model that suits your requirements and easily switch between them.\\n\\n4. **Convenience**: LiteLLM handles the authentication and connection details for you. You just need to set the relevant environment variables, and the package takes care of the rest.\\n\\n5. **Quick Prototyping**: LiteLLM is ideal for rapid prototyping and experimentation. With its simple API, you can quickly generate text, chat with models, and build interactive applications.\\n\\n6. **Community Support**: LiteLLM is actively maintained and supported by a community of developers. You can find help, share ideas, and collaborate with others to enhance your projects.\\n\\nOverall, LiteLLM simplifies the process of making API calls to language models, saving you time and effort while providing flexibility and convenienceHere is a concise rewrite of the user input:\\n\\nLiteLLM is a lightweight Python package that simplifies accessing various language models. It provides a unified interface for models from OpenAI, Azure, Cohere, Anthropic, Huggingface, and more. Key benefits include simplified API calls, easy integration, flexibility to use different models, automated handling of authentication, and support for quick prototyping. The actively maintained package saves time by abstracting away complexity while offering convenience and a collaborative community.7.6975200.001098
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Question: Traceloop is a platform for monitoring and debugging the quality of your LLM outputs. It provides you with a way to track the performance of your LLM application; rollout changes with confidence; and debug issues in production. It is based on OpenTelemetry, so it can provide full visibility to your LLM requests, as well vector DB usage, and other infra in your stack.\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelQuestionResponseResponseTimeCost
6togethercomputer/llama-2-70b-chatTraceloop is a platform for monitoring and debugging the quality of your LLM outputs. It provides you with a way to track the performance of your LLM application; rollout changes with confidence; and debug issues in production. It is based on OpenTelemetry, so it can provide full visibility to your LLM requests, as well vector DB usage, and other infra in your stack.\\nRewritten input: Traceloop is a platform for monitoring and debugging LLM outputs. It allows users to track performance, rollout changes confidently, and debug issues in production. It uses OpenTelemetry for full visibility into LLM requests, vector DB usage, and other infrastructure.9.0604440.000525
7gpt-3.5-turboTraceloop is a platform for monitoring and debugging the quality of your LLM outputs. It provides you with a way to track the performance of your LLM application; rollout changes with confidence; and debug issues in production. It is based on OpenTelemetry, so it can provide full visibility to your LLM requests, as well vector DB usage, and other infra in your stack.Traceloop is a platform for monitoring and debugging the quality of your LLM outputs. It helps track performance, rollout changes, and debug issues in production. It is based on OpenTelemetry, providing visibility to LLM requests, vector DB usage, and other infrastructure in your stack.7.3046610.000283
8claude-instant-1.2Traceloop is a platform for monitoring and debugging the quality of your LLM outputs. It provides you with a way to track the performance of your LLM application; rollout changes with confidence; and debug issues in production. It is based on OpenTelemetry, so it can provide full visibility to your LLM requests, as well vector DB usage, and other infra in your stack.Here is a more concise rewrite of the user input:\\n\\nTraceloop monitors and debugs LLM quality. It tracks LLM performance, enables confident changes, and debugs production issues. Based on OpenTelemetry, Traceloop provides full visibility into LLM requests, vector DB usage, and other stack infrastructure.7.9761580.000538
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from IPython.core.interactiveshell import InteractiveShell\n", + "InteractiveShell.ast_node_interactivity = \"all\"\n", + "from IPython.display import HTML\n", + "import pandas as pd\n", + "\n", + "df = pd.DataFrame(data_2)\n", + "grouped_by_question = df.groupby('Question')\n", + "\n", + "for question, group_data in grouped_by_question:\n", + " print(f\"Question: {question}\")\n", + " HTML(group_data.to_html())\n" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } \ No newline at end of file diff --git a/cookbook/Evaluating_LLMs.ipynb b/cookbook/Evaluating_LLMs.ipynb index 6d7757ec71..e27e8934f7 100644 --- a/cookbook/Evaluating_LLMs.ipynb +++ b/cookbook/Evaluating_LLMs.ipynb @@ -1,581 +1,579 @@ { - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "Ys9n20Es2IzT" - }, - "source": [ - "# Evaluate Multiple LLM Providers with LiteLLM\n", - "\n", - "\n", - "\n", - "* Quality Testing\n", - "* Load Testing\n", - "* Duration Testing\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ZXOXl23PIIP6" - }, - "outputs": [], - "source": [ - "!pip install litellm python-dotenv" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "id": "LINuBzXDItq2" - }, - "outputs": [], - "source": [ - "import litellm\n", - "from litellm import load_test_model, testing_batch_completion\n", - "import time" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "EkxMhsWdJdu4" - }, - "outputs": [], - "source": [ - "import os \n", - "os.environ[\"OPENAI_API_KEY\"] = \"...\"\n", - "os.environ[\"ANTHROPIC_API_KEY\"] = \"...\"\n", - "os.environ[\"REPLICATE_API_KEY\"] = \"...\"" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "mv5XdnqeW5I_" - }, - "source": [ - "# Quality Test endpoint\n", - "\n", - "## Test the same prompt across multiple LLM providers\n", - "\n", - "In this example, let's ask some questions about Paul Graham" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "id": "XpzrR5m4W_Us" - }, - "outputs": [], - "source": [ - "models = [\"gpt-3.5-turbo\", \"gpt-3.5-turbo-16k\", \"gpt-4\", \"claude-instant-1\", {\"model\": \"replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781\", \"custom_llm_provider\": \"replicate\"}]\n", - "context = \"\"\"Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a \"hacker philosopher\".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.\"\"\"\n", - "prompts = [\"Who is Paul Graham?\", \"What is Paul Graham known for?\" , \"Is paul graham a writer?\" , \"Where does Paul Graham live?\", \"What has Paul Graham done?\"]\n", - "messages = [[{\"role\": \"user\", \"content\": context + \"\\n\" + prompt}] for prompt in prompts] # pass in a list of messages we want to test\n", - "result = testing_batch_completion(models=models, messages=messages)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "9nzeLySnvIIW" - }, - "source": [ - "## Visualize the data" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 403 - }, - "id": "X-2n7hdAuVAY", - "outputId": "69cc0de1-68e3-4c12-a8ea-314880010d94" - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "
\n", - "
\n", - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Model Nameclaude-instant-1gpt-3.5-turbo-0613gpt-3.5-turbo-16k-0613gpt-4-0613replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781
Prompt
\\nIs paul graham a writer?Yes, Paul Graham is considered a writer in ad...Yes, Paul Graham is a writer. He has written s...Yes, Paul Graham is a writer. He has authored ...Yes, Paul Graham is a writer. He is an essayis...Yes, Paul Graham is an author. According to t...
\\nWhat has Paul Graham done?Paul Graham has made significant contribution...Paul Graham has achieved several notable accom...Paul Graham has made significant contributions...Paul Graham is known for his work on the progr...Paul Graham has had a diverse career in compu...
\\nWhat is Paul Graham known for?Paul Graham is known for several things:\\n\\n-...Paul Graham is known for his work on the progr...Paul Graham is known for his work on the progr...Paul Graham is known for his work on the progr...Paul Graham is known for many things, includi...
\\nWhere does Paul Graham live?Based on the information provided:\\n\\n- Paul ...According to the given information, Paul Graha...Paul Graham currently lives in England, where ...The text does not provide a current place of r...Based on the information provided, Paul Graha...
\\nWho is Paul Graham?Paul Graham is an influential computer scient...Paul Graham is an English computer scientist, ...Paul Graham is an English computer scientist, ...Paul Graham is an English computer scientist, ...Paul Graham is an English computer scientist,...
\n", - "
\n", - " \n", - "\n", - "\n", - "\n", - "
\n", - " \n", - "
\n", - "\n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - " \n", - "\n", - " \n", - "
\n", - "
\n" - ], - "text/plain": [ - "Model Name claude-instant-1 \\\n", - "Prompt \n", - "\\nIs paul graham a writer? Yes, Paul Graham is considered a writer in ad... \n", - "\\nWhat has Paul Graham done? Paul Graham has made significant contribution... \n", - "\\nWhat is Paul Graham known for? Paul Graham is known for several things:\\n\\n-... \n", - "\\nWhere does Paul Graham live? Based on the information provided:\\n\\n- Paul ... \n", - "\\nWho is Paul Graham? Paul Graham is an influential computer scient... \n", - "\n", - "Model Name gpt-3.5-turbo-0613 \\\n", - "Prompt \n", - "\\nIs paul graham a writer? Yes, Paul Graham is a writer. He has written s... \n", - "\\nWhat has Paul Graham done? Paul Graham has achieved several notable accom... \n", - "\\nWhat is Paul Graham known for? Paul Graham is known for his work on the progr... \n", - "\\nWhere does Paul Graham live? According to the given information, Paul Graha... \n", - "\\nWho is Paul Graham? Paul Graham is an English computer scientist, ... \n", - "\n", - "Model Name gpt-3.5-turbo-16k-0613 \\\n", - "Prompt \n", - "\\nIs paul graham a writer? Yes, Paul Graham is a writer. He has authored ... \n", - "\\nWhat has Paul Graham done? Paul Graham has made significant contributions... \n", - "\\nWhat is Paul Graham known for? Paul Graham is known for his work on the progr... \n", - "\\nWhere does Paul Graham live? Paul Graham currently lives in England, where ... \n", - "\\nWho is Paul Graham? Paul Graham is an English computer scientist, ... \n", - "\n", - "Model Name gpt-4-0613 \\\n", - "Prompt \n", - "\\nIs paul graham a writer? Yes, Paul Graham is a writer. He is an essayis... \n", - "\\nWhat has Paul Graham done? Paul Graham is known for his work on the progr... \n", - "\\nWhat is Paul Graham known for? Paul Graham is known for his work on the progr... \n", - "\\nWhere does Paul Graham live? The text does not provide a current place of r... \n", - "\\nWho is Paul Graham? Paul Graham is an English computer scientist, ... \n", - "\n", - "Model Name replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781 \n", - "Prompt \n", - "\\nIs paul graham a writer? Yes, Paul Graham is an author. According to t... \n", - "\\nWhat has Paul Graham done? Paul Graham has had a diverse career in compu... \n", - "\\nWhat is Paul Graham known for? Paul Graham is known for many things, includi... \n", - "\\nWhere does Paul Graham live? Based on the information provided, Paul Graha... \n", - "\\nWho is Paul Graham? Paul Graham is an English computer scientist,... " - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import pandas as pd\n", - "\n", - "# Create an empty list to store the row data\n", - "table_data = []\n", - "\n", - "# Iterate through the list and extract the required data\n", - "for item in result:\n", - " prompt = item['prompt'][0]['content'].replace(context, \"\") # clean the prompt for easy comparison\n", - " model = item['response']['model']\n", - " response = item['response']['choices'][0]['message']['content']\n", - " table_data.append([prompt, model, response])\n", - "\n", - "# Create a DataFrame from the table data\n", - "df = pd.DataFrame(table_data, columns=['Prompt', 'Model Name', 'Response'])\n", - "\n", - "# Pivot the DataFrame to get the desired table format\n", - "table = df.pivot(index='Prompt', columns='Model Name', values='Response')\n", - "table" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "zOxUM40PINDC" - }, - "source": [ - "# Load Test endpoint\n", - "\n", - "Run 100+ simultaneous queries across multiple providers to see when they fail + impact on latency" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ZkQf_wbcIRQ9" - }, - "outputs": [], - "source": [ - "models=[\"gpt-3.5-turbo\", \"replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781\", \"claude-instant-1\"]\n", - "context = \"\"\"Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a \"hacker philosopher\".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.\"\"\"\n", - "prompt = \"Where does Paul Graham live?\"\n", - "final_prompt = context + prompt\n", - "result = load_test_model(models=models, prompt=final_prompt, num_calls=5)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "8vSNBFC06aXY" - }, - "source": [ - "## Visualize the data" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 552 - }, - "id": "SZfiKjLV3-n8", - "outputId": "00f7f589-b3da-43ed-e982-f9420f074b8d" - }, - "outputs": [ - { - "data": { - "image/png": "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WwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWz8UVB4+fIhx48ahXbt2CA8PBwAcOHAAt2/f1mhxRERElLmpHVSOHz+O4sWL4/z58wgICEBsbCwA4Pr165g4caLGCyQiIqLMS+2gMmrUKEybNg1BQUEwMDCQ2mvWrIlz585ptDgiIiLK3NQOKjdv3kSLFi3StNva2uLt27caKYqIiIgI+IGgYmFhgZcvX6Zpv3r1KnLmzKmRooiIiIiAHwgqbdu2xciRI/Hq1SsoFAoolUqcPn0aw4YNQ+fOndOjRiIiIsqk1A4qM2bMQKFCheDo6IjY2FgUKVIEVatWRcWKFTFu3Lj0qJGIiIgyKT11b2BgYICVK1di/PjxuHXrFmJjY1GqVCnkz58/PeojIiKiTEztoJIqV65cyJUrlyZrISIiIlKhdlARQmD79u0IDg5GeHg4lEqlyvKAgACNFUdERESZm9pBZdCgQVixYgVq1KiB7NmzQ6FQpEddREREROoHFT8/PwQEBKBhw4bpUQ8RERGRRO1ZP+bm5sibN2961EJERESkQu2gMmnSJEyePBnx8fHpUQ8RERGRRO1dP25ubti0aRNsbW3h5OQEfX19leVXrlzRWHFERESUuakdVNzd3XH58mV07NiRg2mJiIgoXakdVPbv34/AwEBUrlw5PeohIiIikqg9RsXR0RFmZmbpUQsRERGRCrWDyvz58zFixAiEhoamQzlERERE/6P2rp+OHTviw4cPyJcvH0xMTNIMpo2IiNBYcUSZndOo/dougbQsdFYjbZdApFVqBxUvL690KIOIiIgorR+a9UNERET0K3xXUImOjpYG0EZHR//ruhxoS0RERJryXUHF0tISL1++hK2tLSwsLL567BQhBBQKBVJSUjReJBEREWVO3xVUjh49CisrKwBAcHBwuhZERERElOq7gkq1atWQN29eXLx4EdWqVUvvmoiIiIgAqHEcldDQUO7WISIiol9K7QO+aZK3tzdcXFxgZmYGMzMzVKhQAQcOHNBmSURERCQjak1PDgwMhLm5+b+u07Rp0+++PwcHB8yaNQv58+eHEALr169Hs2bNcPXqVRQtWlSd0oiIiCgDUiuo/NcxVNSd9dOkSROV69OnT4e3tzfOnTvHoEJERETqBZVXr17B1tY2XQpJSUnBtm3bEBcXhwoVKnx1ncTERCQmJkrX/+uYLkRERPR7++4xKl87doom3Lx5E1myZIGhoSF69+6NnTt3okiRIl9dd+bMmTA3N5cujo6O6VITERERycN3BxUhRLoUULBgQVy7dg3nz59Hnz594O7ujn/++eer644ePRpRUVHS5enTp+lSExEREcnDd+/6cXd3h7GxscYLMDAwgLOzMwCgTJkyuHjxIhYtWoQVK1akWdfQ0BCGhoYar4GIiIjk6buDytq1a9OzDolSqVQZh0JERESZl9pnT9ak0aNHo0GDBsiVKxdiYmKwceNGHDt2DIGBgdosi4iIiGRCq0ElPDwcnTt3xsuXL2Fubg4XFxcEBgaiTp062iyLiIiIZEKrQWX16tXafHgiIiKSuR8+hH5ISAgCAwMRHx8PIP1mBREREVHmpXZQeffuHWrXro0CBQqgYcOGePnyJQCge/fuGDp0qMYLJCIiosxL7aAyePBg6Onp4cmTJzAxMZHa27Rpg4MHD2q0OCIiIsrc1B6jcujQIQQGBsLBwUGlPX/+/AgLC9NYYURERERq96jExcWp9KSkioiI4MHYiIiISKPUDipVqlTBhg0bpOsKhQJKpRJz5sxBjRo1NFocERERZW5q7/qZM2cOatWqhUuXLiEpKQkjRozA7du3ERERgdOnT6dHjURERJRJqd2jUqxYMdy/fx+VK1dGs2bNEBcXh5YtW+Lq1avIly9fetRIREREmdQPHfDN3NwcY8eO1XQtRERERCrU7lE5ePAgTp06JV1ftmwZSpYsifbt2+P9+/caLY6IiIgyN7WDyvDhwxEdHQ0AuHnzJoYMGYKGDRvi8ePHGDJkiMYLJCIiosxL7V0/jx8/RpEiRQAAO3bsQJMmTTBjxgxcuXIFDRs21HiBRERElHmp3aNiYGCADx8+AAAOHz6MunXrAgCsrKyknhYiIiIiTVC7R6Vy5coYMmQIKlWqhAsXLmDLli0AgPv376c5Wi0RERHRz1C7R2Xp0qXQ09PD9u3b4e3tjZw5cwIADhw4gPr162u8QCIiIsq81O5RyZUrF/bt25emfeHChRopiIiIiCjVDx1HRalUIiQkBOHh4VAqlSrLqlatqpHCiIiIiNQOKufOnUP79u0RFhYGIYTKMoVCgZSUFI0VR0RERJmb2kGld+/eKFu2LPbv348cOXJAoVCkR11ERERE6geVBw8eYPv27XB2dk6PeoiIiIgkas/6KV++PEJCQtKjFiIiIiIVaveo9O/fH0OHDsWrV69QvHhx6Ovrqyx3cXHRWHFERESUuakdVFq1agUA6Natm9SmUCgghOBgWiIiItKoHzrXDxEREdGvoHZQyZ07d3rUQURERJTGDx3w7eHDh/Dy8sKdO3cAAEWKFMHAgQORL18+jRZHREREmZvaQSUwMBBNmzZFyZIlUalSJQDA6dOnUbRoUezduxd16tTReJHa4jRqv7ZLIC0LndVI2yUQEWVqageVUaNGYfDgwZg1a1aa9pEjR2aooEJERETapfZxVO7cuYPu3bunae/WrRv++ecfjRRFREREBPxAULGxscG1a9fStF+7dg22traaqImIiIgIwA/s+unZsyd69eqFR48eoWLFigA+jVGZPXs2hgwZovECiYiIKPNSO6iMHz8eWbNmxfz58zF69GgAgL29PSZNmoQBAwZovEAiIiLKvNQOKgqFAoMHD8bgwYMRExMDAMiaNavGCyMiIiL6oeOoAEB4eDju3bsHAChUqBBsbGw0VhQRERER8AODaWNiYtCpUyfY29ujWrVqqFatGuzt7dGxY0dERUWlR41ERESUSakdVHr06IHz589j//79iIyMRGRkJPbt24dLly7Bw8MjPWokIiKiTErtXT/79u1DYGAgKleuLLXVq1cPK1euRP369TVaHBEREWVuaveoZMuWDebm5mnazc3NYWlpqZGiiIiIiIAfCCrjxo3DkCFD8OrVK6nt1atXGD58OMaPH6/R4oiIiChzU3vXj7e3N0JCQpArVy7kypULAPDkyRMYGhrizZs3WLFihbTulStXNFcpERERZTpqB5XmzZunQxlEREREaakdVCZOnJgedRARERGlofYYladPn+LZs2fS9QsXLmDQoEHw9fXVaGFEREREageV9u3bIzg4GMCnQbS1a9fGhQsXMHbsWEyZMkXjBRIREVHmpXZQuXXrFv744w8AwNatW1G8eHGcOXMG/v7+WLdunabrIyIiokxM7aCSnJwMQ0NDAMDhw4fRtGlTAJ/O9/Py5UvNVkdERESZmtpBpWjRovDx8cHJkycRFBQkHY32xYsXyJYtm8YLJCIiosxL7aAye/ZsrFixAtWrV0e7du1QokQJAMCePXukXUJEREREmqD29OTq1avj7du3iI6OVjlkfq9evWBiYqLR4oiIiChzU7tHBQCEELh8+TJWrFiBmJgYAICBgQGDChEREWmU2j0qYWFhqF+/Pp48eYLExETUqVMHWbNmxezZs5GYmAgfH5/0qJOIiIgyIbV7VAYOHIiyZcvi/fv3MDY2ltpbtGiBI0eOaLQ4IiIiytzU7lE5efIkzpw5AwMDA5V2JycnPH/+XGOFEREREando6JUKpGSkpKm/dmzZ8iaNatGiiIiIiICfiCo1K1bF15eXtJ1hUKB2NhYTJw4EQ0bNtRkbURERJTJqb3rZ/78+ahXrx6KFCmChIQEtG/fHg8ePIC1tTU2bdqUHjUSERFRJqV2UHFwcMD169exZcsWXL9+HbGxsejevTs6dOigMriWiIiI6GepHVQAQE9PDx06dECHDh2ktpcvX2L48OFYunSpxoojIiKizE2toHL79m0EBwfDwMAAbm5usLCwwNu3bzF9+nT4+Pggb9686VUnERERZULfPZh2z549KFWqFAYMGIDevXujbNmyCA4ORuHChXHnzh3s3LkTt2/fTs9aiYiIKJP57qAybdo0eHp6Ijo6GgsWLMCjR48wYMAA/P333zh48KB0FmUiIiIiTfnuoHLv3j14enoiS5Ys6N+/P3R0dLBw4UKUK1cuPesjIiKiTOy7g0pMTAzMzMwAALq6ujA2NuaYFCIiIkpXag2mDQwMhLm5OYBPR6g9cuQIbt26pbJO06ZNNVcdERERZWpqBRV3d3eV6x4eHirXFQrFVw+vT0RERPQjvjuoKJXK9KyDiIiIKA21z/VDRERE9KtoNajMnDkT5cqVQ9asWWFra4vmzZvj3r172iyJiIiIZESrQeX48ePw9PTEuXPnEBQUhOTkZNStWxdxcXHaLIuIiIhk4ofO9aMpBw8eVLm+bt062Nra4vLly6hataqWqiIiIiK50GpQ+VJUVBQAwMrK6qvLExMTkZiYKF2Pjo7+JXURERGRdvzQrp/IyEisWrUKo0ePRkREBADgypUreP78+Q8XolQqMWjQIFSqVAnFihX76jozZ86Eubm5dHF0dPzhxyMiIiL5Uzuo3LhxAwUKFMDs2bMxb948REZGAgACAgIwevToHy7E09MTt27dwubNm7+5zujRoxEVFSVdnj59+sOPR0RERPKndlAZMmQIunTpggcPHsDIyEhqb9iwIU6cOPFDRfTr1w/79u1DcHAwHBwcvrmeoaEhzMzMVC5ERESUcak9RuXixYtYsWJFmvacOXPi1atXat2XEAL9+/fHzp07cezYMeTJk0fdcoiIiCgDUzuoGBoafnUQ6/3792FjY6PWfXl6emLjxo3YvXs3smbNKgUdc3NzGBsbq1saERERZTBq7/pp2rQppkyZguTkZACfzu/z5MkTjBw5Eq1atVLrvry9vREVFYXq1asjR44c0mXLli3qlkVEREQZkNpBZf78+YiNjYWtrS3i4+NRrVo1ODs7I2vWrJg+fbpa9yWE+OqlS5cu6pZFREREGZDau37Mzc0RFBSEU6dO4caNG4iNjUXp0qVRu3bt9KiPiIiIMrEfPuBb5cqVUblyZU3WQkRERKRC7aCyePHir7YrFAoYGRnB2dkZVatWha6u7k8XR0RERJmb2kFl4cKFePPmDT58+ABLS0sAwPv372FiYoIsWbIgPDwcefPmRXBwMI8cS0RERD9F7cG0M2bMQLly5fDgwQO8e/cO7969w/3791G+fHksWrQIT548gZ2dHQYPHpwe9RIREVEmonaPyrhx47Bjxw7ky5dPanN2dsa8efPQqlUrPHr0CHPmzFF7qjIRERHRl9TuUXn58iU+fvyYpv3jx4/SAdvs7e0RExPz89URERFRpqZ2UKlRowY8PDxw9epVqe3q1avo06cPatasCQC4efMmD4dPREREP03toLJ69WpYWVmhTJkyMDQ0hKGhIcqWLQsrKyusXr0aAJAlSxbMnz9f48USERFR5qL2GBU7OzsEBQXh7t27uH//PgCgYMGCKFiwoLROjRo1NFchERERZVo/fMC3QoUKoVChQpqshYiIiEjFDwWVZ8+eYc+ePXjy5AmSkpJUli1YsEAjhRERERGpHVSOHDmCpk2b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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "\n", - "## calculate avg response time\n", - "unique_models = set(result[\"response\"]['model'] for result in result[\"results\"])\n", - "model_dict = {model: {\"response_time\": []} for model in unique_models}\n", - "for completion_result in result[\"results\"]:\n", - " model_dict[completion_result[\"response\"][\"model\"]][\"response_time\"].append(completion_result[\"response_time\"])\n", - "\n", - "avg_response_time = {}\n", - "for model, data in model_dict.items():\n", - " avg_response_time[model] = sum(data[\"response_time\"]) / len(data[\"response_time\"])\n", - "\n", - "models = list(avg_response_time.keys())\n", - "response_times = list(avg_response_time.values())\n", - "\n", - "plt.bar(models, response_times)\n", - "plt.xlabel('Model', fontsize=10)\n", - "plt.ylabel('Average Response Time')\n", - "plt.title('Average Response Times for each Model')\n", - "\n", - "plt.xticks(models, [model[:15]+'...' if len(model) > 15 else model for model in models], rotation=45)\n", - "plt.show()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "inSDIE3_IRds" - }, - "source": [ - "# Duration Test endpoint\n", - "\n", - "Run load testing for 2 mins. Hitting endpoints with 100+ queries every 15 seconds." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "id": "ePIqDx2EIURH" - }, - "outputs": [], - "source": [ - "models=[\"gpt-3.5-turbo\", \"replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781\", \"claude-instant-1\"]\n", - "context = \"\"\"Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a \"hacker philosopher\".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.\"\"\"\n", - "prompt = \"Where does Paul Graham live?\"\n", - "final_prompt = context + prompt\n", - "result = load_test_model(models=models, prompt=final_prompt, num_calls=100, interval=15, duration=120)" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 552 - }, - "id": "k6rJoELM6t1K", - "outputId": "f4968b59-3bca-4f78-a88b-149ad55e3cf7" - }, - "outputs": [ - { - "data": { - "image/png": "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DaxZswYFCxaU/ua9fPkS4eHhcHNzU3mMd+/eyTrgcLcU5VkZuTsuLg5JSUlQKBQ4cOAAwsPDoaurCz09PURERMDV1RX//POPFGwSExOhr68PPz8/vH79msGGNEIIIQWbX3/9Fd27d8fcuXPRt29fjBgxAufPnwfwftdASkoKJkyYgMqVK+PVq1cqj8NgQ5/r/PnzaN68Obp374727dtj1KhRCAkJwbVr19ClSxcA708zkJaWhnXr1qFGjRo4ceKEymPIOdgADDeUx0VGRqJixYo4evQoNmzYgCZNmuDvv/8G8H5XU/ny5dGmTRtMnz5dWidfvnwYNWoU7t27B0tLSwYb0oiM7Wju3Ln4448/sHHjRty4cQNt27bFn3/+ifHjx+P06dMAAAMDA7i6uqJhw4YwNzfXYtUkRw8fPsTz589V2r7//nvs3r0bFy9eRJ8+fQC8P/VFixYtMH369EwjN7IniPK4Hj16CFNTU6GjoyOWL18utaemporNmzeL9PR0qU2pVGqjRPpGREVFibZt24pVq1YJIYTYvXu3MDU1Ff369ROurq6iYcOG4syZM0II1W3x3bt3WqmX5CkkJETY2NiITZs2SW0Z29v69euFk5OTOH/+fKb10tLSvliN2saRG8qzMk4J7uPjg/j4eBgYGMDW1hbJyckA3n8rad++vcrETY7SUG6ytrbGqFGj0KRJE1y+fBk+Pj6YNm0ali5dip9++glnzpyBj48PLl68qLItclcUaVLZsmVRr149rFu3DocOHQLwv799Li4uiI6Oli4z8yG574r6EMMN5VkZocXe3h4nTpyAl5cXOnbsiF27diEpKSlTfzleH4W051Pbk6urKwoXLox9+/bB2dkZffv2BQBYWlrCzc0NLVu2hKur65cslb4x9vb26NevH2JiYuDn54fdu3dLywoXLgxHR0ctVpc3fDsxjr4a4v8nAD9//hxpaWkoVqwYrK2tUaNGDSQnJ6NXr14ICgpCixYtYGRkhICAADRq1AhOTk7aLp1kQnwweXjFihWIjo6GgYEBRowYIV26IyUlBc+ePcOjR49QunRpHDhwAK1atcLAgQP/9bQERJ8j42i7evXqYcmSJRg7dixGjx6NkJAQODs7Y8uWLVAoFPjxxx+1XapW8VBwypOCg4MxadIkREVFoXnz5mjTpg1atmwJAOjRowd27NiB4cOHIyoqCkuXLsX169dRrlw5LVdNcjNx4kT4+/vj+++/x7lz51CtWjWsW7cOtra2+PPPPzFt2jS8efMG+vr6EELg2rVr0NPT4xF6lCsytqvg4GAsWbIEBw4cwO3btxEWFoZFixbB3t4e5ubmWL9+PfT19b/p0w4w3FCec/PmTbi7u2Po0KEwMTHBxo0bYWhoCC8vL3Tt2hUAMHjwYFy6dAkpKSkIDAyEi4uLdosmWfhwtOXdu3fw8vLCwIED4erqikePHqF58+awtbXFjh07YGVlhb179yI8PBwJCQkYPXo09PT0vukPFNKMjBAjPjq3l66uLoKDg+Hp6Yn58+dLu0SB99urjo6Oyvb7Lc2x+RjDDeUpt2/fxtatW5GUlIQZM2YAAK5fv44JEyYgLi4OPXr0kAJOZGQk8uXLhwIFCmizZJKJD4PNrVu3EBcXh2XLlmHChAlwcHAA8P4Q3B9//BE2NjbYuXMnrKysVB6DwYY+14fb4cuXL6FQKFCwYEEA7//mVa5cGRMmTEC/fv2kdT4eKeTIIcMN5RFCCLx58wYtWrTA33//jZYtW2LdunXS8mvXrmHChAlISkpCx44d0aNHDy1WS3I2cuRIaVg/KioKwcHBaNq0qfRh8fDhQzRt2hRCCJw8eVLlAoREn+PDUDJ16lTs3LkTcXFxKFSoEKZPn44GDRrg2bNnKFq0qJYrzfs4243yBIVCAUtLS/j6+qJ8+fK4dOkSQkNDpeXOzs6YOnUq0tLSpF94Ik348KioPXv2YP/+/fj999+xZMkSODo6Yty4cbh69ap0xmxHR0fs2bMHLi4uvF4ZaVRGsJkyZQoWLFggnWqgUKFC6NKlC9asWZNptJCyxpEb0ppPDZ0ePXoUY8eOha2tLXx8fNCgQQNp2c2bN2FmZgY7O7svWSp9A4KDg3Hq1CkULFgQY8aMAQAkJCSgcuXKMDU1xYoVK1CpUqVM2yx3RZEmvXr1Co0bN4aPjw969uwptfft2xd//vknwsLCUKZMGe56+g8cuSGtyPjFPHXqFObPn4/ffvsNJ0+eRFpaGurWrYspU6YgMjISixYtwpEjR6T1ypcvz2BDGpeUlITffvsN8+fPx82bN6X2/Pnz49KlS4iPj4e3t7d0/agPMdiQJr179w4vX76URgUzTloaGBiIIkWKwM/PDwBPWPpfGG7oi/vwcMamTZvi5MmT2L17N8aOHYvp06cjNTUVDRs2xJQpU/Dq1StMnToVx48f13bZJGPGxsY4fvw4GjVqhIsXL2L37t1IT08H8L+Ac/v2bSxbtkzLlZKcZLXjxMbGBra2tli1ahUAwMjICKmpqQAAJycnhppsYrihLy5jxGbQoEGYP38+tm/fjq1bt+LixYvYvHkzxo8fLwWcX3/9Ffr6+jzjJmnMh3NshBDSB4ylpSU2bNgACwsLzJkzByEhIdKyfPnyITIyEoGBgVqpmeRHqVRKQeWff/5BdHQ03r59CwCYNGkSbt++LR0RlXHiyKdPn/JCrNnEOTf0xWT8MisUCixZsgRXrlxBYGAgHj58iEaNGqFWrVowNTXF1q1b4e3tjbFjx8LQ0BBv376FiYmJtssnGfjwMNuFCxfi6tWrePDgAYYMGYLKlSvDzs4OL168QOvWraGrq4uxY8fC3d1d5UzDnGNDn2P9+vVwc3NDyZIlAQBjxoxBSEgIIiIi0KhRI7Rq1QpdunTB8uXLMXXqVBQsWBAVKlTA/fv3ERMTI50okv4dww3lmowPkg/DyZUrV+Di4oK4uDg8efIETk5OaNKkCRwdHbFq1SrExsZKZxru3r07pk+fzolz9Nk+3obGjBmDlStXom/fvnj69ClOnz6N1q1bo2/fvnBycsKLFy/Qtm1bvHjxAkFBQXBzc9Ni9SQX+/btQ4sWLTB69GgMGTIE+/btw6hRo+Dv749Xr17h0qVLCAkJwW+//YZ+/frh+vXr8Pf3h46ODiwsLDBjxgyeKDK7cvWa4/TNe/DggejUqZP4+++/xZYtW4RCoRDnzp0TSqVSCCHE9evXRZkyZcTZs2eFEELcv39ftGjRQowdO1Y8fvxYm6WTzKSnpwshhFi3bp1wdHQUFy9eFEIIcfz4caFQKESpUqXE4MGDxYMHD4QQQjx//lz07dtXvHv3Tms1k/wsWrRI2NnZialTp4oBAwaI5cuXS8uePHkipkyZIhwcHMT+/fuzXD8tLe1LlfpV49gW5ark5GQcP34c3bt3x5UrV7B69Wp8//330i4qIQTevXuH06dPo3z58li7di0AYMSIETyHCH22bt26wcrKCvPnz4eOjg7S0tJgYGCAfv36oXLlyti5cyd69OiBFStWIDIyEtOmTYOOjg769OmDsmXLShOI+U2ZPldqaioMDAzg4+MDExMTjBkzBvHx8Zg2bZrUx87ODp6enjhw4AAuXLgAd3f3TBdg5S6pbNJ2uiL5yvimHBAQIHR0dESlSpXE5cuXVfrExsaK7t27i5IlSwoHBwdhZWUlfaMm+hyxsbFi8uTJwtLSUkyaNElqf/bsmYiKihLPnz8XVatWFfPmzZP6FylSRBQuXFgsWLBACCGkEUYiTfH19RXR0dFi/fr1wsTERDRr1kzcvXtXpU+HDh1E27ZttVShPPBoKcoVQgjo6OhACIEiRYpg3rx5ePfuHcaPH48TJ05I/UxNTTF37lwsWbIEEydOxNmzZ1G5cmUtVk5yEB8fD1NTU/Tv3x/jx4+Hv78/Jk6cCAAoUqQIrK2t8fz5c7x580aaT/Ps2TM0btwYEyZMgI+PDwCeS4Q+n/hgWuuaNWswdepU3Lt3D507d4afnx8uXbqEgIAA3LlzBwAQFxeHhw8folixYtoqWRY4vkUaJ/5/8ubhw4dx9OhRDBkyBC1btkSjRo3Qvn17zJw5E2PHjkWNGjUAvL8wZuPGjbVcNcnFqFGjsGzZMty/fx9WVlbo2rUrhBCYOnUqAGDy5MkA3gcgXV1dnDx5EkIIzJw5EyYmJtLht9wVRZqQEZAPHTqEy5cvIzAwUPrb17dvX6SlpWHy5MnYv38/KleujMTERKSmpmL27NnaLPvrp81hI5KfjGH8bdu2CTMzMzFmzBhx/vx5afm1a9dEuXLlRIsWLcQff/whJk2aJBQKhXjy5Al3AZBGXL16VdSpU0eULl1avHjxQgghRHR0tJg3b54wNzcXEyZMkPoOGDBAlCxZUtjZ2Qk3NzeRmpoqhODuKNKsI0eOiIoVK4qCBQuKnTt3CiGESElJkZavXLlS5M+fX1SuXFmsXbtWmsTOycM5x0PBSePOnTuHJk2aYNasWejTp4/UHhcXB1NTU9y6dQt9+vRBUlISYmNjsWXLFu6KIo04ffo0Xrx4gXLlyqFDhw5ISEiQrtz94sULrFu3DlOnTpUuSAi8Pz2BQqFAxYoVoaOjg3fv3nHSJn0W8dGpBxISEjBnzhwEBgaiWrVq2LhxI4yNjZGWlgZ9fX0AwPz583Hq1Cls3boVCoWCI4efieGGNG7RokXYsWMHDh06hNjYWBw+fBh//PEHbt26hREjRqBnz56Ijo5GbGwszMzMYG1tre2SSSY8PT3xzz//4ODBg3j06BF+/vlnxMfHZwo406ZNw4ABAzBlyhSV9fmBQpq0ePFi2NnZoXXr1khKSsLcuXOxY8cO1KtXDzNmzICRkZFKwMkIRR+HI1IfJxSTxtna2uLixYvw9fXFzz//jNWrV8PIyAjNmzdH7969cffuXVhbW6NUqVIMNqRRixcvxtOnT7Fo0SI4ODhg48aNMDMzQ82aNfHy5UtYWVmhW7dumDBhAqZNm4aVK1eqrM9gQ5ry4sULHD58GL/88gv2798PY2NjDBs2DC1atMCpU6cwbtw4JCcnQ19fH+/evQMABhsN4sgNfZaMX8SEhATkz58fABAVFYWFCxdiy5YtaNCgAbp3744ffvgBUVFRaNWqFYKCglC+fHktV05ykzHq8vvvv+Py5cuYP38+LCwscPv2bXh6eiI2NlYawYmMjMTRo0fx008/cRcUacTH56MBgKtXr+L333/HwYMHERAQgKZNmyIxMRGzZ8/GwYMHUbZsWSxZskS6dhRpDkdu6LMoFArs3bsXnTp1Qr169RAUFAQ9PT1MmzYNZ8+eRUBAANzc3KCjo4OFCxciMTGRozWUKzJGXerVq4djx45h7969AIDSpUtj3bp1sLCwQJ06dRAVFQVbW1t06NABenp60rdmos+REWwiIyOltkqVKmHw4MGoX78++vXrh/379yNfvnwYNWoUfvjhB+jo6Ei7pEjDtDSRmWTi5MmTwsjISIwcOVI0adJEODs7C29vbxEeHi71CQsLE3379hWWlpaZTuJHlFMZJ4nMSkBAgPjuu+/EnTt3pLY7d+4IBwcH0bFjxy9RHn0jPtwON23aJEqUKKFyhKgQQly5ckW0bt1aFCtWTBw5ckQIIURSUpJ0VN6/bcuUMxy5oRyLiIhAaGgopk+fjtmzZ2Pfvn3o27cvrl27Bl9fXzx48ACJiYk4ffo0oqOjcfToUbi4uGi7bJKBD3cBnDt3DqdOncLRo0el5a1atUK1atUQFhYmtX333Xc4duwY/vjjjy9eL8lTSkqKtB2mpqaiZMmSKFOmDHx8fHDx4kWpX6VKleDh4YEnT56gcePGOHXqFIyMjKQ5Nh/vzqLPx58oZcuiRYvw119/Sffv3LmDDh06YNWqVTAyMpLafXx80KVLF9y8eROzZ89GTEwMRo4ciTVr1qBChQraKJ1k5sMPg7Fjx6J79+7o2bMnvLy80KFDB8TFxaFw4cLSfIa0tDRpXXt7e+jq6iI9PV1b5ZNM7Nu3D+vWrQMA9OnTBw0aNEDVqlUxfPhw2NrawtvbGxcuXJD6FytWDB07dsS8efNQrVo1qZ2Th3OJtoeOKO97+PCh6Ny5s7h3755K+6+//iqsra1F27ZtpZOlZVi6dKkoXbq0GDRoEE9ERbli7ty5omDBguLs2bMiPT1dzJgxQygUCnHixAmpT82aNYW3t7cWqyS56tSpk3BwcBDu7u6iUKFC4urVq9Kyw4cPCw8PD1GhQgWxb98+8fDhQ+Hh4SGGDx8u9eHV5nMXww1lS2JiohBCiDNnzoht27ZJ7RMmTBAVK1YU48ePF1FRUSrrLF++XDx8+PBLlknfCKVSKby8vERgYKAQQojt27cLc3NzERAQIIQQIj4+XgghxL59+0SrVq3EtWvXtFYryZeLi4tQKBQqF2bNcPz4cdGtWzehUCjEd999J5ydnaUvejwDdu7jMZCULcbGxoiJiYGvry+ePXsGXV1deHh4YPLkyUhLS8PevXshhMDgwYNhZWUFAOjdu7eWqya5Sk5OxtmzZ1GvXj0cOXIEXl5emDNnDry9vfHu3TvMnj0b1atXh5ubG6ZMmYJz586hYsWK2i6bZCI1NRXJyclwcnJCsWLFsHnzZhQtWhQdO3aUTolRq1YtVKtWDX369EFaWhrq1q0LXV1dngH7C+GcG8oWhUIBc3NzDB8+HI6OjvD390dwcDAAYMaMGWjSpAlCQ0MxY8YMvHz5UsvVkpxcu3YNT58+BQAMHToUR48ehbGxMTp37ow//vgDzZo1g5+fn3TByzdv3uDChQu4c+cOLCwssG7dOhQvXlybL4FkxsDAAKampti6dSt27dqF77//HrNnz8amTZsQHx8v9UtOTkbt2rXRoEEDaa4Xg82XwXBD2SLe78JE7dq1MXToUFhYWOD3339XCThubm64fPkyBM8LSRoghMDdu3dRv359rFq1Cv369cOCBQtgYWEBAHBzc0NERASqVauG6tWrAwD++ecfdO/eHTExMRgwYAAAoGTJkmjUqJHWXgfJjxACSqVSur9mzRrUqFEDfn5+WLt2LR4/fowGDRqgXbt2Un+AZ8D+kniGYsqWjLO/xsbGwsTEBNeuXcP06dPx5s0bDB48GB4eHgDen3I8Y7cUkSYsX74co0aNQnJyMnbt2oXGjRtLZ8bevHkzpkyZAiEE9PT0YGxsDKVSiVOnTkFfX5/XiqLP9vr1a1haWqq0ZWx/W7duRWhoKAIDAwEAffv2xZEjR5Ceng5LS0ucPHmSZx/WEo7c0H969+4ddHV18ejRI9SrVw8HDhxAlSpVMGLECFhZWWHy5MnYs2cPADDYkMZkfDO2t7eHoaEhTE1NcebMGTx69Eg6fLZDhw5Yu3YtpkyZgvbt22P06NE4c+aMdL0eBhv6HAsWLMD333+vsqsJgBRsunfvjkqVKkntgYGBWLZsGRYuXIgzZ87AwMCAZ8DWFu3MY6a86lOz+MPDw4WNjY3o3bu3yiGMR44cEd26dROPHj36UiWSzH28DaampoqkpCSxdOlSUbRoUTF27Nj/3N54mC19rmXLlglDQ0OxYcOGTMseP34sKlasKBYtWiS1ZbXNcTvUHu6WIon4/6HW06dP49atWwgPD4enpycKFy6MNWvW4MKFC1izZk2mK9cmJyernMiPKKc+PPPw69evER8frzIZ2N/fH3PnzkWvXr3Qo0cPODg4oGXLlhg3bhzc3Ny0VTbJzPLlyzFw4ECsW7cO7dq1Q0xMDBITE5GcnAxra2sUKFAA9+7dQ6lSpbRdKn0Cww2p2L59O/r27StdYPDFixfo0KEDRo8ejQIFCmi7PJKxD4PNlClTcODAAdy4cQPt27dHmzZt0LRpUwDvA46/vz8qVKiAV69e4fHjx3j06BEvQEga8eDBAzg5OaF9+/bYtGkTbty4gV9++QUvXrxAREQE6tevj/79+6NFixbaLpX+BY9JI8mNGzcwdOhQzJs3D927d0dcXBzMzc1hbGzMYEO5LiPYTJgwAYGBgZgzZw4cHBzQr18/3Lt3DzExMejUqROGDBmCQoUK4erVq0hOTsbx48elq3vzMFv6XFZWVpg1axYmTJiAESNG4MCBA6hduzZat26NuLg4bNu2DePHj0ehQoU4WpiXaXOfGGnP4cOHxf379zO1Va9eXQghxK1bt0Tx4sVF7969peX379/nPmTKVYcPHxbly5cXx44dE0IIcerUKWFgYCDKlSsnqlWrJrZu3Sr1/fCyHrzEB2lScnKymDt3rtDR0RE9e/YUqamp0rILFy6I0qVLi8WLF2uxQvovPFrqGyOEwOXLl9G0aVMsXboUERER0rJnz55BCIGEhAQ0adIEjRs3xrJlywAAoaGhWLp0Kd68eaOt0kmGxEd7xYsWLYr+/fujdu3aOHDgAFq0aIHAwECEhobi/v37+P3337Fy5UoAUBml4YgNaZKhoSH69euH7du3o3fv3tDX15e21SpVqsDIyAhPnjzRcpX0bxhuvjEKhQKurq6YN28etmzZgqVLl+LBgwcAgObNmyMqKgqmpqZo3rw5AgMDpV0FISEhuHbtGg+tJY1RKpXSpPQHDx4gMTERpUqVQqdOnZCcnIwFCxZg0KBB6NatG4oUKYLy5csjPDwct27d0nLl9C3Ily8fmjZtKp0gMmNbjY6OhrGxMcqXL6/N8ug/8OvONyZjXoKPjw8AYM6cOdDV1UXv3r3h6OiI3377DTNmzMC7d+/w9u1bhIeHY+PGjVixYgVOnDghnR2W6HN8OHl4woQJOH36NEaOHIn69evD0tISiYmJeP78OUxMTKCjo4OUlBQ4ODhg1KhRaNKkiZarJzkSHxwBmsHQ0FD6f3p6Ol6+fIk+ffpAoVCgU6dOX7pEUgPDzTcmY+TlwIED0NHRQVpaGvz9/ZGcnIzRo0ejffv2SEpKwowZM7Bt2zbY2NjAwMAAYWFhqFChgparJ7n4MNgsW7YMgYGBcHV1lY54SklJgaWlJU6cOCFNGn716hVWrVoFHR0dlXBElBMRERF4/fo1ChYsCFtb2389k3BaWhrWrVuHjRs34vXr1zhz5ox0rSiOZudNPBT8GxQSEiJdbDBfvny4d+8efv/9d/zyyy8YPXo0rKysEB8fj6NHj8LBwQHW1tawtrbWdtn0lfs4kNy9exceHh6YNWsWWrZsmanf+fPnMX78eCQkJMDS0hLBwcHQ19dnsKHPtnbtWsybNw/R0dEoVKgQBg4cKI3IZPh4OwsNDcXNmzcxYMAAHp33FWC4+cYolUp06dIFCoUCGzZskNoXLlyIUaNGwcfHB7/88gtKlCihxSpJbtq2bYuxY8eiatWqUtuVK1fQpEkTHD16FKVLl87yxJDJyckQQsDIyAgKhYIfKPTZ1q5dCx8fH+nSCjNmzMCDBw9w8uRJadvKCDYxMTE4cOAA2rdvr/IYHLHJ+/j15xuT8U0kY/g/NTUVADBw4EB4e3tj9erV+P3331WOoiL6XGZmZnB2dlZpMzIywps3b3Djxg2pLeN6UqdPn8b27duho6MDY2NjKBQKKJVKBhv6LBcuXMDUqVOxaNEi9OzZExUrVsTQoUPh5OSEU6dO4ebNm4iLi5N22a9Zswa//PIL/vjjD5XHYbDJ+xhuvhH//POP9P/SpUvjzz//RHR0NAwMDJCWlgYAsLOzg4mJCcLCwmBsbKytUklGnj17BgBYvXo1DAwM8Pvvv+PAgQNITU2Fk5MTOnTogDlz5uDgwYNQKBTQ0dFBeno6pk+fjrCwMJV5ENwVRZ8rJSUFQ4YMQfPmzaW2SZMm4dChQ+jUqRM8PT3RsWNHvH79Gvr6+mjWrBlGjBjBycNfIe6W+gZcvXoVAwYMQOfOndG/f3+kpqaiQYMGePnyJY4cOQJbW1sAwOjRo1G+fHm0aNEClpaWWq6avnZ9+vQBAIwZM0bazens7IyXL19i06ZNqFOnDo4fPw4/Pz9cv34dXbp0gYGBAQ4dOoQXL17g0qVLHKkhjVIqlXjx4gVsbGwAAJ6enjh48CB2794Ne3t7HD16FNOmTcPo0aPRuXNnlTk43BX1deFXoW+AiYkJzM3NsW3bNgQFBcHAwADLli2DlZUVypYtCw8PDzRu3BgLFixA1apVGWxII5ydnbF//34sXboU4eHhAIBr166hdOnS6NKlC44dO4batWtjypQp8PT0xLp163D48GEUK1YMFy9elCZtEmmKjo6OFGwAYMSIETh79iyqVq0KGxsbNG3aFK9fv0ZUVFSmw8IZbL4uHLn5RoSHh2Ps2LGIjIxEnz590K1bN6Snp2Pu3LmIiIiAEAIDBw5EuXLltF0qyciqVaswYcIEdOzYEX369EHp0qUBAHXq1MHDhw+xfv161KlTBwDw9u1bmJiYSOty8jB9aU+fPkXXrl0xYsQIXhjzK8dwI1OXLl3C8+fPVfYth4eHY/z48Xj06BEGDhyILl26aLFCkrMPD6NduXIlJkyYgE6dOmUKOBEREVi7di2qV6+uMr8mqxOqEanjw20o4/8Z/7548QJWVlYq/RMTE9GpUyfExsbi8OHDHKn5yjHcyFB8fDyaN28OXV1djBo1Ck2bNpWWPXr0CE2aNIGJiQl69+6NX375RYuVktx86hw0y5cvx+TJk9GhQwf07dtXCjgNGjTAyZMncebMGbi6un7pckmmstoOM9qCg4OxceNGLFiwAEWKFEFSUhJ27dqFdevW4dmzZzh//jz09fU5x+Yrxzk3MpKRUwsUKIDZs2dDT08PixYtwt69e6U+Dg4OqF+/PiIjI3Ho0CHExMRoqVqSmw8/UE6dOoWwsDBcvXoVwPvJxb/99hs2bdqEwMBA3LlzBwBw+PBh9O7dO9Nh4kQ5deLECemilsOGDcPMmTMBvJ9vs3nzZnh6eqJRo0YoUqQIgPcXXX348CFKlCiBCxcuQF9fH+/evWOw+cpx5EYGMoZaM75pZHzInD17Fr/++ivy5cuH/v37S7uohg8fjhIlSqBt27YoXLiwlqsnOfhwF8CwYcOwefNmJCQkwM7ODsWKFcO+ffsAAMuWLcO0adPQsWNHeHl5qVzSg9+U6XMIIRAbGwtra2s0bdoUhQoVQnBwMI4fP44KFSogJiYGbm5u8PHxwcCBA6V1PvzbCXA7lAuGm69cxi9nWFgYdu/ejdevX6NWrVpo164dzM3NcebMGfz2229ISUlBiRIlYGJigs2bN+Pq1auws7PTdvkkAx8GmwMHDmDIkCEIDAyEubk5/v77b0ycOBH58uXDhQsXALyfg+Pt7Q1/f38MGDBAm6WTDEVHR6NEiRJIT0/H9u3b0axZM2lZVnNtspqbQ18/7pb6yikUCuzYsQMtW7bE27dv8fbtW6xbtw79+/fH69ev4ebmhrlz56Ju3boIDw/HgwcPcPjwYQYb0piMD4Pdu3dj06ZNaNSoEWrVqoUKFSrg559/xtq1a5GQkID+/fsDAHr16oVdu3ZJ94k0JSUlBZGRkTAxMYGuri5WrVolnYYAAAoVKiT9P+Ns2B+GGQYb+eDIzVfuwoUL6NixI3799Vf07t0bERERqFy5MoyNjeHi4oK1a9fC0tJSulbPx4fbEmnC69ev0aJFC1y9ehX169fHnj17VJaPHTsWJ0+exF9//YV8+fJJ7dwFQJ/rU5PYHz16BGdnZ9SvXx/z589HyZIltVAdaQtHbr4ivr6+GDdunPSNA3h/ens3Nzf07t0bjx49QsOGDeHh4YHx48fj/Pnz+OWXX/D69WsYGRkBAIMNacSH2yAAWFpaYs2aNfjxxx9x+fJlrF69WmV5qVKl8OrVKyQlJam0M9jQ5/gw2Bw5cgQbNmzA1atX8ezZMzg4OODkyZMICwvDqFGjpEnsbdq0wcKFC7VZNn0BHLn5iixcuBCDBw/GjBkzMGrUKOmX+tatWyhdujRat24tfcgolUq4uLggPDwczZs3x+bNm3ltHtKIDz9Q7t+/D4VCARMTE9ja2uLhw4fw8fFBYmIi2rVrB29vb0RFRcHLywtGRkbYs2cPh/5J40aMGIE1a9ZAT08P+fPnh62tLfz8/FC1alVcv34d9evXh4ODA1JTU/Hu3TtcvXpVungwyZSgr4JSqRRCCLF8+XKho6Mjpk6dKtLS0qTlT548EWXLlhV79uwRQgjx+vVr0alTJ7Fw4ULx9OlTrdRM8pOxHQohxMSJE0XFihVFmTJlROHChUVgYKAQQojw8HDRrFkzYWRkJEqXLi3atGkj3N3dRVJSkhBCiPT0dK3UTvLx4XYYGhoqKlWqJI4fPy5ev34tdu3aJdq0aSOcnJzEpUuXhBBC3Lt3T0yZMkVMnz5d+rv54d9Pkh+Gm6+AUqmUfpmVSqX4448/hI6Ojpg2bZr0QREdHS1cXFyEt7e3ePTokRg7dqz4/vvvRVRUlDZLJ5maMmWKsLKyEiEhISIhIUG0adNGmJubi5s3bwohhHjw4IFo3ry5cHFxEX5+ftJ6ycnJWqqY5GjNmjViwIABom/fvirt58+fF02aNBFeXl4iISFBCKEaiBhs5I/7Kb4SCoUCBw8exPDhw1GlShXpmj0zZ86EEAIWFhbo0qULjh49Cjc3N6xduxYBAQGwtrbWdukkAx/OsVEqlTh37hz8/PzQuHFjhIaG4siRI5gxYwbKlSuHtLQ0ODo6Yt68ebCxscHevXsRHBwMADA0NNTWSyAZEB/Noti5cycWL16MK1euICUlRWqvWrUqateujRMnTiA9PR2A6pFQvGbZN0Db6YqyZ/v27cLY2FhMnTpVnD9/XgghRGBgoLSLSgghUlJSxM2bN0VoaKh48uSJNsslmZowYYKYOXOmKFq0qLhz544ICwsT+fPnF0uXLhVCCPH27Vsxbtw48ejRIyGEEHfv3hUtWrQQVatWFcHBwdosnb5yH468rF+/Xqxdu1YIIcSAAQOEubm5WLx4sYiNjZX6hISEiDJlykjbIn1bGG6+Anfu3BGOjo5iyZIlmZYtW7ZM2kVFpGkfzo/ZtGmTsLe3Fzdu3BBdu3YV7u7uwsTERKxcuVLq8+zZM1G7dm2xdu1aad1bt26Jn3/+WURERHzx+kkePtwOb9y4IVxdXUWlSpXErl27hBBCeHl5iVKlSonp06eL8PBwER4eLho2bCjq1q2rEoro28Gxua/A48ePoa+vr3KmzYwjVvr27Yt8+fKhW7duMDQ0xIgRI7RYKclNxlFRR48exZEjRzB8+HCUL19eOjlkw4YN0bNnTwDvL9jau3dv6OrqonPnztDR0YFSqUSZMmWwYcMGHp1COZaxHY4cORIPHz6EsbExbt++jaFDh+Ldu3cICgpCz549MX78eCxcuBA1a9ZE/vz5sXnzZigUik+eC4fki+HmK5CQkKByfhClUintPz5y5AiqVKmCzZs3q1ynh0hTIiMj0atXL0RHR2Ps2LEAgH79+uH+/fs4fPgwXF1dUapUKTx+/BjJyck4f/48dHV1VU7QxzkO9LmCgoKwYsUKHDp0CI6OjkhJSYGXlxd8fX2ho6ODVatWwcTEBFu2bEGTJk3QsWNHGBoaIjU1FQYGBtoun74wRtmvQKVKlfDy5UsEBgYCeP8tJiPc7Nq1Cxs2bEDbtm1RtmxZbZZJMmVra4vg4GDY2Njgzz//xMWLF6Grq4s5c+ZgypQpaNCgAWxtbdGhQ4dPXlWZ57ahzxUeHo4KFSrAxcUFZmZmsLW1xapVq6Crq4uhQ4dix44dWLRoERo1aoT58+dj9+7diI+PZ7D5RvHr1FfA0dERixYtQr9+/ZCWlgZPT0/o6uoiKCgIQUFBOH36NM/0SrnK2dkZ27dvh5eXFwICAjBw4EA4OzujVatWaNWqlUrf9PR0jtSQxoj/v5iloaEhkpOTkZqaCiMjI6SlpaFo0aLw9fVFixYt4O/vD2NjY2zYsAGdO3fGiBEjoKenh/bt22v7JZAW8AzFXwmlUont27fD29sb+fLlg5GREXR1dbFx40a4urpquzz6Rly+fBm9e/dGlSpVMHjwYJQvX17bJdE34vr163B1dcVvv/2GiRMnSu0hISFYvnw53rx5g/T0dBw5cgQA0KNHD/z2228oUaKEliombWK4+cr8888/iIiIgEKhgKOjI2xsbLRdEn1jLl++DG9vbxQvXhyzZ8+Go6Ojtkuib0RQUBD69u2LIUOGoEOHDrCwsMCgQYNQo0YNtGnTBuXLl8fevXvRtGlTbZdKWsZwQ0RqO3fuHAICArBixQoehUJf1Pbt2/HLL7/AwMAAQghYW1vj1KlTiIqKwo8//oht27bB2dlZ22WSljHcEFGOZMyF4GG29KU9e/YMT548QVpaGmrWrAkdHR2MGTMGO3fuRFhYGGxtbbVdImkZww0R5VhGwCHSlps3b2LWrFn466+/cPDgQbi4uGi7JMoDeEgDEeUYgw1p07t375Camgpra2scPXqUE9xJwpEbIiL6qqWlpfEM2KSC4YaIiIhkhbMAiYiISFYYboiIiEhWGG6IiIhIVhhuiIiISFYYbohI9o4cOQKFQoGYmJhsr+Pg4AB/f/9cq4mIcg/DDRFpXffu3aFQKNCvX79My3x8fKBQKNC9e/cvXxgRfZUYbogoT7C3t8emTZuQlJQktSUnJ2PDhg0oVqyYFisjoq8Nww0R5QmVK1eGvb09goODpbbg4GAUK1YMrq6uUltKSgoGDRoEa2trGBkZoVatWjh//rzKY/3111/47rvvYGxsjPr16+PRo0eZnu/EiROoXbs2jI2NYW9vj0GDBiExMTHXXh8RfTkMN0SUZ/Ts2ROrV6+W7q9atQo9evRQ6TNq1Chs374da9aswaVLl+Dk5AR3d3e8fv0aAPDkyRO0bdsWLVu2xJUrV9C7d2/8+uuvKo9x//59NGnSBD/99BOuXbuGzZs348SJExgwYEDuv0giynUMN0SUZ3Tt2hUnTpxAREQEIiIicPLkSXTt2lVanpiYiKVLl2LOnDlo2rQpypUrh+XLl8PY2BgrV64EACxduhQlS5bEvHnzULp0aXTp0iXTfB1fX1906dIFQ4YMQalSpVCjRg38/vvvWLt2LZKTk7/kSyaiXMALZxJRnmFlZYXmzZsjKCgIQgg0b94chQoVkpbfv38faWlpqFmzptSmr6+PH374Abdu3QIA3Lp1C9WqVVN53OrVq6vcv3r1Kq5du4b169dLbUIIKJVKPHz4EGXLls2Nl0dEXwjDDRHlKT179pR2Dy1evDhXniMhIQHe3t4YNGhQpmWcvEz09WO4IaI8pUmTJkhNTYVCoYC7u7vKspIlS8LAwAAnT55E8eLFAby/IvT58+cxZMgQAEDZsmWxe/dulfXOnDmjcr9y5cr4+++/4eTklHsvhIi0hnNuiChP0dXVxa1bt/D3339DV1dXZVm+fPnQv39/jBw5Evv378fff/+NPn364O3bt+jVqxcAoF+/frh37x5GjhyJO3fuYMOGDQgKClJ5nNGjR+PUqVMYMGAArly5gnv37mHXrl2cUEwkEww3RJTnmJqawtTUNMtlM2fOxE8//YRu3bqhcuXKCA8PR0hICCwsLAC83620fft27Ny5E5UqVUJAQABmzJih8hjOzs44evQo7t69i9q1a8PV1RUTJkxAkSJFcv21EVHuUwghhLaLICIiItIUjtwQERGRrDDcEBERkaww3BAREZGsMNwQERGRrDDcEBERkaww3BAREZGsMNwQERGRrDDcEBERkaww3BAREZGsMNwQERGRrDDcEBERkaww3BAREZGs/B+XLE52CERTBAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "\n", - "## calculate avg response time\n", - "unique_models = set(unique_result[\"response\"]['model'] for unique_result in result[0][\"results\"])\n", - "model_dict = {model: {\"response_time\": []} for model in unique_models}\n", - "for iteration in result:\n", - " for completion_result in iteration[\"results\"]:\n", - " model_dict[completion_result[\"response\"][\"model\"]][\"response_time\"].append(completion_result[\"response_time\"])\n", - "\n", - "avg_response_time = {}\n", - "for model, data in model_dict.items():\n", - " avg_response_time[model] = sum(data[\"response_time\"]) / len(data[\"response_time\"])\n", - "\n", - "models = list(avg_response_time.keys())\n", - "response_times = list(avg_response_time.values())\n", - "\n", - "plt.bar(models, response_times)\n", - "plt.xlabel('Model', fontsize=10)\n", - "plt.ylabel('Average Response Time')\n", - "plt.title('Average Response Times for each Model')\n", - "\n", - "plt.xticks(models, [model[:15]+'...' if len(model) > 15 else model for model in models], rotation=45)\n", - "plt.show()" - ] - } - ], - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "Ys9n20Es2IzT" + }, + "source": [ + "# Evaluate Multiple LLM Providers with LiteLLM\n", + "\n", + "\n", + "\n", + "* Quality Testing\n", + "* Load Testing\n", + "* Duration Testing\n", + "\n" + ] }, - "nbformat": 4, - "nbformat_minor": 0 + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ZXOXl23PIIP6" + }, + "outputs": [], + "source": [ + "!pip install litellm python-dotenv" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "LINuBzXDItq2" + }, + "outputs": [], + "source": [ + "from litellm import load_test_model, testing_batch_completion" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "EkxMhsWdJdu4" + }, + "outputs": [], + "source": [ + "import os \n", + "os.environ[\"OPENAI_API_KEY\"] = \"...\"\n", + "os.environ[\"ANTHROPIC_API_KEY\"] = \"...\"\n", + "os.environ[\"REPLICATE_API_KEY\"] = \"...\"" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "mv5XdnqeW5I_" + }, + "source": [ + "# Quality Test endpoint\n", + "\n", + "## Test the same prompt across multiple LLM providers\n", + "\n", + "In this example, let's ask some questions about Paul Graham" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "id": "XpzrR5m4W_Us" + }, + "outputs": [], + "source": [ + "models = [\"gpt-3.5-turbo\", \"gpt-3.5-turbo-16k\", \"gpt-4\", \"claude-instant-1\", {\"model\": \"replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781\", \"custom_llm_provider\": \"replicate\"}]\n", + "context = \"\"\"Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a \"hacker philosopher\".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.\"\"\"\n", + "prompts = [\"Who is Paul Graham?\", \"What is Paul Graham known for?\" , \"Is paul graham a writer?\" , \"Where does Paul Graham live?\", \"What has Paul Graham done?\"]\n", + "messages = [[{\"role\": \"user\", \"content\": context + \"\\n\" + prompt}] for prompt in prompts] # pass in a list of messages we want to test\n", + "result = testing_batch_completion(models=models, messages=messages)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "9nzeLySnvIIW" + }, + "source": [ + "## Visualize the data" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 403 + }, + "id": "X-2n7hdAuVAY", + "outputId": "69cc0de1-68e3-4c12-a8ea-314880010d94" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Model Nameclaude-instant-1gpt-3.5-turbo-0613gpt-3.5-turbo-16k-0613gpt-4-0613replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781
Prompt
\\nIs paul graham a writer?Yes, Paul Graham is considered a writer in ad...Yes, Paul Graham is a writer. He has written s...Yes, Paul Graham is a writer. He has authored ...Yes, Paul Graham is a writer. He is an essayis...Yes, Paul Graham is an author. According to t...
\\nWhat has Paul Graham done?Paul Graham has made significant contribution...Paul Graham has achieved several notable accom...Paul Graham has made significant contributions...Paul Graham is known for his work on the progr...Paul Graham has had a diverse career in compu...
\\nWhat is Paul Graham known for?Paul Graham is known for several things:\\n\\n-...Paul Graham is known for his work on the progr...Paul Graham is known for his work on the progr...Paul Graham is known for his work on the progr...Paul Graham is known for many things, includi...
\\nWhere does Paul Graham live?Based on the information provided:\\n\\n- Paul ...According to the given information, Paul Graha...Paul Graham currently lives in England, where ...The text does not provide a current place of r...Based on the information provided, Paul Graha...
\\nWho is Paul Graham?Paul Graham is an influential computer scient...Paul Graham is an English computer scientist, ...Paul Graham is an English computer scientist, ...Paul Graham is an English computer scientist, ...Paul Graham is an English computer scientist,...
\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + "
\n", + " \n", + "
\n", + "\n", + "\n", + "\n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n" + ], + "text/plain": [ + "Model Name claude-instant-1 \\\n", + "Prompt \n", + "\\nIs paul graham a writer? Yes, Paul Graham is considered a writer in ad... \n", + "\\nWhat has Paul Graham done? Paul Graham has made significant contribution... \n", + "\\nWhat is Paul Graham known for? Paul Graham is known for several things:\\n\\n-... \n", + "\\nWhere does Paul Graham live? Based on the information provided:\\n\\n- Paul ... \n", + "\\nWho is Paul Graham? Paul Graham is an influential computer scient... \n", + "\n", + "Model Name gpt-3.5-turbo-0613 \\\n", + "Prompt \n", + "\\nIs paul graham a writer? Yes, Paul Graham is a writer. He has written s... \n", + "\\nWhat has Paul Graham done? Paul Graham has achieved several notable accom... \n", + "\\nWhat is Paul Graham known for? Paul Graham is known for his work on the progr... \n", + "\\nWhere does Paul Graham live? According to the given information, Paul Graha... \n", + "\\nWho is Paul Graham? Paul Graham is an English computer scientist, ... \n", + "\n", + "Model Name gpt-3.5-turbo-16k-0613 \\\n", + "Prompt \n", + "\\nIs paul graham a writer? Yes, Paul Graham is a writer. He has authored ... \n", + "\\nWhat has Paul Graham done? Paul Graham has made significant contributions... \n", + "\\nWhat is Paul Graham known for? Paul Graham is known for his work on the progr... \n", + "\\nWhere does Paul Graham live? Paul Graham currently lives in England, where ... \n", + "\\nWho is Paul Graham? Paul Graham is an English computer scientist, ... \n", + "\n", + "Model Name gpt-4-0613 \\\n", + "Prompt \n", + "\\nIs paul graham a writer? Yes, Paul Graham is a writer. He is an essayis... \n", + "\\nWhat has Paul Graham done? Paul Graham is known for his work on the progr... \n", + "\\nWhat is Paul Graham known for? Paul Graham is known for his work on the progr... \n", + "\\nWhere does Paul Graham live? The text does not provide a current place of r... \n", + "\\nWho is Paul Graham? Paul Graham is an English computer scientist, ... \n", + "\n", + "Model Name replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781 \n", + "Prompt \n", + "\\nIs paul graham a writer? Yes, Paul Graham is an author. According to t... \n", + "\\nWhat has Paul Graham done? Paul Graham has had a diverse career in compu... \n", + "\\nWhat is Paul Graham known for? Paul Graham is known for many things, includi... \n", + "\\nWhere does Paul Graham live? Based on the information provided, Paul Graha... \n", + "\\nWho is Paul Graham? Paul Graham is an English computer scientist,... " + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "# Create an empty list to store the row data\n", + "table_data = []\n", + "\n", + "# Iterate through the list and extract the required data\n", + "for item in result:\n", + " prompt = item['prompt'][0]['content'].replace(context, \"\") # clean the prompt for easy comparison\n", + " model = item['response']['model']\n", + " response = item['response']['choices'][0]['message']['content']\n", + " table_data.append([prompt, model, response])\n", + "\n", + "# Create a DataFrame from the table data\n", + "df = pd.DataFrame(table_data, columns=['Prompt', 'Model Name', 'Response'])\n", + "\n", + "# Pivot the DataFrame to get the desired table format\n", + "table = df.pivot(index='Prompt', columns='Model Name', values='Response')\n", + "table" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "zOxUM40PINDC" + }, + "source": [ + "# Load Test endpoint\n", + "\n", + "Run 100+ simultaneous queries across multiple providers to see when they fail + impact on latency" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ZkQf_wbcIRQ9" + }, + "outputs": [], + "source": [ + "models=[\"gpt-3.5-turbo\", \"replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781\", \"claude-instant-1\"]\n", + "context = \"\"\"Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a \"hacker philosopher\".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.\"\"\"\n", + "prompt = \"Where does Paul Graham live?\"\n", + "final_prompt = context + prompt\n", + "result = load_test_model(models=models, prompt=final_prompt, num_calls=5)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "8vSNBFC06aXY" + }, + "source": [ + "## Visualize the data" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 552 + }, + "id": "SZfiKjLV3-n8", + "outputId": "00f7f589-b3da-43ed-e982-f9420f074b8d" + }, + "outputs": [ + { + "data": { + "image/png": "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WwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWz8UVB4+fIhx48ahXbt2CA8PBwAcOHAAt2/f1mhxRERElLmpHVSOHz+O4sWL4/z58wgICEBsbCwA4Pr165g4caLGCyQiIqLMS+2gMmrUKEybNg1BQUEwMDCQ2mvWrIlz585ptDgiIiLK3NQOKjdv3kSLFi3StNva2uLt27caKYqIiIgI+IGgYmFhgZcvX6Zpv3r1KnLmzKmRooiIiIiAHwgqbdu2xciRI/Hq1SsoFAoolUqcPn0aw4YNQ+fOndOjRiIiIsqk1A4qM2bMQKFCheDo6IjY2FgUKVIEVatWRcWKFTFu3Lj0qJGIiIgyKT11b2BgYICVK1di/PjxuHXrFmJjY1GqVCnkz58/PeojIiKiTEztoJIqV65cyJUrlyZrISIiIlKhdlARQmD79u0IDg5GeHg4lEqlyvKAgACNFUdERESZm9pBZdCgQVixYgVq1KiB7NmzQ6FQpEddREREROoHFT8/PwQEBKBhw4bpUQ8RERGRRO1ZP+bm5sibN2961EJERESkQu2gMmnSJEyePBnx8fHpUQ8RERGRRO1dP25ubti0aRNsbW3h5OQEfX19leVXrlzRWHFERESUuakdVNzd3XH58mV07NiRg2mJiIgoXakdVPbv34/AwEBUrlw5PeohIiIikqg9RsXR0RFmZmbpUQsRERGRCrWDyvz58zFixAiEhoamQzlERERE/6P2rp+OHTviw4cPyJcvH0xMTNIMpo2IiNBYcUSZndOo/dougbQsdFYjbZdApFVqBxUvL690KIOIiIgorR+a9UNERET0K3xXUImOjpYG0EZHR//ruhxoS0RERJryXUHF0tISL1++hK2tLSwsLL567BQhBBQKBVJSUjReJBEREWVO3xVUjh49CisrKwBAcHBwuhZERERElOq7gkq1atWQN29eXLx4EdWqVUvvmoiIiIgAqHEcldDQUO7WISIiol9K7QO+aZK3tzdcXFxgZmYGMzMzVKhQAQcOHNBmSURERCQjak1PDgwMhLm5+b+u07Rp0+++PwcHB8yaNQv58+eHEALr169Hs2bNcPXqVRQtWlSd0oiIiCgDUiuo/NcxVNSd9dOkSROV69OnT4e3tzfOnTvHoEJERETqBZVXr17B1tY2XQpJSUnBtm3bEBcXhwoVKnx1ncTERCQmJkrX/+uYLkRERPR7++4xKl87doom3Lx5E1myZIGhoSF69+6NnTt3okiRIl9dd+bMmTA3N5cujo6O6VITERERycN3BxUhRLoUULBgQVy7dg3nz59Hnz594O7ujn/++eer644ePRpRUVHS5enTp+lSExEREcnDd+/6cXd3h7GxscYLMDAwgLOzMwCgTJkyuHjxIhYtWoQVK1akWdfQ0BCGhoYar4GIiIjk6buDytq1a9OzDolSqVQZh0JERESZl9pnT9ak0aNHo0GDBsiVKxdiYmKwceNGHDt2DIGBgdosi4iIiGRCq0ElPDwcnTt3xsuXL2Fubg4XFxcEBgaiTp062iyLiIiIZEKrQWX16tXafHgiIiKSuR8+hH5ISAgCAwMRHx8PIP1mBREREVHmpXZQeffuHWrXro0CBQqgYcOGePnyJQCge/fuGDp0qMYLJCIiosxL7aAyePBg6Onp4cmTJzAxMZHa27Rpg4MHD2q0OCIiIsrc1B6jcujQIQQGBsLBwUGlPX/+/AgLC9NYYURERERq96jExcWp9KSkioiI4MHYiIiISKPUDipVqlTBhg0bpOsKhQJKpRJz5sxBjRo1NFocERERZW5q7/qZM2cOatWqhUuXLiEpKQkjRozA7du3ERERgdOnT6dHjURERJRJqd2jUqxYMdy/fx+VK1dGs2bNEBcXh5YtW+Lq1avIly9fetRIREREmdQPHfDN3NwcY8eO1XQtRERERCrU7lE5ePAgTp06JV1ftmwZSpYsifbt2+P9+/caLY6IiIgyN7WDyvDhwxEdHQ0AuHnzJoYMGYKGDRvi8ePHGDJkiMYLJCIiosxL7V0/jx8/RpEiRQAAO3bsQJMmTTBjxgxcuXIFDRs21HiBRERElHmp3aNiYGCADx8+AAAOHz6MunXrAgCsrKyknhYiIiIiTVC7R6Vy5coYMmQIKlWqhAsXLmDLli0AgPv376c5Wi0RERHRz1C7R2Xp0qXQ09PD9u3b4e3tjZw5cwIADhw4gPr162u8QCIiIsq81O5RyZUrF/bt25emfeHChRopiIiIiCjVDx1HRalUIiQkBOHh4VAqlSrLqlatqpHCiIiIiNQOKufOnUP79u0RFhYGIYTKMoVCgZSUFI0VR0RERJmb2kGld+/eKFu2LPbv348cOXJAoVCkR11ERERE6geVBw8eYPv27XB2dk6PeoiIiIgkas/6KV++PEJCQtKjFiIiIiIVaveo9O/fH0OHDsWrV69QvHhx6Ovrqyx3cXHRWHFERESUuakdVFq1agUA6Natm9SmUCgghOBgWiIiItKoHzrXDxEREdGvoHZQyZ07d3rUQURERJTGDx3w7eHDh/Dy8sKdO3cAAEWKFMHAgQORL18+jRZHREREmZvaQSUwMBBNmzZFyZIlUalSJQDA6dOnUbRoUezduxd16tTReJHa4jRqv7ZLIC0LndVI2yUQEWVqageVUaNGYfDgwZg1a1aa9pEjR2aooEJERETapfZxVO7cuYPu3bunae/WrRv++ecfjRRFREREBPxAULGxscG1a9fStF+7dg22traaqImIiIgIwA/s+unZsyd69eqFR48eoWLFigA+jVGZPXs2hgwZovECiYiIKPNSO6iMHz8eWbNmxfz58zF69GgAgL29PSZNmoQBAwZovEAiIiLKvNQOKgqFAoMHD8bgwYMRExMDAMiaNavGCyMiIiL6oeOoAEB4eDju3bsHAChUqBBsbGw0VhQRERER8AODaWNiYtCpUyfY29ujWrVqqFatGuzt7dGxY0dERUWlR41ERESUSakdVHr06IHz589j//79iIyMRGRkJPbt24dLly7Bw8MjPWokIiKiTErtXT/79u1DYGAgKleuLLXVq1cPK1euRP369TVaHBEREWVuaveoZMuWDebm5mnazc3NYWlpqZGiiIiIiIAfCCrjxo3DkCFD8OrVK6nt1atXGD58OMaPH6/R4oiIiChzU3vXj7e3N0JCQpArVy7kypULAPDkyRMYGhrizZs3WLFihbTulStXNFcpERERZTpqB5XmzZunQxlEREREaakdVCZOnJgedRARERGlofYYladPn+LZs2fS9QsXLmDQoEHw9fXVaGFEREREageV9u3bIzg4GMCnQbS1a9fGhQsXMHbsWEyZMkXjBRIREVHmpXZQuXXrFv744w8AwNatW1G8eHGcOXMG/v7+WLdunabrIyIiokxM7aCSnJwMQ0NDAMDhw4fRtGlTAJ/O9/Py5UvNVkdERESZmtpBpWjRovDx8cHJkycRFBQkHY32xYsXyJYtm8YLJCIiosxL7aAye/ZsrFixAtWrV0e7du1QokQJAMCePXukXUJEREREmqD29OTq1avj7du3iI6OVjlkfq9evWBiYqLR4oiIiChzU7tHBQCEELh8+TJWrFiBmJgYAICBgQGDChEREWmU2j0qYWFhqF+/Pp48eYLExETUqVMHWbNmxezZs5GYmAgfH5/0qJOIiIgyIbV7VAYOHIiyZcvi/fv3MDY2ltpbtGiBI0eOaLQ4IiIiytzU7lE5efIkzpw5AwMDA5V2JycnPH/+XGOFEREREando6JUKpGSkpKm/dmzZ8iaNatGiiIiIiICfiCo1K1bF15eXtJ1hUKB2NhYTJw4EQ0bNtRkbURERJTJqb3rZ/78+ahXrx6KFCmChIQEtG/fHg8ePIC1tTU2bdqUHjUSERFRJqV2UHFwcMD169exZcsWXL9+HbGxsejevTs6dOigMriWiIiI6GepHVQAQE9PDx06dECHDh2ktpcvX2L48OFYunSpxoojIiKizE2toHL79m0EBwfDwMAAbm5usLCwwNu3bzF9+nT4+Pggb9686VUnERERZULfPZh2z549KFWqFAYMGIDevXujbNmyCA4ORuHChXHnzh3s3LkTt2/fTs9aiYiIKJP57qAybdo0eHp6Ijo6GgsWLMCjR48wYMAA/P333zh48KB0FmUiIiIiTfnuoHLv3j14enoiS5Ys6N+/P3R0dLBw4UKUK1cuPesjIiKiTOy7g0pMTAzMzMwAALq6ujA2NuaYFCIiIkpXag2mDQwMhLm5OYBPR6g9cuQIbt26pbJO06ZNNVcdERERZWpqBRV3d3eV6x4eHirXFQrFVw+vT0RERPQjvjuoKJXK9KyDiIiIKA21z/VDRERE9KtoNajMnDkT5cqVQ9asWWFra4vmzZvj3r172iyJiIiIZESrQeX48ePw9PTEuXPnEBQUhOTkZNStWxdxcXHaLIuIiIhk4ofO9aMpBw8eVLm+bt062Nra4vLly6hataqWqiIiIiK50GpQ+VJUVBQAwMrK6qvLExMTkZiYKF2Pjo7+JXURERGRdvzQrp/IyEisWrUKo0ePRkREBADgypUreP78+Q8XolQqMWjQIFSqVAnFihX76jozZ86Eubm5dHF0dPzhxyMiIiL5Uzuo3LhxAwUKFMDs2bMxb948REZGAgACAgIwevToHy7E09MTt27dwubNm7+5zujRoxEVFSVdnj59+sOPR0RERPKndlAZMmQIunTpggcPHsDIyEhqb9iwIU6cOPFDRfTr1w/79u1DcHAwHBwcvrmeoaEhzMzMVC5ERESUcak9RuXixYtYsWJFmvacOXPi1atXat2XEAL9+/fHzp07cezYMeTJk0fdcoiIiCgDUzuoGBoafnUQ6/3792FjY6PWfXl6emLjxo3YvXs3smbNKgUdc3NzGBsbq1saERERZTBq7/pp2rQppkyZguTkZACfzu/z5MkTjBw5Eq1atVLrvry9vREVFYXq1asjR44c0mXLli3qlkVEREQZkNpBZf78+YiNjYWtrS3i4+NRrVo1ODs7I2vWrJg+fbpa9yWE+OqlS5cu6pZFREREGZDau37Mzc0RFBSEU6dO4caNG4iNjUXp0qVRu3bt9KiPiIiIMrEfPuBb5cqVUblyZU3WQkRERKRC7aCyePHir7YrFAoYGRnB2dkZVatWha6u7k8XR0RERJmb2kFl4cKFePPmDT58+ABLS0sAwPv372FiYoIsWbIgPDwcefPmRXBwMI8cS0RERD9F7cG0M2bMQLly5fDgwQO8e/cO7969w/3791G+fHksWrQIT548gZ2dHQYPHpwe9RIREVEmonaPyrhx47Bjxw7ky5dPanN2dsa8efPQqlUrPHr0CHPmzFF7qjIRERHRl9TuUXn58iU+fvyYpv3jx4/SAdvs7e0RExPz89URERFRpqZ2UKlRowY8PDxw9epVqe3q1avo06cPatasCQC4efMmD4dPREREP03toLJ69WpYWVmhTJkyMDQ0hKGhIcqWLQsrKyusXr0aAJAlSxbMnz9f48USERFR5qL2GBU7OzsEBQXh7t27uH//PgCgYMGCKFiwoLROjRo1NFchERERZVo/fMC3QoUKoVChQpqshYiIiEjFDwWVZ8+eYc+ePXjy5AmSkpJUli1YsEAjhRERERGpHVSOHDmCpk2b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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "## calculate avg response time\n", + "unique_models = set(result[\"response\"]['model'] for result in result[\"results\"])\n", + "model_dict = {model: {\"response_time\": []} for model in unique_models}\n", + "for completion_result in result[\"results\"]:\n", + " model_dict[completion_result[\"response\"][\"model\"]][\"response_time\"].append(completion_result[\"response_time\"])\n", + "\n", + "avg_response_time = {}\n", + "for model, data in model_dict.items():\n", + " avg_response_time[model] = sum(data[\"response_time\"]) / len(data[\"response_time\"])\n", + "\n", + "models = list(avg_response_time.keys())\n", + "response_times = list(avg_response_time.values())\n", + "\n", + "plt.bar(models, response_times)\n", + "plt.xlabel('Model', fontsize=10)\n", + "plt.ylabel('Average Response Time')\n", + "plt.title('Average Response Times for each Model')\n", + "\n", + "plt.xticks(models, [model[:15]+'...' if len(model) > 15 else model for model in models], rotation=45)\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "inSDIE3_IRds" + }, + "source": [ + "# Duration Test endpoint\n", + "\n", + "Run load testing for 2 mins. Hitting endpoints with 100+ queries every 15 seconds." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "id": "ePIqDx2EIURH" + }, + "outputs": [], + "source": [ + "models=[\"gpt-3.5-turbo\", \"replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781\", \"claude-instant-1\"]\n", + "context = \"\"\"Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a \"hacker philosopher\".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.\"\"\"\n", + "prompt = \"Where does Paul Graham live?\"\n", + "final_prompt = context + prompt\n", + "result = load_test_model(models=models, prompt=final_prompt, num_calls=100, interval=15, duration=120)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 552 + }, + "id": "k6rJoELM6t1K", + "outputId": "f4968b59-3bca-4f78-a88b-149ad55e3cf7" + }, + "outputs": [ + { + "data": { + "image/png": "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DaxZswYFCxaU/ua9fPkS4eHhcHNzU3mMd+/eyTrgcLcU5VkZuTsuLg5JSUlQKBQ4cOAAwsPDoaurCz09PURERMDV1RX//POPFGwSExOhr68PPz8/vH79msGGNEIIIQWbX3/9Fd27d8fcuXPRt29fjBgxAufPnwfwftdASkoKJkyYgMqVK+PVq1cqj8NgQ5/r/PnzaN68Obp374727dtj1KhRCAkJwbVr19ClSxcA708zkJaWhnXr1qFGjRo4ceKEymPIOdgADDeUx0VGRqJixYo4evQoNmzYgCZNmuDvv/8G8H5XU/ny5dGmTRtMnz5dWidfvnwYNWoU7t27B0tLSwYb0oiM7Wju3Ln4448/sHHjRty4cQNt27bFn3/+ifHjx+P06dMAAAMDA7i6uqJhw4YwNzfXYtUkRw8fPsTz589V2r7//nvs3r0bFy9eRJ8+fQC8P/VFixYtMH369EwjN7IniPK4Hj16CFNTU6GjoyOWL18utaemporNmzeL9PR0qU2pVGqjRPpGREVFibZt24pVq1YJIYTYvXu3MDU1Ff369ROurq6iYcOG4syZM0II1W3x3bt3WqmX5CkkJETY2NiITZs2SW0Z29v69euFk5OTOH/+fKb10tLSvliN2saRG8qzMk4J7uPjg/j4eBgYGMDW1hbJyckA3n8rad++vcrETY7SUG6ytrbGqFGj0KRJE1y+fBk+Pj6YNm0ali5dip9++glnzpyBj48PLl68qLItclcUaVLZsmVRr149rFu3DocOHQLwv799Li4uiI6Oli4z8yG574r6EMMN5VkZocXe3h4nTpyAl5cXOnbsiF27diEpKSlTfzleH4W051Pbk6urKwoXLox9+/bB2dkZffv2BQBYWlrCzc0NLVu2hKur65cslb4x9vb26NevH2JiYuDn54fdu3dLywoXLgxHR0ctVpc3fDsxjr4a4v8nAD9//hxpaWkoVqwYrK2tUaNGDSQnJ6NXr14ICgpCixYtYGRkhICAADRq1AhOTk7aLp1kQnwweXjFihWIjo6GgYEBRowYIV26IyUlBc+ePcOjR49QunRpHDhwAK1atcLAgQP/9bQERJ8j42i7evXqYcmSJRg7dixGjx6NkJAQODs7Y8uWLVAoFPjxxx+1XapW8VBwypOCg4MxadIkREVFoXnz5mjTpg1atmwJAOjRowd27NiB4cOH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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "## calculate avg response time\n", + "unique_models = set(unique_result[\"response\"]['model'] for unique_result in result[0][\"results\"])\n", + "model_dict = {model: {\"response_time\": []} for model in unique_models}\n", + "for iteration in result:\n", + " for completion_result in iteration[\"results\"]:\n", + " model_dict[completion_result[\"response\"][\"model\"]][\"response_time\"].append(completion_result[\"response_time\"])\n", + "\n", + "avg_response_time = {}\n", + "for model, data in model_dict.items():\n", + " avg_response_time[model] = sum(data[\"response_time\"]) / len(data[\"response_time\"])\n", + "\n", + "models = list(avg_response_time.keys())\n", + "response_times = list(avg_response_time.values())\n", + "\n", + "plt.bar(models, response_times)\n", + "plt.xlabel('Model', fontsize=10)\n", + "plt.ylabel('Average Response Time')\n", + "plt.title('Average Response Times for each Model')\n", + "\n", + "plt.xticks(models, [model[:15]+'...' if len(model) > 15 else model for model in models], rotation=45)\n", + "plt.show()" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } diff --git a/cookbook/LiteLLM_Azure_and_OpenAI_example.ipynb b/cookbook/LiteLLM_Azure_and_OpenAI_example.ipynb index 9e5db982bd..7df1c47eb1 100644 --- a/cookbook/LiteLLM_Azure_and_OpenAI_example.ipynb +++ b/cookbook/LiteLLM_Azure_and_OpenAI_example.ipynb @@ -1,423 +1,422 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "BmX0b5Ueh91v" + }, + "source": [ + "# LiteLLM - Azure OpenAI + OpenAI Calls\n", + "This notebook covers the following for Azure OpenAI + OpenAI:\n", + "* Completion - Quick start\n", + "* Completion - Streaming\n", + "* Completion - Azure, OpenAI in separate threads\n", + "* Completion - Stress Test 10 requests in parallel\n", + "* Completion - Azure, OpenAI in the same thread" + ] }, - "cells": [ - { - "cell_type": "markdown", - "source": [ - "# LiteLLM - Azure OpenAI + OpenAI Calls\n", - "This notebook covers the following for Azure OpenAI + OpenAI:\n", - "* Completion - Quick start\n", - "* Completion - Streaming\n", - "* Completion - Azure, OpenAI in separate threads\n", - "* Completion - Stress Test 10 requests in parallel\n", - "* Completion - Azure, OpenAI in the same thread" - ], - "metadata": { - "id": "BmX0b5Ueh91v" - } + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "iHq4d0dpfawS" + }, + "outputs": [], + "source": [ + "!pip install litellm" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "mnveHO5dfcB0" + }, + "outputs": [], + "source": [ + "import os" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "eo88QUdbiDIE" + }, + "source": [ + "## Completion - Quick start" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "5OSosWNCfc_2", + "outputId": "c52344b1-2458-4695-a7eb-a9b076893348" + }, + "outputs": [ { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "iHq4d0dpfawS" - }, - "outputs": [], - "source": [ - "!pip install litellm" - ] - }, - { - "cell_type": "code", - "source": [ - "import os, litellm" - ], - "metadata": { - "id": "mnveHO5dfcB0" - }, - "execution_count": 2, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Completion - Quick start" - ], - "metadata": { - "id": "eo88QUdbiDIE" - } - }, - { - "cell_type": "code", - "source": [ - "import os\n", - "from litellm import completion\n", - "\n", - "# openai configs\n", - "os.environ[\"OPENAI_API_KEY\"] = \"\"\n", - "\n", - "# azure openai configs\n", - "os.environ[\"AZURE_API_KEY\"] = \"\"\n", - "os.environ[\"AZURE_API_BASE\"] = \"https://openai-gpt-4-test-v-1.openai.azure.com/\"\n", - "os.environ[\"AZURE_API_VERSION\"] = \"2023-05-15\"\n", - "\n", - "\n", - "# openai call\n", - "response = completion(\n", - " model = \"gpt-3.5-turbo\",\n", - " messages = [{ \"content\": \"Hello, how are you?\",\"role\": \"user\"}]\n", - ")\n", - "print(\"Openai Response\\n\")\n", - "print(response)\n", - "\n", - "\n", - "\n", - "# azure call\n", - "response = completion(\n", - " model = \"azure/your-azure-deployment\",\n", - " messages = [{ \"content\": \"Hello, how are you?\",\"role\": \"user\"}]\n", - ")\n", - "print(\"Azure Response\\n\")\n", - "print(response)" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "5OSosWNCfc_2", - "outputId": "c52344b1-2458-4695-a7eb-a9b076893348" - }, - "execution_count": 12, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Openai Response\n", - "\n", - "{\n", - " \"id\": \"chatcmpl-7yjVOEKCPw2KdkfIaM3Ao1tIXp8EM\",\n", - " \"object\": \"chat.completion\",\n", - " \"created\": 1694708958,\n", - " \"model\": \"gpt-3.5-turbo-0613\",\n", - " \"choices\": [\n", - " {\n", - " \"index\": 0,\n", - " \"message\": {\n", - " \"role\": \"assistant\",\n", - " \"content\": \"I'm an AI, so I don't have feelings, but I'm here to help you. How can I assist you?\"\n", - " },\n", - " \"finish_reason\": \"stop\"\n", - " }\n", - " ],\n", - " \"usage\": {\n", - " \"prompt_tokens\": 13,\n", - " \"completion_tokens\": 26,\n", - " \"total_tokens\": 39\n", - " }\n", - "}\n", - "Azure Response\n", - "\n", - "{\n", - " \"id\": \"chatcmpl-7yjVQ6m2R2HRtnKHRRFp6JzL4Fjez\",\n", - " \"object\": \"chat.completion\",\n", - " \"created\": 1694708960,\n", - " \"model\": \"gpt-35-turbo\",\n", - " \"choices\": [\n", - " {\n", - " \"index\": 0,\n", - " \"finish_reason\": \"stop\",\n", - " \"message\": {\n", - " \"role\": \"assistant\",\n", - " \"content\": \"Hello there! As an AI language model, I don't have feelings but I'm functioning well. How can I assist you today?\"\n", - " }\n", - " }\n", - " ],\n", - " \"usage\": {\n", - " \"completion_tokens\": 27,\n", - " \"prompt_tokens\": 14,\n", - " \"total_tokens\": 41\n", - " }\n", - "}\n" - ] - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Completion - Streaming" - ], - "metadata": { - "id": "dQMkM-diiKdE" - } - }, - { - "cell_type": "code", - "source": [ - "import os\n", - "from litellm import completion\n", - "\n", - "# openai configs\n", - "os.environ[\"OPENAI_API_KEY\"] = \"\"\n", - "\n", - "# azure openai configs\n", - "os.environ[\"AZURE_API_KEY\"] = \"\"\n", - "os.environ[\"AZURE_API_BASE\"] = \"https://openai-gpt-4-test-v-1.openai.azure.com/\"\n", - "os.environ[\"AZURE_API_VERSION\"] = \"2023-05-15\"\n", - "\n", - "\n", - "# openai call\n", - "response = completion(\n", - " model = \"gpt-3.5-turbo\",\n", - " messages = [{ \"content\": \"Hello, how are you?\",\"role\": \"user\"}],\n", - " stream=True\n", - ")\n", - "print(\"OpenAI Streaming response\")\n", - "for chunk in response:\n", - " print(chunk)\n", - "\n", - "# azure call\n", - "response = completion(\n", - " model = \"azure/your-azure-deployment\",\n", - " messages = [{ \"content\": \"Hello, how are you?\",\"role\": \"user\"}],\n", - " stream=True\n", - ")\n", - "print(\"Azure Streaming response\")\n", - "for chunk in response:\n", - " print(chunk)\n" - ], - "metadata": { - "id": "uVvJDVn4g1i1" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Completion - Azure, OpenAI in separate threads" - ], - "metadata": { - "id": "4xrOPnt-oqwm" - } - }, - { - "cell_type": "code", - "source": [ - "import os\n", - "import threading\n", - "from litellm import completion\n", - "\n", - "# Function to make a completion call\n", - "def make_completion(model, messages):\n", - " response = completion(\n", - " model=model,\n", - " messages=messages\n", - " )\n", - "\n", - " print(f\"Response for {model}: {response}\")\n", - "\n", - "# openai configs\n", - "os.environ[\"OPENAI_API_KEY\"] = \"\"\n", - "\n", - "# azure openai configs\n", - "os.environ[\"AZURE_API_KEY\"] = \"\"\n", - "os.environ[\"AZURE_API_BASE\"] = \"https://openai-gpt-4-test-v-1.openai.azure.com/\"\n", - "os.environ[\"AZURE_API_VERSION\"] = \"2023-05-15\"\n", - "\n", - "# Define the messages for the completions\n", - "messages = [{\"content\": \"Hello, how are you?\", \"role\": \"user\"}]\n", - "\n", - "# Create threads for making the completions\n", - "thread1 = threading.Thread(target=make_completion, args=(\"gpt-3.5-turbo\", messages))\n", - "thread2 = threading.Thread(target=make_completion, args=(\"azure/your-azure-deployment\", messages))\n", - "\n", - "# Start both threads\n", - "thread1.start()\n", - "thread2.start()\n", - "\n", - "# Wait for both threads to finish\n", - "thread1.join()\n", - "thread2.join()\n", - "\n", - "print(\"Both completions are done.\")" - ], - "metadata": { - "id": "V5b5taJPjvC3" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Completion - Stress Test 10 requests in parallel\n", - "\n" - ], - "metadata": { - "id": "lx8DbMBqoAoN" - } - }, - { - "cell_type": "code", - "source": [ - "import os\n", - "import threading\n", - "from litellm import completion\n", - "\n", - "# Function to make a completion call\n", - "def make_completion(model, messages):\n", - " response = completion(\n", - " model=model,\n", - " messages=messages\n", - " )\n", - "\n", - " print(f\"Response for {model}: {response}\")\n", - "\n", - "# Set your API keys\n", - "os.environ[\"OPENAI_API_KEY\"] = \"\"\n", - "os.environ[\"AZURE_API_KEY\"] = \"\"\n", - "os.environ[\"AZURE_API_BASE\"] = \"https://openai-gpt-4-test-v-1.openai.azure.com/\"\n", - "os.environ[\"AZURE_API_VERSION\"] = \"2023-05-15\"\n", - "\n", - "# Define the messages for the completions\n", - "messages = [{\"content\": \"Hello, how are you?\", \"role\": \"user\"}]\n", - "\n", - "# Create and start 10 threads for making completions\n", - "threads = []\n", - "for i in range(10):\n", - " thread = threading.Thread(target=make_completion, args=(\"gpt-3.5-turbo\" if i % 2 == 0 else \"azure/your-azure-deployment\", messages))\n", - " threads.append(thread)\n", - " thread.start()\n", - "\n", - "# Wait for all threads to finish\n", - "for thread in threads:\n", - " thread.join()\n", - "\n", - "print(\"All completions are done.\")\n" - ], - "metadata": { - "id": "pHYANOlOkoDh" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Completion - Azure, OpenAI in the same thread" - ], - "metadata": { - "id": "yB2NDOO4oxrp" - } - }, - { - "cell_type": "code", - "source": [ - "import os\n", - "from litellm import completion\n", - "\n", - "# Function to make both OpenAI and Azure completions\n", - "def make_completions():\n", - " # Set your OpenAI API key\n", - " os.environ[\"OPENAI_API_KEY\"] = \"\"\n", - "\n", - " # OpenAI completion\n", - " openai_response = completion(\n", - " model=\"gpt-3.5-turbo\",\n", - " messages=[{\"content\": \"Hello, how are you?\", \"role\": \"user\"}]\n", - " )\n", - "\n", - " print(\"OpenAI Response:\", openai_response)\n", - "\n", - " # Set your Azure OpenAI API key and configuration\n", - " os.environ[\"AZURE_API_KEY\"] = \"\"\n", - " os.environ[\"AZURE_API_BASE\"] = \"https://openai-gpt-4-test-v-1.openai.azure.com/\"\n", - " os.environ[\"AZURE_API_VERSION\"] = \"2023-05-15\"\n", - "\n", - " # Azure OpenAI completion\n", - " azure_response = completion(\n", - " model=\"azure/your-azure-deployment\",\n", - " messages=[{\"content\": \"Hello, how are you?\", \"role\": \"user\"}]\n", - " )\n", - "\n", - " print(\"Azure OpenAI Response:\", azure_response)\n", - "\n", - "# Call the function to make both completions in one thread\n", - "make_completions()\n" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "HTBqwzxpnxab", - "outputId": "f3bc0efe-e4d5-44d5-a193-97d178cfbe14" - }, - "execution_count": 23, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "OpenAI Response: {\n", - " \"id\": \"chatcmpl-7yjzrDeOeVeSrQ00tApmTxEww3vBS\",\n", - " \"object\": \"chat.completion\",\n", - " \"created\": 1694710847,\n", - " \"model\": \"gpt-3.5-turbo-0613\",\n", - " \"choices\": [\n", - " {\n", - " \"index\": 0,\n", - " \"message\": {\n", - " \"role\": \"assistant\",\n", - " \"content\": \"Hello! I'm an AI, so I don't have feelings, but I'm here to help you. How can I assist you today?\"\n", - " },\n", - " \"finish_reason\": \"stop\"\n", - " }\n", - " ],\n", - " \"usage\": {\n", - " \"prompt_tokens\": 13,\n", - " \"completion_tokens\": 29,\n", - " \"total_tokens\": 42\n", - " }\n", - "}\n", - "Azure OpenAI Response: {\n", - " \"id\": \"chatcmpl-7yjztAQ0gK6IMQt7cvLroMSOoXkeu\",\n", - " \"object\": \"chat.completion\",\n", - " \"created\": 1694710849,\n", - " \"model\": \"gpt-35-turbo\",\n", - " \"choices\": [\n", - " {\n", - " \"index\": 0,\n", - " \"finish_reason\": \"stop\",\n", - " \"message\": {\n", - " \"role\": \"assistant\",\n", - " \"content\": \"As an AI language model, I don't have feelings but I'm functioning properly. Thank you for asking! How can I assist you today?\"\n", - " }\n", - " }\n", - " ],\n", - " \"usage\": {\n", - " \"completion_tokens\": 29,\n", - " \"prompt_tokens\": 14,\n", - " \"total_tokens\": 43\n", - " }\n", - "}\n" - ] - } - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "Openai Response\n", + "\n", + "{\n", + " \"id\": \"chatcmpl-7yjVOEKCPw2KdkfIaM3Ao1tIXp8EM\",\n", + " \"object\": \"chat.completion\",\n", + " \"created\": 1694708958,\n", + " \"model\": \"gpt-3.5-turbo-0613\",\n", + " \"choices\": [\n", + " {\n", + " \"index\": 0,\n", + " \"message\": {\n", + " \"role\": \"assistant\",\n", + " \"content\": \"I'm an AI, so I don't have feelings, but I'm here to help you. How can I assist you?\"\n", + " },\n", + " \"finish_reason\": \"stop\"\n", + " }\n", + " ],\n", + " \"usage\": {\n", + " \"prompt_tokens\": 13,\n", + " \"completion_tokens\": 26,\n", + " \"total_tokens\": 39\n", + " }\n", + "}\n", + "Azure Response\n", + "\n", + "{\n", + " \"id\": \"chatcmpl-7yjVQ6m2R2HRtnKHRRFp6JzL4Fjez\",\n", + " \"object\": \"chat.completion\",\n", + " \"created\": 1694708960,\n", + " \"model\": \"gpt-35-turbo\",\n", + " \"choices\": [\n", + " {\n", + " \"index\": 0,\n", + " \"finish_reason\": \"stop\",\n", + " \"message\": {\n", + " \"role\": \"assistant\",\n", + " \"content\": \"Hello there! As an AI language model, I don't have feelings but I'm functioning well. How can I assist you today?\"\n", + " }\n", + " }\n", + " ],\n", + " \"usage\": {\n", + " \"completion_tokens\": 27,\n", + " \"prompt_tokens\": 14,\n", + " \"total_tokens\": 41\n", + " }\n", + "}\n" + ] } - ] + ], + "source": [ + "from litellm import completion\n", + "\n", + "# openai configs\n", + "os.environ[\"OPENAI_API_KEY\"] = \"\"\n", + "\n", + "# azure openai configs\n", + "os.environ[\"AZURE_API_KEY\"] = \"\"\n", + "os.environ[\"AZURE_API_BASE\"] = \"https://openai-gpt-4-test-v-1.openai.azure.com/\"\n", + "os.environ[\"AZURE_API_VERSION\"] = \"2023-05-15\"\n", + "\n", + "\n", + "# openai call\n", + "response = completion(\n", + " model = \"gpt-3.5-turbo\",\n", + " messages = [{ \"content\": \"Hello, how are you?\",\"role\": \"user\"}]\n", + ")\n", + "print(\"Openai Response\\n\")\n", + "print(response)\n", + "\n", + "\n", + "\n", + "# azure call\n", + "response = completion(\n", + " model = \"azure/your-azure-deployment\",\n", + " messages = [{ \"content\": \"Hello, how are you?\",\"role\": \"user\"}]\n", + ")\n", + "print(\"Azure Response\\n\")\n", + "print(response)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dQMkM-diiKdE" + }, + "source": [ + "## Completion - Streaming" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "uVvJDVn4g1i1" + }, + "outputs": [], + "source": [ + "import os\n", + "from litellm import completion\n", + "\n", + "# openai configs\n", + "os.environ[\"OPENAI_API_KEY\"] = \"\"\n", + "\n", + "# azure openai configs\n", + "os.environ[\"AZURE_API_KEY\"] = \"\"\n", + "os.environ[\"AZURE_API_BASE\"] = \"https://openai-gpt-4-test-v-1.openai.azure.com/\"\n", + "os.environ[\"AZURE_API_VERSION\"] = \"2023-05-15\"\n", + "\n", + "\n", + "# openai call\n", + "response = completion(\n", + " model = \"gpt-3.5-turbo\",\n", + " messages = [{ \"content\": \"Hello, how are you?\",\"role\": \"user\"}],\n", + " stream=True\n", + ")\n", + "print(\"OpenAI Streaming response\")\n", + "for chunk in response:\n", + " print(chunk)\n", + "\n", + "# azure call\n", + "response = completion(\n", + " model = \"azure/your-azure-deployment\",\n", + " messages = [{ \"content\": \"Hello, how are you?\",\"role\": \"user\"}],\n", + " stream=True\n", + ")\n", + "print(\"Azure Streaming response\")\n", + "for chunk in response:\n", + " print(chunk)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4xrOPnt-oqwm" + }, + "source": [ + "## Completion - Azure, OpenAI in separate threads" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "V5b5taJPjvC3" + }, + "outputs": [], + "source": [ + "import os\n", + "import threading\n", + "from litellm import completion\n", + "\n", + "# Function to make a completion call\n", + "def make_completion(model, messages):\n", + " response = completion(\n", + " model=model,\n", + " messages=messages\n", + " )\n", + "\n", + " print(f\"Response for {model}: {response}\")\n", + "\n", + "# openai configs\n", + "os.environ[\"OPENAI_API_KEY\"] = \"\"\n", + "\n", + "# azure openai configs\n", + "os.environ[\"AZURE_API_KEY\"] = \"\"\n", + "os.environ[\"AZURE_API_BASE\"] = \"https://openai-gpt-4-test-v-1.openai.azure.com/\"\n", + "os.environ[\"AZURE_API_VERSION\"] = \"2023-05-15\"\n", + "\n", + "# Define the messages for the completions\n", + "messages = [{\"content\": \"Hello, how are you?\", \"role\": \"user\"}]\n", + "\n", + "# Create threads for making the completions\n", + "thread1 = threading.Thread(target=make_completion, args=(\"gpt-3.5-turbo\", messages))\n", + "thread2 = threading.Thread(target=make_completion, args=(\"azure/your-azure-deployment\", messages))\n", + "\n", + "# Start both threads\n", + "thread1.start()\n", + "thread2.start()\n", + "\n", + "# Wait for both threads to finish\n", + "thread1.join()\n", + "thread2.join()\n", + "\n", + "print(\"Both completions are done.\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lx8DbMBqoAoN" + }, + "source": [ + "## Completion - Stress Test 10 requests in parallel\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "pHYANOlOkoDh" + }, + "outputs": [], + "source": [ + "import os\n", + "import threading\n", + "from litellm import completion\n", + "\n", + "# Function to make a completion call\n", + "def make_completion(model, messages):\n", + " response = completion(\n", + " model=model,\n", + " messages=messages\n", + " )\n", + "\n", + " print(f\"Response for {model}: {response}\")\n", + "\n", + "# Set your API keys\n", + "os.environ[\"OPENAI_API_KEY\"] = \"\"\n", + "os.environ[\"AZURE_API_KEY\"] = \"\"\n", + "os.environ[\"AZURE_API_BASE\"] = \"https://openai-gpt-4-test-v-1.openai.azure.com/\"\n", + "os.environ[\"AZURE_API_VERSION\"] = \"2023-05-15\"\n", + "\n", + "# Define the messages for the completions\n", + "messages = [{\"content\": \"Hello, how are you?\", \"role\": \"user\"}]\n", + "\n", + "# Create and start 10 threads for making completions\n", + "threads = []\n", + "for i in range(10):\n", + " thread = threading.Thread(target=make_completion, args=(\"gpt-3.5-turbo\" if i % 2 == 0 else \"azure/your-azure-deployment\", messages))\n", + " threads.append(thread)\n", + " thread.start()\n", + "\n", + "# Wait for all threads to finish\n", + "for thread in threads:\n", + " thread.join()\n", + "\n", + "print(\"All completions are done.\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yB2NDOO4oxrp" + }, + "source": [ + "## Completion - Azure, OpenAI in the same thread" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "HTBqwzxpnxab", + "outputId": "f3bc0efe-e4d5-44d5-a193-97d178cfbe14" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "OpenAI Response: {\n", + " \"id\": \"chatcmpl-7yjzrDeOeVeSrQ00tApmTxEww3vBS\",\n", + " \"object\": \"chat.completion\",\n", + " \"created\": 1694710847,\n", + " \"model\": \"gpt-3.5-turbo-0613\",\n", + " \"choices\": [\n", + " {\n", + " \"index\": 0,\n", + " \"message\": {\n", + " \"role\": \"assistant\",\n", + " \"content\": \"Hello! I'm an AI, so I don't have feelings, but I'm here to help you. How can I assist you today?\"\n", + " },\n", + " \"finish_reason\": \"stop\"\n", + " }\n", + " ],\n", + " \"usage\": {\n", + " \"prompt_tokens\": 13,\n", + " \"completion_tokens\": 29,\n", + " \"total_tokens\": 42\n", + " }\n", + "}\n", + "Azure OpenAI Response: {\n", + " \"id\": \"chatcmpl-7yjztAQ0gK6IMQt7cvLroMSOoXkeu\",\n", + " \"object\": \"chat.completion\",\n", + " \"created\": 1694710849,\n", + " \"model\": \"gpt-35-turbo\",\n", + " \"choices\": [\n", + " {\n", + " \"index\": 0,\n", + " \"finish_reason\": \"stop\",\n", + " \"message\": {\n", + " \"role\": \"assistant\",\n", + " \"content\": \"As an AI language model, I don't have feelings but I'm functioning properly. Thank you for asking! How can I assist you today?\"\n", + " }\n", + " }\n", + " ],\n", + " \"usage\": {\n", + " \"completion_tokens\": 29,\n", + " \"prompt_tokens\": 14,\n", + " \"total_tokens\": 43\n", + " }\n", + "}\n" + ] + } + ], + "source": [ + "import os\n", + "from litellm import completion\n", + "\n", + "# Function to make both OpenAI and Azure completions\n", + "def make_completions():\n", + " # Set your OpenAI API key\n", + " os.environ[\"OPENAI_API_KEY\"] = \"\"\n", + "\n", + " # OpenAI completion\n", + " openai_response = completion(\n", + " model=\"gpt-3.5-turbo\",\n", + " messages=[{\"content\": \"Hello, how are you?\", \"role\": \"user\"}]\n", + " )\n", + "\n", + " print(\"OpenAI Response:\", openai_response)\n", + "\n", + " # Set your Azure OpenAI API key and configuration\n", + " os.environ[\"AZURE_API_KEY\"] = \"\"\n", + " os.environ[\"AZURE_API_BASE\"] = \"https://openai-gpt-4-test-v-1.openai.azure.com/\"\n", + " os.environ[\"AZURE_API_VERSION\"] = \"2023-05-15\"\n", + "\n", + " # Azure OpenAI completion\n", + " azure_response = completion(\n", + " model=\"azure/your-azure-deployment\",\n", + " messages=[{\"content\": \"Hello, how are you?\", \"role\": \"user\"}]\n", + " )\n", + "\n", + " print(\"Azure OpenAI Response:\", azure_response)\n", + "\n", + "# Call the function to make both completions in one thread\n", + "make_completions()\n" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } \ No newline at end of file diff --git a/cookbook/LiteLLM_Comparing_LLMs.ipynb b/cookbook/LiteLLM_Comparing_LLMs.ipynb index 7f5ce809bc..0b2e4e8c77 100644 --- a/cookbook/LiteLLM_Comparing_LLMs.ipynb +++ b/cookbook/LiteLLM_Comparing_LLMs.ipynb @@ -1,442 +1,441 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "L-W4C3SgClxl" + }, + "source": [ + "## Comparing LLMs on a Test Set using LiteLLM\n", + "LiteLLM allows you to use any LLM as a drop in replacement for `gpt-3.5-turbo`\n", + "\n", + "This notebook walks through how you can compare GPT-4 vs Claude-2 on a given test set using litellm" + ] }, - "cells": [ - { - "cell_type": "markdown", - "source": [ - "## Comparing LLMs on a Test Set using LiteLLM\n", - "LiteLLM allows you to use any LLM as a drop in replacement for `gpt-3.5-turbo`\n", - "\n", - "This notebook walks through how you can compare GPT-4 vs Claude-2 on a given test set using litellm" - ], - "metadata": { - "id": "L-W4C3SgClxl" - } + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "fBkbl4Qo9pvz" + }, + "outputs": [], + "source": [ + "!pip install litellm" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "id": "tzS-AXWK8lJC" + }, + "outputs": [], + "source": [ + "from litellm import completion\n", + "\n", + "# init your test set questions\n", + "questions = [\n", + " \"how do i call completion() using LiteLLM\",\n", + " \"does LiteLLM support VertexAI\",\n", + " \"how do I set my keys on replicate llama2?\",\n", + "]\n", + "\n", + "\n", + "# set your prompt\n", + "prompt = \"\"\"\n", + "You are a coding assistant helping users using litellm.\n", + "litellm is a light package to simplify calling OpenAI, Azure, Cohere, Anthropic, Huggingface API Endpoints. It manages:\n", + "\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "id": "vMlqi40x-KAA" + }, + "outputs": [], + "source": [ + "import os\n", + "os.environ['OPENAI_API_KEY'] = \"\"\n", + "os.environ['ANTHROPIC_API_KEY'] = \"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-HOzUfpK-H8J" + }, + "source": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Ktn25dfKEJF1" + }, + "source": [ + "## Calling gpt-3.5-turbo and claude-2 on the same questions\n", + "\n", + "## LiteLLM `completion()` allows you to call all LLMs in the same format\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "DhXwRlc-9DED" + }, + "outputs": [], + "source": [ + "results = [] # for storing results\n", + "\n", + "models = ['gpt-3.5-turbo', 'claude-2'] # define what models you're testing, see: https://docs.litellm.ai/docs/providers\n", + "for question in questions:\n", + " row = [question]\n", + " for model in models:\n", + " print(\"Calling:\", model, \"question:\", question)\n", + " response = completion( # using litellm.completion\n", + " model=model,\n", + " messages=[\n", + " {'role': 'system', 'content': prompt},\n", + " {'role': 'user', 'content': question}\n", + " ]\n", + " )\n", + " answer = response.choices[0].message['content']\n", + " row.append(answer)\n", + " print(print(\"Calling:\", model, \"answer:\", answer))\n", + "\n", + " results.append(row) # save results\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RkEXhXxCDN77" + }, + "source": [ + "## Visualizing Results" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 761 }, + "id": "42hrmW6q-n4s", + "outputId": "b763bf39-72b9-4bea-caf6-de6b2412f86d" + }, + "outputs": [ { - "cell_type": "code", - "source": [ - "!pip install litellm" + "data": { + "application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/881c4a0d49046431/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"how do i call completion() using LiteLLM\",\n\"To call the `completion()` function using LiteLLM, you need to follow these steps:\\n\\n1. Install the `litellm` package by running `pip install litellm` in your terminal.\\n2. Import the `Completion` class from the `litellm` module.\\n3. Initialize an instance of the `Completion` class by providing the required parameters like the API endpoint URL and your API key.\\n4. Call the `complete()` method on the `Completion` instance and pass the text prompt as a string.\\n5. Retrieve the generated completion from the response object and use it as desired.\\n\\nHere's an example:\\n\\n```python\\nfrom litellm.completion import Completion\\n\\n# Initialize the Completion client\\ncompletion_client = Completion(\\n model_name='gpt-3.5-turbo',\\n api_key='your_api_key',\\n endpoint='https://your_endpoint_url'\\n)\\n\\n# Call the completion() method\\nresponse = completion_client.complete(\\\"Once upon a time\\\")\\n\\n# Retrieve the generated completion\\ncompletion = response['choices'][0]['text']\\n\\nprint(completion)\\n```\\n\\nMake sure to replace `'gpt-3.5-turbo'` with the desired model name, `'your_api_key'` with your actual API key, and `'https://your_endpoint_url'` with the correct API endpoint URL provided by your service provider.\\n\\nNote: The above example assumes you have a valid API key and endpoint URL for the OpenAI GPT-3.5-turbo model. Make sure to obtain the necessary credentials according to the API you are using.\",\n\" Here is how you can call the completion() method using LiteLLM:\\n\\nFirst, import LiteLLM:\\n\\n```python\\nimport litellm as lm\\n```\\n\\nThen create a LiteLLM object, specifying the API you want to use (e.g. \\\"openai\\\"):\\n\\n```python \\nai = lm.LiteLLM(\\\"openai\\\")\\n```\\n\\nNow you can call the completion() method on the ai object:\\n\\n```python\\nresponse = ai.completion(\\n prompt=\\\"Hello\\\", \\n model=\\\"text-davinci-003\\\",\\n max_tokens=100\\n)\\n```\\n\\nThe completion() method takes parameters like:\\n\\n- prompt (str): The prompt text to complete \\n- model (str): The AI model to use\\n- max_tokens (int): The maximum number of tokens to generate\\n\\nIt returns a Python dictionary with the AI's response.\\n\\nYou can then access the generated text using:\\n\\n```python\\nprint(response[\\\"choices\\\"][0][\\\"text\\\"]) \\n```\\n\\nSo LiteLLM provides a simple unified interface to call the underlying AI APIs. The completion() method works similarly for OpenAI\"],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"does LiteLLM support VertexAI\",\n\"Yes, LiteLLM does support Google Cloud Vertex AI. It provides convenient wrappers and simplified functions to call Vertex AI API endpoints for natural language processing tasks such as text classification, entity extraction, sentiment analysis, etc. You can easily integrate LiteLLM with Vertex AI in your code to leverage its capabilities.\",\n\" Unfortunately, LiteLLM does not currently support VertexAI. LiteLLM focuses on providing a simple interface to call the APIs of services like OpenAI, Azure, Cohere, Anthropic, and Hugging Face. \\n\\nVertexAI is Google's managed machine learning platform. Integrating VertexAI would require additional development work to wrap the VertexAI SDK in a simple interface like LiteLLM provides for other services. \\n\\nHowever, LiteLLM is open source, so it is possible for someone to contribute support for VertexAI. The maintainers would likely welcome a pull request to add VertexAI as an option if implemented well. But out of the box, LiteLLM does not have built-in support for calling VertexAI APIs.\\n\\nThe key services LiteLLM supports are:\\n\\n- OpenAI (GPT, Codex, DALL-E)\\n- Azure Cognitive Services (Text Analytics, Computer Vision, Speech) \\n- Cohere\\n- Anthropic AI\\n- Hugging Face Transformers\\n\\nSo while it doesn't cover every ML API provider, it does make it easy to use the most popular natural language, speech, and vision APIs through a simple interface. Adding VertexAI\"],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"how do I set my keys on replicate llama2?\",\n\"To set your keys on Replicate Llama2, follow these steps:\\n\\n1. Open the Llama2 dashboard in your browser.\\n2. Click on the \\\"Settings\\\" tab in the top menu.\\n3. Scroll down to the \\\"API Keys\\\" section.\\n4. Click on the \\\"Add a Key\\\" button.\\n5. Enter a name for your API key to help you identify it later.\\n6. Select the provider for your API key from the dropdown menu. For example, you can select \\\"OpenAI\\\" for OpenAI GPT-3 access.\\n7. Enter your API key in the provided input field. Make sure to copy it correctly.\\n8. Click on the \\\"Save\\\" button to save your API key.\\n\\nNote: The actual steps may vary slightly depending on the platform or interface you are using to access Llama2.\",\n\" Here are the steps to set your API keys on Replicate for litellm:\\n\\n1. Go to your Replicate project settings and select the Environment tab.\\n\\n2. Under Environment Variables, click Add Variable.\\n\\n3. Add variables for the API keys you want to use. The variable names should match the ones used in litellm:\\n\\n- `OPENAI_API_KEY` for OpenAI \\n- `AZURE_API_KEY` for Azure Cognitive Services\\n- `COHERE_API_KEY` for Cohere\\n- `ANTHROPIC_API_KEY` for Anthropic\\n- `HUGGINGFACE_API_KEY` for Hugging Face\\n\\n4. Set the value to your actual API key for each service. Make sure to treat the values as secrets.\\n\\n5. Make sure your litellm code is referencing the environment variable names, for example:\\n\\n```python\\nimport litellm as lm\\n\\nlm.auth(openai_key=os.getenv(\\\"OPENAI_API_KEY\\\")) \\n```\\n\\n6. Restart your Replicate runtime to load the new environment variables.\\n\\nNow litellm will use your\"]],\n columns: [[\"number\", \"index\"], [\"string\", \"Question\"], [\"string\", \"gpt-3.5-turbo\"], [\"string\", \"claude-2\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n
\n \n \n\n\n \n
`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n ", + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Questiongpt-3.5-turboclaude-2
0how do i call completion() using LiteLLMTo call the `completion()` function using Lite...Here is how you can call the completion() met...
1does LiteLLM support VertexAIYes, LiteLLM does support Google Cloud Vertex ...Unfortunately, LiteLLM does not currently sup...
2how do I set my keys on replicate llama2?To set your keys on Replicate Llama2, follow t...Here are the steps to set your API keys on Re...
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "
\n", + "
\n" ], - "metadata": { - "id": "fBkbl4Qo9pvz" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "id": "tzS-AXWK8lJC" - }, - "outputs": [], - "source": [ - "from litellm import completion\n", - "import litellm\n", - "\n", - "# init your test set questions\n", - "questions = [\n", - " \"how do i call completion() using LiteLLM\",\n", - " \"does LiteLLM support VertexAI\",\n", - " \"how do I set my keys on replicate llama2?\",\n", - "]\n", - "\n", - "\n", - "# set your prompt\n", - "prompt = \"\"\"\n", - "You are a coding assistant helping users using litellm.\n", - "litellm is a light package to simplify calling OpenAI, Azure, Cohere, Anthropic, Huggingface API Endpoints. It manages:\n", - "\n", - "\"\"\"" - ] - }, - { - "cell_type": "code", - "source": [ - "import os\n", - "os.environ['OPENAI_API_KEY'] = \"\"\n", - "os.environ['ANTHROPIC_API_KEY'] = \"\"" - ], - "metadata": { - "id": "vMlqi40x-KAA" - }, - "execution_count": 18, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [], - "metadata": { - "id": "-HOzUfpK-H8J" - } - }, - { - "cell_type": "markdown", - "source": [ - "## Calling gpt-3.5-turbo and claude-2 on the same questions\n", - "\n", - "## LiteLLM `completion()` allows you to call all LLMs in the same format\n" - ], - "metadata": { - "id": "Ktn25dfKEJF1" - } - }, - { - "cell_type": "code", - "source": [ - "results = [] # for storing results\n", - "\n", - "models = ['gpt-3.5-turbo', 'claude-2'] # define what models you're testing, see: https://docs.litellm.ai/docs/providers\n", - "for question in questions:\n", - " row = [question]\n", - " for model in models:\n", - " print(\"Calling:\", model, \"question:\", question)\n", - " response = completion( # using litellm.completion\n", - " model=model,\n", - " messages=[\n", - " {'role': 'system', 'content': prompt},\n", - " {'role': 'user', 'content': question}\n", - " ]\n", - " )\n", - " answer = response.choices[0].message['content']\n", - " row.append(answer)\n", - " print(print(\"Calling:\", model, \"answer:\", answer))\n", - "\n", - " results.append(row) # save results\n", - "\n" - ], - "metadata": { - "id": "DhXwRlc-9DED" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Visualizing Results" - ], - "metadata": { - "id": "RkEXhXxCDN77" - } - }, - { - "cell_type": "code", - "source": [ - "# Create a table to visualize results\n", - "import pandas as pd\n", - "\n", - "columns = ['Question'] + models\n", - "df = pd.DataFrame(results, columns=columns)\n", - "\n", - "df" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 761 - }, - "id": "42hrmW6q-n4s", - "outputId": "b763bf39-72b9-4bea-caf6-de6b2412f86d" - }, - "execution_count": 15, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - " Question \\\n", - "0 how do i call completion() using LiteLLM \n", - "1 does LiteLLM support VertexAI \n", - "2 how do I set my keys on replicate llama2? \n", - "\n", - " gpt-3.5-turbo \\\n", - "0 To call the `completion()` function using Lite... \n", - "1 Yes, LiteLLM does support Google Cloud Vertex ... \n", - "2 To set your keys on Replicate Llama2, follow t... \n", - "\n", - " claude-2 \n", - "0 Here is how you can call the completion() met... \n", - "1 Unfortunately, LiteLLM does not currently sup... \n", - "2 Here are the steps to set your API keys on Re... " - ], - "text/html": [ - "\n", - "
\n", - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Questiongpt-3.5-turboclaude-2
0how do i call completion() using LiteLLMTo call the `completion()` function using Lite...Here is how you can call the completion() met...
1does LiteLLM support VertexAIYes, LiteLLM does support Google Cloud Vertex ...Unfortunately, LiteLLM does not currently sup...
2how do I set my keys on replicate llama2?To set your keys on Replicate Llama2, follow t...Here are the steps to set your API keys on Re...
\n", - "
\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - " \n", - "\n", - " \n", - "
\n", - "\n", - "\n", - "
\n", - " \n", - "\n", - "\n", - "\n", - " \n", - "
\n", - "
\n", - "
\n" - ], - "application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/881c4a0d49046431/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"how do i call completion() using LiteLLM\",\n\"To call the `completion()` function using LiteLLM, you need to follow these steps:\\n\\n1. Install the `litellm` package by running `pip install litellm` in your terminal.\\n2. Import the `Completion` class from the `litellm` module.\\n3. Initialize an instance of the `Completion` class by providing the required parameters like the API endpoint URL and your API key.\\n4. Call the `complete()` method on the `Completion` instance and pass the text prompt as a string.\\n5. Retrieve the generated completion from the response object and use it as desired.\\n\\nHere's an example:\\n\\n```python\\nfrom litellm.completion import Completion\\n\\n# Initialize the Completion client\\ncompletion_client = Completion(\\n model_name='gpt-3.5-turbo',\\n api_key='your_api_key',\\n endpoint='https://your_endpoint_url'\\n)\\n\\n# Call the completion() method\\nresponse = completion_client.complete(\\\"Once upon a time\\\")\\n\\n# Retrieve the generated completion\\ncompletion = response['choices'][0]['text']\\n\\nprint(completion)\\n```\\n\\nMake sure to replace `'gpt-3.5-turbo'` with the desired model name, `'your_api_key'` with your actual API key, and `'https://your_endpoint_url'` with the correct API endpoint URL provided by your service provider.\\n\\nNote: The above example assumes you have a valid API key and endpoint URL for the OpenAI GPT-3.5-turbo model. Make sure to obtain the necessary credentials according to the API you are using.\",\n\" Here is how you can call the completion() method using LiteLLM:\\n\\nFirst, import LiteLLM:\\n\\n```python\\nimport litellm as lm\\n```\\n\\nThen create a LiteLLM object, specifying the API you want to use (e.g. \\\"openai\\\"):\\n\\n```python \\nai = lm.LiteLLM(\\\"openai\\\")\\n```\\n\\nNow you can call the completion() method on the ai object:\\n\\n```python\\nresponse = ai.completion(\\n prompt=\\\"Hello\\\", \\n model=\\\"text-davinci-003\\\",\\n max_tokens=100\\n)\\n```\\n\\nThe completion() method takes parameters like:\\n\\n- prompt (str): The prompt text to complete \\n- model (str): The AI model to use\\n- max_tokens (int): The maximum number of tokens to generate\\n\\nIt returns a Python dictionary with the AI's response.\\n\\nYou can then access the generated text using:\\n\\n```python\\nprint(response[\\\"choices\\\"][0][\\\"text\\\"]) \\n```\\n\\nSo LiteLLM provides a simple unified interface to call the underlying AI APIs. The completion() method works similarly for OpenAI\"],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"does LiteLLM support VertexAI\",\n\"Yes, LiteLLM does support Google Cloud Vertex AI. It provides convenient wrappers and simplified functions to call Vertex AI API endpoints for natural language processing tasks such as text classification, entity extraction, sentiment analysis, etc. You can easily integrate LiteLLM with Vertex AI in your code to leverage its capabilities.\",\n\" Unfortunately, LiteLLM does not currently support VertexAI. LiteLLM focuses on providing a simple interface to call the APIs of services like OpenAI, Azure, Cohere, Anthropic, and Hugging Face. \\n\\nVertexAI is Google's managed machine learning platform. Integrating VertexAI would require additional development work to wrap the VertexAI SDK in a simple interface like LiteLLM provides for other services. \\n\\nHowever, LiteLLM is open source, so it is possible for someone to contribute support for VertexAI. The maintainers would likely welcome a pull request to add VertexAI as an option if implemented well. But out of the box, LiteLLM does not have built-in support for calling VertexAI APIs.\\n\\nThe key services LiteLLM supports are:\\n\\n- OpenAI (GPT, Codex, DALL-E)\\n- Azure Cognitive Services (Text Analytics, Computer Vision, Speech) \\n- Cohere\\n- Anthropic AI\\n- Hugging Face Transformers\\n\\nSo while it doesn't cover every ML API provider, it does make it easy to use the most popular natural language, speech, and vision APIs through a simple interface. Adding VertexAI\"],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"how do I set my keys on replicate llama2?\",\n\"To set your keys on Replicate Llama2, follow these steps:\\n\\n1. Open the Llama2 dashboard in your browser.\\n2. Click on the \\\"Settings\\\" tab in the top menu.\\n3. Scroll down to the \\\"API Keys\\\" section.\\n4. Click on the \\\"Add a Key\\\" button.\\n5. Enter a name for your API key to help you identify it later.\\n6. Select the provider for your API key from the dropdown menu. For example, you can select \\\"OpenAI\\\" for OpenAI GPT-3 access.\\n7. Enter your API key in the provided input field. Make sure to copy it correctly.\\n8. Click on the \\\"Save\\\" button to save your API key.\\n\\nNote: The actual steps may vary slightly depending on the platform or interface you are using to access Llama2.\",\n\" Here are the steps to set your API keys on Replicate for litellm:\\n\\n1. Go to your Replicate project settings and select the Environment tab.\\n\\n2. Under Environment Variables, click Add Variable.\\n\\n3. Add variables for the API keys you want to use. The variable names should match the ones used in litellm:\\n\\n- `OPENAI_API_KEY` for OpenAI \\n- `AZURE_API_KEY` for Azure Cognitive Services\\n- `COHERE_API_KEY` for Cohere\\n- `ANTHROPIC_API_KEY` for Anthropic\\n- `HUGGINGFACE_API_KEY` for Hugging Face\\n\\n4. Set the value to your actual API key for each service. Make sure to treat the values as secrets.\\n\\n5. Make sure your litellm code is referencing the environment variable names, for example:\\n\\n```python\\nimport litellm as lm\\n\\nlm.auth(openai_key=os.getenv(\\\"OPENAI_API_KEY\\\")) \\n```\\n\\n6. Restart your Replicate runtime to load the new environment variables.\\n\\nNow litellm will use your\"]],\n columns: [[\"number\", \"index\"], [\"string\", \"Question\"], [\"string\", \"gpt-3.5-turbo\"], [\"string\", \"claude-2\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n
\n \n \n\n\n \n
`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n " - }, - "metadata": {}, - "execution_count": 15 - } + "text/plain": [ + " Question \\\n", + "0 how do i call completion() using LiteLLM \n", + "1 does LiteLLM support VertexAI \n", + "2 how do I set my keys on replicate llama2? \n", + "\n", + " gpt-3.5-turbo \\\n", + "0 To call the `completion()` function using Lite... \n", + "1 Yes, LiteLLM does support Google Cloud Vertex ... \n", + "2 To set your keys on Replicate Llama2, follow t... \n", + "\n", + " claude-2 \n", + "0 Here is how you can call the completion() met... \n", + "1 Unfortunately, LiteLLM does not currently sup... \n", + "2 Here are the steps to set your API keys on Re... " ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" } - ] + ], + "source": [ + "# Create a table to visualize results\n", + "import pandas as pd\n", + "\n", + "columns = ['Question'] + models\n", + "df = pd.DataFrame(results, columns=columns)\n", + "\n", + "df" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } \ No newline at end of file diff --git a/cookbook/LiteLLM_batch_completion.ipynb b/cookbook/LiteLLM_batch_completion.ipynb index a72fc3e876..b0d33d62f4 100644 --- a/cookbook/LiteLLM_batch_completion.ipynb +++ b/cookbook/LiteLLM_batch_completion.ipynb @@ -1,166 +1,163 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "MbLbs1tbISk-" + }, + "source": [ + "# LiteLLM Batch Completions Example\n", + "\n", + "* This tutorial walks through using `batch_completion`\n", + "* Docs: https://docs.litellm.ai/docs/completion/batching" + ] }, - "cells": [ - { - "cell_type": "markdown", - "source": [ - "# LiteLLM Batch Completions Example\n", - "\n", - "* This tutorial walks through using `batch_completion`\n", - "* Docs: https://docs.litellm.ai/docs/completion/batching" - ], - "metadata": { - "id": "MbLbs1tbISk-" - } + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "Ty6-ko_aDlPF" + }, + "outputs": [], + "source": [ + "!pip install litellm" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KGhNJRUCIh1j" + }, + "source": [ + "## Import Batch Completion" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "id": "LOtI43snDrSK" + }, + "outputs": [], + "source": [ + "import os\n", + "from litellm import batch_completion\n", + "\n", + "# set your API_KEY\n", + "os.environ['ANTHROPIC_API_KEY'] = \"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Xhv92NBaIpaw" + }, + "source": [ + "## Calling `litellm.batch_completion`\n", + "\n", + "In the batch_completion method, you provide a list of messages where each sub-list of messages is passed to litellm.completion(), allowing you to process multiple prompts efficiently in a single API call." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "yY7GIRLsDywu", + "outputId": "009ea67f-95d5-462b-947f-b0d21e60c5bb" + }, + "outputs": [ { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Ty6-ko_aDlPF" - }, - "outputs": [], - "source": [ - "!pip install litellm" - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Import Batch Completion" - ], - "metadata": { - "id": "KGhNJRUCIh1j" - } - }, - { - "cell_type": "code", - "source": [ - "import litellm\n", - "import os\n", - "from litellm import batch_completion\n", - "\n", - "# set your API_KEY\n", - "os.environ['ANTHROPIC_API_KEY'] = \"\"" - ], - "metadata": { - "id": "LOtI43snDrSK" - }, - "execution_count": 7, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Calling `litellm.batch_completion`\n", - "\n", - "In the batch_completion method, you provide a list of messages where each sub-list of messages is passed to litellm.completion(), allowing you to process multiple prompts efficiently in a single API call." - ], - "metadata": { - "id": "Xhv92NBaIpaw" - } - }, - { - "cell_type": "code", - "source": [ - "import litellm\n", - "import os\n", - "from litellm import batch_completion\n", - "\n", - "os.environ['ANTHROPIC_API_KEY'] = \"\"\n", - "\n", - "\n", - "responses = batch_completion(\n", - " model=\"claude-2\",\n", - " messages = [\n", - " [\n", - " {\n", - " \"role\": \"user\",\n", - " \"content\": \"good morning? \"\n", - " }\n", - " ],\n", - " [\n", - " {\n", - " \"role\": \"user\",\n", - " \"content\": \"what's the time? \"\n", - " }\n", - " ]\n", - " ]\n", - ")\n", - "responses" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "yY7GIRLsDywu", - "outputId": "009ea67f-95d5-462b-947f-b0d21e60c5bb" - }, - "execution_count": 11, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "[ JSON: {\n", - " \"choices\": [\n", - " {\n", - " \"finish_reason\": \"stop\",\n", - " \"index\": 0,\n", - " \"message\": {\n", - " \"content\": \" Good morning!\",\n", - " \"role\": \"assistant\",\n", - " \"logprobs\": null\n", - " }\n", - " }\n", - " ],\n", - " \"created\": 1694030351.309254,\n", - " \"model\": \"claude-2\",\n", - " \"usage\": {\n", - " \"prompt_tokens\": 11,\n", - " \"completion_tokens\": 3,\n", - " \"total_tokens\": 14\n", - " }\n", - " },\n", - " JSON: {\n", - " \"choices\": [\n", - " {\n", - " \"finish_reason\": \"stop\",\n", - " \"index\": 0,\n", - " \"message\": {\n", - " \"content\": \" I'm an AI assistant created by Anthropic. I don't actually have a concept of the current time.\",\n", - " \"role\": \"assistant\",\n", - " \"logprobs\": null\n", - " }\n", - " }\n", - " ],\n", - " \"created\": 1694030352.1215081,\n", - " \"model\": \"claude-2\",\n", - " \"usage\": {\n", - " \"prompt_tokens\": 13,\n", - " \"completion_tokens\": 22,\n", - " \"total_tokens\": 35\n", - " }\n", - " }]" - ] - }, - "metadata": {}, - "execution_count": 11 - } + "data": { + "text/plain": [ + "[ JSON: {\n", + " \"choices\": [\n", + " {\n", + " \"finish_reason\": \"stop\",\n", + " \"index\": 0,\n", + " \"message\": {\n", + " \"content\": \" Good morning!\",\n", + " \"role\": \"assistant\",\n", + " \"logprobs\": null\n", + " }\n", + " }\n", + " ],\n", + " \"created\": 1694030351.309254,\n", + " \"model\": \"claude-2\",\n", + " \"usage\": {\n", + " \"prompt_tokens\": 11,\n", + " \"completion_tokens\": 3,\n", + " \"total_tokens\": 14\n", + " }\n", + " },\n", + " JSON: {\n", + " \"choices\": [\n", + " {\n", + " \"finish_reason\": \"stop\",\n", + " \"index\": 0,\n", + " \"message\": {\n", + " \"content\": \" I'm an AI assistant created by Anthropic. I don't actually have a concept of the current time.\",\n", + " \"role\": \"assistant\",\n", + " \"logprobs\": null\n", + " }\n", + " }\n", + " ],\n", + " \"created\": 1694030352.1215081,\n", + " \"model\": \"claude-2\",\n", + " \"usage\": {\n", + " \"prompt_tokens\": 13,\n", + " \"completion_tokens\": 22,\n", + " \"total_tokens\": 35\n", + " }\n", + " }]" ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" } - ] + ], + "source": [ + "import os\n", + "\n", + "os.environ['ANTHROPIC_API_KEY'] = \"\"\n", + "\n", + "\n", + "responses = batch_completion(\n", + " model=\"claude-2\",\n", + " messages = [\n", + " [\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": \"good morning? \"\n", + " }\n", + " ],\n", + " [\n", + " {\n", + " \"role\": \"user\",\n", + " \"content\": \"what's the time? \"\n", + " }\n", + " ]\n", + " ]\n", + ")\n", + "responses" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } \ No newline at end of file diff --git a/cookbook/Proxy_Batch_Users.ipynb b/cookbook/Proxy_Batch_Users.ipynb index 70521f5ab0..c362ab8f8a 100644 --- a/cookbook/Proxy_Batch_Users.ipynb +++ b/cookbook/Proxy_Batch_Users.ipynb @@ -1,204 +1,205 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "680oRk1af-xJ" - }, - "source": [ - "# Environment Setup" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "X7TgJFn8f88p" - }, - "outputs": [], - "source": [ - "import csv\n", - "from typing import Optional\n", - "import httpx, json\n", - "import asyncio\n", - "\n", - "proxy_base_url = \"http://0.0.0.0:4000\" # 👈 SET TO PROXY URL\n", - "master_key = \"sk-1234\" # 👈 SET TO PROXY MASTER KEY" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "rauw8EOhgBz5" - }, - "outputs": [], - "source": [ - "## GLOBAL HTTP CLIENT ## - faster http calls\n", - "class HTTPHandler:\n", - " def __init__(self, concurrent_limit=1000):\n", - " # Create a client with a connection pool\n", - " self.client = httpx.AsyncClient(\n", - " limits=httpx.Limits(\n", - " max_connections=concurrent_limit,\n", - " max_keepalive_connections=concurrent_limit,\n", - " )\n", - " )\n", - "\n", - " async def close(self):\n", - " # Close the client when you're done with it\n", - " await self.client.aclose()\n", - "\n", - " async def get(\n", - " self, url: str, params: Optional[dict] = None, headers: Optional[dict] = None\n", - " ):\n", - " response = await self.client.get(url, params=params, headers=headers)\n", - " return response\n", - "\n", - " async def post(\n", - " self,\n", - " url: str,\n", - " data: Optional[dict] = None,\n", - " params: Optional[dict] = None,\n", - " headers: Optional[dict] = None,\n", - " ):\n", - " try:\n", - " response = await self.client.post(\n", - " url, data=data, params=params, headers=headers\n", - " )\n", - " return response\n", - " except Exception as e:\n", - " raise e\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7LXN8zaLgOie" - }, - "source": [ - "# Import Sheet\n", - "\n", - "\n", - "Format: | ID | Name | Max Budget |" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "oiED0usegPGf" - }, - "outputs": [], - "source": [ - "async def import_sheet():\n", - " tasks = []\n", - " http_client = HTTPHandler()\n", - " with open('my-batch-sheet.csv', 'r') as file:\n", - " csv_reader = csv.DictReader(file)\n", - " for row in csv_reader:\n", - " task = create_user(client=http_client, user_id=row['ID'], max_budget=row['Max Budget'], user_name=row['Name'])\n", - " tasks.append(task)\n", - " # print(f\"ID: {row['ID']}, Name: {row['Name']}, Max Budget: {row['Max Budget']}\")\n", - "\n", - " keys = await asyncio.gather(*tasks)\n", - "\n", - " with open('my-batch-sheet_new.csv', 'w', newline='') as new_file:\n", - " fieldnames = ['ID', 'Name', 'Max Budget', 'keys']\n", - " csv_writer = csv.DictWriter(new_file, fieldnames=fieldnames)\n", - " csv_writer.writeheader()\n", - "\n", - " with open('my-batch-sheet.csv', 'r') as file:\n", - " csv_reader = csv.DictReader(file)\n", - " for i, row in enumerate(csv_reader):\n", - " row['keys'] = keys[i] # Add the 'keys' value from the corresponding task result\n", - " csv_writer.writerow(row)\n", - "\n", - " await http_client.close()\n", - "\n", - "asyncio.run(import_sheet())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "E7M0Li_UgJeZ" - }, - "source": [ - "# Create Users + Keys\n", - "\n", - "- Creates a user\n", - "- Creates a key with max budget" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "NZudRFujf7j-" - }, - "outputs": [], - "source": [ - "\n", - "async def create_key_with_alias(client: HTTPHandler, user_id: str, max_budget: float):\n", - " global proxy_base_url\n", - " if not proxy_base_url.endswith(\"/\"):\n", - " proxy_base_url += \"/\"\n", - " url = proxy_base_url + \"key/generate\"\n", - "\n", - " # call /key/generate\n", - " print(\"CALLING /KEY/GENERATE\")\n", - " response = await client.post(\n", - " url=url,\n", - " headers={\"Authorization\": f\"Bearer {master_key}\"},\n", - " data=json.dumps({\n", - " \"user_id\": user_id,\n", - " \"key_alias\": f\"{user_id}-key\",\n", - " \"max_budget\": max_budget # 👈 KEY CHANGE: SETS MAX BUDGET PER KEY\n", - " })\n", - " )\n", - " print(f\"response: {response.text}\")\n", - " return response.json()[\"key\"]\n", - "\n", - "async def create_user(client: HTTPHandler, user_id: str, max_budget: float, user_name: str):\n", - " \"\"\"\n", - " - call /user/new\n", - " - create key for user\n", - " \"\"\"\n", - " global proxy_base_url\n", - " if not proxy_base_url.endswith(\"/\"):\n", - " proxy_base_url += \"/\"\n", - " url = proxy_base_url + \"user/new\"\n", - "\n", - " # call /user/new\n", - " await client.post(\n", - " url=url,\n", - " headers={\"Authorization\": f\"Bearer {master_key}\"},\n", - " data=json.dumps({\n", - " \"user_id\": user_id,\n", - " \"user_alias\": user_name,\n", - " \"auto_create_key\": False,\n", - " # \"max_budget\": max_budget # 👈 [OPTIONAL] Sets max budget per user (if you want to set a max budget across keys)\n", - " })\n", - " )\n", - "\n", - " # create key for user\n", - " return await create_key_with_alias(client=client, user_id=user_id, max_budget=max_budget)\n" - ] - } - ], - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "680oRk1af-xJ" + }, + "source": [ + "# Environment Setup" + ] }, - "nbformat": 4, - "nbformat_minor": 0 + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "X7TgJFn8f88p" + }, + "outputs": [], + "source": [ + "import csv\n", + "from typing import Optional\n", + "import httpx\n", + "import json\n", + "import asyncio\n", + "\n", + "proxy_base_url = \"http://0.0.0.0:4000\" # 👈 SET TO PROXY URL\n", + "master_key = \"sk-1234\" # 👈 SET TO PROXY MASTER KEY" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "rauw8EOhgBz5" + }, + "outputs": [], + "source": [ + "## GLOBAL HTTP CLIENT ## - faster http calls\n", + "class HTTPHandler:\n", + " def __init__(self, concurrent_limit=1000):\n", + " # Create a client with a connection pool\n", + " self.client = httpx.AsyncClient(\n", + " limits=httpx.Limits(\n", + " max_connections=concurrent_limit,\n", + " max_keepalive_connections=concurrent_limit,\n", + " )\n", + " )\n", + "\n", + " async def close(self):\n", + " # Close the client when you're done with it\n", + " await self.client.aclose()\n", + "\n", + " async def get(\n", + " self, url: str, params: Optional[dict] = None, headers: Optional[dict] = None\n", + " ):\n", + " response = await self.client.get(url, params=params, headers=headers)\n", + " return response\n", + "\n", + " async def post(\n", + " self,\n", + " url: str,\n", + " data: Optional[dict] = None,\n", + " params: Optional[dict] = None,\n", + " headers: Optional[dict] = None,\n", + " ):\n", + " try:\n", + " response = await self.client.post(\n", + " url, data=data, params=params, headers=headers\n", + " )\n", + " return response\n", + " except Exception as e:\n", + " raise e\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7LXN8zaLgOie" + }, + "source": [ + "# Import Sheet\n", + "\n", + "\n", + "Format: | ID | Name | Max Budget |" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "oiED0usegPGf" + }, + "outputs": [], + "source": [ + "async def import_sheet():\n", + " tasks = []\n", + " http_client = HTTPHandler()\n", + " with open('my-batch-sheet.csv', 'r') as file:\n", + " csv_reader = csv.DictReader(file)\n", + " for row in csv_reader:\n", + " task = create_user(client=http_client, user_id=row['ID'], max_budget=row['Max Budget'], user_name=row['Name'])\n", + " tasks.append(task)\n", + " # print(f\"ID: {row['ID']}, Name: {row['Name']}, Max Budget: {row['Max Budget']}\")\n", + "\n", + " keys = await asyncio.gather(*tasks)\n", + "\n", + " with open('my-batch-sheet_new.csv', 'w', newline='') as new_file:\n", + " fieldnames = ['ID', 'Name', 'Max Budget', 'keys']\n", + " csv_writer = csv.DictWriter(new_file, fieldnames=fieldnames)\n", + " csv_writer.writeheader()\n", + "\n", + " with open('my-batch-sheet.csv', 'r') as file:\n", + " csv_reader = csv.DictReader(file)\n", + " for i, row in enumerate(csv_reader):\n", + " row['keys'] = keys[i] # Add the 'keys' value from the corresponding task result\n", + " csv_writer.writerow(row)\n", + "\n", + " await http_client.close()\n", + "\n", + "asyncio.run(import_sheet())" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "E7M0Li_UgJeZ" + }, + "source": [ + "# Create Users + Keys\n", + "\n", + "- Creates a user\n", + "- Creates a key with max budget" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "NZudRFujf7j-" + }, + "outputs": [], + "source": [ + "\n", + "async def create_key_with_alias(client: HTTPHandler, user_id: str, max_budget: float):\n", + " global proxy_base_url\n", + " if not proxy_base_url.endswith(\"/\"):\n", + " proxy_base_url += \"/\"\n", + " url = proxy_base_url + \"key/generate\"\n", + "\n", + " # call /key/generate\n", + " print(\"CALLING /KEY/GENERATE\")\n", + " response = await client.post(\n", + " url=url,\n", + " headers={\"Authorization\": f\"Bearer {master_key}\"},\n", + " data=json.dumps({\n", + " \"user_id\": user_id,\n", + " \"key_alias\": f\"{user_id}-key\",\n", + " \"max_budget\": max_budget # 👈 KEY CHANGE: SETS MAX BUDGET PER KEY\n", + " })\n", + " )\n", + " print(f\"response: {response.text}\")\n", + " return response.json()[\"key\"]\n", + "\n", + "async def create_user(client: HTTPHandler, user_id: str, max_budget: float, user_name: str):\n", + " \"\"\"\n", + " - call /user/new\n", + " - create key for user\n", + " \"\"\"\n", + " global proxy_base_url\n", + " if not proxy_base_url.endswith(\"/\"):\n", + " proxy_base_url += \"/\"\n", + " url = proxy_base_url + \"user/new\"\n", + "\n", + " # call /user/new\n", + " await client.post(\n", + " url=url,\n", + " headers={\"Authorization\": f\"Bearer {master_key}\"},\n", + " data=json.dumps({\n", + " \"user_id\": user_id,\n", + " \"user_alias\": user_name,\n", + " \"auto_create_key\": False,\n", + " # \"max_budget\": max_budget # 👈 [OPTIONAL] Sets max budget per user (if you want to set a max budget across keys)\n", + " })\n", + " )\n", + "\n", + " # create key for user\n", + " return await create_key_with_alias(client=client, user_id=user_id, max_budget=max_budget)\n" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } diff --git a/cookbook/TogetherAI_liteLLM.ipynb b/cookbook/TogetherAI_liteLLM.ipynb index ad9ca0ba6a..d470091491 100644 --- a/cookbook/TogetherAI_liteLLM.ipynb +++ b/cookbook/TogetherAI_liteLLM.ipynb @@ -1,1007 +1,1006 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "WemkFEdDAnJL" - }, - "source": [ - "## liteLLM Together AI Tutorial\n", - "https://together.ai/\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "id": "pc6IO4V99O25", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "2d69da44-010b-41c2-b38b-5b478576bb8b" - }, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Collecting litellm\n", - " Downloading litellm-0.1.482-py3-none-any.whl (69 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m69.3/69.3 kB\u001b[0m \u001b[31m757.5 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hRequirement already satisfied: importlib-metadata<7.0.0,>=6.8.0 in /usr/local/lib/python3.10/dist-packages (from litellm) (6.8.0)\n", - "Collecting openai<0.28.0,>=0.27.8 (from litellm)\n", - " Downloading openai-0.27.9-py3-none-any.whl (75 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m75.5/75.5 kB\u001b[0m \u001b[31m3.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hCollecting python-dotenv<2.0.0,>=1.0.0 (from litellm)\n", - " Downloading python_dotenv-1.0.0-py3-none-any.whl (19 kB)\n", - "Collecting tiktoken<0.5.0,>=0.4.0 (from litellm)\n", - " Downloading tiktoken-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.7/1.7 MB\u001b[0m \u001b[31m17.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hRequirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.10/dist-packages (from importlib-metadata<7.0.0,>=6.8.0->litellm) (3.16.2)\n", - "Requirement already satisfied: requests>=2.20 in /usr/local/lib/python3.10/dist-packages (from openai<0.28.0,>=0.27.8->litellm) (2.31.0)\n", - "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from openai<0.28.0,>=0.27.8->litellm) (4.66.1)\n", - "Requirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from openai<0.28.0,>=0.27.8->litellm) (3.8.5)\n", - "Requirement already satisfied: regex>=2022.1.18 in /usr/local/lib/python3.10/dist-packages (from tiktoken<0.5.0,>=0.4.0->litellm) (2023.6.3)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai<0.28.0,>=0.27.8->litellm) (3.2.0)\n", - "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai<0.28.0,>=0.27.8->litellm) (3.4)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai<0.28.0,>=0.27.8->litellm) (2.0.4)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai<0.28.0,>=0.27.8->litellm) (2023.7.22)\n", - "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm) (23.1.0)\n", - "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm) (6.0.4)\n", - "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm) (4.0.3)\n", - "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm) (1.9.2)\n", - "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm) (1.4.0)\n", - "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm) (1.3.1)\n", - "Installing collected packages: python-dotenv, tiktoken, openai, litellm\n", - "Successfully installed litellm-0.1.482 openai-0.27.9 python-dotenv-1.0.0 tiktoken-0.4.0\n" - ] - } - ], - "source": [ - "!pip install litellm" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "id": "TMI3739_9q97" - }, - "outputs": [], - "source": [ - "import os\n", - "from litellm import completion\n", - "os.environ[\"TOGETHERAI_API_KEY\"] = \"\" #@param\n", - "user_message = \"Hello, whats the weather in San Francisco??\"\n", - "messages = [{ \"content\": user_message,\"role\": \"user\"}]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bEqJ2HHjBJqq" - }, - "source": [ - "## Calling togethercomputer/llama-2-70b-chat\n", - "https://api.together.xyz/playground/chat?model=togethercomputer%2Fllama-2-70b-chat" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Jrrt8puj523f", - "outputId": "24494dea-816f-47a6-ade4-1b04f2e9085b" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\n", - " 'choices': [\n", - "{\n", - " 'finish_reason': 'stop',\n", - " 'index': 0,\n", - " 'message': {\n", - " 'role': 'assistant',\n", - " 'content': \"\n", - "\n", - "I'm not able to provide real-time weather information. However, I can suggest some ways for you to find out the current weather in San Francisco.\n", - "\n", - "1. Check online weather websites: There are many websites that provide up-to-date weather information, such as AccuWeather, Weather.com, or the National Weather Service. You can enter \"San Francisco\" in the search bar and get the current weather conditions, forecast, and radar imagery.\n", - "2. Use a weather app: You can download a weather app on your smartphone that provides real-time weather information. Some popular weather apps include Dark Sky, Weather Underground, and The Weather Channel.\n", - "3. Tune into local news: You can watch local news channels or listen to local radio stations to get the latest weather forecast and current conditions.\n", - "4. Check social media: Follow local weather accounts on social media platforms like Twitter or Facebook to\"\n", - "}\n", - "}\n", - " ],\n", - " 'created': 1692323365.8261144,\n", - " 'model': 'togethercomputer/llama-2-70b-chat',\n", - " 'usage': {'prompt_tokens': 9, 'completion_tokens': 176, 'total_tokens': 185}\n", - "}\n" - ] - } - ], - "source": [ - "model_name = \"togethercomputer/llama-2-70b-chat\"\n", - "response = completion(model=model_name, messages=messages, max_tokens=200)\n", - "print(response)" - ] - }, - { - "cell_type": "code", - "source": [ - "model_name = \"togethercomputer/CodeLlama-34b-Instruct\"\n", - "response = completion(model=model_name, messages=messages, max_tokens=200)\n", - "print(response)" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "GIUevHlMvPb8", - "outputId": "ad930a12-16e3-4400-fff4-38151e4f6da5" - }, - "execution_count": 4, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "\u001b[92mHere's your LiteLLM Dashboard 👉 \u001b[94m\u001b[4mhttps://admin.litellm.ai/6c0f0403-becb-44af-9724-7201c7d381d0\u001b[0m\n", - "{\n", - " \"choices\": [\n", - " {\n", - " \"finish_reason\": \"stop\",\n", - " \"index\": 0,\n", - " \"message\": {\n", - " \"content\": \"\\nI'm in San Francisco, and I'm not sure what the weather is like.\\nI'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and\",\n", - " \"role\": \"assistant\"\n", - " }\n", - " }\n", - " ],\n", - " \"created\": 1692934243.8663018,\n", - " \"model\": \"togethercomputer/CodeLlama-34b-Instruct\",\n", - " \"usage\": {\n", - " \"prompt_tokens\": 9,\n", - " \"completion_tokens\": 178,\n", - " \"total_tokens\": 187\n", - " }\n", - "}\n" - ] - } - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sfWtgf-mBQcM" - }, - "source": [ - "## With Streaming" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "background_save": true, - "base_uri": "https://localhost:8080/" - }, - "id": "wuBhlZtC6MH5", - "outputId": "8f4a408c-25eb-4434-cdd4-7b4ae4f6d3aa" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'Y'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Com'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'bin'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ator'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' ('}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'Y'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ')'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' are'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' two'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' popular'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' acceler'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ators'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' have'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' gained'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' recognition'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' their'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' effect'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'iveness'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'urt'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'uring'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' scaling'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' early'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '-'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'stage'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' companies'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ities'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' they'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' also'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' have'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' distinct'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' differences'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' set'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' them'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' apart'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' In'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' this'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' ess'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ay'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' we'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' will'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' explore'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' key'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' features'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' discuss'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' which'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' might'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' be'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' better'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' fit'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'Y'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Com'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'bin'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ator'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' one'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' most'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' successful'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' acceler'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ators'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' world'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' with'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' port'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'folio'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' includes'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Air'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'b'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'nb'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Drop'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'box'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Red'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'dit'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' F'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ounded'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' '}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '2'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '5'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' has'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' fund'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ed'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' over'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' '}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '1'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '9'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' start'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ups'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' with'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' combined'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' valu'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ation'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' over'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' $'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '1'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' billion'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' The'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' known'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' its'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' inten'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'se'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' three'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '-'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'month'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' boot'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' camp'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '-'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'style'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' format'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' where'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' found'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ers'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' work'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' closely'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' with'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' experienced'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' ment'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ors'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' develop'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' their'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' products'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' ref'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ine'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' their'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' business'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' models'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' prepare'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' fund'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ra'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ising'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 's'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' focus'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' on'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' software'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' technology'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' internet'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' start'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ups'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' has'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' strong'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' track'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' record'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' ident'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ifying'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'urt'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'uring'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' successful'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' companies'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' these'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' spaces'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'l'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' on'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' other'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' hand'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' relatively'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' new'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' acceler'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ator'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' was'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' founded'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' '}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '2'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '1'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '7'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' While'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' it'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' may'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' not'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' have'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' same'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' level'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' brand'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' recognition'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' as'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' has'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' quickly'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' gained'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' reputation'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' its'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' unique'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' approach'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' acceleration'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' The'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' focus'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'es'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' on'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' supporting'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' under'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 're'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'present'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ed'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' found'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ers'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' particularly'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' women'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' people'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' color'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' provides'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' range'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' resources'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' support'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' help'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' these'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' found'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ers'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' succeed'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 's'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' designed'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' be'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' more'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' flexible'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' personal'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ized'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' than'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' traditional'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' acceler'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ators'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' with'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' focus'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' on'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' connecting'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' found'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ers'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' with'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' ment'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ors'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' resources'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' are'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' tail'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ored'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' their'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' specific'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' needs'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'One'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' key'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' difference'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' between'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' type'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' companies'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' they'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' support'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' focus'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'es'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' primarily'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' on'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' software'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' technology'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' internet'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' start'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ups'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' while'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' has'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' bro'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ader'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' focus'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' includes'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' range'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' indust'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ries'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' such'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' as'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' health'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'care'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' fin'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ance'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' consumer'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' products'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' This'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' means'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' if'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' non'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '-'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'tech'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' industry'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' may'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' be'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' better'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' fit'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'An'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'other'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' difference'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' between'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' two'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' programs'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' their'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' approach'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' fund'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ing'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' provides'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' seed'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' fund'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ing'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' all'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' its'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' port'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'folio'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' companies'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' typically'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' range'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' $'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '1'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' $'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '2'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' In'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' contrast'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' does'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' not'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' provide'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' fund'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ing'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' its'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' port'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'folio'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' companies'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' but'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' instead'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' focus'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'es'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' on'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' connecting'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' found'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ers'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' with'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' invest'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ors'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' resources'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' can'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' help'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' them'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' raise'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' capital'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' This'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' means'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' if'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' looking'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' fund'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ing'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' may'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' be'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' better'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' option'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'So'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' which'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' right'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '?'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' It'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' ultimately'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' depends'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' on'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' specific'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' needs'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' goals'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' If'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' non'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '-'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'tech'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' industry'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 's'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' bro'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ader'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' focus'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' may'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' be'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' better'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' fit'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Additionally'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' if'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' you'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 're'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' looking'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' more'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' personal'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ized'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' flexible'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' approach'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' acceleration'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 's'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' may'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' be'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' better'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' choice'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' On'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' other'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' hand'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' if'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' software'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' technology'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' or'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' internet'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' space'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' you'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 're'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' looking'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' seed'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' fund'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ing'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 's'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' may'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' be'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' better'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' fit'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'In'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' conclusion'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' are'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' both'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' excellent'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' acceler'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ators'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' can'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' provide'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' valuable'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' resources'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' support'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' early'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '-'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'stage'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' companies'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' While'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' they'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' share'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' some'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' similar'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 'ities'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' they'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' also'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' have'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' distinct'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' differences'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' set'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' them'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' apart'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' By'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' considering'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': 's'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' specific'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' needs'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' goals'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' you'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' can'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' determine'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' which'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' best'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' fit'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': ' business'}}]}\n", - "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n" - ] - } - ], - "source": [ - "user_message = \"Write 1page essay on YC + liteLLM\"\n", - "messages = [{ \"content\": user_message,\"role\": \"user\"}]\n", - "\n", - "\n", - "import asyncio\n", - "async def parse_stream(stream):\n", - " async for elem in stream:\n", - " print(elem)\n", - " return\n", - "\n", - "stream = completion(model=\"togethercomputer/llama-2-70b-chat\", messages=messages, stream=True, max_tokens=800)\n", - "print(stream)\n", - "\n", - "# Await the asynchronous function directly in the notebook cell\n", - "await parse_stream(stream)\n" - ] - } - ], - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "WemkFEdDAnJL" + }, + "source": [ + "## liteLLM Together AI Tutorial\n", + "https://together.ai/\n" + ] }, - "nbformat": 4, - "nbformat_minor": 0 + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "pc6IO4V99O25", + "outputId": "2d69da44-010b-41c2-b38b-5b478576bb8b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting litellm\n", + " Downloading litellm-0.1.482-py3-none-any.whl (69 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m69.3/69.3 kB\u001b[0m \u001b[31m757.5 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: importlib-metadata<7.0.0,>=6.8.0 in /usr/local/lib/python3.10/dist-packages (from litellm) (6.8.0)\n", + "Collecting openai<0.28.0,>=0.27.8 (from litellm)\n", + " Downloading openai-0.27.9-py3-none-any.whl (75 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m75.5/75.5 kB\u001b[0m \u001b[31m3.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting python-dotenv<2.0.0,>=1.0.0 (from litellm)\n", + " Downloading python_dotenv-1.0.0-py3-none-any.whl (19 kB)\n", + "Collecting tiktoken<0.5.0,>=0.4.0 (from litellm)\n", + " Downloading tiktoken-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.7/1.7 MB\u001b[0m \u001b[31m17.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.10/dist-packages (from importlib-metadata<7.0.0,>=6.8.0->litellm) (3.16.2)\n", + "Requirement already satisfied: requests>=2.20 in /usr/local/lib/python3.10/dist-packages (from openai<0.28.0,>=0.27.8->litellm) (2.31.0)\n", + "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from openai<0.28.0,>=0.27.8->litellm) (4.66.1)\n", + "Requirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from openai<0.28.0,>=0.27.8->litellm) (3.8.5)\n", + "Requirement already satisfied: regex>=2022.1.18 in /usr/local/lib/python3.10/dist-packages (from tiktoken<0.5.0,>=0.4.0->litellm) (2023.6.3)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai<0.28.0,>=0.27.8->litellm) (3.2.0)\n", + "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai<0.28.0,>=0.27.8->litellm) (3.4)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai<0.28.0,>=0.27.8->litellm) (2.0.4)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai<0.28.0,>=0.27.8->litellm) (2023.7.22)\n", + "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm) (23.1.0)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm) (6.0.4)\n", + "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm) (4.0.3)\n", + "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm) (1.9.2)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm) (1.4.0)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm) (1.3.1)\n", + "Installing collected packages: python-dotenv, tiktoken, openai, litellm\n", + "Successfully installed litellm-0.1.482 openai-0.27.9 python-dotenv-1.0.0 tiktoken-0.4.0\n" + ] + } + ], + "source": [ + "!pip install litellm" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "TMI3739_9q97" + }, + "outputs": [], + "source": [ + "import os\n", + "from litellm import completion\n", + "os.environ[\"TOGETHERAI_API_KEY\"] = \"\" #@param\n", + "user_message = \"Hello, whats the weather in San Francisco??\"\n", + "messages = [{ \"content\": user_message,\"role\": \"user\"}]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "bEqJ2HHjBJqq" + }, + "source": [ + "## Calling togethercomputer/llama-2-70b-chat\n", + "https://api.together.xyz/playground/chat?model=togethercomputer%2Fllama-2-70b-chat" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Jrrt8puj523f", + "outputId": "24494dea-816f-47a6-ade4-1b04f2e9085b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " 'choices': [\n", + "{\n", + " 'finish_reason': 'stop',\n", + " 'index': 0,\n", + " 'message': {\n", + " 'role': 'assistant',\n", + " 'content': \"\n", + "\n", + "I'm not able to provide real-time weather information. However, I can suggest some ways for you to find out the current weather in San Francisco.\n", + "\n", + "1. Check online weather websites: There are many websites that provide up-to-date weather information, such as AccuWeather, Weather.com, or the National Weather Service. You can enter \"San Francisco\" in the search bar and get the current weather conditions, forecast, and radar imagery.\n", + "2. Use a weather app: You can download a weather app on your smartphone that provides real-time weather information. Some popular weather apps include Dark Sky, Weather Underground, and The Weather Channel.\n", + "3. Tune into local news: You can watch local news channels or listen to local radio stations to get the latest weather forecast and current conditions.\n", + "4. Check social media: Follow local weather accounts on social media platforms like Twitter or Facebook to\"\n", + "}\n", + "}\n", + " ],\n", + " 'created': 1692323365.8261144,\n", + " 'model': 'togethercomputer/llama-2-70b-chat',\n", + " 'usage': {'prompt_tokens': 9, 'completion_tokens': 176, 'total_tokens': 185}\n", + "}\n" + ] + } + ], + "source": [ + "model_name = \"togethercomputer/llama-2-70b-chat\"\n", + "response = completion(model=model_name, messages=messages, max_tokens=200)\n", + "print(response)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "GIUevHlMvPb8", + "outputId": "ad930a12-16e3-4400-fff4-38151e4f6da5" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[92mHere's your LiteLLM Dashboard 👉 \u001b[94m\u001b[4mhttps://admin.litellm.ai/6c0f0403-becb-44af-9724-7201c7d381d0\u001b[0m\n", + "{\n", + " \"choices\": [\n", + " {\n", + " \"finish_reason\": \"stop\",\n", + " \"index\": 0,\n", + " \"message\": {\n", + " \"content\": \"\\nI'm in San Francisco, and I'm not sure what the weather is like.\\nI'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and I'm not sure what the weather is like. I'm in San Francisco, and\",\n", + " \"role\": \"assistant\"\n", + " }\n", + " }\n", + " ],\n", + " \"created\": 1692934243.8663018,\n", + " \"model\": \"togethercomputer/CodeLlama-34b-Instruct\",\n", + " \"usage\": {\n", + " \"prompt_tokens\": 9,\n", + " \"completion_tokens\": 178,\n", + " \"total_tokens\": 187\n", + " }\n", + "}\n" + ] + } + ], + "source": [ + "model_name = \"togethercomputer/CodeLlama-34b-Instruct\"\n", + "response = completion(model=model_name, messages=messages, max_tokens=200)\n", + "print(response)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sfWtgf-mBQcM" + }, + "source": [ + "## With Streaming" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "background_save": true, + "base_uri": "https://localhost:8080/" + }, + "id": "wuBhlZtC6MH5", + "outputId": "8f4a408c-25eb-4434-cdd4-7b4ae4f6d3aa" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'Y'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Com'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'bin'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ator'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' ('}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'Y'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ')'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' are'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' two'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' popular'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' acceler'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ators'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' have'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' gained'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' recognition'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' their'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' effect'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'iveness'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'urt'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'uring'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' scaling'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' early'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '-'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'stage'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' companies'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ities'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' they'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' also'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' have'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' distinct'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' differences'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' set'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' them'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' apart'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' In'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' this'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' ess'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ay'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' we'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' will'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' explore'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' key'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' features'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' discuss'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' which'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' might'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' be'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' better'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' fit'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'Y'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Com'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'bin'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ator'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' one'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' most'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' successful'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' acceler'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ators'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' world'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' with'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' port'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'folio'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' includes'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Air'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'b'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'nb'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Drop'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'box'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Red'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'dit'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' F'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ounded'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' '}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '2'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '5'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' has'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' fund'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ed'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' over'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' '}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '1'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '9'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' start'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ups'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' with'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' combined'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' valu'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ation'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' over'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' $'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '1'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' billion'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' The'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' known'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' its'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' inten'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'se'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' three'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '-'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'month'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' boot'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' camp'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '-'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'style'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' format'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' where'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' found'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ers'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' work'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' closely'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' with'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' experienced'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' ment'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ors'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' develop'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' their'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' products'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' ref'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ine'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' their'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' business'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' models'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' prepare'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' fund'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ra'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ising'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 's'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' focus'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' on'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' software'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' technology'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' internet'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' start'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ups'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' has'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' strong'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' track'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' record'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' ident'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ifying'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'urt'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'uring'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' successful'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' companies'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' these'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' spaces'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'l'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' on'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' other'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' hand'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' relatively'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' new'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' acceler'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ator'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' was'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' founded'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' '}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '2'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '1'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '7'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' While'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' it'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' may'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' not'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' have'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' same'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' level'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' brand'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' recognition'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' as'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' has'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' quickly'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' gained'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' reputation'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' its'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' unique'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' approach'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' acceleration'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' The'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' focus'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'es'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' on'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' supporting'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' under'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 're'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'present'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ed'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' found'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ers'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' particularly'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' women'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' people'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' color'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' provides'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' range'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' resources'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' support'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' help'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' these'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' found'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ers'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' succeed'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 's'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' designed'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' be'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' more'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' flexible'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' personal'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ized'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' than'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' traditional'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' acceler'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ators'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' with'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' focus'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' on'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' connecting'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' found'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ers'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' with'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' ment'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ors'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' resources'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' are'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' tail'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ored'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' their'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' specific'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' needs'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'One'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' key'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' difference'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' between'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' type'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' companies'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' they'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' support'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' focus'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'es'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' primarily'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' on'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' software'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' technology'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' internet'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' start'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ups'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' while'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' has'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' bro'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ader'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' focus'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' includes'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' range'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' indust'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ries'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' such'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' as'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' health'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'care'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' fin'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ance'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' consumer'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' products'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' This'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' means'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' if'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' non'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '-'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'tech'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' industry'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' may'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' be'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' better'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' fit'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'An'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'other'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' difference'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' between'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' two'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' programs'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' their'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' approach'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' fund'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ing'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' provides'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' seed'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' fund'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ing'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' all'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' its'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' port'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'folio'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' companies'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' typically'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' range'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' of'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' $'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '1'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' $'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '2'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '0'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' In'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' contrast'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' does'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' not'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' provide'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' fund'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ing'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' its'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' port'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'folio'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' companies'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' but'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' instead'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' focus'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'es'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' on'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' connecting'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' found'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ers'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' with'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' invest'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ors'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' resources'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' can'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' help'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' them'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' raise'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' capital'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' This'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' means'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' if'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' looking'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' fund'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ing'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' may'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' be'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' better'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' option'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'So'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' which'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' right'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '?'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' It'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' ultimately'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' depends'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' on'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' specific'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' needs'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' goals'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' If'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' non'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '-'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'tech'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' industry'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 's'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' bro'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ader'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' focus'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' may'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' be'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' better'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' fit'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Additionally'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' if'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' you'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 're'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' looking'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' more'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' personal'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ized'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' flexible'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' approach'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' acceleration'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 's'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' may'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' be'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' better'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' choice'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' On'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' other'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' hand'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' if'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' in'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' software'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' technology'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' or'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' internet'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' space'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' you'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 're'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' looking'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' seed'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' fund'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ing'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 's'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' may'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' be'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' a'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' better'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' fit'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '\\n'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'In'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' conclusion'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' Y'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'C'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' l'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ite'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'LL'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'M'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' are'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' both'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' excellent'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' acceler'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ators'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' can'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' provide'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' valuable'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' resources'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' support'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' to'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' early'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '-'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'stage'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' companies'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' While'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' they'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' share'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' some'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' similar'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 'ities'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' they'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' also'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' have'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' distinct'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' differences'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' that'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' set'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' them'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' apart'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' By'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' considering'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' startup'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': \"'\"}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': 's'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' specific'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' needs'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' and'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' goals'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ','}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' you'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' can'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' determine'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' which'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' program'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' is'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' the'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' best'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' fit'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' for'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' your'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': ' business'}}]}\n", + "{'choices': [{'delta': {'role': 'assistant', 'content': '.'}}]}\n" + ] + } + ], + "source": [ + "user_message = \"Write 1page essay on YC + liteLLM\"\n", + "messages = [{ \"content\": user_message,\"role\": \"user\"}]\n", + "\n", + "\n", + "async def parse_stream(stream):\n", + " async for elem in stream:\n", + " print(elem)\n", + " return\n", + "\n", + "stream = completion(model=\"togethercomputer/llama-2-70b-chat\", messages=messages, stream=True, max_tokens=800)\n", + "print(stream)\n", + "\n", + "# Await the asynchronous function directly in the notebook cell\n", + "await parse_stream(stream)\n" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } \ No newline at end of file diff --git a/cookbook/Using_Nemo_Guardrails_with_LiteLLM_Server.ipynb b/cookbook/Using_Nemo_Guardrails_with_LiteLLM_Server.ipynb index da5908324d..0c3ff97a37 100644 --- a/cookbook/Using_Nemo_Guardrails_with_LiteLLM_Server.ipynb +++ b/cookbook/Using_Nemo_Guardrails_with_LiteLLM_Server.ipynb @@ -1,159 +1,157 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "eKXncoQbU_2j" + }, + "source": [ + "# Using Nemo-Guardrails with LiteLLM Server\n", + "\n", + "[Call Bedrock, TogetherAI, Huggingface, etc. on the server](https://docs.litellm.ai/docs/providers)" + ] }, - "cells": [ - { - "cell_type": "markdown", - "source": [ - "# Using Nemo-Guardrails with LiteLLM Server\n", - "\n", - "[Call Bedrock, TogetherAI, Huggingface, etc. on the server](https://docs.litellm.ai/docs/providers)" - ], - "metadata": { - "id": "eKXncoQbU_2j" - } - }, - { - "cell_type": "markdown", - "source": [ - "## Using with Bedrock\n", - "\n", - "`docker run -e PORT=8000 -e AWS_ACCESS_KEY_ID= -e AWS_SECRET_ACCESS_KEY= -p 8000:8000 ghcr.io/berriai/litellm:latest`" - ], - "metadata": { - "id": "ZciYaLwvuFbu" - } - }, - { - "cell_type": "code", - "source": [ - "pip install nemoguardrails langchain" - ], - "metadata": { - "id": "vOUwGSJ2Vsy3" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "xXEJNxe7U0IN" - }, - "outputs": [], - "source": [ - "import openai\n", - "from langchain.chat_models import ChatOpenAI\n", - "\n", - "llm = ChatOpenAI(model_name=\"anthropic.claude-v2\", openai_api_base=\"http://0.0.0.0:8000\", openai_api_key=\"my-fake-key\")\n", - "\n", - "from nemoguardrails import LLMRails, RailsConfig\n", - "\n", - "config = RailsConfig.from_path(\"./config.yml\")\n", - "app = LLMRails(config, llm=llm)\n", - "\n", - "new_message = app.generate(messages=[{\n", - " \"role\": \"user\",\n", - " \"content\": \"Hello! What can you do for me?\"\n", - "}])" - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Using with TogetherAI\n", - "\n", - "1. You can either set this in the server environment:\n", - "`docker run -e PORT=8000 -e TOGETHERAI_API_KEY= -p 8000:8000 ghcr.io/berriai/litellm:latest`\n", - "\n", - "2. **Or** Pass this in as the api key `(...openai_api_key=\"\")`" - ], - "metadata": { - "id": "vz5n00qyuKjp" - } - }, - { - "cell_type": "code", - "source": [ - "import openai\n", - "from langchain.chat_models import ChatOpenAI\n", - "\n", - "llm = ChatOpenAI(model_name=\"together_ai/togethercomputer/CodeLlama-13b-Instruct\", openai_api_base=\"http://0.0.0.0:8000\", openai_api_key=\"my-together-ai-api-key\")\n", - "\n", - "from nemoguardrails import LLMRails, RailsConfig\n", - "\n", - "config = RailsConfig.from_path(\"./config.yml\")\n", - "app = LLMRails(config, llm=llm)\n", - "\n", - "new_message = app.generate(messages=[{\n", - " \"role\": \"user\",\n", - " \"content\": \"Hello! What can you do for me?\"\n", - "}])" - ], - "metadata": { - "id": "XK1sk-McuhpE" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "### CONFIG.YML\n", - "\n", - "save this example `config.yml` in your current directory" - ], - "metadata": { - "id": "8A1KWKnzuxAS" - } - }, - { - "cell_type": "code", - "source": [ - "# instructions:\n", - "# - type: general\n", - "# content: |\n", - "# Below is a conversation between a bot and a user about the recent job reports.\n", - "# The bot is factual and concise. If the bot does not know the answer to a\n", - "# question, it truthfully says it does not know.\n", - "\n", - "# sample_conversation: |\n", - "# user \"Hello there!\"\n", - "# express greeting\n", - "# bot express greeting\n", - "# \"Hello! How can I assist you today?\"\n", - "# user \"What can you do for me?\"\n", - "# ask about capabilities\n", - "# bot respond about capabilities\n", - "# \"I am an AI assistant that helps answer mathematical questions. My core mathematical skills are powered by wolfram alpha.\"\n", - "# user \"What's 2+2?\"\n", - "# ask math question\n", - "# bot responds to math question\n", - "# \"2+2 is equal to 4.\"\n", - "\n", - "# models:\n", - "# - type: main\n", - "# engine: openai\n", - "# model: claude-instant-1" - ], - "metadata": { - "id": "NKN1GmSvu0Cx" - }, - "execution_count": null, - "outputs": [] - } - ] + { + "cell_type": "markdown", + "metadata": { + "id": "ZciYaLwvuFbu" + }, + "source": [ + "## Using with Bedrock\n", + "\n", + "`docker run -e PORT=8000 -e AWS_ACCESS_KEY_ID= -e AWS_SECRET_ACCESS_KEY= -p 8000:8000 ghcr.io/berriai/litellm:latest`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "vOUwGSJ2Vsy3" + }, + "outputs": [], + "source": [ + "pip install nemoguardrails langchain" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "xXEJNxe7U0IN" + }, + "outputs": [], + "source": [ + "from langchain.chat_models import ChatOpenAI\n", + "\n", + "llm = ChatOpenAI(model_name=\"anthropic.claude-v2\", openai_api_base=\"http://0.0.0.0:8000\", openai_api_key=\"my-fake-key\")\n", + "\n", + "from nemoguardrails import LLMRails, RailsConfig\n", + "\n", + "config = RailsConfig.from_path(\"./config.yml\")\n", + "app = LLMRails(config, llm=llm)\n", + "\n", + "new_message = app.generate(messages=[{\n", + " \"role\": \"user\",\n", + " \"content\": \"Hello! What can you do for me?\"\n", + "}])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vz5n00qyuKjp" + }, + "source": [ + "## Using with TogetherAI\n", + "\n", + "1. You can either set this in the server environment:\n", + "`docker run -e PORT=8000 -e TOGETHERAI_API_KEY= -p 8000:8000 ghcr.io/berriai/litellm:latest`\n", + "\n", + "2. **Or** Pass this in as the api key `(...openai_api_key=\"\")`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "XK1sk-McuhpE" + }, + "outputs": [], + "source": [ + "from langchain.chat_models import ChatOpenAI\n", + "\n", + "llm = ChatOpenAI(model_name=\"together_ai/togethercomputer/CodeLlama-13b-Instruct\", openai_api_base=\"http://0.0.0.0:8000\", openai_api_key=\"my-together-ai-api-key\")\n", + "\n", + "from nemoguardrails import LLMRails, RailsConfig\n", + "\n", + "config = RailsConfig.from_path(\"./config.yml\")\n", + "app = LLMRails(config, llm=llm)\n", + "\n", + "new_message = app.generate(messages=[{\n", + " \"role\": \"user\",\n", + " \"content\": \"Hello! What can you do for me?\"\n", + "}])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8A1KWKnzuxAS" + }, + "source": [ + "### CONFIG.YML\n", + "\n", + "save this example `config.yml` in your current directory" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "NKN1GmSvu0Cx" + }, + "outputs": [], + "source": [ + "# instructions:\n", + "# - type: general\n", + "# content: |\n", + "# Below is a conversation between a bot and a user about the recent job reports.\n", + "# The bot is factual and concise. If the bot does not know the answer to a\n", + "# question, it truthfully says it does not know.\n", + "\n", + "# sample_conversation: |\n", + "# user \"Hello there!\"\n", + "# express greeting\n", + "# bot express greeting\n", + "# \"Hello! How can I assist you today?\"\n", + "# user \"What can you do for me?\"\n", + "# ask about capabilities\n", + "# bot respond about capabilities\n", + "# \"I am an AI assistant that helps answer mathematical questions. My core mathematical skills are powered by wolfram alpha.\"\n", + "# user \"What's 2+2?\"\n", + "# ask math question\n", + "# bot responds to math question\n", + "# \"2+2 is equal to 4.\"\n", + "\n", + "# models:\n", + "# - type: main\n", + "# engine: openai\n", + "# model: claude-instant-1" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } \ No newline at end of file diff --git a/cookbook/benchmark/eval_suites_mlflow_autoevals/auto_evals.py b/cookbook/benchmark/eval_suites_mlflow_autoevals/auto_evals.py index 94682793aa..daa38dda58 100644 --- a/cookbook/benchmark/eval_suites_mlflow_autoevals/auto_evals.py +++ b/cookbook/benchmark/eval_suites_mlflow_autoevals/auto_evals.py @@ -1,16 +1,12 @@ -import sys, os -import traceback from dotenv import load_dotenv load_dotenv() import litellm -from litellm import embedding, completion, completion_cost from autoevals.llm import * ################### -import litellm # litellm completion call question = "which country has the highest population" diff --git a/cookbook/codellama-server/main.py b/cookbook/codellama-server/main.py index a31220338c..d05d675230 100644 --- a/cookbook/codellama-server/main.py +++ b/cookbook/codellama-server/main.py @@ -1,11 +1,12 @@ import traceback -from flask import Flask, request, jsonify, abort, Response +from flask import Flask, request, Response from flask_cors import CORS -import traceback import litellm from util import handle_error from litellm import completion -import os, dotenv, time +import os +import dotenv +import time import json dotenv.load_dotenv() @@ -20,9 +21,9 @@ verbose = True # litellm.caching_with_models = True # CACHING: caching_with_models Keys in the cache are messages + model. - to learn more: https://docs.litellm.ai/docs/caching/ ######### PROMPT LOGGING ########## -os.environ[ - "PROMPTLAYER_API_KEY" -] = "" # set your promptlayer key here - https://promptlayer.com/ +os.environ["PROMPTLAYER_API_KEY"] = ( + "" # set your promptlayer key here - https://promptlayer.com/ +) # set callbacks litellm.success_callback = ["promptlayer"] @@ -57,9 +58,9 @@ def api_completion(): try: if "prompt" not in data: raise ValueError("data needs to have prompt") - data[ - "model" - ] = "togethercomputer/CodeLlama-34b-Instruct" # by default use Together AI's CodeLlama model - https://api.together.xyz/playground/chat?model=togethercomputer%2FCodeLlama-34b-Instruct + data["model"] = ( + "togethercomputer/CodeLlama-34b-Instruct" # by default use Together AI's CodeLlama model - https://api.together.xyz/playground/chat?model=togethercomputer%2FCodeLlama-34b-Instruct + ) # COMPLETION CALL system_prompt = "Only respond to questions about code. Say 'I don't know' to anything outside of that." messages = [ @@ -75,7 +76,7 @@ def api_completion(): "stream" in data and data["stream"] == True ): # use generate_responses to stream responses return Response(data_generator(response), mimetype="text/event-stream") - except Exception as e: + except Exception: # call handle_error function print_verbose(f"Got Error api_completion(): {traceback.format_exc()}") ## LOG FAILURE diff --git a/cookbook/community-resources/get_hf_models.py b/cookbook/community-resources/get_hf_models.py index 2d89727913..8c75a24122 100644 --- a/cookbook/community-resources/get_hf_models.py +++ b/cookbook/community-resources/get_hf_models.py @@ -1,5 +1,4 @@ import requests -from urllib.parse import urlparse, parse_qs def get_next_url(response): diff --git a/cookbook/liteLLM_Baseten.ipynb b/cookbook/liteLLM_Baseten.ipynb index c2fb5e78e0..e03bb3254a 100644 --- a/cookbook/liteLLM_Baseten.ipynb +++ b/cookbook/liteLLM_Baseten.ipynb @@ -1,238 +1,237 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "gZx-wHJapG5w" + }, + "source": [ + "# Use liteLLM to call Falcon, Wizard, MPT 7B using OpenAI chatGPT Input/output\n", + "\n", + "* Falcon 7B: https://app.baseten.co/explore/falcon_7b\n", + "* Wizard LM: https://app.baseten.co/explore/wizardlm\n", + "* MPT 7B Base: https://app.baseten.co/explore/mpt_7b_instruct\n", + "\n", + "\n", + "## Call all baseten llm models using OpenAI chatGPT Input/Output using liteLLM\n", + "Example call\n", + "```python\n", + "model = \"q841o8w\" # baseten model version ID\n", + "response = completion(model=model, messages=messages, custom_llm_provider=\"baseten\")\n", + "```" + ] }, - "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "4JSRa0QVogPo" + }, + "outputs": [], + "source": [ + "!pip install litellm==0.1.399\n", + "!pip install baseten urllib3" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "VEukLhDzo4vw" + }, + "outputs": [], + "source": [ + "import os\n", + "from litellm import completion" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4STYM2OHFNlc" + }, + "source": [ + "## Setup" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "id": "DorpLxw1FHbC" + }, + "outputs": [], + "source": [ + "os.environ['BASETEN_API_KEY'] = \"\" #@param\n", + "messages = [{ \"content\": \"what does Baseten do? \",\"role\": \"user\"}]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "syF3dTdKFSQQ" + }, + "source": [ + "## Calling Falcon 7B: https://app.baseten.co/explore/falcon_7b\n", + "### Pass Your Baseten model `Version ID` as `model`" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "rPgSoMlsojz0", + "outputId": "81d6dc7b-1681-4ae4-e4c8-5684eb1bd050" + }, + "outputs": [ { - "cell_type": "markdown", - "source": [ - "# Use liteLLM to call Falcon, Wizard, MPT 7B using OpenAI chatGPT Input/output\n", - "\n", - "* Falcon 7B: https://app.baseten.co/explore/falcon_7b\n", - "* Wizard LM: https://app.baseten.co/explore/wizardlm\n", - "* MPT 7B Base: https://app.baseten.co/explore/mpt_7b_instruct\n", - "\n", - "\n", - "## Call all baseten llm models using OpenAI chatGPT Input/Output using liteLLM\n", - "Example call\n", - "```python\n", - "model = \"q841o8w\" # baseten model version ID\n", - "response = completion(model=model, messages=messages, custom_llm_provider=\"baseten\")\n", - "```" - ], - "metadata": { - "id": "gZx-wHJapG5w" - } + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mINFO\u001b[0m API key set.\n", + "INFO:baseten:API key set.\n" + ] }, { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4JSRa0QVogPo" - }, - "outputs": [], - "source": [ - "!pip install litellm==0.1.399\n", - "!pip install baseten urllib3" - ] - }, - { - "cell_type": "code", - "source": [ - "import os\n", - "import litellm\n", - "from litellm import completion" - ], - "metadata": { - "id": "VEukLhDzo4vw" - }, - "execution_count": 2, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Setup" - ], - "metadata": { - "id": "4STYM2OHFNlc" - } - }, - { - "cell_type": "code", - "source": [ - "os.environ['BASETEN_API_KEY'] = \"\" #@param\n", - "messages = [{ \"content\": \"what does Baseten do? \",\"role\": \"user\"}]" - ], - "metadata": { - "id": "DorpLxw1FHbC" - }, - "execution_count": 21, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Calling Falcon 7B: https://app.baseten.co/explore/falcon_7b\n", - "### Pass Your Baseten model `Version ID` as `model`" - ], - "metadata": { - "id": "syF3dTdKFSQQ" - } - }, - { - "cell_type": "code", - "source": [ - "model = \"qvv0xeq\"\n", - "response = completion(model=model, messages=messages, custom_llm_provider=\"baseten\")\n", - "response" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "rPgSoMlsojz0", - "outputId": "81d6dc7b-1681-4ae4-e4c8-5684eb1bd050" - }, - "execution_count": 18, - "outputs": [ - { - "output_type": "stream", - "name": "stderr", - "text": [ - "\u001b[32mINFO\u001b[0m API key set.\n", - "INFO:baseten:API key set.\n" - ] - }, - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "{'choices': [{'finish_reason': 'stop',\n", - " 'index': 0,\n", - " 'message': {'role': 'assistant',\n", - " 'content': \"what does Baseten do? \\nI'm sorry, I cannot provide a specific answer as\"}}],\n", - " 'created': 1692135883.699066,\n", - " 'model': 'qvv0xeq'}" - ] - }, - "metadata": {}, - "execution_count": 18 - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Calling Wizard LM https://app.baseten.co/explore/wizardlm\n", - "### Pass Your Baseten model `Version ID` as `model`" - ], - "metadata": { - "id": "7n21UroEGCGa" - } - }, - { - "cell_type": "code", - "source": [ - "model = \"q841o8w\"\n", - "response = completion(model=model, messages=messages, custom_llm_provider=\"baseten\")\n", - "response" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "uLVWFH899lAF", - "outputId": "61c2bc74-673b-413e-bb40-179cf408523d" - }, - "execution_count": 19, - "outputs": [ - { - "output_type": "stream", - "name": "stderr", - "text": [ - "\u001b[32mINFO\u001b[0m API key set.\n", - "INFO:baseten:API key set.\n" - ] - }, - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "{'choices': [{'finish_reason': 'stop',\n", - " 'index': 0,\n", - " 'message': {'role': 'assistant',\n", - " 'content': 'As an AI language model, I do not have personal beliefs or practices, but based on the information available online, Baseten is a popular name for a traditional Ethiopian dish made with injera, a spongy flatbread, and wat, a spicy stew made with meat or vegetables. It is typically served for breakfast or dinner and is a staple in Ethiopian cuisine. The name Baseten is also used to refer to a traditional Ethiopian coffee ceremony, where coffee is brewed and served in a special ceremony with music and food.'}}],\n", - " 'created': 1692135900.2806294,\n", - " 'model': 'q841o8w'}" - ] - }, - "metadata": {}, - "execution_count": 19 - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Calling mosaicml/mpt-7b https://app.baseten.co/explore/mpt_7b_instruct\n", - "### Pass Your Baseten model `Version ID` as `model`" - ], - "metadata": { - "id": "6-TFwmPAGPXq" - } - }, - { - "cell_type": "code", - "source": [ - "model = \"31dxrj3\"\n", - "response = completion(model=model, messages=messages, custom_llm_provider=\"baseten\")\n", - "response" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "gbeYZOrUE_Bp", - "outputId": "838d86ea-2143-4cb3-bc80-2acc2346c37a" - }, - "execution_count": 20, - "outputs": [ - { - "output_type": "stream", - "name": "stderr", - "text": [ - "\u001b[32mINFO\u001b[0m API key set.\n", - "INFO:baseten:API key set.\n" - ] - }, - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "{'choices': [{'finish_reason': 'stop',\n", - " 'index': 0,\n", - " 'message': {'role': 'assistant',\n", - " 'content': \"\\n===================\\n\\nIt's a tool to build a local version of a game on your own machine to host\\non your website.\\n\\nIt's used to make game demos and show them on Twitter, Tumblr, and Facebook.\\n\\n\\n\\n## What's built\\n\\n- A directory of all your game directories, named with a version name and build number, with images linked to.\\n- Includes HTML to include in another site.\\n- Includes images for your icons and\"}}],\n", - " 'created': 1692135914.7472186,\n", - " 'model': '31dxrj3'}" - ] - }, - "metadata": {}, - "execution_count": 20 - } + "data": { + "text/plain": [ + "{'choices': [{'finish_reason': 'stop',\n", + " 'index': 0,\n", + " 'message': {'role': 'assistant',\n", + " 'content': \"what does Baseten do? \\nI'm sorry, I cannot provide a specific answer as\"}}],\n", + " 'created': 1692135883.699066,\n", + " 'model': 'qvv0xeq'}" ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" } - ] + ], + "source": [ + "model = \"qvv0xeq\"\n", + "response = completion(model=model, messages=messages, custom_llm_provider=\"baseten\")\n", + "response" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7n21UroEGCGa" + }, + "source": [ + "## Calling Wizard LM https://app.baseten.co/explore/wizardlm\n", + "### Pass Your Baseten model `Version ID` as `model`" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "uLVWFH899lAF", + "outputId": "61c2bc74-673b-413e-bb40-179cf408523d" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mINFO\u001b[0m API key set.\n", + "INFO:baseten:API key set.\n" + ] + }, + { + "data": { + "text/plain": [ + "{'choices': [{'finish_reason': 'stop',\n", + " 'index': 0,\n", + " 'message': {'role': 'assistant',\n", + " 'content': 'As an AI language model, I do not have personal beliefs or practices, but based on the information available online, Baseten is a popular name for a traditional Ethiopian dish made with injera, a spongy flatbread, and wat, a spicy stew made with meat or vegetables. It is typically served for breakfast or dinner and is a staple in Ethiopian cuisine. The name Baseten is also used to refer to a traditional Ethiopian coffee ceremony, where coffee is brewed and served in a special ceremony with music and food.'}}],\n", + " 'created': 1692135900.2806294,\n", + " 'model': 'q841o8w'}" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = \"q841o8w\"\n", + "response = completion(model=model, messages=messages, custom_llm_provider=\"baseten\")\n", + "response" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6-TFwmPAGPXq" + }, + "source": [ + "## Calling mosaicml/mpt-7b https://app.baseten.co/explore/mpt_7b_instruct\n", + "### Pass Your Baseten model `Version ID` as `model`" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "gbeYZOrUE_Bp", + "outputId": "838d86ea-2143-4cb3-bc80-2acc2346c37a" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mINFO\u001b[0m API key set.\n", + "INFO:baseten:API key set.\n" + ] + }, + { + "data": { + "text/plain": [ + "{'choices': [{'finish_reason': 'stop',\n", + " 'index': 0,\n", + " 'message': {'role': 'assistant',\n", + " 'content': \"\\n===================\\n\\nIt's a tool to build a local version of a game on your own machine to host\\non your website.\\n\\nIt's used to make game demos and show them on Twitter, Tumblr, and Facebook.\\n\\n\\n\\n## What's built\\n\\n- A directory of all your game directories, named with a version name and build number, with images linked to.\\n- Includes HTML to include in another site.\\n- Includes images for your icons and\"}}],\n", + " 'created': 1692135914.7472186,\n", + " 'model': '31dxrj3'}" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = \"31dxrj3\"\n", + "response = completion(model=model, messages=messages, custom_llm_provider=\"baseten\")\n", + "response" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } \ No newline at end of file diff --git a/cookbook/liteLLM_Langchain_Demo.ipynb b/cookbook/liteLLM_Langchain_Demo.ipynb index 0f6364a149..6e796dd085 100644 --- a/cookbook/liteLLM_Langchain_Demo.ipynb +++ b/cookbook/liteLLM_Langchain_Demo.ipynb @@ -1,201 +1,195 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "5hwntUxTMxEk" + }, + "source": [ + "# Langchain liteLLM Demo Notebook\n", + "## Use `ChatLiteLLM()` to instantly support 50+ LLM models\n", + "Langchain Docs: https://python.langchain.com/docs/integrations/chat/litellm\n", + "\n", + "Call all LLM models using the same I/O interface\n", + "\n", + "Example usage\n", + "```python\n", + "ChatLiteLLM(model=\"gpt-3.5-turbo\")\n", + "ChatLiteLLM(model=\"claude-2\", temperature=0.3)\n", + "ChatLiteLLM(model=\"command-nightly\")\n", + "ChatLiteLLM(model=\"replicate/llama-2-70b-chat:2c1608e18606fad2812020dc541930f2d0495ce32eee50074220b87300bc16e1\")\n", + "```" + ] }, - "cells": [ - { - "cell_type": "markdown", - "source": [ - "# Langchain liteLLM Demo Notebook\n", - "## Use `ChatLiteLLM()` to instantly support 50+ LLM models\n", - "Langchain Docs: https://python.langchain.com/docs/integrations/chat/litellm\n", - "\n", - "Call all LLM models using the same I/O interface\n", - "\n", - "Example usage\n", - "```python\n", - "ChatLiteLLM(model=\"gpt-3.5-turbo\")\n", - "ChatLiteLLM(model=\"claude-2\", temperature=0.3)\n", - "ChatLiteLLM(model=\"command-nightly\")\n", - "ChatLiteLLM(model=\"replicate/llama-2-70b-chat:2c1608e18606fad2812020dc541930f2d0495ce32eee50074220b87300bc16e1\")\n", - "```" - ], - "metadata": { - "id": "5hwntUxTMxEk" - } + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "aPNAUsCvB6Sv" + }, + "outputs": [], + "source": [ + "!pip install litellm langchain" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "MOhRaVnhB-0J" + }, + "outputs": [], + "source": [ + "import os\n", + "from langchain.chat_models import ChatLiteLLM\n", + "from langchain.schema import HumanMessage" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "TahkCtlmCD65", + "outputId": "5ddda40f-f252-4830-a8d6-bd3fa68ae487" + }, + "outputs": [ { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "aPNAUsCvB6Sv" - }, - "outputs": [], - "source": [ - "!pip install litellm langchain" - ] - }, - { - "cell_type": "code", - "source": [ - "import os\n", - "from langchain.chat_models import ChatLiteLLM\n", - "from langchain.prompts.chat import (\n", - " ChatPromptTemplate,\n", - " SystemMessagePromptTemplate,\n", - " AIMessagePromptTemplate,\n", - " HumanMessagePromptTemplate,\n", - ")\n", - "from langchain.schema import AIMessage, HumanMessage, SystemMessage" - ], - "metadata": { - "id": "MOhRaVnhB-0J" - }, - "execution_count": 2, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "os.environ['OPENAI_API_KEY'] = \"\"\n", - "chat = ChatLiteLLM(model=\"gpt-3.5-turbo\")\n", - "messages = [\n", - " HumanMessage(\n", - " content=\"what model are you\"\n", - " )\n", - "]\n", - "chat(messages)" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "TahkCtlmCD65", - "outputId": "5ddda40f-f252-4830-a8d6-bd3fa68ae487" - }, - "execution_count": 17, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "AIMessage(content='I am an AI model known as GPT-3, developed by OpenAI.', additional_kwargs={}, example=False)" - ] - }, - "metadata": {}, - "execution_count": 17 - } - ] - }, - { - "cell_type": "code", - "source": [ - "os.environ['ANTHROPIC_API_KEY'] = \"\"\n", - "chat = ChatLiteLLM(model=\"claude-2\", temperature=0.3)\n", - "messages = [\n", - " HumanMessage(\n", - " content=\"what model are you\"\n", - " )\n", - "]\n", - "chat(messages)" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "uXNDyU4jChcs", - "outputId": "bd74b4c6-f9fb-42dc-fdc3-9240d50503ba" - }, - "execution_count": 23, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "AIMessage(content=\" I'm Claude, an AI assistant created by Anthropic.\", additional_kwargs={}, example=False)" - ] - }, - "metadata": {}, - "execution_count": 23 - } - ] - }, - { - "cell_type": "code", - "source": [ - "os.environ['REPLICATE_API_TOKEN'] = \"\"\n", - "chat = ChatLiteLLM(model=\"replicate/llama-2-70b-chat:2c1608e18606fad2812020dc541930f2d0495ce32eee50074220b87300bc16e1\")\n", - "messages = [\n", - " HumanMessage(\n", - " content=\"what model are you?\"\n", - " )\n", - "]\n", - "chat(messages)" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "czbDJRKcC7BV", - "outputId": "892e147d-831e-4884-dc71-040f92c3fb8e" - }, - "execution_count": 27, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "AIMessage(content=\" I'm an AI based based on LLaMA models (LLaMA: Open and Efficient Foundation Language Models, Touvron et al. 2023), my knowledge was built from a massive corpus of text, including books, articles, and websites, and I was trained using a variety of machine learning algorithms. My model architecture is based on the transformer architecture, which is particularly well-suited for natural language processing tasks. My team of developers and I are constantly working to improve and fine-tune my performance, and I am always happy to help with any questions you may have!\", additional_kwargs={}, example=False)" - ] - }, - "metadata": {}, - "execution_count": 27 - } - ] - }, - { - "cell_type": "code", - "source": [ - "os.environ['COHERE_API_KEY'] = \"\"\n", - "chat = ChatLiteLLM(model=\"command-nightly\")\n", - "messages = [\n", - " HumanMessage(\n", - " content=\"what model are you?\"\n", - " )\n", - "]\n", - "chat(messages)" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "tZxpq5PDDY9Y", - "outputId": "7e86f4ed-ac7a-45e1-87d0-217da6cad666" - }, - "execution_count": 30, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "AIMessage(content=' I am an AI-based large language model, or Chatbot, built by the company Cohere. I am designed to have polite, helpful, inclusive conversations with users. I am always learning and improving, and I am constantly being updated with new information and improvements.\\n\\nI am currently in the development phase, and I am not yet available to the general public. However, I am currently being used by a select group of users for testing and feedback.\\n\\nI am a large language model, which means that I am trained on a massive amount of data and can understand and respond to a wide range of requests and questions. I am also designed to be flexible and adaptable, so I can be customized to suit the needs of different users and use cases.\\n\\nI am currently being used to develop a range of applications, including customer service chatbots, content generation tools, and language translation services. I am also being used to train other language models and to develop new ways of using large language models.\\n\\nI am constantly being updated with new information and improvements, so I am always learning and improving. I am also being used to develop new ways of using large language models, so I am always evolving and adapting to new use cases and requirements.', additional_kwargs={}, example=False)" - ] - }, - "metadata": {}, - "execution_count": 30 - } + "data": { + "text/plain": [ + "AIMessage(content='I am an AI model known as GPT-3, developed by OpenAI.', additional_kwargs={}, example=False)" ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" } - ] + ], + "source": [ + "os.environ['OPENAI_API_KEY'] = \"\"\n", + "chat = ChatLiteLLM(model=\"gpt-3.5-turbo\")\n", + "messages = [\n", + " HumanMessage(\n", + " content=\"what model are you\"\n", + " )\n", + "]\n", + "chat(messages)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "uXNDyU4jChcs", + "outputId": "bd74b4c6-f9fb-42dc-fdc3-9240d50503ba" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "AIMessage(content=\" I'm Claude, an AI assistant created by Anthropic.\", additional_kwargs={}, example=False)" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "os.environ['ANTHROPIC_API_KEY'] = \"\"\n", + "chat = ChatLiteLLM(model=\"claude-2\", temperature=0.3)\n", + "messages = [\n", + " HumanMessage(\n", + " content=\"what model are you\"\n", + " )\n", + "]\n", + "chat(messages)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "czbDJRKcC7BV", + "outputId": "892e147d-831e-4884-dc71-040f92c3fb8e" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "AIMessage(content=\" I'm an AI based based on LLaMA models (LLaMA: Open and Efficient Foundation Language Models, Touvron et al. 2023), my knowledge was built from a massive corpus of text, including books, articles, and websites, and I was trained using a variety of machine learning algorithms. My model architecture is based on the transformer architecture, which is particularly well-suited for natural language processing tasks. My team of developers and I are constantly working to improve and fine-tune my performance, and I am always happy to help with any questions you may have!\", additional_kwargs={}, example=False)" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "os.environ['REPLICATE_API_TOKEN'] = \"\"\n", + "chat = ChatLiteLLM(model=\"replicate/llama-2-70b-chat:2c1608e18606fad2812020dc541930f2d0495ce32eee50074220b87300bc16e1\")\n", + "messages = [\n", + " HumanMessage(\n", + " content=\"what model are you?\"\n", + " )\n", + "]\n", + "chat(messages)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "tZxpq5PDDY9Y", + "outputId": "7e86f4ed-ac7a-45e1-87d0-217da6cad666" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "AIMessage(content=' I am an AI-based large language model, or Chatbot, built by the company Cohere. I am designed to have polite, helpful, inclusive conversations with users. I am always learning and improving, and I am constantly being updated with new information and improvements.\\n\\nI am currently in the development phase, and I am not yet available to the general public. However, I am currently being used by a select group of users for testing and feedback.\\n\\nI am a large language model, which means that I am trained on a massive amount of data and can understand and respond to a wide range of requests and questions. I am also designed to be flexible and adaptable, so I can be customized to suit the needs of different users and use cases.\\n\\nI am currently being used to develop a range of applications, including customer service chatbots, content generation tools, and language translation services. I am also being used to train other language models and to develop new ways of using large language models.\\n\\nI am constantly being updated with new information and improvements, so I am always learning and improving. I am also being used to develop new ways of using large language models, so I am always evolving and adapting to new use cases and requirements.', additional_kwargs={}, example=False)" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "os.environ['COHERE_API_KEY'] = \"\"\n", + "chat = ChatLiteLLM(model=\"command-nightly\")\n", + "messages = [\n", + " HumanMessage(\n", + " content=\"what model are you?\"\n", + " )\n", + "]\n", + "chat(messages)" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } \ No newline at end of file diff --git a/cookbook/liteLLM_VertextAI_Example.ipynb b/cookbook/liteLLM_VertextAI_Example.ipynb index d94d24cce1..0af012b34e 100644 --- a/cookbook/liteLLM_VertextAI_Example.ipynb +++ b/cookbook/liteLLM_VertextAI_Example.ipynb @@ -43,7 +43,7 @@ "source": [ "# set you Vertex AI configs\n", "import litellm\n", - "from litellm import embedding, completion\n", + "from litellm import completion\n", "\n", "litellm.vertex_project = \"hardy-device-386718\"\n", "litellm.vertex_location = \"us-central1\"" diff --git a/cookbook/liteLLM_function_calling.ipynb b/cookbook/liteLLM_function_calling.ipynb index bd4e2ba1d1..45f4398b38 100644 --- a/cookbook/liteLLM_function_calling.ipynb +++ b/cookbook/liteLLM_function_calling.ipynb @@ -1,331 +1,331 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "vnvlwUDZK7VA" + }, + "source": [ + "## Demo Notebook of Function Calling with liteLLM\n", + "- Supported Providers for Function Calling\n", + " - OpenAI - `gpt-4-0613` and `gpt-3.5-turbo-0613`\n", + "- In this notebook we use function calling with `litellm.completion()`" + ] }, - "cells": [ - { - "cell_type": "markdown", - "source": [ - "## Demo Notebook of Function Calling with liteLLM\n", - "- Supported Providers for Function Calling\n", - " - OpenAI - `gpt-4-0613` and `gpt-3.5-turbo-0613`\n", - "- In this notebook we use function calling with `litellm.completion()`" - ], - "metadata": { - "id": "vnvlwUDZK7VA" - } + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "KrINCwRfLgZV" + }, + "outputs": [], + "source": [ + "## Install liteLLM\n", + "!pip install litellm" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "nK7zR5OgLlh2" + }, + "outputs": [], + "source": [ + "import os\n", + "from litellm import completion" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "id": "dCQlyBxKLqbA" + }, + "outputs": [], + "source": [ + "os.environ['OPENAI_API_KEY'] = \"\" #@param" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gfdGv-FMRCdX" + }, + "source": [ + "## Define Messages, Functions\n", + "We create a get_current_weather() function and pass that to GPT 3.5\n", + "\n", + "See OpenAI docs for this: https://openai.com/blog/function-calling-and-other-api-updates" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "id": "ERzsP1sfM19C" + }, + "outputs": [], + "source": [ + "messages = [\n", + " {\"role\": \"user\", \"content\": \"What is the weather like in Boston?\"}\n", + "]\n", + "\n", + "def get_current_weather(location):\n", + " if location == \"Boston, MA\":\n", + " return \"The weather is 12F\"\n", + "\n", + "functions = [\n", + " {\n", + " \"name\": \"get_current_weather\",\n", + " \"description\": \"Get the current weather in a given location\",\n", + " \"parameters\": {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"location\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The city and state, e.g. San Francisco, CA\"\n", + " },\n", + " \"unit\": {\n", + " \"type\": \"string\",\n", + " \"enum\": [\"celsius\", \"fahrenheit\"]\n", + " }\n", + " },\n", + " \"required\": [\"location\"]\n", + " }\n", + " }\n", + " ]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "NX6by2VuRPnp" + }, + "source": [ + "## Call gpt-3.5-turbo-0613 to Decide what Function to call" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "QVoJ5PtxMlVx", + "outputId": "efe7a81f-e04a-4afc-aa60-a2b2648f5fb9" + }, + "outputs": [ { - "cell_type": "code", - "source": [ - "## Install liteLLM\n", - "!pip install litellm" - ], - "metadata": { - "id": "KrINCwRfLgZV" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "import os, litellm\n", - "from litellm import completion" - ], - "metadata": { - "id": "nK7zR5OgLlh2" - }, - "execution_count": 2, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "os.environ['OPENAI_API_KEY'] = \"\" #@param" - ], - "metadata": { - "id": "dCQlyBxKLqbA" - }, - "execution_count": 27, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Define Messages, Functions\n", - "We create a get_current_weather() function and pass that to GPT 3.5\n", - "\n", - "See OpenAI docs for this: https://openai.com/blog/function-calling-and-other-api-updates" - ], - "metadata": { - "id": "gfdGv-FMRCdX" - } - }, - { - "cell_type": "code", - "source": [ - "messages = [\n", - " {\"role\": \"user\", \"content\": \"What is the weather like in Boston?\"}\n", - "]\n", - "\n", - "def get_current_weather(location):\n", - " if location == \"Boston, MA\":\n", - " return \"The weather is 12F\"\n", - "\n", - "functions = [\n", - " {\n", - " \"name\": \"get_current_weather\",\n", - " \"description\": \"Get the current weather in a given location\",\n", - " \"parameters\": {\n", - " \"type\": \"object\",\n", - " \"properties\": {\n", - " \"location\": {\n", - " \"type\": \"string\",\n", - " \"description\": \"The city and state, e.g. San Francisco, CA\"\n", - " },\n", - " \"unit\": {\n", - " \"type\": \"string\",\n", - " \"enum\": [\"celsius\", \"fahrenheit\"]\n", - " }\n", - " },\n", - " \"required\": [\"location\"]\n", - " }\n", - " }\n", - " ]" - ], - "metadata": { - "id": "ERzsP1sfM19C" - }, - "execution_count": 25, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Call gpt-3.5-turbo-0613 to Decide what Function to call" - ], - "metadata": { - "id": "NX6by2VuRPnp" - } - }, - { - "cell_type": "code", - "source": [ - "response = completion(model=\"gpt-3.5-turbo-0613\", messages=messages, functions=functions)\n", - "print(response)" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "QVoJ5PtxMlVx", - "outputId": "efe7a81f-e04a-4afc-aa60-a2b2648f5fb9" - }, - "execution_count": 9, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "{\n", - " \"id\": \"chatcmpl-7mX4RiqdoislVEqfmfVjFSKp3hyIy\",\n", - " \"object\": \"chat.completion\",\n", - " \"created\": 1691801223,\n", - " \"model\": \"gpt-3.5-turbo-0613\",\n", - " \"choices\": [\n", - " {\n", - " \"index\": 0,\n", - " \"message\": {\n", - " \"role\": \"assistant\",\n", - " \"content\": null,\n", - " \"function_call\": {\n", - " \"name\": \"get_current_weather\",\n", - " \"arguments\": \"{\\n \\\"location\\\": \\\"Boston, MA\\\"\\n}\"\n", - " }\n", - " },\n", - " \"finish_reason\": \"function_call\"\n", - " }\n", - " ],\n", - " \"usage\": {\n", - " \"prompt_tokens\": 82,\n", - " \"completion_tokens\": 18,\n", - " \"total_tokens\": 100\n", - " }\n", - "}\n" - ] - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Parse GPT 3.5 Response\n", - "Read Information about what Function to Call" - ], - "metadata": { - "id": "Yu0o2saDNLx8" - } - }, - { - "cell_type": "code", - "source": [ - "function_call_data = response[\"choices\"][0][\"message\"][\"function_call\"]\n", - "function_call_data" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "u1DzXLJsNOR5", - "outputId": "177e9501-0ce2-4619-9067-3047f18f6c79" - }, - "execution_count": 11, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - " JSON: {\n", - " \"name\": \"get_current_weather\",\n", - " \"arguments\": \"{\\n \\\"location\\\": \\\"Boston, MA\\\"\\n}\"\n", - "}" - ] - }, - "metadata": {}, - "execution_count": 11 - } - ] - }, - { - "cell_type": "code", - "source": [ - "import json\n", - "function_name = function_call_data['name']\n", - "function_args = function_call_data['arguments']\n", - "function_args = json.loads(function_args)\n", - "print(function_name, function_args)\n" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "tYb96Mh0NhH9", - "outputId": "13c4bb89-6f29-4b3b-afa7-302dcf2cdd5f" - }, - "execution_count": 20, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "get_current_weather {'location': 'Boston, MA'}\n" - ] - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Call the get_current_weather() function" - ], - "metadata": { - "id": "z3tstH_yN3fX" - } - }, - { - "cell_type": "code", - "source": [ - "if function_name == \"get_current_weather\":\n", - " result = get_current_weather(**function_args)\n", - " print(result)" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "TSb8JHhgN5Zc", - "outputId": "ef140572-4020-4daf-ac8c-d5161be9aa5c" - }, - "execution_count": 24, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "12F\n" - ] - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Send the response from get_current_weather back to the model to summarize" - ], - "metadata": { - "id": "k4HGJE3NRmMI" - } - }, - { - "cell_type": "code", - "source": [ - "messages = [\n", - " {\"role\": \"user\", \"content\": \"What is the weather like in Boston?\"},\n", - " {\"role\": \"assistant\", \"content\": None, \"function_call\": {\"name\": \"get_current_weather\", \"arguments\": \"{ \\\"location\\\": \\\"Boston, MA\\\"}\"}},\n", - " {\"role\": \"function\", \"name\": \"get_current_weather\", \"content\": result}\n", - "]\n", - "response = completion(model=\"gpt-3.5-turbo-0613\", messages=messages, functions=functions)\n", - "print(response)" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "a23cmEwiPaw7", - "outputId": "43259b86-0c4c-4fcb-eab7-6e1a788b2f21" - }, - "execution_count": 26, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "{\n", - " \"id\": \"chatcmpl-7mXGN62u75WXp1Lgen4iSgNvA7hHT\",\n", - " \"object\": \"chat.completion\",\n", - " \"created\": 1691801963,\n", - " \"model\": \"gpt-3.5-turbo-0613\",\n", - " \"choices\": [\n", - " {\n", - " \"index\": 0,\n", - " \"message\": {\n", - " \"role\": \"assistant\",\n", - " \"content\": \"The current weather in Boston is 12 degrees Fahrenheit.\"\n", - " },\n", - " \"finish_reason\": \"stop\"\n", - " }\n", - " ],\n", - " \"usage\": {\n", - " \"prompt_tokens\": 109,\n", - " \"completion_tokens\": 12,\n", - " \"total_tokens\": 121\n", - " }\n", - "}\n" - ] - } - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"id\": \"chatcmpl-7mX4RiqdoislVEqfmfVjFSKp3hyIy\",\n", + " \"object\": \"chat.completion\",\n", + " \"created\": 1691801223,\n", + " \"model\": \"gpt-3.5-turbo-0613\",\n", + " \"choices\": [\n", + " {\n", + " \"index\": 0,\n", + " \"message\": {\n", + " \"role\": \"assistant\",\n", + " \"content\": null,\n", + " \"function_call\": {\n", + " \"name\": \"get_current_weather\",\n", + " \"arguments\": \"{\\n \\\"location\\\": \\\"Boston, MA\\\"\\n}\"\n", + " }\n", + " },\n", + " \"finish_reason\": \"function_call\"\n", + " }\n", + " ],\n", + " \"usage\": {\n", + " \"prompt_tokens\": 82,\n", + " \"completion_tokens\": 18,\n", + " \"total_tokens\": 100\n", + " }\n", + "}\n" + ] } - ] + ], + "source": [ + "response = completion(model=\"gpt-3.5-turbo-0613\", messages=messages, functions=functions)\n", + "print(response)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Yu0o2saDNLx8" + }, + "source": [ + "## Parse GPT 3.5 Response\n", + "Read Information about what Function to Call" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "u1DzXLJsNOR5", + "outputId": "177e9501-0ce2-4619-9067-3047f18f6c79" + }, + "outputs": [ + { + "data": { + "text/plain": [ + " JSON: {\n", + " \"name\": \"get_current_weather\",\n", + " \"arguments\": \"{\\n \\\"location\\\": \\\"Boston, MA\\\"\\n}\"\n", + "}" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function_call_data = response[\"choices\"][0][\"message\"][\"function_call\"]\n", + "function_call_data" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "tYb96Mh0NhH9", + "outputId": "13c4bb89-6f29-4b3b-afa7-302dcf2cdd5f" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "get_current_weather {'location': 'Boston, MA'}\n" + ] + } + ], + "source": [ + "import json\n", + "function_name = function_call_data['name']\n", + "function_args = function_call_data['arguments']\n", + "function_args = json.loads(function_args)\n", + "print(function_name, function_args)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "z3tstH_yN3fX" + }, + "source": [ + "## Call the get_current_weather() function" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "TSb8JHhgN5Zc", + "outputId": "ef140572-4020-4daf-ac8c-d5161be9aa5c" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12F\n" + ] + } + ], + "source": [ + "if function_name == \"get_current_weather\":\n", + " result = get_current_weather(**function_args)\n", + " print(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "k4HGJE3NRmMI" + }, + "source": [ + "## Send the response from get_current_weather back to the model to summarize" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "a23cmEwiPaw7", + "outputId": "43259b86-0c4c-4fcb-eab7-6e1a788b2f21" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"id\": \"chatcmpl-7mXGN62u75WXp1Lgen4iSgNvA7hHT\",\n", + " \"object\": \"chat.completion\",\n", + " \"created\": 1691801963,\n", + " \"model\": \"gpt-3.5-turbo-0613\",\n", + " \"choices\": [\n", + " {\n", + " \"index\": 0,\n", + " \"message\": {\n", + " \"role\": \"assistant\",\n", + " \"content\": \"The current weather in Boston is 12 degrees Fahrenheit.\"\n", + " },\n", + " \"finish_reason\": \"stop\"\n", + " }\n", + " ],\n", + " \"usage\": {\n", + " \"prompt_tokens\": 109,\n", + " \"completion_tokens\": 12,\n", + " \"total_tokens\": 121\n", + " }\n", + "}\n" + ] + } + ], + "source": [ + "messages = [\n", + " {\"role\": \"user\", \"content\": \"What is the weather like in Boston?\"},\n", + " {\"role\": \"assistant\", \"content\": None, \"function_call\": {\"name\": \"get_current_weather\", \"arguments\": \"{ \\\"location\\\": \\\"Boston, MA\\\"}\"}},\n", + " {\"role\": \"function\", \"name\": \"get_current_weather\", \"content\": result}\n", + "]\n", + "response = completion(model=\"gpt-3.5-turbo-0613\", messages=messages, functions=functions)\n", + "print(response)" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } \ No newline at end of file diff --git a/cookbook/litellm-ollama-docker-image/test.py b/cookbook/litellm-ollama-docker-image/test.py index 977bd36993..93b9c6ac4a 100644 --- a/cookbook/litellm-ollama-docker-image/test.py +++ b/cookbook/litellm-ollama-docker-image/test.py @@ -1,13 +1,13 @@ import openai -api_base = f"http://0.0.0.0:8000" +api_base = "http://0.0.0.0:8000" openai.api_base = api_base openai.api_key = "temp-key" print(openai.api_base) -print(f"LiteLLM: response from proxy with streaming") +print("LiteLLM: response from proxy with streaming") response = openai.ChatCompletion.create( model="ollama/llama2", messages=[ diff --git a/cookbook/litellm_Test_Multiple_Providers.ipynb b/cookbook/litellm_Test_Multiple_Providers.ipynb index f61130a9ff..3901581e67 100644 --- a/cookbook/litellm_Test_Multiple_Providers.ipynb +++ b/cookbook/litellm_Test_Multiple_Providers.ipynb @@ -1,573 +1,571 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "Ys9n20Es2IzT" + }, + "source": [ + "# Evaluate Multiple LLM Providers with LiteLLM\n", + "\n", + "\n", + "\n", + "* Quality Testing\n", + "* Load Testing\n", + "* Duration Testing\n", + "\n" + ] }, - "cells": [ - { - "cell_type": "markdown", - "source": [ - "# Evaluate Multiple LLM Providers with LiteLLM\n", - "\n", - "\n", - "\n", - "* Quality Testing\n", - "* Load Testing\n", - "* Duration Testing\n", - "\n" - ], - "metadata": { - "id": "Ys9n20Es2IzT" - } + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ZXOXl23PIIP6" + }, + "outputs": [], + "source": [ + "!pip install litellm python-dotenv" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "LINuBzXDItq2" + }, + "outputs": [], + "source": [ + "from litellm import load_test_model, testing_batch_completion" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "EkxMhsWdJdu4" + }, + "outputs": [], + "source": [ + "from dotenv import load_dotenv\n", + "load_dotenv()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mv5XdnqeW5I_" + }, + "source": [ + "# Quality Test endpoint\n", + "\n", + "## Test the same prompt across multiple LLM providers\n", + "\n", + "In this example, let's ask some questions about Paul Graham" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "XpzrR5m4W_Us" + }, + "outputs": [], + "source": [ + "models = [\"gpt-3.5-turbo\", \"gpt-3.5-turbo-16k\", \"gpt-4\", \"claude-instant-1\", \"replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781\"]\n", + "context = \"\"\"Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a \"hacker philosopher\".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.\"\"\"\n", + "prompts = [\"Who is Paul Graham?\", \"What is Paul Graham known for?\" , \"Is paul graham a writer?\" , \"Where does Paul Graham live?\", \"What has Paul Graham done?\"]\n", + "messages = [[{\"role\": \"user\", \"content\": context + \"\\n\" + prompt}] for prompt in prompts] # pass in a list of messages we want to test\n", + "result = testing_batch_completion(models=models, messages=messages)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9nzeLySnvIIW" + }, + "source": [ + "## Visualize the data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 403 }, + "id": "X-2n7hdAuVAY", + "outputId": "69cc0de1-68e3-4c12-a8ea-314880010d94" + }, + "outputs": [ { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ZXOXl23PIIP6" - }, - "outputs": [], - "source": [ - "!pip install litellm python-dotenv" - ] - }, - { - "cell_type": "code", - "source": [ - "import litellm\n", - "from litellm import load_test_model, testing_batch_completion\n", - "import time" - ], - "metadata": { - "id": "LINuBzXDItq2" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "from dotenv import load_dotenv\n", - "load_dotenv()" - ], - "metadata": { - "id": "EkxMhsWdJdu4" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "# Quality Test endpoint\n", - "\n", - "## Test the same prompt across multiple LLM providers\n", - "\n", - "In this example, let's ask some questions about Paul Graham" - ], - "metadata": { - "id": "mv5XdnqeW5I_" - } - }, - { - "cell_type": "code", - "source": [ - "models = [\"gpt-3.5-turbo\", \"gpt-3.5-turbo-16k\", \"gpt-4\", \"claude-instant-1\", \"replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781\"]\n", - "context = \"\"\"Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a \"hacker philosopher\".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.\"\"\"\n", - "prompts = [\"Who is Paul Graham?\", \"What is Paul Graham known for?\" , \"Is paul graham a writer?\" , \"Where does Paul Graham live?\", \"What has Paul Graham done?\"]\n", - "messages = [[{\"role\": \"user\", \"content\": context + \"\\n\" + prompt}] for prompt in prompts] # pass in a list of messages we want to test\n", - "result = testing_batch_completion(models=models, messages=messages)" - ], - "metadata": { - "id": "XpzrR5m4W_Us" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Visualize the data" - ], - "metadata": { - "id": "9nzeLySnvIIW" - } - }, - { - "cell_type": "code", - "source": [ - "import pandas as pd\n", - "\n", - "# Create an empty list to store the row data\n", - "table_data = []\n", - "\n", - "# Iterate through the list and extract the required data\n", - "for item in result:\n", - " prompt = item['prompt'][0]['content'].replace(context, \"\") # clean the prompt for easy comparison\n", - " model = item['response']['model']\n", - " response = item['response']['choices'][0]['message']['content']\n", - " table_data.append([prompt, model, response])\n", - "\n", - "# Create a DataFrame from the table data\n", - "df = pd.DataFrame(table_data, columns=['Prompt', 'Model Name', 'Response'])\n", - "\n", - "# Pivot the DataFrame to get the desired table format\n", - "table = df.pivot(index='Prompt', columns='Model Name', values='Response')\n", - "table" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 403 - }, - "id": "X-2n7hdAuVAY", - "outputId": "69cc0de1-68e3-4c12-a8ea-314880010d94" - }, - "execution_count": null, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "Model Name claude-instant-1 \\\n", - "Prompt \n", - "\\nIs paul graham a writer? Yes, Paul Graham is considered a writer in ad... \n", - "\\nWhat has Paul Graham done? Paul Graham has made significant contribution... \n", - "\\nWhat is Paul Graham known for? Paul Graham is known for several things:\\n\\n-... \n", - "\\nWhere does Paul Graham live? Based on the information provided:\\n\\n- Paul ... \n", - "\\nWho is Paul Graham? Paul Graham is an influential computer scient... \n", - "\n", - "Model Name gpt-3.5-turbo-0613 \\\n", - "Prompt \n", - "\\nIs paul graham a writer? Yes, Paul Graham is a writer. He has written s... \n", - "\\nWhat has Paul Graham done? Paul Graham has achieved several notable accom... \n", - "\\nWhat is Paul Graham known for? Paul Graham is known for his work on the progr... \n", - "\\nWhere does Paul Graham live? According to the given information, Paul Graha... \n", - "\\nWho is Paul Graham? Paul Graham is an English computer scientist, ... \n", - "\n", - "Model Name gpt-3.5-turbo-16k-0613 \\\n", - "Prompt \n", - "\\nIs paul graham a writer? Yes, Paul Graham is a writer. He has authored ... \n", - "\\nWhat has Paul Graham done? Paul Graham has made significant contributions... \n", - "\\nWhat is Paul Graham known for? Paul Graham is known for his work on the progr... \n", - "\\nWhere does Paul Graham live? Paul Graham currently lives in England, where ... \n", - "\\nWho is Paul Graham? Paul Graham is an English computer scientist, ... \n", - "\n", - "Model Name gpt-4-0613 \\\n", - "Prompt \n", - "\\nIs paul graham a writer? Yes, Paul Graham is a writer. He is an essayis... \n", - "\\nWhat has Paul Graham done? Paul Graham is known for his work on the progr... \n", - "\\nWhat is Paul Graham known for? Paul Graham is known for his work on the progr... \n", - "\\nWhere does Paul Graham live? The text does not provide a current place of r... \n", - "\\nWho is Paul Graham? Paul Graham is an English computer scientist, ... \n", - "\n", - "Model Name replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781 \n", - "Prompt \n", - "\\nIs paul graham a writer? Yes, Paul Graham is an author. According to t... \n", - "\\nWhat has Paul Graham done? Paul Graham has had a diverse career in compu... \n", - "\\nWhat is Paul Graham known for? Paul Graham is known for many things, includi... \n", - "\\nWhere does Paul Graham live? Based on the information provided, Paul Graha... \n", - "\\nWho is Paul Graham? Paul Graham is an English computer scientist,... " - ], - "text/html": [ - "\n", - "\n", - "
\n", - "
\n", - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Model Nameclaude-instant-1gpt-3.5-turbo-0613gpt-3.5-turbo-16k-0613gpt-4-0613replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781
Prompt
\\nIs paul graham a writer?Yes, Paul Graham is considered a writer in ad...Yes, Paul Graham is a writer. He has written s...Yes, Paul Graham is a writer. He has authored ...Yes, Paul Graham is a writer. He is an essayis...Yes, Paul Graham is an author. According to t...
\\nWhat has Paul Graham done?Paul Graham has made significant contribution...Paul Graham has achieved several notable accom...Paul Graham has made significant contributions...Paul Graham is known for his work on the progr...Paul Graham has had a diverse career in compu...
\\nWhat is Paul Graham known for?Paul Graham is known for several things:\\n\\n-...Paul Graham is known for his work on the progr...Paul Graham is known for his work on the progr...Paul Graham is known for his work on the progr...Paul Graham is known for many things, includi...
\\nWhere does Paul Graham live?Based on the information provided:\\n\\n- Paul ...According to the given information, Paul Graha...Paul Graham currently lives in England, where ...The text does not provide a current place of r...Based on the information provided, Paul Graha...
\\nWho is Paul Graham?Paul Graham is an influential computer scient...Paul Graham is an English computer scientist, ...Paul Graham is an English computer scientist, ...Paul Graham is an English computer scientist, ...Paul Graham is an English computer scientist,...
\n", - "
\n", - " \n", - "\n", - "\n", - "\n", - "
\n", - " \n", - "
\n", - "\n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - " \n", - "\n", - " \n", - "
\n", - "
\n" - ] - }, - "metadata": {}, - "execution_count": 17 - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "# Load Test endpoint\n", - "\n", - "Run 100+ simultaneous queries across multiple providers to see when they fail + impact on latency" - ], - "metadata": { - "id": "zOxUM40PINDC" - } - }, - { - "cell_type": "code", - "source": [ - "models=[\"gpt-3.5-turbo\", \"replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781\", \"claude-instant-1\"]\n", - "context = \"\"\"Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a \"hacker philosopher\".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.\"\"\"\n", - "prompt = \"Where does Paul Graham live?\"\n", - "final_prompt = context + prompt\n", - "result = load_test_model(models=models, prompt=final_prompt, num_calls=5)" - ], - "metadata": { - "id": "ZkQf_wbcIRQ9" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Visualize the data" - ], - "metadata": { - "id": "8vSNBFC06aXY" - } - }, - { - "cell_type": "code", - "source": [ - "import matplotlib.pyplot as plt\n", - "\n", - "## calculate avg response time\n", - "unique_models = set(result[\"response\"]['model'] for result in result[\"results\"])\n", - "model_dict = {model: {\"response_time\": []} for model in unique_models}\n", - "for completion_result in result[\"results\"]:\n", - " model_dict[completion_result[\"response\"][\"model\"]][\"response_time\"].append(completion_result[\"response_time\"])\n", - "\n", - "avg_response_time = {}\n", - "for model, data in model_dict.items():\n", - " avg_response_time[model] = sum(data[\"response_time\"]) / len(data[\"response_time\"])\n", - "\n", - "models = list(avg_response_time.keys())\n", - "response_times = list(avg_response_time.values())\n", - "\n", - "plt.bar(models, response_times)\n", - "plt.xlabel('Model', fontsize=10)\n", - "plt.ylabel('Average Response Time')\n", - "plt.title('Average Response Times for each Model')\n", - "\n", - "plt.xticks(models, [model[:15]+'...' if len(model) > 15 else model for model in models], rotation=45)\n", - "plt.show()" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 552 - }, - "id": "SZfiKjLV3-n8", - "outputId": "00f7f589-b3da-43ed-e982-f9420f074b8d" - }, - "execution_count": null, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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WwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWz8UVB4+fIhx48ahXbt2CA8PBwAcOHAAt2/f1mhxRERElLmpHVSOHz+O4sWL4/z58wgICEBsbCwA4Pr165g4caLGCyQiIqLMS+2gMmrUKEybNg1BQUEwMDCQ2mvWrIlz585ptDgiIiLK3NQOKjdv3kSLFi3StNva2uLt27caKYqIiIgI+IGgYmFhgZcvX6Zpv3r1KnLmzKmRooiIiIiAHwgqbdu2xciRI/Hq1SsoFAoolUqcPn0aw4YNQ+fOndOjRiIiIsqk1A4qM2bMQKFCheDo6IjY2FgUKVIEVatWRcWKFTFu3Lj0qJGIiIgyKT11b2BgYICVK1di/PjxuHXrFmJjY1GqVCnkz58/PeojIiKiTEztoJIqV65cyJUrlyZrISIiIlKhdlARQmD79u0IDg5GeHg4lEqlyvKAgACNFUdERESZm9pBZdCgQVixYgVq1KiB7NmzQ6FQpEddREREROoHFT8/PwQEBKBhw4bpUQ8RERGRRO1ZP+bm5sibN2961EJERESkQu2gMmnSJEyePBnx8fHpUQ8RERGRRO1dP25ubti0aRNsbW3h5OQEfX19leVXrlzRWHFERESUuakdVNzd3XH58mV07NiRg2mJiIgoXakdVPbv34/AwEBUrlw5PeohIiIikqg9RsXR0RFmZmbpUQsRERGRCrWDyvz58zFixAiEhoamQzlERERE/6P2rp+OHTviw4cPyJcvH0xMTNIMpo2IiNBYcUSZndOo/dougbQsdFYjbZdApFVqBxUvL690KIOIiIgorR+a9UNERET0K3xXUImOjpYG0EZHR//ruhxoS0RERJryXUHF0tISL1++hK2tLSwsLL567BQhBBQKBVJSUjReJBEREWVO3xVUjh49CisrKwBAcHBwuhZERERElOq7gkq1atWQN29eXLx4EdWqVUvvmoiIiIgAqHEcldDQUO7WISIiol9K7QO+aZK3tzdcXFxgZmYGMzMzVKhQAQcOHNBmSURERCQjak1PDgwMhLm5+b+u07Rp0+++PwcHB8yaNQv58+eHEALr169Hs2bNcPXqVRQtWlSd0oiIiCgDUiuo/NcxVNSd9dOkSROV69OnT4e3tzfOnTvHoEJERETqBZVXr17B1tY2XQpJSUnBtm3bEBcXhwoVKnx1ncTERCQmJkrX/+uYLkRERPR7++4xKl87doom3Lx5E1myZIGhoSF69+6NnTt3okiRIl9dd+bMmTA3N5cujo6O6VITERERycN3BxUhRLoUULBgQVy7dg3nz59Hnz594O7ujn/++eer644ePRpRUVHS5enTp+lSExEREcnDd+/6cXd3h7GxscYLMDAwgLOzMwCgTJkyuHjxIhYtWoQVK1akWdfQ0BCGhoYar4GIiIjk6buDytq1a9OzDolSqVQZh0JERESZl9pnT9ak0aNHo0GDBsiVKxdiYmKwceNGHDt2DIGBgdosi4iIiGRCq0ElPDwcnTt3xsuXL2Fubg4XFxcEBgaiTp062iyLiIiIZEKrQWX16tXafHgiIiKSuR8+hH5ISAgCAwMRHx8PIP1mBREREVHmpXZQeffuHWrXro0CBQqgYcOGePnyJQCge/fuGDp0qMYLJCIiosxL7aAyePBg6Onp4cmTJzAxMZHa27Rpg4MHD2q0OCIiIsrc1B6jcujQIQQGBsLBwUGlPX/+/AgLC9NYYURERERq96jExcWp9KSkioiI4MHYiIiISKPUDipVqlTBhg0bpOsKhQJKpRJz5sxBjRo1NFocERERZW5q7/qZM2cOatWqhUuXLiEpKQkjRozA7du3ERERgdOnT6dHjURERJRJqd2jUqxYMdy/fx+VK1dGs2bNEBcXh5YtW+Lq1avIly9fetRIREREmdQPHfDN3NwcY8eO1XQtRERERCrU7lE5ePAgTp06JV1ftmwZSpYsifbt2+P9+/caLY6IiIgyN7WDyvDhwxEdHQ0AuHnzJoYMGYKGDRvi8ePHGDJkiMYLJCIiosxL7V0/jx8/RpEiRQAAO3bsQJMmTTBjxgxcuXIFDRs21HiBRERElHmp3aNiYGCADx8+AAAOHz6MunXrAgCsrKyknhYiIiIiTVC7R6Vy5coYMmQIKlWqhAsXLmDLli0AgPv376c5Wi0RERHRz1C7R2Xp0qXQ09PD9u3b4e3tjZw5cwIADhw4gPr162u8QCIiIsq81O5RyZUrF/bt25emfeHChRopiIiIiCjVDx1HRalUIiQkBOHh4VAqlSrLqlatqpHCiIiIiNQOKufOnUP79u0RFhYGIYTKMoVCgZSUFI0VR0RERJmb2kGld+/eKFu2LPbv348cOXJAoVCkR11ERERE6geVBw8eYPv27XB2dk6PeoiIiIgkas/6KV++PEJCQtKjFiIiIiIVaveo9O/fH0OHDsWrV69QvHhx6Ovrqyx3cXHRWHFERESUuakdVFq1agUA6Natm9SmUCgghOBgWiIiItKoHzrXDxEREdGvoHZQyZ07d3rUQURERJTGDx3w7eHDh/Dy8sKdO3cAAEWKFMHAgQORL18+jRZHREREmZvaQSUwMBBNmzZFyZIlUalSJQDA6dOnUbRoUezduxd16tTReJHa4jRqv7ZLIC0LndVI2yUQEWVqageVUaNGYfDgwZg1a1aa9pEjR2aooEJERETapfZxVO7cuYPu3bunae/WrRv++ecfjRRFREREBPxAULGxscG1a9fStF+7dg22traaqImIiIgIwA/s+unZsyd69eqFR48eoWLFigA+jVGZPXs2hgwZovECiYiIKPNSO6iMHz8eWbNmxfz58zF69GgAgL29PSZNmoQBAwZovEAiIiLKvNQOKgqFAoMHD8bgwYMRExMDAMiaNavGCyMiIiL6oeOoAEB4eDju3bsHAChUqBBsbGw0VhQRERER8AODaWNiYtCpUyfY29ujWrVqqFatGuzt7dGxY0dERUWlR41ERESUSakdVHr06IHz589j//79iIyMRGRkJPbt24dLly7Bw8MjPWokIiKiTErtXT/79u1DYGAgKleuLLXVq1cPK1euRP369TVaHBEREWVuaveoZMuWDebm5mnazc3NYWlpqZGiiIiIiIAfCCrjxo3DkCFD8OrVK6nt1atXGD58OMaPH6/R4oiIiChzU3vXj7e3N0JCQpArVy7kypULAPDkyRMYGhrizZs3WLFihbTulStXNFcpERERZTpqB5XmzZunQxlEREREaakdVCZOnJgedRARERGlofYYladPn+LZs2fS9QsXLmDQoEHw9fXVaGFEREREageV9u3bIzg4GMCnQbS1a9fGhQsXMHbsWEyZMkXjBRIREVHmpXZQuXXrFv744w8AwNatW1G8eHGcOXMG/v7+WLdunabrIyIiokxM7aCSnJwMQ0NDAMDhw4fRtGlTAJ/O9/Py5UvNVkdERESZmtpBpWjRovDx8cHJkycRFBQkHY32xYsXyJYtm8YLJCIiosxL7aAye/ZsrFixAtWrV0e7du1QokQJAMCePXukXUJEREREmqD29OTq1avj7du3iI6OVjlkfq9evWBiYqLR4oiIiChzU7tHBQCEELh8+TJWrFiBmJgYAICBgQGDChEREWmU2j0qYWFhqF+/Pp48eYLExETUqVMHWbNmxezZs5GYmAgfH5/0qJOIiIgyIbV7VAYOHIiyZcvi/fv3MDY2ltpbtGiBI0eOaLQ4IiIiytzU7lE5efIkzpw5AwMDA5V2JycnPH/+XGOFEREREando6JUKpGSkpKm/dmzZ8iaNatGiiIiIiICfiCo1K1bF15eXtJ1hUKB2NhYTJw4EQ0bNtRkbURERJTJqb3rZ/78+ahXrx6KFCmChIQEtG/fHg8ePIC1tTU2bdqUHjUSERFRJqV2UHFwcMD169exZcsWXL9+HbGxsejevTs6dOigMriWiIiI6GepHVQAQE9PDx06dECHDh2ktpcvX2L48OFYunSpxoojIiKizE2toHL79m0EBwfDwMAAbm5usLCwwNu3bzF9+nT4+Pggb9686VUnERERZULfPZh2z549KFWqFAYMGIDevXujbNmyCA4ORuHChXHnzh3s3LkTt2/fTs9aiYiIKJP57qAybdo0eHp6Ijo6GgsWLMCjR48wYMAA/P333zh48KB0FmUiIiIiTfnuoHLv3j14enoiS5Ys6N+/P3R0dLBw4UKUK1cuPesjIiKiTOy7g0pMTAzMzMwAALq6ujA2NuaYFCIiIkpXag2mDQwMhLm5OYBPR6g9cuQIbt26pbJO06ZNNVcdERERZWpqBRV3d3eV6x4eHirXFQrFVw+vT0RERPQjvjuoKJXK9KyDiIiIKA21z/VDRERE9KtoNajMnDkT5cqVQ9asWWFra4vmzZvj3r172iyJiIiIZESrQeX48ePw9PTEuXPnEBQUhOTkZNStWxdxcXHaLIuIiIhk4ofO9aMpBw8eVLm+bt062Nra4vLly6hataqWqiIiIiK50GpQ+VJUVBQAwMrK6qvLExMTkZiYKF2Pjo7+JXURERGRdvzQrp/IyEisWrUKo0ePRkREBADgypUreP78+Q8XolQqMWjQIFSqVAnFihX76jozZ86Eubm5dHF0dPzhxyMiIiL5Uzuo3LhxAwUKFMDs2bMxb948REZGAgACAgIwevToHy7E09MTt27dwubNm7+5zujRoxEVFSVdnj59+sOPR0RERPKndlAZMmQIunTpggcPHsDIyEhqb9iwIU6cOPFDRfTr1w/79u1DcHAwHBwcvrmeoaEhzMzMVC5ERESUcak9RuXixYtYsWJFmvacOXPi1atXat2XEAL9+/fHzp07cezYMeTJk0fdcoiIiCgDUzuoGBoafnUQ6/3792FjY6PWfXl6emLjxo3YvXs3smbNKgUdc3NzGBsbq1saERERZTBq7/pp2rQppkyZguTkZACfzu/z5MkTjBw5Eq1atVLrvry9vREVFYXq1asjR44c0mXLli3qlkVEREQZkNpBZf78+YiNjYWtrS3i4+NRrVo1ODs7I2vWrJg+fbpa9yWE+OqlS5cu6pZFREREGZDau37Mzc0RFBSEU6dO4caNG4iNjUXp0qVRu3bt9KiPiIiIMrEfPuBb5cqVUblyZU3WQkRERKRC7aCyePHir7YrFAoYGRnB2dkZVatWha6u7k8XR0RERJmb2kFl4cKFePPmDT58+ABLS0sAwPv372FiYoIsWbIgPDwcefPmRXBwMI8cS0RERD9F7cG0M2bMQLly5fDgwQO8e/cO7969w/3791G+fHksWrQIT548gZ2dHQYPHpwe9RIREVEmonaPyrhx47Bjxw7ky5dPanN2dsa8efPQqlUrPHr0CHPmzFF7qjIRERHRl9TuUXn58iU+fvyYpv3jx4/SAdvs7e0RExPz89URERFRpqZ2UKlRowY8PDxw9epVqe3q1avo06cPatasCQC4efMmD4dPREREP03toLJ69WpYWVmhTJkyMDQ0hKGhIcqWLQsrKyusXr0aAJAlSxbMnz9f48USERFR5qL2GBU7OzsEBQXh7t27uH//PgCgYMGCKFiwoLROjRo1NFchERERZVo/fMC3QoUKoVChQpqshYiIiEjFDwWVZ8+eYc+ePXjy5AmSkpJUli1YsEAjhRERERGpHVSOHDmCpk2b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\n" - }, - "metadata": {} - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "# Duration Test endpoint\n", - "\n", - "Run load testing for 2 mins. Hitting endpoints with 100+ queries every 15 seconds." - ], - "metadata": { - "id": "inSDIE3_IRds" - } - }, - { - "cell_type": "code", - "source": [ - "models=[\"gpt-3.5-turbo\", \"replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781\", \"claude-instant-1\"]\n", - "context = \"\"\"Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a \"hacker philosopher\".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.\"\"\"\n", - "prompt = \"Where does Paul Graham live?\"\n", - "final_prompt = context + prompt\n", - "result = load_test_model(models=models, prompt=final_prompt, num_calls=100, interval=15, duration=120)" - ], - "metadata": { - "id": "ePIqDx2EIURH" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "import matplotlib.pyplot as plt\n", - "\n", - "## calculate avg response time\n", - "unique_models = set(unique_result[\"response\"]['model'] for unique_result in result[0][\"results\"])\n", - "model_dict = {model: {\"response_time\": []} for model in unique_models}\n", - "for iteration in result:\n", - " for completion_result in iteration[\"results\"]:\n", - " model_dict[completion_result[\"response\"][\"model\"]][\"response_time\"].append(completion_result[\"response_time\"])\n", - "\n", - "avg_response_time = {}\n", - "for model, data in model_dict.items():\n", - " avg_response_time[model] = sum(data[\"response_time\"]) / len(data[\"response_time\"])\n", - "\n", - "models = list(avg_response_time.keys())\n", - "response_times = list(avg_response_time.values())\n", - "\n", - "plt.bar(models, response_times)\n", - "plt.xlabel('Model', fontsize=10)\n", - "plt.ylabel('Average Response Time')\n", - "plt.title('Average Response Times for each Model')\n", - "\n", - "plt.xticks(models, [model[:15]+'...' if len(model) > 15 else model for model in models], rotation=45)\n", - "plt.show()" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 552 - }, - "id": "k6rJoELM6t1K", - "outputId": "f4968b59-3bca-4f78-a88b-149ad55e3cf7" - }, - "execution_count": null, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": [ - "
" - ], - "image/png": "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DaxZswYFCxaU/ua9fPkS4eHhcHNzU3mMd+/eyTrgcLcU5VkZuTsuLg5JSUlQKBQ4cOAAwsPDoaurCz09PURERMDV1RX//POPFGwSExOhr68PPz8/vH79msGGNEIIIQWbX3/9Fd27d8fcuXPRt29fjBgxAufPnwfwftdASkoKJkyYgMqVK+PVq1cqj8NgQ5/r/PnzaN68Obp374727dtj1KhRCAkJwbVr19ClSxcA708zkJaWhnXr1qFGjRo4ceKEymPIOdgADDeUx0VGRqJixYo4evQoNmzYgCZNmuDvv/8G8H5XU/ny5dGmTRtMnz5dWidfvnwYNWoU7t27B0tLSwYb0oiM7Wju3Ln4448/sHHjRty4cQNt27bFn3/+ifHjx+P06dMAAAMDA7i6uqJhw4YwNzfXYtUkRw8fPsTz589V2r7//nvs3r0bFy9eRJ8+fQC8P/VFixYtMH369EwjN7IniPK4Hj16CFNTU6GjoyOWL18utaemporNmzeL9PR0qU2pVGqjRPpGREVFibZt24pVq1YJIYTYvXu3MDU1Ff369ROurq6iYcOG4syZM0II1W3x3bt3WqmX5CkkJETY2NiITZs2SW0Z29v69euFk5OTOH/+fKb10tLSvliN2saRG8qzMk4J7uPjg/j4eBgYGMDW1hbJyckA3n8rad++vcrETY7SUG6ytrbGqFGj0KRJE1y+fBk+Pj6YNm0ali5dip9++glnzpyBj48PLl68qLItclcUaVLZsmVRr149rFu3DocOHQLwv799Li4uiI6Oli4z8yG574r6EMMN5VkZocXe3h4nTpyAl5cXOnbsiF27diEpKSlTfzleH4W051Pbk6urKwoXLox9+/bB2dkZffv2BQBYWlrCzc0NLVu2hKur65cslb4x9vb26NevH2JiYuDn54fdu3dLywoXLgxHR0ctVpc3fDsxjr4a4v8nAD9//hxpaWkoVqwYrK2tUaNGDSQnJ6NXr14ICgpCixYtYGRkhICAADRq1AhOTk7aLp1kQnwweXjFihWIjo6GgYEBRowYIV26IyUlBc+ePcOjR49QunRpHDhwAK1atcLAgQP/9bQERJ8j42i7evXqYcmSJRg7dixGjx6NkJAQODs7Y8uWLVAoFPjxxx+1XapW8VBwypOCg4MxadIkREVFoXnz5mjTpg1atmwJAOjRowd27NiB4cOHIyoqCkuXLsX169dRrlw5LVdNcjNx4kT4+/vj+++/x7lz51CtWjWsW7cOtra2+PPPPzFt2jS8efMG+vr6EELg2rVr0NPT4xF6lCsytqvg4GAsWbIEBw4cwO3btxEWFoZFixbB3t4e5ubmWL9+PfT19b/p0w4w3FCec/PmTbi7u2Po0KEwMTHBxo0bYWhoCC8vL3Tt2hUAMHjwYFy6dAkpKSkIDAyEi4uLdosmWfhwtOXdu3fw8vLCwIED4erqikePHqF58+awtbXFjh07YGVlhb179yI8PBwJCQkYPXo09PT0vukPFNKMjBAjPjq3l66uLoKDg+Hp6Yn58+dLu0SB99urjo6Oyvb7Lc2x+RjDDeUpt2/fxtatW5GUlIQZM2YAAK5fv44JEyYgLi4OPXr0kAJOZGQk8uXLhwIFCmizZJKJD4PNrVu3EBcXh2XLlmHChAlwcHAA8P4Q3B9//BE2NjbYuXMnrKysVB6DwYY+14fb4cuXL6FQKFCwYEEA7//mVa5cGRMmTEC/fv2kdT4eKeTIIcMN5RFCCLx58wYtWrTA33//jZYtW2LdunXS8mvXrmHChAlISkpCx44d0aNHDy1WS3I2cuRIaVg/KioKwcHBaNq0qfRh8fDhQzRt2hRCCJw8eVLlAoREn+PDUDJ16lTs3LkTcXFxKFSoEKZPn44GDRrg2bNnKFq0qJYrzfs4243yBIVCAUtLS/j6+qJ8+fK4dOkSQkNDpeXOzs6YOnUq0tLSpF94Ik348KioPXv2YP/+/fj999+xZMkSODo6Yty4cbh69ap0xmxHR0fs2bMHLi4uvF4ZaVRGsJkyZQoWLFggnWqgUKFC6NKlC9asWZNptJCyxpEb0ppPDZ0ePXoUY8eOha2tLXx8fNCgQQNp2c2bN2FmZgY7O7svWSp9A4KDg3Hq1CkULFgQY8aMAQAkJCSgcuXKMDU1xYoVK1CpUqVM2yx3RZEmvXr1Co0bN4aPjw969uwptfft2xd//vknwsLCUKZMGe56+g8cuSGtyPjFPHXqFObPn4/ffvsNJ0+eRFpaGurWrYspU6YgMjISixYtwpEjR6T1ypcvz2BDGpeUlITffvsN8+fPx82bN6X2/Pnz49KlS4iPj4e3t7d0/agPMdiQJr179w4vX76URgUzTloaGBiIIkWKwM/PDwBPWPpfGG7oi/vwcMamTZvi5MmT2L17N8aOHYvp06cjNTUVDRs2xJQpU/Dq1StMnToVx48f13bZJGPGxsY4fvw4GjVqhIsXL2L37t1IT08H8L+Ac/v2bSxbtkzLlZKcZLXjxMbGBra2tli1ahUAwMjICKmpqQAAJycnhppsYrihLy5jxGbQoEGYP38+tm/fjq1bt+LixYvYvHkzxo8fLwWcX3/9Ffr6+jzjJmnMh3NshBDSB4ylpSU2bNgACwsLzJkzByEhIdKyfPnyITIyEoGBgVqpmeRHqVRKQeWff/5BdHQ03r59CwCYNGkSbt++LR0RlXHiyKdPn/JCrNnEOTf0xWT8MisUCixZsgRXrlxBYGAgHj58iEaNGqFWrVowNTXF1q1b4e3tjbFjx8LQ0BBv376FiYmJtssnGfjwMNuFCxfi6tWrePDgAYYMGYLKlSvDzs4OL168QOvWraGrq4uxY8fC3d1d5UzDnGNDn2P9+vVwc3NDyZIlAQBjxoxBSEgIIiIi0KhRI7Rq1QpdunTB8uXLMXXqVBQsWBAVKlTA/fv3ERMTI50okv4dww3lmowPkg/DyZUrV+Di4oK4uDg8efIETk5OaNKkCRwdHbFq1SrExsZKZxru3r07pk+fzolz9Nk+3obGjBmDlStXom/fvnj69ClOnz6N1q1bo2/fvnBycsKLFy/Qtm1bvHjxAkFBQXBzc9Ni9SQX+/btQ4sWLTB69GgMGTIE+/btw6hRo+Dv749Xr17h0qVLCAkJwW+//YZ+/frh+vXr8Pf3h46ODiwsLDBjxgyeKDK7cvWa4/TNe/DggejUqZP4+++/xZYtW4RCoRDnzp0TSqVSCCHE9evXRZkyZcTZs2eFEELcv39ftGjRQowdO1Y8fvxYm6WTzKSnpwshhFi3bp1wdHQUFy9eFEIIcfz4caFQKESpUqXE4MGDxYMHD4QQQjx//lz07dtXvHv3Tms1k/wsWrRI2NnZialTp4oBAwaI5cuXS8uePHkipkyZIhwcHMT+/fuzXD8tLe1LlfpV49gW5ark5GQcP34c3bt3x5UrV7B69Wp8//330i4qIQTevXuH06dPo3z58li7di0AYMSIETyHCH22bt26wcrKCvPnz4eOjg7S0tJgYGCAfv36oXLlyti5cyd69OiBFStWIDIyEtOmTYOOjg769OmDsmXLShOI+U2ZPldqaioMDAzg4+MDExMTjBkzBvHx8Zg2bZrUx87ODp6enjhw4AAuXLgAd3f3TBdg5S6pbNJ2uiL5yvimHBAQIHR0dESlSpXE5cuXVfrExsaK7t27i5IlSwoHBwdhZWUlfaMm+hyxsbFi8uTJwtLSUkyaNElqf/bsmYiKihLPnz8XVatWFfPmzZP6FylSRBQuXFgsWLBACCGkEUYiTfH19RXR0dFi/fr1wsTERDRr1kzcvXtXpU+HDh1E27ZttVShPPBoKcoVQgjo6OhACIEiRYpg3rx5ePfuHcaPH48TJ05I/UxNTTF37lwsWbIEEydOxNmzZ1G5cmUtVk5yEB8fD1NTU/Tv3x/jx4+Hv78/Jk6cCAAoUqQIrK2t8fz5c7x580aaT/Ps2TM0btwYEyZMgI+PDwCeS4Q+n/hgWuuaNWswdepU3Lt3D507d4afnx8uXbqEgIAA3LlzBwAQFxeHhw8folixYtoqWRY4vkUaJ/5/8ubhw4dx9OhRDBkyBC1btkSjRo3Qvn17zJw5E2PHjkWNGjUAvL8wZuPGjbVcNcnFqFGjsGzZMty/fx9WVlbo2rUrhBCYOnUqAGDy5MkA3gcgXV1dnDx5EkIIzJw5EyYmJtLht9wVRZqQEZAPHTqEy5cvIzAwUPrb17dvX6SlpWHy5MnYv38/KleujMTERKSmpmL27NnaLPvrp81hI5KfjGH8bdu2CTMzMzFmzBhx/vx5afm1a9dEuXLlRIsWLcQff/whJk2aJBQKhXjy5Al3AZBGXL16VdSpU0eULl1avHjxQgghRHR0tJg3b54wNzcXEyZMkPoOGDBAlCxZUtjZ2Qk3NzeRmpoqhODuKNKsI0eOiIoVK4qCBQuKnTt3CiGESElJkZavXLlS5M+fX1SuXFmsXbtWmsTOycM5x0PBSePOnTuHJk2aYNasWejTp4/UHhcXB1NTU9y6dQt9+vRBUlISYmNjsWXLFu6KIo04ffo0Xrx4gXLlyqFDhw5ISEiQrtz94sULrFu3DlOnTpUuSAi8Pz2BQqFAxYoVoaOjg3fv3nHSJn0W8dGpBxISEjBnzhwEBgaiWrVq2LhxI4yNjZGWlgZ9fX0AwPz583Hq1Cls3boVCoWCI4efieGGNG7RokXYsWMHDh06hNjYWBw+fBh//PEHbt26hREjRqBnz56Ijo5GbGwszMzMYG1tre2SSSY8PT3xzz//4ODBg3j06BF+/vlnxMfHZwo406ZNw4ABAzBlyhSV9fmBQpq0ePFi2NnZoXXr1khKSsLcuXOxY8cO1KtXDzNmzICRkZFKwMkIRR+HI1IfJxSTxtna2uLixYvw9fXFzz//jNWrV8PIyAjNmzdH7969cffuXVhbW6NUqVIMNqRRixcvxtOnT7Fo0SI4ODhg48aNMDMzQ82aNfHy5UtYWVmhW7dumDBhAqZNm4aVK1eqrM9gQ5ry4sULHD58GL/88gv2798PY2NjDBs2DC1atMCpU6cwbtw4JCcnQ19fH+/evQMABhsN4sgNfZaMX8SEhATkz58fABAVFYWFCxdiy5YtaNCgAbp3744ffvgBUVFRaNWqFYKCglC+fHktV05ykzHq8vvvv+Py5cuYP38+LCwscPv2bXh6eiI2NlYawYmMjMTRo0fx008/cRcUacTH56MBgKtXr+L333/HwYMHERAQgKZNmyIxMRGzZ8/GwYMHUbZsWSxZskS6dhRpDkdu6LMoFArs3bsXnTp1Qr169RAUFAQ9PT1MmzYNZ8+eRUBAANzc3KCjo4OFCxciMTGRozWUKzJGXerVq4djx45h7969AIDSpUtj3bp1sLCwQJ06dRAVFQVbW1t06NABenp60rdmos+REWwiIyOltkqVKmHw4MGoX78++vXrh/379yNfvnwYNWoUfvjhB+jo6Ei7pEjDtDSRmWTi5MmTwsjISIwcOVI0adJEODs7C29vbxEeHi71CQsLE3379hWWlpaZTuJHlFMZJ4nMSkBAgPjuu+/EnTt3pLY7d+4IBwcH0bFjxy9RHn0jPtwON23aJEqUKKFyhKgQQly5ckW0bt1aFCtWTBw5ckQIIURSUpJ0VN6/bcuUMxy5oRyLiIhAaGgopk+fjtmzZ2Pfvn3o27cvrl27Bl9fXzx48ACJiYk4ffo0oqOjcfToUbi4uGi7bJKBD3cBnDt3DqdOncLRo0el5a1atUK1atUQFhYmtX333Xc4duwY/vjjjy9eL8lTSkqKtB2mpqaiZMmSKFOmDHx8fHDx4kWpX6VKleDh4YEnT56gcePGOHXqFIyMjKQ5Nh/vzqLPx58oZcuiRYvw119/Sffv3LmDDh06YNWqVTAyMpLafXx80KVLF9y8eROzZ89GTEwMRo4ciTVr1qBChQraKJ1k5sMPg7Fjx6J79+7o2bMnvLy80KFDB8TFxaFw4cLSfIa0tDRpXXt7e+jq6iI9PV1b5ZNM7Nu3D+vWrQMA9OnTBw0aNEDVqlUxfPhw2NrawtvbGxcuXJD6FytWDB07dsS8efNQrVo1qZ2Th3OJtoeOKO97+PCh6Ny5s7h3755K+6+//iqsra1F27ZtpZOlZVi6dKkoXbq0GDRoEE9ERbli7ty5omDBguLs2bMiPT1dzJgxQygUCnHixAmpT82aNYW3t7cWqyS56tSpk3BwcBDu7u6iUKFC4urVq9Kyw4cPCw8PD1GhQgWxb98+8fDhQ+Hh4SGGDx8u9eHV5nMXww1lS2JiohBCiDNnzoht27ZJ7RMmTBAVK1YU48ePF1FRUSrrLF++XDx8+PBLlknfCKVSKby8vERgYKAQQojt27cLc3NzERAQIIQQIj4+XgghxL59+0SrVq3EtWvXtFYryZeLi4tQKBQqF2bNcPz4cdGtWzehUCjEd999J5ydnaUvejwDdu7jMZCULcbGxoiJiYGvry+ePXsGXV1deHh4YPLkyUhLS8PevXshhMDgwYNhZWUFAOjdu7eWqya5Sk5OxtmzZ1GvXj0cOXIEXl5emDNnDry9vfHu3TvMnj0b1atXh5ubG6ZMmYJz586hYsWK2i6bZCI1NRXJyclwcnJCsWLFsHnzZhQtWhQdO3aUTolRq1YtVKtWDX369EFaWhrq1q0LXV1dngH7C+GcG8oWhUIBc3NzDB8+HI6OjvD390dwcDAAYMaMGWjSpAlCQ0MxY8YMvHz5UsvVkpxcu3YNT58+BQAMHToUR48ehbGxMTp37ow//vgDzZo1g5+fn3TByzdv3uDChQu4c+cOLCwssG7dOhQvXlybL4FkxsDAAKampti6dSt27dqF77//HrNnz8amTZsQHx8v9UtOTkbt2rXRoEEDaa4Xg82XwXBD2SLe78JE7dq1MXToUFhYWOD3339XCThubm64fPkyBM8LSRoghMDdu3dRv359rFq1Cv369cOCBQtgYWEBAHBzc0NERASqVauG6tWrAwD++ecfdO/eHTExMRgwYAAAoGTJkmjUqJHWXgfJjxACSqVSur9mzRrUqFEDfn5+WLt2LR4/fowGDRqgXbt2Un+AZ8D+kniGYsqWjLO/xsbGwsTEBNeuXcP06dPx5s0bDB48GB4eHgDen3I8Y7cUkSYsX74co0aNQnJyMnbt2oXGjRtLZ8bevHkzpkyZAiEE9PT0YGxsDKVSiVOnTkFfX5/XiqLP9vr1a1haWqq0ZWx/W7duRWhoKAIDAwEAffv2xZEjR5Ceng5LS0ucPHmSZx/WEo7c0H969+4ddHV18ejRI9SrVw8HDhxAlSpVMGLECFhZWWHy5MnYs2cPADDYkMZkfDO2t7eHoaEhTE1NcebMGTx69Eg6fLZDhw5Yu3YtpkyZgvbt22P06NE4c+aMdL0eBhv6HAsWLMD333+vsqsJgBRsunfvjkqVKkntgYGBWLZsGRYuXIgzZ87AwMCAZ8DWFu3MY6a86lOz+MPDw4WNjY3o3bu3yiGMR44cEd26dROPHj36UiWSzH28DaampoqkpCSxdOlSUbRoUTF27Nj/3N54mC19rmXLlglDQ0OxYcOGTMseP34sKlasKBYtWiS1ZbXNcTvUHu6WIon4/6HW06dP49atWwgPD4enpycKFy6MNWvW4MKFC1izZk2mK9cmJyernMiPKKc+PPPw69evER8frzIZ2N/fH3PnzkWvXr3Qo0cPODg4oGXLlhg3bhzc3Ny0VTbJzPLlyzFw4ECsW7cO7dq1Q0xMDBITE5GcnAxra2sUKFAA9+7dQ6lSpbRdKn0Cww2p2L59O/r27StdYPDFixfo0KEDRo8ejQIFCmi7PJKxD4PNlClTcODAAdy4cQPt27dHmzZt0LRpUwDvA46/vz8qVKiAV69e4fHjx3j06BEvQEga8eDBAzg5OaF9+/bYtGkTbty4gV9++QUvXrxAREQE6tevj/79+6NFixbaLpX+BY9JI8mNGzcwdOhQzJs3D927d0dcXBzMzc1hbGzMYEO5LiPYTJgwAYGBgZgzZw4cHBzQr18/3Lt3DzExMejUqROGDBmCQoUK4erVq0hOTsbx48elq3vzMFv6XFZWVpg1axYmTJiAESNG4MCBA6hduzZat26NuLg4bNu2DePHj0ehQoU4WpiXaXOfGGnP4cOHxf379zO1Va9eXQghxK1bt0Tx4sVF7969peX379/nPmTKVYcPHxbly5cXx44dE0IIcerUKWFgYCDKlSsnqlWrJrZu3Sr1/fCyHrzEB2lScnKymDt3rtDR0RE9e/YUqamp0rILFy6I0qVLi8WLF2uxQvovPFrqGyOEwOXLl9G0aVMsXboUERER0rJnz55BCIGEhAQ0adIEjRs3xrJlywAAoaGhWLp0Kd68eaOt0kmGxEd7xYsWLYr+/fujdu3aOHDgAFq0aIHAwECEhobi/v37+P3337Fy5UoAUBml4YgNaZKhoSH69euH7du3o3fv3tDX15e21SpVqsDIyAhPnjzRcpX0bxhuvjEKhQKurq6YN28etmzZgqVLl+LBgwcAgObNmyMqKgqmpqZo3rw5AgMDpV0FISEhuHbtGg+tJY1RKpXSpPQHDx4gMTERpUqVQqdOnZCcnIwFCxZg0KBB6NatG4oUKYLy5csjPDwct27d0nLl9C3Ily8fmjZtKp0gMmNbjY6OhrGxMcqXL6/N8ug/8OvONyZjXoKPjw8AYM6cOdDV1UXv3r3h6OiI3377DTNmzMC7d+/w9u1bhIeHY+PGjVixYgVOnDghnR2W6HN8OHl4woQJOH36NEaOHIn69evD0tISiYmJeP78OUxMTKCjo4OUlBQ4ODhg1KhRaNKkiZarJzkSHxwBmsHQ0FD6f3p6Ol6+fIk+ffpAoVCgU6dOX7pEUgPDzTcmY+TlwIED0NHRQVpaGvz9/ZGcnIzRo0ejffv2SEpKwowZM7Bt2zbY2NjAwMAAYWFhqFChgparJ7n4MNgsW7YMgYGBcHV1lY54SklJgaWlJU6cOCFNGn716hVWrVoFHR0dlXBElBMRERF4/fo1ChYsCFtb2389k3BaWhrWrVuHjRs34vXr1zhz5ox0rSiOZudNPBT8GxQSEiJdbDBfvny4d+8efv/9d/zyyy8YPXo0rKysEB8fj6NHj8LBwQHW1tawtrbWdtn0lfs4kNy9exceHh6YNWsWWrZsmanf+fPnMX78eCQkJMDS0hLBwcHQ19dnsKHPtnbtWsybNw/R0dEoVKgQBg4cKI3IZPh4OwsNDcXNmzcxYMAAHp33FWC4+cYolUp06dIFCoUCGzZskNoXLlyIUaNGwcfHB7/88gtKlCihxSpJbtq2bYuxY8eiatWqUtuVK1fQpEkTHD16FKVLl87yxJDJyckQQsDIyAgKhYIfKPTZ1q5dCx8fH+nSCjNmzMCDBw9w8uRJadvKCDYxMTE4cOAA2rdvr/IYHLHJ+/j15xuT8U0kY/g/NTUVADBw4EB4e3tj9erV+P3331WOoiL6XGZmZnB2dlZpMzIywps3b3Djxg2pLeN6UqdPn8b27duho6MDY2NjKBQKKJVKBhv6LBcuXMDUqVOxaNEi9OzZExUrVsTQoUPh5OSEU6dO4ebNm4iLi5N22a9Zswa//PIL/vjjD5XHYbDJ+xhuvhH//POP9P/SpUvjzz//RHR0NAwMDJCWlgYAsLOzg4mJCcLCwmBsbKytUklGnj17BgBYvXo1DAwM8Pvvv+PAgQNITU2Fk5MTOnTogDlz5uDgwYNQKBTQ0dFBeno6pk+fjrCwMJV5ENwVRZ8rJSUFQ4YMQfPmzaW2SZMm4dChQ+jUqRM8PT3RsWNHvH79Gvr6+mjWrBlGjBjBycNfIe6W+gZcvXoVAwYMQOfOndG/f3+kpqaiQYMGePnyJY4cOQJbW1sAwOjRo1G+fHm0aNEClpaWWq6avnZ9+vQBAIwZM0bazens7IyXL19i06ZNqFOnDo4fPw4/Pz9cv34dXbp0gYGBAQ4dOoQXL17g0qVLHKkhjVIqlXjx4gVsbGwAAJ6enjh48CB2794Ne3t7HD16FNOmTcPo0aPRuXNnlTk43BX1deFXoW+AiYkJzM3NsW3bNgQFBcHAwADLli2DlZUVypYtCw8PDzRu3BgLFixA1apVGWxII5ydnbF//34sXboU4eHhAIBr166hdOnS6NKlC44dO4batWtjypQp8PT0xLp163D48GEUK1YMFy9elCZtEmmKjo6OFGwAYMSIETh79iyqVq0KGxsbNG3aFK9fv0ZUVFSmw8IZbL4uHLn5RoSHh2Ps2LGIjIxEnz590K1bN6Snp2Pu3LmIiIiAEAIDBw5EuXLltF0qyciqVaswYcIEdOzYEX369EHp0qUBAHXq1MHDhw+xfv161KlTBwDw9u1bmJiYSOty8jB9aU+fPkXXrl0xYsQIXhjzK8dwI1OXLl3C8+fPVfYth4eHY/z48Xj06BEGDhyILl26aLFCkrMPD6NduXIlJkyYgE6dOmUKOBEREVi7di2qV6+uMr8mqxOqEanjw20o4/8Z/7548QJWVlYq/RMTE9GpUyfExsbi8OHDHKn5yjHcyFB8fDyaN28OXV1djBo1Ck2bNpWWPXr0CE2aNIGJiQl69+6NX375RYuVktx86hw0y5cvx+TJk9GhQwf07dtXCjgNGjTAyZMncebMGbi6un7pckmmstoOM9qCg4OxceNGLFiwAEWKFEFSUhJ27dqFdevW4dmzZzh//jz09fU5x+Yrxzk3MpKRUwsUKIDZs2dDT08PixYtwt69e6U+Dg4OqF+/PiIjI3Ho0CHExMRoqVqSmw8/UE6dOoWwsDBcvXoVwPvJxb/99hs2bdqEwMBA3LlzBwBw+PBh9O7dO9Nh4kQ5deLECemilsOGDcPMmTMBvJ9vs3nzZnh6eqJRo0YoUqQIgPcXXX348CFKlCiBCxcuQF9fH+/evWOw+cpx5EYGMoZaM75pZHzInD17Fr/++ivy5cuH/v37S7uohg8fjhIlSqBt27YoXLiwlqsnOfhwF8CwYcOwefNmJCQkwM7ODsWKFcO+ffsAAMuWLcO0adPQsWNHeHl5qVzSg9+U6XMIIRAbGwtra2s0bdoUhQoVQnBwMI4fP44KFSogJiYGbm5u8PHxwcCBA6V1PvzbCXA7lAuGm69cxi9nWFgYdu/ejdevX6NWrVpo164dzM3NcebMGfz2229ISUlBiRIlYGJigs2bN+Pq1auws7PTdvkkAx8GmwMHDmDIkCEIDAyEubk5/v77b0ycOBH58uXDhQsXALyfg+Pt7Q1/f38MGDBAm6WTDEVHR6NEiRJIT0/H9u3b0axZM2lZVnNtspqbQ18/7pb6yikUCuzYsQMtW7bE27dv8fbtW6xbtw79+/fH69ev4ebmhrlz56Ju3boIDw/HgwcPcPjwYQYb0piMD4Pdu3dj06ZNaNSoEWrVqoUKFSrg559/xtq1a5GQkID+/fsDAHr16oVdu3ZJ94k0JSUlBZGRkTAxMYGuri5WrVolnYYAAAoVKiT9P+Ns2B+GGQYb+eDIzVfuwoUL6NixI3799Vf07t0bERERqFy5MoyNjeHi4oK1a9fC0tJSulbPx4fbEmnC69ev0aJFC1y9ehX169fHnj17VJaPHTsWJ0+exF9//YV8+fJJ7dwFQJ/rU5PYHz16BGdnZ9SvXx/z589HyZIltVAdaQtHbr4ivr6+GDdunPSNA3h/ens3Nzf07t0bjx49QsOGDeHh4YHx48fj/Pnz+OWXX/D69WsYGRkBAIMNacSH2yAAWFpaYs2aNfjxxx9x+fJlrF69WmV5qVKl8OrVKyQlJam0M9jQ5/gw2Bw5cgQbNmzA1atX8ezZMzg4OODkyZMICwvDqFGjpEnsbdq0wcKFC7VZNn0BHLn5iixcuBCDBw/GjBkzMGrUKOmX+tatWyhdujRat24tfcgolUq4uLggPDwczZs3x+bNm3ltHtKIDz9Q7t+/D4VCARMTE9ja2uLhw4fw8fFBYmIi2rVrB29vb0RFRcHLywtGRkbYs2cPh/5J40aMGIE1a9ZAT08P+fPnh62tLfz8/FC1alVcv34d9evXh4ODA1JTU/Hu3TtcvXpVungwyZSgr4JSqRRCCLF8+XKho6Mjpk6dKtLS0qTlT548EWXLlhV79uwRQgjx+vVr0alTJ7Fw4ULx9OlTrdRM8pOxHQohxMSJE0XFihVFmTJlROHChUVgYKAQQojw8HDRrFkzYWRkJEqXLi3atGkj3N3dRVJSkhBCiPT0dK3UTvLx4XYYGhoqKlWqJI4fPy5ev34tdu3aJdq0aSOcnJzEpUuXhBBC3Lt3T0yZMkVMnz5d+rv54d9Pkh+Gm6+AUqmUfpmVSqX4448/hI6Ojpg2bZr0QREdHS1cXFyEt7e3ePTokRg7dqz4/vvvRVRUlDZLJ5maMmWKsLKyEiEhISIhIUG0adNGmJubi5s3bwohhHjw4IFo3ry5cHFxEX5+ftJ6ycnJWqqY5GjNmjViwIABom/fvirt58+fF02aNBFeXl4iISFBCKEaiBhs5I/7Kb4SCoUCBw8exPDhw1GlShXpmj0zZ86EEAIWFhbo0qULjh49Cjc3N6xduxYBAQGwtrbWdukkAx/OsVEqlTh37hz8/PzQuHFjhIaG4siRI5gxYwbKlSuHtLQ0ODo6Yt68ebCxscHevXsRHBwMADA0NNTWSyAZEB/Noti5cycWL16MK1euICUlRWqvWrUqateujRMnTiA9PR2A6pFQvGbZN0Db6YqyZ/v27cLY2FhMnTpVnD9/XgghRGBgoLSLSgghUlJSxM2bN0VoaKh48uSJNsslmZowYYKYOXOmKFq0qLhz544ICwsT+fPnF0uXLhVCCPH27Vsxbtw48ejRIyGEEHfv3hUtWrQQVatWFcHBwdosnb5yH468rF+/Xqxdu1YIIcSAAQOEubm5WLx4sYiNjZX6hISEiDJlykjbIn1bGG6+Anfu3BGOjo5iyZIlmZYtW7ZM2kVFpGkfzo/ZtGmTsLe3Fzdu3BBdu3YV7u7uwsTERKxcuVLq8+zZM1G7dm2xdu1aad1bt26Jn3/+WURERHzx+kkePtwOb9y4IVxdXUWlSpXErl27hBBCeHl5iVKlSonp06eL8PBwER4eLho2bCjq1q2rEoro28Gxua/A48ePoa+vr3KmzYwjVvr27Yt8+fKhW7duMDQ0xIgRI7RYKclNxlFRR48exZEjRzB8+HCUL19eOjlkw4YN0bNnTwDvL9jau3dv6OrqonPnztDR0YFSqUSZMmWwYcMGHp1COZaxHY4cORIPHz6EsbExbt++jaFDh+Ldu3cICgpCz549MX78eCxcuBA1a9ZE/vz5sXnzZigUik+eC4fki+HmK5CQkKByfhClUintPz5y5AiqVKmCzZs3q1ynh0hTIiMj0atXL0RHR2Ps2LEAgH79+uH+/fs4fPgwXF1dUapUKTx+/BjJyck4f/48dHV1VU7QxzkO9LmCgoKwYsUKHDp0CI6OjkhJSYGXlxd8fX2ho6ODVatWwcTEBFu2bEGTJk3QsWNHGBoaIjU1FQYGBtoun74wRtmvQKVKlfDy5UsEBgYCeP8tJiPc7Nq1Cxs2bEDbtm1RtmxZbZZJMmVra4vg4GDY2Njgzz//xMWLF6Grq4s5c+ZgypQpaNCgAWxtbdGhQ4dPXlWZ57ahzxUeHo4KFSrAxcUFZmZmsLW1xapVq6Crq4uhQ4dix44dWLRoERo1aoT58+dj9+7diI+PZ7D5RvHr1FfA0dERixYtQr9+/ZCWlgZPT0/o6uoiKCgIQUFBOH36NM/0SrnK2dkZ27dvh5eXFwICAjBw4EA4OzujVatWaNWqlUrf9PR0jtSQxoj/v5iloaEhkpOTkZqaCiMjI6SlpaFo0aLw9fVFixYt4O/vD2NjY2zYsAGdO3fGiBEjoKenh/bt22v7JZAW8AzFXwmlUont27fD29sb+fLlg5GREXR1dbFx40a4urpquzz6Rly+fBm9e/dGlSpVMHjwYJQvX17bJdE34vr163B1dcVvv/2GiRMnSu0hISFYvnw53rx5g/T0dBw5cgQA0KNHD/z2228oUaKEliombWK4+cr8888/iIiIgEKhgKOjI2xsbLRdEn1jLl++DG9vbxQvXhyzZ8+Go6Ojtkuib0RQUBD69u2LIUOGoEOHDrCwsMCgQYNQo0YNtGnTBuXLl8fevXvRtGlTbZdKWsZwQ0RqO3fuHAICArBixQoehUJf1Pbt2/HLL7/AwMAAQghYW1vj1KlTiIqKwo8//oht27bB2dlZ22WSljHcEFGOZMyF4GG29KU9e/YMT548QVpaGmrWrAkdHR2MGTMGO3fuRFhYGGxtbbVdImkZww0R5VhGwCHSlps3b2LWrFn466+/cPDgQbi4uGi7JMoDeEgDEeUYgw1p07t375Camgpra2scPXqUE9xJwpEbIiL6qqWlpfEM2KSC4YaIiIhkhbMAiYiISFYYboiIiEhWGG6IiIhIVhhuiIiISFYYbohI9o4cOQKFQoGYmJhsr+Pg4AB/f/9cq4mIcg/DDRFpXffu3aFQKNCvX79My3x8fKBQKNC9e/cvXxgRfZUYbogoT7C3t8emTZuQlJQktSUnJ2PDhg0oVqyYFisjoq8Nww0R5QmVK1eGvb09goODpbbg4GAUK1YMrq6uUltKSgoGDRoEa2trGBkZoVatWjh//rzKY/3111/47rvvYGxsjPr16+PRo0eZnu/EiROoXbs2jI2NYW9vj0GDBiExMTHXXh8RfTkMN0SUZ/Ts2ROrV6+W7q9atQo9evRQ6TNq1Chs374da9aswaVLl+Dk5AR3d3e8fv0aAPDkyRO0bdsWLVu2xJUrV9C7d2/8+uuvKo9x//59NGnSBD/99BOuXbuGzZs348SJExgwYEDuv0giynUMN0SUZ3Tt2hUnTpxAREQEIiIicPLkSXTt2lVanpiYiKVLl2LOnDlo2rQpypUrh+XLl8PY2BgrV64EACxduhQlS5bEvHnzULp0aXTp0iXTfB1fX1906dIFQ4YMQalSpVCjRg38/vvvWLt2LZKTk7/kSyaiXMALZxJRnmFlZYXmzZsjKCgIQgg0b94chQoVkpbfv38faWlpqFmzptSmr6+PH374Abdu3QIA3Lp1C9WqVVN53OrVq6vcv3r1Kq5du4b169dLbUIIKJVKPHz4EGXLls2Nl0dEXwjDDRHlKT179pR2Dy1evDhXniMhIQHe3t4YNGhQpmWcvEz09WO4IaI8pUmTJkhNTYVCoYC7u7vKspIlS8LAwAAnT55E8eLFAby/IvT58+cxZMgQAEDZsmWxe/dulfXOnDmjcr9y5cr4+++/4eTklHsvhIi0hnNuiChP0dXVxa1bt/D3339DV1dXZVm+fPnQv39/jBw5Evv378fff/+NPn364O3bt+jVqxcAoF+/frh37x5GjhyJO3fuYMOGDQgKClJ5nNGjR+PUqVMYMGAArly5gnv37mHXrl2cUEwkEww3RJTnmJqawtTUNMtlM2fOxE8//YRu3bqhcuXKCA8PR0hICCwsLAC83620fft27Ny5E5UqVUJAQABmzJih8hjOzs44evQo7t69i9q1a8PV1RUTJkxAkSJFcv21EVHuUwghhLaLICIiItIUjtwQERGRrDDcEBERkaww3BAREZGsMNwQERGRrDDcEBERkaww3BAREZGsMNwQERGRrDDcEBERkaww3BAREZGsMNwQERGRrDDcEBERkaww3BAREZGs/B+XLE52CERTBAAAAABJRU5ErkJggg==\n" - }, - "metadata": {} - } + "data": { + "text/html": [ + "\n", + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Model Nameclaude-instant-1gpt-3.5-turbo-0613gpt-3.5-turbo-16k-0613gpt-4-0613replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781
Prompt
\\nIs paul graham a writer?Yes, Paul Graham is considered a writer in ad...Yes, Paul Graham is a writer. He has written s...Yes, Paul Graham is a writer. He has authored ...Yes, Paul Graham is a writer. He is an essayis...Yes, Paul Graham is an author. According to t...
\\nWhat has Paul Graham done?Paul Graham has made significant contribution...Paul Graham has achieved several notable accom...Paul Graham has made significant contributions...Paul Graham is known for his work on the progr...Paul Graham has had a diverse career in compu...
\\nWhat is Paul Graham known for?Paul Graham is known for several things:\\n\\n-...Paul Graham is known for his work on the progr...Paul Graham is known for his work on the progr...Paul Graham is known for his work on the progr...Paul Graham is known for many things, includi...
\\nWhere does Paul Graham live?Based on the information provided:\\n\\n- Paul ...According to the given information, Paul Graha...Paul Graham currently lives in England, where ...The text does not provide a current place of r...Based on the information provided, Paul Graha...
\\nWho is Paul Graham?Paul Graham is an influential computer scient...Paul Graham is an English computer scientist, ...Paul Graham is an English computer scientist, ...Paul Graham is an English computer scientist, ...Paul Graham is an English computer scientist,...
\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + "
\n", + " \n", + "
\n", + "\n", + "\n", + "\n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n" + ], + "text/plain": [ + "Model Name claude-instant-1 \\\n", + "Prompt \n", + "\\nIs paul graham a writer? Yes, Paul Graham is considered a writer in ad... \n", + "\\nWhat has Paul Graham done? Paul Graham has made significant contribution... \n", + "\\nWhat is Paul Graham known for? Paul Graham is known for several things:\\n\\n-... \n", + "\\nWhere does Paul Graham live? Based on the information provided:\\n\\n- Paul ... \n", + "\\nWho is Paul Graham? Paul Graham is an influential computer scient... \n", + "\n", + "Model Name gpt-3.5-turbo-0613 \\\n", + "Prompt \n", + "\\nIs paul graham a writer? Yes, Paul Graham is a writer. He has written s... \n", + "\\nWhat has Paul Graham done? Paul Graham has achieved several notable accom... \n", + "\\nWhat is Paul Graham known for? Paul Graham is known for his work on the progr... \n", + "\\nWhere does Paul Graham live? According to the given information, Paul Graha... \n", + "\\nWho is Paul Graham? Paul Graham is an English computer scientist, ... \n", + "\n", + "Model Name gpt-3.5-turbo-16k-0613 \\\n", + "Prompt \n", + "\\nIs paul graham a writer? Yes, Paul Graham is a writer. He has authored ... \n", + "\\nWhat has Paul Graham done? Paul Graham has made significant contributions... \n", + "\\nWhat is Paul Graham known for? Paul Graham is known for his work on the progr... \n", + "\\nWhere does Paul Graham live? Paul Graham currently lives in England, where ... \n", + "\\nWho is Paul Graham? Paul Graham is an English computer scientist, ... \n", + "\n", + "Model Name gpt-4-0613 \\\n", + "Prompt \n", + "\\nIs paul graham a writer? Yes, Paul Graham is a writer. He is an essayis... \n", + "\\nWhat has Paul Graham done? Paul Graham is known for his work on the progr... \n", + "\\nWhat is Paul Graham known for? Paul Graham is known for his work on the progr... \n", + "\\nWhere does Paul Graham live? The text does not provide a current place of r... \n", + "\\nWho is Paul Graham? Paul Graham is an English computer scientist, ... \n", + "\n", + "Model Name replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781 \n", + "Prompt \n", + "\\nIs paul graham a writer? Yes, Paul Graham is an author. According to t... \n", + "\\nWhat has Paul Graham done? Paul Graham has had a diverse career in compu... \n", + "\\nWhat is Paul Graham known for? Paul Graham is known for many things, includi... \n", + "\\nWhere does Paul Graham live? Based on the information provided, Paul Graha... \n", + "\\nWho is Paul Graham? Paul Graham is an English computer scientist,... " ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" } - ] + ], + "source": [ + "import pandas as pd\n", + "\n", + "# Create an empty list to store the row data\n", + "table_data = []\n", + "\n", + "# Iterate through the list and extract the required data\n", + "for item in result:\n", + " prompt = item['prompt'][0]['content'].replace(context, \"\") # clean the prompt for easy comparison\n", + " model = item['response']['model']\n", + " response = item['response']['choices'][0]['message']['content']\n", + " table_data.append([prompt, model, response])\n", + "\n", + "# Create a DataFrame from the table data\n", + "df = pd.DataFrame(table_data, columns=['Prompt', 'Model Name', 'Response'])\n", + "\n", + "# Pivot the DataFrame to get the desired table format\n", + "table = df.pivot(index='Prompt', columns='Model Name', values='Response')\n", + "table" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zOxUM40PINDC" + }, + "source": [ + "# Load Test endpoint\n", + "\n", + "Run 100+ simultaneous queries across multiple providers to see when they fail + impact on latency" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ZkQf_wbcIRQ9" + }, + "outputs": [], + "source": [ + "models=[\"gpt-3.5-turbo\", \"replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781\", \"claude-instant-1\"]\n", + "context = \"\"\"Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a \"hacker philosopher\".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.\"\"\"\n", + "prompt = \"Where does Paul Graham live?\"\n", + "final_prompt = context + prompt\n", + "result = load_test_model(models=models, prompt=final_prompt, num_calls=5)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8vSNBFC06aXY" + }, + "source": [ + "## Visualize the data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 552 + }, + "id": "SZfiKjLV3-n8", + "outputId": "00f7f589-b3da-43ed-e982-f9420f074b8d" + }, + "outputs": [ + { + "data": { + "image/png": "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WwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWz8UVB4+fIhx48ahXbt2CA8PBwAcOHAAt2/f1mhxRERElLmpHVSOHz+O4sWL4/z58wgICEBsbCwA4Pr165g4caLGCyQiIqLMS+2gMmrUKEybNg1BQUEwMDCQ2mvWrIlz585ptDgiIiLK3NQOKjdv3kSLFi3StNva2uLt27caKYqIiIgI+IGgYmFhgZcvX6Zpv3r1KnLmzKmRooiIiIiAHwgqbdu2xciRI/Hq1SsoFAoolUqcPn0aw4YNQ+fOndOjRiIiIsqk1A4qM2bMQKFCheDo6IjY2FgUKVIEVatWRcWKFTFu3Lj0qJGIiIgyKT11b2BgYICVK1di/PjxuHXrFmJjY1GqVCnkz58/PeojIiKiTEztoJIqV65cyJUrlyZrISIiIlKhdlARQmD79u0IDg5GeHg4lEqlyvKAgACNFUdERESZm9pBZdCgQVixYgVq1KiB7NmzQ6FQpEddREREROoHFT8/PwQEBKBhw4bpUQ8RERGRRO1ZP+bm5sibN2961EJERESkQu2gMmnSJEyePBnx8fHpUQ8RERGRRO1dP25ubti0aRNsbW3h5OQEfX19leVXrlzRWHFERESUuakdVNzd3XH58mV07NiRg2mJiIgoXakdVPbv34/AwEBUrlw5PeohIiIikqg9RsXR0RFmZmbpUQsRERGRCrWDyvz58zFixAiEhoamQzlERERE/6P2rp+OHTviw4cPyJcvH0xMTNIMpo2IiNBYcUSZndOo/dougbQsdFYjbZdApFVqBxUvL690KIOIiIgorR+a9UNERET0K3xXUImOjpYG0EZHR//ruhxoS0RERJryXUHF0tISL1++hK2tLSwsLL567BQhBBQKBVJSUjReJBEREWVO3xVUjh49CisrKwBAcHBwuhZERERElOq7gkq1atWQN29eXLx4EdWqVUvvmoiIiIgAqHEcldDQUO7WISIiol9K7QO+aZK3tzdcXFxgZmYGMzMzVKhQAQcOHNBmSURERCQjak1PDgwMhLm5+b+u07Rp0+++PwcHB8yaNQv58+eHEALr169Hs2bNcPXqVRQtWlSd0oiIiCgDUiuo/NcxVNSd9dOkSROV69OnT4e3tzfOnTvHoEJERETqBZVXr17B1tY2XQpJSUnBtm3bEBcXhwoVKnx1ncTERCQmJkrX/+uYLkRERPR7++4xKl87doom3Lx5E1myZIGhoSF69+6NnTt3okiRIl9dd+bMmTA3N5cujo6O6VITERERycN3BxUhRLoUULBgQVy7dg3nz59Hnz594O7ujn/++eer644ePRpRUVHS5enTp+lSExEREcnDd+/6cXd3h7GxscYLMDAwgLOzMwCgTJkyuHjxIhYtWoQVK1akWdfQ0BCGhoYar4GIiIjk6buDytq1a9OzDolSqVQZh0JERESZl9pnT9ak0aNHo0GDBsiVKxdiYmKwceNGHDt2DIGBgdosi4iIiGRCq0ElPDwcnTt3xsuXL2Fubg4XFxcEBgaiTp062iyLiIiIZEKrQWX16tXafHgiIiKSuR8+hH5ISAgCAwMRHx8PIP1mBREREVHmpXZQeffuHWrXro0CBQqgYcOGePnyJQCge/fuGDp0qMYLJCIiosxL7aAyePBg6Onp4cmTJzAxMZHa27Rpg4MHD2q0OCIiIsrc1B6jcujQIQQGBsLBwUGlPX/+/AgLC9NYYURERERq96jExcWp9KSkioiI4MHYiIiISKPUDipVqlTBhg0bpOsKhQJKpRJz5sxBjRo1NFocERERZW5q7/qZM2cOatWqhUuXLiEpKQkjRozA7du3ERERgdOnT6dHjURERJRJqd2jUqxYMdy/fx+VK1dGs2bNEBcXh5YtW+Lq1avIly9fetRIREREmdQPHfDN3NwcY8eO1XQtRERERCrU7lE5ePAgTp06JV1ftmwZSpYsifbt2+P9+/caLY6IiIgyN7WDyvDhwxEdHQ0AuHnzJoYMGYKGDRvi8ePHGDJkiMYLJCIiosxL7V0/jx8/RpEiRQAAO3bsQJMmTTBjxgxcuXIFDRs21HiBRERElHmp3aNiYGCADx8+AAAOHz6MunXrAgCsrKyknhYiIiIiTVC7R6Vy5coYMmQIKlWqhAsXLmDLli0AgPv376c5Wi0RERHRz1C7R2Xp0qXQ09PD9u3b4e3tjZw5cwIADhw4gPr162u8QCIiIsq81O5RyZUrF/bt25emfeHChRopiIiIiCjVDx1HRalUIiQkBOHh4VAqlSrLqlatqpHCiIiIiNQOKufOnUP79u0RFhYGIYTKMoVCgZSUFI0VR0RERJmb2kGld+/eKFu2LPbv348cOXJAoVCkR11ERERE6geVBw8eYPv27XB2dk6PeoiIiIgkas/6KV++PEJCQtKjFiIiIiIVaveo9O/fH0OHDsWrV69QvHhx6Ovrqyx3cXHRWHFERESUuakdVFq1agUA6Natm9SmUCgghOBgWiIiItKoHzrXDxEREdGvoHZQyZ07d3rUQURERJTGDx3w7eHDh/Dy8sKdO3cAAEWKFMHAgQORL18+jRZHREREmZvaQSUwMBBNmzZFyZIlUalSJQDA6dOnUbRoUezduxd16tTReJHa4jRqv7ZLIC0LndVI2yUQEWVqageVUaNGYfDgwZg1a1aa9pEjR2aooEJERETapfZxVO7cuYPu3bunae/WrRv++ecfjRRFREREBPxAULGxscG1a9fStF+7dg22traaqImIiIgIwA/s+unZsyd69eqFR48eoWLFigA+jVGZPXs2hgwZovECiYiIKPNSO6iMHz8eWbNmxfz58zF69GgAgL29PSZNmoQBAwZovEAiIiLKvNQOKgqFAoMHD8bgwYMRExMDAMiaNavGCyMiIiL6oeOoAEB4eDju3bsHAChUqBBsbGw0VhQRERER8AODaWNiYtCpUyfY29ujWrVqqFatGuzt7dGxY0dERUWlR41ERESUSakdVHr06IHz589j//79iIyMRGRkJPbt24dLly7Bw8MjPWokIiKiTErtXT/79u1DYGAgKleuLLXVq1cPK1euRP369TVaHBEREWVuaveoZMuWDebm5mnazc3NYWlpqZGiiIiIiIAfCCrjxo3DkCFD8OrVK6nt1atXGD58OMaPH6/R4oiIiChzU3vXj7e3N0JCQpArVy7kypULAPDkyRMYGhrizZs3WLFihbTulStXNFcpERERZTpqB5XmzZunQxlEREREaakdVCZOnJgedRARERGlofYYladPn+LZs2fS9QsXLmDQoEHw9fXVaGFEREREageV9u3bIzg4GMCnQbS1a9fGhQsXMHbsWEyZMkXjBRIREVHmpXZQuXXrFv744w8AwNatW1G8eHGcOXMG/v7+WLdunabrIyIiokxM7aCSnJwMQ0NDAMDhw4fRtGlTAJ/O9/Py5UvNVkdERESZmtpBpWjRovDx8cHJkycRFBQkHY32xYsXyJYtm8YLJCIiosxL7aAye/ZsrFixAtWrV0e7du1QokQJAMCePXukXUJEREREmqD29OTq1avj7du3iI6OVjlkfq9evWBiYqLR4oiIiChzU7tHBQCEELh8+TJWrFiBmJgYAICBgQGDChEREWmU2j0qYWFhqF+/Pp48eYLExETUqVMHWbNmxezZs5GYmAgfH5/0qJOIiIgyIbV7VAYOHIiyZcvi/fv3MDY2ltpbtGiBI0eOaLQ4IiIiytzU7lE5efIkzpw5AwMDA5V2JycnPH/+XGOFEREREando6JUKpGSkpKm/dmzZ8iaNatGiiIiIiICfiCo1K1bF15eXtJ1hUKB2NhYTJw4EQ0bNtRkbURERJTJqb3rZ/78+ahXrx6KFCmChIQEtG/fHg8ePIC1tTU2bdqUHjUSERFRJqV2UHFwcMD169exZcsWXL9+HbGxsejevTs6dOigMriWiIiI6GepHVQAQE9PDx06dECHDh2ktpcvX2L48OFYunSpxoojIiKizE2toHL79m0EBwfDwMAAbm5usLCwwNu3bzF9+nT4+Pggb9686VUnERERZULfPZh2z549KFWqFAYMGIDevXujbNmyCA4ORuHChXHnzh3s3LkTt2/fTs9aiYiIKJP57qAybdo0eHp6Ijo6GgsWLMCjR48wYMAA/P333zh48KB0FmUiIiIiTfnuoHLv3j14enoiS5Ys6N+/P3R0dLBw4UKUK1cuPesjIiKiTOy7g0pMTAzMzMwAALq6ujA2NuaYFCIiIkpXag2mDQwMhLm5OYBPR6g9cuQIbt26pbJO06ZNNVcdERERZWpqBRV3d3eV6x4eHirXFQrFVw+vT0RERPQjvjuoKJXK9KyDiIiIKA21z/VDRERE9KtoNajMnDkT5cqVQ9asWWFra4vmzZvj3r172iyJiIiIZESrQeX48ePw9PTEuXPnEBQUhOTkZNStWxdxcXHaLIuIiIhk4ofO9aMpBw8eVLm+bt062Nra4vLly6hataqWqiIiIiK50GpQ+VJUVBQAwMrK6qvLExMTkZiYKF2Pjo7+JXURERGRdvzQrp/IyEisWrUKo0ePRkREBADgypUreP78+Q8XolQqMWjQIFSqVAnFihX76jozZ86Eubm5dHF0dPzhxyMiIiL5Uzuo3LhxAwUKFMDs2bMxb948REZGAgACAgIwevToHy7E09MTt27dwubNm7+5zujRoxEVFSVdnj59+sOPR0RERPKndlAZMmQIunTpggcPHsDIyEhqb9iwIU6cOPFDRfTr1w/79u1DcHAwHBwcvrmeoaEhzMzMVC5ERESUcak9RuXixYtYsWJFmvacOXPi1atXat2XEAL9+/fHzp07cezYMeTJk0fdcoiIiCgDUzuoGBoafnUQ6/3792FjY6PWfXl6emLjxo3YvXs3smbNKgUdc3NzGBsbq1saERERZTBq7/pp2rQppkyZguTkZACfzu/z5MkTjBw5Eq1atVLrvry9vREVFYXq1asjR44c0mXLli3qlkVEREQZkNpBZf78+YiNjYWtrS3i4+NRrVo1ODs7I2vWrJg+fbpa9yWE+OqlS5cu6pZFREREGZDau37Mzc0RFBSEU6dO4caNG4iNjUXp0qVRu3bt9KiPiIiIMrEfPuBb5cqVUblyZU3WQkRERKRC7aCyePHir7YrFAoYGRnB2dkZVatWha6u7k8XR0RERJmb2kFl4cKFePPmDT58+ABLS0sAwPv372FiYoIsWbIgPDwcefPmRXBwMI8cS0RERD9F7cG0M2bMQLly5fDgwQO8e/cO7969w/3791G+fHksWrQIT548gZ2dHQYPHpwe9RIREVEmonaPyrhx47Bjxw7ky5dPanN2dsa8efPQqlUrPHr0CHPmzFF7qjIRERHRl9TuUXn58iU+fvyYpv3jx4/SAdvs7e0RExPz89URERFRpqZ2UKlRowY8PDxw9epVqe3q1avo06cPatasCQC4efMmD4dPREREP03toLJ69WpYWVmhTJkyMDQ0hKGhIcqWLQsrKyusXr0aAJAlSxbMnz9f48USERFR5qL2GBU7OzsEBQXh7t27uH//PgCgYMGCKFiwoLROjRo1NFchERERZVo/fMC3QoUKoVChQpqshYiIiEjFDwWVZ8+eYc+ePXjy5AmSkpJUli1YsEAjhRERERGpHVSOHDmCpk2b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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "## calculate avg response time\n", + "unique_models = set(result[\"response\"]['model'] for result in result[\"results\"])\n", + "model_dict = {model: {\"response_time\": []} for model in unique_models}\n", + "for completion_result in result[\"results\"]:\n", + " model_dict[completion_result[\"response\"][\"model\"]][\"response_time\"].append(completion_result[\"response_time\"])\n", + "\n", + "avg_response_time = {}\n", + "for model, data in model_dict.items():\n", + " avg_response_time[model] = sum(data[\"response_time\"]) / len(data[\"response_time\"])\n", + "\n", + "models = list(avg_response_time.keys())\n", + "response_times = list(avg_response_time.values())\n", + "\n", + "plt.bar(models, response_times)\n", + "plt.xlabel('Model', fontsize=10)\n", + "plt.ylabel('Average Response Time')\n", + "plt.title('Average Response Times for each Model')\n", + "\n", + "plt.xticks(models, [model[:15]+'...' if len(model) > 15 else model for model in models], rotation=45)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "inSDIE3_IRds" + }, + "source": [ + "# Duration Test endpoint\n", + "\n", + "Run load testing for 2 mins. Hitting endpoints with 100+ queries every 15 seconds." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ePIqDx2EIURH" + }, + "outputs": [], + "source": [ + "models=[\"gpt-3.5-turbo\", \"replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781\", \"claude-instant-1\"]\n", + "context = \"\"\"Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a \"hacker philosopher\".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.\"\"\"\n", + "prompt = \"Where does Paul Graham live?\"\n", + "final_prompt = context + prompt\n", + "result = load_test_model(models=models, prompt=final_prompt, num_calls=100, interval=15, duration=120)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 552 + }, + "id": "k6rJoELM6t1K", + "outputId": "f4968b59-3bca-4f78-a88b-149ad55e3cf7" + }, + "outputs": [ + { + "data": { + "image/png": "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DaxZswYFCxaU/ua9fPkS4eHhcHNzU3mMd+/eyTrgcLcU5VkZuTsuLg5JSUlQKBQ4cOAAwsPDoaurCz09PURERMDV1RX//POPFGwSExOhr68PPz8/vH79msGGNEIIIQWbX3/9Fd27d8fcuXPRt29fjBgxAufPnwfwftdASkoKJkyYgMqVK+PVq1cqj8NgQ5/r/PnzaN68Obp374727dtj1KhRCAkJwbVr19ClSxcA708zkJaWhnXr1qFGjRo4ceKEymPIOdgADDeUx0VGRqJixYo4evQoNmzYgCZNmuDvv/8G8H5XU/ny5dGmTRtMnz5dWidfvnwYNWoU7t27B0tLSwYb0oiM7Wju3Ln4448/sHHjRty4cQNt27bFn3/+ifHjx+P06dMAAAMDA7i6uqJhw4YwNzfXYtUkRw8fPsTz589V2r7//nvs3r0bFy9eRJ8+fQC8P/VFixYtMH369EwjN7IniPK4Hj16CFNTU6GjoyOWL18utaemporNmzeL9PR0qU2pVGqjRPpGREVFibZt24pVq1YJIYTYvXu3MDU1Ff369ROurq6iYcOG4syZM0II1W3x3bt3WqmX5CkkJETY2NiITZs2SW0Z29v69euFk5OTOH/+fKb10tLSvliN2saRG8qzMk4J7uPjg/j4eBgYGMDW1hbJyckA3n8rad++vcrETY7SUG6ytrbGqFGj0KRJE1y+fBk+Pj6YNm0ali5dip9++glnzpyBj48PLl68qLItclcUaVLZsmVRr149rFu3DocOHQLwv799Li4uiI6Oli4z8yG574r6EMMN5VkZocXe3h4nTpyAl5cXOnbsiF27diEpKSlTfzleH4W051Pbk6urKwoXLox9+/bB2dkZffv2BQBYWlrCzc0NLVu2hKur65cslb4x9vb26NevH2JiYuDn54fdu3dLywoXLgxHR0ctVpc3fDsxjr4a4v8nAD9//hxpaWkoVqwYrK2tUaNGDSQnJ6NXr14ICgpCixYtYGRkhICAADRq1AhOTk7aLp1kQnwweXjFihWIjo6GgYEBRowYIV26IyUlBc+ePcOjR49QunRpHDhwAK1atcLAgQP/9bQERJ8j42i7evXqYcmSJRg7dixGjx6NkJAQODs7Y8uWLVAoFPjxxx+1XapW8VBwypOCg4MxadIkREVFoXnz5mjTpg1atmwJAOjRowd27NiB4cOH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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "## calculate avg response time\n", + "unique_models = set(unique_result[\"response\"]['model'] for unique_result in result[0][\"results\"])\n", + "model_dict = {model: {\"response_time\": []} for model in unique_models}\n", + "for iteration in result:\n", + " for completion_result in iteration[\"results\"]:\n", + " model_dict[completion_result[\"response\"][\"model\"]][\"response_time\"].append(completion_result[\"response_time\"])\n", + "\n", + "avg_response_time = {}\n", + "for model, data in model_dict.items():\n", + " avg_response_time[model] = sum(data[\"response_time\"]) / len(data[\"response_time\"])\n", + "\n", + "models = list(avg_response_time.keys())\n", + "response_times = list(avg_response_time.values())\n", + "\n", + "plt.bar(models, response_times)\n", + "plt.xlabel('Model', fontsize=10)\n", + "plt.ylabel('Average Response Time')\n", + "plt.title('Average Response Times for each Model')\n", + "\n", + "plt.xticks(models, [model[:15]+'...' if len(model) > 15 else model for model in models], rotation=45)\n", + "plt.show()" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } \ No newline at end of file diff --git a/cookbook/litellm_model_fallback.ipynb b/cookbook/litellm_model_fallback.ipynb index d0a4bfe79c..2e7987b969 100644 --- a/cookbook/litellm_model_fallback.ipynb +++ b/cookbook/litellm_model_fallback.ipynb @@ -1,52 +1,51 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "j6yJsCGeaq8G" + }, + "outputs": [], + "source": [ + "!pip install litellm" + ] }, - "cells": [ - { - "cell_type": "code", - "source": [ - "!pip install litellm" - ], - "metadata": { - "id": "j6yJsCGeaq8G" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "u129iWNPaf72" - }, - "outputs": [], - "source": [ - "import litellm\n", - "from litellm import embedding, completion\n", - "\n", - "model_fallback_list = [\"claude-instant-1\", \"gpt-3.5-turbo\", \"chatgpt-test\"]\n", - "\n", - "user_message = \"Hello, how are you?\"\n", - "messages = [{ \"content\": user_message,\"role\": \"user\"}]\n", - "\n", - "for model in model_fallback_list:\n", - " try:\n", - " response = completion(model=model, messages=messages)\n", - " except Exception as e:\n", - " print(f\"error occurred: {traceback.format_exc()}\")" - ] - } - ] + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "u129iWNPaf72" + }, + "outputs": [], + "source": [ + "from litellm import completion\n", + "\n", + "model_fallback_list = [\"claude-instant-1\", \"gpt-3.5-turbo\", \"chatgpt-test\"]\n", + "\n", + "user_message = \"Hello, how are you?\"\n", + "messages = [{ \"content\": user_message,\"role\": \"user\"}]\n", + "\n", + "for model in model_fallback_list:\n", + " try:\n", + " response = completion(model=model, messages=messages)\n", + " except Exception:\n", + " print(f\"error occurred: {traceback.format_exc()}\")" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } diff --git a/cookbook/litellm_router/load_test_proxy.py b/cookbook/litellm_router/load_test_proxy.py index adba968baa..9ae6e764d9 100644 --- a/cookbook/litellm_router/load_test_proxy.py +++ b/cookbook/litellm_router/load_test_proxy.py @@ -1,14 +1,12 @@ -import sys, os -import traceback +import sys +import os from dotenv import load_dotenv load_dotenv() -import os, io sys.path.insert( 0, os.path.abspath("../..") ) # Adds the parent directory to the system path -import pytest from litellm import Router import litellm @@ -137,7 +135,7 @@ for future in futures: else: failed_calls += 1 -print(f"Load test Summary:") +print("Load test Summary:") print(f"Total Requests: {concurrent_calls}") print(f"Successful Calls: {successful_calls}") print(f"Failed Calls: {failed_calls}") diff --git a/cookbook/litellm_router/load_test_queuing.py b/cookbook/litellm_router/load_test_queuing.py index 7c22f2f422..7d4d44b252 100644 --- a/cookbook/litellm_router/load_test_queuing.py +++ b/cookbook/litellm_router/load_test_queuing.py @@ -1,14 +1,12 @@ -import sys, os -import traceback +import sys +import os from dotenv import load_dotenv load_dotenv() -import os, io sys.path.insert( 0, os.path.abspath("../..") ) # Adds the parent directory to the system path -import pytest from litellm import Router import litellm @@ -160,7 +158,7 @@ for future in futures: else: failed_calls += 1 -print(f"Load test Summary:") +print("Load test Summary:") print(f"Total Requests: {concurrent_calls}") print(f"Successful Calls: {successful_calls}") print(f"Failed Calls: {failed_calls}") diff --git a/cookbook/litellm_router/load_test_router.py b/cookbook/litellm_router/load_test_router.py index 5eed3867dd..92533b6c92 100644 --- a/cookbook/litellm_router/load_test_router.py +++ b/cookbook/litellm_router/load_test_router.py @@ -1,14 +1,12 @@ -import sys, os -import traceback +import sys +import os from dotenv import load_dotenv load_dotenv() -import os, io sys.path.insert( 0, os.path.abspath("../..") ) # Adds the parent directory to the system path -import pytest from litellm import Router import litellm @@ -132,7 +130,7 @@ for future in futures: else: failed_calls += 1 -print(f"Load test Summary:") +print("Load test Summary:") print(f"Total Requests: {concurrent_calls}") print(f"Successful Calls: {successful_calls}") print(f"Failed Calls: {failed_calls}") diff --git a/cookbook/litellm_router_load_test/memory_usage/router_endpoint.py b/cookbook/litellm_router_load_test/memory_usage/router_endpoint.py index 78704e3a7d..689f105bc5 100644 --- a/cookbook/litellm_router_load_test/memory_usage/router_endpoint.py +++ b/cookbook/litellm_router_load_test/memory_usage/router_endpoint.py @@ -1,14 +1,9 @@ from fastapi import FastAPI import uvicorn -from memory_profiler import profile, memory_usage +from memory_profiler import profile import os -import traceback -import asyncio -import pytest import litellm from litellm import Router -from concurrent.futures import ThreadPoolExecutor -from collections import defaultdict from dotenv import load_dotenv import uuid diff --git a/cookbook/litellm_router_load_test/memory_usage/router_memory_usage copy.py b/cookbook/litellm_router_load_test/memory_usage/router_memory_usage copy.py index f6d549e72f..a8aa506e8a 100644 --- a/cookbook/litellm_router_load_test/memory_usage/router_memory_usage copy.py +++ b/cookbook/litellm_router_load_test/memory_usage/router_memory_usage copy.py @@ -1,17 +1,16 @@ #### What this tests #### -from memory_profiler import profile, memory_usage -import sys, os, time -import traceback, asyncio -import pytest +from memory_profiler import profile +import sys +import os +import time +import asyncio sys.path.insert( 0, os.path.abspath("../..") ) # Adds the parent directory to the system path import litellm from litellm import Router -from concurrent.futures import ThreadPoolExecutor -from collections import defaultdict from dotenv import load_dotenv import uuid diff --git a/cookbook/litellm_router_load_test/memory_usage/router_memory_usage.py b/cookbook/litellm_router_load_test/memory_usage/router_memory_usage.py index f6d549e72f..a8aa506e8a 100644 --- a/cookbook/litellm_router_load_test/memory_usage/router_memory_usage.py +++ b/cookbook/litellm_router_load_test/memory_usage/router_memory_usage.py @@ -1,17 +1,16 @@ #### What this tests #### -from memory_profiler import profile, memory_usage -import sys, os, time -import traceback, asyncio -import pytest +from memory_profiler import profile +import sys +import os +import time +import asyncio sys.path.insert( 0, os.path.abspath("../..") ) # Adds the parent directory to the system path import litellm from litellm import Router -from concurrent.futures import ThreadPoolExecutor -from collections import defaultdict from dotenv import load_dotenv import uuid diff --git a/cookbook/litellm_router_load_test/test_loadtest_openai_client.py b/cookbook/litellm_router_load_test/test_loadtest_openai_client.py index 63a0abd68c..8c50825be1 100644 --- a/cookbook/litellm_router_load_test/test_loadtest_openai_client.py +++ b/cookbook/litellm_router_load_test/test_loadtest_openai_client.py @@ -1,17 +1,14 @@ -import sys, os -import traceback +import sys +import os from dotenv import load_dotenv -import copy load_dotenv() sys.path.insert( 0, os.path.abspath("../..") ) # Adds the parent directory to the system path import asyncio -from litellm import Router, Timeout +from litellm import Timeout import time -from litellm.caching.caching import Cache -import litellm import openai ### Test just calling AsyncAzureOpenAI diff --git a/cookbook/litellm_router_load_test/test_loadtest_router.py b/cookbook/litellm_router_load_test/test_loadtest_router.py index a44bf4ccbb..280e495e77 100644 --- a/cookbook/litellm_router_load_test/test_loadtest_router.py +++ b/cookbook/litellm_router_load_test/test_loadtest_router.py @@ -1,7 +1,6 @@ -import sys, os -import traceback +import sys +import os from dotenv import load_dotenv -import copy load_dotenv() sys.path.insert( diff --git a/cookbook/litellm_router_load_test/test_loadtest_router_withs3_cache.py b/cookbook/litellm_router_load_test/test_loadtest_router_withs3_cache.py index 4df8b7f5e6..b093489be1 100644 --- a/cookbook/litellm_router_load_test/test_loadtest_router_withs3_cache.py +++ b/cookbook/litellm_router_load_test/test_loadtest_router_withs3_cache.py @@ -1,7 +1,6 @@ -import sys, os -import traceback +import sys +import os from dotenv import load_dotenv -import copy load_dotenv() sys.path.insert( diff --git a/cookbook/misc/add_new_models.py b/cookbook/misc/add_new_models.py index c9b5a91e30..3cd0bfb2fc 100644 --- a/cookbook/misc/add_new_models.py +++ b/cookbook/misc/add_new_models.py @@ -1,5 +1,4 @@ import requests -import json def get_initial_config(): diff --git a/cookbook/misc/migrate_proxy_config.py b/cookbook/misc/migrate_proxy_config.py index 53551a0ce7..31c3f32c08 100644 --- a/cookbook/misc/migrate_proxy_config.py +++ b/cookbook/misc/migrate_proxy_config.py @@ -36,7 +36,7 @@ def migrate_models(config_file, proxy_base_url): litellm_model_name = litellm_params.get("model", "") or "" if "vertex_ai/" in litellm_model_name: - print(f"\033[91m\nSkipping Vertex AI model\033[0m", model) + print("\033[91m\nSkipping Vertex AI model\033[0m", model) continue for param, value in litellm_params.items(): diff --git a/cookbook/misc/openai_timeouts.py b/cookbook/misc/openai_timeouts.py index 0192d70545..fe3e6d426d 100644 --- a/cookbook/misc/openai_timeouts.py +++ b/cookbook/misc/openai_timeouts.py @@ -1,7 +1,6 @@ import os from openai import OpenAI from dotenv import load_dotenv -import httpx import concurrent.futures load_dotenv() diff --git a/cookbook/misc/sagmaker_streaming.py b/cookbook/misc/sagmaker_streaming.py index 81d857b07f..1a6cc2e32c 100644 --- a/cookbook/misc/sagmaker_streaming.py +++ b/cookbook/misc/sagmaker_streaming.py @@ -2,21 +2,16 @@ import json import boto3 -import sys, os -import traceback +import sys +import os from dotenv import load_dotenv load_dotenv() -import os, io +import io sys.path.insert( 0, os.path.abspath("../..") ) # Adds the parent directory to the system path -import pytest -import litellm - -import io -import json class TokenIterator: @@ -48,7 +43,6 @@ payload = { "stream": True, } -import boto3 client = boto3.client("sagemaker-runtime", region_name="us-west-2") response = client.invoke_endpoint_with_response_stream( diff --git a/cookbook/mlflow_langchain_tracing_litellm_proxy.ipynb b/cookbook/mlflow_langchain_tracing_litellm_proxy.ipynb index 0c684942f6..1aca0e13c8 100644 --- a/cookbook/mlflow_langchain_tracing_litellm_proxy.ipynb +++ b/cookbook/mlflow_langchain_tracing_litellm_proxy.ipynb @@ -111,7 +111,6 @@ }, "outputs": [], "source": [ - "import mlflow\n", "mlflow.langchain.autolog()" ] }, diff --git a/db_scripts/create_views.py b/db_scripts/create_views.py index 7a913c7f8f..43226db23c 100644 --- a/db_scripts/create_views.py +++ b/db_scripts/create_views.py @@ -3,7 +3,6 @@ python script to pre-create all views required by LiteLLM Proxy Server """ import asyncio -import os # Enter your DATABASE_URL here @@ -33,7 +32,7 @@ async def check_view_exists(): # noqa: PLR0915 # Try to select one row from the view await db.query_raw("""SELECT 1 FROM "LiteLLM_VerificationTokenView" LIMIT 1""") print("LiteLLM_VerificationTokenView Exists!") # noqa - except Exception as e: + except Exception: # If an error occurs, the view does not exist, so create it await db.execute_raw( """ @@ -54,7 +53,7 @@ async def check_view_exists(): # noqa: PLR0915 try: await db.query_raw("""SELECT 1 FROM "MonthlyGlobalSpend" LIMIT 1""") print("MonthlyGlobalSpend Exists!") # noqa - except Exception as e: + except Exception: sql_query = """ CREATE OR REPLACE VIEW "MonthlyGlobalSpend" AS SELECT @@ -74,7 +73,7 @@ async def check_view_exists(): # noqa: PLR0915 try: await db.query_raw("""SELECT 1 FROM "Last30dKeysBySpend" LIMIT 1""") print("Last30dKeysBySpend Exists!") # noqa - except Exception as e: + except Exception: sql_query = """ CREATE OR REPLACE VIEW "Last30dKeysBySpend" AS SELECT @@ -102,7 +101,7 @@ async def check_view_exists(): # noqa: PLR0915 try: await db.query_raw("""SELECT 1 FROM "Last30dModelsBySpend" LIMIT 1""") print("Last30dModelsBySpend Exists!") # noqa - except Exception as e: + except Exception: sql_query = """ CREATE OR REPLACE VIEW "Last30dModelsBySpend" AS SELECT @@ -124,7 +123,7 @@ async def check_view_exists(): # noqa: PLR0915 try: await db.query_raw("""SELECT 1 FROM "MonthlyGlobalSpendPerKey" LIMIT 1""") print("MonthlyGlobalSpendPerKey Exists!") # noqa - except Exception as e: + except Exception: sql_query = """ CREATE OR REPLACE VIEW "MonthlyGlobalSpendPerKey" AS SELECT @@ -147,7 +146,7 @@ async def check_view_exists(): # noqa: PLR0915 """SELECT 1 FROM "MonthlyGlobalSpendPerUserPerKey" LIMIT 1""" ) print("MonthlyGlobalSpendPerUserPerKey Exists!") # noqa - except Exception as e: + except Exception: sql_query = """ CREATE OR REPLACE VIEW "MonthlyGlobalSpendPerUserPerKey" AS SELECT @@ -171,7 +170,7 @@ async def check_view_exists(): # noqa: PLR0915 try: await db.query_raw("""SELECT 1 FROM DailyTagSpend LIMIT 1""") print("DailyTagSpend Exists!") # noqa - except Exception as e: + except Exception: sql_query = """ CREATE OR REPLACE VIEW DailyTagSpend AS SELECT @@ -189,7 +188,7 @@ async def check_view_exists(): # noqa: PLR0915 try: await db.query_raw("""SELECT 1 FROM "Last30dTopEndUsersSpend" LIMIT 1""") print("Last30dTopEndUsersSpend Exists!") # noqa - except Exception as e: + except Exception: sql_query = """ CREATE VIEW "Last30dTopEndUsersSpend" AS SELECT end_user, COUNT(*) AS total_events, SUM(spend) AS total_spend diff --git a/enterprise/enterprise_callbacks/example_logging_api.py b/enterprise/enterprise_callbacks/example_logging_api.py index c3d3f5e63f..c4ad4c40d1 100644 --- a/enterprise/enterprise_callbacks/example_logging_api.py +++ b/enterprise/enterprise_callbacks/example_logging_api.py @@ -17,7 +17,7 @@ async def log_event(request: Request): # For now, just printing the received data return {"message": "Request received successfully"} - except Exception as e: + except Exception: raise HTTPException(status_code=500, detail="Internal Server Error") diff --git a/enterprise/enterprise_callbacks/generic_api_callback.py b/enterprise/enterprise_callbacks/generic_api_callback.py index cfeea7d696..2f39ce856b 100644 --- a/enterprise/enterprise_callbacks/generic_api_callback.py +++ b/enterprise/enterprise_callbacks/generic_api_callback.py @@ -2,12 +2,10 @@ #### What this does #### # On success, logs events to Promptlayer -import dotenv, os +import os -from litellm.proxy._types import UserAPIKeyAuth -from litellm.caching.caching import DualCache -from typing import Literal, Union, Optional +from typing import Optional import traceback @@ -15,10 +13,8 @@ import traceback #### What this does #### # On success + failure, log events to Supabase -import dotenv, os -import traceback -import datetime, subprocess, sys -import litellm, uuid +import litellm +import uuid from litellm._logging import print_verbose, verbose_logger diff --git a/enterprise/enterprise_hooks/aporia_ai.py b/enterprise/enterprise_hooks/aporia_ai.py index 27645257e2..d258f00233 100644 --- a/enterprise/enterprise_hooks/aporia_ai.py +++ b/enterprise/enterprise_hooks/aporia_ai.py @@ -11,9 +11,9 @@ import os sys.path.insert( 0, os.path.abspath("../..") ) # Adds the parent directory to the system path -from typing import Optional, Literal, Union, Any -import litellm, traceback, sys, uuid -from litellm.caching.caching import DualCache +from typing import Optional, Literal, Any +import litellm +import sys from litellm.proxy._types import UserAPIKeyAuth from litellm.integrations.custom_guardrail import CustomGuardrail from fastapi import HTTPException @@ -23,14 +23,10 @@ from litellm.litellm_core_utils.logging_utils import ( convert_litellm_response_object_to_str, ) from typing import List -from datetime import datetime -import aiohttp, asyncio -from litellm._logging import verbose_proxy_logger from litellm.llms.custom_httpx.http_handler import ( get_async_httpx_client, httpxSpecialProvider, ) -import httpx import json from litellm.types.guardrails import GuardrailEventHooks @@ -147,7 +143,6 @@ class AporiaGuardrail(CustomGuardrail): from litellm.proxy.common_utils.callback_utils import ( add_guardrail_to_applied_guardrails_header, ) - from litellm.types.guardrails import GuardrailEventHooks """ Use this for the post call moderation with Guardrails @@ -183,7 +178,6 @@ class AporiaGuardrail(CustomGuardrail): from litellm.proxy.common_utils.callback_utils import ( add_guardrail_to_applied_guardrails_header, ) - from litellm.types.guardrails import GuardrailEventHooks event_type: GuardrailEventHooks = GuardrailEventHooks.during_call if self.should_run_guardrail(data=data, event_type=event_type) is not True: diff --git a/enterprise/enterprise_hooks/banned_keywords.py b/enterprise/enterprise_hooks/banned_keywords.py index 7a6306ed5b..4df138939a 100644 --- a/enterprise/enterprise_hooks/banned_keywords.py +++ b/enterprise/enterprise_hooks/banned_keywords.py @@ -7,14 +7,13 @@ ## Reject a call / response if it contains certain keywords -from typing import Optional, Literal +from typing import Literal import litellm from litellm.caching.caching import DualCache from litellm.proxy._types import UserAPIKeyAuth from litellm.integrations.custom_logger import CustomLogger from litellm._logging import verbose_proxy_logger from fastapi import HTTPException -import json, traceback class _ENTERPRISE_BannedKeywords(CustomLogger): @@ -73,7 +72,7 @@ class _ENTERPRISE_BannedKeywords(CustomLogger): - check if user id part of call - check if user id part of blocked list """ - self.print_verbose(f"Inside Banned Keyword List Pre-Call Hook") + self.print_verbose("Inside Banned Keyword List Pre-Call Hook") if call_type == "completion" and "messages" in data: for m in data["messages"]: if "content" in m and isinstance(m["content"], str): diff --git a/enterprise/enterprise_hooks/blocked_user_list.py b/enterprise/enterprise_hooks/blocked_user_list.py index f978d87562..09fb1735a0 100644 --- a/enterprise/enterprise_hooks/blocked_user_list.py +++ b/enterprise/enterprise_hooks/blocked_user_list.py @@ -15,7 +15,6 @@ from litellm.proxy._types import UserAPIKeyAuth, LiteLLM_EndUserTable from litellm.integrations.custom_logger import CustomLogger from litellm._logging import verbose_proxy_logger from fastapi import HTTPException -import json, traceback class _ENTERPRISE_BlockedUserList(CustomLogger): @@ -69,7 +68,7 @@ class _ENTERPRISE_BlockedUserList(CustomLogger): - check if end-user in cache - check if end-user in db """ - self.print_verbose(f"Inside Blocked User List Pre-Call Hook") + self.print_verbose("Inside Blocked User List Pre-Call Hook") if "user_id" in data or "user" in data: user = data.get("user_id", data.get("user", "")) if ( diff --git a/enterprise/enterprise_hooks/google_text_moderation.py b/enterprise/enterprise_hooks/google_text_moderation.py index 06d95ff87f..af5ea35987 100644 --- a/enterprise/enterprise_hooks/google_text_moderation.py +++ b/enterprise/enterprise_hooks/google_text_moderation.py @@ -7,21 +7,12 @@ # Thank you users! We ❤️ you! - Krrish & Ishaan -from typing import Optional, Literal, Union -import litellm, traceback, sys, uuid -from litellm.caching.caching import DualCache +from typing import Literal +import litellm from litellm.proxy._types import UserAPIKeyAuth from litellm.integrations.custom_logger import CustomLogger from fastapi import HTTPException from litellm._logging import verbose_proxy_logger -from litellm.utils import ( - ModelResponse, - EmbeddingResponse, - ImageResponse, - StreamingChoices, -) -from datetime import datetime -import aiohttp, asyncio class _ENTERPRISE_GoogleTextModeration(CustomLogger): diff --git a/enterprise/enterprise_hooks/llama_guard.py b/enterprise/enterprise_hooks/llama_guard.py index 5ee6f3b303..8abbc996d3 100644 --- a/enterprise/enterprise_hooks/llama_guard.py +++ b/enterprise/enterprise_hooks/llama_guard.py @@ -7,28 +7,24 @@ # +-------------------------------------------------------------+ # Thank you users! We ❤️ you! - Krrish & Ishaan -import sys, os +import sys +import os from collections.abc import Iterable sys.path.insert( 0, os.path.abspath("../..") ) # Adds the parent directory to the system path -from typing import Optional, Literal, Union -import litellm, traceback, sys, uuid -from litellm.caching.caching import DualCache +from typing import Optional, Literal +import litellm +import sys from litellm.proxy._types import UserAPIKeyAuth from litellm.integrations.custom_logger import CustomLogger from fastapi import HTTPException from litellm._logging import verbose_proxy_logger from litellm.types.utils import ( ModelResponse, - EmbeddingResponse, - ImageResponse, - StreamingChoices, Choices, ) -from datetime import datetime -import aiohttp, asyncio litellm.set_verbose = True diff --git a/enterprise/enterprise_hooks/llm_guard.py b/enterprise/enterprise_hooks/llm_guard.py index 04ac662112..1b639b8a08 100644 --- a/enterprise/enterprise_hooks/llm_guard.py +++ b/enterprise/enterprise_hooks/llm_guard.py @@ -7,26 +7,13 @@ # Thank you users! We ❤️ you! - Krrish & Ishaan ## This provides an LLM Guard Integration for content moderation on the proxy -from typing import Optional, Literal, Union +from typing import Optional, Literal import litellm -import traceback -import sys -import uuid -import os -from litellm.caching.caching import DualCache from litellm.proxy._types import UserAPIKeyAuth from litellm.integrations.custom_logger import CustomLogger from fastapi import HTTPException from litellm._logging import verbose_proxy_logger -from litellm.utils import ( - ModelResponse, - EmbeddingResponse, - ImageResponse, - StreamingChoices, -) -from datetime import datetime import aiohttp -import asyncio from litellm.utils import get_formatted_prompt from litellm.secret_managers.main import get_secret_str @@ -164,7 +151,7 @@ class _ENTERPRISE_LLMGuard(CustomLogger): "moderation", "audio_transcription", ] - except Exception as e: + except Exception: self.print_verbose( f"Call Type - {call_type}, not in accepted list - ['completion','embeddings','image_generation','moderation','audio_transcription']" ) diff --git a/enterprise/enterprise_hooks/openai_moderation.py b/enterprise/enterprise_hooks/openai_moderation.py index 0b9efc25fe..47506a00c4 100644 --- a/enterprise/enterprise_hooks/openai_moderation.py +++ b/enterprise/enterprise_hooks/openai_moderation.py @@ -5,27 +5,19 @@ # +-------------------------------------------------------------+ # Thank you users! We ❤️ you! - Krrish & Ishaan -import sys, os +import sys +import os sys.path.insert( 0, os.path.abspath("../..") ) # Adds the parent directory to the system path -from typing import Optional, Literal, Union -import litellm, traceback, sys, uuid -from litellm.caching.caching import DualCache +from typing import Literal +import litellm +import sys from litellm.proxy._types import UserAPIKeyAuth from litellm.integrations.custom_logger import CustomLogger from fastapi import HTTPException from litellm._logging import verbose_proxy_logger -from litellm.utils import ( - ModelResponse, - EmbeddingResponse, - ImageResponse, - StreamingChoices, -) -from datetime import datetime -import aiohttp, asyncio -from litellm._logging import verbose_proxy_logger litellm.set_verbose = True diff --git a/enterprise/enterprise_hooks/secret_detection.py b/enterprise/enterprise_hooks/secret_detection.py index 50ccccfde4..459fd374d1 100644 --- a/enterprise/enterprise_hooks/secret_detection.py +++ b/enterprise/enterprise_hooks/secret_detection.py @@ -471,8 +471,6 @@ class _ENTERPRISE_SecretDetection(CustomGuardrail): data: dict, call_type: str, # "completion", "embeddings", "image_generation", "moderation" ): - from detect_secrets import SecretsCollection - from detect_secrets.settings import default_settings if await self.should_run_check(user_api_key_dict) is False: return diff --git a/enterprise/utils.py b/enterprise/utils.py index cc97661d74..b252a064bb 100644 --- a/enterprise/utils.py +++ b/enterprise/utils.py @@ -1,6 +1,5 @@ # Enterprise Proxy Util Endpoints from typing import Optional, List -from litellm._logging import verbose_logger from litellm.proxy.proxy_server import PrismaClient, HTTPException from litellm.llms.custom_httpx.http_handler import HTTPHandler import collections @@ -116,7 +115,7 @@ async def ui_get_spend_by_tags( def _forecast_daily_cost(data: list): - from datetime import datetime, timedelta + from datetime import timedelta if len(data) == 0: return { diff --git a/litellm/__init__.py b/litellm/__init__.py index 7ec48da073..59a88abfd1 100644 --- a/litellm/__init__.py +++ b/litellm/__init__.py @@ -1063,9 +1063,9 @@ from .llms.sagemaker.chat.transformation import SagemakerChatConfig from .llms.ollama_chat import OllamaChatConfig from .llms.bedrock.chat.invoke_handler import ( AmazonCohereChatConfig, - AmazonConverseConfig, bedrock_tool_name_mappings, ) +from .llms.bedrock.chat.converse_transformation import AmazonConverseConfig from .llms.bedrock.common_utils import ( AmazonTitanConfig, AmazonAI21Config, diff --git a/litellm/_logging.py b/litellm/_logging.py index daa1a1dd2b..ae17d0e525 100644 --- a/litellm/_logging.py +++ b/litellm/_logging.py @@ -1,7 +1,6 @@ import json import logging import os -import traceback from datetime import datetime from logging import Formatter diff --git a/litellm/_redis.py b/litellm/_redis.py index d905f1c9d0..70c38cf7f5 100644 --- a/litellm/_redis.py +++ b/litellm/_redis.py @@ -12,12 +12,11 @@ import json # s/o [@Frank Colson](https://www.linkedin.com/in/frank-colson-422b9b183/) for this redis implementation import os -from typing import Dict, List, Optional, Union +from typing import List, Optional, Union import redis # type: ignore import redis.asyncio as async_redis # type: ignore -import litellm from litellm import get_secret, get_secret_str from ._logging import verbose_logger diff --git a/litellm/adapters/anthropic_adapter.py b/litellm/adapters/anthropic_adapter.py index b8ce225ada..961bc77527 100644 --- a/litellm/adapters/anthropic_adapter.py +++ b/litellm/adapters/anthropic_adapter.py @@ -1,23 +1,12 @@ # What is this? ## Translates OpenAI call to Anthropic `/v1/messages` format -import json -import os import traceback -import uuid -from typing import Any, Literal, Optional - -import dotenv -import httpx -from pydantic import BaseModel +from typing import Any, Optional import litellm from litellm import ChatCompletionRequest, verbose_logger from litellm.integrations.custom_logger import CustomLogger -from litellm.types.llms.anthropic import ( - AnthropicMessagesRequest, - AnthropicResponse, - ContentBlockDelta, -) +from litellm.types.llms.anthropic import AnthropicMessagesRequest, AnthropicResponse from litellm.types.utils import AdapterCompletionStreamWrapper, ModelResponse diff --git a/litellm/assistants/main.py b/litellm/assistants/main.py index 76222ca787..acb37b1e6f 100644 --- a/litellm/assistants/main.py +++ b/litellm/assistants/main.py @@ -7,12 +7,11 @@ from functools import partial from typing import Any, Coroutine, Dict, Iterable, List, Literal, Optional, Union import httpx -from openai import AsyncAzureOpenAI, AsyncOpenAI, AzureOpenAI, OpenAI +from openai import AsyncOpenAI, OpenAI from openai.types.beta.assistant import Assistant from openai.types.beta.assistant_deleted import AssistantDeleted import litellm -from litellm.llms.azure import assistants from litellm.types.router import GenericLiteLLMParams from litellm.utils import ( exception_type, diff --git a/litellm/batch_completion/main.py b/litellm/batch_completion/main.py index bb8374c7ae..7100fb004f 100644 --- a/litellm/batch_completion/main.py +++ b/litellm/batch_completion/main.py @@ -144,7 +144,6 @@ def batch_completion_models(*args, **kwargs): This function utilizes a ThreadPoolExecutor to parallelize requests to multiple models. It sends requests concurrently and returns the response from the first model that responds. """ - import concurrent if "model" in kwargs: kwargs.pop("model") diff --git a/litellm/batches/main.py b/litellm/batches/main.py index 555ec62ad5..71c2d3b5cf 100644 --- a/litellm/batches/main.py +++ b/litellm/batches/main.py @@ -19,24 +19,11 @@ from typing import Any, Coroutine, Dict, Literal, Optional, Union import httpx import litellm -from litellm import client from litellm.llms.azure.azure import AzureBatchesAPI from litellm.llms.openai.openai import OpenAIBatchesAPI -from litellm.llms.vertex_ai.batches.handler import ( - VertexAIBatchPrediction, -) -from litellm.secret_managers.main import get_secret, get_secret_str -from litellm.types.llms.openai import ( - Batch, - CancelBatchRequest, - CreateBatchRequest, - CreateFileRequest, - FileContentRequest, - FileObject, - FileTypes, - HttpxBinaryResponseContent, - RetrieveBatchRequest, -) +from litellm.llms.vertex_ai.batches.handler import VertexAIBatchPrediction +from litellm.secret_managers.main import get_secret_str +from litellm.types.llms.openai import Batch, CreateBatchRequest, RetrieveBatchRequest from litellm.types.router import GenericLiteLLMParams from litellm.utils import supports_httpx_timeout diff --git a/litellm/budget_manager.py b/litellm/budget_manager.py index a17edcdbe8..e664c4f44f 100644 --- a/litellm/budget_manager.py +++ b/litellm/budget_manager.py @@ -11,7 +11,7 @@ import json import os import threading import time -from typing import Literal, Optional, Union +from typing import Literal, Optional import litellm from litellm.utils import ModelResponse diff --git a/litellm/caching/caching.py b/litellm/caching/caching.py index 17c09b9977..e50e8b76d6 100644 --- a/litellm/caching/caching.py +++ b/litellm/caching/caching.py @@ -8,16 +8,12 @@ # Thank you users! We ❤️ you! - Krrish & Ishaan import ast -import asyncio import hashlib -import inspect -import io import json -import logging import time import traceback from enum import Enum -from typing import Any, Dict, List, Literal, Optional, Set, Tuple, Union +from typing import Any, Dict, List, Optional, Set, Union from openai.types.audio.transcription_create_params import TranscriptionCreateParams from openai.types.chat.completion_create_params import ( @@ -41,7 +37,7 @@ from litellm.types.utils import all_litellm_params from .base_cache import BaseCache from .disk_cache import DiskCache -from .dual_cache import DualCache +from .dual_cache import DualCache # noqa from .in_memory_cache import InMemoryCache from .qdrant_semantic_cache import QdrantSemanticCache from .redis_cache import RedisCache diff --git a/litellm/caching/caching_handler.py b/litellm/caching/caching_handler.py index 11ae600b74..821224652c 100644 --- a/litellm/caching/caching_handler.py +++ b/litellm/caching/caching_handler.py @@ -35,13 +35,7 @@ from pydantic import BaseModel import litellm from litellm._logging import print_verbose, verbose_logger -from litellm.caching.caching import ( - Cache, - QdrantSemanticCache, - RedisCache, - RedisSemanticCache, - S3Cache, -) +from litellm.caching.caching import S3Cache from litellm.litellm_core_utils.logging_utils import ( _assemble_complete_response_from_streaming_chunks, ) @@ -550,12 +544,7 @@ class LLMCachingHandler: Returns: Optional[Any]: """ - from litellm.utils import ( - CustomStreamWrapper, - convert_to_model_response_object, - convert_to_streaming_response, - convert_to_streaming_response_async, - ) + from litellm.utils import convert_to_model_response_object if ( call_type == CallTypes.acompletion.value diff --git a/litellm/caching/disk_cache.py b/litellm/caching/disk_cache.py index 94f82926d3..abf3203f50 100644 --- a/litellm/caching/disk_cache.py +++ b/litellm/caching/disk_cache.py @@ -1,8 +1,6 @@ import json from typing import TYPE_CHECKING, Any, Optional -from litellm._logging import print_verbose - from .base_cache import BaseCache if TYPE_CHECKING: diff --git a/litellm/caching/dual_cache.py b/litellm/caching/dual_cache.py index f4abc6f153..5f598f7d70 100644 --- a/litellm/caching/dual_cache.py +++ b/litellm/caching/dual_cache.py @@ -12,7 +12,7 @@ import asyncio import time import traceback from concurrent.futures import ThreadPoolExecutor -from typing import TYPE_CHECKING, Any, List, Optional, Tuple +from typing import TYPE_CHECKING, Any, List, Optional import litellm from litellm._logging import print_verbose, verbose_logger diff --git a/litellm/caching/qdrant_semantic_cache.py b/litellm/caching/qdrant_semantic_cache.py index acaa8e9189..bdfd3770ae 100644 --- a/litellm/caching/qdrant_semantic_cache.py +++ b/litellm/caching/qdrant_semantic_cache.py @@ -15,7 +15,6 @@ from typing import Any import litellm from litellm._logging import print_verbose -from litellm.types.caching import LiteLLMCacheType from .base_cache import BaseCache diff --git a/litellm/caching/redis_cache.py b/litellm/caching/redis_cache.py index fa0002fe62..21455fa7f2 100644 --- a/litellm/caching/redis_cache.py +++ b/litellm/caching/redis_cache.py @@ -13,7 +13,6 @@ import asyncio import inspect import json import time -import traceback from datetime import timedelta from typing import TYPE_CHECKING, Any, List, Optional, Tuple @@ -21,8 +20,7 @@ import litellm from litellm._logging import print_verbose, verbose_logger from litellm.litellm_core_utils.core_helpers import _get_parent_otel_span_from_kwargs from litellm.types.caching import RedisPipelineIncrementOperation -from litellm.types.services import ServiceLoggerPayload, ServiceTypes -from litellm.types.utils import all_litellm_params +from litellm.types.services import ServiceTypes from .base_cache import BaseCache @@ -53,7 +51,6 @@ class RedisCache(BaseCache): startup_nodes: Optional[List] = None, # for redis-cluster **kwargs, ): - import redis from litellm._service_logger import ServiceLogging diff --git a/litellm/caching/redis_semantic_cache.py b/litellm/caching/redis_semantic_cache.py index e3098f0856..b609286a55 100644 --- a/litellm/caching/redis_semantic_cache.py +++ b/litellm/caching/redis_semantic_cache.py @@ -32,7 +32,6 @@ class RedisSemanticCache(BaseCache): **kwargs, ): from redisvl.index import SearchIndex - from redisvl.query import VectorQuery print_verbose( "redis semantic-cache initializing INDEX - litellm_semantic_cache_index" @@ -141,7 +140,6 @@ class RedisSemanticCache(BaseCache): def get_cache(self, key, **kwargs): print_verbose(f"sync redis semantic-cache get_cache, kwargs: {kwargs}") - import numpy as np from redisvl.query import VectorQuery # query @@ -253,7 +251,6 @@ class RedisSemanticCache(BaseCache): async def async_get_cache(self, key, **kwargs): print_verbose(f"async redis semantic-cache get_cache, kwargs: {kwargs}") - import numpy as np from redisvl.query import VectorQuery from litellm.proxy.proxy_server import llm_model_list, llm_router diff --git a/litellm/caching/s3_cache.py b/litellm/caching/s3_cache.py index 6be16e289a..301591c64f 100644 --- a/litellm/caching/s3_cache.py +++ b/litellm/caching/s3_cache.py @@ -12,11 +12,9 @@ Has 4 methods: import ast import asyncio import json -from typing import Any, Optional +from typing import Optional -import litellm from litellm._logging import print_verbose, verbose_logger -from litellm.types.caching import LiteLLMCacheType from .base_cache import BaseCache @@ -103,7 +101,6 @@ class S3Cache(BaseCache): self.set_cache(key=key, value=value, **kwargs) def get_cache(self, key, **kwargs): - import boto3 import botocore try: diff --git a/litellm/cost_calculator.py b/litellm/cost_calculator.py index 45bd24aab3..234ca1a1d4 100644 --- a/litellm/cost_calculator.py +++ b/litellm/cost_calculator.py @@ -1,7 +1,6 @@ # What is this? ## File for 'response_cost' calculation in Logging import time -import traceback from typing import Any, List, Literal, Optional, Tuple, Union from pydantic import BaseModel @@ -44,14 +43,12 @@ from litellm.llms.openai.cost_calculation import ( cost_per_second as openai_cost_per_second, ) from litellm.llms.openai.cost_calculation import cost_per_token as openai_cost_per_token -from litellm.llms.openai.cost_calculation import cost_router as openai_cost_router from litellm.llms.together_ai.cost_calculator import get_model_params_and_category from litellm.llms.vertex_ai.image_generation.cost_calculator import ( cost_calculator as vertex_ai_image_cost_calculator, ) from litellm.types.llms.openai import HttpxBinaryResponseContent from litellm.types.rerank import RerankResponse -from litellm.types.router import SPECIAL_MODEL_INFO_PARAMS from litellm.types.utils import CallTypesLiteral, PassthroughCallTypes, Usage from litellm.utils import ( CallTypes, diff --git a/litellm/files/main.py b/litellm/files/main.py index 8637c624c0..9f81b2e385 100644 --- a/litellm/files/main.py +++ b/litellm/files/main.py @@ -14,14 +14,11 @@ from typing import Any, Coroutine, Dict, Literal, Optional, Union, cast import httpx import litellm -from litellm import client, get_secret_str +from litellm import get_secret_str from litellm.llms.azure.files.handler import AzureOpenAIFilesAPI from litellm.llms.openai.openai import FileDeleted, FileObject, OpenAIFilesAPI -from litellm.llms.vertex_ai.files.handler import ( - VertexAIFilesHandler, -) +from litellm.llms.vertex_ai.files.handler import VertexAIFilesHandler from litellm.types.llms.openai import ( - Batch, CreateFileRequest, FileContentRequest, FileTypes, diff --git a/litellm/fine_tuning/main.py b/litellm/fine_tuning/main.py index e5620a40e9..eace2f64a4 100644 --- a/litellm/fine_tuning/main.py +++ b/litellm/fine_tuning/main.py @@ -19,10 +19,10 @@ import httpx import litellm from litellm._logging import verbose_logger from litellm.llms.azure.fine_tuning.handler import AzureOpenAIFineTuningAPI -from litellm.llms.openai.fine_tuning.handler import OpenAIFineTuningAPI, FineTuningJob, FineTuningJobCreate +from litellm.llms.openai.fine_tuning.handler import FineTuningJob, OpenAIFineTuningAPI from litellm.llms.vertex_ai.fine_tuning.handler import VertexFineTuningAPI from litellm.secret_managers.main import get_secret_str -from litellm.types.llms.openai import Hyperparameters +from litellm.types.llms.openai import FineTuningJobCreate, Hyperparameters from litellm.types.router import * from litellm.utils import supports_httpx_timeout diff --git a/litellm/integrations/SlackAlerting/batching_handler.py b/litellm/integrations/SlackAlerting/batching_handler.py index 7c4e9c6f53..f52147a001 100644 --- a/litellm/integrations/SlackAlerting/batching_handler.py +++ b/litellm/integrations/SlackAlerting/batching_handler.py @@ -6,11 +6,9 @@ Slack alerts are sent every 10s or when events are greater than X events see custom_batch_logger.py for more details / defaults """ -import os -from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union +from typing import TYPE_CHECKING, Any -from litellm._logging import verbose_logger, verbose_proxy_logger -from litellm.proxy._types import AlertType, WebhookEvent +from litellm._logging import verbose_proxy_logger if TYPE_CHECKING: from .slack_alerting import SlackAlerting as _SlackAlerting @@ -21,7 +19,6 @@ else: def squash_payloads(queue): - import json squashed = {} if len(queue) == 0: diff --git a/litellm/integrations/SlackAlerting/slack_alerting.py b/litellm/integrations/SlackAlerting/slack_alerting.py index bd3c3b8253..3c71332de7 100644 --- a/litellm/integrations/SlackAlerting/slack_alerting.py +++ b/litellm/integrations/SlackAlerting/slack_alerting.py @@ -4,16 +4,10 @@ import asyncio import datetime import os import random -import threading import time -import traceback -from datetime import datetime as dt -from datetime import timedelta, timezone -from enum import Enum -from typing import Any, Dict, List, Literal, Optional, Set, TypedDict, Union, get_args +from datetime import timedelta +from typing import Any, Dict, List, Literal, Optional, Union -import aiohttp -import dotenv from openai import APIError import litellm @@ -26,22 +20,13 @@ from litellm.integrations.custom_batch_logger import CustomBatchLogger from litellm.litellm_core_utils.exception_mapping_utils import ( _add_key_name_and_team_to_alert, ) -from litellm.litellm_core_utils.litellm_logging import Logging from litellm.llms.custom_httpx.http_handler import ( - AsyncHTTPHandler, get_async_httpx_client, httpxSpecialProvider, ) -from litellm.proxy._types import ( - AlertType, - CallInfo, - UserAPIKeyAuth, - VirtualKeyEvent, - WebhookEvent, -) +from litellm.proxy._types import AlertType, CallInfo, VirtualKeyEvent, WebhookEvent from litellm.router import Router from litellm.types.integrations.slack_alerting import * -from litellm.types.router import LiteLLM_Params from ..email_templates.templates import * from .batching_handler import send_to_webhook, squash_payloads @@ -1261,7 +1246,7 @@ Model Info: Returns -> True if sent, False if not. """ - from litellm.proxy.proxy_server import premium_user, prisma_client + from litellm.proxy.proxy_server import premium_user from litellm.proxy.utils import send_email email_logo_url = os.getenv( @@ -1370,7 +1355,6 @@ Model Info: if alert_type not in self.alert_types: return - import json from datetime import datetime # Get the current timestamp diff --git a/litellm/integrations/SlackAlerting/utils.py b/litellm/integrations/SlackAlerting/utils.py index d6c0a3168f..87e78afa90 100644 --- a/litellm/integrations/SlackAlerting/utils.py +++ b/litellm/integrations/SlackAlerting/utils.py @@ -5,7 +5,6 @@ Utils used for slack alerting import asyncio from typing import Dict, List, Optional, Union -import litellm from litellm.litellm_core_utils.litellm_logging import Logging from litellm.proxy._types import AlertType from litellm.secret_managers.main import get_secret diff --git a/litellm/integrations/argilla.py b/litellm/integrations/argilla.py index 1ec7924b6f..055ad90259 100644 --- a/litellm/integrations/argilla.py +++ b/litellm/integrations/argilla.py @@ -6,14 +6,9 @@ import asyncio import json import os import random -import time -import traceback import types -import uuid -from datetime import datetime, timezone -from typing import Any, Dict, List, Optional, TypedDict, Union +from typing import Any, Dict, List, Optional -import dotenv # type: ignore import httpx from pydantic import BaseModel # type: ignore @@ -21,11 +16,7 @@ import litellm from litellm._logging import verbose_logger from litellm.integrations.custom_batch_logger import CustomBatchLogger from litellm.integrations.custom_logger import CustomLogger -from litellm.litellm_core_utils.prompt_templates.common_utils import ( - get_content_from_model_response, -) from litellm.llms.custom_httpx.http_handler import ( - AsyncHTTPHandler, get_async_httpx_client, httpxSpecialProvider, ) @@ -33,7 +24,6 @@ from litellm.types.integrations.argilla import ( SUPPORTED_PAYLOAD_FIELDS, ArgillaCredentialsObject, ArgillaItem, - ArgillaPayload, ) from litellm.types.utils import StandardLoggingPayload diff --git a/litellm/integrations/arize_ai.py b/litellm/integrations/arize_ai.py index acd3f745bd..10c6af69b1 100644 --- a/litellm/integrations/arize_ai.py +++ b/litellm/integrations/arize_ai.py @@ -5,7 +5,7 @@ this file has Arize ai specific helper functions """ import json -from typing import TYPE_CHECKING, Any, Optional, Union +from typing import TYPE_CHECKING, Any, Optional from litellm._logging import verbose_logger @@ -30,7 +30,6 @@ class ArizeLogger: def set_arize_ai_attributes(span: Span, kwargs, response_obj): from litellm.integrations._types.open_inference import ( MessageAttributes, - MessageContentAttributes, OpenInferenceSpanKindValues, SpanAttributes, ) diff --git a/litellm/integrations/azure_storage/azure_storage.py b/litellm/integrations/azure_storage/azure_storage.py index 977a253f69..ddc46b117f 100644 --- a/litellm/integrations/azure_storage/azure_storage.py +++ b/litellm/integrations/azure_storage/azure_storage.py @@ -3,23 +3,8 @@ import json import os import uuid from datetime import datetime, timedelta -from re import S, T -from typing import ( - TYPE_CHECKING, - Any, - Callable, - Dict, - List, - Optional, - Tuple, - TypedDict, - Union, -) +from typing import List, Optional -import httpx -from pydantic import BaseModel, Field - -import litellm from litellm._logging import verbose_logger from litellm.constants import AZURE_STORAGE_MSFT_VERSION from litellm.integrations.custom_batch_logger import CustomBatchLogger diff --git a/litellm/integrations/braintrust_logging.py b/litellm/integrations/braintrust_logging.py index 6de6910937..8a4273d68a 100644 --- a/litellm/integrations/braintrust_logging.py +++ b/litellm/integrations/braintrust_logging.py @@ -2,15 +2,10 @@ ## Log success + failure events to Braintrust import copy -import json import os -import threading -import traceback -import uuid from datetime import datetime -from typing import Literal, Optional +from typing import Optional -import dotenv import httpx from pydantic import BaseModel @@ -18,12 +13,11 @@ import litellm from litellm import verbose_logger from litellm.integrations.custom_logger import CustomLogger from litellm.llms.custom_httpx.http_handler import ( - AsyncHTTPHandler, HTTPHandler, get_async_httpx_client, httpxSpecialProvider, ) -from litellm.utils import get_formatted_prompt, print_verbose +from litellm.utils import print_verbose global_braintrust_http_handler = get_async_httpx_client( llm_provider=httpxSpecialProvider.LoggingCallback diff --git a/litellm/integrations/custom_batch_logger.py b/litellm/integrations/custom_batch_logger.py index 292c836b31..9fc3c32982 100644 --- a/litellm/integrations/custom_batch_logger.py +++ b/litellm/integrations/custom_batch_logger.py @@ -6,7 +6,7 @@ Use this if you want your logs to be stored in memory and flushed periodically import asyncio import time -from typing import List, Literal, Optional +from typing import List, Optional import litellm from litellm._logging import verbose_logger diff --git a/litellm/integrations/custom_guardrail.py b/litellm/integrations/custom_guardrail.py index 816b024c72..39f762533d 100644 --- a/litellm/integrations/custom_guardrail.py +++ b/litellm/integrations/custom_guardrail.py @@ -1,4 +1,4 @@ -from typing import List, Literal, Optional +from typing import List, Optional from litellm._logging import verbose_logger from litellm.integrations.custom_logger import CustomLogger diff --git a/litellm/integrations/custom_logger.py b/litellm/integrations/custom_logger.py index b714936920..dac9532486 100644 --- a/litellm/integrations/custom_logger.py +++ b/litellm/integrations/custom_logger.py @@ -1,18 +1,14 @@ #### What this does #### # On success, logs events to Promptlayer -import os import traceback -from datetime import datetime as datetimeObj from typing import TYPE_CHECKING, Any, List, Literal, Optional, Tuple, Union -import dotenv from pydantic import BaseModel from litellm.caching.caching import DualCache from litellm.proxy._types import UserAPIKeyAuth from litellm.types.integrations.argilla import ArgillaItem from litellm.types.llms.openai import AllMessageValues, ChatCompletionRequest -from litellm.types.services import ServiceLoggerPayload from litellm.types.utils import ( AdapterCompletionStreamWrapper, EmbeddingResponse, diff --git a/litellm/integrations/datadog/datadog.py b/litellm/integrations/datadog/datadog.py index 113600a95a..315a35c833 100644 --- a/litellm/integrations/datadog/datadog.py +++ b/litellm/integrations/datadog/datadog.py @@ -16,11 +16,10 @@ For batching specific details see CustomBatchLogger class import asyncio import datetime import os -import sys import traceback import uuid from datetime import datetime as datetimeObj -from typing import Any, Dict, List, Optional, Union +from typing import Any, List, Optional, Union from httpx import Response @@ -32,7 +31,6 @@ from litellm.llms.custom_httpx.http_handler import ( get_async_httpx_client, httpxSpecialProvider, ) -from litellm.proxy._types import UserAPIKeyAuth from litellm.types.integrations.datadog import * from litellm.types.services import ServiceLoggerPayload from litellm.types.utils import StandardLoggingPayload diff --git a/litellm/integrations/datadog/datadog_llm_obs.py b/litellm/integrations/datadog/datadog_llm_obs.py index 9666c45814..6b7aa43546 100644 --- a/litellm/integrations/datadog/datadog_llm_obs.py +++ b/litellm/integrations/datadog/datadog_llm_obs.py @@ -8,12 +8,9 @@ API Reference: https://docs.datadoghq.com/llm_observability/setup/api/?tab=examp import asyncio import os -import traceback import uuid from datetime import datetime -from typing import Any, Dict, List, Optional, Union - -from httpx import Response +from typing import Any, Dict, List, Optional import litellm from litellm._logging import verbose_logger diff --git a/litellm/integrations/dynamodb.py b/litellm/integrations/dynamodb.py index 5257020b44..2c527ea8aa 100644 --- a/litellm/integrations/dynamodb.py +++ b/litellm/integrations/dynamodb.py @@ -1,14 +1,11 @@ #### What this does #### # On success + failure, log events to Supabase -import datetime import os import traceback import uuid from typing import Any -import dotenv - import litellm diff --git a/litellm/integrations/email_alerting.py b/litellm/integrations/email_alerting.py index c626c7efc8..b45b9aa7f5 100644 --- a/litellm/integrations/email_alerting.py +++ b/litellm/integrations/email_alerting.py @@ -2,7 +2,6 @@ Functions for sending Email Alerts """ -import asyncio import os from typing import List, Optional @@ -20,7 +19,7 @@ async def get_all_team_member_emails(team_id: Optional[str] = None) -> list: ) if team_id is None: return [] - from litellm.proxy.proxy_server import premium_user, prisma_client + from litellm.proxy.proxy_server import prisma_client if prisma_client is None: raise Exception("Not connected to DB!") @@ -72,7 +71,6 @@ async def send_team_budget_alert(webhook_event: WebhookEvent) -> bool: Send an Email Alert to All Team Members when the Team Budget is crossed Returns -> True if sent, False if not. """ - from litellm.proxy.proxy_server import premium_user, prisma_client from litellm.proxy.utils import send_email _team_id = webhook_event.team_id diff --git a/litellm/integrations/galileo.py b/litellm/integrations/galileo.py index 11dde2d535..e99d5f23a4 100644 --- a/litellm/integrations/galileo.py +++ b/litellm/integrations/galileo.py @@ -1,15 +1,12 @@ import os -from datetime import datetime from typing import Any, Dict, List, Optional -import httpx from pydantic import BaseModel, Field import litellm from litellm._logging import verbose_logger from litellm.integrations.custom_logger import CustomLogger from litellm.llms.custom_httpx.http_handler import ( - _get_httpx_client, get_async_httpx_client, httpxSpecialProvider, ) diff --git a/litellm/integrations/gcs_bucket/gcs_bucket.py b/litellm/integrations/gcs_bucket/gcs_bucket.py index b9de271b59..0c59d0c93c 100644 --- a/litellm/integrations/gcs_bucket/gcs_bucket.py +++ b/litellm/integrations/gcs_bucket/gcs_bucket.py @@ -1,27 +1,14 @@ import asyncio -import json import os import uuid from datetime import datetime -from re import S -from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, TypedDict, Union +from typing import TYPE_CHECKING, Any, Dict, List, Optional -import httpx -from pydantic import BaseModel, Field - -import litellm from litellm._logging import verbose_logger -from litellm.integrations.custom_batch_logger import CustomBatchLogger -from litellm.integrations.custom_logger import CustomLogger from litellm.integrations.gcs_bucket.gcs_bucket_base import GCSBucketBase -from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler -from litellm.proxy._types import CommonProxyErrors, SpendLogsMetadata, SpendLogsPayload +from litellm.proxy._types import CommonProxyErrors from litellm.types.integrations.gcs_bucket import * -from litellm.types.utils import ( - StandardCallbackDynamicParams, - StandardLoggingMetadata, - StandardLoggingPayload, -) +from litellm.types.utils import StandardLoggingPayload if TYPE_CHECKING: from litellm.llms.vertex_ai.vertex_llm_base import VertexBase diff --git a/litellm/integrations/gcs_bucket/gcs_bucket_base.py b/litellm/integrations/gcs_bucket/gcs_bucket_base.py index 3bec1c6b9f..66995d8482 100644 --- a/litellm/integrations/gcs_bucket/gcs_bucket_base.py +++ b/litellm/integrations/gcs_bucket/gcs_bucket_base.py @@ -1,13 +1,7 @@ import json import os -import uuid -from datetime import datetime -from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, TypedDict, Union +from typing import TYPE_CHECKING, Any, Dict, Optional, Tuple, Union -import httpx -from pydantic import BaseModel, Field - -import litellm from litellm._logging import verbose_logger from litellm.integrations.custom_batch_logger import CustomBatchLogger from litellm.llms.custom_httpx.http_handler import ( @@ -15,11 +9,7 @@ from litellm.llms.custom_httpx.http_handler import ( httpxSpecialProvider, ) from litellm.types.integrations.gcs_bucket import * -from litellm.types.utils import ( - StandardCallbackDynamicParams, - StandardLoggingMetadata, - StandardLoggingPayload, -) +from litellm.types.utils import StandardCallbackDynamicParams, StandardLoggingPayload if TYPE_CHECKING: from litellm.llms.vertex_ai.vertex_llm_base import VertexBase @@ -190,9 +180,7 @@ class GCSBucketBase(CustomBatchLogger): This function is used to get the Vertex instance for the GCS Bucket Logger. It checks if the Vertex instance is already created and cached, if not it creates a new instance and caches it. """ - from litellm.llms.vertex_ai.vertex_llm_base import ( - VertexBase, - ) + from litellm.llms.vertex_ai.vertex_llm_base import VertexBase _in_memory_key = self._get_in_memory_key_for_vertex_instance(credentials) if _in_memory_key not in self.vertex_instances: diff --git a/litellm/integrations/helicone.py b/litellm/integrations/helicone.py index 013bf3c6cd..a526a74fbe 100644 --- a/litellm/integrations/helicone.py +++ b/litellm/integrations/helicone.py @@ -3,10 +3,7 @@ import os import traceback -import dotenv - import litellm -from litellm._logging import verbose_logger class HeliconeLogger: diff --git a/litellm/integrations/lago.py b/litellm/integrations/lago.py index c473bfeefd..5dfb1ce097 100644 --- a/litellm/integrations/lago.py +++ b/litellm/integrations/lago.py @@ -3,11 +3,9 @@ import json import os -import traceback import uuid from typing import Literal, Optional -import dotenv import httpx import litellm diff --git a/litellm/integrations/langfuse/langfuse.py b/litellm/integrations/langfuse/langfuse.py index 047f213b7e..888fcde887 100644 --- a/litellm/integrations/langfuse/langfuse.py +++ b/litellm/integrations/langfuse/langfuse.py @@ -3,7 +3,6 @@ import copy import os import traceback -import types from collections.abc import MutableMapping, MutableSequence, MutableSet from typing import TYPE_CHECKING, Any, Dict, Optional, cast diff --git a/litellm/integrations/langfuse/langfuse_handler.py b/litellm/integrations/langfuse/langfuse_handler.py index 6377bab29d..e3ce736b54 100644 --- a/litellm/integrations/langfuse/langfuse_handler.py +++ b/litellm/integrations/langfuse/langfuse_handler.py @@ -6,11 +6,8 @@ Used to get the LangFuseLogger for a given request Handles Key/Team Based Langfuse Logging """ -import os from typing import TYPE_CHECKING, Any, Dict, Optional -from packaging.version import Version - from litellm.litellm_core_utils.litellm_logging import StandardCallbackDynamicParams from .langfuse import LangFuseLogger, LangfuseLoggingConfig diff --git a/litellm/integrations/langsmith.py b/litellm/integrations/langsmith.py index 4c5ec17fc8..b727c69e03 100644 --- a/litellm/integrations/langsmith.py +++ b/litellm/integrations/langsmith.py @@ -3,14 +3,12 @@ import asyncio import os import random -import time import traceback import types import uuid from datetime import datetime, timezone -from typing import Any, Dict, List, Optional, TypedDict, Union +from typing import Any, Dict, List, Optional -import dotenv # type: ignore import httpx from pydantic import BaseModel # type: ignore @@ -18,7 +16,6 @@ import litellm from litellm._logging import verbose_logger from litellm.integrations.custom_batch_logger import CustomBatchLogger from litellm.llms.custom_httpx.http_handler import ( - AsyncHTTPHandler, get_async_httpx_client, httpxSpecialProvider, ) diff --git a/litellm/integrations/langtrace.py b/litellm/integrations/langtrace.py index f5dcfacdf7..51cd272ff1 100644 --- a/litellm/integrations/langtrace.py +++ b/litellm/integrations/langtrace.py @@ -1,9 +1,7 @@ -import traceback import json -from litellm.integrations.custom_logger import CustomLogger -from litellm.proxy._types import SpanAttributes +from typing import TYPE_CHECKING, Any -from typing import TYPE_CHECKING, Any, Optional, Union +from litellm.proxy._types import SpanAttributes if TYPE_CHECKING: from opentelemetry.trace import Span as _Span diff --git a/litellm/integrations/openmeter.py b/litellm/integrations/openmeter.py index b1621afc75..ebfed5323b 100644 --- a/litellm/integrations/openmeter.py +++ b/litellm/integrations/openmeter.py @@ -3,17 +3,12 @@ import json import os -import traceback -import uuid -import dotenv import httpx import litellm -from litellm import verbose_logger from litellm.integrations.custom_logger import CustomLogger from litellm.llms.custom_httpx.http_handler import ( - AsyncHTTPHandler, HTTPHandler, get_async_httpx_client, httpxSpecialProvider, diff --git a/litellm/integrations/opentelemetry.py b/litellm/integrations/opentelemetry.py index 7ba86164fe..45afb9d71e 100644 --- a/litellm/integrations/opentelemetry.py +++ b/litellm/integrations/opentelemetry.py @@ -1,7 +1,6 @@ import os from dataclasses import dataclass from datetime import datetime -from functools import wraps from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union import litellm @@ -10,10 +9,7 @@ from litellm.integrations.custom_logger import CustomLogger from litellm.types.services import ServiceLoggerPayload from litellm.types.utils import ( ChatCompletionMessageToolCall, - EmbeddingResponse, Function, - ImageResponse, - ModelResponse, StandardLoggingPayload, ) @@ -139,7 +135,6 @@ class OpenTelemetry(CustomLogger): end_time: Optional[Union[datetime, float]] = None, event_metadata: Optional[dict] = None, ): - from datetime import datetime from opentelemetry import trace from opentelemetry.trace import Status, StatusCode @@ -201,7 +196,6 @@ class OpenTelemetry(CustomLogger): end_time: Optional[Union[float, datetime]] = None, event_metadata: Optional[dict] = None, ): - from datetime import datetime from opentelemetry import trace from opentelemetry.trace import Status, StatusCode @@ -666,7 +660,6 @@ class OpenTelemetry(CustomLogger): span.set_attribute(key, primitive_value) def set_raw_request_attributes(self, span: Span, kwargs, response_obj): - from litellm.proxy._types import SpanAttributes kwargs.get("optional_params", {}) litellm_params = kwargs.get("litellm_params", {}) or {} @@ -834,7 +827,6 @@ class OpenTelemetry(CustomLogger): logging_payload: ManagementEndpointLoggingPayload, parent_otel_span: Optional[Span] = None, ): - from datetime import datetime from opentelemetry import trace from opentelemetry.trace import Status, StatusCode @@ -889,7 +881,6 @@ class OpenTelemetry(CustomLogger): logging_payload: ManagementEndpointLoggingPayload, parent_otel_span: Optional[Span] = None, ): - from datetime import datetime from opentelemetry import trace from opentelemetry.trace import Status, StatusCode diff --git a/litellm/integrations/opik/utils.py b/litellm/integrations/opik/utils.py index f4671026ee..7b3b64dcf3 100644 --- a/litellm/integrations/opik/utils.py +++ b/litellm/integrations/opik/utils.py @@ -3,8 +3,6 @@ import os import time from typing import Dict, Final, List, Optional -from litellm.types.utils import ModelResponse - CONFIG_FILE_PATH_DEFAULT: Final[str] = "~/.opik.config" diff --git a/litellm/integrations/prometheus.py b/litellm/integrations/prometheus.py index c3d81f13e8..569d9daaf0 100644 --- a/litellm/integrations/prometheus.py +++ b/litellm/integrations/prometheus.py @@ -1,15 +1,10 @@ # used for /metrics endpoint on LiteLLM Proxy #### What this does #### # On success, log events to Prometheus -import os -import subprocess import sys -import traceback -import uuid -from datetime import date, datetime, timedelta -from typing import Optional, TypedDict, Union +from datetime import datetime, timedelta +from typing import Optional -import litellm from litellm._logging import print_verbose, verbose_logger from litellm.integrations.custom_logger import CustomLogger from litellm.proxy._types import UserAPIKeyAuth diff --git a/litellm/integrations/prometheus_helpers/prometheus_api.py b/litellm/integrations/prometheus_helpers/prometheus_api.py index c599390198..b25da57723 100644 --- a/litellm/integrations/prometheus_helpers/prometheus_api.py +++ b/litellm/integrations/prometheus_helpers/prometheus_api.py @@ -2,13 +2,10 @@ Helper functions to query prometheus API """ -import asyncio -import os import time from datetime import datetime, timedelta from typing import Optional -import litellm from litellm import get_secret from litellm._logging import verbose_logger from litellm.llms.custom_httpx.http_handler import ( diff --git a/litellm/integrations/prometheus_services.py b/litellm/integrations/prometheus_services.py index 407a8e698b..cea606c245 100644 --- a/litellm/integrations/prometheus_services.py +++ b/litellm/integrations/prometheus_services.py @@ -3,15 +3,8 @@ # On success + failure, log events to Prometheus for litellm / adjacent services (litellm, redis, postgres, llm api providers) -import datetime -import os -import subprocess -import sys -import traceback -import uuid from typing import List, Optional, Union -import litellm from litellm._logging import print_verbose, verbose_logger from litellm.types.integrations.prometheus import LATENCY_BUCKETS from litellm.types.services import ServiceLoggerPayload, ServiceTypes diff --git a/litellm/integrations/s3.py b/litellm/integrations/s3.py index 1f82406e10..bcc59c416f 100644 --- a/litellm/integrations/s3.py +++ b/litellm/integrations/s3.py @@ -1,12 +1,6 @@ #### What this does #### # On success + failure, log events to Supabase -import datetime -import os -import subprocess -import sys -import traceback -import uuid from typing import Optional import litellm diff --git a/litellm/integrations/supabase.py b/litellm/integrations/supabase.py index 7f64e0ff12..7eb007f813 100644 --- a/litellm/integrations/supabase.py +++ b/litellm/integrations/supabase.py @@ -1,14 +1,11 @@ #### What this does #### # On success + failure, log events to Supabase -import datetime import os import subprocess import sys import traceback -import dotenv - import litellm diff --git a/litellm/integrations/traceloop.py b/litellm/integrations/traceloop.py index 06ba4b7f70..b4f3905c8e 100644 --- a/litellm/integrations/traceloop.py +++ b/litellm/integrations/traceloop.py @@ -1,6 +1,5 @@ import traceback -import litellm from litellm._logging import verbose_logger @@ -12,9 +11,7 @@ class TraceloopLogger: def __init__(self): try: - from opentelemetry.sdk.trace.export import ConsoleSpanExporter from traceloop.sdk import Traceloop - from traceloop.sdk.instruments import Instruments from traceloop.sdk.tracing.tracing import TracerWrapper except ModuleNotFoundError as e: verbose_logger.error( @@ -39,7 +36,6 @@ class TraceloopLogger: level="DEFAULT", status_message=None, ): - from opentelemetry import trace from opentelemetry.semconv.ai import SpanAttributes from opentelemetry.trace import SpanKind, Status, StatusCode @@ -78,7 +74,7 @@ class TraceloopLogger: ) if "top_p" in optional_params: span.set_attribute( - SpanAttributes.LLM_TOP_P, optional_params.get("top_p") + SpanAttributes.LLM_REQUEST_TOP_P, optional_params.get("top_p") ) if "tools" in optional_params or "functions" in optional_params: span.set_attribute( diff --git a/litellm/integrations/weights_biases.py b/litellm/integrations/weights_biases.py index f835eb93e7..5fcbab04b3 100644 --- a/litellm/integrations/weights_biases.py +++ b/litellm/integrations/weights_biases.py @@ -173,16 +173,14 @@ except Exception: #### What this does #### # On success, logs events to Langfuse -import os import traceback -from datetime import datetime class WeightsBiasesLogger: # Class variables or attributes def __init__(self): try: - import wandb + pass except Exception: raise Exception( "\033[91m wandb not installed, try running 'pip install wandb' to fix this error\033[0m" diff --git a/litellm/litellm_core_utils/asyncify.py b/litellm/litellm_core_utils/asyncify.py index 1dbc08f504..5181236e94 100644 --- a/litellm/litellm_core_utils/asyncify.py +++ b/litellm/litellm_core_utils/asyncify.py @@ -3,7 +3,6 @@ from typing import Awaitable, Callable, Optional import anyio import anyio.to_thread -from anyio import to_thread from typing_extensions import ParamSpec, TypeVar T_ParamSpec = ParamSpec("T_ParamSpec") diff --git a/litellm/litellm_core_utils/core_helpers.py b/litellm/litellm_core_utils/core_helpers.py index 816dff81ee..bf11205f6d 100644 --- a/litellm/litellm_core_utils/core_helpers.py +++ b/litellm/litellm_core_utils/core_helpers.py @@ -1,7 +1,6 @@ # What is this? ## Helper utilities -import os -from typing import TYPE_CHECKING, Any, List, Literal, Optional, Tuple, Union +from typing import TYPE_CHECKING, Any, Optional, Union import httpx diff --git a/litellm/litellm_core_utils/exception_mapping_utils.py b/litellm/litellm_core_utils/exception_mapping_utils.py index 5830821612..32d47368ed 100644 --- a/litellm/litellm_core_utils/exception_mapping_utils.py +++ b/litellm/litellm_core_utils/exception_mapping_utils.py @@ -1,6 +1,4 @@ import json -import os -import threading import traceback from typing import Optional @@ -14,17 +12,14 @@ from ..exceptions import ( APIError, AuthenticationError, BadRequestError, - BudgetExceededError, ContentPolicyViolationError, ContextWindowExceededError, NotFoundError, - OpenAIError, PermissionDeniedError, RateLimitError, ServiceUnavailableError, Timeout, UnprocessableEntityError, - UnsupportedParamsError, ) diff --git a/litellm/litellm_core_utils/get_llm_provider_logic.py b/litellm/litellm_core_utils/get_llm_provider_logic.py index 8039dfb289..4583dc2107 100644 --- a/litellm/litellm_core_utils/get_llm_provider_logic.py +++ b/litellm/litellm_core_utils/get_llm_provider_logic.py @@ -3,7 +3,6 @@ from typing import Optional, Tuple import httpx import litellm -from litellm._logging import verbose_logger from litellm.secret_managers.main import get_secret, get_secret_str from ..types.router import LiteLLM_Params diff --git a/litellm/litellm_core_utils/litellm_logging.py b/litellm/litellm_core_utils/litellm_logging.py index 3fca34aa39..725ba5e890 100644 --- a/litellm/litellm_core_utils/litellm_logging.py +++ b/litellm/litellm_core_utils/litellm_logging.py @@ -24,7 +24,7 @@ from litellm import ( turn_off_message_logging, verbose_logger, ) -from litellm.caching.caching import DualCache, InMemoryCache, S3Cache +from litellm.caching.caching import DualCache, InMemoryCache from litellm.caching.caching_handler import LLMCachingHandler from litellm.cost_calculator import _select_model_name_for_cost_calc from litellm.integrations.custom_guardrail import CustomGuardrail @@ -34,7 +34,6 @@ from litellm.litellm_core_utils.redact_messages import ( redact_message_input_output_from_custom_logger, redact_message_input_output_from_logging, ) -from litellm.proxy._types import CommonProxyErrors from litellm.types.llms.openai import HttpxBinaryResponseContent from litellm.types.rerank import RerankResponse from litellm.types.router import SPECIAL_MODEL_INFO_PARAMS @@ -53,16 +52,11 @@ from litellm.types.utils import ( StandardLoggingPayload, StandardLoggingPayloadErrorInformation, StandardLoggingPayloadStatus, - StandardPassThroughResponseObject, TextCompletionResponse, TranscriptionResponse, Usage, ) -from litellm.utils import ( - _get_base_model_from_metadata, - print_verbose, - prompt_token_calculator, -) +from litellm.utils import _get_base_model_from_metadata, print_verbose from ..integrations.argilla import ArgillaLogger from ..integrations.arize_ai import ArizeLogger @@ -87,14 +81,12 @@ from ..integrations.lunary import LunaryLogger from ..integrations.openmeter import OpenMeterLogger from ..integrations.opik.opik import OpikLogger from ..integrations.prometheus import PrometheusLogger -from ..integrations.prometheus_services import PrometheusServicesLogger from ..integrations.prompt_layer import PromptLayerLogger from ..integrations.s3 import S3Logger from ..integrations.supabase import Supabase from ..integrations.traceloop import TraceloopLogger from ..integrations.weights_biases import WeightsBiasesLogger from .exception_mapping_utils import _get_response_headers -from .llm_response_utils.get_formatted_prompt import get_formatted_prompt from .logging_utils import _assemble_complete_response_from_streaming_chunks try: diff --git a/litellm/litellm_core_utils/llm_cost_calc/google.py b/litellm/litellm_core_utils/llm_cost_calc/google.py index cad907cd60..95c79819b7 100644 --- a/litellm/litellm_core_utils/llm_cost_calc/google.py +++ b/litellm/litellm_core_utils/llm_cost_calc/google.py @@ -1,7 +1,6 @@ # What is this? ## Cost calculation for Google AI Studio / Vertex AI models -import traceback -from typing import List, Literal, Optional, Tuple, Union +from typing import Literal, Optional, Tuple, Union import litellm from litellm import verbose_logger diff --git a/litellm/litellm_core_utils/llm_cost_calc/utils.py b/litellm/litellm_core_utils/llm_cost_calc/utils.py index 631682a984..809c942639 100644 --- a/litellm/litellm_core_utils/llm_cost_calc/utils.py +++ b/litellm/litellm_core_utils/llm_cost_calc/utils.py @@ -1,8 +1,7 @@ # What is this? ## Helper utilities for cost_per_token() -import traceback -from typing import List, Literal, Optional, Tuple +from typing import Optional, Tuple import litellm from litellm import verbose_logger diff --git a/litellm/litellm_core_utils/mock_functions.py b/litellm/litellm_core_utils/mock_functions.py index 76425651aa..a6e560c751 100644 --- a/litellm/litellm_core_utils/mock_functions.py +++ b/litellm/litellm_core_utils/mock_functions.py @@ -1,16 +1,6 @@ from typing import List, Optional -from ..types.utils import ( - Categories, - CategoryAppliedInputTypes, - CategoryScores, - Embedding, - EmbeddingResponse, - ImageObject, - ImageResponse, - Moderation, - ModerationCreateResponse, -) +from ..types.utils import Embedding, EmbeddingResponse, ImageObject, ImageResponse def mock_embedding(model: str, mock_response: Optional[List[float]]): diff --git a/litellm/litellm_core_utils/prompt_templates/common_utils.py b/litellm/litellm_core_utils/prompt_templates/common_utils.py index 370258a667..6ce8faa5c6 100644 --- a/litellm/litellm_core_utils/prompt_templates/common_utils.py +++ b/litellm/litellm_core_utils/prompt_templates/common_utils.py @@ -2,15 +2,11 @@ Common utility functions used for translating messages across providers """ -import json -from copy import deepcopy from typing import Dict, List, Literal, Optional, Union, cast -import litellm from litellm.types.llms.openai import ( AllMessageValues, ChatCompletionAssistantMessage, - ChatCompletionResponseMessage, ChatCompletionUserMessage, ) from litellm.types.utils import Choices, ModelResponse, StreamingChoices diff --git a/litellm/litellm_core_utils/prompt_templates/factory.py b/litellm/litellm_core_utils/prompt_templates/factory.py index 71de4398a0..d05e649544 100644 --- a/litellm/litellm_core_utils/prompt_templates/factory.py +++ b/litellm/litellm_core_utils/prompt_templates/factory.py @@ -5,19 +5,8 @@ import traceback import uuid import xml.etree.ElementTree as ET from enum import Enum -from typing import ( - Any, - List, - Mapping, - MutableMapping, - Optional, - Sequence, - Tuple, - cast, - overload, -) +from typing import Any, List, Optional, Tuple, cast, overload -from jinja2 import BaseLoader, Template, exceptions, meta from jinja2.sandbox import ImmutableSandboxedEnvironment import litellm @@ -25,14 +14,6 @@ import litellm.types import litellm.types.llms from litellm import verbose_logger from litellm.llms.custom_httpx.http_handler import HTTPHandler -from litellm.types.completion import ( - ChatCompletionFunctionMessageParam, - ChatCompletionMessageParam, - ChatCompletionMessageToolCallParam, - ChatCompletionSystemMessageParam, - ChatCompletionToolMessageParam, - ChatCompletionUserMessageParam, -) from litellm.types.llms.anthropic import * from litellm.types.llms.bedrock import MessageBlock as BedrockMessageBlock from litellm.types.llms.ollama import OllamaVisionModelObject @@ -42,7 +23,6 @@ from litellm.types.llms.openai import ( ChatCompletionAssistantToolCall, ChatCompletionFunctionMessage, ChatCompletionImageObject, - ChatCompletionImageUrlObject, ChatCompletionTextObject, ChatCompletionToolCallFunctionChunk, ChatCompletionToolMessage, @@ -55,7 +35,7 @@ from litellm.types.llms.vertex_ai import PartType as VertexPartType from litellm.types.utils import GenericImageParsingChunk from .common_utils import convert_content_list_to_str, is_non_content_values_set -from .image_handling import async_convert_url_to_base64, convert_url_to_base64 +from .image_handling import convert_url_to_base64 def default_pt(messages): @@ -2109,7 +2089,7 @@ def gemini_text_image_pt(messages: list): } """ try: - import google.generativeai as genai # type: ignore + pass # type: ignore except Exception: raise Exception( "Importing google.generativeai failed, please run 'pip install -q google-generativeai" @@ -2175,10 +2155,6 @@ from litellm.types.llms.bedrock import DocumentBlock as BedrockDocumentBlock from litellm.types.llms.bedrock import ImageBlock as BedrockImageBlock from litellm.types.llms.bedrock import SourceBlock as BedrockSourceBlock from litellm.types.llms.bedrock import ToolBlock as BedrockToolBlock -from litellm.types.llms.bedrock import ( - ToolChoiceValuesBlock as BedrockToolChoiceValuesBlock, -) -from litellm.types.llms.bedrock import ToolConfigBlock as BedrockToolConfigBlock from litellm.types.llms.bedrock import ( ToolInputSchemaBlock as BedrockToolInputSchemaBlock, ) @@ -2225,7 +2201,6 @@ def _process_bedrock_converse_image_block( ) -> BedrockContentBlock: if "base64" in image_url: # Case 1: Images with base64 encoding - import base64 import re # base 64 is passed as data:image/jpeg;base64, diff --git a/litellm/litellm_core_utils/prompt_templates/image_handling.py b/litellm/litellm_core_utils/prompt_templates/image_handling.py index d9d7c5383c..a9ff14d6c8 100644 --- a/litellm/litellm_core_utils/prompt_templates/image_handling.py +++ b/litellm/litellm_core_utils/prompt_templates/image_handling.py @@ -9,10 +9,6 @@ from httpx import Response import litellm from litellm import verbose_logger from litellm.caching.caching import InMemoryCache -from litellm.llms.custom_httpx.http_handler import ( - _get_httpx_client, - get_async_httpx_client, -) MAX_IMGS_IN_MEMORY = 10 diff --git a/litellm/litellm_core_utils/realtime_streaming.py b/litellm/litellm_core_utils/realtime_streaming.py index 440deac1cc..aebd049692 100644 --- a/litellm/litellm_core_utils/realtime_streaming.py +++ b/litellm/litellm_core_utils/realtime_streaming.py @@ -27,8 +27,6 @@ async with websockets.connect( # type: ignore import asyncio import concurrent.futures import json -import traceback -from asyncio import Task from typing import Any, Dict, List, Optional, Union import litellm diff --git a/litellm/litellm_core_utils/streaming_chunk_builder_utils.py b/litellm/litellm_core_utils/streaming_chunk_builder_utils.py index 2c6ad53fbc..7d28c15669 100644 --- a/litellm/litellm_core_utils/streaming_chunk_builder_utils.py +++ b/litellm/litellm_core_utils/streaming_chunk_builder_utils.py @@ -2,12 +2,9 @@ import base64 import time from typing import Any, Dict, List, Optional, Union -from litellm.exceptions import APIError from litellm.types.llms.openai import ( ChatCompletionAssistantContentValue, ChatCompletionAudioDelta, - ChatCompletionToolCallChunk, - ChatCompletionToolCallFunctionChunk, ) from litellm.types.utils import ( ChatCompletionAudioResponse, diff --git a/litellm/litellm_core_utils/streaming_handler.py b/litellm/litellm_core_utils/streaming_handler.py index b4fe4cbee5..30a34e76a8 100644 --- a/litellm/litellm_core_utils/streaming_handler.py +++ b/litellm/litellm_core_utils/streaming_handler.py @@ -12,10 +12,7 @@ from pydantic import BaseModel import litellm from litellm import verbose_logger -from litellm.litellm_core_utils.redact_messages import ( - LiteLLMLoggingObject, - redact_message_input_output_from_logging, -) +from litellm.litellm_core_utils.redact_messages import LiteLLMLoggingObject from litellm.types.utils import Delta from litellm.types.utils import GenericStreamingChunk as GChunk from litellm.types.utils import ( @@ -27,7 +24,6 @@ from litellm.types.utils import ( from ..exceptions import OpenAIError from .core_helpers import map_finish_reason, process_response_headers -from .default_encoding import encoding from .exception_mapping_utils import exception_type from .llm_response_utils.get_api_base import get_api_base from .rules import Rules diff --git a/litellm/llms/ai21/chat/transformation.py b/litellm/llms/ai21/chat/transformation.py index 06f87a6fe4..1a07b50de5 100644 --- a/litellm/llms/ai21/chat/transformation.py +++ b/litellm/llms/ai21/chat/transformation.py @@ -4,7 +4,6 @@ AI21 Chat Completions API this is OpenAI compatible - no translation needed / occurs """ -import types from typing import Optional, Union from ...openai_like.chat.transformation import OpenAILikeChatConfig diff --git a/litellm/llms/anthropic/chat/handler.py b/litellm/llms/anthropic/chat/handler.py index f7df3b01c6..36fc45095f 100644 --- a/litellm/llms/anthropic/chat/handler.py +++ b/litellm/llms/anthropic/chat/handler.py @@ -4,31 +4,22 @@ Calling + translation logic for anthropic's `/v1/messages` endpoint import copy import json -import os -import time -import traceback -import types -from enum import Enum -from functools import partial -from typing import Any, Callable, Dict, List, Literal, Optional, Tuple, Union +from typing import Any, Callable, List, Optional, Tuple, Union import httpx # type: ignore -from openai.types.chat.chat_completion_chunk import Choice as OpenAIStreamingChoice import litellm import litellm.litellm_core_utils import litellm.types import litellm.types.utils -from litellm import LlmProviders, verbose_logger +from litellm import LlmProviders from litellm.litellm_core_utils.core_helpers import map_finish_reason from litellm.llms.custom_httpx.http_handler import ( AsyncHTTPHandler, HTTPHandler, - _get_httpx_client, get_async_httpx_client, ) from litellm.types.llms.anthropic import ( - AllAnthropicToolsValues, AnthropicChatCompletionUsageBlock, ContentBlockDelta, ContentBlockStart, @@ -38,9 +29,7 @@ from litellm.types.llms.anthropic import ( UsageDelta, ) from litellm.types.llms.openai import ( - AllMessageValues, ChatCompletionToolCallChunk, - ChatCompletionToolCallFunctionChunk, ChatCompletionUsageBlock, ) from litellm.types.utils import GenericStreamingChunk diff --git a/litellm/llms/anthropic/chat/transformation.py b/litellm/llms/anthropic/chat/transformation.py index b3328e048e..fa8a6cee1d 100644 --- a/litellm/llms/anthropic/chat/transformation.py +++ b/litellm/llms/anthropic/chat/transformation.py @@ -1,19 +1,6 @@ import json import time -import types -from re import A -from typing import ( - TYPE_CHECKING, - Any, - Callable, - Dict, - List, - Literal, - Optional, - Tuple, - Union, - cast, -) +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union, cast import httpx @@ -27,8 +14,6 @@ from litellm.types.llms.anthropic import ( AnthropicComputerTool, AnthropicHostedTools, AnthropicInputSchema, - AnthropicMessageRequestBase, - AnthropicMessagesRequest, AnthropicMessagesTool, AnthropicMessagesToolChoice, AnthropicSystemMessageContent, @@ -40,18 +25,10 @@ from litellm.types.llms.openai import ( ChatCompletionToolCallChunk, ChatCompletionToolCallFunctionChunk, ChatCompletionToolParam, - ChatCompletionToolParamFunctionChunk, - ChatCompletionUsageBlock, ) from litellm.types.utils import Message as LitellmMessage from litellm.types.utils import PromptTokensDetailsWrapper -from litellm.utils import ( - CustomStreamWrapper, - ModelResponse, - Usage, - add_dummy_tool, - has_tool_call_blocks, -) +from litellm.utils import ModelResponse, Usage, add_dummy_tool, has_tool_call_blocks from ..common_utils import AnthropicError, process_anthropic_headers @@ -132,7 +109,6 @@ class AnthropicConfig(BaseConfig): pdf_used: bool = False, is_vertex_request: bool = False, ) -> dict: - import json betas = [] if prompt_caching_set: diff --git a/litellm/llms/anthropic/completion/transformation.py b/litellm/llms/anthropic/completion/transformation.py index 57cdd95524..a94bac0383 100644 --- a/litellm/llms/anthropic/completion/transformation.py +++ b/litellm/llms/anthropic/completion/transformation.py @@ -6,7 +6,7 @@ Litellm provider slug: `anthropic_text/` import json import time -from typing import Any, AsyncIterator, Dict, Iterator, List, Optional, Union +from typing import AsyncIterator, Dict, Iterator, List, Optional, Union import httpx diff --git a/litellm/llms/anthropic/experimental_pass_through/transformation.py b/litellm/llms/anthropic/experimental_pass_through/transformation.py index 7880827cce..b24cf47ad4 100644 --- a/litellm/llms/anthropic/experimental_pass_through/transformation.py +++ b/litellm/llms/anthropic/experimental_pass_through/transformation.py @@ -1,40 +1,24 @@ import json -import types -from typing import Any, Dict, List, Literal, Optional, Tuple, Union +from typing import List, Literal, Optional, Tuple, Union from openai.types.chat.chat_completion_chunk import Choice as OpenAIStreamingChoice -import litellm -from litellm.litellm_core_utils.prompt_templates.factory import ( - anthropic_messages_pt, - custom_prompt, - prompt_factory, -) -from litellm.litellm_core_utils.streaming_handler import CustomStreamWrapper from litellm.types.llms.anthropic import ( AllAnthropicToolsValues, AnthopicMessagesAssistantMessageParam, - AnthropicChatCompletionUsageBlock, - AnthropicComputerTool, AnthropicFinishReason, - AnthropicHostedTools, AnthropicMessagesRequest, - AnthropicMessagesTool, AnthropicMessagesToolChoice, AnthropicMessagesUserMessageParam, AnthropicResponse, AnthropicResponseContentBlockText, AnthropicResponseContentBlockToolUse, AnthropicResponseUsageBlock, - AnthropicSystemMessageContent, ContentBlockDelta, - ContentBlockStart, - ContentBlockStop, ContentJsonBlockDelta, ContentTextBlockDelta, MessageBlockDelta, MessageDelta, - MessageStartBlock, UsageDelta, ) from litellm.types.llms.openai import ( @@ -44,10 +28,8 @@ from litellm.types.llms.openai import ( ChatCompletionImageObject, ChatCompletionImageUrlObject, ChatCompletionRequest, - ChatCompletionResponseMessage, ChatCompletionSystemMessage, ChatCompletionTextObject, - ChatCompletionToolCallChunk, ChatCompletionToolCallFunctionChunk, ChatCompletionToolChoiceFunctionParam, ChatCompletionToolChoiceObjectParam, @@ -55,13 +37,9 @@ from litellm.types.llms.openai import ( ChatCompletionToolMessage, ChatCompletionToolParam, ChatCompletionToolParamFunctionChunk, - ChatCompletionUsageBlock, ChatCompletionUserMessage, - OpenAIMessageContent, ) -from litellm.types.utils import Choices, GenericStreamingChunk, ModelResponse, Usage - -from ...base import BaseLLM +from litellm.types.utils import Choices, ModelResponse, Usage class AnthropicExperimentalPassThroughConfig: diff --git a/litellm/llms/azure/assistants.py b/litellm/llms/azure/assistants.py index 55f1e8a196..2f67b5506f 100644 --- a/litellm/llms/azure/assistants.py +++ b/litellm/llms/azure/assistants.py @@ -1,13 +1,9 @@ -import uuid -from typing import Any, Callable, Coroutine, Iterable, List, Literal, Optional, Union +from typing import Coroutine, Iterable, Literal, Optional, Union import httpx from openai import AsyncAzureOpenAI, AzureOpenAI from typing_extensions import overload -import litellm -from litellm.types.utils import FileTypes # type: ignore - from ...types.llms.openai import ( Assistant, AssistantEventHandler, diff --git a/litellm/llms/azure/audio_transcriptions.py b/litellm/llms/azure/audio_transcriptions.py index efe183b9b2..94793295ca 100644 --- a/litellm/llms/azure/audio_transcriptions.py +++ b/litellm/llms/azure/audio_transcriptions.py @@ -1,13 +1,11 @@ import uuid -from typing import Any, Optional, Union +from typing import Any, Optional -import httpx from openai import AsyncAzureOpenAI, AzureOpenAI from pydantic import BaseModel import litellm from litellm.litellm_core_utils.audio_utils.utils import get_audio_file_name -from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj from litellm.types.utils import FileTypes from litellm.utils import TranscriptionResponse, convert_to_model_response_object diff --git a/litellm/llms/azure/azure.py b/litellm/llms/azure/azure.py index ffef8007e6..c2be42648c 100644 --- a/litellm/llms/azure/azure.py +++ b/litellm/llms/azure/azure.py @@ -2,12 +2,10 @@ import asyncio import json import os import time -import types -from typing import Any, Callable, Coroutine, Iterable, List, Literal, Optional, Union +from typing import Any, Callable, Coroutine, List, Literal, Optional, Union import httpx # type: ignore from openai import AsyncAzureOpenAI, AzureOpenAI -from typing_extensions import overload import litellm from litellm.caching.caching import DualCache @@ -25,7 +23,6 @@ from litellm.types.utils import ( ) from litellm.utils import ( CustomStreamWrapper, - UnsupportedParamsError, convert_to_model_response_object, get_secret, modify_url, diff --git a/litellm/llms/azure/chat/gpt_transformation.py b/litellm/llms/azure/chat/gpt_transformation.py index d770803eb6..23353ab0c8 100644 --- a/litellm/llms/azure/chat/gpt_transformation.py +++ b/litellm/llms/azure/chat/gpt_transformation.py @@ -1,5 +1,4 @@ -import types -from typing import TYPE_CHECKING, Any, List, Optional, Type, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from httpx._models import Headers, Response diff --git a/litellm/llms/azure/chat/o1_transformation.py b/litellm/llms/azure/chat/o1_transformation.py index 2ba8841d0a..5a15a884e9 100644 --- a/litellm/llms/azure/chat/o1_transformation.py +++ b/litellm/llms/azure/chat/o1_transformation.py @@ -12,12 +12,6 @@ Translations handled by LiteLLM: - Temperature => drop param (if user opts in to dropping param) """ -import types -from typing import Any, List, Optional, Union - -import litellm -from litellm.types.llms.openai import AllMessageValues, ChatCompletionUserMessage - from ...openai.chat.o1_transformation import OpenAIO1Config diff --git a/litellm/llms/azure/common_utils.py b/litellm/llms/azure/common_utils.py index dfcb3d82b9..f374c18cf8 100644 --- a/litellm/llms/azure/common_utils.py +++ b/litellm/llms/azure/common_utils.py @@ -66,11 +66,7 @@ def get_azure_ad_token_from_entrata_id( Returns: callable that returns a bearer token. """ - from azure.identity import ( - ClientSecretCredential, - DefaultAzureCredential, - get_bearer_token_provider, - ) + from azure.identity import ClientSecretCredential, get_bearer_token_provider verbose_logger.debug("Getting Azure AD Token from Entrata ID") diff --git a/litellm/llms/azure/completion/handler.py b/litellm/llms/azure/completion/handler.py index 16211926a4..42309bdd23 100644 --- a/litellm/llms/azure/completion/handler.py +++ b/litellm/llms/azure/completion/handler.py @@ -1,29 +1,12 @@ -import json -import types # type: ignore -import uuid -from typing import Any, Callable, Optional, Union +from typing import Any, Callable, Optional -import httpx from openai import AsyncAzureOpenAI, AzureOpenAI import litellm -from litellm import OpenAIConfig -from litellm.litellm_core_utils.prompt_templates.factory import ( - custom_prompt, - prompt_factory, -) -from litellm.utils import ( - Choices, - CustomStreamWrapper, - Message, - ModelResponse, - TextCompletionResponse, - TranscriptionResponse, - convert_to_model_response_object, -) +from litellm.litellm_core_utils.prompt_templates.factory import prompt_factory +from litellm.utils import CustomStreamWrapper, ModelResponse, TextCompletionResponse from ...base import BaseLLM -from ...openai.completion.handler import OpenAITextCompletion from ...openai.completion.transformation import OpenAITextCompletionConfig from ..common_utils import AzureOpenAIError diff --git a/litellm/llms/azure/files/handler.py b/litellm/llms/azure/files/handler.py index 22e41d3010..b299145ad4 100644 --- a/litellm/llms/azure/files/handler.py +++ b/litellm/llms/azure/files/handler.py @@ -1,4 +1,4 @@ -from typing import Any, Coroutine, Dict, List, Optional, Union +from typing import Any, Coroutine, Optional, Union import httpx from openai import AsyncAzureOpenAI, AzureOpenAI diff --git a/litellm/llms/azure/fine_tuning/handler.py b/litellm/llms/azure/fine_tuning/handler.py index f336efa331..c55c53f907 100644 --- a/litellm/llms/azure/fine_tuning/handler.py +++ b/litellm/llms/azure/fine_tuning/handler.py @@ -2,13 +2,11 @@ from typing import Any, Coroutine, Optional, Union import httpx from openai import AsyncAzureOpenAI, AzureOpenAI -from openai.pagination import AsyncCursorPage from openai.types.fine_tuning import FineTuningJob from litellm._logging import verbose_logger -from litellm.llms.base import BaseLLM from litellm.llms.azure.files.handler import get_azure_openai_client -from litellm.types.llms.openai import FineTuningJobCreate +from litellm.llms.base import BaseLLM class AzureOpenAIFineTuningAPI(BaseLLM): diff --git a/litellm/llms/azure/realtime/handler.py b/litellm/llms/azure/realtime/handler.py index a6c0f1967b..5a4865e7d7 100644 --- a/litellm/llms/azure/realtime/handler.py +++ b/litellm/llms/azure/realtime/handler.py @@ -4,7 +4,6 @@ This file contains the calling Azure OpenAI's `/openai/realtime` endpoint. This requires websockets, and is currently only supported on LiteLLM Proxy. """ -import asyncio from typing import Any, Optional from ....litellm_core_utils.litellm_logging import Logging as LiteLLMLogging diff --git a/litellm/llms/azure_ai/cost_calculator.py b/litellm/llms/azure_ai/cost_calculator.py index 00e754214c..96d7018458 100644 --- a/litellm/llms/azure_ai/cost_calculator.py +++ b/litellm/llms/azure_ai/cost_calculator.py @@ -6,7 +6,6 @@ Custom cost calculation for Azure AI models only requied for rerank. from typing import Tuple -from litellm.types.utils import Usage from litellm.utils import get_model_info diff --git a/litellm/llms/azure_ai/embed/cohere_transformation.py b/litellm/llms/azure_ai/embed/cohere_transformation.py index 1c7e1cc180..38b0dbbe23 100644 --- a/litellm/llms/azure_ai/embed/cohere_transformation.py +++ b/litellm/llms/azure_ai/embed/cohere_transformation.py @@ -9,11 +9,11 @@ Convers Docs - https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-embed-text.html """ -from typing import List, Optional, Tuple, Union +from typing import List, Optional, Tuple from litellm.types.llms.azure_ai import ImageEmbeddingInput, ImageEmbeddingRequest from litellm.types.llms.openai import EmbeddingCreateParams -from litellm.types.utils import Embedding, EmbeddingResponse, Usage +from litellm.types.utils import EmbeddingResponse, Usage from litellm.utils import is_base64_encoded diff --git a/litellm/llms/azure_ai/embed/handler.py b/litellm/llms/azure_ai/embed/handler.py index f5c3a1a6b5..f33c979ca2 100644 --- a/litellm/llms/azure_ai/embed/handler.py +++ b/litellm/llms/azure_ai/embed/handler.py @@ -1,25 +1,17 @@ -import asyncio -import copy -import json -import os -from copy import deepcopy -from typing import Any, Callable, List, Literal, Optional, Tuple, Union +from typing import List, Optional, Union -import httpx from openai import OpenAI import litellm -from litellm.llms.cohere.embed.handler import embedding as cohere_embedding from litellm.llms.custom_httpx.http_handler import ( AsyncHTTPHandler, HTTPHandler, - _get_httpx_client, get_async_httpx_client, ) from litellm.llms.openai.openai import OpenAIChatCompletion from litellm.types.llms.azure_ai import ImageEmbeddingRequest -from litellm.types.utils import Embedding, EmbeddingResponse -from litellm.utils import convert_to_model_response_object, is_base64_encoded +from litellm.types.utils import EmbeddingResponse +from litellm.utils import convert_to_model_response_object from .cohere_transformation import AzureAICohereConfig diff --git a/litellm/llms/base_llm/base_model_iterator.py b/litellm/llms/base_llm/base_model_iterator.py index 7dcd75d0b1..961941e7e0 100644 --- a/litellm/llms/base_llm/base_model_iterator.py +++ b/litellm/llms/base_llm/base_model_iterator.py @@ -1,15 +1,8 @@ import json -from abc import ABC, abstractmethod -from typing import List, Optional, Tuple +from abc import abstractmethod +from typing import Optional -import litellm -from litellm.litellm_core_utils.core_helpers import map_finish_reason -from litellm.types.utils import ( - ChatCompletionToolCallChunk, - ChatCompletionUsageBlock, - GenericStreamingChunk, - ModelResponse, -) +from litellm.types.utils import GenericStreamingChunk class BaseModelResponseIterator: diff --git a/litellm/llms/base_llm/chat/transformation.py b/litellm/llms/base_llm/chat/transformation.py index 6c5fcc01f1..afb2b1db22 100644 --- a/litellm/llms/base_llm/chat/transformation.py +++ b/litellm/llms/base_llm/chat/transformation.py @@ -4,18 +4,7 @@ Common base config for all LLM providers import types from abc import ABC, abstractmethod -from typing import ( - TYPE_CHECKING, - Any, - AsyncIterator, - Callable, - Dict, - Iterator, - List, - Optional, - TypedDict, - Union, -) +from typing import TYPE_CHECKING, Any, AsyncIterator, Iterator, List, Optional, Union import httpx diff --git a/litellm/llms/base_llm/embedding/transformation.py b/litellm/llms/base_llm/embedding/transformation.py index 7b2873b6d7..be2e72bc34 100644 --- a/litellm/llms/base_llm/embedding/transformation.py +++ b/litellm/llms/base_llm/embedding/transformation.py @@ -1,17 +1,5 @@ -import types from abc import ABC, abstractmethod -from typing import ( - TYPE_CHECKING, - Any, - AsyncIterator, - Callable, - Dict, - Iterator, - List, - Optional, - TypedDict, - Union, -) +from typing import TYPE_CHECKING, Any, List, Optional, Union import httpx diff --git a/litellm/llms/baseten.py b/litellm/llms/baseten.py index d0d42b6d1b..7bcf2fbafb 100644 --- a/litellm/llms/baseten.py +++ b/litellm/llms/baseten.py @@ -1,7 +1,5 @@ import json -import os import time -from enum import Enum from typing import Callable import litellm diff --git a/litellm/llms/bedrock/base_aws_llm.py b/litellm/llms/bedrock/base_aws_llm.py index 2f225b7b14..1984b9d913 100644 --- a/litellm/llms/bedrock/base_aws_llm.py +++ b/litellm/llms/bedrock/base_aws_llm.py @@ -7,7 +7,7 @@ import httpx from pydantic import BaseModel from litellm._logging import verbose_logger -from litellm.caching.caching import DualCache, InMemoryCache +from litellm.caching.caching import DualCache from litellm.secret_managers.main import get_secret, get_secret_str if TYPE_CHECKING: @@ -335,9 +335,6 @@ class BaseAWSLLM: Credentials: Boto3 credentials object """ try: - import boto3 - from botocore.auth import SigV4Auth - from botocore.awsrequest import AWSRequest from botocore.credentials import Credentials except ImportError: raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.") diff --git a/litellm/llms/bedrock/chat/converse_handler.py b/litellm/llms/bedrock/chat/converse_handler.py index 4b1f1b4f70..0e3b21c373 100644 --- a/litellm/llms/bedrock/chat/converse_handler.py +++ b/litellm/llms/bedrock/chat/converse_handler.py @@ -203,7 +203,6 @@ class BedrockConverseLLM(BaseAWSLLM): client: Optional[Union[AsyncHTTPHandler, HTTPHandler]] = None, ): try: - import boto3 from botocore.auth import SigV4Auth from botocore.awsrequest import AWSRequest from botocore.credentials import Credentials diff --git a/litellm/llms/bedrock/chat/converse_transformation.py b/litellm/llms/bedrock/chat/converse_transformation.py index 9536f38547..e50159a8fc 100644 --- a/litellm/llms/bedrock/chat/converse_transformation.py +++ b/litellm/llms/bedrock/chat/converse_transformation.py @@ -5,7 +5,7 @@ Translating between OpenAI's `/chat/completion` format and Amazon's `/converse` import copy import time import types -from typing import List, Literal, Optional, Tuple, Union, cast, overload +from typing import List, Literal, Optional, Tuple, Union, overload import httpx @@ -378,11 +378,14 @@ class AmazonConverseConfig: for key in additional_request_keys: inference_params.pop(key, None) - if 'topK' in inference_params: - additional_request_params["inferenceConfig"] = {'topK': inference_params.pop("topK")} - elif 'top_k' in inference_params: - additional_request_params["inferenceConfig"] = {'topK': inference_params.pop("top_k")} - + if "topK" in inference_params: + additional_request_params["inferenceConfig"] = { + "topK": inference_params.pop("topK") + } + elif "top_k" in inference_params: + additional_request_params["inferenceConfig"] = { + "topK": inference_params.pop("top_k") + } bedrock_tools: List[ToolBlock] = _bedrock_tools_pt( inference_params.pop("tools", []) diff --git a/litellm/llms/bedrock/chat/invoke_handler.py b/litellm/llms/bedrock/chat/invoke_handler.py index 6348a2bfe9..046f0dc60f 100644 --- a/litellm/llms/bedrock/chat/invoke_handler.py +++ b/litellm/llms/bedrock/chat/invoke_handler.py @@ -4,25 +4,12 @@ Manages calling Bedrock's `/converse` API + `/invoke` API import copy import json -import os import time import types import urllib.parse import uuid -from enum import Enum from functools import partial -from typing import ( - Any, - AsyncIterator, - Callable, - Iterator, - List, - Literal, - Optional, - Tuple, - TypedDict, - Union, -) +from typing import Any, AsyncIterator, Callable, Iterator, List, Optional, Tuple, Union import httpx # type: ignore @@ -32,8 +19,6 @@ from litellm.caching.caching import InMemoryCache from litellm.litellm_core_utils.core_helpers import map_finish_reason from litellm.litellm_core_utils.litellm_logging import Logging from litellm.litellm_core_utils.prompt_templates.factory import ( - _bedrock_converse_messages_pt, - _bedrock_tools_pt, cohere_message_pt, construct_tool_use_system_prompt, contains_tag, @@ -50,13 +35,7 @@ from litellm.llms.custom_httpx.http_handler import ( ) from litellm.types.llms.bedrock import * from litellm.types.llms.openai import ( - ChatCompletionResponseMessage, ChatCompletionToolCallChunk, - ChatCompletionToolCallFunctionChunk, - ChatCompletionToolChoiceFunctionParam, - ChatCompletionToolChoiceObjectParam, - ChatCompletionToolParam, - ChatCompletionToolParamFunctionChunk, ChatCompletionUsageBlock, ) from litellm.types.utils import GenericStreamingChunk as GChunk @@ -65,7 +44,6 @@ from litellm.utils import CustomStreamWrapper, get_secret from ..base_aws_llm import BaseAWSLLM from ..common_utils import BedrockError, ModelResponseIterator, get_bedrock_tool_name -from .converse_transformation import AmazonConverseConfig _response_stream_shape_cache = None bedrock_tool_name_mappings: InMemoryCache = InMemoryCache( @@ -597,7 +575,6 @@ class BedrockLLM(BaseAWSLLM): client: Optional[Union[AsyncHTTPHandler, HTTPHandler]] = None, ) -> Union[ModelResponse, CustomStreamWrapper]: try: - import boto3 from botocore.auth import SigV4Auth from botocore.awsrequest import AWSRequest from botocore.credentials import Credentials diff --git a/litellm/llms/bedrock/common_utils.py b/litellm/llms/bedrock/common_utils.py index 332b1e2b37..7f74cc6ebf 100644 --- a/litellm/llms/bedrock/common_utils.py +++ b/litellm/llms/bedrock/common_utils.py @@ -5,7 +5,7 @@ Common utilities used across bedrock chat/embedding/image generation import os import types from enum import Enum -from typing import List, Optional, Tuple, Union +from typing import List, Optional, Union import httpx diff --git a/litellm/llms/bedrock/embed/amazon_titan_g1_transformation.py b/litellm/llms/bedrock/embed/amazon_titan_g1_transformation.py index 591f87209b..63219868f4 100644 --- a/litellm/llms/bedrock/embed/amazon_titan_g1_transformation.py +++ b/litellm/llms/bedrock/embed/amazon_titan_g1_transformation.py @@ -10,7 +10,7 @@ Docs - https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-tit """ import types -from typing import List, Optional +from typing import List from litellm.types.llms.bedrock import ( AmazonTitanG1EmbeddingRequest, diff --git a/litellm/llms/bedrock/embed/cohere_transformation.py b/litellm/llms/bedrock/embed/cohere_transformation.py index 1020aa9230..490cd71b79 100644 --- a/litellm/llms/bedrock/embed/cohere_transformation.py +++ b/litellm/llms/bedrock/embed/cohere_transformation.py @@ -6,10 +6,8 @@ Why separate file? Make it easy to see how transformation works from typing import List -import litellm from litellm.llms.cohere.embed.transformation import CohereEmbeddingConfig -from litellm.types.llms.bedrock import CohereEmbeddingRequest, CohereEmbeddingResponse -from litellm.types.utils import Embedding, EmbeddingResponse +from litellm.types.llms.bedrock import CohereEmbeddingRequest class BedrockCohereEmbeddingConfig: diff --git a/litellm/llms/bedrock/embed/embedding.py b/litellm/llms/bedrock/embed/embedding.py index 9cb97f72f8..55e8201f0a 100644 --- a/litellm/llms/bedrock/embed/embedding.py +++ b/litellm/llms/bedrock/embed/embedding.py @@ -4,9 +4,7 @@ Handles embedding calls to Bedrock's `/invoke` endpoint import copy import json -import os -from copy import deepcopy -from typing import Any, Callable, List, Literal, Optional, Tuple, Union +from typing import Any, Callable, List, Optional, Tuple, Union import httpx @@ -20,7 +18,7 @@ from litellm.llms.custom_httpx.http_handler import ( ) from litellm.secret_managers.main import get_secret from litellm.types.llms.bedrock import AmazonEmbeddingRequest, CohereEmbeddingRequest -from litellm.types.utils import Embedding, EmbeddingResponse, Usage +from litellm.types.utils import EmbeddingResponse from ..base_aws_llm import BaseAWSLLM from ..common_utils import BedrockError @@ -160,10 +158,8 @@ class BedrockEmbedding(BaseAWSLLM): logging_obj: Any, ): try: - import boto3 from botocore.auth import SigV4Auth from botocore.awsrequest import AWSRequest - from botocore.credentials import Credentials except ImportError: raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.") @@ -251,10 +247,8 @@ class BedrockEmbedding(BaseAWSLLM): logging_obj: Any, ): try: - import boto3 from botocore.auth import SigV4Auth from botocore.awsrequest import AWSRequest - from botocore.credentials import Credentials except ImportError: raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.") @@ -346,10 +340,8 @@ class BedrockEmbedding(BaseAWSLLM): litellm_params: dict, ) -> EmbeddingResponse: try: - import boto3 from botocore.auth import SigV4Auth from botocore.awsrequest import AWSRequest - from botocore.credentials import Credentials except ImportError: raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.") diff --git a/litellm/llms/bedrock/image/image_handler.py b/litellm/llms/bedrock/image/image_handler.py index a32161c222..5b14833f42 100644 --- a/litellm/llms/bedrock/image/image_handler.py +++ b/litellm/llms/bedrock/image/image_handler.py @@ -1,10 +1,9 @@ import copy import json import os -from typing import TYPE_CHECKING, Any, List, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union import httpx -from openai.types.image import Image from pydantic import BaseModel import litellm @@ -159,10 +158,8 @@ class BedrockImageGeneration(BaseAWSLLM): body (bytes): The request body """ try: - import boto3 from botocore.auth import SigV4Auth from botocore.awsrequest import AWSRequest - from botocore.credentials import Credentials except ImportError: raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.") boto3_credentials_info = self._get_boto_credentials_from_optional_params( diff --git a/litellm/llms/bedrock/rerank/handler.py b/litellm/llms/bedrock/rerank/handler.py index e11ed8d84a..3683be06b6 100644 --- a/litellm/llms/bedrock/rerank/handler.py +++ b/litellm/llms/bedrock/rerank/handler.py @@ -1,20 +1,15 @@ -import copy import json -import os from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union, cast import httpx -from openai.types.image import Image -from pydantic import BaseModel import litellm -from litellm._logging import verbose_logger from litellm.litellm_core_utils.litellm_logging import Logging as LitellmLogging from litellm.llms.custom_httpx.http_handler import ( _get_httpx_client, get_async_httpx_client, ) -from litellm.types.llms.bedrock import BedrockPreparedRequest, BedrockRerankRequest +from litellm.types.llms.bedrock import BedrockPreparedRequest from litellm.types.rerank import RerankRequest from litellm.types.utils import RerankResponse @@ -110,10 +105,8 @@ class BedrockRerankHandler(BaseAWSLLM): optional_params: dict, ) -> BedrockPreparedRequest: try: - import boto3 from botocore.auth import SigV4Auth from botocore.awsrequest import AWSRequest - from botocore.credentials import Credentials except ImportError: raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.") boto3_credentials_info = self._get_boto_credentials_from_optional_params( diff --git a/litellm/llms/cerebras/chat.py b/litellm/llms/cerebras/chat.py index 09e8ffb834..4e9c6811a7 100644 --- a/litellm/llms/cerebras/chat.py +++ b/litellm/llms/cerebras/chat.py @@ -4,8 +4,7 @@ Cerebras Chat Completions API this is OpenAI compatible - no translation needed / occurs """ -import types -from typing import Optional, Union +from typing import Optional from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig diff --git a/litellm/llms/clarifai/chat/transformation.py b/litellm/llms/clarifai/chat/transformation.py index c832ff8924..f7ab00ac31 100644 --- a/litellm/llms/clarifai/chat/transformation.py +++ b/litellm/llms/clarifai/chat/transformation.py @@ -1,10 +1,8 @@ import json -import types from typing import TYPE_CHECKING, Any, AsyncIterator, Iterator, List, Optional, Union import httpx -import litellm from litellm.litellm_core_utils.prompt_templates.common_utils import ( convert_content_list_to_str, ) diff --git a/litellm/llms/clarifai/common_utils.py b/litellm/llms/clarifai/common_utils.py index 9190e8554a..611d2ccf30 100644 --- a/litellm/llms/clarifai/common_utils.py +++ b/litellm/llms/clarifai/common_utils.py @@ -1,5 +1,3 @@ -import httpx - from litellm.llms.base_llm.chat.transformation import BaseLLMException diff --git a/litellm/llms/codestral/completion/handler.py b/litellm/llms/codestral/completion/handler.py index 0a9e86654e..fc6d2886a9 100644 --- a/litellm/llms/codestral/completion/handler.py +++ b/litellm/llms/codestral/completion/handler.py @@ -1,21 +1,13 @@ # What is this? ## handler file for TextCompletionCodestral Integration - https://codestral.com/ -import copy import json -import os -import time -import traceback -import types -from enum import Enum from functools import partial -from typing import Callable, List, Literal, Optional, Union +from typing import Callable, List, Optional, Union import httpx # type: ignore import litellm -from litellm import verbose_logger -from litellm.litellm_core_utils.core_helpers import map_finish_reason from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLogging from litellm.litellm_core_utils.prompt_templates.factory import ( custom_prompt, @@ -25,16 +17,8 @@ from litellm.llms.custom_httpx.http_handler import ( AsyncHTTPHandler, get_async_httpx_client, ) -from litellm.llms.openai.completion.transformation import OpenAITextCompletionConfig -from litellm.types.llms.databricks import GenericStreamingChunk from litellm.types.utils import TextChoices -from litellm.utils import ( - Choices, - CustomStreamWrapper, - Message, - TextCompletionResponse, - Usage, -) +from litellm.utils import CustomStreamWrapper, TextCompletionResponse class TextCompletionCodestralError(Exception): diff --git a/litellm/llms/cohere/completion/transformation.py b/litellm/llms/cohere/completion/transformation.py index 23ba87f115..95faa169a5 100644 --- a/litellm/llms/cohere/completion/transformation.py +++ b/litellm/llms/cohere/completion/transformation.py @@ -1,6 +1,4 @@ -import json import time -import types from typing import TYPE_CHECKING, Any, AsyncIterator, Iterator, List, Optional, Union import httpx @@ -11,15 +9,7 @@ from litellm.litellm_core_utils.prompt_templates.common_utils import ( ) from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException from litellm.types.llms.openai import AllMessageValues -from litellm.types.utils import ( - ChatCompletionToolCallChunk, - ChatCompletionUsageBlock, - Choices, - GenericStreamingChunk, - Message, - ModelResponse, - Usage, -) +from litellm.types.utils import Choices, Message, ModelResponse, Usage from ..common_utils import CohereError from ..common_utils import ModelResponseIterator as CohereModelResponseIterator diff --git a/litellm/llms/cohere/embed/handler.py b/litellm/llms/cohere/embed/handler.py index 2a9d7512e3..e7f22ea72a 100644 --- a/litellm/llms/cohere/embed/handler.py +++ b/litellm/llms/cohere/embed/handler.py @@ -1,9 +1,4 @@ import json -import os -import time -import traceback -import types -from enum import Enum from typing import Any, Callable, Optional, Union import httpx @@ -17,7 +12,6 @@ from litellm.llms.custom_httpx.http_handler import ( ) from litellm.types.llms.bedrock import CohereEmbeddingRequest from litellm.types.utils import EmbeddingResponse -from litellm.utils import Choices, Message, ModelResponse, Usage from .transformation import CohereEmbeddingConfig diff --git a/litellm/llms/cohere/embed/transformation.py b/litellm/llms/cohere/embed/transformation.py index e6bb0f392a..22e157a0fd 100644 --- a/litellm/llms/cohere/embed/transformation.py +++ b/litellm/llms/cohere/embed/transformation.py @@ -10,7 +10,6 @@ Convers Docs - https://docs.cohere.com/v2/reference/embed """ -import types from typing import Any, List, Optional, Union import httpx @@ -18,16 +17,10 @@ import httpx from litellm import COHERE_DEFAULT_EMBEDDING_INPUT_TYPE from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj from litellm.types.llms.bedrock import ( - COHERE_EMBEDDING_INPUT_TYPES, CohereEmbeddingRequest, CohereEmbeddingRequestWithModel, ) -from litellm.types.utils import ( - Embedding, - EmbeddingResponse, - PromptTokensDetailsWrapper, - Usage, -) +from litellm.types.utils import EmbeddingResponse, PromptTokensDetailsWrapper, Usage from litellm.utils import is_base64_encoded diff --git a/litellm/llms/custom_httpx/http_handler.py b/litellm/llms/custom_httpx/http_handler.py index 6d37828498..82a6f9614a 100644 --- a/litellm/llms/custom_httpx/http_handler.py +++ b/litellm/llms/custom_httpx/http_handler.py @@ -1,13 +1,11 @@ import asyncio import os -import traceback from typing import TYPE_CHECKING, Any, Callable, List, Mapping, Optional, Union import httpx from httpx import USE_CLIENT_DEFAULT, AsyncHTTPTransport, HTTPTransport import litellm -from litellm.caching import InMemoryCache from litellm.types.llms.custom_http import * if TYPE_CHECKING: @@ -28,8 +26,6 @@ headers = { _DEFAULT_TIMEOUT = httpx.Timeout(timeout=5.0, connect=5.0) _DEFAULT_TTL_FOR_HTTPX_CLIENTS = 3600 # 1 hour, re-use the same httpx client for 1 hour -import re - def mask_sensitive_info(error_message): # Find the start of the key parameter diff --git a/litellm/llms/custom_httpx/llm_http_handler.py b/litellm/llms/custom_httpx/llm_http_handler.py index 01043a6d9b..277c698b91 100644 --- a/litellm/llms/custom_httpx/llm_http_handler.py +++ b/litellm/llms/custom_httpx/llm_http_handler.py @@ -1,26 +1,12 @@ -import copy import json -from typing import ( - TYPE_CHECKING, - Any, - Callable, - Dict, - List, - Literal, - Optional, - Tuple, - Union, -) +from typing import TYPE_CHECKING, Any, Optional, Tuple, Union import httpx # type: ignore -from openai.types.chat.chat_completion_chunk import Choice as OpenAIStreamingChoice import litellm import litellm.litellm_core_utils import litellm.types import litellm.types.utils -from litellm import verbose_logger -from litellm.litellm_core_utils.core_helpers import map_finish_reason from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException from litellm.llms.base_llm.embedding.transformation import BaseEmbeddingConfig from litellm.llms.custom_httpx.http_handler import ( diff --git a/litellm/llms/custom_llm.py b/litellm/llms/custom_llm.py index 90f7875e66..a2d04b1838 100644 --- a/litellm/llms/custom_llm.py +++ b/litellm/llms/custom_llm.py @@ -8,40 +8,13 @@ - async_streaming """ -import copy -import json -import os -import time -import types -from enum import Enum -from functools import partial -from typing import ( - Any, - AsyncGenerator, - AsyncIterator, - Callable, - Coroutine, - Iterator, - List, - Literal, - Optional, - Tuple, - Union, -) +from typing import Any, AsyncIterator, Callable, Iterator, Optional, Union import httpx -import litellm -from litellm.litellm_core_utils.core_helpers import map_finish_reason from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler, HTTPHandler -from litellm.types.utils import GenericStreamingChunk, ProviderField -from litellm.utils import ( - CustomStreamWrapper, - EmbeddingResponse, - ImageResponse, - ModelResponse, - Usage, -) +from litellm.types.utils import GenericStreamingChunk +from litellm.utils import ImageResponse, ModelResponse from .base import BaseLLM diff --git a/litellm/llms/databricks/chat/handler.py b/litellm/llms/databricks/chat/handler.py index 39fb79493b..abb714746c 100644 --- a/litellm/llms/databricks/chat/handler.py +++ b/litellm/llms/databricks/chat/handler.py @@ -2,7 +2,7 @@ Handles the chat completion request for Databricks """ -from typing import Any, Callable, List, Literal, Optional, Tuple, Union, cast +from typing import Callable, List, Optional, Union, cast from httpx._config import Timeout @@ -13,7 +13,6 @@ from litellm.utils import ModelResponse from ...openai_like.chat.handler import OpenAILikeChatHandler from ..common_utils import DatabricksBase -from ..exceptions import DatabricksError from .transformation import DatabricksConfig diff --git a/litellm/llms/databricks/chat/transformation.py b/litellm/llms/databricks/chat/transformation.py index f154ed5c1c..b1f79d565b 100644 --- a/litellm/llms/databricks/chat/transformation.py +++ b/litellm/llms/databricks/chat/transformation.py @@ -2,7 +2,6 @@ Translates from OpenAI's `/v1/chat/completions` to Databricks' `/chat/completions` """ -import types from typing import List, Optional, Union from pydantic import BaseModel diff --git a/litellm/llms/databricks/embed/handler.py b/litellm/llms/databricks/embed/handler.py index 284988ffec..2eabcdbc86 100644 --- a/litellm/llms/databricks/embed/handler.py +++ b/litellm/llms/databricks/embed/handler.py @@ -4,7 +4,6 @@ Calling logic for Databricks embeddings from typing import Optional -import litellm from litellm.utils import EmbeddingResponse from ...openai_like.embedding.handler import OpenAILikeEmbeddingHandler diff --git a/litellm/llms/databricks/streaming_utils.py b/litellm/llms/databricks/streaming_utils.py index b9f54c04dd..8c75145d2b 100644 --- a/litellm/llms/databricks/streaming_utils.py +++ b/litellm/llms/databricks/streaming_utils.py @@ -1,16 +1,14 @@ import json -from typing import List, Optional +from typing import Optional import litellm from litellm import verbose_logger from litellm.types.llms.openai import ( - ChatCompletionDeltaChunk, - ChatCompletionResponseMessage, ChatCompletionToolCallChunk, ChatCompletionToolCallFunctionChunk, ChatCompletionUsageBlock, ) -from litellm.types.utils import GenericStreamingChunk, ModelResponse, Usage +from litellm.types.utils import GenericStreamingChunk, Usage class ModelResponseIterator: diff --git a/litellm/llms/deepinfra/chat/transformation.py b/litellm/llms/deepinfra/chat/transformation.py index 0137f409b3..429759fad1 100644 --- a/litellm/llms/deepinfra/chat/transformation.py +++ b/litellm/llms/deepinfra/chat/transformation.py @@ -1,4 +1,3 @@ -import types from typing import Optional, Tuple, Union import litellm diff --git a/litellm/llms/deepseek/chat/transformation.py b/litellm/llms/deepseek/chat/transformation.py index b2c72b0010..e6704de1a1 100644 --- a/litellm/llms/deepseek/chat/transformation.py +++ b/litellm/llms/deepseek/chat/transformation.py @@ -2,19 +2,14 @@ Translates from OpenAI's `/v1/chat/completions` to DeepSeek's `/v1/chat/completions` """ -import types -from typing import List, Optional, Tuple, Union +from typing import List, Optional, Tuple -from pydantic import BaseModel - -import litellm from litellm.litellm_core_utils.prompt_templates.common_utils import ( handle_messages_with_content_list_to_str_conversion, ) from litellm.secret_managers.main import get_secret_str -from litellm.types.llms.openai import AllMessageValues, ChatCompletionAssistantMessage +from litellm.types.llms.openai import AllMessageValues -from ....utils import _remove_additional_properties, _remove_strict_from_schema from ...openai.chat.gpt_transformation import OpenAIGPTConfig diff --git a/litellm/llms/deprecated_providers/aleph_alpha.py b/litellm/llms/deprecated_providers/aleph_alpha.py index 90da85d3b0..a4c5d155f4 100644 --- a/litellm/llms/deprecated_providers/aleph_alpha.py +++ b/litellm/llms/deprecated_providers/aleph_alpha.py @@ -1,8 +1,6 @@ import json -import os import time import types -from enum import Enum from typing import Callable, Optional import httpx # type: ignore diff --git a/litellm/llms/deprecated_providers/palm.py b/litellm/llms/deprecated_providers/palm.py index d3626113d8..4afc952a51 100644 --- a/litellm/llms/deprecated_providers/palm.py +++ b/litellm/llms/deprecated_providers/palm.py @@ -7,7 +7,6 @@ from typing import Callable, Optional import httpx import litellm -from litellm import verbose_logger from litellm.utils import Choices, Message, ModelResponse, Usage diff --git a/litellm/llms/fireworks_ai/chat/transformation.py b/litellm/llms/fireworks_ai/chat/transformation.py index 2d22a564d8..34eb4acac4 100644 --- a/litellm/llms/fireworks_ai/chat/transformation.py +++ b/litellm/llms/fireworks_ai/chat/transformation.py @@ -1,4 +1,3 @@ -import types from typing import Literal, Optional, Tuple, Union from litellm.secret_managers.main import get_secret_str diff --git a/litellm/llms/fireworks_ai/embed/fireworks_ai_transformation.py b/litellm/llms/fireworks_ai/embed/fireworks_ai_transformation.py index ccc1ac6b49..8090644398 100644 --- a/litellm/llms/fireworks_ai/embed/fireworks_ai_transformation.py +++ b/litellm/llms/fireworks_ai/embed/fireworks_ai_transformation.py @@ -3,9 +3,6 @@ This is OpenAI compatible - no transformation is applied """ -import types -from typing import Literal, Optional, Union - import litellm diff --git a/litellm/llms/friendliai/chat/transformation.py b/litellm/llms/friendliai/chat/transformation.py index 02bb4c7f29..168549142f 100644 --- a/litellm/llms/friendliai/chat/transformation.py +++ b/litellm/llms/friendliai/chat/transformation.py @@ -2,21 +2,6 @@ Translate from OpenAI's `/v1/chat/completions` to Friendliai's `/v1/chat/completions` """ -import json -import types -from typing import List, Optional, Tuple, Union - -from pydantic import BaseModel - -import litellm -from litellm.secret_managers.main import get_secret_str -from litellm.types.llms.openai import ( - AllMessageValues, - ChatCompletionAssistantMessage, - ChatCompletionToolParam, - ChatCompletionToolParamFunctionChunk, -) - from ...openai_like.chat.handler import OpenAILikeChatConfig diff --git a/litellm/llms/galadriel/chat/transformation.py b/litellm/llms/galadriel/chat/transformation.py index 9ce39ed01a..1e3280bb16 100644 --- a/litellm/llms/galadriel/chat/transformation.py +++ b/litellm/llms/galadriel/chat/transformation.py @@ -2,21 +2,6 @@ Translate from OpenAI's `/v1/chat/completions` to Galadriel's `/v1/chat/completions` """ -import json -import types -from typing import List, Optional, Tuple, Union - -from pydantic import BaseModel - -import litellm -from litellm.secret_managers.main import get_secret_str -from litellm.types.llms.openai import ( - AllMessageValues, - ChatCompletionAssistantMessage, - ChatCompletionToolParam, - ChatCompletionToolParamFunctionChunk, -) - from ...openai_like.chat.handler import OpenAILikeChatConfig diff --git a/litellm/llms/github/chat/transformation.py b/litellm/llms/github/chat/transformation.py index 9d7adff3d2..9197b3983c 100644 --- a/litellm/llms/github/chat/transformation.py +++ b/litellm/llms/github/chat/transformation.py @@ -2,21 +2,6 @@ Translate from OpenAI's `/v1/chat/completions` to Github's `/v1/chat/completions` """ -import json -import types -from typing import List, Optional, Tuple, Union - -from pydantic import BaseModel - -import litellm -from litellm.secret_managers.main import get_secret_str -from litellm.types.llms.openai import ( - AllMessageValues, - ChatCompletionAssistantMessage, - ChatCompletionToolParam, - ChatCompletionToolParamFunctionChunk, -) - from ...openai_like.chat.handler import OpenAILikeChatConfig diff --git a/litellm/llms/groq/chat/handler.py b/litellm/llms/groq/chat/handler.py index a29a9009dd..dc4c3222b1 100644 --- a/litellm/llms/groq/chat/handler.py +++ b/litellm/llms/groq/chat/handler.py @@ -2,7 +2,7 @@ Handles the chat completion request for groq """ -from typing import Any, Callable, List, Optional, Union, cast +from typing import Callable, List, Optional, Union, cast from httpx._config import Timeout diff --git a/litellm/llms/groq/chat/transformation.py b/litellm/llms/groq/chat/transformation.py index 78e844f505..000ec87b2a 100644 --- a/litellm/llms/groq/chat/transformation.py +++ b/litellm/llms/groq/chat/transformation.py @@ -2,13 +2,10 @@ Translate from OpenAI's `/v1/chat/completions` to Groq's `/v1/chat/completions` """ -import json -import types from typing import List, Optional, Tuple, Union from pydantic import BaseModel -import litellm from litellm.secret_managers.main import get_secret_str from litellm.types.llms.openai import ( AllMessageValues, diff --git a/litellm/llms/hosted_vllm/chat/transformation.py b/litellm/llms/hosted_vllm/chat/transformation.py index 37425929ed..9332e98789 100644 --- a/litellm/llms/hosted_vllm/chat/transformation.py +++ b/litellm/llms/hosted_vllm/chat/transformation.py @@ -2,14 +2,9 @@ Translate from OpenAI's `/v1/chat/completions` to VLLM's `/v1/chat/completions` """ -import types -from typing import List, Optional, Tuple, Union +from typing import Optional, Tuple -from pydantic import BaseModel - -import litellm from litellm.secret_managers.main import get_secret_str -from litellm.types.llms.openai import AllMessageValues, ChatCompletionAssistantMessage from ....utils import _remove_additional_properties, _remove_strict_from_schema from ...openai.chat.gpt_transformation import OpenAIGPTConfig diff --git a/litellm/llms/huggingface/chat/handler.py b/litellm/llms/huggingface/chat/handler.py index b1b7a6c2d9..d357edf329 100644 --- a/litellm/llms/huggingface/chat/handler.py +++ b/litellm/llms/huggingface/chat/handler.py @@ -1,11 +1,6 @@ ## Uses the huggingface text generation inference API -import copy -import enum import json import os -import time -import types -from enum import Enum from typing import ( Any, Callable, @@ -33,15 +28,13 @@ from litellm.llms.custom_httpx.http_handler import ( from litellm.llms.huggingface.chat.transformation import ( HuggingfaceChatConfig as HuggingfaceConfig, ) -from litellm.secret_managers.main import get_secret_str -from litellm.types.completion import ChatCompletionMessageToolCallParam from litellm.types.llms.openai import AllMessageValues from litellm.types.utils import EmbeddingResponse from litellm.types.utils import Logprobs as TextCompletionLogprobs -from litellm.types.utils import ModelResponse, Usage +from litellm.types.utils import ModelResponse from ...base import BaseLLM -from ..common_utils import HuggingfaceError, hf_task_list, hf_tasks +from ..common_utils import HuggingfaceError hf_chat_config = HuggingfaceConfig() diff --git a/litellm/llms/huggingface/chat/transformation.py b/litellm/llms/huggingface/chat/transformation.py index 2c35f2a20d..2d3fa46caf 100644 --- a/litellm/llms/huggingface/chat/transformation.py +++ b/litellm/llms/huggingface/chat/transformation.py @@ -1,7 +1,6 @@ import json import os import time -import types from copy import deepcopy from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union diff --git a/litellm/llms/jina_ai/embedding/transformation.py b/litellm/llms/jina_ai/embedding/transformation.py index 97b7b2cfac..a8fca20100 100644 --- a/litellm/llms/jina_ai/embedding/transformation.py +++ b/litellm/llms/jina_ai/embedding/transformation.py @@ -11,7 +11,6 @@ from typing import List, Optional, Tuple from litellm import LlmProviders from litellm.secret_managers.main import get_secret_str -from litellm.types.utils import Embedding, EmbeddingResponse, Usage class JinaAIEmbeddingConfig: diff --git a/litellm/llms/jina_ai/rerank/handler.py b/litellm/llms/jina_ai/rerank/handler.py index a2cfdd49ef..355624cd2a 100644 --- a/litellm/llms/jina_ai/rerank/handler.py +++ b/litellm/llms/jina_ai/rerank/handler.py @@ -4,12 +4,8 @@ Re rank api LiteLLM supports the re rank API format, no paramter transformation occurs """ -import uuid from typing import Any, Dict, List, Optional, Union -import httpx -from pydantic import BaseModel - import litellm from litellm.llms.base import BaseLLM from litellm.llms.custom_httpx.http_handler import ( diff --git a/litellm/llms/lm_studio/chat/transformation.py b/litellm/llms/lm_studio/chat/transformation.py index 62dd4dbd7b..a4380cc5df 100644 --- a/litellm/llms/lm_studio/chat/transformation.py +++ b/litellm/llms/lm_studio/chat/transformation.py @@ -2,16 +2,10 @@ Translate from OpenAI's `/v1/chat/completions` to LM Studio's `/chat/completions` """ -import types -from typing import List, Optional, Tuple, Union +from typing import Optional, Tuple -from pydantic import BaseModel - -import litellm from litellm.secret_managers.main import get_secret_str -from litellm.types.llms.openai import AllMessageValues, ChatCompletionAssistantMessage -from ....utils import _remove_additional_properties, _remove_strict_from_schema from ...openai.chat.gpt_transformation import OpenAIGPTConfig diff --git a/litellm/llms/lm_studio/embed/transformation.py b/litellm/llms/lm_studio/embed/transformation.py index 17b2173a7c..5ef121ea7a 100644 --- a/litellm/llms/lm_studio/embed/transformation.py +++ b/litellm/llms/lm_studio/embed/transformation.py @@ -7,11 +7,7 @@ Docs - https://lmstudio.ai/docs/basics/server """ import types -from typing import List, Optional, Tuple - -from litellm import LlmProviders -from litellm.secret_managers.main import get_secret_str -from litellm.types.utils import Embedding, EmbeddingResponse, Usage +from typing import List class LmStudioEmbeddingConfig: diff --git a/litellm/llms/maritalk.py b/litellm/llms/maritalk.py index 1c7c882fa2..62fa0113eb 100644 --- a/litellm/llms/maritalk.py +++ b/litellm/llms/maritalk.py @@ -1,17 +1,9 @@ -import json -import os -import time -import traceback -import types -from enum import Enum -from typing import Any, Callable, List, Optional, Union +from typing import List, Optional, Union from httpx._models import Headers -import litellm from litellm.llms.base_llm.chat.transformation import BaseLLMException from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig -from litellm.utils import Choices, Message, ModelResponse, Usage class MaritalkError(BaseLLMException): diff --git a/litellm/llms/mistral/mistral_chat_transformation.py b/litellm/llms/mistral/mistral_chat_transformation.py index 97af6d4229..6174952aae 100644 --- a/litellm/llms/mistral/mistral_chat_transformation.py +++ b/litellm/llms/mistral/mistral_chat_transformation.py @@ -6,7 +6,6 @@ Why separate file? Make it easy to see how transformation works Docs - https://docs.mistral.ai/api/ """ -import types from typing import List, Literal, Optional, Tuple, Union from litellm.litellm_core_utils.prompt_templates.common_utils import ( diff --git a/litellm/llms/nlp_cloud/chat/handler.py b/litellm/llms/nlp_cloud/chat/handler.py index 959832ab88..b0abdda587 100644 --- a/litellm/llms/nlp_cloud/chat/handler.py +++ b/litellm/llms/nlp_cloud/chat/handler.py @@ -1,24 +1,14 @@ import json -import os -import time -import types -from enum import Enum -from typing import Any, Callable, List, Optional, Union - -import httpx +from typing import Callable, Optional, Union import litellm -from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException from litellm.llms.custom_httpx.http_handler import ( AsyncHTTPHandler, HTTPHandler, _get_httpx_client, - get_async_httpx_client, ) -from litellm.types.llms.openai import AllMessageValues -from litellm.utils import ModelResponse, Usage +from litellm.utils import ModelResponse -from ..common_utils import NLPCloudError from .transformation import NLPCloudConfig nlp_config = NLPCloudConfig() diff --git a/litellm/llms/nvidia_nim/chat.py b/litellm/llms/nvidia_nim/chat.py index 3f50c02dd9..eedac6e38f 100644 --- a/litellm/llms/nvidia_nim/chat.py +++ b/litellm/llms/nvidia_nim/chat.py @@ -8,7 +8,6 @@ This file only contains param mapping logic API calling is done using the OpenAI SDK with an api_base """ -import types from typing import Optional, Union from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig diff --git a/litellm/llms/nvidia_nim/embed.py b/litellm/llms/nvidia_nim/embed.py index cd27f341e6..bf5d4d4ae6 100644 --- a/litellm/llms/nvidia_nim/embed.py +++ b/litellm/llms/nvidia_nim/embed.py @@ -9,7 +9,7 @@ API calling is done using the OpenAI SDK with an api_base """ import types -from typing import Optional, Union +from typing import Optional class NvidiaNimEmbeddingConfig: diff --git a/litellm/llms/ollama/completion/handler.py b/litellm/llms/ollama/completion/handler.py index 8b6f26995d..b7608e62fb 100644 --- a/litellm/llms/ollama/completion/handler.py +++ b/litellm/llms/ollama/completion/handler.py @@ -5,37 +5,15 @@ Ollama /chat/completion calls handled in llm_http_handler.py """ import asyncio -import json -import time -import traceback -import types -import uuid -from copy import deepcopy -from itertools import chain -from typing import Any, Dict, List, Optional +from typing import Any, Dict, List import litellm -from litellm import verbose_logger -from litellm.litellm_core_utils.prompt_templates.factory import ( - custom_prompt, - prompt_factory, -) -from litellm.llms.custom_httpx.http_handler import get_async_httpx_client -from litellm.secret_managers.main import get_secret_str -from litellm.types.utils import ( - EmbeddingResponse, - ModelInfo, - ModelResponse, - ProviderField, - StreamingChoices, -) - -from ..common_utils import OllamaError -from .transformation import OllamaConfig +from litellm.types.utils import EmbeddingResponse # ollama wants plain base64 jpeg/png files as images. strip any leading dataURI # and convert to jpeg if necessary. + async def ollama_aembeddings( api_base: str, model: str, diff --git a/litellm/llms/ollama/completion/transformation.py b/litellm/llms/ollama/completion/transformation.py index 46e67b4720..5219889321 100644 --- a/litellm/llms/ollama/completion/transformation.py +++ b/litellm/llms/ollama/completion/transformation.py @@ -1,6 +1,5 @@ import json import time -import types import uuid from typing import TYPE_CHECKING, Any, AsyncIterator, Iterator, List, Optional, Union @@ -15,18 +14,12 @@ from litellm.litellm_core_utils.prompt_templates.factory import ( from litellm.llms.base_llm.base_model_iterator import BaseModelResponseIterator from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException from litellm.secret_managers.main import get_secret_str -from litellm.types.llms.openai import ( - AllMessageValues, - ChatCompletionToolCallChunk, - ChatCompletionUsageBlock, -) +from litellm.types.llms.openai import AllMessageValues, ChatCompletionUsageBlock from litellm.types.utils import ( GenericStreamingChunk, - ModelInfo, ModelInfoBase, ModelResponse, ProviderField, - StreamingChoices, ) from ..common_utils import OllamaError, _convert_image diff --git a/litellm/llms/ollama_chat.py b/litellm/llms/ollama_chat.py index 5fb35ba2bf..5aa26ced46 100644 --- a/litellm/llms/ollama_chat.py +++ b/litellm/llms/ollama_chat.py @@ -1,9 +1,6 @@ import json import time -import traceback -import types import uuid -from itertools import chain from typing import Any, List, Optional import aiohttp diff --git a/litellm/llms/oobabooga/chat/oobabooga.py b/litellm/llms/oobabooga/chat/oobabooga.py index 30eaa049e1..8829d2233e 100644 --- a/litellm/llms/oobabooga/chat/oobabooga.py +++ b/litellm/llms/oobabooga/chat/oobabooga.py @@ -1,15 +1,8 @@ import json -import os -import time -from enum import Enum from typing import Any, Callable, Optional import litellm -from litellm.litellm_core_utils.prompt_templates.factory import ( - custom_prompt, - prompt_factory, -) -from litellm.llms.custom_httpx.http_handler import HTTPHandler, _get_httpx_client +from litellm.llms.custom_httpx.http_handler import _get_httpx_client from litellm.utils import EmbeddingResponse, ModelResponse, Usage from ..common_utils import OobaboogaError diff --git a/litellm/llms/oobabooga/chat/transformation.py b/litellm/llms/oobabooga/chat/transformation.py index f3a25f1df2..02283f93e2 100644 --- a/litellm/llms/oobabooga/chat/transformation.py +++ b/litellm/llms/oobabooga/chat/transformation.py @@ -1,16 +1,12 @@ -import json import time -import types from typing import TYPE_CHECKING, Any, List, Optional, Union import httpx -import litellm -from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException +from litellm.llms.base_llm.chat.transformation import BaseLLMException from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig from litellm.types.llms.openai import AllMessageValues -from litellm.types.utils import Choices, Message, ModelResponse, Usage -from litellm.utils import token_counter +from litellm.types.utils import ModelResponse, Usage from ..common_utils import OobaboogaError diff --git a/litellm/llms/openai/chat/gpt_audio_transformation.py b/litellm/llms/openai/chat/gpt_audio_transformation.py index 867575e796..581ffea2db 100644 --- a/litellm/llms/openai/chat/gpt_audio_transformation.py +++ b/litellm/llms/openai/chat/gpt_audio_transformation.py @@ -4,11 +4,7 @@ Support for GPT-4o audio Family OpenAI Doc: https://platform.openai.com/docs/guides/audio/quickstart?audio-generation-quickstart-example=audio-in&lang=python """ -import types -from typing import Optional, Union - import litellm -from litellm.types.llms.openai import AllMessageValues, ChatCompletionUserMessage from .gpt_transformation import OpenAIGPTConfig diff --git a/litellm/llms/openai/chat/gpt_transformation.py b/litellm/llms/openai/chat/gpt_transformation.py index 01bd720ba4..7b732a5557 100644 --- a/litellm/llms/openai/chat/gpt_transformation.py +++ b/litellm/llms/openai/chat/gpt_transformation.py @@ -2,14 +2,13 @@ Support for gpt model family """ -import types from typing import TYPE_CHECKING, Any, List, Optional, Union, cast import httpx import litellm from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException -from litellm.types.llms.openai import AllMessageValues, ChatCompletionUserMessage +from litellm.types.llms.openai import AllMessageValues from litellm.types.utils import ModelResponse from ..common_utils import OpenAIError diff --git a/litellm/llms/openai/chat/o1_transformation.py b/litellm/llms/openai/chat/o1_transformation.py index b9c1b42717..c1925926d6 100644 --- a/litellm/llms/openai/chat/o1_transformation.py +++ b/litellm/llms/openai/chat/o1_transformation.py @@ -11,8 +11,7 @@ Translations handled by LiteLLM: - Logprobs => drop param (if user opts in to dropping param) """ -import types -from typing import Any, List, Optional, Union +from typing import List, Optional import litellm from litellm import verbose_logger diff --git a/litellm/llms/openai/completion/transformation.py b/litellm/llms/openai/completion/transformation.py index 85a9115c74..781745cd28 100644 --- a/litellm/llms/openai/completion/transformation.py +++ b/litellm/llms/openai/completion/transformation.py @@ -2,14 +2,11 @@ Support for gpt model family """ -import types from typing import List, Optional, Union, cast -import litellm from litellm.litellm_core_utils.prompt_templates.common_utils import ( convert_content_list_to_str, ) -from litellm.llms.base_llm.chat.transformation import BaseConfig from litellm.types.llms.openai import ( AllMessageValues, AllPromptValues, @@ -18,7 +15,6 @@ from litellm.types.llms.openai import ( from litellm.types.utils import Choices, Message, ModelResponse, TextCompletionResponse from ..chat.gpt_transformation import OpenAIGPTConfig -from ..common_utils import OpenAIError from .utils import is_tokens_or_list_of_tokens diff --git a/litellm/llms/openai/completion/utils.py b/litellm/llms/openai/completion/utils.py index 096f691806..8b9650db14 100644 --- a/litellm/llms/openai/completion/utils.py +++ b/litellm/llms/openai/completion/utils.py @@ -1,4 +1,3 @@ -from collections.abc import Iterable from typing import List diff --git a/litellm/llms/openai/fine_tuning/handler.py b/litellm/llms/openai/fine_tuning/handler.py index 00099608c1..a3f088a861 100644 --- a/litellm/llms/openai/fine_tuning/handler.py +++ b/litellm/llms/openai/fine_tuning/handler.py @@ -2,11 +2,9 @@ from typing import Any, Coroutine, Optional, Union import httpx from openai import AsyncOpenAI, OpenAI -from openai.pagination import AsyncCursorPage from openai.types.fine_tuning import FineTuningJob from litellm._logging import verbose_logger -from litellm.types.llms.openai import FineTuningJobCreate class OpenAIFineTuningAPI: diff --git a/litellm/llms/openai/openai.py b/litellm/llms/openai/openai.py index 75752d249a..90b642a567 100644 --- a/litellm/llms/openai/openai.py +++ b/litellm/llms/openai/openai.py @@ -1,8 +1,5 @@ import hashlib -import json import os -import time -import traceback import types from typing import ( Any, @@ -22,32 +19,18 @@ from openai import AsyncOpenAI, OpenAI from openai.types.beta.assistant_deleted import AssistantDeleted from openai.types.file_deleted import FileDeleted from pydantic import BaseModel -from typing_extensions import overload, override +from typing_extensions import overload import litellm from litellm import LlmProviders from litellm._logging import verbose_logger from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj -from litellm.litellm_core_utils.prompt_templates.factory import ( - custom_prompt, - prompt_factory, -) from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException from litellm.llms.bedrock.chat.invoke_handler import MockResponseIterator from litellm.llms.custom_httpx.http_handler import _DEFAULT_TTL_FOR_HTTPX_CLIENTS -from litellm.secret_managers.main import get_secret_str -from litellm.types.utils import ( - EmbeddingResponse, - ImageResponse, - ModelResponse, - ProviderField, - TextCompletionResponse, - Usage, -) +from litellm.types.utils import EmbeddingResponse, ImageResponse, ModelResponse from litellm.utils import ( - Choices, CustomStreamWrapper, - Message, ProviderConfigManager, convert_to_model_response_object, ) diff --git a/litellm/llms/openai/realtime/handler.py b/litellm/llms/openai/realtime/handler.py index a790b18003..83398ad11a 100644 --- a/litellm/llms/openai/realtime/handler.py +++ b/litellm/llms/openai/realtime/handler.py @@ -4,7 +4,6 @@ This file contains the calling Azure OpenAI's `/openai/realtime` endpoint. This requires websockets, and is currently only supported on LiteLLM Proxy. """ -import asyncio from typing import Any, Optional from ....litellm_core_utils.litellm_logging import Logging as LiteLLMLogging diff --git a/litellm/llms/openai_like/chat/handler.py b/litellm/llms/openai_like/chat/handler.py index dee57b9a28..f190d37455 100644 --- a/litellm/llms/openai_like/chat/handler.py +++ b/litellm/llms/openai_like/chat/handler.py @@ -4,40 +4,20 @@ OpenAI-like chat completion handler For handling OpenAI-like chat completions, like IBM WatsonX, etc. """ -import copy import json -import os -import time -import types -from enum import Enum -from functools import partial -from typing import Any, Callable, List, Literal, Optional, Tuple, Union +from typing import Any, Callable, Optional, Union import httpx import litellm from litellm import LlmProviders -from litellm.litellm_core_utils.core_helpers import map_finish_reason from litellm.llms.bedrock.chat.invoke_handler import MockResponseIterator -from litellm.llms.custom_httpx.http_handler import ( - AsyncHTTPHandler, - HTTPHandler, - get_async_httpx_client, -) +from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler, HTTPHandler from litellm.llms.databricks.streaming_utils import ModelResponseIterator from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig from litellm.llms.openai.openai import OpenAIConfig from litellm.types.utils import CustomStreamingDecoder, ModelResponse -from litellm.utils import ( - Choices, - CustomStreamWrapper, - EmbeddingResponse, - Message, - ProviderConfigManager, - TextCompletionResponse, - Usage, - convert_to_model_response_object, -) +from litellm.utils import CustomStreamWrapper, ProviderConfigManager from ..common_utils import OpenAILikeBase, OpenAILikeError from .transformation import OpenAILikeChatConfig diff --git a/litellm/llms/openai_like/chat/transformation.py b/litellm/llms/openai_like/chat/transformation.py index 9d89e5d09f..37cfabdab5 100644 --- a/litellm/llms/openai_like/chat/transformation.py +++ b/litellm/llms/openai_like/chat/transformation.py @@ -2,18 +2,14 @@ OpenAI-like chat completion transformation """ -import types from typing import TYPE_CHECKING, Any, List, Optional, Tuple, Union import httpx -from pydantic import BaseModel -import litellm from litellm.secret_managers.main import get_secret_str -from litellm.types.llms.openai import AllMessageValues, ChatCompletionAssistantMessage +from litellm.types.llms.openai import ChatCompletionAssistantMessage from litellm.types.utils import ModelResponse -from ....utils import _remove_additional_properties, _remove_strict_from_schema from ...openai.chat.gpt_transformation import OpenAIGPTConfig if TYPE_CHECKING: diff --git a/litellm/llms/openai_like/embedding/handler.py b/litellm/llms/openai_like/embedding/handler.py index 03e7c0fb2e..6e2471baca 100644 --- a/litellm/llms/openai_like/embedding/handler.py +++ b/litellm/llms/openai_like/embedding/handler.py @@ -2,19 +2,12 @@ ## Handler file for OpenAI-like endpoints. ## Allows jina ai embedding calls - which don't allow 'encoding_format' in payload. -import copy import json -import os -import time -import types -from enum import Enum -from functools import partial -from typing import Any, Callable, List, Literal, Optional, Tuple, Union +from typing import Optional import httpx import litellm -from litellm.litellm_core_utils.core_helpers import map_finish_reason from litellm.llms.custom_httpx.http_handler import ( AsyncHTTPHandler, HTTPHandler, diff --git a/litellm/llms/openrouter/chat/transformation.py b/litellm/llms/openrouter/chat/transformation.py index 9565fc99e0..5a4c2ff209 100644 --- a/litellm/llms/openrouter/chat/transformation.py +++ b/litellm/llms/openrouter/chat/transformation.py @@ -6,10 +6,6 @@ Calls done in OpenAI/openai.py as OpenRouter is openai-compatible. Docs: https://openrouter.ai/docs/parameters """ -from typing import Optional - -from litellm import get_model_info, verbose_logger - from ...openai.chat.gpt_transformation import OpenAIGPTConfig diff --git a/litellm/llms/perplexity/chat/transformation.py b/litellm/llms/perplexity/chat/transformation.py index 6b709e7fc3..afa5008b79 100644 --- a/litellm/llms/perplexity/chat/transformation.py +++ b/litellm/llms/perplexity/chat/transformation.py @@ -2,16 +2,10 @@ Translate from OpenAI's `/v1/chat/completions` to Perplexity's `/v1/chat/completions` """ -import types -from typing import List, Optional, Tuple, Union +from typing import Optional, Tuple -from pydantic import BaseModel - -import litellm from litellm.secret_managers.main import get_secret_str -from litellm.types.llms.openai import AllMessageValues, ChatCompletionAssistantMessage -from ....utils import _remove_additional_properties, _remove_strict_from_schema from ...openai.chat.gpt_transformation import OpenAIGPTConfig diff --git a/litellm/llms/petals/completion/handler.py b/litellm/llms/petals/completion/handler.py index 108a8a334a..ae38baecf2 100644 --- a/litellm/llms/petals/completion/handler.py +++ b/litellm/llms/petals/completion/handler.py @@ -1,8 +1,4 @@ -import json -import os import time -import types -from enum import Enum from typing import Callable, Optional, Union import litellm @@ -92,7 +88,6 @@ def completion( else: try: - import torch from petals import AutoDistributedModelForCausalLM # type: ignore from transformers import AutoTokenizer except Exception: diff --git a/litellm/llms/petals/completion/transformation.py b/litellm/llms/petals/completion/transformation.py index 76b7df7235..79792c1f65 100644 --- a/litellm/llms/petals/completion/transformation.py +++ b/litellm/llms/petals/completion/transformation.py @@ -1,4 +1,3 @@ -import types from typing import Any, List, Optional, Union from httpx import Headers, Response diff --git a/litellm/llms/predibase/chat/handler.py b/litellm/llms/predibase/chat/handler.py index a798ed6b3c..43f4b06745 100644 --- a/litellm/llms/predibase/chat/handler.py +++ b/litellm/llms/predibase/chat/handler.py @@ -1,22 +1,17 @@ # What is this? ## Controller file for Predibase Integration - https://predibase.com/ -import copy import json import os import time -import traceback -import types -from enum import Enum from functools import partial -from typing import Callable, List, Literal, Optional, Union +from typing import Callable, Optional, Union import httpx # type: ignore import litellm import litellm.litellm_core_utils import litellm.litellm_core_utils.litellm_logging -from litellm import verbose_logger from litellm.litellm_core_utils.core_helpers import map_finish_reason from litellm.litellm_core_utils.prompt_templates.factory import ( custom_prompt, @@ -29,7 +24,6 @@ from litellm.llms.custom_httpx.http_handler import ( from litellm.types.utils import LiteLLMLoggingBaseClass from litellm.utils import Choices, CustomStreamWrapper, Message, ModelResponse, Usage -from ...base import BaseLLM from ..common_utils import PredibaseError diff --git a/litellm/llms/predibase/chat/transformation.py b/litellm/llms/predibase/chat/transformation.py index 597f24794b..452c6f8cd5 100644 --- a/litellm/llms/predibase/chat/transformation.py +++ b/litellm/llms/predibase/chat/transformation.py @@ -1,4 +1,3 @@ -import types from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from httpx import Headers, Response diff --git a/litellm/llms/replicate/chat/handler.py b/litellm/llms/replicate/chat/handler.py index 7d1a86fa00..cd180e4ea6 100644 --- a/litellm/llms/replicate/chat/handler.py +++ b/litellm/llms/replicate/chat/handler.py @@ -1,11 +1,7 @@ import asyncio import json -import os import time -import types -from typing import Any, Callable, List, Optional, Tuple, Union - -import httpx # type: ignore +from typing import Callable, List, Union import litellm from litellm.llms.custom_httpx.http_handler import ( @@ -15,7 +11,7 @@ from litellm.llms.custom_httpx.http_handler import ( get_async_httpx_client, ) from litellm.types.llms.openai import AllMessageValues -from litellm.utils import CustomStreamWrapper, ModelResponse, Usage +from litellm.utils import CustomStreamWrapper, ModelResponse from ..common_utils import ReplicateError from .transformation import ReplicateConfig diff --git a/litellm/llms/replicate/chat/transformation.py b/litellm/llms/replicate/chat/transformation.py index ea0fbd035f..0c456b8db7 100644 --- a/litellm/llms/replicate/chat/transformation.py +++ b/litellm/llms/replicate/chat/transformation.py @@ -1,4 +1,3 @@ -import types from typing import TYPE_CHECKING, Any, List, Optional, Union import httpx @@ -13,7 +12,7 @@ from litellm.litellm_core_utils.prompt_templates.factory import ( ) from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException from litellm.types.llms.openai import AllMessageValues -from litellm.types.utils import Choices, Message, ModelResponse, Usage +from litellm.types.utils import ModelResponse, Usage from litellm.utils import token_counter from ..common_utils import ReplicateError diff --git a/litellm/llms/sagemaker/chat/handler.py b/litellm/llms/sagemaker/chat/handler.py index 5daa91277d..3a90a15093 100644 --- a/litellm/llms/sagemaker/chat/handler.py +++ b/litellm/llms/sagemaker/chat/handler.py @@ -1,13 +1,12 @@ import json from copy import deepcopy -from typing import Any, Callable, Dict, Optional, Union +from typing import Callable, Optional, Union import httpx +from litellm.llms.bedrock.base_aws_llm import BaseAWSLLM from litellm.utils import ModelResponse, get_secret -from litellm.llms.bedrock.base_aws_llm import BaseAWSLLM -from litellm.litellm_core_utils.prompt_templates.factory import custom_prompt, prompt_factory from ..common_utils import AWSEventStreamDecoder from .transformation import SagemakerChatConfig @@ -79,10 +78,8 @@ class SagemakerChatHandler(BaseAWSLLM): extra_headers: Optional[dict] = None, ): try: - import boto3 from botocore.auth import SigV4Auth from botocore.awsrequest import AWSRequest - from botocore.credentials import Credentials except ImportError: raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.") diff --git a/litellm/llms/sagemaker/completion/handler.py b/litellm/llms/sagemaker/completion/handler.py index a8b68f910b..0a403dc484 100644 --- a/litellm/llms/sagemaker/completion/handler.py +++ b/litellm/llms/sagemaker/completion/handler.py @@ -1,28 +1,14 @@ -import io import json -import os -import sys -import time -import traceback -import types from copy import deepcopy -from enum import Enum -from functools import partial -from typing import Any, AsyncIterator, Callable, Dict, Iterator, List, Optional, Union +from typing import Any, Callable, List, Optional, Union import httpx import litellm from litellm._logging import verbose_logger from litellm.litellm_core_utils.asyncify import asyncify -from litellm.litellm_core_utils.prompt_templates.factory import ( - custom_prompt, - prompt_factory, -) from litellm.llms.bedrock.base_aws_llm import BaseAWSLLM from litellm.llms.custom_httpx.http_handler import ( - AsyncHTTPHandler, - HTTPHandler, _get_httpx_client, get_async_httpx_client, ) @@ -116,10 +102,8 @@ class SagemakerLLM(BaseAWSLLM): extra_headers: Optional[dict] = None, ): try: - import boto3 from botocore.auth import SigV4Auth from botocore.awsrequest import AWSRequest - from botocore.credentials import Credentials except ImportError: raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.") diff --git a/litellm/llms/sagemaker/completion/transformation.py b/litellm/llms/sagemaker/completion/transformation.py index e411bea519..a2d2c34f9b 100644 --- a/litellm/llms/sagemaker/completion/transformation.py +++ b/litellm/llms/sagemaker/completion/transformation.py @@ -6,7 +6,6 @@ In the Huggingface TGI format. import json import time -import types from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union from httpx._models import Headers, Response diff --git a/litellm/llms/sambanova/chat.py b/litellm/llms/sambanova/chat.py index c5e0de4d99..4eea1914ce 100644 --- a/litellm/llms/sambanova/chat.py +++ b/litellm/llms/sambanova/chat.py @@ -4,7 +4,6 @@ Sambanova Chat Completions API this is OpenAI compatible - no translation needed / occurs """ -import types from typing import Optional from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig diff --git a/litellm/llms/together_ai/rerank/handler.py b/litellm/llms/together_ai/rerank/handler.py index 3e6d5d6676..c5b02731e1 100644 --- a/litellm/llms/together_ai/rerank/handler.py +++ b/litellm/llms/together_ai/rerank/handler.py @@ -6,9 +6,6 @@ LiteLLM supports the re rank API format, no paramter transformation occurs from typing import Any, Dict, List, Optional, Union -import httpx -from pydantic import BaseModel - import litellm from litellm.llms.base import BaseLLM from litellm.llms.custom_httpx.http_handler import ( @@ -16,13 +13,7 @@ from litellm.llms.custom_httpx.http_handler import ( get_async_httpx_client, ) from litellm.llms.together_ai.rerank.transformation import TogetherAIRerankConfig -from litellm.types.rerank import ( - RerankBilledUnits, - RerankRequest, - RerankResponse, - RerankResponseMeta, - RerankTokens, -) +from litellm.types.rerank import RerankRequest, RerankResponse class TogetherAIRerank(BaseLLM): diff --git a/litellm/llms/triton/completion/handler.py b/litellm/llms/triton/completion/handler.py index d7d1d43a34..f5484142c1 100644 --- a/litellm/llms/triton/completion/handler.py +++ b/litellm/llms/triton/completion/handler.py @@ -1,32 +1,14 @@ import json -import os -import time -from enum import Enum -from typing import Any, Callable, Dict, List, Optional, Sequence, Union - -import httpx # type: ignore +from typing import Any, List, Optional, Union import litellm -from litellm.litellm_core_utils.prompt_templates.factory import ( - custom_prompt, - prompt_factory, -) from litellm.llms.custom_httpx.http_handler import ( AsyncHTTPHandler, HTTPHandler, _get_httpx_client, get_async_httpx_client, ) -from litellm.utils import ( - Choices, - CustomStreamWrapper, - Delta, - EmbeddingResponse, - Message, - ModelResponse, - Usage, - map_finish_reason, -) +from litellm.utils import Choices, EmbeddingResponse, Message, ModelResponse from ...base import BaseLLM from ..common_utils import TritonError diff --git a/litellm/llms/vertex_ai/batches/handler.py b/litellm/llms/vertex_ai/batches/handler.py index 8d4f215dbc..06b2fd6f9d 100644 --- a/litellm/llms/vertex_ai/batches/handler.py +++ b/litellm/llms/vertex_ai/batches/handler.py @@ -5,26 +5,11 @@ import httpx import litellm from litellm.llms.custom_httpx.http_handler import ( - AsyncHTTPHandler, - HTTPHandler, _get_httpx_client, get_async_httpx_client, ) -from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( - VertexAIError, - VertexLLM, -) -from litellm.types.llms.openai import ( - Batch, - CancelBatchRequest, - CreateBatchRequest, - CreateFileRequest, - FileContentRequest, - FileObject, - FileTypes, - HttpxBinaryResponseContent, - RetrieveBatchRequest, -) +from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import VertexLLM +from litellm.types.llms.openai import Batch, CreateBatchRequest from litellm.types.llms.vertex_ai import VertexAIBatchPredictionJob from .transformation import VertexAIBatchTransformation diff --git a/litellm/llms/vertex_ai/batches/transformation.py b/litellm/llms/vertex_ai/batches/transformation.py index 157f6094ad..c18bbe4292 100644 --- a/litellm/llms/vertex_ai/batches/transformation.py +++ b/litellm/llms/vertex_ai/batches/transformation.py @@ -1,5 +1,5 @@ import uuid -from typing import Any, Dict, Literal +from typing import Dict from litellm.llms.vertex_ai.common_utils import ( _convert_vertex_datetime_to_openai_datetime, diff --git a/litellm/llms/vertex_ai/context_caching/transformation.py b/litellm/llms/vertex_ai/context_caching/transformation.py index 8caa112eaa..55203196e0 100644 --- a/litellm/llms/vertex_ai/context_caching/transformation.py +++ b/litellm/llms/vertex_ai/context_caching/transformation.py @@ -7,7 +7,7 @@ Why separate file? Make it easy to see how transformation works from typing import List, Tuple from litellm.types.llms.openai import AllMessageValues -from litellm.types.llms.vertex_ai import CachedContentRequestBody, SystemInstructions +from litellm.types.llms.vertex_ai import CachedContentRequestBody from litellm.utils import is_cached_message from ..common_utils import VertexAIError, get_supports_system_message diff --git a/litellm/llms/vertex_ai/context_caching/vertex_ai_context_caching.py b/litellm/llms/vertex_ai/context_caching/vertex_ai_context_caching.py index 991d29d340..5cfb9141a5 100644 --- a/litellm/llms/vertex_ai/context_caching/vertex_ai_context_caching.py +++ b/litellm/llms/vertex_ai/context_caching/vertex_ai_context_caching.py @@ -1,5 +1,4 @@ -import types -from typing import Callable, List, Literal, Optional, Tuple, Union +from typing import List, Literal, Optional, Tuple, Union import httpx @@ -14,10 +13,8 @@ from litellm.llms.custom_httpx.http_handler import ( from litellm.llms.openai.openai import AllMessageValues from litellm.types.llms.vertex_ai import ( CachedContentListAllResponseBody, - RequestBody, VertexAICachedContentResponseObject, ) -from litellm.utils import ModelResponse from ..common_utils import VertexAIError from ..vertex_llm_base import VertexBase diff --git a/litellm/llms/vertex_ai/files/handler.py b/litellm/llms/vertex_ai/files/handler.py index 9b2cf9c11d..dca557a494 100644 --- a/litellm/llms/vertex_ai/files/handler.py +++ b/litellm/llms/vertex_ai/files/handler.py @@ -1,35 +1,12 @@ -import json -import uuid -from typing import Any, Coroutine, Dict, Optional, Union +from typing import Any, Coroutine, Optional, Union import httpx -import litellm from litellm.integrations.gcs_bucket.gcs_bucket_base import ( GCSBucketBase, GCSLoggingConfig, ) -from litellm.llms.custom_httpx.http_handler import ( - AsyncHTTPHandler, - HTTPHandler, - _get_httpx_client, - get_async_httpx_client, -) -from litellm.llms.vertex_ai.common_utils import ( - _convert_vertex_datetime_to_openai_datetime, -) -from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( - VertexAIError, - VertexLLM, -) -from litellm.types.llms.openai import ( - Batch, - CreateFileRequest, - FileContentRequest, - FileObject, - FileTypes, - HttpxBinaryResponseContent, -) +from litellm.types.llms.openai import CreateFileRequest, FileObject from .transformation import VertexAIFilesTransformation diff --git a/litellm/llms/vertex_ai/files/transformation.py b/litellm/llms/vertex_ai/files/transformation.py index 0bffa363cd..a124e20583 100644 --- a/litellm/llms/vertex_ai/files/transformation.py +++ b/litellm/llms/vertex_ai/files/transformation.py @@ -5,21 +5,11 @@ from typing import Any, Dict, List, Optional, Tuple, Union from litellm.llms.vertex_ai.common_utils import ( _convert_vertex_datetime_to_openai_datetime, ) -from litellm.llms.vertex_ai.gemini.transformation import ( - _transform_request_body, -) +from litellm.llms.vertex_ai.gemini.transformation import _transform_request_body from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( VertexGeminiConfig, ) -from litellm.types.llms.openai import ( - Batch, - CreateFileRequest, - FileContentRequest, - FileObject, - FileTypes, - HttpxBinaryResponseContent, - PathLike, -) +from litellm.types.llms.openai import CreateFileRequest, FileObject, FileTypes, PathLike class VertexAIFilesTransformation(VertexGeminiConfig): diff --git a/litellm/llms/vertex_ai/fine_tuning/handler.py b/litellm/llms/vertex_ai/fine_tuning/handler.py index 230c9d766f..faaf0f58bc 100644 --- a/litellm/llms/vertex_ai/fine_tuning/handler.py +++ b/litellm/llms/vertex_ai/fine_tuning/handler.py @@ -1,20 +1,14 @@ import traceback from datetime import datetime -from typing import Any, Coroutine, Literal, Optional, Union +from typing import Literal, Optional, Union import httpx from openai.types.fine_tuning.fine_tuning_job import FineTuningJob, Hyperparameters import litellm from litellm._logging import verbose_logger -from litellm.llms.base import BaseLLM -from litellm.llms.custom_httpx.http_handler import ( - HTTPHandler, - get_async_httpx_client, -) -from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( - VertexLLM, -) +from litellm.llms.custom_httpx.http_handler import HTTPHandler, get_async_httpx_client +from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import VertexLLM from litellm.types.llms.openai import FineTuningJobCreate from litellm.types.llms.vertex_ai import ( FineTuneJobCreate, @@ -131,7 +125,6 @@ class VertexFineTuningAPI(VertexLLM): headers: dict, request_data: FineTuneJobCreate, ): - from litellm.fine_tuning.main import FineTuningJob try: verbose_logger.debug( diff --git a/litellm/llms/vertex_ai/gemini/transformation.py b/litellm/llms/vertex_ai/gemini/transformation.py index e6ac6928bd..eb13dbb8b0 100644 --- a/litellm/llms/vertex_ai/gemini/transformation.py +++ b/litellm/llms/vertex_ai/gemini/transformation.py @@ -23,7 +23,6 @@ from litellm.types.files import ( get_file_mime_type_for_file_type, get_file_type_from_extension, is_gemini_1_5_accepted_file_type, - is_video_file_type, ) from litellm.types.llms.openai import ( AllMessageValues, @@ -41,7 +40,6 @@ from litellm.types.llms.vertex_ai import ( ToolConfig, Tools, ) -from litellm.utils import CustomStreamWrapper, ModelResponse, Usage from ..common_utils import ( _check_text_in_content, diff --git a/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py b/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py index c75cff1430..1a08de9342 100644 --- a/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py +++ b/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py @@ -1,14 +1,10 @@ # What is this? ## httpx client for vertex ai calls ## Initial implementation - covers gemini + image gen calls -import inspect import json -import os -import time import types import uuid from copy import deepcopy -from enum import Enum from functools import partial from typing import ( TYPE_CHECKING, @@ -54,13 +50,9 @@ from litellm.types.llms.vertex_ai import ( FunctionCallingConfig, FunctionDeclaration, GenerateContentResponseBody, - GenerationConfig, HttpxPartType, LogprobsResult, PartType, - RequestBody, - SafetSettingsConfig, - SystemInstructions, ToolConfig, Tools, ) @@ -70,22 +62,13 @@ from litellm.types.utils import ( GenericStreamingChunk, TopLogprob, ) -from litellm.utils import CustomStreamWrapper, ModelResponse, Usage +from litellm.utils import CustomStreamWrapper, ModelResponse from ....utils import _remove_additional_properties, _remove_strict_from_schema -from ...base import BaseLLM -from ..common_utils import ( - VertexAIError, - _build_vertex_schema, - _get_gemini_url, - _get_vertex_url, - all_gemini_url_modes, - get_supports_system_message, -) +from ..common_utils import VertexAIError, _build_vertex_schema from ..vertex_llm_base import VertexBase from .transformation import ( _gemini_convert_messages_with_history, - _process_gemini_image, async_transform_request_body, sync_transform_request_body, ) diff --git a/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_handler.py b/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_handler.py index 8e2d1f39a0..0fe5145a14 100644 --- a/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_handler.py +++ b/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_handler.py @@ -3,7 +3,7 @@ Google AI Studio /batchEmbedContents Embeddings Endpoint """ import json -from typing import Any, List, Literal, Optional, Union +from typing import Any, Literal, Optional, Union import httpx diff --git a/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py b/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py index f1785e58f1..592dac5846 100644 --- a/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py +++ b/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py @@ -18,8 +18,6 @@ from litellm.types.llms.vertex_ai import ( from litellm.types.utils import Embedding, Usage from litellm.utils import get_formatted_prompt, token_counter -from ..common_utils import VertexAIError - def transform_openai_input_gemini_content( input: EmbeddingInput, model: str, optional_params: dict diff --git a/litellm/llms/vertex_ai/image_generation/cost_calculator.py b/litellm/llms/vertex_ai/image_generation/cost_calculator.py index 2d7fa37f73..2ba18c095b 100644 --- a/litellm/llms/vertex_ai/image_generation/cost_calculator.py +++ b/litellm/llms/vertex_ai/image_generation/cost_calculator.py @@ -2,8 +2,6 @@ Vertex AI Image Generation Cost Calculator """ -from typing import Optional - import litellm from litellm.types.utils import ImageResponse diff --git a/litellm/llms/vertex_ai/multimodal_embeddings/embedding_handler.py b/litellm/llms/vertex_ai/multimodal_embeddings/embedding_handler.py index eaffbd38ee..f63d1ce11e 100644 --- a/litellm/llms/vertex_ai/multimodal_embeddings/embedding_handler.py +++ b/litellm/llms/vertex_ai/multimodal_embeddings/embedding_handler.py @@ -1,5 +1,5 @@ import json -from typing import Any, Callable, Dict, List, Literal, Optional, Tuple, Union +from typing import List, Literal, Optional, Union import httpx @@ -18,7 +18,6 @@ from litellm.types.llms.vertex_ai import ( Instance, InstanceImage, InstanceVideo, - MultimodalPrediction, MultimodalPredictions, VertexMultimodalEmbeddingRequest, ) diff --git a/litellm/llms/vertex_ai/text_to_speech/text_to_speech_handler.py b/litellm/llms/vertex_ai/text_to_speech/text_to_speech_handler.py index 18ebaee1ed..10c73e815c 100644 --- a/litellm/llms/vertex_ai/text_to_speech/text_to_speech_handler.py +++ b/litellm/llms/vertex_ai/text_to_speech/text_to_speech_handler.py @@ -1,22 +1,14 @@ -import traceback -from datetime import datetime -from typing import Any, Coroutine, Literal, Optional, TypedDict, Union +from typing import Optional, TypedDict, Union import httpx import litellm -from litellm._logging import verbose_logger -from litellm.llms.base import BaseLLM from litellm.llms.custom_httpx.http_handler import ( - AsyncHTTPHandler, - HTTPHandler, _get_httpx_client, get_async_httpx_client, ) from litellm.llms.openai.openai import HttpxBinaryResponseContent -from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( - VertexLLM, -) +from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import VertexLLM class VertexInput(TypedDict, total=False): diff --git a/litellm/llms/vertex_ai/vertex_ai_non_gemini.py b/litellm/llms/vertex_ai/vertex_ai_non_gemini.py index 8908ccc9f9..418d8813dc 100644 --- a/litellm/llms/vertex_ai/vertex_ai_non_gemini.py +++ b/litellm/llms/vertex_ai/vertex_ai_non_gemini.py @@ -1,41 +1,16 @@ -import inspect import json import os import time -import types -import uuid -from enum import Enum -from typing import Any, Callable, List, Literal, Optional, Union, cast +from typing import Any, Callable, Optional, cast import httpx -from pydantic import BaseModel import litellm -from litellm._logging import verbose_logger from litellm.litellm_core_utils.core_helpers import map_finish_reason -from litellm.litellm_core_utils.prompt_templates.factory import ( - convert_to_anthropic_image_obj, - convert_to_gemini_tool_call_invoke, - convert_to_gemini_tool_call_result, -) from litellm.llms.custom_httpx.http_handler import _DEFAULT_TTL_FOR_HTTPX_CLIENTS -from litellm.types.files import ( - get_file_mime_type_for_file_type, - get_file_type_from_extension, - is_gemini_1_5_accepted_file_type, - is_video_file_type, -) -from litellm.types.llms.openai import ( - AllMessageValues, - ChatCompletionAssistantMessage, - ChatCompletionImageObject, - ChatCompletionTextObject, -) from litellm.types.llms.vertex_ai import * from litellm.utils import CustomStreamWrapper, ModelResponse, Usage -from .common_utils import _check_text_in_content - class VertexAIError(Exception): def __init__(self, status_code, message): @@ -50,9 +25,6 @@ class VertexAIError(Exception): ) # Call the base class constructor with the parameters it needs -import asyncio - - class TextStreamer: """ Fake streaming iterator for Vertex AI Model Garden calls @@ -144,7 +116,6 @@ def completion( # noqa: PLR0915 ) try: import google.auth # type: ignore - import proto # type: ignore from google.cloud import aiplatform # type: ignore from google.cloud.aiplatform_v1beta1.types import ( content as gapic_content_types, # type: ignore @@ -152,16 +123,8 @@ def completion( # noqa: PLR0915 from google.protobuf import json_format # type: ignore from google.protobuf.struct_pb2 import Value # type: ignore from vertexai.language_models import CodeGenerationModel, TextGenerationModel - from vertexai.preview.generative_models import ( - GenerationConfig, - GenerativeModel, - Part, - ) - from vertexai.preview.language_models import ( - ChatModel, - CodeChatModel, - InputOutputTextPair, - ) + from vertexai.preview.generative_models import GenerativeModel + from vertexai.preview.language_models import ChatModel, CodeChatModel ## Load credentials with the correct quota project ref: https://github.com/googleapis/python-aiplatform/issues/2557#issuecomment-1709284744 print_verbose( @@ -533,7 +496,6 @@ async def async_completion( # noqa: PLR0915 Add support for acompletion calls for gemini-pro """ try: - import proto # type: ignore response_obj = None completion_response = None diff --git a/litellm/llms/vertex_ai/vertex_ai_partner_models/ai21/transformation.py b/litellm/llms/vertex_ai/vertex_ai_partner_models/ai21/transformation.py index cb3364445f..7ddd1cf89f 100644 --- a/litellm/llms/vertex_ai/vertex_ai_partner_models/ai21/transformation.py +++ b/litellm/llms/vertex_ai/vertex_ai_partner_models/ai21/transformation.py @@ -1,5 +1,5 @@ import types -from typing import Callable, Literal, Optional, Union +from typing import Optional import litellm diff --git a/litellm/llms/vertex_ai/vertex_ai_partner_models/anthropic/transformation.py b/litellm/llms/vertex_ai/vertex_ai_partner_models/anthropic/transformation.py index 01f0e5c27b..048cb3f0f1 100644 --- a/litellm/llms/vertex_ai/vertex_ai_partner_models/anthropic/transformation.py +++ b/litellm/llms/vertex_ai/vertex_ai_partner_models/anthropic/transformation.py @@ -1,35 +1,11 @@ # What is this? ## Handler file for calling claude-3 on vertex ai -import copy -import json -import os -import time -import types -import uuid -from enum import Enum -from typing import Any, Callable, List, Optional, Tuple, Union +from typing import List, Optional import httpx import litellm -from litellm.litellm_core_utils.core_helpers import map_finish_reason -from litellm.litellm_core_utils.prompt_templates.factory import ( - construct_tool_use_system_prompt, - contains_tag, - custom_prompt, - extract_between_tags, - parse_xml_params, - prompt_factory, - response_schema_prompt, -) -from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler, HTTPHandler -from litellm.types.llms.openai import ( - AllMessageValues, - ChatCompletionToolParam, - ChatCompletionToolParamFunctionChunk, -) -from litellm.types.utils import ResponseFormatChunk -from litellm.utils import CustomStreamWrapper, ModelResponse, Usage +from litellm.types.llms.openai import AllMessageValues from ....anthropic.chat.transformation import AnthropicConfig diff --git a/litellm/llms/vertex_ai/vertex_ai_partner_models/llama3/transformation.py b/litellm/llms/vertex_ai/vertex_ai_partner_models/llama3/transformation.py index 2170a92418..331d378c84 100644 --- a/litellm/llms/vertex_ai/vertex_ai_partner_models/llama3/transformation.py +++ b/litellm/llms/vertex_ai/vertex_ai_partner_models/llama3/transformation.py @@ -1,5 +1,5 @@ import types -from typing import Callable, Literal, Optional, Union +from typing import Optional import litellm diff --git a/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py b/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py index 656277169d..344f66682f 100644 --- a/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py +++ b/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py @@ -1,8 +1,7 @@ # What is this? ## API Handler for calling Vertex AI Partner Models -import types from enum import Enum -from typing import Callable, Literal, Optional, Union +from typing import Callable, Optional, Union import httpx # type: ignore @@ -88,13 +87,11 @@ class VertexAIPartnerModels(VertexBase): ): try: import vertexai - from google.cloud import aiplatform from litellm.llms.anthropic.chat import AnthropicChatCompletion from litellm.llms.codestral.completion.handler import ( CodestralTextCompletion, ) - from litellm.llms.openai.openai import OpenAIChatCompletion from litellm.llms.openai_like.chat.handler import OpenAILikeChatHandler from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( VertexLLM, diff --git a/litellm/llms/vertex_ai/vertex_embeddings/embedding_handler.py b/litellm/llms/vertex_ai/vertex_embeddings/embedding_handler.py index d1634f1108..0f73db30a0 100644 --- a/litellm/llms/vertex_ai/vertex_embeddings/embedding_handler.py +++ b/litellm/llms/vertex_ai/vertex_embeddings/embedding_handler.py @@ -1,13 +1,8 @@ -import json -import os -import types -from typing import Any, Literal, Optional, Union, cast +from typing import Literal, Optional, Union import httpx -from pydantic import BaseModel import litellm -from litellm._logging import verbose_logger from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObject from litellm.llms.custom_httpx.http_handler import ( AsyncHTTPHandler, @@ -18,9 +13,8 @@ from litellm.llms.custom_httpx.http_handler import ( from litellm.llms.vertex_ai.vertex_ai_non_gemini import VertexAIError from litellm.llms.vertex_ai.vertex_llm_base import VertexBase from litellm.types.llms.vertex_ai import * -from litellm.types.utils import EmbeddingResponse, Usage +from litellm.types.utils import EmbeddingResponse -from .transformation import VertexAITextEmbeddingConfig from .types import * diff --git a/litellm/llms/vertex_ai/vertex_embeddings/transformation.py b/litellm/llms/vertex_ai/vertex_embeddings/transformation.py index 00f384c32c..41eb65be69 100644 --- a/litellm/llms/vertex_ai/vertex_embeddings/transformation.py +++ b/litellm/llms/vertex_ai/vertex_embeddings/transformation.py @@ -3,7 +3,6 @@ from typing import List, Literal, Optional, Union from pydantic import BaseModel -import litellm from litellm.types.utils import EmbeddingResponse, Usage from .types import * diff --git a/litellm/llms/vertex_ai/vertex_embeddings/types.py b/litellm/llms/vertex_ai/vertex_embeddings/types.py index 4333055168..c0c53b170c 100644 --- a/litellm/llms/vertex_ai/vertex_embeddings/types.py +++ b/litellm/llms/vertex_ai/vertex_embeddings/types.py @@ -3,7 +3,7 @@ Types for Vertex Embeddings Requests """ from enum import Enum -from typing import List, Literal, Optional, TypedDict, Union +from typing import List, Optional, TypedDict, Union class TaskType(str, Enum): diff --git a/litellm/llms/vertex_ai/vertex_llm_base.py b/litellm/llms/vertex_ai/vertex_llm_base.py index cf130bb142..71346a2e01 100644 --- a/litellm/llms/vertex_ai/vertex_llm_base.py +++ b/litellm/llms/vertex_ai/vertex_llm_base.py @@ -6,20 +6,14 @@ Handles Authentication and generating request urls for Vertex AI and Google AI S import json import os -from typing import TYPE_CHECKING, Any, Dict, Literal, Optional, Tuple +from typing import TYPE_CHECKING, Any, Literal, Optional, Tuple from litellm._logging import verbose_logger from litellm.litellm_core_utils.asyncify import asyncify from litellm.llms.base import BaseLLM from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler -from .common_utils import ( - VertexAIError, - _get_gemini_url, - _get_vertex_url, - all_gemini_url_modes, - get_supports_system_message, -) +from .common_utils import _get_gemini_url, _get_vertex_url, all_gemini_url_modes if TYPE_CHECKING: from google.auth.credentials import Credentials as GoogleCredentialsObject @@ -44,7 +38,6 @@ class VertexBase(BaseLLM): ) -> Tuple[Any, str]: import google.auth as google_auth from google.auth import identity_pool - from google.auth.credentials import Credentials # type: ignore[import-untyped] from google.auth.transport.requests import ( Request, # type: ignore[import-untyped] ) diff --git a/litellm/llms/vertex_ai/vertex_model_garden/main.py b/litellm/llms/vertex_ai/vertex_model_garden/main.py index 8d1e0c9db2..20ee38e979 100644 --- a/litellm/llms/vertex_ai/vertex_model_garden/main.py +++ b/litellm/llms/vertex_ai/vertex_model_garden/main.py @@ -16,13 +16,10 @@ Sent to this route when `model` is in the format `vertex_ai/openai/{MODEL_ID}` Vertex Documentation for using the OpenAI /chat/completions endpoint: https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/model_garden/model_garden_pytorch_llama3_deployment.ipynb """ -import types -from enum import Enum -from typing import Callable, Literal, Optional, Union +from typing import Callable, Optional, Union import httpx # type: ignore -import litellm from litellm.utils import ModelResponse from ..common_utils import VertexAIError @@ -73,7 +70,6 @@ class VertexAIModelGardenModels(VertexBase): """ try: import vertexai - from google.cloud import aiplatform from litellm.llms.openai_like.chat.handler import OpenAILikeChatHandler from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( diff --git a/litellm/llms/vllm/completion/handler.py b/litellm/llms/vllm/completion/handler.py index a64ed8974a..1f13082917 100644 --- a/litellm/llms/vllm/completion/handler.py +++ b/litellm/llms/vllm/completion/handler.py @@ -1,8 +1,5 @@ -import json -import os import time # type: ignore -from enum import Enum -from typing import Any, Callable +from typing import Callable import httpx @@ -30,7 +27,7 @@ class VLLMError(Exception): def validate_environment(model: str): global llm try: - from vllm import LLM, SamplingParams # type: ignore + from vllm import LLM, SamplingParams # type: ignore if llm is None: llm = LLM(model=model) diff --git a/litellm/llms/vllm/completion/transformation.py b/litellm/llms/vllm/completion/transformation.py index 022812b769..ec4c07e95d 100644 --- a/litellm/llms/vllm/completion/transformation.py +++ b/litellm/llms/vllm/completion/transformation.py @@ -4,10 +4,6 @@ Translates from OpenAI's `/v1/chat/completions` to the VLLM sdk `llm.generate`. NOT RECOMMENDED FOR PRODUCTION USE. Use `hosted_vllm/` instead. """ -from typing import List - -from litellm.types.llms.openai import AllMessageValues - from ...hosted_vllm.chat.transformation import HostedVLLMChatConfig diff --git a/litellm/llms/volcengine.py b/litellm/llms/volcengine.py index a8ecb67663..e4a78104f4 100644 --- a/litellm/llms/volcengine.py +++ b/litellm/llms/volcengine.py @@ -1,7 +1,5 @@ -import types -from typing import Literal, Optional, Union +from typing import Optional, Union -import litellm from litellm.llms.openai_like.chat.transformation import OpenAILikeChatConfig diff --git a/litellm/llms/voyage/embedding/transformation.py b/litellm/llms/voyage/embedding/transformation.py index 6d4fb89ddc..2a51bdde14 100644 --- a/litellm/llms/voyage/embedding/transformation.py +++ b/litellm/llms/voyage/embedding/transformation.py @@ -1,16 +1,13 @@ -import json -from typing import Any, List, Optional, Tuple, Union +from typing import List, Optional, Union import httpx -import litellm -from litellm._logging import verbose_logger from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj from litellm.llms.base_llm.chat.transformation import BaseLLMException from litellm.llms.base_llm.embedding.transformation import BaseEmbeddingConfig from litellm.secret_managers.main import get_secret_str from litellm.types.llms.openai import AllMessageValues -from litellm.types.utils import EmbeddingResponse, ModelResponse, Usage +from litellm.types.utils import EmbeddingResponse, Usage class VoyageError(BaseLLMException): diff --git a/litellm/llms/watsonx/chat/transformation.py b/litellm/llms/watsonx/chat/transformation.py index 6e9dbe733c..5df9430057 100644 --- a/litellm/llms/watsonx/chat/transformation.py +++ b/litellm/llms/watsonx/chat/transformation.py @@ -4,14 +4,9 @@ Translation from OpenAI's `/chat/completions` endpoint to IBM WatsonX's `/text/c Docs: https://cloud.ibm.com/apidocs/watsonx-ai#text-chat """ -import types from typing import List, Optional, Tuple, Union -from pydantic import BaseModel - -import litellm from litellm.secret_managers.main import get_secret_str -from litellm.types.llms.openai import AllMessageValues, ChatCompletionAssistantMessage from ....utils import _remove_additional_properties, _remove_strict_from_schema from ...openai.chat.gpt_transformation import OpenAIGPTConfig diff --git a/litellm/llms/watsonx/completion/handler.py b/litellm/llms/watsonx/completion/handler.py index df8600e99d..2d3760e881 100644 --- a/litellm/llms/watsonx/completion/handler.py +++ b/litellm/llms/watsonx/completion/handler.py @@ -1,18 +1,13 @@ import asyncio import json # noqa: E401 import time -import types from contextlib import asynccontextmanager, contextmanager from datetime import datetime -from enum import Enum from typing import ( Any, - AsyncContextManager, AsyncGenerator, AsyncIterator, Callable, - ContextManager, - Dict, Generator, Iterator, List, @@ -26,17 +21,13 @@ import requests # type: ignore import litellm from litellm.litellm_core_utils.prompt_templates import factory as ptf from litellm.litellm_core_utils.streaming_handler import CustomStreamWrapper -from litellm.llms.custom_httpx.http_handler import ( - AsyncHTTPHandler, - get_async_httpx_client, -) -from litellm.secret_managers.main import get_secret_str +from litellm.llms.custom_httpx.http_handler import get_async_httpx_client from litellm.types.llms.openai import AllMessageValues from litellm.types.llms.watsonx import WatsonXAIEndpoint from litellm.utils import EmbeddingResponse, ModelResponse, Usage, map_finish_reason from ...base import BaseLLM -from ..common_utils import WatsonXAIError, _get_api_params, generate_iam_token +from ..common_utils import WatsonXAIError, _get_api_params from .transformation import IBMWatsonXAIConfig diff --git a/litellm/llms/watsonx/completion/transformation.py b/litellm/llms/watsonx/completion/transformation.py index dd56577633..e1706291d5 100644 --- a/litellm/llms/watsonx/completion/transformation.py +++ b/litellm/llms/watsonx/completion/transformation.py @@ -1,43 +1,13 @@ -import asyncio -import json # noqa: E401 -import time -import types -from contextlib import asynccontextmanager, contextmanager -from datetime import datetime -from enum import Enum -from typing import ( - TYPE_CHECKING, - Any, - AsyncContextManager, - AsyncGenerator, - AsyncIterator, - Callable, - ContextManager, - Dict, - Generator, - Iterator, - List, - Optional, - Union, -) +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union import httpx -import litellm -from litellm.litellm_core_utils.prompt_templates import factory as ptf from litellm.llms.base_llm.chat.transformation import BaseLLMException -from litellm.llms.custom_httpx.http_handler import ( - AsyncHTTPHandler, - get_async_httpx_client, -) -from litellm.secret_managers.main import get_secret_str from litellm.types.llms.openai import AllMessageValues -from litellm.types.llms.watsonx import WatsonXAIEndpoint -from litellm.utils import EmbeddingResponse, ModelResponse, Usage, map_finish_reason +from litellm.utils import ModelResponse -from ...base import BaseLLM from ...base_llm.chat.transformation import BaseConfig -from ..common_utils import WatsonXAIError, _get_api_params, generate_iam_token +from ..common_utils import WatsonXAIError if TYPE_CHECKING: from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj diff --git a/litellm/llms/xai/chat/transformation.py b/litellm/llms/xai/chat/transformation.py index 64dd52bd11..734c6eb2e0 100644 --- a/litellm/llms/xai/chat/transformation.py +++ b/litellm/llms/xai/chat/transformation.py @@ -1,5 +1,4 @@ -import types -from typing import Literal, Optional, Tuple, Union +from typing import Optional, Tuple from litellm.secret_managers.main import get_secret_str diff --git a/litellm/proxy/_types.py b/litellm/proxy/_types.py index 2c2fee5dbc..592adb2c64 100644 --- a/litellm/proxy/_types.py +++ b/litellm/proxy/_types.py @@ -1,16 +1,12 @@ import enum import json -import os -import sys -import traceback import uuid -from dataclasses import fields from datetime import datetime from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional, Union import httpx -from pydantic import BaseModel, ConfigDict, Extra, Field, Json, model_validator -from typing_extensions import Annotated, TypedDict +from pydantic import BaseModel, ConfigDict, Field, Json, model_validator +from typing_extensions import TypedDict from litellm.types.integrations.slack_alerting import AlertType from litellm.types.router import RouterErrors, UpdateRouterConfig diff --git a/litellm/proxy/analytics_endpoints/analytics_endpoints.py b/litellm/proxy/analytics_endpoints/analytics_endpoints.py index e7e87979c7..f929cb74e4 100644 --- a/litellm/proxy/analytics_endpoints/analytics_endpoints.py +++ b/litellm/proxy/analytics_endpoints/analytics_endpoints.py @@ -1,12 +1,10 @@ #### Analytics Endpoints ##### -from datetime import datetime, timedelta, timezone +from datetime import datetime from typing import List, Optional import fastapi -from fastapi import APIRouter, Depends, Header, HTTPException, Request, status +from fastapi import APIRouter, Depends, HTTPException, status -import litellm -from litellm._logging import verbose_proxy_logger from litellm.proxy._types import * from litellm.proxy.auth.user_api_key_auth import user_api_key_auth @@ -53,7 +51,6 @@ async def get_global_activity( "sum_llm_api_calls": 2012 } """ - from collections import defaultdict if start_date is None or end_date is None: raise HTTPException( @@ -64,7 +61,7 @@ async def get_global_activity( start_date_obj = datetime.strptime(start_date, "%Y-%m-%d") end_date_obj = datetime.strptime(end_date, "%Y-%m-%d") - from litellm.proxy.proxy_server import llm_router, prisma_client + from litellm.proxy.proxy_server import prisma_client try: if prisma_client is None: diff --git a/litellm/proxy/auth/auth_checks.py b/litellm/proxy/auth/auth_checks.py index 2127dfb509..c01081abeb 100644 --- a/litellm/proxy/auth/auth_checks.py +++ b/litellm/proxy/auth/auth_checks.py @@ -11,10 +11,8 @@ Run checks for: import time import traceback -from datetime import datetime from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional -import httpx from pydantic import BaseModel import litellm @@ -36,7 +34,7 @@ from litellm.proxy._types import ( from litellm.proxy.auth.route_checks import RouteChecks from litellm.proxy.utils import PrismaClient, ProxyLogging, log_db_metrics from litellm.router import Router -from litellm.types.services import ServiceLoggerPayload, ServiceTypes +from litellm.types.services import ServiceTypes from .auth_checks_organization import organization_role_based_access_check diff --git a/litellm/proxy/auth/auth_utils.py b/litellm/proxy/auth/auth_utils.py index 046f94325f..f73e045075 100644 --- a/litellm/proxy/auth/auth_utils.py +++ b/litellm/proxy/auth/auth_utils.py @@ -1,6 +1,6 @@ +import os import re import sys -import traceback from typing import Any, List, Optional, Tuple from fastapi import HTTPException, Request, status @@ -8,10 +8,7 @@ from fastapi import HTTPException, Request, status from litellm import Router, provider_list from litellm._logging import verbose_proxy_logger from litellm.proxy._types import * -from litellm.types.router import ( - CONFIGURABLE_CLIENTSIDE_AUTH_PARAMS, - ConfigurableClientsideParamsCustomAuth, -) +from litellm.types.router import CONFIGURABLE_CLIENTSIDE_AUTH_PARAMS def _get_request_ip_address( @@ -266,7 +263,6 @@ def route_in_additonal_public_routes(current_route: str): """ # check if user is premium_user - if not do nothing - from litellm.proxy._types import LiteLLMRoutes from litellm.proxy.proxy_server import general_settings, premium_user try: diff --git a/litellm/proxy/auth/litellm_license.py b/litellm/proxy/auth/litellm_license.py index a736a1f5e8..67ec91f51a 100644 --- a/litellm/proxy/auth/litellm_license.py +++ b/litellm/proxy/auth/litellm_license.py @@ -3,7 +3,6 @@ import base64 import json import os -import traceback from datetime import datetime from typing import Optional @@ -30,8 +29,7 @@ class LicenseCheck: def read_public_key(self): try: - from cryptography.hazmat.primitives import hashes, serialization - from cryptography.hazmat.primitives.asymmetric import padding, rsa + from cryptography.hazmat.primitives import serialization # current dir current_dir = os.path.dirname(os.path.realpath(__file__)) @@ -129,8 +127,8 @@ class LicenseCheck: def verify_license_without_api_request(self, public_key, license_key): try: - from cryptography.hazmat.primitives import hashes, serialization - from cryptography.hazmat.primitives.asymmetric import padding, rsa + from cryptography.hazmat.primitives import hashes + from cryptography.hazmat.primitives.asymmetric import padding # Decode the license key decoded = base64.b64decode(license_key) diff --git a/litellm/proxy/auth/oauth2_check.py b/litellm/proxy/auth/oauth2_check.py index 85a112ef1f..4851c27012 100644 --- a/litellm/proxy/auth/oauth2_check.py +++ b/litellm/proxy/auth/oauth2_check.py @@ -15,7 +15,6 @@ async def check_oauth2_token(token: str) -> UserAPIKeyAuth: ValueError: If the token is invalid, the request fails, or the token info endpoint is not set. """ import os - from typing import Literal import httpx diff --git a/litellm/proxy/auth/rds_iam_token.py b/litellm/proxy/auth/rds_iam_token.py index 474a9cac26..053cdb91f1 100644 --- a/litellm/proxy/auth/rds_iam_token.py +++ b/litellm/proxy/auth/rds_iam_token.py @@ -164,8 +164,6 @@ def generate_iam_auth_token( ) -> str: from urllib.parse import quote - import boto3 - if client is None: boto_client = init_rds_client( aws_region_name=os.getenv("AWS_REGION_NAME"), diff --git a/litellm/proxy/auth/route_checks.py b/litellm/proxy/auth/route_checks.py index 4deb4468e0..0524a1d8f7 100644 --- a/litellm/proxy/auth/route_checks.py +++ b/litellm/proxy/auth/route_checks.py @@ -11,10 +11,8 @@ from litellm.proxy._types import ( LitellmUserRoles, UserAPIKeyAuth, ) -from litellm.proxy.utils import hash_token from .auth_checks_organization import _user_is_org_admin -from .auth_utils import _has_user_setup_sso class RouteChecks: diff --git a/litellm/proxy/auth/user_api_key_auth.py b/litellm/proxy/auth/user_api_key_auth.py index acd7b9ebba..8f82cdcf81 100644 --- a/litellm/proxy/auth/user_api_key_auth.py +++ b/litellm/proxy/auth/user_api_key_auth.py @@ -8,42 +8,13 @@ Returns a UserAPIKeyAuth object if the API key is valid """ import asyncio -import json import secrets -import time -import traceback -from datetime import datetime, timedelta, timezone -from typing import Optional, Tuple -from uuid import uuid4 +from datetime import datetime, timezone +from typing import Optional import fastapi -from fastapi import ( - Depends, - FastAPI, - File, - Form, - Header, - HTTPException, - Path, - Request, - Response, - UploadFile, - WebSocket, - WebSocketDisconnect, - status, -) -from fastapi.middleware.cors import CORSMiddleware -from fastapi.openapi.utils import get_openapi -from fastapi.responses import ( - FileResponse, - JSONResponse, - ORJSONResponse, - RedirectResponse, - StreamingResponse, -) +from fastapi import HTTPException, Request, WebSocket, status from fastapi.security.api_key import APIKeyHeader -from fastapi.staticfiles import StaticFiles -from pydantic import BaseModel import litellm from litellm._logging import verbose_logger, verbose_proxy_logger @@ -61,11 +32,9 @@ from litellm.proxy.auth.auth_checks import ( get_org_object, get_team_object, get_user_object, - log_db_metrics, ) from litellm.proxy.auth.auth_utils import ( _get_request_ip_address, - _has_user_setup_sso, get_request_route, is_pass_through_provider_route, pre_db_read_auth_checks, diff --git a/litellm/proxy/caching_routes.py b/litellm/proxy/caching_routes.py index eacd997d3d..d03c43b6f7 100644 --- a/litellm/proxy/caching_routes.py +++ b/litellm/proxy/caching_routes.py @@ -1,5 +1,4 @@ import copy -from typing import Optional from fastapi import APIRouter, Depends, HTTPException, Request diff --git a/litellm/proxy/common_utils/admin_ui_utils.py b/litellm/proxy/common_utils/admin_ui_utils.py index bd45fc627e..204032acb9 100644 --- a/litellm/proxy/common_utils/admin_ui_utils.py +++ b/litellm/proxy/common_utils/admin_ui_utils.py @@ -1,5 +1,4 @@ import os -import subprocess def show_missing_vars_in_env(): diff --git a/litellm/proxy/common_utils/callback_utils.py b/litellm/proxy/common_utils/callback_utils.py index fa7208d3c0..b8788384a4 100644 --- a/litellm/proxy/common_utils/callback_utils.py +++ b/litellm/proxy/common_utils/callback_utils.py @@ -1,8 +1,7 @@ -import sys -from typing import Any, Dict, List, Optional, get_args +from typing import Any, Dict, List, Optional import litellm -from litellm import get_secret, get_secret_str +from litellm import get_secret from litellm._logging import verbose_proxy_logger from litellm.proxy._types import CommonProxyErrors, LiteLLMPromptInjectionParams from litellm.proxy.utils import get_instance_fn diff --git a/litellm/proxy/common_utils/debug_utils.py b/litellm/proxy/common_utils/debug_utils.py index ebbe776e9b..fdfbe0cb7c 100644 --- a/litellm/proxy/common_utils/debug_utils.py +++ b/litellm/proxy/common_utils/debug_utils.py @@ -5,8 +5,7 @@ import tracemalloc from fastapi import APIRouter -import litellm -from litellm import get_secret, get_secret_str +from litellm import get_secret_str from litellm._logging import verbose_proxy_logger router = APIRouter() @@ -116,7 +115,6 @@ async def memory_usage_in_mem_cache_items(): @router.get("/otel-spans", include_in_schema=False) async def get_otel_spans(): - from litellm.integrations.opentelemetry import OpenTelemetry from litellm.proxy.proxy_server import open_telemetry_logger if open_telemetry_logger is None: diff --git a/litellm/proxy/common_utils/encrypt_decrypt_utils.py b/litellm/proxy/common_utils/encrypt_decrypt_utils.py index 4c04942d02..ac2caa9a01 100644 --- a/litellm/proxy/common_utils/encrypt_decrypt_utils.py +++ b/litellm/proxy/common_utils/encrypt_decrypt_utils.py @@ -40,7 +40,6 @@ def encrypt_value_helper(value: str): def decrypt_value_helper(value: str): - from litellm.proxy.proxy_server import master_key signing_key = _get_salt_key() diff --git a/litellm/proxy/common_utils/http_parsing_utils.py b/litellm/proxy/common_utils/http_parsing_utils.py index 36056d316d..16220a418b 100644 --- a/litellm/proxy/common_utils/http_parsing_utils.py +++ b/litellm/proxy/common_utils/http_parsing_utils.py @@ -1,4 +1,3 @@ -import ast import json from typing import Dict, List, Optional diff --git a/litellm/proxy/common_utils/load_config_utils.py b/litellm/proxy/common_utils/load_config_utils.py index f262837d92..38e7b3f33b 100644 --- a/litellm/proxy/common_utils/load_config_utils.py +++ b/litellm/proxy/common_utils/load_config_utils.py @@ -9,7 +9,6 @@ def get_file_contents_from_s3(bucket_name, object_key): import tempfile import boto3 - from botocore.config import Config from botocore.credentials import Credentials from litellm.main import bedrock_converse_chat_completion diff --git a/litellm/proxy/config_management_endpoints/pass_through_endpoints.py b/litellm/proxy/config_management_endpoints/pass_through_endpoints.py index 237f1b74b2..5ff02b8bce 100644 --- a/litellm/proxy/config_management_endpoints/pass_through_endpoints.py +++ b/litellm/proxy/config_management_endpoints/pass_through_endpoints.py @@ -4,29 +4,8 @@ What is this? CRUD endpoints for managing pass-through endpoints """ -import asyncio -import traceback -from datetime import datetime, timedelta, timezone -from typing import List, Optional +from fastapi import APIRouter, Depends, Request, Response -import fastapi -import httpx -from fastapi import ( - APIRouter, - Depends, - File, - Form, - Header, - HTTPException, - Request, - Response, - UploadFile, - status, -) - -import litellm -from litellm._logging import verbose_proxy_logger -from litellm.batches.main import FileObject from litellm.proxy._types import * from litellm.proxy.auth.user_api_key_auth import user_api_key_auth diff --git a/litellm/proxy/custom_sso.py b/litellm/proxy/custom_sso.py index 3db459f9da..210e9eea3d 100644 --- a/litellm/proxy/custom_sso.py +++ b/litellm/proxy/custom_sso.py @@ -12,15 +12,10 @@ Flow: - User signed in to UI """ -from fastapi import Request from fastapi_sso.sso.base import OpenID from litellm.proxy._types import LitellmUserRoles, SSOUserDefinedValues -from litellm.proxy.management_endpoints.internal_user_endpoints import ( - new_user, - user_info, -) -from litellm.proxy.management_endpoints.team_endpoints import add_new_member +from litellm.proxy.management_endpoints.internal_user_endpoints import user_info async def custom_sso_handler(userIDPInfo: OpenID) -> SSOUserDefinedValues: diff --git a/litellm/proxy/db/dynamo_db.py b/litellm/proxy/db/dynamo_db.py index 848133bf39..628509d9c3 100644 --- a/litellm/proxy/db/dynamo_db.py +++ b/litellm/proxy/db/dynamo_db.py @@ -2,20 +2,9 @@ Deprecated. Only PostgresSQL is supported. """ -import json -from datetime import datetime -from typing import Any, List, Literal, Optional, Union - from litellm._logging import verbose_proxy_logger -from litellm.proxy._types import ( - DynamoDBArgs, - LiteLLM_Config, - LiteLLM_UserTable, - LiteLLM_VerificationToken, -) +from litellm.proxy._types import DynamoDBArgs from litellm.proxy.db.base_client import CustomDB -from litellm.proxy.utils import hash_token -from litellm.secret_managers.main import get_secret class DynamoDBWrapper(CustomDB): @@ -24,21 +13,7 @@ class DynamoDBWrapper(CustomDB): credentials: Credentials def __init__(self, database_arguments: DynamoDBArgs): - from aiodynamo.client import Client - from aiodynamo.credentials import Credentials - from aiodynamo.expressions import F, UpdateExpression, Value - from aiodynamo.http.aiohttp import AIOHTTP - from aiodynamo.http.httpx import HTTPX - from aiodynamo.models import ( - KeySchema, - KeySpec, - KeyType, - PayPerRequest, - ReturnValues, - Throughput, - ) - from aiohttp import ClientSession - from yarl import URL + from aiodynamo.models import PayPerRequest, Throughput self.throughput_type = None if database_arguments.billing_mode == "PAY_PER_REQUEST": diff --git a/litellm/proxy/db/log_db_metrics.py b/litellm/proxy/db/log_db_metrics.py index e8040ae605..cead4dc681 100644 --- a/litellm/proxy/db/log_db_metrics.py +++ b/litellm/proxy/db/log_db_metrics.py @@ -35,7 +35,6 @@ def log_db_metrics(func): @wraps(func) async def wrapper(*args, **kwargs): - from prisma.errors import PrismaError start_time: datetime = datetime.now() diff --git a/litellm/proxy/db/prisma_client.py b/litellm/proxy/db/prisma_client.py index 76e425bf2c..54d59bd347 100644 --- a/litellm/proxy/db/prisma_client.py +++ b/litellm/proxy/db/prisma_client.py @@ -7,7 +7,7 @@ import os import urllib import urllib.parse from datetime import datetime, timedelta -from typing import Any, Callable, Optional +from typing import Any, Optional from litellm.secret_managers.main import str_to_bool diff --git a/litellm/proxy/fine_tuning_endpoints/endpoints.py b/litellm/proxy/fine_tuning_endpoints/endpoints.py index 02110458e7..b7b31c8408 100644 --- a/litellm/proxy/fine_tuning_endpoints/endpoints.py +++ b/litellm/proxy/fine_tuning_endpoints/endpoints.py @@ -7,27 +7,12 @@ import asyncio import traceback -from datetime import datetime, timedelta, timezone -from typing import List, Optional +from typing import Optional -import fastapi -import httpx -from fastapi import ( - APIRouter, - Depends, - File, - Form, - Header, - HTTPException, - Request, - Response, - UploadFile, - status, -) +from fastapi import APIRouter, Depends, HTTPException, Request, Response, status import litellm from litellm._logging import verbose_proxy_logger -from litellm.batches.main import FileObject from litellm.proxy._types import * from litellm.proxy.auth.user_api_key_auth import user_api_key_auth diff --git a/litellm/proxy/guardrails/guardrail_hooks/aporia_ai.py b/litellm/proxy/guardrails/guardrail_hooks/aporia_ai.py index 3795155b41..6ead4f0d02 100644 --- a/litellm/proxy/guardrails/guardrail_hooks/aporia_ai.py +++ b/litellm/proxy/guardrails/guardrail_hooks/aporia_ai.py @@ -11,27 +11,19 @@ import sys sys.path.insert( 0, os.path.abspath("../..") ) # Adds the parent directory to the system path -import asyncio import json import sys -import traceback -import uuid -from datetime import datetime -from typing import Any, List, Literal, Optional, Union +from typing import Any, List, Literal, Optional -import aiohttp -import httpx from fastapi import HTTPException import litellm from litellm._logging import verbose_proxy_logger -from litellm.caching.caching import DualCache from litellm.integrations.custom_guardrail import CustomGuardrail from litellm.litellm_core_utils.logging_utils import ( convert_litellm_response_object_to_str, ) from litellm.llms.custom_httpx.http_handler import ( - AsyncHTTPHandler, get_async_httpx_client, httpxSpecialProvider, ) diff --git a/litellm/proxy/guardrails/guardrail_hooks/bedrock_guardrails.py b/litellm/proxy/guardrails/guardrail_hooks/bedrock_guardrails.py index 7a23817655..4668b17284 100644 --- a/litellm/proxy/guardrails/guardrail_hooks/bedrock_guardrails.py +++ b/litellm/proxy/guardrails/guardrail_hooks/bedrock_guardrails.py @@ -11,33 +11,21 @@ import sys sys.path.insert( 0, os.path.abspath("../..") ) # Adds the parent directory to the system path -import asyncio import json import sys -import traceback -import uuid -from datetime import datetime from typing import Any, Dict, List, Literal, Optional, Union -import aiohttp -import httpx from fastapi import HTTPException import litellm from litellm._logging import verbose_proxy_logger -from litellm.caching.caching import DualCache from litellm.integrations.custom_guardrail import CustomGuardrail -from litellm.litellm_core_utils.logging_utils import ( - convert_litellm_response_object_to_str, -) from litellm.llms.bedrock.base_aws_llm import BaseAWSLLM from litellm.llms.custom_httpx.http_handler import ( - AsyncHTTPHandler, get_async_httpx_client, httpxSpecialProvider, ) from litellm.proxy._types import UserAPIKeyAuth -from litellm.proxy.guardrails.guardrail_helpers import should_proceed_based_on_metadata from litellm.secret_managers.main import get_secret from litellm.types.guardrails import ( BedrockContentItem, @@ -167,10 +155,8 @@ class BedrockGuardrail(CustomGuardrail, BaseAWSLLM): extra_headers: Optional[dict] = None, ): try: - import boto3 from botocore.auth import SigV4Auth from botocore.awsrequest import AWSRequest - from botocore.credentials import Credentials except ImportError: raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.") diff --git a/litellm/proxy/guardrails/guardrail_hooks/custom_guardrail.py b/litellm/proxy/guardrails/guardrail_hooks/custom_guardrail.py index d00586b294..4e6bab6352 100644 --- a/litellm/proxy/guardrails/guardrail_hooks/custom_guardrail.py +++ b/litellm/proxy/guardrails/guardrail_hooks/custom_guardrail.py @@ -1,12 +1,10 @@ -from typing import Any, Dict, List, Literal, Optional, Union +from typing import Literal, Optional, Union import litellm from litellm._logging import verbose_proxy_logger from litellm.caching.caching import DualCache from litellm.integrations.custom_guardrail import CustomGuardrail from litellm.proxy._types import UserAPIKeyAuth -from litellm.proxy.guardrails.guardrail_helpers import should_proceed_based_on_metadata -from litellm.types.guardrails import GuardrailEventHooks class myCustomGuardrail(CustomGuardrail): diff --git a/litellm/proxy/guardrails/guardrail_hooks/guardrails_ai.py b/litellm/proxy/guardrails/guardrail_hooks/guardrails_ai.py index 2dd08432a7..092fbe8ea5 100644 --- a/litellm/proxy/guardrails/guardrail_hooks/guardrails_ai.py +++ b/litellm/proxy/guardrails/guardrail_hooks/guardrails_ai.py @@ -6,25 +6,21 @@ # Thank you for using Litellm! - Krrish & Ishaan import json -from typing import Any, Dict, List, Literal, Optional, TypedDict, Union +from typing import Optional, TypedDict from fastapi import HTTPException import litellm from litellm._logging import verbose_proxy_logger -from litellm.caching.caching import DualCache from litellm.integrations.custom_guardrail import CustomGuardrail from litellm.litellm_core_utils.prompt_templates.common_utils import ( - convert_openai_message_to_only_content_messages, get_content_from_model_response, ) from litellm.proxy._types import UserAPIKeyAuth from litellm.proxy.common_utils.callback_utils import ( add_guardrail_to_applied_guardrails_header, ) -from litellm.proxy.guardrails.guardrail_helpers import should_proceed_based_on_metadata from litellm.types.guardrails import GuardrailEventHooks -from litellm.types.llms.openai import AllMessageValues class GuardrailsAIResponse(TypedDict): diff --git a/litellm/proxy/guardrails/guardrail_hooks/lakera_ai.py b/litellm/proxy/guardrails/guardrail_hooks/lakera_ai.py index 7eab3588af..14e0a7eee6 100644 --- a/litellm/proxy/guardrails/guardrail_hooks/lakera_ai.py +++ b/litellm/proxy/guardrails/guardrail_hooks/lakera_ai.py @@ -13,7 +13,7 @@ sys.path.insert( ) # Adds the parent directory to the system path import json import sys -from typing import Dict, List, Literal, Optional, TypedDict, Union +from typing import Dict, List, Literal, Optional, Union import httpx from fastapi import HTTPException @@ -22,7 +22,6 @@ import litellm from litellm._logging import verbose_proxy_logger from litellm.integrations.custom_guardrail import CustomGuardrail from litellm.llms.custom_httpx.http_handler import ( - AsyncHTTPHandler, get_async_httpx_client, httpxSpecialProvider, ) diff --git a/litellm/proxy/guardrails/guardrail_hooks/presidio.py b/litellm/proxy/guardrails/guardrail_hooks/presidio.py index 384b2cb999..a585d43e6d 100644 --- a/litellm/proxy/guardrails/guardrail_hooks/presidio.py +++ b/litellm/proxy/guardrails/guardrail_hooks/presidio.py @@ -10,12 +10,10 @@ import asyncio import json -import traceback import uuid from typing import Any, List, Optional, Tuple, Union import aiohttp -from fastapi import HTTPException from pydantic import BaseModel import litellm # noqa: E401 @@ -30,7 +28,6 @@ from litellm.utils import ( ImageResponse, ModelResponse, StreamingChoices, - get_formatted_prompt, ) @@ -257,7 +254,6 @@ class _OPTIONAL_PresidioPIIMasking(CustomGuardrail): def logging_hook( self, kwargs: dict, result: Any, call_type: str ) -> Tuple[dict, Any]: - import threading from concurrent.futures import ThreadPoolExecutor def run_in_new_loop(): diff --git a/litellm/proxy/guardrails/init_guardrails.py b/litellm/proxy/guardrails/init_guardrails.py index baec7a6407..59c9f0c335 100644 --- a/litellm/proxy/guardrails/init_guardrails.py +++ b/litellm/proxy/guardrails/init_guardrails.py @@ -1,8 +1,5 @@ import importlib -import traceback -from typing import Dict, List, Literal, Optional - -from pydantic import BaseModel, RootModel +from typing import Dict, List, Optional import litellm from litellm import get_secret @@ -239,8 +236,6 @@ def init_guardrails_v2( # noqa: PLR0915 ) import os - from litellm.proxy.utils import get_instance_fn - # Custom guardrail _guardrail = litellm_params["guardrail"] _file_name, _class_name = _guardrail.split(".") diff --git a/litellm/proxy/health_check.py b/litellm/proxy/health_check.py index 596648638c..78973434c6 100644 --- a/litellm/proxy/health_check.py +++ b/litellm/proxy/health_check.py @@ -6,7 +6,6 @@ import random from typing import List, Optional import litellm -from litellm._logging import print_verbose logger = logging.getLogger(__name__) diff --git a/litellm/proxy/health_endpoints/_health_endpoints.py b/litellm/proxy/health_endpoints/_health_endpoints.py index e12e836de1..95801f2be6 100644 --- a/litellm/proxy/health_endpoints/_health_endpoints.py +++ b/litellm/proxy/health_endpoints/_health_endpoints.py @@ -6,7 +6,7 @@ from datetime import datetime, timedelta from typing import Literal, Optional, Union import fastapi -from fastapi import APIRouter, Depends, Header, HTTPException, Request, Response, status +from fastapi import APIRouter, Depends, HTTPException, Request, Response, status import litellm from litellm._logging import verbose_proxy_logger @@ -473,7 +473,7 @@ async def health_readiness(): """ Unprotected endpoint for checking if worker can receive requests """ - from litellm.proxy.proxy_server import prisma_client, proxy_logging_obj, version + from litellm.proxy.proxy_server import prisma_client, version try: # get success callback diff --git a/litellm/proxy/hooks/azure_content_safety.py b/litellm/proxy/hooks/azure_content_safety.py index 4a5db3b204..b35d671117 100644 --- a/litellm/proxy/hooks/azure_content_safety.py +++ b/litellm/proxy/hooks/azure_content_safety.py @@ -1,6 +1,4 @@ -import sys import traceback -import uuid from typing import Optional from fastapi import HTTPException diff --git a/litellm/proxy/hooks/batch_redis_get.py b/litellm/proxy/hooks/batch_redis_get.py index a6b69e99f6..c608317f4e 100644 --- a/litellm/proxy/hooks/batch_redis_get.py +++ b/litellm/proxy/hooks/batch_redis_get.py @@ -3,7 +3,6 @@ ## This reduces the number of REDIS GET requests made during high-traffic by the proxy. ### [BETA] this is in Beta. And might change. -import json import traceback from typing import Literal, Optional diff --git a/litellm/proxy/hooks/cache_control_check.py b/litellm/proxy/hooks/cache_control_check.py index a5e53fc2f3..4cf1668c22 100644 --- a/litellm/proxy/hooks/cache_control_check.py +++ b/litellm/proxy/hooks/cache_control_check.py @@ -1,7 +1,6 @@ # What this does? ## Checks if key is allowed to use the cache controls passed in to the completion() call -import traceback from fastapi import HTTPException diff --git a/litellm/proxy/hooks/dynamic_rate_limiter.py b/litellm/proxy/hooks/dynamic_rate_limiter.py index f0b8113c4b..15a9bc1ba8 100644 --- a/litellm/proxy/hooks/dynamic_rate_limiter.py +++ b/litellm/proxy/hooks/dynamic_rate_limiter.py @@ -4,9 +4,6 @@ import asyncio import os -import sys -import traceback -from datetime import datetime from typing import List, Literal, Optional, Tuple, Union from fastapi import HTTPException diff --git a/litellm/proxy/hooks/key_management_event_hooks.py b/litellm/proxy/hooks/key_management_event_hooks.py index 7becd32600..0a55f364c7 100644 --- a/litellm/proxy/hooks/key_management_event_hooks.py +++ b/litellm/proxy/hooks/key_management_event_hooks.py @@ -2,7 +2,6 @@ import asyncio import json import uuid from datetime import datetime, timezone -from re import A from typing import Any, List, Optional from fastapi import status @@ -26,6 +25,7 @@ from litellm.proxy._types import ( # NOTE: This is the prefix for all virtual keys stored in AWS Secrets Manager LITELLM_PREFIX_STORED_VIRTUAL_KEYS = "litellm/" + class KeyManagementEventHooks: @staticmethod @@ -46,11 +46,7 @@ class KeyManagementEventHooks: from litellm.proxy.management_helpers.audit_logs import ( create_audit_log_for_update, ) - from litellm.proxy.proxy_server import ( - general_settings, - litellm_proxy_admin_name, - proxy_logging_obj, - ) + from litellm.proxy.proxy_server import litellm_proxy_admin_name if data.send_invite_email is True: await KeyManagementEventHooks._send_key_created_email(response) diff --git a/litellm/proxy/hooks/max_budget_limiter.py b/litellm/proxy/hooks/max_budget_limiter.py index c1c5b4b801..9697efff7b 100644 --- a/litellm/proxy/hooks/max_budget_limiter.py +++ b/litellm/proxy/hooks/max_budget_limiter.py @@ -1,5 +1,3 @@ -import traceback - from fastapi import HTTPException import litellm diff --git a/litellm/proxy/hooks/model_max_budget_limiter.py b/litellm/proxy/hooks/model_max_budget_limiter.py index 8ce6da8d19..5d5e56e014 100644 --- a/litellm/proxy/hooks/model_max_budget_limiter.py +++ b/litellm/proxy/hooks/model_max_budget_limiter.py @@ -1,14 +1,10 @@ import json -import traceback from typing import List, Optional -from fastapi import HTTPException - import litellm -from litellm import verbose_logger from litellm._logging import verbose_proxy_logger from litellm.caching.caching import DualCache -from litellm.integrations.custom_logger import CustomLogger, Span +from litellm.integrations.custom_logger import Span from litellm.proxy._types import UserAPIKeyAuth from litellm.router_strategy.budget_limiter import RouterBudgetLimiting from litellm.types.llms.openai import AllMessageValues diff --git a/litellm/proxy/hooks/parallel_request_limiter.py b/litellm/proxy/hooks/parallel_request_limiter.py index eea7eaf91d..b1a2716a4e 100644 --- a/litellm/proxy/hooks/parallel_request_limiter.py +++ b/litellm/proxy/hooks/parallel_request_limiter.py @@ -1,6 +1,5 @@ import asyncio import sys -import traceback from datetime import datetime, timedelta from typing import TYPE_CHECKING, Any, List, Literal, Optional, Tuple, TypedDict, Union diff --git a/litellm/proxy/hooks/prompt_injection_detection.py b/litellm/proxy/hooks/prompt_injection_detection.py index 19e152c2c5..b1b2bbee5c 100644 --- a/litellm/proxy/hooks/prompt_injection_detection.py +++ b/litellm/proxy/hooks/prompt_injection_detection.py @@ -7,14 +7,10 @@ ## Reject a call if it contains a prompt injection attack. -import json -import re -import traceback from difflib import SequenceMatcher from typing import List, Literal, Optional from fastapi import HTTPException -from typing_extensions import overload import litellm from litellm._logging import verbose_proxy_logger diff --git a/litellm/proxy/litellm_pre_call_utils.py b/litellm/proxy/litellm_pre_call_utils.py index 325aff881d..b361eeeeab 100644 --- a/litellm/proxy/litellm_pre_call_utils.py +++ b/litellm/proxy/litellm_pre_call_utils.py @@ -12,12 +12,10 @@ from litellm.proxy._types import ( AddTeamCallback, CommonProxyErrors, LitellmDataForBackendLLMCall, - LiteLLMRoutes, SpecialHeaders, TeamCallbackMetadata, UserAPIKeyAuth, ) -from litellm.proxy.auth.auth_utils import get_request_route from litellm.types.services import ServiceTypes from litellm.types.utils import ( StandardLoggingUserAPIKeyMetadata, @@ -214,9 +212,6 @@ class LiteLLMProxyRequestSetup: - Checks request headers for forwardable headers - Checks if user information should be added to the headers """ - from litellm.litellm_core_utils.litellm_logging import ( - get_standard_logging_metadata, - ) returned_headers = LiteLLMProxyRequestSetup._get_forwardable_headers(headers) diff --git a/litellm/proxy/management_endpoints/customer_endpoints.py b/litellm/proxy/management_endpoints/customer_endpoints.py index d02acaf4a7..47bc7f6165 100644 --- a/litellm/proxy/management_endpoints/customer_endpoints.py +++ b/litellm/proxy/management_endpoints/customer_endpoints.py @@ -10,25 +10,16 @@ All /customer management endpoints """ #### END-USER/CUSTOMER MANAGEMENT #### -import asyncio -import copy -import json -import re -import secrets -import time import traceback -import uuid -from datetime import datetime, timedelta, timezone from typing import List, Optional import fastapi -from fastapi import APIRouter, Depends, Header, HTTPException, Request, status +from fastapi import APIRouter, Depends, HTTPException, Request, status import litellm from litellm._logging import verbose_proxy_logger from litellm.proxy._types import * from litellm.proxy.auth.user_api_key_auth import user_api_key_auth -from litellm.proxy.utils import handle_exception_on_proxy router = APIRouter() @@ -597,7 +588,7 @@ async def list_end_user( ``` """ - from litellm.proxy.proxy_server import litellm_proxy_admin_name, prisma_client + from litellm.proxy.proxy_server import prisma_client if ( user_api_key_dict.user_role != LitellmUserRoles.PROXY_ADMIN diff --git a/litellm/proxy/management_endpoints/internal_user_endpoints.py b/litellm/proxy/management_endpoints/internal_user_endpoints.py index 0f846a06e0..1c6031da6d 100644 --- a/litellm/proxy/management_endpoints/internal_user_endpoints.py +++ b/litellm/proxy/management_endpoints/internal_user_endpoints.py @@ -12,11 +12,6 @@ These are members of a Team on LiteLLM """ import asyncio -import copy -import json -import re -import secrets -import time import traceback import uuid from datetime import datetime, timedelta, timezone @@ -34,10 +29,7 @@ from litellm.proxy.management_endpoints.key_management_endpoints import ( generate_key_helper_fn, prepare_metadata_fields, ) -from litellm.proxy.management_helpers.utils import ( - add_new_member, - management_endpoint_wrapper, -) +from litellm.proxy.management_helpers.utils import management_endpoint_wrapper from litellm.proxy.utils import handle_exception_on_proxy router = APIRouter() @@ -290,11 +282,7 @@ async def user_info( --header 'Authorization: Bearer sk-1234' ``` """ - from litellm.proxy.proxy_server import ( - general_settings, - litellm_master_key_hash, - prisma_client, - ) + from litellm.proxy.proxy_server import prisma_client try: if prisma_client is None: @@ -810,10 +798,8 @@ async def delete_user( """ from litellm.proxy.proxy_server import ( create_audit_log_for_update, - duration_in_seconds, litellm_proxy_admin_name, prisma_client, - user_api_key_cache, ) if prisma_client is None: diff --git a/litellm/proxy/management_endpoints/key_management_endpoints.py b/litellm/proxy/management_endpoints/key_management_endpoints.py index 93613c4bc2..57db5758be 100644 --- a/litellm/proxy/management_endpoints/key_management_endpoints.py +++ b/litellm/proxy/management_endpoints/key_management_endpoints.py @@ -12,7 +12,6 @@ All /key management endpoints import asyncio import copy import json -import re import secrets import traceback import uuid @@ -281,11 +280,8 @@ async def generate_key_fn( # noqa: PLR0915 """ try: from litellm.proxy.proxy_server import ( - create_audit_log_for_update, - general_settings, litellm_proxy_admin_name, prisma_client, - proxy_logging_obj, user_api_key_cache, user_custom_key_generate, ) @@ -590,8 +586,6 @@ async def update_key_fn( ``` """ from litellm.proxy.proxy_server import ( - create_audit_log_for_update, - litellm_proxy_admin_name, prisma_client, proxy_logging_obj, user_api_key_cache, @@ -709,15 +703,7 @@ async def delete_key_fn( HTTPException: If an error occurs during key deletion. """ try: - from litellm.proxy.proxy_server import ( - create_audit_log_for_update, - general_settings, - litellm_proxy_admin_name, - prisma_client, - proxy_logging_obj, - user_api_key_cache, - user_custom_key_generate, - ) + from litellm.proxy.proxy_server import prisma_client, user_api_key_cache if prisma_client is None: raise Exception("Not connected to DB!") @@ -818,14 +804,7 @@ async def info_key_fn_v2( -d {"keys": ["sk-1", "sk-2", "sk-3"]} ``` """ - from litellm.proxy.proxy_server import ( - create_audit_log_for_update, - general_settings, - litellm_proxy_admin_name, - prisma_client, - proxy_logging_obj, - user_custom_key_generate, - ) + from litellm.proxy.proxy_server import prisma_client try: if prisma_client is None: @@ -889,14 +868,7 @@ async def info_key_fn( -H "Authorization: Bearer sk-02Wr4IAlN3NvPXvL5JVvDA" ``` """ - from litellm.proxy.proxy_server import ( - create_audit_log_for_update, - general_settings, - litellm_proxy_admin_name, - prisma_client, - proxy_logging_obj, - user_custom_key_generate, - ) + from litellm.proxy.proxy_server import prisma_client try: if prisma_client is None: diff --git a/litellm/proxy/management_endpoints/organization_endpoints.py b/litellm/proxy/management_endpoints/organization_endpoints.py index 3633843752..62e4bed83c 100644 --- a/litellm/proxy/management_endpoints/organization_endpoints.py +++ b/litellm/proxy/management_endpoints/organization_endpoints.py @@ -10,21 +10,11 @@ Endpoints for /organization operations #### ORGANIZATION MANAGEMENT #### -import asyncio -import copy -import json -import re -import secrets -import traceback import uuid -from datetime import datetime, timedelta, timezone from typing import List, Optional, Tuple -import fastapi -from fastapi import APIRouter, Depends, Header, HTTPException, Query, Request, status +from fastapi import APIRouter, Depends, HTTPException, Request, status -import litellm -from litellm._logging import verbose_proxy_logger from litellm.proxy._types import * from litellm.proxy.auth.user_api_key_auth import user_api_key_auth from litellm.proxy.management_helpers.utils import ( @@ -32,7 +22,6 @@ from litellm.proxy.management_helpers.utils import ( management_endpoint_wrapper, ) from litellm.proxy.utils import PrismaClient -from litellm.secret_managers.main import get_secret router = APIRouter() @@ -328,12 +317,7 @@ async def organization_member_add( 3. Add Internal User to the `LiteLLM_OrganizationMembership` table """ try: - from litellm.proxy.proxy_server import ( - litellm_proxy_admin_name, - prisma_client, - proxy_logging_obj, - user_api_key_cache, - ) + from litellm.proxy.proxy_server import prisma_client if prisma_client is None: raise HTTPException(status_code=500, detail={"error": "No db connected"}) diff --git a/litellm/proxy/management_endpoints/sso_helper_utils.py b/litellm/proxy/management_endpoints/sso_helper_utils.py index 14b370c944..45906b2fce 100644 --- a/litellm/proxy/management_endpoints/sso_helper_utils.py +++ b/litellm/proxy/management_endpoints/sso_helper_utils.py @@ -1,5 +1,3 @@ -from fastapi import HTTPException - from litellm.proxy._types import LitellmUserRoles diff --git a/litellm/proxy/management_endpoints/team_callback_endpoints.py b/litellm/proxy/management_endpoints/team_callback_endpoints.py index 6c5fa80a28..93d338a40d 100644 --- a/litellm/proxy/management_endpoints/team_callback_endpoints.py +++ b/litellm/proxy/management_endpoints/team_callback_endpoints.py @@ -4,32 +4,22 @@ Endpoints to control callbacks per team Use this when each team should control its own callbacks """ -import asyncio -import copy import json import traceback -import uuid -from datetime import datetime, timedelta, timezone -from typing import List, Optional +from typing import Optional -import fastapi from fastapi import APIRouter, Depends, Header, HTTPException, Request, status -import litellm from litellm._logging import verbose_proxy_logger from litellm.proxy._types import ( AddTeamCallback, - LiteLLM_TeamTable, ProxyErrorTypes, ProxyException, TeamCallbackMetadata, UserAPIKeyAuth, ) from litellm.proxy.auth.user_api_key_auth import user_api_key_auth -from litellm.proxy.management_helpers.utils import ( - add_new_member, - management_endpoint_wrapper, -) +from litellm.proxy.management_helpers.utils import management_endpoint_wrapper router = APIRouter() @@ -89,12 +79,7 @@ async def add_team_callbacks( """ try: - from litellm.proxy.proxy_server import ( - create_audit_log_for_update, - duration_in_seconds, - litellm_proxy_admin_name, - prisma_client, - ) + from litellm.proxy.proxy_server import prisma_client if prisma_client is None: raise HTTPException(status_code=500, detail={"error": "No db connected"}) diff --git a/litellm/proxy/management_endpoints/team_endpoints.py b/litellm/proxy/management_endpoints/team_endpoints.py index 1744c3853a..2a46e15198 100644 --- a/litellm/proxy/management_endpoints/team_endpoints.py +++ b/litellm/proxy/management_endpoints/team_endpoints.py @@ -10,7 +10,6 @@ All /team management endpoints """ import asyncio -import copy import json import traceback import uuid @@ -40,7 +39,6 @@ from litellm.proxy._types import ( ProxyErrorTypes, ProxyException, TeamAddMemberResponse, - TeamBase, TeamInfoResponseObject, TeamListResponseObject, TeamMemberAddRequest, @@ -54,7 +52,7 @@ from litellm.proxy.auth.auth_checks import ( allowed_route_check_inside_route, get_team_object, ) -from litellm.proxy.auth.user_api_key_auth import _is_user_proxy_admin, user_api_key_auth +from litellm.proxy.auth.user_api_key_auth import user_api_key_auth from litellm.proxy.management_helpers.utils import ( add_new_member, management_endpoint_wrapper, @@ -765,12 +763,7 @@ async def team_member_delete( }' ``` """ - from litellm.proxy.proxy_server import ( - create_audit_log_for_update, - duration_in_seconds, - litellm_proxy_admin_name, - prisma_client, - ) + from litellm.proxy.proxy_server import prisma_client if prisma_client is None: raise HTTPException(status_code=500, detail={"error": "No db connected"}) @@ -885,12 +878,7 @@ async def team_member_update( Update team member budgets """ - from litellm.proxy.proxy_server import ( - create_audit_log_for_update, - duration_in_seconds, - litellm_proxy_admin_name, - prisma_client, - ) + from litellm.proxy.proxy_server import prisma_client if prisma_client is None: raise HTTPException(status_code=500, detail={"error": "No db connected"}) @@ -1023,7 +1011,6 @@ async def delete_team( """ from litellm.proxy.proxy_server import ( create_audit_log_for_update, - duration_in_seconds, litellm_proxy_admin_name, prisma_client, ) @@ -1110,12 +1097,7 @@ async def team_info( --header 'Authorization: Bearer your_api_key_here' ``` """ - from litellm.proxy.proxy_server import ( - create_audit_log_for_update, - duration_in_seconds, - litellm_proxy_admin_name, - prisma_client, - ) + from litellm.proxy.proxy_server import prisma_client try: if prisma_client is None: @@ -1259,12 +1241,7 @@ async def block_team( """ - from litellm.proxy.proxy_server import ( - create_audit_log_for_update, - duration_in_seconds, - litellm_proxy_admin_name, - prisma_client, - ) + from litellm.proxy.proxy_server import prisma_client if prisma_client is None: raise Exception("No DB Connected.") @@ -1307,12 +1284,7 @@ async def unblock_team( }' ``` """ - from litellm.proxy.proxy_server import ( - create_audit_log_for_update, - duration_in_seconds, - litellm_proxy_admin_name, - prisma_client, - ) + from litellm.proxy.proxy_server import prisma_client if prisma_client is None: raise Exception("No DB Connected.") @@ -1350,12 +1322,7 @@ async def list_team( Parameters: - user_id: str - Optional. If passed will only return teams that the user_id is a member of. """ - from litellm.proxy.proxy_server import ( - create_audit_log_for_update, - duration_in_seconds, - litellm_proxy_admin_name, - prisma_client, - ) + from litellm.proxy.proxy_server import prisma_client if not allowed_route_check_inside_route( user_api_key_dict=user_api_key_dict, requested_user_id=user_id diff --git a/litellm/proxy/management_endpoints/ui_sso.py b/litellm/proxy/management_endpoints/ui_sso.py index cec08ddcaa..d6b2aafcbc 100644 --- a/litellm/proxy/management_endpoints/ui_sso.py +++ b/litellm/proxy/management_endpoints/ui_sso.py @@ -8,7 +8,7 @@ Has all /sso/* routes import asyncio import os import uuid -from typing import TYPE_CHECKING, Any, List, Optional +from typing import TYPE_CHECKING, List, Optional from fastapi import APIRouter, Depends, HTTPException, Request, status from fastapi.responses import RedirectResponse @@ -53,7 +53,7 @@ async def google_login(request: Request): # noqa: PLR0915 PROXY_BASE_URL should be the your deployed proxy endpoint, e.g. PROXY_BASE_URL="https://litellm-production-7002.up.railway.app/" Example: """ - from litellm.proxy.proxy_server import master_key, premium_user, prisma_client + from litellm.proxy.proxy_server import premium_user microsoft_client_id = os.getenv("MICROSOFT_CLIENT_ID", None) google_client_id = os.getenv("GOOGLE_CLIENT_ID", None) diff --git a/litellm/proxy/management_helpers/utils.py b/litellm/proxy/management_helpers/utils.py index 7da90c6153..69a5cf9141 100644 --- a/litellm/proxy/management_helpers/utils.py +++ b/litellm/proxy/management_helpers/utils.py @@ -15,7 +15,6 @@ from litellm.proxy._types import ( # key request types; user request types; tea DeleteUserRequest, KeyRequest, LiteLLM_TeamMembership, - LiteLLM_TeamTable, LiteLLM_UserTable, ManagementEndpointLoggingPayload, Member, diff --git a/litellm/proxy/openai_files_endpoints/files_endpoints.py b/litellm/proxy/openai_files_endpoints/files_endpoints.py index fa69806502..19b176730b 100644 --- a/litellm/proxy/openai_files_endpoints/files_endpoints.py +++ b/litellm/proxy/openai_files_endpoints/files_endpoints.py @@ -7,17 +7,14 @@ import asyncio import traceback -from datetime import datetime, timedelta, timezone -from typing import List, Optional +from typing import Optional -import fastapi import httpx from fastapi import ( APIRouter, Depends, File, Form, - Header, HTTPException, Request, Response, @@ -26,9 +23,8 @@ from fastapi import ( ) import litellm -from litellm import CreateFileRequest, FileContentRequest, get_secret_str +from litellm import CreateFileRequest, get_secret_str from litellm._logging import verbose_proxy_logger -from litellm.batches.main import FileObject from litellm.proxy._types import * from litellm.proxy.auth.user_api_key_auth import user_api_key_auth from litellm.router import Router diff --git a/litellm/proxy/pass_through_endpoints/llm_passthrough_endpoints.py b/litellm/proxy/pass_through_endpoints/llm_passthrough_endpoints.py index 611a74db93..0082bf0bff 100644 --- a/litellm/proxy/pass_through_endpoints/llm_passthrough_endpoints.py +++ b/litellm/proxy/pass_through_endpoints/llm_passthrough_endpoints.py @@ -6,34 +6,13 @@ Provider-specific Pass-Through Endpoints Use litellm with Anthropic SDK, Vertex AI SDK, Cohere SDK, etc. """ -import ast -import asyncio -import traceback -from datetime import datetime, timedelta, timezone -from typing import List, Optional -from urllib.parse import urlencode +from typing import Optional -import fastapi import httpx -from fastapi import ( - APIRouter, - Depends, - File, - Form, - Header, - HTTPException, - Request, - Response, - UploadFile, - status, -) -from starlette.datastructures import QueryParams +from fastapi import APIRouter, Depends, HTTPException, Request, Response import litellm -from litellm._logging import verbose_proxy_logger -from litellm.batches.main import FileObject from litellm.constants import BEDROCK_AGENT_RUNTIME_PASS_THROUGH_ROUTES -from litellm.fine_tuning.main import vertex_fine_tuning_apis_instance from litellm.proxy._types import * from litellm.proxy.auth.user_api_key_auth import user_api_key_auth from litellm.proxy.pass_through_endpoints.pass_through_endpoints import ( @@ -240,7 +219,6 @@ async def bedrock_proxy_route( create_request_copy(request) try: - import boto3 from botocore.auth import SigV4Auth from botocore.awsrequest import AWSRequest from botocore.credentials import Credentials diff --git a/litellm/proxy/pass_through_endpoints/llm_provider_handlers/anthropic_passthrough_logging_handler.py b/litellm/proxy/pass_through_endpoints/llm_provider_handlers/anthropic_passthrough_logging_handler.py index 4799de9eba..1568c0d3a6 100644 --- a/litellm/proxy/pass_through_endpoints/llm_provider_handlers/anthropic_passthrough_logging_handler.py +++ b/litellm/proxy/pass_through_endpoints/llm_provider_handlers/anthropic_passthrough_logging_handler.py @@ -1,6 +1,6 @@ import json from datetime import datetime -from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union import httpx diff --git a/litellm/proxy/pass_through_endpoints/pass_through_endpoints.py b/litellm/proxy/pass_through_endpoints/pass_through_endpoints.py index a7c93feb18..5341f0bc15 100644 --- a/litellm/proxy/pass_through_endpoints/pass_through_endpoints.py +++ b/litellm/proxy/pass_through_endpoints/pass_through_endpoints.py @@ -1,31 +1,18 @@ import ast import asyncio import json -import traceback from base64 import b64encode from datetime import datetime -from typing import AsyncIterable, List, Optional, Union +from typing import List, Optional import httpx -from fastapi import ( - APIRouter, - Depends, - FastAPI, - HTTPException, - Request, - Response, - status, -) +from fastapi import APIRouter, Depends, HTTPException, Request, Response, status from fastapi.responses import StreamingResponse import litellm from litellm._logging import verbose_proxy_logger from litellm.integrations.custom_logger import CustomLogger -from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj from litellm.llms.custom_httpx.http_handler import get_async_httpx_client -from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( - ModelResponseIterator, -) from litellm.proxy._types import ( ConfigFieldInfo, ConfigFieldUpdate, @@ -326,7 +313,6 @@ async def pass_through_request( # noqa: PLR0915 stream: Optional[bool] = None, ): try: - import time import uuid from litellm.litellm_core_utils.litellm_logging import Logging diff --git a/litellm/proxy/pass_through_endpoints/streaming_handler.py b/litellm/proxy/pass_through_endpoints/streaming_handler.py index 285151af6f..b022bf1d25 100644 --- a/litellm/proxy/pass_through_endpoints/streaming_handler.py +++ b/litellm/proxy/pass_through_endpoints/streaming_handler.py @@ -1,27 +1,14 @@ import asyncio -import json import threading from datetime import datetime -from enum import Enum -from typing import AsyncIterable, Dict, List, Optional, Union +from typing import List, Optional import httpx -import litellm from litellm._logging import verbose_proxy_logger from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj -from litellm.llms.anthropic.chat.handler import ( - ModelResponseIterator as AnthropicIterator, -) -from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( - ModelResponseIterator as VertexAIIterator, -) from litellm.proxy._types import PassThroughEndpointLoggingResultValues -from litellm.types.utils import ( - GenericStreamingChunk, - ModelResponse, - StandardPassThroughResponseObject, -) +from litellm.types.utils import StandardPassThroughResponseObject from .llm_provider_handlers.anthropic_passthrough_logging_handler import ( AnthropicPassthroughLoggingHandler, diff --git a/litellm/proxy/pass_through_endpoints/success_handler.py b/litellm/proxy/pass_through_endpoints/success_handler.py index ec0fcf378e..6f112aed1f 100644 --- a/litellm/proxy/pass_through_endpoints/success_handler.py +++ b/litellm/proxy/pass_through_endpoints/success_handler.py @@ -1,22 +1,11 @@ import json -import re -import threading from datetime import datetime -from typing import Optional, Union +from typing import Optional import httpx -import litellm -from litellm._logging import verbose_proxy_logger from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj -from litellm.litellm_core_utils.litellm_logging import ( - get_standard_logging_object_payload, -) -from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( - VertexLLM, -) from litellm.proxy._types import PassThroughEndpointLoggingResultValues -from litellm.proxy.auth.user_api_key_auth import user_api_key_auth from litellm.types.utils import StandardPassThroughResponseObject from litellm.utils import executor as thread_pool_executor diff --git a/litellm/proxy/proxy_cli.py b/litellm/proxy/proxy_cli.py index ba37b3c517..5c4b04fb70 100644 --- a/litellm/proxy/proxy_cli.py +++ b/litellm/proxy/proxy_cli.py @@ -4,9 +4,7 @@ import os import random import subprocess import sys -import traceback import urllib.parse as urlparse -from datetime import datetime import click from dotenv import load_dotenv @@ -18,9 +16,7 @@ config_filename = "litellm.secrets" litellm_mode = os.getenv("LITELLM_MODE", "DEV") # "PRODUCTION", "DEV" if litellm_mode == "DEV": load_dotenv() -import shutil from enum import Enum -from importlib import resources telemetry = None @@ -512,7 +508,6 @@ def run_server( # noqa: PLR0915 try: import asyncio - import yaml # type: ignore except Exception: raise ImportError( "yaml needs to be imported. Run - `pip install 'litellm[proxy]'`" diff --git a/litellm/proxy/proxy_load_test/litellm_router_proxy/main.py b/litellm/proxy/proxy_load_test/litellm_router_proxy/main.py index 95e2abc15a..a81f9a56d6 100644 --- a/litellm/proxy/proxy_load_test/litellm_router_proxy/main.py +++ b/litellm/proxy/proxy_load_test/litellm_router_proxy/main.py @@ -2,11 +2,9 @@ # sys.path.insert( # 0, os.path.abspath("../") # ) # Adds the parent directory to the system path -from fastapi import FastAPI, Request, status, HTTPException, Depends -from fastapi.responses import StreamingResponse -from fastapi.security import OAuth2PasswordBearer +from fastapi import FastAPI, Request from fastapi.middleware.cors import CORSMiddleware -import uuid + import litellm app = FastAPI() diff --git a/litellm/proxy/proxy_load_test/locustfile.py b/litellm/proxy/proxy_load_test/locustfile.py index 8842d5305e..9e4977b106 100644 --- a/litellm/proxy/proxy_load_test/locustfile.py +++ b/litellm/proxy/proxy_load_test/locustfile.py @@ -1,8 +1,6 @@ -import json -import time import uuid -from locust import HttpUser, between, events, task +from locust import HttpUser, between, task class MyUser(HttpUser): diff --git a/litellm/proxy/proxy_load_test/openai_endpoint.py b/litellm/proxy/proxy_load_test/openai_endpoint.py index 3394b9c6fe..ebb9c1ce4f 100644 --- a/litellm/proxy/proxy_load_test/openai_endpoint.py +++ b/litellm/proxy/proxy_load_test/openai_endpoint.py @@ -2,12 +2,11 @@ # sys.path.insert( # 0, os.path.abspath("../") # ) # Adds the parent directory to the system path -from fastapi import FastAPI, Request, status, HTTPException, Depends -from fastapi.responses import StreamingResponse -from fastapi.security import OAuth2PasswordBearer -from fastapi.middleware.cors import CORSMiddleware import uuid +from fastapi import FastAPI, Request +from fastapi.middleware.cors import CORSMiddleware + app = FastAPI() app.add_middleware( diff --git a/litellm/proxy/proxy_load_test/simple_litellm_proxy.py b/litellm/proxy/proxy_load_test/simple_litellm_proxy.py index 003c89c777..fd5d99df4d 100644 --- a/litellm/proxy/proxy_load_test/simple_litellm_proxy.py +++ b/litellm/proxy/proxy_load_test/simple_litellm_proxy.py @@ -2,15 +2,12 @@ # sys.path.insert( # 0, os.path.abspath("../") # ) # Adds the parent directory to the system path -from fastapi import FastAPI, Request, status, HTTPException, Depends -from fastapi.responses import StreamingResponse -from fastapi.security import OAuth2PasswordBearer +from fastapi import FastAPI, Request from fastapi.middleware.cors import CORSMiddleware -import uuid -import litellm -import openai from openai import AsyncOpenAI +import litellm + app = FastAPI() app.add_middleware( diff --git a/litellm/proxy/proxy_load_test/simple_litellm_router_proxy.py b/litellm/proxy/proxy_load_test/simple_litellm_router_proxy.py index 95e2abc15a..a81f9a56d6 100644 --- a/litellm/proxy/proxy_load_test/simple_litellm_router_proxy.py +++ b/litellm/proxy/proxy_load_test/simple_litellm_router_proxy.py @@ -2,11 +2,9 @@ # sys.path.insert( # 0, os.path.abspath("../") # ) # Adds the parent directory to the system path -from fastapi import FastAPI, Request, status, HTTPException, Depends -from fastapi.responses import StreamingResponse -from fastapi.security import OAuth2PasswordBearer +from fastapi import FastAPI, Request from fastapi.middleware.cors import CORSMiddleware -import uuid + import litellm app = FastAPI() diff --git a/litellm/proxy/proxy_load_test/simple_proxy.py b/litellm/proxy/proxy_load_test/simple_proxy.py index 12fb6cffb4..cf3fb4148b 100644 --- a/litellm/proxy/proxy_load_test/simple_proxy.py +++ b/litellm/proxy/proxy_load_test/simple_proxy.py @@ -2,12 +2,8 @@ # sys.path.insert( # 0, os.path.abspath("../") # ) # Adds the parent directory to the system path -from fastapi import FastAPI, Request, status, HTTPException, Depends -from fastapi.responses import StreamingResponse -from fastapi.security import OAuth2PasswordBearer +from fastapi import FastAPI, Request from fastapi.middleware.cors import CORSMiddleware -import uuid -import openai from openai import AsyncOpenAI app = FastAPI() diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 6b0fd8b865..3c5f2ef4d5 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -256,8 +256,6 @@ from litellm.router import ( LiteLLM_Params, ModelGroupInfo, ) -from litellm.router import ModelInfo as RouterModelInfo -from litellm.router import updateDeployment from litellm.scheduler import DefaultPriorities, FlowItem, Scheduler from litellm.secret_managers.aws_secret_manager import load_aws_kms from litellm.secret_managers.google_kms import load_google_kms @@ -275,7 +273,8 @@ from litellm.types.llms.anthropic import ( AnthropicResponseUsageBlock, ) from litellm.types.llms.openai import HttpxBinaryResponseContent -from litellm.types.router import RouterGeneralSettings +from litellm.types.router import ModelInfo as RouterModelInfo +from litellm.types.router import RouterGeneralSettings, updateDeployment from litellm.types.utils import StandardLoggingPayload from litellm.utils import get_end_user_id_for_cost_tracking diff --git a/litellm/proxy/rerank_endpoints/endpoints.py b/litellm/proxy/rerank_endpoints/endpoints.py index bc09d7fc0d..39b3119304 100644 --- a/litellm/proxy/rerank_endpoints/endpoints.py +++ b/litellm/proxy/rerank_endpoints/endpoints.py @@ -1,13 +1,9 @@ #### Rerank Endpoints ##### -from datetime import datetime, timedelta, timezone -from typing import List, Optional -import fastapi import orjson -from fastapi import APIRouter, Depends, Header, HTTPException, Request, Response, status +from fastapi import APIRouter, Depends, HTTPException, Request, Response, status from fastapi.responses import ORJSONResponse -import litellm from litellm._logging import verbose_proxy_logger from litellm.proxy._types import * from litellm.proxy.auth.user_api_key_auth import user_api_key_auth diff --git a/litellm/proxy/route_llm_request.py b/litellm/proxy/route_llm_request.py index ec9850eeb3..c3cd7521d5 100644 --- a/litellm/proxy/route_llm_request.py +++ b/litellm/proxy/route_llm_request.py @@ -1,21 +1,8 @@ -from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union +from typing import TYPE_CHECKING, Any, Literal, Optional -from fastapi import ( - Depends, - FastAPI, - File, - Form, - Header, - HTTPException, - Path, - Request, - Response, - UploadFile, - status, -) +from fastapi import HTTPException, status import litellm -from litellm._logging import verbose_logger if TYPE_CHECKING: from litellm.router import Router as _Router diff --git a/litellm/proxy/spend_tracking/spend_management_endpoints.py b/litellm/proxy/spend_tracking/spend_management_endpoints.py index 9db804359b..4eb78f4261 100644 --- a/litellm/proxy/spend_tracking/spend_management_endpoints.py +++ b/litellm/proxy/spend_tracking/spend_management_endpoints.py @@ -1,9 +1,10 @@ #### SPEND MANAGEMENT ##### -from datetime import datetime, timedelta, timezone +import os +from datetime import datetime, timedelta from typing import List, Optional import fastapi -from fastapi import APIRouter, Depends, Header, HTTPException, Request, status +from fastapi import APIRouter, Depends, HTTPException, Request, status import litellm from litellm._logging import verbose_proxy_logger @@ -252,7 +253,6 @@ async def get_global_activity( "sum_total_tokens": 2012 } """ - from collections import defaultdict if start_date is None or end_date is None: raise HTTPException( @@ -263,7 +263,7 @@ async def get_global_activity( start_date_obj = datetime.strptime(start_date, "%Y-%m-%d") end_date_obj = datetime.strptime(end_date, "%Y-%m-%d") - from litellm.proxy.proxy_server import llm_router, prisma_client + from litellm.proxy.proxy_server import prisma_client try: if prisma_client is None: @@ -420,7 +420,6 @@ async def get_global_activity_model( }, ] """ - from collections import defaultdict if start_date is None or end_date is None: raise HTTPException( @@ -431,7 +430,7 @@ async def get_global_activity_model( start_date_obj = datetime.strptime(start_date, "%Y-%m-%d") end_date_obj = datetime.strptime(end_date, "%Y-%m-%d") - from litellm.proxy.proxy_server import llm_router, premium_user, prisma_client + from litellm.proxy.proxy_server import prisma_client try: if prisma_client is None: @@ -574,7 +573,6 @@ async def get_global_activity_exceptions_per_deployment( }, ] """ - from collections import defaultdict if start_date is None or end_date is None: raise HTTPException( @@ -585,7 +583,7 @@ async def get_global_activity_exceptions_per_deployment( start_date_obj = datetime.strptime(start_date, "%Y-%m-%d") end_date_obj = datetime.strptime(end_date, "%Y-%m-%d") - from litellm.proxy.proxy_server import llm_router, premium_user, prisma_client + from litellm.proxy.proxy_server import prisma_client try: if prisma_client is None: @@ -708,7 +706,6 @@ async def get_global_activity_exceptions( "sum_api_exceptions": 20, } """ - from collections import defaultdict if start_date is None or end_date is None: raise HTTPException( @@ -719,7 +716,7 @@ async def get_global_activity_exceptions( start_date_obj = datetime.strptime(start_date, "%Y-%m-%d") end_date_obj = datetime.strptime(end_date, "%Y-%m-%d") - from litellm.proxy.proxy_server import llm_router, prisma_client + from litellm.proxy.proxy_server import prisma_client try: if prisma_client is None: diff --git a/litellm/proxy/spend_tracking/spend_tracking_utils.py b/litellm/proxy/spend_tracking/spend_tracking_utils.py index ca1e1d33e8..355a476d47 100644 --- a/litellm/proxy/spend_tracking/spend_tracking_utils.py +++ b/litellm/proxy/spend_tracking/spend_tracking_utils.py @@ -1,8 +1,5 @@ -import datetime import json -import os import secrets -import traceback from datetime import datetime as dt from typing import Optional @@ -34,9 +31,7 @@ def _is_master_key(api_key: str, _master_key: Optional[str]) -> bool: def get_logging_payload( kwargs, response_obj, start_time, end_time, end_user_id: Optional[str] ) -> SpendLogsPayload: - from pydantic import Json - from litellm.proxy._types import LiteLLM_SpendLogs from litellm.proxy.proxy_server import general_settings, master_key verbose_proxy_logger.debug( diff --git a/litellm/proxy/ui_crud_endpoints/proxy_setting_endpoints.py b/litellm/proxy/ui_crud_endpoints/proxy_setting_endpoints.py index 44fadd26ae..8f91f9bbc9 100644 --- a/litellm/proxy/ui_crud_endpoints/proxy_setting_endpoints.py +++ b/litellm/proxy/ui_crud_endpoints/proxy_setting_endpoints.py @@ -1,11 +1,8 @@ #### CRUD ENDPOINTS for UI Settings ##### -from datetime import datetime, timedelta, timezone -from typing import List, Optional +from typing import List -import fastapi -from fastapi import APIRouter, Depends, Header, HTTPException, Request, status +from fastapi import APIRouter, Depends, HTTPException -import litellm from litellm._logging import verbose_proxy_logger from litellm.proxy._types import * from litellm.proxy.auth.user_api_key_auth import user_api_key_auth diff --git a/litellm/proxy/utils.py b/litellm/proxy/utils.py index 9ae26aec09..c93652f60c 100644 --- a/litellm/proxy/utils.py +++ b/litellm/proxy/utils.py @@ -4,33 +4,16 @@ import hashlib import importlib import json import os -import re import smtplib -import subprocess import threading import time import traceback from datetime import datetime, timedelta from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText -from functools import wraps -from typing import ( - TYPE_CHECKING, - Any, - List, - Literal, - Optional, - Tuple, - Union, - get_args, - overload, -) +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union, overload -from litellm.litellm_core_utils.duration_parser import ( - _extract_from_regex, - duration_in_seconds, - get_last_day_of_month, -) +from litellm.litellm_core_utils.duration_parser import duration_in_seconds from litellm.proxy._types import ( DB_CONNECTION_ERROR_TYPES, ProxyErrorTypes, @@ -44,20 +27,12 @@ except ImportError: "backoff is not installed. Please install it via 'pip install backoff'" ) -import httpx -from fastapi import HTTPException, Request, status -from pydantic import BaseModel +from fastapi import HTTPException, status import litellm import litellm.litellm_core_utils import litellm.litellm_core_utils.litellm_logging -from litellm import ( - EmbeddingResponse, - ImageResponse, - ModelResponse, - Router, - get_litellm_params, -) +from litellm import EmbeddingResponse, ImageResponse, ModelResponse, Router from litellm._logging import verbose_proxy_logger from litellm._service_logger import ServiceLogging, ServiceTypes from litellm.caching.caching import DualCache, RedisCache @@ -71,13 +46,9 @@ from litellm.llms.custom_httpx.httpx_handler import HTTPHandler from litellm.proxy._types import ( AlertType, CallInfo, - DynamoDBArgs, LiteLLM_VerificationTokenView, - LitellmUserRoles, Member, ResetTeamBudgetRequest, - SpendLogsMetadata, - SpendLogsPayload, UserAPIKeyAuth, ) from litellm.proxy.db.create_views import ( @@ -2291,7 +2262,6 @@ async def send_email(receiver_email, subject, html): sender_email, """ ## SERVER SETUP ## - from litellm.proxy.proxy_server import CommonProxyErrors, premium_user smtp_host = os.getenv("SMTP_HOST") smtp_port = int(os.getenv("SMTP_PORT", "587")) # default to port 587 diff --git a/litellm/proxy/vertex_ai_endpoints/langfuse_endpoints.py b/litellm/proxy/vertex_ai_endpoints/langfuse_endpoints.py index 8992a73308..a288ebc841 100644 --- a/litellm/proxy/vertex_ai_endpoints/langfuse_endpoints.py +++ b/litellm/proxy/vertex_ai_endpoints/langfuse_endpoints.py @@ -8,35 +8,15 @@ Logging Pass-Through Endpoints 1. Create pass-through endpoints for any LITELLM_BASE_URL/langfuse/ map to LANGFUSE_BASE_URL/ """ -import ast -import asyncio import base64 -import traceback +import os from base64 import b64encode -from datetime import datetime, timedelta, timezone -from typing import List, Optional -from urllib.parse import urlencode +from typing import Optional -import fastapi import httpx -from fastapi import ( - APIRouter, - Depends, - File, - Form, - Header, - HTTPException, - Request, - Response, - UploadFile, - status, -) -from starlette.datastructures import QueryParams +from fastapi import APIRouter, Request, Response import litellm -from litellm._logging import verbose_proxy_logger -from litellm.batches.main import FileObject -from litellm.fine_tuning.main import vertex_fine_tuning_apis_instance from litellm.proxy._types import * from litellm.proxy.auth.user_api_key_auth import user_api_key_auth from litellm.proxy.litellm_pre_call_utils import _get_dynamic_logging_metadata diff --git a/litellm/proxy/vertex_ai_endpoints/vertex_endpoints.py b/litellm/proxy/vertex_ai_endpoints/vertex_endpoints.py index 03f4ac9cd0..3b58567881 100644 --- a/litellm/proxy/vertex_ai_endpoints/vertex_endpoints.py +++ b/litellm/proxy/vertex_ai_endpoints/vertex_endpoints.py @@ -1,27 +1,11 @@ -import ast -import asyncio import traceback -from datetime import datetime, timedelta, timezone -from typing import List, Optional +from typing import Optional -import fastapi import httpx -from fastapi import ( - APIRouter, - Depends, - File, - Form, - Header, - HTTPException, - Request, - Response, - UploadFile, - status, -) +from fastapi import APIRouter, HTTPException, Request, Response, status import litellm from litellm._logging import verbose_proxy_logger -from litellm.batches.main import FileObject from litellm.fine_tuning.main import vertex_fine_tuning_apis_instance from litellm.proxy._types import * from litellm.proxy.auth.user_api_key_auth import user_api_key_auth diff --git a/litellm/realtime_api/main.py b/litellm/realtime_api/main.py index 3d17c4819a..268351874d 100644 --- a/litellm/realtime_api/main.py +++ b/litellm/realtime_api/main.py @@ -1,6 +1,5 @@ """Abstraction function for OpenAI's realtime API""" -import os from typing import Any, Optional import litellm diff --git a/litellm/rerank_api/main.py b/litellm/rerank_api/main.py index 3b3eaad016..0acdfb0da3 100644 --- a/litellm/rerank_api/main.py +++ b/litellm/rerank_api/main.py @@ -12,9 +12,9 @@ from litellm.llms.cohere.rerank import CohereRerank from litellm.llms.jina_ai.rerank.handler import JinaAIRerank from litellm.llms.together_ai.rerank.handler import TogetherAIRerank from litellm.secret_managers.main import get_secret -from litellm.types.rerank import RerankRequest, RerankResponse +from litellm.types.rerank import RerankResponse from litellm.types.router import * -from litellm.utils import client, exception_type, supports_httpx_timeout +from litellm.utils import client, exception_type ####### ENVIRONMENT VARIABLES ################### # Initialize any necessary instances or variables here diff --git a/litellm/router.py b/litellm/router.py index 6832ffae94..541135a882 100644 --- a/litellm/router.py +++ b/litellm/router.py @@ -8,33 +8,26 @@ # Thank you ! We ❤️ you! - Krrish & Ishaan import asyncio -import concurrent import copy -import datetime as datetime_og import enum import hashlib import inspect import json import logging -import random -import re import threading import time import traceback import uuid from collections import defaultdict -from datetime import datetime from typing import ( TYPE_CHECKING, Any, Callable, Dict, - Iterable, List, Literal, Optional, Tuple, - TypedDict, Union, cast, ) @@ -50,12 +43,10 @@ import litellm.litellm_core_utils import litellm.litellm_core_utils.exception_mapping_utils from litellm import get_secret_str from litellm._logging import verbose_router_logger -from litellm.assistants.main import AssistantDeleted from litellm.caching.caching import DualCache, InMemoryCache, RedisCache from litellm.integrations.custom_logger import CustomLogger from litellm.litellm_core_utils.core_helpers import _get_parent_otel_span_from_kwargs from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLogging -from litellm.llms.azure.azure import get_azure_ad_token_from_oidc from litellm.router_strategy.budget_limiter import RouterBudgetLimiting from litellm.router_strategy.least_busy import LeastBusyLoggingHandler from litellm.router_strategy.lowest_cost import LowestCostLoggingHandler @@ -70,7 +61,6 @@ from litellm.router_utils.batch_utils import ( ) from litellm.router_utils.client_initalization_utils import InitalizeOpenAISDKClient from litellm.router_utils.cooldown_cache import CooldownCache -from litellm.router_utils.cooldown_callbacks import router_cooldown_event_callback from litellm.router_utils.cooldown_handlers import ( DEFAULT_COOLDOWN_TIME_SECONDS, _async_get_cooldown_deployments, @@ -80,10 +70,7 @@ from litellm.router_utils.cooldown_handlers import ( ) from litellm.router_utils.fallback_event_handlers import ( get_fallback_model_group, - log_failure_fallback_event, - log_success_fallback_event, run_async_fallback, - run_sync_fallback, ) from litellm.router_utils.get_retry_from_policy import ( get_num_retries_from_retry_policy as _get_num_retries_from_retry_policy, @@ -100,25 +87,9 @@ from litellm.router_utils.router_callbacks.track_deployment_metrics import ( increment_deployment_successes_for_current_minute, ) from litellm.scheduler import FlowItem, Scheduler -from litellm.types.llms.openai import ( - AllMessageValues, - Assistant, - AssistantToolParam, - AsyncCursorPage, - Attachment, - Batch, - CreateFileRequest, - FileContentRequest, - FileObject, - FileTypes, - HttpxBinaryResponseContent, - OpenAIMessage, - Run, - Thread, -) +from litellm.types.llms.openai import AllMessageValues, Batch, FileObject, FileTypes from litellm.types.router import ( CONFIGURABLE_CLIENTSIDE_AUTH_PARAMS, - SPECIAL_MODEL_INFO_PARAMS, VALID_LITELLM_ENVIRONMENTS, AlertingConfig, AllowedFailsPolicy, @@ -128,41 +99,30 @@ from litellm.types.router import ( DeploymentTypedDict, GenericBudgetConfigType, LiteLLM_Params, - LiteLLMParamsTypedDict, ModelGroupInfo, - ModelInfo, OptionalPreCallChecks, RetryPolicy, RouterCacheEnum, - RouterErrors, RouterGeneralSettings, RouterModelGroupAliasItem, RouterRateLimitError, RouterRateLimitErrorBasic, RoutingStrategy, - updateDeployment, - updateLiteLLMParams, ) -from litellm.types.services import ServiceLoggerPayload, ServiceTypes -from litellm.types.utils import OPENAI_RESPONSE_HEADERS +from litellm.types.services import ServiceTypes from litellm.types.utils import ModelInfo as ModelMapInfo from litellm.types.utils import StandardLoggingPayload from litellm.utils import ( CustomStreamWrapper, EmbeddingResponse, ModelResponse, - _is_region_eu, - calculate_max_parallel_requests, - create_proxy_transport_and_mounts, get_llm_provider, get_secret, get_utc_datetime, - is_prompt_caching_valid_prompt, is_region_allowed, ) from .router_utils.pattern_match_deployments import PatternMatchRouter -from .router_utils.prompt_caching_cache import PromptCachingCache if TYPE_CHECKING: from opentelemetry.trace import Span as _Span @@ -3111,7 +3071,6 @@ class Router: Wrapped to reduce code duplication and prevent bugs. """ - import threading from concurrent.futures import ThreadPoolExecutor def run_in_new_loop(): @@ -3897,7 +3856,6 @@ class Router: original_model_list = copy.deepcopy(model_list) self.model_list = [] # we add api_base/api_key each model so load balancing between azure/gpt on api_base1 and api_base2 works - import os for model in original_model_list: _model_name = model.pop("model_name") diff --git a/litellm/router_strategy/budget_limiter.py b/litellm/router_strategy/budget_limiter.py index 0452a174b5..2d20e19a8e 100644 --- a/litellm/router_strategy/budget_limiter.py +++ b/litellm/router_strategy/budget_limiter.py @@ -20,14 +20,13 @@ anthropic: import asyncio from datetime import datetime, timedelta, timezone -from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, TypedDict, Union +from typing import Any, Dict, List, Optional, Tuple, Union import litellm from litellm._logging import verbose_router_logger from litellm.caching.caching import DualCache from litellm.caching.redis_cache import RedisPipelineIncrementOperation from litellm.integrations.custom_logger import CustomLogger, Span -from litellm.litellm_core_utils.core_helpers import _get_parent_otel_span_from_kwargs from litellm.litellm_core_utils.duration_parser import duration_in_seconds from litellm.router_strategy.tag_based_routing import _get_tags_from_request_kwargs from litellm.router_utils.cooldown_callbacks import ( @@ -611,7 +610,6 @@ class RouterBudgetLimiting(CustomLogger): This is helpful for debugging and monitoring provider budget limits. """ - from litellm.integrations.prometheus import PrometheusLogger prometheus_logger = _get_prometheus_logger_from_callbacks() if prometheus_logger: diff --git a/litellm/router_strategy/least_busy.py b/litellm/router_strategy/least_busy.py index 95deb8e6c8..12f3f01c83 100644 --- a/litellm/router_strategy/least_busy.py +++ b/litellm/router_strategy/least_busy.py @@ -6,9 +6,7 @@ # - use litellm.success + failure callbacks to log when a request completed # - in get_available_deployment, for a given model group name -> pick based on traffic -import os import random -import traceback from typing import Optional from litellm.caching.caching import DualCache diff --git a/litellm/router_strategy/lowest_cost.py b/litellm/router_strategy/lowest_cost.py index 009e51cc55..bd28f6dc5a 100644 --- a/litellm/router_strategy/lowest_cost.py +++ b/litellm/router_strategy/lowest_cost.py @@ -1,17 +1,13 @@ #### What this does #### # picks based on response time (for streaming, this is time to first token) -import traceback from datetime import datetime, timedelta from typing import Dict, List, Optional, Union -from pydantic import BaseModel - import litellm from litellm import ModelResponse, token_counter, verbose_logger from litellm._logging import verbose_router_logger from litellm.caching.caching import DualCache from litellm.integrations.custom_logger import CustomLogger -from litellm.types.utils import LiteLLMPydanticObjectBase class LowestCostLoggingHandler(CustomLogger): diff --git a/litellm/router_strategy/lowest_latency.py b/litellm/router_strategy/lowest_latency.py index 9020bb11ba..b049c94264 100644 --- a/litellm/router_strategy/lowest_latency.py +++ b/litellm/router_strategy/lowest_latency.py @@ -1,12 +1,9 @@ #### What this does #### # picks based on response time (for streaming, this is time to first token) import random -import traceback from datetime import datetime, timedelta from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union -from pydantic import BaseModel - import litellm from litellm import ModelResponse, token_counter, verbose_logger from litellm.caching.caching import DualCache diff --git a/litellm/router_strategy/lowest_tpm_rpm.py b/litellm/router_strategy/lowest_tpm_rpm.py index c99dc6a076..8658793973 100644 --- a/litellm/router_strategy/lowest_tpm_rpm.py +++ b/litellm/router_strategy/lowest_tpm_rpm.py @@ -1,7 +1,5 @@ #### What this does #### # identifies lowest tpm deployment -import os -import random import traceback from datetime import datetime from typing import Dict, List, Optional, Union diff --git a/litellm/router_strategy/lowest_tpm_rpm_v2.py b/litellm/router_strategy/lowest_tpm_rpm_v2.py index 7a28f41c20..5dfc182afa 100644 --- a/litellm/router_strategy/lowest_tpm_rpm_v2.py +++ b/litellm/router_strategy/lowest_tpm_rpm_v2.py @@ -1,11 +1,9 @@ #### What this does #### # identifies lowest tpm deployment import random -import traceback from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union import httpx -from pydantic import BaseModel import litellm from litellm import token_counter diff --git a/litellm/router_strategy/tag_based_routing.py b/litellm/router_strategy/tag_based_routing.py index 241f74ec55..f15f753e59 100644 --- a/litellm/router_strategy/tag_based_routing.py +++ b/litellm/router_strategy/tag_based_routing.py @@ -6,10 +6,10 @@ Use this to route requests between Teams - If no default_deployments are set, return all deployments """ -from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional, TypedDict, Union +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union from litellm._logging import verbose_logger -from litellm.types.router import DeploymentTypedDict, RouterErrors +from litellm.types.router import RouterErrors if TYPE_CHECKING: from litellm.router import Router as _Router diff --git a/litellm/router_utils/batch_utils.py b/litellm/router_utils/batch_utils.py index 88b614bac3..51cc164d30 100644 --- a/litellm/router_utils/batch_utils.py +++ b/litellm/router_utils/batch_utils.py @@ -1,6 +1,6 @@ import io import json -from typing import IO, Optional, Tuple, Union +from typing import Optional, Tuple, Union class InMemoryFile(io.BytesIO): diff --git a/litellm/router_utils/client_initalization_utils.py b/litellm/router_utils/client_initalization_utils.py index 70b8c71fdc..31e7083e45 100644 --- a/litellm/router_utils/client_initalization_utils.py +++ b/litellm/router_utils/client_initalization_utils.py @@ -1,6 +1,5 @@ import asyncio import os -import traceback from typing import TYPE_CHECKING, Any, Callable, Optional import httpx diff --git a/litellm/router_utils/cooldown_cache.py b/litellm/router_utils/cooldown_cache.py index dbe767214a..f096b026c0 100644 --- a/litellm/router_utils/cooldown_cache.py +++ b/litellm/router_utils/cooldown_cache.py @@ -2,12 +2,11 @@ Wrapper around router cache. Meant to handle model cooldown logic """ -import json import time from typing import TYPE_CHECKING, Any, List, Optional, Tuple, TypedDict from litellm import verbose_logger -from litellm.caching.caching import Cache, DualCache +from litellm.caching.caching import DualCache from litellm.caching.in_memory_cache import InMemoryCache if TYPE_CHECKING: diff --git a/litellm/router_utils/cooldown_handlers.py b/litellm/router_utils/cooldown_handlers.py index 42864d9869..1e1c58a771 100644 --- a/litellm/router_utils/cooldown_handlers.py +++ b/litellm/router_utils/cooldown_handlers.py @@ -12,7 +12,6 @@ from typing import TYPE_CHECKING, Any, List, Optional, Union import litellm from litellm._logging import verbose_router_logger from litellm.router_utils.cooldown_callbacks import router_cooldown_event_callback -from litellm.utils import get_utc_datetime from .router_callbacks.track_deployment_metrics import ( get_deployment_failures_for_current_minute, diff --git a/litellm/router_utils/fallback_event_handlers.py b/litellm/router_utils/fallback_event_handlers.py index 2845ec4769..84c3d76285 100644 --- a/litellm/router_utils/fallback_event_handlers.py +++ b/litellm/router_utils/fallback_event_handlers.py @@ -1,11 +1,9 @@ from enum import Enum -from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple +from typing import TYPE_CHECKING, Any, List, Optional, Tuple import litellm -from litellm import LlmProviders from litellm._logging import verbose_router_logger from litellm.integrations.custom_logger import CustomLogger -from litellm.main import verbose_logger if TYPE_CHECKING: from litellm.router import Router as _Router diff --git a/litellm/router_utils/handle_error.py b/litellm/router_utils/handle_error.py index 321ba5dc59..e1055a9d0f 100644 --- a/litellm/router_utils/handle_error.py +++ b/litellm/router_utils/handle_error.py @@ -1,5 +1,3 @@ -import asyncio -import traceback from typing import TYPE_CHECKING, Any, Optional from litellm._logging import verbose_router_logger diff --git a/litellm/router_utils/pattern_match_deployments.py b/litellm/router_utils/pattern_match_deployments.py index a5e54d898e..a0d590f23c 100644 --- a/litellm/router_utils/pattern_match_deployments.py +++ b/litellm/router_utils/pattern_match_deployments.py @@ -4,7 +4,6 @@ Class to handle llm wildcard routing and regex pattern matching import copy import re -from functools import cached_property from re import Match from typing import Dict, List, Optional, Tuple diff --git a/litellm/router_utils/prompt_caching_cache.py b/litellm/router_utils/prompt_caching_cache.py index 61698ac6bc..1bf686d694 100644 --- a/litellm/router_utils/prompt_caching_cache.py +++ b/litellm/router_utils/prompt_caching_cache.py @@ -4,12 +4,9 @@ Wrapper around router cache. Meant to store model id when prompt caching support import hashlib import json -import time -from typing import TYPE_CHECKING, Any, List, Optional, Tuple, TypedDict +from typing import TYPE_CHECKING, Any, List, Optional, TypedDict -import litellm -from litellm import verbose_logger -from litellm.caching.caching import Cache, DualCache +from litellm.caching.caching import DualCache from litellm.caching.in_memory_cache import InMemoryCache from litellm.types.llms.openai import AllMessageValues, ChatCompletionToolParam diff --git a/litellm/router_utils/router_callbacks/track_deployment_metrics.py b/litellm/router_utils/router_callbacks/track_deployment_metrics.py index 5d4440222b..1f226879d0 100644 --- a/litellm/router_utils/router_callbacks/track_deployment_metrics.py +++ b/litellm/router_utils/router_callbacks/track_deployment_metrics.py @@ -9,9 +9,7 @@ get_deployment_failures_for_current_minute get_deployment_successes_for_current_minute """ -from typing import TYPE_CHECKING, Any, Callable, Optional - -from litellm.utils import get_utc_datetime +from typing import TYPE_CHECKING, Any if TYPE_CHECKING: from litellm.router import Router as _Router diff --git a/litellm/secret_managers/aws_secret_manager_v2.py b/litellm/secret_managers/aws_secret_manager_v2.py index acee00b929..43aa0d52f5 100644 --- a/litellm/secret_managers/aws_secret_manager_v2.py +++ b/litellm/secret_managers/aws_secret_manager_v2.py @@ -13,26 +13,22 @@ Requires: * `pip install boto3>=1.28.57` """ -import ast -import asyncio -import base64 import json import os -import re -import sys -from typing import Any, Dict, Optional, Union +from typing import Any, Optional, Union import httpx import litellm from litellm._logging import verbose_logger +from litellm.llms.bedrock.base_aws_llm import BaseAWSLLM from litellm.llms.custom_httpx.http_handler import ( _get_httpx_client, get_async_httpx_client, ) from litellm.proxy._types import KeyManagementSystem from litellm.types.llms.custom_http import httpxSpecialProvider -from litellm.llms.bedrock.base_aws_llm import BaseAWSLLM + class AWSSecretsManagerV2(BaseAWSLLM): @classmethod @@ -48,7 +44,6 @@ class AWSSecretsManagerV2(BaseAWSLLM): if use_aws_secret_manager is None or use_aws_secret_manager is False: return try: - import boto3 cls.validate_environment() litellm.secret_manager_client = cls() @@ -253,10 +248,8 @@ class AWSSecretsManagerV2(BaseAWSLLM): ) -> tuple[str, Any, bytes]: """Prepare the AWS Secrets Manager request""" try: - import boto3 from botocore.auth import SigV4Auth from botocore.awsrequest import AWSRequest - from botocore.credentials import Credentials except ImportError: raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.") optional_params = optional_params or {} diff --git a/litellm/secret_managers/main.py b/litellm/secret_managers/main.py index ce6d307558..2b89aedadd 100644 --- a/litellm/secret_managers/main.py +++ b/litellm/secret_managers/main.py @@ -1,19 +1,16 @@ import ast import base64 import binascii -import json import os -import sys import traceback -from typing import TYPE_CHECKING, Any, Optional, Union +from typing import Any, Optional, Union import httpx -from dotenv import load_dotenv import litellm from litellm._logging import print_verbose, verbose_logger from litellm.caching.caching import DualCache -from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler, HTTPHandler +from litellm.llms.custom_httpx.http_handler import HTTPHandler from litellm.proxy._types import KeyManagementSystem oidc_cache = DualCache() diff --git a/ruff.toml b/ruff.toml index ba8f51d3c6..a310446671 100644 --- a/ruff.toml +++ b/ruff.toml @@ -1,4 +1,15 @@ -ignore = ["F405", "E402", "F401", "E501", "F403"] -extend-select = ["E501", "PLR0915", "T20"] +lint.ignore = ["F405", "E402", "E501", "F403"] +lint.extend-select = ["E501", "PLR0915", "T20"] line-length = 120 -exclude = ["litellm/types/*", "litellm/__init__.py", "litellm/proxy/example_config_yaml/*"] \ No newline at end of file +exclude = ["litellm/types/*", "litellm/__init__.py", "litellm/proxy/example_config_yaml/*", "tests/*"] + + +[lint.per-file-ignores] +"litellm/main.py" = ["F401"] +"litellm/utils.py" = ["F401"] +"litellm/proxy/proxy_server.py" = ["F401"] +"litellm/caching/__init__.py" = ["F401"] +"litellm/llms/anthropic/chat/__init__.py" = ["F401"] +"litellm/llms/azure_ai/embed/__init__.py" = ["F401"] +"litellm/llms/azure_ai/rerank/__init__.py" = ["F401"] +"litellm/llms/bedrock/chat/__init__.py" = ["F401"] \ No newline at end of file diff --git a/tests/local_testing/test_add_update_models.py b/tests/local_testing/test_add_update_models.py index a940894ca3..b3ad1f32f0 100644 --- a/tests/local_testing/test_add_update_models.py +++ b/tests/local_testing/test_add_update_models.py @@ -22,11 +22,9 @@ verbose_proxy_logger.setLevel(level=logging.DEBUG) from litellm.caching.caching import DualCache from litellm.router import ( Deployment, - updateDeployment, LiteLLM_Params, - ModelInfo, - updateLiteLLMParams, ) +from litellm.types.router import ModelInfo, updateDeployment, updateLiteLLMParams from litellm.proxy._types import ( UserAPIKeyAuth, diff --git a/tests/local_testing/test_router.py b/tests/local_testing/test_router.py index 7b84f45408..6a91ee507c 100644 --- a/tests/local_testing/test_router.py +++ b/tests/local_testing/test_router.py @@ -27,7 +27,8 @@ from pydantic import BaseModel import litellm from litellm import Router -from litellm.router import Deployment, LiteLLM_Params, ModelInfo +from litellm.router import Deployment, LiteLLM_Params +from litellm.types.router import ModelInfo from litellm.router_utils.cooldown_handlers import ( _async_get_cooldown_deployments, _get_cooldown_deployments, diff --git a/tests/local_testing/test_router_batch_completion.py b/tests/local_testing/test_router_batch_completion.py index 065730d48e..6fedb82a55 100644 --- a/tests/local_testing/test_router_batch_completion.py +++ b/tests/local_testing/test_router_batch_completion.py @@ -22,7 +22,8 @@ from dotenv import load_dotenv import litellm from litellm import Router -from litellm.router import Deployment, LiteLLM_Params, ModelInfo +from litellm.router import Deployment, LiteLLM_Params +from litellm.types.router import ModelInfo load_dotenv() diff --git a/tests/local_testing/test_router_pattern_matching.py b/tests/local_testing/test_router_pattern_matching.py index a7ef7df2bc..5695034c7a 100644 --- a/tests/local_testing/test_router_pattern_matching.py +++ b/tests/local_testing/test_router_pattern_matching.py @@ -13,7 +13,8 @@ sys.path.insert( ) # Adds the parent directory to the system path import litellm from litellm import Router -from litellm.router import Deployment, LiteLLM_Params, ModelInfo +from litellm.router import Deployment, LiteLLM_Params +from litellm.types.router import ModelInfo from concurrent.futures import ThreadPoolExecutor from collections import defaultdict from dotenv import load_dotenv diff --git a/tests/local_testing/test_router_utils.py b/tests/local_testing/test_router_utils.py index b3f3437c4f..27d74c286f 100644 --- a/tests/local_testing/test_router_utils.py +++ b/tests/local_testing/test_router_utils.py @@ -10,7 +10,8 @@ sys.path.insert( ) # Adds the parent directory to the system path import litellm from litellm import Router -from litellm.router import Deployment, LiteLLM_Params, ModelInfo +from litellm.router import Deployment, LiteLLM_Params +from litellm.types.router import ModelInfo from concurrent.futures import ThreadPoolExecutor from collections import defaultdict from dotenv import load_dotenv diff --git a/tests/local_testing/test_utils.py b/tests/local_testing/test_utils.py index 7d922e19b6..a14bc57061 100644 --- a/tests/local_testing/test_utils.py +++ b/tests/local_testing/test_utils.py @@ -20,8 +20,10 @@ import litellm from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler, headers from litellm.proxy.utils import ( duration_in_seconds, - _extract_from_regex, +) +from litellm.litellm_core_utils.duration_parser import ( get_last_day_of_month, + _extract_from_regex, ) from litellm.utils import ( check_valid_key, diff --git a/tests/logging_callback_tests/test_spend_logs.py b/tests/logging_callback_tests/test_spend_logs.py index 62f3d6d715..9e4ceafd77 100644 --- a/tests/logging_callback_tests/test_spend_logs.py +++ b/tests/logging_callback_tests/test_spend_logs.py @@ -26,7 +26,7 @@ import pytest import litellm from litellm.proxy.spend_tracking.spend_tracking_utils import get_logging_payload -from litellm.proxy.utils import SpendLogsMetadata, SpendLogsPayload # noqa: E402 +from litellm.proxy._types import SpendLogsMetadata, SpendLogsPayload @pytest.mark.parametrize( diff --git a/tests/router_unit_tests/test_router_cooldown_utils.py b/tests/router_unit_tests/test_router_cooldown_utils.py index 7ee2e927dc..1623808fc1 100644 --- a/tests/router_unit_tests/test_router_cooldown_utils.py +++ b/tests/router_unit_tests/test_router_cooldown_utils.py @@ -7,7 +7,8 @@ sys.path.insert( ) # Adds the parent directory to the system path import litellm from litellm import Router -from litellm.router import Deployment, LiteLLM_Params, ModelInfo +from litellm.router import Deployment, LiteLLM_Params +from litellm.types.router import ModelInfo from concurrent.futures import ThreadPoolExecutor from collections import defaultdict from dotenv import load_dotenv diff --git a/tests/router_unit_tests/test_router_handle_error.py b/tests/router_unit_tests/test_router_handle_error.py index 37fe72dc2d..39b9814ccc 100644 --- a/tests/router_unit_tests/test_router_handle_error.py +++ b/tests/router_unit_tests/test_router_handle_error.py @@ -7,7 +7,8 @@ sys.path.insert( ) # Adds the parent directory to the system path import litellm from litellm import Router -from litellm.router import Deployment, LiteLLM_Params, ModelInfo +from litellm.router import Deployment, LiteLLM_Params +from litellm.types.router import ModelInfo from concurrent.futures import ThreadPoolExecutor from collections import defaultdict from dotenv import load_dotenv diff --git a/ui/admin.py b/ui/admin.py index 96da791dfa..7c3d38d78e 100644 --- a/ui/admin.py +++ b/ui/admin.py @@ -1,11 +1,16 @@ """ Admin sets proxy url + allowed email subdomain """ + from dotenv import load_dotenv load_dotenv() import streamlit as st -import base64, os, json, uuid, requests +import base64 +import os +import json +import uuid +import requests import pandas as pd import plotly.express as px import click @@ -26,13 +31,13 @@ def update_config_values(proxy_url, allowed_email_subdomain, admin_emails): st.session_state["allowed_email_subdomain"] = allowed_email_subdomain st.session_state["admin_emails"] = admin_emails if your_base_url.endswith("/"): - st.session_state[ - "user_auth_url" - ] = f"{your_base_url}user?page={encode_config(proxy_url=proxy_url, allowed_email_subdomain=allowed_email_subdomain, admin_emails=admin_emails)}" + st.session_state["user_auth_url"] = ( + f"{your_base_url}user?page={encode_config(proxy_url=proxy_url, allowed_email_subdomain=allowed_email_subdomain, admin_emails=admin_emails)}" + ) else: - st.session_state[ - "user_auth_url" - ] = f"{your_base_url}/user?page={encode_config(proxy_url=proxy_url, allowed_email_subdomain=allowed_email_subdomain, admin_emails=admin_emails)}" + st.session_state["user_auth_url"] = ( + f"{your_base_url}/user?page={encode_config(proxy_url=proxy_url, allowed_email_subdomain=allowed_email_subdomain, admin_emails=admin_emails)}" + ) st.session_state["is_admin"] = True @@ -71,7 +76,7 @@ def proxy_setup(): def add_new_model(): import streamlit as st - import json, requests, uuid + import requests if ( st.session_state.get("api_url", None) is None @@ -295,7 +300,7 @@ def spend_per_user(): def create_key(): import streamlit as st - import json, requests, uuid + import requests if ( st.session_state.get("api_url", None) is None diff --git a/ui/pages/user.py b/ui/pages/user.py index a571c2c73a..119f49399b 100644 --- a/ui/pages/user.py +++ b/ui/pages/user.py @@ -8,10 +8,11 @@ Remember to set your redirect url to 8501 (streamlit default). import streamlit as st from dotenv import load_dotenv -import requests, base64, binascii +import requests +import base64 +import binascii load_dotenv() -import os def is_base64(sb): @@ -94,7 +95,7 @@ def auth_page(page_param: str): if response.status_code == 200: # Success! - st.success(f"Email sent successfully!") + st.success("Email sent successfully!") def user_page(page_param: str, user_id: str, token: str):