
.page-link {
    color: black;
}
.page-item.active .page-link {
    background-color: #6c757d;
    border-color: #6c757d;
}
.border-3 {
    border-width: 3px !important;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9mcm9udGVuZC92dWUvY29tcG9uZW50cy9TZWFyY2hhYmxlT2JqZWN0c1RhYmxlLnZ1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBa1VBO0lBQ0E7QUFDQTtBQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQTtBQUNBIiwiZmlsZSI6ImNzcy92dWUtMGViY2ZkZGQ4YTgzMjg0MjI1OTIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuPGRpdiBjbGFzcz1cIm10LTBcIj5cbiAgPGItY2FyZCBuby1ib2R5PlxuICAgIDxiLXRhYnNcbiAgICAgIHYtbW9kZWw9XCJzZWFyY2hUYWJJbmRleFwiXG4gICAgICBwaWxscyBjYXJkXG4gICAgICB2ZXJ0aWNhbFxuICAgICAgPlxuICAgICAgPGItdGFiIHRpdGxlPVwiQmFzaWMgU2VhcmNoXCIgOnRpdGxlLWxpbmstY2xhc3M9XCJsaW5rQ2xhc3MoMClcIj5cbiAgICAgICAgPGItZm9ybS1ncm91cD5cbiAgICAgICAgICA8Yi1pbnB1dC1ncm91cD5cbiAgICAgICAgICAgIDxiLWZvcm0taW5wdXRcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImJhc2ljRmlsdGVyXCJcbiAgICAgICAgICAgICAgZGVib3VuY2U9XCIyNTBcIlxuICAgICAgICAgICAgICBpZD1cImJhc2ljZmlsdGVyXCJcbiAgICAgICAgICAgICAgOnBsYWNlaG9sZGVyPVwiYmFzaWNTZWFyY2hQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvYi1mb3JtLWlucHV0PlxuICAgICAgICAgICAgPGItaW5wdXQtZ3JvdXAtYXBwZW5kIHNpemU9XCJzbVwiPlxuICAgICAgICAgICAgICA8Yi1idXR0b25cbiAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCIhYmFzaWNGaWx0ZXJcIlxuICAgICAgICAgICAgICAgIEBjbGljaz1cImJhc2ljRmlsdGVyID0gJydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBDbGVhclxuICAgICAgICAgICAgICA8L2ItYnV0dG9uPlxuICAgICAgICAgICAgPC9iLWlucHV0LWdyb3VwLWFwcGVuZD5cbiAgICAgICAgICA8L2ItaW5wdXQtZ3JvdXA+XG4gICAgICAgIDwvYi1mb3JtLWdyb3VwPlxuICAgICAgPC9iLXRhYj5cbiAgICAgIDxiLXRhYiB0aXRsZT1cIkFkdmFuY2VkIFF1ZXJ5XCIgOnRpdGxlLWxpbmstY2xhc3M9XCJsaW5rQ2xhc3MoMSlcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8Yi1mb3JtLWdyb3VwXG4gICAgICAgICAgICB2LWZvcj1cImZpbHRlcmluZ0ZpZWxkIGluIGZpbHRlcmluZ0ZpZWxkc0FkdmFuY2VkXCJcbiAgICAgICAgICAgIDprZXk9XCJmaWx0ZXJpbmdGaWVsZC5maWVsZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8Yi1pbnB1dC1ncm91cD5cbiAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtc2xvdDpwcmVwZW5kPlxuICAgICAgICAgICAgICAgIDxiLWlucHV0LWdyb3VwLXRleHQ+PHN0cm9uZz57eyBmaWx0ZXJpbmdGaWVsZC5sYWJlbCB9fTwvc3Ryb25nPjwvYi1pbnB1dC1ncm91cC10ZXh0PlxuICAgICAgICAgICAgICAgIDxiLWlucHV0LWdyb3VwLXRleHQgY2xhc3M9XCJiZy1saWdodFwiPjxlbT57eyBmaWx0ZXJpbmdGaWVsZC5sb29rdXAgfX08L2VtPjwvYi1pbnB1dC1ncm91cC10ZXh0PlxuICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICA8Yi1mb3JtLWlucHV0XG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZpbHRlcmluZ0ZpZWxkLmZpbHRlclwiXG4gICAgICAgICAgICAgICAgZGVib3VuY2U9XCIyNTBcIlxuICAgICAgICAgICAgICAgIGlkPVwiZmlsdGVyaW5nRmllbGQua2V5XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvYi1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICA8Yi1pbnB1dC1ncm91cC1hcHBlbmQgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgICAgPGItYnV0dG9uXG4gICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCIhZmlsdGVyaW5nRmllbGQuZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgIEBjbGljaz1cImZpbHRlcmluZ0ZpZWxkLmZpbHRlciA9ICcnXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIENsZWFyXG4gICAgICAgICAgICAgICAgPC9iLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9iLWlucHV0LWdyb3VwLWFwcGVuZD5cbiAgICAgICAgICAgIDwvYi1pbnB1dC1ncm91cD5cbiAgICAgICAgICA8L2ItZm9ybS1ncm91cD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2ItdGFiPlxuICAgIDwvYi10YWJzPlxuICA8L2ItY2FyZD5cbiAgPGItcm93IDp2LWlmPVwicGFnaW5hdGVkXCIgY2xhc3M9XCJtdC00XCI+XG4gICAgPGItY29sIGNsYXNzPVwiY29sLTJcIj5cbiAgICAgIDxiLWJhZGdlIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBjbGFzcz1cIm10LTIgcHgtMyBweS0yXCI+e3sgdG90YWxSb3dzIH19JmVtc3A7aXRlbTxzcGFuIHYtaWY9XCJ0b3RhbFJvd3MgIT0gMVwiPnM8L3NwYW4+PC9iLWJhZGdlPlxuICAgIDwvYi1jb2w+XG4gICAgPGItY29sIGNsYXNzPVwiY29sLThcIj5cbiAgICAgIDxiLXBhZ2luYXRpb25cbiAgICAgICAgdi1tb2RlbD1cImN1cnJlbnRQYWdlXCJcbiAgICAgICAgOnRvdGFsLXJvd3M9XCJ0b3RhbFJvd3NcIlxuICAgICAgICA6cGVyLXBhZ2U9XCJwZXJQYWdlXCJcbiAgICAgICAgY2xhc3M9XCJtLTJcIlxuICAgICAgICBhbGlnbj1cImNlbnRlclwiXG4gICAgICAgIGFyaWEtY29udHJvbHM9XCJvYmplY3RzLXRhYmxlXCJcbiAgICAgICAgPlxuICAgICAgPC9iLXBhZ2luYXRpb24+XG4gICAgPC9iLWNvbD5cbiAgICA8Yi1jb2wgY2xhc3M9XCJjb2wtMlwiPlxuICAgICAgPGl0ZW0tZGV0YWlsLWxpbmtzXG4gICAgICAgIDp1cmxfc3B4X2FwaT1cInF1ZXJ5VVJMXCJcbiAgICAgICAgPlxuICAgICAgPC9pdGVtLWRldGFpbC1saW5rcz5cbiAgICA8L2ItY29sPlxuICA8L2Itcm93PlxuICA8YnI+XG4gIDxiLXRhYmxlXG4gICAgaWQ9XCJvYmplY3RzLXRhYmxlXCJcbiAgICBzaG93LWVtcHR5XG4gICAgOml0ZW1zPVwib2JqZWN0c1Byb3ZpZGVyXCJcbiAgICA6ZmllbGRzPVwiY29tcHV0ZWREaXNwbGF5RmllbGRzXCJcbiAgICA6dGJvZHktdHItY2xhc3M9XCJ0Ym9keVRyQ2xhc3NcIlxuICAgIDpwZXItcGFnZT1cInBlclBhZ2VcIlxuICAgIDpjdXJyZW50LXBhZ2U9XCJjdXJyZW50UGFnZVwiXG4gICAgQHJvdy1jbGlja2VkPVwib25Sb3dDbGlja2VkXCJcbiAgICA+XG4gICAgPHRlbXBsYXRlIHYtc2xvdDp0YWJsZS1idXN5PlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHRleHQtcHJpbWFyeSBteS0yXCI+XG4gICAgICAgIDxiLXNwaW5uZXIgY2xhc3M9XCJhbGlnbi1taWRkbGVcIj48L2Itc3Bpbm5lcj5cbiAgICAgICAgPHN0cm9uZz5Mb2FkaW5nLi4uPC9zdHJvbmc+XG4gICAgICA8L2Rpdj5cbiAgICA8L3RlbXBsYXRlPlxuICAgIDx0ZW1wbGF0ZSB2LXNsb3Q6Y2VsbChzcHhsaW5rcyk9XCJyb3dcIj5cbiAgICAgIDxpdGVtLWRldGFpbC1saW5rc1xuICAgICAgICA6dXJsX3NweD1cInJvdy5pdGVtLnVybF9zcHhcIlxuICAgICAgICA6dXJsX3NweF9hcGk9XCJyb3cuaXRlbS51cmxfc3B4X2FwaVwiXG4gICAgICAgID5cbiAgICAgIDwvaXRlbS1kZXRhaWwtbGlua3M+XG4gICAgPC90ZW1wbGF0ZT5cbiAgICA8dGVtcGxhdGUgdi1zbG90OnJvdy1kZXRhaWxzPVwicm93XCI+XG4gICAgICA8b2JqZWN0LXJvdy1kZXRhaWxzXG4gICAgICAgIDpvYmplY3RfdHlwZT1cIm9iamVjdF90eXBlXCJcbiAgICAgICAgOm9iamVjdD1cInJvdy5pdGVtXCJcbiAgICAgICAgPlxuICAgICAgPC9vYmplY3Qtcm93LWRldGFpbHM+XG4gICAgPC90ZW1wbGF0ZT5cbiAgPC9iLXRhYmxlPlxuPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7XG5oZWFkZXJzLmFwcGVuZCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb247IHZlcnNpb249MCcpXG5cbmltcG9ydCBJdGVtRGV0YWlsTGlua3MgZnJvbSAnLi9JdGVtRGV0YWlsTGlua3MudnVlJ1xuaW1wb3J0IE9iamVjdFJvd0RldGFpbHMgZnJvbSAnLi9PYmplY3RSb3dEZXRhaWxzL09iamVjdFJvd0RldGFpbHMudnVlJ1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgbmFtZTogXCJzZWFyY2hhYmxlLW9iamVjdHMtdGFibGVcIixcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEl0ZW1EZXRhaWxMaW5rcyxcbiAgICAgICAgT2JqZWN0Um93RGV0YWlscyxcbiAgICB9LFxuICAgIHByb3BzOiB7XG4gICAgICAgIG9iamVjdF90eXBlOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBkaXNwbGF5ZmllbGRzOiB7XG4gICAgICAgICAgICB0eXBlOiBBcnJheSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHBhZ2luYXRlZDogdHJ1ZSxcbiAgICAgICAgbnVtYmVyZWQ6IGZhbHNlLFxuICAgICAgICB1cmw6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIGluaXRpYWxfZmlsdGVyOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgZXhjbHVkZWRfZmlsdGVyX2ZpZWxkczoge1xuICAgICAgICAgICAgdHlwZTogQXJyYXksXG4gICAgICAgICAgICByZXF1aXJlZDogZmFsc2VcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGRhdGEoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzZWFyY2hUYWJJbmRleDogMCxcbiAgICAgICAgICAgIGJhc2ljRmlsdGVyOiBudWxsLFxuICAgICAgICAgICAgZmlsdGVyaW5nRmllbGRzQmFzaWM6IFtdLFxuICAgICAgICAgICAgZmlsdGVyaW5nRmllbGRzQWR2YW5jZWQ6IFtdLFxuICAgICAgICAgICAgb2JqZWN0czogW10sXG4gICAgICAgICAgICBwZXJQYWdlOiAxMCxcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlOiAxLFxuICAgICAgICAgICAgdG90YWxSb3dzOiAxLFxuICAgICAgICAgICAgZmlsdGVyOiBudWxsLFxuICAgICAgICAgICAgZmlsdGVyT246IFtdLFxuICAgICAgICB9XG4gICAgfSxcbiAgICBcbiAgICBjb21wdXRlZDoge1xuICAgICAgICBiYXNpY1NlYXJjaFBsYWNlaG9sZGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBwbGFjZWhvbGRlciA9ICdTZWFyY2ggaW46ICdcbiAgICAgICAgICAgIHZhciBjb3VudGVyID0gMFxuICAgICAgICAgICAgdGhpcy5maWx0ZXJpbmdGaWVsZHNCYXNpYy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgIChmaWx0ZXJpbmdGaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY291bnRlciA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyICs9ICcsICdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb3VudGVyICs9IDFcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXIgKz0gZmlsdGVyaW5nRmllbGRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm4gcGxhY2Vob2xkZXJcbiAgICAgICAgfSxcbiAgICAgICAgY29tcHV0ZWREaXNwbGF5RmllbGRzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBsZXQgY2RmID0gdGhpcy5kaXNwbGF5ZmllbGRzLnNsaWNlKClcbiAgICAgICAgICAgIGNkZi5wdXNoKHsga2V5OiAnc3B4bGlua3MnLCBsYWJlbDogJyd9KVxuICAgICAgICAgICAgaWYgKHRoaXMubnVtYmVyZWQpIHtcbiAgICAgICAgICAgICAgICAvL3RoaXMuZGlzcGxheWZpZWxkcy51bnNoaWZ0KHsga2V5OiAnX251bWJlcicsIGxhYmVsOiAnJ30pXG4gICAgICAgICAgICAgICAgY2RmLnVuc2hpZnQoeyBrZXk6ICdfbnVtYmVyJywgbGFiZWw6ICcnfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjZGZcbiAgICAgICAgfSxcbiAgICAgICAgcXVlcnlQYXJhbWV0ZXJzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBwYXJhbWV0ZXJzID0gJydcbiAgICAgICAgICAgIGlmICh0aGlzLnNlYXJjaFRhYkluZGV4ID09IDApIHsgLy8gYmFzaWMgc2VhcmNoXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYmFzaWNGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5maWx0ZXJpbmdGaWVsZHMuZm9yRWFjaCgoZmlsdGVyaW5nRmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIGlmIChmaWx0ZXJpbmdGaWVsZC5pc0RlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICBwYXJhbWV0ZXJzICs9ICgnJicgKyBmaWx0ZXJpbmdGaWVsZC5rZXkgKyAnX18nXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgKyBmaWx0ZXJpbmdGaWVsZC5sb29rdXAgKyAnPScgKyB0aGlzLmJhc2ljRmlsdGVyKVxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB9KVxuICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzICs9ICcmc2VhcmNoPScgKyB0aGlzLmJhc2ljRmlsdGVyXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJpbmdGaWVsZHNBZHZhbmNlZC5mb3JFYWNoKChmaWx0ZXJpbmdGaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyaW5nRmllbGQuZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzICs9ICgnJicgKyBmaWx0ZXJpbmdGaWVsZC5rZXkgKyAnX18nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGZpbHRlcmluZ0ZpZWxkLmxvb2t1cCArICc9JyArIGZpbHRlcmluZ0ZpZWxkLmZpbHRlcilcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5pbml0aWFsX2ZpbHRlcikge1xuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgKz0gKCcmJyArIHRoaXMuaW5pdGlhbF9maWx0ZXIpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGFyYW1ldGVyc1xuICAgICAgICB9LFxuICAgICAgICBxdWVyeVVSTDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gKCcvYXBpLycgKyB0aGlzLnVybCArICcvJyArICc/bGltaXQ9JyArIHRoaXMucGVyUGFnZVxuICAgICAgICAgICAgICAgICAgICArICcmb2Zmc2V0PScgKyB0aGlzLnBlclBhZ2UgKiAodGhpcy5jdXJyZW50UGFnZSAtIDEpXG4gICAgICAgICAgICAgICAgICAgICsgdGhpcy5xdWVyeVBhcmFtZXRlcnMpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1ldGhvZHM6IHtcbiAgICAgICAgZmV0Y2hGaWx0ZXJpbmdGaWVsZHMgKCkge1xuICAgICAgICAgICAgZmV0Y2goJy9hcGkvJyArIHRoaXMub2JqZWN0X3R5cGUgKyAnL2ZpbHRlcmluZ19vcHRpb25zJywge2hlYWRlcnM6IGhlYWRlcnN9KVxuICAgICAgICAgICAgICAgIC50aGVuKHN0cmVhbSA9PiBzdHJlYW0uanNvbigpKVxuICAgICAgICAgICAgICAgIC50aGVuKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmluZ0ZpZWxkc0Jhc2ljID0gZGF0YS5iYXNpY1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmluZ0ZpZWxkc0FkdmFuY2VkID0gZGF0YS5hZHZhbmNlZC5tYXAoXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbihvcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IG9wdGlvbi5maWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IG9wdGlvbi5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9va3VwOiBvcHRpb24ubG9va3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IG9wdGlvbi5kZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5leGNsdWRlZF9maWx0ZXJfZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmluZ0ZpZWxkc0Jhc2ljID0gdGhpcy5maWx0ZXJpbmdGaWVsZHNCYXNpYy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEodGhpcy5leGNsdWRlZF9maWx0ZXJfZmllbGRzLmluY2x1ZGVzKG9wdGlvbikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyaW5nRmllbGRzQWR2YW5jZWQgPSB0aGlzLmZpbHRlcmluZ0ZpZWxkc0FkdmFuY2VkLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gISh0aGlzLmV4Y2x1ZGVkX2ZpbHRlcl9maWVsZHMuaW5jbHVkZXMob3B0aW9uLmxhYmVsKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4gY29uc29sZS5lcnJvcihlcnJvcikpXG4gICAgICAgIH0sXG4gICAgICAgIGZldGNoT2JqZWN0cyAoKSB7XG4gICAgICAgICAgICBmZXRjaCgnL2FwaS8nICsgdGhpcy51cmwsIHtoZWFkZXJzOiBoZWFkZXJzfSlcbiAgICAgICAgICAgICAgICAudGhlbihzdHJlYW0gPT4gc3RyZWFtLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbihkYXRhID0+IHRoaXMub2JqZWN0cyA9IGRhdGEucmVzdWx0cyB8fCBkYXRhKSAvLyB0byBoYW5kbGUgcGFnaW5hdGVkIG9yIGZsYXQgbGlzdCwgb3IgZW1wdHkgbGlzdFxuICAgICAgICAgICAgICAgIC5jYXRjaChlcnJvciA9PiBjb25zb2xlLmVycm9yKGVycm9yKSlcbiAgICAgICAgfSxcbiAgICAgICAgbGlua0NsYXNzKGlkeCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGFiSW5kZXggPT09IGlkeCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbJ214LTInLCAnYmctc2Vjb25kYXJ5JywgJ3RleHQtd2hpdGUnLCAnZm9udC13ZWlnaHQtYm9sZCddXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBbJ214LTInLCAnYmctbGlnaHQnLCAndGV4dC1kYXJrJ11cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgb2JqZWN0c1Byb3ZpZGVyIChjdHgpIHtcbiAgICAgICAgICAgIC8vIE91ciBBUEkgdXNlcyBsaW1pdC9vZmZzZXQgcGFnaW5hdGlvblxuICAgICAgICAgICAgdmFyIHBhcmFtcyA9ICc/bGltaXQ9JyArIGN0eC5wZXJQYWdlICsgJyZvZmZzZXQ9JyArIGN0eC5wZXJQYWdlICogKGN0eC5jdXJyZW50UGFnZSAtIDEpICsgdGhpcy5xdWVyeVBhcmFtZXRlcnNcbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBmZXRjaCgnL2FwaS8nICsgdGhpcy51cmwgKyAnLycgKyBwYXJhbXMsIHtoZWFkZXJzOiBoZWFkZXJzfSlcbiAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnRoZW4oc3RyZWFtID0+IHN0cmVhbS5qc29uKCkpXG4gICAgICAgICAgICAgICAgLnRoZW4oZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpdGVtcyA9IGRhdGEucmVzdWx0cyB8fCBkYXRhIC8vIHRvIGhhbmRsZSBwYWdpbmF0ZWQgb3IgZmxhdCBsaXN0XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG90YWxSb3dzID0gZGF0YS5jb3VudCB8fCBpdGVtcy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMgPSBpdGVtcy5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1bJ19udW1iZXInXSA9IGluZGV4ICsgMVxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVsnX3Nob3dEZXRhaWxzJ10gPSB0cnVlICAvLyBuZWVkZWQgdG8gZW5hYmxlIHRoZSByb3ctZGV0YWlscyBwcm9wXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbXMgfHwgW11cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgICBhc3luYyBvblJvd0NsaWNrZWQgKGl0ZW0sIGluZGV4KSB7XG4gICAgICAgICAgICB0aGlzLml0ZW0gPSBhd2FpdCBpdGVtXG4gICAgICAgICAgICBpZiAodGhpcy5vYmplY3RfdHlwZSA9PSBcImFmZmlsaWF0aW9uc1wiKSB7XG4gICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oXCIvcGVyc29ucy9cIiArIHRoaXMuaXRlbS5wZXJzb24sIFwiX3NlbGZcIilcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5vYmplY3RfdHlwZSA9PSBcInB1YmxpY2F0aW9uc1wiKSB7XG4gICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oXCIvc291cmNlcy9cIiArIGl0ZW0udXVpZCwgXCJfc2VsZlwiKVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9iamVjdF90eXBlID09IFwic291cmNlc1wiKSB7XG4gICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oXCIvc291cmNlcy9cIiArIGl0ZW0udXVpZCwgXCJfc2VsZlwiKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cub3BlbignLycgKyB0aGlzLnVybCArICcvJyArIGl0ZW0udXVpZCwgJ19zZWxmJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdGJvZHlUckNsYXNzIChpdGVtLCB0eXBlKSB7XG4gICAgICAgICAgICBpZiAodHlwZSA9PSAncm93Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiAnYmctbGlnaHQgYm9yZGVyLXRvcCBib3JkZXItZGFyayBib3JkZXItMydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gJ3Jvdy1kZXRhaWxzJykge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJ1xuICAgICAgICAgICAgIH1cbiAgICAgICAgIH1cbiAgICAgfSxcbiAgICAgbW91bnRlZCAoKSB7XG4gICAgICAgICB0aGlzLmZldGNoRmlsdGVyaW5nRmllbGRzKClcbiAgICAgICAgIHRoaXMuZmV0Y2hPYmplY3RzKClcbiAgICAgICAgIGlmICh0aGlzLm51bWJlcmVkKSB7XG4gICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZmllbGRzLnVuc2hpZnQoeyBrZXk6ICdfbnVtYmVyJywgbGFiZWw6ICcnfSlcbiAgICAgICAgIH1cbiAgICAgICAgIHRoaXMuZGlzcGxheWZpZWxkcy5wdXNoKHsga2V5OiAnc3B4bGlua3MnLCBsYWJlbDogJyd9KVxuICAgICB9LFxuICAgICB3YXRjaDoge1xuICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgdGhpcy4kcm9vdC4kZW1pdCgnYnY6OnJlZnJlc2g6OnRhYmxlJywgJ29iamVjdHMtdGFibGUnKVxuICAgICAgICAgfVxuICAgICB9XG4gfVxuPC9zY3JpcHQ+XG5cblxuPHN0eWxlPlxuICAucGFnZS1saW5rIHtcbiAgICAgIGNvbG9yOiBibGFjaztcbiAgfVxuICAucGFnZS1pdGVtLmFjdGl2ZSAucGFnZS1saW5rIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2Yzc1N2Q7XG4gICAgICBib3JkZXItY29sb3I6ICM2Yzc1N2Q7XG4gIH1cbiAgLmJvcmRlci0zIHtcbiAgICAgIGJvcmRlci13aWR0aDogM3B4ICFpbXBvcnRhbnQ7XG4gIH1cbjwvc3R5bGU+XG4iXSwic291cmNlUm9vdCI6IiJ9*/