{"cells":[{"metadata":{},"cell_type":"markdown","source":"![Riiid.jpg](attachment:Riiid.jpg)","attachments":{"Riiid.jpg":{"image/jpeg":"/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAEKAZADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD8BxwacvSkGCe3HFKSFx+XWqbNhQDu5/Snjp/9emDk07HNSA4GlA55/D3pNuKVDkHPO3kVPMUiTrXVfBT4bf8AC2viLZaA142n/bEmbzxF5uwpEzj5cjOSoHUda5dflFeufsRQeb+0Rprf887W6f8A8hMP6046uxpTinJXJPHX7E3jrwiHmsbOHxFarkh9OctNj/ri2HJ9k3V5Vf6dc6ReyWt5b3FpdQnEkM0ZjkjPoVbBH41+nunxjav1H41D4r+HugfEWyNrr+k6dq0KjCi6hDtH1+433k+qkGrlT7HoPDpr3WfmGhwamj4PSvtHx1/wTX8MeJvMm8M6tf8Ah+4bkQTj7Za59BkiRfqWb6dq8S+JH7BvxM+GqSTDQm8QWMfJutGf7Xge8WBMPrsx71k6ckYypyjueP7d4oC7f/109o2inkikVo5YWKSIwwyMOoI6g+xpUTceMVkSEY+b88+1TdTz3NNij5yO9SHgjPrWMjaL0HwjBxUqjJ9eKjRgMe1SLMu7rWbvsbRkSxLuq3GuT/e5zmqscq/wt/8AXq5DyeCvp1rlkdlPcs28eF6fNnir9kmG/vcYANUVuo7ZVYt07Zqvd+NobI/u1MjD06VyulOT91HYq9OmrzZraj8PrHXYWkUfZp2HyvH0b1ytcb4o+HuoeGo1luLfzLV87Z4xuU/X0q1efEe/mXbDtgHTIHOKzdQ1281d2a5upZNwAILcHAAHH4V6GFp4mGk5K3bc8vHV8HNXhF83dafeUbPUJNP+Vo47q3zkwy5I/wCAnqp9wfzroNE+KEfhiQW62f8AbOizjM+m6nyqnuI5FIZfUMNvPUHFZ2i+EtQ8T3Qi0+0muGzj5F+UfU9BU/i74Wa14LRZNQsZI4WA/fRnfGD6FhwD9a2rfV5T9nNq76X/AK189znw/wBbhD2tNOy62/D0fbVGt8Evi/pPwj+Jj69feAfCXjex8qSOPRtfFzJZQliCsgEUsbMyYwN5ZSGbK5wV9B+M8nh/4oeLfGf/AAgHhP8A4QnS4438Sahpd7LubSYIvLQWkcjRxscyS5K7FBYxKo+Tc/mnwz8U+H9Aaaz8TeGV17SrxlLz2t0bTUrEj+K3lIaPPPKSxuregOGHvP7SHx1s/H/7LdnaXF14J+IXky22m6N4jkg/sbxl4fijG/7Hf26HZeQmOMokuZlQgfvVJWOuXFQkq8ZRi+123a3e2za87Ptc9DA1Y/V5qcl3tZXv2vo7Pyuu9j5t8OR4eaTsBS6avnaiz+hJpunXsNvpEi+YBM38ODU2ixl7ORlxuYhF+pr0a2kLHk0ruR9S6cthefs3/DnwndrHJDDbXuvXMTd5r242hvZvJtoORzjFeT+K/he2iTNJat59rnklMvF6bvb3HFVPHXxUig+Is0FnI32DTYLfTrV8/K6QQpFkexZGb/gVdNoXxCi1WNVmb94Bwwr4qpRxVCTqrVS1t66n6DTxOExEfYP4o+6vlp9xymn6O2mw+c0q+VnBx2/OulsNbs7bbH/aFrAZONyr5rDP+fSjxBpEN1YyCFIWWXqn8B+g7fTpXPKG0yzmRnSCRVPyIoTnt71Pu11eT1L1oOy2O/0zxCtxZXbW7LIi3CAMqYAGwDH0J4r2X4beKW8QeGTDDD/rEkSSWaTCo4UkYyRxzyOucYzXzh8MfFSaAZIbpVaO4YNuI3YPTkehr1C3+JsNpbrJEslyqn5hAA2z8PzPFclbLXJtXsu52YbMlFJ21PqHwF48/sOw0xZp482sMccxViVBC4P1r75/YF/a50vwpoF1DcSX024blWJxGD+NfkD4d+KrXUm2ZlispTtWZXLY7YbIypr6g/Ze8bXVhbOFl3Rtja/94f0rjp4X2NbnR72FzCnUjy1vh2f9aH05+31+08fGOuRmBWt4UU7f3m5j16mvi7xf8SmnkkbexLdfm610P7Snjia71LbJLuCg8A/WvA9b8Ql93zc811QwylK9jhx2Oi5v2b06ehe8VeMWvg43Hkde/wCFcFr+tlmYsfmGR1p+pa8sjspf5gOR6Vz9+ZLk/Kj7W/iYbB+v+FehHDxhueDPESm/dMzW9Q81mPI7dK5y+TeGLfd7lq6K90vLYeTarcHYOfzP+FSWnhu1I/1KSenmfN+h4q41qcdtTnlRqS30OPTRpNSlbyY5Js9Qq/J+JxijRPhN5CyveSSQhmJSGMj5V9SefUjHtXosNqsSBRnAHRegpJdPWSMHb8vYCiWOla0dCo5dC956nCz+DbG2gZUg3PgqHcliD9TVCazZ7cMyrHtyCMdCOCBXb6rbC2jGzCM7BckjPWsPUrTDN33HJJPWpjWk9ZMVSjGOkUcXc2yqcEd6yb+3ABP5E11Oq26xn8eDWBqQUN6Yr1KEzxsTTscEnH07045pcUEZI5219VynxY4/h+dC0ucetNHL9TRylbj806POP5U3NCjnrUcqGSK+R3xXs37CMRf49Ky/8s9NuG/9AH9a8ZxxXt37BIH/AAuy8bj93o8xH1MsA/rVwXvI0pN8yPtWylwdozxxyaux3TM27npxWTZ3Shee/p3q0L1Qeea6uVnoqpZHQaRdtvX5sevvXZaHdEY9Vx+FedaTqP70ZPeuv0O7c7evFaU6LZlUrGl8RPgj4L+N9p5fizwzpetPt2LcSx7LpB2CzptlUewbFfOnxY/4JE6PqokuvAvii50mZgStjrK/aLcn0E0YEiL/ALySGvqXTI5plXH15rqNF0Ga5xuzz6VtLCQa945JVn0PyF+N37Lfj79neRm8UeH7m30/dsTU7Y/abCQk8fvlyFJzwr7W9q85e53Div3msvAy6hZyQzxpPBOpjlikUMkingqykYIPoeK+Z/2of+CMvhb4pW1xqvw+kt/BXiFgZDZFD/ZF43XGxQWtiT/FGCgA/wBXk5rjrYWEfhdxR9q9T8rGnfPRqTzJN3Vq734u/AXxR8A/HNx4b8X6Ld6Jq8A3CKYBknjyQJIpFJSWM4OHQkcEdQQOaTSQD0+lefKcUbqhUe7MpJpQP4qet7ddF3e1ayaco6/yqwLWOJeQBXPKtHsbxw82viMF/tEo+fdUa2ck0gCqzMfatq5uoRVrRnUzKyoDz6UpVnGN7GkcLGU+Vsp6V8PL7UmywWGM9WPau/8ADvwf0vTreOebdeyByrbuF6ZBAqzpsi3u5Vj27lyg649s1taRP5tlIu37sit/MV89i8dXn7qdl5H02ByzD07O135m5oEcdvEscMccSADCqNorptLiju0kjkRZo5QQyOAykdwRXK2MwEqr09B6V1Gg3A34G3AH6Z/+vXz9eN2fU4d20OY8bfsi6P4wia60OX+yLxvm8sjdbufp1X8Pyrwr4j/BbXvhnPt1jTZbeJiRHdIN8En0ccfgcH2r7K0S6Rdu19x3fdI/r/n9a6qyS31Wxa1vLeG6tpRh4pkDowPYg8c12YTPsRh3yz96Pnv8n+jOPHcNYTFe9D3JeW3zR+bklo8fbcPUV6to/wCyR440nw34f8XX1rYWHgfWLqOF/EsV4mpaZp2SnN2bMzPCRuHyOgcsGUKWUge+/FP/AIJ+6L41ikvvCN0uhag3zfY5svaSH0B5aP8ADI9hXg9tcfE/9irxpLJa3Gr+Fbu8UxSmNt9jqkZBBVxzFMhBPysDjJ6GvpKGa0sZC2HklLtLf+vv9D5HEZLXwM74mLcP5o6r5/5XXqN+Inwk1j4Zyww65Z2WoaVfMzWOsafMt3Y6kq/xQXCdSAQWjbbImcOiHiuZGgz6VG1xpsjXUP3vLJ/eJ+Hf8K7F/j5Z63FctHp9n4VuL8hr2zskJ0LUmHQtanIgYE8FPlXA2qh+asy6t7eS5LWbpp11jc0LSb4XHUFHBIx+JHT5ic1m/ax0krfk/wDL5N/odH7ifvQd1+K/z+aXzIPDHxBLAQu2G6FX7V0culWniy1UxsscijhlPI7/AIj2rlda0KO9df7Qt2s7lx8ko4EnuD0IpumXl74NcNKv2m07SJ1UfSuKth4yfNS92XY7KOIqQVqvvR79vkaGoadcaM+2WMlezr0P+FWNG15oJ1ZWKsOmD0q4mvpqmnrJlZoJOBKvP4H0NUovCKX9+m24+ywswDyFCwQfTNZRk46VlZmrtJXoO6/E63SPEP73zoJIYbhvvxucRTj39D79K9g+Dfxnn8EI3lLIbXkS28nDQ9zt/njv2r5k8G+L/wDhFfF8dxfRSzQWu8tDtG5vlIHB464Oa6+8+Muq+Jw0mlaPHbwxjaZhAZ3C9gWxtH5ZHrW0sKm9V8xwxWmr+R7p8SPiVP4vurbUIZoZNPuHEJleYJtbqR7sB/COa4nXPGml6bOy3F2skgP3Fbc2PoOa4jUrPU/EdpDeTWzX2oXg2xQo0UNtbhuOny4J4ORn3NVrbwYnhVtt3ZRvfQjbKZlLbW7jaeB9cc1z8ijo3a5t7RvZGve/FrS7e4ZYVbaepCfMTTIPiTpupMqLIyyMeAw5rPuNcuII/wB35USj+GOIAD9K5LxX43kspvLkgWSVk+WRsgoCeq+/HpWn1Nyen5mH1zkV5beh6Kt3FdN8u5h/ump0n7fdb3NcX4O8R3XicSNM6r5Jxu/vDjk10YnWFP8AWbmx26CuN4eUZOLOyOJjJcyNgXUVmm+SSONO5ZtoqN/FFm/yxyGbb18pGk/9BFYtzq0dvJuby969GbqPp/8AWrNvvEckm4KJGHTgYH64rSnRM6mKaRoeJ9e82y8xYCixMr7pGCsMMM4Ucn8cVj6nrCtHnduJ71l65Lf3CLtuLeJZQQAWyzHn5cYP164rNmtFUqYTPD+7VZUlmE+5x1ZcKu0HsOceprsjhVa7OCpipN2SJb683k1jX8u5m9T1q3cWzAYZpG/8d/lVKeI/7P55rsp00tjz61Rvc4vvSYytKelHl/WvqLHx4v5UqmjB9/zpwGBQAnQUv5+3FJShc+tBWgJkjtivc/2CI8/FfWG6BdHcZ9Mzw/4V4aY/f9K9/wD+Ce1p9o+I3iBv7mmKoP1lX/Cqp25kXTvzo+sbRW2Z/rVuOyeWrem6YAvzL7Vs2WnJn7vbHNdbmkdsYtkfhrw+0lwrH1r0nwr4cHyfL1Fc74XtoxN07/lXovh1Pu+lP2jew5RVjc0Lw8iqu5eetdho2kpEqnav5Vl6NHwp9fWup0qDgAfyqbyZnojU0yyAT7v6VqfZs/pTNOhVVX+tWprhY0wP/wBVTyvoPmVzh/j5+zb4R/af8ASeHfGWlpf2OWe2uIyI7vTZTgebBLglH4GeqsBhlZeK/IX9tj9hrxP+xb4uSPUG/trwrqUpTStdhiKRTnk+TMvPlTgAnYSQwBZCQGC/tDe6zszjue1cj8SPh9pvxo8G6j4b8Q6bBq2h6vEYLq1nB2uvUEEcq6nDK6kMrAEEEA1lUwPP72w3iorRH4KT6kF+7iqUtxNcswXNfQH7cv7Auufsb/EKFGNxq3g3W5HOi6syjc2OWtp9vCzoDngASL86gfMqePWmlpbqflya82pGNPTqXCNWpvojL03w89w6tJ9a6TS9MjtAu1ee59KZEuOPu/hVuBSrfrXmYmpOW562EowhsamnSm3eNl6qc10USrB5gVsKxDKMdQcGuatXKtjsOntW7M5McPsgrxa1PU97D1LI1rEkv1H1z1re0edlkX0PH1rl9Nkwdwz8tbljeFccfj/9auGtT1PSo1TttGvNu38j9a6vRL795GC+1cgNjnHvXCWWoq0rbf73UdK6HSLwbxtx7V5dWmexQqnpGg635PG4tjjnvXUTQ6b400eXTNZ0+11TTrgYkguEEiN+B7j1HIrzXSr9cbj09M11mh6orj73zDpiuGVPXm6npU6ia5WeMfGr/gmdZ6x52ofD/UFtJDl/7J1CTMTd8Ry8lfTD5+or5Y8Z+APE3wa146brml32j3KkssNzGVjk/wBqNuh/3kNfpxoWq7D9/GB09DWr4i8K6H8TtAk0jxBpdlrGnydYrmMMFP8AeU9VPupBr2cHxFXpe5iFzx/H7+vzPAx3CuHr/vMM/Zy8tn8uny+4/LTw94ykgHk+ZtDN80MiCSOTP+yflP1XDemTzXa+HdT8M3EkY1aPUtHjkOGu9NUXkGf9qCRldffEhI9O1e3ftAf8Eumto5tS+Ht99qjPzHR9QkAkX2imPDfR8H/aNfKut6Vrnw31+bTNWsbywvbc4ktrqMxyKO3BHI9DyOeD3r6WjiMPjY81CV/J7o+UrYfFYCVsVGy6Nap/M7zxH4b0HTtTaTwv4rsJpJR+8WaB7GG4X+6yzYBP+7ke461V0OOWW48lJre1vJDhbdpg0Vwf+mbjjPopOfTNcxpmqW2poqzNDDDI6xyGT5ki3H7xXlgo7kA9OpPFdTpnwl8J+IdahsNC8cWMl9I0hl+3wHT9PjijR3LiaQl3YhQFiWIu7MFXLYU6SlTUfZ1U7fN/jbT5kRjUnP2lBr02v6K+p23w4+CmqfEqHWNXg0u1js/BcP2rU59SIht4mKsUtwW/1k8ux9kKgswR3wEjd1m1v4o6f4YtLyObTbiaaCURQNFdhIxj72VKEn2wR+NYukfH/wARN8MrGzW3s7Dw94PDQoojcteXFy5Mtw2WIluXSJIy5wFihjjG1VArz/xN4jbXpIm+ZUkkaRN4CyMueC+3jcR1xgZ/M8eFwcpVpc2sFsr7f1v8z0quOhClG2k3vputvzO+0LxDHrPhaa6igmSHS2itp3cDYskiyMgzn+IRSHt9006w+JUNxMlvfRvexKNkckIMksI9PRl/2T07EdK6Dw/8LWtf2Z/Cc3kxyXnii9v/ABCykBi1nHILC2JHtNbahz6MPXNcFq/iTTdCuJLe5khjlj+VojlmU/QdKP3dScoRV7OwqntIQjUlpdXubfxBntPDuhrfQ3a7Jj5ccSuSGJHVe+B3U4IrzH4jTLdXdjJHMsyvbDDryGwTXQyfEe1urZ7eKxudQt5eHi8vbG3v6g+4GawPGVlZwQ6eLG1urVWSRnE7bnJLDv046cAfjXRhaKpNb3PPxlb2ydrdNr9za+GEPnadcSdB523oCei11DJ5g5/HJ61i/DOy+z/DO7vMcLqYiz9Y8/0q8NSye/5VjKKnOT7Ox0U5ONOKfVXLnlxxnC7VJHYVBLZeb82Dn1pY7jeR3+tXbaLzWxis3KMDWMXMxrzTx5sfy4+c9v8AZNVbm12dttdVPoMkoXbGzNuH9f8AGqepaFJDE37sjseKz+twRX1SW6OLvV+9WTdpg4A7fjXQ6ppciH7pqDwxaQ2/ie1+2f6lnAPHSuqOIUY8y1OOWEcpKL0R5WAC3NOAx/8Aqpq/19adn/Oa+x8z4QOg/wDrU4dKaKXOBSAVT/31604c0A7l/wDr0Z/zmgtRHIMn/wCvX0j/AME47PzPF/imRR/q7KAH8ZG/wr5uV8DtVrTdVu9FvFuLO6urOdeksEzRuv4qQamLs7lwlyyufqVYJ5a88dPxrQt33Nu74r85vCf7XnxG8IbVt/FF7eRL1jv1S8BHpukBb8mFen+Ef+CmHiDTdq614b0fU1HVrSeSzkP13eYufwFdHtYvc6oYiPU+6fDW1peF4zXonhobgvvXxl8NP+Cl3w/vZUXWLfXtBkYjc8lqLmFf+BREuf8AvivpD4TftS/Dn4gvFHo/jbw3dTS42wSXi207H0EUux8/8BzW9NRezJlWW6PdtIbYq4/AYrpNLuq5XTIpBGpKttYZB28EfWuq0a1aRRwe3euuNNI5Z1n0N6yuWK/KM1K9vJdNt+apdK03hflH4VuQaeqVWyM1eTMS08NeYfmHNa9joccC52j8q0o4lA+nepEizgfiK4alSUtDup01E434z/Arw3+0R8LNW8G+KrP7Vo2sR7WKECa1kXmOeJiPlkjblT9QQVLA/h3+0z+zlr37Kvxm1bwX4iUSXGnkS2t4kZWHU7V8+Vcx/wCy4BBGTtdXQnKmv34jTnmvm7/gp/8AsWr+1r8BnvNItRJ448GpJe6O0Y/e38RG6axPr5gUMg7Soo4DvnzsTRuro76VToj8YE6j+WKsQPlvbFV48FePyxUsA2y/WvIlG51xlqacI6GteefdarwMiP8AKsKCTA9yK1jKogXOduwjmuKpT1PSp1ND9Mm/4I6+Dfin8IPC+v8AhTxFq3hXWdV0KxvriC6Uahp80sttG7EAlZY9zMTw7gZ4Xivnv4yf8Ex/i78GreS6bw//AMJVp0PLXnh52vQF67jDtE6juSY8D171+nn7N05m/Zx+HLdQ3hXSW6+tjDXdW0hBVgaitg09UexTlFo/B21kktrh4X3JNC210YYZCOxHUH2Nbmm35jxzyOhr9eP2vfgN4L+Knwa8Yap4g8L6LqesaZoN9d2eoPbhL23litpHjInXEmAyg7SxU45Br8a9O1Lds69Bn0rx8RhuU66dXlep6Bp+sfdHY85+tdDpGs7QoyevrXCeGbLUtehuDp9jfah/Z8Burk20DS/ZoQVUyPtB2oGdQWOACyjuK0tG1tbhY2VlK8cqcivMqUX1PTo4i56npWs/PlnPPH+fzrorHXzC6ZbG71PSvNNK1LGGycnpitiHWym1s5Pfnkd64J0dTup19D1CLxNut/mYEg8HNZXxB+Hnhn43aQmm+KtMt9QthgRysCJrXPVo5B8yn6Hn3rlI9eYQfe78mtKx8R/MoOflwT2znp/n3rKMZU3zQ0fkbSlGa5Zarsz5B/aw/Yfk+BuiyeIdF1T+0/D/AJqxtFcDZd2pc4XOPlde2Rg89O9eN+FfEl14C1tJlt0hurUlSJbdW4IIKujg5BBIIIIIPToa+4v2x5v7d/Z11+MbTtWGQYPpMh/QZrC8Q/Cvwz8ePh1ol1qtmi302m27pf24EdymYlPJ/iGezZ/CvrcJnL9hH6yubVpvrsradT4rHZDH6y/qb5Wkml03afp0PjzXvEclzpUNhHdKLOaZrryEIVUYkjkD0+bAJ6MKinutzTNH+8ESbIwOdx7Yrs/ix+y/rXw+aa5tR/bOmx5PnQIRLGPV06j6jI+lcb4SurfTdatbpGltLu1mSaGVZABHIrAqw3cZBAOG44617+Hq0nT5qWq3/wCHPm8RTrxq8ldcr217eR9ZftJ3eg+C/jIPA8N9ceHtU+FulWXgprsv5un3l1YwLHfblA3Rb7/7Y4Yb1O/JA5auLvdHsfFGpW1jq1ja2WoTY8u6xG6zKc4kik5Vl9wSOvevL/GVnr+t32qeIL6S61R7u4a71C+clpfNmYu0k4PzKzsxO5uGJ4JqPwf8SNR8LL9nKw6lpchzJY3I3RnPVkb70T/7SEe+RxXkVcLCcU4u0l1X6nt0cdOm+ScbxfRmt8RdMvvh34ln0m8ky8arIpjO1ZEblTj39K4PxTftfTwMWLbQR1z6V6TD8PrT4q69DfaHqlxPISrXen6gfMvbaNcZ2H7txGBn7uGAHKgc1c/ax+DHhv4fTaPrXhXUGuNH1x5sWz8taOm04znODu6Hpjqa6IVlTnClUd21utr/AKHNWw8qlOdanpGNtG9bP/IrfD7RXk/ZD8Taoq7hZeKLOE8dN9vJ/hXJWtzM56MP617P8CNCGrf8E5PjDcYydN8U6FJn03iZK8o0ix3PxiuD29p1V2l/7bE9D6velRl3j/7dI0dA0ia/kUevtXsHws+Blx4puYwsbMTjOBXJ/D/RFnvoVJjG4jvX6CfsFfBqLXNbs1kiRkcjJIzXz+ZY6VON7n0WVZfGpKzRw3gT/gnxqHiDRo5lsWZcAkle39axPi7+w3feFrRl+xyBgMn93wK/oK/Zn/ZN8L6f8PbO6vLGO6adchMYVRXif/BRj4UeDfh/oc7Q26K7RF2TAYp6CuOpRxtHCxx1S3JJq2uuvka4bNMtxWOlltFS5lfWytpv5/M/nN8efBwaAZVmiZWUkYIxivIvEXh77HMcD7p/Kvsz9qvWNMfW7pba3PU4yf6V8oeM5/OnfbGo59a9bA1pS1szz8ww8Kd4o+dgMD/61KBn/wDVQef/ANdGcD0r9TPxsd0oB5/+tQP1obd3oAcr5p1NAzHSjhfpQO4hJ/yKduLN3FIAH5o2Cgdx6tzg0K28UzaBS9D70C6ki/54pwUPww3D3FRpy341Mm0deueKoZ1nw8+M3jH4Syq3hfxZ4j8PYOdmnajNbxsfdFYKfoQa+hPhR/wWE+Nnw7nhW+1TRfF1rGQDDrGmIGI/662/lPn3Yt+NfK4PHvU0Ay1XGco7Mk/YD9lT/gtV8N/i7eWukeNbeT4b6zMRGtxd3AuNHlbpzc4Uw5/6aoqL3kNfblvIl3BHJC8ckUyiSN0YMsisMhgRwQQQQRwa/mpgYk9K+tP+Cd//AAU78Sfsd6vaaDrzXviT4ZzSYn0wvvuNGDHmayLH5cckwEhH5xsY766aeK15ZlcutkftZBFu5/SrAiOPu1n/AA/8Z6L8TPBWl+IvD2pWusaHrVut3Y3tuxMdxE3QjPIIOQVYBlYFSAQQNggeuKqSu9DshsV0hIP1PepF+ViVJUqcjFSKvzZIoUYJ9/eueUTaMrH43f8ABYD9ldP2eP2m31/SbUW/hn4iCXVbdUXbHbXoYfa4B2A3ukoHQCfaB8tfKkTYY9PWv22/4Kl/s8J+0R+xr4kt7eDztc8Kp/wkWlFVy7PbqxmjHc+ZbmZQB1fYecCvxDjYOfUMMj3FeTiKXLI7oSW5c83btPpWmkmYF+bJ2cVkKdwPNWre4KJH7Dj3rhqRuddOpZn79fstfvv2YPhi397wdozfnYQV6DHhf89q83/ZGn839kz4TMen/CFaIc/9w+CvS4gHH+FdFSjsz06NZWsc/wDHNBL8BvHKno/hvUgfxtJa/CXT7oCNe/yjmv3e+MEPm/BjxlGekmgagv52sgr8C9Nvt0EZ7YHevHxlHXQ7JVkmj7u/4Iaao8f7XOtBXKlvCd2AQcH/AI+rM/0r9DPi1+w38Kfj800/iDwfp8epTZzqemg2F7uP8TPFgSH/AK6Bx7V+av8AwQ4v/wDjMy8j/veF73/0dan+lfr5YzZIP9a82pR0PUwdROOp+b/7a/8AwTAh/Zc+Fmo+OvDvjC41TQtPngjk0/UrYLeR+bKsSlZo8JJgsM5ROM9elfJEWv5UfNllOfrX6v8A/BWW4Lf8E+/Gzf8APOfTX4/7CFuP61+OI1fyonIP3VPPfpXnSo6XOqpVUZWR3o1n9wGznccfpV+01skJg/dPUV+uXxb/AOCV3wX+PukR3f8Awj7eENWuYUkN94ccWQZioOWt9pgbJOT+7BPrXwT+3f8A8E1Na/Yc8LWXiZfFeneJfDOpaiumQk2z2t9FM8ckqh48ujLticbg4OcfKM8ciUXp1Op88NXsfNPxi1Jdb+HWq6a7bpNSgeGP/e+8P1ArL+DOtb/hVotu0hE1nbiCQd1KkjH5YpviHUlvpLVWK/K+/wDKuR8L+IodA1Tbu2w3PmRsAejoT29wP1rojRbpci73OOVaKrKb7W/E9E1C53NIxZunFeV/Ef4H6L4yaS4WMaffNkmeBdu8/wC0vQ/oa6i+8dwRCT5JWGDjArldX8dX2oho7GFkPPIXcaeHVanLmhoRipUasOWouY5XwJ4m8TfsweIoLu703/hItBtzjMExhmt0b73kzhWMJIzmORZIHziSKQcV9HXPwK/Z9/a4+GVx4q8KfELwx8L/ABHbGOO7h1jZptnHLI4jUX1iGZrdWkZVF7pv2i1+YNNbWANeFt4K8ReMYWW6u2t7d/vLLJndn/YH4dar6r+yLZ6jpJks9Skj1FcuDJGPJPttHK/UE/SvRliqMmnWnyz7x2+a2PJjg8TGLjh480O0rX+TOH1Xwnq3hzxXqWnQiynvdFuGja6sNTguLaVlmWIPb3EblJ1ZmUq0TMGU7hlQSPVL4+LLe20mfUNN024urCRXvtdurKG7hjjlXD5SRWiZlXCmUpvLHg8Bm1v2ePiZ4A+C1za+GfjJ8KdCuLUW82nQeKrKwa6keCZssLu3WRBcAE5We3kt7uIDAkkX90eX8X+H/Avh/wDahvrXwjrEmvfD/Q7AX6rNqP223m3QiQwrKYoXmQMyriWGORSCjLlCTtKTk3GC0te9rp+jT/B/cZ0YxhHmn8TdrXs49dU1qvNdjpPjl+0NqEvivV/hZ4NbRV8G+JP7NgvxaafbxteSW7NMsyyogIw0knPI24GMAAeO21lLZ6nLbyblkhkKMCc4INev/wDBPf8AZWuP2r/FvxE1g3w0e18L6QjRXSAKsV1dTrGiAHAx5C3XToVWvf8AR/8Agmd4c0G4Zr7xJcalKRlvJZcE9+QCf1pOjCF6VOy5bXvvey3+VjWEq1dKtO9m3bsknsvnc+Z/h1GIrmJjkshBFffn7FPx1m0fW9NtIFSJmIUE/wAI9T9K43Qf2RPCPh2D9zYvNIvAaaZmb69fpXeeGvCVl8NovP0+2t7ebbjcF27R9ccV4mPy2NaNnNfiz38vxk6Er8rP0Wl/4Kaf8K68PQ6Lpl408lug81kG4oT/AAj3r5a/aw/bG1r4uwSRxw3dyLjO7sx/OvnrW/jtpPhaWRb3U9NiY8kT3agk+43V578Rv23rHTNNmXQdYs5dSUZijt7VZR15+ZlK8DNefHKOWMYzm5W+5HTHH0ac5VKNOMHLdrd/Pc5v4l/ATxf491SaS105mEhzl85x+AIrybxX+yHr2madLfahPBbwAEkopkBHtzk/gK7LVPjH8TfivrTr4cv/AB14h0hmX7VFotjOp2k/MD5SZU7egwR+FeTfED4efEGSJmv/AAr4028/vL+wnjHp/GK9nC01F8ra/P8AU8nGVVKPNyyf9fM+R8n3/KnDpTPypwORX6fc/HRc0MflX6c0Yo9aGAYYH73vTgMA5O6kRdwx/DShAlACofl9KTP1/KkLbhxTieakrYQfN3qRVznPrTcZpzNjjvQA5Dgn+lSJyajT+lSRH5qpEkyPkf7tTwnnv2qCJc81atk+YH9KdxosQJhunT9avKMJVe3XB+nWp9/+FZSlc1ifcn/BF39u2b4H/Fe3+F/iS9P/AAhfja8CafJK/wAmjam/CEHtFcNtjcdBIY34HmFv1+ZcH0P0r+Z4NvPysy8dQcEfQ9q/fb/gnl+0lN+1Z+yN4U8VXs/2jXoYm0nW2z8zX1vhHkb3lXy5sdvOx2rsws2/cNebS57WQc+tFKhyaVhtYe5romuhcdkNDiN1+UMvUqRkH2P1r+fz9r74NL+zr+09448FwxtDZ6Hq0iWKnP8Ax5yATWv/AJAki/Gv6Aya/Jj/AIL2fDIeGf2nfC/iiGPZF4s8PiKVh/y0uLOVkY5/64y2w/CvPxULwudFOWp8RxSZA+nWrQ/ewLj+A/zrNjmwMVYtbjcrL/eHH+fzrypRudkKh+7/AOw18WfCfjL9mH4Z6XpPinw1qmrab4R0izu7G01SCa6tJ47GFJIpIlYujqykFWAIIr28QPA+11aNu+Riv5tmdXdGZV3JjBxyK9P+Gn7Y3xV+ESRx+G/iL4y0u3i+5arqkk1qv/bGQtF/47WrraWaN6cuXY/eb4lRfaPhb4mj/wCemjXinPvbuP61/Pfp1w32OH5v+Wat+lfUXhD/AILX/GjTdCutN12Twr4stby2ktpXvtLFvcBXUqSr2zRLuwerI1fJ9tL5USKGI2jaK4cRyyeh2+2ukfbH/BDm78v9uLaDxJ4av1/J4D/Sv2OtJNp54r8P/wDgkX8YfDPwU/bFs9Y8Xa7p/h/R5NGvbX7ZeyeXAskgTYpbouSvU8V+z3w++Jnhz4p2X2jwv4i0HxJAoBMmlahDeKv18tmx+NccqN0evga1onlf/BWKYf8ADvD4iN/zzGmv9P8AiZ2n+NfipPrXkWcpz95Gz+VftB/wVbDf8O7Pidu3BltrBsHtjUrQ1+Hs99i0mB/uGuCWHNsViLTXof06+Bde+0+EdIkXP72xgcH1zEp/rXyP/wAF6Lx5v2K9Dkzt8vxjZ8/W0vRX0h8ItX+1fC3wtJ/z10ayfPrm3jP9a+XP+C7TtcfsMWbHnyfF1g2M+sF2P615UcPaome7Ur3oN+R+R2p38UV3BvlLDnp7iuckvTHfTJDD/qrpJQXHZuD/ADq7dSRxyRNn+IGs/V75U1NwuB5kXbuR/wDqrujCx8/Opc2J9Mlu5j9om2rz8q96sWkUenQlY12/TqapnUi/z8YYA896+xP+CVnwF8E/tF+G/ihpvjLQbXWVsv7Ke0nLtFc2W8XofypUIZc7FyM4O0ZBwK4a94q7PSwsVOdo7nyraanscDO0dOnStiw1T93tzXo37f37MGh/sl/EjSbHQtS1K80zWrKS9RL3Y0lrtk2FN6hdwxg5Kg/WuB8cfCXxZ8H7+OLxJoOpaXHIR5c8ibreUHkbZVyjdRwDmuOdNSV0dcasoS5X0LDwWeuFbe5t4bq3kXbLDIgZJF75H5muL8Q/snrZXq614JuLW3ul3ZsNQiS5tZgRyo8wMMH+64I9xWxpOseVq0fzccg89a67wh4j+z3DQk/KG3DJrOnWrUHek/l0fqjSpRoYlWqr0ezXo9zhfgD+1VffspS+IvDd74Th0VPEUSpeWZLwxGRXVlmjJJHbHzbhgnDjpXVa1+3T8RLm2b+y9C8F6LZq+1by+1Dzc8ZHDMhzjnBXNelXPhTw/wDE6w/s/XNMt9StWYECRcNGSOqMPmU+4q94H/ZT8I/CD4U/EW6t4W1iS50eabT1v1Ep03y0LjYT/FuGQwAPb1rdZhhnLnnT952v1T6d/wAzJ5Zi0vZwq+4r22TXWz0/I8V0D47eP/GupedrfxKaOxQNvg8O6Y8khJU42ssSqcHHV/xrD1HwzrXjy9abUrzx5rW48C9vEs4x+DvIf0rL1H4xXVsEt1EjJjPysAPpUMPxSvpm+XK+uWJ/lXrciUuZHi+0clZt/idh4V+EEenzKf7L8MWrcfNeSTahID7rlIz/AN817F8P/hxJ4m06TSZ9av5bK6QQyWmm21tpttIuQcMscZLDI6E+leB6N4xv7y4XdIu3qcL/AI19G/s1fEbT9E8Q2s0iyXDK65/hXNedjZNK6V2ell8U5Wlsfbvwk/4Jyx+OfghoMHgLSfFHhm8tFmGrfZNXupYdWMgAEzqWCoQABwPXHBr5r/a6/Yq1jwPeyWrf2heeTzNcTs7ec/fk9hX7hfsD+NoNS/Z50e4gjjWW+VmEKWzCVNvynJJHmKOPmXjqM5Brif2lf2CdI/aB1Ka/17XvENtb3G52FksVsFJzx80chzwewrz6eDxDoU8RTfM3dtdu2t9Q/tzCwxVbCV4csY6Rercn6W0P4016d6UcetIOT2/KnCv2A/GwBoBzSY5pRxVAGKM5K+1GaKkB235uv4elKaYp2tk04NuNADqFTd3IowT0pyDC9e9PQPMcnBx+tSRryPypkYzj9aswKT9M0ikiSFcr+FXIxhfpVeNcBffFTx8g/WhuxRZhOT9P1qZWwarxfeqbdUtaDuSqAf4sYr9Mf+Def4nymb4m+CZZGMLLZ+ILWMnhW+a2uGH1H2Uf8BFfmYgAIzX3D/wQM1GS1/bX1qFT8l54Kvo3HqBeWDg/mv61thv4iLclyn7CIcjOO9HUU1dxWnY498V6kooUalnZg3AxxX5//wDBwP4SF58Cvh34g2/NpniKfTS2OgubVpcfnaA/ga+/jndzXx3/AMFz9MF9+wf5xx/xL/FGnXK+xKXEX8pSPxrixFP3GdEWfjoDz746elKrsdv5fSoyx3fhTi2CO34V5DidMZdC3G/uP8KeJ9j4Bzx2NVYpNhx1qRFwzen1rOUV1NoyfQ0I5t4qaOXHTueprPhLFuuVxVmKRfLOVLNnr/8AWrCUbM2jUuX4L0DO7oOOPSpbG+ezvo7q3ke3uoTmOaJtkiH1DDkfhWYkwUsPWphJkfL+HNZuFjo9pdWZ61d/tjfFLU/htqXg6/8AiB4q1TwvrEaQ3Wm6jqDX0MiLIsihfO3FPnRW+Qqcr6Zz5+ZfOiZf7wx9KzEk3L6HpU0Nxg+1Yypo6PaNn65/s8/8F6vhlpvgfQND8W+FvGWgXGlafbWD3dokGpWshiiWMyHDxyLu252iNiM4yaz/APgqj+3v8I/2oP2H5NN8E+NrDVtaj8QafdjTZbea0vPLUTKzCOZFLBdwyVyBX5SmcGLIPep7V2b73FcksLG/Megsxq8vI9tjVvL9po1I7MPwrH1bUz/aMbbumV56VdvJ1itTtXBUZOa4+71Pfcbu4IrWjR5jjrVuXdnoNhqTXNlExbsB+VfeP/BDjUsar8VIs/fttKf8Fa8H9a/PTw9fiXTV7MrV94f8EO7/AHeOfiVD3fS7Fv8AvmaYf+zV5WLoaNHs5fX/AHkWR/8ABbeby/HvgWTj5tKvU/KVD/WvoD9qm++1fsaeKpNxxJ4fil/Ly2r57/4LfqV8Q/DuT+9aakhP/Arf/Gvbvj9I2ofsOa44PMnhFH6/9MI2rnjRvFHfKt+9n8j4p8CfDTT/ABx4R0e6iuI7O6zMLybe7YCyPtyuCCxUAADaPuknrWXfaTqHhO+gF7byQx3I8yCVgAJVOCGGCR3GRnI/OuH8J2HiS0uLbU9GjviJiyKbKTdIckoQyKd2D8w5GDg+lbWteO9Q1ueGz1WFVutNzAJHjaOcIP8Alm68D5Tn+ENknJPQYVcOFHEHqvg/xG0NwPmG5SAST0r1ezOrfEDwjqHh/QbC+1jWtcsJ7GysrKFp7i6meNlVI0XLMxJ4AHNfOHhzxAsRbLfMdo/wNek6F4ukgtWMFzNbzeXiOSCVopIzgjIZSGU4PUHNeVUwt5aHsU8V7rPlWSxKpCPlY+UuSPf/APXWvougyTbcLn3Nen/tO/CXT/A3wf0HxBpEJtb24kFtIFcmNgd+DtOeRtHTFeI2MGvXMW46oY0YZwgxj9K+r+ru15M+RdTllax6Fp2jGEfMK9C+GusR+Gb6O6+UyQ/NGCeN3Y14vpHhK+nZTNq85B57/wCIrsvDPgvdKu6+uGA6ZJ/xrlrUVazOrD1ZcyaPvz9lv9tHxR8MLa6TQ9RsdP1jV4ltZ9bAl/tCC3+X9xC3meXEuQWyse/J+9jAH6p/sOftJ6Z4q8BXknizx1ruoX15EsYNzeOFXHJKMGyG6DPFfgr8K9Ct9PvIZGnmYqQcnH+Br6z+DHxYOiS27eZiOMqFVmG1QPYCvCqe2oVFUpdL6O9nfulY9qWDw2MoulXVnK3vJLmVuzaZ+Co59fzp2KQcf/qpa/XT8RDpQKCcUCmAZ46cZ60df89KN/G33oT5h9OvvQwF2ZHDUIOTS7toxTkA61IB1NSKuBQoBX/61PA5xUyKUR0KcdKnRcDHt+VRw/4VMq5b/wCtUlE0fJz+lTJzUEbbTj8KlQ9avzAspz/KpSc//rqKP739Klx/nFVYByH5q++v+DfDwhJf/tNeONe2s1vpPhQ2JbHCy3N5bun/AI7ayj86+BI/mPH14r9j/wDghT8BJfhd+yTeeLL6Fo9Q+I2pG9h3DDfYLYGG3/76c3Mg9VkQ9Oa6cJC9RPsD2PtZThaC20fX9KTGKQnFerK5EQJ5r5D/AOC4N0sH7BF8rdZvEOmovPfdI38lNfXbNxXw1/wX38ULp37JPhTSd22XVvF8M2P70cNld7v/AB6WM/gK5MQvcZ0U5H5KI2eTgUrHAqPdzj0/WnK/HfHevD5TdM+4vhV/wQ+8UfGH4MeE/GOj/ELw1CvirRrXV1tL7T7iI23nwrL5ZdC+7buxuCjOOgpms/8ABBv40abuNrrPw31VegEOq3cT/lJaqP8Ax6v0Z/YMk8z9iX4Rt/1KGmD8raMf0r16N9jfWuz6rBo0jOx+Letf8Eaf2hdHDNH4N0/UlQfes9fsWzgejyqf0r5hhlDxKyt8rDIx3Ff0l2P767iXszhTj3r+arShnS7fOP8AVL79hXHWoKOx0RqK2hqaRol74k1BbXTrO81C7ZSywW0DTSMFGWIVQTgAEk44AzS6hazaIdt5HNZyZ+7PG0RH/fQFfS//AARiu/I/4KKeB9rMrNb6qgI4/wCYdcH+lftxOo1GJo7hVuI2HKyjep+oNZqjdXN4WZ/NfFdrMPkkRv8AdbNTQychc9etfuT/AMFEvgt4Quv2MPihqX/CI+FP7WsvD1zcW17/AGNbfabaRQCHSTZuVh6gg1+HTWflspznHoK5ZxS0OvlcS0hBtvxqWO571+tn7PH/AASs+BPxf/Zf+G/iDVfCF3HrWveE9K1G+urXW72E3FxLZxSSSbPNMYLOzHCqAM8ACvJP+Ci3/BKn4X/szfsr+I/HnhSfxdDq2jzWSQ293qUdxaMs13DA25fJD5CyEjD9QOtY+zZ1+wklzn51311us5Pp1rjXnJkP14966S/c/ZnLelcoqlnAALMzABQCSSegFbYenueXiqmqOp8LXvyMm735r7r/AOCH+pY+Mfj6HOBJoMLf983IH/s1eWfs7/8ABIf4nfE3QodQ1S+0Lwa1zGJILPUzLJd7TyPMSNSI8/3WO8d1B4r6t/YC/YF8afscfFvxHq3iLU/DWpadq2j/AGGFtNuJmk8zz4nG5ZIkwNqtyCea4sbh3FtSW56uVylLlktkzz3/AILhS7h8N5PX+00/9JTXsPxBvTqP7BN6+T+98BI//kgDXi//AAW0kE3h34dv/dutQXn3S3/wr1e4uPtv/BPtf9v4eL/6bhXJTopI9OVT99L0Pz68C/GH/hFNB/smSwaa2unlWeZJyJdsiqvyg5UEbcj1Nd43xL8P+IPAWrWlxNNNfyedJZLNY4aKSSVnXa25gqhSVOG4yMBsEj5/juW2xfUGtjStT8u6O5tvHBP0rKpRujClibM7bT9W8m525x0A47cV2nh3xB++t49xYM6g89s15VaX5kmXA710uhao0N5CeVEcqMfzFcUsNrdndTxLPa/2w7LP7KWjOP8AljfoP/H5BXzXpBzCvpX1P+1rGt3+x5azKPlW8Rh7fvyK+VNKfNsuMZx+Ve3Up6HlyfvJ+R0+mOq9evpXUaFceU6tntXG2MyqM9dw5ra07Utu2uCpT0OilO2x6z4T15YNvzfXnmvR9A8e/ZYh+8HHHXnNfP2n+IjEQu7tx+Vadv43MMZG72GTXnVKKZ61Gu0fAQHNLmmqMCnHgV+in5CAJzR/jQeD/hSpzTAGBAx2peiD6UvfvSqu/wD+vSvoNAvUn1p4QGkC56VIox/+qp5igRQtSRjAP1pp+7UlSMdEcnHpiplOP/11Ci4/rUq/NTQEsbc1NEWVelRr8jcVKg3HmtQJYxUw5PT6YqOPivav2PP2EPiB+2t4pW28K6a1roNvL5eoeIr1Cmm2AGNw3dZpQCMRR5Y5Gdi5cVGLk7Ikb+wx+yBq/wC2r8fNP8KWXn2uiwEXniDUkHy6bYg/OQcY82THlxqertk/Krlf308PeH7Dwl4f0/SdLtYdP0vSrWKzsrWLiO2gjQJHGvsqqAPYV53+yZ+yV4T/AGMvhLD4V8KwySNIwn1PVLhR9r1m5xgzSkdABkIg+VF4GSWZvTlbJ/8ArV62HockfMzlK+w7/PWmtwP/AK9G7J9vT1pOgrYFIQnHXtX5ef8ABwd8RlvfiB8NPCMcgzpmm3mszqD/AM/MqQRZ9wLSX/vqv1CZSxCj7zHAAr8J/wDgpx8aF+Ov7cfjzVLaUTabpN4NBsGByphs1ELMv+y8yzSD2krjxjSp27m1Ns8FOGp6OWPJ+uO9NAx9Kcgw9eO0dNz98/8Agn/Nu/Ye+EeOQPCenj8oVH9K9gX5U7/hXi//AATyk3/sL/CT/sWbNT+CY/pXtET5/KvW5dEUi9oTFtYtPXzkH/jwr+aiy/d2UUf91QMfhX9K2hDbq9mf+m6H/wAeFfzXyw+XI69CrFefrXn4pbFxkfTn/BHaURf8FHPh2R96RdUU/wDgpvTX7fo+QPvCvwy/4JFXHkf8FG/hj2zLqan8dJvRX7kRTfL8zZrOlG8TppyWyPLf29lMn7Efxajz/wAylqL/AJQMf6V+Cs0+XH3q/e/9t4ef+xf8W09fB2rY/wDASQ/0r8Bml3Nn/JrlrxXMdrqH9AP7Clz537FXwhbPTwXpC/lZxD+leff8FilWb/gnR8QOPuSaW/8A5U7Wuy/4J+z/AGn9h74Rt12+E9PT/vmFV/pXKf8ABXW3Mv8AwTo+JX+xHpzZ+mp2lR7PQ7/b+5byPw9vpW+yt/sjAFfW3/BH39k2Dx14nvvihrlotxp/h24+yaFFIuVkvQA0lxg9fJUqFP8AffIw0Yr5EuTJNCyxxvJI3CKoyzk8AAepr9vv2bPgDF+zx8BPCvg1EQTaHp6JeMo/1l2/7y4f/gUzyH6Yrry2jzSbfQ8PGTbaR0Ogy/Y9VVv71dPrTGW2H+0M1jf2f5Myt/dbrW5cp5unL34rPN6SbUj18jq2UoH58f8ABa62ZvBXw/k242398pP1ih/wr1LRj9r/AOCfNm2OW+HS9v8AqG4rz3/gt5bbPhj4BkxjGr3K/nAD/SvTvhpa/bf+CeWlj73mfD7b/wCSDCvHhGyPSlL99L0Pynjk3LHzjkcg9KuQZScnPsKorIqrE306f4VaWXdP047UOnc82MuhrWlwy/d+6eDzW1omotb6laySx+dFHLGzxnOJQGHynBzzjHHrWBZvg9OhxWvp++4uoArbWkkUBicBSTgVPsU9DaNRo+uP2qI2uP2NbzdafYWivGzb4P7jF0Pl+bnjOMHnivj3R5ttsuf7or7D/axnt/Cf7N3iLwrqWoWP/CTWM0ss9p9oDTSKLlf3yqcMUbG4NjkEGvjLSLjFqvuK6q1OySJjU5ndnQW83Cnd06Vct78jjPPY1j20wK46e9TGbYev4VxVKdzaMrbHQDVmQL83FRzayVDfNjvmseW7ARfrVa6vCythuMVzyonR7ax8zIcrTqOlB6V9afnYLu/hp2f50oIFKBu/D9anmQ0Kse4dWpyj36UAAHinBcqPpUlAFwO1evfAb9i3xR+0J4OfXtH1Lw7ZWcd3JZlb6adZd6KjE4SJxj5x/FnrxXkQBA7198f8EyF2/s6zn/qPXPb/AKZW9aU4qTszajBSlZnlll/wSg8bTcyeJvBqbuTtkum/nCK07X/gkX4rmI3eMPDC/wC7BcN/7KK+4NPG1F7VqWp3MK3VGJ0ujE+KND/4Iz+INVIVvH2hxfTTZX/9nFdfo/8AwQp1PUCvmfFHT4WOOF8Pu387gV9meE+HUn1r0Tw42V+ldNHDU2c9SnFLQ+FdM/4IAS3JXzfi0i/7nhj/AO666bw9/wAG9GkyXCtf/FrU5IRjclt4bjjc/wDAmuWA/wC+TX3lp8nyjnmuh0ybjpn0rqWDpdjlk2fM3wS/4IofAv4UX0F5qWma148vISGB8Q3oe1Df9e8KRxsv+zKJB9a+tdK0qz8O6Pa6fp9pa6fp9jGIba0tYVhgtkHRERQFVR6AAVFby52+tWicr1+pNdUKcYL3UYOTe47GRTA4zTWlOM/pTd5H8P8A9amxxJlbdSE4Peo1bdQ39ajlsUeV/tvftEp+yx+y/wCLvGiyrHqdnafZNHU4Jk1CY+Xb4H8W1j5jD+5E57V+Aa5K/MzSN1LM2WY+pPcmvuD/AILfftcr8XfjfafDXRbrzNB+HsjnUWRspdas42yD3+zp+69Q7zjsK+HvMwe9eRjKnPPTodFPRCmnIGzx3puc1IF2+v8AhXIaH7xf8E5JfO/YQ+E5/wCpdgX8iw/pXuMQLf8A668H/wCCaLmX9gn4Ut6aGo6eksg/pXvEZIGe1exFXivQqMuhe0Zf+JnbZ7Sp/MV/NprMfka1fR8/u7mRcfRyK/pJ04sNQtz/ANNF/mK/m88bx/ZfHOtR/wDPPULhfylcV5uKWxsj3j/gkzJ5f/BRX4X9s3d+v56ZeD+tfuZGnr6V+Ff/AASsuBH/AMFDfhW3POpTr+dlcj+tfusPkXPtj6UUV7uhUWec/tnQbv2PPix/2JmsY/8AAKav5+y21hmv6DP2uB9o/ZL+Kcf9/wAG6wP/ACRmr+e5ZNwXnOcYrjrR1OyT2P38/wCCb0qz/sHfCNj/ANC1ar+QI/pWJ/wVliEv/BOz4oKP4bO0f8r+1P8AStL/AIJjS/aP+Cf3wlbOcaCiYx6SSD9MVD/wVMs/P/4J5/Fb20iN8Y/u3MB/pVct4m0ZOx+PP7A/w3X4v/tp/DHQ5IxNbTa9DeXCYyrRWu66kB9isJH41+3l7ZtJeTMRncxP1r8pv+CGHhhfEn7edtdMu7+wvDmpX6nH3Swjts/lcH86/W/W7q30O3ur66O22s0e5mJ7RopZj+QP5V2ZdpFs4a+tmfml/wAFSv8AgpH4l+FXxXk+Hfw41JdHudERH1vVo4Y5pmuHUOLaLeGVVRChZgNxZtuV2HdT/wCCTH7W3xJ+PX7Tl9ovi/xlrHiDTE8OXV3HaXLIIlmWa2VXwqjkK7D/AIEa+BPiH49vPih491zxNqBaS+8RahPqdwzHPzzSNI36t+lfV3/BDm62/tqzr/z08L36j8JbY/0rhxknUZ0ZfU5aqPfv+C5lgYfgl4Gl9PEEi5+trIf6V6h8A7D+0f8Agnd4d7mTwIV5/wCvRxXA/wDBdSD/AIx38FyH+HxQFz9bO4/wr079k6IX3/BPXwiNufM8HPH/AOQZF/pXHTprY9qpU/fN+R+PcRLW8Z9FFaNsgaTPtWfZHZawg/NlRmrsR2f561nyq55/Nrc0bMZGa2tOsmvbiOFNu6ZlRS33ck4GfbNYtq+5sn7vFbOm3TW9xFIjbWjYMDjgEGk49jaMj9Z/2qf+CaPwV/Zm+O/iS/8AHuseIrzx7reixM2iWbpqmjwXE0aoTA1yiSnH/LNXJA6kYXFfDXgj9jTTrn4R/FDxvA1jrOneCdc+wW9rc6gqyx28wPlm4ELRhJowjkKmQ+xxtGAK9N8Vf8FOtV/4KX/HmHxR8QrHwr4V17wzPDqM82mzTwWZsrbbGVaKZnO5NzSFt5znAAxWh+zH4vX4m/sueOPEWm6be61Y+MviMdQ1C3srCa6+x2SPHFEs6xKxjMkP2psnGS+exx34fLFKSqc7le7s3p/Wxz1c0bpKnyRi0krpWd7a/wBI+JdX0Ofw/qk1nN5XnW+AQrbgQQCCD3BUgg+hqpBb3Wp3y29rbzXVxJnZDDGZJH9cKOa/qN8Q/sKfs9/tN/DfQrzXPh74Lubnxoz3mmXh0mBLiO52NL5AlVQ7KUVyFYnhD6AV8P8A7PPwYh/4J2ftWfGyzb4X6V4bj2abb6TqkV7NPFrNtO1yy3MCnH2deESS3RgqtF/Fwa55YNqsqb2fXtpfXr06GFbNlTwzrQjdq2m27S/U/FjU/DusadGVuNL1S12nnzrSSPH5isWa9dtyrnGCOnev6Evj14J1Lxx4ZttQ/wCEghEk1jLdvALIhV2swwGLndnaefcV+OP/AAU+0Vof2y9J8P6Lpa3uua34d0+4NtpsJklvZ3Ep3FFH+sMaISOpABOc5rOphVGLnfREYPN5VaqozjaTV9772svxPz/PNPT7g+lM6CnIMDr/APWr0/I8MfGOSacD7U1DxTs8VLK1sLnmjpTQcj+tOAzSGAPNffP/AATKOf2drjt/xPLrn/tlBXwMAQK+9v8AgmZ8v7PE/wD2HbnPP/TKCtaO5vh/iPqDTH4+ta1o3Tnr0rG09vlUDrWravg+9dkTrZ1XhTLMv1/Ou+8PN8q5/lmvPfCb7dufWu+8PzZ28/XiuvDnNU2Oy06TG32966DTH2qK5nT5cAfpmt7TZuF/DiuxHDI6K1O4D1xVqSX5Svtis+zkJUelXN/OfWtbGI4nI5NMMmDTd+Rn9aaCN3BycYqQJQ+D/hXzn/wUu/bjt/2LvgZJJps8LePvFCSWnh63PzG2bGJL51P8EO4Fc5DSNGuCu8r3/wC1Z+1Z4V/Y7+Et14s8VTllyYNO02JwLrWbnGRBEDnHqzkbY1+Y/wAIb8Mv2j/2i/En7VHxe1Pxp4sulm1LUMRxQR5+z6fbrny7aFT0jQE+7MzMxLMxPFiq3IuVbmsVc4q5nlu7iSeWWSeWZzJJJI5d5XY5ZmJ5LEkkk8knNIjEg+tMPsR+FKrbT/nivJNyRf61Jnp9ahVhmnKcD8CKnqVfQ/db/gl7ceZ/wT/+Fbf9QmRT+F1OP6V9BK/zYr50/wCCVknn/wDBPX4XN/04XS/lfXI/pX0PAfu+9e3Tj7ifkRzO5e0583sPs6/zr+cn4pReT8UPE64Py6xeL+Vw4r+jSzfbdRn/AGxj86/nT+NqfZ/jZ40j/ueINQXr6XUledio7HTzaXPVP+CX8vkf8FA/hSf+oyy/nbzD+tfu8CSG9K/Bf/gmnN5P7fXwnP8A1MES5+quP61+9BbajfSoo7MuLOJ/adi+0fsx/EqP+/4R1Yf+SU1fzwxPmJecDaK/oh/aAXz/AIA+Pov+enhfU1/OzmFfztQOfJTjLbRXJWjqjoqT2aP3y/4JV3Pmf8E8vhS2fu6RIv5XU4/pV7/gp0vnf8E/fi0o4/4kDt+UkZ/pXPf8Em7wyf8ABOz4V/7On3aflf3Q/pXR/wDBR/8Af/sGfFxT/wBCzdN+QB/pWqj7l/I0jLQ/Pv8A4N77VZf2sfGk38UfgqZF9t1/ZZ/9Br9Fv2tb+TSv2YfihdR8S2/hLVnQ9wwspsV+bv8Awb6aqtr+174ttywzdeCrgj6rfWJ/qa/Tj47eF5PHnwh8ZaFCN02uaFf6eg9WltpI1/VhW+B+BnPNn85sEO5VVcdMD2r68/4InK1j+3Ja56TeHtRT/wBFN/Svj+GTNurcq20ZB6jivqz/AIIu3TRft3aSOfn0XUQf+/QP9BXDMqg7VEfXH/Bc+Iv+y94Vf/nn4thA/Gzu/wDCvnz4Yf8ABWdvhL+zd4f8B6X4HXULzSNJbTZb+81PZE5O8bliSMnGG7uOlfRP/Bcdd/7I2gP/AHPF1qf/ACTvK/K2Fv3vP4e1c0rp6HqVptTui7GPKjjXltq4/KrUcnzj3qpMwVl5xxViIHOf4vSosZc2pq2TN5gUfjWkseYtudoxjOemaytPfBVuelakJDhOMeuT6UcpcZHqXxH/AGkvh38ftX+GtrD4PvPh74rS+vND1nUrabyNPuYp0ENpdCXep8yBjHI2VAwX6jFehfCD9rnQfh7+wZofgi68Q+HfA+v+E9RuE1IafPc/bfEaLcPNEZ4YYgBJEWlQO8pDpgADNeJ/tIeFdD03TPhPp/gvRdc0OHXvBlvf+MUkjnS31G5S5nWe+jWYlCDGgG9AEJHA615n8YV0n4p/FDxFfeFGt9N0Wa9lXS9Jmn8u4sbXJEKYc7SdgGVRzyTgAV6WHxUcJT0jzdNb6X9GtjgxEqmKq89RpPTyvb5fefsX+zl/wV4+Mnwg+Fmk+CfGPwrs7ObQZtH8QeGvEFtqE0ljFC5eBJLmNk3fZpEJ3MkgZQWIRuQPu79vT9oTwp4k8E6f4d8SW0cfjpY4bkmxlP2CyugkbyKssgV5ISXIU7BnAztIxX4j/softN634k8ESeGdYjvIdPbwzZaNqkVrajzb+3t5pQib1IaFjvZSwAOB15Ofo39vj9p/wz4Z+IFtc65L/ZdrqUKwW8TWkl8GVbWDhjGCRkFckjn1OCa8KpnmHjN0oSUpW21v9y/zOqWBp10ox0v3tbv+Ct038z6u1H4zS6j4Ta3lhlkdbaS2jMY3oiPk/KFGSckn8a/L349+KrWy/wCC4fg2486S2t9P0/Tlka5HltGRpbkBh/CcMoI7Gur8J/tufDPUNDsYLjVvC2mzC1RZQbW9tlhcKuV6YwORweg/GvDJ/GkPiT/grNo/ibTbmGfTWltooJlk270GmCPIDfNtI6ZHINedUx06tKrGSsuV9+qOrCZSsNiKNRPmfNHtsmuzZ8SinRggfypgbNOTgmvqXc+THqMn8fWpAOKip6EEf/WpFC7ef/r0bcUcD/8AVSCgB4Xj/wCtX3j/AME0n/4x3uPbXLnv/wBMoK+DSc192f8ABNV8fs+3St/0HLkD3/dW9a0fiN8P8R9Qaa2FXPfvWtYnC/41i2DZix6dsVsWb5rtidLZ1PhZip59ccV3ehvuK9M+vWuA8MnD/iK7nQZdu0dAev6V20Y6XOes9DstPk2lfpW9pL4x8wrl7CYErx9K6DSpt23v711HDI6iz6CrXmKf/r1m2MrYUf5FXj93Fb8qsZjy52145+2l+214V/Yi+GkOt6/DealqerNJBo2k2q7ZNRmQKWDSkFYo13IWc5IDDarn5a9ebkY+72rwj/gpN+zC37Vv7JPiHQ7G3Fx4i0Uf25oIVfnku4Fb9yvvNE0sQHTdIpP3RWNa6g3HcEfjd+05+1D4u/a5+KFx4q8YXiz3RUw2dnACtnpVvnIggQk7V7kklnPzMzE5rz4J6nFMWQyRbhkhhkU4LkduvrXz0pNu7OlW6Ds7c9+M0YZmGD35xTWGPTFAYjH5UiiRW2n/AApyYI/HFMHWnoPlakM/cT/gk3N5v/BPL4adflt75fy1C6r6Qh/9Br5l/wCCRUvmf8E7/h332rqI49tTu6+l4zk+9e7RX7tGbLdqcTp3ww/nX87/AO0RCLf9obx/H/d8T6ov5Xkor+h2CTEy/UV/PR+09H5H7T/xMTsvi7Vx16f6bNXFjkrI2i7nZf8ABOibyf27vhE3r4ps0/76fAH61++TN+7PHUV+AP7Adx9l/bk+D7f9Tjpg/O5Qf1r9+Gm+Rh7Vhh43i/U1izk/jKfO+EHjGP8A56aDqCfnbSCv517R91pFuyflXP5V/RV8Tj9o8AeI4/8AnppN2v5wOK/nPsv+PSH/AHB/KuWvHU2Z+6//AASLuvM/4J1/DP8A2YL8flqV3XZ/8FBpPP8A2Hvi2v8A1KeoH8oWP9K88/4I+3Af/gnX8Pevy/2iv5ajc1337eEnnfsZ/Flf73hDUzz7Wsh/pW0Y+4VGVkfl5/wRI8Yr4a/4KB6Dbu21fEOkalpo9z5H2gD87cV+yV/P5V2rL95Tmv59/wBkj4rL8C/2m/AHi6WTy7XQtdtZ7tuwtjIEn/8AILSCv381mXyrlhuzzgY71WCIvofhF/wUP/Ztuv2X/wBqzxRov2VodD1a5k1fQpdv7uazndnVVPQmJi0TDsY89CK+p/8Aghx+zrdaYdf+KmqW7wQahB/YuhF1wZ494a6mX/Z3JHGrDqVlHavvr4t/CDwf8bNHt7Pxh4Z0PxNa2Uhmto9Ss0uBA/QlNwyueAcdQADmo40t9Dtrezs7e3s7S1QQwQQRrHFDGowqKq4CqBwAOAKmrQSd+hrRjeVz5j/4Lbfv/wBjTS2/ueK7I/nbXgrK/wCCb37EPwp8R/syeE/HGr+ELDXvEms28809xqbPdxRuk80Y2QMfKXAReqk571d/4LN3C3f7Ftv/ANM/E1k4Pp+6uR/Wu2/4JgaiG/YU+H6/3YLxT+F9cCvNl8Wp7MbOrr2PyDYlmx91s7etXFUgr8uT1/Cqcj7buZTjCyMOfY1M0jJKvmZT1B6isrs4epq2s6mMMo6cEmrlpPtjY7hwOorEgulDADjd0q0tzi3z7mnvuVex9FfFr4ZaL4j8DeCZ7Ga+01joEdpeKjtKl4HJcg5HAy5OBXCxfBmK20W40X7ReLY3FwtxJAGO2SRVKq5X1AJA9K+0Ph/8L49d+B/g24utKjuI5tGtJFdo2bhoVPPHvTm+Cdrb6ivnaXtHoYzjH481x18HWqfaPo6DwsY35VsfPHwI/ZiXwxJsu7ia4FwqhCUCMEyMLnv65Ne6/Fv4ELJcQyLD50ZhTYsr+ZswoXjP0HTivcPBHwlsLiwhkaxG7tgHp+db3xA8F21zZxiOFl8tdrHldv04rlqZQ2+eWr7l/WaUbez0Pii+/Z8so7OMyWNmzbdrB7cEYx34rzLVPhPt+M0ct1HayW+5AFZhuCqu1QAeMAADn0r7o1T4eQz2RheSF/dwDXmvij4N2Nl4iW6kgSZm/iW3Mn6hh9a5f7PnFNG0K0ZzTZ+OqDApx4poOPT86dX1bPzEdtzTk68GmxnHHvS5yfbtR0GSHkUYpEXPzd6dj60hiAsD2r7p/wCCajE/AC8Hf+3bnt/0xt6+F8V7t+zh+2qv7PHwwn0GPwy2sXU+oS3one/+zxoHSJQNojYkjyyeo6itKUkndm1GSjK7P0O05iqDnoeea2LEbkxnn2Ffnnrn/BT3x9eIy6bpvhnSVPRhbyXEi/i8m0/981w3iL9uD4seKNy3HjfVbVG/hsEisQB9YUU/rXV9YgjR1kfrV4eRoU82Rdsacs7cKo9z0Favhz4weELzxZa6DD4q8Mz65dblh02HVIJLyUqrO22JXLnaqsTxwFNfiF4h8Z6x40m8zWdY1TWJOoa+u5Lg/m5NS+BfFuofDjxdpevaLcfYdV0S7jvbOZR/q5Y2DKcdxkcg8EZB4NbU8ZbpoY1Jcx/QFp7ZC/lXQaQ2GWvKf2bPjfpv7RfwY8P+MtLVY4Nat901uG3GzuFJSaA98pIrKCcbhhujCvVNJfbtavWjZ6o5ZHS2ByPmFX93/wCus2wfgVoMT/nFbX0MxwbNKrskgZWZWU5BHUGmZ/zmlDgHpUyA/Ej/AIKu/sxD9mn9rzWDp9qLfwz40B8QaSEXEcRlY/aIB2Hlz78KOkckXrXzYBX7Q/8ABX/9mX/hob9kbUNU0+2abxJ8PWfXbDYu55bYKBeQj2MKiXA+81sg71+LqfNyuCpHBz1rwsVT5JnRTelhw60daCcf/rpvX0/OuYskQ/JTlPzdeKYJMn5qUAKMCgZ+2n/BHuXd/wAE7vAOP4ZNUX/yp3dfTyMa+V/+CNc4l/4J6eC1/wCed5qqH/wY3B/rX1NG+Wr3KP8ADXoY9SxCfnXPqCRX8+n7W6eR+1p8UkxyvjDV+v8A1/TV/QOD835V/P8A/tnReV+2J8WFxjHjHVv/AEslrjx2y9TSLLf7Dk/k/tqfCJj/AA+M9JP/AJORCv3/AJJNu76V/Pp+xrP5H7X/AMJ2/u+MdI/9LYa/oFmkwW/wqcHH3WXzanP+NR9o8M6tHn/WWU6j3zGwr+c6wbNtCMfwKP0Ff0Y62fPguU7PBIvB9VNfzm2C+ZbRL6oB/KuPELU6ZSP28/4I33Gf+CeHglf+ed1qifT/AImFx/jXpn7bDfaP2RPipH/e8Iar/wCkcpryP/gjNcBv+Ce/hVf4Y9R1VQPQfbZT/WvWf2vj9p/Zd+Jkf9/wjqw/8kpq2iv3aY0fgIVWSDawyGGCD3r9uP8Agnp+0ov7Sf7I3hfVJ7nztc0OIaHrKsfnFzbqqiQ/9dYvLkz6uR2NfiNE37ofTuK9v/YU/bS1L9jH4pzah5NxqXhXXES21zT4jh5EUny54s8ebGWYgHAZWZSRkMvNhqihPXYUr9D9ptQv8QN9K5HVNY2Sjn3rgdK/bq+EXi/waNatfiN4Tgs2Te0d5qCWt1F/stBIRKG9tpz2zxXxj+0R/wAFbof+FzaL/wAITZzap4T8PyTzXTyyNaHXpmgkijAypZII2cPgrucqDhdoz14iUbXubUZJPU9v/wCCuWpC+/YzmX/nnr9i/wBOJR/WvLv2YP8Ago/4J/Zi/Yz8J6NcC+17xTZi8LaVZr5Yh3Xk7p50zDYgKsDhd7YI+WvlH4+ftm+Pf2ln+z+IdUSHRVlE0Wk2KeTZxsM4JHLSMMnDOzEdsV5ikv3lrxZS9656Ht9bx7Gk159qupJcbdz7+OcZOcVJdXfnS7mZmJOeaoR3OUAXgVLGrFNzHC5rNmdy9BccpnpnvVpJcqe3Jqi7KIodvViT/KplbbE1VzFH7SfADxRHYfsv/Dr9/arnw1p+Q/mK3/Hsg7VpP8TktcLutZY5DtAxvIH0bOD9a89+Cz2d/wDspfDkTPtkbw3YlA2QCfIXpz+tYuvaYkd2uLhmHbEfUemev5V6lSUopeh2UIxlE+jPC3xEs/snl+VZSNgDBKrg9/lxijxp4x0u7g2XFksoHQxbTnP/AAIGvnmx8Xppcfl+bMrL1ITr6d6hvfiSlvIJGvZd2flGCMfgwxiuWWI01N/qt9j143Ogysqra3O9zgoUJX8Dkjj2Nc74g8FeGbi4Nwq3ayR5LKqSZH6Y9uteex/F17CZJI710kByFCjDfWph8ZLrULpfmEiuxDM65Ve5welYfWKfkXDC1E9z8SWbA70FsU0AD0pwP+7W58OLnnqKkDZFMoQgH60ASI2G6/rThIAenWmZpQckf7JxQUPJ/wAmlVwH/rSdB0pR1oAdv570EBjTfwpynK0APiHNWFXFQJ8x/Gpl6dvxrSIM+1/+CNH7UX/Cu/izdfDfVrnZo/jSTztMaRvlttSRcbR7TxqF75eKIDG41+q+jnIWv529M1K40bULa8s7ia0vLOVJ7eeJiskEiMGR1PZlYAg9iK/c79h79pS3/at/Z+0PxYvkx6oQbHWbeMALbX8QXzQB2VwyyqOySqOua9jA1eaPI+hnJdj3qxfAH3a0Ffn+tZWnvkD/AD/noK0Sex/SvUjqYjg+Ov4UO2T/AHaj34X1PoKFkxTkkSiWPbjDKreqsMqR6EentX4Qf8FAf2Y2/ZN/an8SeF7eFotBuHGq6CSODp85Zo0B7+UwkhJ7mEnuK/dwNk/55r4x/wCC2f7NH/C3f2a7fxxptv5mufDeRrqfYuWm0yXatwv/AGzYRS5PCqkx7muDF0eenddDSLsz8ic4HekD57NR+VKoz0xXinQKOBSx/Kc/h9aaULUp4oA/aH/gi7KX/wCCfnhlTzs1TVF/8m5G/rX1dC+PlPevkX/gihKZP2B9HX/nnrWpKf8Av9n+tfWyPhq9yj/Di/IxLIfaPY1+BH7c8flftqfFxf7vjHVT/wCTUhr98A2M/WvwV/b3Ty/24fi4P+pu1I/ncOa5cd8C9TSmYv7J8/2f9qj4Xv3XxfpBz/2+w1/QddEqZOfWv55/2Z5vI/aU+HEnHyeK9JY+3+mw1/QpfHmb15pYFXiypGLcv5l6qD+L5Tnvniv50LRfLijHsBX9FYk/4nEIz/y0UfrX86sgMUzLjlXI/I1xYuNmjq6I/Zr/AIIuXO/9gXQ1/wCeer6mv/kwT/WvaP2oW879nb4hR5z5nhbVBz72U1fPP/BHPxbpvhH/AIJ3x6prGpWOk6Xp2uaibi8vZ0t7e3XdGctI5Cr17mvP/wBtj/gsj4ITwrr3hP4fWNx4yudWsrjTZtWm3Wum26yxtEzRhh5k7AMccImcEMw4rbmUaK5uwRbPzHtj+5X6CkuW2rtDd+aZE+2ML6ACo5myK8uJoyN5OOmD61EWwcc9aVueajJ+b8amQ47k8MmHX+tSq5Y+veq9uCX7VajO49u+K5ZS10OuK0LEQDRj+9nFTHkr1+X37VHbjI7cd6mxhc8c4/Cp5u5tGOg8ttbj+E8e1PNyVi6474qFVaVto+ZifTvVv+xZHT5lLNjhV5+lc9bFQpq8joo4apVfuI/Yn4EaFJqn7G3wruJI5WVvCtgFIkzgeQvT0+lcd4u8JfZb9mt5Jm74lUgZ+tep/sK+IbH4gfsE/DG5s422afoyaTcLMPvT2paCXGDyu5Dg9SMdKb4s8JJf6nJ5fkwwjJYK39DzmvQxNdWTi+i/I9nA4e8E2eFxW1xbSbmb9zGcsWbb/hx2qrquuy3BVfMjVemAhKk/Su38U+BBHMzRXG7JIy2cD2P/AOquQ1HwrLYOzbWZgch0IYN9c15dXESW56KoxXQzYrTzcb5otrdAOmPX1/Ouq8P+HLdIPM8sk4xtXliO/THtWTpOmS6lLsRpBJ1I8vcpB711GmWt7HOsSrIy8bvkOcdPwrxcRjDroUbs/EwHjr+VLj/epq9Oe3WnDGP/AK1fbH5ALmlVsHt+Pamjn/8AVTscUAPByO1KhxnpTVbaMU4HIoKHb/8A9dAO4f8A1qaSfwqQCgBUHFKBQOB/9ahhz/8AWpx3GSRtj+GpEGW5FQxDFTI+5qtAyUcf0r6x/wCCRX7Vg+AH7Rcfh3VrnyfC/wAQGi06Yu2I7S+BItZ/YFmMTHgYlDHhBj5PAO309OKeihl2t0x2ropVHCSkiJLQ/pBsn2YUj5s857Vob8L6180/8EyP2sf+Grf2aNPvNQuRN4s8LldI14EjfLIq/uro/wDXaMbieB5izAfdr6T+6vf25r6ai048y6nO10Hs3HvRnJ5GKiLE96Yz/NiqAtb1xUGqada67pVzY39vDeWF9DJbXNvKMx3EUilHRh/dZWIPsTSB9w6/pShz6/pUOOgH4Gftc/s83f7LP7RnibwTcedJa6XdGTTbiT713YyDzLeUnoWMbKGI4Dq47V5yCwz1xX6lf8Fyv2aP+E2+E+j/ABO02DzNS8GuNP1YquWl0+eQeW5/643D4A9LlyeFr8tD1b0x6V89iKfs5uJtGWgu4t6kUo49T3pnLcjH5U5Xwfr0rnNEfsZ/wRHuPN/YSsxnmHxBqK/rGf8A2avruOT/AHvzr42/4IezeZ+w+6k/c8UX6/8AkO2P9a+wkbpXvYf+HH0MS0W+U9a/B7/goTH5f7dHxcUfxeKb0/nJn+tfu2Zv84r8Kv8Agoomz9vH4sL3PiKdunqFNcuO+BFw3OG+AM/kfHzwHJ/zz8SaYx59LuI1/QxfSEPMfc1/Ov8AC7V7fw78UvC+oXcyxWthrNnczyEEiONJ0dm4BOAATwCeK/Rb9qb/AILwaZpl3eaX8I/D/wDaz5ZRr+uRvDbd/mhtQRI49GlaPGOUYVjhasYRfMWz7h8W+NdH+Hdk2ueINU07Q9GsXD3F7fXC29vCM93YgZPYdT2zX8+GpSodUuTG/mRmZyjDOGG44Irpvjb+0T42/aL8TDVvG/iTUvEN4hJhWdwlva56iGBAIoh/uKM981xyMd1ceIrKpLQ3UtLGxeeLNUvfDVnos2pahNo9hK9xbWL3Dm1t5X+/IsRO0O2BlgMnA5rMkkLFfrjIpc4X/apjytG+7+L27VyydzWI9SS3elkUupb7o9zTRMzHnnnJpzbiSv8AD/Ks9i4lbqPT+lMC5f1zxUjLkmk24J6VnUlZGtOPViQnDn8quQrlv61BAnfjB4FW7aLndjK5xxXHUkdlOJYhTazMemSMCtTw94ZvvFutW+nabZ3F/eXXyxQwjczHGc/QDJJPAAJJFdH8Gvg7r3x28VweHfDemtf6ldMJDztjtYxjdLK3RY17sfUAZJAP6w/8E/f+CSel2PhaSSRp5tOf93rWvrH5c2rOOtnaZz5cQP3mHPQnLbQvyfEHFGHyynaWs3sv1f8AWp9Rk/D9TFv2kny01u/0Xd/kfmT4D/ZV1TWtSjubr7RHo9jP5d1fW8PmeZN/zxgDFRIy5G45AA75IB6ST9mCa5u2XT9YtmaPgpqFrLavn0yglT83Ffujrf7H3hM6BY6fb6DBptpYRLDaw2sYCQxjsAefU85JJJJJJJ8y8c/sTeHf7KeK3hCsoyC0Y3HPv1B/OvzOXG9atV5qmi6KyP07B8J4NUuShK76ni3/AATS8Cav4P8A2NtF0OeaGa30W8u1crHhZHkneVtrdWALlR04GeM13HjjTNit+8KkN/q8fdr2b4D/AAYbwp8ObXTyWURW5Vo2/h+dsevr1965j4u/DU6faSXG1cZOArYNfpuT5+sZhYzm9dvuPn8bk31ObpwWiPmfxhdeQjMr7mYfMFXI/wA/hXFXtyLxdquc9SiBQfyNbfxJ06RLySSP7QrKDggdf8/1rhHlmgmWRoxcBeANrKWYc16OIqStozx3bZnY+GIrhLxds7Lubkhdv05HFeveC/Dd1DAp8yObcA53ndn2HGc15b8LdVha/Tzre5D56Ahhn2Br3TQPF1lbGIlpNuBhJY9oA+tfJY7Ez5rHvYHD02rn87IGKE5JxTRz2FBWv1s/ASQHn/69KTkUxTuFOUHNAC4H+RT1Ix+HpTc05OB/9egoU4/yKevI5GOfSm/UfrUmeaAADinAc03Gf/1U7H1/KqWwx8X+fepozioYj81TqPmq0K45Qaki6c8VGOnWpIx8ufw5qyT6G/4Jr/tZ/wDDJP7S2m6lqFw0PhPxCBpOvgn5I4Hb93c49YZMPnBOwyqPvV+4jtz95W9CDlfwNfzdRfMnr2wa/YX/AII9ftbf8L7/AGdf+ES1a687xR8PEjsXLt+8vNOIxbTe5QKYW648uNicyV7OW1/+Xb+RlUj1Pr4t/k0B8f8A1qhaTs3X+VN83nr7fWvV5UZFgP8A5FHmMo/xqAOc9aXzancZT8ZeEtN+Ifg/VNB1q3W80fXLOawvYD/y1hlQo6j0O1jg9jg9q/Aj4+/BnUv2d/jT4k8E6sxkvfDd61r523aLqLAeGYDsJYmjkA7B6/oDZ89Olfnf/wAFzv2aft+j+H/i1ptv+8sCmha6VHWJmZrWc4/uuXiLHr5sI6AV52Po80OZdDWm+h+b3Wng8/8A16jJ3D5etHQfe5xXiG3Q/XX/AIIazlv2J9QH/PPxdfr/AOS1kf619lJLwefrzX52/wDBJ/8Aaj8A/s1fsM61eeOPFGm6Gv8AwmF8YLV2Mt7eD7FYf6q3QNK/PGQu0dyK479pj/guZ4i8UfadM+FOir4XsWyv9s6qkd1qUg9Y4fmgh/4EZj0I2np7NOtCFKPM+hnys/Rn4x/Hvwb+z14Y/tjxx4k0vw3YMD5Ru5P31yR1WGJQZJW9kViK/Dz9sP4saT8bv2o/Hfi7QPtX9j+IdUe6tPtUXlTNHtVcsuTtyVJxnOCM4OQOG8beOta+JPie41vxFq+pa5rF2czX2oXL3E8noN7EnA7AcAcAAVl9q4MRiPaaJaFRjYlLsV/zxUbncvX9aUvx/jTBXIaDS3zU8HgVG3VRT04ANZPc0iTI25cUyUYOOtKDsHWiQZkqZbGkUxyt/OpF+UY+96VGo5B7elS+Xti3fdzWJ0RIAMDNNZc88+/tUoXjp+FK0POPu+vvWFWWmp0U430CFPmH16V6p+zD+zB4m/ai8eJoPh23VY4gJdQ1GcEWumQk/wCskbHfB2qPmY8AdSL37IX7HuvftUeMTFat/ZXh2xkH9p6zKm6O2B58uMceZMR0QHgcsQOv7tf8E3P+Cd/hzQPBGnIulyaL8P7WTzIYnyL3xPOOGmlfhimRy/AONiYAyPz3iniyngF7ChaVX8I+b8/I+0yXI4ypfXsdeNJbd5PtFfqcr/wTb/4JZ6F4a8GwxxwXFj4TMim+1KQeXqPi2dOCAw5jgByODhei5Ysw/Qa38CDRNJttN02zgsbOxjEdtDDH5ccSDsg6AD8yckkkk12WneH7cR28NpDDFbwIsUUMabI40UYVFUcKo44HAxXZaF4TiEKySqd/+c8V+RU8FicxrOc3zSetysz4ls00uWMfhitl/m+7Pnfx3oV9Z2G0/KvXJj2np615L4y8NyG0aO5BdZOSuS2M19TfHux36ayoq7E77eWNfM3i+6jtJWWRpFXBxgkY/pXk4yn7Gq6fY++4OzCeJpKaWt9jkrGaPwxosQXzI4oVYEj0yT9O9eW/GzxlNqkTJDcxqzZHlkAk/jXUfEDxvjwt/o7/AGj94y8NtBwcYrwfWtca7upvtELRSSH92UYHJ+v0r9D4Lr8vMpnqcURdlY8v+Ij3kV3IrKrux44xuPTj9K4X+2rr+1PJlVkjVvvFPvevP/6+ld949v5LMnDeZHJwHIztHr/n3rmNA1y3edBNBHIzHIDEbT/n1r7/ABGIvHY+DjTvK1zu/hdpu6USblXadwKj5R9a9qTQ/tOlRhobeTy8ZIUDPTBz+teT+Btbub65SO3tdPWMrhmA64GP8/WvULXUrix+8inoSeDjofTNfH4ypLnufUYOMVCx/OAJN1OHT0pgOGoLHcK/cD+byQDJ9RTgeP8A69Rxtg1IDwaAuOoGM+/bjrUanK/hTl6r9RQVclB+WnKFB/8ArU1vvj8aRD+8X6ihBclX2pw57/rSLx+VOjGd31qlpoHMOjGB+NTKd3X17VDGPu/U/wA6mt/4vpWkRPUmQCPAbk+lOMu8DLcgdPSo8/zNOXqPpVCLCvz/ADr1T9jT9pe9/ZM/aG0Hxlb+dJYW7Gz1i1j63thKVE0eO7DCyJngSRRntXlcX+qb8aceR+NaU6jhJSiB/RVo+u2fiXRLPUtOuob7TdSt47u0uYTujuYZFDxyKe6spBB9DVgvx9O1fN//AASbv59R/wCCfnw9a4mmnaMX8SGRyxVE1C5VFGeiqoAA6AACvopjj86+pjK6uc2zsWN+MfzpGcgfrTI/4fr/AEpXFLqMdv3DPauc+K/wz0v42fDPX/CGuL5mleJLGWwn2jLRhxhZFz/GjbXU9mRT2reB/p/M18x/8FcfHGtfD/8AYr1e/wBB1jVNEvmvbaE3NhdSW0xjYMGTchB2sOozg1NS1tRxPyT+Kfw21b4M/EjXvCetxrHrHhu/m0+72/dZ43I3r6qwwynuGFc6H2NTVbeqk8luST3J607HK/Svl5fEzo6DlG6QnC5xgnFSBi49KiBwfyp/9361Icw4EilRtwpi9V+n+FEfBNA7kmf85oY5U80mcY/z3pW6/hU9CiP1xT4xz/vH1pOiNTh0H1NYvc0jqSKPk9xQyGXG3nnpR1b8f8aen3H+oFTLsbR3sOjRVHPzNnp2FSbWc8nJ/GoYelXYBuYZ54Fc89rnZTiQoux8dTXt37Kn7GOqftAM2vas0+j+CbN9s16QFlv2XrFb5GCR0aQ5Vfc/LXjWkxrLqVurKrK0qKwIyCCwyK/ar4a+GdNPxs+HOh/2fY/2J/aen239n+Qv2XyjJGDH5WNu3BI24xg18PxlntbAUIxofFO+va3bz8+h9twjktDGValSvrGmk7d/V9tPmet/8E8P2EdP1DwppOsa1pa+H/h5YANouixgxSa3znzX/i8gnq5O6U5wcZav0U0CWTCqsMMcaIscPlgLHEgACoqDhVAAAA4A7Vg68xj8UXKr8qxXLRIB0RA2Ao9AAAAOgrsvhtGrG3yqnJ7ivwGU5V6vNN6tnsZtjJVqSrSWltF0iuy/V9fSyO28H6AwRZZANvXA4FdHd3cVlbksyhR3pbRQtoMDGBxjtxWL4sOIH/H+VffUorA4LmpbvqfmMpPEV/e7nnPxt8Sq9nJHF97GeDXxb+0R8U4fB9pcSXMwhbDHcCVx+tfSPxoncaZnc2W6nPWvzq/4KA3cyiRRJIFO4Ebj6V8JD/aMR7/Vn73wZhYYbBOpHV2Kfgf4pTfELwHdtCY5jJfSxq/RRhsdjnjPT1zWdrNhLpsMjTfvnQ8tnIHbjI/qe1eYfsmzMfhjJ8zfLqVxjnpyK9M+IEjLaxruba0r5GeDhcj9a+9yxewr8sTpzCbq0eaR574w1G4jkZ4V8xZP4QflX2x2HWud0eyW/wBXVmt0U7Sg3qFHPfJGPx/xrVuZW8w/M3Y9e+BW74ORZdKtmZVZmAySMk8V9ZVxD5T5WnRV7i6HZTWd0rWyxxqIznJHHOB09ea9L8O300RV55pV2kAlMt+eSfSuVS3jKqfLTOR/DXXaOd2kjPPJ614GIk3ue5h42eh//9k="}}},{"metadata":{},"cell_type":"markdown","source":"**In this competition, your challenge is to create algorithms for \"Knowledge Tracing,\" the modeling of student knowledge over time. The goal is to accurately predict how students will perform on future interactions. You will pair your machine learning skills using Riiid’s EdNet data.**"},{"metadata":{},"cell_type":"markdown","source":"# Contents\n* [1. Import libraries](#1)\n* [2. Train.csv](#2)\n* [3. Questions.csv](#3)\n* [4. Lectures.csv](#4)\n"},{"metadata":{},"cell_type":"markdown","source":"<a id=\"1\"></a>\n# 1. Import libraries"},{"metadata":{"trusted":true},"cell_type":"code","source":"import pandas as pd\nimport numpy as np \nimport seaborn as sns\nimport matplotlib.pyplot as plt\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<a id=\"2\"></a>\n# 2. Train.csv"},{"metadata":{},"cell_type":"markdown","source":"* **row_id: (int64)** ID code for the row.\n* **timestamp: (int64)** the time in milliseconds between this user interaction and the first event completion from that user.\n* **user_id: (int32)** ID code for the user.\n* **content_id: (int16)** ID code for the user interaction\n* **content_type_id: (int8)** 0 if the event was a question being posed to the user, 1 if the event was the user watching a lecture.\n* **task_container_id: (int16)** Id code for the batch of questions or lectures. For example, a user might see three questions in a row before seeing the explanations for any of them. Those three would all share a task_container_id.\n* **user_answer: (int8)** the user's answer to the question, if any. Read -1 as null, for lectures.\n* **answered_correctly: (int8)** if the user responded correctly. Read -1 as null, for lectures.\n* **prior_question_elapsed_time: (float32)** The average time in milliseconds it took a user to answer each question in the previous question bundle, ignoring any lectures in between. Is null for a user's first question bundle or lecture. Note that the time is the average time a user took to solve each question in the previous bundle.\n* **prior_question_had_explanation: (bool)** Whether or not the user saw an explanation and the correct response(s) after answering the previous question bundle, ignoring any lectures in between. The value is shared across a single question bundle, and is null for a user's first question bundle or lecture. Typically the first several questions a user sees were part of an onboarding diagnostic test where they did not get any feedback."},{"metadata":{},"cell_type":"markdown","source":"![Capture.PNG](attachment:Capture.PNG)","attachments":{"Capture.PNG":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAl4AAAF3CAYAAAB0akXlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAADWmSURBVHhe7Z3fyx1Zme/zj4x4017NzFV7874KL+rVzNwoXohJQ4bhvKJwUASR5M3R90I8whxmXo50J90zSg8Og0IrNukkDCIdmkbBH0naGcEhXgRau5N0Wns8f0Cdemo9a9eqVavWrl17r1VVuz5f+Ni7atWv/brXsz9VtVPr3Dt//FMBAAAAAOlBvAAAAAAygXgBAAAAZALxAgAAAMgE4gUAAACQCcQLAAAAIBOIFwAAAEAmEC8AAACATCBeAAAAAJlAvAAAAAAygXgBAAAAZALxAgAAAMgE4gUAAACQCcQLAAAAIBOIFwAAAEAmEC8AAACATCBeAAAAAJlAvAAAAAAygXgBAAAAZALxAgAAAMgE4gUAAACQCcQLAAAAIBOIFwAAAEAmEC8AAACATCBeAAAAAJlAvAAAAAAygXgBAAAAZALxAgAAAMgE4gUAAACQCcQLAAAAIBOIFwAAAEAmEC8AAACATCBeAAAAAJlAvAAAFs7/+J9fAugk9JmB4SBeAAALxX6xvvrTNwpCQpHPBgK2WxAvAIAFIl+k3/n+zerL9Z133wPoRCKfFeRrNyBeAAALRL5EJaEvWgAfCeK1GxAvAICFIV+gcgsp9AUL0IW97Rj6TEF/EC8AgIXB1S4YggTx2h7ECwBgYdTi9UeA3kgQr+1BvAAAFoYVr8fllylAXySI1/YgXgAAC2MlXk/KL1SAnkgQr+1BvAAAFgbiBUOQIF7bg3gBACwMK16PnvwBoDcSxGt7EC8AgIWxEq93yi/UTbnxv4rDw8MVF57/j/Byu+TePxUXDp8prt0LtEE2JIjX9iBeAAALoxavdzfjxpVStkSA7LxfFdcuiHz9qrnc1twqThr7gSkgQby2B/ECAFgYVrwePn53A35VXC0l6/Ir3vy7LxQXDq8U1915W3OruFyK19W7oTYYCwnitT2IFwDAwqjF60mUtx853H2+OF8K1svuvIo3iucuXCieuyuvb5TCZF8Hpqtt2NuUdluyfn3r8vJ1WaeePjy5sWY7so7Ot8tdkytzpu38tTe0zd+PXQe68D8PEsRrexAvAICFYcUr9GXb5J0akZ0Lzxe/dOdV3KuE5vJ1eW0Fyba5017b9ZNSiu5V/zVyZdcJLNvajt1fSSVhzbbV9mTbhyel4Onr1n4gTvPzIEG8tgfxAgBYGLV4hb5sa9566HBHBKeUGHdehYhXKT535PWN4pJIUPXam67Wr684VVy+sZp//uo9XafPdprH8fLlw+JSKWJ99t/cD8TwPw8SxGt7EC8AgIVhxSv0ZduNubJlBMehIUKbCZPLL65eqGSsn0ANEC9dtrkf2AQJ4rU9iBcAwMLoK16/f/i4ib11t5r3Sik2chXprk7fLZ6t5Mxd/kLx7J3Qsm1+XkqRaZdl7XqCO222s9rHnWsqYv5yoWlDvZ/mfGjifx4kiNf2IF4AAAvDilfoy7bB2wFeFpmqbxeef64UmK72yydGfH6pbb8USarXPbz8ire9UqB0O3IVa7XM2ypQwe048/3l3OmO/UAE7/MgQby2B/ECAFgYK/EKfdk2eBTheik1h8Wll0NtsB80Pw8SxGt7EC8AgIVRi1foy7bmd2+tw8iXXEWSK1/hZWCu+J8HCeK1PYgXAMDCsOIV+rIF6EKCeG0P4gUAsDBq8XoI0BsJ4rU9iBcAwB7w3nvvFefOnauQ16FlLFa83iy/TAH6IkG8tgfxAgDYA6x0bSJe77xbLufxv//P/wUIfjYkiNf2IF4AAHvAkCteoS9X+dIlyw7ilRbECwBgD5iaeN2+fbt4cPu0uP3iUfHiqXLxqJpPph3EKy2IFwDAHjA58SqF68GD0+LJo980/nt6dE6XIFMN4pUWxAsAYA+w0mUJLWPJIV5yhWslWxdrCbuIeE0+iFdaEC8AgIWRRbxUtnyO3j8F8bpZHJ87KM7u62Q1fVz+764T265/DNMJ4pUWxAsAYGHkEC+5umWvdK2k6+hc8dJ3n9clxswUpAfxWiqIFwDAwsghXhKRLHvlS6Sr/w/rRUr0tunxsSMovqyEpu169XWm+2cHegtWrj45y5QcVCtHthPa39mxt35XItttvK9pBfFKC+IFADBD7Bf/EHKJl2R1y/H2UXHx6EjnxnPz2BGamyI5VlBCIlNPy3rGt+4XZwfuOv7tvvXbaez/4KzcYjVRLlf+Da3UVccWu0W5ZruNY5hOEK+0IF4dyIcLAMYj1C/B8LuHj1cSNQT5+0pCX667Fq/Ti+dK8RLp6nvFKyZF69qa77OWsHLauQK23T662kLZZt3xgnilBfHysEX/1Z++UX3ICCH5I/3P9sVQP106X/rypYZgbIr8XSWhL9c04mWe5yW3G9cnJiibtDVjbjfaq1O72oc/7WebdccL4pUWxMtBPlDf+b7plqEPHQDkQyL9kULf5NXXXi+efvqD1VWvUHsfcoqXXOmS24z9f1hvrlCFb8mZttXFq0Bb92+u/NuP3RIUv9XYvV47bnvsfU0riFdaEC+HWDECgPxIKPRNRLpu/ejHwba+5BQvkS2Rr43+NeP9s+LAXqHzf4ReCUtHm7te4+qWXb6+3ShyJfOMCIWEym7Hnx+b9uO1x97XhIJ4pQXxUuTDJLc3Qh82ABgPe9sx1G+Xxte+/o3iM5/9XLBtE3KK1/ZZJzdk10G80oJ4KbFCBADjIaHY/6m488Z/Fk899YGtbjFaEK9dR47RXiEzdN/ynH4Qr7QgXkpdiP4IABNCQrH/U3H4oQ8XP7x+I9i2KfMSL5I7iFdaEC/FFqLHZaEHgOkgWXqx/+azV4tPffp8sG0IiBeJBfFKC+KlrMTrSVnsAWAySJZc7H/9X/erW4y/ffBmsH0IiBeJBfFKC+KlIF4A00Sy5GL/8U98snjhW98Otg0F8SKxIF5pQbwUW4gePfkDAEwIyVKLvQiXiFeobRsQLxIL4pUWxEtZidc7ZbHvyfWTw+LwsM2F5/8juHyQe/9UXDh8prh2L9AGAFW/XGKxl1uLcotRbjWG2rcB8SKxIF5pQbyUWrzeHcCt4qSSp1AbAGyDZInFXn5MLz+qD7Vty7TFK8fjI9x9DN2frNc1QHaO95AuiFdaEC/FFqKHj98dwK3icileV++G2gBgGyRLK/by2Ah5fESobRcgXrsQr1gQL+gG8VJq8XoS5e1HIW6U4nWheO5ue97lkwvF4eGV4uVy3svurcmTG4F19fW1K6vlzl97Q5cDWAZ+n5MsqdjLA1LlFqM8MDXUvgtmIV5n9dBA9Ug/vtAEBMpZr/kQU2nXB5w2husJbdMuF76eZRJbb7rDAfUJ4pUWxEuxhSj0RdDknQBWnvx5Ik73nHlum13ef22lrJy+flLK10kpbXY9gCXQ7HOSJRX7z3/hi8WVr54G23bF9MXLkZ5qbEZ33EVfdlyB6lpPJrsGqG5uU5Yzm3AH1Q6lvd4cBsDuE8QrLYiXUotX6Iug5q2HIW4Ul0Se7qyZV4mUvepl29zl/HVC2wXYb/w+J1lKsZfBr2UQ7FDbLpm+eLnS4stVyjZ5rVetlO6LXn23P78gXmlBvBRbiEJfBOvpIV53ni/Oy9Wrqu1e8dyFkGwhXgA+kiUUe7nFKNL16muvB9t3CeLV1eYvF0vf7c8viFdaEC+lr3j9viyObV6pBOnZO5F5crXrwrXi5/L6zrVSwmybu5y/ndB2AfYbv89JllDsv/TlSxWhtl0zffGqb9vdPzsozh2cFTpVnB04V6Eitwyb02a99bcaveWi6bv9+QXxSgvipdhCFPoiaPB2CBWkX8bm3S2ePa+3Gc+fFJfO2zZ3OX+d0HYB9hyvz0n2vdj/5Ge/KP78L/6yuuoVat810xevg+L4uBSu6nafJzCV1OitwLU/knem758VB33Wc5frfFyEpO/25xfEKy2Il7ISr9AXQYNHAJCUZp+T7Huxl1uM8vuuUFsKpi1eZOwgXmlBvJRavEJfBDW/ewsAUuL3Ock+F/uvff0bxWc++7lgWyoQr00iV7bsFTBDv1uR8w3ilRbES7GFKPRFAADjIdnXYi/P6pJnduW6xWhBvEgsiFdaEC+lFq+HADAhJPta7D/y0Y8V33vpB8G2lCBeJBbEKy2Il2IL0ZtloQeA6SDZx2Iv4zDKeIyhttQgXiQWxCstiJeyrhABQHpC/U+yb8X+1/91v/pXjPLfUHtqEC8Sy5L64hggXsq6QvTo3f8GgIQsqdh//BOfLF741reDbTlAvEgsiFdaEC8lh3jdvn27eHD7tLj94lHx4qly8aiaH1oeYEkspdj/y7/+W/FXf/03wbZcIF4kFsQrLYiXkkW8SuF68OC0ePLoN43/nh6dCy4PsCSWUOx/++DN6l8xjnWL0YJ4dcV/COsyg3ilBfFScoiXXOFaydbFWsIuIl4Aiyj2F//274q//4d/DLblBPHqCuIlQbzSgngpWcRLZcvn6P1TEK9/L04Ov1Jc72x7prj2q1AbwG7Y92L/w+s3isMPfTjYlpvpi5fz0NJ6YEbnQaauHBlZqoYYqsZ09KftMv72JO58GeZHX5d0PyTVjMvYXs7s9+ysHtLI3UY15mQ13wxDdPM4sO5qstxG6H035vnvcXdBvNKCeCk5xEuubtkrXSvpOjpXvPTd54PLTwfEC9Kzz8VeHpAqtxjlgamh9txMXbxESpqCZOatREXExJOqpsQ0pUfWNZsTaaoFp70fT4DWRpa34zma/a62V40p6bY1x32sRMxZ9qA8LnvM7nsNH3v7Pe4yiFdaEC8lh3gJIln2ypdIV78f1hvxObnyTHH4zD8Xd1fzdNBtR4quXzksLrzw68Z6K2G69ZXi8Mq/a5uPL1fO9q98xWsD2D37XOw//4UvFle+ehpsG4Npi1dIfvx57nSsTSLTesVIMSLjLycJzQvEHai713HoVTJX8qpBte3Vr3K5m+V0JZNtwep37LsL4pUWxEvJJV7C6pbj7aPi4tFRcJkmRoJqofIES4RKhezuC6WcWbkq51945pnVck0p82mKV2v7iBckZl+L/auvvV49syvUNhbLEy9/e5LQ/K5lnbSuttnl1+/X3G60V76sYJXLrYSrbBMhC27fTdf83QTxSgvipeQUr9OL50rxEuna7IpX82pUx/Sv/rm4oL/Vun6lnHernK6k7NfFtVLCuuXJ3ea6/QHsnn0s9nKL8emnP1jJV6h9LKYtXubqkH8bLX6rMSY84e2F5/cQGtm3c4uw3xUvGytbOlWKmHuLUaaPj4+dY+o69h7HuUUQr7QgXkp+8TLP85LbjaFlmqwTIXfaClY5byVcpYiJkK1uU4Zwt7FufwC7Zx+LvdxelNuMobYxmbZ4SUQs9Pba6vacMy8qOAEpqW7r2XXd31q191P97qucbsuOjbuO/CDf7it2HO39VNFblvVb9KYlwWP397XbIF5pQbyUnOIlV7rkNmP/H9a3xafrVqNMy+1G9xajTJ9c+UrkNqPg7kNkjVuNkJd9K/Y/+dkvqluMctUr1D4m0xcvMmYQr7QgXkpO8RLZEvnq/68ZQ1ecZF77x/UVlSgdFie3OqaDePuoblny43rIx74Ve7nFeOtHPw62jQ3i1SfOVSql+yrYfgXxSgvipeQULwBos0/FXh6SKg9LDbVNAcSLxIJ4pQXxUpYjXu6VMkP8FiRAHval2MtwQH/2vvdN8hajBfEisSBeaUG8lOWIF8A02Zdi/5GPfqz43ks/CLZNBcSLxIJ4pQXxUhAvgHHZh2L/zWevFp/69Plg25RAvEgsiFdaEC+FQkTIuJl7sZdbjPKvGOW/ofYpQb0jsSBeaUG8FAoRIeNm7sX+45/4ZPHCt74dbJsa1DsSC+KVFsRLoRARMm7mXOzlN13y265Q2xTZ/3qX9gGj+x7EKy2Il4J4ETJu5lrs5V8vyr9inMMtRgviRWJBvNKCeCnTLkR+EZFpd9iLXYaCRcbJXIu9PK9LntsVapsqs6h3Z2b4HKEeQseMXdh+oKlZ5/j4oDgnYx9qe3MZ0jeIV1oQL2Ve4pUyiBcZJ3Ms9j+8fqM4/NCHg21TZvr1rpQma1vV+IWhE01Zzh27sC1i1LFhQbzSgngp0y1EWoQaZ29uUTGvqzM9bbeDvDYGY3W348yX0fDNtqWAhfbV4wxT57f3q8cZPHMlpJm5FXu5xSj/ilHGZAy1T5npi5crTd60DiRtaNbBznXIRkG80oJ4KfMtRPJahUhHsa/kpnpdnyWKFBnpEZFy1/XPJGMFy12+z37NMuvPXAmZX7H//Be+WFz56mmwberMtt5JDTk4K6uYNz+2Dtk4iFdaEC9l3uLV57U9QzTUEuaIURV3Pc3aM8w+ryWBbROimVOxf/W116tBsKc8LFCM6de7+up6dVXeypbUosaJHLUmRRCvtCBeyv6Ll7t+M+Z2o3uVylm21xlmn9cSf5qQOnMp9iJbIl0iX6H2OTCHemd/xlDLlUTa9CTw+DhSa8o5+tOH+ucRpG8Qr7QgXsp+i5e5stVdgPzbj/a1TPY5w4y97jhzJcTLXIq93F6U24yhtrkwr3pHcgfxSgvipUy7EJWlqHH21ld6nOKlv8MyZ5Deb7AE53Zje192ma4zzPjr8JkrIc3ModjLD+nlB/VzvcVoQbxILIhXWhAvZeriNc9QQEn/zKHYy6Mj5BESobY5Qb0jsSBeaUG8FApRiiBepH+mXuzlIanysNRQ29yg3pFYEK+0IF4KhYiQcTPlYi/DAT311AeK3z54M9g+N6h3JBbEKy2Il0IhImTcTLnYywDYMhB2qG2OUO9ILIhXWhAvhUJEyLiZarF/4VvfLj7+iU8G2+YK9Y7EgnilBfFSKESEjJspFnu5xSj/ilH+G2qfK9Q7EgvilRbES6EQETJupljsP/Xp88U3n70abJsz0653/KOcsYN4pQXxUhAvQsbN1Iq9/KZLftsVaps7iBeJBfFKC+KlIF42UvS6BrKmIJJ0mVKxlwek/tn73rd3txgt0613UmP0gc0l5iHOOqZsY55NvfzB2VmjPpmh0KSNgfk3DeKVFsRLQbz6BPEi6TKlYi/P65LndoXa9oFp17tYnZG2WqRklI3GkGSr9ZrLkc2CeKUF8VLmVYia0+EzO1lGzxJXwwGZ9aohfDrHTAzty27HHTKIkN1mKsX+1o9+XA2CHWrbF2YnXtU4sVqHVm2hWmWn9SqZMxQa6R/EKy2IlzJf8ZLX7TM7ORM0NccfANu/VO+nuS/3jNIUP/c4CNldplDs5Raj/CtGGZMx1L4vzKreSd1ZnSj6tc+tR/60PSnlytemQbzSgngp8xWv0JmdtNuzQ4NpbhemdtxlYvslZLeZQrH/0pcvVYTa9onZiZetb42TP1P74ieG7okn6RvEKy2IlzJf8TJpntl1CVIfcXKXWb9fQnaVsYv9q6+9Xt1ilKteofZ9Ytr1rqw0x+aE0UiV1B09ifR/7nD/rDgItrnrcL1r0yBeaUG8lGkXInNmt6ofa8/svDPBVfqIk7tMnzNKQnaTsYu93GIU+Qq17RtTF68hqU4+O3+7SjYJ4pUWxEuZfCGqpGeDMzv3THDtlTA33jKdZ5SE7DZjFvsrXz0tPv+FLwbb9pF9Ea/6HxYJ1KZdBfFKC+Kl7EshImSuGavY33njP4unnvrAIm4xWqh3JBbEKy2Il7K8QuRcKVPatyYJyZexiv3hhz5c/PD6jWDbvoJ4kVgQr7QgXgqFiJBxM0axl4ekysNSQ237DPWOxIJ4pQXxUihEhIybvsX+vffea1ypFU5PT6v58l+/Tea7fd0iwwHJLcbfPngz2L7PUO9ILIhXWhAvhUJEyLjpW+ytUHXJVmi+29ctf/XXf1P8y7/+W7Bt36HekVgQr7QgXgqFiJBxs6l4iVxZ7Lyu+W5fF1741reLj3/ik635S4F6R2JBvNKCeCkUIkLGzabiNfSKl9xalFuMcqvRnb8kqHckFsQrLYiXQiEiZNz0LfbulSxLl4QJMt/t65/69Pnim89ebcxbGtQ7EgvilRbES1lOIerzENV16fsg1q7BaXdxDGTfkqPYf++lHxQf+ejHgm1LAvEisSBeaUG8FMRrk2y7DcSLtJO62MsDUuUWozwwNdS+JBAvEgvilRbES5l+IRJZ0dsn9aCN9byGyKjYnNXDDLUGm13Nk3Rte5Nt+NH1G8dk98HQQ6Sd1MX+y5dPiq99/RvBtqWBeJFYEK+0IF7K1AtRNVq/N8q+zFuJj4zluBogViXHLl+N89g9XqNsxyzqDrS92TbaaS7TOlbEi3hZV+yt7A9B+vhbj5+0+v1SQbxILIhXWhAvZdqFKCQ6/jx3etO25peUca1NthFKbPk+65OlJaV4/flf/OUiH5TaBeJFYkG80oJ4KcsWL3faZpNthBJbvs/6ZGlJKV63fvTjakzGJQ2EHQPxIrEgXmlBvJRpFyK5Bdj+PVX8VmOX6Pht4W1vto1Q3GW8fXCrkQSSutg3H5r6/xptS2NdvQMIfTYkiNf2IF7KtMVLIiKjZ/Cr33o58zolSdKcrn4vVq6zEqH7Z8XBajtdv+Nas41WvPXdffDjehJIymL/REXr81/4YnHlq6eNeUskVu8AupAgXtuDeCnTFy9C9jvpz7KNaMlVL7n6Ja8f//G/nfblgHjBECSI1/YgXgriNTRyZcteLVt3FYyQ7qQXL4P8zkt+7yW/+5Lpx177EkC8YAgSxGt7EC8F8SJk3OQSL0HGaXz66Q86D1Nd1pUvxAuGIEG8tgfxUhAvQsZNTvESXn3t9erK1xIfM4F4wRAkiNf2IF4K4kXIuMkpXva3Xc2xG5fzY3tb7wjZNIjX9iBeCuJFyLjJfcXL/qtGGUboM5/9nM4LL7tvyN8TYCihzxT0B/FS5MMkCRV+xIuQ9MktXoIVrYt/+3fF3//DP+q85T5mAgDSg3gpiBch42YM8TIY0ZJbjnLrUV4v9TETAJAexEtZjnj5D0Ydkj7b2MV++kb2ZR/86ifncZBtMp54GeRH9vIvHX/ys18E2wEAdgHipSBem2Rq4hUL4jWXjCte5gqXPF6CAbUBICWIlzJ98RKBsEPu9Bwy6EzGRHQfauou7z7otGvbm2zDjb/MzWqsxnrTdlzJ9j5Wy1QJHVcoup3G+7frMTzRXDL2FS/7IFUG1AaAlCBeytTFqxob0ZOP+CDZzvLVoNRdYzCa7ZhFZTBr27bZNtppLnP/7GC1LXndkLjgPmQydFyhNPfV+rsgXrPI2OIl2N92MaA2AKQC8VKmLV4h0fHnudObtpXy42BkZ5NthOItI4NkV2Loy11sH6HjCsVfr2ubZMqZgngJDKgNAClBvJRli5c7bbPJNkLxl1HhumkFTLLtPmxi622yHTJmpiJeBiNaDKgNALsG8VKmLV4iLe3fU8VvNXbJh98W3vZm2wilvYzcYjw+Pnb2JcvU+65uR67eQ9dxheLuy1uPW42zybTEy8CA2gCwaxAvZdriJTGSUt12W91zc+Y15MKXnua0CJuss5ITuQ242k7X77jWbCOQ1jItCTLbPD4uhavat9tWJnhcoXjH6q7Hj+tnkymKl7D0AbUBYLcgXsr0xWv+aV7RkvhyR5acqYqXsOQBtQFgtyBeCuI1NCJP9qqUoX0VzNz+a9/y21S8+uyLzDVTFa+lD6gNALsF8VIQL0LGzZSveC15QG0A2C2Il4J4ETJupixeAgNqA8AuQLwUxIuQcTN18TIY0WJAbQAYCuKlIF6EjJt5iJeBAbUBYCiIl4J4ETJu5iNe5goXA2oDwBAQLwXxImTczOmKFwNqA8BQEC9l2uK1zfOuxnpWVt/9ynKxh6PuIrF9jPX3IX7mJF4CA2oDwBAQLwXx2nXmIjSI11QyN/ESGFAbADYF8VKmK14iBv4DQ+0DSdsPEa2eDl/NDw39Y7a1GnEoGGd/fYcmOpOhgEy7ORZ3+XXHrNtYHV9oezbOdhvHpsMONZ6K78bdh8TdDkMKTSVzFC+DES0G1AaAPiBeynyveEmbK1n+LTW7rojPesGoxlf0zCw+GLezfDUWY0j4/PjHbJeLbU8mrTS678Ws0xQ0P81jab2fzuMkOTNf8TLsw4Da8ncG6CL0mYHNQbwU+VBJQoV/kuJVCYNetVm16VWlhjiZdQ/K+Z5PBRLYT2ueO71JW5ngMW+yPbuuwbyfwH5a6bsPMmbmLl7CXAfUtl+sr/70jervTYgf+WzYz0noMwT9QbwU+TBJQoV/cuIlAtO46tQUB3O70b2idK4Ur1K+1tpFSEL8ee70Bm2dxzxwe6t0zXfTdx9kzOyDeAlzG1Bb/rbf+b6pFqG/P4BFIp8V5Gs7EC9lduLVuB3ni4N/K868btxiC8ZcMfOXid9qdPftTvc95sg6jenwsbXXCSWyneDfj4yRfRCvOQ6oHat9AD4SxGs7EC9l2uIlfmBurxlhEJHQW26NH4e781VyAtLRvBXpp2sbOq8hKe62Jc3p/sccei3xpu+fFQer4+jzWzKbyHb4cf1ksi9XvOY0oLb8XeUWUujvDtCFve0Y+kzBehAvZeriRci+Z1/ES5jLgNqxugfQhQTxGg7ipSxLvOQKkL1yZGjfwptj9vV9LSP7JF4GI1pTHlC7rnt/BOiNBPEaDuKlLEu8CJle9k+8DFMeUNvWvcfllylAXySI13AQLwXxImTc7Kd4mStcUx1QeyVeT8ovVICeSBCv4SBeCuJFyLjZ1yteUx5QG/GCIUgQr+EgXgriRci42VfxEqY6oLate4+e/AGgNxLEaziIl4J4ETJu9lm8hCkOqL0Sr3fKL9Te3CpODp8prt0LtcESkCBew0G8FMSLkHGz7+JlMKI1lQG1a/F6dwOseIXaNmFX24HcSBCv4SBeCuJFyLhZhngZpjKgtq17Dx+/uwG3isulMF29G2rbhF1tB3IjQbyGg3gpiBch42ZJ4iVMYUDtWryeRHn7kcuNUpguFM/d9eeX3H2+OH94WBxWXCleXrW9UTx3wc4/LC5fl23U04cnN8pl/O260+b15ZML9XaD+/L3Y7cF2+B/HiSI13AQL2Xa4uUPi9OcNoNiywND7TA6Eudhot7wQcfH5fKr8Rb96LBCrQeQ6j7PZGxDv619DM1xIb3jd8dtHHycZN+yNPESxh5Q29a90Jdtk3ccrBC58wLzr58U56/dK1/fq2TIvI4sH52W1+42OvZV/tdInM6HHdH8PEgQr+EgXsp8xUteu8JlIuJjPEZEyl12k6e5u9s2667kqBpc2m1rHkMlYs6yB+Ux2P26Urab4yT7kKWJ1xQG1K7FK/RlW/PWQ5cbxSWRnjve/DvuFSjl8g2df1K87C5b4W8nNu21RfdVCtrVe7oN2AX+50GCeA0H8VLmK16hga9VkhxMs7+djlRSZdd1ZWiDY6gGorZXv8rlbpbT1dWrtmANPk6yV1niFa+xB9S2dS/0ZdtNTLwCgpVMvELbNPziqtySPCwuXQ+3w3ZIEK/hIF7KfMXLxNzqc69AhcSlh9CIdK1u77nLb3oMVrDK5VbCVbaJkAW376ZrPtnnLFG8hDEH1O4rXr9/+NjhlUqCnr3jzrPz5WrTXW/+3eJZudXYmu9vxyx36bpOy23DVbu/bNe+an5eylesHfrjfx4kiNdwEC9l2uJlriitLihVV6R8MXGvJJnl27fqegiNbNvuqLEff93QttxjKKdKEXNvMcr08fGxc1xbHCfZuyxVvAxGtHIPqG3rXujLtsHbLkZ63Nt8558rBUfafnmteQvw8ivBdS69bLb18mVvuZdFtuy8EyNbv7Tr29dKaF/u+nJFzC4L2+F9HiSI13AQL2Xa4lXGvf1XykstJiIpdr41szLVrT6dv/ZKmBt3e/5+3HXd6Y5j0GNuCqMzLRl8nGTfsmzxMuQeUHslXqEv2waPYNE0Pw8SxGs4iJcyefEiZM+DeJkrXDkH1K7FK/RlW/O7t2DJ+J8HCeI1HMRLWZ54OVepFP4VIRkziFf9INVcA2rbuhf6sgXoQoJ4DQfxUpYnXoRMK4iXIeeA2rV4PQTojQTxGg7ipSBehIwbxKtmmwG133vvvdVVbHkdWsZi696b5ZcpQF8kiNdwEC8F8SJk3CBePka0Nh1Q2/35QF/xCv3d5f8PgNBnQ4J4DQfxUhAvQsYNRT7MpgNqD7niFfq7U/cIfTINiJdCASJk3FDku9lkQO2pidft27eLB7dPi9svHhUvnioXj6r5ZNqhT6YB8VIQL0LGDUU+Tt8BtScnXqVwPXhwWjx59JvGf0+PzukSZKqhT6YB8VIQr1SZ8sNQ/WPjwa1jhiLfzSYDalvpsoSWseSoe3KFayVbF2sJu4h4TT70yTQgXgrilSqIF+kXinycFANqZxEvlS2fo/evE6+h/TFXP5b92NE2/OxHLaFPpgHxUqYtXmZMQ3sGWz/oVDv3WT2ckPsQVDNotcw3xeHmcWDd1WS5jXpsn7JN99eYJ2MtlttsDHLtLydx57vDDnWla386r7G+fxz+tF3G357EnS/Hpa9LzN/FbOvsvvl714dS/m1W2yapQpFfz64H1M5R9+Tqlr3StZKuo3PFS999Xpfoiu2POtk7Q9fbZaZwDNuHPpkGxEuZtni5kQ7tjmnoyEU1FqLb1jwbq0TMWdYdwNqVMnltFnMHvTb7csUuvFxzW7Kf9oDezcjyTUEKbMOTqvo4Njuutoi5x1ZPu3+rarBvZ/skTSjyfTGi5Q6oPVS+ctU9kSx75Uukq98P60P9U0+WWv3Yzo+dUJmlm9Pmdb8TNz+h7dr1+pxwTj/0yTQgXsrkxasSGO3UXtEIFxS9SuYWjmpAanv1q1zuZjldFZu2YNX7shITKTJrl3On/YTaY9tYt32Z7nNcksi25G/V+tuQlKHIb4YdUNv9rG9Kzrq3uuV4+6i4eHSkc2Np9s9dnFCZuNPyut+JWzvt41ttp8cJ5xxCn0wD4qVMWrxaV3zcouF2bn9a/KE8k1td+bKFpFxuJRVl20oyJO1tmKzfl0nf5WxC7bFtrNt+aHuS0PzYuvq3WskpSR2K/CbUA2qHhKovOeve6cVzpXiJdA254iWvm8c+6ISqir9dvy20n1DWbcednmfok2lAvJTJi5ft/Y0zqT6dvXnWVt02K6ftmZlMHx8fO2d8snzzDNDE33bXct78tWd+4e20zh47xXDgcVWJb6v9tyEpQ5HfDPsgVVcSNiW/eJnnecntxvVx+6PfV21C8+P9Or7d0Pa6sqvtTDf0yTQgXsqkxavqxFosG78diHV2dx3nlK0SIecszp+WVLckdd3Gb8a8QhJcrow7v9dvHULH6szrfI+SDY4rsJ/qNkU5beTK29ZaaSS7DEU+PznrnlzpktuM/X5YL3H74zYnVGaZZs2z7eFl+51sRY5vT2oHfTINiJcybfEiY6S6TcttxmyhyOcnZ90T2RL56iddEk+KBp9QVTN0PVkmdvJapnM/fiLH1+uEc/qhT6YB8VIQr9RxiqPS76xyjJizV6525Q1FPj/UPRILfTINiJdCASJk3FDk80Pd65M5nTTuNvTJNCBeCgWIkHFDkc8PdY/EQp9MA+KlUIAIGTcU+fxQ90gs9Mk0IF4KBYiQcUORzw91j8RCn0wD4qVQgAgZNxT5/FD3SCz0yTQgXgoFiJBxQ5HPD3WPxEKfTAPipexPAZJ/gRN79szU4j9HJ/fx+/vPmXX7HvtvkzcU+fwgXiQW+mQaEC+FAjRWxhQfyZzEa79Dkc/P/te9ZfWhXYc+mQbES5l2AdLicVY/fbke4se0HR/bp6z7hUam7fNn/Pnuel1x1u89XJHEXa++RmMG7Zb5cuXGWabEPBsnsp3Q/py/yfpn64SOyd2ffXCqv732vpy35L0nm9C+JO782NOtneVK2n8b87r6/0/b7dO6u/fnzp9eKPL5QbxILPTJNCBeyvTFy/nirIa/sF/ypq0lCToZH2zaXS+c1vreF3+9enu/5nBFZtx1/Ftl67cTO/7w3ySc7mNy92/jHmtsX+5ydcL7MvPDf89Q/GNzp80xVdvSoUqq/VWv6+PpOo4phiKfn+nXvfIzGzzhiZ8kmRPKA2foH3cZ0jf0yTQgXsosCtCqbvhfwLtoC2WbbdcFT6i//MvpunqW2WYfXW2hSHvomLz1Khmyy/TZV9d7qvfTua/WtJ/Y8n1fh45jmqHI52f6da/83NoPbefJlSzXPEnyRWw1STYKfTINiJeCeIWSZtvm1pxbKHexD3/aT1e7M18Ke+OKWv99xd+TzfrtNBNbftPX0w9FPj/zrXsyuelJEtk09Mk0IF7K9AtQfRZXfckHBUHSnI7fqltXkMzVnMb6q3VM2+oKSqCt+9K+tNtld3X8695P1zE568n2G2fXdnuyTL1u8+9v476nrn158xv7CCX2Hvu87jqOaYYin5/ZildnLYisQzYOfTINiJcyhwJkf0jd/LJeV2hk2j8rlPQsSPr7oWp9/8fglTh0tLnrebcBzPLW2GQzZp4RhKHH3+P9dB6TXc/ZV+AfEnT//e069XsK76tM7O8ZSPffps/rMl3HMcFQ5PMz/bpXnzg0TniiJ0nO5781TTYJfTINiJcyB/Eav3gstYhRvHOEIp+fOdS99Sc87ZMkt682T17IJqFPpgHxUpYtXk4RU8JFKvVx7CJ938smmcrff79Dkc/PsuseWRf6ZBoQL2XaBYiQ/Q9FPj+IF4mFPpkGxEtBvAgZNxT5/FD3SCz0yTQgXgoFiJBxQ5HPD3WPxEKfTAPipVCACBk3FPn8UPdILPTJNCBeCgWIkHFDkc8PdY/EQp9MA+KlUIAIGTcU+fxQ90gs9Mk0IF7K/hQg+ZdA035QZjP+v1xKdfy7+BdSuf6VVar95PpbDwtFPj+IF4mFPpkGxEuhAI2VOcnMnI41lFzHPywU+fxMu+5N+/O6hNAn04B4KbMoQGf1ED316DSmrXq6czWchl+sZNo+mNOf767XFWf96BOiI/t1htIxg0nLfLnS4ixTYh4aGtlOaH/O3yT+0NHY8mZMw/B2nP33GOKnubx53+54k9X7r+a3j8f//9Ss0nVsm74f57ga89z34y7jz+/a1+5Ckc8P4kVioU+mAfFSpl+Ayi88+81cjU1mbxGZttYXsk7GB5le/wXaWn+1bb8otvdrDlckwF3Hv7W1fjux4w//TULpu3zzGLvffzjx9+1uO3Y80hbaT9/13fjr5PhbDwtFPj/TrXv6mVPM57LfCdLB2Zn3OSdDQ59MA+KlTF+8ur4wd9UWyjbbrgukUMtIOW2/wKtss4+utlDWLF/JhD3ebfZRv+f6fZfvXK/01V8WsW17bUOObeN1hrbtLhT5/Myr7rmRtlr+3ZMG09d2//lcYuiTaUC8FMQrlDTbNoWxz1WYoW2hRJZvXd3Z1T6cqAjVzhnbtvN6yLENej9D23YXinx+ZideG59QkG1Cn0wD4qVMvwB5Z3TBL1ZJczp++2hdcTJXqBrrr9YxbSuRCLTVV3f8SLtddlfHv+79RJaX7do3EnsfjbZQut637EtE0/7XzquX7fz/tPPYnGWqbLmOTO3sbz0sFPn8zEq8Oj+TeT6fSwx9Mg2IlzKHAlT9EL5xpidZV3Rk2j9DlPQsTvfPigO7vv/j8upLvaPNXc+TDbO8ikEZ+cKXeeZLf+jxr3s/seWdfcTeR58f1wfed+s2SPXezf7X/3/adWzuMpI+65QtWf7Ww0KRz8/sxGsnJ0ikb+iTaUC8lFkVoNEylePYh/C39EORz8+06544lH+ioCcG254gkV6hT6YB8VKWLV5OQVNWZ4+NzEEW+r6XbbKLfczhb5k3FPn8TF28hqR5255sE/pkGhAvZR8LECFzCkU+P/tS98w/2LEnQpzQ7Cr0yTQgXgriRci4ocjnh7pHYqFPpgHxUihAhIwbinx+qHskFvpkGhAvhQJEyLihyOeHukdioU+mAfFSKECEjBuKfH6oeyQW+mQaEC+FAkTIuKHI54e6R2KhT6YB8VIoQISMG4p8fqh7JBb6ZBoQL4UCRMi4ocjnZ9p1bzrPums+yHU5oU+mAfFSEC9Cxg1FPj+IV58s92HH9Mk0IF4K4kXIuKHI52e6da85OsTB2c1qPMbVEK+rAbNVis7qcWOdYWDLONtpNgTi7tOKVvM41m5iz0KfTAPipSBehIwbinx+pl33VKr0SlM9wLx53Ri/0RpRNUC2HZRfJq0syUDa8atW7mD2tdhVE43jWFLok2lAvBTEi5BxQ5HPz5zEqxoIu5IhV6J8KXKnVcp6XbFatx23bTmhT6YB8VIQL0LGDUU+P7MSLytcN62ASXYlTLvazn6FPpkGxEtBvAgZNxT5/MxLvMwtxuPjY+dfF8oy9S3C6nbkSspE1Pr/S0RuNbZDn0wD4qUgXoSMG4p8fqZe91qPcah+w9W+MnV8XApXdTvREyS5Pam3Gd3ffoVjJK69HcTLR0KfHA7ipSBehIwbinx+5lb3mle0JMuVohyhT6YB8VIQL0LGDUU+P/Ope+a2YeuK1sbi5V7VMvS9FbnE0CfTgHgpiBch44Yinx/qHomFPpkGxEuhABEybijy+aHukVjok2lAvBQKECHjhiKfH+oeiYU+mQbES6EAETJuKPL5oe6RWOiTaUC8FAoQIeOGIp8f6h6JhT6ZBsRLoQARMm4o8vmh7pFY6JNpQLwUChAh44Yinx/qHomFPpkGxEuhABEybijy+aHukVjok2lAvBQKECHjhiKfH+oeiYU+mQbES6EAETJuKPL5oe6RWOiTaUC8FAoQIeOGIp8f6h6JhT6ZBsRLoQARMm4o8vmh7pFY6JNpQLwUChAh44Yinx/qHomFPpkGxEuhABEybijy+aHukVjok2lAvBQKECHjhiKfH+oeiYU+mQbES6EAETJuKPL5oe6RWOiTaUC8FAoQIeOGIp8f6h6JhT6ZBsRLoQARMm4o8vmh7pFY6JNpQLwUChAh44Yinx/qHomFPpkGxEuhABEybijy+aHukVjok2lAvBQKECHjhiKfH+oeiYU+mQbES6EAETJuKPL5oe6RWOiTaUC8FAoQIeOGIp8f6h6JhT6ZBsRLoQARMm4o8vmh7pFY6JNpQLwUChAh44Yinx/qHomFPpkGxEuhABEybijy+aHukVjok2lAvBQKECHjhiKfH+oeiYU+mQbES6EAETJuKPL5oe6RWOiTaUC8FAoQIeOGIp8f6h6JhT6ZBsRLoQARMm4o8vmh7pFY6JNpQLwUChAh44Yinx/qHomFPpkGxEuhABEybijy+aHukVjok2lAvBQKECHjhiKfH+oeiYU+mQbES6EAETJuKPL5oe6RWOiTaUC8FAoQIeOGIp8f6h6JhT6ZBsRLoQARMm4o8vmh7pFY6JNpQLwUChAh44Yinx/qHomFPpkGxEuhABEybijy+aHukVjok2lAvBQKECHjhiKfH+oeiYU+mQbES6EAETJuKPL5oe6RWOiTaUC8FAoQIeOGIp8f6h6JhT6ZBsRLoQARMm4o8vmh7pFY6JNpQLwUChAh44Yinx/qHomFPpkGxEuhABEybijy+aHukVjok2lAvBQKECHjhiKfH+oeiYU+mQbES6EAETJuKPL5oe6RWOiTaUC8FAoQIeOGIp8f6h6JhT6ZBsRLoQARMm4o8vmh7pFY6JNpQLwUChAh44Yin591dQ8g9NmQ0CeHg3gpFCCA8Qn1PwlFPg2xugfQhYQ+ORzES6EAAUwTCUU+DdQ9GIKEPjkcxEuhAAFMEwlFPg3UPRiChD45HMRLoQABTBMJRT4N1D0YgoQ+ORzES6EAAUwTCUU+DdQ9GIKEPjkcxEuhAAFMEwlFPg227hGyaeiTw0G8FAoQIdMNRT4N8ncFGEroMwXrQbyU0IcKAKZDqN8CAMwNxAsAAAAgE4gXAAAAQCYQLwAAAIBMIF4AAAAAmUC8AAAAADKBeAEAAABkAvECAAAAyATiBQAAAJAJxAsAAAAgE4gXAAAAQCYQLwAAAIBMIF4AAAAAmUC8AAAAADKBeAEAAABkAvECAAAAyATiBQAAAJAJxAsAAAAgE4gXAAAAQCYQLwAAAIBMIF4AAAAAmUC8AAAAADKBeAEAAABkAvECAAAAyATiBQAAAJAJxAsAAAAgE4gXAAAAQCYQLwAAAIBMIF4AAAAAmUC8AAAAADKBeAEAAABkAvECAAAAyATiBQAAAJAJxAsAAAAgE4gXAAAAQCYQLwAAAIBMIF4AAAAAmUC8AAAAADKBeAEAAABkAvECAAAAyATiBQAAAJAJxAsAAAAgE4gXAAAAQCYQLwAAAIBMIF4AAAAAmUC8AAAAADKBeAEAAABkAvECAAAAyATiBQAAAJAJxAsAAAAgE4gXAAAAQBb+VPx/NokwfiO403MAAAAASUVORK5CYII="}}},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\n# Read in data\ndtypes = {\n    \"row_id\": \"int64\",\n    \"timestamp\": \"int64\",\n    \"user_id\": \"int32\",\n    \"content_id\": \"int16\",\n    \"content_type_id\": \"boolean\",\n    \"task_container_id\": \"int16\",\n    \"user_answer\": \"int8\",\n    \"answered_correctly\": \"int8\",\n    \"prior_question_elapsed_time\": \"float32\", \n    'prior_question_had_explanation': 'boolean'\n}\n\n# reading the dataset from raw csv file\n!pip install ../input/python-datatable/datatable-0.11.0-cp37-cp37m-manylinux2010_x86_64.whl\nimport datatable as dt\ndf = dt.fread(\"../input/riiid-test-answer-prediction/train.csv\", max_nrows=30000000).to_pandas() #\n\n#df = pd.read_csv('../input/riiid-test-answer-prediction/train.csv', nrows=10**6 , dtype=dtypes)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df.info()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df.head(15).T","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df.describe().T","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"#discovering null values in data\ndf.isnull().sum()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"#discovering unique values in data\ncols = df.columns\nfor c in cols: \n    print(f' The unique values in {c} :{df[c].nunique()}')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"###Visualizing number of questions and lectures"},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"# visualizing number of questions and lectures\nplt.figure(figsize=(10,5))\nax = sns.countplot(x=df['content_type_id'], palette=['#557799',\"#990000\"])\nax.set_xlabel('content Type (False:question**True:Lecture)',size=15)\nplt.title(\"number of questions and lectures\",size=15)\n\nfor p in ax.patches:\n    x=p.get_bbox().get_points()[:,0]\n    y=p.get_bbox().get_points()[1,1]\n    ax.annotate('{:.0f}'.format(p.get_height()), (x.mean(), y), ha='center', va='bottom')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# getting just questions\ndf_questions=df[df.content_type_id==0]\ndf_questions.shape","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":" ### Correct VS Incorrect answers"},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"# Correct VS Incorrect answers\ndf_questions_correct = df_questions['answered_correctly'].value_counts().reset_index()\ndf_questions_correct.columns = ['answered_correctly','presentage']\ndf_questions_correct['presentage'] /= len(df_questions)\ndf_questions_correct","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### User answers (0,1,2 or 3)"},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"# User answers (0,1,2 or 3)\ndf_questions_answer = df_questions['user_answer'].value_counts().reset_index()\ndf_questions_answer.columns = ['user_answer','presentage']\ndf_questions_answer['presentage'] /= len(df_questions)\ndf_questions_answer","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### correct answer AND  user answer"},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"# visualizing correct answer \nexplode = (0.1,0.1)\nfig, (ax1,ax2) = plt.subplots(1,2,figsize=(12,5))\nlabels = ('Correct', 'Incorrect')\nax1.pie(df_questions_correct['presentage'],explode=explode,labels = labels, autopct = '%.2f%%',startangle = 90, \n                                       colors=['#368f71',\"#d12c3a\"],textprops=dict(color=\"#000000\",size=14))\nax1.axis('equal')\nax1.set_title(\"Answered Correctly\" ,size=15) \n# # visualizing  user answer\nexplode = (0.1,0.1,0,0)\nax2.pie(df_questions_answer['presentage'],explode=explode,labels = df_questions_answer['user_answer'], autopct = '%.2f%%',startangle = 90 ,\n                                        colors=['#6381fc',\"#cccc00\",\"#d12c3a\",\"#368f71\"],textprops=dict(color=\"#000000\",size=14))\nax2.axis('equal')\nax2.set_title(\"Users Answer\",size=15) \n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### user answer(0,1,2,or 3) vs Correct answer"},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"# visualizing user answer(0,1,2,or 3) vs Correct answer\nplt.figure(figsize=(10,6))\nax=sns.countplot(df_questions['user_answer'], hue=df_questions['answered_correctly'], palette=['#d12c3a',\"#368f71\"], alpha=1)\nax.set_xlabel('User answer 0,1,2 or 3',size=15)   \nax.legend(bbox_to_anchor=(1.1, 0.5),labels=['Incorrect','Correct'])\nplt.title('user answer vs correct answer', fontsize = 20)\nfor p in ax.patches:\n    x=p.get_bbox().get_points()[:,0]\n    y=p.get_bbox().get_points()[1,1]\n    ax.annotate('{:.0f}'.format(p.get_height()), (x.mean(), y), ha='center', va='bottom')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Grouping correct answer by users"},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"# Grouping correct answer by users\ndf_questions_gby_user = df_questions.groupby('user_id').agg({'answered_correctly': 'sum', 'row_id':'count'})\ndf_questions_gby_user.columns = ['answered_correctly','All answers']\ndf_questions_gby_user","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Correct answer by users"},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"# visualizing Correct answer by users\nplt.figure(figsize = (16,8))\nax=sns.distplot(df_questions_gby_user['answered_correctly'] /df_questions_gby_user['All answers']*100,color='#557799',hist_kws={'alpha':1,\"linewidth\": 1}, kde_kws={\"color\": \"black\", \"lw\": 1, \"label\": \"\"})\nplt.title('Correct answers percentage by users', fontdict = {'size': 15})\nplt.xlabel('Percentage of correct answers', size = 15)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":" ### The twenty most used questions (content_id) "},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"nlargest = df_questions.content_id.value_counts().nlargest(20)\nfig = plt.figure(figsize=(18,6))\nax=nlargest.plot.bar(width=0.9,alpha=0.9,color='#557799')\nplt.title(\"The twenty most used questions\", size=15)\nfor p in ax.patches:\n    x=p.get_bbox().get_points()[:,0]\n    y=p.get_bbox().get_points()[1,1]\n    ax.annotate('{:.0f}'.format(p.get_height()), (x.mean(), y), ha='center', va='bottom')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":" ### The twenty least used questions (content_id) "},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"%time\nnsmallest = df_questions.content_id.value_counts().nsmallest(20)\nfig = plt.figure(figsize=(18,6))\nax=nsmallest.plot.bar(width=0.9,alpha=0.9,color='#557799')\nplt.title(\"The twenty least used questions\",size=15)\nfor p in ax.patches:\n    x=p.get_bbox().get_points()[:,0]\n    y=p.get_bbox().get_points()[1,1]\n    ax.annotate('{:.0f}'.format(p.get_height()), (x.mean(), y), ha='center', va='bottom')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### The worst 20 percentage of correct answer for questions (content_id)"},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"dddd = df_questions.groupby('content_id').agg({'answered_correctly': 'sum', 'row_id':'count'})\ndddd['presentage']=dddd['answered_correctly'] / dddd['row_id']\ndddd=dddd.sort_values('presentage',ascending=True).head(20).reset_index()\ndddd.columns = ['Content Id','CorrectAnswer','All Rows','presentage %']\n\n\nfig, ax = plt.subplots(figsize=(17,5))\nax = sns.barplot(x=dddd['Content Id'], y=dddd['presentage %'],order = dddd['Content Id'], data=dddd)\nplt.xlabel('Questions (Content Id)',size = 15)\nplt.ylabel('presentage %',size = 15)\nfor p in ax.patches:\n    x=p.get_bbox().get_points()[:,0]\n    y=p.get_bbox().get_points()[1,1]\n    ax.annotate('{:.2f}%'.format(p.get_height()), (x.mean(), y), ha='center', va='bottom')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### The best 20 percentage of correct answer for questions (content_id)"},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"dddd = df_questions.groupby('content_id').agg({'answered_correctly': 'sum', 'row_id':'count'})\ndddd['presentage']=dddd['answered_correctly'] / dddd['row_id']\ndddd=dddd.sort_values('presentage',ascending=False).head(20).reset_index()\ndddd.columns = ['Content Id','CorrectAnswer','All Rows','presentage %']\nfig, ax = plt.subplots(figsize=(17,5))\nax = sns.barplot(x=dddd['Content Id'], y=dddd['presentage %'],order = dddd['Content Id'], data=dddd)\nplt.xlabel('Questions (Content Id)',size = 15)\nplt.ylabel('presentage %',size = 15)\nfor p in ax.patches:\n    x=p.get_bbox().get_points()[:,0]\n    y=p.get_bbox().get_points()[1,1]\n    ax.annotate('{:.2f}%'.format(p.get_height()), (x.mean(), y), ha='center', va='bottom')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Question elapsed time VS Answered Correctly"},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"#  Question elapsed time VS Answered Correctly\ndf_questions5=df_questions[(df_questions.prior_question_elapsed_time.notnull()) & (df_questions.prior_question_elapsed_time<15000)]\nplt.figure(figsize = (5,7))\nax=sns.violinplot(data=df_questions5, x=df_questions5.answered_correctly, y=df_questions5.prior_question_elapsed_time, hue=df_questions5.answered_correctly,\n                inner=\"quart\", linewidth=2,palette=['#d12c3a',\"#368f71\"],)\nax.legend(bbox_to_anchor=(0.6, 1.0))\nax.set_xlabel('Answered Correctly',size=15) \nax.set_ylabel('prior question elapsed time',size=15)\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Answered Correctly for first question (time=0)"},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"#  Answered Correctly for first question (time=0)\ndf_questions1=df_questions[df_questions.prior_question_elapsed_time.isnull()]\nplt.figure(figsize=(10,5))\nax = sns.countplot(x=df_questions1['answered_correctly'],  palette=['#d12c3a',\"#368f71\"])\nax.set_xlabel('Answered Correctly',size=15)\nax.set_ylabel('',size=15)\nplt.title(\"Answered Correctly for first question (time=0)\",size=15)\nfor p in ax.patches:\n    x=p.get_bbox().get_points()[:,0]\n    y=p.get_bbox().get_points()[1,1]\n    ax.annotate('{:.0f}'.format(p.get_height()), (x.mean(), y), ha='center', va='bottom')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Distribution of  prior question elapsed time"},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"# Distribution of  prior question elapsed time\nplt.figure(figsize = (16,8))\nax=sns.distplot(df_questions['prior_question_elapsed_time'],color='#557799',hist_kws={'alpha':1,\"linewidth\": 1}, kde_kws={\"color\": \"black\", \"lw\": 1, \"label\": \"\"})\nplt.title('Distribution of  prior question elapsed time', fontdict = {'size': 15})\nplt.xlabel('prior question elapsed time', size = 15)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Distribution of  timestamp"},{"metadata":{"_kg_hide-output":false,"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"plt.figure(figsize = (16,8))\nax=sns.distplot(df_questions['timestamp']/(31536000000/365),color='#557799',hist_kws={'alpha':1,\"linewidth\": 1}, kde_kws={\"color\": \"black\", \"lw\": 1, \"label\": \"\"})\nplt.title('Distribution of  timestamp', fontdict = {'size': 15})\nplt.xlabel('timestamp', size = 15)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Answered_correctly Vs Prior Question had explanation"},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"pq = df_questions.groupby(['prior_question_had_explanation']).agg({'answered_correctly': ['mean']}).reset_index()\npq.columns = ['prior_question_had_explanation','Percent answered correctly']\nexplode = (0.1,0)\nfig,ax = plt.subplots(figsize=(12,5))\nax.pie(pq['Percent answered correctly'],labels = pq['prior_question_had_explanation'],explode=explode, autopct = '%.2f%%',startangle = 90,\n                                        colors=[\"#d12c3a\",\"#368f71\"],textprops=dict(color=\"#000000\",size=14))\n\nax.set_title(\"Answered_correctly Vs Prior Question had explanation\",size=15) ","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<a id=\"3\"></a>\n# 3. Questions.csv"},{"metadata":{},"cell_type":"markdown","source":"* **question_id:** foreign key for the train/test content_id column, when the content type is question (0).\n* **bundle_id:** code for which questions are served together.\n* **correct_answer:** the answer to the question. Can be compared with the train user_answer column to check if the user was right.\n* **part:** the relevant section of the TOEIC test.\n* **tags:** one or more detailed tag codes for the question. The meaning of the tags will not be provided, but these codes are sufficient for clustering the questions together."},{"metadata":{"trusted":true},"cell_type":"code","source":"df_q=pd.read_csv('../input/riiid-test-answer-prediction/questions.csv')\ndf_q.sample(10).T","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Top 20 used Tags"},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"df_tag = df_q['tags'].str.split(' ').explode('tags').reset_index()\ndf_tag = df_tag['tags'].value_counts().reset_index()\ndf_tag.columns = ['tag', 'count']\ndf_tag = df_tag.sort_values(['count'])","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"df_tag=df_tag.tail(20)\nfig, ax = plt.subplots(figsize=(17,5))\nax = sns.barplot(x=df_tag['tag'], y=df_tag['count'],order = df_tag['tag'], data=df_tag)\nplt.xlabel('Tag',size = 15)\nplt.ylabel('Count',size = 15)\nfor p in ax.patches:\n    x=p.get_bbox().get_points()[:,0]\n    y=p.get_bbox().get_points()[1,1]\n    ax.annotate('{:.0f}'.format(p.get_height()), (x.mean(), y), ha='center', va='bottom')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Distribution of Parts"},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"%time\ndp = df_q['part'].value_counts().reset_index()\ndp.columns = ['part', 'count']\n\n\ndf_tag=df_tag.tail(20)\nfig, ax = plt.subplots(figsize=(17,5))\nax = sns.barplot(x=dp['part'], y=dp['count'], data=dp)\nplt.xlabel('Parts',size = 15)\nplt.ylabel('Count',size = 15)\nfor p in ax.patches:\n    x=p.get_bbox().get_points()[:,0]\n    y=p.get_bbox().get_points()[1,1]\n    ax.annotate('{:.0f}'.format(p.get_height()), (x.mean(), y), ha='center', va='bottom')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<a id=\"4\"></a>\n# 4. Lectures.csv"},{"metadata":{},"cell_type":"markdown","source":"* **lecture_id:** foreign key for the train/test content_id column, when the content type is lecture (1).\n* **part:** top level category code for the lecture.\n* **tag:** one tag codes for the lecture. The meaning of the tags will not be provided, but these codes are sufficient for clustering the lectures together.\n* **type_of:** brief description of the core purpose of the lecture"},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4}