tested base64 which is the data part of DataUri

--- MeetU/TestCSharpPart/ImageExperiments.cs
+++ MeetU/TestCSharpPart/ImageExperiments.cs
@@ -17,11 +17,18 @@
         {
             var catAsBytesArray = System.IO.File.ReadAllBytes(@"C:\pusheencat.png");
             Assert.IsNotNull(catAsBytesArray);
+
+            //bytes arr -> base64 string
             var catAsBase64 = Convert.ToBase64String(catAsBytesArray);
-            //
-            //the string is part of the data uri
-            //
             Assert.AreEqual(catAsBase64, "iVBORw0KGgoAAAANSUhEUgAAA4AAAAOACAYAAABrNB1XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAtIVJREFUeNrs3Xd8HHed//H3Fmk16r132bK97r3GdnrdVAgQIAkdwoXjuDvg4O5+d1yFA3787igHRw8cCQFSNiG9x3Hv9ro3yZbVrC6Nun5/7Jo4iZNoVrvSltfz8diHUuY7O/uZ2d3ve2fm+7WNjY0JAAAAABD77JQAAAAAAAiAAAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAACAAAgAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAAiAAAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAACAAAgAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAAiAAAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAEAApAQAAAAAQAAEAAAAABAAAQAAAAAEQAAAAAAAARAAAAAAQAAEAAAAABAAAQAAAAAEQAAAAAAAARAAAAAAQAAEAAAAAAIgAAAAAIAACAAAAACIck5KEBo2m40iYEI8bsMuaZakhZLcksollUkqlpQiKTnw98L37ZCkPkntktoCj1ZJpyTVS6oLPA55fWY/VQYAjOP7KFtSraSKwHdRqaQSSfmSsiVlBb6PMt7U1JQ0KKlLUnfge6he0klJeyRt9/rMBiqMYI2NjVGEUOQWCkkAxJR/0RZL+htJHwx8qYbDaCAU7pd0SNJuSVslHfb6zFH2AgDE5fePIWm+pCWS5kiaKf8PkHlhfNrDkr4v6ftenznEXgABkABIAES8ffmulfQHSTlTtAk9knZI2iJps6SXvD6zhT0DADH5nTNT0rpA4FsmabYkxxRtziZJN/KdAwIgAZAAiHj6Ii6U5FP4zvoFa7+klwOPF70+s5G9BQBR9x1jk/9s3iWS1gceBRG2mU95feY17C0QAAmABEDEy5fzf0q6Nwo2dbekxyQ9IWmT12eOsPcAICK/V9IkXS7pBknXyn8PeaS7yuszn2HvgQBIACQAIta/pJMlNUpKi7JNb5P0pKQ/SnrM6zM72ZsAMKXfJzWSbpR0vfxn+xKj7CU85PWZt7InQQAkABIAEetf2HdJ+nmUv4xBSU9L+q2kRwmDADCpoe+9gceiKH85w5JKvT6ziT0LAuDkYBoIYGp8LAZeQ6L8lxndIGnQ4zYIgwBA6AumL/phSd9kLwOTgzOAoSokZwAx/i/x6fIPgx2r+iU9JP8ZzmeZZgIAgv6+SAsEvrvlv7wzVh30+sxZ7HG8G3ILAZAAiGj9Qv9X+ef9iwf1kn4p6Rden3mEvQ8A7/odYZN/xM6PSLpNUnKcvPSVXp+5iSMABEACIAEQsfjFfkJSRRy+/A2SfiLpfq/PNDkaAOAN3w8lkj4u/9m+yjgswfe9PvOzHAkgABIACYCItS/4S+SfX8/K0aXk1DQ5HE4luJJkt9tls9k0OjqqsbFRDZh9GjD7NDw8FC1laJf008CX/XGOCgBx/r1wqaTPSrpZUzcpuyWJriS5jBQlupIkSQ6nUyPDwxobG9XQwIAG+vs0ONBvdbWtkoq9PnOIowIEQAIgARCx9EX/Q0mfHO/yzoRE3fmFf1aiy3jXZUeGh9TX262eznb1dLWrp6NNnW0tam9tVHtLkwYHIu6k25j8cwt+T9KT3CsIII6+C9LkH/jks/JP1h5RUtIzlZVboMzcQmVk5So1I0sp6ZlKy8hWUnKKbDb7u67j5KE9evKB/7H61Dd4febjHCEgAIYXo4ACk/eF75L/Zv5xq3EvHFf4kySHM0FpGdlKy8i+6P/v6+nSucbTam6oU3PDKbWerVdv95QO1mmTdF3gcdzjNr4v6Sden9nB0QIgRr8HZki6V9Kdioh5YG3KyitQXlG58orLlV9coay8wj+d2ZuI8ulzZKSkyeztttLsQ5IIgEC43/kk6RAVkjOAePcvfo+kRy21+fC9KqmqDds29XZ36mzdUTWcPKKGk0fUca55qsvUI+mHkr7j9ZmnOWoAxMjn/ypJX5R/wvYp6zDY7Q7ll1SouHK6iiumqaC0SgmJrrA934anfq+9m1+09LUkKY/7xPF2yC2hwRlAYPLcZmXhlLQMFVdOD+sGpaRlaNrsxZo2e7Ek/1nChpNHVH/sgOqO+qz+chsKqZL+UtLnPG7jfyV90+sz93HoAIjC0GeTf57UL0laPVXbkZ1XpPLps1VaPVOFZVVyJiRO2nNPn7vEagBMkf+qkN9zBAHhwxnAUBWSM4B4545AgqQmSVnjbTN/5eVaeeXNU7bNY2Njajlbp7oj+1V3xKfmhjr5b9ubdH+U9HWvz3yZIwlAFHzeJ8p/f99fSZo52c/vdCaopKpW5dNnq3z67Le9LWCy/OZ7/6ROa1eXPOD1me/nSMLb9U1AACQAIlo6BNfIP+DJuL3nk19SbmFpxLyG3u5OnTiwS0d9O9VYd3wqwuAWSf8m6RGvz+SDC0Ckfc4bkj4l/6WeRZMa+hISVVE7RzXuhSqfPltOZ0LE1GX7y09q64uWbuvjMlAQAMP9mUEJgEnxHisLZ+bkR1T4k/yXi85Ztk5zlq2bqjC4TNJDknZ53MbfeH3mkxxWACIo+H1JUiGh741q3AutBsAUSVdJeoSjCwgPzgCGqpCcAcTbdw7skhokFYy3zeJLrtbSS2+IitfX29WhQ3u26NCuTepsa5nMp94s6R8IggDiJ/jZVFI5TTMWrFD1rAWTej/fRPz2v/9Vbc1nrTT5qddnfoyjDG9GbiEAEgARLZ2EFZI2WmkTaZd/jvNjWY11x3Vw92Yd279DQ4MDBEEABL8QSMvM1oz5KzRj/nKlZWZHXc2CuAy0Sf5J4ZkfFgTAMOASUGAS+gtWFk7Pyo3C8CdJNhWW16iwvEZrrnmPjh/YpQM7XtPZumPhfuLlkp7wuI3Nkv6P12c+xSEHIAzBL1HSPZMV/OwOh6a5F2nmwpUqrpymKZw9YsKCuAy0QP7L/jdx5AEEQCAa3Whl4aqZ86P/gyUhUbXzlql23jKdazqj/Vtf0eG9WzU8NBjuIPikx208L+mLXp+5nUMPQAiCn13SHZL+WVJFuJ8vNSNLsxev0cxFq2Qkp8ZEDTNzC5SZk291rtkbCYBAeHAJaKgKySWguHjHoVRSvZU2N939eRWV18RcLQYHTB3ctUn7t74yWfcK3i/pb70+8xhHIoAgP8OvlPQfksL+y1xp9QzNXrJWlTPmyGazx1wtNz7zsHZvfM5Kk51en7mIoxAXIrcQAAmAiIbOw0cl/WS8y7uMZN39V/8Wk1/+F3x8q/7YQe3d/KLqjvrC/WRDkv5b0j95fWYLRySAcX52L5L0DUmXh/N5nAmJmrlgheYsW6fMnPyYrunZumN65OffsdqswOszmzkiQQAM8WcPJQDC6horC1dMnxPj4U+SbCqrmaWymllqa27Qrtee09F92zU6OhKOJ0uQdK+kuz1u4xuS/q/XZ/ZyWAJ4m+BXJf+lnneE83mSklM1d9k6zV6yRkkxcpnnuyksq5LLSNaA2Wel2dWS7uPIBELcEyNJh6iQnAHEWzsSDknNksY9ZNuVt31ENbPj74qXnq527dn0onzbXw33fYKNkv5O/iHGGV0OwPnP6yxJfy/ps/L/cBQW6Vm5mr/yMs1YsCJi5+0Lp+ce+oWO7N1mpcl9Xp95J0coziO3EAAJgIj0DsUSSVutHEN3/dW/KclIiduaDfSb2r/tFe3b8pL6errC+VS7JX3e6zNf5EgF4vpz2in/lA5fk4Uf66zKKy7XglWXq3rWgji4yuPtHd6zRc8/bOmEXpPXZxZypIIAGFpcAgqEz3pLHYSi8rgOf5LkSjK0aM1VmrfiUvm2v6pdG54NVxCcL+kFj9t4SNJfeX3mcQ5XIO7C39WSvi3JHa7nyC+p1NJ116psmpuCSyqrmWW1SYHHbcz0+syDVA8gAAIxFwDLps2iYuc/mJwJmrf8UrkXrwl3ELxF0vUet/EtSf/C/YFAXAS/Gkn/T9L1BL/JZaSkKaegROeazlj9LiUAAiHEJaChKiSXgOKNHQyHpDZJ6eNtE6vTP4TC8PBQuIOgJJ2W/2zgA1Q8Yt9XaZKSJKVISpXkkpQmKVlS4gV/JSkz8Pf8f78Yl/wjxb7d/aCdksYCy5z/caD3gn8fkNQlyQz8c6ck0+sz+9lbEXn8JEv6qqS/DOx7gt8U2PjMQ9q98XkrTR7w+sz3UzlIXAJKACQAIrI7Gpbu/3M6E/TRL/2H7A4HxZv6IPiCpM95feY+Kh62EFcoKVf+e66yJeUEHuf/PUP+H0/OPzIDf6Plg3YoEAy7AqHwwker/D8OvfnRKKnF6zMHOErCcty9V9K3JJUR/KbWqcP79MT9P7TSpNHrM4uoHAiABEACICK9s/E5+S8xGpeSqhnyfPjPKJyFILh384va+eozGhwww/EUI5K+I+kfvD6zh4q/6/Ful5QvqVRSkaSSwD8XymYr1dhYViD05ct/Bg9vrysQBltlszVrbKxRUr2kBklnz/+z12d2UKpxHZvTJX1f0hXhWH9WXqFWXH6TKmrnUOxxGhww9bNvfMlqR77a6zNPUD2QW0KDewCB8FhlZeHiyulUzMoHlzNBC1dfKfei1dr+ylPat/UljY6EdB5Bh/yXib3P4zY+7/WZv4/zTrQhqUJSZeDvhY/yQOhzvs23NQesNefPeta+U+08bsMMhMFTF3nUSar3+syROD5mkyT9jaQv6/XLgkMmJS1DS9dfr9r5y2W32zlqLUh0GcotLFXL2XorzVZKIgACBEAghgIg9/4FxWUka9VVt2ju8nXa+vxjOrx3m/y3bIVMqaTfedzGHyXdG8ujhXrcRoakWkk1gcc0SdWBv8UcbRHHCOyv2rf5/8Met3FS0tHA43jg7zFJR70+czCGj+VrJH0vcPyGPLwsXH2F5q64NC7n8QuVoorpVgPgKkn/S+WA0OAS0FAVkktA8Xrno1jSmfEfO3Z97Mv/IWdCIsWboHNNZ7Tp2YdVfywsA8b1S/pHSd/0+szhKD02bfKftZslaUbgcf6fmWsrfoxIOinpgKTDknyBv/u9PrMtij97C+W/dPt9oV633e7QnGVrtWjNVUpKTuUImqDjB3bp6Qd/YqXJDq/PXEzlQG4hABIAEamdkBslPTLe5fOKynTbJ75I4ULozIlD2vjMw2ptPB2O1e+V9HGvz9wSBZ3huZJmS5oX+Dtb/hE0gbfTFDjG91/wd18k3wsb+GHj45K+oddHfw2Z6XOXaNmlHqVlZnN0hEhfT5d++e2vWmkyLCmVQZJAbgkNLgEFQm+JlYULyqqpWIiVVM3QbZ/4og7t2qTNz3tl9naHcvVzJW3yuI3vSvpbr8/smsrXGphypFbSAkkLA48F8o+yCVhVEHhc8abj7JikXZJ2nv/r9ZkNERD+Zkr6kaRLQr3u/OIKrb7mPSooreSoCLHk1HSlZWSru3PcJ5yd8v+QtZXqAQRAIBJZukyloITORTjYbDbNXLhS1e4F2vbSk9q35UWNjo6GbPWS7pV0i8dtfNrrMx+fpM6uXf7LNZdKWhb4sWGu3n6eOyBUzt8betsFx2OLpB2StknaImmr12eenaT3QoL8A7z8rUI8yIuRkqbll9+oGfOXc3VPGOWXVloJgOe/WwmAAAEQiP4AmFdURsXCKNFlaNVVt8i9aJU2PPV71R87EMrVl0p6zOM2fi3pz70+81yIO7lFklZfEPaWyj8BOhAJ8iRdHXicP2YbJG0OhMJNkraE+vLRwDyrP5Y0P5TrtdsdmrdivRZdco0SXcxWEvaDp6hcx/bvCNt3K4C3xz2AoSokvxLC3zEpkH8Or3FJSHTpo1/6D46fSXTq8D5teOr36mpvDfWqWyR91uszHwzy2Dl/idOqCx4V7DFEuVFJuyVtlLRB0sZg53MLTO3wj/JP0eII5UaWT3Nr9dW3KSMnnz02Sc6cOCzvff9lpclWr89cRuXiG7mFAEgARCQGwCskPTPe5YvKa3TT3Z+ncJNsZGRYeza9oB2vPKWhwZCPKfCIpE97fWbjODqzSyWtk7Re/nmuuJQT8aBR0kuSXpT0qvyjj469y/vlEvnP+tWGckMysvO0+urbVD59Nntlkg0OmPrp1y0NgNYrKd3rM0epHgEQE8MloEBozbGycG5hKRWbAg6HUwtXX6kZ85drw1O/t3oZ0ru5SdIlHrfxOa/P/PWbAt+qQOBbJ2mFJBd7450lJLqUmGQo0ZWkRFeSnAkuJSS6lJCQKIfTqQRXkpzOBP8/J7pks9tls9n/dAmfw+nU7l27ZZrmG9Zrs9klm38C77HRi8/qMXu2W8nJyRobHdXgYL//x4OhIY2MDGtocEAjw/6/w0ODGhkZ1mC/qaHBAQ0O9GtwoF9DA/0aHh5iJ75VofxTNZyfrqHV4zZeCoTB5yXtPR8IA++bf5H0F/Lfexuazo8zQYvXXqP5Ky+X3eFgj0yBRJehtMxsdXeM+z7AFEmV8s9pCYAACESMeVYWzs5nfu2plJyaritv+4hmLVypV/74W3W2tYRq1dmSfuVxG++R/z6oK+S/l8+I22LbbLI7EmR3JMrmTJDdkaDSikrl5hXIZaTIZSQryUiWy0hRkpGiBFeSXEmhKdfeQ6eU6LB+crWkZrby8yd2SeDo6KgGB0wNmH2BR6/6+1//5zP1dWptbtTYyJBGh4c0OjKksZG4C4258g8uc36AmWaP23hO/nsJPyP/wEchU1E7R2uueS/TOkSA7PxiKwHw/HcsARAgAAIRZSYBMPqUVs/U7Z/5inZteEY7XnlaIyMhm+f95sAjlpOdnIkuyZ4guzPxgofLH/ScLtkdCbI53vp14166RiWlk3AWfAovGbLb7UoKhNqLSdq3T/379r15gzU6PBQIhYMaHR4I/H39oZEhjQwPxupBlS/pA4FHyKRmZGnNNe9R5Yx5QmTIyS/WqcP7rDSZJelhKgcQAIFIYumX6uz8IioWIRwOpxavvVbT5izRy4/frzMnDlOUgJS0TKVn5yojK1epGVlKy8xRanqW0jKzlZqepWefeUYdHR0UKoSh2u5MlJyJcrguHhxLSkq0bPkydXe0qaezTd2dberpbFdX+zl1tbeoq71VA/0mpZT/ct+5y9dr2aXXy5mQSEEiSBA/gtZSNYAACEQMj9vIkf/Sv/F1qtMzlZDILWCRJiM7T54P/5kO7d6ijU8/pH6zNy5ed3JqurJyC5SZW6iM7DylZ+UoPTtP6Vm5cjoTODAiUEKiS9n5RW/7Q9KA2afO9hZ1tbWqs61FnW0t6mhtUse5Jg0O9MdFjXKLyrT+hg8ol+l2IlJmbgEBECAAAlHN0tm/TIYbj2A2zZi/XOXTZ2vj0w/p8J4tMfO60rNylJ1frOy8QmXmFigrt1AZOfnMexaDXEay8o0K5Re/dTaR3u5OdZxrVkdrozpam9TW3KC2lkaZvd2x0blJSNSyS6/XnGXrZbfbORgiNQBa/x6cSdUAAiAQSSqtffEVULEIZySn6rKbP6zpc5fq5cd+o+7OtqjZ9qTkVOUWlig7v0Q5BcXKzitSVl4hl8BBkpSSlqGUtAyVVE5/w383+3rU1nzWHwibG3Su6YzONTVoJIpGMy2tnql1ng8oLYNBXqIhqKekZ6q3q2O8TbI9biPN6zO7qR5AAAQiQbmVhTOy86hYlCir8Q8Ss/m5R7Vv6yuSImseorTMHOUWlSq3oFS5haXKLSpVSlomOw6WGcmpKqmc/oZgODY2qo7WZrU2nn79cbZeA/19EbXtiS5Dq6+5TTPmL1MIZ4xAmGXm5FsJgJJUJslH5QACIBAROcFap51fp6NJQqJLa659r2pmL9JL3v9Vx7nmqemgp6Qpv7hc+SX+S/tyi8tlJKeygxA2NptdWXmFysor1PS5S/703zvbWtRytk7NZ06p+cwptTae1vDQ1IxMWjljntZe/z4lp6azw6JManqW1SblBECAAAhECktnAFPSM6lYFCoqr9F7P/VlbXnhce3Z9LzGwjjFgN1uV25hmQrKqlRYWqWCsqpgOktAWGRk5ykjO0/TZi+W5D9T2NZ8Vk2nT6qx/riaTp8I5dyaF5WUnKpLrrtdNe6F7JBoDYAZlj/TGNEHIAACEcPShGZ05KOXw5mglVferOpZC/TCI/eF7GxgoitJReU1KiyvUWFplfJKKhiBE1HDZrMrp6BEOQUlci9eLUkye7vVdPqEGutPqOHUUbWerdfo6EhInq/avUCXXPc+zoBHewAM7gwgAAIgEBHG/aVkdzi4VCkGFJRWTuhsYFJyqorKq1VUMU3FFdOVU1Aim417lxA7jJQ0Vc6Y96fJ14eHBgNh8Iga646p6fRJjYwMW1qny0jWmmvfq+lzllDgmAiAmVablFI1gAAITDmP2zBkYQ5Azv7FjvNnA6tmztMLj/zqHS95S0h0qbhimkqqZ6i0akZg/jYCH+Ko05GQqNLqGSqt9s+aMzI8pMbTJ3XmxCGdPn5QLQ117/hDCvf6xWAAtH4/PJeAAgRAICJYuiQliHseEOEKy6r1vs98Vb7tr+ro/h3qONcsm82mrLxCFVdMV2lVrfJLq5iTDLiAw5nwp1FHl116gwYHTJ05cURnThxSY/1xdXe0yeF0qqC0Su7Fa1RWwzRwMRcA07kHECAAAtEp19IXHkP0xyS7w6E5y9ZpzrJ1FAMIQqLLUNXMeaqaOY9ixImERJcSXYYGB8ywfN8CuEh/hRIAIWHpJ8yklDQqBgCAJCPF0kA+XEIDEACB6AuALiOZigEAYP070eZxG5lUDSAAAtEVAJMMKgYAgCRXkuUfRbOpGkAABKIrAHIGEACAYAMgl4ECBEBgyuVYWTgpiQCIGBLhcxc6HI4gX1b4X1fQo8IyXyRiKQAaBECAAAhEH84AIm4luVzBdfqCbGeVYRiT+romZduSkjjwEDsB0PptEQRAgAAITDlLw3q6OAOIGJKTa31UdofDocysrIjdPpfLpdS08I/Wm5ubO6ntgIgMgNZ/FE2hagABEIiuN56DKTgROyoqKy1fylhaVianc3LeB5VVVUG9psm4BDQ1LU25eXmW2iQmJqq4pIQDDzHDZv1SaBdVAwiAwFTLsLKww0kAROxITU1V7YwZlgLM3HmTN9F3dna2qqqrx728YRhyu92Ttn0LFi60FKDnzZ+vhIQEDjzEjESX5UtAGUobIAACU87SqQKHk84bYsvcefNUVl7+rsslJCRo9Zo1Sk6e3MugFy9ZosLCwnddzpWUpDVr1yrRNXknGLKzs7V8xYpxhcAZM2equqaGAw6x9QXKoEbApOI0BBAa/JiCuO/ArVy1Snl5edq3b58GBwbeskxRUZEWLFqktEm4t+4tb1C7XZesW6eDBw7o4IEDGhoaessypWVlWrBw4aSHU0kqKy9XSkqKduzYobZz597y/5NTUjR//vxxhWwgDgIgN9IDBEBgyqVbWTghIZGKISZNmz5d1TU1am5uVldnp4aHh5WUlKSCwkKlpEztuA02m02z3G7VzpihpqYmdXV2amxsTIZhqKCgQEby1PYps3NydMWVV6qzs1OtLS3q7+9XYmKiMrOylJuby1kSxKyERMuj2vIlChAAgehiD3JeMiAqjm+7XYWFheO65HIqOBwOFRcXq7i4OCK3LyMjQxkZGRxIAIDwfE9TAgAAAAAgAAIAAAAACIAAAAAAAAIgEJ8GrSw80G9SMQAAJI2NjlIEgAAIRJ0+SgAAgHVDQwN85wIEQCDqWPr5cnhokIoBACBpZGTYahO+RAECIDDluix92Q0PUTEAABTUj6JdVA0gAAJTrcfKwoMD/VQMAABJg/2WvxO5BBQgAAJTztKoLkODA1QMAAAFdQaQkdQAAiAw5SxdjjLIKKAAAEiSBvotn9DroGoAARCYauesLNxv9lIxAACC+05so2oAARCYapa+jPr7eqgYAACSBvosB8BzVA0gAAJRFgA5AwgAgCSZ1n8U5QwgQAAEplyrlYX7ehjBGgAASTJ7ui0t7vWZDKUNEACBKXfWWgDspGIAgLg3MjJs9R7ABqoGEACBqAuAvV0EQAAA+rotXxFDAAQIgMDU8/rMDlmYl6inq4OiAQDiXm9XOwEQIAACUev0eBccHDA1wFyAAIA419VheUBPAiBAAAQiRp2Vhbs7GMUaABDfgvguPEnVAAIgECmOW/rSaycAAgDiW1c7ARAgAALRy9KXUkdbMxUDAMS1zrYWq02OUzWAAAhECktfSh2tTVQMABDX2lsarTY5QdUAAiAQKQ5Z+tIjAAIA4lh/X48G+vusNDnt9VmbNBAAARCInADYclbSGFUDAMSlc81nrTY5TNUAAiAQMbw+s08WRgIdGhxQZ1srhQMAxGcAbKy32sRH1QACIBBp9llZuOVsHRUDAMSllgbLAXA/VQMIgECk2WVl4XONZ6gYACAutTadDut3LAACIDAZtltZmDOAAIB4NDw0aHU07BFJu6kcQAAEIs1OKwu3nj1NxQAAcedc0xmNjVkaCO2A12eaVA4gAAIRxeszT0hqH+/y/WavujvOUTgAQFxpPnPKapOdVA0gAAKRaoeVhRtOHaViAIC4crbumNUm26kaQAAEIpWlXykbTh6hYgCAODIWzI+fnAEECIBAxNpgKQByBhAAEEfamhvV39djpcmQpG1UDiAAApHqZSsLd3ecU29XB1UDAMSFs3WWf/jc4vWZfVQOIAACEcnrM9tkcbLaMycPUzgAQFwI4taHl6kaQAAEIt2LVhauO+qjYgCAmDc6OqrTxw8SAAECIBDfAbD+6AGNjY1SNQBATGusP66BfkvT+Y1IepXKAQRAINJZ+rIa6O9TY/0JqgYAiGl1R/ZZbbLN6zN7qBxAAAQimtdnNsrikNV1R/ZTOABATDtl/bvuSaoGEACBaPGYlYVPHNxNxQAAMaujtUntLY1Wmz1O5QACIBAtLH1pdZxrVuvZeqoGAIhJx3yW53JvkrSdygEEQCBabJXUEuYvRwAAoiMA7t9htckTXp/JCGkAARCIDoEvrT9aaXN0/3ZJYxQPABBTzjWdUVvLWctfpVQOIAAC0eYBKwt3d7TpzIkjVA0AEFMO7dpstUmvpCeoHEAABKLNs5LarTQ4uGsjVQMAxIzRkREd3rPFajOv12eaVA8gAAJRxeszhyQ9ZKXN8QO7NTw0SPEAADGh/tgB9Zu9Vpv9L5UDCIBA1PG4jWRJ8620GRkeYjRQAEDMaKw/Hkyz1VQOIAAC0Rb+HJJ+I2mx1bYD/Vz1AgCIDUF+p33J4zY+TfUAAiAQTf6fpBuDaZiakUX1AAAxYQLfad/zuI1rqSBAAAQinsdt3Cvps8F+UWbnF1NEAEBMKJ/mnkg/9UGP25hPFQECIBDJ4e9aSd8Jtv3S9dfLZrNRSABATMgtLFXVrKAzXIqkRz1uo4BKAgRAIBLD3yxJ9wf73pq1cJVmzF9OIQEAMWW95w5l5gad4colPeRxGy4qCRAAgUgKf5mSHpGUHkz7yhnztPaG91FIAEDMcSUl64YPfVYpaZnBrmKlpO9TSYAACERK+LNL+pWk6cG0Lyyr1hW33iWbjbckACA2paZn6foP3SNXUnKwq/iox23cQyUBAiAQCf5R0vXBNMzMLdC1H/iUnAmJVBEAENOy84p0zfs/KbvDEewqvuNxG2uoJEAABKaMx214JP1tMG2NlDRdf8dnJvJrKAAAUaWovEaX3fzhYJsnyD8yaCGVBAiAwFSEvypJvwimrdOZoGs/8CmlZeZQSABAXJk2e7GWX35jsM0LJf2vx204qCRAAAQmM/y5JD0gKagZbi+7+U7lF1dQSABAXFq4+sqJjHx9qfy3XwAgAAKT5huSlgbTcOn661XtXkAFAQBxbd0NH1BhWXWwzb/qcRtXUUWAAAiEncdt3CDpc8G0rXEv0uK1V1NEAAAdUYdDV9/+caVmZAW7il963EY+lQQIgEA4w1+xpJ8H0zY7v1iX3vRBSTYKCQCA/AOiXX37J+RwJgTTvCAQAvliBQiAQFjCn03SLyVZHrnFlZSsa973CaZ7AADgTfKKyrTuhvcH2/xqBXlVDkAABPBu7pV0ufVmNl1x611Kz8qlggAAXETtvGWas3RtsM2/7nEbbqoIEACBkPG4jVmSvh5M28WXXKWyaXwvAQDwTlZddWuwI2S7JP3K4zYSqCJAAARCEf6cku6TlGS1bUlVrZasv44iAgDwbh1Th0NXvvejciUlB9N8oaS/o4oAARAIhS9JWmy1kZGSpituvVs2G281AADGIy0jW5fe9KFgm/+Nx20soIoAARAImsdtzFSQvyhedvOHZaSkUUQAACyonDFXc5atC6apU9LPuRQUIAACwYY/u/xTPristl2w6nKV1cyiiAAABGHllTcrp6AkmKbzJf0NFQQIgEAw7pG03Gqj3MJSLbvMQ/UAAAiSw+HUFbfeLYfDGUzzr3jcRi1VBAiAwLgFJnz/12C+sC675U7Z7Q6KCADABGTlFWrFFTcF09Ql6YdMEA8QAAEr/kuS5Rv4ll9+o7LziqgeAAAhMHf5OpVUBXUyb72ku6ggQAAE3pXHbVwj6Var7QrLazR3+XoKCABAyNh06Y0fUkKiK5jG3/C4jSxqCBAAgXcKfy75z/5Z4nQm6NIbPyibjatNAAAIpdSMLK266tZgmuZJ+icqCBAAgXfyF5KmWW207HKPMrLzqB4AAGEwa9FKFVdOD6bppz1uYz4VBAiAwFsEBn75W6vt8osrNHfZegoIAEDY2LTec4ecTstT/Dkk/Sf1AwiAwMX8i6QUS19HNrvW3vB+Lv0EACDM0rNytXjdtcE0XetxG7dSQYAACPyJx20sVBCjhc1fealyC0spIAAAk2D+ysuUnR/UaNvf8LiNRCoIAiCA874lydJpvJT0TC1Zdx2VAwBgsjqvdofWXve+YJrWSPozKggCIAB53MbVki612m7VVbfKmcCPiQAATKbC8hrVzlsWTNOveNxGBhUEARCI7/Bnl/TvVtuVVs9QjXshBQQAYAqsvPJmJbqSrDbLkfRXVA8EQCC+vU/SAisNbDa7Vl19G5UDAGCKGClpWnTJNcE0/QuP2yikgiAAAnHI4zacCmKC2FmLVik7r4gCAgAwheYtX6/0rFyrzVIkfZnqgQAIxKcPyX9T+LglugwtvfR6KgcAwFR3ZB0Orbzi5mCafsrjNvglFwRAIJ4Ezv5ZnvR94ZorZSSnUkAAACJA1az5KiyrttosSdKXqB4IgEB8uUMWz/4lp6Zr7vL1VA4AgAiy4vIbg2nGWUAQAIF4ERj50/L1/0vXXy+nM4ECAgAQQQrLa1RRO8dqsyRJf0H1QAAE4sONkmZZaZCelasZC1ZQOQAAItDyy26UZLPa7B6P28ikeiAAArHvK1YbLF57jex23jIAAESi7Pwi1cy2PD9viqR7qR4IgEAM87iNtZKWWmmTkZOv6XOXUjwAACLYkrXXKoizgPd63EYS1QMBEIhdXwjmC4WzfwAARLasvMJgzgLmyT8tFEAABGKNx21Mk//+v3FLz8pVzexFFA8AgCiwcPWVwTT7vMdt2KgeCIBA7PmcLF4bsmDV5Zz9AwAgSuQWlqp8mttqs9mSrqB6IAACMcTjNlIl3W2lTXJqumbMX07xAACIIosuuTqYZp+lciAAArHlQ5LSrDSYs3StHMz7BwBAVCksq1ZBaaXVZh6P2yineiAAArHjHisLO50Jci9ZQ9UAAIhC81ZcFky/+FNUDgRAIAZ43MZKSXOttKmdv1xJRgrFAwAgClXNnK+0jGyrzT7mcRtc+gMCIBADPm61wdzl66gaAADR2sm12zV76VqrzQokXUf1QAAEopjHbaRJut1Km5LK6crKLaR4AABEsZkLV8jhcFpt9nEqBwIgEN1ul5RqpcGcpZz9AwAg2iUZKZo2Z7HVZtd63EYR1QMBEIheH7aycHJquipmzKVqAADEgNlLLrHaxCHpg1QOBEAgCnncRoUkSzcAzFywgonfAQCIEfklFcrOt3xC70NUDgRAIDrdIclmKQAuXEnVAACIIbMWrrLaZL7HbcymciAAAtEZAMetpHK60rNyqRoAADFk+rylsjscVpt9mMqBAAhEEY/bmClpjpU2tfOXUzgAAGJMkpGiiulzrDZ7L5UDARCILpY+uB3OBFXNnE/VAACIQbXzllptUu1xG4upHAiAQPSwNPdf5Yy5SnQlUTUAAGJQ+fTZciUlW23GWUAQAIFo4HEbtbJ6+efcpRQOAIAY5XA4VTVzntVmt1I5EACB6HCTlYUTXUkqrZlJ1QAAiGE17oVWm0z3uI0ZVA4EQCDGAmBl7Vw5HE6qBgBADCupnhHMZaA3UTkQAIEI5nEbeZIsTeZXbf0XQQAAEG0dX7sjmMtACYAgAAIR7morx7bTmcDlnwAAxImqWQusNlnhcRvZVA4EQCByXWNl4dKaWXI6E6gaAABxoKSqVs6ERKv95SupHAiAQATyuA27pKustKmcMZfCAQAQJ5zOBJVZv/LnaioHAiAQmRZKyrPSoGL6bKoGAEAcqai1/OPvNVQNBEAgMl1qZeHcwlIZKWlUDQCAOFJWbfkMYJHHbTBgAAiAQAS6wtIXwDQ3FQMAIM6kpGcqO7/IarP1VA4EQCCCeNyGU9IaK23Ka2ZROAAA4lCZ9T7AFVQNBEAgsiyRlDLehZ3OBBWUVlE1AADiUGnVDKtN1lE1EACByGLp7F9BWbXsDgdVAwAgDhWW18hms9QVzvW4jRlUDgRAIHKssrJwSeV0KgYAQJxKSHQpr7g8rH0NgAAIhNdqKwsXV9ZSMQAA4lgQPwYTAEEABCKBx23USMof94HvcCivuIzCAQAQxwrLqgmAIAACUWqplYXzisrlcDipGgAAcaygtNJqk1ket8EEwiAAAhFgsZWFi8qrqRgAAHEuKTlVGTn5VprYJC2kciAAAlEWAPOKK6gYAABQQUml1SZLqBoIgMAU8rgNm9UP43wCIAAAkIIZCXQxVQMBEJhalZLGfT1+UnKq0jKzqRoAAFC+9QA4j6qBAAhMLUsfxHlFjP4JAAD8cgpLrU4IP9PjNhKpHAiAQJQEwJyCEioGAAAkSU5ngjJy8iw1kTSLyoEACEydOVYWzi4opmIAAOBPcvIt/zg8l6qBAAhMnZnWPuQJgAAA4HVB/Dg8g6qBAAhMAY/bsEuqHe/yNptdWbmFFA4AALweAPOKrDbhElAQAIEpUi4pabwLp2flyO5wUDUAAPAnWXmWfxyupWogAAJTw9IHcGZuARUDAABvkJ6VI7vdUre4NnAVEkAABCbZNEsBMCefigEAgDd2iO0OpWXlWmniksSgAiAAAlOg0srCGQRAAABwEUH8SFxF1UAABCZftZWF09KzqBgAAHiLVOt9BAIgCIDAFKi09OGekU3FAADARfoIlgNgJVUDARCYfKVh/nAHAABxIM36j8SlVA0EQGASedxGgqRxD+vpSjKUkOiicAAA4C1S0zOtNimjaiAAApPL0qytXP4JAABC2E9gFFAQAIFJVmLtg53LPwEAwMUlp2XIZrMRAEEABCJYoaUAyAigAADg7TrFdruS0zKsNMn1uA0nlQMBEJg8eVYWTrH2oQ4AAOJMEH2FXKoGAiAweSx96LqMZCoGAADevq+QZLmvQAAEARAgAAIAgKgMgNb7CvlUDQRAYPLkWPpQTyIAAgCAkPYVGGIcBEBgElm6UJ8zgAAA4J0kWe8rMMAACIDAJMq0FAA5AwgAAN6pr2CkWG2STtVAAAQmj6UP3STrH+oAACCOJCVb7itwBhAEQGASWbwE1KBiAADg7fsK1q8WyqRqIAACkydx3Au6DEk2KgYAAN5WQqLLcmakaiAAApMnjRIAAIBQsdks/1jM5UUgAAKTKGHcCybyAx0AAHiX/oIryWoTRpgDARCYROP+0LXbOdQBAEDIJVICEACBSMTtfwAA4F04nE6KAAIgEAv8g8AAAAC8PafT8gk9poEAARCYDB63kUkVAADAFOMaIxAAgUjkcHBJBwAAeGcJidzSBwIgEBOcCQkUAQAAvCOb3UERQAAEAAAAABAAgagxPDREEQAAAEAApASIUgNWFh4ZGaZiAADgHY2NjlAEEACBSOT1mSZVAAAAoTQ0OGg5M1I1EAABAACA+NBJCUAABAAAAAAQAAEAAAAABEAgGOO+UH+wn1sGAQDAOxseHqQIIAACEYxUBwAAQmZk2PKo4R1UDQRAIAKNjo1SBAAAABAAKQGiWO94FxwaGKBaAADgHQ0PWu4vMHEgCIDAJBqiBAAAIFRGRy1fMdRN1UAABCbPuC/UHx7iDCAAAHhnIyPDFAEEQCCC9Yx3Qf8vemNUDAAAvK3hIcsXF3VQNUQbJyWIfR63kRn4xwRJKW/ORpK6Lvj3Lq/PjJYRU/qsLDzQ3y9XksEBAQAALmposN9ykyjoB9olpV/wn9L11pNAvedfi9dnEmoJgIigN7AhqURSceBRIilfUrakHEm5gX9OlZQhyZDkCuJ5FAiFnYG/XRf8+zlJDZKaJZ0N/G2UdNbrMyd78hxLzzfKZR0AAOAd+wqWx3Tpnaxt87iNRElFkgoD/b+iwN/iQD8wIxDuzj8y3hT8rPQDB+SfbqtT/iuu2iS1BvqBbYH+35lAn7BB0hmvz2R6LgIggnxzZ0qaLalWUrWkmsCjOhDwJku6xQ+NMY/baJB08oLH8cDjoNdnNoZhGzutLBzEZR0AACCODFo/AxjSAOhxG4WSZgb6fdWSKi94FEuyTVIpXIFHpoVtbw30+44FHsclHZa0n7OKBED43yROSW5JSyTNC4Q+d+DNHY1s8p+RLJG0+iKvt1PSAUkHA3/3Sdrl9ZkNE/mctrJwEJd1AACAODJi/cfioK5+8riNYkkLJM2RNCsQ+mbJf9YuWuUGHssu8nobJPkk7Ze0R9I2ST6vz+TyLAJgTAe+aYFgtEzSYknzJSXFUQkyJK0IPC6sS4ukXRc8tnh95tFxrtPSr27DQ4MciAAA4G0NWe8rvOvVSIE+4LJA4Dv/yIuz0p6/femKC/5bv8dt7Ja0XdIWSRss9AFBAIzIwLdA0jpJayRdIqmAqlxUnqQrA4/ztTsnabOkTYG/m70+szOYD90LDQ5wBhAAAIS0r9Dzpv5fhqTlgceKwN8cKntRSRfU6p5A/ZokvSLpVUkveX3mLspEAIyG4HeNpG/LfxofwcmRdF3gIUmjHrexK/CB8KL8vxC1yOLkq0MDzAUIAADeqa9gOQA6PG7jZknr5f/Bf4GYZm0iCiS9J/CQx20ckPQFr898ktIQACM1/H1S0g+pRMjZJS0KPP48UOt9ktqtrGSQewABAMA7GOi3PJAlwSS8Zkl6wuM2PuX1mT+iHATASAt/8yV9j0pMmjnWP9T7qBoAAHhbDBgXsb7ncRubJe2mFBPHKerQ+RKBOsI/1LkHEAAAvAPGC4hYTklfpAyhKyZC42pKENnM3h6KAAAALhL8TJ06vF8drU0UI3JdQwkIgJEmmxJEtv3bXlFnW4uq3QtUWTtXRkoaRQEAIE6Zvd06eXivjvt26czJwxodGaEo9LXjgm1sbIwqhMCNs5PbJGVFyOZ0yz9FgimpT1KXpNHAf7/Yp1uaJEfgnw1JyZLS5Z+7LyMmD3ybTYXlNapxL1SNeyFhEACAOAl9x3w7dcy3U411xxTD/eDOwKMr0Bc8P7rNiC4+iroj0B+0B/qAyYE+YUbgv0eC9kf39xECCYARFQB/L+nWMD7FiKQ6ScclNUg6E3g0SGqU1Hb+4fWZw6F8Yo/bSA98GORIKpJ/iN5CSfmBfy+XVCn/BJ+26AuDdpVWz9D0uUtUNXO+EhJdHNAAAMSIocEBnTi4W0f2btPp44c0NjYajS9jLNDnOxnoD56V1BzoAzYF/v2cpC6vz+wKcT/QKf/Zt/OPwkCfryTwKJZUHegPOsJYgz88ur/vNo5oAmAkBcBVkjaEYFWtkvYHHj5JhwKhry7UwS7UPG4j8YIwWCX/0L0zAn8royEcOpwJqqydq+lzF6tsmlsOB1dJAwAQbUZGhlV3xKej+7br5OG9GhkeipaQd1LSgUD/74CkE+dDn9dnDkZ4P9AZ6AdWB/p/bkmzA4/cEDzFqkf3923k6CYARk4hbTZ53MbfS/pHC81OSNp+wWNXYILzmONxG0mBD4M58k+Sev6RG6nb7EpKVs3sRZoxf5kKSqs4yAEAiHBNp0/o0O4tOrZ/R6RP/9QqadcFj32SDnl9ZkwOQ+pxG3mBft/iCx5WOlf/x+szv0ZuIQBGXAAMHOB3Sfp3+U+PX2hA0jZJr0p6RdJGr89si/e6edxGqfwTvC8PPJYpcq41/5OM7DzVzlum2nlLlZaZwwEPAECE6O44p8N7turwni3qbIvI39G7JW2RtDnw2OH1mafpAxrZklZKukTSGklLJL35PpxGSV/2+sxfSBK5hQAYkQEwcEAnBQ7kWklD8l/KuT1Wf9UJ8YeBXf5LRlcFarhOUkUkbWPZNLdWXnGzsvOL2GEAAEyRtuaz2vjsw6o/6ou0TTsl6SX5f/R/TdIBr88cZY+9ax8wSf4zg25JCZIOS3r1wv4zuYUAGLEBECH/QCiXtFbSpZKukP/68inlTEjU1bd/QmU1M9lBAABMsvpjB/XUb/9Hw0MRcVtcnaRnJb0g6WWvz6xjD4UHuYUASACM30A4XdKVgcf18v9KNOkSXUn6wJ/9PVNIAAAwiczebv3mu1/T4MCUX1j135K+7fWZR9grBMBoYqcEiDZen3nE6zO/7/WZt0j61lRtx+BAv3ZvfI4dAgDAJNq98blICH+S9HPCHwiAwOSb0puo64742AMAAMTnd28jewMEQGDyTelwXz1dHewBAADi87u3ib0BAiAw+c5YWTg5NUN2e+gO+8SkJPYAAACTKJTfvXa7XRXTZ2v9jR+Uw+G00rSd0d0RrZyUAFHO0iWgaZlZuv0zf6Pjvp06vHebGuuOSwr+huLi8mnsAQAAJlFx+TQd3rt1Amuwqai8WtPnLlG1e6GSjBSZfT168dFfW1nJGfYECIDA1GgIJLhxDcPa09WhJCNF7sVr5F68Rj2d7Tqyb5uO7tuuc03WP8vnLFvHHgAAYBLNWbY2qACYU1CiaXMWa/qcJUrNyHrD/+u1flnpafYECIDAFPD6zCGP22iSVDie5fu6uzQ2NiqbzX8ZaGpGlhauvlILV1+ptpazOrx7i47s3are7s53XdfS9dcpv6SCnQAAwCTKL6nU0vXXaeuLf3zXZVPSMjR97lLVzl+m7Lyit10uiADIXH8gAAJTqG68AXBsbFR93V1KSc98y//LzivSiitu0vLLb9Tp44d0ZM8WHT+4+y2TzCa6krT88hs1e8klVB4AgCmweO21SkpO1ebnHn3LlBDOhERVz5yv6fOWqbR6xrjmau7pare6CZwBBAEQmEINVhbu6jh30QB4ns1mU1nNTJXVzNQlgwM6ffyQ2prPaHRkRFn5RSqfNluJLgZ/AQBgKs1ecommz12quqP71d58VnaHQ9n5JSqtnqGERJeldXV3nCMAggAIRJFTVj/ki8prxrVsQqJLVTPnqWrmPKoMAECESXQladrsxdLsia2nq91yADxF9RGtmAYCseC4tQ/5VioGAABe7xtYPwN4gqqBAAhMHUsfwkH8ygcAAGJYt7Ufh0ck1VM1EACBaAmAHQRAAADgN9BvaqDftNKkzuszh6kcCIDA1LF0CWg3l4ACAICAIG4NOU7VQAAEppDXZ/ZJahrv8r3dnRoaHKBwAABAHeearDbh/j8QAIEIcMTah30zFQMAAOpotdwnOELVQAAEoi0AtjZRMQAAEMwZwMNUDdGMeQARKw5a+7DnDCBCa2hwQIP9pkZHR+VMSFBikiGHg49YINSGhwbVcrZeHeea1N3RpqGBfg0NDSoh0aWk5FSlZ+YoK69QOQXFstn4nRvvrtN6n+AQVQMBEJh6lj6MOQOIiRgbG9PZumM6ffygzp46qvaWRvWbvW9YxmazKTUjW7mFJSqurFVl7RylZeZQPCAI/Wavju3foWO+nWqsO67R0ZF3beNKMlRSNUPT5yxRee1sfpDB232iW/1ReETSUeoGAiAw9SydAWxvPUvFYNlAv6l9W17SgZ2vqaez/V1DYnfHOXV3nNOJg3u04cnfqbC8RvNXXKbKGXNls9ko6BRoPnNKrz75oM41ndHIsH8Ud4fDqeyCYq2++j0qLKuiSBGkp6tdO199Rgd3bdLI8JDl9+vxA7t0/MAuJaema96KSzVn6Vo5ExIpLP6ku6Ndw0ODVpoc9/rMISoHAiAw9Y7L/6ucYzwLd7Q2aXR0RHa7g8rhXY2Ojmrflhe17aUnNThgBr2exrpjaqw7puz8Yq297nYVltdQ3Ekzpucf/rUO79n8lv8zMjKsloY6Pfyzb2vanCW6/JY7CehT/p4b0a4Nz2rHK09peHjife2+ni5tevYR7d3yktZc/R5VzZpPkSFJOtd0xmoTLv8EARCxz+M2siXlS8qVlCcpQ1K6pFRJaZKMwMMVaGIL/HvfBasZlNQjqSvw6JHULqlRUoukFq/PDHqGdq/PHPK4jcOSZo23Q9/R2qTs/GJ2MN5RV3urnv7dT9V6tj5k62xrbtDDP/+O5ixdq5VX3cKlaZPguT/8Qkf2bX/X5Y7u26aR4SFdffvHKdoU6e44p2d+9zM1N5wK+bp7uzr01IM/1oz5y3XJdbdzNhBqa26w2mT/BPpTOYF+VL6kAklZgb5U+gX9qgsPymRJpqSxC/pSfYH/1iOpO9Cn6gz0pVolNXt9Zht7FgRAvNOHUZqk6ZIqJZUHHhWBvyWB0JcwSdsyIOmkpDpJp+Qf2fOQ/Jd3jueSi73jDYCSdK65gQCId1R/7KCefvDHYZs3ct/Wl9XcUKdrP/ApGcmpFDxM6o76xhX+zjtxcLdOHNytqpmcJZpsTadP6Inf/PAt99SG2qHdm3Wu6Yyu/+A9MlLSKHxcB0DLt4Tse4d+TIKkakkzJc0I9K/O96kq9foP5eHuTw0HAuGZC/pUdYHHSUlHvD6zm71PAETsB70ySfMCH0gzJdUGHkURtJmuwPbNuMj/G/S4DZ+kXZJ2StoqaafXZ/a/KQDePu4P/aYGaQ7HBt4+BDzzu5+Na7CJiWg+c1IP//Tbuunuzys5NZ3Ch8FrT/3ecpuNzzxEAJxkDSeP6I//+4OQXPI5Hq2Np/XQT7+tmz/yF7z34joAWj4DuDfQr0qStEjSEkkLJS2QNFuT9KP5OPr3RYHHkrfpF56VfzqLw3r9x/Y9Xp9Zz1FBAET0Bb3EQNCbf8Hf+ZIyo/ylJQY+XBdIujvw34Y8bmOnpI2SXpT/V61xO2f9Qx9x1BGdjPB3Xmdbix771fd080c+r0SXwQ4IoYF+M6hpX7raz6m/r0dJnJmdtDD25AM/mrTw9/p+bg289/5Cia4kdkScGRkZtjoH4Iikj3vcxrJA6EuI4pd/PiCue1M/skPS7sBjz/m/Xp85yBFDAERkhD2b/GfxlkpaEfi7QG+8fjyWJUhaFnj8uV6/Rn5cWhrqOIjwFr1dHXr6wZ9MWvg7r625QS888qvAvWcMQBIq3R1B31qsrvZWAuAkGBww9dRv/0eDA/1T8vxtzQ168dFf66r3foydEWfONZ3R6OiolSYOSX8W42XJDITCC4PhoMdt7JL/6qvNkrZIOuz1mWMcRQRAhD/wuQIhb03gjblS/gFZ4Gep12z2dqu3u0MpaZlUDgFjeu7hX4b9/qO3c+LgHvl2vCb3otXsilCFi/7gR22dqkASb15+/AF1d0ztmBXHD+zSgR2vadaiVeyQOBLKwb1iXKJe/8H9s4H/1ulxG5skvSTpFUlbvT5zgFIRADHxwJcQCHrrJV0iabkm6QbieNHSUK+UGQRA+B3es1UNJ49M6TZsfvZRVc2Yx8AUITKRM7lDg1zxFG6njx/UUQsD9ITTpmcfVuWMubz34qwPgKBlSLo68JCkAY/b2BwIgy9Keon5EiOXnRJEbPi7W1K9pGckfVXSWsJf6DWdPkER8KegsOX5x6Z8Owb6+7TrtefYISFCiItkY9r07CMRszUD/aZ2vPo0uyUuPhcGdHjPFh3z7aAYoeMK9FW/Gui71nvcxkcoS2TiDGBkhr9/DryBEGa7XntOPV3tqp23XKXVM5j8OY4d3bddPV3tEbEt+7e9okWXXC1XEgPCTG0nkUtAw+nkob1qbTwdUdvk275Bi9ZcxVnAWPy5YWxMp48f0uE9m3XiwO5JH3AoDhVI+qnHbdR4febfUg4CIN45/F1O+JvML4RRHdm7TUf2blNKWoZq5y1T7bxlysorpDhx5sDOjRGzLcNDgzq2f4fci7kXcCpD3NgY4xuEO2xFmpHhIR3avUULVl3ODooR7S2NOrR7s47s3are7k4KMvm+6nEbL3h9Jpe2EADxDr5ECaZGb3endm54Rjs3PKO84nLNmLdM0+YsZhTAuNj3HTp76mhEbdPR/dsJgKEI0xP4lX9okPEMwsXs7Vb9sYMRuW1H9m4lAEa5/r4eHd23XYf2bGHE78jp2xIACYC4GI/bcMp//TSmWEtDnVoa6vTa0w+pauY8LV57jbLziylMjDozxQO/XExT/QkNDw3KmZDIDppQRzD4EV37erooYJjUHz+osbHRiNy2c01n1NvVoZT0THZUlGlrbtC2l5/QyYN7rE7vgPBa63EbTq/PHKYUBEC8Vaoia6CXIUlnJDVLapF0VlJr4NElqUdSd+Bvp16fh29AUr/eOEVFiqS0wGtMlZQbeOTLf514qaRyRdiE9aOjIzrm26mTh/bq0ps/pGmzF3OUxqDm0ycjbptGRobV2nhahWXV7KAJMHu7JxAeeyhgmJw9eTSit6/h1FFNn7uEHRVFju7frhce/pVGRiI2Y3RIqpN0WlJjoF91vk/Vc0Gf6sJfrTolJV3QN7QF+lapF/Sp0i/oUxUF/hZIKlHkTFTvCmxrB0cqARBv1RUIT5MZAs9IOiLpkKRjgQ+nU4FH42RP8ulxG+mSquWf4H5m4LEg8O+OqeyMP//QfcrIylNecTlHaoxpb22MzN7CuWYC4JQGwF4KGCbnms9E9vY1nSEARpGWhjo9/9B9E5r2JVTdBUmHJe2SdDDwOCzpmNdndk/mhnjchk1SoaSKwKNcUo2kGZKmBwLiZBkI9HFBAMSbeX3mqMdtPC/p2jAFvT2Sdkvae/5DyeszeyKsBl2BD85db/ogMyTNlX8uxJWBv5PaMx4dHdGWF7y6/oOf5WCNMT1dHZG5XZ3t7JwJB8DgP+L6ehgwIlw6zzVH9va1tbCTosjm571TFf6OS9os6TVJWyTt9fpMM0L6U2PyX7l1VtKmiwTEVL3+Y/tcSfMlzQtTMHze6zO5JpcAiHfw7yEIgCcCH0RbJe2QtMfrM89FeTg2A69pi6T/Cnx4lUpaL+kKSdfIf8lDWNUfO6SBfpPh+WPMcIQO9jE4wDQEE9XVHnxHvrOtlQKGyUC/GdnbZ3L2N5qOpdPHD03W0zVJelLSs5Je9PrM09Fat8AJgB2Bx4XBMCcQBBdJWippmaSqEPRtQQDEO7whX/a4jb+X9LVxNumRtEH+X6C2SNri9ZktcVKr05J+JelXHrdhD3xY3SDpeklhunZnTD2dbXIllXCwxpCIHe6faQgmZGRkeEJnUc3ebg0OmEp08YNPPIW/aNlGBDpBnW16fQiCsPmdpK9L2hHrZ7ICJwxeCDzOh8K8QBhcHnislv+evvH4e6/PfJkjlQCId3/z/ZPHbRyR9A1JZW/6362SXpH0sqRXJe30+swRamaOStoWePyDx218QdK3wvFcdoeDgzTGJCS6InK7EpOS2DkT0NnWMuFw33muhft+Q8wRBZ+hDifdo2gxSd/J93p9ZmO81jhwYuGPgYc8bsMh//gMlwQea+UffOZC9ZK+6PWZ93OUEgAx/jfb/R638aD8v7jUyD+q5n5JhyZ7YJYo9Wg4AmCiy1BmTj7VjTHJqekRec+PkZLGzpmAjtamCa+jvbWRABjqjkdCovyDGUbuV1mk/iiEt8rMyVeiy9DgQNjO2h6K5/D3Nn3UEUnbA4/vBELhDElz5B/I8LikrZygIAAi+DfYJl3k5l28a+2OetzGGYX4Zmb34lWy2ewUOMZk5OTrbN2xyOvY5Baycyag+cypCa+j6fRJ1c5bRjFDLDUjM6IHOUpNz2InRQmbzS734lXa9VrY5hl/kSqPq991SP4R5REF6MkiloX0QzszJ1+L115LVWNQQUllBHZqbMorKmXnTCi8nYiIdeBin6cFEb59XOkRTRavvXbc+8xms1ld/fNUGARAIEYDoNOZ8LZn94oqpummuz/PZUExqqSqNuK2Ka+onMFHJmB0dFQtDXUTXs+5pjMaitBRYqNZfklFRG9fXnEFOymKJCS6dNPdn1dRxbSLd3btdlVMn62VV94czH3BL1BhxBouAUUss/Sr3fDwkG7+yBd0rum0mupPaGhoQKnpWaqonaPS6hny37OCWJSelavcwlK1NkbOiN7V7gXsmAk4W3dMw8NDE17P2NiYTh87qKpZ8ylqCJVUzdCOV56KyG1zOJwqKq9mJ0UZIyVNN931OZ0+fkinDu9TT1e7EhKTVFhWpaqZ82WkpGn3RsuXie6Ll5HVQQAEYoLXZx73uI2jkqaNt01LwynNXb5es5dcQgHjzIz5yyMmANrtDu47m6CTB3eHbF0nDu4mAIZYUXm1jORUmX09Ebdt5dPdcjgT2ElRyabS6pkqrZ550f9bd9RndYXPUFPEIi4BRax7wsrCdccOULE4NXPhSiUZKRGxLdPnLlFyajo7JWhjOnlob8jWdurIfo2OMJhdSDsfdoemzV0Skds2Y/5ydlAMGhocCGawryeoHAiAQPR52srCZ04c4n6fOJWQ6NLCNVdN+XY4HE4tXnsNO2QCzpw4rO7OtpCtb6C/T8cP7KKwITZ32bqIG1U5PStXFbVz2TkxqP7oAas/5Jjyz7sMEACBKPO8pMHxLjw6MhLMJSKIlQ7p8vXKzi+a0m1YdMlVSs/KZWdMwL6tr4RhnS9R2DCErdp5SyNqm5asuzaYUSIRBU4etnxVwIten9lP5UAABKKM12f2yeIveCcP7aFw8fqBaLfrilvvnrL7fwpKKyPiLGQ062htCunln+c11p9Qw8kjFDjEVlxxkxJdSRGxLQWllREXSBEao6OjOnV4n9VmT1I5EACBKM6BVhauO7Jfo6Pc7xOvsvOLtc7zgUl/3pS0TF1520dltzvYCROw+XmvxsZGw7Lujc88JGmMIoeQkZKmVVfdOuXb4XAmaJ3nDjHac2w6W3dMA/19Vps9RuVAAASi1yNWFh7oN3X21FGqFsdq5y7VyitvmbTnS0pO1fUf/IxSM7Io/gScOrxPJ0I4+uebtZyt155NL1LoEJu5cKVq507tmbdLrn2vsvOK2Bkx6oT1e3j3en3mcSoHAiAQpbw+86QkS9d1Htu/k8LFufkrL9O6Gz4Q9vuBUtOzdPPdn1d2fjFFn4Derg69+Oivw/48m557RE2nT1LwEFt34x0qrpg2Jc+9aM1VmrlwJTshRo2NjQUziNOjVA4EQCD6PWwpAPp2chkoNGvRKnnu/FzYpmQom+bWez75RWXmFlDsCTD7evT4r78/KXPKjY6M6In7f6hzTWcofAg5HE5d8/5Pqqi8ZlKfd+7y9Vp22Q3sgBjWWH9cfT1dYe0zANHGNjbG/QwhKSSjhkU0j9tYJGm7lTbX3/EZlU1zUzxowOzT5ucflW/7awrFPWBJRopWXHmzZi5Yrni75+j8YAwnD+1Re2uTHA6H0jJzVD7NrepZC2R3WLsHsr21UU/e/yN1trVM6utIdCXp0hs/ZHmC+NHREZ04sFunjuxXd2ebRoaHlZVboMrauaqonWP59cea4eEhvfDwr3TMtyPs39krrrhJ81dezgdcjHv58fvl277BSpMzksq8PpMOcgQitxAACYCwEgBtkk5KKh9vmxnzl+vSmz5E8fB62Ghp1M5Xn9ZR346gJgZPTk3X3OXrNWfpWiUkuuKufi1n6/XCI/eprfnsRf9/WmaOlqy7VpUz5smVZLxzKO/v055NL2rXhmc0MjI8Za+pcsY8LVpzpfJLKt/1R4RjB3Zq14Zn1dXeetFlsnILdelNH1J+SUXcv9f2bX1Zm555WMPDQyFfd0p6pi6/5a4pu+QUkxkWRvXLb33V6tUB3/X6zHupHgGQAAgCYGyEwH+X9KXxLp/oStJdf/mvUzYlACLXQH+fjvl26vSxgzpbd0xmb/fbfi5k5hSopKpWFbVzVFo9I+Imvp4sjfXH9dh93x1Xh95utyuvuEL5JRXKzitSUnKqNDYms69Hvd2daj5zUmdOHg4qhIdLelauCsuqlZKeqZTUdNnsdg30m+pqa1HTmZNqb2kc13oczgTd8MF7VEQ4UXfHOW146g8hm5rH4UzQnKVrtWTdtXH5A0w8OnV4n564/4dWm631+kwmgCcAEgBBAIyRALhY0jYrba647W5Nm72Y4uGdA6HZp66Ocxoa6Nfw0KASEl1KSklVelauHA5n3NdncMDUAz/4V/V2dXCwjENKWoZu//RX5DKSKYak1sbT2rXhWZ04uDuos71Gcqpq5y/T/JWXh+1+XkQm733f1ZkTh6w0qZdU6fWZo1SPABjL6Jkgfr4IfOZ2j9s4KmncP60f2rWZAIh35TKSlUdn/W35tr8WkeEvKSFRSQkudfR1R9R29XZ3at+2V7T4kqs5eCTlFpbqitvu1uCAqZOH9urMicNqPH1CXW2tF53z0elMUGZeoYrKa1ReM0sl1TOYXzMOnWs6YzX8SdKDhD8QAIHYc7+kvx3vwqePH1Rvd4dS0jKpHBCko/u3R+R2fWjFjSrMyNU/P/bfEbdtx/ZvJwC+SaLLUO28Zaqdt0ySf0Cd3u5ODZh9GhsdlcOZIJeRrJS0dDGhO/ZseiGYZg9SOcQDpoFAPAbAcRsbG9PBXZupGjAB5xojb8qEheWzdP28dVpSMUfXzV0bcdvX1tzIpU7v1oGxO5SWka3cwlLlFZcrO79IKWkZhD/I7O3WkX3brDY7KokvfBAAgVjj9Zn7ZXE6iH1bXtJIGEaiA+LB2NjoRS/Tm0p5aVn6/BV3yhYICh9ZfatmFFZFWuU0NNjPAQQEYd/Wl4MZJOp7TP0AAiAQu35uZWGzt1uH92ylakAQbDa7jOTUiNme5MQkffW6TyvDSPvTf0twOPWV6z6pwozciNnORJehRJfBAQRYNDI8JN+2V60265b0E6oHAiAQu+6XZOmU3u6Nz3E5FhCk4srpkRGqnAn66vWfUmVuyVv+X4aRpn+66XPKSc2kZkAUO7x3q9V5/yTpx16f2U31QAAEYpTXZ7ZKesxKm45zzTp1eC/FA4Iwe+nU32OXnGjoazfdq9nFbx+s8tKy9Y3b/kpl2YVTvr1zll7CgQNYNqa9m1602mhE0n9SOxAAgdj3X1Yb7HrtOaoGBKG4YppmzF8+Zc9fmlWob773rzWzsPpdl81JzdTXb/srLauaO2XbO232YpVWz+TAASw6ffyQ2lrOWm32sNdnnqR6IAACMc7rM1+QxUnhG+uPq7H+BMUDgnDJdberfPrsSX/eq2av1jff+0UVZ+aPu01yYpL+5rpP6tPr3qekBNekbm9ZzUytv/EODhggCLuDm/rh/1I5xBsb9zWFqJA2hp2ONh63cbukB6y0qZo5X1ff/nGKBwRhbGxMeze/oG0vPanBATOsz1WZW6JPXPJezS6eNqH1nOvp0C82PqxXDm/XmML3felMSNSSdddq/srLZLPx2yxgVXtLox74wb9YbbbF6zOXU73o+h4BAZAAiIkEQKekw5IsjP9u0wc++7fKyMmngECQ+s1e+bZvkG/bq+rpag/pumvyynXLwiu0etrCkH4u17U16A87ntVrR3dqcCR008JkZOdpxoIVci9erSQjhYMDCNLLj90v344NVpt9wOsz76d6BEACIAiA8RUC/0wW7wd0L1qttTe8n+IBIfgiP1t3TCcO7tbRfdtl9gY3CF9+Wo5WT1uodbVLLzrCZyj1DZraeGy3XjmyTQfOHtfA8KDldTgTEjV/xaUqmzZbhWWVYuJyYGL6+3p033f+3uqcvaclVXl95jAVJAASAEEAjK8AmCypTlLOeNs4nAn60J//o4yUNAoIhIhv+6t6+fHxX5E9r3SGLp+1Qu6iGuWlZU/JNo+MjupoyykdaDiun7/20LjbFZXX6Ka7P89OB0Jk+ytPaesLj1lt9kWvz/wPqkcAjEfcaIC45vWZfZJ+YKnTNzykfVteonhACFmd9Lwqt0TrapdOWfiTJIfdrhkFVZpTYm3OvsQkJngHQmV0ZET7t75stVmvpB9TPRAAgfj1n5L6rTTYt+0VDQ8NUjkgRJKSUy0t72s4FjHbfuDscWuvlXv9gJA5un+7+nq6rDb7uddntlM9EACBOOX1mS2SfmGlzYDZp4O7NlE8IESy84ssLX+k+ZSaus5FxLa/enS7peVzCorZ4UCI7LE+9cOYpO9QORAAAXwr8KUwbrs3PqfR0VEqB4RAcmq6DItnAR/a+cyUb/ehphM61GhtftDs/BJ2OBACDSePqLXxtNVmj3l95lGqBwIgEOe8PvOIpIestOnuaNOJA7soHhAixZXW7qV7xveaTp1rmLLtHR0b1f+8/KClNg6HU4VlVexsIAR2b3o+mGbfpnIgAAI475tWG+x67VmqBoRIRe0cS8uPjI7q28/8XP1TdD/u/Vv+qKPNdZbalFTVypmQyM4GJqizrUWnDu+32myn12e+SPVAAAQgSfL6zI2SLM0i23K2XmdOHKZ4QIgCoMOZYKnNqXMN+ubTP9XwyMikbutLh7bqt9uetNyu2r2QHQ2EwN7NL8rinRsS9/4BBEDgIr5utcGu156hakAIuJKSNX3OYsvttp3cp3994ocyh/onZTuf3PeKvvPcL62/PiNZ04J4fQDeqL+vJ5iB2M5Kup/qAQRA4M0el3TISoP6Ywd1+vhBKgeEwNzl64Nqt+OUT1/63bd18tyZ8HU6hwb03Rd+rf9+6YGgJiN2L14jp8UznADeattLTwQzFdP3vD6T+ZsAAiDwRl6fOaog7gV87emHNDbGiKDAROUUlKh27tKg2ta1NeivHvyG7tv4aMjPBm48vkv3/uZf9KxvY1DtXUayFqy6gh0MTFDHuWbt3/aq1Wb9kn5I9QA/JyUA3uI+Sf8sqWC8DdqaG3Rw5ybNWrSK6gETtPzyG3X8wC4NDw9Zbjs8MqLf73haT/s26No5a3X17NXKSc0MajsGR4a08dguPbLrOR1vOT2h17R0/fVyJRnsXGCCNj4T1A+uv/T6zFaqB/jZgrmMBRcppM1GEWKIx218RdK/WGljpKTpjnv/jxISXRQQmKD9217RK3/87cQ/m2XT7JJpWlIxR7OKq1WVU6rEt7kMc0xjOtvRqsNNJ7Sz7oC2ntynvkFzwttQVDFNN955r2w2LroBJuL08UN67FffDaap2+szD1DB6EduIQASABHOAJglqV5SipV285ZfqlVX30oBgYl/zeuJ3/xQp47sD+labTabclIylZuapURngpx2hwaGh9TR16WWnjYNBnHW8Z0kugy999NfVlpGNrsUmIDRkRE9+MN/V3tro9WmT3h95nVUkACI1/FzJHARXp/ZLuk/rLbbu+UltTaepoDAxKOaLrvlTmXmFoR0rWNjY2rtadfBxuPac/qQdtT5tL/hiM50NIU8/Nntdl35no8Q/oAQ2LXxuWDC35ikv6d6AAEQGK//kNRgrXM5qpcff4BfqIAQcCUl6/o77pGRkhaV27/2hg+orGYWOxKYoO6Oc9rx8pPBNP2V12duo4IAARAYF6/P7JP0Favtms+c1IEdr1FAIATSMrN1892fV0paZtRss81m09rr36+ZC1awA4EQeOWJB4MZFMoM5jscIAACuE/SDquNNj37iHq7O6geEAIZOfm65aNfUEZOfuR/qTocuvyWu+RevJodB4TAsf07VBfcvcD/4fWZ3JMBEAABawLzAv6F1XaDA6Zeeux+CgiESGpGlm77+F+raub8iN7Gmz/yF5o2ZzE7DAiBvp4uvfzHB4JpelbSN6ggQAAEgg2BL0v6X6vt6o7s16HdmykgECKJriRdffvHtPqa98iZkBhR21bjXqT3fPJLyi+uYEcBIfLy4w9owOwLpukXvD6zlwoCF8c0EKEqJNNAxDSP2yiQdEhShtUO6+2f/opSM7IoIhBC3Z1tevWPvw35NBFWpWZk6ZJrb1dF7Rx2ChBCR/Zu03MP/SKYps94feZVVDA2kVsIgARATHYIvEfS96y2K6maIc+HPyuJYwQItYaTR7TlhcfUWH98Up83OTVdC1dfqdlLLpHd4WBHACHU29Wh3/7w34I5+zcgaY7XZx6ligRAEAAJgAhFALRL2iRpqdW2yy+/UQtXX0kRgTA5W3dM+7e9ouO+XRodHQnb8+QVlWn20rWaNmexnM4ECg+EvIM/qkd/8Z86W3csmOb/4PWZ/0gVCYAgABIAEcoQuEjSFkmWfvK32+26+SN/ofySSooIhJHZ16NTh/bqxKE9On3soEZGhie8zpyCElXNnK/qWfOVnV9MkYEw2v7yE9r64h+DaXpI0nyvzxygigRAEAAJgAh1CPxnSV+12i49K1fv+eQXlegyKCIwCUZGhtV6tl5NZ06q9expdXWcU3f7ubedoiXRZSg9K0dpmTnKyi1QQWmVCkorlZScSjGBSXC27pge/cX/C6aTPypptddnbqKKBEAQAAmACEcATJC0VZLl8ehr3It05Xs+QhGBKTY8PKSR4SGNjozI4UxQoiuJogBTqN/s1YM//Hf1dnUE0/ybXp/511SRAIjxYRoIwCKvzxySdLcky9eWHfPt0J5Nz1NEYIo5nQlyJSXLSEkj/AFT3qkf1TO/+2mw4e+ApL+jigABEAh3CNwl6V+CabvxmUd05uQRiggAgKTNzz2qMycOB9N0RNKdXp/ZTxUBAiAwGf5F/gFhLBkbG9Wzv/uperraqSAAIK4d8+3UrteeC7b5P3t95jaqCBAAgUkRuBT0A5K6rLY1+3r01G9/rOGhQQoJAIhL55rO6IVHfhVs81cl/RNVBAiAwGSHwOOSPhVM25aGOj3/8H2SuKEZABBf+nq69MT9Pwz2h9B2SR/w+swRKgkQAIGpCIH3S/ppMG2PH9ilzc95KSIAIG4MDw3qift/qJ7OoG+F+KjXZ56mkgABEJhKn5N/JDLLdm54Rgd3bqSCAICYNzY2puce+qVaGuqCXcX3vD7zYSoJEACBKeX1mb2SbpXUHUz7lx9/QKePH6SQAICYtvGZh3Ti4O5gm2+S9AWqCBAAgUgJgQcl3RVM29HRET15/4/UfOYkhQQAxKSdrz6tPZteCLZ5k6TbvD6T0dMAAiAQUSHwIQU5P+Dw8JAe/98fqK35LIUEAMQU344N2vx80Pe8D0t6j9dnNlBJgAAIRKL/I+nJYBoOmH16/NffV3dHG1UEAMSEY76deuXxByayii94fearVBIgAAIRKTAs9QckBXVTX293h7z3/Zd6uzooJgAgqp08tFfP/eEXGhsLesqjH3t95n9RSYAACER6COyQdL2k1mDad7W36pFf/D9CIAAgqsPf0w/+RKOjQU/X96yke6gkQAAEoiUEHpd0s6QBQiAAgPBnyQH57/sbopoAARCIphC4QdLdwbYnBAIAok39sQMTDX/Nkq7z+sxOqgkQAIFoDIH3S/rSREMgA8MAACLdiYN79MRvfjiR8Ncr6QavzzxJNYHwsE3gplxcWEibjSLgHXncxjcl/WWw7VPSMnX9h+5Rdl4RxQQARJxDuzfrxUd/PZEBX4bkP/P3LNXExZBbQoMzgMDk+WtJPwu2cW93hx79xX+q+cwpKgkAiCh7N7+oFx751UQ66KOS7iD8AeHHGcBQFZIzgBgHj9twSPqd/IPDBCXRlaSr3vtxlVbPoKAAgCk2pq0vPqHtLz8x0RV90usz/4d64h2PNnILAZAAiCgNgYnyTxR/abDrsNsdWn/jHaqdt4yCAgCmxOjIiF567Dc6tHvzRFf1Za/P/DoVBQGQAEgARCyHwGRJj00kBErSknXXacm6ayRx/AEAJs/ggKmnfvtjnTlxeKKr+huvz/x3KgoCIAGQAAhC4DjVzlum9Z47ZHc4KCoAIOy6O9v0x1//QO2tjYQ/EAAJgARAYCpCYHHFNF353o/JSE6lqACAsGmsP66nfvtjmb3dhD8QAAmABEBgAiHQK+myiawnNSNL19z+CeUWlVFUAEDI+XZs0Kt/fHAic/wR/kAAJAASAIFACEyU9IAmMDqoJDmdCVp34x2aPmcJRQUAhMToyIheffJB+bZvmHD/XdK9Xp/5PaoKAiABkAAIQqB/ioifSLprouuat+IyrbjiJtntTPUJAAheb3ennvndT9VYf3yiqxqS9BGvz/w1VQUBkABIAAReD4E2Sd+W9PmJrquwrFpX3vYRpaRnUlgAgGX1xw7q+Yd+IbOvZ6KrMiW9z+szvVQVBEACIAEQuHgQ/FtJ/zTR9SQZKbrsljtVPs1NUQEA4+xkj2rri3/Ujleelv+qzQnpkHSz12e+RGVBACQAEgCBdw6BH5L0U0kJE13XwtVXaumlN3BJKADgHfV2d+rZP/xcZ08dDcXqTkq6zuszD1BZEAAJgARAYHwhcJ2khyVlTnRd+SUVuvyWu5SRnUdhAQBvceLgHr302G/UP/FLPiVpqySP12c2UVkQAAmABEDAWgicKekJSZUTXZczIVGrrrpF7sWrJXHMAgCkocEBbXjydzq4a1OoVvmwpA96fWYf1QUBkABIAASCC4H5kn4n6ZJQrK9i+mytv/GDMlLSKC4AxLHG+uN67qFfqrvjXKhW+Q1JX/H6zBGqCwIgAZAACEwsBCZK+o6kz4RifUnJqVpzzXs0bc5iigsAcWZ4aFBbX/yj9mx6PlSdalPSx7w+8zdUFwRAAiABEAhtEPy4pO8rBIPDSFJF7Rytvf59SknLpLgAEAcaTh7RS4/9Rp1tLaFa5Sn5R/rcRXVBACQAEgCB8ITAlZL+IKkwFOtLdCVp5ZW3aNaileLeQACITYMD/dr07CPybX81lKt9UdLtXp/ZQoVBACQAEgCB8IbAQkm/lnRZqNZZXDFNl1z3PmXlFVJgAIghJw7s1oanfq+ervZQrvbrkv7W6zOHqTAIgARAAiAwOSHQIenvAo+QTPJntzs0f+VlWrz2GjkTEikyAESxrvZWvfLH36r+WEin4jsn6cNen/kEFQYBkABIAASmJgheLv/ZwIJQrTMlPVOrr75N1bMWUGAAiDLDw0Pa+erT2rXhWY2MhPQE3QZJ7/f6zNNUGQRAAiABEJjaEFgo6ZeSrgzlestqZmrlVbcqO6+IIgNAFDh+YJc2PvNwKKd2kKRR+S/5/Hsu+QQBkAAIAiAiJwTaJN0r/zxMrtAd33bNWrRKS9dfx9yBABChWhrqtOHpP6ix7lioV31C0p1en/kqVQYBkAAIAiAiMwi65b8kdEEo15voStLCNVdp3vL1cjgTKDQARIDerg5tft6rw3u2hGP1P5P0516f2U2lQQAkAIIAiMgOgYmSvibprxWiAWLOS8vM1pJ116l23jKOfQCYIgP9fdq14Vnt3fyihoeHQr36c5I+6fWZf6DSIAASAEEARHQFwRWSfiLJHep1Z+UWauml16t61nwxfyAATI6hwQHt2fyidr/2nAYHzHA8xYOS/szrM5upNgiABEAQABGdIdAl6auS/kaSM9Trzy0q0/JLb1DZNDfFBoAwGRkZ1v5tr2jnK0/L7OsJx1OclXSP12c+TLVBACQAggCI2AiC8yT9VNLicKw/v6RSS9ddSxAEgBAaHh6Sb/ur2v3ac+rt7gzX0/xM0he8PrODioMASAAEARCxFQKd8o8U+jVJqeF4jtzCUi1ee62qZs4Vl4YCQHCGBge0b+vL2rPpBZm9YRuD5ZD8l3s+S8VBACQAggCI2A6CJZK+Jel94XqO7PwiLVpztardC2W32yk6AIzDgNmnfVtf0t7NL6nf7A3X05iS/lnSN70+c5CqgwBIAAQBEPETBK+Q9F1JM8L1HGkZ2Zq7Yr1mLVylhEQXRQeAi+hqb9WeTS/o4K5NGh4KayZ7RP6pHU5RdRAACYAgACI+Q2CipC/IP1BMarieJ9FlyL14leYuX6+UtEwKDwCSmk6f0O6Nz+vEwd3h7uAelv8+v8epOgiABEAQAAF53EaBpH+S9DGFeO7AC9ntDtW4F2rOsrUqKK2i8ADizujIiI4d2Kl9W15W0+kT4X66dkn/IOkHXp85RPVBACQAUgUCIPDmIDhX/vsDrwz3c+UWlmr20ks0fc4SORMSKT6AmNbT1S7f9g06sOO1cA7sct6QpO9J+prXZ7ZTfRAAQQAkAALvFgSvl/R1SbPD/VyuJEMzFqzQ7MVrlJGTT/EBxFSn9cyJw9q/7WWdPLRPY2Ojk/G0D0n6ktdnHmEPgAAIAiABELASAu2S7pD/8qGayXjOwvIazVq4UjXuhZwVBBC1erradWjXJh3ctUndHW2T9bRPS/qq12duYw+AAAgCIAEQmEgQTJD/3sC/l1Q0Gc+ZkOjStNmLNWvRSuWXVLITAES80ZERnTi0Rwd3blT9sYOSJq2ftVHSV7w+80X2AgiAIAASAIFQBkFD0j2S/kpS4WQ9b2ZugWrnLtX0uUuUlpnDjgAQSd1SNdaf0OE9W3XMt0MDZt9kPvl2Sf/g9ZmPsR9AAAQBkAAIhDsIfkrSX0oqncznLiyr0vS5S1XjXqik5FR2BoAp0d7SqMN7t+ro3m3q7myb7KffJOkfvT7zSfYECIAgABIAgckMgomSPirpy5IqJvO57Xa7ympmqdq9UJW1c+UyktkhAMKqs61Fxw/s0rH9O9TaeHoqNuEl+c/4vcjeAAEQBEACIDCVQdAp6YPyXxo6Z7Kf3263q6RqhmrcC1U1cz5hEEDIdLQ26Zhvp475dqit+eyU9HsleSV93eszX2OPgAAIAiABEIikIGiTdFUgCF4xNe9Hu4orp6lq5nxV1M5RWkY2OwaApU5mS0OdTh7eq5OH9kxV6JOkfkm/kPR/vT7zEHsGvDfJLQRAAiAQ6WFwnqS/lvQ+SQlTtR05BSWqmD5bFbVzlV9SwfsVwFsMDw3q9PGDOnl4n04d3jcZk7S/k1ZJ35X0fa/PbGHvAARAAiABEIi2IFgs6ZPyDxpTOJXbYqSkqWL6bJXVzFJJ9QwlGSnsICBOdZ5rVv2xA6o7dkBnThzWyPDQVG/SNknfk3S/12f2s4cAAiABkAAIRHsQTJB0q/zTSKyNgHeu8ovLVVYzU6XVM1VQVi273c6OAmLUQL+phhOHVX/sgOqPH5jMydnfcbMkPSD/2b7N7CWAAEgAJAACsRoG50n6jPwDx6RFwjYlJLpUUlWr4srpKq6YrpyCEt7bQBQbHhpUY/0JNZw6ooaTh9V0+pTGxkYjZfOOS/ofST/hMk+AAEgAJAAC8RQEkyW9V9LHJF0SSdvmSkpWUcU0FVdOIxACURf4jqj5zCmNjo5E0ib2S/q9pJ9IetHrM+mEAQRAAiABEIjrMFgr/5yCd0sqiLTtS3QZKiitVGFZlQrLqpVfUqmERBc7Dpgivd2daqw/pqb6k2o8fVytZ+s1OjoaiZu6Q9JPJf3a6zM72HMAAZAASAAE8MYg6JR/KokPSbpJUnKkvu9zCkpUUOoPhHlFZcrMzZfE5wEQaiPDQ2ptPKOWs3VqrD+uxvrj6ulsj+RNPiPpfwOhbzd7ECAAEgAJgADGFwZTJd0cCINXSoroUVoSXUnKKypTXnGF8orLlVdUpvSsXHYkYMHo6KjamhvU0lCnloY6NTecUltzQ6Se3btQl6QHJf1a0ktenznK3gQIgARAAiCA4MNggaTbA4/VipJTbUlGinIKS5RTUKqcgmLlFJQoO69IdoeDnYq4NzhgqrXxjNqazqi16YzONZ5WW0tjJEzJMF69kh4LBL/HvD5zgL0KEAAJgARAAKEPg8WSbpN0i6R1ivAzg29mt9uVlVeknPxiZReUKDMnX9n5RUrLzOHzBDFpZHhI7a1Nam9tVEdLo841N+hc4xl1d7ZF48vplvTHQOj7o9dnmuxhgABIACQAApi8MJgv//yCt0paLykhWl+Lw5ngD4N5RcrMLVB2XpEycvKUnp0npzOBnY2I12/2qvNcizrONamjtUltLWfV1nxWPZ1t0d55a5P0eCD0Pc2ZPoAASAAkAFIETCTApEpaJmmhpGpJxfIPfJIoqTPQ8aiXdEDSDq/PPEzV3raW6ZKulnSDpOsl5cTKa0tJz1RGdp4ysvKUkZOvjOxcZWTnKS0zh9FIManM3m51tZ9TZ1uzOtta1dXWoo62ZnW1tWigP6ZOhh2S9Kgkr6TXvD5zhL0PEAAJgCAAYiKh74Py38+2TpKVG8KaJD0p6Q+SnvD6zCEqetEaOyStlHSjpGslzYnV15pkpCg1I0tpmTlKy8z2/83IVmpGlrLyCuVwODkgMG6DA6baW5rU3XlO3R1t6u644G9nezTdn2fVkKRXA4HvMa/PPMLRABAACYAgAGKioSRT0pclfVpSRghW2Szpx5K+6/WZZ6nwO9a+RP7pJa6WdIVi6OzgO3E4nKp2L9CyyzxKy8jmQMDbf5g0nNKW5706ffywpLjpHxyW9JSkpyW94PWZvRwJAAGQAAgCIEIVQD4q6euSwjEvQL+k/5b0z16feY5qv+u+sEtafEEYXCEppq+jdCUZuv6D9yi/pJIDAG9xZO82vfDIfdEw1cJEtUp6KRD4nvL6zFPsfYAASAAEARChDhsZkv5H0nsn4enaJX1R0k+8PpM3+Pj3UVIgBK4PPGIyECanput9n/mqXEYyOx1/0tbcoN/96BsaHY3JW9zOSXrxgsd+PhsBAiABEARAhDNYFEp6QtKCSX7qpyR9hMtCQxIIVwf+OTUWXtuSdddpybpr2cn4k2d+91Md8+2MlZdzRtIGSa/Jf6ZvDxOyAwRAEAAJgJisEJEX6IhMn6JNaJT0Xq/PfJW9MeF96ZA0V9KqQCBcKakqGl9LXnG5bvv4X7NT8acO1U/+7S81HJ0Du4xI2h0Ie69J2uD1mXXsVYAAiLfHsHBA+AJDkvwjyU2fws0olPS8x23c6fWZ97NXghcY/n1X4PH9wD4ukrRU0nL57ydcrPDc3xlSXe2t7FD8yeBAfzSFv6OStkvaJmmLpO0M2gIABEAgUnwzEAymWoKk33jcRpbXZ/6A3RLSUHhW/jnCHr0g+FcHguDSwN/5irDRRhMTk9h5+BOHM2K7AsflP7u3TdLWQNhrY48BAAEQiDget3GlpM9G2GZ93+M2hr0+83/YQ2ENhccDHdcHLzgeSiXNC4TBefLfD1oryT4V21hUXsOOwusdAWeCcovK1Hq2fqo2oU/SPvnPru+WtEf++/a62DsAEHrcAxiqQnIPIF7v7DsDHZnZEbh5o5Ju8frMR9lTU36cGJJmSXK/6e80SY5wPvctH/1LFZRWshPwJ4d2b9YLj/wq3E/TK+lA4OG74O8xBmkBMB7kFgIgARCR2rG/W9LPIngTeyWt8PrMfeytiDx+EuW/b9QtaWYgEFbLf/YwbaLrn7/ycq288mYKjTd3q/TUb3+sEwf3hGqFW+S/bPPYBaGvjukXABAACYAEQMRiB363/Jf5WeZKzZYjOVPOpDTZnQmSza6xkWGNDPZpuL9HQz3nNDJohmIzj0ha5PWZPeyxqDimZknaKCkj2HXY7XYtXX+9Fq65UhKfV3ir0ZERbXjq99q/7ZVQrG6fpHXcsweAAEgAJAAi1jvqayRZ7j2lZeXKmVEmW+K7T8493N+j/rZ6DfZMuF/1Y6/P/AR7LeKPqTz5z6ZUBruOrNxCXXbLncorKqOgeFf1xw7qJe//qqerfaKr2iLpCq/P7KaqAAiABEACIGK1s/4dSX9upU1mXrFsGeWy2a3d9jXc363exqMaGeybyCbf4PWZj7PnIvZ4SpL0nPxzDwalauY8XX7LXXImJFJQjNvgQL9eefwBHdm3baKrelqSx+szB6kqAAJgZLBTAiCkbraycGJSsmzpZZbDnyQ5k9KUUbFASVnFE9neH3vcRg67LWL9YCLhb8GqK3T17R8n/MGyRFeSLr/1Lq2+5j2y2yc0JtFVkhh5GAAIgEDsCQz1X2Gpk5VZKptjArOx2GxKzqtSSkHQw/oXSvpP9l5EHk+flHR3sO2XX36jVlxxk7jfDxMxd9k63XjnvUpKTp3Iau70uI2/oZoAQAAEYs1KS28+Z6IS03JD8sSujEKlFtYG2/wOj9u4nd0XUeFvqaT/Crb9mmveo4Wrr6SQCInC8hrd8tEvKC1zQhcL/KvHbdxINQGAAAjEkllWFk5MzZFCeO9oYnqekvOqgm3+Q4/bYISQyAh/mfJPIh/UdZvLLvNozrJ1FBIhlZGdp1s/9pfKLSydyGru87iNWqoJAARAIFZUWlnYaaSHfAOSsoqVmJYXTNNMSb/yuA0Hu3HK/UgWLyU+b8Gqy7VozVVUEGFhpKTpxrs+p/ySimBXkS7pIY/bMKgmABAAgVhg6QyaYxxTPgQjpaBGdqcrmKZrJXGfzhTyuI2PSnpvMG2nzVkcuOcPCJ9El6HrP3iPsvOLgl2FW9x3DAAEQCBGJFh68znDMzKjze5QSuG0YJv/o8dtXMqunJLwNz3YjnFhWbUuvelDYsAXTAZXUrI8d35O2XlBh8CPc98xABAAgViQaTWohS2JJmfKlRlU58wu6Tcet1HI7pzU8OeQ9DNJKVbbpmVm65r3fUKOiYwmC1hkJKfqug9+RsmpQV/K/gOP2yimkgBAAASi2YiVhcfGRsO6Mcm5FbInBHUpaIGkBzxuI4FdOmm+IGm11UYOZ4Kuvv0TEx2iHwhKanqWrvvAp4OdZzJb0o+pIgAQAIFo1m0pAI4Oh3VjbHbHRKaGWCvp2+zS8PO4jZmS/imonXT9+yY6KiMwIblFZbryto/IFtyIxtd63MadVBEACIBAfATAkeGwb5DTSJeRE/TsDn/mcRt3s1vDGv5skn4qyfKpWvei1ZoxfzlFxJSrqJ2jJeuuDbb5//W4jXyqCAAEQCAanbWy8MigOSkbVT13hQpKK4Nt/iOP21jDrg2bT0haabVRVm6hVl1zG9VDxFh0yTUqq5kZTNNsSd+kggBAAASi0RlrAbAv7BtUXFKi1WvW6Ipb75YrKaiptxIkPexxG9PYvaEVOOvx71bbORxOXXHb3XI6uUUTkcNms+nyW+5SSlpmMM0/zA9NAEAABKLRIUsBcKA3rBtTXlGh1WvWyG63Ky0zR+tv/GCwq8qR9LjHbeSxi0Pqm5KyrDZafsWNyikooXqIOEnJqbri1rsU5HQk3/W4DfokAEAABGI3AA6Z3WHbkPKKCi1fseINAzNUzZyvucvXB7vK2kAITGY3T5zHbayS9GGr7QrLazR32XoKiIhVVDFNc5evC6bpfEl3UUEAIAAC0WSfpIHxLjw2MqThgZ5JCX/nrbziZhWUVgW76qWS/uBxG4ns6gmFP5uk71ht53Qm6NIbPxjsaIvApFl+mUcZ2UFdMPAvHreRQgUBgAAIRAWvzxyStMtKm6HejkkLf5Jkdzh09e0fn8jkzVdL+h1zBE7IhwNh2pJllwfdqQYmlTMhMXDJueUfK4ok3UsFAYAACESTl6wFwPZJC3/nJaem6+rbPyG7wxHsU3kk/dzjNhzsbouF85/d+Der7XKLyjR32ToKiKhRVF4j9+LVwTT9a4/byKSCAEAABKLFC1YWHja7NDo8OGnh77yC0kqtvf79E3nKOyT9hstBLftzScVWGthsNq27/v2y2fi4RnRZdun1wYw+nC3p81QPAAiAQLR4WVK/lQaD3S2TGv7Om7lghRauvnIiT/1e+S8HdbHb313grMYXrbabvXSt8orLKSCiTlJyqpasvz6Ypvd63EYqFQQAAiAQ8bw+s0/Ss1baDHQ2TXr4O2/55R5Vz1owoVwj6WmP28hg77+rL0uyVCcjOVXLLr2eyiFqzV5yibLyCq02y5Z0D9UDAAIgEC0etrLwyKCpYbNr0sOfn02X3fxhFZZVT+T1rpX0isdtlLLr3yYlu40i+S//tGTppTco0WVQQERvJ8Nu18orbwmm6Z9ziTkAEACBaPEHSZZu7OvvaLD0BJWVlSEIf37OhERd+4FPKzu/aCKrmStpq8dtLGH3X9QXJCVZaZCdX6xZi1ZSOUS98mlu5ZdUWm1WLP9l5gAAAiAQ2bw+s13SU1baDHaf0+jQ+G4drJk2TctCFP7OcyUZuv6Oe5SakTWR1RRKetnjNj7EUfA6j9vIlfQZq+1WXXUrA78gZixdd20wzf6CygEAARCIFj+12sBsOzOu8Ld4SXhOsqWkZ8rz4XuVkpY5kdUYku7zuI3vcvnWn/yZJEuTW5dUTldp9Qwqh5hRFtxZwMUet7GM6gEAARCIBo9JOmulwUBX0zueBQxn+DsvIztPN971OSUlT3gAvs9K2uRxG7XxfBAERjL8vNV2yy67kXcQYk6QZwE/ReUAgAAIRDyvzxyW9D+WGo2Nqe9c3ZSFvzeEwDs/N9EzgZK0UNIOj9u4x+M2bHF6KHxEFkf+rJwxTwWllbyJEHPKprmDudf4A4wyDAAEQCBafFdW5wTsatFwf8+Uhb/zsvOLdONdn1NiUspEV5Ui6XuSnve4jZp42vket2GX//JPS5YEd5YEiApzlq612sQQg8EAAAEQiAZen9ki6RdW2/U1H5vS8HeeOTii5KKZciQkhWJ16yXt87iNv4ujieOvkWTpEtjyaW7lFjKbBmJX7bxlwUxtcheVAwACIBAtvilpxEqD4f4eDXQ0Tmn46+/v1+aNG2VPSFJ6+Tw5k1JDsdokSV+TdNDjNt4fB5eF3mu1weK11/COQUxzJiRq5oIVVput8biNaqoHAARAIOJ5feZRSb+0HMDa6lQ7rWpKtnlsbEybN27UwMCAJMnmSFBa6RwlpGSF6ikqJf1G/vsDb4jF/e5xG2WSrrbSpqi8RgWlVbxpEPPmLFsryfLvP7dTOQAgAALR4h8kDVhpMDI8pBce/bWksUnf2IMHDqipqekN/81mdyitZJaSsopD+VQLJHk9bmOPx2181OM2kmJon99ttYc7b8WlvFMQF9KzclVcOc1qM+4DBAACIBAdvD6zTtIPrLZrOHlEu157flK3tbW1Vfv27n2b/2tTcl6VUgpqJFtIr96cK+knkuo8buNrHrdRHs37O3Bp60estEnLzFbljHm8WRA3ZsxfbrXJIo/b4BQ5ABAAgajxNUktVhttef5RNZ0+MSkbODg4qE2vvaaxsXc+6+jKKFR62VzZnSGf5z1P0t9JOuVxG6943MZnPG4jLwr39TpJljqqc5auk81m412CuFE9a4EczgSrzZggEwAIgEB08PrMdklfttpudHRUz/zuZ+rv6wn7Nm7dskV9fX3jWtaZlKaMigWhvC/wzdZI+r6kBo/beDkweugyj9twRMHuvs3Kwg6HUzMXruBNgriSkOhS+XS31WY3UDkAmDjbu/3aj3EWkl/v8S4ClwZukLTSatuSyum6/kOfld0envxz9MgR7di+Pai2/e0N6ms9KU3OZ0m7pC2StgX+7vD6zNMRtI/tkk5LGvds19NmL9YVt93NGwRx5+j+7Xr29z+30mRIUo7XZ3ZTPSA+kVtCw0kJgMnh9ZljHrfxSUnbJVm6fvLMySN69YkHtfb694d8uzo6OrRr586g2ydlFSshOVO9TUfeMol9GGTJP7rm1ReErh5JRwOPY5LOSGqW1Bj42y2pR1Kn12eO+5sjENgzAv+aJskh/6TULkkJ8k9yf15yYJ+6rYQ/SZq5cCVvDsSliulzZHc4NDoy7plyEuSfU9RL9QCAAAhESwjc53Ebfyfp61bb+rZvUGZugeYtD91okcPDw9q4YYNGR0cntB6HK1npZfNktp9R/7l6jY2NTmZZU+UfUXTBOEJdv944IuvgRcJ4QiDQhX/D07NUUlXLGwNxKSHRpZLKWtUfO2Cl2RUEQACYGO4BBCbftyRtDqbha0/9QUf3bw/ZhuzYvl3d3SG6mspmk5FdqozKheG8N3CikuQ/q3f+kfemf8+YrPAnSdXuhVw+jrhWUTvHapMrqBoAEACBqOL1mSOSPiz/ZYmWPf/QfTp9/OCEt+PUqVM6eSL0I4zaE5KUVuJWWsksORINdvg7qHEvpAiIa+XTLA8E447S0YEBgAAIxHkIPCLpY8G0HR0d0ZP3/0hnThwO+vl7uru1fevWsL7GhJRsZVQsVEpBTTimjIh6qelZKiitoBCIa+lZuUrLzLbabBWVA4DgcQ8gMHUh8Lcet7FW0metth0eHtIT9/9QN955r/JLKi0GyFFtfO01DQ8Ph/9F2mxyZRQqMT1fAx2N6m8/o9HhQXa+pLKaWZK4/DOcRkdHdfrYATWePqG+ni6NjfNeV7vDoZS0DJVU1qqooob9FGalVTN1YOdrVpqskfQIlQMAAiAQjf5S0hJJyy2HwKFBPfar7+naD3xaReU14263e9cutbe3T+qLtNnsSsoqVlJmkQa6W9Tf3qCRgd747vTWzOToD6PmhlN6/qFfquNcc9Dr2PbSEyoordTlt9yl9KxcihomRRU1VgMgZwABYAK4BBSYQl6fOSDpZvmnLrBscKBfj//qe6o/6hvX8g1nzujI4cNT94JtNrnS85VRsUDpZXOVmJYXtrkNI5nNZlNp1QzeAGHS0lCnR3/+/yYU/s5rOn1SD/302+rubKOw4QqAFn7ACljgcRsOKgcABEAgWkNgo6QbJZnBtPdfDvojHfftesflzL4+bdmyJWJet9NIV3rJTN3+2b/X2hver5Kq2rgZETMrr0guI5mDPwxGR0f1/MP3aXh4KGTrNHu79crjD1DcMEnLzFFyarqVJsmSOIUOAARAIKpD4A5Jd0gKagK90dERPfP7n2rP5hcu+v/Hxsa0aeNGDQ4MRNTrrqquVmZWttyLVsvz4Xt15xf+Res8H1C1e4FcSbEbkPKLyznow+TMicNqb20M+XrrjvrU1d5KgcOkoLTKapPFVA0AgsM9gEDkhMCHPW7j05J+FEz7sbExvfbUH9Td0aZVV90im+3133f279unlpaWiHq9NptNs9xvHALeSEnTrIWrNGvhKo2NjaqloV71xw7obN1RtTTUa6C/Lyb2dW5RWdRtc09nu04c2qOu9lbZ7XblFJSoauZ8JSS6Imo7m04fD9u6G+uPR9y9gGZfj04c2K2Oc02SpMzcAlXNnC8jOTWqjq+8ojKdOLjbSpO5fGsAAAEQiIUQ+D8et1Es6R+CXcfezS+qq71Vl99ylxJdSWpubtYBny/iXmtFZaWSk5PfISDalV9SofyS16dK6GpvVcvZerWerVd7a6M621rU2dai0ZGRKOvsRs8ZwNGREW1+/lHt2fSixsbeeILalfR7XXLd7Zo2J3JOxgz0m2Fbd78ZSQMXjWnPphe05fnH3nK562tP/l5LL71e81depmgZwTSnsNRqE7cAAARAIEZC4D963IYh6UvBruPU4X166Cff0mW33q3Nm7dpbGwsol6jzWaTe/Zsy+3Ss3KVnpX7hgnUx8bG1NPVrp6ONvX1dMns7VZvT5f6+3o0YPZpaGhQw0ODGuw3Zfb1qv9dAoLN5pAC9yLa7M7AX4f/P9kc/vsUbTbZLhi8ZqCzSWOj4w+hOQXFUXEs9vV06anf/lhNp0+8Tdjq07N/+LlGRoY1Y/5y3ryTaOuLf9T2l5+86P8bHh7Sxmce1tm647ri1rvkTIj8eThzC0usNpnNUQAABEAglkLglz1uI13SZ4JdR3trox7+6beUXDBdCSlZEfX6KiorlZoamkvUbDab0jKylZbx7pNJb3ztNdXX1YX0tYyNjqi/vWHcy6ekZURFh7yzrUWP/ep76u44967LvvL4AyqrmWV1IA8EqaWhTttffupdlzt5aI8e+fl3dN0H74n4S0JT0jKV6DI0ODDuM7gVHreR7PWZfRwRAGANg8AAkeuzkv57IisYGR5S9xmf+lpPSRFyFjDYs38TNTIyorMNDSFf7+hQv6Xl07PzoiL8PfqL/xxX+JP8Z5wO7NwYEds+GMZLQCPF/m2vSBrf+7nlbL28v/xPmX09Ef+6svMLrTapEQCAAAjECq/PHJN0j6RvTnRd/W2n1XV6n0aHB6f8dYXy7J8VZxsaNDw8HPpgaTEAZkT4hOK93Z169Jf/qd7uDkvtmuqP86adJI0Wa93WfFaP/+p7GhociOjXlZlTYLVJNUcDABAAgZgLgV6f+deS/m6i6xo2u9R5aqcGu6duKPupOvsnSfX19WFZr9VQnRHBZwCHh4f0xG/+W71dHdbbDg3G/PtxsL8/IrYjmLN5rY2n9ezvfxZx9wNfKIgRVjkDCAAEQCBmg+A/S/ozBTlP4HljI8PqOXtIvY1HLA1aEipTdfYvXJd/BhMAU9IzI/Y4e/mx+9XaeJo33Nu/gyJjK0aD245TR/a/7cAxURoAmVATAAiAQEyHwO9Juk3ShG9yGuhqVufJnRrq65i07Z/Ks3/huvxTksYsBsDk1IyIPL6O7tuuw3u28EaLcdtffuJtR3Wd+gCYY7VJMXsUAAiAQKyHwIclrZc04VndR4cH1H16v3qbjmpsdDjs215WVjYlZ/+k8F3+6a+jtQCYGoFnAM3ebr3yxG95g8WBsbExPf/wfRp509yBkSCIs+Nl7FEAIAAC8RACt0haJmlvKNY30NmkzhM7NNjdEtbtds+ZMyX1Cufln+eDtBXJaZF3BnDjMw9rgNH040ZnW4t2bng24rbLSEn3z7M5fkXsTQAgAALxEgJPSlop6XchCTEjQ+o5e1jdp/drZDD0w+iXlZcrPX1q5ogL5+Wf/tqNf93OhEQlupIi6lhqbjjFpZ9xaOeGZyyP9Br2DondLiMlzUqTPPYkABAAgXgKgb2Sbpd/hNDRUKxzqK9Dnad2qq/lZEgHiZk9RWf/pPBe/in5B9YZr0icjHvzc4/yZopDI8NDETkgTJK190iyx20ksTcBgAAIxFMIHAuMEHqVpKbQJJox9befUeeJ7RrobNJERz6cyrN/4b7803/v5Pjrk5ScElHHT/OZUzpz4jBvpDh1cOcm9fV0RdQ2GSmWfyTJYU8CAAEQiMcg+JykRZJeDtU6R0eG1Nt0VJ0nd2mwpy3o9Uzl2b9IuvxTklxGZAXAnRue4c0Tx0ZHR7R74/MRtU0uI9lqk2z2JAAQAIF4DYENki6T9A+SQnb95shgn3oaDqirfq+G+jottZ3Ks3/SZFz+aW0kxaQICoCdbS06cXBPzL0PxkZH+TCwYP+2VzQ0OBAx25PoMqw2Sfv/7N13fBz1nf/xt7rWkuUmucm9e40LGLDpAVMS8GICpECAJORyCQchl+RyufC7u9zlLpeEVELggBwEQgsBQhkMgcQ2prlh4zruVZIty7LVNdr++2OXxBjZ6Dva3dFar+fjsQ/L0n6/O/OZ2dG+NTPfL1sRAAiAQG8OgVHLdv5T0rmSdqay74jTrJbqjWqu2qhIR0uX2nh59i/dl38mwoZZznZxdiNttry3TD1lYvNUCvWgMJMNIuGQdmxa3WOWp6CwyLSJj60IAARAgCBoO8slzZL0fyn/wOg0qXnferVUbzrhRPIjRo709Oxfui//dBUAi3vGZ9V4PMbIn67qFj8p12vLe8t7zLIUmgdAzgACAAEQQDIEtlq282VJl0nal+r+w+2NaqnepOZ96xRqOfyhn0/1+z1d/3Rf/ukmABb0kCkgqnZsVltLE28SQ6Fgx0m5Xgerd6vxcF2PWJb8gkICIAAQAAF0Mwi+JmmapHuVhmv+Ih2taj2wRY2731VHw37FY1FVVlZqwIABnq1zJi7/lMymgJBcXd6WFrs2r+WNgR65T+QVFBg3YesBAAEQwIdDYKtlO7dKOkfShnS8RiwcVPuh3WrctUodh/fqSN1+z9Y3E5d/SolLKU30hEng4/GY9m7byJsCH7DnJBwQCABAAAQIgrazTInpIr4tqT0tASMW1fb1K/SH+36o5x76ubauW6FIOJTR9czE5Z/vr6uJgkLvA2Bt1W457a28GfABdfv3qq25kUIAAAEQwEkYAiOW7fxU0iRJT6bztQ5W79aSFx7TIz+7Q0teeEw1e7anfSCNTF3+mUyARk/vCWcAq3Zu5k2AzveNXVuycbH7s+UAwEw+JQB6bRCskXR9wO/7taRfSZqdrtcKh4Laum6Ftq5bodKyARrnP1Xj/adqyIjRknJS+lo1NTUZufwzkf/MzgDm5nr/N7ea3VvZ+XHcfWPKrLkUAgAIgABO8iD4TsDvO1PS9ZL+S9KYdL5ea3OD1i9frPXLF6tsQLnGTpmh0ZOma9ioccrJ6X5Aqt63L3PFMzyb6fUooKFgh+pq9rHT4zgBcBtFAAACIIBeEgJjkh4L+H1/kHSLpH+TNCjdr9vcUK91yxZr3bLFKvL10egJ0zRygl8jxk2Wr8R8dPdIJKIDBw5kMP+ZngH0dsDCg9V7jAeuQe/R3tqspiOH1G9gBcUAAAIggF4SBEOS7gr4fQ9Kuk3SP2UiCEpS0GnXtg2rtG3DKklS+dARqhw7ScNHT9TQkeNU5OvzkX3s379f0Wg0cwUzPQPo8TQQh/bvZSfHifeRA/sIgABAAATQC4Ngq6QfJe8P/HoyCPbP5DLU11arvrZa65YtlpSjgRVDNWTkWA0ePloVw0dp4ODhH7qnLpOXf8ajEUXDZhOD5+Z5ewawrhcEwFg0whu4O/tIzV5NmDabQgAAARBALw6CPwj4fXdJ+oqkb0iqzPySxHXk0AEdOXRAm9e8I0nKy8tX//IhGjR4uAYMHqayARWq2rNDyitMyb2EH3j1eEzRULuiHW2KBNsUcZoUDZrPopFfUOjp9qw/UH3S77OZnnLkZFN/oIoiAAABEABB0GmV9LOA33e3pBslfVOS38tlikYjOnywRocP1nzoZ7n5hcrNL1ROXoFy84uUm5evnLx85eTmKSc3T+osIMZjiseiikejikXDikVCiUfYUSyS/aEiFOxQa3ODSZOYmCrogwXJ5OXFqROXwVC7Rw7VsqEBgAAIAH8NgiFJDwb8vockXaLE5aGfUKrncujuB/VkeMPfNJh/sN8qaSqV+5ssPbvYLCkoaXBXntzR3iqnvVW+PqVscAA4SfHXXQBugmDcsp3XLNu5QtJkSb+U1EBlenAArDcOgJuo2knDaFs2cBYQAAiAAHCCMLjdsp1vSBou6SZJb1GVzuXkeHeitLmhngDYe21M874CAMgiXAIKIFVBsEPSo5IeDfh9E5Jh8EaleWL5bFLo4UTwLj7UMyv4ycNoW7YQAAHgpMYZQADpCIM7LNv5d0njJH1M0v2SDlEZ77Q0HjFtso+qnTSq0ryvAACyCGcAAaQzCMYlLZW0NOD33ZoMg5+SFFDiklFkSHtLEwGw9zLalm2tzVQMAAiAANDtMBiVtEjSooDfd4uk05NB8EpJM6lQerW1GgXAJiVGj0RvDIAtjVQMAAiAAJDSMBiXtCr5+PeA3zdYiWklLpU0T55MNn/yCgUd0znssnY28FAoyAb/8PvtcMDva5fUpyvPd9paKBoAEAABIK0fUOskPZ58KOD3jZd0nqRzk4/JVMm9YIdj2mR/tq5rPBZLW9/RSCSbd4MDksZ3KUR3dPCmAQACIABkNBDulLRT0sPJQNhP0mxJZ0g6TdIpkib1gGNYUFJRT69nyDwANrIXflgkEs7mxe/yNo3HYwqHgiooLGKjAwABEAA8CYRNkhYnH0qGwgJJU5KPCUqMODpe0iglLiFN5ZwLB5KBdIcSc6qtTT4WKQvuXwwSAGG4TUMdDgEQAAiAANCjQmFY0obk40MCfl9/ScMklUvqn3z0Sx73yvThaXDaJbUpMfhJk6Q6SbWSDli2EzzOa2RFrUId7QRAGG3TYIejkrL+VA0ACIAAkDUBsbGnBZloNKK8vMwfdjkDCEmtJk+OhBlMBwBOVkwEDwDutZl9qM6ae8gcNu1Jp+kk3VcBAARAAMgYPiUjW8QpAQCAAAgAvSGlBo2H9c/aYOtixFN0IpbG6TQAAARAAEDPwtmiTkTCIXYBAAABEADQNbGoNxOJFxQZz4hRyNbqOdvPkw8HuXlscAAgAAIAjnGyDgIDAAAIgACAY5DoAAAAARAA8GHxOANrAAAAAiAAZKt2kyeHzEfjBAAAIAACQA9hNixknJEV043pCwAAIAACQLpwBrCHCYeCFAEAAAIgAKRFiBJktSajjU24BAAQAAEAyFpGZ3DjXF4KACAAAgCQtTiDCwAgAAIAAAAACIAAAAAAAAIgAAAAAIAACABAhkSjEYoAAAABEADQKwJgJGzydNIiAIAACABAL9Fq8uRQh0PFAAAEQAAAeksIBACAAAgAQPaKUgIAAAEQAAAAAEAABAAAAAAQAAEAAAAABEAAANIrEg5RBAAACIAAgN4gGjUez6XD5MmxWIwiAwAIgAAAZCmjABgOBakYAIAACABAFmukBAAAAiAAAAAAgAAIAAAAACAAAgAAAAAIgAAAAAAAAiAAACkQDnZQBAAACIAAgN4gHo+bNmkzeXI0GqHIAAACIAAAWSosqcupLhoJUzEAAAEQAIAs1koJAAAEQAAAAAAAARAAAAAAQAAEAAAAABAAAQBIr3A4SBEAACAAAgB6g1g0atqkPQOvAQAAARAAgB4gpMRUEF0WDoeoGgCAAAgAQJZqowQAAAIgAAAAAIAACAAAAAAgAAIAAAAACIAAAKRXOMQ0EAAAEAABAL1CPBYzbWI8AEwsGqHQAAACIAAAWSisxFQQXRYJh6kaAIAACABAlmqnBAAAAiAAAAAAgAAIAAAAACAAAgAAAAAIgAAApFco2EERAAAgAAIAeoN4PG7apMW0QTTCKKAAAAIgAADZKCrJaPb4CAEQAEAABAAgazmUAABAAAQAAAAAEAABAAAAAARAAAAAAAABEACA9AoFuZ0PAAACIAAAnWs2bcA0EAAAAiAAANkpJslo9vhoJELVAAAEQAAAslQHJQAAEAABAAAAAARAAAAAAAABEAAAAABAAAQAIL2CHe0UAQAAAiAAAJ1qMm0QCYeoGgCAAAgAQBaKSzKaPT4ajVI1AAABEACALBWkBAAAAiAAAAAAgAAIAAAAACAAAgDgnXicGgAAQAAEAPQGoWAHRQAAgAAIAECnGk0bhMOMGQMAIAACAJCtjGaPj8diVAwAQAAEACBLMbM7AIAACAAAAAAgAAIAAAAACIAAAHiH+/MAACAAAgB6iVDIeIROEiMAgAAIAEAv0WzaIMxcgwAAAiAAAFmrzeTJsTgnDQEABEAAALJVmBIAAAiAAAAAAAACIADgr/JMnpyTyyEXOJGi4j4UAQAIgADQY1WaPLmwqJiKpRHTQGS/wiKfaZMRVA0ACIAAkCl+kyf7Svp6spC9ZeTKsPk0EFF24eMUJuLNrZEu3iNT2VoAQAAEgLQL+H2DJE3u6vMLCovUp7TMk2V1MXJlSy/ZjMbrmcVhOmTy5Egk4slC9htYbtrkrIDfx2cZACAAAkDaXWD2wbbCswUNOu2mTXrTmbFWkyfH4/FsXU+jnSAcDnqykL6SvqaXSg+QNJ3DEQAQAAEg3QImT64YPsqzBXXaWk2btPSi7RjpJetpFADbW5o9W9CKYSPT+l4EAAIgAMDs06bfVyBpvkmbISPGehcA243zXC1b+aRjtE072r37G8DQkeNMm1zN5gUAAiAApNMnJBndrDR89ATPFratudG0yaFs3ChZfHlmJtSZPLnVfJ9JXQAcNd60yakBv8/PJgYAAiAApMvnTZ7cb9BglQ0o92xhmw4b57mD2bhRQuYDtDimDSLhcLbus3Vm+0ydZws6fMxE5RcUmjb7IoclACAAAkDKBfy+UZIWmLQZM8m7MSo6nDYFO4xu/2qwbKepl2zOoKRGkwbRaNbeMrjLKAAe8e4kcF5evkaON57d4eaA38cs8gBAAASAlLtNUp5Jg3FTZ3q2sEcO7jdtsiVbN0w4lP4pGmJR7wdILSwuNm5j2U6jDM4ChoIdbi4dTplxU2eZNhko6UYOTwBAAASAlAn4feWSbjFp029ghacDwNTt32vaZGvy3yKTRjk5OZ5vn6h5OGuS4fx4LiabT7kc5Zg93WW4P1izx7N1HDtlhgoKi0ybfTvg9+VzpAIAAiAApMo/SSo1aTDl1LM8XeC6GuMAaCf/9Zk0Kijyeb5xOtqNp7sIynDKi6DT5vl6GgajsqO+3my273gXAPMLCjV+2mmmzcZL+jsOUwBAAASAbgv4fSMlfc3oAJubp8kz53i2zPF4XAf27jBttiL5b1G2baNgu1E467Bsp11SvUkjp937AJiTm2u67xYkv1xp0m6/+b6TUv7Z57hp9q8Bv6+EIxYAEAABoLt+LslokImJ009Xn9Iyzxa4/kCVHLOzYlFJ7ya/Nhq2tNjz8TfipuHs/eB32Chk9ogzgMYjZL6/LZeZNKqr2efmrGrKDB4+WsPMp4SolPRvHK4AgAAIAK4F/L7LJF1r2m7G3As9Xe692zeZNlmbPCsmScOMAmAfb0+6tLe2SDKaB7BOkizbCcngMtC2Fu8HSO1T2s+0yZDkv1tkNOppXPt22J6u64y5F7lp9s2A3zdVAAACIAC4CH9lkn5j2m7M5OkaNKTS02XfvvFd0yZLjvra7Axgn76ermtzQ71pk6Mb1Ha1USQcktPW4um6FvcpNW0yOBl248ds44+0Y+NqT9d1zOTpGlgxzLRZgaSHGRAGAAiAAODGLyWNNG10+gWXe7rQdTV73UzmvfCor43WuU9p1gXAo+fFMxopp+lIvafr6isxrvXR2/Ilk4ZVO7d4GnhzcnJ0xoXz3TQ9U9J3OHwBAAEQALos4PfdKOmLpu3G+09T+dARni775jXvmDZpkvTWUf+fZBYAyzxd3+aGw6ZNdh719Q6z1zrk6bqW9DWu9cSjvn7ZpGE8HtOWtcs9Xd+xU6arfNhIN03/M+D3XcCRDAAIgADQlfA3Q9L9xgfVvDzNmRfwdNmd9lZt27DKtNlCy3YixwkNH6nfwApP1/nwwRrTJruO83UXXmu/p+vqotZ/3ZaW7dRKMkp0G1cuVcx8jsUUytHZl17tpmGepKcCft9wjmgAQAAEgBOFv0pJlgznwpOkmWfNU9mAck+Xf+PKpYpGwqbNfnfU+ufJ4Axgbm6eSvsN8HSd62urTZu4PgN4+GC1p+taZh4Apxzz/0dNGre1NLm5nzSlho+e4GZeQCkxAM6LAb+vVAAAAiAAdBL++kn6k6RRpm1Lyvpr9nmXebr8TluL1i1bbNpsv6S/HBMYuhx+ywYMUk6Od79OQkFHLY1Gl4CG9bcJ7yVpnVHYPOBtACwtG6DcvDyjAHjM3HhPSgqZdLDq9YUenwWUzrrkKuUXFLppOlvSHwN+X6EAAARAADgm/L0m6RQ37c+/4rNuP6CmzLtLX1EkHDJt9qhlO9FjPjB3Wf/yIZ6u88Gq3aZNNlq2c/Qp0t2SmrvauMNpU9MR7+4DzMnJUf9Bg01/1896/z+W7TRIesGkg9amBm1Y+brnwXfOvCvdNr9E0tOEQAAgAALA++GvQtIbSoweaGzKrLkaPXGap+tQV7NX9uq3TJtFJP36mO/NMemgwt0AHSmzf+8O0yZrjv5PcnqENWavud3TdS4falzzY7fpL938caG1ucHT9Z5+5vkaPmai2+ZXSrICfl8fjngACIAA0LvD3ymSlkma4aZ9ab8BOvuyazxdh1g0qqUvPal4PG7a9CnLdo69ptFo5MSK4aM9XfeaPcZhbE0Xv3f8ALjH2wA4uNK45hceE3rfSe7zXRYOBfXmwqckxT1c8xxduOAGFRQWue3gUklLkvf5AgABEAB6Yfi7VolREce7Oojm5enSa7+kwqJiT9dj+aIX3IyEKUk/OaYeQyUZncqsGD7Ks/UOOu06tH+vabM3uvi946retdVN2E6ZimHGNT+/k4nRf2Layd7tm7Rx1Zue7ut9+w3URQtu7E4XZ0paHfD7zuMICIAACAC9J/j1D/h9D0t6WlKJ237O/fin3JyNSandW9Zr/fIlbpo+bdnOsQOgXGzSQdmAcvn6eDfA4t7tG02D2CFJmzr5/uuSYl3txGlr0cHq3Z6td/nQSuXl5RttKn34MtDnJRkP77nsted0aP8+T/f5sVNnatbZ87rTxRBJrwf8vp8E/D5v/3oDAARAAEhr8MtNTvC+SdLnu9PXlFlz5Z99jqfrU19brUXPPeKmaUTSHZ18/yqTTrpxP1bKwq+hxcl7/j7Asp0mSe+l+bVTJi+/QENHjjXe/Y9Z57ik75h2Eo1G9Mrv71dbc6On237OvCtVOXZSd7rIlfRPktYG/L7LOToCIAACwMkV/PICft/VSgz5/ztJ3ZocunLMRJ1/xWc9XaemI4f0ypP3uxn1U5Lus2xnxzE18kn6uEknI8ZN9mz9Q0FH+3bYps0WneBnfzHpaJf9nqeXgQ4fa1z7qzsJvoslvWLaUXtrsxY+ca9CQcez9c/JydWln/o7DSgf2t2uJktaGPD73gj4fRcF/L4cjpgACIAAkL3Bb2TA7/sPSXskPSuXUzwcrXzoCF32mS+bzsWWUm3NjVr4+L1qa2l007xW0r928v1PyPBy2MoxkzyrwY5Na0wnvI9LevEEP3/epLOWpiOeDgYzwjwATgz4fTM7+f5tkoyT3JG6A3rpsXs8DYFFxT7Nv+FWlfTtn4ruzkv+gWBLwO/7VsDvK+cICoAACADZEfpyAn7fFQG/z0oGv+9JGpGKvgcOHqYrbrhVhUU+z9av6cghPf/wL9TcUO+2i68lL3k81k0mnQwePlq+kr6e1WHr2hWmTZZZtnPwBD9fKemA2TIs92z9B1eOcnP/5Ycue7ZsZ5ek77tZhrqavbJ+d7ec9lbP6lBS1l9Xfv72VIVASZok6aeSagJ+3+MBv+9sjqoACIAA0HPD3zmS3pL0kqT5qTzODRw8TIGbbvd00JO6mj167qGfq6XxiNsunrVs55lO6jZE0hUmHY2dOtOzOtQfqHIzCMtzJ/qhZTsxnfgM4YfstN+T09biSQ1ycnI1ZrLxzCWfC/h9BZ18/6eSVrlZjkMHqvT8Qz9X05FDnu0P/QZWpDoESlKhpOslvR3w+6yA3+fnCAuAAAgAPSf49Q34ff+XDH8p/4v90JHjtOAL3/A0/G1dt0IvPHyXOtyfbamS9OXj/OwLkoyGlRw7xbsAuG75YtMmcUm/78LznjDpNBqNaNO73k2L4CKED1YnA/1YthORdJ0kVztX05FD+uP//URVO7d4GgKvuvkb6jdocDq6ny9pfcDv+8FxAjQAEAABIIPhb7ykFZK+lI7+J0ybrfk33qaiYm8u+4yEQ1r60pNa8sJjikYjbruJSrresp2GTuqXr8R9YF02cPBw9U/PB+2P1NrUoJ2b3jNt9udOJrzvzJuSdph0vGnVm4qY3YuYMpVjJ7nZL7/e2Tct29kp6atulyXY4ejlJ+7VqtcXKh6PeVKPvv0G6pM3f1PDR09IR/d5Soycuzjg91Vw5AVAAAQAb8LfdEnLJE1Ndd85OTmaM+9KXXzN55Wf780f/Q/t36dnfnOnNq95p7td3W7ZzlvH+dk1MrxHcsqsOZ5t8zVvvapYLGra7LddeVJyagSjeTWc9lZtWPG6J7XIy8vXhFNON212TsDvO+M46/+4pJ+7XZ54PK7Vb/xJLzz8S88uCS32lWj+DbfplDMvSNdLnCvprYDfV8kRGAABEAAyG/5GSnpVUsr/Gl9aNkCBm27XqedcIinzo8JHwiEt+/Pz+uODP1Nj/cHudve/lu3ce5wa5kj6F6NfHLm5mjj9DE+2edORQ9ry3jLTZodlNsLnb5U4Y9pl695ZpHAo6ElNpsya66bZ/zvBz/5Z0svdWabaqt16+r4fat2yRYrFMn82MDcvT+d+/Fpdcu3NKiruk46XmCTplYDf590oSABAAATQy8JfvqRnJA1Ldd+TZ87Rp7763XRdRvYR4tq+4V09+ev/0rpli1JxKZ0l6fYT/HyBpFkmHY6aeIpno3+uXGy5CRT3WbbT0eWC2U6NpKdNXqDDadOaN1/1pCYVw0dp4GDjt8GCgN936nHWP6rE/YAru/VHjEhYy/78vJ6+/4eq2rnZk9qM95+qT9/yXY2aOC0d3U+X9CBHYwAEQADIjG9KOjOVHQ6sSIzyeeGCGzy43y+u3VvW65kH7tSi5x5xO7/fsZZIujY5wEdnITpP0n+ZdnrKGed7ssFrdm/TTtv43r+wpF+7eLmfmTZYt3yxZ5c9urzc8fsnCMHNSgx8srG7y9ZwqFYLH79XLz5yl2qrdmW8NiV9++vy676qS679okrK+qe6+08F/L5rORwDyCY58XicKqSikDk5FAHIkIDf11/SPkkpOQ1VWjZAp51/mabMOku5uZn9u1gsFtXOTe9p3bJFqq+tTmXXSyTNt2yn/QR1/LKkB4xC8uBh+vRXv6tMXxYbjUb0zAM/VsOhWtOmv7Vs52aX+9nrkoyS1cgJfl1x/S0Zf09EImE9+ot/VfD4m/t4LrZsZ9EJajBE0mJJKZsCYfiYiZo59yKNnjQt4/tRJBLW+mWLtX75EnU4banqdqekKcf7QwuA1CG3EAAJgEDvDYDflnRnd/vpXz5EM+ZcqCmz5io3Ly+j69DSdERb1y7X5jXLUnW272gvSvqsZTvOCWpYJmmbpCEmHV8QuE5TT838vNgrF1ta89Zrxrkx+cF8h8v97GPJIG3kwgU3aPLMOdlSo3WSZicv+zxeHcolLVSKz7j3G1gh/+xzNXnmmSrO8PQq4VBQm959UxtWLlVbc0ref9dYtvNHjs4AAZAASAAEkJ4AuE7SDDdt8wsKNXbKDE2eOVcjxk1SJs9AhIKOdtlrtX3jatXs3qbE1HQp95Ckvz/RB/pkDX8t6VaTjkvLBuj6r30v42G5bv9ePffgz93cD/mAZTtf6ea+tkTSx0zaFBb59Jlb7kjH5YYn1NHeqsfu+p4i4ZBp029YtvPLj6hDiRL33H481cudm5enUROmaeIpszV68vSMjrgbi8W0d+sGbV2/Uvu2b+zOgDXPWrbDpaAAAZAASAAEkIbwVyGpzrRdn9IynXbeZZo040wVFhVnbHkb6w+qetcW7dm2Qfv3bE/niIgxSd/6qA/yyRqeIWm5DO8DP/+Kz8g/+9yMbu9Q0NEzD9yp5oZ606ZBSZMs29nXzf1trhLTjBgZOnKcrvz81zN+SfHbrz7rZkqKVknTPqpWyXtGfyzpW+la/rz8Ao0cP1VjJk9X5ZhJ6tt/YMZq57S1yF79ltYtW6xQsMO0ebOkAZbteDMBIkAABAGQAAicxAFwnqS/mLQZO3WmLrzycyosSv/ALk1HDmn/3u3av3u7qndvldPWkomy1CkxyfuiLtSvWNJaSZNNXsCbs39xvfb0Q9q1ea2bxj+0bOeOFO1zv5f0GdN2s86+WHMvXpDR90d7a7Oe+NV/uJmYfpGkS5LzIH5UPW6QdJ+kknSvT9mAcg0fMzHxGD1BpWUD0l7DtpYmvfb0gzpYvdu06TjLdnYLAAGwh8unBACyjNGE5cNGjdel196snJzUnomJhENqPFyn+tpqHT5Yo8O11aqvrVEo6GS6Hq9I+oJlO109K/pj0/AnSWdceEXGL/1c/carbsNfjaQfpHBRvi0pIMloQrm17/xF5UNHaMIpszNWsz6lZZp59jytfuNPpk3nSfqapF991BMt23ks4Pctl/SkpNPTuT7NDfVqbqj/69yPvpK+GjSkUuVDKzVo6AgNGlypfoMqlJeXuo8zJX37af4Nt+qZB35sOqprpSQCIAACIACkmNFpvPbWZm1c9aaGjRqv0rL+JxhsIq5gR+Kyr6DTpg6nTUGnXUGnXR1Om9qaG9XceFgtjUfU0lAvp73V6zo0KzGB+31dOWsjSQG/L6ATzwnYqfKhIzRpxpkZXbmd9nta9fpCt82/ZdmpG+LRsp2qgN/3P5L+27TtkhcfV9/+gzRkxJiM1W7W2Rdr85p31N7abNr0JwG/723LdlZ3oSY7An7f2ZLuSD4KM7FuTluLqndtUfWuLceEtv7q239g8jFIJX37qdhXoiJfHxX7SlTcp1QFRcXKydEJrgSIy2lrVUvTEe3fs93NZaCFAoAswCWgqSokl4ACGRHw+66T9EQq+iosKlY4FMzGS0qelXS7ZTv7Deo2TtK7koyvobvypts1fMzEjK3c/j3btfDxexWNuhpV37Js58o07HcFklZJmmnatrhPqRZ84esaUD40YzXcsna5Xn/xcTdNd0k63bKdBoPaTFHiktALsulNlJubq7z8AoVDwVR1OdeynRUcpYH0Ibek6PhHCQBkGTtVHYWCHdn2y2SDEvO2XWsY/voqMTWEcfibNOPMjIa/upo9+tNTD7gNf02S0jIJn2U7YUlfkGS8YB3trXrp0XtSNd1Al0yZNUdDR45103ScpD8kB3zpam22SLpQ0mcl7c2WN1MsFktl+JOkzRyeARAAASD1Nko63MvWuUrS30s6tSsDvRwT/vIkPSVpmumLFhX30VmXXJXR8PfSY/e4ufTufV+zbKcmXctn2c5aubgMVJLaWhr1wiN3md5T1g05On/+dW5HIb1Y0t2GtYlbtvOUpKmSvtML36PvWrbTLAAgAAJAyj+ER5UYfKI32KfEGa0Jlu385qPm9usk/OVI+o2kT7h58bMvu1q+kr4ZWdHaql3dDX+PWLbzaAYW9b8lveGmYXNDvV585FdqOlyXkZoOrBim0867zG3zWwJ+37+5eH86lu3cKWmMpO/2oiD4hACAAAgAaXOXpPBJvH6rJV0vabxlO/dZthNy2c/dkr7opuHYKTM0eeacjKzs3m0b9dKjv+5O+Nsqw0ntu/kHiOsk1btp39bSqOd++wvV7c/MlZKnnXeZyoeNdNv8+wG/7+su69Rq2c6PJI2U9A+Stp/E79cjkh7isAwgWzAITKoKySAwQEYF/L4fKXGp2cnCkfQHSQ9YtvOOl/XxlfTVp2+5Q77jjpiaOhtXLtXbrz7bnXsxWyTNsWxnc4b3v4skvSbJ1dwY+QWFmnfVTRo7dWbal7XhUK2e+c2dikZc/83kq5bt3N/NeuUqcWnpVyRdqZNrFPKvWLbzAEdlIP3ILQRAAiDQuwNgoaSlkuZm8+8ySUuUuHzsGct2mlJUm+9I+pHbY9n8G25V5djJaV3xaCSsN195+q/zu7kUk3SlZTsLPdoH/0HSPd3p4/QLLtfs8z+e9t8hm997R0utJ7tT5+uT9/ilom5DJX1GibPcZyq7PWPZzqc4IgMEQAIgARBAZj6AV0j6s1wMze+hUDL0PS/pRZPRPLtYk8+qG/dInn7BJ3T6BZentQDNDfV67ekHVV9b3d2uvmHZzi893gfvUeISR9dGjJuieVd/Pu1nXBc/9ztt27CqO/vtPMt23kpx/cZLukrSAknnKLtuTflz8g8QHQJAACQAEgABZOwDeF9JD0rqyX+FtyUtSn5gXGLZTmuaajFd0kpJxW7aj5k8XZd9+stpPZ5teW+Z3n712VQMv/8Ty3b+uQfsf3mSfi/p2u704yvpq49d+TmNnjgtbcsaiYT1wm9/oUMHqtx2cVDSLMt2atNUy0GSLpJ0qaR5ksb24Pf0XZK+nZweBAABkABIAATgwQfxayX9WIl5zLzUoMQgLqslvSPpbct2Dmdg/YslrZXk6trNgRXD9MkvfUsFhUVpWb7Wpga9+fJT2rt9Uyq6+62kL1m2E+8h+16hpJeToaVbpsyaq7Mu/aSKivukZVnbmhv1zG/ulNPW4raLxUrMRRnPQF2HSzpP0hxJp0s6VVKpx5t7raRvWrazhKMuQAAkABIAKQLg/QfxfEnXKDHy5UWSCtL0UhEl5ubbk3xskbRJ0ibLdvZ4tO4/kHSHm7Ylffvrk1/6pkrLBqR8uWLRqDasXKp3l76cqkm3n5B0k+mUGBmofx9JLykxIXq3+Er66qxLrtLE6Wek5XdL/YEqvfDIXd3ZHl+ybOchD2qcK2m8EnNazpA0QYnpJsZIqlT6Lh91JC1UYqTPP/WUPzwABEAQAAmAAD74YbFUiXuKZihxKVmFpGH64BmEIknBoz7kvf91Y/JxWIkh3t//tzYZ+Gp6UgAJ+H2jJO1wE3gLi4q14Av/qEFDKlO+XLu3rNPyv7yQysnPH5b0dz0t/KUjBEpSxbCROvuyazRs1PiUL2vVzi165cn7FIu5KmWtpHGW7Tg9qPYFSkw5MUbSEEkDk49ByUc/SWXvZ+zke//YY8D77/2DycduSe9KWmnZTlAACIAEQBAAAfSQD793S7rNTfibf8OtGlw5JqXLU1u1SysWWzqwd0cqu/2FpG/19LMvyctBH1c37wk82tipM3XGx67QwIphKV3WPVs36LWnH3QbAm+3bOdu3n0ACIAEQAIgAGQ+cBxQ4mxHl+XnF2j+DbdqaArPLlXtsPXe23/W/tQGPylxz9Uvsmib5CYD6+2p7HfM5Bk67dxLUhrYt294V4uf/52bD1XrLNuZxTsQAAGQAEgABIDMho15kv5i0iY3N0+XX3+LRozr/lx/kXBIOzat0aZVb3RndMnjaZN0g2U7z2fptrlVidEi81LZb+WYiZp2xvkaM3m6cnO73/XWdSu05IXH3DQdZ9nObt6FAAiA2SWfEgBAVjvLtME5H7+m2+Hv0IEqbVu3QlvXrVQomJZbwXZLWmDZzoZs3TCW7dwT8Ps2S/qDEvehpUTNnu2q2bNdfUrLNPXUszRx+hnqXz7EdX+TZ87R4YM1Wr98iZt9jwAIAARAAEAGTTR58qgJfk07/VzjF4nH46o/UKU9W9dr+8bVam6oT+c6PS/pZst2GrJ941i2szjg952aDIFzU9l3e2uzVr/5qla/+arKh47Q+GmnafSkU1zdKzh33gJV79qiI3UHTJqN5+0HAARAAEBmlZuGhnXLlqhyzEQNqBiqvPzOBw7tcNrUdLhOdfv36WDVblXv2qIOpy3d6xKU9B1JvzqZhtq3bKcq4PedL+m/JX1bUsrvGaivrVZ9bbVWLHpRJWX9NXLcFA2uHKOK4aPUb2C5Cot8nbaLRiM6XFujmj3b3EwLMYi3HwBkH+4BTFUhuQcQgAcCft9Tkj7t7riVq9J+A1RYVKyComKFgx0Kh4Jy2lpSNWefiXVK3O+38STfXhdIekTS6Ey+bpGvj4p9JcovKFReXr6i0Yictha1tzZ3p9sfWbbzXd6FADKF3JIanAEEgOxW4/4XaUwtjYe9Xv6QpB8kw0ToZN9Ylu0sDfh9MyT9j6R/UBrOBnYm6LQr6LSnuttq3n4AkH1yKQEAZLWlWb7ssyzb+X5vCH9HhcBmy3Zuk3SupPVZvCpv8PYDAAIgACCzFklqyrJlrpJ0nWU7H7NsZ3Nv3XCW7bwjabak2yRl24A327J5hFYAIAACALI1RLRKui9LFrdJiUFeJlu283u2nmTZTsSynXskjZP0U0kdWbLoP2XrAUB2YhCYVBWSQWAAeCTg95UpcSnh6B66iIeVmBD9bst2GtliJ9yWw5QYKfTvJZX00MVcIekcy3aibDEAmURuIQASAAHgb8FhrqTFknw9aLFqlThTdH/yTCW6vj3LJf2jEpeH9utBi1Yv6UzLdpgAHgABkABIAAQAj0PDRUpMot7X40V5S4nLUp+xbCfIlunWNu0r6UYlzgjO7AGB/lLu/QNAACQAggAIoOcEBr+kJzwIC4ckPSXpfy3bsdkSadm2ZyWD4NWSyjL88m9I+pxlO0z9AIAASAAEARBADwsK+ZJulfQvkoam8aWOSHpO0pOSXueesIxt3yJJl0v6jKT5Su+9gpuVmLPwcct2+MAAgABIAAQBEEAPDwrXKnEJ4UWSCrrZZUjSu5JelfSapFWEPs+3caES8wlemnzMVPdH+G6T9JKkxyS9bNlOjEoDIAASAEEABJBdQaFY0hnJsDBN0pjko1QfHGSkRZKjxCWdu5KPHZJWSVrLPX09fjuXSDpdifkFx0saq8QUE4OUGCDo6LOFjhL39dVK2ippkxL3b66xbCdENQEQAAmAAAAAAIAsxkTwAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAEAABAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAEAABAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAACAAAgAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAAIAACAAAAAAiAAAAAAAACIAAAAACAAAgAAAAABEAAAAAAAAEQAAAAAEAABAAAAAAQAAEAAAAABEAAAAAAQIb9/wEAJU0znqqfqpYAAAAASUVORK5CYII=");
+            //    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+            //      data part of the Data Uri scheme
+
+            //base64 string -> bytes array
+            var newBytesArr = Convert.FromBase64String(catAsBase64);
+            Assert.AreEqual(newBytesArr.Length, catAsBytesArray.Length);
+            for(var i = 0; i != catAsBytesArray.Length; ++i)
+                Assert.AreEqual(newBytesArr[i], catAsBytesArray[i]);
         }
     }
 }


Engine: Updated metric weights with latest mergetop results


visbility for some methods changed

visbility for some methods changed

--- Task.cs
+++ Task.cs
@@ -116,7 +116,7 @@
 		/// <param name="at">
 		/// <see cref="Gtk.TextMark"/> Where to insert.
 		/// </param>
-		void InsertCheckButton (Gtk.TextMark at)
+		private void InsertCheckButton (Gtk.TextMark at)
 		{
 			TextIter insertIter = Buffer.GetIterAtMark(at);
 			insertIter.BackwardChars (insertIter.LineOffset); // go to beginning of the line
@@ -136,7 +136,7 @@
 		/// A <see cref="Gtk.TextIter"/> marking the beginning of the textual description
 		/// of this task in the NoteBuffer.
 		/// </returns>
-		Gtk.TextIter GetDescriptionStart()
+		public Gtk.TextIter GetDescriptionStart ()
 		{
 			var start = Buffer.GetIterAtMark (Position);
 			while ((start.LineIndex < start.BytesInLine) && !start.InsideWord ()) {
@@ -150,7 +150,7 @@
 		/// A <see cref="Gtk.TextIter"/> marking the end of the textual descriptin of this
 		/// task in the NoteBuffer.
 		/// </returns>
-		Gtk.TextIter GetDescriptionEnd () {
+		public Gtk.TextIter GetDescriptionEnd () {
 			var start = GetDescriptionStart ();

 			var endIter = Buffer.GetIterAtLine (start.Line);
@@ -163,7 +163,7 @@
 		/// Updates the strikethrough tags of the task description. If the checkbox is
 		/// active or removes it if it's not.
 		/// </summary>
-		void StrikeThroughUpdate ()
+		private void StrikeThroughUpdate ()
 		{
 			var start = GetDescriptionStart ();
 			var end = GetDescriptionEnd ();
@@ -182,12 +182,12 @@
 		/// Called when the buffer is changed. Currently this watches for changes in the Task
 		/// description and updates the strikethrough task.
 		/// </summary>
-		void BufferChanged(object sender, EventArgs e)
+		private void BufferChanged (object sender, EventArgs e)
 		{
 			Debug.Assert(Buffer == sender); // no other buffer should be registred here
 			int line = Buffer.GetIterAtMark(Buffer.InsertMark).Line;

-			// update strikethrough
+			// update strikethrough when task line was edited
 			if(line == Buffer.GetIterAtMark(Position).Line) {
 				StrikeThroughUpdate ();
 			}
@@ -198,7 +198,7 @@
 		/// Signal when checkbutton for the task was clicked.
 		/// This function is responsible for updating strikethrough functionality.
 		/// </summary>
-		void ToggleCheckBox (object sender, EventArgs e)
+		private void ToggleCheckBox (object sender, EventArgs e)
 		{
 			Debug.Assert (CheckBox == sender); // no other checkbox should be registred here
 			StrikeThroughUpdate ();


whitespace

whitespace

--- NLog/src/NLog/LayoutAppenders/BaseDir.cs
+++ NLog/src/NLog/LayoutAppenders/BaseDir.cs
@@ -50,7 +50,7 @@
             get { return _fileName; }
             set { _fileName = value; }
         }
-
+
         public string Dir
         {
             get { return _directoryName; }
@@ -60,7 +60,7 @@
         {
             return 32;
         }
-
+
         public override void Append(StringBuilder builder, LogEventInfo ev)
         {
             string baseDir = AppDomain.CurrentDomain.BaseDirectory;


fixed goofy old namespace

fixed goofy old namespace

--- NSpecSpecs/describe_ContextCollection.cs
+++ NSpecSpecs/describe_ContextCollection.cs
@@ -3,9 +3,8 @@
 using NSpec;
 using NSpec.Domain;
 using NUnit.Framework;
-using System.Linq.Expressions;

-namespace NSpecNUnit
+namespace NSpecSpecs
 {
     [TestFixture]
     [Category("ContextCollection")]


Added ObjectCache initialization

Added ObjectCache initialization

--- NemoSolution/Nemo/Caching/ObjectCache.cs
+++ NemoSolution/Nemo/Caching/ObjectCache.cs
@@ -29,15 +29,17 @@

         private static Lazy<IRevisionProvider> _revisionCache = new Lazy<IRevisionProvider>(() => (IRevisionProvider)CacheFactory.GetProvider(ConfigurationFactory.Configuration.TrackingCacheProvider), true);

-        private static ConcurrentDictionary<string, ulong> _revisions = null;
-
-        public static void Initialize()
+        private static ConcurrentDictionary<string, ulong> _revisions = new ConcurrentDictionary<string,ulong>();
+
+        static ObjectCache()
         {
             if (!_revisionCache.IsValueCreated && _revisionCache.Value != null)
             {
                 _revisions = new ConcurrentDictionary<string,ulong>(_revisionCache.Value.GetAllRevisions());
             }
         }
+
+        public static void Initialize() { }

         #region Helper Methods


Fix FarseerPhysics not compiling in release mode

--- Nez.FarseerPhysics/Nez/Common/FSWorld.cs
+++ Nez.FarseerPhysics/Nez/Common/FSWorld.cs
@@ -85,9 +85,13 @@
 				}
 			}

+			#if DEBUG
 			TimeRuler.instance.beginMark( "physics", Color.Blue );
+			#endif
 			world.step( MathHelper.Min( Time.deltaTime, minimumUpdateDeltaTime ) );
+			#if DEBUG
 			TimeRuler.instance.endMark( "physics" );
+			#endif
 		}

 		#endregion


batcher performance booster

batcher performance booster

--- Nez.Portable/Graphics/Batcher/Batcher.cs
+++ Nez.Portable/Graphics/Batcher/Batcher.cs
@@ -80,7 +80,6 @@
 		static readonly short[] _indexData = GenerateIndexArray();

 		#endregion
-

 		public Batcher(GraphicsDevice graphicsDevice)
 		{
@@ -119,7 +118,6 @@
 			);
 		}

-
 		protected override void Dispose(bool disposing)
 		{
 			if (!IsDisposed && disposing)
@@ -131,7 +129,6 @@

 			base.Dispose(disposing);
 		}
-

 		/// <summary>
 		/// sets if position rounding should be ignored. Useful when you are drawing primitives for debugging.
@@ -142,7 +139,6 @@
 			_shouldIgnoreRoundingDestinations = shouldIgnore;
 		}

-
 		#region Public begin/end methods

 		public void Begin()
@@ -151,41 +147,35 @@
 				RasterizerState.CullCounterClockwise, null, Matrix.Identity, false);
 		}

-
 		public void Begin(Effect effect)
 		{
 			Begin(BlendState.AlphaBlend, Core.DefaultSamplerState, DepthStencilState.None,
 				RasterizerState.CullCounterClockwise, effect, Matrix.Identity, false);
 		}

-
 		public void Begin(Material material)
 		{
 			Begin(material.BlendState, material.SamplerState, material.DepthStencilState,
 				RasterizerState.CullCounterClockwise, material.Effect);
 		}

-
 		public void Begin(Matrix transformationMatrix)
 		{
 			Begin(BlendState.AlphaBlend, Core.DefaultSamplerState, DepthStencilState.None,
 				RasterizerState.CullCounterClockwise, null, transformationMatrix, false);
 		}

-
 		public void Begin(BlendState blendState)
 		{
 			Begin(blendState, Core.DefaultSamplerState, DepthStencilState.None, RasterizerState.CullCounterClockwise,
 				null, Matrix.Identity, false);
 		}

-
 		public void Begin(Material material, Matrix transformationMatrix)
 		{
 			Begin(material.BlendState, material.SamplerState, material.DepthStencilState,
 				RasterizerState.CullCounterClockwise, material.Effect, transformationMatrix, false);
 		}
-

 		public void Begin(BlendState blendState, SamplerState samplerState, DepthStencilState depthStencilState,
 		                  RasterizerState rasterizerState)
@@ -201,7 +191,6 @@
 			);
 		}

-
 		public void Begin(BlendState blendState, SamplerState samplerState, DepthStencilState depthStencilState,
 		                  RasterizerState rasterizerState, Effect effect)
 		{
@@ -216,7 +205,6 @@
 			);
 		}

-
 		public void Begin(BlendState blendState, SamplerState samplerState, DepthStencilState depthStencilState,
 		                  RasterizerState rasterizerState,
 		                  Effect effect, Matrix transformationMatrix)
@@ -232,7 +220,6 @@
 			);
 		}

-
 		public void Begin(BlendState blendState, SamplerState samplerState, DepthStencilState depthStencilState,
 		                  RasterizerState rasterizerState,
 		                  Effect effect, Matrix transformationMatrix, bool disableBatching)
@@ -254,7 +241,6 @@
 				PrepRenderState();
 		}

-
 		public void End()
 		{
 			Insist.IsTrue(_beginCalled,
@@ -269,7 +255,6 @@

 		#endregion

-
 		#region Public draw methods

 		public void Draw(Texture2D texture, Vector2 position)
@@ -279,14 +264,12 @@
 				Color.White, Vector2.Zero, 0.0f, 0.0f, 0, false, 0, 0, 0, 0);
 		}

-
 		public void Draw(Texture2D texture, Vector2 position, Color color)
 		{
 			CheckBegin();
 			PushSprite(texture, null, position.X, position.Y, 1.0f, 1.0f,
 				color, Vector2.Zero, 0.0f, 0.0f, 0, false, 0, 0, 0, 0);
 		}
-

 		public void Draw(Texture2D texture, Rectangle destinationRectangle)
 		{
@@ -296,7 +279,6 @@
 				Color.White, Vector2.Zero, 0.0f, 0.0f, 0, true, 0, 0, 0, 0);
 		}

-
 		public void Draw(Texture2D texture, Rectangle destinationRectangle, Color color)
 		{
 			CheckBegin();
@@ -314,7 +296,6 @@
 				color, Vector2.Zero, 0.0f, 0.0f, 0, true, 0, 0, 0, 0);
 		}

-
 		public void Draw(Texture2D texture, Rectangle destinationRectangle, Rectangle? sourceRectangle, Color color,
 		                 SpriteEffects effects)
 		{
@@ -323,7 +304,6 @@
 				destinationRectangle.Width, destinationRectangle.Height,
 				color, Vector2.Zero, 0.0f, 0.0f, (byte) (effects & (SpriteEffects) 0x03), true, 0, 0, 0, 0);
 		}
-

 		public void Draw(
 			Texture2D texture,
@@ -354,7 +334,6 @@
 			);
 		}

-
 		public void Draw(Texture2D texture, Vector2 position, Rectangle? sourceRectangle, Color color)
 		{
 			CheckBegin();
@@ -375,7 +354,6 @@
 			);
 		}

-
 		public void Draw(
 			Texture2D texture,
 			Vector2 position,
@@ -406,7 +384,6 @@
 			);
 		}

-
 		public void Draw(
 			Sprite sprite,
 			Vector2 position,
@@ -433,7 +410,6 @@
 				0, 0, 0, 0
 			);
 		}
-

 		public void Draw(
 			Texture2D texture,
@@ -465,7 +441,6 @@
 			);
 		}

-
 		public void Draw(
 			Sprite sprite,
 			Vector2 position,
@@ -492,7 +467,6 @@
 				0, 0, 0, 0
 			);
 		}
-

 		public void Draw(
 			Texture2D texture,
@@ -525,7 +499,6 @@
 			);
 		}

-
 		public void Draw(
 			Texture2D texture,
 			Rectangle destinationRectangle,
@@ -555,7 +528,6 @@
 			);
 		}

-
 		/// <summary>
 		/// direct access to setting vert positions, UVs and colors. The order of elements is top-left, top-right, bottom-left, bottom-right
 		/// </summary>
@@ -564,7 +536,7 @@
 		/// <param name="verts">Verts.</param>
 		/// <param name="textureCoords">Texture coords.</param>
 		/// <param name="colors">Colors.</param>
-		public void DrawRaw(Texture2D texture, Vector3[] verts, Vector2[] textureCoords, Color[] colors)
+		public unsafe void DrawRaw(Texture2D texture, Vector3[] verts, Vector2[] textureCoords, Color[] colors)
 		{
 			Insist.IsTrue(verts.Length == 4, "there must be only 4 verts");
 			Insist.IsTrue(textureCoords.Length == 4, "there must be only 4 texture coordinates");
@@ -574,25 +546,27 @@
 			if (_numSprites >= MAX_SPRITES)
 				FlushBatch();

-			_vertexInfo[_numSprites].Position0 = verts[0];
-			_vertexInfo[_numSprites].Position1 = verts[1];
-			_vertexInfo[_numSprites].Position2 = verts[2];
-			_vertexInfo[_numSprites].Position3 = verts[3];
-
-			_vertexInfo[_numSprites].TextureCoordinate0 = textureCoords[0];
-			_vertexInfo[_numSprites].TextureCoordinate1 = textureCoords[1];
-			_vertexInfo[_numSprites].TextureCoordinate2 = textureCoords[2];
-			_vertexInfo[_numSprites].TextureCoordinate3 = textureCoords[3];
-
-			_vertexInfo[_numSprites].Color0 = colors[0];
-			_vertexInfo[_numSprites].Color1 = colors[1];
-			_vertexInfo[_numSprites].Color2 = colors[2];
-			_vertexInfo[_numSprites].Color3 = colors[3];
+			fixed (VertexPositionColorTexture4* vertexInfo = &_vertexInfo[_numSprites])
+			{
+				vertexInfo->Position0 = verts[0];
+				vertexInfo->Position1 = verts[1];
+				vertexInfo->Position2 = verts[2];
+				vertexInfo->Position3 = verts[3];
+
+				vertexInfo->TextureCoordinate0 = textureCoords[0];
+				vertexInfo->TextureCoordinate1 = textureCoords[1];
+				vertexInfo->TextureCoordinate2 = textureCoords[2];
+				vertexInfo->TextureCoordinate3 = textureCoords[3];
+
+				vertexInfo->Color0 = colors[0];
+				vertexInfo->Color1 = colors[1];
+				vertexInfo->Color2 = colors[2];
+				vertexInfo->Color3 = colors[3];
+			}

 			if (_disableBatching)
 			{
-				_vertexBuffer.SetData(0, _vertexInfo, 0, 1, VertexPositionColorTexture4.RealStride,
-					SetDataOptions.None);
+				_vertexBuffer.SetData(0, _vertexInfo, 0, 1, VertexPositionColorTexture4.RealStride, SetDataOptions.None);
 				DrawPrimitives(texture, 0, 1);
 			}
 			else
@@ -601,7 +575,6 @@
 				_numSprites += 1;
 			}
 		}
-

 		/// <summary>
 		/// direct access to setting vert positions, UVs and colors. The order of elements is top-left, top-right, bottom-left, bottom-right
@@ -611,7 +584,7 @@
 		/// <param name="verts">Verts.</param>
 		/// <param name="textureCoords">Texture coords.</param>
 		/// <param name="color">Color.</param>
-		public void DrawRaw(Texture2D texture, Vector3[] verts, Vector2[] textureCoords, Color color)
+		public unsafe void DrawRaw(Texture2D texture, Vector3[] verts, Vector2[] textureCoords, Color color)
 		{
 			Insist.IsTrue(verts.Length == 4, "there must be only 4 verts");
 			Insist.IsTrue(textureCoords.Length == 4, "there must be only 4 texture coordinates");
@@ -620,20 +593,23 @@
 			if (_numSprites >= MAX_SPRITES)
 				FlushBatch();

-			_vertexInfo[_numSprites].Position0 = verts[0];
-			_vertexInfo[_numSprites].Position1 = verts[1];
-			_vertexInfo[_numSprites].Position2 = verts[2];
-			_vertexInfo[_numSprites].Position3 = verts[3];
-
-			_vertexInfo[_numSprites].TextureCoordinate0 = textureCoords[0];
-			_vertexInfo[_numSprites].TextureCoordinate1 = textureCoords[1];
-			_vertexInfo[_numSprites].TextureCoordinate2 = textureCoords[2];
-			_vertexInfo[_numSprites].TextureCoordinate3 = textureCoords[3];
-
-			_vertexInfo[_numSprites].Color0 = color;
-			_vertexInfo[_numSprites].Color1 = color;
-			_vertexInfo[_numSprites].Color2 = color;
-			_vertexInfo[_numSprites].Color3 = color;
+			fixed (VertexPositionColorTexture4* vertexInfo = &_vertexInfo[_numSprites])
+			{
+				vertexInfo->Position0 = verts[0];
+				vertexInfo->Position1 = verts[1];
+				vertexInfo->Position2 = verts[2];
+				vertexInfo->Position3 = verts[3];
+
+				vertexInfo->TextureCoordinate0 = textureCoords[0];
+				vertexInfo->TextureCoordinate1 = textureCoords[1];
+				vertexInfo->TextureCoordinate2 = textureCoords[2];
+				vertexInfo->TextureCoordinate3 = textureCoords[3];
+
+				vertexInfo->Color0 = color;
+				vertexInfo->Color1 = color;
+				vertexInfo->Color2 = color;
+				vertexInfo->Color3 = color;
+			}

 			if (_disableBatching)
 			{
@@ -655,10 +631,8 @@
 		public void DrawString(SpriteFont spriteFont, string text, Vector2 position, Color color, float rotation,
 		                       Vector2 origin, Vector2 scale, SpriteEffects effects, float layerDepth)
 		{
-			throw new NotImplementedException(
-				"SpriteFont is too locked down to use directly. Wrap it in a NezSpriteFont");
-		}
-
+			throw new NotImplementedException("SpriteFont is too locked down to use directly. Wrap it in a NezSpriteFont");
+		}

 		static short[] GenerateIndexArray()
 		{
@@ -683,7 +657,7 @@
 		/// the meat of the Batcher. This is where it all goes down
 		/// </summary>
 		[MethodImpl(MethodImplOptions.AggressiveInlining)]
-		void PushSprite(Texture2D texture, Rectangle? sourceRectangle, float destinationX, float destinationY,
+		unsafe void PushSprite(Texture2D texture, Rectangle? sourceRectangle, float destinationX, float destinationY,
 		                float destinationW, float destinationH, Color color, Vector2 origin,
 		                float rotation, float depth, byte effects, bool destSizeInPixels, float skewTopX,
 		                float skewBottomX, float skewLeftY, float skewRightY)
@@ -769,84 +743,86 @@
 				skewRightY *= -1;
 			}

-			// calculate vertices
-			// top-left
-			var cornerX = (_cornerOffsetX[0] - originX) * destinationW + skewTopX;
-			var cornerY = (_cornerOffsetY[0] - originY) * destinationH - skewLeftY;
-			_vertexInfo[_numSprites].Position0.X = (
-				(rotationMatrix2X * cornerY) +
-				(rotationMatrix1X * cornerX) +
-				destinationX
-			);
-			_vertexInfo[_numSprites].Position0.Y = (
-				(rotationMatrix2Y * cornerY) +
-				(rotationMatrix1Y * cornerX) +
-				destinationY
-			);
-
-			// top-right
-			cornerX = (_cornerOffsetX[1] - originX) * destinationW + skewTopX;
-			cornerY = (_cornerOffsetY[1] - originY) * destinationH - skewRightY;
-			_vertexInfo[_numSprites].Position1.X = (
-				(rotationMatrix2X * cornerY) +
-				(rotationMatrix1X * cornerX) +
-				destinationX
-			);
-			_vertexInfo[_numSprites].Position1.Y = (
-				(rotationMatrix2Y * cornerY) +
-				(rotationMatrix1Y * cornerX) +
-				destinationY
-			);
-
-			// bottom-left
-			cornerX = (_cornerOffsetX[2] - originX) * destinationW + skewBottomX;
-			cornerY = (_cornerOffsetY[2] - originY) * destinationH - skewLeftY;
-			_vertexInfo[_numSprites].Position2.X = (
-				(rotationMatrix2X * cornerY) +
-				(rotationMatrix1X * cornerX) +
-				destinationX
-			);
-			_vertexInfo[_numSprites].Position2.Y = (
-				(rotationMatrix2Y * cornerY) +
-				(rotationMatrix1Y * cornerX) +
-				destinationY
-			);
-
-			// bottom-right
-			cornerX = (_cornerOffsetX[3] - originX) * destinationW + skewBottomX;
-			cornerY = (_cornerOffsetY[3] - originY) * destinationH - skewRightY;
-			_vertexInfo[_numSprites].Position3.X = (
-				(rotationMatrix2X * cornerY) +
-				(rotationMatrix1X * cornerX) +
-				destinationX
-			);
-			_vertexInfo[_numSprites].Position3.Y = (
-				(rotationMatrix2Y * cornerY) +
-				(rotationMatrix1Y * cornerX) +
-				destinationY
-			);
-
-			_vertexInfo[_numSprites].TextureCoordinate0.X = (_cornerOffsetX[0 ^ effects] * sourceW) + sourceX;
-			_vertexInfo[_numSprites].TextureCoordinate0.Y = (_cornerOffsetY[0 ^ effects] * sourceH) + sourceY;
-			_vertexInfo[_numSprites].TextureCoordinate1.X = (_cornerOffsetX[1 ^ effects] * sourceW) + sourceX;
-			_vertexInfo[_numSprites].TextureCoordinate1.Y = (_cornerOffsetY[1 ^ effects] * sourceH) + sourceY;
-			_vertexInfo[_numSprites].TextureCoordinate2.X = (_cornerOffsetX[2 ^ effects] * sourceW) + sourceX;
-			_vertexInfo[_numSprites].TextureCoordinate2.Y = (_cornerOffsetY[2 ^ effects] * sourceH) + sourceY;
-			_vertexInfo[_numSprites].TextureCoordinate3.X = (_cornerOffsetX[3 ^ effects] * sourceW) + sourceX;
-			_vertexInfo[_numSprites].TextureCoordinate3.Y = (_cornerOffsetY[3 ^ effects] * sourceH) + sourceY;
-			_vertexInfo[_numSprites].Position0.Z = depth;
-			_vertexInfo[_numSprites].Position1.Z = depth;
-			_vertexInfo[_numSprites].Position2.Z = depth;
-			_vertexInfo[_numSprites].Position3.Z = depth;
-			_vertexInfo[_numSprites].Color0 = color;
-			_vertexInfo[_numSprites].Color1 = color;
-			_vertexInfo[_numSprites].Color2 = color;
-			_vertexInfo[_numSprites].Color3 = color;
+			fixed (VertexPositionColorTexture4* vertexInfo = &_vertexInfo[_numSprites])
+			{
+				// calculate vertices
+				// top-left
+				var cornerX = (_cornerOffsetX[0] - originX) * destinationW + skewTopX;
+				var cornerY = (_cornerOffsetY[0] - originY) * destinationH - skewLeftY;
+				vertexInfo->Position0.X = (
+					(rotationMatrix2X * cornerY) +
+					(rotationMatrix1X * cornerX) +
+					destinationX
+				);
+				vertexInfo->Position0.Y = (
+					(rotationMatrix2Y * cornerY) +
+					(rotationMatrix1Y * cornerX) +
+					destinationY
+				);
+
+				// top-right
+				cornerX = (_cornerOffsetX[1] - originX) * destinationW + skewTopX;
+				cornerY = (_cornerOffsetY[1] - originY) * destinationH - skewRightY;
+				vertexInfo->Position1.X = (
+					(rotationMatrix2X * cornerY) +
+					(rotationMatrix1X * cornerX) +
+					destinationX
+				);
+				vertexInfo->Position1.Y = (
+					(rotationMatrix2Y * cornerY) +
+					(rotationMatrix1Y * cornerX) +
+					destinationY
+				);
+
+				// bottom-left
+				cornerX = (_cornerOffsetX[2] - originX) * destinationW + skewBottomX;
+				cornerY = (_cornerOffsetY[2] - originY) * destinationH - skewLeftY;
+				vertexInfo->Position2.X = (
+					(rotationMatrix2X * cornerY) +
+					(rotationMatrix1X * cornerX) +
+					destinationX
+				);
+				vertexInfo->Position2.Y = (
+					(rotationMatrix2Y * cornerY) +
+					(rotationMatrix1Y * cornerX) +
+					destinationY
+				);
+
+				// bottom-right
+				cornerX = (_cornerOffsetX[3] - originX) * destinationW + skewBottomX;
+				cornerY = (_cornerOffsetY[3] - originY) * destinationH - skewRightY;
+				vertexInfo->Position3.X = (
+					(rotationMatrix2X * cornerY) +
+					(rotationMatrix1X * cornerX) +
+					destinationX
+				);
+				vertexInfo->Position3.Y = (
+					(rotationMatrix2Y * cornerY) +
+					(rotationMatrix1Y * cornerX) +
+					destinationY
+				);
+
+				vertexInfo->TextureCoordinate0.X = (_cornerOffsetX[0 ^ effects] * sourceW) + sourceX;
+				vertexInfo->TextureCoordinate0.Y = (_cornerOffsetY[0 ^ effects] * sourceH) + sourceY;
+				vertexInfo->TextureCoordinate1.X = (_cornerOffsetX[1 ^ effects] * sourceW) + sourceX;
+				vertexInfo->TextureCoordinate1.Y = (_cornerOffsetY[1 ^ effects] * sourceH) + sourceY;
+				vertexInfo->TextureCoordinate2.X = (_cornerOffsetX[2 ^ effects] * sourceW) + sourceX;
+				vertexInfo->TextureCoordinate2.Y = (_cornerOffsetY[2 ^ effects] * sourceH) + sourceY;
+				vertexInfo->TextureCoordinate3.X = (_cornerOffsetX[3 ^ effects] * sourceW) + sourceX;
+				vertexInfo->TextureCoordinate3.Y = (_cornerOffsetY[3 ^ effects] * sourceH) + sourceY;
+				vertexInfo->Position0.Z = depth;
+				vertexInfo->Position1.Z = depth;
+				vertexInfo->Position2.Z = depth;
+				vertexInfo->Position3.Z = depth;
+				vertexInfo->Color0 = color;
+				vertexInfo->Color1 = color;
+				vertexInfo->Color2 = color;
+				vertexInfo->Color3 = color;
+			}

 			if (_disableBatching)
 			{
-				_vertexBuffer.SetData(0, _vertexInfo, 0, 1, VertexPositionColorTexture4.RealStride,
-					SetDataOptions.None);
+				_vertexBuffer.SetData(0, _vertexInfo, 0, 1, VertexPositionColorTexture4.RealStride, SetDataOptions.None);
 				DrawPrimitives(texture, 0, 1);
 			}
 			else
@@ -855,13 +831,12 @@
 				_numSprites += 1;
 			}
 		}
-

 		/// <summary>
 		/// Sprite alternative to the old SpriteBatch pushSprite
 		/// </summary>
 		[MethodImpl(MethodImplOptions.AggressiveInlining)]
-		void PushSprite(Sprite sprite, float destinationX, float destinationY, float destinationW,
+		unsafe void PushSprite(Sprite sprite, float destinationX, float destinationY, float destinationW,
 		                float destinationH, Color color, Vector2 origin,
 		                float rotation, float depth, byte effects, float skewTopX, float skewBottomX, float skewLeftY,
 		                float skewRightY)
@@ -908,92 +883,94 @@
 				skewRightY *= -1;
 			}

-			// calculate vertices
-			// top-left
-			var cornerX = (_cornerOffsetX[0] - originX) * destinationW + skewTopX;
-			var cornerY = (_cornerOffsetY[0] - originY) * destinationH - skewLeftY;
-			_vertexInfo[_numSprites].Position0.X = (
-				(rotationMatrix2X * cornerY) +
-				(rotationMatrix1X * cornerX) +
-				destinationX
-			);
-			_vertexInfo[_numSprites].Position0.Y = (
-				(rotationMatrix2Y * cornerY) +
-				(rotationMatrix1Y * cornerX) +
-				destinationY
-			);
-
-			// top-right
-			cornerX = (_cornerOffsetX[1] - originX) * destinationW + skewTopX;
-			cornerY = (_cornerOffsetY[1] - originY) * destinationH - skewRightY;
-			_vertexInfo[_numSprites].Position1.X = (
-				(rotationMatrix2X * cornerY) +
-				(rotationMatrix1X * cornerX) +
-				destinationX
-			);
-			_vertexInfo[_numSprites].Position1.Y = (
-				(rotationMatrix2Y * cornerY) +
-				(rotationMatrix1Y * cornerX) +
-				destinationY
-			);
-
-			// bottom-left
-			cornerX = (_cornerOffsetX[2] - originX) * destinationW + skewBottomX;
-			cornerY = (_cornerOffsetY[2] - originY) * destinationH - skewLeftY;
-			_vertexInfo[_numSprites].Position2.X = (
-				(rotationMatrix2X * cornerY) +
-				(rotationMatrix1X * cornerX) +
-				destinationX
-			);
-			_vertexInfo[_numSprites].Position2.Y = (
-				(rotationMatrix2Y * cornerY) +
-				(rotationMatrix1Y * cornerX) +
-				destinationY
-			);
-
-			// bottom-right
-			cornerX = (_cornerOffsetX[3] - originX) * destinationW + skewBottomX;
-			cornerY = (_cornerOffsetY[3] - originY) * destinationH - skewRightY;
-			_vertexInfo[_numSprites].Position3.X = (
-				(rotationMatrix2X * cornerY) +
-				(rotationMatrix1X * cornerX) +
-				destinationX
-			);
-			_vertexInfo[_numSprites].Position3.Y = (
-				(rotationMatrix2Y * cornerY) +
-				(rotationMatrix1Y * cornerX) +
-				destinationY
-			);
-
-			_vertexInfo[_numSprites].TextureCoordinate0.X =
-				(_cornerOffsetX[0 ^ effects] * sprite.Uvs.Width) + sprite.Uvs.X;
-			_vertexInfo[_numSprites].TextureCoordinate0.Y =
-				(_cornerOffsetY[0 ^ effects] * sprite.Uvs.Height) + sprite.Uvs.Y;
-			_vertexInfo[_numSprites].TextureCoordinate1.X =
-				(_cornerOffsetX[1 ^ effects] * sprite.Uvs.Width) + sprite.Uvs.X;
-			_vertexInfo[_numSprites].TextureCoordinate1.Y =
-				(_cornerOffsetY[1 ^ effects] * sprite.Uvs.Height) + sprite.Uvs.Y;
-			_vertexInfo[_numSprites].TextureCoordinate2.X =
-				(_cornerOffsetX[2 ^ effects] * sprite.Uvs.Width) + sprite.Uvs.X;
-			_vertexInfo[_numSprites].TextureCoordinate2.Y =
-				(_cornerOffsetY[2 ^ effects] * sprite.Uvs.Height) + sprite.Uvs.Y;
-			_vertexInfo[_numSprites].TextureCoordinate3.X =
-				(_cornerOffsetX[3 ^ effects] * sprite.Uvs.Width) + sprite.Uvs.X;
-			_vertexInfo[_numSprites].TextureCoordinate3.Y =
-				(_cornerOffsetY[3 ^ effects] * sprite.Uvs.Height) + sprite.Uvs.Y;
-			_vertexInfo[_numSprites].Position0.Z = depth;
-			_vertexInfo[_numSprites].Position1.Z = depth;
-			_vertexInfo[_numSprites].Position2.Z = depth;
-			_vertexInfo[_numSprites].Position3.Z = depth;
-			_vertexInfo[_numSprites].Color0 = color;
-			_vertexInfo[_numSprites].Color1 = color;
-			_vertexInfo[_numSprites].Color2 = color;
-			_vertexInfo[_numSprites].Color3 = color;
+			fixed (VertexPositionColorTexture4* vertexInfo = &_vertexInfo[_numSprites])
+			{
+				// calculate vertices
+				// top-left
+				var cornerX = (_cornerOffsetX[0] - originX) * destinationW + skewTopX;
+				var cornerY = (_cornerOffsetY[0] - originY) * destinationH - skewLeftY;
+				vertexInfo->Position0.X = (
+					(rotationMatrix2X * cornerY) +
+					(rotationMatrix1X * cornerX) +
+					destinationX
+				);
+				vertexInfo->Position0.Y = (
+					(rotationMatrix2Y * cornerY) +
+					(rotationMatrix1Y * cornerX) +
+					destinationY
+				);
+
+				// top-right
+				cornerX = (_cornerOffsetX[1] - originX) * destinationW + skewTopX;
+				cornerY = (_cornerOffsetY[1] - originY) * destinationH - skewRightY;
+				vertexInfo->Position1.X = (
+					(rotationMatrix2X * cornerY) +
+					(rotationMatrix1X * cornerX) +
+					destinationX
+				);
+				vertexInfo->Position1.Y = (
+					(rotationMatrix2Y * cornerY) +
+					(rotationMatrix1Y * cornerX) +
+					destinationY
+				);
+
+				// bottom-left
+				cornerX = (_cornerOffsetX[2] - originX) * destinationW + skewBottomX;
+				cornerY = (_cornerOffsetY[2] - originY) * destinationH - skewLeftY;
+				vertexInfo->Position2.X = (
+					(rotationMatrix2X * cornerY) +
+					(rotationMatrix1X * cornerX) +
+					destinationX
+				);
+				vertexInfo->Position2.Y = (
+					(rotationMatrix2Y * cornerY) +
+					(rotationMatrix1Y * cornerX) +
+					destinationY
+				);
+
+				// bottom-right
+				cornerX = (_cornerOffsetX[3] - originX) * destinationW + skewBottomX;
+				cornerY = (_cornerOffsetY[3] - originY) * destinationH - skewRightY;
+				vertexInfo->Position3.X = (
+					(rotationMatrix2X * cornerY) +
+					(rotationMatrix1X * cornerX) +
+					destinationX
+				);
+				vertexInfo->Position3.Y = (
+					(rotationMatrix2Y * cornerY) +
+					(rotationMatrix1Y * cornerX) +
+					destinationY
+				);
+
+				vertexInfo->TextureCoordinate0.X =
+					(_cornerOffsetX[0 ^ effects] * sprite.Uvs.Width) + sprite.Uvs.X;
+				vertexInfo->TextureCoordinate0.Y =
+					(_cornerOffsetY[0 ^ effects] * sprite.Uvs.Height) + sprite.Uvs.Y;
+				vertexInfo->TextureCoordinate1.X =
+					(_cornerOffsetX[1 ^ effects] * sprite.Uvs.Width) + sprite.Uvs.X;
+				vertexInfo->TextureCoordinate1.Y =
+					(_cornerOffsetY[1 ^ effects] * sprite.Uvs.Height) + sprite.Uvs.Y;
+				vertexInfo->TextureCoordinate2.X =
+					(_cornerOffsetX[2 ^ effects] * sprite.Uvs.Width) + sprite.Uvs.X;
+				vertexInfo->TextureCoordinate2.Y =
+					(_cornerOffsetY[2 ^ effects] * sprite.Uvs.Height) + sprite.Uvs.Y;
+				vertexInfo->TextureCoordinate3.X =
+					(_cornerOffsetX[3 ^ effects] * sprite.Uvs.Width) + sprite.Uvs.X;
+				vertexInfo->TextureCoordinate3.Y =
+					(_cornerOffsetY[3 ^ effects] * sprite.Uvs.Height) + sprite.Uvs.Y;
+				vertexInfo->Position0.Z = depth;
+				vertexInfo->Position1.Z = depth;
+				vertexInfo->Position2.Z = depth;
+				vertexInfo->Position3.Z = depth;
+				vertexInfo->Color0 = color;
+				vertexInfo->Color1 = color;
+				vertexInfo->Color2 = color;
+				vertexInfo->Color3 = color;
+			}

 			if (_disableBatching)
 			{
-				_vertexBuffer.SetData(0, _vertexInfo, 0, 1, VertexPositionColorTexture4.RealStride,
-					SetDataOptions.None);
+				_vertexBuffer.SetData(0, _vertexInfo, 0, 1, VertexPositionColorTexture4.RealStride, SetDataOptions.None);
 				DrawPrimitives(sprite, 0, 1);
 			}
 			else
@@ -1003,8 +980,7 @@
 			}
 		}

-
-		public void FlushBatch()
+		public unsafe void FlushBatch()
 		{
 			if (_numSprites == 0)
 				return;
@@ -1014,8 +990,14 @@

 			PrepRenderState();

-			_vertexBuffer.SetData(0, _vertexInfo, 0, _numSprites, VertexPositionColorTexture4.RealStride,
-				SetDataOptions.None);
+			#if FNA
+			fixed (VertexPositionColorTexture4* p = &_vertexInfo[0])
+			{
+				_vertexBuffer.SetDataPointerEXT(0, (IntPtr)p, _numSprites * VertexPositionColorTexture4.RealStride, SetDataOptions.Discard);
+			}
+			#else
+			_vertexBuffer.SetData(0, _vertexInfo, 0, _numSprites, VertexPositionColorTexture4.RealStride, SetDataOptions.Discard);
+			#endif

 			curTexture = _textureInfo[0];
 			for (var i = 1; i < _numSprites; i += 1)
@@ -1032,7 +1014,6 @@

 			_numSprites = 0;
 		}
-

 		/// <summary>
 		/// enables/disables scissor testing. If the RasterizerState changes it will cause a batch flush.
@@ -1057,7 +1038,6 @@
 				ScissorTestEnable = shouldEnable
 			};
 		}
-

 		void PrepRenderState()
 		{
@@ -1090,7 +1070,6 @@
 			_spriteEffectPass.Apply();
 		}

-
 		void DrawPrimitives(Texture texture, int baseSprite, int batchSize)
 		{
 			if (_customEffect != null)
@@ -1098,8 +1077,6 @@
 				foreach (var pass in _customEffect.CurrentTechnique.Passes)
 				{
 					pass.Apply();
-
-					// Whatever happens in pass.Apply, make sure the texture being drawn ends up in Textures[0].
 					GraphicsDevice.Textures[0] = texture;
 					GraphicsDevice.DrawIndexedPrimitives(PrimitiveType.TriangleList, baseSprite * 4, 0, batchSize * 2);
 				}
@@ -1111,13 +1088,11 @@
 			}
 		}

-
 		[System.Diagnostics.Conditional("DEBUG")]
 		void CheckBegin()
 		{
 			if (!_beginCalled)
-				throw new InvalidOperationException(
-					"Begin has not been called. Begin must be called before you can draw");
+				throw new InvalidOperationException("Begin has not been called. Begin must be called before you can draw");
 		}

 		#endregion