{"id":2953,"date":"2026-05-08T09:59:25","date_gmt":"2026-05-08T01:59:25","guid":{"rendered":"https:\/\/randengzhe.cn\/wordpress\/?p=2953"},"modified":"2026-05-08T13:13:33","modified_gmt":"2026-05-08T05:13:33","slug":"ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83","status":"publish","type":"post","link":"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/","title":{"rendered":"C++\u9762\u5411\u5bf9\u8c61ncurses\u5e93\u5b8c\u5168\u5b66\u4e60\u624b\u518c\uff08\u542b\u901a\u8baf\u5f55\u9879\u76ee\uff09\u914d\u7f6e\u5f00\u53d1\u73af\u5883"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\r\n<div class=\"ez-toc-title-container\">\r\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\r\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\r\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#C_%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1_ncurses_%E7%B3%BB%E7%BB%9F%E5%AD%A6%E4%B9%A0%E6%96%B9%E6%A1%88%EF%BC%88%E4%BB%8E%E9%9B%B6%E5%9F%BA%E7%A1%80%E5%88%B0%E4%BC%81%E4%B8%9A%E7%BA%A7%E7%BB%88%E7%AB%AF%E7%A8%8B%E5%BA%8F%EF%BC%89\" >C++ \u9762\u5411\u5bf9\u8c61 ncurses \u7cfb\u7edf\u5b66\u4e60\u65b9\u6848\uff08\u4ece\u96f6\u57fa\u7840\u5230\u4f01\u4e1a\u7ea7\u7ec8\u7aef\u7a0b\u5e8f\uff09<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E4%B8%80%E3%80%81%E6%96%B9%E6%A1%88%E5%AE%9A%E4%BD%8D%E4%B8%8E%E4%BA%AE%E7%82%B9\" >\u4e00\u3001\u65b9\u6848\u5b9a\u4f4d\u4e0e\u4eae\u70b9<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E4%BA%8C%E3%80%81%E5%AD%A6%E4%B9%A0%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87%EF%BC%8830_%E5%88%86%E9%92%9F%EF%BC%89\" >\u4e8c\u3001\u5b66\u4e60\u73af\u5883\u51c6\u5907\uff0830 \u5206\u949f\uff09<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#1_%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96\" >1. \u5b89\u88c5\u4f9d\u8d56<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#2_%E7%BC%96%E8%AF%91%E8%A7%84%E5%88%99%EF%BC%88C%EF%BC%89\" >2. \u7f16\u8bd1\u89c4\u5219\uff08C++\uff09<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E4%B8%89%E3%80%81%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF%EF%BC%88%E5%85%B1_5_%E9%98%B6%E6%AE%B5%EF%BC%8C%E6%80%BB%E8%AE%A1_10_%E5%B0%8F%E6%97%B6%EF%BC%89\" >\u4e09\u3001\u5b66\u4e60\u8def\u7ebf\uff08\u5171 5 \u9636\u6bb5\uff0c\u603b\u8ba1 10 \u5c0f\u65f6\uff09<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E9%98%B6%E6%AE%B5_1%EF%BC%9Ancurses_%E6%A0%B8%E5%BF%83%E5%8E%9F%E7%90%86_C_%E5%B0%81%E8%A3%85%E5%9F%BA%E7%A1%80%EF%BC%882_%E5%B0%8F%E6%97%B6%EF%BC%89\" >\u9636\u6bb5 1\uff1ancurses \u6838\u5fc3\u539f\u7406 + C++ \u5c01\u88c5\u57fa\u7840\uff082 \u5c0f\u65f6\uff09<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E7%9B%AE%E6%A0%87\" >\u76ee\u6807<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E6%A0%B8%E5%BF%83%E7%9F%A5%E8%AF%86%E7%82%B9\" >\u6838\u5fc3\u77e5\u8bc6\u70b9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#C_%E6%9C%80%E5%B0%8F%E6%A1%86%E6%9E%B6%EF%BC%88%E5%BF%85%E9%A1%BB%E6%8E%8C%E6%8F%A1%EF%BC%89\" >C++ \u6700\u5c0f\u6846\u67b6\uff08\u5fc5\u987b\u638c\u63e1\uff09<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E9%98%B6%E6%AE%B5_2%EF%BC%9A%E8%BE%93%E5%85%A5%E3%80%81%E9%A2%9C%E8%89%B2%E3%80%81%E7%AA%97%E5%8F%A3%E3%80%81%E9%94%AE%E7%9B%98%E4%BA%8B%E4%BB%B6%EF%BC%8825_%E5%B0%8F%E6%97%B6%EF%BC%89\" >\u9636\u6bb5 2\uff1a\u8f93\u5165\u3001\u989c\u8272\u3001\u7a97\u53e3\u3001\u952e\u76d8\u4e8b\u4ef6\uff082.5 \u5c0f\u65f6\uff09<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E7%9B%AE%E6%A0%87-2\" >\u76ee\u6807<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E6%A0%B8%E5%BF%83%E7%9F%A5%E8%AF%86%E7%82%B9-2\" >\u6838\u5fc3\u77e5\u8bc6\u70b9<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E9%98%B6%E6%AE%B5_3%EF%BC%9AC_%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E5%B0%81%E8%A3%85%EF%BC%882_%E5%B0%8F%E6%97%B6%EF%BC%89\" >\u9636\u6bb5 3\uff1aC++ \u9762\u5411\u5bf9\u8c61\u5c01\u88c5\uff082 \u5c0f\u65f6\uff09<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E7%9B%AE%E6%A0%87-3\" >\u76ee\u6807<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E5%B0%81%E8%A3%85%E7%B1%BB%E6%B8%85%E5%8D%95\" >\u5c01\u88c5\u7c7b\u6e05\u5355<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E9%98%B6%E6%AE%B5_4%EF%BC%9A%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84_%E6%96%87%E4%BB%B6%E6%8C%81%E4%B9%85%E5%8C%96%EF%BC%8815_%E5%B0%8F%E6%97%B6%EF%BC%89\" >\u9636\u6bb5 4\uff1a\u6570\u636e\u7ed3\u6784 + \u6587\u4ef6\u6301\u4e45\u5316\uff081.5 \u5c0f\u65f6\uff09<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E7%9B%AE%E6%A0%87-4\" >\u76ee\u6807<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E9%98%B6%E6%AE%B5_5%EF%BC%9A%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE_%E2%80%94%E2%80%94_C_%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E9%80%9A%E8%AE%AF%E5%BD%95%EF%BC%882_%E5%B0%8F%E6%97%B6%EF%BC%89\" >\u9636\u6bb5 5\uff1a\u5b9e\u6218\u9879\u76ee \u2014\u2014 C++ \u9762\u5411\u5bf9\u8c61\u901a\u8baf\u5f55\uff082 \u5c0f\u65f6\uff09<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E5%8A%9F%E8%83%BD%E6%B8%85%E5%8D%95\" >\u529f\u80fd\u6e05\u5355<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E5%9B%9B%E3%80%81C_NCURSES_%E7%B3%BB%E7%BB%9F%E5%AD%A6%E4%B9%A0%E5%A4%A7%E7%BA%B2%EF%BC%88%E6%AD%A3%E5%BC%8F%E7%89%88%EF%BC%89\" >\u56db\u3001C++ NCURSES \u7cfb\u7edf\u5b66\u4e60\u5927\u7eb2\uff08\u6b63\u5f0f\u7248\uff09<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E7%AC%AC_1_%E5%A4%A9%EF%BC%9A%E7%8E%AF%E5%A2%83_C_%E5%B0%81%E8%A3%85%E5%9F%BA%E7%A1%80\" >\u7b2c 1 \u5929\uff1a\u73af\u5883 + C++ \u5c01\u88c5\u57fa\u7840<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E7%AC%AC_2_%E5%A4%A9%EF%BC%9A%E9%A2%9C%E8%89%B2%E3%80%81%E8%BE%93%E5%85%A5%E3%80%81%E7%AA%97%E5%8F%A3\" >\u7b2c 2 \u5929\uff1a\u989c\u8272\u3001\u8f93\u5165\u3001\u7a97\u53e3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E7%AC%AC_3_%E5%A4%A9%EF%BC%9A%E9%94%AE%E7%9B%98%E4%BA%8B%E4%BB%B6_%E8%8F%9C%E5%8D%95%E7%B3%BB%E7%BB%9F\" >\u7b2c 3 \u5929\uff1a\u952e\u76d8\u4e8b\u4ef6 + \u83dc\u5355\u7cfb\u7edf<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E7%AC%AC_4_%E5%A4%A9%EF%BC%9AC_%E6%95%B0%E6%8D%AE%E7%AE%A1%E7%90%86\" >\u7b2c 4 \u5929\uff1aC++ \u6570\u636e\u7ba1\u7406<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E7%AC%AC_5_%E5%A4%A9%EF%BC%9A%E9%A1%B9%E7%9B%AE%E6%95%B4%E5%90%88_%E2%80%94%E2%80%94_%E9%80%9A%E8%AE%AF%E5%BD%95\" >\u7b2c 5 \u5929\uff1a\u9879\u76ee\u6574\u5408 \u2014\u2014 \u901a\u8baf\u5f55<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E4%BA%94%E3%80%81C_%E7%89%88%E9%80%9A%E8%AE%AF%E5%BD%95%E6%A0%B8%E5%BF%83%E6%9E%B6%E6%9E%84%EF%BC%88%E9%A2%84%E8%A7%88%EF%BC%89\" >\u4e94\u3001C++ \u7248\u901a\u8baf\u5f55\u6838\u5fc3\u67b6\u6784\uff08\u9884\u89c8\uff09<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/randengzhe.cn\/wordpress\/2026\/05\/08\/ncurses%e5%ba%93%e9%85%8d%e7%bd%ae%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83\/#%E6%A0%B8%E5%BF%83%E4%BC%98%E5%8A%BF\" >\u6838\u5fc3\u4f18\u52bf<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\r\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"C_%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1_ncurses_%E7%B3%BB%E7%BB%9F%E5%AD%A6%E4%B9%A0%E6%96%B9%E6%A1%88%EF%BC%88%E4%BB%8E%E9%9B%B6%E5%9F%BA%E7%A1%80%E5%88%B0%E4%BC%81%E4%B8%9A%E7%BA%A7%E7%BB%88%E7%AB%AF%E7%A8%8B%E5%BA%8F%EF%BC%89\"><\/span>C++ \u9762\u5411\u5bf9\u8c61 ncurses \u7cfb\u7edf\u5b66\u4e60\u65b9\u6848\uff08\u4ece\u96f6\u57fa\u7840\u5230\u4f01\u4e1a\u7ea7\u7ec8\u7aef\u7a0b\u5e8f\uff09<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u662f<strong>\u5b8c\u5168\u57fa\u4e8e C++<\/strong>\u3001<strong>\u9762\u5411\u5bf9\u8c61\u601d\u60f3<\/strong>\u3001<strong>\u5faa\u5e8f\u6e10\u8fdb<\/strong>\u7684 ncurses \u5b66\u4e60\u65b9\u6848\uff0c\u629b\u5f03 C \u8bed\u8a00\u9762\u5411\u8fc7\u7a0b\u5199\u6cd5\uff0c\u7528\u7c7b\u5c01\u88c5\u3001RAII\u3001\u5f02\u5e38\u5904\u7406\u7b49\u73b0\u4ee3 C++ \u7279\u6027\u5f00\u53d1 ncurses \u7a0b\u5e8f\uff0c\u6700\u7ec8\u5b9e\u73b0<strong>C++ \u7248\u9ad8\u53ef\u7528\u901a\u8baf\u5f55<\/strong>\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E4%B8%80%E3%80%81%E6%96%B9%E6%A1%88%E5%AE%9A%E4%BD%8D%E4%B8%8E%E4%BA%AE%E7%82%B9\"><\/span>\u4e00\u3001\u65b9\u6848\u5b9a\u4f4d\u4e0e\u4eae\u70b9<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u7eaf C++<\/strong>\uff1a\u5168\u7a0b\u4f7f\u7528 C++11 \u53ca\u4ee5\u4e0a\u6807\u51c6\uff0c\u4e0d\u7528 C \u8bed\u8a00\u5199\u6cd5<\/li>\n\n\n\n<li><strong>\u9762\u5411\u5bf9\u8c61<\/strong>\uff1a\u5c01\u88c5 <code>NcursesApp<\/code> \u57fa\u7c7b\u3001<code>ContactManager<\/code> \u4e1a\u52a1\u7c7b\u3001<code>Window<\/code> \u7a97\u53e3\u7c7b<\/li>\n\n\n\n<li><strong>RAII \u8d44\u6e90\u7ba1\u7406<\/strong>\uff1a\u521d\u59cb\u5316\/\u9500\u6bc1\u81ea\u52a8\u7ba1\u7406\uff0c\u675c\u7edd\u5185\u5b58\u6cc4\u6f0f\u3001\u7ec8\u7aef\u5361\u6b7b<\/li>\n\n\n\n<li><strong>\u5de5\u7a0b\u5316<\/strong>\uff1a\u5206\u6587\u4ef6\u5f00\u53d1\u3001\u4ee3\u7801\u590d\u7528\u3001\u53ef\u7ef4\u62a4\u6027\u5f3a<\/li>\n\n\n\n<li><strong>\u6700\u7ec8\u6210\u54c1<\/strong>\uff1aC++ \u7ec8\u7aef\u901a\u8baf\u5f55\uff08\u589e\u5220\u6539\u67e5\u3001\u5206\u9875\u3001\u5f69\u8272\u3001\u65b9\u5411\u952e\u83dc\u5355\u3001\u6587\u4ef6\u6301\u4e45\u5316\uff09<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E4%BA%8C%E3%80%81%E5%AD%A6%E4%B9%A0%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87%EF%BC%8830_%E5%88%86%E9%92%9F%EF%BC%89\"><\/span>\u4e8c\u3001\u5b66\u4e60\u73af\u5883\u51c6\u5907\uff0830 \u5206\u949f\uff09<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96\"><\/span>1. \u5b89\u88c5\u4f9d\u8d56<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Ubuntu\/Debian\nsudo apt install libncurses5-dev libncursesw5-dev g++<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_%E7%BC%96%E8%AF%91%E8%A7%84%E5%88%99%EF%BC%88C%EF%BC%89\"><\/span>2. \u7f16\u8bd1\u89c4\u5219\uff08C++\uff09<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>g++ -std=c++11 main.cpp -o app -lncursesw  # \u5bbd\u5b57\u7b26+\u4e2d\u6587\u652f\u6301<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E4%B8%89%E3%80%81%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF%EF%BC%88%E5%85%B1_5_%E9%98%B6%E6%AE%B5%EF%BC%8C%E6%80%BB%E8%AE%A1_10_%E5%B0%8F%E6%97%B6%EF%BC%89\"><\/span>\u4e09\u3001\u5b66\u4e60\u8def\u7ebf\uff08\u5171 5 \u9636\u6bb5\uff0c\u603b\u8ba1 10 \u5c0f\u65f6\uff09<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E9%98%B6%E6%AE%B5_1%EF%BC%9Ancurses_%E6%A0%B8%E5%BF%83%E5%8E%9F%E7%90%86_C_%E5%B0%81%E8%A3%85%E5%9F%BA%E7%A1%80%EF%BC%882_%E5%B0%8F%E6%97%B6%EF%BC%89\"><\/span>\u9636\u6bb5 1\uff1ancurses \u6838\u5fc3\u539f\u7406 + C++ \u5c01\u88c5\u57fa\u7840\uff082 \u5c0f\u65f6\uff09<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%9B%AE%E6%A0%87\"><\/span>\u76ee\u6807<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u7406\u89e3 ncurses \u751f\u547d\u5468\u671f<\/li>\n\n\n\n<li>\u7528 <strong>C++ \u7c7b + RAII<\/strong> \u81ea\u52a8\u7ba1\u7406\u521d\u59cb\u5316\/\u9500\u6bc1<\/li>\n\n\n\n<li>\u638c\u63e1\u6700\u57fa\u7840\u7684\u5c4f\u5e55\u8f93\u51fa\u3001\u8f93\u5165\u3001\u6309\u952e<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%A0%B8%E5%BF%83%E7%9F%A5%E8%AF%86%E7%82%B9\"><\/span>\u6838\u5fc3\u77e5\u8bc6\u70b9<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>initscr()<\/code> \/ <code>endwin()<\/code> \u81ea\u52a8\u8c03\u7528\uff08\u6784\u9020\/\u6790\u6784\uff09<\/li>\n\n\n\n<li><code>noecho()<\/code> \/ <code>cbreak()<\/code> \/ <code>keypad()<\/code><\/li>\n\n\n\n<li><code>mvprintw()<\/code> \/ <code>getch()<\/code> \/ <code>refresh()<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"C_%E6%9C%80%E5%B0%8F%E6%A1%86%E6%9E%B6%EF%BC%88%E5%BF%85%E9%A1%BB%E6%8E%8C%E6%8F%A1%EF%BC%89\"><\/span>C++ \u6700\u5c0f\u6846\u67b6\uff08\u5fc5\u987b\u638c\u63e1\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;ncursesw\/ncurses.h>\n#include &lt;string>\n\nclass NcursesBase {\npublic:\n    NcursesBase() {\n        initscr();            \/\/ \u521d\u59cb\u5316\n        cbreak();             \/\/ \u65e0\u7f13\u51b2\u8f93\u5165\n        noecho();             \/\/ \u4e0d\u56de\u663e\n        keypad(stdscr, true); \/\/ \u5f00\u542f\u529f\u80fd\u952e\n        start_color();        \/\/ \u5f00\u542f\u989c\u8272\n    }\n\n    ~NcursesBase() {\n        endwin(); \/\/ \u81ea\u52a8\u9500\u6bc1\uff0c\u7ec8\u7aef\u6062\u590d\u6b63\u5e38\n    }\n\n    \/\/ \u7981\u7528\u62f7\u8d1d\uff0c\u907f\u514d\u91cd\u590d\u521d\u59cb\u5316\n    NcursesBase(const NcursesBase&amp;) = delete;\n    NcursesBase&amp; operator=(const NcursesBase&amp;) = delete;\n};\n\n\/\/ \u4e3b\u7a0b\u5e8f\nint main() {\n    NcursesBase app;\n    mvprintw(5, 10, \"C++ NCURSES \u542f\u52a8\u6210\u529f\uff01\u6309\u4efb\u610f\u952e\u9000\u51fa\");\n    getch();\n    return 0;\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E9%98%B6%E6%AE%B5_2%EF%BC%9A%E8%BE%93%E5%85%A5%E3%80%81%E9%A2%9C%E8%89%B2%E3%80%81%E7%AA%97%E5%8F%A3%E3%80%81%E9%94%AE%E7%9B%98%E4%BA%8B%E4%BB%B6%EF%BC%8825_%E5%B0%8F%E6%97%B6%EF%BC%89\"><\/span>\u9636\u6bb5 2\uff1a\u8f93\u5165\u3001\u989c\u8272\u3001\u7a97\u53e3\u3001\u952e\u76d8\u4e8b\u4ef6\uff082.5 \u5c0f\u65f6\uff09<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%9B%AE%E6%A0%87-2\"><\/span>\u76ee\u6807<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5f69\u8272\u754c\u9762<\/li>\n\n\n\n<li>\u7ec8\u7aef\u8f93\u5165\u5b57\u7b26\u4e32<\/li>\n\n\n\n<li>\u7a97\u53e3\u7ed8\u5236\u3001\u8fb9\u6846<\/li>\n\n\n\n<li>\u65b9\u5411\u952e\/\u56de\u8f66\/ESC \u4e8b\u4ef6<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%A0%B8%E5%BF%83%E7%9F%A5%E8%AF%86%E7%82%B9-2\"><\/span>\u6838\u5fc3\u77e5\u8bc6\u70b9<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u989c\u8272\u5bf9\uff1a<code>init_pair()<\/code> \/ <code>COLOR_PAIR()<\/code><\/li>\n\n\n\n<li>\u8f93\u5165\uff1a<code>getstr()<\/code> \/ <code>mvscanw()<\/code><\/li>\n\n\n\n<li>\u7a97\u53e3\uff1a<code>WINDOW*<\/code> \/ <code>newwin()<\/code> \/ <code>box()<\/code><\/li>\n\n\n\n<li>\u6309\u952e\uff1a<code>KEY_UP<\/code> <code>KEY_DOWN<\/code> <code>KEY_ENTER<\/code> <code>27=ESC<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E9%98%B6%E6%AE%B5_3%EF%BC%9AC_%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E5%B0%81%E8%A3%85%EF%BC%882_%E5%B0%8F%E6%97%B6%EF%BC%89\"><\/span>\u9636\u6bb5 3\uff1aC++ \u9762\u5411\u5bf9\u8c61\u5c01\u88c5\uff082 \u5c0f\u65f6\uff09<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%9B%AE%E6%A0%87-3\"><\/span>\u76ee\u6807<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u628a ncurses \u529f\u80fd\u5c01\u88c5\u6210<strong>\u53ef\u590d\u7528\u7c7b<\/strong><\/li>\n\n\n\n<li>\u4ee3\u7801\u7ed3\u6784\u6e05\u6670\uff0c\u9002\u5408\u505a\u9879\u76ee<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%B0%81%E8%A3%85%E7%B1%BB%E6%B8%85%E5%8D%95\"><\/span>\u5c01\u88c5\u7c7b\u6e05\u5355<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>NcursesApp<\/code>\uff1a\u4e3b\u5e94\u7528\u7c7b<\/li>\n\n\n\n<li><code>Window<\/code>\uff1a\u7a97\u53e3\u7c7b\uff08\u521b\u5efa\u3001\u8fb9\u6846\u3001\u6253\u5370\uff09<\/li>\n\n\n\n<li><code>Menu<\/code>\uff1a\u83dc\u5355\u7c7b\uff08\u65b9\u5411\u952e\u9009\u62e9\uff09<\/li>\n\n\n\n<li><code>InputBox<\/code>\uff1a\u8f93\u5165\u6846\u7c7b<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u662f\u505a\u901a\u8baf\u5f55\u7684<strong>\u5730\u57fa<\/strong>\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E9%98%B6%E6%AE%B5_4%EF%BC%9A%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84_%E6%96%87%E4%BB%B6%E6%8C%81%E4%B9%85%E5%8C%96%EF%BC%8815_%E5%B0%8F%E6%97%B6%EF%BC%89\"><\/span>\u9636\u6bb5 4\uff1a\u6570\u636e\u7ed3\u6784 + \u6587\u4ef6\u6301\u4e45\u5316\uff081.5 \u5c0f\u65f6\uff09<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%9B%AE%E6%A0%87-4\"><\/span>\u76ee\u6807<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>C++ \u7ed3\u6784\u4f53\u5b58\u50a8\u8054\u7cfb\u4eba<\/li>\n\n\n\n<li>\u6587\u4ef6\u8bfb\u5199\uff08\u4e8c\u8fdb\u5236\/\u6587\u672c\uff09<\/li>\n\n\n\n<li>\u7a0b\u5e8f\u542f\u52a8\u81ea\u52a8\u52a0\u8f7d\uff0c\u9000\u51fa\u81ea\u52a8\u4fdd\u5b58<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>struct Contact {\n    std::string name;\n    std::string phone;\n    std::string note;\n};\n\nclass ContactStorage {\npublic:\n    void load();\n    void save();\nprivate:\n    std::vector&lt;Contact> list; \/\/ C++ \u5bb9\u5668\uff0c\u6bd4\u6570\u7ec4\u5b89\u5168\n};<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E9%98%B6%E6%AE%B5_5%EF%BC%9A%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE_%E2%80%94%E2%80%94_C_%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E9%80%9A%E8%AE%AF%E5%BD%95%EF%BC%882_%E5%B0%8F%E6%97%B6%EF%BC%89\"><\/span>\u9636\u6bb5 5\uff1a\u5b9e\u6218\u9879\u76ee \u2014\u2014 C++ \u9762\u5411\u5bf9\u8c61\u901a\u8baf\u5f55\uff082 \u5c0f\u65f6\uff09<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%8A%9F%E8%83%BD%E6%B8%85%E5%8D%95\"><\/span>\u529f\u80fd\u6e05\u5355<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 \u4e3b\u83dc\u5355\uff08\u65b9\u5411\u952e\u9009\u62e9 + \u56de\u8f66\u786e\u8ba4\uff09<br>\u2705 \u6dfb\u52a0\u8054\u7cfb\u4eba<br>\u2705 \u67e5\u770b\u8054\u7cfb\u4eba\uff08\u5206\u9875\uff09<br>\u2705 \u641c\u7d22\u8054\u7cfb\u4eba<br>\u2705 \u5220\u9664\u8054\u7cfb\u4eba<br>\u2705 \u4fee\u6539\u8054\u7cfb\u4eba<br>\u2705 \u6570\u636e\u81ea\u52a8\u4fdd\u5b58<br>\u2705 \u5f69\u8272\u754c\u9762<br>\u2705 ESC \u8fd4\u56de\u4e0a\u4e00\u7ea7<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%9B%9B%E3%80%81C_NCURSES_%E7%B3%BB%E7%BB%9F%E5%AD%A6%E4%B9%A0%E5%A4%A7%E7%BA%B2%EF%BC%88%E6%AD%A3%E5%BC%8F%E7%89%88%EF%BC%89\"><\/span>\u56db\u3001C++ NCURSES \u7cfb\u7edf\u5b66\u4e60\u5927\u7eb2\uff08\u6b63\u5f0f\u7248\uff09<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%AC%AC_1_%E5%A4%A9%EF%BC%9A%E7%8E%AF%E5%A2%83_C_%E5%B0%81%E8%A3%85%E5%9F%BA%E7%A1%80\"><\/span>\u7b2c 1 \u5929\uff1a\u73af\u5883 + C++ \u5c01\u88c5\u57fa\u7840<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5b89\u88c5\u73af\u5883<\/li>\n\n\n\n<li>RAII \u81ea\u52a8\u7ba1\u7406 ncurses<\/li>\n\n\n\n<li>\u5149\u6807\u63a7\u5236\u3001\u6253\u5370\u3001\u6309\u952e\u83b7\u53d6<\/li>\n\n\n\n<li>\u7b2c\u4e00\u4e2a C++ ncurses \u7a0b\u5e8f<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%AC%AC_2_%E5%A4%A9%EF%BC%9A%E9%A2%9C%E8%89%B2%E3%80%81%E8%BE%93%E5%85%A5%E3%80%81%E7%AA%97%E5%8F%A3\"><\/span>\u7b2c 2 \u5929\uff1a\u989c\u8272\u3001\u8f93\u5165\u3001\u7a97\u53e3<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5f69\u8272\u754c\u9762<\/li>\n\n\n\n<li>\u5b57\u7b26\u4e32\u8f93\u5165<\/li>\n\n\n\n<li>\u591a\u7a97\u53e3\u7ed8\u5236<\/li>\n\n\n\n<li>\u8fb9\u6846\u3001\u6807\u9898\u3001\u5206\u9694\u7ebf<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%AC%AC_3_%E5%A4%A9%EF%BC%9A%E9%94%AE%E7%9B%98%E4%BA%8B%E4%BB%B6_%E8%8F%9C%E5%8D%95%E7%B3%BB%E7%BB%9F\"><\/span>\u7b2c 3 \u5929\uff1a\u952e\u76d8\u4e8b\u4ef6 + \u83dc\u5355\u7cfb\u7edf<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u65b9\u5411\u952e\u3001ESC\u3001\u56de\u8f66\u5904\u7406<\/li>\n\n\n\n<li>\u65e0\u9650\u5faa\u73af\u83dc\u5355<\/li>\n\n\n\n<li>\u5c42\u7ea7\u83dc\u5355\uff08\u4e3b\u83dc\u5355 \u2192 \u5b50\u83dc\u5355\uff09<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%AC%AC_4_%E5%A4%A9%EF%BC%9AC_%E6%95%B0%E6%8D%AE%E7%AE%A1%E7%90%86\"><\/span>\u7b2c 4 \u5929\uff1aC++ \u6570\u636e\u7ba1\u7406<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>struct \/ vector<\/li>\n\n\n\n<li>\u6587\u4ef6\u8bfb\u5199<\/li>\n\n\n\n<li>\u589e\u5220\u6539\u67e5\u903b\u8f91<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%AC%AC_5_%E5%A4%A9%EF%BC%9A%E9%A1%B9%E7%9B%AE%E6%95%B4%E5%90%88_%E2%80%94%E2%80%94_%E9%80%9A%E8%AE%AF%E5%BD%95\"><\/span>\u7b2c 5 \u5929\uff1a\u9879\u76ee\u6574\u5408 \u2014\u2014 \u901a\u8baf\u5f55<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u7c7b\u4e4b\u95f4\u8c03\u7528<\/li>\n\n\n\n<li>UI \u4e0e\u903b\u8f91\u5206\u79bb<\/li>\n\n\n\n<li>\u5b8c\u5584\u754c\u9762\u4e0e\u4ea4\u4e92<\/li>\n\n\n\n<li>\u6d4b\u8bd5\u4e0e\u4fee\u590d BUG<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E4%BA%94%E3%80%81C_%E7%89%88%E9%80%9A%E8%AE%AF%E5%BD%95%E6%A0%B8%E5%BF%83%E6%9E%B6%E6%9E%84%EF%BC%88%E9%A2%84%E8%A7%88%EF%BC%89\"><\/span>\u4e94\u3001C++ \u7248\u901a\u8baf\u5f55\u6838\u5fc3\u67b6\u6784\uff08\u9884\u89c8\uff09<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f60\u672a\u6765\u6700\u7ec8\u5199\u51fa\u7684\u4ee3\u7801\u7ed3\u6784\u662f\u8fd9\u6837\u7684\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>src\/\n \u251c\u2500\u2500 NcursesApp.h    \/\/ \u5c01\u88c5\u57fa\u7c7b\n \u251c\u2500\u2500 Window.h        \/\/ \u7a97\u53e3\u7c7b\n \u251c\u2500\u2500 Menu.h          \/\/ \u83dc\u5355\u7c7b\n \u251c\u2500\u2500 Contact.h       \/\/ \u8054\u7cfb\u4eba\u7ed3\u6784\u4f53\n \u251c\u2500\u2500 ContactManager.h\/\/ \u4e1a\u52a1\u903b\u8f91\u7c7b\n \u2514\u2500\u2500 main.cpp        \/\/ \u4e3b\u7a0b\u5e8f<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%A0%B8%E5%BF%83%E4%BC%98%E5%8A%BF\"><\/span>\u6838\u5fc3\u4f18\u52bf<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4e0d\u4f7f\u7528\u5168\u5c40\u53d8\u91cf<\/li>\n\n\n\n<li>\u9762\u5411\u5bf9\u8c61<\/li>\n\n\n\n<li>\u53ef\u6269\u5c55<\/li>\n\n\n\n<li>\u7ec8\u7aef\u9000\u51fa\u4e0d\u4f1a\u5d29\u6e83<\/li>\n\n\n\n<li>\u4ee3\u7801\u5e72\u51c0\u6613\u8bfb<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>C++ \u9762\u5411\u5bf9\u8c61 ncurses \u7cfb\u7edf\u5b66\u4e60\u65b9\u6848\uff08\u4ece &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"{\"document\":\"AADAAYjMyssd\/b287BET3aa67xkEy7\/f+hAA\/b287BEBi7\/f+hC9vbzsEcu\/3\/oQAv29vOwRAJ2muu8Zy7\/f+hAA3aa67xkAi7\/f+hCdprrvGYu\/3\/oQnaa67xnLv9\/6EASdprrvGYu\/3\/oQnaa67xmLv9\/6EJ2muu8Zi7\/f+hDdprrvGQrLv9\/6EAO595L6F4u\/3\/oQvb287BG595L6F729vOwRy7\/f+hDmAf29vOwRAMu\/3\/oQugitodTGC8jMyssdAOwKmgIDAAUBFAQUBQEMBBQFAhAC8gLkAQKIA7i+CsrCCjYCls8GuvEDLNa5CgLeCbLCCu7CCgxYgMIKAwD8vgoIAsoDkAMa2gOwAiqMvwr4mQKaePygCWYAAkKOvAbiuwa0vAZCrAVCJEISQrIBQqYDQrIBQpoBQr4BQhJCMEIgQiisAYoBKEIqQroBQhJCgAFClgFCFkISQi5CpAFCMEIcQhJChAJCmgJCngJCLkKuE0ISQoYBQhZCEkIYQh5CHkIqQhxCEkKAAkKyAUKYAkK+AkISQjxCFkISQpgBQihCHEISQogBQpIBQogBQoQBQogBQhJChAFCFkISQihCKEIuQoIHQhJCjgFCGkK4A0ISQoQBQjhCEkIYQjJCKEI0Qi5CEkIYQhpCGkIiQjRCEkIoQhxCLkIuQhJCLkIYQhxCNEISQhpCIEIeQiJCEkI2QjRCtAVCGkISQh5CGEIWQiBCHEKiOezyBwJIHAAKAgEBCABIAghKmAEyrgagATiEAbICgA2GAoQBrgOeA5wGvAE6nAGYFrYDggGCBIoBsgKsNCqwDpABpgKuISysDDSAA4YBtgEaugkgLjCOBSS4CTy2AZ4JJJQJNrgaPCSQCyKoCNS2Ai5KkAHOAUiyvAYBAQgCQkgAqgUBAQgCQkgAIgEBCABIDgIBAQgCSgCwAQEBCAJKAKQDAQEIAkoAsAEBAQgCSgCYAQEBCAJK7AioCgEBCABIABABAQgCQkgALgEBCAJCSAAeAQEIAh4CqgGKAd4DAIQEAQEIAkJIACgBAQgCSgC4AQEBCABIABABAQgCQkgAPgEBCAJCSACUAQEBCAJCSAAUAQEIAEgOAgEBCAJKACwBAQgCSgCiAQEBCAJK3gKMAwEBCAJCSAAaAQEIAEgOAgEBCAJKAIICAQEIAkoAmAIBAQgCSuoEhgcBAQgCQkgALAEBCAJKAKwTAQEIAEgAEAEBCAJCSACEAQEBCAJCSAAUAQEIAEgOAgEBCAJKABYBAQgCSgAcAQEIAkoAHAEBCAJK3gGGAgEBCAJCSAAaAQEIAEgOAgEBCAJKAL4BAQEIAkoAsAEBAQgCSgCWAgEBCAJK1AaQCQEBCABIABABAQgCQkgAOgEBCAJCSAAUAQEIAEgOAgEBCAJKAJYBAQEIAkrmAYwCAQEIAkJIABoBAQgASA4CAQEIAkoAhgEBAQgCSgCQAQEBCAJKAIYBAQEIAkrsA64EAQEIAkJIAIYBAQEIAEgAEAEBCAJCSACCAQEBCAJCSAAUAQEIAEgOAgEBCAJKACYBAQgCSgAmAQEIAkrcAYgCAQEIAkoAgAcBAQgASAAQAQEIAkJIAIwBAQEIAkJIABgBAQgCQkgAtgMBAQgASAAQAQEIAkJIAIIBAQEIAkJIADYBAQgASA4CAQEIAkoAFgEBCAJKADABAQgCSgAmAQEIAkr8Aa4CAQEIAkJIACwBAQgASA4CAQEIAkoAFgEBCAJKABgBAQgCSgAYAQEIAkrWAbYBAQEIAkJIADIBAQgASA4CAQEIAkoAJgEBCAJKABoBAQgCStABvAEBAQgCQkgALAEBCABIDgIBAQgCSgAsAQEIAkoAFgEBCAJK0gGsAQEBCAJCSAAyAQEIAEgOAgEBCAJKABgBAQgCSgAeAQEIAkoAHAEBCAJK4gGCAgEBCABIABABAQgCQkgANAEBCAJCSAAyAQEIAkoAsgUBAQgCQkgAGAEBCABIDgIBAQgCSgAcAQEIAkoAFgEBCAJKABQBAQgCSgAeAQEIAkr0AY4CAQEIAEgAECwoogMktAEW\/MAHvrsGrLYBsgOgMroCoHWqAaR45JsKhsUHsPwCAwAKAirMJ8SbCgI8ngO4vgrSwQqQwQosbMbCCrLCCgB6AwABAfTBCgEACLACKpSlCJp4zNECrAGKAaqfAfTwBwFAgsMHrNYCtREoAKgVoQHEACEAwQChAKgBxADBAaEBwQOhAMECxADBAMQAwQDEAMEBxAGEAMQBIQChACEAoQCoAiECqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAoQAhAMECqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKEAIQChACgAoQAoAKEAKAChACgAqAAoAKgAKACoACgAqAAoAKEAKAChACgAqAAoAKgAKACoACgAqAAoAKEAKAChACgAoQAoAKEAKACoACgAqAAoAKEAKAChACgAqAAoAKgAKACoACgAqAAoAKEAKAChACgAoQAoAKEAKAChACgAqAAoAKgAKACoACgAoQAhAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKADEAKEBIQInAAEAJwEoBicAKAEhACgAJwAHACEAKAAhACcBIQAnAKEAAQCBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAAQChAKgAhAAoAMcAIQAoAScBBAAoACcAxwAhACgBJwEEACgAJwDHACEAKAEnACgBJwAHACEAKAEnAQQAJwCHACEAKAEnAQQAJwCHACEAKAEnAQQAJwCHACEAKAEnAQQAJwCHACEAKAEnAQQAJwDHACEAKAEnACgBJwDHACEAKAEnAQQAKAAnAMcAIQAoAScBBAAoACcAxwAhACgBJwEEAIEAhACBAScAxwAhACgBJwEEACgAJwDHACEAKAEnAQQAJwDHACEAKAEnACgBJwDHACEAKAEnAQQAKAAnAMcAIQAoAScBBAAoACcAxwAhACgBJwEEACgAJwDHACEAKAEnACgBJwAHACEAKAEnAQQAJwCHACEAKAEnAQQAJwCHACEAKAEnAQQAJwDHACEAKAEnAQQAKAAnAMcAIQAoAScAKAEnAAcAIQAoAScBBAAnAIcAIQAoAScBBAAnAIcAIQAoAScBBAAnAMcAIQAoAScBBAAoACcAxwAhACgBJwEEACcAxwAhACgBJwAoAScAxwAhACgBJwEEACgAJwDHACEAKAEnAQQAKAAnAMcAIQAoAScAKAEnAAcAIQAoAScBBAAnAIcAIQAoAScBBAAnAIcAIQAoAScBBAAnAIcAIQAoAScBBAAnAMcAIQAoAScBBAAoACcAxwAhACgBJwAoAScABwAhACgBJwEEACcAhwAhACgBJwEEACcAhwAhACgBJwEEACcAhwAhACgBJwEEACcAxwAhACgBJwAoAScAxwAhACgBJwEEACgAJwDHACEAKAEnAQQAKAAnAMcAIQAoAScAKAEnAAcAIQAoAScBBAAnAIcAIQAoAScBBAAnAMcAIQAoAScBBAAoACcAxwAhACgBJwAoAScABwAhACgBJwEEACcAhwAhACgBJwEEACcAhwAhACgBJwEEACcAhwAhACgBJwEEACcAxwAhACgBJwEEACgAJwDHACEAKAEnACgBJwDHACEAKAEnAQQAKAAnAMcAIQAoAScBBAAoACcAxwAhACgBJwAoAScABwAhACgBJwEEACcAhwAhACgBJwEEACcAhwAhACgBJwEEACcAxwAhACgBJwEEACcAxwAhACgBJwAoAScAxwAhACgBJwEEACgAJwDHACEAKAEnAQQAKAAnAMcAIQAoAScBBAAoACcAxwAhACgBJwAoAScAxwAhACgBJwEEACgAJwDHACEAKAEnAQQAKAAnAMcAIQAoAScAKAEnAAcAIQAoAScBBAAnAIcAIQAoAScBBAAnAIcAIQAoAScBBAAnAIcAIQAoAScBBAAnAMcAIQAoAScBBAAoACcAxwAhACgBJwAoAScABwAhACgBJwEEACcAhwAhACgBJwEEACcAhwAhACgBJwEEACcAhwAhACgBJwEEACcAxwAhACgBJwEEACgAJwDHACEAKAEnACgBJwAHACEAKAEnAQQAJwCHACEAKAEnAQQAJwCHACEAKAEnAQQAJwDHACEAKAEnAQQAKAAnAMcAIQAoAScAKAEnAAcAIQAoAScBBAAnAIcAIQAoAScBBAAnAIcAIQAoAScBBAAnAMcAIQAoAScBBAAoACcAxwAhACgBJwAoAScABwAhACgBJwEEACcAhwAhACgBJwEEACcAhwAhACgBJwEEACcAhwAhACgBJwEEACcAxwAhACgBJwAoAScAxwAhACgBJwEEACgAJwDHACEAKAEnAQQAKAAnAMcAIQAoAScBBAAnAMcAIQAoAScBBAAoACcAxwAhACgBJwAoAScABwAhACgBJwEEACcAhwAhACgBJwEEACcAhwAhACgBJwEEACcAhwAhACgBJwEEACcAhwAhACgBJwEEACcAxwAhACgBJwAoAScAwQAAAMEAAADBAAAAwQAAAMEAAADBAAAAwQAAAMEAAACBAIQAgQCEAIEAhACBAIQAgQDBAIEChACBAgAAxAAhAKiezwGayAFzdGF0ZXZlcnNpb27lupNzdGF0ZXZlcnNpb24K6Z2i5ZCR5a+56LGhbmPlrozlhajlrabkuaDmiYvlhozvvIjlkKvpgJrorq\/lvZXpobnnm65DKyvvvInphY3nva7lvIDlj5Hnjq\/looM8cHJlIGNsYXNzPSJ3cC1ibG9jay1jb2RlIj48Y29kZT4jaW5jbHVkZSAmbHQ7bmN1cnNlc3cvbmN1cnNlcy5oPgojaW5jbHVkZSAmbHQ7c3RyaW5nPgogICAgc3RkOjp2ZWN0b3ImbHQ7Q29udGFjdD4gbGlzdDsgLy8gQysrIOWuueWZqO+8jOavlOaVsOe7hOWuieWFqApzdGF0ZXZlcnNpb25zdGF0ZXZlcnNpb25kb2N1bWVudHNsdWdzdGF0ZXNhdmVkQXRzdGF0ZXNhdmVkQnlvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRvcmlnaW5hbENvbnRlbnRzdWRvIGFwdCBpbnN0YWxsIGxpYm5jdXJzZXM1LWRldiBsaWJuY3Vyc2VzdzUtZGV2IGcrKzwvY29kZT48L3ByZT4Kc3RhdGV2ZXJzaW9uZG9jdW1lbnRkYXRlZG9jdW1lbnRzdGF0dXNkb2N1bWVudHRpdGxlZG9jdW1lbnRjb250ZW50ZG9jdW1lbnRleGNlcnB0ZG9jdW1lbnRhdXRob3Jkb2N1bWVudGZlYXR1cmVkX21lZGlhZG9jdW1lbnRjb21tZW50X3N0YXR1c2RvY3VtZW50cGluZ19zdGF0dXNkb2N1bWVudHN0aWNreWRvY3VtZW50dGVtcGxhdGVkb2N1bWVudGZvcm1hdGRvY3VtZW50bWV0YV9qZXRwYWNrX21lbWJlcnNoaXBzX2NvbnRhaW5zX3BhaWRfY29udGVudGZvb3Rub3Rlc2RvY3VtZW50Y2F0ZWdvcmllc2RvY3VtZW50dGFnc2RvY3VtZW50YmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzQysrIOmdouWQkeWvueixoSBuY3Vyc2VzIOezu+e7n+WtpuS5oOaWueahiO+8iOS7jumbtuWfuuehgOWIsOS8geS4mue6p+e7iOerr+eoi+W6j++8iWxldmVsY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW506L+Z5pivPHN0cm9uZz7lrozlhajln7rkuo4gQysrPC9zdHJvbmc+44CBPHN0cm9uZz7pnaLlkJHlr7nosaHmgJ3mg7M8L3N0cm9uZz7jgIE8c3Ryb25nPuW+quW6j+a4kOi\/mzwvc3Ryb25nPueahCBuY3Vyc2VzIOWtpuS5oOaWueahiO+8jOaKm+W8gyBDIOivreiogOmdouWQkei\/h+eoi+WGmeazle+8jOeUqOexu+WwgeijheOAgVJBSUnjgIHlvILluLjlpITnkIbnrYnnjrDku6MgQysrIOeJueaAp+W8gOWPkSBuY3Vyc2VzIOeoi+W6j++8jOacgOe7iOWunueOsDxzdHJvbmc+QysrIOeJiOmrmOWPr+eUqOmAmuiur+W9lTwvc3Ryb25nPuOAgmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOS4gOOAgeaWueahiOWumuS9jeS4juS6rueCuWxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+57qvIEMrKzwvc3Ryb25nPu+8muWFqOeoi+S9v+eUqCBDKysxMSDlj4rku6XkuIrmoIflh4bvvIzkuI3nlKggQyDor63oqIDlhpnms5Vpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+6Z2i5ZCR5a+56LGhPC9zdHJvbmc+77ya5bCB6KOFIDxjb2RlPk5jdXJzZXNBcHA8L2NvZGU+IOWfuuexu+OAgTxjb2RlPkNvbnRhY3RNYW5hZ2VyPC9jb2RlPiDkuJrliqHnsbvjgIE8Y29kZT5XaW5kb3c8L2NvZGU+IOeql+WPo+exu2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5SQUlJIOi1hOa6kOeuoeeQhjwvc3Ryb25nPu+8muWIneWni+WMli\/plIDmr4Hoh6rliqjnrqHnkIbvvIzmnZznu53lhoXlrZjms4TmvI\/jgIHnu4jnq6\/ljaHmrbtpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+5bel56iL5YyWPC9zdHJvbmc+77ya5YiG5paH5Lu25byA5Y+R44CB5Luj56CB5aSN55So44CB5Y+v57u05oqk5oCn5by6aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPuacgOe7iOaIkOWTgTwvc3Ryb25nPu+8mkMrKyDnu4jnq6\/pgJrorq\/lvZXvvIjlop7liKDmlLnmn6XjgIHliIbpobXjgIHlvanoibLjgIHmlrnlkJHplK7oj5zljZXjgIHmlofku7bmjIHkuYXljJbvvIlpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3BhY2l0eXRhZ05hbWVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOS6jOOAgeWtpuS5oOeOr+Wig+WHhuWkh++8iDMwIOWIhumSn++8iWxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQxLiDlronoo4Xkvp3otZZsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50IyBVYnVudHUvRGViaWFuc3VkbyBhcHQgaW5zdGFsbCBsaWJuY3Vyc2VzNS1kZXYgbGlibmN1cnNlc3c1LWRldiBnKytpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDIuIOe8luivkeinhOWIme+8iEMrK++8iWxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRnKysgLXN0ZD1jKysxMSBtYWluLmNwcCAtbyBhcHAgLWxuY3Vyc2VzdyAgIyDlrr3lrZfnrKYr5Lit5paH5pSv5oyBaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29wYWNpdHl0YWdOYW1laW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnTkuInjgIHlrabkuaDot6\/nur\/vvIjlhbEgNSDpmLbmrrXvvIzmgLvorqEgMTAg5bCP5pe277yJbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOmYtuautSAx77yabmN1cnNlcyDmoLjlv4Pljp\/nkIYgKyBDKysg5bCB6KOF5Z+656GA77yIMiDlsI\/ml7bvvIlsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW5055uu5qCHbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW5055CG6KejIG5jdXJzZXMg55Sf5ZG95ZGo5pyfaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnTnlKggPHN0cm9uZz5DKysg57G7ICsgUkFJSTwvc3Ryb25nPiDoh6rliqjnrqHnkIbliJ3lp4vljJYv6ZSA5q+BaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnTmjozmj6HmnIDln7rnoYDnmoTlsY\/luZXovpPlh7rjgIHovpPlhaXjgIHmjInplK5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOaguOW\/g+efpeivhueCuWxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxjb2RlPmluaXRzY3IoKTwvY29kZT4gLyA8Y29kZT5lbmR3aW4oKTwvY29kZT4g6Ieq5Yqo6LCD55So77yI5p6E6YCgL+aekOaehO+8iWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PGNvZGU+bm9lY2hvKCk8L2NvZGU+IC8gPGNvZGU+Y2JyZWFrKCk8L2NvZGU+IC8gPGNvZGU+a2V5cGFkKCk8L2NvZGU+aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8Y29kZT5tdnByaW50dygpPC9jb2RlPiAvIDxjb2RlPmdldGNoKCk8L2NvZGU+IC8gPGNvZGU+cmVmcmVzaCgpPC9jb2RlPmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QysrIOacgOWwj+ahhuaetu+8iOW\/hemhu+aOjOaPoe+8iWxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQjaW5jbHVkZSAmbHQ7bmN1cnNlc3cvbmN1cnNlcy5oJmd0OwojaW5jbHVkZSAmbHQ7c3RyaW5nJmd0OwoKY2xhc3MgTmN1cnNlc0Jhc2UgewpwdWJsaWM6CiAgICBOY3Vyc2VzQmFzZSgpIHsKICAgICAgICBpbml0c2NyKCk7ICAgICAgICAgICAgLy8g5Yid5aeL5YyWCiAgICAgICAgY2JyZWFrKCk7ICAgICAgICAgICAgIC8vIOaXoOe8k+WGsui+k+WFpQogICAgICAgIG5vZWNobygpOyAgICAgICAgICAgICAvLyDkuI3lm57mmL4KICAgICAgICBrZXlwYWQoc3Rkc2NyLCB0cnVlKTsgLy8g5byA5ZCv5Yqf6IO96ZSuCiAgICAgICAgc3RhcnRfY29sb3IoKTsgICAgICAgIC8vIOW8gOWQr+minOiJsgogICAgfQoKICAgIH5OY3Vyc2VzQmFzZSgpIHsKICAgICAgICBlbmR3aW4oKTsgLy8g6Ieq5Yqo6ZSA5q+B77yM57uI56uv5oGi5aSN5q2j5bi4CiAgICB9CgogICAgLy8g56aB55So5ou36LSd77yM6YG\/5YWN6YeN5aSN5Yid5aeL5YyWCiAgICBOY3Vyc2VzQmFzZShjb25zdCBOY3Vyc2VzQmFzZSZhbXA7KSA9IGRlbGV0ZTsKICAgIE5jdXJzZXNCYXNlJmFtcDsgb3BlcmF0b3I9KGNvbnN0IE5jdXJzZXNCYXNlJmFtcDspID0gZGVsZXRlOwp9OwoKLy8g5Li756iL5bqPCmludCBtYWluKCkgewogICAgTmN1cnNlc0Jhc2UgYXBwOwogICAgbXZwcmludHcoNSwgMTAsICJDKysgTkNVUlNFUyDlkK\/liqjmiJDlip\/vvIHmjInku7vmhI\/plK7pgIDlh7oiKTsKICAgIGdldGNoKCk7CiAgICByZXR1cm4gMDsKfWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNvcGFjaXR5dGFnTmFtZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW506Zi25q61IDLvvJrovpPlhaXjgIHpopzoibLjgIHnqpflj6PjgIHplK7nm5jkuovku7bvvIgyLjUg5bCP5pe277yJbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOebruagh2xldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOW9qeiJsueVjOmdomlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW5057uI56uv6L6T5YWl5a2X56ym5LiyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnTnqpflj6Pnu5jliLbjgIHovrnmoYZpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOaWueWQkemUri\/lm57ovaYvRVNDIOS6i+S7tmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW505qC45b+D55+l6K+G54K5bGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW506aKc6Imy5a+577yaPGNvZGU+aW5pdF9wYWlyKCk8L2NvZGU+IC8gPGNvZGU+Q09MT1JfUEFJUigpPC9jb2RlPmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW506L6T5YWl77yaPGNvZGU+Z2V0c3RyKCk8L2NvZGU+IC8gPGNvZGU+bXZzY2FudygpPC9jb2RlPmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW5056qX5Y+j77yaPGNvZGU+V0lORE9XKjwvY29kZT4gLyA8Y29kZT5uZXd3aW4oKTwvY29kZT4gLyA8Y29kZT5ib3goKTwvY29kZT5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOaMiemUru+8mjxjb2RlPktFWV9VUDwvY29kZT4gPGNvZGU+S0VZX0RPV048L2NvZGU+IDxjb2RlPktFWV9FTlRFUjwvY29kZT4gPGNvZGU+Mjc9RVNDPC9jb2RlPmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNvcGFjaXR5dGFnTmFtZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW506Zi25q61IDPvvJpDKysg6Z2i5ZCR5a+56LGh5bCB6KOF77yIMiDlsI\/ml7bvvIlsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW5055uu5qCHbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW505oqKIG5jdXJzZXMg5Yqf6IO95bCB6KOF5oiQPHN0cm9uZz7lj6\/lpI3nlKjnsbs8L3N0cm9uZz5pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOS7o+eggee7k+aehOa4heaZsO+8jOmAguWQiOWBmumhueebrmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW505bCB6KOF57G75riF5Y2VbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PGNvZGU+TmN1cnNlc0FwcDwvY29kZT7vvJrkuLvlupTnlKjnsbtpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxjb2RlPldpbmRvdzwvY29kZT7vvJrnqpflj6PnsbvvvIjliJvlu7rjgIHovrnmoYbjgIHmiZPljbDvvIlpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxjb2RlPk1lbnU8L2NvZGU+77ya6I+c5Y2V57G777yI5pa55ZCR6ZSu6YCJ5oup77yJaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8Y29kZT5JbnB1dEJveDwvY29kZT7vvJrovpPlhaXmoYbnsbtpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOi\/meaYr+WBmumAmuiur+W9leeahDxzdHJvbmc+5Zyw5Z+6PC9zdHJvbmc+44CCZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNvcGFjaXR5dGFnTmFtZWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW506Zi25q61IDTvvJrmlbDmja7nu5PmnoQgKyDmlofku7bmjIHkuYXljJbvvIgxLjUg5bCP5pe277yJbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOebruagh2xldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEMrKyDnu5PmnoTkvZPlrZjlgqjogZTns7vkurppbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOaWh+S7tuivu+WGme+8iOS6jOi\/m+WIti\/mlofmnKzvvIlpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOeoi+W6j+WQr+WKqOiHquWKqOWKoOi9ve+8jOmAgOWHuuiHquWKqOS\/neWtmGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50c3RydWN0IENvbnRhY3QgewogICAgc3RkOjpzdHJpbmcgbmFtZTsKICAgIHN0ZDo6c3RyaW5nIHBob25lOwogICAgc3RkOjpzdHJpbmcgbm90ZTsKfTsKCmNsYXNzIENvbnRhY3RTdG9yYWdlIHsKcHVibGljOgogICAgdm9pZCBsb2FkKCk7CiAgICB2b2lkIHNhdmUoKTsKcHJpdmF0ZToKICAgIHN0ZDo6dmVjdG9yJmx0O0NvbnRhY3QmZ3Q7IGxpc3Q7IC8vIEMrKyDlrrnlmajvvIzmr5TmlbDnu4TlronlhagKfTtpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3BhY2l0eXRhZ05hbWVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOmYtuautSA177ya5a6e5oiY6aG555uuIOKAlOKAlCBDKysg6Z2i5ZCR5a+56LGh6YCa6K6v5b2V77yIMiDlsI\/ml7bvvIlsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW505Yqf6IO95riF5Y2VbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOKchSDkuLvoj5zljZXvvIjmlrnlkJHplK7pgInmi6kgKyDlm57ovabnoa7orqTvvIk8YnI+4pyFIOa3u+WKoOiBlOezu+S6ujxicj7inIUg5p+l55yL6IGU57O75Lq677yI5YiG6aG177yJPGJyPuKchSDmkJzntKLogZTns7vkuro8YnI+4pyFIOWIoOmZpOiBlOezu+S6ujxicj7inIUg5L+u5pS56IGU57O75Lq6PGJyPuKchSDmlbDmja7oh6rliqjkv53lrZg8YnI+4pyFIOW9qeiJsueVjOmdojxicj7inIUgRVNDIOi\/lOWbnuS4iuS4gOe6p2Ryb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3BhY2l0eXRhZ05hbWVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOWbm+OAgUMrKyBOQ1VSU0VTIOezu+e7n+WtpuS5oOWkp+e6su+8iOato+W8j+eJiO+8iWxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnTnrKwgMSDlpKnvvJrnjq\/looMgKyBDKysg5bCB6KOF5Z+656GAbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW505a6J6KOF546v5aKDaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRSQUlJIOiHquWKqOeuoeeQhiBuY3Vyc2VzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnTlhYnmoIfmjqfliLbjgIHmiZPljbDjgIHmjInplK7ojrflj5Zpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOesrOS4gOS4qiBDKysgbmN1cnNlcyDnqIvluo9pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOesrCAyIOWkqe+8muminOiJsuOAgei+k+WFpeOAgeeql+WPo2xldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOW9qeiJsueVjOmdomlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW505a2X56ym5Liy6L6T5YWlaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnTlpJrnqpflj6Pnu5jliLZpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOi+ueahhuOAgeagh+mimOOAgeWIhumalOe6v2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW5056ysIDMg5aSp77ya6ZSu55uY5LqL5Lu2ICsg6I+c5Y2V57O757ufbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW505pa55ZCR6ZSu44CBRVND44CB5Zue6L2m5aSE55CGaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnTml6DpmZDlvqrnjq\/oj5zljZVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOWxgue6p+iPnOWNle+8iOS4u+iPnOWNlSDihpIg5a2Q6I+c5Y2V77yJaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnTnrKwgNCDlpKnvvJpDKysg5pWw5o2u566h55CGbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50c3RydWN0IC8gdmVjdG9yaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnTmlofku7bor7vlhplpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOWinuWIoOaUueafpemAu+i+kWlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW5056ysIDUg5aSp77ya6aG555uu5pW05ZCIIOKAlOKAlCDpgJrorq\/lvZVsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnTnsbvkuYvpl7TosIPnlKhpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFVJIOS4jumAu+i+keWIhuemu2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW505a6M5ZaE55WM6Z2i5LiO5Lqk5LqSaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnTmtYvor5XkuI7kv67lpI0gQlVHaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29wYWNpdHl0YWdOYW1laW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnTkupTjgIFDKysg54mI6YCa6K6v5b2V5qC45b+D5p625p6E77yI6aKE6KeI77yJbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOS9oOacquadpeacgOe7iOWGmeWHuueahOS7o+eggee7k+aehOaYr+i\/meagt+eahO+8mmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudHNyYy8KIOKUnOKUgOKUgCBOY3Vyc2VzQXBwLmggICAgLy8g5bCB6KOF5Z+657G7CiDilJzilIDilIAgV2luZG93LmggICAgICAgIC8vIOeql+WPo+exuwog4pSc4pSA4pSAIE1lbnUuaCAgICAgICAgICAvLyDoj5zljZXnsbsKIOKUnOKUgOKUgCBDb250YWN0LmggICAgICAgLy8g6IGU57O75Lq657uT5p6E5L2TCiDilJzilIDilIAgQ29udGFjdE1hbmFnZXIuaC8vIOS4muWKoemAu+i+keexuwog4pSU4pSA4pSAIG1haW4uY3BwICAgICAgICAvLyDkuLvnqIvluo9pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOaguOW\/g+S8mOWKv2xldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOS4jeS9v+eUqOWFqOWxgOWPmOmHj2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW506Z2i5ZCR5a+56LGhaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnTlj6\/mianlsZVpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudOe7iOerr+mAgOWHuuS4jeS8muW0qea6g2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW505Luj56CB5bmy5YeA5piT6K+7aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29wYWNpdHl0YWdOYW1laW5uZXJCbG9ja3M8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6MX0gLS0+CjxoMSBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+QysrIOmdouWQkeWvueixoSBuY3Vyc2VzIOezu+e7n+WtpuS5oOaWueahiO+8iOS7jumbtuWfuuehgOWIsOS8geS4mue6p+e7iOerr+eoi+W6j++8iTwvaDE+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+6L+Z5pivPHN0cm9uZz7lrozlhajln7rkuo4gQysrPC9zdHJvbmc+44CBPHN0cm9uZz7pnaLlkJHlr7nosaHmgJ3mg7M8L3N0cm9uZz7jgIE8c3Ryb25nPuW+quW6j+a4kOi\/mzwvc3Ryb25nPueahCBuY3Vyc2VzIOWtpuS5oOaWueahiO+8jOaKm+W8gyBDIOivreiogOmdouWQkei\/h+eoi+WGmeazle+8jOeUqOexu+WwgeijheOAgVJBSUnjgIHlvILluLjlpITnkIbnrYnnjrDku6MgQysrIOeJueaAp+W8gOWPkSBuY3Vyc2VzIOeoi+W6j++8jOacgOe7iOWunueOsDxzdHJvbmc+QysrIOeJiOmrmOWPr+eUqOmAmuiur+W9lTwvc3Ryb25nPuOAgjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPuS4gOOAgeaWueahiOWumuS9jeS4juS6rueCuTwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmxpc3QgeyJvcmRlcmVkIjp0cnVlfSAtLT4KPG9sIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+57qvIEMrKzwvc3Ryb25nPu+8muWFqOeoi+S9v+eUqCBDKysxMSDlj4rku6XkuIrmoIflh4bvvIzkuI3nlKggQyDor63oqIDlhpnms5U8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+6Z2i5ZCR5a+56LGhPC9zdHJvbmc+77ya5bCB6KOFIDxjb2RlPk5jdXJzZXNBcHA8L2NvZGU+IOWfuuexu+OAgTxjb2RlPkNvbnRhY3RNYW5hZ2VyPC9jb2RlPiDkuJrliqHnsbvjgIE8Y29kZT5XaW5kb3c8L2NvZGU+IOeql+WPo+exuzwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+PHN0cm9uZz5SQUlJIOi1hOa6kOeuoeeQhjwvc3Ryb25nPu+8muWIneWni+WMli\/plIDmr4Hoh6rliqjnrqHnkIbvvIzmnZznu53lhoXlrZjms4TmvI\/jgIHnu4jnq6\/ljaHmrbs8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+5bel56iL5YyWPC9zdHJvbmc+77ya5YiG5paH5Lu25byA5Y+R44CB5Luj56CB5aSN55So44CB5Y+v57u05oqk5oCn5by6PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48c3Ryb25nPuacgOe7iOaIkOWTgTwvc3Ryb25nPu+8mkMrKyDnu4jnq6\/pgJrorq\/lvZXvvIjlop7liKDmlLnmn6XjgIHliIbpobXjgIHlvanoibLjgIHmlrnlkJHplK7oj5zljZXjgIHmlofku7bmjIHkuYXljJbvvIk8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC9vbD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6c2VwYXJhdG9yIC0tPgo8aHIgY2xhc3M9IndwLWJsb2NrLXNlcGFyYXRvciBoYXMtYWxwaGEtY2hhbm5lbC1vcGFjaXR5Ii8+CjwhLS0gL3dwOnNlcGFyYXRvciAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjoxfSAtLT4KPGgxIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7kuozjgIHlrabkuaDnjq\/looPlh4blpIfvvIgzMCDliIbpkp\/vvIk8L2gxPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjEuIOWuieijheS+nei1ljwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmNvZGUgLS0+CjxwcmUgY2xhc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPiMgVWJ1bnR1L0RlYmlhbgo8IS0tIC93cDpjb2RlIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjIuIOe8luivkeinhOWIme+8iEMrK++8iTwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmNvZGUgLS0+CjxwcmUgY2xhc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPmcrKyAtc3RkPWMrKzExIG1haW4uY3BwIC1vIGFwcCAtbG5jdXJzZXN3ICAjIOWuveWtl+espivkuK3mlofmlK\/mjIE8L2NvZGU+PC9wcmU+CjwhLS0gL3dwOmNvZGUgLS0+Cgo8IS0tIHdwOnNlcGFyYXRvciAtLT4KPGhyIGNsYXNzPSJ3cC1ibG9jay1zZXBhcmF0b3IgaGFzLWFscGhhLWNoYW5uZWwtb3BhY2l0eSIvPgo8IS0tIC93cDpzZXBhcmF0b3IgLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6MX0gLS0+CjxoMSBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+5LiJ44CB5a2m5Lmg6Lev57q\/77yI5YWxIDUg6Zi25q6177yM5oC76K6hIDEwIOWwj+aXtu+8iTwvaDE+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmhlYWRpbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+6Zi25q61IDHvvJpuY3Vyc2VzIOaguOW\/g+WOn+eQhiArIEMrKyDlsIHoo4Xln7rnoYDvvIgyIOWwj+aXtu+8iTwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+55uu5qCHPC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPueQhuinoyBuY3Vyc2VzIOeUn+WRveWRqOacnzwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+55SoIDxzdHJvbmc+QysrIOexuyArIFJBSUk8L3N0cm9uZz4g6Ieq5Yqo566h55CG5Yid5aeL5YyWL+mUgOavgTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+5o6M5o+h5pyA5Z+656GA55qE5bGP5bmV6L6T5Ye644CB6L6T5YWl44CB5oyJ6ZSuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+5qC45b+D55+l6K+G54K5PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxjb2RlPmluaXRzY3IoKTwvY29kZT4gLyA8Y29kZT5lbmR3aW4oKTwvY29kZT4g6Ieq5Yqo6LCD55So77yI5p6E6YCgL+aekOaehO+8iTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+PGNvZGU+bm9lY2hvKCk8L2NvZGU+IC8gPGNvZGU+Y2JyZWFrKCk8L2NvZGU+IC8gPGNvZGU+a2V5cGFkKCk8L2NvZGU+PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48Y29kZT5tdnByaW50dygpPC9jb2RlPiAvIDxjb2RlPmdldGNoKCk8L2NvZGU+IC8gPGNvZGU+cmVmcmVzaCgpPC9jb2RlPjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkMrKyDmnIDlsI\/moYbmnrbvvIjlv4Xpobvmjozmj6HvvIk8L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpjb2RlIC0tPgoKY2xhc3MgTmN1cnNlc0Jhc2UgewpwdWJsaWM6CiAgICBOY3Vyc2VzQmFzZSgpIHsKICAgICAgICBpbml0c2NyKCk7ICAgICAgICAgICAgLy8g5Yid5aeL5YyWCiAgICAgICAgY2JyZWFrKCk7ICAgICAgICAgICAgIC8vIOaXoOe8k+WGsui+k+WFpQogICAgICAgIG5vZWNobygpOyAgICAgICAgICAgICAvLyDkuI3lm57mmL4KICAgICAgICBrZXlwYWQoc3Rkc2NyLCB0cnVlKTsgLy8g5byA5ZCv5Yqf6IO96ZSuCiAgICAgICAgc3RhcnRfY29sb3IoKTsgICAgICAgIC8vIOW8gOWQr+minOiJsgogICAgfQoKICAgIH5OY3Vyc2VzQmFzZSgpIHsKICAgICAgICBlbmR3aW4oKTsgLy8g6Ieq5Yqo6ZSA5q+B77yM57uI56uv5oGi5aSN5q2j5bi4CiAgICB9CgogICAgLy8g56aB55So5ou36LSd77yM6YG\/5YWN6YeN5aSN5Yid5aeL5YyWCiAgICBOY3Vyc2VzQmFzZShjb25zdCBOY3Vyc2VzQmFzZSZhbXA7KSA9IGRlbGV0ZTsKICAgIE5jdXJzZXNCYXNlJmFtcDsgb3BlcmF0b3I9KGNvbnN0IE5jdXJzZXNCYXNlJmFtcDspID0gZGVsZXRlOwp9OwoKLy8g5Li756iL5bqPCmludCBtYWluKCkgewogICAgTmN1cnNlc0Jhc2UgYXBwOwogICAgbXZwcmludHcoNSwgMTAsICJDKysgTkNVUlNFUyDlkK\/liqjmiJDlip\/vvIHmjInku7vmhI\/plK7pgIDlh7oiKTsKICAgIGdldGNoKCk7CiAgICByZXR1cm4gMDsKfTwvY29kZT48L3ByZT4KPCEtLSAvd3A6Y29kZSAtLT4KCjwhLS0gd3A6c2VwYXJhdG9yIC0tPgo8aHIgY2xhc3M9IndwLWJsb2NrLXNlcGFyYXRvciBoYXMtYWxwaGEtY2hhbm5lbC1vcGFjaXR5Ii8+CjwhLS0gL3dwOnNlcGFyYXRvciAtLT4KCjwhLS0gd3A6aGVhZGluZyAtLT4KPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7pmLbmrrUgMu+8mui+k+WFpeOAgeminOiJsuOAgeeql+WPo+OAgemUruebmOS6i+S7tu+8iDIuNSDlsI\/ml7bvvIk8L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPuebruaghzwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmxpc3QgLS0+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT7lvanoibLnlYzpnaI8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPue7iOerr+i+k+WFpeWtl+espuS4sjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+56qX5Y+j57uY5Yi244CB6L655qGGPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT7mlrnlkJHplK4v5Zue6L2mL0VTQyDkuovku7Y8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7moLjlv4Pnn6Xor4bngrk8L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+6aKc6Imy5a+577yaPGNvZGU+aW5pdF9wYWlyKCk8L2NvZGU+IC8gPGNvZGU+Q09MT1JfUEFJUigpPC9jb2RlPjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+6L6T5YWl77yaPGNvZGU+Z2V0c3RyKCk8L2NvZGU+IC8gPGNvZGU+bXZzY2FudygpPC9jb2RlPjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+56qX5Y+j77yaPGNvZGU+V0lORE9XKjwvY29kZT4gLyA8Y29kZT5uZXd3aW4oKTwvY29kZT4gLyA8Y29kZT5ib3goKTwvY29kZT48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPuaMiemUru+8mjxjb2RlPktFWV9VUDwvY29kZT4gPGNvZGU+S0VZX0RPV048L2NvZGU+IDxjb2RlPktFWV9FTlRFUjwvY29kZT4gPGNvZGU+Mjc9RVNDPC9jb2RlPjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpzZXBhcmF0b3IgLS0+CjxociBjbGFzcz0id3AtYmxvY2stc2VwYXJhdG9yIGhhcy1hbHBoYS1jaGFubmVsLW9wYWNpdHkiLz4KPCEtLSAvd3A6c2VwYXJhdG9yIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPumYtuautSAz77yaQysrIOmdouWQkeWvueixoeWwgeijhe+8iDIg5bCP5pe277yJPC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7nm67moIc8L2gzPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpsaXN0IC0tPgo8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+5oqKIG5jdXJzZXMg5Yqf6IO95bCB6KOF5oiQPHN0cm9uZz7lj6\/lpI3nlKjnsbs8L3N0cm9uZz48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPuS7o+eggee7k+aehOa4heaZsO+8jOmAguWQiOWBmumhueebrjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPuWwgeijheexu+a4heWNlTwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmxpc3QgeyJvcmRlcmVkIjp0cnVlfSAtLT4KPG9sIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxjb2RlPk5jdXJzZXNBcHA8L2NvZGU+77ya5Li75bqU55So57G7PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48Y29kZT5XaW5kb3c8L2NvZGU+77ya56qX5Y+j57G777yI5Yib5bu644CB6L655qGG44CB5omT5Y2w77yJPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48Y29kZT5NZW51PC9jb2RlPu+8muiPnOWNleexu++8iOaWueWQkemUrumAieaLqe+8iTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+PGNvZGU+SW5wdXRCb3g8L2NvZGU+77ya6L6T5YWl5qGG57G7PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvb2w+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+6L+Z5piv5YGa6YCa6K6v5b2V55qEPHN0cm9uZz7lnLDln7o8L3N0cm9uZz7jgII8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6c2VwYXJhdG9yIC0tPgo8aHIgY2xhc3M9IndwLWJsb2NrLXNlcGFyYXRvciBoYXMtYWxwaGEtY2hhbm5lbC1vcGFjaXR5Ii8+CjwhLS0gL3dwOnNlcGFyYXRvciAtLT4KCjwhLS0gd3A6aGVhZGluZyAtLT4KPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7pmLbmrrUgNO+8muaVsOaNrue7k+aehCArIOaWh+S7tuaMgeS5heWMlu+8iDEuNSDlsI\/ml7bvvIk8L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpoZWFkaW5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPuebruaghzwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmxpc3QgLS0+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5DKysg57uT5p6E5L2T5a2Y5YKo6IGU57O75Lq6PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT7mlofku7bor7vlhpnvvIjkuozov5vliLYv5paH5pys77yJPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT7nqIvluo\/lkK\/liqjoh6rliqjliqDovb3vvIzpgIDlh7roh6rliqjkv53lrZg8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLT4KCjwhLS0gd3A6Y29kZSAtLT4KPHByZSBjbGFzcz0id3AtYmxvY2stY29kZSI+PGNvZGU+c3RydWN0IENvbnRhY3QgewogICAgc3RkOjpzdHJpbmcgbmFtZTsKICAgIHN0ZDo6c3RyaW5nIHBob25lOwogICAgc3RkOjpzdHJpbmcgbm90ZTsKfTsKCmNsYXNzIENvbnRhY3RTdG9yYWdlIHsKcHVibGljOgogICAgdm9pZCBsb2FkKCk7CiAgICB2b2lkIHNhdmUoKTsKcHJpdmF0ZToKfTs8L2NvZGU+PC9wcmU+CjwhLS0gL3dwOmNvZGUgLS0+Cgo8IS0tIHdwOnNlcGFyYXRvciAtLT4KPGhyIGNsYXNzPSJ3cC1ibG9jay1zZXBhcmF0b3IgaGFzLWFscGhhLWNoYW5uZWwtb3BhY2l0eSIvPgo8IS0tIC93cDpzZXBhcmF0b3IgLS0+Cgo8IS0tIHdwOmhlYWRpbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+6Zi25q61IDXvvJrlrp7miJjpobnnm64g4oCU4oCUIEMrKyDpnaLlkJHlr7nosaHpgJrorq\/lvZXvvIgyIOWwj+aXtu+8iTwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+5Yqf6IO95riF5Y2VPC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD7inIUg5Li76I+c5Y2V77yI5pa55ZCR6ZSu6YCJ5oupICsg5Zue6L2m56Gu6K6k77yJPGJyPuKchSDmt7vliqDogZTns7vkuro8YnI+4pyFIOafpeeci+iBlOezu+S6uu+8iOWIhumhte+8iTxicj7inIUg5pCc57Si6IGU57O75Lq6PGJyPuKchSDliKDpmaTogZTns7vkuro8YnI+4pyFIOS\/ruaUueiBlOezu+S6ujxicj7inIUg5pWw5o2u6Ieq5Yqo5L+d5a2YPGJyPuKchSDlvanoibLnlYzpnaI8YnI+4pyFIEVTQyDov5Tlm57kuIrkuIDnuqc8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6c2VwYXJhdG9yIC0tPgo8aHIgY2xhc3M9IndwLWJsb2NrLXNlcGFyYXRvciBoYXMtYWxwaGEtY2hhbm5lbC1vcGFjaXR5Ii8+CjwhLS0gL3dwOnNlcGFyYXRvciAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjoxfSAtLT4KPGgxIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7lm5vjgIFDKysgTkNVUlNFUyDns7vnu5\/lrabkuaDlpKfnurLvvIjmraPlvI\/niYjvvIk8L2gxPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPuesrCAxIOWkqe+8mueOr+WigyArIEMrKyDlsIHoo4Xln7rnoYA8L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpsaXN0IHsib3JkZXJlZCI6dHJ1ZX0gLS0+CjxvbCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT7lronoo4Xnjq\/looM8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPlJBSUkg6Ieq5Yqo566h55CGIG5jdXJzZXM8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPuWFieagh+aOp+WItuOAgeaJk+WNsOOAgeaMiemUruiOt+WPljwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+56ys5LiA5LiqIEMrKyBuY3Vyc2VzIOeoi+W6jzwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L29sPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPuesrCAyIOWkqe+8muminOiJsuOAgei+k+WFpeOAgeeql+WPozwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmxpc3QgeyJvcmRlcmVkIjp0cnVlfSAtLT4KPG9sIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPuW9qeiJsueVjOmdojwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+5a2X56ym5Liy6L6T5YWlPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT7lpJrnqpflj6Pnu5jliLY8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPui+ueahhuOAgeagh+mimOOAgeWIhumalOe6vzwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L29sPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPuesrCAzIOWkqe+8mumUruebmOS6i+S7tiArIOiPnOWNleezu+e7nzwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmxpc3QgeyJvcmRlcmVkIjp0cnVlfSAtLT4KPG9sIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPuaWueWQkemUruOAgUVTQ+OAgeWbnui9puWkhOeQhjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+5peg6ZmQ5b6q546v6I+c5Y2VPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT7lsYLnuqfoj5zljZXvvIjkuLvoj5zljZUg4oaSIOWtkOiPnOWNle+8iTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L29sPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPuesrCA0IOWkqe+8mkMrKyDmlbDmja7nrqHnkIY8L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpsaXN0IHsib3JkZXJlZCI6dHJ1ZX0gLS0+CjxvbCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5zdHJ1Y3QgLyB2ZWN0b3I8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPuaWh+S7tuivu+WGmTwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+5aKe5Yig5pS55p+l6YC76L6RPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvb2w+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOmhlYWRpbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+56ysIDUg5aSp77ya6aG555uu5pW05ZCIIOKAlOKAlCDpgJrorq\/lvZU8L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpsaXN0IHsib3JkZXJlZCI6dHJ1ZX0gLS0+CjxvbCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT7nsbvkuYvpl7TosIPnlKg8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPlVJIOS4jumAu+i+keWIhuemuzwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+5a6M5ZaE55WM6Z2i5LiO5Lqk5LqSPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT7mtYvor5XkuI7kv67lpI0gQlVHPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvb2w+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOnNlcGFyYXRvciAtLT4KPGhyIGNsYXNzPSJ3cC1ibG9jay1zZXBhcmF0b3IgaGFzLWFscGhhLWNoYW5uZWwtb3BhY2l0eSIvPgo8IS0tIC93cDpzZXBhcmF0b3IgLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6MX0gLS0+CjxoMSBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+5LqU44CBQysrIOeJiOmAmuiur+W9leaguOW\/g+aetuaehO+8iOmihOiniO+8iTwvaDE+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+5L2g5pyq5p2l5pyA57uI5YaZ5Ye655qE5Luj56CB57uT5p6E5piv6L+Z5qC355qE77yaPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmNvZGUgLS0+CjxwcmUgY2xhc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPnNyYy8KIOKUnOKUgOKUgCBOY3Vyc2VzQXBwLmggICAgLy8g5bCB6KOF5Z+657G7CiDilJzilIDilIAgV2luZG93LmggICAgICAgIC8vIOeql+WPo+exuwog4pSc4pSA4pSAIE1lbnUuaCAgICAgICAgICAvLyDoj5zljZXnsbsKIOKUnOKUgOKUgCBDb250YWN0LmggICAgICAgLy8g6IGU57O75Lq657uT5p6E5L2TCiDilJzilIDilIAgQ29udGFjdE1hbmFnZXIuaC8vIOS4muWKoemAu+i+keexuwog4pSU4pSA4pSAIG1haW4uY3BwICAgICAgICAvLyDkuLvnqIvluo88L2NvZGU+PC9wcmU+CjwhLS0gL3dwOmNvZGUgLS0+Cgo8IS0tIHdwOmhlYWRpbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+5qC45b+D5LyY5Yq\/PC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPuS4jeS9v+eUqOWFqOWxgOWPmOmHjzwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+6Z2i5ZCR5a+56LGhPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT7lj6\/mianlsZU8L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPue7iOerr+mAgOWHuuS4jeS8muW0qea6gzwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+5Luj56CB5bmy5YeA5piT6K+7PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOnNlcGFyYXRvciAtLT4KPGhyIGNsYXNzPSJ3cC1ibG9jay1zZXBhcmF0b3IgaGFzLWFscGhhLWNoYW5uZWwtb3BhY2l0eSIvPgp1cnNlczwhLS0gL3dwOnNlcGFyYXRvciAtLT5zdGF0ZXZlcnNpb24FBwEFBwEEAg0DAQaXATIFBwUHCAQFBwUHT22DAQUHCAQIBggFCAcIBwgGCA4IDggLCAZIAQYIBCoJCAoIBAgGCAcECkcACyUFCAcECgetAgcLCAcECgcJBQsIBwQKBwYLCAcECgcxCwgHBAoHqwELCAcECgcxCwgHBAoHJQsIBwQKBzcLCAcECkcACwgHBAoHDwULCAcECkcABQsIBwQKBw81CwgHBAoHDAULCAcECgc1CwgHBApHAAsIBwQKBxcFCwgHBAoHIgULCAcECgcCBQsIBwQKBwYLCAcECgcPCwgHBAoHKgsIBwQKBxALCAcECgdFAAsIBwQKBwYLCAcECgc6CwgHBAoHhQELCAcECgeHAQsIBwQKBw4FCwgHBAoHrwkLCAcECkcACwgHBAoHGgULCAcECgcCBQsIBwQKBwYLCAcECgcECwgHBApHAAsIBwQKRwALCAcECgcNCwgHBAoHRQALCAcECgcGCwgHBAoHOAsIBwQKBzELCAcECgeEAQsIBwQKB5cBCwgHBApHAAsIBwQKBxUFCwgHBAoHAgULCAcECgcGCwgHBAoHJAsIBwQKBwwLCAcECgdFAAsIBwQKBwYLCAcECgccCwgHBAoHIQsIBwQKBxwLCAcECgcaCwgHBAoHGwcLCAcECkcACwgHBAoHGQULCAcECgcCBQsIBwQKBwYLCAcECgcMCwgHBAoHDAsIBwQKBw8LCAcECgeZAwsIBwQKRwALCAcECgceBQsIBwQKBwQFCwgHBAoHswEHCwgHBApHAAsIBwQKBxkFCwgHBAoHEwULCAcECgcGCwgHBAoHBAsIBwQKBxELCAcECgcMCwgHBAoHEgsIBwQKBw4FCwgHBAoHBgsIBwQKBwQLCAcECgcFCwgHBAoHBQsIBwQKBwkLCAcECgcRBQsIBwQKBwYLCAcECgcMCwgHBAoHBgsIBwQKBw8LCAcECgcOBQsIBwQKBwYLCAcECgcPCwgHBAoHBAsIBwQKBwYLCAcECgcRBQsIBwQKBwYLCAcECgcFCwgHBAoHCAsIBwQKRwALCAcECgcJCwgHBApHAAsIBwQKBxIFCwgHBAoHEQcLCAcECgeyAgsIBwQKBwQFCwgHBAoHBgsIBwQKRwALCAcECgcECwgHBAoHAwsIBwQKBwgLCAcECgcGCwgHBApHAAuyFpAZsDqSPAUWBQcSAQYAbgEDAAABCQABAQIAuQYBqQNCAQEAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQAAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAANABQR0CQQECQQAsCggZQQADQSMEAgVBxwEEQQ4jARgBlgMBLwEbASEBmAEBnwYBggEBIQG2AQGuAQGNAwE9ARwBLQGLCwG6AQEgAYACASQBmAEBlRoBFAGXBwEnAZIBAbYQARUBlQYBGQGfAQEiAToBDAG8BAEPARYBFwGmAgERAbsEAR0BOgGuBAERAakEARoBmw0BHQERAacFARABkwQBDwGlAb+AAgJBLSURQeoCFQETAbABAREBOQEKATwBgQEHuQGdATWxEgQUQQEVAgNBAQYaAH0BdyRlYzA3ODMzNS05MmQ3LTRjMjAtYTExYi1iNmYxODIzMzFlZmF3iQY8cHJlIGNsYXNzPSJ3cC1ibG9jay1jb2RlIj48Y29kZT4jaW5jbHVkZSAmbHQ7bmN1cnNlc3cvbmN1cnNlcy5oPgojaW5jbHVkZSAmbHQ7c3RyaW5nPgoKY2xhc3MgTmN1cnNlc0Jhc2UgewpwdWJsaWM6CiAgICBOY3Vyc2VzQmFzZSgpIHsKICAgICAgICBpbml0c2NyKCk7ICAgICAgICAgICAgLy8g5Yid5aeL5YyWCiAgICAgICAgY2JyZWFrKCk7ICAgICAgICAgICAgIC8vIOaXoOe8k+WGsui+k+WFpQogICAgICAgIG5vZWNobygpOyAgICAgICAgICAgICAvLyDkuI3lm57mmL4KICAgICAgICBrZXlwYWQoc3Rkc2NyLCB0cnVlKTsgLy8g5byA5ZCv5Yqf6IO96ZSuCiAgICAgICAgc3RhcnRfY29sb3IoKTsgICAgICAgIC8vIOW8gOWQr+minOiJsgogICAgfQoKICAgIH5OY3Vyc2VzQmFzZSgpIHsKICAgICAgICBlbmR3aW4oKTsgLy8g6Ieq5Yqo6ZSA5q+B77yM57uI56uv5oGi5aSN5q2j5bi4CiAgICB9CgogICAgLy8g56aB55So5ou36LSd77yM6YG\/5YWN6YeN5aSN5Yid5aeL5YyWCiAgICBOY3Vyc2VzQmFzZShjb25zdCBOY3Vyc2VzQmFzZSZhbXA7KSA9IGRlbGV0ZTsKICAgIE5jdXJzZXNCYXNlJmFtcDsgb3BlcmF0b3I9KGNvbnN0IE5jdXJzZXNCYXNlJmFtcDspID0gZGVsZXRlOwp9OwoKLy8g5Li756iL5bqPCmludCBtYWluKCkgewogICAgTmN1cnNlc0Jhc2UgYXBwOwogICAgbXZwcmludHcoNSwgMTAsICJDKysgTkNVUlNFUyDlkK\/liqjmiJDlip\/vvIHmjInku7vmhI\/plK7pgIDlh7oiKTsKICAgIGdldGNoKCk7CiAgICByZXR1cm4gMDsKfTwvY29kZT48L3ByZT53JDg1YTkzM2IzLWJkNjUtNGUwMi1hYjhmLTU1M2FiM2I3MGY0M3ckMzg5YjE0NjgtOTkxYS00NjRjLTkzM2QtNzg4NWY4N2M0MWRhdyQ2MmVlZWQ0MC1hMzdkLTQ2YzgtYTM3Zi01ZjllZTE4YmNiYmR3JDIxYmQyMGY1LWQxMzUtNDVhZi1hM2RjLWM1NDAxZGQzODJjN3ckMTkwZGE5NzAtNzcwMC00MjY3LTliNDQtNTM5YzBlMDhhMTg0dyQxNzQ0MzI3MC00ZGVmLTRlNzctOTZhOS0xYTY1YmY4ZThhZTF3JDEyMTIxZmVjLTNiNWQtNDljNi04ZWY3LTE5NzYxZTgzMmMwYnckOTZhMjg1MjgtMDFlMi00YjhhLTk3M2YtMWY1YmZhZTdiMTQwdyQ5ZTg3ZmRlZS0yOTQ5LTRiN2UtOGIzMC0zODRmNDEzY2RkNDJ3JDgwNTJiNGRjLTI2NzQtNDU1ZC1iNjkzLWM1OTJhNzRmZmYwYXckZjYxZmVjMTEtYWRlNi00ZWYxLWFkMDEtYWQ1MjE0NGE0YTA5dyRhZmY2YTE1MC1iN2JhLTQ0MGMtYmVlMi04MjU3Yjk2ZmNkMjV3JDNkZTdjMGU3LTM0NjctNDY0Yi05NDdkLTU5MDIwOWE0MzQwZnckZDQzODQwNTItMWViNC00YTg4LTg3ZTMtNmQyODYzYWJkOTFjdyQ2ZGExNDdiMi05MDc5LTRlMmQtOTMzNi1hZmUxOTEzMzg5Zjh3JGIxODNiNGMxLTk5YmMtNGNiYy1iMDBlLTQzYWIyMWZhODUyNnckMzE4MmU2NTItZmI2Yy00YzU3LWE4YjAtMDZkYTk5Yzg2NDMxdyQ3NDhiMTY3Yi0zMWRmLTQzYWUtYmM5My0wYWQxMzRmZTViNGN3lAI8cHJlIGNsYXNzPSJ3cC1ibG9jay1jb2RlIj48Y29kZT5zdHJ1Y3QgQ29udGFjdCB7CiAgICBzdGQ6OnN0cmluZyBuYW1lOwogICAgc3RkOjpzdHJpbmcgcGhvbmU7CiAgICBzdGQ6OnN0cmluZyBub3RlOwp9OwoKY2xhc3MgQ29udGFjdFN0b3JhZ2UgewpwdWJsaWM6CiAgICB2b2lkIGxvYWQoKTsKICAgIHZvaWQgc2F2ZSgpOwpwcml2YXRlOgogICAgc3RkOjp2ZWN0b3ImbHQ7Q29udGFjdD4gbGlzdDsgLy8gQysrIOWuueWZqO+8jOavlOaVsOe7hOWuieWFqAp9OzwvY29kZT48L3ByZT53Rm5jdXJzZXMlZTUlYmElOTMlZTklODUlOGQlZTclYmQlYWUlZTUlYmMlODAlZTUlOGYlOTElZTclOGUlYWYlZTUlYTIlODMeAHckNWY3OTU1NDYtN2QyYi00MmYwLWFkNWQtMjY2NmY2MTMzYTRid3M8cHJlIGNsYXNzPSJ3cC1ibG9jay1jb2RlIj48Y29kZT4jIFVidW50dS9EZWJpYW4Kc3VkbyBhcHQgaW5zdGFsbCBsaWJuY3Vyc2VzNS1kZXYgbGlibmN1cnNlc3c1LWRldiBnKys8L2NvZGU+PC9wcmU+AgDsAQB1AX0ndwdwdWJsaXNodxMyMDI2LTA1LTA4VDA5OjU5OjI1dyQzZGUzYWExYS03MGJlLTQ0YmQtOWNkMS1kNzkxNjg3YTFhZDR3dzxoMSBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+QysrIOmdouWQkeWvueixoSBuY3Vyc2VzIOezu+e7n+WtpuS5oOaWueahiO+8iOS7jumbtuWfuuehgOWIsOS8geS4mue6p+e7iOerr+eoi+W6j++8iTwvaDE+dyQ5NDVlZmNhZi01MDM5LTQxNzEtODEyYS00MDgzMjJlYjNkNzd3ugI8cD7ov5nmmK88c3Ryb25nPuWujOWFqOWfuuS6jiBDKys8L3N0cm9uZz7jgIE8c3Ryb25nPumdouWQkeWvueixoeaAneaDszwvc3Ryb25nPuOAgTxzdHJvbmc+5b6q5bqP5riQ6L+bPC9zdHJvbmc+55qEIG5jdXJzZXMg5a2m5Lmg5pa55qGI77yM5oqb5byDIEMg6K+t6KiA6Z2i5ZCR6L+H56iL5YaZ5rOV77yM55So57G75bCB6KOF44CBUkFJSeOAgeW8guW4uOWkhOeQhuetieeOsOS7oyBDKysg54m55oCn5byA5Y+RIG5jdXJzZXMg56iL5bqP77yM5pyA57uI5a6e546wPHN0cm9uZz5DKysg54mI6auY5Y+v55So6YCa6K6v5b2VPC9zdHJvbmc+44CCPC9wPnckNDE0ODEzM2QtMjAxMS00NDZmLTk3MWItYjgwMzE3ZmM0NWJidz08aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPuS4gOOAgeaWueahiOWumuS9jeS4juS6rueCuTwvaDI+dyQ5NzljOTRlZC0xZDQwLTQ4NTYtYTA2Mi00OTZmZDQwNDExNDV3JzxvbCBjbGFzcz0id3AtYmxvY2stbGlzdCI+CgoKCgoKCgo8L29sPnckZjNkNDhmNmYtMmIwYi00ZmQ3LWEzY2MtNWRkYWIwMTZjYjUwd148bGk+PHN0cm9uZz7nuq8gQysrPC9zdHJvbmc+77ya5YWo56iL5L2\/55SoIEMrKzExIOWPiuS7peS4iuagh+WHhu+8jOS4jeeUqCBDIOivreiogOWGmeazlTwvbGk+dyRiNjg3NzA5Ni01MTI1LTQzODAtOGM3My05NmQyNWY1NTUyNTZ3lgE8bGk+PHN0cm9uZz7pnaLlkJHlr7nosaE8L3N0cm9uZz7vvJrlsIHoo4UgPGNvZGU+TmN1cnNlc0FwcDwvY29kZT4g5Z+657G744CBPGNvZGU+Q29udGFjdE1hbmFnZXI8L2NvZGU+IOS4muWKoeexu+OAgTxjb2RlPldpbmRvdzwvY29kZT4g56qX5Y+j57G7PC9saT53JDA4NjI5NzkwLWVkY2EtNGM5NC1hOGE2LTQ4NGVlNWQ3NTlhNnduPGxpPjxzdHJvbmc+UkFJSSDotYTmupDnrqHnkIY8L3N0cm9uZz7vvJrliJ3lp4vljJYv6ZSA5q+B6Ieq5Yqo566h55CG77yM5p2c57ud5YaF5a2Y5rOE5ryP44CB57uI56uv5Y2h5q27PC9saT53JDQyODQzYzMwLWM4MDktNDAzNS1iZDk2LWQwZjQwMGNhYmZkYndWPGxpPjxzdHJvbmc+5bel56iL5YyWPC9zdHJvbmc+77ya5YiG5paH5Lu25byA5Y+R44CB5Luj56CB5aSN55So44CB5Y+v57u05oqk5oCn5by6PC9saT53JGIwM2ZhYzU3LTM2NmYtNGUxMC05MjhmLWI0MWZlYjE5ZjRjM3eEATxsaT48c3Ryb25nPuacgOe7iOaIkOWTgTwvc3Ryb25nPu+8mkMrKyDnu4jnq6\/pgJrorq\/lvZXvvIjlop7liKDmlLnmn6XjgIHliIbpobXjgIHlvanoibLjgIHmlrnlkJHplK7oj5zljZXjgIHmlofku7bmjIHkuYXljJbvvIk8L2xpPnckNzU2YjhmMzAtZGI5NC00OGEyLWIwZTItMWI5NGQ5OTBkMTgxdzo8aHIgY2xhc3M9IndwLWJsb2NrLXNlcGFyYXRvciBoYXMtYWxwaGEtY2hhbm5lbC1vcGFjaXR5Ii8+dyRhNDM2ODIwZi1jZjU4LTQzNTktYTM5OS1iYjhlOGM2ODg2ODV3STxoMSBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+5LqM44CB5a2m5Lmg546v5aKD5YeG5aSH77yIMzAg5YiG6ZKf77yJPC9oMT53JGFkNDlmYTUzLTE0NWYtNDkyNy1hMDA5LWU3Y2JlMTcwYTNjY3cxPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj4xLiDlronoo4Xkvp3otZY8L2gyPnckZjc3OGZlMjEtYjk2Mi00NjkwLWEyZTgtYmYzYjM5Njc4YWEwdzo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjIuIOe8luivkeinhOWIme+8iEMrK++8iTwvaDI+dyRhYjU0YTA0Ny1mZTlkLTQyMmQtYTU5NS1iMjFmNDk2ZWIxMGZ3cTxwcmUgY2xhc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPmcrKyAtc3RkPWMrKzExIG1haW4uY3BwIC1vIGFwcCAtbG5jdXJzZXN3ICAjIOWuveWtl+espivkuK3mlofmlK\/mjIE8L2NvZGU+PC9wcmU+dyQ3NzliNGJjMS1iNmM4LTRmZTctOGQ2NC0xMDc1ZWU4ZmZkYjd3OjxociBjbGFzcz0id3AtYmxvY2stc2VwYXJhdG9yIGhhcy1hbHBoYS1jaGFubmVsLW9wYWNpdHkiLz53JDgyYmJkOWVjLTU2ZTAtNDUyZi1iZDA0LWY5YTRjYjliMmFmYXdZPGgxIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7kuInjgIHlrabkuaDot6\/nur\/vvIjlhbEgNSDpmLbmrrXvvIzmgLvorqEgMTAg5bCP5pe277yJPC9oMT53JGNlNzc0OGJjLWM2OGQtNGU4ZC05ODU2LThjYzY2Y2E5ZjMyZHdiPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7pmLbmrrUgMe+8mm5jdXJzZXMg5qC45b+D5Y6f55CGICsgQysrIOWwgeijheWfuuehgO+8iDIg5bCP5pe277yJPC9oMj53JDc4ZmNiYjQ3LTViZGYtNGFmOS05NDgzLWQ4YWI3OWUwOWQ2M3coPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7nm67moIc8L2gzPnckMzcxNjU5ZTItNTI5My00YjZmLWEyZmEtZTQxNWU5Zjg5ZDhjdyM8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPgoKCgo8L3VsPnckMGM0OWMwOTItNDcyZC00NzA1LTk4ZGYtN2VmYTFmNjA5OTIwdyQ8bGk+55CG6KejIG5jdXJzZXMg55Sf5ZG95ZGo5pyfPC9saT53JDY0ZTRkYTQ5LWY3ODktNGI1ZS1hNDI2LWM5ZjQ2OWE1N2Y0NndJPGxpPueUqCA8c3Ryb25nPkMrKyDnsbsgKyBSQUlJPC9zdHJvbmc+IOiHquWKqOeuoeeQhuWIneWni+WMli\/plIDmr4E8L2xpPnckZWI1MGNlMTctNjVjMy00ODU5LTk3YjQtMDJlMzVkOTZhMGQxdzk8bGk+5o6M5o+h5pyA5Z+656GA55qE5bGP5bmV6L6T5Ye644CB6L6T5YWl44CB5oyJ6ZSuPC9saT53JDdjMWE4MzJiLTViODktNDEyYS05ZjU1LWZmMzYyYTUyMjEyMncxPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7moLjlv4Pnn6Xor4bngrk8L2gzPnckM2VhOTg1OTItNmIyMy00YzY1LTkwYmQtMmM2YWIxNzgwYmZldyM8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPgoKCgo8L3VsPnckZWUwYjk0OGYtYzA4OS00ZDE3LTkyNTgtNTFmNjgwYTBmMmQ1d1c8bGk+PGNvZGU+aW5pdHNjcigpPC9jb2RlPiAvIDxjb2RlPmVuZHdpbigpPC9jb2RlPiDoh6rliqjosIPnlKjvvIjmnoTpgKAv5p6Q5p6E77yJPC9saT53JDEyMDllNDQ5LTFhZDItNDY0MC1iMjBmLTFlOTg0NDQ3ZDMzMndOPGxpPjxjb2RlPm5vZWNobygpPC9jb2RlPiAvIDxjb2RlPmNicmVhaygpPC9jb2RlPiAvIDxjb2RlPmtleXBhZCgpPC9jb2RlPjwvbGk+dyRiMTliMDQ4NC0zYmJkLTRkYjUtOWY3MC1kNTgzMGZhOGE2ZDl3UDxsaT48Y29kZT5tdnByaW50dygpPC9jb2RlPiAvIDxjb2RlPmdldGNoKCk8L2NvZGU+IC8gPGNvZGU+cmVmcmVzaCgpPC9jb2RlPjwvbGk+dyQ1MzAzZWIxYi00MDc2LTQ3Y2UtOWRmMy0wNDJlMGUzYWZiNDV3RDxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+QysrIOacgOWwj+ahhuaetu+8iOW\/hemhu+aOjOaPoe+8iTwvaDM+dzo8aHIgY2xhc3M9IndwLWJsb2NrLXNlcGFyYXRvciBoYXMtYWxwaGEtY2hhbm5lbC1vcGFjaXR5Ii8+d2Q8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPumYtuautSAy77ya6L6T5YWl44CB6aKc6Imy44CB56qX5Y+j44CB6ZSu55uY5LqL5Lu277yIMi41IOWwj+aXtu+8iTwvaDI+dyg8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPuebruaghzwvaDM+dyU8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPgoKCgoKCjwvdWw+dyRiZTIxMmNlOS1iOWUzLTQ4OTQtYWU3YS0xNjc0MGUxNzM5MzN3FTxsaT7lvanoibLnlYzpnaI8L2xpPnckMjYyN2IyYjctNTVmNi00NjBhLTgyMzctZjAzMmY0NThiN2U5dx48bGk+57uI56uv6L6T5YWl5a2X56ym5LiyPC9saT53JGMyYmIxMzY4LWZiNmItNGUzNi1hZTI1LWFjMzVhZDJkYzZjZHcePGxpPueql+WPo+e7mOWItuOAgei+ueahhjwvbGk+dyQwNWRlMzRmMS0wYzMzLTQxNDktODQyZS0xMjAyZWUxOGEzMGJ3JDxsaT7mlrnlkJHplK4v5Zue6L2mL0VTQyDkuovku7Y8L2xpPncxPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7moLjlv4Pnn6Xor4bngrk8L2gzPnclPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij4KCgoKCgo8L3VsPnckZWI1NWMyODMtZDY4My00Y2E1LWI2MjMtYTQ1NmRjMzQ0MjQwd0k8bGk+6aKc6Imy5a+577yaPGNvZGU+aW5pdF9wYWlyKCk8L2NvZGU+IC8gPGNvZGU+Q09MT1JfUEFJUigpPC9jb2RlPjwvbGk+dyQ2MWMzMzVmZS0xMTI0LTRiMjctOWE4Yy1hZDFiN2I1MGI0NDJ3QDxsaT7ovpPlhaXvvJo8Y29kZT5nZXRzdHIoKTwvY29kZT4gLyA8Y29kZT5tdnNjYW53KCk8L2NvZGU+PC9saT53JGI5ODY0NmFmLTdkM2QtNDc3NS05NzdhLTEyYzg4M2UzM2E2YndTPGxpPueql+WPo++8mjxjb2RlPldJTkRPVyo8L2NvZGU+IC8gPGNvZGU+bmV3d2luKCk8L2NvZGU+IC8gPGNvZGU+Ym94KCk8L2NvZGU+PC9saT53JDdlNTJjZGU3LTY1ODctNDAxYy1iNzYxLTZjZmIwNGY4YjBkNHdmPGxpPuaMiemUru+8mjxjb2RlPktFWV9VUDwvY29kZT4gPGNvZGU+S0VZX0RPV048L2NvZGU+IDxjb2RlPktFWV9FTlRFUjwvY29kZT4gPGNvZGU+Mjc9RVNDPC9jb2RlPjwvbGk+dzo8aHIgY2xhc3M9IndwLWJsb2NrLXNlcGFyYXRvciBoYXMtYWxwaGEtY2hhbm5lbC1vcGFjaXR5Ii8+d1E8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPumYtuautSAz77yaQysrIOmdouWQkeWvueixoeWwgeijhe+8iDIg5bCP5pe277yJPC9oMj53KDxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+55uu5qCHPC9oMz53ITx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+Cgo8L3VsPnckMjU4NzI4ZjEtYmMzYi00MjJiLTliOTItMjIyYjQxZjRlZWEzd0E8bGk+5oqKIG5jdXJzZXMg5Yqf6IO95bCB6KOF5oiQPHN0cm9uZz7lj6\/lpI3nlKjnsbs8L3N0cm9uZz48L2xpPnckNDkwNGRmMmYtMzNmZC00N2FlLTg1NzAtYWE1MWQ0YzAxZjcydy08bGk+5Luj56CB57uT5p6E5riF5pmw77yM6YCC5ZCI5YGa6aG555uuPC9saT53MTxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+5bCB6KOF57G75riF5Y2VPC9oMz53JTxvbCBjbGFzcz0id3AtYmxvY2stbGlzdCI+CgoKCgoKPC9vbD53JDM3OGQzYzY3LTFhNjYtNDA0NS04YjVlLThlZWU1N2YyOTJiYncvPGxpPjxjb2RlPk5jdXJzZXNBcHA8L2NvZGU+77ya5Li75bqU55So57G7PC9saT53JDMwNmMxNmE0LTJjZDMtNGIwNC1iZjhjLTc4M2FmODZlODhhYXdGPGxpPjxjb2RlPldpbmRvdzwvY29kZT7vvJrnqpflj6PnsbvvvIjliJvlu7rjgIHovrnmoYbjgIHmiZPljbDvvIk8L2xpPnckMmY3MTI4NWItYjVkMi00NDVmLThhMjQtMWUxMTg5OGYxMjcwdzs8bGk+PGNvZGU+TWVudTwvY29kZT7vvJroj5zljZXnsbvvvIjmlrnlkJHplK7pgInmi6nvvIk8L2xpPnckYjUwYTBmY2QtZDhiYS00ZTVjLWJhMmUtMmQwMzE2MWJjMzU2dy08bGk+PGNvZGU+SW5wdXRCb3g8L2NvZGU+77ya6L6T5YWl5qGG57G7PC9saT53NjxwPui\/meaYr+WBmumAmuiur+W9leeahDxzdHJvbmc+5Zyw5Z+6PC9zdHJvbmc+44CCPC9wPnc6PGhyIGNsYXNzPSJ3cC1ibG9jay1zZXBhcmF0b3IgaGFzLWFscGhhLWNoYW5uZWwtb3BhY2l0eSIvPndbPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7pmLbmrrUgNO+8muaVsOaNrue7k+aehCArIOaWh+S7tuaMgeS5heWMlu+8iDEuNSDlsI\/ml7bvvIk8L2gyPncoPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7nm67moIc8L2gzPncjPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij4KCgoKPC91bD53JGFjYmZlMzRjLTU3MzUtNGFiNi1iOTZjLTdjMzZhYjA5OTBkM3clPGxpPkMrKyDnu5PmnoTkvZPlrZjlgqjogZTns7vkuro8L2xpPnckZDAxMmM3ZmItOTk0OS00MjQ4LThjMDMtZjEwODI2ZjBlM2Vjdys8bGk+5paH5Lu26K+75YaZ77yI5LqM6L+b5Yi2L+aWh+acrO+8iTwvbGk+dyQ4ZThkMTVlYi04ODY4LTQzZWItYWYwMC0xMDIxNjkzNmI5ZGV3NjxsaT7nqIvluo\/lkK\/liqjoh6rliqjliqDovb3vvIzpgIDlh7roh6rliqjkv53lrZg8L2xpPnckMWQyNzAyOGMtYzdjNi00MDFiLWE4OGMtMWVhNTIyZTEyYThldzo8aHIgY2xhc3M9IndwLWJsb2NrLXNlcGFyYXRvciBoYXMtYWxwaGEtY2hhbm5lbC1vcGFjaXR5Ii8+dyQ1NTEzMWYxZS05OWE0LTRlZmQtODYzMi01NDE1NWYwNTFhOTd3aDxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+6Zi25q61IDXvvJrlrp7miJjpobnnm64g4oCU4oCUIEMrKyDpnaLlkJHlr7nosaHpgJrorq\/lvZXvvIgyIOWwj+aXtu+8iTwvaDI+dyQ0Yzk0NGY0Yi03OGY1LTRiOTYtYjhiOS0xMWM0YzNlNzFmNDZ3LjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+5Yqf6IO95riF5Y2VPC9oMz53JGMzOGYyNDljLWVmNjUtNGU1Zi1hZGYwLWVjMTlhOWFkMGVmYneAAjxwPuKchSDkuLvoj5zljZXvvIjmlrnlkJHplK7pgInmi6kgKyDlm57ovabnoa7orqTvvIk8YnI+4pyFIOa3u+WKoOiBlOezu+S6ujxicj7inIUg5p+l55yL6IGU57O75Lq677yI5YiG6aG177yJPGJyPuKchSDmkJzntKLogZTns7vkuro8YnI+4pyFIOWIoOmZpOiBlOezu+S6ujxicj7inIUg5L+u5pS56IGU57O75Lq6PGJyPuKchSDmlbDmja7oh6rliqjkv53lrZg8YnI+4pyFIOW9qeiJsueVjOmdojxicj7inIUgRVNDIOi\/lOWbnuS4iuS4gOe6pzwvcD53JDYwZGI0MmVlLTc4YmYtNDljZC1iMTAzLTNiZDIxNWY2NjE5ZXc6PGhyIGNsYXNzPSJ3cC1ibG9jay1zZXBhcmF0b3IgaGFzLWFscGhhLWNoYW5uZWwtb3BhY2l0eSIvPnckNWJhNTYzYzMtNzFlMC00YWI5LWJjMTYtZjRhMjIzMjQxMzY0d1U8aDEgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPuWbm+OAgUMrKyBOQ1VSU0VTIOezu+e7n+WtpuS5oOWkp+e6su+8iOato+W8j+eJiO+8iTwvaDE+dyRkZTExZjVhMi0wMTY5LTQxMzQtOWI0MS04YzA1NGVkOGI4ZTh3RzxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+56ysIDEg5aSp77ya546v5aKDICsgQysrIOWwgeijheWfuuehgDwvaDI+dyQ2MGViNTUwMC0zZjY2LTQzNzItOTJmNi03YTFjZDYzOGZmOGJ3JTxvbCBjbGFzcz0id3AtYmxvY2stbGlzdCI+CgoKCgoKPC9vbD53JDI1ZDgyOWU2LTM2OTgtNDBiMS04ZmQzLWFjMTU4YzRiNGY4NXcVPGxpPuWuieijheeOr+WigzwvbGk+dyQ5NTI4MTllNi0xY2IyLTQwZjgtOGI2NC0zOWRjMGE0ZDdmYmF3IjxsaT5SQUlJIOiHquWKqOeuoeeQhiBuY3Vyc2VzPC9saT53JDdkYjYzZjBkLTQ3NmUtNGI5My1hZjgzLWE5YjZmODkyYzMzM3ctPGxpPuWFieagh+aOp+WItuOAgeaJk+WNsOOAgeaMiemUruiOt+WPljwvbGk+dyRmYzZjMDE0Zi01NTI0LTRjZTAtOGExMC1mZTRlMTU0MzdkOWZ3JTxsaT7nrKzkuIDkuKogQysrIG5jdXJzZXMg56iL5bqPPC9saT53JGNiZDI5OGUwLWNhNGEtNGQ5OC04OTUxLTA5MmYyMmI1MjIxM3dGPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7nrKwgMiDlpKnvvJrpopzoibLjgIHovpPlhaXjgIHnqpflj6M8L2gyPnckYzI5Y2FiMTEtNGJhNi00NTg0LWE2ODgtMjIzYTAwM2IyZTRhdyU8b2wgY2xhc3M9IndwLWJsb2NrLWxpc3QiPgoKCgoKCjwvb2w+dyRjNjM3MWM3OS1jNDk0LTQ3MzMtOGQ5Ni1hMzgwYzM3M2VlNGF3FTxsaT7lvanoibLnlYzpnaI8L2xpPnckYTkyMmFkNzgtN2ZhMy00YTExLTg5M2ItN2FhY2Q4ZDUxYmU0dxg8bGk+5a2X56ym5Liy6L6T5YWlPC9saT53JDEzY2U5M2ZiLThkNDMtNDI5MS04NjA2LWJjNzNjM2JjY2FkMncYPGxpPuWkmueql+WPo+e7mOWItjwvbGk+dyQwMTI3NGNhNy05YWQwLTRhZDQtYjkyZi1lOTQxM2JjZTQyNTB3JDxsaT7ovrnmoYbjgIHmoIfpopjjgIHliIbpmpTnur88L2xpPnckMTY4NDY4YTEtOGU2OS00ZTY3LTkzMTctZjcwZWZiZWRkNDUxd0k8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPuesrCAzIOWkqe+8mumUruebmOS6i+S7tiArIOiPnOWNleezu+e7nzwvaDI+dyQyNWEzMWNiZC1hNzc5LTQ1OWUtOWJhZS1mNjU2NGI5Mjg4NzR3IzxvbCBjbGFzcz0id3AtYmxvY2stbGlzdCI+CgoKCjwvb2w+dyQ0OGQ1OGViZS0xYzViLTRhNGYtYTdiOS1hYjJmMDg1ZmJhY2R3JzxsaT7mlrnlkJHplK7jgIFFU0PjgIHlm57ovablpITnkIY8L2xpPnckZjQ1Yzk2OGItNzBjZi00M2VkLWFkYWItYzA2MmFlZTBjYjg5dxs8bGk+5peg6ZmQ5b6q546v6I+c5Y2VPC9saT53JDA0YmFmZDQwLTgyZWItNDExOC1hOTM4LTk1NDZkOGRiZmIwYXcyPGxpPuWxgue6p+iPnOWNle+8iOS4u+iPnOWNlSDihpIg5a2Q6I+c5Y2V77yJPC9saT53JDU3YjE4ZGU4LTc1MGItNDRhNC1hYjYxLTc4NjVhM2RmNWUxNXc+PGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7nrKwgNCDlpKnvvJpDKysg5pWw5o2u566h55CGPC9oMj53JDMyZjNkN2IzLWYyYzgtNDU2Yy05YjAyLWFiYjE0NzYxZjE5OHcjPG9sIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij4KCgoKPC9vbD53JGRiZDIxNDIyLTZlMDktNGU5Zi04OTU0LWYyNzk2NDk0ZTBlY3cYPGxpPnN0cnVjdCAvIHZlY3RvcjwvbGk+dyQ1NzM0MDljMy1hYjI3LTQxMjAtOWJmNS1kMmU4NjNlMGJlNTl3FTxsaT7mlofku7bor7vlhpk8L2xpPnckNzA4ODI1NjktODY1NC00YTA0LWJjZTMtMTkxMmVlMzZmZjM5dxs8bGk+5aKe5Yig5pS55p+l6YC76L6RPC9saT53JDI5ZWFhZGM4LWIyYjYtNDNiNS1iNGIwLTNlMzc4OTY2MmRlNXdLPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj7nrKwgNSDlpKnvvJrpobnnm67mlbTlkIgg4oCU4oCUIOmAmuiur+W9lTwvaDI+dyQ4MjJiZTQ5ZC00NjA0LTQwZTEtODY3Ni03OTBjMDY1MDcyYTF3JTxvbCBjbGFzcz0id3AtYmxvY2stbGlzdCI+CgoKCgoKPC9vbD53JGExYTkzMDNhLTk3NDktNDczNS1iNmQ0LTY1MjAwOWJiMGUzZHcYPGxpPuexu+S5i+mXtOiwg+eUqDwvbGk+dyQzYzljOTkxMi1hOWJjLTQ5Y2QtODBlYy00ODNiYWMxNGNkNTV3GzxsaT5VSSDkuI7pgLvovpHliIbnprs8L2xpPnckNzQ2NWQ4MDQtNTVmOS00Yjg0LWJlNmMtNTQwZjJiY2Q1Zjlkdx48bGk+5a6M5ZaE55WM6Z2i5LiO5Lqk5LqSPC9saT53JDEwZmJhNTE0LWIzNmUtNDBjNC05MDkzLTliYmYxYWI1YWI0OXccPGxpPua1i+ivleS4juS\/ruWkjSBCVUc8L2xpPnckNTRjYmViNjUtZjUyOS00MDc4LThkMGItN2NmMjk4MzhmYzFjdzo8aHIgY2xhc3M9IndwLWJsb2NrLXNlcGFyYXRvciBoYXMtYWxwaGEtY2hhbm5lbC1vcGFjaXR5Ii8+dyQ0ZGY1ZTFhMy01NDljLTQxNDItYmU2Mi1mYjI3Mzg4MzJhNWN3UDxoMSBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+5LqU44CBQysrIOeJiOmAmuiur+W9leaguOW\/g+aetuaehO+8iOmihOiniO+8iTwvaDE+dyRiOTI4ZTlkYy0wMzY1LTRhMzQtYWIyYS1mMTBjY2FmOWZmM2N3OjxwPuS9oOacquadpeacgOe7iOWGmeWHuueahOS7o+eggee7k+aehOaYr+i\/meagt+eahO+8mjwvcD53JDVjNDFlNWFjLTYyNDAtNGYxZS05YTMzLWUzNGY2ZWYxOWU4ZXe0AjxwcmUgY2xhc3M9IndwLWJsb2NrLWNvZGUiPjxjb2RlPnNyYy8KIOKUnOKUgOKUgCBOY3Vyc2VzQXBwLmggICAgLy8g5bCB6KOF5Z+657G7CiDilJzilIDilIAgV2luZG93LmggICAgICAgIC8vIOeql+WPo+exuwog4pSc4pSA4pSAIE1lbnUuaCAgICAgICAgICAvLyDoj5zljZXnsbsKIOKUnOKUgOKUgCBDb250YWN0LmggICAgICAgLy8g6IGU57O75Lq657uT5p6E5L2TCiDilJzilIDilIAgQ29udGFjdE1hbmFnZXIuaC8vIOS4muWKoemAu+i+keexuwog4pSU4pSA4pSAIG1haW4uY3BwICAgICAgICAvLyDkuLvnqIvluo88L2NvZGU+PC9wcmU+dyRjNWExNzk4NC1hY2Q3LTRkMjUtODA0YS03ZWRmODUzYjI0NTl3LjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+5qC45b+D5LyY5Yq\/PC9oMj53JDg2MDBkMWM2LWZjMjItNDJkZS04MzExLWQ5YWViN2YzZjFjNXcnPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij4KCgoKCgoKCjwvdWw+dyQ0YjY2NzFhNy05ZWU4LTQxNWYtYjgyMy0xZDgxN2M2ODY4YTd3HjxsaT7kuI3kvb\/nlKjlhajlsYDlj5jph488L2xpPnckN2VjNDM0YmUtZmIzNC00ZDE5LWFkODAtZTgyZWJjNjY2Mjg1dxU8bGk+6Z2i5ZCR5a+56LGhPC9saT53JDBiMDZmOGJmLTMwYjYtNDkzOC1hY2YzLWEwODA3Y2UxYjk2MXcSPGxpPuWPr+aJqeWxlTwvbGk+dyQ3MmZiZmM0Yy0zNzA5LTQ4ZWEtYjAwZC1hOWQ5OGYyYTY2MTV3ITxsaT7nu4jnq6\/pgIDlh7rkuI3kvJrltKnmuoM8L2xpPnckYTVmNzU3ODAtMTczMy00ZTgwLWE4NjYtN2QyM2EyNjY2YTQzdxs8bGk+5Luj56CB5bmy5YeA5piT6K+7PC9saT53JDE5ZTJlMzcyLWFhMzQtNDgwNS04Njg1LWU1MWE1NTYwZTMxM3c6PGhyIGNsYXNzPSJ3cC1ibG9jay1zZXBhcmF0b3IgaGFzLWFscGhhLWNoYW5uZWwtb3BhY2l0eSIvPscIAH0BfQB3BG9wZW53BG9wZW55dwB3CHN0YW5kYXJkeXcAdQB4dwxjb3JlL2hlYWRpbmd9AXh3DmNvcmUvcGFyYWdyYXBoeXh3DGNvcmUvaGVhZGluZ30CeHcJY29yZS9saXN0eHcAeHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL2xpc3QtaXRlbXh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL2xpc3QtaXRlbXh3DmNvcmUvc2VwYXJhdG9ydw1hbHBoYS1jaGFubmVsdwJocnh3DGNvcmUvaGVhZGluZ30BeHcMY29yZS9oZWFkaW5nfQJ4dwljb3JlL2NvZGV4dwxjb3JlL2hlYWRpbmd9Anh3CWNvcmUvY29kZXh3DmNvcmUvc2VwYXJhdG9ydw1hbHBoYS1jaGFubmVsdwJocnh3DGNvcmUvaGVhZGluZ30BeHcMY29yZS9oZWFkaW5nfQJ4dwxjb3JlL2hlYWRpbmd9A3h3CWNvcmUvbGlzdHl3AHh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL2xpc3QtaXRlbXh3DGNvcmUvaGVhZGluZ30DeHcJY29yZS9saXN0eXcAeHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL2xpc3QtaXRlbXh3DmNvcmUvbGlzdC1pdGVteHcMY29yZS9oZWFkaW5nfQN4dwljb3JlL2NvZGV4dw5jb3JlL3NlcGFyYXRvcncNYWxwaGEtY2hhbm5lbHcCaHJ4dwxjb3JlL2hlYWRpbmd9Anh3DGNvcmUvaGVhZGluZ30DeHcJY29yZS9saXN0eXcAeHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL2xpc3QtaXRlbXh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9saXN0LWl0ZW14dwxjb3JlL2hlYWRpbmd9A3h3CWNvcmUvbGlzdHl3AHh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL2xpc3QtaXRlbXh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9zZXBhcmF0b3J3DWFscGhhLWNoYW5uZWx3AmhyeHcMY29yZS9oZWFkaW5nfQJ4dwxjb3JlL2hlYWRpbmd9A3h3CWNvcmUvbGlzdHl3AHh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9saXN0LWl0ZW14dwxjb3JlL2hlYWRpbmd9A3h3CWNvcmUvbGlzdHh3AHh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL2xpc3QtaXRlbXh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9wYXJhZ3JhcGh5eHcOY29yZS9zZXBhcmF0b3J3DWFscGhhLWNoYW5uZWx3AmhyeHcMY29yZS9oZWFkaW5nfQJ4dwxjb3JlL2hlYWRpbmd9A3h3CWNvcmUvbGlzdHl3AHh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL2xpc3QtaXRlbXh3CWNvcmUvY29kZXh3DmNvcmUvc2VwYXJhdG9ydw1hbHBoYS1jaGFubmVsdwJocnh3DGNvcmUvaGVhZGluZ30CeHcMY29yZS9oZWFkaW5nfQN4dw5jb3JlL3BhcmFncmFwaHl4dw5jb3JlL3NlcGFyYXRvcncNYWxwaGEtY2hhbm5lbHcCaHJ4dwxjb3JlL2hlYWRpbmd9AXh3DGNvcmUvaGVhZGluZ30CeHcJY29yZS9saXN0eHcAeHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL2xpc3QtaXRlbXh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9saXN0LWl0ZW14dwxjb3JlL2hlYWRpbmd9Anh3CWNvcmUvbGlzdHh3AHh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL2xpc3QtaXRlbXh3DmNvcmUvbGlzdC1pdGVteHcMY29yZS9oZWFkaW5nfQJ4dwljb3JlL2xpc3R4dwB4dw5jb3JlL2xpc3QtaXRlbXh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9saXN0LWl0ZW14dwxjb3JlL2hlYWRpbmd9Anh3CWNvcmUvbGlzdHh3AHh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL2xpc3QtaXRlbXh3DGNvcmUvaGVhZGluZ30CeHcJY29yZS9saXN0eHcAeHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL2xpc3QtaXRlbXh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL3NlcGFyYXRvcncNYWxwaGEtY2hhbm5lbHcCaHJ4dwxjb3JlL2hlYWRpbmd9AXh3DmNvcmUvcGFyYWdyYXBoeXh3CWNvcmUvY29kZXh3DGNvcmUvaGVhZGluZ30CeHcJY29yZS9saXN0eXcAeHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL2xpc3QtaXRlbXh3DmNvcmUvbGlzdC1pdGVteHcOY29yZS9saXN0LWl0ZW14dw5jb3JlL2xpc3QtaXRlbXh3DmNvcmUvc2VwYXJhdG9ydw1hbHBoYS1jaGFubmVsdwJocgMAe0J54F9PmlAAfa2h1MYLBoim5eUOARcBnZPd9wwFAAIDYAQAAgANA\/m7if0LAQAB\/Z6e9ggWAAEDAhgMIAIBAAEAAQAJAAEACQABAAEAAQAFAAEACQABAAEAAQABAAcBnwEBy9+vvQh9AAIBAwwAAwABAAIAAenOASgAtAEAEAAHADcAcQA3ACsAPQAHABYADgATADU1AgATADsABwAeACkACQAHABUAMAAWAAwABwBAAEsATQAVAPUEAAcAIQAJAAcACgANAA0AEwAMAAcAPgA3AEoAXQAHABwACQAHACoAEgAMAAcAIgAnACIAIAAiAAcAIAAJAAcAEgASABUA3wEABwAlAAsAegAHACAAGgAHAAoAFwASABgAFQAHAAoACwALAA8AGAAHABIADAAVABUABwAVAAoADAAYAAcACwAOAA0ADwAHABkAGAC4AQALAAcADQAKAAkADgAMAAb3ArILeNAMXLAdNJIeygkFGu2QquMFAQAA\",\"updateId\":12553408}","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[39],"tags":[],"class_list":["post-2953","post","type-post","status-publish","format-standard","hentry","category-ncurses"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/randengzhe.cn\/wordpress\/wp-json\/wp\/v2\/posts\/2953","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/randengzhe.cn\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/randengzhe.cn\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/randengzhe.cn\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/randengzhe.cn\/wordpress\/wp-json\/wp\/v2\/comments?post=2953"}],"version-history":[{"count":6,"href":"https:\/\/randengzhe.cn\/wordpress\/wp-json\/wp\/v2\/posts\/2953\/revisions"}],"predecessor-version":[{"id":2964,"href":"https:\/\/randengzhe.cn\/wordpress\/wp-json\/wp\/v2\/posts\/2953\/revisions\/2964"}],"wp:attachment":[{"href":"https:\/\/randengzhe.cn\/wordpress\/wp-json\/wp\/v2\/media?parent=2953"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/randengzhe.cn\/wordpress\/wp-json\/wp\/v2\/categories?post=2953"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/randengzhe.cn\/wordpress\/wp-json\/wp\/v2\/tags?post=2953"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}