["..E$ ","A+BBCAfBAa[CE|F9856}#CCE.BCCP985}(CECP9856}X","Recursive file list."," Directories are often nested. Sometimes we need a list of files in a folder and those in each subdirectory. The .NET Framework allows a SearchOption.AllDirectories argument to the Directory.GetFiles and EnumerateFiles methods.","GetFiles."," In this first example, we show a program that gets a string array of all the files at a certain level of the file system. It also covers all sublevels. Then, it loops through the result and prints the file paths. ","You can see that the first level files in the specified directory are printed, and then all subdirectory files as well.","Arrays ","array"," .NET 4.7 (2017)\n\n","C# program that lists files recursively","\n\nusing System;\nusing System.IO;\n\nclass Program\n{\n static void Main()\n {","\n // Get list of files in the specific directory.\n // ... Please change the first argument.\n ","string[] files = ","Directory.GetFiles","(","\"C:\\\\PerlsComStage\\\\\"",",\n ","\"*.*\"",",\n ","SearchOption.AllDirectories",");","\n\n // Display all the files.\n ","foreach (string file in files)\n {\n Console.WriteLine(file);\n }\n }\n}\n\n","\n\nC:\\PerlsComStage\\Default.aspx\nC:\\PerlsComStage\\Global.asax\nC:\\PerlsComStage\\Web.config\nC:\\PerlsComStage\\bin\\PerlsComWebProject1.dll\nC:\\PerlsComStage\\bin\\PerlsComWebProject1.pdb","The first argument"," to Directory.GetFiles is the starting path. You must escape the backslashes in Windows paths. We use the double-backslash sequence to do this. The second argument is the universal pattern for file names. ","If you change the asterisks to a string, you can actually filter your files.","The third argument is the enumerated constant SearchOption.AllDirectories, which indicates you want a recursive file search.","Enum ","enum","List."," We convert the array returned by Directory.GetFiles to a List instance. Then we pass the List instance to another method as a formal parameter and display the value returned by its Count property. ","List ","list","In early versions of the .NET Framework, it may have been necessary to implement custom recursive file search algorithms.","But: ","Today these methods are unnecessary because they overlap with existing functionality.","C# program that gets file List","\n\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\n\nclass Program\n{\n static void Main()\n {","\n // Make sure directory exists before using this!\n ","var files = new List<string>(","Directory.GetFiles","(","\"C:\\\\folder\"",",\n ","\"*.*\"",",\n ","SearchOption.AllDirectories","));\n Method(files);\n }\n\n static void Method(List<string> files)\n {\n Console.WriteLine(files.Count);\n }\n}\n\n","\n\n22","EnumerateFiles."," Another option for getting files in nested directories is EnumerateFiles. This method receives the directory path as its first argument. The second two arguments are optional. To recurse through directories, use AllDirectories. ","With EnumerateFiles, we receive an IEnumerable<string>. This must be evaluated in a foreach-loop or extension method.","IEnumerable ","ienumerable","Thanks to Csaba Toth for pointing out the EnumerateFiles method, added in the .NET Framework 4.0.","C# program that uses EnumerateFiles","\n\nusing System;\nusing System.IO;\n\nclass Program\n{\n static void Main()\n {","\n // Call EnumerateFiles in a foreach-loop.\n ","foreach (string file in ","Directory.EnumerateFiles","(","@\"c:\\files\"",",\n ","\"*.*\"",",\n ","SearchOption.AllDirectories","))\n {","\n // Display file path.\n ","Console.WriteLine(file);\n }\n }\n}\n\n","\n\nc:\\files\\index.html\nc:\\files\\style.css\nc:\\files\\images\\logo.png\nc:\\files\\images\\picture.jpg","Summary."," An overloaded version of the Directory.GetFiles method allows you to perform a recursive file listing. Instead of elaborate custom implementations, this method overload provides a clearer, simpler abstraction."]

%iVBORw0KG;)NSUhEUg?AOQ?ABrCAM?ABQb96y)YFBMVEX::9/f729:6+v/z9P7v8P/o6v7s7v/e4P7+/v7W2f7q7P7g4v7m6P7j5P7O0f7l5v67wf61u/7EyP5vb2+rsf6jqf1PT0/S0tKurq6UlJSRmv0nJyeKkv2aof0CAgIxwEfw?AH5klEQVR4AdzZb4+jKhTH8R8gKLV25w9dxXGm7/9drnDSQ7PmZkGNczvfRw3JJH5yENksMlLKglK6rSv8wGTbtlogJOp2TuLHpdqQvnvnalDC4qdUmVC7+I2qNbXEU2eVRUw+wJQJ6Yd19ezzqxASreHfcbkWCNWG1p83GpNESNUPFiGlxQNS43nTXUiDssCyqgtJPGPZY7L6YbdaHJBNYXuZp4pQAryh5R6P/y/czszKdNnPLcyGjWvXhvUJgeJPPb2d7XrisUxVd51mZhnSHGEEtUnZvcxpFKZeQvqIMWLwc5uU8iVWPsr5j4w9YqvC3+a+BQkl5SHGhFyvFHG71jiihPxPOi9wuCPnVivlrDRi062+1Jix/qhOSKxF0tV0ddLQPigyDmM/P3fvenp8QQGVn5ec8+A1S0SKR3lw4hyqS5DAeEslJOCnG9UPsP8jZHWOlRjpsRdIiyGt9RV2QkpdCWxMr0CGeU2jj/N03oM8QE/rcQ972DuSNrWbW4HUTdNc1Obt2syZAiQNbADt2gk8SF53YZS8iZenawFSNaEOG5OzshP5xvTZI9UdY6PZLdaFTUhbjNRNDJuTCtgD6eIuDdFI7V/INbf0KhovOKIlcgDgeVvyKzkOof2Q9Dbpo5ECJh6ffogfDHe3ADduPyRU11w0DkYGjVtalkhAFCAPSVRSZCItqp4pIyCeBSnnjX9WeUgaZdyq4wBYRjpCcwWn6xHR633JQ9JDD0ny+AmZ7uuG9emkYuU3DTKmspB04/EVr4vlrS4dSIE08BoKjUpht1QZsk8U51@uAWS74FUEZLuKUZgr7qMy5OlwsimW6qvSMkHEiMpvtEzsuwlqrFXwpzPRuQh0zNTY9qw8G6i+Q4GlgMGF8+pMiTdds5Ymb5+fryySZEByELSKzb50TkXJ9enc/Rf/0FAxmOQ6utz7hWxXx+fvy9F/9JKd1SM/EWMscD+3Qoj1KbtevqMifS7K0HyB4G8U0TavFDQmoPHnl7fKxoeIRXmrvHnG7KVoMPVjd6P/f2dtJmhLCEVSiLOh8GcjrDfSMj3EqS/PTYZ7E/Epj165VF+1WmqXw0ga63yX0rODcC3C7nXiPxATJ9OCjHxNq/+AuqmOV2vb6cs5eBdgPbx8opvp6X+dG9vy23CUBSG1z5ICCFAwJgbT/v+j1lJzbTJ+AC2IXb8derr/gWEvKP0H/foicpVKBu7+dfxcOhXVX7yhLyl90a4PEvp8918ODAuO03Yt06YcBsd50N7ZYs+lcjZ4Ipvfe7IOhcYqxhvsaiOzqcFKF1JwjVbFLIKPpj;uAC6zLCCuUCEZZQ1U1zanS47uFEcn3vKxTGXfuy7grFMrf+PQj1XrHk0fu06zNFFlJicAYFKQs+C6sjh3+L6mbuT8z6wv7LCOH/sb+Gvy77SaDVkQfcgpd2xbcnkjF0GmlLJCOrbNNUFd218MQS6XEDf0z/K4IFN11CM01Tr8hin3hGRjFlVB9FTY6UC6evl:Jxx43qH5lAzZEU9bXyEJqNCcrbV0ajeA+ZAiL2Lam/rw1OmJDZpgyRkGMMzg3KnakLrG7Rer/yMvYGEZBrCzYXHAZI+Pj5rdr3U+Jxzq1sqoK1iFrsAq5QlG4tMsdBVviVOkF64gqJ8i4ahjXhN9llVx/JQUfKsYmuAsKFERYS7hAoktTnr+33bj+mWywsWpIIm5FnAmAOiwNvf0tCwg3jWJr0zgkglsJJ0jEFboc+TQ8FNWdJ3gXruTy7bpMfSA8RoZCcT+zeDTF5e0Z3z/2+q14jB+SHo/Qskm5RtoK9zEL09h1yJcXxyswXVfR5ef5LVQhad88MhR8+UdC99BGsCVWwQMkFIqv7JwaCfehfhyHDpuR7uKBJTuMHsu6C0MGFdzLj0Oi2Iq9+LZ0x3XrI4eyp9jSNGQOW3GFwan5mEUsEmN4j+1cwFbCxchj0eMJ3JBMjK2YMu8inJp/HZOAJyCfGitsx4TQyvlNXXLAZSZ2FeECnsZHLoUotlXjvDAeJrnWmNU4S/MTPTNeDjPhBrHLGGdNv7MeL0ZiCB1jNeoKxVljiRzwYtqQdITVbExa2fpK1qZh7IRCobf9ildUnKdzapz5vrHcZPeN5JPTj3J5hHtttqnT2Ctu56eM9/zGFL8eE23meRwMPtPYtq1iN1NhsRPTBSvIxHadJQCHwzgMEz6RNrPYTT9lFXZDKOq2SyzAh2EYxrEBqWEUHGObCPYSpqQn7E1SYoxRIGNqnGffJraqkYgtCHspJwIU3xEZEwH6YZjn0f7FyIxNGNdIP46ecC8SfIeYWQDkx8MQ7F+KrGZjBFdNY9LjxYmNsRFk2rWtTdIHYx0zFoRXJ4IPTW7Mfw1WasdC8HOQaRoVNUpYiYesxw8jwfsGq8XUOCnuQqZiPIXvE4vVOFrBXcR57ys8gfZTn+AbRO/L7PD72akQLKDoHe81O9wbT1mPBeT7hB+dHZbve08Qc6PBgsb7lOkenap1XazxDBpbRmHainBe6zOHh6i1hvBcIWcIviBCYXzW4qdT75IWBbEKINE5S0ioc4ngp2tcFv5P97SOIbHIyDSG8OMZ9y+pDOu6yDHpOsL7qNsuYSTUtjb9MeWzJbwRMk3FyGpbcGUTg+2IEF6G5pPCBlJVlSFspWZVZbwMNkYJqEWwHdGM8Na4ELw14Yzw1kiyGu9fiW38ATmf0klBB/jP)AElFTkSuQmCC$/9j/2wCE?gGBgYGBggGBggMCAcIDA4KCAgKDhANDQ4NDRARDA4NDQ4MEQ8SExQTEg8YGBoaGBgjIiIiIycnJycnJycnJycB.gI.oJCw@Cw4LDQsOEQ4ODg4REw0NDg0NExgRDw8PDxEYFhcUFBQXFhoaGBgaGiEhICEhJycnJycnJycnJ:BABEIAL?yAMAIgABEQECEQH/xABq?E?gMBAQE)))?QMCBAUGBwgQ?EDAgMDBwUK.@)?ABAgMEEQUSIRMiMQYUMkFRYZEHI1JxoRUzYoGCkrHB0dIkNUJTcqOksvEWFyWiw9Ph4/A0Q1Rjg4SzwuL/2gAMAw?AQAC?A/APv4)ABTKu8XGu9d5fWDJnEEoQSgMzNDJDFDJAYKZ?GI)IAJBBi92WwCJczBgj1MgTYkBAC)))Aaxe9d1SgGbCSUMSUBkWIZNK0UsbwBgpk?Yg?EEEqVve1vScndrYAyuVSu3kG1j9NPFCl70zrqDONq34dRe1xmims15nnBllNlvAkxb0UMgVK)?AQRcEki5grivad4Jy3LJOiVFU0i3bqYI53aoLWsNgkou7tUZndqgZTYuWt6KGjnd2qbiO0QGD0sWEFecjOClXWLQV5tCMxNjFXoZqaNa7zjW9iGzmXtPP19RJzuTK9bItrIq9SBUshs0TdrKqJplaq/Ub9zPMcXby/nHeKkpPL6bvFSDorTL2odzMZNdqhw0qJfTd4qbVBJJLVxMzu434r1JcFb6dWtVyqmiKvgeiQkh.c0)?xUwuZGjiEjo4N1Va5zkTjZe36gWRtzORvapsZjVzmgySb8475ynOifU/npPnL9oN6Ol6W8mljvOXfLGmhQMkzOzuc7TtVTqNaShVKiMXLe9iDlY1ygwTk+2F2M1fNec59j5uSTNs8ub3prrdJOJ17HzXysw7aDCtP8AiP7IKa7nLbQ6j/KfyDjXfxj9lqv7ofzu+T+/44/Zar+5Pz9iFPvLoch8WvAxVStVVeJ+yXS68Rndbh7fsuc+Sbzi69n0G0jzRrqqSFGbO29e6ql+FuHiQyNHqt76G6l7Jr1IYuXKialSVDLJxKp6uNmXRev/AFxFJUulmjar7qt9PkqJYkaxVRLWtqbGY8zI/PI9/pOX6TqVOIxRU0stnbjHO6uz1nlvdul9CTwb946ciKlkU6GDU73pLI1qu1Runip0wc33apfQk8G/eHu3S+hJ4N+8VnX5tN6CnTOlgjfwpz+pjF9qoea926X0JPBv3j0vJipjqoZ542u6SM3kTszdq+kDWrIpI6d7nNVE0TxPQoSYoZA4I)ABgpzMUX3pnrOopx8Rdmqkb6LU9oNimS8idyKpVE0ogh4aG3CTTsSyA289kd8Rs00W7w6zayiNu6hYSaL36qa1Qnmn/AKK/QfO+X7M9Dh3/AHH0sPo0/vb/AFL9B5fFIKCsiZFX0vOGw5tn5xzLZregvcFJYxz2ZWprmRT8/YmxMynCe3ePuNbgfJS67TBv2qf7xy34DyLv+IP2yo+8YOLW0FUvCO/ym/ae3rMcpaWukpZkfmZl3rJl6KO7b9Z3kdofNq2qfXVclW9qNdIqbvUmiNt4IXy4lX1F9tUSOT0cyo35rbIaNVTumyIioiNv7bHRbhWjFauVyom0ut97u9p9AdM29syX7LmrUybTLkXt+o8G1VultF6lQ246+tjVMk7+5HLmTwddCyjpI4JGyq5znNva1rcLFkmDPezK2Vuva231qd7FpFZh8utlflanzkVfYeXO/hU8+J1TYaxGyxR3l3mt10ya6W/KOnW0NFPQ1XN6eNkkaO3msa3eYmbTQ6Er0e66dhdRKlA3m0iZnOfmc5q7qZt1OPqPGnd5MM/CZpvQYjPnL/8AJqYNCyXEoGSsR7N/dcl0Xcd1HtaKmo4nPijgYxzkR26xESycCIukW4tVpHE+Gy3e1PVx/wAC2KQ3I3ocyS0UzmdX2pc6t42W3U3ltwQvkTgeYV1y5rixDXWzVQuYuhrr2lZmADE?AGKopzZ8OqJZ3y5mWcvat7Iluw6gBnHI5iqreyxz46Gb0m+K/YTFRTM62+K/Yb4Bksz9eBgjVt1E5V7jIE3KiiSF72ObdOCpqcmowWqmvlfH4u+6d0EFkcr4+jb4z5ri1G+kqH00qtzst0b21RHdnecOVmp6nlOv9LVHyP/ABtPMzdZCnqaRFdDG9eLmtVfjQ1iUMHO1Mc+pGU2tENlpcxprxG/CwlEGex3uTVPuzzd6M8P4odejdRTJNzVc2Zyum6Wrnde929x4zFZZ6LBaqeklfBUyLFBDNE5WvbmdtHK1zfgRqnxnOwWTlDTYxhrMUxOpqaWtYmaGWolkZkqEdC3O2RbXau93EnArp0Soei3W+XVF4ev/SHpsLpVgxhkf5t0jf6rj10Dt50VurN4/wADx2LRVVNg2JS0kslPUtijSOaJyskavOIc2VzFul23Q8ej+WMGGpjTMaqnQ84Wl2UlRLI7Pk2uscmZmWxLVsU4pPtJUb8FEv4qfUZkft35uOZf8Dsq/VvwlynB5OVMmKYbh2IztTbTNTbaJZXxyOic5LaJmVlz4RRVnLvFfdDmfKOuj9zaOXEZtrW1DUdFArczWbzt7f0TRC+WRFRmnUcxOs/SkirnT1GzH0UPlfkf5V4rylw/EabGZlqarDZIstS5EzOjnR+VrsvSVuyXVe05vlg5QYzT43gPJ/AsQnoaidrpJebTPhz7eRsMO02XFPNu8StyorUB9pJPkXkmxvGPd3GMAxzEJ66ohauXbzSTZX00myk2e11Tp/HY9ZyorcTwnE6eqgqH8znRPNX3Noz8n1O09pWSexB57CMUnxTEJHMe7m+rsnUjbpl+NQAeh))?AB4LlNT1L8WqHMie9rsnRRXf7tp5efM1Va5F776KfRMTvz2X5P7qGm9jHtVr2o79JLobHN7tRyO4oinTgxzYsbG+FHIxEbdHWXd04WU+dPU8HF5RVv+Lf1/8AlH3GfB8PmT/Z2/J3f3bH5ZpWaoUPareJlNjKzZebZo7Xzo5Gre/C3HvPpNJy5WRU/o/9d/lns+TmKri6S+Y2Oyy/lZ+lm+C30T5Jh0S3Q+rcgaSaZlXs25suy60T0+0xuZQV0znoksm7re6N7Du4zDtKekpvhPmd7GN/9i+XC8RYtK6stmgY2Kn6F2tiXRvm+zN1noaWKpiRG2ez1XRDpwNdbiviSa1S3M9z8yaqc7EqXnFBV6e/MY79ZG88pUcn05klX/zFiyW4bqOvc+ioxb5rqWx5sq6rx7Qa0q5lzKt7IiHPwqKHmNFzduSJsceRnZp/E/PKcnXYmzE8kmz9z6OSuy5c2fZvjY5nd07314H6Yyiy9qmS62Kj5d5Ekov5N1jYI8lW2sdzt1+nuN2Tu5ES6HzrlxPjPKDyty03J9iTYlRSRQ4cy8ej6SPbv9/XZ7r2vXe06j9LmRC8LA/OXI+sxnAfKdDHyk8xidVUOjxH3uzpK1udvvHm950jXbuh9p5etj/kzU1D+lTvifH+k6RsX7r1PSggHj/J29lRhNRVfl7dYs36DGOt/XB7)))?HDxFn4XJ8n91DVyHUq4/Pv77fQhrbI3Wv3Gp3Ia0qcTU2R+SqJnA/YOzLVpWdqmhW1MUSs2irvX4IRTZ7vytvwvrY/MWGw8ND6/wCTiPcrv+j/AGh75KKP4XsJWBsStyqvWa0VVE96IxVVVvxSxuXfbVLfHctiNlqJ2FUaaGw02s1yLk5U7CcqAkki5AJ)))))?BrTM31KFjN1yalLmljXFMiGtkLiHNJOVjDXOWHKirbPwS/oiksiyXW3D6yTGROj8ZndO0KiXQ1qONyStVUVOPFO42XqioupkzgXIYNLDrohgSADM))))))EKYKWGNiUUwclynKY5S+xqtapjJKjLXS97laRXUtyGTWhquLCEe13Ata2wRDIAyMg)))))))ACLFKIXmGTvKZmudl07QRYzMdTIiNFRUuliVJABeQ)))?Af/2Q==%iVBORw0KG;)NSUhEUg?AIw?ACICAM)Cj/Ma)GFBMVEW87/XI8vf5/v7X9vrz/f/n/P/s/P::8eJxHv?AEG0lEQVR4Xu2c227jMAwFeZP0/3+82ASFW5yapA8C1UDC51oekxyldanIomMWsS4HAWNaxHjGHhgpYifM6sHMW8DoVhhtwcQbwngO4zeEsT0w4wNzErO35+2BiTvBGLcB8zD8FqzvDKMNmHhLGM9g/IYw9kKY2AETFYw/VrF0tdGASSH893sI3ue/lDP1YRIbMNxjov+CooiveG4Vlnwe0DDmIqI2oZgA44ediRIm/KdB6HfnRgJjhxLpmvwG7AczPq6gJj+TYyRMkpbT1MhpL3hSKi1horRwILXgPaBUhjDMBmz+kxpTLwjeKJUTe17o79gTYMAR6GMCpuBXUFbyOyiUioMxPece?M7WdrHo7HnlT+Pegto3SnVvARj1dI?+tnfRxtGOzcRG8BWzulsgpmNsxDvQW17vRxcwPGzk31lt6rMT2S04KJk+Lnegu42upjbcFYf9kDBrQu+1gL5sDOlVpvgQdt9bEXMIbZbugt0L2tPq5hsHNrvQW0bpWqhIHO7egtkM88vIBJYGu9BbQuQjswIFtPbwGty/AUBkn7egto3aNJ/Ac123oLal2HJjDgWVvvGWIuRPgZTFNM/KyZT5tsqOwORDl24KE3QDneQsw/wdGzX8jD/woFYPbj+EOg7A9/34pixZsrG7pRoBQG1NqHgjCEWrRAJQyrFo+CMDwOL1ANQ6jFClTDsGrxAtUwvFo8CsKUavEoQYwfEGoRArEw2Mu8QDwM4vAC0TB8L6NAVYV4GPPraUlxeJhwsndHYjUHM5W3uo8jfLfwODyMAQqNEywMrzTfy9Lo2m04sgGlrZYUAm3FEV6g16slvECvV0tIgfjQc7WEF+j1ask+lFotSQTajiM9gfaoJR2BdqklpUAb1ZJCoK1qCYeiyatXGmeKcU9z6ojyZpmsQV17viyR6KNMS5nnyNZVLjEPmyZT4fQhnUrM0ya/XN7IYYbrZZ3ml9oXL5y2RmFG+OXu/dr0/Fpa8AqEQdw6MU8Y0wsstjowFxcd3/+r0i/ReoRWMO2E4/jB0naJACYZzAhta/0dJrqde21KxLyfmANmea9EfZj+gQkc5rFm5z7D+pNFph2tf8Isb6SFG3PyUmscANNG5/YHwAyGrhKtEWZm8Aajbj2YvI+ToUHNStSG8VHSo9YIE1WJ+m2A14RmWiPM8mRzIWHS1dMRXOukhR/BnZpoDTBrnGwuEEpNSpsnWgPM0qxzeRi0ELVGmAklYgfaRzJbD1ono/7QucSoP8DAHQyQAeaht8aKJC3EIQjsY1trgh2C4G5rrUNo8niIpa+WH6wxq/EDHauMQcEcMZR6Q86f4rF7n/z6wNzq6OI7w0gWeo+DwJ8j0rOA+Zzxv/tXMXxg7v/FJh8YKeJtvyYoKhhbRLA2WRGLjX+NNAFPXyaxJw)BJRU5Er@ggg==%iVBORw0KG;)NSUhEUg?ALs?ABECAM?ADuirSU)MFBMVEX::V7/mWn6Gi3/N6enrg4eG75/a3uLjy+v3Iycnp9vuc0eOYxtaQtMD4+Pj5/f5J+Z7p?AC2UlEQVR4XtXZ646rIBSAUfaF60Xf/22PR+xkpBurHW3x+9mIWaGkhKJOadBaq1vmkf9n78cfkB/ZG9K/hfeN9gKQf+c/audGOwGa1w03stvK7m9kx8pub2TnKrwMqq2+eN6RjLsEzsz64vWeiQjOdQ8z/AK7ruyRzsUPvsAP2aF0cOKR5uDMpXLcTqVj+yrT0niOHXnT7qe4Kk9Jdhlv+RFGWoJr7ELSnIt2OY1Fnom6tssNKSX6nbnOHsCdaleG6CP2AEQUzrVDZYcmJ2g9vGsHIjrNrn9KpUglJz9uFwz6UL1gEN+9tuc0F8+xc2nf77tfSWxY7WxamnO5fKndjOKPUZW/0g5T79iNE+gCwip/mb0AjtoNKIku5fuyh9aBXAy7sisxz636t/Mt7GHOba92RHyyh9K4ww5hzp1tpzmzuWQSTUWsPiuFHXYqwd/siHjcjlSKuGm3zy8vnWEv4Vv2ErbtJfm7+aKdIy3FG9h1Y8US9m8fuA6LI+VHsVe7sswSv6pPu2axnEz/dmW5kQ3Qu31AbuvNQbspvbKvXEfsB/DszU579cyn7Gqw3Aw7tpc0tvF927f1CEuuV7syMeOLs0e39kBTSfLbXu0WHyUqPfNdR3aZYA0txUofwV1kl13H7ax/8IlrGKg6u23XU1yVSlrr0+2soWknM27+v5BrO+9LdrFU2rQzLtso1nYB75/XQ8z5S/YSTnFV3HHg4ozM/E27nLivaq7r0Z7FC5NwC3vjsgI7sheLOEa8MbEd2ZOMz63DR+jIToQiXbbLE5/hSntByHbK0gDZLp+38rwLOIDP2pGo1mOmVe7lMT2TAWN+XcjRnmr75uCwcYMcMyIzYs7x9duDRf4Jc6LSt+ztQEmF1e1tr/Zx886/C7shuaDkoCN7gNaKkXMd2cf2TMpBP3ZJY4JqN5pe7GbmwEoOajsQ7N/MzZuMMQBu18NUmocEda/G1fXtP47JaK+yvhpR)AElFTkSuQmCC%iVBORw0KG;)NSUhEUg?AHw?AB8C)ACOdYti?ACfUlEQVR4Xu3bsW7rMAyG0fv+e9+AG0eOHDVr4qpNgAeO2gQI0G1LJEaLIPFg+wcafy9wYERmGMP59wEMjVuFZN/4MiEtF76pC7/wC7/w7tVyUhFm+oxZNFttR+PdS1amx3Gu4yi8lST0IrZ+DG60JS6H4IW2lfoBuNPGtO+PN1oTTdlKqcvivtRiSX7o++PjW01WvT+6D6quuu2OTyttzCe1O88dMOHspmcAftd5APCpFDkCd4oyAp8SuELwHDhD8ErRQOCNoobAO0X+dvjAXnnUoAcOeqsBh4xMAD4YONsLRQsAv104TwCeKTIAXijicT5eKaI6H+CA9fEcfF2cdZyMt0y30pjn4aO7KUUxXg7EGz1JwkDgbGOicPY5IXikZWDwiK1j8IjLgfjwXxX79XgsjZMnXDNZdT3/4YDrXU+gr9SonI9PZ4q4Ax8OkAHwdZkZAHwKRY7AK0WGwAcHrgh8psAZgheKBgJ3ihoCb0i8U+QIfLwt3t/2wC3I+9yQEy4BZ/ugKCPwQlEF4EMo6gDcKFLkAlmQq/P4Oz8aGierPp7Qi95tHTvi69QUzVa9jV/wcBO6x23uixf6EYumnLN9lZPQjwLaETfaXJ1742krzT53x3Wjnft8hL/uGd6rJX5Jpzbnnvj215O09OAe4cmfZYFvaDQvlpMK397M0pTLOgMe4vbqzbF5SBd+4dWSiogmPx9vRCyqQkTpfNxbj6nFVHAHrpDi8EaMxAWHOykOV9yBc6U8Abh8xsRlInD9ikgcgEe9EPmbDplO1GH4FGrAK+f+Tp+5e7+f9no2rusyUc5fJkpWZRHN7dpeD8MvXPKz0sfHgX8NhQXG/wOMvRhmEaG4n)ABJRU5Er@ggg==%iVBORw0KG;)NSUhEUg?ANM)8CAM?ADLy3+8)GFBMVEX::++Of/8crj4t+/vr2SkZFWVFT/67CB/ywx?AEFklEQVR4XtWbYZOzIBCDN9nF/v9:I6FzBVKGaXyOs0XW5H1ntsYRr2zWiAfWSRgJ4W/6TOzK9k1Ah+NiPWzpWbyJVB49EQsni2xZVpBJHHxbCFdzsTHQPhmNifPj0VNkrBwtpBaYVWTJEwhSafSRcIyJOmr2ZxxCZY5T+IUkoQJlyz0noQpJGnYpG+YVvjncUw4bxHYeqgp30ocEK1isqolYIcRc1DMwtyieE1OEB8awEP2IQCwJSJxQ58Mbx7hMSZDhxsiIjwivM9kXMtkfKtzNLvQsQsKUmxZ3p+5mMnYlsG5PGbbAtLTtiUH0rbBelrNZBif0cZQbDlJPDsEANsWY/OBa5hsikkE73vwNJ6NmEy5ZLcw8XiPxbTtMgPiIxMz0e1MY7VMYfCPIWFQInLX6wKwhgnfeIFi2mBIuU0jgaJiFm68nAaeykGe9B;7V/MLDKpwd0dZu47E9yZ5buQd9tzWIpIKTaV2WUe4eZaLlT62I0aTreYalQqTNmJmW0Tmz9JYc9tgGVWRPFt5OFdvklblHKZ0ENMKt0RICKJEzcvhAtqR8LriVPeSql8DuA5SYoyLKTklikqQheKSg/89h3Sg0QIyuzPINUv2i0VGLW0dCijNQwo3VW5lPNHKFDpShcgQZNICCqs+WG82UYZB+o2yrL5a1RXpYZDh6hko++R+IdEQBbx94iIik3MsGI2seGlbRBibbN+RIyZMJH/JOEOWKhR3YjQFi2DjhdyFARvhu0VRZzz3hsjlesClkOgExFdj/UtKeu9O9deKqjFl2YEH5KQQo3qR4S26d2CUVu2spe2YhpGhF300Jz0nGJUNn+MCFT9EAP0XeiVvZqVaBwRNn07IyQx7QgOECV027xqGMUiBmQ2DeeNHYmIMzdpB3zXMhkAZXUbEW+M6TUSgCoikDejiLCKsxKLTrpPSG2fTBCK6BKDUPea/ijhgTrhq6trS1qQxaRDxfRB4DfvAUikUl9nfLLsO/WhjgrkHXkUQLWKJS3d6TkuWVaookqe+DmPI+lZxBaRCpLO7FqEm8hG/LEmALIoCk0ZhqDUkr9DdKqheObBUSvC8m81JVkklXTam4U2k4HneE5BENlHOrw4K+RZf2HSISVfx8JR813x2IckpPE9obv39hZPX/QmnN0unRQbnayQtshmv4bpbEYOqmSaiUaHluVrmDDwHSstfO+u1aGJCGKOaYDUjC1lcmihq2piJiPYQfr/TEp4f7fzuAM45DzYDUzeRcrC2bN0kO5gMo+UAh8K4vOlf84x65nO1CN59BZqcMy9TJx/d/44o7kX9yuRaL/DhMdkm36fCXYX0zIo2m1Mq6Bo9zEtgqLdx7QozmG/yGTgqEk/xzSmotm9TCv+ZP5nmSSg+teGH9U/EvuFGjU3drs)ASUVORK5CYII=!