Dot Net Perls
Top 37 C# Example Pages...

["5eywrykrsheyykryry.X,XBCEST~~}T~~YF574F(CECXBCP974774774774FjBCC`CEECP66GXCEP8F666*CEPFXS}T~~}T~~","ToString."," This method is virtual. It returns a string representation. We must override ToString on custom types for the method to be effective.","For numeric types,"," there are performance and functional differences with ToString. We test the performance of ToString with various arguments.","To start,"," the ToString method is a virtual method on the object type. Every type inherits from object. Thus you can use an override ToString method to change the implementation used. ","Object ","object","Then: ","When the ToString method is called on the instance, the override method is used. Here we override the ToString method.","Virtual ","virtual","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.7 (2017)\n\n","C# program that overrides ToString","\n\nusing System;\n\nclass Perl\n{\n int _a;\n int _b;\n\n public Perl(int a, int b)\n {\n _a = a;\n _b = b;\n }\n\n public ","override"," string ","ToString","()\n {\n return string.Format(","\"[{0}, {1}]\"",", _a, _b);\n }\n}\n\nclass Program\n{\n static void Main()\n {\n Perl perl = new Perl(1, 2);\n Console.WriteLine(perl);\n }\n}\n\n","Output","\n\n[1, 2]","Notes, above program."," The ToString method on the Perl instance is never called directly. It is called by the logic inside Console.WriteLine. ","And: ","The Perl instance is received as an object, and the virtual method ToString is called internally.","Console.WriteLine ","console","Then: ","The override ToString specified above is invoked. This goes through the object reference.","Numbers."," ToString is culture-sensitive. For a Double whose value is zero, the implementation of Double.ToString might return \"0.00\" or \"0,00\" depending on the UI culture. ","Double ","double","Next: ","We compare ToString() with no parameters (no format string) and ToString() with the NumberFormatInfo specified.","C# program that uses ToString","\n\nusing System;\nusing System.Globalization;"," // Important\n\n","class Program\n{\n static void Main()\n {\n int a = 4000;\n int b = 654;\n double c = 453.4;\n double d = 50000.55555;\n\n string a1 = a.","ToString","();\n string a2 = a.","ToString","(NumberFormatInfo.InvariantInfo);\n Console.WriteLine(a1 + ","\" \""," + a2);\n\n string b1 = b.","ToString","();\n string b2 = b.","ToString","(NumberFormatInfo.InvariantInfo);\n Console.WriteLine(b1 + ","\" \""," + b2);\n\n string c1 = c.","ToString","();\n string c2 = c.","ToString","(NumberFormatInfo.InvariantInfo);\n Console.WriteLine(c1 + ","\" \""," + c2);\n\n string d1 = d.","ToString","();\n string d2 = d.","ToString","(NumberFormatInfo.InvariantInfo);\n Console.WriteLine(d1 + ","\" \""," + d2);\n }\n}\n\n","Output","\n\n4000 4000\n654 654\n453.4 453.4\n50000.55555 50000.55555","Note, above program."," ToString calls with no parameters return the same strings as those with parameters. Invariant means that the format doesn't vary with the social culture of the machine. ","Overload ","overload","Info: ","In many programs, there is no culture-sensitive code. I use ToString() in many places simply to convert an integer to a string.","Also: ","ToString() with no parameters gets the culture internally, but this may be non-optimal.","Optimization."," The ToString method on the int type uses a property called CultureInfo to get the current culture. It sends the System.IFormatProvider to the ToString method. ","So: ","ToString with no parameters gets a NumberFormatInfo. I have found that property accesses like get_CurrentCulture() are slow.","IL ","il","Int ","int","So: ","A solution to this inefficiency is to pass ToString() an already-created NumberFormatInfo. Here's how I changed the code.","Example that shows NumberFormat: C#","\n\n","//\n// A.\n// This code converts the int 900 to a string.\n//\n","string a = 900.ToString();"," // \"900\"\n\n//\n// B.\n// This code converts the int 900 to a string.\n// Has the same exact results.\n//\n","NumberFormatInfo n = CultureInfo.InvariantCulture.NumberFormat;\nstring b = 900.ToString(n);"," // \"900\"","Optimization, continued."," Version B eliminates the need for ToString to access a property internally. This is a significant optimization for this operation, particularly in tight loops. ","And: ","It is around 10% faster for invariant cultures. This optimization may be worth testing in certain loops.","Benchmark ","benchmark","Benchmark results for ToString","\n\n100000000 iterations tested.\n\ni.ToString(): ","14882 ms","\ni.ToString(NumberFormatInfo): ","13931 ms"," [faster]\n\n","Code used in benchmark: C#","\n\n","// Code used in tight loop:\n","string a = i.ToString();","\n\n// Code used outside of loop:\n","NumberFormatInfo f = CultureInfo.InvariantCulture.NumberFormat;","\n\n// Code used in second tight loop:\n","string a = i.ToString(f);","Discussion."," When using simple integers or other value types, specify the invariant culture number format. This improves the relevant execution time by 10%. ","Also: ","You can implement a cache for string representations returned by ToString, such as with a lookup table structure.","ToString Optimization ","tostring-integer-optimization","Slow version of code: C#","\n\nstring a = 5.ToString();\n\n","Fast version of code: C#","\n\nNumberFormatInfo n = CultureInfo.InvariantCulture.NumberFormat;\nstring a = 5.ToString(n);","A summary."," We used an override method for the ToString virtual method on the object type. We looked at some aspects of the ToString method on the int type in the C# language. ","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","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAAA8CAMAAAA6wCQxAAAAGFBMVEX////w9f5kb9TGyu3b6P6hp+K71v8AIMVWWs88AAAErklEQVR4XtWa63LiMAxGVzf6/m+8Q0yR1SPUUmY65PtJEsfHujrm359IPw6N9/jl0L/TabHpCHc5KZwvuJjYZLH5u9sA07QFZz+Akze3AeFiwclbhtzzNvBiA4W53xKONqDED+1PHbIRTpb+HulJGxySs6e92QZnE0Pu/GLInVNuK/jN55Cb5Ugfk45Xmnw/KR+Dwa96HA6mH7t0H85V9fOy3uRHgN0ePbTI9Oa6IvWSyD2Nhl4V17vvr3PMdw33kYolVbVC5peU31XRIN08krIDTrbLORdfcKVrXotbfCDqeEXbwJShRlIlWVCxeSS1UuM+2bsdlB1bwmXa/TIq/E74Wt4KKMDFN0M0bJpwfiPAqiTHHU6wkngKbBTZKNhNwywiVoDpaNdIOFw2lI8CFzW2FwPycN4WZtXKSp90keqf/sXrSpy6+Y+qHO2uJk35kITT/d5FgbHTvnowS3TmlUridy4Mo/LLKqfFENKXj0zWAk9UTJw/SleJkq1uSTiM/7axLIYokjnkrNo3aDhm7MZwPu0uMDQ03mRA+2HIWYIQLotKpW12SpK0gPOpZ8T7qSAaZ7jgZPdiGwdHUSEcvZBwRrhxmvPXLRH6cu1PwNbNQPBTPIITmLL1booEVD6+GHgpDVdKHw0MXp+CXh7AYRz4VU8wb/OWfejLCZck1tiecHwN4UDrbbZTtuckkL7W2iebPA45kMAosBxS+mA5Jhh2DIwrpj3hst8ILrxUQ44kAqMgyyF2CJclfWjiWv+MMs0cEkmjDD2H3JyJa2PRNzEVxi8VlnRoVkDg2eSwNS4O7ww5ZkbmE7aEpmgqgSOfbHQ8i5FOKkHS5WQJR19mG9dHYeljVB+uuWSbXHYDlIX2+w8SLGGyBxzziXQhN2ZiSWSseFEygQ2SNKA+LOGScHDYhMOlWsJjPClxGWJloqNP9uHXhVwZ0l3gsLXqPBdy+ZP4wlBmuZnOKz4lhKPjJNwvQ87HkMt1WFLUJ0Tdms+ouV2Ifb1qi++Ae6GEF58g1dBdzuK76DgJhzqd75m7Zh1Dbl+2GNnYS85yvp6+5FcJ6nRdRITcUMIZco6SAaG5nMXdPX2pbDwd+eSprhmFL+EsTfwiHPtMb+CkfL0WKZMFXBty8YOQk33k8NEr5yRpZvvdyhpOay46Ydec/v9K1yz1Y7MqDgpYB9qDAs/nLWJB0NXvyOuj5lpdhtxtGa96umu2DS5ntilsKgRpQgwNOX2VH9IZcrmKL3bN+Z2SZXzuvqQOTSne1MBh2Tc4kWe7ZsX+sVPAbpSXoaFgfFph7zOdVMsFjndIkt4bvauofn+64w9t5xaKb+Hz4Z3GBpcHc4VO8gyu5pNDsacOPWRdf6tyzHCbovYfm6UcFDBl4kS1PeAsuRVaGC8f9zM55xkkqkBzBnmGs3frgK39FIQf31MsfH3FaHdv8tZwaGIIhwOPc8EpDAdk7AaAfB447lW898qzwGl7PB60EYvDCZJldP28oBDAbqeoBNkoeZ5WojtBkXvTdMJGNsJKAxVwwdXIuqO1fHPTUTHsB8B2Mjrr0j6b5hPScaviJzEbJXWv0p+JOnbh55Hhz5/D/ywbsv9huWAxbhOvjwAAAABJRU5ErkJggg==)","url(data:image/png;base64,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)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAAA1CAMAAAADBkVKAAAAMFBMVEX////YlrPsbZex+/7+r8TQ/P6W9/v/7/Oxy9rEssfk/v+h4ev/0t3/Gmv13+aL+v54uCjDAAADTUlEQVR4Xu3X247DIAwE0Njcc2n//2+XIsWCTt1cFJR96DwmEeZIOywdDmVZMw//LbPs7X+TfqQf6bmGD5GCXdORM8rm+pOwtf1JP9KP5HLolX9Oesw5ocOk+0hjt0mYH+lHGtdsSoIlvp4UZmuZeclhZvvYIPF60HKzyLLGqhcifGZZln00pO3F8MwXDS/v4fkriWRe+HhrCntJwWbO5aTiwXD4QrKwevOUh32kQMLrQMKwQoI/MVyJ9pFekylNHUjMRDFOz5wpRuJmKST5FTg1cHFTceLtAZ8tFGX7ZQqGFlhNSMppMjoDy0xUuZFkGiGDOwvCHhKTz4DLScWDiVVPgOTq1eUkkKdTYW6SOAmgHwlN9nOX6nnilpXSstA2KRbANikx8wUk2S1/JnmBV27fVkknYfIgOysk9+JcQ/JfSAbOB6jSIVLR9ic9SeBAeiuTUqX9pKELyZuSipRU0nuZHm2VTpOaDcQck3OcNLxdKp2Q4heSb0hWSFKlAyTjxo0L8hESpumJTjK1G8/YxwYJOF1IchMnhCPJwSEi6qmgd5CmRIXZiRSsXIJ4k9QY+R0ZM1EhAbMjyWbKARKUaYYq3U2iWkQ7SO35VgweqnQnyb4gFGOUbW2TXHM+UEFLuYa7SSFNothFQiRDlW4lOanFEdLg28s4VOkmkpTiBMm054OBKt1Gcs+TJNeeD1ClziSrk/xZkignIUmVbiW5+p+5c+M4Alwb5GtlgipdQgoqibcb8aR15l6SqSfEatx8HWlWSYvdJCXtq+0WUiZ5qNIlpMXOJQEPpIXLGyDB7x4gzTqzrg9U6RKSZG5ISb294YCFbE5D4qCWtjrkCKrUkzTtI5ECz1ORBGVKUKWzJNyRkNyHV/TlDpCOk2TEFH0lHi4ieeISOQvGpyQSMxPFTNGPB8+rKFVDdVI7Aqp0miQ7auhWtBgkSRJldnOBnYrpoZBghFSpF8nsIjnQwnJYWpwOVTpPcjrJ7SIN/hxJGaH1YlSeYXBHydqH8gpGgxxDQIIDt465gAQ7cvVAPVhHjIxFklYmdwVpMEjSftt5AyQw4XdI0qs8XkCCjTvVa5y2Mdd6RllTI/WPM2Xrxjg3fn7nsweDXxlZYMyPVMAfiN08uNcDivYAAAAASUVORK5CYII=)"]

["url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAACCAgMAAADasxWRAAAADFBMVEX/6Nn///+VlZX29va5ksB5AAAASElEQVR4AWPACZj/f0DmjkqOSjKtQgcLyJccZiEE9SOmP8mXHEaBMBoIo4EwGggryJccvvVKKAogTnJUclRyVHLklgmjkqOSAALWyrsxEHLDAAAAAElFTkSuQmCC)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABPCAMAAACZM3rMAAAAGFBMVEX////w+/6Ep/SrxffC2Png+f7W5vtRgvA58pkIAAADDklEQVR4Xu3Z626rMBAEYM/e8v5vfBo1ZuQe1kBLAEfMz7SS82nJsrbLCXm8ssO/MTfkhtyQ03NDbsgNuSGh8gUSUQwN0QejGBjSJgaHMPEpEBkcwtinQGRUiKiFe8gkwaAQf2WS2OAQrxAdG8KSyK4QLnQYxD4FEoNDADxd4I/kbEi+9KpviE+BlI+BYDPEVJ5GEY2BIdBmsLFRISGPNoKrQDa136CAkotAbAMErAejBISKfNFE1OJwiG6YtbS7u7SGeTQEG4ZGTABRVWFJqDwNwoclliFaGeHPaJWAjuMhEd/PdHWIL0Mk2csYHQdCkigWIGzU+nNwVv7tfEgsQdjfzGvY8JQAETkRor4M0Wr2GpkgfES/iWHnQMQTSPITAQBCHiXoqDkYwuXLBsg3DIRYhfiZEDFfCcnCxrwGAlOpR1L4NcTMVFVE6iiu4c+ghfgrDS6LTEZdhkCTbrkR4knKXyFsaOhBLJlw9oLgb5BKYmUxD7HlY2chcDsE5S8QJQT91WPFnYbQtxmCshdk5ZDTRuYnus0QoKSQ3qjFTBD0IZa8/62FVEmUgjCdHxJQ8zJQsRBC4tcQTv7t+Czdx4+QnaL8Fm2wEoLG0W4EGJd3Q+yRlAQsVhdi6VWAFcb13RBnm7IXIcxMlRBLIFlJ5/bZcHkzJF2AEO1ByO1eBcCjBcjeEFgCaVrmSgiAFOIuzRng7hCXDDIRtQNp3v9zVwGEeD1YUge8Zj9IImHLZPOXHgTdqwBPsiMkkSQtM4dMtMMhXEF/UkS0FOgWCPoHz3grhCuY1r2MqL72ZHDZD1IOgrSpkNgRUt4NKcghrjkk32lUvnQWQtkfUtKSu3vIg1HrQCy9CmAAcDB/Q1JI0/ytVeYH//zk8GB+O4M1PfP/KnFoPCEAqgDAlubvP9//yjfLdbIGIpMEzcGQXAmCZQjSrS5KuSgFIGRx6hS/FoQ9E5k0OQ4iZIzA3WYc5uNA2BBiph7uZbCA+/TmQAVDQtx5rWDuhIwnYcZ05LPagMHoBWFGrweD0cvB8C7gaox/oFZvpHcPXdQAAAAASUVORK5CYII=)","url(data:image/png;base64,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)","url(data:image/png;base64,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)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABJCAMAAABPapnRAAAAMFBMVEX////9amn+z879o6Lx//rj//T/MTH95OP/9PT8ubj/AADj0cTR/+3b6drx9O/W9ORYTpHNAAAEfklEQVR4XtWa23KzOgyF0cFHkvT933Y3wa4QQYPr/RPqdUenhnwjLUUSmYYRs6tinqaQiACAvoVhIAp3q3KOHwmyFsQhMITi5pgf5PNWfoho3ETMHARDBGNxOGZOeU+kAqgOMLyFD4jC3+TIuAZRAWT2u+iewkUcjr8vJa+Alg+PSAQ52iCPbIniBT53yyVUjHDALiCYTflwFQcpSyiZFqH8F0g0R/TCcQjinOOV16HKX0HiKocKCDTB18sC/yVOCwk+XberZ/Vnwt+AxGIHd1vfLIDUuw+IdUBQAtJxSNstVhL6oNVZZ1bqSUcqkSqhkkLuPwhSL4ttYzu9HEKpZpowf84iTmc7TD1ej9IjsMq5HKTDdq5Uu+fTEgG8qh2lWAF4Ub0MiPM832/O8XL9OuLLiSOL0K9AgiSQAYI7cwJv5gTAdbSdThFauqdJnaF4nO19XrdB3hs69HkrCG8pwuwrCDMjGF2Dne19XhcQjZjf5p0AeUc+bUCYudzb7fYPEA+yferyugnij8MhoZN7O2YuaTszP4RDRKd43W4TCkd9VFJjCxHIdeQfEHeTdhT5sR/DeIrXBUTHitSYIBwwF+ZINURUQJ4cTkCkkgPGZ7mrIU1lU+LcnVYq1EAbpQ6vC2K+qz9XDj+r707d5jxju/JF5YC707cmSdfcIGrxup1ZBVzTwdf+V04J3eKmAgA1VYx7C/KBsMXrZvFNe2MCGN3qvC4L9ebelxAKSNqCQAtIaPG6NdnAbpTibu3TIOWvRf6+sbOA6LWBLd/mdVcDonvfec82YToGkTgJogkScoPgf/Xwu3XsfabxqjDUI8JB+4/ll9zta/4WFtWn4Eahxes3xZF8Vk7X1D5ajbLXHCFXgfHYg2y3ZaeEcEiZz/BlPJ61oZLEbw2I0laZg5M9sTbOxsyq2ixCTFTQhGP7hBzZ6c9bj/iwCaz0Im7RDwi8FHrHXL2bOzIZPKw0lAobkMTRSQDVZOa7utj2veTBFypJAXDrFbGHH3njAOtlYersYv/Jbo5CiZ6E76DKp7cSAMcB6e/hNQjYGPptxWE7BGGzLZTqSyfM6y17eA8pKmjVDpmLe3swizZDfw+vsz5ssl5eN7aDeCDsWHueM68frYgdiwlpLcTYuWU7a15vX8eG9i3bwYET5vWmJ6h1XfsB/8ndXBdIf96et5vrAGl37RVe7wexvY7Xet12YejYqF/odfu/U6NrJx3uxlPhBK8b8YMO117rdVmr6OkpjeR14RaSKFv0Tte2nwr/lt7pgY9WrzbYKQikYLn2Qq+L9JYqeOl25zsv5sTy3gqNbvyDXu/9vY4WfsLr/fTtIwn2e91umPvp+0nwb3pdxBoFwQL5q163UchvIYBSOMHrZ/8Q97XMInhKZkRLnV4fTLbXB5M9HI8lu/kbTHYdHU66vY5+zMyyB57BZM87Y8j+oe+YAZF+geWt10gOcYvqUpleAul6aCxfGO/XB+CwRrUBODrmG4/TmCDTBGsMiqM1V1J1vVDgNJSYy0yzCJGIEH8H8R86J7+C+8H8WAAAAABJRU5ErkJggg==)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJgAAABZCAMAAAD1qB0CAAAAGFBMVEX///+vr6/Nzc1kZGSNjY3k5OQxMTEAAABgpIToAAADeUlEQVR4Xu1Z23YcIQxbX/n/P273lMYJRSilM4d5qB5DwAIJe7y8NqEi+noeIttPpD6S1xvyMGLZOvKGACqyu19pHTccmfwyyR41L2JGJuwunbEz224jVlv2bWJ4/j4USHGlx454JO66la3g/3Ytr82w0ZAU0hGUWc2+x2ItpolTuZpu5pT/vndzfpSvM3BkMakbcQSGlPTDpTmBksRi9wMoedxiAZQ8bjFFSnqd4xFIKTm3mBwnFnPvxek0ZnOJ83U6jcmOxRTUUj5JKbFBMu34Tdi18JVBSJ8LG7cQz7cW8ir0SfVnhEFJbQv4JABMwlEUmkU1Fx20Ex2UlIZR4SsAcqJWCa5th8Gt4jQWpSxEjLNg42azcUEiYGJ1J62jdaQV/EuOMTMcoI2wfp1cVFWMtwkyH4/1PJEYhLdBBxsJhH2OolkDa2KAL0uvNicWU0ktZh2MLVd21AKzukG8IlDtsqmuiAk4Cf8uMVlZGIfAMfogTCKXERM8tCDmaBIpHNSLupB6qaXOhwRuBnqR98K4SkNiiebYdxsGZ8TIdw2Y6JsW4140EhsO+lTJwALggsZPFLsf6JxcAKJUsk5Htog5UB9YjKY7fqKcWAlGBCAWo5d2h1hyAbjF+IlyYuOY86zJLcZPFBNLsLL+lQC8YeEFhKcLGcNzAXhPzG83/zLxCr+RXoNITgqIL+LYoOReBc+9gmWLOLUqEGDfYryAkGzhWIB7LRYL74eZ6WUW4+mVe5/Hu99izvZ1v8UE0y4lOfwKi/GCpZA2FeAmi/FRLsC+xfjt5mF4+8AtRkLvbAtflssspmA2HlQNLEBuZxV+u2vQkRSmSADjku9X8EgoZAAllBLjkvM8ZVjIJA81VEojJxYVAAopQIiZZgLX47888BcXbjBrBbIeI2b0fVYJL/QbqaKjlLcIoeK+INYvUKgL8ErLoO+znJi2AezMCzJYrJA1pInfLLCUtVMcsgQZEYsNprxHVSZXFS7rLGA63lvBZGox08lOU8ltLwNAZulokcjP3AO3gFLUypMYVrwGhH8cuC/X6BHNg1Rw+Vgxnb/ViZUrR0R/a2OI+i/2kahvvI6j+oHD4N/n53H+pX+/BTxvsfbfYhst4KPQznufpddnwU97n/bgT81i9lQl83nZ9XnpItSH78x4ACnLNoPJcQ0B9HiWALhAzR98s0wlubKPewAAAABJRU5ErkJggg==)","url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANMAAAA8CAMAAADLy3+8AAAAGFBMVEX////++Of/8crj4t+/vr2SkZFWVFT/67CB/ywxAAAEFklEQVR4XtWbYZOzIBCDN9nF/v9//I6FzBVKGaXyOs0XW5H1ntsYRr2zWiAfWSRgJ4W/6TOzK9k1Ah+NiPWzpWbyJVB49EQsni2xZVpBJHHxbCFdzsTHQPhmNifPj0VNkrBwtpBaYVWTJEwhSafSRcIyJOmr2ZxxCZY5T+IUkoQJlyz0noQpJGnYpG+YVvjncUw4bxHYeqgp30ocEK1isqolYIcRc1DMwtyieE1OEB8awEP2IQCwJSJxQ58Mbx7hMSZDhxsiIjwivM9kXMtkfKtzNLvQsQsKUmxZ3p+5mMnYlsG5PGbbAtLTtiUH0rbBelrNZBif0cZQbDlJPDsEANsWY/OBa5hsikkE73vwNJ6NmEy5ZLcw8XiPxbTtMgPiIxMz0e1MY7VMYfCPIWFQInLX6wKwhgnfeIFi2mBIuU0jgaJiFm68nAaeykGe9Bgo7V/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/EvuFGjU3drsAAAAASUVORK5CYII=)"]