Dot Net Perls
Top 37 C# Example Pages

[",rkdw.tsf.b+XBCCEST~~}T~~YF696464FbCCP69646F*CXCZ.BS}T~~}T~~","ThreadStart."," This specifies a target method. It does not support any arguments to the method. We use ThreadStart to begin running a thread.","We use"," the ThreadStart type. We create an instance of it and pass that to the Thread constructor. We also use ParameterizedThreadStart.","This example"," C# program creates an array of 4 different threads. It starts a parameterless method on each thread. It then joins the threads together in a sequential order. ","Thread Join ","thread-join","Next: ","ThreadStart is created with a constructor that receives a target function name. This target method must not receive any parameters.","Then: ","The ThreadStart instance is passed as an argument to the Thread constructor.","Constructor ","constructor","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto","Based on:"," .NET 4.6\n\n","C# program that uses ThreadStart","\n\nusing System;\nusing System.Threading;\n\nclass Program\n{\n static void Main()\n {","\n // Create an array of Thread references.\n ","Thread[] array = new Thread[4];\n for (int i = 0; i < array.Length; i++)\n {","\n // Start the thread with a ThreadStart.\n ","ThreadStart start = new ","ThreadStart","(Start);\n array[i] = new Thread(start);\n array[i].Start();\n }","\n // Join all the threads.\n ","for (int i = 0; i < array.Length; i++)\n {\n array[i].Join();\n }\n Console.WriteLine(","\"DONE\"",");\n }\n\n static void Start()\n {","\n // This method has no formal parameters.\n ","Console.WriteLine(","\"Start()\"",");\n }\n}\n\n","Output","\n\nStart()\nStart()\nStart()\nStart()\nDONE","ParameterizedThreadStart."," This starts a thread with a target method. We can then pass this instance to the Thread constructor. The target method is then invoked upon starting the Thread. ","Example: ","We create 4 ParameterizedThreadStarts, then start and join 4 threads. Start() is executed 4 different times on separate threads.","Tip: ","With ParameterizedThreadStart, you pass a function name as the argument. This is an object type that you can later cast.","C# program that uses ParameterizedThreadStart","\n\nusing System;\nusing System.Threading;\n\nclass Program\n{\n static void Main()\n {","\n // Create an array of Thread references.\n ","Thread[] array = new Thread[4];\n for (int i = 0; i < array.Length; i++)\n {","\n // Start the thread with a ParameterizedThreadStart.\n ","ParameterizedThreadStart start = new ","ParameterizedThreadStart","(Start);\n array[i] = new Thread(start);\n array[i].Start(i);\n }","\n // Join all the threads.\n ","for (int i = 0; i < array.Length; i++)\n {\n array[i].Join();\n }\n Console.WriteLine(","\"DONE\"",");\n }\n\n static void Start(object info)\n {","\n // This receives the value passed into the Thread.Start method.\n ","int value = (int)info;\n Console.WriteLine(value);\n }\n}\n\n","Output","\n\n1\n0\n2\n3\nDONE","Notes, above program."," The threads were called in a non-sequential order. There is a pause before the runtime can receive a thread\u2014by that time we may have already requested another thread. ","Note: ","You can't count on the order of execution exactly here. A thread may take longer for reasons beyond your control.","No parameters."," What if you want to start a thread but don't need to pass any parameters to it? You don't need to pass the null literal. ","Instead: ","You can use the ThreadStart type, which (fortunately) is detailed also on this page.","A summary."," ThreadStart enables you to start a thread and pass no arguments to the target method. For parameterless target methods, this type is ideal.","ParameterizedThreadStart"," gives you the ability to pass an argument of any type to a specific method on a thread. We can process many different data values on different threads. ","Thread Join ","thread-join","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","3679700504","data-ad-format","link","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto"]

%iVBORw0KG;)NSUhEUg?AP).CAM)Bfxb6)YFBMVEX::0nML5yt74wNj73ev74Oz97/X2q8v3uNP1ocX5zd/5xtz1pcj3tdH72ef2sM761OT++vv4vdf85e/5xNv+9/r8/Pzz8/P5+fno6OjW1tbIyMj86PD98fb96/P+9fmwbslD?AEqklEQVR4XuzawY7bMBADUH4FOSNnt:/l/UKSLso2mBOBULxHYK5yjRMRTY8lPbPbQ/br4G/hyp4UAHg9mpgERYoYoIFDyWMmAQ8XwjxBiKmXUPCg+qsRzTFwwI+rJOoOitgCkYLjijMEB4qnWS14HRSKdto7w4mjETyld7mwqSTsulIwNl0sGAgIoez6aQE7EA6rINl/Qo8+P2zpJcf8JjQFwB6DiX9eQmew38VERG9CKyNQK++FdBbAWrdCAke9jp7I6Dt+1AbSwULuoQBp4DHZ5oeujFBIcLnhobqrEdWdcFCp5P+ii4B62pMqOGhLxrd0TmEjGHXlHBWJ3WftulQOuktrVkn0SXgGgdMeKhy7uoQMSKc1Uk6rZPap5MwUeu0gBddAi4McDU8yPuwMogRwvyPcDqp8Z7SSTyqk+paw4ALFrTkfLQT6huA3vhq8LCuG4Br43MoYO1BX8O6Cf8SERE/Ph+Px+fHB87wk/k62HEQhKIwzFxFKbT0UjuuAN:LcdDGq1Bje3C4V/d092Xxhg9k57qZkCg94wxzycvAOp2u93H2jaKZf5n7qp0XAL8Zez6VttW53F7S6Tn/HFwM4PtDhipkIGX5OpM77dgOYNpD4yuIQOjfwB7WoLjcTDP4PsuGKkcnDodzAkc3ThcCN7jQNg+JQnh6jr/rnoC7ONjBLfDGphTt5+UnAEDsx2jJLap+iyvIxTEToGQyPpVI1gJoQGWa+DXsGmYNPJHWZxb0EnzDTgCTELUAPMOWCgMVRLYfQOuAZYjHODHHtimVQbYJbB1X4A1wHEcALd7YF8QWDClZPMxWAHsxlEBHD8G4+d/AHt6pWX4CNwAXGEwwHYHzBj3FTASZ1fTFMcPwBJgThfAz22LazFMKWDR0Zx1h8EMsMQIAN83LfKehi0GLIaapnR/FFwBHNNoUZNZFrWiFDBy3tIreRD8qwAWKQOw3AfHksCo90ypdbDJHgSASaRqgPUe+GJFYWAk.3HwDX+YCNlPUYAP/bALEoE94TCMTABPH0tIZdZGLW4VJFgsQ02GVhl4Lhu4XSGEsGBUH8I3ORgu24J6eRiwG4C9gwvixWwycAyB1cblgpnWwzYE7G13vtaE/LHwBpgiYEiwNcNiy3rtSRpEfcrYJODK4CbaSZws25xFwxTCtguvHoQWcHk4K.m/YDYLthMRiXIsHWiWPgDt5q3nr0XvWGRaYhCwGLPvjOWiK23YB9CGwB5nlLgG9blhaj2gD/tVsHKw7DQAxARWbsQwuhXic9xfb:+XSbhGLsu19Fj/aEuhpEERCbNM0TdPUTWwX0EiKc7k0NRDCRc4166AjKV41miqIoJlaQCWpCm6sE4SwmqqgnhSv2pvaEUExtRUwxXRyx0vUgN2Ug7In0Rlw0FfW/WpqgNLzYH98/OehRA+4mrqBmvvj0tfP4xu/kxZTGVRd8aoWtJPyp07aXVUGHLWTbp866XDVoo+OYWpj7aC4Sr9HR875P4yOBOquMgPOKsjo2EwV@/wz3wStZNWUHbFTtqzGgjhaqqBkitu5ZbVHREcpi6g4aq+D7ghhOVL9b9Gx+rrU3sfcEEE37lEjAZM1i5b)AElFTkSuQmCC%iVBORw0KG;)NSUhEUg?AIw?ABpCAM?ADflzs9)VFBMVEX::2+fju9PHy9/X0+Pbx9vTo8Ozj7ejZ5uDP4tmwz8Dd6uTL3dTV49x8sJe208Wuzr/P39drpoq61chopIecw7CSvahgn4F1rJFjoYOAsppyqo9IgRfD?ACtElEQVR4Xu3XyVKEMBSF4cxh7Hn2/d9TrtE+VUhTaJrcLPIvLGXjJyegiq/0ZfPIoIBRt2sOBYzLCePzwZiA+bgwtvnBaNES5iylYUlrLbffGGnlF+YiteJKNyPMWUjNkh0wu18YprTNCCM1PwZpZfLBmJwwumAKpmAKpmCSVzAFUzAF47oQvlgCcEMrYtxfMBboVTBtTpguG4wfDCoXjCXQNMb3g6/3Iwo1Bvlq3/Wti8aIfdfVwFCghtw8BnP3Jhbj.EMLMjNYhSAdSyGFO43Zk+KvuoJs39iTLhQDT0xNSm86wM7DiPCww0MoA6fvD7A6ueOtKSPxVSkGGPa502vCTuD8T9YQ8xYDDHUGENr+Oc362cw9LNYQRHGRmJoJz/GYBwoxxgcLmepeEwYov4/pkPxmDCEeRNGxGIsTTJ/ZtJhaPbqH08T2AqAaAzt5Be+ZwxhzOjR7u3bMEG16A2MWSqBlx6qojHYff53E2YhJy68GVMBA820RVjAoXkTBqz5v2eQaseXXRU2da7831QwBbNmUjapMPK4na1pds0lFcadrgtKhTlkhPH5YIxoCXM/ve5wSIXRAbNTbjLvvFKXK3VOgJEVYRqpJ7PWmPPTsjJG2m+MsFMpZRUsqTBbIScyRmhYEmJeBEsSTAvMjCUl5jhv4cfAwo+BhR8DSzKMUMBMWh4yIeblTE2wWJEQo19gtsGihGC+M7A4wYyBZaPA4JsJG/HfGVj4McfReeF66cGygYURc8RG3BicF34Mzgs/BueFGwOLEvwYbMSPgYUbsx2dF14MLPyYY4eNuDH3xwGW5BhkFDmw0SLMppls20S0o84nWJZhEgQLP+bmxTLMx/qWUy8WYjbX+7pdb5VYlFau7uq12g8NH71YilHGGLlKhpJieUZbtWbWavGH5MqJuEqfDRAN8iKPPjs)ASUVORK5CYII=%iVBORw0KG;)NSUhEUg?ANY)3CAM?ABHJUQ7)MFBMVEX::7/f7y/f+38v:6en/1dX/tbX/xcXl+v/U9:G9f:qKiq8P+U7P+e7v:lJQSDb6d?AEaklEQVR4Xt2Z27KiMBBF050bN/X:3aQiBvZoeMZHoYz+8myKYtFeuWCDomfcY30n3EXTXh8xtnp7p+5KlbcYYXGYE1rCpZeFCvtsBpdOPiSFe6qXfjYJTWwlgBt+AVqteXSfgnQ/MXVSl/Jpd2Svu/6oUQvrVZ24zdy6RrXlUHrr4mFMcosV2Pc+jnXxArAioZcRj/qldUaPwjtSEzPi0RnMFWpFrcJIea0qpvyZ1GEfn77laieU8tZcm2IQ17ZRVXFKurzi1VZZAzLWEu56G13XN0VPO3ktNvZ628lvUP6W4mHWkBhuRgrJDA4ETGLQusHCERFSgvDafwknvaMNXRbrAEIhDqwWo7lYiw8+tAsLsyMheF8Um3Jq90hM5ZXh3QvhLtDbq90rJYpV+3G7KKNlYo2i5nCToO0YA0OkZVBifRWUYvkOoFFHVoFL/bBbzgNtQrWpIZctlok11ksfWGllOKcMCfDrtdw7SBKALpiddX5gUFZLVMuaqK43LlRLB22T6xgQS5Wa8XqDbkMtYjSwsrhxaNyUFzXNEcZ0fUL+o6C1HK6YEGuDYU21aKeJCwwoaAq9aKUHQgNF83m1HN0UcHy1so12GoBMx1hZdnte7mI/WLXMRY8qn9JU9dCBayaXJOhli1XvTu103pxhlqwXBurIpeQWndgcdMJmpLVYs42lhxhPY8sNSzMhcn4eVILWDRF0BRCallyHeCWNuPi8AywQsRed4dFcrFaHlgkV0stksvAkjaW908sLVv68cFJhnGkFrBYLlstastjLEFBD7A8sIzdU02uulo7LIVchlqP9M5IpIyl2j3dKfaohSVExVgsV9gYr1Usd3/LBbUmqHWcaGAtFs/xQ3+ANc1Y5XXA2MJiufLGeJ2pgFWRC2oNEOY4+RjrSdXCWmtxA7LsC2HRoVxQq2BNwCK5DLU4LBe1+3T/Civtl2rCIrnkozOKWpjlSK6KWlZCC+tuN2FRawQFY9XlglqMxXKxWtnEiuexeAlhLJZrq5bTwQOrJtdeLdg8pm1ILsIqE6EvC66FxSXG4pVlhKkL1gQslmt6q9XZG6XMcrE+iJzDYrneH2TFmqlWLJbr/UH2agk9NiI4jZVbWLDw47F2dSzMf/5IrfHgsUULCzFmQlmVQS0kPiOw6VCr9wXr7hBsBBFWKxvn13NYur3ZGGJODyRL+0/RdXJ63raQXIipFst1HiuaSwjLhQh2TrhxlqupFst1AgsLl43FcsE9wiK5EG+oRXKdwPpiuIIhF3ZOwLLk6ltqASH/Pdb9NVzmoh8suXAoYSyWC8X0CtuSUwmwrKudVIoz07C+ognb7hpzCKmOJTgY4bzfa+dvVSzxc96d6P5BQiyPKYZCEmLkR8TLmqis/8L7OeoQ3slfO5m8NjNArSuHNbVzx6HkwuG38XYUr9IuHajF+cVqpZ+p5f9PtW7/pVrdL1EL5/2vgvP+tTP+TK3pd6gVfqaWXlwtfk1jhl/TXDsxlcQvsXxJ75A/ZMHNEnLfXgI)ASUVORK5CYII=!A$/9j/2wBD?cHBw@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.n/wQARCABSAJgDACI?RE?hEA/8QAUw?AQUBAQE)))?AECAwUGBAcIE?CAgECAgUKBAUF))AgEDEQQSBRMGISIxQjIzQVFSYWJxcpIUI7LSc4GCorORocHh4v/a?wD?AB?I?D8A+k?QUUjstSpZex0rWPEzYj/AHKW3pDpYdaqc2s04z5CeVj09r+wy/SHiv4m3lVN+VXuhZjxz4n/AGFJouu+v61/UXum4Us1cy7dmV3bO77i/wBNwhZq5t27Mru2d33HsQDWnrCCiKDA8BBRB)?B?UB?Dl1utq0lTW2/0rHe8+qDzvW8b1upZtrvXX7CM0R/P2jd8T4emtqhJna6ddbejr8qJIZp0XDtI6stcLsaGllWXunb/cWektorWJ5TXXs23b7MfCWuiuopWJ5TXXs+3b7MfCZfo9xS+NUlL2O9dk7drM07Z8M/cehHnvRrTLbq2tloiKu1C7utpnqXC/CeghxWE5+EjHYXft9YcXhPxGEjE7F37fWKAgFYVQkmT6S62+pEorjalsZZ473+A1cnNqNLVqOXzU38t9y+puz3SdOmtSu1Xdd0L4f0nVpbUrtWx13Qva2+/wnkt2mtqhHtSViyNyTPijdjI7Refr+tf1Gp6XRHMoxGIirq+5jLaLz9f1r+o1VF03afmTGNyt2VNbRfN+m5sxjcrdlT112xIisMvkhRzJQuVMhC5U7sjjnVyaJGTBFMDgEyGRo3AomRstAxnHRA6IJJYZLELORS46EHwh07zIcS4PqdXfbbDoq96QzNlsL6Mbi312vTTV7265mcKvtFLqekaTW0Uo+9oxltvZz8ix0lWoWd9K9/Z3N3FloqdQs8yle/sbm7ig4VY9Wtq2TMTzFiflLYaD1Xcee8B0DWXxqXjCVzlc+J/D9pvUkdxZla2IjvVNrN7x/GGVrViOuVTaze8nAQCoKUUbgeJgMhkw3S7zlH8Nv8jGW0Xn6/rX9Rqel3naP4bf5GMhVZNbq8d6ysx/I1vD4zo64j0qxseHRnRVxHpVv1HsN6nBnrKjg/FtRr9Q8WzEKtbTCKuIzuX+oubFxJn2paluW+3MLu7PvM81L0NyrNuYVW7PvJEc6Fcr4kkVyNkI2TJ37ys4nxRNFVme1Y3m0/5+k6IcoOI8KnU3pbzJlZlYeJ8ER6iTT1VzZHNnCR2vq+Ek01NU2Rzpwkdpvi+Ey2r4lq9S0u7vt9Cx1IvyUuuj2vtl2odpZZhpWJ8Mx6jt4r+G0+japa0WX2rXG1c9TZ37vKKzo9p53vdMYWI2x85Llnrs0tk8pa4jsp+4uWeqzSWTFS1xDbU/ca+XmRmZCIHwkyU3VBTdUFXr+HRq4jLyjLGI9MHFpuj1STE2PNnwwuINNsJIQkjV2qmxbGiCWNbaqbFsaI+EhrrhIhVWFVeqIjuU6kgFQm2nGzZOF3yKAoERAOKfjept0+jayp5Rt6rujvxO4uDm1ekr1VcVW52b1acdW7HoJKWVbK2eMpDKzL7iShlWytnjKQysy9/UeSO1+pfLS9jt6Z3TLFzpOjWruxLryln02dU/Z5R6DptFp9NGKakr+KFy/wB89o6S1u4w2NtNa1x7Td/2lvdxp8baK1rjws3XP2lJw7g1WhmXV3ssZNsz3RifUp2WKdswRMpWzc7tLvO6Z8RWTe7vL2NumfEVzKN64Ot0IGQlhokmhokj3SQ33rUjWPOFWM/9E8qZDj2rmbIoWezX5X1/+Tq01POshfR5TfI69NRzrISO7ym+RBEXcT1OfDH+iJBoq9XpaJr01U7myq4j1y2MyxQ6TitWlohKa99rdbu3dn1bY8KkPDtPffq67YreVixWaYVsLG7JY3U7obf+VTUv5S7sbp9pizup3Q2/8qmpfyl3Y3T7THoCITqg5UJdpnWYzTOMhB+0dgXAzJFLDRwCjRuRAFAQQ))QbMDxBRckMqRsh04E2joYfDHHKGTu6P3anU22NMV1tY/X3y0bvQsG32jdp006p6ZmUnEyu3cdVGrspmZScTK7dxQ6XgOkpxlOa3x932F4lcLEQqwqx3RC4gkhR2CO297Jy7M31ENuossnLszfUIOAUgIMiCgAgg)))))gCgAo0BwCgIAo)CC)))H/9k=%iVBORw0KG;)NSUhEUg?AL8)+CAM?ABN2DpJ)pVBMVEX:/+xptbq8/SGc8PQyuXo8vP0+Pn5+/zl4vHv9vf9/v75+PyTgsfw9vecjszr9PXs6vXf2u3y9/jp8vPr8/TBud7Y0+r4+/vs9PWnmtHt9PXIweL5/Pz+:/8/f36/Pz3+/vx9/j2+vvu9fbq8vT1+vry+Pjz8fjv9/ft9fb3+vv2+/u5r9n4/Pz1+frz+fnx9vf4+/zu9Pbz+Pn+:7p8fP6+/xQ2OjO?ACsUlEQVR4Xu2Yx47cMBAFH0nlrMk5bQ7O4f8/zcJ650FtEPBRbUN1rwIFbs+qBQmSYG6Mc5Ux2yAB9ofdx0ltV2l6H8XwoyfRvjpBMW+R7aJyZadhhz0vQfQlFpUjpFogez4/deob9QVEV6JZOz9Vgt3kZvauhnUMoigRCEGyRTz5aq9qeA+iJjGn4GPeqZtbqmcQFQkp+tUPn1c29KgqEgsnMaZykmD/8jibUo1AF.eiv5Dtjk6kGyLvtpknzY2JEeQ4RPGkXUDHOLdLj5myLc902B/6j16CjJ4IumJOZBNyo5JtDyIG02AL7chiUGGThiKVQ5gsqpns1n9VEZHBP3hAe5Cz/AMnXgQT4fs9y/U1M5uDv1qgY6UpgUZOBFQNOi4u873tATQOtIAWHrGb+jEK80WHSXzS3Q4skBHSC4gwyYKcTew8noNzUBeXQQyaOJBzAYOcrwwl+bZc/5hE4msx7KOQJqR5/zDJvLkSo6OLL6S/e3JiY6EHyMnJ/UMn+ZE/sfPsu+/p+ZE4Ij8wwtBFCfyguIrgMxSLEEUJ9aOtABuQrIE0ZuYO7IG8G1KcQOiNEGRcxNZ39yoTeRGLP/7iIuDWP61JvK1ExvFXW9x22QgShNNX6zy76fU8sFrIapMNEVPLBo8lzXXNnsEUZmgyGs7lSv7w3NtOhNSNG8i7y0VosqE/BKD/QtFuXRrTRgn9rXTY03xAqI2sXCk6MSf6ewqWiFqTVT9kQfKqydGXm+ilW9L8e3U87akM+Hb1SYUIxDNCV5ckaNjdRVtBqI0IXe1LcSudg+iOZHQbOSXjCOI5kRLExDfGkFUJ7grVxC7cg2iOkHTSDMFUZD4f8+fBO8s0IE4eucCoiChj5GRkRFDFuhIyeXfSDj54h2SCGTgxHj+8fzj+cfzj+cfz/8LH8OOJIxbjtQ)ASUVORK5CYII=$/9j/2wCE?gGBgYGBggGBggMCAcIDA4KCAgKDhANDQ4NDRARDA4NDQ4MEQ8SExQTEg8YGBoaGBgjIiIiIycnJycnJycnJycB.gI.oJCw@Cw4LDQsOEQ4ODg4REw0NDg0NExgRDw8PDxEYFhcUFBQXFhoaGBgaGiEhICEhJycnJycnJycnJ:BABEIAJYAzQMAIgABEQECEQH/xACV?ACAgMBAQ)))?BAMFAQIGBwgQ?ECBAMFBAYHBAgHAQ)IBAwAEERIFEyEiMTJBUQYjYXEHFEJSgaEVJDNikbHBQ3KC0SU0Y3OSovDxCBZTk6Oys+ER?ICAQMBBwIEBQQDAQ)ECABEDEiExBBMiQVFhcYEykUKhsdEUcpLB8AVSwvEjYoLS/9oADAM?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?yquxsN8Ubnl/ZzF5eQmjmbCG0VHhVUVF36USOgmzxOZxFualpZn1N8RPPvIXN3uU/WL9MMkdu8lPVMvTh8+SxIptSqoUu4pn5IiIlIey9djyZe0x4W1FdJ1fT/aQjFoQ2+NtjwdR9623nL40uLlhrjsu6jTgAq2iO0tE4QtTfFBgOMPui2w8y464C2nsFfbX2udfGPQlxBJZhG77iJS9mlvTnvhL1hmXdIyVNqlxim2i/vxnD1XcZTgv/AG76Zh8eJBWTKi3bAVq+nbSGTzhMYUE1NszX0WJZYqjbtqVTdy8YCw8mjFqWwrJmde80ENfZOyukRrijBulnzcyA14gVeH3RGsOtdo0ootCeWPtmtVL71PGF3ydSpVAhYAeJZf7zIHTdmXbKLPgNy1+g4qW2HyZsGn1NpkbE2wXW/wBod26Hil0PZMEIKdOcUEt2lfJL32kt04F684shxKYyzcOXO0V6jVfLWK/MmYNqfSpO31fuY5jbDpOgMwQ7kKaHzVRuTRloyabWlyXWa8odiulZs3iEsghGvGZJ8k5xYxE5tud/cSdBSjyPHtKSZyPWZzTboOVRNb6JWlPGByovB6+i25NB3rtU/OLNZ2XzDZuXMBF2aL/pY1WflqBxbdbNlVr8onDvsNDcV68eH2ipxJZPaL9V1W3PDC9+YmDP9GZkzXuxPKr95Nn57oZw1prIF5viMUv6ViRZ6XsFyq2kqpwrXZ8I3YmmZiuUq6InJU0XzjR2cq1qQC1+nt95vjTGHWnUkLXqfX7SaCCCIYzPiHGFH/nmf+lOD6We9duru9ZLN/WPt1FSiax83+mv0X4mxi0z2wwNgpuRnSzJ9hoVJxh72nLR1ID4lXkta6Qj2S9P2M9ncIbwjFMNHF/VhRuWmCfVhwQHhF3u3r/PSCE+milZbMzslvNqneWpd4LdSu@49hsxjGDzuFys4eHvTbStDONIt7d3tBtBr8Y8Z7A9svSn227XN4w1Lg12ctJt+XdQmpPLr+zctIje6EiL46R6v2x7KMdssH+h5mbfkms0Hs6VUUc2ELZqSbtqCE+c3PR5MYl6UXeyD3aNybOVZz/AKVc7yY7trNybc37QSL390Yw/wBH8/jnpKxPs452gfecwhr1j6Wobkxs5NrY3OcYE+gltaUWH+xvobdx/H8fan5ydkpHC3iakZ7KynJu43RF4M32bW7v4kjXsJ6JfpecxWYxx+dkm5GYRmTIAVk5jU7ne99hUFN2+u/SMqLIAF7zVjQJJoV5T3bDJT6Lw6Uw0nnJkpRkGTmX65jpCKXunqWpFVd8M3lrGxjeanTiWv4xkx7rLom/i5w8KA49JWkEsWPjZuLlMKNYjz743eBNbqVWIKrVSrVeqxKoBHEw4FNubvbbmbG8rduypXLr0TziF15KKsZJdU69ISedWpV1VenTfEyJcgbYX94pMzhCWxXn8YSJ560neSr13qnhG024IbPPrzirdfUhtVdPl1hsoukbVf6RMuGYmrqMg7eBuXjsLwV2lr7qfCNmp1dd2m+m/wAoqG5i09yEn+uUWExj42H9UYuoljghRR/OIsmFrskkGTX+FVs+fFSwZxNBXZTUarvosWTc6RAhVWyvWiL4xy0pOvNzDc40oidfaG5KF4LFszjieskbLAN307qlwJTnbXnCvUdPiagQTtfEmxM1DS6g3TKSQa9+J1ciTxNi7eBB7ICVSSsdO0eY0DngkcVJzjlUcqLdxX2N0RE0pomtI6zDppZllbuKsV2XCqfQKEtcOTVsTZry/aLTEnMOzD7wAolUSZO5NbUtpv5xgpSZy5QMpe5Qr7SFF1XrXwhp3EQaccAmj7ql5aURF3c4CxAcw2xaMrKV3bl1RU1jcNlod3/P8MjKYLbvmyd/6tXl6QUHjkzvZTOtIAGqc0t4q9N8SSTZNsALgWOUtLdrTxjR2fynMvKOtmZy4efPlGXJ0G2mnrCIXVRB3Vqu5F1jQhyPp+reSA4w2rUSUWjf68RqCIJqaCVASJFK5bRpBLzKPkewQK3TipGmhtOqpLrXVoveTwm5hOFPOE87Iy7jpLtOG0BEq9eGsOQRrNphEQUQRRLactEREjMEEEJguEvJYoZ1SF/foSJ/JYvj4S8liongQhA/H8/9on6c03vtIc4tfbeLCa0SNjdW3lXxjQUjBtrDNRU8SB8703rotdNK+CxAKXRuaWr4wDSJxsNpGdpCdBhGYcG1enWLB6kV04I2LpE2KiZG24qUGIvZYrrr+vhFA7PJU;m/wD/AGLmcFKLql6rzWKdyTb+1sUyovDpuiyYY+zAJFjfcgfrFF09pwea2HjIEm0u3Iib/P4xo48prsry5axKZsEzZXapurCoiAL41RdUrGCUIA8j7yYIQxbTpPrHmH7Gud36pDMs/wB6mmtU8dEiGXdlK98S2f2dFKv8XKGvWMKqJhKvnZ7zlgr52ItYT6jSSdOo14BbP22mceMk0V2J3a6HzOmw8W3kbO8yKqfYjciJzrzjrsEcFqaOXuUrx503x5q3MYZntuOPepNWrsNOd4uuzs7/AJRf4Vj0u1PtBnoTNw2G6KiX37nPHyirykMGQKRQ+k/UD6x7HS5ECvYq+DRHkp8/Sd8kkpTjr7wgbZ0t31SlKaUpEbknM+suTAI1tUy7lWo20ovDFiipRF5dYIVGVvyqMnAhFb/UW9bP/crpqRemXr9i3Ls3rXz3dY2clZtyXZauC9skLetNlPKH4IO1b07sOwTvc97neIOy868CC6TZbalbSuzRLR4a9Y3kZV6WE8w02l2QGuz/AIocgjByNpK7UfIQGFQweySPEmEEEEaSWEEEEEJguEvJYr320cZIa05/hrFgXCXksKUiTGa+80cXKkefT8ICUablou9UWM5dhEHRVSMGiUh3a4kR5xcgZFdy16qtVjVUGnWI3V2oB3RNW13IjdzVy2K2dPYXSLFxpa7t8ITDK2qJRNiq5G047FEO5bV16RU3vEig0pdLU1VV6JHTT0sNy/nFajWQ4jzCqDre025zFVh7Nkx0utdQA8AOf.48h3ApTfJ4qUzbL1220Tf7yKNVjQwIVXVa67+UWsxM4hMEJTcwT5Ci23U0RfhFbNJaQ67W/l4xnYpaij95IXZslOVO34SSPzqatsOmW9E68ty1i0bxJcPbG+SB/M1A3KomnhuWKbOe1K/+GlImlZgGnBfftMdeMhHl9+kQZlZgNIo+J/7qTAIQe0rIo4QWCT5WtS+ke0ptC4Hq5MtHwHKsg64JVXZ7zl8I6GXxxJlo2QR9pwQS3ZG41p1olq+UcyOOh6sfqoEw+I924y83xL7aiCbvNYQGZdxBhyansWdCbYTYE3RASHl94l3xVZ3XGSDkCaGrIR3+0v45m4wdtj1HEFojSrgMV9tBthtuWIM9y7PzhT2Dyr5iQHZlnfxXNrZ898WccF6NMZl5xmcw5t914mVB76wSEW2lhW/dqKfjHexXm7PnLL4hBBBBCEEEEEIQQQQQhBBBBCYXcvlEFsMLuiO2MgzBErZlrvVLrCjgLFtMN6IsIuNlDWN9hFsq7mVriCK7vjEInrDUyy54D5wkoEHOHEojmLEEczZ013itITfJYldPZitmZlvLXvRu80VdPCJ8acfaRMu0rMVNWiS9PFPLzjnXphw12UQfzp5xZTBKZleWhb4XBmQsXR05mqWACbNOdUpWHyqqq9otna9ILRYC2IXcji9h+cSFnEHrslknR+6i/pELuGYga5hskAU9pFTnFwjUxw/RM2SfcMxRem4ITNzDAMxCRmM+tpfWNpNddDS2N8eahShQDspK3/VZFTYowoaSzEWdD42UfZ9pTuSx2FrrThrupErKYe42gkDgu0T7QhUbudEpFoY4LkmHqUwL13G+8ir59zpGsrIdnchTm2HCOi/tnAp/wBts/nEGXOz60U6dPOkBtX8u8Zx4KUM+LIxO6laavXusdveVE13SrpYNOlEjWbZBm3OknWyNOJwlRFT3h2N2sW6SWFX9+2r0vbwhMOl/wDVOmkQzk/gxNjKELgNiQ7bzquOBaiXCF2lFSKTMRjIGPU6k97u9+iORRsVH8J7RgGNMo8Ca29K8fKP+jibPCe1cuy+ih64JSx3ffS9v8TEY93jwLC5nAWJwZiVaenn2jBxnONvuibW68cpB3W11j3iWmG5uWZmmdpp8BdbL7ppcnyhTIVLnS2rYHhv+SyRMmu7BBFc1e:AK2SPmSwQQRpN4QQQQQhBBBBCEEEEEIRikZgghI3B2VhF8Nlaoqovu1r8osVSE30KlBVdOaRJjMjcShfZbFdkVrrqSqq6+cR1t5V8F1h58f94RIvCLFDYiTjcyB211VvH8NIqZqSlRVSbBd9d9dfjFu6RU3RWTSHauyRlvtRURFSGcRI9vKL5LNjf4nOzokw4jja2/ovKKedmpx53ON5Scom1VBWiJu2acou3ZScmXUlwTvDXZHfqvJd0VEz9TcdlZkUz2y29PDdviw7TBYVz39N8b6feR4ceX8AD6DxzzFQmJu77d0Oehlv/GGJdmXuQZuuQSqTm1Yv710KG8wS7Cpdp/qsXEvg0/MNBMgy0+xVFLvmlRf3kuRY2HZBT3x/9ef3E2ytkFdohW9j+H85ltnsy0HdTD2/2VE/mIxrNrLsqcrIzKuSzibWipVei1SGDaZkyDMwiU/g26U/cc03xO08TQXNYfJ5Z0ItEM9375WxWZ2RiSzg3yTQvf0bwqTI/ZkMA7i7F5FKEj4ux4SsYlZaz6yBXVThLl4J+sX+GPYSLA+rMJ3dQ74pci/8q1iHD8Xw+YIsxpBbt+xydpOpc9IYmx7KOpbOlLcPBauYl3JEtuSEAyo94sxCvwCoon08aEcfpurc6c3TZGKksURTl249o48fZ8zDupApyuWPetNubfd29zcXtU0jv8LZZlpFmUl20aZlhRlpsV2RAES23wpHA4BhuEOTbJYU463LtCq2Wrlrr99u6ty+9HeyCCFwipfxeEQ5jkIp8vaUb5P95LjOMDQmNseklSG5+RQAjsEEELySEEEEEIQQQQQhBBBBCEEEEEIRA8GsTxghSMg0ZgixKh9tNU5xXG2lV1pTd4xfuy9yQqsklV2fKGUzhRIWw3KlJcnk2eKE3WxqN9aLoWnLnHRDKqCKNqefOMepp0ReVFSqRt/GUTv+81HTCuCb5nKTGFNTqn6mSAYftD0r4UiqnMKwdiXD6sExOVXPOpKq0X3a/lHbzWHZ;LbY/BERfjFeODzeZmZyS5N8OwhV8oF6w2G7Tj4Ztq7zSTsPAWoO96mWv6ZzE6vZhuVG7DmQmrUEe4dbKvvIpJSqQlZgj492089p/VrRIf3qhtR2swxjHD6268P92Kf+qJFa7KYuwYpnGyRp7NNfOJcGYqneY0WLaS4f/jM5U6dyCveZRs9tjr+Xu3qnPrJ4SLYibT8uplwXPtCPiqW2fOMJhOGCp5JDy43XdydVEIuzw2emmUannHpps14TNAD/ItafCITwpgDFoZdsD3.uqVPAuSRMz42VgG0lv9qs3/AOItbhe5k6kEli:AJwoavGqsiJSUq5Ktr/RUvMarY+0rxKo9CKyqxcS8vLSxdzIMgbqJmWk6zS3ddcNVRNYmlMDxLKXKr9wQcMRX/.D+MWDHZR1wfrjq/xlmEnhuHT4rCuTJiBHZ9w3uRbzZcYyBu3xLlBq/q1MeQW1NvRhhsizLm/N5DbjzlBzm3SO5OnhTSLSWPLdAiAQ1pbepKldN0MSWFScgyjLIbOv4w4IAHsp+ELvku7Zn8LO23tGloClXSNqFsdvLkzaCCCIpmEEEEEIQQQQQhBBBBCEEEEEIQQQQQhGKJGYIITW1ILUjaCMTNyOwekaq2MTQRoRM3FchpvvQFLuu+IllAmCS4B3eKaeUPwQAd7kza+6fH3iaYdL+2nwHZiZqUlWdW2hEvepr/OJoIkkcIIIIIQgggghCCCCCEIIIIIT:Z%iVBORw0KG;)NSUhEUg?AL4?ABBCAM?ABYbu5j)MFBMVEX:/+1wv+jqv9siv/p6:W3f8zZv9gb:19v9NK/8zAP999:S:8z:8zzP+z6P/0gInF?ABg0lEQVR4XtXXy1ICURAD0H7c96D+/9/KQqkhlEKD0iTrWZzKYtJXbou2s+jvn1Q55f2mfAMOb6Ec5D6+c/ObcvOdm98qN9+5+a1w842b3wo33/6Dv2H22g3zCL+PKF/uSKDsGL8pN9+5+U25+c7Nb5Wb74R8h+ki41eYLja+Qf1k/AL1k/HF4XIg4ytMFxl/X7/z8aF+Ov6A6bqR:FTnswXa2B96LmyPZtfoH4yvsDlwMaHy4GLj/Xz8RXqJ+PD5UDGh+ni448O08XEh+lSrtUVnC6qm+ey/krGx+li4+N0sfHh7Cfj43Sx8bF+Mj5OFxkf67c8frF+jJUovzRIBr/4+kovMb5YPr/OdcrUGL9k8FG/Tw3xxbP55/o1R4hfk/m6IBbii+fyJ/JnjK+5/HWRGuJLfzG+xvh6lX89f8m3GH90ar7Ya/FrkF8y+XNhRpAvlsi3+H8fUxP5A+svYb54Hl8Uy4/zNZEvCvo4XzyRLzrhXg7zNZMvw/o6ptsQpvDnE+wJyVGQ5SG7)AElFTkSuQmCC!